diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 9300cc846..6de956328 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -85,6 +85,12 @@ All pull requests must comply with the above requirements and with the [stylegui Translations are managed on [Transifex](https://www.transifex.com/keepassxc/keepassxc/) which offers a web interface. Please join an existing language team or request a new one if there is none. +If you open a Pull Request with new strings that require translations, you will need to run the following: +``` +./release-tool i18n lupdate +``` +This will make the new strings available for translation in Transifex. + ## Styleguides ### Git branch strategy diff --git a/.gitignore b/.gitignore index 9ab62e190..766c9018f 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,8 @@ desktop.ini CMakeSettings.json CMakePresets.json .vs/ -out/ \ No newline at end of file +out/ + +# vcpkg +vcpkg_installed*/ + diff --git a/.tx/config b/.tx/config index ce45c5ebd..83910523a 100644 --- a/.tx/config +++ b/.tx/config @@ -1,14 +1,17 @@ [main] -host = https://www.transifex.com +host = https://app.transifex.com -[keepassxc.share-translations-keepassxc-en-ts--develop] -source_file = share/translations/keepassxc_en.ts -file_filter = share/translations/keepassxc_.ts -source_lang = en -type = QT +[o:keepassxc:p:keepassxc:r:share-translations-keepassxc-en-ts--develop] +file_filter = share/translations/keepassxc_.ts +source_file = share/translations/keepassxc_en.ts +type = QT +minimum_perc = 0 +resource_name = keepassxc_en.ts (develop) + +[o:keepassxc:p:keepassxc:r:share-translations-keepassxc-en-ts--master] +file_filter = share/translations/keepassxc_.ts +source_file = share/translations/keepassxc_en.ts +type = QT +minimum_perc = 0 +resource_name = keepassxc_en.ts (2.7.x stable) -[keepassxc.share-translations-keepassxc-en-ts--master] -source_file = share/translations/keepassxc_en.ts -file_filter = share/translations/keepassxc_.ts -source_lang = en -type = QT diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fe082165..65eb4cfa6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,164 @@ # Changelog +## 2.7.7 (2024-03-09) + +### Changes +- Support USB Hotplug for Hardware Key interface [#10092] +- Support 1PUX and Bitwarden import [#9815] +- Browser: Add support for PassKeys [#8825, #9987, #10318] +- Build System: Move to vcpkg manifest mode [#10088] + +### Fixes +- Fix multiple TOTP issues [#9874] +- Fix focus loss on save when the editor is not visible anymore [#10075] +- Fix visual when removing entry from history [#9947] +- Fix first entry is not selected when a search is performed [#9868] +- Prevent scrollbars on entry drag/drop [#9747] +- Prevent duplicate characters in "Also choose from" field of password generator [#9803] +- Security: Prevent byte-by-byte and attachment inference side channel attacks [#10266] +- Browser: Fix raising Update Entry messagebox [#9853] +- Browser: Fix bugs when returning credentials [#9136] +- Browser: Fix crash on database open from browser [#9939] +- Browser: Fix support for referenced URL fields [#8788] +- MacOS: Fix crash when changing highlight/accent color [#10348] +- MacOS: Fix TouchID appearing even though lid is closed [#10092] +- Windows: Fix terminating KeePassXC processes with MSI installer [#9822] +- FdoSecrets: Fix database merge crash when enabled [#10136] + +## 2.7.6 (2023-08-15) + +### Changes +- Significant improvement to visual when drag/drop entries [#9698] +- Automatically prompt for Quick Unlock when showing unlock dialog [#9697] +- Improve colorful lock icon and fix file MIME icon on KDE [#9632] +- Ability to search by entry UUID [#9571] +- Add challenge-response support for NitroKey 3 [#9631] +- Auto-Type: Disable entry level Auto-Type when disabled at group/entry [#9672] +- Browser: Show warning when adding duplicate URL's to entry [#9588][#9635] +- Browser: Improve error message when proxy cannot be found [#9385] + +### Fixes +- Fix crash on exit on macOS [#9620] +- Fix crash on search if entry doesn't have a group [#9633] +- Fix several issues with Quick Unlock [#9697] +- Enable save button when not auto-saving non-data changes [#9634] +- Several UI/UX fixes [#9647] +- Move toolbar back to top of window when disabling movement [#9699] +- Browser: Fix closing password generator dialog with X button [#9636] +- Browser: Fix handling of expired credentials [#9595] +- Windows: Prevent white flicker when launching application [#9637] +- Linux: Fix warning message about allow screencapture [#9638] +- FdoSecrets: Fix access confirmation dialog showing even when disabled [#9690] + +## 2.7.5 (2023-05-14) + +### Changes +- Add menu option to allow screenshots [#8841] +- Add support for Botan 3 [#9388] +- Increase max TOTP step to 24 hours [#9149] +- Improve HTML export layout [#8987] +- Turn search reset off by default [#9153] +- Use QClipboard::clear() instead of setting blank text [#9148] +- Hide group column header choice when not in search [#9171] +- Improve look of KeePassXC logo and icons [#9355] +- Add keyboard shortcuts for app and database settings [#9007] +- Hide rename button from attachments preview panel [#8842] +- Linux: Set SingleMainWindow in .desktop file [#7430] + +### Fixes +- Fix crash when search clears while creating new entry [#9230] +- Fix crash when using Windows Hello in a Remote Desktop session [#9006] +- Fix crash in Group Edit after enabling Browser Integration [#8778] +- Fix canceling quick unlock when it is unavailable [#9034] +- Set password input field font correctly [#8732] +- Greatly improve performance when rendering entry view [#9398] +- Fix various accessibility issues [#9138] +- Fix arrows size when expand/collapse a group [#9096] +- Select the clone instead of the original after cloning an entry [#9070] +- Fix bugs with preview widget [#9170] +- Fix status bar update when switching to other DB [#9073] +- Fix database settings spin box bug [#9101] +- Fix Ctrl+Tab shortcut to cycle databases in unlock dialog [#8839] +- Fix TOTP QR code maintaining square ratio [#9027] +- Fix Auto-Type configuration page on custom sequence selection [#8752] +- Fix unexpected behavior of `--lock` when KeePassXC is not running [#8889] +- Make open folder icon exempt from "Apply group icon to entry" [#9205] +- Allow setting default file open directory with env var [#9192] +- SSH Agent: Fix support for AES-256/GCM openssh keys [#8968] +- Browser: Fix Native Messaging script path with BSD OS's [#8835] +- MacOS: Fix text selection for Auto-Type clear field [#9066] +- MacOS: Don't rely on AppleInterfaceStyle for theme switching [#8615] +- Windows: Remove registry detection of desktop shortcut [#9380] + +## 2.7.4 (2022-10-29) + +### Changes +- Add 2 months expiration preset [#8687] +- CLI: Add Unicode support on Windows [#8618] + +### Fixes +- Fix crash on macOS when unlocking database [#8676] +- Fix display of passwords in preview panel [#8633] +- Fix clicking links in entry preview panel [#8644] +- Prevent expired entries search if no results returned [#8643] +- Browser: Revert code causing connection problems [#8665] +- Browser: Fix socket file symbolic link on Linux [#8656] +- Flatpak: Fix launching browser proxy service [#8680] +- SSH Agent: Fix paegent support on Windows [#8619] + +## 2.7.3 (2022-10-23) + +### Changes +- Enhance Tags Support and Add Saved Searches [#8435, #8607] +- Significant improvements to entry preview panel [#7993] +- Add password strength indicator to all password fields [#7885] +- Limit zxcvbn entropy estimation length to 128 characters [#7748] +- Try full URL path when fetching favicon [#8565] +- Hide usernames in preview panel when hidden in entry view [#8608] +- Enable dark title bar on windows when accent color is not used [#8498] +- Add option to display passwords in color in preview panel [#7097] +- Add XML Export option to GUI [#8524] +- Increase entropy required for a "good" password rating to 75 [#8523] +- Add shortcut to copy password with TOTP appended [#8443] +- Show entry count in status bar [#8435] +- Allow KeePassXC to be built without X11 [#8147] +- Enable use of VivoKey Apex and Dangerous Things FlexSecure tokens [#8332] +- Add setting for number of recent files [#8239] +- Add Ctrl+Tab shortcut to cycle databases in unlock dialog [#8168] +- Replace offensive words in eff_large.wordlist [#7968] +- Auto-Type: PICKCHARS can specify attribute and ignore BEEP [#8118] +- Linux: Add isHardwareKeySupported and refreshHardwareKeys to DBus methods [#8055] +- Add config variable to specify default database file name [#8042] +- Support numeric aware sorting on Windows and macOS [#8363] +- CLI: Add `db-edit` command [#8400] +- CLI: Add option to display all attributes with `show` command [#8256] +- CLI: Show UUID and tags with `show` and `clip` commands [#8241] +- Browser: Move socket into separate directory on Linux [#8030] +- Browser: Add group setting to omit WWW subdomain when matching URLs [#7988] +- FdoSecrets: Ask to unlock the database when creating items [#8022, #8028] +- FdoSecrets: Skip entries in recycle bin when searching [#8021] + +### Fixes +- Fix potential deadlock in UI when saving [#8606] +- Fix newlines when copying notes from preview panel [#8542] +- Fix dark mode detection on Linux [#8477] +- Fix crash when deleting items in recycle bin while searching [#8117] +- Fix crash when trying to close database during unlock [#8144] +- Fix tabbing around the interface [#8435, #8520] +- Fix OPVault import when there are multiple OTP fields [#8436] +- Fix various Windows Hello bugs [#8354] +- Fix use of Apple Watch for Quick Unlock [#8311] +- Better handling of "Lock on Minimize" setting [#8202] +- Check for write permission before entering portable mode [#8447] +- Correct regex escape logic to prevent parse errors [#7778] +- Normalize slashes and file case for last used databases [#7864, #7214] +- Link ykcore against pthread [#7807] +- Auto-Type: Fix menu entries in selection dialog on Windows [#7987] +- Auto-Type: Fix use of modifiers under macOS [#8111] +- CLI: Fix output when using clip with the -t flag [#8271] +- Browser: Use asynchronous access confirm dialog [#8273] +- Browser: Always send database locked/unlocked status [#8114] + ## 2.7.1 (2022-04-05) ### Changes diff --git a/CMakeLists.txt b/CMakeLists.txt index db732d677..776d9bfa2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -cmake_minimum_required(VERSION 3.3.0) +cmake_minimum_required(VERSION 3.10.0) project(KeePassXC) set(APP_ID "org.keepassxc.${PROJECT_NAME}") @@ -53,6 +53,7 @@ set(WITH_XC_ALL OFF CACHE BOOL "Build in all available plugins") option(WITH_XC_AUTOTYPE "Include Auto-Type." ON) option(WITH_XC_NETWORKING "Include networking code (e.g. for downloading website icons)." OFF) option(WITH_XC_BROWSER "Include browser integration with keepassxc-browser." OFF) +option(WITH_XC_BROWSER_PASSKEYS "Passkeys support for browser integration." OFF) option(WITH_XC_YUBIKEY "Include YubiKey support." OFF) option(WITH_XC_SSHAGENT "Include SSH agent support." OFF) option(WITH_XC_KEESHARE "Sharing integration with KeeShare" OFF) @@ -62,6 +63,27 @@ if(UNIX AND NOT APPLE) endif() option(WITH_XC_DOCS "Enable building of documentation" ON) +set(WITH_XC_X11 ON CACHE BOOL "Enable building with X11 deps") + +if(APPLE) + # Perform the platform checks before applying the stricter compiler flags. + # Otherwise the kSecAccessControlTouchIDCurrentSet deprecation warning will result in an error. + try_compile(XC_APPLE_COMPILER_SUPPORT_BIOMETRY + ${CMAKE_CURRENT_BINARY_DIR}/tiometry_test/ + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compiler-checks/macos/control_biometry_support.mm) + message(STATUS "Biometry compiler support: ${XC_APPLE_COMPILER_SUPPORT_BIOMETRY}") + + try_compile(XC_APPLE_COMPILER_SUPPORT_TOUCH_ID + ${CMAKE_CURRENT_BINARY_DIR}/touch_id_test/ + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compiler-checks/macos/control_touch_id_support.mm) + message(STATUS "Touch ID compiler support: ${XC_APPLE_COMPILER_SUPPORT_TOUCH_ID}") + + try_compile(XC_APPLE_COMPILER_SUPPORT_WATCH + ${CMAKE_CURRENT_BINARY_DIR}/tiometry_test/ + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compiler-checks/macos/control_watch_support.mm) + message(STATUS "Apple watch compiler support: ${XC_APPLE_COMPILER_SUPPORT_WATCH}") +endif() + if(WITH_CCACHE) # Use the Compiler Cache (ccache) program # (install with: sudo apt get ccache) @@ -77,6 +99,7 @@ if(WITH_XC_ALL) set(WITH_XC_AUTOTYPE ON) set(WITH_XC_NETWORKING ON) set(WITH_XC_BROWSER ON) + set(WITH_XC_BROWSER_PASSKEYS ON) set(WITH_XC_YUBIKEY ON) set(WITH_XC_SSHAGENT ON) set(WITH_XC_KEESHARE ON) @@ -91,9 +114,14 @@ if(NOT WITH_XC_NETWORKING AND WITH_XC_UPDATECHECK) set(WITH_XC_UPDATECHECK OFF) endif() +if(UNIX AND NOT APPLE AND NOT WITH_XC_X11) + message(STATUS "Disabling WITH_XC_AUTOTYPE because WITH_XC_X11 is disabled") + set(WITH_XC_AUTOTYPE OFF) +endif() + set(KEEPASSXC_VERSION_MAJOR "2") set(KEEPASSXC_VERSION_MINOR "7") -set(KEEPASSXC_VERSION_PATCH "1") +set(KEEPASSXC_VERSION_PATCH "7") set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION_MAJOR}.${KEEPASSXC_VERSION_MINOR}.${KEEPASSXC_VERSION_PATCH}") set(OVERRIDE_VERSION "" CACHE STRING "Override the KeePassXC Version for Snapshot builds") @@ -177,6 +205,16 @@ if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.14.0") check_pie_supported() endif() +# Find Botan early since the version affects subsequent compiler options +find_package(Botan REQUIRED) +if(BOTAN_VERSION VERSION_GREATER_EQUAL "3.0.0") + set(WITH_XC_BOTAN3 TRUE) +elseif(BOTAN_VERSION VERSION_LESS "2.11.0") + # Check for minimum Botan version + message(FATAL_ERROR "Botan 2.11.0 or higher is required") +endif() +include_directories(SYSTEM ${BOTAN_INCLUDE_DIR}) + # Create position independent code for shared libraries and executables set(CMAKE_POSITION_INDEPENDENT_CODE ON) @@ -272,6 +310,10 @@ if(CMAKE_BUILD_TYPE_LOWER STREQUAL "debug") check_add_gcc_compiler_flag("-Wshadow-compatible-local") check_add_gcc_compiler_flag("-Wshadow-local") add_gcc_compiler_flags("-Werror") + # This is needed since compiling aginst Botan3 requires compiling against C++20 + if(WITH_XC_BOTAN3) + add_gcc_compiler_cxxflags("-Wno-error=deprecated-enum-enum-conversion -Wno-error=deprecated") + endif() endif() if (NOT HAIKU) @@ -310,14 +352,18 @@ check_add_gcc_compiler_flag("-Wcast-align") if(UNIX AND NOT APPLE) check_add_gcc_compiler_flag("-Qunused-arguments") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-add-needed -Wl,--as-needed -Wl,--no-undefined") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed -Wl,--no-undefined") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro,-z,now -pie") - set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-add-needed -Wl,--as-needed") + set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--as-needed") set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-z,relro,-z,now") endif() set(CMAKE_C_STANDARD 99) -set(CMAKE_CXX_STANDARD 17) +if(WITH_XC_BOTAN3) + set(CMAKE_CXX_STANDARD 20) +else() + set(CMAKE_CXX_STANDARD 17) +endif() set(CMAKE_CXX_STANDARD_REQUIRED ON) check_cxx_compiler_flag("-fsized-deallocation" CXX_HAS_fsized_deallocation) @@ -447,17 +493,20 @@ include(CLangFormat) set(QT_COMPONENTS Core Network Concurrent Gui Svg Widgets Test LinguistTools) if(UNIX AND NOT APPLE) - find_package(Qt5 COMPONENTS ${QT_COMPONENTS} DBus X11Extras REQUIRED) + if(WITH_XC_X11) + list(APPEND QT_COMPONENTS X11Extras) + endif() + find_package(Qt5 COMPONENTS ${QT_COMPONENTS} DBus REQUIRED) elseif(APPLE) find_package(Qt5 COMPONENTS ${QT_COMPONENTS} REQUIRED HINTS - /usr/local/opt/qt/lib/cmake - /usr/local/Cellar/qt/*/lib/cmake - /opt/homebrew/opt/qt/lib/cmake + /usr/local/opt/qt@5/lib/cmake + /usr/local/Cellar/qt@5/*/lib/cmake + /opt/homebrew/opt/qt@5/lib/cmake ENV PATH) find_package(Qt5 COMPONENTS MacExtras HINTS - /usr/local/opt/qt/lib/cmake - /usr/local/Cellar/qt/*/lib/cmake - /opt/homebrew/opt/qt/lib/cmake + /usr/local/opt/qt@5/lib/cmake + /usr/local/Cellar/qt@5/*/lib/cmake + /opt/homebrew/opt/qt@5/lib/cmake ENV PATH) else() find_package(Qt5 COMPONENTS ${QT_COMPONENTS} REQUIRED) @@ -467,7 +516,17 @@ if(Qt5Core_VERSION VERSION_LESS "5.2.0") message(FATAL_ERROR "Qt version 5.2.0 or higher is required") endif() +# CBOR for Passkeys requires Qt 5.12 +if(Qt5Core_VERSION VERSION_LESS "5.12.0") + message(STATUS "Qt version 5.12.0 or higher is required for Passkeys support") + set(WITH_XC_BROWSER_PASSKEYS OFF) +endif() + get_filename_component(Qt5_PREFIX ${Qt5_DIR}/../../.. REALPATH) +if(APPLE) + # Add includes under Qt5 Prefix in case Qt6 is also installed + include_directories(SYSTEM ${Qt5_PREFIX}/include) +endif() # Process moc automatically set(CMAKE_AUTOMOC ON) @@ -496,12 +555,6 @@ endif() # Make sure we don't enable asserts there. set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_NONE QT_NO_DEBUG) -# Find Botan2 -find_package(Botan2 REQUIRED) -if(BOTAN2_VERSION VERSION_LESS "2.11.0") - message(FATAL_ERROR "Botan2 2.11.0 or higher is required") -endif() -include_directories(SYSTEM ${BOTAN2_INCLUDE_DIR}) # Find Argon2 -- Botan 2.18 and below does not support threaded Argon2 find_library(ARGON2_LIBRARIES NAMES argon2) find_path(ARGON2_INCLUDE_DIR NAMES argon2.h PATH_SUFFIXES local/include) @@ -514,9 +567,18 @@ if(ZLIB_VERSION_STRING VERSION_LESS "1.2.0") endif() include_directories(SYSTEM ${ZLIB_INCLUDE_DIR}) +# Find Minizip +find_package(Minizip REQUIRED) + if(WITH_XC_YUBIKEY) find_package(PCSC REQUIRED) include_directories(SYSTEM ${PCSC_INCLUDE_DIRS}) + + if(UNIX AND NOT APPLE) + find_library(LIBUSB_LIBRARIES NAMES usb-1.0 REQUIRED) + find_path(LIBUSB_INCLUDE_DIR NAMES libusb.h PATH_SUFFIXES "libusb-1.0" "libusb" REQUIRED) + include_directories(SYSTEM ${LIBUSB_INCLUDE_DIR}) + endif() endif() if(UNIX) diff --git a/COPYING b/COPYING index 35cfc1b1e..6baf4c27e 100644 --- a/COPYING +++ b/COPYING @@ -1,5 +1,5 @@ KeePassXC - http://www.keepassxc.org/ -Copyright (C) 2016-2020 KeePassXC Team +Copyright (C) 2016-2023 KeePassXC Team This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -27,28 +27,24 @@ Copyright: 2010-2012, Felix Geyer 2000-2008, Tom Sato 2013, Laszlo Papp 2013, David Faure - 2016-2020, KeePassXC Team + 2016-2023, KeePassXC Team License: GPL-2 or GPL-3 Comment: The "KeePassXC Team" in every copyright notice is formed by the following people: - droidmonkey - phoerious - - TheZ3ro + - varjolintu + - hifi - louib - - weslly Every other contributor is listed on https://github.com/keepassxreboot/keepassxc/graphs/contributors Files: cmake/CodeCoverage.cmake Copyright: 2012 - 2015, Lars Bilke License: BSD-3-clause -Files: cmake/FindYubiKey.cmake -Copyright: 2014 Kyle Manna -License: GPL-2 or GPL-3 - -Files: cmake/FindBotan2.cmake -Copyright: 2018 Ribose Inc. -License: BSD-2-clause +Files: cmake/FindBotan.cmake +Copyright: none +License: LGPL-2.1 Files: cmake/GenerateProductVersion.cmake Copyright: 2015 halex2005 @@ -144,10 +140,23 @@ Files: share/icons/badges/2_Expired.svg Copyright: 2022 KeePassXC Team License: MIT -Files: share/icons/application/scalable/actions/chevron-double-down.svg +Files: share/icons/application/scalable/actions/application-exit.svg + share/icons/application/scalable/actions/attributes-copy.svg + share/icons/application/scalable/actions/auto-type.svg + share/icons/application/scalable/actions/bitwarden.svg + share/icons/application/scalable/actions/bugreport.svg + share/icons/application/scalable/actions/chevron-double-down.svg share/icons/application/scalable/actions/chevron-double-right.svg + share/icons/application/scalable/actions/clipboard-text.svg + share/icons/application/scalable/actions/configure.svg + share/icons/application/scalable/actions/csv.svg + share/icons/application/scalable/actions/database-change-key.svg share/icons/application/scalable/actions/database-lock.svg share/icons/application/scalable/actions/database-lock-all.svg + share/icons/application/scalable/actions/database-merge.svg + share/icons/application/scalable/actions/database-search.svg + share/icons/application/scalable/actions/dialog-close.svg + share/icons/application/scalable/actions/dialog-ok.svg share/icons/application/scalable/actions/document-close.svg share/icons/application/scalable/actions/document-edit.svg share/icons/application/scalable/actions/document-export.svg @@ -159,43 +168,63 @@ Files: share/icons/application/scalable/actions/chevron-double-down.svg share/icons/application/scalable/actions/document-save.svg share/icons/application/scalable/actions/document-save-as.svg share/icons/application/scalable/actions/document-save-copy.svg + share/icons/application/scalable/actions/donate.svg share/icons/application/scalable/actions/edit-clear-locationbar-ltr.svg share/icons/application/scalable/actions/edit-clear-locationbar-rtl.svg share/icons/application/scalable/actions/entry-clone.svg share/icons/application/scalable/actions/entry-delete.svg + share/icons/application/scalable/actions/entry-restore.svg share/icons/application/scalable/actions/entry-edit.svg share/icons/application/scalable/actions/entry-new.svg share/icons/application/scalable/actions/favicon-download.svg share/icons/application/scalable/actions/fingerprint.svg - share/icons/application/scalable/actions/group-clone.svg + share/icons/application/scalable/actions/getting-started.svg share/icons/application/scalable/actions/group-delete.svg share/icons/application/scalable/actions/group-edit.svg + share/icons/application/scalable/actions/group-clone.svg share/icons/application/scalable/actions/group-empty-trash.svg share/icons/application/scalable/actions/group-new.svg share/icons/application/scalable/actions/hammer-wrench.svg share/icons/application/scalable/actions/health.svg share/icons/application/scalable/actions/help-about.svg share/icons/application/scalable/actions/lock-question.svg + share/icons/application/scalable/actions/keyboard-shortcuts.svg share/icons/application/scalable/actions/message-close.svg share/icons/application/scalable/actions/move-down.svg share/icons/application/scalable/actions/move-up.svg + share/icons/application/scalable/actions/object-locked.svg + share/icons/application/scalable/actions/object-unlocked.svg + share/icons/application/scalable/actions/onepassword.svg share/icons/application/scalable/actions/paperclip.svg share/icons/application/scalable/actions/password-copy.svg + share/icons/application/scalable/actions/passkey.svg share/icons/application/scalable/actions/password-generator.svg share/icons/application/scalable/actions/password-show-off.svg share/icons/application/scalable/actions/password-show-on.svg + share/icons/application/scalable/actions/qrcode.svg share/icons/application/scalable/actions/refresh.svg share/icons/application/scalable/actions/reports.svg share/icons/application/scalable/actions/reports-exclude.svg + share/icons/application/scalable/actions/sort-alphabetical-ascending.svg + share/icons/application/scalable/actions/sort-alphabetical-descending.svg share/icons/application/scalable/actions/statistics.svg share/icons/application/scalable/actions/system-help.svg share/icons/application/scalable/actions/system-search.svg + share/icons/application/scalable/actions/system-software-update.svg share/icons/application/scalable/actions/tag.svg + share/icons/application/scalable/actions/tag-multiple.svg share/icons/application/scalable/actions/tag-search.svg + share/icons/application/scalable/actions/totp.svg + share/icons/application/scalable/actions/totp-copy.svg + share/icons/application/scalable/actions/totp-copy-password.svg + share/icons/application/scalable/actions/totp-edit.svg share/icons/application/scalable/actions/trash.svg share/icons/application/scalable/actions/url-copy.svg + share/icons/application/scalable/actions/user-guide.svg share/icons/application/scalable/actions/username-copy.svg share/icons/application/scalable/actions/view-history.svg + share/icons/application/scalable/actions/web.svg + share/icons/application/scalable/actions/yubikey-refresh.svg share/icons/application/scalable/apps/internet-web-browser.svg share/icons/application/scalable/apps/keepassxc.svg share/icons/application/scalable/apps/keepassxc-dark.svg diff --git a/INSTALL.md b/INSTALL.md index 5bd818ec1..da62ffb88 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -6,34 +6,21 @@ For more information, see also the [_Building KeePassXC_](https://github.com/kee The [QuickStart Guide](https://keepassxc.org/docs/KeePassXC_GettingStarted.html) gets you started using KeePassXC on your Windows, macOS, or Linux computer using pre-compiled binaries from the [downloads page](https://keepassxc.org/download). -Build Dependencies -================== - -The following tools must exist within your PATH: - -* make -* cmake (>= 3.3.0) -* g++ (>= 4.7) or clang++ (>= 6.0) -* asciidoctor (>= 2.0) - -The following libraries are required: - -* Qt 5 (>= 5.9.5): qtbase5, qtbase5-private, libqt5svg5, qttools5, qt5-image-formats-plugins -* botan (>= 2.12) -* libargon2 -* zlib -* minizip -* readline (for completion in cli) -* qtx11extras, libxi, and libxtst (for auto-type on X11) -* qrencode -* libusb-1.0, pcsc-lite (for Yubikey support on Linux) - -Prepare the Building Environment +Toolchain and Build Dependencies ================================ -* [Building Environment on Linux](https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Linux) -* [Building Environment on Windows](https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Windows) -* [Building Environment on MacOS](https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-macOS) +The following build tools must exist within your PATH: + +* cmake (>= 3.10.0) +* make (>= 4.2) or ninja (>= 1.10) +* g++ (>= 4.9) or clang++ (>= 6.0) +* asciidoctor (>= 2.0) + +* Besides a working C++ toolchain, KeePassXC also has a number of direct build and runtime dependencies. For detailed information about how to install them, please refer to the GitHub wiki: + +* [Set up Build Environment on Linux](https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Linux) +* [Set up Build Environment on Windows](https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Windows) +* [Set up Build Environment on macOS](https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-macOS) Build Steps =========== @@ -57,13 +44,13 @@ To compile from source, open a **Terminal (Linux/MacOS)**, the **MSVC Tools Comm git pull ``` - For a stable build, it is recommended to check out the master branch. + For a stable build, it is recommended to check out the `latest` tag. ``` - git checkout master + git checkout latest ``` -2. Navigate to the directory where you have downloaded KeePassXC and type these commands: +2. Navigate to the directory where you have downloaded KeePassXC and run: ``` mkdir build @@ -71,40 +58,37 @@ To compile from source, open a **Terminal (Linux/MacOS)**, the **MSVC Tools Comm cmake -DWITH_XC_ALL=ON .. make ``` + +If you have `vcpkg` installed, add `-DCMAKE_TOOLCHAIN_FILE=${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake` to the `cmake` command to automatically download and install all required build and runtime dependencies locally to your build directory before compiling KeePassXC. Using `vcpkg` is the preferred way to install dependencies on macOS and required on Windows if using the MSVC toolchain. -Note: These steps place the compiled KeePassXC binary inside the `./build/src/` directory. +For more detailed build instructions for each platform, please refer to the [GitHub wiki](https://github.com/keepassxreboot/keepassxc/wiki/Building-KeePassXC). + +Note: These steps place the compiled KeePassXC binary inside the `./build/src/` directory (`src/KeePassXC.app/Contents/MacOS` on macOS). ## MacOS Build Notes -If you installed Qt5 via Homebrew, you should be able to compile KeePassXC without any changes. If CMake fails to find your Qt installation, you can specify it manually by adding the following parameter: +If you installed Qt5 via Homebrew and CMake fails to find your Qt installation, you can specify it manually by adding the following parameter: -`-DCMAKE_PREFIX_PATH=/usr/local/opt/qt/lib/cmake` - -(or whatever your Qt installation path is) +`-DCMAKE_PREFIX_PATH=$(brew --prefix qt5)/lib/cmake` When building with ASAN support on macOS, you need to use `export ASAN_OPTIONS=detect_leaks=0` before running the tests (LSAN is no supported on macOS). ## Windows Build Notes -For detailed build steps see the [Windows Build Instructions](https://github.com/keepassxreboot/keepassxc/wiki/Building-KeePassXC#windows). - -If you are using MSVC, you may have to specify your Vcpkg toolchain by adding the following CMake parameter: `-DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake` - If you are using MSYS2, you have to add ```-G "MSYS Makefiles"``` at the beginning of the cmake command. CMake Configuration Options ========================== -## Common Parameters +## Recommended CMake Build Parameters ``` --DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE= -DWITH_GUI_TESTS=ON ``` -## KeePassXC Parameters +## Additional CMake Parameters KeePassXC comes with a variety of build options that can turn on/off features. Most notably, we allow you to build the application with all TCP/IP networking code disabled. Please note that we still require and link against Qt5's network library in order to use local named pipes on all operating systems. Each of these build options are supplied at the time of calling cmake: @@ -112,6 +96,7 @@ KeePassXC comes with a variety of build options that can turn on/off features. M -DWITH_XC_AUTOTYPE=[ON|OFF] Enable/Disable Auto-Type (default: ON) -DWITH_XC_YUBIKEY=[ON|OFF] Enable/Disable YubiKey HMAC-SHA1 authentication support (default: OFF) -DWITH_XC_BROWSER=[ON|OFF] Enable/Disable KeePassXC-Browser extension support (default: OFF) +-DWITH_XC_BROWSER_PASSKEYS=[ON|OFF] Enable/Disable Passkeys support for browser integration (default: OFF) -DWITH_XC_NETWORKING=[ON|OFF] Enable/Disable Networking support (e.g., favicon downloading) (default: OFF) -DWITH_XC_SSHAGENT=[ON|OFF] Enable/Disable SSHAgent support (default: OFF) -DWITH_XC_FDOSECRETS=[ON|OFF] (Linux Only) Enable/Disable Freedesktop.org Secrets Service support (default:OFF) diff --git a/README.md b/README.md index a2245590e..0142a698b 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ KeePassXC has numerous features for novice and power users alike. Our goal is to * Command line interface (keepassxc-cli) * Auto-Open databases * KeeShare shared databases (import, export, and synchronize) -* SSH Agent +* SSH Agent integration * FreeDesktop.org Secret Service (replace Gnome keyring, etc.) * Additional encryption choices: Twofish and ChaCha20 diff --git a/cmake/FindBotan.cmake b/cmake/FindBotan.cmake new file mode 100644 index 000000000..94d9df98a --- /dev/null +++ b/cmake/FindBotan.cmake @@ -0,0 +1,65 @@ +# - Find botan +# Find the botan cryptographic library +# +# This module defines the following variables: +# BOTAN_FOUND - True if library and include directory are found +# If set to TRUE, the following are also defined: +# BOTAN_INCLUDE_DIRS - The directory where to find the header file +# BOTAN_LIBRARIES - Where to find the library files +# +# This file is in the public domain (https://github.com/vistle/vistle/blob/master/cmake/Modules/FindBOTAN.cmake) + +include(FindPackageHandleStandardArgs) + +set(BOTAN_VERSIONS botan-3 botan-2) +set(BOTAN_NAMES botan-3 botan-2 botan) +set(BOTAN_NAMES_DEBUG botand-3 botand-2 botand botan botan-3) + +find_path( + BOTAN_INCLUDE_DIR + NAMES botan/build.h + PATH_SUFFIXES ${BOTAN_VERSIONS} + DOC "The Botan include directory") +if(BOTAN_INCLUDE_DIR) + file(READ "${BOTAN_INCLUDE_DIR}/botan/build.h" build) + string(REGEX MATCH "BOTAN_VERSION_MAJOR ([0-9]*)" _ ${build}) + set(BOTAN_VERSION_MAJOR ${CMAKE_MATCH_1}) + string(REGEX MATCH "BOTAN_VERSION_MINOR ([0-9]*)" _ ${build}) + set(BOTAN_VERSION_MINOR ${CMAKE_MATCH_1}) + string(REGEX MATCH "BOTAN_VERSION_PATCH ([0-9]*)" _ ${build}) + set(BOTAN_VERSION_PATCH ${CMAKE_MATCH_1}) + set(BOTAN_VERSION "${BOTAN_VERSION_MAJOR}.${BOTAN_VERSION_MINOR}.${BOTAN_VERSION_PATCH}") +endif() + +find_library( + BOTAN_LIBRARY + NAMES ${BOTAN_NAMES} + PATH_SUFFIXES release/lib lib + DOC "The Botan (release) library") +if(MSVC) + find_library( + BOTAN_LIBRARY_DEBUG + NAMES ${BOTAN_NAMES_DEBUG} + PATH_SUFFIXES debug/lib lib + DOC "The Botan debug library") + find_package_handle_standard_args( + Botan + REQUIRED_VARS BOTAN_LIBRARY BOTAN_LIBRARY_DEBUG BOTAN_INCLUDE_DIR + VERSION_VAR BOTAN_VERSION) +else() + find_package_handle_standard_args( + Botan + REQUIRED_VARS BOTAN_LIBRARY BOTAN_INCLUDE_DIR + VERSION_VAR BOTAN_VERSION) +endif() + +if(BOTAN_FOUND) + set(BOTAN_INCLUDE_DIRS ${BOTAN_INCLUDE_DIR}) + if(MSVC) + set(BOTAN_LIBRARIES optimized ${BOTAN_LIBRARY} debug ${BOTAN_LIBRARY_DEBUG}) + else() + set(BOTAN_LIBRARIES ${BOTAN_LIBRARY}) + endif() +endif() + +mark_as_advanced(BOTAN_INCLUDE_DIR BOTAN_LIBRARY BOTAN_LIBRARY_DEBUG) diff --git a/cmake/FindBotan2.cmake b/cmake/FindBotan2.cmake deleted file mode 100644 index 20a9e7fc3..000000000 --- a/cmake/FindBotan2.cmake +++ /dev/null @@ -1,106 +0,0 @@ -# Copyright (c) 2018 Ribose Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS -# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -#.rst: -# FindBotan2 -# ----------- -# -# Find the botan-2 library. -# -# IMPORTED Targets -# ^^^^^^^^^^^^^^^^ -# -# This module defines :prop_tgt:`IMPORTED` targets: -# -# ``Botan2::Botan2`` -# The botan-2 library, if found. -# -# Result variables -# ^^^^^^^^^^^^^^^^ -# -# This module defines the following variables: -# -# :: -# -# BOTAN2_FOUND - true if the headers and library were found -# BOTAN2_INCLUDE_DIRS - where to find headers -# BOTAN2_LIBRARIES - list of libraries to link -# BOTAN2_VERSION - library version that was found, if any - -# find the headers -find_path(BOTAN2_INCLUDE_DIR - NAMES botan/version.h - PATH_SUFFIXES botan-2 -) - -# find the library -find_library(BOTAN2_LIBRARY NAMES botan-2 libbotan-2 botan) - -# determine the version -if(BOTAN2_INCLUDE_DIR AND EXISTS "${BOTAN2_INCLUDE_DIR}/botan/build.h") - file(STRINGS "${BOTAN2_INCLUDE_DIR}/botan/build.h" botan2_version_str - REGEX "^#define[\t ]+(BOTAN_VERSION_[A-Z]+)[\t ]+[0-9]+") - - string(REGEX REPLACE ".*#define[\t ]+BOTAN_VERSION_MAJOR[\t ]+([0-9]+).*" - "\\1" _botan2_version_major "${botan2_version_str}") - string(REGEX REPLACE ".*#define[\t ]+BOTAN_VERSION_MINOR[\t ]+([0-9]+).*" - "\\1" _botan2_version_minor "${botan2_version_str}") - string(REGEX REPLACE ".*#define[\t ]+BOTAN_VERSION_PATCH[\t ]+([0-9]+).*" - "\\1" _botan2_version_patch "${botan2_version_str}") - set(BOTAN2_VERSION "${_botan2_version_major}.${_botan2_version_minor}.${_botan2_version_patch}" - CACHE INTERNAL "The version of Botan which was detected") -endif() - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Botan2 - REQUIRED_VARS BOTAN2_LIBRARY BOTAN2_INCLUDE_DIR - VERSION_VAR BOTAN2_VERSION -) - -if(BOTAN2_FOUND) - set(BOTAN2_INCLUDE_DIRS ${BOTAN2_INCLUDE_DIR} ${PC_BOTAN2_INCLUDE_DIRS}) - set(BOTAN2_LIBRARIES ${BOTAN2_LIBRARY}) -endif() - -if(BOTAN2_FOUND AND NOT TARGET Botan2::Botan2) - # create the new library target - add_library(Botan2::Botan2 UNKNOWN IMPORTED) - # set the required include dirs for the target - if(BOTAN2_INCLUDE_DIRS) - set_target_properties(Botan2::Botan2 - PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${BOTAN2_INCLUDE_DIRS}" - ) - endif() - # set the required libraries for the target - if(EXISTS "${BOTAN2_LIBRARY}") - set_target_properties(Botan2::Botan2 - PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "${BOTAN2_LIBRARY}" - ) - endif() -endif() - -mark_as_advanced(BOTAN2_INCLUDE_DIR BOTAN2_LIBRARY) diff --git a/cmake/FindQREncode.cmake b/cmake/FindQREncode.cmake index 69850edf5..fdd98278c 100644 --- a/cmake/FindQREncode.cmake +++ b/cmake/FindQREncode.cmake @@ -15,12 +15,12 @@ find_path(QRENCODE_INCLUDE_DIR NAMES qrencode.h) -if (VCPKG_INSTALLED_DIR) - find_library(QRENCODE_LIBRARY_RELEASE qrencode) - find_library(QRENCODE_LIBRARY_DEBUG qrencoded) - set(QRENCODE_LIBRARY optimized ${QRENCODE_LIBRARY_RELEASE} debug ${QRENCODE_LIBRARY_DEBUG}) +if(WIN32 AND MSVC) + find_library(QRENCODE_LIBRARY_RELEASE qrencode) + find_library(QRENCODE_LIBRARY_DEBUG qrencoded) + set(QRENCODE_LIBRARY optimized ${QRENCODE_LIBRARY_RELEASE} debug ${QRENCODE_LIBRARY_DEBUG}) else() - find_library(QRENCODE_LIBRARY qrencode) + find_library(QRENCODE_LIBRARY qrencode) endif() mark_as_advanced(QRENCODE_LIBRARY QRENCODE_INCLUDE_DIR) diff --git a/cmake/compiler-checks/macos/control_biometry_support.mm b/cmake/compiler-checks/macos/control_biometry_support.mm new file mode 100644 index 000000000..1bfbab184 --- /dev/null +++ b/cmake/compiler-checks/macos/control_biometry_support.mm @@ -0,0 +1,5 @@ +#include + +int main() { + return static_cast(kSecAccessControlBiometryCurrentSet); +} \ No newline at end of file diff --git a/cmake/compiler-checks/macos/control_touch_id_support.mm b/cmake/compiler-checks/macos/control_touch_id_support.mm new file mode 100644 index 000000000..e78767498 --- /dev/null +++ b/cmake/compiler-checks/macos/control_touch_id_support.mm @@ -0,0 +1,5 @@ +#include + +int main() { + return static_cast(kSecAccessControlTouchIDCurrentSet); +} \ No newline at end of file diff --git a/cmake/compiler-checks/macos/control_watch_support.mm b/cmake/compiler-checks/macos/control_watch_support.mm new file mode 100644 index 000000000..fce69edc0 --- /dev/null +++ b/cmake/compiler-checks/macos/control_watch_support.mm @@ -0,0 +1,5 @@ +#include + +int main() { + return static_cast(kSecAccessControlWatch); +} \ No newline at end of file diff --git a/docs/FuzzTest.md b/docs/FuzzTest.md index 542999841..cb73fbd27 100644 --- a/docs/FuzzTest.md +++ b/docs/FuzzTest.md @@ -19,7 +19,7 @@ Optionally, build AFL from source: ## Building KeePassXC For Fuzzing -A special "instrumented build" is used that allows the fuzzer to look into the program as it executes. We place it in its own build directory so it doesn't confused with the production build. +A special "instrumented build" is used that allows the fuzzer to look into the program as it executes. We place it in its own build directory so it doesn't get confused with the production build. $ cd your_keepassxc_source_directory $ mkdir buildafl diff --git a/docs/UserGuide.adoc b/docs/UserGuide.adoc index 4000f5641..2ebd77793 100644 --- a/docs/UserGuide.adoc +++ b/docs/UserGuide.adoc @@ -29,6 +29,8 @@ include::topics/PasswordGenerator.adoc[tags=*] include::topics/BrowserPlugin.adoc[tags=*] +include::topics/Passkeys.adoc[tags=*] + include::topics/AutoType.adoc[tags=*] include::topics/KeeShare.adoc[tags=*] diff --git a/docs/images/autoopen.png b/docs/images/autoopen.png index a825accc2..3bc9ac85d 100644 Binary files a/docs/images/autoopen.png and b/docs/images/autoopen.png differ diff --git a/docs/images/autoopen_ifdevice.png b/docs/images/autoopen_ifdevice.png index 96af037fc..0bfb756f5 100644 Binary files a/docs/images/autoopen_ifdevice.png and b/docs/images/autoopen_ifdevice.png differ diff --git a/docs/images/autotype_entry_sequences.png b/docs/images/autotype_entry_sequences.png index 36b38348c..5c9581519 100644 Binary files a/docs/images/autotype_entry_sequences.png and b/docs/images/autotype_entry_sequences.png differ diff --git a/docs/images/autotype_entrylevel.png b/docs/images/autotype_entrylevel.png index 0c9479912..ea4e5a2cb 100644 Binary files a/docs/images/autotype_entrylevel.png and b/docs/images/autotype_entrylevel.png differ diff --git a/docs/images/autotype_selection_dialog.png b/docs/images/autotype_selection_dialog.png index ce94f6cfa..f7304513b 100644 Binary files a/docs/images/autotype_selection_dialog.png and b/docs/images/autotype_selection_dialog.png differ diff --git a/docs/images/autotype_selection_dialog_search.png b/docs/images/autotype_selection_dialog_search.png index 96d0fbeec..078a9c36f 100644 Binary files a/docs/images/autotype_selection_dialog_search.png and b/docs/images/autotype_selection_dialog_search.png differ diff --git a/docs/images/autotype_selection_dialog_type_menu.png b/docs/images/autotype_selection_dialog_type_menu.png index 08fb0f9ee..bf99ce627 100644 Binary files a/docs/images/autotype_selection_dialog_type_menu.png and b/docs/images/autotype_selection_dialog_type_menu.png differ diff --git a/docs/images/autotype_settings.png b/docs/images/autotype_settings.png index 624185a23..dd70000c8 100644 Binary files a/docs/images/autotype_settings.png and b/docs/images/autotype_settings.png differ diff --git a/docs/images/browser_advanced_settings.png b/docs/images/browser_advanced_settings.png index 9f4a8bd2f..60c6a8762 100644 Binary files a/docs/images/browser_advanced_settings.png and b/docs/images/browser_advanced_settings.png differ diff --git a/docs/images/browser_confirm_access_dialog.png b/docs/images/browser_confirm_access_dialog.png index 0e268e4ff..5bdd84502 100644 Binary files a/docs/images/browser_confirm_access_dialog.png and b/docs/images/browser_confirm_access_dialog.png differ diff --git a/docs/images/browser_database_settings.png b/docs/images/browser_database_settings.png index e8fb7d59e..2e4e28fd3 100644 Binary files a/docs/images/browser_database_settings.png and b/docs/images/browser_database_settings.png differ diff --git a/docs/images/browser_entry_settings.png b/docs/images/browser_entry_settings.png index 0a2b4dd71..3545f2bfa 100644 Binary files a/docs/images/browser_entry_settings.png and b/docs/images/browser_entry_settings.png differ diff --git a/docs/images/browser_extension_association.png b/docs/images/browser_extension_association.png index 1a2368eb0..3c3ef0ae9 100644 Binary files a/docs/images/browser_extension_association.png and b/docs/images/browser_extension_association.png differ diff --git a/docs/images/browser_extension_connect.png b/docs/images/browser_extension_connect.png index 74674745f..39caca0ad 100644 Binary files a/docs/images/browser_extension_connect.png and b/docs/images/browser_extension_connect.png differ diff --git a/docs/images/browser_extension_icons.png b/docs/images/browser_extension_icons.png index bd2ba77ef..e4fb1d8a3 100644 Binary files a/docs/images/browser_extension_icons.png and b/docs/images/browser_extension_icons.png differ diff --git a/docs/images/browser_extension_reload.png b/docs/images/browser_extension_reload.png index e3272582f..178c19ff0 100644 Binary files a/docs/images/browser_extension_reload.png and b/docs/images/browser_extension_reload.png differ diff --git a/docs/images/browser_fill_credentials.png b/docs/images/browser_fill_credentials.png index 5766f4a84..6be94ee2b 100644 Binary files a/docs/images/browser_fill_credentials.png and b/docs/images/browser_fill_credentials.png differ diff --git a/docs/images/browser_group_settings.png b/docs/images/browser_group_settings.png index c9dc5bd60..57794492d 100644 Binary files a/docs/images/browser_group_settings.png and b/docs/images/browser_group_settings.png differ diff --git a/docs/images/browser_settings.png b/docs/images/browser_settings.png index aa14eb4ce..a8dd708a0 100644 Binary files a/docs/images/browser_settings.png and b/docs/images/browser_settings.png differ diff --git a/docs/images/browser_statistics.png b/docs/images/browser_statistics.png index 5321ff8da..1417aeaa9 100644 Binary files a/docs/images/browser_statistics.png and b/docs/images/browser_statistics.png differ diff --git a/docs/images/clone_entry.png b/docs/images/clone_entry.png index bd3145fb9..e01b38e0b 100644 Binary files a/docs/images/clone_entry.png and b/docs/images/clone_entry.png differ diff --git a/docs/images/clone_entry_dialog.png b/docs/images/clone_entry_dialog.png index 8fd9d49c5..c4df4c575 100644 Binary files a/docs/images/clone_entry_dialog.png and b/docs/images/clone_entry_dialog.png differ diff --git a/docs/images/clone_entry_references.png b/docs/images/clone_entry_references.png index 99e16d6a4..ce4321c0c 100644 Binary files a/docs/images/clone_entry_references.png and b/docs/images/clone_entry_references.png differ diff --git a/docs/images/compact_mode_comparison.png b/docs/images/compact_mode_comparison.png index dbc4a31d1..ec37cfd9d 100644 Binary files a/docs/images/compact_mode_comparison.png and b/docs/images/compact_mode_comparison.png differ diff --git a/docs/images/csv_import.png b/docs/images/csv_import.png index 7867d0043..cddd2c4e0 100644 Binary files a/docs/images/csv_import.png and b/docs/images/csv_import.png differ diff --git a/docs/images/database_maintenance.png b/docs/images/database_maintenance.png index 4c3f2b4e0..4f994373d 100644 Binary files a/docs/images/database_maintenance.png and b/docs/images/database_maintenance.png differ diff --git a/docs/images/database_security.png b/docs/images/database_security.png index f2d8b0586..3ecf5fc3a 100644 Binary files a/docs/images/database_security.png and b/docs/images/database_security.png differ diff --git a/docs/images/database_security_credentials.png b/docs/images/database_security_credentials.png index bc947fbc6..2ae903f5c 100644 Binary files a/docs/images/database_security_credentials.png and b/docs/images/database_security_credentials.png differ diff --git a/docs/images/database_security_encryption.png b/docs/images/database_security_encryption.png index 86f0f9996..3718cd19f 100644 Binary files a/docs/images/database_security_encryption.png and b/docs/images/database_security_encryption.png differ diff --git a/docs/images/database_security_encryption_advanced.png b/docs/images/database_security_encryption_advanced.png index cb68078e2..deb112ac1 100644 Binary files a/docs/images/database_security_encryption_advanced.png and b/docs/images/database_security_encryption_advanced.png differ diff --git a/docs/images/database_settings.png b/docs/images/database_settings.png index 26a352590..1c26a6ee8 100644 Binary files a/docs/images/database_settings.png and b/docs/images/database_settings.png differ diff --git a/docs/images/database_view.png b/docs/images/database_view.png index 3d5dc4b3b..bf273c12f 100644 Binary files a/docs/images/database_view.png and b/docs/images/database_view.png differ diff --git a/docs/images/edit_entry.png b/docs/images/edit_entry.png index 8672a22b5..ad5b14652 100644 Binary files a/docs/images/edit_entry.png and b/docs/images/edit_entry.png differ diff --git a/docs/images/edit_entry_attachments.png b/docs/images/edit_entry_attachments.png index 42bef27da..fea995b52 100644 Binary files a/docs/images/edit_entry_attachments.png and b/docs/images/edit_entry_attachments.png differ diff --git a/docs/images/edit_entry_attributes.png b/docs/images/edit_entry_attributes.png index 047c4fd68..2a48669fb 100644 Binary files a/docs/images/edit_entry_attributes.png and b/docs/images/edit_entry_attributes.png differ diff --git a/docs/images/edit_entry_colors.png b/docs/images/edit_entry_colors.png index 0c9482a82..c2eff3969 100644 Binary files a/docs/images/edit_entry_colors.png and b/docs/images/edit_entry_colors.png differ diff --git a/docs/images/edit_entry_history.png b/docs/images/edit_entry_history.png index 9a6c1cbb4..e4856642b 100644 Binary files a/docs/images/edit_entry_history.png and b/docs/images/edit_entry_history.png differ diff --git a/docs/images/edit_entry_icons.png b/docs/images/edit_entry_icons.png index 1cc46cdec..7b2f0fae5 100644 Binary files a/docs/images/edit_entry_icons.png and b/docs/images/edit_entry_icons.png differ diff --git a/docs/images/edit_entry_properties.png b/docs/images/edit_entry_properties.png index c781192ae..a50c21ff0 100644 Binary files a/docs/images/edit_entry_properties.png and b/docs/images/edit_entry_properties.png differ diff --git a/docs/images/export_database.png b/docs/images/export_database.png index 92a417ac0..8f7f7b994 100644 Binary files a/docs/images/export_database.png and b/docs/images/export_database.png differ diff --git a/docs/images/import_wizard.png b/docs/images/import_wizard.png new file mode 100644 index 000000000..bba4cdd94 Binary files /dev/null and b/docs/images/import_wizard.png differ diff --git a/docs/images/install_wizard_1.png b/docs/images/install_wizard_1.png index a466f834b..a3b49c541 100644 Binary files a/docs/images/install_wizard_1.png and b/docs/images/install_wizard_1.png differ diff --git a/docs/images/install_wizard_2.png b/docs/images/install_wizard_2.png index b7c9c0712..f3ca19e16 100644 Binary files a/docs/images/install_wizard_2.png and b/docs/images/install_wizard_2.png differ diff --git a/docs/images/keeshare_application_settings.png b/docs/images/keeshare_application_settings.png index c3bb7f26c..5d22e85b6 100644 Binary files a/docs/images/keeshare_application_settings.png and b/docs/images/keeshare_application_settings.png differ diff --git a/docs/images/keeshare_group_settings.png b/docs/images/keeshare_group_settings.png index 51febf41f..8f9fa2175 100644 Binary files a/docs/images/keeshare_group_settings.png and b/docs/images/keeshare_group_settings.png differ diff --git a/docs/images/keeshare_shared_group.png b/docs/images/keeshare_shared_group.png index 4d23aca89..ef6886aa0 100644 Binary files a/docs/images/keeshare_shared_group.png and b/docs/images/keeshare_shared_group.png differ diff --git a/docs/images/kpxc_logo.png b/docs/images/kpxc_logo.png index 9af29eb30..8803335f1 100644 Binary files a/docs/images/kpxc_logo.png and b/docs/images/kpxc_logo.png differ diff --git a/docs/images/linux_store.png b/docs/images/linux_store.png index 7c63ca7be..aab68a0b3 100644 Binary files a/docs/images/linux_store.png and b/docs/images/linux_store.png differ diff --git a/docs/images/macos_install.png b/docs/images/macos_install.png index f72222786..5bd105170 100644 Binary files a/docs/images/macos_install.png and b/docs/images/macos_install.png differ diff --git a/docs/images/main_interface.png b/docs/images/main_interface.png index 088a05aaa..d598e4743 100644 Binary files a/docs/images/main_interface.png and b/docs/images/main_interface.png differ diff --git a/docs/images/new_db_wizard_1.png b/docs/images/new_db_wizard_1.png index 360033543..ea3cdc669 100644 Binary files a/docs/images/new_db_wizard_1.png and b/docs/images/new_db_wizard_1.png differ diff --git a/docs/images/new_db_wizard_2.png b/docs/images/new_db_wizard_2.png index 3c384e1d5..02191c665 100644 Binary files a/docs/images/new_db_wizard_2.png and b/docs/images/new_db_wizard_2.png differ diff --git a/docs/images/new_db_wizard_3.png b/docs/images/new_db_wizard_3.png index e6ac46769..fe8acd65c 100644 Binary files a/docs/images/new_db_wizard_3.png and b/docs/images/new_db_wizard_3.png differ diff --git a/docs/images/open_database.png b/docs/images/open_database.png index ca94c5cc8..e14841fe8 100644 Binary files a/docs/images/open_database.png and b/docs/images/open_database.png differ diff --git a/docs/images/passkeys_all_passkeys.png b/docs/images/passkeys_all_passkeys.png new file mode 100644 index 000000000..b61551e02 Binary files /dev/null and b/docs/images/passkeys_all_passkeys.png differ diff --git a/docs/images/passkeys_authentication_dialog.png b/docs/images/passkeys_authentication_dialog.png new file mode 100644 index 000000000..ab5f1ee1d Binary files /dev/null and b/docs/images/passkeys_authentication_dialog.png differ diff --git a/docs/images/passkeys_enable_from_extension.png b/docs/images/passkeys_enable_from_extension.png new file mode 100644 index 000000000..b0744c8cf Binary files /dev/null and b/docs/images/passkeys_enable_from_extension.png differ diff --git a/docs/images/passkeys_export_dialog.png b/docs/images/passkeys_export_dialog.png new file mode 100644 index 000000000..3e7fd36c3 Binary files /dev/null and b/docs/images/passkeys_export_dialog.png differ diff --git a/docs/images/passkeys_github_1.png b/docs/images/passkeys_github_1.png new file mode 100644 index 000000000..1bd0e731d Binary files /dev/null and b/docs/images/passkeys_github_1.png differ diff --git a/docs/images/passkeys_github_2.png b/docs/images/passkeys_github_2.png new file mode 100644 index 000000000..553e1c4c1 Binary files /dev/null and b/docs/images/passkeys_github_2.png differ diff --git a/docs/images/passkeys_github_3.png b/docs/images/passkeys_github_3.png new file mode 100644 index 000000000..dff08f198 Binary files /dev/null and b/docs/images/passkeys_github_3.png differ diff --git a/docs/images/passkeys_github_4.png b/docs/images/passkeys_github_4.png new file mode 100644 index 000000000..82c31eaad Binary files /dev/null and b/docs/images/passkeys_github_4.png differ diff --git a/docs/images/passkeys_github_5.png b/docs/images/passkeys_github_5.png new file mode 100644 index 000000000..305ed7f5f Binary files /dev/null and b/docs/images/passkeys_github_5.png differ diff --git a/docs/images/passkeys_import_dialog.png b/docs/images/passkeys_import_dialog.png new file mode 100644 index 000000000..58b07fc45 Binary files /dev/null and b/docs/images/passkeys_import_dialog.png differ diff --git a/docs/images/passkeys_import_passkey_to_entry.png b/docs/images/passkeys_import_passkey_to_entry.png new file mode 100644 index 000000000..abc106edc Binary files /dev/null and b/docs/images/passkeys_import_passkey_to_entry.png differ diff --git a/docs/images/passkeys_register_dialog.png b/docs/images/passkeys_register_dialog.png new file mode 100644 index 000000000..5750522b9 Binary files /dev/null and b/docs/images/passkeys_register_dialog.png differ diff --git a/docs/images/passkeys_update_dialog.png b/docs/images/passkeys_update_dialog.png new file mode 100644 index 000000000..5657a8b87 Binary files /dev/null and b/docs/images/passkeys_update_dialog.png differ diff --git a/docs/images/passphrase_generator.png b/docs/images/passphrase_generator.png index b8180b323..abe7f73a4 100644 Binary files a/docs/images/passphrase_generator.png and b/docs/images/passphrase_generator.png differ diff --git a/docs/images/password_generator.png b/docs/images/password_generator.png index 230d656af..7299629e0 100644 Binary files a/docs/images/password_generator.png and b/docs/images/password_generator.png differ diff --git a/docs/images/password_generator_advanced.png b/docs/images/password_generator_advanced.png index f32754e57..0e534e02d 100644 Binary files a/docs/images/password_generator_advanced.png and b/docs/images/password_generator_advanced.png differ diff --git a/docs/images/quick_unlock.png b/docs/images/quick_unlock.png index 7c878a567..bc47c6480 100644 Binary files a/docs/images/quick_unlock.png and b/docs/images/quick_unlock.png differ diff --git a/docs/images/quick_unlock_windows_hello.png b/docs/images/quick_unlock_windows_hello.png index 59ec70057..935ff305d 100644 Binary files a/docs/images/quick_unlock_windows_hello.png and b/docs/images/quick_unlock_windows_hello.png differ diff --git a/docs/images/save_database_backup.png b/docs/images/save_database_backup.png index ad543b4c3..c453de34b 100644 Binary files a/docs/images/save_database_backup.png and b/docs/images/save_database_backup.png differ diff --git a/docs/images/save_options.png b/docs/images/save_options.png index cf16c92e8..55c3e640f 100644 Binary files a/docs/images/save_options.png and b/docs/images/save_options.png differ diff --git a/docs/images/sshagent_application_settings.png b/docs/images/sshagent_application_settings.png index 7f07ee49b..8ac594c11 100644 Binary files a/docs/images/sshagent_application_settings.png and b/docs/images/sshagent_application_settings.png differ diff --git a/docs/images/sshagent_context_menu.png b/docs/images/sshagent_context_menu.png index 8bd280fde..d2743f6e9 100644 Binary files a/docs/images/sshagent_context_menu.png and b/docs/images/sshagent_context_menu.png differ diff --git a/docs/images/sshagent_entry_settings.png b/docs/images/sshagent_entry_settings.png index 263f55822..d2a405cbd 100644 Binary files a/docs/images/sshagent_entry_settings.png and b/docs/images/sshagent_entry_settings.png differ diff --git a/docs/images/sshagent_puttygen.png b/docs/images/sshagent_puttygen.png index ee68842b3..c463cc084 100644 Binary files a/docs/images/sshagent_puttygen.png and b/docs/images/sshagent_puttygen.png differ diff --git a/docs/images/theme_comparison.png b/docs/images/theme_comparison.png index 408bb892c..bc344c019 100644 Binary files a/docs/images/theme_comparison.png and b/docs/images/theme_comparison.png differ diff --git a/docs/images/theme_selection.png b/docs/images/theme_selection.png index 2b087a84e..0a67e2e4e 100644 Binary files a/docs/images/theme_selection.png and b/docs/images/theme_selection.png differ diff --git a/docs/images/toolbar.png b/docs/images/toolbar.png index 9ae4049ab..ed5c1c803 100644 Binary files a/docs/images/toolbar.png and b/docs/images/toolbar.png differ diff --git a/docs/images/totp_code_example.png b/docs/images/totp_code_example.png index cf6084bda..81b251977 100644 Binary files a/docs/images/totp_code_example.png and b/docs/images/totp_code_example.png differ diff --git a/docs/images/totp_setup.png b/docs/images/totp_setup.png index 2c975889e..c8027b654 100644 Binary files a/docs/images/totp_setup.png and b/docs/images/totp_setup.png differ diff --git a/docs/images/totp_usage_examples.png b/docs/images/totp_usage_examples.png index 25c358567..60ef63bd5 100644 Binary files a/docs/images/totp_usage_examples.png and b/docs/images/totp_usage_examples.png differ diff --git a/docs/images/uac_dialog.png b/docs/images/uac_dialog.png index 1477626c2..5838d6f7c 100644 Binary files a/docs/images/uac_dialog.png and b/docs/images/uac_dialog.png differ diff --git a/docs/images/unlock_database.png b/docs/images/unlock_database.png index 5cd3c37d8..953cbf51e 100644 Binary files a/docs/images/unlock_database.png and b/docs/images/unlock_database.png differ diff --git a/docs/images/welcome_screen.png b/docs/images/welcome_screen.png index 0b4695f0f..bb6ea742c 100644 Binary files a/docs/images/welcome_screen.png and b/docs/images/welcome_screen.png differ diff --git a/docs/man/keepassxc-cli.1.adoc b/docs/man/keepassxc-cli.1.adoc index c891e2d8b..5fd076f6e 100644 --- a/docs/man/keepassxc-cli.1.adoc +++ b/docs/man/keepassxc-cli.1.adoc @@ -16,7 +16,7 @@ = keepassxc-cli(1) KeePassXC Team -:docdate: 2020-08-31 +:docdate: 2022-08-20 :doctype: manpage :mansource: KeePassXC {revnumber} :manmanual: General Commands Manual @@ -66,6 +66,11 @@ It provides the ability to query and modify the entries of a KeePass database, d The key file will be created if the file that is referred to does not exist. If both the key file and password are empty, no database will be created. +*db-edit* [_options_] <__database__>:: + Edits a database. + When setting a key file, the key file will be created if the file that is referred to + does not exist. + *db-info* [_options_] <__database__>:: Show a database's information. @@ -154,7 +159,7 @@ It provides the ability to query and modify the entries of a KeePass database, d *--no-password*:: Deactivates the password key for the database. -*-y*, *--yubikey* <__slot__>:: +*-y*, *--yubikey* <__slot[:serial]__>:: Specifies a yubikey slot for unlocking the database. In a merge operation this option is used to specify the YubiKey slot for the first database. @@ -177,7 +182,7 @@ It provides the ability to query and modify the entries of a KeePass database, d *--no-password-from*:: Deactivates password key for the database to merge from. -*--yubikey-from* <__slot__>:: +*--yubikey-from* <__slot[:serial]__>:: YubiKey slot for the second database. *-s*, *--same-credentials*:: @@ -235,16 +240,24 @@ The same password generation options as documented for the generate command can If a unique matching entry is found it will be copied to the clipboard. If multiple entries are found they will be listed to refine the search. (no clip performed) -=== Create and Import options -*-k*, *--set-key-file* <__path__>:: +=== Db-create, Db-edit and Import options +*--set-key-file* <__path__>:: Set the key file for the database. *-p*, *--set-password*:: Set a password for the database. +=== Db-create, Import options *-t*, *--decryption-time* <__time__>:: Target decryption time in MS for the database. +=== Db-edit options +*--unset-password* <__path__>:: + Removes the password for the database. + +*--unset-key-file* <__path__>:: + Removes the key file for the database. + === Show options *-a*, *--attributes* <__attribute__>...:: Shows the named attributes. @@ -252,6 +265,9 @@ The same password generation options as documented for the generate command can If no attributes are specified and *-t* is not specified, a summary of the default attributes is given. Protected attributes will be displayed in clear text if specified explicitly by this option. +*--all*:: + Show all the attributes of the entry. + *-s*, *--show-protected*:: Shows the protected attributes in clear text. @@ -270,7 +286,7 @@ The same password generation options as documented for the generate command can Sets the Path of the wordlist for the diceware generator. The wordlist must have > 1000 words, otherwise the program will fail. If the wordlist has < 4000 words a warning will be printed to STDERR. - Any *diceware*-compatible wordlist can used. Note however that *KeePassXC* will NOT verify the PGP signature of signed wordlists. + Any *diceware*-compatible wordlist can be used. Note however that *KeePassXC* will NOT verify the PGP signature of signed wordlists. === Export options *-f*, *--format*:: diff --git a/docs/man/keepassxc.1.adoc b/docs/man/keepassxc.1.adoc index a37c9a098..16e10de9c 100644 --- a/docs/man/keepassxc.1.adoc +++ b/docs/man/keepassxc.1.adoc @@ -49,9 +49,6 @@ Your wallet works offline and requires no Internet connection. *--pw-stdin*:: Read password of the database from stdin. -*--pw*, *--parent-window* <__handle__>:: - Parent window handle. - *--debug-info*:: Displays debugging information. diff --git a/docs/topics/AutoType.adoc b/docs/topics/AutoType.adoc index 836d2c7d1..04c5e7b96 100644 --- a/docs/topics/AutoType.adoc +++ b/docs/topics/AutoType.adoc @@ -1,4 +1,4 @@ -= KeePassXC - Auto-Type += KeePassXC – Auto-Type :imagesdir: ../images // tag::content[] diff --git a/docs/topics/BrowserPlugin.adoc b/docs/topics/BrowserPlugin.adoc index 9435a1c9c..f36767492 100644 --- a/docs/topics/BrowserPlugin.adoc +++ b/docs/topics/BrowserPlugin.adoc @@ -1,4 +1,4 @@ -= KeePassXC - Browser Plugin += KeePassXC – Browser Plugin include::.sharedheader[] :imagesdir: ../images diff --git a/docs/topics/DatabaseOperations.adoc b/docs/topics/DatabaseOperations.adoc index af3ca6c32..f29e4b3d6 100644 --- a/docs/topics/DatabaseOperations.adoc +++ b/docs/topics/DatabaseOperations.adoc @@ -1,4 +1,4 @@ -= KeePassXC - Database Operations += KeePassXC – Database Operations include::.sharedheader[] :imagesdir: ../images @@ -11,22 +11,22 @@ To create a database, perform the following steps: 1. Open your KeePassXC application. Click the create new database button *(A)*: + -.Create database - Welcome screen +.Create database – Welcome screen image::welcome_screen.png[] 2. The database creation wizard appears. Enter the desired database name and a short description (optional): + -.Create database - General information +.Create database – General information image::new_db_wizard_1.png[,80%] -3. Click Continue. The Encryption Settings screen appears, we don't recommend making any changes besides increasing or decreasing the decryption time using the slider. Setting the Decryption Time slider at a higher values means that the database will have higher level of protection but the time taken by the database to open will increase. +3. Click Continue. The Encryption Settings screen appears, we don't recommend making any changes besides increasing or decreasing the decryption time using the slider. Setting the Decryption Time slider at higher values means that the database will have higher level of protection but the time taken by the database to open will increase. + -.Create database - Encryption settings +.Create database – Encryption settings image::new_db_wizard_2.png[,80%] 4. Click the Continue button. The Database Credentials screen appears, enter your desired database password. We recommend using a long, randomized password. + -.Create database - Database credentials +.Create database – Database credentials image::new_db_wizard_3.png[,80%] + *(A)* Open the password generator + @@ -44,7 +44,7 @@ To open an existing database, perform the following steps: .Open an existing database image::open_database.png[] -2. Navigate to the location of the your database on your computer and open the database file. The database unlock screen will appear: +2. Navigate to the location of the database on your computer and open the database file. The database unlock screen will appear: + .Database unlock screen image::unlock_database.png[] @@ -61,7 +61,7 @@ image::database_view.png[] === Quick Unlock On Windows and macOS, subject to hardware availability, your credentials can be securely stored to enable subsequent unlocking of your database through biometric authentication. This is enabled by default on Windows using _Windows Hello_ and on macOS using _Touch ID or Apple Watch_ services. You can disable this feature in the Application Settings under the Security section. -NOTE: On Windows you will be prompted to authenticate to Windows Hello on the initial database unlock. This is required to access the hardware certificate store that encrypts your credentials. +NOTE: On Windows, you will be prompted to authenticate to Windows Hello after unlocking your database with full credentials. This is required to setup Quick Unlock. If you cancel this prompt then Quick Unlock will not be enabled and your database will continue to unlock. .Windows Hello example image::quick_unlock_windows_hello.png[] @@ -84,7 +84,7 @@ There are three ways that KeePassXC can handle database files. This behavior is 3. *Direct-write saves* write directly to the existing database file. This is an unsafe operation since any interruption can leave your entire database inaccessible. We only recommend using this option when interfacing with Linux GVFS services (e.g. Google Cloud on Gnome) and other types of storage services that host a virtual drive system. -In addition to these save options, KeePassXC can create a backup of your existing database file just prior to saving. This backup can be placed in a custom folder with a custom file naming scheme. +In addition to these save options, KeePassXC can create a backup of your existing database file just prior to saving. This backup will be saved at the path specified in the *Backup destination* field. This path can be absolute or relative. The latter will be resolved according to the databases path. It is possible to specify a custom naming scheme with placeholders. See xref:UserGuide.adoc#_backup_path_placeholders[Backup Path Placeholders] for available placeholders and examples. image::save_options.png[] // end::advanced[] @@ -196,7 +196,7 @@ KeePassXC provides an enhanced and granular search features the enables you to s |* |Term is handled as a regular expression |=== -The following fields can be searched along with their abbreviated name in parenthesis: +The following fields can be searched along with their abbreviated name in parentheses: * Title (t) * Username (u) @@ -242,7 +242,7 @@ The following tables lists a few samples search queries for your reference: == Advanced Entry Options === Additional Attributes -A lot of applications and web sites now require to provide additional information when you create accounts. The additional information is used to block hackers if any suspicious activity is detected. In addition, the additional information you provide can be used to reset passwords if you forget them. You can also store arbitrary information here that can be copied to the clipboard or Auto-Typed using the `{S:}` action code. +A lot of applications and web sites now require providing additional information when you create accounts. The additional information is used to block hackers if any suspicious activity is detected. In addition, the additional information you provide can be used to reset passwords if you forget them. You can also store arbitrary information here that can be copied to the clipboard or Auto-Typed using the `{S:}` action code. To protect an attribute from being displayed by default, activate the _Protect_ checkbox *(A)*. To show the contents of the attribute while keeping it protected, press the _Reveal_ button *(B)*. @@ -332,7 +332,7 @@ image::database_settings.png[] * *Max history items:* This is the maximum number of history items that are stored for each entry. When you set this to 0, no history will be saved. Set this value to a low value to prevent the database from getting too large (we recommend no more than 10). * *Max. history size:* When the history of an entry gets above this size, it is truncated. For example, this happens when entries have large attachments. Set this value small to prevent the database from getting too large (we recommend 6 MiB). * *Use recycle bin:* Select this check-box if you want deleted entries to move to the recycle bin instead of being permanently removed. The recycle bin will be created if it does not already exist after your first deletion. To delete entries permanently, you must empty the recycle bin manually. - * *Enable compression:* KeePassXC databases can be compressed before being encrypted. Compression reduces the size of the database and does not have any appreciable affect on speed. It is recommended to always save databases with compression. + * *Enable compression:* KeePassXC databases can be compressed before being encrypted. Compression reduces the size of the database and does not have any appreciable affect on speed. It is recommended to always save databases with compression. 3. Click the Security button in the left-hand menu bar to change your database credentials and change encryption settings. + @@ -346,7 +346,7 @@ image::database_security_credentials.png[] + WARNING: Consider creating a backup of your YubiKey. Please refer to <> -5. Encryption settings allows you to change the average time it takes to encrypt and decrypt the database. The longer time that is chosen, the harder it will be to brute force attack your database. *We recommend a setting of one second.* +5. Encryption settings allow you to change the average time it takes to encrypt and decrypt the database. The longer time that is chosen, the harder it will be to brute force attack your database. *We recommend a setting of one second.* + .Database encryption image::database_security_encryption.png[] @@ -362,7 +362,7 @@ The following key derivation functions are supported: * AES-KDF (KDBX 4 and KDBX 3.1): This key derivation function is based on iterating AES. Users can change the number of iterations. The more iterations, the harder are dictionary and guessing attacks, but also database loading/saving takes more time (linearly). KDBX 3.1 only supports AES-KDF; any other key derivation function, like for instance Argon2, requires KDBX 4. - * Argon2 (KDBX 4 - recommended): KDBX 4, the Argon2 key derivation function can be used for transforming the composite master key (as protection against dictionary attacks). The main advantage of Argon2 over AES-KDF is that it provides a better resistance against GPU/ASIC attacks (due to being a memory-hard function). The number of iterations scales linearly with the required time. By increasing the memory parameter, GPU/ASIC attacks become harder and the required time increases. The parallelism parameter can be used to specify how many threads should be used. We recommend using Argon2id to prevent against timing-based attacks. Argon2d offers maximum compatibility with other KeePass-based apps, the default settings provide sufficient protection against any known attacks. + * Argon2 (KDBX 4 – recommended): KDBX 4, the Argon2 key derivation function can be used for transforming the composite master key (as protection against dictionary attacks). The main advantage of Argon2 over AES-KDF is that it provides a better resistance against GPU/ASIC attacks (due to being a memory-hard function). The number of iterations scales linearly with the required time. By increasing the memory parameter, GPU/ASIC attacks become harder and the required time increases. The parallelism parameter can be used to specify how many threads should be used. We recommend using Argon2id to prevent against timing-based attacks. Argon2d offers maximum compatibility with other KeePass-based apps, the default settings provide sufficient protection against any known attacks. == Database Maintenance KeePassXC offers some maintenance features that can be applied to clean up your database. Navigate to _Database_ -> _Database settings_ then click on _Maintenance_ on the left hand panel. The following screen appears. On this screen you can delete multiple icons at once and purge any unused icons in your database. @@ -395,9 +395,9 @@ The database file that you create might contain highly sensitive data and must b Make sure that you or someone else does not accidentally delete the database file. Deletion of the database file will result in the total loss of all your information (including all your passwords!) and a lot of inconvenience to manually retrieve your logins for various web applications. Do not share the credentials to access your database file with anyone unless you absolutely trust them (spouse, child, etc.). -TIP: You can safely store your database file in the cloud (e.g., OneDrive, Dropbox, Google Drive, Nextcloud, Syncthing, etc). The database file is always fully encrypted; unencrypted data is never written to disk and is never accessible to your cloud storage provider. We recommend using a storage service that keeps automatic backups (version history) of your database file in the event of corruption or accidental deletion. +TIP: You can safely store your database file in the cloud (OneDrive, Dropbox, Google Drive, Nextcloud, Syncthing, etc.). The database file is always fully encrypted; unencrypted data is never written to disk and is never accessible to your cloud storage provider. We recommend using a storage service that keeps automatic backups (version history) of your database file in the event of corruption or accidental deletion. -== Backing up a Database File +== Backing up a Database File It is a good practice to create copies of your database file and store the copies of your database on a different computer, smart phone, or cloud storage space such a Google Drive or Microsoft OneDrive. Backups can be created automatically by selecting the _Backup database file before saving_ option in the application settings. Additionally, you can create a backup on-demand using the _Database_ -> _Save Database Backup..._ menu feature. .Saving a database backup diff --git a/docs/topics/Disclaimers.adoc b/docs/topics/Disclaimers.adoc index a8e9be57c..419778ace 100644 --- a/docs/topics/Disclaimers.adoc +++ b/docs/topics/Disclaimers.adoc @@ -21,12 +21,3 @@ Special, incidental or consequential damages arising out of the use or inability Limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of The program to operate with any other programs), even if such holder or other party has been advised of the possibility Of such damages. - -== Contact Us - -We are committed to continually improve KeePassXC through customer experience and your feedback is important to us. -Please send us your feedback or comments to team@keepassxc.org. -To report issues, visit: https://github.com/keepassxreboot/keepassxc. - -Thank You, + -Team KeePassXC diff --git a/docs/topics/DownloadInstall.adoc b/docs/topics/DownloadInstall.adoc index e96c885de..f5a967ec5 100644 --- a/docs/topics/DownloadInstall.adoc +++ b/docs/topics/DownloadInstall.adoc @@ -1,4 +1,4 @@ -= KeePassXC - Download and Install += KeePassXC – Download and Install include::.sharedheader[] :imagesdir: ../images @@ -8,9 +8,9 @@ KeePassXC is available for download for the following operating systems and plat * Microsoft Windows ** Portable and MSI Installer (64-bit and 32-bit) -* Linux - Official Cross-Distribution Packages +* Linux – Official Cross-Distribution Packages ** AppImage and Snap Package -* Linux - Distribution-Specific Packages +* Linux – Distribution-Specific Packages ** Ubuntu, Debian, Arch Linux, Gentoo, Fedora, CentOS, and OpenSUSE * macOS ** DMG Installer, Homebrew Cask @@ -45,9 +45,9 @@ image::install_wizard_2.png[,80%] The following options can be set when running the MSI in an unattended installation: -* *LAUNCHAPPONEXIT* - Launch KeePassXC after install (default ON) -* *AUTOSTARTPROGRAM* - KeePassXC will auto-start on login (default ON) -* *INSTALLDESKTOPSHORTCUT* - A desktop icon will be installed (default OFF) +* *LAUNCHAPPONEXIT* – Launch KeePassXC after install (default ON) +* *AUTOSTARTPROGRAM* – KeePassXC will auto-start on login (default ON) +* *INSTALLDESKTOPSHORTCUT* – A desktop icon will be installed (default OFF) Example: `msiexec.exe /q /i KeePassXC-Y.Y.Y-WinZZ.msi AUTOSTARTPROGRAM=0` @@ -69,4 +69,4 @@ image::macos_install.png[,80%] // end::content[] // tag::advanced[] -// end::advanced[] \ No newline at end of file +// end::advanced[] diff --git a/docs/topics/ImportExport.adoc b/docs/topics/ImportExport.adoc index f56135a1c..bcae4ce57 100644 --- a/docs/topics/ImportExport.adoc +++ b/docs/topics/ImportExport.adoc @@ -1,61 +1,74 @@ -= KeePassXC - Import/Export Operations += KeePassXC – Import/Export Operations include::.sharedheader[] :imagesdir: ../images // tag::content[] == Importing External Databases -KeePassXC allows your to import external databases from the following options: +KeePassXC allows you to import external databases from the following options: -* Comma-Separated Values (CSV) file -* 1Password OPVault -* KeePass 1 Database +* Comma Separated Values (.csv) +* 1Password Export (.1pux) +* 1Password Vault (.opvault) +* Bitwarden (.json) +* KeePass 1 Database (.kdb) + +To import any of these files, start KeePassXC and either click the `Import File` button on the welcome screen or use the menu Database > Import... to launch the Import Wizard. + +.Import Wizard +image::import_wizard.png[] + +For each of the import options, you will be prompted to select the file to import and then provide credentials to unlock the file, if necessary. You can then choose to import the file into a new database or into an existing database that is already unlocked in KeePassXC. === Importing CSV File -If you have been saving your URLs, usernames, passwords, and so on in a CSV file, you can migrate all that information from the CSV file to KeePassXC and start using KeePassXC to maintain your data. +WARNING: A CSV file is unencrypted and you should securely delete this file after successfully importing it into KeePassXC. -To open the CSV file, perform the following steps: +1. Follow the steps above and click `Continue`. The CSV import wizard will appear. -1. Open KeePassXC. - -2. Click Import from CSV button on the welcome screen or use the menu Database > Import > CSV File. - -3. Navigate to the location of the your CSV file on your computer and open the file. The new database wizard will appear. Follow the steps of creating a new database in Chapter 1. - -4. After saving your new database file, the CSV import wizard will appear. On this dialog you can choose the various options for properly importing the data. You may need to select the _First line has field names_ checkbox before starting. Analyze the output in the preview at the bottom to determine the correct import settings. +2. On this dialog you can choose the various options for properly importing the data. Analyze the output in the preview at the bottom to determine the correct import settings. You may need to re-map the column associations to match the data in your CSV file. + .CSV Import Wizard image::csv_import.png[] -Your CSV file gets imported to KeePassXC and the data is converted to the KeePassXC format for further usage and maintenance. The new database file is saved on to your computer with the default `.kdbx` extension. +3. Click `Done` to complete the import. If you chose to create a new database, the New Database dialog will appear. Otherwise your entries will be nested under the group you chose for the existing database. + +=== Importing 1Password Export +WARNING: A 1Password Export file is unencrypted and you should securely delete this file after successfully importing it into KeePassXC. + +1. Open the Import Wizard as shown above. Select the 1Password Export option. + +2. Click `Continue` to unlock and preview the import. Click `Done` to complete the import. === Importing 1Password OPVault +NOTE: You must have 1Password version 7 or 8 to export your data to an OPVault. If you are using a newer version of 1Password, you should use the 1Password Export (1PUX) format instead. + Save your 1Password Vault locally to create an OPVault directory. Please see 1Password instructions on how to do this. Once an OPVault is created, perform the following steps: -1. Open KeePassXC. +1. Open the Import Wizard as shown above. Select the 1Password Vault option. -2. Use the menu Database > Import > 1Password Vault. Select the OPVault to import. +2. Enter the password for your vault and click `Continue` to unlock and preview the import. Click `Done` to complete the import. -3. Enter the password for your OPVault to unlock and import. +=== Importing Bitwarden +WARNING: A Bitwarden Export file may be unencrypted and you should securely delete this file after successfully importing it into KeePassXC. + +1. Open the Import Wizard as shown above. Select the Bitwarden option. + +2. Optionally provide a password to decrypt the Bitwarden export file. You should only need to do this if you have chosen the encrypted json export option within Bitwarden. + +3. Click `Continue` to unlock and preview the import. Click `Done` to complete the import. === Importing KeePass 1 Database -KeePass 1 database is an older format of the database created using legacy version of KeePass. KeePassXC lets your import this older format of the database and you can seamlessly start using this database in your new KeePassXC application. +KeePass 1 database is an older format of the database created using a legacy version of KeePass. KeePassXC lets your import this older format of the database and you can seamlessly start using this database in your new KeePassXC application. To import a KeePass 1 database file in KeePassXC, perform the following steps: -1. Open KeePassXC. +1. Open the Import Wizard as shown above. Select the KeePass1 Database option. -2. Click Import from KeePass 1 button on the welcome screen or use the menu Database > Import > KeePass 1 Database. +2. Enter the password for your database and optionally provide a key file if it was configured for your KeePass1 database. -3. Navigate to the location of the your legacy KeePass 1 database file (`.kdb`) on your computer and open the file. You are prompted for the password and the Key file for your `.kdb` file. - -4. Enter the password for your old `.kdb` file and click *OK*. You are prompted for provide a name for the new database format that KeePassXC recognizes. - -5. Provide a name for the new database format, select a folder on your computer to save the file, and click Save. - -6. The data from the `.kdb` file gets imported and converted to the new format, which is compatible with KeePassXC. You can now start using the new database file (`.kdbx`) in KeePassXC. +3. Click `Continue` to unlock and preview the import. Click `Done` to complete the import. == Exporting Databases -KeePassXC supports multiple ways to export your database for transfer to another program or to print out and archive. To export your database into the KDB XML format, you must use the KeePassXC CLI: `keepassxc-cli export `. +KeePassXC supports multiple ways to export your database for transfer to another program or to print out and archive. WARNING: Exporting your database will result in all of your passwords and sensitive information being stored in an unencrypted format. We do not recommend saving your exported database for long periods of time as that can cause a compromise of sensitive information. diff --git a/docs/topics/KeeShare.adoc b/docs/topics/KeeShare.adoc index 306389f88..75769bdb4 100644 --- a/docs/topics/KeeShare.adoc +++ b/docs/topics/KeeShare.adoc @@ -1,4 +1,4 @@ -= KeePassXC - KeeShare += KeePassXC – KeeShare include::.sharedheader[] :imagesdir: ../images @@ -17,17 +17,17 @@ To use sharing, you need to enable it for the application. image::keeshare_application_settings.png[] === Sharing Credentials -If you checked _Allow export_ in the Sharing settings you can now share a group of passwords. Sharing is always is defined on a particular group. If you enable sharing on a group, every entry under this group, and its children, are shared. If you enable sharing on the root node, **every password** inside your database gets shared! +If you checked _Allow export_ in the Sharing settings you can now share a group of passwords. Sharing is always defined on a particular group. If you enable sharing on a group, every entry under this group, and its children, are shared. If you enable sharing on the root node, **every password** inside your database gets shared! NOTE: KeeShare does not synchronize group structure after the initial share is created. At this time, KeeShare operates at the entry level; shared entries moved outside of a shared group are still synchronized. 1. Open the edit sheet on a group you want to share. 2. Select the KeeShare category on the left toolbar. 3. Choose a sharing type: - a. *Inactive* - Disable sharing this group - b. *Import* - Read-only import of entries, merge changes - c. *Export* - Write-only export of entries, no merge - d. *Synchronize* - Read/Write entries from the share, merge changes + a. *Inactive* – Disable sharing this group + b. *Import* – Read-only import of entries, merge changes + c. *Export* – Write-only export of entries, no merge + d. *Synchronize* – Read/Write entries from the share, merge changes 4. Choose a path to store the shared credentials to. 5. The password to use for this share container. @@ -45,7 +45,7 @@ A shared group shows a cloud icon badge over the group icon *(A)* and a banner i image::keeshare_shared_group.png[] === Technical Details and Limitations of Sharing -Sharing relies on the combination of file exports and imports as well as the synchronization mechanism provided by KeePassXC. Since the merge algorithm uses the history of entries to prevent data loss, this history must be enabled and have a sufficient size. Furthermore, the merge algorithm is location independent, therefore it does not matter if entries are moved outside of an import group. These entries will be updated none the less. Moving entries outside of export groups will prevent a further export of the entry, but it will not ensure that the already shared data will be removed from any client. +Sharing relies on the combination of file exports and imports as well as the synchronization mechanism provided by KeePassXC. Since the merge algorithm uses the history of entries to prevent data loss, this history must be enabled and have a sufficient size. Furthermore, the merge algorithm is location independent, therefore it does not matter if entries are moved outside of an import group. These entries will be updated nonetheless. Moving entries outside of export groups will prevent a further export of the entry, but it will not ensure that the already shared data will be removed from any client. KeeShare uses a custom certification mechanism to ensure that the source of the data is the expected one. This ensures that the data was exported by the signer but it is not possible to detect if someone replaced the data with an older version from a valid signer. To prevent this, the container could be placed at a location which is only writeable for valid signers. // end::content[] diff --git a/docs/topics/KeyboardShortcuts.adoc b/docs/topics/KeyboardShortcuts.adoc index 93baa303d..8d8ab6ca0 100644 --- a/docs/topics/KeyboardShortcuts.adoc +++ b/docs/topics/KeyboardShortcuts.adoc @@ -1,4 +1,4 @@ -= KeePassXC - Keyboard Shortcuts += KeePassXC – Keyboard Shortcuts include::.sharedheader[] :imagesdir: ../images @@ -9,12 +9,15 @@ NOTE: On macOS please substitute `Ctrl` with `Cmd` (aka `⌘`). |=== |Action | Keyboard Shortcut +|Settings | Ctrl + , |Open Database | Ctrl + O |Save Database | Ctrl + S |Save Database As | Ctrl + Shift + S |New Database | Ctrl + Shift + N |Close Database | Ctrl + W ; Ctrl + F4 |Lock All Databases | Ctrl + L +|Database Settings | Ctrl + Shift + , +|Database Reports | Ctrl + Shift + R |Quit | Ctrl + Q |New Entry | Ctrl + N |Edit Entry | Enter ; Ctrl + E @@ -25,6 +28,7 @@ NOTE: On macOS please substitute `Ctrl` with `Cmd` (aka `⌘`). |Copy URL | Ctrl + U |Open URL | Ctrl + Shift + U |Copy TOTP | Ctrl + T +|Copy Password and TOTP | Ctrl + Y |Show TOTP | Ctrl + Shift + T |Trigger AutoType | Ctrl + Shift + V |Add key to SSH Agent | Ctrl + H diff --git a/docs/topics/Passkeys.adoc b/docs/topics/Passkeys.adoc new file mode 100644 index 000000000..b341eb3fe --- /dev/null +++ b/docs/topics/Passkeys.adoc @@ -0,0 +1,104 @@ += KeePassXC – Passkeys +include::.sharedheader[] +:imagesdir: ../images + +// tag::content[] +== Passkeys + +Passkeys are a secure way for replacing passwords that is supported by all major browser vendors and an increasing number of websites. For more information on what Passkeys are and how they work, please go to the FIDO Alliance's documentation: https://fidoalliance.org/passkeys/ + +=== Enabling Passkey Support + +KeePassXC supports Passkeys directly through the Browser Integration service. Passkeys are only supported with the use of the KeePassXC Browser Extension and a properly connected database. To enable Passkey support on the extension, you must check the _Enable Passkeys_ option in the extension settings page. + +.Enable Passkey Support in the KeePassXC Browser Extension +image::passkeys_enable_from_extension.png[,75%] + +Optionally, you can disable falling back to the built-in Passkey support from your browser and operating system. If left enabled, the extension will show the default Passkey dialogs if KeePassXC cannot handle the request or the request is canceled. + +=== Create a New Passkey + +Creating a new Passkey and authenticating with it is a simple process. This workflow will be demonstrated using GitHub as an example site. Please note that GitHub allows two use cases for Passkeys, one for 2FA only and the other for replacement of username and password entirely. We will be configuring the latter use case in this example. + +After navigating to GitHub's _Settings_ -> _Password and authentication_, there is a separate section shown for Passkeys. + +.GitHub's Passkey Registration +image::passkeys_github_1.png[] + +After clicking the _Add a Passkey_ button, the user is redirected to another page showing the actual configuration option. + +.Configure Passwordless Authentication +image::passkeys_github_2.png[,50%] + +Clicking the _Add Passkey_ button now shows the following popup dialog for the user, asking confirmation for creating a new Passkey. + +.Passkey Registration Confirmation Dialog +image::passkeys_register_dialog.png[,30%] + +After the Passkey has been registered, a new entry is created to the database under _KeePassXC-Browser Passwords_ with _(Passkey)_ added to the entry title. The entry holds additional attributes that are used for authenticating the Passkey. + +After registration, GitHub will ask a name for the Passkey. This is only relevant for the server. + +.GitHub's Passkey Nickname +image::passkeys_github_3.png[,50%] + +Now the Passkey should be shown on the GitHub's Passkey section. + +.Registered Passkeys on GitHub +image::passkeys_github_4.png[] + +=== Login With a Passkey + +The Passkey created in the previous section can now be used to login to GitHub. Instead of logging in with normal credentials, choose _Sign in with a passkey_ at the bottom of GitHub's login page. + +.GitHub's login page with a Passkey option +image::passkeys_github_5.png[,50%] + +After clicking the button, KeePassXC-Browser detects the Passkeys authentication and KeePassXC shows the following dialog for confirmation. + +.Passkey authentication confirmation dialog +image::passkeys_authentication_dialog.png[,50%] + +After confirmation user is now authenticated and logged into GitHub. + +// tag::advanced[] +=== Advanced Usage + +==== Multiple Passkeys for a Site + +Multiple Passkeys can be created for a single site. When registering a new Passkey with a different username, KeePassXC shows an option to register a new Passkey or update the previous one. Updating a Passkey will override the existing entry, so this option should be only used when actually needed. + +.Passkey authentication confirmation dialog +image::passkeys_update_dialog.png[,50%] + +==== Exporting Passkeys + +All Passkeys in a database can be viewed and accessed from the _Database_ -> _Passkeys..._ menu item. The page shows both _Import_ and _Export_ buttons for Passkeys. + +.Passkeys Overview +image::passkeys_all_passkeys.png[] + +After selecting one or more entries, the following dialog is shown. One or multiple Passkeys can be selected for export from the previously selected list of entries. + +.Passkeys Export Dialog +image::passkeys_export_dialog.png[,65%] + +Exported Passkeys are stored in JSON format using the `.passkey` file extension. The file includes all relevant information for importing a Passkey to another database or saving a backup. + +WARNING: The exported Passkey file is unencrypted and should be securely stored. + +==== Importing Passkeys + +An exported Passkey can be imported directly to a database or to an entry. To import directly, use the _Database_ -> _Import Passkey_ menu item. +When right-clicking an entry, a separate menu item for _Import Passkey_ is shown. This is useful if user wants to import a previously created Passkey to an existing entry. + +.Import Passkey to an Entry +image::passkeys_import_passkey_to_entry.png[,50%] + +After selecting a Passkey file to import, a separate dialog is shown where you can select which database, group, and entry to target. By default, the group is set to _Imported Passkeys_. The default action is to create a new entry that contains the imported Passkey. + +.Passkey import dialog +image::passkeys_import_dialog.png[,65%] + +// end::advanced[] +// end::content[] diff --git a/docs/topics/PasswordGenerator.adoc b/docs/topics/PasswordGenerator.adoc index 2d8310b83..a1f1915e9 100644 --- a/docs/topics/PasswordGenerator.adoc +++ b/docs/topics/PasswordGenerator.adoc @@ -1,4 +1,4 @@ -= KeePassXC - Password Generator += KeePassXC – Password Generator include::.sharedheader[] :imagesdir: ../images diff --git a/docs/topics/Reference.adoc b/docs/topics/Reference.adoc index c123befc4..4171ed9a5 100644 --- a/docs/topics/Reference.adoc +++ b/docs/topics/Reference.adoc @@ -1,4 +1,4 @@ -= KeePassXC - Reference += KeePassXC – Reference include::.sharedheader[] :imagesdir: ../images @@ -48,18 +48,18 @@ This section contains full details on advanced features available in KeePassXC. |=== === Entry Cross-Reference -A reference to another entry's field is possible using the short-hand syntax: +A reference to another entry's field is possible using the shorthand syntax: `{REF:<FIELD>@<SEARCH_IN>:<SEARCH_TEXT>}` `<FIELD>` and `<SEARCH_IN>` can be one of following: -* T - Title -* U - Username -* P - Password -* A - URL -* N - Notes -* I - UUID (found on entry properties page) -* O - Custom Attribute _(SEARCH_IN only)_ +* T – Title +* U – Username +* P – Password +* A – URL +* N – Notes +* I – UUID (found on entry properties page) +* O – Custom Attribute _(SEARCH_IN only)_ Examples: + `{REF:U@I:033054D445C648C59092CC1D661B1B71}` + @@ -100,4 +100,29 @@ Convert resolved placeholder (e.g., {USERNAME}, {PASSWORD}, etc.) using the foll `{T-REPLACE-RX:/<PLACEHOLDER>/<SEARCH>/<REPLACE>/}` + Use regular expressions to find and replace data from a resolved placeholder. Refer to match groups using $1, $2, etc. + +=== Backup Path Placeholders +[grid=rows, frame=none, width=90%] +|=== +|Database Backup Path Placeholder |Description + +|{DB_FILENAME} |The database's filename without extension +|{TIME} |The current time formatted as dd_MM_yyyy_hh-mm-ss. +|{TIME:} |The current time formatted according to the format string specified by . See https://doc.qt.io/qt-5/qtime.html#toString for a list of available placeholders. +|=== + +[grid=rows, frame=none, width=90%] +|=== +|Backup path example |Location of backup(s) + +|`{DB_FILENAME}-{TIME}.bak.kdbx` |`C:\Users\MyUsername\MyDatabase-02_01_2022_03-04-05.bak.kdbx` + +`C:\Users\MyUsername\MyDatabase-05_01_2022_12-10-00.bak.kdbx` +|`backups\\{DB_FILENAME}.bak.kdbx` |`C:\Users\MyUsername\backups\MyDatabase.bak.kdbx` +|`C:\Backups\{TIME:dd.MM.yyyy}\\{DB_FILENAME}.kdbx` |`C:\Backups\02.01.2022\MyDatabase.kdbx` + +`C:\Backups\05.01.2022\MyDatabase.kdbx` +|`C:\Backups\\{DB_FILENAME}\{TIME:MM-dd-yyyy}.kdbx` |`C:\Backups\MyDatabase\01-02-2022.kdbx` + +`C:\Backups\MyDatabase\01-05-2022.kdbx` +|=== + + // end::content[] diff --git a/docs/topics/SSHAgent.adoc b/docs/topics/SSHAgent.adoc index 8c6a086fd..5539e0e67 100644 --- a/docs/topics/SSHAgent.adoc +++ b/docs/topics/SSHAgent.adoc @@ -1,9 +1,9 @@ -= KeePassXC - SSH Agent += KeePassXC – SSH Agent integration include::.sharedheader[] :imagesdir: ../images // tag::content[] -== SSH Agent +== SSH Agent integration SSH (Secure Shell) is a widely used remote secure shell protocol and is considered an industry standard for secure remote access to UNIX-like systems including Linux, BSDs, macOS and more recently even Windows received native support. SSH supports multiple types of authentication and the most widely used ones are either interactive keyboard input with a password or a public-key cryptography pair of keys. KeePassXC SSH Agent integration is built to manage SSH keys in a secure manner by either storing them completely within your KeePassXC database or by having only the decryption key of a key file that is stored elsewhere. SSH Agent integration _does not_ provide an agent itself but works as a client for any agent implementation that is OpenSSH compatible. @@ -173,7 +173,7 @@ The last step is to setup an entry to contain the SSH Agent settings and key fil .SSH Agent Entry Settings Page image::sshagent_entry_settings.png[] -If you chose to not auto-load the key on database unlock, you can manually make the key available by using the context menu from the entry list. +If you chose to not autoload the key on database unlock, you can manually make the key available by using the context menu from the entry list. .SSH Agent Load Key from Context Menu image::sshagent_context_menu.png[] diff --git a/docs/topics/UserInterface.adoc b/docs/topics/UserInterface.adoc index c61dc85a8..456c09ea6 100644 --- a/docs/topics/UserInterface.adoc +++ b/docs/topics/UserInterface.adoc @@ -1,22 +1,22 @@ -= KeePassXC - Database Operations += KeePassXC – Database Operations include::.sharedheader[] :imagesdir: ../images // tag::content[] == Interface Overview === Application Layout -The KeePassXC interface is designed for simplicity and easy access to your information. The main database view is split into three main partitions detailed below. You can open multiple databases at the same time, they will appear in tabs. +The KeePassXC interface is designed for simplicity and easy access to your information. The main database view is split into four main partitions detailed below. You can open multiple databases at the same time, they will appear in tabs. .Main database interface image::main_interface.png[] -*(A) Groups* - Organize your entries into discrete groups to bring order to all of your sensitive information. Groups can be nested under each other to create a hierarchy. Settings from parent groups get applied to their children. You can hide this panel on the View menu. +*(A) Groups* – Organize your entries into discrete groups to bring order to all of your sensitive information. Groups can be nested under each other to create a hierarchy. Settings from parent groups get applied to their children. You can hide this panel on the View menu. -*(B) Tags* - Dynamic groups of entries that can be quickly displayed with one click. Any number of custom tags can be added when editing an entry. This panel also includes useful pre-defined searches, such as finding expired and weak passwords. +*(B) Tags* – Dynamic groups of entries that can be quickly displayed with one click. Any number of custom tags can be added when editing an entry. This panel also includes useful pre-defined searches, such as finding expired and weak passwords. -*\(C) Entries* - Entries contain all the information you want to store for a website or application you are storing in KeePassXC. This view shows all the entries in the selected group. Each column can be resized, reordered, and shown or hidden based on your preference. Right-click the header row to see all available options. +*\(C) Entries* – Entries contain all the information you want to store for a website or application you are storing in KeePassXC. This view shows all the entries in the selected group. Each column can be resized, reordered, and shown or hidden based on your preference. Right-click the header row to see all available options. -*(D) Preview* - Shows a preview of the selected group or entry. You can temporarily hide this preview using the close button on the right hand side or completely disabled in the application settings. +*(D) Preview* – Shows a preview of the selected group or entry. You can temporarily hide this preview using the close button on the right hand side or completely disabled in the application settings. TIP: You can enable double-click copying of entry username and password in the Application Security Settings. This is turned off by default starting with version 2.7.0. @@ -26,10 +26,10 @@ The toolbar provides a quick way to perform common tasks with your database. Som .Toolbar overview image::toolbar.png[] -*(A) Database* - Open Database, Save Database, Lock Database + -*(B) Entries* - Create Entry, Edit Entry, Delete Selected Entries + -*\(C) Entry Data* - Copy Username, Copy Password, Copy URL, Perform Auto-Type + -*(D) Tools* - Password Generator, Application Settings + +*(A) Database* – Open Database, Save Database, Lock Database + +*(B) Entries* – Create Entry, Edit Entry, Delete Selected Entries + +*\(C) Entry Data* – Copy Username, Copy Password, Copy URL, Perform Auto-Type + +*(D) Tools* – Password Generator, Application Settings + *(E) Search* === Application Settings @@ -59,7 +59,7 @@ You can use the following command line options to tailor the application to your ---- Usage: keepassxc.exe [options] [filename(s)] -KeePassXC - cross-platform password manager +KeePassXC – cross-platform password manager Options: -?, -h, --help Displays help on commandline options. @@ -85,7 +85,8 @@ Additionally, the following environment variables may be useful when running the |KPXC_CONFIG | Override default path to roaming configuration file |KPXC_CONFIG_LOCAL | Override default path to local configuration file -|SSH_AUTH_SOCKET | Path of the unix file socket that the agent uses for communication with other processes (SSH Agent) +|KPXC_INITIAL_DIR | Override initial location picking for databases +|SSH_AUTH_SOCK | Path of the unix file socket that the agent uses for communication with other processes (SSH Agent) |QT_SCALE_FACTOR [numeric] | Defines a global scale factor for the whole application, including point-sized fonts. |QT_SCREEN_SCALE_FACTORS [list] | Specifies scale factors for each screen. See https://doc.qt.io/qt-5/highdpi.html#high-dpi-support-in-qt |QT_SCALE_FACTOR_ROUNDING_POLICY | Control device pixel ratio rounding to the nearest integer. See https://doc.qt.io/qt-5/highdpi.html#high-dpi-support-in-qt diff --git a/docs/topics/Welcome.adoc b/docs/topics/Welcome.adoc index 4eb168e6c..b10b04f3d 100644 --- a/docs/topics/Welcome.adoc +++ b/docs/topics/Welcome.adoc @@ -1,4 +1,4 @@ -= KeePassXC - Welcome += KeePassXC – Welcome include::.sharedheader[] :imagesdir: ../images @@ -9,7 +9,7 @@ KeePassXC is a modern, secure, and open-source password manager that stores and KeePassXC is for people with extremely high demands of secure personal data management. It saves many different types of information, such as usernames, passwords, URLs, attachments, and notes in an offline, encrypted file that can be stored in any location, including private and public cloud solutions. For easy identification and management, user-defined titles and icons can be specified for entries. In addition, entries are sorted in customizable groups. An integrated search function allows you to use advanced patterns to easily find any entry in your database. A customizable, fast, and easy-to-use password generator utility allows you to create passwords with any combination of characters or easy to remember passphrases. === Overview -You can store an unlimited number of passwords and information in a KeePassXC database. Every piece of information you store in your database is encrypted at all times within the `kdbx` file. When you are accessing your database from within KeePassXC, your information in decrypted and stored in your computer's memory. KeePassXC places controls over the access to this data so other applications cannot read it (unless they have administrative rights). The interface is designed to let you quickly access your passwords, search for the right entry, perform Auto-Type or copy/paste operations, make and save changes, and then get out of your way. +You can store an unlimited number of passwords and information in a KeePassXC database. Every piece of information you store in your database is encrypted at all times within the `kdbx` file. When you are accessing your database from within KeePassXC, your information is decrypted and stored in your computer's memory. KeePassXC places controls over the access to this data so other applications cannot read it (unless they have administrative rights). The interface is designed to let you quickly access your passwords, search for the right entry, perform Auto-Type or copy/paste operations, make and save changes, and then get out of your way. KeePassXC ships with light and dark themes specifically designed to meet accessibility standards. In most cases, the appropriate theme for your system will be determined automatically, but you can always set a specific theme in the application settings. @@ -43,6 +43,18 @@ KeePassXC has numerous features for novice and power users alike. This guide wil ** SSH Agent ** FreeDesktop.org Secret Service (replace Gnome keyring, etc.) ** Additional encryption choices: Twofish and ChaCha20 + +== Contact Us + +We are committed to continually improve KeePassXC through customer experience and your feedback is important to us. +Please report any bugs you encounter at our https://github.com/keepassxreboot/keepassxc/issues[GitHub issue tracker]. + +We are also https://matrix.to/#/#keepassxc-community:mozilla.org[available on Matrix] for real-time feedback and +discussions. See our https://keepassxc.org/team/#contact[contact page] for further options. + +Thank You, + +Team KeePassXC + // end::content[] // tag::advanced[] -// end::advanced[] \ No newline at end of file +// end::advanced[] diff --git a/release-tool b/release-tool index 6d8310d7b..43f058000 100755 --- a/release-tool +++ b/release-tool @@ -51,7 +51,7 @@ BUILD_PLUGINS="all" INSTALL_PREFIX="/usr/local" ORIG_BRANCH="" ORIG_CWD="$(pwd)" -MACOSX_DEPLOYMENT_TARGET=10.13 +MACOSX_DEPLOYMENT_TARGET=10.15 TIMESTAMP_SERVER="http://timestamp.sectigo.com" # ----------------------------------------------------------------------- @@ -883,7 +883,6 @@ build() { fi fi - OUTPUT_DIR="$(realpath "$OUTPUT_DIR")" if ! ${build_snapshot} && [ -d "$OUTPUT_DIR" ]; then exitError "Output dir '${OUTPUT_DIR}' already exists." fi @@ -892,6 +891,7 @@ build() { if ! mkdir -p "$OUTPUT_DIR"; then exitError "Failed to create output directory!" fi + OUTPUT_DIR="$(realpath "$OUTPUT_DIR")" if ${build_source_tarball}; then logInfo "Creating source tarball..." @@ -930,6 +930,13 @@ build() { # linuxdeploy requires /usr as install prefix INSTALL_PREFIX="/usr" fi + if [ -n "$OS_MACOS" ]; then + type brew &> /dev/null 2>&1 + if [ $? -eq 0 ]; then + INSTALL_PREFIX=$(brew --prefix) + fi + fi + # Do not build tests cases CMAKE_OPTIONS="${CMAKE_OPTIONS} -DWITH_TESTS=OFF" @@ -1404,8 +1411,8 @@ i18n() { if ! command -v $LUPDATE > /dev/null; then LUPDATE=lupdate fi - $LUPDATE -no-ui-lines -disable-heuristic similartext -locations none -no-obsolete src \ - -ts share/translations/keepassxc_en.ts $@ + $LUPDATE -no-ui-lines -disable-heuristic similartext -locations none -extensions c,cpp,h,js,mm,qrc,ui \ + -no-obsolete src -ts share/translations/keepassxc_en.ts $@ return 0 fi @@ -1438,7 +1445,7 @@ i18n() { elif [ "$cmd" == "tx-pull" ]; then logInfo "Pulling updated translations from Transifex..." - tx pull -af --minimum-perc=45 --parallel -r "$resource" $@ + tx pull -af --minimum-perc=60 -r "$resource" $@ fi } diff --git a/release-tool.ps1 b/release-tool.ps1 index aebdd4883..cdb089c2c 100644 --- a/release-tool.ps1 +++ b/release-tool.ps1 @@ -10,7 +10,7 @@ Commands: .NOTES The following are descriptions of certain parameters: - -Vcpkg Specify VCPKG toolchain file (example: C:\vcpkg\scripts\buildsystems\vcpkg.cmake) + -Vcpkg Specify VCPKG toolchain location (example: C:\vcpkg) -Tag Release tag to check out (defaults to version number) -Snapshot Build current HEAD without checkout out Tag -CMakeGenerator Override the default CMake generator @@ -19,7 +19,7 @@ The following are descriptions of certain parameters: -Compiler Compiler to use (example: g++, clang, msbuild) -MakeOptions Options to pass to the make program -SignBuild Perform platform specific App Signing before packaging - -SignKey Specify the App Signing Key/Identity + -SignCert Specify the App Signing Certificate -TimeStamp Explicitly set the timestamp server to use for appsign -SourceBranch Source branch to merge from (default: 'release/$Version') -TargetBranch Target branch to merge to (default: master) @@ -65,7 +65,7 @@ param( [string] $MakeOptions, [Parameter(ParameterSetName = "build")] [Parameter(ParameterSetName = "sign")] - [string] $SignKey, + [X509Certificate] $SignCert, [Parameter(ParameterSetName = "build")] [Parameter(ParameterSetName = "sign")] [string] $Timestamp = "http://timestamp.sectigo.com", @@ -103,10 +103,7 @@ function Test-RequiredPrograms { Get-Command tx | Out-Null Get-Command lupdate | Out-Null } - if ($Sign -or $SignBuild) { - if ($SignKey.Length) { - Get-Command signtool | Out-Null - } + if ($Sign) { Get-Command gpg | Out-Null } } @@ -141,7 +138,8 @@ function Test-WorkingTreeClean { function Invoke-VSToolchain([String] $Toolchain, [String] $Path, [String] $Arch) { # Find Visual Studio installations - $vs = Get-CimInstance MSFT_VSInstance + $vs = Get-CimInstance MSFT_VSInstance -Namespace root/cimv2/vs + if ($vs.count -eq 0) { $err = "No Visual Studio installations found, download one from https://visualstudio.com/downloads." $err = "$err`nIf Visual Studio is installed, you may need to repair the install then restart." @@ -197,20 +195,40 @@ function Invoke-Cmd([string] $command, [string[]] $options = @(), [switch] $mask Write-Host #insert newline after command output } -function Invoke-SignFiles([string[]] $files, [string] $key, [string] $time) { - if (!(Test-Path -Path "$key" -PathType leaf)) { - throw "Appsign key file was not found! ($key)" +function Find-SignCert() { + $certs = Get-ChildItem Cert:\CurrentUser\My -codesign + if ($certs.Count -eq 0) { + throw "No code signing certificate found in User certificate store" + } elseif ($certs.Count -gt 1) { + # Ask the user which to use + $i = 0 + foreach ($_ in $certs) { + $i = $i + 1 + $i.ToString() + ") $($_.Thumbprint) - $($_.NotAfter)" | Write-Host + } + $i = Read-Host -Prompt "Which certificate do you want to use?" + $i = [Convert]::ToInt32($i, 10) - 1 + if ($i -lt 0 -or $i -ge $certs.count) { + throw "Invalid selection made" + } + return $certs[$i] + } else { + Write-Host "Found signing certificate: $($certs[0].Subject) ($($certs[0].Thumbprint))" -ForegroundColor Cyan + Write-Host + return $certs[0] } +} + +function Invoke-SignFiles([string[]] $files, [X509Certificate] $cert, [string] $time) { if ($files.Length -eq 0) { return } - Write-Host "Signing files using $key" -ForegroundColor Cyan - $KeyPassword = Read-Host "Key password: " -MaskInput - + Write-Host "Signing files using $($cert.Subject) ($($cert.Thumbprint))" -ForegroundColor Cyan + foreach ($_ in $files) { - Write-Host "Signing file '$_' using Microsoft signtool..." - Invoke-Cmd "signtool" "sign -f `"$key`" -p `"$KeyPassword`" -d `"KeePassXC`" -td sha256 -fd sha256 -tr `"$time`" `"$_`"" -maskargs + Write-Host "Signing file '$_'" + $tmp = Set-AuthenticodeSignature -Certificate $cert -FilePath "$_" -TimestampServer "$Timestamp" -HashAlgorithm "SHA256" } } @@ -253,6 +271,7 @@ if ($ExtraPath) { # Resolve absolute directory for paths $SourceDir = (Resolve-Path $SourceDir).Path +$OutDir = (Resolve-Path $OutDir).Path # Check format of -Version if ($Version -notmatch "^\d+\.\d+\.\d+(-Beta\d*)?$") { @@ -284,14 +303,14 @@ if ($Merge) { # Update translation files Write-Host "Updating source translation file..." Invoke-Cmd "lupdate" "-no-ui-lines -disable-heuristic similartext -locations none", ` - "-no-obsolete ./src -ts share/translations/keepassxc_en.ts" + "-extensions c,cpp,h,js,mm,qrc,ui -no-obsolete ./src -ts share/translations/keepassxc_en.ts" Write-Host "Pulling updated translations from Transifex..." - Invoke-Cmd "tx" "pull -af --minimum-perc=60 --parallel -r keepassxc.share-translations-keepassxc-en-ts--develop" + Invoke-Cmd "tx" "pull -af --minimum-perc=60 -r keepassxc.share-translations-keepassxc-en-ts--develop" # Only commit if there are changes - & git diff-index --quiet HEAD -- - if ($LASTEXITCODE) { + $changes = & git status --porcelain + if ($changes.Length -gt 0) { Write-Host "Committing translation updates..." Invoke-Cmd "git" "add -A ./share/translations/" -quiet Invoke-Cmd "git" "commit -m `"Update translations`"" -quiet @@ -313,7 +332,10 @@ if ($Merge) { } Write-Host "Creating tag for '$Version'..." - Invoke-Cmd "git" "tag -a `"$Version`" -m `"Release $Version`" -m `"$Changelog`" -s" -quiet + $tmp = New-TemporaryFile + "Release $Version`n$Changelog" | Out-File $tmp.FullName + Invoke-Cmd "git" "tag -a `"$Version`" -F `"$tmp`" -s" -quiet + Remove-Item $tmp.FullName -Force Write-Host "Moving latest tag..." Invoke-Cmd "git" "tag -f -a `"latest`" -m `"Latest stable release`" -s" -quiet @@ -322,18 +344,22 @@ if ($Merge) { Write-Host "Please merge the release branch back into the develop branch now and then push your changes." Write-Host "Don't forget to also push the tags using 'git push --tags'." } elseif ($Build) { - $Vcpkg = (Resolve-Path $Vcpkg).Path + $Vcpkg = (Resolve-Path "$Vcpkg/scripts/buildsystems/vcpkg.cmake").Path # Find Visual Studio and establish build environment Invoke-VSToolchain $VSToolChain $SourceDir -Arch "amd64" + if ($SignBuild && !$SignCert) { + $SignCert = Find-SignCert + } + Test-RequiredPrograms if ($Snapshot) { $Tag = "HEAD" $SourceBranch = & git rev-parse --abbrev-ref HEAD $ReleaseName = "$Version-snapshot" - $CMakeOptions = "$CMakeOptions -DKEEPASSXC_BUILD_TYPE=Snapshot -DOVERRIDE_VERSION=`"$ReleaseName`"" + $CMakeOptions = "-DKEEPASSXC_BUILD_TYPE=Snapshot -DOVERRIDE_VERSION=`"$ReleaseName`" $CMakeOptions" Write-Host "Using current branch '$SourceBranch' to build." -ForegroundColor Cyan } else { Test-WorkingTreeClean @@ -344,9 +370,9 @@ if ($Merge) { } if ($Version -match "-beta\d*$") { - $CMakeOptions = "$CMakeOptions -DKEEPASSXC_BUILD_TYPE=PreRelease" + $CMakeOptions = "-DKEEPASSXC_BUILD_TYPE=PreRelease $CMakeOptions" } else { - $CMakeOptions = "$CMakeOptions -DKEEPASSXC_BUILD_TYPE=Release" + $CMakeOptions = "-DKEEPASSXC_BUILD_TYPE=Release $CMakeOptions" } # Setup Tag if not defined then checkout tag @@ -368,18 +394,24 @@ if ($Merge) { Set-Location "$BuildDir" # Setup CMake options - $CMakeOptions = "$CMakeOptions -DWITH_XC_ALL=ON -DWITH_TESTS=OFF -DCMAKE_BUILD_TYPE=Release" - $CMakeOptions = "$CMakeOptions -DCMAKE_TOOLCHAIN_FILE:FILEPATH=`"$Vcpkg`" -DX_VCPKG_APPLOCAL_DEPS_INSTALL=ON" + $CMakeOptions = "-DWITH_XC_ALL=ON -DWITH_TESTS=OFF -DCMAKE_BUILD_TYPE=Release $CMakeOptions" + $CMakeOptions = "-DCMAKE_TOOLCHAIN_FILE:FILEPATH=`"$Vcpkg`" -DX_VCPKG_APPLOCAL_DEPS_INSTALL=ON $CMakeOptions" Write-Host "Configuring build..." -ForegroundColor Cyan - Invoke-Cmd "cmake" "$CMakeOptions -G `"$CMakeGenerator`" `"$SourceDir`"" + Invoke-Cmd "cmake" "-G `"$CMakeGenerator`" $CMakeOptions `"$SourceDir`"" Write-Host "Compiling sources..." -ForegroundColor Cyan Invoke-Cmd "cmake" "--build . --config Release -- $MakeOptions" if ($SignBuild) { - $files = Get-ChildItem "$BuildDir\src" -Include "*keepassxc*.exe", "*keepassxc*.dll" -Recurse -File | ForEach-Object { $_.FullName } - Invoke-SignFiles $files $SignKey $Timestamp + $VcpkgDir = $BuildDir + "\vcpkg_installed\" + if (Test-Path $VcpkgDir) { + $files = Get-ChildItem $VcpkgDir -Filter "*.dll" -Recurse -File | + Where-Object {$_.FullName -notlike "$VcpkgDir*debug\*" -and $_.FullName -notlike "$VcpkgDir*tools\*"} | + ForEach-Object {$_.FullName} + } + $files += Get-ChildItem "$BuildDir\src" -Include "*keepassxc*.exe", "*keepassxc*.dll" -Recurse -File | ForEach-Object { $_.FullName } + Invoke-SignFiles $files $SignCert $Timestamp } Write-Host "Create deployment packages..." -ForegroundColor Cyan @@ -392,7 +424,7 @@ if ($Merge) { # Sign MSI files using AppSign key $files = Get-ChildItem $OutDir -Include "*.msi" -Name - Invoke-SignFiles $files $SignKey $Timestamp + Invoke-SignFiles $files $SignCert $Timestamp # Sign all output files using the GPG key then hash them $files = Get-ChildItem $OutDir -Include "*.msi", "*.zip" -Name @@ -403,13 +435,12 @@ if ($Merge) { Invoke-Command {git checkout $OrigBranch} Set-Location "$OrigDir" } elseif ($Sign) { - if (Test-Path $SignKey) { - # Need to include path to signtool program - Invoke-VSToolchain $VSToolChain $SourceDir -Arch "amd64" - } - Test-RequiredPrograms + if (!$SignCert) { + $SignCert = Find-SignCert + } + # Resolve wildcard paths $ResolvedFiles = @() foreach ($_ in $SignFiles) { @@ -417,116 +448,208 @@ if ($Merge) { } $AppSignFiles = $ResolvedFiles.Where({ $_ -match "\.(msi|exe|dll)$" }) - Invoke-SignFiles $AppSignFiles $SignKey $Timestamp + Invoke-SignFiles $AppSignFiles $SignCert $Timestamp $GpgSignFiles = $ResolvedFiles.Where({ $_ -match "\.(msi|zip|gz|xz|dmg|appimage)$" }) Invoke-GpgSignFiles $GpgSignFiles $GpgKey } # SIG # Begin signature block -# MIIThAYJKoZIhvcNAQcCoIITdTCCE3ECAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB -# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR -# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUyaXWK5K1LP2TD/IgGb5Tfs8v -# C2GgghC8MIIFOjCCBCKgAwIBAgIQWKLXLYzA/YnM/yHg1O3HSjANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVy -# MRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxJDAi -# BgNVBAMTG1NlY3RpZ28gUlNBIENvZGUgU2lnbmluZyBDQTAeFw0yMTAzMTUwMDAw -# MDBaFw0yNDAzMTQyMzU5NTlaMIGhMQswCQYDVQQGEwJVUzEOMAwGA1UEEQwFMjIz -# MTUxETAPBgNVBAgMCFZpcmdpbmlhMRIwEAYDVQQHDAlGcmFuY29uaWExGzAZBgNV -# BAkMEjY2NTMgQXVkcmV5IEtheSBDdDEeMBwGA1UECgwVRHJvaWRNb25rZXkgQXBw -# cywgTExDMR4wHAYDVQQDDBVEcm9pZE1vbmtleSBBcHBzLCBMTEMwggEiMA0GCSqG -# SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCwB9L/+1zlcXOQLoYvdrYAWS9B5ui+7E9c -# XCn6wcB4NdmaRbNM3kdWc8nbjOOHeOct2jVzVu/pJR1SagI+V1R1BfzgfzuW55Yy -# iHrqXQGfL9xhqJAWSvdQRinvlkZ+WY3QxnOhzcQk+BTLYdUwq04O3jMv7vnH6fuL -# q/HXEsgDObZC7EyKEtVbWVo4nqY0tUTviJXvRI/sFDN8DvULefwZWIvF7G11NFeK -# It24+hDCzvVBKtEn7DNmFGO1CJAB7Sz4jFewV4MP1gviMAfGbSBqavyRDBOG7eda -# SVb1Zq482yoHNAs+mpIQK2SGvUKKAJK2wCDbzgpvu5sfzwStpc0hAgMBAAGjggGQ -# MIIBjDAfBgNVHSMEGDAWgBQO4TqoUzox1Yq+wbutZxoDha00DjAdBgNVHQ4EFgQU -# 7u2WZ7fqJiaM3u9SlzAwGBhoWH0wDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQC -# MAAwEwYDVR0lBAwwCgYIKwYBBQUHAwMwEQYJYIZIAYb4QgEBBAQDAgQQMEoGA1Ud -# IARDMEEwNQYMKwYBBAGyMQECAQMCMCUwIwYIKwYBBQUHAgEWF2h0dHBzOi8vc2Vj -# dGlnby5jb20vQ1BTMAgGBmeBDAEEATBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8v -# Y3JsLnNlY3RpZ28uY29tL1NlY3RpZ29SU0FDb2RlU2lnbmluZ0NBLmNybDBzBggr -# BgEFBQcBAQRnMGUwPgYIKwYBBQUHMAKGMmh0dHA6Ly9jcnQuc2VjdGlnby5jb20v -# U2VjdGlnb1JTQUNvZGVTaWduaW5nQ0EuY3J0MCMGCCsGAQUFBzABhhdodHRwOi8v -# b2NzcC5zZWN0aWdvLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAD2w/Tt5KyPbX2M+h -# WVwgqpKm42nk6aN2HvSp+KWlrB2t+ziL+1IRXwq7S0V7p2e1ZK8uXLzBjUDVGjBc -# ugh5hGG95MGVltxCJrr/bk1He62L7MwVxfH5b5MrE/vC/cHcSxEB1AZwZxYKjDPf -# R81biDVch++XeKmvUxfT4XGo7McJqT4K/TcLwijSb/AWsXR+r2BXEAqgsoG37kk/ -# fbPKimpJ07hxd/RNYVpE33E93zCQ1Tjc1tP3DaLq8cpS6jGUY5NNOzRgp2mGcGHy -# lv6Q/xf45qNvHiqFVctdvY9of0QFjg5eYDr4rLDa+mks9f1Jd8aDWKcsfCBnlohT -# KIffbTCCBYEwggRpoAMCAQICEDlyRDr5IrdR19NsEN0xNZUwDQYJKoZIhvcNAQEM -# BQAwezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQ -# MA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAf -# BgNVBAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0xOTAzMTIwMDAwMDBa -# Fw0yODEyMzEyMzU5NTlaMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKTmV3IEpl -# cnNleTEUMBIGA1UEBxMLSmVyc2V5IENpdHkxHjAcBgNVBAoTFVRoZSBVU0VSVFJV -# U1QgTmV0d29yazEuMCwGA1UEAxMlVVNFUlRydXN0IFJTQSBDZXJ0aWZpY2F0aW9u -# IEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIASZRc2 -# DsPbCLPQrFcNdu3NJ9NMrVCDYeKqIE0JLWQJ3M6Jn8w9qez2z8Hc8dOx1ns3KBEr -# R9o5xrw6GbRfpr19naNjQrZ28qk7K5H44m/Q7BYgkAk+4uh0yRi0kdRiZNt/owbx -# iBhqkCI8vP4T8IcUe/bkH47U5FHGEWdGCFHLhhRUP7wz/n5snP8WnRi9UY41pqdm -# yHJn2yFmsdSbeAPAUDrozPDcvJ5M/q8FljUfV1q3/875PbcstvZU3cjnEjpNrkyK -# t1yatLcgPcp/IjSufjtoZgFE5wFORlObM2D3lL5TN5BzQ/Myw1Pv26r+dE5px2uM -# YJPexMcM3+EyrsyTO1F4lWeL7j1W/gzQaQ8bD/MlJmszbfduR/pzQ+V+DqVmsSl8 -# MoRjVYnEDcGTVDAZE6zTfTen6106bDVc20HXEtqpSQvf2ICKCZNijrVmzyWIzYS4 -# sT+kOQ/ZAp7rEkyVfPNrBaleFoPMuGfi6BOdzFuC00yz7Vv/3uVzrCM7LQC/NVV0 -# CUnYSVgaf5I25lGSDvMmfRxNF7zJ7EMm0L9BX0CpRET0medXh55QH1dUqD79dGMv -# sVBlCeZYQi5DGky08CVHWfoEHpPUJkZKUIGy3r54t/xnFeHJV4QeD2PW6WK61l9V -# LupcxigIBCU5uA4rqfJMlxwHPw1S9e3vL4IPAgMBAAGjgfIwge8wHwYDVR0jBBgw -# FoAUoBEKIz6W8Qfs4q8p74Klf9AwpLQwHQYDVR0OBBYEFFN5v1qqK0rPVIDh2JvA -# nfKyA2bLMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MBEGA1UdIAQK -# MAgwBgYEVR0gADBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsLmNvbW9kb2Nh -# LmNvbS9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDA0BggrBgEFBQcBAQQoMCYw -# JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmNvbW9kb2NhLmNvbTANBgkqhkiG9w0B -# AQwFAAOCAQEAGIdR3HQhPZyK4Ce3M9AuzOzw5steEd4ib5t1jp5y/uTW/qofnJYt -# 7wNKfq70jW9yPEM7wD/ruN9cqqnGrvL82O6je0P2hjZ8FODN9Pc//t64tIrwkZb+ -# /UNkfv3M0gGhfX34GRnJQisTv1iLuqSiZgR2iJFODIkUzqJNyTKzuugUGrxx8Vvw -# QQuYAAoiAxDlDLH5zZI3Ge078eQ6tvlFEyZ1r7uq7z97dzvSxAKRPRkA0xdcOds/ -# exgNRc2ThZYvXd9ZFk8/Ub3VRRg/7UqO6AZhdCMWtQ1QcydER38QXYkqa4UxFMTo -# qWpMgLxqeM+4f452cpkMnf7XkQgWoaNflTCCBfUwggPdoAMCAQICEB2iSDBvmyYY -# 0ILgln0z02owDQYJKoZIhvcNAQEMBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI -# EwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhl -# IFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRp -# ZmljYXRpb24gQXV0aG9yaXR5MB4XDTE4MTEwMjAwMDAwMFoXDTMwMTIzMTIzNTk1 -# OVowfDELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQ -# MA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMSQwIgYD -# VQQDExtTZWN0aWdvIFJTQSBDb2RlIFNpZ25pbmcgQ0EwggEiMA0GCSqGSIb3DQEB -# AQUAA4IBDwAwggEKAoIBAQCGIo0yhXoYn0nwli9jCB4t3HyfFM/jJrYlZilAhlRG -# dDFixRDtsocnppnLlTDAVvWkdcapDlBipVGREGrgS2Ku/fD4GKyn/+4uMyD6DBmJ -# qGx7rQDDYaHcaWVtH24nlteXUYam9CflfGqLlR5bYNV+1xaSnAAvaPeX7Wpyvjg7 -# Y96Pv25MQV0SIAhZ6DnNj9LWzwa0VwW2TqE+V2sfmLzEYtYbC43HZhtKn52BxHJA -# teJf7wtF/6POF6YtVbC3sLxUap28jVZTxvC6eVBJLPcDuf4vZTXyIuosB69G2flG -# HNyMfHEo8/6nxhTdVZFuihEN3wYklX0Pp6F8OtqGNWHTAgMBAAGjggFkMIIBYDAf -# BgNVHSMEGDAWgBRTeb9aqitKz1SA4dibwJ3ysgNmyzAdBgNVHQ4EFgQUDuE6qFM6 -# MdWKvsG7rWcaA4WtNA4wDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8C -# AQAwHQYDVR0lBBYwFAYIKwYBBQUHAwMGCCsGAQUFBwMIMBEGA1UdIAQKMAgwBgYE -# VR0gADBQBgNVHR8ESTBHMEWgQ6BBhj9odHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20v -# VVNFUlRydXN0UlNBQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwdgYIKwYBBQUH -# AQEEajBoMD8GCCsGAQUFBzAChjNodHRwOi8vY3J0LnVzZXJ0cnVzdC5jb20vVVNF -# UlRydXN0UlNBQWRkVHJ1c3RDQS5jcnQwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3Nw -# LnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggIBAE1jUO1HNEphpNveaiqM -# m/EAAB4dYns61zLC9rPgY7P7YQCImhttEAcET7646ol4IusPRuzzRl5ARokS9At3 -# WpwqQTr81vTr5/cVlTPDoYMot94v5JT3hTODLUpASL+awk9KsY8k9LOBN9O3ZLCm -# I2pZaFJCX/8E6+F0ZXkI9amT3mtxQJmWunjxucjiwwgWsatjWsgVgG10Xkp1fqW4 -# w2y1z99KeYdcx0BNYzX2MNPPtQoOCwR/oEuuu6Ol0IQAkz5TXTSlADVpbL6fICUQ -# DRn7UJBhvjmPeo5N9p8OHv4HURJmgyYZSJXOSsnBf/M6BZv5b9+If8AjntIeQ3pF -# McGcTanwWbJZGehqjSkEAnd8S0vNcL46slVaeD68u28DECV3FTSK+TbMQ5Lkuk/x -# YpMoJVcp+1EZx6ElQGqEV8aynbG8HArafGd+fS7pKEwYfsR7MUFxmksp7As9V1DS -# yt39ngVR5UR43QHesXWYDVQk/fBO4+L4g71yuss9Ou7wXheSaG3IYfmm8SoKC6W5 -# 9J7umDIFhZ7r+YMp08Ysfb06dy6LN0KgaoLtO0qqlBCk4Q34F8W2WnkzGJLjtXX4 -# oemOCiUe5B7xn1qHI/+fpFGe+zmAEc3btcSnqIBv5VPU4OOiwtJbGvoyJi1qV3Ac -# PKRYLqPzW0sH3DJZ84enGm1YMYICMjCCAi4CAQEwgZAwfDELMAkGA1UEBhMCR0Ix -# GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEY -# MBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMSQwIgYDVQQDExtTZWN0aWdvIFJTQSBD -# b2RlIFNpZ25pbmcgQ0ECEFii1y2MwP2JzP8h4NTtx0owCQYFKw4DAhoFAKB4MBgG -# CisGAQQBgjcCAQwxCjAIoAKAAKECgAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcC -# AQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYE -# FPvoURlVLtMyc41aoH1W7jNXhNkUMA0GCSqGSIb3DQEBAQUABIIBACa4ISoVYuy4 -# LQD5f2XzRDboWCOwR2ClFczB/vOn7uX+RKpbW+vZwllcL0wk0kA4Iotk12yKLAni -# K0DkhX8P/Gt5B4hMFaWYKkwTZljITgCEHoAy8vQzpfDUdfJF40R7IIEQLzr2/n5q -# Iztv/ApXsPX8SkgEGdikFbBA0i/xtzI8+3sI1QINiRig8xEH/1eOZlR54YHwClvS -# 8QhXueb9NbqNN9oKBwx5gRWcOE4I2E5mYAppDDQyhqitbeeY2Pw4Eo5koLM3zTDy -# 4/zc+A9lNkAa5eDTavxMHQVqKgO5KomzIYHAdIFnKs85SdntIOr5nSAHnAl6svTh -# iJXqSEggdX8= +# MIIk4QYJKoZIhvcNAQcCoIIk0jCCJM4CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCccYNZIS81XLXj +# I4u2xwAAZSxeq/ghk/Li/aWf6Pd9dKCCHqUwggU6MIIEIqADAgECAhBYotctjMD9 +# icz/IeDU7cdKMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAkdCMRswGQYDVQQI +# ExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoT +# D1NlY3RpZ28gTGltaXRlZDEkMCIGA1UEAxMbU2VjdGlnbyBSU0EgQ29kZSBTaWdu +# aW5nIENBMB4XDTIxMDMxNTAwMDAwMFoXDTI0MDMxNDIzNTk1OVowgaExCzAJBgNV +# BAYTAlVTMQ4wDAYDVQQRDAUyMjMxNTERMA8GA1UECAwIVmlyZ2luaWExEjAQBgNV +# BAcMCUZyYW5jb25pYTEbMBkGA1UECQwSNjY1MyBBdWRyZXkgS2F5IEN0MR4wHAYD +# VQQKDBVEcm9pZE1vbmtleSBBcHBzLCBMTEMxHjAcBgNVBAMMFURyb2lkTW9ua2V5 +# IEFwcHMsIExMQzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALAH0v/7 +# XOVxc5Auhi92tgBZL0Hm6L7sT1xcKfrBwHg12ZpFs0zeR1ZzyduM44d45y3aNXNW +# 7+klHVJqAj5XVHUF/OB/O5bnljKIeupdAZ8v3GGokBZK91BGKe+WRn5ZjdDGc6HN +# xCT4FMth1TCrTg7eMy/u+cfp+4ur8dcSyAM5tkLsTIoS1VtZWjiepjS1RO+Ile9E +# j+wUM3wO9Qt5/BlYi8XsbXU0V4oi3bj6EMLO9UEq0SfsM2YUY7UIkAHtLPiMV7BX +# gw/WC+IwB8ZtIGpq/JEME4bt51pJVvVmrjzbKgc0Cz6akhArZIa9QooAkrbAINvO +# Cm+7mx/PBK2lzSECAwEAAaOCAZAwggGMMB8GA1UdIwQYMBaAFA7hOqhTOjHVir7B +# u61nGgOFrTQOMB0GA1UdDgQWBBTu7ZZnt+omJoze71KXMDAYGGhYfTAOBgNVHQ8B +# Af8EBAMCB4AwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDAzARBglg +# hkgBhvhCAQEEBAMCBBAwSgYDVR0gBEMwQTA1BgwrBgEEAbIxAQIBAwIwJTAjBggr +# BgEFBQcCARYXaHR0cHM6Ly9zZWN0aWdvLmNvbS9DUFMwCAYGZ4EMAQQBMEMGA1Ud +# HwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGlnb1JTQUNv +# ZGVTaWduaW5nQ0EuY3JsMHMGCCsGAQUFBwEBBGcwZTA+BggrBgEFBQcwAoYyaHR0 +# cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNBQ29kZVNpZ25pbmdDQS5jcnQw +# IwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMA0GCSqGSIb3DQEB +# CwUAA4IBAQAPbD9O3krI9tfYz6FZXCCqkqbjaeTpo3Ye9Kn4paWsHa37OIv7UhFf +# CrtLRXunZ7Vkry5cvMGNQNUaMFy6CHmEYb3kwZWW3EImuv9uTUd7rYvszBXF8flv +# kysT+8L9wdxLEQHUBnBnFgqMM99HzVuINVyH75d4qa9TF9PhcajsxwmpPgr9NwvC +# KNJv8BaxdH6vYFcQCqCygbfuST99s8qKaknTuHF39E1hWkTfcT3fMJDVONzW0/cN +# ourxylLqMZRjk007NGCnaYZwYfKW/pD/F/jmo28eKoVVy129j2h/RAWODl5gOvis +# sNr6aSz1/Ul3xoNYpyx8IGeWiFMoh99tMIIFgTCCBGmgAwIBAgIQOXJEOvkit1HX +# 02wQ3TE1lTANBgkqhkiG9w0BAQwFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +# R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFD +# b21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZp +# Y2VzMB4XDTE5MDMxMjAwMDAwMFoXDTI4MTIzMTIzNTk1OVowgYgxCzAJBgNVBAYT +# AlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEe +# MBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1 +# c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF +# AAOCAg8AMIICCgKCAgEAgBJlFzYOw9sIs9CsVw127c0n00ytUINh4qogTQktZAnc +# zomfzD2p7PbPwdzx07HWezcoEStH2jnGvDoZtF+mvX2do2NCtnbyqTsrkfjib9Ds +# FiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQIjy8/hPwhxR79uQfjtTkUcYRZ0YIUcuG +# FFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfbIWax1Jt4A8BQOujM8Ny8nkz+rwWWNR9X +# Wrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0tyA9yn8iNK5+O2hmAUTnAU5GU5szYPeU +# vlM3kHND8zLDU+/bqv50TmnHa4xgk97Exwzf4TKuzJM7UXiVZ4vuPVb+DNBpDxsP +# 8yUmazNt925H+nND5X4OpWaxKXwyhGNVicQNwZNUMBkTrNN9N6frXTpsNVzbQdcS +# 2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5D9kCnusSTJV882sFqV4Wg8y4Z+LoE53M +# W4LTTLPtW//e5XOsIzstAL81VXQJSdhJWBp/kjbmUZIO8yZ9HE0XvMnsQybQv0Ff +# QKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ5lhCLkMaTLTwJUdZ+gQek9QmRkpQgbLe +# vni3/GcV4clXhB4PY9bpYrrWX1Uu6lzGKAgEJTm4Diup8kyXHAc/DVL17e8vgg8C +# AwEAAaOB8jCB7zAfBgNVHSMEGDAWgBSgEQojPpbxB+zirynvgqV/0DCktDAdBgNV +# HQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgGGMA8GA1Ud +# EwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEMGA1UdHwQ8MDowOKA2oDSG +# Mmh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL0FBQUNlcnRpZmljYXRlU2VydmljZXMu +# Y3JsMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29t +# b2RvY2EuY29tMA0GCSqGSIb3DQEBDAUAA4IBAQAYh1HcdCE9nIrgJ7cz0C7M7PDm +# y14R3iJvm3WOnnL+5Nb+qh+cli3vA0p+rvSNb3I8QzvAP+u431yqqcau8vzY7qN7 +# Q/aGNnwU4M309z/+3ri0ivCRlv79Q2R+/czSAaF9ffgZGclCKxO/WIu6pKJmBHaI +# kU4MiRTOok3JMrO66BQavHHxW/BBC5gACiIDEOUMsfnNkjcZ7Tvx5Dq2+UUTJnWv +# u6rvP3t3O9LEApE9GQDTF1w52z97GA1FzZOFli9d31kWTz9RvdVFGD/tSo7oBmF0 +# Ixa1DVBzJ0RHfxBdiSprhTEUxOipakyAvGp4z7h/jnZymQyd/teRCBaho1+VMIIF +# 9TCCA92gAwIBAgIQHaJIMG+bJhjQguCWfTPTajANBgkqhkiG9w0BAQwFADCBiDEL +# MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl +# eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT +# JVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTgxMTAy +# MDAwMDAwWhcNMzAxMjMxMjM1OTU5WjB8MQswCQYDVQQGEwJHQjEbMBkGA1UECBMS +# R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9T +# ZWN0aWdvIExpbWl0ZWQxJDAiBgNVBAMTG1NlY3RpZ28gUlNBIENvZGUgU2lnbmlu +# ZyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIYijTKFehifSfCW +# L2MIHi3cfJ8Uz+MmtiVmKUCGVEZ0MWLFEO2yhyemmcuVMMBW9aR1xqkOUGKlUZEQ +# auBLYq798PgYrKf/7i4zIPoMGYmobHutAMNhodxpZW0fbieW15dRhqb0J+V8aouV +# Hltg1X7XFpKcAC9o95ftanK+ODtj3o+/bkxBXRIgCFnoOc2P0tbPBrRXBbZOoT5X +# ax+YvMRi1hsLjcdmG0qfnYHEckC14l/vC0X/o84Xpi1VsLewvFRqnbyNVlPG8Lp5 +# UEks9wO5/i9lNfIi6iwHr0bZ+UYc3Ix8cSjz/qfGFN1VkW6KEQ3fBiSVfQ+noXw6 +# 2oY1YdMCAwEAAaOCAWQwggFgMB8GA1UdIwQYMBaAFFN5v1qqK0rPVIDh2JvAnfKy +# A2bLMB0GA1UdDgQWBBQO4TqoUzox1Yq+wbutZxoDha00DjAOBgNVHQ8BAf8EBAMC +# AYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUEFjAUBggrBgEFBQcDAwYIKwYB +# BQUHAwgwEQYDVR0gBAowCDAGBgRVHSAAMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6 +# Ly9jcmwudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0 +# aG9yaXR5LmNybDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9j +# cnQudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggr +# BgEFBQcwAYYZaHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwF +# AAOCAgEATWNQ7Uc0SmGk295qKoyb8QAAHh1iezrXMsL2s+Bjs/thAIiaG20QBwRP +# vrjqiXgi6w9G7PNGXkBGiRL0C3danCpBOvzW9Ovn9xWVM8Ohgyi33i/klPeFM4Mt +# SkBIv5rCT0qxjyT0s4E307dksKYjalloUkJf/wTr4XRleQj1qZPea3FAmZa6ePG5 +# yOLDCBaxq2NayBWAbXReSnV+pbjDbLXP30p5h1zHQE1jNfYw08+1Cg4LBH+gS667 +# o6XQhACTPlNdNKUANWlsvp8gJRANGftQkGG+OY96jk32nw4e/gdREmaDJhlIlc5K +# ycF/8zoFm/lv34h/wCOe0h5DekUxwZxNqfBZslkZ6GqNKQQCd3xLS81wvjqyVVp4 +# Pry7bwMQJXcVNIr5NsxDkuS6T/FikyglVyn7URnHoSVAaoRXxrKdsbwcCtp8Z359 +# LukoTBh+xHsxQXGaSynsCz1XUNLK3f2eBVHlRHjdAd6xdZgNVCT98E7j4viDvXK6 +# yz067vBeF5Jobchh+abxKgoLpbn0nu6YMgWFnuv5gynTxix9vTp3Los3QqBqgu07 +# SqqUEKThDfgXxbZaeTMYkuO1dfih6Y4KJR7kHvGfWocj/5+kUZ77OYARzdu1xKeo +# gG/lU9Tg46LC0lsa+jImLWpXcBw8pFguo/NbSwfcMlnzh6cabVgwggbsMIIE1KAD +# AgECAhAwD2+s3WaYdHypRjaneC25MA0GCSqGSIb3DQEBDAUAMIGIMQswCQYDVQQG +# EwJVUzETMBEGA1UECBMKTmV3IEplcnNleTEUMBIGA1UEBxMLSmVyc2V5IENpdHkx +# HjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEuMCwGA1UEAxMlVVNFUlRy +# dXN0IFJTQSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xOTA1MDIwMDAwMDBa +# Fw0zODAxMTgyMzU5NTlaMH0xCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVy +# IE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28g +# TGltaXRlZDElMCMGA1UEAxMcU2VjdGlnbyBSU0EgVGltZSBTdGFtcGluZyBDQTCC +# AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMgbAa/ZLH6ImX0BmD8gkL2c +# gCFUk7nPoD5T77NawHbWGgSlzkeDtevEzEk0y/NFZbn5p2QWJgn71TJSeS7JY8IT +# m7aGPwEFkmZvIavVcRB5h/RGKs3EWsnb111JTXJWD9zJ41OYOioe/M5YSdO/8zm7 +# uaQjQqzQFcN/nqJc1zjxFrJw06PE37PFcqwuCnf8DZRSt/wflXMkPQEovA8NT7OR +# AY5unSd1VdEXOzQhe5cBlK9/gM/REQpXhMl/VuC9RpyCvpSdv7QgsGB+uE31DT/b +# 0OqFjIpWcdEtlEzIjDzTFKKcvSb/01Mgx2Bpm1gKVPQF5/0xrPnIhRfHuCkZpCkv +# RuPd25Ffnz82Pg4wZytGtzWvlr7aTGDMqLufDRTUGMQwmHSCIc9iVrUhcxIe/arK +# CFiHd6QV6xlV/9A5VC0m7kUaOm/N14Tw1/AoxU9kgwLU++Le8bwCKPRt2ieKBtKW +# h97oaw7wW33pdmmTIBxKlyx3GSuTlZicl57rjsF4VsZEJd8GEpoGLZ8DXv2DolNn +# yrH6jaFkyYiSWcuoRsDJ8qb/fVfbEnb6ikEk1Bv8cqUUotStQxykSYtBORQDHin6 +# G6UirqXDTYLQjdprt9v3GEBXc/Bxo/tKfUU2wfeNgvq5yQ1TgH36tjlYMu9vGFCJ +# 10+dM70atZ2h3pVBeqeDAgMBAAGjggFaMIIBVjAfBgNVHSMEGDAWgBRTeb9aqitK +# z1SA4dibwJ3ysgNmyzAdBgNVHQ4EFgQUGqH4YRkgD8NBd0UojtE1XwYSBFUwDgYD +# VR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwEwYDVR0lBAwwCgYIKwYB +# BQUHAwgwEQYDVR0gBAowCDAGBgRVHSAAMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6 +# Ly9jcmwudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0 +# aG9yaXR5LmNybDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9j +# cnQudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggr +# BgEFBQcwAYYZaHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwF +# AAOCAgEAbVSBpTNdFuG1U4GRdd8DejILLSWEEbKw2yp9KgX1vDsn9FqguUlZkCls +# Ycu1UNviffmfAO9Aw63T4uRW+VhBz/FC5RB9/7B0H4/GXAn5M17qoBwmWFzztBEP +# 1dXD4rzVWHi/SHbhRGdtj7BDEA+N5Pk4Yr8TAcWFo0zFzLJTMJWk1vSWVgi4zVx/ +# AZa+clJqO0I3fBZ4OZOTlJux3LJtQW1nzclvkD1/RXLBGyPWwlWEZuSzxWYG9vPW +# S16toytCiiGS/qhvWiVwYoFzY16gu9jc10rTPa+DBjgSHSSHLeT8AtY+dwS8BDa1 +# 53fLnC6NIxi5o8JHHfBd1qFzVwVomqfJN2Udvuq82EKDQwWli6YJ/9GhlKZOqj0J +# 9QVst9JkWtgqIsJLnfE5XkzeSD2bNJaaCV+O/fexUpHOP4n2HKG1qXUfcb9bQ11l +# PVCBbqvw0NP8srMftpmWJvQ8eYtcZMzN7iea5aDADHKHwW5NWtMe6vBE5jJvHOsX +# TpTDeGUgOw9Bqh/poUGd/rG4oGUqNODeqPk85sEwu8CgYyz8XBYAqNDEf+oRnR4G +# xqZtMl20OAkrSQeq/eww2vGnL8+3/frQo4TZJ577AWZ3uVYQ4SBuxq6x+ba6yDVd +# M3aO8XwgDCp3rrWiAoa6Ke60WgCxjKvj+QrJVF3UuWp0nr1Irpgwggb1MIIE3aAD +# AgECAhA5TCXhfKBtJ6hl4jvZHSLUMA0GCSqGSIb3DQEBDAUAMH0xCzAJBgNVBAYT +# AkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZv +# cmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDElMCMGA1UEAxMcU2VjdGlnbyBS +# U0EgVGltZSBTdGFtcGluZyBDQTAeFw0yMzA1MDMwMDAwMDBaFw0zNDA4MDIyMzU5 +# NTlaMGoxCzAJBgNVBAYTAkdCMRMwEQYDVQQIEwpNYW5jaGVzdGVyMRgwFgYDVQQK +# Ew9TZWN0aWdvIExpbWl0ZWQxLDAqBgNVBAMMI1NlY3RpZ28gUlNBIFRpbWUgU3Rh +# bXBpbmcgU2lnbmVyICM0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# pJMoUkvPJ4d2pCkcmTjA5w7U0RzsaMsBZOSKzXewcWWCvJ/8i7u7lZj7JRGOWogJ +# ZhEUWLK6Ilvm9jLxXS3AeqIO4OBWZO2h5YEgciBkQWzHwwj6831d7yGawn7XLMO6 +# EZge/NMgCEKzX79/iFgyqzCz2Ix6lkoZE1ys/Oer6RwWLrCwOJVKz4VQq2cDJaG7 +# OOkPb6lampEoEzW5H/M94STIa7GZ6A3vu03lPYxUA5HQ/C3PVTM4egkcB9Ei4GOG +# p7790oNzEhSbmkwJRr00vOFLUHty4Fv9GbsfPGoZe267LUQqvjxMzKyKBJPGV4ag +# czYrgZf6G5t+iIfYUnmJ/m53N9e7UJ/6GCVPE/JefKmxIFopq6NCh3fg9EwCSN1Y +# pVOmo6DtGZZlFSnF7TMwJeaWg4Ga9mBmkFgHgM1Cdaz7tJHQxd0BQGq2qBDu9o16 +# t551r9OlSxihDJ9XsF4lR5F0zXUS0Zxv5F4Nm+x1Ju7+0/WSL1KF6NpEUSqizADK +# h2ZDoxsA76K1lp1irScL8htKycOUQjeIIISoh67DuiNye/hU7/hrJ7CF9adDhdgr +# OXTbWncC0aT69c2cPcwfrlHQe2zYHS0RQlNxdMLlNaotUhLZJc/w09CRQxLXMn2Y +# bON3Qcj/HyRU726txj5Ve/Fchzpk8WBLBU/vuS/sCRMCAwEAAaOCAYIwggF+MB8G +# A1UdIwQYMBaAFBqh+GEZIA/DQXdFKI7RNV8GEgRVMB0GA1UdDgQWBBQDDzHIkSqT +# vWPz0V1NpDQP0pUBGDAOBgNVHQ8BAf8EBAMCBsAwDAYDVR0TAQH/BAIwADAWBgNV +# HSUBAf8EDDAKBggrBgEFBQcDCDBKBgNVHSAEQzBBMDUGDCsGAQQBsjEBAgEDCDAl +# MCMGCCsGAQUFBwIBFhdodHRwczovL3NlY3RpZ28uY29tL0NQUzAIBgZngQwBBAIw +# RAYDVR0fBD0wOzA5oDegNYYzaHR0cDovL2NybC5zZWN0aWdvLmNvbS9TZWN0aWdv +# UlNBVGltZVN0YW1waW5nQ0EuY3JsMHQGCCsGAQUFBwEBBGgwZjA/BggrBgEFBQcw +# AoYzaHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNBVGltZVN0YW1waW5n +# Q0EuY3J0MCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTANBgkq +# hkiG9w0BAQwFAAOCAgEATJtlWPrgec/vFcMybd4zket3WOLrvctKPHXefpRtwyLH +# BJXfZWlhEwz2DJ71iSBewYfHAyTKx6XwJt/4+DFlDeDrbVFXpoyEUghGHCrC3vLa +# ikXzvvf2LsR+7fjtaL96VkjpYeWaOXe8vrqRZIh1/12FFjQn0inL/+0t2v++kwzs +# baINzMPxbr0hkRojAFKtl9RieCqEeajXPawhj3DDJHk6l/ENo6NbU9irALpY+zWA +# T18ocWwZXsKDcpCu4MbY8pn76rSSZXwHfDVEHa1YGGti+95sxAqpbNMhRnDcL411 +# TCPCQdB6ljvDS93NkiZ0dlw3oJoknk5fTtOPD+UTT1lEZUtDZM9I+GdnuU2/zA2x +# OjDQoT1IrXpl5Ozf4AHwsypKOazBpPmpfTXQMkCgsRkqGCGyyH0FcRpLJzaq4Jgc +# g3Xnx35LhEPNQ/uQl3YqEqxAwXBbmQpA+oBtlGF7yG65yGdnJFxQjQEg3gf3AdT4 +# LhHNnYPl+MolHEQ9J+WwhkcqCxuEdn17aE+Nt/cTtO2gLe5zD9kQup2ZLHzXdR+P +# EMSU5n4k5ZVKiIwn1oVmHfmuZHaR6Ej+yFUK7SnDH944psAU+zI9+KmDYjbIw74A +# hxyr+kpCHIkD3PVcfHDZXXhO7p9eIOYJanwrCKNI9RX8BE/fzSEceuX1jhrUuUAx +# ggWSMIIFjgIBATCBkDB8MQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBN +# YW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExp +# bWl0ZWQxJDAiBgNVBAMTG1NlY3RpZ28gUlNBIENvZGUgU2lnbmluZyBDQQIQWKLX +# LYzA/YnM/yHg1O3HSjANBglghkgBZQMEAgEFAKCBhDAYBgorBgEEAYI3AgEMMQow +# CKACgAChAoAAMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcC +# AQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCClTHkKOG5BeIXQuZeR +# qwwE8AAIAc5Ygaq8ElaHav3yZDANBgkqhkiG9w0BAQEFAASCAQBDfc08YhR0CGst +# QY87ZyIwWXCkS5no07miWZo806Rhl28AqeNlIsYm4RHxtXTTLfENz3Wkc8h/2fnQ +# +3MAif0m8CAXd5bQUHXXK01wI0ksKMpYNVZEjEeqjFuO22kT4RbUhTwI437Xa/iG +# j+OZB1bWYdsClMY15vTkrGLyGZGxK7nGVyYcAzFL9oZNg5izhA7z3X8B4tP/VIZ6 +# vhZTOw75gTiOoS4pJX+0lGBMj1URs6Hh1/oXI10hTaopD2DGGTljQME2B495LhN4 +# WRQ2WTZLhEBHLHe5bNBA/F7rWhzKZ8qpwQfLdG2CeYyCPn2zAb3Se/tW4xsKFPbV +# nXCrfarsoYIDSzCCA0cGCSqGSIb3DQEJBjGCAzgwggM0AgEBMIGRMH0xCzAJBgNV +# BAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1Nh +# bGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDElMCMGA1UEAxMcU2VjdGln +# byBSU0EgVGltZSBTdGFtcGluZyBDQQIQOUwl4XygbSeoZeI72R0i1DANBglghkgB +# ZQMEAgIFAKB5MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF +# MQ8XDTI0MDMwOTIxMjE1OVowPwYJKoZIhvcNAQkEMTIEMFC4yhLWLtNfpFox+egv +# RCh29BdkBTGJcqIcz8DJK2RcrmfQu5cDRW2Sgeh0PMRvRTANBgkqhkiG9w0BAQEF +# AASCAgCWWrib6aQ86zx7NB0PetoKZkzv9q76m7auuJiM83uFrpke3UlUf8DgxwTC +# RZEV9pwnCDjZ3VU0CGwC1eVr2tgZx3ylYvHSfE8xFtYLKQjk5O2Y/d+SyYGgyHs9 +# rLNMhZmK5Qj5JP6KJhNkLi3zZYbyP6xCnwv72nHKdl76xOAulJnb7G24wm/WRqQH +# 9AhQ0ZVdGcWYYYpOa1eWCe6wdvFlgfCLQwZWU3a54I28pa02jFaRaX9ZSlf9kr2T +# MBbcylZYvyVc0bDgIyIjVQAj/rQjvRiwpnxlruhm24/HfY3B3M0GdSbGB0E1z69h +# uiyDjBhRHCPWbATs5ruM6pY/csGTvB7kl6+qfym0sg3t1aOd1LzYBD2/O+FxuDlM +# cjBp8h2CTGs7R+moephhASSjVRte8sr0GRMRLRVFiUK4W/QzWRc3e371NmMeADsr +# 4PCfiOfyzpkl6Bf5rXyEvRPnnSjQ5jaVVbSfh66++6o81mJF3ZehVlBUVdV8qvLm +# YmRe6kjhhh0xXu8uaC1YA3uyXNPJCB0su9mZrou8gIBF9xcexQnEd9HPF9uydJHj +# d5xTor+6XVzpiEJHDYPfOIiA4ojrT++q5WVd3TZue/XiQUGnYlvWAzUdMi7cO+Ek +# SMuWviD9lMHkfhtLzBKdcC4DDcEPYRQ7NCwL6mLO4bZi748S8Q== # SIG # End signature block diff --git a/share/CMakeLists.txt b/share/CMakeLists.txt index 34017e95c..90f7e6e68 100644 --- a/share/CMakeLists.txt +++ b/share/CMakeLists.txt @@ -66,6 +66,10 @@ if(APPLE) install(FILES macosx/keepassxc.icns DESTINATION ${DATA_INSTALL_DIR}) endif() +if(WIN32) + install(FILES windows/qt.conf DESTINATION ${BIN_INSTALL_DIR}) +endif() + install(FILES icons/application/256x256/apps/keepassxc.png DESTINATION ${DATA_INSTALL_DIR}/icons/application/256x256/apps) add_custom_target(icons) diff --git a/share/branding/keepassxc-fileicon.ai b/share/branding/keepassxc-fileicon.ai new file mode 100644 index 000000000..f33835310 --- /dev/null +++ b/share/branding/keepassxc-fileicon.ai @@ -0,0 +1,1906 @@ +%PDF-1.6 %âãÏÓ +1 0 obj <>/OCGs[26 0 R 27 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + keepassxc-fileicon + + + 2023-04-23T19:15:39+02:00 + 2023-04-23T19:15:39+02:00 + 2023-04-23T19:15:39+02:00 + Adobe Illustrator 27.2 (Windows) + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqkmqed/J +lXbWepazZ2l2gBe3lmRXUMKjkpNRUb74qhP+Vnfl5/1MVh/yPT+uKu/5Wd+Xn/UxWH/ACPT+uKu /wCVnfl5/wBTFYf8j0/rirv+Vnfl5/1MVh/yPT+uKu/5Wd+Xn/UxWH/I9P64q7/lZ35ef9TFYf8A I9P64q7/AJWd+Xn/AFMVh/yPT+uKu/5Wd+Xn/UxWH/I9P64q7/lZ35ef9TFYf8j0/rirv+Vnfl5/ 1MVh/wAj0/rirv8AlZ35ef8AUxWH/I9P64q7/lZ35ef9TFYf8j0/rirv+Vnfl5/1MVh/yPT+uKu/ 5Wd+Xn/UxWH/ACPT+uKozSvOvlDV7sWemazZ3l2wLLBDMjSEAVJCg1NB1piqdYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXYq7FXgvlTyj5d8y/mf56TXLJb1ba7rAHZ14lpZAfsMvZRirO/wDlTX5Z /wDVji/5GT/9VMVd/wAqa/LP/qxxf8jJ/wDqpirf/Kmfyz/6scX/ACNn/wCqmKt/8qY/LL/qxRf8 jZ/+qmKt/wDKmfyy/wCrFF/yMn/6qYq7/lTH5Zf9WKL/AJGT/wDVTFXf8qY/LL/qxRf8jJ/+qmKt /wDKmPyy/wCrFF/yMn/6qYq1/wAqY/LL/qxRf8jJ/wDqpirv+VMfll/1Yov+Rk//AFUxVr/lTH5Z f9WKL/kbP/1UxV3/ACpn8sv+rFF/yNn/AOqmKtf8qZ/LP/qxxf8AI2f/AKqYq1/ypr8s/wDqxxf8 jJ/+qmKvGvO/kp7X80xo/k2IWFzDbJd2SRyOp9WKMyng7EkMeO29K4q9a/Kf82U8zKdD1wCz81Wg ZZYmHpi4Ef2mRTTjItPjT6RtUKq9KxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV47+WH/AJNL 8wf+Yof8nZcVerjFWxirYGKt4q3irdMVbpirqYq1TFXYq1TFWsVaxVo4q8Y1M0/5yMtj/wAuP/Yu +Kph+Zv5YnXCPMHl9jaeZrSkitG3pmf091+IU4yrT4X+g9iFUz/Kb8218xj9Aa/S0802tUZHHpi5 9P7TKu3GVafGn0jaoVV6dirsVdirsVdirsVdirsVdirsVdirsVdirsVeO/lh/wCTS/MH/mKH/J2X FXrGKt4qo3t9Z2Ns1zdyrDAn2nbpvsMVS+184eWrm4jt4L5XmlYJGgVxVjsBuuKp1TFXUxVBaprW laVEJL+5SAN9lTUs3+qq1Y/QMVSiL8xfKcknA3TJvQO8bhfwB/HFWQ29xb3MKT28iywuKpIhDKR7 EYqvxVD31/ZWEBuLyZIIRtzc0FfAeJxVID+YvlT1OH1lyP8AfnpScf1V/DFU7sNSsNQgE9lOk8R2 5Ia0PgR1B9jiqIxV4rq5p/zkTbn/AJcv+xd8VepxyYqwT8zPyxTzAq63obfU/M9nSSKWM+n65TdQ WFOMi0+B/oO1CFUV+VH5tnXpP8OeZF+p+abWsZ5j0xcmPZvh24yrT4k79R3AVeo4q7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq8e/K//wAml+YX/MUP+TsuKvVxiqy5ure1t5Lm4cRwxKWkdugAxV4/5s80 3WvXtEDJYQkm3g77Dd3p3p9wxVCeVP8AlJdM/wCYmP8A4kMVe5jFVG/vIrKynu5v7q3jaR/korQf PFXheo3+oa1qjXE1Zbm5cLHGN6VNFRB4b0GKpxrH5fa3pemm/laKWNADOkZJZAdq7gAgd6Yqr/l1 5gmsNZjsJHJs75hGUPRZTsjD5n4T/Zir1zFXiXm/zBNrOsSy8ybSFjHaJ2CA/ap4t1xVGRfl3r8m kjUB6YLJ6q2tT6pWlfCnKnauKpb5Z16fRdUiuUY+gxC3MfZoyd9vEdRir24MrKGU1UioI6EHFXiW uMP+hh4KHcWVD7H6u+KvTY5MUIqKTFLBfzM/K6PzKF1nRnFl5ltaPFMp4Cb090DMKcXWnwP9B2pR VW/Kn82ZdWmPlfzSPqfmi0JiBlAj+sFOopsFlHde/UYq9TxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kv Hvyv/wDJo/mF/wAxQ/5Oy4q9YGKpb5h0KDWtMeyldozUPFIpPwuOhI/aG/TFWMweTodD8qapNOVl 1GW2kDyDdUXifgQn8TirCPKn/KS6Z/zEx/8AEhir3TFWN/mLO0PlO6C7GVo46+xcE/8AEcVed+QL dZ/NtgGFVQvIfmkbEf8ADUxV6XBqh1i78waNJGojtVEMdOrLLGQ1an+YHFXi9vM8E8c6fbidXX5q ajFXu+uXXo6FfXSHdLaV0PTfgSv44q8N0u3FzqdpbEVE00cZH+u4H8cVezPrbJ5qj0XivpPaGfmK 8g/Mjj4U4jFXkHmC3W313UIE2SO4lCDwXmafhir2HyxO0/l3TpW3Y26KT4lRxr+GKvHdYto7b/nI RfTLETWxlbkSfieBq0r2xV6ZHJihFRyYqi4pMUsH/M78sIPNMA1PSyLXzJagNBODwEwTdUdh0Yfs P2+XRVT/ACo/NubUZ/8ACnmytp5ltm9GOSYcPrBXbi1eko/4btvir1nFXYq7FXYq7FXYq7FXYq7F XYq7FXj35X/+TR/ML/mKH/J2XFXrGKt4qlnmr/lGtT/5h5P+InFXkXlT/lJdM/5iY/8AiQxV7pir E/zPVj5YJBoFnjJ9xuP44qwn8t/+Uttf9SX/AJNnFWZ+UkMfm7zOW2AkRiewDF2H4Yq8lxV7j5jB /wAJXwpuLN6j5Jirx7y6QPMGmEmgF3ASf+ei4q9Huo3/AOVnWjdvqRb6P3i/rxV595sIPmXUqCn+ kOKfI4q9T8lKV8q6eD19Mn6C7EYq8p8zGn/OQMJ/5ch/yYfFWfxyYqio5MUIuOTFKKikxVhn5mfl laebbQX1iVtPMVqK2t0PhEnHcRyEb/6rdV+WKoL8qvzZu7m9/wAH+cQbTzFbN6EFxN8Prsu3pydv V/lPR/n9pV65irsVdirsVdirsVdirsVdirsVePflf/5NH8wv+Yof8nZcVesDFXM6qtWIUeJ2GKpT 5pngby3qQEikm3koAR/LirybysQPMmmkmgFxHUn/AFhir3AXFudhKlf9YYqk/niya88rX8aCrxoJ l/55MHP/AAoOKvKfKWox6d5jsLuVuMSycZGPQLIpQk/INXFXrOtnTtH07VtXQBLi7jHN6/bkVOEQ H39sVeNaTZNfana2aipnlRD8idz9AxV7vqNsLuwubUmguIniJ/11K/xxV4HDJLZ3iScaS28gbidq MjVofpGKvb1/Q8xj8wBlotsQtyT8IhJ5mo6bUxV4nqN0b3Ubm6oa3MzyAd/jYmn44q9v0azNnpFl aNs8MMaP/rBRy/HFWCefPyg0TzVr/wCmJdVmsLr0lhkSPgQeFaHehGxpir5/8/aI/ljzZe6Lb3s1 zBbCIx3DmhYSQpIfsmmzMRirHvrl3/v+T/gm/riqtbnVrluNsbiZv5Y+bHx7VxVOrTyb+Yl1T0NI 1NgejGGZF8PtMAMVTmz/ACi/Ne5AI0+WFD+1NcxJ/wAKZOX4Yqt8y/lH5w8vaJPr2rT26x27Rjik ryTFncItPh47Vr9rFX1P5XuJrnyzpFxO5knmsreSWRjVmdolLMT4knFUzxV2KuxV2KuxV2KuxV2K uxV49+WH/k0vzC/5ih/ydlxV6uMVSDz5a3N15auIbaJ55maMrHGpdjRwTQLU4q8s/wAOeYf+rXd/ 8iJf+acVd/hzzD/1a7v/AJES/wDNOKq+n+XtfW/tmbTLtVWVCzGCQAAMNz8OKvcSFZSrAFSKEHcE HFXkPmryJqWm3ck1jA9zpzktGYwXaMH9l1G+3jiqQCLWLoJbBLicR7RwUd+P+qu9MVeh+QPJVzp8 36V1JOFzxK20B3KBhQu3+URtTFWdYq8289eR7xr2XVdLiM0cx53Fugq6uerKo+0G6mm9cVYV6erK hs+NwErU21Hpy/1PHFWXeSvI1899FqOpwmC2gIeKGQUd3G61U9FB33xV6WcVeS+cdF1m48y300Fh cSxOylJEidlPwKNiBTFWMXXkK6urj6xcaFPLMQAXa3kNQOldsVXxeSbyH+60GSP3W0YH8ExV6J+W mnXtlb363VrLbcmj4LKjR1ADVpyAxVmhxVo4q89/Pf8A8ltqH/GW3/5PLirO/J//ACiWif8AMBa/ 8mVxVN8VdirsVdirsVdirsVdirsVeO/lh/5NL8wf+Yof8nZcVesYq3ireKt4q3XFW8Vbrirq4q6u KtYq1XFWjirzrzf+fX5deW3e3N8dVv12NppwWcg/5UlViWh6jlUeGKvIfMH/ADlH5zvi0ehabbaT CeksxN1OPcEiOMfIocVYHqn5l/mbq7u175kvgJAVeO3kNrGQRQjhB6a0+jFUtj8s+bNWHqraahqA bcuI5pq9+oDeOCwtq/8AyrPzrw5/4d1PhSvL6ncUp414YqoSeWvNmkj1Ws9Q0/juHMc0NO/UhfDG wtpjpf5l/mXpLq1n5jviEAVI7iQ3MYAFAOE/qLT6MKs78v8A/OT3nCyKx67p1tqsI+1LCTbTn3JH OM/IIMVT/wA/fnP5K84fl9e2VlNLaaozwMLC7Tg5CyqWKOpeNqf61fbFXu3k/wD5RLRP+YC1/wCT K4qm+KuxV2KuxV2KuxV2KuxV2KvHfyw/8ml+YP8AzFD/AJOy4q9XGKtjFW8VbxVuuKt4q6uKurir q4q7FWD/AJi/m95U8jwFL2X63q7rW30m3IMzVGzSHpEn+U30A4q+ZPPP5u+ePOrvDeXJsdIY/Dpd oSkZG396325en7RpXoBiqY+SvyH85eYUjuHtxpenvQ/WbwFGZfFIqc29q0B8cFq9j8u/844+R9OR G1Rp9XuBTlzYwQ1H8qREN97nFXoWleVPLOkAfozSrSzYftwwxo5+bAcj9JxpaTXCrqYq7FUq1Xyp 5Y1ev6T0q0vGP7c0Mbv9Dkch9BwUtPPPMf8Azjh5H1FGbSnn0e4NePBjPDU/zRynl9zjFXjnnT8i fOnl5HuBbjVNPSpNzZguyqO7xEc126kAgeONqgvIf5v+ePJLJBZ3P17SFPxaVdkvEBv/AHTfbi6/ smleoOFX0/8Al1+b3lPzzAEsZTaaui1n0m4IEwoN2jPSVP8AKX6QMVZvirsVdirsVdirsVdirsVe O/lj/wCTS/MH/mKH/J2XFXq2Kt4q3XFW8VbxVuuKurirq4q6uKvEPzk/P1NEln8ueU3SfWUJjvdR oHitT0KRjcPKO/Zfc1AVeHeU/JHmvzxrUv1RZLy6lb1L/UblmKqXO7zStyJJ8NyfDAr6Y8g/kx5V 8ppHcvGNS1haE306iiN/xTHuE+e7e+NLT0DCreKtEgAkmgG5J6UxV5Bcf85Cwkn6joTyIa8JJrhY zTsSqpJ91cwpa0Do0HOhx/zkBqf/AFY4f+klv+qeQ/PeSPH8kVZ/85AoXVb7Q2jSo5SQXAkPXc8H jj/4lkhrR1CRn8nroIIqNwehzOb28VaxV5/5+/Jjyr5sWS5SMabrDVIvoFFHb/i6PYP89m98FLT5 p81eSvNfkfWohdrJZ3UT+pYajbMwVihqHhlXiQR4bEYq92/Jr8/k1uWDy55sdIdZekdjqNAkV0eg SQbBJT27N02NASr2/FXYq7FXYq7FXYq7FXjn5Y/+TR/MH/mKH/J2XFXq4OKofUb+30+xmvbg0igU s3ifAD3J2GKvH9a81azq9yzSTPHATSO1iJCAdgQPtH3OKoNJ9Y0udWVp7Ob7S15RkjxoaVGKvUPI /mt9atXguqC/tgC5GwkQ7BwOx8cVZPXFWIeePOa6XE2n2Lg6jIPjcf7pVh1/1j2+/FXm/wCmtY/5 b7j/AJGv/XFVX8+fzpl0j1fKflmfjqrrx1TUIzvbKw/uoiP92sDu37A6fF9lV5R+Vn5U6n5zvy1W tdHtmH12+Irv19OOv2pCD/sep7AhX1j5f8vaP5f0uLTNItltbSLoq7lmPVnY7sx8TiqLvL20srWS 6vJkt7aIcpZpGCoo9ycSaUmlHRdYsdZ02HUrFi9pccvRdgVLBXKcqHeh41FcEZAiwgGwjskl2Kvl nzZ5ZufLevXOmTIREjFrSQjZ4GJ9Nh9Gx965pc+MxlTgzjRSoDbKGKceT/Ldz5h8wWunxKTEWD3c g6JCpHNj9Gw98uw4zOVMoRs0+o83bnOxVA6zq9lpGnTajfMyWlvxMzqpYqrMF5UG9ByqadsjKQAs oJoWr2d5aXttHdWkyT20o5RTRsGVh4gjCDfJINoPzB5e0fzBpcumavbLdWkvVW2KsOjIw3Vh4jFX yj+aH5V6n5Mvw1WutHuGIsr4Chr19OSn2ZAP+C6juAq9c/IX86ZdX9Lyn5mn5asi8dL1CQ73KKP7 qVj/ALtUdG/bHX4vtFXueKuxV2KuxV2KuxV45+WX/k0fzB/5ih/ydlxV6tXFWG/mfeNFo1vbKafW Jqv7rGK0/wCCIxVjv5bafHc6+08i8ltIjIlf5yQq/gTirJvOZsNa8qTX1t8Zs5SY3pQgq/pyD5Eb /dirDfId61r5ntKGiT8oXHiHXb/hgMVet6gL42M4sSq3hQ+gZPshu1cVeZeW/Juo6rqs02rLJHBB IfrRkrzkk6lQf1tirzDzp5lGiaZ+5IN/c1S1XrT+aQ+y1++mKsL/AC+8kat538zLZo7kOxuNSvn+ IoharuxP2nYnbxPtXAr7C0HQtL0LSbfStMhEFnbLxRB1J7sx7sx3JxVS8yeZtJ8uaXJqOpy8IV+F I13kkc9EjXarH/b2yM5iIsolIAbvnbzl521vzZeGS+YwafG1bXTUP7tB2Z/539z9FM1ebOZnycKe Qye+flzx/wAD6NxBA+rr18amubHB9AcvF9IZJlzN2KpV5h8saJ5gtBbarbCZVqYpB8MiE90cbj9W QyY4zFFjKIPNg/8Ayofy79Y5fpC7+r/76/d8uv8APx/41zF/IxvmWvwAzjy95Y0Ty/aG10u2EKNQ yyH4pHI7u53P6syseOMBQbIxA5Jrk2TsVYr+aJp+X+uH/l3P/EhlWb6CwyfSXh3krz3rHla75W7e vYSGtxYufgb/ACl68W9x9Nc1mLOYHycSGQxfRGg6/pmu6ZFqOnS+pBJsynZ0cdUcdmH+e2bWExIW HNjIEWG9d0LTNd0q40vU4RPZ3K8XU9QezKezKdwckl8hefvJWq+SvMrWbu4CMJ9NvkqpdA1UdSPs upG/gcQr6c/Jf8yk87eWR9bZRr2ncYdTjApzqPgnUeEgBr4MD2phV6DirsVdirsVdirxv8s//Jo/ mD/zFD/k7Lir1bFWAfmsTTSxXb9+af8AIvFVL8qgPrOonuEjAPzLYq35db1Py71gSHpJNQ+/pxt+ JxVinltivmHTCOv1qEffIBir3HFVK5uYLa3lubiRYreBGkmlc0VUQcmYnsABir4X1vU7jzBrslyi s4kYQ2cIBLcAaIoUV+JiakeJxV9a/lV5Cg8neV4bV0U6pdATalMOpkI2jB/ljHwj3qe+AKGU6nqV lpmn3GoXsghtbZDJLIewHh4k9AO5xlIAWVJp82ecPNd/5q1htQuqx2kdV0+zPSKM9z4u1Ksf4UzT 58xmXByZOIpGwylqe/8A5M6ol55Litq/vNPlkgcd6M3qqfukp9GbXSSuFdznYDcWd5lNreKuxV2K uxV2KtYq8+/PDVUtPJL2Vf3upzxQIO/FGErn5Ujp9OY+plUGrMai8EAzUOEyTyR5vvvLGqrcxVks 5aLeW1dnSvUf5a/snLcOYwN9GeOZiX0fYX1rf2UN7aSCW2uEDxOO4ObiMgRYc8GxbFfzT8hwecPL MtsigapahptNlPX1AN4yf5ZAKH3oe2EqXzP+X3m+98jedLbVSrrBGxttUtqEM1u5AlUr8PxIRyUf zKMVfa1tc291bRXNvIstvOiyQyoaqyOOSsD4EHCqpirsVdirsVeN/ln/AOTR/MH/AJih/wAnZcVe q4qwf804C1jY3FNo5XjJ/wCMig/8aYqlv5XXATVrqAmhlg5AeJRh/wA1YqnOqaaNB8k6lbs6uZpW KU6UlkVVG9N+AqcVYX5PgafzNp6D9mX1D8owX/41xV7Piryb/nI/zc+keS00e3fjd67IYWp1FtFR pv8AgiUT5McVeZf848eS11jzU2sXKcrLRQsqgjZrl6iIf7Chf5gYCr6iwpeKfnP5ra/1NfLlq/8A odiRJfkdHnIqqfJAan3+Wa3WZt+EOJnn0ecEZgOMsK4VZp+U/mpNC8x/Vrp+FhqYWGVjsFkBPpOf apKn55laXLwyo8i3YZ0X0Hm2c52Kurih1cVdXFXYpdir5z/NXzWnmLzUYrV+emaSGt7dwaq8pP76 Qe1QFHsK5q9Vl4jQcLNOyxMLmHbQvC4Fepfkz5saC6by9dP+4uKyWJP7MgFXT5MNx7/PM7RZqPCX JwT6PYc2blvmP/nIPyaukeaV1e2TjZ6yGlYAbLcpT1R/sqh/mTgCHqX/ADjb5ubV/JT6NcPyvNBk EK16m1lq0H/AlXT5KMKvW8VdirsVdirxr8tP/Jo/mD/zFj/k7Lir1TFUt8yaQNW0eezFBKRzgJ6C Rd1+/piryG1udQ0fUlljrBeWzEFWHQ9CrDwOKo/zB5u1TW444rkJFBGeQiiBALUpyPIse+Ksl/LX QZUaTV7hOKspjtQepBPxP+FB9OKsz1i5lttJvbmE8ZYbeWSMkVoyISNj7jFXyB+afmrUvMnm13vZ vVFhGtrFQBVFCXfYUFebkE+2Kvoz8kvLa6J+X2n8l43OpA3857/vgPTH0RBfpwBQyrzLrUWiaDfa rLuLWJnVT+05+GNf9k5AyOSfDElEjQt8zM08zyT3DmS5ndpZ5D1Z3PJifpOaGUrNuuJsrCuBC0ri qm8dRhtXr/5Z/mlBJDDoevzCO5jpHZ30hosi9kkY9GHQN3+fXZ6bU2OGTl4svQvV8znJdirsVdir sVeP/ml+aqMk3l3y3MJJXBj1DUYzVUU7NFEw6ue7Dp236YWo1AAoOPly1sHk8UKxoFUUAzWEuIqB cCF4XAqIs7ie0uYbq3cxzwOskTjqGU1B+/ESo2Eg0+mdC1WLVtHtNSi2W5jVyo34t0Zf9i1Rm/xz 4oguxjKxbE/zq8ujWvIF/wAV5XOnUvoD4ejX1P8AkkWyRSXiX/OP3mE6N+ZVpbu/G21aN7GWvTm3 xxGnj6iBR/rYVfXGKuxV2KuxV41+Wv8A5NH8wf8AmLH/ACdlxV6nXFW64ql+p+X9G1Mhr21WVwKC QVV6f6ykHFUHa+SPLFtKJFsw7Dp6jM4/4FiV/DFU9AAAAFANgBiqndC3a1mW5p9WKMJuX2eBB5V9 qYq+H7GGXX/M0cajhLq16FUAfZa5loAB7F8BV9wQQRQQRwRKEiiUJGg6BVFAPuxCvOPzv1IppWna UpobyczSgd47cdD83dfuzC106iB3tGolQp5GVzUOGsK4VWlcNqtKY2qm8IYUP34QUvUPyT8x67Pr Fxod1dtPp1vZtNBHJRijLJGoCufi48XPw1p4ZstHlkTR5OVgmTs9jzYOS7FXYq8S/OnzRr/+IP8A Dtretb6YbaOS4jh+F3aQvVXcfFx4gfD08cwNXlINBxs0yNnm8NukShUFBmtJtxVUJgQuCYLVcFwK uC4q9m/JjUjNod3p7GrWcwdB4JMK0/4JWObXQTuJHc5enltTP54Ip4JIJV5RSqUkU9CrChH3ZnEO Q+KpjdeWvNvNGP1rRb6qt/xZaTeH+smIV9zxSRyxpLGweNwGRhuCCKgjCq7FXYq7FXjP5bf+TR/M D/mLH/J2XFXqdcVbxV1cVbrirq4qkPn67Fp5G8wXHIKY9OuihO3xeiwUb16tQYq+W/yYsku/zI0G JxULO0wHvBE8oP3pgKvsLCl4t+cNwZvN0EINUtrJBTweSRyf+FC5qO0JeoBw9Qd2DlcwHGWlMNqt KYpWlMKreGKs6/JNaecrw/8ALhJ/yehzP0H1fByNPzZJr35k+YbD8yIPLVvBaHTpLizheWRJTNxu eHOjCQLUcjT4cy55yJiLdLIRKnpmZTc1ir58/NZvU/MW/G37qK3Tb/jEG3/4LNRrT63Cz/UxnhmE 0NhMVXBMVXBcCrguC0PQPybuTH5hurevwT2xNP8AKR1p+DHM7s+XrI8nI059T2LNw5r5E/OOzS0/ MfXIkFA06zEe88aTH8XwBD6t/L+6F35E8vXAYMZNNtC5G/xiFQw2p0aowqn+KuxV2KvGfy2/8mj+ YH/MWP8Ak7Lir1KuKuxVuuKurirq4qxT81//ACXHmH/mDk/hir58/IKFH/MvS2brElyyfM28i/qY 4Cr6wwpeG/maWbzxfg9Fjt1X5enX9ZzSa8/vHB1H1MWKZhW0LSmG1WlMVWlMNq0UxtWc/kutPN14 f+XB/wDk7DmfoPrPucnT81HzUlfzstz/AMvmm/8AMvLM398PeEz+sPb82bluxV55+Y/5cLqkkuua Wn+5TiPrUA/3eqKFUr/lqopTuPfrg6vTcXqjzcfNivcPIDEysVYEMDQg7EEZqHDbCYLQ2ExVcEwK uCY2rL/ysJTzhbgD7cUoP/AE/wAMytCf3obsH1Pbc3rnvlT8+YkT8ytUZTUyLbM3sfq8a/qUYAh9 H/lL/wCS28u/8wafxwqy3FXYq7FXjH5b/wDk0fzA/wCYsf8AJ2XFXqNcVbxVIfNPmqDRYVRAs19J vHCTsF/menbw8cVSHSPzC1O91O1tJLaFUnkWNmXnUBjTarYqz2uKsb/Mq2Nz+X/mKIGhGn3Eg2rU xxl6fTxpir5t/I+YQ/mbobN0Lzp4bvbSoPxbAVfXOFLxn81Lcx+cHc9JrWFx9DOn/GuaTtEVP4OD qB6mIFMwGhaUw2rRTG1WlMNq1wxtWcfk4tPNV0f+XF/+TsWbDs/6z7v1ORpvqUfM6V/OaA+F3p3/ ADLyec/vx7wyn/eB7Tm1ct2KuxV4j+Z135dn8xlNKTldpUanNGR6PqdgPF+vIj9dc0uu4OLbn1cH PV7MT4Zg20NhMbVsJgtVwTG1Zp+VFuz+aGkHSG3kYn5lV/42zN7PF5Pg36cep7Fm8c58mfnZMsv5 ma2y9A8CeO6W0SH8VwAofT35ZWptfy88uRE1J0+3kNRShljElPo5UwqybFXYq7FXi/5cf+TR/MD/ AJix/wAnZcVeo1xVLfMWs/ojS5LwRNK4IRFA+EM3Quey4q8vS01XWmvtSkYuIEaW4nbpsKhR92w7 DFWvLP8AykGnf8xEf/EsVey1xVLvMawyeX9SinDNDLbSxyBF5NxdCpoPpxV8eeS9R/RPmzSb6RvT WzvYHnbwjWUeoP8Aga4DyUvtjCl5r+b+nn1tM1BV2IktpG99pIx+D5qu04bCTi6kci87KZqLcRaU w2q0pjatcMNq1wxVm/5QpTzNcn/lyf8A5OxZsOzv7w+79Tkab6vgpeY0r+cER/5etP8A+ZeWZz+/ HvCcn94HsWbZzHYq88/NDzlqViRoemJJbzXEfO41AgqFjbbjCe7Hu3b59MDWakw9I5uPmyVs8rig SNAiigGaUm3CtU4YFbCY2rYTBargmNq9J/KKwIXUL9hsSkEbfKruPxXNr2ZDnJytMOZejZtnLfF/ m2/bWfN2p3kLeqL29me3I7o8p9ID/Y0GRHJAfa+lWCafpdnp8Z5JZwRwI1KVESBAafRklRWKuxV2 KvF/y5/8mj+YH/MWP+TsuKvUK4qtliimiaKVQ8bgq6MKgg9QcVSfVrC00/ytfWtpGIoUgkoo3JJG 5JO5OKvNvLX/ACkGn/8AGeP/AIlir2SuKu2xV8g/mjoa6J+YWsWaIEglmNzAqiiiO5AlCqPBSxX6 MVfUX5ea+Ne8l6RqZfnNJbqlyen7+L93Lt/roTgChV876O2q+W7qCNeVxCBcW4AqS8W/Ee7LVfpy jVYuPGQwyxuLxTiCARuD0Oc061opiq0pjatcMNq1wxtWa/lMtPMdz/zBv/ydjzYdm/3h936Q5Gm+ r4LPMC1/NqM/8vNh/wAaZZqP8YHvH6GWT+8D1vNw5jsVSjzRouk6rpUqakywxwqZEuzQGEgbtU9v Ed8o1GKM41JryQEhu8JIiLN6T+rEGISQAgMAaBgGAO/vnNyFGnXEN8MFobCYLVsJjathMVe3+TtJ Ol+XrW3deMzr604Ox5yb0P8Aqii/RnSaTFwYwOrscUaiofmFr36C8l6tqSvwmjt2jtm/4vl/dxf8 O4OZBbC+aPyk0M61+Y+i2vEGGCcXU3IVXhaj1aEf5RQL9OFX2TirsVdirsVeLfl1/wCTR/MD/mLH /J2XFXp9cVbxVLfMn/HA1D/jBJ/xHFXl/lr/AI7+n/8AGeP/AIlir2OuKurirw//AJyU8tNJBpnm WFamGtjeHwRiZIT8g3MH5jFWv+cbfNiq9/5YuH/vf9NsAT+0AEnQV9grAD/KOR6q94ySXjnnTy+d I1qQRrxs7oma2p0AJ+NP9gx+6mc5rsHhz8i6/NDhkx8pmHbS1wxtWuGG1a4Y2rMvyqWnmG4/5hH/ AOTsebHsz+8P9X9IcjTfV8Fmur/yFZD/AMvNh+pMnqf8YHvH6GWT+8Hwer5unMdiryb8zta1K81m XQyfS0y09N3RTvO7oHBf/JWtAv0+FNN2hqJcXB0cPUZDdMREYAoBQZqrcVvhjat8MbVsJgtWR+R/ L51XWUaRa2lpSWevQkH4E/2R/CuZmiweJPyDbhhxSew50bsXhP8Azkf5qVpLDyzbv/df6bfAH9og pChp7FmIP+Scj1QmH/OMPldo7fVPM8yUM9LGzb/IUiSc08C3AD5HJK93xV2KuxV2KvFfy7/8mj5/ /wCYsf8AJ2XFXp9cVQWsarDpdg97MjPGhUFUpX4jTvTxxVimq+ftNvNNubSO3mV542jVm40BYU3o cVYhpN4lnqdrdupZIJFkZV6kKa7VxVnsP5jaXLMkQtpwZGCgnhSpNP5sVZNeXSWtpPdOCyQRtKyj qQiliBX5YqwPzL5s8v6/oN9o13aziG9iMZeiEo3VHA5DdHAYfLFXzjo+o6n5Z8xwXkP7u/0ycOFP QlTRlJ/ldaqfY4CLV9j+XNesNf0S01iwbla3kYdRtVW6MjU/aRgVPviCqzzJoMOtaY9q5CzL8dvK f2XHSvsehyjU4BlhwlhkhxCnjd3aT2txJbXEZjnibi6N1BGczOBiaPMOtIINFR4jIodwxVrhirL/ AMr1pr9x/wAwj/8AJyPNl2X/AHh/q/pDk6b6vgya+8jC681DXvrvCkkEn1b0q/3FNufMfa4/y5sc mj4sgnfKvsb5YbldsqzNb3Yq8i/MOHj5vuTT+8ggfb5Mv/Gmc/2kKyfBwNT9THeGa9odwxQ3xxVW s7K4vLmO1tkMk8rcUQdzkoQMjQ5lIBJoPZfLuhwaNpiWkdGkPxzy/wA7nqfkOgzptNgGKFfN2WOH CKXeYtesNA0S81i/bjbWcZdgKcmboiLX9p2IUe5y8lm+RJ31rzn5uJC+tqus3QCpX4Q0hoq17JGt BXsoxAV9k+V/L9p5d8vWGi2m8FjEsfOlC7dXkIqaF3JY/PCqaYq7FXYq7FXiv5d/+TQ8/wD/ADFj /k7Lir07FCX67pP6V02Sy9X0fUKn1OPKnFgelV8PHFLFv+VZf9rL/kh/18xV3/Ksv+1l/wAkP+vm Kqlv+W/pTxy/pHl6bK1PRpXia/78xVl9/bfW7G4teXD6xE8XOlac1K1pUVpXFWG/8qy/7WX/ACQ/ 6+Yq87/Nv8pLqy00+YrCb621sANQiWPgfSGwl+01eHRvbfoMVSv8kvzLXy3qZ0jU5eOh6i4/eMfh t7g0USE9kfZX8Nj44Cr6bBBFRuD0OFLG/N/lGLWYRPb8Y9QiFFc7CRf5WP6jmDrNGMosfU0ZcXF7 3ldzbXFrO8FxG0U0Zo6MKEHOelExNHm4BBGxU8ih2Ko/RNZu9Hv1vLahYDjIh6OhIJU/dl2DOccu IM4TMTYevaLrVlq9kt1at7SRn7SN/K2dLgzxyRsOxhMSFhH5czS3zB5g0/QtPa9vW2+zDCv25H7K oyrNmjjjZYSkIiy8c1LVb/V9Rl1K+ossoCpCv2Y41rxWvfruc5vUZzklZdfknxG1DMdrdiqpa2tx dTpb28bSzSGiIoqSclGJkaHNIBOweq+UfKUWiwGafjJqEo+NxuEX+RT+s50Oj0YxCz9Tn4cXD72R kgCp2A6nM5vfM351fmSvmTVBpGly89D09z+8U/DcXAqpkr3RN1Tx3PhkQhnf/OO35ctZ2p84alFS 5ukMelRsBVYW2effcGT7K/5NezZJXt+KuxV2KuxV2KvFfy7/APJoef8A/mLH/J2XFXp2KHYq7FXY q7FXYq7FVskaSI0cih43BV0YVBB2IIPbFXzJ+bX5ZzeVNTbUNOjZvL9459KlW+ru3+6XP8v8hPbb qN1LLvyZ/OKO2jh8teZLjjAvwabqUrbIO0MzHovZG+g9sjyV71kkpR5g8sabrUNJ19O4UUiuU+0v sf5h7ZjajSxyjfn3tWTEJPMtc8q6to7kzx+pbV+G5j3Q/P8AlPzzQZ9JPFz5d7hTxGKT5jNTsVTD RNbvdHvVurVvaWI/ZdfA/wADl+DPLFKwzhMxNh6XN560KLQv0u8m32BainqmWn92F8ffpTfN+NZA w43PGWPDbyvVdV1DWtQOo6ifj3Fvbg/BCn8q+/ic0Wo1EskrLg5MhkVDMZrdiqcaH5V1bWHBgj9O 2r8VzJsg+X8x+WZODSTy8uXe2wxGT03y/wCWNN0WGkC+pcMKS3L/AGm9h/KPbN/p9LHENufe5uPE IpvmS2vB/wA5PzgiuY5vLflyflA3walqUTbOO8MLDqP52+gd8jzQxz8m/wAq5vN2pjUtSjZPLtk4 9WtV+sON/RQ/y/zkdthudpK+qo444o1jjUJGgCoigBQoFAAB0AxVdirsVdirsVdirxX8u/8AyaHn /wD5ix/ydlxV6dih2KuxV2KuxV2KuxV2KobUdOstSsJ7C+hWezuUMc8LdGVuvTcexG4xV80fmZ+V Wo+UrmS9s1e78vSN8E/2mh5Ggjmp77Buh+eKU5/LH8773QUi0nXy97oy0WG5FXuLZew8ZIx4faA6 VFBkeSvofStX0zV7CK/0y5ju7OYVjmibkp9vYjuDuMIKotlDAqwqp2IPQjFWOar5B0C+LPHGbOY/ tQUC190Pw/dTMLL2fjny9J8mmWCJ8mL335ZavESbSeK5QdA1Y3+48l/4bNfk7LmPpILRLTHok8/k 3zNCSGsJGp/IVf8A4gTmNLRZR/CWs4ZDohj5X15nAOmXBZd1Jibb6aZD8tl/mn5I8OXciYPJvmaY gLYSLX+cqn/EyMnHRZT/AAlIwyPROLH8stXlIN3PFbIeoWsj/cOK/wDDZk4+y5n6iA2R0x6sn0ry DoNiVeSM3kw/amoVr7IPh++ubDD2fjhz9R82+GCI82SKoUBVFFGwA6AZmtyE1XV9M0iwlv8AU7mO 0s4RWSaU8VHt7k9gNziSr56/Mz87b7X0l0nQDJZaM3wzXO6XFyvceMcZ8PtEdaCowc1QH5VflDqX m+6jv75HtPLcTfvLinFp+JoY4K++zP0HzySvqjTtOsdNsYLCwgS2s7ZBHBBGKKqjsMVRGKuxV2Ku xV2KuxV5HrP5OebR5p1XWvLXmUaamrSetPEyNyDElivJaggEmmKvIPM3nT8w9B1++0d/Mc9xJYym F5kICsy9aAjx2xVLP+VofmB/1fLn/gh/TFXf8rQ/MD/q+XP/AAQ/pirv+VofmB/1fLn/AIIf0xV3 /K0PzA/6vlz/AMEP6Yq7/laH5gf9Xy5/4If0xV3/ACtD8wP+r5c/8EP6Yq7/AJWh+YH/AFfLn/gh /TFXf8rQ/MD/AKvlz/wQ/piqyb8yvPU8MkE+szywyqUlifiysrCjKykUII6jFWLsG5Fl770FB92K pz5Y84eYfLV79b0W9e1diPWi+1DKAeksR+E/PqOxwEK9u8qf85F6LdKkHmW1bTZ6ANeQBprYnuSo rLH8qN88d1eqaTrmjaxbfWdKvoL6DvJBIsgB8DxJofY4gqjcKXYq7FXYq7FUFq2uaNo9v9Z1W+gs YO0lxIsYJ8ByIqfYYCUPK/Nf/ORWi2qvB5atW1KehAvJw0Nsp7EKaSyfKi/PHdXjWs+YfNnnLVoj fTTaneyNxtLOJSVUt+zDAgpX3pU9ziAr1z8uf+cd25R6n5zoBs0WjxsCa1/4+JF2/wBgh+bdVwq9 4gght4Y4II1igiUJFEgCoqKKKqqNgANgBiq/FXYq7FXYq7FXYq7FXYq8d13/AJxx03V/MF/q0uuT xi/uJbl4RChKtMxcgPyGwJ2+HpiqjF/zi/5ZFfW1i9f+XgsSU+dVbFUVH/zjJ5GCj1NQ1Nm7kSW6 g/R6B/XiqMj/AOccPy6Rqsb6QfytOtP+FRTiqKi/5x8/LJAQ1lPKT3e4lBH/AAJXFUVH+RP5Vpx/ 3C82WnxNc3RqR4j1afhiqLi/Jv8ALKJuS6BASRT4mlcfczkYqiovyt/LqNeK+XrEjr8USufvapxV Fx+QfIsZVk8u6YrL9lhZ29R9PCuKouLyt5Zhr6WkWUdevC3iWv3LiqKj0vTI0CR2kKIOirGgA79A MVSfzd5A8qebLf09asUmmVeMN4nwXEY3pwlX4qAmvE1XxGKvEvNf/OM+u2jST+Wb1NRtxUpaXJEN wBXZQ/8AdOfc8MVeX6loHm3yteCW/srzR7lSRHdUkhqR14TpRW/2LHBSp3pX5xfmPpqoketSXMSf 7rvEjuK/ORh6v/D40rI7b/nI/wA7ptPY6bMKbEJPG1ff96w/DFUw/wChl9ap/wAcO1r4+vJ/zRg3 XdAXP/OR3nd9oLLTYRTclJ5Gr7fvVH4Yd1Y5qv5w/mPqSukmsyW0T/sWaR29PlIo9X/h8aVJdN8v +bPNF4ZbGyvNXuWIEl1SSahPT1Jnqq/7JhiAr1Dyp/zjVrl00c/mW9TTrc0LWlsRNcEV3Uv/AHSH 3HPCr2vyl5B8q+U4PT0WxSKZl4zXj/HcSDavOVt6EivEUXwGKshxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVp0R0ZHUMjAhlIqCD1BGKsY1X8rvy81Qf6X5fs+VSTJBG LdzXxeD02P0nFWOXv/OPH5aXDVhtbmz6bQ3MjD/ksZeuKoX/AKFs/L7lX1tQpSnH1o6fP+6r+OKo uy/5x5/LS3as1tc3g3+Ga5kUf8kTF0xVkWl/ld+Xulj/AETQLPlsRJPGLhxTwef1GH0HFWToiIio ihUUAKoFAANgABireKuxV2KuxV2KuxV2KuxV/9k= + + + + uuid:cb06a81b-9f9d-42c2-a74c-232788afe4f6 + xmp.did:945db5ee-7e5a-7846-803f-65206778cf92 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + uuid:9e4c6a5d-5850-4b2d-ba62-ca6055f90c72 + xmp.did:a9e5b225-fa58-1749-879e-ee0cbc42b5ab + uuid:5D20892493BFDB11914A8590D31508C8 + default + + + + + saved + xmp.iid:22bad6a9-99e9-a547-b4a8-c9417d49a540 + 2023-03-29T23:10:27+02:00 + Adobe Illustrator 27.2 (Windows) + / + + + saved + xmp.iid:945db5ee-7e5a-7846-803f-65206778cf92 + 2023-03-29T23:39:55+02:00 + Adobe Illustrator 27.2 (Windows) + / + + + + Print + AIRobin + Document + False + True + 1 + + 128.000000 + 128.000000 + Pixels + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + RGB + PROCESS + 255 + 255 + 255 + + + Black + RGB + PROCESS + 22 + 22 + 21 + + + CMYK Magenta + PROCESS + 100.000000 + RGB + 192 + 0 + 128 + + + K=50 + PROCESS + 100.000000 + RGB + 14 + 14 + 13 + + + R=106 G=181 B=54 + PROCESS + 100.000000 + RGB + 106 + 181 + 54 + + + R=46 G=107 B=38 + PROCESS + 100.000000 + RGB + 45 + 107 + 38 + + + R=252 G=252 B=252 + PROCESS + 100.000000 + RGB + 252 + 252 + 252 + + + Branding Primary + PROCESS + 100.000000 + RGB + 97 + 153 + 48 + + + + + + Grays + 1 + + + + C=0 M=0 Y=0 K=100 + RGB + PROCESS + 22 + 22 + 21 + + + C=0 M=0 Y=0 K=90 + RGB + PROCESS + 51 + 52 + 51 + + + C=0 M=0 Y=0 K=80 + RGB + PROCESS + 79 + 80 + 79 + + + C=0 M=0 Y=0 K=70 + RGB + PROCESS + 103 + 104 + 103 + + + C=0 M=0 Y=0 K=60 + RGB + PROCESS + 128 + 129 + 128 + + + C=0 M=0 Y=0 K=50 + RGB + PROCESS + 150 + 151 + 151 + + + C=0 M=0 Y=0 K=40 + RGB + PROCESS + 172 + 173 + 173 + + + C=0 M=0 Y=0 K=30 + RGB + PROCESS + 192 + 194 + 194 + + + C=0 M=0 Y=0 K=20 + RGB + PROCESS + 213 + 214 + 214 + + + C=0 M=0 Y=0 K=10 + RGB + PROCESS + 234 + 235 + 235 + + + C=0 M=0 Y=0 K=5 + RGB + PROCESS + 244 + 245 + 245 + + + + + + Brights + 1 + + + + C=0 M=100 Y=100 K=0 + RGB + PROCESS + 193 + 33 + 27 + + + C=0 M=75 Y=100 K=0 + RGB + PROCESS + 209 + 85 + 0 + + + C=0 M=10 Y=95 K=0 + RGB + PROCESS + 245 + 215 + 55 + + + C=85 M=10 Y=100 K=0 + RGB + PROCESS + 80 + 158 + 69 + + + C=100 M=90 Y=0 K=0 + RGB + PROCESS + 42 + 48 + 142 + + + C=60 M=90 Y=0 K=0 + RGB + PROCESS + 119 + 43 + 172 + + + + + + + Adobe PDF library 17.00 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 5 0 obj <>/ExtGState<>/Properties<>/Shading<>/XObject<>>>/Thumb 51 0 R/TrimBox[0.0 0.0 128.0 128.0]/Type/Page/PieceInfo<>>> endobj 29 0 obj <>stream +H‰ìWÛnÇ}Ÿ¯èØÞ¾_^µR ‘/ØÖ«±`LCÇ"mø÷sªú2ÝÔ.½&£«93=ÕÕu9§fÿÍAìß”xóö –‹Ú$þÛÑÏýÍò½øeÙŽJœ„’&ÄéW<œðøÛ›ûÓͯ¿ýþÃ*îZö_aõËG¡…Â?-r–Á%'¬‘V+/Nw =¸[v1ʨ…VÒz-Và$•é7šh j•;Ì2iqZvÉJÄÎx”¡··Yáídð?Nb‚ÔÎ2ö9v ZjÚÆï¯$ÜlȧÄÐé%éR™Bs·¼ù öÇ[%nÅ»¢Dû‰Z>ÏÕòñðõ¢¥CAþ¢ýW7BW#=wò(Ô—¦—AÁqp©6¤ñf@T<§¥a­’Œ6×7ËÚG4C­*h“†aÂ8™ƒíw¸2SÉI“B‡eÇ ‘7¨Zã{ÕÞ.GÄqë}*~üfS¹÷·8 -²5Nd#UÂF=Nºà9 +åJ£ ¹~¥³X¯Li=GEGRYJ1 2$ò2•Òž!™„±¤íx¹³Òk2¡¶Ë[nÁÍWÔ:ÚSÆ K[ÎÀ4ÞQš‘HyÑðxGtDÇvÙQ„qBW˜Òÿ 0I.ŒáqBæ^è3=Ë–é# XA.2@øá±Ñea@¹[i2ïÑ8è_D¢ƒ¬ëB‚è¨Ä»E𛓶¼2®“o£øšuä*© +ô¡žQE=48Ùѵ‚»|M\‡Š,kP$±–ƒåk*,Zäÿ s¢U•€ósÑ (ØÑäB›ˆ œñÞ€7à%‡3À &^ÍQᘎÎÛµEÜŠ­‚Bôô~¦@ÙH;Ræ8¶Eq§ä•H B9 š,¾öÚ2ļ)ÚQ-”+ +©ð jî„);(RÜrԇأh3= +ž¶rÊÖkœ€ã_P€\$Áo$nçb ½(eEðhÙ {.*r®"v6ÛŽáKP¾½/•í6œ·u;:@Õ +š‡çë[õXÅb?qÝ®D£zRã4ñD½‰^ÆïȾAÐ+ÞQ¥‹Õª¡ÿˆâp+sQ—¢Hµ‰ (e–:´€îs±=£×2¬T‹`™È2XvƒºÈA éÖè'gzd ¢DÓ!öÁñë{0©Âf»qê°¼àv"/Êus° l¯Ñ?¨r×Ð#szÄYc‡B®^9땳^9땳¾Ί(çD–_0êÿÕPhhäF® ûù ÖüšF~5ÏäWó~5#¿Æòkø5NüJl糫½H®î*rµ¹Ú‰[ÃÀ­yàÖ8r«¸ÕÜúÿ"×8‘kÞÈÕäš/“k¹5ÌÔ.2kž™ÕŽÌšGf_³†‘YãƒYíĬvfVû2fÏcV›qçö •OÓÀ“̪'jµZÏ2«›™Õ]ìqcÖx†YÛèúʬŸY?\_¹õ•[_¹õS닸õüØúÈÕPë!`Æ£ÇÜŸÌØ(ȳCvq6~ö»ÉÖá¬PäálÄ×Kò™¾bL†z<©±…+Y\¶Mck¬5ö²ÄÚ4jl5ö¬Ä&–ظÜ6±Âê3 +«YbŸPX=*¬ŸV +[¼­kSÕØ\‰l`‘M,²ŽE6L"˦ ‹ld‘¥ûÚ¤IeYd=‹¬¹JdÍ&²ÕTSY¶•«lTÖW•Õ,³–eÖ³Ìj–YÊNPy’ÙÀ2kþ²ÌjÖÆX„ÇVÕŸ +­„6LB›Dy…ÔÏTk$Œé²Òúzš‚\;@BBúygŒ}g®F(b‚ª‘k¨EyÆkÃ5%:hú©ÙŠ4ÒôTž–¯ ×BZ{<ÃÒØ†.@2„Ç·k HúÀáÑ.>E¬Ìçê){xÉ|¬2èE}®4¾PÓYggmØøÜu>ç‰ñ»å? ÊD +endstream endobj 30 0 obj <> endobj 51 0 obj <>stream +8;UT4_%"16#Qk>&/&RS^e+D+'(a_JN;Zf`mPmAXV!=SH7#,&:[c47&t0F9&")_X-P +l)6W\S61.j=$r`0[U*ro,X(^NKri,r-\j(I1u7tloG;_rqOZm#M:21e[le=#ZgUPQ +l5fqh,+If~> +endstream endobj 9 0 obj <> endobj 11 0 obj <> endobj 12 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 24.0 +%%AI8_CreatorVersion: 27.2.0 +%%For: (janek) () +%%Title: (keepassxc-fileicon.ai) +%%CreationDate: 4/23/2023 7:15 PM +%%Canvassize: 16383 +%%BoundingBox: 0 -128 128 0 +%%HiResBoundingBox: 0 -128 128 0 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 14.0 +%AI12_BuildNumber: 339 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0.382499992847443 0.600000023841858 0.191249996423721 (Branding Primary) +%%+ 0.752972662448883 0 0.505330502986908 (CMYK Magenta) +%%+ 0.057919479906559 0.057945560663939 0.052277076989412 (K=50) +%%+ 0.417439699172974 0.709999978542328 0.212999999523163 (R=106 G=181 B=54) +%%+ 0.988235294818878 0.988235294818878 0.988235294818878 (R=252 G=252 B=252) +%%+ 0.178956523537636 0.419999986886978 0.149739146232605 (R=46 G=107 B=38) +%%+ 0 0 0 ([Registration]) +%AI3_Cropmarks: 0 -128 128 0 +%AI3_TemplateBox: 64.5 -64.5 64.5 -64.5 +%AI3_TileBox: -221.600006103516 -472.899993896484 349.600006103516 344.899993896484 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 6 +%AI24_LargeCanvasScale: 1 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 2 +%AI17_Begin_Content_if_version_gt:24 4 +%AI10_OpenToVie: -89.6405817596406 31.8513286850885 10.3658946694974 0 8188.47999682482 8187.80830472083 3147 1901 18 0 0 6 181 0 0 0 1 1 0 1 1 0 0 +%AI17_Alternate_Content +%AI9_OpenToView: -89.6405817596406 31.8513286850885 10.3658946694974 3147 1901 18 0 0 6 181 0 0 0 1 1 0 1 1 0 0 +%AI17_End_Versioned_Content +%AI5_OpenViewLayers: 77 +%AI17_Begin_Content_if_version_gt:24 4 +%AI17_Alternate_Content +%AI17_End_Versioned_Content +%%PageOrigin:-242 -460 +%AI7_GridSettings: 2.83464574813843 5 2.83464574813843 5 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 13 0 obj <>stream +%AI24_ZStandard_Data(µ/ýX³b[ÖM¾?"²Uâ`9$dõBV‰Uã"¼ª¹éÆòŽ^“E,÷œWEyƒåUyåâ͹ˆ,m gŠy»¡#Ž~¦ÊßæÎ|ÔœžY1ÃáxXBaŠB‰…áîÄ‚êªi8Ø0ȨìŠ÷‚°ˆ‡s”°ã0‡6 #Ÿâ>âÇâPüHÇ7c¾GC‘0Te8X†ƒá ˜$#a8ôð‡ 4:7wµ3Ž0 ‡ã¸×ia8à-Ra`vŠ£±ŒØÒâ½[ ¡â0ê¨Ã§H Åq( Z(0ýƒ*% JT¢®y#a$ŽÄQEEÞHТ°h88Ç2†ƒâ0 ‡¼±g54Gˆ»ŒiuU6†Ã‚¤0ŒÂô\$޳2&çxÖpð-ˆ3ŒFšQg6-ú<ò3oƨv33o­!Ÿ•òF2ç”!dé㡉sêš85÷¤ÇæLJ,º³lÞÒ™YÊW†I#£Ló+ï"U}ðŒj’‹Èˆ?a–®ó84†|„‘(ëÕpHÄ‚²Cs¢™-ZSVd8 [w æH((вš-»¸á€D*†Câ +—‚F‘g8†Ã‰;ò†Ã-la †CÂ0Þ«4æs…"q ÄÂp@,wbÏ ÅBa8,‰Ã@\¡¨b‘¸ñ†CâHÆP™áP?±(ÃÁä3&†È|§³Kó¢W†Ã %" cÐH…1vX§ŸÆcÔPáW”‚ìœXôòwܱ N ‡«‹–êò*(ùE†Q]kÃÁ7†Ã³ŽË+C¨î¢©ñ¹ñج­MÍUùÏ«Çy}:yÏg!DÂÊ´Ó–dSäú]v¨¨ô÷Ø23<ÃÄé¤'ꥰƬ ùž+Ñ|º^¹®¡éiÚÚò7G¯¬a&!YñÉ4Ë÷êÔîè®f&‘$ddس2•0\ãHH ‚Æy|7ìuú +'|Ø0·F×gs™<^¤"y¤‘ˆ|:31›—–•”“ T`4Œ®a!áࢠ+£7‹·8ÃAq‰;îÈK;[$ì0ö4´š•Ñ¢e,fŒÎÇQ‰R”áp7âŒ9š 4 ¡# Á + Al@–€á „$D @ $Р‚4˜°Á +Aƒ…*HXà€ƒ GT`8X e&ǃ" *@Ø`ñàuäæ_Ÿ:Ѹ”ØÙÈ—=Ò ýض2]fK4¼¾&Û;¬LïI$ïRÉB¢D´¤ó?í,‘œr1]¿ûXºÂWf‘âe¦}{1_‚T`8|ƒ£ýyt#ìQsJδcº–$"U6äÛY+6÷´šOÙ4‘ ¢‘l!õ^ÌCŸ[Ÿ”e*—õΡbµ¬³Â*ÃËË£Ÿ]Eo§NG)gj<%©ò,ñnË7+ºÕLÉ3BmYâ“ÎÚ׊^We¯¼B+z^ðJ@2•xCly!¿à±×Ùô<•èW›B4"5I7ô4Âr5’‰V|Ò§¤9×côú e©³¹ÙýÕ^ +‰Ø®°SÎì2³FŸ*u·2¢Ûj +ÕÈ• e_—#¼VÝÊk$çZ÷g8åЗ˜XL/e§X+‡FòjExú]±)VÍóÖY +m ëëTÓzyfrUÏ·kõ&ËDV«læcUD%’TU5£e oCTj>O#*ƒy%¼‹ªT‰8æóC#¯ÃÁûž”gÅ)…–ôùѵ¼Ít ýZTZ#YuøÞm–—ny-U#V½¤áo­–+u +Ÿ¦*S"Ç¢$ºÏW~–dwC¿Ò\žçÔ±Rhä¦äq×y ©\1yðuD¥%ò;–°o:vGý{*+VR;S_X4ÝQVí8˜f2ÄlëÐ=bV]7úà<ѲPZÖï«æÅ%‚Y88Ÿ© ¥‘Vš_¿%K„lN7A²SáÉÅò#R¾Öæ™™…l58hx+N¹#’=_0˜®ÌÍÑlÊÜâçÎBF¤‡eæ ôL~Ž®˜ˆd•ΑzÕ?ä,"éºz!:R2ñy³Rt®ÝÅ«BEź›[%¥ âÓxwøª94çe_èEE´›³›lRRû#ti„xßM9#bƒè¹ gJÙY ñF~1#bª{î¬y!;r„IÆ÷ò¥E¤hzHåt¤¿–òý[Šˆ¸zxÝåºWWC}á<9º“7Ö¯äÜY=ySÚJÎ¥<¡#QÞTX%‚õÊmWFV¤ÓÕÌe¥óh5ézM?gmZÑU&ÐÀƒ + ‡<¨Àp @h !‚0€`›*Ë×kÍï`æM!™Võ Ž=‘ÒÖ»²XÕUýÛóŸIª‰jŠÊcˆ®eNÚ Va¦ +¢z +U ÀpÀ4Â8Š™+†ƒpbm ‡ž #Ä" 4ÃA¡8²f8Ü5Œ4Ãáè £C‰0ÈŽ ‡£áÐ2R$§¡0Ð8MaYÑÕï!kóÅ7Ì#×;þý+u¾Y©#¾ÍðÑ éh5'Ê+èÖ®8ÍæeK›gïelÄ®XèÈÑó6ʘ\T¬yýò^sÏŸGªê¹99±<èžfwSžVíÐoŠ ½$Y)#wIuó§Ý<ÙÜl‘J<áÇ6y;«c?Vù³Z©4£{訌RžÌUªÈ¬ìõ{}ìŠZt|‘•‹¯¢›]¥èŠîò´ŒaM§²$Q_è—©›NU¬Œ7Þ6—*"ø¤©´³­Ö6ôÛÐ\î—–1$ºùÔQýÒ•­¯^ZyxG®Á,VGŒtyÄßÝ3dsd3cv*V¼¡ÖõOWŸÙ¼¡+‡DN§Ú•xåZIÄœ†çš9ëËs~¥j8×çœk·KóbK×÷ò +™ˆ¯Ìš×SÝÜlÆÆ×ßÍ”3qÌægõÕ†ds›Ëš‰®Úx˜­yïòúÚQy’£åõiIåX|I»úÒΪxæikÿ£¬-KõK—b-±GÂ:Y¦Ý¢+7Ùl_µD"ö’mÏáaöe5MA»#Ún-&Û­Â*£õõY1£}êÈÊÓrCHI8ýÎ7^N©éä³f9eéùÊiæ÷)«×Ífšy§j\8Ô;ͼ˜Ÿþ0iæžRéý)÷ÒÌíZ¥7R?J*¹ª¬oÞ6u¥d?{»|¥+1ë×ìçw•’çÏ!2áïóÛm<¿Ó¾gëåçEäSºœÙü®æä'?EO´™ßgÏòÛ%‘œ­Ÿ*Ž•Òž,÷9mx7Y‰¥z(+}6/ù±ZdˆÆJÓñ·Z]¬ʺ1Ó Î&Ùd}C9dHŒÞšt-I<ºÄ«×%4š,…äH˜hH—wC›Ênæ­{fdtH‡dWbFˆ=± ’,¦úŒŠ%iQG„ T˜PH€ð€h !… +0 @U¥¹P,øeo¡l’“Æ~7ö>íS‰<¯žüf¥[%‡—‰½åP¡9LtÚ½Xµ ñåšo\ðèbÑ´>;Þï„èCÄfo¼™BÄù¤ ñU«Ñ>Hˆ.Ûžg„//ú\*B+§¬ ñ™ÑΡ2Öç½·K‡¨èÂz1ë é÷²U?3Å3¢"xC[ïžT$¯EkÄæÕ{/vÊQ³KYŠ5ßKE|Õ·“ÓSË¥'‚-‰-Rô'ëºÄR,¹æÍú6¯œ‹ocí Ò¹\húàx¬l"YG†¾‹Ô¢™ðJýe^¡÷5ä—J¿ÒÍá$‘õ\æþ¨j,õYÊB'’·â«K-ô´W¡‹í´SokQöm =}ZÎX¯ ='b‡ŸgÉ–\ÚïFwe¦Èa½hf…ÆZûjŠà$á‹þ}°Wü»bÒœˆï\/uXf“sÅkû4>«0 mFUò:ãëM•e…óASë,³'±ÙAêǾþl°8‰àÙÞ bo|ýF¾¼BI„JSC×ee®*±h%†å©—"‘¶p®Ê«äò>ƒÏ×$:ÚTf5%Xù~¬W|FC%‰7»—,F½sZM©dQçl扙í¤M5,wªTÎmJšp²¨Ävâåá$ÞÊʰ8IU.Ä4¥a©r>Ys—Xƒ„yä4;º÷„IΫ²=ËàÉIµ÷ÕyQÀ€ŽT^1ë±¼bXòñmdè2Xúm~X.×RHò•–=,9OiÚ=¬VÞÖ¤| ë¡[9Ö6ƒn{þ]9+1'fÕ-y½êxì¸P¹5Ë6@²r†òMÌrD¤YvJ×ú©{üå­LI•ÒÓoµ’mÒtŸfQkd§ÄJhfóRVÓJ¿±ìªz6G¿âœ^qæZªVÎòaŸ-¤âïÖ:üýDìUGÚS¢sbAC{ºÅ°.ŸÌyòƒÍw:dÙÖŒð78ÅŠ™¿9¬¹±t™´b7ÍÁÒ¶2´¢ú]‰/ÆL4,IDV,mw$[d…¿RN¯ŽÍ”#MíªQi¤Ç\¬2 §CeË4<¼ŽåÐ[šîÙLõ†×K»WT—Kºt–ÃK{:t‡åîÒx¿ÉþNS&‰¯L mºÛ>Ë’v¤Uˆ/º Ï +Ù¹‡S¦šFínÉ$bUyº- Kå+³Ü±QÕz«Ÿ?*3³±Ûr9Tx…ð̆°lISîØá¯BG$‡Òfg‹}‹¿›>‡5ak›ÝR½sþ.±“‰ÅS¢_¬%4u²Ø&–*ռа6Ù¸T'‹Ÿ»,5·¦ã튦84Ë«Xy²«â¡¶ÒÍz¯Ì ™qš¾÷®œ æÓlKc"bb@VŸìRÖÍŸÓ)YDìye·É“O%é]å'¶éx¥îê Ýò]éIí÷\°÷“+sšçÈ÷bC¤†jD$JË_á´yhvÇÍ;£emˆ†g9G»ËB·†Ii6¢ÄªªòMùŽF冈_Ló\ùñŒæ²ËšÊ×òJN¯dJ꘦L¦‘ÕöùÅ:gå‹{$]÷É_Õe9iìioߊÒÕ½[n7è^­Wnç#3¢ñYÕ‡ÇÞÜ·KßááÜ·#Ÿß=ð-µ#ç¹D<ÍÙÍUZd;b¥·œˆZ“òh4ÅC…ž&v˜·;í˜=—2©¬ãI±f…êÈ;SÆÄ÷ßÝB,õØzSyÅ^›és¦Z1$jžÏjÍsÍ»2I|"cºÌ§y¿¬±5ëW—¿Ìß`žÊ 1´³ë”.ýAR£«Z͵²œtQ¹$õÑORFw”'W§³²ä\­Æusªe'?÷+ˆvtR•©Â#Ú+ UIµÞ,Dæ9Ï®œØz&žìW²L% ©hy™x±%SÑw³I*ª¢mš™eHµl¢iŒ† +Í°Š•O ñf>JOÍHéñ\oc“ƒ”X#fa&&⥎•sžšéÃÛ¼Ò8Í»ô5]‚ÊœºõáØ›b‡’êNåŬɳò´+ëjûÍ~Y•„÷Êœy]Ës&Ñ6êõÒ93X¥ÌzÄjš¦æt«™×à§îÉ<+õsÎìŸ=ÿª|¶r˜ýóæŸoFWUް.KÖŸÇ'ÞŸwUèî\GD…vS]Û$¼ ­_Ÿ#š‹]õë“ÆëíÖEdºé°°ÒZKü+k¬dÆI«Ér”Yt{úHHÕ:;Ff*¯É°–=Ï_uY™ˆ†9sVs´‘òØÉ®v?:šŸ¯Ëœ®æihcœ2lޥё]}Lf…’Žæs;M–Ñ<¯ôÃKìùwu~qº†DnžäÔ¢Öˆ&¯uÅ8öUñy6ùh2‘‡DeNx8GF~ Cvñ=|YÍXäª<«ñ±Ci‰YW9Ø"óˆešêh—TêÃ:úM©ž6ƒc.$ÂjÇòS¿iF9XºOe’*æ¹ä}óS³Ó$"ᯈfgW¾Ã9,ót²4§3ŸõZÖÙRî+—Wå”3úý|öÃ3Bc뇶¶z<Ÿ®Lí +-K5"Y¢³¶fýó ?d.íU v°-cÅb5k<^?½ë±DšØr©úò+³7lN¢¡Q© F˜­ÕðvO{´֘蛽Ù"{6ç¿Þæ;4Zm£›tD§'ÇÊøU–‰¬cN/±lƒÔ«‹&k¬ó,Ëå°œFw†ð,ˇvì±òÐY/†dœ÷p™ùäûâûÜyÝÆºòÙJk»1{ÞöË¡ÒÛ]ÛímE~Wn_uì–iåîÎl•kå[zƒS¨.«A›J½ÃÝËs{M¥š¨Îš¼#Dûî|Wë½tT ƒçKÝ Îg.Ÿd—¤;“É%!yZõº,éýšÙīڬUÎ5+ûÔgž2Oœ•y©ê™[™÷è©Ëx$γÌr$S—èʼäT?*iCrÌÌJ_ÙCS—;¬Ý\A#g“Íó’2+þ|ó*}É +º8ÅÙÚœYݶwÙ+Yª+fK1%ÕÕY’¿Ó5³yäYIW¶J¦%Ò5³¨äõw­A¼ºYkÕ\=T—ÌyÕÓ’sË­j깜iÊG5fmªYµ]Êö©¼Ú°Ä3VªØ;’g×nf!ìsŠsÄ9¬Óœ-sÙ"^séÊ©2ʺHGŠ7ó"i_·µ¬Òž;XÌV’M‹s‡hõ2&ÎËÝf©$†­ÄDêa«’*;DIS֣ù9+-—•­tj¥Hž5%•¤|“Y—ˆ¾iÝ\e¡Ùÿºœö"WXUZ¤,ÿ÷†$o"þë•î& ’Cãç&âô½6Qk|y./Rç»ó™å«¬¼óyh—›gžÆyºy…JÎr%·ô/­9FD,ºsz“¯ûÜ ¢«ÄЪ V¡Û©Ò+Ÿ¯JÑ0û¶>³Ä–Î5³®È +]›X“á‹•¥6Ïá Ç|Û3-t¯ 5ÃâÑmð…xTv<5[p|ráXù§h»æùÎzyx_á`i©}eVÒªô×»D«ºWz^ê•§X‘Q¡Ž ) }We¥f¡Õt¯ÊºÄ4Ó‰ÊXh¥¥*ì•$½þÚ5íÂÒåÓ½âšìwò°´JЬ7Oœ¬3´Ïj>wxD»Ìü 皇ÇL,³Úܼç[,³;;|ëÑÕé³þgC:¢<º<–¬çŸ+Os¦–0«·œ¢Þò…VÅÚÒÌ-oHX˜ç'ÞŠáKô¦íŠ Ê’×—Š„:´)§‡lÌòî蚥¬÷'œ‡µÞ‘ªv˜¾V¬ëzTG2—°éÖ]¾îÍ2 e¡ëRay;6E´–½Ø¬¦Ë„¨QÑä­Y‰9Ô,HDÈSæ$Á,ç$’•¥ëyJß%fúFó¶ü¶•Í:¢;Ÿƒå÷´P¹ú͘¥gΪlvåÛRn‘ü<3ºnÅSýg—c#æ”J»´g"ýªL­Ruµœ©e"NMYö4H…¦Ô´NùºR!j©NtHdéš9åo¬ +Õ4}FËšNͱÈ5:V]¥ËÍò©o&‡ô±ÅoJSöÚLý—4s,ù7–Ìýñ>ý®ù_ŽJz¯eùÖSt‹*œ²¤ãYÝv+,{.="5–„ir'i¬œyèEwV.Þq2s!<ËrËÜzŽåë±OD›ñeì{*ã¤yènöùÆùöû"ÂÂ'Nå3hÆ•*Ý]1œò¾‡G›ÏZ–99éú>e†/‹ÆœvãJ¿Xør}JÏ4êXÚSY¤s¢‘ˆ•—GNhµ¬1íŽÝœ7Z©e5?»›¤{¬² o§åYÞ6S:Dè”—¶éîjyùü vnÐv ˼¾Áª‹ö]Ç&¢W}ˆ ½Œ>væ1œ©ÊÞ©W2¬¤ «PFJ™‘dq +gèvED9ÇßR­™•*±¥}j·NÁBt©ðFWÎdžÒ;§±ûÓy¥ù*íÞyfñ‘»å;Gš*•->bóJÎ+Ü…ÉpNx.“FªhåŽs²ÁœØ”¥GnTeIx¤b<ÏË&K¥£¨”îÌd²HRL)LjF’$c  0(ˆƒâ1ÅP}€¶šBlF”gIŽâ0†1†  3!CG62M˜„¢ZísÇu8¥(kûÚª¨AÔq¡F!5œt’ûrC€ëp=– +‰ØB£Üˆ*¡Ã–i‘´9û±¹«/-híSïùøÉFýç¢% ¾ˆ`¡).wjÉ2[·Œ8}Vƒ‘–Øz%ë’Ùõ¤ùœez\å?Qj 2%”Ñ™E±—H €$V©M›(DÈ@½}t˜]jÔÉ³Ç ÕàñlhȆÊùÒƒù9„áîã-ûºÂ§¾¿NlS·Ë”óýD"ÞöyG×§iN„›[ûäWEϬ‹+³¡›Nø2sÌ@î^fSÊ¡ÜIx×.6†ãätƒvùÕ^™"ŠGq,š—d»Üìþ4èE'¤†bƒ4ñS´s+󦶥N#»rÿV™X;w¤r¦‰µ2b¾(s‚áåi¬½—Ø_^4X’fÆv¹ÀüýšaæSœY ª†Wùxº+ljÐÛV¾¨Óx¸Ùªâî†Fª}%ÀH%M‰©fEæ!açfÿï | Ä“kËÉ>ÕE=ó¸VÅbÛ•šT,–s†·dWS§;»ëHÊ{ ƒUôÓ\"ró–N¬`щ,1!µPŸqô’:´Q.Ùâ0žøNRP€éo\ÃÚ,§µ +oY¶]¯Ø™Ãà°˜ö–~œSšîì ðfÁÄÁ°`‡=‰®÷zÀ3õ‹ÂËä:l¯I/, žV9€¹òÕhyM© ¸i2 FÚ´a¨æµBÍNYçöŽ)¦ÿ‰³—ãÞøå*®wh»Dx’½bNÖü0ëaRЧþVxÁäÀbĺåÁKM\ô% ïå´1ç³cÄ‘–C±2À¤ŒZÍ=õF9#0ë÷qŠÎ*0ãx èØ/0mºÙ¿²ðrZ8F?œÜ}~‘'’eåýÀ]lBzÑézÁ´E']-G!íœtÕ˜Z{}%@XpÄðu@tü”($fÕ?{`fÊ ŒéqAUMqeA +uxv‰=¬5ìŽY@?¤ +sŒÛ°…×­èЫû·ïÿd:¥kÂ¥Ã6ÃÄlÉÃjÏ~·bî…`IÁ«ÿ@ž̤ŽÄ £¶žOȲ¦G€@:ß$¸‰¼ ? Ï£Gýר„ÿÙŠÒ߉-žUõ4(y:´Ün vëa4µ¦è¨±Ÿ¨¸õž®ëÉÏŒ¯ÎÖJD2+?m’©0kØ& ü7NÜÒ[Jciû•à‹u‚¥ Á«Q¿7!9Õ'~@°'&*£¹K‚’m&ú> }ևƵì|ÒÇãÔžàD˜L—d;<á³X[¶=xãeU~è(€½‘ÿ4bô5gº ¨øvPB˨Bºñ¥=õ3Údø"Šm✚¥±"›[Œw–ó1ÃãXZ{ÙºôsÛ[¢L"w߈8¢¶¼áâg È€:©™Rê”’™$ù­¸2ä{ÿ;íœæ×*4ÝoZqÝ@Ø`ù*öƒ«ËÜŸÊäû˜9gÙHwÑ/¸LtÞÅ j÷å:]{Òe°)j¾7Õ©(@ΩB­§·¾âfÊÙÉ9ótl¨t6eGȶƒl=Š0•bí°ãLœQµ¹ØHó&nYz dj |„,{(½“=ýtÂé~[óÃ2~ë~þVÒ²{‰·zë2Á‰]’¥ú…‰¬øWáj~JÁ9o@;ÇâÃwª<Ň\›óÞ—ƒh£üT©ÝÅ'‹ [ˆµ--éFKÑ’(#à +Ê÷AæïµA`®?,†ÂP¦ä?§jW‚èpW¯”EŒZqšÆiÅ–Zù[öÀ·ß‚e´ØlWò’vGAU1žM¬"6¤(´z£œ¨T^0¦‡ÏéÚ¨æÍÒIÞÑg ³h]ÜN,oê¡C‚*L~³?QÛÎû^)°-¡-)J@†ºJUš‘ÇT鈹A‘­‘]!aÊh·˜¼ÓÙH¯fÄ!¶…Ä+À©,’‘ïؽ¦U¦ç‹ÄPmüh8Ò=|P6·{–•¨QÖKrpe+„ É „Ïׯ„jjÐwÒgÇü”oøaèÞ,ÓjTè£ +;ìÅw™çª8}K`Oƒiqéæ8$  CiæÖï°Ø³º¦7†Ø¾f!Á 2Ć¢t€]! nrÔ @Ú©ÿ–ËÈ Á&ÏUý‹(Åw +¼‡êâDæ»ô¾í Ð à×cOÊË!pl5ÿE,Öà¯(ï®j˜ X¿¼óL ½W®+Ù§èLsì["•—>¸Bõ †Á¿àÈàýí´'ËàöRŽŒ=B§|ZCtí¯²È‡øØä}\EM$YîTWÍœ§2:ÜW„9ü@Á@¬æWx,‚P1Øk8cå“)eú¢Ó~!SÖë'‚¦™'÷ÑÅ®ŒÔ~ŶSµäW€ ¦õèŸÅWÑ6P\Cne:½Â5DÔn¨[|K/5£õ,$‰rŽ*J?÷€’õĦ© TÄì‚TlÞµx(ª©HÉ ÙNãŸðŸp<ŒuO.Z,^ ˜¶ETIIÃØ°è}©í­J'ZÐè…î œWµsèm·„ט¢Dé~»­ùÂkscÂÑÑå-É’­Ø’KFçü0жõ²‚;¼¥ØôÈ Žßÿû\±?zw¼µ„ÿ5/Å%ªKäsÝ•JuiN*a×…g“-Ý,ôìôÁA’8.óéÆêê2ê\@ˆ gw·ÆÀ½"››í|j§.å·òl (‘lÉ3‡æY ¦@õôÛ^ènqQÉü§Ê +·w1ŸQ‘å¡×mr&êxwJ4ðö`.x346n®ç`ÉË “Ø.Aȼ¸<áãÖ,åYAð¶ËŽLv)Rˆ ÉÙè•P¾ä˜èýÔ K×òqwp`¡Sí›rõù¶¢TêfrZ}e1‚tocDÜ·p¨ÈU&bV«Í³‘™ùÔ+Klãz¹Fû±¯î.˜ôÝJ ¼i^ïÜòN<ÙLøØ§Öݺ|2LÇO¿%î貌êÈIšòÞvaØÑr$ûø*îÙ©©bà ,©ŠEPI V ǃûx Ô­¡±e½âNFÏ+ˆa®MY´ÃÛù_­åg`Üž¶Þؾ\MGïËe:(¢h'R²ùUp\\¤ï‰nõ¸ïÁ–¨º­fQ¹=Œ‘úSZÿk–ÜCG +Š£K(.P(¬¨mÄí™EÚ +ƒ<` +×Àué-<°¯Èÿ›–Џù¢+˜:q’Ö”VB»‘åúp#ëþkcïéú¡ÉÃN+‹Èï4Pd) òí´qÑq5Ó«¬½ò4í]fåÈÄ÷+7ã= ›Îþ:2Ù º÷ýSI]ûA%”â_Æ­³G^$!QEÑÚtÂÂN éüLš/&‰ÒR0}™¬‘ACJJ“Jˆ¹´ JmŸ²¶àÞ“q´)¨…¢­3 ×ÄšÅOM›ÉÕ"‰å¡ +Bú^«*§Ý‡rE‹gUœ× s¿öÔ’²“áì¿5¾Ë†}ÀÅ¢AaÃPÂÛ WúáBÔëéƒxS.}˜—}#2ŒŽß +—o¸uÄ$ùÕÂ_7Þ¢æƒ)Š2A÷\ÈëW+VÔñ¤ Š•ãÎé‚iEGä'IIv¿Ð ï61:°Ìµ4]§ŸFìØçXxx Ú­‡™'aa³"ú”\§¢¦aJC¿`Öhâ:½˜÷§°KðꈡòÝ\"¿mÈÈ>à êð@ðúËÎ,éfýfk6¦äÐ/¢Ù[wö3W +ŽpïýåÑVº¡×Û±hKgÑnÖÂÝëV:ÌœR†ézæé¦Ö¢’¦„%v”2ÛE“™G7¿G-Ø %zgÂö“@ .³Îf¾ Œ¸Jµ,r•ÝÈ0c™QÄ¡bŠC¬\ïù§Ocʈ±ÇÐo¡»vË–Áôú*±rÝXÜ-–/JYŒi V&^Éyë­Yï‚RI 6´­ k¦:Ò”>Iv\%IB~ꥆmÓ_·5¼œCÏÄyð}±e÷®Z”6ê+Elmõ¬]ÍYìêdöÏþa1ÂcHÝû´sæh¯y ð84TG©Ö( ·Ã–nÓ\ha$ˆ$.c¦ªšY˜0¾/à| ™$7'Ê’nfš!Õ¿ßËä•zô†ÍTb@“„ +ÉpøRËX¿7¦þQØoá•ÜÄ5,¢dÙpBиG=,rÖÖéZu\?2cõöÛjU~PyqvðÞ®«%2Ðø `sãøa½½ î4kô2³b°ÃÚÐ,ðôÕpȺÿÁlg—:æËãøû’È4ÎzãÓª …L®ÛÁˆ" +©}ºå›Æò ’OФW†­« ¨&4˜Ü¯wB8gs8_àvþJ6»­}eþ\I@Ì”òéÂlëðþwáø Ä(¦)‘^LŠP C|ÐÜ0Ëü5`ÎR1/+ t+©^é ùdC¨–q· ðÀýkk!å¶âcÎ`~Ï«€µ{0¡p¥¹úgdâÁ$ƒ7ÿ+4¹ / ²…ÙéçK¢Çe\,!w^ü¥5™ÂëSðà(”Ô ¹û¯ lÉ hŠ%afóÈìg¡*ós—„b5“AÇŸôqpÿµ¸»l›,2Ìu9éOÏQ1ð{“‘mÊAPeÅË?ŒB¶eà ÜÒ—Ð Þ²~] Pr­ðEº³x¿¿¹êÌŠC@©éJf{-XÕN‡Xir>‹ùùË]DJÏÊ„/ú°ï9RQ;PŠ¡ ½!Óuùèµã%rÔù.• +IòOM™1¦6_Y=ÁÊ-¼ôt;›ŠÑv交±ÝËKû|§ÄÔ6JŠŽ?Ebf<0òsJ0%rÛ˜ŸjÌ„ˆ+mueZÞ8‡ŒÄHǬ—ɃE3«7­ÞJ<ŽSµODºTÊY”¥^šLSjm¯ykÖ%E‚ï®…Çf*Ý1¿YSÊý&6^ñÕ$†ó˜§u}A‡Àç„Ó€ƒÃÏÔ»*ÔØÐ Æ)Ó<ƒÂ•úP:ì Ö²½l ÆáÉZË;)ÂQÖÊ*³ØŽ½7Í«Ê*D“js6FŸÁúsÏa·nþ«íRÔ½ª®Lü)±h•Œï Sle‰™V±Æ=î“þßΔ’E«÷˜KÍœ+ɸF-”QrÌ|‡‘W¿$šq—r¥3DpÁå?÷é%¨«âCÊÁ0r߬¯`Õ#Û"³ ¤BMR¯®BwÏŒ]_ƒ0.6ùXƒRt¾©zeÍÔ—QŒ˜Œ7 ¨¥qUfÇÆr‰ªŽ‰@ê÷ +„ĤoùB$ ¡[Zõ·ÙxB É|mv¿\AQ Ø×B.Þ´z|“s¯;*”Œá:ÆŽï¡8³U0°”ô&Ê€rôãnîDõ}亭å$E/þM»Mzn§z:$6êËèLŽ¥“ŒáÓ‚ïiOT¦=MÖ¾ø}nDlÕ ñCM·aeÃ=aû¨êµ™êŸW8[ ç·µ…Ž )BÓ-nT>K8†H˜µÇS¾x‰#©ÂáPg‚ç£Òæžé°±–Á}É$À7F +¾¡ÇƒeéZO%ò´‘XÊø’w]€8j+øªÛpñ”¬YûÆïðÍ®)76oÞYXŒðUlh2Avè储˜3J⋹ô³ê©¼äE+©™(#˜^³4±‡’€iŠ™97¦ÍЙßAI¹qkHŽtÏ+[wj†C¹Þ–õ…~!„´ä +Ëz¡{ Î9¥­iPÔHO˜9ZÙŸ{nîKÚk˜v°øBîZ²áen/­ú㓯ê¡Y$üZPª9‡rl©ç÷n2ÉE±’uêñ +χ>Dþx±A`-§M癸·Ù¾¯&@f@R´¹QÌñ¥'Ƕ±YÖ ]…½”õªõd 4)·e¨’Ã?ocÔËúpSÌU3§6w´)[ò¶¨0;ILsS:‚÷§èbM-±mÙ +*A`m4¹|3c*žó™òéD6RqñêTÿi‘f{©òÆÌhƒãVÊ«µzË$埃<è™EÖÈ´bæÒ©¢˜|1B¼2ˆ2Ú.¶.Ry b°æHøé·' +j${ÓWFD[²Ï|oQ!úcfž ‰5Aç¹ú<{7ã­Ò#Pdy(Ñš™š¬‘3!ϼ{¢w•ÅÇE¾(ɘ›p?«JÔÍéìx”èj +\]qý°)ö¨¹Ucª»ˆ~“Ë%PÂm³HÌGm}Ñgr*¶7/ÛãÇê‹Ee ³èTÿó¨*5}ã=­Í¡uôèÜÓŒ9˜ƒ òsÉQÙ»ã”2©«ne„ȱl‹)jÈ•Èæ”æEÖ0›XÝÍ)§Ñ’ äóØÚŽê8ß=e ؾ{^d¥Oéd¨äGbƒˆ‚Š«obÈœhk±U@Ò;›@ %÷å‰1ÛPqWùnU*?÷¾×ží(9ÇJàÔ•žË•X‡!ÙÜ–\nÄ~íúÚ`~Þ¢è‚×há|ZVj-^$ëUÿ8;ÿÑ© h`É#úNwü¾½ºò غ69 áOn’ô±`{W㉒G-}zxBP +¥W"8k¤—m0ÃGú|ýE„ñúÇÓYƒb—’M ¿Q¦\¨UÜ¶Çø…ì·wÚÕF9jÍ~¬J«bô~‘#”˜ÛaqÀDûT„&ùãy— +m“Ì ƒË±Å\ëæ,Ž|ä:¹êdÕ"–uíT™íȰ©‚ôȳmà³Y+‘nãls2_ɳ³I8ÿÔǼÎôôR”¥5^‚³Dˆ\71l¶ð¼Žn€2"Œ’9Ç-ÌùÃwï|.7¥S'›{ qÕÀ¹¨Ù•¾.Zd•5֮߈DjÍéØ8¾0²ÞNš“D;IîÓIˆ{4Ë 8*ÛÝì¤x\ 5¾„0’»aåg ƒÔ•w°åƒÄß/àe}j0Ð~Å¿¼ÃtÓâ¦%]©½¨zzyj·’–ÙâÔñŸfašÎz°Þ}õMÔ“¥¸Jó;œÂ†™;ì0[Én‚…oý‚ÃØ.õUt>bœ”d]#¹ÆRýíåæéðµJ‚rÀåpÞÃ-¸Øžú’/ìKß¶=Úá·;®<|Ó¿±, 0ŒÏ i…z-i¯%¾ç Ę)ù•f'FÙÑ©Ùg¢|­PP0KâG*&4äY¶©=G¿–5‡ËµÊ/"BÄ~Œ˜½bšÏš´¤ÅÀº½"Ç® ×Ð_¢ºñqô ;òxýVv–ê´äºì¾ÞeICÒËð” #,œxjqÃSEXãÎ«âÆ–”nâj†aa'‡ùs'#˜Ž@äý€akôù½aêØ6c…%&›AX^økaâI0hdÆ<Ú²ëEAà&‡iZŽÑÓÛëÜ}uÇ`þ(ÎÂNyuñ™DâÅù§´$r¤ôp%“ÚèÙW, CqňÅz”¥˜åð"àæçŽNôÚàÿW,}å=áɈ³ÝN_m·Hø6å Aåðìõ=„d_߬8ªìª¡‰Î*×¹»à(.Ô—á=GÌ­4ÌQ6î­ëü$M¦„ù¯‘­Hº™¦If÷iwKªøÌåë¶¾]~¬¶€„-®j…½GdÀÚb+ðãÒ_â‘xŽ/5éð«S%uH—B›Ý=®Àº×ËË“V­ +$ÿ£®EfaI]Ï`Ò ºU—ÎÂz˜"­…´á9ãôWñ¥žNB$®p×j©…"“èÐSó÷qak ·elrQÉ€V«ZËé8àXxUþ¾dî—îOIZ ó†:“ƒoÀʸr?¬Ä €‹ +Ä®öï¨ß&•æoÇb7ñ(óÿ½{åPv+eà¸\¯¢8Ü‚²Zå¦QÏ¡3ÒÆ']1[ß²µega)B»š†`s0~?fãs±´¹ˆwäŽúái¬*zðáÄÑa%TšJê!$9tãKÞ‘xBf‹b¶~BɧÀý÷xX¡ooƒ%6£¯D 1×g]낌†–>ˆ¥½v9hEþønýúë“sØëè˜?ŽCM#¡Ý¯g\]攊k«bmÁvÌ R¨fñ©¸z+;|˜¿‡°z‘¡ÁVä +FNDÌ !=Aë¼~:Ÿ-˜½WbÒcJÎýPqÏÈ‚TqP\/Çrïiõrû¾‡0—îAƒ=‰ð)^_­âŒ8!Wãù¼©o¥ï<9« ÎÑúÔff{¾}a…â,ö:ۣטÖwSx‹q’ñe¶#-Qi¹âDúFªf <-)Nj픡rR…ä=»9ààL$޽ïîë½Ìtþèb‰1O„8Ÿ ÒZ=Ê#ð+†è"2ÀIXÇ€eÒ‘’/'÷…†z9¹'X«¦QÙ¯’ß1.; +ší$íS &GŸ¢©KHay —I`|ÐÊ%Q¼/ªtæÅ®NçÜRÞb]JÁw‘Å|”e«ï ÂU—œ¥k‰»ŸÀd›šcôSÍæ…ÊéŠ@#̼Q“êöB<ø™8/?S î“Alª)Dqɇ芧YVÁW K–5)^I“=RDø~?À®,Znl¢¥lòr(¬—:¿Û¤iD­.7^›ƒWO6Ý?UŠŠ…ßRŠ ÁÕåûFuÒK`]ÇÒ¢ÁìOSšÃð•c#Sµò ƒ¡Îe¿‡o—R×Ð\«„(ß‚ôMË`ÙE¢Q_dS½P峺=\n+i:hWhvIî™ýʇtþfIsaH$[&ñ#‹ ‹‚èý€ |G’è ÊGÑT%¤nuöbÑzÊOO©Ë””¿î»-þ4§4ö`(|³ÿ»ˆ¬2³16¹Sâ)€mX r¬äw‚aÈsÈ·Ç1¹2BÓr¤;8W²¼@RDƒÌíæÅ½…°øM=ËOÚštg!;±Ð pÇíuð‘Ò–¸R ++ªÛ4!ªŽ~‡0sì~Þõ¶Xª(ÈR3ØSÔñ0•”p7Ä =ÿÈHfO¡}†]Rz°/Á`éo5‹ õ¿,ä)ØŸÂK‡rî.úʪ\ËÊlÉÌç/¹•‹s` y¡¿ÇQÁG¥”x:Xw€Ü†v,Ò:pDÇŸ°SRAR#£¦þ@¯C ’C/%çð¦‚k..Õ³°®”D•·Ë×!gˆÞíjeSà+÷»„‰&Ûvh Òɤ¾¸-©ÖõP8:T‘&0Þ×>”ZbH€QIÈ-l§g&’¼:˜Po­­f•IRû))®4{É•ûnŠ?r¥EvN\¥º‹·€ÉÔ^¢á!d+I¿­4‹¨çRyøݾÇã†wÔð&þï^ô $InQW STFYÝÙ׬´B‘ÙÂâ>ÔMÎ+þÁÿ¶Äšè´›Ëì¹z,FéfØLÌ¢›Ôf½ $y ÜÑ$ˆ +Llm´”ºÏŒÖtÁnK‰žö;å2B&Ž…Û@Eu±Ø =KÓßP +9”3à.TBZ)K‡ÿßbó%'ÈÄÇãV·ÐOï¥Ô|HU¦:ð#•@žŒ¢1Ç^A@o¼œ)ì1º½o;g¯Nq)H)´§av¶Ãkvt²¡†cTÜèšrÜTñ{]æCI»Ý2Žùa˜J +mÆä‹ˆëy 5¤´fÅ|‡S liŠ‹pHµÛˆ¶Žba­ÅEP`Ç +¼¯÷¨‘Ž^cƈ#ñÏfVõR²1 a¶–=ó˺9‹(ÚÌVàô a\ª÷Ñ¥Öªê1Ù›0]w ù;•†f +ˆÖ‹¯×Ì| ¦£ÄöÝ]âJuêré­åe,ûYa‹Qª-ƒ´6?è=ÖÛ%¥êÌ€ÙðÙ'N•T5ƒÉhD,k(|몶¬Hü܃¸|aäƒs.ÝÄÔuJ#¼ìœ?j³>ÀžÑ;}†ÿt>Åy¸ï­êŽ»´Œh“Ý íóè!cÛŒO^:;€c9~8\é܇˜0i(YwH Kƒ”3a hõ·²·ó%T ŠîYûq ¢Ë‹ÅV 3Ãg¦½wLÊ»Æþ†ŠH«¯ÞjU‰2+D×8³º­Ø¦æ^Ýà F1{¼ÞR?b=t"MëUïÂDÄN3_ðEŽì^x)-^‘†ï¯V^œP‘ám`+t—ÒÕ"HÀ‡¸èS¨QÒ˜É(çž:o[ÿÈ+kÝ%öÊÉäsÖ]‘2 Ÿò*KVÓRÚö 5B‡Ší(Ç®©2!M&„*z=¡»Ð·ëF³-Ë"ÿ„.d¼åB>‚ÀöáAÀMºU?m¾Œük +`r),¾j”á.S±ÑÉ ´&`Â@jà¾o4ð-Åä5IŸ‘)”Ðó8%þîR|žaFnËBFñ avC ”éK7ë0”á+cŒCîîèq>*ž çIªIž… 4H‹ +ªËÕÿ6‚·Ž)?·&Ô•Þ=S€s“r{Î_*Ç %UK“%#¼kZà€6Ù¬Dq±Öj«äϹ¦_Ýkfvög":z2}#]ŽhήÌ·ËŒ!«mÔs|™N9̸Â` È2øu(‹šÖ«ž0`ý¡,m£(N—U»ºÅÇÐ<Ù.BOæ£Mz¿‘Ï,öò¾¢ÜÓ±/‰‘e¥£÷Ëgð¡@컩Ý[lõF•!‚‰«EpéƒutQàfÂaQœ{'†ÄU¾Þ\ѰÖ2š7òXVžD»ð©R6— Ý{¼ªþ±¡+^êì=¯¦ÒË8“¹¸¤Ñ¥˜fä37‡*þ¿J\•BX¯j +³ ÕIDq=8†su7écýÜÆ.Ì…çQú³úV¶¤^Ö„{’AtŠZ¿gy[#ïäA›Ãø­xÆçe#x†e^ ¤{9~H@£•rdÅ•T ×É‘~iE)óBî!{!_0–LÁdâ„K4ÿ2ê"ØŠVISS¸™» x ˆÆA]ä"ƒÈ3#ì{cÏ^ôƒ4‡eGF6Ü€Xb½Žâ粨ƒ\¹”¦Ç®=!Ø„€‘ ppë \c«oš*Ýî -`¬yKÎ+TÞŸnQqî,l"ð"?=KÖù¥ªý[ ÍG™ E‚Û®B3ûŒM;Ô?Ír$fõˆ9Ëï’ ´Î^6­@ ¤ïO´Ìošê‡½èÀTB;ùoK3dxŸ1ñÜfÎ3o9ÔJ^?Öé~¬°ûâŸEÃÞ_¥U†º¼J¶¿ÀMq¹4¶’<>ÁHÌ“«ýØûNRm5D|†¬îabŸ#s2nëH²¤˜yŒåXWe*~ñ/w]¯šý%/ˆeZ û/†Ý¨åÓî6k°ôO´xVû+á’Ú™”šdr˜äù·n –0ï¸;ã¯CIQÒz=<ȻټZ´¢¶^M´íŽ­•Vßä;ù,Ú¾‚¦{Á“Јgï­ yý:?¼hl£à•¼±ÐžlÄâDCh›Je…+VEA‚Fʰ†P@O»†ÿÓá­åá0,9Ð«Š¦D‚åQ¨6¡üÂS"évØkŽ/€IYìЦ¨­U†Ÿ§s!¢.ØÀ”dù+¥€eKÁÓˬÁ‹ e¤Å(f"%ßr)í(ZÅyr† ij€¨«{À¦L}€'€c€êâx5ßŨ7¤çÛêÄÅöFÛts ¡†XE@(J +GZêEÄKÉ)¥õæ˜ã&c4§rŽÇ¥*ü™Ç&k³r[/œôÌ54<ÖMà«L9‹Íƒ(G³ 1S°û‘hÐyë¢ê +²k¬*ÍʆišÜ„2êÉ’^忉8¤^ëQ*—Œúö=Ê,oŸ mo&ËÈÏŸj>ßMÇå› <šºúW,ÏFï,aBIښ˟;„‰'Çgþ¿£äwX€ãEÉ ¨¯öbi_Z­R—F×P‘ÜÎñv²ðÅu¯Bù€¹$£Ð³™nÑÞ£Rk媗2= ¢ó× o°)ÀŸøæÒwLÚF€&¬ükL§jú}8ƒëN®IÝ6<ÆÆñÈ{†åÙ`|ñýíDK7WM8±ÃœùIlQ$ú±ƒ×V« ŸãÖ87€BÚ]g„ !Ì¡èué\ou\¡ìëÃ娉†òØ–™ V.h–§f® ߃º&Ô3½ÿ“³Úì#zܳ.hèî?a[À‰(ð&Áw‰Åf+ÁŒÏÁGû<¢ ÚÄ;*$+ièg¿EÙ:0&@+Ëh" „9ˆAñD7«öm3‰•ÈôtØÚ¦‚`•FZÆnÉ®¸šÀnaLK†•‘f¬[JeA¬ÖfNÑF”ðö‰™°Ïß ^]ØëK/`ý1ªR’ôšÞÂâD¦·ã“!–04gÎÅ4¿ßl­í‹ÜOGØ–'ÙÖÓÙu˜r•`ïEoŽÄDÓ¢¦#q°Œ¨Çhó5éÒ†Hø£„Bë¶ü ‡î m5O[œZ.Å$® +ôHôm•àwÍ3sG>,ûƒ[—U$îmØ­|óy°¤Œ*ØPÐp½Üѯe/ð‹ü%Ëœ·ÎÛWû„Ü›¢ ÖŸôHÂ{*=‡.÷-È£'1[g•+ |Òî*l,¾; œ”D|?µ…aæ–þœ>á Æg´)êNÂÞ½@Ù. ²ÍRK8ì><@Üt :¶Zñ_¾Ê…¶A°£ŒðºM%}Xiâñ‘ïN²ñ|Ô6`j-Õ½@‹'ÑË@ì!Q¹=úBǺtehºj[œ7ÔÁˆë‰(l=(Szƒ +þ¿G¤"ê¡%ìƒä¼ ×éM­‹1uбd*`ã-«¸K¥û„z­ÛLáŸ@úЄË~A\6ÑØ îbá^,^ ÚÁi°A1ðg äb äÒÔ-ÌaÁ°8r«úüBkåsÀŠ+Ù7#Šá5çyUR=m÷Þj¡@örG\æS9]¢{pÄßâbn,`oôuÔÐc™¨¿…ÌœTõ ½¾oYVc!U’l7¾ #‹è¢—(jt¤¢è3r÷ß@­½l‘X'K šã^‡Fwã†dô?ï—é[v%z]pÉż\¡(ÿ×{=a»m" ’Ý~Ê—õ …¯Wµãÿ™¼z—ÔÄä`>v#ä¯ì‹¡ÿ/afô„üO–Æ + +¯¿b*¯^ˆ%o¯cÛYÃŽZÕ„º$ÍÕ•!RÝáÙI_\T cOVÙ͆ +»¯AµJóÈäó«à™øA¢‰hú?©D1!m8´-ÉGz¹äHIБ¡¤¥ÆA”/å*áÒº%]?:>ètí}ŽgEÝè/¤Û›»_¡á}-W +#N'i¨D ™1Ü ûq0 ¡ßø|§tÕ! FK:Ää Gıöwze-5Æ‚¥EsKešüôÆ>ÕŒ¼¹8àª^ÐõMqzÒ=¢Ül—UçŒSus!ŽØÁj +L,ííaéÊ€øûMSߘE…yde—xb¤Á¿@ò^þ´U]6«ÇIWNú8 ‘»z^þƧQ_—ÇšV¬‹ £.Û‘ÖÒ0A©Ž•®)ë½1·¹pÖ/xWZm‘íÂl g3/¢› ÷Û|î¹Sàâ¶Ú¦ÇÉck¾:s}csõ`ƒHOd|cí}½?Ç󭵈î8«ŽÄ7ù“R]ú3¢çö±XB€ãµ8Û×H¦òô¸VáfôZÌráÑ'ÜÆ|c9™u® ¾´¹p¼èJÑ:¡ÃN«'qÆu gæw®ªWB¬À\ÒÆ ƒOœphN¶'µœ©·—•›Û½Ûð¤7GÍ‘Çýoï0¸—ØÔ%nö¼´œ# Õ„Ö¶"¯%€kÁô«±TÒkHw8’Ý·ºI”†éúíK­ÊM‹^$¼Uõ›òžbËl-•Ô,x/q%)o)Kë8šuP8æ!‡ræ™C¶Õ›è”–;Øp¦ë_ÐuÎÍdÑ÷åx>ɲ%T‰q˜Óï7“eeKƒ{Û“LSôö$0;*3ÆKoKY&$"¢ T!쿘e}<8Z¯LÍå—PºÅ‰¾#Û£˜)(ÙsH®3¬ö<£O»¿Á•ã“ÝÜÖ·Xk•n¨)êuÁ³ô4nÞß8Ïnt& 1y¾@#žx›Ì”q ¢Ðé}˜’옼‰:vÛrn:CwÕ÷3‡6 26|?ã³T›Ð6îñµ¦^zr+¥¦.q¥ö¼„ç¦|aiC±ÁКU:5‚ÕÄHâ¥ÆÀï +žûf,ôS3ÙV•4•}Ë’·ÝÅ?FÛ@Ñ>ö…HèÃ$òˆŠ ’Ø¡û¶ø#¢+¢!¹(g×6ƹ2«B|Cxkµe€Æ @óu:ŠÝÃGëÀª“[©[¥{“ÀÓ¤Í1«¯ð$ã;v!ÄïMMÀÓ‘’¡Döc_w䨛`,ë&™í6뚺Ů­[q—)Û 5à3 +S£3%,¸¶êµ0l\í3 -Ôà¶AfÅ7… +zã`©gJ6åpç·ýí¡ÉW9hï5ö¤@6z_]œ6 M¢¨Ê^ñ<îÅL9Àꨬ ÁÞ1…àÃØmŽ‹—~¢)Øæ­…§Ž;à ž¡}߯H3Ž™èBQ/X–SèÀ°°:C+ÀŽÏ04wvk,|•ï%þ;’¬Å,/ó>ÎáaÕæS@š(F® ÉšGÒ8:ö$_ÂS“²þT®#X2[-Ôhs‡¡ÕÝDþú/Ü£ƒ +sNjk1¨lš'>êbÍW«hÿ’è…wk™*«Q“¯(Öi"¬› µ¹=1!\]â~YZ|¢Þ§ßÓ%:)àñÞEœ7bj P:æQæÍÔpÆK±&“-࿳™ô‰2sq"p>‹Ûߥ~fp(âŽg¸t”¦«2ôYt2xÊßñ.:§EʪqXsn¨Ý#‹(ðHãšGÃ/Ù÷ºEçŒlBSg )£æ~)&#í×›¸_Pj°zõ¡¥)Ñ…ÂÞ6éGÑ/c°@©íL>[òòÒÌ@ad9òˆ4Ê€y9Å9µŒ……"ž‰ø‚]šÉ©!T8ÏÖ‚#¸—šµÔHy6ó†i%%Í–8ÿÍ_•«EËlŒ©k~#¢í¢E¯ ­mý|Rl}¶ôß~þE oEÓ&­up?Gyu4$óàßñs@v8+d03­OX%¬>ÉŠ®l‰D&{¦L2ÔnUêÒ’S&W&OÝRù%(®:M „ÿ>Ÿ…k5^hªWyâ;¢7ã™!‘ÂL¡ú@ß}ðµÅ?¿•,¦%Þ⮘qÄçÊká¡#7Ü"(ä ‰BÄ›àøÂMµ_$!SÍ›º¿wSçu¶~ÛÙª¤³ÃZÍA·ö®ÇÕUKol§zÃ}/ÖÏs±(ÌâL&Æøûi:Ëòl;…Ð÷‘[Pø^EômWÙÓvæåÎ çL¹%΂t@ÓC­×Ñý%¸0Í»JUN¥x`Y ‰ܰ_N‰fA/†þ[)I*§&”£/€ ÓìZ;&xúªÃëhh¨U*Ìê_x©ô‚ñ‹´ y£žvR)Ëtê ­BDÌgYía‘¯Ym''%f›ÓOwß‚hrMÃâÇjBÈv)† áV/^âþ.±¼§VýT“øÌ62[ËITÝ +­• –wKèêìÎ/ %cBt‘£\?^òT%CÌ>Ä9ÐQ‹à6BâlɈWÕ9”ÁñÞJ6 +7³OÁ´s»of ä²ßM”»ûBx™¾¹°Ù›þm5(°óœ¤4ô6uyLäYýDîÄ4RC9]k?ê£äúޱçòï¤íg1 ®‹šóëÁ½‘W”S«³ˆy`q¶_Ãëåa—ÿ5ÜŠ©°Âç°@줗&áȃǽ×¼FICŽy;܇ûV´¯®3û2—¦ Ç-0Éxîç¾ !hf¿¯,Tr‡EU  ÄSÛÈ;7]Â:ÄpT0Çq%u4qÃ[ØpügìñìÝ-‰a}r ®h«'i‹Ã´i%LƒMƒÚÁ ©ÍÎ'–ªmVÙTã†AÂ?öÓH_;¬w†S¦ÉL<8NB nX~Á"Üx*Ž<÷ª%øºQ„n<„ˆnØØÏèžæ…zjÉ"Ÿf\¦ììòX ÌIàx­G[/r³e/N¹ìÊ1Ì€+ø-ˆß,f‘qäQ¢·c¶ÈÓd<,éwÌ£àÌ©v¦‹´´È™»‚ÍŒŸáß0Å›äœÝ³Çg4rŽœ™Gˆü‰»vdUu!}–Bë,À¼—㼦%Ó‚‚}ÁüÄ +;¤c¹qÙðÙË`ktŠëÏ]KPsæ#F/ãåDZGöÙÞZþ̼âwÈls¦Þ'»ùkq³.Y¦ÍÀ(uH`ëÐJïµ ¾—4k-ˆLW¡=V¨ÒI¥—̵¢sR:Š…IyJçF‹î/’cÍ„Gd~oÞ·G§ç’úÍ´{„…¥¥JYPk‚r¸‡À'2ío ’S£Ð_ð²K•¸¥Ý±£*ëÁ6.c±°»0Í@aÙ–*.‹ãÞ¿¨†ós~$yÕüj÷$Þ®b‘ä24ùk`HÖ05RhÆdu6P‚]CegcgHæÚ49ƒkÎ ä«K3Ì4Ñ­ú¹SåîäÇE }¢ãŠÂÉ´?&úCÄœ²æ„È–C ·ÄÅÀücÅZQasa³O5™pÕ¸ÖÊK;C¾èÊså@CÇ»C\$8Úhê¼ýø G@1Á'¨{%ÙÌ|³Ok¦]iC.Ïg›£­`«2[¦*Ù'-äÑ­4ºµ‰‰[ÕŽí@CqŸ{xžƒÕ+BQFJ‹ ¶ù [@+fQaçb3š^óáêvŸøð­þ±°ŒbvHq9rÊ/ì¡î—GV—¤GÞž>êŸ?ªJ¥¼êq³iV£ç`¾~6¹­¾ K–*26R#è«F‰€o$u<W‘_Q\A¿zl2S€læw=Ùh7=bgW%ÈfX» Ã;ø2ª×öH0³=þmü²2˜Eóþl“ñîÄt5r.rÀÇ+¥ö_ÕóDÀa£h}O/0ßÛkSý5›Û`º‰`o ;"]u°þ0]rÑÊTwþâ–bÓbA¬[ÝCõ©\c˜!Ö©ø"7]Šcšdß¼^&r¡Ø?öã\ðâç˜%ËÚñÙÕ7#}–‘ÌXÛ|àMÝïoõžCóZKë’¥Ù7ë@€•krv‹Ëúø°—´åp©vɺN©F7 ßåuôõ£É6àŒÍ 9:‰åˆ* ",>ÀAüWrÛ¬é{Òÿõ`¢s…œÒ{©²®-\­"Щ!o‡ˆk" ·&±HJ&`+ˆÍŒœÎÂ~ÚbÕ×ÛŽ´~C“×OX®s}?+1zë»QOU´E‰Ð¹Ä—)½*^moŠ,mガ vÉ©ñXȲ5™b>dJ/™ +{{˜³U±—E!~Þ2ïÇ“•'~}˜§?2¿2€šè]u•!|Ò >ò§+„ÚïD/ ¿°&1ðý³0P€=.Ý àÖ‡¥«Zš+$àµ|#E“†û,‘ÏÑgP}CØægíâ‡ÏE>=¯ßãsðGÌe>õ›8/"Ü2`Þ§ƒW$Ã)jeæï +eѾ‰mU¹¡Ö8y\)“BBꆥžn‘0JHá'½ƒÒ?~¾Ÿ£¡cÞ)îgVW´‚ùYñÄI20#MäAÔìÍ2fvFf±Â˜ùä“î*¹ŒR½Œf ¢éÆÌ¦PÜ‚¢*ùF—Í‘ev…Ù,2‹½_élVÇVK’qÉÅ j&š+ÕgÛëó ¹úä¹X³OoûDIÚp`{[ýÓkïÊèÍÿîš³$ùC$"ºíU3§x¸UF¬–¢ÞHRVÿŠ|zJØ.o<ôž"±“O”þtò”‚­4“FXÿlJÔÿ»c²ÐÆ=ÎûpÉ~­Ríç×õZzváõ ¿úWyœ" +²ñéz“o@ð¶Ý±O[ãJFîØ< ;è¬oÀ@úå% Ã¾;©ƒ'ž˜ ¶yúT+¢{M‹ƒ¯Y`æçº¢è Ѫ͓zˆæ½†‡ªV¬§KPš´¤¿µo +­*z!ñàÁ¿û“g)ë|à·wCé=Óû<œFŒìº¿Üž 6¶d†ãV‡£á(ã?jg _1‡òI6ÄEåõC~§ì ¯Ñ´Ü Šäñ¢œããŽ)er¹·SµüTá>-píqÞ†)è\œ¼Ã]âÆÉÕH—4nâÌæSbÍ œŒfR¨E®$2è4_¦r'j°ð†kNÖ8•{ú|r“…ëTεNiùËðQs%=g¦î"+éÑ\Ø¡ªÚ:!á0‚.!?9BšYè~¼Üâ²(;¨?™!1Úá™Ñ¿2_¸Ó<êˆ]N×=iCY8fHœ¹óîÂäŸmEñð$R&rª/H¡¥(dÔR~˜\H‰,(„Éÿ(ãFö¢O'·ˆæ9Që +YG¦M-¨Ž»!@¾8z!S~Ú¬çÖXà§HµQéºÜ7 k»ayƒ¥˜ÇßL}Ãu9Ö +TddDVtœ¿ôœk,Øìr{}2ê×Ü•Œµ4_·6 +ÊPâl7~Â*’4æÛ`Iy¸è34øµŠ†­5·k·»#ñƪs¹<(P‚޽TCCÿ÷€ Nãºtó@=~H¹Õ€j¤.7Öu zoó&çî™ B;J¹ucÅSësÇð¦êìýž(Úé!ÕÍô>àѕ%Ÿ’h“ß&AòÕL@?~]bÐøäþD{úýt—¹qOÀ·I´M4ïγ ™ŽÜÙ¤f}Xåèò8ìµwƒT'H( “lákõasÄ.wñ_É;p›¹yö;È[÷wtßA”œÐõÝ`ŽóEŽñsß;üV¿ÑÕ ^ïv¥3A›ßr¤õöåÞÞÏJMÛÑÅJ ãdtþ‡ÆvÐqîIG£Ç`“p!1GH`‡M¾‹áØ”%ˆIüè¦ uAª*Ij•¹…EŒICÝ H$ÇRm¸'¡%` |)é6¥gÐ’£ç¦–t…”–Bcå{”èjRmªµ$[ÙZKÖaKÔt›²Z3/ú…@€@ïï&0(žŠF Ã<ÐQM˜$‹ÑO„-êÓü6´ í3Y üõÝ»·ÜR0ºqϯöß4)=Hlfa|£òÕ½èâE±‹ ¤zwÄÔ3(±þ|¬Â¼ƒîý;ÕS÷ï•*¯ÇYž×˜ÂW‚®îµaß­‚M°YKd·Aì\7ì#嵙Θ—òzÚä0 D«Ÿ>³/øã¬Ö‘¶–Jdftº%óöiM;Ýyÿýõ_Ï<þýk Õ2~—;®BG~e‚cg‘°=D“Ž /kQ%Œd#-Z‘nºî:RAä‘€"|ÒE6çÝQG¡¼™äżAÇ»3ÞRÅ+@¼IðIë¯Þa¿+û?!î6" o"!â?|uø*ò—ú;ÍT +ô?È>n<ÀÓYmˆD‰Ÿ -`Dfÿb>my†˜ÏÅÑ’nëõï¿ÈOÛðÝœ´ Û`\_Zc¾\LE§  ’à‚õÎEÈÆl#…‰þPŬÅ÷&U/QôU˜µm÷ú£¢øvQª Mu¸%@ÊO¡›5㊢&‹B2þw%ž#úH,Œ«¾iÑQªºQn‚KåB’Ubº;Y”¢:Nt|šÕEšêæG·NÚ6u¦î8¼0ÎhJ÷€JkbøN‘w~F6a½¼÷q‘:Ÿ¼0ìÚ—Â'F¡LTñn +/þ]7·3þ‘~<õñ%´Þ—ðªwÞÅ›!@Çb–xRçš{<ŠÌ‡0Å»@+ Ïk%ž¶´äÂɰ±‘Û`²ÞèJÙ*X®Lþ>KÀ§8è{pü!êç° ²¥A“ÈLO]©¥_ÍXE´FÓ)Q§®šfÂ8QÄ¡8FøZ +ß~œ/»Öb“QøEÑK¸ û6zT¯2á½:’yOXÿc +F(R4/™ê3õïwŒrǘ&¾;Çü÷9Ã;Ãqëc*w—Tygð*Ì(pœ\¶„$^—ЂKOÁÚ}‚m¥Rp =£†#è²Ñ¢ºqWÀø|_Uœ8•…ŒY®\ s˜þÔH®Ç¿PK>84‹ý!¡$0î1BòLò/ÞÂ+g 6úˆKkGi.zké”g¤Øv°'½–ù §FÚ×ÇíM®à…+Aâöÿ€F€ÐÌPíq²Öý‚bûsTÀ]bee‘ÒŽ™leeëØXaË&¬È4p¤¯ø«õ³,Êig*R¤aÛ§€žæ!ÜçÈÄ%þ+àGK´#x¥•²>裃–®†Ìõ¾ )Ô·I7ù §D«¾_ÕÕ²h–UrkØJ‰ö-‚`d ÍÛ@8¡{ŸBTàÖ†Ìf /Æ`p%‘ˆÉ%ÓÜ Ï}U C¬Ù°2Än:y[›±Eת–tÛíðpCxs±eà£jÌ»_ñNhü,7Åt‰Iûñ¤­H¡oô…j’—ç’?÷/P”6Yvš,]ÏloUŽIë½Þ¿¼Ä _°ø÷+2Î Y“¨²”·ƒ™oÌãƒ=m€ ‰„ð¿Õ³ çü Î~HH# GJHàe`3Æáá¡ ¢Ä¿Çý ~†ÑðºWCGªà§1@Æf'Ÿ¨€âÄiD¡qñ#–>&Â=+«“ *År0¥ü†ìAorºl'ìVøt[ ×0åR(Ä5›–¨˜abž$öƒø‡‡ã¢áv/öI8-Ïö2øÏÇæ*`†Ýò÷;~8}xÕ+3/yÙƒ×É»ïÚ ¶n€ºL Ëb²Ÿùj%tñÐûCOù:ÌÄÓTªÞ<¡=ÎuF3ñ¡F›s©-•h;‘üdì)h‹V€'cq÷ŽJ‰}gkWá8ŽØ7­Ù}Ü|²Å=K-éyIû>ÿÌoìq4‚0]Hï2TãqÚµxÐX|f÷@þ-©Eµb+ÆšßcóÇ`¿a ’þ ŸrÈ|®×:ø©=û‹¨¶ìÓØÁ+mͱ7·T k=…7£.Må(ÝaÚk¯öÉXË8/^v¬ÝÃýJ“BÑ€ßÄÔ6¾¢Ò}jdÏÛÆá½ÃS¨d™>}3‘/Q<é0±û™×œYÎ(mpØgÝW":Zy±žû™ÆmN-_¡{ƒÐéXá…ý(@øùÉhñ³®éW˜=/•çiˆ[däšj«Î³/ÛL«nÖj‹ž³f-:[Ec3Éˬš]{xPn§QöŠ- A@%@VóLÙuKoœj€¬ˆŸIˆL|{%;,k ¸?â¢ô)<å|tʇS j_½š2ý¨4SnæÊC°pãCõàhf•X‰DK_lÛÐT) ðPϼ xÖM¢§ð‘Œï6˜»<Ëñb63%·{Ô˵…ü?¶Ž]ÌÊÂçÁGGfsT-FÀ´SI»oÏ£*èuº„ÐQ[¯5öv´9÷Žº—µÈç2ɉ—܃ӱþäzNL¹a½¨·þÉHWÆÄmrL2gñSv+\7—£ B—ô )„ÓÍbê7méò•⬤׵-ß§± ’Е€Nhj_øŽØ;kY8 J‡Êisf!%'ë*NµæºÂ ‰Èµ¢{{‚õª"¿èûlr¬Ds £k{‰öô\¦pé g£8¸Ð€…;rÞ¼MUN<Ñ(<(z’Íu'ŒÚã…‹hÏÐ žzPÿ´¹³ ª+U "‰É¨°nkÇg0që+’ذÖ~,ª²ÈÓh^`‘«»L¶W鎟0Ûé3ß'{/]gàB½œ„l&@%±£š’h0x‚ÉSêB¤ÿFÄ€½’Äð' DSíkQ +¯Ä¤ÑìêºX3RÐÐZ€stâWº—ö”™íïôµ7ÝxâÎ) +Ëö¼¢”›,DQjlQÅ%ª«tq+G™sà…ÏÔ÷L]4¸gmïOûÙdž}ÊõÜü¥A«†¡þ“ªØZªãÌtP0§h‘ž?¡‹×Ì „ 8†B£yX™³¿ÅÑåÞR¯×*y”§›yn‡ÁƒWp‹„ØWšÌÜ’@F*Ê••Æ„êS@Sç> + –Þ œÙŠ*2Nfð7FëՏЭ^gv¬ w@õæ¬ZDyQ"ZAUÐQ ‰êE²Zý}ïÕ@ç©“Ýpy³Ó§ƒáòé2c˜^µ„Á‹åÕy¹O·ßä'n.#SÂR-;öL¦·r©½.Œ—‰°öô" œAh1y‹UÏS#õƒl$&™ä¼–>ÍNi@±pW2ã”CÍü&òš•ñ˜ì;Hº;pmO;yÈ>û3;wRi )§bL×þ¯ÓÌúÞ°/ÿæÆÚÈì@rz ÏbÖÅG7ñí@Ãù>¡ö8Û·É?ÆïÛS§»¢Y¨ Ãý ©ËhW +aôwJM´¿Ü‡¸Í‡8Òý´!kü ‹ý€%6‹_Šð’ÎLê +g Ë(4™7ü¬iPVŸ¥Z"p4¡çãÓÉ…ŒÆˆ$üÀ’dGXªSb‹Ü7ná{-P7¦¢Ù­¤ë@í&ElxuÔâ•ø‡Ù6[ÏžFß[¶ŽycÛd/×\1ÿýŒ¾<¢?d›H›êE)øê ”£>WĈ PM’B„0Fù]Û±2w4JORJ™R*‡ áo–RÕƒu•cROæÊBÓ‡ðôº!#¤B-"š¨S<ò÷Aú4]CùNP ùÍjt#½…íIÜ?Ez:´»¢Ã›Ø»>ü‹;ÅŠwqxžŽËÍÓéó¯gø8‹Ö‘¾¬ðk²à’ž${þJñÇããæJÊü•¢¿ Cî#bsv/>ÙgãGqDZ8ú#šÀq8ŽIÂsŒÑ§zFòk¶(ý)í; ªqûÛwØ"+®™ö¾á\Óô!4¹/ábÚs8iûëž§ûNúÞ$·´ïP†ý [‹~ˆR¤O¢°†x)Ž(¨¢/Ñ­õ +Cò4tÍÂö44¡a#Ø(ëƒ8’B$ó×iαx"rÈ‹²¦ëKt°Ÿ9í9¼°^á¾”§¯¡È»ôŒJKЯ{¡Èjéi3,ý‚&õežz1Yö]4¦©­T,-œ_»H¡ ,i–—I©5ê>—ÊžšVhªAî{‹ã²wj]evÊîuGª4£Z*š$>²(4õ+qS‡fêÜFÅk»Û>é?ƒ ËzïÂÎÅz|¤ÒR*ÎiÅ;5Ñ3ç´æ\-d+ÎiÅ;m¼SÆ9¥ªQ¼æÄGÝ~j¼Äõ†O-Õ#ìÙ;Öñ©¶k¼UC_µÆçYê°V­i|ÕUWWUÄ‹wºx¼Ý]‘®nœU¢†Ä…Ê’vŒ»J+ºÊ–ëê1î*ÕW}ÄK]Yšø§QnŸT†Úµ{Ýq‰»¸¤ q×Uwd¢¸‹[,îâ®Èïn\f¶ >Ø¡êyjð«R72]ÿ¼³à#ë#§úiÊ©P‡¸‹œ÷·ÝçŽûöbÚ‡åM~¢¿•¥ƒ—Í”gô<_$Ò‹p‚RôGR™ÞWIï«$ÿžJ—¤c¢Œðü•IC"A”vœ‡?Z†OÛb~Ë“×/O¦O|øä¸Á }ÞæõcOæ„„®¶ï²è‡#ñUô´øå¬ÔÍ™ˆLæ|%¢s>ÎÖx31ëƒdû ë—±Ot"†‡ß)Aóžg±^­ºgòÈÚ"^ŠE¼‡ˆ—b=~«DLÐÄi'v'[ˬcK3/1 ¥NÌÑ 1ŠsІñž-©DÍ{R ß³úžti°J• ûЧQ£,„ø)røt’Æg”سBÌâ]ŠF±Ÿal=‰¶ɲ/Òâ[œpR<‹Å³h:‹ERŒ¾åR‰[O"ië¥ü·žÄr=‰®'ñ5ûŽ#ßmXólz ++”YHz -¬Q_æjbïgW¢fÊð§äkQ3ü)É·¹ð§”~LéGømÈð«ý†ãUû kÚò‚"d÷¨=‡ ê&¤ÔžÃ>ÊìkJäx¼r°Òü¾d^ÊîrEiú$Ò7'‚æGùMUˆ’ÊžùQnbþÔVÎçŒaå+ü–ë„ç‹x×hx›?y‰ù‰zÈOthù‰.ØâÌ…üD½!?Ñ‚Ji'ö1;ÛÙÙ6fg³³µïÙuaÛ×töµg«õÐ>l±rrµ›m¿í÷¯ÿ:/Öl•;eiíe‡jû}Viu!Ìg­éû0Ïð”ä?9'¯ì”©Eܲ%jrGˆšÐ-–z8­Ò ÕJJ!ZÇÉšTîùÑ'!“ËTB?é×o“~ÁɈ[prÓ,ô£—NÎRµUÞ±©ÙQÛ£C9c› ‘Ï—ÍI®`£¶üµü’à`´$–,;Ø1ÇšÄ)S—œÐ²Ê᪷IÒ[ØÞÃoí=œ Zêà黨íeHÑÞÃ)¢Pzšc°ó óQâkÎ8ú>Ì?ÀÐ@hÀ $à(p``  € À怀,@ƒ.†Â"ñR«nu·B¿YA# æpÒº”„8P¯)ëáÑLD@ò #]’Ô!|ÖìÅor¶¯¡Ö*[CCÞ©Tí°,®•ƒ?XÖƒ}°µ¯ZN¼¢ÚìÑÖmt£ÎìkWëìkw·C"RÝç)¼=¤«íwM™Î8Äñ™–â3})>SšV1ô8IéÒtŸÛ’«Ÿk2Å•©îá~¨öÌÌ~VÊ/úSº±ð9æëÜç$í9”˸êkþ=•½LØmëË9ñk +y¼1È®±rºª‚zZHòO 9T“4í «&IfÒ]åÐü(=RšeÐü(ÅB#a&íö£¤bÔúkQôÉAZÄíû )¬iꥤDlz +Ej.»¿Ð}œ) +™~™žåô5Chï%3!ôô!”žØ_xFû [­b‘cée$–”Œx„&²ò2©õ–„©åP†¦jý)ILã©&D“² šDŸí çmâüƒf15Q§T“œâHý/uɺ¤˜Æ òƒó½[ä%Zé˜Å3*åO\žQ¿S5þÑÚk=;ïo+íNw{Di!j)›ðñKI÷(NÓ‘x©Ä‰—”âk).¥1c§é…œpDÓˆRð"¬!iÅÇ]M)BŽU¦dJ^rþE]¦¢.qRG3ñz…ڨ廮¼£-§ÌIe—z:o~N¹ù(F?Ķhè%Ê 2—P>$Eo"ñç‰èè…èY•EÚbãÑŠwQfDVÔâGqUüÌqf2(+ÞiP,rDƒ>ŽªÇÜ‹_4×Ó.½½tý£ÑÓµÌd ½jj¹£ö¢ç°yhú„)ì›êùÃ}̬ÎcžÎ÷y…%Æyø5ßö„ï×LŸWxÞ#îwø‹ù—ÿ?vø—Cœÿúo{ f5TÕ‰xßÅ£*óeâŸV8Dq?^ÒÎl{¯–h²W-‡xv6*‰bxªµÄí½Z·O:–ÌVõ”ÇŒ~‘{Mó+Ó‘§h7žë 1xYgã¹Ö„|WŽßÚX‚!¨Ùâît©ÃØmŸ4:"A'ºpaÊH†ªñ¨Ö8NÔ¸©Aui‚â4í'^Ó‰uZ—x5+~ÇçÏ5w|¨ñ¡:>T*µ¨íăZÅeJô’Æ.ÒrÉ¥yL¼UŠËtöM«\É'-7¨-âÐD¥$Nê;ªãEj99ÑÔ¹]ÔUUùÉêÜšöa¥${¼2"­´2GK”]ZîÒRÙÝér'·2îänÜÉ•2 E_.¹4ôö•Ýíìl¥ä)ZäRÆŠyð>µ›§³ÌÓÉsÃó,nxž"žgP)Äó¤ŒÈ|ˆŸ¢ì|ÉGQzþD™ùý“'–øgö4œ´ÜÒwq5$~Š_ñ¬Ø¤!¥R~É{A9ùã¿Îûs’Z¥TµBk —(T󘂎UT”ƒ%¸’àfÅ A~ä`#H°Ü ì^îúù<ª‘`È)6• òƒ• +AÖ¬ÙAzöÈá>ÿV¦ûÿz›Û~BÖ’¢*ª‘cði+6ò¶sz™ª ¥D\£ŒæEõøÒ‹rÔ¸RÎÆ9ïÍþ­º*Ʀõd‹Ø7r‰w&ô¸™6äÝ"\esb*ªm*ó¤E»lVeNu֙ǡ”xF—Ú¼ÜÛTù¬dF3laª‰§µZÉýÏ›û;…X„æ)1ÝsnÈnÔ´áƒ$È‘WÌCi¤¹»iEq«™u¹‹a((B‰F\¡¤¤¤D¤R%CžŽ„9by6nñ^ÊR¯À ÑårµªÕ"’‚«ø:Mš˜êüDE +!Ad— U¸\¡B½LF&B{™wºêLB2ÒHxOÌ{3ޏpFZWâ¡ÑˆP¥¾Ö"XDž ƒA©pȾï} +éFåÞÜÕ» +JJ¯dDÂN*Õ­JæÕj&A–1$‹ŽG*VæAÍeëFóFWùG£ùÎIÉqôèfÒùX]O£R©2rIÄq uö‹ô ØÜéÄѧ!½›]jÐæ†¬~Ñ×jo2˜¯yE1\jöQ4}¹ŠJ?B—'JéG£¸"ˆJ!¥áTèÊÊäëIyqz +9Þ¼ŸÐ§ ])EF³ I%ršDCÆû YoõkÍS¯3ýl¢!â(jÁ}Ó/‘å¶u=ªÚoVŒjý"ö92Eù.FòûQ¿ÎFP½;#£yœ/k…ƒæ9¹F›‹fä¬Ǹr2¸6‰pT‘Z°Läa#C*:ë@Ç³Ëæ"Ë%5ÚvçaO>QctöNzD„FÒÒèé!‰rY}xÆqbüÍ™R0¨|s"4Xäî·Þ`ØáÑÈ&?HÖô(AœÙ(õñK¤”\ë®ï›ÇUôþâï³¾ R‘Ø×8×eFÂú‚Æ…÷²‹D c|é4)•_ýUЋú1–$ݘbÕé3%!Ty´6BA´’2-˜C!´ZbnªÉHW‘šÍœDz|…ê]ÌÈ~ ΢ä#ëtÍéÞ’4PÇyÒó>Ïsñ6 +™³:޼9=zÕæ35¨(4¡Ì)F´K‰-óÍxYy"±E¨…¼I.´š™ä¬™LÔO›Z>Õ Q³|Q‹Ú¼ZQÔ<òŸÙ\rZ ª@Ü\b4ÑMÐ|ÑÍ,áªæå„sknáZ#\ÌYŸ÷›Ý:tóèìfb=Ù_3«íåæµab +Å8bäÎs0Fü˜‹Ä K­ùOhGi…I„¡ Õª)¡ªeT„êtJ$9,m!jJ…†Ê©"X,Ã`±Xæ›Tޱ"Ššb;k‚$(”jÑ0䉖K¨\^y8áDÕ¢ª:•ÌjŠAAdTqN£mNr®áXœ]9·”2-Ðx&„‚çl‡„Rö8ˆ]µ¨ ®¡ âÚA\· ÕÅa>˜Ë_»´‚|¯’úüïÆY|_-¢ôMŒ±§‘É—gNˆ}tR&æ45:·ôˆ´˜MŒÍù¢qÂ&6GØø§ðDU«"ÓHš ó‘©Èch"/[‚iRWDI}Arª5È1$ïFb7¦ECsÔ§Å÷¢`ŒLD~)èx™[MÞä­‘é¦>bb+±Gš Skrü’\_„»PüqA$ùC|¨ A=ŠŠ³O݈Š:…XâÆ—F!‰_TäÇ¿ÁÉõ  d9aymŠfÖ”FU‘Žp>4Ò''ggãÑ4©=KgurËW´Š®„LÒ<'oì ¥fA:úª6!0* @ +’™Ð™™™…™™Î…èÔŠªàúûX?'waE‚ÞÙhë¶u&ZsˆÔh;I‰£Æ§R¬Þó RlæÞ™¯Ý˜5§p2ó«¨B"è²I#&ÔvÚfŠYpÅtÚÉ*æxD›Øôn:SF‘_‘EÍ7\ ÇÕf^͹yÈÝ»Ð^óy]_¹™è¤ã승ÿÿ Ê9"¤ 㤠+‹ó„QzË’U%¥hÔwÌ*O•aœÄb‹ë$±“GôÊòŠÆÞêPÄBÃ^‚+—~ÎîD8ÊìŸÓ\¹››¥|ÐêuÖv6[+ óuwteˆV–ÇX‰5^ÊW׎‹Ä£O²f¤œ±Ž«{šFbËF)(“Y·[—GLDûÁ(¿~xV†E2Ê9Ž[ýènß0ˆ¨5óÈNÒyÑdÒzSöJ«x&™´³AIk°ä‹,irX4IÑ “4ƒœ³NÑFâ::r”ùbÙ(òèĪZ-^µÙV¿lK÷ôëX r>:í9ÖjeìÈôK[$5¢VÜÕà´ ©+fÞdÆ‹7ZÉäQ;j jGª ¹\Q—*9{-$Ã&û6Å0US5E))NL±¢A¡‘¬µ<y®¾”xx ñÖf15Z”PЬ4"^ Ž,q”%bº¤JV3A—\qÅ)S9HJ…6B(H¾˜„‚'’+8”«&i2…]N©â™²ZÜÕ¼ú± +Oºu ,;—%¬¿l©õC/¢Vd2Ñ›ŠÔˆÍÇzÛØÓš©Ò¸r=²‚Š‚˜åœ“Ç×zHV´þ W +ßêˆ ‰‚]MOúžß×±Õ5²§}_c¾Z×Î'!3_+ÉÆh5³³³¯ØÙK’£¡*9#슯º, ‰Öz8í‡"Ã1ˆ´žCŽÖÏ: bÐjaO¶Xå0ˆ$_D¶!bûÒXÏʰ¾%îlç*j¸ês&Ù!V±åáÎV/ì)A9QŠEF‡X2QV'f\4‘T¶øš ¹Y$I1s»‹2Î׉ãECó–ÆðÅQÐÉŠ*âDGg·(žLºŠÄ³ˆ·ðD "¢‰:Ã8[1üeg¹è<È•ÖZ f/Öó./±G-µãQ»s¥Ô²µ”ÕAY/’ä × VÍÁ(ÏW\îX "ÍŸ,Æb•ï~B +ÝŠQ"¶¢¶G5QfªþÐ[UOp.–M¡‡HQ„,ZªŠãOX×s»FÚ­Š-5+ÝvU…*R©øO!Ë´,iœY›ÈO#W‘ôdN•.)–º.IºÞreo gÓÌ‹âE[ÍQr/Öf2JšaU pº[ú’$¹7Èè©-*bPÂã.ýGÒcÓŠàªã8Yë!¦™xp”™àý"iLªÖ̼ÅR°æìL„.vdŸ'ž8žXü‰TŒàLRô#KvÛì}kk9¡ÚÊoåv„óp"57"œÇÎî¨*ãg’•XÖiƒ]]ß[;›§ESQ±ilZ±‘*ª¨Ø”­!åœ"‹CìŠÔžŠ‹W,»\Û2‘8ž*MF‘抗›Ê‰¢u^-¤ç"·˜‡¤©IUi“5äÁ¶ÑеC“ÆLÕ£¢ÓéDPƒ¨ä êCfBÊ´*j:‹(‰O•ö2¦J2mÅ4f)+£Ô«tãb"}””óãR}PÕGI]!ô ©ØTÆQ42%yô;U7Üh“SqûáÄ%Î^µ•s%cûOœÖºHG…S¾0‚„>GXÔYQ»ª§K#Ö3ÚàR+ù´Œ'iZ¤ÒRèÓ2±ŠU\ñ¤—HE¢‡-]jc‘Å3Ý„$ë>i˜ÖZ°œ•$ŽÔÈnfitšÙÓ8aiÂŽhäG"X]EȉÊhÿhå×G/$IQKMV‘Ï.ídÓV®t%Ýts=]iº¹uy´aÇ¢úœÝבQƒkE)\–žŒNÊJ”rNã¨o ;¡;Ö‚E—‰}L1ÌpAÝ ËÊêuJÊ«×jËkÈÊÖ0j*"'BE>F墧„Ón㺗 ×'Sdq'©B9¿h…rF…C9Ù›Â7¸ +åô̈šH‰šHCÊd 9Qw£rÑ …s®6l 1úéÌ67i!±IEÕ´ç­²JrÍ[e}¦®’&]Y¨\¹8z:o¦ Î,½h¹uL|„Ÿ˜KÓƒªæ¼EiáÊÔÛìÂS«|=oIJ¢V­e#ûï");¤„ªÉˆD¹g!Dù¶"Ê£ŠÔ¢¼å¢L9|OE^ZÌ GÐË Œe,ùÅ  m¶2…yRY5ÿˆ*Ñ!H’¡y>G‰GÕ’V›¤(¡Y¸¤ŽÊtÓ_Z³T¾M$Ïš¡‡œ£¬ƒh!+š‚[ùˆÉÖ°#ýÐÙ·¤¨‰“¢Ò¸Ó¡ß¾ C¢,Ê\<ö­ ON´á„'¤MÔ< +ŠVÄ´\Î`xz’VÒÉ“Z¼E2¦h’ä¥jâI36Ôhqtg<Æ ™‚¦Y#Ä)'r°qødÕP¦µð;ý¼3Ô”!Šˆ±Ðf›¦©‡=Šiêõ4¢R‰äÆÐeŸnÚ¼(›šÚ†Ü±‰.1¨ˆÄ'Ñ;ä+ˆ3H¯»cõ¸õ]·½z3÷k9[±ª¨d±çÄœ^B§óÐà ‚!!ÁèäÔr$ ¢`P •ë2ǘ € µZeïü‹bè Ÿ6"ÊT,cž¡¿}`1Ó xü€¤*.ø¨ûžv’µÑ¯?Ðh6¦<ÇtSL}€3èuÎÜ +Éþ¸Ð“+‰›™ÅÒ#óñî›î³ÕN~]™IÇ—ð·Íædí¾å»]@¤`;¹5¤"ðJ³FÉW+òõãL£Ï ²‹9üx‹’éÓö€ë°® ÅÜ»j^ÈÛÑÚ¯tv&Itr¶Z´Ópgó€VÒ®2U[’DwÊ>(i‡aÂ'(ýÐ|[¤¾1)ð@§wØ #Á÷ÝþÁù¯¨.)ñnT|Á˜píÿF«gÙV~épZ"®Ñ Iü¹V‡¨û¦:3ö ŽÁf‘ƒø0È{u¶Ë±Pî‡4ûby2ê¬ìéø%±mʘÆä³]l.cî2ˆg:ZÓ:?ÄW…xUKÙ³8°Ê‚_¦îîtÔ¹ˆÑÊi„I2[Rа­ •ødè2°\¦0gõouB „&ßÙðSºáP[޵²áÀ åà +ÛÈM rX;|³`†àÖø®Y º«Â‰®¯áE‹¨²Á$\—ØRü1%•£¯¶kãûy¹}ÂYˆ)ZH‘¢NPæÉ“j“t4­É9ù…Žc“4#»Viy†šIu9Ãú,oÀì§Õ±,Ðú±‡R\¶¸ºÕÂ-»²ƒfJåôÏ•ü˜¥§(=ù þÃF2.Pz8'›mœN¿0§¼·yfá€óÄw^z÷S ÓÑe -äáíMIsáÀªµ»ÉÂî>šãêLägðÃ"¾t]8 Ìgðw=D¹p@ùmº%D©Ojû…+î0Ÿ3ZØÂÂzðPt5.ªð Ò‘PJ¤ºÍÈ*~•®½)ä1Ø•V½L?'àáÀô+’…Ü61¢ê²Ê6+‚H%Uv•Gì/à:¤—·7 |ïúØ;+qjìÈ8ÝcPÚä[3‰¾pÀu”IÁiN½¸œB™i>º¢Î͹p gu d8gZß^È °æ÷ûDd›Ý­üR8ЄQ¸âS8²a°¡ot`ø)b~étÁó+øx‘øŸ7—#d<<¸&;àâ¡c„µ)§g_ƒ)Õûl, -–Ën”DLX`°_ À3t:_ò*XV*o]‹dÅ÷àÀïOHnSì‚è°IŒçÈå@ç‹Pœhä7 +)ñEݶ“°×9 4?ìØmȯEwýðÙ“@ë5õŒ7ó’\öèhR-¢vpàÖ<®\•E ЇL"P`Ô4 ÕŽ%ÒFk–Üá½ÃÞƒšÚê/&Á­Èrž}•ˆæ¹šN2“T¯].`%œUR™}Å1 A¦–áÌFC*@§»‡Â3(ðWÆ€C-è^8@me±B×éˆ*©ñå+a‚MŒóµ¡Ã&3Š]˜~®ÙjIÑ[ï¯ÑyÃ.oea ÅÞÂQIæ\v¸eíº}Š#ÃÂgÉâ»~Šà,ƒ*Õ(oÇD'%7…Iùúò(ß@©þ$¤OŠE§‘»( o@8EÏçùQ"x”ÓÿdgÃ~?7À5Ns§s tÄÚ@¹¦¾*(rAH¡ +9¹Öç£{ê‚㺱X_X]n`änB˜)[îVAÐ@g:fÏ.7 MÐÜ@6_¿úDÇ{uü`n`Á¸z뤼ˆy>2Òµ¹ÄÉûø”Ì p‡¾f@ŠCôAÒ‰Á_æ*¶¬ iͯŘ‘r6¥!7ÐÃîó6Ú$­©‘¾‚Åã\f€S8~tðŒã.îÝÔ©%µsÜ@ÓoÜ•dòñS³á¶Ú¸:?Y)Mîê{ܼÛ# P¢A7PŽ— ‚¹½;Jçi‚“`L)C¤pè•5ºæˆ«XCn-nÍÐQj}ÜÀµx<  hjÜ@S²¸œªž¼ý’SYC˜öõ¨´á¾É „‚17 ÕÖ«pFFÁiBE[Ön¹{6ß!Ècyå®/ÐΣ€W×x2£–”I©~·f:*ɃH¯Ü€öb•Á Ê üdä8òsvñ92¹®ß2 ý4‰î©†5Q`ú¢¸×B4e"r߉ÏÜ€B©b ;©õÝ ±Mz°¸*ðÒž0&6àŠ¸{Â2¾;M+€c8ÌVJ”’ZJ-?Í0òа(ÖÜ™ø…órÌåŠo×kX.˜<•ÄQn¿¦Ã&Jœ2¡þ÷xJTÊ• oªÂþÊ €»ÜQÈßPÕp¨Äëq{,ñú€84³°4+24›j£OtGBÝ)ç-×¹°Z„È€A7ÐiòÄåLW?ª2¡ÿvÃ~NøfÌÑ ,!”ðÂN€"ºÌ»ŒáÜ`¤ +¡èÖ]°‚'NmÐ °¦{ì„n€pŒë%•Ð Ø ÷ŠÆK9®¼»º’Z¬7c^¢n`ê=fú}n‹›}%¥¸,¥¢ã –…¹?_©TÖÐô*@G+ž™n ¥0Ù.©xqRºº÷Q‰ ¯ýH”€N¶Q£ú’ w”JÖFQâ}ÂÛ@Îëˆ××t×¢Ðb‹óÙ ÏélÀ¦ï§Ø{H‹iµƒ[Mž‡xäì(š9öA­’5­ªEPUk³˜)Õ@©-¶OýwÍ-œ r©Ö¯ æ«A¹4pl臚ð:ÁŠàŽ<ÝáÐd8 P´]¤4šßvʘÏ+ñ—ˆL€Ü>g ×ÙÞXãš1- ðž¨*ý:Q‘À?x[¤f Ó`®aOÓe XåÊ€ZŒÌÑ¿~œ D˜­…¬âzúH-2`¼kx²À— y $æwEYù$zPg ÐËâ”òF(U1ÐnqåÒÁVˆš0¬Õ•8~RÝœ-Z ¶…¦`_‚ÛŠRòYé’’1ƒb`›1¿´@v B Ð-Ö |Çݹu´¡NúÁû’îi``€¾çW£¿ÀumÒ\ð(ñµH_€|ÜåÙáÀ’Àz Äå D¼è®GªDÆp"¾Js2™b(DãçuoáìµN …5PÐæõáâg'[Áá!苽ÄŒ·Àâë|Ù-°pB‚ 8e”d U9R èêEá®ì›;­c•öe»É§Ÿô…©cQñ…q”Ãã),ÐÝ Ðý©‹¯Àñðéç +8Fn—VV{ÞÆ_TË9K+P†©âÿ<Š1`$­øöñCØ•w“«1‚u´N8¬ 6þXoý¢®þho2ßÄž€§Àµn˜ÑÃò5÷LU¬º·^G/}=°LWrMŠ9’M)¥€áBP +p+øIŽL +d$—ÇÕ°UõâP¨â\ P©J¨X +•© 0S ¸h̃¥y>k.„<Í è +xLO6’*L½ñÎ Ôa±œ +Þt‰eðeÒl¤¥š¦{±onfHa]‹$ØÌ0L@—Ûl©.F¥f.ëDw±Òû ¨]°SDiŸÉšû“|Ø]_øð$pÏV_dÐUI O1Vu#Ýb$Z ˜Ôf®Õ÷˜é«v…SŽ@Iµg¯EìýkôTr߀P·ÞApü›ŒäFͤÍàW'ÙˆR&Ò" Œ*Ú’½¤L»~*áÞyq‘h\@à2YNE3¢Ðáˆ>G‚Ô]>?Àpüã/¢}[}@ pYr˜rE¸é½,ø€K9Šqˆ­éõ€?"³éì,ÏF¹B_'È1ðxÀoDÒJ}³Ê!~â; Éæ@ @òË$˜©P 0 lÈ¢µ0¼­È4Hé•ᨕt@“(@@BùkŠcsÀ¯;Ij<®ðmb"ÐCZáâî0j½ápåo@¡'Ü‚¬ŒÛ´à.zÀk +Чl@YÞJnmjå3²~÷ÁàúUh¾ì»5  k²÷d ©9£Ý6ƒ&JßšÁ't4È;&Dª —ñR¾5ÞE¼`à%©¥ú!}a‡VšL {i“ ¿šyÚo™š@÷&Ò|-Øyf¿8é3T:fªô]V‚–Œy¸…ú‘\ÅŽ©ÌÉZ™$0x…§¸—ˆbÀÈ.IÑ¡ÛuðwN ⃩ç©y¬µ¶CðÉ8{Sj£Aµ–À1ãð3t¦':š÷{ÃwKjãmlcêMÉQc–Ô€`Ò&¶Å-~Þ`âhJíQnyœIð +è 5ÀÇî ÷DÝŒ…Ìÿ_j@ÄfܘˆNRh¾ª)5 á­¹Ù;p¦µã[ºêCJ °†2'‚bžý§R..èÒ_nÈ™4€õ0„¾h@vžÆ¼"ï­EËìf@!ûDðØû—ÏÍ€ZŽ]»GæëyX#ÿQ½›·¸ÿŸžŒmã X|—†¦Uƒp:ˆ(΀Tú‡é´xÅ4Oûü2€>fX¹VÛWvý˶6a{âØ2€RøÀ‡\¬ËŠ4ë* c˜Û„¹ +YÊ,»ÛÕ»©Ñe€ ðˆWvPÌ +û„—.(Žøe€û­SºñÅ<°’nÛiØy @Ã{»¯qD@½B+¤sÙ–› Mœa@Î÷'m„ |÷ ´+èþLøÀygCvŽ~eóé«„ÐÀºÁEžº±L³öP×]*Bÿ”~…¸À€(fì>Ê7 +™nÇ÷Vœ|°N`@Éma¤ ¢ß|œV+?€k·ˆ‘Í)9ýpäS¹¦˜³6{àáàñ-`BâÇ÷.Å`´|‚ˬD˜²´9¸Ž…Q¼Ò6 ÈQSö2U:öÄ´—›×¢ +÷ç®n|Ù3G7®®ñ3êÌND¡€š Ý"t¸ ꮀCG’ÜGV#ÄI@WÀòé·6Í „á®Lë'ìç1ß4nõÛXŽç®f Ã=Ì]y¡ñwÌïM³E)z‹c€µ| +ÂzîêÐä½Zú MÉ ’³¯€&o1®VS§|\7¼ö%Èþ.\{Ñ ¾­­f`„pÅh_ES¸Fƒÿ9ß¹úuÞîm¬Öü¿ÇÑV*ëÀ¢äÕ*`¿V Bqíò°@1nP# ,³1¢­J÷º[Ï‹Ô7Cžä¬VÔ¥Ô€U uïЬ“†Ù~Û¹+à øÙj˘V¢tØOèži9£â² +|¯•*…"²|UX€ª ®‚ ^±xmØy]¡ +X²4nföT[¨c¶KWXú¶A‘~ +HgÛíŽKç‚ œO‚z8 \,ŒÅ,ô׿EÎÅþ.4ºQÀN5æÃH(à4ÂfQ§b#ƒï ¸P÷ºë4¼ÉÌh?' †¬¥& ’÷aÅ&´ç0þHhŒTæÈÛ*®ÿFLw–€ï^ ¨ê%¾’{å$ ŸgO{ö=¿•"Æ/ÒH˜ÓóCryä6zXYžÕ Æ2xS¹˜‘¨sÔÀE ûÆò,”Ñ`>ðÄ»V8*ñ½]€«¡¥Ç~]Âó>¿‹|öñûæŠ}^¶PâùO +N¬*ß=ÔM‚äó]Y&°Úú½ÀþÿÁ•†l”t€Ý!\oT ¦`dÏäWe.'r€ûp¦¿Âð®b¿´Ö:ÀfD@ñ–7¨jŽ¿8’Öµq|ŽyÒ_ªÙ›s´i¿`:'¾¿Œ4"`/wAy‡n%Ђòj¤ý/{ „3B‚ÍܸXoàN)· ®m(²ZµÈpŽrMu˜›$ ô úØÞ +KÒpNž—éR"€³M™½ T%ˆRªÉËŸç(G1Ú [Nº iÅÈþÈRVtr @¥zì¨êH¶$r¦+„5þÉ@36‹ P£¶x÷´6Ÿ£ÀB!ÀŸYD¯ý$ 0éfùd€¨£×µG‚4Ë=7\sväE ÏÝt³z¼À…´Dyü(7€Òò×c峫Mxÿˆ;Ò†ëÉ]mñ´P0柢%¦âê Ô‹Z©úÀ][Q¼¸ÄZò6™ˆúR@ýáŒbó:ÀwQá(ìRJÃC+B12F¨£#2‘m‡Æ0 +òLv8ŠWw#=:–ÈÀaŠ ²€";°½g±À³Ó°©ŠÐt¦íÂ: 6c®/ÅHÈ„×Õ¬øaˆó÷/´A-×ÿ1-JäÎÿþ]k×`W ÿ÷µ¸yÿ©âdŸ +¥z§ýßÈ%ê +¤Õÿ9ndðçôrHôÉ’R7JŠÂÀ<å(ó?aŠ9\{S_ ÿ ÏÖÿY· +†ÿ|3’ ÕÝû¾ÿ¬•ûvåûcîÿ4Œ+º-ƒÒ(E&@í}¹õß¿±(ìŸ^rûtŽW»« Xÿ «© GU°ø§ÿIÒcs©ˆý§· gŠ~µ{þÑóúûK¤¤c‚4ÿÇ2iC›v&’ÞYþ;‰î{?)¸m#ÿó_ê´¥19Åc… 6w c¡ñïÅYdá{EùVŸ0¤ÙsRr.e³TÌ“ñ/Êmò5E7ã?!Bò‰«‚Ôø_¦†hÉìŒylü³YÐnn¨N™ÿD)Àv÷˲÷*èÆ¥S¡'Q p&~øÿª JPY÷­ˆÿkgô¥1˜oüËÑwH%è^4f «ñßGNžœ¹Îã¨gálë>;•ß{…Ó†iÇ´O†Ñ”#Ï[~6þáOIœÌ,"`B-Jsi‡€Æ¨;+hVpüW$#ÝÕsIÿa³Cûo^Þøß”ö.\pÎ0m˜Œƒ\XóyPÕVÖ¡¶EDô6a´ñ¯rò ÷³zÜÿ:u·<õZ!ͬ6þ»Œvãg¹šÞþ ™ˆ R‰7×îoÞø§õЮÓ¶ñßrrÉ[È®nã?Çd!ScìÙÆÏ8ò«œ¦ÿ8’¤‚¾Ô6S„ä3ñ’å2×&¨$ÿc=%Øùï_|§–tÅ" öþb'úÿv¸íþ$ã™—ÅVrìý)üÖ¹é·ýŸe‚v­mx(íïq¸íPÐBa•ì?qŒ½ì/‡/Ï)ê[D·þ“w«áZ<\ý­TNlÌÙÍà(õgQGÏÊ‹ŒEpúßÃ0,Dbë§žMúsëåš46øÁEÿ†-nï•Y€n& »àþéÔ>yþ‰ß¦ö¾Pfg•aËówßl½Ô]†œù³2ÈN`bzùÃa`ân]þ䡦‚{7̽œe•?¬&ìuÊ(÷%?R”¾ÿŠÎ_½~®N“vfÙ$ƒö¯ 8¼G±p¾Q“üߨôÕDÂÕf²Îïj°O‹Â$ÿSÔvRÙ1Ûf'ù߃úý;ˆ´óò¤%$¡å%58À¼P­XZòÇ-éÕb¢8òu«v®õKþdþkT‹Œÿ~¸)?%½îSJ÷‘ÿ' ÝïØÕ÷’ª#ÿødÓ&™™Ÿ©"YºHSÝ­#ÿ’?#C®\ +F[OÒÈ¿‹ A¥ ª‘NR`œûhYOFØ9øä8FþÞƒô飓O\ÎüŽb‰óÝ£cOÉ‘6*' «U$ÿEeôøñÖè€Aòõ •Y@Îåá¨?Œ·¤ø¥¤­HofHþ„V{OW;O*¢ÃͰ ¦âˆU‘pDÚu)í8|kŒñîJþNu«º³ŠøƒtÉß@/×ÐOÿ™C½Sü¿Ò’ÿÔKúd³cVçP²ðKþØ>Q'ðÕ {P6—üŸ‚HÜ .Ü&ùO3*IQ$ù/¥©/àU•/@:ܽÈAœQÈûò;%„$m ‚4xn­ß¯œâx.Z%@«äïAûÛ¼Ö;Zò SÊ‹(ºä_¢šª ¦[ ý›3’$aÉ]s¸5]òg·ë燚%õ’¿‰á +íúpÉš¢Uš¢k(ˆk +'ùKÁP3/µYÉ?.Ó+OA «¢7]aŠYü E \ò·ÜGÜÕ›I[ÆTòw )JÞ ò·¯ÿÜ8þÁg„üMoÁøÃ®)Ó{b,FNü½rÿ¨)çÿ[}J´)¡@±‰ÛÃînhÔݯE%áðÏš÷ci½á?ìc="Š~ƒ&} º µ½éþ'1ÐSôQÿ˜ îPžù!ù_%{Á|ä3Ò®g§þ¹ƒ LÔ…ìq2ü5j¬Š¢€Ê;Îiñ$óý?¼ßcóúшê^–¢A5üQŒ&á–#ásvÒÖŠ¶”õEÃ("ÝßDï[¼2o™ª¢±á?¯ è¹gUüãŸMU N·\â–ŠÉ׿á¿u +³Jo¶¼ Û—ß_žÃÓÁßµËVº3$i qŒR+¼áGÓ/QÈ©é ˆÑÖA÷3¾ùÄm³‡ÃþÅúªº d€ë#«TžÈôvº„èÈòé%½Ù²—tøÓ–)ç§§þ’¿|ø#f!ôl þÞÑΖȧxŸAüUÊW'!V#Ø„ý>¦!þ›ž<ìêo;猟8Äß•ºÄM×gü"ׇ¿ÖJÂkW=ü= ßL}èå-’p¹L*刨5û’|ûðÜ‹‡UbqÛýõèd€KÕ­/QÖ"*µÔ¿8›Ž¥\äá_®áµ´cç’³¦<ü #ýß(ólg* nG ¥zøOOÙ}øÃ•2âJÂ@ü º1†â?Ò¾žã|üK"Ÿj(¶+ ÐSñ~~+x=ô}Yx¬õrŸ?{ï~PøÅnLU‘v·â¿ÅÃ2Ûíìf]¿ÿVõÎIì¾)ÿûCVèXò;¥M¸Mùw\ª@ñÿ=í•0Mly÷‰ø€?´¨AÜp$óãhI3KãbjâíUØgTóJØ{'%¤©yX˜ùFwµØ£: +có÷jÛë|Ç&éò«”⇳_X +¦SìPdW•lÓøûVÝ_ò›*Žü¦üôaÂößÂõ] ßHžé$ áãŠR +ìY«çøe¸øxƒ?C†^-|®ñ1çcão ŸåÐÆ¿b- ôFZ÷>–Ú½×ݤ­OSŠÓe¥p¶Áf SNT†/‰?«ØŒ9ËÃa þ|–"GÝ¡×ÞðkágàtÛD¸ðçÏvÝ9%„-á7ò$üç¡’üç1Ù[~¥pIðÜà|ˆWà¿t°:Žó–Puï~Æ~w¦,g…9çPÁ†Ôz¿g*b¾o.ˆçíŽhëTÿ`õd5¯N½ÿ°~UÚ»šEŸ~yÿN5+ï·•“ÿY(韛Ùqr’ ºû=q_ùˆüɬc’Ø} ²Ñ?UFEF2êþ!òGî›yîX¸pb·Fsåþ•ã>‡é:œ˜kÜ/×g0ÇuÁwõö%÷(ØNbÎrhY®¡íšÙR{íA¢¬Ú‡1‹\õW—iÿ@÷m²BMꀖùª5õ ž[…ÌÞtZ°Ü‹±Ÿ”Ee?ã"Ñ‘ý„8«}Aá(føVäˆú&Ìþ®¨éfœ6[œ•aŸýdD“Y?¢¤é¾¾ +®#Ñy}³d BLT]×G”ÆhâúÙHY¾o á•­Ï΋ÈVZßä¸ä*{¬ßx{Á]³`_ý€¢ü8X1ç²½BNS×Ùn¯^Výˆ8ë\¸½í%¸sTÿ:÷[§¦~MÕs¤þÄǃ°GÔñûíãà†þÓ—Ê'#ÖÓ¯X›Ë’qBr¸ãa¢¤¡ŽÊ‚“(À]ôûHÄïÒ7GZ¦Jî@P÷P“~^2eÁ’ƒ¯H´ñƒK´ ]yTÁ5K $~ÕPJ­/]Y.“Œþ¼žù ‹¢¹Ë)„ÚdwÑt*kMì²NU•QQÍs›Û€èâž™äq8•'’¸²4áXéÌ4µÏ¿O—~x€Nƒ +ôŸB“½x—êúçÏß¶úãæó£o&ò¢$l²d/0A³žOóýƒ·7žßý{ÐÓní|[´2õoÅ¿0ertþ#‘¡9Ÿ4i¢bšAŸùÍÖ˜ º“Ä·ÚµÍÜD}dÜF*ÃÖ|Ȳ`EPÒüËß)ÏјF:ÇqX¢éf¾·>8=´ÙŸÉüOnUí)hb¾ý9´äcªQƒ2†ió‡Õ(Å»|Ϫ;ï¨%ÖÜòLÒç«)".Õb–_-Úç§®|Y‡Z͇ç’ñTùçd|É–‡ëR>™;¡ +2 +åÇc¿ë{N¾·®}o°ùÝbòOeîn7°ÀH/×'+ŸWŒþ#Y¤Ü¿W¡i‘Ï*ÌyC–½†ü+¾ºŠ, ÈØ¥¹n_í ¨…ý +a‘Ç7¬Ê(t'uüCÞÃñ•êi;’ôèg¿é¾r¨AÓ3þd€Æ©cügC÷:Èkt¦?ô£¡{ Õü=\Œïå·VñÝu¿¢øå[´5FéÈ™øßÞÂ÷ ¦Îj›nöá&Õ¿Ì2ÍñƒP,ª4?±Ìð}¨"Ûá[/k~]A݆?†ä¤Æ”@†OiW…òŽßÂçwºÊNdoÛÁ!4Ýì´/ŸÅ­”„ß «W …q¿c©Y‡¿—0ºÁO¦±æ#ë…†.øœ„%(gJðçrÿÕ84jø¹áò"#g Ö¾ûÆ›BjšfHd¿Ëß«&rÑ,Yƒeø˜çWì +Øžß5ù÷¹¶ƒ{F…DY_$Þ8Áºêû•«ò{Éú½ëÊ~ç¾ÿ(­Ó'°ÌéûØ¿Ã1HwMZþ×%•ýl‰6ÆdR ¼u³8&Z€ŸÂøõ^ò[PÏt½ïà —ÞÓ1oJ﵄ ÄöCe1Î{™·ÀBÊû!&3å ‹÷æÏ|x|ü’§à=— ôî÷{>‘»·~Ùd-ŠüY>ŸvðËÿb voU5ýêþ£rít?iºGÃëYtëe3rQÑŸà¹gói?põ™{ˤ;ýíÅ9 7ÔXå~©HðÎrŸö¸ûü…؈aÜÃLá\ùAÜó÷û÷äódhÏÜ›>Ðå¢XÆ¿oÍ¡4æÉD„ý}ûüå~{n~ŽØáørÿ¸…–[äw2"^s¿ý9ÈC¾:¾ëˆW‡ð¿½AÙ" àþƒè6‡Tßꊟ÷¾: Àý>v¦“Ä¡È}}臭/ª‚ŒVàY9Þ +$†þڜȊfeºú÷>|á,o¼Wó}H¶}MRlû·Ÿ‹†%Ž +–-6g~ÿöùÌvÏ¿¬Oˆˆô¤6M¦.8ØüÛoEŠ\EoS$ÑÖžû|ÙÑpO5{ûÔç²VúÛíi‚™w¯kg‹äööÁŸä¸o3ÌÊ©W>ªâØëmû‡´ÇãPþnÛ^P6$˘~†¹ÓÛönkm¨Ái‰Ž¶=ùkÙ5rÇÙ“óŠœ,®A‚¾¹“¶ý ŒLWZ””´`Z”#9ïìâb|ÑBPól{qЇ ‚m?¼jVˆqøk{èÚ`üG{¿§ˆØö&ádÛÛS¢‘íbè„Úö­—?TiTbpÅÆGÖÊ#ÇO4&ÀÆh‹T¶ÿœúÝ1[iÛ¿ÌX™˜Ìï8·íÇ]‚*†·}1‚ãöätÿ¨ØÕ¾¾óÚ¨ŠtÛ¾ov@ øDÐmÛËuº§Jzª")¼m £ÆV)ÈŠ©´í ™’Xc˜FÛþÿU«r3ƒ`;f&_c- Ïpâ(¥bï-¯ÿ¢=ö/¥älûçÁ,¡ìØö«'Náå>Uåá+íQ.k7Û~ÐkØöU3Ï¿œ‡¢$×ö¥¥ÉB›…iuv­íå™ ‡RþÚþöíœ _ÛKg?ú ­lâ¼í />=Ç£€ðÙvææk{NA~?á(×ö¿¥X’«(n$ÑQö¡~mÛû¯è‰k{rCù¬ýk{Ê ©zÃíLܵ}à`œ„JÅ.Ûá°í+ú 7IeeÛ¿°ÖjP})lûƒ^gÔïRžý?Û÷@E2¶7¢ãê‘ÓeÕîiÇÝIð¾v2&3ùÊß÷çz‰j˜ÕZß`pˆèà:ÒÀ¤ÑùÁ¢³Œtæ«-×—™0¶ÓQ}>½V£t©áx9!” B$T¿•å!pV´­eu.î¡4±NUWçk"vŸè:å¿+²ûäaJÔÓûz^fð„S×)þl0¾iÜäu2!Åsx¹…ŽE‘˜ä´yå>f’ÔJù_˜¥dnç¶±Œ ðõ£Jùêƒ +[Ç÷c¬#0Žt¤T­8s/%ò€ZóBd\PÀï,d{û½Œ›VÇ)@ÔB±lî­V‡ó:>³ÉêDTnoˆ<üõBã’äÉê$ÔŸ±~duD¾U£.´w¤Î#ßs )yzåï_eº¨ŽÁ˜Üž ðPT\Žê@Ü:ÕR¿Wöp¼ÑûŠbæDè’W(^ ©3…Mè¡“ê⹈ԩp%u4“”:€?tsýÝ´J Æ²Ÿ²¥N¥¹T-°¶-Úœ¢3…‰æÜž‹pgÉ.ÅhË®#U'«гçùJ4Ö O^yÏÕnªSi§3!’ÝV?hïÙ]„”/Nwj#¨ë2C=hƒJêt©ÿº æbN‚éŒw]‡î»È.¤ÓAÉ-V¨#q+ÜîræP2’ü:%Ô°¨Ó™Ð?½Õ3#§A1PG*k_+‚QšZ°*'”Îè7týœ ÔYÉ]m’:|˜†T ôÛµvU7Ü]é(®¢gÞL™0ÙÐÔo#ñ]ý¥ Vû¤­³(Y÷¥bKG³½“ç.¦Ó]QMqqäKýÇC,ouE©`âàžºÞLG¿O¿7l¦–¡«°)8èQ’p!4ð œD”` ‡ðt +U Wfo'ˆ4[q${n©ŠRÍ-äÀ­(õmÐá®»_…+J¹Iï0œ`Ê=½ƒµD¨’Mâ Ye3<#äÁ*¨‚žžÎX-ô5ÐÈÓ9ß•Ð4ëÛ™< g\$—dÿ€9j¾x ­‰êŽ ¢tfNVr!ÌœeÂÓ‘*YîŠOÚ™&€—¿²B?PÊÓ.¯M§ÞˆR(»y:Ø@æéê­ÃIQ—¹žò¿kJ@”r÷0_Éš. ÷¨8Ó™.˵/?ÓÁƒ,žŽö>‰(žÎ Êr%}¹ú.Og±`¦%-£GäÔ‘n#ªr}œ“Á«Ž +&Iéæý$À:f^ðK puD”+—@Í,Îóì|5[V/ ù` ¯¤3è’4>¹ÄŒHOQ cZ±< %ŽH™óð]TG,ÌÒê伨˜‡ÓêÔ§¡Ä8¸ÑêÈ/+â}ŽŒ¤äþõϸhu¹Ý§÷xn«397¹:;‡¡Ì¯Rÿ6ÄÕÁ{hUÀ3Œ_RŠ*+ˆ\)Ζ‚-;W'ï •!Pº\e@ŸR• “ êÁ*¥qÎãÂjÖì¨mU æh³Ä}͹à4\»¬ðåRÍÕA1†]AÐîË<±Õ™u »o«“ù—bZ^Qh«£n(œ°Õyñ"âOMMAÜÅÕ®Û +d–S9´MJ•‘ÚMGSÂðNÆÀ­œêÔTÐl•q¿¤„•í—\«m©”pbµÆAÿµ'9Y§=k{Œ…k‹¬“ Õ +QNäu|›Jé {‡]içÑM¥TÿVz´€‘%¨”V˜1#z•()ƒ› +RG†LOI©EéäÖq—)Qãê¼nê¶œAJ¯ÁF×G-îzÄQ¹…iu^b·˜—®4qi‚ZAÑîÀò’$ª*×$¥â®¨U Ìu—=‚­ŠžÎ¸{ :%©q®î¾½RIÉ|ïo¼¶®¾¡¡¤Äè ‰ê€zç”¢Š«LOuÈ)ôìħ:3€Sª—æ +&)-d=ű5;CaŸja1j²ÖÃȇ:SEÊÄh)eú_žÀë ðÆ¥‚¶£ ê’kÊÃñÔSu÷ÑþaåÍ«ÀLÝa‡ig- ¶@«5UúÊö†UbþŒò-i7wö ÒÏͶ°R³ójµ„w$Jº»ÀwÊ“woÌ•@WÛv†WÚ’×ìbðÐÙÕ³Â3@qȆìlgJqåYj5k}n@!ºðÚG-yf¸P½ª<tª´—‡5Tà™ç±?Gƒk Ú n]…æy Ñ,è9=¯2:F#{“]é©uœª…Õ˜X¬L è¬)Éõ–Ð79MÑ7ùXÏ&ô“YäÄý¬G‰ü[ñ@ˆT„T„âXNÄÂQæø„cE —fÍ©k2ÁºýY,§K$Ð7JÂ8G#Gšùƒï‰°É +kQ¤«Î/5pÅ@{´ G§{@ïÚKÿȪ™Tþ±DÀŸÍä%¬ý +Œ,·Ø†O™,·ø,Ý1?>ÚâPÊgpE„N\û¸ß˜Ïd]4­î|†Š +ä ¡ÞQ¢O|LôüŸÂÒY“7 ò/ÖQµŠšÚ \žfÝûÙÚòK½ÄfŸ¹UÔ+& s‚Œ÷ùÜ4œi>ì5vîüw“×ÞÆÁñcMùíº±ìã^VAÁ]«}Ÿ¥Ÿ’—ì+^?Iž\dZ¹x_¡2Ù}÷ ò§ùÛ¢?´ýÇ î"†Ñþ™/ùŸs~)^ë6퓆´GH“úœÍgB©$šóùô  °п Q¢É¢óa÷ä€ö÷ví®7ƒo®[Q頻bÓTŸAýž&àPý‚¤ s¢È7pT“±=Àg<ÐoF¢öˆ4²Sí!º鹦_Ü¡m,_[k›YÆÁRP{¸%‘ß%ÜnXÚÕzWm‚eRENãÓòàá· ü½UqsŸM㦸'Üœ Ò-¿Ly…¼“A{â½WÿîÄTÞé0JœÐµI)g½ \êâJqH>Ñ K7œÅ”æõP—ئzèRôw Ñ ~éqë6]5¢Ñš-je;9jlÓ9p¨JÚáÇõÓvÃZôЍ>òfEƒ¦ f†w( š·\ÑoЉTÄ61ÌÕ¥’iƒËmÄ‹õÜò +†Áz`åó÷¶ÞѹK4Ȱ¤¯¥ ²:¸É×2TPPÑR⢩¶Œ¶m¦ÑÇA3Nˤ,›ê8(DÐJª\óCá&×sÕD%_^÷Ž@MV˜ž‹ƒtGaM<°8â ™âwý[õÅO¸©ï‚ñr,¡/‚6K,†‡›‚Ó:þåºI´u0ZVÐm*e~É8Iî¾¹ÛT†¸ Ö±‘<1U#.ç¥#94†L¡ v5tÙä$˜X•ã,àåDƒØY]GÉ\¦?›ÞElFpgÍ*[[PÙItUPn?ñÖh jù¡Ø”ÔÊt\jµU¸åeÌJ<ËTÔ‚`@'‹³V6Ýl™ôÛjªlÚìæ»ì­BÆûZP0Z€ Y[ úÌ æMÙ«lªþ` ³}Ke“”FWŒÇËJ:·6„,Êë©)I¢ ‰Ú‚ÚþUÊIÒöQ±e^÷?(‹xreÓ¥êÚyÿ!õ j‘ŽŒ›òè  ’½ˆ†3í–£‹#¾ K0ÝY"P¬ËOÿë *’¬ª( ¢$= Üσqz +AbþÓ¯l +ešcÍ$T?cSÒoê(såm‰ìA¢ ôÙnBã`ÓÀ’©Õ›zÖ|¤ÊN8ª"«á%…1)HÒ¡MrO› í:d†?˜yRIA;iÊ+÷À+üÝ>hÚ£RP’S¬\Û¿$(xÖ¦®âUÿ׬@‹ÝëpÚñŒPb„|Í WЪ8¸ù,¾M.›É2w›N%‚YÉ sM€7„PÁg'€[A‰¾(äM'Ü›äªfSPýU‰/f“ß$4}VªÔ‚>¨i¼ÙîÅ2z„Øâ@;QGû¨c±ÔÜËòŒFýt˜HXù‚vŸÑ3…‚æ@ò8;y/H¤"¼'öÁõ +WC"M ë}¯MS¶Æ±éfM¢7zÇ&5¦÷D„ÒAÆV¬àØÊcÀ OÇpljBqÇçHvTð½8)ôýA”(o¹àcS_`*M)Î +|ïñºaS¢Ür̶<‚y“Oê#ïeY8S,]Ûàå×$‘”w +¬ðŒ­MžÙmA*HHk/"lAöëm@Á«r§ƒÈÕfÆPÆn×µÇE·âÄ]65ZJÅ66=‘HÑC5™,«£mü`-9gœl¤4ÂyØ:µ ¹©­Ø¯ ŠÎ: ñ ÇXI¤áÈˆÏ ‡Mi¯è;„„×C’›åŸ= kƒÑíòÄŸµ u?í³—¾ ù)=±y>¯§Ȧò|ÅÎ7Å š}¾ÙlÏ‚T +YeÄÉTš õ‚.Ê@αÃÒĤ%@æ+ÐVO M|¨‡¨¹LãXƒ¢AþÈïgA±oãÀj—Æ7óÿ…M/äl²ö™ÁAb}A(Ë•Wèـ‰l¶’_а‹*ÔØrº A‹¤5í£/éi¹ lS ›¤pHÍþG2mûá-àŽAO$´)ŽHÀ m:ÜÐV©6m7ŒøÎ6µ˜­ƒVëDú4A8ð6eȹn©ì]î:¨›wedöiµ¦ý¦{ëFzЄ©ÉG~™Tw7•Èøá&ÿž„á×m’ö§áAùZÅ}VÐÅèû°±TÓ:À2elò3Qu›Ø¾q"°Su›Þn&H€×p4dê6å± 8u¢—Ôd8DÜd¬{ Ð%ofHß‚Rï<„žB7±à-§Ž¨!ÇDLûô@AˆÆÄh°(¬›B‡ƒ9HCQ…Ã>ˆì#›yÿ »ÁÜ”Úìl~‰›`la[[i {„¢4?èåú> eÛü Ô„ì¾î([òYAh6Ã8„¶u·”WÙ¹ün²°š’‹½¤PÊŽÌM˜Õ}W\tá4Ñ›Ê7•t¤ DoZÒ¸ij;:¶EoúV½¢âBÐÛ')r'ϹBû^»—žž¡YÓ TÀÍC¨þ7€%á¯ï¦~±¶§:©ÃB{áÏjzm‚èwÓƒÝÙ,UI· ´ÕÆròÍ&–¡â——¹/ÖMµ”ª^_ëßMit‚ ©w++f†ó÷êó†½ÿo°’ÀzŒœ½)dû\AÜ«T…†Ýh`z1§"X•?£$qDê+BТ„Z? þc.â*BU—%‹Fºwã?î zzS8÷è…(xÁ"ä×yÃl vÝ•! @5…Öø&ï¼É}„u`ø-B;rz vº!ú¤Ñ$L˜%Ë×Eh±dm…ÌôpzÓYGÿƒò¹)DúSA®ÁèMéÁaNz¾d/BñƒA¤Ê6dà õÀ—æâî‰zœ¤ð†R\j§«¸Ùë$[„Lb%PëR,BÅ{Ïž07ô&¾ðß„\¡µ¢œbÕÇ¡¥sÍU†ðsº9Z„dÂbb‹ÐÂ3‘v…‡)}‹þsÚŽ’þìW€EhOÍ¥ÕöbzU|ÓÑ´¥%D.DTKîÈ*f”„ /[r‡Óô›.Bæ5ÂvÞÑT>.ð–{—!)`ªgm‹{2"ChíJ$u\$3†PÊ£é«vžònâìC­2„^«JB?û-0„–@_÷ØÞMŸjœ<à ÿœƒÒýÆf ÔL”¢ñÀŠ!ÒMúc+xz½›XA)%Xæ3„öà÷6ÃŽt !tž’E¢!ùêB>–Ý&ÄU>5„¼Ä$¼5„ ”aÌ!TE¤ì¤§d‘ÙÒÿÝdøWãÊü””u“™3X‚šö‰Ö»uÓ;»ÈðÝ ›“ñOI„ @˜IÁ„rî&AèC¸!É -c­p|Õ€\E !2Ý^Tœð3„ÀKqOÿ,@”!$€´D}7K-Cˆõªoš0í6¼@º4x;ˆÅ 2 œ!48ÊÕ[žu1ð¦ÓpM†PgødêÑÈw D 4`W”!4w%5æ?!䀙˜FÐä¶$ C(uä¼t1éÐR!6)3°’eÔún’HcÈxý‚‚ë&ß…Ù}€áÂbÈŠÜ­¤ùA/+ÝöP2…Í¿D£¾?¸iÆnB”Éí’1]e(•X«dP‹ë&2=„rµlUÊ#„–rHHt4ÑQMÝ ³Äi1äà”Å+†„;¨’f‚Ë7ùAË0ŠÄå›ÐNm)œ}!¡Á_÷V%„ê>‰:Æq¥¸4yŠJˆKÒÂæcD¶zHÒaTùòâHO ”Ou\°¥ü®ô¦ÒãmFyXJÈÎÔp—ú,6eí=_}|„ +-zøv”º€ÖŠI"ý%ó¨(¡Á¦1JáN1q{_ù0&´Aw½ oCW¡¿ê=–Àéf'O‹ç´ œ*y‰{‚gB¨Ó¿íNëF3!ЫÃëHúÊ8Ï„..E’&$nn^òÚPšÒjótêa¬%à'/H5¨v¯„,‘´ÑŠŠŒ@üM¿9³¸–÷•Ð};zíßJHÉTýDYìJhdIjzšP/" +ë AGLþËžžÐI›b+ýTŠP*VOh¯ePÃÃzB“Äó‹“æyî'« +òpZØP8ùa_N¡è³ +ï‹¿B¿¤Ê …¨8îS rˆŒ ýƒù@»^hg0ä†ñé=[NÙÂÙ²kš‘-'Ö#ä©@ž1TßÍ©„eÒ¡iö›õ-»DàßÏÕôþéݸÉ’NZ«,'Ì!îÕP2ntÞê4x2æ~ª‰ËU ZF™änAcÃ7ÅZÀ ˆH½n7ôÜüz 3—ÜéT…ÝóÅ?ÈD´¨–›xš °Ÿ ß9ÉT9"H<N®LÍÙAS‰Ø)Eã.Y`æ> üè´2þ&mî8æ‰FO´±1 QD !ìyÙSk^za="ß=E…¤K±ÝÓaOµ7W*4Àý=iíÊäŠö|A(,z_̲ètUQÈÔ"þÂU€áXM<žnQ»ÌE˜±‰Ú»è#éBðET"Ö2úéÊÝm6ûÉÄÏ£Æ>™®'bd7"‹hý‰Ä*\ÿ$ÐL»üŸpo<Ö3åò ååüÁ”‘:R}²¨ÔÞ\VY£ +ÌH(b£Ëõu8L:F2çÂÌŽLg"™¦JNÈiº‚‘Lq¢2¦ŒÃ@úóâ8™$Óõ}dê•ØË – 1ÕŒ°™*ÜIè*’¸˜Ÿ…†Ñ„\KÄæw‚* ³YùJIŠÏ€LcJjºÞ‡O*ƒÙüˆ)âè´Ôò‚R ׉ü®!.bÊðꇅ+bÊïRí¡Â9”}F¬Oi©ž`FÅDq;.–~ Ä©P2¤b:s9ÙÒÍTV11¥ÓÁ”hÝ2Þ ˬê/•*Ø*c‚¾~ñJƤ•¥%¨ÿÁL4͘¾ì§ÍfLå¤/JÎL­(¢÷.-±ÝSD+И‚è3c^ÂÓ©¯ï:© ¡Ó™tItZU̘–W1(|ÅoßÁTú”+°c1Y”•’‘XLörXË©9ÃdT¿Ñ=8YL(¼k_(ÿRVYB Ö'¦½Ô%I[Tµ×æw"¦¶”˜hH‘›Ð½áÚ ¢/Æ€FL¨5ž/GL¢’Z-jlã“K]0›ÈÑ DØc:bÒWT#9#&‘I‰bA|ÜKÁ'ñoš|ë.UB!`ªEW.åò˜¨¹›f“Ü×a¹vêòLÙda£øRÇn>,G¢f“K \"LèW(å2Û²ÚåÏ#r©3«UÑ£jí&º´K¬8µÉ‹Ù©e€p6S4I½A¤Fµ¥ÞþË×LyCí×µ¶”ýæ%G a’itø@ + "Âä+FŽ ƒê& ›^ìƒ)0?ÄåFQhÆÎžÞ9GÝâ¸QoRûƒéç´Ó¦ð Á¡ƒ©*ªnî‡)‹ƒ¾T}ù0« Tˆ—"Eò|©UŠ0M5ùR92”÷e‹'_ +bq²@¼|)¡3¦€Ô¯–˜ 8†*i\LbÝmùÜR‹Æ¦Ä»‰-Äî.&ùÜPœ¿ÓÕ¡º˜:qP€ý“‹‰ÎUbÔou9¹˜”O[üo»˜ÖíŒU8ë-)ÍXп +èL #qÞ¢¹Óúe|`7%*-&Úm³õ<SüéÒø”!5¹­…ÉÑ…ÀÅ$°xéOµ¤¸Î/ é9ѱ³Á$&Íñ›XŠBÜb' ™6‚\˜êBçÝÎåvïËÂT´ÃÃSm]˜öTrØ£ˆöáÍÂÔ!oFÌà|15;væÌÖ¥¦ø'‚]OµÈŒòb*èÉ:ïÊÓR¥ +×ÎÚ\²ü·˜08!(±!ö+ffùÿ@\¸´„[N }üÚ’˜ò¬Óâáx“$²ÅE&9žbr2MáUÕÖsá7"rL3,ÐÔu2_oº€ „™È–çµÏ&cjdŸFßL„£Ã3=–¾5õў㹓MÍj;mSQ3yhÿå¦I5‘˜Ô$5| ‡­&FrÜ2r*쥃Ss*2ÀݱI ¯ÌëøõÅåÙ$v€Ûì +7‰þ=BPš½ûu™2›Íà›mrß“6Á cÚw8%øœZ6ÓOAÎ r¿#¥5 úB­ÊœFºtQñˆ®‰N4.”…ñ©áE©T1ŽPü´±èsƒ.Yq§ýXªoãŠþñ C¤h”NI,µ|­(†-²˜Q5VéÄ·©ú»5…Jþ±Ë™ŤìÛב÷Ùªîý‚)P¨JùI³šågÿˆÁk•; +ôôÉ÷&‚`°ñGPÖ2u–Õï:! ,SŒA}M­«_«Ð-(mkŒÇé2 E”Úb§Ø–ç c•ëÀ܈Ê©®ÚˆÊN†¹ +ˆg'T{êRŸéÝÙ w,ô¨âK{vº¨Š³þ[žî^JÈvÕÃMPFT¼#2žÚiî-‚Ò–·¦®ÈU +k¢°%Ôì3ÝC´“|@Ö½ƒG .”ô$>¹Sû3@;Sº›÷=YÚN´F'Gug¡˜ÀÈú=’:=  †móšî”–i¹†ô@ò´Ç·º><|* º“CóYA{îÄÇßÉÊQEòŠï„l:uR³²’¾½“À]HTÒ;­53®/Ø;užk¯î¼O]¡v¯€´Þ; >²pï¤öE1)&æÓR8|ÙÓÞÉ!©Zá¢'ý‹Ò¨NÀï+l½ °gê|xòýƒ!s'öƒ|'ÑÍl#±‚bƒª6Æ\³¼ÎävjRO¬#-ÐÓi¸ž¬'ÞSyàG1NéJ–O’ð¶j±²v¼Z$•:Û²|RŽ Ê“§ ªÇ—OÐÑÏ›'3¨ªTO)Hªùôk» +š¥kìóËK"nÄ¥š×‹—êò”µ²Y4Çy©ü3DÒÑØ^ÉõR9” H¹ë01’9pz/XÀmõ©^’ø‘»¨¬> Ì•{„ƒX‹–Jâ!@ÿÞRYÉΞ3uüxcŸm6éû4T‘ +¯ÚÕ·TÊJ¦v^O=3ríJEa¥¥À>¥‚ÂO:ž‡ú)óQÅKiªJޱÒTš$höì«4EìâT[äì€*ÞŸ<Úï§b#C¥SP€ØÔL2¨Çêñk•6Qí#S„²M5;¡ÊZ€L¦ŠRÖ†Zµ¹ÞQ`|™Ö¬^é¡U´ÜWcö_# +®:Æaøƒ’锟' +ä»Fjsf‚E!ÅÒ\ÔÎ_ bÍ–ò•&ä°»¾}™ÿ4]‰é2ù\†5ó¤eˆº¨Yö–^áç­ ~Æç¢n œrQ.†8³0ƇÈEºÿ D9èsQ0°¢A†b1œñ5ÇÉ‘U0ö—HlÇݯ]¯J ‹„H ¹¨p­Uöooƒ\ÔùîFeþa.*Ù»bKç뤰>ò–ꘀNnD·_åNFè;FJb‚èË9 £èߺT£Ìà3-Œ¢ £&Â(.¤óœoFÙScÃ(ü‘ô'mÙÒªtõ^ w쟿™Q%k˜Ìv4Ð0£8œi€æ4Ñ,­JßHú(Ì›FÉ q]!Ð`Šêê™]áFª•%œmXßhUY¢|åögÔéX™£}Fee]«¦v+Ã\ÆàÞebÚúiе¼HX$¨µje“Ñ·¯B‚3j y™§Ù¡ËÂRkÕY-FíÑP[CšˆUáàxvH]xtü€H‚¢î߉¹êùn»Pu³¼µ\šîLd$Ûy¾5æKîˆû¢äèqɉ9@V” eÚª¹ö™9Y7m… +R–nµà[Û¤™ãwF) ¼c ÞáœOa™¼mH _úíð + ×k”ﵚ`­˜ŽâŽ<@kb_Ö¨`æ­‡ ¾á²Uõ€/ì EOsõ±ªŠ[¡`¹F‰ xhîlŽË‘Ö)̱lXPýï±þÇW¨¨º1O}£RŒ|ÑQzœ·xTø6T£4ÿ!’››D\ŠŠÙР¥aÔ¯ÆA ÕGñ»d3þÉñQñ8T²Þ…gl%Š÷ŠÞ‘[ ¦Þ2xWDCm¡›óàÆ*…°»¤!¯«†›ð d ×U»VÞZgA( 3i¤u°‰ž‡uÍÌbSß KQd!*ˆ–ˆ@⛫`Á&Á:•SMó¿ FÜ\E?ø›n®r9šõ,á\; +¾Þ$uÃÊ…ް«,iªàŠÏÆ6ØUßµî‹çŽ’@5Öê/¢*ÎUrn„"Âè“ÿƒ ¬SödÓ¥ã«T¤¼ïQ^ Ø>_©°B¨«tî¸GUîoÐêûÞ¨üÔE ÔU¢ëøZ4JÖì†.ƒn ‹š×4PTŸ¾†^ç⓺G"ï00ìmBúâï•¿« T\;luÑHú«”͂Ӷ\?a@þÌ×’ˆªïÉ „uÉxZ Â65Q‹ðtè÷?…°…;R´ÞœSÞÊŒ†ªÎ ‘ÁU-e¡ÓßpUfΜ©ê¼h©+ùR8”+¿b®bÂOÐR5Ý™§ˆ®¢çì‘5ÁÆt:ðg7¸©ú›Zl.ð’®Rãˆgcñž]­»ûK¸+èà ÙM#{E©³«…£ÊäsÜèÎ$%Yœ©c“Eã® +¦*Œ¾2{nL•ê¤L•¶-‚ê‡S'L°½+¾$¢°ÐaW¤j)¡Ì/¾?Gª }¹úëÇ]Ùè‹Ø“Ìd«@èÒã®>MT}¥ ²"ã=FªRb¦©=Ç~¤k_ksλ2] 9¢ËÌKªîTŒ Eb…Wã®6a’Qu¦Š*ö`)§¤EÕ±,&­¶Ñ®ì"Ì‹—s¤uMQ…ËÑk7´Ú•ŽÖ ß±#¦hWSü„ÂðXTýýQ8ò†U­™ßã)@U€B¢³ÆØyŠ8ûØ^€¯+ƒdL¡}@Õ4ýè-—Zjñ ×Éðuå'Ð|AqâúN©Mªz Âpªø¯’KwLŠ”èæ*¯àn=4ìTå:WÏ+‚J¿­È*Ö¸!­:ˆ"‚‡µU¯ƒ«úì*êa#Ó«J£Ù³˜* ÷V¶yÀ7Xq™H½_iO¢‹±*™ +¯Í*“Àºf²4"…`±ïV:·C&TÁ­­äc +_«<3Öÿo¬• àVp½Þ’7øy«½´”ncXEÊ£Ú,®øÃ¨¥&VìÆôŠuÁ+`ü.A sÀuŸ.ýâV»ÓÍ!¼šØ·¼B +s8Ô+ýî•UŒóÁìoìè®žŠ¿êNæHÇú7‹åÙ±dðæ5ùkûþXៀ +%¬c}«DÖs=ó5#+„m¥Éz`ÇcâyŸÄZaò?kاz²~…–ÉXíçƒ.ÊRÁ¥¯’jÊ6–½ +0«¬"±!#zm_YÔQS,ÞWòŒ’ÈHd¡®h²‡z£,X+D…deú'(kY_—̳¾¬€Å8Í"‘𢠚EˆQQd‰ÄYº,nTC†r¿h|·jærë¬` F2ŠnÓ$sØÑ…è+ým/Þ×Yµ(Ëv–¸Òg¿³â±;ž6 ÁG¤¢›‰ƒŒhÃñŒgµC°#£ L䃙¬ÿð,3_ŠÈÚY¬Î{ ÏÊï7ޤ <‹ZHIFJ ¸Þaÿóeز±òpž5¤ Hâb~“™QpTãaŽžÇA—‘;ž5úÁšAÏŠà+:æG y”QLϳˆÊ²æy9`I¾WœvžÅ#¨(½YSW˜%t.?ϳ¢õDW¼œü>stream +ɬ”gQ@i$k7že/Û-k>že!1/SVEÚ|%üÕñ¬X¹ € >ßYÃËA‚\ád¬wB¢rÎʪn¦: !ÇßY J4/û€:ÖöM³ã<‹¸õ¥'xdè*süžÅXªœ*!j¶²DàYúŽ ®ƒ–YK³TÙ3A—ƒzN·ëúè­sBð¬g å;§„°~1ÉCÈüð¬pjJ?žEUC«Hßà2ØÁé² b>™Ú±­nð,×Aí,Oe÷+rKw°Áóá_Pi€7ÒËΚR‡xûzylYƒ;ëDž”;K#óg‘ P4;LyÖáj“á’´gqÓL[wWy2“–c`çËõl +d‹"ƒ0`o¨óQ'³â'×´*BåÝx8‘gI#v=4±c–gyJ`ò¬=é@‘geCÇÊÀ[“Pž¥‡KfÜÛ /Ϫ-˘¢Q¨ rVå¬<ëjïò¬„y“‰8k›$¤÷TRÀò¬­é1 ô5]­ó3ÏÚ´ðôð•v†žuM±"¢¦&Ð|BzV¤,žcu@‰D‹MˆþJ^zV¶¿mtŒRÛP㬙ϳ0½Ï²N_1ó,iß{¢…ÏSG/[¢¾+•©?ÏŠhÓŠâ”t6Ï҉ƸDʳ$KFe÷Ã\~x­P+»ˆÄ;ë-• šÕ, ãì5h´ÛW»\Þ©„ ‡g‹ +xåݽ ä +¤V²‘R¹^8 غˆšgŸóδa£2©±~¢¡ÜbRüßYð·“LKâï,ø³D&DKȉqžõ8¶ôL×O“/;úó R~XÜ+Å…S“îå$^><˧é™ÈwÖ ¢hwÞEÀwÖÍÜ0t Ûlh¾³0t[;¬ +!v|ZÈåÄÏwcZ!•f1FÞYhbà ÆwV†H#Œ4MGV ²wôÎÚüj.2Kõ»á€MUÞYlDËô£b¾³„PâãÎB9 ó)_ùmY‚.ªCb +ÏfÑÎB#3¸¾Ò^ö{ÜìÚÚYCçDÊåÑEªÝiI@—ö ; [¬³ b͈GRgÑÑ«ËÍê,®$NóÞçÖYšôêpÐñFMeÖYOXKèÇ„P`¨³ž¨™¥—°!S;kŽwèc°Îeu¯–b0)ì¬YéX¢x]g WàÕYvn̹é¬à [ÐYVsŠP(W:gÁëy%uVðÎYrÓ òG)ñEù9Kʸ’¿—®s– ¢Ñs÷)gUÛ=)$¢åtÈ­¼i9‹ãu/W–³ä*HùÉü ˆª±œE–¶ìÎ#Ž=6…ç–PÄÉÎ4SUQñ³€/–BOP6XaJA߯PÑT)9 ¾UD$9kï$ë ßù|Òön¢»¯EV¿—œÕVa+q`Ê-ŸO¸>ÎZ`IÌ8+é)ÑoŠâ,TAíÕX×-lq–¥¿J–ûT¹gérhs`  ΂YX99vâ,é¶…zœEg{î‘+E@…õ‘¶ã,ø(–Òž&¨Mg•¼èP£â_¹ß+V6ã¬õ Ø«Ùà°q–e (4tÞï;.ƒ”`•ÇY +£RT_#?=Îje-C0€Ÿb*iL<ÎÒ›«™yµê€^‘¬XÉövÝJ‰¢Áµ÷jÛpµŠ5Jåšœ=~°Xœ…÷ zÄ?ïz‹¶‹³¤žì&æXœExW`´JO6Îj¯.Aö é]Ú?ϳ>w ZÆYnÅ+Ö~Ž(5ÖU»ã,À ˆÔªEeœe’:EƒÓÁŠ¡”7³R¿ž‚ÙWÑëÃáMë¥Öwðý=¬É’o.‚£"˜d= + ÓŒ717ÎÊ‚“0›°mœe‹v•Ôf³D¡8+å¾$6ÛîO´q– +œäß]ÆY:Tp­OŽèKÆ8+l¼ãá¡íåwgÑ“V’£ÇY/8WѦQWÎ8‹»¥_JÃ}¸Œ³f¡×§Ç‹|¨ïeÞ]~3ñåeÙˆ+H¤ƒß«É*cŸ^Eã¬}‘EqV¸¯g=¼2·)v"½‡à]œÕƒ´d/%гDà›aÒpg!…r‘&$æÖ8K|SPìdœ…z%|ßCã±KG‚|cðÆY½g@ñT7|š"9‹$€øF‚¬\T{År®5k˜ w2ä¬#“2Wøù!gÍ›-ÅE±õ€Ÿ%Ou +°É¥äš‚œ… hh«ê]ãÐ/§’³p7j}§YÈYc®Q%9kÔ¯õüáqñ$G>¯àtP¨å¬FâXiãP¿õçWYŒäG¯BÖaôkÎziß»B쪰9K`jáϰV7g½e™` s=I:è ³ÏóÛPfýçòx@ƒWL-§—‚1g¡‚?Ü0g -›™9‹=Iœ½ÍYyÀ®9KÒJfCÕ¿sÖ¦!Øžš³€hRÁÝ,1Õ9 §ßͲ3Y#­|9Ø¥fµý0ë$ŽãÃÒ·^5!ãÍ©Yú¾cS;x®ù.mNnËfò¨ü¤9$DHe’VÄ*VKUúÖ‡·äõ91‰¹Ô¬L®d¤CKPØÄçkšy9KjDñäì ™Ô†­Í#pÌÔ,ÚcM'Ö,X$JøPößÇÔlúc-Y ì.<(Ü›d•HaÊ\²¢5 +”òÓDöµf™6“´§`r¸,‰ Žk,TpnðÞÉÖyÍšèÔù,8>÷ +A.–[&Þ¾ŒjŒ´5Ë # †G-k¡·wåüŽLpT²šEïúÕ4B¢`{ož©ÎÅç |Ír“ÉJÙàše0:Ö¬ÏKM®â«gÐÁeñ™µÏhI¼jV2G„÷`¹¸Ö}Øe5 dÃÝ}«GÍòó +(ùSþ%oœõ`j‚7_‹GÔ,ÌyšEzÕÕjI³ÂÕAf]³,Êf£CŸ“fl}"þ™Ç'¢gͱAM?•e#ÍRu&`5x˜Ø0H³Æ{ඪô…‰ã#3/œ¾2Ai–le?S>mR‡W“ФYUI¤Ù0‚™f9¬G½ArØiVY08Zoiqæn¦Y³ "éË‚}K‰¹I¤oË2k”Nø=V ÙÏ,.Çöù…}jV¨2*É©‰J¨Y»1$l¹—CÍ6T¾,”S³¶ïõ› ñÔ,dú×Ï6¥ MlzɄȇ5(j–°ŒóyÛE ¨Yl•æ´Ó¯4jVA‰Ùé +äP&ÇMõÎU¹C8 f¿f2q!>5‹pùU³¬ µ:¿º¢è¯f¹ßèñp;¤7T³€±,b³Õ¬S­F˜Õ¬t§‰Óî‚òôØY³Fœ·È>r'¡F=l“ämͲ¿‘ôÖ¬œ½ui:(NEך§ß]yÜôB5²f® +¨»èqWÕ,Å/ÏK¹@5Ë-}äòeDÍé§² äüS³À-¬òSex膲f‘hiõ\³†Þ*)|Ͳ•./³'ìˆÉp”>¯Y’^Jß±CEP+»fÚ= :epÇ@×—®Oº„Œ¤eY³Ú®Ù)Ó—X³ÆRÕDJNU³P)1µì©Nh¾”êT³¾œ'aí;Gf_ÍúˆPyc5ËÍ€ÐEÄý9 #äÀj–Õ–“Þp=V¬ifü·`u¹;AÍR¾Õí¿šXA¤fi2i¤º—Ô¬cðFHLy°5£—š54í´z + +ÀóŸUIÍÕWyE«K±JÍúÓp8Ço¸My†éˆ$¹{5ìX«:ÕŸ2,@Rc¬P©fÝÕÕxX³Žl„kÅ”ë2(ê^³Ò‡—]!-k–à+žŠ­š…0Æ=nÔÛT³ph?™Õ,,âeÒ¤ÖÄ­„:,é­fa¼›'Äê2ØL­še dÀwþ«Y3ØÈS€ªYpØŸY%<5K³ëåÈÜEB”žš¥‰wýsòŽ•Ô¬v@¾3LW Q³,à¬t˜é§fý—H^,Í¢m«#ÍŠ£;kƒTšÌmùÃÛÆ*ÍÅ­6È&…J³ln]bCø vž°G'×°F³ÞÑ\zçÌ¢YümšD”4Ë3˜<Â\cƒt§Y¨,È©oš¥2á· ëÔ¬áJãð½öUÄ5Íúµ·±°#ÍZ…»¹~ÞÍ‚)Í2›cys£D—neÁ¿ZŒ4k÷¼ÉÏH³vžÇ1,ys)ͲSfì<æ¥YZ¿q«%Íꢶª¤KÒ¬ºöËLšUÀ ]'¸,Í7PÉØÞ#J³–ŽÈŒÿ+ÖM·…Íašu$ê¾ûot @ßj Ü&Çešµ,Â\Aˆ/½’qÛŠËnMÔ4 gÆ4k}2Q¿Œ”Ÿ´Vaõ$ëÃ5ÍêÀž‚|ž‘9ÛÓ,¶Ä.â4‹˜ýß Ý6J¢-˜f]™”Ò%3g„5Çéín4Ò¬ûhF Z&ÃK³î’µrÊO|“4K±§,r+ÍBÞ#!ÍÚ;•½Îy€*Kš¡iYšÅ)LòcWƒža«¥ÙBÍú]ÌjV·˜(<,P@ÐÙëº4S³tàxÏ»)T+CÍ¢Ð@U•¦ŽÇ 7Z^Ô¬Z«3åÏa\Ñ1+S[wGÍŠ¼Öª¥IÍ:Òx˜2P|]ØK†¥$Bqˆ­5+È“ÐfMfÆõ™ž½=OÍzWȃjI7•#͛Ԭ|£/ðôT£S³Èø›-HÍêjj L¼vÎãr”K=Ü+Q³äQª1BYâk¦Yø¶û4+Q“¬J‘2!ƒ ‹µiÖyÒ4Ú4±kš%|ž¢/Q®ÚÓ,ì&A˜fÃ7fš4&4ñb‰·šÒÃ+ó𾤻 ¤Ó,Ή4åœÍ¸dšÅ,‹ŽŽfôš:Ñúýš%örDÑ5+fµÀi\ç]³¾Éþ±Y$ƈGç]³ò¼'Í”wÍ:×—…ò©œ'ŠrîgžÓšuí`3)»«µ+9 ÀѺf=Mäkp +ô5 ü/7ÒÐ5KX°={L:ÀÙ®Y x‰E3XÆÏ[)ùîÒt^³Ï([jÌ5KùDÙ–»³<”5ÿzÍZu·üŠn‰ç®Y倸NFwŒ¶f¥£u8«YSô€'i+æN°šõçhí%pÎ"¼ ´v+Õ,ÀZOSY{62$Æ3Ì_¡1$®Ð +.Õ,xW%0½R«YgüãH +â±f!TÜŠÑ®i¤ìš C%Br%E†‰kV~ÿ­Ï±D7×ó¬Ç¤±Y‚BlE-à >Ü}Yج8´eŸY(úã5ëò Ž8…„_³E9’)Eѽ×,yá–Mi³ªÆ$tQ–ú +^³.švrŽ­Yo.õ8¥Â5k’¤þWT Û­Ym7„+kÁ˜X6=2.Ñïy-ýš…^¤.Ý‹•y‹0Z®Y]¿èFSüÈÒÔŒ‚ÃÆÒuÍ’0Є‘9{´ˆa¸døWXØYƒÏRŽÀ‰0XlY«ìK¼î+^³pK:d­,6K¨Ij¿ +ʱËi/ZÉŽ$ ?e“©ÉÍú6©ÀÚâ+$—Íàž¼BfHfUM†£ eîR<.ó¼šG]˜ÉBÍÍ·y£ÊÍVà½ÒQ³ì^9¯³F“ˆKÜ,˜Îª¾c¾ûð=Ú8ïa¡^7KrO„TL,¤ÔØÍâ“—Þ¬sKÔ%QíRµz³†@EÉ·âãͺ^eÿõ|³Ê5 ‘¿ˆV ´±èƒ³4Ém ÅÃü]†ñ°¿b¾/Û…X% Éz ,÷ùg%ÓÒHµà¬Js[<&@q(Ѹ βTp8ϧ œ¥Ü(GÀÐà,¸ô¥èŠFӿО‚¢Ë +‘_Ò« Ïà,óRƒp–PIqj¸E‘ÛlN~=7Î:$0|¬¶ÌìÄ4@õåT½¬Á$$q–ûÒ/9±•šSœE$'Š’F·­‡8 N:dµ„~tùyœã³ÌŠKEg-KÆ8p±’FSˆ³tÈJ*ÛØK¤¨AcÅÐâ,%énšC}ënÎê¡0ï5害V²Ä+ ½HƒÙ«Ì²Ä‚I8ëÝRáÙº…³°ÿý^¥ƒ8KZlË!!ƒ-+Ò‘¾ÉŠ©òÓÏÕnÍ× ›mQqVHTÅp†°jƒ³@[åÙ¯ª$ôp^ï›õ–‹{Å º Y®ß,ÈG¸¬›kŠXÂ’Õé8Pö¼á•ôÍJ™ªîB ê£¬À + ÖÈ—t|³Ÿ cVÁYÑ«ÍgÎúpNx‘î¥à,!Y2\MÈgÙÇY,Ó׺`•NqÉí%1U ¨q–¼Û'ª)!<¬óÍ‚ªÞËWˆ³¨?§Búǽú¬iMžç‹”Š%q–àæãOoý-3¤n›Àk†€… ëØù<¡Ó¾Êºß?tfh{ž•¦#®÷müAzKœu{—ÅÉû æÇFÛýgIIŽ@c!dH»RŠ…šÄг±’x\lßÔ2gʚɈWÛ8nÖ1€Š7K«Û~³@H&? + V¯ib~Y/œõ¬YÙAÈÐjyĆÄY,\Gú8ËdqVž!Ûg‹³B•3ÅYÃúF„)¹8ë_ÃûóJØ@¥4àHt Úâ¬íU}Þ%¦óJºÊ,œuªÿÏÊ$ é@fÑᜪÊCú ÌÎÒgeKBÄ€‡!…h](Š&*Ì¢ÅcëÀÃ3C²bß,Qð0¶… kŸ…œÞ)Aê¸g‰ ’pYaPüKY¶I[oV>)Ï–›Î×DE¼!ôÍýÝ"AÉÀb@m6}³p‡õFÆu¿Y:“†¤›–¿žçô®0êP8Š2¬d*s毤Èp7WlÎÂwÉ¥{½åöÐ&]ÜSÿàî%ûy^ø·bpÖ àšR©È(D ,Îs†¤¡Ì!ÿÿ8k|¾ ©ÅÀ¤þVM¸Uxioš²›¶Ã8Kr晲'äz&ÔAäb!´•[š¬ugÉúX*lzÌÉ8ëW8ÛÏÏV8|ÁßW¸ Ïü¹aÍ’/@]œ¥ÂW(’|Ñ㬬>X\«_;Κ‡Ý;\~ôVj ‡³oNq–­U8+0ÕIý +œõ)pgý´óÍ"$Np í’§•^x(\¢p–´2™vˆæÁYš{|°‹G1ਵºxÜHƒLà ÇgéÊ7  …‹Ü]íMl˜*Ñe­³f¢^økÁY\¯Ûþ¦yÇWùHØ´N„³„‹­g?ÑÊeqI”.=ÛÚ 9ÛY˜Ž³¶ù†¢Ù~þlèdMÎú +Pø10A$9ëø±§¶ÞÜ4F 7r9 x,á± 2üjý|=¡Ç,Œ.¨Ü•µE$$¡ =J"ùnœ®yT {éÇ㬥DQ´"Ëš˜Z,ªT‰œõ=™Œœ¥lû¯Œ`Z"9+óÌ<'çË€*À">rOT„'Áh[Å\¸ÐŒ¼n[~*{¨XÀˆ†C'-\$gÉŠ 'MJƒÕœŠÝ“œe?E˜&­Yƒœ…Få9mÈY^ScÇT'ÊŸßwøDκ±6,Æ©éµå?ì™–œb½è¹›À#'/}œ&D†ƒÖp4Yå·OƒP¦Ù’/ÆYGxN©ÊÄü¶·HÎÊcKä; <ŽÑ‘‹«pΑ8¡DÎ’zûùªüÒ°?$!gíÔqzÅ(@©È·5KaÙE/Kì%D-\r-ÎÆEº>8…ír–x[ׂ+óeAMZ2‘ϳ…’솉Rœ³rXX&Ò lËYSD6ÊÁr– +hzyÛ)e\ȯœ¥P. ÞŒüãÆ¡vC60„¾u[œ P¼·Èå¬=™IoÛŸb*gm°Ð÷@*lI­ô߯|–ÃOÏ=#½ž|,ÈYßY‰–5}¶ÀãgŠTùÝ ¬EQçñ9ëÛY³n5ÜXÍ8K£|Ô™AR -vœe>ס}„÷w'•\IïŠYÃM¥8‡†iÖÂgi†ÚÁ â³F±2Ëôz?õ) ûÙ—¬Î¾!qïçr–¤`Q˜õÓã`ïxCèîØÉ÷ b IÐSžœÖp ôIçâï$û ·ŒÀ5è¡_rÐ$W²SëŒv[Y9ÿ«óµòH8“†) +;Bóhx%ŽQ<Öß©Y% ïD'T ­ÄÛ?ŒD‹†£Æˆ7³¯s”±¡;Šj-¾A2àÌ3ÍÁ0l]b{îµìÕdÒ?$89•Ä_GD,8ÅÊ=h:™€§š•± _Jýx2¢¯¯Z oÆKâbø½b É^qð;¥zÇS@—hÁãZH5…Ä/©Öp’–ªÆºBòý ³ÏTžð\Œ¸4+!"s[€k*§\u¶O$2±Üo¥3€ž&ïïãɨÅS,Œ]µµ”›ÎÞ I’Âx %2ô/lx*ýœ %…ƒ+ö•²"%M|WÕO±°Ôž +Ÿ§ª,Þ¸bÝ ÍŒ3f›…¡ØFΈÆûn×v) ¸&Ìî“}LÃø6£‹0þMÞÜý8­ˆ‹þ‡1"aˆüE% Aþ¢A‹ªÜ¦eÄ’Je°Bø#°ÐМ_Âeê`Ø2|ØDh‘øeŽþ0ÅBú2¬è½eSœø/gC~Â{ø=Õ3>a_Îà þœ¡þ†Ú\?f ºÏ8ÅŸÓ­†-¤ñ0ôÃð!„³~:zǵ2Œ0Û{1¨øEÈú ï:lÇo!Eúþ)lˆ‡à8.&$nGÀp4h?B ‡Àêá´ÌÀ ƒ]0ðÌÌô m|ddÂa;ØÛ$Ig¤dûQ ,®ƒÀ‡JèŽGòS#ÈzD± 3±…@ 1Ûß7À ûÄž}!BCøÈ0›ÜË‚d„àaD8¹Î>!¼†4Bä é%wÃÒ—–UËBxæ,›gSAt˜êBÅ(4~‡» ¢û¡A<™Í·¨Ñ‹!4f³‰ÆBÃ$„±Ÿ?Ö˜ £êûðg®ºm‘…ÐCÀ÷Cû± “Æ$A žwoABŸùŠ?mŸ'…bê§y±~GßÒÿžÎÂñY…¾°á_m”á_-}Nø†§:±üˆ®§É¾…ºÎñk*„/Ћ„wñ‹œð4Ë?H«”%„8M2ÎF>!„‡¶±ù;ÒüäöÊ?¤y~Ã<Ì=ʽ&@?ŠBù‡|ÙG!c†ˆ™kަýA¸?- ’êf¼¯¥ª ÿB1˜$¤w¼ýgh D„éç”ÎŒ-ªJ¨ØÀŠ·)AÆÊD–¢Ç ó™ÉåùÌ„3—|æÀ¦ÌGÔé†ÍC`ç z>òmaN&Š8,MlóéD$‘¢"m,Òf ‡æc,õ ²÷=°¢×Rö¦ !A«¤ÎÂ'Ì= ¢% j<*§&ÔFŠ¢yt(ª– +3G³/úð.£%²>\—KòG\w!…²ì}ƒÜá ¿ÌqòyJ'þœâêoXîçˆï³¶û!%ä/úF½GÞhލBgèÒ52ù‹šò͘ˆR⪄œv‚íÜ©¡ðùCD>¡ùC£"yP/JBaBiF)ÿ†¡èÛQº °ÿ“~„,+möÊ7H›möÂHB˜­"ñ’™²Ìœ½g1¦€k }ÚÄ3³àWuˆå ­\Xå^Ù '+Aá!4Áæ»™ZlØÓ_Y*H¾v®´±†LÎh­?Ñòr…ÊC¨å ]ÝÐ(XŸó!h `¹t1 _O‘?4ÖÓ©\R†Ê +^PðòC4D¢!øU§!Xž?Ã0aŠ·Z¶õ‡y†.HhL³èþ(¿°_SFÄÿѦúÖç0( +U½†x”JA2±lü䃶?„çßÒ1‘ÿ$;,»ø53ÌVñÊÈ%*ߪ <ÖùlÒ2ÔçŒø>Ãwzè‰?§ÛNýê ¡Ü† Jåúa(þaØŠ.·õc¶¯¯3@¯s(SOa_ΟþœrzAû=£?1|_†¥ßaAü9CÂÍÎÍó—¿ÂŠå?Âqbdà,0ȚߣÇ0‰ñ¸1DYxÖIÕÿc¹óoIÇ癉HP £tæ”Ë/2ÄÈ‘Å:ü|¢×w.Á 'ìþ>8Ú?”&ÿ‘a>H•ÿIþ ©ñAÊÕ ùU‹òáÿ‰™å$T63šÇ¸Q³HáB†®ðG$'¾²lɰ–$ÿ(ÿ––7&R–—ô_ÿ‰†’äïòŸ’ü]þÞ÷ÇäÙsþ‡b‡:÷©RÕ©24øTCð(B¥ŒMCc<,÷îÇŒGؤƒ +‘†Ñ^ ô ÆRTyoЗû’btîU¬ˆ4LÊIº<®Æã½áèë%ê÷]'Æx Jì1 +[ðF¼A# "EäéF–†H3ˆ{Ãm1Ë7éð©3<¤Á}—µÖî\uáNºr¬ZCm|ònScHU:¤ÑQ 1ž<¤1UßwL:QÔ+{ƒN¾A‡+…4ät'±ÈF#6 õ?‡©cg_bHÉ[*ñÂÛ^Ÿ! „ŸÎÒpOdHc#@ƒÈgcH#½ÎWiÉþ’ÒÈ¡B9©†ê„Å$ÆøùP£Á­Ðð†2K àWzØ›5×(ÃtµË¤ç âJ8rvø€‡4סè“VDçñ`z1&œe­Ê& iLþ…™ +à‹—h‡pÉßê8nxžTE”†p_pH;·%Z5´ž÷>ðØ! ‘_SAÀݺtÃpäŸ!«üÀ½ÃÒÓÀÇñ¥(¶fþÊþtHã¡Bà„úÙâÒØYU-‚`Ôç†:‹&ô‰p—òÑùnÒÐŽvÂÛÂ…0‘!-ƒ»Ì½!ާVŠmi i”vÁ€› •­|nXÔ=D`ÀÃFZew!‹k2µ›LÏ\õ7ÍÅHisHMŽn†F‹÷¹ÁÅhО‘e ©؇ +º óè ŽKÐ#}Œ+T^þµe>7ðÏ쓤±Žºx\ÕËs†UŠœðLPÈcF Ó•üïÊ ÒÀªk CÖ +ÈiÈ|î€#"hmœŽå†Ž Šå†~þõlBƈTÕqÙÇy–üõ0ØLA†3„€¤…êÏ+SAíp×P4ip;²Ü°Üšû µ·½¬'( +p`Y#¡]–˜}ºAûÊÒ(ˆòàÎleAü‡Ç+gaðã³ï@ˆG¸°Šzý©d)‰b—¬Å“Œ<”åšìiCV(?›#å@ñã=~4È\ÿBs8g‡Û¶ÜP$Äg¡ês±Sq”Èr*RšÒ¨g”=À{dZË ÷“äù£pmEª7NW-7DÍnªÛôïnZnèî^Dæ«îGÃñáQë ­M§Û½ äÿïLøGCøÀÄ ,ƸgïýSvÉʹfÿÑNJù¾6ŒðGCŽÌ»Ç‡¸©kõ„X€¹‡Ë _àÖ™mèÛ´Ë E¦,Æ·hmê?ÜÊÙº1˜ˆ+lÊŸ4qû33ɲ¹Ü°ÄO;éS èÊìó(&i‘u˜åLÃæQ`ã,Ç[K¶ÀÑz>8n(BäZl€4¤¶lâtØiˆ¯ÍlÌR˜EáÝhÁÎñ.'Hã— 6Y7n8Fbp\„TqDƒ½¢Ø 1 ‹ÂŽJ5âК±¤±¼užn0®=À9ØK•ÕÔµ¡ZÏ2»š4Ò¸~ex(§Ú°u X§µK¾e -‚Ö(Žƒ.÷ø²œÛí¦½¿ß»ñޤ±Ò9¦qOv—F†+hœþÎŒ‹#÷³i [ +/tý×Ef&€4 ®Z(€@N²E?ÚžÒy¤ÿ†Ä ¤á϶Cd½‘v¡'v€ãWZ h,¥…={§diÜPöêDɼ©(A¼XÚþ@eøºžaƒƒöîrIyH§ôz7xsh¤Ñ-M +ÎÉH,ª{F Í Òm©€È™A©itˆ/Ch8¿‚4îI¯žp üêÖZÆM£dˆè@†}-­º=‡³h/S´+˜ž{Â]IÈý[AOìü1ÕŽ‚48)0aQ'Ǥ–ã:ë0ÇQÉšR—mTX²ž +”ÂáiÐGॼ~ö]ïÖÒèôèú"H½ÂÕðNÙÒàÍðSOþ iœ#ÎO–ÎQÝ‚`¾õ–›EφŸ~€–a•!Y£"!‰Ëõ@(ŒaH8˜Þƒ÷ +©vMã»fHc—7 VÌúCÑ i€áŠÏ(l†n» iÈôqÕBä‰3À'°¡†2N†ªÒ(HL|æK¹iLHƒë"‰Lá#íBÒ+¯YÕ},tŠÜ‚!6\ª±3_ýMC{;cöüm`_A†ˆ +"„4æI,ýZ†e% iMŒ˜óµù™…4’vN€¿—[›`õß“– il}§|GBɘB£$Ó2ªî!"êJH£T €,#ûLcëñ4ô‚Ùo]v„!¤:cI¨¾¹Ô¾È \§pe¾wvÒñ‘¡*V†DœzŒÀyxç ºKŽ€åcóä8ÐAdžÆFq Ò(4»Þhê +aÑ0 ”åÞ!W?HãÄ=‹Ô«fÃÚ´YD#æ,“ ÁAHc­™Æ­9XpÄå„4¶K#öçT?! ¢xÄy1À9õg|gè6ê€ó=Éx+!èÏ€@óT©ÄI" ï,ƒi°Ä‘ÉѸÌEz"2‰·B?¿§š38±²Ö>G|8ÉýQs†€DÁZ²WŒ|sõ§`7„4n»ŒØEN„4˜Ü žÆE¼§1H£Àiÿb ¤‹Ò $ºÈ,pi`všdHoÍV ÙñD{‚4DÙc ƒÛN<…UþrÒœá¾Ã”¨¾L+NÑE¬6HËþ1ÚWxR AeÐ*Ò°f8’ˆPs†EiA‰-µ@O ÊPꤡ.vËðix޵¨ +/çËb¼˜h ÒØª-Vοӆ`Œ€n#Ƨdl–E'¶O];FO@w ¤ú>I¿ùPÇè Št1m HÑ·J ÑüY):¬nE ¡C¼ÔeûÜ­dÎà?Zþ‘qtæ ‹ª¢>\ ·+sŠßPò”̺ûÕéµR†ì²Í ôÞhÎHƒ|±þVÜ”0DžPsuÃ@_‘`5ÈÒXš$èèоyA^ 2½Q˜Ò ø?—õ°9Iúqqå@»©ÍFaËþh”„þmA£X w¯f÷Q +‡eÎp©Eâ!zøhµê"†t¾Ã_¿=@3g¨Îè{ûµjÒØ7Ô ‡<~có4g ÑVòYKÊœGÃÊËÍÖ‰œ!ê€ýdËÙb +ú,—G#Ä©“˜X×{£.„çÑÈ«Z¡áF&QÕFÎ`Àþ=xmQÐ6[‘3ˆ+N—<…D“k¥¸Vv:Fzº#ýÏ\Ɉ‘3<ºtƒDàþ£/GÎ`Ö0mëÑØaNyp…­Þ^. ÙgŽš=0PßÇ î¨ÈÅÈîÊhhL.Àù—Ù àžs bè 7SÙ#öÑ€…ˆÍÙzé£ÁÁ]O +jó|l¤û_ù¼TÿîUÌÿ:Qaï£117BÜ6¿ÈwõÑí¬ïK8:B{š:VMûhÌœa +î³Âê|4îªf‘#•h‘MÖ@²ï~ÙÌàä®Àymи'O“l» +­Û­î1±U\†Üdäž„gÜPóüHñô/d µ!í_‰öGCó);€€ŠA[Ì07ÛGÌñO4.e€°tF€ ‡ïËPÔ¤Çm¤¨$´Ô‡ ÏCGPRcˆ‹Ù-cHõ êµäáõJRÆ0½Ðiö?Êÿ¿æ\,¡ÇÍÀ¥¹PNK|‚äe(àfã®>÷b,ýÙSî©,Å2¬[5¶ Š…÷ŠeXƒ~\ë.‘vÎÕ>úƒ§Ëp½&4G°ü¤Ñ“]Q,CO‡0o©° ŠNGá + }ð+}½}4ØšõñõÑ8 Y@ïþ 5ûhT€"Šó(”C‚™Q?$/x y*Ö¬d\UG -ÁˆÑ&ãRÒ‰Áäµ&<ç·Ã:qƒÉlÝ[b)­d{’E˜øïº”Á…½œ,S@ã)cëðIåÇèFô“)CmLxú“þÿ¾Î/ ÿÏ«)ŤÑ@&òt.¯D[ä9û*òÂ8‹…ÅÇJHWx‹)Ò2e ècA :Ðç<OÛ4œD•òœ~ +‡†-à¦éÓù"y2pÑÄ? ®Sô.ô§œ­(dÊЉ~ÉožJ[ï‘~³Êì™k“ΔÁíž\îû-]0îâÛ—)Ca^0T¹›)ÃEÃIc¶-D*>H0÷iœéêjY¡ZˆHÃÝ@¿é¡…+¸ZHC0[`„Úˆ¿&ÒpZb1Éä°¢BF•f©Æø\š=šžý²õ*”)ÃÅ^>…F}4äiz>»™X“‚µâè¸tÐê3MÜ&p-÷¤Èzœ}ÎGCôéwJr²Bá­òѰ˜ZõѰSš¹° _bΣ/òG—)Æïß(ól‚ ÿyFúIÑ”aýf9Õç¡*ÿÁ“ÁM@µÚù¼lýGCЉ|£ÆÓ {p,D ³¥)C—ßV>/,ĉ*õFs”š +Š&TW"=+æðÆ WŒX«ýÏš2h Fº9 RýGã¢JøÑ°ð¦±”µ}4FÆ`/þùhx—Ç&¬~fO{=3cbÊG£‰¥„쑤Ӕáú0î”i­8ùh)ñ³å6zÄr…呟eªVžj¡)ƒËff5g”=š2¬Ø]¸Ç}êv¾Gã6˜ +Ç=vÙ=úN(ï¿0‰öhð’@·˜‚ÐÞ£áèý÷R-Д[ŒýŸ&öë—§E ÚF#{4pìud¾•Ü1¬)C€b噸‡©”=_ +ÿáho†ïO“s1§U™®b,À Oõª5ëÛ£Ññö¶+I¥Xã00rŠˆÃ™‚:ORwõh\“rÅBFºÙŸÄ“Á³‘pð鳩գñ8iøvµú]½w6Ö£1q\Á²ªsÀÞÿÔ’ávm¤¦WŠÔ’a¡C÷f–ߣÁ1VíZtkÉíO rJIבGã,v.é¾B2ÉÑ&òhxË*Z×·1£ác':çZtR™P'Huñ–;|o AÄëie™iØË*­ÁmL¬3ŸÙA»²¢’|#I†` 2âIƒdX{&p ™P íX921³¿I02p㧉g Ã8Œ sŽn†Z›ÐSÌjuçƒØHÅJ×-ÖÝì~ÔGŒi…$¼5¬GãSJnaÅ¢q…äžÊأѬ$Ú‰d„³ú9¶AàÔòj12è^®ºm”¹§¬Ñ®ðn‡~!DÄÈC%°$ÌGƒ&tï|fJu!lo\\%Ö+­„bT#ȵ,Û‹@ 2W¦ËqD³;²c¯Œ “‹ýÑ*ÂÈ`êÂ]´µüÆŸ€\½9»ŠFvý3…ÙÍ^½©÷{ áh‹òÑ@ _ýÈ€‘@†©Q¼;ŸÙnJy3å£Q¸ßs= ‹9Úùh|U¶døûÖB´ÄGcwŸ7z4N•`À×oPA‰óëÑ8"bHÓ )… kÈÜî¡ +bÅ1¸$ |åþNéÐÌH¹MÏ£!‰ÀË+™„| +´ZzËÌà éâóhŒÍ_Eaý°Œî3tg~Æ@ëü´j³['Æ$§!g»¨7Æ®‘e¼ì›Añòh´€.÷vS~7%b¤n¨éÑ 4èâ>«°AÅ=ZŒ¸i2ì÷ƒ1ëÑh5P‘¨+†.}WšÚ¯8¡ÍòsîŒäÑ8Râ\L*T”@K<úýb7xHcJ †˜¹®jÝ÷8 ±Úïj­Ê†F$Éóhˆ×£Á°´Öv0ÍíÑ@Éî"Š2ÁŽ•‰ZÑrß<3ô=?m=¾ä·Ê´ÖÕ™ +}×§´Î½¬m…“ ¬µ¼Ç8Xý—Bƒ*ŽÆ¥%D° §'§+¥÷îY~^\ôs ¹ÚïWÊÆ ÕÀÖ"^ã³^[É µÅÂ;•OÖ7u1•ùp4 c9e'–. eB{œ½š\ T¤]XxJÉ.8Â%ÉÆUdÕ—@0ó›CD¿(nCMÙ­ ÉO¢¦1óѳq/56HÎm»Ñ°<·}lG6‹~n4¶d$(™ß +­ÆáUÊvd¢X6͹ïp-#a!ÆÔö»!,ÞF#iÁ÷F4„‹^¢n –'ŽCžá·7 ëŸ@ÍBo4æ_ÉT† ÀÄÒqøkPôFƒ¿¬ë7 þF£ƒ¤÷®ëõü¿é T節kåiÛÒ"l°·`&ßÙ…Pã-,Yµg‰}WuªÝB1XÔ]˜d«)º…¹æ[Õ™Œj¦ Š w!耠lØ[è;ÇÿGÙäSMä›ò`‘Ø)sÖŽÆd6~“æ¾ÑPž¡U(#S3@h·í8åí y£qôv¥Äè'"”Ý?‰Þhøp0à ·¾¼[‚£1äçX§ŽXã(—_-«¾ÑàÐŽ9†ºs$Í×o4¶èÜ)³Óç¹Ó‚Æ#*׋ÂÑØ¦Uˆ¶%®wÐ\à`ðH 6»3 +gýýð³2÷ßY*ކ—h‰¼Tm¯âÆ/ƒS-Èg—%`ø˜KÅÆRàh¨xËò|K|òßF³ «[ßô‹KUFÛÂÜÞ:ñ.ÈÙÃ¥Ô-ìѧ¶a>Ѽ|]°ŠÇÑ8U0ÜŒr>¦•[MûÑ Ù¼LZ–âÀlq4~À\ܸ¥ËçÚý/:Óãhõ€°òZ»Ÿp4‚¢“r_zhYŸ˜£ñ‰ü•ŽÆß¡!@KC‰Rv¡œ_s&r :ÑR§'!Ñ ?p}G#àÛxE{4’ŠàKà”làÖ努ÂímG¿Zøa­×ü„ÒßÎW×,†q…dtí“Ö?Ú¡â‘É>cšDæÑp +Ò£¢¨Oþ + _ z»|KØàW³rpRõ¨ÌÛÛÒWRcwÏóüÂd°AGƒ$E"Ì+,€âyx…"»Ž‰vж-ÄŠºã¬@Yú2sEÔ® àãó7.\?WX=–[YÌߣZ®p:ï†ñ¸&ýí‘üZŽGãºô~¯É˜÷ÁW 3~ÞÑàêÀ÷ +ÎÑŒ1Ž™¬xóÙì¤O$â*F†‡[IúýrãÓ1¯ÈæVp‡(k—0 ÷·œ[¡üj fA¸Z 4£<£´¿VØt¾£Öu BÌ­ðµ"8Š×k§‘縋Uã·­íhd7U*R òC…¸ÝØ­’îMÑ|ö-‡7r¿uGc_¡÷ÙÍ 1TW™E®Õ¼;½B)‘ ¿D·UŒ]‰«Éù˜i ÜøÒÔ&\ˤ[¸hÛŒ•|{´~&ûùt+PL—þ„‡Ç£qFéâ"®h‘÷‘G#išWlX¼K€f¹6r¥h ˜Ø89 0âòhçæ™¸ùŒÍ®eKÏŠZa…ÊÉ!Û ãF‚`›æ%οs̨ʧ_°F­°üP:ò¹Dk›GÃà_lµBˆ‚íp®Xùv£3»‚©`h +b¢Vå·ΤGc>©ÎïpRA­ðzŠFµB´CõYË·j…è“è1†Qb=ÐƬá³Gc¥mÃ1¼ ŽÖi‡›ßû ¯{4RëѰvíŸêËë>ŸæÑྡྷêXòh¼…ž.¢Ì8v(ûj…ü§Ãô@­ ‘ÔQ†…Z¡(8ÑMzUxÌð.»µ‚#&ÃQA­€¦AbèE¾8ËÑÈv=“$¤†•FŸ™§üëŸçê<.xåuQ< %©³ØR!v†È‡Í‹ú´é_ú0ÓdÑ¿„p ÑO+JàŽåOÆ­Ôfjh¥Ø--Æ÷>æÑPËñÐÇK=Æ;3á<â€jNÊ#Ð$äÑp­¬ÃwZ!úLFFa/)‘‡Ñ£ñmÅNܲM+¬‰ZÕæâÍ£˜ˆý_©ÆK ,³<’C(³Ö è³•g¿êkŸsØ›VÐ¥fyûÀ³åÑè$°e0=Fá–!ÚBþóhäg"ÚdÊJÀM+œçté_É<†?€ ù¸þØ}©ã£–ŪóhXð¯j4Ø +…#€4­€¬¡!Àf>ò±cZÄ£ÁFÃÕ€|i±÷¼¿üþîh„þ¸ôÆMlqGw4„òÒY¡$Ái÷Ä5û>Û Ÿ]LU¸„¹—IŒ%Sw4ˆ×fŒ®ÏÓ˜z›iƒ–ÑðgC~Ffe´åÏ$0Bp0cÀ \$`DùéÐ9+î I%À '4†·gؤ…Ùoh`ý_\ùÓÿâý%Ñ€2E[ïqÑŠ—ÑÞÿűÉ8ZY –Ù£É!íÃF!KZxû¤i…JKÿ_œXÚ §Õ +{ì¬þw˜V\fÚ‡de·ûošßF§žV>ÍWÚÖ/ÔB ¨IÒQóø_pÁœœ¤I-ö¿Ø’/µÆÿ" +§öyqP-û_üÿE.P ñùIª1–ªå@.õ®IªÝâ˜#UÛ®–¬OT™EN¶j#%ý¿À­ ÜV­•T-QI5i…`Èzú¿ 9©…PmËàú¦6: ÔãRëuЧã`´Ô¼¤ölU¨.5Q}–G0ôÛ­Þþ•åšd×dp‘sü ø{Î_dníâýâ¥öîü¥vNý‚¶ü‚ ü‚fî ö…ըŜ¾À÷|AQùa|áµ2øÂËQK½ŒSÞ n~¸¬röÖQ»ìõâÀRõÂMj…é”Ô|è…™DŒåG~-™$µ«ÔÕy1[jó"› ª,¯Å?^Œ-^Œ />ÕµÃ%x¡±9ªMmö]œÊ»@»¦¶=ÞÅyéÞ}îbš·‹\­]ðRµ‹uj§Gjµ¼Ìššt“ +ë‚ËSrO€T¬" “iV¹›Ú ºØµÔ6ÏEçÂ%©g. ’šçå­ʅÁäbÚ–\¼KM…\ rá~ G~\\W•GØÆR[{ 7Õ6\4Å.Âq\Ô.’‹ÔÔû±R«äÞIüJ-(o‘ž»EºÅ’¥H·x·Ô¦äÔ¦†À-¾¦v·-`¹¶¸J[Ôp¶GSC([|5µs±·BJÅ$[¬x- +K ~kñœÖ±^–Ú˜µÐºZÌ©ZôºÔ‚"ÔbVjVB“Mí7rZ@Y-AÈjRíZù +WyÏÈÈOòa&|ÒâüÔ´G §V´ ©Ö2C‹È°][šxp …U«–æ³àMð,RtWg‘­¶‹×,&Î,TmÌ¢¿—Åš­FZËUÁª, +e`²X?²8ÕÔ²PpïõXmècAd5(‹»­6ܮ漮Fõ¿Ú–5Àûj´§sµž…ØX«a|¡ 擵š_DtµÊIßWûkǰVlcѱî“ñÇšž|ÉÆÂ1íQ&ÃÚ^c‘}µ©|µ¯ÆâÖBÖêÚ±öüÙ嬱PÞXÓÄX4Y,D„Ir ÅB˱æL“Q,ÚH,ŠÍÇÚkÄ"ƆÓCÖT|Ä¢V$± Þ°0íÂB-a!Ðf{Çâ-k0ÞÕ‹`ân%X¤,k'${kcíXpÂÄ_qó&Ìû +©æ+®Ý+j©W»·©=½B–zE ñôŠw"¬™š¦°Fþ¨W„tTxtâñ¶®# Êø¨8ÇÜpŠSçÆYT¼¡Q1EQAL·0C¬ºQ*¯Ûp ‚žÝHÿwûêSÐîn{ +E×SÀ['žN¼yÙ)\— Ï÷I9oßqŠöÒ÷Mq®·¥6‘1kËí{ü;óv–¦¨È7Ê™â¾ÉÔ´oübŠ?~{S°ì7$0…½þfà¥XÿÛó–bà³ûbp#»zT \æJBpäS)Þ+¸Q¥~I)^@)*½IATƒk/)°]R¬øàpI +ƒ#…Ï)ø<Âù‰û- +R(^ ÅyᄪÍÞEƒuXò„Uâ‰!à‰ùîDýÑögo;ÁÛ Ò|“Wá›-¸UoFkvku´:&Wu¦b'ŽhìD’¨Ž´ªN¦P&;¡ºêjUu+ñ±ò¤ZÕµÌɪ X`'êàª.ÿ„°‚TGïëøGuÏ0š:؉Jm€m1›º„ø«¤î¡WÛI0ä$X:êù8‰O›¥M“HQ&LBÅ%1²Q䦧g®$¦ð^J‚<‹rÇI"ô0I¢L8ûÕI|×£žê "¦D¸Úõz@£‚“®gñ!šè!ôï﹞oBqÕÙâ&ìµÄ!Ò½¬ÝxÙãɆ¸ýìÍrX‚Ú»ó¶Û+s!‚ºÉc‹1èYf}°Gõ…8\݇°Ä»wçsŸ÷úž ßûe…øó{TðYBxõŽñ ñVðñ5!n‡°„8qøH’×´âp¸ø3¢}8¾õ +Áä›bŒJ¾øüAÜäP"áð!vA7ßqCÖÜù¦-ÛÍ +‚\AÄ’ôÝÇ Ž7}i©Ïõoõ¡µ þÃÜÛ4v!ÑKë×ç’‚˜!û6A ¤}÷$ˆÝmßZ±÷]A»ïåÃâÂ3¼ÖǼ@¼¿U ôû(WØÁïÐAqðã1 Ž7 h虂²E ~ˆ>R5€!â7#ö“/‘ÄÏ-@¬qõ À™ð+±ÄÏQŸøõ+ü|±ð+.Wy~mˆ`b¼~¿þ +ø)Ò.×9Œàm žzý€V.c%×çÂOèÿSü>4Ç’ÀéÃr÷ÕàægDÿ!Œ€~Õl8yÒÏ*Uêg¥*[?Ýœìçzþƒ+ÛõUê~öä?€ÑýX¥ŽË÷ûéùAyøM'‹äom­ó€N®?!ÿÁßÞêÖ#âo¥L‹t®‹ó²„;Ýhú:ôRÿ¡ ûyñ?ZôÊ {h@ÿ¬BFc_Ѥÿêó ÄC€ööd˜€õ`èã´ne€ÖƒJù È< “z ÅøùEà§JùÈÛ äkSÛxÿÀGFPÕ4–84x#•F˜æ³/A'ó¸,B,Šv 5{ æÿ +‚ãI•ØðÞ'·Gñî6Á&ÿÔOPÿÁ‚ ú‡'T¿?4~‚j&([¨œÓ—™2_^ºO4ÒÕƒþx3壎ÁÅ£A)ö(·S5fàœ"òvBÁ²2é&È$ƒü¡Ìí]À~HO?$éÏ”å‡Þi…dö4ï}¨mÞ‡z÷ ïÃíôàf8Jª +–> ,ôE)çÃW̉N>P~Ü¥xc[˜=¸úZGž ¡ª{Â=ô‰í!ö6ö0p¯‡xZ!û'/‹&æ̡҃‡‹Ÿ‡¨>uÉ ŽÎÃ|ÍMSbx²<  <\ j./ûx¸s¶ T½ÅØcx ¢Šx°›áásàÁ·cMedïР ïSáœ2¸´;” +Šî@ +@îpKÁþ~;`ýIí 4œ]Š£&áštdÕµû ›;­YÊàöuN't†®âÅ÷³×:É`ëðŸÕV‡ì©C(F¨d°=T4d,a¬tHVép +é°YÀŒôð¢YÑH6ŒS~bÎsVçÀÎÞÁ9ýæ`Zs`‡ÕPfH‘Á•¤A‚óÌô8„<3¨Œ|r-9pn :¢Ãcðý#ƒÂ"ÿLe&ä°ƒ~ƒ¼ÃáœÆ¡‡Ú‡'/Š8Ôx8Ìf8|Tá0 áÇàðâChÀáÜ¿!ò¬ßð«}CH¾áz2hooȤ7D8Aõ«”Á¼!òvÅ×Ú„>¤^leB´1Üï®®­.M³î]7Ø0UÂ~eÃd½I[­‚·IKQ0or2H7"Ì#EE*ÌY¤ écô +W‘€èè” ƒÔ÷šÛY7€­*Âz9~"ƒt®n RÝø·l ©’—†^ ƒ×A›+i­®ÊŽA–+³/Û¢`‰ºAè1ˆ¦c°¢1(c ªð/€8:LÝÆ¶„Õ p8*ÅPL‡ #ë†iÅù„-Ž|˜uó<Í“è'“ÒÜeÿƒ‹Ü0.OÄ »x¸GnP‰7³pCÆ<“äÅàL1xàÄ n`õò&/b0ÆÓÉá©Â ˆÄ0ˆ¸–0Ø[a°ÈêS˜p¬ +á§›A„ÁnèR ¾I7ðתf +7„±Á þ}Qâà BÒÍ*$‘«YÂ`K†¾lŒ‚Ü¿¤ ƒ7jKAT†9ƒAqø|¸ÁÔ(UˆsP W4;Aí†ʩƄ Œ£\Ó_²qað1\–ÈP—t%nØTO­_Ü€ƒ‡Š^Ù`0"Š6J‚C© n„A˜·!Þ‹or2Û²lÃó¨KíkjCYigaÐmE5øΆúe&èHŠ ÂÄ… G`49`4„¯AW¿kàéæÜýÝ`að¦Ö°[Öà7 fâeîKöû„5 r5LVÃG§jO ÑJ iŒRÔ JOÃÝó4”ÁÓЇA|Óp¨™‚_0¼4 «Kæ.ˆ%—¿¹”†—Êì,« +& ^4 ›hh:—ÊK(l·;ù‚]h ãgp¾gižA¤;“¸”ÔÞ:î ¢*g–œ!oä g°]Ø*î.˜º j¥Ñ þ^h“G3Ã³È #b†àþ2 ¼ ì2,Û2d%˶•ºV†é.QÞ.8FÊÀî‚ØOÉ6Ä– <^PH2Ä#ƒÞÙD†ÔKdp‘¡avaoDÜ1ø» —cˆ¹1hœÆ@PÆ ïí‚k×(¨` j킜ƒ¼d/¿9B"¨„­å;!a_1»`L1ˆD'†%%†W°ˆ!] †à‡‡!ʇð$h²ë‚îð«¶=WNŠ¢ Ê +Ãf:aP‹0tC{ E)ê š÷\;×%0&0”Žü‚€¹à‹oº ÊÏ_5Ç6La6‚-Ã@ÚZ¢þ‚™Ëvx¡K ú 6ô·F…ù Y\´êòäÕn» Gƒ×ü…QÕ/°áž»à‡]Æ!ì ¤¯¶³/PÐbÂÎ.X]PÆ&º Ëçù /¼í‚‚|þ½ Ÿí…¤õBI°–“^ȵ.È~’ó™b»`8zA£*7-wï~hâ…à…ãîBÚ]PÜ.­ÙÙðuAÙ낵ʈ]PhÞ»àñua;° êÕ…ÌÙ^¼ Ÿ0O8r|§ WǦ E׆n¤,Óí‚ ¥nà;]pŠÿta¿™­$NÌ՜μuÁD]˜&“;¤"x»ànÞ_© /ˆ¼ï‚ö›ˆºßBÕ¤.Ì—–™]jS6R&CêÂlp]0ç³ÙÔCêø\pIâ;Œ\°®sÁ%]€¥ Â7¢.ø].ì3µ®tA渄âéÂ,.ò-xã[`ÎÅy·Íîænº-”Jma¼lá¢a ¹Ÿ ŠØµNszËZ(R- jÁ¼´sÁ¹£…í…\|shªYL³à³ò+ Hœ, AæÈQ È K*~z•>Ä Âñ`),88ü ÎW@R¯@tA–Ã+œöÖvËs…ºq…_{+D´Î\Ðåj…-’28ÊÕ¹àøÐ +4޳‚Õc…4à +=$ë«02]Œ[§Z¤° +!¬ +íë‚̇Ÿ*”•)£ +TD{*I +”)Rˆ +¤ŒGÁy£0ٌ¡ ªê¢ .d¸TQØ›‰ÂÒ Q¸Å:G:LÆPȆBò„Â’…%ÚA!GAaH„rÂ/Øk P8çO¨„Ÿp8Ÿóžðyõ„Áš'œÑ%Úï(¹IR ¾RUãÛ@†!Úb‡,tÁQwB\uÁ~w‚Þ?ÀpžÚ¼ZÜßp¿D›h· ²š‹wÂDuÁ’Ûów´:Ø;ÁwBÌM;½ðN1髃4Ôò‚=½ˆYŸùN@ à_aØ;A‹®æÆ/XÞ¹: Âî„ëØê‚ìÚ:6 òNèS]0»šŸÜpS« 9 D·ÒV[/€3Ù©* ˜wAórB8ÍŒóŽÊ]°)œÅ ßɹ ¶Ú„íaž]ÐX OìMXöL˜i&ü:Ë„´#ÐhLHŽ˜ðê‚J LP™·ûÿüÄ_ÂÕ×KPDoŸô„uA(‚ÅwÁÕþÓ‚ÿ¤™ƒ|ñé”úªK ˜̺^PÁæñ\•]¸‡Ö%±iˆ\м ¢K0‹¼`²AÇ]P;—@î]‚Ïv[žø¦K¨uAL(iëü#Á V¿z¿ Rî€Ë.aöEåí‚?tÄ Õ%è,ÓÏÀ Êk]B7vr^Âè.˜ö Ù%^gêxA\—ðßï‚Ç.!}µû6 8¾Úþ’œ-A#Z d ÅÇê«LPl+/ø~ˆâ{%\Kl^ ¶Úî&.¼`ÝìJàÏ òrSRWB/¸[àõ‚ÞGµ0XÁ»8È®Š +é yŠ­®\úò›ÈÃ/H¾Q^ [è/è» ªz%è­ä«”Û’D`ð×I C评'KÀ”‚ÁŽÍ` ÛÈoNa ï` €%¬+0XŠƒ=  áK,VÛÁ âý ƒÿ+aࢠFX¹KØêeÕ ëÕ·´– º+ŒX-O"*#| ­¸4îvXBh08¾’K0HeñÀ`m] !êåo®„0HI±¬ÿn‚¨ýcØ¢Q(4ËKM­ÐO ÷K ÖM°“F ¸©ã4L(¡ƒí ·%Ì«ƒƒ¹…~F·¡h‰jZ¨$Çɰ¡„¥²¡`äoˆ_Ð{$,t–^“‰Iˆ¹DB<ÂÆÁ`‡‘²$0Ò_ÈiQ- ø; Øô7O‘%¡ò…%¡¬Ï¾’0™ˆ¢³ðÒzPÑ#Áß`°k$Á Y$xH`©!áN”TÛ$ÐãGÈ*|"0ç@À ½#¼¿à Ոϟ÷§ŽÐ`:Bþ”•#$kWƒ#hå 7Âûa +ô’F -ÓÎepšŒÀÿ‚PŒð:d‰@æBŒE +B˜“¯@Bçäð š~»à¶·¿ È"¨¶"XÏã¶•^!B'‚òKB“2ÜÂ/xGa–bŒâT_ˆ C9™¬†5ÍÃÒ!QUrç²å…0U‡ða€ ¡ÿ ¡Á•Z á%ðBÈ¡/¨³’«Tý‚DÓ\ÁüoA`Ó…CUu„rpñƒÙ:9œÂa*9Ð?|Ö ¼„ÁˆA@ë¤ °ÂƒA:wЬ<@ý„5¤ ·"Z 8‡bY: „Ö â„É$%F0HšŸŠõwÈùзж?0ÞT€l[R`p7Ћø—Ü­þ.:WðÄ”©F’”QZÓÒ€Al{€%•å|`mGaaÊ.Wưò”7ø€ÍÍAAïÁ*î‹ö_l«Φ`0 z€µóÀ­ê“yÐoq¯Fʃx´³BG‘@vÀ•¿|Ù;ØåîàÔ$‘ƒ„ØÁ`”!Ú¦lÊDÂ`¶ÔKÓà;è²9ÀÄ]h=اðbê Ýé Jé ŒÁ Åè`©,òžab9ÏòÕLs æ`:ü•ƒE08'Q‘ŸyðÀ ;ã ¦â@-dˆƒ†”Ô¬›86ˆâƒ•ƒL}ƒ`È©gúÀ}J|í¥œÜ ¸Á}Û`„»6ðÀ —6ةŖ³Á–ÉnÁ`ób@”`û`•×à±à<56Ñg ¨„Á«ADCó[Uèwr15è<Ô€/ J: ê¥Pl(ˆÑ0ØÒ¨ +\4ð +ph@=A*hp4‹_Ðf,á –Æfp„Aû™^ýÀÆ ‚{ÔÒ2HÆÊ á(ƒG“AøL¡ùò“Å`VÏi!ÒÇ€(”Ot ¼CJ¶ +A„ ŠAÛŸ³:#y{¨aËÂ`. Fü`©\×O½Á€CO00U`° ƒÀà¨A#©ßœæ Øw/¤^À¸¼€ ƒ0„Ü=G‡¹ DÄ.è¡.¨â’À ƒòü>±ÍsA±0Xq¸ísRÂà€.Ø F=·ˆ­åƒÿºŠ?ˆÀà‚AAL,d  †ƒA`D°TÿÐä9.¨ +$ƒ2W2íª‹Î·àî Á`Pÿ½YÌÔ`ð7<Ó[pä-Èš¢b’Z.Â`aŒ¥;oQôz‚´ ÐôO¤ï-ðß} (Úoç“Z#ß‚) JS[ 5mo·Ôtìªé¾¶Þ‚mÞ‚ øô¼È[ Á[ðýnÁ÷&Îb|‚Yʈø‚¤ ƒ”á-à¥Y@#o¦0ˆz ’7oAnÁõlAA~€WzL”ã« ZK÷$r¬×RùWH›®|Rý™¼ìÞIa<ÂBF}}UL¾ÿ Îì-¶óÚE)¾3T=쌮䵄F +L (Äë8‚ÎwŸ=´€uQãF3u¥Hgý Z<‰bH>uíÆ§0ô.ÆãKøªÀó±ÀõÄ}_‚]ö®nÐÌbóÖ„šQ¬e~XÆÛ´>èYË`Á\SeA¢ˆLñW‚ê‚27¬z0 ,¦Ž=°+(ÿ׃b~â¾̵U8Ú +P.„¹¼ÔË,¬èì.økIoï¯ïvªÞ8“Âc¢S¾´YMsÞ;[®È~jg›vk]A”¢òpʘUÀ5±RbÂH·ä=U§ª !à§ÂäîBÚ]C<ø¯“·?gaSA/ÎÁJzT Ë3T@(ñ:§¶qj«OÁ@BNGâÈÏj£e+0d ¹IÁ‰&í*¯&j©HWLA`p1¦DËÕìäY +æÂQ°ýñÛánÖ"\ûwÆ!Wº?²$Ž¥÷6€âÒB| »m7 +j- üRko7 +¸X¶‘תÀEAyÃÿÜÌüŒ% +cݲïc‰‰öt™³éV<]Ѻ笾̄ëR™à¡&æŸ(4(?îþr™ºÛ'°tFßX´·¸Ôy©yÿ1¦Â $,íîGÕjî Yn.¬”rv:-‰?Œ²t ¾Ò_+'ðÎzlg©Æœ€Û‡ÉÞ0Œ›à+N/.@*~M|¯Kl6¹¥¹3…55ššäšE™ ð„¡üMò¤¯Ä”ÕË`xÁ4#üS`•ÆA*å,[¼댃PȆ…ÞøïIfKC¿Y|Ò‚ÛâxW‚\Ç2ÔÁO8HT=^+bà*.%p€; +òè÷D¡Ç …ZÝ“Ÿ“€S›Â$hѰÈéŸ$ØZ¡“ˆí<4r¹úáÿI¡¨‰¤Ü<‚Õ; Kä#pF4`šÞ홀GŸÓ ¸G,Ügd[P·¾Ó,×Ôm <(ºÜç¤Üg¢U‘¶’D+ 0 Ä Ære­gVŒ NS*ÿ mE ò™M—1¼Eàè*µn2WäêvŽdüÃJàá;lÄnS'“+D祦X'ÚçÁŠâWn AbÁÒžÈd®[Ji7Q]§"‚‹+³ID€)A’Î#ÕbMŒ ¯wúæ7v +ÍV1’d{š´!¸´qLêã<͆ôú/‹r @hEýì˜C­l2'ßœµL|Ûÿ9#€R¸…à×®9Gcÿ¹Q6C +Aq䕤d,¨¢“„àro°ïXÃ"pO+«tÿ päÝó>Nb/ç­ÞQ ‚ePòƒh¨ ¢ÿþÞm!$På!#w*ÃkCíÊ=S9çap¬Á¹L2¥”¤?§€rßF4“|yûŤ˜ÜøSùpõò“9™4ÈeiOöKó–0½è%ÎøSé?JÕð†™BäsJRé‰.Šû3ôò+­]¤3.û1£w¬NäÄBö¥¾L§Æƒ<9„#œ^é/Ò"2¡WTNíEú³¤n?ã4WÜ®ˆåÇ㤅±è!­8-ú [CÑÕpBŽÓçYÈ'ëCÒpI?Iâ¨~¢‡ñùCÜÑdÎŽøqÈgPÆ…ùˆJ­ê‰ZªŒãf3úDǹ=crúœR‰ŸDЏÄObå#3ˉi\$›¿H4"D2fi­XL…Xö„H0êŒ ¡Vbfä!—LŸ‘έ>Š/âÐM|I‡RE:‹c)‚NéœÈßô­Éð[^d±_Ó±ø—dì×t:ÒËlH9mèŒÒD¿¢%f‰ZbÈQßçmfV»C8­xG ±Cª›çuE|BÓät8Ψ×%¸©S¡Áª->tm–‡Ð…+‹y!”/ʽØâÁ ÚhoŒÄrbJJÆi5r5Hk¬‚ Ò¥‰-Q_—Ö)ä”AפdJŠ¢W½j«FÕ«ÇЮßãˆë÷hªˆ +jˆPL*Ýl~„\)Æ †°4!ño¨õ’xT¹:%Tú½ÎŒ‰éÕ@— : E/aü4üi†óÔéE3bž¾¿Î Ù ÔµD&"Ÿ^­FWã°uF=ð—:LÙ¦‹}:gÎ÷sÕÌà’;ô¬ÑW’ÊC¦N„«çˆé9Õƒ¹\ ¦$2e §©ûç–«t«PÚÔr¿©PRp佸5–¼,UÒzÖ­VÁ™Äj¥©ÕZÛþV¡,o&NÊ&Ô’ÍŠ¾¹?Î8‡dAI'”N4äuºH1°ù5›ú«€YZ(úºÎcûC%/c­—èòÂôúãZù44©ª6†hìG1"8ó(S)ÑU¥ZŒ0Dà ƒ 2 % 8p€8ÀÁ4 .Ø@è\à`d"P@ ¸ ‚`@ @àÀ8@.@@œÀA*ƒ B€Aƒ +\€€`Ð`%À`d@¨2ØÀ¨ÀÁ. @L ã¸!*zð`Ô ÂþAƒAÂÓ`a‹"3™˜á¥î3¡3¼1ĤJ:úþ•2Ô*¤ñ,&øÙù47‚÷ /‡ðˆÜ€¤Ÿ_(òãs /AH›áe±“…"»^ÓšÏDJ„bes8òd`¼Z4…q ÅOs„φb­e:-Ô#ËaÊB…Ã|F¡æqx¢/É +&"-,¢6Á沈NRl~láð3^õdCZ›MZþ´PE*ÃS‡ǂ˙÷ø’¡!Æ™û‡ßX0Mâ˜ÚiAÜE-PTÇå½ô ‹¯öYàƒ»«\Ø‚½^-»-ô«æôš…Þ‰@1ÃÜda­! $ªO.wla #ÌÙmœfA*ö°XÍmáUò™-T{-Ô¶dµ…‹ç&ï' -¡ædª·×æ„=©~,„+¢8AÅTð@p€ 0@ƒ0Á"È Ø€ƒ ˆ L  P¡8€'­T¬"c¢à‚%âÂD˦`JFJ(8À\óÁíBô6’éР’dLЬ +нˆèÀV®&¡ÂÄ)Ðià ÈÔØhÚ ¢Á—þ0£™DÙ2åš…!ÏÄch®² È©ö! ­ùQùg78€ „înQçeÈŠ<¿kNnÐÙ«¡à¼,´ùËSy÷v1 Ôê›±:3Ï0"5A4"¡œX¤çc‹P3Ó˜‚8Ô’Š7×KJ¯4"J%«k8C|”Y‚)3Žº+JÊÅjˆX¦ÜèÐ’ÖEªb*žšòçU³5‡‡"©’ÉJm ©ÈäW„‹(?UÄ>x¨52â)éRCT"ÄÅÊÌäð)—Pp寚Ý2VÈK¸Z¸aS¢bI•ŒÔš¾–p¸ÊÕÐ +%¤ÒW(LC/lûƱdÄÃ*ó©¹6¹k"¦òœ¡+Å`]ãr?dËh×P eaDÙU +™/ =HJUÓÇ×|*–%/—Äñ9QfÕ’R ™Q}C2QCˤ»È¾d蓺êÛiƒ÷£ÎÞ<*ײîþ¦uéëZÞe:¶gÑÏL¹dt qéÈ<$}Š%)^¢éœf +r¾´­Ïfv-±é?õãžrïÖ…èmËsq]“´jÞva*êÇuµvK%÷t/¾Yò½;îÝJ{긱ø ‘*yØšó, *æ ¶ ¤Þ]Y~–ý»2Á¡ÁÒIHɘFIÊÊÙlDõ"z°–G¤E¨”š‹ªcD Ãp „a Œ9¾dý€\*f@v‚8RˆŠ¡¿)TŒ­U/¤Ò 2òj‚šY1›ÃCºŠYEŒ5û‹´ÃÚJï¯~t˜ ÎøƒŒT—¥:U2¸š›ž]‚lþþÇnZi±NÑç/DF}ð×Uùé⠌׸ëÜ›d¡ „ô@IÂTê[‚½“Ø~~ +Ã\ôN%‚`ÐX{«àØÀ¥g"ÇèÂG°¨<µeÏ€ÿ^?ï­·éø‚Ÿö0 êK«Í/Ô1‡¯—h¬ÍÎyD_GK_†|—1ŠCÿŒrÜŠí_™°üùãæq›Ç‰Ê'ÿVèí¦?¦ÏˆçÊad°{*ãGe¾Láøï™ç‹Ås—.bÊþà .Û}v†Ô‹o‰ë†»¯µŽÅ®§þ·LÓ,#-¼ødUK¹¶mÒéLzìÁRö¨­Òø‡ü’Äe_Ã9åVßÇÇ7 ù6*Šs¤Ûð\ |Œ™fk¤3KD¶ètä +KŒ/Kä -$"ÄB(\õ`¬ +,~ %çCü?§Â[_lЕ„þ ‚Ós‡máËo¢•ÞŽfK†Ô9¶.ÍÅ«G° 87P-–[œƒ*e6ú"­æšHëH‹Ô#U™y–a,F8ÅFkgΗ»/«Óƒ+¶Ecx‚x}–#H×…aE6ƒÊ±ë!&ŠàPTßäwž\²°x¦˜%ð1dF²•¤¸÷'çHûF?å‘Ècou‹! r|¢®?·2W÷€‹r&á› ç¢J¥çö_Œ ›6`¡æ0 øùÌ`,óÄÆüîz$Ì}pî声Ðå6Þ\XËÚËø%ȸc+$ a*£›)BÀïP|€Å;yªDšìÛ»• ˜n#™89h(ò|… ”a™«`ìô$ï@ùä‡ü ŽÁZqe!†}˜ð%ªŸ=wàH¥ +Z‹&Ét€Bà!àÁÉ÷üÿ&ò"9ñ ªÀWǼ‡8õ‚¸B0ñ‚e¦] È<£.°Þ“ÌyŠžÄK| ¨wéc`µK/-èìºÄÐ8ªË`­ž¶=I tð|g‹ïˆ²ÁnVÌGriÛÅ‚>0«ÒªÖ*”×mÔ`íòðEŠ_‹ük‰«fݺ\á=>¶³@ ã£<×÷ºoUn;'Þri,Ä®QÀ¶‰ ÅáÇRkR”‰ÞäøÊ¡?÷¤O\•#‰flŸ…9­6iÌçðK|êƒ)FO(„¡¬—Ô31?Õ?‰:Å7ŸâEí‘TÂ/´zÄUŠˆ:±Ç³Á zBÑ[qîꦢŸ@Ô]î)ð^[ûŠhý†ÿ§±+Œ*æ•üEÏÜa'˜¨a)K†‰»¡TMî«¿<:èJ„ÿ£¾sãqv›n®üS¯O®/v èÀfbÎÀŽýGaà÷h±õ!c~÷ÐU̹Wùþ¥ )†Jm­ƒ/xkÁQ$±gFØÐÕ}ÁéÜöièMÕ[½0ÿâ³.fG|”z&Äã-Ïô38>}0ÒÇ@5¢‡ÁŠ}.·q‰RâhálQrž-Ÿ’¿1D\6Õ)¶`ñ¼Hª µACÓÉ-$ˆ‰ªLS:/^|Ay(’%äƒQü«½+ëv<ëI-ù†'%³h_;v8’,¸¦ú øƒ¡}Ãå‹A·©Õ¦\ÉlŸ#[–?~®~b[Æjó\‹2ãÔ zÌDV!{Xúüˆ&„Ž”Iëõõ 8ðœFÌÓ/Xs! +H +Ï‹¸2D«ÉœØçÃ72"ŸÍŽs‰“ù&(šø\ë[´QÛïD1Þ…ZÛçþ! ÕñOqdùät\( cRÙˆCWGR•åÞšZ3aðé#•µœAlþ³YÊo€Ž7ž>jf/麯mÊ›Üvr¬séÜGLö¯®álö ¡rýòTÌ!•9G <º®tVÃòi{ÂÌKºç²–‚•ñ±_Ë\[nåäõa"L°'öaº§Æ¢CQ‹%ZgÇ-^v¶ïJï|an Ëàf Ýz&ÍÎpîmEG!Sàòl<× ¸˜”𡲂‰’#5áÐÌI‚·£/…ʘCôÿ·P\jßqÅ›&G ñôËVTBBÓè•×…¤ˆ)¼YÆžÅàrÁçê ¢JÌ(Æ6ÿq¥:ªàz + †íõ(›v.wÐB´0ˆ` Ø L'Ì«û‚r_ ¶È‚zñfiÊìVlqy5»{ù ÏT®,3OVa°jM.GõOKo”b޵K½¥%æªù"z‡UuºÄ♂ÍÎcù^ã‰3ìâÔG'm<á7KÂzÿ>`¾Ÿ:g½ù:êíÄ 'OŠ¢ =ýKµ8-´|Œ ÛØå‘u–Ÿ éÙ^{y¥¼ÑŠ¡‚œyA ì°C’ãïÆsœòAü߉t§-Ô&<®¾| ¯œž€^ ZzízÖzÐþ036ë£JB•l'q{(úÕÁ.NHÃgÙ'=ƒ°Oì%/Çç!çÂÆX€€#l4b.þTŽw’çú m[)hgÚÌØû°Ì ùèêˆPÓC"¥O§‹…öæ#’äfûX°åvn +=]¼c,¼£§‰jÞ0bRÏð÷„]V¤:u¬¸ï#Á\ªð•ÌòàfRªçDí{ëº6³ªó‰,óù¸7I ^A¡Äk)²± +õº(,¿_ñ3ÓQ†÷ •IÒ› ×,öÙk2pÙ",WB´'smö¸MÝš\éòjZ}!¿hl4&(Ô¢åVpïü=m™íYl=NóöTÔ8pdàˆu×xn+å~Å]ý8|ÅÐ!eûþªû(Ï?BIVÓ¤a»Ä(fJÈUGT™Ï¢v\¡²±ÃNJCU)ŽL‘£° +’Ó·ÕÑâuI¼±Àÿ_k[ }ƒÓ +Ùo´à'ðô‘FÞ#ÅÙÅvùÁ`¬Ð¢Ë‘D!ÜØØ 7ƒµ2 +‰†ã;ÎðÐV/û²ÕQÙÚ"ÁæX8ì©W8Ñ}=Œ‘QV¤wŒ9Ç Ì쪒à´Ð}LùÉ>"˜ŒÜÛ;ÏÖ[ö‘%¸¾hH¸‘×…ÚÜéŒí0âY¦¦ë¬Jë±éI¤ÓKõ–ý½7íÌÀs,Õiòë¨X.t¨8áBžÒy +•´Ø©/Ò&AaãYñÌ%áX:îk 7ßÞw˜Åu}Ù$»]oRèCÂÏQýÇ?ßMÄTq; ±ÓGçq’¢ ˜Á¾'çÂBxn&n2ºøÀŠìsTcüdÃHž$½IÙ¶;òµM"Æ Á x~,Š£C¯ßÚÞ4& ^òÌÔòýLÞ›I\¹wÈ~X– kÛO…ùAôl€Ñ鼟¤Œã}{ºe(i¬g2>ëðŠcê_éáa”ûHkøWÂi÷3rÜvÄ»±BÉö¿ D„›lªf0ö¢þÂÐB3xx”‚A€Ì †Î#\…üx5ºO@\¿/@Ï…dìkn uø¢è©ù\’Ä ž=Ð<0r›·Sƒê xî"K\Ãõo³2N= µ8rø%L}§‰ +g‘Þ•zL÷ÒaqFx9\{3ƒÛ¼Y!5W¨ ‡õÔÒ%ߺ^oá~GÁÈ¥…á¹o½F7äRDE E†%øt|«ßÜlÍ")»é$uö킚`.×ÂK7$izÐûz} +ši{V®±|bÀ*[æ—¨Vê€)Ú•4‹y¯*TóÂçýz®yqÜkSrÌTä|‡Åeÿõ¾ Àðú‘Ý¢‹ÙwíxŒ»!ù±óÕX&ó?í77Àôª!r’ÊT±ŸDJP‘Ö<ì É3ŠN/Îù"ˆ9ÈU<ë»Tm8hT|Káô® yh]àUXÖsQ¶OŽJ—™ž¨¾()íý4g!e„¬0Ê!e•ÿg ßOå˜+vâæ*Ñi +Ñ­ }}Š?Œû8)Œ›hi(ëEÃoß¶—˳¾=xÏ¢fras{2IcÜÀ%ÖÛ ½›½K_L{Å´[e©•nN <3­?ÌÙÝB9$ê÷$$ò̯S}J¿oZûˆ£^9 íñ¦È:¨u]d[4ìŒ$6†¿ÐTd„kZÀ_1Ë­þ„9„V¨ ’Ç]Ř÷Š}t[jüœ}µD­«è³ô*>*€;købÿÌÇvfÈÓml[méºR/l» h%¡-áÒeM¦Í»ä9‘TÕ2“[[/ˆ¿ì^Ý¥äýÚý V"ŽúÆ™²­f!TžAº²EÆ®#ÛçÄÏ\s/HnBq¿ ¼Ó±ÂH»ZþÙpåô¨Á¢ùÑ5ÄÍ««¤)—eÏL…/õûz‹h9ª·£Ôi¤ ©ÔÖŽUý_ Š(µò¾®±èQù"£wíH¡ÖP·D`MøRL(Á®žD€­5ˆe€”ƒÒî¿nxAA¿»ŒfWpDNDݽ«;Õ +Fm4è!SVñ…õLÄ~íÑ…t3>ô’¢ŸÅÌ8Š˜™Ç/ü’ЃM–Õ~ÍK&%F=Ý Ø/9>6¯kší²Ô¡­?MûáYÿœùmYœœx²^z?„C:…" +7‚Äg6©%°Ö×uùpdÇ’æ¿z%UZ¯j®í{Ò_zìW"Îù€$ÖÑC”_É÷Ö°Ú–Ûò.0)ÿŸ÷k#ùe­‚YI´6AÖßz™ˆè)· +°†i ¼Â×¾·â­O¶–7õ—jš>6,oÉÒ`¥¢haLîÏóG  b„7™UqÂ1-òúo^ý·³Q3„WýÊ!y‹¯kê}‰ÿÁ÷U}uCêíÔ “cî=¡»G-DÆ1íœyRÙÄT¤ÇË)C¾qÞFêáÇbgÞ ª:É1‡ ä˜.ÝC%í—·w'ЩlRÊLªâv¦m‘±-°£bºŠ»N”®ÓCÛE¡£ì7CGBt[í)ò‹ `²¶‚ÿ5íŒv*¡h"+gûg˜kÓšëuÈÑÿTpÿ “Uc:SÔh®°‹4ºäiÛ|ý—ã?»c0aÇ åcrTÙÝ‹@–FJc朊Òðt”ÆÈB–‚àEšÎ0¦Gþ~QÙZÕ2:À‹sV‹†{>Ö=ý?†±b{ñbBxØÁIiÈ +®þ˜u=_Qè¦ùl£4¦ê1·ÓÈ+‡b{,˜46ˆûXÔǼµéc…”¼ {5–!¥‘ŒÒ(6²ý½oÒ˜Ê gÇ %k=†¤†ì6S/¥Q@¹˜ö˜fJ*å†4V¿=ÍZÛ¸;–ˆÍ€VÇúÙiõŽ%ªØg¿üŽ¢ðŽ}¬ÀÜÆº­Žé§4ZB%CÈ;&¦’U G®ynjձË;¶¢­Žm¨4JùNèÌÿjP¬Qêk‘JãHiw!|Œ1G~,% û@ÆïÓkÿñLjï8VP¸*Ö|ÌŸóÇ•†(k +²"Å\iääEÏþXž]Ø–FÅçä$«:šø+ ñ¼Aå²$þ1¦5ÖêþÎ?†™~}l¹!²Ìó¬¢WXdÃÒ`ȲŸü1{¥1ÚÌÍÇTYðÇôïÁ°4tþX¹ŒHËþØè|,­õ±Ù¬¸ ¹jìÌPߨ Ù¯!K#‰Œ¢Yñ1$H’̃JɈKf¾f² “EÀ“ (ˆ¢,?’2Ï›26²T–ØU¦{¹’e “e í•VŸ\–m»ìW, VïeHY:€™Á„%fñݘ‰˜dÆ»Ì.ÜÌ*ð/ ³§f D5HÕLj—bc–¼áþ5_³€†ª=>ƒ2c×Òøy3}ç°ú]œ=¤œE€ã6 ¿Îw–OðÌcåáš–ÆžžA±{Æ”¥Ñ¡2Ÿ!ÄÒPÞ|ëâ™UX–ÚñÏÒÀçÎ&Zz€Ò!#ÐæC 3¤už„ÿy„vhˆÍoëg>:~DNK£'ŠååÂh‚ú ®¥Qëçh˜p—>“gbHÛá‘&Ø&­YZO+¥ °+m<=vç¦=4™¶€4íp›F4K£9Üí´AØÓõŸ¶€„š$jï­Qƒq¤¥55’–†a>µéÕ@[¬.‚µJAÕÔdÕ4×Ò±ÚÏßµZÓÒ ”¥‘”Z-_ó, v¸¹Z@|µ•˜–F䜫¹¥ÌW#Vô ¤“È/¬i0¥?@XÓïÖã« «! N Ó²YsµT*&¨ÕP«0a5þ ±4Êê•*)$r£–F]Õ%âéêJcž2±j+Âj»¡¯4šé¦]°Z5Z㫦¹Um ¦Z6W6í&ªy®„^ià„QÍe/-~Tû ªv ,¢1®Ÿj|P5¬SxUÃ8pD¬æf–«¹e,w¾B°4„²(Rw:B~ÕI\ÄXÍÉ«šéwª ÀS¡ ‹Uã¤éV{Vµ#ªˆ¦¡Æôbª=«ªj¯™b¬jíªVXmøU+óÉÒ¸yÕhûU+è•ÿ}šUÍ¿Æ'ciDUÍ)ì€Õöây¼9AYñÏ +¯tícx#Êùi5ÆñÊÕîÕˆY"¬- ÝYݦ±¶X²4ø/gYßú‹¥!OkwYÇ¡^ÖAkñ>k g—ÎÒ`Ô¸K²4 óµot*k*=k¯÷ZsµaX4#wR@Ó©7rk”ËõÎ¾Š„­ùYpZ«›F´üLkäýÊ®¯µãÖ; À»­éA²4Єé 9KƒàÖ¬“eÌ*·F•¥Ayciö­[Kº,”ci¼`iØîd@(¢ÆÒ Œ[›¸6“5åZ?¹¶ÈÒ¨À5‚·5/–Æå'J B¦¡,ÏXMdiœÓµö ëµV—ciøH¥†­1ŸÖø•8~¢Ñ°œim±×ZȵV¡¯5êJ#â³Ö ééÝêT× •†¨}­-èi¸Ò Ê³Öϧµ¡×ï´µfÙØZ‡Zî­4\¬4XD/.‡\ÊáÚØY`®í£¹–S¥qˆ¶@Óm̵¯—k|Ê5L¥A#óÁµAlåÚÛã隸öêš¾ŽC¡¹º–Áº6˜*éî«ÒèíæÅq`ô%¬8ígµJcJùæšc­kÚªJCÄN ×8½¶¾¶¿æá[ýQ°Vi0r™°µ¬4ÉmÅT”.¶>ŽÍÀƒl•lüUS¶Œ•Fd¬ƒ7Ú¹l6%$Yiäe¶øÜl}ÜÙж8ÑvQÒqMÛËKjÃhµÙ­Òˆck“ø¯ÄJ£ƒl£Ë¤m>lÛHnK ÝæÐÞVÏþmLH¸i q+7‡Inp¹¹ã›[;t[¸¤ÛSEêö‡­[¬Æ“[ihÚn:ªq¥1²»òw#^i4U>–FOäí¥æM"Bo'Y«ÞÞ¯I^ˆ¼·Õk|CñóBì[Kã,ãÿì]øæGþ–ïýÛ÷Jƒ‹Ç `žÐYà÷37»Òè‰Áí@NâB¸Ò+ï® ®Â9$ïö°4ø WôO4\¡y¥áÄá + ÔÃÉZiôG¿‡ËqQ+ ±èárdnâB⊮4@+n¿¶¸}~qqEÆ<—Á¶ÔXãê†`W`~\±•ÆÍ9¿¹¶u‘[ ’[’û°LŽê•F ìäT“Âr@2|«¾Ê¥]ilÁr]ž–«P.7½œcN˜û?ÇE\æìWéÏïJãÏOs0 ›3&77pî¡Ë¹ ¨s†Ý¹øož±÷œÙJ#àçXVß Ðá“+è¾ßÐÐJƒ 3Ðü猠SÓ‹Xi°ºà* „®nü`rV¬µ«; Ýìþº‚%t:ÎU5‰Žl]t3Üèª4àÒÕIÒ­Z¥QfJGý/—ÎÎJ#^¦#7ÛJ£ßé°HiÌuA) M¢ne$uš:ÕÅǪ¢V'_]‰”ÆãX·0´ŽVJãmX9–}¥…Ï¸Ž«I~ù.P6¥ñ ×!·S“6®ó 8S6]‡NâP×Pidãŧš^×§4Yסî)•† GE&®{US½½E÷ `óó­yëÀ©ÖõίҠS•ÆbÖIPë +^Ö9T0jY * ºœ¬Ö-ï±Ö…ØUGªu÷¥¢•†ìÌYç]id³„E¬›i¥QœÝ=G±³ÒäÕ³ºÃ-NUiœª ÃÎY³ÆçÞGUæ–³ºÜdu¿JÃã&cu°º* ø¼±ºý_Ãç §,ðXÄW× +Ž˜0?¡Ò¨ù>‘0¬”h‡R¥ñM¥Ña´Î£Ò ©ÌÄÈ_ìû®T QitϺ,oqîÙ"„Fyì\ ´n~Ñè“.T8½T©4šT¥qégë·JC'lÝø³u©üÞ•Eë^ 6ùg]ŽÊ¹¥¶£(ÚJ£Vë@Â[‡à\÷ ¼ŽŠC ˆ_Ø1oxõd@©u ±;D» GvXvû«f§¡g‡Øh÷Ч!+ ÇÚ-¶“Óv˜â*!ãv$RÑÛøLwi:ŠÀ •F%ŽQi€ªÝ䔆ÍtW»çKß*ÉÝ ¼Èò.!¨wô)VàÎ@€žj,m’JCä¿ïsß Úwê×ßNì;½Ï¸¾sUÐJµT™‡c¹¨4bæ.þ-{Iõ»üï–` eNið¼±D¢Ö¬Q8#,+/”ÀCÚŸo»iUb¯+2›ö† +<Žj¯OÁÛŸd9ä«›Ò¨ïÂçS•~Á6ïz<¶£RÞr/¯Å”Æg@ÒH+j«¼`jÊ›z·¥Q­àá5<Àg_-_zµ›FP‘”–²”FÕ¦4î 0 + Ž$Ñ}¯­Wøî{„&úÙxæ5lJ#6Þ‹Úñ +¥4œ6¥q¸ûã…3 ¯²=îx°—ÒX¼õxAq<•F]‡ãáýAótéy£*Q%…'oàSž`yçò§4–0o²–y ¨ye)ßÍs\Îyù†ç5äóN8½z.PôŸ£'gI—^CJã»›^b@=Ĥž¸¯T/ÀVop€`a@) ˆ«WOBÒÀVñŒW®-h&¥IJiЃê¼Õ½y™Òî¢"™ŸLWé ‘õ¢¬×ʡҷޔdgÑˬ Ø­ÇSi\[Ï9»^ìêzEºÞ@b–É™ÞÈcq½í¨4âÒÞ¯×#žõ€ +9Q¾˜­æõ4ˆ2p…‚UÆMiðVýŒW>¯G]4 +ê”V@”ƇéIPw¸¬’»áþŠLàzóùì¤qÊà¼ÞhNY;¯§Ðb^‡×sÏË¡“7°”a†bï÷ã<ÙsÍh46i„ªIšIãäìáèùÍž±fÏ'ksó#³Çלܤq> À¢™4Œ‚ìAªaLŽ¿ý’F0â˜4¨9ÈÞÃÆ•3{|1{¬w—4ià‰dÒȪIƒ|ä& í—L$ì`ö,³×jÒ8 íñã™ý& íuß<{‹kÒpë&ô½ù«*kï¿·½ºÜû8iKîÊatïs¼Ý³L@ç3­=v“Æ÷Oùáƒ>Zk©FøZhørÄ·˜Å‡Àÿa4>}{|7NläÃmÒø“ô¤ñÉöŸ?䓆-„T±æ‹læ¤óùâhQ‚Ò8ÀRBiL‘|9¢4taú."LêûÍ4=•MÅYŸ@äõaXìCgßKJƒ ×>°”†~ uº¯HJãu€Þ4ÔSÅñû¤4tÁ/ ¿-~ Õr±ûÒƒùñvòSéÃüp(æ×¥Ñ¸Î!J#xÜpçW\fºlnžßV#è¢ÇÌžßCÖó¤ù‘Ü-šP°šA‡¤²üREi4•WÑò²ü +„•^£Q¿ùÁÇ0Éð°üâÔüòÆç—W£_á"¯†ñöcˆ”F{¨ýðó½…5÷ àûMP¥ð÷Cæø³ÁXþ>~ØçÏ©çÏFÔ_¿”ÆKì¯1¥ay«c)°ÑÅþáŽ) <»XéÝÒöWjîzE?) Åò&ŒÒhWÒEi„JƒÎpJà àÃÖÙEiÿ© ØT[H^Ò  +F«½ ;` ýb("5PMà‡mX'¥`®Jix-°ñû¡¤4ä鈟¡… +t6-¥QÄl¯#Nð~`B» ‚{±º`t>ô" HPAJpì{3ANr™Hcï'd·˜ìüF—„Á‡yY]«‚hHÆeå„4(…Arƒ êyRHÃh™´­0¨×­¹:*Ò°±ü»fYH£ÂœT|)A~[Cðê3›Å€ åc|[À`¾8¥koï¯÷¿èåà¿1ÈíiÌ_° wvÁ!Òð†K•îUýÔ@IÀŸÌꆭï½T|² Rï#êöš„$¤¸\b¤-yÁú¦îPÁ +ï‚àínò‚‘†ÄÀ ‡NIRwÁnà Æ>úž¿ 2l¬CÿS@¤±‰0úÍ3¹÷pl–ã˜Hp E×D¼ß.(ZdD{å.{wpHãfñD¤¡ßtAå|º`OI¤‘Aþiffi(²`ÍßIí + ‘Fªƒ›¯ðûç¹=WÕ° nàD°#î‚RÎø,‘F¼/H¼ ®D>‘Ædñ~›‘Fwí‚vH#è{]0 C¤ñË! xT†4R†œ»ú‡4Še<5Îî‚ MDÜ‚«Ï“ $>/ø±&×NZB¤ñ<¤1» z"/ÛPæCþìaÃêvÁ–Bµ|¡aõ²q|Ø/Ø%¤UE¢—<†îPD¼ =Hòåéã +¤±4ÝihôHƒóËÍ &‚4.4 ÒЬxÁHWvÁ|ï‚MËÝ{´ j0ÃÕâ —qœí‚1öHÄ?ðØ÷Ç.}';õјáI” ¸ø.hc¯[øÑˆ7ÐGC~ŠþhDrŒÒ¸Á.xVsÍæyÁ‘¤nn +¤Q­L@š,fR/84žÚH㙆öh^pGô‚5Æ]:©¼ PgG ð‚;BÃNƒ42hÞKzY‚4¸r @ã¼`i8 /èÄŒóŒ—BwÁ‰Â 6¢M„™åˆÙ]{½ /ˆ‡üh0ý£1Te„”Ü9õn:žÔ?ûÅ >?~™í[•\tÛ·4PÇm?XJ(Ë Úh24ΓEÌ£û£¡@—~^dÒ‹^°'! >/XÈz¸º½à=Rî!•Aë¥.y6ï¡~Î0Ž_„þÑ3c¤‘0x£ ²i¼A*#P¥BªyyÁ áÑH§?Mýh¸öÑø±Áüh0!¬ 7yòI ìœnÚƒ¨8ÂëÑìòî€AÄ zaÞ&)È{4~A®¸:À`iõh¬T !(®qèÑÈ•=¿¤-üõŒB>¥ŒT™’ËIɾŒ£Vü‚?Òü 0(‘À ÆÓ±æe(8¸O„Á +ƒÕFgQà9Âà Š­‚²ì Ò£MTÀ2”ÍGƒ‘l8Ò“ýY¬ôX3%1¿²ƒ7C#W«èÑ`3ú},Fb;iEI!;5‰ýŸŠÑÑ8K6Gã $`ŠÊÑuÖ(0H«;œrÍ£aÆÙ^¤ñÆÝ'v]ø$ð;R¿ØZôðâoÃ`Ï´;;ª +·O¹û6ôËØÒ*öRYE#œTÓÊ&p  wµˆ°.›ðhä{O pBõ‚NlÁ äòrjqâGÅ֣ɣ™08HKCa‚CÇæ-Ö?P•y4êø5D#Q¦(_Ø5Æñ'í2W2û«»6mÖ`æD8‡JåxÍŸA±pG£´å9麦1Na–x4Œ®Ř–GþÐ-ldPoÖ, +îÚ¥Û£*TVIE¤åÑÈ€‘ +n¾<Up"Z„ù1≽~*º”d€A5Ž +¥úz4øÀÜ¿ÿ69„O³:‘™ …}úÁ"¦ Ø+†#ä†gxo|FNùz4ŽËÝ$cyÇT&@„t¦áÿOLQî(É|4Ý ”œŸ© T)ú9^ ïê;¿±áhˆ 3:17Ò8iø|4JŠ&á»4Q¢üYL=ÄœAÑæ‚$Y ½ÅGcUêúuCòÑ8TF¦‡ß·a࣑͂±-.Ó #z|4HÛgã ¤c¬6D«èá±¾J…bE'žF­#ƺDZr ‡O|˜Í +H!% H*拱IHLqhCÁùhüL5 àÓdbªúKòÑhÌ>©¡…ùþÑitmƒà¾²¢™°‡ hòŲ +ö—½˜CÕG£”3\‰„ÃÏ&´ÆÞ6âÑ‹¥‚—&‘ÙGCøqE¬QˆÉþjܧ‘eØÝvl(÷x¶ï+óí§ù>ü–«–úѰý§%ƺÔWš‡EhË€3 òGc¢üPE¸ú™&ÎhÆ–EØ?X6|vº þGãÞW©ì„‡ÇC=H$ÇH¡€)ߤÞ#¸m>•n?Ï€ahT6Ã^Ðë‹RFÛå‡îkºUT¤‘¢lÈaYä´â¶etIüu—öăãVqe’O–ïÒ¨xàȱÎý)/P¸hÒ¨A&É ÒÀu膸5‡ŸÃ &ÍB½•êˆhœ”š£ ƒ4FEv +5£à!Fø +-Ëòù›òÿj֪ѱSHCŽ•5cËLBs! ‘ñ{„O Óº…4ìõ¡;©Œ X“¬Æ1= +ZWh$“¨4¥d£Fc<_ ’ÔÓiÔ?Í6ýAå*y‡H÷¸(h€úAa§Lµ@‹miȪ»ƒOajÊ5wwB}ŸE+@ñ ÒXÏ$M'MŠ(¦A äÇH˜ÆA[g4 Æ&µ<Žÿ©ÅAO%éŽlû»qe€œ€‹«µV,kuû Q7»Œ–ž\­¼Ÿ6îðÇâ\.ëë…¦L`Sš5g†ïi´TYú‡W õéf*Ä Ô^=³þ6ì ƒ4æ²…4Æßà„&ožR…4¦Õ(!46œÒ›<.•|6B tû.l¤¡‹ð°*úËŽ;üÉ0µ÷<)¤‘É¥‰)”K;SHƒ‚Íßaa,D-o þ³¬­Bšb"Ò¨)AKÙz!ÚÂ:ÒÀ„èItê—ù£ ÄôÞ ôÍ i,¸(òÖ>¾v Sóàd͇¡l¦×1 [Ò±ÎéèJô0EJŽ;œ6 ³L 7ýí¸ÃËÇQÙÈË¡J1ésË Däe€uo¢¸[ +í'Y'ÇFO +~µðj QC¼·k€¸§”Z†4Þû5¨Ø«åD±øÊ†1e«Á.0RÑF«'ΆMuUŽbnÎT”~J´ðQ*bD2(ô JjÒÆ†Kvñä›EéBérÜ!ÍÑGÛj¬bH£IqGìçì! i|ûެ¯Ì&YMWžWšÓ‘@ãÒ8€}fö5*bH£*Ñ_Ô3•ajHÃFA$º%¨^vQªÒP|Å¿o1äx´AãLÕÚܧ©ÐÆ«6Îd‡¨Ü4îPRà‘1¨VwhHÃ|¼¤»ap0¤ñ1R¾¤FsGk‡4n¾LíKžÓ6#"æΜQ@¤1¯Ö;lÄ)+ÄÆ²rÏ·tÉ/þQ’¼ÓnAˆQ°q‡Þ„S8‰kÒg«d¬ÌQ®‹äz`ÜÁ…±ÙJ;EDþèºÍ–(Në +‘FѺJû »A3˜²[q”û]“€Â‘FHFaˆ¬ª/Lªî0%[|Ûã¼ã^yÒ9)À-)8îжֱR}£PCR¤aÌ é€‰ÒÀ’ÙŽoRwP¾\÷iÔ¼%ŒFã ‡çÔôݰÓ)[ž8‚1dsOO¿DåørÈnò‡Ä\m" h¥HZÒwhõ†=nPNæ¸Cƒ7¿ú®Íýa†¥N¿8':²T égÀC XÐz!Ñ€5ÒØ²BFOÁž¬–ÌÅ•<i†4 $Åã¯9 ]J’r‡æÍ="ú‚¿÷¶ª'Ò“Ö²âš'ÿ¿ 1à{íÈ"HC³†3™‡ .$ÒÀóope0û¢¹ry–c„#wèîVUV´›ÀI¼(Ì/¸ud¤ £D"óì0ØHè ¹^Âé¦8‘Æü²Ô± £&g·ÃN¥b/ÍFŸ`´Š4>ÌåÁÆRoÙvX}mïK6¦z«HcæÉØr¬û<ÑãIåšÁe²¶CðO{Ö±¶ƒK8“§}v@ ÍóÛdâùB.ì´²1C`m‡jQØ¡"Ò˜0j=QxÈ4YÛÍ:Æ·E¤AþLC”Y„EÓH#¶¬íGŸt=¥€µúÒ¨µ¦XëPƒ*Á8CÒÚ•¹Œ`•IX ‘†ªÊÊgÂ'Eªíà·G ÇfeAê[g´j¯¤í¤÷D»¨¥Q´@‰4î,Ö5xŒñzÚÿÿêã)º2%ÒºOCr«\" ˆH&“+N¤Qô¶Q‘] SkHƒL½Ä$<ßp†a¬çe‘†"µÄÒ:óC—•ÚO¦uYÛáÚnc¸­Dé“RjéêD?ES˜QŽRÿWÛÛ³h±&¿Ž±ÊF+…Úgäá‘Wx‰4j¬TBç¾ù0§>¤«È‘ g Z™A¤Ñdc[ƒ×šbTÛt0T9ÎîæAi0IÀHλI.dMìµ:É ŽpSH©µ~/ "ênlb3â%«Ï&|e™HãóNá†D~|Àû°‰4^jî ïè:G`]Ûá´mh­fÎQàÚÀW‰Pȯ0Î!k;tb˜Èës‚D£hÜðÖvˆõÂ=ˆ@¤aãS„˜iAŒzý­ â §?g[‚ôAê= ?4LñlR½KsÎXD™oD# '3)YÛaõÙcl`µ•“Ôs@3àµ\t;ˆñB²•Ò‘Fëô(ðAŸ²Ôvvv@3qî£f9i4ed”ÍcöHãZ—x®d·ŠH£®‹«x&œ¨¶Ñk¬´NBÛ¢ž½HxDù¾´ä&‘ÆÌØ3 ùÐy3„RNÕLy zl󓯼§Å©)"Ôx£Õv°xhÁ~ÙܳíG¨©WW¶añq¦j;´¨wvjekF„¬RHcÖ"õ5¥ùBpô#ÛG iXü”´n<0ËRC;C/¤2a´Îº@¦¶z4ë ÊuJ:8Hc\”iV¤A§ “>âbk””¡(0HFI®s#œ V_QK0!‡¿å|ÒRÛ–>ášïFãT€UÛAi_á¹FV+…gµò§hLg–’þ€ê(§Q ¶CÿÛkE›e1?!¤ïȽpáBº×wÅ2´‚±)Òø‹Ëãbs©'äšœ9m§ŸŒxMŠYPÒ¨}Î\ú!ÄXÜü¦tϲ™Ébä9!8\ +c‡Î I@õ9¬š„4ò_§(z BœðÂr0Lñ”GžÆwb÷ ”Q6‹f +UdR¢Ê iüɉ˜Á¨6ÔÒg3ü·²Fô°ð³³ E$™+L[Xåz®Æ(æ‹8ë¼n!ªKõX‡³ýH¨cÕÁ÷u¤Šåæt‰±öããp]Š*_KæfHÃŽúoèNJÙF½ ²Õ¥)v$bHÃNÝÖ(Æ;PC/¬“¤ñØXAfã¨+”!ëŽXXÆæëîóÔÔƒ£òo†4@[@yئ >O1¶›kÁ›¨f€<²Lö­ÃäGEGôXj2'§©OÒè_ä0‹ç'Ç0~Cì¾Pâ2MgHÉòEuR;¢ ´BuÒ.Ñ ièå󕛇ý¬6bVHã(» +ÒøéGì媼ž©|é= Ñr´iˆ <’§Fì ñ £§®: ¯KêÆ×’C¤¸Ñè?Ž™«åÚs/^̰F©ô´jRè0½Ð·sÈoã;ŽnCuA dâÒ<Ý¿ž‚uF€VÒÐ`õÈL鿲ûW€=àitú£mnì]@~÷õ!’c ÂšAÊ“TØ”Å"—ácSB«‡™Ãä÷µ)öPà(ÓÝ*lÖl½ÅÒPNɲGEäC nѯy_4ãß:+"!Åøžqã-„ ìÆ^66)\„”æèJæµÐÆ£N3Hƒ÷ïÿ$h¶áŠm€i=E#=ötH£/®úR!ºþÁgH9hJùk~þÛ¾Ãf¨õÇAÿ$è¢ß·g†^et£ÃFÜãõùåæuŠn6PMiÓ#ÄqX w+˜{íŽa6D6Ç ëÜ_v7¤Ñƒðª5ÎĈÌTè˜Ò T;hêj6¤Q7›å4 é*uá 6-¶ +ëi:ƒ'Ò(ž^:ï;`ûQÈíA¤‘•¤9òïUÇd9wˆ4Î:Bµ '7³á ¾ubˆ>Ê |1¨ÒO#Ò8˜Ç9àñ5A˜þ¡Í²ÿ†iwá ,¸“޾Œ`D¤Ñ©p˜ÕÖ¤Irºí]$i †%(OéyH#YóPEN¶²ÒPL ©&‘ÜÏ[ Õö i08/A°¬ß8Ä©ÄÉ=U°HéUünåYUƒ‘£hHcÌm1èr”NôxG‡4ÖæPvÕÚÄ`?¥C%·Éóä¶Ò‡4ú¡¨öNsõqÖ¶#Ò˜,0ƒ-eqÒz¬Ds¤t¨aÚI¯o(XÈ ¹ºë2n z{£1 Ìáê)A @SRé`ù‡= ¤Ä€PA¨HRJ™R*Ã*Ìç©kLùðáž9»­ó<ó6Jæ•éV¼ç¹çõ<Þì©IöÉÈŒ–O™ ÍðàÀE¡f´€¨jÞ‚ù€úò&•¬õg(ÑÚRØ…L•ašvsjºUD®š£…ÓlbsD¹ÅT½?NÈ«(¸òi2›ssrU}k8壜eX³?朓3Û£yuL¨œ‘öª@¢Ì”Êp™¾NEqaÉ÷j…Ñå ‹îªm2-á i¡©ãu:S¸ö>ch5¯\"9ÕL}dfRæœëˆAA¬‡¥D&ßJò4ý3—Dôɉ’Æiº¢œ:H::ShV â!oDLþFaªØNw†döðGôbÙµIÐR’šÕP…k^HTeå®F=Mñ‘›øXvFXÆÇ`”9³Ã©ËÊÇWb’¦]£øä2bMäË‘ øÊ[“\-ñM` aRcè yÈ\$Á—eì{v䞉ȹMHs¹uì¤ÓË;›pÉ=£áW.1¼¡ìý½‘|F‘­_°×g¤|–Õb(F^Úé·\b4Ypè`æ0Áá‹¢ãGFNü)ÆHáPp弪Ègp:å3HßUÈw’gåI'U›MÔu΢†xUĆ7Ä‘¿'$‡é…ÆPø´E Ó¡,¢CžVQƒM-5|1f’À`f"ç6…ò`õÇÌUi‡íwÈÉܧû¹’~„Ô›þ¨e‰9#B=™3‰Z 3J"‹*MFà ì®U’ôÕtb›±Ä md²8¼4•¢R\“’)©šTµ“*‘á]Ÿy㢫»ˆhØ»&²-Çô¯ú„_b‰UJþ!¸ÝQŒwrq\‹mF© ©rˆ8‰;ŽŠÖ ;í"1­à%0Ø n¯#"A!«Vœ dnDIƒšþ !¯~”¢¯V4—TÉë› )u¸ú”©#¦2WÄC4Õô\yN2™!:æ:±ÆUƒ¶¡01üŒr™Ó’!š+jÈ0T‡!T‚p'´¡(3)LUw5õIU}RüfÈ›3nõ®¡ÙS6YFYIà ¡h_(Ôà9¬fø(¡Më`Ü=J^PM¬QL,5öÊJÍG¨£É‚¦âè^.Å´dÊâ 5A8V¼Q ™ +njÄî\‘Ù‡U##í*:}­¥(m–¸É”‘áe%â*¼É¨ y4ªºÌC{‚.ÄZt*ˆz@òW èi{’LT©¹Â:.ÂÞ‚Hˆ ÞÎÄÖά +‘A½%¯ i n~D —¸å–êv‰¸AØ!Dœ:‰A"Tº¢¾g‚:ŠUê)Ý ^¹'“Þ…M´Ù'Fö±ÖÙƒ}ƒüŒ ²Ž±ž¿5ìš½‚j÷%ߤ÷ØD»\vi•«ÈL]¡>N"cŠâ4)’ºkâ•I|%§Åˆ:u†Ÿ÷Ýüv{L¾a|8 R_ÓÀQuÐP©nuÁ|Ñ—Ö0´šà(¨Þ§P ¢#p@9X@¦²IÁTÊÓPC%Ðú´ÒY«ŽLé?p”c PÁÁø€Ui¬ÊEåò¦‚Ϊ׈wÿUõšjh×6BòX¤éÍUm튩 +‹'ck|Ó*ÔXácRT͸ØPbÚL<~H•ŷ푻ĥ¡P…¸ÈææªÛú4ˆ–¹ªbL­×>†]^î©^4&»Ò‹Åå't¢hè¹GƒŠõ"S¥öš¹ËožT­^QÐpo‘*)“˜nñh ó oº¬a¨0Ý– ¤f É õE—õÎ^RÓÕ‡ò’²#zr3–YÄûZKÊÿKõ ìŽ'†…Lk 5-Ù¶J´ ŠààÀ½°èŠ9¢]=B÷"<¤ºôÂÖþïµÒì|9œõj‘¾.•¥¦ß<' ›çijà‹*V~Æ`bæ%±Æ“‰ª¤¨ç¥AÊìé$óE,Ÿc® ‹ÐF¦IQ¶FógcrŠx›‰ÇXIÛXŠÇKt|½/Íi­r…wŠ’”ÄÛË-º·h¿Ùb-§mðÝÓxÿmRƒnb¸‹[1¨YÈDM?ö iGÅÒ5••do„J]Bîôt˜bþÜÆÑ™—fi‘ê^n\&H»w|-Ê«™‘]ÝWJ‹ªƒÇz¢©ÖãÃðZä—ée$+…ÏÙ ã˼a³ AeCÌ¥¤¯©ÎT!Fûn{aM(Àà4›TâT±…ØëDUÌ^é4<%ÆGKKчeÝ5…¹•+x÷*ä䙋4`"HëԘŠ+ª‡DQ …‹°†ê† ÅiRéGˆDt…ÖŒŒ°Š-÷Ua«m§÷Ðí;¬WÛzêyÆÛY_Fêà`/R_ +²ðœê2ÏçÕ3·+Q™qî‹FB£SÈI£JÔ(𦦘%Š”b‰ì7,O|Ï’ìÚÙÈjw/©Æø•ÞàÌQï]…K5Z18GEÈtTÈZUdî×ÄñÕJóR&Ó-£¦TˆѲ“{@. å4!©ˆ‚Å”ðˆTüG”Z4ü‹ŠUTR;ÙÙ=’´¿Y¡IãµÖ ÉÝáj*v ñK£¶;*<#S]#r–ˆ'¨hBŠÄΉ1 NÈH’˜Åû8‰RãÜ=h¥‹7&‘8mQmkäÛä$H&ÎO=’{<ñ '$$Aqù°Râ M»y•Ì;]› )v‰KL24Ç!Ž!!OLÕlqp’ó«T¥3"D>U?A‹‰‚Y\??oË"’h…r¾Ä6ø…-!¬ÕËvxH­˜4Üb+V²‰ÿk^±cH„c&–Y]Hâ¬ñDÔäZ kÂ}}QŽxK’%¤5§Kï§§ë×—ªEo‡º0oe®†*y]­n®Ü*¯˜J´Ç9~.Xïè'Dž/&ŽgªGD¢SÓqñ˜¡NÒ‹×cØÞ§TÐNŠòB@1ÁòŒsËWG Ùàe«mŽGõj ^^ñ‹¤Xð•ßtÝO%T4T•rœ:C<õý IhPѸ{zˆD ªôlHÚ0T_‡j\á‘£`Dü\¸å ÕI&’:‘yú‰h0$%󤇊Øb‹´("*™¨j™øñ&Äà¸(jäØakTBf®†"d=ªUÈcuÚPðs8V#Un â\5bŠ#xZ¢èB»O2²X±JBþ…Zȧá1R!l(38JWÎÐs†˜zCL£!†8iû9NWHT ͪQ¡pf¢9“#| î2|bÂçnÍC™¨ÂÐÄBÎNÈAÊX°Ä +€"€.k(êK×WߤYê ’Â@B¤Cékè7  ‘†gQ<€Vàp<°ÀÀ ð@`Àh€Alp ñ@fØP#ñ`€$P +(xÀ` l@ä€0P h`€À:°TÀÐ4 @ c=£Úô/"–À {Ucj AT'cÈ!Ä6Π®O!\à+ˆY°àà`[  ‚"8pA  ¤ˆàà‚Sk‚`,Øò5Ø‚ üàBš?E¢nxû2•zÁêí~=8Óç«UeêÉé”Óª[,&n´ ˆ(8U>5¢â]&GÐâØõÉbñ”£ŠzŠ¥bÄ5’øHüeŠ"æÎfk‹d¡ »šéaXÙ×¾&6=^± RECi#Ù§:‘¹"È4aØÎÀâÙÝR뮪§Ü’¡²ÔT¥1p­ÄS¡¶ªöY ¾uCѨ͜Á•dwÐ+‡kÈfÊz:æ7Ä)¯Ê4 /Ú$Ì…uÖ7TD¦¨ah OSîIJC»˜¯s<Òj­¤}”9YSjЊe”•èaáiR,Ú:!”•­hDO_{¥"tËKëh\IÓro¡Æßn Ö¤²nÜÏîE ¨†¨å’’D}ß6ÈÕ¦ ±d/ h‘™!9|il:·¶Äúž«…›:§u±|£“ˆüÃ(ÒŠõ„üRñ, >ɓҴ&:©¨i¨TUhêZº“ £ñ¨<2›ò€›Z*H ƒ¡À(1C„¤fF@À8Ê:.ûTAE1W¾4nP)‹Pì<\Œ×µ÷¸>Œ£‘à1¤XMÏ'®OÖ_&Vv)q!†Ì°XDœ˜Â–%"ylr,Ct èã2ø5·‹ký[b¡˜!¦cMžÁnÓÚ¡‡LtG°†(ÅË[i d¢ã5F-™h“ªˆ^â×@™ÞoÚ2Ññ7¬5T{¾}Ge$®)ÞW>kØíÍY½Ú¢&í4J’íÉg •¤ëýè̯ ¬O{âgà +”3tCÀ7Tì¼ð•tvvd¼…'œ^öö•4“Íä£Ô‚e{p/$1fBŽ×zbžR^Ù„ïï9(FIzŸ…*®s…D®ñ?ÍÄ/p^–|BºlŽ'£Ü mòuëâ'åÅ ²¢Ïô²8l>Â,®j3@Š]q ~*n"‘Ò³á†I9$œä“Pp ÇÓ§¬ÿè‹ßØ„æ{S(¥¸Î“\ñn$ðX7x’öÇgqzx`roµ:È-mÛç&-âZÛ¥³Áh€Ò €·‘ÉàÄŸâŒEç[ ¬[5|{P/Y€Ÿ’ +èXqyAÁ¶6e…°k¾(NkO ’l³"‡[4,ú EÎBû ˜V/wU¯éêö}pØœ²ðÔMõÐQFßõZ†:h Â"3ÞβÈ{´Ça7ä^l/i;ÁËŽ_—Ãë©/ôdÀìÂ_õ+rX±åQ“ ²CeÀoV7cÔÎzàl„Ñ7‰‰ +ÚÂ"ökœXä0¸Xç ’¼gs]gÀÝó›ñXŸÇ‡ï@ðÿ{0i¬âBÿdM^ß~°zIÝFõø€“XÍïÁ_ìF>'N]¿ñ^¥*HYO;ÁRI'+` ” Ð `˜‘Ýò˜-fì1e½n;Çz&‹2ý‚c·àÄ#NÖ¬—*[ŠAÆ`”êÕbµñ–q¬¦Iðb7 +]Ue;Yf”Å`h±Œ`“ +dÏáø#yû ¦Ô_!nʯáòKS ¶†€:L €ß'c$ˆf=2 =Êÿ›Û‚Ÿì ªûÉZsþh]Ïÿ8¤£švç7ʬVŠ?Y3§õXÔ“5áV¼YmS’Ç¥@㟠•âuÈ—¸¯¯RáàSúã@¨vÕû¢­sè&+\PÒÂM³ëPÒ“t¢hãJü­°@#?bsXÊÊ"æEí,`GrMuƒ.™ÉÚ`œJŠÅæ?†Ý-ó’~ºS*Ç44ùqýX-ò éõCb@Mý€á0rUB6:^ +y +†Áˆ#¾üz ðXŒß¨€ò…¿Ì[„0ÂÈíàŸ<˜ ù1ÿ+Àxâù˜0½½2ž8)f ¸dML0Ù‡A"ãÉ(Y•܃<öäü«„c ò'„±ä"ç­âŽæöš;ïpyôTsëýPâ瀽ȴ*Ñë‘=ù’ÅB82€œÐ}=®Öb º£QYuµ+7ý>ös¡|sµµÚ¨Ü¿?ÖÆ:dça´+™ þ&}ÞpÍPç!;öÄäÞA +œÇ®O?ŽA§Ñ¡Ò@Ð0öeZ}*Óå(qŸXö?)±´€“¹–)˜ Þ°$R’‚aYÿGÞ´b`4oI Cô•¢Ø!\`¾ò”$5à*³öôŠY³xv6ÓÌrŽÎ»;Jˆ¶–Ý-Ð%3 ÈRËQY`.F1];P‘ñd5"Ä~TõM†H + žr• ê.iY€"‘–¡¿$ê<|ýèûóÐÐv8GÿÑ Ïs­ÞY~QÉÚ\жa¦\*™³VV«ÍqJV§H¬ì°A{ŒAáCJ &C z¬—þ:XÒoâr¸x½úØdÝŸ`’³ìýƒ¢—3¥82]V2 +ÿŠŠHzjû›Œ’q%YPXL­æ ¯i@%Ù0ûÌzñ8hzŠzáÝëȯ¯¯qpcÝ8Ú©ÛÙI#khOuš_GFƬú{ È|5éŠ0D}+Ï='²‰ì>ÉGZ´W„§K® "~ñÑA=И.ŽÒC\ ùHhõ0·åЗí‰ÃfŽ·#”ZÏÏûǶ¯Aìoåf¡ð§õL©21­›8P ìÍÏÀˆŽBÖë6 \Äþ—C@ÜÞÜ1¨<ùî€ü|»¿"žqº×íßBåõzs-ø€¼KÉØ˜¹û +º—›.–TÇ<Î,Qåxr¾Æ@Æõ2Œ˜Îó¼U7îy¥MÍE[Rë· ©ÀQLù0`w‚'È[‚ .(ɼaÀ¹‘Ì” +XéBF€Bt8@¹#Ùú(Àm$3¥,ÉŽ‚x,’m±ÿKùOHõo*’Í1ü^.,3pd#H–*ä§bª¡[¹ÝÌÓý÷rÚU ]‰=¬ï磅µÒ7hÉÎwQ’ySù‹Óøžƒ¾•Ù}w‘,–×=ùw yÛÏçJlÍ~4H6Ð{ýE*Yà게¡Þ{ìJï™ÌZC¿D ¯¾ózVa÷g^ÂqN,_'6ç½ä!@Íñz™P'žu +ïÌÝ€_Ò¼8ù½nÜ‹Zï +ånwÿPåîÚ ·àÈò3í,qd#_ög•I »]Ë×\O¦%ëõJJõOÞ2ƒJ“é†9:ú?PŸT]¦U>ÓØ¼:°æÇ\û+ñ¯åqdƨ5ú’— XÈ_s<WŒWÐȦWŠÿ_dføŒLáÞëû.Æ&°ç.r@ER<Æïí¿+ÿ¾ç{Ûÿ,)ô¾v17BÐøóxÁ] »e¤ZŠtWô2·ÉS*Šò2‘LpëTŸ-Êm™bdÈ¡Úz¾².DÛã”òÑlól>Ùr.S»î“³)lC4Ý×·?\×)L KP2Z›Ž©ÁÚÅÂX|EfT7nR?luH,²œœ¦ñŒÓ¼3>˜Ò/2é/¨ù´^ëûOÑ%Z?h×\hçNõEÚèêBßg™KvH©gé:™ ¹3?³«S_jðÛ¿V©‚ã2³U YpÈ +èÉcBÚ +ò’c´ÚÈq¥÷W@¾#œXðW/fI}Eí+öÜ,0@[K’ëWbþÜ"ãH{–g‡ÁÀkÈ(؆,†åÄÈ5–®ˆä-d—‘„, R°Ì#ß]º|½:Ë7¢îA`4@–ÿ2wÂáw¿ìMx(ÎAˆµ‡×W{8f¾ÿÐ-æHSš/+ø˜Þµ1xòIœa¡á¼ ˜ +âãeCCxYZdv—MJ0§]v“>¯ËŒ„ðC]ä:Òeãî€È¹,s&å2ã þ9.‹ÞÃe),.¤ —·ŒIà‚[FÚ²í „¶¬¬ `\-Ó,Ó2‚ˆ-«øx5’Ñ/ÀÓfW pYeÐÅî$k¸â½¼±£O¤dÝß;舎V«ÎóÐW©š#¯x)Ò Ù*SSi5Þh9gEgó™äýÌ~˜¡V×öXÍ­jCÙºª‡eÂØØÜ]ÎÎm ªŽ·0ÑTϲáLŸ&©€ãeÁDUªU—/MÃSY7äð2ßÈÿ(¹óLìÉÔu,}ÿRF" Jì|M&±NTH Iƒ†6©Ö¦@>(#üqaŽÂ?wɱŒzÓ§Eõ´Ntuœ¬ÒÊP¹Ž2eBõÍ“.)(À¡J@R'¸~Ê*ÊÈ@ŸºRe°öÔšÎÓ¥m”ô2KBëÔË0$HøÐÓUähœ€ç7åQM +þæ8Mu1õLŧ‹Ïº2µ3£¼1‰Ÿg…I¡ýJZ_Õ,RtIY„ˆr}¶z¹„ø3+Å1¶ˆJ0¶ÜBŒŒöœæû$%í›)K˜ã('®"I×ã´5á‚[‰dÎ+ØKøTTƒ-(8)ƒn ö+=tÞ-Øž+‡+˜_|`£ìtÀê ¶?kàR æ@ ,dû›\A°Í žy`f 8°à¾&Zè5àÛ‘Èš7"÷9 /IŽ _¢³ȇÀÑøé€ «1D¢ÿG Å’þ)B‹…ëß.ò¢ø#p:;O±gÜ`+1ü­  {ÀÒt©Û_£ï¯%*ü¸¾PÞÒ'ÂÍ"ç¿ËÿxœüQõG‹ß˜ý˜"êo™ü8Æ{(ϯ 2}{ëʯŸf¿0~ áõôÁ/¤êÉ=q1=سôзzzìZçqÃ¾Ž—ù­–g+_Ø@`޼I2/SáÑ Å7=_&³ðw ¡Ð8Œ5¥¸é Ð’àºëÛ^bÓÉ„/&Ëà‹sh/ï½Ì!;~fýzéî5[?å^¦¶úÎí¥3I½<íålÓ÷7aL:y(ºGØË•@ÇÍõ:®çë¾ÍæŽó¦S/ßiޏgsæ›86+–wøWF9¶æ%Ÿm5;D×-5Vp»œægŸÎÒlfo¯Ñøþpdšï.| ŸY(¼:cïciÍ|ý÷*ÊÌZºï]Æ÷FO•ÙïBÑ{“y¨ï^›ÈÈtÝ,óÿŸ,¤8nd1¹ˆ©\³ +n×Ôa|WlãTaÎKí‘Ì¡ÝyÀØüð˶{±øÜ©·ÛÇ(q¬}yn¿7aû•&Þß› #n/œ =:Ý]“ej¶4Ád‘W}'Ñô/î*y2Ÿ'Cz»‹fYC—Ïý\ 2°Æþp0¸R—ÞÑ +twFÆÝ:Nw‘…Pî*6òI†Ü5ÛCð'¹öѲg(cL”|ÜÅÓÔ½oø‰ŸHýQæã®£â|иké±R"Ì&Ceo—üüT4µ‚zó_«™FPÕ4™2‰ÓÝN´†a!y&ÆÉ 'Ò•z§2h”šð½ŠšÓ‘ÞЖ³ßãsäPÿ9dÍ‚Šÿ€;pù) Ï—”ÏeÖýçwa\°•3î«:— šáÉ@üfk•sç'Ddá{¦‡ñàáaqÄçõŽòÔ¼ö_Kà'Ûµ£Kó"4‹KÙýê¹|Õv yÔÒ«ã#8‹yјDŒD+æÌøþöœluLþ.±OjQ&Ø­ë åúö-ƒ\ Z ê½Îé÷)!R=«;¾^¶Í?B{Ãã#dïãhÒ •Å%V< ôdHzÍU† +¤Ì?H)\·ÛœTÜ’P,§< xf„« 8tTìÀKðg媥â»ll%Øõ¾Ð*X»9¦®¥–SB4Ÿú¼ë)dt^¥ + ×Z^݇ +oö˜;iR»•[l½ÊhSðCÕ)ú!ß„jIœE*ùX^ó§FW”V]‰‰zkF&ÆQhªÿ«d¼‹ŒJúŒˉØÙÝ¥Â#NòS˜-Õ¦*6Ÿs¯ùu†åÍì+5X?À¼–cé»ß˜ #§€@Ä6Çì!‹–ˆa{¼ß!·l1ñùËàÕïe=åx·ÑßïNžÊmÒãnLÒÔüÙ\Álºp®†¬Ê-–*1'ùb¶ì½[ÙRe¾ÓaËŲçÝlP£ÌC g +xãAà¦TÉ¿¨´¿+Þªw—>“ð›ãN„Õ +ª¸FÊ~è'9·w_ ºwÅmß]ñå(*†mJÇP¼wM×&‚uAþ¾ à=<Ê¥*öþ]¿û^ÄðfH³ËAÌâò¾*­Ñ*"x6zÊ0–<¤^®6z½œ‘Üè!Bα9ÚêWGIí=¼qŸmô93qŽ9“ä?êu±ìgЏÁ›æZÆÇ~cYGs–Ñ£ @½£Pê°*—ÂxGwxe ÓŒVlôvÑ´rQÑ?õç„UÝ,ÑO%ŽTEjñÆD7:UÑ÷/ö=’H__¢Ï¢å÷Èb‰¦Ûô…·5yl[È+ù"—(уx8ú®oƒ‚^µ¯Ɔ"WÁ«1´j\FXª¶0Üà!®š/aäŒ5Ç”DñcÓB1ºÅÖ\ˆWò \ó‡×¼ÇÉ‹vY*¨¡[#¼æ¤·˜€ò¡¯ÄpDžÁdù=6—ò’]/.øJ¾ ÏÔì±ùm§‹Q+Ó§Êæ‚6­ j6Ÿå´²‚âmÇ;»ç0mNÚ~¾å¹ìb;èlží7(Ôª#zãÔ¼ûº¦¦Ÿ {jnä²ýà#Ó”) ùdˆÐM)M†bÐ|`!¹ÌÕOå-\¥o^˜c>€9Eê ¦°wƒëw*ú©ŽOÕæ:u'í©AªíÛî™pM5Ýç‡é–ƒGs¬ìԀLjÎíT $JÝu§~ÎÁz2›Ó•àGd’8ÈNãpưØÔ©SÝlËèwY˜ÄŠ2l¥«Õu*YŽ_d¿T…g²þC$;Ìë'C'Rþ‘]¼ñz—Áá%oTQ…¹³*º]ÒJmÀ$—5ŒAvX£-°ã„˜sJRƒÚ¯ŽIç“ÊLäšJ7¤)„ïË™ßFöb¾ÒŽGf +w@<’I@&Ï´²6àÚù,¤?¤OƒôΞÁ]üæÝ; ë)';BPZTf÷+%\Nx¾÷PîD埯C°-hî+à‡4¬ö¢Œ}7ˆÏȾôª7¾ã©Ì/xÁd·¡Øçú_‹†ÏUö¸õs‰›eQB»öö‹#kÝ fy;&+híi(”íDܪŒe‘,kÃ_@I<hGzåè.úÇn9‰w–—1UUðÍ‚i%ãiåX&]­f¹z§ýBQtZRù:‹†&¢hf:kHÔsuªQÆ(˜4”²…Y48Ç%šoG_ÙÝ9,ƒÏC¥U÷É)¼)€wl×wÐßÎî´Û{Š€iDÉÅ;º<ð²ñv#·ú +SÈt&¯`†}ßž¢çÐùèn_Ww³éŽÛBì9º»ó:Ów’ÕíøÉo¥ÍqLŠuúꉲXéˆR[ìrÄmYÄñ–\&ïžÕ@I-R…^È5F fIcË'4!ÎCP_á6^ÛŸŸÆ”=ù‘Y 3*Mdhüô9MÄÓZ¯ŠZÚ+Ø-;1°ëC(‚Ñÿ±Ò3BnÐ"ôÚlªº–„~S—8õKTÂé]õ:¹ˆ°œDêqçse£û\·xS ¢ï&ˆ2.ó½c #¹Ü)Ki”ˆÒ˜ØIé&M?Q¤3oÇK—[…Nž|ç`Jí† ]aèäå Åi>At€íü´è¤êÔ$p~Ù±Æø ÐnøîièQ²ÏJ]ê™Ñ“ë.ÍÂUíÚô²£ +";–T†ÅÖYP¨{`<³Š5¾CnÖ­ ΋3²MŽ…fn˜ZLâƒf9=S‘¼mŠbd¦pº~.Ž#6pç»Û- €³è’ ö’p|jM&@2¦°P@ä€ãqÊæ¯öóf%„_Ù¯ƒ¢ $BüÞóÕï¬rx|ó²”ÉщWqê×ÁÛéÑ·»›%ή•þ‡Ò0™êªrðš!ª ½=\…gÄdáS´a®Kðé^È4,7¦ù–j"Øò¬«‡6Ʋ¾üÙªà³B¢rÇM‰–I¯2Åi©ºäð¡.¦²Eýç©™Äõ;`ÈÞ$dGQ2£ åeY¢"ŸW]ÁkDÖ%J3ö–$Ïdã ÀN|ãHþ5 C‹ç'¶Kãc³@ôD¯+Þ÷šJØåèy% ‹,ìïÿ@[Æ^x*hŸL(ñÅínÛS8­’¾½3É$·§ ­'¦õ-ù¢¬«Ýöºc: ºŠ÷«%ù“ý‹…¸ÅiU– ž•lyB +q¸áªü%fNÿš'SmJ»•Q)pÓX@*=£ËÇHž}zÿFkÆT<-‡H¢”tˆ:8FîÞ)²Êïœhß<çÂäÞràþÕH°—¯™R?^1ÇFãg <‹%™µö*²ŒJCü ‘ñEMTÔŠËðÈ ÅÌSSD “ª‡c£Öœù#D1^É{Äÿ µ"p㳓ÈÓƒ‰ çuõ®ˆ.ì$pLgà‹ßÁI0ߌq4:’#nÜ÷r›4Ư~eÓ#E13<·Òò0ci3ãBx<ñ®÷ÚñÕœÓËJc3ñŠØÅ&§·±—1)[éW©RNqë é¥p»‘™vŒÙ»né½x7ølzGÅÒW\g»¨kü,âv>5/ ]¤bê&íÿJ’¸Œ÷`âii1´¸4 +¯[mÜgkêx•@VÑæõ€ºÎ¥O ¿ ¤qÇžÒÙôÎN…Ô¸Müì¬Ê±Ü<”°€™·øóûª_bªäÀ$SÝ‹å˜à²»hMFkëj<-}"i¢‘à0Ú6t=4 +-5«}à@””íÓâZˆ\ŸU|9pR‹@c0-¿Û„MýŸ“(ÏWUWF²oXhîj0wRËšë€:™ÑUM3t듉l‰!#³X¸ô‚•׊ Áp¸’†ê,\)º¿nð$Í*%ª—2B«AˆZ,mèãdF9& úŸUêE¤ÝBíA*UõnžTô/ìx[ºÏçËå\«å²*…~™˜%SOëÏÐwýç½Ih‘&•*Joœ Š÷JQ [ǘ¾Õ=Úª´ßiø£ßMQÔ}WÚЬL F@ž‚Þ2)Œ8ï'BxÇ"pêƒ.£Ýæ1ü¿h^ý2¼¨ªp­(²€±ªn«49‰7pÿ¸ˆ —SBvn/úlþÅ4Âñ­4ÄS@ Òz¥+¯_¼ÒDÑÒ4ôŠ*L6Œãw%6­ÉDi±¼µCRd!æÏ" {±íú…íFú¿éû¶ÊåJËÅéÿcÏKb<Ô O.. Sn~úôC\Â)îÐ[ÓM–™-¯GCì‹i‡,--”*™Ã¨‘e»ëlK†¾]dYÜD÷Ž1 8xk“¬ˆ¼A €†ˆÊ;ì©,‡?2'hÆïcS1ÑïSpé[-»íŠe‹}ãÀ’-qk`ձ›E–-~•ÈÒ²™/'™·¬ãÆc#£¬"Í.ë}²>d¿ÕÛ #KÔ‹[<Æà ÷dT£(€&é;Ø¥§×’|#¥r{Õ×1X¡Ú=‰-7«mæb®èßu ðÒž·b9,‚åqˆ}žç<ÊÞ°ÄP½˜Ï÷m= ^Ëãcø† 5°HgX›÷¨‚ ñ²…‡h±h2îû4«9ü>Î`µ’¿ªk\(½:®E+:ÒëeÇÁQÜ&ìl—àÏaE‡6ïPÌñhÍkn!î2t¤P\…ÄP ±“t"•ø‹qES½žqãìÎwIRˆ³†tGs9O§àažnÒ >×iÎt ˆÓGÅË×Ë&LtÕ(óMq° fåoa%Šš®Vk›Ç)àD&˜¡×;UºÃ$Eò¨Ó"A}™Z!Txä—¥Ä*2pDbE‡€Yò +à Åtûsƒ¢®åÙKVÚïl¿oÀ}lØ¯Ž“%- Õ;V“ÕhÝ=Ån{)‡¼° C`&Xg ·åÀ¸¼ô.¸/[Æ«:^úèm„úÚŽÚ& €/¡ÙHŽ5.…[r{ÀÁÍÜêÃ!/5p{’ÝÕ|¿2?róYÄ0fú†OXÙ»XÂtAr1½#¥Šµ)klñ{H…̺bVáù<ŒG¨°Â\6­*H/úr©#Jéw.$!éœÜ4² ¿MÆïÐötQcá8Ì€üpQq1‘Bxìñ˜Ñíl‚“5î'ò³8ì§€®ý¶„[Ç{7 +]–>6ú¿•ä@3P”bž`u¿;g>t-ˆP¬·‰ñ÷8zðUR±WÇQ,ˆ=ש ‚¢+øÃ[x*ë÷.KBϯHІY‘¤)`ã€Ýר[ÈÏȈ¶)¬:`Î5#‹Œô{K¦ ÚîÂVÎüÚtç5 øÖ µ¬qAÁÛœåY:憧nè]òòžõ¹ºä‹%;cå¡=5š¸æ‘zG@Àh’|ãŒUù"%—ûäîe;Ù8ËJË +o‰½VsöÕ@üD¾‡Ÿb„›±îm|~ɰàǶ›O·›)/Ep6c²@°òOÌ—Ç {âæåá'²µÖ6ˆWÆ<ú‡‘œ”[OV¾óÀˆS +2l~_¡(3 ªÿêX;º~ûzpô½öë$N òU$ž"H‰7™i'H´£âüOdù³æVƒyÑØEeU­zÄÓatã(tMˆ ¥‚.D;Èq¾-NšD_ávñœ†Zª^q«5S6´7:³*:½Æ¢Gµ”±~MÛ.—¬!R˜M3l³iHòy·ž½hèd üí¾3²ßMkü¡¯ÖÓR^ÎjºO:¸°J”ªÚÁ½ s2è¼‰Š‹í4P4Bö¬§Xܽmu·æóqã¹BíÛ‹²Ô3½Ä!ZÙ]x¡¢¹ƒAÙ7äø€ ®Kþ.ÔÁL¹ ö”ã‘ùÚ›JáëêœPWHŽÐ˜\Õ: ¤›G*~gJ•ú +QÏ“‘Fõ|µR3ýÓXà¯X]àsÀÏ7[‰²º„‰¬ƒo CŒ@±ÎY9Ð…ò”2ê»ó¨ä}µì×7:´ÀF„S{ˆ•@fNB}¡)UnL)â +QŒŽÖý3¦½K §Øðß̽ØÅå*HœÁ䉾goñíݪN ¢gT·M5’Æ=#—îz«±þàm䥊øÁ _Uë9 -í89×ü #¿+vÃ]ÊÒCÅy€•´"B_wri¼¶‡éšt7G50Ì…Í_ØhGHlwü" ÷„ºº>O\fÑ¡RäW?:$)¸)TŠQDd.ïÖ5ùI†´¡*=Z%hïܳÙÛ,~º·œœ® 둼ö†Éo¿u€OÀ¡Iól ²‘…fI=Äâ:û¢m]æ ]¨8vjN'êLö»S Bc K¡g€WWœ/X¬=Œeu²ÚÑËAÁ@ižœL~ªq+ ¶ûÓ6)´§!ÞýéLöbÑž¥×žCë®NñÓF- %CâêPÆú>I¢Eð Ò×Xýì ̰—µM¨ùriÑüH’XDöA›YÇšïCv¼ÊƒWG$êsbuÄ”9eÆûcùÕýÈVkoxÕµE"ïÕȉn¢Úz #MÜ—È®À&•™IUG¿i7&ThÃÃ9ä}2ßã¡KkâûŠ‚m"iÞ‚ZÂnÙºuÔe|“Bh›ëúá¿;<…·])qL1>Öih¢/øæÎÕaÖ}¢Nöm˜ä•ç+2U¼ä*~· +Ù.Äß¾Ÿ)‰6Sy›Û&%°xî åˆAâíÙ³Ðä $Â7Óã¿çw¡¤rh$–lø¹Þ`–ajÙáˆÌÕð¯[Q3ë2TWøßTK_žV…|@þ0æPq{ðòGÔ4–ÁÄ}Œ&ïøý»~ϳ)3v^dßÞ¥ 4Ë@]­Êä:MKÔ+£¦ˆ­ªÆc'½w~༊ƒÔ³ì&Z66Äžs‘"+ìÉTV7õÅ 3'»œ OùEÃw¢!ƒ£q• ›º²µRtI=öþê’8ê2äØVªñYÄñ³Ó –ˆ—×wF–æ7xý“é€C²ºG›zD§î ®4¬Û¦áEò–“; ôÝ~ §/mÕçQg>D{^ß=¡ýaMA Ê7‘mOÌieæLÂT˜1€3 óžì„]}JÔ;fãÅ­CÈ#}ñ[AVz[’"gôF©ì¿ãh—”.zžwŠ">Géø×ãê®ó6ʆ¤ñÊ+uÖäaœ4Ño "ãä¡f¯0ÛºÐ;k±×R +‘ýˆy 8UØIÓäÐʾ+U·t»!-ywëÍ„1Â’Éä\Þ¶†žÜQöl¡ !„öc3Iëx1í$‚ ]±Áç¦Oÿ«»Ä +Ž«ÿ!Ø[<•|竲§½‘Ê[-°œ)çxNPïö-sK2“)h"gÜó§èTµÞã+úvZÑî¯N¡¬Nz!Ñ6êBæÉšé¤Ž +†ÊÏíÎÍ~&’©á«P¸,»²U”eùð Pm€”_¸O º}û´°ßÅ!èœâ"„ßOèðCei%eòNˆÞuB0*. Ðר0q`8áŸ2žÕ…ž”œ0ÃÉçâˆboÑ„n?:)®áÿ¦æöF2‚žÜ”Àlíp[íÜ„1[Õ;9cûl‹öG'y¿7ûVù¶”;•-®«<.B'¶}ðÔ3£˜T•ºfï½vÚë(¿¹»KÏ€¦ gô$ãWfìÿ#=‰Ïέå:‘Cñ›ê}¢ˆ®ØÁ¤qÅŽ}‹Š0Æ?ì‘Æ=ñsÕ +Ì2–¹¸Ôݼ˜¬Ü¢qÏ£xø¥æä÷è¹Ñç'¿]¬…e|›Ž{7>¯thÓžÖüZÜ{ ŸÛ[˜c) Ü×âbÜØu©à¥$]"„p?c£(½;tÜ‚{"˜r5ÛUÝYIîY62 ì˜k»žvྴö‰¬à^ß¾ö^,ÄUî÷ÂM*¬yÞ«ªdƒY˜Cç=Ö£—WðAFùh7 —± +R‚_j$Î`´D\£q‚oR¤=¯Ð ¾ÿdBüúẋ|)´šâ'?)èùóþE0.’wåî® ?%'Õ> ..ÚcŠ/äSh¸Øê é"p±±xßùŠÎq‘’O½²¸Î-h’‹s¼ò6± 2‘..ÂÕÄŸ‹,:§BäâJc§Ê#á`©I0\4E¯~¨ÔuvQ꟡ Eä^¶­©xóöT3PPð++†–H—HÄ‘Yõ¬¸¼JįßõAbE*S©/CJÔ¼ñÉç‹sž½L)ªàï[Š"v®ô „¦ø0³n[¯eÞNqò¨¤ÅvY€p$ï: ô—aÐÎä6©&%Sl÷[u$I‚¡,f Sìa^¯«ò3*Ò¢¯~ùT`,SQ@³2wÝìé²UœqÞ=†[fPUÅ› ÿÎ\rïªhÔŠŽ®â®©nSˆc +fS½‰èg6+ÂSõD°ôN¡ç+ÜίØ/G‰!´‹Ó1…°%,-CÊuD³\@ïÍû}»M2›9‰9šúÖBrCæùf%²—àâþgü#Œ„øµhº„þqTÝC ´k`Þ£¬r‘²½iÝöp(cdo±… .®GIæVô[œ´â(·±xŸÅbm°ñîOEµ­›ž8Ž‘†,ÒÁªw›ßNEö)Ç,~ +@«1Pk§WâÀ"Y”ñÓ¾€²()K|¹ÇÎbJr ’Þ«¦³HƒTAOÅÃ^~OÉ;‹¡·Öbøƒ3fáòcüF‹³HfÇd8p£¨fX ~­ßXÁû¹òØ”áTŠšï”Œdœ—Ÿ(ÅŸs?mž`h@ŠÙœ´ü?-):„—ú¸hE/ži]F¯…QJL8,ЩŒ® +a-e†¥K-Œ#ß**Þ—Ê(·%¯¥OæXr€ÄÏöý¬ðĈ¢ä»Ú÷M†+¦Ê™ÓГ†ÛU\h˜ûÈFþIYj\^ºó’'ù" Ó5ìì•ظ¤‘¼‰0S4ø°ôˆHA®—Ì6E©Ð§.‡íˆ·v¦sõ5öž^k›sjÀep{5R»é›£;m/e˜½à ˜Øc¥w¥m9¢ Íl¹ˆ¯ÔÕ+d©·†1”áÏ^‹Q.Ë~"Ñ3çjà %EÏ3Ü2rV)ÿú v +endstream endobj 15 0 obj <>stream +Œ&SXB:ܱt5ÑËHe¤¶Lµ°HËGs>ô!’€-o­ª ü6N}¨}DÔ¢WD)­òDŠ«õRŽFzÉõSüE±Ú ï ‹T¸C ÷8‰H"ËÄÌ{K~ìù„4Ï»çáàÛÞcÖ%ªúðH–Š1Áä¢üvî)ÓÁ&’áÞ”…EöÄ$Üíó/ù4Rⸯõ9À£&»O‹!Ì w_V@”ï=;;3n ZÿS×Ð%]Óoˆz°,=‚ÈøßÌØX:u0’7Ì̴ǺlÕßG¹TïæsAÂçüÔðõ‘ps?]—˜=:bœ Ë)f-!5‹ÍÕ*­SFDZ§Ó†²n‰íïX6±7pED-׿+e(—v-4±ï$kµ ñ‘š.ôWö›{"2¾Q¶%üÞv7 ò=ã*Ž(ÿ(TãmÀ×”UÔÃP¥sf¦Ž=^ +Ïæ[<—G*bQäÊ©ëæh ‹`NU‰³IŠÒ{öH•¡A£v)5ÓG*úË=×ÿ"(ýú[<>¨&åyô|ôÅí·üýbˆ™tósHаè îF ùÛÖÄ;ˈ½ÐÃ¥;üÍz$œ™Tauµ«”N¶”kMY§ÝTËP/”„u +]ÿÅþº_Ëú +»ûaÓh„ÒüÁù²w#6[¶ÛZˆùdà‹¯a°±M`ò¡¢2%@Õzänw£”ùøŰ&| @‡i2ó1Õ=Æ›Z ú>dÕ›ú¹á¡3C´µhÒ¸Ñö…BoÈÒSÏÑV½ÛÊÞèSÑSúVàü'º!ù:ìNz¯Y'ÊÕP!§¡¸­¹Àøzýžš1É‹C´Ž†ˆ$u,øUÏt´€¶ß™Ñ)ÑjÄøLŒM¢ßŸX› b“Û‡=[ Ã.—2¹¸€ÏîC)¹¸îÂëð eB^DÎ"-}…:jî¡× +b[Ä1‘° ×äõüñ î€3h‚ŽVŒ"pÛZêo…È*_º\«™9WÏ›*™gpÒApÉ¡¸É¤;ðà2ó\ÙhíÀ…º@eñšÀýpm$hEßò_k\Õ4AxÛ!/cáýjßÞ«%ÐyBû–ë%ÜOC‘‘ok7JÔwÈoŸ +íìÛ­[¸µÉÞ¨Ò~édío&d“ZBóçZŽêú¶¬(âùµyÉým$Ç%1µrÖ×Z©@A£ +«B¹€0ûuOÝ.S©žn'—2MÙ›d¼GO“„_œ,¿‘¸ t ³œ¢öT NéúƒÇLÇ|£šLÊçæ=W{|jÓÈ«Ÿàë雸ÕK‘Ž ^8ôÛ9˜žû4p7Q!iä@Žíë{cB,³Ø:«0ú4EK¾§{VÈã! +]r'q)lûnÃ>`ÊO’—vÕÙ‚–}ÿT½ò–»öª•PÖ¸I« Æ¿="×Ûß%tœË"§,õªáto“i9á–­4bäÃ.ÐWÅ"‚Û3ÍðýÞ.Y´E`úÿÙºà‘ZÉ®Œ^~Ú‘`,lŽmRP˜t¥õÔ ¢ >ïíÂÐënqæÙµ¼î*yÐŒ‰ª8¥/¬ÐÛNŒîO¶ÀcTò “+¿÷± >Cþ?‹ 69 OyDB^»˜‘_èg¿Dœâ­9\ÿ÷[Jð”fLóytÀ]F˜¿òÒSŒ¶£©ÆˆîwŸöVÀPý@_ÈmêH@O§ÐæÛø­§>Ã~¡l%,d¡½Hήô ³\˘3©pýe +Q˜->ˆ*-4¥+7¤å½ù­HC€¸vYB8‹G±X€VN{p̦óð`ºM5º¡@œ8ºÁ£ûÿú¹G[à€TÂQºC±qo¬o'j¯”°–8BSˉõt!ß+‰ãÍ ã1œÕ2‰cK¹} `Ó —@’Y‚8hüêõ³±Ô4™ZŸ»(8dîPsÚjñ9^ϲ8Æùbèµµ™~q³ev£GQÆè$q./”7é¦Eaá›æóÐJà ©Ç{Û×·‹äÈê7Gƒ–ÃÍß`C¿ŸÃ?¥£ÈLvÁÝmêédÆË¿%ˆùTOÈûB#ˆ¤igq¤…ÁÄ]ºööˆ[¯m6y‰Û PJn»VÍtlXq&Œ/Zt[m.ó¥‡f. »×Ÿ‡XœßvôÐDÿ¢–8âu#ºWUhXQì‚ãW2*ZnX¡R‘'ÊÜÝôCŠH½A´Å¤ñ¡+ WܹvÁïÙ¦¹YF°y1%T€iâò¿U´.ÐeuZ¶•Ûä‹°.ŒRVl7£æ¡vkÊŠ_é|Ú:+ªä,Ëa‰>ùÌwÄÕYaâÒ³b–¥Ö( åó¬ð$ß íæD7ò¬ `é'^…4ÿ«¬øìkU³ù¬à„ã +ógEø”šÝQ@­8¯©ôOàšÔŠÄíéB˜mZ¡Ùt©p$blaðSùâ:lÅ10î°ß!ÚŠ)ÕÂÁt¦pÐV>KDÕÎÈ\M[APý#«ª­  û¨Ä¢VÙâ-´ö¶*Vi+.ÍB7QñRª¶‚&È8¤‰!Am•¶ÙZ¡8*9Kj+þvú¦Á@!‡mEüúØQ)‰Ó»ZNFò«æ¯Sã® EÓ†”<Ò-„„B 1È|¸¤ËÏÀÑU˜þøô¸IwðׯŸF(1¼¬éKÊÌ´ ÐÓaD†{K/Âß® ÐÒêdûÇ22zÆ ®0øP%{ö =È‘â£*5D (sF2w Û¼xÇh'L׃4B8³FþecàèŒ1ÑÑ4ËV”2¼ù²ZŽ ½·Îá¤69Šl—+\×Õ^uQA/:ùÝ·Ìß`¯!91ßET¡Pü¬×à†ñ#’ª_—QR08£†i±øA‡=³ùñè¡ýv<ÒfÄwUÚ}Ä€Ì( ä¶Œ"^xW ¥Œ‰Ž™ÉÉzXQnV–IQ¹»ŒÕi.˜D¤ÿ*â§‘„êT’¼Œ~Š' µñÜLºc …æ°ÖõÉ„v˜ðS#”UŸ”],ðºÞ0 Ÿ±;ºÅÀ„2ÈÑ¿ÃkI+ñ`^é£q®x5=šçs‚èV¶ÈÎhÚ#ëñú!<[`ÿ0xšÌñ 8òæEàÜ…×Þ5)5gg$h¤EŒæ¨jÿð3¿3Ú²’3÷‹ëÃ˵iß—ŸÛe}⹯ |öÔ7K©ø%b¦Ê2J=®x«%2KÑÍßÊOcÃm„cƲ@ÝCJý {)’Y>EàŒBŸYa¹ÇðÁ§-È:K‰2‘¾ñˆÖH®Á÷(£¶2 qJlPEÍ÷xuø úS4˜?DLèŠy’lUëÑFÝEê¦/BDQc<ø¡TÉá]="«Î|hæ0T˜+(E"zdã‡ÿ™GFë|c1Wa¬¢,­F%QsQ*•ŽŒ~#wâ7z÷‡ƒD³ƒÖ5Ä#ÜgŒâct³M«!×ù@¦CàuóÒQ?áTµ€@â­pÁ:—Ðý¿IP%I=>ðêñÁŒåøkZ¨©O aþaüb¾*PÕcD$¦,Ù€ÐHŒ— h¨»ò/Æ!ujLhìf6ó}j+†K7*5Ö×b¡ÆÚ«•Öþy!?¤ãÇUˆÍ»£%¡d{`¡e‰£®*l·ƒìí(…œcÃX7µ Á_ßo)±Vœ£POpô(ð5V>z&ÅP™4WH ÊÒù}Ð&™[ÇY (FÿZx‹ ð<šf;ß32ÉÂóý ¿Ò5Ýr¶€ñqE×9”b§Ó†œˆM¥¤øÕ£Ègè®Bâ -€ÑXz%0zé“”68:KuÈ8¯‰-Ot¥°¿35‰ŒåO1Eª¸p°MBþ¾XÌ=:„Õ úPŸ©iÖall_¼ Ié'ÊrŒr!-PWÇú¼ÄÅS c^íoM?©(²qÆ,ôòD?+/½ÕHäé²å+Ú©"i_})‘½yWbë2LÖ[o™E•y\`+½ç˜¡çÒÂ?ÃÇ›>¦U å¥Öbh§ú—ôE‡œU¿-UÕoè\*ŒÖi)7—â[,úZÙ¥Ï]ïZt ûA¡LÑÀh;‰–¸Â»ÑSQüį]Õ”³æÍÇz.T—A-Зt*zð»q›'àö‰ç¶se÷ÁoÌ5½#çö/~õK^•¦E²Ða¦¹€·vé%1·¥›õ¶B® û‹Ÿ™+ÄFñ …0ŠÞz$©{Èâ‰}žM¥vC•ò%/RÈ|¸ÜÒM‡ (Õ^g`ô¦'*^“T;OÐf´¨Ý8§¸Cx±+”•“8/:óc^¢‡¥]…Îó×õ+ü¸—¼1[bƒ®rŸKRü‹AkbOÈɤ ˜™¸Vç´4‰IÛÊ èždÒ™»ªã³V-ª;ÞŠH¯ Ì9‚°ÿ2¤ïiPpê¬/v; Q”¹Cè …:c/zú,Wߢy±gkÇŸöp¨äEkæRžœIðD]©r¼í¡1Eƒ`âU5aÉA14’È£„ßá5ñ¸^äÁ˜+ ]pP¨WûŒi¤4_DTl¯û:hýí'=íŽìtQuþ8‰¾ÁÿZä®"ÓḬ́µ:¡FrëÁ¿¤®+:4"gW£?á»q!Ž3€ñ•Nÿ8Vú¸=ˆ2íEþìp•“«V=JW!P¡yL§Ï€WáE„yP¬TêóLŸ+¡uо°^,qÜɰe­Ç»A 8ŒV}f&Ÿô˜¤“Ý_«\þš…¡¼M˜¤Ó¡¨¥ã ‡OÆ‹ë9‰þ·« +Ö^WùZRÐ%ùÞí¸R PžŽ"QR·õíL’ïÇž.ëu˜Üâ[­ÓëØšµêâÐÊ®^\t‡TÕ´]ü)¿sÏO›‡­ߣj/à©}§[n2jhœ,ƒõ~zÃioé"?¦ñ)Ҍ޿¹6 ‡RJwî§»¿a~ƒW2Eæ„Ky@[BÐV'.lƒá­ƒ®^‹išTøaÓÈvÃçLDy¾uw¾v|Ÿ`Ãxƒôú‚}¹¡f‹™kºx¹?ïÙ!ÔÅÒ +8|J¯Ž¸Ú'ê‰ÊŽ^kí$Иjöiš\¥‡—Ü6Ð8Ã38-Ó[!ÀdÈyƒÎ:‰÷Þw*ƒÊ¢z˜ ¼–Q èsé_UI±¼ˆ8óº 7óE‚¡ñ×€SqǙ›߄»tñ ’'=È;G}ª:‚LRí‡3˜VŒüètq Z¨ŒÊei@Oƒë(¤0Z“¾OÐÔÅ5Þ Ö†&È…p•?Œ¦%) +Ä}þT]´¶fÖôH±Ü÷ßH©)%)®.’ʱ²µðxŠŒìýÏ7¾*IãìÆÊ<+饭pþ2’ñÞEþ7 ©0.bv"íg.î€gÃäurc‘Âr¦ƒã&œt2)怴Ÿ¹È ‚ƒ—wpC‰,U ·ÂŽ;btP_w† ÁÅT¨Â]» ‚‹«ª¹“ XVè +&öC½É¤Øqì‘å¦Å)“9¾ÔI©…TÖj:1Faö;Ç +•e‚›©‡âH_°Eõj÷ ê^œæÏ¢Fa:Ë¢Ò¥tŒ2‘C ‹çcä÷‘]Þ• yð+Þù°9þŽÕ·iW´b¼¥¶¢!ºÝ]Ÿ-à–·ŠžÛžÏÊh‹ýžŸd»·=Û ¶'W¨xw,òì¼wåù=s˜ŠR1R Iñ&"–Fñ@̈â·ÃªìînCþ'Î ¬î<½Ñt¬B8Å4q—%‘Ž3'yu*'î…‡œ€ª¨>ã$ Qâä©X!œp`qåß 8À›ïÒߨ/jt°ûnÜAç>Û»oà±ÇkVŽ(Ïp«›¿Xå%f^*­&³Zx—Z[ØÊ™ÓH +wÒÚÀIóE;“ ´ÆY¢ð‚à#ÄÌ8/¯A´®£—©Ý Ï^ZY¿8ÿá®n02‡obœÇÄ&¶ÅC’ÅÌ zدYá$‘†YU¤¿„iÄ aí°8ˆëPíÂG‡%½_0ïuÏ뜜—Îk›ù»\³rŽ¯Ë£¸«u.)žöê¸jUyû¡Bilx©Yk¨ÉœyNZ?U¶â7Ëå¡ügèLcf)–Ì}ÔX†e¯Ì‹X¸r¢êÔgõƒvÖWéã#!«ªÎ{MÅpê_Šêë™´ãÂPì£)îOúJ9®ãGJdÙåXèr„ æì\1±vÌ]†ðêg†´˜O _Òž§a]Ñ=¨²øÂŽñÓ£5´n² „g,ø0’O¯ÄÙÑ,“Ó +ÒÙ9á@]ôƒ¼Ã|#iƒ´ƒM?êÙ”–)¬SìéÀ•Ê¡&ظ‡l@ƒ%ˆ¶¢å•õ>$æW¾º8t2çAyÙ€NŠS‚HØ‚¬ƒà¹#ê÷B§¨”¢¿pLÃi³%t‘{ å÷+5±Ù ¤¨"ra䳸:`¡VyëçÌ‘s+qU8Ò(ú²¨åÜ8ûEÝ o¸ÎɼB{×¹…Û&[| -â2Ûÿ\RÃ4²—" 'k¨œu¦;CqÈ)°ÕùkdR<˜¾L b¸øG÷*–@zѦ)<ò {%½TöAf]¤@{cT‰Ë›œÏ ù•‡³e/=—¦ÐwÿBË_œa¥]ê ,º¯….,¤]gºl2€–o{[W¬ZXá»S÷Gª°•èôM Lt$Ï`È +,§b™¥®C~&ª†CгØô´Ç[`¢"À>¹AÃFJÿÛ$!±“äUÈkœ1´I¼ŒŒÒQ&f¼ ÉlîrI÷†>ûá1 +͸±ÕµR ï œØÌùnà[xÎÿžc˜×7⧆¡þωÁ ³ ÿ!O:AÛóEÉERU º(1ÛH g VpÀôó•³4«™{0à°öKplX/vX#Ø º[,ÎoP£îü±Ñ—8¯90K¶Y”Ä‘!2Eˆ8¨ Ìhºé²+*W»±q ´»]ÇEe„ƒ?T#ÀäJšÀíÿZ$¯È[ 2iüZ;?Ž ¥˜Æè^p@IRaﻬ1¶0œƒÉ/¦‘`C½X&0ö‘Â~YigΈiD—xüQ4LcÆ.WX¢r0¥É‚ïRĨ88Ó˜6Í«NÔ8ݱ%¦CNÇ¢é…HÔØøSÐø™FöÖ¢F/e?ÆÛ\·WwQ㡸O±UãA`¨œ ¥ÁU£ý’Þ{&´FP.ÊÕdÝ~Mø5’`4Ú¼,8kÌd4œAZ¶ýgä0›V3B³FÞ²[o"OİùjhÞR×–5RïdÈm"¨ŸgC_‰—W5¦ÃÙ[±²ªiI‘3¯#DUc„ rÓø&ˆ¹A!¢·Ì~dDZGÊ–VîI¤zgÕßEJÔ˜/×$AWM1N¢FâØóIèØÂ”‚¨Q®3 8X‘y2>ëɰâw‘îóß´o~£hÞµÀØÙ"])ƒøŒØnE½“îÖF¯²êŠÅö©Áx}·RP÷̆£;ë»9Cð_×^¬TI®Öv<ïÖ•²ò‹R]ß­(òIúGÍt›=ÿDAHíô=Ñ6sBã–núCR£ "Ýû,Ê[°•·ô­ž7 yk&)åß·–hWVë œøm Ax q©Jg¶êNÑD@º“­ÙžðW£Š’$dëÝØÊ'è@ÅS””qŸLŒ­×…‹«žIy‚ÆVUŠŽ%]³ckñÙ;{jîcÍÓÆÖ-r™C±•uþLZckÌǃãm¹WZ^×Zýj"ö/Þ´Ö]êb[ݱŠ}äÁ‘Ð)ickíZ|ÿØJŒÆziJØÅÖyX c"½ÍÌZ„µC3Ò“‡ŒÌZÉ:TÀL[gg­I<|–áT„©[Ö:¹†alâ |&\IÛ^ýØ&{’€'¥3¸£Ð©ÙQ#£Åöm~^"±³äÞ·®SsòÉÒ >‡†ÎµÌ'We‹²×yÂ$tí¦/oÛFŠ‚D©¶ŸmóIì58FŽ­Ú®¾Å4m@¦ÿ}§a—‡ir!lTÜÔWfÎ%_ºŽÞénO‘½Ñuky°ëé‚§u\ȃÎMº³>g}|WžÊ½#èdsyæwPœC¥¬aøÀÇ&_ÈF7×%éœÆ¬G–×( ðgµ$SŽM }Jî"“Ò†sÝIˆ¥™ŸÊE@²Šê‚'žsô‰ÿ(š×tj4ªÜPB]j;ö´Þá +±.ïÇ›F UÄòo¡\D„ÉqLæêë2Ǭ›1ò(¸•Úªt°ýØBÎf0XÃÅ´´•Ãkæ-We£”ft»lµ_ÕÃ¥°À@ÄN› +Ê:Lp¢¯cû=d˜l3¿ÅU Ú¡ICÍ ´x—qï|¹§ºôǬÕ?ìèêµGU_÷€›BÌ£8QFwðþ§&8Ç-“%Wû ÙX—<¼g©‰¬…L*Ûå˜Î +)1å|ý¨bFfxìZa×àØ—ø‰Î]3ÀˆËvi $µ¤†ý$žp *ƒòÎOÀj¶Éž¼'ÉB‚¤™9ÚÄ‚ØÜжÞI édf­ß5H-+ûÒ«u[F‰$ׂ La¢(­•,x‘xà¢î}ÇKT‰ÝÅsrÑ7ˆÔ¡ÀëkC†‰2¬/RlLÕf5ª´eù“-ï6w¦|Ú…±a,Š'—!^XV´Ã +¨B=a)œ™2é ?}°lœb—Ú ’yò[“š.{zvX^¦ŽT’Ár”#ÖÈDzâR¯±*(é€Y©m°ØÍÊClõPiïÒ]Ä.{FúVØ[Ò«TYµ@´ÊžÐ’D©~²ØaÅ?³*Qpâò}è@¦=)óônñ.ºÄ¹c¾«:‚;L¡$ü±E­T%«r^¼éz&]^ÿ¤Û&Ë ´Çyâ•1rW dZÁk••]G™ßZa(X±@ ÇÈcCPãRáO¤ +‹n·;DžR%ínkï.QŠãìøE|ª¹ä¥$È:…ëÜ wzô89!QUø> ¼Yâ?8] ¹QFªÝcfSH|Nâ‹bõà•j[zLn"aCÌËö(à!'õ"Âk ˜v “.S#ñA9ç|ÓM0;èå$KèéJ»k*Æ4­ºdg÷ˆµ„C¥&‘ˆ1ºª¯ì‘‰,I†ÂЬ +Þsˆ=j\ äkTfÃ#%ß5¸³\²!ƃRR§E2IØÙÒ„ìúá/òAaÈ‘ó'a:6ÃÍþ9qã-Ŕ֋a£%&'Ž8¬iaaV” ùr'|ƒ·OÈö7É|ŒÌX“d„Û6Éh)öZ«-H"ÙyEí¿-q}Én¯ÛId®G$a’äA˜YÀKôÖµpær&ú¤8Ðû%IŽŠ‰ÿåŒ÷p•x5æé^c’(M{“ª=" ¶¶}$‰Mä–&þ‚&¹ –(ÄqfÁ ‘.¿·“¯n©äò:ž 9EÏûhI'6 ÁÀÉœå{GKÚ5Ñt¨Ä*b§Á;u¿6 nmVnÔ¥ŸÔìÎÙ©öU{¦ÞÅ” +Lr íÀKLp D4åô3øÕlP*+ÒANbZ[&þ¹Oï*5Æ?HB;àséÏ$?EšÑò…DcY› ¶ÆPjÕ©°'ñàžžùcx0BpYDe$FQ©ÐÑÚ¨’ë- 04[™Æ—Ä` @ò¬Ò›E´¢­Zký-›å¤´~yþ„mvÿË=êÌ„åî„´üp¾íC)Öýê:òKÛm(UÈpÖ ÕҼȤŠÁ8ŸÉɯ¢0¡xîM°ù"pÛ¦EQ¸£m­Ë.à^ØÀP=G,£}p‰PãˆA‰$‘¬…à:æN øtN@ÊtS?þ¯¼>À%G²¯åé’·½ÅÔÝý +±™õÛŒ@œsàzgùa´žK§Û Ú0”m¯e$­îX»?í±­ØÙ1ôç.;Ëǯ„ìãßÛÄÎÃ=$ØQ„}§×Rd² öä"/4µP,Œ8ë¡@m5Š"Uµû¯©×Éû+ZÉ01>tI6ñóåÌåé­ç:Y°zv¼R;ž¨¡ëj¿`ÄÇR&| øUŽÊ·%é“:È@ãnŽ’ðk[’c 5§ïÏ«0ŸG¬”ÌpD¢—+4‚µVe¾ØëVÃb馈ˆ"ÉOû"‰M½´ì‚ØHËÓaD;1†Í +´Ü(l™g5Ö4gïÃ`›å„`AÍlô©¥%it'–üei@ +¿Pñ^G}Â9’‘øR¾ö²ÑÑsÍŒ#~+ +ÇXÔ3¡ˆu'¹ ,»àרêR^%]|FÀ»s~¾à;ËÜ@it\— Pk¸J½oKÊ÷QÇê%Q0Vn>‹ýˆlFt2sÙª;gÝ»|V>Ö”as²üPSšïHëÁä£|ÚûNgê´K8f]Çöä§L¬°ìˆ¬þ©~3SѰ 1Z5Ë ž'A «Dª‹h–˜A\síÉŽ±ÝêJ¹zF²³ 6«Ž«_±è®œµ+ꢼ+(´ª/túTèðÂTõÊØÊ£`ðJDEx’J‚‚²*ÉSÌ +6àT½ öž >ƒ`4˜(ð/0–Øf_‚Rï÷,$áOíäš|‰éø›%bÔ Ù=PÔI¢Õ‡Ï4=Ȇ¤z¼9 +é0Lƒ¼7¨õ\¿ÿ`0™•üHªu}ÅGSO‰S=-0šy:ÁÓu»ƒóf \G0(GŸ£-‰›S±ÜØüSÔf˜Ø“U6øB§³˜àGS6@ziÒm¢-h“9É㌫; ¶Zäë`ê0ÎpD²L/:é§Ç•öà©âóƒÁš)L¥ÚWŒ\i¶¯Õš`,¬ýü–\_XM=TŸZs ‹F>¯”i6“v!D;ºxúb$ÈNñ×pòãÑ‘ãäH$[` úææk‚ÐÑH;âJ•g†Ì™cO@NNîÔ"2#…–9€\×(0´JŒG9qo_ +ŠnO”I¼ÛHÜo¤°t6%¤¤ÖÅÒ£ô£ítD}G†ÒÎØâ²`ç½36có…r¡#!pÈPH¤p`1u÷,0ì‘í!õÌáÖHuu`­ !së>ÿ£ãÒåS‡W¬wHüÅøÏÅÀN"æù¦¾Sù|XþÀÝ>²w¦v$S©ñGTÍ:.~L.§&•å0òúÏ ºŒlÆ‚?{H$f %ÊH‘ìÅé[ÁU&ôÈ"PrÃ>éÕÑþNOéoËZz<š¨°Ü¼¥H;±Ñü¨äî‰Eó)Š@é]J05ÐM>rŠÙ…û ø¤¶å)IV!ßó°¨’T?Ù©p +ˆÃ$·°I¯»|(V¾â€ß#$ÔŸÕƒ™¼*<ƒ‚ŽåUæE°±¬·kýÂþåY»Œ@] +€7èŒüõ½ð@‡ýàíÔ+¡/[Êt„½D.mœ\ÐŒˆ!çºÃò°É°ü~MÔ_PÀ¼…“åN@¼ ¤Td™†Æ~ú`µ·.bPÙ”a¬çHq©9òÒ€R…^ÒB6“ùO>–[ ­”1Œ•ïê©‘é¡÷x?$$qw¼Ü¹J쉹 úÈ$.É=»‹} bÖ£z5ežeOL…Š‚r*ba$jeÚìô”(Æ]ÚÁ¥9åw(÷Ñ’’1d#ÙEO2oIa1¡s¬ËÍLãØ4£Jè2DΤà-@(ÈÇÔèÓ¯£³-UŸw•Š5//fzÝì烵ÔÑ<“\’­æœŽ îä +6Wç|jƒîŸB-#x¡zv:Z‘±†uöÝ´Q2VáxÜ<Ïü´ŸYYËRœ 8šÚ–q©„}>DŠ >ù¿Ô“Ë:‚ƪµ™Hó²Äòªà ¸h œxöªò*#:Ú<ø>….€…òÌZ?¿ÛxK²ê)[jO·ÀËÊ ´Ú1::{÷†ÇÅjh¡WìM©ÒE¥ÊGnî´Hi­©É075õ ¨ŸÙºzä1èÐXa4%} XB‰¢$T˜h· äßl´wh ö²ÔZåÂ{Zj bŸV ` %Óª5Ñ–2¨t¤ª­‚{DÒáØBYûJá.† $4g“iÈIvVryÕF[8z²À@aÀI.Š4í)òÄ2.²‚®¥óç + ,5º±êÑlãžÍ‹s ßÅÁÕΈl»S/£ £Ö 1 Í3ed[Œ1nER†‹ ×ã9Ve®ðTiU|§ã‚b"Ùh6JŸí5 +'yÉÎûÀ(ÄàhE7U@<<õZ4Ý¥ Y4WCTõ@$ÔˆËhZ%ôt-” ȈÂðñ¿pFiCèµÿ`Šh2 «J™ˇl"Ì(FHK^Ý\z?Œ^iâ‡8¿E¨Êùœïg9a ‚£)Ïò'¼ÝâõH#!ó3ds©fó:b_:Ÿ!HJ¨Êò¹Y|³Š|]”³Ri¯±ýN„ª‹’jÿººè¢bón¬ù3P§bmy:C´x°9›aF7Oâážjtkˆq˜ÉËg'±“ãŸ`È$SDŠ´ÂÓëú%œ\r©çŠ[7³&%îk¤¾úCdÆý•ц,¸8“6¶f<7Û@É1jƒIrG,7á4§2ÖÚ` +d›møÕqµh.xш7F²,ºÙkqÞ3McO³O¬ ¼ ÔÐ ÆÖoF>*&ÚI×l!I‹û-¼g+`êƒ3‡9Ž™¹ò§(+áŒvÉtO†ŠÇ¨ÉÊsT…*ÈÇè—x:cñÈœÇèx´ĸ!>ÎîxYc»8aqÐUÑRR ´ ¨ŽQä¼³UØò‹²§t¤± +ýEoNr‚D¶A3é]/[…-q¦m‹ëUÍcUk×Ù +¶(wPÊ-³É+™ê‹âÝœ°Ž¾x>ËJ¥y,#‹Ì ß¹=d!ÊNÅ_¸‡ÁEŠI†s«ò£Tª3‘šÒ nŽ~ô°è^û’Ë-b>ˆ±Í? +X‡¡Aœ·B9½ðÛ1!åÑ=ÿÜØ-‰?´¥©²JŸ¯œÈÂn8ƒ†æ­˜Å +$Ç]¦Jâý)E©¦²?¥ƒæj6ÕUêx‹1EâW)}»=Ü[@æU:l“Ò«t$ÎsVô*=(×JÜßÂ`¥\b6~ËJ)ãSpÔ;¡ÈJO·`ˆ¥7\¦ +ß<Œ¾xjá‡U¾–6B¨p)òϺEÓ½uª¥°D»·ö†)’ÒŒ+ö-AhÚ®jiú–çó™½[-=[‘ ¦diè[WKÿÿ—X*ARµ”»CUáT©ü½µ4–o>D®–šjU˜H±¾”–â ¢ž^äßêÅ’–RM”בÍA—£ª´Úq‰$-¥fö˜{ö¤¥!à•I‰â-5ç½ ðõPÜ5£¥¦l=…°ZêÞ`.‡Ò_©@ä̉öÐÒÊÝïfˆ€8ZÊxˆƒÖND¢u¶WT~¥ì@ +s«/ïÆöJ¯Ã•¿½ŠÈZiúœ¨YÑ>âÀ‡­ñö°l+æÑhÏéoE܉&¶f‹€„³žW„:ç‹+Dç¹ß‡:YÉÏ]wz9%jyÀÏù躡áé±?TiÔã ¶áÈ~?G\~•ÚÕιÊÏ­~6÷µØ+”Ÿ{xŸŠDFÂËÏýГØz·ƒ“0fÇÏÁ´ˆ~Tú­ðsVv¶ì&të^ Lzù¢e‚WŸ ]3k$èž,2ÌøM9)Ï6¿m—ìï0Š)4¬,W»$‹ #ŽR@ëÉ ²Î]LËfùHY¤9l,û*?¿ÙØ?d’ÜZ˜ ý)¼M£My:¢Æp7[c–³{å¿úfšP4'Å;Dwvsï•0Âo§·ê®vÀ°@§›M…`5JsS )@üXÒY{R­ã‰N“t(¨Ï‡)xÁ`pYWpÕøpÅ¿ÄØho¦á-ÇQ¤ÚLÉ¡Œya‰Iz‹Dv|M ¯ƒôƒÊd²®Üé:éŸU„’Íâ~€AÞLœ°º ‹„;²ïl­0=‰"!·áGôVÊ‹ô/Dpå8ø´@ø¥i&G9íìuóbOÚ_…*Ä($“ŠŸ_0L/iˆ÷€‰*‘µ‡HE‡@ Âï=‚×or½Digj ÏB/Ü‹‡RÔä¨zÅͨn.ä‹ ÆõWÄ0€chÄ¥úäµY0ÁyÄ„YÇHtæŒ'}GDXÎažšžÊ8}ÙÏ zÀIRXKö&9+µsÅöŠ|-†‰Át† ³f£­%e<x …Åõ3UÜ4ºµUÈ„êï¬ò n¤¨0‘#ÃG}¬sû0 Ô«4­FwßÅáÔ™ö0Pþé´ã£JW‘ÎòzÚ=„:ô„üh{;ÀmŸ5ÿºñÄXŠ £®:ýÎê{÷¦ó’éö4¥ŸiØÙ™¤(Tˆ ¼Tî/›•¹Uƒd¤¯Âüz1Ïbз@Q:Q;EYƒ6ÕgªŸ +¢ûºù¢Ñ˜8 üôÑÚomrd#ð>ÓÁü˜Bù)s–’+fŠî‘§.X^_\÷6šü½©õXzÁÝðÃÆõCû/0¨¥\Öv¨„l¢ºü\¤`%ú©X‘à4HœAáb {E羫~«¹:ºj ï´š9ƒTûÍm‡–°1½`hT¥UZg⑵÷htÂ,»]ÍÕ1ìâ¥ÙÝÇh™¥ÒÍíÂë¹Q=¬$NÙ$QÅÂö!2Ú×ÂàO+× +‡bM.C¦Ø·?7’käfÆA¹ù¼ùãöӻ⭆ô’»*šu usáñâQbÉ ‹C$`7Ǹdý îÒ}ç×”yfAšXQïbÞ‡´oTº–ïo3aáó—•¡žˆ’ÿ2dÇá°V1¡šWk,wÓ×hI|=uÑdDE Tú_%šmfsýãœnÎÚh‘õ>– ,OX€ºŠiŽAD4‘â´4 'dª´zSXÉ} ô¨pò§€\í­0ÿƒlÀ?µ„ºïH"ò6ÿ¶7}£?é]õ6l¹{ݯ8£ž‡!ŽLƒNfU‰šùkÂÿì {|-vš8>=ÌÀYoاƒ :%ŒuSm„'ŒüìH1Ì¢éªxk]Æ@œFn»Î§Pv³á‘ôG‘xv˜<^‹%G5µûXþ‡‹t=›Ü Ák +zŠ#Ú3Õ‡¦I«eu&@q÷YIBEl/+Á" lOõ¬‘ö«*ÚÕˆž«% ¨²„ í«}²„ýió…“YKRøÐàË +kîµÇÏÜcyã¦EÄ#rH +³†»l5å:ˆ_R­‘xŒAŽX¨½™‘åöº }>ø­I gÔÞ»Ït“£|i£È‹‰;"Pa4Q¬¦Ü'?”Mg4½JçnSÍቲ1·/ ±é¿[J9{)í)·ð£Ñ-šÄîìú}8òánV¥pA:sZ Ñ ÿŽ%à,:n\m7R ñÍ<Àð<Àðˆ?ü ?Àðüg9éNº“î¤;é:†n[ıEÿÀ?ðüFGGGGGGGGGGG—°GQ˜3:,9¡Þ†HÉÆH)GÉé†È‰ԇܵ;%iT¡‘]>ñå/ÂiV!’wé¶ÈEK2*¥ED * ^É +ìT²Û"ü rW{†ZT%¤ñÂ凋‰L*tòÉU¬B2ª+ŸK>92@TÀ, ‡ %bÌäY­ yVz[´¢²Ç…ئ$"Á篓‹ÓßÒß.—™d~yž\UÅ«Eòó$:ý¢EÊqÒz ñ)ž{EÔ£èx7Ï[W­ó9É—?ßaÒ’}Nr%ŸSîø½¼ÞÁÅŒ‹)Dƒú…xÑâ£Edæ‚í5I÷ê™rZ¯–±ýæI§,V¡ÈEäݳ%ïñùì3®TI³`‘dˆ¨Xþ·-nѰ_޳\‰JpûÊk«fÖU¿&w ©' ‘”*#0‡é´Œ +„c¥…C¥ÅbEBáíÐβß,‘+Zb¸N."ÿÄÇMðZå®=)~TU/IùãZw\ýˆ|&P ax\‚SZ¢d–¯%þýBò¼<2§¿rùù[ï1ôœ¥_’8è•Z5ÁôBgyjUjþåx‹^«†C«©’Ù•>ƒ€øo«p:GÍìî2¹å’›š^õ²®Ù}Í® +o»xöUÜÒŸ6¢Ï)îdH{Û r¸§ù¤ø1ÉZ†Î²¤¦£4 ¡) ~¸8Î`({ž ~p·ídøAIüëN+ê¢aTÜò¦˜“ Ÿ–=J†T“Äž±[nÑ.i5Gjé›c v´§±YÇsŽ.ú±cO)ÞßvY_‚$ ¥§É][µ»ë‘вàöĦ;êcøQSøëäÐÃEÐc–¤©æH5=¥Xwþu¹ÆÖ—â-~²·É\ö—⇠s°óI1d–$MµjÉ=£èõ«ŽOqÛ£d’øøíf¸›¡JnGªiZO‹zÌ0Õ¢0þ­²Ûý9šøx +n?è8BG¬ŽÐ®H̲ZTtŽ:ù™à†ôAÉ¢¤5¹ë=‹N²´š"¸œòáaD“½V½«-QðZÒÛ©Øý¤§ë–GnªšßTÜþhBÍ¿Om:²ßµ8öæ˜rU—¡ +±ü;‹†?ë©‚U‘œ>½ëH_»˜>*˜Mµé§ñs3λmqçÝŸ§zÙ‘ü&Ám[¡ç~6ع[6†¤ 7›“Ó99›|{Òc -O­Š‡^ÌilÖ ¹î^Žõç^v¤žzÖ]W{^ÿjºn[ºi%8æMôÇž,ã¬Ss\Íq(§Sr8pç©Y¶fOоþcȃ`›el‡3w\Üuh'ûMôcž¼(zFòÕ4”³A;œ´Ãy9íÕ²šÛNiºzÛÐ9ÞÖƒžÝq÷ò$‰fØÛî°Ã=íS†Ÿ³ÌÅoî47Ë\-›½Næ´üë|2ÜEïö¶I‚Èq„ž!–¥AÑ¿žG©éjÛïï‹»îÝ´| o1|¹í䮤ÔôE÷¸YëˆÔ³©¸­ÃOÍ:''„Þ2‘w}Á,èÛl³½Ý&ƒh-]<:I{ÈP¹ÏIŽØTCxËà¬CsÚ§YðÚŠY”«údè)EÚÛØlCƒÛ¨UC)ú)Gì¦XÕ/EìtR¬E0¿2!Ð Jõº!Ôü˜¦iMO+ú¢åS Öt»ª—=µªH=E©‰zÙOjî¥{œüy7)þi©‹ž_Š!´¥&z<ú#(2ØÎÒß%9½‚ÙÕ«šXT´ž"{½ªc˜-›ìöêe{ð{7ÎÜlÎNÇIyú£Ø‹áO’þ(æ^kYâ 7€¤gæ4ÜãðŽËAo¿gσ½îälÌMHËm%gón[¼qôÚÉÆ’ùÇÜpºØëHeɇáý}z(–Ά +Îp0;_–zæŸsÛ¹Ù¸ìî<´“­B×\enÓ¿ïÍ4¶“•!!cHŠ1E +2E +–Ñ7Îî6Ï‚Èp︽ëî®;7œq³‘¿Næ6tƒB%·(øýO3?—Ó1CBÒ§ö:Ûãr°S±m*UùÏ›»®Ý¶˜ãö¬C°Á ù•³y7þ>vÛZn“½îþº’YºØ5†‰Ã4úÍÑå´4ë¸Ü¶‹¡ˆ?c2ÉÐYòb¨fpnRôçxjÕ9þ¥¨ƒž§Eê©‹ Ë a9)êN™c-EkJrÙIâÝkt“¢Ý8öÊ j׬Uz.×y¹Îšû8ŠÔTä®W6m—cÉmAè)JÏ9¢\Ö$Ã$¥©>ŠÔDµ«Ç$sñ³Án¹ùóê0´Ã°þ†v~RÓô®"½½®î8ÚëZM3CB@)àîÓCåpàMóˆc†ú×ÑÝfn6dÈfÕ´¹Û^­ƒnP°M?Ч5M±+Šg§£jÚªi$‡“á€bÕ´VÓ\-›»nåtTNçäpÒŒËp@ÁÁ‡û4Sð}Þ¸´Ã¡¿ïät¼!]г“©šVn6«–Á]§r8ꆓr8aHȺu±÷Ϊe"U•9¯ídeŠfH›eç†s†„œºÙÐÝv]œuà§ípRΦîºç37(T¨L#|ß›%ímo–©œŽÚéȧv:hÆ»möºŸ4KçéÃÿ4Aªz_þë¶Ù·Ím´ç¹Yfßož6’’‚Õ:&ô"K~av JKï”»ŽÝ¸´ÓÁÁϤ¦%•·,ípÌÍ8tø©Z‡Õ:=)Êœs™Ç?çè“¢è$E'É` vüiŠÞ—GZëàkYÌeî–¹÷«(Ê®³ö´Z–Ô÷)ew1ÄE0?öëBìŠbìq¼øØó Ÿ»è¹þ>5ãÈ÷ŸfÜujÆ»,'Á\ ët5MålØN'Þ¸˜ãd¯“;Îþ¼ûûlÐûOS/Å9ìä¯ëÍr?ÜãhÏ›¿/Ã= I¡r8m–±Y†n6/çÅݧfZ†äfc¼e;è­à–Ã"õdþuòÖA9)ÒNHÊmõë¿.ÿ¾[,íÑ<;Ù‡"DÃEši'‡“rBìÎ3CBÊâ&ä IafÙ¿²ž3u5íA‘ªîao«qh¦m8 7›uÛÖ,ƒ9ÎÕ¸VãÞ®k7®ìd_Hˆ™qþTu·nþ@ЉúâhwÊéx8 øp@‘v8l–¥ŽÜu3ÇÁYÆr6ô¶ÉZVwžšqJöÇq·ÁœæfY¹ÙŒ›Í’BÕ:øúåÈjY«eÿY†Ö”Ôº&·ÕCPÞ´¹ãnÐkµNÚÙ„V–'Q}4=&zƒá=’±çÝ ¨‡¢ìq1'Q‹Š¯wR´=¯Õ²Ã1;œ=}1œ7í/É}án+9!â¹ y¹ Õ®1§µ\礟kBìªÖÔ¿¹ÓÞnËÍ3ųÃÁ¿Îî8zËên»AÄ®¦vµ¿®ì¤¹éÈ}ëâHw]«e·æ% †d§ÓvZI=ÿräÅpÃÙëànS5NšqÄ&'ä½;S'Þ4ºë⮃·måtÊÍÆÌ81Çå h{¬uج“v8jÆùO“þ¼´³q·ìÅ[$anK3ÎÛmö¾ÚÖjZý2×ML2†„œÌq0Ç­gÇN3?Xë¸8ãÐݦƒž¼i:è©Ôÿ¼wã\Îk7Îíh-' Q (CBP'D¢CâÝ8X–P4TžѬ»oL‘bö<Óªþbˆr6åf“fše¬¶µZwv40$$´¾»¹Ò ¸fYÈáŒYGå8–Óf1,5_Y•¼Ç¹-Î64·ÕŸ—ƒ ‡$Ý, S¤@3ÍþB·“ÕÛö‡béLG¨ +sœìmï–¥ç“Ðð_ŽõÇNQå†ctZî8xÓT,:2¿µÇùeȲÛ1N!¶Cpå4÷ÛLòýS¦lÖ‰¹M„ž-·=µí¢í–µœ&bUü¾AïsŽ0¹­ñ÷:n­h/~«¶¹Ëpd×4]³Î>†¯8™çíu0§œ»mž²”µÍíd*‡s[)M}q¤»nͲ´Óq5-æ¸Úë@8ˆ!(ÒNg CR¤Ì9($emk3 åpØm›=¯ö@ûWM ­k«¶å‹³ Î2™ÛÈkÖ™½Žípðl3íälÊMˆ’âäpÒN IÑÀ8(ÖL“·NÍ4Tûºàx„š?)ö£¨‹ášeg‡Cw]‚}’ÊóÕ85Ûà.¤¿ÐädîÆ¹Ü×C’7è}ʱAÚãf³¿®Õ´üHh:*Iþãø¯#™äg ook³Ž¹ÙœœÊ᜻qqÇý'É‹rõÇ•Nbf™ºqaHÈìuž‘üG1µ¢¡²¤¿ö¸ôBh¹á~÷ç}Jñõ®¨µÃÏý:¼m1,9œ×ëxrìAðCŠ<:æ§øaO½Ûm[³lÍ:q§ùcxBMjö ¨v:äfs‹a_Ží–Ý÷Ã˜ì®øø¡ó”Eý6}Açø“az~¢Ü/‹¾n¡] ÷R¡e%ٌ㟢‰-³è6ŠUCëêQÓäD+›‡ãšuÜ­£ƒþq÷×Ý!{œ v9)zN“'Eßvò_p{D†žÐãÇÏ»ý$E.k‹â ~#UU½ï.†2—Ñ^{^ìuø(ªÌÍ´™ãîï•fî}o–©ŽÚé¬Y§Ü„¬‡ö8¹ãÌ §ÀȤÔe;Ú»m¦t½Apî8yÛRÎÆäpÀ8c0$7!½‚J2î¸s³97s³17!!•u=ÐìtäÏ{¹-Ͳ³Ó9;›uËbÏ£=ðÜtº)ðp,­«_޶ÇÑ's]«i3ÖßGs¼i/ÇÃñݺ·ÓNF†lVM»Apöº›¾ì÷)5q³¹æ¶vÓÒmk9.Í8)²Ð²É4s¯»»­Eüi73ËPmƒ¿¯þ:ÒŠ²èwÔª-Ç•ÉáˆÎÈáìe¹f˜ëÈŒú”û.±+hMi°«EPå4:ûq´¿Ž”š(m¹n†«–œM˜qþ•ApÕ²˜§wí9JŸ—ØóNŽ"gómBDÎ¦í´¹ÛjN»¹Þ4WËâÏ«ÃÏõ64ãÔ3 +=‡H°Å¢"“ ¥å-[®Ãr¸ÛêÏ“½íƒŠ$÷;#ÒcDž×ódønì~´äK%³ ô©)o’,—¹œ&{Ìm³ÇÁ'æ8 õ\Õ´'=û“©¨Ç,}´,áëW=ïd8bSÑŠ¢à6¤¢·øádøz]üy4â"èŸ#KfQô]¤®·(Ú£¨fšÊé´YgålâMËÃPE}ÝMK;r“ö¸^Û§Õ´; ñ,9œq³I3­Õ¸’Ãy7 =Y†Æ±Ý¸/d“ ’ÃIµ°ÇDÃM»eð¦Ñ^G{]Úéˆ!!$gãjY«e¢þÝ·A™Ó\MS³¬Õ´TÓÒ,c·­WÑ©©.Ž´²÷¥H1n6°×±ê;ÉÕ<“X÷?UÏ©ÎÞ×nY¹IažOŽìÆùWt%ϧխ?ÜlJNgÜ„ÈÜÆƒ`~9‚Ò“ÁxËÔÎFítd,³ì S ¨Q™v˜‰iÝvÌmsÇéa˜‡`íuyžœ›ü”Àñ‚%×ó×Ñ_Çj[ c¤Åî¸{ WõÜ›ã«uTΦÝ4½$]¸M‹#"Ÿˆ"å/íæØ£#’²øÅ ÷§f‰]IιW-P•þ:qd·L;ëêž7:Á—Þ†Áí‰üªN³Õ:²Çñãø—'ÊÙȰNâ‡TŠ´ž= î$è1Å^÷SÓõ:£µÁoþ¶R‹¶|vØ£Vö/Ë< áMkݱ/fJ< ›uRôM²'GiŽÖu/Ë܀Ĥœbø?½篫EpA: QÎæWÏ™“H„¶ù‘¤¿¯A¼$ñ0”µmåpÎMHˆ]yÓ´Cðå6”Ãi5íÕ²~K+ê!Å“Ûúféjâzà\žoH†œNŠ–KöœA{ÓNG !7!¨–Õ Yr2ÖÓnœŒŒÔÔÕ²6ë¬NÚÉÒNÇÜlÔ¬ó·î]žj–ùãxßÌq=ºÛFr6$'„?KèÁ6ë¬Y§Ý´—Ûl ¥iN–2¢Þ˜'MxëÜŽ¶v:vÚ §‡àÜm+×aé7éé„»îìt`Ï{9NåpÊMÈ©uhÑ»ÅOt–¬UÝÁ¯Í:'‡#nBÀ)Â(<¨i‚ß{÷q\©ë/г¦¥›äX¶ü‚^Ž õ¼ÃAUÛÊç IQ‹an’°ÇVõ%Ï Ó¥(_’aHH’Â7"/“§`õ†H*†+ZÑÝûR¬¿ I±»ç —ªM;ôZ2Ì‚ß] yQĽ¯åpxÑ›xQ$¡åËmA¨¹‹áýyð¦‰0ßþ¡ÅŠ—«ô5 ¨Íoi=ChYƒNz$ú,RÓßY-ªBeêM4'EPŠæ£X‡ í}q¦©NÚá”^XÅTËhð›?OG^wQlô‘¤?oöºúóî0¼ÉS&ÏQãºÍ†$Jù|j¯“¹ÌÝ:­–ÁÛ†f3ËÀ9>£† +Žáms³lítÆÍ&L‘¢ÜlÔ,“Á/ݶ3ëüeY{ÞÚá¼Y¶fœuËR­ãv›~–2ØÙ_'s›>Š8øÝž·ƒ!«ióò¥Ir8î¶Õgw^EùQ¬;.æ¶8ôVxŽ“¦Ëu8I¦YÆn›šecŠi‡\-~2ÈÌ•¦¶×¡›5ëÀ÷n[ÚÙ¼Ýæv›Ûqÿyþâw8o§#kšíy¶×ááW‹ Éerèåchž»mg'#9›‘³¹ÇQå83ã˜XÖÄÎ=%©‹àìuª¦¹^—›b ¯ó1D¹æ ©…‰Ô—â np—¹\'í2“ݦ|üØûBëÉÂï#3}ßÌm°–µíq¥·•;Õª$výŸ¥Üm­Æ‰·Œ·Õ¼ªø9H=W<·Jn‡Nò9~ôVoº²Ó3 þƒš}ªõ2ž'Aäüñ;±(%E¬iâÁM° «e¼ÖKòí8—Óânƒ=.»˜^÷äÈ‚Ù_ßG0ö4wËàn«AGIRìº^ZÍS»Ö ×n™ìuõçÅÝwž²®œÆ›$Üuq×Éçnš–Uî“EõÂ!4…¹îÛpºÍæãlRnëÓ´CVëˆXu/ÇùëÔNL‚Ü„¤އ[qÌ›e.Šn–™!!åfÃj›.Ž0DZ›&r6\ +ð¦¥N¹ ¹APCjþ§ÉnÉ ‘?N$~I'úr\«emÆ™¹M4ëPÜR¤p9ŽÇyãÔMÈ«u`-ÓE°ô¾|ºžìõºU-[µÌݶVË>gé“ã~ñ×ñäXŸªe)'¤Í:³ÇÍÇv8(gÓjÙüuõç±ZvnBâmÓ½ÎCen[³ìq4è½Üvv8¹(æ"9{_Ú霎’‚ä„ÐÇ‹¤ýy=)þ§™‚_ÒªŠRÔ/Å4 ©Á­%³¨·•=Í/ÅÏ9ŽÔ’¤~YxÛĪhÆÉIpõºü(²ZÇSŽ|âà÷r«uàN‹Ù² ~Ów‡]%Kb–…vYl˜åª2¸ñfè—c vŸt©Û¦¦ÇQ+z‹ v&9=rÓz ®àUŸY|x–«öf¸›!v»)êe¸rìi¥V5Éí“»ä>‚/×ÙÉOõª3ȱdE¯K. jÙ=ëRT;íWIÕËÒg‡ÞémUî‹b[O9Ê_ÇvÛëq¶²™Öjýyú(†›N!g{Ýšuº(b1Án +~ùp<9œg'D‡ÉŠ ÿÛà7¼i¯¦­ÎšqNÎfÝ4üÚ¬Óv:ú÷á·r8cHŠ1$ÉÙ¼Ûö1ÍwÛN§þ¼ûëz1¼ÁÝ4³³©?å¶«¶}»'EÐYöãH«ig§Ó¥@ñvIeóÄ?Áýûx¼½îìp¾3~PÉi’P”EšÛjNóŒâhU?ço[›udn‹=nÍ:´×}L2÷ºÿknCP›“³17!'gãjÙ/’¥ó|­*‰Ë†Jòݶq³y·­þÀ6ÛÞl³Ã”š%6ÅC°Ülêð{Õõ(UéŽs3N›mìÏÃG¿{üf°³ÃneÏarBË)‚PñGÇÞA©Yr××ãz“,‰aÖÝ6{Ü zþI–ØtÁ˜ËF§˜JIT:м* + ¯ÜÕ=¿õ¬ÁN»¦ô|½ëÈìšØq+nE)iZKŸüJtÚ† e’Óž3 ¥" +VK®ªŠ]zò'éz*nc4]RS_ï.ëÅOt’«Vmá÷~Op[d–ëÏÛ×4$Ãýzîè8ZÍìÞà÷ºeQh´º¹8Ò^çŸ#ê]Q­ZZÕÏyÖžç“e.Š8„-‚½9®§å6Òª‚N“ö:3d3nBJÎÆÝ:¤tÕÃñ?jî`8s\«ij§ãnÛËm¬–¡œ ËáàÞçfÛé¤NÉÙ˜›MÛéàß÷jÛše8øåá·z]OYÒ_·“¢EUn+BQúë>&IJOôänãGqÅxÛfŽ“·MÖ´= ám£;îöºôäŽK3ÎËmô¶ÚæâOŽ·×Å›fwJUSpµ¶ž²§§$çÏ;;œ4ã¸[gžãò®«?Ï/ÅÚÛØŒ“rBêÏóE²î:‘9®ÔSdŽ{Úßo[še&‡sož)EE`TŽ2·©§7ÇØm{Ltípæn»¿®„¢£¥?Îå2ùãòôËÞ²½ WB}̆Mò™ët‚×})Î_GbÕÐYö#:Iìºä—´¦"ýÏÒ/E’)z@n¥·e¤J-;^rÓŸÓÔCïþ:}M.Ë‹!Ë]cü¦ÇOp:t’> î!w¢Ó-P¤Q›¢êU†ŠF,CUªùx@fY‡^üq+!Ϧ4è…Òò¤†Kbw…žSêù¿ëÏ+¹¬éu_­£š]–çu×§¸­¨H=ys”9hT,_m=( +“á¥Ï +ßbÕjö¤È‹¡_’©–Ýcø«è’=ªÙ¦Ã}Û,39WÛôQ¡æÇ$ÿr”=AWüŠPô/KçŽ{7MípÒGípÒÍFͲqÂf™›il–½šVs\¬im–µšæjšÌm óôI²½Iþä:ËOYÖ_碇_.›=§4ÝÁoåpÒ·Ó©=oÜlЬw[OŽö÷µYÖfWÓàm‹7­ípìÏ«¿ípòÏ;©kèDEhjZYŸ$eÏc¹ Õ2’¢fÝó>ãHBOÒYzF½>ôøÔÁPÍ8%wuá÷—Ë’N3¿XÓT-Sµ,Ö6˜ÛD&ù!Åß,}rDµiiMm0lµLÁôtðãÅPÁzª\U„–6Ø­Ú%´+aƒÆ^·ävæÃ«äuªUC¨ùAÍœUòû +•Ü·Ê]Q­šr[»†L2ÿ¸üÛj¼R2V­Wü–Ô2ËeQ* +‹Ý—ü–Ö´ö:j¢Ö””–°ÙEµ*ªM]1ë’Ù’›ê§ø¢„U€8V¤L*~£ãO9‚Póƒ–-:ž=o7Eþ®ùô"o›ROjþ&Yƒ^ˆUEm[{\ ¨Wá{ ûiÙ›âç$EªiÂã°½ÏÓ5Ç0{Ãç0wý!O‚ûþ&©‹"ºe,F¥Ðy²5 Y·ŽN’°ç…!)HÎCG§‰bÕ›zJ±ÿám³¿ïþ@µÃA9!6î$ o›’" IQr87Âk[Š5DZÎÊ᜜MÉÙÌ^7RÓ$á®;­ê§$KéérÙIÞâ×r4ÛØàWÝ.‚Ÿ’´=oÞ67ËPÎÆKÂìlT­3{œýyñ¶ÁZkÙÊÙ´YçÝ´ÙëVMK;™ãhŽÓÁdž¡óôäÛmi–™Nªiî¦É݆ƒžg S+*»%±+¦½Ç¹Ú ¹¬Êu{ðË;.Ö:ÿ8êâw‡ßºi!'¤'Cñϳ»÷8Üãö1üOSCxË쯥iªmQ¬ +*Åîã÷v—‡vBXm»j¸FÔ¯ù*@}‰-ÎR9Ó¨G +Р޳ÜÔõ²­·õ!îq¶·á߯’_ªî£ØzW‘—=‰]Ùu­)hïÏÛEq¾||^?¹éÖ»–Øó.Áü ¨Pi@C”ä»JvY3¿d·Ä¢¦w±ª5=fÉ¡-QkúrÙzê'süu4èÑ'w?‚?)‚JrÅ®|º\¶rý¢ð¼§Ah™‚Wí¦àU´š+ûmåuë–gL!Ø}Ã]§‹ 5S¥å'%Emš‹ ‹ŽQïË“$Ìi/—ýe¨jUŠòåHƒÝgE_¼\¦ÞÇ0¿½}“¤Á/ö:vÓàNëÇ¿ úã·Š[Ý&Á+‡‡³(…b³,BÑOIzÈq”¦»(ºWr6¸â㨋`©}ñÛIÑC޵Öy³ªeuíϳ´²%ÓÄ=/÷:ЊH²ÃuÛÂbж÷Ñ]×j™>†»(þfé›%.†hÖ9)~”tÑqØÛŽJ‘T’}òcxƒßÇ4m¯ƒ¹n ¯T´¥¢/—ýKqö¸³ÃA93$DåtR'ípFªzr_ºóbn[;YÊé°™6wž‚4øÙ!H‡_üyxÎݦnR¸Z‡î6XÜ–Ôtå²?SjØTŽ£üE¯þ2ÙÓöäG±Õ²rs\.†?)ÂZæn«ur1$­j?Š"sT¥äè[1{²×®ÎE±;”g‘Bµxx&ÑJNŸØ²U³¬ÚUѯ¯š8®`vˆ¨x°L&öÜ›á=~¾zæäøzœNŠ¢²üG‘d–žð•#OŠ3赜†fôò1ÌGðcŽ<øVóäŽKjùGÑœ]ö,ãձ甫šTs´š?k²nXåßM0<ƒáÉeSv<&æ´ôGÏ'ÁßU1|‹"»mvIöfé²Û1½î)ËuãÈߦ¢a%%}yîey‚]Õüæá'wÛ»eo§ÙŸ—ƒ ¼mr·™Z4FÄ»(Xp»¡ÀaÆ + zð0Ñ÷’š¦ÔõÊm£Ô´†i§ƒv:òçµ\§“áª==$XžÝqrÆÁ½nöº–ÛV-Ãðöº“³ÙGr„ž"Ó´A±ätÂ&gSwÝ«iå&AÛ®\—”¦÷÷…!(HNŠœ cs|RQþ"ø!ÇYêbhƒ¼i,–m©+HG¤˜JÏP)îâ÷nZ¹ I;œVÓÎ åpLr=E÷÷P¬½Þ6ÚûfÎ{·-öºZ õ²”?OÕ2¸Û诣=?ûãLª2Çùã<èø)C_üüìÉ”’ ÔüM?5ë Îìy5øÑ—v6/§Í —‹á~²×ñ#ˆZËÔjÖ|v¦PLveoãOFl%e”¢¦ÕTµæ‹o¿0yVx:³óøáéh%¶¢$’ñuWìþ縓àG=}³œA/ö¸6ëÀœ¶‹/~¤ÔôËѽùë䯛A½:ôtñ+¡%Œ^¿øyìæc˜—âK ÄËK_Ž9é‘T³$wÜòç.ÖËñí:Þ,A):Ë”Z¢ÒÒåª"2ü£(Ëm,·b™?ÏT«¢ØTCùãîñ ­h‹¦ñPLÁ±kžA(*s›ímS4©æ‡ñl7.ö¸ÌÂn9Õ®ü¶Ÿ÷ês“©Ô²(V-gˆEf™ƒàÚé¼›&wÝ™uîð¥æìu1·é!èã‡o¯³AOö¸uËÆMÈÙéСèrÜìy½yî¥i‹"«ilÖA9!('Dæ2üxRDµni]kг?OÁ\üÜ-³¿î/Iü@§9JQ^y1ÌÁoî6xëˆN’t’§õ4¥g~7øÝßW{ÊÙ¼›&JÓ|ñTéûÑÊÚ!o[íu ÔDµ,iUa¯‹¿îô¶+®Ã/î4˜Ël ™"Ê]»ìû§ÿ³­é–$õü d.z7ØÙç!G]YNó¨gŸ¢v9ÊbÈnÜm¸zÐ2¤žµØ‰Ö&·1že¯W|[Fēܵvøèý¨Xb¿,BûKo—è´¿špÈõ,z›ânŠuèZ”5·'ùz]]㎣ï7E<ôZó£¢>“V”¤š¿9Î^—‡ è$U-úâ‰=Sr[d–YoË“â(vQõ,Ün†¤Öd½*ln_ô[zW5]ï35 Ý4;ô\ïZRKT‹¦Ü”E¿¬›&½­¯ªµúfÙ›£^ŠtèÕa§“¡ˆMMíºŠaÿ,gÏãÇ1t–¨65¡å/‚ž’üQô£¢žô´Ç½Þ$°RÀl»¿uÒŸÑ1c"ñ½&kò&yš¤]¨4©Ûä nË4Ù€ÀTHRŠdÍ +L3R!i²e0+tä˜!ñWÈxªé\¦i—ÎÓúŒÄqÚÆˆ¬mۮ뺮ëºÖëïëÞÞûÛ–iœîk]Æs—óœæcšI;çw<§gì3¼]—êºæí›®yô¶îªÉ<¯k¾Îiž'w®{ž'û]i÷8~ë4OóyÎ×:žß|ÏÇ44<_×4=M×<Ù÷t=#C·{ÞæЃÌe©Ü¶¾÷û~ßø^ïuÏ×»ã|ŽÛúžß4nËv àÂyžçÉܦùx/'{À k’EÖÀH…ä{ºîwz—i²¾y<¯ïš¶qœÎm¾¯i €„à²]8Í×6o×|Mê˜!khœbøÕ(ÀNfàv­ë´.ß¼l×û-ót}Û9Î÷¶ÌϨû¾Îq{çë\Þoß÷ûÎy^Þùïyžï{¹æëý®sÇ÷Æe:ßëœÖå<ßë[¦ó=¯užÎmzÓ»MÛ2­Ót>#—鼦óºïw<çåz—y×{œÇí=oßø®ï¶Ü×;~Û·¬ëô­ëúÎãz©×éžÇq|F}Ë5_Û}ãô¾Ï OÜÛ¾íûÞí>7‘t]߸|ï÷}ã;Ÿó{.÷tOÛºÜÓõ×4N׸¾ãºÞ÷{}çù×»Î×u}×¹Mßõ­ë¼\Ó»^˶}çwmÛunÛöçòmßöÍÛò}÷¸]ïòmÛö½ã¶ÝÛ6o÷¹Í—r{·q~·é›¯eݾw[Þm¼¾e;ßm;ßïܶy»·íÛÖs=ÏåÞvõ¶mç½mó»mÓ·}×5-Û4wÞß9×6Mß|M—n¾æm=×ñZ®oûÎë»Þsšïåú¾ïûæuù®mü–í¿o<¶õ:×oY¿m]—k]Öí\¯÷›¿óž·s>çk·ï¼®qÛU×õÞߥÇó¾—í’«Çm{Ïq{¯ïïw>·y]·ñûÎåçkšŽóœÞñü®ë»¶å;·ó[ßoÛy]ç;ïùŽÇ;n߸mït/ßx,Ûxï=ŽçùÝßzmóûmßýmïuß÷öÝç9Ž×÷Ýã·]ëö]ß7×7}Û;]ë:Ó´Ç4ïÊûܾóZ§u|—q[îñÚÞåÛ¶ñû–ùÚæe¾¶kš®ûþ–ùšÏs|¯mï]¼NÛùŽË½Mó<ŸëtÛ7½ó5nÓ|¾ë2¯ãµÌÓ¶­Óù~—òûÞK9Ó»ÞãwmÛ;}÷7mß|-ß´Ýë}~óøŽ÷8žÓ6-×r/÷½^ã_bÆ %$,.éi™’?c$ƒ±œ~šÖ äqݳ>ŸÜ„ž±÷ý+‡áÊq)DZžgn›~'{&áuükN›»L»ôä0ŒÁ°å¸»4]ø½âï(ø­{Þ›e¬–¹^·›¦jž}4E7!({-!t€@>´h¥d>= víŽKùx†ƒð`á"%Z‚F bDjT XNÛcX‹cëy¦z†q­rTÁpMš®÷íhš›ç=’±çù£‹’’Ý4iL"%lÀèsÂc…„Æ$ +­kËu®çÁ@)qñ¼G]Sr¼šãWM÷%){ÝâzÞ̪óü2ø^·$Ï]@ŸVnŸâ÷äã£jš•×ÈÁGM ëu.“\•ä®?«æéyÂïOü®ì¹ôÆoçÙdI‹ão¢!íKËqÃÁÏ3GŠ¢àö vGp;eÏs9†æ¸‡2^X­›¾€•r qI¢G !l¼ "‡ dÔ̘q¡1‰ä8GËO«¾d9FÏ 4•?0Ý4²Óa½þ>uÓX-Ë?ot–"5µ­©¾MwΆ!ަ¯Þ³£©O’ÓœE&Enç03C#¦Æ„ó"¸eùà<Ì”D`øa— àUÇŒLkÿxNÖS¢£tµÁÝ´³ÃùBR¤›¦nÛÊq­×ͨƒà‚zÂôÛF‰ˆk×m”4ùõ+’+#.R¢,RʧÁnªŽQ³¬£>Žo÷ᤘºë“'Æç~Š~)BÈL39^{r6&û£¤Õ‚%‚árNŠ©¦!!2\^hDJÞÎ;CRä^7‚×5(‘ÌßË€üýn;nþ<§ ÈÝunŽû)š\´uÇ2P`.LFB1Œ¢å)$­;fÕp‰ŸÇö:ÅßÜv/G~M]ü]·í<’Ãq7îå¼ZK¯[ÃDäTÓ59ú˜yÁaBr¢Ý]%ñSÄËqÃOÛÆ>ÿ\š|Šžø{jŽåð#;²³¿Ž5Ç,Xf3ÍÝ:.DX(¿Ç亻YÞ$)‡  z+¢>ˆ0TxÛï$h¨¨áRÉ€þ“ž·I²Û¤3Ž®ž>šª\F"±îN–²çÁ7ƒŸëu¦YfÙöoš¢²|éq¬R é'Ñç®S +ÈóyÙWª‡.dR©×ÊÇŒ + ‘”åÉSþž«lž¦0>‡)VrŒ‡ ÌmöÖ£h“ã,Ѝ–‘à÷äÂ}YâbXjÙßeé‚ßž¢>ûʡȓ$‹Ç#¢ç'Z.Ísÿ¶:Üæïêúô( _EÃ* žF j1büšg wTý¤kŽ4²›ÆjÙªiâf#r8Þf3f™-Ž$¶eÍ3«¦Qr|’åû4Añ+“Rýêj‚Õ¥^ňOñà$=ÞÂkÝ4wÓÁò Š(âG.bbøŒzÙ5áÎS7Î>Ï”óÐG¤–_<úê]ys¤¿Nþ:³Ãù[–ÃoÃ9;,ÕI%·E&é!ÃØÛÊΆ4· ءǪgHŠTÌú`Ábå / ƒ ‘ƒ^‚%!ž¢¦Ø¥Ql¤¼V¨H;9¢NªeyIþ­Ûz^Ëi#s¼Â4¢9•`H¡>ÇIÑòJä„„ç]7,Oá#‡ËÉ J3ú¨fù½«žü=Ÿªë¦ác¸‚Û”ü†ÑqOŽm§ƒòç`@*}ŸCPUÃ<´ˆù1ó¢âTòA"ƒµÊEQ5·<¸X‰Y¡N3 ZՑ˾ô»¤ÏIö»C|G,;{ž»u/Ç}Pó¤ÇU<úhEÓŒSnR”R40?TJV˜B°ú ­&Ÿš§{¦Àœ`H-š¶qòÚÀF<ÁÃŽð€c4/*”}ª<Û¶R‚¢ãý¦ôúI^ƒÐ²Ã8üÚn#ñw‘û¾^ZO"fX~Œ¸n¤J,¹í§( †|ººp<'É-=mú‰]ØŸË@yñÀÂå‡ )Žcüþ‚$ûü.‡íuj~ÿÔŒ?NÝ4’³©Ep„çe0$7!ã&äÌ:4(Ö¡(ƒ¡ŽóÊH‹"žõ<½«Hn§æºEýºX…Rx{¤»@P3Üzœ¿ª*%“GukZ¥_EoüQ4¤¦wÞ H{Ÿ‡"DÍ4Óšö#øv6jÆì¸åÇW2[‡¡†CŠ Eˆ]š4«”~š(‡ãn™>ŠqÇÉŸÓkN{‰Ex1QùõÖì²d–¤~aD>‹Ic夆‹ +~–ž5áïEóRìÏÒ¿ÕÛÂ|xÝ$IÎæí8Ø,Ãhš”ª ôœCo7Çz¢f¸9+P–à! €>h¨8…DêXõÓxÔ<Íñ,Šþi’ØÕƒž±·­‡=ÝS@» é# ¨EÄ”T ‰œðq£†ë$¯û•Aïµã Àt°Q#…ã0¦—1'0£_%¿ê¦ée bÙ:ÛMƒÑ²‰n›è·J³æXÍ:ì–©@JúŸA;ì@¨¨Òi´”Ì8‰Õ0•ü=lÇ{ȰèÀbFE,…£E$G ‰ “˜h¦Gñ‹ò÷¨ù=Í. +hwÝs©MU²;rSSÜŽô»GMWN;3Îê–c´P'w½r×zÚg‰Ÿ§IŽGöœå4’ÞîA… +1+9HZD¬p1Æ Ì)t£ã2ðá”Þ«€v¬Äfˆ¬^µœ‹ ºe g³’"Ѭ\ñ÷ÑŸGJOz²Ø–Ŷ$4ý¤j=Š>ÛþnìI×Öü–ÜñIN—Zµ¯±¾VÕq^Š'}ýòÉUt¼§¦ zsèµcå„Cyó´CͲµÓQ;ÂéËSÇy²,¥j‹“è +ôâäÍm«eÙP|i®WP(y$ÇMÈNŠ*P¤Ôë‚Nó¤×?ç9{ŠÕiKñrܪuzS„õ>Ь¡ÃÅ”衈0øô¼Mòã¶qÂ^§Âã+üíbô¯ðöz_ +&šVÕwËun§3JÏÒË–èöʿԓÍ8;`N(ÀÄ=dRdX#•Îâã«ÙEÑojv=(šf•‘ 7MôlÐ#áï«Ò”–o豤HO考æ•JÝñIVKñz«çï®1>7ÂG%"1?_Ñ*¹„üÞµ¨–´zÎ3þ¼³Ã±Ç0Å×Akj‹`oŽ=zªZ ÊTj_·Û@-Úâ׈ÑB(±€rÄh¡ö2\9 À3"$$ÚÝáÅ̂Љ9VŒ¼FúÜuÓúI²tz¦u2Ñ1¨]_D~‹T¨æ$’1‘ô’4;!egŠ]SÐfÃ)!~%ô«€<2¦‘JŽU.S ù9Pb/\)ý²„xÓÇ4·}{²aÁ89Áñ,Vv˜IqñJ•`–Áú$íÔ|yzSL×£¨¢c=÷Œ£Ìqµ×á!h!~–&»ÆQÕí8–쾄ü(#4¥ÆËdƒd¥ªc›²YµŒþÓ ûmj“a-~mÇåëºzŸª7YÊž÷›'ÉuC+›—fªiƉ!›½4E+*JMRZö¢§‹¡ ~xY’b¹OUZoQTQ +ñàRâ’á\ [nKµlþ¼Ÿ·rb†„¤bHK‰r¬ @™-1$ª”Ï®›$Èmù•uAQ/Mý&±å—üâ¡çv[ªuD®û‰iÓ¹Å0’ø Áãĵòóø8¶ÜæC+ð@Züþ§"‹”ç%<̈̈‘NtzG2Š"hÄ`Aròz^Üq(¹cåÃd%óéUnÓYÔ "|x:ðaÕǘ>2JX4ZFrhÁ¢ædäÓÛé(ã:áxAÁ˱=•Çö¦Û4ø›×ë`ÀhZ+z ñR„ݳˆ]£\æÓÓ`™r1Líø —”š©—gT#”(Ô¢n—‰xp!nÐpJ¨;îsÒ€"t˜€Eìð"¦äÃ÷+Švšï¦1+ÒÉÇGyx¡BÆŠ4‚Ï~z²&ƒnŠ»ºÞç§¥’#f¨PAµhù³ªmǹ^GâéS¶­£æËÈ#–Š!¢¢Y•`ÄT+R#•=Û¥ˆ'Œ˜¡ÂÂÂq•_¯Y‰VB=‰Ÿ›æùíºO«Â¨L&ûn7­ÁÒÛ®fÚGÕPÛŠÜ6Õ4›ô^¸L=VPt ”èõLé#†2Ío È¿Iì`i¡IT¨H¬Z.Á­,†h¦±G¤ë •MÁoÉuQ1l‡áë}fG;³ Õ¸ ^Ï+éù —XU'E[ kQl¹Ô¶¡ÖmÝuêmAiúIQ=—X•¿ ô,9úó`¤J:HZ)û­‚Y–ÜÆŒ<+~ÔªV}Cñä<<]×®S7-/É»,_»Iñíº9ÓËO”Ä£×´L"ý­²gSìšàveË-×ճĞ+J|Œˆ$IìùIÍ}yrÔI2Õ2·ãÞÏ«Ã=”«ŠZõ6ÉÏ«¦pÚwÛ{s¼R ¨±B(,'«š×‰4Ël×é€yùѢſ¢4FX ðá3/-¡Þý:sÛ`|í¸I–C.;3ÝPjD¢Uš²RT„ŽÛn[I™(ÀÄ0LRìйå‘[±a)® V´¸ ÁUuåôYq31}D>yŠŽE|Æã&:.Én)f_z=£:©h¹7ÅZªâvæôÿpÉAE$æãQµì&ÁÔ'åÓ{V´OM5[´ # +‰ðüŒ– fb1-5LFjV¦”ÏÓi”ŸêÊë¤ãþËΤD5*ÒŠÈC’ß™YM«Cð£ªî'º_G¢ã$|Þ²é¼,ñӜDZìpv¨P© °âµZ×’½†1ý'ÿ]âÛ±}^ù(ÿ¾ÃÄõòQoûIOZ}Ô¬ÉíºŽÃ1í:‰ç÷SÔ•Û¬»NÉ2‰mg7 êQ\ÙwÛuŠšÞ–´ª$¶E;ì}¹iÚ#Iz_R©Uß¡4µ=OAIzNStž>IÒßGz]~GÁ/k~S<úinQHÿ Iä·/Êu«çbù$Ï#‡ƒjN’¤¶EÍt=’e¦ÝiúB…Öû­ü†åµhMsr|½Î_Ñ— “äs‹~I+ÊŠÝ• ³ä8Õ¶³ç¥YÞ™uFÎÆ“¢0¢ Èó²å‘>ÏÍrõ¼uÓLtûuÇ®ºµ!bšA\¹Ý§)Ëu*ÇÅbè«çŠU FŒ5²Û/[FÉo+×ÿµ}9nÁT]§„F÷HŸGwà.’)9öÓ³?ÉSÜÞ¤¸áÌÇwñó]~é.¢^eÓ³î@ãÒ€#ŒPárøù nayͲçM_°£CÏGMÏã(Ú§¤ÌÈßáFã‚ññ’:.¥©«iÔ„cÁpÜ%Ã3T§£¬¦Uó¬£)]Š¢Zð‚š’ܦäÖE‹C¥£EDÇJ FÉê„èûm‚‡,§“ÊègáR©ê„¦£¶åÍ“äpRöìâ ¹îÊuèÄÓSWUOË¢ˆü”ÑhÇ3ªP,$G±ª²áš?mZŠ]þ<û“ŒÁOýºÒëBz>šë뮄<.{îË‘îºwãvÒ”=öº•ã^ï“)Rüµ®º8–NÉé°]—nœ ~OþßGÕ˜ÛzQ,™éX,“Tµ'ËwãÐNæIS~ÿ°ªŠ†[F<‰O×´H-¥ ~=,+‚aÇ xfš¿®¡Ö±,N’g–})R”ìúDñ¿³ †.|Fɰ'EóqüÕô$» 5Ám‹–_õL’ß°yV±¬.Ž.·™œ˜Eºi=šŽZ—Ô¶÷Ö¤èvŽžzY⣨rY F´ÀHúœ¿¢ÖU7®Ì4¶ëÞ¯ÛÏEÃ%˜ý°é~š víO3ö>Ý<=l{›çš)^½ò¨}Q<}*~ó1œ½Îí¸–ãò1ÔËpÔž0\>éo-÷¨iâá]½¢ijUÓ§÷ ©iHMû“ü ãhMs³ŒÃ_GÙuUËšÔÓ´¦$våÍòí8Ý,gŒÕ³ è_Åo–wIÖeÉ«g+€@b¿äª&;£$EcDõvjá*¹œ@¦¹UÙ¯>vÀ@ 1V0+'ü.JÕ½,[ŽCBXv#ÅåþìÆAé푨Åó·xü˜nû+êiOˆ0^:rSݺˆvS¬†ÚS?GÖÓ\že4¢IvÇ:)æäx“¤Úy]ÈæÁøËM/Š£T-¥+‰ã£˜fY‡ÅÉÆ}XQ³—ãËmí¶É_ˆ“&¢t(Þß×vÈ霛] ël9ÅK°û²g•ËÚàǺé/&6b(ç£g]H=eHRèî#§cj¿¶õHº·f™Ëm¼i€±^˜Ô¦’_V´È€­X³5Eö[Ôª5)²^wj™q<íÚÂëÐûÚ⸒cÖ,ëæI‹%ºq"‡sR±ƒÇξï÷Zu¿ª÷5±¬ožè¶™Yg$Ç=ĘñÚ{RËŠVõOÑ›QŽ‹Gñåñô©úºëVM¿èøõ²¤´ÜÉ0å¸Õûàïs=Oå¶OÛ¦æšô¾¡–…?oälBÎæÔ4ϺÞ䨧%Ϧ*Ü^Ù·è}yÕÉð¿¦/{^Aú¤ô7JnC®ÚÒií†\”¯ŸÙÕ[UUÏ õü ¦HUIîKrÝ;Õ,ÃÇ’C<ìdú\DŽGéù1Ç9ìb±ûÝÓ‰|´ QIÑ1Kh‡á*¹H}^|û%·2È­]G0=Ä ‘ŸhÊ 97)b­3oY¼i}ªÞ§*r²l8쥹—%Êé|)R˜Y6ƒàû}ï×™äØA=[º>‹cªmä†sv4’Óù6•ëx³œ?ðWWÖL³h»µó0=wÑs¨4i¯óS´4DzêdhC„U€*Z”B “ÌE0ö:å±9šiú8ŽVv´¶¢µ=¹ïèmyõ¤!yí€qñ˜f5E)š“#(ƒŸ=–h¦…à¸WW6ÛhïãGÒ%Ë(8®—f—bÃábĺ*8^µ ö¼Ûþ«º“bOŽ7øÑàwšá—é„ÏIª ©uvrüœhh]k1t9®Ô¶;I¾‡j›]š-²¸¯¬M–á&ä6É”¿×ŰCŸ]mC3­í¸ÑÛʬ\|êêeIbW•,ûhÊ£¨,†ªÇ™[ëw– ”ª+:òa¶rYü~SLÁì “ð8*~SuŠ]Ô¨ÆILåãÇöš5»%…½ÎÜ2Pý~jú6Ër³YÉ1Š~‹Ð1ŒŽCl;åØÉÌLÃ͓ݺVã^óÜâD2ÁïR»þ©b×vÓ>ëŠÃEFíBEˆªm»y®nÝϤ¶±*˜"„7Q()&7³Ì?«ŽÔt†ôÁAâb±Bñªº—$I^«ð¸É]íÄÃoÃUìzX—ìh¿ ³P½vS5;ÙÒi·ÏCÑ»ÂzÝó¾ø(ÂüüJ¿ƒÔÁ¼ÛŽ7•ãPMC5­˕ݓd»mj‡Cn6_ŠMªu=Ú–ÙVf™žž)¥P‰§ÿSTî´Vã œÝ$uÓ|;¯7ËËöäèEŸ$oQT³lL¢Á9 só±,Ÿ®i÷•WjÝ—"¤K‘‚ý¾E×M³A/宾9ŽZ–ã"÷#©e ˜í:H]é0´Çq?Ï>MuuÁõ<–ãZ3­ªçý,ßÐK;®ý¼»4GþP,’§¦yγFÊ$RÏ¿Iî¢{Þ‚19¢|Þ%…Þ–×,Ÿ])d—¥Éq¤¦•YF’_™˜ˆÿÎwišd8vÓ&¹M‚Û7ÅN§ìp`ÀZ3¨Õ¿®¦8&¹±®.×±Üöm6\Šy)zP3/Ç’Ëþ)ÚŸ§ ~MsÜr2¡|D!–e)L2bUÝ,Gm7-Ô21ë˜ +¯“ä7©]A)º“¥-’mçÍáh—j¸ÉÜdù€bJ$—}ï& +Ëmã&„GSRŠìlcȆĮ9JD|°¬ˆàº=Ž*·q(RØåyRRÍi›rœŠGÿ¡2Òbezq±ø9I~Ó¡èrnŽ6þkêºí× »âõÄ¢g¦}!›¾…_˜°¸a ‹%~¶ªÜ‡éºÌ©ÔÒsSÛòó4ñô žÇ/G{_Ï{=GU²“e8 03Ísªg¦…›ëyxÚöììaé[?ÍS…J>hØ8A¥z–ÝOÓ?¾鯛½þÀTëh‘ôÑtö¾•Ã97!nǹ]g‡áž²tÊòð|ºww<Åí·¯ä±³™Ú&“å<Žª¦•صÅ×Qoë£(¨uo±7®Ãéédç9Š–b8äº(ºFѶž®+²a˜vM’î÷½!Ø»­¾ª|šæey“äØát!)RM­êzxj–lZoÛMëµeÉ’%ÉÓ}«òúT¿!wuAðI]ëI±C“Ûv4µðN’³ÜÑ2ý:öóXnû¸­è•S4ýÊõëÚ%šj™u¼ÍÆÛlì’ÄM4ݸ›ÿuýÕT5˨Á¯,†¶)"ÁÃKje’eËÆ£¹z™e\ÈÆÃ!…ë¦I~ß>Q8 Ez¥÷([Íy¬ÎëÛqž™>¾hä)ýø¯1޶q(zRÉL8´w²ç «x^DÓ.ø½Ÿ7‡!=Š,è¡—~^¬ª¡PˆE‹:p ¨´”P«ÿcr[=[œÎñ8öéx„Û³™¾£IŸ*ê_ÖQCOWÑ>M_0T=7EÓ-ßïK»°Zž'i¦ä9Úû“ÿ©]xFÝuo´É3OW›DÏÍãB6-îëZ›ç+Š09ÂèÉžf-».db`HJFF£“®Ë)û–h;–fºh⦸¿X®+baD<àBÈ€P`€TàÐ@ +`ð° BÑÄ‹6V ÓK¢ªÎ#éAÓvãRM#ñû)%&&ÊHJ W“¾£”J?üê©:—%\Ž¹ÛºH'6r8¢ð +\ðŒà"@ATÐè`0 ˆX≠ŒP¢‡ †Øñ㇌Š-*/%=”Ò?·¹žÙVv²/dãzß¿²ù‰ÂhªzÅxQ„4ðA \C¨À- ¡ M jð€„À T GFÐļ a‰ˆøÏÌÂ8Ûâ)Ч(ߺ|릫êkµ9™‘±ÇH\À'ÈÀP"!,xA +f¨ C,Ñ,n|B+ÆÛpd=/ݶµÛn“ä×5Å–‡o!!‘AC‡€ÀøÀRàÀ`1øA¢€+4! +Pˆz°ˆ@†Zfb˜œ¼ˆ´Z,#1#xàA‡;|¹¶Q´>ÏžmQ»êù@ôˆ` U˜‚ À„'8a -¸Á˜€ˆxâ:|"æŠd$:Ý!ƒ=ì·†ÓVFWx4a‘\ÝuÊÇ?Ù5Éãü¬ôðCH(F1D ƒxDš3h¼Q£ÄD¥Äe +±B÷‡>Yõ Õî[»o6Q×4_Ö¥ó}´bíð! I(QD &``ÌHyQÁ¢¥…åTZÅX0“ÖH¨æ_´X#߆ @!ÄP@‚$@á D@‚Š„"d W0Ìðƒ"á.XA +`°‚¸ HxÐa;mS/”Í4G;Õ,SÝs7Zá T BPx`"à@AØÂ¼†1ˆ +Rp¬0/„Á SÀ‚v! E˜Á d€$† +-(Å÷(=_¿oÅ=‹”HHQ,P $ I‚†°„$\ ZØÂ¼Ð„)@¡J ‚Æà…/ˆÁ GPBTЂ„à!ˆ$`ƒÆ “Ô*¦õ*És^š3(ºÝ÷zß~š+JF& Ä`/°Bª/|@øAœ„.x g@ˆ€# À+( +NðŒ°=d\bdTV^Ÿ_äã³ò;UÓÿª¶|݇9H €@*0B”p….xáQhBÌ0†/€Á EH‚Ràôà}‹lÚt×1Ñ?ÃM`€üVØ‚Ä`2HÁ +V`‚’…'$a bè¦ô`/° VƒøPDXĸñ¢EŒ.2¬Ñ(v2¡¬R/Ètß5&#ÈBªP2€á op¾ð$á<à ŽXÁ +QÈr‚Àà €>#£¢e:z½å•z±b³J¡”DHôÐðlð‚2”¡ <ØfHá IÐlh€- Ár0Ð ˆ@Ž0‚ vàáG(0“’g$²w—þï¤é›$ŒÖ8b| °A d€…,T¡ e8 …%8A U¸œÐ&°à0pÀ,„FäÀ#+^´ÄNzW€ƒÚéœjzÆIŒL +=tdàPÀJáƒ%Šøˆ #¥Ò~=n‹›&o–%·-ÍôLš+×ÍÇâtjñxBiÚfYšuTV«h S˜¾à….€Á ZC²à‚¨`‰$ˆ("ˆvÒãÆ%‡2fFDFB!Õ¾ŸŒD¬ÚVùü/÷]ÅyMuŒÄ= àD ‚ ø`2 ðŒH@”˜€ p,±D °À=ø A‰NP"%¯È“¦3Þ$i’ãüÊ!h“£^’&Z~qµp¨ˆaâˆtD +LørP +H x€:ð¸Ac"BâZÅN#ÈÓ³kª¦a·½šé<Ã_x“$^Š®_—@˜pÀ’ˆ@œxÁ R<&ˆbÇŒ– +e5jy¡hRDZ¬œ€ä¹õ<ŸeiZ-”ÈOW\$ëOœEqd$zÑ¢R€$„À^@…*H I8* xаñ"¦MË É 09`Ô̰¤¨H!·a¢P«÷ÜéúŽ"®¢¤¼î1cE <`ä@Að hpŒ €˜p `!<ð 8P‚DÑ¡‡Œ-jb^N\­Qžæ×Õç«ýæ×”TË-¯1tÌpƒ¤@,pš €HøPÄ= ð„ HÀ`€~ØH -fXVfLFVZ0’‹$túUæ8˜ÛT·CeäHâBàÁ´`3A TˆBtД@ È@à»Jÿ¦þZŽà†Ç+Ÿœf%R!}r³$ÅîÊäb"É¡8r:"‡Cƒ`(MS<ûHë­é*í5`ÀÔ¼¤¼Dþ‡U?.Òé~nYŸÜ¯ã™]A¸l%öb +ù*úŠ ˜uf2 ÁjL¯}XõÔêˉiffÄDÚ=u›·dwY"ý%ÒQZ$ÐM^ôE¤ç0aѨL4 þ/ë_Ôë\¿rBé,;Ÿb +ËW‘òz<#ÛýÐ,Š‹äC†ŒˆðÁdEJù7Š·a Þåï$»ÖYV.ÉìBnkâû°<7ù¤û]…n,R~ìh¡c† +™•˜Šˆ‰eäÄâedEÊ‹$äûo—# z&ù5¹. ©¤“åËq¿šŠÚVÇ)ù-éñmÍŽöúIDìð¢m·ëÔL‹?ÐWYX,W/,;ºe#YþÛ7Ó2¤ÑË(4’ã':Ñ/‰vwÕd9 5¿/ ÿÇÊH.\VD~èmç’tÅP»¤—íÉPõ²5)’’`P~¬ˆ¤xp%ûõäSSÁz Kð:²Ï1HX$?/’ßtÓfR¦UYNãMråãyáZ¹Œ@$ú}‚]–ãVn¹l WKÏs³ŒAo4·,#ž†%rIdñká4ÉŽ·ê9'Å5W¶,²ã"ؽOÔä>²³åcYj_Óûšà7Ç»EtŒ"úœtü ½‘›â€¥h°J(ú\rÃ#»œŸ#~–ýªòjz“¤^–)8fùø$7-bË#6u=- 9ˆöùˆü|ŒØ™”\Èìx1qAÂÙ5+Š$\f‘"…TS'AÒ˶î:…ÇOr™õ²©Æ)å4?lÈœ˜ÔjÙòq˜Ö‰ÆÊˆ.L¯ks\ yVœB+ž\%»ï·åiÉÚŠÆ:Ùx}ž+½žq™N¹Ý·êNOu óà3°Ô4d|`UÃ,{µ«¯¢w)òªé³¨ŽŽ$¾Žòì±ÄÍ’$·ª\†ý¸h÷ãUNÅ“,X»Žºå‘ìòi‰›d‚ꦉTÕÄãY·mÕ2(’‹iæãË>(ŸÞ6ÏsÛfÄÈ¡0ųËu¼i’ôü Çwt]=ðÛlî´|¢‡jJTj±<½/©eG캪eÒ´“^¶Ý4–ž§ì;E$’AR>:éeñ³|Ç0EÖãn2|áB¡‚%ˆš—(1”O½êéU]÷rÙ,Sï»âç+|åçf7KšGüÞOÓ›U2üƒ%FŒåêS0KjÕÌ¢j8eäÁ,mŽ ØEÕ³Œ ô‚U"áï«ú©ÙƒÅD†ˆë_Q›¶@0b«¬Š'×Ï2ìtLSÑ´~šðçåæxšá’üª@6D\¥ØåUSUÃ/|&éq¬žZÓ%”—xò•nÿo‹`‚(÷=¹ñ%ó2Üϱ$·*;ÞÁb²‹)"1+È!ã‡ËI–’X´ÀQ‰dØÁ-K¯›‹`I=YB/ êe=çè“a^†0-S;l˜ V¥[F‚‹%lÀðárB «Òj†ósŒA™T·ýaÏX>«ü¹ – ŒŠ–“ÈoUÜò¨yñAÆ ’¨äïi˜´`HýO“xp’¨Ý-ÿ,k‹!hEKêùÒç2¤¿dŸQüü£®êÆyZ–D¿OöÛ7Ç={Ö´S‘Eõñ¡Å SL£ä×uË$˜¥GPå43ë ä·_’b +0§‘Üò+výÜKq?G»$ñ2T‘é@3S‹c¢¿yꢸ“$¯¦´YÖæ¸²aX¼œ”L´ú@óòƒ¥dfôyÙsËžM0»—#lß+€Œêüõ>Ö û°ÂG +Iʇ_y>-Ë~©–cT%“ì®d·dÏIr&ôóàb’DŒš“ßãIÑ*() *nYœD4'˜*\fT¦þ4QH$$vôPݶ¨E[2ëòïAȬðÐ2BãeŠ)ù±ØÁD #vì`åünŠ/#™ªæ$‚ÅKŒ— +/Ř~¿òú$»"…Õ+«vùô±êŠßë&‰£¢ X ’—§EKsK¢Ó©6eñì/Z©Vnß(‰ÚeL¼*/#+'±Ÿo=í6:ߎ£Gð[×ÀT9XDx¤À^J “ìÒ D=\NDrû»ç +©/ùà'!¾äÓà÷ý@4Ëî4¹¬n’>Zú©)¢×8JVð!à 6HF£[-YL¡{Øò•¿5NX1JX2JZ3ªϪ¦¹á"͈ú”ÝFáó>«è7U¿.©O1TÀ°\§Û>ùù˜“ˆ„¯W°D*V¢’/"êU½n§èûu0|ŽÉïË]QtF»ªù¥I‘ýº—Ç7ɱšvè‰èó Ô +•ÈdŸQô‹›ejŽ_w}—a]‚}‹šæ7Ƴÿf9‡` —ñƒˆUeP$Z¼,C…—‹h—+½ìØãºOøCËÉ»ç)#7P`8R`:Pb${­’ÝÝEúˆš‘Z¡¥oŽ)W…Ýñ‰_ËIÙH1!ÅqÉÿa…ZFšÔ¨D§]@»IŸëgù¯©'=G²»‚¦ÂÅjÝ7Ÿš#¸eÝs¬ÏeV$2.&ÿ/ãurùì%zýâeN¢W‡Ø´…ê¡O쮀ö± H‡ñq–܆XTäž5 º89‚GŽ“mÓ D2^)"\Ô$ƒE2(<\FjX%T=«`¡>îJ‡ +’‹/BÃ¥íKqþºSíJ XÀX#~#¥ÅCKJ ˆßA%†„ŒšVª.Åš‹$ôƒÚT´ž'WMÁ¬ÉUU3ü£'ÚÙ „ö$xôØÍò&ÁßM]xìºc• “ü¸ +éCš]®ÒŒÖIh—Q¢ªò‚éº~ž$86ñy×Mç¥xúG@›¢ðt’TŽ— ‘“KJûô9›¾<6 1'7VDbŒ \Jÿߪ 75éí› ut,ùõ$-.T ‘Ô/`žØñ"¥Ïª½¦©Jò«2â™àñ‚‡š)®-’ +SèÅã{«ê,ê~\ìm&Xm3aƒ… “è—_6ôn´$ñ{ìšà2Ko³|rRÌþ,zòñÀö¾GÍ+ Vių»bw´ž£x…i•hD\)zþ‹#nÈpÑB½ê7³#ºŒŠWœU¼T$ _+BÀ€%v°”Ô¨F3b¨”ÜÚ Gƒ]ëdÆÅä²(¼mDÊ2&>PZ|¼èŦ)þ Ã5ª;™Ø´¢ù9‘#†@DLŠ4²Û1#†Ç°¼Žás +TâÑ}´œùJ¸x¡)}b@ù +OÇtšgSè3<\¸0ñ÷T`=¨¼r¬J$uRM{šàµ‡Š ( :jXĤL8@Nô°ˆL + ŠÆe:}Nµ¬C 9´pc…¤BÙ¡æ…ÆôY‘Åôš_QšO@½JÈ“òÙU B3§ÐÈ^—ð´•*#'$‰†7P€$fŒŒ ^6f¿>bJ† Aà ”ÈäãáSSÔ¦.¿§ä²-¾­â· ¨|X±â¢Uâa²â%F‚U/)x‚‰%"$>NÒÛ-#Ì)ëqPÜîlšcEDÅèCBÇRJ¢\µeǬ{Ál ŸO<üÌ ôLÜXñr +‘ð÷È^¯„ø’_7Ñî˜\´è¡s€3 +€£ˆËÈŠ”HÅ“£ø8ëžS4ìc&ŠÊŠÑ/h<  F̨‰!‚bñ:Å qµî¹ÅHª°€ —–)¯$p´ø1ƒòâezõ±:†=¤Ô‡`hBT<9+V~¨Qá‘ÒêAƤ/<`ND¯Ú‚0à +h@ ìsòüÀ‚å™”"dVˆY)ùô:Jº(aÅ x²Rê]N¿Ìjôâ2ÅDý +ɃÒïŸÔÄA‚ÊQ²z3©8T|½uÓ<«ú+ƒ=z,$ÏŠÖ(F¤¯8ù);ý1Ç–¨ÅÈëd×0<†ý+]å¿MvùÔ¦øÖ¥8kŰR) ^ +£‚¡ +ñàB"ÄÌÉLh·lå4•ì²ðy‰^ñÂ%‡˜’,Xz¨PY!ÒRé7–0)R8d¼h­Dh£á—ÒÇÌäÃ%&Ä‹—0(+[ŽA‰0`%XŒ¬PB}M«dcEdå$Šù9«dªc˜ÉEIëäÇYpÚBêYÀN0§«†U¨D/&ÉnïH‰•xrË®r;%jS±”@*[VùõØ-ÇðùELµ2òœ|ô—Ó§äÇ[N!Ì’Zµ7MÖ,çpâŠ!âe'}ËcØý–ÞÓ…Ã-#¿¤¯EôùÄ¿cN¿Ê¿«ä—7GÙÛR®º‚ôßQÅh^DžN‚Ï#9ý¢_W ZµÇŠ ‘– WÉÅ«Cò¤lÙW%Ux-‚Ùѫր¡^¬F)ž\$¯[u\‚W_-ëы鵫ŽiT¡(­”hŃ«ô¶ŠØ<).yp¬Àæç4O.«âÙKlzÕ²"ôÄI1;%Ênα‡[þœ—cB| +Va9]jU‹ªxòþ$s2|ÕpÊNŸðu«†?+ºn +neDÿç$e®ÃÞAhYbÏ)¹=r×öçјF+N"Òe¿ôÜÍ’EË$|îÒwš,uôdÕðÊ^‹ÌnKnKnœNŠ&>o#%Çjº„x¬ÒŠo›Üð©==ìéyÕ—Ñ¿ò÷ ´<¹ìGU÷²ÄA7Û,í’,Ánˆ=?(IJKÙݱ*ñQÑ”>ý)®\ç•×Là€±£¥%–Ó&ü\²Ó(˜}ѱˆn§êÔ¦-X$'®)0,RÌ'ÝqÈMùtüaF ЍÃq(°#©!\¼1cf,8HP-Û}és6`¼F1$ ÖIÆKÕbUJùù–-ã%Ù«çN§Þ”ž%w-¹å¡~† d¢Û:)îæˆòë1¥PЇÉkS{ºâæÏ]<ùË–u´DÑ­ Ô+/&/Øüò$(‹ÜŠ(£ŸÅ$2ÕñÈn¯ü»‹ÈW ù ½é®’,L^Lôر2 +¹jxÄ†Õ 'õ®*}­âß,¿Žâáýµ=3NÕ<_]q’äMSEPŠÖâøzáªqbŠh¦ÙåùÒw“{†Ñ¯.‚oÇyNSÅã¯ü¾éeÝmãIr´ª'·‘cˆEèÉ›¤Ê¦S1s\Ûá¨õ4$ßÅs³0yNíÙ—`v¦6õ¨(¨]]7mÒ㫘eͬjnmRŒE0EË"y¾fÚªe¤V]ÅîH=UîZRÏß,ëÏ;éõ-§`—Ī+9VÅï‹–?éy“¤Êq29‚ÜÖÍ:zÈ©^uE¿¢VÅAp/Ç“<ë¦YzÛÔ ÷'RMØìÆf÷«´bEÉkj²l¹eßs8Π¸rÛ¼VÙ¶mšnø½ §—ã=ý1\¹iÌ®ÜTä†cü=Âã3NL\»ï£fJnI®ê9K•üÞcØvZÈUƒ±"G +IÊÏ£àõ¦¯;>ñä¨ùMév~–°›ÎÁåUÏ'ÿ.Sú_¬B4^¥’NÍïKÏS5½‚•:ù=!V…é6 ésâçªØíS³7É| Q4ýÂoœvùw”¼&­èŸž"VeÕ³¿ª²êf‰zÙŽQúcúû/C—묈¥Ä$1½©&(-K°ZâKòk›£Š8XJJüÞ¥ß*œ&½kª~Co:ƒ¥H‹"Z6ÉlŒ¨ç€ÂcŽŸ´¼Eþ¼Z uuÅQ¶6Ù³ I­ É÷ÊÖùtu½ädŠpÓÉÍôwc×[-ÃA¯'Å•~o1©ð9©]Ó,Q ˜»¯I2„ƒƒáŠ¿»X•`¬D$¸fÚ†Š—óöqT3›mr«)}Z J3£PŠßï(ZŠe%#žÖµEPÄ¢-#?Æ‹f%‚!yV3Ln8!Áw܉3·‰Vt·Sü+•j[xãèdͳk¦ù²ÌÅðƒš";ž²ëßmiPt·ŽEJùüúiÞãèb‹ŽY¨N+ÛÞQ”å¶‘³¹ÉñGÏ?EMoìYÕ=÷Ö%1©ôX_Éõ-× ÿªÚv]ëy59–è÷iMéð9›²Óq?¯ä¦,F~É}ï'ª‚âÈq#úþÜ{ýÒsúªt^äó£„B,Õõ Çý÷ÍÑ´Å?MAkÊ—$š»9†V4uÛ!º†ù;‰‡oåwË®Y´ ZU?MSµM’éP<Ç@!U®Ç<¾k×A«Zƒ_ zóçáhZ’i$ûÓôMó亭™þ¤lì… §“z¡®¾ü©êä(bÕ«šØ»oÓXI1Í5émW³¬Òë,ÿ³åøëƬƒ‚Œ ʧÖkuí_W5b±BÁvÝã¶´šºB)%(=¯úmˆ¨Jöœå†ß!öåÑõóʲXÆ`éŠé؉óÉþ,ìYßÜLç±tÃ1í>tëÖEÅõôÊ‘\{NÃ= =%éj\¹é Yw‹hëx{›zÓ‹äb}R¤ûs«2©…3ú +¤,4ü{³„N9b¯&°_§Ã¯GOEÿfQveëú&±^4/.rÐAfôpR ³N©¶ +î_êü¿î]2R©P¹bH¥“Û¶Ür6)·ý®Û†"Çá˜áÙû.”¢—XH±"*€˜`zø'3P*~€FTð%½Gõ÷º=?½Óéûe×Ùvnݺ«®_ñJMüº‡Kîæ}~sOZiÌ”¼À¼TúxwË56YPÍËè»»±éÆG1¬ERQ…R”å8¶ó`‘„GÓMT<åÖžÛ»·’¨åƒb¯"I—5R>&¿æ=/]“¥ z?ì–ì7MtÛÔϫ״~aÜÞe»oÐìQÑj¡P"8Í×0žÓ{ß² +ßl,ªsP Y)Nxïž4 “X):Lr43T~€€ÿÂìbZÎZUû"³}z]¿ W°Óm(BFNÆ›¨êqò$µ0ËH9ñ&™ü¤gÁ¸W/H+:N1;Ô.©š òTÝ‹¬ŒÌ°P¡I}X·‹·cÊz£ Ž¼Êš”Lõ™Êe:Ÿë×%(‘Z™ªÇt?´ÿ’ï”;—àåÿ1èõƒXy^BO›$cCs®fºé¸!|ºr«Û4©Î]°‚rñ2ÃÑKð(&­ø¦–y‡¹÷JöÄZ}Û&—©d‡oÙL{÷ý[—Ä÷I6Žëÿ_B³ŠáƒË èQq‚PàUÀ@²à¢,ðUÁ·äp—Ü0=)"\úE&!OË%Yø}µý¬îMš9\‹$[Π=†‡˜€Y‚4` ¼à‡nCn0cи@ V–èÀ§EŸ—©$“Êëú% ‡ßI~%޶#ö•AðE¶ˆ€ªP0ÁˆÆp0“€¨h(A«fVœåæ©Ü_Ñ­ýÚ\¿cùÖý\ÁM\Œ\Ñʱ€’°‚ˆðÈ@ Ž`Áphà°,àÏøà·ôðUt°•µFý©?ålLŸ+¯¶%Ú.åü +5¢’ÑÑ⡌˜ Gx 08aâ+ ‚ ä€ G¼ -$ ƒÐ dArù1£fN;Ëý“îžtï4ʲªüæ#T &6pc9h"OÐÁÐ@"l¡tÃ1h±¬tÀV²¦jÒÿ¤œMì<²ëP\ª¯*»â‰`Á ¬ Yê†&ø,4H‚Š À¤øNà.ŽÀWx¨ öñ¦|Öÿ7>É4<žú(¶ÚáH +œ( =È@ Ká +;ÈÀ 1>T„'|àð€ :°5QXµGlå~ÙÄ\$PøÁü€9h7hB<ˆˆP"Tà—$0 òñD_DlÒƒ ¹„°ÈëR 'Ì:Ùµãž5£ì( Á(ÈÁEXÀ¬Ðƒ=xQü°‚ LàYà¡Ùˆ„Šçé®'²ÛGn8bŠeŠ6ëLNvfÛÈѺ› EÈÇÉà±DáýÿÚôÇnª®ûÎs|Ÿá¹’ª=ïwíãöçUçvdÍ-ŒÃÒíB0„“ Å™q|Óc*—§Íº;?z‰aÃ,@Å%8~HµÔø¸dü =ó h~á ‚eL¦;êÖ$*ƒ$-šùÉÖåú†§L¢-‰Î1]"C#I9Ýmçtm»§å{Ïýƒj]܆oÏ+—`YOÛÙLyWÎã›^];máÑd?04ϧJ ù‰©XÒék§m¶ùK¯i»Ž¦ˆèûT®ó¤ìоAí««ë\žï'–Wv²“¨Fö¿pŠ ¶i¥b¿o£(ê}ç'ÖnýñI%Ð(>ÑÔûjòü¬o’n牎úy(ÑxŽ®vyÊ"I“æžž3,“)Ï]ÒÄU7Dã9ºòç©—e~ž? ‹æÙ6O.dSj-йH’Ô¸i¾YÒDG‘%ÃXEAžÿ…mðWÒä_ØåùܪˊçJž±‰Šèœnåö\õXŽIs_YOë¢dÚ%…ByB;}뱬³­ûï¾`XjÛ|–>f¸Ða‡]¾Kž?„ël¿¢ùm8à`›" @0nüðÔüÙ}¢–UÉðèuw5űý<•ÇÏ?ÿq7&á:®²à†³¥HÑ…„ŒYçEÛŸ6ŽÃr?ÙKÛåZfÙÉÔ­c½ÐýBP<ç«Ë¥ØÔ%z—§»u)ÐŒ›E²WYœDQ<‘þ?µ®&Q>}gѤŒ_ÝøWîó¸p9v¤B¦ÛG4î³±Mžëæ‰!Ú—¢#n¶”ûTíãP„¼ ‹$ëõHŽà¸$Ïu‰Ò+Œ–ë×…¨‰ÖjK¯°Œº²©º X›¨ÿÆ5ªŽ­EºDk3Ŷží7¦Ýǯ­9rÄp™99ÜpT®Åò)×E),’a¶±Ÿø~¢,†;zŠà8Íç‡ÅðŠ–EôÔ¶5Iê(jšiŽ{P4þ¾x,aO¶ìÂqëXq¤Ïu&ÑuãhÏËEÑ_WOûïû‚á~š&_fµB\·=âáAo›Êm10¡›—MÔÅï'~O’ç,9þÍ’½Ó9¹®Í4ÛÆz1bèžOŸ_‡åÑîÛí £­¨u¢Æ‘§rY X‰Èt§kŸ®¦µ}A±ô)ªTL–ú‰zÖV/Q›Dõ3E •Tx_n®|Ê’`ø£¦«–™™†nÝ\¢oX–-?ϑߵퟞ;IzÒôGÏ\Mrœ"õ繓dHMU­[ZWØûÆ ç ù̵Oã(8–Zg‡"êDcìÚ¢DR úTÃ0æñ¼z~¢(YFñù•Ç¥’a¡^X*|eý×ý,Û$9‡¡=ŽºYÚcù~¡ Žéæ­ˆ§­ž¶º™Þ¤©§é\ŽºzJà %r˜Ñ£d÷x™š^9f×#×í×¶.QººûÚ𼦭-ß®¹ÂdZŸ«Ú}ººî«:’åûÒ⸷¯ßAu‚c‘'öùK6Ý»î¦6šÒèJ£)¿ºù¹Ò"™ ‹.`z°˜°ü>êmMgåùM\¯ù…o×õUUÔ®*˜ ™&›i%‡ã»î ŠÕòEøKÇê›v`ÉÉÆ ‡WYeÉŽ¶~až¶&\Åó‡u{4½nÈu]ú ÃÄu—&n¢¾+ûòM“èë}ªîhš“å‡ee0|¿OGQ]§p¼gW\]YÒtÍs¤TÉu ŽŸÙ>í“‹f•ß½ëΦ™‚­¤L°(ŠXuEË"îÙøÇ÷ Y<¹W[×[nÃÉ1GÓ¾}u•ÍU6gß u4½oMŽ´(þ­+â{N<}ÉmS´ãuùûö²±,O’7Ö`h‹äÛy­½Ýüù…o8Âè:…¢‚Ð3?Í9 iqŒq¹jFJtepœ ø»L)ä"Æyj%ݵè“«ë'†Eq jÝýDÛS³-Í6ØûTP¨þ¥ÛO|=ðÉ^Mû5ÝQò‡ +™‰iÆSt.Z]zªäØÄ÷K¯üQ[?]ã|Ã14ÛúúÒãxbS£O éÓÚoS5\¨¼ôo¬š_”ýnùì5HV!9Vɳ$Í:¶Óñ$7õB¸@ĘQ¢ÇŒ$n´¨1â’y^2ìaW6läu¾–¦¿¢"ùò{^B£¾ßKr&¶ò¡ÖÇô–©¦VéúŠIÔ ˜$áCŒ–˜ +‹™’— ‹42â[ý$erA©iAq‰‰r>T×$%”ê7yh]_[~MÝ”IÒã¾k×ÉbèQSn§Œ>±~'Ápo–n§¡hxÄÃç'êIÓ_‡±*±@•Z3ü·,+Š®Aâñì©|6é-HV"¿d×?̺ )¹1imM¬K‡àºqc'³ì EWÿ¯r_å<s³LÍñ’˜ +G‰Ëä÷é’tytÒˆtÛ®½v±"½`™bL"S-ï­ê†ŸvG÷®‹áÈ~“øzJˆw!yL~½?Ç´³YµÌƒ¢æfcr:íÆ¹·jššuX-s¹-ö¼Ïª¢`¸ a7mÃÏš²nzÅ$*yDm›‹b‰ŽÃìڅמóLÁ­ hï#Ùm”ÒˆdÛ(z~1ÃÍóýÀ:iP|½O7M”OÏÂq0)#h@:аŒüûnwõáÖTÏ¡Võ¼\Žª;†aÒŠùøÊ–A+ÚÚé&®*%>¸P1c…¶ë9¨hÙqB¢‚ÛPzÞ çnÛ z.NFœ ‚ˆ~Mw¬ÄÀƒŽZPDh·5³${]‚×+%x„ð„TÓD¸pi€7˜¸ábÆÈÊÅô{Ô2EWßW€ +Ñ6‰Ž°Ôp•Fv»$ÃmÇ©Zˆ‹˜0À‰Ø½- ˜ + Œ3ZÑF. b1/Mø¤L(1cÅÌ>ìhŒ À”¸@ðq€#z°ã¢êy+`žh¢‰•‘ˆô¥¤‡ŒK +Èg!ý4®T]Š$£‹ +Åò=¨=ÿßÕæ)úUé÷Š×Ëêz]’ßÓõWž{Z¶DÇ('R +K•‚"ýX ý¢{®1qñ#G8hÄ0AÕq‰–ù4MÉ3o¢$§#r8d'“ÃÐ.ËüLåpl;OE$Zñ|P0l‚Ý’þ~õ%þîyÛ”¯{îÛ§å–ÓÆTBñô)½®òéIBÿÈžML¤Õ‡ôQÑšØJäÓ‹âÖ4¿¿Šîdøršªe-×¹÷a] eðk9Îí<MoQìQÔ£®²÷™Ž^’%ØUÉ/‹–cýzßVÛj0té9¨mC2ŠiS “äµ ˜j壓æ?Éý$]:Îv^š¯ºÖÉþ@Ý<]7­n›Ì‹å¦{ŽGñTË®>OátÊžGµÌ¿nl–øŠúqK§§*§Gx»äÏo°ŒQó‚šÝÜ$SõìâÅ2ÁoÜqû(Þà·‹c†ÿª–ð|Åþ^ùwT»¢RtÅÈ„Œ +’.Ç>~ÊÓ“î:èÈ‘BË닊xp’‡„×S¶]£‚ò»¬ éãL + h±éÇ]íQÌI±¥Êá²bšë ?Qƒ‚2ÄŠ˜.ÔKˆ9bP H@, Àƒ/ €@ƒÐp„ÈAÃR㥄æ•2ù h‚Àà/T`h\ªø‘4hL¡”wùžõ<?,@ $NL(–?!ý4°Ô!f°ÐAËK)tê“ØHŒë%ò{ZžFÄuDŽ è¡Ç5X8ĆŒ”‘,f– -Zð˜y1òz9TyíiYŸeÝ,3mí<?+K¤û}ëÆ¥š¶ºí×ó¦i!‰'ñBÕ¤H)¼FõyNÇž{va™bÿeÛ) ÆÈªÆ + MŒÅ’:õ2]“ÁœD~Ëò-;šçÖaÏs»­ìpÀ–ëà/üP„|ÚV$ÇyÊê¨êr]²SlÌ.–.×±ÜjךEîÓ÷Së†Tõ4ÏU-ù?ª[—Á¯ô®/£G‹‰-d^´ö“¤Çòõ¾ùï0”=pÅ=M<{ †ýT¥ErírX³cFEÆEÒc’ –1%Aä€A€"ˆ¨‰ÁhL"ÿ&µ(>~6Øá¡÷«e B€¸ 1JJ‚pá²h8àR`7LX1¦ß?Å”OŽ0ãDä3B#dÔ̈©X¨F8JX.$¿¤3€Gø:˜1Sƒ& / „XĘ|üßmÛd¿OË~ûÖ¥¹rÝ\š~û’àø$Ç vué8•”˜ï)Á- o·”@1ªŒ“j¬G "°W¿· F0PDl´˜ØP¡‰µì•MÙgXìî&iºí.,¼+Ÿ|B0 O‰Žÿ) +wÝÂI5®ØÀ +•ö ÉÞ<ÿµ5½ðK–?¨šfÙ‡mk”È$ùvEU@ž”Qˆ†uò¡2DLˈeOóÜ€%`À€y~•üšì6‰nÇò›Ä¶ö~8 híºÌËÅ«kM’uÖàç1ËÓû¾Üv‹Ž 8@ XîËRõ²2(‘&~ÈèáEÌK×IM3õü +˵³®ÇeK³ì·l¿ªüyž'n6î÷¥ˆD3,VÍ‹z]øûTMk»Î4Ó7ªÆ$éâw—“‰4 H¢(ADÍÈëG5ñ4ñü±î$IÒë.\*-Ûäˆv:cŠ*9ñûßuç0ôÏS„ßOqŒâë5©‚øšþhÁâ¥Åzñ7ʧ1rB‚ÆŒ *´rú‹Øc$jéöŠ–ÉÆÉk™”$jÐ$1ƒfëÄ¿ëÿ¶ ÷­Gñ.Gìªb×UË­˜Ñã–.›b6Æô‰éòÉM=$è’Ñ®QJo›Ü“$¯=[®z¯“ˆ_«ì7¶Ó0¤þEÌäBä´CHŒ°Ïd‹.bl¤´\ÀN,œÞÓSEÒ<Ë@IyD¸™Â8—&(žW4­“¢z&¤ 6bN+>'âÅÌ p€"Z¨8xÂüð#…äÃXÁœ0â‡*Zv¸˜ÜH!Qå¸kvsœÄbŒ´Dz|Ã<ªš\8Aûó>§sšmr÷±ŒJ5i†)Bø0Lµ¬^–0×!Š‘Ã¡ÅPä¶M®ëša /)P h¸XÑJ±„<®»ÞOÓäó¹šHÀC”hzÔ¿ˆþÖ=ŸfØGÏœ$[nsSÅ81±KͲü®}ZzýÁ”ñÅO‡3LðèêÚ›d‹hCô¨= ÑâåEë´—äêuGуEzá$,)1)Ò —Z5EVË\”à!ôS];n¿—õò‘2Ò…Äò+Ç H€Ž3<+ZÓ*ñðB†F„µÒï–nÃtû³®cȆ$Ç*\¬¨/I¿$ó0¼ÃÐż4EþŸ%µúWwà–UÍî +—õ6=ñø¿,ëï +ûõ™•¨>f4  @¼ˆ‰A…ШD@OüˆaÅjU_U_ùΛ&(=Y±Û¤ÜíÆ™œÎ†îç©xú·“ÚÑP­{EÒÇ §ì:©]u`¡Âptà!âñAîÛ«© +§cV%)°ø°ƒGŒÊ ·cZ+–®ëéiªáQìŽ^weÏ2FX­Ü~=/Ç”ž7ÑoÔ˾—v:t|…²K2e²aòÊAE‹Œ +õÂg–‹Z67Ë.-5#%!5Íqâ¢I‰`÷ JOØã\nS;0;ô€›'~–)?ŸÃH ‰š ^PX¨N½šŽê¹ˆ=d`$¦VUBÆ @ ñ—+Ñ˨/Á®ºm2ZV @„-'“_ޤÓ$™&ˆ$鮣?fµbÛL׎»EðUÇ%~®b©x¡ZF ]EwÀ ‚‡ŽØ'ôâs­ ËôR +Á8©‘2R[yÞÖë.(’Ìkå‚"Åx<¿.øÅ!ø»l~2عòzEI4ãï#u|‚Y9ÝÏÃMóÍ9Só+ciIÁa"âšå½$ß0ÌÏ35˨9±éë†aŒ¨zAS ~±C:bĈ´XT¢—ÔèoÕ‹î& ƒžºi¯×Éßgv:-ÇyHR…–aöÚ«–bÍ0Š~‘ÐQ£?rX‰R~¼ÆÈi,FÌB† ”±T‹¿g¤´¤H(œ®Ç°å£Ÿô¶ˆ>“ðvІYù-“BÁðúd¿EgY{ÂépHn8$§S—ãê®Ñ},_¶>Âû¢ÖG2vß+;ßS•HÀp W‹El%ŽCÜ€¡D bH|PQB€.~¡â‡‹št€9V¼˜Y¡–°±¢ÆÈªUÇó<†j·ý,{’g:o1ü¤¨K–Y1¼‚áÙëhNHnƒ41„#ûŽév50BÐp±C…äELåÊi; ùÓTI™x–¿ïE³ÃÑOîêQQøãb»Ýc¥„?Ký,E¬ZrÙO›¦jW†EêÕ«=JZ9JD^À^9bÏÜ e°ã×õMñD@´D¨VõŒ¡Ím,'„Ý„È^wªi‘å6¼SüGk•£µ:¢… +%°?EwS˜XÁ00ò¥þ0)ñè+£~Åôùz-†OôÐãh@Êèô§ç ÕŒXjE +´ò󽚺"(j»$[-{³/Š ¡(Jï\×ìpj“œQ™fP%–=ÿ¥è›cˆM}ÔLÅì jfeRÕ/ŠÈa‰9jDZ©½†ý|‰ÈƒÒé\-{ÔÀðpáâ…ÅZ!^yMrUzú'ÙvÙ ) ùB̈—¤Š¯Û‰©|þÿ,mR\;ÎÃÅ •‘\À*-‘ÖM»ˆ@;ÔÐø€qqý©×õQ47Ëf¼0âG¥ºfݰŒ‘—XË DâÉeNŸE÷ÛƒŽ1T+&Í8ᬿPË–7)l”„Ѳ²ê=¤8>ÁîˆUM/[‚×—>‘a1Õ´ï¦=¸`QbÇŒ"vÌð¡‚¥å:Õ3Ϫ¿Ûêjû?+š&ÑqÒªÖÞG¢²Q³lw]œ$_<žSë¢ç‚£~®¹©º]ØŸëM¢lºx_…*EÒûŸUõ¤èh]õ‘¤G7ÑPëî¥É³ïLÊ +;j(¡£Æ6`a£E-`LD~£j›GUE?­{¤»u8Yúªê~à †~ë¾X¤Ÿª/º^ùý™TIå㵫gMa ‹‘–¿jšxô1”1&%»ýrûy(ü~éúÚÉàÎÛÍtþÈ]$ùqÄAþ<¹óRtíÚõ«Þ¥˜ºg.*0RLJñKÃRÍPY!Õõk¿u ˆ¨0…`¶ü£æ=Š,Ç•Y‡í¸–ÓX1lbÙûûîïÓCÁW6-c¶Âï^EOòÅ®Yz=%äiÙóŠŽû´4ùs À8d`XLŸ+XšÐÇ1j€ÀœØ(iµþ¿H9éáE “<£äׄÇ=(IƒžÉ ¡¿mĦ?jŠØõÉu寳C¯_Ñý,õ1ŒéuìívMÌ…â{Z5 Ûs ¯|úOÃë1•Jé’[$«,#+©IÈ?Ýqªv{´lõ8;üp¡|^9/MØóVm9nÃé @áêk$,ýÃðAý®üû éÃ¥„FILEË1VNB0Ј¡qQ™jX$—’/Â×&úõ´ë‚hB “´²;yÒž¨—hÜyäf£á€"Õ6Óç¤É·mÉÖï2­ÉÓõB5ëÌŽ¶zŸÈïÙá‚’ºñ¶ëìQŒÕ3I]¿æzä¾nç½—RJé@.È‹j®`VfÔ7ÄF>lÀ`9ñ¸² Š"¢«÷¬·j]-’}ªöèZdÊuªçŸ^,©Ö¿²%¸}í8è}Svíâõ–Ï“dùDÏ6\Zf¨¤ˆZ•U¿­ú­h,†7ŠÊ#9n62LNhX°OÚêàhà.Š7Ö`øâ{Q=û0ÛòjŰZ7ZVxX1#¢Û´DÍ0(vI5,âÙQsì§g^Ž(—™¦‚%gÃrÜéó±Œ;Ïsž0šVÑu“ÚîÍÒ&GÕëìr$¹qÔë–^×_ÕüÂt|ÄûŒü$v豂$V#å…%xp‚‡ !j^xœÀ^´L(¡^¥Û0TP‚°ã4Ó.Ÿ^&ôãcØrššmìo³¿7GЪΠǗcÉMŸè8Š]I¨éIÍE{-DŽ&‘‰¿ûxQñA… 3jpŒ¼hF!&JnEB}”¢G ñÒbÑh9ia3íª9þÕ´TÏ£šVáyÛy©¦µÞ—~ ¨m§ã§ç5+>n\—c)f[|}åß[F?LjôÊmÔ Á£Fl0+*d”À~¬ŒÔ @- ^d§O3|—£ÉÆW, …b\¯ž…Mó}$ªi^ÈFÃ…†"‡"Ž}ö5;Zºqªêèê«l=–s8ÞæYfÚ™i£×ݳo–r÷ÁGƒ` ‚%×í¡ÅLIŽQB#¯™èG Œ*XV©^ma0Åñlž`'³I³I9U£CÑý>÷M5í·qºq Ømí»~ª ×¹,émùÓéw`´ˆaµjq ­êËžWþ=´®¨¶u)BÂb¼¨Ñs’o}<áÍ󘧞ó÷É¡˜vï¦ø!–ÊC¾æqÂc’„Ž>¸pI!yµÍÌ´/$ÄìtTm;3ÍËœ4Iî 2OŸ$÷qÌKS&G“É ¤<¯Oó_S+&:¼¨ñè(!?$Ã,O>D=ZÐЈ°~ á"4"_&Ç”ãà0l=ϳªuÖ_‡ƒþqû(¢Z¶è×ÝÍTÜÎa"B#æzѳ +vOn››åߪ#˜µG†Ó%¿ÿÒñ”(‡«Šñ4®’8hV˜à¡‹“’Nãjš§¬ŽpÇÁG‹àÈmߎ›CÑÌ´‘ÃY¹m/ÍÞ4G.K’ãÒ ?Ñ£”"BèÀŽ òeØ£$hEO±Û“ v¢„ñì-þ>JOO)Ö`wb¬®Mì*wÜe¼)ÆfXƳ»€z’›î¢wÃu"€‹˜œþKQÁ—ÓØÍFִЉ¶œr&7Üc$% ‰ŠÏ‚ÕôTÎA\ÓÎFþ8VÌÒ€øýÖÇípÎŒCƒÞ¢0§Ñ RIg1ò¤Üuî¸7ëœÌ0 ¿"Ë¡1¼·n+[†á¸é…󑌹­/Ç–ï±2Ý(…Pë©“aËi"6}Éné$CdȈ-Eªù9Å-'0=—ÁmE³1V'‘…ãÍmr·µ ‚Û×]{F±Å¢ªÔ,£§yÑãGO;V̾è7xÄ!òaª9*E»Ûæn¹kl¿wR©è«žs`1&2ËZ wÌçGµlËéÀgõ¦@NV ÈÑ"å®ò–Õ÷šã~ÝΆílô„ yŽhÃ#e¤„ÇmQ¼Ååï[”@*Ô¼7NÞu>£§“`É]U~Ÿ5Ï"5bÕ»ÛÞ,Ä=›ËXNȆ,O.†vø©â×%Ã7ø¡œÍÚáР'RÑ»Îàgr65ø‰ÔÔ%»9T£Ÿý„vyòÃïαçq(P¬[&bË,}ÎÂë%·í—$_Ž+¿¿ŠåúûÜ-ƒ½ å£ûQQòŠí÷ëi²è‘Zµ´¦t§ÁÙÆö4UÜž^6¦ë#X¶Ë±4Ç®›fñõ–ý&Ák:ìÜSJËnZO<ô|´üÍòî8Ûë<äØf“{žèt‰=yÒãKpA^ û‘”9.ålÊM +Oz®â–Ä–qñ[9-'AR‹‚RÓÅ7ôpTÑi&Qg?­'íqr·}Ìq=˜ÓplÉlŒˆßAedEÇCjêQUœGl‹Û•ù5Ùþg¹—e>‚úøÍœæ`LH²sq­ÞÕôªû)‚V3Å¿InÚ#†9ÇÅÍÝm£U%¹,HMïTÁ¢TÓ'Á<är²‹¿ìGI”Þ¯=/É»ªà7Ų2Çœ‚~z¶îºÄ®>èí^çv²XÓF)Ú—$¼q³çá ˜‡á§Mjפ†sð#©) ~?&‰v6­¦‰ÒôEÇ(7­rW¿}ò#±é)v{“.J¼ +Ôg„’ò–ÍÝVbW—ÛÆ÷÷Åbص¦,5õŒ¢_гLµ­(UßMûMS”¢&wícÄE"¿,e¹+NŠ.üþ¬êºe1—ía§rQXÌžÔ“E¹ób¯#ñu«ÒKvóãAÏ3†'öl¡±äx/OÛ¾t<J¬‡ËI‰ëeˆ“àg=U²Þç4MîYÆÏŒ´XïêIË nº$ÃwIÖ"x‹à +nUv;V¿¡´ÌG0¿Ô»¶ê¸þºxËpÐ¥fO†±žqòúįϞ'}Ï“¥Üqu×ÉÜošìu#v=þ:Ϻê§iRÇ/û=BK{ŽlØeEZ±:Õ ‡‡êeW~~´¢¹Ê'{Ýž&—]ÉîÉ=Çä6åª$wÕM²7IûëxÑ;©åÊÓ8‘Pð{CVëØŸWZÑ)Ï+¯QojOÝ=èHZÍOZ®[Çþ¸ýëB¢ØBO»þèyŸå]’#uÝÅO=™Ëv±K¹¨§ ïÐ[; k^,‘~ßM„¢¥uÑq*ÑŒ¨‡ÑpHMó±ÌESÇÑYŽÐÑöºWËòäIÒÕ6WË^1<"Ï%ô„Áo,~s´Ã0õº'9.wœbÊ]Ynæ£ÃpzAnXÍ´L‰ä²ëìð4Ño™RHÅ£ó¤Èjý¤õ½C±ípàÇÃ{Æh˜ä®{óŒ»N¤®c5Ý#îuúç…LÒäžMö|Äçí’4³ ÅžKkªbSüãp¯Ã?·4/”fûs|Íñ n§ZU„Ž'¶$Ñë>oÙu^’l§Ý£'ZK’œvù{’ù=©§GE[²\ZÕ=ôF¦(#âwAáAFe&*éñìþí +b×–üŽÈ.J5C(³g•»®\õ?ÉüR-+2Ç'÷ BËœ G/»§g‚:Y¦š†fl–Wô;%¯=' {‚ÿº†`™í8µÃ‰·¬•€ÑÂcE„RÍ.=~?«’^×» Ô|É/+v=f¹“b.†ôD½­‹'oñï'¹kNŠ°Ç¹[Ç3†'´tÁ®IE=dh^.‚÷×õ¢—bÏÔ›šð´Œ¨_ÉéPJÒa§jœžoË=ÎÞ2XÜÊB*¡P‰ïû¦érÚüq})šÜ²ÜzFP˖ðxŒ˜JEËþyªÞwäá¡¥dGì$2³”ü¬é϶wXš›Í›e¹×‘T4T†Ÿ2´Á¯Ü„Ì^GRÓ1¾9΂®v…Ép‰M̱iMW-3;üD¨Y2G<äz“ÄÇqL„ß_ü‹¡êu©^*ÁŒ~ýî#¨‹a(EC«ë¡HanBîÏK±+K~K­ú§gN޳çñâ8{^ÚáÈÛvZÙTËÂdx¤–a÷œ²e>Mçï[µ¬Õ²} kÐ#å*=MlXÄ“ÿ0zÙSËzÌrEôRvÙ•¬Òk†ur\;î.EOj’ÚõÔ®£Rd±( ShÅïÔÄC·;HV7HV+P —ýÊ D/^7Íñ¿ª÷8†ÐRd~a¤F4V¥ÖÛ~Ê?«ºäXt–£Ô4¹ìË–U<û +vcnƒ;NC›,[³Ì‚ÝØüÂfÕª*9®zcZSM[5í=š„ËÈË'OÁ) +FK|\ô¶3)újú¢gçĦ{lÑoŠÏ»êú£¦¡Ô$©¦©MC+Z‡Ÿ v.§Åw–¦–=™eYÚ_÷jxË>g©‚Ûþ^Ùm“ù%©¥çû2ÔCÐÍ:nƱ½F*äÊȎWL(ä9ÏvË^.»ÁN„–¨Ô,ä§{ÀX.N¡ýö%ùIÓ‘»æÅ0AšÖ²%êAÃÂòØž7¦Hsߪk·¡Z§Ý4[ Eî™äÇ|< ôT9›Vì²øú-ûð«»-=‘Šš\ösž8ºYÇ7Ë5ó0DCR¸ZævÜëuô(Öá·n™šqòÑ£A…Xð;oÚÚéŒ!!¼Yú§ÉfÚÉ鸧›dj†õ ítЬo[Üu¬–}Îq† Eã…’Á2¹è9Ãxmr¹í=Š1§Hñå¦4( WlÏýól9ŽôÆ¡uE­' fôGõ²}9î%Év\Ùáè"hRÇ+@|ŒŸTTÃìZ±‹š_zônòSÍ­3-;NFXsÌŸeM’­»~yZsì1G=ôH(ÙÂô‘)‰ø³dµÎè}Iöžõ¶"”ôGPd~g>~Í(ZÕ2ã¸ÝBK—ýv©å“ø%™&5ÿÓ¼APîºì>è(ZM˜ý΀òªPjv=,úaUÿ4sRìIq„š>NRL°h2}N³½} ÿ“©èŸž¸êå8—c‚xIzÎ3Ū~9ÒG{œ>†})öd¸ %Yï +“[“úm¹+þ}®ÖyµÎíq'µ<Ñã™ÿò÷+9¶Aæ2˜Ëjo3©©)=t¹ŽGÙÓ<ä÷Š~—TÞ4Išä·K~U³ ZOXã¸ZæŸeé}÷ò45­µç.=7ÁnÉ$åÎfí„Ü"(jU˜-³æ½’y.¡é.†7Ö^wƒ Ìu'‡3sÜše¬–ýè™j×ìšVõOQÍMÈÉ ™AoÕ²wËâ­ã‹_ÊmS1|‹â‡"dþ@Oª¾ž‡fXÛöP ©¨ËŽQt;Å9üP>~j–ùsô¨åçeQu|Âß/<¾Bôb7?É”=—âÖs’%6-±)_’+×Á˜j›r‹aHMCh)"· sœ?þ¼Ü$=§én›ÙáxNÒÆªdcE±cßéÐëÕÓ_Q{yS¡¤êU_°D1\§‘|FÉïÚqõ®àV„†[2[zÓ‹â&Ù§ª^ž&§Ãn\(Me”@/¾Þ‚ÙÒŠêæ¸Ÿ¦Ÿª§¦M‚®‘áÒiò"˜“b-‚õÎbx—%>Ž´l±¹HNëù§ænޤ—ýQ´'GRj²^vŪ*5¦z2Ø…Ö½R«Ö¤P0<ïÏÓ7Kœ Al:ZU¿$ÔÌÃ'Åÿ$y2üÓÒ;}C+ZbÓŸqo£¹¬ö8‹®d×5ǯšÞG±/ÅìŠÐS”¢}IÞ¢D  +(¢‡ô£GŠËe‡=$Xw\‰žïH1ÑEðs–$¹m&’‰Ž›^×C3d³—%>Ž% +6Ç¥ìx —©Ç ˈ+5¥_´žkÖ •gíâfó…lÞ®»ÃÐ/K”ššÔõÜuÿyºü¼iEõÄEP/E¹Ûà-[3Úé€)RäbJOjòäHƒß»m­¦±fÙ¿-ÇÉ!RÕŠ’ÒSõ®#øÜ—㊞o˜ æx%äÁÂåÌÉŒ ´‚YZ¦\6GK’ §@ºŠÞ"ˆÒë4¥P +~aïCµ-Ý8×óJ0Lƒâ‚¢ö²í†Xôô®,FŸ–·ž‡áJ†cñ«jU‹¢Ø”ţnj<+¶ÇÏGK‘¼.áoN¹j(-G®j“¡ÈmoRŒ=ÎGËÿ–ñ°Zö (ì}ï‚XøWYxÛêð+¹ë‹•)VËs®ß÷e™‚ Ö-½p-Š;9¦ôû‹èoÍo’·õ]XOÙEQq‹rSþÞq‹í5IvoÓ¬ÇqGÑ>MõqÜÁïS’.ú}ý!6ÕÉ/ÅÌŽZÖƒš1ZF¹,NŠ7èÉ[†{ +-§Ð±jEó+¹* +vGìzŠÝÓÛö"ȇÉ·\×c’?j‡¡_’.Ø…éuÔŠþ¤ø—#>‚ pâ0,#<þAÇÔêNÛÃVÓ3b0xÓP°ËBU¢)J«s\›e2Ç­œí´¢)RÔŒ@øÇ1ffB¼ŒÈOÁë-~ä&ÿÂ5ÓÌN'Ô¶0&å Eaíú‚ßwÛrq4¹nšuÜnµ) +³Ø´”–ûø¥Yvv²Ošæ#©fÌez9zLŪ/{ÆGî:VnƒÖÕÍ:ñ–Ý`w‡ÞN†±Zvq"…VTd·}P‘B£ä…ò÷ò×ÁÝöaÓ»Us¼òû7)zÐÒ†H‹FŒRÑ5ËXNÃGñô¶(»^ƒ¡‡5Ƚnù£šžR‘_ÖËæ!hƒßGEqÜCÕª$4Ìòç4#O¬Žuäφץ·íË1õ¶§—ÑmÑšŠÜ¶A\Cëé)ÅÐ9ŽT󻿪šà†ç¶m7î&É_MUsüŸf~š|Ûê­»«kÈût­ËòW×=‡Vt´š2#EK•2}ZÄ®ÏôóØ®ËEÑ/G×ü¾€ú?5ySÄE¯/ÅÏšzT4¿¢5íOÁûëhN ‘£ô~™ã‹goaÁèyä®=zî£HJOÜ^¹í-YtljÙ[ é¯ËÅÅž*U±è fûRT¹­œeíf“ƒa©mY5½Šc¿$ãmQ ÐKREËq·8 Å“ûŠÌó?–uçÕoÛ +SHÅ×y2´?¯OUOššÞ„¢½8²ÎÌq,»"Å–âjYÌuqÇÅ^§“¦^¦â†Ã²é'1¢ž»ÛÛn°‹=/'K¯‘Ð +«ÎŒGwÉi”jî`WƒŸ»ið¦|z]ñ0,ÙsW=ƒÒ2å¦,X-­¦–5\VžØ!U¾ßäXrWP–bùä0n¹¬Ûe4èõå(ƒ_Ëi*—eé󕼆áo¦;ílB­:òû1ø­Y‡æ¶OIö ÇÞ^’ò÷PÔ´¦ù¦Az–Ü´¥Ç]<»-eÐ+ù|B®ìIÓÒšžì9I-Ãôø (=ôF-+¢ë#v5µ-©eíÏ2´®·(¾·›¥È®£üžÓ<ÿ©ª—ež*96½¯ ‚í¦•ÜÔåã“ðøŠŽ=¨ijU“Ýfù÷’ËŠXõeÏ'þ®‚ß’Ûîèé‚_M’¾yÆÇj{ôLpkzY›¢ÞõWÏü4í³œÇ¤žÔÌCpÍ8&'dö8ÑššZÕª*~ÞE dâáwUm¿ÏýNF^þ^Õª¿9¶ÜÆzÜ*ÇCײַ¥KèçÁE%äaAúSv¼7K¸ãNðû§ç=‚2ÈÖrÄ~UúÛ$Ÿa:ŽŸ)^š$×…¿ÍBÒN +}ôFè³$5Ü“bÈa3,JÏüëðn#åªekÐ+Å0ªqã†Cr×’»þãÌm÷çõ¤è9KUì¢\vÃ;nékÐîŠÙQJšZt/AÝ.áw×]«„ü”^oÁí=¥ÈŸ%o’ 6-É/^Š1!>”\HV<ºk†C(:Í’|^ÑqI†ÿvý¼¬ŠŽ[s\bÙ·ãä¯ÃÑ’dË(Z†åvÊÇ/ÙsVMï'j“䆸yòªúaÛO’ã¿eu³”?ÏAÖÛ¦èw‰ßÇž'‚ç&÷…5­DC½e)9=CúUúz¥Ïen+CPŒ^Ël÷­Çj*5c³û’ÝÓªÆÈv^¦#–ÝÅqî:™ãr1”=Ïǰ=_¿¯C,A§iBüøÑ^'{h¦/°´¸Hâ“5·N7QÝDuó¼Åpþ@»4OD¤&*0ç¡Î=†0$•é¯M+êv›=‚*¸ýœ¥Üq<)¶â·5ßôÔMŵóDpìIÓþ,q´»E·]p»aüu,×¥Y&BO”›Éï\ c.ÓC¦—ex4uݳ äÂ¥RÍq+nauZÑ-M.+ÞÙÙÌ 3êOò9F»0™±i]–¢×á÷sËä°óÍñÔ¦*zíŠÙT‹ÚßöŸäˆ]ïÏ;±h¬–Gæøä¶wRÄK±í:¶ë|íÍræ´<üDjJJQÖË¢Ü3l†go#µè Vù2´Ã.¤’«x}Ñ-Êåó³êÙÄÃÔTö¶;Ü`7Ì2úQðË¢ã”ÏŸek~a>¼HNûjÉ›¢Ç,]o»’Ï(ø¬Òç®Z¹iËŽO/ BOüz“Åm ¨oáõ§]_y C™ð<žõ(ê* +¢eÓ]¯rœ…סvíÓS/ɽ$Y~]Õªo–(p0C6;RRPt=n6³Æø¼K.¯Øÿ¶WëŒ8  Í:-b­—j¿¦ã7HR9R“ºÝÁ I¡fŸe_R¨Ñ “)R¸ZöŸ¦‰~‹Ü¶HMy³\·­OWüTW®c9ÓzÆêX…IÄ2 +¹”L"8¦Ï3T×£™ÆÍÔÉß,]@}IÔòù”ÞøìtLtLòü,«ƒÈKlêŸfo’+æK’7M“Ûº`˜õÂúö¨i›%,†#YžÇqå8Ý,Q/;£jÙí’júå¸fY»m.Û>ÅošulðKµ*Œ’ÇÉwéï–¯Ÿ(Œê£:­öœý:Öì +AÓ¢„‹#OÌ–ñ’´Éq„ß?. {Ü»uZð:Ä‹˜$¯>’߬ÇZVÃ'—½ÃÏ7Ç“«šZ5Ãÿ‰‚L²‡”è?K¾qÑ;©åÉ=¯b¸&Ç–ãTîŠÃu¢ÁJ©ÚV„–»øí$È›b èq¹öÓlÅ-Ö )å¢-ÿݢ߿UE2,‡áëq¬Ù=€B¨xå¶'5K®ê«èߦ*[æ×TAÇ{å`©XôøË×|vœæU$·üšöf óë7`§RbBĤ¼`H1\Š_—=Vµä®+#†ÉëIË…H+æ4ÅoÈew“ÌG0”šï¶á%‰“cHUI¨j¦ùR¤@·-$B±p›i1×áâø£gÉ^³P}^~üÔºùçµ\v”šõ·áá7RÓTìÆX•Z¨H(?¿›%›e½I’Xõ7I”Ã1CBäŽÛG‘ÆtbÝ:šmô÷Å€úJ‚LÑÄ¢o¶áǯ¤Çq¼¬˜jœW]U_rL‚ϧõÜÅÕ6¾Z¶”@"|îrœo’%ºÍòáY<;ëmO­Ú›c ”’\Ô„X6æ¶‘Zæå¤‡J‰‹ŽñQ„;Î&G­•+×Y-S9¹ãR0[JOûón1d¹…ß.%ÓȾ{NÒ?Ã.׸T,H^7N\4©hEC¯S +^tŽ 3±§‰~U°N=Ð̰Ÿ‡^‰EWð™Ë´‚ôØ1 +fs2Lɯ^’Ÿ5uézŒßSs,’ß&·ÅAðö:Øã& r6(·‰Ú¥Ž]Œ<4!¿ä²÷(¢Ü5e¿Gnƒ^ ~þY–ä´Œˆ7ùùÏë©Ùšß›zÌÑä¢&¼¼cåŦ2ͳM’ž5Ùm½ÞWý8xeL!)$%ym‚Ù¾]ï³l^°\%8osÙ?j#ôê"ò[ûÒñº,íðëávC5bÙi”&¹c-¯ìzô²4è¹üº2( +°Ñ¢ -XœF%8]‚ÝX ×m+7(r‘ëIr$¿}³´Á¯Í4wã@çÉ‹#è)¶|<* ?»#w-±iO†xøédè›åÜq ÓtÝ·^– U¹¬kž…9Ž/I] ÓçÁüöeZÑþ~1‘|×õ¼±§}Um[7-'C-K-Š¢Ï1X&”ìþ+ÊâÅ2½oÜqóוØTÄŽKrzFŒÅB¥ÒI”ž*;ŽZÓìîbxƒßÉ][4Lƒë{µó<){ra‘ü¥g zuøÙ¤“:åP3ó|p²”1}z YIâ ZÌØp¡FfxÁÊ%µâÑsEÇ8JZ>R^C´xé±;Ùé›_»­‚u*Õõn–(;mãUºS‰Ø3K~÷r½lL+%ŠaQ«¦ü; h/±«?Ž-¶Kí¸ «lœEŸOî™Eé_Ñm•ùø~zêgI‚ßÏÊö£HÒ‡h!ÓÊ™h%»¹iúí*Âã'|â™YB¸ +”¦rát §ÿ·¥Sµ^YÞmSòKbÇ*~ÝÚc»-’Ýßmó••Ï5õº.ó kÂÆ +-Õß®±ÞcˆbUäöòså<¨ˆà­ü>k†ç°;½kŠN»âõU¿®˜e¹j‰Um’T9ÎìtBlª‡"ýbHȪió‚Pµ¤®s×µY††¤¥)” Õ²¸ãn0ÜÅÞ6Û,û <üVD Ï“×z(=U0ËzYÒz†PÖ´ü¾ð{Õ4WËzRôœ&êu_´|Âëú8Î!èÂõÒl³]'é]YB?KÇI@ÓLŸ™rß?MñQÄÅ;•«‚Ô³eË5NbV}¿Žô²1X¦(‹W½«Ç,gÏsÕt è×ÃÏ5Ç$·ÍzÝ–Ÿ'©ç(5w³tA°Uߤ•u7í½‹žð¸ éCƒÍ”B¤× ¹m ”’ê•Û¬ÙMÉg/Áç#+ß¹ìŠV*Ç + ìŽcu›ÂË®º%½( \̘îûê+L¬RÊ~Ô³7GJ²Œ<,b+ »€ú"+<ÆÅoæ´Pj¢èEÇ":ÞÂñX?éóñ +endstream endobj 16 0 obj <>stream +k°N&5LbË"7MjU½éy{,kÏûA%æ€6ð#Ç‘–‹†óÓ4Õ³ ·E«Ë]-®ü¡ã$öÊiÕ-§rÛ”ç£;¿WÕí¶ÒZq ‚ ’U 铲é;MSpTCñw×>»Œ<'<^‚×Ü‚T”'ɵÃÁÇïÄs¿H‰hF {nÉî’%WeÉ/OŠÿ9ŠÐoŒ‡/±éEgQ„¿Oô¶n¶¡ 庞mýµm3íS–0›†Õ³Š9ø}X•ý(Ä)ZŽ»Áï¿-hº^ÛÐLX6'GÙãRÎfæ6üN¯;Šá–Û>izzáœm1¬C°¿Ý$KþžEì%'ÚÉPþ.(”ØK jÙ³Ó9ɳªeæf3w›ëmQòFäÁ*ì÷]Š,© —•»,éóœbÉ]YôüŸg_–½Yšæ—…kEb[t³y;·,}þšá— Ÿä¸(Ean+Áé¤ÏLÈs‚WVܦ\µþ6ÓË&ñc‡ÉˆÔ«¨éeKtE·aô[’˦6]ùð8NDFþÞAkÎX…|¤¼nœ°vœ´\>½-†¹9ògiƒ_5cH¡݆ùuVb5L\)ÙUÁí +vánëÑrdÇq”À€´œÌˆ~’›îÑÔ>Ï’,‡ÜÖGËÒz¾f÷D¯mÄR7Z$•—?Ï?K*$&¿‡•×0Nés‘›f1¡Üþ´ÿcæ$FIKE·1©1hxh!㦂1‰Ls\‹¬~}¨Än˜¼`Dþ +ˆÙôé}Mô¼Úó}EÛÐÃÑ1¥¿a”ÞŠßѺޡøQÑ’ìê&‰rU™eÁáÞ>á푼ö˜¦o– Ô4¹lhM='‰šßV^§êYî<ßDMðÛºíøù²dñð.?t¢+‡óný}/·±ˆµZJ¤—ëÔL#©ëk–aDÿk~?çx²eÞ}IH¤/, –EQ?Q-Ljþ‘Z>µ+.Š9zºú~WYvÛìL½-‹GoÑàG -&:9¶ˆ@,"Ð'5w󜣨MKïZjÕ›žšÖzÝÉïIɱÜqxþg©—ãn’3+• “QðÚ’Ù½VÁ«>†¶Ê 7âáYÀ\Ue³ÎŠTé¬U2©cÔzæá÷jYéuGüþí¶ùãNmêâç*B›ò$¨£%m’'&ÑÌëE‡`ýyÕœ!yf@:K“àsüq+ü.ñ€|•½ÅP´–'÷¥¥ýyï×…ÎØéÄv½F•ò¤§=zŸ”,á둽~ÕñémÙ-#½í ¯§èxk~{s$±iéeG~¦Å +Á±©U}p©ñB±xô ‡Ò²7Ç Q/«ÃåäÔÏX1!‚ –¿GµiÈmÐ ­&‹U¨EôçåØòÁ{P’t$ã…+—=¬é¯¦‡=k˜ÀV¼Z¦Z^ٱʇ¹éÎå…ƒ„Ëë5v?Ïc†¡µ|ÝqM ´bbq½”Bô8²æ¸%»#TD±gKnax,jURüŠf8OÏÒüªñ0F½ŽŠÅ×cy.‚ç÷H¢¬Ü„œôºL)JQxÛt’4éu%®ˆ5¿3Ç©!›“ŸØ·öº6ëà ç"¦Òñb¢â•:LwýÃ1 ‰‰;ñ,±ªHEMlzÅE%vŠgÿÁé. “˜IŽûss‚âç*¹±hÉn‹äv©UC'¹’YÐZƤF+`.zzБ´ž°ùEÙí’[vÉ0.‚+ Ý…Ï¡=ùñ—Uh…Ô³ˆx˜’§F‰‹•Û%Ù}ñ:Á˜D¨øåÍ‘ô¦"¼,jOQ›ªæØí¶˜>óXÉ¡…¤Ik…¿GpùÄ£ûêYŠaœ$q2Tñä8b©(0??Ñg,SÉŽ«Œ~“»žÚ´%»®ùýÛØËUãàîãÉqFjt²ßsר–D4zñºÈ~‹Xô¿$íï¥ëHes1ìKÒĪ?Ô´ä0“’òÙ?,z—äï¾,JNtÄÌøiê2á0‰½ˆ>±ùeñq’œN¹­È]i¨”øžÚó>ec5òaFe,#âa»Í£æŒ*5£„Ä»þIŠV3¦ôã@‰Áx¥HøüwÙ+$Gà˜Á2BÙ#¹Ÿå~’9ÆtºÆô¡%Èi¬N8D\,T¨Õÿ¨ZU?=Só{C¥d?M{üfF<̯³Ü•Á—Û^oÛÑ‘eô£|>4·È0Æc3cF‡—”˜Ñ/jÕ·ãn4ÙñTüê'³ý˜Iá!ÃÓ2µø|wß~]S<¼ÉMuñ‹·¼i#¿¢d„ô§êxA_=]¹í§h–+$ JDÒ멆áöÈeÿ´"†L +eŠaÝ Yóó/¾þŸ¤Ê©Ô3±X‹*Uòáu´l¿N·(þõ¶¶Ó~õdù?`Tˆˆ±¦Âɯí´Z–è7 +†Qr<ã#%&£ÄõšãZö'‰šÙ-&*]ŸI²&AbN‚¨i±‹Q…Nz=—¡H>Ÿè¶o’)¹mÕðK¨ŸK¥xvØŽƒæyUÑŠa{üTFÊÅDŠá6,¯E­:bQ-“ +”è«"}éqʟϨD4N\1F\|вê8&äAáu.TËŽ_w|zWÝ WDûË铟", ´|¸bBž¨†EZÝ3^Š+¼¹ê'%Q.ŠÂ×1;6¹*Jv÷r4ÅíK§Ix»¤¦+H¼öÅÐö¶~ ïPôÍsEê4³JÅlº¬e"©©þyò–ÅZ§îº‘šº”F:ÛÊàÓu—Qh5ªñ:µfÁ·Ë\;­C '±P»ªd†*tƒ%‚ñí•ìÖ"øv\©]gP£Ý,{“,Ñë)Ð X©Æ‹$ÂO°«2 +©X¥Pñ›zYSˆ.:TNVõ›òÑIú|„ÏmÄZ0{ÖMQ'¿PZÆrúuË)¿¿æ¥å4úÁŒ"nÄ€!`õlrWÓ«’Úô·*!_%äéQs†È :hvX‰±àpËý®àp_‚+`¬pÀ?ܸ³g#jN$°Ã #X°Ôˆú˜ì†Rò7C À‰@`+b#,#ÑËÈ£Âô׈™`¬D'WE³ +˜êˆ9NB$[ü\tKÊ” f¬D@HV>N\¦wÕa…L*V÷-âç*Z''ÍÉó„ ðÈJÏwõD1}bL¡šHÉsòã}kúí ÃåÕ¿ Gòé[P&n·îx%Ä¿¤D..lŠý¿§eYøL³:Å L#;Ãe˜ŸÿlZ‚Û-&?‹Šô´0#¡" 4>Ô°Ñ¢EËIŽ]:nÄÄË8ù™âÅsû8é8‘xð^=Q­“òß,R£V=ƒÚ4¦Û5¬R éóºkMëèɺã”O/Sôø ^ÿ´´GÐGÍüò&)RQ’«Ò¡×›d é¯ùô&µ\B˾ÂZ”š±šÞKRítþ²„Í1J^«XÖ'Ç~UkÓ\Ͳ•Žãݶ‚Ë2^¥"'#%%h¸(@>`NüôtݶÝm?ù¡äqˇg\ÄT2JZ,ܶɒE¥RâGœFág”~®IýEÈù³B²ç{9£ÅT\-LþŒˆg¡*Xtåj>¸˜L.Ùé3X$-“I»ì׃’žõ\ÂÇŽ"|1ñú“–1b’ Qƒ 8žÐ‡Œê¤²ç0+:^bZ8ÎBú€!“Ä9^TX°N7L^7e)ùG¸€y±JµêWåsÃx‰f¼J+ žÄ×iZ)X~Ó¨D3`'#)VHh¸P$ÜÓ¢µúx)™±‚’Â딑Ÿ#%–DFÄX£¥‚éy¿¦,¬S¦yn!ý/^¨˜‘ÇUÃ¥VE¹ì–/!´¢z9¾”F°ÃCŽü²àVåª/Ù}Õ²ç,ÅMH†&úN‚Û"4LBOW묜†n™K~iN"ÐiÆYg†Šô‚Erù#» 3âgJž—‘§?ËTüÖÝVbÇFÈœì BÅŠ-\x°ÀF°ëIS22øÁ‡‘zþh‰ñhâBÄ¥¤eô ±h_†`Â!nÜÅqʧçqâ¢Ë9̨À?ä°BÆ»):.âF ’h%»$ýÓéPßòѸ”À yÙd¸êiÄT/ÿNÊa¬D1&O +h!ý3¤ŸäªÿŠ®X`¸P5¬R‹Äã%¶RúK¶ óóVJWÑ~EeL¡šÒ¯"¤Ãð3 /³özd¿I.Ûré]Oü»Åj£e:ÁåWíº·Œ~)¯×^»v[ÄÏcR£&¯"¬.ŠèGÝ0-X|”¼Vú»ä–Sq;bWÒšº8L­*ZS¾iгE°EJóÙE(éCQz~NÓC޾9îè‰jZ‚b‡ª&´›äq.v3×y;Ní8»$W5$î}5"Ï *F¿"µ$µ(›ul¯[ù{ªÒN†/ ½‡$b°èó:Ùi~üf.£i©dP4±ƒ0ZN€Ž1Z$‘\^Å,Ýi¯ÖéÍñ9ZJ$Ñ9ºðu ԇğØôSŽ%Õ´AnôqÁZí"øŠY~ném/Š¿{ÐÃÑë‘y9ñø~IzJ°…¯cDýÊg7ÙkNûiYÂß;L`-ÿî‚UúA…ʘ‹ç¦õ,P ×në,ÊbUbQúÌü;Ìž¯ÜÖ¿˜ëÄxZ¥Û6-­êŒU(ˆ*ZЍy)½k¿ž'vÝs vI®êÒ™Àá"T°ƒ&fÚÅðÅ+%D‹˜–ÑrOÃdµƒ‹ÈV˜ª…Ó1Ø1c… ‘•§Þæ“¿h‘l¬ÀŠÐ±Â 4LB½‰v]JT¨„¯aøüÂgÞnݰË)¤Úw‘Þ¶!Rªñ*µô8«UA¥è)¿_ÐФ€N±æ1&OР’ƒ ñ(½ RMÞYB×]«ØóÕš$UDÉíhEM®Ûé»G<¹ “—K)$’Ó*þ=’Ó*[½èЍ_Ùq^Mþ½…+%£¥*±e©ç'5´üÑR%Ç+š¦Á0î>¯xv“Ü"Û ùR¤èRlÒ,ëÇÐþ<—ëàï‹ÍoÍI$’ÛyI¾Üs܆(}þŸ‘¨4óí)3""cH …C‚É„¨¤–>€žzDÊtR …1 ©@0MBðú‰‚«ùD?íj6ƒ;o–ù)®¶–Ÿ´Œ©ZTÞÊ@>öàž†ñí>iê€M-o?Ñ!}ªaþdb±þ†ý)ä™ XžÐš¼^nœ¤¦œ"Å·qTzµ>Þ¯Žÿ+eÔËX|q¶‰žÞ@¼S¼$ÚÅ‘LJK¾Vž#=Y§ŸaßÔ‰ÇxOë”s°ïëåéÉzýöL­xŒ÷ZC9ƒ=_#‘ž¬ÕÏaoêˆg¼¯µÊ1Øóõòée]ý û¦N<Æ{Z¯œƒ½¯/ÏHOÖèç°ojÄs¼×ÚÊìûZyŽôe­~{S[<ã}­WŽÁ¾¯“çH/kôcØ3õâ1Þ×Zåì}¡]° Í e1]ÁホyךÛéôö§‰C§èœ9 Y'J¿#;;;åÎù‡p¤Hç£è>uZxüªäsâÛ•Ÿk%kŸ!MÁÿ]C`‰îÈX徜xÏÈÈ{o¸:B~"@û X8âìDøõ26„Ï“{%é5ïQÅ÷@j3 ú£;½ +ÇB"|Œ@Ò u1² + s|-hÄ+úêSR}J èÿ)ñ§é ž84uCAÄ,c[º_ m áL&2G=úþI”kŠ•ÛMk*¾}µ¢«$ ã„.l_ X€xw)‘{5ñ&“Á Kp­+©’ºÉj¼:ä°Êq—Û( ›Lûš™*DM•Á_É«SO€ÃÕ€Èk9éuÛ×I*«d»´ˆ¬^ò)€˜-6ÒqÔÌ5ùßOÿ§`ÆeuÌe Ftˆ*B›¶àB[A Î§"¶F¼tyYùá¹i/ŠhÜ ²î÷çÎU£g ÷Êa`•béà† W»ô‚>úØÓe*[²øEPŸn5ý´{X÷kR»ŒU]sªÐoL'ÔurYXt‹íIäݤ¿šè]Á¸ÂEÕ'ín1ØY@)¦3ñ´5C?£22Âpƒ9CëÿgéУÆû`Æ CJßinM´€ò4½Ô[jšFZ3Aµ˜Û5´;¶¼ì¡i¯Cð'€º¾ê`I߃]ëXC#±]’mÒ0€ )/½y*DàÓ`Z•Ñ@Öò¦$“QJd7v›]Ò…î`RÉðgVÞ=h§_ͽq;–ÝÍQ‡0¤®¨vº—æ÷SÌÂ\†ân# <ܸ_à¦ø'ÛÊ…E·©HE«Ktؼ2w&UÝ]S»3ôM’ %6è¦ÖÖAäv°@¼ÑßµB¯lAÚ€‡¾ª@°÷Gw1W:(4d0èð9ñ5uöŒtõ áë¢çŽÖAæ!ã­&q%ÉøÆÂ^·j²rWzÑpnsK÷pcW˜Óµaëk(÷ç a)/4ó²—FÏ?<íÌÅ(¨ð:ö Ë×ç|êfm™Vç5ÀÉóûèrç +J„ÏND8>ô€'Cª3ãò‰ACÿMë'7€¾µÖNµ™ÂAȹ­äú†½ˆ>É´ •v;l¢Þ×IzL.@ûÐÌÛ³ëG”ùn4¦Î¯·f¶™dJÔÞ{a££7‡nÉj Íäk_Ɉ»`QYNHÜ`£!<‡Y ·˜rMÜ’×WüÄ*ãí0f ±sÕAÏ=ð~½Ž’ôË®»*{ Û4M&ªiiƒèóôÚ¯Ûѧ +„qu0íÊZqß<–U[–¬â‰˜¸ÎÕdpû‚‰?ô¢e¾²^Š–@Q€Ý¢ð‰› ï®{Y˜9yyvÔµ“ÑXÈ·5¡TÀ§9iHÎçŠiTèTM]1¦!Ô±LµgDê·\›iŒ@æŠVa:ߊÅ,"É‘Û1i™Ì)‡ÝgÐ^BýL”m¨ ‘«ð’')mQp„rCÑÎÀÆxí +ðÞ +ô¾£ˆë§Z=ðHÁd½D—!üÖë"ˤ³Ý¹CŒëøÃ:ÄÊ,› Ì—Æc|%|"xËC˦d3™6!#©‰€÷Îêw⸗~…Jê•Æ›©ù!:s:Ü}JÏÕ> ²pJ,)a ¦_ˆE3$_GEèÀ'‡îÓ{4Èá½Ò®˜ôе¹™]ÒÊUä§¹ò$·–ñ ý³°%F¬õ͘É㬢¼¢„Šëâ=Ű:)goöþ—Ù -ä#*2»Þq*z•óGŽEÁÁÿ[Æ+²Ê¡`Möޱ·j,Ñ×lô5Å|H‰–j‘ùãû¯gÚ~Ó'iû°åÌ# ˜âHÎ7bFÔ¨tXœM­Ž® –ÒVJ䤚Ä{#h£¹RmÙ­sXÿÄ…$½ +m’Ÿ²eÏiFÜkœs*l½¿^È?°ÀÆÊ©(¡y‘É+)ÄOŒÅ†Ø˜ÀðÄ̹¦ö}×Ðaw 3ñfÁYðdÏØl©¼VœP(=œ§% +»êh¼W2Ìû §vÿÕ¯XÞY³ÄèMÈÑVÅ¿„€&f§Šj? \þûbF¾Þø'A¥ŒOoÆÌ>R7RSi@vœÏ’šXíu yÆ´Ô 8M)b2½«VýsØ`%&ï9"ž¤ÚyœˆSf‰u]MzquÛv  r¯X\y.37hºBUàbׇ£,.söX\¤IÕš”0„žõ |% +=Ep—÷À T¹û>%!K”¾røh["Is@+TgT8`ä:Rú€(ëº +¥uÊG_×Jýp¨Yå´Â& Î0Œ “V)PÈ^óq’ãL‡Êd/¹€ß×98—~l ƒ×^¥õr-!&¨×ŠtQêe’fv¿±EY¤G?›=x´Ì—MM¼0éÊ +£h"Q‹dñ™Z9ç ›„Ðâ+\"̓Veé??\¢îKöÂ¥)ØW–©‰ÚêÉì"ÏÅ×n/ÕŸŒ}YŠ I³ò÷ûí°6ñPb›µÅRØY§D­êyo–jœ5ô ®9µôÊ›uOkBc³ñ‚¨N|5Î dÕн&-ýLpÛÇ&‚éRŸ  _³ëó6GtÆ×M¸sœ&Oë +°¸€*³ëº‰Ÿ«oÓåÄGï[†8¸O§›´¾2•á¥ú‹»WNNñl×¹[x0 pY¹°Ïñu} lB‚q8¯&!Œè¥+¥±Y’眴³k(úƒ>ƒóżGã0yTcz0Lã‚¢çÁýÍX!(òAÃF>àþLØ4z–U D„%86¼eùÿuñRfF4¼}@ç~Þ #3+#=^Ú[c7Sj°ktPq|˜áR¶-(`¶vªSüCü×MàŸ¶¹ ŒîÞvùΈûÄRÕLÊ+ŸqyGè°rÝè_¦%íH¥.ȵWëïâËm°ÄèZ,©È_5¡ºli´ü`´• J«¼¶xyöÇÏ÷ÉÀ8Bhã#Àäee3¯º›œªSaû΢·äìyn$Ô@7AèO'!/:½ÉJ}2jšª 7öän-ʪ^Ž µª¿æ?S8=«¸^JVJ¹ <¦˜=dâBÄ\N³ô¡ ßüQ±¤”P®NA  ŒeT‡$r{m[î´\Ò•(\ž•£B˜D§Sk>rûÕªëD—¢)-¡6qÌ.²­õ´ž-g³þìÜJkh²KÃìU Ø£ƒ=«ç6 Ð.ÚE»×K!J2|JløÞdþ§¥E\VY¸û¤‹¿}IAŒPAåSûI?¾yÀz¼:aи*%?íó¼²äa« QòëCcõ•匨h±¢KÅy“‘­«L‚•Ýd¦Q[t!%.?U"ëþdh¢~Qéº9Àõ(n²iï˜f<²ND“÷¦J?³dNìY`ZHþ¯f˜Þ’ãu‡È÷ üÖ·(‰¬£ C²Çi¨ºcõ‡šÛôª÷p¥Õ•7ä šÆkG"Gk-+Wyz]™RB烢œM‡‹"Ó‹_dQâ[f’'Ã"Òî»™'B;YUèË¢ÁPªØj–AjºòŸSª€SE°|FA¶]3‘!oµaZŒOÈ9Ä(#O3’32o´e{¥Òeà\è~|X‚øâ±Ýí«–4aÀ¸ünI7¬ëéûxbv@t•} Òðü"±ä±Ô þ*ÏoIê=¸º ™ðBžDƒ¥[³Oþ37‹5L,%œ|Eð¸/4×Y®ñQ%ði‚^ÇÒuí%îÙ=ÜǰKÊ’¬pÑ£š­^×í¬KÃ8a4Þì&‰e¿YðOuÄ Ó^åØLµìã“e‰Óèn¶!t1ÇË>ˆŒCºB(jb„ð‹ü Â̯ˆ^½Î]3¤š3>"œTD´@¡ž8p¢3#2sfÀ+ DzIAÜÚÞŒÐOð ö”Þp‰f‰î×êsˆô_–i®¹_µËmvóbà&¤Y[ÕÞÞeJŸ¶' ?ÿ)7>Ø%!ò3 ®´,U`Wm(â¨M,Oè½@sÚ´»þˆ¡Gò¿¤ddàžÝy³N…Îú²»R&dþXÌp½«%=´lä#—x­¸dJçÓ#µj×÷ƒƒÚ ) o H€([Ø*pN9]ÌÌuM–Cc¸[€ÙóAn +;EA·×ÖyU¯iÁ„å·|þŒR´ó_LÉ(èºpUZäÛ\Œ&^X°B†”„¾OHÝ鼫¸—6Ò,$¨U›âá5‹‚#«bÍ d+%xÉ1:Àò"èx¾“‰˜ë@vM¼°{ºz&ÖìX’D®íån3C&¡­ziçqí©ÝñáçŠâuL—«&¸ Py‹k, ¦ÇTo_dÈy5gβ®G +¶‡ÒN¨:1=ÂÚsu¼ºÂQ½x÷lÉ ØV\×}® Ð10kfì¡Óµ)J'j À ¨ÍN% Ê:[‘·ÂÒfÂ#ËOBW„ZÑI5n»Û4¥Jâ-aÊmjýsYÈQ&þ#1 3a’­Äì7u„É_ÑÆo9ý`jÕgžÌkŠÇ™o$ô½íÌgÚ”¿5Pô#NG6QpVÈI¥œ!RìÅè@ ÝSÝVupT¸\ÒýlK2£Ÿ´VÔæ6ôƒFâIþÝ(æ M=¡“Í’ !âé NÚp]À½T×þÀxOXòXOc]R•šXúM™À˜{í:_Ãe ~×%®€|k«×@ÝàÑèfgr“åÔÜC B+ÈÖl¾×¯cÐØ‡Éãüòøs> Wï“]iÇPyB£ŽÁ0þUJ¦]‚s!VQ®ßŽùÝ+𜬹©— ¹¨žÙTì¯âu^²ö}Aí'g3uRŒ–áçp˜×Eú÷_:Aú ¬4– pû+¬‹Zƒ3Î8±qž¤ŠA>HäÀƒ±žæF• +7¸³}½ÆÑr•Ξ0) ÔDÀ€tTF€p-œç3 ¾nÑË'°Jt"ûR\4TQ›í„F¸G(JU-¤jfÒÏ“¢Éy¡œ …šñµ‘7“ç†AMʈ•‰ô-öGCÔ.+ÏëXÉŠHšÓþpØHDTüàÆ)u:ÿbîýîc âkvqPËÑ,ü{üë™ì-“KÏõžy/zejÞø«¢|7êG±¹»÷PÏmÕ 5éóè‡ÖÆp¶–¬;=UEiÑV/¤ýÃ~VRB¥a_\“)„õ•Ä“¢©b@¦öOqm©:@ßýoffå22J+èš1±BtÍÜ6©­ˆ8ÁÎxþ`{ý—Z~›ìe œÁýq¥ÁŽ‚>8„d5ÝÐ_ ¸Z´Á*Ù.t!÷8QR0ï¨døeˆ^„¨LXäå\x°/"ž%ØFŸÙè7Š‘È ]Z{I +?P¯Å@ó €Æ$læL’Š´nãrçÐxeÌ9Ì¡HsM~¦ÔÓ‰í‰ Yì¸" ߟ™kðµÞÿ œ+ P rÜjÉE½{0ëË +Äñé w{H·JMÏ HHTF»?ºC;x’Õp(=-0Y”¯"¬¯}ÁRÄp4€\.èbI™©ïäy  jnÀ‡¸èÎlã0<"j¬.3ø8–]}82¾Zuª²*Å’ &"ùêýrb âP—Ò}´'q‚Xj( +«˜¼ ã ˆëBCyüEd€­Rb‰:¦@-†ï—à°EœË.®ÜŒ®ͱ•¦å‚[åŒwDÇI¢ôË0ï*N9hœ¹¨¼ÃŒ :ë÷Ö^F—ª$B¸ãPjÈAé”åj~…•*—FÝÑZr\ìï¼?¥W­{¯ñéìùùòÍE%’¤Ï%‰É—ˆä}©ääAuÚ— Ý~ɺ8œ‹»aÜ›º—ÂçIÞ +X£ÈIÂIhð&Ý‘â°ñ%;l;ª<×`‰;\•ëÂA™ÆQê‰r\Òƒ>=hyuIÎó“U£ÈF%: ]g¡Š]†ñ[4ˆG~ÊBá­H Ý£/¡I?ÕL[IØÔù•Õ :rñ,Ò4¹LaxúŸN|œ‘Z-¹6%ÁM%c…g‰´Õw÷(/ÐyÔßé2ÞJZ˜Z‘úh#'x0ÝVœP¤PNpq¨Õ"³³ý°ˆ™lûJ1Ø”9X›ºÝ2À/Å+BBÍž#X¤†ð‰Þ½µLæÁì,§Ï5þ‰E¾É°t&6ûËtò,ãDÏäÓïVyøžàËÔê/ò†ðI)_Ús °“EѶMÙ_×r÷.ºäo‰±‹I\{ÙvࢶÞËl‰iŽÅrç:$Öñ­ ~ êÚ“Âà0"›L{W(.úºæÀÔ'l`¸½¾M F+aƒáñö$Š™HÐ[7Œk“dX~Omø;©(^&=i VOÂÿÔ® K_Á-4„»úÇ­Ùen]Ô ©ÈÇO5&’L~kÔœOßf¯¥ÉíŒã8iZ~[–4…ì5DkàI…?ŽLïÙ€¹=|ÁÚÈC…PL‚gø· OtyH$Îsx¨Þt¢ ìõ&åpØÂ´m3‰ê ªóRÿVc¥±Qè¨ Áôž&H¾óoc’èè´’)Æö« (‚{JK„§ãs'M1îßá¯GWšœ:¶‰!ÿEæÈóÿ6DáKhBõè`c íù;ös✠kÀëD¤˜D3Kw³²cÅdM¹†ÉñW½7ÂûcQðEÎŽåÄìÅ• o™Ð?yåÂÖF^R;ºcÔwü +”ʵ3 ¨kâÙåƒÙÍêDË‚FÈ'OGdÕû rX‚Aœq!‡Ü:Û|G‰#Ö­ÑgWØèY i3 ånŽ×¿u¹ëò’Üa¤Åéò'þ+ˆIIÕ`ñš,‹Òû+÷£mªŒz ûM8y$%9ì6Ë­”&ë*sˆW1¡§ë \YÁåÍGGã ôHTZœ0!¹–T¬÷ÎÑçG¹[ ˜*úãžvâÚÛ«2ñOºÀÉ£\É^˜<üFsœÊ¸½Ì²`B'¼È *rT–EóVåŠWnVaËQ‰`ܰKJNÏÒ®òàøµà#íˆEȦÿžÚjtx–ÍUQZ K/]î ²EŒ +¥Ô!É­o=]&õ€¦~PŽ·KŠÜò† )¤Ÿ%'³{)¦.éŽeS2òPŠ•m2£LŽ==áD$³ú –{º›e Z¡5˜D}«ÂçCÏ™zÒ«G¥´+}ŸTÓÆ5MõùÄ'u/1©ôu#.*X¡V½4÷x|5òwðüDTIÕJÔgÿæ·ÞÃ+àwíúçˆí‰>¬àAO`¦¡nà²C{ËÁ#F; ’öÎÛÍ JŸÛx¯½"8 uQþ‘tß\*Òß/ÔÇ-w¡ôjéöÕHÒ$KÐâêO~ÿÏpè!›½FD2$BîªZ3ü¤,­È‘14ÖÂ&ÈÍ"‰U—eÀΑžxº$bãþ‚œÆÆ2ZˆZ¨ V gA9C8E²˜ˆ¦¨Ñ÷ÆZç~‹Ñâs'Q.Ét"+Äݵ ic| †Eуv$Ö¤ø\zšÝR1cØÚ!T’IñoÝ6jÉ5ð€u v3‹#÷4ìHkXÉ[k=¡âk#€H¹nL Ð bÔ–Ú÷*ŽBâÜ}¯‘þ®>e¬³uåJ†8¨¹×§a(5ïú|EzQƒ-нe×UÔÒÓ(|Xï!¹„6–¡j¬HchV¾(TC¶Wì8‹šdw`ç'­«H€~Ò¾ ´Üó+|~Ò7”Ÿt,ý¤삊ñ§Š&} )eÛ°wÒpLûFp&ë’ê«pÊ~t7T1žÜ¬e}ñÆü®Ø4¶ÐH½'M>¢ÏèÈÁt ƒK&8¿ï;MâºÞ㹜ß6Ów~ß{Oë²®Û4®â®oš<¯¡kTÄ; ßÇ7­ãq}¯ ã|ßY¨X±ßýγP‘Ó|΂†&ækhq½¯Àc45M\3³«Èï»ë÷¾çù}Û´mó} OÃÇ5 q~ãxÌ×+TÄ*jš§éžÕWØz?SS“ãûã÷ÎÇ+VÔàñŽç31½b&= ¡„9ÈáqSí<ÔFÀü$)rC³ PnC/ý*ˆ¡üÐáZ¨‰uÒ&¬è‘ä|WwÂÑN"%*®x†Fø‘¿w÷}DѤeÌO )¢¯&b(åVu‚$(K£~< + ›!C¥Ã +>¤*A•}?–!ü¾ˆÀi øÁ IøîÀù °N8jt@ÿÄ ÎOaPwš\OH 9èЩWðôoõÉœŸVàD?ÔʼÒ'=ÀÓ'c‡A´\CÎî×TVô,-e4a5cd5c-ba2c-475b-8ee3-694c470af0c642b-42e1-4e7d-8146-fa48247ee4fc04188m10SVGFil/ : +/XMLNode(fxmlnode-nodenamid;attribute(AI__1valu2nodet/Arrachildren; ,w100%whyyxxobject,1feTurbulencet2resultstitchTilesnoSbaseFrequenc.0numOctav2feCompositinSourceGraphiininope/Def ;4fractalNois4BevelShadow44-2xGaussianBlurstdDevibfeOffsedddyoSpecularLightingstyll-color:whspecOusurfaceExponent1ConstafePointL-1000-5xz2zkk4k1litkkk13arithmetMergNodiCoolBreez14-xMorphologyaradiu1.dilabb-d25DisplacementMap3s3bxChannelSelRyAm340 0 14155animfillftaralwaybeg0sfromd(5totoaccumunondditivrecalcMlineaNc8cccccc8cccc1ccccbD_d66Eroder66_d(_77PixelPlayR50 5remov11 1;20 15;200 200; 15 20;1 1 spliNrepeatDindefin7dc2;20 20;Diffused1yellow5;gr‚Ù¨r­JHF’¤$¥òƒ“4ÏZ*)i@`c ˆÁC A†A(„‚A„ÂVd›vìµ ¢cÌNÊ£nº@(º:¥vó{Îæhî6–ÿK+ yÛAƒÏOú Óåo}†Qö:ÿoÝ_žÏ¬ËR$&I„¦!ÛÒkW·zçîK,âh”³À'ßÀaß“Oá`–ßl¬ôE±9Ã-w{ÜqTùýÊâ·Œš¨ŽLưע_§»®;ж™òèx=:g=Ju)À$«Ÿ;+û( S> %‘UÕ_IFƒo>Ò8Hˆl,Yɼʼ0“ø;Ë7«nYžÒ²ßB¯Ë€£\³´Ñ… +C%Ù®meqã51Xf•uÈó (º<`“•–$$ìÌØ#2åhö¸‚®ô¿!®=+!ˆÂfwè‰Ù,ÃiWüŸ˜3&.D Ð|èË{âú±pI†R©â¤ ÀDîpU'eD*9(ïb.Ž8ŽM2;(~aî5Ò¥êBY8ï,-Þ!S¶½ßR£e‡@ÚZàùæ«ÕS‚HØ’4ŠÌXÙS–%¢xfþP^aÄ?&˜KlÚ쿉S9ŒŒ¦â^tc”` ñå›Op¼BkB~ÂÈ êá`è?ºSU¹ ¾øù‹¿Ó‰‹ÙŠïè F4•‘ð¤^÷cŠà[rº˜v†8vqnâD6YLúû1ü8âj ziGNd¤¼ï¥äƒÀNJ­'LÆMQ  5vn³*8”ØÅÙG4„g´oÔmSi?3‘?·gòš§Œ†EÔT©sÒÙOÑ/9ϸ߯”@ŽÛï`jîi¨íHeƒFo­—PؘàÌÀï+ûw2þz0#'Ñx6òîN¶|.ê†ùHsáÉshPæ,]¹Î6kM3k[мÆÃ|¿ˆ¬‰®d%¸Ït]\ù™F3U×Ó눊[®GIˆÆ^ÛÁ*ó‹Ú´bi v¸B¢ŠÚ·".²â–Îy/œGΰÈ =êç³ÿ@ÀGS H‘™ÆJIç6”»vÑ8Õ ›ë*`™úzz_òÞjÍX,]¯ösj™0-5>XäW]¸(™$ýPX7ºT5ÈçÐeœSƒ%ðòÓLÖ¾íI'l‡@+Ô=MHhsúpº8ŠÀZjÖK›‹~£¸Â?—41ÞìyKÒ +á +6€+OªÑS‹få+¬© Y&)›¨7X} ZãyÌÆ`ªÊÍNE#@¬*SÇnFÒàÓŒE5!¡µŸa’/%ÑBÑì™ÉÈãkeÒ¸…M Z†À·ò-HŽ|Œ- Z&DÒàñ$ xÁúiŒ:5R’ÓRkÅ(°“û$¥”’ÚGqþ°M®Ã0GŒ×}&R#Ûî$.4]CÒÐ%jà\Tt´žyÙIXü…”ÌÎîY±‚jg˜…Ž  Û?þävHÞ=/ök=-+‡T–Õ£i€2¦ª9µ(“á-OžðSÃ4fQT>UóÈ‚©í‰)~X$5Léù¶á /,Aƒ¶­ÎP€š‰’sTQ?=²ðÿòÊ×£ê;±(#@Ä‚)Ó»!„*ê%?V…Õ¸üè}KL’ [ÅVQ¶#Xè?Äiîšo×–‘Y×â²ýÞwפC° (*(ʤžÎ5Q¸ÇóˆSÊ}‹¼šQì•@›þÒŠ@cƒ¬cÐÙ©ŸÆ[CÖJk¹ C.ßBH=‡-Í\¯"hFRL|Wa + +"Óƒ !(N_‹»Üi='h"Gà½ôZu#!i¢nxÚ.°Í»XG}lÅK][O$lC±™ B*߉Ô%pŠk7EÇí‚—’žæÅâàY„òR6b®7`‰ífp¿qwnÉò„Äc½Âyû»Àå­¸KËOÞz;& òªß‘|^yÅ•ÂÓÑi½S$G¸®>¤'jÎõ nB…V­G3‹¯+üBª:ÿgÝ:$ Ù ˜OBøé[¥¼ F‡–Þ1ȹ rš\u³ñÞ¡9C„þåÉé´}@1†˜ü7ëàc»0„{=82X–$„¢.+é]^±¿Ë¢`„±‡Š‡úaݤæoÚ²^”Ó¨ L©Ä"OT¢¦c)‰n¨«‘ÉÁo‡¨ó{ùŒ@ÙžsP jVÀ;Aû±e‘Ü,{¼ø¾Rwåˆ5EÎúi]èª6ÖÞGç—¦ŸÊ +ñ;#¼Ib(5cþuÍ™.œäŸ%¿+zÀþpožÉ>¢1§öGôQ·lfÚí¤¯plØf¤ÂkÀx@t/(‰4ÓK6M…•¤±ã]ßZÅ"¤”r%z3Ã Þ +Æ 7þþÈÉtEyÓ`E$"¸å5Þ²ºVÕE¬=ª.ïCc5ýDâ8‰ã°R£½Ã«3c]TDB‚±Q¢ZTýÀv3C$F)¶_LÙÄlY˜I–dí Å…eÿãñK^qÁçM°sÿþùè­ÐËZÝÏ.vk\¤ÿ¢'—NIAc9ké»h" ¿ü¦5bÙ<¥4aFAD$ÌÈýå§wnÎ&3éË5¹šS&NbùÈQÉ¥˜ÊêØ—øûÓ^´/|ôʱ’JpÑž»ðä3¯fw‹HxÆËòfËG?v½]2Gòo¨|ñÒ—FºG£î–U>ê«+ª'ŠÚÒÊ—ÊZÞJ)‰Wòåæ%~t_Ô—´9ÚHÛ7銑·å{aV¬è­­†ê$Ù§?7f„”>ÒõeZ²¹O]ò»´D¢ñ/Æpë´óO‘höz“~ž¥j£5r½¢– ;i?;ˆÄbGøx:eÔƒHl¿Aºùâ÷Ôâ8ߥºkQެe^‘hì·O88r=KÓ„È8¬¨ÀѼ7HrQ "¡°‘Ÿg?g3Ñ´+ù ‘XT òjÙ‘jï˜õX|ݵºuûíB‚_®§ÁÏtOûH­Ñ}>‚?ê‘»Øë>rÛ7Z-bݾ!ÝEô×Í=„ÔߨÈÚ‘ñ‰†ØÈ¿àüÊiI®ì–Èí."‹lªÅ¢•ľ^9¬VÚ¢E$"4¦ª>k¾ä×¼¯±•¦Õ ÉûEFø<"¡£ª çÎ]xŽH4ø\Žo•>e“ø#Ñ飱ÏlÓGøC»”#dßj„{¨L—òsG%’K%¿;ÜÊ­3ý§êϸÚû¼­Yœ!33‡ 0€Hàg0 `‚:,°€3(Yzà`˜à€5p  á`˜àÀ‡8,@ˆB +H`X`8 "ÐhP '€Ppx ÎðWÞE@ …4H8440 íqüÂ-xÍÆƒâ _:‘8ø’UŽH+G®s!"ÑXDâa“‘PÈíJŽ–£j9jÉ’;f2‘hb! äJUgv¤4UËÕ%íl‡ÔTLÌÿÅ®‡á¹éîXpëŹ,{»¯›çÁ‹‰GI–‚:I)k“GÚ*kÛª[¼¥*W,ÝÒÌc·G–âèÔ¦{£è¼®RÁM1›"ã$“3ÑSºßí¤réÄöwNx°)¥þãZíÚ^]ž¢¦°šÜ$]ø8PKKj—Jê¨cºä¶‘í æ6¯~¯xD©ùxPZÔœÅGLN__Ÿ­kœùA™ùŽI¥›;UÔSóÔ9¤¿ÿc¬LùÙû ‡ålÞàâMNg2ñ:Gñ›ŸÎí¥ôe=)“øA1sƒ:ÅJGgÇà ŠI>ä2Dâá E[œ2ÚÜt$w§±P<,?o‰H(2%¥GÞrÄ5“ë‘3Ù=•53F$޳¼"Rå¨Q!‹É-±»jóË?üaʾÊü´º# :D$"(‡³@Â9!"Ñ€*™OŠG$‹¬&TH – wR™pÍo.xO û[áKSæÒºΣ›þjº"3aî룱ݕ5Ù5®ÜXù¿ëçŒ+ ¯oªÖÔhÉNPSyWTß:Êržø­y«ËÖG%ý²µ9·ŽìJ‹ñ~ÒÙî:DåbDâó¶Üª[zÑ$;k«)Ï?l{“ÖÅ~DªÍ›<^–êgf›µ?÷)ÍpIOùoÝ ­nþ×+kñðîZíEò½¤Ock*3ÑM%¼O•^R‹ÝÍqnP­rLñ´ŸÞ66·wQgÑÚš{&d+L1ÄÛ +j-mÙ%­=·mÕ*ýêT7jÓ[:[;6ºáIän¿L:í®‡o¤>´2Y^Óý‰ažmÑ‘8¨Mþý;©÷)š¹çg1RÒZò6©\ëý}dBªëù”n~’VOºvó)9›ÐðGäuz‡t?D&c># ¹Üß&û”¥u¤Ó‘—&ÙÈöiéòºJUâ;±ÝÅx»çð&;'˜š?ù¹Î*Y2í0±£6¾ZÑ%o¦Kü%®£ûÊÞIo{Ú¸àÐaA °X,`Àð€aÁ  T€H“s¤Óƒi¥ÇÉÇù5ožoêÞHç§ÝûmcÚµ‹iÝò¯LKu™Ý_BÔú…o›R8™ð DH@öe1Á,0Á (3]åÅí%ÕwÙ¦,ì–k·Í¥\wËücé³Ï½jͦ ør¯²5ó•™htQ1ìµ5:_"铪Oƒ¤Û½q­5x——öžkØú¶­¼>ÚÌ»Öâ±-“õ62æ’uñfÓ™¼uM»/YúPÒ˜ê‹æ_˜Ü‹s—! +b(‘ÇBY”Ä1Æ`ÀPÞ­·ö/ á.úª yƒìädõ{Î H„$ù/ ¾ML6‹+&¡=˜iZ^oe½UòÏwü§¸2úÍO Ìý8Q–W |SzƒðÂ/¥í¼ªo²ci~qË»)ìa¼¿L¢Ê^¥6Ô<ÌÑ0kU ð}sùpô×ÁKž–©|-ÿ$-tUçÜýk‰›’áŽhÍçÑÔ(^D¸'ƒO Ô`›SXs÷xwcº·r´VÞ‡ h['k [ôi{o׃+=ñŽ%`°è`fŠ×‚«.Ð+Þ[¦P͵CÒÝ0)»åõ³—ç>¡Öˆ9Ci¶ˆCCEßã¼.‚7˜Ò¦A>–Ö/Šè¬ä0 Mªì j ¶Ú°I¯ëÛ>è…²Äd|s¦WÃ’8ä/è…g+ϳÃg×~P¾¦jíü6ͨjE³ÎŽoÓ/å딚N[¢†aÔÍéfWÕô®zâmVM¡!¼#ÑÀHÀ›0§±a +Œ c +Iò…)<½ SðNSÐ3\×ÄyÞùŒ;åyi ”r<Ñ(¸ ùR ñ¥IÖKáî—‚-PðGÆ"³m_ +QHŒ|¤…ÔØ oVý…p)„ Ø¥pí@·:¼¤ñevzyF3P|cb·ÍàÑ B, êˆSˆC"¦pÆË¥«½qø4ƒ !SÈAj`ë,¬¬)¬MS(œ¥VS8ÓȘSìšB€Ù(¦yžhüu’Þ_LõRPÌŽ]ÿRè ÄKAZ<õß8kªå{#¬ŸÈY ðXí¯÷c)ŸÁÞ¦*›)SS8qâØoå£x°)o…ÇK!DÜ-Žó R¸ô« Û˜çÈ”t2ÌN-OÅã:æžk´ôKÀ*üŸœâù…ÑÉ}~ZkT” +ÑòJ\÷„¼FAYDŒ2p0½:pÕÅäòLºÜ ô}|¸|‘E¯!‡xsd(ü©ÉÚä--{} &¬@Î5>AÅÐÓ[¹>!ràÑP󉚷TîW”&Á‰TncæÔ3(ÊÛëÞeYæSÉ1eôŠÉÏÁÐAténÎÌ~£ÑS£ÈÃ¥nœ¾6àÌü\ÔÚøSÀ– ŒçŠÎ¤ín:1ìÓ_ÄSÓÌEÑÇ<,±CÚœtÑÔ¢ ÐiÄ×íäµá^`ÇT¿cC(xåtôt»¾6µÌXŽìãÞÛ”³Û7nßÔáSŽ$„4{€J©4ÙÞÄã 7 Xð ÓÖà•õy¡6CÇ•éÙžFIÍ€:ÚiÙóZ_ø9ò·ÍAB^ Ï1ð-a™Jx%jaXA*›¸|}¶š3Ö•³ê‰wv‚èP¢`)”Ìʤ‰õpR›ñŒtîÉU'ÿ¢é îúm|fã@ç¹=­jqòØpoeׂˆâRHÔíïÈ&·è+ð¢J]Š„5!iS¥…>IÕêÛp'êœð¨búqå1¾S:`®¦E áVÓ%Å3µ£Ó>e.ïR¿@â5%ƒGIÓ`)ÛkJ¡ªSyof½%Ø]eÝÙ°Â#D?È0 ém,ò*ü‹û¬P€R§Õ‡À¸žö™ÛÎæ5€õ g· / èÜ™¬iÚùþ¸“Õqº9rìþɲU¹ß/ôSx—ÖÍÒéenì[Ò^YdØP× HhcY ´/F•½ªý+§~ÆÒÈ('ŠIÆ £®jIÕŸr0 +dP4½X›Ì…¤Ð·Ù2Ÿ5D)vì¡ë¤K Ÿidnã"'Ž-6eYä<ü)V’@YŠ¡‹ÉômðôïŽ{ñ°•/­;¤XŒ;É´܆c1Âp#ÀûlGÓžï’ïÜüãÐ ‰N!ç~ÝËžÍ=~²¼7*3éf™:¨02.š;Ĥ=àºÏ…R9îPÍ0{¥àÝyïå#O¡ÐÁòëBÞ4f·ÿR“j¼`7á“ËÜ‚Ÿ T¾óÞ`o»¡GFX5š;…á’Ïï3öª8³d‘‚“¸¹td?0¯  +ú·x½Ôx7å›ï…8TäIZX`¡êdß8g B·ÀV}øt§Ì¡ÈÇÏÞa«‹Ý}üϺ).jYµYàw }<ˆVJÖÃ#Þ^¤Ê:ý+cCî©9Ûšï@ßì•pG¥€¤©ˆ ”ñ<é?"¡ FÖ5`ÏMß²Û6ìÎ@À>â6Í|ílR†7¢Á(ëÑë©©¹U¼Ã‹wwŠÄb5ù^ñФŸ Qráܦx›ùW~Å‘LÞÜS‡Lò€)ùð.lUún±¼¸}YˆôÛÒý˜e GЧµ“ f1ìD-:š+¼†nɼðfwK•;¦ã)a^Á;â¢ô3~ º ŒÎþÊH‰'§&$YŒ³Ó-2´Žá¼”žúÌΟk›TÒÃã[Ù6ÊÂÞØ–‰LàåLôÚ#u©7ù—ˆè““eÿü줺åe8~ÊWû®e8¸ÓÑäþA˜C¼#[ñ]ô (>µB˜>dл´°vŲ”Z‹Ò\±ÁëïÝÎ+F \<# “¨‡~<±MAgu!¨S]Œ¸³»‹>šÖäÒ  Îd·Q«rÔœÝ=Ï‹µv–ª¤¤ÖîîMïvjq1FDøÍƒî¼23ß:NÍ÷ æîU.„¾;†gè’ÓwKOE†sr¶Ú²Ïum3yØ‹‰ 2÷I ”>X#ï~çž%¬ÓfŒP™pu"Ò s¼ûÖpw§]qÈ»³ë/èý¨$þõ.%ÖlŽ¥i©_dÉÌÚš=™A17šýBb|c9i6*3öAªÓe^‡[Í^e#Šk0ly†©7Üó=V¢š!bÊ)œÙ´˜±¤f6ªsèA£Ëì–‚Ïó²7³å·~&ýÀœ«YëÌ>~¥5–T´¿ssÒ#/9I‹à;~7‡ íü[ÌYfB*h$[J³‹ÙàƒÚS\Ú˜]/Ì™‘·çGH3; @5A¨€ÙåN8 ³&)WéÄ—&,CžÆì> +SwÝ‹h‚Uþc6Ò¼©å‡fÓÛ.C/ Hd>-¥ \m^e oI¤úFÆ“™…1‘95Š·2Û¥~wp( 4I2AŽ™m*¹ _òÌÖ?;;»ó[R0ó4Š·š½\¹8sZžˆjHwI¢ž±Ã¼·ù] +ÍdS–qV"#EÎùtuX³Ï9[žs¿vd“ÎdäÛmvOÆï*˜‰Ó°ªÕtﺥÏÍ^%AhÍÞ¦Ç×/wpºÿ,ÆÚ̸¹røé…°¥û…ŠOŸÙ³¨¢ fëâÏl +Àí—?έ0ÛªŠ*Ž[€ÙhtGèÏÒfq\í˜M'0LÒ`1 iÑ`6 +sÙ"¯êCøÒ¡¼¬ýçãIô%BPͧ Ž=œ:iIB®ñe«¨ @²AœC+¦ZÑ9ˆ–=STÓ°•»¡§Uõ?¿œ®»Y_•œIä2(†LäIÌ‘Èâ+&˜­"ØêÐÒ ŽÊÉR?‰ +Zò:†ZrÕLNÂH#‹Ð<ù§5¤#çÆÚ¦€,G±w¾Ÿ0ŠD¼D»ûzžfP9ÁL‘­XàuöøÂëešÈœ€– —w5wüõ—<±‘Ⱦõ kmÀQ/ˆÉŽN úë±:Φøêg|D¯\>á=(ŒÑ¼Ty§C‘uU—3™8ü;i_ÓW7ÊŸ—_£ñó߀u`ï?³Õd8Ï ç#Äs—­_L Søþ +›Æ;Òc-ß„¹e 9 + [oÓèÚ/ÿÄänÉÙÑ¿ìóm×kmJ4«€Nô £qCfkc ÐêÌþ¯Ðö¦a ƒ´/ä#½êÒ‘òord m|ßÒâ9ëó¡ÐõÓÿMCR”v§JXûYn¤&rï}=©S•&Äñ#C*í“YêeὬ¥¬#[/ºÀÔÉË=h¤½\~KDH…u5U€m±ÈrüÌ´ÁýaÚðÈÇùóKÏ¿- /ÞÕ©Í>æðÊ9&~ŤŸNvê0ãÕÖ¾;6ˆûßÙLª½Jn y† cP˜’ 'Ü f)Òg¬³„X; 9¥)kG\”r`òS˜…ÇŒ:¦ÄÿBØR †Oº& i!Aæ”P«=¬Z0'ù휞6 jÕo¥þŠYSîv™•'°äŒQÐŒõíd=aF³¶]€C/£ô +‚¶8aI'Æc"ÞO%¼ÐßÌL¡ïU±ìž@*A z;ôÉmÑ*SÉÊ“ Ýßü}ÇLímo.Ë~G Öd6E«SŽäÎû`µ8… eÓ¿r #Ò=£ü´‘‹—­ååoP]°õ…¥/ñrý@/t4Î7bã$œtâ }õZÐ:u*Ÿ¦Sqc‰=FX¿í>ÙîVÀÔ¯UìUÉ猠/ g+RPV^ÖŽœŽ5Eÿdã¯ÀÓlg£u ‹.§­ªšByxb*+zê›RÈ—«›v 1>S$ů$PbãÜš4“Vìk¸66$ò)ëRµiXù¢nc«wÉqžìE )ÆudKâ[¡!”ƼV%O4Å81É](Sû–EÁ¬ÎFBTM”ÆÜ +>òE⨋!$]Œ´g°j×2³Ñq¾4Æ•Ž~6 +Œx‡Ž`ø€~qB8“‹M'ÅK“ZöÒUvTì{y'¦ 28ñCŽã²V õV<-o…a³Ì¬Ì)ú…¿¿»@¥µg ¥“M49„Ð9²j·7ê;˜$Ïï ÙÿÎE#ιiCÂyŸˆŸ|îhk¡ü|/eåúç2MuEHwŸgÚ>öoÕËê·Ü1¼Û(4¿c¨Ä¸Û {LtŽTœ¥w2OzØëàãr8DQl®“QŒóéÇãÆÔ= H²˜ˆÄ +©y’‘=?wâ?óWÙ¦_Ã5O9^Åý¼†q8VÄà&2‰Êe7ïaþR‰"\^†n¸Ê¾…ÍN›£ÏMôò4’š®Â~þM¹Ïœ?ØF€†q îö< †%´•I¢r·S¬ƯyX‹!0ÀMÒ†ð6u¨yW<4˜ê“hÓײªpÀ"p«7êî ß+þ»è ‚ˆ*í6Ÿð„!ÚoêºóÈâ]3¿ØÙŸL‡ zP´ù̘855ë º—Mm2‹ ð"K÷Þ,_–ÑW¿¤hqr°ÑA~Q© Á™Äù;•üu9¨ÄBmz³¢çؽ¾*NÓ[¦àr2 +#Ák¹¦à f€õíH= +ñíØàz¸ñYL™@šƒ9Õ{3&dH+vÁSˆ1ö„€Æ½Å†)JùI1–!c£Œ*&ó~Ñ?0žÕغF®®Ð6å9áÈeÔ‰\{±‚¤Ú©{àdrš,—(Åû¡¸Á=Š„àÄ©§¨G¤¬V:þ.¢Ã ƒn•¡óÒI½CË€Zô®CIàiê€$Š5ðŽß4“w°ù]ô6ÙÉŒMJàñª=}EUàìðߨ7*r Éù"^Ûµ5¡ØsB1è'WàiCLÐÀé±¥w¿ Lñ™[ó‹Y‰é÷—š<4Í‚ó@¦– +jÓßÄTA³P’DŒßa 3™rXšzRmMÏs˜Ðw"LBÖF58m•±¢­ØnsŸhšÇsתÄ@Òį`Â(WýE¤\oàû»5¬¿fA÷4ŠrÂyÕä‹î‹Ê”.ý–ð¨/Ó(–dÛ¸¸PRä;´CÍYË‘S3õŸ-”$<T’CªÉ4´ ¢~ÏZJ¢F²ï°Ý Ñ'”¦p@Œ>2?ñ5ùA{…ûÄ3È£îÜMìâx",0I0UhË•˜­’‹%¶C¾¢¼½½o"p?oڳ؉´¦‘H_ +“ëL¾›hÁ=£CBD²Q7Ðí’Ìi* Ò×x%*µ„'*ÈâV'7Í®-÷ äS› >RDoÒñD .3wCüZ¦Ñ´Oòº‹uÅþƒ=1'9øW”¶S~³Xý€‹Û)jš'ª3eB2õ/½tùIàû,4ÇHñ_æÐñ¡GáÔ‹8‡Kd¦pò"ØÛv¯¨WqЪ ˆ_t‰>7,˜$vž¦ŒJ$Zb6x̰Ӧ`’uDÌÇŠH®‘rö[àùX‹‚ß0s•¼"V.T¼AB€&‹¾¿;ÔÓPú[$$o¶¹ÏèXpØSb‚ ƒ¹À›á±RÕ,›¼p*1³/Uha«Ùèv¢9=ѸPã!ŒÈ´×ç,¿Ú§MºN‰¾dwèÂUñ‚àflÔŒÇÍ€Þ¯(âχ>ðgzÖ•!›'>©!øä­(k£å› Ÿ$,S¸.¡ªWPá¼m>™”ý<ú¡ý‰àVõªmWh­·w!`óÒÇÿ¥Ñs!/ᣓ¼û*($0b¢Dç ÝVÏÒÙýH¸Ã–ù/wZ8SRùhÞfÌXX¶®}¿•Q]ÍC6Ft$˜†îòó{Ù¤já''òô(=òÞ{´´~Jq“9ã¢qÇ>ˆ þF’¨&£غ²(/AN„ĉ;Á$t]·ãûÀè€Õìÿ¯†0·µaì0*89ÁÈiÑ(=1¯Âå§²ì¥ÑÀÁf +`ÀN9ñªË®¥Šæ –¤ê•­’¨X肈§]Þ³<ñÞ®œ%WV«ªŠÞô–÷—JJ³·.©§ßÞ ˜ƒaOTt‹Š$Š@ÊÐs;ì®M»§ñ®ÊÞ¯µŒ /‘ÆÜ$Ú$Kã;Õ`ÝŸ†ªÈ!4¢×€ ]%eh~ó°¾-ª‹φ!¤¢~‰RßkÚe§Ê]JIžÀÿdn'…m5‰ @áhCüáÊþ´°î\3X@b9òKt-”–äŠa©HI<6ÙÂ?qÊ¤ì ¹ËΕ$‰/‚‹^kq"‡Ä/*_‹ˆŠ‚_Ô¥µ¬¡EwEøÂ¾®å%GíRÌ㮇V"Åìó’:²kº´OL§¯²¿›órµŠt”±ulob™zÜ~•._EÖë¶ÕÙh&ŽHƒN¯ËoñáM€G”Ù ÌÁÛf‰˜/ñ¿mŽ7è†J“rá©X_•äîûù¤ÐótI‹†ü+ÔæÄ­|jóÝÌôOíÔýZ3ù«G©ÀËþ¹àë1d +ŽHžð€Ê{ÝLF‹'Ù§;hàñ‘+“›AÕm‹Å…#'R³·>JVÙTØ6É\9IyClÍiãå¨wÌÔÊÓX—w¬ÇÖée­9’š„²X…º&—QmKæ¡pÝzƒ£ÜÑñÞ8uãrŸ¸TXÀ9þ£p,×,‚wÖÆ?MÕgf±ùpzû(ÿ=^ÇU‹’zÅäö±h Œ—X1`: Ê“ôÞWv)D–) ÇõL7·ð?s1³D7#ˆõšîøQ“¾V{MÆô™ËîÚ˘ٻºž¦í Ú£à+}QÎiΉʨŒ0ØX×0HþÔcõsdã’V¦$a ¸Ì¿0oŽ+¡¤½a +IZ_EØË%ðºe‰Ÿ¡?æ'¾^@wmRà?ˆ:(\`Z íðâÄ·PRú¦¸š€…ŨÑÛ×K‰ÚÊ+¤î[ýßVF¡؈9ˆð¯xšÆì¬õžözô\z|¼ \ðH{ §àCCzÖn“wR´¡F£ª_Ã=ŸãøA&fÙy_ÿkÝÒÄ,i8IUT‹ºdŽ~ÄHnÖ)[‹cB?4Ck ð¹K‹‘€f0OÀÜÝdŒÜXŠè‚çN3cMó%?û£¢¡f¶«_/dØÐÿ§ØÐ1¼È‡±S¡Òä8~˜4Eå‚Ñix m]æFJÀ¤ô#°QÛ´#‘ -IÚ÷‹(žŒõ(0ìUÏ/7ÿŠ¿'B¯Íó¨eJ(³?–¹ÀH⮓¨hæHŸÔ«…BvàˆÍòÐiÙ™Nz·5(g'Þ(Ç4<ªÑ½EØnÉHgNvµ$H®ÙìÁí‘×_ØÒ/u™+í#ÖÈ!2i›^ZH -w?¾€eð«ì‡^A;²ÆÃ¦¬’Š< }çS`h˜(Ž]0² ¦Ò‚U…¨CÛ +O­«*£&*S¬²ØhLÞ-ö_ðÚ–8mš +Ã(…äìâe…u2鲑 ×rPI«hj‘AèäEãa/*O°ˆˆÇQ©y¬þcÙ=¨ ®Q‹žÔ•´}.Š•ÆÞm´Ê´Â¶ƒ ’r¢:z9ññç¤-ð¥†À3Sù+œ¥9Ò¬®üømxÁøqÉp‡ ^ÙàMÂ$Ì”Mc9–äôçWIî’GÍþèSP’àü|ý!Æ×ð«Ü4×gôFÚµãϯ)áóÞ* j² ÔI‚LTFLi… áÈúÇ<ÚG¦ƒ°Ñ¦~ˆ-Ö| ÊYxÇé0›R8D^ˈØÇ _Ôí‰ác>œ‡™ÊJ0ýR2÷•ˆš¡ýö\0?½"ì†:­ö£MΖAI1:ƒ• ·G²+ôŸßŽõ°u7!tɸ—çG›z8™¨ƒ4írG#µø4À[†Ì VK2üHß–5ÉèµGÖ’Á„ Bê­áO_jé8 “…C|†¢¬ ´Å’Ú¦JH4™Ê>xjíJgµ[Ì‚£7LKóL'¡7™ú‘†m«hCt½ÀýƒnÄüË HJƒ¸T!ŠÞ_4§øÊð3ôšÏÝ7äoŒËúû°û¡B“rDµ¸zûð° 86Ý]VnºëÒ**9ôrjiÙ«ÔihzBþØxP&k\ã’Åä;½#èP-ˆ*´pøÏ=%ðCy<®ßÁïêˆþX±ª“.’Nžç€^Ú-—‚¾a›ì®O«¢bÂi~[hõ4&¢†^™gÛsb!Ùgm +Äôi¦‘Þ³í@äRZUeš)öº§¤éÅú65l…íªÇºíÐ}ª,”ŸŠ%ÄÂôÞS{l€Ìª}j¸Æøwb.â³¾ìÓY?0QsHGš ~(þ@äv©p¤NšG*Öò‹çôR"\ŠV#-«½°*&‘ +,–AÙÈõ*¬Ͱ{r“;¼ÎÀõlÿæ·­ã9«ß®zE5IYÙ¦yØt¡ŒÈÖæ 6˜6<„ÉQ¸Ï ëÙü«Ìç8A·Œe9×;Î%ˆœhXùc\­pl->ãsŽ•üʲW‚7iNÙ#âFe“ïÓÊf’Ä»?Ô*–Ÿ2d&(¿QJºŠ*Â;ù“Ÿ¬úfìÝÔ\¥˜ùäïã¶}Ù”\6!æ7ž4Ê‘“Yà…QgÀ~™[ÃàÐ?µ@Ljp¡Á½-œ ë/ÍÕ9éóߌ‚4}ÂgC²‘ßÚ+ä?P‚¾v“ý¾òn«SÁ46Øb•¥œ;G/õͪ fÙÆÏ#T÷ +ñøÄ  >PE}b1&9ä“®¼ô!4Š¥zÓ(Ri„;Œp¢Œ·;0á¦{U–Jü’ÑO“vxõ‚+ÅòâPo¬2–D.½Ì£»˜€ŒÜ…ªlþÃsêaÎ’­¬Øƒ¢ÔÇA}Ú.òÚõ‰û©J*š•:ì¬Ã ¨O…Ú£°];–c¨L‡@ˆ ™/“'LÚ8ŸêZ±"uN±R¥ó¯ó£¨{õ$zÛ3Ž~ÎTx£Ù +ÅU,“i.ÌÝO $ŒFþ÷‘÷ K®¿ç3sþé©LhÍ«òb# EÓ’6O1ÖŒç<´¢óÒƒRè7΀إLƒ‰Í|jZIJø[€€èK6Ø9(š +à¥EpU¤4£shb1ÍtCžÆ¬ðݸ &ξSG·‹K#ßq‘,GõA ¶Ha#¢+Éa!§M“t‚ºŽOÙÀ¿W#hÐ>u¨•‚¤Ò‰á|YÓ’¼ù (N°MsM™ ¹áxî@)ŒÐäºå™Ô×Iš¾¥Š¨ª‰º…¦–ê¨iô38k*æjˆÌå.±ruDcü—Ú ü`FcìÔµ¢8'® æï|ˆÙþÿËdôõ©ã„Sr ¾è7³FZìJT3Z›ÁBLƒ¹ãúJS¹Ä,–J·9lö® ›ú9zÀvŸê„Ã.nÔÖðZw¶{ݽü‹¨<yýX¥¿Ì×…‚CVÕA¢YA-˜ֽɤ·G¹†$‘d~ÀçiV`NVÅWX‹ù¨ –1tÑy6 +¸5ZX%¼(9ɤ`b°Ö^èŸ$—Õ„fÄôi±ÕC|ݨ3"†ÜÛ5'(÷–j&†ëÇë•WQá™W…ø ˆÍ†ë/ª|Äã +<ݾ⎠Á   ^²ÕˆOGŠr­AWZ¢³† +òd…À² ' Ž@81ƒ{¶Q ÞAûÉxlr_› „\ÛznSU!Mòù†˜™xZªº¸¡-ºªà´K¢9¾þX58“2 äMàM^ÁÍmë¹ÝyšªM“ý>z»ÛÖ½…Id‡ùÙàÕ°‚þQ=¨‰°>¼ÛØD0#ù¸ˆð ã½?,jɘÁs©÷6¥öû319/aBË‘¯2òYj…¢°Òæ˜,93Þ cˆ¸’ôœM©(óôk1 žI¢½çÌ&YÑ[j©«¿Nh&yúÊŠEÏ\æÀÀ”Øu)Wêx5œaî ‡ª5ãîÛ­µÎÕL½Ö4§ÊsM¦Ý4šÈEU&ht#rûSËe¨ý3âš J- “þª/üs¿‡W÷%csì\Ò²Dá±Lo–†;g$gröÖb1ÑF$OÍÀ.ÔeðJa€#%Ùƒ”ž#¿øòªÙùJƒdc½QYþ£ôú>AuôA^­8R¼zEgkQ<(|«mØhÕiÉ3B¨V™ F†Mãö¡êí@ÛuoQÚY'…–ÞjÆ +jœ²’®¦Š& +˜,Å<ŽÂU’*+ÊYBð€0lnâñX°¶¹¹_Q©x/.—ž«nµZb¨a, žùá¾LcÕ5À6#jNh +8ÅíÖÞ:œ+ÝT#ÎYw ÊØ€Cv£ á÷Dd}žôs?΀¦QR‹Nù#ºé'·§$Ç2ÄMÎ)‘e3]@½wx6¥C &¼‡ÑzpÓˆÎø'ßÔA?Ôˆö U콨8AÔó[‡¾¡íJ¨G{RБ)@+éH¹(ê>/@¡2q جZÛ»óN¯z)õò%³{Yª t±Þá–­ém^Sñ–z_Ú¥‡ +5#ô‡™ñ u÷O;ý™õÔœhÚuM/Nœ2 £‡Á’):rOëª&Á£Â)s¯BH‰(4¡é»÷*ÅEQDÆNFÄS6.GÞý2꫃üoÛ˜½c¤§_ºú·ñ¨Êu9€¤Ñ ìñL]¤Hª÷LÌ#ñ¬gj‹¹»œE,÷’} 9@s/ËÀ¤ô·²þ +}ݔ؜EŠBQ™~VʾõL¾ž-= ÷œÈ¿Æ»ƒŸ°iv,¡NÑÕDWìjÜ*+gÚ[ã?ôaÜjóI9ß ¿‹BhÜjH»j_ÈŒŽ›wlJr]%Yh|/­ +U+¥hd¡ãÜýb!•áÖ0°cÀHxíÔD¬-Œ¬ÔÿªùnJV(¸jIf:j[¬Àª[ +bnG$KF¨ZÀ›òûOv¡ +ù`|—ÜèƒCé„Qå6R ú_Ir}~ÆÑ¿&n/«"`쉠£:;ÔÙ + %CŸ"ú߀BÍ\@±Ui$Ùd¦ä,U‚4ã逘6ðFY¶ð‘–jDEáÆ^õÀ%ôàý;^@gJW¬¼`§YÞÂý^bÎ1âDÒOy°ŽÏáF­CRè“PO…ǵ㢳æôŽ_"C_ƒâ,âí¬k_G El†·$¦Ò¢gøâvÒ‚"=<ÀÀ¿ý]˜»K«á7aåÁUd7bçð¨3H›£2n^$.¢ëëÍ'«QÐg¹Úo‰/¡SìÒ?ò3mcæ(ÑVRœ8ª˜ûÕÂÓÖš›óg‘6ôïXw"$Y(ìñA Ý; N=°l&B5ʘÚhôŽ ïVæB7œî3–Û—+Óh Ãüðcå£Ä2¥”Ç“²7Ÿ1±N¸«Á¢&;d»póöW¡6´ž÷›=꤯Îh˜Ü˜SžR’Iâÿ#DD¹œŠ¢ îA9ñîè 6}ð×ïîxÑ¢ pCWÜ£êJ”©VIp‚HWĸU uJ7#4ÍÏN¾2µë¥ Š[‰k‚=ŠŒeÂ~i^6Ø­ôšÀÖceÒó?fýÔÜf9›Q‚M¬rdëªj ÄXÆ\À¡ƒ…A Úcr¾óh¡- õ’Céh^²ÍÙ•RfòÀD +%€ÁÇ”U4£fÆ„û±+NBªc)6n,Añ +¹ ö2õœ?6ðžECPUS¿áýWŠ}¨·Ð[ Ç)•od#€iÎ$·˜ WÂ˵"q:Õy"aI"^jsÎG;c=N¸þ@ç‘~`‡°À'êÍCžw@y !©³ àÐóe[@ŠqÌ ¿Dá<ÕQ*B¦¤i¶¯r5‚#+A‹¨NRMJÄs›ï¤C'-“Û\hEC#É"’!Úˆ+sBjš*™ËS§¼f¡7âpoù†WáüP@ðÊB@%É>7ÀJ¶¦ýÎÊtÉD²‡JTŠOæxrd>°A|LÜðrÂL6 ™T¡¡FTU9 ®7ºÖµT>7jXä–°Y$2: ±„½ÉÑèÞí}­#JQº©ý +qÑ'ž¬• Ù-–êtý*ž±íJ­7r¡ê,w uØ$>ˆUŽ6 «ªm„D Ý#¬ùÔüì …x¥ç²³¾@Œ<¬QkŠ›<ªŸ‘@=Ý–A,Ô™˜¿æãpÓ4ÛÇã,ï·j Œ±*–-2öT­»ðNKYUî8 |º6š;'^TÓTºÕ•ª^ªÀ¾dnùp%4GÀÇù/}ÁÄÏöÓZ2N@´@´¡ÏÎÔž$A¸æºGDÕ  +r2¢ÀðS½*(zÜ‘¦ëש£3²Ÿâ¡»Ë~ŒÜß'££ s4oøgýè×⋺43ŒwhŠÝÔâ){×Ô&O,XX^O_Œ¥® +0 & À5iˆýꃙÆRQF'Hˆ œMÿ„ÉA¨î6EôœVl*‹ÐÛßÒovžÎ¬Šyáâê¿Ì¿Åˆó› ^/Gá2 ¯q»`Ko4':ÇtÅ +7”‚w–a”cŸ=\ðÂþ@;Gô“.Ù¬ƒÒí´+ø¶;x–?¶u¯ ‡ÏøfW¦€Cz&‚MkLæÌ0°}ì“<Ú…Z%~º#5×ï +2zõS,.é¡Ílïû¯©›  ʦ+ ÁÁöK|ã#óÙi Âî(÷}üÖ\çuVErJޥׇ§ ·¯ÁØ–*/^µ°ÒÛI¢.`¤#ÕÆãöä¨ï´Å_÷H„®maHó¡oú9$rh¡ÖI­¢Ç !eBÞœvù,ñŒéi‹ßZ#nÑèž§üg.ŠYÅ|ð)2Ðà:( +u ¶ÌèãD¥_ËãxeuZÑ( Ëw:8Úý’]§e…?å€Þ ËŽQ†€8Ñ<òÄë²ôLÄ@ƒCòÒŒ‡zxFÔŠ:K`·Y+á ·gIRIG‚ØG"1jV„ºÌs¸5mToPŠLdæ´?1*÷ÿz5žJ€­S”l,v¬'@e•ï¥wkÁÔgÁÕ^bø‡ìñ…¾Ž60Õµâ=ø-ø¨ßÄ ‡¢»Œ •Z‘ÓHÓ†Ðiàü}<³oŠN]UÐ_]´œÕd©»Rî8ýýÑÇE6·Ã ª;—k|Õ‹Š˜kæAütìÏ:-á¾°7¥Ê-sÄ„¥½ñ5ˆòeNƒB°÷Œµèêêîé1yÿâÀœ†»Tß„§[Do[T‚Ö…ÿq{ÐÓ¿ëõíªÕ6¥þ+Û½Ná&Ê©Æ/=éyf‰RFHÓ&,åCJŽÑ¶¤è´7Fâ_ü–ë + á‡3ÿáaZi7 +¾¼³`à™š #ŸY7’’éžC„òËÊÊÀÃüFï‚QK÷êw}Ò ¦à k(Úr–,Þ”0#® ¦ªÍé2Üi¿áÊ‚=^¸xSôöuºþ:ӔΑæSĨ~‘´œT’ÿDUÐÆù³¦@]©Ú²†/êÀYXF 7º ¶8xÄÐ"'—ù1mþ$Mè\±±%{“hî¸`ˆàBžÁSJ¨±™0]=ù–/5•E£ÎXì1 ¸î{XìÒ?$4tÖºäƒ3µ²È·qB ˆ®•°õ ;&ík>A± '"º`Öìµe¡£3©‰ÁêsHñ|Âð#Anìa™ o#òàÈq@9‰á}£€þzêU‰A»Mj¡SÑMUb(è•2È?48¾æ cáõô>ò‚Vµ:KÁÄŒ0£‚ Ó Š4·T*Q½±ƒn¿éYŽ}¦{Ïs’Ú²ôÀö:ôP¶1¤,_PØpwß}-äêæö8Æî$Š#›96V™$þ*Óf1bõÖå†!žAt"xα!=a;(Ü•Í2š•Ë/ká.ý½ZŽKÉt…ÿ0d¬Ìò•ö‘¼ŽQ:J,ŽÔýÿŒð( {ÈÚò“E(sx +,ÿ2aq5ðSÖz( ½Éà˜”¤Û¿‰:¨JÔ$"C`*—ßàMÈ!Ö—€¹EÞŠH`@d¥¤![ò”!¼×R¢jä)2 ¾öŸ•k m¡¥ˆ‚vo‘&U-<@_}À› yÅf eR+‚xËèïb‡”µL•xòúÆÁú|ï=ªéHwî¼¶ ¿ ây†ÏëO{ æ ½ê#´ÚwÃ&;ç€J®Fï‹­x€íBšF¦)•t¿—…h=ßZPËä>Ç¡ E.·®ƒ ±Ú d§ýj! ¦;›ý\@AdLh01ÇÍêÔ² `™¬mªÊk§×-)|܈¿aÊU” +¹û½í"‰5kç¬ÉµØêÓpçF*™@Izšpü³’Ö= ÀŸÐTçøˆ H±õ¬ÞoÞðþÏcÄlˆ*•î‘>xZ«Ø-½FýÓÌÑ 1}˜œõ=Ý }%ÌŒm…Œyˆöûû@‰&<¢+?2c÷9ñw^¬/Çg •wEùÝ\};pž]ª­O¶³²c>bS©†ôõ‚¸>©¥ì#ˆg`Y™Iä^ ‚pÊw#pÛž„ËŒÁ±m²}sÃÀÁtÿ€2ïe£y'tTj¶Ç&шðš–³°Âë£Yý÷ŽÑ±–ݲIÏò5çìa]Pó&…£¯^´Ð­½! %*K÷ÉP@Ç€’ÚpHPgã‘ð‡ŒÜµBÙ)£¸MxBkª †¤a§NCàG{ ¦È8ÞGV +»C/g_ŠòAs¤´q7E„€)êŸÖð=ho¿ºQ{Z´ƒº>'`Ð…óáK1uþIL0æí&Ô &$ç‹ÂoyÂWß}²“æLú¥-æKÒzF”ÕZdãOlRØœI3Òj›z"“::Zf׊ø¹þ–\Ù dΪØ8Âgœü„Ý_nôJoµe‚—‰t­¤ÙeBAW̨¨8£o£e•Ä4²‘Ó=Á%ÝKû ÷?3öÔF¢öœ™…Õ&ŽÇD»}´e-ðÅ9»=Õ-usôÄwXËvˆ®E…b[­¢e]Q„î—éÊì”Tå`¸|c6£Ž^ºâ°"9;(¿ÖÔ¨ôIaÀ0W5<³˜øRèäŒ)§”ˆüˆ`#(¬EWQºE†ÍHýqàìv¸;f¼2å‚Løʇ]¼i›IÛ®È: gõÍ]\<½e-ðíèWZü3¼•Ó;È-2b`‚¤QB+˜&fëù/@A^× +Wåw³K#k™ß ùò›—dßû ô`wŽ¿Á¦» &,µ÷§Ÿh"½€È¹ç Ð=•ùvˆfD!é§›!¨Ö¥J>ïˆæQÀR¨‹ÐÑJ(9 ²Í›•F _|Ñ +²ÒVSàì4•RNj.Š3¾‹Õk`¡7LT@Î#›ä42¶†Ë])éooÊ•°¥ÆX*™ (ßÛÞ¬IÔZB÷¶D#ç#dë 3¹Ž®W µ‚Ú+íÊ™W u ú?FÐ +X´„Ì~“âAº®vˆ¡ˆñ}Gè Uý‰mÖsM|ã %ÖÛ–Ô•Edè´uÍá´Q‘üraò@”swÖûÙaúÜAg +l¥Ž]Åðvpãxx+SV±©Ï„ˆmOõxào„è÷PJ¸ù«"BÈeŸ­Çô¿yº£ØËý´îlf0'é@N–FÑ¢[¢F”i¨›DgOJRë±tåhô(ß}ú›Wwç…‘|Ž4×6)Ôa;ÑÄåhP”„»OÞ%JP_‚–˜áIMz[‹åJk±rF½Ä”µinsÀHŠv-)ÓNWîFl5ÛÓ2븄ž+†=JoLVÞA.ý!Òì[–ºÜÅá:C‹‚4z•!”N>0šF$TœñÒÊdnÕ±Ãê¨Ðû[Cû±þG-HË´fÚ&÷ ÐH±_ ñB‹J4 ŒÀiåè`ðhÔ„sKABù¸1¤öËÈÚA¯;—hÆrŸz†»­>É:N£g,ä“ûÏM¹Mœßš¡Ÿê6ÁœM¸µƒ·zi|-ê`X™bfåæïtΙHy­3L Œœåä63SU=Ìí¹ôCúâ¬Ã«!]ø±V»üªuôSÌs)òáèÐk¦yónQ–~÷wO£&º"û熵(ÝXˆ_@Xm¥®7êgBú&^7‹mðŠG¼²4÷Öɲ}|;ÛKsG#¿Oëê_®(ç7]è,í*þ`ôE†O¼ÄDõŒþšT!δ—yj…óî+C[72\äº{8Ö+@iÓÔûLZ2I*Í N(¥ +`"õ?¹q}x‰J6TuF%¦ÿ¦9’ĘýÄu0j%_Îq:„=¸¤È!»‘¯>Ñ–”ÂÎJLSjeÎAÎ(¥Ït¶¶X&èx7ß[];©ƒ¥ìa̹‹Yîpó–òù0-ì!䫸F9?…ls Â'ææyÀ╾ÎΡõ³ÐªyÚÿÄX–[&ùm3BmÇ|­9õñq/GËovÔTdÖ-A;{=ã»ÉC´¾Òhu+½zÿ™xKF5îE¸tÉœ9S¹‘RÎô!í‰F¶D&¨œRj|'Rù‡bLŒ b5Ð ù#ùÓ¤Ú¸µú¥\ßEøØ À«‹™j‘½Šû®“Чs¥  ú° ôœ§VfGNÖÛØYHã^cmÌçÐ}³Ò„~ \꽟÷#U³ýìƒâÆÌ×R:´OѸT¬1 ÿ 7ŠØfÒ>è•ÿß#‰ZÓ¢´Wòœ“”\Ò¨€†úé”3¢–+»ðƒÃ“h9ûfÛNÝ ¹ÌšB Gšfjévw浈ô[âöê,‚(”G±oØœügÍÀb²2– +XFlh’Y·V°w¾C*ÜפWÒJWAÀ —y÷i‘¶ì7«¬â¸1¤sk¶ÜÀΖŸ¨È¯¸àfø…^Um""},/«ù€„ûAö+Ç@Óõ³i’Ú(G BF×pÀÁ¼Åm&}A}Lëå¢Ç§}Ã8Óx}ý|Oè +“f*ˆÆÓ‰‰})5(ÉL•ÒÅ¿ØH}l1¥–’sDhþÀ¹Ø÷.ÌÁt7ã§Y‹yÏïïPê(ð‚h².Eç†ýÇQ“þ›œPg, ®Ú5ÔŒeÁ³±‘Ø +\ðTDÎàØ”D#̾„( Ú¦Nå«>ƒ‚ <ˆÛW§ôÞT¢B6MŽ5rØÇ’ Š3–èƒcµ +Mâ*œ "7ù +Ÿ~‚P)lf³Ï¢ÅÙÞ.$[ª¤•™Ø‹ç¦Í5¬Èšl¾¶×Éj©7Öx°l é4vzc 7÷‰ö­qg… wåÂ}H +w‰ ¨ù¤/ϲÏ"‡. ô—«ç4Ýž°Ò¨½z©ÀáþÎMÏ!“Ó‰øº¿mÅ­¿ÔKÊôm’ãôZ°^ûŠpæß­½aPL,·?¨Ê +z$DáåW·cŸsÖ¶áf©Õp,¤;ë@­Kê¢T$É 4ôФPAbñÁ‡• +Ä•„,zÿÁ:’:׉q¶ã+¾R¤—/ðˆ¤N&ñþ¤WB8}Dû*fd¯j(DÈuÐ÷øªìÖ%5Ÿ†@ÕQUUÇX¡»WVa"EŸí ? +"Ö‹o/rŒEÞsæâÖ<û¼ùÞ{{¯»ÿè}Þœc/rþ=÷w.ví¿þ£îŸ‡ØkqÌyc¿³î£(n¯½ñÿcöÛ{Ý3ï›­ÞÞû®¹ÇŸï½·ö¿gý9çóîØ{½ÞýcÍýîŸã>b¼E½¹ÈÅÜGŸ¹Ï¾ï½9æ\kÿ7îŸc>Ž»zì"æÿkß1Öüó¬¿þ[ãŸÇü·÷˜ãìq®Œ.®¼.®”.®l†i;Ý|³“Öz{>ŠZÌ"Ç£Þbö]uæ¢u;þ}û<8—Î_Ž»Ç¹~wŸq3òÔ4³“á`8,ÈNeÛ–'y¢¡ØÊ|ùTs¦ê =wd­ä)ݪW_v-Ñ5ÝÜ-zÎǼEŒ9×!΋;ãŸõî=ç¼îR©æÒSλn;+ÏZ™ÂŸ‹cˆw9ïyë>v¿ñöwŇê=ðÝç°w¯A\ìÐWõ‰•6Òúœ»¥JÞØKCwcì½5Æ]÷ýXïqgq‡]bï>kÃ!'ÞQkñk?Þ½95ÃaýÞ;äþòîuuï†ÃFëÎÅ0cê¾AÎÇÎùÝÜpØlÎ3ß×ãî÷C®¹á°ùX­Á»ó¸ùݾçÿ¹þw3òQߟCÏó¨³h8l¼Ö_ç-êýÿîÿìóßþÿ+î¿Á{ߟ½Þ{ï-r¿oþÛk.þ»¹ÅÛw¿_¿wÏÝw±ëîÃëùæûŽ˜ïë½ß†Ãû;îÌ=æszÏ¿Ïüvñ›-úQä›Ìýï"Þ_Ä:ïÿ¯÷öãý_ôyëι8ê/þ,îû3ÿaï˜Ãÿ9þâ8Ž£¹8ýÿ¢èoؽ¿þ‡¼žwžuöãè1ö]ÄZÔßó˳ÏYÜ"Ï|!ÞçÝõ×__­ý¨³Öùëíÿî{oqôbÎÝ‹ÌwQ>ãÿ·G~sǘó̹9¸Cs¸³Îy}ÌA±ƒºóPì̾ãPô?ô£?îáÿÇâÇáf~Q{‚{ûŠ:ᨵ¸ñæ~{pÜ£õæ±ô]wqÔyç¼»r;ý¸E-î jQó¿7Ø5ßà¸G0wÆZä½wÎA †yÌzo rÜ1¹ø9×—ï,†þþ›99yÏ{Ô:Ôx‹=üc66ã¿ú÷½³ÎXúnqûÍ7xÿî¼Ù‡ßpØàýűë̳îÚwÃÔw—ã¼7÷v¯Å˽á¯ß™‡â?æó«Åëu(~¿·Þúþ¯ûÿâþ†Ãfü¡8†þcqôã¿ÿ;÷Yƒ™ßνö7gÏûßàöýÜâÞ ÷žoþ7þúsŽÅpÌwù¿ÿ¿èùýž‡Þƒ#þàõ‹:ìü#x»óΜÃQì¢èÅœ3¶™vœ¹~nkD3× 5Or¦ÿÍ÷‘÷Žkgem-{î;×9ß»/êÙØ³èýæ¾ûÁüñìkÌõÏã÷¸ó‹7Æûò¾¿æ:çßýÝ{v{æýÀ5æìé]sαÈ5ç:ƒª¿É;ƒ¼‹Ùp(àøÿ<âì1Veðbœ·ö™ã½ÇcìñÞ{ÜXãsöwˆ;sÞ»ï½ùÞ;{®·Î>ÌùÌ™‹¹óçsô‡÷-ž!ÇãÝÆŸóÞAžó©µõÖ§¸³ÖzoÑï7Î[ÔZk=ã½çœŸá°÷vÏ}æ'1çgÎ9g¼wÎ>çÿ}Þ{{¿óΜož3ï=ìÞo¿³ß¡½÷ÙëvÝ{Ø»îºç†]ç®sï?ì£Ö]{½×;ûí½wî}wíûî;\ÿÑ÷¾³ï  5gƒ¤Šh ƒ5*tÕ°p ¥†‹âé4ZQ¡Ò˜øÑ7\c-lx £ñ ®eÄB¤òò5Fé¶C`¨ “€q±ÀN šÊbðt¤aÀ(( +#W‹x}˜ð«>GeTún¨ÛçSÕ°æ³,>H¦õJ䯨A>Ò€kñ}†CeGñ¾ðÓªŠ›€SÜF¥šÂ 1!§–¦øLBE…¤RR€™ R02g£ðÔ‘E¡‹ÁFEŽåu…ˆ‚·DaÛDŠÚÅ„PØ2 6qÛ¤ÐÄg8(Œ´B"§²•‰•<‘ „:$ŽÄ+VV Ž‚)áÁ*PÂ$à$ +R˜D’ `Éœ˜€ìEOˆ¯ ¯2Ó‘¸]ø"¡XUˆ„g1ZÄg8„Ä“Š8P9„îÅ2:D©!@:'CÄÃ!WÊA!K‘ð± _6Ëuk  ÍQÒ¨ ÄŽ yŽ´žŽ`¦ó>¡)õt¯IÎáÎkÉôæ‘,´š§P]4O•jɼH_%x°…à}– æ}†Ã­+ð:‘Ôå!v-åÂ,—B*ÏÌÈP^È/NžrðbIò2;pä%TSȃ©ÈÃèNO±.:^,a°ñ8‰ÆƒdãÙ*­‹gY,Þ'XT¼Ïphg3Їà±&ˆ{Fo—0¢·Æò÷ï‰Ýó¬Ýömb{åg³‡:å°W1mÏÊBO¡½B+âi(ˆRF/UužÁyixÃaa'$ÍâBKeR/Í'‡°-^T(ÍO…ž3yžG™ Lœçy#†ç­"…ç-|†C âyž ‘ð¼½* +pËáy Ÿá±än èutÁ \y›)ò³*ÔÅÂB*·ðÄ@ÁÑ¥âè›—È@>Ãa#ì݈ó5ŽÁD!ë4LŒ~h:žÕ­2'P¢Ù i‡™GÀƒÀ+Yç¦ú¿P9¨m<¹îW˜>®²›ÖôÑó<²¡³$t@–n-7žN=ÏcÁTÈé«dÅš›ŽçyÞ@Äó¼=€û>)„çyêÃó¼H&d|>ÃaUqxžWS8‰„çyˆ†çyêF‰™ÙdV°Â˜.qk(¢Ð,¡Ã`xžçд0Ýó<ï¶ð<ï3>%Fóžç¡>ÏóNÛÁϬ<ÏóV…çy9„Z1ÚóÃ!Ë<²Æ±ñz*ÂYþ© DOP|€M5­¡Zv{K=À äƒ23;„1­ÇÌÆ“î°©òH$€pNÔ-p¹p"Ì膃J$h n ç›tPÔ=]GvvT‡À„Iˆ3ie‹šanVžäަ¦¡*ÍØ¶Îòi¶!mµf+KÒj–6R]IP¢æY+i:\ÕªJ³EÉPÖVõ¤…-Zkɳ֖,‹[ÉœWÌRNÉîÂZ-¥•å) q9›: Yu@nf Uk¨ +`Cv¥­·6 sgIKs4UEm&[ÒBYªP+OZx¶¬¬<ÏtûTó¬…´u-Ãõœ…´•%WU e©B‹–æúW•̵¦,”¥ +©Ê¶kMgázÎÒÖ‹£x WU]ÃÒFæÌpUU1Æ:Üb¿…*y®e€4¤­3U Ï–mp(±Ïp°0Ö>ûùØÚ:1knoE!]·$ˆºÏpyTMˆ©Nj„µ*`‘ÝR‚ ¥mø#iKf(,3:(cl0P‘G#är*LÎ’s!reÞ½NÕ8IUÅý §…£‹W ÙT…¦RÍN^á3¤Ô4˜°P&ÅãæºâÎ[+'9Ý((jß¼”ÅÙb •ÉÚzÛ6¦†«í\¦ÚLÚµes–š‚Ê©ìXÄK‡A+G[ñ ES°E< Ò™AfU³Ïphµâ,%{¬²S‹Ö’N)Š u +íHÕ S@´0& )ÈYk€€Ëè&aâŽÈÍ5‹ýÜÅ:,Vc=¾‰P+ðL Or„®Ò’ +Å:M(Ÿá°¼‹*ƒÁ +ÌoófÌ"C  ØöÈàÁÖ²ÉÑɤ“ȪàBºM +j&éˆÚàà%cp^_‘yÍJ8›‹Ò€˜\ + ïêXj+â X5[†à3¸Jã Pè,j­’åVjå +Boá(«•…¨ +X“‘†•hÍ,Y­µ­LÉi%pY‰+ á­T‡ A%KI>*Ö¢”¨D¬\ê"[©¯°/)|’4R©¡>ÃákŒ&"õˆ¨]íÀCµmì´ƒ]B§yÓ'®£3Ev“ÆÅS +M˜@n` Ñ  :>3p³}È€GÑ(”´ÉZ•6ÓRjyÙQR0hÝH CEú ŽUH¯UlZSqd™µ +*#ÖÀÔYÊÖMtp[©DDi èC´~F…ÐffÀ +)8™e´Š„lç#²tn.n=q@›ÑˆA«¢û”fßÁç3 ŽÐAû§â˜x¶5É<,\9àoЇU `x^¹‡ÙÉx0VÇñ5Ó²tT¥•“¹pÂÐ$Ⱖϡí\ +Në#«mDm«ÚXH:³ÙpóÙªj ‚fÅêH“Û¡FN€¡¹‘ …LÀF±½hŒi@î îÁ˨¸ ã} †±#ù˜$˜‘T× 'â!/'’jº¬– n‚—…jª–Ïpø¥‚˜%ô XdœŠe}"–ÝEje¤hÅ*³9PqÐ–Êæu+ 5€&’¡Ùí$`*l0=ÑÀ˜l) B:à¬(,ƒÃ¡x>NIÏ‘‚òœÊÊœ¨·ò5ù\¢‰‡ðL&¨—ù˜DDu;©EC­3¦îÓ­Íé&˲þ)+—0Ê7‡ª’%Žœ?ÃÔ}–PÜ7J† 8¶NœZöý‚q ÖÆ™FËN:Ig(j«@²Û‰I‚Úm$=A%²T +”lBr¢¢3±Fd¨ µB‚Fk~†ÃWo˜ð”-|X2Ð@B\`Û·TˆK°pÃz Lkç$Ð dÀ 8ù Äò n…"@œ,éì„YdŸ^‘;3ELÛ‰¤ @d äÑM"Öˆ|†ÃO!ZH(– ‹ !««D99‘H 'p 2ˆ‰¥¢†ØˆA,m&î#OÙ¡L_2] ¥bƒ8ºŽE¸8,$Òwœ ‰cVjÄHÓ‘Nd­1ì"2ˆÈ "ë`®‚Ììû´ ­V«ƒuòÖ1jŒfÔ^kÁReÇ–8¶Ä[â¶Ž°áˆ‘%fÄÈÔþ±.{{¨ÉH9FŒÏºlÔä2Ú#U²eQN´u£b'Ê¢\ƒO¢œHј(D9Q¾´'ÕpH!æÒhmK@ …Υɮ“)ɮӥõ.;KkùÐFœÒ ·‡|p`Œ9°NV#/K¡áÀ:¹ƒ¾,Bçau2…cð PƒÇ.Æ1pp<ŽAcçÉ5>ÃáÖM®‚.áÑÜa,s´‚c,WàÆKøÍ yáí7JF·"ÎzìÁ AçRЄו„Ýúrä: HTiDÚkåEÂë¬àA¼xƒaÂní ­I‘ Å&ʼnx¢pñ0 +·ˆ·R¸E¼×(½Î(=„½B+âÅP(èÙXSÿ3Ÿáð¡MjØõÙ•2;ÔrË„vBJr𬶬«ìt¦$Ñfó?"üØ£ +Ä'|’–„›š$ÜÔ0+{¹"›•…›ÚËåp­1WoLxc¢“B…¡7®Œa "CY}©/õ¥¾/X'oL°NÞ„:F · ¬"§­OÚúXX›”yä ëÉ<òı%f¹ŽÔ +‚ª>ª¢J¨\;LÇÈÇÈŒ‘%Î>Ž-{x¨Ée‡Ñнw¢|éFÅþ ‡(_DŒQ¾lQN„å‹:*6+Ê—~c7öàÆ肃±h´KHÑ …2ö@ƒXK b-í׺4Zqi-yÙ4ÈÆZÚõPÕç󡊧?4Ñ¥µ¤¥+â>4ˆÇCzv.Ùñ>ˆg«‘¢Ãu²y!ÀWá3Z:‘×ÖÉŸá€F^ƒð`œ'FMä'K#eú4" ΉºåÃÅv«W1!Ê„‰¶ÁÌŠdÄ-Bžˆ'Àò ˜—ð ‘]'øCÊZÜ÷ Ÿx0¶y¯W˜Ç­³’p€uR ) J<ð@â~­ŸO÷>“×€ sàR +YCM ±Æ@Xrž.ý8—÷Øô>Ãaƒ³@¼-ñvƒ†·¢Å"ž +¡ñRœˆ—)£‡EÐ#á,O¥p‹x_‘jx—ÌR#’O߉A¨ô@&EØŒ°îf¹eØŽ|†ƒ£ÒÑ̇1àè˜G‚!¬lxiÂM ‡›nn.~¹À—K£[†Þ¸Z†öÉÛkìÓ˜ÔpkPaè°1‰4&5œ¹†3.!Ȱ„ #%‰È5LûX`. AfÈAf†Þ£¦¾> GËÕrµ\ŸÑ‚uòFǨᇎQßáÐÐD 8¶ÄHz“HBJæ‘AJæ‘7Ǧ­Ïg8¤-ËõpôÌ#ë o¾•kåZ¹8@¸áHåYâÜé“;}T®FoØTÃH$€0c{¨Ég8ŒÔ‘áÀ?5¹ŒTG…u©£Ìºì‘ú-uÙŸáО&ˆ¨ïDù’¶>ˆˆM5Ex*u£b—V­Ëfä‰boòe‹rŸÑ²@ &нE¹°å4.:ØÇ ÝØíQÐÖUaèÏpÀqV§ã”É ÜÔ°‡„44 U‚l–m¾Že¤ÙhÙˆ”* ÍØÅB#Îñè´LÍŸáÀÊ>HçÓ"H «-1fI8°NÖ¤ÈÅè³ÕŽ-qa‘;},›jªežÊˆQ-h¤Q¾@:-X'2I˜’6òZ8>àË騑W&¨˜’yäô…È5üêë¡dù3 ”Tý]¬„š\RÞi—?Ã!Ò‰X ‘N$„/ à”7ÉÇ)oÍ&óÈš™–"_Çb >ìA's >£ÅE~‹>±>£…q²@8&YÅ”|†Ã÷uFµH' •B!»½D2+’?óU\¢I‘çÎcÑž¤ON‚qÊ$2I ^|]c”*>j@,i·’´X­RÖ9‚}qØÎë ŸÊQ aNØ­ +o Î…tsq¸YÈ„]‹ à‘@–LÓ—ð(Íʃ%4׋§žÀ÷¸õ’iF€§ +C#ÖÓ%²D摲Š)I”j¤xëºsU$˜Š%‰Á©² ‘•„Œ°l—`UÕ-ÈH¢Ùlf¡fãÁ­ +t +8«—§€óú—•gÃh%˜/_ÖÕ³T Yu qh¯ñÀáN!%èœ FIfY DúäÏp8±0·ÌJ¢0™´Ç<¬:6^?¿„ƒ†7p“y|V .n.,juJc‚ð¨t0¨O +íe2â¢E‹RVÊtXhá-H*:û\®E_§ ,ÁâÁåPÝÂÔS« ø_BeÂxÙG°â œÖ‘k¨J$cM¹†MkÔ1j,K´‰ Ù a¢ÔL2}A!¤YÁBgž@ÞÄ„ÔC‹°Ièô]ˆ*âØU,‹þ— +ÈÂKxV.8™GÞ} |kå2ê5I,P÷1²Ä«„2E€Ä5¹h& +õDi™YWŒÊÈuUx£ÍD±¸¹up”/¢@Ú ò ØÏp= ‹]#ž@(¿4Úa@¼„‡\ÚÊ"e×ÏpX+ Ö)Ävk$3y$` Ô°0ôƒ$8[û±ÝúºÉ‚†;àÆC€¢(gv0ëåATßšð(Šmq4åT…ðd°óÐúKá3B8ÓÁÁ +!Ö±”8£ 6|†C‹øÄZ‘ZÀxXß& ¨£þ ‡,uSÙPF«á(0(A#Äg8 1 ðV•£Í ¨R«æ3&ºÐxð(a‚‡†û Oðg8¨AÃ$S>-AˆG? pÖɰ +¸€àë3.‘D»¾~£ddð§•ù`rSBq_Â{<ؤs)Å·yxôà׋›0—Ç­[&'BÊ)tÇ•*o öÀXW–‘àÏp€Q[J%\²Âó=‰AokLåzg0NLJù‚†ù4دÆç3$˶td™GNXY +ôJƒ>xå…€÷Q Ô<áUq¬¨"á1#†éTY ŽàA lZsð΋A6n,Eìc¢–Oë—Ùµá |Ÿ‘é?"+ ?Ã4 @B“Žð?(Xé`…±”uå¼4üç§[ +È?b‰Õ,_x d'’v(ÀâƒõæSS^Ðð—"èVëÙMᆊKp(R[W,e]?Ã%)FÒo>U´"i‡Œ 枨$TITAŽ9ef@ #0  ˆÄR±TSÄà„j:\:>(•£±Xã( £0!£Œ1F!dfjhœÀR|‘›xÔ÷Ô•l”™¨Á³X#u„'h€vŠ{ ›¼éi½°åOvZ¿Xmr/³V—øYÝéÖçP’€C³pžíówr̈;öéMz`÷ÙÐ%•‚ВתMÿ‘Çf„äÚ`ƒ AOA)[1*çô¦“‘7#4Ë3ràÄßæ‰Â$©%ˆ‘е]ÍSàHX¯,í[z”èÞ1RÀ˜—v&{ùð*pÜ?î·Å˜©6å3y³ËñÉ-̹ù ô}²“Âü”Í&áÉ{°«¹Mýq9(X$x ß H7ëž Alœ,ƒðܰw´àø}Õ|¶þ.F÷‘¬Sý>þ gî«Ûº4 Œ‹ovéòáU)Hf‚ ÆJZ]!¸S^÷½Œ&˜9ŠŽ¬)Û®Ïô)Œ׫"©häD‰'ËÍEœ½$ºƒCªòœº$«Bô‘0´xôß­jƒ|Õ[ ó.¤Äæ39'iž:n´ðÑL«•€™¼ž^›$yƒ;ãïô@ŠvF›ØxÑšß`Är‚Ù`LÝóaœ$cgƒ¿Âbo¢Q~}/´ph6XΈ +·H éÓ„½™ß¾áø«Hþø ¦oAØà´!Šv¥•O-Ï?' $ó ºÛ5Ëk/±1N/þló}6XRr¾Á©&7Rt'c]Õ7¾Ù¼'–ÂCÉ×tÆ~j¾aƒ[Ûñ +Ù‘V8iÔÖ+¿‚9–‘Íä …u$#•?6£‰:øm˜BTõùñYù)íŒÌ~ÿdN(e] gøµ‚òfÏSˆÉPŽÅ¾wÓ¿hÎäÛTåñí!g^àB®œÙ²²Ö€Ñ  Dè¬cåP~›½.Ý€hùD9m‰ ¥e^7ü +[@òa6¢äûŒ„Ϲ +Jõf[ûQdIQ±þ°¼äs±Jd¾èã´DEb)óù:v0Ú¶©Ç 88$MUGúåÌåWØÿü>WêÚiãŸ í› ¾Ï¯láèÏæôÞ‹V*GÕ™ nb®_M 4’ÑX1_ažì—,4RϾäC΢î€q¾ÏØ­%PƒÍAÚUÉŠWRA´€¨SU|­"Dåz]ÆÎ/ûš„;œ5Í!Äñú)«ÆÂ,4ÁÔ¶gë#À¿«©d¼\ŠkG$²Sýap ˆ£¸ŒˆD­0i'DÁE.Γ;É1¥¡C n+Ý,€Ó‡õeˆb¢ØTÁä›Gà Ôü±vqgêê‹çi¥ƒðÀ—L<,ð=£uÖõÀ’±ËÈ×öp˜Dþ?Òx¡b#ën¶|8Øç–)€ÅçC=†¹„ )ÉÀUàºÃ°&§ ªikEz«3Ü«A€.V‘x­ÆkKpÈQ,›H6gŸÊ?J `x€ÅE «šÔ›=š)±™)^B˜C)žBè¬W¤Î½NÔŠ è¦÷5wpDy²€ÓŽüÚÅÂЂ×Ñ5 yš@¦^Gi —X|ØK²Ëªéo9ôpk$åb¢ +Ú +v.TS)O;Þ„™1Ôe1uØ,ÈgÈÄdŧ.±vxÕM âvâÆ8,<wŸo¨o=Š4Z×òî¨8ºÊåÞñ,\e,ó,¼%~ž &É3œNk]§²Ž~Ëp„¦?°v §ÈXœ:Qa”Wõ —Ù%j µ—t~ëã>î´I¼¡ý[ªvÓo.è2“'M¿É P"ãtõeÊÀ™ ÊOË–µ„竲6vµ®çöoÆ”B ²Ò¥ÁÕ§õ7éª]©HN9¸ Ôz.^ÞŒˆcðÛáµtl”a8î½»â;àcG¯™…ë"宑9¾v^§bá`³\Œ)>f·Ñ'6áå½É;.‰ÿ.öz® KÀ«b2vEpïÅŒqRÊé\<ƒ+zæP„ޤ) 8ƒ2ÕQ$ógl„’*z½Ú Ð(Π½·~ üi¯_þÃÒU¥o?a÷ëA8ÃVuÓúq’#. Q “V¥mÅêï÷‹{Ê–YÜ0[éÌfÂáZ¹³5éá… þN7¦n¸„¤C +ìvYœÔ#à3Јà1ü¤ª`Awˆ¶p±QèòÙ] UÔÕÓùÊ  ‡Hƒ#g"WbjZ[që¸èƒVMãsªÒ11ᬨà¿Îb·þшR\Š \'ŸÔk9~!týŠ›\u¥¯•]îÿ|;앾ϊÞR£µcHÄ•M=Й˜ãANX™uùó[òRsH_±FaH:TëíôSÙXeEúæs²Å<_ 1yïKß[GTÃ}aPÔò’¾«‘E£Æ2ÕÆVå×€S»=_ÔUïgÕHˆÞ!tK´-ðdüø™hÓòªs8´å¯vÿâbq EÀ(ŸCX½#L¾3æŽM©`² †/îg#[1©Ô!L6ûIjÖâÏ“»_¦Ï-Ñd WÉšøÉlnæJ#/À‡ýϬñGU{9IîÅê_´éš˜Û“íãtÅ :B4êÆ‚Éö®Pmu‚"xË4™üµI*”uyoœÚr"A"ËŒÙav°ñb–(¯ò%cG¬UewÁI´b  TØ’ ¦b’¶qÏt»°X8Oêž•à úiÒ° »‘…¼íÄ XÑš†Uî¥0C^²J¾Ò.„~+Ù•o urtãâ22¢¥†ÄpÜ(ak&ÿL ’¦= ]ADàÝ—dŒÁß­D9ÇÑ~m|ÌŒ™Í‰Zšä, ´J"º­Ô&oUhI?9…úé"*fž¡¢£’m2Né.é!5R‚n…_¤=ì;j8 ìš9&¯»ÈH¤¥+¸’2ÎØ{zîh)ú™æ ¶+p¢ýÙOç"WTa÷+–Býp}«1Š‘'ÏzÚã¾_y}Ÿ–TpqTƒïäÑõÝjzØ›$Täú¡B¿­>Š`}}P<9ú*|¹k½.lVŽ€Ùëkâ(š Lå<º¾ó£ñåãS7P_›liº\ßå²; ÚkÚýíú&Äj =€áýAW#wzfZĆùkð1EXí¢Õ½ß]JpH&t6Ê1Ó]˜éŸ±Í:8Ê +_=Õn˜ VE^pp̘ƒoxƒ82¡ƒƒÚ‘*ÁÜc‹Ikc¤µy½Õ¯•vvµjwä,8 +°î2{¹o¯r\[ÙV2 +U¬î—”MT”’84KÐl 3Î…ð7¥Ëì¢%ði݉›*Àâ!¤ãRÙW¾C„|r(8Zzæñ#›ócV„KxU Å‡Œ„spæËPÒµ¬‰âýaÓ†”.æw4rL{wt‘ø3Ë„}{»ÎÕS4É4DÍåªøÏ|þnƒ‹¸ƒ!YU¼õkãŸù%aI%ÐæÖ4eG<甘gÇ8õ—‹b§¢|ï}ø‹£Õ9\2×7c¡­¹¢3ä}Þ¡IP/`Ùñ-7e ÷ÑÅ û§âá¸þ/.KÊç<áì)ã›d‘_i•ЂÐÕUÄØ"vÿïâÖQù«k ÁQïˆøW?ðèïðʳ‡ªQPË$˜¸œ&Ûpò£KéøôeE”Í¶È V +…ü1U+xZÆ"À}Ím¾í5®†ô¸”NL¼t”\—ên„Îÿ“ºAõ )¦Èûű{Û _˜†f1Tв’ò6—Wq‡ü¶»5a½fC¯r¤Çhf8N¨y´aQUTeÚá¡<9T+lŽo½gPÁ•o +‹­»L rõÒ iømЬ»´(¾_„aèKic>¥A—’ aYGVÌS7ÂWVî]|ý2üŸ£¸5üöúÁhVö¬PëvGš—†è|8/(äE[3 +dõB;2l¯½¥8µ÷EYh˜@Ó y”z,âØ„‘ü¢Ú×2j5HEs! Äùcœ`sdŸÁ´b™}^ã&çnÀ«êXX–ôŒ|¢ ŒškåQ8F n…ܘ@͇gCN:oTăë{=ª 5U/AÔ”4<‚À»cø% Lô{£­AØ¥ŽÆAѲ1Æx„‹_p|è7V‘SÁ/†• °ÍX2¤é½¬ï ¹ÆÏèö3âfå2ÿ—D9 ‡ahê@Øq¢yQê¾!ò +I/h#k Š[¹,[ü-Pá#Â&+´pr鋎6ÅÉîθ¯¢nA¶^^e ù„õ[=`FVû€Ò |qò»ˆ=À#NµëÉý[À¤%M´GƒãnT,E­»ˆ¶Ëäá0"Ãð‚…x®2ÞùˆR/\Cš cjö츰/zé8´þ@“‘ËJZõjNbÒŒÚaœþHî +š¤&ûn´Ò¼˜DâN}ñc¥Ž¢»P04Æ$ŸÔJíkkŒ*[É„.\ +ÞE4FJn Wxz&UB÷Cãà>y¢®©rìX.—-^a«Rúp$öT$áÜY›Ó w@hÖA@¾t–Œí/ŠøNk(dí¬q.>“ÆâD˜Ù—~ÖY"¼Ãd˜#Éšˆ-‰@‚‚ßDø±E†m8EŠä´MÈû<%¸ ÎÍyIÃ, U>Ž +z:¹ƒìÒš4"]‹Ëc³MòT¬$Ê œ´OµÀ'ĪY%)ti*<^‘KŠ ÿsÔ8‚J¤Ô¥¥Hӧ䨢¨Dé9^P]ûÞ2ae9׃¸òŸÒ5QQ¾ „¹•C,-QÐ$ÈÄP!†.û‘P§b¾÷©„aÖg–º”VÔo2‹“Øx©õc;EšÝ!Ôî.8ò`ÈåvÔü÷FÛ¬{ÃýûH9Ý¥ 蓺:|qjÎÒ·V´ÚÃN¿0>G·ý5+8Ù¿´1TÀÄìs4q‡eXê¥[Ûº%uüå:~ÎŒ(FÆ0Ã,v.ÛÆ±pª¨i ÷ã‡H ´±o$¾XŽŽ#4Ê~g''µ - ÙYFT#£fÛªmN¸‚-ˆŠmÝôíK¸rÐõáR?H|„—Á%‘0+¸¥Í%lmöÅËÀª¶în— FÆëEÉ ô 'w‹+29 ‚AhÌ ¯l¨zÝaQ½ŒÏ9úDääkLSƒUõ*Ði}`¦‡8½äwú˜èRucùáà ªóèæ²—Ÿ +YvŽt öw#6µ9lÝä  ó.eõ³< +KÂT—Êí¢ +ÄÊn MR¥7š’Äõ‰Möïpîsô˜àlƒ\`"Ã$gö ˆe"pZ4ÒAê,„h«h4Z…"¸Z´9wôu 6“käÜþ; =Æ5Lîn¦ 3Ú2j[u&w’H¾Ã+˜³Á©r„sŒ9ˆ)ô¡ˆ8gì\º[E‘â“ÁYNZ¸uŸHëæ¾:¨ÀN¬aF˜õxIsÜæ=A@yÏ“+OœeyL+P*/6Í œ‹×‹%<³%ÞcL”€HTÏï[?¬ é̸Í{ +¬æýò(ŸÏ¤zуzO*¤%B[‹Y0w´ŠÖñÙŽÁZÝ2ŠÙÁÈY"ëDÉEÍ¡¿îˆ] +e&¨¯z¹ôሠiîg”{¢~Øb/ö Ù¬Ž;Æ9³>!1åj´¤¥¥& +\°+f”Ú¬óÄ +àÅy\$LoU¤f‡ï嵚áK€Tq/?5Äžs°q±õ–Àù-0ôB÷ׂ#r4êjëÆ¶d ¸™è©¿J7:<„Š·q [*Üè©m¦|À+8 Ÿª·b™:±ûÃA´‡ÎŽdó๢ÕFÑŠ +væuZ3[ñxH(ËÃw*ÿ'R»ï±„M‡šUfº$œÇrñ ¼ÇÏ/DÑ^f©ó“Âc˜Í½’f‰fì4zæ…¬4"CÊsª¦ÇdR»îR”k•-!áOÕŽêž/ +--é1ˆÊ„gÞçø®†¤Z³$»k|ëb@ÍV¤O™þ‘º#yÒ9~Höj…{Rã;-郎8b–pŒPÂi¥h½õU–(YãìŒgçy@¾ÐòÉt#ˆÆcˆ‡"3äU!ˆ ðii¾ŽJ!–Ÿ ‘wpE(×ûI&F¦z$W§s‚¥ºw 8ˆCHê‰óÄí^þ†,õ‰–|u9Á[êÍß’kð 'Fbù' è›Š˜hÐË h+Y4œö@l_oü@@,/¥¹É[´Øû¶Æf£|#ÜÏù“ˆ’7cuíœV° '!sŸêïr"¼7Vv-Qq—3êKZÓ@@|&†Û£{W½­ãªÉrEºƒDXêÆ*0w+Òü†”úRÙÇá@‰-Áiµké°y«f‚êóÔüüM³„¼'¨ :‡ùqê[ÌÝ+!â¢à[_œ_`Õ@Þ.(#Ί'`ªÖb5,ÜBEƒ§¦D]ssøËσ!BàJbðbAI7ÚD¥ì`Gòßu¡ñ“c¶eœ1¤Í“nM‘ôrËÃß]Œ—³ +¥‘è®Y'wUÕâ‰Â“Ó4)7PÞåjUÿp•ɤ{3Q:•µ94Ý-¼ê,v«+aÞ—;]q± lÁ+¾|ƒé7{dN#¾ q™ªéÉÿ{¥l@®cS]ÊpÝmè–7J…JI#pàý…bÅ\äç’”¦z¨î+‚;‡œ¼^Û·íï9•ÒroyB=/gÿ—¨IäçÖhï}0~¥S± :*Ùö Œ®jïsï§¡O}ŒšüEƒ—ÐäŠp¹t/GR«ÌÇRÄZ~çtÙ¸Ò\9=<Ÿ~ÞëèEmCªÒÂHԜѓi¨Kç¢7 iûŽðÂ|°‚fýkÔÕ…ŒÕÑçt]¼Ðú K~mRåZ¶–ˆºx8]Xjâ/ü=à¨áƒ½¦ÄÜFÎÍbÅ‚XfN?ÞÍîxí­}$…«BKðÐÌh”ÑÁP¡ƒµ6¤¯:nóÀûƒ@vá’¤¢²7%$Ю•!.>®JÉeѼ1Kæ’¨@œËYM}Ù|¦#Ƭ–^–ä\ ì<á‰hBy>øwÿ‘þ¦[Ò #ymq×玨©òµ¤ µÌu#þ™y&IÙÁçhԼо‡áÇa +‹É-»o ¨  ¢€CϬ€­&­- cæn?õèÇâ*+Êî¾ÿKW럦³}¡·ÃNI->è„’ÄÓ+¬‡5 +R§žnŽxügÛð­¤0;ÖÅžIB‹6ç +]lèFÔ6MÊ¢AA²º€7 (÷æHvŒîÁQ}h©~裥j f¿Äžl$g4BT^P$æBìÌ1o‘˜8ÔÉ¡Ý5gÐf<‹Ð†~t•ÖebI$Þ ±Ç¢“ÖBWJ&ykkª¶4öµç*ú„˜DSê#[â½}3—h§£~V¸¯Q@X_&‚uãÅå.æö­r„~0—°Ë!A€ø¢!‘sè ®Û'ø7à¬ð×.Þ"1D$6¶ºdXòo6$9…~êP¸ h¸p $^ýÅrš1Å«áÃ÷¤ñ0­ ¾‚Ù8€Ï\Ü?·;‹‹‹™ò™žöHàĽ˜û忍}0EŒ¤ >9H®I;ýåÖ¡ðž6h;·Õ@af‘Ágè…XíOúÒ¥ZíÍ®‡sQ¸Ã U(—Å…êYö»|öç­Ý1Žeòå)òzSÆðåÝHÀd2Äå”ÿf²„`g;lDLòÀ$sry|Ü6yý·<ôÁ_”€BÓ;e"Nr¯D„È"Ëe€c̨$ê_Ac×ÚW¿Á¹!9­ˆ2– wI«¥pëâ8WR>åÐîäÐæai)zJëÚï²"*¶„åA,À­}¾ o`¥f·*ºYÿ‚ DºpÀgº:-àj}þNÒx€uL£oûI©è¼ 3ÍP?9Dã9‰e2Ûµ Y§ jyŸlƒ‚”ªYÕBâ+£E’¬6‡§4û½K§¸ÂÊOXßæÔ†ê«?XùÙ©*ŸoyçÍ€œ’–“c-UåÊWc2g+«¼Æ{iÔ…@å# É©²*~‘´¸ø"—ó)—Lª¬‘}˹©_0»™¾Ö!Tã8p&‹‘å­lhƒ&…ÄÂÓHÓ½NhzŸÇ§‡Ù•Ã> {4s:w3Rxnöà\ŸJÎò©>±9È-‡}qÓ1‰8~Þ“o[æ%Sêӓᱩ˜>xŠj^X,§a«’P¤™W䯿,× ×)qœ‘èøñ2ÏA LŽd» äÊRwú3=Î.y¡Ø\:檽†»5g„Q·ûÍŠx‡£]’¢#jßüˆœ\jÂÏ€¸æ²ßCd +L%rg¢Í›\kßq5IÍéL¨ø0ñ¨PAjOF¬,)¦>C òZ•9 ÚAÀx¤[°¯sÕ^üU¦.I.SyŸkU¨tÝÖè /"JY$k¶ ¬Žº•eû7í£ã'¶õEñDª^M‰pááR-%ž›·)k|§—Èå–¿bÒø·¾K0¤‹¨lÉXx1õæèË»$?Çõ¡þÌGÕiÃúÄ–XoZYL%7Z r {ôbô`Édã§|N¹Ljâÿ‚hEî*t¦N·£9Í¿ï}Â3õOÚÞÐlT÷IKå&5ß“ûú˜+ƒëwG²&ľ›8SKk÷êœý¤ •±Æ‰ÏÀí—Ϻðœr|vNU:ކ„Ãïú° ÀF¿ öpݫϭ_ËV/J¿ãu.š´FÏBˆ +4:X4œ]§ï`½ïê$R,&Æ^b‡Êê¸AJŽÈ‡­):å„ïÀ${씀ݠƒ桽Y礳#öW´ãÏ¥Ú€ûGgNˆÎH>Œ¢–iòU+ßíŽ6’„«hŠz”ÊTkx1þá¢uªôè OÆ›SîbÖí-šÅ|[ŠäÒOÈŠÀñ{Û°SÑç^?}Î5µü²Âä…6yîë[Ø–NÒ´ñ¶ÙŒ}ËôdøúO6Åz>”Á‚W”·öÞ‚¹20{d])GÈ>ûÒaÙ8^¢C\˜U²/0ÌÌ +l%@" ¥ã÷nke„–´¬6´4š—àzÿÔú$ß Í‚ëÁ©Ô!¨jÿÛýI¡~$ÔpŸü„§?%ã܎Ѽ`»ƒz1}¾•Ä-ža0Vp®k>­Y ¨•ï„„z= D“²E#ÍëVšRécZáEi›(bz˜w@·£WUô5RÍCÔ´÷*ö ôuôl{‹*)Å9”ò’ÙBy¦…¥›lóë[Q5÷ , ì#¹\éà±[$1·ìcÕAÕâÿnܸñA8èv"“aÁ×q +JjDj†FÓè»±.•ªÍ%Žè–õXÌÚTä)àTŒo Ä·”1éÓ„bGñ.NFÕé~Œz£ùv¬?ûQgO 9ãÚ0gòÌÓS%ðÊ ·}Ò»f=‡@…YDâ€êÞÁ:ýMN›"p*·PʪŸøÂb¼ +ˆ¬6V€£è»ÑÔ ½s—”TküI%%¼´zÝñþ´Zçþ HvQD-äÝ(dHú\Pìê“Ô¤Õ9¿é•¦Š6ø‹©š)èhN]hé¨1êQDñôO¡E:ç•ÿf§ÊÞ'ò÷3rÎÚ1Œ_{ "i™èÄ”¿ž,B0©ÜÖÓ;ÿ,êΕ»íéÂá¬ºŽ¾‹mò¨w)éœ8LàIÖ 8;lGWº«}*ÈálíR²¹"Z%ö5b ‹7½ìÔ©DöÇ:0!H¤kn“²Î…8ðiØá|ÖT{ûȉx)Ô3ãOšÔ´˜Æ{JÛˆÚ$g#áué1§¶àUM®mOŸlSè—Ób­me×ý Gº½þá¬ê5…[P¯¨˜è uaA™ÄùÆþD©Àâð?«Àÿ v%›c‰¨PÈF(¢6¼ZPO³AªXûEåé  Ýˆÿ«¸¡oÄœÆça¡€PÑá9ða=ð‚ØWg +õKp¾ªxâ„%& ,¨CÃî¼J˜«Y>OçØÏH*uKW˜¾›T'>Iiº³Ý#%ï?·,稚1m—Á¨ñÇÍ·{tžR°”0¹ä¦ÉÒ8eˆgMƼ%vâ]¤tÀ­ß™é]—Ét8ŽR°±ÆbâZÖÜä þŠöpÕb:»Ì?ЏÃL3ê°j¤¬Ó˜v„s³>ga@‹ ‚íYº•áÑ«ø‚ãäšœÑÈs9 ¢tyAc.¿î8¾î ¡Ogïr‰e出!/#´Z-N•ÙéíµÑìIÉI–ÂágT¬Eø5$äsÀ +bx (ó§§ 9ê*!/¶j);LS÷"[kí“ë:œÒã=÷ †WÀù$–SWø|ÊÚèbŸ ݬ çvðq´@–5»ã[ÿ߬Wk2ŒJŒ?8T0Û”e.¤Z!*N?2e×,ŽgÇÀgÊÿ‚Žf„J´6ÍŽ¿.…ÝÆÓ Ô.hi±_äi`-hDÑ #ú‡¬Î‘˜_ªv{îwj68£%ðe&‚–˜‡ÖÛYÛÎV´ÛRÜu;«Y·³æçßFBDЧ\·_ç‡_¿=óìöú’á%Ƨ“a¢Ñƒ¼ÉYj”»Í#ÍÐΩݽ"#ÖV•n°ŸOVÖobñŒ‘Ê1*µõï]vT€V¥õ¥)[c"ÕÌ@²Å™¶JŒ3¶ÎDÙç) QÚÅ|3ÄyL1–é'µÔT‘t¿;0ÃSö3¡…S~•û(}¸4ûhœ˜ßdŸâœØ+$óÚRµ¦Ð/W_6lpçMø£¨Î+ëܼ†Úªu”3ô EÓÃùƒ ãézwYRŠU„ö±Ÿ•ÉÀCÑ0¦ê4¤‡¹µÐæQ†úWò‡¤~NSõàÝ.üK|–áe‘Zåž—ð³~¿ƒ÷ôPc…@Ùf¿ß@'0ú ¥ç@H!0ú7‹™ÿ +ÒÛ!¥I„ðþ^FCìnfG;×ðù±D†¿o#¦EâheEv@œ[~zgïÙï Ò?Vc\èùávÆiÁ'›ôLÚEܱ[“òÊ”ÀülI»ƒ˜ô +þœ:[L/ð3h_(Òû©Ô#L%dGDOtx5ƈ[ô^©ð!õló$Ø›¥FƒørpHÓKcLyܤ(Ygþ¥?‹È¼ VÑŸEÂî-Ÿ.º1̰ê ÅÁîE¢c ºúW0\g“ öJ&‰ek<‘•šJÑW^ †™& +(Ï$j£‡C ”+ÕS‡Fâº?ˆ·~î064 :{¤"ÇU’›9MÇì2’ìþx™|4Å:õµW?üýUîÓÀ9 ¥lšÛ‚ë߸†N•U3T=ޤhg¿ µ…‚—•a%܉TˆÑÃe”›úŠÍëÿ'œ§½ MWPÕð$›Ž ž-;!³Æ5Î fKü«›™’}Â}îÔýHøyέo&ÄZ­­CNý?êøaåYvìkt4ô–(§©é¼p8( );>Ö ¡›É¦þ]ÌÜ2ÙÜâ&ˆƒ¸üo¶f+¾¨p8ÎË© 4î˵:€‚÷”ó¤‘iz ½‡Ñ +™ë±û”vSÔ¥‚¿Rì¦ûE$D¸Üˆ î=IØ^:躷q×°6°}Þä*¶·é&iÀ ¼Òz¬ð׵ɕLÃbŒioMsЀÚlmº“*ë¾5¦Fw¦Éè»ÚÆ g€6í‡ÃGrª²Uú¡Mkšo#hS;Ü$³”ÉÈQÏ ð󳜥(A¦>mµ7TgrYähk»s•vøñŒ“ `ï ‰ÝQ)Ñv,ð²ááØR¤UGï¬{|o>W©ï;f-=^pñêþŒ#©ý”:zˆLéQaƒkJÍ4ŠÙ ú°Ë‹oBÜ +tÞà=j^%Õ{"{_ ±#ñn7×Îá@ÙL`Å…šËŸ–jäйvŒC A3œåaq@Îo¶XøùøúÐ+cƒ9qq P¡r™“1Xšœý®^ÓÄÈOТ Vl`¸ô¿?‚~®¾Ó&üˆ¢w¯LmyhJ™G§/rôuàÒ¢¾kxhCíY+oÌ_ï­{å |Ë5¨V†˜ãÞÀ›¯Ðt?½ù¤ù‰ifY¬wTžø0éoÉñ7Dë<’õ”b$zE”©j5¼Dké…“*|êîÓÄáWѾc Ë‹™–c·”=ËÚ‹ÊéQÙ Àê&G@Î7\¶o{M9ö€˯#ü)æäpeÅî„\ÀÞ]j§Þ¼|âW…ɽ/Ag¦»ñ¯\žöÀš@ñE•wÍBçoàç+.¸Žñ +i²Ð…¿Ù&⬖:ì^¿ˆV.aÀþ707øñÃ@þÒ'°‰ìi†ê­ÄJ{ØÁ­¡”w7&·¦ï°+'%ÝÞÆÈ4{ú.¼ ]íÀˆ¬?âéÐDnÝú¹‰^ ›Éÿ”Iµb)ú‹Ù‹ƒôÌ…œR!2ŽëŸXmaÝ͸_Bç#1-f žR¯dŠ«.FŠR„‹ò~‹½bEþ«‰/„¦|;ºJôO¦ŠÌU:©cpx¾èFø#+UyÓRr~‚=ß æmy4»\;xnJPã”T¹"úuwT]ŽF‡;þ̰œ.L¢åð×UKïÅyXMƒ-ú­J²­Ð›X„«Z¶ð“k³0ây¡YñZÇ)±¥Š%­HYž£ý?Îåòa¸êòȦd›‰-nsôAbzÉ_äÛV>”:±ÓðzS¢¦ c¤ ‡_rtúH$“~V6l¢’d„«Sîïeú€ÓjÎøiX[' rODx£1׿)/þ±â1þqŽÁý¬±\lÜcp^BÀÛ¾Øfí¼íÛ¨zùp€4¡9ý¸ó¾ü`b±åoãàÏÝù¹0 LâþE‘‡ÌP7çpùÊíÂû3V”Þnñ”3"üÚ%Zy2f¢tz•=ŠYq†úp2_‹rš’/A€´Pëj§\ÀR·ˆE¢*½z*ÐH>ÌôvÜXÂYý`Þ¬Iè©xîö²~s’¯xž¡çÊÌÜÇ&g¸• !óßÃî7ÕétˆXa!a¹†ä„_zÆwzqmKøí`Œ—÷öÿ•›عfÕÏQÍ©V ܘ ðœÞÔ?tbᢊHï2ñèáî.Óü?Wׯ)×Oö£‘Al¥Cïûmϧ´P…ô†ÿÀqQÀ)üZY$&Ú"ÃÑGSº^.É~¿gÒuŽ wõ4} AÕ³)å±WkÕfàJ:d#Ôìæ4=ÓŸ›­ok2¡ ·yMT07-nâ½Ù”‚¿ûRÑñáÀ€ÇW»îdþÀ< qÆ‹P^Ö%hx«;#çTÁmôRã `·6¤ï¢}dsA·|¾ ú¤U€è*G²ª5ɘF)гŽûË6H»_${¯¿™ÄçOÒ­ýìªÎⱓmò +iQK¨Íó †¸úmŒàx\+\ZvôJv { ;‹?ÓÓncÚΦÕ’lÄ3óƒWzÝd;ñ‰âÐ:=™PhiWk/^&óMY+pÎ4hK¯öyX†.Q€‡ñ,˜ë! ¤#ífc7S1µ\ï3*ñÅ ºCŒ,i#²l+¯Ñ¨Yy8ýѦüÙ`>Ô(ûÌ— „Å#[þ1ÐòºûÙ…5rà Ñ}–þÁ顺f¸€7/Ð¥p æÀä²ZýÖ¤X„í¤ß”¤‹fqëÿ¼ò éÐì¯eî“ðºß'Xõ“Ò 5õK`«™þw±f»°Û2ŽÜÏ…^` £ìrœð_×)(ƒ€Å4 MLWºäZ:©6…UàÚ +B–-a×öÇÿi†IóqþÄš0¥nm¹¹!ÅmïúZp£–&<³>=½ *yª¾€vÅÁ]½ÆöÜGž’‡;þFžQ´#5æŸm +…¬ÆŒó?&^}õxÀ:S¼<àÚ9Tä§U÷$« U» à¬¨èÓ³a0…þÆl%gt_ÞæåÛ˜f½ž”«ÛBÈÈ™±2êökpe§-+qË kâ¢o~åíàŸì)÷‡šðñž $WÜΨ²6Ýwèý8ô˜zE…_|P O£Á•è%ï\QÂEM‚ÂêŠcå™FÚf±ÉÊb·c@Ö7˜-]kì‹çæ¨ ©²~9Uà®p(©¨ŠéQüÛ;Ýv–˜ðØu2|›ˆ¶È5ÿŒDE67(Rúíú¯;QvVžˆLvUODÇ`vñæ§Rèë‚4Ñ”ÆIægÒ!Üz©P~&y fÊœ™ËFä+|ò]%Rvù.±»³{léîHn(a([0±á5¬1ï°‡­ÞYÆÊÕ“É?ݹ”íÆbí&»ùÈú•(˜×ç²Q:,ËQ¸f`ÃRe~ú§¼ƒÝÆeHÈç6W¢7>fDo¼™Áæ„S]H7AÌMÇiæÝ¦Yá[ AE +-„=Õ·' ¥X=Š…¬­á·à ʈì'ù_”Ÿª +¥(ï3T[èÕ¡!ߨn »çd'zˆ4ÞGx@ã×}fÒó„Hwµ„³t²…ëý1¼–XN +й‡ ëêOv¶ÍüÀ…²e*uËø¶Ã! +ÁiÕ‚ð]ózEyPWb" ìà¤=z·ƒPìÜžˆ•@ÐÆ„­5˜º0#‘¸Ú›vs2ôኰHVªISuÒýl|cáeG€ 2‡2ùÉzäòÓ¸x7LʶC|âg[È9š­GÞe}sÂhÈYa6kc„‰3ÉJþNgXd¡s3…™2]ÈU¬ºˆòð+9jB½jëP\²ìºt0ŠIȸ¾ñ +Öè%"W®•~Æ/{oYøOç?·§ÇÑ|ßVäGÍg}+3råI˜K²­XáÒ´;(xjCÒ†WéBÛ¦ïÅÒá"b0l‹öf + +P‡Ã\ut".!ͨÅ(B¹Èó‡ ý`¬[Î` +wôd¡ 5B½à@’yˆ›ƒ(]p£½kæâ urZ-ÔáaÈãþ *Â}W¹~žoƒ¼ÏÝðSc,‘Ç'PÎxìúŒoFE—l›í¢äNUu=ïd¥¢c­‰ÄT(ju[[êþ¡v:3ÇBõµêœâ E*X.ÛÓ "TÌZ¨P`8¾$‰Vµ +Cê2#“Ñ{dwíBFA©‘Z{Êœ¢oFŸcÐ]Hœ._½t+(QçQŒ-í÷u‘dI q0ü” ”oo„<‚ž(ªý£Ô(#äÆ$.ï#ÃùŠ`NE¢ ŸyŒÖAg†!_Í+>¤üĽ‚ÀÍæˆŽ;E…IBh>%à Ba-Ö¢¡5êhzÑ­ÛrÃkBܼF,Œ³ÌUÉN‚šÎ,oÙþ–/ä-óH;*Äza´y…€}}"ç Šh”=/‡©ÔƒM²S€ãß<¤÷l¨Íƒ÷¤ARf¥ØnìO&\鿨!œb@5wI…wHãUcò*“ ñÝ=‰ÚE´§ºâL{ÐO +*i´´C!ÓüÒƒ`” +ƒbC²”HnŠ8…”@×»oJ]Õsíá…Ô««ã–JìHñ† ~´~á |{`†·›U«˜..£úýÛ7+˜D8¯E¦:[IýÅ 9ý%‰°¢èð×ÊY«%í8î{dvÔP!ÚäÈÅÄMŒŒÀ„”ò„Oé‡KsÐyhçe$ÌKI +iœaZ€uyÇ‹¦õù‘¤žYÉö?à2^Lœ™L¤†ò¬Ù#¥,µZRÈúmiZ’BÎMÔâ$ôÙ¯Q±`S4R™k¾ïd +½iІ ø + šý•HœiœV<µ©O…ƒ€ØE"€¬·¼”QSTYÖPæ2ÄùGßâ\ëŸ< ¬2‰¦S’Há¥@ãáê•AÀ¨ñ^‰ðŸŠ.A[hÆäj²VÖWiø´ãv‹]P³Hm«ªô`—„sYýÔcBÁËk·ß<ެš™EvÃm¼L T,žM/ò+ +½7™Ä¼ >ºV²äÚiyR*ô‰¶¯÷ùkXpN'¹ûŒ©G‘œ4d)”h‡.¸ÝÒÏãÉwÛyE2aVOFxÖe±<°aKN®cYŃdöŒAã1hÈpȰ6Â…€‚ÛScç|Ùt‰`ª±ÕT𣞙¬¢wƒðØÔP-Ü\½JMŠZ ˆm¦öìJ²ÐwwJ®›ð¸Á©`‹Èh­X’éºj¢‘?öÎÑf—P–g‚…†‡#rípOBÊPúò±‰"§W³îŒüüSÒRÐCÏhðߘà™ô³Ãâ ‹%0AÍ'·) {Êç¡ Ø7¬ÛQ)j ¨™ÁíD6VðzºÌâÛÞ%0À +;¯¦>aû@›=ï½FAŠÃàô‡Uâάäï)ÖwÊæ%Ÿ£¶`²•È‹Ç7¸•zîÆÒÝ ûÙõÀMk¸¶‰«Îˆsð2O°?3ü=»Ò2 $ùwM¸ÜRw÷¤ûÓд©VC¤àÔ~œ®z-唄wú'‚÷ç–ˆñÍH “HÂú_ò0‰lºÊch/>‰•4Œ•mšNÜz­ÄsÏøo(g6Sí)Å(®n·Î.%S7X®D[n?ê¡îs^4p“B|–¢»NyóBù8ª³ÇÉã9²J5xÞ)~þY ŠŸ¢”›·MKÊ~öhë•9: ¸gÜ=ãÿTþ`Ãm“³ÜÊ;z¬ÅM¬5Þä(¿ÉNjՔq+Uç‰JÇ@iB„ °ò+qd/ öþ~-ûõÃ+½5ryJ+sÁI¾±]RÊjÙÀF=1ßo|f¥ƒuŸÂ‹c0¼#;¢]Ç|‚­¼]Ù¢3ôO­l¡lΛ.L¯¹>Éœ®äåFX›!iˆ|d{ç`¿×„ÂÀªõª…¸Æ™‡úÐ)ªˆ Š¢£LÆSDe®†6 mþèñ2='Rª*©r­jÖÄŸI-aÀ9:œÊ@C§h$ÃXØ.p•Ä›ÔÖrðç¥Üü"ˆ¶Ó6çëA“i.ç:! éÌe‰^=_gRD"9Q»S%¶äÃO„+Hè90ãDE9‚™bôÿGkþŽr{ƒcÁ¨¸sÔY +endstream endobj 17 0 obj <>stream +š7ÆÄp™^ŒAT™&Á*íœw‘ŽUfª–I¤Z —zÞ’JAQà¸AÀ–*ͼÞщ)§DU´@’±» Š•]ŸñÎ>¾6­3ÖG ZïiÅøcLÙŒ=~Bªm9nz­·† 0Ú3[ãÇ€` ¢f|8œvMÜŒHëÎ~Û£ºQ áÍŽbƒr…@±BµÓ¸:Ú%в¬ÊC¯\³0›ÏðYj?b£EæXÔl”ÒEü'("»§tÿ®f—Ò@ 61ÑúÌFƒ$L´y ºO¨Ð5OØíANZúy[‘ÜŠ„®j P¾éƒŠ©Û»ö²?`Ì[ú”§ˆã<íŽFìt#Ú +Þ_LºÐCë¥NE|‘íã ^™Õ,'¢Š.~EDûg艆ÂèwÉŠÙ2¬öµ±÷—Í¿;ñÔò<ón§c|îÁyåý7¶xÌPðØÕ¨±ãðä”áóÉ61ƒ¤îk)Sz8Þ‹ª¡ïÝŒýŒà®iæ8YlÁ¢¯ä—…WÄH’sj"ÛŽ›YƒzíE)™„VÊ3ˆ^g½®³¢ÐU‹Ájƒª4÷ÇÁ±Iš©Ñåxí{jk}ò÷Á šmÅ%ræ2Ú ß­?ý$ ¨ûP@Ørã2ÑK±&-ñx¶Te†oï’åúÇ…?C {!»3 4Sm„u°F¢~ÐRÞ¬?8öiëTwã8¸‹ÏSU>íöô\†@"D$Ø–P@sò±"ÚŒH¢HÅåá,»eÍŠ®¤|V.™Q`€zÄžÓœ÷P?yV$Y·2H ó, µºèE_üŽ1=6~(O<›<±”¿ì“"‘Ë –àK2ÃëW]Ý7¤e§ª~KQaÕ’­½„²DÒa=‚…ašlCZº­¥ |Å>‚åJ#]©¡ &:é€ñ:|§<h©KÂbäŠ}åµa-Èp Ô àò>™@ p!ð9çÔ@g_%GøÄãÆßSN#iÂAŠÍÍØWÖ“T9®¬U‹ól lë3ÏjOëå¤KÓ†‚cŽgXÜô ©k/áóá˜eNG“ÌeÄrú¨nÇšŠHs!6õ,! ¤¶$%¸?ipH^Ð]­‘=¼UÙb:=ØœÅãZ¬Þ\Àl“͉L)…£+°ÿ;j(t^m¬ R8ñKð¹´9Ö©Á¥`èQf\áHÝ5éQyù„·x$å{<‹™Î¤3éݰ¹Õµ°F¼*µ2 'gkŽ4jÈÈÝ*Òq©g•c>Ž/p›5(+MwzhBöSC%Î/AÌ{…Æ?ì5ØS?÷ñŽ 8Ý?äwÄ+j›–Ú ä_ëÛ}Â(Úmo•j«úe¾‘…P•)9 wÄq’÷8ëºzydn¢Q°È*WþY†2U*V{×VQ5&¸whåA¼ï†$øb‚m +XQö4îNmDçºÐ'"K¤‚¤¤Íq|w™u‘‹] , ?U°`yÂ8`w¶LIü$}ºSx¦¡)°éêÛê½JH"B¿<ÔIÆ’Óõö\Ácc:în”Ç”ÜÌ,߯gpžEQý$œOX–ƒ¤ù +[3JDx¬Ë7DQ½öâÑ$ºKDçëʆ›çû{‘Éǯ'¢`š†£™5Ì &ÃQÓlÁèní‰Ü´†*2@Þª@pˆÏ¹:häpÓãaâˆsÍóÒ¤“&¨é‘0oŽ¢®x-Ó¶™è2×a̵X(I=vféÀ=@ÝÚЕ&iü6§âØ~­G{æs,é·ƒK¼ÌÊÖ‚ˆù²lDp5‹¢£N¯ÉR°XÚ߸Ц8„þÂ÷™5ô>1"%*ª”V(ÀTó¹œW_ÂÜ«Fñ%Mõ ûö6°Þçà~TyVQH¼f×Á—¡NÂ5ï}Ig4!¤n%q‰Ãã¿þQÛ­t1î»hÒ›Àf>N9îĹ}Щdî5y’Œ‚‡è¬=çÜÜR~}mmùA î¼ ²rï{p#™ŸµN¥[ü жÿäžyaéc_Õ>ÏC"$þÓfH(*q0òÁÒàñ’5ÌTˆè‡a—ãžã·“ 0Ž ™ O æ¢{º(5ŒZ›­;Ù ÿøÀú§ÚçÙë³i· ̽ +'}¨®¿)¾˜œû–ƒŠ{©-ÀF£8éÖÁm\.ßÑ$3*y"tAÜk[&WŠÌ=ÈX`n‡)ÓIÓÚu_’ŠÊË—’¯Bœ~ñw´Je7ÌS—ì)î^†°ó·=à*'·ŽŠž/I-‡Üö@•ÎÕ ñQœký t<¬õƒCI‰õ) ˆÉš¨ð»›z ’ä±-ϘC£>Îr A˜”mE ½ËV—™OÐÑýÊŸæÆ™ûì¹ÍþØ‚Kó}™x¸jglSÛ¡ûõàŒ?Ó¯”;ˆ[J½Ŭ0æfÐ0ú]¤w’þ»D*OÌDÏÐrP!Ixš:#cejûE¥*R¨|„ ‘&¸OY j>Òé ÌVÆ( l›–œ¬s‰ºŠC'â^Û:1S3*\ÃH4ÄÖ„‹ºãZ¡²¸l(öâïâ œmÐZã¨ye)ÅØŽSHûÀ‡¥Vd9 öI¢ 娢G:yº§º~jA(MçÊ?ª!Š6êJ~?”ÃÏ<¶‚v`NN¤õ¼!x¿ÐÂÀþñÚ°!YhKCÊ0[‚t7çn$P}H%äá }ký(Þ®Øw$`‘tµUéålvš»3ÿ"·4ÖoÜÍíSĉ2ªà@e«)¹,Þ4œ ÆÖŽÅ-̦©T,í‹úƒ°€|du_ŠÐüÔ“/o¨°ý ‘˜G ¡@ûÉçö‹EYˆJ‰`Ÿ“&C‹gÛ¦#ê.~j ‹ ;7àG¦Øù¶¦D¸ ÷4ÅR¢´÷ |Ô ~fº€$±7?UXÀ9˜L+rÔ +ŒÞN÷@GðøàmØ¡k ;ñÞÁ¯`O]N¬Sô O}ã½›¿£‡Aã,=5ÖñíR 3§øþˆ¬´‘ÐÆ;µ%¢ôV_ÿ¨™žÎ?,„ØÒN79íÉ+‰¼Ã!Qµ¢6ù¶°íïmÉþ)jrŠõc ú9•iåâ˜y[–‚f:ý×/BB6“p®Îå÷Èœÿ÷òB¶±îzœs"®^gßÎgÌÏ-@ësÈ°Õæ1”M—ЦֲVºO*bÉŸÃïÜíS0yæ¶u;c•ˆ‘“•#ÿ»-^£±"JOÿRÏxŽM/“2K¿jô½žcž¸€tÛ³Ó«ÇÓÍÝ ¤=8ñ¦ùHŒü´ÓLÖ0ÈôtŸ¢•Ä@ýTpI'GàÌ7?Œ_NTŽ7>֣פ}ÎõÌzkh±,i¦¤«ëã¹_nŠhNrË7_3vd¸¹e¹ëT{|Åõ¢éÇlûˆäŸbæâ6ß/ªVŸßK½0œY¥j+Ü (ŸÐ¹ÿ›x©Îœó¶xæø×Nfk¾.}n ±#™©Ö7I=‰÷£ø¨ìd::¡WÜŠÖ‰2ó2·¼-®‹aå™õÆ4¤½Î–ayKþXKŽ”|äÆD[P= õ}G|^º[ÓWƒà a-œ M7Ë 5Ù}w„-°Y×<’Ór›Ém°‹Í¤ôç\Ðå{g#ÖEÓ͘ ‹ˆTíS.§ÆíƒÃ¥Éi4æ’$¤$W·Ï{H¦¥®’1S#^Ÿ:`G’{1ŽÊÂ$–ŠÌ´ƒJ¢LJm× Þ*5Y¹Ì¢ÿl¦Êg`’ä È(ˆE†É‡Tù~ÒRÀw\ v<à¶Éí5–³!À†)=ïš0T^È '6dÀ~&4ž'l: Ù^¥¨0‡1¤—=³–¼ÿ²vÔ²‹ø‰£üËú"ô#ÌÔ3ÓE ùü£ ÄIYZ‘‹®R5ùXòçÈ·úAÆÐ»†FÊ.)søœªQ+¥E|¨HðG¨‘×w îeFKî¬DzŸl7¨jï:øhÏ5Ñšf™š€û1 +8'(¶€Éú‹Æo?Ø,ç¶ 9Mû`Uïb EÑstt˜¸Û‚zH]WêÝh¶P–bU[ÿ_– h« +:§i®ŠÿyVZ]”Mª¯$!Ì3\pALÙš&´]r‰ˆfÂ5ƒÑ܉qyä§iy §¼³Áûx +É*@¤Z€ÝG—ûÎûÊl¦maM-ª'&k)`)ª#Æ;¤|X,Ày ü*K  vMa­(Ï8ÁÿU&è3Ûrò¹/aSËzÖkJlŽ b°Ø ] :EX²9€ü2¤øiGzr:‡pæ¦öhüÞ9Tñ ¾ÉÞYS;ÒéçIʹaÂa±~4Þë`;­žtXeª‚ƒQ&ëíÝV “+Õ€µ º—%Þ'!lÏPúÈ#P„%Ëab5Ks f \° ôpßI»L*¾ò£ƒ”-âHV3\š+¦Ã¯õ·vh=C¤{¹Ã“™첫SDÚ©Äãµ$…ÿòS!¸^0RóT@ŸrN[)﬷ّÎ<ÔÒø_Rõ*rô*À¾RCœ‹•˜™ò’$UjÛ BŒ:ö“¨ÒšQé2vÄиõ¾3“KC[’¶ wv_Q͹NfÙðjÒ&þ>Hxù‰ý£Û~€9(Ÿ=jrÆN,æDÅ#zê4#GAx[Fg_Œl°ÔѨäp[l·FÙIÛ;JŒs&iú­{|{óñÞ%³awý¼VTç ÌÚJX°PmxU©Slฦ"ƒ© =Y'¨Q#¡X#\·‚Ý1ý½ÓJ:ÐóT©%†+ûæ­÷_Ú°6ð)kìPëKq +}½C•ÜjWã*aÖTïÓ£ZûâSOÓ'"¯™÷=OË 2j“£É±‹ÅbKö/»æYóZ0¯„'ú”Éóžâ«U0#·4BŽÄÅ´g% 摊,<›1q_/ ;àä/!]1OAî¹{0cª.çwë%tøÍ˜5¾ý3Ýöw +Âzìˆ!Uwî2Aª +ùØKÒ¨²OÆÁu¥Øù´=#F{:öJ•ÍrÅÏ‚ŽpL pÓÍ]¦•WUC*“ÃÓŠÁðÄoüOÕôš—˜ÄŠ`¤V¶”¢å øÈÙêÃ< ßmô6†åÁ2Bi_Øþy>HÅ9Ñ>lêSØI·!Z™AÎ}9 æm ÅÞ Ïgf5×Àì÷¾6ÆÈÊJî£ÝåÌB¬ýfø¦ðA* ªãJåyOêÆ^ ûšÇ„ª¸ }) W®Fm®°Šy¤ãcDyjÁ@>ÝÄÓ~¬–DÄ_#/_™[LÆ[žW•q::­v©<-šÀ;ñQðð[€á4ŠVf,Ë6ÌC |Ï%1>¾Y¤(Z•çWò mõ¨$èsƒëgÐ\ÙÖS…㸽Ža ú` X épò÷áx_ªdbeHPi ¼tèq+Ƨ샠8æ¡-_`˜å‡-£Ý KÃPpó"Cî{aNzHq¶„›=:Æ›oŠm3(ÒÅD¿b+÷2¬nÐõ“GøÓ`Ceο跠êŒ\Wlª‚¤áÁ¢ô®œ$Ã{-~`¶+“þÔ¥Æhå+SN÷÷­ëmrx>80#븃ëÁZìþêS FÎÀÌŠÄhÍâ²`#Á¤JXBÖOæ[ÍJkÓ =¾U~BÜË“@¸ýÊã“¥àO¦Ú ¦Ää' +9ëo¨j”µ|AÆü6Tt¯â®Yx@yÈ=_ä ™÷"ywÀÅà åË:vû?Jœ¸”pc]5»Úà‹" ¸º ‘a%â¦jõjìAÒ”’$X޼Èéhü ü¹íß±¿³-@)/J†‚¯å=%({heSUVÂ``Ù¸Ê ¢àÖ};û´±‹àOÅ_Okº¯ÇêyÑÜ3-/:ËjöTÉU¦X”Ûí‡äCò +fg°UÉu®Î²Ê°Îf²1Ù +ÏÜÖ +ª¤U›¬–E­‹ÞÁ ë&ŽF«¤eÎçùÞ€5ÓT€¹¸åš‹H"G¹6r^;c’ž.:\€ì²û¿ á>xIPKõc¼>X>ørÑàâ‡ZûlîXÄçAýIr©º£nÏé"w¬W5Ú ÒÏÃÅÒß²ÏEÇR¬ ä’5)öOª\ÊǙ҆_àÐéEÔNiÚ¸ë׺C-ߘ ›/g™vè²]FÞóíØÄ";t[áÙÂ3£NpQH¹@Íq¿‹|¥Âû,6¸¨p¤¹¸(7[¬©º­ãÆ…QÜð}²a—p¡ ¢ø«á‚dª„Aœ.@+ô?'PÓL6Ú»ÔÛúÖ+Çô•9÷¶Ö¾ßŸ¥-unZrÖª.XfjÅÁ…‰åèmå ¥üð ËßEؽ­»mÕ›ä«{[¡±=*&%9Mÿ‰ò:²¸pˆæ`ÿ¦+àÞ(×2ÝAÚü¬=Npa?`÷ü\€Ù"¿„[wšW–×ï@b‘Â7 CÍ;Kl+f¸ÊN’q”ùërýiÝŒjÔÃlÂ%ÌðMòIÕÿ½PuÆhô½`úrM©©Ò=À¬Î|ö¾LÌ>œÙ3öÚGÍz†?¢ù@ÏòÚÖR-ß lùd(\õýa”(7©iuùê«'Ôp®×e‡Y¥ú&sTв݊œƒ£<²±ÊPo 99\üðáç1O0NÌñJ ­6‚Ô\¢ùëëÁg:ÌÛð¼µâà DÚ4/tg¬Á ,ßÃõ$?Ú­GµZ!ÞÊ«óâÌ+ †X_Þ*"Cë;î{¡{{^f2ë–=¯›Iuã¦-* 5˜yKÈbÊs;J_9Þ +%-}+[/”˜ ÞJ†w…<æ/_ ÞF(~ï­s¦'ua1}¥þbéò¸/yykAqo}ª37% Ì&2tF´’ÞÎéÖìñÔÖÙHŽÔ²×ð…ªÏ{+“=ŸþÍ |Aü]9È,é­ÝÎ^À]šõV‹ÚÄ?Ÿ +áíWvZ§!3—-”–ç¾ÙÐ Á óšúÕm6ºC±c°ZnÇTú¼vÂáo˜Rƒ/½•1\†Å‚ëÝ¥~U<†A¦h€Aš€c>vŠECä˜V%bªR?•'$gáÀýÑzÐþõÐæÆ  "VDDD$1ž‘€+@Ö5 „º ªÄˆó`“ˆ1°Téñ’rÊ’……-É P‚RDU±¦v)pˆJxl•6 +:Ná4j£‡L²„åhƒM/%A±`¡ Kj]¦…a°©€„Á& iNP„Á&“ÏÈ f›DŒBÀ³X•Z«Ò¹8’±0ò€#¢S”r¡„•MGƒ¶L ,,9F1:ù¤F0Q"s#œ"øˆ8aˆ‡ÇEpéZÍ ÊƒMÇʶH,6‰H „•±Ø$Õ¬‹M*@$&*Wb ;›˜V là¥tìBÅÄÂ2§Èˆ™ 6‘(`J”_cÂú yREò4¼ªÀS1€!òH”H¥WxT/&‘§ã DòlÅBÈc2P‚‘r˜H8NNG‚upqŠ8(É(L$Z0" Tr µ*ùAPT†J‰JX—º(a- ?œŽéiP)ЉŒDJo<„¨*Jš…úp:Ã,Ôƒ&LœÈ@„¨l<36ŽzuxŒÐ"[8N3*§‡‘Ô 2ø E CDtqŸƒ•JR(´$œ>œŽhôjøp:¸±1Rù@} ¤<Z +¢Õ‡ÓQŠVˆ‚H@Äa G ò¥¯QÚ©0Ð9QH¨ Ê”­p !F•70\DNBëryL4¬Ð‡Ó¡h$ŒKÈs2x±@NGGŽBXÁP VŸDE¤ˆpâb$£TÑ `+&Êc€sÂà•,qb~8o•ܸ>œÎ‡Óy0 ±À±rÊ(U”8hrÀ¬ؘܨB÷9çp‘aA ¸0N ’‹Ó‡Ó¡‰ É(… €ˆt`ÀÁQ5§•Hõrâpñ(IÓ‹G†\|8ˆ„ýp:"«‘Ây|8Œ•„ç£á>œÎLƒç!¢x¥„Œ† ‹Š‘‡(y2jVÔ6.,'j€Bù‘8µ dZ,¥‚ +Ò¨ P0d”¨‹e!-Q—äFiÆó‘ð@ò“œh…Ðp®e#ˇÓaHˆ¤R2 +„‰ Äu +*A5cq6¥“FDˆŠq´V&7ªÒÂÂÀêG*P/“Ôe*J..”ÚL¸Z˜*J EX!éÃ5! 3%SaƒÄJIVÎEPƒàié ƒsY™T¦§óát2^$N(bCá±À˜*=<1$ùátjTµzaX­TT +&6brY™Zh^¥Ó`JÀGÌÊ$Ó +QIq=ŒPþ¡Xùà ¡’I}8—‡Y¨‰›Ò©¥áàñ 7¼Ê›h% ÍBºY¨Fq!’à, /4ø´¬Ð"¤J×ÌE)ä姃4µ@·’&{úp:Ÿ 8‡‘ VcRºŒÑrƒY™<0O’!Øä‡ÓyÝ|´’qÐq*)ÕÈœ^JL>œÎ‹Àdd„ Œ“, aAð¸<:6P-!.¢‡§ó"0, 4uñy± \$4¸\-]òàÙ°!ˆ`˜è8©t¼îÀ_DÈÞcpcªx%ôâà¢òpÊh%œN¡‘Gãƒbäq‘PDž‰“ÈÓ:(‘<-šš‘gà¡"G†"ò´ŠçÃé´°ŽSj$µB6Á:NžŽUEiãdЂ2+çÂPªbÃ¥ ]ÓÁ&͇ÓA“Bƒh µ”a$4|8”ÔÊ}8Ó®ÜÁ}L ^­™” „M%ˆÒ= p˜>œŽK&.©ÓÈH:Ä XË\Të€0*ˆ§ór‰‰P¡J¨šº\°Œ¤6P$ª”&¨yH8´Iô%/3 &Qˆ „u +»AQb0q &€¥ÄäáD•ÒƒÆHAåq¡ÄÅš9Õ|tœ>œŽËÂ%uš9 x -˜D ‚Ö1ƒPƒ4úˆ` n>#•H¡•¯m°@Q%AƒKu âÉxa¬¨ +Vµj-°X X#ˆ†•”«$ƒ©HZ(œHP2Ñ:ÁÑjx@—̧¥Tà N  ”DˆP(l J˜U"§ Õëî B"‚ÖÉP˜R8VîÂP:Q’*\ž– eà¥t ¥K‰Ì|<7ß2òÀLLZ¬q5…§ó:p¦ sðâJÑôë;hˆ¢t¤””PX Ri)a4¼˜Džc(" ’ÇãòŒ~ä€ò¤ rä©`(¢(Dä‘H!y Fä9BDžŠƒÉ“ª‘€‚Eµ@+gðáb /ˆ+гŒ8ð 4& ¢bbaùát>4B ”ÁÑ .‹Ì(‰¸¸ Dp€AËITX-Üm"4J +XÉK%óQˆš¨¥Rh)¸h¢ÂÃSÑ2'ׇө)àhÑX„Q9hiȼ|T =2PÊ€@y2jB-( (ˆ +"Deó2ØðGI")ŽzŸB)WFI¢âÁ@=* ˜Ó‡Ópáà8^õr¢H‰H” ^Ì\°I”¢RpŸ ”G†âÆSrãBXP} 8±0hûát">(0 ŠRø¼´H¬4.>0 +_pññ1@𰄈tœVZË‚•âB:°I—Ë&cKz’W‡ Þ¸f¼\¥—Ë…¢(¹ƒ-9Í ¹•‘‘ûp:'"â…¨ƒäq7 #cs·Òò⸗ˆkJ¡q-*0DzÓ:’ŠˆÖ‘ÆêZ.3§Â˜€¸Ò€‡+ xx¸™— H†Â‚¨Õ˜D¨ ÌóátZX#x D>—ÉņHÃã%±`S:¹d˜@ Œ“^KDŽR&ÔË„¤Qâ¸@P‹kHa©ÒS"ÉÖgñÃé¤ ¬*ZÅ¢t3¬„⦥eeqX„|¬š©ò:I•XŠÄR+Ç@ + ”°òññññá"9P©F@‚“$0ÁÔ®ÜÇ(”R©<¨VŽdEB²2!Ô¬¤f:D//•ÐËKåT¨\¤ÜÇ&er"1Qщ‰Æ‡Æ‡ÆÇ +a]*æb5áѨ4  z€‘Ð0A#âhЉ³ÙhP‰‰šV Ø Á&°A$ÑòаB-6*PÃ+ÁF…•/“ ‹%KF²$q$KnR>’åQPfÎ\¨>/ÕkÆáCàJ},ÃÍL‚•€Pr)-1 ܸF Y×1Qñ¬!ÀXuÁФDU±‚¾X˜€8f1Z˜  P » üà•|ñ!Ï ;‰8à!X) ˆH(à šá Jn\¡ J0±þ¤ƒà•ÑPñªÓA¦@ø¸X‰T-*™aøp:¢•†„ +ÊC¢äÂÕ‹_P,%dP,C&%+8,D:3ƒ"Bœ¡(µ (.N hVQÀBI¢x‰¤Â«%à^'«× H*E€ˆÝ˜·]ätÇ;î릧Ø(¿üÏ £~Úâ=ÇmN%3¯O·5·ïÌý–œŽ}uÃLÄót]OnmLõ–92j'èÿ=Ûù2Ì@LüwÕ–í¨±rr#kŸ&ëvØÚ!~³ž3²ÇSלNK%€6.É‘$¨"8Z)6.@µ@œÎIKàŽN€Q 9r:.˜´Rd>N'EæäcÀL+>œÎqØÄ€>œN‰eôát>œÎ‡Ó mˆB4QQrX!<ˆcå­|-E‰EæÜËÉK$A)Séh"LP„Á$rG +ˆÆ$ñ P ¢„‘KÉÀæÃ¥4b©•ñœò ¤2@åX6$l1Mé@{¡r¤ ÁFChäa%Ü€B*B!>e¸JZ.N2-'‚ˆ‰„éAFEI£ä*8 “–Jüecðq1PŒ•IÄ"lÚ†…ÓÆë³¢‚aÅ„ôƒÄ!™²Ø0 ÈP(,°Yh¥ÆÇª™ìÃÇ K‚Á‚IIE +9áey91y!¡H¸0AÆñÂ,'¥ˆ…‘diˆCŽ4rDPÂ:RÇ€ ŽTpÄ2NLZ'%ºñAàMµ¢™ð–T‰‚*•ÀÀq¥ Ò=ÁÃ8X@tKj%4¢Â,@D!VJ&³Ñ xòÉ˸(k]”î†qQº£P”ºh6&¬KŽ•ML(aej5¤ÈèdAH0‰|ZKY3(‘<Š"y^L&$çÃbäùÐ2òÜ@ˆ lt„ˆ´FC• ‰£P‘$r%B ÓbjAMİP”N'*÷’DAQñbÚ ‘¸€4P>XœH\ ÇÊ),AE 70Dú‚PpA½Xù:1µ *DŸZ:´ÆÄÅúp:éñ3 %0!f13BI°‰åa «¬@¥HˆHM&4+$øœH’fg(J!*Ó.ü9øp:í² 2½H("Ä‹Iäñ< "jAäÈãy ÐPåˆ"+P!%#ŒHÉHTÌÇkLödó^Q9 ­ôs@Âqú `IUô… +ê¦`ÄJ”Çã€O¯UÉ +#R2P1(‰ƒŠÒÈuœX#UÂéfc@"A ©• 9x¬ 4ÏëÃé8x¬|<®(ÒG“ y<§ÐÈæÀÀ=ê±`NŸ-i!ŸZ¹z8¸81€D(J1&7äs"aHH¹B+ÍBY¼„HŠ‘BÚ  +.(•ŽÓÀ–d”4nJÊr @OŠ*S/§›/*÷20²AÓÓx@ò¤€èEåî¡EúêR bXœZPž…SE‰àFÞT’,’|y:NR:”¡§Câ§óát>œŽ>x´˜Ü¨Žc!†c…-*ÓHòÁ“¢JTÊ(!N3% +”DU¨ +$Ò"@ËÅéƒâ%’NfÁóátÎceúp:6®Ò©`ä†-ND\ +4+§§#b¢:H˜ñÐÄ©H'¥”èKA ÚŒ¤Nða†¢â†9 (xx¹O Õ‚!Š„GÉAANÇåÃéxH¼˜D šš‘§€ƒæÀƒ¦fä9ÖN܇L Ç #ƒJÒ€x¬Ü ¡Ô‚0+#%Ðç ãĺ”׈iÇʇӑQ½®  ãå£t%ž‘gär…LŠ"y4 rä1Ày2J##OBÅBèF@é:(É(e¼R(P|òhQˆn\**‚*ÙzH å NP”^$øbXÉ@M(¤d nVªô`Œ*c>lS1Ò@}HÔ J‹¢ÄaÀ§V‡Gõát,N°µ!z9”˜QQqA̤Èp(p:#NÇ4€Âé¢t7Ž}¥¼DR¥‚M¢RÍ ++FVˆ!„ +6‰,X0¶kV8Á&QÃÄ ßµL !™‚z)I±:Ü$*MpŒ@le‹MŸ‹M¢6²BVÓ +”±Ø$ºŽ‡0b‰8´\º™5H9ö2¸py|8ˆ^>J7s:xÂAit ÁeÀJX× '*Ç16ßAñz‘*ÒQ±"l- …¢›D “èDØ$:‹26‰:„¼|8‚•†Œd †\H›D +BÂ&QÇ(<äz°I4ãl…DNL¢ó(y°ITJa¨ÒÅT¹:RºÜ`“è.RB\ +n4P,"²R)¸°a†Fj‚J…SC(#6Ø$"-)ä"aÁI¤(ˆÑPÂ`“H(8C1JðÄ`“ˆ‰XN0Ø$ÒŒbƪt7^")ðá#ƒ”c ©ñð˜@}8Qj…À°*Z˜DT|„„bZc±ÔʱØ$ àÊ!°Ø$Bxy©€X,6H>„á '„ĘŒüɆ±H'.A“I}ˆT‹â!ý‡ÓAq`œ,X(  (¥T£0 +zʇÓ!HÄr‚Ÿ‘\à`6ËÂ’É• ,l5ëÃé@X¨§Ò©€•@³ÂÕ²¬¬D ŽCh­°ÄÀ2b>2BQk„!™µÜi„m ¤2@%Tã°ªQW‚v`­^$¼Í#L­X0}R6mTJàøp: M2/ ¥-¹q•x>z¢ù—‘к\6«0A@\®‡>”f<! +Ñ€ŠEéð&_,\g.Ød‚àqBH‚æi *’±p)¹@j:L #—҇ɥ$CÁ¦fr¸ú€@Š’ƒË•RA)pø(H%iÁåšùp:+„½xl<b@z¥Ëõj½xä¡ 3D%ÉbQ(гX +XXÁ&[–Vh«Y(:­Ø@k…¡Š–ˆBÈ À8À¼´a¦ÒÝÌ‚„ªÄÀ2B’¨%š`“HdÓFšh9a +”pY À±r ~¡âê™D!ÛZ¹Ð ƒK‰tâPÂÊ­Æ€ "8—ކ…€ äÒ¹¼„u^Ø$M¬L"6 +I ˜`ˆ¢ÔÀÀMdqar£’ pðxh y•N ËM¤B°):j<6g Ü3 +ñÉfc@%! ¸¢Ôò¨0Ї«YáM‚ÊEq”$,¼Ü©¦b¦DPÂ:ÇÊ$r‘¦±iy‰äB+_ëq"<ØÈ@¡ À¨ D6R¨˜u1Qh]Ž4Ð’ˆJÄÍG 4<ªÖ +Ê +…Á8d¤<%'(ÖGǃhC¤(”dHËG¨$3nH²C’3yb±6‰Ø)„„=Ø$b–$1 =Œ¸IU²J›î‹Ëš7ý½ÌF}¶Èšcs;ïý]wÌ»?õkÏLiSõñYÝÛ:6 “5W¼;ÇæÜøˆ‰,½±óãó¶ÆGì×Fàdwx|Ÿß®7™$ ØÊyÏî|Û"sûÃwe÷¯™xΚs:1Ší¿{ùš—ñ>wßéÞ9²ª~³|ö¼Í}Ne³ïQ»e~ß·2~ÜKtÖ¼ÞçÌÝlû{—ÎÚ ô»w>&ß·ïoÛ]e­±7=†÷ÜM›®ö3=çìÎ~Þæ–ëë¯ÛIBl¼æË»ˆ¬uÛ†M»Û¶¿nˆŒ9ª3禙íìz{ß[²æöÖ{l¾¿fÕÆ¸ñ¿þ32lØÞMqŸµoá²<”æ˜}¸z}ª½Y3ïú]¿5v÷ò&·ÖÇïÛðØw¾jö&ß¶»^þ÷½scm¦Ýwžøê×6Ù{ñûÛ¡«º³î;rk×x‘}¦:·n¾äíç†ìS ý<»“qsÓÏ–­™Í¸_ñÙ§ób÷®vËm¬Ýx›ç7v/ûôÖZº3ûätbøþ½ýz?³û¸›6ÿv~Îz›o5™§ß£lÿ2æ_TÌnîÖþ‘9¯7:_fëumº||˜˜÷úÏèmŸ¶toÇoEÔ¿nlúŠŒþMÛ¶=llõ[ÆêÚíø÷ìË,õù×Ýõå0³á?#²äü¦ýmÚé>þárÃnÈ͉ÇÞËšï¯3󱮯Ú]³ìËï†í:u;ê÷7_ïnÔäs’€^ÃCÏ¿ÕÖ|Õq1ó³é²îG¦ß¼ï›3þUÆOwÏ=d¿d–®¿ï٪ȸl½åœNLß÷2.k²róteÙç »™eã_:nC}ýæê,[Ïsº³ìKÎNæÛ¶Îxïù¼ý26ÖggÙw}×¶Ÿ=µ•O[³ì½óîæØ-™e;:ËVLFmN1ïØe»7î†Ï¼ÝxÉ ûµ×ùúô‘/±»­º2ì¼¾eØû§Ë°»9[“}¶î'"3ìSfUlolÌnÝ »³¹«nó½.£>þ¿ïsî÷kܼ¸èέ¾½«¨ß®±=·[gý†Ëlû¶;ù–»Ûr:1‹ÙùÈ­Íyד};×–ÞØÜóóºõµäolÍ©l;Ÿ¿Ýû—1÷ãò󶿨œœ̹=_?kÜïÙíÒ¯5ã@×>o¼nmÛ²éû-bkÉȰ%ó±¾CôôåîÎEþd½ÌwŠí‰ŽÞì{éßy¯{̯ßÿzy™w￳{sŸ²£®£ê^úuïß#bfú>ê +d:ön·s:(­}Q³)ã8UVmqzÓnl·õï5Ƕ‰ï‰—$NïÖw¶­]?¶¯¿2ªó©jË\d=|ö‰ˆì{ˆ÷í4ѹ·%ªë3^²/³†×û;µ‘÷ÒÙ®2Þq³³}ålΚ>w2T¾n6ÿ5CÅÖ®ý<±¯Ý;væiªö7m—»ˆÎò½ñîí5gþk¿©*<çë¦þØL·=ÿ²}½}Þd™š|‡íÌížeb»ÖR53Ñ“»!zæ¯_7^Üvù|~뫬ëí=ïkcfkE<æ‹·÷Ë~M—µb¶÷íNî~Öv5»éÞª"²cÃåFôvËé t~{¾e¼›‹—üêÚªÎr6ÜV]Vï¶)àÙœüˆ®ÈZòi_«vkú,ÝUU =î3/cåTïÆkÉš²2se§«ŠßÛØëz[Å\|d¼ˆ¸²×|¯ìï|ì|Ÿ ïÝóò3YÛeæw%µf7¦o«¿õbãne˼—ï|‹«L³ÕÖדӉiïÄElŒ»³Ó—))273.–ÄL>ýìkIÚLVæûhíÆcäÆðŸï²ÿœ„ÅÃçóùp:*,&4˜iy ¨¸fl^*.›˜¼X8— +Œ‹‰kC…Åäâã¿›çÜžM=ÿÙÏñ±½·ùž1›÷›æk/>72þ{÷{nÙ²»=»/Þ®j·ì¦)m=×Ù:^¢Þ=Þ"zî÷¯:â¹ó9fãÖºub_·æQqn³ûæþäcþ;ÅßÖø×þ-½›óõ±n¾¶m¿åÖ½ÚØÿ®ï?ò5tývØ©÷¿­w¾þªŽ$NMֶξ9û?[nÿ«?§_7þnN'•Ü©‡˜ëŽ¿ÍèØp«ß¥¶C?æfGuoì^O~gìçgÚÛü˜1"6ô¦~üþíz­mC<Òú5nÞ˜å0W1µŸ±ÿµæ Û›½ñoß›}“——_@Ýëá·ýV>dìûloMwövíöo¹1ow¬ÿ1{óp÷]9[ks_u~Lfl™ºê­%Þën{'þyÓÆ­ˆÚ^Y‘u{Ï›¿ïù{_[¶nëúÈyɋʈ˜©ØZËý–ÍÚÿÚr3º::c¼d¹ª¤M|ö/€Ë|~Þ®¥Z~¶¿ÝkˆïÍúZ¿ù&âc:ÛçtR­qk˜Ÿ—þÛß¾¯Ùû7j{oz*®ò{+ý÷ùWsѻٓÝs·ësmnœJÿÿªò¶;·ÌeÍÆ~Õ{}ÓQð½án¶cÚ°eëþ5=T¾ceÚùλßw˜í8w÷“õ5ÖuõÔTÖçG¦xë׼ά5|äûþÖ¯ÏZãtP’·åî¶ý¿Ö–±q:-ÄÌTeø¬çü¬ŸtíÔóž^·dܘïiãtZÍÛ[µW[³†‹žúè|™›ˆ$~ÅåÖ®×ôغo¶ä¦ÉÙ¬õf³{¦2n?dÎÞ›ÊÌïU¯SÛûÉÛ®n¯•õø®a>cöoÊè¾Èí?™~ã†ìÎÚ +¤ªò¡bòåqËwöלûacÃ{ýÄ;dÅCÿÅ“›‰T&:=37kC†ÏÜÏ‹ýÍâ°‰Ê ²qk`ÕÆØz}œ ßq¯Yó±Ù¹boJà–µÅ¾V\\]åïTÓkÜÞ¬ñ~²fëìî¼Ö¨Ìò°åêž{cÞ?ïS?µûÝsþ»·&jö鱫6öôk«ÝÔñú6ß›nfk~këö­í]nnbkÛ ÚÕ»ucàmÞÚûåqò·¶ÝËéÝöµ[sR&?3¾+6ÆÍé´sO[sN§µ|ꌈèØþû‹×ÙšísÙ[+µ±c}y÷í»5¦ÿí»7mìÍvšÜ˜ÏÓaÁówW½¿ö™ÞXÛîîïÏí¦®íÒ]î~n·%½ûÿµ«æ²÷öæ~[ÅlËé¨ÝñžÓ—Ý[ßÛUf†E"£‚ùz̭Θ¯¯}þ}Ããkš·¿Ío9q—q³Û!;\o­mþi¶Sßl¦í1Û7m·ìŸÓA¹ç¼Oßolʽ©®},Y7sßÙýòùõ÷Y/¶ÃÖèÝ|Qõ°áß©jžª·¶}­¬ïõwy—´Ø¸5_›ö;³Ëä»ß]fø§œÍέzʪÜÏ·ÉþçwÚ¼zí²5ÏÌkÛq1÷×;9]ouÙßùoµ¡3ÓÌlp·óÓÜ»nÝö­Ø¾a#¶kÉ_ñ¯Û·ÆkÞ7úù½û=2g?Þ+IS’ÉGµ1¹÷u¯ù_½•if\*ôUÎUT†‰x‰îÍt÷¯^y}Qô›Þ÷2äÝåëKe×ÍÞÎ{Qož÷>7/U?W—Ÿ¿s™¯9QEF&âл+ïýý¥®¶e¹$W¼†šz›Êyûù«ÜèwŸì®)·ïßÛnØvO÷ôðlZX\Z$º›­µv$Ôóä$µÌF^ÄGn؇‡‹Ë›ÉÊø¹›ró½î)æ¢Þ¹·OÌÖ˜U€uó²±ý³Û5ÇvÎk¼‹¨Ùª{¬¹Í·{½­o8÷ÖöÌÈè©ÞÈÇyHã’‹îÚÎ.‘ä°ŸÚéøÏÙòòIzÜ}Úü·Ï}¨)öþÄo—®ˆÌt]¹µ95Ï;ö÷~c¹¾M17]Uw1µ­¯Ï¨‰œŠòkc"³ xê6Od{µY~¦7:>só§7r2NÆëL‹Ëi^e^Wlß¼Ûÿoãï3×Ö32WôDRs։͚ 0§:´œ9ý’Äט¾ƒ£²^zß3EíwîüHÔþÞ¶¨mû–»±óÔÛ-÷ß«'æí>Þkÿý¢²o]KïN¼e̾N\W¿ P—É ËŒêÝ÷’QÙ6>ÌÃTwöM€ñY·!ÛÍCnWÏËt~d‹Ž­û&ðªìêÈòY›3²Ôß]ö]/·™ÿ¯))sñ¿™µ¥’2ϹãmróÆxÙØ/ù”µ¦êõ"/6ün—ȘۖûSÏS—µáÂø3k%é¶uOÜ×ÅK6±x‡æ÷˜Ïéì|ý팪¨Žw{©ß6ïX[Yó{îumˆÉÍŠžÎטÞÞ¼ëîm[ߺ³nºŸ³u6ÜTåôæøÿ¹z¬¹5½æŠùŠ­Íx蟙b¨D³Æƒ©"&I碡‘€#0 ‹äq±P0¥¨Jü—R":$&Œb¡¨`Â0£0 +â(ˆ@–C9VF9e˜º vÒ3 8ˆ H[Çæ7}9)Õ€(]hY6zxØHrØ¥ =bájki™Rƒ’-c}©‘†ã±iÊ/G†*­H¾p{#reô¡v•áFÝÈ^5<˜6È5Lóº6جƒìØ39àâ1Sºå„Daw;|e;wtep?®äáȃÆé`Uñ¿¹#¡J…},L\ð!‘¡Ö×—Îq@n7ZÎÙ¿Ôy0ŽY‚& LÑI3ýa»ž6Iíj(¡tk2¶|²LCgüDâò4Ñ€´ +8yO!OÒ°Ì$æ…ÊÜ u<çl±+ù.‰nÔ†fwè~„ÉÌ…Ä•tÌ_ËŽùD9ÇÅjI¯„Qóh­ûƒ¯£´Änw¦ÊÞß8_9DÛÙ  ÇO׫!†šð ËeóÀcñèH|Õ³( +‡(i,R‹äÖ]µ¼KS§›»¥Sø§¯±üåèÌ·øÎDu¸¦»úz=3§?&Åf”{uwØù¹æ=n9q=Ö ½$þÓÆ&`Ø Ù3‘èÚPxdK9ðÇK=®‚û-ð˜Á–;KGtáogí¸µd|+Ĩ­ÞrÒ-äF_A#E­F:XMÐl¯­©7Bå’.VÓv­—áœ÷6¡IP’ë¿Là|™øß 9$/ ð.M…òà%ã‰Îu=a"¬²%à™FÄ’¶°iÕ˜¦jA¦þ¿­e±Üe¹±ž¸ðÌ?†%ªÈZßëù¥4E|)m¹ èä*[× òÜÕuÏ–i³^[æî$TÛ`× /í0´ñíRô¥vÖÞM~Êk\¼*z»/•?|_µÅ@”i4i©U0+0U6np.äPºWj·~JÌÓñ‰,‡îV–“ÂC)„«ñÒd} ¤#4xp…‰úª^jÑIƱîOM^¸Ú½ )¸µÒ<—±˜wø=ÊÅ6o‰Ž@=s®‹ñô]·…ÏCÍÖ•ÃØzGˆ"ǼŽƒ1éƒÜدÊX°…E,"ÓKù•úØQl‘ìJ×Ï[9Î.–¤/òü-ïæ},Ù¾ lô–˜w«g=2 þà8NÉÉ +ûØúø E8ˆ«AKD1Ðá` ¥ˆ¹ˆš6±SÞtõvpAX§Ç¹‡\Ö$¥ +üm¾N=ñTs]Jüæö£0qÝ‘ø5 ›‹|x0 ’O~þ\¼F‘ô-V{«nÔgàöxñöe½ 3–Œs<õA¿N5òuíóº2.‚Ò`–" ‡V«DúÓQîÀ²#h‰„c+<Àvî BÆ&t–e´AŠðt~x¤[z)튩v$Ó]3P¦ù @&/Ånzò½Ó¹Œ1ßG2ÑxW.Z¬*¹i¡ù=„Œ‰3bP·žÍ÷Ã鑼2ÁÅÑqõLÉÙÆŠÆJ¹P7èÌ™¿_g±{¯X’Rj²³ËjN^%#'£Áuâ"ã2_%ÐÛó Š±gגщĎ4–}ªúgøm^¤Ý–ˆäØy‡AË×qžvÅ×_!¦† ×Ô(úÁ¯ ­±hŽ«÷6hê7hÕ1’&¢ÛèЖ—‰hAæzì5Ë\ô Šyøý·”úÈ]+ëîöä¦ä¸Å@ÃwT÷J`î¸gî*.ø+ Ndõ‹ŠjOg7Ȫ݉#(Õ——튯P˜`Hw‰£úš±ëY¨tbÂ*½¿¶Õؘ§`À>°6JrÌf…ËA áØIx)eû &)4*E}Çê†ë»/þek[E¬´ÎÙ\àA!Tó&ï’ŠŒY™ø VÔ¹™ž\ Åy«H sS õÈÜÉ!ß-I·íçW VrÑî³P2øUÿk¯ð€t/k3OWRß|L€S‹YÕ#W÷Á¸ÐÊŠÐ`œS‰¦áÓšLþ¼ÔÛlhö‹¨J[Sö¤ÏËÒ™`i)¦POÝ/ÁæÍTš*äKVL̳b¨î£~•y0uŒÈÅÉ:]k/âïT»Îá%H.ÏÓKf¼Ùë¡öt¨£¾´à˜ûú±sÝ¢}­œÙ:q¼ÉoD–.øPþIÏKÍžB¹ÎòF!ÏÁÔ j÷BQã¸à €k“&i?Ìódü¹Ø`9Ô’ÐÊdt^(9Ê PEç ®ݤówªœY#E}îŽÚ‡¤¬žÌá–½›öã›âÐDÿè# Ÿ³Ä6¨=×VZ·áÕË0ÐÌïIãG)LñãŸ"¸VKuXÜçÚBÿœ4󵣨C"ý0ɸÑROBm†y) Á$bOöç¯wøŒllNÒ`”¥µ“öSG³È,P=sbLÞ°ØUÇ´ù€“HÔ‘Û>s—ŒD`^‰_×ý§<‹e·T;ê/±ÀÎgÏ`Œ]1K!cÞ%CLÔ·S j”íó8ô™¨™|ò+ÂõVsC@yžË›Ð C‚B6ϵd¢– ™¥¾ÂÝø +Û¥)[+Ät®'gÅfÀD¹¬ýX›„UçYö#:øïy*îð§ùRÉ»æê·VÏ.k–2Â7%ô3 7–ÜH¹%†yk†M&ï² „ª~ó_“u«y àS${«¢Ø Ï”„3k.KËøýF,#„³SÆ/ûÜ9þK Ìy3—ö¯Ü™dGK[íð$ªÊC™+\¯R3g¿„^+HýzѪáü碓ßb·A[æ}­}’¢ÈLn‚B]ŸáNª$Ãù„ãõÉÞòƉj(*(piIÑ„ïÏPDz$‘´ Îà)°PËÙbx¸Gþξ7è«í ^foÀ$ªp€hË´}è`›¡åi›A…–ŽÃw9xí‰iF|J4n:1›Jý­ ÁGzçÈT§;bÜAR€è›¢¿S+Ñþ9Ù˜{¶#ÙDC^®Ú˜F†›Ú×ü‚íBH=©B+Ê “ %{i+r ñ%ÉÁGåÓ{_ëUfW²T¬0Ìµš¬Øš/îP/ÎXY˜ß…–3HïšÌ‡çôÃc аµF“ .à 4}¼>9ˆ%(žˆêc°e]ìôLµ(0Ö¨f>V\IlÔ¹ Ÿm4S|!Eþ:'´Åná24˜*xþü˜·?Õìó§X8ʘåüós¤ŽEŸûóWݯ·ˆ†ŸŒ‚ð–5>ÿQ=_Ñ“2Vh-ýp–5:l¶š•)ô‹ŸDç¹à<ýØžDJ̩ٙZí?»Fm?½fU«Ù?°-Ygç?Ó/6-Æ6¶æœg#Œ-þ©˜æô£‚V¦ªÞ!É®ìýÿžô¿Ú³ìü 9Bóy2:^F_~÷•d 29ÔÁç-Á®äíÿ“œ[äNÆÏßDPíœI“³Ö$Ë×èÿè>Ž‚“Âø¯JˆþæÄÍ‹ôw‚!ØáG}?Š|3C+–;F’ÑŽHƒQ¤f5+[Ä÷È/îw5½(k4ƒwÚ_âk5r§è“ûîwþÀ´¯ÎÍW£7»ŒK-ùQ ‘ÇpÁ[O¼I”b"ÕÍ#=~¢_¹´²=`®&é»™òXßö²æi­EüV(piê‡qÖ§•ûáÏÅ*;SZ–C# +ëÕJ¿N÷û|Š=¿G?hå)V<%î—¿á ééVÓ£~¬ÇÈ¡òŽ]Þc–¦s õŠÒŒ~ÖŒ‡¯I~½ØšÞºŸ¿¢çD|'cÍЀàp2e5—4!m@?'äiz1éÕ„Ú}³(&G/bPôõÇæýf†’Á)@“¦m½k|ÿÝÛÜb&×áU©†÷fóîÅàíkæÍà1ãäÄ0Þ¸-1¿ØZ:Æ6T·´Ÿ 4Ì‘Qj{+º5,íÈpVSê‚EÍGòyc§JȨNwì‰ÆôÁq¤¬#zÓ +Ä=Þ‚ê"pÙ¦Ô\Í<á:ƒÐ¦yÎË .Tam¤ +ßéËÁ9˜::(1øKxúWÉ,Žì5Ã4?ädñ{ZXmºsá0¶w ‚õE06.¸1êX´…•²lf—ÑcàÈ%°<g¹Ò×rq)ð¸vÇû<’ùà“»ºn°3›ëÜ|­þM£ŸñÆ­7†è ½¹¹Õ¡,tÀÞ|„÷Ÿ¥žzžÚ3®ÄŠlä‘jz³YË0!‡‹¢³üÌi³°ÖØü–X§[ íô+žË2ȘÍ<·FÇQç-ž*-Î eâ¢b4Ë .a.PsL܉k,е =QÍ0Ü0„‘®JcÅÊ{¨h<ãžeo•ž„¾…ÎsÈF“ ”^,¡Ì"ÇiatÍtw!êüð|ö¶WaŽ‘QªþÎÕѾ­¯ ûb3XrŸÄ›hDo½Í°cv.ÿXþ7+÷OBÃKÇÞ¬ß +W9A—ܨ`e”"¾î˜° +;RÀGžyr¦ÒI×SÈ]q„†¸ÅYh‰÷H²µæis‹´ý0ddS^vµBrÍ;³F0zSI’*:µÅ*ˆ8I÷ß6PöF“´´üÝKÄ^ž— µU<¢ví¿…—ol‹B âåJ^¡w¤ ý$Ý|½Sõ&åŒé±€2#pÂn,šæ‹Fv Üý&ŠLž*»›ÅáeiÃîV‰ Ã/aíö³5uÐÙI·Ì°¬²ýc¦t”Èß•ý®½_bÖYK_œX¥@ X–Áƒws“ez˜+{^}!ÎÓÂjÕsÖý»UØðhç´ŠV‰ýÚWAMÜQ:0¹Î±ñä.¸Yi•? ×qxºNÊ®:éçsnxº¾s#ÃË—B'{Ť%-•¯ŒxgÕ.îDiË!Ql÷ç\µ¼GX‘%†Ã#Q ®ÒFZ¼íˆõr•ôhb‚þ^C€EëIRj ñLÔ›¼\Ó5æµe<êeÌ“ÄJùƒ¯Y)ôŽNéùŽbJˆéóaGOfqôÒ¼)úi.ŠìÓª‡xX)—òÚߪ41Þ¾ý›^aŒlh@X —±êrÕ'KûzéÝîÄ/ê)”ë3ßÇW& b’³–#ùúDÜiÖ”½ôé-þŒÜ:è§5°¬#sýåçÒDí!…x«¨„ZÓýÅ|_)%•g±óõÔL>˜Ù D”þì#¨Žé5”W~I;Ƥmzp;òp$(ùãbγ0µR•AfÔþ MÜ Q»š«¹¡ °¬ÝÂ¥`æÅÀ„_ÚÍE©­¡–Ûu£ÜhjÓ©X6;a—£ 8j%frç åµ¹nçƒ=Ü5-¥ŸÛÔ +ѦñŸ¬Ôc8­#ÕÖC—£r¬ ȧ…ü.bDuHí²^×vgùg·ñ´ÇôR.K¯ª y‰Ÿvyz6ôD·d«Ÿ!ý'V>ïÛžIL2ó<ð¥Ò*‘B1-vI’ÃŽ÷U^"‘›Öþ…XåCý‚bÚùkµº3­ù?i oYÔΘvì'~:g…´q¢Áâm0™v”­gë`üâW¾nÚ9aàÿ¡iM +1¿,å†çc’MëÕId¢šv "šY !›tµvÔ¢LŸrÓúâ|k”Ä©iº{q×´ ˆÜÍ œ"“†joC;41 ¢7`EU„& ¶@²3ž!òî‰e” A‡iÑ'OÈöݼf½–ƒW7c×ô!¨s!/ªi¿ð¥Šm.%u«ñ¦`ÅFŒoMU¦ÍOÍÏ€‹ jN6²ÍÓv ‰w§vÑ´|Š$âb–[g+ƒ^g$gCÂõ’iWí>7Bd×`÷R™+È#èÑbÚ#×DŒH¨EÒäc<;Ð÷»SÛݪi¡Åpbî²yÔW±X‘D3 ÁSË óŠ&¨Ò*´;£±cÅAHz'¤õ¢:wdR7„æìó‡nÝJ›è |GE¥ÀÕ®‰6Y`­©$œclýM,‰¼Ä²v_(­âãÿ^Ú½ñxuµy°åÈUZ¯Î£zr?DM’$ -|›ðaÙ´3Éq²n¦¼¤›Ö +>Ág¾u5Bëq3à¾0WBgKÉCõ™ýùYÐQ¹Ä v½ˆrêÐí P:á©£”úðUl  ÂŒ)é¶3#Œ]ÔŽÂ[¦Ô žWS8Çê&ù’âÜ«…ù墾З&—:ôR)ò-”þv÷¢̤ðv)ÇŠWfíT''4·ºæíÁ<‰ +XK à 7¼ +´K{Ã5âJ.‘§¾¾³z™UD>J…Vh[V¼¤ÓKÓøéì]œ˜2§"¿`ÌjF’•+Æ„w÷;}3’ÂgfAÇhÛY…æÑg`g›j’©H !q׳EÓ¤ô©×yÌ 9õBg¥TÜ((&^!˜Øsÿ¼lÔ¨mŸ(Lè8Ñë½âŽ_"1ÙëõÜgÊ„=ab9Vj:›òmYøF*ô8_zZÜ#Ü=´ÀQì0£ÙGH=ì–¾ó5B²Ÿ(£p˜µÜØ‚VwÖß‘;wdÓøöe[@sbWe;ǧÞ†½ ø¼÷ Wâv¢çÿãé3IO¨ÇO1þ^ÛH]hNªýnv{ÇSZÑ¿A—ÇÞÐèJZ2¦Þ9ˆ ˜SçY7Œ.MÁn\Ñ  S2€[ögšÆM­Ÿ0?s2±Ð—¨+é=¾]Ý’‹BF««ÒO)áØAáÞ7]ûD 5©åº T[¯¥ìóæ;¨ _ˆ)@ÞYa‡ÉwGÇiý+K‹3ÍSÈ,âËÎÇï ë·M&k ¥}×þ:il5 È¯yGÀåó=ª6„f+6ñEŤ2‰%J+K'¸ ^úgÿ´%`¹z?—Œk4ÑæVŽ&íÅÚ2Óì8Âî½£ªezƒNÖŠtËÐo¡©ý‘æ]í†+“!Z*9¡‡TomšûW,Àó¤. ZiêéÊ;i€,„hIãgÜÆžÙ­ò*BOÝ+qZ€¬©à–hD4…"WA>m>š–®Ÿ3ž®cEé…Dðs¬]–ëq36”Ý\Ÿw²¦ÊýÎ4>ì[Û•-Þö“9ÀvlMÎì9³¶ÓœkKÉnmÄü˜jemOItÛÄüóTˆ„L: èp¡'ÍÉlïp³?HFEË0¦V\á³6— ß‹H¾j?@Ö{4bˆî7Z’´»}ÐävëÂPþ·{„­›~É7õeGÅy†K"‡fÒj! šH“¢ÃD÷í•ÜðãRÿïKoQˆ­ñ רzTWd†чaä䤢ƒr¾Al¶{·Ù{2/Âq‚ä]9d35ÅLçUŵ–ÚD}íœöXþÅàû}dÈç¼ÿZZ€lo—ûÑ6œ…tþ=@˜^ÖI„=yöÖ¡WRO™{9,–~bY@öÉßÙRZamr±@ØîÇl»?ƒœ¤Ö| lR]yœeE²ãBµ Èr)¹kwÛŽ%$—ç§',–¨ö¼oyÉÆOó¡DϺÍàøæ÷ª¿Njœ‡~ƒûho‘p}k˜—"±P[Þ¿ñÏÒ_žl·ÑKŠäè³=èÃ~ %wn±èa§^¤Ú@.êv$oóÅ \! ¨¡"QFöt(£"l}°[È Úg ÞtÌÑÕÔäE«i¦º"—å4WI1À¡rÂùƒÐÓO:¨×€¤Òc-=K“©8¨z‡€\*Éf¦›#S|JºO‚ äKÛtOM¾ž€TÄùÔ‹scru‰‚,Õ«—Æåaг¦0vU)QpuÅqû œ8,«ð+ý'ªÕ–„×{Jî`âûXZ(BZ›¹²ÂÜI)ìüšèß_,Þ¥ãåvj¢>aÚŠíŠ +öwQ'WÿÅY1'Xª{ûZ'w …‡†s §Z?×ÿ + *sb†,@OÀäþ{ƒoü$k(ŽûÝÌS,}Ø zKÄOkš˜Î$š ¨þ< aòâ!Š5ó;¥‡FUx¦ô7ò£%é&oÊ §ñF‹FÒ©[³ÍZsRWæ ˜™tMÇA'¸ ´Ò•F†©ZÀët/f÷X÷!¦Ò)0{ÈgÁ€¾QÕIâÙÜ/†?ÙIƒçQaîd@=6O¯ïgŒD¶$ü†÷'Àà]R…¸Y fÐÜß÷q´¦‘Óìo­º+ÎÚX­?Ýŵ+V3U¤/[Š!³ÕY<àŽæ ++þ£(»,ä¿ÓBØ–Ïc¾Ôë‹a®$wâl-;DdÐ`fÅ͈ß)¼+#o³á¬ÝWT)¯'¨ß¬_ b±” œ¨_è3ÀBšÏaou”)š³w«¿ÌŠs™Ä5Q¨C¦"ltˆ„MÙxø”®2‹ašªyê +—öèPZ²÷“®Qš]éíúÂÈK"jàðaF?ÐôXä8Gü^yÝ}ýÈ©Ÿ]3 ˜v4"YLr«Âò푎Öã‹AÕaá¡çtþvEjçc”[•cpÙ‡QK¬x$VÎ=)øËQ9Ý6&&Ð\ám4› ôŒÎÝÔ¬F'\©åù¡9è5:‡¸;# 5’KËgd® F‚ƒîÑmÕÈ—ß̆N)Aô>kR«“RføŸIžÌ9Ë”RF8t6©(&J©æz ÍÍÛ˜RaeRÜ€§u,ùjkÌàpšRk’ï)åéMJ,{·5¥R¢Z—˜5©#‹ÞA?çÌ5)yˆ†#¤Ô©!”=«$c¥¯‘äȥßÿ¥Ô”ˆ T|mXGuŸÄ@qØ¡c ^%®¯™îÚ¾>Mn«w¨ËtA”4ºµÞgÁôg«!.Ö.® +VR”Ôvoþ©Çt¢M”ØÆ>V鶘­cPqÇã—?à^]£›zìÉÛgìÌ¿Åɤ„Sªá’9±gÙ¨ÂiW+•ï.Ë45…†F½[©ÏBK£»©à˜Ûx†t7¥ÅR£›*°Áa€G¤Ñ=ÍÑ.‘ª7s£»äke^_À%-ËëÇ,^š×ht®Æe-tz[6“3¾a|WÅÏå[¯ai(´½f~fIÞYÀ @£0±[§`¡’k¾(S*U«¡^ Uw¿¡'ƒ?ÊÞ :Y év%ÐErfÐ%ŽãÐJ7ÃÜ*ò0Jª‘Føæán[Ùœe÷ë +§nK誖qMwðž/%0 äwX†r€"BmŸRýB;^øŒ%÷Øcäɵ ×Àöi¡ÓÄì×(gdèØëᶔ߾ [•2èÔÎ΀30ò¾&ÐJ#H*„Ñ(¨+»›–‹3½'DºqÈk/ŽT{:öÉuËó“»ÙÆÉÝúŸ&döÕ[zñ§L,éqŸa å"Çã:dµGVá:gbíÍ\uÓ Øq,ø¿ ÎFB\ÝyÄ™iÏP¨ìÑÊË.BD3šgKáIÝýƒ\(vÐN¡EîðšßA!Ã%l‚yë_öTÎZΦʱÿÒýå~6TCõ,Âc”ºtÇÛFs¬Q:4ÔÛa‡{kñ0dŽz–åµì×Ó~–A-ƒÂ‘3(hËÂçfBO¯š1.Ñýwös #¾DV×Ûôõ¬¦àOÅŽ±ô§Óé€*õƒ~®™žé9:†Ø˜[™eY+³·vå]Nù.h/tE§BË¡,6¦4ñŸNù <¯È¼ça(lûx"¢çjDRA„&íéWšvÒϼé¬Mor[ðST¦“òÁ$ðù%,À§å+îùîUH2‘~PÇÞ—ˆžèkJ™NØØìŠørjj_ÙñÔ‰oŽ9Ÿ›ïw¼c?pkhú0«;°Q “ùx}F>å´¢PØ H bÁ44ò©Å’<÷6n +oÀFƒšÄ¢ÿéÖ-i»€‘-ÿQÞŠ4MŒAEAƒz†Á( Ñ- +©'žrY*I•EÛ¥:-òµwš…¹Â«Bl!Ôô‰Ã0v³g;]íÉKÕ +²_Æu¸¯¤¤HHnqVµ2<ÓR3:½Ú¼âÒæ€ gC»gëuІ’8„r@EŽ…¥&6eª p+ĦRGwn?q]O³Yˆ¶ŸÌ/Ïém³¯c ›ûµ,ã1}àÆâé:…¹'þ»P w½€hüGÔAÍ^ ‘37=£ÉKlâ×[o f¢ÈÁõSôf÷®E€ZT+|>Œÿö °û¨5°ÿf_E Cí6HÐD¶v$D‘%éÔKZ ²;»p*ÿnn™ÏÓEý!‚¤ž‰p•æ,87„GEÓŽjUiv™?ÇOßôÝÏ¿ÙÐ(•“cŒvézýoY¨d©ÑÏ9±UÿvW“tsŠÏ¤üwVï˜óßUÇïÜ'&cª­ëÁ?«Æ«þ_¶Xç|1 vßãqýÚÓSXÈÁX ˜¥I‘y§f%)ÀîiCjèhû9OÜÔA=ú7Iâ$·Îˆ„zèŒKSšÿ4#vPÃy_‰jnQ–ØøþUyÀtÐÇ©cmH"É-v»bÿÅO¤3]@RÚå¿Ãz6Ú¢Gøñ=éôåÆb{~ § l-EùÌá…r l7ó¶7WE5ÏLØüIÑÇeìM3q¥H{]§ëê=½[ÈëPÉfÕ +ó ÌBµ^|¬a¼%Nó@ÝTÊ^ˆ¿­Rwß¾/"»÷=Áüž YP:7}ƒüßIì‘·•ÌËܬ9À¨Â)z%nÒ’qrÊbjØ7ØŸÛ +nÚ곸àTˆ“r¥|«L*ou/‰Ú Yr+Zx³]®Ö0¶KÉ'XT¨§ó/‹òF„Ђu Év8NÛÙw›2—¸p_ oUï»(Ø|ÀK ò° §›eÂpeëy òMJa"ÛJWnÿ )ôû„­2ø·CdòS+±‡ÆØ Ûõ$7/#‚b&4ƒ©¥Lâ±u%"{F>Ñ"•Ô—ú|o .Lv óÿóÙ7gÀ9ƒ¼üû*ËOjèŒ>Ê{„`Þ3V9¡TÙ9 +½:ÕxÙR7cœjºAoŽÅË ÓÁ€øŸÿ yCYçÖ}û?QºÖæŽän/Þïx,ooR1‡é}ôUTaˆZ~Ëþxøü@fŽÔµ§]ÌMñaŽIDsË&ˆ*[ðÀ6W«ð~ë¯À÷ð2éõv7¸0¯4"ÞÇ$зÒÁõég÷DFHÁÛÙÙ±Ðb½-¼’l·t£âeïnÈDã&jðÒ_%ãÞ}b´X’·¾‰@£·uV¢Èu‚o?ü¨f¥¶GjšàÍxå‚O̪4PAÑ×Ù”‹Je„Æ îþÎz6cÿ‚El¡­%/ŒàÄ7íðÌx Ï4è 2ÍC\›p†ýXgã@´‡è9ÞÏ}óæ0ðEæ)mÀrFlè ðÀ ”dý îìªÈI|ž*oÙ^¾Í#¾·Ç•Ë®}m“ <_U ˆ~Oè1áânó­èêO(îÒ³ÝJ$/49=·Bæîoõð +Ó½cf"éªfG„@Û 7µý,ð#Ȃۘâ†Údd' LšGªÜ/M‚=£o Øè} Ü^μ +ÞRY—ì×úÿ‡­ýª‹2ÈŘ”B}†ž®ŸÒéì,¿è!9 Ø-y¸š£å5˜ D>DnëV¡å¤x`ç…IƒFó!5c"ÄÉ¢•C“_Íw“N“ÀƯ”tßnÓAúß®xë^Ön#Ž|Ü©|Â{1sxâpûÐó1–²aÆ'øSDcÚi±T›*¶bhžM„l‡ݨñ5FÚ¸9ÞžÚ~Øœ C¼Á’s}/PqJIÜL**o†‹W!Z í_Mö'Ï#«Y N·FÀû°ýû#½ý´fU¯±¼ûßCó™ôþù·4ÏÒWøÇØÝÑ7Eb«ã˜Ö7áfþóœ7¢z¤Åëêù>Á~OÂ/»’èvЍהžFRÞžT¶4àÇl Çç(P׿7qዉò ÈÈ; î(D˜K¹i¢0‘ÝꜭÈ(o/‰¹¨ß«2XÛ½ü§#iJg»PÏ­Ô­(öЋ™_;¿hädØ?![Œ$âïBd•©TÄ1aNnÅh2ÿ‡:ÓE±”E%†Feàä8Ì­6I 줜9Ûe¥Xi@Hœïí#ãÐem|HLžo´û£_¶ðJÎü”@,Ñ®IÜ¥Ú¨”Bü°>Ï0Ö|‘B[ã(þÅ‚:pYBC ‘gÀ… 1ËÔ˜G×_(êräÓ8t/Þxc/R©xM$ùHT–G8ÂÄ’lÀ/‡3e¤ò+àÐÝÂň¸l=ǦGX,1‘ýØ=Ú™”h¿½°4ü1µÁ;æ^ñN_²°õùí“lΆˆ „S”ÎNi½`œ^$$Â>\3bú_Á t€ETiʨµ%¦ˆzÙ ‚3´&ÿ‚~ùñI³ (`¾ÏûÑ’ÀaLŒdÒ¹å‘X/Ш_tJÜ(3²µG¶ÃÇÇ´©Ò³h!›Ÿ‰Â“ÅEì–Bg<éYÒ›íoŠ<»¦Ìl5Þ”+ôO•oOšîï,bÀû¨ ñÕ 3Æ^+?¯ð=@hxY…÷½©!Ñ|ÕAÞÃè¸ÃJѬàç‘I >ÄMFþ×–•¦æÛR|8¢¥}4< ÛÁ¶áË<ÊÃúþqäÇ8g d¯ë‰Íµkë‰øÝò¢ð7Ó!]ÿPIrÇ]ª 9èï€p#÷™%¡¨m¾ð8h¶’XÔ)ð¨ý“Ù{²Àä­~}áý~ë +ÜîãÅû˜øü"e4ðøî2™™oGº,CÇ݆Éþ˜^ØÓüßù)ƒ¤›Y%R0ôsw¯ y‰H$CGò+ýÙIÈ¥ +N6¼RÓ6 JU‘EX3_,…Ÿ«°°Ž£Lו÷cGÍ(ŸE`&½ŒHÞE÷ÎÔ$¦"96À€§—¸Ê¾™ëõ¼ì +;E=kÝcÄÖ0y3¾jî1âëž`_[Nš„ïORÐÒÀ LÞ¹Ðyùc—Ië âÖ§ße¦LÌ÷ûŽj­zdƒ¬ËvX!›p7Ê“ÝÔg úxp]%"Ø÷Û·«ã|xñÛ(Ð3,‘î§òÇR8ʼ M¤ÑTž~^<þÝÁü¡èZm¸ õåÕÑþ\Ù8)¨c/¶ÔQFý3ÊTŒüT-ÐêæÝ–†²ébÎøš¿6G0OgtY¶ìLbO¯0O«„[3Ö­­y[º3É€W"ÎwfÉaO InǶM3vw¢]¥…´ò¤e„ã¿¥œR4ת!KioÔ —ÚJP\ö>OpF´nÞäJ™­Ë'HOi¯gHÖ‡Õ¬í)ãõk+› [ðçâþM’ê+¶’ðßuÿœ1“üXõ$Td^ÉѼ½So2@ «,ñ^44ŠØÂ¤jaàÕr D[ty&îǵÛ'!n¨5÷µMÌ9ôo"›’o­ k‹DæŒä¾¨}']‘ Æ+ü*Þø´Ï„õŒc$»S‹XYò>Ó¤ø@h'AÒÖ®ˆÄŒšæ]¼/÷ÄÒ;g¸ü“Xê|›K÷ î6‚}ÅufÕ`&ßVŽÓˆûÊŠ-îLÅã¬Ð<¶ Ù™þH½NŸQFE)UÐѳàÄO¿ìÍj³-ÉK.€æ é¨j ?ÒPhªÅ¡g;׿KähÜopzmdžý*i‹eó[MʨbààDòɾbNšø^â}2Yƒy ¡D¢Æ¡V 1 ß,,ìåŸ8qÿ¦ôÜd‡ÆND¯¤V¾¥bj&Gèâ뵡`â ©Ù2­f'OBOƉïÀâg»Nt¨¸Ø‰+ ˜Ã¾œ§¥® ´oîà ³¸ñò—k¿pâPX\Ø:Ra»_–ùó×|&^¬ó—B Ixý—Eª” ÿüNœx‚t«¶zcŒ˜(ap¾ÿÛvwv8!Úí}¬¡Èðô÷|Y ?µ¡õÇÒúÖ~³®w\ÆÀÄ,‰”"FiûU%y£R¾…üO)âÝã“Nx]‹K@0ÁýlBh$>ªäã‰ÊhŹÇÈg˜µi†gûwˇnž8 p,äßí˜Ðßî>„&(5ÞÝÂIiù…FÅ]ý;d,uö®«ÿïk"×Å’Ëá™üw£‡¶Û— +ÿ ¯ÿ𩱻½Šà‹NŠ%BPxg³ »!>5Î^ +v?%„ÖÒcCÉ4Äø)Š™íFeÍm.ËÏ€d{$>qè3¯xN!ÔËÚ@A÷l3ú»!3&1î/ª¸ã’^/Mâ2zž{.INÇéë(–•swA 5àŽ—J颲5NwΦ›V¶¼£ð™®­¨¬X®´S`º«$]öšÖ¯‘.î»l£w·2ñM…nº3 Â<Ô(/òMe"sEH*j¬Ìþ'¼o¦eü x%„hžû é¨þ¨ÉýTë’ü4÷.Áwqf ùKʯàd²l>U!I`0’UÑD2ßÃòÔ&**džþ læ9%K°¤ñn¸=¼ßk{&Æ+ÐèmZÉe…ynG„(}'£N„f'‚¤–®rȨÑõ¯Ù;¼ò¶Yò¢¸|½¾†Ës\*púŸîBUÏ68ÀÏO]@Öâ¾PÙ¸ìü²]érûâ°yòn‘:0x‰½¶œ¤i[äâD΋âN°h³7yÔÜ”xcÀ¥ +^¤¯PH[Ίáµa’48¤+É>`÷—V¿UA±üñ{ \åY üÛ‘*@Mn¯$@lr +)÷ÇT)-²†®D‰´~(éx¿·´ ïò6G/ ›z…‡y¬¯s ^ý +°9TÐb¯ý«‹‘˜ßMW&ÞuI^‡Qû†->¯éÛyyÏñVyûR&}á”ß&MÍŒ•a›g¿ý YŠ5ÍwèF: +ȇ8ËZ |LtPáÝ [âTb|­%í®ÚP Y/É!lc€ð~qÌJwXÌ× ¡, +Z5à»tp]¬ÞL^A¾qì·ÞàúEßs@á¶a•”O™yò‘„àú“ÝZÅNÑ쎸1 êº1šñÿk|÷KÖŒ9‡/õœˆt?ðÁŠ£PÌ+õ‡ëÈ4!zâ¡Ø¨»+ ‰ÄyBjöä&°fBF?wl +U,Ñ· ™dÚ©¾¦Ô]ÑM4;mѲ«%m¤€Èg4çú¾ë¯\ˆ$þ®€_!´¨þ‡¿Œ„°ÿ4d‰j4jÀ1››•}Ö` êÕßÆÐºlÕ~ÀámðJηQ]‡²¦×÷ôD +»—>õëÁ£Ž?Û‰ä ¹Õ±œXÓá÷1sã‡è0Þ÷ÜÃo7""÷½±§»ÒH™)jìvÒCÔIpdÀUÄü{© ÎM• À7Ü®\“*8÷Bï6n†ƒ;ãÌS2>²An×W¹xmx¯,× äm|ãüó&м“®¤”¢¨.¦Bv«|vàZk® 1æV1YœúËþÿèl(Ý ¡™UÂjì¶WÖ8¼pn£G´F…Ä9¨˜˜ÛMK +®y¯Ùß7¬¨Òkt°Þ9W%\£“€M#„+⯪Ô3‚£B9Àh‰} ï6´ÞлFà¨×IJÊ;Ä]£JbVhäCˆnr·ºv¶b rŠ’Í)§ +hUn”Œï¹SxËþZ5ˆºáZ ö|ªè)~7Õþ-\/ä¨4í1Þk’½ ÚêÉð3~Ñ¢neq`9ÇÙ %"‚”üÜšÔm JâeIoíå’ÝžGÒš”¼Ý)!•~áD<0‘¤“uX™ûp ɗ績k†xú˜2äAVv²%A‹ä_I§®¯wËN¼JJ«4M±CŠåê(ví©ˆtÖ5á»9ŒéÞâÇûu8n=Ø`i;àh?•j>Úg•&•6bu@ÈêòcwÁ²Ïæ@ÏUÚ‚M»Âåpvk,7AˆË境$ã [|þB³Õ{kSÞOŽ2¦"¤ú€<õÛƒ:§»aØä¹þŸÊ×Ia'•ªqÿ-Z±Õ¾ýá]¡#AïCV7ÜøFýiÔiÛÉç`f4í’Üa67kˆ‹¬5,v݃ԇìÿ0*Å«ù¦ ›U6NÓÐŽ»Äééè7ùbÃ]sNRn~ú0ݯˆí bΩ?šuºÀ÷Ýã¶a…’¯Û% $Déé3®½hþ*ŒÈ ]®ð ++ŒŽ„d™¨-;¡e4ÞKz5pIÙ/†Ø}22Ût$..Òp²[8¬å#%II¾ï¹C f‘‡ÏœdWÂKœ€snkÊê—Sp€éYR â'­~ärÃŧ|³¤|1ê&ø’j¯SÏ¡Nqú_RƒŒª"¸”sÁDüüaS¢±÷,^††×Y^°Fx>`}ªAÙø ð„Êý˜ýYD1ƶé"ÿµ½ºÈ˜dyËÛÄ‘Tá`±œÏ…Òe€Å¢Oö~°§/¢¶´{@;Œ£É?æƒ0ãC”⃜X}ŸŒ®ðPÜÀŸ*w_ó׿,û8É­î¬òÁÓTùÄ.$á.¶º™ Íðé´)Y§ÏÙÊp‚Šè€óOŸ~?s]†<[HìÿÉqoŠ«cÑ¥|7D6 ƒWsªïXé-è®Éú8âè[“¾ÿÛRÜáö" ŠcåÑmb‡ƒòò§‹i«µí)¯#+_î㤨·ôì§m ¡­…¥wqä…YqyÆ¡€í êrÙQ9Àò„÷¼&X‡3`]ý“o^‚€@>ДcŽîj‡¡Â}ípAGAlѤB:ù;~ùkò'£xÀö6Š&•ŠsÅdµ,sìG-&墆١« +eK§Õ6Ò %³´-µ1)Œy`!ø{ª˜ÔÙ*47ƹMJÁ)† ]—Ê6,ÚàG4Ÿr®{Ç¢•q‡µ©®,Öf>ç71MÉ—± $= k“2-òDa0„Ç0¾aç°ÌÆ¥0øÁqý ©8Ú©o’ÙŒšs´—0ºx—¿Æöï  Ÿq1’ôQ–áoE(Á:±ÑX½aDZ¡Ç,¦‘âóqÛEجhIéDÿÝÿ[eÓ:—ƒÒÂp‹ïʦ~yB)'ž6~#eTxÍ«‹€às¨Ê¨Ù‰„M¼wÅF‡¹ÿbŽ™Cr…s)ÓkœÝ]¨©wo³I :§]Ÿû¬í`ë‰Ã×<ýDzéÄ¥s¡§¦ä×Í!.z”Ð&ÄO„éd„?ÿ(!žXêI¹hM’´Ë‹ ”cÐ<ÅY’xweb¢P‡Z"ʉÇ×<ÄùÇñ#Ä01s†$™]ø+&B<ˆÐ¡­óÜüN>€­á™ÉR‡Á!6tš©Ê~æ!žg0ȹ &¢0Î sÀ !–MzbXVc9Ô1ÙÛBüä!îŽ*$!fË!ö‡™Ã$LˆÕç Åk¿vF!žÑD2þ#çã“pBŠöÿ‘Ëaú÷ÔëüÇ'° 1RÛ~›ªåCls$ó×à7[ÿGF÷<Ä›ºh=‘ö†«éGÝUÌïIˆ³«P¤­ÙÀ×±Õ£ÚÛGŒ#Æ'8-á½%ï²­?¾`¨¤Î ×å ýp¾.è + +UÂy £áÖ +rÓ%ÑáµÄg£î¶(¼œŠÃ¡µÖÔ“(‹·¤yöff$ÊNªSi¤l&ÚÈW%„nO¨KìZ“¹"›\©U@ñÂËe GÐU‘o‡›—QÚβûÖÊM ¤wš–‚ú·d'ý®P¿— ürB­Vr£4jåCÙ€ßðxz‡w„¶ýÊ<“¥½ð^b`Tpx˜–›µ‘–^I4ÎwÑ´9‹î.ÃØGY1øg@Ëç¨Xލ޲¥«(fXé³[CÅëÅGáÖ°ø)k×CüA†ü‰Š¯Å͜܌ëoÚHê♇¢u·½° è’=Éq³š—g:µ“(~)½k×¼MK,ÛëZ‚BÜÁ«NæêP·ùOu ½Ðþò_l$˜ïýF˜g¡aöš•s´´æc*0ÆgöÔ„{©«ñ\Íð=A¦ 3Ul}µ¦Õ–®UœË¨I*U©h#‘¤<´ÕY'] ÂȨa„RÆ|_Œ;Æh¹ é¿Ep>VÇ  0«T ZÐÈ›0 "ž*©°&hO•Å;ƒYw,jpôȽûÊèJB È­Ñ`ç#@ñOá Þå? (ZE˜j0?iÁ©„.À¹h;T‡Óç¼¾C •É +endstream endobj 53 0 obj [/Indexed/DeviceRGB 255 54 0 R] endobj 54 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> +endstream endobj 44 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +81.999 87.966 m +58.509 87.966 39.398 68.855 39.398 45.365 c +39.398 21.876 58.509 2.765 81.999 2.765 c +105.489 2.765 124.599 21.876 124.599 45.365 c +124.599 68.855 105.489 87.966 81.999 87.966 c +W n +q +0 g +/Perceptual ri +/GS0 gs +51.3276672 0 0 -51.082531 79.320961 52.8889999 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 45 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +81.999 84.397 m +60.486 84.397 42.985 66.887 42.985 45.365 c +42.985 23.844 60.486 6.334 81.999 6.334 c +103.511 6.334 121.013 23.844 121.013 45.365 c +121.013 66.887 103.511 84.397 81.999 84.397 c +81.999 2.748 m +58.5 2.748 39.382 21.866 39.382 45.365 c +39.382 68.865 58.5 87.982 81.999 87.982 c +105.498 87.982 124.616 68.865 124.616 45.365 c +124.616 21.866 105.498 2.748 81.999 2.748 c +W n +q +0 g +/Perceptual ri +/GS0 gs +42.6973495 0 0 -42.4934349 81.3880463 46.1602249 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 46 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.058 0.058 0.052 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 81.9989 84.1684 cm +0 0 m +-21.678 0 -39.315 -17.636 -39.315 -39.315 c +-39.315 -60.993 -21.678 -78.629 0 -78.629 c +21.678 -78.629 39.315 -60.993 39.315 -39.315 c +39.315 -17.636 21.678 0 0 0 c +f +Q + +endstream endobj 47 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.058 0.058 0.052 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 81.9989 87.0704 cm +0 0 m +-23.499 0 -42.617 -18.864 -42.617 -42.05 c +-42.617 -65.236 -23.499 -84.1 0 -84.1 c +23.499 -84.1 42.617 -65.236 42.617 -42.05 c +42.617 -18.864 23.499 0 0 0 c +-0 -84.322 m +-23.499 -84.322 -42.617 -65.204 -42.617 -41.705 c +-42.617 -18.206 -23.499 0.912 -0 0.912 c +23.499 0.912 42.617 -18.206 42.617 -41.705 c +42.617 -65.204 23.499 -84.322 -0 -84.322 c +f +Q + +endstream endobj 48 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +81.999 81.152 m +75.588 81.152 70.373 75.936 70.373 69.526 c +70.373 63.115 75.588 57.9 81.999 57.9 c +88.409 57.9 93.625 63.115 93.625 69.526 c +93.625 75.936 88.409 81.152 81.999 81.152 c +W n +q +0 g +/Perceptual ri +/GS0 gs +16.1964035 0 0 -16.119051 82.1906052 72.0745926 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 49 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +102.511 78.7 m +102.519 78.664 102.525 78.629 102.532 78.594 c +102.665 78.566 102.669 78.596 102.511 78.7 c +90.96 53.648 m +90.42 44.003 l +96.789 37.064 l +90.42 30.124 l +94.63 25.537 l +90.42 20.95 l +90.96 11.384 l +73.038 11.384 l +73.038 53.648 l +65.913 57.294 61.054 65.174 61.054 74.231 c +61.054 75.746 61.266 77.147 61.48 78.66 c +62.254 78.806 74.754 84.045 y +74.65 83.479 89.348 83.479 89.244 84.045 c +101.321 78.849 102.532 78.594 v +102.839 77.106 102.943 75.724 102.943 74.231 c +102.943 65.174 97.977 57.294 90.96 53.648 c +61.486 78.7 m +61.484 78.687 61.482 78.674 61.48 78.66 c +61.43 78.651 61.429 78.663 61.486 78.7 c +W n +q +0 g +/Perceptual ri +/GS0 gs +22.6831684 0 0 -37.6614571 81.9402084 62.7759361 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 50 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.058 0.058 0.052 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 76.7188 76.9968 cm +0 0 m +1.956 0.356 4.002 0.534 5.958 0.534 c +8.003 0.623 9.959 0.356 11.916 0 c +12.005 -0.445 12.094 -0.889 12.094 -1.334 c +12.094 -4.714 9.337 -7.471 5.958 -7.471 c +2.579 -7.471 -0.178 -4.714 -0.178 -1.334 c +-0.178 -0.889 -0.089 -0.445 0 0 c +3.557 -51.764 -2.49 24.637 re +-15.632 -57.126 m +-22.559 -51.102 -26.944 -42.223 -26.944 -32.286 c +-26.944 -20.723 -20.897 -10.05 -10.938 -4.091 c +-11.115 -5.248 -11.293 -6.315 -11.293 -7.471 c +-11.293 -14.32 -7.292 -20.279 -1.423 -23.036 c +-1.423 -54.254 l +5.958 -61.636 l +13.338 -54.254 l +12.894 -47.762 l +16.362 -44.293 l +12.894 -40.824 l +18.14 -35.577 l +12.894 -30.329 l +13.338 -23.036 l +19.118 -20.279 23.209 -14.32 23.209 -7.471 c +23.209 -6.315 23.12 -5.248 22.853 -4.091 c +26.467 -6.273 29.566 -9.089 32.05 -12.347 c +26.043 -4.097 16.284 1.27 5.264 1.27 c +-12.994 1.27 -27.795 -13.46 -27.795 -31.631 c +-27.795 -41.913 -23.055 -51.093 -15.632 -57.126 c +f +Q + +endstream endobj 68 0 obj <> endobj 32 0 obj <> endobj 31 0 obj [/ICCBased 69 0 R] endobj 69 0 obj <>stream +H‰œ–yTSwÇoÉž•°Ãc [€°5la‘QIBHØADED„ª•2ÖmtFOE.®c­Ö}êÒõ0êè8´׎8GNg¦Óïï÷9÷wïïÝß½÷ó '¥ªµÕ0 Ö ÏJŒÅb¤  + 2y­.-;!à’ÆK°ZÜ ü‹ž^i½"LÊÀ0ðÿ‰-×é @8(”µrœ;q®ª7èLöœy¥•&†Qëñq¶4±jž½ç|æ9ÚÄ +V³)gB£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚óÈtÕ;\ú” Ó¥$ÕºF½ZUnÀÜå˜(4TŒ%)ë«”ƒ0C&¯”阤Z£“i˜¿óœ8¦Úbx‘ƒE¡ÁÁBÑ;…ú¯›¿P¦ÞÎӓ̹žAü om?çW= +€x¯Íú·¶Ò-Œ¯Àòæ[›Ëû0ñ¾¾øÎ}ø¦y)7ta¾¾õõõ>j¥ÜÇTÐ7úŸ¿@ï¼ÏÇtÜ›ò`qÊ2™±Ê€™ê&¯®ª6ê±ZL®Ä„?â_øóyxg)Ë”z¥ÈçL­UáíÖ*ÔuµSkÿSeØO4?׸¸c¯¯Ø°.òò· åÒR´ ßÞô-•’2ð5ßáÞüÜÏ ú÷Sá>Ó£V­š‹“då`r£¾n~ÏôY &à+`œ;ÂA4ˆÉ 䀰ÈA9Ð=¨- t°lÃ`;»Á~pŒƒÁ ðGp| ®[`Lƒ‡`<¯ "A ˆ YA+äùCb(ЇR¡,¨*T2B-Ð +¨ꇆ¡Ðnè÷ÐQètº}MA ï —0Óal»Á¾°ŽSàx ¬‚kà&¸^Á£ð>ø0|>_ƒ'á‡ð,ÂG!"F$H:Rˆ”!z¤éF‘Qd?r 9‹\A&‘GÈ ”ˆrQ ¢áhš‹ÊÑ´íE‡Ñ]èaô4zBgÐ×Á–àE#H ‹*B=¡‹0HØIøˆp†p0MxJ$ùD1„˜D, V›‰½Ä­ÄÄãÄKÄ»ÄY‰dEò"EÒI2’ÔEÚBÚGúŒt™4MzN¦‘Èþär!YKî ’÷?%_&ß#¿¢°(®”0J:EAi¤ôQÆ(Ç()Ó”WT6U@ æP+¨íÔ!ê~êêmêæD ¥eÒÔ´å´!ÚïhŸÓ¦h/èº']B/¢éëèÒÓ¿¢?a0nŒhF!ÃÀXÇØÍ8ÅøšñÜŒkæc&5S˜µ™˜6»lö˜Iaº2c˜K™MÌAæ!æEæ#…寒°d¬VÖë(ëk–Íe‹Øél »—½‡}Ž}ŸCâ¸qâ9 +N'çÎ)Î].ÂuæJ¸rî +î÷ wšGä xR^¯‡÷[ÞoÆœchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â­*­6X[ݱF­=­3­ë­·YŸ±~dó ·‘ÛtÛ´¹i ÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö +n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=GTB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%—®K7YV³©fFŸ¢ßY Õ.©=bàá?SŒîƕƩºÈº‘ºçõyõ‡Ø Ú† žkï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹­³mzyâò]íÔöÊö?uøuôw|¿"űN»ÎåwW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝ­èþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_pß¶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMśΠnßLÝlÜ<9”úO¤[þ˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ +¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäü儿 æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ ÷„óû +endstream endobj 65 0 obj <> endobj 67 0 obj <> endobj 70 0 obj <> endobj 71 0 obj <> endobj 72 0 obj <> endobj 66 0 obj <> endobj 73 0 obj <> endobj 74 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +22.6831684 0 0 -37.6614571 81.9402084 62.7759361 cm +BX /Sh0 sh EX Q + +endstream endobj 75 0 obj <> endobj 76 0 obj <> endobj 77 0 obj <> endobj 78 0 obj <> endobj 79 0 obj <> endobj 63 0 obj <> endobj 64 0 obj <> endobj 80 0 obj <> endobj 81 0 obj <> endobj 62 0 obj <> endobj 61 0 obj <> endobj 58 0 obj <> endobj 60 0 obj <> endobj 82 0 obj <> endobj 83 0 obj <> endobj 84 0 obj <> endobj 85 0 obj <> endobj 59 0 obj <> endobj 86 0 obj <> endobj 87 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +42.6973495 0 0 -42.4934349 81.3880463 46.1602249 cm +BX /Sh0 sh EX Q + +endstream endobj 88 0 obj <> endobj 89 0 obj <> endobj 90 0 obj <> endobj 91 0 obj <> endobj 92 0 obj <> endobj 55 0 obj <> endobj 57 0 obj <> endobj 93 0 obj <> endobj 94 0 obj <> endobj 56 0 obj <> endobj 95 0 obj <> endobj 96 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +51.3276672 0 0 -51.082531 79.320961 52.8889999 cm +BX /Sh0 sh EX Q + +endstream endobj 97 0 obj <> endobj 98 0 obj <> endobj 99 0 obj <> endobj 100 0 obj <> endobj 39 0 obj <> endobj 40 0 obj <> endobj 41 0 obj <> endobj 42 0 obj <> endobj 43 0 obj <> endobj 105 0 obj <> endobj 106 0 obj <> endobj 107 0 obj <> endobj 104 0 obj <> endobj 108 0 obj <> endobj 103 0 obj <> endobj 109 0 obj <> endobj 102 0 obj <> endobj 110 0 obj <> endobj 101 0 obj <> endobj 111 0 obj <> endobj 112 0 obj <> endobj 26 0 obj <> endobj 27 0 obj <> endobj 115 0 obj [/View/Design] endobj 116 0 obj <>>> endobj 113 0 obj [/View/Design] endobj 114 0 obj <>>> endobj 33 0 obj <> endobj 34 0 obj <> endobj 35 0 obj <> endobj 36 0 obj <> endobj 37 0 obj <> endobj 38 0 obj <> endobj 52 0 obj [/ICCBased 69 0 R] endobj 28 0 obj [27 0 R 26 0 R] endobj 117 0 obj <> endobj xref +0 118 +0000000004 65535 f +0000000016 00000 n +0000000161 00000 n +0000038951 00000 n +0000000000 00000 f +0000039002 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000042686 00000 n +0000000000 00000 f +0000042759 00000 n +0000042999 00000 n +0000045017 00000 n +0000110606 00000 n +0000176195 00000 n +0000241784 00000 n +0000307373 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000357014 00000 n +0000357089 00000 n +0000358179 00000 n +0000039627 00000 n +0000042339 00000 n +0000347025 00000 n +0000346912 00000 n +0000357400 00000 n +0000357524 00000 n +0000357647 00000 n +0000357770 00000 n +0000357894 00000 n +0000358019 00000 n +0000354929 00000 n +0000355081 00000 n +0000355225 00000 n +0000355369 00000 n +0000355521 00000 n +0000341784 00000 n +0000342316 00000 n +0000343039 00000 n +0000343509 00000 n +0000344163 00000 n +0000344688 00000 n +0000345650 00000 n +0000042401 00000 n +0000358144 00000 n +0000341222 00000 n +0000341270 00000 n +0000353578 00000 n +0000354030 00000 n +0000353641 00000 n +0000351799 00000 n +0000352554 00000 n +0000351862 00000 n +0000351736 00000 n +0000351673 00000 n +0000351245 00000 n +0000351308 00000 n +0000349709 00000 n +0000350269 00000 n +0000349772 00000 n +0000346849 00000 n +0000347060 00000 n +0000349923 00000 n +0000350041 00000 n +0000350149 00000 n +0000350384 00000 n +0000350437 00000 n +0000350744 00000 n +0000350821 00000 n +0000350976 00000 n +0000351094 00000 n +0000351171 00000 n +0000351459 00000 n +0000351554 00000 n +0000352013 00000 n +0000352179 00000 n +0000352305 00000 n +0000352428 00000 n +0000352669 00000 n +0000352722 00000 n +0000353029 00000 n +0000353106 00000 n +0000353261 00000 n +0000353427 00000 n +0000353504 00000 n +0000353792 00000 n +0000353910 00000 n +0000354145 00000 n +0000354198 00000 n +0000354503 00000 n +0000354580 00000 n +0000354735 00000 n +0000354854 00000 n +0000356666 00000 n +0000356465 00000 n +0000356244 00000 n +0000356027 00000 n +0000355673 00000 n +0000355794 00000 n +0000355912 00000 n +0000356124 00000 n +0000356341 00000 n +0000356562 00000 n +0000356787 00000 n +0000356893 00000 n +0000357282 00000 n +0000357314 00000 n +0000357164 00000 n +0000357196 00000 n +0000358211 00000 n +trailer +<<9F89EF539AF2504791E293B62117F98B>]>> +startxref +358408 +%%EOF diff --git a/share/branding/keepassxc-icon.ai b/share/branding/keepassxc-icon.ai new file mode 100644 index 000000000..47283e03e --- /dev/null +++ b/share/branding/keepassxc-icon.ai @@ -0,0 +1,1637 @@ +%PDF-1.6 %âãÏÓ +1 0 obj <>/OCGs[29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + Adobe Illustrator 27.8 (Windows) + 2023-08-14T23:38:54+02:00 + 2023-08-14T23:38:54+02:00 + 2023-08-14T23:38:54+02:00 + + + + 124 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAB8AwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4qxHz3+Zvl3yesMF16 l9rN3/vDo1mvqXMpOyniPsqW25H6KkUxViKn8+PNP7+S7s/JOnSA8LaKNby94np6jPVQf9UofbAq 3/lVnmUfDP8AmVrX1w048ZvTWuwH7rma/fgQuOi/nn5cAl0rzFa+arWOpOn6nAIJWHgsyHkW92kA /VhSyDyV+bema7qJ0DWLOXy95pjHxaVebCWne3lIUSbb0oD4VArhtWeYq7FXYqlnmPzLoflvSpdV 1q7SzsotjI/VmNSERRVnY02VRXFXmi+evzX86/H5N0qLy7oMn91rWrjlcSr15xQDkoqOlQwP82Kt t+WfniZvrGs/mTqnquSStmFsowx7BUfjT2CjFWx5D/NjSwZ/L/5gS3tR8Ntq0KzowrUAzH1WHzVc VRGnfnBrGh38WlfmVpA0aSZgltrlqTJp0pNftElmi6d2P+VxGKvUopYpoklidZIpFDRyKQysrCoI I2IIxVdirEvzN89r5P8ALv1qCH63rF7ILTR7EbmW5k2Wqj4iq9Wp12HUjFWE6Po+neQdNn83ebZv 0r501T47iduLSeoy/wC89v2REGzMNqe3FcqyZBAWWEpCIss+8qa1Jrfl6y1SRFje6Qu0aElVoxHG p60pQ4cU+KIKYSsWwPW/yQi1DzHcahHqAisbyZri4iKcpVaRi0gRq8d2O1envmNk0fFK72apYbNv SpmjstPdkosdtESvLoBGu1fuzM5BuebA+V/za8vGC6T9H+YrEepBNGf31vIPsyxOOLNHypyXt8+L ZThzCY82GPIJe9P/AMqvOeq3/wBe8qeZqL5r0CiXD12urfYR3K13NdufzB/aoLw2PQcVQ2qalY6X p1zqV/KILKziea4lboqIOTHbrsOmKvGdBsH8+X7/AJiedgIfLdnzby5o1waQRQKf96Z1rxZnp36/ 6oUYqzPyN59t/Nd5qy2kPo2WntElsW/vJFfnV2X9kHh8I+/2VQv5hflv/im4try3uhbXcCeiwkUs jR1LDpuCCxxVPvKHlqDy3ocOmRSGZlJkmmIpykf7RA7DsMVY1f8AnTy5qvmnVfInmC2ie1cxxW0j 7xymSFHMbfySB2PBh38G6qpX5Uvb/wDLfzdb+TtRna48o607f4bu5SWa2nJH+iMT+ySQB7kHu1FX sOKvJXU+aPz0unn/AHmm+SrSOO2jrVfrt4odpKdK8ar80GAq8/8AzF16bXfMtzLz5WlqzW9mtfhC IaFx/rsOXyoO2abU5uKfkHByzssi/Kv8wbXR4v0HqzGOzZy1ndUJEbOd0cD9kncHsevtfpNQB6S2 YctbF7Tmzcp5f+av5h20FpdeXNLYyX0wMN/OKhYUI+JAf2nYGm3Qe+YWq1AiOEc2jNkoUHlvlvVb vRNYttStSfUgcFk6B0OzofZhtmuhkMZWHFjKjb1H8wJoNG81eUPzAszSB5007UpFrR7O7UlGYD+Q Fm+fHN4De46uwBewZJLy7885bnUofLnkq3ZkHmbUFW8daV+qWhWSYdOxZG/2OKse/OnWBbW9h5V0 8CCziiSWeJNl4J8EEVB2XhWn+rirCPIHm2bynrovGjM1lOvpXsK/aKVqGWu3JTuPHcd8VfR+k6tY atp0Oo6fKJ7O4BMUgBFaEqRQgEEMCDiqX6z5ie1uDYafCt1qAUPIHcxwwq32TK4DGp7Ioqe/Eb4q 8a1r8sNXlubvVZ9bhmvJ3e4l5W7RLzYlj8YlfiK9PhxVkGoXI89/lbqGnXlV8z6HELkrX956tuC0 c0bbcvWRWWo7k9MVZh/ysOX/AJUz/jKv+nfo7lyotPrv9xXj9nj9Y/DtiqR/lmAPMv5jTLveHWZV IpvwTn6W1Pc5E9UPKzbkqCdzTrnNcTrGobatxHt+2v68nGW6Q+iNAubma71tZpGdYNQMcAP7Ef1a BuI9uTE50GOVk+/9AdjE83kH5leVbjTPMM168qywapJJcRGoDqSashWtfh5Ch6ZqtbjMZX0LiZ4k G+9iqW/tmEZND0P8wwT+RETSH97GloYa7GqzKq0Hf4c3unP7uLsMf0h7dmS2PKvN4V/z48oLKfhj 068eBTQfvCkob5/CMVYT+aMTyed9SLA0HoBPl6EZ/XXFWHvae2FXsv5bzXUOm+VrRJGW2lttVeaI fZZku4+BP+rzanzwKk6eeNIgbUJ5ZudzJeXTuoNSQszJGK7DaJEUewwJedjzxq126Xd1qfOK5dGk sKx8EWVgOCqoDfu+Xz23woT7yXrtuPPmlcHpHdmezu+XwhoZYXahJ8JI1IwBK717v/oWL0qn0vr/ AKfGm3p/XPUpXw9Xf54UM60enl787PMOlyj07bzPbQ6lYEnZpYQVlUf5Rb1G+Q+WDqrEPM2gvpet XVoVpGHLwHsYmNUp8ht885rUwOOZDrskeGVJZBbf6RFt+2v68qjLdgHuWgLS61s/zagx/wCneEZ0 mHnL+t+gOxhzPveWfmCLW481XTwTSTlaRy+p0R02Mcf+Svy61+eabXTHiGjbh5z6kksdLmvLuG1g XlNM4RB7k03zEiDIgDmWoCzTN/zLtY7tvKPkG0JL393C1wEpyFnaL+8Zh8qsP9U508I8IA7nZgUK ev5Yl5b+cldH13yd5xoBb6XfPZ38ndYL1Qpc+yBW+k4ql35q6Gf0hb6tEKw3KCKVh09RPskn/KTp 8sVYA1p7YqyfU3lh8q+VYI2KJdLqNvPxNCYzOsjJUdm9OjeIqMx9VMxxkhtwRBmAW7SO3CgFFAAo BQds54ku4Add8CDTpiFLG9ajhNlcAopHpsaEDsK5djkQQ1TApkvFP+hWOHH4a8ad/wDjsUzoL9N+ TqK3egfmr5N1DW9NtNX0IiPzPoEhu9Mb/fg2Mlud6fvAopXuKbAnJEISjT7/AET8yPLy3VuRaa3Z 1jubVz+8gl6NHIvXgxX4Wp+PIZiarTDLH+kGrJj4h5sO1DSdQ0q6Ed5AYnU1RiKq1O6t0Izn8mKW M1IU4MomJ3ei6b560M6RNfTBbe7U1uLVAA8spFAU/m5Bep6d9s3mLXYzAyOx6hzI5o1bzucXetat PNBbFp7qRpPRiBanI1/2zmlmZZZkgblwzcpbM003TdI8k6TP5g1+ZI5o02GxKVB/dx/zyP02/VU5 udHo/C9Uvq+5zMOLh3PNv8sND1PVtWu/zC16Iw3mpRiHRbJt/q9j1Vt/2pP1VP7VBsAG96XhVLPM 3l6w8xaBfaJfgm1vojG5HVWryR190cBh7jFXmnkvVJFSf8tfOdE1jT0EdjOxot5ar/cywserKF+d BvuGoqlXmHyhqWjyMzIZ7OvwXKDan+WP2TiqC1PXLaTy7pemSQhbmzvGa3npUmOSKZnWvUfER8/o zG1n90fx1b9P9YQsV3Qdc0NO0Bamu6jriApKTatODaXH/GN/+InLIjdrmdmWf+utf7L/ALvOb/8A h+Dqur3jLGLAfOH5XfXtU/xJ5Wvf0D5oUHnOg/0e5B343MYBrU0+Kh9w21AQqQzfmB5p0WE2vnzy lO0K0D6lpyLdWj70DMpJCfS9f8nIyjYoiwgi0IfzM/JE1d+KSdTEbWYGvYUC8d8x/wApi/msPCj3 Iq2/Mx71GtfIXlO81CQngLloVtbMGhozSdPoYr88vhAR+kAMwAOSZaH+WGratqcWvfmHdx6leQ/F ZaLCP9Bt67/Ep/vG/DbcttSYCXpeFXYq7FWN+d/IOheb7FIb9WgvbY87DUoKLcQONwUf+WvVen00 IVYUupfmv5PP1XWdLPm3SI/hi1XT/wDevgK/3sHxMzUHh83OKsO8/fmF5C1LRVk0+3fT9btp1m+q 3FsYJHAVkeMtGHQNSSu57ZVmx8cTFnjnwm2G6X5l1DU5BDp2k3V7OQSIraOSZqDqaIhOa38jNzPz QTZofOzD/lFNW/6Q7j/qlj+Rmv5oIO50b8wL1WtoPK2pxtKOIeS2nUAHY7uiKPpOTjopAsJagF7L /wAq51j/AJUd/g/4f0v6Hq+nzHH1/rX1z0uf2ftfBXp703zZcO1OJe703JIdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVQ2panp2mWUt/qNzFZ2UC8prmd1jjQeLMxAGKvKL3/AJyP0m9vZLDy N5e1LzhdRfbltYmhthXxkZHcD3aMDwriqwfmD/zkNKhuIvy2gS32PpyX8IlpQV+EyI3/AAmKrR/z kPe6LMkXn3yXqnluJiFF+g+tW1T3L8YvuXkcVeo+XPNHl7zLpqanoV/FqFk+wlhNeJ/ldTRkb/JY A4qmmKuxV2KuxV5n5s/5yC8h6HfnSdPNx5j1uvAafpMf1gh/5WkB4V7EIWI7jFUnT8zvz21I+ppP 5ZG3t96DUL2OKQgUpVZfqxB9qfqxVa/51fmXoY5+bfy2vobNN573TZRdKig0qVVWT75RirN/Iv5s eRvO6EaFqAa9ReUunTj0rlB3/dt9oDuUJHvirL8VdiqWeZfMek+W9CvNb1eYQafYxmSZ+pPZUUd2 ZiFUdzirwq30u8/MyKT8wfzOujo35c2NZtH0AyPEskQNFnnK0ZuYNFK/E5Pw8VpyCvZfy81Py3qn lCw1Dy1YjT9EnEn1K2WJIaJHK0XLglQOfDl47774VfP/AJt1T/nKu289Xemac9/PaSXTDTrq3s4G svQZz6Jab0jGgCU5eo1R3wK+jpmktPKzvrarqEttZFtSUIvCdo4qy0RqJRyDQHbCrwv/AAvYyWf/ ACtD8ibsQTxgnVfLQDCGcJ8TwG3r8EgB2jGx2MZBpyCvX/y0/MPSfPnleHWrEejMD6OoWTGr29wo BeM+I3qrdx4GowqyrFXYq8I8w+YfMv5veZbzyj5RvG0zyRpjCPzB5gjBDXLAkPBA4NCpH39T8NAy rLvyjP5VWd3q/l7yHbJI2iLAmq6qoDmaSYyAKbgnnKQYWJ4/AP2cVYt+f9/+eum6zY3PkV7ubQpb cJNb6fax3MqXSuxZnAjkl4shWh+zsendVnH5Mn8w38kxT+fZWk1q4meWKOWOOKWK2KqI0lWNUHKo Zt/i3ocVYZ5u8qflv5982atpejXB8ufmZoL+rFfQD0JJW4rIkp9M0mX4xyYfvF+XVVOvyl/MzWr/ AFO98jedoha+dtHrVwOMd7brSk8fQFqfEaChHxDuAq9TxV4j+aMcnn782tA/LgMToWlR/przGq/t 02iibv0ZV/56V7DFXjn/ADkj+ZkvmHzVJ5Y0x/S8t+X3NtHBF8MctzF8EjlRRaRmsaeABI+1gV6f /wA4pfmXpl15bXyRfTrDqunvJJpqOaevbyMZWVCerxuzVX+WlOhoq+gsKvLv+cgfzM0zyj5JvrBJ 1bXtZgktbC1U1dUlHCSdh+yqKTxJ6tQeNFXyp+UH5l3/AJB8322opI7aTcMsOr2gJ4yQE0L8R1eK vJPu6E4FfRNykX5f/ntpupaeyp5W/MVDFcxp/dLfihSRe37x5FI/13wq9zxV5l/zkH5s1DQ/IZ0/ SCTrfmO4TSbBU+3+/qJCvvw+AHsWBxV5j+ceuQ/lX+W2j/lp5cl9LU9QgMur30VVkMbGkr1FDW4k DKPBF4+GBWB/841/mTp3k3znNbavMLfR9bjW3muG2SKeNiYJJD2X4mUntyqdgcVfayOrqHQhlYAq wNQQehBwqxPzv+Z/lbyfJb2uoPNd6veitjo1hEbi8m7fBGtKAkUBYivbFXyb5m8sfnXL5xvfP8Xl 3VLC7ku2voJYomaSBa1RSq1aiRgK1V6dcCvTvOmvDzh+XehfnB5fMdv5v8pSRnVII92CB+E0TqPi 4cj6ihv91s3jir3P/GWk/wCB/wDGPL/cX+j/ANJ9RX0/S9Xj/rfs08cKvLvy5uGP5mfm95llXnc2 Ekdrb8jU8LaOUFenQi3jpir49mllmleaVi8sjF5HbclmNST8zgV0M0sMqSwu0csZDRyISrKw3BBG 4IxV+hflDzZca7qfmWzlgSFdC1I6fE6EkyKIY5ObV6GslNsKvij87LXWrf8ANPzL+lopIpZr6eW1 9Wvx2rSN9XdCSaqY6Up8u1MCsIxV9Medb64u/wDnGbyR5gc/6do11ZvBJX4qWzS26jlQ9Qin6MVf TmFXjf5nRnU/z1/LLSJRW3tze6gATsZIY/VU0od1NsKfwxV8+/8AOSWoz3v5x66sh+C0+r28K1rR Et42P3uzN9OBXmOKvrr/AJx385X0HlvyZ5ZaMTQ6nDq07XLsxeMWdwAiKOnE+p9GFU8/I22s9Q0X VPzU1mkmr+YZ7qb6zIObWthayNClvHQEhVEJrTqAPDFWK+U/+csl1nzxaaNc6IltpGo3S2lrdiYm ZDK4SJ5FK8SCSOQFKV6mm4VN/wA0vLlr5e8622oacot9M8+wXmheYrJPhikuZrdzbXPEAgScz8TU 8T1ZjhVin6cu/wDoTitT6tfqPqV39P8ASVPDp6fwUwKzDyRBDpv56/mN5Xuxxh8xW0GpW56c04kS ha963Tf8DhV8i65pF3outX+kXg43Wn3EttOO3OJyhI9jTbAqBxV94/lX/wApH+YX/gQP/wBQsOFX zb/zlDrPmO8/MubT9We2+qadGBpUVsyvxgm+Ksx+2JWpVlbptTY8iFeQAEmg64q+pPzE0Saw/Kn8 tPy2KldV1m9s1uLc1BUAcrgNQ9EmuV6+GKvpDCrxn86nGh/mV+W3m1/htIb6XTL2Y1ARbsKiknwC NKT8sVeH/wDOUvl6fTPzXu78oRbazBBdQN+zVIxBIPnyiqfngV5Dir2vyjH5iutL/LDS/L+oNpV/ qp1mybUIwDJDA90rTPHuKMI0NKEHwIO+Kvqjyx5H0Xy55Nh8o2JlfS4YpoQ0zBpWFw7vISyhRUtI 3QYVYTpn/OMn5WabqVpqNtBeC5spo7iAtcsRziYOtRTcVGKso/M78urTzzoUdjJeT6ffWchutMvb duJjuAjIpcUqy/FuBQ++KvEvq9r/ANCf/U+B+tfWvQ67fWP0vStelOO2BWdfnxomraRqGifmloEJ m1Lyu3DVLdRvNpzk86kV2Tm4O2wct+zhV57+eP5dWnnnSIPzU8iD69FdwK2sWcQrKfTUL6oQV/eR gcJV67V8cCvm/FX3n+XWr+Sv0DrvnfTtWD6TrV0+p6g9xxj+pusSJJDIAfhKBB1612qCMKvirz9q 1jrPnjX9WsHeSy1DULm5tnlHFjHNKzrUHpsdhgV6d/zj/wDlBJqt9H538zKLLyno9buKS4oiXLwV bl8X+6YivJ2Oxpx/moq9X/Lr6z+Zf5qXn5kTxunlnQlfTvK8cgI9V6FZLih9nY/NlFaocKvccVYf +bPkSPzx5F1DQgVW8YCfTpW6JcxfFHU9g26MfAnFXkRsE/Ov8s/0Ffstl+ZXlFmhljufhcyR/u3L jrwnCAOafDIPDqFfMeraTqWkalcabqds9pf2rmO4t5RRlYf57EbHFXs/5M61pF/rn5Y6fBI41TRb 3VYryBlovp3UbTRSK3etGX2I+VVX2FhV2KuxV8y/+uvf9vr/ALu2KvpmSOOSNo5FDxuCrowqCDsQ QeoOKvDtV8ieefyv1q58xfltCdW8sXbGbVfJ7Maox6vaAVPTYcQWGwo46KsXvoP+cb/zNnee7nfy X5odj9bilK2ZMvf1PUDWznl4FXPfAq2H/nGHS/qFxDY/mSqaHdMktzbpCjRSelUoZCt2sbFeRoSu 2KqcHkr/AJxr/Ltvruv66PNWqQfElhGyXCFx2+rwVQH2nk44qyMaZ+YX5yNBBe2kvk38s4uJWxHw Xl8ifYHGg4psKfDwHUc9iFXuOj6PpujaXa6Vplutrp9nGsVtAnRUX57k9yTuTucKozFXYq8s/Mz8 pdTv9ai87eRr39D+drUAOa8be9jX/dc4pTkQAKtsRs3YhVgmsedvy283yJoH5y+XpPK/mq2UImoF JEQ7/ainQMwQmpAflH/lHAqQ2/kz8vvy388eU/NWjeZ49X8vS6g0N5N6sExtQ8DpG8jwGnGsnxHi KUxV9Lx+bPK0iLJHrNi6MKqy3MJBB7ghsKrv8UeWf+rvZf8ASRF/zViqH1Dzx5N06zlvLzW7GK3h UvI5uIjsBWgAYknwA3OKvB/0fqH/AEKp9Z+qy8frn6T9Pj+8+qfpL1fV4+Hp/H/q79MVfSeKuxVj 3mX8vfJHmc8te0W0v5aUFxJGBMBSlBKvGQD/AGWKsMf/AJxj/JppOY0aVFrX0xeXXH5byFvxxVk/ lr8pvy38tTLPo3l+1t7lKGO5dTPMpH8ss5kdfoOKstxV2KuxV2KuxVAazoGh63aGz1jT7fUbU1/c 3MSSqCe4Dg0PuMVYBff842fk3dymX9BGBiSWEFzcopr/AJHqcR9AGKojTv8AnHn8nbFSI/LsUzH7 T3Es8xP/ACMkYD6BiqM/5Ub+Un/Ur2X/AALf81YqqQfkn+U8EyTR+VrAvGeSh4+a1HirllP0jFWZ +jD6Poemvo8eHpUHHjSnHj0pTtiq/FXYq6oGKtchirdRirsVdirsVdirsVdirXIYq7kMVbxV2Kux V2KrS3hiq3FVwXbFVuKrgxHXFV2KuxV2KtFqYqtNcVcFririKHFXAkYqvBrirsVaY9sVco74qtYb 4q6uKuG+KriK4q0p7YquxVxNBiq1RU4q5hirWKtYqvA2ocVW9Diq/FVp3bFV2KuIqMVWYquUCmKt 4qsOzYqvxVa+Ktr0xVvFVhG5xV3TFXUPXFXHce4xVdX4cVaP2sVXYq49MVWHtiq5a0xVvFVrdcVX YqtfFVw6DFXYqtPfFWj1xVsttirQxVdT4aYq0w74q2pqMVbPTFVhxVcvTFWyaDFVq7nFV2KtMKjF WlPbFV2KrT+1iq3FXYq7FVTtirsVWEEHFVwYd8VaoteuKt8gMVW7k4qvAoMVdirsVWsvcYq4N44q 2aEGmKrMVdirsVVO2KuxV2KtFRirXA4q3wxVumKuxV2KuxV2KtFQcVa4kYq3xGKu4jFXcRireKux V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVbyJ6DbxO2Kt8j4D78VQsmraZFdLaS3cCXbE BbdpUEhLfZAQnlv2xVFcj4D78Va5Hw29jiq4EEVGKuxV2KtFt6AVP4Yq7kfAffiqjdX9paKHup4r dWNFaV1QE+ALUxVUjmSWNZI2V43AZHU1Ug7ggjriq7kfAff/AGYq4MD8/DFW8VUbiQAon853+gVx VIvN/nHTvK+kHULxJJ5JJFgsrKAcp7i4k2SKJe7H9WKsOj8p+YfNk3qee9WktorhPVi8oabOYII4 agUuZUIluCDx5GoUN9nbI2hKL/yx+WeneZofLS+RRcGYxrHeBeQZZBUuGYliEqeTFtqHKZZanw0W BnRqk6l/Lk+XpUl8iazLoV65ZotHuZXudNuSvxOrQSl3UkDd4zVR0y9myDyR56/TwutO1K1Ol+Zt LITVNMc1pX7M0Lftwv2Pb7iSllcUn70r4iv8MVVsVU7iURQvIf2RXFUPcXdtaWstzcyrDb26NLPP IQqIiDkzsx2AAFScVeYDWvNX5ggXlnqknk/yFJKtva6gvGLVNTaRxGjQPIKW0cjkCMgc28N9lUk/ Mbyj+Vf5faXbaneeTbnzO15KYrm9lllupFcDkGmeZ24896cVAxVOrH8rfJMvl628z6Ml/wDl9ez2 63Ty29y9uYVIDAXMEjPAVHV1KjbrTsqmnl7zr5j0bzBb+UfPnpNe3tf0F5jt19K01Dj/ALqdOkNz 34D4W/Z7clXoIkoyn3ofpxVXxVB3xpLCfc/qOKvMDqEGo+dNf82X49bTPJqNpukQnp9cZFe6koek lWSIHwyvJMRBJ6MZGhbDvKHn24svOsus61I0seoIYLqQAn0lLBkKr14oVAoO3ic1mHU+u5dXEhl9 Vl7zb3MFzBHcW8izQSqHilQhlZSKggjqM2wNua8U/NbzxBqmqWNtolwWi0xzMb2IkBpzQL6bDqEA +0Otc1uqzgkCPRxM2SzQTPUNeM+iaH+ZEQ4alok6WOvCMU9aymdY50IFK0LrKgOynMzBl44gt+Of ELevWzVuf9j/ABy9sRuKobU/94Zv9U4q84/MxZPMWteXPIKOVs9ZmkvddKmh/R9hxkaI03AnlZEq PfFXz5+cH5v6hffmXafooqug+T76P9EWKfDC8tnIvKVgNjVo+KeCdOpqFfV/kfz35c86aHFq+h3I miYAXFudpoJCKmKVP2WH3HqCRvhV5x/zkh+amiaD5S1DytbzrP5h1eH6u1shqYLeUfvJJqfZ5Rkh F6mtemKvP/yS16b8wvJOr/lrrNwzahp8Av8AyzqDH97A8LAR0f7X7mVk4034My1oBgV7x+W/me48 zeS9I1e7X076ZPTvkoBS5gkMM+w6VkjY0wqzPFUDqRo8J9z+o4q8dgjMvkjzvGm7r5lvGnUChobi Jlrtv8JU5iay/CLVm+ksBez9s0Yk4D278uWnGn+k8jNFFbWYijLEqtYatxB2FT1pm90srj8A5+I7 PHdZ0fTrLVrq106ZriyhcpDKwoSB1HvQ7V79c0+YgSIBsOHMAHZktlEIPyg82vNtA6lEr0LlVAp7 1Zc2HZ9mJ97kafkXsugLcLBbpctzuUgRZ2rWrgAMa9982TkpxiqF1T/eCb/VOKvOoyV/P2zeU0jm 8sXEVvUHeVL+J3A9+GKviC9guIL24guQRcxSOk4ateasQ1a++BX0F/zi1dXUTW8MUzxw3GrulxGr FVkVdMuHUOAaMAyhhXviqV/85a6RoNr55ttQtb1pNZ1C3VtR08rVYkiAjhkD/wCWFI4+1e+KpN/z i3Dcyfm7ZPECY4bW6e4p0CGIoK/7NlxV9D/kqWbQNSlB5W1xrupy2bD7JiN2wBX25K2FXqWKpdq5 p6J9z+o4q83m+r6D53vINQAXy75zRIzLsqQ6lGnp8Cei/WIxUN3YZCcQQQeRQRbGPMHli60e9aCd SYiSYJwPhdf6+IzmtRhlilR5OuyQMS9E8o3GmWfl86k92vorDClwCKem0KcOJ7knsKfLNzpJxGPi vahflTmYiOG3mtppmo61qRVAbi8uWLyuelWNWdj0A3zSxE8s9tyXCAMiyfWLC2urnSvy/sCJre1k j1DzPMv2RFGwkjhfp8U8gG1eQUV6Z0WDEIRER0+92EI8Ip6XpbVuG/1f45ezTTFULqn+8E3+qcVe afmRDqFjJo/nTTIWuLzytO81zapu02nXCenexoOhcIA617rirw38/Pyz5XTfmP5UpqPlTXgLy4lt wW+rzSbyO46hJGqxJ+y9Vam1Qqef84nDSru6mtnv0g1PT7w6hDYMtXnie0ltWKEkfYMtTSv41xVh f/ORXmn/ABT+aFxBpt5+k7CxWKy09IByUScR6yx8R8ZMxO4rXttTFXovkDynf/lT5HuNTuogfzF8 3BbDy/pexlh57jmOwQkSzV2XiqmhxV7N5F8vQeW/L2k6FC3NbGJI3k3+OQnlLJv/ADyMzfThVmmK pfrMbG3WQAn0zUgeHTFWN6rpunavp02n6hCtzZ3K8ZYm6EdQQRuCDuCNwcVYzGfOWgwnT7i0Xzf5 dUUiMjImoxIo2D+pSO4oOhFGOVyxgiiLCCLQZ1nycwq/lHzDGSeTW4s5ypZagbrIU+XxZjfkcXd9 rX4Me5Gw6p5rv4TZ+WdFXyvYSbS6nqARrmnQ+nbIW+MdjI1MyMeKMBURTOMQOSd+XfL2naDZvb2f OSSdzNd3czc5p5m+1JI56sfuy1kynRUYl5f2T8I+jriqa4qo3kXq20kf8wIxVjgkO4OzA0YeBGKs Jfy15l8rXl1f+RZLeTT71zLqHlS+qtm7t9t7WRQTbu/daFD36DFWJ6lpn5az3n1zVvyv1/SNYBPq yaGjSQ1dSGCPYzpGQQTU+mPxxVH+W4tL0Zgfy5/LOax1EjiNZ8xEW4h5ftfHJcXTr4qnHFWVeWvK E9pqkvmPzDfHWfNNzH6T3rLwht4a1+r2kW4jjB6n7TdT1xVmemq0l2tOi/E3yxVP8VaZQwIO4PXF UruNBjdi0MhiqalRQj8cVUP8PT/8tB+4Yq7/AA9P/wAtB/4EYq7/AA9P/wAtB/4EYqqQ+XwGrNMz r/LQD9WKptHGkaBEFFHQYquxV2Kpfe6PDcN6isY5O7L3+YxVB/4em/5aD9wxV3+Hp/8AloP/AAIx V3+Hp/8AloP/AAIxVcnl+So53BI7gAf0xVNLWzhto+EY+ZPU4qrYq//Z + + + + 1 + True + False + + 128.000000 + 128.000000 + Pixels + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + R=252 G=252 B=252 + PROCESS + 100.000000 + RGB + 252 + 252 + 252 + + + K=50 + PROCESS + 100.000000 + RGB + 14 + 14 + 13 + + + R=106 G=181 B=54 + PROCESS + 100.000000 + RGB + 106 + 181 + 54 + + + R=46 G=107 B=38 + PROCESS + 100.000000 + RGB + 45 + 107 + 38 + + + Branding Primary + PROCESS + 100.000000 + RGB + 97 + 153 + 48 + + + + + + + application/pdf + + + keepassxc-icon + + + AIRobin + Document + xmp.did:d74b68e3-299e-3d42-84a6-fb7353bfd658 + uuid:8ca93482-ba60-4213-8393-bfa8062707e5 + xmp.did:2520a7c9-03a3-1044-b2dc-89724d81ad50 + proof:pdf + + uuid:979eccb3-da43-4d82-8b4b-67c29f55eeea + xmp.did:f1663097-f590-6c4b-81b4-e504359f1e0d + xmp.did:2520a7c9-03a3-1044-b2dc-89724d81ad50 + default + + + + + saved + xmp.iid:2520a7c9-03a3-1044-b2dc-89724d81ad50 + 2020-12-19T13:48:23+01:00 + Adobe Illustrator 25.0 (Windows) + / + + + saved + xmp.iid:d74b68e3-299e-3d42-84a6-fb7353bfd658 + 2023-08-14T23:29:13+02:00 + Adobe Illustrator 27.8 (Windows) + / + + + + Adobe PDF library 17.00 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 5 0 obj <>/ExtGState<>/Properties<>/Shading<>/XObject<>>>/TrimBox[0.0 0.0 128.0 128.0]/Type/Page/PieceInfo<>>> endobj 23 0 obj <>/ExtGState<>/Properties<>/Shading<>/XObject<>>>/TrimBox[0.0 0.0 128.0 128.0]/Type/Page/PieceInfo<>>> endobj 24 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 128.0 128.0]/Type/Page/PieceInfo<>>> endobj 25 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 128.0 128.0]/Type/Page/PieceInfo<>>> endobj 26 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 128.0 128.0]/Type/Page/PieceInfo<>>> endobj 27 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 128.0 128.0]/Type/Page/PieceInfo<>>> endobj 28 0 obj <>/ExtGState<>/ProcSet[/PDF/ImageC/ImageI]/Properties<>/Shading<>/XObject<>>>/TrimBox[0.0 0.0 128.0 128.0]/Type/Page/PieceInfo<>>> endobj 38 0 obj <>/ExtGState<>/ProcSet[/PDF/ImageC/ImageI]/Properties<>/Shading<>/XObject<>>>/TrimBox[0.0 0.0 128.0 128.0]/Type/Page/PieceInfo<>>> endobj 106 0 obj <>stream +H‰ŒVÛnÔ0}÷Wø2ñøîWJAHTP‰¾¢¨P¤m¡-ü?gœ8‰³ª„V»ÎOÆsÎŒG;~ºÐãÕ…ÑoÞ^hõ¤Æ÷7FÿxQãç»çéî÷Ÿ¿ßNúù§bëÈ…RJ²ÚàÃÖO‚¶ds²Î8Ídb¶&X==¨ñÃÑo©kDu¼ š«MúAYK©l¶‰M +~3,Xà4©Ÿ®Q㆗ -öÎiE“êñI-AW|È¡exHx9©õ†ÓjØ’m[à¶öŽ Nê`8©{õU?Jmúš T,¥2z`c)ï¬w`tt„:eë×m­Ð›[=ÞÜýr¯/oõu­””6×ï ?Ïw¯žm糿|ßm…>ws;7žÝÆ $>½hC&äݯÕúez|æ“æ¹õ#(é(»R„‹ì<¨Á2‰¦W(ƒæÀ‰Ð–ÕCåÕ™²ÝåÕ!Š5Âü0©~ãðÚ1ìáØ5ùLRªŒ‹äkª`‘c3 ÞQ@T0²±¡5×¢z¨«no:ŠQë‚,wÆÎ½ÕÓ§°&7©ïRÌÿÕ;®zû^nPÛ÷bÇ×ĎؾÓÚ÷RûNé¸)- ØIgm¿µ¿Î‰9 3ÃŽg ++/–1<•TV(K©¼fì¹Ú6‘gÖ!b&Æš›Ü»hÉÅêƒÜiâœë~±ˆî‡¬ †L…›{5€[½‘8Ìz9,{DO\­¯qV¼g̈eÕÖpŒ§ÃF"ÄDèT|x«|Îù¶i=4]&­wA²K$©Cç´Æ]€³ƒ³kéõ¹©õÌç&ËQ5ˆŠø‹¦ÜCéEðC9Z± ÜŒ#ÒÚ¨ÖH2Õ¤àYÛ@쓌¹eÛe\š(-A-á{`/¸Èë`UPGÑ£ üò€\±f Ó½Ñ…›T$FÓš+Ùèt (WÚgW+dJÜ}i"š]£tC÷Îp8t§ ]"Ã!K£&Bq»ÑºÚø èË+”·¯hº 7¡ ѹˆ¦=lÓu©n÷Ö1hfŸÐšê|÷/¯ðwfœÿÜðüçfo²ç&wnòç¦pnŠç¦´3]«ÿÿÿÿ> +àŒ +endstream endobj 107 0 obj <> endobj 9 0 obj <> endobj 11 0 obj <> endobj 12 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 24.0 +%%AI8_CreatorVersion: 27.8.1 +%%For: (janek) () +%%Title: (keepassxc-icon.ai) +%%CreationDate: 8/14/2023 11:38 PM +%%Canvassize: 16383 +%%BoundingBox: -88 -236 188 337 +%%HiResBoundingBox: -88 -235.889763779498 188 336.110236220502 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 14.0 +%AI12_BuildNumber: 268 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0.382499992847443 0.600000023841858 0.191249996423721 (Branding Primary) +%%+ 0.057919479906559 0.057945560663939 0.052277076989412 (K=50) +%%+ 0.417439699172974 0.709999978542328 0.212999999523163 (R=106 G=181 B=54) +%%+ 0.988235294818878 0.988235294818878 0.988235294818878 (R=252 G=252 B=252) +%%+ 0.178956523537636 0.419999986886978 0.149739146232605 (R=46 G=107 B=38) +%%+ 0 0 0 ([Registration]) +%AI3_Cropmarks: 60 208.110236220502 188 336.110236220502 +%AI3_TemplateBox: 50.5 49.610236220502 50.5 49.610236220502 +%AI3_TileBox: -161.600006103516 -136.789757675982 409.600006103516 681.010230116986 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 6 +%AI24_LargeCanvasScale: 1 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 8 +%AI17_Begin_Content_if_version_gt:24 4 +%AI10_OpenToVie: -423.465748926613 333.510683876831 3.26889526208565 0 8196.74813662337 8201.58266374714 3147 1902 18 0 0 6 181 0 0 0 1 1 0 1 1 0 1 +%AI17_Alternate_Content +%AI9_OpenToView: -423.465748926613 333.510683876831 3.26889526208565 3147 1902 18 0 0 6 181 0 0 0 1 1 0 1 1 0 1 +%AI17_End_Versioned_Content +%AI5_OpenViewLayers: 77777777 +%AI17_Begin_Content_if_version_gt:24 4 +%AI6_ViewPalette: 0 8 4.52777777777778 8162.61349693252 8190.55214723927 0 8162.61349693252 8190.55214723927 0 8 7 +%%+ 7777777 Fully Shaded, Precomposed +%AI6_ViewPalette: 1 8 4.52777777777778 8162.61349693252 8190.55214723927 0 8162.61349693252 8190.55214723927 0 8 7 +%%+ 7777777 Fully Shaded +%AI6_ViewPalette: 2 8 4.52777777777778 8162.61349693252 8190.55214723927 0 8162.61349693252 8190.55214723927 0 8 7 +%%+ 7777777 Flat +%AI17_Alternate_Content +%AI5_ViewPalette: 0 8 4.52777777777778 8162.61349693252 8190.55214723927 0 8 77777777 Fully Shaded, Precomposed +%AI5_ViewPalette: 1 8 4.52777777777778 8162.61349693252 8190.55214723927 0 8 77777777 Fully Shaded +%AI5_ViewPalette: 2 8 4.52777777777778 8162.61349693252 8190.55214723927 0 8 77777777 Flat +%AI17_End_Versioned_Content +%%PageOrigin:-247 -370.8897637795 +%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 13 0 obj <>stream +%AI24_ZStandard_Data(µ/ýXœt^„¼ -€DäÒPÖ{\t]!£»Þ`±ËÅîÜqzä²Úd7Ù#.¦&F9G±]òsWBM  ¼ žo­5÷>ûl/ÿ™ïûþXçÞÿ½~ïÏ¿æl¦ûÕùûo-ï÷o±óþÎ6ùöÎÿ.¸ùfý/¾ûoÏaŒÞÿûÌóÿúw‹3¾ÜvŽ9Ç6çm³ÿ»ïm»½ŸÛ{»Õ=ßÞ7¶ÞjžqþÖ~½q¿œå¾w~óÅžûÝùÕ¸ÿ/ìÂ<ÿ¾,r Þ_Ç{ÌÙ½ö¼{¿?ïgþ-þÖzþþß÷Ìþøjî-ï6}¿Æš³Y¿{{{îÜ眭¾ØçÛ·šûŸñ¿7íÏÛ¯u¿ûænAâë.f‹5¨/,Ô"(Z~3ïÿÂl¿y_˜ý_¿° ë ?Øv_X§ÿÕÖ_Øí؆Ÿÿ|ߟþtþ. ø~Ö~¢z¡~žçu÷=÷øö.ìzÖ»`×yÞmýù¿09Æ—_{a³wa¿‡]ßøÂÄz÷{{ÖÜszg™[Ü7¶6[Ü{ƶ羭¿—gŸóý8Û|7ÿvÛ¯÷ÇÚzý±ÍWïk7¶üc›ó·ÿvÞñÏÖâ‹3¶þck1g/Ìëïõ·½_­ýýú{{ùÇ;k~õåØÞý³÷xãnýß™[|»ßöríß—Ûï³ýØÿÏñŸÝüû·–_{9Û{Ïy{·Å{ol¯Ï¸Û¹õ¿s®³×ùÚýñõÛóÜ1ww¿–Ž¿ÎÛwÎfÜþ|3g7…µ×b›­¶ÛrÛ­·ß†¦ï¾ü{OÄà…]Øçí·˜E,ZQ Áð »ð‡=äásˆCŠ zàß`/(~àç}ÿóÿô‡?Ë=íeï~ƒ>ÿ ÃßþЃÞs¿­»ÝµÈÃŽ{Þñ…ý­µØ}¨»þÖ{çºw^˜÷ó½0¿û…_˜;Ø=/ì÷Í5ö¾èy¨ÃŠàv`7ˆA ‚ß÷ußÿú·¿üÝOô@ïÂ<¯ó¼×½}aúç+úðóÞ÷žû¯ØÃö û׿îí®?~a:ÔÞ…p¯{Þû^çyÞç^艞ýüéoüëŸÿþ×}Þ÷}à~âgÁ b0ƒÜ /¬ƒì@ì:ßú°ÅƒÞ¿Öe¹¾0ðÂrv³ ÆÛ,s|/¶»ó®íÿÜ××rËmÏ{쯷^ìaû×½Þõß}ïºçŽErÜã¼°¯cÌ_örçsÏ<ïl=ÑÚ|µÿ> â_˜þ¹ë´g¿ ^ž¹æœw­u÷ÞŠV´öÞ{ñ½0Ìýõ÷ßïÝï~á¯Å_Œ1ÖxcŽ;îö¿ûB{/,ïŽÿ®û@ÑâÜ;Ç[{lÿ¿W[‹3÷Û}ñÎøæl¯ÅûŸ­ÎœÍòÍÿëÿ¯æœÍ0¶ZcsÖÙÚk?ÿÜêîuîs6ÛØ_ûó÷w{Ì1g3Þ­ý™÷~»í9Û/bO‡ ÖX_«ÅÜ7×;‹ZÔ¡õ§=¯»æZgÝñŽî¹ç|sùå–‹ûÛÞîüîV[moç}ë‹7æ›ÿ{íõ¾ó«=¶øö¿5öß·åßò¾»íöë½qÏ7kß-ÿ[÷«7ç›çþ»æûûÿîùó}ÿÛê¹ÅÛóËÙ¬kœmÇÿÞ{¹íÜÞYký½ßýwŒ±÷[ko¿;óûïõúo.Û®y¿øgë­ÿv뎹çÛ{½¹ß:Û¯îÞ÷οµ{ë=g³ì¯÷<ßÏïçØÞÌ»þ—ãlùß¼ûßyˆ/ El/Ιä!¹í·ãž»î»óÞ»ï¿wÝë_{ØÅnýõØg¯ýöÜwïý÷÷üç/ ô¡ýýøç¯ÿþü÷ïÿÿÝ÷þ÷AÛÝw¹ÓÝîx×»Îë¾ìÂNì¬w=ìeO{Û ±ˆm¶ùfœsÖyçyîÙ矻Üe/³ÕWcuÖZoÍu×]{ýõ…uÚÓŸþ4¨C-j‹wÞzï½7ß}ûýw·»ííoƒ;Üá·å—cžyæšoÎyçž{þyÇùçs®yæ—‹;Üàþv·ÿî›ï½óÆûn»C jOwúk¯¹ÞZk¬¯¶:Ì`¾°/wùgžwÖç›m1ˆ?ÜáAó…é0‡Yg|Ã=ö¸ãŽ9ÞXãŒ3Æàý.lƒß÷Ýêìa{×»žõ¬'vbv!Ø}^×uÿw¾ë½ãÝî.lë.ww÷v¶³(þð‡àÿþçýîwÿû?ÉÙt† waªwí…©Þh»07Ú2kofwƳ›áÍû½ÛÿÎ7·½÷­­ål¶»½{_¿{Æþ[Îføâk/ƽë­þÛvo¿öùr6õF[¦=ðA0EІ7Äau¸CöЇ?ìB/üÂ0C+^‹YÔâ¹ØE/~±=ñA1Eñ~]—/¾÷ÚÌ…eŒñÅ[,Þð‚÷»Þíî¿þöËï¾úæ{¯½¢ -h?ëÙÎ~ëm·Ün«m¶Ø^kí…\Å…™¼ g6»°‰îøf¨ÌD®Æó„d˜õ$KÓ˜jN/ë÷Â,–½"Wuˆ4K嚎Ÿ•Zš(i5Ê&$kL2ÓÙBY+ô#ײÊRÒt–§Ô:~$VòÍÏz–£B:ž£ù‘d“t4EI6AeiL2I6YKd‰!3‘eŠ®%2D(TÓIšʵD²Ô”ü”@¥2ÅSTišãG²P“ p†«=‘àšv&Š>¬i'É&&Š>d)µ•zYj?'ÄUŽœJ*R¥u ”M²,E×ÒfgJ®ëø‘\z:9¬šjÎÕ2?#¿pa¨³\Ï2ýœèÂfµV„BM4ýœ%ŠTד\­ÐÏt†Ûva g­çá{’ë:šâèc}ý¾¼ÿ¿Åÿ^ë9Ÿán*SͨoÛ³%ë[0g‰*S5~¶½÷:šøšHe­Ð™~²Š‰4)P6À4[bFÉ:þw}ñÞœý×gxãüù×ùróë3ß{ǛәÏl†¹®¤9~ ËЈ÷È2´MäÈt†|rÏ”\Íî^3îo†í¿Y×7gúvÝ3çØoîZ쳞3æ<_¯;Çÿõ™Í6ßÞbŽ÷÷žc.g7{Þ}öÜÞÍ圳|9Çßë¾¹æ2Ö– C–!ôá$Y #{u¦1fEŒNåh=ÉõD¿ÑY¢HoÔo†QSrÀ¨°j-øµe¢*é°’¨t|í;š¢IšPÏ¿†4LjD¥£ÂHã £®å ‘’fËÁZ­AkÚ6y¢ &² @rÿù½6c{-w=ÿVgØÿÝyßýûÎñ|-¿;ÛË/¿³äÜ×Ùæì&×Ñd­È‡QætÞâÌò £ªÒqÅBӉʼn–%Št d6³™Ï^Ö­6pdÛrœ1×÷çþõýÜ{î¯ælÆ3ïyg¼ùþ¾_O“á $¾{½þxgìý×ÛÀË®¿šŒÛkà É2¿ï/ælæqÆzûþÿÿßvÎfºÜïÿügݯ¶Û #ÉðÕßÞmïçŸ9·|oý÷æöÿ®ÿý}[Îf”é¸*ÓO6¦ž$»¸g¬ùý—³™ßþjŸ±åœÍ²Ö]{üÿÿûÌÙ ãi2ŒŠ:Ëu%A$j\qF=èQ…eÏq†IIÒªµ`2Ë–7—ÓÝlW)*’f)Ž6§Û.LUM/ 5MR”ëI¢FOv޾ £¦¨‰~ªJ–Ðô³žäªUBÁm»0l·Å˜glïå¸ÿú÷žyÿÞs[%ÊͶ]XÏ9óþfÚû@ +S,>Á7 ,NŸ¸Úüaÿ””ÂÞþš¦ FhÐHÉO ¯EÓ4ÕâÀ;½<¨åjš¦-T4MË ªMãàÐ45 iZ¥ã"ší &š¦2>¾+phšæhšÆÊ ¾+aJ >{ œF‰hš6Ѱ!lMÓ´DÓ´íÂ4$‚§ñMÓ6MÓL”Eï4MÓRMÓ.§!EÀš¦i ¡ÂöÛ…9$šæˆ hˆ1Ñ´ –‚"¦Z"¿QáË¿"0`6¢ÙˆTÓ²ÂÃsyé6ŠÃps&#ÒF^Âç·BMÓF¦ÒC£òT¦dH?’ _N§oÞ€¦@(R¡Î2ê!Í2ÁOiB=*%=§KG’ÅêL³%’ ¤ŠRñh»d,ôa-O+’€ze(“DœH…IšžÔc¡é7Ò„@öJJ%Hš¤ñä¤äzrTr5.˜c U(¡à:nL$É2‘e iš¦mlx(v‰ÜLh‰·çp>PwÉJo$ÓŽ…¦å£Édó&‘¸gn)uî-$mµeëKZ0K_gS$˵—óÒiܽ“—D²œ.&YüÝÚ²Ik²|S©¤Oþëì³¼­Í¬¶¼”MY{»-ÙG‹Ý–dá'¬-·{“¥_“¶&í½¿WçN"m¼-ϼ[ú>‘,&OjË¿žd!-9ZR¿×bÿu÷Ë5&‘´ÇÙdáÿä-ÿbmÁ—t-šã˯I_‹½¿'̹¹åš é„I–<’Úrò§k!•øIc_–{,'G[²´—´åë-¦nÒ–üOÞâ39úÓé^‹¯÷W!»qÉñdOÖDšN½ÇoùvkË·$lÁóOâù÷,oë=ʱ¥Š: &é K‡îÀI%ñŽS«© @€0÷*•æ ख$P:8Ñs…®j«„ Ôt 0ROˆ$F=Í•€qAÒd­F€`´©+ "MÒX¦c€;®£i\ÉÕm£í!m£-[E‹U«4‘ + º¶ºŒÃ•,SiŽ+-™FÖ½þÞ½íß›ëe©&’4=³µ*Õ,%Y#+û ¹–©ˆŒÕe=…*É͉n”)ºÁ'RábŽWêÐB?Ó$¿»ª%ˆ:ËÈ2äµ^µHÔ9¦>o·Âªµ°¦Ý*€\È7wî3þ~ÿ¾–JP]KS¸¦ã +ÄBWPf"×i’ L’¤Je*¢tŽæHÊXÒ~¢%ŠL3¤ÉZ¡¥ŒUš¥õ,SVJ@YªJ¦¬úHu,Í1+×säwœS¨’4I㚢,¡$#¸6[›m¾6çë±Íw¼ó½÷ò»ù½÷Þ{¯¿—ßËï½÷Þ{ïÅùÞ{ï½·«ÒÑ”1ÆÙcìÿÇc¬·Í—ß»/¾ú^®¢¥qu³ÖöÚÝõΘk¬7Þc¼qÞX_þußs¬1ÆXw¾9¾þoïwV¥£ÉÞœÿ¿<ëìsÏ;ãœ3Þ¤ª„š–5…*M ¹BÓT =Ñ•åbñÅcŒ1ÆØ_̵$#X +©ªêšv—µT‚+©ª$#ÐÝ{÷öÚžýåwþ{ç¾ÛŸ»ç^oŽÿ¶¾÷ü9ïûûn¯þÜ{½ÍÝýÖ¥‘ÅP®#k…~"ø™&ùå-‘ Ò,Ohú1‘¤U¸/¶~“´\Gu=Qq%UR ¤¦äJ®Ætüp:•$»È5#ÏÒ\[h–’§Ì’«€Ð4ÉïfŸùn¯½Yût™fKätªËYnc‰š–bJš­© = }пg÷_¿žH…û¯Ï¶öÝÞÞתt@eJ-Ï1”¢¨)’Êu4I‡ÑvaëY¢ŸmÉì:® òÍ ýd$jl¡ÎQ!ËîÕÖÒ,Iã*€|ÈÈ)©’ég£T3S™¢²¥“LG–zŽéš}NGš¤Œ\GUKT¶¶PU =U¦ì^N·¶Xk‹Áæl£LÉU²”Jz²Ïéì¾ØcMdJ"STv³5ÑRfJG”´¦cö9ÝÎ{óÑæùï÷hCYÅõD*ŒLeªÙz…®+êÙÑöÑd''@šNNFZµR }ÈÖ“4•¦1ÕXFÛ…a²Ëh»°qÁ¯±Æ«Z*|ïsa¥Ï…©<Çcœ¹þûëµý8ûË·÷øêk-·|íçû}a*‰ÒçÂ.lC‚ô1áí®µXÍÖx"A +›Y“µ*AÙ²Ó*M£ƒ$3GÒá’}þ¯þÖÿŒ¹þœM­#)ªÔÑ“ ØØh‰_Ï­æ×Û¹+õR”ª4zxs»¿Í^[mïæœíûû­ñï™gÎjü­Þ™gËÙŽƒªõ¹ôÏeAª*Ift:&ÄÆ•·ßûý¿Ýüc¾-w3›õÜ·ÏøìùÎÛßËý÷º_k9›ò2@(2ämpF… kuÇùó{7Îçì·½œí$þÖ9o¼=ÎX[ßó¾Z¿±¿s«-çøß{¿ÿVç®·ÃUK¢‰{ñ|4!Œi:Ç A–a²éAbÐ\@„&”9›Ù;J0Xû;¥Ñ0Ž(„æì…ØøB]p²œ³×ó²{a(/»ß’Y|a$/»kϵõögÎ:LŒ&K-Á i*Õ“#¹œN!i–â%›¬¤z:1d]1jÓ†'‚S"„— Û™³&†“ ’*„$3QÔ»dö^˜J‚Á4KÑ4Kq-[¦ýÖtü\² #È$Ù…ef’pÈ,fʬEæÉìÍÈn–‘Ù,!³6@"³ÆDšR´D:¬èÂ%KLLªÐt•JuôT¥q™¤R-C—Iv–cê»täj\¸d‚bbÎxÉÙ‰žäÂ0Ùzv.¦’怴¦Ý·WãÌfWraÉ…™Îpä¹lrI•ZèCv™¤¤)eÈR5ž£'ó¦3$ÈN$x1•$K¨iL©(ÉTÉh¹Že4­j%#PɵE*Óu±†,¥-$9Ët<Ñr-•àI¦&³L•Z¦wŽ¥ª¶F 9`LÓî°®'ç’Ý–9¸dVÉ&äj¤†§5‚>cDá`¬ qÆÒJq¡ºç‡Ñâè %%Qõ+áŒBn1ÐˋӄÆpñࣾèæj¡j€° a,¶ ƒpšE†Eª¨˜(·¯B+L*2¤ Å*w(ÔÓ¥P˜„« Sy˜8PHa&Nå¨MxLa!"AX€¢.€A•<*”„ ‘a±áaæ”F86?qBuÛ…i7‰È!§'“ò„®ÁÅ©RˆÐ¦CáA>k‚Ç}`Uˆl :‰Ä’.>—8]. &.yÅ0\.6­ï²&!98X.9Áq1Ï“Û@tFN @!ÄEHBn»°ÎJ!p& Â9…GáìªeI9p*‹'¢Ã’+vÈ‚žÌŽ%Bc¡³tL·P2›Å¢z8–iU 3F©’?¢ÊC-1TJQ +¨¥ ²ÀqÅ{Œ$•íºƒc¥pÞ“AÙTÇHI%<¬,PN¤Êõ˜bšL(#t °(U£I¸ QÑÀˆBH¼PéÍÁ€hÁn€¢nÛ›“íÂ2夣¡“ˆ/AbbRqŸ‰ +jh&œzq0É((ôɇò]&%Ò‹Lo•pë™V‚IR+*$Ðù É€D‚@ %«Ï0`øç‰â$šA&"Ù.ìAµFF…U„"⧈'Õºˆ°$eDä Sñ‰˜@ œˆF;^¤‚  ÂY„tDâBZ"–‰˜XZ.£Œ—¦MCe^l«C´!p´M :ž-ÕÒl “õ¶ d¡`£t+ßÎqán‘eSX€lÛ…´´Ó¬,–Š¡Hu<'Šfø„. !` VvÅ#`éòF rÁO@cu2£Š/°‚ж@F‡À +¤4ÔW‰œ¨¢>RŸÃùØ.,£ƒ3+Š|¤ãg|8Xß♇†(EpŒ‘Œ£âÄ8$‘ïHÀdlÇva+ÏÍ‚Ñc›jq؃â€HI‡qx<ÖÃÑ9šcƒ+«¦QÒÐ4ªiˆ0+mc!*mÑ”¦14–„I9„HZe?`hfÃ…Ö!$*´íÂR£ -¬ š#£Ò $,„¦=Vv¤Ã!mB9XÐFÛ¨ u-KG{°8ZkÛhQH!¡6zP|8€ñ4Ê=4”Aè@cHÈd´1ж [K%íBƒÀh-~-{¼–Žn×.®%@¶Æ!ZYXY#»zµ†ÏÊj%ê¢M,$NË+,Zè"TÑòÉD>¤€›ˆÀˆB>ˆÉl‰\&Z¡B`´‚ +æÑ°ñÛ…I4¦©yx@ñŠB¤· {pîb´R‰£`»0…”„Þx•‚ùãÁ¼Ñ^L¢CÕ +¶Ôö0”(LƒW)´ +“ñ07 Jçâ}_‰ó¾„¾éÒp|‰ ¨<„ŸÌƒx ðÅÑ25)†Lš‚"üí4Hv¸ Hu,‰ ‡K¨a¶ caŒb6÷=<]‡’¢îGaYOÏÎŒDÜHÂÃûT’&£’4$îk™$<ŽI“Ž8 &I¨ "éH“ïGÑ8Æ©hDNÈ©¢9Y–H3 …>–ˆ%BC8ST*i3E¥¢¡‰B7p?4¤ACš å ¤%3H+!3Hë°ú¬>š ²`lì‡ÁØØo4’v 5’hÄA^?˜/[ ×j||1¹ssÂÊ‘pQ}¬,ß +J"”ÕoÆqX-BɆj9– j´Aa5³Jxxs%>ååJ|«„dP^Ô kdV +î;iL!2ƒ´“Ƥù …€Ê ‚_¥1I$šÆ¤JDpêUccÅQEq+Âð"‡¢ŠðjQ†ÒË”b ù€¨§‚n*ä“~›Á@k4ÙÝÀý"¬pE1”3€aí—/­T ?2"D†: Þaô” ÛÄ£AÃ4#‘NS pAoþ)舖E‡ÅĤ8LRH¨xüÅ‘8ˆ‰‡&³*,&Ý3`/£•Jˆ(>Lf»0‡ƒ…ÈccMb…„øEÖ ÂGC9[Íâ@”p»0Pù#.ÞwUàƒÁÈà" ¼õ‚ +‰`?Qœúf\aÝ,  *P(<»ª4<— ÂH…v m"²*Õˆ÷tᾓJ­Þ.ìÛ4$<ü©$<,RI"n"‘Ž$(Û¹%˜Ó¶í-ÁH0'{aÁŸDåcÁØã#"""HÇxaŽ{²Ž{rÜ“FEDeríe»0ÎB+ÂûEN–%Ò„¾LEx ºû] VÒ"@@8@ÝÀÅ*õªÔ‹JECˆÉ&A9Aš¤Éœ ¤…€±±Ÿ¤¤e4’«&’ÐüŒdÒ7ˆƒ¬5`:¬¼Ad­sÐiÀäKó3’íÂ:ÌAÇ® +J:Òd( Zã äÜJ¸*•´ «Iç$@8Œ@èÜJÂva­„»l‘ãž,'c"Òd(õ(–R-ð +J< ˜ +J8G(9@µÆ"ÊP8+(9pÀ`°ôHÂÃjfݨŽ=X}4Û…¬¯e7¨Í¥ù™Vf 5M†²±ˆ$<œzLjɦ^•†•Hk´±„”AA?4’A·¼ +kLbä“¡h¶ K! "˜åU‰WÉPþ„‡50)CÑÀ@LÖ€‚¦.×ãïvaŽLª„• ¥Š£‚c¼(&QpßÉR&$˜“ /4?£Q¡ÉPB÷!-fVE™@ŒFÒB.l{Td…@x1é„’JHq!*·²2T„Ž&kT‹ð†¬¯"¼žÃxVD*IsÙDÆ‹JhDN6¤Éœ ÍvažŠç!t· Sè܇–B7p+˜GyQZ£Ý ûÐl2)CUÔ‹ ”—mÛ Ös7O†Òа]Øf2”å’3¼ Rh~fà’©Ë’©‹§¢Šé®ç0® Ÿ …c*ƒv`Ðp¾*CùTÔ“T &{À*˜°2›jÔJ5ù`ð¦Ö‚·\ˆÊu¤£ „#V´þ¨Ðü‘€RSŒÕŒ"M +]TÛƒ;l,DkQ¢C$Ò¬„Ô~@ &„¶Ð +LME‹k<6>‹RfkÇva¢A>Ür!:*&Zå @’¤¶záV ;C‰äGˆ¨–A;R{ùx5ttwB2(/OÁI!s­ M[9½ç¢B 2]%±GËÇ4ªh­ …D{0*è"TÑ"ÀŠv :Úê2ÇÐq?L„ÛRYšÛJGJI¬²0òAà8d. Ò½ J¾D ^Þ.Ì#+ÂëM>m;T´ª7–AæÁ$aeòš:p°|+‚ŠÅ¤… (‘  4sÅišAØpZ§â$Á “ˆöQñÄZ@ðp^lH'Ct'¦«.ZJp4t.ˆ$^@¼û y0Æ¿’qw¸›Žþˆ,BE&€¸°¿¢rʰ°½b`BÂÂfPè4µè ûùBa(º/a,¨M Ð "d7]k¥V+à44»)$„ËQhÈV(VÕ²£ ¦œƒ }„æ±ßï˜l§ìÁ„–àŒ ` &@Ä2„ö#*=¤ %hrg2ÖD³V¦¬AZ¤ƒµÕŠ¿ÆÆJÐTFšnZ‚ÄAV…hÆÆs ˜ƒ‡5-b²›ÈÀ±ñ H_,Å‚7 ¦#· £˜"©] %\F®ŸeaÁÒ«¡X­ƒH§évaœ+òðÉAqÚ6~à«*"CI &‹ ^hH *öË­£hVǘÃOÙøI&=, iÊiX%Bt¨Û… +!†õT $$:’¸¸Ø.¬²°aT%Äc´°¼ÂSxpd\/Äd%’„,±i¼ú‘# H_lÇ›iH%HSUr15;C¹Ø<°Æ«td"ŒXhêGŽ6ö¤Ð)L„˜³Ü«qÁr¸€4 b>yŠºéª1:[îd`:¶`“@-\•Øõ´Èàb· cM>m›Ææ£ˆ˜ì7`ù( 9,+Í¢FˆVa0€h –E{àJ­!w­Ã•(Ú§ÊP´Õb" +Ž£¢Md¤*j1íòQ Ú@?7-í €ö‘ªh ‹·h \‰¢i+NÓ‡JâbA‰qc +6—§ª åÓF'ë™>Í5ñªPƒ Eû +™]XEÝH4ˆ+…iTÑ6®DÑ6©Š¦ñÀŠT"º,šžn¢©P‘ÂÊ Y¸H ¥«u6Âêh¥ºíÒ`"D (ƒB3mæß»ÖDQº\FŠÒƒó…K‚Ň!2”: Êy_Ø2=@ÿ%0ìva8ƒ¢tI)úS(R”Bœ&T∲Ê4WL¡p (]TN + +2X` +,ÐæX¶ÂJ!w»0 öX‹Jx*Ó¢hÜ c¢¥ÊTEû ­@•¡h‘‹E3ØäH”ê8AÙILZe5›§ÛPh. ÒÍÐÂ{· ;Q“MH™ vÀâQ±ª&Ÿ¶óš: H¬ +B{7Ÿ Á}ö^ÎØü b² †­w†Š &ñP.öB +P:ÆÎP.l@>ÜËélY"˜O¨4sˆÓ‰¢£L„hfD†$` ‘ …³ 9mVH2VBB,.ÇãÑ@, $1¢(c 1¥CŠÕ3jŠ£6WFAÉÉÊ©uZdLÑû¼ W’^R¡&äI¨ó%°ï¦(ÈøSSI`ß Í|’w(2QËH&A§”– ²Ù cú…ø0m§w:Ùsš²î?Pa“'V––öéÔ¸îàÆ]Ô…t¦"e@}ifS¦1ˆDï~z°œº„“^›Îˆ‘è«{¥Ö°½9u§ÝcË*)m*Yeþ&#®9ß©ƒÑ`Á@à]¶„qší±ÎÁ‚ƒa‡—¯æ@u(]™èF;ÂÕqÎGغìÍõ˜æ‹{®½yâiHZSÒ„c5å / ¡†cGDõpP„qŠ¡BnñãyÀÊf»·&ÝiX 1cݨ“-È3È€¸ÏëÓl6Du>cÐ ]ýŸˆ^Ÿù¢p>3¡QC¨û ¥õ&<ƒTãVS•Ã<ªÃ¹cPÙgpw5FJ?É´FeDõx· ´N8Ø>ƒíFCŸn¬;ûsûè ÞašK‰N€ÓûÖ”Ö¯9¡NŒ‡â€!L"ŠQƒ-1ýì°®9ƒ¿ÅÌ$ÚyµqbR[&# +ódiÑÖH·kN6Mx° Ïܹ†„H‰,ôÚçSéDD¥Ü±IŸ’ôTIª=¼« s¥¤mÛrÉ?Þ–øñNÂÅ8ù…Ì(³R¥\¤}Aî6™„µíËF‹k̯Oa[àÄ«6Ý ++{™|óKë£a‚ÙÈ"ë€pñ¿ T‹“C[ É ðLÛH©4ýEªTTNÚ'C0Â>ƒq0¹¿Ÿíç:z€ûÚ‡qK¯uíP©HÊÙ†åÈ/†ž(Ü~2ð$Ê’ÛM’L¾¢±ÁÑg1džôŒÿ‘×…³¯…$tû&¬i šÙ'I_c"þØ:Y>¶*™×í¾wBAÔŠ 2A{†SmŠ/mü Õ*­H©iâøú•¾ðÛ±H½hzáE8wû:…&¸Ä`—qm{ñ3iæn•®AÉš!¸^71–5op¡QÕ² Z®WÙZUoý¸/Ì™/Ÿ¨‰±ÁíL#° +/Áš3oö;–í3E‚dø)\<–~1¼ ?‘Þ‚áäŒ +‚/¡§ +ØöÁÀÝzºÕ?¦ã…wÖù’›ÓÍ +³Óë1–™Ô”³¼$s?ó©uö.µü’l“©úI‹©§ï:¨8„QðÁ5tÑ^ªb Ö¿Â0B9€^+ ;ÇœPÎæ–ì!Îw"c,ß…ëO8T«ó °HÛx¥²ÒPРÃ߉±TW7.˜!Ÿs°¹twú-e«+ò¾W¥Ïú p!BÍ)ÀVWMå¹3Tû|^ŸX6:×õÕ² ©«ùG ‘¯¾»ÐUþç³øz}¬E8iëÎ0Ä¡Ðáüãxá‹òÏÇGŽYŸÛ¹øÊ(Bμ>VÐq5˜ä6¬Óô?y‘Qy‚tjS‚6yØíácÄnŠÞ÷CËÅÚ(©sês+xs õKÙ…î½hí¶€‹x8&o–,s r+zè ðò½)nìÏÃMo<ƒÙž³Ðøÿ=‘‰V•j¨l™yýy¶eŒ¤kc|ÀÓÔÁêGð}Ÿ3§I¾än)P8»ÝP#æBF.AÏÊI™„Ã8j΢ڒ©ä-™"¾ÞŠ5æÇvšO°ÑÍ«D&SoA=M2ûH‡L¹F©æ–÷25ä<^äUõYŸf§œq3scf¹L”3g¥&ÖIëÖìŠËMŠK‘ÃÁÂÉÄiéK7@rY" +a”¾i»|.ò³qgôw¶k¸ÔÅ­0èùæM#¼&}wÒA°Õ5g'}O2ƒ›$hð“øÕ—‚Ïy†ô…iQÍ2u˜Å ×—¾DTŸEE³Ù¢& ¤Üø ¼µ!]úf‡ÃÕôîl§¼½%Îì¥,µ}|gzŠoˆÛrôÿž˜Æà"@5H;Y"u¹VòßMÞΰÁÜJ+ûONÀ“ j\öÑyëÉ}ê~2øµÙ'`(Þ?Õ5>Sk²nªÊ=W%ô¸8,áôŸ#«¶,)jŒn'¿Oà´AÅr åŽe²Ze¥`í(5Ò a›ôöújú:*ôj¤|Ò%‰™qÕìg&ëÉÑÄÓO]fD3…š…ÛÏŒ¸M} ´6>i‘:ÜepTCúZèѲ˜> +²Êf—C“éÑÅúÊGðé»NŠ +LpïÃ<¶•râµ7Ôp¢[ ™Üý*üø"1êJêSáÆùèJdøÇ’Â$,œø¼4äÃpÒ•3*¤´X²ó:ô²\éB(ëРøäQDfV:ja²ñ0œV%Y%0Þq!+ó}ÉL +…ç˜Dkắ;?/1ÔÏ{wâr+g·É˜NÌšÚ¸" +XóS@H&7ã%&xð)öɦMxï£(MáÏUß@xrÁ??·—º¾ÝM‡Øå™Ð§j Ñ^_(ö ´WŒÜúÕ9¤¾ìû2Ñ¿¾¨sÛ4“x}›+Þ{8æÙ>@õåP)¬__âçÌéŒ~¼¾Ï"вiSaû)]F×õ…¥äÒßåúªËe‚’ v0XïúBËz;Â{gx1,.©2ͦ»}B8¦0â®™º“P3?96]êÆ&î¾O½ªžY%ÞË?î“T£jaÅaÒa¬£…¢ŠSŒÁq|÷J—Ù€@{F»$…”½†EDÅ#Æ ø®{¦CP0Ìè‡ØVÏ2‰)„aÂD™˜°ñÅÐUÖ$÷`–)ЖSRºup8µ +ðàè8éŸ=_ 2üN‡ 8Rš_¯[ï²ÈÉÖX€Žh~Úº3ÏðØ&ØiÞˆQO-ù}È BL“·óTs¢píãËWÍm~CrÌÒËô +Ö‹U|\–)âY‘_e«°öA;Ìë®]-Vš³wßq‚EHpÎ}œÖ븊pÚ¹%€~[˜~Ó Âh›­Ìg“(œª®e“ ¦Ü‰X6à‘ì…mAÝʶ/~ð|Nþ/¹<ßÞUnÇ„ÃÆy v&‹R_‚™8ž¹%8„E qÈ.§{wÓèvãèú›3`.¬„кšiœ±V°”¿ã!W4¤9 r¦8U9¤Ò||å>¥a”Ô¬\èQ¿¨O4 s‰hp†¼Cå(Ž¢Ç«ÈvD¯&+Ë3ÃZÜ‹®*«¢™EHÇ\»…+„‡PÊ'ŸCÇ&IrŶ +÷4ÂߌPŸ LÖk~[—Þ·¹¾XóYä$“øÈîÏŽìÎg¯1†QúÞ©?‚"IÁ½Ç(Ã}baÌ:ê£×±ê}ßž&ÉꢉÒÉ—ÿé¤g×owð0õÖ·ŸïRºÁr±Ü£!yúéS‡•÷¿ !Æ#$Ð ‘$À⸠i:êS -‰Çøe&P¯Z|­¹¸nPòo´‡¢mÙ-ûg]ü 4ßÎÇB¼œT2”–€iªqÄëÉCb,qŸÈ.62Lc­M•@‹¿è›þµ·²èåØƒ,¾êw‚ÌÚݯ\ºiq5„ªr¼‘ïOޏ´2 .,˜,žioýxs¸ªêšàºŒërŠÛâ"ùÐcÍôTÀË®@½oá¥`÷úAŽº0l–ϸÕµ‚p²à¾Æ³3¶2üT£ ¶‹j@‘ñ’ßÛ«i W}ª3ñÌ÷}Õ'¥S ?®å“'…Ñcⓤ]ÍË øqFꙓd/Þºû”)#|rÆúP²5Áz@䡪'¢ºùA½!óÙÉÌe¯ÝAþ±Â›ú|Þa§§"We> ÆÙ–˜ÏÎsa½) ‘çïߊ”|C«J5*΂Ò)ãÿûÞ +Õë«,o>¥&áúñÿvT~93C Ù#­_µ®ß–`¡¨ 01½F4pÒ6Qh›D'm2BÔY¼µj8ÝAÝÚ.tɦËÑÆc!½HÍÂëºÈ¡g´¯!\ˆ“G +¢™gåþOnÀ^n +î½î¯:‹B 6°â/ׂ¡ú¶ªWá†_DÕÌãèßÜt‡³sQ5SªÕÏ9íUUÕ™ H±­ >^RjxïÍ1, š•šX%ÆEñ8°8V‰Ã6XqÊÌV/>Æ–~WøÔžá6ÄR×£7}ȉª3ãÝäõË()y®ÆIÌð¼ŸÍR‡B3òÌàd´G¶´u5‚»ìÈ+Œ +G[5Ý9§LFþÛ€j™Â‘fµšŽ\µÕ[Ò(j¹0ÑbäR 'E2‚@Cn´{‚Õ•~ö4Øé6Ð5fdÉÕW9Éüc޶çA ¤672³“y‰…;ÆË'FªjBpõ—)l’÷E@ásº®ü‹þñpI!Û‘T­ôí©»n­`»¾ÒµL+‘à Ui/‡Cq3k¥JJ8|’ç2¬ÓÚR8úôñh­á?0§ý2ŽWÎôk5¬‰ó»ÙŸW8'Ï)Ó"‡Gÿ gŒO­Ö;öPÙÙÆ“ÐÌoãc9:=ˆ›é6|Ó ºz0ŠSjg àÿQõlwŒ®»d†Ú4ÎÍâxX_ýHr¼Îþ•Þùæ—vØÂþQàrlÄ´S+h ¢Íe¸€ÞBÖv¹Ÿ +nñ•¯SÂÕì ¹¨Ò#Ty‰jVššð>‹œÀ9«ÄYóßá@ýFLBͦ‹Tµñ??EúK†ŸfMÚÿPœºÔmNe´ƒ4Tó`zée£¦ëÝÄt¨F]õ`xÇ­ ¥†®<-Ýþ;Å3sOy^êø£‘¾ýÃb)ëì;h²[$Ú”ŠS¶$Oî‹ôl<(:–¤ÌJðB/”ýB‘ZÞ{¾µM¾ jÃk lŠ"'ñ¦Nñ òô,d¡áž–^ÛS'EfË›uÙ&”qnyï(‚öç’µNCÔku8‚‹œ üæj ä€~ãk„ÏBfÏå©-w`®Ú憾W•› Æÿ¬p<èV«dð•Æ•¶ðL—ä¯r-«„Á×HFÔ:I…™¡µÕF‰ÒG{Ù˜|bX|ÙÕÐyK· Í@hÞ"×~øø Æ ¾Jíc˜àçÅ l" +†S0;93“7Ú6øš]Yĺ €ã@j&b;Ø¥±Äs¯‘ÇÏ€T‚Q^ψ’›)Ⱦ@³Š@`túå«ÒsÎ>fôÑ +mÀJ#K“€U;°¢Iž6ž âþõ ”Ш‚&Xt5pý"̶¢OÕ„¥VQöi¸ŒÄäIš1ëÀ7ÿ» À7¦‚ +>úRô²´fí)¥ßJ!±õ‘!у1¦Öì’tg=~¦(•Âe¢¨6Ü–­?›èçCÒ—µŒ>GMø=œzÃ’ƒ"S×(̾?²kü‡rö*êÿü:ðŠhÇŒ+³~ýKÞÌŸ=X9®bF”‡ÝÉÊ9>C©aÛ,”Ùî\Ÿœk80ÙÃKB>(Ùæƒ G¹ÇÐ^ƒ‡¡ˆ7É+¸T 5¼ò¦»ø[‹è>o¯í;PþL òMÃñ"¬{|+x\©‰u Rn'ƒ«ÿ‡ Pq}̆­,éy³P&íðÄý[r +b™^t9€'#c.fáº6‚pØ#Ÿôš¡Æ8) +N÷S„W §•øjxûYÒºË =JSÓ f¨‘â”ÅI‹@ðÂQ¬€ð€²ÓJ¦–å[ö‰€ã€²» ²Mº +Ä…úeÊ0fÈQÖsŽá*h2?Õ«?Èo`x¦ñò5ŸH…Jò £Ø³DƒxߤUÚÛý{ìîMvã¦RŽ?œÅmµ©žÓ˜”jã|&zá)„1:V §(ôÊádç®)GY©àö€ÒÚÊvâs Øh”oz˜Êº7E© 3H’.«‚„få¨pŠûÔÖ3í¼É÷¶‰%‚f¶íU£¹síl~«wëùÏáÊ ×Mz Dî„ö-EŒJì‘ì?4¯ ö¨ ×Òc/'"ѹœ¬®Ðþ°ØÒO1çD(Ì£±äèmbÙ$úœx@–Kvövÿ -AùW÷ó1!¹”xîüžõ [bÃôUÚåØB‡Y9ëeÁ¡ÿîÈHWÑ­ežâ J·îmd^´ŽN§›âä(±f‡Á° Q“2 O©ôþ½Â-2Ì2òsWýp‹]4Œñ‡ˆ:V .M˜ @ðyЈàB©¦¢ÔN +eQ?ÃRŒ£ŒpjŸÿˆ¯°-ÍudJµ]·–â`ÙÖ€tþ–A”ˆ-­N;%iq±˜TJTÄ=Ù–;>KÉmûëà4µŸfQ¥—:·Ã š¦Z¡òzÂ"²q§׎Áù¾Óêíý'ŠŸù`ÌëÇØ†ÐôQ!Û2Â&l³Öh ã¿8Û‹C †,Ù¿Z?FöåÒŸc4Ÿ|<'cÓñÒ@¸ïÔñ¬]RwYíqØEÝ!U±àËÌ{ƒ}¡Ü '‚/ßË/ò•û*wy2%¡$±aVd‡r-)û¦PT*bYýÜ4áDo+§»£Z(¥ÔöÛüí°~qµ’Â`œ¢ºB=%}ó3S¨£È7[óÅç)¼˜H–à1x(º2µCÞ°oݘԶÕëïBã;ÃN¨¸sǎŧ x‚èú¿Ø‚g=«o¦ð <ó£´§ÖÇÛÈ–ÆaÎHö€û¬%Óžj7Óµ•[Ž:ö€µ*ˆ©£HGt6Ks‚âW Ô„ dhw™áì³|ÏKÑSJ˜|°šr•¶§òK!< ´†'o¾%H娷‰â o7Üì;x+Åa™"i¢žïtòì+Y‡ú@©·ihã÷i‚<Ñ¢@å$ºs˜U¤:µQùð#|¤hÚþ!F€ú.iÐ\ãS‘àØ² TIÝåÌ?·§d‹àlÎq¬R¹TË_³ÄÿU4[ÙYOº—}º_òTÚ:÷'Ç൧#K&¬5·Å3õvŽâ`‰#0§sKçÚ«J0aEZÌ +Tè_e`É]{5*ñ:o«7K("¬.Ímš–v+nIg“¢!B{¬v2~m=›îlœÝøøàIñLÞéšš×`É0:nd«×ðŒ2„€åÐ/óÌáfÀc@»ª Oël’/dxiPf™=‚tõlbYG+†­8ýl“Ã×Á°±°$„í; ¢f»†Ò|ðžj¦Y‚$‰›’ôfmýÞªâ:"çôñrŽÿÀ#É$m…ÐàWŸ£rgÔË“L™Í bºæÐ✲O .Z·•λ! n Án,æìâË~YöBã)ÏÏΡœèJø8lÉoà×Ç4N>s£+ØSž‹Zœ©1B¾äKoü ª`Ëšõ¡»/"a™sÂCmò<˜¨Ìâ7²k"ºå2Ô{H†×ŸJ5Ñü´S.£’+ÛAžþ@¦-žžjP®Üƒé|{T<Á7èH€féxZ?ùýHé‹@±‡ˆ tº&.£RN'b‘Gªú8óc-»òí8¥Ñ“¼ÿ'´’ vŠ-’ûY§Ž Þ:ÌBÈ`ñþ§1RèäQGÔGÑñ%çìnvôÐÙco@I-6³-¶i/K¼[D³²|ÔȦ˜"ð ?úsÛ=}—EwA[ ñ~ÏSS´ØKh$Ó¤u-pÙMÖóF/®­-J0»í¢~G$-#Ý~ÎÄlzÿs8¢Oçµf„ïÚpF{W}xÑ„;£‹I¨Äâ®2®#k¯Áe¬‹W`ÕK·ø+‹*/zÏJtw¯”¾mRÛÌK¸½P5‹´(œ¬cá¤9æ %¹,ðB˜m‘ݵ!ÉcP†Ùϯµ˜Ù«Ý]…×@†WŒ ðžÎeoâ­_J#D1þh$•«qf‹¶mU§zËUÙêËe±â^&i‘ôVíÊzAòå{ MÜ¢Ÿæ»§kDŽ _yFŽ?$ƒÉ«¢dØ9æPÅÚüûºô¾"©âþûÀ„Æ6:î‹$Ávzpw ýLu¢M-‘N1÷ÞyÅFR´Ö`µeÄãÿ¨6a +'ùήꜞT×µñÚ~q0ùºq#ãÍum—®‡êTñߺ–un÷È| xý›¨M«Qe6K§/&¡×:Îu²ÒÇ~™@¦P…_£O‹m*ñá¿ÆÁ2-á7‡Ò‹‚M*TX2UÆE;%h ÖŒ‚a::ÚË´€™#‚ƒ7µÝâîðMHN _7ë?i_ÚhzµaRiNp5…Ám>M:ºîSÃ<í¬ðFí+•&0~ønEñ;e9¦Œx·<óMºGce·oX0îö24Öo¤#ÑY…Oµ?LäÐ>¨ „TD"m…Ê«'º®®;¢[/Þ +W_à\ûƃ ÖÇz‹Zðç¬<ôFõ=sLÓ)2 ¥²èýŒo¶ÞOMz‡ÒàñêçÆu\ZÔ=Æ:Gö” ¬ðdè¡<×m¶7iu]œ º¯*“Ú;Uv‡Ìcg6³òTÞ»3ö¡(ž»-9K‡¢ãÎïòá>~)¹ÙÃ>ëÉ9®ïÃT”©Š€µ*f8}Žzû\½ÎÓल* ¼^ürA£‘:щ©(¨D”ßf¾lKÍÿáË™Ê]úÞë@§vÉ^!ü2†(“áQõdŠôpÂ,äˆ 8> AÒÙæ-ýXQ}áÙ¾WùÛ~‡ ${Ô«zžÅ¥X  h|pxI«DìwÚE]£„„“G÷j^õKe娰‘å&e$vžqÐÖã üÈG”4š•ÃCREºu“ûC°wÞËž‚{'ºßvž’ë+µwR{Ü´Ä1ÂÅ÷Ãó}ˆÞ¯¯õâØŸ èŠr_ø†jq¼ØM˰Š*ÿãi $^ §ÏEMOVaA]á¦ýoxåì­}ÞÃÛq‚ä?éÒ˨yÄ5\¢®®7J?.÷_Ûò4šKõ§`âù¾A®SçßBéœ)Üê„Î(“†PãFSãò—À°ì'%HkdEã1¾¹ë²é²ƒéìAãV§ºÇàË¡x1øôà|G´A #ÂnÔèwþ4HÆÏ¥ +P$t¸Íq.řƿSzEät¢¾yÖãÕ¯¹W\]û²¾@ºU…‘9->Èfpί·y+hž‹ù»*uÍêôÿIN4Ü: +ÄÑ&2ýñØn†Yüèâ0%áºÑX`\Kp¹¥ú”ö?ŸQÿ¦*b†aÏï˜D:‚@0-DµÓt».w-.ˆ ÉC3üCz°h +Ð@܌ﻫ/Å–~–!¶VÔìÞ¯tmD¤À ÷wÛÅŽ6ØèŠ_nî´Û4ÌøÞÒ-Nd¿€¹V¶‚ÌvhÁ¬‹wD²£jcïÅašµþY•@èÊú¸®Öãç åzMÿ1¥ó;`ÒJÌxsu#2*ëÛq”®%Fõµj„†ÔÔMÕæmiLQípª»¤Ïž!zâÞí–`€`²é§Ì›Ö‡~€²#F#i©Ñ·u%ž.ÅÅ&¸Ï¸H?ð¨™ØLÛ¤üÞ„>)À¯2›H#H§fü[/F2êÁ¼5+Þ‹$تèïw_áñd¼w9%°ÅGR»–• h9Åj·óäúäú]ÞUˆÿ ]¬ø7 ¿7dàJ#¥Ž;b/ì¾Øåûf"¿­%³kA@ÁNÞjQ`'±„r!ÖP…†7EXaæ"¤ùòtßg+ÅP?ÊA÷Åt ¼/îàÎ ‰Ôú­wÖ‚nw¡ ¤”贉ėSF_B©iÄž*z)7ýs>nL·^¬Š' éjОGp> ‚Ѿ!¢°!ÛoDÏ.øþ'ò#i-u;Å>Wqš™j]ÊG1u’¾ŒÉÀE‚¯Ñ8='&§'§yâѩ؟+âgÀz}ïcÿ½ÿ}ÏÞ›õ“_(ê ‘%‡‹|õþò·{—:÷š!¡¹—õÝswaô~_p ²\Â)gͤ5÷ð†Çø´'ÞÅ=>ïœ +†÷ð¦(Ÿø»™³€ôg ÜíÇy‚Nb0 RßLyÛ7ržfÆbÙà—~Pê<¬¿jÿisõëåÇ?Aá*å7̃Óf$è©iøã2¸B“„DkêŽô^ÓÆŒL¥’-=^e´*qYrǶ·9ùÂÌÖ½][ú`Œ- aûá.€Î<\eÄ¢›¯ÃÐøH¥nº5w1·[6â_8ž#;Òʈ72cû …°=pe@}j„üs¤Â„FÛ£— B…Qz?‹L훟öÝ·ßÕÅ’s4Jò?!hË©¢3µ Vþ·ãªfíö8´·nö'_3nv2“ýºeöQ™—B)RÝR6œccS1yžŒe²îi„·°ZžyÂjˆ¤´¶¿ç4)F”É~-@´e,»Õe€GÓ1]tM65ØÔž²jä „-¦’'“²iÍ•…æM0M2—Wù™¹C‰±r¼ ¥¨QóhRç¹–I7›_‰B:Ü¿ÛÈì9Íî%Ñ^ å.@ú Õ @{Þrj]R—UÚcTz\gRö 6÷ؘçr»Seɳri«¢è×O_q;eê^2µåÀ ÂË‘ +ºÖbv„žK\²Ú×r’¢8V´x0A1úÅMýwe`jR˜ÕË„g&E# çzMÈ)þV%€G4 e*:P3Ä£›pr(Áb«± ÀMU3aŠÙXif˜?Sçê:.T„€¡Ùž°^%ýÚ”Ÿ» +šUKM3+­’À¸Ë!ØÄ¨hòºŒ8qŽN¹ÜÅI_e6¡WѨxœ‹%Ï7p½lË-§âÏP|¶ÅéÀeŠRFÙ€ñUü]­‹Ú#ѯÁQd²ÑåAî¹CA$ʱ _‹Ý–+l»_&E§íT“ô¹VãLôa>7¬í¢h­kBü +ÆçJÅ矣>í›K77ñÁÄ›q™Qø§$WqD$ Ã¥T€¾ò ñ¡UABb*ȳb›X +Š6J Õ>_–óó‚ÀØaJöæÖýΧÉCµu–Ãv§xC>V´7l)x™—EW¨H‘}gLàÄTé4jR‹_×±?ujrçÑI¬Ðû¤~è©oó«hµLáZÔmN²bÅIµ¼ækñª ÷Ê.a +àDî^#b©JL²–…«œ«ÉXq±ð7ô±?$×ÕkHc£Fýš«`ÑÒΊt!äÆiIŒœ+DÀ¤âzIÓÍi#?sWÖ܆×E{.7¡a˜$”4\ÄVvIeªTêî@>@¾ÃJ¾ 31c‰±Žþ2Vëß’©½‰•ÕØ'äÔ0—¸úƒÔñ?G\÷ò¼Às ++7~´ÂZÙ‘‹ `Jöo¡M|ž'E¹qÜmüš¼‡f(åE.Jí«ìÜ1GA_¢=ˆˆDAliJÊpmˆJ?ŽÇ#G@Á¦ßͽ«‰¿h¨=7³ -‘d iÅÑT2T±µ&6—\_¶êey`ÇG¥¼¥£w-V‚Ý¥1ņ¥Ÿ:,Öé„*¤gݵ‡ÓZež”u¡8%›YêA+¼RŒvh$<¤¢Ê±2h|E¬Sj +M YW®Ö¨Jö¡ì"NW+þªvÿ¯Ö +*/™Pñ30¿GÈçPÐð§0‡|Ý?O³Ú¸…ݼõ$oyo`}<´L‰‰¼œ¦ÀÖ%Ïùšê” ð­ S‡JÛ‡?vä– ‡/È€m‹a‰*/œ¿.…JºÆ …•+õIÿRæ>C€Qón0ÝvrÎ>µùNž“‘¸ÐÖ뎛¿ÿ*îÓOëæTg®j°Íµ)ò?Òì’¬-¤¼%ÊK¦…äuM+$8/kXô˜EfVS ñ8pbgÉœõhŠÕ„¾ÙÛš}8X4«W‰*«lªä 5 ÐýùûœùZ›"˜X`A1¹?Òz×ì·F? F‹µ+P@¥#<.U$à"u=sSªO,ä3ž~äDÔ0‚ àð-!~ž&œ½“@Ú½&íàë]³d$Û ÊE%È‹ô Ùú§çÊtÅ]Ü”—ŽJ¢Ÿ²â3öâdSþ€=¿`GŸ6Œ§KÁÁ\–R¢JÙ¯„´û{€]Íþ‘$9j›Êt[”¡ a—_ËDnK>,~âÚ²ª¤º: Œ\ijiŸG¼L&\ù„ÐH,×G¶Tm œ–Vo m##Ž ¾1dCºÆFi,!ÀàvÀÃJþb™.†»Å²X²µY7º{ƒvŠÁ£Sà3ÇýRwÌs*­ :)}òÎ}òq"Ô-({€×bm]qµÁØ›\‚H\ð ÞÈE³\4Ò•m¢£ñW¼üâ†P±S9Ë`è­é ª©Å4ý¢øvÈ °û)—i#eûÐêgd9éŒýœá–³•.\çaºÇÙlÃØšèk-±&¯Ž×1ÌÍ?-YIq!,+UgôÌôäƒóþ^g!÷~Ÿ1È¿¼òiTnƒæA+¸aŠ +z¨F<!ä‚ïͬØ¢<®ñ&6Ê"æÌ‘Âê{@„AÏÒùÏø(Žn—Ñ“Ì*v`GÛX½w"ÊF.-;Y(!!v{ãp°LéÌ‘( (†8¤ícâ>ܧ Ê%TÊ@ÑözàD®˜l4=JX™×û9ñ?Ø:ͳÁ-عìŽá2ø…"B"8F­ÓYÈ?’° ’Ú!‡ßç"¬­DõQ Ye‡8E5½Íg.¾:^´÷ÛÚs)‘9ÓÈ߬Ȃ òãD fiòpJfZœ‡q‘aK,Xå¼—îh(²àë)ö^cÏ佑áüÓŠ™M“‰×yrM€'í aAð`‡zGùçXMX|šÐ"žìD™Êü8¡›šLU®U¶™ÐLÝÊ%±„a:UÑRbC²‘Z—Hä@BöQ›Gt©#0ØfôÌèöe4¹ª lšè%ö +¯PTî^KåHKA—\ÖÅ­I»8€5:nð1­Ì·Ú¤†/eˆü¼pqÕ_¹{+-L€Ò’Àm«tŒÇ¹s*%ihs ÌcmÍà¤èÆ­Æ'ê:Öat3fŸÃ('×aü{¶ÐV¾±|ì¦f1·#Èê%¤‡ sôñs6Ú³Ai)ç¾3ŸwÙ +iЯJ±43¢%¶ÌN |zøh-éqËÒa–¶ÜnÖ ;!ZÌ;:I*†ãPGŒ%·»Ý9d*ár +â4€åö­t|›wf¡3(rÌ}à luÖ4ŠÖQ3ÖÉPx(سÛWmBÇñîâòM˜p¬¾xM (9í~à¾oè +ì¹Ùb×`K²ñÔ­¤¯ìÚÀ«§)ŒDí.ä/”ÐÝ÷:d §ÜŽ=ÇFf ~âÒØuò«ÈÄ8\lŒ íººßEš"ïUÒ/Þ€á(XÁƒÑÿ†!2Vzý%ÈávîðÝ6ün—¡Fÿ>ÎX×Oóªµ9Ød›”¡ÖïÒÒW'ª·øJ±;ªÐ‘â”Y·{B ae2Lý/âÕãx…íGö ÷gÜ ŽoÆ}êŸQ{»©‹`so/è“ âVrªÚ©(éÙªQ€âêŠìò"ˆ0#t* ‰¢$YªÊ7·µˆòJ ³6¾¿Ãñ(O%PF T8D¬ÿÂ=^Y¯xéî›’‚{€ÁX6˜ ¥cÆ`‡ÿڮУ#  @>>O¾$(³1ÕÔÃ×/y:¿9ÅÒ]`ç@H„zÍ d|,4 ñ[m܆S‹Wª¦–’V˜M¦!KS£ÚßôËŒ^ú•iÛÚ¤³=¶ª FéTõK¼È)ÜOc.뀊×ñ}ËÒS©y•ZdÒò¢,|±…þKÓz0àÍhIÌ]ÿn²P8Hb`ì³Ò1}ÿªïq^ú¾¾ùFRnµŸk°GBRƒh>×{~gWǹ Nó6SVÏ@Ièì£áËMËR v—ÊH Ms­l[çT×ñˆ_NЕ4!¥Ûæzéù¼³€õÿ›*}ð-ŸÜ>Ä+‹Éä­ ü¯‰Ûw]HGÖÎÛ‹«²¤h,³B` cJ&V+D|ØR;C}ƺ4½u^RîvŒð¤ž^BÄÎhPT-Ò¼w™–BŸîüY¿*éËèGùëq*.=?ZgãíEÈ   fØ/¹/ßÿäj^ëõ7*o|‹¹æÍY>â6p²÷aÚÜ&y»×óž&Cv»å"m]d<£‚2Ë ÁÁ9Û%ü:Hó¹ešÓYÏ+áûe%þ'Cˆ÷ øR™5¿`±pÚG&¹¡9Ù`¼pÑõÆûäç‹ë>ø.ÉÁÕ°&aÓ ðÌ…q•ñC‘ÁØ[z aÅ#ÜË´Z\º=}ÈnЙ…}«/ë'7J2n»©l€ôZôᦩ¬wÎel×Ñ‹æ–T +‡ÿ„Ì*§qU:0%9ÀÀÀÀÀÀÀÀÀÀÀÀ ôÇê‰H ÁH@qa]WÔÇ5¶wJIÛ¶mý¨† KD@èJ}*ØBË4К‹% +´ß¸:¼ƒ¤®ìJÛ;ºS— +uÍŽE]³àbÉŽ"›•]A#;Љ0;ÅÀBv“ó`•~È‚•œ]~Ènr³û¸|Ô•6‚ZKï¸>tþ>ôCÝ2ÚR^“¯L8†^ŒÔ¿„ÞÓJÇGóõ6îSaÉ©ú âmœ÷6îÔ ˆÞŒ;‚_t˜Åk[(xƒI ´FzB.l4,MRUXµŠ÷ÐÃà=G¶ [Ý NXºï+#`6æiPNð'|ÞÆyl:ÖÎ:঵?¹õz×Ò?v``Hèµ;•v# o%'–Ì¥¼ ™‹Å„0!9 í¶í&êJh=¬¶]P †ÖÛ8Žj©Ý"»pJŒüЇ¨ýn-4 £ ;ò®È?U)æ¬Äû¥LïÕØšáÎvQï^/ ü+óäC»“(ZoãNïØ¿\:=Aš·q3³dXvt(×¼&’§žÌr¹-*¸ÂW²XQ\]ŽdÅ@нë2´‘ü`D6mjs÷Ž(ˆ$è΢4ªîyâÿXEƒ¼¸ ŠÖ‡h#™³8OøsÀ…‹~›³É¸¬O‹Œo‚%$‘@¢»"ÍÔœí^£Oèˆ{Kb/×ö¨,ɼ¿¡˜×±¨O|‚¥R,¹Ð³ƒ·q.;‘RÌP8ãºó À…ˆ‚ýP½ûjƒ„='÷·mÚ%å½;<,ß­×v¹;k}«BÇ–0t9Z©xm/’• ŽdÞÍ×ÉCAîŽQ“=/µÞVT }ÇÁ½ óX|vÊE;kb=àp@‘q=pÓ’ø ÖºbR)niE¬ˆ}N±¸¹ °dH ÑýlÍ,Kvó¶ƒTÚèlf&ù(D«ÈŽË"N¼œšä˜ ´ëmœØÆJ¢’ XžXNnÛe¥;ñ88ñï§ã-u>”nš4}_ øCHêwïœên«9(<œŠjKzþÄåÔwè+„„=1ÛæqÜ ŽÉdFDq·]‰æ®rÈ7ˆ¶ÖìÇ»mCȽmKX“úwI7ýR+çGrœ;*›Ä}5 Ò#¦–”€ì-Vwµ%ÌD&OCùÒË`ä‡ÎÀËÉ%¤Ç‡PÍ5«ƒ¥õkìâz—¢ð>:lânñ¤¶ÝäxÆš&%xƒ,«f›–m³&”¹Ob„¹{'s2rg]îmzRÇïê94v•µaÛ0ÌCuÉ«0cÚL›“ä#*X…îñX*6è +¨mƒ!Ƴi퇔©dåEP="ùŽF¡86µšÏoãZF‘yÌfF L L*š\íJ‚rF3 Æ`ÊX)P‚¹<7¶ÁVƒÈ3àÙíDÚ£| + Æ˜@¤h°T‹ñë& ª«Öô[=“[ìÕØyçÞß¶oI róûTÒï’ŒVç¦Ì†ÔŸ/øÇ:¢ðS­ 'ûêñ1¿`i_Ø D’èZV«ìªQñUCKݦùõ®ŽÃôú üsÿÁÙ#4\Ub€ßÍìL`FQsàQsàUœNȹ JèL`³Ùbôƒ*ÏÌÁÿ¡ú›éœfIŽ"‰îoéU™YôU™_•ÓG¥8*¥"2/"ZÖF4áÕ$¹˜›ƒ‚GyCSÓÚ‰Ãù(_¢ñ¶~ö]D;ï‚"X¯J¥†—˛դ?B;ŠrñÎJà7y‘ äâ¼ãâݼ¸J‰î) +-™xýG‚ý"ÈÔ;&Þ¹ÆÄ{I1%h%º—Ò’‡0"ÿãgT–DÔ?–}ÇÃ;êgR`+ψ„ ‰¥3'Ø4^ȶZ¿E‰Ãæ‡dJ<¼¿ÎÕ K’•%Q¦æ(¨B{% +èH ÑÝk*¼—ª;zN©ðnS%ü;E˜->ÊÞGÎØVx¯ušj΃’G%Ú{×'*Ÿ¨,ÙWÙlNN§h&'¥döÖ£`vcu¢¼¦4yïH‚õÒ?t({QÙU+RõHɤŢ€–©;d¶*ï³ ü䪂ÝÅTå$€Ò9Ð4Г@¢»ÉºC¿DÑ£oº:¼'f®S KQx_¬¢Ø?BΓǗ¼ +3$ô¢.…„Ü`¨ r’ѨZHíàÄÜ”&Hx¤ñv3spâôǾ<€4ÕC)‘ØE7ËHVŠ$ªèxU—¸¯•ëpµ)Œt;,ÅféX¿BRMcpfé¾e,Ä®Óq3ã$1»qe;oãN¿cÁ¿žÕºdy’h]¸(fNÞöfV³/A‰zFÈJ £Ó÷6Nô0^ù—ŒHÊìä”À0À* ç‰ì kí´ @,׋AÄ/ùkK#Ù­™Tj«`˜H/;djŽ© x/I<ÄïmÜABªÙ°·q5‹ÍÈŠ”ä£h ŸÙFƒ¹#{oãf¥sÜÓw+,Ã#Ž…‹>"—“Ÿ¡¼ö²ŒNušið¡‚”ö?•„ch-HoãNP!”€Üì%3̈6eW/Bü)“OüÇš½Z¾[ÛšµKø{÷Dj¾)câÏÈd”ùÒ£^U—…D^µI5ºÛÛ8¶CK]L©îmÜîõµEsÀaØvEe ] +zOSD WÈŽgQË@#X.ƒ..,ÒÔü{p>T¶þ– ç·!`¥•$¥‡KÚŸ•xOÈk©àÄ+d•ü;ÍðX×y©7?g©ÐõÒR ·AG§ÑMÔµÞ,g¥Ø‡ÑÝ2)û+®‘ìšÝg•5‰¢MÆ/ ƒ·qJ§.»T'ò/;Çy" *‹Â\ÏÝ!QÍ*MýëÕ®lh]ø_HX~v¨±\oãd‹ÊÕbþËòŸÙFeI™Œ@4vÞÆÝ5 yH Íì…ѰÌÞÆ•³Ç¼ñ Ųc…,£j½ Ñä ®ÉEïQFmA¦‰Ê8%UÀJËž±šc"/ø¿ +]¥×!µýԷƒ +eìJSzoãD«Ù‹˜ÔÛ8oãćÄäMFITzoãîX*¤·qŸØÑ¢·qÞÆý¯ábÉ®Ÿ'²°ÀÌŽ%h‰ÈD˜ŽQD9²YÙõpe¨Æ]?SY©˜«…,bÒ´X–;™n!€ÿÛ_ð¯¡WÕE›0ûdw ’WaV94l›Шú‰aÂLö½ó6Îc¨^›t9áK@ÑŽ£ÓïÞÆy·qàÁEúst"•boãLð„£Pr?5_Sç_CÄ oãÂ#õ ¿ò¡…µuá“VÛ{æÒ>6,HÂq¸Ú—1C:ÊPÎJ*©âmÜŒí²‹%;Ìë”Èfe· €#ÈÅZZ“¡Â\¯]Tr +y·#IÞèˆL~kiÚ¥JSß" AÚV,;L§.;Û<‘]ÄÅ’˜XÀì¾cCPCüµÑwòŸ ú/Ër #vÂ/åÊòóåüncÕÇDÒ´ ”Dö÷q…BfóÖÛ8J¥Tƒ "Êa•jp×Ä”ô%%ˤ¯Ñ§Ñȇ5áìá76¡[ÚÓ>0Ôˆ,MkÖwèŸ>VÑððçÌcü;=%»ª)X•1Br|>£ZáØ·~®˜èÏî¥7D"“Ÿªš×4çCgñWû†¨pòž*äÝÒ5XÚ–eVœa N_×A”¯SW¥¯ã¥ŽCþe§:À<õ¾¿n|ɯó6Ž|¤_gb1æuÍnÒŠewxɯ+_²áj‰ç?Ò¯#ïIÅÞÆÁЋù^¢ãDø†‚Õ€?ðbuóö’rpbÆœ!%4-ØÊÝ`kë©f-ÃGj- sµöàó]Dj"=†ôÑg‰þh"¶ºãŒ{ ‚:òQ¨LÌ@»[ÀŽeЧ›UMѱ Ò_þÊò„Çû¸3Oø@€£ie#»ôw$Mýö}MÞÛ¸r@öÞ]KÖÓUp‰q!Ю9¡‚?Dþ‰+/FÒ×`@×riYna4OøÈhORû]YcúÂò¿%I¥l9†‚iW|D€O=bãØŒ•%ÑKƒö²I<âYOX¦v*¼ß¨;ô½éý~©ð^ª§¤Â{Í|TÈ·Âû×̼û‰Ê’¨lÒmö'*]Í“P3OT–gŽÙ¯^OD扔%ZBŒŒX`é;—UÞÏW*ï²Ç äªO•6RYò iÜö¨%A…%I#X-:_Õ>_U/EJÙÑçéc"Ìî“€˜«¤U–ä©TY’$IÖdM’5Y“$Yõ8Žã8z7Ž¢û[`°;bMò.ŠæIM˜î!oã¼æZž0¬IÞÃð4Ý¡zjÊ)TSN¾ö]”ÚigˆŽˆŽâ”F‰UR@5Ì ó”Ô-¼m ‰t§·q]-v’è9”¼Èã°í˜ÇºNèSÛ¤(¡XEeK#§a˜‡RMwè“×8+‰®ï}%š}˜¢ð~p¼ÄŽdU‚=ÐNŽ©Oª¹_FùŸ¯›UL5ûMy¤Ô”y?'²8¡b ƒ K•üCŒBB=y@ÃÚ6ÉšžÈô'*Ë’h?1©KænºCß”çƒäßiM¢4R²ÏdöÓ¦!îD É,ï=¶€Àœ±*½QYÒ$%¥¡D±W–÷5 Qýôt?LYÞûCå²*Ff¶C™ìùª¼›tÉPù  +(P  @A€‚ +(P  @A€‚ +(P  @A€‚Û£³qDO‡€µD+Ái@ðèÕ è¿«©WB("M$ Þ ú=SïÍ€ß^EüŽþâŸßþ´q“N€c¾¤N-Ì †·zYmãRöº¦Ð’(~+®SŒàõý%UªYJ-Z ö@»ÿµØ]×”L™A °Gè×ÕNÁìíIßwì –z×5E°‚•h§Ôe][%ÃGŒ¼ƒmœD"1lÜëvÒ“¹~ãÐ è7ò6N¡¡Ùî¨FküÐHêêA³K)â¼£ÙnìôƒIÄ åTzÀb§G¸q&I@èj@GUмð(X<òظêHæ]¼Ì¼×îÐ:Ž?–ªŸYT¾³ˆ1‹Ü•¢€òGèeIâpBýA[5ªTbšá:¦R=•R\ìjUz&VÉÿã©DÕUÉ¿ÓȪôÒí~N‘ÖFFn]XÛ~Swû¡:G ªªª«ªª¦ý$ú“èþûÿ§ùËO~Temò­)rî9÷6Ž>¹ÉKNr]áodÜÃ/}ÙËÒÛ¸ÓÛ¸’D÷’ËÒÛ8/vÑÅÏE‘Äc³·QSÛ¡>¯_M¨ YdÔEÚèPYÝ¡sÃkÑìKxPò¤øPS!{WŒA0‡-·Òépuêž,î167ØÁõ$Â7 +/)nî;h/–z™S|•ÍÞœˆf?3ï"O鯬ô‘¶,ï2ï-ÃÈ÷Ò*K^8-šý9KГVY²o:Ž/PÒbªžê}†½•A‹Ÿ¤««ˆ  “9{ì  4ÞVlÑÆ(¡Õq’]F/'á,"6hXZx VZG«¹W²¤ßÁ¾Yëm\¹rQØ£ý¡hXM©®¾h¼#6u,Ë"‚„_φ$[ÒÊ’éªþPRY2äxØÊ’"~è#¤²_aÓ­HL”±‡!ø†:PpÁèGôI¿>§ÑÇðRÄ?E9*KÆ8ž£²¤2±dçpŽÊ’üµÀŸshÀÿ‘fP‘‡wŸQY²WPŸ¸U¨aÜâšS… +Mu0$ñ;2-~‡÷bºG–¨Nw\Ž‹¢mˆ?£²¤™šâ·G4ª±x‹Ê’ˆGãÄ-*Kz†yòŽºd×CáäK‹Ê’'¹2ù‡+Æ8'_d6u´åÄ!!{§@ݼ Þ‰¡s™Co'%àÚëXXV¨ífåZIƒã¢´%¢¶µãƒ¿Œ@Vsˇ‹_–˜¸z1“µžhF|ã^OR=Ƴ™ì@4ÐF[_àKKY Äß!fÒg#‰oåpö²’Ã3ÜòÝO“~a&AÊ%h‰tú"ãqò¦Lvõí\Ô¯.œ6Ú+ßRÑÒß䇠¥Áh¤Æ'¥‘,ámœ·qwA¥]È‚ÆÛ.â“+]‰]“]Ø6:Ò/P\–¯ÝÃÁðËŽ!¥´õ6.ÒÍjRFÒ¿}ã»2ØÂ¿ì:bÜæ‰ìdù— +_°«4kK¥©ßI⌺‡Ò)h;á´±=ùØùù®eœQ :+½Ù#ê¤j$á‡Ú !wÒFFîZ;hÍáµ:Þ‹š‹Š ÐÁ¥¥BÞ­}³šoj2êêPW÷@~Ëý šâñæY~¨U‚ù2 Îëy‚Ô5; ˆÙÙ Ø]\/—0×"±\Jg´\úüjoµ[£‡ ×Ô‡YÛa-ÁÀÁ¨ä5†¹éQŠÀÈÌ@’¶“Œ¥Òéxßì€I>,JˆžË¹²¤ú¬Ô €n®ú>`lÒw3¡ç:c £Û=Bk³»…JèÍØMÓ-‰C7BŒÛnþú6elŒu³‘¡G c-æÆñŠgQ¿ÏÌÔÆ;]uþ¾¢¦¯¢qzˆµè`ÔܧSã;‘®ÎÛÜvá*]X±ÃúH䬨d<Œ^§~18ð·ƒÑp—têéR¿+ÉêÙùz^;×Öo¢$#Ôå‰p¢3äå<áý/èó¤-f¡Z„§5|°Ô–ìÆ† ä1¶Câ=p@tì?s%Íõ "|Ø)z8=çÂðÉô*¢Ÿzôñ0áÐÙ\Ú¢Ï4ÝþÙ¢g‚¢!êv5žüiv)Hå«â@C—ntŸåÛÖ¡©MbMè•ö¹š­ÞìÌ9ÿ\€œº±;Ó&T@Ð)ºŽ5„®ßEù*]Aνšs¬v>ÛowLf¢s˜½>7òœ!ã*t»—ÍôéºGwØSô®es6 »^”°ÿJÂAŸœ–pètí1‘H!=»r4=ø $Qó|à^¬€ß°Eæ †ü yâ¿T=‘oˆ÷nà7„þl™o0 à7˜¢qŒP+ ¯½òî{m§,þø ö ö7“oxÈç7Ü ç‚Mj·íŸü@ÊýOƒÔì\/ª¤\‹iãòúà奶¶{vŽË¥ ¯ÈƒÚÎø;E΋'#j(=‚}s ð¥ùu]~’0K˜ÇI¼^ÒWE2Gòj*9`ص®Y– ½ë–bÀXQþC=ÖV°Ö]©ú»ð½1m`SÍrÏÔ ?QL]m9RQ°ÚBc |íè*I‚8Œ †!ù(>Ddg5Ô“‹ÓňŠ"¼@AÉ8ÞÄ"†zºBÝø5…ÕyÛßý8£GԳȾ1`7UhéÚÜ="ÕR˜Ö4ÇÙÆ›L D˜ßFï5 HBònÄ¡¦¦À•ÅhE|±©ôÀcKÞ⽨ Öíf–+åY·Q«"60ЪÀm\C40™ÅàQc:I¿F|ÀÇ<&KÍý]½Ì¿×Ú”µvˆJìšpÄü€;™äp fV½ïe pà$»ÒöÈó f4z­7­·¹“ÏKQ‰¡Fáô%ðé³€) ï6 šÛ¯D¾w[Ž_C +„Œ²hÎöYÖèŽÎ:7oƒ–0 °&+¬é ¶È™ª†çP1âäsPCYæ¡"Øð¨§¹Ç¼Š¯¬_Þn44”…Ã9Âc{ƒýb²JŒq¸/2#n`lKÆýjKªè¼šMèWóºsÉ«Q~µC¤Ö¼nýú¯Üc ó°¡›7.=Á|Ì5œÏgŽ”uüXz5EÍ_«ÑvGK·éUÚh÷l"¼LËé{É^·Éfç€ùòIÝÁ§“9Ô˜¡€à×¼ ¬û™P±cÈnd0ÿ/Éò©ø˜ßojâ«1¹?z@l>€n²G<†s”p-aò˜“IÁWhþyÛyÙ¦&iý+̲÷:—&äWŒá¨IÀ»„¨@ST&’Ò³{ÿ€©^§‰ËM›LLtáˆÅã9²›oA ñ[ÔUº]ß") l*“ÝP&'¯ˆ Æu—ì– „w\2‡$Àfó^€#¯< úBÖÀ'cß7œf¥â¾PiÜç¢h[+W…‹U‚ªÚÚ°<÷=tšÌ8šøh°Ðf°W$µ…jÜW>ÛgiŒmSÄñ‚ºøYì5$»â+( ÞI ãnžT²o·>}«ÏtQWæ^aÐ Tå¢KrQ…tàm;¦Smò•î¦KB`§ªºuVɽ[™·w_ZœŒF|šXjÅŸ8,-Ò +¡Pâ¬=A‹û¨x¾H:-3Wõ„W©+C8j&Wß$ÝÑw³fæ,îì„-â†RSѬcÆë:2ñ³ýÒ³-w +U3ñ]Ò‰دÅeBÅ`Ú)B1ñŒó;Ú#Ð|bÙ¥±Ë_ip“~—ì™?Œ£<|uiÕÄ3fÚ®_Ë>”i{ò3»Öâh0ïþõÞb»þ·ùEö³C¹Yz…,¾àšjÃæßs,¢ûíUˆÐl-ƒúdñìr{ÿžM‚~xç*ò–£^=5™îVJ㤗ðŸUlá8WÑðÕüßb«Þl¦/hAfóou jxÒ¶×·Ï€qÄŒÀ×Ö›ð‚,lô!×û7Cwöì Óôì뤹^ݶÄBœ;⡃€Ï ü·f +<Žj šÿÞr’AˆÝÁò`¶";ò ìæ&]d„àðÍd«_‘Z%…¼ˆ$~*бû~q°H–Êborù¼™’©Ô­ÕOªç®›IÄ'1hŽuõÊê¦ÈÖ€‚$‘<ÍmÓ6•»Û!¨ÏL¸¶+Ðm®vrŒ‘{’ ä²ÊmWìöŠÙ HèÇ$Ö`U÷±«K˜&b¼ÉD>–Œ.˜…Ÿ8rŒ«nC<ÃòXáMðÃn|©N+ZQJ¯ÖÈG?#Öøb§.k¶§RûÐŒÚhÛ‡â2ß«MÝAð'ì®Òa—µU¦xË IŒãL:ì#™v÷–:,f> ÝT¥Ñ}Ì?3‹Q¥JÁÑ'Ùn%M;òR‡C¢íDIZ‰Ìúê)(JxË3Ú:¡šC;3…Ⱦ¦&î6l¹&¥0Àb~Jf©ÏÙÐDz ìü…ì*ÜÒ/™D3ïÐiY1dXCÌkæü=ÓÇ8Ü7/YÚJy˜_ÈØ)ýsX ªwR›Ÿ2bWŠÔ–xùêƒòò?½mm¨Ž\ÿ(H[> ÄJJ8±JŸP챎Ѷ¦\¥“±ýü+;ä†"¦ç +•K8ÂË"ªžßÁlˆ=$„°½M¤î=Ÿ‰™ê +s7ŠÝVבŒ£’¸³Î& }>›b¥–õâ–"m}ûQ¡¾Ãºk:ÂÚR$íoê‚Ñà—[˜XeÜ×á7zÔ°†•ÓJîKïð/(ë ¤ÕæA rkú;³†Î+ëAÑšSÕÀìßxXĘÂUlþ´z5ÌŽeбNÇ&¤Qɾ²–jFiÂ;ç«§$• ã—3s_)Gý$ÚW}JÈ0È€ÌG4êÚúâhX?í $$ñ¥¢þCÈ’¼«o‰³G¢˜ò€̯mÊ Ñ6ÅNµa9^±]oc?DÇ$¼xÍ­5І©OÂÎ…—Ú<¦» Ä6³¬·÷“Ä†Âø10ݧ“ñ"…©Á\ä8¨OWò—1õÁFyƒz9Ԕъ@€;ëüvt±ÛB‡«á<úØóA: G0D¢úÊ乨óð©<Ã¥‡3·tHZœùн‡plC*¨ø3g·2ËðØHœ×› l:Šœ`!(JòÆ¢b]ÇvõXxÎÀb)8šÝøšAg™oþ&J#çšô÷Õ}«ÛõÆG£ï¸Mé–_”D \uZëVh¶V¯E2ǧ8§m§è" ñ´·tE+ý¸0«°««kQóâÓé5Èb"~Øüié"´†‡¹H–ˆdª&5+jítSR'²…4sS.a¼(€"åè(×ïŒAËÿDÀV-M©‚6´˜Š.ûböLa—1s+/^‰ä©2RKÕПù­:ïà^'µ¸ã +ímFdUìVRá§6Ƭ…ÏC…a>dõÙÃÑ–Iëò‹ƒ³@óßuŒà³c„÷W­Œ- fÉG$zãÄ)$¿+²qöV¤( èb6†¯P<à‰Jl1o¶6ÂM‘õتòœÔY'‘+­’ù‰ê!z4-úzAuYªhCX®€ddþ¸$a¬©ó«UÉɦ8“šÔ»57/ч7£œO=ƒ(Gœœ0HhôÖq‹(ó&T¦ÿÌT*Š?Ó夢Xo¯WñTÄô6dm¶‡`+~|V•Iòû3¾Ò8+ªËÝ&;4#e'\Ov”c›/Ç7Z©øP(-Y¡V`Yªƒ@ê ¦ ÿ®_€«l0 TÊ2@÷’ËÕýäôú«±*Á˜=d>³øsLjF™ý#Ïž_µq+yʼÏ@7ÁŽ613 }H4¶8$ÏL´âr{ *÷M*éÝ£Ð;Uþ~Ψ…s7aʪ¥¹å*'òŒgÊ?b(ml+‹Ñ{{Í‘ +w+@ë†Êˆ´C8¬)+×'°Âe~v(©|G¡\>ó25g֑˺ïˆhö·óñðÌu¦QÉ´”£–L’ªàΜÉv*¼?ZXµÐ{MGªñ»ÊòÕ ¬T+AbäWXñV4f¾5Ð×”Ø%4ÃP& –×U:kþd9›¡zN{ï,×o$ä~k•ªž†Ë!)€‘PÙ—ŶRԮȤYVÁ!y¯HÜÞÖÆ÷æ°¨-¬g§“òÁð•D¤ÁgAš¦íœ“dôûƒì®–ï ~™B ÂbÙ„­¿+Âx¡ÎPŸƒÓøº .öó]'$Ë;ÌSs'+ú~0¦ã>þ%Ò(¢ôäžNŸ™¢$Ÿ¬(j®‹¿Æ%/É #Ÿ!”H +¤Ë$1;¿Í½«ÏP)™^ä =Äai.ž92Múªgœp]4:Eƒ&mñ”yX-Ý ¹‰7RtHÑâš%„¢&ZWŽxz‹—6†íP³NO˜!¨”„eqžº8¸‰o‘¼ßl¼V‘¼V5q·/LBëÛb´ê™"õkñ-d{ð[AEʉ Ý þÄ‹¿™ÀâþšíÚ5Ù/ôvweñ*¬wì—¡µÅ•v +ô'þ(‚ÕÔôHE0ͨFvâ»¶[}ûõ¶ùKä4‰fµ%„ÄØ© ZPjÇùïT-ò"µvÌð ‰*‚å²°¤W‹K¼2’SÿìÒïöa9ªnu‰·3Ó»¤ ¨ú$4™_F€ÉÒgQã-W:÷ßÄê©8×¿Žœ¨…9Ò› X` ÿß“|¼˜G·Â(ÿn“ i#Üœ÷„X6•¥Ã¤ÑåH+D?Z,Á×ÿN¦Àí½»I5ASª2*eÚhØ]Z‘´½vIj! ‹ÑR…5Šà†Z@B¨‹ÝJ+ò¤†Ûr0"QBª§r%âʾ×Êú|HŠ#•ZôzS[B?¯ /%9Tiñå@ãÒ6ýq`>Ú€›f4XCFBGÑËîØ›ŒèS’7Óµh’7U~.úá–ãðlEÒuF‚²kG fn ,Ý{b3FÝ ZAºdDáΧÐS×\9Ñ4]b…PÙ#ËnåC•sPÈ6•Å/Ðܪ¤qÐÙ AN€·ãW1»h·„Ô±äý1(Šß+•7]%Œ™V +NJârI zÝ-žŽäŸsƒC´%Šd”¬0ÚJy‹É&’ÁL»¤ž€0®{d-7e@œ[Ûh-Â9TæHbº×ßHÚ5¡Ùɯo·U•˜ŽšÍ­áOu¸§“·©©#åˆÞD¸Óü¶|¤Z=ö N÷-ðéÚŸìÑ´V=Wªè|Á&‚Üd;4·mNË ' Ù‚áj2ãú‚_ó?׃ƒd¦Æ ìFp.©ÜÅ!!óî3$aŒIjJílâÓÙ‡(c ýøçF3`Ô(ÍPRäTÒy@ÿœ +ðq…Á0 ¨¡:ðã8¤2œ‚”®1%)±Ž×ôxyÐÅÁ hÞµc¿òÚWg•±9ñ Ûø4F_æðË!áËêÈ=¦U­Jø¼¹ƒ“l·qç#Ç“¯xË «-Á}x{ðß–u@A›š»nÔaºxNèz 䑪n€Ö ¦¶oÖRt#’a’m•lÄhS°».—î"¡«W2Ü(¼Í­à=Lëƒê€õ ÀsÁu]ï7xeK´à‚©o'O]µJ¶Kßâ…K©[¨‹¤Ú™¨¦„f«æYÙȯ¹„ àò¶^«`¨ß*æ9:…—Mïh¨Y23©4IWîTw¿¨Ú£Úò& 4”ªQAð¹<5`AÊ(ÀA©êÓàmdø8ã3í‰!Š‹àB,9^w…R~†Žuˆ²:U§áŽŽP9”¹W I˹vß·éšØEŽß÷âÀ^åy±ë€x‚A4\Yž²@`6@RŒSbÂE•§©@}²]4ÆŸ^Þ9Òà$7T,n$§ÔŲTŽ2ïb®(™'³V³³ÝÁ¸+ D'Yð‡þ¨F¸d«Jyï®b«D*4^$Ç’…ŸÜ”œTÚ6Š8û!|N­Êp³¶O)¼ nÜ{8w&¨P xŠ*b¥³¯]Ûý¢©Lþß%´w *jJv|‰¿±ÊrÖ¤–±´³ä¥ä'&—ºtŽnåV—~¨Yu˜'½ë]K[…Lu5Z€Å§ŒVô!ÖÉè+W‹ÇÕÅ—×gžu ø:ŒOUm15:ã'=çõ°µ‡«ÙaÞ#Ê×N¡ <µëtº%Or©kˆCjÙôYþ;ùQ6U#Ö:„É»ËÔv(7¿„°^LW]Ò—§hbš0»lw°K©V¡¿Qœ!Ù£p„qS‡œùñ@‹ÁžŸËÓƒ¾(B_9A˜‚€¥=º7Ç×¼©œ7)œ“ +Î UzªbG¡õUß9ÞLYR7ÌtŽ\V 3ÚÉõÍÍ—ªu¯“DLû 6M¡c#iÔ—¿ðSq nZ<¬ú@Ö×î¸y£˜Bz´ãÀ*]ŠÎGN"+Þ$ës3q!ëª×ŠxkÀA4ú[’kÄb5òä_éO–4“ìå\¾*GNn«ŠçiŽ•À Ђ„Õ‘uŠIrQSh‹EÆ2«ŠxÜ©˜Ym zþ*R;ÃÈ’v#g#©dYO¬Í°¤x+±46ezsžM0*DHåB–ÔÞø § ÊKXR‹Z +cvð“cJƒÏ+Qä>Š©Å` /)0Pï^÷€:ON$¬‚`–àzj²?ÛeÉ®·šqûw†b‡øZ7 HÔ(²#,Þ]€PßxL$bÖÙŸM‰ñ‘ɧÝ;uSô…Î~Çù™ü8! ËM.ñ'' Ù©ÚWsZy`ê‹ulØ ¥ã£?¬ÈÏäµïZ\€Lt©¦ °«Õ»½b¼ÒÀ€vz¢ÆÊ(6'GrË Åê‚N¾Ø…-H†aH£òS›¤ÀÆ`€co(Û“í!”ä­ø¬úc±7–„Ñ5̘Ì3—¢H(jŒ¯_°÷ÅãÖ¬Ö5@®",tc@GC…‘¥e?hB¾¨%Þy¥¦|¤Â+pà‹¨ Ö{‹¶yËø6ÓŒÂܰl7“ј€-+ØûægNA~~×ÉmWæç QD¡‚ä×Î&ÉEº‚ñò3š”µÒä1õ-´ôVv‚@4©)®ÛÉ fLÊÚAòäJDž^3 !†dø4©¾ï1ÀA’ʺSÄ á ©Z“bèñ°Ù’¸òîÅ}`ÅhREÈ,E‹I]¶nÉ~½k÷Ê•€Óš´šÔϱ¶Åô?52UvKØO7™°B Îgø%›$¤¨ÈãÝ¡CkJnxVð“ܤzžòÏ'&jäÞ Ôú¥ùƒ¤Ç¬.»Æ¢€5Ø´ä’ ÕXûBâå’r —ûIIk»D?©f"8VI¨T¾}m‘»¤MQæb瓨®fÚ6KܽKàå{ÑN‡[õ‚Óî'ÄžÒñ¢#Žÿn:9‡˜³Öª ’aD‰(úgPh¡•J ±™OîÀ ÚJݽ7+èØ QGdÊK%LJØÕŸ;ØbM"*®Áq5„Øi ¨yÄBH5#Äë¯×÷ ßcí#T`adú“­|ã<šƒ02Nï!‡%!v¤T÷ïh8}„ø=w\êí†l +‚Èñ@‘Ý¡È\ŒSÚÓà[a¬jë‡ÔÏÐöÙ ‡xÒzŒ!ÖÈ9ëËç:LEˆwM1ïB0|gÏ‹]¨vF©2ÆÒÔ +>‡jÜ®¡¦fÁI#ðµñCüõ™\‘’¿çwäž‚qâ{x-®œÃfµõÁ°K¡hQ£”¹Vþ»ÔöÍ|¢6˱`ñÄè¼ ´ +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€«XøÿÿOH =÷Yà‘3‰™µÈìEf.2[™¨eG&Ó2Ù×ÉäBV§±G9jlqcЊ:L×a¿“NXµÀÞæ.°üp¯öÚ/ ë2±®ä’ñ­ÞJ‚­%ÒÓ¬1ƪX{tuhW‘héU¨P•JTÁ8%ìRÙUNQóüÄïO åT$›Fšiç–¢R)ê“Ð")­ÛHóŠb{¨·‡–Küöë§ ê‚÷@A<…°N-–“¾¡ˆl‚Ò¯„f1Ž™Î`è.0Z ˜¼Ò*¦tk'I檉$s¦ d€ÿÿÿÿÿÿÿÿÊ æB;0ÿÐ`ÑÀ &&ø…Át¢Ÿ1˜ä3ð߃‰}~y0Ýgàg&ù ü÷`bŸ_”à +Lÿüÿ9Œÿ\zM66ôÃýv®< +ÿ€´¨à°ƒòH:°$>!8!8!@‚„ Auôže¨Bì|™Z]ã ¾$Xã8!Êv5ý¢rAì^^¬)ôeø}Í‘^aÖüE»àd_Ô4É!ÈãeÀ¢aJÚpp bœiŽ(vlH"”g ヂ±? ú‡ ð?ˆvP¡ ù\ˆhoÕ‡E$˜ó€##ÒÛPrõJVqIžiš™¥iC’ubC€Pî1j]Fù–)iaªX©leU¬b…(XQÊx%ÁE¼ú'D†œ3’• œUFUK‚Ol+&á"\i0×ìúP^>ÌË|‰¯ý‹@Á(ó*Lbˆ%±ÌtÌ2ÇJŠà ;æ²°BZ ¥¿C~OƒÁ¸, ͤ¡YH³.*¥ÁÀ0 ;ã±%é-ÉÃpâiY +<¨*m8.P¥n03333333333333SÅ,GIÂ,c·½6ØÐ#ƒ°¡§ŽÀ&aÈhN$OWZ)zrU%¨ªð<]×}ß÷…cø}ß·,7Kz\×y(š¦ëº²,Ûº¯Û¶mÛšfI’ÜaÓ4ð m;DÑ4‰„ªªêÊ®ãˆð:ŽHÏ—šö}`žç‰¢hšPiš¦)Š¢hY†á¶i†B¡¢¨é(Êó¾²,MÓ4Oô4MÓǰë¸ÃaÓ †B–=?Ë@ CQD ã8Ždi–$I’¤(†ahYE=†mÛáÀq]‚ˆñ}žW(dv]Ñó¯ Ã<Ïû¾ïC1<®Ë²þTU–¥iÇu]×yøyšö¡Bë¸BA𠃶6èc–eYV0hËŠ®ëº°¬Yv=?¢*‹ð|h@ **‚þ¢€`@"è?Ф)  IŠ ÿ|(’¦€` ˜¤úχ"i +@ô?ISAÿC‘ô?ýý—ŒfS©Ø5-ǰۮjŠBmãºd¹g4ID3$0TWÖ}cy¦%’‰³g*•<¿Ž{(ïc[÷ãÌÄðÛ²ëô±L×6…b¹`&G~Ý’ä[ôü¨`Ð6óDêÚº/Üh8îHD×u½b¹Xt]×#‘<_ÕD:hÛ+Í3M¨3ÝpÜ7E¿oG"EÍ’˜ò|BÑ)Ž7ŒYŽÉ‚_!Ë:ïEÄH2yžçÉD‚žf9"Äðó:.0®lë.y$w8ŠDúp,Ï3]×¶BqßÇãCpÛ®iz–ãUÍI Ë3M×¶}?îy? »¬*z¬‹mÝ÷…ãØ^,v]wÜá‰R×}a˜¦ëº¶mÛV, …,³,zzwØž?Ï3MÓtm×0ü¾nÛ²ëJއ “D ¨Biž(Ú¶0 Çq,Ïô,˲,Çq캪šH“ ¿ Oß¹`Õ¸qHDÒw0–˪žÊÂ2†ãÆóˆ¤ç5ŒçK +Ïc0Gca_ÖCá™LϹTìM×ö…eÚ^4Hé- “{~e÷<~Û5žä(‚šÐhzþ1KÿÀõüÅð³$©ó@q|ïžG$Nz–$"¬ÝŠc¾ï´úa—õl\§Xô|ƒ¡¨çô¸M+dWÉÃ&‰A;h… ƒ´ó¾ƒÏ!øC~,H‘tø¾s¹ÜŽÆB±j† »ªÀLÛ +FCÓáäøãv0v=ǰ'Iÿ©Ì3UÙöeºV,Ž»ÒéP&ŽãuÉQ?첪¯®L†Óá3—Çíh´¬š¢ÑóÁA–gšxà|ß÷UMOóDgºV,Ž §Cωtz¦b,My®m]—4 EMË1zþÖ…ã™–h6œ}ßw]§L&ðÛ²j5KC!»¬Šúi¢¶Š^©ÿÿ'‚ßÅÆåþ‘5š o \ɦÒÔEš˜šáØž/8v ‚D8º¼¦U(“H§Ãc¢êë{ D™„è2_‡·à7CQC݆ǮŠÚ÷žÓ^ÿÌ$ÓåY+7ž÷™àì'VÏñ¸ i4±fÈ.KÿbVªW6f/(º…Ó?ë(‚XJoúËš@ËQ’Ää¢À°´¹ô’ˆ¢4èKÅÒãå(‚ÙAš7žK&}‡‘žÔâXÎu©çøÕÖö}à•¾#Ã.i¢*ëÆs­hÜ8$“éô¼&~[–i{Ã÷›Í8¦7žë_öüÆ"‚u*Š0 è•žßX$ªº°ž×iŠz—U¿g é7o»&>ïA½»¬zÝ&ý3UÙ}ÏôiÇi4 0È +Ê&é¾k€Õ…eÚŽH(zÅ‚Ù÷ ‡#픉ä,Gô&m{à¹dBá{Þ ±®$‡w¨i…æˆ&I†1ã@hÀXDÚ6@ƒ§²¡<–å( bA„B" „Bˆ!È L·Œ á§?Ø¡¶C e`æÒKH ÷+†0ôBqf* +‘b‚ÖÀ@ZbH#DFzèbÐ>p zŽR ¦“®0Œå\ÿÑt‰XBhàáâÖ8•°]è!hDEŸ *¬oÅ ®þ¤«LØw¶…¤8Z!bNÏ·'¸ü +#õáû”<À)HXŒí.ö‚64Ä_ºÎb–I˜·¤Š|fyÊûÆ#`m;Põ%|€~*À°!ˆÜQÀE Ó!H´d eé*ÌüHÀ…:«X 7ìì#S‡ Ñ©+&­Â¢Yœ´ „”£¥ˆøؽ!ÀËÀ¾«â¶ A‚2êE„û­Š$†¬€¸·ÎVÀ¹²föþBJ]VâRY8¿˜äZ§ŒšwΠæ'à Ù˜ôÅE0«†’×ÍÁ!^}9p›¿†µ.’ÎÓí}gö )°|€Ä{am1XÀF„¥-ùÎ~!Yb1 Ñ¥YXˆàÁ&äÈVÅ$tÐÒx.’$”ŒÙø%\h§ Ò‡6½¨ƒÔ0 OâNSMñýƒ AÄ‘A—½/`Ÿ¦¿Ò4ˆVQÀM¢SÀߎð}üÛEYà‡ÍhÐÐޝ Ì]9J ¨[Ž:C´÷ß– ÀSÓÕHU@Ú´Mã0qùF¬è'ªf@ ØOƒÒ>00 +Vî!xu-~ˆl’'Ñ “GÂ7Ù» xh… æ@ùC´”¼mpö½`ˆ{+8 ˆ ë!•8œa±RX‹]Ê=1ÀL=ºbS˜(÷mE!ÆÂk 0rEx¨Q"%8cA¨@ xð$‚Dƒæã#¸P0ûAñ‘Ï#¸«®ˆRƒ´{ÐóP„ƒØ‚–jàÝDÐ[BHŸħãô© *…g פV„˜ÛÁ‘ûad\ +fÁðÙÛ.bDîé à\•Ô@¿Y¸‚+ªKf„z +ôq}2ÜC/¨V)‚ê?VP:C€yÆ(i) ¼®Ä ›„õìè;œ’ìw•°³Í˜…ç ø\ÞËc°° ÓÀdÞIÁ\sÄ‘ƒÚô" Bû«*Öel€tDP/T(xW6Ü¡XŒw¾‡…г 8‚ŸâùÊÅ,ê EP «êGÐGI‚ÎSÔe@¢ =Š7YˆƒÞD®øÁ€ÊñAF1à‘áÎò‚ ,9…)áp¿TÍ<0MÀ÷`  –¸z8†~"à„Þ0 Zq!!5 $›8½"TôÄ€o™B` F± F + +¨D~:Ä€‘)A±AqŽÌQ£ŒŒ`ö†P`¡ \ê€ðÝLRÑpY`VB…7DÒÂ009‡€ã4¢ Àd<@KxxrB€!Ï‚ÂÒLäG4q„µ ß?7€&„î BÍ@C©Ë™Ä»@Q© €Þ\v1„µBàùsAÂ@àøÅ‚"ƒøHJA“a@Ì„6„˜, ;à4ð]+TýÀr¹@eƒñ5`aO:!ô˜àÓ2€ÊÈ«F€ù@ڙ͋N-¢Â· F8€#B\&P»*dHL@P¦!Õ…D{ Ð @ö.èä1ã¶…Àîg˜TT ’Uà•Â9bU>V3èqTÚX} &°¢U£·»ÇŠÀòÜg +"&1p< ºÀjÈ@O¤Òd<Æ„ €.Ì‚‰  B6zˆpøhgT#PkþAˆ·à>´#Ô0õ|BQÎ/ÁÌF¥æ TGûÑ` ˜K@È…¶p{m ƒA&\m؆Hè¢.ïÓ¨ÞªÏ0°DPT07¯Wœû|‹§€ÿ€G­ X†±J&ª°ì‚t¿MŠ!'p,»8YõÝ `w1RÎ/`H `ššæ?@·¡Û­Ûx-F´éÙ^ÃßÚÿˆ€ç€'>‡H ¨3лa‹ÈBþ ðÁjÁž?¤3¿«é·ÿ/ ìÜlˈÒl`«I p6I N¼†Õ¹™ˆ0£=|´é‚yÇ÷!€³€äÐ!`VG÷ +ÖJ°¯¸ ¬Áw«^¤Ï¼@ *8±Úho¶›&æÿoq€ÀáÀEÌ@é€á¡Æ2M•…@!p%¦-8Ë)ߤ㽎ó÷‰ÿ§øÁ ¨pÛ >ˆ7Ó…fô›BÀÈ€à›àþ Ûôñ¦ô’¯ø7ØäŸ H" ðNhØ… +PÔWìçºsÀT`1ÐHàk˜Á ~‹ùƒ ÐÀÝ3à Ø@JÈZ@y‚f —Bé@ƒ¸ëÀËÁ@›hC»ËJÇû¹f»pxOÞúð@mð1+L`ZÀ…6ï*¼äèh0MAÞoâØNŽ×“ð‡ÀZÀ®QvÀa&®e?¨ ]E@ѱw3 ­+pxFŸ»‹À¼«Ù/Y3‹л8aw³Ïÿ~@x%[ö %X _ &3i÷T@·4‘ÔÜwÁè4‘ƒï%þ¾Ø¾ x# òv@´¤ +ôWH°Al,do :²w¦ÏÎ%»K?]ßÿ„€ª ¸ áˆÆ˜ÿ }õHöWérQ$Ü[€e@Ìæ~ª`ÊûÝÀ÷?Ää2-6¨ÒP¥”è¿€.› A½nÀð¾Ö¿¹†Únò€Ö=mï} +´{`4$"È tË ²‰þ…T¹Ê'ç.vô€ÀF8(¦Ç ©f|_œ"è— [fðH¨ëåX=¡~¤ðqÄ´ëùˆFŸï@aNAOÁæf0 }:`üª¸R1ñìQ ˆ²^JI`v +( „>9 Ý ` &5 gû ù„ÿ°y^-¸£´ !p3 ¨Â&ßð=Q~À´ À‹@¶Qs6½ü73p³8 ì‚ä„Å{­Ré=ǾàÿOˆ€J mäÁ´B +¼ Œ2Þ30÷Æô‘ïϬPºƒÆü`±Ú0 £[œ^0-Ç"9óýÄßà…‚ 0¹’1¡€ÿ˜@™ Ç`3¡÷Y«ƒT|¯ê/¸ˆÎt@ñÐ0x.Q ÁB‰þ\µ'ãÞ¿òÓ´ß~bPÎ9€!Á™àV4þŒ÷L'{-÷wá‡Ç?ûf@IЄ˜a±[xÅHç{]G9x ptkòᡲµ +Xh8À¡`aðbÏÎiJ†¾—?ÀO@nº%ršÐÚ#(/Мâ ì{ãø¤Øÿÿ3¸¶éq©¶3\ +²úcWü} ®è{ußPß !ÂÑ1ùÃ7é5ñ·÷(°žyª½ðÞjÊ1¿¶„nk($_ìÙ_bú‚KL’ }(k¹½ ´Çà…É?ÕÏ4ý&0ÖCt£âۃ·Á¤m=ÆÛ*§“ÝÇsàa»„œ•(yÞÞšø¨ÖÔïR;Ÿý,wäû(ƒª1–#÷«_~Z«A¸ŽôG\Ø¥ +Û{¨ö— „qÇM{n{`AŽéýPÄ=У¹À §ÀÇs¨x%27A$úÆÁ#£ÓxAÛ΄ëI$ˆÂyM,¨ùìl#] +.Ä'å`§¼ÉÁ¹ÿQÊPœ­b‘{õÙѼ£”9Áí ±”ÛÌݹ!Ë9Üžšíb‘S®ÛÑP#9ô>8›±Э©O –s œÛ!b™S‘ƒ£Ý9?8Zòc™£ò©¡\–rf:œ[y¹Å3©©pÄ ¡-1yÑ"òª° „sÆÿy²…½à9ˆ‚A‡/HG"(ø â?Gè*'‰ˆ¾ÆyÈâ'’•ù¨’´èC Ì[ä>âÅç‘JÆ‚¸t"ÊÂÉ\v‡}1æ°V4 wca?¨ÁráDØA‘h=àà8Ž'9 Ä(£ 1B!‚B‘ÈmãÒÐ8Eа°ÐÓSP1æ…ÅÄ…àÊA¬”rÝò"!Üm@€¦ÜQ» ' A–ˆ¨P€ëæñ–GG@Pª€=; +ÃÂY4&*ÜqP#OFfåçe‚ï eOè’ð]aAøš«ÑOAáûŠâV0ÕŠˆÃƒiH'=ý{ŠÂ¦‰`À¢$ÿ©_X¨D@.!»\TLȈ %—ÚÓ³–0ïÁj„¯û ÀÏ¿ßóÁŠæg ¸þ:ÔT@”´ùÁ!³ 3·¯÷-ts :ÎúÀÀQ?¯–Ó¢žÁ‹ÉÇ¿Jø¡¿uòñé2€í +~®ìçÓéßgðT f?¯•94S¾ù÷)òð6x7yE™O4IPø&œê¬~¾ù0?§5õÞž›߸w"Õ¾¸.çy¹óž~ÎÓ—Ó»‘MF?Šž…„FN8Kq$×¶(Á"\ÀœP³¯u zºvzA0T"Šããã>7¿mëËÉ¢Òi^þ—âÔ”O33ùøuùþ.ë0nöЇOø^a¶}ƒFUÍ&ñ(5ˆQ4 êöì%,@––¤ )Ëð¯C|˜qv>1P?Caõ*²»{grPX(„V~ü•ÅÖ˜]9ì)¼ih(`‘AhpâÅÊPyAC&dB@.1HT¼0šðˆçlš†¿îé´¹tñv.ù*Ò¼}Ã_ijí1ëØÝ,ÖåÙÒŽ}¿Í™ËJc¯-õ9 +©ð˜iôÈÎG|Þy^®ŸH”x®3Êл˜¦wŸÛLÈ…Fã2Óº"}û1¸—›•z~΄h&$Ó8 Ò`ó¯ôm5¯ÇJ›Wñ„zt¾•3dH¨aÃä7Õɯ0HDj† + 5.1!ùìN]wç¿ôn•¯®âå3ÏÒËNÏé…áí©>”›43TlĸQ‚J$Ì !W!üW1ÌJÅX  ÔŒŠQ1bÈø`WDå†ŠÉ *4öËP‘±B‹0ì*„00Uk«À@Œ®ÉP‘ Z¼ø`!!K‡¥‚¥ÃƒÃRÁÂÑaáÃÂÑáñqã€K ,,0`àÃòqAð0à` +ÀÂ!@`à6tèÀÀ<.(¢ !"CG‹Ç"F4 BH”i6X*dØÀ!¦ BD š,˜812b„ˆ ,(ÐD‰#˜#ÂA¢„ + +%F0(Pœ°l°tÂî °(àa>€hx ³†Ž |Ñ\Š–*D4J@GHX°p QB$'¨°d±.X,%{àP, tð`âÄÈAA¦ Ç%,쀙PP +hø°X ©àD|X,”¨H .ZœXŒpx„br:6|`È`b¥‚ +PZ°0!bb丠àC&(.pdRPJHDt(AR‚‚9a‚€…ã#…‚’– +)€1"E(),6ÀÁ%%-|°X:RDà"E‚è À墜d(1™ ¤ 8wíêŸz>£ZÒÕºµáþ&&˜¸Y­Ùlø]Í,"=c)•~IMdB(²_±=£Íÿ ÓßÚ;"ªu™"]©¨pu÷g½_eÝ⦥™Zm7×fâ©{Ì´cÖ÷÷2½Ì5C´aB=&P•Lˆzx¶¬OÅÌÊE7hºzû¢³â¡Å4®[<Þ,—.eE"¢mÕÈê$oê[WOš¢ž~ZvÎoL?ÙöÜbîSOZÒéžýóÏäC„™d+“Æ€\VœâK}?35m÷ö‡È —]ö[÷”ÎùžîùðJynA.+šº_7ëªçjUa9é¨Ó<Óž·M݃h—š¦-ÍW¢±Þ_tÝ Î–k]¹FI…I¾ok•vožzr&ärBãÝÛ&šåÖåê‘ÕI+²’_šµFè|)ÝïLö©.%ä²RRB+%ͬõ³î¤Y¯GãE¦›Ä4{h˜ rQrY©æ5ä²’ÇÂÍ›ÑÏ¡A.3VœÕ<ñôEx´C÷e¡éùÕŒF®j]·?e¹¬4e[¿ÒMíý·´X¶tÊ¿š_•þmž+ÈeF’YÑ5ëÈέº*o_t²úRâmïüìÁ‹ÆfhÞ-]ÕÕºÚ=»ÅºÌžX19ɨÜP1ÉŒp’I!Jæd2{B’ sBrB¤‚¦‚48ÚKvŠE?¯á¡ê®?š•Óä$íFñV©rïìÓ”ZYwóÒÙÍžNU™æ;u‰þÙúfuîuJªZÞ2{b‘ÚýX¯æ}ÞÁ¼4Z’-Ë”Ììò ¹ù©ÕuÎ3ÞøÒ<¸ "Z×~BËJƒdTëtçYµÐ­1Mš^‰¶C«›vV–Ú9MM;¾ÌÎÑÓ©_Ì$:kƒ\R³›—T­òx‘к˜zјÆ|z&zíŽ.•4¯'mªYU¦¬<éÜ[ÿ–tw蹬 ¢QÞìwД²hÕìäÝÜÖú´ÉyjïÖ¤"ü!˵¬ô’ž-ーܦѹö«³ëÍt–:}¨ rY±Y”kJV:Tλ»)½›E¼êþhá>·T:ˆëJ­«£j‡W»':¿›æµlWwTxE[ç=ë}êí®%<õž´A.&èÓܽm­Mzwç#Zf¡š-š"™¦ñœ¶‰{+ó¸ª[…6µßðI•jZ•»Ï›2ɇIY{iUG“WV·ÊŽÒ2ÑæÜºŸÏxk[þ?“åž)áU]ß²îÕÔ¬eë¼ßYͦv•˜†[i¦!B/¢µ%ÿz +ýÂ_Mz{®\y´Ë}ûÍI7sÍòôÔjUna®¿gË¥TV™>¦H§Ì£ÎŸÖ-Ô5:/{¿"ŒGú=Ý•D,Dº,Ú“rY©´ú=—ñÎsб tW™é­ä¼ºÏ¬h,S\;ÍM4!]mSùF„y›ábQ ˆÐ"C£Æ5J2©„.hºÚ²áZ%ÕúÔn6W·”¶­bžŸÓìšOöuÒñìý Yñ>µ˜FËvÉt+ã‡iŒÈ&hÝfjiáé¥mWçË4£}­rO4lÔ±Á É +D°qCÅk&$B×LˆIsyʽá‘Qª½ÈöŽLϵO^["#ŸËU£4²2=uLcdß³«X‰ze”çì¯D<¦ºÆ¥»[N³sèk²:WËÌJÈH­jË«³6¢ZÉ÷¥CËŠ™©•ìÍÎðèõ¤©Ù×^¥Õ÷šW'cFÊÄÜ1évwvάîD¸úë¡£R)Þ›½»~ú½+Mëyp 1¯wG'ñõ(bÔê´2ÏyÔ0™euðu£ÓcÇ€\@hÌi§X +äBƒLj(e-wÿ|%RÝ”Lv¾CÛôZ]ù(…(§˜&#"á¹¹9½UÛ®¬CK÷–÷z'ÏFiô×NÞíªz7½Žï6“pÏ”Ž~öc«{.}Çfw¤kç] ­NIGUvRí½Ó³øã))úþ¹4¦ÙßHÑÐÊ–)±ÊïUmÉÇ´Öx¬pëµ·†'u)|›t\ˆGVUÝqíQ³~L/²J,Åü±M½ÕhÛù}ãR!Z‰¨”õ«AŠ¥0H)eµ€³  0 + Eapõ +@L6lV>2$‘ã‰Hƒ  †1‡BäŠ""9°î²(Ôªô$ΩImô~3¼kЍ_š`é‹ Œ²Ü™°_GŠ‚r°å“)žc…”ËÙ"/V:óÉc>Ðv`$;tÚ76Bl.…G lì›Añ¥üöëçþ£Yè˰}iƒÊ®_“Y ”ú"Ä«’ŒA¿~]þ#ÈWbŬï=AÔíµÑUºŠ%Š¢(ØdŒ%е£³˜ÊÞã©üõ-æ3ñCq«§,ƒ\4'¶ècWz9®E;À"ó/›ÝÂèÙé^iÀË‘þÆ=<.ýB6‚%P˜À©o}ôl¸”.*ľ6´¦Óò•ùŠQöÉ8eÝ©òW†G%‰úðW91ªç{î0S{Å}ê¢R²ôEá=±ÖS(. -Êäu­vÛ}]Á·a¹®ÆÎ=úˆe±¸‰:¸w[‚;p"ô”uRé_1 ¯D%s®b39“•ž.øw`O *%Q²Ýˆ´äuzT ¶9‡ÒÇô>>»0ù¦ý¹ÿ¥qÞ/ÚÂJ=™‚ѽ%ËhˆôºHfŸ6e¸|w€ÅAIh’÷e°xøŸÙûàd!ÒÙwA\Oøw´w¸=߸(CK8ùÀx)Ná¦;€ðz‰—ò5¯èc/ëI;7ƒÐ ù¾‘ÏÓùHXˆâYÚÁ=¯ê3*ž žíÝ”máµ` +‹y}¥ëQÉÏÃHêËDZžÂ³çÜëØLà„*õ{Y¬¨˜Ëâµ k.\ÿ¸wÐKÀÙ `£ƒÛâÑóîØ%é`.9§/_»©?„Æ!ìš`ˆ[yÕ +EhÄ„Vê¥=øfjf˜ƒšôLÆ…40G]!‹»Eqѽa-Ôº'CÌr³Õ£æ²ò±õ1ub/€¡¯ï‹´µ$Y2n9¥t¹>ÐIæE‘T•óO‘ßÓ<¬¬IaäЂ¶EƒG¤§ 2㸑dÔÍßlœÄÜxN~^kˆL•ÏøT•÷Åäörk¶‘dS'¨«[|)„l°F°¢M íé640ðgÿ³å ZCÅŽÒtzm~ŸáŒÍr¶ext!CÜѹr~–cäEZêý¶Ï¡Û) ¨ kKq¾g%jµ“ +è0D#I™¢Lâ +¢é§’+e„’~¡Õ*92Uõ=e®âûÞUíO­XTˆ\‚†ë*¨ ÌSWé̆ûÚŠãl*㟕&D‹æÕ@-ÙI-‘a™q­@3Ñã­ÞŽF·D©‘b2!l Шñ_YZ~$Eñ¤+™L||BÐeúD–¹ÌÕ—m¬ó®ê¢Ø[\Ê9|˜2Ý넨 Ù—iQ¥éWÒÉí1—m¹0–Hxl)ð?Ó!ÙÜš Ð?ȤaÈšŠÑçÙ›TZ×´uA¦6ÝBíXŸÆP5Ý%£f;[<º4KrO̹-ÿÞÓwÏåS83P)œ14€lÛ>,^ñ³¤q=¬ÇO»_ÇWÜ€ »+åÜÅòN­u…YæÃtúP kà =0éŽèïšßùLJXã_Ohí8è? µXår¶s¡ÿ“+Ñu€ÅUá8ƤuUÙFïÚÈ&•ÜÐr‰ËOѤ™ŒÐåó‰¡îrY£Ã0ú5;Þ':@ÛL²)øtª˜ÖUˆ¾•é@}ϲNœw«¬r ºº8jÐì|$X'a ITzݑīXfɽ]ýþÅ‹C…îŊнF L•d£Ô™óãÚæÉù©Žæ€­{š<GJ¥x‚tÀVB2œ¯Ø„TÿÖùÄý;°mõƒ Y«ü&ž¿À¦*»‡˜u^µË!‘¬0CƳ¥G‚xšVˆ›úŸƒ&’(˜‚’ÅÍÚ¼KL%ýE“K­ZâË9Mˆ½+ÆÆ–o!=“äH²ÐTb+Û(É䘱I–¦Çv;w†ä7w’E)™V½$¢î AšTKx1NDªè­bO¬~EC_å¼…L¸¬êS‚ }J)¢ÿ富Ò%¦ÝªâO×-Ì}ú#%KÓËÓáÓé §.…q §Nù£'-¹9œ@d?ššÝNË‹bq&ª!Ó|Ƀ)í¤hµm0€Q?| ûû)•7â6%b)œê @ +%&Ó]Ü?ϱì­ÆŽ†úˆ¯UŽ +!ÈUV“øNþâ‘Aøú8•OÒ©¡¥Ø³4,€Ï;¸¦¡µ©Š;Y’Þ¯á…ÝÏÖ´SØŽHìRd¨TÖGm ™WêfÒK¢.aD†{aöª¾Ò¯ªú «$V1m&7fÒ—Ôí¦Kßæi¡ÁðZ±>ú’u(Wk‡§Öÿo,üª ÷´È¯¿‹‚’‹ô'a…ëñ] –B—f¾ÂÀd‰ Ö_Ó``#èÌPÖÏ58t +pƒX÷:N>D Ž*n²õ¹yDN7kÂ<è‹"­‰ÑáÄpá$\M®Ì[ä›ç®ååH' ¯>—ËtöUàÅ#: 4Õ€>¼ôBh° ßÑ‚t0L"f^$§ +‹’+äÿÛ7ë*‘ã ©8hVœ3i¿!8ÿ 8‡ëÝø/ºµ3Å6¼wn^)p”F‹…”; 4©àtÖðSVÒaÄ#p5'*Ųdµå CIÓ¿}‚œ2pÄÙX‚7'„¢k_—ùs²eþ8º’sIJx"Â!ìeþ=˵è͈¡yµ%î±c~à]·á±Ôˆ¼ñ•·¤ñÅÌŽÔoóÆ·'I~„ŠÂ¬õ8rÀlÂ(4æÃiãC-ü#ÌÂop¸dÜTñ[ÁÇžh4øèvñgcÅ(à ½z$©×Añ¡Ð«Íñ!šÚNÌuÇ2H5¾2¶“A?8¢Óø3/üÙÜÞÐe!£Œ `ñÛ…Wø­à´„ßgG¾ÓaýfÆorõj°¾B£¼:bà &<8ø×@DÔ¢à+ÒÜÈ$ûµ<õB㻤ö Qñiað‰ÞН)ðUz…Äv9nÆ8›ñžïmåKtâ&Á­œÛ\;Út "@r —oÂx~ÿ´ÕÀA& +U)ФH¡‹c@%†—× +–ðSS,ù*9ލ¿ úase8ùãßõ@ÃÞ” ¡6Æ8ö—å;:û$zPðR—ÀqÚXãacséúšqX„“?ûÊ+_ +€xâÇÆaS|éê¡¶á ­ÏE¢†è1±>mzOíd‰³˜xÎp>ÁkG¬ û!v÷K>R +}Åc<,,%F¶WYq×—ø¬€ñCX8¡Y²&j°a®@Fƒï¯dÿt€!¥3-ú vX„«×AÕåµ’âíÞí Y?Ðþ¯ï5‚z¾¾ß8XiLnzy_{y‡W\Ìõ»¾WÏÐn®a—7:^Þ༹—ÞØ6 ^Üܧ»º‡^]Âà™«æ5ʵm«+–«ËBWwÆåä s€ŸÍ0ÄØ ™‹»H]\G7 XˆÒ­G´¸"nq3¸¸;¹µ–q òrkÄõÖ¶0[‹í«^âµY[}­­ÍÖ¶AX¤À`¿gXÙY£•µ´¶´~»Ô®ð«Ñì9‹¥E^°¢¥° +]SˆÍYyÀÈš•uˆqVVM5¬‘¿«ì'¬,+K#YY ²® )0Rð´ºÊ ‹¥ÚŠùë«Çf€k ®ö术°¨"Ø-«)`Q Á0­Ö««ôÕ¬+uÖe§†"}ꪋÕUä‚,+ +Vµºõ¸Á>¶®VtN$áe)ÐÛ€OŽª«žR]½¸²F+0}¯âÊj­Êª¸ÊʽUu`e…BŠU5–õµŸBþÑú²æÄ¶Š­[U­Í몫j¹,§ÜÌ;TÕéTÕªª©`8`)ÙNO±RQ3MOŸ ¦¢:•ž>«yGþ¢Žš¢ž§¨UPQIF5¡ªb—ë¡Tòtƒˆžy95ÝžšÆ- ÃíËÀFM¥¦¤¥¦¤§˜šÂ03t{ ׄpU0p(%¥–’†LI)¶}Õ#É’º¦%­-ÍÄH:J…””F¶tP ++ížÿL@‘Á¾# èhðg¨Ëg(F+`FÕ§¨*êm¨(Z4ôE¢¢¢ ì(ð7¡6™YšœTIE ¥¢ày eˆ‚F¤LÉGÌÞU=AåôOP– ŸÓ;ð-°mº:øh“óh9Ÿžˆâûé™¶ÙI×–IlzuzJP~ã陿 ÍÒ z(bàÏàÈ£”©#' p(5747žœô“›lÆíKNyÎ&g¹Éƒ““Œà{+NÌ€STœ³3¥i‚‡ø223ù˜™tXpjJ°fÉbøWc#<¬Ž—š:œ™7ibnŠijž49M™”ÔŸiPìu¥%3XP9&-/£™˜Jš˜OÌYÝ%N%HLq–˜Ò½ÄŒi™ùc^ªÀÌ$üD’©ùý¼/.ÂàÌ´MR²61é)+O/- ˜–ŽõBFù©-<,…+-˜“c.<@•ʲ2¬ +ÌÈ‘œEJ^MNÎ %͵)KÊ”ÃeÿUl2é HJ§IÊüÈÊ JJ e%4ÙÈ‘{´>éñ™‚IQ7q|\ˆ6>&4)™±œ,¢'%ÇÈ8Ÿ§›l'y×QrÊDJ¦$% JF“„¤%'UlLR–1LþGˆXŸ=>Ö›Œ$숄l$!cŒäÄ/näñƒ!áœ?Bb !oÈGG:!%™QÀ +ž©“è93 +îyÃcÔõÅãÄÅàÑ€™±cc'&¤#E„‚WtÔÓè(c| rt܈ GÆÇFµŒÑ1L‚£Ò±Q‡ÅEÖv422_ðÂÅŒR†ŒrŒYg\ + + @>öp?(šÌ~õð-Ã)˜Z>¿¿ÀÀ¸¢!Q9™Ã6Þ aà&Æ` ­` ÂRG‚]à_ÝÔïÓ£À$àXàëüýÁDi00F/°?PîãÅ1àX˜è +è—±øÓòÏïÆ !q ÎÅ€^60ÒÛ3éëëóöØüz@ÐÀ?÷ÏÏÁM –JÃûE¿>æ°Ê øõMÔ·=ÉŒ¼ @¿l¿¾åZôñÕ}|â–´îïñ}…/>?.=¾½¸œÀÈ‚€¨I1ªwxlyy†´äìTswAþiú'½ÐÓ;êíÝA ®yx—8¼«ë%ŒôM†¤æÖ7ÇŽ©-ÜÝêìøøÕîŽôÌï3„‡—á@Oï½¼½üê®N¬ „•KœÑýö(ÏÑÕxw4æèàéêp&L`%vvf:·n­Ý]¾Ž®XšQ;àl®±ƒ•eSI .n47×¶0À¯Ž.(²/]€nNò@sqþ(«´àXTѲŽN4Þ|äÙ¹ââxýð†òêÀusHgpq,2ˆ–‹ÊÈÁé,¹¸| °PGpPqâ|Ú7kl[£jlDooø8M€ß‡0/Ý›œfÿ­ *y3°·¼ 8Â')(Sg:R‚ìtñŸ9XËÐjÚÚú¼¹m¤¨óÃø:1¬^<,·6ï Ðki4³°Ì ¢L:¡`ghñPS±¶¦‹¦†4 0 +TFÀ¶v¬Í­Åi€Åí­ÅD)€¯ªiv–;·m‰€av–“–fí;6zQX\žPKÃ`{‹Œ39h<ÊvÀ…A-`ã5cS+-pc öt… KÀhN ü²(½°F"$å€/™Ø @›ZèÖÒÈÀmtTÇÈ:acŸœ€½A+7øI&VD[³ÓÚ:v?i@€ùîrØD.¯±­® ‘ ™aÆ +(è‚llyÚ‡r±°3ghf´; #.# à } `€D ¢C +û|ac˜,h„€’KëºL6%Fá*K‡¥• lµÙv€}uˆ•©øòââ{uဖ!ÄÓ ;„dT¤¨¬4äU–é—çÆÜQ1. +´´°-(B;ª +¦¥Å +0DÒq( +š|Ú%VƒÑc ì×ÊRëêb¹¸PkH [vÁ"XXîÀ^a ð·¾2°ŒuÅ,VØGß,Ñ +ÊSU…›§¨6ŠUV1Ñ]UM(ˆP×O%Õ·ÅÕ†Šêˆè ³@& +ä˜@C1È ÄSMqÉÒ²ŽJJÊÈ£¤óò%„@‹ 䶸-pbJjõ[Õ (-›œœuzZ59-#-9м +~ÍP¨'`•Žxªªƒ‰¦¥@U†ïõb")i-D M"x”1Ôc}A''& nk·e ¥Õ#*©9¨'?ÈRHb{z +Yð@Se\ô92BIéÉ©éÁ¸Ò–2ðª”Ä™âB>â`DP˜e!fCB²Ñ AXÀ‘F¢SÅ9„LC(aÖ P¥°¦Ø[gf…QJ20Æ]0„”êÈȇféÀCà¬hÇIDD%^ Þ,‹ŽŽŽ¡ UIRò|h‰À +º{ù z|ìwz0í8ĤP(h™w„ÄÊ©ñ»¤üôD“Aî²W2,O?õ¤—ɧzzÍÙëñ¡Åi=ÐÏ¢È?Qatty”ä`h +øU @{Ô²¥f ‰ðñ‘O`Á©^ ’á¸"PA|ôË@[lõ ºl€«ž§±Y+!Pš.P?ì +-!Ðȹ™ƒ„ÁŒ7ÿn|À¤%3óMGÇ€Õ^1hhüÃAD3dÄ‚®23#}zqËäà¸::^ lQiýA| ½ÃtL[‰sF3º_ ™ *¦RGé<B€€‰01ˆ\^>}x87êB«¡™ÓÙY~„Ò`\ø|`hèðƒvcÉ7<„=BìíäHÞsàRZšÈ˜Â¼$°±Ñx+8D€Ž,ô9.DHZÐÀª!65KB«/•Ê +âž°JD¿Û@Ãhˆ;†‹•F <èCFÆW@ÁŸÂ@Y Ì>ˆÈ—ÁÐli=š =I& Œ´öâò…SsÙ€)»€ ‹áHÈá‰ÉyT’‚Ú䌇ˆzNN…í**.„-K0$"~Çñ„%.¥i"¢«s˜cCŠy9­¨xo€´b.LJÔCBš‚óNŠ†Æ—@p~E¥¼ßËIHFÖ–—¨¦AÄå­€3™\è*)ZVÂ¬Í j‘AI¡ÖaaPЂþ!ä¸@€W×?å$6Ú`€rt@>NW0‰zˆ°œdààX?Ò:@Ð"` ™Ú*+øÅµîFFFT€:ÿ¾Lüÿ9Lüÿ9Lüÿ9Lüÿ9Lüÿ9Lüÿ9L?üÿ9|…ú\îH!WRé-ü q`1 å…^ËPXÊ$eJ©475ôo Œ‹6(è-S˜â×-eØCá]ƒƒñû_£·‚Íqâu5K1ÑÚjYb/ÉÀ!@@tRs›ç›¾YuP(YCGTf Ê$ER«„ÙÙf™gœŠ…˜_U&EGTnµ]àÐ3’8ü¤Ë¹T„é&Ê?T¤‚ ?zGæô\ªÚ@dRºÔ¢ Fóˆ§AJÒ<ÄAUPIgaÒO¼ÅÉeâ$wÈAÂ÷=û$âE}í@Ž’Új™`ju\rr 1=)d[Â(*¹LBZ’p,Bà;pÕåTƒü*5êêÇTËñÎè»0WjÐTÎËܰæVEÈ¢1ÖLà A QSóHž·3oHs*QÐ ì…>¹rk'»êvþ6×à ®FÑübËå$Ó°õŸÑÑ$¨+š:Q‘ 2È€ +P€ t€pÖ=©{ëž}‚›Ö'-âÂŒ‹¢Úy +kP°¨b6KàXU•àâ|Ö—6nbYƒƒÕÿ¨F‹ ž%9.Ÿ #3[‘ØðÝ\¨ü·œd$À"ŒiL=H†lÕ¥œ`"²*¨o¨ke×(5’P/j¥”û °Ì +[AÏDreö š±CÑõ‰’ÒŒZ¼ß©{¦dlr}/@x ì V4Çì¹}NY +/P”?±j Ð&äŒ0Q9¸©j#"“F,æỶLÍ¥ÕÓ¯ =Â j*DQÉ#E¯ñÒ"–É¡T"ÑHK#K¼ïè ©n×Uø¸4KŸ”˜—ÌÈ£O8?â 6\Ìþ™SÛ]S’²Q¯ˆT'¦ª‚¥9È>›2ØRP(W Î `Q †“LÌP°^@´ ÑH +²ÕWèX€P^.ýÒ`l±Á~°—Å4• *‡ÚˆU]„h@~–u\‹YI •i¬J½¢#1%«&ÜLrr¤"aܼ¬“ÝgKB4V‰<œ¢)q³P[A;: ÏXU1¡¢¹S`ñq’ «úÁiEôÉkòT‡CÆ™»€³PÏ"™ÑEar;©‘V̵E¬”JJ]TÔøÎ1% 2QÆáMøÊ”Ú¬Fä_bˆ31óNk‚F„§ÊêÚÜÌx‘Ó[e‹tõDŒíÄ@©H,î‰]T'—)HRøéä4¯jMÍìãòDËñЉÀ“¶©ªê<58x¹èƒ{  0jL08˜—Ðl7èâ¡ÿë¢oÿßÓ  ¢. vU¸ZðlÔâÛNò¢w¦Ôrm…ƒkt-ÓŒógü + TYQUf# ê¨J$¼Wâg œyQÄŽXL±áógVE{P‹9VÉtœfFÃ'Πkoà +±¼Þ ØÊnP\EFê)¸"¾±´f/™»U{j¸f"æ”ejf†ó>6¯Ž—òÁþ=´š¨f>¡F® +tÀàÕRV j ÈhpÂ[CS©@g ŸA +©@ƒ –T0p ‚0 C4 +Pàtƒ,à ÈÀpÁB0 `„€59—(ª¥A$ÁQ¬òa&”£Â”‘3Z²Å”a¤œyÄOF(è’¢pÑá ¦Sœ2Í"ª„­ipÐXµŠUñ=L–C•‹—ƒÁ†V`Ác·$û©.3“¦ÁÁ‰%œUÃŒqš‘k SÔͧŒ„­A½\þ%¨¡Ü혣i1&¡T«$ºM{0ãØ8SÂÛà€.$Õ€jq:Ì ^?‚,BQÙæ°dù¢ˆÖ‹ ÒÜsƪ@l0oÔk•‡8LìùŒ¿–Aò(Ò„jè«¶‚_¬A7g‰DjøwIi•™ße®8”ž5UAØ ‰Š)>PRjL¬F ½(j¶‰^"¤¬XC$¡ð³ ã NÄxÈ#b¡Œâ1þ6 r(F5H¶K(6¡]VôåaXu¡Pd{2žƒoy­“>‡Nq„›]ã!<¢š/˜‡'<'Ã7 ’UÉ "—|*PG Šd˜ôa’ÕâFÿ$„QuW•¡:ŒÑY gƒ…¼ùiŽMQC±ÁHY–,†Ï(¶9¢ø‡ÌUÖÈÈ4¢äAÊcÖ=Íò°¢¢’Pɲ”©t!£†¥+›&æá² qH” Œ”;›]òÍÄ„ƒDO<&ä¨ +l@Z/Á@a1VÓSìÄa2É«ÐC°ÆÆ‹Vi~[ +3êŽÅ™âDÏLÔƒŒ{Õ¬zU5Aü NN¡<3uŒ„x…É‹ðbJO!Ö ZúϰϿQ0­ÁÁe*uÑN>gi ’¨˜!2Ì$&¤ä_f{&A.EC¹š¢xG\5s‰²ÙBgÆó Í¢ Ä5QÓ¢!fíÈ^–´ÁÁV‹l*C!>«npà·%ìMˆŒPúnP ²úC­DÛ=͆BIõ‡·Ø+¹ÈC [1ñ‹>â4­zEa¤ÁAÕDdX‡ÉuÇ$8®ÂÉ6Ù‹â`5Ö;™0íò‘°-×ÁqQ2ð€LP( ö~"¡-XÖà`ú*aœŸ¨ äĈ…ò†ƒ½ãÞ +ùÔ¸(îsby¸‡$Qº]M|+=jÆ’Åk¡È2$óTȪ§^Aj€bD´ÄT`Áæ€h×¹I”Oœ„¡:©lÈěᷙBKÄ›—f ‰!uÆ»âû„Ôˆ"¬5OL=ìl09‚ ZQŠô¹¢d¥‰¾ÂÓjÍk÷韋7B;‘ÂX"Š%Nè(º<>®^¼áMäV§!œ2§dæ ’y9 +uƒ¢Ÿe…pÄžK4zW\°¤þ ŽÃïQ e¡FQÈ£âCQAñ(ñLµDµ5ô˜3aª¨‡ØÍj¡™Óª “Ȭ„‘¡—&w…êTàv@!BÏÛœÒà€8ÃÑsZpÇ$g,-´;¨U:ô2Av`Ñ‚êÀ³G‘Ió;Ð>RZÁ’>P°j v&>ê þŠ©t@B{ÂDa5LiB3»ªåe£5¼üƒIˆÔT¨i@y§ +-W*1’À78¿#D&òÿ ô|¥îÎ5Í'øQCdDÓ‡â¨d&DH þšÑuÔ»Sw“…KãîȘ(ó¡¸ +,Àà`¾6èÁÔà#¦ +VÃe³I£UMç^LÔ„:ø˜äõáBçãvè5™"¡‹ðð^ÅFbˆ€1Q.Êà6à +œ Àb$¢…9el!¼€¬CÔAO¼¢ž7ísù÷•TŠHF)³t>œ}Ú ”¼$ζ´ZOƒ6™ð±Ž°úÞ IØÄ'"‡*퀪øaa…æm¦ð\ó3ãÁPDÃ50z0Ê”ˆÆ´çð=Ÿâ 1miXç%zÞÅ:•œYÜš¥&6îázÔ‰6í‚DÛèïE6ãÄŸÇmòjX¯ª* ¬¶î{×xc*°Ï\ÛÁúšÔ-Rß0ðG…šMÑm qÍÄÓqÇ’ ŠÓY‘÷‘H8X%QÑTDT05èÐQĺU»ÖŽÉ ÞÛµˆÙø¥NØJé/DsSÔTºð·#AžX "µhô³{ƒ§õZÞÀi0"lÔÈ4x)7˜Uì±ó*¯¡š“ðkI[7n nƒ +aD^GVb G`¬Q;ìB5`L…ŠH|ÑâWfÕ™(•×àS±9:¾Å=»µ ,>Ɉüá!i¦¨¯qì­ )Q름XWEÚˆp±×D©ŸÌ….ªaн•*’Çë™7R£Ì6‘ r'Ö‰–‰üBcÈMŽpÅ«ð‚B³Æ2v™²·gp¨Âó›cù¥5Õ×c^#G dvtSL#Ö]„ì +/ÀQ"ü°­/છ2¼«GfÕyõÝÁÐÈh~*Â"A¶ƒ¡ÑI¶˜%Z¸ÅÒ5Ra ¥4TštP}«.ˆÆšdŸbðbbè%¯°þšÛªú}ú¼\VÿÇ¢!av!Ŷ¿öürIe1ˆ¹šÖª@3¦ªô†PÆBUK_ÿÐ^:‘ȨK,s‡pB=¸KãÃ=â‰þÁæO“ ä5‚L_êòGäÜ*ŒürO|aR!4{B½Î*Ì“‹§AâéÅÐoFhäB´"¯s4Ô&*Q¶>D +?Ý“N &jCNdâ ‡zù£ç„ú\gròPIͦ2?X>‹ Q¨ïÀQ£—Gê 3“¡`Y~«÷\7d! 5µÏ/š>,üðé} QÉlE¬(¢bÆ[jS…CüÀ6QCm“Ï*rj7Vct(Åæ‹˜z„Ìy©lvx¬<)•Oq6L}à•ŽÓi¥Blw©$˜^íÖG¨Zx¬¤N†Y‘˜b$B¼–‘q柋#X€Á7fÅ#:ÕZî@&¢Š‚©ôëÓê$˜F«Èn´½yZÅh½&œb]Çá? ™Ÿ© +¿tð‰ /Ũ©öš +US²¼Y0烙ò¥ +ói‘±Äœ TL<” +5›Îªº9|†ÍF­–PJB’ª>E´ÔÔ*£gÂaJ­Sox'ݩ䉻ƒœê#%Å" ³]ðà¹4F\âd£¹ÝÕ›Bjã‹7¨DQæ"y4Œã4ŒJÊ\QBÓx Æc‚ñš?€d<2 Ãbñe2’R ‚0ƒ A†(„€AjŠÆf ¤[D è³² šÈIY%QÕ«G]ò¦*<6¡ñM]@â ;ô6owÃ+…úåu½»‚Oãédáj­ôtΘµ-kâÂð3g´·zç\òÕÍþM]˜z^’agi?¡Üƒ²aˆNÓulÔ êŒˆMßO^!ÈÀÐKÊèu•Hµ*R䯒æ0ƒsGï¬Ušæù5®f€ _ÇÌ\’ +yâ VévfÄ~ø3gÎ(EÕù· ¿›q2}UK#êìlFž‡i7yÃ)CJá.ýåÕ]ƒ?#QC±rz ÊÜ(²:ÝϽξ†š’*Ó0;0@H`]lLǬEF ¢%û±UCIKT„#ýynKžQå± ÁIµz\âF×ÀCSõ´ÅmÏp&÷ ’ºE,»èØdvóÃï”Kq‡8¶SŠ9íêÑS2’IîI„83y¹÷ªŠ×w™IÞí?ÍúUc‡1¬ +¦g¹[¨%8:L¡‹`fô|O X=Df-„±K݆¸ô%ðÇÀgÖJ[ˆîDw†òè8ÎÄ•^¦t:Ó1›rülÃÏ;€íx%:Õ38†xŠÍÛ¨:Lt"TÝÕ mÛ^zN ·M+û¬ÔÝ`p(.²ákUy’”<æƒ +?ütÙ8«@wP·˜c1àòê«pÍOºl +ô£³ˆtÊk¦jfŒK±/JW‰ ˆZþ +ÈýÑÁ@B‘!Á—‘ÚaSAëÃûÃÄ»Rs‘>n7Øá²ñWŽØJ¾“ÿú&›Ž*)§Vrá.|£¥&º>û‘4ic¼€™êvŽA³i_NЈñæ¡4𦒨äH +ÀUþ­Ö„Ÿm?x‘Œ‘=/sQÖÂÐ9CéyŒÁ<¤ç^ø`—J»ˆRŸñr£ÅiŒüú„N¤íèã£# ƒÇ9’ t1.›Š_QAµÿʿ谇Ká‹mù:}§ÁBÜ_0ÃéQÏ ’ÙÉI¬õ팛ÀÔ€$nد%6¸Y:Ë;3Žtò;€é™Ët¢½{2(o^|Ïö±ssd?L* ÓÄŸ¬)?ñ“$Ú€UýÓ½‰”SG ¤Ô|p`Gr7ïÿ/ßòïYPFÜ}õÄèñºxžŒmCs½xaÜ.ïòYmÆSžñh Ž(}¸â¿yHo1¶–;'&ï÷EjÂtH€Ã¼Ã«·Ž¢Å+!®—ë|á³p¥öü“°GË úf-9¦þÜG7â£Ø¤ìôS÷Ãm0ÑXWJa{|÷À¨ òy ¼e)2òÓoâdtYÖ<‰þqËVYÌ\áÜuä“gˆ‹e‚™£Ò2xÇE‘ ëdܲY3ɇü„H¹÷â£ÑDÙ±¦ñ˶c¬ÉHïá(z×ÎeŠ¿ÁAÄ ¸ΰ„cµC¶”Aß™ã…HÏãPÏ›9Ü1\¢ºTp×Úhâ÷ü’þ’¤kàsº‚/¼ÀöB¾®èpüþÖ œ´O7­ òÕ×C_§×B¦Pà9W-¥˜+×ëžvXž •Z‚+rFäZ«›µòD¶¥Õ}訓øk· zô¨b˜Oͧ¨XÈKÑŠ 2t•2 B³ïQmT Ìë#.¼±2Ys9q‘:ÀtoEŠ:ëa­ ¨¬~/hAoRY$ï7G†¨/gá_:ÆnèóUÜ ztÃåÔÄ S¢® øv¶ :`rkT¶`(CÏÚÕD»Ñ,ÜgP àÇ2Ò¥ÑÚclŠŸï qÀšWë•bhÒÏy!{º-±¶Ëô õã“Qþiü0ÕŸÚÏ»8àqaÆþ•c4ÃÙsèxH!†y<ÍO_†?3Äý •­Î“½uèæ¸×ÆêàõôI¹dö$ÜåÊ2¨k†Ej»88 þFÙ]ÖÙCX"t…äìqÓL‚Ošúà¦Úòf aßô–ß6U“n¶é)"ÓæP«R2¾F ªšžª, UŽ+Š«…uP§9‹Š `$¬XNò†‚ȼ|·'óü©Ø­¾¹}¨ù±3ª ÀÜ¢²hHúlö(yðsL àCXYDäf,Œ"_¢!o! +DezH9z à& ­3zC A£{$Ðu.8¿©U€CÅöG,ùjŠÅ÷•6@5ã›$D÷4[ATVn$K÷æ† 2h@0OW˜RÏ«]ù$È°ÊæÌ´eG[VM%ùäký'‡D>stream + jŒ @–yþ¡«Eˆ—®ò%‹C% +õJŠÀr®dˆeÿÜØ'+HHD©~¶åÁj +í=Fv£¡›…s‚I•e](¢Árß.ªÚ¨²áHNN[Aü’ªtOÇÏ #ØO¹Zy[îoÑ®`Y¯I7î`É&‡ óù&ýb´H‘ÔÛ1¡M¦ÅEÆ/á€Pâ8åôWÃÕ ìаŽ\E9zJMìÜ´ÉMÏm0"úï¶qó×S@¾€²f¸+–÷—À§¨0¯%#YJ[iŽ$^äúÔÃú«S+7Çj…2ð‹àìßr W°Rl÷"D³ 34\¹OŒ²åÖß~…áqŠßsÁ ÷ƒ˜\pMhFh;•&¾ÃãÝzÙÑ}Zѱj"~w9Âè×;i.C“ÍÓ9,åÏßøÙ¤ÒÌ{EdŸ ¼êÊ²Ž­þ°Rä5¿‚òD'­9­­6Ì©P•|b ˜Ä±sb€®;ásRÑÒ½ÅÆwcÅ\HȦÝáú*y}L75©®ØtoF†AµðÜs€pÙš­Weïñ"´2n\GõÊÐs›-d^Þ1©6î1ÒnݳßÙ'Óz¹8€ÊïLJ𥣷¶XR;{°ÖEöM{uª®fJ›èÌ\=¯ FyN›z¸$ó9Å”Dø$”w‚’Y%mUÔ„^N`õ°ðQ®Z_9b÷ & ´ê<@Xðæ›ê¡¦r[ª:šd5„VÕOà’™oÒ©&ñƒH…Ë$à]©öÀL%>I)SKÒìFŽ"Måkœ›Ë¥©y pÊ„äom±èWWc'ýIla–¬iÑ’“ëÞÜï ç ¬€$QÑ4áèÈð«¥=+½=DX:Í!ÍZöÙωFÑ0ÁIÆ4kðì¦t;Æ™d+“Qw"ÌZ+£8¿——º>sƒê¤‚DX„”l‘i¨8XÇ8›ÎW gùV7ƒ´óØÔ#˜ ¥¥½ÅFu +Ûb_C•°HàÌóÌû•üLý Å/i$’Ñ*K6“üšãЮ‚…˜«›´QGÁý<‚â=œŸNj]c%ÝÕ5‰x`ó,iï",¨óÅ´DIŽ/2 :rÎh+²Ý’É$|<£ÓH“9«lcÈ•JxMNv/ÄÆˆ+h0¡¢ñÉbãZƒ£¦ê7@ÐP*N°’¸ê~…ÑÎÃüº lóÃÀå~é‘9‰uÓî€9s¼9Ïñv?û†DR +^CrXZ j°‰%ÌFP>úÛÙý+Ö*m˜3±I懹 Õl¦Ðó†?-JIA +ÒÞ2ê O°ÇŒ“Q7Â7sbÒ3âéêÜõ½ôÎ4ÑLšVv_ÄÔ1½ usþ¢N§™}­d¡D |ÈÄPii„‡ŒÚÜ笆˜s’3‚²#¡… —lš^ÿÑU¹5Ô?§4;íBà +ý:AÎÕ¿Šû£¿|Ñ­&‹™“†æ^V‚^BúH0 —é“CùŠß8J=qŠñ)¿8·ÏAT6Å+KîW¢éS64RÅ«KÐÁ^˜í;:`q/Ø”9>æ©)i0à¨Ü>ÅjÜ:iÆäµJ¡§ø=ö€_¦$##/¨¥-õD ¸%ÙHЩíFÒ~1z)œ·È}ã! ‰@@2¹tu!Ê\?áua“ ãn€hº¡€6Òƒ, bLëçVýtI€r#ÞºNÅÔÝ1‡åX—ofQz*¤YnD••—€ òáuØÚ?ÇX‘Þ&$ÙR£DTA)i3(8<©¶«@H˜µ» °F/'¥#å–AÇ›>àêáúqÔA¤\î"y:pw+ÃåyÖY<èN±•Hh@Á‘Œf),Є®õƒZê9{á+C¿U®çd㮆–$±»Ÿ]˜Iù­ý«óLhhÙ´Û%V8ÇÒŸãëÃeÔÔc#Ø©ÕZ!”àa‘¾ÌT#–¶Llðbl6™Šõó0f;ñ ©‘Ûe|ú°åBÞÏõƒvÚ×Eaå™wd‘I@cEp2ß +6­¿÷…<³§’á&µ>S7Hç!)»ÕëHcÉx¦öjÚêüÅÄ@ü<ò`Þªb.Dc løÀÌäl°Áç›o3 ”tcy)Ù,ê¨äÈp0ëT¸KÝ )”®ÙÄ{|Fó†P¦ Î(>nÎ(Që™jnÅAé2%¤!q“/-(m*Œså‹:‰/¤« fÒØ­|á‹2òW$ž1‹yºÜÌk¡S#TIÆié±7„¸H´Njæ6@MГŸfæC+·Ñ¨VæaŸTÔÖ-·Á.¦-/é2˜UjVbrT®Èm°â·+×á±jåÔ_s5"·Á1í³ŽyܪŒ>Û =?{à+nƒ=Œô ·A÷T½n²r‰Œk šÆMp‘&• nàIñbnÛt%“smÐU%@‘ñm4–¥· T…œ’Â^ƒ;Š”•í¶Áó‚‰Dk`fÝ6¨¢Ã3· >øP«Ã €Û¡Ô´ûv¢שJA˜ÝiðÒ§ÜÚ6`°qÓ`Bă_ÿ¾ƒ8ó¤—”bÛ`'¶yRê!ø¥ Ø¡ Ø`[²[T…ØqHp4­mÐèÛ¾#EÒ<·ÇIºOî4¶¯VwiDUã…½GºeÊh¬Ü@ŸÜÑJoƒŠ$ü$U¯ÚkÕÖA´A{*ÞÙˆì ÊÇ²Ö ˆÙ`ÉbákØ€ßÉBr£e˃ÀSõ5(ÊJ•|åÄ 8b¶•,³æ‘rØ|Nײ¡ŠeHÑÞ¢éJe/袜£øÝÃË|*Hylƒõ¸Sp‡$T=Á{ê -¦O&¼Ë¬ºÁ?¨Iƒz&A5â[aš$> |¥«äè@stJMÈ úÓеàn…ÌgÝæ*sþ<ï36è3Ìè{Α’e !a„šAùkPpÂ?^cO£=úzïBj¯‚óII™Æ,óí~ÿ]ÊUxiüé MIoN¥…48ËÙªî°Å#»esäg€šbÒª™1yÊJÖj’ v÷(„¨ýT‘H'¿rf¦Ãþè¤e÷måÜ£äGˆ‘°Ýd>È‹ÿýë£å¥TžÉ* (~-Œ¡™±uëw¼ê.\<3<9ø5ç1ß'Í`ôR¸K̃yëC£ÆIËî€ZÙ‡ÒR¿,f{b=l…*À®FA³iý†º!j}Ô†öÑ¬Š®l_pѨC. å"N(GGÎöOÏ·6 +’¦QNIsƒ='R1ÂÆú™+«Æà ,Ž€÷Ÿjg)>‘Bˆˆ8ü3˜žò²ä*¾—19š-®b ¡†£‰ƒâPØŽzXuÒTÕª€.p.ó2ÑcÐŒBÖ8êh;‡\à24ðIÆ(vÜwìþÃ`­Ðå· y¦¿[ÙÏ*³@Y'–*ô™£ÿüŸá¬Ë 7E2UO¹æg"‡môzŒTÔ‰æ[ÿÑ Ž—|"ŠõÍ]3[ºgÂCYóëAE©þü/Žp¹*+\~‰5 ‚â $£"‘6(õIZïµßAQu¾R¸ 76ƒ­µ/bÓòßñ¼ºúj ʉ]] wÊÆ–xÊrºÛLÝYàQ ˆ)– ]~ Ñ_q-ƒiÅ€fܨCV=SùÅ—èÑ¢7é:芻ư‘¶xM î =K¸Q¨È>lA8£PŸÿ„³…á¼SQó9ƒ“¦Ä_º´ +‰³Âù&Ëá;ŒGí`¾ø¤dh%Ws3”÷H~õ/BËìiXÊÕ4|äMÈ8Ñ™¡¢¯òÀ“[D Ò„Ú9v$-Eñ™'÷laªtÑ9€}W¨|K3”£¼¾²n*ñnš4ÓãÝÁŸPÉ@U¶NÀp·&ÈbtÑæRpPP}ެ\g#dk5( £;©Uº%qé·„`8ÁÊþ¯†ÕS|PÁér£Tìž­úD<éÃ¥NKC”“Ü ¦2-ÀÎö-Š6˜,v‡‘$ „OZcÿ—„XK>,¶¼T··ãš3ib¥¸ónd ’$R³ú>{Þ(AÃY8åÓ°!V´ñu( +V8<²¾à-@š@PÒb]1ÄŒÅwæï {PJÇ™›Üͦea%œ?Ÿµ¡`MÔÓ@óæ ¨*éÑ„ ®k]Ù ô*©²Û+<ÒãýJÀa4æ ‹¡Ë‹ÅÛJ§0×ÉkI0Eª'¼YÁU "ÎUÇgSfñA®e¯NóÊH‡ê +„ºœŸ°Aið„®`#€ *ïãÇ ŒQ´í&x(YÆJSⱫRüMMMÀÞKPNMïEéRßü½>‰ˆ€ƒà†rFîÝÓ¤„“èküCy)÷ìd8-œYÆ$1íì§¢MO”@GG-¼i¡å :«u…çã ÿ@ýŠb‚”kEe¨QØ-·ê,0žSI °tçöl¤óª¾nø¿VsÈ!üòRoôjÁGu2vO†U1”&—@)èÅ öT.æ±Dœ<®"DW¡DæÙâ·?/áãb9¹b”ôxI—Ì*¹eÄ ÄÈË€Õ|Ù¾y+eÁÊG½A˜ª@÷ƽ¥ü PH+Š -ÜKäÁeì’ëÏ5¡[¶ÐæÁ{AçX‰ÛQ­ãktyuàq#–¾H€iñçÝü0ÛõÐo‚5­ˆ?´¬{N‚Cs5òÕ$e{©~Æ®4Éüfh‚*+%¸8ð¤Ë ÅWì–¹V/i1×=f²@ ­kªA†e5³gàóöÝEåÏÝîÝôǥ̳Öûg0R¡ÖAã ÓÚ*YDRIB4Æ5_˜ÌËý0(r:〆ٛ^3ð®¼c© áu+3H? ˆçÛÔµ‡\Sä^+ÜàäSÎ|±a/ŒUt h €ƒ¥ ðç\¾Ã]Xòmögõâð_‡¸ø Çâï¸"0T²¼ò:ršŸ’Ñ&Œ`7¡uÔÙ8 ü#3l;êHEc'–F%¥ À|Éã\n¸vñ„îVà i€àáFû-¯ þ)M]eÓì·€Î{@>t¬äU à p×°# 5'xñõ¢OhL|X6ÌbS[Çâã7k)Š€óQô[? L Ø }@J[Àåj Ãt”[]ZŸ÷„f›0‹vß_·Ú¦c} a+ÄY·¶j À1ßH瞢”T)Hyƒ³ …µØYìHøAÐ|›]5œ Ã¥ 9Xº!iGàP„ ãT‘›Çž$àdCñão´Ëæ5²+S^M@ L2Ju7Ü)E@ØýÒ–އ[€0',×yÿª`i×/à!ý‚lqò’²†Tl¼b5Bø½§ƒ[Öi#B†[¸Ù0v;œ¡?—ƒ¿ÊKp aþ‹â—¬À´°¹?}ö·wجDfX"–`F)û–Šäe’šE€UËSóß°@Q‡âgäq_¯ñŒ }_æ&€©€!e|–ÛW ’ J +%”àJÁ…* Íú +ÄX$ |Öà 0…X¡N ¢Ô08«rd0^™R+&éinܘ¾ÎW ‡kÁ>ž@O,& æYo€‹j|¨&w0§@`‚êIV©ÀØ +Â@µ%ŒÙ‹ +PP0whÆÅ$j¤Vú—Vk|²høRÆf,ðNèãŒÓÖžržªb'ŸW(¶èõ„ò*=›0à.[FXWkté^CÊ1­!ßo#À<,¶hÌiþ:¯ÚmLÀñDŽ‹à×3Ýb@×åáùø·T)Ø!“a)Þðùq©úÐëÀa/ P]Š¢ñÐ „ħtÿŽ×‚üX,à3uU}ð_‰:JcÝ¿©ìÆGŽeDyEÌîÿ’²%ÏÖb,öúÁuùwq±ÀÞ¨¤·ῦRÞiðÙ³—.H)uÊ‚CÈëW\ŸÙ @™XOñšT} LR*é Ѿ +<+ý"`cúǺ°5#ï€ –kµ0;{—°8çFÊ Uó2¦)`¿¬½6aÃ($ÆbúÃ.\®f† pm9{ÅÅŸUõaË£ÿ¥vwb_ Är„Ðz’ ¦ ``HJI“:q””¯ŒŠMb3H,Ы¾ê›>^%•׊©¿aÄ÷Uez +8}ŽÖÀ„ÎU@^ÞJ'õ¨¹ŒŸÀåŸâ‡ºÄAÁC0N¢Tö&ø%­@h‚,m7ë|Àc¾øLä&ÄWòÛ‹1­è)޵«Y­®1VUéÛØ§Ýl©Ö¤ÃkØêepÝÀlÒhé-³OdeÔ†NNïaˆÜtÏ´II‚©LÜ», ¬™Ñœ%"‘i†Ñ#çCɺÜpÖŠÄšÃÉlàº7‚>¿•ÍaþJJÐ+Û(W,,@t )¿ÿÎ` 6=¸*¶ÒàYXà ÇÜà©{¾+€Žaâq=±•3‰YXàÜpñ€ôÏ uœå›ö˜”‹"]abN,ô:ÑW?`nwÓ¦Á*~­ÂAæ +´§DW±G°z† Wõh®gAïÒ6çäˆVø>ü¢B>«˜6l.„>ÒM’.©€n3Q¼"P¼a”ˆ–añ MóëæÑÙØÜ€7e +«Q9ú2×ù`œ°΃ÿo®Ñ,Ë‘¼F²ã*¸¾»‚t +,ÀXŒ„Ç¢…¿- ‘üÚ¿‘=Æû¶xV¦`>Ø“ý‡ëpúê0³3 ^ì€;2Ï}%ºg^˜ƒÐÇŽW{šG)X |c À›ºt*ì`öR¸ù)y.©,àrRü*a^y`ׂn× +(Z…ˆÇ0ùcv`-×Á·X d®™G®vÀ@€ÖSn‚øËcX ù§f4Á¿T ä¥^d ¡úU½ý×Iô:a¿ L× S$Z=Ù[—ùàii‹¯_S TL+8H1Þ™#âÞh7¸$2+pà?#q•0ú•é0"uRéiáqµÿ½ +''+5 •R¦”dJž¥…®®ª‘€Ãõìó3:mb"¶W¸ù ›”M%…ˆ•wµCŠåp:¨ª ÌË< ºè©póàÁÇCËÖ*4†’¸âÁƒ’HlèxÕ*“ÙÌkÓ‰\ÌQ0b§«¨Â‹TßG«®h¥QÛ—®rpÒ‹¦NHŒ8ˆm¯(kbŒoo÷#?MD&?E(Aì¥ÂÜœxVˆÔÕx"ä°Zô…¤k78h0^ÚHù´º§qµÂ2Ån²ÆŠ¥ö˧õ–tN9SPQà`qËÐ-$žG5ºˆ°¢9ÃÝÈgÈa&Žy±2e„ayC,4ª‰•)f rPo«FL„ÖAq/ñ`!3TÓZØö2½*ì ¬#È0Òê86N³,35‡HÓ¸^†8¤Â¥3•/ÄP$Âe!öÚ»„xÐ’.+’ÏjÖÌšè© +3æ¤çR’}üxhqDt†Ù¢MÔ|£~U=-"ÜOÖs¥­1uwBM¾ =´"˜“©%{xÄŠµ†1#Í CL8DB,–ƒ•Â.ZÍN» Œ®†"ã†ì÷ø‚t(áÅz¬½Þi˜bEXµxr09O&&m|ô(¡Ð-ŠÊ ”ƒWd9öYCDÜ”H•(f4²*ä`TCCåø¾ 2)̰ó99ö™ã‘°·÷d‘LID%TaƒD¼‰„ ôâ¼cI-ƒDQŠS´#ú¢Û“´¨\Äǘž¾Å£âµ¡ÃƃéØk,fndžÐ™:ÆE%k =&Läàâ'nã¨×øW•¢jE‹òF€ØTàY@ÁLpªééE³š5jZU²7eƒ‚VÒGĦB£.BEªƒŽÌRcÑ•ʉ56¤)Är:jæ_u$vUÙa(õá‰h¡rˆb94ÚȆ^¼ 2<˜vÊ‘`Ñ„x9a—].qÇÿéMìòøÒè1;>ŽÅ&Uצ*p6|Q[JáÕi|ú42/O.‘žÑ†ô»Â[UD$Š%a( ÔBLŒ<ˆ¤xP§™Vó A5•Ð\ó­ÕP&ÁÁæâT¨í ’)H(„wLh<ª^$N4l<‡Žžq!õU‰nEŠ’©j‘)z&M͈Í4Ò–7d<¨+(*WL`dRšø=bìS¹/‡8 ú£¥4ÄAU«ÙK±ÿåGŽzb£Iæ»MŠYæÚ +‘ 4Dœ I±P#$q5Ö˜­ÂËŠ6èüÄâ +‹È0Šî©tUmë:¿ßa1uªa—ÛQ÷N‘ùÍy­S4¬l?+‡Í‘—OØê!Ìöç*ˆ´L¯GèNCÈQ-â¨Ïžü & Y)RÈÁQ;E¶êYtXª*l¬¯Š’PêdgqV©ã(%&!byŠ£ ¢!ª‰R÷z/Fd¯;'c!ËJ‹Ž-˜áUKeZÃÚÅ('ê´@6!»Ë#þ:C^‘Z’꼪ò~hªÊè )¯œ·¢Õ +šüÖ‹ì)ýKS¥(™Ååw³8º2&CÞ‹þêËå~\«jD(d.c’.Ö£ãh<‹ñÆ£ò݆oæ% Av6‰MÄ”‡ëï(5šøh„O„v™ ²»æóðuª‚2õH "5ÇåSé´I ÎMahZ¯&úŠHœÑ¸H±ÈOáëQëu a@q! ×´séD%H9œŽôÀ|DÈXb(„¯al*Ö6ÿ'¤ª·LøÐ¸â °@†<«Ž«†äôú=_ͪxPŒ3ðüüŒy¼kL ï`Eãxq*5 KVº…ê\ÔNª¡J¢U´,M-øPý…:&º2ÙTqå«9 ?HK™ +dr}jmdRPåÁ\2]5*-šƒEÊ3yàªND ½fNšP²w) %l&Mˆ4žJ'Ò"*…Ç©ˆBä1&ÉŸL„ŒfâH4„L° +& `‚`¨"Œu$‡d$Yͺ3<Ñ õ*8Ö„šúÇüB:¡K.F¨øcC’VÝõá¸BÂpô Óˆ‚IÇÍŽÛ*Û§…(¤¢šVñ—Š {O²øxòMü˜ó€î‰°ÈÈS¼¿h&œ<ºgŸ8'Ðì ¤ †Xªš6>Šäºk—«•аó`U1B¦4—Ô|ä–0.ËݘVТ߯Y¡¼‘êÈÙ²G«¢ÁëÆxÂýSa’^Q>awu*#²mµ„Œ(;Ñ$F”ÈP + KoVÞP.çÁˆh¦—ÌOo@ÁR2Ú½Jò© Ëlˆ·FN³<ÿÍ¿4“ˆgÞ¨+BL94ÀìLñEãH4ôˆPkŠD«¶¢×¬â`HbZ˜C!†×÷AÃ6š{èEoR³ +D<§F3œ 2`@3`A ˆI@£}–²ˆID¦q‡f§²묨QÅ¢¶ÊHɸ:±?¥FcáÁIý ©W”•Dó½ã˜×ã÷¦ê˜E%8~Æ>·…P8ƒ$H4#VT8£äÁ™!Ñ:ÅQÊL›[©–0xŠîÐjaêÅ<Ó$åI¤ T]¨± :Çç<|´v*¢RÒ˜MÂ#Ñ‘F|•ØŠF>ÓMÅDÊ á£ÚÖG>¢¨jÐ%tx@žà£$›@ž˜“QÙb>OÖÐk'£?C,èÌúÊî‰:‹Í"W˜‘ hŽ¿š"jŽÎY+W‘0Þ²H"è .áaÕN#Å÷¤ +­š ‹)¬}“8ŠF “*ȘÆ<¨`‡ ñNzUÍÌW m—*‘Š¡ÌŠEGµrñ.1©: ü-&&«ÌêÕÐó`Ù°HîjtÚà•W13²"‘¨Ó硺¾ˆ*=ÅT‡:Ý_tâAƒ:ÄÐw)KS!j—’â-Q¡í\I˜Ðxìˆ {£w»Í¡,Ø2u¬§3†d"–âL©¤˜à|U.âp@€€ &˜`à *èÀ2¸À.ð@ øÀÀàà *èÀ ¨p€\ ‚ +>€à 4€ +< 0¨ÀL@µ7>uÄ:\—Ë>dG%EÔBr9¾pµQÓ£Bõ%È"3¯N9Ô»!©¯NŸ‡Œg¶ü¨˜÷â—އŠ>¾cZÅ€‚´ŠUM…˜Âº4Ê7hàK\ŠÔ(åb9jº>6«ˆTÏUœ4+g—„^$ޝå /õL#6*VJ‹J- ^¤Ä) é&ã£ös9C× j¢d–o]ƒºÃF¥Áb!ÖšPl6¤`6puÉ/2ÄPýçмH_£ð\¡Ëþ¡i «/[7@,عzf#&P’KÇݲù*Va2”N{ùà[˜Äûj Qà‚̽ÔÀ5¨F˜Uñщ¦qi ,ý +kƒWŠY¥i2b±aÚàRÔN¬ØPL4ì jÉò/â´„(ˆ¿3‚/¢Ù ÅG†ÍDBâ2@‰ßq‰=ûfó…5pX¢lV.3ïG"—i©d úp„Ëb •U?RQtÎqƒáTƒ]¾tx"¸ýØ€Z}…Í\,ËÜñNÂJy…dž)/z*­ÒãhŸqió3Ä ÉÈŒß4p M*¾²3žÿ1žÞê6ŸG d¢ÇEK( â7ã?űyLN‚ 0¦Ö°ó¥ò¡Im> Ù‹Š*„n±1WÜÜ蛘 m6_ΔNÿç£` +&‰IÕvâ]DÖlZ *V‘pƒjûŒ›"6•âP(D‰ëD}­ºÓ•ØÌUëA'…aƒ{ èW:åŸ7,!™oN$ä’ 3V—\éÉQ›ø&W^,±µy¨T¯ÀÀ˜Kúб3 Ç^žc;£äÝd5vFGüÆN®±/SÓòá±+AÚØq5­± a†Bë SaÌb{îÍØÜüÊØWþaPK¶ÛyOxcóÌ]0®Òy±7Ëœ?6>ªóáÐÇ{õüjñúWj±bFÏÊæw$XYÒè‘¡½–¼ýë‚Á?± íĸ4 ˜©ï›ñ¬Å%ûx·ÄNṴ́7<ð]0:î©ÊY¸0¹ïb &»J¶»P„;aÃôfü™u<)#o9¡cã íÁ‡#¡(AÚ2Çhì‚T8˜uÈÌTÏÇÌÁ¯s%a¶QðcD¸‡j"ùXv4t:Ò p·H¸jÛ=Τ$ »›‚Ý~Ê aãÖðœCFzè‘Áè^ÔþÎ5s è ‰µ¬cÉÕk4â”°_#èGÉ*-Ðe=1¬=òˆ€ÛœûôH´FWnÑ9|6Ú x.$ohn}k½&‚:lçR°ž&$ÿÚ©w¢·4Ãì2ÐÏælÁîn&heé~Æ1úŸcéCˆ°pжC, v\Ž5`ãc¯yáÚ|$$Uÿ¹©¯þ^ŽG“·çÿÕ'ïvz_ñÝ!B,ÞZŽ-\($y°zÖwýxŠnkëö€t·ÔK·øH?äÇ*ü€-/ê}cÀ¶Š;zûÿ7‹E5TX€ôÝýMÇ¡Ñþ:zˆµR7Één˜쾯'¡ÌBÝ.)d‘ì©™Rk}ý€§ í•ÂÐ×çÇL2?§²¹¶9x*S+_ՊΩœpzð,‚ÔEOëÆ‘÷+‘q2Uán MOZ#’ëÿ™Cš£xÑÅ0G<ޯװ]18ásèæŒr“xXÎ +ŒþÓëìÙË^ãK‚;¯÷CÆþÍ ›×^¦i¾K +3¨8îpQ#ô³+ ¯Ç±/ÜÍÕ<^—ixMן½¯xmúñÚâu¯×æ ¯©Æë| ’n>^³¯iÆëÕÑI^„©¼F(\Sã˜×Y“Åäì ¯ ú3â5oÙt^ÛûÈþ®=ªNûêÞu‰±œï“Oìéž¾]˜ Èz>’èt‹êêˆ~è!^2@çL:Û~FF2ÖµÚêתëuýåÖñŠ2Ôu<Ó5< ¥ëe9º^ð­lÜcÍì?è:ñÀjñ\sè¿hQæ w'yÞÌVà!y´îÓªÔ§( +8T†ùjùöGK^è‰M—9×Ô4p¡z®‹ï9×ÒÏ£¼r³_‡ÉT§Ï\{G¹>›¹î’ì+×Ý=ŸãÝ]®‰š\Ãa¹>ðä:v¹–{ˆ¤çqÝ2¹Vþ2ošXA”©ÔÍw¼ ËÕ3?Càƒs"I!M®{¤'áãúIr]nYÔèÇuµ'×(c\£†\o4®í)rÕ/{J'Ý=Sl\·AóÁ .®UÝ×ì%®Tý¬Ê7?Qt\_Kxv®62ž?Ïàæ[µ‡ë° Œ8; ‹!óÑÍš1YÞ·&ƒ“Þúq¯+ž«·vÿt.ÞšÙ™± ~·f7¬¿=ª~,ãhIsו¡"ÎSçÖ åa02Ü?34;5·.U7|³>·>ÝÞµJnpëMÍÊ5~nëŽÊóLѶ®“tôÐë‹è¬¶öœªoŠ¢Ao-¤­óü\òßfy‘dwqWcT­(ÄÆWkm=ebEÄ.@(qÆ©qA5ÝÖšŽäPðÞt\o¢¶vg[A}q`Vº³IƦˆm-Å$A2¦ ?Ž·×Åèd¶>¤¹<6([Ë -³Y+ŒÜª?­&güHjqN¤Å+#&“^̤™Æëµý ­ 1Ä[3…š+I‡…)þpuÐ…¶Ë«J‘\ö$HÞkÍRÅ~”Ëe²\#ÇÖG»l­/i¦uG‹NûzdžiTãºÜœ’¤€e­ÃCó]Œá…ãZ×i­µƒ‡ð°«'R?Z‹ÑB–j­§'B_mÛr:õýÕúuÔ*¥ªuÅYrØ·¸å77ÖÛët%kÉ€BÁ²6 +ëëèÛ0¾hâW„Ûç-b ô¢Kà9ùk G¿Bö¬È˜~¿JeŽi†PøzÒ½fR*ª¦*kÓÇô>Õ9 XÑz¬ Ñ Bsâü‘1Š˜NÊÌ€ží‡~tL}à–ªžCŸÎ'ôŸ-+¨Îén\:† 2hÒÞÞ1SK¨ˆ“£¶r<ËKXáS‡Ú—³Æ)V×þÖ[Ìǽ³Ùv¦âßÒGÊ {ŽŸ²RTra>ýùª%ؼtRÇ¥³Îòtö&µÝ K¶<Óö—LI' +ÉIŸç”x^ý ݧ,¸$IײªMÙ¹)2²^2rd Å*oøåÌî]ç-~%ô"^hòNü.ºJƒMGT³²X:e‘¡ª™«CÀðõS¡ÏÇn¿Ò¥ýºÒoŸ)µ!ÍD¨*nMöÙc—xüÕ Û‡Ä@Õž/zPåw_J!í…µa“÷pÏÆ©P5˜7‚¥p2•5îmjJ™ƒÑH’¢ÞžëªŠzÙP‹ƒNzUºsÅÑyèKÊ7àK´˜b¥c±J;î¦Lé$äžyúS½†4>ïex|¦é[†I·-MÚ;¹XÀ¡41· ê xɰ¨–îΗº2€ê…(Û›WMÚz[†{¦I“º8i„òÉ& ͦ^¡Ó€l_½Â¤Ñ‘ +^èËB9|@ëg¡ÐÇö&Ý0.‚é÷ 9‚V{Zd‘=UÑ CJôA*‘vMž=&vœ;Vˆÿ’÷™…º>¢°Bg¤ŸÄ¤Í² ö˜—tÿ ¼PdÔ±†„ü°É‘•BÆØ;,RçL:(Í ’n¬Âū̸LzX•áô3飊Ç8ôL:óK Õ™ ™tƒ ±~Yo‡ v¼¦’ +D +‡]+e’hIW?z5 +tHó·7kl™TÒNq¢äVÞ4©(¶–¤-L!+§eާ߽-ý›¸dŒ%<˜Õ{;aË]¾„íVÛhkàZ2Ç©™W]ÌYþUèá‹0iÑùö#KyH¬QËGº3@[&ÿÔFlí¾ypúˆž_›êŠhýɈ²þõ4)vØÄ†nnÂ=¸ôs“ÿ™Ã&~‘Ñ'ü+­8¡CÖi}щr3j«3V£­Š’§Ž‘î7,m#ˆµð‡éˆl¥O¦¬‡y„ŠFljtZô{Ëó W@ÿ»~oÖ¾!#ç×bsR½ÝæÂf`@sΧxìòuMø³/ZœCÚA§[3™Ñú‚8_΋FÌc3¥9?ÒT@©§bÜA ©‡ ž +Ypæ„zhmMÃ"ü¦r0ÃüX8Á¢g!2šë4[­þxì#|OQ¹Í‰ØŸvËÉ=AÓ¹;U€ß …jÑ5­(Äö*Q–1Yµµ8&±^ôša6A×:cÎ@xƒMù¿acçL"˜¡uX6»áÅAvhˆ‘š.”<²F9·€3€#I_€ÌÐâ4Jˆ÷ÐkjrµÓŠû¸!޳³rƲ3Jð•û<²ZѰ!bn%åXH¯µ³÷ éÊ„Û<„b ªŽ¡¯¿X8R´v¬ñfÚÛrž,ùº?ž¼[–:c•l×%$Ý$Í×ÇRï•äxD,XÊvºïÕ<¤^§8—ŽÏ»tlq%j€P&±óþp©`.$ÂeŠëGJ!§¨Ñ_@j²Z~p½X/†¡3¥,Mþn1 +ªD”?9¨Šš :$¬8ŒS,Èh2¹´Bß b"t#¥ £jÚG/Ù­ÆÒXAmu¿·"Æ#ÎÏ…/ r.¨'U(£òáv[WöG˜ Ü|_¯°ßâÏ_ +8ìÛ±DÉ•¢µ" ÅøÑ?ɌɎñ—å%(‘¥ºuYZ¸¥Ú0À¢eÿÒ§I«ðPc‹(îŸ ãV2ˆ‘R¢amRzHÖ-Å\Yuϵ´ßá!¿bíš’\Rß‘S»K =¤)J:‰&ް([0& ¡‹Jo´¹H´r¹äm‹†bJTOX<ë½D^äösŭЙyOÎĚϮ¸‡}‹À• Ó…±(Ûß6RÖ”».ª—äÁÇ ¼Mðž5g±ÑñùJÓ¢îãÖ¶§òì’*•ÿL6ES]&L¯cLbª¿J‚—Gk®Ì‡'ä)ûíÔ£îÆòÍŽNo> OÞ@ؼ hÃluW6nÈèµFŠË[c5 ÂH’Iôú&HéR‰Ð‘Ž­FíyÁÛ¯€Qƒ‹¸¶ø--'4²§ +Ϥ3õ¿urBÔ*‡¬V â¸A9-ÌG£Ó”Ûõ*a*—ôÛ… #5·jÊíbóÊôeÈ«V¨6‚c ¦Ì˜ þF¬ã÷뙤©„s£«qŸO…Ï3{•* Ô‹¯£onI,Oê©Ì׸I7Vá4p¯^«Ž;z$½($S5ýÖýLÁÕGä;gFÊÇ5ßsêvDà!sx)WB‰>åÜmºÖ§½2šëÖ£÷Ó/ÁèiJ7À¦Bdx$"ÇÕä¬Ê’4;ƼHáÚoZtNcÄBŒðª›šA2û.èÅnÓÃQeŒ*š¨ÑÅ¢#òða$D‰«jÇÕiþ+6twý +ݨ!–`-¿ Ư¥Uœ¼‘jq½Í£¥fb×»%P­„ÆZ«’÷„ŸÆƒê7Øh‹ö0)¿{¿½W•§˜>#R½%qÄ¢5ØuSv[a$U‘"A¦lqã¬qd¨ 3kÄ,‘:ûÿy% szfÕÅ~hcħÿŸÃ`ÿ0ù!žóÙøèWÃþωY ¬è~JJÔ&–‰ÀCdÚÖO‚”ñ ¯V6¸Í—²é[œge@E·Ò¾_dúyÐ28&I°Rt¥ŽC# )¿B|˜Š¡ý—AiY.E“‚*Õp-‡‘º°UÆmXýÅ!Õlõ¬íº:kê ÍœK® Ü»He‰¼ß`[´:¢CMDs3­í”ôløË«Ó‘¬áùUX'(;ÙŠvzLß z]ì\°C-uÂÖ¨~fÛO˜‚zk“ætŽÎWšÌÅÍÈ¥ÉÍ ì€ˆ|$ÃDd¿gÍ1oÇ"ÓG–¶ãü6|š#-x„’Ý»¤ YVª? ¹Ðôü·í‘‡?ÏO +mëú9Q€ïªÕU¡µÁ£=)óB±CñO·‘ûYâµ<O=4Ð_ŽKÄ…®®.C ÕïpD0—OØ+ Ô`2!$Mu»”¬£0+Šr:„¡Œ ¾Œ:ZÒ.ç„oïz[g±3([‹Ï;ªPK›35Xý³¬d¨f,•3ÕAÞüTt"vLqåW`PJGkï4˜PgyôÆ}vs¿eP& 9««w?ƒ¢ZnÐT?Ù58™0=œ2(¤W}SäôŒhâV˜^Ü‚E«¼#w(¶W蜶lFãÝ ÃX}–g«" ™K)ìEÄq¯±¤$öc7Ê<*Ò„;ÓahJoO¨]Á8¾HÀE|€ZÃ" ¡0l™:„v©æCgÔQxR°¦ˆÆ76ý¿ñ“#ªO›ƒS¥ºT·TõÌ´E>ÔÝm"‚Õ¹Ì!¸6i£ÿì¼ó_Â'ŸPZ™ÌFÝ+f*_šèøð×=E¿Óã>ŠÇÏœÄGTœHä"‡˼aBú!öP àªÄ¯p¼ š9¦I“aÔ…Ñà çØö²>;ÀáµX*ñY•pÍsçã›ؙʕ²÷q^Ž*T„@tÒ"Ê L;„F· ʬè{©pà ¦,å&„‰ ÅžVÊZY€WµÆ’¶_Gà #AP«›KJ# á#Âû傞¹+;9wfž”áç@ŒáL`ðÜß™*]#U±EH{v†˜õ5ñ–ØEu2ô3Hf]–äïs ÐsV'¸f‰œúÁ%­ák‚à E–ß[GZB`^%<ÚÂàË‹d¥CÚÍS¶”¼ØƒçÊèÃQzIšSCäš]áŽ(냢Gò¾$°)„ÐZdT‹ô¢úΑi¨†Ö9ÓÓôBߢ†Ð±F5K³k)(®LŠJâ „GNm´Áù±‹5mDçÝiH Í4Í'¦­#+Í´ðX fŸ™o—ÚÀ?¥Fº²|Ñ˰&%{Ø>­^‚ËâÊ&ZèÏO‹¹Œöƒ2ç BjØ}ÁV™»ÇNÔå“é2GÄýå¢îÉ´Ò ú(9c:²áî!2!ŠxR30㡯vÅ&«MÆ`2Šôâ $‹™=ga‚G¨%­jä`åZrx# T¿YèÆ1iªüà™‰TñZ²P¥;ºôš6óìxŒÀg„R¤ç­º y1W1t‹(à´ôkôQú`bòV‡æÌšCŸìÞ”6š_}ãê8"³ðgT·æ(ýpΛ Ô^Dì X\FtãX„Ò0>]\NŠÙˆyá­ã’³^ bž&¶/µ¸Q¯ñZ[šdÂl ¡Wî×"`þ&6‰–Jd›äe^êbã€sfFC÷IÆÀ÷¨#!mŸp!Ñ”üá¢Ûg§šÍÁ(ö®0ÄøÎb èÌõ½Méxµ=Û–J²!OàW` YfP×𲩱 ƒ4ÖO5jôàstó!<ðTò<‚Hi”D©1@ +¢¼5ÒaN¶å!ÐD¤œ{óR*T° …ª ‚H€5 .Šù,ÄþüIžá-Ì9F±½ ÅT>Y"Öõ»³šÐ`¤ñPsÿ¸É¥ÛlpúrVä"õT+äv“+ÐHºA×Äìw|r+V²%@A6ÝÒ(% F' + ’p'gWèÁ.O”ý£û"³¤sÆQ*¼ÝÀê`TDìnV!%£\|y‚^à§­ëØÌñÆY0Õ³ X+£ŠB“º†—ÍÆžƒ“³ÈÇÄþñ ½âò´›ZØs>ªKƒ5NŸ]\àTrýãÍ‚éᛊT}¿sq!úÙ¼ D“uëɨʅ^Ìø’»<ÏÁᤠ}D ýªrâ>/ExtGState<>>>/Subtype/Form>>stream +/CS0 CS 0.725 0.725 0.725 SCN +0.106 w 10 M 0 j 0 J []0 d +/Perceptual ri +/GS0 gs +q 1 0 0 1 92.5943 12.5728 cm +0 0 m +-57.189 0 l +-69.799 0 -80.022 10.223 -80.022 22.833 c +-80.022 80.022 l +-80.022 92.632 -69.799 102.854 -57.189 102.854 c +0 102.854 l +12.61 102.854 22.833 92.632 22.833 80.022 c +22.833 22.833 l +22.833 10.223 12.61 0 0 0 c +h +S +Q + +endstream endobj 109 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 107.549 m +40.102 107.549 20.659 88.013 20.659 64 c +20.659 39.987 40.102 20.451 64 20.451 c +87.898 20.451 107.34 39.987 107.34 64 c +107.34 88.013 87.898 107.549 64 107.549 c +64 107.196 m +87.704 107.196 106.988 87.818 106.988 64 c +106.988 40.182 87.704 20.804 64 20.804 c +40.296 20.804 21.012 40.182 21.012 64 c +21.012 87.818 40.296 107.196 64 107.196 c +W n +q +0 g +/Perceptual ri +/GS0 gs +0 -87.0974426 -87.0974426 -0 63.9997368 107.5486832 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 105 0 obj <>stream +H‰ìÒÉMAÈ?i$ÄÄÍf¦«B°ûáà^ƒÖ›ï­øWÖgÜ×zíl}ÍÍ­>†õK·²Þõ`Öw]Ùz΃Zßv-ëm}ÞåÖ žÀúÂK¬·;õ‘³^ídÖwþÚz°Z_úë­ÎjýëO­w:µõ¹?°žèôÖc=OÂúä/¬§ÉXý‰õ,%ë¯?´%f}÷;ëA‚Ö—¿±£iýú+ë)²ÖÇ¿XÏP¶þþÙz„¸õý˜óž@žòüŸ''€<ä ÏÿyÈS@žò'€<ä Ou +È@žò§€:ä Oy¨S@žê'€<Ô) Oy +¨@žê'€:ä  Ny¨S@žêP§€<Ô) Ou +ÈS@ê§€:Ô) Ou¨S@žêP'€:ä) Nu¨S@žêP§€:Ô) Ou +¨@òP§€:Ô) Nu +ÈS@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô}púÿÿÿÿìÒ jÝ@EAgÿ›!Lˆã÷‘Ôš9U+húžO~°¹oLßÇÙP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô}W€v§€:Ô) Nu +¨S@â¾ @›û¾ ìMu +¨S@â@[S@ê÷PؘêP§€:Ä=€¶õhØ•êP§€¸‡À¦P§€¸'À–P§€¸§À†P§€º' Ànž @»Q@ÜÓH`3 +¨{¡ ìä•°Ľ€6¢€¸À6÷rØ„êÞ(@;x'là­$°Ľ€–§€¸·Àâ(@+;",ì$°°ƒ +ÀªŽ +@«:¬ ¬é¸$°¤#À‚Ž @Ë98 ,çð$°–ãPÀRN@+9% ,ä¤$°Š³À"Î @K83,àÔ$p' »;= ÜÜHàή@÷uÍþ¸­ËÐÀ=]€nèÚ$p;W ›¹> ÜÊD¸™ý5psHà&À¼Ùý50nzþ_¦6=þoÓ_›žþéGDMÏþÙô/Ц7ÿÛô?r¦ÿ‡é—¤Lý…é·dLýµéÏ4L¯üÓßÙßô˜~ÑÖ¦Ç}Ìô—ö5½ì¦_µ¥éQŸ4ý®ÝLïù’é§mdzÊ×Mn Ó#¾iú}«›ÞïÓ_\ÖôpGšþåz¦;ÅôS—1=Ô¹¦¿{sÓó\fúÑ74=ɘéÇ›~?PðÿÿÿÿpH~ +endstream endobj 84 0 obj [/Indexed 41 0 R 1 116 0 R] endobj 115 0 obj <>/Filter/FlateDecode/Height 502/Intent/Perceptual/Length 10070/Name/X/Subtype/Image/Type/XObject/Width 514>>stream +H‰ì—‰BI„guðh¹Pi¹¡¹Äñ]uuvvöý_gÿ3óϣئ¯jº2Þ 2¾Šˆÿ·ßŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠÆ¥4Pu¿yýªÛ‰RÝfŒWu¿ö«nkF®ºøv¨n—F¥ü×Þ)jÅù4½\ïýݦëzê6opUšŸ¼ÄïÒµ$Ly÷{4}fºÔ#y +ê6²?åìO­¯Û˜ú•‚¥ n;o¬ÔþÐ|ÿ÷š­„„‚[Ê@•ýÖ|}û×êÁ4èÚ/ŒPÈPpûÈÛïÍœßêa3”åÃcpË!ˆýí÷ÞG–?jž" B <·ŒÈg¿uß[/Oñ8Ò“éUü©ÇPà ¸E d~c¿¸ï¬Ü~Ú<T(BÀÁÄ3Pí?ÛÏî«÷ÎöY§¹æÈ}³‡A8 ˜AÈ@Ý^g•øŸÚÏæ‹õÞóy§V3ä?Øóà8` +"nIý;ÿÉ~úùÕ}±ÞYþÌi¡òì€`¡€ ¸- $ûÏüþÎ~úõÉ|¶ÞY¾(ZjŒô‹ ‚` Xr ÔíºQ•ÿòû«ýâ>y/Æãs,³Vš%ùjåAhµ  +A“È@µÿ±ýì>yÏÎãS´I«Ö¦SáGò‡ bÐ +Ä€æÀD!`ÈûOö{÷Ñ{vÞ™½.zÞ éç:,ˆâÀQ@„AtÁä0ú7ôŸ~úûÁ~ï>zϾӃ¼ ½l–ø£•1 +‚§>,¶ +&Ãÿ ¬ÿðû;ûÉ}6Ÿ¼×7PÕ«é—ûVúr¡AÀ@ +¨‚<“€@þCúCø£ýðï“ûôדóâø&i«QâoÞ"ˆÅ)ðp@~LF Äp8ÿ±ýñ÷‡ðûá×góÑzq}µ£Ú~¹o¥/gÁ(€F `P8&,*ÀúO¿?†?ÿüè>›O΋ã{¤ýF‰¿yOˆ¢²€!€M°@‹€€.ðU0¤ û_ýÇö_æ¿~ø÷Á}4Ÿ¬g×P‡ªîôË}+}9Ó@ BC€›`IÊ ` ºÐPÿŸ²ÿ‹ì¿Ø??»ÏÞ³ïø$G¤ãF‰¿ùHˆ˜È†` 0 à&4UPo $ à +ï?ñYýûÙ}4Ÿ¬gÛOP§NgS.ÿ¥§ôåL0ªÏ@‹À9 ‹b 6r €@@úyYâüûáß÷Ñ{r^ Í:oŽä‹ ÁP  Ð]ÀUÆ@ ¤hè€üo·ýàÿýüì>zÏÆãk¼!ýëít)ù>þlÁA@ € Ç@5xpðTÿWÚæ÷Wûûè=ÛÎïóÎéý´Ëª#ƒH 8 ª‚ e@Ö@]ø 5ú?§þ¯®þ‹ýà>›OÖ«ãTÍû^%‚@ €Œ… b ˆj‚h Ô€4€ï?ñŸíï¢ýðïƒûh>Y¯ž_Š>6Fúŗ€@` p„1`š`¼$PÈäpþ»ß_ì‡ÝGóÙyzO¢Ï‘~ñ'Å@ 0 +8 f€öUAÐu P€ ,øÿ[ÿÙ~uŸ¼Wׯœ¾4Cî{‚P€QÀXpbp O¤ Æ@€ó-º `øügûÏÙ~uŸ¬÷žôÏéTü™A(P"xD1îÁq N]P°ÿŒÿþh¿ºÏÞ[·¿5M– +ÁQQðŽ7ÁÙ)3{€«@Ö@0Ɖ€@®@>¹xPà°þ«ýì>›ï|ÿžèÇt*ùNÏ‚b0´ 8Ø„TØÁ™ +ð€€€ úßøïìWóóþþÕETHB A `pH è]8vrðÈß+mP°ÿ¬ÿþb?¹ï¬woò³i +i` $ ÇUÄ5Ç4bFJ@Ø.¸Œÿðû‹ýä¾zïžãW° qÀ`p0¸ »‡û{»ØÁ•@@€ ÀøÝoìwæ»Çø³‰ +Q`  f@&!Ç@gƒ›Æ@‚ÀQ"ÐGÇ'P±ÿh?ÿûÎ|óÿnšb„Ê€ƒÀ3U 1€G4Á5Œj +g€€6 O¸wvqp8ÿ!þá÷ûÕý¼ï5@,x + WÌ€T®jcE 6·¨0°üÿ/þ“ýê~“<¿V–¡@ À2à*ÀÚ€Æ#ÐòÌŒ€™Ú€0°hPÐü—ø§ðÜ·ÏðŸ&*å@(ˆà*€À5@Mc D€ÂQ"ðÿ€ €À€þÿòû«ý6>•¥€!À ˆ5@Mcö œ® :†ßј6 Ln ï?Ç?ÿþÞþøþnšòÈÝÒ0"¨îl +D+ðþ €¯`uŽØ€0°àp ÿhƒ}Ï)¢€!p à&ä€5€M7Œ< Or ™E€ÐöÀÀà  ð?°¿îwŸ0ÅH`pÈQ@7A%#šÙ3`vnþÙ‚` ðúߣûÿNõHAÀ€«ŒnÞƒæ ðS`È# À € `Àø_aݾԪ<ŽW¾ h ÀTà"X\hÍÏ 7Lø87ßZXZ–Èœ IXÿ‹õ9å!ð h ðM`脌f +$ gÀÂ"°þÂ&¾$ŒÿÅþkt>7!+Ë‹ÏZzÜ "và +DV€]I@N€ +ÿë~ì‰U1àb@š Fàås@`‰Mä:@ï@ ³¹@âݯ<Ù +øË3ÀGÁWBà#ÐUÖÚ+áj„‡ Ž\«ëÏ_†\Fø(þ÷®˜¨ è$ö8h +=0\ü®À#€Ïà4Ni€â_ÊVk‚-¹ y ¿ÒЀwà&¬Àƒîñiœaÿo¬\ Äœ[t †=0‚hFÀòЬ@à—ßj€âß +pcÀ!€GáÙÉ °½Õy‰èN$3ÐŽÀ¹àÛ €ºô*‰‹À¥"à× Lt 7x,Ûp¼×  è ø?€L dxûÆ#ÀS`è=`#à@w€ëÀÛ÷—Ÿ>»( K•àQø§ÀÒ"õ@2# ¸ñà°#ÀðÝ'€o€ºŸñ6+—Þ9ª{` °— Ÿ¾Ìðéó•^€¡*ÙƒñЈÆàà0£3;Àޏ #SE +|¹òÁá¾ë¸fµŠè: X1ÅÿaÉŽÀW@€Ö N …!†€?ü%ˆ3; pF§Ÿˆ2ôˆÆ A"àNnrèà;ðç¯_€‘(E@¦À…NH<¼Ðˆ"€/ÁŽºâðóg`T²¸5ÈS@{ÀÁa…@61ðØu`G@`TÊ!À=€ð=àB`žBàÁ€K ]z Ò ä;@;À€À¨ô#`OB;‡ùX^¡¸M3;à‚; u¿ØÔ)žqà C˜à ŒNAހŕ6]‚8ý뀺ßk +!à{ÀŒÁ\ôYwÃÐ^ÕKPf é€Àˆ•N¾t Æ!ð #(Õ5‰®‚P÷[M©{B\"Õ!Ðï v DÀ¯€0Â(ŒP‡P|‘1…À„À@[0Þ´¶£(ŒMI|ƒà1‡ÀìÓÇ&ú%@OÁG°çá\Y]"€f ᝒ ‡@:¯ ~jÀ ;pOÁöÚóà(0vù¨N}oÁ¨øÄxÑÙÜŽ"ÀÌÀÀèez <öw·_A ­p öG€/:1^¾ÚÚ1`/A逺_hÚ•ƒç{;›C¨¨ÂxÐ=ŽV@‰€1ʆÀ/ <Þ@îïn½ÚF T”Ÿ‚‡G'™P"`\ŠB€–ÀålÁ³“îÁÞöfG·à5”ÀCS´»p +R|N# î×i‚ÌtK€¶àëÓ£Ã}Þ‚HÀ|R•ïÀ ÜG°1>•¨GI|¹âƒðŒBØ‚¦ôUI Ì#°;~^ò,0~¥!põYBÚ‚ƒ×@Õ%€;pßïÀ5) ïtòÜÙz5Шr—•@GJ@w ž‚%Ƭ(h VÕpwì% % ;P# 0^y»‡TBÏ€G8‚K )ÀØ%Ä[Pj@¯9W7' ¸çs p àüQv`=ÊÔÀÇ SÏ¥ž<~ä†@?„· –Àž++S¼ë~•FÉnASt lS s2fn6’ · –Àáñi) P¾à8:Üè7" ž/ð<èžœçK î7i–ª®Óãîþ®»û€`g€Ü‚¯e”¨Uù8?; ïÁ¾†€‚ùPJ`”Ô€¹ý˜}jèµâÀÈ èV΀º_¤qŠjÀ ýxÜp +¦CðÙ‚ŸÇf”¨SŽ€?£!€àÈNÁ^ÈÁõ<ÎþÇ~}è´„Q– !\ „^pÃÆ`L =6-(ïÿ<™Ù¾‹ƒ 8‹{Î#¬>íÜ?3}®¿‡^ž€ð‡@§½×ô‡€™‚ó_>ϼf +fä Ñ´3À Aï¸âp/à13ü)XJLÁÉ—NAOÀxx +¤†`µÞL Á{8,5¬ó xS°^Ù¶SpáÉ\@p +Lħ€7=íŽyŒ€nï†à´Ì †€‚V€‚F@ј|™€ôœÊÑ줆 3ÀYñ¸»{27ÖVâcà“w ¼N€‚E;C}‡ ¿7ù?h +^š!päMÁj¹ß106 Œ€|æØ?8<9µ‚ÎK>½p +&+ 04þ)ÐòCn{2ƒc Q«ô9>Sücp.>[Á1蟡×ßB³¬3†$Àü.Âcp:_œÉƒ‰SàῇEîí1påMÁÄ9¸˜z‹€à\´Ç`¹ê¡€[¸.˜‚FÀ]ßsÐ | „Àsì1èϸ,%  ÎA_@1)`lñ ð<K ƒ#SVÀÅYZ€FÆ_(`"`N¥•õÍ­rmgw¯}xüã£Q ÀNA+ÀG¶/`sm%%àã+˜c0°º^ÚªÔ»{‡Ç§I¸)q „ŽÛ{ÍjÙ +Xúö0B%ÏÁ„€ÝZyks=:ðapÛïh<' ÷Ó¹ÂL½›Ûø@€›’nº?ÿ£€KŒD‘€‡gÞ"`Ê +˜Í81®€;¸.p{Ó{*`Á˜)ä¦ß" _ô,ÇŽ<ÝÞ-œ—pyn$ÌŠ€¹o‹Ë«¥íJ½ÑÚï2®/ÏOO¬€F­²UZ_µf‡%`mãûvµÞlµ€3ŒHý쇖ðÞû‹€V£^Ù.m àý‡õ ÔC€zPê!@=¨‡õ ÔC€zPê!@=¨‡õ ÔC€zPê!@=¨‡õ ÔC€zPê!@=¨‡õ ÔC€zPê!@=¨‡õ ÔC€zPê!@=¨‡õ ÔC€zPê!@=¨‡õ ÔC€zPê!@=¨‡õ ÔC€zPê!@=¨‡õ ÔC€zPê!@=¨‡õ ÔC€zPê!@=¨‡õ ÔC€zPê!@=¨‡õ ÔC€zPê!@=¨‡õ ÔC€zPê!@=¨‡õ Þ°üÿÿÿÿì—‡Z"I…guÌGG‡ QrN&Œˆ ²ïÿ:[¹«ª›QèÜïÞótýÜóŸ?´üC²²²úóçÚúÆæöÎîþÁÑÉéŸÈy"}‘/VjÍv÷êöîþñ¹?xŽÞÞÞ?>Æ$ÿb–úé?>ÞßF£áà¥ÿôxß»¹ê¶µr1w‘JÄ"g¿öB;[›ëk?WWWVÈëþø$HÀÿ(Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô Ѓ@=Hô,’€X"u‘+–k $àÅ‹€N«Q-r™T<8ŽŸ9´ºW7=$à{ă€ËN«. BÀž žÊä +åj£ÕA¾M,î{×—f½Z*d3Éx”pè—€' ¬pIxxê¿ KCÀ+#àîÖ$àôä×á¾/¶(‡nî($`ÙQ ÏØ mû `;´·ïMÀóËàu4B–“€ÇÅ0D–FÀ;' ?‘€™XEþá'€ð¢P)å³iƒÀ,¬kDãÉL¶PªÖ ×:ïHÀòâE@[pý# Øœr8¿NNÃÑód:›/UêMBÀ­AÀ°¬ Ð è¶›µJ1‘NXüü*?,vÚ]€7$`‰Q"È ¸ïÝ\uÛ I@Ä&`e +„ +N$àþñ¹O !ËÌgü>>:ðKÀÎîþ' ‘¾È+5F@ð‚,;j + /ý§F@«Q+s©DŒ°' %ðeø ì1"ç‰ÔE®X®5ÚÝ«BÀ“$à XV4TtZj¹Ë¤â±È# ´³55ÿ˜ÿþ‰IZIÀ@€,)ÏOw=2[uI@8¶g”€L®P® +(8–€>%à–P*d3Éx4|FEp/´-X™€' ‹SJÕz çàw‰Iƒ—íf½RÊgÓÉóhø4 ö~œ…£ñd&K h¶b Ë €LJ›„€n»Y“ˆ1H ¬}y +è¬oª9Öæ AHÀ2" "胜€Fƒ_:JÀšF€3å`sp8 ‹-‚b V½Çà´¬¬þ”c`ÿðèXŸƒ­.ªà·?Ú¸5¦€ƒ»b +ø @ޏ.ÄXBt P"ØijSà÷¯YÆà_ÇWÁŽ— ‹ŽÒ€ÑpÀD°gŠ =|@EàÌVA!#eÅзjS`“MÕ/NŽ€CÀd´DXlƶÞ:ºž Ø×Ep:„lQ<`*ã*HE€`аðxk@‹j€)‚SOOTˆ@ EàÄ]Lê\¸Î$‚U0W"нºÅXnÆÞ`‹à—øDÊR°–«žD  (H 89:¤°µ1­j¬­o28tD ÀDÀªD`ѱNÙ‚”RD²TÂ>4ÀTAG±x2“-h{k`iq-^MZDΉœÌ¬^"@k =O{PÕ€tAD`QQ¸K€lA¢®»–ÌF€ȹ³e ¼ð,<¶òè4­-8«h˜8{PÖ=ªÞˆÀb26<Ð)²œ-H5 ¤iÀ4Ø"@kàøäŒÕ@–Õ@‹ÖÀ©tÁeÄ9£!ó@£RªfÕ€Oj€¬:¯{Z† "‹ˆë<’pM<°^K@–Õ€uÈ=(k@­ÃÑ™±~^_˜Òh5è¸àKÀµg!À¨£_¬t ”kº ª#€,&Ö Ð=°\¦&×@,‘Êä +¥ª<Î ÄXPÌ0P' Ýd˜Iš%à›Q{¬ÂѸî‚x–‘I'@x`:AJ€œc ÌJ€¬-¶Ll’ÐŽÊà¢" '`(NŸ‚šòP'`ê-8¡Ì—Èh[GàMD`žq:Àuje—θì .Èkà”»`®(¡k`Ì9cý¼jC€Ÿ€\&•ˆÙ8ýpÐk@º`<5ñ`Ì=N@\œ_huÓÕhª#Ðyê2ˆÌ+®x~T' ÊO€˜‚Êý0ùи½#2Ø·{˜OÆö x&' çœ€,91v<°%ÈN@UX;l +*œ­\.h‚:D=z:c%zP ì¶5r²ôDé SPzàìXGà@$9Å2?Rí@‚ÍØ%†–‹95´0³:G`Õó¤È =@Ž€ìþàU`ŽOè¡•Ržž€X$¸`ºàúÆ–aÉôE^Éà­ê¼óŠ Àë /:@-Á‹4é5ì0 ŽA€Mõ=€Ì%ì<@NÑ@cø™‚^G@ÎÞI*ƒ%vHh*€Ì!&Jä¨É%ÈOÀAP'@sAuöŽ T=ÀT@ D Ðx $€Ÿ€ÓÀ O€qÖÔP2èô€˜„Ä9Ä*z¤8ülr<ŽÀήX„a&ƒl6(ƒ2à/êý]P puY‚{!r6‚8®#°µ#¡èµ¸ +pt]DÀO¼xyæèH€Ót †Tø<^G@“AÖRl¸bøj¬ —à6`w€¿à>Ly=’= lP 7ÈÀlk +`@-P—Õ†ú>Úp!ë±@‚ÏøsTœË°4Ð7z@ìx*Íz@ 7È€ŒÍx ™ôŸ%.  ;€i`p'@àîKL^ Ódl0âÐ@¸1pv€Ù~-À}TPˆx"@uœ!2à#æû‹PÜI 8apxÙŽ +ðA xê÷'!€ |%úû{ /€fŽ~LìŠIèØ …€&ÈÀ”{¾?w@O”:à 0Žß[;º +ÈA èI¬3à0€LŽÇûKàÜI ä ´$€ˆz!À{€«·A–€ë h Ñ>|yX0B ¢#Ðhµ»—×Òù Uð7`Âàý >¼Þß9Ä5Unæp~¸{@Ú ß„¢†€vxH“(€óùµ÷W\_]vÚÍF­bÀf·Àyt€I€¦lØÔl\KTð.0 @ TÔyw½?;|2hÖY€ÜÌí޳< ‹ _,WjRÔU ‡À¡4 ÆWxמ_{³(%6ÜC0@¼mnBl¾È'iy8ôð2Ð 0)ñAœçw¿?kꀕR!ŸÍðàÀ<:à EO¦3Ù<÷AÒÎ ¨CÀ Áù +ìõéóÛï/¸¤ @°TÈe3)>€"@ °á…@*“å2ÀšàÒ©‡ §@çpÄ·iÏ/ßß:TÈ +̤^ÌÉmV'!‹'R*´ È&èˆQ @b“ýÇäë“ççëýÅ +JœÇ"Ÿ<®A #przŽÄØ$àM@6A‹›£@``‘*ê Õë³ç'þ¯îÿì—ínED½&Æì¬c‡`Å! VH@K „PPïÿHܪºý5Ó³âGvgwºë nŸÓu»¹Rà ®¯.kl¯Ü€âCXCk(€Ç6j [æ—A€HƒL„ãgð¯è~]ÿÀ_p Ÿ +páßÀ PQ } +MË+| ð°MÀðU@ì=À" n{Dh3:‚2úÀoõï÷ß +l}Fœl]€ +œ=Z_<‰ÛVöÀ‹ÐˆE@ ÜiDh1~8 v¯ýÿ{Xö`hØàòñÅú|R€m°Aó5Þƒ| ¤Ð**I  =H*4ìô¿ê?ð·`/+n¾/Í ÀFô´MÀ°×€} +Þ¾û98àE ‚ò€"d24’0õGžÁߤŸãgýß;,7€¿K¶û ø +à1`›@5à«À{@E% Ѐ¸ e>./•)5þÂ}àÇõgýÿêümØÀ^*l€üw-€)ð9ïAnÕ€} +ð1¤¡‚f»€P„ɆF†Æ {ƒOúºý†?ç`_{ °Ò`ü Ø® +ä›Àþ¬¬<’’€o‚¨Dp‹Ç|ÝývÿµPþ˜Q€R8²M °OWAæ@@ (‚Tç¯å¤:GÇÅwø /üéú‹?€}¼²'À©o€ +PU€ð-ÄkÀ>æÀs:ð:I`ë Z`P©PäÏ%f8$G{ƒïô…ÌÿÙ·Æ?ÖØ…#ôÌkŸ‚§zdx° +¤y@äÂ(,'Õù8ùodø¢ÛOü‘ÿ-ù?%ÿ¬²7àŽ¨)m‚³s¯Ò(«]àЗ¡©hlÀ=à‹¾ãO×ÿV÷ à2ñO€ð ØÝ +˜V þ ¼‚7© ­X@ ̈î݆fâ3¿'zcø¤ïøÇü‡ 7à<DŽk›`Ê ,p ̈@<ï—Ÿ4ì/$ö€ïôþIþeÌ$@Mm‚° +D hº€˜4A2´xçðAßÊ?Ã?âŸÀ¼Tˆ5à« s@E lÈhLªÀüÔJÂÀþG°|ÐGù¿_ÿŒü„(6ÀÎÈÇP ÖVA逊À%àq`ÂÉ0ÌÛå¤2Ç~ƒ¸‹ðyù¿_çÀDÌ À@T¾ +2X.A´à¥<0¨ÂëÐF|à; ÿìô­ü~^ÿÄTs 0T û$ø@¸Ñ‚[zÌ„W’a˜–“Êtûà{Á}í~o\ÿØÿÿÞ@Írȼ Q’€oX`È*0/[Iý±ÇÝ'}Ý~¿þuþ{#Àt xØ{À—%à›]@ ̈`&<— üXN*Óql7ôÆÍú~Õà©öA€¨À°J‚|¸¦y¨ÂëÐF|àNÿ ìþÕ7¶û~þÿ2þaìKO8ÀeÀ׫€˜&Ð…,ß-5嘜Gpà‹>ð³ýyýSÿ `Õ@îÀC9 ø.\« ܈®Ý††âS_½±7ø‰¾ð%ü›øï…¥^t /‚$»Àˆ@”«6çåôOÈÞà;ý€¿Î?_û"ÀÑØÏJ¢n4€Á]ˆ¹\rŠI5<Ñ>ï¾ÓÏð‡÷_ä¿g ¬êp$ ‚¦{Ö.Ã(—“ê|§ ›oð>/¿ã×ïù#ÓdÈ×@„s—¡¹øìgb/ø¢ðoà¿wXªä@‰ *9_Nêjz {Àý!þÃàL:à¸ÐPW!æë¥§WGàìßéðÿ£L90” X5Ê—m% þE`ø~ÀŸ®ÿ!ðGjD ¢Ô€DŸÁÃ?ÐOø‹?3p I,ò —¡­Äéu„OúÓøÿQÞ…™Ò ˆp:ô¡“ûiœ è;þƒãÏLI \ƒ(BÌiŽ}’±ôÇø‰?²KPZ‰p2eÄB3šûA ?Ð?`üJM‚`A.„‹Î`øéXŽ+ø“?³ªZiPs¡”ÇΧ Àø™ÕjÂ‚Š ­¦8“ÁÍÍïÓd5ÌñDæF±£L?:§¹Á}ÊŒ†Û$Bs©ÎÜĶ’ªmú°ù(æµÝlž½ùÌgg™û ÷0s#™-süÌ™ûø{zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzZÈÿÿÿÿ¶Õö +endstream endobj 41 0 obj [/ICCBased 117 0 R] endobj 116 0 obj <>stream +ÿÿÿ +endstream endobj 117 0 obj <>stream +H‰œ–yTSwÇoÉž•°Ãc [€°5la‘QIBHØADED„ª•2ÖmtFOE.®c­Ö}êÒõ0êè8´׎8GNg¦Óïï÷9÷wïïÝß½÷ó '¥ªµÕ0 Ö ÏJŒÅb¤  + 2y­.-;!à’ÆK°ZÜ ü‹ž^i½"LÊÀ0ðÿ‰-×é @8(”µrœ;q®ª7èLöœy¥•&†Qëñq¶4±jž½ç|æ9ÚÄ +V³)gB£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚óÈtÕ;\ú” Ó¥$ÕºF½ZUnÀÜå˜(4TŒ%)ë«”ƒ0C&¯”阤Z£“i˜¿óœ8¦Úbx‘ƒE¡ÁÁBÑ;…ú¯›¿P¦ÞÎӓ̹žAü om?çW= +€x¯Íú·¶Ò-Œ¯Àòæ[›Ëû0ñ¾¾øÎ}ø¦y)7ta¾¾õõõ>j¥ÜÇTÐ7úŸ¿@ï¼ÏÇtÜ›ò`qÊ2™±Ê€™ê&¯®ª6ê±ZL®Ä„?â_øóyxg)Ë”z¥ÈçL­UáíÖ*ÔuµSkÿSeØO4?׸¸c¯¯Ø°.òò· åÒR´ ßÞô-•’2ð5ßáÞüÜÏ ú÷Sá>Ó£V­š‹“då`r£¾n~ÏôY &à+`œ;ÂA4ˆÉ 䀰ÈA9Ð=¨- t°lÃ`;»Á~pŒƒÁ ðGp| ®[`Lƒ‡`<¯ "A ˆ YA+äùCb(ЇR¡,¨*T2B-Ð +¨ꇆ¡Ðnè÷ÐQètº}MA ï —0Óal»Á¾°ŽSàx ¬‚kà&¸^Á£ð>ø0|>_ƒ'á‡ð,ÂG!"F$H:Rˆ”!z¤éF‘Qd?r 9‹\A&‘GÈ ”ˆrQ ¢áhš‹ÊÑ´íE‡Ñ]èaô4zBgÐ×Á–àE#H ‹*B=¡‹0HØIøˆp†p0MxJ$ùD1„˜D, V›‰½Ä­ÄÄãÄKÄ»ÄY‰dEò"EÒI2’ÔEÚBÚGúŒt™4MzN¦‘Èþär!YKî ’÷?%_&ß#¿¢°(®”0J:EAi¤ôQÆ(Ç()Ó”WT6U@ æP+¨íÔ!ê~êêmêæD ¥eÒÔ´å´!ÚïhŸÓ¦h/èº']B/¢éëèÒÓ¿¢?a0nŒhF!ÃÀXÇØÍ8ÅøšñÜŒkæc&5S˜µ™˜6»lö˜Iaº2c˜K™MÌAæ!æEæ#…寒°d¬VÖë(ëk–Íe‹Øél »—½‡}Ž}ŸCâ¸qâ9 +N'çÎ)Î].ÂuæJ¸rî +î÷ wšGä xR^¯‡÷[ÞoÆœchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â­*­6X[ݱF­=­3­ë­·YŸ±~dó ·‘ÛtÛ´¹i ÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö +n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=GTB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%—®K7YV³©fFŸ¢ßY Õ.©=bàá?SŒîƕƩºÈº‘ºçõyõ‡Ø Ú† žkï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹­³mzyâò]íÔöÊö?uøuôw|¿"űN»ÎåwW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝ­èþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_pß¶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMśΠnßLÝlÜ<9”úO¤[þ˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ +¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäü儿 æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿÿÿÿÿ÷„óû +endstream endobj 112 0 obj <> endobj 114 0 obj <> endobj 118 0 obj <> endobj 119 0 obj <> endobj 113 0 obj <> endobj 120 0 obj <> endobj 121 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +0 -87.0974426 -87.0974426 -0 63.9997368 107.5486832 cm +BX /Sh0 sh EX Q + +endstream endobj 122 0 obj <> endobj 123 0 obj <> endobj 124 0 obj <> endobj 125 0 obj <> endobj 42 0 obj <> endobj 111 0 obj <> endobj 91 0 obj <> endobj 126 0 obj <> endobj 127 0 obj <> endobj 29 0 obj <> endobj 30 0 obj <> endobj 31 0 obj <> endobj 32 0 obj <> endobj 33 0 obj <> endobj 34 0 obj <> endobj 35 0 obj <> endobj 36 0 obj <> endobj 142 0 obj [/View/Design] endobj 143 0 obj <>>> endobj 140 0 obj [/View/Design] endobj 141 0 obj <>>> endobj 138 0 obj [/View/Design] endobj 139 0 obj <>>> endobj 136 0 obj [/View/Design] endobj 137 0 obj <>>> endobj 134 0 obj [/View/Design] endobj 135 0 obj <>>> endobj 132 0 obj [/View/Design] endobj 133 0 obj <>>> endobj 130 0 obj [/View/Design] endobj 131 0 obj <>>> endobj 128 0 obj [/View/Design] endobj 129 0 obj <>>> endobj 88 0 obj <> endobj 89 0 obj <> endobj 90 0 obj <> endobj 110 0 obj [/ICCBased 117 0 R] endobj 82 0 obj <>stream +H‰œWÉn7½÷WðÄáV\®–#@ŒÄP€ø „(•ENþ?¯Šd79ÊH‚뱋µW‘súñV>Ýõîý­Ú>|¿SÛ²mëïÍ(ë²üÝð¿§ûíõöO?Ý?ïÿúçß_«zú};}¼3ê·¯`ÿù‡ÓwF½ÿsûü¿lvb³×ÙÜÄæ3:í2ÌÑ&²Q^{*X³iï<Ÿ¾ÚÙKINe򱀯+›|Ž¥‰v†œ:?n§ï‡'¬Û“†”µX]R›s:•cÃ:Me iÇ| ,`:o+®w©;îB‡ì…©£ó¶âºu¡;¾°aXxap—ÓÖºoƇ౮Œž·‹º=\-œÐR}cÓ™‚wÁ_£¢×ÈT1&‘6:ÉÑ»/êt÷`Ô×õá‹j™z{ÑÒTfþz5Ɖ-LÕh4©¸˜ +FÆ2>ÊzÞU·œtɱ!kÒq°0"#ƒ¬ì‡ú²n„HodÝa¢dV(Ò]Ð6åny£3邞 +N›àpØëš¡º¡á˜), ’ÑE ØýØAÝ+ñ^u)l@”@ Ñ"%$|iæ4Ø-í§ίVVNíoÔQ6Ä¥ AÙ—é¨#ûu”¦¡ëu”'¶x­LlémlyªÊÐÇNJÄÜX^ŠwOaƒ’._ƹ¼6PwÐOÏup½†f©Ã€Eýë™ÍAGB}X+ý&d‚O>á, +-—`1oÎ6»h¦iá¾1Ëv¾ãÊ wÜrɽtÎלµk/:´×ýÒ׳HK¦{½;§,Ò›²–,³dîPJšóRHG—Œè@¯€-Fä3£b £Rl;:áºQŽª$Üæ˜g0ÀxFä%3;]·ÈŠ2ãˆË(f 0$$ÃcàзâÊØâÉЭrp¡[>¸%GXwè´EŠ=R´bh§ÄÐNÃPÌh²0‰€%„Ðea.«£å›„fÍÚqbzQ#«S/Úg"í਎C_DŽöï(fñÉã$ßa>ÊÇ\A@+®âì´O´£áЊëÀèD +ÂMp§`Ó r!²‹ÙR;;a¼l, V9ÂwÉr(0‚dÜpv‘ôºñòäXp8ô%¶5> endobj 93 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 20.434 m +40.092 20.434 20.642 39.978 20.642 64 c +20.642 88.022 40.092 107.566 64 107.566 c +87.907 107.566 107.357 88.022 107.357 64 c +107.357 39.978 87.907 20.434 64 20.434 c +64 109.038 m +39.284 109.038 19.177 88.834 19.177 64 c +19.177 39.166 39.284 18.962 64 18.962 c +88.716 18.962 108.823 39.166 108.823 64 c +108.823 88.834 88.716 109.038 64 109.038 c +W n +q +0 g +/Perceptual ri +/GS0 gs +45.7043571 0 0 -45.7043953 64.1565933 60.7857552 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 94 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 20.434 m +40.092 20.434 20.642 39.978 20.642 64 c +20.642 88.022 40.092 107.566 64 107.566 c +87.907 107.566 107.357 88.022 107.357 64 c +107.357 39.978 87.907 20.434 64 20.434 c +64 109.038 m +39.284 109.038 19.177 88.834 19.177 64 c +19.177 39.166 39.284 18.962 64 18.962 c +88.716 18.962 108.823 39.166 108.823 64 c +108.823 88.834 88.716 109.038 64 109.038 c +W n +q +0 g +/Perceptual ri +/GS0 gs +0 -58.6434212 -58.6434212 -0 63.9998055 76.269043 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 95 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +84.937 98.025 m +84.945 97.989 84.951 97.953 84.959 97.917 c +85.094 97.888 85.099 97.919 84.937 98.025 c +73.146 72.454 m +72.595 62.609 l +79.097 55.526 l +72.595 48.443 l +76.893 43.761 l +72.595 39.079 l +73.146 29.315 l +54.853 29.315 l +54.853 72.454 l +47.58 76.176 42.621 84.219 42.621 93.463 c +42.621 95.01 42.838 96.44 43.056 97.985 c +43.845 98.133 56.605 103.481 y +56.499 102.903 71.501 102.903 71.395 103.481 c +83.722 98.177 84.959 97.917 v +85.272 96.398 85.378 94.987 85.378 93.463 c +85.378 84.219 80.309 76.176 73.146 72.454 c +43.062 98.025 m +43.06 98.012 43.058 97.998 43.056 97.985 c +43.005 97.975 43.004 97.987 43.062 98.025 c +W n +q +0 g +/Perceptual ri +/GS0 gs +23.1531162 0 0 -38.4417267 63.9400253 81.7712097 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 96 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.058 0.058 0.052 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 58.6104 96.2867 cm +0 0 m +1.997 0.363 4.084 0.545 6.081 0.545 c +8.169 0.636 10.166 0.363 12.163 0 c +12.253 -0.454 12.344 -0.908 12.344 -1.362 c +12.344 -4.812 9.53 -7.626 6.081 -7.626 c +2.632 -7.626 -0.182 -4.812 -0.182 -1.362 c +-0.182 -0.908 -0.091 -0.454 0 0 c +3.631 -52.836 -2.541 25.147 re +-15.956 -58.309 m +-23.026 -52.161 -27.502 -43.097 -27.502 -32.955 c +-27.502 -21.153 -21.33 -10.259 -11.164 -4.176 c +-11.346 -5.356 -11.527 -6.446 -11.527 -7.626 c +-11.527 -14.616 -7.443 -20.699 -1.452 -23.513 c +-1.452 -55.378 l +6.081 -62.913 l +13.615 -55.378 l +13.161 -48.751 l +16.701 -45.21 l +13.161 -41.67 l +18.516 -36.314 l +13.161 -30.957 l +13.615 -23.513 l +19.514 -20.699 23.69 -14.616 23.69 -7.626 c +23.69 -6.446 23.599 -5.356 23.327 -4.176 c +27.015 -6.403 30.178 -9.277 32.714 -12.603 c +26.582 -4.182 16.621 1.296 5.373 1.296 c +-13.263 1.296 -28.371 -13.739 -28.371 -32.287 c +-28.371 -42.782 -23.533 -52.151 -15.956 -58.309 c +f +Q + +endstream endobj 97 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 CS 0.058 0.058 0.052 SCN +0.035 w 10 M 0 j 0 J []0 d +/Perceptual ri +/GS0 gs +q 1 0 0 1 63.9999 20.4342 cm +0 0 m +-23.908 0 -43.358 19.544 -43.358 43.566 c +-43.358 67.588 -23.908 87.131 0 87.131 c +23.908 87.131 43.358 67.588 43.358 43.566 c +43.358 19.544 23.908 0 0 0 c +h +0 88.604 m +-24.716 88.604 -44.823 68.4 -44.823 43.566 c +-44.823 18.732 -24.716 -1.472 0 -1.472 c +24.716 -1.472 44.823 18.732 44.823 43.566 c +44.823 68.4 24.716 88.604 0 88.604 c +h +S +Q + +endstream endobj 98 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 CS 0.725 0.725 0.725 SCN +0.106 w 10 M 0 j 0 J []0 d +/Perceptual ri +/GS0 gs +q 1 0 0 1 92.5943 12.5728 cm +0 0 m +-57.189 0 l +-69.799 0 -80.021 10.223 -80.021 22.833 c +-80.021 80.022 l +-80.021 92.632 -69.799 102.854 -57.189 102.854 c +0 102.854 l +12.61 102.854 22.833 92.632 22.833 80.022 c +22.833 22.833 l +22.833 10.223 12.61 0 0 0 c +h +S +Q + +endstream endobj 99 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 107.549 m +40.102 107.549 20.659 88.013 20.659 64 c +20.659 39.987 40.102 20.451 64 20.451 c +87.898 20.451 107.341 39.987 107.341 64 c +107.341 88.013 87.898 107.549 64 107.549 c +64 107.196 m +87.704 107.196 106.988 87.818 106.988 64 c +106.988 40.182 87.704 20.804 64 20.804 c +40.296 20.804 21.012 40.182 21.012 64 c +21.012 87.818 40.296 107.196 64 107.196 c +W n +q +0 g +/Perceptual ri +/GS0 gs +0 -87.0974426 -87.0974426 -0 63.9998055 107.5486679 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 100 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 107.483 m +40.023 107.483 20.517 87.977 20.517 64 c +20.517 40.023 40.023 20.517 64 20.517 c +87.977 20.517 107.483 40.023 107.483 64 c +107.483 87.977 87.977 107.483 64 107.483 c +W n +q +0 g +/Perceptual ri +/GS0 gs +52.3910713 0 0 -52.1408577 61.26651 71.6794434 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 101 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 103.84 m +42.042 103.84 24.177 85.968 24.177 64 c +24.177 42.032 42.042 24.16 64 24.16 c +85.958 24.16 103.822 42.032 103.822 64 c +103.822 85.968 85.958 103.84 64 103.84 c +64 20.5 m +40.014 20.5 20.5 40.014 20.5 64 c +20.5 87.986 40.014 107.5 64 107.5 c +87.986 107.5 107.5 87.986 107.5 64 c +107.5 40.014 87.986 20.5 64 20.5 c +W n +q +0 g +/Perceptual ri +/GS0 gs +43.5819511 0 0 -43.3738098 63.3764191 64.8112564 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 102 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.058 0.058 0.052 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 63.9999 103.6069 cm +0 0 m +-22.127 0 -40.129 -18.002 -40.129 -40.129 c +-40.129 -62.256 -22.127 -80.258 0 -80.258 c +22.127 -80.258 40.129 -62.256 40.129 -40.129 c +40.129 -18.002 22.127 0 0 0 c +f +Q + +endstream endobj 103 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.058 0.058 0.052 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 63.9999 106.569 cm +0 0 m +-23.986 0 -43.5 -19.254 -43.5 -42.921 c +-43.5 -66.588 -23.986 -85.843 0 -85.843 c +23.986 -85.843 43.5 -66.588 43.5 -42.921 c +43.5 -19.254 23.986 0 0 0 c +0 -86.069 m +-23.986 -86.069 -43.5 -66.555 -43.5 -42.569 c +-43.5 -18.583 -23.986 0.931 0 0.931 c +23.986 0.931 43.5 -18.583 43.5 -42.569 c +43.5 -66.555 23.986 -86.069 0 -86.069 c +f +Q + +endstream endobj 104 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 100.528 m +57.456 100.528 52.133 95.204 52.133 88.661 c +52.133 82.117 57.456 76.794 64 76.794 c +70.543 76.794 75.867 82.117 75.867 88.661 c +75.867 95.204 70.543 100.528 64 100.528 c +W n +q +0 g +/Perceptual ri +/GS0 gs +16.5319595 0 0 -16.4530048 64.19561 91.2625198 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 167 0 obj <> endobj 168 0 obj <> endobj 169 0 obj <> endobj 170 0 obj <> endobj 166 0 obj <> endobj 165 0 obj <> endobj 162 0 obj <> endobj 164 0 obj <> endobj 171 0 obj <> endobj 172 0 obj <> endobj 173 0 obj <> endobj 174 0 obj <> endobj 163 0 obj <> endobj 175 0 obj <> endobj 176 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +43.5819511 0 0 -43.3738098 63.3764191 64.8112564 cm +BX /Sh0 sh EX Q + +endstream endobj 177 0 obj <> endobj 178 0 obj <> endobj 179 0 obj <> endobj 180 0 obj <> endobj 181 0 obj <> endobj 182 0 obj <> endobj 159 0 obj <> endobj 161 0 obj <> endobj 183 0 obj <> endobj 184 0 obj <> endobj 160 0 obj <> endobj 185 0 obj <> endobj 186 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +52.3910713 0 0 -52.1408577 61.26651 71.6794434 cm +BX /Sh0 sh EX Q + +endstream endobj 187 0 obj <> endobj 188 0 obj <> endobj 189 0 obj <> endobj 190 0 obj <> endobj 157 0 obj <> endobj 158 0 obj <> endobj 191 0 obj <> endobj 192 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +0 -87.0974426 -87.0974426 -0 63.9998055 107.5486679 cm +BX /Sh0 sh EX Q + +endstream endobj 193 0 obj <> endobj 156 0 obj <> endobj 155 0 obj <> endobj 154 0 obj <> endobj 151 0 obj <> endobj 153 0 obj <> endobj 194 0 obj <> endobj 195 0 obj <> endobj 196 0 obj <> endobj 152 0 obj <> endobj 197 0 obj <> endobj 198 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +23.1531162 0 0 -38.4417267 63.9400253 81.7712097 cm +BX /Sh0 sh EX Q + +endstream endobj 199 0 obj <> endobj 200 0 obj <> endobj 201 0 obj <> endobj 202 0 obj <> endobj 148 0 obj <> endobj 150 0 obj <> endobj 203 0 obj <> endobj 204 0 obj <> endobj 149 0 obj <> endobj 205 0 obj <> endobj 206 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +0 -58.6434212 -58.6434212 -0 63.9998055 76.269043 cm +BX /Sh0 sh EX Q + +endstream endobj 207 0 obj <> endobj 208 0 obj <> endobj 209 0 obj <> endobj 145 0 obj <> endobj 147 0 obj <> endobj 210 0 obj <> endobj 211 0 obj <> endobj 212 0 obj <> endobj 146 0 obj <> endobj 213 0 obj <> endobj 214 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +45.7043571 0 0 -45.7043953 64.1565933 60.7857552 cm +BX /Sh0 sh EX Q + +endstream endobj 215 0 obj <> endobj 216 0 obj <> endobj 217 0 obj <> endobj 218 0 obj <> endobj 219 0 obj <> endobj 49 0 obj <> endobj 50 0 obj <> endobj 92 0 obj <> endobj 222 0 obj <> endobj 223 0 obj <> endobj 224 0 obj <> endobj 221 0 obj <> endobj 225 0 obj <> endobj 220 0 obj <> endobj 226 0 obj <> endobj 85 0 obj <> endobj 86 0 obj <> endobj 46 0 obj <> endobj 47 0 obj <> endobj 48 0 obj <> endobj 87 0 obj <> endobj 43 0 obj <> endobj 44 0 obj <> endobj 45 0 obj <> endobj 144 0 obj [/ICCBased 117 0 R] endobj 80 0 obj <>stream +H‰lUÉn1 ½ë+ôC‹‹¶kÝ¢§  z蹤 àMÒþ5‹í80<£GIù©9|:ÆÃÝ1Åwï1|¸Ãã°˜øÖ$‹é)¤ÈÒÆòÇóCø‡ÃñKŠóKLÔ[»zÆ—ÓŸžç‡?ÿ};Åç_á𫼄§È1áDZ¥”8öN™9Çù1øÄc˜Œšt §Fµ´¨ÔmãYãVÔÉRö©b9Q (³9*µøÒL•=7¬ª½82õ#ÖÁ„º¨Ã\J¼ÚòÊßÕa—a\xù–ÿf¤(™$!OÕqÚj˜J¢VSW>CÍ@<“ÍR:¥.qÛ?õBÆNë6šCÆŠºã­C$lTöw£ÜêX]¹ìø¦„Ìy7€ÂÄxµN½w‡¦XÞŒ$ 5þ5З0cØ"à*|ÆHE“ùŽÍ ;¡®áÄ\]ž”]¥LR,jyhœ²°Ô1é"y§iEL-ɺÔ1ÊÀ…¸S{WRsÌ”—FéœÎ#D/Þ¨tß ¡ýXàìi´´ã“׺ÏÇÅã>Æ`ñŽ¢åõäÓŽˆ°-/nt-:^~ õöûh·¦|k*·¦zaºÿÿÿÿÿîui +endstream endobj 81 0 obj <> endobj 227 0 obj [/ICCBased 117 0 R] endobj 78 0 obj <>stream +H‰dTËŽÛ0 ¼ë+øfDJ¢ÄkÓ¢§E»è¡çÂØ ìݤýÿ޼v90¢h†‘CÙ‡/G:<#}øx¤ðéËá’{Jï©ôN½…H¢mùM}9=…ïô;Žß"ÍgŠì­ +g˜¿>æ§?ÿýx¡Ós8|†÷¯sx#¡ˆGÈ2Ç…$³÷¨ù5tÃk˜´²¨a?egq'öœ/æ°fœÕåÈR*5å\µ°Z&N¶¸ƒ(‰š3تµÆ1ß@ã$euîD5Žvqn¢d¨Í pLF–-Ý}%ñÅé½NŠÍÞ ‘SURäµÚ1ŠBÑIXK¾ÚzBfàÆ*•rf…J{Q–T®ù×J€Ñ^õ­Ð±‹}“£@f›>{ñ mÔ¼i á£Ù&ü~.ÛØ‡VÂ8ÇåR‰s’>S )¡ûF §EëWk5dÆq¸ ‹ ŽÂÒ¼c”Œ8`óб- yQ¤_7èŒ]yoÛiòÍ¡¡Y!Ï(­s58&vø_€¶´8v©237ujˆ’„c×M¿‘·†iˆ™v §á´i(dÚU‰&:;^( ÄߘÉ"·šúhJÓ ì#ŠËÕ\ \´¬p_ÃûmÞç²íæ°3û¼ã±»¢®Ïágx>,ùþ[Sî)»§ê õþÿÿÿÿjõ= +endstream endobj 79 0 obj <> endobj 228 0 obj [/ICCBased 117 0 R] endobj 76 0 obj <>stream +H‰lVÛŽÜ6 }÷WèÌER—×lŠ>M‡>ƒí˜ ’Ýöÿ{(Y¶w&Œ­CQ¼“òå·§pùôÇOaùå—AâGRz$É#IéǧÚÿ«?^Ÿ—ß÷åòô5†ë[ˆ­žž)„·+¶??¿^Ÿ¿ÿûß·ðúÏrùܽ-?‡ˆ‡¬¡52f ×—Åi/‹RM «J%× Ôt[âYÂu ‘F)+†J¼*©ƒ\2øŒ +Ãb&®µ$,g×̤ÒÀ´&*-O¼¾;³Þ \ßi[Ïv¬ï,\O¦¯Óÿ]—?—/'÷k¦k ¹Q“ÜŽ¬LÕí!é°^sX…ÖOd$HDw¡cÊ-…Û‚…Šþ„ï0KÈmA!Û~j¤Û„C)”2<:Œ¬$µln2 œÀœw˜%Mnä$Õ6l«Æ!aÛ‘µR¡X:7V5F\šdR„GH<ÖòS‰{&E +yfp,U¼ ÇŒ¢o‚Ì£0:ÖF¹z8"ÖJ™ë¿ïœçÄȶ›’‰Bwï£ç£ñW‚…¸ÉÝ ¦#Men o;›ÁÁ´ (öc})‘*"|Û±‘Á!—P{.Ú"™Ä©W߆L;6EfE¬´† »ÌCÖÐÞˆ=zAñj(H¤T7´uæÈÛZjîzj¡9œ&Åiiœ.\ÙJ¢¤à@_vBBGµæ2rr7ïñ† 3x9‚@“Ò¡VqX­—ÅãþÝát˜·á5jà‘O²Þ§>*2’Ø3XÇé„mÀºÁ<à˜ ¢͈ô¬Ì>0eÀPóÕñèœR0~ÜZ¨TKho«½Ê=Ñ{ +3tòÁáö§ýü@'ùÃ=ßS´ˆ¢´sfx¤L%É4>¤Ô{zL#sPÜyéµ€€I)§J¹mжևùj½¤L÷ÖφfìÆ#‚äÅXAðJmW{¹ŽwE‡›@0 LR+Ü÷å\Ñ ÝÆ br´ÉîÄÂÔG‰ô9ežŒ‘„˜”ô¨ '”6uìÿÛeBg¯ðɇyñ&E/TN{!Œ† fX&pcþ¨zã‰zÙhoÒÜs¹¡­…½Æñõ–Ƥ@fs¯QdÓÛ{Ñc–#)."LC¸×¶ò äm߬ÔÛή³O}("Ë™ƒYt÷Ë‚j»ºàƒ¼¸i wÓfm XQUÙS)ýÍ×#¶ÂŠ›ßH¥–)aâss +®ÁHœ¼¬"Í1ñÈíDñyØšËFe8Du›¹ªû ¾Qn’%í”.RìÙ€޵Lg?ÏïΟ5ôÑÊóÀP‰nIlj~—3®J¿ÄÁ¯ÇˆÄ-‚ÚF_ÁQ4¯þœò7.øóWž=~øåGR9‘¾,ÿÿÿÿÿ1ö +endstream endobj 77 0 obj <> endobj 229 0 obj [/ICCBased 117 0 R] endobj 74 0 obj <>stream +H‰lTËŽÛ0 ¼ë+ø¢Eê}mZô´h=ô\ÛbÝE7iÿ¿C¿b'E[3âcHQ¾œhx8úðñDîÓÃLÉ=¥÷T¼§Ò=•gj8} 4^(pÈm÷T¢Ëøæ†¯Oçñé÷Ÿ¿?^èüì†Ï°þuq¹r¡XX¥Rä ¯˜YC¡ó“ûéÞ] Ñ6ý½=À~§7÷NB?¡’¨wÎ"™ÆWgÜ«KÜ´cÕ¸Äãž–%ž•F7ƒÎ)dP% ¤âÕ((µÀ.sä––I¹k4K±ÌÂ)vyåÚËŠýÁÇßô‡l~¯Ãút¿–c¿MyÜ•ßKŠHÇ$ñÚ„À±!‡pÁÎŒ,¿„…¹[$.RLŒ•¼Â4*hœI7ŒƒªjÊ`¨¶+'¨{q¾p( %î=±šd…‰ÓY«‡Oj{“¢SõÆ,™*·)Œ&Ô†ú›N¶`"Dö½ÉB,ê@¤ˆÕNB#{¾–·â¥ø Ï1˜ÓÖ5ƒÚ@[ßMj–>Ÿi™DØ ‰j©LušŠ—‚cAüŒ#ÇÜøV9Nnkm3p×}Un5NîŠqZḦkr'!¯Êþ7&Ån€*JÛæÃÇ€ fà3†6 iæ ²A{ÍS»­pŽØ_Åî‚ÍÖ¶ÝÍÖÑñ6î1í&gÖoQËtmL*f£ÉÆø¸Sëó +®b'ˆ .åꈩMS©ÓB{Ÿc¸}¦W…s·÷Årÿ¬;êÑýÿÿÿÿÅ2Ÿ +endstream endobj 75 0 obj <> endobj 230 0 obj [/ICCBased 117 0 R] endobj 59 0 obj <>stream +H‰œWÛŽ7 }Ÿ¯Ð¬,Š¢.¯Ù¤}iÐ.R y-ŒE·À8i7íÿ÷PÒÈ»Þ 6‹Ø<Š¢ÈCj|øùÞ>Þ;óîý½Y>|ÄÇ¡©èZå¯U|­ +×*¹VŦú{aK&sª;|ý¤búý:.]X—’¬dª€|°¥¯i2¬ŽË×.ö%ýk=9óíÉ|øl–ìáÕ\ÿßéÇóãͽ©íýëO‡NμÿZ—_›ùÉŒn›ñdæ¿ÏŒ›™ŽŸºØSxÎäÍü÷’6¸Õ»¯›xÒëÜÀ:@_=óâE^]8n»îBx½ÞDÙ +9É%‡¿»˜löäY’‰b):)5td%ˆd‰çbÓ‹¦¼‡Ûå‘ÉLn›ÅÉ,ïÚ©Š£EnWq4ÚE¾Þ­S§¦¹ŠÓÙ˜©kE¬gÌ<]ö8Õ¤(” «W¬+ Yg³„úÕõ³b]DQUD?’õ.TX¤…[¥m•×%F[<6%².!ˆYgg÷‘<¸¦M/«*¢f¥G ˜bg˜ ž±®ŸëYÁ6hâ3ÈšM7ªeèR ºË8i±”hÃ#oÍÅE^±gÓ“aD*yNyäM [Xë•°gL&D› +nÏsR3”ÉW öäPΑ¸jšû”¬Ojî1^QudŒËØÓ›Œ¬zÙÐ8Ò¯ÖÖ$e/«È!ð\R`À€@|[>+@XXzÄTIlÌȺÐYI¡•˜”¸Ö U²ïëP0{6ÅY‡S²¸*šÔÔd°=WâtL SÆ€M¸Uâ†Î;îðºá á¢GÏéOÓq/«*¢ã‘Ö命G²÷xÝp/MëÀV5Q"q¯(m†ë;VM†÷ ùiäþHƒ2šã“AIpâ… ZGw­]öìúä1»@Ø ×tÊ®„zÀb]qY\>OnÿÆÉ¦Y›¦Y‹<(o’S´eÀqŒ ¤  Ö õBâõkHQó¼Çë†%Öi ’³ñƒ±¦pÃà „±K (V# ©ÂZ™=ÆœgŒÌl-HD)Y3X=`›û`ã^±ňˆA‹ÿQ`¶–<+0’^&˜Arâ>‚Ê„ªñ†ŽË׆ÂI3ÆÆGHÙì ðÊ•¯ô"I‰ª¼™°¶VÌ1†6‘"'öÓÛïhsqþÓU­.k‰"9_¯&¼J˜ˆ»AÕ6î( \;¼n#o,F+!X¼©$D‚[D]é¥;€§¶d™ ¾ïlKõmWÔÝØvÕŸ;Å:#ÎMÑ¥î%Œ3_0äxM™§—k‡k¥øèlïp§rq„Ëd' CŠÏ9 +üGɹšáC OC ß~/+“Y¹mFn~§ïïþó¯Æ4ý|Xþÿÿÿÿ¹iI +endstream endobj 60 0 obj <> endobj 52 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 124.876 m +30.432 124.876 3.124 97.567 3.124 64 c +3.124 30.433 30.432 3.124 64 3.124 c +97.567 3.124 124.876 30.433 124.876 64 c +124.876 97.567 97.567 124.876 64 124.876 c +W n +q +0 g +/Perceptual ri +/GS0 gs +73.347496 0 0 -72.9972 60.1731949 74.751236 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 53 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 119.776 m +33.258 119.776 8.248 94.755 8.248 64 c +8.248 33.245 33.258 8.224 64 8.224 c +94.741 8.224 119.751 33.245 119.751 64 c +119.751 94.755 94.741 119.776 64 119.776 c +64 3.1 m +30.419 3.1 3.1 30.42 3.1 64 c +3.1 97.58 30.419 124.9 64 124.9 c +97.58 124.9 124.9 97.58 124.9 64 c +124.9 30.42 97.58 3.1 64 3.1 c +W n +q +0 g +/Perceptual ri +/GS0 gs +61.0147362 0 0 -60.7233353 63.1270676 65.1357803 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 69 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.988 0.988 0.988 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 81.2522 80.7289 cm +0 0 m +-6.657 -3.252 -10.749 -10.159 -10.749 -17.568 c +-10.749 -19.492 l +-6.024 -18.851 -1.588 -17.668 2.415 -16.045 c +2.441 -13.912 3.539 -11.914 5.357 -10.792 c +8.171 -9.055 10.967 -8.89 13.279 -9.71 c +16.664 -6.923 19.279 -3.69 20.904 -0.16 c +15.08 3.095 7.568 3.696 0 0 c +f +Q + +endstream endobj 54 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.058 0.058 0.052 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 63.9999 119.4496 cm +0 0 m +-30.978 0 -56.181 -25.203 -56.181 -56.181 c +-56.181 -87.159 -30.978 -112.362 0 -112.362 c +30.978 -112.362 56.181 -87.159 56.181 -56.181 c +56.181 -25.203 30.978 0 0 0 c +f +Q + +endstream endobj 55 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.058 0.058 0.052 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 64 123.5966 cm +0 0 m +-33.58 0 -60.9 -26.956 -60.9 -60.09 c +-60.9 -93.223 -33.58 -120.18 0 -120.18 c +33.58 -120.18 60.9 -93.223 60.9 -60.09 c +60.9 -26.956 33.58 0 0 0 c +-0 -120.497 m +-33.581 -120.497 -60.9 -93.177 -60.9 -59.597 c +-60.9 -26.016 -33.581 1.303 -0 1.303 c +33.581 1.303 60.9 -26.016 60.9 -59.597 c +60.9 -93.177 33.581 -120.497 -0 -120.497 c +f +Q + +endstream endobj 70 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 115.139 m +54.839 115.139 47.386 107.686 47.386 98.525 c +47.386 89.364 54.839 81.912 64 81.912 c +73.161 81.912 80.613 89.364 80.613 98.525 c +80.613 107.686 73.161 115.139 64 115.139 c +W n +q +0 g +/Perceptual ri +/GS0 gs +23.144743 0 0 -23.0342064 64.2739258 102.1675491 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 57 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +93.313 111.636 m +93.323 111.584 93.332 111.534 93.342 111.483 c +93.532 111.444 93.538 111.487 93.313 111.636 c +76.805 75.835 m +76.033 62.053 l +85.136 52.137 l +76.033 42.22 l +82.05 35.665 l +76.033 29.11 l +76.805 15.441 l +51.195 15.441 l +51.195 75.835 l +41.012 81.046 34.07 92.307 34.07 105.249 c +34.07 107.414 34.373 109.416 34.679 111.579 c +35.784 111.787 53.646 119.273 y +53.498 118.464 74.502 118.464 74.353 119.273 c +91.611 111.848 93.342 111.483 v +93.78 109.357 93.93 107.382 93.93 105.249 c +93.93 92.307 86.833 81.046 76.805 75.835 c +34.687 111.636 m +34.684 111.616 34.682 111.598 34.679 111.579 c +34.607 111.565 34.605 111.582 34.687 111.636 c +W n +q +0 g +/Perceptual ri +/GS0 gs +32.4143639 0 0 -53.8184166 63.9161148 88.879715 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 58 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.058 0.058 0.052 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 56.4546 109.2014 cm +0 0 m +2.796 0.508 5.718 0.763 8.514 0.763 c +11.436 0.89 14.232 0.508 17.028 0 c +17.155 -0.636 17.282 -1.271 17.282 -1.906 c +17.282 -6.736 13.342 -10.676 8.514 -10.676 c +3.685 -10.676 -0.254 -6.736 -0.254 -1.906 c +-0.254 -1.271 -0.127 -0.636 0 0 c +5.083 -73.971 -3.558 35.206 re +-22.339 -81.633 m +-32.236 -73.025 -38.503 -60.336 -38.503 -46.136 c +-38.503 -29.614 -29.862 -14.362 -15.63 -5.846 c +-15.884 -7.499 -16.138 -9.024 -16.138 -10.676 c +-16.138 -20.463 -10.42 -28.978 -2.033 -32.918 c +-2.033 -77.53 l +8.514 -88.079 l +19.061 -77.53 l +18.425 -68.251 l +23.381 -63.295 l +18.425 -58.338 l +25.923 -50.839 l +18.425 -43.34 l +19.061 -32.918 l +27.32 -28.978 33.166 -20.463 33.166 -10.676 c +33.166 -9.024 33.039 -7.499 32.657 -5.846 c +37.822 -8.964 42.25 -12.988 45.799 -17.644 c +37.215 -5.855 23.27 1.815 7.523 1.815 c +-18.568 1.815 -39.719 -19.235 -39.719 -45.201 c +-39.719 -59.894 -32.946 -73.012 -22.339 -81.633 c +f +Q + +endstream endobj 71 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.22 0.22 0.22 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 92.2746 69.1907 cm +0 0 m +-0.002 0 l +h +6.394 -11.422 m +6.394 -6.345 l +6.439 -2.933 3.489 0.029 0.057 -0.003 c +-0.037 -0.001 l +-1.657 -0.047 -3.3 -0.628 -4.594 -1.595 c +-4.936 -1.916 l +-5.083 -2.061 -5.162 -2.169 -5.244 -2.274 c +-5.365 -2.419 l +-5.444 -2.525 -5.565 -2.735 -5.655 -2.887 c +-5.983 -3.5 -6.163 -4.2 -6.171 -4.907 c +-6.176 -5.032 l +-6.176 -11.422 l +h +-22.368 -63.529 m +-22.837 -63.533 -23.414 -63.476 -23.939 -63.39 c +-28.319 -62.725 -31.774 -58.615 -31.703 -54.195 c +-31.703 -54.195 -31.703 -22.834 y +-31.703 -17.807 -28.323 -13.358 -23.6 -11.852 c +-23.6 -6.431 l +-23.6 1.937 -18.868 9.656 -11.547 13.232 c +-5.654 16.152 1.364 16.917 7.613 14.767 c +8.519 14.454 9.426 14.09 10.288 13.677 c +18.442 9.77 23.692 1.408 23.674 -7.624 c +23.674 -7.624 23.674 -11.854 y +26.69 -12.804 29.348 -15.126 30.685 -18.003 c +31.049 -18.781 31.341 -19.649 31.522 -20.482 c +31.582 -20.764 31.626 -21.036 31.663 -21.31 c +31.748 -21.833 31.771 -22.305 31.777 -22.834 c +31.777 -22.834 31.777 -54.195 y +31.777 -59.342 27.59 -63.529 22.443 -63.529 c +h +f +Q + +endstream endobj 72 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.058 0.058 0.052 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 118.8371 52.9832 cm +0 0 m +0.109 -6.655 0.375 -27.216 -0.111 -34.362 c +-0.38 -38.325 -3.337 -41.347 -7.304 -41.555 c +-17.684 -42.099 -45.945 -41.765 -54.571 -41.648 c +-53.02 -42.963 -51.528 -44.058 -49.121 -44.058 c +-4.987 -44.058 l +-1.015 -44.058 2.206 -40.838 2.206 -36.865 c +2.206 -5.978 l +2.206 -4.02 1.546 -2.064 0 0 c +f +Q + +endstream endobj 73 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.22 0.22 0.22 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 70.4654 58.589 cm +0 0 m +0 -2.344 l +13.198 -2.344 l +13.198 1.093 l +h +f +Q +q 1 0 0 1 100.0429 61.0422 cm +0 0 m +0 -4.797 l +13.02 -4.797 l +13.02 0.943 l +13.02 0.989 13.016 1.035 13.016 1.081 c +h +f +Q + +endstream endobj 246 0 obj <> endobj 245 0 obj <> endobj 244 0 obj <> endobj 243 0 obj <> endobj 241 0 obj <> endobj 242 0 obj <> endobj 247 0 obj <> endobj 248 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +32.4143639 0 0 -53.8184166 63.9161148 88.879715 cm +BX /Sh0 sh EX Q + +endstream endobj 249 0 obj <> endobj 239 0 obj <> endobj 240 0 obj <> endobj 250 0 obj <> endobj 251 0 obj <> endobj 238 0 obj <> endobj 237 0 obj <> endobj 236 0 obj <> endobj 234 0 obj <> endobj 235 0 obj <> endobj 252 0 obj <> endobj 253 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +61.0147362 0 0 -60.7233353 63.1270676 65.1357803 cm +BX /Sh0 sh EX Q + +endstream endobj 254 0 obj <> endobj 232 0 obj <> endobj 233 0 obj <> endobj 255 0 obj <> endobj 256 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +73.347496 0 0 -72.9972 60.1731949 74.751236 cm +BX /Sh0 sh EX Q + +endstream endobj 257 0 obj <> endobj 65 0 obj <> endobj 66 0 obj <> endobj 67 0 obj <> endobj 68 0 obj <> endobj 261 0 obj <> endobj 262 0 obj <> endobj 260 0 obj <> endobj 263 0 obj <> endobj 259 0 obj <> endobj 258 0 obj <> endobj 264 0 obj <> endobj 61 0 obj <> endobj 62 0 obj <> endobj 63 0 obj <> endobj 64 0 obj <> endobj 231 0 obj [/ICCBased 117 0 R] endobj 39 0 obj <>stream +H‰œVÙn\7 }¿_¡0‡”D-¯qÒ¾$hh^‹Q»8Éÿçh¹Í Æ)bÃwxx¹‰<âøð˽9|¸góæí½ÙÞ}ÀãÐUr­²×*w­ò×*½V…kUìªÿ6Gb‚7ÏMpLÞ¶§d3ÞÔã6„²åHš¤±žòðé2¬ŽÛË‡Ëø˜¯»ÐBw±l#óLÓg”rÜYŸ{½]Ìž¢ªqެÂQ2ÅZô!öø |Ø{™Šö©²‡Ùa?Ç ” j"¯f„A ÖWƒ.´\]ÄYzIöb‡ó<ÄqûÝü~}|9>þûåëżüµ~þÈæÏÏ›;±B‰ñãä° ŽrΉkÝNȉçšðø¼½ùdŸØ|~2ï>™‡í9]Míï®>^oæ–žû·÷‡ŸžÙ¼ý§¹_›ÙÅLn›¹ÅÌþ?3×ͪálðóG O¼Ùÿ1Ò÷y¿…'cΔ †÷Ê‹Wyu¸g=+áûóI¤Âšr0Œß»)Y±N£ JXs YH½jÒp¶üà°ýÒw{<º˜ém³°˜…³)žßÚeŠóŠÜžâ¼h—ðû·u™âré_Ÿâ²FÎVÌrkUÉ:ì<†.YœjQd‰ÐÕ0œIÕUèSÝ5L‚ù5ÿUQ6­¤)†„,û³ör›4ªmrÙB l‘T„8‚!¨¹îÎ#ZpÉ/I/¥*Bíʨ0†4ϰÀzÆæ¿*ÊIáÈׯ'5™ŒhÒÆ0¤VôqÒLedzo=ÄE_‘ÓƒéÑ8Tª }ŽXybÊ®Î+"gˆÆJÙUÜß+ödíPòœ r:ŸO¯Ñ¸ä[zøÉÆjn±^1utŒKÈiMBW­îhé—׫)•½¸ÈðFá)W(Þzb»ûªaaiQSV4±3#UG&¾X*q‰UÙÏe*[g2ãÄ _ @]êê2ØžqÐ)aÁF|«„2žá²ãQ U +1ªwíËq/¥*»ÙW”f÷œÍ>ÇeÇc4^‰Á>5­Drc¢¸h+,;t*µÖ.ä§MÑÄ Zèp)°>( N¼²AÛꎠ5'ëxln3:ö‚løšŽ‰³oÌÄ™“r:mn;7wûÿìaûÿÿÿÿ:ø +endstream endobj 40 0 obj <> endobj 56 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 115.139 m +54.839 115.139 47.386 107.686 47.386 98.525 c +47.386 89.364 54.839 81.912 64 81.912 c +73.161 81.912 80.613 89.364 80.613 98.525 c +80.613 107.686 73.161 115.139 64 115.139 c +W n +q +0 g +/Perceptual ri +/GS0 gs +23.144743 0 0 -23.0342064 64.2739258 102.1675491 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 266 0 obj <> endobj 51 0 obj <> endobj 267 0 obj <> endobj 265 0 obj [/ICCBased 117 0 R] endobj 37 0 obj [36 0 R 35 0 R 34 0 R 33 0 R 32 0 R 31 0 R 30 0 R 29 0 R] endobj 268 0 obj <> endobj xref +0 269 +0000000004 65535 f +0000000016 00000 n +0000000245 00000 n +0000023840 00000 n +0000000000 00000 f +0000023940 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000029615 00000 n +0000000000 00000 f +0000029688 00000 n +0000029862 00000 n +0000032629 00000 n +0000098218 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000024596 00000 n +0000025365 00000 n +0000025822 00000 n +0000026279 00000 n +0000026736 00000 n +0000027193 00000 n +0000131674 00000 n +0000131761 00000 n +0000131837 00000 n +0000131931 00000 n +0000132018 00000 n +0000132106 00000 n +0000132187 00000 n +0000132264 00000 n +0000174039 00000 n +0000028043 00000 n +0000172126 00000 n +0000173074 00000 n +0000127117 00000 n +0000131150 00000 n +0000154049 00000 n +0000154173 00000 n +0000154296 00000 n +0000153550 00000 n +0000153674 00000 n +0000153799 00000 n +0000152070 00000 n +0000152214 00000 n +0000173729 00000 n +0000159514 00000 n +0000160024 00000 n +0000161250 00000 n +0000161724 00000 n +0000173137 00000 n +0000162881 00000 n +0000163871 00000 n +0000158163 00000 n +0000159451 00000 n +0000171595 00000 n +0000171718 00000 n +0000171841 00000 n +0000171966 00000 n +0000170224 00000 n +0000170376 00000 n +0000170528 00000 n +0000170680 00000 n +0000160675 00000 n +0000162353 00000 n +0000165085 00000 n +0000166403 00000 n +0000167007 00000 n +0000157413 00000 n +0000158063 00000 n +0000156155 00000 n +0000157313 00000 n +0000155467 00000 n +0000156055 00000 n +0000154456 00000 n +0000155367 00000 n +0000133664 00000 n +0000134774 00000 n +0000116760 00000 n +0000153310 00000 n +0000153437 00000 n +0000153924 00000 n +0000133278 00000 n +0000133390 00000 n +0000133504 00000 n +0000131327 00000 n +0000152366 00000 n +0000134837 00000 n +0000135537 00000 n +0000136238 00000 n +0000137213 00000 n +0000138418 00000 n +0000139090 00000 n +0000139644 00000 n +0000140348 00000 n +0000140869 00000 n +0000141530 00000 n +0000142003 00000 n +0000142633 00000 n +0000114941 00000 n +0000028645 00000 n +0000029551 00000 n +0000113686 00000 n +0000114241 00000 n +0000133627 00000 n +0000131263 00000 n +0000129868 00000 n +0000130265 00000 n +0000129932 00000 n +0000116804 00000 n +0000127153 00000 n +0000127209 00000 n +0000130077 00000 n +0000130174 00000 n +0000130382 00000 n +0000130437 00000 n +0000130751 00000 n +0000130829 00000 n +0000130978 00000 n +0000131075 00000 n +0000131471 00000 n +0000131568 00000 n +0000133160 00000 n +0000133192 00000 n +0000133042 00000 n +0000133074 00000 n +0000132924 00000 n +0000132956 00000 n +0000132806 00000 n +0000132838 00000 n +0000132688 00000 n +0000132720 00000 n +0000132570 00000 n +0000132602 00000 n +0000132452 00000 n +0000132484 00000 n +0000132334 00000 n +0000132366 00000 n +0000154419 00000 n +0000150478 00000 n +0000151055 00000 n +0000150542 00000 n +0000149274 00000 n +0000149671 00000 n +0000149338 00000 n +0000147790 00000 n +0000148358 00000 n +0000147854 00000 n +0000147726 00000 n +0000147662 00000 n +0000147598 00000 n +0000146970 00000 n +0000147034 00000 n +0000145600 00000 n +0000146059 00000 n +0000145664 00000 n +0000143718 00000 n +0000144484 00000 n +0000143782 00000 n +0000143654 00000 n +0000143590 00000 n +0000143156 00000 n +0000143220 00000 n +0000143373 00000 n +0000143470 00000 n +0000143935 00000 n +0000144106 00000 n +0000144233 00000 n +0000144357 00000 n +0000144601 00000 n +0000144656 00000 n +0000144966 00000 n +0000145044 00000 n +0000145201 00000 n +0000145372 00000 n +0000145447 00000 n +0000145525 00000 n +0000145817 00000 n +0000145938 00000 n +0000146176 00000 n +0000146231 00000 n +0000146539 00000 n +0000146617 00000 n +0000146774 00000 n +0000146895 00000 n +0000147151 00000 n +0000147206 00000 n +0000147520 00000 n +0000148007 00000 n +0000148128 00000 n +0000148237 00000 n +0000148475 00000 n +0000148530 00000 n +0000148840 00000 n +0000148918 00000 n +0000149075 00000 n +0000149196 00000 n +0000149483 00000 n +0000149580 00000 n +0000149788 00000 n +0000149843 00000 n +0000150154 00000 n +0000150232 00000 n +0000150381 00000 n +0000150695 00000 n +0000150843 00000 n +0000150949 00000 n +0000151172 00000 n +0000151227 00000 n +0000151537 00000 n +0000151615 00000 n +0000151772 00000 n +0000151920 00000 n +0000151995 00000 n +0000153089 00000 n +0000152872 00000 n +0000152518 00000 n +0000152639 00000 n +0000152757 00000 n +0000152969 00000 n +0000153186 00000 n +0000155430 00000 n +0000156118 00000 n +0000157376 00000 n +0000158126 00000 n +0000172089 00000 n +0000169605 00000 n +0000169669 00000 n +0000168981 00000 n +0000169045 00000 n +0000168917 00000 n +0000168853 00000 n +0000168789 00000 n +0000168354 00000 n +0000168418 00000 n +0000167731 00000 n +0000167795 00000 n +0000167667 00000 n +0000167603 00000 n +0000167539 00000 n +0000167475 00000 n +0000167912 00000 n +0000167967 00000 n +0000168276 00000 n +0000168571 00000 n +0000168668 00000 n +0000169162 00000 n +0000169217 00000 n +0000169527 00000 n +0000169786 00000 n +0000169841 00000 n +0000170146 00000 n +0000171379 00000 n +0000171258 00000 n +0000171040 00000 n +0000170832 00000 n +0000170929 00000 n +0000171137 00000 n +0000171476 00000 n +0000174002 00000 n +0000173665 00000 n +0000173881 00000 n +0000174113 00000 n +trailer +<]>> +startxref +174306 +%%EOF diff --git a/share/branding/keepassxc.ai b/share/branding/keepassxc.ai new file mode 100644 index 000000000..b1574e45b --- /dev/null +++ b/share/branding/keepassxc.ai @@ -0,0 +1,1872 @@ +%PDF-1.6 %âãÏÓ +1 0 obj <>/OCGs[24 0 R 25 0 R 26 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + Adobe Illustrator 27.2 (Windows) + 2023-04-23T23:19:03+02:00 + 2023-04-23T23:19:03+02:00 + 2023-04-23T23:19:03+02:00 + + + + 256 + 84 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAVAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FWmdF+0wHzOKtetF/Ov3jFXetF/Ov3jFXetF /Ov3jFXetF/Ov3jFW1ZW3Ugj2xVvFXYq7FVsssUMTyyuscUal5JHIVVVRUkk7AAYq881n8/fy40+ 7+pWl3Nrd7yK+hpUJudx4SVSJv8AYucbVDH8+dOCc28n+aFSlSx0+OgHjX18FhbTDy9+ef5b61Ot r+kjpl8xI+qakjWrAgVoZGrDU9hzrhVnwIIBBqD0OKuxV2KuxV2KuxV2KuxVB6vrOkaNYyX+rXkN hZRf3lxcSLGg8ByYjc9hirzHUf8AnJ78sbe7Npp36Q1yYdtNtS4JqBt6zQV69RtiqHb/AJyi8kQE G/0TX9OhP/HxdWUaRjcD9mZj38MVZ15Q/M/yH5v+Hy/rEF3cceTWhJiuAB1PoyhJKDuQKYqyjFXY q7FXYq7FXEgCp6YqpBufxHZey/1xVcCAKDYeGKsd81fmN5L8qhf07qsNpK1CluKyTkGvxCGMPJx2 68aYqxGH8/dPvIjNpPlTzFqduT8Fzb2QaJvcNzr+GC1bf/nIDy/ZvF+ndB13QoJTx+tX9kUiB/2D Ox+hcbVnHlvzh5a8y2n1vQ9RhvohTmIm+NCa0EiGjoTTowGFU3JB674q0H4kVPwnbftiqpiqV+Z/ M2keWdDuta1aX0rK0Xk1KF3Y7LHGCRydzsoxV5LBofmT8zUGveeJ30byYB6+n+XIpfTEkQHIT3cv wkim+9Pbj1IJV6Xoeg6Do2nLDoNjb2tuUDRrAoQPt8JZxu1f5jU4hXnml/m75nvfMEOjnQo1uZJx DLBykEib0bkSNuA3JpmFHVSMuGmgZTdUzzzV5Y8pa3YSDzFY21xbIp5XE4CtGvcrN8LR/MMMzTTe 89aPzT+UkqXdjPPr/wCXjGlxYSHnc2Ct0eFuhQHt9nsQD8WKvYtK1XT9W0631LTp1ubG7QS286fZ ZW+e4PiDuDscKorFXYq7FXYq7FWDfmr+aWn+RdLhCQnUfMOpN6OjaRFUvNKSFDMFq3AEjpuTsPZV 5/pn5VnV9S0/zD+dWr/XdZ1KYQ6R5ZEpS1iZ9xEqRmrso3YJ8I6sW64qzz8xNWf8uPy+u9V8paFa sti0Zeyii9KFImbi0rJDwJCVqfvOKsG/JT8+PN/5h+aZtIv9FtItNhtnmubu2Ev7s1Coreozr8ZN KdevgcVZH+Yn5P8A5WaxeWiyGPy15lvnb9FalYkW0kk8fxU4DjHI+9abOex2xVKfJ35i+bvJvme3 8h/mfIJTdnh5f80D+6uRXisczGnx7gVPxA/arUNir2nFXYq7FXYqhb+QKiKejuqn5E0xVdzxV5b5 08++Yda8wP5G8gsv6SQf7mtcb4obFD1VTQgy/q6farxCpn5K/K3yR5fvGeTjrXmcBZ73U78ie5Ls T+8VXLelyatCPi8WOKEZ+YvnfW/K31N7LT47m1uOSvcSlqK60olFpSo3FTmPqM5x1swyTMUx8i+Y tT8yaE9/qVklqHkaOFV5FZIwB8dGrtUkfRksGU5I2RSYS4hbFfMv5UeXLzU5NR8o3K+WvNtkA6zW JEcZ5bqJ7dfhKP3IG/fl0y5kjfy8/MXUNSvrjyt5qt107zdpygyxAj0rqOgPrQ0J8fiX6R3AKWfM agivXbFVaCT1IlfxFcVeQayv/KwvzYbSZf3nlXyXwku4a1juNSkB4hx3Ee60P8rD9rAVY1+avni4 1i/l0eyk46RaPwcL/u+VDuzeKK2yjp+14U1mq1HEeEcnDzZLNDk9e8m63b6z5bsb6FwzGJY7hR1W ZAFdSO2/4ZsMM+KILlQlYTgRxCQyBFEhFC9ByI8K5YyYj+aut2+meTb6J2H1jUENpbx13b1NnPyV Kn/byjUT4YFryyqLCPyk85yM48r6u3r2dypjsjL8QWoNYWr1Rh0H0d8xdLn34S04cnQp3+Xpl8lf mDf+Q3djoeqRvqfl3kSfTapM1uta9gzdf2a9WzYBynreFXYq7FXYqpXd1b2lrNd3LiK3t0aWaRui ogLMx+QGKvn3yFqNnqM/mP8APrzgrfU7UyweWrV6H0reI+kvpjp6js3pL/llz3rgV4ov5va3qX5r aZ53112kjs72OVbNCTHBahqNFCp6USvzO53xV92Wl3Z39lDd2sqXFndRrLBMhDJJHIvJWU9CGBwq ssNM03T4misLSG0idi7xwRrEpY9WIQAVPjir5i/5y986Wc+r6L5asZq3elF7y9dDvFJKFEKVG4cK pY+xXAqa/l9r1t+d/wCW+o+TPMsit5r0iMTadqTD941BxiuDTeqsfTm8VIPU7KvR/wAhfO2o+ZPJ 0ljrZb/Efl24fTNVD/bZotkkb3IHFj3ZScKvSsVdirsVQGq9If8AjKn/ABIYqw/82POM3lfyZdXl mC2p3TLZ6aoHIm4mqFIFDUqtWp3pTFWM2UFv+V/5fRW8XGbzFqJMlzO3xGS6cVkkY9WSKtB4/MnM fPm4I31a8k+EWln5N+ZDH5pvrfUJy8+roGE8hqXmiJYAk+Ku1PuzE0eX1m+rRhn6t+r288WXiwDK eoO4zZuW5nAXwAH0AYq+ePNvne7b8w7jWtHn4palbaBwapJHEKPUdCjNy+jfNVnzkZLj0cPJk9Vh lHn2L/EflKx8+aB/o/mHQf8ASonX7XCP/eiB/wCZQKmncVH7WbDHkEgJByoysW9G8reYrXzD5esN Zttor2FZClalH6OhNBujAqctZJ3Y/wC8sf8Aqj9WKvF/ysuZ7T8qta8zly2paxc3t80x+16rMYkq fZ15fTlOWfDEljI0CXmz2/amaHiddbI/y71fVtM8zWVvaTlLa+uIobuA0KOrNStD0YV2IzK0uUiY A6tuKZBe8aPq9tq2npfWocQyNIiiQANWKRom2BP7SGmbiMhIWHNBt85+ZdX1fW9WmutTleSRGZIo mHFYkDfYVBsvv3PfNJnymUt3AyTJO6DszNbXMVxCeM0LrJG3gyGoP3jKRKjbC3rH5mzxxX3kLzVH yRoNVt4mZPtGC9UNIvatUjIzoImwC7IG93ruTS7FXYq7FXnf/OQeryaX+T/mKaJuMtxDHaL13W6m SGQf8i3bFXj/AOfsp8u/kr5D8qWzenHdRxy3IU09Q20CM9Rts01xz+dMCvm/FXvX/OOX5q6h5bsP MKazc3N35Y0WwF7Hp8QSR43e5ih/c+oyUB9WpXmF79cVfQP53+ZdX8tfldrms6PP9W1O3WBLefir FfWuY4nKhgRUI7U8OuFXwTd3d1eXUt3dzPcXU7GSaeVi7u7GpZmapJPvgVnn5Ba9No35teXpUbjH eXH1CZagBluwYgDXwdlb5jFX0X5PC6N/zkt5x0uEhLTW9Mg1Mxiv9/GYlNfcmWVvpwq9oxV2KuxV L9X+zD/xkT/iQxV5V+ZPDU/zO8iaK/IwxzXGoSpX4Ga3QSR7V3p6bV9jgKlJPzYu5LrzKLep9Ozh RFXsGf8AeMfpBX7s1Gvnc67nD1EvVTBTG6OroSjoQyspoQRuCCOhGYgk0W9z/L3zjc3mj6Xb6tI9 xqF9JcxQTcVoVtVDH1CKb0brTfNzp83FEXzLnYp2BaW/nXrer2lhp9jZTvBb3/rreGMULKgSic+q g8zWnXI6zKYxFdWOeRA2eORwUoANs1BLhvU/yfuedvqemTDnAwWURncfECj/AHimbDs+d3FydOeY R/5GCe18s6ppUkhkj0nV7uygr2RODmnzaRjmyHJyg9TsP95I/wDVH6sKvGPyvia7/Je90lB/pWnS XltNH39SN/X4/SHAyjPEmEgwmLiWENbe2c4JOuTPyjb0806UadLqI/cwzI00v3kfezx/UHsPkFOH la2X/i26P33Upzd6Y+j5/eXOx8nlXn+6g1DzPcyQ2X1P0j6UnIFZJWU7yOvQV7e3X21GsyAzNCnD zSBkkEdozMFUVZjQAdycxLano/5oWym28i+Xg9LibWLIKaciEt19N3ptXj6oOdNAUAPJ2YFCnr2T S7FXYq7FXmn/ADkdp0l9+TmvrEC0luLe4AH8sVzGzk/JORxV5N/zkkh1v8rPy/8ANENZIREscj1r Rry2jko1O9bcg++BXzfirOvy9/5RX8wP+2LF/wB1C2xV9uefNWsNI8navqOoac+rWVvbObjTo4/V MyEcWVlII4UPxk9FqcKvzvvJoZ7yeaCBbWCWR3itkZmWNGYlUDOSxCjapNcCsy/JHSZdU/Njyvbx qWMV9HdtTstp/pBJ/wCRWKvpby+36U/5yh8yXMZLQaLosNmzg1HqymGTj0/yn28RhV7NirsVdiqX az/dxf8AGRP14q8q8+BLL81/I2qSNSOb63Z9OjvHwTf/ACmmwFUq/MixZPMskxHw3MUcin5D0/8A jTNJ2gKyX3hwtQPUxB7f2zDEmh6H5Ej4P5ZP8supH740GbXSHaPvl9zlYenxZF+Z2oRw+W3hex+u C5bgsjD93C3aQkbhv5adcyNZMRhuLbcxqLxpLfNFxOA9E/Ki0aOTULo7IFSMHsSSWP3UGbLs0byL k6YcyivyVuPrOia5fqKQ3+t3dzCfFHWIA/epzax5OWHqlh/vJF/qj9WFXldm3+Cvzb1HTbolNE85 t9d02dj8C39f30Vdl5Ozn70HfAVSjzj5WbSNSYxofqE5LW79hXcxn3X9Wc7rNOcc9vpLr82PhPkg fLMaR+YtOkchVW4jJYmgHxDKtNL95H3hjjPqD17y/p0umaRHaTsheNpXZkJ40klaQbkDs2dHhgYR o+f3uwhGhTxfUZbm9v57q5m+sTSuS0tagjoOPbjTpnNZshlIkuunIksl/L/ys97qKalOn+h2jckr +3KN1A9l6nMvs/TmcuI/SPvbcGOzfRH+Xm/xn+a0uuRVk0DynG9pZTbGOa+mBEjJ2PFW7eCHvm+H e5z1fCrsVdirsVQmsaVZ6vpN7pV6vO0v4JLa4XuY5UKNT6Dir5/8gaT+nPJvmb8jPM8gg13RGkOk zv8Atwl/WgmjrViqSEMf+K3A8cCvmfzD5e1fy9rN1o2r27WuoWblJomH3Mp/aVhurDYjFWd/kpoF 15lTzb5asJoItU1bSRHYrcP6au0d5BMwBoxNEQnYYq+pf+cgNevtD/KbXL3Tr02N+wggt5VZVc+t OiSLGTvy9Eufh3HUdMKvg7Ar6W/Ibyta/l75O1X80/NcZty9sU0m1kHGRoWoQVDft3D8Vj9t+jYq 9F/5x28uanB5e1Lzjracdb85XTajKD1W3JYwCh6A+ozj/JK4Ves4q7FXYqlut/3Mf/GRP14q8/8A zX8v3mseVTNpoJ1jSJo9R07gAXMkFSyr33QkgDqwGJVBtNaefPKFnrGn0+uIpLQ1qVkoBLCfeoqv j9OYOs05yQ2+oNObHxDzYPJasrFWWjA0IPUHOftwGfeR7B5bTTLpHQLYSXQlQk8/3yqFoACO3cjN 1oImUYnuJczALAPcs/M+7uGWys45isMgkeeBT9riV4Fu9Aa+1flh7TyERAB5rqZbAMHtNOnuZ47e CMyTSHiiDqTmmiDI0ObiAEmgy3zber5R8lrpFjWbXdWP1Wzij/vHnnojugG/wA0X3pnR6fD4cBH5 uwxw4RTLfJ2gr5e8sado4bk1pEBMwNQZXJklK7D4TIzU9syWxmNh/vJF/qj9WKpL578k6Z5w0GTT LwmKZT6tjeJ9uCdR8Ei+I7MO48DQhVgGlec5tMl/wb+ZsSwXoHC01h/95LyMbK/qkLxf/K29+LbZ XOAkKkLCCARRR2pfloz/AL7SLpHhcckjmPY7/C6gg/dmpy9lnnA/NxZabuX3GkfmDc6SmkSCMWwJ WSf1F5vH2RmrXj47VPfbJHHqTDg+208OSqa0/wDLu0s0N5rt5GtvCOciK3CMKNyXlfjQeP68cPZd bzPyWGm70v1DzLqPnKY+UvICmDS1/c6r5iCFYIISPijg6cnYdO57bfGNrGIAobByQHpnlfyzpXln Q7bR9MQpbW4+01C8jtu0jkUqzHr+G2TSmuKuxV2KuxV2KvM/zc/K/UNensvNnlOcaf550T4rG4qF W4jWp+ryE/D+0eJbbcq2xqFWAXur/lx+bUY8vfmBbnyj+Yen1t1kkpCS/ULG8nwujE1ETmu/wHfl gVhWpf8AOLv5seXdUi1Dyxd2+oyWriWzubeYWlwrJupKzFUU/KQ4qmPnP8sv+ckvzGv7RvMtjb2c FnGscEZurdbZW40kmMcEk7c3Iqxp7DbbFU00f8lvyy/K+KPX/wAy9ag1G/j/AHlppEYrEzL/ACwn 97cfF3Kqg/aGKp/pWjeZ/wA6testf8yWb6T+XOmv62k6NJtJfv8Asyyj+QjqelPhStWbFXvaIqKE QBVUAKoFAAOgAwq3irsVdiqXa2pNup8HUn6DiqVcsVea63oeteSdauPM3leBrzRbxjJrmhxjdDuT Pbgdu5A6f6v2AQqbWc/kzzzbC90y6Ed6R+8C0EqnwliNK/MffmFqNFDLvyk05MIl727Dyt5l0i79 exmgmU7MhZlDL/lBgPwOYmLSZ8MrjRaoYpwOyj/gfXL67a51K7iWSU1lcVdvYKoAWg7DlgloMuSX FMgIOCUjZdqvmLyf5GgMcbG91iWiRW0ZElxIzGgWi/YWv+ZObDT6WGLlue9yIYxHkp+T/KmsXmsH zh5uA/S7rTTNO6pZxNX7Q/34Qen7Pf4j8OSA2M95jv0wqyCyUrbRr4KBiqtiqA1vQNF12wew1ezi vbR9zFKtaHpyU9VYdmU1xVgP/Klp9Ll5eUPNGoaDASWNk9Ly2BJr8MbtH/wxY4KVankj85zxSTzz AsdQHZbCAsF7kfAtT/ssaVUt/wAkre9nWfzfr+oeYyj80tnc29r0p/dKzsP9i4xAV6Fp2m6fpllF Y6fbR2lnCKRQQqERR12A8e+FUTirsVdirsVdirsVdirGfOv5beS/OlsIfMOmx3UiCkN2tY7iMdfg lSj0r+z9nxGKvPovyD816GPT8m/mJqml2aEGKwu1F3Eu/YB4kH/IvfFVST8pfzkvv3Wo/mldR29D y+p2iwSGtNg8ckRHzxVNfKf/ADjx+X+h3w1S/SfzFrFeZvdWcT0f+YR0CV8C4YjxxV6cAAKDpirs VdirsVdiqldQLPC0Z7jFWNypJBIY5Nj+yfHFVocjcYqxLX/yz8q6xeNqAjl0zVWJc3+nv6Ehcjqy 0ZCa7k8Qx8caVLP8EfmHaIken+eJZIhUEXVqrMB2o7PMW/DBStnyF51vo/T1jzrctEW+OGzt1hLL /wAZVdaH/YHGlTzy15C8reXZDPp9qXvjXlqFy3rXB5VqeRoqVrvwVa98Ksj54qiLG2e5lFB+7H2j 4+2KsiUBQAO2Kt4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqo3FnB OtJFB+YxVAPoFuxqGYewJH8cVa/w9B/vx/8Agj/XFXf4eg/34/8AwR/rirv8PQf78f8A4I/1xV3+ HoP9+P8A8Ef64qvi0K2Q/ES48GJI/HFUwihjjXigAGKr8VdirsVdirsVdirsVdirsVdirsVdirsV dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/2Q== + + + + 1 + True + False + + 128.000000 + 128.000000 + Pixels + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + R=252 G=252 B=252 + PROCESS + 100.000000 + RGB + 252 + 252 + 252 + + + K=50 + PROCESS + 100.000000 + RGB + 14 + 14 + 13 + + + R=106 G=181 B=54 + PROCESS + 100.000000 + RGB + 106 + 181 + 54 + + + R=46 G=107 B=38 + PROCESS + 100.000000 + RGB + 45 + 107 + 38 + + + Branding Primary + PROCESS + 100.000000 + RGB + 97 + 153 + 48 + + + + + + + application/pdf + + + keepassxc + + + AIRobin + Document + xmp.did:15104d2c-f19a-5647-92fd-ebfb7e2a9d9c + uuid:a5c10b3a-0105-47dd-9dc7-c8c8656a539d + xmp.did:2520a7c9-03a3-1044-b2dc-89724d81ad50 + proof:pdf + + uuid:fbc32be4-4dc7-432b-b68a-63696265f39c + xmp.did:5ec6b319-42f4-834f-9a94-1742c43249e6 + xmp.did:2520a7c9-03a3-1044-b2dc-89724d81ad50 + default + + + + + saved + xmp.iid:2520a7c9-03a3-1044-b2dc-89724d81ad50 + 2020-12-19T13:48:23+01:00 + Adobe Illustrator 25.0 (Windows) + / + + + saved + xmp.iid:15104d2c-f19a-5647-92fd-ebfb7e2a9d9c + 2023-03-30T00:28:09+02:00 + Adobe Illustrator 27.2 (Windows) + / + + + + Adobe PDF library 17.00 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 5 0 obj <>/ExtGState<>/Properties<>/Shading<>/XObject<>>>/TrimBox[0.0 0.0 128.0 128.0]/Type/Page/PieceInfo<>>> endobj 23 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 128.0 128.0]/Type/Page/PieceInfo<>>> endobj 28 0 obj <>/ExtGState<>/ProcSet[/PDF/ImageC/ImageI]/Properties<>/Shading<>/XObject<>>>/TrimBox[0.0 0.0 128.0 128.0]/Type/Page/PieceInfo<>>> endobj 51 0 obj <>stream +H‰¬WÛn7 }×WèV+J¢.¯qÒ¢@ƒÖHæµXumÒ:íÿ÷è6#¹˜µa# ‡¤x(÷üÓ<¼ÓòÝû;)þçï?iùû7qþùáéòðçßÿü–åÓ‚ŒU–SJÁHd´r¡`+2ÑG­I’Ò>ÍF^®âüÃUË÷_Å=¬ZVN³$Âj‚¼ +cTHûŰLš•)z &,Pºˆç«U¿ãntØ.›V× ]ÄŠ³èF7¼Ä`{„Q.Çá¡­yÛØƒí›á±ö³:¼ˆgY<Š_å—ÂÍÊ ¨¢B•–'ÒFEvÖ8û héÝ0EÞTfÞ}–çOZ~{”>ËûÊP¡4Ö¿SùïéáЧi>ùñüÝNðÕì¤FÇjnR3Çj<©Ùc5?©¹¦VQ¬\òpm’ÓJ“ËxX׋R1¨}C¤ÃþbPýCÌ]ì/õe{Ü„j½‰Y,ƪ“Ùaµnœ¢{äMެ’Ò¥]¹0VE×T©{¨2NeŽ×ÐM ØÏ±¼âÄZÙ­”|MTZ¦ªˆ³´pì‘ö·÷3\^,ãÚŠÖ*4—¤rˆ›¨#á +ñ^¼ôÆâ SðqÅIÍ«¥I-¼N-NU9zíb͘Ë­|w +ìôö×ö’謺‰T7ÈŸkà¸~V“ÍÛâúeVƒVÁ'Kõ«qbLš£-Áè„I«HÑx=u'óF‚IOÉNÇœÍýéF£¹ß­ô=»œ½ä—ÛpL /î÷íå‹9‘ȯ"Ñ-$îmd¾œT°ø±òGÐãòY ËGÍ+w@‰RA)Q{uÂYpö2Ì he@Û‚ØÖ|t©†Ùå,|q öøèùä†:ÀîoŹ`*óA‹Èà=òê±ê«;Ì4І œK2&e} ´K5Ð.#P´g¦Gšª%…ðEˆ“”§’R`’tQ™BLp8ªdR!ÖC´§ÌÊšŠ½rÙÓʃ¢íyÉ“u ëÁb«Ï=ª¯™„S ž²74γâ<0."»ªÍ8M¦­È  ã„‘¸½;a P„€eô8z%Ù%Á*ÚTɸêÚÖÉfÁy`ÇðJ¬^i1Yºšþ.ÕôwåŒQ&n¸,xµlš mþVœîÑY”KL#r‡¥¶sŹà2ö¤Y”^OXG[zWœ7ÜÈà2:ûAƒf¸K Î÷"Ê58O}öXnšqžÐ=18⦟ +ráf—,= –½8 ›­9# ë5†Åòù(¾€³á‚ƒ—­9Û·6çe(¼1îÍS!ݘ÷hQt¯4xãÿèÝøò¯_…°:!Õs-Øâ–»2ÏÊ<)Âp?cFÏéú7gý>ŸÐìØséš‹X:… Ñ;Ü¡jÎEp¸“æþÒúüòá#~-žÛoGj¿ç-3mÝ‹j!¹ +endstream endobj 52 0 obj <> endobj 9 0 obj <> endobj 11 0 obj <> endobj 12 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 24.0 +%%AI8_CreatorVersion: 27.2.0 +%%For: (janek) () +%%Title: (keepassxc.ai) +%%CreationDate: 4/23/2023 11:19 PM +%%Canvassize: 16383 +%%BoundingBox: -142 -14 262 115 +%%HiResBoundingBox: -141.500194631545 -13.8897637794908 261.999999999991 114.110236220508 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 14.0 +%AI12_BuildNumber: 339 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0.382499992847443 0.600000023841858 0.191249996423721 (Branding Primary) +%%+ 0.057919479906559 0.057945560663939 0.052277076989412 (K=50) +%%+ 0.417439699172974 0.709999978542328 0.212999999523163 (R=106 G=181 B=54) +%%+ 0.988235294818878 0.988235294818878 0.988235294818878 (R=252 G=252 B=252) +%%+ 0.178956523537636 0.419999986886978 0.149739146232605 (R=46 G=107 B=38) +%%+ 0 0 0 ([Registration]) +%AI3_Cropmarks: -162 -13.889763779498 -34 114.110236220502 +%AI3_TemplateBox: 50.5 49.610236220502 50.5 49.610236220502 +%AI3_TileBox: -383.600006103516 -358.789757675982 187.600006103516 459.010230116986 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 6 +%AI24_LargeCanvasScale: 1 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 3 +%AI17_Begin_Content_if_version_gt:24 4 +%AI10_OpenToVie: -301.827610325819 270.77290632912 3.88349315223746 0 8242.54634672557 8217.66620684501 3147 1901 18 0 0 6 181 0 0 0 1 1 0 1 1 0 1 +%AI17_Alternate_Content +%AI9_OpenToView: -301.827610325819 270.77290632912 3.88349315223746 3147 1901 18 0 0 6 181 0 0 0 1 1 0 1 1 0 1 +%AI17_End_Versioned_Content +%AI5_OpenViewLayers: 777 +%AI17_Begin_Content_if_version_gt:24 4 +%AI6_ViewPalette: 0 3 4.52777777777778 8162.61349693252 8190.55214723927 0 8162.61349693252 8190.55214723927 0 3 7 +%%+ 77 Fully Shaded, Precomposed +%AI6_ViewPalette: 1 3 4.52777777777778 8162.61349693252 8190.55214723927 0 8162.61349693252 8190.55214723927 0 3 7 +%%+ 77 Fully Shaded +%AI6_ViewPalette: 2 3 4.52777777777778 8162.61349693252 8190.55214723927 0 8162.61349693252 8190.55214723927 0 3 7 +%%+ 77 Flat +%AI17_Alternate_Content +%AI5_ViewPalette: 0 3 4.52777777777778 8162.61349693252 8190.55214723927 0 3 777 Fully Shaded, Precomposed +%AI5_ViewPalette: 1 3 4.52777777777778 8162.61349693252 8190.55214723927 0 3 777 Fully Shaded +%AI5_ViewPalette: 2 3 4.52777777777778 8162.61349693252 8190.55214723927 0 3 777 Flat +%AI17_End_Versioned_Content +%%PageOrigin:-247 -370.8897637795 +%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 13 0 obj <>stream +%AI24_ZStandard_Data(µ/ýXl4jçKÂ.€DäÒ€òÞã¢ë +Ýõfn;…Ý?ûß—j"ÉnòLÌ”Ä(ç(¶ËA~ŽâJÈ +w  ÞßÙ† ÿÄÎÿ¾°‚¼yÖøžÿΜÝ_ïŒ9ÏkëõǼç«÷µ[þ±ÍùÛ;ïøgËiq{ë}þýoî=æÝs›s8göãoõÇ\çæ[ïí_No‹-öžoý5Ö|_Îó¬óË}|õÇ{óîß›¯ÇÛ[Þ}ö~kí/æú{þm×û{±ÍÿÚ.Š8k¾ùÖb3¾¢Ã0 C0ÌZw¾ó]×uØ×Ë^ö¶×½Îë¼Ï½ûé¯Þ~üŠà~Ýû¼ÏûÃ_èy^÷²waÜ[ŒqÞÞëŸå¾¹þöîy··ã޽ֽ_ìûÎùæ¾yß™_Ÿû¿zÛ­íµß^|ûÿ÷›»åœÝŸ³™Í¸Å}ck³Å½gl{îÛú{yö9ß³Íwóo·½_Þ.ô.¬À~glýÇÖbÎzý½þw_n¿Ïöcÿ?ÇvóïßZ~¯ýúZŽ{Î{w¾-Þ{c{}ÆýÛέÿs½ÅœÍt¾v|ýöÔàîŸëÞmxa ÿ¼Ï¹½0pûÛžß›k,êð®¶`ǦÃvÏÁ ë[ï‹:Ô ÷µçØóP‡7ÁìÀnƒ¿ïë¾ÿõoù»ŸèÞ…y^çy¯{ûÂôÏWôáç½ï=÷;_±‡=ìö¯ÝÛ]w\ó Ó¡ö.¬€{ÝóÞ÷:Ïó>ôBOôìw?üåOûã_ÿü÷¿îó¾ï¿ð? ^ƒÔà9xaô`‚`×ùÖ†-¾ôþ½°.k®/ ¼°Ž9ÖX‚1Æ6s|/¶»ó®í××rË-ß:ã 1èùíév`÷yÜÝÐû]ÿüï¯ÿ…åÿý¢=è?ïùÎï}÷Üo¯}öØ_o½ØÃö¯{½ë¿ûÞuÏ÷ÛmyÈAþqÏs¿3ÇürËÅz»ó»o®E}a¡õ§¿®{ÖYó—½ÜùÜ3Ï;gœ¯ˆCl=ÑÚ|µÿ> â_˜þ¹ë´g¿ ^ž¹æœw­u÷ÞŠV´öÞ{ñ½0Ìýõ÷ß»Û]ï~÷ ¯x-¶øbŒ±ÆsÜq÷°ÿÝÚ{aywüwÝŠçÞíí¼o}ñÆ|ó¯½Þw~µÇßþ·Æžãïû¶ü[Þw·Ýî{¾Yûnùߺ_½9ß<÷ß5¿ØßÿwÏŸïûûßVÌ-Þž_Îf]ãl;þ÷ÞËmçöÎZëïýî¿cŒ½ÇØZ{ûݙ߯×gÛ5ïÿl½õßnÝ1÷|{¯7÷[gûõÏÝûÞù·¶co½çl–ýõžçûùýÛ›y×ÿrœ-ÿ›wÿ;ïñ…¡ˆíÅ9óƒ<ä"·ývÜs×}wÞ{÷ý÷®{ýë`»Ø­¿ûìµßžûî½ÿ¾óžÿü…>ô¢¿ÿüõߟÿþýÿ¿ûÞÿ>h»Ûá.wºÛïz×yÝ×]؉õ®‡½ìio{!±Í6ߌsÎ:ï¼3Ï=ûüs—»ìå/ƒb¶új¬³ÎZë­¹îºk¯¿¾°N{úÓŸu¨EmñÎ[ï½÷æ»o¿ÿîv·½ýmp‡;Üâ¶ürÌ3Ï\óÍ9ïÜsÏ?ï8ÿ¼sÎ5Ïürq‡Üßîöß}ó½wÞxßmw¨AíéNí5×[kõÕV‡Ìöå.ÿÌóÎ:ã|³Í!ñ‡;ü1¨s¾0æ0ëŒoø±ÇwÜ1ÇkœqƼ߅mðû¾[=ìaïz׳žõÄNìÂ.»ÏëºîÿÎw½w¼ÛÝ…mÝå.ãîÞÎv¶Åþüßÿ¼ßýîÿ/¬@’óæýÞíç›ÛÞûÖÖr6ÛÝÞ½¯ß=cÿ-g3|ñµãÞõÎVÿm»·_û|9ü@ A´á q˜Cî‡=ôá»Ð ¿0 ÅЊWÄbµ¸E.vÑ‹_ìDOüDP EQ¼_×å‹ï½6sac|±Å‹7¼àý®w»û¯¿ýò»¯¾ùÞk¯hC ÚÏz¶³ßzÛ-·Ûj›-¶×Z{aºë~{÷ûÿîšËûÞ ³—_n:CгVõFÛ……¼Ñ–Y{3»3žÝ g6˲Ôm™¶ÖûÕÚ߯¿·—k¼³æW_ŽíÝš³vöoÜ­ÿ;sÎ^·ßî·½Ücû9{afò2œÙìÂ$㛡2¹Ïó!’aÖ“,Mcº9½ìâ ³XöŠ\U!Ò,•k:‚Vji¢¤) TPM'i–BkÚ­i—ZGÐù e’5¦B™él¡¬J®e+”¥¤é,O©u™(ê`¢¨C–R[©—•ÊkLQ¥iŽ_ÄJž£ ZÏrTHÇs4UR©*­c¡]KS˜)¹®c& \K$KMI 5Ig¸JÑ F2IF¦£)JXåÈE2 ê,KcêE2ÉZ"1HŸÌD(St-‘¢È…¡§“Ãj¡éæ,Q-4ò †:Ëõ,SЉ.lVk%C(ÔDSÐY¢Hu=ÉÕ +ýLg¸mòpÖz¾¾'¹®£)Ž>Ö×ïËûÿø[üﵞóî¦2ÝŒú¶=[²®±s–¨2ý¨´íݳ¼×ÑÄ×Dª(k…–È”UL¤iL…2¦Ù³Þ{–mÖñϸë‹÷æì¿>ÃçϿΗs˜_ŸùŽ7§³œÙ r]Is@–¢ï½@–¢m"G¦3 à“ëx¦äjv÷ú›q³kÿͺ¾9»vkÏ-æœsýbŸõ½qç:s½9¬±ÏlÆuÏÎÞs9Ã÷ãÌíǽs¶ãì_¿q¶—wì¹k³%Ã¥u8IÖgdu¦1fEŒNåh=ÉõD¿ÑY¢HoÔoÎ0jJV­¿¶LT%V•Ž£}GS4Iêù7ÃæX +‘¨tTiœaÔµ<RÒl5X«uhM»Ñ&Ot!Ã@–Hî?¿×fl¯åþÖÝß û¿;ï»ß9¿³%ãwg{yöÙb–˜s_g›³›\G“µ"°Î–Ìc~-FU¥ãŠ…¦’Š-KÙ0Élf3Ÿ ¼¬[mÐɶå8c®ïÏýëû¹÷Ü_ÍÙŒgÞóÎxóý}¿Þ&Ã4D|÷þzýñÎØû¯·—] 6·× !’e~3Þ_ÌÙÌãŒõöÝvÎfºÜïÿügݯ¶Û ÉðÕßÞmïçŸ9·|oý÷æöÿ®ÿý}[Îfé¸*SP6¦^$»¸g¬ùý—³™ßþjŸ±åœÍ²Ö]{üÿÿûÌÙ ãm2ŒŠ:Ëu%C$j\qF=èQ}åŸs†IIÒªµ`2Ë–7—ÓÝlW)*’f)Ž6§Û.LUM/ 5MR"דDžì |FMQýT•,¡)h=ÉU«„‚ÛvaÞn‹1ÏØÞËé{³û¹Ëqæí׿÷Ìû÷žË×’m½oæú_k7wU²¡Dض Û÷f˜ãL_K†õµd˜¨‡:KÓÙB½m»°ì3¿†,Pªê(à= ì_̽YÆ_2¾è C®#x¢¥¤¹ÒUY$©ŠdÒ\K‡m»0I$“¨ÈsĈd˜1×q†9ÑRMIÑÈsºm»0ËiœI")ºŽéª¶L““e˜]G2ý¶íÂ2Ëe IBM%Ò¶c†:K£šd*€LÍL™Z323R%SU:zR²4èWBAM`L7=5‚¬EL$izצ£W*ͳ\UĪ*=(²áZcºIGÓ9®!Lš¥ßB•ŽžU™:˜åx’똒'¹);g((‚ {9išh)›ˆØu=Q1%;èÚºŒ)8²6¢Z:QjY#ÔY +@=¤Y¦ Xã*Kd +ÚˆBQhßÝyîÚwÎZ2I÷€ +\D¡ó;ÒbÎfÖþQ& +zð|$o¿ÿ÷{ž9¶6« +ðú”4ËíÚú”2pV™L Žon÷·Ùk«íÝœ³Û¾¿ßÿžyæ¼õ{½ñïùv<œNƒÕ) ð•¦R=9‘›Ý͵åkÎ6HŽTO§OöW áŽÑd©%ˆY9¦sDȲ “È ÒgsÉ$Ò,ÅK¹§S˜mD¡ÌÙÌÞ1 +@ýSôù&´$/_ܻϻ眳ßör¶‹ø[ç¼ñö8cm}ÏûjýýÆþÞŒ¹Õ–süï½ß«s×»A%ÀžV»…¡mÖk{ííøfí÷öýfÎZ2¬ù¿_Ëû¿sÖ‚zŸ ðpÓí®çeöÂP^v3m±ý|[ÌÝÌ~KÆóç\oýûþ¸[ÎZ2þ½ÖÞr_XÊ#y]ç`òä Rx‰^.lgΚ>') $Õ‡Hf¢¨wÉì½0UÄÇ4KÑ4Kq-[¦ýÖt]² #È"Ù…efŠhˆÈ,fÊlÅDæÉìÍÈn†‘Ù,!³F "³ÆDšR´D6¬èÂ%K?&&Uhº†J¥:zªÒ¸†LR©–¢Kv/¬’]$ÙYŽ©ïÒ‘«qá’I ÐЉ?œà%g'zv‘ ÃdgèÙ¹\˜JšÖКvß^3›ÝÈ…I"f:Ñç2É%Uj¡ÙE’’¦ô“¥$j{ßyÏ~ü³qÿ¸ç½ ³þôǽüÄï‚ùƒ‚"h·Ú|awßy_¾0Þy÷¼óÀŠæ>´ÿ~ì»ï°ó·¿ÞYƒì`~ Šà uÈC­µÎ¿c»íÇør8ëÍùÖߎ½þys6»{¾qÖßg۱ǾoÍs÷Wç¾;ÎÜ󭵿Þg¿9›e{ùÏ|ÿÛ÷Ç:÷þïõ{þ5g3ݯÎßky¿‹]åæ¡$Pè2MUfJ´º€R'CNi¨ªB¡Š“qF僓êÔŠ€øœJùÔ@ð™¤ÀDn› IÉ„heJm‰Á„ªpÓÈé ¥‰«†JÛ…‰Ö_j MRHd‘@ ˆÓC ƒ#„è@3R8ci°¸PÝó»hq´ä‚’Š(úpFáÃ7z˜ôÒâ@ûX8ø¨-ºé€V(„*H˜‚ŠíÂ\…V‘a‘((”ÛG¡• $’…i•;õt'$á*Š©8Ð(¤0Nå¨ðx¢B‚ôPJô ŠDÉ£BED(ŸŒ +fN)Dcó N¨b»0ò$áã$òdRÑ5°Ø"CúÀp +ð€éLxQiò@:­(‡Or(Ð8x +ECs`I>!RÃezx—PÂêAsñ¢†Ž‘5 t‰4H8åİ]Øù†*z†Ö©BcX-Ö¨E¡á€c +ƒ ª0ãSi5&>ØZ€ÑÃ}@ЂՂcC,L„¼[H¡:eA#ð0<¸|pð|^™ñˆ´+ñ`LˆR +“RØ.ÌÃ#‰ÔGÖr Õù#ÙÐY0訟H'CŠR )‡PÅAfpK’n>ç+MšŠt!£Q}‹æÁ*Y™íº'À(Ùt2$Ð “v6•LÞ ,ƒÎ€hdPJ Ó$cðIh,N +?pJ)PA‰ñlGÄ@Øq%€$@˜*@‚âæÓ¨Ù Ø. 4p(1¬)Ùh ­!b0 åS)ð¬_1@^ü‚TÈðY¢‡÷A|ðq|ŒƒNé2¼ö¾Žg! xˆÇâ;’Ií45uΈzDÇbÓ· M’ß¹¦˜ô‡ÄÏàfÄ$ñQ¨Á‡.žÈ.®ço2á}RÉØe)mÉçò°·ïÛìF‡ø{¨([ȪV$H½L"tƒ"‘ ½À@S¾õ¢· ³ˆ†ö(Œ|0ð+r‚×AùábùB¢y>C $C +¸‡HÞp“,añu°¢L`Ü•΋~—tqG®ÇŽœ›’„ îE²pïva +ÎvUÏiwf Y%²К`Åqk¬ÊñmA‰X’(ã²!§‹EÂC€K^1Ÿ‹Bë»l‡É_H –KANh\Ì3Áä:#7P  â "¢·]Xg¥8“ôàœg£p6ªeI5p*‹‚âÂ’)¶È‚žÌŽ"c¡³tL·P2›Å¢r8iU óE©’A‡ZúTJQ +¨¥ ²ÀqÅsŒ"•íÂzCc¥pÞƒAÙÔÆHI#<¬,PNö¤”ê1¥%‘P&Fè:™¨(UŠÑ$M,HTb2¢† 9&* ™d€|â˜xpJ¸M¶73$Û…i2¥¤£¡ˆ/!BbRq ‰ +fl$œj¡‘dºDù.’éA$Ž·F¸ṏ+Á)‘Gètˆd@Š'A †‘ÕcD0üóHÄ?qÍ ‰l¦9P­Ga¡HðÄ“jY@X‘¢ÉP€ ¦Ð‡ÑhǃP0@¸ +‘†D\H Ä¡> KëÁA€çcb“¨‡.íø m< *‡Ç©Šð<:"¾yléʃÇÄa®¬Õƒ{0˜T‡MÚcU:±6ÐÅcã%†iËP™[ÄÚØ¸Ú$Ï–bHm¶ÐÉz[æ±P°Qº•oç¸p7 +H‹²),D<¶í ZÚÆmVÖ@K½P ¤:žÓÀ„3€DŠ †ƒ0P+ ‚â°tarÁo@cu2#Š?°zÐöF‡À¤6”ÔW œ4ŸÆª{¨ŽÔ×p:¶ Ãè` Ç*„"é Ö¯p@$ ‡ÅÃÁ¡(@„‚C´!Ç'atÀh8pœ. +ê¸òJ~l‡—È×ÀC©”8Rýp ¤¡†ƒ?@ÖÆvab5*XŽU#Câ¡l`Á©€W¤ÆH  ³£hŒV¢á Z'ƒÙÐÐÓ§ñA Ph˜œ +NCw,ÄF¨!õ52$ÒƒFÁÉ4(N A#Yð Ænl¶òÜÜ =¶q±©–†Õ|”ÆCD*Òx8¼GÃã±ÖÈѸ²j¥ mÃ}P-C³ÒìC¥­#šÒ2¦“6ÀŠ0i¡I«l‡ Âd°ÐúC…¶]XÊ`@ +h„ÖÀh‰´‡û i'¤•‰AãðH“P4 Úh´®eéhÖ‡£Q°6í $jé#ÔFމO'O£Üó@Cˆ4Ú'!“Ñ:ÄÃ@Û.l-•4 í£!hñkÙsàµtt»fá¨p-¡à±5þÐÊÚÀêÈÙÕ«1€VV3(QMb!qFHaÑD¢Šæ5(GЙhh(”h¦&¢m,¢m¶?MKõM#Qð€¶V¦âÑК¦i›EÓ´%Q(¦‚°ˆMÓ´ŠˆV ¡i“™h ­Q1‘44MÓÖ¦}i¨iÔ4 SC[•.Ír%­@ŒÇã™ÂrœÅw$Èw@±¤·ÛœpèQRZ+Ô¡ +•P—ÀÐд*¾Šr9¥´Ë'õÒ;iÛ¦—ÍÓÛ. Â1qÀ †oñ(ÝÉ!ÑéZK +?*‡Àóp'V]SN‹ +csà‰§aר$Èe(V}»°Õ„*¿ó ê0 gO× Eë$¨. +”Z™/ˆ +!¥—4WÁR0å'*u8ÿpı…BW]†êaÚ.ìS @¯”È8¨˜0*ï‚Sx›Iú Tb‘â"Û…( —Ð{hL ]C os¹Šì5!¯7p š6úhšF€i”*MÓ,:MK4­Àva#ЦiŸ†CÓr:@59=H4­@ +lFɬRÏ¢…8€„Å£ÊÎÒÖ£@†+º°˜‰{2Ä)ÍÑQ¶ ˹Õ7È œÀ ŠÈs€'^(nj†C²\¼<Ñ(d®kbÃ:‹à *NŸ¸ÚÜá`ÿ””ÂÞþš¦‘ŒÌEhyÈHÉO ¯EÓ4ÕÒÀ;½8¨åjš¦-T4MË ªmÓÐÐ45Ñ4­ÒqÍvaMÓN ß44MkD4Mceß•0¥ ÏA§tB š¦I2*D[Ó4-õÐ4m»° yàm|CÓ4†MÓ4UÑ;MÓ´t@Ó´ËaH°¦iZO¨°ýva„ˆ¦5 M/$šV @–Âæ!¦Z_€Â#–=ø`ôC³©¦-d‡çò Òm >ÂçæLFBy  ß +5M+Uô,³ =³o:dzThø2Vi~×Ë.¦sìR{“4¡+‹…²R³@ЦX¥yâLi‰„ªci4I©Y—D«2³8SZb«µ$q$Ú«zY,sUד,SÜM ÅXI5M9Ö€zJYv-WŠAZIµuY£™’PΔ–J5²ÖÒMQk€ÉN(y–æ‰4‘R«ÒX®çȱXr-S¨kÊ­LÒx’Ö$&§²2U%q*K%Ïu4Oœ* Ûn1¾ûoŠÁ±”f‰c QäÉ©¬•3¥%TЦJ×äTVÊb¥+ LÁŒ)3‘gy"Áþ½ûÿç®ö\Êb‘Z*·ž§]O´Ä©\Êb¥%.e±¸ÔäHsLIÓ˜R9•eš¸õ<™¬’ʙ҉S­P,kBW—TY2¹Žè—}B ¹ž%·*µLk@élìyŽœššÒ åX2¬o.¬6ÇR¨„*|"ŠdwEå=Õ–Y:9ø–§r=I‡3¶Ö‘„¦¥î¢'êÙZ•¢¬i·BS%u“%kü—ÅSl–¤ú€K…ÈRD"!VuÓî²Ê´¤’ w€žª³•©å ÍHµ•™ãy¢J•ON¦ŽYªÔR³Ri²Xc¶¶P£™ÙYfk™‘¥Ñdeèš™HòÌZ(Í*ev–# +u–ki"³ÍÎÑde-”©ª'‚ sÌÔ1#Íò”ßA6ÆÆ=5nãž2(>®d@N• È©’9‰D¢Ex?–ÄFbƒs¦PT**zxˆxø20+Ðæ‘ôíAÓauòö Ñ0Œ¦Ãê0`4Úö É+£IØ •pV  a¹˜ü]MªÈ ÕÈ<¥V`=Šð0F@@©™U³â‹€€PɸоBc¼(&QB‹)ÂZ„á‡"¼ ŽB+œ,A7¹àA7¹àÄä'ÒÕ´JØÕH3ø4HÇÇԲ܇Ê}p*ZÁÆnêH]T›ƒ£Ä†º]˜kq0Ií“€rÀàÕ +­€¢Å3éfc·¶iXHèA>üÃ=‹…ØP)T ¤Hj³Ðˆj/ ¯F´ÚU»GiTÑxç0ÑL£Š²U4ˆ°¢]‚ÎDY¼ESPe(Z#UÑú@CDSYà¶úXÉ?h€$ ÝשP$@´.\Ôsx¼>{„9¨ŒÄ‹•`ø¨¤GC‚ûNvs_æ¾ ÷,Üw²\ÃE0éh1ÚD0QR„w»0{á>"¼–Ć%±aIˆ"*Ó$r•z±T>•šQÑ=D¨TÒJT*i¿ïa²_jð0-D*“…x(’ÑHfÉh$í +´É„"$¡ˆPÊ] دs;vuÐä„•Îø9·®&!Ò¹š3½†q s5 9aµùŽƒ!á`HRjÞ.ŒƒÁÁà8VÎ +F4*FÍ ¨™õ m2V…€B¸°ÀøZà ìh¨´T„ç@°HDx§^•zUoL‘¯ÊP®Wáió3›fyU&]Oc¼Lʈc&±nR„·"Z„‹D(¢oEbc‘ÈPÂÐBNL" 'DõT"iKŒ¤ö'"´ÈpðsÕ²X™|’O:X*4-󠦱¡rZAªGHˆè¢²ÑªØP· «°À«†_°_Ä­TB2±ÈÈ x2åP· y ¦Ò(á>B ' ±¡˜0YŽíœ… (>Û…} nèt»jú€h+Úva_XÑDU†¢q©Šæ€‘ªh?Á¢}ª E ‚E³ÈE -DmÄpZ4”ŠE©nµ¬Fdpq/¨•Iu ¨† Åò¥.j,}l‚¹ÁÝvaŽÓ±"KÇ€Â/FÞ.ìÂ}'ÔSQI +«¡HDHD$"(•Ä}'«’TR:Úd¸ædÓQĀʂ)‡F2€à!“2”ˆtÄaÈ È È È €ˆØüŒƒÔïöµ"cãžlEE´‰"((Âûe@Ng@N“õF–ÄFA‘\°¶ ;xˆ 0|D0¨¡"Tô ºÉUø>‹JEE¨è MH Ò’$‰AÚ‰AÚIk´mB«Á‚ý6Ì‚ýô‚ýTÔ£ŒFÒ6„ôÅ®@› ¥Ã·£é°.¬s·M~t6¹ÃŠ`4€ÑtXʃ&çksi%\M€æD±ÉPrÆÏ­„û$¬":'¬¶ ˆ`rNXµX « —£W0¢ù"2 'ËÁ ¢M†ÂI©‘&oöˆ¬8¢á`d¨Øk9’¥Vàob²)Ñ\ئ’6 +BF@ÝQ„wEx £‘´ͺ­Ь(M³¶LÆá1YTÅ“ñµƉDüU Ÿƒ9i6ØCiY@° +\½ +‹ÞänL +šº`Oc¼’Lº<¬¤=·Æ¨1Þ +ÆQ^Z˜$R61áð0«’¹x "^E¢qO¶$S—Kb“±€á}t6¬ŠD†ÂFŒö!¹ð0`4‰ÜñZ8´ØüL¤â1€`HkÄùª %|p òÂÒŠD8ÉP„Üw²Û…¥£íÂ8¼Q+‹B¨TÒ‚›‰ˆÄ í +´É ÊK²……Á@#ÆNÑPÀÏÄ}¨ÜíÂ*÷¡rªˆz*[˜ÉPrH_,d`¼àÄæg&L]6L]<õ(8ã ›\¯adÈÛ¶¬×0"؃ëÊP&­‚Ý ‡ÍÏh› TQO²»Éý&–¯V²Õ@ð±ùˆ–0¸ØpE1”íÂ:ÌäÂÚ/_ &­´2€à,>„¡¨³Ð0zÊφà86|`ÓØ.l$¡/À½9x.舖ÅF…D›šˆ$µÕ —‡ oi‰V€âHˆƒ?pl2Kl¨’†>ààsÑJ N +™‹è4mE\,äôž‹ÄÄ‡É xõÂA²#’9T È‚iƒfÁ«a£›\ É ¼8 Ž  62l)"IJ^@Šl=4‹wQ4`(t€ ï»*ÐÁawû w¦˜ÓQ'Á¬F+Õ)p ê}dx.’ˆð‘· SÐBÝBÂDï8Z ðº@°,ɧmV„•¹ŒˆƒÉvaƒ‹Vz¹Ð +¶IsÑJ/ ¤BSW£.M/+áÃñ°Ašr‘ÃAf¤©fA‹ˆL [ƒƒIUØùi¬âB)öJÃGŒ¢Œ‘e»°‰I¶Œ T!áI•ÍX-XðEÍ+Œˆ %©©†‹$K 0ÄÎc¡pàߨ‚ `ñÊtbâ)X +>Q¤@Á’ 'ƇWh¨–í¬Bß Þ"êЩÓi¨H+s°0â†ÚÚŠB…í¨ŽN‡`å4T +Cñ9МF¹~]7Bŧ§'+…ÐÀ“½bçÛ…¤ 8àmZEj2¶ +´±•&P(\´ÒíÂ. ”‰NÀ¬ò;ÍÁ+aDóQ +u»0õàa²"wPhœ‚hq$ Ô”Ó +"Þ ûHíÉW 4L.ìva©ÁÃdG«–…„Àññ=ÑJ5ZÁfmŒWÁ.@hÜ‚~j7‘J> #+F<( Õva ÜZ1)#0PŸ‰Ã§ÂjŠí Ön4š4Ý„…H¢9È,‘Ý.¬cn.›ô*ˆ¼‰„ +µ +íÂ|Dd?/b@3 +­ÒÔÙ.ŒÂÒQILÈJ&ºo¤:(Ó‰Çnƪ®f Lv8¡`hQE^‘J!ÄÖô8€X$‡§KPH©0 YÕÛ…1H>m£˜nr¿ŒËV`z:vg¢ÖÉzÑÕ„PŽÐù”" 9ÒjªE€°Õ §w†¢I¸@°:^G'ŸìÄRv-‹ÍÂ%ƒ¢³6x„9Ø.Ìàa@‚3&>Ò(Oª ‰ jájÄÚŒ„=£AƒAµù'Ð[4™€!c +4öP.6¯) åâ¡\ì…$ÒPúÅÎP.l@:ÜËéÀ +´…"6¢ÐÈTš£h”’"EÈŠTK„ÐTJ‚Lr@ ²˜Ó£íÂ2ø§M¢núd”Š*¸ƒ”ä²–6FDÆÎ\øŒíÂ4 +ʺ…@,ÇÇbVA†”B!2Bºr½‚ØK餸ð„üäL±Åj*8XeVy[¦g Ì‘…¡ªzŠT&óñU cE¡apJ ޱ]Daá – ¨4sh“‰$¡BÊÍ` I3` ‘ +e³uÚ3€SD4R@B.*"’É£8( 9‚0 ƒ ˆr +†dC¦?ˆƒÌ5'oÎæŽè1Ybý‚ÐZÀvTê ²+\[]·‰áV¨Z v¤KG·!d[îg„dâm``ÙÃL̘ËHªˆb!Ä‚ dZä¾2Ñüƒqù½) ž­03kƒ€7±·J²»w×€7ø” üö†¸Õ}w•&uo( GD/í–DQ GèDáÆ»99g4]‡Ì€3!ï˜,Á0>îÚmµ1’¼Ñ'G1¿³€H>NÎÁUb>}jr$©åÜÍd÷£…b5ÞÇê`2ZB‚¢$¶ó‰{PTtC5©€¬“œdÑ4`ªÖ<ö>YšÖ„ñ¡• _fÈ -©,ßSÆ +YÉŽÐΧƒCO‘¥ÑT~ `”€FS´×yr°‰’”À +ìVÈSé(€QŒˆ:ä$ö3šË@¯‰'P ¦ó [gɺ°¸¬µðÄÄ`´!À~+Ç$‘À>·h +`ËbnT3Îû\ÛÁÚëç?NÌuõä4À°1F|AâÒâˆQ>­9÷{P!ÀP¿f¢m+Q\iËróò:Àõæêã–ÀäîñŠ¢ò2À2ýSsë0fŸ—ê‰FY €j­ùÊ)ÅÓÀ¤ÀLD‹5:8M>@Ä*|hhvdt;ÜɉÕ=7aõØfYx*#¼ Rgç}–e†ü"Ëå–ŸÝzØém%õuWQ’¡¡Géc”=±%ÉŒ[;WòH½pÛo†¾²¡€ã\,'ù3Š6øÙ•e‘øz«.(QaœœRÍd£PÇÅ3 =¼˜ª• +Z¥µò2ÑçÙRôÇPÄŽ„"œßT†Ñ+R‡ÿÏ•A‰£Vy N‹j ÿ…žµ±e"ëFAS0ú ž @:xÒ·4&Ó¯.èâBüÝÓïyp»Ät9a_‰€!Pµúyµ!9þÉçÉyÖÕT+Ñ”‰Â£H幆°ë8è‘[|-fB-œÿ'‡aþ—¹¬<ËCæqž\\—¼•Ÿ¨É!§ƒ–Åk:rî ø%ßwÇ„àZî¼ ¼ÇÄòB»zäø—L^àhC)¯²ÝŠ“wF²ãSc®-ãÉŸÔ;½wÜD$!­3MâÆ¿3„F•0 8ý©åÉ;¡—Së‰X#Zc÷˜®QÖ¯„¶íÕ_¿^á›íã\–H¦–ñdj ýfކøRD§Zd\p;´6µ/ž¥$¥¾› £ÍJ…&…óôù”¨/H‚-åÈí]\‚8o±‚×Õ°;¸PEÀ6l¸²V¼ œD}‰¤ Å ¼5*¹…ÀÆ8¢CnŠSᕨ¸3%5cxiñ¥À*.U±0¿VMüüN7=)ümä¹uD€ü÷p5üW“ ÿ‚åóQ¹ð¿±ô§ê¿§¼²k¶#Gád8¤oßÔÖç«¡|Wƒ†I{¶òψ‹þÖ1&«œ\éàŠw|ðj)æN ‡ûb™¬bÎÓy‘cz¦Í‚w ˜Tx;A (?¤9<ÕìÞûßÜËiÈ}˜3Þ£"¾.ì•FcìGUD0÷ƒÍ°RfpI¯èäõý•÷®ÞÃêäÛ §òõY·¥¨Fº ®Ô@š/ivâ@~f&-é8ÎÅóÑéx&ž+bµ5Ó} ¾®ˆ\aÌÔî„ÖüÕ¶;“…Œáð$[6P*ä¸Ô“/´ÊGà7šÜ+qlTR'Ó¨_›ôfÙŠ¹ÛuMú€êˆkf|©Éú% ut}“šÎŠ|t¬|FjQÏ eAž*ÈG}‡/×7¬éÇ:¡á¹¾Î“¼¡Å‰ +õ]ûCGð”v¯¯¨£hÀʓڳËõ¥¬˜¹XôZoâ0¤¾-³ìè¾¾XÃQòôœ__ËÄÕ ¤6~d¦QÇü6¦öùê µ˜ÚºFpäñ!×B”–LjsÇž®Œ !DH‰Q ¸nà¤`ˆ´¿`•öà[<Úþàš¤Z‹Eœ„²'Š_î³VPާæ¹Áád,LÐ"ÖV„Ú(Pô²Øu™B 8ÈG½O•PŹïÞµÝ}²§â8ê–ÀI:S]€ãŠ‘{ +¸f—I_Køe³K‡çw#OW§Ð°a·„ýÿJc5Ž¹Ë‚ |6Í6 ºøÔk¢ Ré© ìYókÞÔn öúNã2õDZ±ë’Ö¾sÑÌõSÕ®_ººÂéK'×°åL=©)Yõ«Ð?k°3 ›c´NYë“Ô<3áÔ#¬·l +†qÀýQ ÑT:ë¡ùÊ“=7ýȬYH^jÂ÷yêýhÓì„­:µ£ô(ï°öu|n¼÷¹J”ÉÔ³ŒÄßuýÍ09·V¢¬&ñç­8c£`ñÚHá$½¢û–š§+Æӕø%ˆäÀ‡ÚCh”+†ÓK" +ôï@£Hú.‚u醕§›¼ñÕ®ç@ªè±²K†’‘Ýi 0c@GÈ )`xŒÏéÇKÆÌ n=™f"ë âÝE–Æ…'ÐÕåî—t—®£˜9@¹´ÖjþutáðøK$maû´ƒãñÖ;c–û‡6QSÖ9ŒSõ‡ ü Àæè^ ’ʨŪ.”jênÞtl¥i€½øZÀ¡¦K¶IGW*yŒ¾¾¶ +5¦y(šà;Ruaä)[î©Xðoz˜Š]·;^ì³òöz Ûžғb¤ÝJ©\æs:rê”#˜øÊÝ |š£,/k¸¯·?bÑ}¨ÿ rN^SÀÿ7éã,ªE.P²êÖ„÷èŠjo“¢°`‘ue|=Éq&ÀëäՅز™$|÷†ƒF£Övµ×Ön@ q4[“*ƒm7ÿœáã*Ñ…Ò#UІL¾Ì£?“):ëìþ±B–X&þs%O,T½ð$oœ5¤ú—×,Ô()Èd+4ÆHäãÍåöuU‡•|·ös(”(—m…(ÍÈ?ÉY+B=›§:3]ÿìÌlKc’.»ð0sÆèÏÌ>ÍÈ0ˆþÇ:˪l}¾y±žÏ¦…¾£KÃV9Ç. ˆ½$H…­O®}eq6G¥-íö©D%ü›yÙ¸S‚]XY1eÈà­¦a +Í»„ûÍ}¢Às]ÛˆT)ýZ™bc˜©É‡è]øéwú{¯šçÀBüxý¸>Ô('KDÙÁ‘–ºžõòI3l…zÉ%&A!‰‡•`j”,N,Ž„vö¬Û˜zRÆO Dã Ù¸rlãs=†×tg9]ȪMÜÌFed¤ +3SÛvY€>jÓc jƒ’ˆ‹ ƒ«~‡ãK4?ôø1\[Ï9XbR0öìÔ@_A5µ Béùi}Û+"“>m¹mÞ­GS§øT—kåÊn(üjk™ï¼ƒ¹’ñ +ìi½‚¯uä8‘¼tƒÅǃ>êtø‚\g¿4Îȸ#uà_6€3æ9øiu´ #p`+²@ö3M‘òqóÔ«ïÝÈ)p€ÐR^ˆ€ËžpL¯D˹š´OBÓêv/Ô¸Hîž`%šë)o©Š*t\´­°Ã+ò££ª8WfXbys°¿\ÿ¢‰ Šý׋ Tȇǘ”ݸpT‹Ïðªç›²9>Í«–ë3L +m)ÆÝ9p.‰P?ºyzÝ0H› Ú!!vp0p½6F$Ô'î쬩>ÕŠã $ŸÄÒBSTp¡+¤ÁªŽ‘ð–ú•4Ú4­oÐcã4I»¼/ˆFúžÈ+òu¹Â"Üu¤iŸcuëòFínÂÿ‡Ü,§º" ôA5ó 8™ð3^úG5´½@gÑ,›Œ:ðÁ›/F¸Ôrd>V£ J?.# |ÎÆ=WЉ—*Ú{fCʧv€ ï)áøÓ‹6$šA|¢š¶?Ò~cö°OÄ܈ÃJÉV‚}e5(_¹2ô™õD w<Ð6tœD…Ú¢DémäŒ,˜'¢©TèÕ¢„fKÐc«©›gòtjÁLäGý ,ù)+Ήb ¯0}ÉIÍÈábz6¡´îôµµE6y0–L8É‘˜pÃ8•ÿý`Ø=Ì>Xk˜s0XZ?Ò<üÝS;ÑU +®K¨˜Ãœ^e“Žƒ›Ñ@3²&ÔYKÉÓ½í:jªåz8RáoÐo~ˆ€¯5[øÕÛ¢3!ñK<N”ôôwBH4–ŠèŒÖ ‡;q"~û›H™Þ LjÆÔ8÷WÆD¢væo~ÂwjÊõkÙ¢ G +?ŒE#eí§'àž)6‘eo…hŽÝLºÊd·g{܈²žíã“Êüá 13$e±¬ê˜X\ô¥‘: Ð~¹y°ùly,¸™©}.âmüÅR!L3i)XYUpöO"‰œka–L·D¨»¯%Û¸)ñ˜€zEò³(ý€]¶QcEK³]\|Y‘ÄÅçåt3‰Ot_“nõÁ]­h®‹EàðPO…Ks%ì[ 06fÍr4wË€CÀ_Kƒ(Ò²|ÏïùhÕ©‘[ Hùßù]ªˆŠýïûÞIæ]žË“O¥,¥ÜPý=÷LÞ¾ãÿ FúÊ®¼bàˆå5ó4u$e0àåšì.îbë H,‡ÊZæ ±Ø?–³–&O®Yz[ PQßW¸Öö7‚@t–ÆR`à: D]w3ú W.«´,Heñj„¿ÁVE/ÏÑÔ'r%Iñp5ø7ëRÛ+ø±‚×”¹£Êt·ŠéŽJœbw€úwDã%@!uQ“'Ú×z@WP¾îš! ÷S·xaàl”àâ;CŒ~kw +Ä©94û¨Uï€#\u¯km=bA¢‚W¡ÁÓg”hO”]y¨ +nbhp!$›€Üü/YP?ºË‰ ÞöØÖãèlâwÏ›ffo…(ª5=Jº&Ð?|V·èJWˆòn}R)>€ +ýâUàf¿"ÿàȲBF­ŽŸ¶ük y¹°µ[J»zÃÏ:•Bû3È~èÈâß¶.ç\ZÅ¡]¾c +åho¶ñ¹c¬ž¿¨ÕŸâ˜Ñ¿¾ø=VÁ¹…7`pH…Œëfn¯™•[»7àþ)§ßadÆhÝ¿9mŽÜoäjõ9K–@ÌK6>¨‘(¤‘·Ôá«•¼¯º—¿ò’©PÃFj¨ÙC­a˜zŽv¯°‚é,y8â‚¢]¼XqY/“Ž+3eÁžp"È|EÝD£2®ëÑ´Kg¤3DÙÌX_2“¸+Èa \šße.Bf¥…1zí“L…v7iö ´‹j&c‘—÷c?SÆ©¡AŸè(U–'NÃ+ÜÂ|Úœ¢ef.ýÀ3µ"­ñÐÕ«ÜN{yÂÝSMg‘šoöÂaÂEÙ¨ãÿç‘ ,Æ5˜úýKI/tœŠ?;‡ú@ ¸ ¹À'߸Ñ0ä}Ž´ëØÍøK!ôvd,“+?#¦7²¯àªö‹3 b$ÅÆ>Aù =ÔRz/]ï'”OiÇ£zS‹aHf;c x ̲ü“lUÍeùä<4 +» §Ùвý S ^¿6/NùË/` ® ‘ƒ^%jÜA»Û$"’%&=«¡Q‘ Îa§œþFÍFíJ í& 6aaß¹ìÒÔ“UÑñ,çÉÈB2Ç…·GG‡óŠ4róú+S‹Íc¡]s·8#<Špl9à\1j÷ä|4¡“g%í^öi)[#O-Eè.i»¯ß¦Oó·Â$*S{½x…Y+ƒo3˜·$5 zǼÅOÿ1ü ÁXæIÂn²«áÂoæ@ b\³S12°tl¹Û¯¤˜>4dÕ¯wmæ +ÿQa3­'•[µoá\î‹$âÒ«„šíàÒ’ùÜë„S~€åNþvÛã+7¸Þ"FPÀ¾1  Ç0¿eÎ4£žùêšÊgÆ'è¯Yt„"y€É4W‰«ìR!öuËGö™AfРĄ™|HM¡ÙS té“¿±Úr¡Œ¶D¯ +Z6¨öwýJïò’äA§¡þÂN Í6a*TdÈA+›«Ÿæ|¸Ô³ÅçFÃ.šyXJ‰ßÄöu½W–pƒ°Þ‡E êóGµu¨y„˜·£Z‚Þ$¢mD]M=¥<kâr†ëtr/¬TT¢ÏÍûLxm:N…Š;q#Bë0l2 }â-ñˆ ¿ÀÛ:‹©3¼|N\t= Œ‘ \ëñÆN¦VžÇ»É-– +êZ#¿§œÆ1™½¹LŽ2€Ó²®ŠÌßÒÇãÓˆWð2w9(‘rcÊ1v†G©ŒÙ×@ýS<ªZ „Åæµ¼ÆÊÛ2‚’§ÒQ.Úò‰K4Éô5<ª3$ˆ9Â.#h-q}ð(Ü×Ôar¡E€ØO3A‚Ù8-«Bü²]æÃ¢,6tfTXªs¤!]†ôÿBúq‡K=¶tÉw\/ÒþA6sõáæºt÷íån‹×L¿WË2縗:н*zà`©ÊT­çMÙüãbN˜MÁ‰Øx!òqáRÈ#E§êKyV=SF‘ÇÞ¼N,û MͨcuòK%  0sÉêcb +ùÊãÒqÈÉÊÐžà  þ2K »<éðñº~6á_ KŒrȦ!Øz9qYxn‚WÏìÍôبX¹X I_9†ÿñ0¾m5„²k¤M6f‹ûZ##¯´sK‰á·…Þnq W½$_ +k† ÁxQ‹»ýap”}”eÒ0>Æe´“$÷ªØ‚„ 駬¨4€œ·ìh-'¯yË/MCìÔªõx˜y±#àœWé’Uæù†!à³0$]F0ÈñŠß Ó[-wÛ^Àæ é] ïÌÿ¸Å%H³…4Ó6ÏËÀ­ëœ×°¯bjÔ‡4ù%b)ÕJ\úPw1cC’ úž>T#k´´ë¡/íº„ô7™#ŽUÞQðWb~[=~'RצáE|—-µŒäsÐàj%H[éÌtÿ„o @ÆGLóÃå4iªEã''Ý»þ¤˜ý–ªœ„}a ’9H;Ïd¼ì㳂ÅZ)‚z©aD½3öÁ0˜ûs5°ô±ûĶó ”R‰¥Ôø— ×~Öh¸0¸%&ee7Â0Q–XíWÜËF˜3Cé,ôÖ&ü)[<§Ó€¨ÓS$âCEÛùH»¯!žq#?ñŸéƒââÔ¹òpÙÅ­;5Y-ˆ@íMÞ Çt†˜™Þ™ú“þa–‡O`áˆlËÇ<Ò?Fm6§G¹sgÆ]yè?Q#ÖÚþÅ.ò~KLü™ADÿ7UoÒ{çQU ” ý@»Õàþò~` t³TßgIe +Kr•#‰k^L“)+CÑÆgVBž¾3ý8dжåY'”dáŽûSr:4§- Fކ$TIö²<ë?wJ1¼U4éñIÙª‡ÝÅŽ˜<œ Þµ QÌöw¾Ì½ý0Y “[Ÿª„iõ¶ÇK)ÝaãÙb5%¿Ö‹îsÏmH‹Ü.Zw¾–óîÁâ}§¯Á‡Í*É—yê0_Dv8kÓ‡ží•ýªOüÊ%Q®§Š ¸‰I ÈJ<•q€è˜˜ÚñeòˆwM»RIckm‡ªÔˆ"Ñ{(}Ýu¾¾6«úðä[´Ì-µ_ßèÞ¼¾¼’ÕN6Rûúxµ³EÞ‘ª\ÅN0å(9u¾`WÁÒ®ÚJv£ë¥l"à=l¥Íùò$íÁ5}ñù³5ëãäíNÑÓ½1Ê|b÷ÔÎ`)¬ÆÚº0P;r¯rÎΑOo2óèäž´Ø"‰hÔzbºÕ*('ö58m ±ØŒDÔ-µ¹<Å®u)…µœÐ‡‘ùZh‹¬ ÄÞÈ*pƒØ‚Ùkp®GÔýPUf»¤3®·æª¸õeŒù`ûûA m‘@ß/ü'³èjè=ˆ°ú b‘0¿ +×¼A?r•Á#Â:ОO¸ˆ¦Æ÷ß§^í3m¨vø_k Ÿ”{Ýp1yƒ?œ·mtv8z¹(,®Þ4‡]Àw6bÍzèø•h† /[,ÓŽ-ÒEdczrô^:mÒÌØǬxÆ>ÁpÑé‡âŒÈð§~¥l?ébì³°ˆÌ‘O~?@8Ü>ÞÂ^.“-4£oÒ¥G±]°ÚMÏšä*,öÍ'”@ÒŸˆµfEFžÖÄ–HÖœ­2ö¾ á#Å¿çN­ Š_¾%cŽ¥Šl•¹\04ÏÑ-É ^é»òÜÏz ê^#yÿ¢¾0[æù_W§\&Š1X§ jû2F©é#°ÝoU5Ã#!SÄSd€ÉŒ¶ï`EÚ —»±ê÷‡¤”± úž½ Žv¿™à¾æ;¤| ˜·M>†ô7u\I¬üæè7¥ÆÕƒNG¢œÿJÙ&F/qF¸~1ÓZ¨#€('\xºõí©ÊÍâ²þ͆à‰Ô‹²nTpšvæõ‡šäʵuP/'$Oß‹zM´.7"7kLl{Çî^Ê‘}ŸÕ¿ÌIB“iR€ìÁ¼òÄÏ·Ó¦ P{` Y‚„EX¢ž ÂŸÙ^D*Ö*Š!Ȫ¢\à­ƒçTP—4óñþC3îwv°o[}á{ÌÒ¤º½ˆ:rû¼ô÷q·æ9˜ñpÊVä<*PAàMD¤ó—ÄAÄ!N YG‰¹kÉM OŽ×¹#dD¬Ñž³ÿº1’xúãWr¥\‰2•$<²ýÝçƒò±È¥ëj†6üŸá~œ +ŽÇ¶©8x€éô­««ÝfÊ*µzqr½i~墉t»†Ö¹43t¢Šô¢Cm“"s"5“¡vìw©¯ª[³êò‘y츎_hrøVª3íM |„Ÿš?Àîþ¹[u®‰{G0WEŠ!:TbŒêãßî{¯«™QŽ| &z”–OBE&uÝIr±Wô‰ŽMH%Ý;»Ø®Té]ÈÇÄH¿™9L˰òÜW‰³§qi‹—LÊÈaX S>DãQ–ý)5à*ò€ƒHÖã( +\']:®Cãl J.ã•»0m­ãìËÔ%§™8†ÐÝ@ï—¯ +¿³Î˜‘¸™$ØaÍÇ“ôPî)‰2ãïB[Š?¸< ÓÒ啸Ó7:"MKW]憎³$Õ ÙäbÔ·7«/HÐL®ó( Ÿ[y/(賂/³T;sÇ‹æþLcÕ‰ä^ ˆùÝXò vT’} 粓µè +"måfÑáÁ¢U~?§¢Þ“ÿ;A7],J‡ÒÇa ¶™Á’Ká•þÈX1…¢êËÈpЦê"¼ú˜ƒÄœþ^ `‡¿¬¯é¿b°ðrûq})Keú¦°vDSÁËcý Ó•ñz ašS6»QN"DØ—ãTTÇ•/Ümw“ÀQ:±N–zâ%cеÌßìd•Oá3Õ£-X.ÅìÞÒWòt»ìKq± :A.CH(HööhýaHòå +¥¬üJ…èê•p•ά9rL¤Šñk1îÈ”½ô¢$Ñ'†èÀ¢#6§„¸;ƒúpó»±ÏëÈêÌ£10Ød`mÀE]X ¹ÇS±Ç7W:¦9Ï\‡2@ÿ–ö°›–ÉÀÿ )O Þ¦UÀ¹Zf!mæ®I»qSÔc¼(Q‡Ysô†\Q–«((­ÖÒ`õháÍ'¦ dñƒ_]Z‹Tj0ýÓ)gÜ àè1ÁáÜ6nWJ +ýðsà‚NšŒ«“]°û*Ù1ŒµH$56Þ*ƒH&ä=wz½K›ž–4¶›D†Rh99Ýúmœ{Sw5ñA[#ŸZâ—XÔ• Cãß8ýÅ·(ýsÒaz¨mÕéðqFÅ1I‘b)’ÝjWÏ:îqÞ•æÙ½Ûf1Ñf! í<¶¹>›¯›CC¥ôŸâwÇW>׊^ æd &V +Yî%²ø‡†Ž b[˜ ú„œ +`WõÊØuš‚\Pl$TJ ëòràÓÉ›ý¸-D)@b~ìïÀ·^[ËbÀy{!˳"~+L{ït£¶x Y&!}h´ íw©¹¶l ?µ)´a»G_v¹©ªg]‚zôÞoWN‹õ‡eƒBÇ¿©«ö¡£[×)-È@î,¨º +à¸ûåC‚øßôznl³Ów8YêÛáWý gÑ@:íž7¬Ž?øòô)SeÎ+£Ñ›^å!ÂDI¡jêºs#Ó¼&ãÃR°bª3¬üuýKnP‚ô°¦ã¤úÊ„oŒ¡Kÿ¶ÅsÃ|׃eücî¤>h÷¡’5L‰xÊ£*2û kï’TšÕÿñ~\ wÅIx)éx¾ +}޵R†øÈ]ëa7síE£VéâÐë2SšÚòKHmõž ç”ªÏylûËÅÄúÞS°ã–çiM‹ÒóµÝ?¨§Kß ½qÙY='%FÿûRô¡ûRí8…NœÖª—7?‚O?¹Œ{£H¹ù*àY„¿<±¯ø“nÒ†@„ã;Q` ‘Œ?Eœóºc?Ó¾•–‡€3} ”é÷«nM÷ë·ý8·ßEyÜÔŸ îRˆ³Å<äKÙ–ÎS3™êiaš(˜|EÀ±b†dCËÐoqã<´SJÚN|]xÃîyI7±£Ð±^Ø”ã¸Ï¹>ÑGÎ+‘«ƒ ägðægI^Â2K ¢Ôc_ݹÒ(æ.@¼Ò‡ÕòÞP9"z V +—+kJÄÃà âåØçæälÁ1Hè×ɽVkGðÆ·Y{ì]‹ÅëZ7×jG‘èqóÚ‰ÕiøéŸ¨3¤_~Oýj„ R.ØæmÆäV–‘'+® ÐÚèÐéSbh¸g}ËxQËw7ó›ý£@|ÎiÓUõÒ +éJL¬ßdº¬§ ”¥Dž‘$âuå7ÌD—Þx#–?ÝU)yH/zþ]¨üJß"å|ÓÆ xŒò5@(@ñ•™#9N¤‡v)l<€œê¬9j©ÝÈœ‘GŠÕRßb™ÌÊQ+9ƒ+äVs%ZKBàLħ˜û9`C°—dF.È> -ÄÊålö[,Pû>3™éÌ‹©–S¡GLŇ/™ÐKò¯µà¸4D&iLÇ8NW<¡0­3P¹™É”}8^k„hö]‹ jYÄWbPi¹d*ÐKÉÏYRÀ€FìÀŠHÈ…gSƒÒÛÑ•@Là:ï+¨J  ;`ô“)ÒÐ|‚p"POÓ„Õì6à ÑÍчÃ/e¼š™ìtð#MøVJÃXÆ>ù. .tú±à$TIö7!ïˆ ¨Ò ñûÑï@“Ó†Eÿ+ZX,ÁZAÉ™ì§Os¥‚ÉÀhòC'Ôs3~6F }œ¾iƺ?2 ƒâÕœó\©Tw=Ô@âå²^\“ûÛµq>ä¼¢°L’NÕkÊTñèƒ[ÇCM¨Ð.†Ç~àŽö±9—W ü«ëœJ +•( >`4¬Ã²°] +ÛSv-„s‚àŒ’÷BR·ÌÅgÛZÖö݈›ï]NÐc¯[ìäLëGÖØV` žñeaÃÕ°‹õ·üSÔì¹í[r/•¬¦ðâg“'vYl¢S„Hñ÷Ï÷Y6²k´iwÝ\2t7¯/$á8K_MlUGY-Œ§àa‰5»Ë–YiLXä#6ø7D!Ò¨ÁNMŸ»¸*¥`œ©-¿°”ëò$ù[·=_¬òS8wJML,ÙP{4 s±‰ã¥ýêïÆ¾4T§²G¸õl·]íßÏWÖ77ŒÒk–„A—{œ†¡˜wƒÁ·lú-P¢ {œ‚Z`Ó‘;oñ½÷Ú°øŠÃ™³Ãz/qu¯ÈŸ¤ÜÏÛÙÂqå’ ,»›1e+º¦i9TðjÍûpg@ ý }(¼ÐøÞÐ4 m}tG†2=PzEPÇG“ᥑù4«™ÐÑ,¢†v层Ž^‘Ù·Ñjb·öa{ïÏÛeô%…Swk—\= ð¹ jú‘"":ÌŶ_ãõD¤Œ„ûÁØØÿ'²ò±ìÏ‘N¹*ÆmYÏE—7GˆCr&ÿÄ!Á_°J uY±Ï›á†Ð7ôdl£—½Õ¤¸‘™M‘+cG²˜r/’h#òÐ ïíñò ß–gÉ÷]Ì£Ât;Šƒ•ÓÏÈA=õD¸ñf#`HÄ.«ñ²ï‚ôG·5A²f0àà·-!Ë•H¹ŒPNô‡Ì«ì°TPMœhüÃéFâ"ëHºè×¥‘’­:Î3HÉŠIsŸ,¸ûš½^·§ì,J’L»ª?$¾-üð¹¹ß—e °æŸ$²ù£×³ÙlJ%(IÞžzzJ6 ÌƒËxÈŒ²j€ˆ3xLã'IÃyÊò«å.RìŸnÿaQèÞ í& (Ü ÒwͶ¸Íµ}4]‘èOWK¨¨&ÎG¶!f·A;ÇV¸ÎxD¹¼PˆW2Çîâ œaß”&4fÍ1ÙZˆgmKwÌèds> "ò²Éƒ$÷+Šmñ7,j®õÌ[HBé?ÓROZ„ñL¶m¨uúoW¾Û_‡~)rl=c\Dcw Y©ãp X—a>ûýP]¡oi¡Ö¯Yâ¯&Émr­vº^æŽïì¡›!äͼÒúáÓµ×µÇK¾Oòâ‘W½:ð0SþoŒ¿‡±Î:éi§‡šmOÍ’&Ä¢Ðì°è˜Cò;¯Üärî›ù'á8 Ú7, +æø»$b×{k2ÉðÈ-°z›}×|”¡(¾ƒ•÷äâ^ao¼h/;ö¬­ƒ!¨g”žcCêâ…žâðÔg§‚ƒ2.”‚'ÙT_ìt•¸%“%ÁÄS¸”,,YžNÁEJ‘Hj0RÁ) Hõ>ªåQ¸Žú…£FW•uÔˆ£àó±l#eíÁˆÒHK³ó3£½šºJè©´8Ù8é»ÔÜŒ¢‚ Ò¯HÅ[SeÄÈ}Ê)òÆøŸgôÛ®®€ŽžæCÉ…JG d¥Ço4cf¬íÌ“\/<æìƒHD«÷K‡z%Áæ‰ÕÊJ Ë[ymÔQd|^@sÔ«k.æ -*Ñ@$êÙP¯L:ØÏá‰×õBO÷þ1©P‰©*:¬Ñ/БÀܺ‰ûZQa†‚q¹“ÌrÍ ÃË"\“ ?Ò\¶¬žtzÚìre&*i–h+8ŒbìÂÂôþ#œ´÷¼²ªzút?§4l&åFKæfªNáUSGõ§‚½ŠûÐg~ +òOßx÷]`ÝŸâšve)ûƒ«N@Ó¥(ú«$ë Îɲ\ÑÂ=ŠËô:Æß¸?ò"yÉIŸù?XF¢å 1GÌTÕün7iÑ)Åó8Ÿù)ïýCÊzúN»æoe£0—sD€),EÄÛXž¡ß ¶ã±.7Ûž›c2­×p@”]\Œe1v?D›˜qúpè³ñTt&2¿Á…—Ü:©ø°ÖDeí`„ŸËšðð+1= rÁðte‰ÌzZÕ5¸YàaX¸^€—åÄñšðoÙ:MóÄ•±ƒ×«‘àà8TwÕ¶ •àC"RÖ”PÉ4&ä¯Fb¬îI™„Û-BÅòƒò +DGDîF4)òAãfˆ´æÄÉÌ]²ˆ„9¿öáÓÛ§ãû¡bõg ß.Å‘È0L¹gèýèû@´<·†êsû³3^;¿ë;p\â”JT«p•qØ!™—¼~çî‚`<Ä¡Aî•ô<13¬míKÓ™‰ªhükš2 0!PÄ@Úl°€8zú fcZIõ*3+jcÌ nY•7ÇÜä_Þê°÷ùM¶öϹ fÆ tƒÅ´\É¥¢WP§7£Eˆ)´ïàÉóHD”„¡Y§ô/ U&­Ý€N¦PKc£“VØ2)W¸ÊTgR4Scç!—„ãÔ`w =H%uÅëMUùÑÄþt§?šä#j¨ÓÁ¡‡ó†±IFw)9ý3e’ÕÈð“;,,?qöa”Ìi-Š8-ô,žûƒv±qƒú?ÿú&l[%€É×ɺ–®Ýqq¤Ö—•vVJçÅ©•Ï1Š£Õ¥á…i¾ÍZ# ôÍU&[ù“¸Ž±¡C<þ»õ±‘þ)ña‚Yó̘-fZ ·5 +nàû?Ô÷78ŒÆl©ÿå)1…±)¿”rsðsUÅSÀ•|^TÉ6Húx¢ÀæÉ…`åp«2}„)yœSdŽ,î– +Æu8®©ÑI+Üè_ï¸oŽú߃‚å0¼»Î +ñ]µÙ#qÚuuæE¼¥™ÿ±€7e€;Mãs.&ôMŸP‘U@+5-a¯QLŽ(5I9|m|GuŸ&KP%Š ±HBh£¯´\%߈ ðÌá1õJá°ŸP’ÌpÓkñ«1Ƈ‹?U 9„aW4`m¡~!j܆º ’PZG‰Éî­Ðä±_/ ‹;I±ß¿v¼ÇÅì…5Ñî2û~…ÅûÁŒ•Ê,ÆÂ-×RecUЩNéòVÖ±w7Û^CZϱ/åó1VrzªQNÒ%ÊpFP%­Hb·õ i%è‘ÿÌ×YÒßrÀ"~@´&B.°^N†X±MggVÕ•ÐgL!ì5ÙßЄÒûEÍ fÌú•F4±Qs¿±4Ð +©V: EQ œ³¹æg‘¸ŸC-&=”ô@Û²•\¬…µRÒVת,Z÷SJEÙsÌ;„Dû¼úãá´¯l|í^GïR³‘¡S½K™(½… 3zS5zŸšôz=ÉÊDz0=6 žä¥÷5n8×í¹‰Õ¤7HL4ë~Pº×Œâ'’o32ßpŽfcþzÁ ½]šb(!× tZzüo‚y ¦ÎÊÅ%åË_ðƒ°¥é? +·u((§™Që|³}ž´6…&kkPºŽÌg¿«Ðk‚(ÔûqE#Ût­`-laº£H? Úà8S4Á¼—2Õw‚¼5ôLìzu{¦f¤>iL×ô-XƒIõ»btJS&±˜Ëã㺙k÷ž ˆ}œä>«| ï ‚½¹Ay¯=Ê‚U hÞ7£×׳ïÅe[jsÓ„ VÞ6­ä Џ¡À‚ÓšT'Ô›r!§:¨ZnæF\縨Ü?5êÚ};Ór ¨Ëi) ×¥Ȥ Õ2µÍ ‡­ 0 ÂÒØÑë %c°Žáà$w“Z爷tÇå{ +ÊiZì_׷忢sa&‹¸-om¬‡aäwT‚pÚëL.äTG¶We „Ã:&N4­±Žâà$÷Ê©ðuÕiu=óž<Ò#ëZôä¹Bz«³-½õlKoÿ‚ 3z—^¤ä!=ÕÂ-ð'½‡©=ÖTž"d½Ã!Á”%TDK G@’n+¬F›c =[ÊߨðqÆP·KQ°¢Ü&†I×qÅ"ôïã:çdAkäÍ“ˆ êºòV±ÁÍ¥²F4T4xÝÄHDÔúqx<ÂY×…a²}\÷ú*íR)¼·E‚Àžn¶Á¹B< …m Ÿ?ݾZFÕ*L”Ðâp¹Yz'Ý Z]`õé~ÃŒ¾³v«ÉýEú[«1ž&'‚hEÊk*°ËÇI°Ú+#°À†ÇÑëßK,Ff10§TI8‚„º9ú 0¯g„•ò 0,"þ÷èT<ð°bh.ƒ×zÔ¶èVou¤@³ë©µk°´ÔµXbœú§1œú¬Œ˜úlÞ$úBênÊñéIÍÓmžâé¯èé«”@§?¦MOÁŦ›¶¡ÒU!¥‹J×Üȸ¿“ÜÙW÷³fy;øštF¶n¬ãC-ÆÊFý^fC3x×Á]=1û¼Dê¬ßð>Ï+“[ó‡©#Æ‚dèÕD['Ná¯ÑjþÙ˜V0«k,H¦ïÿ¸nNÈ“†DM0ï›ö+#ï(¥ÕM”r‚Lq®Mó‘|{9E’Þ -<å™UÒõƒLóã#LHë´S¨²Sñ7!­±iHŸüЫ›xb0çé‹@¼+l´êõ6!1\‘­í¬‡zÑö€ûþq]ç¤+礫†àé ¶$*È÷ÛľÉY©‘ä¤ëxÒ›ñîE!•¿È*ß?ä 23éJ(3é:–¾–ò²fÇLº¢¾Ò·¤ë˜¶ß/1§Ä¼—J8.lÌ»¨Æ²ònÂ+Å~’]yg¨¥×ÔU ÃU'…èÊû£æqœ£ÏgÒʳç¹išRNבøV7Èé:h›‚rÊ'¹Û£t%Móã§ ø'"Ñd””>Ÿ{³º‚rš +S5z£Ì¬ôÖLôJ^z˜³-½½ŽžD€*CoþTÈYàEz7˜dð, §ÕE% +km Ã~\g¸0ìc®¥¼ÌCò-Œ–T8çÆrÿ·ÀNÚ­ùJì;UXñTN¼CEŠ%2IÁsZªK+¨s; Ÿ÷0žhë,ôÊ ¥ Þéw>æNì5OÊÎD5 'Ÿ‡Rã)XÐ]ÀxSÄ,`­Í¯wùqÝ û¸.QÏ>ȧrz4$j&†-Õó†Üƒ,•[É)&>>®3/0Ѐéäåo4)ee³PñkúžVá·Ñ©Õ-#oÖF•?®û`ŒÑ¯×Ù¥jô$ô:z$¯Pzf)ð'=ïãº{¦ì€§§ÿM¥u¸ü¤[2uá¬_ë«•… —­B—®¸–ú¸Žåø¸Î½}Ð{|}\÷qeóø¼ÄràTX÷FxÉRäcB³KÀ$*ÿq]kgÄi‘|[{™¤[*™ñĈØßòÑq3fH«‹²Œû‘‚¡t•*z³£— T‰ô"uÒCrñqݺ)pDYjsóñi}^"ζœ’ÒóX‘%¡Ù¥“†;#Ýk¦ÖýQ)~ …²/…´poD¨¼eý<ì`Ÿ¦VTò-ËáÙ×ÑB Ïþ¸Ž\8ÊÁIî6OºÂ*Zמ . t8íÈ q\•¢¾&[@–ÚX$Ä r³@ÿqY‹æ‡ +©ÅRy0ÈÇu!HÚP¼#(§[-€Šµ°!F›àÓ:Èí%!!AÌR<–åôx0rËr‹pm> ßþoVi=2Ño#%LÃ?®O[‡5ë¬uˆ\±ÈdV/?2M;û`¼ Å»†D%"ˆê-VRiŽ’oõz`3|âõã:MеV](\úÇu¦©½ ½ŽeóŽJï? J-å'5‚ø9íµ´öA³pdµpÛUJyÉÇ3üëlæ·6ÓÆý\eó¤ëXû¸Ž±:ˆ_L?®û¸ŽwÒÇu“ê׌öü¸Î“™È jø¸¿j6g»(•ÛëF³'¯3JhQRKõKª¯â|?/ÔÍí™™jÏÙtÎÚNlë° X%½'`M_ŽÐ*¼óC•V®mЇ â'£Ñ;¦Á†A8êúãºÿû+5ìÛw†ÕQ××}>®³.§¥qìŽ\ÂdáVýã: -Y°žt›àÃ4Ýÿ©ÉâE¥û?®3|\Æø=5j>ÈÕu[È ²Òðš0á®9{Á n.¡”Š¥Hõ»¨qZ¬åt[Ò ‡\P¥‘­$.lɨZ¶×ÈÖz|ÞßÍ„>Xè^@_¤ß`Bã §ÿÑ•öUiþy6- ½UÚë>­GeCÐ*¬­׉<é¿ †?üq†!¨A¨¹ ÞÇu°äu9œ^s›àHcâaYžë>â/¬ G,QÎJðþ™0¤0Ö«²Š:8|\ç%²VFMðv žÎ*ƒ4 ‡=qÛŒ¥ßêe ¢C ÷;V²ûÁ +ûj?®›a§ÂégÚa`*Ò§¬ØcªFï2WHÏBOS&JÏÖ:„&ÕkÇñh¥Qò7”¯ÒÞØÂ?"ÉËK*+Mk1–P ‰M?‡Ó¼Yö»]*ßDì#n<£\×f¬êbØÎ‰ØØŒ@véÈ,ò ëWiÙ­Âû{`ý›U}™ ù ëÌseJ´N"IàEz`½Db~þ–v8Q®cåÿ>6®„©½Tn'Ž›³KãK¼Šë<–Wü‡fÌÚõ#Uø(¦ 礢A´±Õ§û Æ~¤?V^1·iC¥ŠËФ·™+¤W—”šôÐ`<ïn—ž™Xn©A¥çØÂ%ŠˆÊ˰Ä㬽h){3‘hvîþ?®³9èuôz™(=òa=üI1 ÞÇuƒA™apJÒ- Söë~¯«´+Æ^âŠ-ܬՅÓ™2Üqœ³g}Þ òÒÃÐèµð'½TfVz×ÉD)†Ê~0±ßÚ.ȤejB(}‡ÔHÏ.Ò›ˆRÂÇD§…ú¸n¤þd?é ·‚ô⬓>|¤ïl©Õ¹Ú1QJ«ÿ†WAŠÕi·4;“ôq<uAd£žw»åg˜Ñªƒ£§[}òßɆ2®_ŠQÊ4„T(=êú´ÿrš7 XÞýíÓÄiú“;û +Oqk&ãg¯A6Ϫ’0þvVŸUÒUfVÝÇ3ìå”?T'HþJÉ0ÐuPŒm‡·7I¨ +¥m§¥—0§u-g¿Ä¼wCâr– {KºŽ)ꊽ%]Ç‹+Ã@a'FP¾VNºjéDö Ö±O%ÒÃ3AìA§lÒ/!+﵈åIã$]ÇñV^œ¤ëÈ_ éGl©Õ!"µÓê †U{Èu ¡”VS /ÙÔª­Žn(o@¤¼×­Á‡>…“xM²°ê6Ï( ¼h‚¹L’®ŽFª%•ÇçuÔlÎJ7ghª]ÃÍYíñyÑO+¨ ¢›¹4I¯ "I/«…WHO‡ˆÌ{S]X;ãoÊgÌ—îpdI„Ÿx¤t•ÿ‡Úý²IŸAù6úaËÔ Ž8šV%ˆ¹0‰¹´2Ï C¹…S´(œhçNNbEnßù(@lÚcãE&.¥¥Â´—{h Þç”BV‹Ó½fñô½æfú”˜éÓ~jÍPºŽ&2ýô“®cêú&”øþ’èæþN̽¨Ü ¹ßü¤ëh6d7 0 À€ 0 À€ 0 À€ 0 À€ 0 À€ 0ÀEf®K$:Š@¨¨å =À |â5ô€ßÓÔ§¤„O{?'šH&¢û…âÿÞ‡Ä7§@¿‰~³ˆ¸Î2ˆá4ë¤'.¶Ôê Ë&}MA5Ñ”wp +:æà$wŠwr%›~IÏ|ƺDB{e“þ¨”/s…œW&ÒC ¢ÐS¬÷}Û¶zvœ@ÆÄX!æ b·û¶ÑëøgtMÓ¶MÁ@µŽÿ–²¥Öñž¥lÚ+Õ/+UK¥6/èƒàòêÒmºiÐl¿@5 4l)Ðl­ãÑF UªÈ]B5Tòh˜ÁLc^š â X˜¦dÂÔF×0%Æ‹Åëíu³æÚ4‘óèÆš¶õ¶¡§Ò*_©³ T™a¯Ã{C®cçæ:zý(“ëX®£× ¹Žâ” ò-saH~¨0°Ç6ÉQdã`Ôׂ~<°º,À¿üJ)O9Ⱦ[ÒutLRi甸§lÒ/áxdcS@‰½hyEeŒVLÒu,G +éE«ÒëCu5Aóãgæ¸GRÞ9œÎ—X±š”÷R&)'i;4¡Xõ~gO[ƒ/_6é“›ø ¬Ë¬Rà…Uw0ü@£i[ƒ¡pz6¡ñ|¼ötÝ’À³*_›Œ"_B+uØn¢°V,'6O×,Úóü:ŽSu ¥ë˜Ž±¤#lSáT|•\”Äb °çN_TàæÝ¦i€_µº=êæ=d}ì{éVÍwÁL ±Ç>´ÄkqÑŸ­r2^é§Î*Ñ"z¦K MNrGW'*Å;íGë/¥D©>§x'Å;yIñ®¸QrG¡¨)&rü â}q9,…ã„"“ˆ‡uTP 3Ê+(™9@_Üg.µÀ@q· ( c°Žã)Âðî;Þ ¶ùñÉ´5x~Áð^_(Ÿ |M¤0n€1¼›X ï7¯ã8½&æý&`£ùñ daÕÍH\"!q©ó^ò—õã:qtBO‚¬ åIUD(nTäV;­ÎQJ«—e¨Ž£ Y¡ ÅêÜ o™‚pšzu¹H_ÛÐ0&ÌûÂCÆ_çŠ#á,‚ÌèI@^ò„Kð\z=ÈKµ0D¯0Û/ï=^ +>o$ö·ôMùA¦á„Fíò‘L÷Ûü°–”²ý4¨„qªŒ5Ô[?®«5ZÃ{ªV4ƒCîí}\÷¢1VòÞF¼Ó¿'(ëG"†õ~ìÕÖ¯Vü›Azú%ù†6™äãºÅèpÏ +%´ ëéwx°i”ÕÂ-¨‹ae£ž²tI¤ûƒàµ§F3[}N ‹Sâûq]E!)½E &zlÁ–CQD=¸ˆUX¤”­LP(+Ån(Õ—¯ï‘ÊÃöAö7ÊOúXN>®“¥ו6ftZ¬†[Nówb±èFÝ\±Q8~k¢ƒY+鬮‘8ÆS6 +ލ$ö”Ñ¢éBHd@f`à  ƤÒéxå€D>&P6N"( DâpP‰ÂÂp0Ã0Œ†YŽÅ0dŒK-üÇõ*ò?ãzé|E½¸ž¾rU\/¯¯l׳ÝWˆë%ø•ºázÞüJV¸žf¿â\ïÊ_É×[úWŒ€ë€o©z=8ÖÓÿÓõúcÆ·+~z„»³3*Ó#ôc“æ[%>Ý ·¿é§éÞô±gì[Fž¾5lw7ˆWü;(Çóàä‡ó¹Àùx<ëC’›^Ð éK=‘ªÄ”¿vÛìhßÒû8q¿cæÃÈO£3!]òï(Yº[ɲ‹»ü‚¡á,T‹:,.&ÛÂÈ%â1|žP…ø^T^ªpGÈxu›â²d"=^c`~ƒ©naé"Xùóx/²êSà÷…ÀZ¤n³©`Ý!(.ýæxG”ÞÆ:¬X*±;šq£šA zŠ/cÃ6öùŠïl®‚Lèl{«pÖzÚ&ç®Ä/¹aÆÔ˜9 H­M[w°9IÁÜÔ)É¿ƒ«A¤Ag¸~Ôõq•yœÝ_§¨rA@FhÒŸ{ôö>c`-”^¬È=VÛwÅ¥#ïw–á¬q¡uPî†ìFS°ÖÆ—Ü}êtBè^и¦Ý +£S’5¥ëØÿ®«å"¥ØÑ!„(ê´(ŠTÓ»4vt©Ä)²„;»wÉ@Ü7÷šÙ½y„sïÅ+®€çÁ­¶œ{Ûƒv„a¿=÷n +ã +g‰Þœ{Ýq…dCÂlS¸ÂPs¯sÝJ?=­D%. ±{Ýp)½@÷ J\AÕéC0«¸Â¡Í¶¹×ñÄbÏŒ§á+¼5Ø„ÉÀ8ýŸ +. ¤©&$ëÝýªºhv…è£z0“×ÿ¼ÏÚ.Q IމûèZÔÃlË)ÈÔs˜Ù8¹žó#4ŒLB˜d.Œ;Dë}æETK†RQ'B+2• f#¯ ¢¯6d‰ Ö*m…`*\µ· ·Ï8…r0€R,Æç«fj†x‡[ÕFâ5Å\º +­XUgÇØ e-¯>…¬Ãe—FëpmÞH hgÅé¥45ÄaÖ«Z;œÙ†õ¢xlmÊJk"9àxÈŒ —ºp€Œ@¶¶]ŽXðù¯&|Öscÿ97ˆ2½(4¬Rÿ´:{‹„üÇ}‹üö9öHÌöŽ;ÌòÏtߢù4Xk¨f‰If¬ÏdN áút’k”5(™7GF5I²vÏ¿"Èû7â6í£ø‹$¦jCŽº}µÕ_ÎA¼°×&SIýÂälûàY]¹Ø¡‡7£¼¥Jláý?Ú÷cµÔíûŠ.˜‡´Î›ß¾»ûÏS,ÓÉ^]À÷N½}K˺2ñ¤®LÏ8Pö}åâîÇr_Ýí[â¢R¼Ñ¾ËnAK(œª­ƒh>Ó„€ùô ºÜ¹L/‡i8ÉðàQ³„ÌÀ’È/*•²tŰֱ¼’ùjO²(BqP=«4AÈçªÈËz5Qàjê¸ìÛ4ïðóI[ ÚboÊ—ºéÁfé²Yô“ +všeJ4”‹'â Ê[§éñ¥”ÖOR[>x—<æ²Ë¶'0L"u¥á1ul#vrû¹D’R=:×õ—¥|rNdUÐë„|f½8iz<Ìrü4Îb4ƒð=ÙÙÃT…ç©Q Sùæ½Ê*ÇAš+ÉLyÏ43Y ËžJ>rÜ,PµDoZ¦è¿ô¿#Y–ÈcµOŽb:¶ˆz±ºÒ0±f¬ÿŠÄ´µÿÑ¥ôÔÃg¤;T6 +8‘\ÿWíÐúÞ6¯Úvy£YXROFIà `ká¨û$~›ÚÈ\±‚ß3–ESàc­«Ã—*mÌçð¶_eßðü¯‹-R@˜_Šñu7SÙq¿u¿‰¸ 'Ë÷¾-3ò1'v&ùú£¡Ìz(tx?@’ýóÞ/qÌ ‰þüp׿Tfà#æ«­ý€¦‹§®M„u Æw¨:R¦“iÆîÜÝx)¸cBERZxƒfÄÕ-Ù´H¶­›Šäyy:šùag×ÄёٹTô³]ôOðJ´n‹ÔÎ㸠·  +ÏŠzÕC*Öþ-¬œÖ¬¾z/¼ +@/jY[ˆV@®³ÉY¢8¬iCÿ«_ö桳Bï¢G-dwví“}Tbv¤ó»"?h‘^Âá ’H})™SõìÃñ¦±ï£úûÄ’>KL¥²ïv ®S"lñƒ¦îP”÷]&ÿ˜¡Q„­\W„“NvY‘J¥›Ûª ®Ž*çÛä è:7Lw‘Òð§&˜¶ñ…>뇋âBDiÜB\tn#æ©-Ã)Éü #£XTC:(:†Vƒ¥Ä:~dŸ%Òù•ÏŸQZƒ3÷t6Ño%š²YÜc‘ž¼5q¿¢/-„ÎÕ¡6§}ÖjšoÔPÞ6‡´gD¶…ïkâs ,î¡=ˆ—[Ñàòiÿj‹ÇÓÅë«©™¼ÄÇôZ€ÊûnF¢ÎÀ~þÊ ŸÑï;'NDj®,^xWy* ú‹ugf/Å_ý³¸±Ö`¿pŒCAB±¸~sJÌ"ð×NeʆªØ +˜ÊRÆyð"žmpFu¬_8,}Ã¶ÞæÒO©Ì ÜvPã­Ç¿ÅÈ'\±}6ÂQ³â¿±mk·×ׄÀhe¦êWxúÑBsB~y$r ñ)³ËÔþ»Lừª'Èþï¼¼ H#Œ¼¿FòÿV çË9Äûws}X •M‰N wèßTŸá1¸zØ÷j(aåõoë9äÔðñßÍ8qͤ‹b¤ ¿»¾úøïd-ðšù•4òò¿•ß>`÷Ô‹ˆa¨B\¡0{Vöýœ5µBµO2èØ/`;¦p$IÉÔ¤'õWJ{wQÛ+Q}ýøÊ¢ï‘j㼤lÌ'ñUómâ«]cƒ/éE_ õ̤’ÆkCb#ñ\•–¡b©ÄôzJX'0ÍNRz9) ,ñŠ:Pá^“ P}ºXM°¶¡%ôYlÁo ˜ïµÊÿ¤ÅS$÷É8ÞÅÛÃMwè|”ztröÛG;¤ê÷¤¼Fbé©Uºˆµ°é÷IG‘ P7ËŽ–µ“ü½‘S$ò"'èÀ£‡õ®i+‰lÌd½aT㼃²þœ‡ÛÈ Þo< } æHsp¹ë›í'i“lÔ·NÝ"¢"N±§°Š¥D¡"cŒ{™èÇr“–Ïå­:^Âb‹l²Ò"J|;$Õg(‚ƒ@Û´¤iõ”ý +AXœ²´–œT^h €àvß|CdL©Ú†9Ú|L€Ï%¢ü øá_¦¼Ö—ôQáÓûÁ¾Ñ×N¶œ>WçÝžúz^Å]ò~-e´è uú™¾!Sž êÑT +6`AM8ª¸ÓÿC‰ ³~@r¸rÄ9Vi¦ËÈ<:ÝÛíWÔ¿McŠû«+‰ØÎNiŒd¥Æáöêþò£¸¦÷¸­ül´ß*¹Å©%áOÉqq‚d°ÚàÐYFC fr©Å´e=LQYåÒ1ˆ£"­ + Æ`UÞU'|¤kˆéÐãgë ¤t¬õú€ƒ¶E½êé¡•ÌÆêÞI(uÃ÷×¥èC0ÕTŒ^rGÈü'pKÓ\…ÞHK-®iÅ-ëIÁ1' &i"Q­®‘È@Ò5{)Oc„Oq†ùœ~¬’þÃB´4"'Σ^;¦°pK©JyãX#Ò†ÑaOâ{Cx°wq`#p91†H\^C :&áU5— e–Tdm Š t:>q±À¸x²'hLO,òƒ_ðH˜U×1a{½ +y“²©Òùýs/,‹&SE0Ó¢—nê4:R{ð µ{|#É+l¥jNÞƒBØUÒÏE™¡«’Îpšû¶Zh^Rü%Iì‘ì/¾ÉÔšvQ“)ËjÝÓ‡ ­EÝã¬IÜrSñÍÁFzØS²Çk¢àÈÑ4£R1Ž–·[O[Æè(°j‘IUY7©a‚KÏ,t!M¹½Ú2—Èi–±žÙ•Iñíq¯.$‰Ð*Å`"ôé¥?0é nÌ9æ —êÉCx¦1o5Îo¿a¦çVÖeæs‰D3!Yâg‡*3U‚œÏzÀbáßê)ýüß•'–vœÙ÷ß¾ËX•aƒ«T à“35V­“êNüwn¢lZ9àWYá c©Ò]ÿ€$´° úí\|½¦_´EÁv FÏŽ~TˆÚS%7OUˆh»ÍD¸Éðw—(8—jùæÄGœN½+` å'ÜR¦ ;¯]LŠÍ\B׳¸Vb¨x õ¨!åå£NŠåê1§l\«` ÿfGšæ>òp×Mi!Ù"©oŒÆ}<Ï6Ÿ¯ÐàºèÛÆƒv…ÿ/ÕòèÓtˆm,ûiˆ„Œµ¹^ Á^?ô’¼Oëw?जÐñ-„µ?'{Ëß±'X(<æ0¢òˆõ­Üvæ)x¯Ò,ÑÆÌ;m ç£5JŒã6¢}•#x_Ó]9ûÇ!Dêø,hN,õ¬J sÔÞýïˆ*éŸnŸû”Aæ † Ñ`…+–¶F°š_Ý8R·ÑE}]_€—‡-”\*<`ÎhNSìÔðîºH Ì5‰Ç6"×¼"t^‚©Ð›U,ïÊ·ö¸À‹êIW3$Zžol»Ú¥š¢•„66”qA—¯%:?ÉI ïéšp)ëÄoM9Ò#€ ¹G9$áŒ$æªCi]ÐW„M"D'ðÙj|`ÿ8Eª*{ø%{)¨â$/£ämý ô4q…ä}ÞKRXÜ]#[òh(|4EÏ\ñ¿£ž‘gÊ;ÃÐxLI”2twõ’2ýZ4%ËóʱÃ]©SšÅb±¼¢ xP»µÛ­éßdšò4T +wùÝe`÷?‹ó¬X…HªPÛfȘ(â5)?{+ù +»B y>5<…$ ‘=w±k2«–Û¹  nÉgáHµ8# õt¡«ªÍ(?;~9”èu•åêôÄÃ$àqÓ;Ó÷XÆË*6Ið*/ :'ú E]ÀU˶…ì.à¾ìMW$É7]¥Æq.•Y,}ó‡˜.pChÖÆÝfw‹7\j1eÁBS)æµ@%$IsSQEo¤íìxß“"€\y!BZ5j>Bô¼%üãt…«#mäMœ%C˜Œð ø%HH…“¯ˆUÛa~gíJ¥Ÿ’Ø¿œDR–4GÂcë7àJ©–`~ÉÓ[˜É=ÌÎ]0 Wi;kAÔÀz¹¨ N+Ä. D¤¶›@žÔÕŠ²`±ýdÔ û¸;“„{7mŒÊ°Ë Õa iƒ2p§[®g]Iùƒ}4r‹Ä¡äÁ<Ù–ÛXD3²ý¬˜Û\ˆ• q‡Á2àg`ð‰>錗déO0æ¼ãE×ÔÌI<„s©6)B÷'›$^þKx±4¬ªÄ4àò¼x–«ã½ +@H(/k•EµØ*2ÖïºèUkHê¡LûÃ9Ç+”C€òÛL¦wÅNŽB^öuîõ©, ZsÒâXŒ‚yÚsÃ'xØÝ+~pÕÔÌïê‚w[⵺CQðŠón*Ï,oKÃV²k§LhZ ö Ço¯¢;žó®nò! ‹RK}Ö ;›‘ãY0a@7;’ ÄK/)Õ”ÙGy£Ã6ú€w'¯Å ~aë«ójXXt|+‚+¢zcÆG¯¯D]É—r«$Ö7ùÝB~Û +ù…ZÅeh{oãÂëoB¹ÑLþc+†xø¯âûvŠGˬ±}x#iþ*w¤êNqˆ}76Á„{ÂÝ„yCiüœþ)¤"bk +8#(†“àÚ]#»è¾/¼&†£m‚±¡ø8ºÌdîád_¡±!ˆ IªÉبî6¸4Aqˆ’`‰…¤b)8·d¹cýµ›µ¾·p*¦¥mÛ)1’Æ€Æ2*øÎû²½ÄW+)B;ÝÙ 7õÁ™,7[ÞJç.ÿúÕ©Òžm‘øv§üþÀû!憭j$ʈ¤+ƒ¨}î¦ìι`¥•aµ®}„”¹±PäÌbª#@úü Up#¦î 5\Ø6^q¤6µäöè w£q`O™åJ1,¹/­r ¾6 ╬ $E øl„ +p Õä¨È‰Åv£tRòãT˜Vv3+n¼4†Yr¿fûàö½õAƒ^¶¯;'Ìõ,³&Å­úƒ³{›ê3+’¸Œ !ïe¬Ã!­Fþª¼ä +ëÀ)"€¦0U匘tE·Lq'‚ƒa·ÿý<€ç8p%Jéáj€*û¯Ðp&„Á+\ÛšKëÁS#]2'R/–ÕSÜ…îÎ ‚vÃi0`˜*/ºðùôÚþ"ix!Ó4½XZ6éáZAÛðáݲE ýb…ª×;(!(y²ðפΠ›¾v»_Þ¾Zíäv *Y+ȼÛp¬‡ûð¹>¢²%¿ÇÜAeq%q´²¤»>WÜŸwH£¹$OÊǾ‰VØ[I}1®¨G8>1þTŒBî‡ÙaS³Ë® ²€Ä¿ŽÐÿ™ø©…¬€‡úÙŠšj 6Cxÿ¯F±Æ@ÐõG—Ô™….vÕUc‰%w5GQÇE{Ã&¹@êÛ@Ù¨íp|¨ÞÛíª•Án}‚ä9¹•±ý0BïéÖÞñÆSù/fÌJ +kqI]?ý‚1ÜRÿZe-O¶­Ð²Ceú—ï†;k'7`„Ÿä…Ÿæt,n)SEµÂ¿‰&|X¯vúåFàŽË}«ðH4¨QR›—¢¸ ÝøA˜i’ÆëÅ)Õ°ùŒ-äæÓ…ÐìŠÃEpâÃ}N‹5Ò“#Ÿmç¸ÓcE7, Ã쳆 +H½Ô7ÿX8EF­Úº¯°yƒ‰n[&á0¯†R/òš[ oP@g‚†¶Ö‚í ärˆ…úK±•Èe]¨£&ù²7œ%ué›ùÅ—Ôšn§MÈ«<ò’š^Á1¼°¤¦…ΆÉO†bIQÙöº|¼¤”R™zNâ´Xä—Tø0fý 0U\Á`;8Ñðç«>ahGPÁ5ÿ%·=Áý¨sé ÁÁÏá²ï½þDŸÕvEåoG†ãð¤Š3Ÿ*\H@‰©§ë]K$¥ý`Ÿ]q ‡Þ‡C¤­™ÑÌ‘&sG–‚e(.®t­Æ +Í.c@“õmø 09•˜‰sÁ(~T+’¨ƒŽ¤ððI YÖ>=ƒÚá9;Ih’t¢ÖïwÓ£0vÿÚb +6ÿ“êaAk)$ÝkCù°hâØ=Îÿ÷ÈHåE‹| ="ö<64ç/òlƒ1Ré꣢=÷¼Õîõü&dm/ܽÏìNh¨Û:@ :i©Ñ^Ô[áo·ףû徟W·š&àQÜ3áÉ0kŒœçTlÉÔx{*˜î‘'ž[²Nc´¨ˆÝ!Ø ÈsMEÜ œA0*à(ÒYMÜ¥–ó;m{i£øÃX±?`Àp?jÊ‘)\5_òRØø"ý°ûQÌè½~Á6¸”ظÆ;±¼u ƒtl«eõÃÉ¢÷O=ƒwjùöÀëH'ª¶¾…tK­lÇ iŸ[ɹÐn”ÍÌÚD}ÎåÈ……ül¥+d‘Ãg’2ÏÌxP¡Éñbèи©`Ö€©Žoõ@†Õ% ­žãà…®õK‹Î“Éb}ûœØFgŸÀ”°ÆÚ¿ôXÀ&2Ì_—Èœ—¾óJAл<3ë²I”Û—\0Ziñ˜µiA€üsÄ›X¨djÝõQ•u‡r/ͬU‡È°lâŒTÅ9º?âÁë«¢Bx£®1Ðeu í÷ÂßJ‘)ol”_¢{ã] Œ4ÆêÿË4ÛÄcuz.®2k:Èyÿ—•sQõ5Œ*iú~€Q½%’z§ žoU%tO9d\A¤ž¡^ß=@M7¿bŠÏ-y“¹,‡d 3å74rfƒ?I‰ÖXu# ž°$à€JÓ•QƒyM“]SÜüA'0Êã'€ôahFµgî¡+™3€é ¤ŒÒv½N‘Õ+€Mw†9ÂñcŒôè¬ c½/§Ñ:Bfa( +™ÅÙA*çé$F=Äcõ˜34;ã(³àˆ«w$‡Š\{ññ£Ã |Â:ESÑ}²6h‹žâ’Qn& +¤ {³€Uwç_.\Ì•R¸Ÿ.šæ›S°J¥ÏT®v(råàoùdQî—ï„îr&ÄϾ,â‡ø¨’ÓÔ˜ ûƒ™%2šnwá¤çQ«ÎynѤ'/ˆ9` ˆ#2Sˆ¡¹¾pt¾ÐhÕÀ¢Ú!& › jjÒßJÙ–KýÏ6s<1Ü*Q–ƒ‹¯Ž]BÌÝQîø'ã£Ä=h´P¸¨(ñ0 ƒ±C¬øH´ÄÒý qI¿¶Uã8BÜ9ƒ+£ŒþÂCm óÞÔ4&ñÛZªCˆÇQŒGùÔ?B,+˜ + +rIs¦§ƒ]Ðb\ °šmZA®]dÎØ¾#,•¬Y½ÓM&§‡*×›MßO1̹euNÅíhc8;°b—ý¶:.°[LsòÏèbª.2(m_—Ëê»P=„2„ò½PàÕÍþ¥Ö1óü£¾5¾BeÀÏZZÅ·™ÆdOÜ;¾þ-> ¾´M—Œ‰„î³zHFÕâIâHæé4Îi¶añûÅš-eý ¾JeÍ1Œ¿ð²³\†´ëï¿â#•ÃGƒ€}zlŒÅB)ÕòÙU!¿rY·Œ ˆNÀT²uGn lo†gíšFò*l Fî ³à°ó•b£²&‚÷Å`{{n*¾”zd{é ÝAõ)Š]çáX¤DØàБT•Ð3_ÄTs˜4£ù¾Ë²5ø0ïp: áž×:ƒ›t¾,ÕÒÖ¤FªâíÌš³q 2*Ð0#Íë=â‚#¦Ö­j§° +¨, °Äên|þ^‰L èDhºGQóâfrÎ`J_ÚªÁ¯Û{MãŸÁ?Šƒ@ÊGg°ýÝ^ÑpÒ¡iŽ«‘ÝCéçg^œÁïç„÷ÁéÌ7ô“a4Q58\·v}•>M]3<0ÈÏ 4ä¥_™ªôšµœÁ 29Œ†yÓÐ7¼ ´ +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€«XøÿGøŸ +øœUÌlEf-3s‘YŠÌ‚Xd²,“e™,dqKÔX¢Æ5J±P‡å:,×aÑ‹XºÀÒ€_îõÀ^àµa]J¬+¹b|뇷”dK‰´À4ḵökÏ® +í*­ ½JUªT‰ +X§†YJ›¢Ì- +žŸþùiᜄlSH3åÜÒT*I}’Z$¡ÒàmVÑìõþPr ?þýˆ >!pÆsˆëÜb9çøÍEfs”Ö|%4yÌus »Üh-gúÊ«šò­œì%WÉç"ò¼\pkÕ\Àÿÿÿÿÿÿÿÿÿÿÿÿ˱ æB;0ÿÐ`ÑÀ &&ø…Át¢Ÿ1˜D4ðƒ‰‰~a0Ýgàg&ù ü÷`bŸ_L÷øÙƒI>ÿ=˜Øgà—Ó}~V(Lÿüÿ9Œÿ/zÍ´4ô z®Ä ÿ€¬¨àƒòLs°$>!8!8!!H† ÅG2újH^2XàtÂ,íjöïåË]ÍP¼¼®iïKö;5{½4„Uõ—Qœ¶©± “C„àe@D“”ÚÀHp ÄqFƒtB‘³cC ¢<[ > þ0¸‚Äç Ú¡BÂ\ˆÚnQ©‹E$ØàˆÁ„‰äí(½z%ª»Ôç4É\4mHI@'3”ê½F¡Û¨ÞfJ¦Cª¬TõêX+J«W,‘^ù!daÈ8Y "ã¬3~µ$øÄ¶˜W!ájÃ\j`åõÁy}ÈWùÒÀ¿ $Ø¥7ÂGLàˆ @äŽEÞ±ÈØ1 ¹c#ã+äb€þàû#Á`Êöea¬YŒ5‹‰kÖEe >íŒÇ‚b¨¶¿ˆÅ_ ¦ì¤Úkô.P¥n03333333333333SÅ,˲,ËQˆ“l°Á&[`ƒM¶6´ãxj$JRV• ªD}߆a8–c†aÓä,é1tž÷¥©ª²,Û¶­û¯뺮{žfYvnÛ +Â3 6Î`ÇóD 뺮lË’äáóºN =_l†¢ˆ¢hš¦*bE¨ªªªiš¦¦)Š·4­¢¨é(êû@Ó4Ïó<Ñ=Ïó$IÑó:ƒÛ +-ËžŸeaŠâ8’$ÉÒ<Ͳ,ËrEQ´¬Š¢Ã8Î`è:Ï ÃyÁïÓ´ î+zþuaØ÷} ‚¡8ŠÃuYÖŸªÊ²¶­ë:Ïó¼ ÁoÛ>¤i×išà) +…3pÐÇ0,˲L+lËŠ®ëº°Lˬ »žQ•Ex>4 PAÿ?Q@0 HôŸEÒ ‚À$EÐ>IS@0LRýçC‘4 úФ)Š ÿ¡HúŠþ‡þñ벫šB…ë<0¥‰Éh ÇVФP\Ùö…å™®!Hå‚Éì{zÝC}`ë¾ ]·\0‡CŽa·e'8–çÚ¾%’Šå‰01üšegà¢çGZaãN4E¬¬ûÂñbÁÈÉd2¡T,•ÇcßÙ¡gèÌU+]/y.™PòœPÓÓ,¦}H&‡C× =Ë%yCPË2ïÃñ@– +žïû¤èi’‡Q?¯ l뾉Dž7ý±38ŽPÿ!–gš®mûÆñ\wè÷m×5=Ëìš<’`žéº¶ïW䜦CÃ.«Šëj݆cY¾‰Äb±¸mÛë O¤¾/ÇumÛö}ß7žP$ðynÛý¾ÎÀ=Ÿ¦éº®kû¶ã†_×mY¶$» &‰@Qšy¢iêºq˲<Ó5=Ïó<˲ü¾ëŠPÕíª•ËªžÊÂ2#×÷¤ç5ŠçK¸‚ç/ c‘¸/ë¡ôL¦çX(w”ª¬ Çs}'Œ†cô•ÄÙ=¿ºûŒ.Ã.‹HÑ’Ã(Eh4=ß ¥oèz~£“£Z’ä}áHÂyCß GEÍò VGrÇ`êÄ.ëá:OôüBÛ´~·iÙeòñYÆðë ›–aÐÆu˜Pð»CoÌåØßw,–œ±HàìVȰ« +Ðõ+šg×9C‘¸mZŽ?IúOu¢êÚº°<×6žX0rJ§#‰0 +ø-É1±ËªþÊ^.N‡ÏX9cá¶«šFÏÅCi¢*¢¡;v î*z¢)]ÛxBÁØp:—Ë¥¦êôLÚ4Ï™¶ïÉ$“Éd E·ëYNÑï¾±L×͆£™L$‘H »íŠHO³ e—UQ_EØ7.‘L(KF³©T(”Û®g9ÏC•çÅV0¸Ü ň΄^ÓÇ(’È£Óá/Qö½’ÐBd¡/ŒÃWô\۷ᱫ¢0˜žã^Í Ó&jãŠ\ßûL€ö«ç|G4y+dW¥‡1KP6v'$“ +§Xr 1µÞô‘š¤$ ‡ǰ´±ôn&” +¥Òë&9†ÙàPž¹¾C"}G¡¢ä…#iÒvÿ°iÞXn蔾3Çoy¦kûÊ´/rÝ‘Étz^#Ã.Ïõ½áû͆,Óv‡7{~SÂ:EH&”žßT$ªº°žŸÓõo»‚Ï@Óo`—E€Ÿ!‚úIü¶«øyœôQum1˜L¯zFCiƒL‹H8 U1˜À¾ñ\߈dB©\0˜ ‡#a$j’cøM×ÐwHDÂ÷|ak_H$ãÐsÂÓw,ØE-rÝñ€ôK‡M¨ãH…çŠ&I†1Ó!0V§‘²Í@ƒ‡²©<–å( bA„B" „Bˆ!È L·Œ +²´Âð•Ý[²iŠ®2ëãmÅ­Õ +·ÂB~x> +;Àx³(œ}AX#’€—³Éÿæâ™"OÅÈÈóÝô³O^ú„¡’‡£gñv1gQÂwH)0H…•ä$€ïÌÊnY#á&é‡.™‹Q®C‰Á$„Û«0$,îcCáAB SÄÚE̽! ˆÀ'áå¶1 Á e”S„}M¡IŒ¬Àùý¬À÷+dÍ ü… ¨ $Çá +Òà@-°³æïN57Ï Ó'àC²¹(ˆÄécÐ U‘ƒ¿ësà­ùæ.8(NnÆ n‚¶òŸ k¿p_V¿ä={2I…€æ(ˆÍˆ‚Nþ\?1ÐÔáD™4‚ôäÿ)¨•!C#ˆZ;E¦FEjÄE€Öð¶©Ô[JØ9gL›Âq ȹ`Îë¹áÀ° W°lÀ½IAXú +ð3ÙåA š«*ÖólvDðïo(ˆ+¬¼!XÍ2V²Œ…Ò¸ 8‚]1|šjÅW´ßAE°@ëÂ+DwA‚Úö.èe¢ ?ŠÏ\&ɉ@^3 ƒ% Yヌj"à DHjûY2 +Sè à ø¨°X˜’oÄ@ëpäx F {qdŒâB€9€Hl@öqˆQ ¨“[Þ¿ g +ÆÁå‚)8P‰òRz!d†AyÏqfiDC1‚ßl@œ‚¡TÙ¡68AÈF{dtÓB+L½!•vh ‰)9Œ♂`ú¡1ÀÀï ;¡ [ˆ0Ɉ:Pu9À¼ ¢ Htûl€M¡/X5ZJ]ìvü]‚Í2@=áÇ!í:啃à7‚%ˆ ¶ÀÖÒ +Z¦`\Bja)䀅ÄZ€ÑZ+hì]48Ò€Äon € ¡ä“Z6`VE€0æS„Ü^ 8¥¬vnº Ãë…ž@YUò#|`g’D![ZÀ&eoÁ£¨ˆ  t?À¼‚ü2ŒÁ.>°MA“ "‰£|6 µ`×c0š0ð;ÐVäPÕ @SÐEÃ@|àñ ‰ÚŠ $y4Ô +°› ¤ ¾rÝ¥.xA +æa SVÊ!€·@ËGA‡¸„¼C; ¡¢Ìô¶aÜõϬ²¶o ’ +¬üÀl€ŒB µ…×j 2ÑàjÓFÉŠ@d´¿â6ø˜À]žÐBè>òŠþ)hÛøa4næÈGÀçÀîÙc€V6èZ8v€¼aS t @Blx›ôLÙ¹` kÌ8`6Bj!Âà›ïP,&E¿£,C@§?p˜Ó€Ì /ÃÂÄ %€@J8‘!àS ÎQ— <)¸…Hù‚ÂÜñ̤ø èH&ÚˆÎ(! ñ'Àð'Ø¥` vÈ?`Ó …öÎ4Ìsãº0^ #å`_0ѵŒ;ü3BùŒ‡ÌÐ,Ö`¢ƒJÞ°égÈèì 37Ð~ÂW© €1Øpà©ë)îIô¡ |€hRK Ä v`¥;yAkêq¨|Ñ lEø1^•:jÀ /> Œù@Ñ Ÿ€í+L6R†îî¡€ýBŠ –À{gwÀvfé€qNˆ@/â0ˆ +Û€ü‚©{N¸f†7ÂÊg(¦! p*ÑÄ +PJÛîhc uan•Á{'ôß`Hå&Îrð³EíèûaãºgG&Àˆ€^²klI?¡ÌspÈÑ-qŠ‘ÃîèUBÀ;<€€59àA† +ìn `ÓðOû .+BˆÃ>HaÀWøg «ãÓXV2pÓ#x…‚dTçÀDÑ~×øÐê?@4 Ûu¢x•Ú  ´¬-<­-©(` oP¯€aƒ²Pl 0?Ÿ·Í=30 +È×@& +ôàx1öuˆ€¢ü1È6˜(ú pØ zCÀ¥õôÎW þ"À/€p@?}4%j&£` +0V V0qÀH]a«8½F(ÜWÏ$H@&Ò„Cu<3äA¹0 ·¹Úq"‚¨ d ݬ< è¥WyþÛý“,ðÚxj2‹“ÀÓàB3Éß Ð™Ý æªøø/º€ Ðòî]ð'ðÐ$ãðB×[Îê@W–`ß¾mnϧ˜×~¿4ð“”c9,´0 D*(Ÿš#Ž~òC_•òæ%iHà¹û´Àý2+Ä@zœvA$Qέ"óPØÒ}“ØA´p  +*…€ jÜ¿!pRìö« + +”0ж9)Ÿhés®ì/¢€3pL€ïÀ¯z3°l˜­ÀhµÐÏEð^ðÉØÛšßãô7±àcûà*ž_ˆ0¥&P“â…#HâPÄ@@ŒQA;.Ê Gß}0øÜâ1p „W°û{&–o5(„(ø¹ÀÅ€½ëº6×ïD&Àÿs:@zÀÙ # f º†”@¥j]ÖB¼ˆ7Ü€}Ü‹©ØâðžLõÇÉÿƒ¨©l¤€i pŸ€âÍ䂈gT‘BÄ`A€›À‘,•±ä˜ž¯ùïØä¨Hx†þJ´—{ +<4¸*šš8 +’Ìf„¹Æ'kØlŽgœÐ5œÐ9Ü ¨£PU× âø¶3ÐÆowÙçÝÍÔyZl>(½ïuýí{¼i@ÝÕÉLºÐâg­¡/ê›ÕíZ¡wLîë‰ù#À'`ì¹0à·Ày€±º…€t#Ëm„`ž„ôè¦ÂFÞÅûŸÁ~£µþŽyz·ëE¼•}N¶drýÒV<àI {ÖÆ„ÏÔî¡nxP&‹®ƒ% N䟌üñ`c Œ€%ˆîž¸¬wƒí"Nˆ”Ým–`[[zŒ@?f]ÀŸ¹—@ŒF-îÝ&¿ BÄë”Пö‡bSˆ+Ðhï/‡Èÿ0ø6sW€cžàÐ +ÀKª1ø¦Õö†÷µþMàÐþ´4ð l}éS Ý~ÔPAf%àg­µ/§ÃU>yÔ° /¶G@àø>gÊŒ +$ÙƒàJm/†×kõ;1€±x à~éw@ÊQ¶—1@>ÿ +T‰ãì âMðW@H ÈÄÌØèH@”åfZqP Â@Tä(Ë!c5P˜í—æg&þM`€æy|ÀžTf€À)%È +“}å÷ˆùf§) ;Àj¿rí:ú߯üé@Ù‰ †Æu\Ò“•}L€!þ ÐÁ=‰H¼ªýk#Àküœùi 8Ý£ê7Š? Ð:@`@uàƒÐ0Ï€=,'ƒ§Á)°€ ›+ÿþtXâH„xl¥(!0~]îÜßz/TñcÛ¿,À“ÉA؈{!‰‚Y|OÌâç¶=YpÿšŸ–àý2scΈ9ÎG‚_y`Ì8£ÛÇÿ ? þŽÿÈÃ而¼0&¸õ‚ãa,ß“ô‡ð.€ÀAŸ“‹”MU€¿š +ƒ—òè,0ëùÇüî> W¢ó‰’…‰€;nAVqóoh¿>túü/ýŸó!¸Mž.»Ç¬]€Sv5x过̉.•>®h&F8Ú?Ù6ó<ú愞L¤þéÿÑý´Xﵜ=†'¢2á}­‰þ=\_0` ±Fã)”e)ëHßÈöÐ7$Tùƒú™òß: å‰ÎÆ(‡øü °c0q“DÏÃgø«éé¾óß,)÷äŠx·f':&ujÈwXÚ¦Ÿy"ïä}ÊÁ ^Êþê'_]TÜNú'nØ«’Šöá^U?‹ €Æ˜ãê|·=±¿ ƒÿm(â–* +€qîÐŽÆ(òq9T^ÁM09qà‘h4ž {ª7Éõ RáX&,Ô¼;ÛÈ>¥‹Oć:¸S,Dââlÿ(å¨w§Ö†YÌyåìÐÞ8eN°/Îö ±È5óîh@0ËnOÍ}‹YÊ)çîØP 9z/ÎÆ³ÌØ©Ñ1‹œ„\œí±œ«øâÔÚî‹9Zù²ÌQù­ÙJ¹™^- }Ùâ™Ô¬¸ñ%¡n-¼Ð"Mq*à›¥‹j¤†â­/дrA®<“Fj>‚GAË@ô·îë@‘¬Ìè@İEJ\à +`¯ð?>d*œ€¥QNÆ‚aÜ—‚m|áȉûyèù"Áu;„ffײ©4ö¨±ráDX2F) ôàÐ@9ŒÄc2" „ˆ€C„™ ÚvrˆÁVCCEÇFƒ*(ºlB¿Ö;ˆÔÀ0yz<9!`Øß/b\d HJ=»ÃB¤d`¢’ÄA[í3!¡ðd$Z~Þ ßþÚÇ;1HHÀ\aѼå0ç)È>¼ÁHhL®˜}8Þ.oõ›;Vû:z ’¨Ï˱„Géçt½|\Ö5>úy4€XH,úø-ãz©ƒ3™,ZÍ3€š}í +€êéZi ‚¡ÒKQ5>þÛçæ[]Nö+íÍË”£-ùÌäcdïáàÛ<.þUà{ÂV{FcUÍŠ9´}¬Ewþ`Ðr‡€”4ôàF– º'TI·bZ€èâ.TQþØ 9Â@·`=øN±‡6ÍÔ”s†BÀ¸îÑgˆ+Oc´(ƒ: ¡`»8ŠQ x È‚`æLEÑQÄHºÒa&@âMAÚk"¥7LµíDHê«:äæ–´3©Ñ3Wnc¤£ùŸÄ^$cçhÌ?:ùÇRœ©j¤–Ó´%6ìÔc6»‹Í :pÉO„5V4U=>¬Mý^Åã°+¡Ø¨¤ª$œŠ´•µµñéÍ?ÑÑèÆ±>ˆ ZõC®¼CX¸ŽÒ +QÍa­SUj*v}12Kéç0b;duÒk”gÔBéV/¾¢6WÍÔ̹u2|£Kevǥ矹»ÓÙP†É»éJŽÂU ™ØŒ„D±øh†.ÄÏï%wœ‹Ð„æËH]D/&¡^Eæ½aëfÆd4â%f’ÑÎ'?ÏG^¡™{-“š•Ï^Ë2µÕ!ú‘cVëÒ1ÞÐZ2CƒÆf>ÞÊ·AszCN¢([fd»I¢Ë UH4b>ï½±Ž'³h”ÉKÞòOFµúOMÈi}ºlèaâ”(¼;¹ˆ˜Áþõ&’Ž›zø0ƒˆwÌ×͇…EÕ´†h3gðL:W‰•åÃ^$©Ÿw" Ö.™"¹a.Ï÷QDf°¢I¿$WµéÌë^q% +Ž‘õ>Õ΀A°‚ ^˜ˆ!‡\˜¨á…&&^XÁ'b%VUZh!1NIqN@€¼À4¸Ä@ƒL€ððaÄ +" A¼àJW—MBtõò§üÐ…B¬€'(N`La 2Ø ÷ +  ÍËE©V9öj&íIyWyÈ#§šY*ŠxaB"î¯æø’¢E¼çNkD¬Ê̸™á$¦‚W2C–™Öø4/ì-×wF¥qcÝ팔ˠ‹(æ61û¡Ú8–Æ»ðÊW3^ø4Ê´Õ>vU£hb™øTŽ+Š£ŽmC#ÖJE,iömT;Â&@L8¡(™R:%$_*]”С(x … d !„" D`à@ +ã"l€'¨ ¡Â 'ˆ°¤ ¡‚ +è`€„`HÄ€À(P øÀFA¨€ + +Á:„@(À„ RØ:,`8á%˜ , `“(@:t(… X€p€ˆ€Pð@ +C¡€è ÂX0;à€Jè€P@(¡Rð "8T‚‘ +!˜ H¸@`paŒp€L +)À +B )0 +' ÂPÁ J(€\€A•Â:VÀ@8° 0HxÀÐA„Bœ€t!D ,p „`0„0Á°`ñ +¨@‡#„`*A‚ T`€ý`x,¸P¸€D !„HÀ@„PAR €‚$P¼`‚T ¡ Àb… ˆ DL ^ÈÀV¡„*0@À !^a)HaF(ÀLðB $Ð!D +À@ +Zñ€!b„¸¡ + +¤PÀ@‚À!#žAmaäYÉ1/ŒL­1³Ø\†æÈÖt—šŠG¿ªSŒ¿Ý ¶ÜŽbO;«Ù9£XÛ~¯Is”w43E7$žIÿuLF¹(úÙ¼>ÙUõC|mÍ8>ÅP‰ÆïŒóz#ט)ŽTE•ºÍ´ÕtG‰‘‡hÌãX´?â]>ìX—^Ë(ãuÕ¨xÛ˜ £‚T—Sìsð(sE´«Á*HÆ¢¶+±Ég›rI7èE‰åÄ|'ÅW‰eüU±W"´ÚÙý¨f“vØ ¾7ס–DUŽ G_ÜÐzGV×Á³0›Èĵ;X>ˆ(¹¹ÖgÖ^6'ÝuÜ>#éšËAÅ‚~·=—š™‚Ì}.Rœ3ß­ö–Còu;Ó_ÕSb5.¡í¡ÚfU5áˆlÐ\˜Â>U³Í¦Ùx&T5ãí|O{ØHRXEŒâ˜Z•û*‡ +]éªCX*xžóL‡G¨ J õh§¥hjgÔ£Pkk½ôxËMc7´[xt¯Òuì¥÷þŒ•uÊ ÙÝ+.6´Í:Óõf¦Î¾«;ãõ<å9¹“‘»’†¢ú³K~Yç8¶›Kïî7 ³G"*ÿ“Aór®Xà€FE#£_‰¨þKfÏŒ;þ’«§Î'3~‘DúebbyÑwîu<–#7Þg×qš’ëG4¶âr¡êMdÆOpйRÜÎøÆ›]ó¡ÏˆlHÁD #†|–)ÑûQ%t'9«Wõ(JRØèŒŽC£x&r1u&ºØ:áM_¦,¿åU6NZBBñŒiXê჈Zn´J\6Wo‡•ån#ü‡Ï¾ekl…EH¨B#õç©ÈƒW5ÊŠRdjælÞÙ¦dZxrCå—ÑçÆél½Q/nÈwZ®víðÄ^?ÕÉ\}Èoó!¬Î?,¯“¡jF†f¨ŒÄBRtଜɔíÆÌ$vïu²JùvÙÆbÖÿUTuRwÄaDÝ‘tZ +ñâŸÛšä(Á l€ƒ *œHUÐÁ =Ø 6Ø "rˆá8Ô0‚6È ƒ +TaÄ #T!à 7ô€7á ÄC AÀAâ2Ü ÑªPQáî(B„À¡j°l1âÀa|€ƒ +"Rppƒ c~0~ðƒ¨ ÂxC98a"#` ‡5„°RHTW’»Í¤®^KJúi½T¬{Øñ]Hn’²+’Ú¨’Í9eË»×Þéãì)«fÍõ˜“IíS×·½×è5÷¼ƒÔÌêùɉÙpÎÞ‘òˆ tC–3©Œ]ŒÌB¿V;?C9¹˜gÏȕææ}ìórHÑ]q6bRï˨¯©»Ñ8—qÎUWâ_Pˆ5¾Ëmœh¹oƒN6ž1“ó㬸“¡°$U´ÍuÆìŒXcCTt¹x6»aD 5¼0æoêæLE)¯Ý‰ÍgŒ%Î>vŒ‡rDê¹C¡­æ¡âÅŒ¶=„Šêíg—±Uîr:×î2FW¼æ×ÙÙÇ©¨“Ê“ªê cQæšÞ‰9JÅQÏ/áÍ(µ4–Ð+£d¨˜â{7¯1sÑ;š&·Fuuš²j·³«!˘‹®æÈ)w?sµy½ðßEœ1•®f8ªs2bVæð¬HF·ÒP§T3 &@L€˜Á{RföÌR23Ϙ&#<°á:DdòÏy¬ê2*Qд)Ý8ÞJ¬isdDmQgœ…ǾºÎ4»a[˜ç¯§>älýç»Y‘ëm%WH9"ÙG!—Yjk•"ç²sŒ™>÷°ÔâO U¬«*–³NG‡ªÖªa©É¬>›]¦ì¤êcaCáç&T2ìý…´Ÿuêûô3uÚHhL纩|všWGåZî4HçœÎ~>ÝÉK¼­C“ÈD&2&4öÚ˜cqStw»ÑªSÍ2ÙíUG5%vãuóɽ©´jEóèõš³£ÝMÃlÌ)©êÜâJëKÝdud¿Ãf¬=‘RÎI¯ß~'kÁÄÿ™Ô¶¿ÛнºH«ÍyÞÌ]×éœÜð4d޵Cª­h9yLWûpê"–ÜñÊ"5ݧ:'†BYà ⤗›´a¥8·_9ÈaÄ̈9ÓøØÒ&üq”´¢ŒjÎÓ+Ê\è:¥a‰Â:”ÖF4$gwci 3áxb„ÏZÈ™!S\æsyëbM–;¹)"_ñ)&½9H„ž‚7²rç™,_?ò!-ú!±¥5Þb¤3û(Dˆ  &@'@pJD{È 1:ãÕ«¢N©^Ô(¢"5d|Åd̆5rÖöˆŠ4ZÙ=oÒ× [Œ¹ì»aUX;'ö½(+szAb±šMÑH|ã/Î\6b‘Ì–«¼›;™;Iì4µw®ô‚uòÎÆc){ÉʾôÂ73”ŸÉvCR÷ž/㪸“ÞÜåZ£ULí)m%²1IR%½j¼š©é#¶÷V㨨T±Ô#›AÒ;›Ö]G© pÄs§¹a¡‡Fø` ÔÂ/3»·„4>Í'Vm,¢Õüι>­*sDIU "’Wcc%U'š™UkpŒS¥Á©‹Hn¦çÁéÝÜtd¤u–öF|1w{OµV' bMyɾ +oMjk÷Ø ovþ‰?æqìöQ.nCD)»N úŠ$SÙÉÙøf¥c sÔK,4ÃS˜ØÚ­î2Hjõ«†4C¦¶nbÆ!¥ë¨:ÅéÇkŽ£‚¬SWæ*_='­Â¿Å½îWÕ’yXÝj7‰¨F½˜«#Voˆè:’?þâן=™ÓkÙPoØÆ2}ˆ±˜›F+[mÿÉgFCæ7ß`]‰ÕÊBt6²†§ ÒkN®èáâ˜W6eéó"Åóh²c}î"cŽB'“#©:dl£LéATЇòœieН -g%ÇÏ[?!ᙡë‰nšœ=(-^³³;I|c¯n>X¡VMjŽ£V¼Š¾kµ¦6V¡»F­¨Ë•Lé9ü!vZ¥É°tÆÚÊÌIñÕ¼ti¤n2¤èŽ#Veù\Å“sDFÝô,#—íòoÌÑâ±¢Î3Þ`‰ýbt½VÝðé7kqµöL]ëJVu;’ë™ùŒªÔÖðdmlµMÌ64úB?ÍËÖvֻDŽj\w~QÝ,D%%dîT¤l"GC£GRHöèKâxÌÈbtWÄQ!™‡ŒÆO,¹bD1ÖøræA+f¤¬Ü˯4ô²ºú­èõî6'‘ÝîDå‘X¸)©»“7´¢ˆnbZL¢è™¦N¢¨!‘V“&QÌðN¶è籟(Qì\G¬F)É&‰‚”–õ$<|QðFæ#J¸7t? »’,¥íÊH6ùçTÇš˜a†œà$[lNßUf>p®wvÞÖ«¡]÷ófD6B©±Y=| Aˆ¨#¹œš‹†UÔ«4+ùïÙi²‘™òš—5b…RTPª\fÖάtîÄhXCt&¢#1†à™¶…àÍr·¢™DÑGÊáç49:Éò:ÄÔý{óÐÈ•\‰]ýu¾m̙Ъ†c"³¢ADƒK„H)» Ñ¥üx(‡ăTÍÜHÄ4"š¶³ñc2äñÔÇ4¬Æèù‘%’/¦i”Dq{¤G!ˆd¬)2…ñ”91§Dn;¾Ks¡´D1C%Gûk´!£¹ÏUC+WÑcůÍHöÏîw“:¦ûÙˆy´êÿU½ÓŸPª™—õ7r•žyhõóiväÁ)ŸËÇŸt¶UñŒy17ó²!'MäW•ÚãH¯nä¸%•Iï~&qzå;¡í®þWËÈlØíúñW¾¿DƼ8–½öÞÍ ©†~&3Z42©”˜=\e3wnqŒh°hÄ%B£:?©Á©£ÉoŽR¯“ˆFW»ÑDŸhPÏ>S-)“’e9ÚHÝK›PÞ¢š¼Œ{Qt÷tåVì¸ÖzISa±B¿Ž.CÌB>“Þ4¶³ò~¶™V[’f6'”*!zùíX†Åwú(¾qÅ'S»1Ò¢ªäxÛ‘§N†ü|‡î=‡þë7æD»Ø–!‡&kÕéå]t)RxrºÜ\UÕ•»Þ|Òžcóê{Ê’¦ˆâTéØIZ+o¯*ýdìÈÅËÕf"V-±ˆ¼°û}ûkQʪµÊõªˆ^{­å]‰WGrå‘‘±é¼æEÚϪÝMk°©%qˆÍ´°eðEk4½ÊU}¼$ +³NTƒS«QçËçU¼l¯zpîöóÍ}XTÚ…ÈE+¼Ó˜Š3®?ÙÝMÍݘ__DRó¸b•î®J£X¸Ä[ÍîÑàð.Ö²Ñmx'2‰oú‰´_J!Q¤JD¶Sîè‰ÍB$?5—kýù{—§Í|HJ´£òÅæŠ|o†È¤âpUÕ,²~½îÜàØcJݾžStûö1kë_ÕÔˆµÐn7të±tF4±ÕБ.¥[Ùeº›‹†iëhZõÓ‰åH»Õrl'dõ3¬%{ ™Ý~T¿mðvŸ’>?ÝW¤¢ ™s#b6¡ËJqÕÆWš1Bêš1ýÏžšud½ùªªÐVD®ACŒê^?ƒ*Q´h~+×øçvšÈMÇ$Š¢ÞkÜ% +ñçl¨R-˜Ì¯Æµ=¬Ž”èºÙéŽjÄI§èþ“‹‡}ÅQâþsⓆPÆ¿wXk|­¢±Y"=}ƒ/\·­z4>¥™£™c7S4›ºÊ¥ômw8 +¡Ñ;t2ÚM±ê˜r+ 9’s¨Ô‰Ò$J’¦cJ9EØ#`HFD2).Ì€`N6ZF.$FÂ!’$‰QD1Å ÃÄ1Æ!†Ø Tè‰È‚r‡]ôÑ\¥ÐAŒX‹å×éb ÆwÅ‹üéÖÉØ& +­RO›(ã•OD ¨ +KÚ‰¦fxÑCÀ¬÷A†Ü-xûI&'„n_Í]$®cß7y}eGP”Tf¢éÛ2Z¾’S·>!Wù¹pb²lP¿ÍˆŸ|¢Æg?œ)s³ŸøŒAQ#…*à©Öð.Õ—l³2;4 #L.Ðþ7ÕDlÌ쳜Øtá­Džd×}’Rësk=ê¿|$¤b¼š"að§$N{œayÀÌà·‚Q)œ %ÉÕൡ}©O5£Â?±UÅ[E>d¡ªÙËEk—þ9R÷ÔËDE€÷ŒnÅ´£™¡Ûp{ó~þüòŸ×ý9W¡üç‹"À—ëÊÜЮRRŒxB1³¥³C®W´ÊïnL½it%M ´Ãexd5ñ.ç;vÅM†¤¾{a#6jî„XÕ],œ¶Y™HªÅ[ǯÞ*]r.ù<}UN Xf’/·÷eµdÈÜAáÊ’éÛí3Ñkª×ðhöY&ìk2æÐµÑë"íj¦ 0,´lì¢ÿàR¼Ã>ê˜êŽPý3($·Ó“€ŽÐÝPÏ„4ò¢·¿ÄíáÅtóÑ^YóÀ´DÁ~"‰mKY+õô] œf:ƒ¶Côg2]Íå„­2v‡ÖesNWGSÞ*êïF^ÄuГÞ-ú:+ëÅ5ð¸+q_MÙ +ʲðæÒH—zÚcoõJSÉþ³có,Û*¾ô`¢ªÂûáž³2ן—6þ«Àõ8Ý F?S.õÑ¢k;ƒó¬%%Fו?néól£VØ&BØÎÄ8~ ì¢h0¦¥p'D€dYh¯d¢ø°NæìjççÓèˇ8“ÕÞM‘Å\“ÐK²:+GQ+ $uj‰‘Di3iê<!y)Ï †9d|„G åt_˜Ò–k +š8rÜ)YújA&ݦåâ"”Ã5³ÛPàЩw‹V³PhÁº% ÈíHXNd2 ãjɵ¯@bư°%§1’­‹l.‹ÃùMw.£ÄIgï¸Æ²Šƒ¨0„û>†2Äþ–Ëo!–À÷sìdp8ð&·¯$˜ŠKõ7_ÑêAIQ¤'ƒ_E§ Æ€Èäá#ŒW{¦Q‘J©­U”,Dq§;dòË:ìê\9ð Qƒà^è!Aµ¾MyM<É¢1=-ø:˜à§\©ˆ9¦вՓžÿ§,CK¾xX-7ƒRîîÇ ä}\ê™å¡H‹•OËF?X‡8þ¨ÕN¥ÉÑ­;j¾Å¹ZHŠ Bq4Ñž¡òΑ­Ý5˜ZáòÍ ) õHÄi©³¼ZTHŽòʨ-\†M1 ”‘~ÊÍmá›Ì‰á]fà,Li©ËdßJ–£,³‘5ƃ%ÍP sûh é30i´Ò¹š™÷Sˆ [¾è‰w»d2Êúý$º°ìñò¤À#¸ˆieLÅ‘„:DTXXÑxgÎÂÍ«Ê6X ÜJdû’+¬žnHèD¸ˆÒ`; <.ÙBl¸iýˆ‚¤m(¢=èºN·Ë‚FsØv Ðzc·’áÌ)oì €&«‘0ÃCnñò?­±â&È8Óã:{¤\X¨åI‹Öb–áš$û†cDyvtŠ ‰ÎHGÊ‚tKA+}ôåcFF[}¶  æè—’»ŒåB±‚Z~¢[xú f9ý`Þ›{j ؼÑïç,¥Õr© ýx¶C¦Ý˜M½ï«`¹%'†Ãn€•yô¬åqÑ·#¹»—+“.éÔ“ÝKA!Jno±½N–M00ê µÑ´ª%r™R æÅ1d~ÕráÃÑ’Ó½kC_Äé]Æ’ СrT‹"•—ªZ¤åòÊXØO  ¯†ÿ‰HEëeO-Sôd½´Š!´kîJeÍâ9©Ð†ö³•W¸¥%søÍÚb-¼ñPž’(×dAöpMÍþ8?ˆ™7-b4ƒ™|Ðvlâ0‰qÀ0óû¶ ±£Ç‘KñJÆX8ÍЬ‰EúÎóâ‰+m';FcúÂÍâ÷øjýÕHm4™Ûú^Œ¸_j;c®ýJ÷ vªÆgÝÃ[K;ê wù&Š*rɲ/ÔeU)¥¿¸1eªßÉ©Ÿr³á*amW¥«eL%Q~Âx¯aC½i$€¡!,SO©®(Ù uJ®éˆ»ÁòöôR¬“ Ë,â™Ã’¯ ¢ì‰‹yÕláp(_UQ%Êq‰ˆJ0Kò¥iñca(#Êp§u8CNÁ2t` e€ €=pO›æ$…•àñ¶ÍÌ!«,b&!ÝN"–5KË© +Êᚈ E4­Šg."3Ñõ㦌¹hd­Z‰rW5ŽcàTb®œ¯Ä„à [Áü ez¿Áj†Ÿ°4p\§µÏæhdâ ~nœ5¦ÄCSÔåé»{ÎY:¤e-Ã8¨@ –˜^fÒ’ëßtÎPÒê'G¸PÌY¥°ûåO ¼!ª*ÛÛgCT3ÓŠ¢ƒ˜Ò//ä8rnßR–‚’­$8))Tñ¤D4¬ä\†-9 ¥%e !Â*„‹”7ƒ,Œ-‰ç‚MÅð“Ø©I'Qþ à;XÉ+(†-øáìAýà +èø€‰kòâE£v<‘K™bco‚Å ¸×HnŽ'ˆúªË<ˆB­Æ,o•Á{‡A I@²Å£áÀtóÚ"“¡ÐÿšRS2øÐXå°ÌªÒG‡Ð¾–ÃÙgžZfÄBCbd¥0ˆPæœ mŸ…âŸKƒíµïûeÀøî`åï² sªÑS—ÜU™R¨pDŒË˜Ç¶G C¢œ;D1H¦5¢…MDÀÂDzF÷‰Rª<m`™œmØÙoÉ­ÅRŒ|}Ý,‚[E„[7 ûã n$XÏ`¯ÌÉ«‡ö­íRºˆó]–óÄ< ”H†À#/' –‰›Mz‚œ4ѺAk*¬Ü¤—»•ônÓÜÔ?œë.m®ùö¯ç˨»—å9c˜Ðú•ýÉ¿X,2ªè,C»²tºÛƒ]Àê³q àØbDÇÛ–ÕXü/¿¹ðÁ`b ÿD<åýl%H +1¹K£f|¾^”0þëã£ô.ó\GÞ@þ3\§Óñ¸ú óMÛš M£šÈqàxhP=gõæmæ~'==ûßÝŽo&ÞQÙJÆüüÈu<0!Z?±±Ë>>„ +‡ tööYÈ\õÀx!Ç„q=þd1 ý½‹§©B- Ÿ7+2¡ öÆÎål¸}$K4oÝÅS½ +E#5¬œ*Z°)"½GèªnºRÁã"/Ö‘¶UŠ~…¿šÙä)ÒÌ‚L¹Œ\_WDÕ¸šÑUû”4‚º´X: +]•@ÁæwqŸŠöïŠHÌþbVÀ’GD¥¯Žmi{"ü˜<ry'¤ÕÜÑE'BÄk¿D"|h€ƒ,?5%œ6zUÏ#=Säî‹ñ­ä%B¡á!Åœf ¸ª‚ú:·" +ª•jV)’É$ĘmÅ äñ¹Ÿå˜àï5“©*ql€´©½"üV‘ +…lúý0aˆÌŒÄˆXe ím^„Xã•ìOazéHJ9Èë3åÝ›ÀÎõ¨ÌêC/<¤½53üÄ D'Ù©”¦dò4†HótGbBçó‚¡OØs ÂFó<&@ÅÀ`{µ¿)ã Î{\‡Ð”N¨“ÿÍ(^äý³TßÝ'†“:}䲤9Ð +ÊLëð ­$º`ï§1ãð+ÃÀ†VQJQŸÊ=ÒðÚ 3PeEÌÐ=• –†@°YK)` šRA§˜¬^…^ÈæT…r4,ýñiu +Ä(û-GWkº+à +w_`JJRí!º¨·¼±–/†\ÊL)ŠŠ®§²Ín©¥”î?L#!»Dw9–fÌÑP—>‘xl¯qϵ˜?—cgnd“x +_Hc˜ ˆ§Ä‘ëp~ ±=ÂÿÌÝ‘ˆÊ +¥ê *6ÿ‡¼sx¨.íªÈ캌#ä×z]Z6lO×eÙ,ã“+/Á“ÂÔø»ÅU›ºÁmO†e¦»™»¢+ìÞcFý°§ÏÍÞ~¨`?š}&èa€æºdt"ÈsBngŠg„ áÜÊŽ@L ÿ‰×^oscøˆ‰‰º|éõàw{aëP67'”J]ŠQÓp€ +)‹è`jŸ™¬˜¬|û´ÒÛÞOŒF>B~me";ÇÅi%R“2£&XHØA¼Û#¢¿ô=jÒL0å'Á…E«½ù›ð¼©÷;æMÀ‹3~†%°s¸vÂŽš&ÀµI#6¤c˜ÀáÓ-2Œó®tv«idC”ªÈ˜$¤ˆÒà +·¼ÐÑÎËc–ðñirYBe‰L¯´îjÙÐÔ+Yå2dÕ²ˆ_óž‰ñ@±zæCJxK)ž>±&Ðd(Ñ^‹@ßEˆ56ʨµ`ŠŠ.dƒXÄhø‚®¢u3¿ däpПR?aÛ3¬u§6d“ƒÐ8÷vhôÙzà/â@Ú‹Ozù ´aç¼°ˆí+`&®3EéRtk÷Çš ?tNÏËA¨ÊtǾ%í>ìdð½'0Í-ÝÉ ”‡d÷¼Nån$ÉBÙ´Oö¿˜Ò‹™8Η.‰š|wMP7×ïuô v§ëÆŠ!ªõ]#µÎ¸Ñh¹¸ôR0c(N ŋܨYh¥t«ucÙƒZØŒV¯E©¦ÇdÕ ›gÅןncI +o`Æ«ô)•L_oÞ£|gì }‹£+AŠF/!YNÌTF(t7 ²y|}YÀ/G \;ßeNÙ‡Þþ#Õ胠(ß·‚œ¸–Ð à,FÒã…Å‘X×ÞñBºò!‹påkÆë[î- +¹Ý‡¹ázHJ þõ3½Lð‰ðŽd>çʧ‘lâŒñËøvXõ`ã#f±0¾ôec‹¼E&÷s<, |Ùç£é^Õ’_•›80Ç#ŽBÉáµ²Ú¼´:Z>‰{œˆ6*µ ]=÷-eù™ÛÔk†;4éL‘e‚¤¥ÐGçî}¶ÆSŒnj§3bAç{«þNéDš“Ò]£õ%%Ò³Ô7ƒ‘ØÛPöqœŠÛÌåõYÜ.ËVpuôr5Õ5$ÅÒFSÇG Ñ#".…‹ùÛe6ô2I¤BUNñƒ§¶%ÙR;ùøü·6Ÿ‚°oö»°Ge`¼ \*t *h êˆ íë”XB1tšöh  +E­jE ÎœŽ Í&}á­Y§æÒÕˆé³Þ “ÜÏ.aª›c´¬dJu¢oÈB§¤#þí ÙúD_Ó×òì°¸\þ#˜ùo‡tŽG“mšy2å‘ûf—¢â h*™IxŠ—iF‡Z÷a™}Ç”‡NUj`s¬ËFÓLv.”þË-ÒѯZ ¦ƒ´WçXW +¥[ð#—žº_¡àñÛ¶ ¶îÂÔoQ¼%A›bü‘­ðÑ… ÖÆŠäzY¹ÏîFš?³RájË=ý¢T/L ”öûX8ëq±,ú_&õýÃN^¸rÚ @QP¶Ë8V±bin²jîPáé¹¹6†™ò‚êu¯†"ĺи<œ¢6)=8jkôÓ`¡ÜâÁbF…Ú(Úð2@C V¬ëG#*–;\Iy¥É–Uþü‘£’(ùÊtÀX÷áJ¤L  î]ƒ@‰X÷©qµòµ«C2pY ¾¶>;ÜmAm +U\nŸÊ"„Bº¤²˜öDù.õìr­Më+å½%Ðÿ±h%ëçÁ'Ì18ÀS ¥¸ z2éæ•ìB°Ê 0{޽«×å&‡ _T-7Ýv|ŽŽ‘(+;`W)Îëèûú êÊDò@0 v fê.¬5°.eºö«®Âëj0-ž”(•Ua +DB‡YâÓ’2LKYÖªÓçÔñweõ°>òÛR”ø·Ì*aZå?uï´"ßIj}ðÑ;Å?%i¨©·2€ŽMññoÎþØ*äÌ'þLJуõòJʤ ?Mç–Õ¸ËV¬ÂDÈ^£àW܈àâg‡œRÜ‹ÙXêÆ¥ëSû@I7ÝOiêð&¬ÃMo¯ƒYìå¯7³TÐBðq25›¹„6‚¸*£¸°rÅ-“;:ï³ñÃ1Äs¼‚ý<« +_ãg_>#™Ø=cBå˜-a¦%Hw˜à--fÌ>³½í]ô´j+!&Î[¸ê“JPTZp:ãtIÑ® ´D6ê£Á•†‹$Û£sjavF®}HÊ*LÄß™y§¶"‰”Ö‡™á˜Äˆ†` „)ì2Ðì)‰†šåxPû’/[®X- okú’Å j¿p‡'a(^™ê²‚"÷†ãD5Ã5p$þ\ä7ËÕ{Ú£–M:h´#û¾Õ›†£–é‡ì7@•¤ª R½脳ËSÆ u'´«’V0ضëòŒ'ªÀ&¼¥YJÄð¿¾bP&Y‡ÊG*…!˜g$ì$¾äƒ¿âR5;1†¥a;'S3¹•]õ/d¿8'"ŒˆÇ&`¹£Ì*fzC83W5•篅±o3—ãjƒ$—f¹URÍujÆ÷Ü„Rôdë=I[‰^ÁJÐz;ºÚžëd—ÔÔìjßwö†ýPÿbÌÅ»*_8AìJ òçØ¹õE•¾ûL'W²‚ Jø˜™?†õº,‡%,.—Í5‡â‚.VÁÀD9ã,pÑd#§£¶º\6‰Ÿa”KQÆü¯V Q—ýYI匵›es[‰?NTŽö+Cç7 ²öoB’¡:·è\´²•õüJߣ÷{=ä¸ã2–¿áQÄrJ˜ƒE ËîvÈJcÚ0‹ ê@²J‰‰øGÊ•5Ãå7qXå~³øqK³“ïq¿qqs$˜$¸ êWX¢è'í—<õ”+‚:n žµÅÜZh-È<¼ØÕô&ÍöñæŒZuc¦¾'áPÜÿYxWšÿ¥‰ÌÎön(¾‹ µûCí°Ä1PZ=/W NBQ•¡4ª¸&á€|\—¡hwP²å‹Ä¢$ÊõeÛ5rãõj¤å&oŽ +@¥Þw,àÏ(à,5‹¤5¤íVie,±ê!³¦<Ü +bHgÁC…­NGbÆh¡½p]çc˜>Þû ýöŠádøC‡ 뇾òósyeok+ü#Î0¨i¢²Â¿ †ûÀUø·Dõ7ø­Ð“$ +õ[ü¤‡Âxµ: 1ëA Þ®i Ô‘üö#lÔUÝôë55ßçÿøèBfõâwH¬ Î4Ó²ix¯2{¿¢Aµc¯S èt¡}cŽIû +*ÎU DݨWB…L`|ÆðÃaƒ"ÕÓkltóÁÏmóJ !°÷¼V>9”ׂ}­0àŸ‰íB׉ nL;Vx.{„½öñ·M*—8è¬îõëˆ*ÀÏ€1™ØøTòLTñ’›KÆsçëÙç‘ÿG¯M² ‰°Ed+—¼×CÄ÷=÷ú¤f›0YàN2Hs³óÓ'{;³°HÒ•3•ñ@Bä¿;ÕcfóG[RÓÜ7Ô(ìÅíi6q “DIÐG((f¬}LW*ÈQ¯ˆŽýLC±IæPÀHÍÑï—¶'Jìf_S¾ãì'2,“~b¥k¿W!¼ÏÝKõ[/#ÕïéK8!«Nh~ueÄÔˆûÛ+~ 1^ª¦Kr”|“N’Ht5fûÍ#¬7n Ž\ÌÔî·Èyp6§³Äg^–0c¦ YüEvoèØÃ Îá åˆ~£ ĺhíwÓÁÂÀ euëùcJtLºˆ64Ìž@+<äjÝå+‰ÜfvëIrŸa 6”·ðÀ©Aá{>à£3&&ÆX—QR˜ /êdÈà= +ðçìé¹açæ£V’é2ìù=íQƒÿ_B $|H±ßl̘ÞcÉáVù Å8¬ÿ[†v(™1û'p¦žPòš@€†¨ó±ðg–DÈñ#6”•såÇQêDþ§R†ÍÇÁa&È0šºLNÞtkÁ.š„P·Ÿoͤ–JŸªK»´ÿ(ÍŸŽ²ÔÑhO¬Û§:EÇh>tkÑ|˜>Îl™F¤ï™€Žßú–PG‚ŽßR„? +†‡» +Qw”C_(:«®µ‰.wYÔëBC‡"sÊpÀ{è‰ã·ä2GÈoÅ ú>RÿÙöGhec4ÇËÎüu>„ˆøðç„—øûÓ9>tY>¼&í† pqü~½%?Ìtí8#Žß™<üž:¬Â»7\•jéÈo©”]‰ã87hra„‘ßõä<…üVÔì!ܾvv'®£Ä~°ÆdAÍ|¨0‚ýa»˜GÑûüÖ|7‹ßš'ð{f*ÿà©Ø3ƒÌ@ümï:1¢d4¼”©Í‚¾sS6Ðû8@çv„ñLÅ´ª.00¥p•¢Vù)´ðæ¸xÉ›ý™œ°ˆRœjƒrìäµeçõǵåí0ùûæü—ö4|*Á‘†°jK€êþŒùˆ€ý¹%Up?ø/:hÈ¿6V1ƒdT/t¬A™r|öE”7t*ªlöù±±Ö¨º¸­æÅÍ.‰b¶ÇÄ~Dw©?€µ˜x;h~À_›O ¡á ~ˆÕ>|ËRe{Ù­‡…… Ÿ±ÏjÄYO¸Ž?Á*@ ‡0[Æ¿²©X1øþZ÷Ë(çé–ýÒÞá0p\—ðæ)[uyïâíM¹Û 'ýTJîx}_á__ÿÇvðH—ÐË‹c//àP/خߵÛÐ.à.»¼Ààå”7W43ÒÌ0âæN켫+¨W÷uVWY î`YW°ª:[_íž±€ß[W3Ü+—¤­.ÐÑ€n'V]= ÕUƒ\Yÿ+ÜUe(¨¬ôª¬“¯²®ÚªºŒ•u'„j¬ª +Y_7¡<Þª+k˜ØÖ@ÓVUCÝëªVÕ› –˜ÙU•íTÕ‰ÑUSƒRÿÀ ´ëpzjQ** +¦ME5Qzj÷b˜Ç‘MGQyš¢î?EuŸ¨¦PU#70PZlÉ'Æ + `-À©©ÓSSw–‹Qf5jJ©Ôto©ééé†05µîBA LÀÚÂ})%}YJdJzëŸÌÛ‘•’’B7Jú1h©º¤£¤EJ*†4T` rR ++Ŷ×'À|?òÙ(ÖmþJÛg(58’™ Ÿ¢ÄBEç]-º¢¢#hh|ƒx&„äM&§‡IE=”Š~ R(hQPÿ>¯#.ÝEê šl‚Š +úyœƒŠÆõ,³Çù* +kÊ&g"Ç|zºá§']›«â½Ë mzÒÔé9€žžçœ¡5ÁÁg + ´ö¾+67õ#ïðOjn†ÒÜãÉ  æõ}Íö%§´Þ&§|“ó'§À¦'¤Â8E—sv&дLØC¤gdfªcf‚|€;NM]יІ Ø,㌉ӗšìqfÂÇÜMS3€&g\&eÑXkð4u¥%ÞXÎpñgæ“”H61%¤¬ü~i© Ó²^(‘ÑÔ–¨<,cWZŠ0'ï ðîÀÕ­œT`b"pw;iGJ:ÄR¤$sú¸¡’Ò„%¥¿·áIñ—G“I¼ARf3I):²ò%¥ÊJØd#ü%)Pö! Õ +–#5.ÇGùÑÆGLJêYNªÍ“’Ž‘;O~2g"‘p%CX¤¤IÉ[%#E# ‰”œ„)Ï$%bøŒ¦b D\C=>JšŒT´(Rˆ$äÃø(±ðúËeä™!~ùi éòñ>”!%ß(ó€áþ{‹ Ú)xò†ÇM]ŸDE9qQ°@ ÊØ(ÆÆàC:ÆUü+Äeita|Tàè(wà#wrl”¸‘Q4 Ó"`d vl¼«ÅÅ ¡‘±‹##ßäÐf)CF Æ_d\쌋©÷aelŒŒ‚‘ßí†À^\øÑt͸hÔ¸xÁ¢bÿ¢"£"aõ)?dc’MQÑÏb"îVLÔ˜HøZ(&~\öÐd0ýBÃ×—pxبž×ðPœ‰ˆò…¤Çµ$êEP˜Ðú<²Á@wó œs€Ê®aaäÅÃ臅¡.$ÌâaIá`H¡  +žC8øpPð< ´쎊Ó|@ÁÝåó“/0p¤¢áYs<(¿â " ä“k0ðDÁ@ E? N üÛ}+ûôæ* ¸¢ñõ-üý¹'Àv@³~H{~÷Ûb¯M(ðP$Ð/* _c€anÿççºACO :‡©GÀ¬a`›Þ^·¾¾ÿ¼=0†xàŸàŸ ÄBݬä¿úõ}ÀÕtúüúøÇÕ_ÙZ,à0ð/臩_䀃õñ©îã‹¡>ÝòQì~zèùöâÀ€9>?è<|{–vp.j€ Æ{’O òÞ@^ÕÉÙmsw¤ÿ)äO‰žÞb½=©£Áh^ÐÀ» „ßÕ%'Œ4mT BÍí^Ü\â˜Ú×ÝLuvà„hw·sBؼ"·Üåy þ6ž^øòö„ïìîꤤ«»“g ¤a¿½­stñîˆÍÑq§«£à¹ag·šÎͼ½ÝtÝ^ÜÐââ÷ùÔ[°2³$€—mnNi|…:ºO‘vp££›£›“zàsqÚ5hË‚ÐpýÖÑ­$ҧ¹<»UÄÅÍýð–äÕÍZ7÷=.®’•‹ƒÊ“ƒ ÈÅi7úA8`¨âÞQÕ”-hí>§jl!½½ KP„N‰ó&§Íü­ÍÉPÍÀBÂÖF(mIAÌ3ýs‚º\üaÅuZðÚÚô{s +ÏsޝKüž?,·6ƒ4¯¥1™…¹]Ð"eâ†34= x˜R„µ5ªhj+J¬Ž€^ɱ­mE››šnoMf©žfgÇœƒóe€Âìliitè¾+…Qk”ÔÒ¸ØÞö¾+2@rìbPKÓŸŒ@ìØÔf +œ är€R‡¸N`ºE, ”ãÂ^X+"´à€ŽdbS™±©­  n- ô%вcd;acOµAÄÈi°V2±2ÚÚkZtÀ bggÕ"° ¦Éu`çò·Õ%"ðÌÀàÐÌ¢¼³ €dcýq¢Œj±°/gh¹ ²ÂÙØr™hYT@|¬1«"ï@a_ Hº0XD.øl.­Ñ3ÙXdba¸ÊŠÃÒ +&XÎà¹ì‹±2é®yqÍôê’`À’ ÄãㆢïÚO¨¬¤Á«,ì[\¥PäT¼ßpÆA~Dç@¦¥D +MŠ|bl€ Ðg”«VŽ®.|..¨¢Ø@÷¸èx;`a©ðx… Ü(×ǺÒÇ©~ä^®ô,Ä/U•*{ŠÚœ@`c•ähÚ +endstream endobj 14 0 obj <>stream +»ªš!W”JŠÐ—g8ÂPQ½"Ê%.p†÷C€Ÿ'ðHŸjjú²´hC`%%5Ï;FIóã Š¶,2Q‹§®9À5WSRú(¨Ý𼯠MNé(Úé)irÒiIÀ€ÝñØ5À€‚Š3`>Ô“´•Ž0©ªª5-¡| 8P‡±9pY$¥é d/û?JÊàÄ¡\p£'§U‚å6Õ2ÐZ+*N¨¤¬ƒz:Ê‚q•žžT-x¬‰)2Tϰc4JJ395™ã'ÀF)¤+%=¦8!ŸƒQŠ eÚ‘® )îHÈÊœ«‘ +Úž  ƒ¾kÈ # Ü€º†1PNÄ€vÕM)é£1ì‚‹‘áȈ‡†7ÒA…À^dÇJ¼"";e°õ–~ÑÑÑl(hþ%)m|6G@_{¤Û‡Pª«Ç§à +lzcR¬P,ÉRœ¢K +ŸŸº2Èɘœ„pÍÓÃpêIm4*’Iõôâœ=>Àtêè\‘QÂKt·€Ã +LE @ߨ#¤…Ÿ%¤,>>:!àË©°É1ë ÐJR<(_Î1©%f°†¯ÒØ€…@ò» dXAj½¢#ý&ÞP¥†àúu+A™™YDGgÿ…pÅ ´ ˆFœ$A¤h›@[PÅÁ¾"æIŸžÉ_erpBä ±E%̃hC´wôÅï aÐYBHÆAaö äÄ—¹@Ü yΫ ]IBlC@]˜˜œsyQêÃ#Î »FÕÐhÐÙyùÒqýÊ@C94s6pê†G~=BíäØ3÷@¨•œ0/qll34À2Ù}êðÞA£1†€+¢BJà©ÍäB •448[R°Ý„“ÉôÈÃð  +ÝË€™Ž! ôÄ›iãâ‘‘©ÎPÐÚePà "Öo×€‘ÍlU£q$ä ‰è¦*0òμ¸DÁ©ÉÌm—]5 Ú#!šOLÄÁ Ö +F8À;sžóa¨“+…†»**p¹æaé>›ÆE`ÇÆÅ„Ç.s""\çÆ{ŽÍ±˜X+*z\Ol1“’ç!€¨ Y}FCÕÞCÄ+*;  ¹ÉÈ{Ë‹$ÓqU˜ ò&‚€ÿ†URÆ´¬,mp£,¨hÑ””Œ“ƒ†-(0ü…€Ø\@–UÂ?>ʉpƒkÈ”ȇv +Šz`ã + ©¼%Ýb8ŽeFþÅ +jq0•ŽGCYì¬ÑÐIQý6NOÔSÇÈ.äáÊG +½%&F‹„$b€p¡ÝÀP°“ Œr.ÄS"B¥@tQœª?@ÐæÑ±–_{,‚`T0à”™˜HJtG°k{ÇÆÆù@BÄ1Àä©]¿L#£÷AÏào´ÿ¾çäÉANÐ +^Ê ƒ”õÑÁ£Â‚xÀ€p12DÍÐPôñަ ÐðÀàqwÛÅ…oº@ PK Ò DT¼ÓccHcÈkJfŠìÞ˜B³«A´jòõôÖ—…ÁTbTc ™ë®‚ªZsWÅíwÉ̓ÃÍOd/Ñô6²o}†zV¬;|b ~¥›ŽÞ‰•¶x1¥Èuân¸“g܉áTFËÍ(+zû%Öî3†&.p<Û9CøßWwbÄ¿¹)M«æÞhŠz1¹TmU#Q.7WY‰ùaV5K‹aÌ­ý<­Œ±äd9ža7ÓTŒƒ—2"#³v’³êÝÙ8W‘ÒòÇ\ôäV%.’º¨LÙÔYþÛ°‹ã ±æd»øKJÃ'FÞ3#sí¥âŒÌ[1œÙ”XoPMÆ*+©ñ VÔðCœ)ŽÇ%ª!]=H*³î(D›› ‚ÁÂBB H@Á Á + ……„$,@À ƒ‚ + (, @B‚ÌŠuwä#¡Í¼ðR«x$)«öVò®dnJZ DuW6k™Â:_©äŒf^õ.ÒNJ~žÁÓÿ­F]Ðùd?ÃbUR±D¹Ac½4z ±¸¢»â´63ZÛÉMÅ×±2u¿´Pí!“§–±êœjK£ä-ïïçµÖ0_èÈh•»!lgx¾Òà™­Òv„/¹·~v÷(.+†óüâqKäyùlºšwª¥#é:ÊXÎîèS+NÑù²Ós|§Üí¾Ù}U=9{{"ŽOÞ匳çcbbƒ©¨Rt C†ff&IÒn2 –â0 Ã0’%_À qŽ£( +8Ž‚C‘I’¤ A)¶Ña†f¸›˜'2š‹êE ³ä½¸wSµôk$:²V„¸‡õèkÓî¶~Z$Zʱ³úbð®ÊVæÆÎ9å€HA±ì¨ëÉ®“SX8tÆW3mµ( ñ´±3=k;d5UÀÖ7¤ôõÛ“ºÞ¤žG‡Óªr잆ÐÁ6v¬X'†øœ¦xÑZ17;<¤ýñÅ€IY®wu^çÆw±ü¬°ð‘Û5$/Ëòô,~ñ\˜Øúéwü ‰›cÁ ÕéÞñ( (™ô@0bDz¹ò} $%5°<ì¸|Ú&wŠù«Ý›ç†]gÂZ²a(57YQ™pa× ­Æ¯æÈ„„Ý_(qº¾vnQðL®R‹¾/˜æ1Þ ÏÊ+ÅÁۛƻu~IyÁÎ=ß¬Þ \Z±ìx̤åÕo¦TJF ¢›ÅœGvp{e{­cWUzÉ.rBäÿ ﵨ4i‹ì˜xa +øDS³KrÚ6œ´Àÿm]ËäÏöë¸Jªü› my†öuÈ( Áõ‹ì¥X›Øñª®®ü¼Ž¡tѪxQzx¶ô^wåÝ[µDC+¸ƒò´Cãí+½æØK‚vofžÐØ©ÙkšÂjáÙ{Ó ¥¹˜ +«CaÓ9DÜååè•­½ÎÊõ°¿!Ú®îÕëVº ™XÚâBZ6l%dGz±ª^ +MÅ4ä¼®„BÚ¢_[ÅŠ&vp—~›lܳNsX ½^~×¥Îä=6Úu40|ÔÆP’„rÁ®C*¨k|¡FB)T½EÔ;¬2:º]ÇZ¤ÞQþ‹‰@|jpz)Ѭ˜d®41RªœÚÕä& çO‡Û§Y,™Üœ— +Ý‚ ~c$èÔ5€R2 +ÝÀÒ-©$ +=7ŽÆøHK낤oYW†’wÎg¥JÂè6Øã2TÅn]*#è%§äŸ[׿Ë?åò ½…ÀH”ù)°1”+ƒš’Ú°­S#U`É®z+‹Úº£!‰w¦}|_l4_ë"¹Cô>Ém¯Fü#÷Nó+ùEum¯t9’ê:G¹)ÃͱW^·œËùX¹ôÒ€îÂÏ‚EËzIxDô±mBgÖ•Šl°˺϶"T]÷2Ei†«ðÑ©l`ä²r˜3ÀRZA¦Ì…›@uf3úEöVä@u¢ÚwˆKúÚq6¶c³:_ ë6òøÐû©ÖíÉ@º8þ<¦3úÕ1|u;ç6ˆzîOö[·Ym¿ ^¾|¯Ní¾·Ì!µ«“´SÂdZW‡!ñS±]´ru- W'y¡å=·º#Á@Ç14/]­>;$KÜRµºË04­Ž-ZÏi‚AN–á\V'§³þbu:^‚°º™œ.¶¯:PTîÒW]¹–à&ùœ$dB ¤â“sÕ)òò¤¢Ì1Ý«´š@̪ƒЫ:%Õ9Ó86¾–Û5ÕDA¾3P,ÿ߈iÕ…Öí­É!³–Ó-ªÃrÚó™XJôÕå6ä]´ÀAP°v 䓸@AÚ‡íÔu-ëÖmS‡6öM!în»3OŠÙ›˜:*IËGœ*“0u¨{d¶Ôm ¹r~`q¥Že,y -VÅ%48KdPE¦½K/¨³¡ù4ýl¤˜›¨1¤kºå7 e Q‡ð8¶X.mÔ•1iÜ–·J2šv™Ñóï½J‘Oi:zÌ(årZ‹ˆN¶Ô³þE]¡…ý pÛöñ\¢nY™‰¡ÁJL‘¨#Å…Åò u=¦boØéáhÂ#ç#µ n*¶"„™èLÈ@B[<} +ößÒ¹:§Vð§³ùiÁÓ¶þ}:Ÿøt’?]Ô= 3^=?µy:h3$øA™®Š  Ρu[ãîfßOFÖN×ô.÷+™››ët¼&õßXàlèt€Ñ’¸0S›Ó9ØŒɆœC„s×qºjGàÔí[ÎüÇ€²¢Ðå§äœ5ät½z‘C£ü ŠÓ´ÑBNW»T陡¦•­J$Ï‘J=¶bÈtÎ6•×íb ¶«®%­:!S-ã2Å^D·©ˆ1"xÞ¹R"žÅR¤÷˜ŽšeΤšÉœOX#<º,MTé_u†Âl…’jH&D†P˜ÂFþ5-Òê°>ï F—>?ÿÒI1—çÞóe”_Jʵø›RǑԻ"kðî&#ÈÀ1ë°%ŒÕ° Y·6hþXƒSÈ`Žáö,¬*SS@ÚâØÀŽÄú†«Ìdµ)]V­r›u€‰F0+’Xwìབÿ¤~Ã5ZÁ±7üJ?Žx³i…Æ©ÛâxeÃp £¿ÎQã!¼ôp‘ùåÑkJ¯a8<íUÁ^¾ÛÐø®€5e%#qþ{ËˆÍæF«*’ ÃùzjmÜ||‡óÙײþ¦€BoÕm#i›9.TÏÉLò_Àøg !„é÷;c£Bló@½C¼BW*â¿)P€Á)\ܾ…/kžéD+_ í÷\·–å¥9„¾fŠŒÁ â÷ØL_«´ÈþËH@\0òñ¡ óY@@“”"ñŸTØö‹!°h!–²³’¤Õ†dx¤`ÿ¥Á¦l5hJDíæé`Š|L®Ëéj#]G‹”—Z¬Èéèek•@N‘zAñÂYbI>§,ø vÙQG{ƒÈP­áÑWpkwª)aV-MŒÏÁL‡+ÄUž*ÐEˆÐ _[M×ÚÛX³>’4Òsõ$EožçD…}Ék#u 0Ô¦šÉ¼~DZàÊùî„æÍ²®ÖÃ!ƒwO +0ÛŒ Z pêfÞ!¨®f>ƒÏ²öáø±°áXš*À=1¿Ùþ}­Gc¿o×àO1¶Pʲ/LÝau”BkÝ¢g²®Ê0¥“+Dxs“¹‡|"®Tü¤`Õ)¼¡! + § B!ßh)'•*€äÁsT‹=¼&‘_O» ëã "XcgqˆpèÀEF"$dÕÚ˜—Šˆ9Žß<–q(€ç3G_S?2ôd%^$«–«G†m)á™Ö7¸ Ä‘qL÷@ù? ù»Œù6¡ý¯N=YÀ¥ãÀ€üÊu$^w +endstream endobj 67 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 CS 0.725 0.725 0.725 SCN +0.106 w 10 M 0 j 0 J []0 d +/Perceptual ri +/GS0 gs +q 1 0 0 1 92.5947 12.5728 cm +0 0 m +-57.189 0 l +-69.8 0 -80.022 10.223 -80.022 22.833 c +-80.022 80.022 l +-80.022 92.632 -69.8 102.854 -57.189 102.854 c +0 102.854 l +12.61 102.854 22.833 92.632 22.833 80.022 c +22.833 22.833 l +22.833 10.223 12.61 0 0 0 c +h +S +Q + +endstream endobj 68 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +63.875 20.434 m +39.901 20.434 20.397 39.978 20.397 64 c +20.397 88.022 39.901 107.566 63.875 107.566 c +87.849 107.566 107.352 88.022 107.352 64 c +107.352 39.978 87.849 20.434 63.875 20.434 c +63.875 109.038 m +39.091 109.038 18.927 88.834 18.927 64 c +18.927 39.166 39.091 18.962 63.875 18.962 c +88.659 18.962 108.822 39.166 108.822 64 c +108.822 88.834 88.659 109.038 63.875 109.038 c +W n +q +0 g +/Perceptual ri +/GS0 gs +45.8308182 0 0 -45.7046585 64.0319138 60.785759 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 69 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +85.176 98.025 m +85.184 97.989 85.19 97.953 85.197 97.917 c +85.333 97.888 85.337 97.919 85.176 98.025 c +73.385 72.454 m +72.834 62.609 l +79.336 55.526 l +72.834 48.443 l +77.132 43.761 l +72.834 39.079 l +73.385 29.315 l +55.092 29.315 l +55.092 72.454 l +47.819 76.176 42.86 84.219 42.86 93.463 c +42.86 95.01 43.077 96.44 43.295 97.985 c +44.084 98.133 56.843 103.481 y +56.737 102.903 71.74 102.903 71.634 103.481 c +83.961 98.177 85.197 97.917 v +85.51 96.398 85.617 94.987 85.617 93.463 c +85.617 84.219 80.548 76.176 73.385 72.454 c +43.301 98.025 m +43.299 98.012 43.297 97.998 43.295 97.985 c +43.243 97.975 43.243 97.987 43.301 98.025 c +W n +q +0 g +/Perceptual ri +/GS0 gs +23.1531162 0 0 -38.4417267 64.1787186 81.7712097 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 70 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.058 0.058 0.052 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 58.6266 96.2867 cm +0 0 m +1.997 0.363 4.084 0.545 6.081 0.545 c +8.169 0.636 10.166 0.363 12.163 0 c +12.253 -0.454 12.344 -0.908 12.344 -1.362 c +12.344 -4.812 9.53 -7.626 6.081 -7.626 c +2.632 -7.626 -0.182 -4.812 -0.182 -1.362 c +-0.182 -0.908 -0.091 -0.454 0 0 c +3.631 -52.836 -2.541 25.147 re +-15.956 -58.309 m +-23.026 -52.161 -27.502 -43.097 -27.502 -32.955 c +-27.502 -21.153 -21.33 -10.259 -11.164 -4.176 c +-11.346 -5.356 -11.527 -6.446 -11.527 -7.626 c +-11.527 -14.616 -7.443 -20.699 -1.452 -23.513 c +-1.452 -55.378 l +6.081 -62.913 l +13.615 -55.378 l +13.161 -48.751 l +16.701 -45.21 l +13.161 -41.67 l +18.516 -36.314 l +13.161 -30.957 l +13.615 -23.513 l +19.514 -20.699 23.69 -14.616 23.69 -7.626 c +23.69 -6.446 23.599 -5.356 23.327 -4.176 c +27.015 -6.403 30.178 -9.277 32.714 -12.603 c +26.582 -4.182 16.621 1.296 5.373 1.296 c +-13.263 1.296 -28.371 -13.739 -28.371 -32.287 c +-28.371 -42.782 -23.533 -52.151 -15.956 -58.309 c +f +Q + +endstream endobj 71 0 obj <>/XObject<>>>/Subtype/Form>>stream +q +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /Perceptual ri +/GS0 gs +0 TL/Fm0 Do +Q +q +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /Perceptual ri +/GS0 gs +0 TL/Fm1 Do +Q +q +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /Perceptual ri +/GS0 gs +0 TL/Fm2 Do +Q + +endstream endobj 72 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64.819 97.953 m +64.542 97.953 64.263 97.948 63.983 97.936 c +63.977 97.936 l +61.953 97.936 59.828 97.745 57.847 97.385 c +57.58 97.336 l +57.526 97.069 l +57.433 96.604 57.337 96.123 57.337 95.629 c +57.337 91.955 60.326 88.965 64 88.965 c +67.674 88.965 70.663 91.955 70.663 95.629 c +70.663 96.123 70.567 96.603 70.474 97.068 c +70.42 97.335 l +70.153 97.385 l +68.606 97.666 66.763 97.953 64.819 97.953 c +64.819 97.553 m +66.613 97.554 68.347 97.307 70.081 96.991 c +70.172 96.537 70.263 96.083 70.263 95.629 c +70.263 92.18 67.449 89.365 64 89.365 c +60.551 89.365 57.737 92.18 57.737 95.629 c +57.737 96.083 57.828 96.537 57.919 96.991 c +59.916 97.354 62.003 97.536 64 97.536 c +64.274 97.548 64.548 97.553 64.819 97.553 c +W n +q +0 g +/Perceptual ri +/GS0 gs +0 -8.9881496 -8.9881496 -0 64.0000153 97.9534912 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 73 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 103.84 m +42.032 103.84 24.16 85.968 24.16 64 c +24.16 42.032 42.032 24.16 64 24.16 c +85.968 24.16 103.84 42.032 103.84 64 c +103.84 85.968 85.968 103.84 64 103.84 c +64 103.593 m +85.831 103.593 103.593 85.831 103.593 64 c +103.593 42.168 85.831 24.407 64 24.407 c +42.168 24.407 24.407 42.168 24.407 64 c +24.407 85.831 42.168 103.593 64 103.593 c +W n +q +0 g +/Perceptual ri +/GS0 gs +0 -79.6798859 -79.6798859 -0 63.9999008 103.8398895 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 74 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 103.822 m +42.042 103.822 24.178 85.958 24.178 64 c +24.178 42.042 42.042 24.178 64 24.178 c +85.958 24.178 103.822 42.042 103.822 64 c +103.822 85.958 85.958 103.822 64 103.822 c +64 103.422 m +85.738 103.422 103.422 85.738 103.422 64 c +103.422 42.262 85.738 24.578 64 24.578 c +42.262 24.578 24.578 42.262 24.578 64 c +24.578 85.738 42.262 103.422 64 103.422 c +W n +q +0 g +/Perceptual ri +/GS0 gs +0 -79.6447525 -79.6447525 -0 63.9999008 103.8223267 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 75 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 97.883 m +45.317 97.883 30.116 82.683 30.116 64 c +30.116 45.317 45.317 30.117 64 30.117 c +82.683 30.117 97.883 45.317 97.883 64 c +97.883 82.683 82.683 97.883 64 97.883 c +64 97.583 m +82.518 97.583 97.583 82.518 97.583 64 c +97.583 45.482 82.518 30.417 64 30.417 c +45.482 30.417 30.417 45.482 30.417 64 c +30.417 82.518 45.482 97.583 64 97.583 c +W n +q +0 g +/Perceptual ri +/GS0 gs +0 -67.7668991 -67.7668991 -0 63.9999008 97.8834 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 76 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +81.21 93.107 m +81.235 92.989 81.256 92.869 81.279 92.75 c +91.022 86.873 97.552 76.185 97.552 64 c +97.552 45.499 82.501 30.448 64 30.448 c +45.499 30.448 30.448 45.499 30.448 64 c +30.448 76.199 36.993 86.897 46.755 92.77 c +46.777 92.889 46.799 93.009 46.824 93.127 c +36.867 87.234 30.175 76.384 30.175 64 c +30.175 45.35 45.349 30.177 64 30.177 c +82.651 30.177 97.825 45.35 97.825 64 c +97.825 76.37 91.148 87.209 81.21 93.107 c +64 97.552 m +61.94 97.552 59.923 97.364 57.965 97.007 c +57.99 97.104 58.012 97.203 58.041 97.298 c +59.976 97.643 61.967 97.823 64 97.823 c +66.043 97.823 68.045 97.641 69.99 97.292 c +70.019 97.197 70.041 97.098 70.066 97.001 c +68.098 97.362 66.071 97.552 64 97.552 c +W n +q +0 g +/Perceptual ri +/GS0 gs +0 -67.6468887 -67.6468887 -0 63.9999123 97.8234024 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 77 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +61.549 69.302 m +59.008 69.302 l +59.362 69.459 l +61.195 69.459 l +h +W n +q +0 g +/Perceptual ri +/GS0 gs +0 -0.1565536 -0.1565536 -0 60.2786407 69.4586182 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 78 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +63.875 20.434 m +39.901 20.434 20.397 39.978 20.397 64 c +20.397 88.022 39.901 107.566 63.875 107.566 c +87.849 107.566 107.352 88.022 107.352 64 c +107.352 39.978 87.849 20.434 63.875 20.434 c +63.875 109.038 m +39.091 109.038 18.927 88.834 18.927 64 c +18.927 39.166 39.091 18.962 63.875 18.962 c +88.659 18.962 108.822 39.166 108.822 64 c +108.822 88.834 88.659 109.038 63.875 109.038 c +W n +q +0 g +/Perceptual ri +/GS0 gs +0 -58.6434479 -58.6434479 -0 63.8746872 76.2690582 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 79 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 CS 0.058 0.058 0.052 SCN +0.1 w 10 M 0 j 0 J []0 d +/Perceptual ri +/GS0 gs +q 1 0 0 1 63.8748 20.4342 cm +0 0 m +-23.974 0 -43.478 19.544 -43.478 43.566 c +-43.478 67.588 -23.974 87.132 0 87.132 c +23.974 87.132 43.478 67.588 43.478 43.566 c +43.478 19.544 23.974 0 0 0 c +h +0 88.604 m +-24.784 88.604 -44.947 68.4 -44.947 43.566 c +-44.947 18.732 -24.784 -1.473 0 -1.473 c +24.784 -1.473 44.947 18.732 44.947 43.566 c +44.947 68.4 24.784 88.604 0 88.604 c +h +S +Q + +endstream endobj 80 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +63.875 107.549 m +39.91 107.549 20.414 88.013 20.414 64 c +20.414 39.987 39.91 20.451 63.875 20.451 c +87.839 20.451 107.336 39.987 107.336 64 c +107.336 88.013 87.839 107.549 63.875 107.549 c +63.875 107.248 m +87.673 107.248 107.035 87.847 107.035 64 c +107.035 40.153 87.673 20.752 63.875 20.752 c +40.076 20.752 20.714 40.153 20.714 64 c +20.714 87.847 40.076 107.248 63.875 107.248 c +W n +q +0 g +/Perceptual ri +/GS0 gs +0 -87.0974808 -87.0974808 -0 63.8746872 107.5486984 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 81 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 107.483 m +40.023 107.483 20.517 87.977 20.517 64 c +20.517 40.023 40.023 20.517 64 20.517 c +87.977 20.517 107.483 40.023 107.483 64 c +107.483 87.977 87.977 107.483 64 107.483 c +W n +q +0 g +/Perceptual ri +/GS0 gs +52.3910713 0 0 -52.1408577 61.2666092 71.6794434 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 82 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 103.84 m +42.042 103.84 24.178 85.968 24.178 64 c +24.178 42.032 42.042 24.16 64 24.16 c +85.958 24.16 103.822 42.032 103.822 64 c +103.822 85.968 85.958 103.84 64 103.84 c +64 20.5 m +40.014 20.5 20.5 40.014 20.5 64 c +20.5 87.986 40.014 107.5 64 107.5 c +87.986 107.5 107.5 87.986 107.5 64 c +107.5 40.014 87.986 20.5 64 20.5 c +W n +q +0 g +/Perceptual ri +/GS0 gs +43.5819511 0 0 -43.3738098 63.3765182 64.8112564 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 83 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.058 0.058 0.052 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 64 103.6069 cm +0 0 m +-22.127 0 -40.129 -18.002 -40.129 -40.129 c +-40.129 -62.256 -22.127 -80.258 0 -80.258 c +22.127 -80.258 40.129 -62.256 40.129 -40.129 c +40.129 -18.002 22.127 0 0 0 c +f +Q + +endstream endobj 84 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.058 0.058 0.052 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 64 106.569 cm +0 0 m +-23.986 0 -43.5 -19.254 -43.5 -42.921 c +-43.5 -66.588 -23.986 -85.843 0 -85.843 c +23.986 -85.843 43.5 -66.588 43.5 -42.921 c +43.5 -19.254 23.986 0 0 0 c +-0 -86.069 m +-23.986 -86.069 -43.5 -66.555 -43.5 -42.569 c +-43.5 -18.583 -23.986 0.931 -0 0.931 c +23.986 0.931 43.5 -18.583 43.5 -42.569 c +43.5 -66.555 23.986 -86.069 -0 -86.069 c +f +Q + +endstream endobj 85 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 100.528 m +57.457 100.528 52.133 95.204 52.133 88.661 c +52.133 82.117 57.457 76.794 64 76.794 c +70.543 76.794 75.867 82.117 75.867 88.661 c +75.867 95.204 70.543 100.528 64 100.528 c +W n +q +0 g +/Perceptual ri +/GS0 gs +16.5319595 0 0 -16.4530048 64.1957092 91.2625198 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 86 0 obj <>stream +H‰ìÒ ŽÝFAéþ—6,†¶Ñü…äcwF¡*¿|¸Ê× éÍçM?p+Óg\kz훾ætÓ¯aú¥³Lﺘé»6=碦o;ÊôŽK›>ï}Ó n`úÂwLo·é#_3½Úf¦ï|Úô`š¾ôÓ[íjú×GMï´µés0=Ñö¦þÄô< Ó'ÿÅô4ÓG`z–’é¯ÿhz”˜é»3=HÐôå?™£iúõLO‘5}ü¦g(›þþ›éâ¦ïÀ8ÿç ä Ïÿy@yÈ@žòüŸ'€<ä OyÈ@žòP§€<ä Oy +¨@žò'€:ä  NyÈ@ò§€:ä) Ny¨S@žê'€:ä) Nu +È@òP§€<Ô  Ny +¨@òP'€:ä) Nu¨S@žêP'€:ä) Nu +¨@òP§€:Ô) Ou +¨S@êP§€<Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) Nu +¨S@êP§€:Ô) î³$°;Ô) Nu +¨S@ê÷i +ØÜçH`o +¨S@ê÷@ØšêP§€¸‡ÀÆP§€:Ô) îÁ°­G À®P§€:Ä=€6¥€:Ä=€¶¤€:Ä=€6¤€:Ô=Y€vól +Øâž@›Q@Ý H`'¯ €( î¥$°Ľ€¶¡€¸—À&P÷FØÁ;(`o ( îÍ$°<Ľ€w@XÙ(`a‡ …T€VuT +XÕaH`MÇ %€tl +XÎÁH`9‡ µ€–rBXÉ)H`!' Uœ€q^X™(`§ û;9 ÜÝéHàæ.(@wvE¸¯kþ—Àm]€îéÊ$pC× Û¹: ÜÌõHàV&À}Ìü¯Û˜ @·0€æÍþ¯qÓ÷ÿkzƒ´éó¿›^!lúúÿM5}û¦·(šþüWÓ{äLþÓ“¤LŸýéY2¦þØô2 Ó/ÿÝô:û›~øÓmmúÜÇL¯´¯égŸ0=Õ–¦O}Òô\»™þó%Ó£mdúÊ×M/·…éß4=ßê¦ÿ;ÆôŠËš>îHÓ[®gú±SLºŒé£Î5½îÍMßs™é¡ohú’1ÓÛž(øG€pH~ +endstream endobj 53 0 obj [/Indexed 31 0 R 1 135 0 R] endobj 134 0 obj <>/Filter/FlateDecode/Height 502/Intent/Perceptual/Length 9936/Name/X/Subtype/Image/Type/XObject/Width 514>>stream +H‰ì—‰BI„guðh¹Pi¹¡¹Äñ]uuvvöý_gÿ3óϣئ¯jº2Þ 2¾Šˆÿ·ßŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠÆ¥4Pu¿yýªÛ‰RÝfŒWu¿ö«nkF®ºøv¨n—F¥ü×Þ)jÅù4½\ïýݦëzê6opUšŸ¼ÄïÒµ$Ly÷{4}fºÔ#y +ê6²?åìO­¯Û˜ú•‚¥ n;o¬ÔþÐ|ÿ÷š­„„‚[Ê@•ýÖ|}û×êÁ4èÚ/ŒPÈPpûÈÛïÍœßêa3”åÃcpË!ˆýí÷ÞG–?jž" B <·ŒÈg¿uß[/Oñ8Ò“éUü©ÇPà ¸E d~c¿¸ï¬Ü~Ú<T(BÀÁÄ3Pí?ÛÏî«÷ÎöY§¹æÈ}³‡A8 ˜AÈ@Ý^g•øŸÚÏæ‹õÞóy§V3ä?Øóà8` +"nIý;ÿÉ~úùÕ}±ÞYþÌi¡òì€`¡€ ¸- $ûÏüþÎ~úõÉ|¶ÞY¾(ZjŒô‹ ‚` Xr ÔíºQ•ÿòû«ýâ>y/Æãs,³Vš%ùjåAhµ  +A“È@µÿ±ýì>yÏÎãS´I«Ö¦SáGò‡ bÐ +Ä€æÀD!`ÈûOö{÷Ñ{vÞ™½.zÞ éç:,ˆâÀQ@„AtÁä0ú7ôŸ~úûÁ~ï>zϾӃ¼ ½l–ø£•1 +‚§>,¶ +&Ãÿ ¬ÿðû;ûÉ}6Ÿ¼×7PÕ«é—ûVúr¡AÀ@ +¨‚<“€@þCúCø£ýðï“ûôדóâø&i«QâoÞ"ˆÅ)ðp@~LF Äp8ÿ±ýñ÷‡ðûá×góÑzq}µ£Ú~¹o¥/gÁ(€F `P8&,*ÀúO¿?†?ÿüè>›O΋ã{¤ýF‰¿yOˆ¢²€!€M°@‹€€.ðU0¤ û_ýÇö_æ¿~ø÷Á}4Ÿ¬g×P‡ªîôË}+}9Ó@ BC€›`IÊ ` ºÐPÿŸ²ÿ‹ì¿Ø??»ÏÞ³ïø$G¤ãF‰¿ùHˆ˜È†` 0 à&4UPo $ à +ï?ñYýûÙ}4Ÿ¬gÛOP§NgS.ÿ¥§ôåL0ªÏ@‹À9 ‹b 6r €@@úyYâüûáß÷Ñ{r^ Í:oŽä‹ ÁP  Ð]ÀUÆ@ ¤hè€üo·ýàÿýüì>zÏÆãk¼!ýëít)ù>þlÁA@ € Ç@5xpðTÿWÚæ÷Wûûè=ÛÎïóÎéý´Ëª#ƒH 8 ª‚ e@Ö@]ø 5ú?§þ¯®þ‹ýà>›OÖ«ãTÍû^%‚@ €Œ… b ˆj‚h Ô€4€ï?ñŸíï¢ýðïƒûh>Y¯ž_Š>6Fúŗ€@` p„1`š`¼$PÈäpþ»ß_ì‡ÝGóÙyzO¢Ï‘~ñ'Å@ 0 +8 f€öUAÐu P€ ,øÿ[ÿÙ~uŸ¼Wׯœ¾4Cî{‚P€QÀXpbp O¤ Æ@€ó-º `øügûÏÙ~uŸ¬÷žôÏéTü™A(P"xD1îÁq N]P°ÿŒÿþh¿ºÏÞ[·¿5M– +ÁQQðŽ7ÁÙ)3{€«@Ö@0Ɖ€@®@>¹xPà°þ«ýì>›ï|ÿžèÇt*ùNÏ‚b0´ 8Ø„TØÁ™ +ð€€€ úßøïìWóóþþÕETHB A `pH è]8vrðÈß+mP°ÿ¬ÿþb?¹ï¬woò³i +i` $ ÇUÄ5Ç4bFJ@Ø.¸Œÿðû‹ýä¾zïžãW° qÀ`p0¸ »‡û{»ØÁ•@@€ ÀøÝoìwæ»Çø³‰ +Q`  f@&!Ç@gƒ›Æ@‚ÀQ"ÐGÇ'P±ÿh?ÿûÎ|óÿnšb„Ê€ƒÀ3U 1€G4Á5Œj +g€€6 O¸wvqp8ÿ!þá÷ûÕý¼ï5@,x + WÌ€T®jcE 6·¨0°üÿ/þ“ýê~“<¿V–¡@ À2à*ÀÚ€Æ#ÐòÌŒ€™Ú€0°hPÐü—ø§ðÜ·ÏðŸ&*å@(ˆà*€À5@Mc D€ÂQ"ðÿ€ €À€þÿòû«ý6>•¥€!À ˆ5@Mcö œ® :†ßј6 Ln ï?Ç?ÿþÞþøþnšòÈÝÒ0"¨îl +D+ðþ €¯`uŽØ€0°àp ÿhƒ}Ï)¢€!p à&ä€5€M7Œ< Or ™E€ÐöÀÀà  ð?°¿îwŸ0ÅH`pÈQ@7A%#šÙ3`vnþÙ‚` ðúߣûÿNõHAÀ€«ŒnÞƒæ ðS`È# À € `Àø_aݾԪ<ŽW¾ h ÀTà"X\hÍÏ 7Lø87ßZXZ–Èœ IXÿ‹õ9å!ð h ðM`脌f +$ gÀÂ"°þÂ&¾$ŒÿÅþkt>7!+Ë‹ÏZzÜ "và +DV€]I@N€ +ÿë~ì‰U1àb@š Fàås@`‰Mä:@ï@ ³¹@âݯ<Ù +øË3ÀGÁWBà#ÐUÖÚ+áj„‡ Ž\«ëÏ_†\Fø(þ÷®˜¨ è$ö8h +=0\ü®À#€Ïà4Ni€â_ÊVk‚-¹ y ¿ÒЀwà&¬Àƒîñiœaÿo¬\ Äœ[t †=0‚hFÀòЬ@à—ßj€âß +pcÀ!€GáÙÉ °½Õy‰èN$3ÐŽÀ¹àÛ €ºô*‰‹À¥"à× Lt 7x,Ûp¼×  è ø?€L dxûÆ#ÀS`è=`#à@w€ëÀÛ÷—Ÿ>»( K•àQø§ÀÒ"õ@2# ¸ñà°#ÀðÝ'€o€ºŸñ6+—Þ9ª{` °— Ÿ¾Ìðéó•^€¡*ÙƒñЈÆàà0£3;Àޏ #SE +|¹òÁá¾ë¸fµŠè: X1ÅÿaÉŽÀW@€Ö N …!†€?ü%ˆ3; pF§Ÿˆ2ôˆÆ A"àNnrèà;ðç¯_€‘(E@¦À…NH<¼Ðˆ"€/ÁŽºâðóg`T²¸5ÈS@{ÀÁa…@61ðØu`G@`TÊ!À=€ð=àB`žBàÁ€K ]z Ò ä;@;À€À¨ô#`OB;‡ùX^¡¸M3;à‚; u¿ØÔ)žqà C˜à ŒNAހŕ6]‚8ý뀺ßk +!à{ÀŒÁ\ôYwÃÐ^ÕKPf é€Àˆ•N¾t Æ!ð #(Õ5‰®‚P÷[M©{B\"Õ!Ðï v DÀ¯€0Â(ŒP‡P|‘1…À„À@[0Þ´¶£(ŒMI|ƒà1‡ÀìÓÇ&ú%@OÁG°çá\Y]"€f ᝒ ‡@:¯ ~jÀ ;pOÁöÚóà(0vù¨N}oÁ¨øÄxÑÙÜŽ"ÀÌÀÀèez <öw·_A ­p öG€/:1^¾ÚÚ1`/A逺_hÚ•ƒç{;›C¨¨ÂxÐ=ŽV@‰€1ʆÀ/ <Þ@îïn½ÚF T”Ÿ‚‡G'™P"`\ŠB€–ÀålÁ³“îÁÞöfG·à5”ÀCS´»p +R|N# î×i‚ÌtK€¶àëÓ£Ã}Þ‚HÀ|R•ïÀ ÜG°1>•¨GI|¹âƒðŒBØ‚¦ôUI Ì#°;~^ò,0~¥!põYBÚ‚ƒ×@Õ%€;pßïÀ5) ïtòÜÙz5Шr—•@GJ@w ž‚%Ƭ(h VÕpwì% % ;P# 0^y»‡TBÏ€G8‚K )ÀØ%Ä[Pj@¯9W7' ¸çs p àüQv`=ÊÔÀÇ SÏ¥ž<~ä†@?„· –Àž++S¼ë~•FÉnASt lS s2fn6’ · –Àáñi) P¾à8:Üè7" ž/ð<èžœçK î7i–ª®Óãîþ®»û€`g€Ü‚¯e”¨Uù8?; ïÁ¾†€‚ùPJ`”Ô€¹ý˜}jèµâÀÈ èV΀º_¤qŠjÀ ýxÜp +¦CðÙ‚ŸÇf”¨SŽ€?£!€àÈNÁ^ÈÁõ<ÎþÇ~}¨µ­¬Q>'$$4Ó›±qÁ½wlÉæþ¯çÌŒ4ÒH¶wùìµ¾KÐó>£õûfÀoK@Ðß/%@ÿôh5jekˆ)xr¸¿7Íô Ø 9CPÎ1ÕOà‰? ³üö k +&)¸1éTÖô)à‚¹BÙ3ß) ÀÁd=Î|C £¦`.3ìø2&Ÿ€ß)Po¶on¥ÁÀ3]=Íc@ +ÍM€u +T•{R@° LAû(å³CޱÏAë·vv÷üÇ q +|üâ`Ž€wy <©)hœƒç¶€ÍYØÇà¹<39u +h} +:{ + +oCÏA%`Ç0ö1  AkP@y¼:ìsаk +ø2†wXBJ@ØÀcpeò x¸ó +°ÎAGÀÚ„Öµq +„#±D*“/VjöõÏ{ +Xlr +Jòè´–€ÄeÄ#àÛÄ1èˆÆ’©l¾T©5Û×·¦€‚É8´€ëv£V.æ2R@xê°B™ç ! RÌgR‰˜+ÀsŽ)àë8>( Ø>!ð'Û³ØÚí ÐíõÝS€‚ÉÐ{}Y¢€G +X‰šEÀ¦pàp#< ot®€÷~¯;(àLØ moÍ"`gW ¸pt”€×nŸÏ/àñ^hNŽæ"àøôü"O¦³…RµÞ(`5ò x~¼¿½‘Jùl*‹Jóp¿Jç +åjC¸£€i˜€N³®\PÀ¿½ª¥B6ŒSÀ¿? +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@Уô(= +@o™¢ñd:[(Uë°B ÐnÖ+¥|6•ŒÍOÀÑÉ™+ Ù¹¹½§€Õhˆ€ëv³¦„ç" d ˆ%SÙ|©Ro¶)`eò xz¼ÿyÝnÔ*Å|&•ˆE¤€ýYl[†€k!àé¥Û£€Às¼)w^§Ç‡û»3 Øö_ÇðŸ€%àÜÐê˜~Q@€9CÐðx{ÓiÕµ€ ¿€/°§àHϯ])àƒ‚ìoNŽöf°µ³»g ˆ_¥s…rU ¸—ztÎ)ðÞïu_ž”€f½Z*dÓÉxÔÒìŸÀجc@)—ñd:[(Uë­ÎÍ­ð¢ü¦€ 2† # Ý¬WJùl*‹^œ)Û[ ø¯WÀÁÑÉùET h¶µ€¾-€Ê#àõåéá^ƒÍšž‡€ [À™ÊæK[À“Àc ØL])àÎPÌgR‰X$|&‡`h{Óðe:Û–€p4&+µ&ÏÁUÉ+@ƒ×­F­\Ìe®—‘ðéœìŸ…#±D*#4ZJ€} P@p)âÔ) tZª`ƒB€ðmìSÀ°þÃ9ÃÆ9è ( ˆ´{ƒ–€-%@ƒc=6)à›!À=õ1 ÎÁ÷[ ,?ÿ´ÁÊðcpR_Ö¾êc`wÿàÈ<›NÁ•ÈzŒSàÎs +ØÇàŽ} +Ì @1瘂ü 9œ!Øn§ÀÉá4Çàk +¶‡ XvÎ øxï«!xï‚þS`rœù§ =>8‚Ê3‡ q +üP§ÀÚ˜§€EÀ0z +ú† ,·Oÿ|Úæ<3`ׂ“ °‡À†œ‚{j +F­)(‡€à°ô†Ï€¦œÞ!8ñ)ð—)(†@“C`ü ¨P³f€5÷§‚#§`$æ ÎÍÁöéð4|ø‡àXþ2Jzð7d¾ŸÀ‹ý3 ¯gÀñÁ¾œß'‚†€oë?ÔØw‡@^ ßo€–ï ·  ~bdä Ï0¼SÐáh,‘Êä{¿À¸¬Ÿ@CþÄ ¸3àxê0lÈß@8r™ð܃Îo@oAXV€ÁŸ€¸Å ¸°fÀŽoL'À—î=¨=!€ÀÒóï@ë'ÐnønÁig€!@PCÀ½õo@>Îoà—-€–Ó§gº?q ¸· œÛÆ ˜D€ÈßÀÑñ™ú dÔo )â7À-Dîðñ®v ç't~Ó΀¿üÄ5P³~ò7àÙ‚$°Œž€gñü;°V¶/ý3`}6úÔ¿çðlA.eöi>o=µåO Y——@ÚºnÁix~‡ê7—×@©jnAç åä{ÌXÊÏç'0ú7'SÙ|±¢g÷ ä`IyŸ€¾ó´j¦ÞŸÀÌìß@Hý‘˜¹ùѨ'ÀÞWqñO€ç˜V€þ l¨kÀ»â7`<ƒËJOÀ»ýX§ ±­Ÿ€óL| Žø ¸[0W@Ë÷üÒ ,2÷0ðTK;pÊKÀÿ[Ðú œZ[0[°Âs€ÿ÷i>oÆ!`=ÙT2õïÀÉ/W€ùÐ[0–ùð?°ð #ž€˜ýÌ´½Àºw :@Ãyº½·ws ’À¢ø¼>;O@ÅzìSÐÙ³ ýÈÿÀ݃ƒ]ÿ€Ó§ÿ xOÀ½ûdÄUOÀ8Ïxä@<Þÿ ,,€ñÜyV€ó ìÀI lÁ?=j zî˜C¨KP={¨'@‚Μî'0°ý@ÞyÄò y÷éŒó g`§U¯Š' #Ÿ€ˆ|ô)¨wàô|Àž~â(”¬G@Aÿ€æÛçÀðÌÀR!ëÆ0õtµ¡@R<â? ýèöß8Øçˆ€=ËÅœ|¢ó{¼[pýû†g $®Ò9g Þ9ÿ¾‹Êà­ßµÿÎ%˜¾ÿçð?Óñò0Æ yÀBòPOÀ‹ç ž1=‡À,§à°G@ŸÖ !Ç`Q=â?`LX@^ÎÐw@U_‚Ö°÷?öË…/ª#‰âBBH|" +‚DÄ‘D «÷e³ºY¾ÿçIztW÷í;1;;3·Ï7¨>ÿ>uj\àº`»këI {€«@8*cU-/¸Ž;’X !Ê`ÜzR¬L@ePü7Ç…¸uG/ÂÇ\ùÐ*`mP‚ˆ@e`4ÿ 4v]‚woS¬Ž#!ðÃ-½u„{@ª€´ÁF +TFQ €’K@ܸo‡0b”BÀ•AÞVr¤ÖM0ª +„3€Èî»oßÉ-š!ÀePöÝÛÚõ h"Pøÿtí*@ +Z /a$5päp!/BÞzÄ*P¿®ÿ€°vmd5pdZö€ÞOÏyèAÐD 20‚®Ó ðß/Ÿ¹\}2%w×ÀñE@  ¹²*"ð{ ÊÀßÑuÀWxŸï€tŒÚš!öªÀNÔAŠÏ•”ú¯ ðÁHJÀ—€1ï€b؈U@‚€ÀÇ««6*_#ïK×c {¤eP¸£'alƒ® Tþ¦®‹þK,JÀýXÆIÈ=ðÃ-_ì \Y D*í*øo@ø`%PИ•0–XB@ö€TiƒÓF 8*¹ç1ÿ-x|úH @Ïi(·€tŒƒ€–*°¶þpã‘ ÿ¼ä“ÀÇ@`ÀCP)ðº.ûŸm€—ï#zJ l)c °¤ +툀\oß]¼¿üàc 0P€ bzoö'þ‡ €#àâüí™g€´ÀÉ”€Vnv<¯OÏÞž_X”À*Æ@?a(?ÁÿJþÇ Èœ„Ð`p£¹¬ ÊMh9\ È*0‚6 +ú¬Ô~çàâÝù¯go^Ÿ§ð -p; %ÀU>rN^óIpa„U »  b^ä†ÿrrxóà@°;[`¾ÆG@ºŠà"8{¾p(}6AŒc C`ô„ø +ì>ìÏýWαÐ_¾øù` gà(«%ûRxœÇU0„ÏA¥oñÅÙoþg€ +@Wàþ`¯À„Z`ŽÀ7m +r¦@1ÈHè• |î³ýÔÿCþóˆ€ +¶·6KL.”€ä ¬m €2€M€p«€àe`0‚¡Ò7ø¸OöË÷7ÿ%ÎB`à`è8% +Ä£ØÜÂI€2@›€c@W3@}€ƒ€!P +”¡Ÿ’'øÝ¹û)þõÿë@àÀ# ÀÊÄ‚À½ûë6B M@1@mPAÀ(‚ÐGéà-8û£ý²ÿßÙ €@6U€Í‡Ö×Z˜CX[Gä2c@V0 A À€9ˆ(ôL:<¼óá¾Ú/ñoþÓ @À€;àƒû0郴 8¨ ÐQðêøÄÐ FpÀ 8z"›úŠßà#»ïíçø?Sÿ±$xhL˜ìðu  Ð&ÐU 9 A ` +€s $¤ºZ<¦”ñcóÅ}ØïÏñÿFý§@'5 l€ýŸ6J€Cà; `}7Ä8 ™ ƒ€(à,`„ß" =‘  ïÉ|v_~?ÙïýÇ € V€æ0YZð›€nެÔÈ€@À ` ( =“ Ž7 óåï{ûÝÿ—€Ð CRÀp›@b€Ž^Žƒ@(0 A¡©-ŽŠóñèøøj>Üûã÷ÿ±èÐp`U7À("ÀeÀÎB´: +ˆ=fà A@ë P@0‚B¢ËET>$.Þ“ùê¾ØßôÿÇòßWÀ2Ó  €ôA8 +Kp hpÄ“ ,4ô~qTœ'?gïa¾¸ßÏöÿŸ±ÿÙ®N€nÜ[ÓHp ”&Aaè•dl<ÀÌ÷ÕþøýŸÉÿÇØŒþ‡ +`GÀôV@;á&Ð0vcZ €1 H8Sz#ù”­'ïa>»¯ö7ýÏ@:`7–K› ƒ(Ä@`T§‹¯8ìkvÞÃ|ußìoõ? €Ž(! ›ÀVAÆ@€€)@0Ä“ 0ôK26àX͇ûþÎþ†ÿ>º €@ˆ]Ž @@ë@(à€@`X¿ôE60† ïÅ|¸ð‡ýúýÿá°H6ÀÔðe`„À*H PŒ”Cpކ\¯G…éxì#<Àa0Ÿ?¿Ú¯ß_ý  %: C Æ€®ÇB(ØFáPqè‡tàC ïÅ|¸Oáoöó÷þ7 krÜQà>€ PϘ€@$ü$0äúyqT˜ŽÇþ ð\̇û²û5ýñýCþ›ÿ3%ÒU  "î €0FµßÙÀž­'ïñ÷Ù}ùýúýËþÏ í1 9@}@—CÀYÀHØr G…éxl8OÖ“÷H~¸ïì—ø7ÿ­Ä˜y ¤ Ü ”€8ŒÂ®âÐéÀ»<ýð^ÍßzD»?ÚÏ÷ŸóßÀ¬@ÂÀr ¼ ¸ð:à(` ˆ€˜§'‹ªtLžO°mæ‹û°ŸÓŸ¿ÌÿdÌð |/ Ü ×% ”€¶•†I§ÞbëÉ{2?º/ößû‡ù?¤h 0>"œÀFA´Õ…yyú öžÌW÷Íþ²ÿ~Ì +7š |“2 P +p”… ÍEV2© ÏÖÃ|þûê¾³ßú_ðÆ@´Tf€—A„À( ”€°®04ôpqTœOFÇ+ÈÏ'óÉ}þüj¿}ÿ™÷jgÀA (à ¬) ½“Î~O¼óÅ}³ˆÿ3©È€‡ ¡‚BAk‹£ò€2=¬‡÷0_ÜÏíŸÿ¡V¥€AQº»èJÇ•'Pïa¾ºŸÙ?þßp9FAÀ@@Ýî—âà7Í{˜oî›ýñûσÿP‰A €1` +=•¾Á÷f¾¹íŸ/ÿY‚H` xú¥0½¼›Ïî·Û?þßð9@à( „Õœ‡(™\_c%s_íŸ;ÿYmŠA!hµÊÇ^qÞ›ûMûçÉh© AJa¥ˆUcîoSóÍý9¶_T‚À(ð ´à°Ðʆÿ6>ËrÁþùôŸµT¤ÀaPb¡?JŸ!¾OâþÛÏZZj¡ @B_•¼Iö`]û7-åZnQ×VLImã7Þ©kãÆ©ÆpÃ@èJÓµcQƒ~ò0ü)º6j²>{ïÕµ=SS×=ƒêÚ’ÎÔõÃw¬®Ÿ¿ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªúS€¶Õö +endstream endobj 31 0 obj [/ICCBased 136 0 R] endobj 135 0 obj <>stream +ÿÿÿ +endstream endobj 136 0 obj <>stream +H‰œ–yTSwÇoÉž•°Ãc [€°5la‘QIBHØADED„ª•2ÖmtFOE.®c­Ö}êÒõ0êè8´׎8GNg¦Óïï÷9÷wïïÝß½÷ó '¥ªµÕ0 Ö ÏJŒÅb¤  + 2y­.-;!à’ÆK°ZÜ ü‹ž^i½"LÊÀ0ðÿ‰-×é @8(”µrœ;q®ª7èLöœy¥•&†Qëñq¶4±jž½ç|æ9ÚÄ +V³)gB£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚óÈtÕ;\ú” Ó¥$ÕºF½ZUnÀÜå˜(4TŒ%)ë«”ƒ0C&¯”阤Z£“i˜¿óœ8¦Úbx‘ƒE¡ÁÁBÑ;…ú¯›¿P¦ÞÎӓ̹žAü om?çW= +€x¯Íú·¶Ò-Œ¯Àòæ[›Ëû0ñ¾¾øÎ}ø¦y)7ta¾¾õõõ>j¥ÜÇTÐ7úŸ¿@ï¼ÏÇtÜ›ò`qÊ2™±Ê€™ê&¯®ª6ê±ZL®Ä„?â_øóyxg)Ë”z¥ÈçL­UáíÖ*ÔuµSkÿSeØO4?׸¸c¯¯Ø°.òò· åÒR´ ßÞô-•’2ð5ßáÞüÜÏ ú÷Sá>Ó£V­š‹“då`r£¾n~ÏôY &à+`œ;ÂA4ˆÉ 䀰ÈA9Ð=¨- t°lÃ`;»Á~pŒƒÁ ðGp| ®[`Lƒ‡`<¯ "A ˆ YA+äùCb(ЇR¡,¨*T2B-Ð +¨ꇆ¡Ðnè÷ÐQètº}MA ï —0Óal»Á¾°ŽSàx ¬‚kà&¸^Á£ð>ø0|>_ƒ'á‡ð,ÂG!"F$H:Rˆ”!z¤éF‘Qd?r 9‹\A&‘GÈ ”ˆrQ ¢áhš‹ÊÑ´íE‡Ñ]èaô4zBgÐ×Á–àE#H ‹*B=¡‹0HØIøˆp†p0MxJ$ùD1„˜D, V›‰½Ä­ÄÄãÄKÄ»ÄY‰dEò"EÒI2’ÔEÚBÚGúŒt™4MzN¦‘Èþär!YKî ’÷?%_&ß#¿¢°(®”0J:EAi¤ôQÆ(Ç()Ó”WT6U@ æP+¨íÔ!ê~êêmêæD ¥eÒÔ´å´!ÚïhŸÓ¦h/èº']B/¢éëèÒÓ¿¢?a0nŒhF!ÃÀXÇØÍ8ÅøšñÜŒkæc&5S˜µ™˜6»lö˜Iaº2c˜K™MÌAæ!æEæ#…寒°d¬VÖë(ëk–Íe‹Øél »—½‡}Ž}ŸCâ¸qâ9 +N'çÎ)Î].ÂuæJ¸rî +î÷ wšGä xR^¯‡÷[ÞoÆœchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â­*­6X[ݱF­=­3­ë­·YŸ±~dó ·‘ÛtÛ´¹i ÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö +n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=GTB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%—®K7YV³©fFŸ¢ßY Õ.©=bàá?SŒîƕƩºÈº‘ºçõyõ‡Ø Ú† žkï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹­³mzyâò]íÔöÊö?uøuôw|¿"űN»ÎåwW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝ­èþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_pß¶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMśΠnßLÝlÜ<9”úO¤[þ˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ +¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäü儿 æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ ÷„óû +endstream endobj 132 0 obj <> endobj 133 0 obj <> endobj 137 0 obj <> endobj 138 0 obj <> endobj 32 0 obj <> endobj 131 0 obj <> endobj 130 0 obj <> endobj 127 0 obj <> endobj 129 0 obj <> endobj 139 0 obj <> endobj 140 0 obj <> endobj 141 0 obj <> endobj 142 0 obj <> endobj 128 0 obj <> endobj 143 0 obj <> endobj 144 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +43.5819511 0 0 -43.3738098 63.3765182 64.8112564 cm +BX /Sh0 sh EX Q + +endstream endobj 145 0 obj <> endobj 146 0 obj <> endobj 147 0 obj <> endobj 148 0 obj <> endobj 149 0 obj <> endobj 150 0 obj <> endobj 124 0 obj <> endobj 126 0 obj <> endobj 151 0 obj <> endobj 152 0 obj <> endobj 125 0 obj <> endobj 153 0 obj <> endobj 154 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +52.3910713 0 0 -52.1408577 61.2666092 71.6794434 cm +BX /Sh0 sh EX Q + +endstream endobj 155 0 obj <> endobj 156 0 obj <> endobj 157 0 obj <> endobj 158 0 obj <> endobj 122 0 obj <> endobj 117 0 obj <> endobj 159 0 obj <> endobj 160 0 obj <> endobj 123 0 obj <> endobj 161 0 obj <> endobj 162 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +0 -87.0974808 -87.0974808 -0 63.8746872 107.5486984 cm +BX /Sh0 sh EX Q + +endstream endobj 163 0 obj <> endobj 164 0 obj <> endobj 165 0 obj <> endobj 166 0 obj <> endobj 121 0 obj <> endobj 118 0 obj <> endobj 120 0 obj <> endobj 167 0 obj <> endobj 168 0 obj <> endobj 119 0 obj <> endobj 169 0 obj <> endobj 170 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +0 -58.6434479 -58.6434479 -0 63.8746872 76.2690582 cm +BX /Sh0 sh EX Q + +endstream endobj 171 0 obj <> endobj 172 0 obj <> endobj 173 0 obj <> endobj 115 0 obj <> endobj 116 0 obj <> endobj 174 0 obj <> endobj 175 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +0 -0.1565536 -0.1565536 -0 60.2786407 69.4586182 cm +BX /Sh0 sh EX Q + +endstream endobj 176 0 obj <> endobj 112 0 obj <> endobj 114 0 obj <> endobj 177 0 obj <> endobj 113 0 obj <> endobj 178 0 obj <> endobj 179 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +0 -67.6468887 -67.6468887 -0 63.9999123 97.8234024 cm +BX /Sh0 sh EX Q + +endstream endobj 180 0 obj <> endobj 181 0 obj <> endobj 182 0 obj <> endobj 183 0 obj <> endobj 110 0 obj <> endobj 103 0 obj <> endobj 184 0 obj <> endobj 185 0 obj <> endobj 111 0 obj <> endobj 186 0 obj <> endobj 187 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +0 -67.7668991 -67.7668991 -0 63.9999008 97.8834 cm +BX /Sh0 sh EX Q + +endstream endobj 188 0 obj <> endobj 189 0 obj <> endobj 190 0 obj <> endobj 191 0 obj <> endobj 107 0 obj <> endobj 109 0 obj <> endobj 192 0 obj <> endobj 108 0 obj <> endobj 193 0 obj <> endobj 194 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +0 -79.6447525 -79.6447525 -0 63.9999008 103.8223267 cm +BX /Sh0 sh EX Q + +endstream endobj 195 0 obj <> endobj 196 0 obj <> endobj 197 0 obj <> endobj 104 0 obj <> endobj 106 0 obj <> endobj 198 0 obj <> endobj 199 0 obj <> endobj 200 0 obj <> endobj 105 0 obj <> endobj 201 0 obj <> endobj 202 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +0 -79.6798859 -79.6798859 -0 63.9999008 103.8398895 cm +BX /Sh0 sh EX Q + +endstream endobj 203 0 obj <> endobj 204 0 obj <> endobj 205 0 obj <> endobj 206 0 obj <> endobj 101 0 obj <> endobj 102 0 obj <> endobj 207 0 obj <> endobj 208 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +0 -8.9881496 -8.9881496 -0 64.0000153 97.9534912 cm +BX /Sh0 sh EX Q + +endstream endobj 209 0 obj <> endobj 96 0 obj <> endobj 98 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +70.936 66.189 m +71.386 73.577 l +71.52 73.641 l +77.553 76.519 81.579 82.965 81.455 89.584 c +81.434 90.684 81.326 91.695 81.132 92.602 c +81.245 92.815 l +81.484 91.83 81.582 90.769 81.608 89.584 c +81.756 82.884 77.672 76.407 71.587 73.504 c +71.534 73.478 l +71.08 66.043 l +h +W n +q +0 g +/Perceptual ri +/GS0 gs +0 -14.6765232 -14.6064301 -0 67.8957977 84.3313522 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 99 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +56.466 41.613 m +56.789 41.51 l +63.994 34.295 l +71.375 41.673 l +70.921 48.3 l +74.402 51.781 l +74.62 51.781 l +71.08 48.24 l +71.534 41.613 l +63.994 34.078 l +h +W n +q +0 g +/Perceptual ri +/GS0 gs +0 -10.7909908 -10.7394543 -0 67.0767288 44.2208672 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 100 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +70.873 55.321 m +76.219 60.678 l +76.435 60.678 l +71.09 55.321 l +h +W n +q +0 g +/Perceptual ri +/GS0 gs +0 -4.5232949 -4.5016923 -0 72.1971588 59.7019844 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 215 0 obj <> endobj 212 0 obj <> endobj 217 0 obj <> endobj 218 0 obj <> endobj 216 0 obj <> endobj 219 0 obj <> endobj 220 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +0 -4.5232949 -4.5016923 -0 72.1971588 59.7019844 cm +BX /Sh0 sh EX Q + +endstream endobj 221 0 obj <> endobj 222 0 obj <> endobj 223 0 obj <> endobj 224 0 obj <> endobj 213 0 obj <> endobj 214 0 obj <> endobj 225 0 obj <> endobj 226 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +0 -10.7909908 -10.7394543 -0 67.0767288 44.2208672 cm +BX /Sh0 sh EX Q + +endstream endobj 227 0 obj <> endobj 210 0 obj <> endobj 211 0 obj <> endobj 228 0 obj <> endobj 229 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +0 -14.6765232 -14.6064301 -0 67.8957977 84.3313522 cm +BX /Sh0 sh EX Q + +endstream endobj 230 0 obj <> endobj 97 0 obj <> endobj 95 0 obj <> endobj 92 0 obj <> endobj 94 0 obj <> endobj 231 0 obj <> endobj 232 0 obj <> endobj 233 0 obj <> endobj 93 0 obj <> endobj 234 0 obj <> endobj 235 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +23.1531162 0 0 -38.4417267 64.1787186 81.7712097 cm +BX /Sh0 sh EX Q + +endstream endobj 236 0 obj <> endobj 237 0 obj <> endobj 238 0 obj <> endobj 239 0 obj <> endobj 89 0 obj <> endobj 91 0 obj <> endobj 240 0 obj <> endobj 241 0 obj <> endobj 242 0 obj <> endobj 90 0 obj <> endobj 243 0 obj <> endobj 244 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +45.8308182 0 0 -45.7046585 64.0319138 60.785759 cm +BX /Sh0 sh EX Q + +endstream endobj 245 0 obj <> endobj 246 0 obj <> endobj 247 0 obj <> endobj 248 0 obj <> endobj 249 0 obj <> endobj 88 0 obj <> endobj 64 0 obj <> endobj 39 0 obj <> endobj 40 0 obj <> endobj 65 0 obj <> endobj 66 0 obj <> endobj 254 0 obj <> endobj 253 0 obj <> endobj 255 0 obj <> endobj 256 0 obj <> endobj 257 0 obj <> endobj 252 0 obj <> endobj 258 0 obj <> endobj 251 0 obj <> endobj 259 0 obj <> endobj 250 0 obj <> endobj 260 0 obj <> endobj 24 0 obj <> endobj 25 0 obj <> endobj 26 0 obj <> endobj 265 0 obj [/View/Design] endobj 266 0 obj <>>> endobj 263 0 obj [/View/Design] endobj 264 0 obj <>>> endobj 261 0 obj [/View/Design] endobj 262 0 obj <>>> endobj 54 0 obj <> endobj 55 0 obj <> endobj 37 0 obj <> endobj 38 0 obj <> endobj 56 0 obj <> endobj 57 0 obj <> endobj 58 0 obj <> endobj 59 0 obj <> endobj 60 0 obj <> endobj 61 0 obj <> endobj 62 0 obj <> endobj 63 0 obj <> endobj 33 0 obj <> endobj 34 0 obj <> endobj 35 0 obj <> endobj 267 0 obj <> endobj 268 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +0 -0.1565536 -0.1565536 -0 60.2786407 44.1548843 cm +BX /Sh0 sh EX Q + +endstream endobj 269 0 obj <> endobj 270 0 obj <> endobj 271 0 obj <> endobj 87 0 obj [/ICCBased 136 0 R] endobj 49 0 obj <>stream +H‰lTËŽÔ0¼û+úÜqûí+â´‚Î(ZÒîŠÿ§Úq2BÑØ©š~T·ÛY>]hy¸8z÷þBæÃ–e£d£–ËGë»T§ÕÝÖW³|~º®O¿~ÿùöLןfùë7“;W)F–”ÈsŠB>±ÄB×'óݼGâkÿY]À~¥WóFBPŽT‡œ­/F¹8Ɔ·Ì>D­Ç»®‘V³£"«O¥¯™]¼gŸa"P« Q\­Tá§™+¬V¸µ2 íí9”³Ø9½=+³³h»W¢ÏŠ~¦(6¦ W¡9åí069®}3·RîØ×.; ‚ ѲG»Uà(oàÕöûÿÂæîÛñAxÜ]Ês%íòþ7$˜)tKò}:¬ÇÌê儸±ž ©jýêÖ'qà,\ŠØüJã¬ÞÛ¾š}vù'à9Ý!c“;S¢nPØÆÀ‰2æ³’‚C`G’ÆYn^8cL˜;äÍôìp +5'9¥ßem}¿{~ú>š¿ ¬Žý½ +endstream endobj 50 0 obj <> endobj 272 0 obj [/ICCBased 136 0 R] endobj 29 0 obj <>stream +H‰œVÉn1 ½ë+ô–µQË5K{iÐ)Ð\ #h +È]’öÿûD-3ÓÀI¶øfHqy$ýÇs¹¿:×òìâ\ŠË+|íÛ#óô‘m~ «Éàå±I^+mü8ÆK>bHE¤¨r + àxS,]ìFý˜¯›À·7±ˆÍeìdío·^™˜zäMN¤rHÒ[¥½…±SÉ7,u,#(S˜kÇö<&(T'ÎÉ~K p¡Xh•b¹´pì‘vë%‡ƒø"€ý§»‡Ãݯ?¿ùð]ìßßhùíQh¹K±}´ N圓&”Þà¢d¼M(àQœÝÊýͽ–÷òòV^‹kܨ¥±‰?»úõpwÒ“iž>Ø¿;jyñ“ÍŸªÙ•š9­æVjöuj®©UÅYÐc¹bvÏÕ»SØ Óåò°páµ2A·^÷ÁéZß:ظ™ÙäU ô‡1Rãoç“òÞEa‹FKÙ'³VÉ$´]X6odÙ¯ +îOóB+5:­VjaKßÃÙ[~3 § ¤ ˼½<˜+éUú ËY'EU)ɤ‚CJ Ÿ“@ ª"r©¢lrE9›fºÂEP2Gå0ÀhW9®G—8Ì.ª£Tq°hŒäÇ Q× °øÛâR±‰vDd‘B| N‹MX&´Ê  }‰ñÈÊ´Kh—(Ö3™G™ø‚M áË üÎL-)°Ž˜Ó¤l%&b,P52*&΢½&RÎ2ÊÃþ8šïk¡œo¸^òí=ÂGûÀÌfô¼jm•‹4ÑHh‹ËÀBò¬MH'ã¡cd}¨)&CÍv…‹€D +ÈYöAošÊ.8À˜kÔå ¶¸ ì þb5è( \ÿ.qý»Œ~&åÓÄõ¨«íDÓß—{tý’òˆÜã ¿¤¹Å¥bŠnÈ¡÷zÁ:šåÝâ2q#ƒE ƒ(ÍPê4b˜6¸ Ü»¨p-¿»¯£¦A\€'lN‹h¬ÜYRÆÇç6$ïeÜLšRD5y/[´Aº¡. ç#ñY£‡—¹˜í\ÌüÿÖµø'À‡þ/ +endstream endobj 30 0 obj <> endobj 42 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 107.483 m +40.023 107.483 20.517 87.977 20.517 64 c +20.517 40.023 40.023 20.517 64 20.517 c +87.977 20.517 107.483 40.023 107.483 64 c +107.483 87.977 87.977 107.483 64 107.483 c +W n +q +0 g +/Perceptual ri +/GS0 gs +52.3910713 0 0 -52.1408577 61.26651 71.6794434 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 43 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 103.84 m +42.042 103.84 24.177 85.968 24.177 64 c +24.177 42.032 42.042 24.16 64 24.16 c +85.958 24.16 103.822 42.032 103.822 64 c +103.822 85.968 85.958 103.84 64 103.84 c +64 20.5 m +40.014 20.5 20.5 40.014 20.5 64 c +20.5 87.986 40.014 107.5 64 107.5 c +87.986 107.5 107.5 87.986 107.5 64 c +107.5 40.014 87.986 20.5 64 20.5 c +W n +q +0 g +/Perceptual ri +/GS0 gs +43.5819511 0 0 -43.3738098 63.3764191 64.8112564 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 44 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.058 0.058 0.052 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 63.9999 103.6069 cm +0 0 m +-22.127 0 -40.129 -18.002 -40.129 -40.129 c +-40.129 -62.256 -22.127 -80.258 0 -80.258 c +22.127 -80.258 40.129 -62.256 40.129 -40.129 c +40.129 -18.002 22.127 0 0 0 c +f +Q + +endstream endobj 45 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.058 0.058 0.052 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 63.9999 106.569 cm +0 0 m +-23.986 0 -43.5 -19.254 -43.5 -42.921 c +-43.5 -66.588 -23.986 -85.843 0 -85.843 c +23.986 -85.843 43.5 -66.588 43.5 -42.921 c +43.5 -19.254 23.986 0 0 0 c +0 -86.069 m +-23.986 -86.069 -43.5 -66.555 -43.5 -42.569 c +-43.5 -18.583 -23.986 0.931 0 0.931 c +23.986 0.931 43.5 -18.583 43.5 -42.569 c +43.5 -66.555 23.986 -86.069 0 -86.069 c +f +Q + +endstream endobj 46 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +64 100.528 m +57.456 100.528 52.133 95.204 52.133 88.661 c +52.133 82.117 57.456 76.794 64 76.794 c +70.543 76.794 75.867 82.117 75.867 88.661 c +75.867 95.204 70.543 100.528 64 100.528 c +W n +q +0 g +/Perceptual ri +/GS0 gs +16.5319595 0 0 -16.4530048 64.19561 91.2625198 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 47 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +84.937 98.025 m +84.945 97.989 84.951 97.953 84.959 97.917 c +85.094 97.888 85.099 97.919 84.937 98.025 c +73.146 72.454 m +72.595 62.609 l +79.097 55.526 l +72.595 48.443 l +76.893 43.761 l +72.595 39.079 l +73.146 29.315 l +54.853 29.315 l +54.853 72.454 l +47.58 76.176 42.621 84.219 42.621 93.463 c +42.621 95.01 42.838 96.44 43.056 97.985 c +43.845 98.133 56.605 103.481 y +56.499 102.903 71.501 102.903 71.395 103.481 c +83.722 98.177 84.959 97.917 v +85.272 96.398 85.378 94.987 85.378 93.463 c +85.378 84.219 80.309 76.176 73.146 72.454 c +43.062 98.025 m +43.06 98.012 43.058 97.998 43.056 97.985 c +43.005 97.975 43.004 97.987 43.062 98.025 c +W n +q +0 g +/Perceptual ri +/GS0 gs +23.1531162 0 0 -38.4417267 63.9400253 81.7712097 cm +BX /Sh0 sh EX Q +Q + +endstream endobj 48 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0.058 0.058 0.052 scn +/Perceptual ri +/GS0 gs +q 1 0 0 1 58.6104 96.2867 cm +0 0 m +1.997 0.363 4.084 0.545 6.081 0.545 c +8.169 0.636 10.166 0.363 12.163 0 c +12.253 -0.454 12.344 -0.908 12.344 -1.362 c +12.344 -4.812 9.53 -7.626 6.081 -7.626 c +2.632 -7.626 -0.182 -4.812 -0.182 -1.362 c +-0.182 -0.908 -0.091 -0.454 0 0 c +3.631 -52.836 -2.541 25.147 re +-15.956 -58.309 m +-23.026 -52.161 -27.502 -43.097 -27.502 -32.955 c +-27.502 -21.153 -21.33 -10.259 -11.164 -4.176 c +-11.346 -5.356 -11.527 -6.446 -11.527 -7.626 c +-11.527 -14.616 -7.443 -20.699 -1.452 -23.513 c +-1.452 -55.378 l +6.081 -62.913 l +13.615 -55.378 l +13.161 -48.751 l +16.701 -45.21 l +13.161 -41.67 l +18.516 -36.314 l +13.161 -30.957 l +13.615 -23.513 l +19.514 -20.699 23.69 -14.616 23.69 -7.626 c +23.69 -6.446 23.599 -5.356 23.327 -4.176 c +27.015 -6.403 30.178 -9.277 32.714 -12.603 c +26.582 -4.182 16.621 1.296 5.373 1.296 c +-13.263 1.296 -28.371 -13.739 -28.371 -32.287 c +-28.371 -42.782 -23.533 -52.151 -15.956 -58.309 c +f +Q + +endstream endobj 284 0 obj <> endobj 281 0 obj <> endobj 283 0 obj <> endobj 285 0 obj <> endobj 282 0 obj <> endobj 286 0 obj <> endobj 287 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +23.1531162 0 0 -38.4417267 63.9400253 81.7712097 cm +BX /Sh0 sh EX Q + +endstream endobj 288 0 obj <> endobj 289 0 obj <> endobj 290 0 obj <> endobj 280 0 obj <> endobj 279 0 obj <> endobj 278 0 obj <> endobj 276 0 obj <> endobj 277 0 obj <> endobj 291 0 obj <> endobj 292 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +43.5819511 0 0 -43.3738098 63.3764191 64.8112564 cm +BX /Sh0 sh EX Q + +endstream endobj 293 0 obj <> endobj 274 0 obj <> endobj 275 0 obj <> endobj 294 0 obj <> endobj 295 0 obj <>/Shading<>>>/Subtype/Form>>stream +q +0 g +/Perceptual ri +/GS0 gs +52.3910713 0 0 -52.1408577 61.26651 71.6794434 cm +BX /Sh0 sh EX Q + +endstream endobj 296 0 obj <> endobj 41 0 obj <> endobj 297 0 obj <> endobj 298 0 obj <> endobj 299 0 obj <> endobj 36 0 obj <> endobj 273 0 obj [/ICCBased 136 0 R] endobj 27 0 obj [26 0 R 25 0 R 24 0 R] endobj 300 0 obj <> endobj xref +0 301 +0000000004 65535 f +0000000016 00000 n +0000000175 00000 n +0000018904 00000 n +0000000000 00000 f +0000018969 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000022143 00000 n +0000000000 00000 f +0000022216 00000 n +0000022390 00000 n +0000025144 00000 n +0000090733 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000019575 00000 n +0000146050 00000 n +0000146134 00000 n +0000146216 00000 n +0000159188 00000 n +0000019982 00000 n +0000149910 00000 n +0000150797 00000 n +0000120860 00000 n +0000124036 00000 n +0000148071 00000 n +0000148195 00000 n +0000148318 00000 n +0000159027 00000 n +0000146873 00000 n +0000146998 00000 n +0000144208 00000 n +0000144352 00000 n +0000158521 00000 n +0000150860 00000 n +0000151380 00000 n +0000152040 00000 n +0000152512 00000 n +0000153141 00000 n +0000153663 00000 n +0000154638 00000 n +0000149190 00000 n +0000149810 00000 n +0000020902 00000 n +0000022081 00000 n +0000110638 00000 n +0000146647 00000 n +0000146759 00000 n +0000147123 00000 n +0000147246 00000 n +0000147363 00000 n +0000147479 00000 n +0000147593 00000 n +0000147720 00000 n +0000147833 00000 n +0000147958 00000 n +0000144064 00000 n +0000144504 00000 n +0000144656 00000 n +0000095503 00000 n +0000096053 00000 n +0000096773 00000 n +0000097741 00000 n +0000098945 00000 n +0000099375 00000 n +0000100430 00000 n +0000101115 00000 n +0000101819 00000 n +0000102505 00000 n +0000103540 00000 n +0000103949 00000 n +0000104675 00000 n +0000105345 00000 n +0000106071 00000 n +0000106593 00000 n +0000107253 00000 n +0000107720 00000 n +0000108347 00000 n +0000108872 00000 n +0000149154 00000 n +0000144001 00000 n +0000142413 00000 n +0000142988 00000 n +0000142476 00000 n +0000140932 00000 n +0000141498 00000 n +0000140995 00000 n +0000140869 00000 n +0000136563 00000 n +0000140754 00000 n +0000136626 00000 n +0000137242 00000 n +0000137743 00000 n +0000135939 00000 n +0000136003 00000 n +0000132059 00000 n +0000134492 00000 n +0000135026 00000 n +0000134556 00000 n +0000133328 00000 n +0000133658 00000 n +0000133392 00000 n +0000131995 00000 n +0000132420 00000 n +0000130706 00000 n +0000131062 00000 n +0000130770 00000 n +0000130082 00000 n +0000130146 00000 n +0000127595 00000 n +0000128877 00000 n +0000129274 00000 n +0000128941 00000 n +0000128813 00000 n +0000127531 00000 n +0000127928 00000 n +0000126159 00000 n +0000126618 00000 n +0000126223 00000 n +0000124277 00000 n +0000125043 00000 n +0000124341 00000 n +0000124213 00000 n +0000124149 00000 n +0000123602 00000 n +0000123666 00000 n +0000110682 00000 n +0000120896 00000 n +0000120952 00000 n +0000123819 00000 n +0000123916 00000 n +0000124494 00000 n +0000124665 00000 n +0000124792 00000 n +0000124916 00000 n +0000125160 00000 n +0000125215 00000 n +0000125525 00000 n +0000125603 00000 n +0000125760 00000 n +0000125931 00000 n +0000126006 00000 n +0000126084 00000 n +0000126376 00000 n +0000126497 00000 n +0000126735 00000 n +0000126790 00000 n +0000127100 00000 n +0000127178 00000 n +0000127335 00000 n +0000127456 00000 n +0000127740 00000 n +0000127837 00000 n +0000128045 00000 n +0000128100 00000 n +0000128414 00000 n +0000128492 00000 n +0000128641 00000 n +0000128738 00000 n +0000129086 00000 n +0000129183 00000 n +0000129391 00000 n +0000129446 00000 n +0000129758 00000 n +0000129836 00000 n +0000129985 00000 n +0000130263 00000 n +0000130318 00000 n +0000130628 00000 n +0000130915 00000 n +0000131179 00000 n +0000131234 00000 n +0000131546 00000 n +0000131624 00000 n +0000131773 00000 n +0000131920 00000 n +0000132204 00000 n +0000132325 00000 n +0000132537 00000 n +0000132592 00000 n +0000132901 00000 n +0000132979 00000 n +0000133128 00000 n +0000133249 00000 n +0000133537 00000 n +0000133775 00000 n +0000133830 00000 n +0000134144 00000 n +0000134222 00000 n +0000134371 00000 n +0000134701 00000 n +0000134822 00000 n +0000134925 00000 n +0000135143 00000 n +0000135198 00000 n +0000135512 00000 n +0000135590 00000 n +0000135739 00000 n +0000135860 00000 n +0000136120 00000 n +0000136175 00000 n +0000136485 00000 n +0000140128 00000 n +0000140192 00000 n +0000138216 00000 n +0000139502 00000 n +0000139566 00000 n +0000138152 00000 n +0000138585 00000 n +0000138369 00000 n +0000138490 00000 n +0000138702 00000 n +0000138757 00000 n +0000139067 00000 n +0000139145 00000 n +0000139302 00000 n +0000139423 00000 n +0000139683 00000 n +0000139738 00000 n +0000140050 00000 n +0000140309 00000 n +0000140364 00000 n +0000140676 00000 n +0000141147 00000 n +0000141268 00000 n +0000141377 00000 n +0000141614 00000 n +0000141669 00000 n +0000141979 00000 n +0000142057 00000 n +0000142214 00000 n +0000142335 00000 n +0000142628 00000 n +0000142776 00000 n +0000142882 00000 n +0000143104 00000 n +0000143159 00000 n +0000143468 00000 n +0000143546 00000 n +0000143703 00000 n +0000143851 00000 n +0000143926 00000 n +0000145847 00000 n +0000145626 00000 n +0000145409 00000 n +0000144921 00000 n +0000144800 00000 n +0000145067 00000 n +0000145170 00000 n +0000145288 00000 n +0000145506 00000 n +0000145723 00000 n +0000145944 00000 n +0000146529 00000 n +0000146561 00000 n +0000146411 00000 n +0000146443 00000 n +0000146293 00000 n +0000146325 00000 n +0000148441 00000 n +0000148496 00000 n +0000148806 00000 n +0000148884 00000 n +0000149033 00000 n +0000149873 00000 n +0000159151 00000 n +0000157899 00000 n +0000157963 00000 n +0000157275 00000 n +0000157339 00000 n +0000157211 00000 n +0000157147 00000 n +0000157083 00000 n +0000155907 00000 n +0000156245 00000 n +0000155971 00000 n +0000155843 00000 n +0000156124 00000 n +0000156362 00000 n +0000156417 00000 n +0000156727 00000 n +0000156805 00000 n +0000156962 00000 n +0000157456 00000 n +0000157511 00000 n +0000157821 00000 n +0000158080 00000 n +0000158135 00000 n +0000158443 00000 n +0000158673 00000 n +0000158794 00000 n +0000158912 00000 n +0000159227 00000 n +trailer +<]>> +startxref +159415 +%%EOF diff --git a/share/branding/png/keepassxc-128x128.png b/share/branding/png/keepassxc-128x128.png new file mode 100644 index 000000000..88f358de7 Binary files /dev/null and b/share/branding/png/keepassxc-128x128.png differ diff --git a/share/branding/png/keepassxc-256x256.png b/share/branding/png/keepassxc-256x256.png new file mode 100644 index 000000000..335639784 Binary files /dev/null and b/share/branding/png/keepassxc-256x256.png differ diff --git a/share/branding/png/keepassxc-512x512.png b/share/branding/png/keepassxc-512x512.png new file mode 100644 index 000000000..4a2d14c95 Binary files /dev/null and b/share/branding/png/keepassxc-512x512.png differ diff --git a/share/branding/png/keepassxc-64x64.png b/share/branding/png/keepassxc-64x64.png new file mode 100644 index 000000000..bf6fdb81c Binary files /dev/null and b/share/branding/png/keepassxc-64x64.png differ diff --git a/share/branding/png/keepassxc-locked-128x128.png b/share/branding/png/keepassxc-locked-128x128.png new file mode 100644 index 000000000..7677d5d9e Binary files /dev/null and b/share/branding/png/keepassxc-locked-128x128.png differ diff --git a/share/branding/png/keepassxc-locked-256x256.png b/share/branding/png/keepassxc-locked-256x256.png new file mode 100644 index 000000000..749bbb186 Binary files /dev/null and b/share/branding/png/keepassxc-locked-256x256.png differ diff --git a/share/branding/png/keepassxc-locked-512x512.png b/share/branding/png/keepassxc-locked-512x512.png new file mode 100644 index 000000000..85b75de52 Binary files /dev/null and b/share/branding/png/keepassxc-locked-512x512.png differ diff --git a/share/branding/png/keepassxc-locked-64x64.png b/share/branding/png/keepassxc-locked-64x64.png new file mode 100644 index 000000000..2621def2e Binary files /dev/null and b/share/branding/png/keepassxc-locked-64x64.png differ diff --git a/share/branding/png/keepassxc-monochrome-dark-128x128.png b/share/branding/png/keepassxc-monochrome-dark-128x128.png new file mode 100644 index 000000000..4e67b878f Binary files /dev/null and b/share/branding/png/keepassxc-monochrome-dark-128x128.png differ diff --git a/share/branding/png/keepassxc-monochrome-dark-256x256.png b/share/branding/png/keepassxc-monochrome-dark-256x256.png new file mode 100644 index 000000000..c4a078505 Binary files /dev/null and b/share/branding/png/keepassxc-monochrome-dark-256x256.png differ diff --git a/share/branding/png/keepassxc-monochrome-dark-512x512.png b/share/branding/png/keepassxc-monochrome-dark-512x512.png new file mode 100644 index 000000000..fea1174ef Binary files /dev/null and b/share/branding/png/keepassxc-monochrome-dark-512x512.png differ diff --git a/share/branding/png/keepassxc-monochrome-dark-64x64.png b/share/branding/png/keepassxc-monochrome-dark-64x64.png new file mode 100644 index 000000000..a723fc647 Binary files /dev/null and b/share/branding/png/keepassxc-monochrome-dark-64x64.png differ diff --git a/share/branding/png/keepassxc-monochrome-dark-locked-128x128.png b/share/branding/png/keepassxc-monochrome-dark-locked-128x128.png new file mode 100644 index 000000000..c22815b5b Binary files /dev/null and b/share/branding/png/keepassxc-monochrome-dark-locked-128x128.png differ diff --git a/share/branding/png/keepassxc-monochrome-dark-locked-256x256.png b/share/branding/png/keepassxc-monochrome-dark-locked-256x256.png new file mode 100644 index 000000000..c4525b651 Binary files /dev/null and b/share/branding/png/keepassxc-monochrome-dark-locked-256x256.png differ diff --git a/share/branding/png/keepassxc-monochrome-dark-locked-512x512.png b/share/branding/png/keepassxc-monochrome-dark-locked-512x512.png new file mode 100644 index 000000000..323dbede8 Binary files /dev/null and b/share/branding/png/keepassxc-monochrome-dark-locked-512x512.png differ diff --git a/share/branding/png/keepassxc-monochrome-dark-locked-64x64.png b/share/branding/png/keepassxc-monochrome-dark-locked-64x64.png new file mode 100644 index 000000000..04c1246f4 Binary files /dev/null and b/share/branding/png/keepassxc-monochrome-dark-locked-64x64.png differ diff --git a/share/branding/png/keepassxc-monochrome-light-128x128.png b/share/branding/png/keepassxc-monochrome-light-128x128.png new file mode 100644 index 000000000..c5ac3c42c Binary files /dev/null and b/share/branding/png/keepassxc-monochrome-light-128x128.png differ diff --git a/share/branding/png/keepassxc-monochrome-light-256x256.png b/share/branding/png/keepassxc-monochrome-light-256x256.png new file mode 100644 index 000000000..7140833d7 Binary files /dev/null and b/share/branding/png/keepassxc-monochrome-light-256x256.png differ diff --git a/share/branding/png/keepassxc-monochrome-light-512x512.png b/share/branding/png/keepassxc-monochrome-light-512x512.png new file mode 100644 index 000000000..1abc22225 Binary files /dev/null and b/share/branding/png/keepassxc-monochrome-light-512x512.png differ diff --git a/share/branding/png/keepassxc-monochrome-light-64x64.png b/share/branding/png/keepassxc-monochrome-light-64x64.png new file mode 100644 index 000000000..9755f0982 Binary files /dev/null and b/share/branding/png/keepassxc-monochrome-light-64x64.png differ diff --git a/share/branding/png/keepassxc-monochrome-light-locked-128x128.png b/share/branding/png/keepassxc-monochrome-light-locked-128x128.png new file mode 100644 index 000000000..3ea3e6e04 Binary files /dev/null and b/share/branding/png/keepassxc-monochrome-light-locked-128x128.png differ diff --git a/share/branding/png/keepassxc-monochrome-light-locked-256x256.png b/share/branding/png/keepassxc-monochrome-light-locked-256x256.png new file mode 100644 index 000000000..9f6004f53 Binary files /dev/null and b/share/branding/png/keepassxc-monochrome-light-locked-256x256.png differ diff --git a/share/branding/png/keepassxc-monochrome-light-locked-512x512.png b/share/branding/png/keepassxc-monochrome-light-locked-512x512.png new file mode 100644 index 000000000..486a3b3ef Binary files /dev/null and b/share/branding/png/keepassxc-monochrome-light-locked-512x512.png differ diff --git a/share/branding/png/keepassxc-monochrome-light-locked-64x64.png b/share/branding/png/keepassxc-monochrome-light-locked-64x64.png new file mode 100644 index 000000000..dcd4ad40d Binary files /dev/null and b/share/branding/png/keepassxc-monochrome-light-locked-64x64.png differ diff --git a/share/branding/png/macos-128x128.png b/share/branding/png/macos-128x128.png new file mode 100644 index 000000000..02d22c1b6 Binary files /dev/null and b/share/branding/png/macos-128x128.png differ diff --git a/share/branding/png/macos-256x256.png b/share/branding/png/macos-256x256.png new file mode 100644 index 000000000..1726dab67 Binary files /dev/null and b/share/branding/png/macos-256x256.png differ diff --git a/share/branding/png/macos-512x512.png b/share/branding/png/macos-512x512.png new file mode 100644 index 000000000..dfe4f6f0f Binary files /dev/null and b/share/branding/png/macos-512x512.png differ diff --git a/share/branding/png/macos-64x64.png b/share/branding/png/macos-64x64.png new file mode 100644 index 000000000..b76ccc951 Binary files /dev/null and b/share/branding/png/macos-64x64.png differ diff --git a/share/branding/png/macos-monochrome-dark-128x128.png b/share/branding/png/macos-monochrome-dark-128x128.png new file mode 100644 index 000000000..dd30e51c8 Binary files /dev/null and b/share/branding/png/macos-monochrome-dark-128x128.png differ diff --git a/share/branding/png/macos-monochrome-dark-256x256.png b/share/branding/png/macos-monochrome-dark-256x256.png new file mode 100644 index 000000000..d769b171a Binary files /dev/null and b/share/branding/png/macos-monochrome-dark-256x256.png differ diff --git a/share/branding/png/macos-monochrome-dark-512x512.png b/share/branding/png/macos-monochrome-dark-512x512.png new file mode 100644 index 000000000..b849f199f Binary files /dev/null and b/share/branding/png/macos-monochrome-dark-512x512.png differ diff --git a/share/branding/png/macos-monochrome-dark-64x64.png b/share/branding/png/macos-monochrome-dark-64x64.png new file mode 100644 index 000000000..9811284c2 Binary files /dev/null and b/share/branding/png/macos-monochrome-dark-64x64.png differ diff --git a/share/branding/scalable/keepassxc-monochrome-dark.svg b/share/branding/scalable/keepassxc-monochrome-dark.svg new file mode 100644 index 000000000..51e107088 --- /dev/null +++ b/share/branding/scalable/keepassxc-monochrome-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/share/branding/scalable/keepassxc-monochrome-light.svg b/share/branding/scalable/keepassxc-monochrome-light.svg new file mode 100644 index 000000000..35c886cd7 --- /dev/null +++ b/share/branding/scalable/keepassxc-monochrome-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/share/branding/scalable/keepassxc.svg b/share/branding/scalable/keepassxc.svg new file mode 100644 index 000000000..aad6c5a16 --- /dev/null +++ b/share/branding/scalable/keepassxc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/share/branding/scalable/macos-monochrome-dark.svg b/share/branding/scalable/macos-monochrome-dark.svg new file mode 100644 index 000000000..2d8e45a1f --- /dev/null +++ b/share/branding/scalable/macos-monochrome-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/share/branding/scalable/macos.svg b/share/branding/scalable/macos.svg new file mode 100644 index 000000000..f1d48eebc --- /dev/null +++ b/share/branding/scalable/macos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/share/icons/application/256x256/apps/keepassxc.png b/share/icons/application/256x256/apps/keepassxc.png index 91a232118..335639784 100644 Binary files a/share/icons/application/256x256/apps/keepassxc.png and b/share/icons/application/256x256/apps/keepassxc.png differ diff --git a/share/icons/application/scalable/actions/attributes-copy.svg b/share/icons/application/scalable/actions/attributes-copy.svg new file mode 100644 index 000000000..b4e4725b7 --- /dev/null +++ b/share/icons/application/scalable/actions/attributes-copy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/share/icons/application/scalable/actions/bitwarden.svg b/share/icons/application/scalable/actions/bitwarden.svg new file mode 100644 index 000000000..9d22e9adc --- /dev/null +++ b/share/icons/application/scalable/actions/bitwarden.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/share/icons/application/scalable/actions/csv.svg b/share/icons/application/scalable/actions/csv.svg new file mode 100644 index 000000000..e76afb0a8 --- /dev/null +++ b/share/icons/application/scalable/actions/csv.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/share/icons/application/scalable/actions/database-search.svg b/share/icons/application/scalable/actions/database-search.svg new file mode 100644 index 000000000..a1a30a675 --- /dev/null +++ b/share/icons/application/scalable/actions/database-search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/share/icons/application/scalable/actions/onepassword.svg b/share/icons/application/scalable/actions/onepassword.svg new file mode 100644 index 000000000..b43237abc --- /dev/null +++ b/share/icons/application/scalable/actions/onepassword.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/share/icons/application/scalable/actions/passkey.svg b/share/icons/application/scalable/actions/passkey.svg new file mode 100644 index 000000000..c1345f1f2 --- /dev/null +++ b/share/icons/application/scalable/actions/passkey.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/share/icons/application/scalable/actions/qrcode.svg b/share/icons/application/scalable/actions/qrcode.svg new file mode 100644 index 000000000..7778d1054 --- /dev/null +++ b/share/icons/application/scalable/actions/qrcode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/share/icons/application/scalable/actions/tag-multiple.svg b/share/icons/application/scalable/actions/tag-multiple.svg new file mode 100644 index 000000000..925e47ed1 --- /dev/null +++ b/share/icons/application/scalable/actions/tag-multiple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/share/icons/application/scalable/actions/totp-copy-password.svg b/share/icons/application/scalable/actions/totp-copy-password.svg new file mode 100644 index 000000000..935501117 --- /dev/null +++ b/share/icons/application/scalable/actions/totp-copy-password.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/share/icons/application/scalable/actions/totp-copy.svg b/share/icons/application/scalable/actions/totp-copy.svg new file mode 100644 index 000000000..1f134017c --- /dev/null +++ b/share/icons/application/scalable/actions/totp-copy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/share/icons/application/scalable/actions/totp-edit.svg b/share/icons/application/scalable/actions/totp-edit.svg new file mode 100644 index 000000000..b3814fc4d --- /dev/null +++ b/share/icons/application/scalable/actions/totp-edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/share/icons/application/scalable/actions/chronometer.svg b/share/icons/application/scalable/actions/totp.svg similarity index 100% rename from share/icons/application/scalable/actions/chronometer.svg rename to share/icons/application/scalable/actions/totp.svg diff --git a/share/icons/application/scalable/actions/yubikey-refresh.svg b/share/icons/application/scalable/actions/yubikey-refresh.svg new file mode 100644 index 000000000..4e51f88a1 --- /dev/null +++ b/share/icons/application/scalable/actions/yubikey-refresh.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/share/icons/application/scalable/apps/keepassxc-locked.svg b/share/icons/application/scalable/apps/keepassxc-locked.svg index 7d84d536e..a838d8ad4 100644 --- a/share/icons/application/scalable/apps/keepassxc-locked.svg +++ b/share/icons/application/scalable/apps/keepassxc-locked.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/share/icons/application/scalable/apps/keepassxc-monochrome-dark-locked.svg b/share/icons/application/scalable/apps/keepassxc-monochrome-dark-locked.svg index 128588928..e3d392c07 100644 --- a/share/icons/application/scalable/apps/keepassxc-monochrome-dark-locked.svg +++ b/share/icons/application/scalable/apps/keepassxc-monochrome-dark-locked.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/share/icons/application/scalable/apps/keepassxc-monochrome-dark.svg b/share/icons/application/scalable/apps/keepassxc-monochrome-dark.svg index 93452845a..51e107088 100644 --- a/share/icons/application/scalable/apps/keepassxc-monochrome-dark.svg +++ b/share/icons/application/scalable/apps/keepassxc-monochrome-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/share/icons/application/scalable/apps/keepassxc-monochrome-light-locked.svg b/share/icons/application/scalable/apps/keepassxc-monochrome-light-locked.svg index 79bc8d49d..8b2a3fad4 100644 --- a/share/icons/application/scalable/apps/keepassxc-monochrome-light-locked.svg +++ b/share/icons/application/scalable/apps/keepassxc-monochrome-light-locked.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/share/icons/application/scalable/apps/keepassxc-monochrome-light.svg b/share/icons/application/scalable/apps/keepassxc-monochrome-light.svg index 4e72e893b..35c886cd7 100644 --- a/share/icons/application/scalable/apps/keepassxc-monochrome-light.svg +++ b/share/icons/application/scalable/apps/keepassxc-monochrome-light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/share/icons/application/scalable/apps/keepassxc-unlocked.svg b/share/icons/application/scalable/apps/keepassxc-unlocked.svg index 88a440965..a377b782d 100644 --- a/share/icons/application/scalable/apps/keepassxc-unlocked.svg +++ b/share/icons/application/scalable/apps/keepassxc-unlocked.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/share/icons/application/scalable/apps/keepassxc.svg b/share/icons/application/scalable/apps/keepassxc.svg index 433a4041b..aad6c5a16 100644 --- a/share/icons/application/scalable/apps/keepassxc.svg +++ b/share/icons/application/scalable/apps/keepassxc.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/share/icons/application/scalable/mimetypes/application-x-keepassxc.svg b/share/icons/application/scalable/mimetypes/application-x-keepassxc.svg index 4b33c5a69..f846a4e46 100644 --- a/share/icons/application/scalable/mimetypes/application-x-keepassxc.svg +++ b/share/icons/application/scalable/mimetypes/application-x-keepassxc.svg @@ -1,2 +1 @@ - - + \ No newline at end of file diff --git a/share/icons/icons.qrc b/share/icons/icons.qrc index 209a1d35c..a846bf7bc 100644 --- a/share/icons/icons.qrc +++ b/share/icons/icons.qrc @@ -6,17 +6,20 @@ application/256x256/apps/keepassxc.png application/scalable/actions/application-exit.svg + application/scalable/actions/attributes-copy.svg application/scalable/actions/auto-type.svg + application/scalable/actions/bitwarden.svg application/scalable/actions/bugreport.svg application/scalable/actions/chevron-double-down.svg application/scalable/actions/chevron-double-right.svg - application/scalable/actions/chronometer.svg application/scalable/actions/clipboard-text.svg application/scalable/actions/configure.svg + application/scalable/actions/csv.svg application/scalable/actions/database-change-key.svg application/scalable/actions/database-lock.svg application/scalable/actions/database-lock-all.svg application/scalable/actions/database-merge.svg + application/scalable/actions/database-search.svg application/scalable/actions/dialog-close.svg application/scalable/actions/dialog-ok.svg application/scalable/actions/document-close.svg @@ -57,11 +60,14 @@ application/scalable/actions/move-up.svg application/scalable/actions/object-locked.svg application/scalable/actions/object-unlocked.svg + application/scalable/actions/onepassword.svg application/scalable/actions/paperclip.svg + application/scalable/actions/passkey.svg application/scalable/actions/password-copy.svg application/scalable/actions/password-generator.svg application/scalable/actions/password-show-off.svg application/scalable/actions/password-show-on.svg + application/scalable/actions/qrcode.svg application/scalable/actions/refresh.svg application/scalable/actions/reports.svg application/scalable/actions/reports-exclude.svg @@ -72,13 +78,19 @@ application/scalable/actions/system-search.svg application/scalable/actions/system-software-update.svg application/scalable/actions/tag.svg + application/scalable/actions/tag-multiple.svg application/scalable/actions/tag-search.svg + application/scalable/actions/totp.svg + application/scalable/actions/totp-copy.svg + application/scalable/actions/totp-copy-password.svg + application/scalable/actions/totp-edit.svg application/scalable/actions/trash.svg application/scalable/actions/url-copy.svg application/scalable/actions/user-guide.svg application/scalable/actions/username-copy.svg application/scalable/actions/view-history.svg application/scalable/actions/web.svg + application/scalable/actions/yubikey-refresh.svg application/scalable/apps/freedesktop.svg application/scalable/apps/internet-web-browser.svg application/scalable/apps/keepassxc.svg diff --git a/share/linux/org.keepassxc.KeePassXC.appdata.xml b/share/linux/org.keepassxc.KeePassXC.appdata.xml index 0efc17c68..abb4bfdd5 100644 --- a/share/linux/org.keepassxc.KeePassXC.appdata.xml +++ b/share/linux/org.keepassxc.KeePassXC.appdata.xml @@ -5,10 +5,8 @@ KeePassXC CC-BY-3.0 GPL-3.0+ - - application/x-keepass2 - Community-driven port of the Windows application “KeePass Password Safe†+ Von der Community entwickelter Port der Windows Anwendung “KeePass Password Safe†KeePassXC Team

@@ -16,6 +14,12 @@ personal data management. It has a light interface, is cross-platform and published under the terms of the GNU General Public License.

+

+ KeePassXC ist eine Anwendung für Menschen, die extrem hohe Anforderungen + an die sichere Verwaltung von persönlichen Daten stellen. Sie hat eine leichtgewichtige + Benutzeroberfläche, ist auf vielen verschiedenen Plattformen verfügbar und + wird unter den Bedingungen der GNU General Public License veröffentlicht. +

org.keepassxc.KeePassXC.desktop @@ -25,31 +29,185 @@ https://keepassxc.org/docs#faq https://keepassxc.org/docs https://www.transifex.com/keepassxc/keepassxc + https://github.com/keepassxreboot/keepassxc + https://keepassxc.org/docs#contribute - https://keepassxc.org/images/screenshots/thumbs/welcome_screen.png - Create, Import or Open Databases - - - https://keepassxc.org/images/screenshots/thumbs/database_view.png + https://keepassxc.org/assets/img/screenshots/database_view.png Organize with Groups and Entries - https://keepassxc.org/images/screenshots/thumbs/edit_entry.png - Database Entry + https://keepassxc.org/assets/img/screenshots/unlock_database.png + Unlock database - https://keepassxc.org/images/screenshots/thumbs/edit_entry_icons.png + https://keepassxc.org/assets/img/screenshots/edit_entry_icons.png Icon Selection for Entry - https://keepassxc.org/images/screenshots/thumbs/password_generator_advanced.png + https://keepassxc.org/assets/img/screenshots/password_generator_advanced.png Password Generator + + +
    +
  • Support USB Hotplug for Hardware Key interface [#10092]
  • +
  • Support 1PUX and Bitwarden import [#9815]
  • +
  • Browser: Add support for PassKeys [#8825, #9987, #10318]
  • +
  • Build System: Move to vcpkg manifest mode [#10088]
  • +
  • Fix multiple TOTP issues [#9874]
  • +
  • Fix focus loss on save when the editor is not visible anymore [#10075]
  • +
  • Fix visual when removing entry from history [#9947]
  • +
  • Fix first entry is not selected when a search is performed [#9868]
  • +
  • Prevent scrollbars on entry drag/drop [#9747]
  • +
  • Prevent duplicate characters in "Also choose from" field of password generator [#9803]
  • +
  • Security: Prevent byte-by-byte and attachment inference side channel attacks [#10266]
  • +
  • Browser: Fix raising Update Entry messagebox [#9853]
  • +
  • Browser: Fix bugs when returning credentials [#9136]
  • +
  • Browser: Fix crash on database open from browser [#9939]
  • +
  • Browser: Fix support for referenced URL fields [#8788]
  • +
  • MacOS: Fix crash when changing highlight/accent color [#10348]
  • +
  • MacOS: Fix TouchID appearing even though lid is closed [#10092]
  • +
  • Windows: Fix terminating KeePassXC processes with MSI installer [#9822]
  • +
  • FdoSecrets: Fix database merge crash when enabled [#10136]
  • +
+
+
+ + +
    +
  • Significant improvement to visual when drag/drop entries [#9698]
  • +
  • Automatically prompt for Quick Unlock when showing unlock dialog [#9697]
  • +
  • Improve colorful lock icon [#9632]
  • +
  • Ability to search by entry UUID [#9571]
  • +
  • Add challenge-response support for NitroKey 3 [#9631]
  • +
  • Auto-Type: Disable entry level Auto-Type when disabled at group/entry [#9672]
  • +
  • Browser: Show warning when adding duplicate URL's to entry [#9588][#9635]
  • +
  • Browser: Improve error message when proxy cannot be found [#9385]
  • +
  • Fix crash on exit on macOS [#9620]
  • +
  • Fix crash on search if entry doesn't have a group [#9633]
  • +
  • Fix several issues with Quick Unlock [#9697]
  • +
  • Enable save button when not auto-saving non-data changes [#9634]
  • +
  • Several UI/UX fixes [#9647]
  • +
  • Move toolbar back to top of window when disabling movement [#9699]
  • +
  • Browser: Fix closing password generator dialog with X button [#9636]
  • +
  • Browser: Fix handling of expired credentials [#9595]
  • +
  • Windows: Prevent white flicker when launching application [#9637]
  • +
  • Linux: Fix warning message about allow screencapture [#9638]
  • +
  • FdoSecrets: Fix access confirmation dialog showing even when disabled [#9690]
  • +
+
+
+ + +
    +
  • Add menu option to allow screenshots [#8841]
  • +
  • Add support for Botan 3 [#9388]
  • +
  • Increase max TOTP step to 24 hours [#9149]
  • +
  • Improve HTML export layout [#8987]
  • +
  • Turn search reset off by default [#9153]
  • +
  • Use QClipboard::clear() instead of setting blank text [#9148]
  • +
  • Hide group column header choice when not in search [#9171]
  • +
  • Improve look of KeePassXC logo and icons [#9355]
  • +
  • Add keyboard shortcuts for app and database settings [#9007]
  • +
  • Hide rename button from attachments preview panel [#8842]
  • +
  • Linux: Set SingleMainWindow in .desktop file [#7430]
  • +
  • Fix crash when search clears while creating new entry [#9230]
  • +
  • Fix crash when using Windows Hello in a Remote Desktop session [#9006]
  • +
  • Fix crash in Group Edit after enabling Browser Integration [#8778]
  • +
  • Fix canceling quick unlock when it is unavailable [#9034]
  • +
  • Set password input field font correctly [#8732]
  • +
  • Greatly improve performance when rendering entry view [#9398]
  • +
  • Fix various accessibility issues [#9138]
  • +
  • Fix arrows size when expand/collapse a group [#9096]
  • +
  • Select the clone instead of the original after cloning an entry [#9070]
  • +
  • Fix bugs with preview widget [#9170]
  • +
  • Fix status bar update when switching to other DB [#9073]
  • +
  • Fix database settings spin box bug [#9101]
  • +
  • Fix Ctrl+Tab shortcut to cycle databases in unlock dialog [#8839]
  • +
  • Fix TOTP QR code maintaining square ratio [#9027]
  • +
  • Fix Auto-Type configuration page on custom sequence selection [#8752]
  • +
  • Fix unexpected behavior of `--lock` when KeePassXC is not running [#8889]
  • +
  • Make open folder icon exempt from "Apply group icon to entry" [#9205]
  • +
  • Allow setting default file open directory with env var [#9192]
  • +
  • SSH Agent: Fix support for AES-256/GCM openssh keys [#8968]
  • +
  • Browser: Fix Native Messaging script path with BSD OS's [#8835]
  • +
+
+
+ + +
    +
  • Add 2 months expiration preset [#8687]
  • +
  • CLI: Add Unicode support on Windows [#8618]
  • +
  • Fix crash on macOS when unlocking database [#8676]
  • +
  • Fix display of passwords in preview panel [#8633]
  • +
  • Fix clicking links in entry preview panel [#8644]
  • +
  • Prevent expired entries search if no results returned [#8643]
  • +
  • Browser: Revert code causing connection problems [#8665]
  • +
  • Browser: Fix socket file symbolic link on Linux [#8656]
  • +
  • Flatpak: Fix launching browser proxy service [#8680]
  • +
  • SSH Agent: Fix paegent support on Windows [#8619]
  • +
+
+
+ + +
    +
  • Enhance Tags Support and Add Saved Searches [#8435, #8607]
  • +
  • Significant improvements to entry preview panel [#7993]
  • +
  • Add password strength indicator to all password fields [#7885]
  • +
  • Limit zxcvbn entropy estimation length to 128 characters [#7748]
  • +
  • Try full URL path when fetching favicon [#8565]
  • +
  • Hide usernames in preview panel when hidden in entry view [#8608]
  • +
  • Enable dark title bar on windows when accent color is not used [#8498]
  • +
  • Add option to display passwords in color in preview panel [#7097]
  • +
  • Add XML Export option to GUI [#8524]
  • +
  • Increase entropy required for a "good" password rating to 75 [#8523]
  • +
  • Add shortcut to copy password with TOTP appended [#8443]
  • +
  • Show entry count in status bar [#8435]
  • +
  • Allow KeePassXC to be built without X11 [#8147]
  • +
  • Enable use of VivoKey Apex and Dangerous Things FlexSecure tokens [#8332]
  • +
  • Add setting for number of recent files [#8239]
  • +
  • Add Ctrl+Tab shortcut to cycle databases in unlock dialog [#8168]
  • +
  • Replace offensive words in eff_large.wordlist [#7968]
  • +
  • Auto-Type: PICKCHARS can specify attribute and ignore BEEP [#8118]
  • +
  • Linux: Add isHardwareKeySupported and refreshHardwareKeys to DBus methods [#8055]
  • +
  • Add config variable to specify default database file name [#8042]
  • +
  • CLI: Add `db-edit` command [#8400]
  • +
  • CLI: Add option to display all attributes with `show` command [#8256]
  • +
  • CLI: Show UUID and tags with `show` and `clip` commands [#8241]
  • +
  • Browser: Move socket into separate directory on Linux [#8030]
  • +
  • Browser: Add group setting to omit WWW subdomain when matching URLs [#7988]
  • +
  • FdoSecrets: Ask to unlock the database when creating items [#8022, #8028]
  • +
  • FdoSecrets: Skip entries in recycle bin when searching [#8021]
  • +
  • Fix potential deadlock in UI when saving [#8606]
  • +
  • Fix newlines when copying notes from preview panel [#8542]
  • +
  • Fix dark mode detection on Linux [#8477]
  • +
  • Fix crash when deleting items in recycle bin while searching [#8117]
  • +
  • Fix crash when trying to close database during unlock [#8144]
  • +
  • Fix tabbing around the interface [#8435, #8520]
  • +
  • Fix OPVault import when there are multiple OTP fields [#8436]
  • +
  • Fix various Windows Hello bugs [#8354]
  • +
  • Fix use of Apple Watch for Quick Unlock [#8311]
  • +
  • Better handling of "Lock on Minimize" setting [#8202]
  • +
  • Support numeric aware sorting on Windows and macOS [#8363]
  • +
  • Check for write permission before entering portable mode [#8447]
  • +
  • Correct regex escape logic to prevent parse errors [#7778]
  • +
  • Normalize slashes and file case for last used databases [#7864, #7214]
  • +
  • Link ykcore against pthread [#7807]
  • +
  • Auto-Type: Fix menu entries in selection dialog on Windows [#7987]
  • +
  • Auto-Type: Fix use of modifiers under macOS [#8111]
  • +
  • CLI: Fix output when using clip with the -t flag [#8271]
  • +
  • Browser: Use asynchronous access confirm dialog [#8273]
  • +
  • Browser: Always send database locked/unlocked status [#8114]
  • +
+
+
    diff --git a/share/linux/org.keepassxc.KeePassXC.desktop.in b/share/linux/org.keepassxc.KeePassXC.desktop.in index eef24fe7f..bf633727a 100644 --- a/share/linux/org.keepassxc.KeePassXC.desktop.in +++ b/share/linux/org.keepassxc.KeePassXC.desktop.in @@ -42,6 +42,8 @@ StartupWMClass=keepassxc StartupNotify=true Terminal=false Type=Application -Version=1.0 +Version=1.5 Categories=Utility;Security;Qt; MimeType=application/x-keepass2; +SingleMainWindow=true +X-GNOME-SingleWindow=true diff --git a/share/macosx/Info.plist.cmake b/share/macosx/Info.plist.cmake index 53e489742..086d208df 100644 --- a/share/macosx/Info.plist.cmake +++ b/share/macosx/Info.plist.cmake @@ -22,6 +22,8 @@ ${PROJECT_NAME} CFBundlePackageType APPL + CFBundleVersion + ${KEEPASSXC_VERSION} CFBundleShortVersionString ${KEEPASSXC_VERSION} CFBundleSignature diff --git a/share/macosx/embedded.provisionprofile b/share/macosx/embedded.provisionprofile index 6fb14fd57..29e599c24 100644 Binary files a/share/macosx/embedded.provisionprofile and b/share/macosx/embedded.provisionprofile differ diff --git a/share/macosx/keepassxc.ai b/share/macosx/keepassxc.ai deleted file mode 100755 index cea3b65c0..000000000 --- a/share/macosx/keepassxc.ai +++ /dev/null @@ -1,7697 +0,0 @@ -%PDF-1.6 %âãÏÓ -1 0 obj <>/OCGs[32 0 R 33 0 R 34 0 R 35 0 R 36 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream - - - - - Adobe Illustrator 25.0 (Windows) - 2020-12-20T17:21:23+02:00 - 2020-12-20T17:21:25+01:00 - 2020-12-20T17:21:25+01:00 - - - - 256 - 256 - JPEG - /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq6uKtVxVuuKurirq4q6uKurirq4q6uKurirq4q6uKtVxV 1fH78VbxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVaWr8sVarirq4q6uKuJA3OKpL5g8 6eV/L1v9Y1jUreyjoSpmkVC3HrwBNW/2IOKvNtY/5yi8g2krxWEV5qbBarJBBwjJ8C07Qt1/yT9O Ksam/wCcspfVIg8rTPH2drqND18PTb9eKui/5yyl9QCbytOsfdluo3PXwMafrxVk2kf85QeQbuVI r+O80xmHxSTwFow1NxygaY9e5UYq9I8v+c/LHmC3M+j6jb3sa05mGRXKk9nANUPs1MVTqtcVdXFX VxV1cVcGp8u+Kr8VdirsVdirsVdirsVdirsVdirsVdirsVdirsVWyGgp44qp1xV1cVdXFUr8xeZ9 E8u6bLqOr3UdpaQirySGnyAAqWJ7KASe2Kvnjzf+fnnHzReHSPJNrLZQTMY4rn0/VvJdt/SjHNY+ /Zm77YqoaH/zj55h1a4OpebdRMM8rB5RIxvLtiNviYtwXb/LJHcYq9D0r8lfy809FDae9/IpqJbu Zyf+Bh9FKfNTirIY/Jfk+MUXQNNp/lWcD/i6McVdJ5L8nyCj6BptD/LZwJ+KIpxVj2q/kr+XuoIw SwksJGNfVtJnr/wE3rJT5KMVefa5+QPmPSLj9JeVNQNxNEeUfpsbS8WhqOLBuDU9nBP8uKonyj+f nm3yzdnSvOlrLeW8J4S3Hp+neQ9NpIiFElB/qt/rHFX0J5e8zaL5h06LUdJuo7u1l+zJGaio6gjY hh3Uio74qmdcVdXFXVxVfE1QQeo/Viq/FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqoSt+9I8APx rirVcCurirHPPXnnRvJ+iS6nqUlAPgghXeSWUglY0HdjT6BudsKvm+20/wA8/nB5lN5fyGDTLdvg U8jbWkZ/ZUbepMw6929lGyr3jyn5I8v+VbP6vpVuFlYUnvJKNPL/AKzU2X/JWgwKnvHCrTK3E8QC 1PhB2FcVfO03n/8AMKSRhNq8kMiMVaJI4k4sDQg0Su1O+amWrnbinIV1t59/MJZlWHV5JpHIVI3j hcMSaAbp44I6udqMpfRAU03G/fNu5TuOKpF5s8kaB5ps/Q1S3BmUUgvY6LPF/qt3X/JaowK8LntP O/5Q+ZPrFk4nsLk1K/ELW7jU9CN/TlUHr1X/ACl6lX0Z5G88aP5v0SLU9Oc7nhPA+0kUqgFo3HZh X5EbjY4qyOuBXVxV0bATAd2U/gR/XCqIxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KoWU/v2+Q/j irVcCoXU9StdNsJ767kWK3t0aSWRtlVUBZmPsAMVfL0r65+b/wCYCyAvFpUHL6orfZt7UH4pWAJU ySbfTRa0GKvojRtE0zQtJh06wjENnbLtWlSf2nc7VZupOFXlH5gfmrdXbzaX5blMNqlUn1JftSeI hP7K/wCV37Zr9Rq62i0Ty9A9X8vxoNB00ISyC1g4sdyR6a0JzOh9IbhyR/DJJYP5q/KbSdavZL+1 uG068mPKfigkidu7cKoVY9yD9FcxM2kEzY2LVPEC35V/KjSdEvEv7m4bUL2I8oCyCOJD2YJVyWHY lvorjh0ggbO5WOIBm/DMttS7zGqjy9qhYlVFpPVl6j922498jP6Sg8nlv5ffmpcW3o6Z5klMtu1F g1JvtIdgFmPdf8v7/HMHBq+kmmGXoXqeuaBpmvaTNpmox+taXAFabMrDdXRuzKeh/hmwb3z7ay65 +Uvn5vULS6bNxFyEFFuLUt8Myr/vyPfbxqtaGuBX05puo22o2MF7ayCW3uEWSKRejK4DKR7EGuKo quKtRn/S4/8AVf8A41wqjMVdirsVdirsVdirsVdirsVdirsVdirsVdiqEnP79vkP44qsrgV4X/zk Z5ukdbTyjaMR9b/0nUSOnoI1EjPX7ci1PsvvhVm35U+SU8s+WIhNGF1O+Cz3pI+Jaj4Iv9gDv/lE 4ArGfzg85ycz5X05+PJa6pKp3CsKrCCP5gat7UHjmBrNRw+kNOWfR5aIVVOIG1M1NuO9/wDyv1iP VPJ9mtR69gPqc6+HpABPvj45vtLk4oDycvGbDLOGZDN3DFXcMVdwxVh35sazHpnk67hDD6xqI+pw p3Ik/vD9EfLMfVZOGBYZDQeCiIFOJHbNDbiPV/yh85SSEeW9RkLOgLabKxqSiirREn+Ubr7bds22 i1HF6TzcjFO9k/8AzZ8lx+Y/K8zwxctT04NcWZA+JgB+8i/2ajYfzAZnluYl/wA48+bpWiuvK90/ L6qPrOnk/wC+HYCRK/5EjAj2bwGFXttcCuhP+lx/6r/8a4VR2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxVBXJ/0hvkP44qoyycI2buBt88Cvmryvbf45/OG41CZfUsvrLTCoG9paUWIEVIo/Fa/62JV 9BeY9Yh0XQ73VJQCtrEXVT+0/RF/2TEDI5J8MSUE0HzS8k9xPLdXLGS5uHaWZz1Luak5zk5mRsuE TbuORtCfeSvN1x5W1c3XFptPuQEvrdaVKj7LrX9pKmniKj3zK0uo8M+TZjnRfQGmanp+qWUd7p86 XFrKKpIhqPcHuCO4O4zeRkJCw5QNoqgwpdQYqgtX1jTNHsZL7UZ0t7aMbu56nsqjqxPYDBKQiLKC afPnnHzXdeataN66mKxgBjsbc9VQnd26/E3f7s0eq1HGfJxck7SfjmLbWvt57i0uYby2bhc2zrLC /gymoyUJmJsJBp9LaDqsGr6NZ6lCKJdRLIV/lYj4l/2LVGdHCfFEEdXNBsPn3XYl8jfm8l2lYbCO 6Seqio+qXYpKoXuFDuo+Xjkgl9JoxKgnr3+eKr7c/wClp/qv/DCqPxV2KuxV2KuxV2KuxV2KuxV2 KuxV2KuxV2KoC7NLhv8AVH8cVY9531FtP8paveq3F7e0nkjbf7axMU6f5VMVeW/8436Ssa6nfkEt HFDbRuep5lnff/YLg6qyn87L9o9BstPUkfXLgNJ4FIRWn/BMpzB7QnUK72rMdnkXDNHbiu4Y2ruG Nqyj8rJru287WMEE7x2116wuYFJCScYJGXkvQkMoIzP0OQ+IB0bcR3e5Q6hYTXEttDcxS3MH99Aj qzp/rKDVfpzdAhyrRGFXz9+Zstze+eNRjnnkktrVo0toHYlI/wB0hbivQcmqc0muynjIcXLLdjoQ DYZgW1N8MbV3DG1ew/kxqDS+X7qwY1NlOTGPBJhyH/Dhs3nZ87hXc5WE7MS/5yK01frWj6gq/FNF NbSN7RlXQf8AJRszm16p5K1VtU8p6TfyPzluLWJpm8ZAoWT/AIcHCqfWpreJ/qN/DFUwxV2KuxV2 KuxV2KuxV2KuxV2KuxV2KuxV2Kpden/SD/qj+OKsG/OFiPy312grW3Cf8HIi/wAcVST/AJx+RR5Z 1AgfEbuhPsIkp+vB1VQ/Ows2oaOpPwrHOQPdmjr/AMRGartM/S0Z+jzrjmotx3ccbV3HG1ZJ+Wy0 89aV85/+oaTMzQf3o/HRsxfUzPyTGo/MvzW4G7Hc/wCzGbPAf3026P1F6Nma2vFfzL8p6jYa1c6z vPYX7hjKBvE5AHB/bb4T9GaTX4JCXF0LjZYm7YZxzXW0u442ruONq9I/JVmW81hP2WjgY/MGQfxz bdln6vg34Orv+cg0U+XtKenxC9Kg+xhcn/iIzbdXIZR+VtB+X+i0BA9A7H/jI2FWX2Z/0xf9Rv4Y qmWKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVLb8/wCkn/VH8cVYl+ZVpJeeQPMEMYq/1GZ1G3+6 19Tv/q4qxP8A5x+ulbR9UtR9qKeKU/KVCo/5NYOqor86LQk6RdgbKZonb3bgyj/hWzVdqDaJaM45 PNeOaa3HdxxtXccbVkf5crTzxpXzn/6hpMzOzz+9Hx+5sxfUzLyYP+Qj+afn/wAbjNng/vpt0fqL 0LM9tYt5/wDNukaHpLw3caXlzeKUg09qH1AdiX8EHc/dmPqc0YR33vownIAPD1BIqQFrvxHQe29c 5olw13HBau442r0z8mbUqurXRGzGGJT7qHZv+JDNz2WNpFyMHVAf85CXIGm6LaV3luJpgPaKML/z Nza9W9mX5do0fkbREYUYWy1B9ycKsosT/pi/6jfwxVNMVdirsVdirsVdirsVdirsVdirsVdirsVd iqV6if8ASf8AYj+OKoOeCK6t5bWXeK4jaKQf5LqVP68VeK/kndS6R5xvdDumAklSW2cdKz2jn/jU PgKvTvzI0ltR8q3Hprymsyt1GP8AjHUP/wAk2bMTXY+PEfLdryCw8VC1Fc5lxG+GNq7hjash/Lxa edtK+c//AFDyZndn/wB8Pj9zZi+pmHk0f8hF80H3/wCNxmz0/wDfzbo/UXoGbBteV/mn5Rhiuj5k jnqZikU8Er71GymHl28VHTrmo7SwGuMFozR6sC4Zpbcd3DG1dxxV7X+XelNp3la2DjjLdk3Ug/4y U4/8Iq502hx8GIee7l4hQeW/nNetq/nq00a3NTaRxW5pU0muW5HYf5BTMsNj2q1tYrK0gs4j+6to 0hQnrRFC/wAMKo3Tz/pi/wCo36xiqa4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUq1I/wClf7Ef xxVChqGuKvFPzNsbjyx5+tfMdgvGO9ZbyMVoDPCQsybdnFCfHkcSr2vTNQs9V0yC+tmElrdxh077 MNwR4joRg5q8Y82+XH0LWJLZQfqktZbNz3jJ+zXxQ7fj3zl9bp/CnXQ8nDyRopNwzEtrdwxtU/8A IC086aX85/8AqHkzO7OP74fH7m3F9TLfJw/5CH5n+f8AxuM2un/v5t0PqLP82Da8M893Wo33m69S 8m5w2T+laQjZESgPT+Y9znPdo5pHIYnkHFyy3SfhmttpdwxtU88neXH1vWY4WU/U4SJLtu3AHZPm 52+/wzL0Wn8WddBzbMcLL2PV9Us9H0m51G6PC1s4mkengo2VR4noBnUOY8T/ACu0+88x+d7rzJeb CCRruUmpHqymiRrUdFXb2FMICvbeWKojTT/pg/1G/WMVTfFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7 FXYqlGqH/Sv9iP44qhK4qknnPyxF5m8vT6aaC7jPr6fIduM6A0FfBwSp+eKsB/KLzfJpV/L5V1es KPKwtfUNDFcVo8Jr05Hp/lfPAVepeZPL1prunNaz/BKvxW846xv4+4PcZRqdOMseEsZx4g8Z1TSL /S7x7O9iMcydD+yy9mQ91OctmxSxy4ZOHKNc0JxOVWhMfLmqQaRr9jqVwrNb27P6vDchZI2jrT25 VzK0eUY8gkeTKBo29vtLm1u7eO6tZFlgmUNHKhqGB71zqokEWHNDry8tbK1kurqVYbeFS0kjmgAG JIAsq8K1vU7fV9ev9TtkZLa5cGIMKEhVCciP8rjXOW1uUTyEjk4eQ2UJxOYlsEZpWj3+q3iWdlGZ JW3J6Kq92Y9gMtw4pZJcMUxjfJ7N5d8v2eh6ctpb/G5PKecijSP4+wHYZ1Om08cUeEOZCPCHk/5v ecJNa1KPyppBM0MMoF6UNfUuAfhiFOyHdv8AK+WXhk9C8meWYfLegQ2CnlcvSW8kHRpD4Cg6DbfC qeVxVFaYf9MH+o36xiqcYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUn1Y/6UP8AVH8cVQVcVcGI NQdxirAPzQ/L59XVtf0aMtqcYH161TrKiDaVP8tQKUHX59VV35a/mjFfRw6LrknDUVolvdvQLN2C se0nb3+eDkrP9Z0PTNYtfq99FzUbxyLs6E90b/MZTn08MoqQYyiDzea63+XutaezSWqm/tR0eIH1 QP8AKj3P/A1+jOf1HZuSG8fUHGliIYw0fVWG42IPjmu5NadeUPNd15cuvRl5TaRM372EbmIn/dif 8bDv882eh15xmpfS248lKXnDzTeeZr30Y+UOjQNWGE7GUj/dkg/UO3zw67X8e0fpXJktKo4fsogq TQKoG5OavctTKND/AC81nUGWS7U2Fqdy0o/eEf5Mex/4KmbHT9m5J7y9IbI4iXpOj6Hpuj2v1exi 4Kd5JG3dyO7t/mM6DBp4YhUQ5MYgcnnf5nfmmLQS6F5el56g3wXd6m4hHQoh7yf8R+eXc2Tf5Wfl +dGiTXdUjpqMyk2du4+KJW6u1f2mH+fXCr0EsSak74q6uKozSt7wf6jfrGKpzirsVdirsVdirsVd irsVdirsVdirsVdirsVSnWUpIknYjj9PXFUurgV1cVXJIyMGU0YdDhVg3nn8rLPXi+o6IsdpqpFZ rOgSKcjfkp6K5+49/HFWM+XvzO8y+Vbk6R5ltpbmCD4aPtcxgbbFtpF8Kn6cFK9W8v8AnHy5r8Qf TL1JZKVaBjwmX/WjajY2qYXulaZf73tpDcNSgeRFLgez/aH35VkwQn9QBQYg80ofyB5Tf/jyK+yy y/xY5inszB3faWHhRdH5A8pp/wAeRb2aWX/jVhiOzMHd9pXwopvZaVpljvZWkNu1KF40UOR7t9o/ fmVjwQh9IAZiIHJL/MPnPy35fiL6nexxSUqlup5zN/qxrVjltpeTeYPzM80+brn9D+WrWW1tpvhI Te6kXoeTD4Yl333+nGlZR5E/Kyw0ARajqwW51ZaPDbj+7gI3BNftP3rhVnLOWap64q1XArq4qmGj ITM79lHH6euFU3xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KobULb6xbMg+0KFT7jFWPVO4OxGxH gcVbrirq4q6uKofV9L0bXLYW2tWi3kagiOQ/DKle6uKHFXnms/keWl+seXNTHINWO3uiY5F/1ZUH b5fTiqWmP87fLhEY+uTwoaKpC3qsB4ECR6fTgpVzfmx+ZdowjvNNgB32ltpo3JH+yp+GNK4fmx+Z l2xSz02AnbaO2mkcV/2VPwxpVhh/O7zETE31y3ib7SALZAA99xHJTGlTLRvyNVJTceYtSBcsTJb2 pMjv3qZX8e/w/ThV6JpOmaPolt9W0a0WzjP25BvK/wDrufiOKoiuKurirq4q0W6AbkmijxJxVkOn Wxt7YK32zUsfc4qicVdirsVdirsVdirsVdirsVdirsVdirsVdirsVSnVNMZiZ7cDmB8afzYqlAcc ipqGXqp2OKt1xV1cVdXFXVxVUS5nj+xIyjwBNMVVP0jdkUL8v9ZVP6xirhqF0Ojhf9VVH6hiqm9z PJ9uRmHgSaYqp1xV1cVdXFXVxVaZAGCirOeijc4qm+laW6kXFyAWp8Cfy4qm+KuxV2KuxV2KuxV2 KuxV2KuxV2KuxV2KuxV2KuxV2KoW70y0uh+9X4uzDY4qlsnl2Uf3M7U8GNf1jFVL9Aah/v5fw/pi rv0BqP8Av5fw/pirv0BqP+/l/D+mKu/QGo/7+X8P6Yq79Aaj/v5fw/pirv0BqP8Av5fw/pirv0Bq P+/l/D+mKu/QGo/7+X8P6Yq79Aaj/v5fw/pirv0BqH+/l/D+mKqkfl2Vv76c08FNP1DFUytNMtLU fu1+Lux3OKovFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX//2Q== - - - - 1 - True - False - - 128.000000 - 128.000000 - Millimeters - - - - Cyan - Magenta - Yellow - Black - - - - - - Default Swatch Group - 0 - - - - R=252 G=252 B=252 - PROCESS - 100.000000 - RGB - 252 - 252 - 252 - - - R=0 G=0 B=0 - PROCESS - 100.000000 - RGB - 0 - 0 - 0 - - - R=103 G=186 B=45 - PROCESS - 100.000000 - RGB - 103 - 186 - 45 - - - R=49 G=115 B=41 - PROCESS - 100.000000 - RGB - 49 - 115 - 41 - - - - - - - application/pdf - - - keepassxc - - - AIRobin - Document - xmp.did:d533b712-e3e1-2d4d-9d10-810ee84643e0 - uuid:123ce022-0d47-4398-a2b7-3ac78f3a3ee4 - xmp.did:2520a7c9-03a3-1044-b2dc-89724d81ad50 - proof:pdf - - uuid:c0995094-a15f-431d-a464-7e378391f643 - xmp.did:f6c53e8e-957b-984c-ae83-7e48da0435ab - xmp.did:2520a7c9-03a3-1044-b2dc-89724d81ad50 - proof:pdf - - - - - saved - xmp.iid:2520a7c9-03a3-1044-b2dc-89724d81ad50 - 2020-12-19T13:48:23+01:00 - Adobe Illustrator 25.0 (Windows) - / - - - saved - xmp.iid:d533b712-e3e1-2d4d-9d10-810ee84643e0 - 2020-12-19T18:46:26+01:00 - Adobe Illustrator 25.0 (Windows) - / - - - - Adobe PDF library 15.00 - - - - - - - - - - - - - - - - - - - - - - - - - -endstream endobj 3 0 obj <> endobj 5 0 obj <>/Resources<>/ExtGState<>/ProcSet[/PDF/ImageC/ImageI]/Properties<>/Shading<>/XObject<>>>/Thumb 77 0 R/TrimBox[0.0 0.0 362.835 362.835]/Type/Page>> endobj 38 0 obj <>stream -H‰ìWÉŽÝ6¼ë+øÃGvs½zI F`8@|™ƒœÀñÿ©æ.Î ðìsfO]’н±šºýöVÝ>¼5êÍ»·êøzeÒ‰ýøý÷Ïãõ7nÞ~þdÔ_ßï‚N1ç“’Vû![“ì ×A›ÀÁ’zürÜ~ùbÔ»ŽøÿzXc4PLQÛìÕ—#8l{8+ÊI“MÄO.‚ïØ€³•˜'Pxƒêô«ëñ¸ÚçÑY‡½xᆋ¹›}eø¶!ç@w;Ò¨ÇÛ“Ý~«Û§'£¾=©÷ŸU-Ðó>xx©!¨®ûû¯·Ÿzyß@+ÝjcÙÚXBè“öÖu7PðXÖLõ7¸¤|Ô™æsÍD®Šâ²¶ilxìàv{eÙs BåѦRð<læô¡çÑn@ ©Óm!?!élÖ4€ë˜¾gÍ1¢œÆêÏ5s®ßÉkç@™uæA×̹þœÀºÆ×…nñâx3çú ø«Ã èñ5º-ÜÇÚÒ‘SˆÑ„Í "jù5^Úo4¬½4¬$;Ø­¿Bë_Û+ºÒ-‘.íik¯H½½B·ÅŠÜÙ†yi®9"D.yÕN.Í%öµ»iíÝ@ZHq yÉ/K~-A~2SUé‡iÚdÐ-É&¸ƒ\²ñv&–6%¸c&8PBm!(\VsâS±!>ð3‘ˆH°šf‚‹m(Ø9þ/áRBWJÈF1‘éE\€¾AGÔ1éè±WÜRGu\5™¦&cƒ&ï¯zT€²›ùûå èG/uIƒ­›W9J»¥©_în9lþ6»ÓÙ¶`Ÿ«QÐd¼ËÆ^®7-ªÁ9ŽËìt?2;ý2;—]ðÚ誺iîU™ª¾kþ½CâRÿCj›jÛÌ{6$lÀ ÂzÑâDd‘€‰à”qƃ‘~lMP p#°½6±r\8²–*Að¬l܉Ñ;Ð ·ÛK GŠÈ`(HJص™töqrâ çs^ýس ɇé{†¤ ÊÛ°kôÂqEΉñP8,d ùñ¨ ÅK³—X°¨âx§ç¸snU@_Òш(D‘sÔ… žÀHP Ò)V$“;]´åûÈÙ±K°z ûöÍÇèµUŒ·}¿\/3@Æ-äEfš~Œÿâ°å9lïœ -a™ -T§BÁã‚ó‚§w žÜ¿ÂÜšåFœãh¤DÂR‘ãÔ‡3_ù €˜¹ì.ˆkH}ëú±ÚÿF»úw½„:`s¶&ÄÎà> endobj 77 0 obj <>stream -8;Z\tc&omd%#(Z.>iK5:7E$MlS8)@nX*.N7!qYIB9MTq;Go03LnbI_Fbl;Z%nEWj. -/P*gQJZf#&_B[!f`u+4Q#h)=phP8IOSV0h)-1pRZY%i1H9Pi$\n'Y[XFT#%=&j^m9 -ZEd@*AV0LAj;Q!?Fbo6'Z9OQ/[)NeOg* -4E]uKY,GiQCrp^$a_uJ"DP#gpjI$g)o3n]I<>gEm>nOcK[.aGj%:+sUS/H1Or/YXb -S&q1CrZ>Qsh"-qDo#t6,Wt2MN`BfXF9qUpjgcnFeAJEhY?F.8(d5u]7c!/N\Xct_C!Np`=EQ>e.4NVNEX8#0]Qgm-;MFk@W~> -endstream endobj 79 0 obj [/Indexed/DeviceRGB 255 80 0 R] endobj 80 0 obj <>stream -8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> -endstream endobj 63 0 obj <>/XObject<>>>/Subtype/Form>>stream -q -0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /GS0 gs -0 TL/Fm0 Do -Q - -endstream endobj 64 0 obj <>/ExtGState<>/ProcSet[/PDF/ImageC/ImageI]/XObject<>>>/Subtype/Form>>stream -q -/GS0 gs -244.1599945 0 0 245.4399945 59.3429222 55.4917377 cm -/Im0 Do -Q - -endstream endobj 65 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream -q -181.417 57.924 m -113.648 57.924 58.514 113.323 58.514 181.417 c -58.514 249.512 113.648 304.91 181.417 304.91 c -249.187 304.91 304.321 249.512 304.321 181.417 c -304.321 113.323 249.187 57.924 181.417 57.924 c -181.417 309.085 m -111.357 309.085 54.359 251.813 54.359 181.417 c -54.359 111.022 111.357 53.75 181.417 53.75 c -251.478 53.75 308.475 111.022 308.475 181.417 c -308.475 251.813 251.478 309.085 181.417 309.085 c -W n -q -0 g -/GS0 gs -0 -166.2333221 -166.2333221 -0 181.4170837 216.1957245 cm -BX /Sh0 sh EX Q -Q - -endstream endobj 66 0 obj <>/XObject<>>>/Subtype/Form>>stream -q -0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /GS0 gs -0 TL/Fm0 Do -Q -q -0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /GS0 gs -0 TL/Fm1 Do -Q -q -0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /GS0 gs -0 TL/Fm2 Do -Q - -endstream endobj 67 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream -q -183.733 277.423 m -183.733 277.423 l -182.944 277.423 182.154 277.406 181.385 277.373 c -181.373 277.373 l -175.66 277.373 169.677 276.834 164.101 275.815 c -163.599 275.723 l -163.5 275.223 l -163.241 273.919 162.973 272.573 162.973 271.211 c -162.973 260.992 171.247 252.677 181.417 252.677 c -191.588 252.677 199.862 260.992 199.862 271.211 c -199.862 272.573 199.594 273.919 199.335 275.221 c -199.236 275.721 l -198.734 275.815 l -194.381 276.61 189.195 277.423 183.733 277.423 c -183.732 276.673 m -188.8 276.674 193.7 275.972 198.599 275.077 c -198.856 273.788 199.112 272.5 199.112 271.211 c -199.112 261.417 191.162 253.427 181.417 253.427 c -171.672 253.427 163.723 261.417 163.723 271.211 c -163.723 272.5 163.979 273.788 164.236 275.077 c -169.877 276.108 175.776 276.623 181.417 276.623 c -182.193 276.657 182.964 276.673 183.732 276.673 c -W n -q -0 g -/GS0 gs -0 -24.7455978 -24.7455978 -0 181.4173279 277.4232788 cm -BX /Sh0 sh EX Q -Q - -endstream endobj 68 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream -q -181.417 294.52 m -119.35 294.52 68.854 243.782 68.854 181.417 c -68.854 119.052 119.35 68.315 181.417 68.315 c -243.485 68.315 293.98 119.052 293.98 181.417 c -293.98 243.782 243.485 294.52 181.417 294.52 c -181.417 293.82 m -243.098 293.82 293.28 243.396 293.28 181.417 c -293.28 119.438 243.098 69.015 181.417 69.015 c -119.736 69.015 69.555 119.438 69.555 181.417 c -69.555 243.396 119.736 293.82 181.417 293.82 c -W n -q -0 g -/GS0 gs -0 -226.2054596 -226.2054596 -0 181.4170532 294.519928 cm -BX /Sh0 sh EX Q -Q - -endstream endobj 69 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream -q -181.417 294.47 m -119.377 294.47 68.904 243.755 68.904 181.417 c -68.904 119.08 119.377 68.364 181.417 68.364 c -243.457 68.364 293.93 119.08 293.93 181.417 c -293.93 243.755 243.457 294.47 181.417 294.47 c -181.417 293.27 m -242.795 293.27 292.73 243.093 292.73 181.417 c -292.73 119.741 242.795 69.565 181.417 69.565 c -120.039 69.565 70.104 119.741 70.104 181.417 c -70.104 243.093 120.039 293.27 181.417 293.27 c -W n -q -0 g -/GS0 gs -0 -226.1058197 -226.1058197 -0 181.4170532 294.4700928 cm -BX /Sh0 sh EX Q -Q - -endstream endobj 70 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream -q -181.417 277.758 m -128.546 277.758 85.532 234.539 85.532 181.417 c -85.532 128.295 128.546 85.077 181.417 85.077 c -234.288 85.077 277.302 128.295 277.302 181.417 c -277.302 234.539 234.288 277.758 181.417 277.758 c -181.417 276.758 m -233.738 276.758 276.302 233.988 276.302 181.417 c -276.302 128.847 233.738 86.077 181.417 86.077 c -129.097 86.077 86.532 128.847 86.532 181.417 c -86.532 233.988 129.097 276.758 181.417 276.758 c -W n -q -0 g -/GS0 gs -0 -192.6805115 -192.6805115 -0 181.4170532 277.7574463 cm -BX /Sh0 sh EX Q -Q - -endstream endobj 71 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream -q -230.042 264.049 m -230.112 263.714 230.173 263.375 230.236 263.038 c -257.765 246.351 276.213 216.009 276.213 181.417 c -276.213 128.896 233.689 86.166 181.417 86.166 c -129.146 86.166 86.62 128.896 86.62 181.417 c -86.62 216.049 105.112 246.419 132.693 263.093 c -132.756 263.432 132.819 263.77 132.889 264.107 c -104.757 247.376 85.849 216.576 85.849 181.417 c -85.849 128.47 128.721 85.395 181.417 85.395 c -234.114 85.395 276.985 128.47 276.985 181.417 c -276.985 216.535 258.12 247.305 230.042 264.049 c -181.417 276.669 m -175.598 276.669 169.9 276.135 164.367 275.122 c -164.437 275.397 164.498 275.677 164.582 275.947 c -170.049 276.927 175.674 277.44 181.417 277.44 c -187.191 277.44 192.846 276.922 198.34 275.931 c -198.424 275.661 198.486 275.381 198.556 275.105 c -192.995 276.129 187.268 276.669 181.417 276.669 c -W n -q -0 g -/GS0 gs -0 -192.0446777 -192.0446777 -0 181.4170837 277.4395447 cm -BX /Sh0 sh EX Q -Q - -endstream endobj 72 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream -q -174.493 196.469 m -167.313 196.469 l -168.313 196.914 l -173.493 196.914 l -h -W n -q -0 g -/GS0 gs -0 -0.4444444 -0.4444444 -0 170.9031067 196.9139557 cm -BX /Sh0 sh EX Q -Q - -endstream endobj 73 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream -q -181.417 57.924 m -113.648 57.924 58.514 113.323 58.514 181.417 c -58.514 249.512 113.648 304.91 181.417 304.91 c -249.187 304.91 304.321 249.512 304.321 181.417 c -304.321 113.323 249.187 57.924 181.417 57.924 c -181.417 309.085 m -111.357 309.085 54.359 251.813 54.359 181.417 c -54.359 111.022 111.357 53.75 181.417 53.75 c -251.478 53.75 308.475 111.022 308.475 181.417 c -308.475 251.813 251.478 309.085 181.417 309.085 c -W n -q -0 g -/GS0 gs -129.5558014 0 0 -129.5558014 181.8615265 172.3060913 cm -BX /Sh0 sh EX Q -Q - -endstream endobj 74 0 obj <>stream -H‰ìÁ€þ¯î -€Ùƒ ÿ×FPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUa€ü_AUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU…=8òmUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUvëä@`ØÐÓ¼¨€Ã +á1ŒpãÕØK}oÀ>ê^¬¥¾3`uÇ*õ‡¿T§ à+õwÔ¥xM=ZÀ8uöžT¿0\A€»êŸ¸Ô=8Ù¯¹n -‚÷¿µaȰ¡±fëùdr‰8Då«—Ô# -àÿêËð õtøH}#>U&€/©%À{êðMõÙx£žG/ªÏ'À?êYðCõ®WÏ!€‡Ôç¸V=ƒVŸUà:õü¤>¯À=êÝ0V}e€óÕ{`ŠúØ'«—ÀLõÍNT/€@}z€³ÔÛ S`àõªˆÕgØ_½g–Pc`gõ’XH}’€=Õ`9õa¶SÏ€5ÕרH=\VŸh`õfX^}¨€åÕs`õµV€Ô'XT=RvSßm`9õ<ØR}¼€¥ÔÓ`_õQ€ÍÕgX@=HNPßr Uo€SÔ÷ÈÔ3à(õQõ8O}Ù€Ùêõp¦úº3ÕËà\õ…&©GÀáê3LP€ Ô§¬·¨ï=0N½3nRß|`Œzcܦ¾ûÀóê}p£úöϪ·À­êû<§Þ7«<£Þ·«;ü\½'ð[Àîê-À/u€×Õ;€ÕI^T~SgxE½ x«.ð]õzàOê:ßQ/ÞSøªz5ð:À—Ô“€OÔ¡>Wï>W·øX½øšºÀûêÀ—ÕÉÞS¯¾£®ð'õBà»êroÕë€Ôñ~Wo^S÷øO½ x]Ýà—zð#uF€¿Õ‹€ŸªKÔk€Ô1€ËÕS€‡ÔA€›Õ;€çÔM€[Õ€GÕY€;Õ €§Õe€ûÔõ`€:.p›ºýŒQ÷nRw€aêÄÀ=êê0R]¸C]|«C7¨{Àxukàxu옡® œ­.=“ÔÁ€“Õ`žº9pªºñLUgÎT€ÉêðÀ‰ê¾0_Ý8MÝvu~à,uÙˆÔ€“Ô] S7NQ7€T!8C]tbuˆàuÏèÕ-€ÝÕ-` uŽ`ouÉXD$ØYÝqÖQ7 ¶UG€•ÔU€=Õ`1u˜`Gu¿XOÝ&ØNoVT× 6S§€5Õ}€ÔÝ`Yu¢`uµXX)ØEÝlÖVw -¶P€ÕÕ¥€õÕµ`u¬`uu«ØB+X[]j6Q VVw€}ÔÍ€eÕ‘`'uµ`Qu¢ØKÝ-XQÝg¶S§ ÖS×€ Õñ€ÕÔm`Ku¾`-u™ØT0XIÝeöU7 –QG€Õ€EÔI`ouÇ` uØ]]2èÕ5àuÌ V·€#Ô9€V]bQ Ju‡8F4èÔà uÔ R7€³Ô]€D`NS— u~8OÝ6˜®Ž/'ªë“ÕéàLuß`ª:¼œª.LTg€sÕ€iêèp²ºr0I\ÎVw¦¨ƒ ÀéêÒÀun8_Ý:®Ž-¨c£Õ­à -uî`¬º´\¢ŒTw€kÔÉ€qêÊp‘:z0JÝX®Rg© À]êîÀu`¸M]> Î+÷©Ûû‹ýúÀ‘Û (ÿÿÓ‚ÉÖ…½Û@²'T}¢Ñu\ØQ]?8XVöT÷U‡€MÕ€#Õ]`[uà8uUØXA8JÝT¶VgR'€½Õ€CÔA`wu àuN n!¼¬Ž)X+¦W§þqVÌ®.)üR^Qw~«“/¨3 -ÔM€§Õ€ÿÕU€'Õ €¿Õ]€§Ô€7ê0À3ê~À;uà u>ེð°:žðQ]GxPNøLÝGxHNøTHxDÝM¸¡N$< Î&ÜR7îVGn«+ wª“ _©; w©ƒ _ªC ÷¨{ ߨS w¨s ß©[ ߪc ß«k ߨS w¨s _«K w©ƒ _ªC ÷©‹ _¨3 ÷ª› 7Õ‘€»ÕÑ€[êFÀêlÀ u"àu7àSu à1u9àuàAu:ࣺŽð°:žðAGx\]Ox§N#<£î'¼Q‡žRÞ¨ÃÏ© -©³Ϫ -ÿ©£O«# -ÔM€Ô€ßê$À+êŽÀ/uà%uHà_uàEuJà‡³`~uKÀX0¿:¦P·Pç€íÕ)€#Ô=`suàuPØ[ÝA8HT¶VgŽR7€Õ€ÃÔQ`_uà@uVØV@8RÝU6UU‡€MÕ€cÕe`Kuþà`uZØQ]?8\W6TÇŽW×€íÔé€Ôy`;uúà u_ØL>8G]X¶RgNR'€­ÔÙ€³Ô`#uôà4udØH=8O]Y¶Q'ÎTw€MÔÁ€SÕ¡`uðà\uiØB;8YZ¶PçÎV·€ Ô±€ÓÕ±`}uëàunX^:¸BÝ[W‡.Q€ÅÕ¡€kÔÅ`iuæà"urXZ9¸JÝ\VG.SG€…Õ‘€ëÔÕ`YuâàJuwXT8¸T^U®U—€%Õy€‹Õé`IuÞàju{XP7¸\_TÇ ®W×€åÔi€@_–S§ -uXL6HÔ`1uØ Q€¥ÔY€H`–Rg *uƒXH5ÈÔ`!uÔ SW€eÔI€Pa–Q' Ju‡XD4HÕ!`uРU—€%Ô9€Xb–Pç ju‹X@3ÈÕ1`uÌ W×€éÕ)€Ô9`zuÊ`u˜\2Bd&W‡ ÆP€¹Õ€1ÔE`juÆ`u’˜Z1EÝd&VG †QG€‰Õ€qÔU`ZuÂ` u–˜V0IÝe&U †R‡€IÕ€±Ôe`Nu¿`,u™˜R/Lf¦Tç FS·€ Õñ€áÔq`Bu¼`€Eê´`¬:i©Ó€¹ê¥X£. «›`º,¬n€5ê²`²úi–¨Ã€Ñê¨X¢ f«§`…º+®®€ê®`¸ºjV¨»€éê«X Î -Æ«³`:+˜¯Þ€ùê«`¾zkÆ««€ê®¯® -6¨¿`¸:*X¡€áê¨`…:l†«£€ê±­n -–¨Ë`´º)X¢.€Ñê¦`‹úl«“€5ê´¬N -Ö¨Ó`°:)Ø£^€±ê¢`‘ºmƪ‹€Eê¶«. -6©ß`¨:(X¥Ž€¡ê `•:n†ªƒ€]ê¹©î –©ë`¤º'X¦®€‘êž`›ún&ªw€m껨Π֩ó` :'X§Î€êœ`ŸzoÆ©k€…ê¾§® ªû`œº&بþ€iê™`£úo†©c€•êÀ¦Ž Vª`˜:&Ø©€Qê–`©ºpF©[€¥êÂ¥n ¶ª`’z%ت>€Aê”`­:q©S€µêĤN öª`Žú$Ø«^€1ê’`±ºqƨK€ÅêÆ£. 6«`Šz$ج~€!ê`µ:r†¨C€ÕêÈ¢ v«'`†ú#Ø­ž€êŽ`¹ºrF¨;€åêʡ/`‚z#Ø®¾€êŒ`½:s¨3€õêÌ ÎÖ«3`€:#دÞ€^}ìWo@®®¨; WWÔ«+€ êϨÕÀõçÔê‰à‚úsbuDpB:±:"8¡€XÜP@«~n¨G U?7Ô£ª€#êÒHÕ Àué¤ê†àˆºtRuCpE}:¥z!¸¢>€PœQ§@¨NΨS T'gÔ©ª€;êÕèÔÀõêdê‚àºu2uApHÝ:™º 8¤n€L]R·@¦..©_ R—Ô¯P©€Kê׈ÔÀ)uìDê€à”:v"u@pJ;‘: ¸¥ž€FýÜRÏ@£þn©g Qÿ·Ô³¨û€cêÚHÔýÀ1uí$ê~à˜ºvu?pL];‰º¸¦¾€B½\Sß@¡Þ®©o PççÔ¹¨ó€sêÜÔùÀ9uîê|àœ:wu>pN;:¸§Þ€ÿê{àžzwþ«ï€{êÝø¯¾î©wà¿ú¸§Þ€ïêzà ºw¾«ë€ƒêÞø®®ª{໺8¨î€ïêzà ºw¾«ë€‹êßø­ž.ªà·z¸¨þ€ßêyà¢úw~«ç€‹êßø­ž.ªà·z¸¨þ€Ïêxà¤:x>«ã€“êàø¬ŽNªƒà³:8é±W$0„ú·^‹?ZÂ:xÆêxà¥:xÆêxà¥:xÆêxà¥:xÆêxà¥:xÆêxà§zx¶êwà§zx¶êwà§zx¶êwà§zx¶êwà§zx¶êwà§zx¶êwà§zx¶êwà§zx¶êwà§zx¶êwà§zx¶êwà§zx¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦êv੺x¦Ž½: € Ô¿õZìàÑÖíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ¨ºx^ÕíÀ±W$0„ú·^‹0§Î€@Ì©s PïkêÛ(ÔûÀšúv -õ>À±W4À@ƒü»žŒþ-`à7õíê}à7õíê}à3uí$ê~à3uí$ê~à3uí$ê~à3uí4êà/õì4êà/õì4êà/õì4êà+uìDê€à+uìDê€à+uìTêà'õëTêà'õëTêà'õëTêà'õëTêà#uëdê‚à#uëdê‚à#uëtêƒàõêtêƒàõêtêƒàõêtêƒàuê„ê„àuê„ê„àuê”ê…àõé”ê…àõé”ê…àué¤ê†àué¤ê†àué´ê‡àõè´ê‡àõè´ê‡à uèÄêˆà uèÄêˆà uèÔê‰àõçÔê‰àõçÔê‰àuçäêŠàuçôê‹`_½9½ú"ØWo@¯¾öÕ›Ы/€yuæPgóê̸ ÞÖÕ—pA½¬«/à‚z#WWÀ uG0®®€ê`[=97ÔÀ¶zrn¨?€iuäQ‡Óêȸ¢ –ÕpE=,«àŠz$V7ÀuI0¬n€;ê“`W½8wÔ'À®zqî¨O€YuâR§³êĸ¤^ VÕ‡pI½¬ªà’z%UÀ)uK0ª.€[ê—`S=8·Ô/À¦zpn©_€IuàSÇ“êÀ¸¦ž ÕpM= ªûàœº&T÷ À=õM°§Þ€{ê›`O½7÷Ô7Àœ:oªs€9uÞ\Tïk껸¨Þ ÆÔupRÝŒ©ëà¦ú'ØRÏ ÀMõO°¥ž€›êŸ`J7WÕCÀ’úm®ª‡€%õÛ\UC궸«> -vÔkpW}ì¨×à®ú(˜Q§ ÀeõR°¢>€Ëê¥`E}6—ÕKÀˆºln«Ÿ€ õØÜV?걸­~ -&Ôap]=,¨¿àºz*Pw ÀyuU0 î€ûê«à¾zk€óê¬XPo×ÕW° Þ -®«¯`A½WW À†ú+¸­ž€ õWpZ5#ê°à´:jVÔcÀeõÓ¬¨Ç€Ãê¦ØQŸwÕK°£> Ϊ“`HœU' À’z-¸ª>€%õZpT]4[ê·à¦zh¶ÔoÀIuÐŒ©ã€“ê XSÏÕ?°¦ž ª{`O}ÜSï Àžú.8§Î€Au^pN3‹ê½àšúfÕ{À1uÍlªÿ€[ê™ØTÿ§Ô1°ª .©_`U=R· À¬º08¤n€]õapG½2»êÃàŒ:e–Õ‹ÀõÉ,«€#ê’ØV?7Ô#°­~ N¨C`]=\P Àºz28 î€}õeЫ7`_}äêŒø@äêŒá±_/Èm#Qïë-W>k'²%Q"~Ó} € êš@­n1Ô5€Xbf¨{­ºÄÌP÷ Ruˆ˜¢.”ê0E]4Õ`ŽºiЩ+ ÀuÓ SG€Iêª@¥n0“ÔU€H`f©»ºÀÌRw u€˜¦.êþ0M]6Ôù`žºmp½º¾ÌS· .WÇ€‰êºÀÅêô0SÝ7¸V]^fªû—ªÃ ÀTuáàJuw˜ª.\¨Î.sÕ€ëÔÕ`®ºqp™:ºLVW®R7€ÉêÊÀEêä0[Ý9¸D\¦«KW¨{ Àtuéàun˜¯n¬W×€ùêÖÀrulØA];X­n-;¨k‹Õ©`uï`©:´ì¢.¬Tw€]ÔÅ€…ḛ̂ºy°N]YöQ7–©# ÀNêêÀ"ubØKÝ=X£.,{©»KÔ`7uù`…º¯ì¦.,Pç€ýÔí€ÓÕq`Guýàlu[ØQ]?8YVöT÷ÎU—€MÕ€3Õ]`WuàDuVØWÝ@8O]UöU7NSG€Õ€“ÔI`ouàuQØ[ÝA8ETvW—NPçêÀëêš@ÝBxYS°V|{uJàMÝCxM]RxS÷^R‡~¨‹/¨3 -¿ÔM€ãêŠÀ/uà°:¢ð¿ºŠpPPx¯î"S>¨ÃGÔý€ê2Àu>àOuàiu<àouàYu;à†:𜺜pKÝGxJN¸­.$<¡Î&|¦n$<®®&|ªŽ$<ªn&|®®$<¨N&|¥î$<¤&|­.%<¢î%ÜQ§î«k ÷Ô­€»êXÀ}u-àŽ:•ðˆº—ðµº”ð:˜ð•º“𘺘ð…:“𨺙ð©:’𸺚𙺑ð„:›p[]HxFÝM¸©$<§.'ÜPçžU·þRÇžW×þT·¨ó Õe€Cê€À{uà˜º ðNE8ªn(üVGŽ«+ -?ÕI€WÔ€ê"ÀKêÀ›º‡ð¢:¥`¬øþê–€±`€º¦l¯N!œ¡î)›«C程 -ÀÞêÀIꤰ³º‚pš:ªì«n œ¨Î*»ª §ªÃ -ÀžêþÀ¹ê²°¥:p¶º­l¨Žœ¯®+Û©Ó+Ô}`3uø`º°l¥Î¬R7€ÔÕ€eêȰºy°PYvQ–ªC ÀêÞÀbujØA];X­n-¨cëÕµ`¼:up…º· W‡®Q€ÑêÌÀUêæ0X9¸N]]ƪWª» ÀPuààZuy©Î\­n/Õq€ëÕõ`œ:mP¨û À0uØ R'€Iêª@¦Ž0sÔM€Pa¦¨‹©:ÄÌP÷ buŠ˜ ®äêðíÕ)€AÝc¾¹:dðo¨‹ À·Vg øý:À©ä¢ èûŸÚ²eYhX>ÌLvuG¢ò°ŠºÉ VG ÖQW€±ê„ÀRê00SÝ/XLf&ªëË©ã À·ª3Ǩ£À}êÆÀAêìp“:0p˜:ýÜ¡® §Ž?—«ÓGªת»‡ª'ª£«gW©‹G«‡—¨sÇ«Ç?W·ð[LWwøW= ø:"ÀÿêYÀwÕÞ¨‡ßRçøE=xYàõ@à5u7€wÕ€ÔÑ>TϾ¨ð©z*ðu-€?©×R—ø‚z0ð©:ÀÕ£€Õ‰^PÞW÷xM½ø]Ýàeõ|àu€o©'oÔQ¾­žü§ð#õ”àu €Ÿª×u €+Ô‹àlu€«Ô«à\u€+ÕËàLõõ®V¯ €óÔ—¸C½0ÎR_}à.õÊ8G}ñ€;ÕKàõ±nWÏ €íÕ‡xD=9¶Vyà9õîØU}߀gÕÛ`GõmžWï€ÍÔgˆÔ#`#õIJõØC}Í€Z½FÆ«9°†z“LVßp`õ.ª>ßÀjêu0O}¹€Õ `”úhëªw -Àõ½ÖVo€êS LP/€µÕW˜¢^-˪40K½]TŸf`¢zÁ¬¥¾ÊÀXõŒXE}€áê1Ы/1°…zÒ”ê l¤6úúÛ©ç ÀÃê³ l«ž9O©ï-°¹zìÜ®>´À!êÑpŸúÂG©§À êÓ -©ž@ªO*p´z -\ >¥ù®€Ñê -ðF=¾¡>ï©7À×Õà3õVø£úP|M½š>PŸG€—Õ -à­ú&ü@=¥>stream -H‰ìÁ€þ¯î -€Ùƒ ÿ×FPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUa€ü_AUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU…=8òmUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUvëEn Š‚ }ÿKÛÐLÏŒz‘²–ˆýWÀ¤~>¥þjXÚs™®çà'纒€—tÅ~Oý7`4u£«þA«“üqõ€kÕþ²úÀÙêæ~³úwÀ êÌ>Sýoà-ê°¾Lý£àiuL'꟩ :Vÿ~8 ÎæÔ§€ÏÔ­<¤ú(p«.äÁÕç€ßê.žF}(¶Vçð|ê‹°¡:‚'VŸ€Ôñ»€ú„l ŽÞ•Ô·`Yuê.©>*Ë©wiõqXGݶ;¨o Àüê¦ÝI}kæU·ì†ê“0¡:b7VŸ€™ÔõJ½fPW+ÕC`lu¯r«Þcª;•»êY0šºPùJ½FQ—)Ô# W7)‡ÕS T×(ª@£îPžRÏ€«ÕÊ êñpº=yY=!®PW'oR €sÕ½É[Õsà,uir‚zT¼_ݘœ¦žïT×%'«À›ÔaÉê•ð²:)¹N½5^PÇ$«ÀsêŽ$QÏ€‡Õ I§Þ¨ã‘X=@Ž©»‘!Ô3à[u22Žz‹|¡ŽES€OԡȈêUðAˆ «ž&7êø§.CÆWo€ƒê¡l¯BfR¯`cu -2z²›ª39Õ»ØO]€Ì«Þ.ÀVêøcrõ€¶Q‡ ¨G °…:úXE½d€ÕÕ½ÇJê5,¬N=–SO`Qu汤zÖ ªeÕÓXLw¬­Þ7À:ê²c}õÆÖPW{¨w0¿ºèØG½u€¹Õ5Ç^ê½L«96T`Juı©zøÓ©ŽÕã˜Jol®~Өà Ô;Àu´ÁõC^lð_ý†VÇܨÀ°êPƒêG0¤:Òà®úaŒ§.4øLý6ÆR×|¥~ã¨Ë ¾S¿€1ÔUGÔï WU¿€V]cð€ú¹„êƒÕO Rg<¡~6¿Ø­ä¸mˆ‚÷¿uJ‰Ë‘e}v—$@tßa¦@ N0xQ=€Ñêþ‚×Õë©n/8¦^À(uwÁaõˆ†¨£ NQ àrupÁiê1\«®-8S½'€ëÔ¥g«7pº²àõ¬®P7\£^ÀÙ꾂ëÔë8SÝVp©z`§©Ã -.W àuUÁõÎŽ«‹ -©§pPS0P=7€#ê–‚±êżªî(®ÀKꈂD=<€çÕ•z{Ï©ë BõüžQ·´ê<ªî&ÈÕ#xHM0…zˆ?«‹ fQoà{u-ÁDê9|§n%˜K½H€¯ÔÓ©G 𹺒`Fõ.þVLªž&ÀGuÁ¼êu¼W·L­(Àÿê2‚ÙÕøO]E°€z¦oê&‚5ÔK¨{–QØ]]C°’z¯ÀÎê‚ÅÔ“öUw¬§^-°§º`Iõp€Õ«ª· 즮XX=_`/uûÀÚêû¨»–WØE]=põŒ€=ÔÍ÷P/¸¿ºwà6ê1wW×ÜI½gàÎêÒ›©' ÜWÝ9p;õ¨€»ª+î¨Þ5pGuáÀMÕÓî§î¸¯zÝÀÍÔqwV︓ºlàæê‰÷Qw Ü_½rà&ê¨Ô;î .ØD=u`}uÏÀ>굋«cvRïXY]2°™zòÀºêŽýÔ«UG ì¨Þ=°¢º``Sõô€õÔý۪Ǭ¦®ØY½`)uºÀÞêÖQw l¯>`uµâxHÝ,À›ú €ùÕ½üRŸ0»ºV€ßê;æV· -ðN}ÀÌêRþT0­:S€êWæT7 -ð‰ú€Õ…|ª¾`>uŸ_©ß˜L'À×ê¦R§ ðú!€yÔ]ü > `u•?ªo˜CÝ$À#ê§&P ð˜ú+€\#À£ê·Zu‹O¨(Õ%<¥¾  Swð¤ú4€J]!Àóêßu‚¯¨ŸÔ¼¦þ`´º>€—Õ÷ŒU·p@} ÀHuy‡ÔŒSwpTý"À utÇÕ? Q'p†úI€êàÎQ p¹:7€³Ôo\«n àDõ¡WªK8U})ÀuêÎNVŸ -p•º2€ÓÕ·\£n à -õ³¨¸Fý-Àéê¼®R¿ p²:.€ëÔÿœªN àJõÃ'ªÃ¸Vý1ÀYêª.Wß pŽº)€ê£ÎP0D}5ÀquOƒÔgU×0L}7À1uKÕ‡Q—0T}9ÀëꎫOxU]Àpõí¯©ÔǼ¢. Q_𼺀H}>À³êz2õýÏ©ÛÕ<£. U_𸺀X}BÀ£êjrõ ©›˜@}DÀ#êb¦P_𳺀IÔgü¤®`õß«[˜H}HÀwêR¦R_𵺀ÉÔ§|¥®`:õ-Ÿ«˜P}LÀgêB¦T_𷺀IÕçü¥Î`Võ;ÔqÌ«þ'àu3« -x§`nõG¿ÕYÌ®~)à—: -€ùÕ?ü«N`õQoê"–P_ ÝÕgÔ5,£¾+Ø]ÝÀBêÀÍÕ)¬ävëG’‚ øÿ§w»3ÓvgÛŽxDVÕÅ€£ÕGXKÝ,8X}€ÕÔÕ€cÕ'XOÝ-8T}€Õå€#ÕXR.8Q½ÿÀ¢êxÀyêõ–Uç NSo?°°:`p˜zú•Õ€£Ôì­n¤ž}`uuÅàõèë«;‡¨'Ø@28C½øÀê”À ê½6QÇ PÏ=°‹ºf°½zì}Ô=€ÍÕSì¤.l­z`+uÒ`gõΛ©£ûªWØN5ØV=òÀ~ê®À¦ê‰vT— ¶T<°§ºm°¡zÞMÕq€ýÔël«Îì¦Þv`cuà`3õ´;« [©‡Ø[Ý8ØH=ëÀîêÊÀ6êQ¶WgvQo:p€:t°‰zÒÔ¥€-Ôƒœ¡nl žsàuí`yõ˜Ǩs««·8H<X\=åÀIêâÀÒê!ÎR7VÏ8p˜:z°®zÅãÔÙ€UÕ¨,ªžpàDuù`Iõ€gªÛ ªç8T?XO½ÞÀ±êüÀrêñÎU÷SO7p²º€°”z¸£Õ €•Ô» ®Ž ,¤žmàtu`õhÔ€EÔ“ à»ÀKêÅøÍy€—Ôƒ ð‡º…°€z®þTׯk€¿Ô9€§«·àouàáê©øG]Dx´z¨þ­n"TO(ÀýêòÀGêÔé€Ô -P¨Û ¨ç QÇ>PÏ'@£®/¼­O€H_x[=ž•º¿ð¦z:2u€àMõttêÀ[êáýÎnåZaÅ@ÌþW EQ¸|õ±]µˆž© ¤N€RÝ`øõl¤êÀ¨g UW>V&@¬Î0|¬M€ZÝaøP=™¹:Äð¡z2zu‰à#õ`< N1|¤L€Ô-€Ôs ð„:Æðz.ÞP×~«K€GÔ9€ßªÇàuà7ê©xFdøz*ÞQ~©J€‡ÔI€_ª‡à%u“àê™xJeø…z&ÞRW~ªI€ÇÔY€ŸªGà5u—à'ê‰xNfø‰z"ÞS—¾T$Àƒê4À—êxQÝføB=Oªã _¨çàMuàõ8<ªÎ3ü G€WÕ}€ïÔÓð¬:ÐðzÞUþ§F€‡Õ‰€ÿ©‡àeu£à?êYxZiøzÞVWþU"ÀãêLÀ¿êQx]ÝiøG=‰Ï«C ÿ¨'à}u©à›z¨S ßÔƒ0@jø¦D€ êVÀ_®;ÀGêXÀ_¾;ÀgêZ€ëð™:×à»|¨î5çÕS0FlΫ§`ŽºØW!À u²8®B€Iêfp[½ƒ“ÔÍà´zF©£ Àiõ ÌRW€Ãê¦Î6‡Õ#0MÝmΪ'`œ:ÜœUO À€±ê€pN=}sÕà˜zø«À1õð V'€cêᘬn8§Ô³0ZqN©g`¶ºâRÀpuÆ8¤=€áêŒpH=zÓÕàŒzòÆ«CÀõäÌW—€#êÁX N9GÔƒ°@rލ`ƒºåœPÏÀ -uÌ8¡ž;€êšp@=vKÔ9à€zì–¨sÀõØlQ÷€õê©X£:ëÕS°G]t¶«—`ºè,WÀ"uÒX®:€MꦰZ=s«ÔQ`µzæV©£ÀjõÌìRW€Åê‘X¦Î:‹Õ#°Lu«G`›ºë¬UOÀ:uØX«ž8€}ê²°U½pûÔe`©zàªÓÀRõÀlT·€ê}بn;+Õó°RwVªç `§ºîlT¯ÀNuÝX¨7€¥ê¼°P=n[Õ}`ŸzÛ¶ªûÀ:õ´¬U€uêiØ«.<ÛÔ˰W]x–©‡ `±:ñ,SÀfuãØ¥Þ5€ÍêÆ°J=k«Õ‘`•zÖv«+À&õªìVW€EêQX®Î<‹Ô£°]Ýyö¨7 `»ºó¬QOÀzuèX£ž4€ýêÒ°E½hûÕ¥`‰zШSÀõ \P·€ê=¸ n=+ÔspB{V¨ç à†ºölP¯À uíX 3€#êܰ@=fGÔ¹`zÌ®¨{Àxõ”œQ€ñê)8£>ãÕSpG]|¦«— àŽºø WÀ!uò®2€Cêä0\=d—ÔÍ`´zÆN©£ÀhõŒœRG€Ñ긥®>“Õ+pK]}«G à˜:û VÀ1uö¬1€kêî0V=açÔá`¬zÂΩÃÀXõ„ÜS—€©ê¸§.?CÕpP~†ª à :ý UÀEuû˜©Þ/€‹êöÿÍnåHn0„ïiÃãñ¸—*©ÿ’Š8“©ÎÀ#ÕãÀ‘ê|¨£À´:S|TW€eu¥ø¨®ËêJðQ]†Õ‘à“: «#À'uVG -€Oê,0¬ŽŸÕ]`WÝ(>«»À¬:Q|Q‡€Yu¢ø¢³êDðEfÕ‰à‹: ̪ÀWuXU -€¯ê20ªßÔi`T(¾©ÓÀ¨:P|S§€Qu ø¦N£ê@ð]Ý6Õ}໺ lªûÀwu˜Tç €ê80©Î/Ôq`R'^¨ãÀ¤:O¼R×€Eux¥®‹ê:ðJ]Õqà¥: ªãÀKuTÇ €—ê<0¨Ž/Õy`P'^«ûÀžºM¼V÷€=u›x­îsê4ðFæÔià:Ì©ÓÀu ˜S§ €7ê@0§NïÔ…`M]&Þ© ÀšºL¼S€5u™x§.cê0ðVÆÔaà­:Œ©ÃÀ[u"S‡ €·êD0¦ïÕ`KÝ%Þ«À–ºK¼W7€-u—x¯nSê,p¡ŽSê,p¡ŽSê,p¡ŽSê,p¡ŽSê,p¡ŽSê,p¥®Kê*p¥®Kê*p¥®Kê*p¥®Cê(p©ÎCê(p©ÎCê(p©ÎCê(p©ÎCê(p©ÎCê(p­î;ê&p­î;ê&p­î;ê&p­î;ê&p­î3ê$p£3ê$p£3ê$p£3ê$p£3ê$p£3ê$p£3ê$p£3ê$p§.+ê"p§.+ê"p§.+ê"p§.+ê"p§.+ê"p§.#ê p«N#ê p«N#ê p«N#ê p«N#ê p«N#ê p«N#ê p«N#ê p«N#ê p«N#ê p¯nêp¯nêñ7{uLAAŒ?kðßNVH$ðV_À†ú#Þê+ØPÀ[}êx«¯`Cýoõl¨?à­¾€ õG¼ÕW°¡þ€·ú -6ÔðV_À„º#ê,˜PwÀAêŽ8¨³`BÝuL¨;à Î€ uGÔY0¡î€ƒ: &ÔpPgÀ„º#ê,˜PwÀAêŽ8¨³`BÝuL¨;à Î€ uGÔY0¡î€ƒ: &ÔpPgÀ„º#ê,˜PwÀE½ 긨·`A½õ,¨7à¢Þ€õF\Ô[° Þ€‹z ÔpQoÀ‚z#.ê-XPoÀE½ 긨·`A½õ,¨7à¢Þ€õF\Ô[° Þ€‹z ÔpQoÀ‚z#.ê-XPoÀE½ 긨·`A½õ,¨7à¢Þ€õF\Ô[° Þ€‹z ÔpQoÀ‚z#.ê-XPoÀE½ 긨·`A½õ,¨7à Î€ uGÔY0¡î€ƒ: &ÔpPgÀ„º#ê,˜PwÀAêŽ8¨³`BÝuL¨;à Î€ uGÔY0¡î€ƒ: &ÔpPgÀ„º#ê,˜PwÀAêŽ8¨³`BÝuL¨;à Î€ õG¼ÕW°¡þ€·ú -6ÔðV_À†ú#Þê+ØPÀ[}êx«¯`Cýoõl¨?à­¾€ õG¼ÕW°¡þ€·ú -6ÔðV_À†ú#žê*Q‡ÀS]#êxª«`DOuŒ¨Cà©®€uH<ÕU0¢ €§º -FÔ!ðTWÀŠz$^ê)XQÀK=+ê‘x©§`E=/õ¬¨Gफ़€õH¼ÔS°¢ €—z -VÔ#ðPGÀŒº$ê(˜Q—ÀC3ê’x¨£`F]ųKࡎ€õI|«Ÿ`G}ßê'ØQŸÀ·ú vÔ'ð­~€õI|«Ÿ`G}Ÿê&R§À§º †Ô)ð©n€!uJ|ª›`HŸê&XR¯À—z –Ô+ð¥^€%õJ|©—`I½_ê%XR¯À—z –Ô+ð¡N€)uK|¨“`JÝê$˜R·À‡: ¶Ô/ð[}[ê—ø­>€-õKüVÀ–ú%~«`Ký¿ÕG°¥~ €Ÿê"SÇÀOuŒ©c৺ÆÔ1ðS]kê™ø¥€5õLüRÀšz&~©‡`M=¿ÔC°¦ž €ê ˜S×ÀuÌ©kà‡:öÔ7ð¿úöÔ7ð¿úöÔ7ð¿úöÔ7ð¿úöÔ7ð¯ºÕ9ð¯ºÕ9ð¯ºÕ;ðŸzÕ;ðŸzÕ;ü±[Ça1Ëù'í’e["©sºƒØYþ¤®/ªëÀŸÔuàEuøƒ:<©ÎPÇ€'Õyàê8ð¦ºO|U·€7Õ}ૺ ¼©î_ÕmàMuŸø¢NªÀuxT(¾¨ÓÀ«êBðY]^U -€Ïê2ðªºP|V—€WÕ…à“: <«NŸÔaàYu¢ø¤ïªÀGuxWÝ(>ª»À»êFðQÝÞU7 -€ê,ð°:R|Pg€‡Õ‘àƒ: ¼¬®¿««ÀËêJ𻺠-¼¬®¿©£ÀÓêLð›: -<­Î¿©£ÀÛêNðKÝÞVw -€_ê&ð¶ºSüR7€·Õàux\*þW'€×Õ¥à?ux]]*þS€×Õ¥à?ux]]*þU€çÕ©à_ux_Ý*~ª{ÀûêVðSÝÞW· -€Ÿêð¾ºUü£ÎÔ±àu˜ ®?Ô5`‚ºVüP×€ êZðC]&¨kÀ_®;ßRç -€¿|w¾§î¾;ßS÷ -߀ï©{€ëÀ÷ÔÁÀwà›êbP—€)êbP—€)êbP—€)êbœW‡€1êdœW‡€9êf\Ww€9êf\Ww€9êfWg€AêhWg€IêjÜVW€IêjÜVW€IêjœVG€QêlœVG€Yên\V7€Yên\V7€YênV'€aêpV'€iêrÜU€iêrÜU€iêrœU€qêtœU€yêv\Uï?óÔí¸ªÞæ©ÛpT=ÿ TÇ à¨zþ˜¨®ÀMõú0Q]/€›êõ`¢º^'ÕãÀHu¾NªÇ€™ê~\To?3Õý¸¨Þ~fªûpP=ýLU àžzù˜ª.À=õò0U]0€sêá`¬:açÔÃÀ\uî©w€¹ê†\Sï>sÕ 8¦ž}«#pL=ûLVW à–zõ˜¬®À)õè0Z1€SêÑ`¶ºc—Ô›ÀluÇ.©7€ÙêŽRO>ÃÕ!8¤ž|¦«KpG½øLW— àŒzð¯NÀõà0_Ý2€+ê½`¾ºeWÔ{À|uËŽ¨ç€ êšÜP¯=Ô5¸¡^{6¨kpB=ö¬Pç à„zìØ¡îÀõÖ°CÝ3€ê©`‰:hÔSÀuÑö«—€-ꢬW=kÔIX¯zö¨›°]½óìQ7 `¹zæX¤ŽÀrõ̰I]5€Ýê•`“ºj«Õ#À*uÖV«G€]ê®lVo<»Ô]X¬žx–©Ã°X=ñlS— `¯záئ.ÀZõÀ°N6€µê`Ÿºm[ÕûÀ>uÛ–ªç€…ê¸,UÏ;ÕuØ©^w6ªë°R=î¬Tç `¥zÜØ©îÀFõ¶°SÝ7€…êi`©:p ÕÓÀVuáö©—€­ê¬S;{ÕئÞuöª°M½ëìU7`™zÖج®À.õª°Y]9€]êU`³ºr«Ô£Ànuç6©7€ÝêÎ,RO:ËÕ¡X¤žt¶«K°G½èlW—`zÐدnÀõž°_Ý:€-ê=`¿ºuKÔsÀuív¨×€ êÚ¬P9'Ô¹ãovë7Ž‚àÿ½0†/Ižéf3I3âYüê˜p†zïþuË8C½wÿ€:圢^<€ýÕ%àõâl¯9Ǩ'`{uÈ8G½y»«;À9êÍØ\qNR¯ÀÞêŠp’zõ¶VG€£Ô³°µ:✥Þ=€Õ à,õîl¬N8§©—`_uÁ8M½|ÛªÀqêéØVpÎSoÀ®ê~pžzû6Uç€Õë°§ºÞœ¨^?€-ÕñàHõül©Ž7gª÷`Gu»8S½ªÓ À©êØO]nNU/ Àvêpp®zvSw€sÕ°™:Û¬A€ÍÔÙàdõ -쥮6'«W`+u´8[½ƒ;©› ÀÙêØHlNW/!À>êbpºz ¶Qê-ØEÝk¨·`u¯ ÞB€MÔ¹çà5u­ÀwxIkø¦ÞC€Ô­€oê=Ø@jø_½ˆë«K ÿ«`yu¨à»zVWw¾«7`qu¦à‡zÖVW~¨W`iu¤à'õ,,­Ž4ü¬ÞE€•Õ€ŸÕ»°°:Ñð«zÖU~U/#À²ê@ÀïêmXUÝgø]½‹ªó ª×`MuàOõ:,©Ž3|¤ÞG€Õm€Ôû° :Íð±z!ÖS—>V/$Àrê0ÀgêXMÝeøL½‘‹©³ Ÿ«W`-u•àsõJ,¥Ž2|¥ÞI€•ÔM€¯Ô; °:Éðµz)ÖQ¾V/%À2ê ÀßÔ[ °ŠºÇð7õV,¢Î1ü]½–k¨k W¯%ÀêÀ+ê½XAÝbxE½— ¨S ¯© W—^S/&@®1¼ªÞL€ZÝaxU½™±:Ãðºz5Zu…àuõj¤êÀ;êÝ(Õ €wÔ» ª ï©— SÞS/'@¦0¼«ÞN€JÝ_xW½‘:¿ð¾z=u|àŠz? -u{àŠz?uzàšzAæ«Ë ×Ô -0]^¸ªÞP€ÙêîÀUõ†LVg®«W`®ººp]½¢SÕÑ€;꘩n.ÜQï(ÀDuràžzI¦©ƒ wÕ[ -0KÝ[¸«ÞR€IêÜÀ}õšÌQ×î«×`Š:¶0B½§3Ô­€ê=˜ N-ŒQ/*ÀóêÒÀ õ¤<­î,ŒRo*ÀÃêÌÀ8õª<«®,ŒS¯*À£êÈÀHõ®<©n,ŒTï*ÀƒêÄÀXõ²<¦,ŒVo+ÀSê¾Àhõ¶<¤Î+ŒW¯+À3êºÀxõº<¢Ž+<¡ÞW€'Ôm€GÔ 0^]VxF½°ÃÕa€§Ô 0ZÝUxJ½±ƒÕY€çÔ+ 0TUxR½³#ÕM€'Õ; 0PTxV½´ãÔE€gÕK 0LTxZ½µƒÔ9€çÕk 0F]Sx^½¶CÔ1€ê½¡n)LQ.À}uI`Žzqn«C -³Ô› pWÝQ˜¥Þ\€›êŒÀ<õêÜRGfªwàŽº¡0S½»7Ô €¹ê帬(ÌVo/ÀUu?`¶z{.ªó óÕë pIO(Ôû pEÝN(Ôû pANhÔ ð¾ºœ©'à]u7 Ro0À›êl@§^a€÷ÔÕ€P=Ã福 ¥z‡ÞP'ZõÿÇn ¹m@´ÿÿiGH!ëÚ]‚$€š#óÕ p\]LˆÕS pTÝK¨Õ[ pPKèÕk pL]K@=ÇGÔ­€Ô{ p@JC½ÈÕ¡€QÔ› ðHÝIE½ÉÔ™€qÔ« ð¥:’0’z—¾R7FRï2ÀêDÀXêeøTHM½ÍŸ©ûéÇàcu`<õ:|¨Ž#Œ¨Þg€Ôi€1Õ ð·ºŒ0¦z¡þR‡FUo4Àê,À¸ê•ø]]EX=Ó¿ª›#«wàu`lõRü¯"Œ®Þj€êÀðê±ø®®!Œ¯^k€oêÀ ê½ø×u€cêÅðÝà z²êÀ,êͶWgæQ¯6°¹:‚0“z·½Õ €©Ôà ì¬. Ì¥^n`cu`6õvÛªóó©×ØU]?˜P=ßÀžêöÀŒêý¶T§æT/8°¡:|0«zÃýÔÝ€iÕ#즮Ì«^q`3uô`fõŽ[©“s«—ØI]<˜\=åÀ>êÞÀôê1vQ׿W¯9°‰:v°‚zÏ-Ô©€5Ô‹ì .,¢žt`}uç`õ¨««+ë¨WX\9XI½ëÀÒêÄÀZêeVVSo;°®ºo°œzÜUÕu€Õó¬©n¬¨Þw`IuÚ`Mõ ªÃ«ª7XN5XW½òÀjêªÀÂê™ÖR7 –V=°’ºh°¶zé…ÔA€ÕÕ[,£Î¬¯^{`uÌ`õÞk¨[[¨XA]2ØD=ùÀüêŽÀ.êͦWg öQ¯>0¹:b°“z÷©Õ €½ÔËL¬ì¦Þ~`^u¿`;õø³ªëªç˜SÝ.ØR}€Õå€=Õ˜P.ØUý€éÔÙ€}Õ/˜L-ØYý€©ÔÉ€½ÕO˜H,Ø]ý€yÔ½€íÕg˜E]+Ày©[üã¼GÔ¥¾©/0¾ºSÀwõ'†Wg -ø¡~ÀàêH?Õ¿Z(àWõ3V -ø]ý €aÕyþT¿`Puœ€¿ÕÿSÝ&àõAFT— øP}€ñÔ]>QŸ`4u•€OÕ7KÝ$à õQFR øR}€qÔ=¨Ï0ŠºFÀCõ]ÆP·8 > Àê‡Ô—èÕªOP«+Vß U7xB}€R] à)õu:u€'Õç¨ÔõžVß Q·xA} €B]à%õ…îWwxQ}"€»ÕÕ^Vßà^us€7ÔG¸S]à-õ•îS÷xS}&€»ÔµÞVß àuk€Ô‡¸C]àõ¥®Ww8I}*€‹Õ‘ÎSÿ -àRub€3ÕϸPà\õ·.Sç8[ý.€‹ÔqÎWÿ àuZ€KÔ8_Ýà"õÉÎVW¸L}3€sÕM.T àLuQ€KÕW8MàjõÛNRǸ^ý7€SÔ)îP?àuH€{ÔŸx[à6õíÞS7¸Q}<€wÔnU_àuu?€›ÕçxQà~õÿ^R§(ÔxA Qàiu6€L}C€çÔÍBõžQHÕW8¬ÎP«ßpP  Wÿà:ÀêKÞ©ã†Uàƒ:`Lõ2>Q' ¨ž%À u&ÁhêMÜV—Œ¤Þ#À—êX‚aÔcøVL0†z‰w¨“ PÏàNu6A­Þ ÀÝêp‚T=@€‡Ôñ™z|« -õòžP'êÙ<©Î(¸Z½9€çÕ%Wª÷ð’:¦à2õØ^V\£^ÀꦂóÕ+8HUp²zbªÓ -ÎTï àXu]ÁYêm®,8E=,€SÔ‘‡«Gpš:´àXõ¢ÎT·§^ÀÉêÜ‚ƒÔS¸@\p€zF©³ ^Uoà:uyÁ+êý\«®/xV½€ËÕO©‡¨# V S‡<¤ @ªŽ1¸_½€ZÝcpŸz)#¨› ¾W¯`u—Á×ê…Œ¤n3¸­^Àhê>ƒÏÕËQÝhðQ½ -€QÕïÕ‹YÝjð¦^Àèê^ƒ_ê%Ì n6Pî÷ª»ÝÕ ˜IÝn쬾~€ÙÔýÆ®ê˘QÝp쨾z€YÕÇnꋘYÝr줾v€ÙÕ=Ç.êKXAÝtì ¾r€UÔ]Çêê XIÝv,¬>n€åÔÇ¢êÃXRy,¨>j€uÕ¥ÇZê{X[]{¬£¾e€õÕÅÇê3ØD}L¯>a€ÔéÇÔêóØMÝ̪¾\€Õ È„ê£ØW]‚Ì¥¾W€½Õ5È<ê[ .B¦PŸ)¿Ô]Èèê àM݆ ¬>NþU"cªï€ÏÔ•Èpê“යI}|­îEQ"÷¨«‘^}ƒÜ«.GRõù𘺉ԇÀ3êŠäzõÍð¬º$¹T}n¼¦îI.RG¨«’óÕ7Àaê´äLõup°:09G}Wœ¢ÎLŽV_'ªc“ãÔ·Àéêääõp‘: TG*Õ7À°êTå/õ10¼:Yù_}L¢×ÍÕÏÀdê€ÝTýìLªÙÍÔÏ Àäê ÝEýÎ,¡ÎÚåÕ ÀRê¼]Vý°¬©îÜÕÔï ÀÚêÞýÁnÛ0 @ì¿kÉ#Ûô-)Δp—ìSÔ?°†º{'WßÀjêžSý«ªKx*õYP7ñ ê࣎ãqÕÏÀu&¦þþªƒyõ °YÏzyØ£îè{ÕkÀQuS_¯^ÎT÷õ5êUà2ulŸ¥ÞnR§÷nõp©S|³z(EÝæ¿Ô»À¸êZ«7€Éèu˜“V€‡æ¼Øƒ ÿ×FPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUa€ü_AUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU…=8òmUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUöà€@Ðÿ×ý¾`®‡nA -endstream endobj 76 0 obj <>stream -H‰ìÁ€þ¯î -€Ùƒ ÿ×FPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUa€ü_AUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU…=8òmUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUöë ·a¢(zÿKÙdAâZ’zïöhó ø¹*ýáÀ2—ï÷ ·üZpI@_уáoéI€§ôyð¡ôLp¬ô1pUz78Eºýï’Þ¦J·þ"éY`tÞïÞZKývéÁ tÄg¥×€ÒÝ^Fú! ®t­W”~¨¥aŽ÷ûbèmLw¯þçÙƒ ¶:¨ªúU¸×±}ìÀפóƒà¹üÊ"ðB"¿cxÐÅŸ±'SÃ_³ÇÑÀÿ`;¡|ï`Ef¼÷2'#ÉÜ5ÜL¢n30¨ÚMÜ4¦fw38 ©Ø÷¨×4@ªµ÷…©Õb<ÉÔ¢¼ •èÓÚ<%Ó<Y‚´ç)J´çÛiж<ûˆÏæœì :gp>°”ÞœÄùÀ"Jó—ý:Á­ -¢(ÈþW bÿÁ~CU+°ä¾Òyù§Œ¦1ËòkG]Vç0‚®lÁoàEÙˆ ÀUZ²¿€ TdOž¼E?væïð"éˆà9ÑÈÏ‘‹|â8!ùŸ›à‘È1‡Àgúœ¿)Cžq#¼R…»¿<zÓƒ¼Áµ´%y—“èHr…'@3ë@Ú{\@ºœ@yŠA¼*S{ 垊z ç¨ -yÌá²j‘wÌãõP‡´c2'Pªcw¢c·™šc)÷”c9Gˆc ‡Œ€cׇvc/ƒlc?¯€ø$1x=Ä&×Ä9„%ÕÆI„$ÓÈY„£ÐÊë uF`^a(3‚ózA•‘€3ØN’‘…SØÉËLœ+À.^dãdvðr #g °œ#)§ °”ü"1ç °Œô"9' °„ì¢W 0—E¸d€©¼¨Ã5L¤µ(Åë`E9^h,Jr؃ ,ÊrÜ#©+*sߣ(+ªsã#¨*:pæwy9ЄS¸GNч×ÀuRŠ^\<À5§%¤(ËÑ\ ¢hÉá¼I@Ñ–Ûxƒ—¹€—)'šózx‰l‚Óìþ.€@¼àƒ%<¦—à³1XÀ/øÂ Î(%øÊ&ލ$øælv4¦ài|¥àŒuü£àøKÁc^¿¨"xÎL$¼äd)¦´!‡àUÖtvÒBb Ж‚÷œlÆh€âT¼Ïl€†$\q²ÓÊ’?p•õ­ˆ¸Á€€6„ÜcC@²n3# É#XPžàAl ¨MíÀ0Çs²' ©CYP•ÎÁŽGeU@r"&°+ …SO˶€´ä Lc]@%Ú&20 esÙPƒªéÌ ¨@ÓÀ -–d§g`crS3°Ž¹‰IXépq&$ c`1£rR1°žÝ )ØÁãÈF¿À.Ƥ"^`ŸÃý “r­LHB¶ÀnV¤ Z`¿Ã"‹bLN®@Ö„&V {âòt€PLJ¦@4V „$R »âñt€LˆFž@P@(â³O OÍB€(t w4R+Ö%Ÿû‰$p,ØM@Æ -ì¥F {6’"‰Å»èHÆh€=T¤c¶À2²\`99Ù.°–ú€´ÌXI{@b ¬£< 7ñt€ì¬XBs@~À|ŠJ0e`6½U30•§ÔaÎÀDR*9X´Icè ¨Åã˜De@5À *2l`8O¨É´€ÁäTeÝÀPâê:Ø·W) ¨ÌãFW@qFŒ¡* <38H -Må:p› €l¸IN@ÖÜ"& {nøÉ~ØÆQô䟴aC0¤Ù•<É>ªràûl_ hÅ“®ò€fÐ’ã8É÷ºòú€S| /ï8Á×ZSà(§4§À1NhO€#œ€ã8Àéür<ÿç¿üõ5>óY>8€Ÿø*ÿ8€ïù(Ÿ8€ïø&_8€÷|€ÇðŽ/ðJ€>À;Úìøï©ð…Ïð}>ñ5¾§À?>ÀO4øà[üL%€?^ÿ>ÀŽNNà¥ü€Cĺó’ èÍ_8L0 5?à8Ç4æœáx€¶ü€sД?p–ãZòÎs<@Cö¸ÂñíXàÇ4cû«Њå®s<@#v¸ÃñmX}àÇ4aó»ЂÅîs<@öx‚ãʳöÀ3ÔŠ3öÀSôJ3õÀs -3ôÀ“4Êz™y;Ü"*P”Óxš¬@INàyÂYx`i€zì;0„¸@5ÖD^ Û #0P‰e’¨Ã®Ci TátÆR(¨£é ”`Òñ” -0èÀ Zù™s` -ÇdgÌI›)¦q<@f–˜Hr /;L¥9•Ó˜Lu '§0î@FN`倄 8°À>=Úñ™o` Çdc¼E‹é–q<@&–XH §°”@N`1€$Œ6°š@ -&Xn"%€ˆ 6€ãâ3×@ŽˆÎZA¨ÄætÂÐ#ˆÌé¢H˜¡"Ñ$ËL¡ì£¤J…‘‚‘%ˆÉFáD´_h  L"Ò&Ç<1©cœ öyÒ'XË4a Db™À$ -1Ì@da˜e 6•€ Œ2Ü>S:k˜d <¡€,2€T@È@«`9s ä V°˜1’+XËi¬d‰D$ 2Ä@&š˘a Õ€EŒ0ŒlÀ6HG¸`  ä£\°€2Ò.˜Îü9‰Læt’’/˜ÌöY9`*Ó ä¥`0‘á2“0˜Æé¤&b0Õrs<À$FÈNÇ` -“ ä'd0Ó(@Ê`{ Tàx€áÌ-PƒšÀ`ƨBÎ`(§P† ÀP–¨ÃñZ I€aœ@-¢£XY –MÖ`  Tãx€!L,P°ÀN  i€ì+P‘ãg^šÄ ætª’7x–mªÚždYºð à -T&qð» -T¶‰<Ūµ9à!F¨NæàN >¡€'XT ¾Mêà>ƒ -t upŸ=Z;¸Ëš=lr÷ØR  ½€[6[ -´!xp‡%úØ$®³£@'š—mvhEôà*+ -ô²É\cCnt®±¡@;ÂWXP ŸMúà<û t¤}pžýZ?øÍ~ ÇÃ@4ÿÿi‡’uíÁÙ’‘ùˆ®è£Ô¨©™?8F;ªì£@YŽPN ®f Ÿn•Ù@è§›@iFz©&P›€N¢ Tg fåB衘–z&€óôà1€çÔàkϨ%Àsi%À;{¸,"<¢”ÿ™D¸O'>ÙD¸O&¾pà•øÆ,Àm ð]€Û4à÷($À/–nH€_šm€_ôàã?©#À-Ö~RG€›Ì#|§wØGøFîh¾PF€»,$|rðI0’ðA²’ðNjvÞh"ÀvÞH"ÀÍRÀEè`*@ºØJC€ÍZPžt±–”'†]š½ 8-èd/(N -:5‹ @iJÐÍbP™ëp€Í 08 YMÊRA€C¬&e‰ À!ÍnP”d7(Jj–€’à0Ë @IpX³$/0ž$¯°ž”#~/1ŸTÓÄà5ö€b¤àEÍ‚PŠò¼Ì‚PŠð¼¬ÙP -Ñ=€l(…ÈÀ ÍŠP†êœbE(Côα£!y'RŠ<€³,)%Ài¦€à<[ -@rpc -@rpk -ÀöÄàæ€í‰À5ì)›“:€‹T6'uW±¨lMè.cRØšÐ\Ǧ°1™¸Q`c2p%« -À¶DàRf€m‰Àµì*›’8€‹V6%qW³¬lIà.gZØ’À\϶°!yÀ¸°!yÁº°q¼°qþ°iÄÀ°iŰaÆÄ°aÇÆ°YÈȰYÉʰQÉw`¢0–™`š0V3´ìAÒF3´ìAÑFk¦€Àx¦€èÀxÍØŸœÌ`lÈOÍfhæ€ìÄ ` -s @zb0‡½ 9)˜Äàœ”ÌbpÈMÉfi&€Ì„ `“ @f:0O3ºä%c3]òR1€™šÙ +˜Ë앆ÌÕ /IIÀ\¾IIÀl†€œ `¶fzÈHÀæ3½d¤_ó5ã @>ò°‚ñ õXÁúz,a~ÈF»Ö°¿d£]k4 @.Ò°Š åX¥™`R.€eL0™èÀ:6€Lt `!# @ª°’ ÕX©™aÒ-€¥Ì0YhÀZv€,4 `1C @аš% ÅX΂`,gŠÈ@¯Ö³Åd WcâS+€¬1ñ©@æ€ðÄ - s @tZƒ= :­ ›RDa‘ˆM©¢°ÈĦTa˜d"Ó)€8l2‘é@ F€¸T - « @\*‰U .•Å,•FÄb—ˆJ£‚1Ì%Qüe¿lBˆ©û/Ý%€‡È"§ËfvR(€m,3;)À:¦€ô `Û ÀFú°m`#}XÈ8°:ldØG6²Îì£N+™g¶Ñ&€ì3ÛhÀRö€e¤ `©ÏB°Š2le¡ØE™Ö²Ð¬"Lk}6€Et `/ À&º°˜‘`UXÌw`UØÌJ°‡*¬f¦XC“VóØB“v³Ól¡IËj–P$€å|vP$€í,5;(Àz¦€ô`=߀ ô`?[ Àzp€±`58Àwà=5¸ÀZðžœ`®xN‹NðxM‹n°×¼¦EGlS"€#|ÞR"€+,6o)À€§„àŒÏfðÜa³xI‡±Ù<$C‡|V€gTà« À;*pŠÕàßà³ À3pŠïÀ+pŒÝàßàà À# -pŒïÀ -påà 8Çrð„œóÙn^Ѐs|^Ѐƒl7øoP€ƒ|æ©ÀEÖ€yêp’õ`œøœôÙo¦iÀI¾Ó´à(û À0ßà(À0å8Êw`–ò\eÁ˜¥<gYpF ÀYŸ `’îœå;0Iw³á ò³á ’€Ã>+ÀÕ8Ìw`ŽêœfÅã;œfÅ#:§}v€!šp›`ŠægÇâ;gÈ¢8ÇùÌP€ë,93à‹@/¥á;ÐKibXtZù1,:­„ ÆgÓè¤31|:é @›@#ß ˆM ‘ïĦÐHf‚|V€>*Äw ÊD±ê´ñ¢XuÚˆ @”Ï®ÐEc¢øtÑ€,v€.Æ®ÐÄwc×h"1a>Ë@…ã;ÐCaâXvZøq,;-|€8–€ç³ítЀ8¾ô m ïȶÐÀwdÛh />ë@=uä;PO]"YwÊù‘¬;å|€HÖ€râé³ïTÓ€H¾å´ ’ï@5meß(æ;„²ï“€P€bÒê³ðÔR€P¾µ” –… ”ïËÂPÊwˆeá(%,±>@%]ˆå;PJWbùTÒ€`6€B¾@0@!ß ˜ ¬3ò’€`Ÿ• Žªó(¤*ɬ<e>UHfå(ã;D³ò”€hf€2¢í³óTÑ€h¾e4 › È§)Ùì<E|€pv€"’ÎÐ?ûupÃ@Ä0 ÛÓéÁs¯ˆ,‚á#’ðç =‘€?÷,=ßP€?ç;ðEøw–€OðôàÿÙz>à;Øz>à;Øz> 'Æ€È @À³öÜ© @€ïÀÔ ÀwàjP`í8{jP`í8ó¬=g¾@‚µàLLÌ=gb`î8€„gï¸Ò€ß€3-h°÷\i @ƒ½àèi @ƒ½àÈwˆ°÷ùö€#)ˆ0øI @„ÁàHJ"žÅàFI"|Ž” ÂwàHI*,>7JPañ8yJPañ8ñ2,>'¾@†ÅàDH2L>'Baò8€Œgó¸Ð€ ߀Èð8Ñ€›À…ŽtØ|.t Ãæpðt Ãæpà;„Ø||€›ÀŒ„}d Äèp #!F€1úÈ@ȳúìT Äwà@EB|T Äê°S€«ÀNEJ¬>;(±úÌžŠ”X}f¾@ŠÕ`æ;¤X}f¾@ŠÕ`&")f€™ˆ¤˜}f"bö˜‰@ŠÙ`&")Ïî°Ò€ß€™†¤øÌ4 Åw`¦!)¾3 h±û¬4 Åî°Ò€»ÀJCZì>+ h±û¬4 Åî0zÐb÷ù1v€‘ïc÷ù1v€‘ïc÷ù1v€‘ïc÷I@Œá`$!1†€‘„Ä~FcøI@Œá`$!1†€‘„Ä~FcøI@Œá`$!1†€‘„Ä~FcøI@̳ül Æw`¤ 1¾#ˆñ)@ŒïÀHAb|F -ã;0R€ß€‘‚ÄøŒ Æw`¤ 1¾#ˆñ)@ŒïÀHAb|F -ã;0R€ß€‘‚ÄøŒ Æw`¤ 1¾#ˆñ)@ŒïÀHAb|F -ã;0R€ÃÀHBb ?# ˆ1üŒ$ Æð0’€ÃÀHBb ?# ˆ1üŒ$ Æð0’€ÃÀHBb ?# ˆ1üŒ$ Æð0’€ÃÀèi@‹Ý`ä;ÄØ}F¾@ŒÝ`ä;ÄØ}F¾@ŒÝ`ä;ÄØ}VÐb÷Xi@‹Ý`¥!-v€•†´Ø}VÐb÷Xi@‹Ý`¥!)Ïî°Ò€ß€™†¤øÌ4 Åw`¦!)¾3 H1ûÌD Åì?ö뀀†˜ÆŸôsø¶“–Ú . -üfDV‘}~3"«È>¿€Ud€ßŽØDõøÍwXEõøÍwXEõøÍwXEõøÏŠl¢úügE6Q}þ³"›¨>ÿY€MT€ÿ¬À"GõøÏŠ,â;P`Eñ(°"‹ˆ>f`Ñ ÀŒ,"ú˜€ED€‚cGöÐ| -|€E4€ -;°‡æPaGöÐ|*ìÀš@…Xãh>v` ߀;°†ï@‰XCò(1$kH>%†` É äX€-€ß` Å ÄwXCñ¨±$[(>5–` Å Æ’,q€K°„ï@‘%XBð(2%K>E¦` Á èØ€ô€"ß` ½ Ê–ì ÷TÙ€ô€*[°ƒÞPeKV8z@•-XÁw Ì–¬ ÷”€ä€²cM6P{Ê|€Ô€:k°ÚPgM6P{ê¬ ÀGí¨³& ø4°& ˆ= Ì Àb@s°€ØÐÁžäÓz:Ø€|Z@{Oëè`OòI=|€xR@ ƒOêhaPâI== -@:߀ ÒÐâ¤SzzX€tJ@‹NèhbR =ML -@8¡ ‹MȦót±)Ùt€.6 ›ÎÐŦd“yºøÑd€6F šÌÐÆ¨D“yúX€d*@«LåècU’©<}¬ -@0‘ ‘Y&ò42+ÁD€Nv —ÆÐÉ®äÒx:Ù€\@'»KâheXbI<­ @,‰ —eH¥ðô²,©€^– •ÂÐ˲„xš™€P@³c[2é;Ýl @&} ›mȤït³-‘ä€vÆ ’¼ÐθD’wúY€Dê@?ëHÝèg]‰;Ì @ q`€y$îL°/y´€ ö ¶0Á¾Ä9ÚÀûGÚa`âH;3, @e`†…H£ḭ̀0a޲0Äv†˜€0ÂÀEטbc²è:Sl @Y`Œ‘ˆ"ëŒ9V ‰ª0ÇÊ$QuæX€ GÕ˜ce‚ˆ:ƒÌ @Q`’È¡éL²394€Iv †¤0ÊÐÄtFKBјeiR(:³, @ -E`–¥!è 35!€i¶ ƒž0ÍÖdÐs¦Ù€rÀ8cAΘgm¨9ó¬ @5`žµ æ\`nˆ97Ø€÷i97Ø€÷i97Ø€çI9W€çI9wX€×)9wX€×)9wX€Ç 9—˜€Ç 9·Ø€·é8·Ø€·é8·Ø€§É8×€§É8÷X€—©8÷X€‡àc¿lbÊý7&ò6œfŠXÄ«PLÄX4v —†°ÉîôÒp6Ù€Z£ál²;µ$€]– •‚°Ëò´RpvY€RÀ2ÓPJÀØf{:é7Ûl@¥Ño¶Ù€Jò Àº±>Ô€}Ö ‘z°Ïúo˜€Bâ ÀûÐG»¸`êŒvpÁþÔ‘nNŒh£Üܰ@m”€ Œppdl@ÝàŠ è¢Û\±AUd€3F ŠlpÇ -4QmîX!€"£ÚܱBED€Kv ‡fpÉÔÍà’¨!ÙœKÐB±¸e‰Z(6·,@ ÁàØØ"€z À5[ÐA¯¸f‹*È5çÆ4PkîY#€j À=kP@¬0ö ŸVÀäÓjØ#€xR @„±H销  RÁ"„jBŒMȦӤ°IÙt€6 šLc¬@2• ‡UH¦Òä°JÁD€ c—ri4Iì@. ‰]ˆ%ÑDËJ¡Èb™BBÅ2„hÒØ&€Lú @Ûiô€4¶ ’<Ç:$RgòX'€@£Îä1O´€Dö 6È>Ä‘f"…H£Ìd²PaF™Èd¡Â3¡ÆFdÑeRÙ(€(£Ë¤2RQT€\V - ‰*ËJU —™¢É$³S1F“Hf¨b(2Ñ|€Š @6Kb€l¦ - „ÎVD= ±ˆ ÆÄó"¨1ù¬@€Qcò™+€Z @{pn´€ àœPÁw8§Ät°XÇF‰è`²Žé0-lÀ©ÑaZ-€S* @ ßà’ -PÄjò(b¶i0MìÀ™Ñ`š.€3 - @ßàŠPÆt`ʘ.€#ú @Ûpbô€6Æ à„úÐÇzõ ù8 ¾2_û´€J `ôPÉ€¬S^:Y0€e£¼t2aËt€V6 `Õè.­ŒÀ*Õ –ï°Iu(fƉ.ÅÌÀÍ š!X#¹T3d[€r– `‰ï@9S°DohgËVŒÞÐΘ¬P[êùÔ€˜3€b ÀÌÀ÷´€'4€ÏI-O0h_SZaÒ>&´<¤|Kgx†Qø”Ìð £ð%•à!f àC" ÀCÌÀw4€§6€ÏH,O1l_QXÞ2¦ à# ÀcLÀ7F`xŒmø†¼ðãð…‘Wžcݾ ®<ȼü߈+²oÿ'­<ÉÀüÛH+O²pÿ&¬<ÊÄü×+²qÿ%«<ËÈüÓÈ*ϲrÿ$ª<ÌÌüψ*³sÿ#©<ÍÐüËH*O³tÿ"¨<ÎÔüÇ*³uÿ!§<ÏØüÃÈéýzAn#†(hÜÿÒ)—G²Vkî— Ñ}ˆy5LOíÎ`L(@îŽ c -@zpœ) Á8*L)%(ÀQ†€"$à˜0¤¡yǘQÊ=€#ÂŒP†êaD(ÄyØÏ†P‰îìfB¨Eùö2 #}û„ íØÇ|PŽøìæ€rÔ`ã @Aò°]O -Ò?€íL'% ÀVa:(I62œT¥ÛØMªÒ@€MÌ&u© ÀF€Âd ]M -ÓA€v&€Ò„ U˜LJSB€F€ê´ ½ :-hb.@ ZXKPC€Æô …©€çàw–>)"À/ %|ÑD€uv¾h"À*3 ÿ¨"À+ ÿ¨"À -# ÿé"À[&)#À;)#Àži#À2ûÏ´`‘y€ŸÔ`q€WúðÊ6À+}xa`‰Büd`IH$À3»Ë4à‰Y€wTà‘U€wTàQ€÷tà[ØDxO(¾YDX£”DX§•_ì!¬ ±ød à7j ðñs ­!,‘K[-ôÀ@ÅÊ K-$(Ï@ÍŠ3ƒÐJ5Ò -@+ÙJ³ÐN7ÂL l¡œ@Ya` éʲ°vE…ý€Ä(Éu€Íä(ÉöÀvú ¶vP ×v‘P »ûh(PLØ=ØGDZ¬ì&£@)6öÓQ °y°ŸuX<8DJ2죥@aïà 1Jpà09J°upœó`êà ‚ -LÏu€SH*0=;çp€É™98‹¨Ssà4² -ÌÌÆÀ‰„˜˜…€3)+0­°pp&ifeßàdâ -LʺÀÙœ`JÆ N'¯ÀŒl\@`ùX6¸„ÄÓ1lp ‰&ã:ÀED˜‹U€ËÈ,0›×q€‰˜4¸Ðó°hp)©faÏàbb LœÀÕÔ˜‚1€ËÉ-0[7\`|– n!¹Àð ÜCsÁ™1¸‰èc³bpÙFfÃàF ̄À”–€[I/0*û7_`LÖ n'¿ÀˆÂxÀýôé€Bá.èB‚ÑØ-èD„±„Ù€^TŠÑ€nB‡˜,èHˆqX,èJŠQ„Á€¾´ƒëÝ©10cÝ…0U€ ùY*HA’ìÂP@š äæ:@ª äf¤ çÈÌD@"Η€T¤È* ä¢Í@N®¤£Î@F®ä£Ï@F¦ r€| ¤ä<ÙØ%HJ£\\HK¥L\ÈK§DLd¦Ô@ Rs€,Ì$ç<9X#HO­ \€^ý¹0ź3D0Í:3C0 -Õú2B0 çèÉÀ@„èÇÀP¤èÅþÀ`´èÃu€?ì× r1 ÀüÿÕ)Çå#ZJÚƒä@÷˜ˆÆ÷náø@<þ7p§"òÁéˆÉ&sv *_˜ËÕ€°¼q`&7óÈy\Í+fqo ¶Ç_¸6oLáØ@|þ90SøèÀp äৃ93…¯ õxd\ˆË[2 Ç…€T¼v`÷’ñÜ1\Èæñ»{ï@n äc<¸,‘ñtç®@NÆЙ«Y@Wn -äe<¹(™ñtãž@n~=ÐÉã9qO ÏèÂt€ü¼{ Ó*ððËL¨ÁË.2  -O¸Ät€:¼}àÓ*ñøÓL¨ÅëN2 Ï8Åt€z¼àÓ*R€ÃL¨I2 *%8Ät€ºÔàÓ*S€ÝL(Mör/ :eØÅtÔ`Ó0€LàƒN¼áLŸ´à%Gø¢/8ÀÍxÊ~Ó €'œàÚÐä8ô Ái¶4`ÃaZtà³´i Ào››à(_ôà‡é¼ )_Là%]øäo¨ À·xKa\`—MeРgØÅx€ê`'ãjs€ÝŒ¨ÌŽÐ ªMúÅxM{€šLà0ý*2€4¨ÇtNQ" ©NR# ‘N3 .0 q.1 a.Ó' Óè@£€üL  ¥²“r µr“q Å2p #ãÒo /í’n ;ý22€T ÈG®€!” ÈFª€AÔ HE¤€q4 HD €‘t HCœ€ÁÔ ÈA–€áÈ@’€ TOŒ€9´Nˆ€Y¶½Cñ€@$˜Hõ€¸ä˜Jù€ ¶á•^`,õB]`¾mQA`yr ÜB `¶¡•Z`5B1€ûh"ˆÀwÒE iîe<@ ² -ÜO!L`: ,OL€5h%°6–¡˜ÀÊ$X‰nËO`-Ú ¬I6€å((°"ÉV¤£ÀrÄX“–kidR(€5(*°f<À:ÄX›¶khdQ€µ(,°A0àvb¡µÀ½L Åî$€@ ÆÜFü€`Ô¸‡ìá(0pÁ"Òa`:±‚Rc`.™ÂRd`"BSf`i‚Sg`ŠVÔd ˆE£ ä HA©ÁZ!“2 "½†’0 Õ†iÅK¾€¸´D¸€lôA²€ŒtèN¬€œ´èK¦€¼4èH €ÌtèEš€ìôèB”€ü4¸NŽ€´¸Hˆ€*ô¸B‚€Jt8M|€Z´8Gv€z4 8®™Á²S‚à(¡ªÒƒàˆfbD¨A‚ýĨM‚}šY …v€?J¼'%ÿ¨Eð’ˆ|Sà9ùøM;‚6Ùx  Aƒ`4(IðH*šÚ5IO¢,‰xJU‚oí8ÈÙ¯ܶa Š‚¹ÿ©‹mP·–E‰¤–Ë9ALýoßÔüâr8£˜àëè!ú¯XŒëòü´ÑMÔæ? v¢.ë¸F?Q”é\uPPŠ­™=À*Šjlà.%E%{7x€&bŠ*\5:@?×û3r€1\ì͆‘Vl̼†’WlÊ´†“XlȬ¦YlæhÒ6 ÐMi±—ÀLj‹mØ2Àd®¶`Çp=ž <Äõ@j ð ñEZÆ ð0FJ† ð¼Ãa,Ëhb¸ÈÅ`â¸ÈÃXb¹ÈÁPâ¹XŸ‘¬ÁõÀÚ `®–eœ‹h,É0$ÒXŽQ,J¨±ƒXØq¬©5f‹‹s=°;HÀõ@4ÈB¹Éþ2ùPoò©L ×Ì #×39€¼¤Ïq9ä¦çx†¥ä§é˜îÓȬ aÇTö°×ÓØÀf\Ì`W[’y fRÛ’zŒóqMæžÞc CØŸënFP…ò£‡ýTò¹þä‡, ××Y @QBK  °“Tƒ|3€ò$!ç™ü¤ ùÌ@øæ|àˆmðJ!ò†YðŽNäÅÙ , 0±È¶À ÉHà -Ì€/ÝXžÐN=–åÓp•†,èü£ûê¼!$kñ½è '«ð¥èÖ•ª29߀A¤åÎ|]FjéK™ï -ÀM™©3ñA˜Æù°Ÿ€Éœhûˆ¾"½”gj>OjìOºß €24™Öæ‹0žM× Zóù JÃøD,Âù°0€ÅHÔµ_€'](U©:ÀÒ®œ’u_€Ü‘.½¾ç š€ áÙHéZÈ*Ù>_Ûs°–«A«hoñÊláòý m/ð¸ìåúý qOyT6u#uµîo Àîî4¯èýÛ­ô„¤t¯~寇 ¢›\5„=¥ÝâBIÜñFu €zÚxï:ö0ðŸ¾b·RöðIo1çf/Íäs¾‚ó£³ýjè7¨¥Wïé"?&XÖKåõ®¿ Bí˜Þžô+œ ðjVzO‹ðt0ìd~7·ú: p 2Û£E¿=ä]ñ‹~nÈ.ºéç‹~aØJtàÏý¦°±èÜ"ú èü¿%úÑ ²è{ Aô/¢O„D?ÐÀ½ÜàXz8à{p äÿÚªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª*ìÁÿk#¨ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª°@þ¯ ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªÂù¿6‚ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª -{pH èÿk?˜Ø`¡]ãm -endstream endobj 40 0 obj [/Indexed 41 0 R 1 119 0 R] endobj 118 0 obj <>/Filter/FlateDecode/Height 3140/Intent/RelativeColorimetric/Length 61261/Name/X/Subtype/Image/Type/XObject/Width 3132>>stream -H‰ìÁ€þ¯î -€Ùƒ ÿ×FPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUa€ü_AUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU…=8òmUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUöë®+ª2 Àð -q€PD`&ÂÌÐIéKAK‰@Ò,4ÔLå#°R P´~n{ÈÀI®e¬U×uúìç]ïÞGû€ÿ7^Õv_xm6ÿúgddîdegï åìJ‹D¢¹›E£‘MÓœÔó;³³²ÂýÌ =ÿéTÈ\ï„ "Ñ  ò -ŠŠc±’²òŠPUum]ü¥ú†¦–DZKsãÁY¼®fe¸±oOi,+~3?Œ‹ÈZS„=‘™®‰í~yàŸ¥s!+ A+äí.,;¡rM]ü`csK¢õÝ÷'“'>:Ýy6Ð}¡·¯ÿ¥o‡†Ó†®]ýúÒÆ°¯ç|W°ÐyæÓŽ’Écïµ½hij¨×VW¥z¢¨ ?Õ9AI¤Cb»? °as0„½»»0öÖÞŠªuõ͉¶£ÇÃNè:ßÓ×?põû¡áë#c7oÞ¼uçÞD`rêÁù ó¿=YÜìÉïæ7†³3Ó“áÊýŸoûã£7® ^¾Ô×{¡ûlÐÉö#­‰¦†xíþÊò²’¢‚¼ÜÈzFdd¨ØNëɰV ¹ùA0”WV×Öji;šì8ÕyîâWA+ ÿ0:tÂýÉé™Ù° —þ,¯¬< ={¶ú<íÅŸ[½Ø4{¾ú,µñtey98`)h‹…Ç¿ÎÏ=üe*Õc#7†¾»Üÿåç]Ÿ}|âØ‘Öæ†xMÕ¾=¥AFD#»Ö*BDÀ¿h-vdÉÍÝ]Tº·ò@¼¡ù£ÉOw}Ñ;ðíµ£ã·ïÞŸz0›j…¥0‚HX]ÝÒ½º-m±&ÅÊÊrX ÍÍLOÜ»skldxðJϹ3Ÿœl?œ8TTDY¬0?w-"4¼NéfˆDó KöTTLJÛ;Nu_ì»2xýÇñŸîNüÍ~}~¥•-`^K:ˆ"ˆŠ -E(:¶X¢ƒÑˆ±$vÃÕ±¢¢`A+b¡KòçÞ} ¨™µæÎu¥¾Ï×³Žœ½ýòþŽÝç^?É…H4Jjáöî.µ>?Úý÷óÿæÉ€G®Sž=*‡þxôGïè” !AuÄ¥çôй»e[[žû46øÎØÞd¨ÒªŠ -ó²E¤!¸l# ð¢âÑÀæòÂ,©LQ¢©ªmêèîÿ89»´fÛÞ;89»ô¨`xÒ Þõ±h”L{‚¬{Šß{á9KrŸºœ\®£Óûggò” I‚ªº-þþ“á¿:?=Üwl®¯Ì›Ç{»^×ëÊK•…¹’ Ëa1‘ÿ¯D4px‚ qn¡²´\ßÐf왞³¬oíºŽÏ.ýÁP¢žowz¼Sëîߥ'Ñ{Û›v»}cÕB,/Í™§&“ÆGûM)ÞÝ?›šžYX¦^Y±ÚìöÍ-ǾÓupì>ó\xý`(DÇÄõÍ×¾„dD¼"^*"vlk‹ÿêíl6T•+dÙ¢t>—Íb¤¡ þwt5°Ø\¾0Kš_TZQÓô¦wh|fÉjw¸N<ÞÙê_Kº¨™ ø½çg¤ö[öµ•å…™éxôõt¶·µµ6ÕÕèõz]u¥¶,I]ZR¤HõJ©Rß?Õ”WéÈúÚ†–Ö¶öc¯É4ða|rÊ<·dY]·mnï9IKx.}¤$‘¯wù<ê낾 ÷Ñþö†enê£ÉØZOBž'Éð8l&UH€ ^ .?Cœ'/ÖèÚߌÏ.¯oí¹/|AºîžC<¼g'$lÖ•¥9óäè©×ØÑÚüG®ª\SF·¼ O*•f‹3…éŸ÷€ËyŒ›òŒÏÐ/dˆ$ÙRiެP®xU\ª.ÓVVë ¯Û;{¨–˜žYX^ݰo﹎N=Wþ@"#žTD¼!B+ϱÓa_›úÐ×Õb¨(-Ê—ŠÒ“ñ½ÿ?®”jP¨Êkš;û>N/¬mî¸/ýÁp4–œà_¾¤,ðpˆƒûȹ»e[³Ì›'GÞ;^7Ôê*µj•RQ(Ë‘JDBÒüx°Ù,&Á æù¿‘Æ`Pï³Øìx[PI‘‘•-Í+“–ДWéëšÚ:{ú‡Ç¦gWÖí;û'òý¡pJD$O@5O9¥'â1Á¥S"SLBB¡,ÕTè Mm]½#S³K«[»®Ï‰ Hô¾!>§$„ÿÒ}°k_›ê¡ -¢(?;S@ -‚Šœ—ùb€Ÿ[<¸‚Ìì¥Fר™¨†“ ˆÙñhø’hjc|ç§{Û+ æñ¡¾®Ö†Ú*m©R‘ŸK‚î’ FÚË–Â?;È}I°¨Ž ‘A2¢°¨¤¬BW×Üñö=‰ˆe«Ýá<>»¤"vHˆäñb‘pàêìp*ˆÁî׆ -•"W,äÇ¿/jf³8¼tQŽ\Uah};4µ`½¯†Ä¬N®êh8è¿<;Úß±‘fè}Ól¨&É ÏËÎÊH§‹ÉHKûƹð÷žfDz¦8§àUIYeMC›Ñôarvɺ¹ë:9÷¦$D¢¨³R±k³ÌŒ™:uš"™DÈç²™i?ÄѾ)²«L’ Y¹ -uu}{ßèŒÅ¶{èñ“ÕÒ·×ÑHˆŽ†­õåÙÉá¾®×uÕZUQa®„N6‹$à _w_TD„YR™¢¸¬¢¦¡½ûýȧ…U»Ãurá †£±›ÔƒßĨsŸ:·­ SƒÆf½¦¸@šÁç²ø}!ÍdóÒET64vöOÌ­n:O/ý!²žSÇóu4ôŸ8w6,³“C½ošj*ÔJyž$“4‡ýÃ'ÃW$‚•hˆüW*mu}«±Ô¼dÝÜ;<#wI-ºœ‚^Ï¡ccqz¸§µV«Ì—dð9øõQÛ™ÅågJåªÊ?ÞôO̯m»ÜWpô:e1ÓÕàõïoY?˜ºZ •jea®8CÀã²Y?a3<õÐütQ¶L¡*×7´÷ MÌZlŽ÷³‚¸‰EB>ÏÑž}Ù<ÜÝR£)’‰…<ý¿*²—™žP’¯ÔÚúFgW¶H6ñ›‡•|{‹}t5,Lx×Ñ Ó–(ò$t40ãÑð½Oñ’膠B˜%-Pª+ ¯ïÇES¯†UÈ~´»±85øgcµZ‘#péúÞ§xAd"3X\(G¡Ö7w›—íÎÓË@øÙ6¾é«ßæžà×”è†ìÂÒê&ã°Ù²ét{ƒ‘gÙpèØXœîi5T¨yâß®IDºHZ Ôè;ûÇÿZÙtž> ˆhØ~äXŸŸ0µÕj‹rE.‹ÜÙ÷þz€ÚÀ~†T®ÖµôŽÍYGçþpôæös\<Ψl˜46ë5ÅÒLÃúm«!]l_(ÎU”VÕ·÷Î&âáo¯#Á+·Ó¾4=ÐY_^,§£àg“ìEYM[ßøüúÞÉU »¹»½ÑÏó E2‰Ïe3Q PÁ`qx颹ª’ -ˆ* ®á§Wy°e1ÿÙX‰~€Ÿ Õ l^¼L‹¶}2v#×·ww÷[×q²g[š"ÙPFgç¿ì×y[RëÆñ³£*"H`šdzÐl›–fîRÊ­˜šqÄ‘D‘˜§…¯w? ¡ô\û\gf÷ç¬ëù­?î/;w‘ ŒºxЋ€h{òòÍÜêŽ7޳-VxS&Ÿb»+3_úÏ ×Åá -D²òšÆ‹nðœ[è†ós&“ЇO<[Ëïmƒ¿´Þmø’ ¥þìk¯ÆfëÓû†ÛŒ&ÒÅÇÍ1™d4èË÷ƒÕÜ VH„<<,\SÅåÓR¥ÖÐÒ5øv!ß …i{~žË¦“Ñ3¿{cáÝPO{“¡¦BŽlø« -!½UUÇÒ501ãÜ>°qƹ؎W½m&ºL, ýPê¯¸Š¬Z¡ä–FßÔ909¿þñøj7$"§Þ•YÛ‹.Ë:µBB³£«öï ýÀå Åòr­ÞÜÞ;b_tí‡b© þv±¼ÛKS£=­5å2š-´R4ÀvÍŠäu¦ögãïW÷ŽÈ”½Ô ñð‰gkiêUŸµÙ -—‹„<.…nøgH@ð´D¡®¿ÓúËË7óënÿY4ù¥ò±¶µøv°ëþmR"ä! ôÈŠ¥¥Êjƒ¥{hʹ㠲öJ7¸íC=m¦R*‹ûuãò…byE­±¥ë…mve÷âñ ýM'ÂÇ׿&ú­÷ê+å">ý¥Cq¸|‘¼Rgîxn›ßð" vº^é†wCÝîÔ©š¯X¯_EÒM ’©´†æŽ¾‰™b?ã-;óí.Ot[ ÕJ‰‡|€R «U(QV,OF+»þP<•Í‘ÍJ&+“NDžÍB7TÈÅBÙðÍ\ôƒT©Ñ7úá,–*ö“IFN\ó¶çÖ{õ•rRp¸|OÅåÓ²òº{Ö~Û¼ëà4š,lÕ\~«z·–~þÜ ¬ÕoŽô¹ÈE?ôOÌ­¹.µ\6ùw—§Gº-·5 -‰€ËÁAà» á +ªô÷M-ïúCñ4“c»ŒÔT,è##u´·Í„nøîŠýpûþ£“óž@$‘)œ&Ÿtó}íwkTRö0¥þZ¸éÈ>J”ÕÆ‡OÇg×÷‘d†9?g»I'ÂÇîµ÷}V³N­ J"ß2•Öhéúmiû0Mfrʦã!ßÎ’}°Ó¬«”Ó|ä|;‡'”ªjMÖþÉŭóX*Kf)Û ™dôÔ»µøvðQ³^£”Ò|.º¡tÈ™"yE©íéØÌêÞѧxúó¡á÷Šc¤»E¯.áLðMEJË*ê̓v玿¸Gs¹l*òï.;^õ´6Ö¨d¤8¤¥F±™'QTé›:&6½§‘d†É:/rêÙ˜ïm5hbò¾.ŠÃ§å•º¦ÇÃÓ+îãp"]¢‰ÈékÞÖo5ëÔebÝpmP—OK•ZマQÇÊž?Äæ^޽Z6;;Üú`ëkk¬VJ„ˆ=øZH8ˆäj}K÷ˆcm?IfØpÈå²éø'ÿÞŠcô‰ÅP­”Ò|… zÍP®@T¦Ö™;&6½§ÑKÇ ù·'û­¦Zä|$h–ž±Ù ÙžÙüöd²©XðpkñÍ@‡Y§–‹øŸ×Å^PªÔ[{ÇfVÝ'áDšÉåH>0lûí8íƒl>pAø'>‡ÃøœËŒ¥Øp £3“Œ<ë³ãO6j•RšÕyÍQ®@T¦nh~ô«Ý¹ãÅÓÙB>$ÂÇ{Ël>Ô ào£8¼‹pûD–›î•éá_îë«bìÍÅv ´¼Ödí·}Ødï™Éߓɰùà´¿(ä…sÀ_CÂA(«h¸L6ùvœöÁNs}…ŒæciþPØ£J”ÕÆÖÞ±ÙuO ’Ì®ZÈë]-[ƒ¸)üiìÆ”–×7=u£© Ãä&“Šù¶lýÿ6Õª¤BóÇCQ\¾¨L­oéq¬î‰4[…Å|x÷¼Í¨Qˆø8-üd] -$ª:s×°cÍŒ& ጽ›l}ÕJ‰€‹uùã¢8|Z^¡kêž^Þ;¾”ŸŽvÈ… j92€ÿ‡ìJñ­SÇË©Õý@äR8¸æÆz4 -±€KaWþà(–•×›;^Ø—ó!òm}ï±è+eBäüodQŠÊ4ív§û„„CöJ8Xôê2ápCc ¥J’‰Wó!;óºf_u7׫$¤Ký•p±[RV©·<³-î^š’_ÂANó9Ø’7 Åá -$äæëŽ¡NSÍ-1Nÿ"+RU×ÔýjnÓŠGd$ÂÇ»‹¯{[tåR׀姣PVy»µÿÓ}RXŽÙtâÓÑ΂­ï¡± -ápóåóAUgîv¬y‚Ñ/õxèz?Òu¯æ–ÿPv46uÍo…2&“Œœì9ß=o3V+0‡'”–×7=uyÏb…|HEO÷WìílBòð'üÄÈ^¤Ë4w¬¿N¯c鋹˜ŒöW§;îjbsñçÁ惬¢ÁÒ3þaÛЧ !>Þ]|Ýs¿^% ~RW Qé,Ï&—Ü'‘d&騙wcf¸Ë\«”pÀTüɰ5)WöMþg/ÿS0ìOnÌ uÞ­.£yÈ€ßÙ¯Ó®&4 窲'$†ƒA‚¬²)*D\€£ ˆ- *È¢”Æ(²KÙ+ëîªdÔõÌôt‹€Ü×/x?¼žûØQG¢Í]ãí›ðmåtF݈i9ä7õðFc™Ó¢—‰Ç“ j'ÜÕWzF_¯¢ÉL®)“Ñ•ÙáÎæ2‡YÇc+‚¨³½Ð5<»ˆåça:Ù^žîn9ç²4ìÃãLt¦Â3ç¯ÝŸxó!O©a™UÃÒ7Ùç­qÛx€cC5›»öZÿó·þœÎ*Ë0“Ší®Ï?»ÛVã>aÔ² =AôgYÓÍÁé÷[áDþI’±ÀÊìpgs™Ã¬ãGŽAÔ™eÍ]_­íÆ’efÓrøã»¿wÔ{”Q(1 -¡RÓZ\yùöÓÿ”ß7Ùç­qÛ ùðKIo=Uíí›ôùÉtVÙƒ™d4°2÷¤ûbÅɽ†=ˆ/Qk²Ÿ®»Öÿü­?$§3¹w‰Vf‡;›J MZ¾à—¥NÁBOSçðìJ šÌd³ÙL*ÜôMô]­-9ad -₤³½Ð¥üÌNT­Íl&-‡6}ãw[+]z‰—ø©+ðdå•Þ±7›!9•QG`"²½4óèVs™Ó¬câ»Qc°¹k¼÷Æ6‚qõq²édtgizàzýi»QCqübA€uí§—¶#‰t&›É¤âÁ…±ÞÖêS6ÿ…’fGiãÁ—ÿúž¬ò={ó£·[Êf-Ïð D­ÉQÖÜõäõÚ^<•QÊ!ˆl/½¼Ñàq˜ul?ü‚¨1X‹«Z{Ÿ-l•ʪ/ÞZ|ѵºØª—ø €_ƒ é,'+[ïMøü!9­Î¾T<øaa¬·µJ}”þ -5@ = 7g–w¢‰´ ÉX`uöÑ͆3v£†78úIos×µ?œV_2¿ø¢;+3C7=…&-‹™ JzkqU›R¡›!9•«PY©ÐÑÛ-åN3¿p´ ¢Æh÷4u=y½¶Ͻ´òû&ú¼Õ§¬z‰µ‡ÿ jM޲æÎáÙÕ@,Ÿ¢‰ÈÖâ‹~oµ«@'ñOG•2ôÌΊ˽ã>HVw^&Û]{õ¸«¹ÌaÖø”5ØÜ5Wû_,n…¹zHÆ«3C×ëKlzêàH$]«Úû`ji'šÌm¼DdûýÔƒßjÝ6ƒ†rÀß%ˆ:³³¼åöèüÆ^<•Éf3)9øa~¤»Éc7òYGŽ é­%ç¯ͬîæç]Zm¾ë¹\QdÑIÌ;ü‚¨1ÚO×_x¹ø¦áoÇ{/—;MZêà(”içiêz:ÿ!(+åɤb»ksûQôÃ?§Äi«²­oòíÇp"WÉèÎÒT¿·ÊeÑñbG„ jL޳-wÆ|ŸV]"²ý~êÁµ·U/±êðc¢Vù³‹Ý#ùBÍä -uuf ½öTõp¨‹ÎYÑÚ÷|q+¢”ƒ2èäÐæ›±žËE~$¥R 'Jê¯ͬbÉܳÅ÷Ö_ ߨ/¡R=¥,'+½ýSË;QuÌ¥Õ1÷úqg£ÇnÔPøÑIWàªöö¿ø’ªÁ<íRÎ@=b‚¨+(®ix¹²Ë•C2Xy9ÐQç¶êrØJ®šå—zž½Ù É©´’«rØÿæÙ‹¥…J®ôuø.AÔ[Ýç¯Í­íÅs.Ù^|q¿­Òeщ”ö‹ jŒvOcçã×ëŸ?oëÝDï¥r‡‰z8„Io-iè|:¿Ìï79ì÷÷\*wš´”ö—ú}Á™ÕÝXRù¾t"ªvkë9§R|À¡"HÛ醮‘HΕC<¸ñÇHW“Çnd»á'D]«Êû`ji'ªÔC&Œ–§ûÛÎ9Í´+À!¢”ƒ½´¹{tÁNäËaomîÑú›^b¶áçD­ÙYqåîäâV$÷†ÉØîÊôo•ËB=¹rhé÷} žl/ÚkOè(üD‚¨1–©¯è˹ˆí®Î ¶×R‡B¾z'·#ùrˆî,Mõ{+]s ?› 1Ø=M]# ›¡|=Ä÷Öç†:¨€ƒ÷¥¢ÉtF-‡íÅç÷Z+œ&¦„ ém% ·¿ÞæëAnPî?Ë!JD¶'{[Î:LfŠRVw]ÇÐÜú^œz8¾)‡ðGßxOK©Ý¨a¡á ¢® ¸¶chvu7–ü\í5ÔÀÈ—CÏ„R‰tZ-ÿÂhws©Ý ±ÎpÐQkqU_û}zE­å?ãÁuêà@äÊábÏÄ»­H"¥,39ä_éj8m£p8(õ`.:×Ö?µˆ%•MÆ÷¨€ŸOô_•ÃæÂHgC‰UO9àÐPêÁä¬hýT©Ïõ`Öˆ}À1!ˆzÛ™ ß+‘rÀ¡"j>ÕCôK=üVé4Q?RÖ’Æî±·¹rH%)fßÖÃÚ̃¶ -¥xW€ý%ˆº‚’†Î‘…aÊGÂ×õÛ]žêo­p©€}$ˆZKqÝ­§ ›!™rÀQñu=DËS÷/—Ù o °OD­ÙUÓñh>Wé倣âÛzXzÞ{±ô„žzØ‚ÆTTÕ>4·”Õù%‡ý”ŽŒÏõ°Sß7Ý~7q§ù´UÇûüh‚Æè¨ðþÉ~6Eu®QÎûî½{î†FF! -‰AEÑpˆ(àŠâ -"ƒ27 =÷àŸÝ`ªNêTæTZºïë<žUµÖ£™Í˜qT½R»‹,œ$Gëáʃ7?¿pøÃ«ZNûYÿ(¡¸‚g¿»?½ý¹v-õ}ÃrÀ‰’Y ×Ïn¯3Zíi.÷i2Û—ä !U“«ýh9¤÷–'ú/V8–N©zK›ºŸÌnÆÍƒÃÃ3±=7ÒÝXâQùd€‚šÿtkߨr8eÚËaåÇþŽš ‹å€Çþf_YÓ‘÷;‰£õ`Ä6g†®Ö¹ùf€¿OhÞ²æïGCÉLײґO?Ý»t–å€*³ÊÏÿçùüñz°ôèÚÔ½K5…N>à請øÜõ'ï¶ÆqÏZŸ~p¹¾ÈMω%¤Ã_ÙÚûbq7i¯‡+½¿2q§ýLÀ!ùj€¿L(®`íåGo7bº½ŒØÆÌpWC±G¥cá$Ò¨l»=¾¼—ʬ3µ»ô²÷B¹O“Ù¾ à„Ò¨êxý)¢[vÁ2Ûs#Ý¥^–N<¡8 «;&W÷Ó™ç6;ïŸÞh,ñðÜ…Ô|-·Æ–÷ŽËU2´ð¼ç|¹O“´+䡸‚µ¦×£zæÁøæÌÐÕº"—ÂüIBõ”4Þ|¶Jš™åÚ[ëûæ´ßÁr@®ª»¸¡kxf3nØ?néѵ©»U~àOŠ«¨îêÐìÖq«Jï¯NtTЪS„ê-mºñôýNÂ<þóã}->Mfû0€CHG ªãîÔZT·ôØÆ›µA—Âr@nRó•_è}¹´›Ê¬3Zxv³±Ä­òêˆÐ¼å-·Æ>î§-»N‰­wO®]LB.Ò8Ó~gbåó»Ç·f‡®Ô -ïð»„â.>×ýt>”4í*e&C‹£ß7—yYÈQBqÖ\º?½Õ­ÃCK®ý4pñŒ_“Ù> à '¤³ðlç÷›qÃ^Vzÿãx_ëi»G1³„â>ÕÐ5<»õùë÷>¼ê=_æQyz€ß 5e[ÿäjD·ì¥GצîvT8XÈmBõ”6Ý|¶°›4íÇ7“;s¯5¹àWÕ]ÒÔó|)œÊ,#±5;tµŽ…| 5_EKßøÊ~úèùcëÓ÷¾­8d¶ïø" é Ö^~·0íòd¦vGo6–xT–òŽ@õ·÷¦×cºýÿVzeüVK¹—ÿøRóW¶¼^‹þÜœ&n·Vø4™í»€‰P\E ]ßm'L;f24ÿ´ûë"—Âzø¡ºKšz^|§-»6±7÷/Õ8$µ yD¨žÒæžKáÔQ â›oî[pÈlßðÒYX{eøÝv´+“™ ½r½á”Ka9 ÏHÍ_ÙÖ?¹Ñ­ƒK¬ŒßºPæQIÀgBóU´õ¿^‹õ¥ôþòXïù2/} yHHgáÙËg¶âÆÁÁ™ Í\«/rJÒ`Š»øÜçKá”i/=º>5Øq&àÙ¾ ÈŠã@Œ.î&³q±Ò¯1¾’Ž@õwÞnÆ ëÀ2;s»êŠ\ -M yKh¾ŠÖÛ?®î§­ƒ3½÷áeOS‰›L€|'TOÙ…[ã+™–d™©½¯z›K=*- ùLHGAMç÷›qÃÎ…‘Ø~7tùl¡C’ Ç„të®=™%M»"éѵ©ÁŽ3~Mfû. Ë„â.>wãÙÂîq4"Ÿ&ï|SáU o ÕWÙ>8µÓízd$væwÕ¹úð•Ð|­·\¤-Ë2S»‹ÏºŠœ’t€¼$שsß¿X -§ÌL7Ú[~ÕÛ\êQéF@†Ž‚šÎ‡3[qÃ^z|ãͽŽJ¿F@@Z êÒƒ·›qÝ^zl}únÇ¿&³}ðÅŠ»¸ñæó¥Ý¤½ÌÔÞòËž¦b·ÂzyÆnE%ͽc÷S¦e‰ÐüÈõ†"­ø_Bónëý)’Îä$¾5û¨³: ÉlŸðo’Ž‚³—‡ç¶†]‰Òû«}-å^•åü’Î`íÕá¹ÏQY™¸u¡Ô£7„ê)k¹=ù)’¶ëßš}ÔYSàÙ> øÙi)=ß;öq/e§ÅHìÌ=¹Z[HZ@žÒ¬ë™% Ó2Rá/zšJÜŠÈö]À—IjªK÷ßlÆt{=¤#k¯ï´–{Uò€P½mý¯×¢™"¤G×§î^¬ôk!à×Åuêë£Ká”ašFrwáéõú Sã„t뻟-î& ËnA!»5Ђ€ß&Tßé¶ŸÖ£iÓ2õØúÔ`[…W%6 § Õ[Ñ>8½Óí -”Ž|š¼ÓZN~Î`}×È|(a˜–‘ -/v×’耜uÔºG—Â){9‰¹á+µ…™í³€@¨Þ²–¾‰ÕHÚNÛ˜l¯ðªŒ£ìòSÑ>8½Óíò“ެLüp¾Ô£P~€?D: -j.Íí$ ;@©ðÒhw}Ð) ÈAB:ƒõÝ£Ká”]|Œÿ²_§]M¤iÆÏóTUvÂ."¡QaPpà`ƒŠM»ÅÅ5n4(¨ 6 [ ¬UõTú+Oé83ozÎŒk¹~Ÿà~ó?纋[¯n´F éõYÀž!´`}ר“•ŒínHå7ž_í=ÖyÀGèáƒ=WŸoä•›=vfùÑ…Îú FöŸ@ÑÖþßæ’§ô§cí¼½®£Ú/™ø¡é¯î8wqÇrJ%UHÎÝ8ÝRa<À§Z îøhb9c•Ü%å7f®ô ë, ü@„>Øsef#o—J޵»”Õ4‚ødˆ4÷Åg“åŽÉL/Þ>Rå“^_ðµH_Õ‘á{‹iÓ)9ª°9ïkŽè|ÀçÒ_M,íZîžìÜúôå“ !=€‚ÐB 'Ƨ×s¶›:ÖîRb4Vë—¤ð™„iî‹Ïn”;)3½pg°½Ò^_ðå¤QÙ>89Ÿ2UÉQ…ÍÙx_sDçs>ŸþÚØhbi×rŸ;»65Þ} ¨±*°Ç -Xß=>µšµÝȱv—£±Z¿$r€/"ôHs_|v³ œ’*¦æoŸmì -ìi¨8Ô?ñ:UT%G’³ñ¾æˆNá_JHml4±´k9%Çξ{:ÖUl ìYïóæø…Ç+ÛÍ+³üh4Vë'o€¯Aè‘æ¾/· -ªTR…­W7Ï4GtÖö(¡‡›úâsÉÿ´M m|-Búk;/>YÉXNɱ2ˉÑc5~éõUŸCúª;~~¸´û>lìÌÊ“±®º€äu¾aT´L¼Þ.ª’£ -›/®õ4†46ö¡…O]™ÙÌ+§¤Š©×­Qƒª¾&¡ëºôl5k;%ÇÜy{o¨½Ò^_ði„=½žsǦÌÔüíC:ÏØ3„n>sóÕvQ••ßœ¹|²!¤Q3À7!}UG†ï¿Ý1’cgß=>«ñK¯øÿ¸)Ó1’XÎXnÊX»KÏuTùHà[zø`ïµ›U*©BrözocH^_ð¿ -xàäåçÿ꘹x_SX§c€oGHͱÑÄrÆrJ޵óöÞÐá¨Áè@ÙzEëÙÉ…´éFŒ}÷äÂñZ¿¤b€oJè‘æ37_m•»»ÜÚÔ¥.vÊžôÕÄ.=Þ]Ôèà;Fôðà7iÓq+³ôðÜ‘JCz}ÀãÆKÛÐÝÅS9ÊÜy{˜x¾¡…{®>ßÌÛŽcç×§Ç»ëšðú*€¿$ý5cÏV³–rìBr.þ·ƒaÊø~¤¯úØHb9ãNP·çoõ·Dt&ÊÐB½ñ¹­‚í(+ûîéÅÎZ¿ôú(`_z¤¥âõvÑ}¬ÌÊ£‘£U>VÊŽ0¢mCwßî˜n´S “o‹Â룀}FhúŸÆ§×s¶rìüæÌåCåEúk:Çž­æ,¥ÞË•“ AŠøþ¤QydøÁ»¦rT15«¿%¢3EPF„jìÏml¥¬ÌÊ£‘£Õ>éõQÀ¾$´pSß—׸üh¤£ÊàyeCèѶ¡»‹iÓVv15«¿%¢+€G¤¿¶sìÙjÖrŸ‡üÆÌ¯ÝuéõMÿ$}5±‹K%÷¾Tê¯àaDÛ†î.¦‹¶²‹Ûó§›ÂL”¡N]›Mæ-e›»Ë‰‘Ž*Ÿôú(`_Z¨±÷úÜÇU.=n<ÀsB¯h=;ù&]´•]Øž¿ÕßщÀcÒ_s|ìÙjÖ´••[ÿý—ÎZ¿ôú&°ß £êèùÇ+™…²1ókw}@ãu<'ŒhÛÐÝÅtÑVvaëe¼·1Ä4€§d ®ûòó¼¥l3³œé¨òI¯oàZ¨±÷úÜVÁ}ÌôâÝÁ¶ -çxFhá¦Óó©¢'ÅÔ­þ–q” é¯9>6µ–µ”meWŸ^ˆUû¤×7€ýJèÑöáK»¦­¬üÆ‹+'ë¯P6„ñ~¢ì|˜hòÅÕS<ÀÒW›ZËYÊ63+Ï«öÑ%@9Z¨©ï·WÛ[ÙÅÔÂíþæ°&¼> -ìCZ°áÔµÙä‡(I¿¹s¶µB'J€2#u]ãÓë9KÙffùáp{”€ïMh‘–É7é¢û:¶æ®÷45’(;¨<òsb9cÚÊÊ­MÅj|Òë›Àþò¡G­ü»GŽÓ#@yz¤¥ÿöBªh+»œ½vª!¨y}ØO¤¿¦ó—霥l3³ô`¸=j¯oð×dàÀ©«/’÷y(¦ßL´D4ö -¾-ØÐ¹õ!ER §›Â¤P¾¤ïì×i[Y‡á9U••ÃŽDVAiYF°¥eqDeQPe'ì d¯T*~è®àô,W÷ØÚJÇ$Ïý Λÿ¹~»áÁÂq\ÿJF^ö]/T¸Xð—rÁÕÎg;¡dꃮúWGn[¥L¿ À'ÅYÝ;다6~òf°ÑmæhÀ_ÀX!5?¾Ü¦WHìp~ Þm™~€O²½â‡‰Í –úJœ­=¾]j%À¥fwÃÃ¥“¸žJ%ûÓ=^§B:ß=ÉRÜ2¼âWõ)-´5u·Ò.s¹àrI–’[£k„‘‰óõ§w*l  “«n`þ0fÜn2â›ëõ:n\"!Û+~˜Ø é «§ËCÍÅ)ÓoðY„âôvOï…5#bG õ.ñ.Mz{ôÎÛC7¶Çá|ÛÈB¶—·ož'ô”®úW†[<)Óo¹J˜ŠêŽbÉ”®…÷fz¼…t²ˆd)nYñ«F<$Î7ÆÚÊmr¦Ÿr“dñÜZþ×ìØo¯°Ë¤U„ÉU?°pK¦t-´ó¬ëjW .d-mýçû³„‘ªeäf±EÊô“|!¡8½½s¾°¦§’‘ý—?^s*ÄøÆ„l¯¼;µJ/ŽØñƒz—‰ÅdŸ‹SžÜ &.Ny‘SßœPÞÞ9_DÓu-â›»WíTØ@V’¬¥·GßT=¥«þ•áEÊô“@.JQmÿë£X2¥k¡í©ŽJ»L:YJ2_iüùíIܸçÄùÆX[™•xߌ0»©qשqöþIk)SÈbÂTTÛÿê jăÚyÖYi—E¦ßr„d)¾9ºHé ú—‡nx,¤Í„âðvOï…5=•ŒìÏõz -ñ¾ÉV~g|3˜Ðõdìha ®ÈÄʲ›íåí¿žõëþÚBâ|=!\íz¾Öt]‹øæîU;Ù@ö“,%·F×jROÆOß6ºÍ6øJBqTÿãÅ~ÄH‡DhûYg¥]fa9@˜¯4¾9‰ñ ÖFZŠ-R¦Ÿ²›P -kŽ.æÅùúX[™•yäa*º~þ ª¥¯{ãi[™ë_A˜\ ƒoOãF:Äý«ÃÍ ãÈBqx{f÷ÂF<$BÛS•vYdúM k ‹§yx5 é;^zØà2±,€Ü!d{ÅÝÉ­`"©kaßl×A<€?I²”¶>Y?W“I-zðêþõB…]äÉš>ò³‹#?|ÕWãäÈÀŸ"ÙÊÛ'¶‚‰d2Þ›éù»ƒUäÉâi^ñÇxˆ/>¨+2qæà‹ ¹ ªkz7l¤ƒÜš¼[a—Ù@Î&WÃÃ¥“˜–Ôâ§ËšÜf|!¡8ªï½Ø$ŒAqöþIk©UÊô“\¡^¿?pqëµÑ…[_äbN¼>ŒjÆœð¯73'€\%‡·wv/lăz¶>ÖZjåÚÀ¦¢úŸ–NbF:ÄNÞ 6¸L"ÓOpI„l¯ì˜ÚªF<·'ÛËmÄølÂìnZ>é=|Ý_[¨@“lewÆ7ÎU-™ïNwVÙeN|Éâi] éˆì¿¸Wí €Ü&YJn=~÷ñè}s½^ñ>‹d-i[?SÞéª*`E¹N˜¯ÜZ95âA‹Î÷Õ8Îü1ÉVÞ>±T5M nOÞ­°I™~€K'L®úŸ–NbFIÈöªîY_ØH‡xàÝèÍb éä¡8ªï½Ø¤¯ß¿2Ôä6à„ìðöÎý{<ܸÂxò† ®vÏì…Ó÷Xmñ˜¥L? |¿„ì¼Ö7Õ’ZìäÍ`ƒËD:yD²UvL턌xPÏÖÇZK,Äø?„â¬é_“$%wÿZKfÒaŒtp"‡ñ°§+»3½A¯L<{„#Ð4¼šÐöôô&éà¤ÌxXˆ[¢ìLõä 3^.ÇÍtØ~×I:8)#—2kÊăÕ§ËH‡ÆƒtMuWyH'%ìÅw†÷äau{@NöK·^žúž`lõƒd1á4¾j.Íö»Î«n–€,ôÕAßï¨à 8Âîo\Œ™[³9ÖVæbkÈ>²¯öÉlXѵth²«ÊÃ9p6„½øÎÐr܈‡äú«{WœÂê€c’½Áޙݴ¦¥w§{‚^Ùê÷ÈYÂh^Mhº–Xn -8ˆ²‹ä©êš ¥5] ì»æ#œá¼rïÕZRÓÕøò‹ÛÅvâ€l"¹+:Æ·RÆ%Ì÷×Ú¸äÎä*kÛ0''öé÷ELYDr–µŽ~¹ã~î8€³%¹+:Æ·ÌщÌ=½î“­~8*á(¹û×ZÒ¸âñå·‹í¤€3&yªº'CiMWÂÕx‰²„°ßy¹’Pu-±:ÒpΜì öÎì¦5-šê®òHV¿…°5ü±S5-¹þú~©“tpd_í“Ù°¢i©­ñŽ -ñ@6}ןÎEMMm¾i/ç€8ÂVTÿl!jlOrc´¥Ô)¬~ø!Ù[óhf7m¤ÃöăJ7éà|û¥›Ï—bF<$>4ìÄä©êž ¥T-½ó¾§º€tp^„ýrãË•¸ª©ñå7/Ùˆ.6ÉUÞ1¾e¤ƒ²ûáñ5¯lõ{äá¸rïÕZÒ èÂ@]!ñÀ…f\îû¯×3—{¾ŸË à| WYû›Ms‚Â_óÊV¿ü?a¿Ü8¼WU%º4Øà'œ/É]Ù5±RÕTèýÃ_<’ÕïÿGØŠ£ŠªÄW†/ÛIçL*öLïñÜï¬p\T²¯öé\$­*‰µW÷¯8HçÎØ¡'³as‡ÖG[Jì“TìÞI©JróM[¹K²ú=ò°Õ?[ˆñ_iºl'¸ˆ$wåƒ‰í¤¢$·'»*=¤+û¥[/–cŠªÄ–ŠlÄp–¶Žm$5µ3ó[W¶ú=ò”pšÿüWÔtd®ÿz!ñÀ…óïµs­XI8K[Ç6’ŠšÚ™ù­Æ+[ýð-aóßz¾3Ò!º8ØPD:°Žä¾ú7ûuÞÕDš@q¸ßªJ%A¨ HÀQ Ú¨Q´Ydq%ƒ"(B@Y$@²TÕ[U~ñŽÎœ3ž3KwO#o¿çÜ¿î=÷öbNú¾Ì-%;Úê<à{Âh¼ðp½ä}ñííçC-®…´úîûËî_Ù¤‘¨&z¤çו¯Cíì¦m&C @)½¡wj­è}ñí—W[tÕC w&—rÒ÷evaôlHSÀ 'Œ¦þ™rå}±‘ó€bÂlžËØž/óËcÝõ\ÕCZ†ž¶*çá`e¼'¢«ÎÀÉ&ŒèÀìV¹²Ìŵ©¾–@5Á¶ó{ŽçËÜR²3¬©ÎÀ‰¦7ôM­]ß+o>ˆBuøžîL.å¤ï9{ó#mA: -u´º®±å|e–í—×ZMf@•Ñ#=ã+®ïYŸŸ_9 ¥PEÏŒ.dÏsö_ßl2ʪ0/N¯—*ç¡üéÑ¥Fƒž@ a¶ÏelÏ—ù÷wÏ…5Õyàߣyðé¶åùnau¼§^W€“IÑÙ­re‘‹éÉx„EP„Ù–Hí:ž/sKw:šê<œHz¤wj­èú^ys¦¿ÉªóÀ¢…;n/æÏsvS‰6“®àèiáswßç¥ïÙ;/¯¶˜cUJ¯?ÿ`å ÒVÖÖÓÁfƒ¶ਉ`ûÍ×ûŽç9û¯o¶cÕJ §?–<ß-­?ìkÐUçà¤SC/vlÏ—ù÷wÏ…5Õyà¿Fóà³m«RXËc]uGJ—m”=ß-®MõFtÕyàfÛÈüžãyNvaôtP¨ÎÀ‰¢×Ÿ_-¸¾WÞšˆ 1€ª¦…;“ïrÒ÷ìÌ««-: €£#Bgo/æ¤W™á¹áV“PåôHÏÄjÁõÜòÆÌåFÖà¨36<—±=ÏÉ.Œž 1ª0š.?Þ(WÎCauü|½®:'…0¢O6+,óîw×kªóÀï–«/w,×sr‹·Ï†(.ކ‰O®¤ç?N_hÐ…ê<ðûDðô/oö×µ3s×c&ÍÀQÐBÉw9Çs­ígWš À± Õu-ç+ÝUÞœý9Jwp„K¤vm×µ÷æGÚLæÀ1¡7ôM¯]OÖ&ã]ujŸ0¢³›e×urï’aMuøƒ„Ñ<ølë[}-%;BÔ?š‰O¦ Ò•…ôdoDWþ0a¶ü}×r]+“JÄL¡:5N u$—²¶+K›³QƒépŒha €##ÌX"•±¤´2©DÌdx+z$>™.8®SHOÄ#ºê8Ô2aDf7KÒµ³‹w:Bšê<ð§|WbKIJ €IÄ'ÒÇuV'â]uø“„K¤2–”V&•ˆ™Buj–êH.emW–6f.7Œ.€cç_=¶9;¥ÇøA„»žÊXRZ™¹áÖ“ àÒ#ñ‰tÁqBz"^¯©Ž@mzSÿ“Í’tíìâ³!®€ãHÑYª €K«ï_=p\§žˆ×kªãÀÿE˜±D*cIieæ†[œŸ¹õ6k»²´9;5˜[Ç”êH.}k³™K:mÀa–k¯v,)­L*3[Ç–‰O¦ ÒuV~í®ÓTÇ Ö½ñÒãReksKÉŽ[ àøFt`v«,]{aôtP¨Î@Ñêºî8p\YX›ìèªãÀ_ ̶‘ù][JkçÅЩç€Ã$‚í7ßìÛ®,o?ý9j0´Ž5-Üyï}Þqeñãß.4èªãPK„Ñ<ø|»,¥½÷úF›ÉupÌé }?¥ëä—ï kªãPCôHßÃõ+  V£ùʋϖ”öÞüH̪óP3D¸óíÊâÇé ºê8ð—‰àé_ö+½VÞšíoÒ9h½žÊXR–?¿:`bÔ­®ûÁ‡G:«ãçë4Õq¨ Bo¼ôx£$¥µ¿0z:ÈuP ¾UÛ§¢S©¶··¨6‡îºÿ!oK;¿ò »NS…´\{µSvœßد÷®¦®4ŽãkŸ;@ÀAK±ˆŠ#VA,ˆ‚ŠAr3\sÏ9{ŸÃ[¬k:®™VE ;&ßÏ+øýõ}Ö£úã>ž¾\Jfô±g§fŠJÎ+€ -!B?üò&ç{¥éî:izß?á«ï{ºçxž>Zhòó:¨VÍ•©­¢wìæWGÚÂä €oeÕtMr[T"ákè{ºçxž>Zhò8¾µÜ]ɹÇ^igº»Nšž#¼8”ÌècÏNÍôD%ÏßBøã7ž*ÏS ýq‡@E±Âícë÷Ø-¬µ‡-Ósø®Éº«Ó;¶w¬³ËÃÍA^•EÈhÏLê}ä2É¡D€ÈðõD¸md5ï{ʼnΈezüÍ„¿i`ñH{ž³÷äZ½äyàk}tTç8ª*‘·¬æÝc¯¸1ѱLÏà{%d´g&e{Ç:“LxT Y×=½S: ]öõæ ¡àëXáK÷ß\Ï-¬µ‡-Ósà _¼á@yž:X¸ÞàãyàkÓíW铃j¿›é‰J*€Š$‚-Ã+Yí¹Å­©®Ëô¾K2Ú3“²]O¾hòó:¨PVM×äfÑõtvy¸9Hì8=+Ü>ö¶prMs«#ma®)€J%|õ}Oöl×uö®7øÈ§%‰ÁWiå¹¥GWë¤é9pfDàâÐRæ¤wÅ­©®Ëô¾7BÆ®ÍíÚ®«Ÿßlô Ó{àìX‘ŽýVp=]n<NçÃ%ծέÞk qIT2!c׿vm×uöúã>’Àiˆ@b0™V®.nOw×IÓsàL4oèCó¶v×Ò<NAÈXïÜ®­µ½¿Ð÷ Ó{àlY‘Žñõ¼vUöͽBD€/÷ÇÍ,·pETazœ=+Ò1¾ž×®Ê.7 _F„ÛÇ~¿ ™×w¸ ªƒ±Þ¹TIk{o¾¯ÁGúøÂßtûå‘ãêÂædWezœ H &Ó´€ÓÑž™w%­ý…ë >azœ+Ò1¾ž×®Ê¼¾Ó$~|ž]º¿öþzfWî¶p=T !c½s©’ÖöÞ|_½üð9Âß4ðòÈquqûaw­ezœH &Ó'ý+l>èŒÐ?>GÖýøë»’ÖÎÁóqŸ0=Îé_ÏkWe–†À§‰Pë½ÕœrUöͽÖ—@52Ö;·kkmïÎõÆ$ àS„/~ãù£uq{º»VšžçJCÉ´ru~}¼#l™ž@Y³j»nµë¾¸Ùè¦çÀù²"—'6 -'zy«ÑOø@CKi[9Ù7¿´¹pBF{çR%¥ŠÛÓWj-Ók(2úÓlª¨TaçÑÕZiz ”¸øÏ¥´­œÌòpsP˜ž@Y¡¶Ñµ¬£ìÃÅ&?÷~gÕtMmæUÚ}r-&‰#'¯ƒ¯áÆóý’rrëcíaËô(¿ñŒ:ð+Ò9¹™wœÒî“k1)LÏ€r!B­#«YG•o5úÿÍ~½v5qµq_{O&á¦Ei´D|¢OÔ@ˆ!(9 $“dfï¾üƒk¹ºúô©µ¼€mÂõû׫ÿ½næaŸ½³êø~cmv$Âm€?X}“‹^iþr¯4]€qœFø -aŸ½³êø~cmv$,Lç`˜è:w£èÚò!›Ë"{ÆŸn»A wóWû-Ó5˜%Bg¦^í郠µùðB·4ߕÜ^ú²‘c]ÂtFÉîK?ºA wóWû-î"üÑuþÁûfp ÷ß\ 1’€ÓLØÃ·WêþßXŸ‰pà/¬Xê÷ª -oçÙD¯4]€A2š|^öbùy2ÊQ€¿áÒÇ?ðÂL<,Lç`ŒÌ®5ü@×Vn ÛÜDø?²wâÙŽª²8Ùg™®À«ÿj~WAkëñÅniº¾C"4x}i_~³˜Ó9"ºÆ~ýÐôõéåÔ@ˆ‹ãOSùó€ÅTN'¼¾´¯¿QÌŒF¸‡ð·¬þ«ùªòýֿ܅niº#dÏø³m×÷½ÊâdŸeº¾S"<2»æè@ï/ß²…é öÙ;«õÃkX/ÌÄÃ\Cø -ýñyÉõ}wg~¢Wš®ÀMfËǾAØÃ·Wj:ÐõÂL<,LçpâDxdv½ázùÆÍ-€¯’=—ž|lù¾WY˜ì³L×pâ¬X*¿«¿µ9w¡[š®€ï˜™~½w¸˜b&¦s8a"rþÁû¦¨O/°¸„ðD×—ÉÜ}q­ß2]ÀÉ¡_^ï©Ào3£^øGV,•ß=ÜÌææÃ±.6pºÈî‹·Z¾ïU&û,Ó5ðá‘Ùõ†ÔþÒô`ˆçpš{èæÛšöu½0sàd4™-{¾ïn?k8A²gb~Ç=<‚;ó½AøaŸ½³Z×¾®­Ü¶…éNÌá œY­+_í/ßâÀ·Éžñ§Û-í»¥ß.÷JÓ5œ+ze¡ìúº¹õèb7'¾M„o,ï)_Õߥãaa:€""‰{ëŽö½O¯¦B\@ød÷…G›M­½ÊâdŸeº€bÅR¹ª§uãýƒs^ø7„50õr×óu£øŸÛ 8%DäÜý†Ö^5wµß2]mâËxú^5ÏxN k`êå®çkgý^""L×@»°b©\õp=ïœc=§‚è›Ûljí–¯D-Ó5Ð6DxdvÍѾ÷éÕÔó 8DèÌôÒžòU½ŽÛÂt´MfË®ÖÍ­¹±.öÐùd÷¥Ç[Z»;ó—{¥éh#Â>;³ZW¾Ú3=âyt:ºù¶vxùj+·†m.왘ßqµnm?¹Ô-M×pÌdÏø³ÖçÃ÷t¼‡ÃG!ì¡[okÊWµ··†BÂtÇJØÃ·W>ß½ýåƒÜ=8ÙséÉvKkwçÙD4]À±’½—+¹Z·¶]èæìÀшÐàô›}å«úêa[˜Îà ;ž~W?¼z{K¿ „¸zpD¢kln«¥µ[ÊþØ+M×pŒd4¹Pvµn~xx¾‹×Ž,40õzÏóµ³v7n³£€Î%ìøÝ5GûÞî‹ký–éhC¢ëü¯Z»•…dTš®àØXÑ+‹eWëÆÆýш0]íÈê¿öb×ÓÊY»·YR@§‘‘{ëŽÒÞn>³L×@[‘ÑÌFCk·¼p%Ê”:•K媮VÎF&¦k =niþó–Ö×ï°¥€%"£™ Gi·òûO1Ët ´)IdŠŸÇ´šK1¦€eÅRùª§U}mv$,L×@»²ú~Z,»J9™Ñk -èD"2šÙh(Õ*/$£Òt ´-þáÒn5ŸŠ1§€N$c©|ÕU^ý]:n Ó5оd4™-µ”r62‰0{ -è<"œÈ¥Z¥l2*M×@v<]¨yÊ­æR1Ðyd,•«ºÊ«Òq[˜®€v&£Él©¥<§˜I„YT@§áD¦èxªYÊ&£Òt ´5aÇÓ…š§ÜJ.cRFÆR¹Š«¼Z!·…ého2šÌ–šÊsŠ™D˜MtNdŠŽ§š¥l2*M×@›v<]¨yÊ­äR1FÐYd,•«¸Ê«Òq[˜®€v'£Él©©<§˜I„YU@'áD¦èxªYÊ&£Òt ´=aÇÓ…š§ÜJ.cVDÆR¹Š«¼Z!·…éh2šÌ–šÊsþË^65Ñ%`®s’n²±!Q J^·à îKE PYd $$étŸÓí߬š™ -LÁ:÷õ îOϳ5“µÙU@x;;³å?ÕáÜpJš®€Vf²ì?ýêb¾‹a„‡ìÊ/VýŸSžÌXÂt „L ϪŸ»5“µYV@X;;³å:œNIÓ5 -ÂÊL–à§®.滘V@XÈ®übU¾SžÌXÂt „ƒL +*Z[ÓY›m„ƒ°³Ó›­ P•b.%M×@H+S(7ý@WóŒ+ dg~¡ª¿Y*d,aºÂB¦rÅŠ -üÖætÖf]a ììôf˼J1—”¦k 4„•)”š~ ŽF:™W@ÈÔÃù#øÍR!c Ó52™+V¼Àw¾ÿsÃf_WŸ°2/¾;~àUй¤4]!r2°…RÓÔáÜpŠ\}2™+VTà7K…Œ%L×@˜üwaË,, „•)”š~ *Å\Rš®€P9™ØÉ²ÃÄBB&sÅŠøNy2c Ó5.2õ`þH~³TèccWœ°úž—š~ Žæ¤¤éa÷Om¶üÀ;øt?ÁÈ®6™¸÷ñÀ üÖæT¿-L×@ØÈΑ…ªüÆ·§×£¬,àJ‹^ò­áºº0Ò)MÇ@è;;½ÙòoÿýÝ3 ¸Êdüî»=/ð[›ÓY[˜®€ð‰tå—ª:Ðõ¯ÓQÓ1ü¢é‰µúɧՖþꊘŽ€³Û-ß÷öÞÞ‰ Ó5œ›ˆ ¾Ùq}ßýñr ƒK€ é]©é@×WǯEMÇpn‘žñ•ã“G;^뉘Ž€P±Û¯~¸¾ï¦k8'»Å¡À‹^_=Ö®­ŒvGLÇpN‘îÑåÚÉŸÕWǯEMÇ@H‰øà›]×÷[Û³Ât ç"ì›3[-ßw÷ÞÞ‰sgpA¢éÇku¨êb¾SšŽà\dçÈü‘òuýëãtÔt „–L ½ßs}ßÙ˜ºa Ó5œƒ°o¼øÞÔ¾»ÿa(!M×@h «÷é·†ö½ÊÜp’¹\E2™+V<_7ÖŸõZÂt „—LÞÿtðkoK…>öp «÷ÙzCûÞA1—”¦k Ä„ÕW(7 îÇ{ põÈÄÐû}Wëfy2c Ó5f2õàó¡çëú×'×£¦c8³hzbíXùÞáüÔ4¡&ìþ© Gkw÷í¸0]À‰øàë–ÖÎætÖæÈàBEºò‹GžVµ•±žˆéÎ(Ò3¶\ó´W]zÔÍÀų[ŽÖÎöì@‡0]À™ˆŽ›ÿ¾±—·bÜ\°HÏØrÍÓÞÑR¾+b:€3‘#‹G'/V[ëáÅࢉøàë–VÍ©~[˜®à „uãÅ÷¦Ò­Ý7ƒqN .\4=±v¬´[ùü %MÇp2™+¸ZÕ¿>IGMÇ@‰¡{'»Û(ú,aº€Ó³zŸ}«+í¦c  «÷ùzã×ð~bxWˆˆß}·ÛÒªQžì³„éh29¿à½šópzm¹Í3süún»’Ž€0bˆÿT|`ñPŸ5_f3é%+1R(›³f}cªË–ŽàZvçäz58 *«ãIK:Â)Ú¿°çùϳ1%Àu.«Éa€ »sr½œ•Õñ¤%À5¬ÄH¡lΚõ©.[:BJÅõY³QœÍ8Ò1\Ãé~´åM}ôún»’Ž€°rz¦ÿãWCqÆКT|`±¤›A£8›‰HÇ@hY‰‘·'çk\ûø eKÇp%»sâCÕ4ÍéÊxÒ’Ž€ðŠöÍï6šMoïiTIÇp•ÈÍ¿v¾Õ~>ã¬@ŒÝùLJŠišò»û K:€+X÷ÞëfPû4ÕeKÇ@ˆ©øÀbÉoîöãG:€+8釛õ ©^ÝmWÒ1fN÷ôçóAö—ã 2 õ¨Øíç^¸ÅÙLD:BÍJŒ¼=ÑMS]Ÿì´¥cø•_=Õ.¯Œ%-é5í_ØmAcw¾/*ÀoœÞÙ¢ko?Ÿ)é7;5¹^1üæ^‡%À/T|héÐLmãaÚ‘Ž€SñÁ—%ï|“7sÝl2 ÕØ©«&ð–‡;,é;§÷ñvÝÞÁóÛ1%À%*Ú¿°×÷Ë“›é=+9¶RÖ>]OZÒ1\b%F 'ç/UY›¸aKÇ@è©X6¿ïÆ-Îö:Ò1\âtO®›Àûº8WÒ1»kêSÍþáÒ³ h)*vçï¯^`ê[3=Žt  Mµ/ù©®O¦lé~b%Çߟê@—ßÝOXÒ1€¶¶ÈÍ'_Ü hì.ôG•t ÿrzg‹® ¼ýg·¸(hö‰µŠü“·#–t ?¨øÐÒ¡˜Ú§©.[:Ðöm™KÞù2oæÒŽt ?Ø©Éõª ü£åáv%øÆéÙª›ÀÛž1Í€V¡¢ý » p¿<¹‘Ž\°’c+eèòÊXÒ’Žà;«ãÞ›c?ЕtÚÒ1€ *–Íï{©oÏô:Ò1|çt=ܨ™À/½Œ+éÀ?œôÅ8{¥ÅÆÐ"TôV~ß Œ»ý¸×‘Ž|guÜ{s캲6qÖŽà‚•}WÖ>]OZÒ1€ïT´a·÷Ë“LD:€ N÷ôçº1ÞÁóÛ1%ø/;5¹^Ñøj(Î<ZŠÝyqà]ÛÌu;Ò1€T|èÕáù>WÖ'S¶t ç¬äøjÙ7þÉÛ‘K:ð¯Hf®X7ÆÝ™ï‹H·pÎé}¼]צ±û´?*Ýø‰}câý©o¼£åá%@›Š¼,yFW?ýÙeKÇ~r¾Ð‹_Yh@˰;'ÖN}ã-w(éÀÏœž™­º6ݧýQéÚ"™¹bÝwg¾/"ݸÄJޝ–}ã¿é°¤c¡§âƒK%ÏèÊúdÊ–Ž\¢bw^4Œ®mæÒl4@šÝ9ñáT¯´4WÒ1€ËœîéÍš6ý|6ÊH„E2sE×·8—‰H·~a%F '¾ñO -£ K:r*>´TòŒ>ý0ÑiKÇ~¡¢Ùü~ÃèÚf.íHÇBÎNM®W´ñJKƒq%ø•“ÎmÖ´iìç³Qf *Ò7¿ãj]/Îe"Ò-€ßX‰Ñ‰oü“ÂhÂ’Ž„šj^>ò´_^›è´¥c¿QÑl~ÏÕ~u#—v¤c¡f§|¬øºñuq ®¤c¿sÒ¹ª¯Ý½|6ÆPEúæwêÚ¯mÍô:Ò-€+X‰‘±§½ãÂý¤%1Õ>¼|ØÐÞÉê-IEo=Ûuµ_Ýœîv¤c!f§|¬øÚ=xq'¦¤cWqÒSŸ¾Mõ^>ËTäDúæwêÚ¯}~ÔãH·®duÜ{säiï¸0š°¤c¡¥Úï¾>lhïde,É@kRÑ[Ïv]íW7riG:Zvjr½âk÷àŘ’Ž\ÍIç6ªçc½—ÏFk€ÈÍ'źök[3=Žt àVb´pìiï¸0š°¤c!¥âCK¥†öËïÇ“¼´*Íæ÷\íW7riG:Rö‰µ²¯__Æ•t à:N:·Qõµ»—¿e®""™¹íšï׊s™ˆt àZÿa¿nÛ’ØÚ8ŒkÆA5JÉrKºËÐjïÒ²¬Ü>d ©© À03kÍâþþïîÚïw‰Ç!+áü}‚óÕÿ:.+9·U×ÿÓõ­‡IËt  ' wf£ªZÚÛ[Hs‹à÷%œ©×g²¥ýòÓaÛt  'Y »žn©êÆŒ+LÇþ›=ü´ìë–<]›tl€öèó¯A«½‹›nü„•|ø©µ¢Ë³ýü€Î}÷Þ«–ööÒ1Ó1€Ÿ}SoÎdK7÷²Ø€Î³RóÛ¨¥ªÅ¬+LÇ~ÆÎ,øºž¼›nô ;³rü8D/9Dð›³RóÛõ¨¥.Š÷Ât  çˆ¾©õ3ÙÒÍýǃ1Ó1€Ÿ}÷Þžßloo1m™Žô+9·UZÑåæl¿0ø9{äÙa [áÑ‹±¸é@ϱ‡Ÿ–}Ý’ßV'Ó-€_°í6tKUßO»Ât  ÇgríT¶´_ZŽ™Žü‚pg6ªª¥;¹”e:ÐcDÿì‡Ë¨Õ>=Lr…à·ûë(léàp%c›nô˜ØàŸûžÖòìÍTŸ0ø•Øàâçg{ÙtXüÎßÇŽüƒåŒmºðK"qóB騶5—´LÇzŠpg6ªR«úö|Š·€3þê$ÔQ³ôtØ6Ýè)Ö@n§iyþnÚ¦c¿z²ßŒtømmÂa¸d¬ú‘ö¿>›n\Õÿàã¥Òêbó~‚ßÐ9¢ïîú™ÔQco!m™Ž\p&_Ÿ†:ò>/¦c¦c=ÄJÎmÕ”VÕb6!LÇ®ÂÎ,ø‘Ž^ŒÅM·zHlh©Ôü~€N^;¦[Wb¥æwê‘–•÷Ó®0èÎøêI¨£æþ“¡˜éÀ•wú}E꨾3Ÿ²LÇz†Hd‹U¥Uíãƒ~îÜñ±GŽüƒåŒmºÐ3¬ôÂ^#ÒòìÍ”#LÇ®&–^üìE:<}=Éx:Å}öÕב¸2b›n\‘HÜß¼PZ]~˜Mð;:CôÝ}{.uÔØ}4`™Ž\‘p&Ö¾…:òöÿLÇLÇz„•œÛª)-«…W˜Ž\•=œ/û‘Žÿ‹›nôˆØÐR©ùãø¼¼Ãñ€ÛÃJÎoו–ÕiW˜Žôg|õ$ÔQsÿñ`Ìt àÊDßô»s©£ÆN.e™Žô‘È«J«ÚÇýÂt àêâc/¾:ò–3¶é@O°Ò »H‡go¦~¸EbéÅ=ïû€Ÿ®M2à€N°GŸúQ䮌ئ[m‰ÙÍ ©åÅæý¿àæ gjý,ŒT}÷Ñ€e:ÐáL®} "ÕØ[H³à€›gõ?øx)#Y-d]a:Ð;“/7Uä>µM·z@lðñ~CEÁñ«ñ¸é@[¬Ôüv]EáÙú]G˜Žt¿øØ_G~¤š_–†b¦[mîÌF%Œä姇ý–é@×î½wçßïNmk.ÉÝ€[&~çåq)ïË“¡˜é@׳’üS“QxöönŸ0hOlèÉO)ÿøå¸é@׋ -•<©š‡ÏGmÓ-€6Yý?]Jž¿Ÿv…é@·‹¿<ö•¬ï-¦c¦[mÎÔúi díŸ?’–é@—îÌF%TáŇل0h—=úì°©¤÷ei(fºÐå¬Tn»&UpúfÊáw€[ÇJ/îÕ¥ò_ÇM·ºœÉ—=©š+#¶é@ÛDböÃE¨ÂJaƦc]M8k'¾’õÝG–é@Û„3õú[ð}Çwr)vp“„›-VCV‹YW˜Ž´ÏY.{Rzå|Æ6ÝèjV*·S—Ê?Y›pøà²r@GØ™|Ù“Ò+ç3¶éÀ57[¬†*¬³.¿àægbíÄW²¾“KY¦c×À’:C¸Ùb5Paµ˜u…éÀuØ™|Ù“Ò+ç3¶é@³R¹z(ý“µ ‡ßn¥S^û1å«L9àÙ™|É“Ò+å3¶éÀµ7[¨2¨².¿à¦gbõ¸)ÃÚv.e™Ž\ [èáf •@•BÖ¦c×cgò¥F6JùŒmºе¬Tn»Êæñê„Ãï·cè;“/5°QÊglÓ-€kn¶P dP)d]~ÀÍÎÄêqS†µí\Ê2¸&Öpó„›-TT -YW˜Ž\—É—¼0l|y:l›nüŸý:_jb[Ã0^«§ÂBP@DDvÜ 2Èb„0Æ$dèsÿpâ©snÀô®U¬z~Wðüõ}õÊ~}Ò{òîó´Çv€'Ë^ùï9¿Ý.ºº[†²Ç7.ƒ8¯>L8º[L Í—£^Ôøö|H莘ÉÚ¾•½¸{º2bénü1á=ûz¯zq§²œåžþ bèù·FÔ‹ZG i¡;ðçœüf-ìÅþÅú˜­»`$+ûªÒ‰{êáë3íO˜•{[íÆ½ðæSÁÕÝ0’=öîÜᅳÚVÞÑÝ€H/~oE=UߟM Ý1¹…ÒuØ‹ý³Õœ¥»0‘šÝ««^Ô>~™á¢’×ÿ4ûÿû4i¡;0·Pº{±¶š³u· $Ò/ÛQOÕ÷gSlxÒìѵs?î…µ­IGw À@VîíÙïGs]*¸º[±2K?:qO=|}æ Ý1ó8ùÍ_a/öÏßÙº[©¹ƒFÔ‹ZG i¶ iÂþ|'{Q»ò*kéŽ ÆÚ¾•qÜ=Y榒&†^6U¬ßž Ý1€Á8ã—A—ãŽî€q¬ìr¥ÅáíNÑe;Àg ¯œtúGýæï)Ww À8öØú…EÁÕ‡ Gw `@"½P~T±ªÌ¥„î€iÜBé:Œ£Îé›Kw `@›ٽ—qÔ>^ÊpÕɩٽºŒÕãÑBZèŽ Êü«ÆQ·ºš³u· #Ò‹ß[*–»3Ûž<{tí¬EÁ¯­¼£»`käÍiGEA­TàÉÀÓge–Ž[* -ï¾L{Bw À,ÎćK_©îù»1[w ``"5wP—‘l¾b;’$ÜâöM©Ve9kéŽ Œ»ø·ˆÔÜA]F²qøbHèŽ Ιøpé+Õ=7fënÅʼi÷O{­Tpt· bçV«ùW›y ˜A¤ÊM…÷»3žÐ0‡“ß¼ò#Õ©®ælÝ-€Dof÷>Œd³<Ÿf;’"ÜâÎm©ÖñRÆÒH†S(Õú·½ýóõ0·‘š;¨ËHÖæRBw öØúEW©îùú˜­»` +³tÜRQp»StÙ`køõI§Ük¥‚£»` ;·Zí¿ÿj3Ï{SˆôÂÑ£ŒÂûÝO莘™øxåGªS]ÍÙº[ ÞìÞCÉfy~ˆíH†p‹Û7A$[?–2–î@RÜ©O×A¤Z•WY®; "5»ÿª°~ø<%tÇ’âŒo\t•ꜭں[†éÅ£f¨‚Û/Ï<¶ÃY9iKå_mM:º[†øÿsùÅs“ˆôâQ3TÁíçiO莘ÁÞU²sönÔÖÝHŒHÍî=*¬};bënA ÍÿÓUp¿;ã±À vnµÚ‘ª{±1áènÁʾúђʯ• -®î@‚¬ÌÒÇßþÓ;·VíHÕ½Øwt·$†^6BÜïÎxBw ÀN~óª«dûô툭» á=ûz¨°YžO³ƒnqûÆWòñûËŒ¥;$·Pªõ/|«²œåÂ'¼Ù½û@…õƒ¹”ÐH’=þþ¼#e§º6jën@¤ÊÍPú·Ÿ§=¶ÅY9iIÙ½ÜÌ;º[°²Ë•V(»W[“<0‹H/5Cé_o]¡;ðôÙ£kÕv¶ÏÖÇlÝ-€D‰ÔÜþC ƒû½Y혓߼ìʰõseØÒÝH”ð¦wn|4Ê i¶`PÂ-n_û2l-òWÀ4ÎäÖUW†­ÊrÖÒÝxò„7»{çËàa.ÅvÃØcëgí0lW×FmÝ-€'O¤þia÷fgÚc;€a¬á•Êcv.>æÝ-€'ÏÊ.ÿøýV.·&y+`‘^,7‚ð?ì×iRɆáȃ˜db0Ð 4“±ÍlŒ X f„@HªªÌ¬ÚÿZ}ûnÀŠŒªxŸ¼¿Î‰OUwŠ®é@êÙƒ«Wa‡×kC¶éÀ&ü©ãºNôËѤ'LÇÒÎݺ“I\,õ[¦[˜ðÆ÷žT¢?g{Ø€7r‹;U•ÄÍÓ¹_2Ç)lßË$Ê }–é@Ê oòèE'º~<å³ s졵›(ŽÃ«•¼mºr¢çýφNÔÓÞ¸Çv€Ì±–.ƒ8‰n7GÓ-€”³z~µŸŠ|Ø.ðT {¬Þù³fûÌ?~sM·RÎÎ/WÂ8‰nÖ‡mÓ-€?NøÓ'¯:QÏž0H7gxã6Jâðòã€eºðÇ oâàY%úõdÚg;ÞÄ}÷ùA&që|¾—íäŽ}ylßùæwð6›د©D7Nf|a:ðç9#›·Q—KlÀ[긮õ|XòØAv~å*ŒãèzmÈ6ÝH5‘›;mƉ¬~sM·ºÀê[(íCÿ©à˜n¤šÕ¿xÑ~)ÑÝÖ(/²HäfO›q¢ª;E×t ÕìÁÕ«0ŽÃ«ÕAÛt   „?õ­®ý|Xò„é@š9£[wQ‹ý–é@o|ïI%ºq2ã³oàŽ}}”‰nžÍåø(INaûA&që|¾×2ÝH1áMì×d¬êß§}¶d’=¼~Æ:¸\`;:'ü©ãËÚÁ„Çv€L²óË•@ëðúï!Ût ÅDnö´¡ãèñ˘kºÐVßB¹Õ>õwŸFÓ-€ûÿC o7y(Q"7{Úб|Ü)º¦[)fç—+ÖÁÕêmºÐŸ:~Q±¬LxÂt ½œá›0Ö­‹ÅËt  +„7¾ÿ$cUÿ>å³s Û÷Q¬›çs½lÈ(÷Ýç‡ö­oœÎæØ€N ¯¸[•±z=™öù'QÎÈæmëVùC¿eºZÂ/=«X=•<¶d”=¸rhTVò¶é@j‰ž™¯*–ÕÝ¢Ëv€Œ²ú?\´tÞlŒ8¦[©eõΟ7uÝo\Ó-€.¹¹3Ž=à¬Å‹–ÖáÍúˆcºÐ%Ÿ>©«8ªî]a:VöàêU uPYÉÛ¦[]"¼ÒaMjY;,yl@‡œ‘ÍÛP«fùC¿eºÐ%Â-îß2Ë^¿ ´j–?ô[¦[)%¼ÒQMjY;,ylÈ,{p¥ÒRªUYÎÛ¦[)%ü铺ÔÑãnÑe;@fYý‹å¦ÒÁÍú°cºR"7wÚP:¼ß.¸¦[]cõÎý{îï>Ø€ÎX}ÊM¥ƒ›ž d—è™ùQ—:zü:æšn¤”_¾l)Õª¬ Ú¦[]#üÉ£çövxÚŸð„é@:ÙCk×V­‹ÅËt  k„7¾W´|þ6é³qF·nC­gó½lÈ0÷Ý—‡ö½ý1ÓÃvtä¿_"_¾ç—@–9£[·V³¹^Ët •„7¾[”|9žòÙaöÐÚUKÉfy±Ÿíè„ðJ‡µHEOÛ2ÌÎ/_6¥l^® Ú¦[©$üéï/R…;E—ífõ/üjHÕºZvL·RIäf¾JÜmx%e"7wúïÁ¿Ýåà:aõýuÞªu½1Â+€,=3'u©ÂûÏc®é@*ÙK妔­ÊÊ mºÐEŸüö©°º;î Ó1€4²W*-)›å¥¶d™ð&öŸ"ÕKl@'œ‘ë–’ó¿ú,Ó-€.îØÎC¨äË÷iŸíè€Søt(ùús6Ç'€Ls -Ûÿ]ü÷=\|@ܱ¯¡’õïÓ|È6gd㦽gó½–é@ - o|¯©¨v4é³ Óì¡ÕJKÊfyq€íø}Â+Ö"V÷&<¶dšÿxÑlo‡Ë•AÛt …„?uüÉàáë˜Ëv€L³ú~5"Ù¼ZvL·RHôÌü¨G²u»]à‘@¶‰ÜìékûäßlŽrò¿Oäæþ÷H®7Gx$m¢gæä%’ÁÝçw®é@ -Yý ¿ÚÛ¡Yù{È6Ýè*áO}{eð°St…é@úXù(j\|Ì[¦[]%¼ÒÁS(Ãêþ„Çvü¶د³¥(- £‘Y"…̃¶ÒÒ"j#8Ë " –P3ïÿ'Ë>á}ffTåZO°¯ö_ndù¨µÃþ“!íÐß‚âÌF%j‡êǹ’v ¶üØ‹ãæu§¶ûpÐŽô¹ÂÔÚYëºsñe^;_~üÕiÔWÛ÷ì@ŸËOüÿç/øùÄW˜\;k]w.7çKv ÏåÇ^GíPÛy0èçWPœÞ¨´®ÛÕOsÚ ßåF–Nmïñí0í[è9AqöýÏöuûçûÙ¢vèsáðÒa½Ó©<-kâ -JsŸªíëVecZ;ô»phq?j‡Æ×gwriß@Ï Jó›—ëÖÙÚd!í[¸aáࣽZçºñmeT;W0°°}Õ¹nž¾ϧ} 7,¸õ×N÷韼ôôˆ­;#µhFŽ_Œ™€~ ,l]FOÿôõ„§@\áíG{Q;4ŽþÉ¥} 7,(Ýû|ѹn­MÒ¾€ž–êNýðïá0í[¸aAñî‡óöu»²1S Ò>€^/vÛáàiY;ô» 8ûîgÔ?ßÍjâÊ,mt:µ½Ç·µ@¿ ŠÓë?Z×íꇻ%í@Lù±•oN»¶ó`Њô½Âä¿ß›öÅç{Ú€¸òã«ÇQ;\mݰ"}/?ñò¤ûõ7|}âÊO¼ê®Èåæ¼èùñÕãn;lß¿åëSají{³Ó®~ºW²"}/7úü¨µÃÎÃA_€x‚âôúV§õóýÝ¢è{¹;ÏëívmïÉP˜ö-ô˜ 8ó¶µCåíŒvèayé µÃþÓ²v ž 8û®Òl7lh€ Ë‹ûW­Ví`iX;OPšûxÞl7ÎÞL´@ß o?Þí¶Ãáò\Ú·Ðc‚Òüç‹V»qúz²ö-ܸàÖƒíËV»~´2šOûzLPZØìŽÈñËq#Ðÿ‚ÒýÿÞþ o€˜~ȪÈ€ ´àíLpëÁvwDŽVF@ÿ JóŸ/¢·òjÂÛ žðöãÝ«V«v¸|'—ö-ܸ 4÷ñ¼Ùn|_›*i@o Ë‹ûQ;\, ‡ißÀ гï*Ívól}º¨ˆ%,?ýÕûOËÚ ÿÅ™Q;üؘÑÄ–—þk‡Eí¿Ûá­v ¦Üg‡µ¨öž i€þ§ßœEíPy7«ˆ'7òükÔ—;m@&ÿ=m´›ççJþ>±äÇV¾ÕZÍ‹­…ùñ—ÇõV³úåžv žüØ‹_í°9oC²Àß )-þ>IåÇW»òņdÂïvXð÷ˆ§0ùú¤Þjžš³!Y}~Ôm‡­û·ü}â -Óo¾×[Êû»E¹‘åëVórçáí0í[è)Aqfý¬Ñjœ½ÑY/í_6›—»O†´qDí°ñ«6´@&„åŽn;ì-–µqh€ŒÑ$¤2F;PÔoµÃºvÈí@BAñîûJ£U?]›*h€ ‡ïvÛaiX;GPšûtÞlÕO^MÒ¾€? |¸}Ùl].äÒ¾€ž”æ¿\4[µo«cù´oàîouÿÑóQ€8¢vØüÕ/´@&xü$dB2Æã !1? ™€ŒñøH(š/ÕFóêÈ„dƒÇ@B& c<~2!ãñP0°°Ù¯+£& ´ ƒmEry¸<’Kûþ€ tïóyÔßVǵq„CvªÆÅþÒ°vÈ‚ 4÷¡Ro^¿š(¤} =%,?Ù­ÖëÕÝÅr˜ö-üAqöíY½Q;Y›*i@/ùÝO´@&ÅéÓZ£vº>]ÔÄ 2&j‡uí@Ú c´ i€ŒÑ$¤2F;vÈí@BÚ c´ i€ŒÑ$¤2F;vÈí@BÚ c´ i€ŒÑ$¤2F;vÈí@BÚ c´ i€ŒÑ$¤2F;PÔ;ÕZ­º£²!(L¿9½ª_¾™.hbУHH;dŒv !í1Ú€„´@Æ…™õïQ;œ¬Miâ‡owÛawqX;dAPœ}wvU¿üöz²ö-ô”pðÁÖy­^ÝûûN.í[ø‚ÒÜÇJ­~ñuu<Ÿö-ô”``áËÏhBþ5!Y”î}ê>þÕÿ±_ŸÉM,hF«%µdãœ3`0&Øøb0œsVê–ïþ2-¦f­*M—[ç¬àûõ½õŒ{ü¤T–ÿNÈWÐ’v8ÔtÀ„ô€™€ãñÐ!Ðc<~:”LÈAýùßèê« è ?2!=Æã C& ÇxütÈ„ô˜ oéðïã_÷øH%¨,ü®%rýÏ„ èAÿ›£Fòø/¾Œ³¾€%(Ïÿzjýß~Ÿ -³¾€ÿƒÂÀ»ãÆósóìã°v œýñÐzŽï¶§Ã ëcè¾ÂàÊI£Õjœ~,d} /JÎìÜÇÏñýÎŒvèÿk‡“í@*Ú Çh:¤zŒv CÚ Ç?h:„ÓÛwI;<ü˜Õ½ 8üñ,i‡úñ»í@*áÔ÷Ûè¹õøs®¬z@qôËEó¹U?|ÓïïJiâŸëdCªû ÐJãëWÉ߯,õùû¤RÿúwCþ,j€^àïÐ)Ð[ü}:eCzKi|Ãß #¥±µËö†¼î³!= 4ùí&znU÷´éG>7ž[õ£åW…¬o ë‚pjë6zŽ÷æÊÚ€T -C«§V«qü~@;ä_ÎlßÇÏñÃîl¨H¥0¸rÒn‡“•AíI;ì´Ûá~gF;Žvè)I;ìj:RxwÜn‡ÓÕ!íAynï!i‡»­ií@:Á«·Gõ¤Î?³¾€® ÊóûOñstóm²”õ-¼0AßëƒZÜj\¬€ü *‹¿«q«yõuÜÛ dDþ$#Ò¸\3"ùçíбdD~·Gäjc܈ä_Ð÷ú ýö/ÖF½}Ò Êó¿ãVóúÛd˜õ-t]Ðÿö°–´Ãùç‘bÖ·ðÂåÙQ+ºý>Y@·Þ×ã¸~º:TÈú^˜ œÞ¹KÚán{Z;ä_apå¤Ý'+ƒÚ€t’vØj·ÃýÎŒvÈ¿ÂÐêi»ŽßhÒ ÂÉï7ÍVô°7WÖ¹WùtVoŵ£åWÚ€”Jÿ\7[ñÓþBE;ä^iôËE£W^÷ùú¤TûzÙ^‘?‹Ú ÿJcë¾>*­ý]‘ƒ¥>+{¥ñ«äë?í/hÒ*Ž|>¯Çqíðm¿Ƚpró¦ÙŠöæÊ¾>)‡WOëqT;z7PÈúº,§¶n›qt·;jR* ¾?®EQíxeP;ä]ÎìÜ5ãæíö´v ­ÂÀòQ-Šk§‡‹Yß@—åÙ÷͸qý}R;VÐÿú Åõó/£¥¬o Ë‚Êü¯Ç(n\mLxú¤ô-þ~JÚáb}ÌŒä]PYðôèTP™ßLfärcÜŒä]пtPMžþù—QO€´‚òÜÞC7®7'ìo Ë -¯–Ûípöi¤˜õ-¼8A8³s׌›·[Óaõ1tWaðýq-Šj'† -YßÀ‹„Ó[·I;ÜíÎh€¼+¯ž¶ÛáèÝ€v µpróºG?çÊÚ çŠ#ŸÏêqT=xÓïçZi|ã2Ù‘Çý…ŠÈ¹ÒØúEòóŸþ,öùù¤V[ûïŽ,Ù€¼+Ml\6âèq¾âçZqäÓY-Žª‡o_²¾€® -ÂÉÍëFܼߛ+kR+ }8®EQõèý vÈ· œÞºiDÍÛí™P;ZaàÝQ5i‡“CŬo «‚òìî]#j\oNiÒ úß<5£ÚÙçQíoAyþçC3ª_nL”²¾€(è[üý˜´ÃùÚ˜!È· ²¸ÿ÷å¯{ùt ¨Ìÿ|hFõË CoAÿë?OI;œ}õòH/(ÏîÞ5¢ÆõæTd} ÝTX>¬FQõdu¸˜õ-¼@A8½u“´ÃíöŒvÈ·ÂЇãv;½,d} /PNm^×£æýÙ²vȵâȧÓZÔ|:xûJ;ÐÒø×‹¤~-T´@®•ÆÖΓvxü½ÔçãÐÒèKÐJ—õ¨ùðs¾âãÐâðÇÓ¤ž— -Yß@áÔæu#jÜíΖµ( ®U›ÍêÑÊ vȳ œÙ¾mDõ›­éP;ÐÂÀÛƒ§¤N>³¾€. -Ês{wfíêÛd˜õ-¼HAßÒþC£Y=[+e} ]T~µþÅú¸‡@'‚ÊüÞ}£Y»Ø˜0%yô/ý~LÚáìó¨‡@'‚òìÎm½Y¿Úœ -ƒ¬ { -ËOÍæÓñêp1ë[x‘‚púûuÒ7;3eícÅ¡•ãv;ü‡ý:MJdÛÂ0Ù‹ ""%–R¥–µ„²Wé³Ù;ÉùOåfÝ8gÄ2Þgï¯oÅúhätÕ-€Íd•~e´pŸj¿¤˜Q¸ì‹háw¾gØ{ÀRÌâÕ0¾%Þk}‹[)ößÞ¿9ì=`)Fá²ß¿s²­«n¬UºËh1:´ùK1v~ö‚( -º?rü^šUù3 £pzw`ñ;–¢gOÞý(ŸyCu `m4»ú0_DrÜ*ó;–£eê¯Þ"ƒæž©º°6šóí%ž{9¼.2÷€åhNíÉÉèfŸcé¥e¾wüE$—æ°Í®ÞÏÂ(œ´Ë–¦:°.z®ñDQÐ;Ϫ[J³ÊíIü;Ìî«6¿¤–‘?ÿüû;|œfuÕ-€Meîߌd´pŸk¿¤–YhD´ðߎ3¬=`IæÞ¿×¤Î5€ô2÷o†2Z¸Ï5‡µ,ÉÈ_|Š( ->N³ºêÀšhV¹= £pv_µùKÒs`½³Cu `M4»z? #9i•-~À’´Ìñ›·XƒË¿¤•æÔžÝp!†×ESu `cý='sÎ ¤›–©¿yá"è_ Õ-€¥Ù÷S¹ãVÙRÝX=Ûøð ¿w¶ÃïXšUnãßaz`kª[ëaäÏ{Aü;¼ŸfuÕ-€Íe¯‡bΟk¿¤”Yh‚Eè½Ö3l=`iFá²ÿ÷ž¼sO ­Ìý›¡XÈùSÍaëK3vκ~zאַº°V¥=¡˜ü©ØªSLß>íxaèwÏó†êÀZhöáÃL†bô»d©nl0mëèe.àß,˜ª[kOýóß©ü³ÇÔ–§Ù‡³ø  oö-Õ-€µÐ·O:^ú½‹¼¡º°É¬J{,B1ùSáw€t2r??âßÁ{oätÕ-€Mfíß ƒPÎMu `ŒÝËO?”îëq†¥¬À,4ûñïà¾Ô·¸(Jfñú+^úùSÍaé+0òç]? ½N#««n¬ƒUnE(¦w¿`zö´ã…¡ß=Ϫ[k ÙÕ‡© ƒÑmÉRÝØhÚVýÅOJ¿¹gªn¬¶uô2‡~ðCX‰f>Lã“2ü]²T·Ö@ß>éxaè÷.ò†êÀf³Êí±ÅäÏ¥©n$ÏØ9ëz¡ôÞ9]u `³™Åë/_ŠÙcÍáw€2 —Ÿ¾”ó×ã ;X‰QøõéIÁM€”²öo¾|)¦5‡¬ÄØùùîJé¾ÿÈéª[ɳ*íq ƒq»b©Nl8}ûû«+¤×ûµk¨n$NsjS!ý¯›}~Àj4çÛÓ,>*ƒ«¢©º8-sü2Òû¼,0ó€ÕhöÁÝDÈ`Ô*[ª[‰ÓswWJ÷ã玡º°é¬Òí0bòpèhª[I3v/z^ü;¼lëª[›ÎÜkö})æ/õ ¿¤ŽY¼Ä+?{ú¶ÅÊVdäϺž”n§‘ÕU·’f•[£@ŠÉ]Õæw¬HÏž¾¹RzÝ‹¼¡º0Í®>L„ †·%Ku `ãi[GÏ3!ýÁUÑTÝH˜–©¿Ìã‘ï7÷yÀª4»z72µÊ–ê@Âôl£ãJéuÏò†êÀæ³J·Ã@ŠÉCÕÖT·’eä/ºž”îÛiVWÝØ|æ^³ïK1©gø eÌâÕ ÞøÙóÑX™‘?ëzRºFVWÝH–Un)&wU›ß°2={úæJéu/ò†ê@¢4çða"d0¼-Yª[) m=Í„ôWESu QZ¦þ2'¾ßÜcâ«ÓìêÝ$Á¨U¶T·¥çW÷ãlÇPÝH«ôûËÁäþÐÑT·’dìþêyBÌ_¿oëª[i`î5?=Ìžë~H³x5ˆ~úXsXx@ŒŸ®óN#§«n$ɪ´F¾ðGíŠÍïH€¾ýýu¯÷k×TÝHæÔ¦ð7û–ê@*ħåñÿ§åšÓ©¢o¿Îáõ~횪[© Y•öÈþ¨]±5Õ1€äè;?ÞçA0ï4rºê@:˜Åë¾ø“Ço¿¤ˆQ¸ì¹A0}®gØw@"ŒÝ‹î<f¯'Ûºê@r¬Òï//ðÇwU‡ß={ú6 ‚ùûYÞPÝHŒfWïÆ~à}ÝþýºmJ[ ã0>»!„§j´¢µbµE«ÅZñ"(1$»Ù|ÿOsì™9ç½’Î;×ï\¯îÿÜ¡o»àQùt¿4¹ž}ß(ÙnæÏyO8ï€"‰òÇë“g‹ŸÛ¾í@adýËCšçjròÁ³Ýp…öçYnâ›N l·ŠâµNŸtnÒ߇5i»à -¯ýïº$Ã*¿8£´õcžåfy»pÝ‘ã±Ês5>nHÛ-€‚ˆòÇë“gÑÕ¶o»à Q=&&×Ó³¶g»PQÙ¿[¾÷ç‹Í’í€3D°;ˆMž-.Cßv   ²Þ¥y®¿5=Û-wøáå"ËM<Ø „í@1¼æ·G•çé¨[—¶[îðÚgS›dxPåwG”6/ž_oûòn/à¶ -#Çc•çj|ܶ[…þÎU”åYtµãó; -#ªÃÄäzzÖöl· -!*ûwË×Óþ|±Y²Ýpˆv±É³ÅeèÛnBÖÒ}L³l9ü\cg`Í•¶~<«L¿ÜìU„í€{dãh”dY2þÚôl·V"ʻבÎÔóeèÛn8HTöoc¥ÓóÍ’íÀJdõàþÏI:ksÒÅå«…ÊÔâj§,lÇVá}8~H²,}iHÛ-•6ϧi¦ãÛý -¿¬µÒÆ÷§?ýîS•‹ø ¼æÉC’éåè¨!m·VQÞù9W™Z\í”ù¬}¾µNOÛ%Û-€ˆÊþí‹Òéô|“ƒøD°ûkñ:5Ï—Û¾íÀ -dãh´ÔzùpÒôl·Üäo]LS­¢Á^ l·Þ¯Ô>}L´~¹ÿ\“¶[nòš_ÇK­ãa·ÎÖÀóÃþsªÕâ×n l·Ü$k‡ÃXëdÒky¶[ï&‚Î R:^lù¶[Žúolfý±€õ%ëÝa¬u2þÖôl·\å‡ýYªU4èÂv ོVo’hkÒv ÀUÿ¯M·ÎÚÀÚòÃþ,Õ*ta»à*Yïc­“I¯åÙn¼“:ƒHétÖ}Û-g17àYïc­“I¯åÙn¸Ëû³T«hÐ „íÀûx­Þ$Ñ:vëÒv À]ì ¬??ìÏR­¢A'¶[î’õî0Ö:™ôZžíÀ»ˆ 3ˆ”NgýзÝpƒkOÖ»ÃXëdÒky¶[.óÃþ,Õ*ta»ð^«7I´Ž‡Ýº´Ýp‹ëÎû³T«hÐ „í€ËdýpkLz-Ïv àDÐDJ§³~èÛn8íÏä,˜X_²ÞÆZ'“^˳Ýp›þ˜¥ZEƒ½Š°Ýx»R»7YjëÒv Àm^ëÛx©Tüû¨ÁæÀ*o÷g‰J×@Øn¸MÖï_”ZNNÛ%Û-€7•ýÁ"UÉÓù–o»à8ìþš¿ŽÎìr»l»ðf²qô;V*~8iz¶[®ó·ÎŸ•.nö«Âv à­Jg“¥RÑÝAMÚn¸Îkž<ÄJÅ£/<Û-€7åŸÏ‰JçWa;à:Y;¸‹”Z>~ß(Ùn¼‘¬~ºRõ{u·•8²‡a|U‚DQl?i¥EQù†¤ªÂý_ÏîžµöÁtk‹³ÿ{¦žßÁ+Ÿ½fyž Ï+¾t À …Û©ÉmòÔˆ”t `uAõj¬ó<é¯{Ò-7ø•óA–çY¿µáK·V¦Â½ÎÜæ6îÔ‹J:à/:zJln&7ÛéÀʼõã^’çzr] ¤[ŽPáÞýÜä6þ¶_TÒ1€Uù•óA–çYÿ²/ÝpE°u9Òyž>7Kžt `U…Z{jr»x<\SÒ-Wx¥Ó—4Ïõèr+n¬H­v67³¯µ‚t ÀªxððçýÜí†Ò-€yå³×4ÏõðbÓ—n¸£°s;5¹Mž‘’n¬&¨^už'½“uOºà¿r>Èò<ë·6|éÀJT±Þ‰mnçz¨¤cîð¢£§Äæzr»]n¬Ä[?yþ1Ýã«j Ýpˆ -÷îgÆšøa¿¨¤c«ð7¿ 3kÓ—³²'ÝpI°uùã’—SþÂݯSmMüp°¦¤[.ñJÍçÄÚltU ¤[+PQãqa¬žÜî¤[NQÅzgn¬™Ýï…J:ð1£õšZ›ö[¾t À-AõzœY»è¯{Ò-€vn&ÚšÅãQ¤¤[nñËg¯©µÙàËf ÝøZ;xˆÕ³»ÝPºàµvØýqBÓ¯œüxåÓ—ÔÚlx±H·\SعhkHI·>T¯Æ™µIïdÝ“n¸Æ¯´ú©µi¿µáK·> ŠõÎÜX3ïÔC%pŠŽÆêÉíNAºð¯Ô|N¬ÍFWÕ@ºàžp÷nª­‰×”t à÷‚­ËafmòrZö¤[î 6/†©5éëe_ºð[*Ü»Ÿikæßö‹J:àoýøiaL6º®Ò-€ßúïdo¶™lÀÿž -÷î¦ÚèYg¿¨¤c¿l~¤Æ$/geOºà¢`ëbøý‰ÏÍOÿ×ÂݯÓÌèùÃÁš’n¸È+5{ c²ÑU5nü†Š±6Ùøf§ Ýp’*Ö;3mô¬S/*éÀûüJ«Ÿ“¼¶6|逛‚êÕèû-ž›%Oºð¾°ÖždFÇÝF¤¤[nòJÍç…1éè²H·Þ¥¢F7Ö&›´k¡t ÀQªXï̴ѳûzQIÇÞãWZýĘ¤ßªøÒ-WÕ«QfÌ¢w²îI·ÞÖÚ“Ìè¸Ûˆ”t ÀU^©ùœ“.¶éÀ;TÔèÆÚd“v-”n8K÷¿ÍµÑÓ»½PIÇÞæWZýĘ¤ßªøÒ-wÛ7ã̘øéxÝ“n¼-¬µ'™Ñq·)逻¼òÙKbL:¸Ø ¤[oRQ£k“MÚµPºà0µvð0×FOïöB%x‹_iõc’~«âK·\VؾgÆÄOÇëžt à-a­=ÉŒŽ»HI·\æ—Ï^cÒÁÅV ÝxƒŠÝX›lÒ®…Ò-§©µƒ‡ù÷KšÝ׋J:ð+¿Òê'Æ$ýVÅ—n¸­°}=J^ôš%Oºð«°ÖždFÇÝF¤¤[nóË§Ï ­Óáe5nüBEî\ëlÜ®…Ò-Ç©bý~šélz_/*éÀÏüJë5Ñ:ymU|é€ë‚êå0Õ:î5Kžt àga­=δžw‘’n¸Î+5{±ÖÉð²H·~âEî\ëtÜ®…Ò-ç©bý~šélz¿_TÒ1€¿ò+çýDëäµUñ¥[ª—ƒDgqï´ìI·þ*ÜmSÍ‘’nÀ+<ͳ,^oÒ-ÀØ«³…ı0ŠÂuN"ˆ¢…ŠŠ(ŠÈd ÃÉÉû¿Qc×du×`]tÿVg}O°®öð]n?]n{Ò-€ôÆñ8þk ®t Ï -;×K›Ùè®UÒÒ-€/Ü­ÞÂdYòØ©°Ï€7ÁÙìÎÖßd¦g›Žt à3åïÝ®lfW·{¾’Žà™.ÞGY–×Í‚t à3]é<&Yf½-Wº€ -Í~fY4j—µt à¯qù´^çx|¼Á:Þ§z:5Yfæç5Gºð‘.Ü…6³ËÁ®¯¤cø@}¼§Õ ÷o†S=š,3³nÍ‘nà¯qùd27´t àƒB³¤™Fí2Û x3t¥óÛÌ,zuWºð]n"›¥A¿Ynà3åïݬR›®n÷‹J:ðÌ©ug‰µÉätÓ‘nà wëüù¡âÇ“*oòwAjÓpØ*ié¾Ðåö(²Ö<]m¤[kzãøáy˜ Oº€Ta§›†w‡%-x÷έ÷扵ñø}Å‘nà%gót²þ¨dÚ­ñQ OnW©M—7{¾’Žà%]j ŸO*ìrR Ï©ž<ÆÖ&³ó-Wº€¯y‹…±6z8ÞÐÒ-€Bóêéy•Gí2« xcœÊûqlm2ïÕ]éÈ=]n߇֚ ¿SPÒ1|Mù{7ËÔ¦«áAQKÇ@Þ¹[ç³ÄÚdrºéH·ðw_~ªÊO€,åïÝ,S›®†­’–Žàït¹= -­5OýfAIÇ@¾9•Î8^Oòü¢áI·ðªÐì?kÃQ»¬¥c ß¼íËçEŽŽ+,2à rª§“ØÚdöÇ–+ݹ¦K­»0µi0Øõ•t ÿ¤‹·«õU-oö‹\rjgÓÄÚdÚ­9Ò-|‹[ïÍ×_?vª|ÈQþîuÚ4¼;,ié¾Eo?DÖš§«fAIÇ@~éÊÇ9¾Üö¤[ø&åï\Ʀá}»¬¥c ¿¼ÆÅ|½Æñ¸Sq¤[ø6§v6‰­Mfç[®t ä–.µ†«Ôšå`ÏWÒ1|Û‡»JÍò†»1ÎæÙ$NÓxÖ­¹Ò-|×èÍ“4;GºrJù;×IÓðþ°¤¥cø½q< -Ó4yºÜö”t äÓË)–nà»”¿s$© ïÛ%-ùä5zó$M£q§âH·ð}ÎæÙ$NÓxv^s¥[ —t©5\š4 {¾’Žàû>^–YÞpY ©M¢4¦Ýš+ÝÀxõÞ,6&wªŽt äòw¯ƒÄ˜å°UÒÒ1üˆÞ8­Œ‰WÍ‚’Ž€üq*ïÂõ Ï/žt ?¤ -Íþ"6fuß.kéÈå5.æëÞWé~Ì©ž©:Ò-Êß±I–ÃVIKÇð:º|t¿2&^ôw|%yáT:ãp=¾ó^Ãc|¿ Uh^-bc‡㊖Ž€œø´½«ÑÑÛ øm8•Î84&ž_4<%ù ËG÷«õô.úÍÓ øm(oÄ&YÝ–µt äƒWïÍbcÂñIÕ‘nàõÜÚÙ$4&šžo¹Ò- ºÔ.“ƒ}_KÇðzë » ž/ìæ È…ÀÀ­u'‘1Ѥ[s¥[øný|%IøxºÉ‡À¿O÷Oq’ÃVIKÇð+tùp¸Œ“xq½ë+éøÿsª'ãU’DÓ?êžt ¿DýÉ~½.%ŽEa®½I€ -F±‰iÝÀýßÓ¤gæ„P» Þç -Þ_ë«åŸ?~ÙÍF/oO®càè‰Ö𥨮®z»îJ×1|ìݼëÍÆæOMá:ŽGpÀDkø\ØÍF½]w¥ë8rÂ?üªn®^Þö®cø®ÆÉÝRo6öë!ô…ë8n²óóªNnñ2lqrG¶~LWv³V¯qGºŽ€£&ü³É§ÝlLúû´á:€ïóúIf6û1x®[à¨ÉàjQ®7ëÕ|Ô–®cø>DóU5eå" -˜2Ø#opÿa6óqß÷\·° o0þ°Õ–elì“lGóÕz³.WtÀ6d'~-«1[ÍFmÆ öÆ;ýéÍÆ|NÎ|×-lEøáç٬uúë´á:Ž–lÿ˜v³._v¤ë¶#»×ÊõÚÏÖpǪqr·Tëµù|}Ž-à@‰æÅã—Y¯Õûm¯á:Ž”h ŸóêÖ–®»Òu ÛjônÞÔzm¾ž.šÂu §Fïö¿SûÈ©0Ñ>åf½Vo7½†ë8J¢yñôÅ¥¾ÆÉÝ»²kóõxÑ®càÉÞÍÛßC›?[ZÀ“­Ë—ܬmùú³+]ÇÀþùÃgugÕûÝIÃu »ðN-•µúcúÂu Ùýùº²Öä/—mé:€]Èöin¬Y-â£u~8ùÐÖªå¯SÏu »ñú¿Se­Î&¡/\ÇÀ±‘x±2ÖäÓQ[ºŽ`72ˆfE5k«ùUÀ¬@½„6δµ*Múžëvå ’TY«Óû'\ÇÀq‘A4/Œ5Å, -¤ëvU ÛŒa€}Þ I•µ*MžëvV-Û}ªÿ_6áºމ ¢Ya¬)fQ ]ǰ;\ÍWLÔNxƒ$UÖêô~à ×5ìNøá$ÓÖª4aÛ F2ˆf…±f5¿ -¤ëê ;ñbU[1‹7¨ðIª¬ÕÙ$ô…ëê üp’ikUš <Ö j"ƒhVkV‹¸#]ÇPÙ«jÞŠY0oPá ’TY«³Iè ×5ÔCøá$ÓÖª4xìÔBѬ0Ö¬qWºŽ .²/VÕÀ³(`à Â$©²Vg“Юk¨‹ðÃI¦­Ui2ðX8¨ ¢Ya¬Y-â®t@}d7^¬ª‰+fQÀÄÀî„7HRe­Î&¡/\×Pᇓ¬Ú8•&€É šÆšÕ"îJ×1ÔIvãÅß‘ËgQÀÈÀ®„×ORe­Ê&¡/\×P'á‡ãLS¦Ißcå`G2Msmt±ˆ»Òu õ’xQT3—OG3»^?Y–ƨlúÂu õ~8Δ1å2é{ììD£i®.æqGºŽ n²Ï‹jèòé(`è`Âë'ËÒ•C_¸® nÂÇ™2¦\&}¥€È`4͵ÑÅ<îH×1ÔOvâyQM]>LlOxýdY£²qè ×5ÔOøá8SÆ”Ëdà±u°5D³\]ÌãŽtÀ>ÈN_¶¥ëöK¶/Ÿ?J­‹?·'Ï|‹l Ÿþ»¡wÜPÀÑÞÉíŸBëòãù²-]×ÀA©NèÝÛ¿'ôiØâ„Žžl ³RëâíîÔ®kàÈöåóg©UñzÓk¸Ž`ÿ½ë×Biõõ2 -¤ë8 Âëÿz_i]fMẀýÍóÉ?ì×ÛvÚJ„át7’8›ƒÁƒ1Æ›óA€Ô­–ßÿ­Fñd2Ù³“L®híÅÿ=A]U­:ÙäðÜðØ>øc²t¿ˆÓTo†Uå: — *ƒµÎÆ/^Þ—¥ë0ð!¼æ$L>>ìñµí ×i¸á·¦_×/ _šëH•û«8ýHõú¡¢\‡à2>çϦ6^õ™?øCÂoMIš&áKÓ®ÓpÂkLŸû7mûìüU¬µMm´¼/K×a¸Yê-¢lãͰª\‡€áßÎŽIššýøÆ®Óp)¢p3Þ›4MN³Û@ºNÿ¢P{Üj›&çù]‘â\Y쾟“ÔêݨV®Ó@þ}ëÍ4ëÍ:½ ¸&¢Pí´M“óü®(]§€Ü…›ñÞ¤irzëÔ&àªÈàvvJÒÔìÇ7žpòN–z‹È¦Vo†Uå: —¥ªÃMœÍ`´¼/K×a ç„ל„&M“ãkÛ®ÓpYÂoOÃ$MMøÒòØAø-Ué¯b›ÚxõPQ®Ãpi߇p=`à·„ßž†Iššð¥é ×i¸4á5&“¦Éqv별ðkBU‡›Ø¦6ZÞ—¥ë4\ž,õçl -ãícMqà—dÐy;%©5ûñG_®(ÔŸ¶ÚÚäôÖ-J×i ·þ[—ïÔ%àJÉ 3;kõn|S®Ó@^ÉRo~N¬75E[®’PÕá:Nlr^ôJÒuÈ)á5ŸÚZ¾¶}®àJ ¿5 µú0i±‡ðsªü°Œ›D«‡ŠrWT¹ÿmUÅy€Ÿ~û54ÖêäéÑ”€«%¼Æó^[k޳N ]§€ªö¸‰›œ½E ¸b²t7?e“oGõ‚pòG»o'c­Þ=Ñ“€«& -õÑ6ÎÎÃi~W’®Ó@î¯1ÞikÍé­P“€«&ƒÎìh¬Õ‡ç¦'\§€¼QåþâœØ$Þ «Š–\5¡ªƒU”Íb´|¨(×i g„ßš†ÆZN[>×på²]œô×]|mì"üH¨êp'6‰–ý²r×d©·8gÃokÎü@·“±VïŸ ¸z¢PÚêÄšÓû]IºN9"¼›§¶$ßÈ 3;kõþ¹á ×i ?T¹¿8'6‰7µýÀ¡ªƒu”c´ì—•ë4ÂoMÆZNÛ×€/Ÿë89è¯ëøÊ:ÀUnâÄ&Ѳ_V®Ó²Ô[œ³yŒ7£zóŸd±ûv26Ñûç†G7ðIêO[Xsšß•¤ë4 »ï>«ñjà;tfG“$z?izÂuÈU¾_œ³fŒ6µÍÀ7BU«È$æ¼z¨(&¾ˆ õrÐI¢Óv@/ðð›“}œmdøÚ ¤ë4àœ(ÔבIÌyÑ/+×iÈYêÍOÙHÆ›§›‚p\“¥»÷£ÎZq7¾ñhE~ -õ§Mœ‡Ó¼W’®Ó€cÂk<ï²RÔÇ·n‘Rà/dÐy ubâý¤å ×iÀ)¡*˳IÌy5¬*:€¿ø÷Pj“ å ÆP¸n2¸²FŒ÷“–O#ð?„×ï¢l)ÃY·(]§‡„Wm²BÔÇ÷^™Bàod©ûjc¢í¸á ×iÀUîÍÚèh=ªèCþFjÃÕ9ËÓ¢_QŒ%€«%üÖË>6&>Loé: yÄZ@FjÃÕY}Zô+J¸Ž@.©ro~Ìæ2Zês àJÉR÷-ÔÆDÛqƒ.àç„W­£ì<ç½²rœ~óy‡³nQºN@^Éàvzˆ³ÅÜ¿´á: 8 TõayÒFŸWƒš¢ ø¡*ýÅçd®ë&À’ÅÎ,Œ‰w“–OðKÂkŒ·QvŽï½’t.ŽàOÉbwÆÆD»IÓ®ÓÀ… Ué/NÙuˆÖõ-ÀoU,¿Îæi5¨)fÀ•‘Áíôï_ÚÀo ¿ù¼´‰ÃY·$]§€‹^}´>k£óû²r€¼“¥î,ŒµŽ¶ÏM_¸N$Tåþý˜5ày=ª{4 ÿ‡Pµáêëø¸TÓ àŠÈàöeií§·t€ü~k²ûº‡Y·Èv¸«ÖçXÇÇyÿ_ì××v"I„á“Y– ¦ ›2iàýl‹™3³}³;ÓÝHÕUú¿'ˆ«ˆuG€µþ:ËÇÓœ_Û>ã à«N}¸Q·ö;Í<Ú€A¸Í—ƒÎçSí¾5æÀ!ƒî"±×«M–½P€rþÓ<¾ígúÎ~ø*„ךÍåzQÛQÝEÇ $d4Ødù€šÓ¬í1 ¾áÔ‡Eóðƒ„ÛšM>¡j7j8L(€/@ÝEb¯W›,{¡,: å!ƒÎŸš¾?רPÕ'¼Öôh.׋ڎêŽ(:å!œúp£ò5§×GŸPußµÞ¬íÑzüᵦG“ϨÚ3 - âdÐ]$özµÉ²Ê¢ÓP.2è,âÛŽ¦«ç; - Ú„ךÍåzQÛQÝEÇ \„ 7Y>¤æüöè3¤ªL8õáFÝï4k{4?H¸­—ƒÎ§TíÇ —)Pa2è.{½ÚdÙ eÑi(á?ÍãÛ–¦«ç[ - º„÷0=šËõ¢¶£º#ŠŽ@ ÉZåcjÎoO>c - ª„SmÕ­íN³¶GÛð„Û|9è|Nõá¥é2§*J†½eb¯W›,{¡,: å$ü§ylòó­û‘ÃyPIÂkÏŽ·ªSÛQªà'ÉZÚËÅœç@>€p£m–7>N<®?I¸ÍñNÙ‹U‡I‹IPE²Ö{OÌåbâE7E§ ¼„ÿøzÒùyÈ6úÃyP9×\ºDÔ¿@†½eb./º¡,: Ü™p›/;•_uxiy\~p£m–Ϫ>NÛÌ*€ŠNÔ_§ör1ç·'ŸŽà—¯==êü­À ¯5ÙgùÌfû—–ÇÌ(9Yë-cm­Ž—½š,: Õ"ƒÎÛIçç!Ý ëç@© ÿñõ¨þ¨´•À 'ê¿ÇÚZ/º¡,:üá¶Æ»,¿ê0yð¸Ü™pß¶émj³¶ÏÔ(/áDƒub¬Õ§y'EÇ z„מT~²Ý¸ér”– »‹³¶ÖÄ«~äPgÜŸ ;ó?Ö6YX[¥%üö쨌5éö[Ó¥ÌøÂ‰«ÄX«Ï‹n(‹Ž?E¸Íñ.˯ƒ:LÛ>×€ñßÁ=Î\å$œh°NŒµú¼è†²è8T•ðÛ³ƒÊÏC¶7]΀’awqÖy‘%ëAäPd|”|sçgeŒŽW}6@ ¿=;ä5fÒí¸éRc|áDƒU¬Q§y7”EÇ€$Üæx›æ-–fmŸëÀúkv5³  „„õWq~ÔiÞ eÑq¨6á·g‡,?évÜt9JE†ÝùI£ãU?r¨0>ÖwË;`y”Šðg‡LnÇM—àƒ 'ê¯bmŒ:Í»¡,:ükÂk·i~²Ã¬ísøpÂmþ=¾ã  ,„[®cmŒ:Í»¡,:_ðÛÓC–Ÿ‡t÷Òò8ÊAÈZoqVÆèø½9”ŸA†Ýùé¶¿ÉzØpÙ_¥ ƒ§×c¦óêÚ|kR]|áDý÷³6F—Ï5É(á=Lvi~²ýäÁ§¸ø$ÂmŒ6I>ÁêøúÈ¢ãÀ?ºõÖ:ï-£Žoz €Ï#¼‡É>ÍÏCº›<ø¢è8ð„S{^ž•Öê¼|Žj €Ï#ƒ§×C–¯p²5]VÀoN·ã­´âõ°Ai𙄬=/N·>¿÷#‡ð[~{ºO•Véö¥åQY|*á6†«XiçÝPþáµÆ›$¿ÙaöÐX|²ÛooSœî§(:üOÂm Vg¥uvZôj’Âà³ ÿqºOóól_Z[ àwõöësÇqô£0êc”Dåœ#(ŠY{ÿ—fR=½^6`̨›”ú•¿éY|*J"FkyÉ'9Küu×d’TèÉ1,Ò!ØkJʾ€KYݵŸäñ_-ƒMP5¢ÕF‡ ½ß³ð8ih¼)J#Ê쫦ŽÎ*¨eõ··4»gñyÞ4xR”H´úØ ³<Bw\רe•"fguMòtH¼eÇäEP*Ñé)Êã! ö[±Ì*DŒÖâçéú›ž¥Ê>€ŸîïiN˜fÕ"º3=EÙýžûaMIÙ÷ðã)³»ö“<boÙ1ÙfU!Z}ä†y:dáqÒÐxO”OÙýÝ-Í×9>Ï[ë  DÙƒ]P<§èü'1Z‹s”fYrÛ jÄ€²||£ìãÙŠo@õ(³³¼ÄE<\7=K•}€Jtgz ó_”‡Q]#¨"eu××<ÒØ[uLâ@DoŒÝ H‡ð8i褕$Êlý$‡è²h,6€ï'Zm¸¿%y:DçY‹G@U‰VÿµÙáiÖd³|;Qvë'iž—eÛä PY¢7&nñàNÕðÍ”Õ[_ã<boݵTÙç€ÿMôæìæñ‡Q]#|+evV^‘‰¿éÛŠ@•‰ÑZœ£"n»AxðÄhÿý†| ªN™•§Yû›¾­˜nßFŒæìéÆuÒ€ÊSVos}ă·îZªìsü¢;·H‡4Æýº0îžF™íù)x¤Ã~ÜÐù.¼Ó¡eòUx¢ÕÛk”ž"O‡ñÁ/žJpœ·MUö=àyòxî;ž‰èépZ¼Ñãýg<™N±öq§yÛ$üÑêÃÝÇ39/»¶F:ð~òx˜ò½£ÛqÖ"ü–<[/ŒcÒ€7&FsêÞñà~K‘›"¢ð²"x[ò/öëuKQ$ £ðŠà$¢ ¢x@TPÎ`æÜÿÍ `NUfOWç©lKÙÏÄŸ/Ö»5{C<ø†.òóóžÏùÁ%x\R'|Ût˜›¤Œxð oÓaH:ðЈ_F:Ð/Ä€/"èâÀ—ôñà Húˆxði¤ýD<ø$Ò€¾jâÁOˆE:Ð_Rw¶)ñàcHúLâÀÇôšhâÁOˆï#è;©;›˜x𡘤='u{WmD¨Ö|Ÿ¶ñPçǵ­KFðà„:|uõŽÁÕ€ªéî’²nfDqòCaFMhÖâ]Ò!ZÙº¼õƒÀýŠ9ÛÆ]<”ñv: €G&µÑ2ÌÛt¨òp9ÖHð BLü¸èâ! \S%€‡%u{åu›ÙÁiœ;ø! gs,º5‘îçñ<(Ž|›ÔíU”w{";x#MÞúA®@(ƒ‰·éP—ÉÎ5IðR/üjã!V¶N<G¨æ,HÊ.âíÌTHðB-Yu~\;†dTF¨Ãù.­Út(Nþd@:€/jgÅ>íâY< ©¼CÖÝx~\;†äÆÀW Õtƒ¤¬›aQ&ÁÌTÀ‘º½Šò6ª¹ÜõÉŸîüBµæ»ËÈ(À#úxyH/é­CrÕà÷ª9 â¢jã! Ü¡ÊÌ³Ž²æ¤ë2 —c]ÞúEàqe0ñOy·4Òýb¤±4€ûÅA€kÒpÖQÖm,\Ù:[¸WB΂¸hι*’ÀªâÖ/Fêãå!-«º*óãÆ1æp—¤f-vI—ùi;5¹eðÛ Íš·ƒ£jâáäOM•ÁÜ!©½CÚ]rmƒtW Ts¶=åeqàZš¼õ‹|’P gfe›i¸´uÎ\…P“ͱ[E²÷ƬàÎÕœú?Žx1Ò8bp%Bö*L‹vw¤áÚ1¤¸õ“|œÔ,7ˆó&Ê<ܡʀë‘úØÛ'm<”ÙÑŸ˜ÀýøËýš -÷ ®Ih–ÄEÙŒ<Ü¡*oý""ÃY‡é%µcàÊ„jÎüSÖÄCU$ûÅH'€{МîÔ?¾œîÁsºàú„b8ëè²@ÒpåЏõ“¼Gj–Äys¸eïæ–F:€ƒÔÇËCR4ñPfGjªÄðgÍÕzû—«=ù3®ü[¤fÍwqQ63$×ÒäÙ¯×õ6‘,ŒÂSUœ%„‘„„„Ĺ(@¹ÿëkð!ÓÝ3I'éØÈöz¯`ÿYÏóí¥/ðByÑ©2O¯C}Š<ÅëÞŠ°üí¥¦çáËØ‡Ð‘,ànÍÁfMÿly$Xð¦„ò¢Sý´ELuŠ<Åî”´Wû\S®·Qçû•-—¾|.B:á±ìÆéy¸õm¶ ,žà énþܪO«àÍI{µÏõx›ɨódíÈ¥/ð?„åÅ纟Bý2öõ)ò¯x{Âò·Yó´IL™F.›¸7Ò^í®zxÌ´+¡#É,A(/:UfœVÉ­o²Ø·X%À=Ò E7N¯ÃmÐ×ýÊ–KŸ>+† pÏ„ò¢SeÆ/S¡}“ž%–> |bÒ^í.í0?cWCG²M€;!­`›5ýí6åiª4ry€% Ë8×f¼Ý¦uRŸ|‹uÜ!u’ëaŽsÐy²väÒ'€Ïn(›cÙ óóз—ÝÊf ËÊÒ—2›lXbé“þ#íõþÚöã4Q]BG²Q€…I+Øfµ™²¼ ¦:Ež"Kp„åÇçÿ®”ßb¥KÒY'¹¦(ÇA‡Ð‘D îƒPn”–Ý0=cß^v+›¡,G(ïïE.}À !u’ëaœ¦Ê ‹Cè*ž`!Ò¶Ym¦oƒ©NžEŽàžHë/k%öY+À"„tÂC®‡)ÆqÐÅ!t$1€û"”¥e7LÏÃØ·×ýÚf°oO(/:Uæ¹ÄËneË¥Oø;!u’ëaœ&ËЕÇÈU<ÀÛÒv—¦Ÿ2¼ ¦:=ø€{$­`›Õf^-£©³m`Ë¥O>¡ÜðPèaŠptqÉëîÓ4\¢´ì‡K¯ó„á¼%aùñ©2Ãm.°¹ì[.}À·é¬÷×¶ÇÛ8tUyŠçxOù5äÞ aùñ¹ê†qSg»•-™/ÀÊ‹ÒR÷s{}›'k‡öÀÊÝòöeÀ6®bÀ¯MH;Øfµæòº:Û–\ú&€2m˜Õî놩Î1xmB¹á!oû9»^ÇÈSbé›~€°¼‡´ìúùy0Í5Y;’¼"iù§ê¥¹ËžæÀ»!¤³N®­¦!Óë2}ð-† ðZæàö—fnì»êDpà]‘V°=W]?ŒÃ`êËneKÆ ð*„ò¢´ÐSmãзyºŠÚÀ{"”»9ä­&¦Í9¼!íÕ6«»~J­ïêlØ’ÖÀûò×ESY4À+ÊÝòÖL ¦-Ž‘§è ¼?Âò¢´Ôó¨éM“6.£ø­„´ƒø\é~®¬«/û•#© ¼GB:ëäRw»F—ç8°Ù5Àï#”»I®™3ºL|‹ÂÀ{%­ >•ÚÌÏC×\“ÐULà÷s_gú…Pn˜\ÓOëÆèò–dÝ¿Ás\ÝW¯Ë3q€÷NH;ˆÏ•~Ü7]}IBW±o€KH+ˆÓR›¹,Óä‡ e€÷O(wsÈ[ÓÏG—iX’ü+SVar©»~~ºê¼ l²€öj›UÏ+§¾$¡«X9À¯Ò -â´ÔfŠª7m~Üx4>¡¼èX´OCG—iX’¥ü"¡Ü0¹ÔÝÔÐwU¶]Ù> !Õ.{Ù:õ% ]ÅÖ~…v§¥6SN½i‹cäQøP„åGiÑ>Í]¦q`KöðÓ„rÃäRwSJCßÕÙ~íø`„rÖûìëâ¹$¡«X<ÀÏÒâS©ÍRoÚ"|K.}Ào'-?J‹öiôèò¶ä{~‚Pî&¹6ÝÑÐwu¶_;ŠˆÀG$”³Þgõóîi®ÉÆe÷?LH;ØžKmæ‚L[¤‘oÉ¥x%Òò£´hÍü=]ž·-ù€"”·9\›nΧïêl¿vù€K(g½ÏêçõÓä‡È³X?À?ÒYmÏ•î§xzÓiä[ré£^•´ü(-Zó8€t•íVŽâ{¾OHË‹yÓÍáôs8kŸPÎzw®´é']“#ß’Œ à;„r×»ìÏÕx–\ú(€7 ,/:äM7ï £«lºŠçø!íà!-^’)ÏÛ•-I|ÓZmÏeû¸„º¦Hã€)|ƒPn˜\jýÔK}=lm×ϱ´å)lI,à3ù:ˆÌÓ :oWßÃì×irÛÌEá4æ˜HŒÄܨì…i€¤ÄØJÅþ,ɤxžô·«î~ 4ÉòV.ÛGYd“…6<¡ÛAZçMtšº"rMQÜP¿dwxû%}™xüðŒ„fºqÑM§m-c¶Î,®Ôñ’²ç‹¨i¤[»C=.Û2:M}•x–Æ46Âp¬•×ÿÑ‘kð?ÀóÒ 'ÊÛé´­£E¶y䚬#@•ƒníÇa^ÿÆ¿_æá¸÷-¿ž™Ð,_ ó¥Æ: lžžÐL/.»éò1d›…<=¡ÛAV˶‘NS_%ž¥1’ðÔ„á„Y#_E™x&¿à_B3ݸè¦Ó¶“Ùæ‘c°“ð¼„nù‡ã0¯_âåeë4°u~ÀjJûëT:ÍÃñÀTÂÓšéÅE7-çrm¹†Æ¸†f\N/Ê2ueâYԞж¿0ÎÛ_8M½ú &åpCh¦—ݹNóØæ‘ËbÂÓº½ÛWÃt.‡y¨ÓÀÖùÿMèÖ:šæ›Ñä‚Õ„'"4ËKÊN.ë/8-²Í#×Ðø?Âp¬çónšúj¿³tvž…ÐL7Ê_€ìËÄç¼Om'/.Z¹\¶S[Äž¥±ð „0œ ­‡­^NópL›røŸ„níöU?¶z˜Ç&\“zÀ÷w=ý…ÓøEBN˜Õã¼.(5¡†: C0¡ð­ Íò⢕çrXdW&åðÿÍt£·5õÕ~gé¬(|_ÛÍçÍ8o7šuó67ð „nùIÙ_ëA¶EâQø®„f8aZ[9¼œæ±ÎBÇÐ8x€_"t;HjLÎcªÉcÏdLáêØw‡ªŸ–íØÙ;ÀïšéFY3ÎÛž:ÍC…ŽÁ Âw#tËOÊN^Ë¡+÷¾¥sè¿CÕƒ­ª‡Óº©¦¾:6õ€oEh–çÍë•Guå”Àoºå'e'Õ®RfÙ•{_í*†¾ ¡™n”5ô¬®Ê¡ÎBÇÔ¸p€ß'„nïU™Vó؉oéL+|B3œ0­ßλÉ#rø§.ój¸™W±G=àñ­§ª^ÎËù´Û"á´þˆÐL7Ê›k=LC“Gž©1±ðÈ„0ìݾì®å »r¿³)€?$tË‹‹vœ¯õPg¡K=àq uÓ~R^nzYd<ŽÁMü¹óÒên–V²´ð ¶rˆ‹K9œ–i¨³Ð1¹g€!„aïU'Ïõ0Ë®:ÔÑVy3N×rhòÈ¥>ŽÐ '8{¹ÜÔƒM=àÁ¨rðT9 —r˜Ç¦ˆ=KçŽ>’ÐL'Ìê×Ñ%»r¿£ðH„nzÑm9´eâSOÕƒûãð¢ð0T9¸aV¿°ìʽ:`Á|¡[^üVÓØÔƒÐÖr8ör^.åP‡ãø4ªü¸hÆiQlY¦AÕƒO=àÞmå^ÊaQåÐ)€O&ÖzHŠf˜æE™§¡¡pç.åÐÉíh·rHCÇäh>™†M=àq\Ëa¼\ìV.åð„¶ÖCÙŽÔîÞÏåPgåðeÖzبܻ÷Ê!¦¾”ª' pׄþN9x–Α|­wëaçP¸B·¼ˆr¸ ?×C[îêw@hªâŒr¸?ÕÃØ–‡À1©üUê0mUu/)€»ñn=„®ÉHÃ_³–ƒŸäª¶£¤îÅÏõÐUiè2ÔðwœË¡h.å0O”Àý¸ÖÃðVÇ4RcMc­á‹­Ç¸ÛÍ _‘r¸'¯ƒmºl¾mPøJB7ßÏXîà~¨z°ýDÕƒ¼Œ6Ù×yB=àëM·Ü0­ºñ¶B—r¸7×zèÏõ°ÌrhŠ}à˜,7|õþ¼(;Þ–C¥Êû¸G[=ÄyÝËëzÚòº–.˜oøTçr½½½q»=Sãôî“ÐtË‹³º_\wL#ÏÒ™pøŒPꮪ®lz½²4¤QÌZ~œ»Q^vÝØÕy²sL]0ìðÇ„¦[^˜Ví /}:öMy\u`ûmøMÛ¸‹ÞÆÝtw¡géëDè¦ãÇù[šªãª‹5M¹-€‡$„n¹Á¡lúq:/<9´Uû¶ÁÂÃ?¦ªÔtƒ}Q÷×rcwä®Àد¯ìÆq(Š¢M1ƒ9ç ÕüçØhKî®è²ÂÙ#àâÃÇ=xp†i{aV³\yræ}Ó+¯ÎBÏ6™yøÆÎrERvÓºé·o{Y¤e,žÀƒSS/ئžÌ‡oª–±-äÔ³˜zøIÆn‹Ñ~^·×¤bthòÈ·MƒçððäÞsü¨h‡åTëÔ×ièÙ&ù€';ÔqÑŽÇrÐ/©J—x†aÚ^˜Õý¼nùp8¬óбp}ø12Aå#J«~ZO ºŒ­zD$(ÀS1v–$e7.çá7uUz6Ëߥވ‹f˜×ÖŸ{•Ÿy$ßÁûx2ÆÎtü(¿^E,\kÇüÓOÇö¬ꦫò ÔÓùê¯À'0 5ÓªŸÖ‹ Ø×YèÛ&2ŒåIÑÊèÜžÍá°E§ïðjž˜ÜŽˆ‹vœ×ÃiŽm™®m A\1v¦ãGy}Ù›«ìÍ4ôx0ÏNŽAÛ ³›1˜G¾cíXƒ8Óo%HÊv\ö—©YÄB½•¯þ<|>cg¹".Úq^‹p¿Œ]•†žm2 ¡Û3É›~~_™Ïà•;Óö¬Y8M‘®mì—'_ˆãGYÕËñ…Öyl‹X¸áðZŒåЏh‡ù-‡ý2õu GŽCÖá Ói$åùq|ÛGz¶I9¼½ìêÆe8t=¬ËØUiè;,ÄWe¦®Ê¦ŸÖ󻘇¦ˆ…kñ,^•±S31—3Q烲_§¡-’À³É‡×cÈáˆ(«eP®û㋘ÇV%/àÅ;Óö¤l‡yÝïß¶â2õu‘—±øRt8øaZÝ<†,ò‹·½£¬êF¹o‹q»:ɇ—q Y‘Ó²žÃahUEZ¦Á3À?ÛntE\4ýy6ê|¨òHîÆ»ñÉÉ`Ú~˜\¿€¡­ÒЧpIG/HÊv˜—ýE>´UùùðÄŒ·Û_†Ãa¿.cWg‘P·ÿê/À½1v–ã‡YÕŽózʇeÚ2%žÕ)êî]8L}S$µMÊ‘CÒrE”×ʇóŽ<æCò¹\„ÃõÁ‹$ôüµ&]!×d?-7ù \æäÓP¡èœÃa»õ~¿ÎêÔ¡,E. €ïQù 6es“UoùÀª|p:üPù}8Œ]•E:¸1~„̇mYïòA-Ë<ùðÐäuá Îû.äy]Â?Ã0vj_¦e{™z_Öyxó!É»š¶+"yØ›p¨U8¨.üêÀ£Ùò!ú úºHBß±Lúá¡èpðDœUa‘„~ÙæÃÔ·e =6Y›Á0LËñ‚$¯»qþ <¿ç*öÇŹLC[åqà9–I>Ü9yDÓrE˜M?ÎÇ+^‡WÀï:åCÓŸóá óaž¡p-–çý2 Ór<eU{{?„þœ-¤húq>ÏÏý:}[e‘ðúáÉ»™–«W·Ã| -y¸eT8—pÀŸ¦óÁS+´çå"–yhë" }fè]ÑÝàx"ʪVßU8´¥,>.€O¢òÁö‚8¯ºaR[t¯§¨Ê‡±oª,<ÇbÞ¶ë‡I^·ç[©nXÕ­Š4òõ©¾ú;ð¼¶M*¢¬lúqÖ›T“ù0 ]]¤¡pmkG?|!u#Ëñƒ8«šnœ.Ž´.úHI(àÓéiêúaRÔz™®çe:}[åIà«~`›~­<¥eÓ Ó|:Ïñ:Y,<Ž€¿GNT¹Pƒ8¯Ú~|?P§¡kÊ,Vý`2Qÿ¦s7õ»³ì×e‘g©‹4ä*øûÔRµõPmºaZ–ÓN=õCtì¦ê§ÛºÁa’«n˜.ºAÞcìÛ*ϱä9¾úSðжÁêq^ɽ:Ÿöêª÷êÐÖ…êGöÃŽ~ø<ÝP5ª.±u\‘FÂÓ÷Õß -€&‡«e{"J‹¦&Õë1d?ô²RÙ®mÑŸÀxË·­n0ÉTYxŽE8à¼í× ÎÊm¾ªýªÉ|Póµ.å~õ]ì%ûδÕmºÆ‹¿n?¾ÊÓPw¿wCõƒíúa¬gìm?tu™'¡ðÛܱd—¡sMþï J‹ºíå?ÿñc°i$ÿ7½€û#÷ìβ=&²úÛ~º¦Êåžõ][Zí/Q¿Ù´õŸ³rë†å¦Ê,t§ñ—p§ä°5-µkÓâ8k/úaž½k“PèaK@ü –ãúA”UÓõãG¦ºAöÝ€»wì‡èØç}»è}ÛwMU¤rà?lËÛõE”äåõ]ÿµÌ“PwအúÁ~뇦Æ«;OCßÖežFÄw³!L2™còwNòw^uƒü™îˤð`Žý&yÕ¼ ÞóÞUƒ÷]@Xº ¾ú£ïбeƒó– ò/öò/~˜aYÐ xdª¬­ʺíu?|q(<×Ù‚ùûÏV ¶Ì† ú0ÖíçuM]¨ø’Ý@zàÑmý Gpœ²ëM@4U‘%j;öK„±eƒãÊâŠR•\eƒüg}WWy"“˱MºÏBíaËv|!×p¥âz ¿­á¶.ó4’{ø BGƒ¬Ûñü J²¢j¶Òú—ý:[j À0Z`ð"/’%Ë[`jÞÿ)§I–Á!™ -YçÜQ€Ô­«ÿ»‘Z§Ã¾Ùn–Ål¾ÒgúH| -qO¦³b¹©Â.>oÌ⸋ÏÇCÛ\Äß¾ŽS5Lâ·IÕP5»ý±ÿ<¯²áûª\‹Ùcê†ß}xø9R?ä_ÔÄ‹¦ø¦«ûö R1<ÅH‰ÉÐ6õ¶o† ¡Dü\wã†H±Z—Õ¶«ˆãé|>wñüCÿ]\uÈÓ— ¹vM]¥d(B3Ls3Ükø•º†È1Í»Šè3b8O)$ú’Zâ‡zbôŒî©ÏO}.Ä^Ø·MSo«rÓCN†INÍ¿Ñݸ"§³˜‹bµZoÊ*„DÝ´mJ‰Ø]MŒzâÚ?7ÒàJì„\ -¹b,´»¦Ž¹P®S/¤`˜>>äb ðç*"tÄC숱$bJ¤–¨ª:hbOôIqqLuÑKi0ˆÅNˆ¥P¥Vˆ±k!çÂÐ )|w£H)‘Z¢«‰¡'‚elŠ‹2ÕEVnÆ¿‰ÅNfñQ±úXèrA/Àw×»›Ä¦¸ÈuÑKi0a\ -b>‹»ïö»O -ÀìÁÿk#¨ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª°@þ¯ ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªÂù¿6‚ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª -{p äÿÚªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª*ìÁ!€ ÿ¯½a€¥OÆ -endstream endobj 41 0 obj [/ICCBased 120 0 R] endobj 119 0 obj <>stream -ÿÿÿ -endstream endobj 120 0 obj <>stream -H‰œ–yTSwÇoÉž•°Ãc [€°5la‘QIBHØADED„ª•2ÖmtFOE.®c­Ö}êÒõ0êè8´׎8GNg¦Óïï÷9÷wïïÝß½÷ó '¥ªµÕ0 Ö ÏJŒÅb¤  - 2y­.-;!à’ÆK°ZÜ ü‹ž^i½"LÊÀ0ðÿ‰-×é @8(”µrœ;q®ª7èLöœy¥•&†Qëñq¶4±jž½ç|æ9ÚÄ -V³)gB£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚óÈtÕ;\ú” Ó¥$ÕºF½ZUnÀÜå˜(4TŒ%)ë«”ƒ0C&¯”阤Z£“i˜¿óœ8¦Úbx‘ƒE¡ÁÁBÑ;…ú¯›¿P¦ÞÎӓ̹žAü om?çW= -€x¯Íú·¶Ò-Œ¯Àòæ[›Ëû0ñ¾¾øÎ}ø¦y)7ta¾¾õõõ>j¥ÜÇTÐ7úŸ¿@ï¼ÏÇtÜ›ò`qÊ2™±Ê€™ê&¯®ª6ê±ZL®Ä„?â_øóyxg)Ë”z¥ÈçL­UáíÖ*ÔuµSkÿSeØO4?׸¸c¯¯Ø°.òò· åÒR´ ßÞô-•’2ð5ßáÞüÜÏ ú÷Sá>Ó£V­š‹“då`r£¾n~ÏôY &à+`œ;ÂA4ˆÉ 䀰ÈA9Ð=¨- t°lÃ`;»Á~pŒƒÁ ðGp| ®[`Lƒ‡`<¯ "A ˆ YA+äùCb(ЇR¡,¨*T2B-Ð -¨ꇆ¡Ðnè÷ÐQètº}MA ï —0Óal»Á¾°ŽSàx ¬‚kà&¸^Á£ð>ø0|>_ƒ'á‡ð,ÂG!"F$H:Rˆ”!z¤éF‘Qd?r 9‹\A&‘GÈ ”ˆrQ ¢áhš‹ÊÑ´íE‡Ñ]èaô4zBgÐ×Á–àE#H ‹*B=¡‹0HØIøˆp†p0MxJ$ùD1„˜D, V›‰½Ä­ÄÄãÄKÄ»ÄY‰dEò"EÒI2’ÔEÚBÚGúŒt™4MzN¦‘Èþär!YKî ’÷?%_&ß#¿¢°(®”0J:EAi¤ôQÆ(Ç()Ó”WT6U@ æP+¨íÔ!ê~êêmêæD ¥eÒÔ´å´!ÚïhŸÓ¦h/èº']B/¢éëèÒÓ¿¢?a0nŒhF!ÃÀXÇØÍ8ÅøšñÜŒkæc&5S˜µ™˜6»lö˜Iaº2c˜K™MÌAæ!æEæ#…寒°d¬VÖë(ëk–Íe‹Øél »—½‡}Ž}ŸCâ¸qâ9 -N'çÎ)Î].ÂuæJ¸rî -î÷ wšGä xR^¯‡÷[ÞoÆœchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â­*­6X[ݱF­=­3­ë­·YŸ±~dó ·‘ÛtÛ´¹i ÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö -n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=GTB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%—®K7YV³©fFŸ¢ßY Õ.©=bàá?SŒîƕƩºÈº‘ºçõyõ‡Ø Ú† žkï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹­³mzyâò]íÔöÊö?uøuôw|¿"űN»ÎåwW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝ­èþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_pß¶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMśΠnßLÝlÜ<9”úO¤[þ˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ -¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäü儿 æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ ÷„óû -endstream endobj 117 0 obj <>/Filter/FlateDecode/Height 3009/Intent/RelativeColorimetric/Length 104591/Name/X/Subtype/Image/Type/XObject/Width 3004>>stream -H‰ìÁ€þ¯î -€Ùƒ ÿ×FPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUa€ü_AUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU…=8òmUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUvë¬;Šë -Àè‚–Ø`CŒc›Ä ‰38£óÿÿT\}ç[C—  ìýZçôêU§>àuëµìû_À{íõ2]ÏÀ[ð†s]ÉÀµ\½´o¯¥âàÚn:Ó×ñ°Æ äúf½›(ù}¿1x»^¯××ôùAãA/áø°]±Øw×ù5¬-y À‡e}²ïŠõÛ±«å¯ñû~·p#V6û|®÷Ñ}4ãÎŒ™ñå˜_ªxÀûfU´OûB«ãüî*;£~¦ãg#^Áð>ØíÉ>Ýë •~|uKE?Ùñ¿;á÷ýú`…Õ>jö‰`Ÿ¨õ:ÀO§+µ[“=?Ññ㈟lxÀ»dGµ÷ÑÞ'û¨×ûT¯:ü¬qo…faªè»UülÃ/ü¾­ÅjŸ‰ö.Ù›`ok}¢ÑÏk÷Wh&’¾Iù&㻈ï~MÁïû<0XÊöÉho›}TìM®·¥^Jü¢ö`•zcœôMÊ2¾‰ø¶áç -^Àð«2Ÿímµ×Ñ>nö®Øë\oJ½tøÃâ£+([㤯S¾Ïø.⛆¿bÁïûb|€veû¸Úûf?ÉÍž‹½ôz]ë]¥œ|RùtI=˜·û ¯R¾d|©øñ}ÃÏü|Àïût|@Ve{_ím´§d?k’={]ëM¨Ç”|Öù¼Ñ=Ì[mÔ71_:>g|ñMׄü¦+xýÀÛ6“í›Q¶wÕÞG{jö”ì¹Øs®—V¯3=eùãìÉJe£Mû*çsÉ·ßG|jø˜ð; ~¦ß<oJŸžM·WÕ~8ªö.Ú«fOÉžŠ=õzŽõ*ÔC‚}™=]¥Ì§_¨“>·|êø&ãcÄW _%|,øã‰‚_ðû>*ï¥lß”l?JÙÞU{í¥Ù«dÅžz=Çzê!ŸE¿É¾Z¡L§ý:ésË§Ž¯2>U|ÓðmŸ†„¯ ~2àõ;oØd·/f{Sí÷Bµçh/Í’ýQHöXì©×s¬—Pþ<øºøíNe6n?¯“>·|êø*ãcŇˆ/ ß'|Sð)àï´¿Yø}߀wß|·änŸÈöPígÛj¿Ÿª=D{Ýì!Ù‡dÅžz=Õzê¡Ã¿‰.³ow)£—i»júÒò1䫌"¾nø.áë‚?i ~!àõ;7cG·¦nÙª=fû¶ÚÏ·Õþ V{í¹ÙC²’={êõëU§‡}W|¿¬šLËuÔ—–%3þYÈøñmÃW ?WðP~ªß÷}rÞASݾi»½Êö»ÛlUûÅPíÅjo¢=7{ì%ØS®—V¯ýeô»â÷‹ªÁ´[G}Žùò1㟇Œß7|“ð}ÁO|ê÷CýÀM™ëöœí‡}¶Ÿ”l/Õþp¨öO†j4T{íÛf¯“={ ö¦Ö«N)þCô‡ÚgÕSiµŽúÒò)äcÇÇŒß5|“ðŸ _ü6àÏG§ -xýÀuíìö£Ðí!ÛÇÙþ`Èö¡Ú?ÕþÙPí‡jÑþlˆöÔì9ÙK±§^ϱ^B=åø«èOµ?Oi&ÒÚ«¦êsÌç’/_*¾kø:á?¾*ø‡CÁ_ ßüÝðsý.ßXm}·§l?ÌöPíBµ?ª}ˆö§!Ú›fÉ^Š={Sëu§§&ÿ1ùKë¯E÷$oüØf}‰ùò±ãKŇˆo¾Jø/†„¯ -~ømÁ?è~ÛïÇ¡ßïÄ~?Ôï\Õ­épŸëöm¶ŸÍe{¨öÇ©ÚC´•£ýrˆöÜì!ÙK±§^/±^gzJó¿Uþ¾¬íʾŠù\ò%ãKŧˆß6|›ð]Á ¾ ø{CÀŸÆ€¿þ(üÁB¿ïû³à×fºÛ7SÝ~»}ÈöóÙlo«}ˆö¯C´;D{jöœì¥ØS¯—Z¯J=ÅøOÉ?zÿ¬ôÏòÖOMÓW-ŸC¾©øñUÿþrhø!áÛ‚>|ð÷CÀŸ ¿í÷ãÜï‡u¿ó]¿Ý…ûr·Ÿ…n²ýb6ÛëjÑ~™£ýåíu³‡dÁž{½ÔzÓé9ÍÿÕú÷´njTöUÌç¯3>T|ŠøÔðuÂÏütÀŸ‡€?~ªß7Óý¾ï€ýuûíÔí;º}2Û©ö”í¥Ú‡hÑF{jö6Ùc°ç^¯c½+ôÿtþ» í³¾JùÜñ)ãcÅ· ÿÃÐðuÂOüdÀ‡~ßüÊ~—ï£pߤp? áÞuûí¥Û§³ý—jOÙªý»Píu´¿¢=4{(ö”ì9ØK­·©ž{üçÎÿô³£¨¯R>w|WñmÃ× ÿrHøQÁoþiðÛ~?ÙïG]¿ßîû}ß û1îËÝ>dûÅí¡Ûs¶?©²ýÿìÖ×BÉ…ácd%@™¤PÎI$ƒ=öœóþ¯sö®êPÕ]-5Æ1fý×ër]|BíÛmµ÷Yí*Ú¥Ù=d·Á®pÝCu䆾ø2­ü¨×(ï8^Q¼…xÅð*áYð]MðàËÀ“ß%àƒü¾ãøÝæ{|G!„zï™ÜnÃ}[À]¸}Ow{BºØÎnb»Wí©v/Ú¥Ù¥Øol±+^×±nôùÓK3»^§¼ëxUñÒð ÅðáGLx[ðàë -àóðäw¼ð{Êä÷]ÛïQÅïà;B!„ÐûÍwËíQáöÇíî^·Ÿ°Û‰íÌö¢Ãö†Ëv©ö¾«ö)«Ýhv›ì.Øu® þlî«¡€©ÁóäuÅÛˆw ¯ž?6^|É<ùO~Ïšü¾ïø}[ú|G!„zÏ­€û¶€û.ÃÝu;ÃÝãö3v{>Ïl/•+f{]²Ôn±]UûLª]E»Çì.Ù5¯¬nòù·­q½ò&ÅßKÄßꆄ·o|Ó|™_(ä/ðä÷“@¿ï±ßw„ß¾{ý¾é#!„B¡ßÛj¸ï0Ü÷$Ü·ûÜ~a¹½\®T«f¶ÛjŸÚj÷ ]5»Kv ì¬û@þ׋[AzãÄ?:ˆ· / Bðà/ðµZµÂ€/ ù<ûýÌèwæ»ðû.û]òÝñ;øŽB!ôNòÀ=bÁ=jÃ}—áÎng¸»½P(–JåJ¥Z«Õ f{Ëf;©Ýa»Aí.Ú f×ÄnÒºAâß_ÜjÎ{¯(Þ1| áYðÁ€o2àëõZµêúýBó{Rúø.üÎ|ß³ø¾ ¾#„B½§ pÿ(á¾mÁ}OÂÜÎp'·'Ý^­ÖêõÆå%³½m`»TûÜRû­­ví³kb7k=ã?BŠó>Æ+ˆ× oþ^ÞüÂ'x ð]|‹ßhÔkµj¥R.•Š…‚í÷\.›±üN|g¿3ß…ß™ï;à;B!„лi%Üw$Ü÷-¸“ÛîÉd*ö¹½ì¸½Énït˜í}›í¤v‹í fû ³]U»vÙ=däz8¢ÿíô3¢70Þhx?á-Á/Yð&À÷ðmüåe£^÷øýÔö{*•L°ß‰ïÂï’ï»à;B!„Ðû(Ü…ÛîäöD2•Jg2Ù\Îàö†p{»Ýév™í?Û—Ìö[f»ªöG[íŽÙŸU²žç¯k佈W ¯^ü þ†¿°o~Ä€ï3à;ÅïUÇïçä÷““\6›I§SÉ$óýnó}|G!„úó[ ÷]îäv†{2™J§3Ù,¹ý4Øí=vûpÈlŸøÙ~Çl×Ôn£ýÉ1ûWÝì+ÄþÿWë5”÷#^5¼CxŸàïYð·,xüÜü˜?`Àw»v»ÕlJ¿W¤ßóä÷3ò{.—ÍdÒ©T2Á~'¾Ç‰ïÂïf¾ßB!„þˆÖÁ}O…;¹=‘L¥Ò™L6Gp?;?—n/¹noµÚáöÁ`81Û§~¶ß3Ûýj¶ÕþMC{ÙÃêü5…t|€áÂûÿÀ‚¿cÁÛ€'¿3à' øáÐì÷"ùý‚ü~J~Ïf3ét*™d¾1ßcáø¾éÃ!„B¡ŸK‡û–îìöƒXÜ‚{2™J§3Ù,¹à~‘Ïënoªn³ÛgŠÛMlWÕþÕU»íëÄþë¬þ”_ex—ð~Á»€¿õ~Ê€†ƒA¿×Óý^&¿Èïçä÷“\.›É¤S©d"Á|?ßB!„þÜt¹G¤Ü½p1ÜÜS©t&“ÍÜÏÎ î…b‘Ü^!·×]·÷ûƒ¡pûtºžíªÚס}s`ËxƒáUÂÿ™ï^óûÌï÷Kò{ý^"¿çÉïg§ä÷l6“N§’ÉÄñ1øŽB!ô‡ö"¸'$ܳÙÜ Ãý"Op/•ËäöšâöÞJ·ÙîU»í¯ûÿ^Ñ+ï#|€àמü>ŒÇºßä÷*û½H~¿8'¿ŸärÙLæå|ßôB!„P¸ÂÂýІ{ZÂýôŒá^(Ü+Õ*»ý’ÜÞvÝ>qÜ®³ýaÛ5µ¡ýw[ýWP>€ðÁ‚’‚€ÿÄ€_í÷.ù½Å~¯“ß+eò;ñý‚ù~"ùžZËwMïà;B!„ÐÛO“»÷F¸'’î9†û¹€{©Lp¯Õ îÍVKqûØrûÜãöOìv‡íÏ’í+Ôþ"´ÿF¯ÿ,äÍ„×oügüƒxƒß;ä÷æ%ù½V%¿ßÉïß³*ßã&¾GÀw„B¡SÜ·¸Gî,wÜ36Ü/òî•*ÁÜÞd·wÉí³Û™íÌöÏëØnTû[»±Ð„¼ xáwð¿O&ãù½Ï~o³ßuò;ñüÎ|'¿«|? -Ë÷M!„Bä…{Ćû¶€ûž î'î…¢€{­Îpoµ î½~ŸÜ>O&ÓÙìêúÚvûëöGvû“t»Æöï:ÛC©}ÓR_Q8Â낼å÷¯ß§ÓÉx<’ß{]ò;ñüN|'¿ ¾Ÿ«|O¾Ç¼|ÿ(ù®é|G!„z{}Pån‚û>Ã=®ÃýÔ‚{©,àÞ¸d¸wº÷ÁpäöOÒí_„Û%Û¿zØþµoæ/(„àWþIþ‘ï÷û•ôûhD|'¿wÚìwâ;ù]òýÂá{ZòýÐË÷¨à{ÄË÷M_!„Bi©pß’pÿ¨Ãý@ÀýH…û™ ÷Š„{³Åpïõ î£ñx2ή®®çónÇö=Ú=…¼x×ïÏÂï_|~_,æ××W³ÙtB~’ß{]ò;óünñ=/ùž³ø~¬ò]ê]çûð!„BèÍ¥Ê="åe¹ïÜ×ýZ“powîƒ!Á}2™Îf®Ûou· ¶¯pûµošÞ¿ª5‚_xÝï÷ÒïKá÷««ÙtJ|ßÉïÌwò»Í÷‚Â÷”ÊwÒ»Ë÷’ï[*ß7ýQ„B!ôî[ -ÜIî»,w‚{LÂ=a„{Ý‚{·ÇpܧSrûõ|±n¿#·?øÜ¾†í´ÚÕÂÞã÷g¿ßoØïsòûlF|ß‚ïäw‡ïE›ïY…ïñxì@á{Tð="ù½#„B½•T¹Gl¹»pßp?´àžöýqiÁ½ÏpÜg÷ù|±\J·ß¯u{¶oØ¿½€ÿ®^ñû£â÷[öûbA|¿"¾OˆïCÁ÷N0ß“Ä÷#â{Ìæ;ëÝåûøŽB!ô&Rá¾eÃ=Êpß‘p?ˆÅã÷cî§:Ü›Ü ÷ ÁýŠà¾X,oîªÛ¿xÝþ]qûß+ܾiUÿ“­üðF¿;|g¿/—Ä÷kâû”ø>|ïª|/¹|ÏØ|?´øNz·ù.õÞB!„6ž*÷ˆ-÷m–û.Ëà#¸1ÜSî'^¸·,¸îS‚û5Á}¹d·ß9n pûÛßµÚ•ÖÞà÷'߉ï7Ä÷9ñ}F| ¾÷4¾=|O8|ßg¾ï0ߣ6ß·Àw„B¡M¦À}ˆ{Ôû¾€û!Ã=Ép'¹ûàÞ¶à>b¸Ïîs‚û ÃýÞûJ·ƒí½ÔïÏìwæ»í÷;öûr± ¾_ß'‚ï}ß y‡ïiæû1ñ=°ÞwYïÛ¶Þ#Ð;B!„Іú È=bË}Û’;Áý ÜIî÷ÌJ¸îW÷…€ûÃÝu» ÷°nß´šßP€_ãw‹ï÷‚ïKâû5ñ}ÄwÒ»Å÷T’ø~D|Åö¾Gm¾o)|ßôB!„ÞM¹ ¸G-¸³Üc1‚ûÃä¾îîËåÍí-»]û:·ƒí! -é÷oÂï‚ï®ß‰ïw·77Ä÷¹Ë÷‘ïBïÌ÷ñý00ߥ޷m½G w„B¡6îŽÜ·-¹Üî‡ ÷¤wUîÍVK‡ûÿÙ¯­´Ö(ŠÂCQ:–$7‰],X°×Ø84‰ ïÿ%|/(ß=½OúzGïDDDDïÞXXîîžÜî»È}ö“ÊýEp·¢p¹½…ÛߢD¾üþèø=Àwõ{2ß|éÝð}vFø^*Uï9£÷´§÷z'"""zïp÷åž6rϩ܋"÷é‘û+áî»=÷.n4ƒ‡¶.~o†üä{=™ïm½¯‡ø.zW¾OO ß Õ»á»Ñûz'"""zçrOµå.pW¹ -w‘»À=.÷ÜO’àÞˆÁ½éÃý) îƒæïЗè÷–ï÷7â»è]ø^* y廣÷IôNDDDô¾…ånàîÉ=Ÿ/EîÓ3*÷Ü7]¹ªÜãp·ƒpwÜþ軽…Ûß±Î~oº~7|÷ýçûYŒïQ½+ßEï¥b¡ zÏŠÞÓ½Ãw"""¢7/Aîi#÷œ‘{Iå.pË=÷ýî½àÞôážävàþÆuä{«7ß¾Ÿ¶ùnô¾å»ê]ø^,òyÕ{¦­÷z'"""zãå.pW¹DîSÓFî!¸—ÜÃp?7p¿ŽÃýWî­Žp´s?jýîòÝñ{7¾ûzßqùÕ»ð}ªT2zϹzwùŽÞ‰ˆˆˆÞ°6Ü£rÏç E•ûÌlDîÜ·TîÜÏ Ü¯ú‚;nÿëuå{³#ßo”ï—1¾«ÞËQ¾‹Þ§DïÕ{VôžFïDDDDo\[î)#÷IWî9#÷’‘{î«Fîî{žÜî?î·Ipì÷AÃvDJð{Ë÷{¾_œ·ù®z¯(ßcz¾—ŠÅB>¯zÏ w"""¢·l,$÷ •{ZäžU¹DîSÓq¹+Ü+*÷ Ü/=¸×¬z¸ÿ³%ðý©ß-«v'|¿¾2|÷õ^U¾«ÞˆïžÞ•ï¢÷z'"""zóåžQ¹çó…¢Ê}f6 w…{Yänà^U¹¸‹Üî7ý·¸þøþäû­òýGˆïª÷ŠòÝè}Áã»Ñû”£÷\Tïã興ˆèuu—{ÉȽ ÷E•»À}Sånà~dä®p¹ßÞݸÛ.Ü÷¹~ù.zoØu‡ï7Ê÷Ë ‡ïª÷ªò]õ^^]‰è}Zõ^hë}Òè=…Þ‰ˆˆˆ^U'¹ç¹OEå¾²ZV¹ ÜwUîÜEî÷[»܇«^|ÿæ{Mù~mønô~¤|W½W„ï¢÷eữwữ÷¬è=­zŸ@ïDDDD¯©‹Ü *÷éÜ—–U»ÀýГ»ÂýFà^³êuîÜw…û ÕJnÏ1¿wá»eÕî”ï¢w—ïª÷ªð]õ¾V^U½Ïû|7z/òyÕ{½½²žr¸;r¸/ŠÜËkë*÷ݪÊ݃»Êýöîλ‘;pºzóý§ËwÛáûíợ÷#á»ê}«²©z_YŽê½„Þ‰ˆˆˆþ¤6܃rφänàþÝÈ}eUä.pßV¹yr¸‹Ük–U·mî¿€ûðÕ™ï>ßÞv½nÕ”ï¢w—ïª÷½ê®ê}c}Mô¾´Òûz'"""zum¹§ŒÜ'=¹çó…bTîKË"÷õ •»À}_åîÂ]ä.p¯Yõºw#wà>´%ò½éðýw˜ï–¥zW¾;z?>:T½ïlo©ÞË«¢÷…ù9OïÂwGï9ôNDDDô²BrŸP¹§Ûr/…å¾(r/¯©Ü·wTî÷Wîw‘»e ÜÜ}¸?÷¡-Ê÷Vˆïªw‡ï¶ð½¦|¿¾rø®z?ØßS½W6Uï+Fïß=¾½Ð;Ñ‹óéÞ–{Æ—ûT@îó "÷U•{eKå¾`ä®p7r¿«Õî¶wGîÀ}È‹è=ïFï Ñ»%zW¾½Ÿž«Þ«»ª÷uÑûòz'"""ú“|¹'É}Ú“û÷9•ûŠÈ}cSå^ÝS¹Ÿœž©Üî*w«^·¾Ü=¸7ûÐ׉ïFïm¾ÛÂ÷šð]õþãÒèýèPõ¾³½%z_+‹ÞÑ;Ñ+ Ê=—»ÀýÓçÿ¾~3r_¹¯«ÜwvUîGÇm¹ ÜEî¶ ÷púž“øÞôøîë½!z·TïÊ÷Ë‹ó3ÕûÁþžê½¢z_½/ w"""¢—×[¸r_¹¯‰Ü·¶Uî‡*wîFî–Ƚ“{îOÀ}è‹ò½•Ìw[ø^S¾»z?=9V½WU÷ôNDDDôâ’åžKû¢È½,r¯¨Ü÷öUî§gŽÜî"÷ºmÇàÞî®N|ë½!z·ŒÞ•ïFïGª÷ÝÑûƺ£÷yôNDDDÔwÉrÏæò…ˆÜDî«"÷M•{Uå~|{͹7broùrޟ\½‡ø.z¾×î”ï¢÷‹sÕûáê}ÛÕû²è}½õSDî¾Üóq¹¯ˆÜ7Dî;»*÷#•»w#÷º‘{îMîÈýá{Ëå{PïÊwÑ{Í×ûÙ©ê}_õ¾%z_½/‰Þ¿÷Ð;x'"""ŠÉ}²«Ü×EîÛ*÷ƒC•û¹#w»Èݶ÷¹·|¹÷Zß›!¾;z¾ô~¢zßS½WDïå>ô>ŽÞ‰ˆˆhÔK{:Iîóa¹ï«ÜOÏÚr·Dî •{îMà>%è½Ò»òݶÞ¾«ÞUïUÕûf[ïß:é=…Þ‰ˆˆhÄ{Ü—¹oyr?qä~íȽnäþ’{ ¹P |o¾Gõ.|7z¿P½©ÞwÛz_DïDDDDòéÞÜ×\¹ïùrÿq¥pW¹Ûvã> ÷¦+wà>RÅõÞ2zoó½Ñ°ëÂwOïçª÷CÕûŽ£÷UôNDDD”œ/÷ñþä^¹WUîÇ*÷KGî5•{CåîÁýÑ…{D%ý…žã|ï¡÷3Õû«÷zŸ@ïDDD4¢åžråžéCîG*÷ OîVÝÈý!&÷0Ü‘ûÈ×{›ïFï÷ Ûvô~smô~êé}»‹Þ³ª÷ɨÞ=""""¢¿R¹çºÈ}דûyg¹7å>hNÒ_í9Îw_ïÊwOïÊ÷ë+_ïûÝôž7zOô>†Þ‰ˆˆhDŠÈ}¢O¹FånÛ{•»÷Gî­Ü‘ûÖCï÷†èÝrôþCõ~’¤÷¯õ>ŽÞ‰ˆˆhDòéîÊ}Ò“»¡{7¹Ÿ¹ßåþ3"÷§ÜHPq½;|é½îéýò¥zO¡w"""|¹{rOg²YOî3³=ä~­pwåþà˽‰Ü)RœïFïÊ÷?Ð{½Ñè”{* ÷¼+÷OFîs]ån‰Ü¹·<¹wòê¢wåûý}O½/ÌÏ} é=çê}ÂÕ;x'""¢\/¹vå¾”$÷«˜ÜîžÜŸ;Åê­w»‹ÞW:ê}ÒÑû8z'""¢Û˜Gw#÷ •{&$÷/¾ÜË=åþ ¹S=ùÞòùÞÞ×]½wôîà]ôžÍfÒFï)ôNDDD5_îãŽÜ'Üs¹ÿ'rŸwå¾ùj¹‹ôÒûSTïõ¾åê}ÑÕû§YGïùzôÀˆˆˆˆÞ¬ ÜSFîéL6’ûW#÷eWî;åþ³-÷–'÷gäNKÖ»ò½·ÞW}½ê=£zŸpõ>†Þ‰ˆˆè#ÕAî.ÝÜ¿ÍÍ/üÏn}n§­¦a^ÿ‰õŽ„½»€[&NrþÇ3ß+!Œ“ØÛÉž<ë¹Ïá^ë"¹/È}û\î™Ü¿Aîè ý±ÞÃÞ ¦wùIïg©Þ¹LïEè!„BÿGrº§r/“Ü…'¹Wk{¹{$÷æÊýØ`o×û<×{'n‘Þëžc[†®)¤÷ ïLïé½Lz/Bï!„ú rº§r/§rä.«šnZ¶ëùÉ=†ÜÑ{õ[z†ýLïaÃ'½›†®2½W+™ÞÏR½sáýIïÇÞ!„BèwÊå^ÌäÎñ‚ÀäžÑä®hºAr¯¨IrOÃÑd:cr__@îèïöýï¯é}‘ê}ÐOºv+"½»ŽešªHµ½ÞEQàŸô^€ÞB!ô±*ät/Ý™Üy&÷³Lî•*“»ª¦íÜÃf+î<“û%£;äŽþr¿¡÷ é½—é=ð=×¶L]SåTï„w¦wô^&½s½{B„B¡7µ—{‘ä^Nå.îå^“U3LËqë>ɽÝé&ýáh<Í!wôŽýƒÞ·;½/óéd<$½ÇífÔê¤wCW¦÷Êù'ÒûYªwŽ#¼Cï!„úHÈÑãxA`rOéNr—M7-Ûõü Œ2¹ wtŒ^ÒûÃÃýÝ^ïëUª÷Ñpô:q«’ÞÛ44¦÷Z5×»( -<Ïðžé½½#„Bè#TÈéžËgr?Kå~^©2¹«ºaÙŽWQ³w{$÷Él¾ØËýrGïÕÏzÿòLï›ÍÕåé}Fzï'ÝN›ôî×]Ç2uM•¥½ Ïez/æz?öŽ!„B¯•˽Hr/“ÜÝs¹×$EÕ “äî7Âf+îô’Áp<™ÎËÕÜï!wô^½¦÷[Òûu¦÷ùl: 2½Gaà{®mº¦0½çxgzçS½—Hïè!„B§]!§{‰èÎq©Üwtgr—M7-Ç%¹G­v§›ô‡£LîëTî[Ƚ{oÔûb>›Þ{ݸ݌AÝslÓÐUE®Us½‹©Þˤ÷b®÷cO‰B!ôër¹IîeŽçQÜɽRerWuò]Ïžä>žÎæLî—W› ÉýrGïÞ¯ôÎðžéýf§÷Õr1ŸNÆÃAÒëÄ­fØðë®c™º¦ÊéðÎô.<ÇÞK9Þ¡w„B`…œî%¢;Çñ‚ð$÷š¤¨šaÚŽWQ³w{ýÁh<™Í©Ü¯Iî·Lî©Ü¿@îè={Qï÷Oz_gz ûI·ÓnEaà{®mº¦0½WÎ?‘ÞϘÞyžá½Lx/ï!„:Ír¹IîeŽç™Üwtgr—M7-Ç­û°ÙŠ;½d0Lå¾\AîèúAïÏõ¾Ýn®./˜Þç³é8Õ{ÜnF î9¶ihª"ת¹ÞEAà9Žð½#„Bè4;;£;Çñ£{&÷Jµ&+ªnX¶ëùAµÚnÒŽ&Ó“û:“ûM&÷Ï;:VxÿAïw¤÷Íuª÷Å|6ýé=løu×±L]Se©VÝáéßéxG!„Ð –Ó=—;ÏäžÑÉ]’UÍ0mÇ«¨ÙŽ»½þ`4žÎæLî—W›í–ä~Orÿ䎎×Þ¿èýéý6×ûj¹˜O'ãá éuâV3 |ϵ-CWYªVvzS½Þ¡w„BZ¹Ü‹$÷r*w1“ûy¥*ÉŠ¦›–ãÖýFØlÅTî“Ù|‘ÊýzCr¿ƒÜÑ)ô“Þ¿<éý&Óûšé}6Œ†ý¤Ûi·¢FP÷Û44U‘jLï„w¦wAà¹\ïÀ;B!„N§œî%¢;Çñ‚ÀäNtgr¯IŠª–íz~F­v§— †ãÉt¾X®r¹ß2¹?ìäþ¹££ö ½3¼~¸'½o·›«Ë ¦÷ùl: ú½nÜn† ¿î:–©kŠ,Õ*çŸHïg¢(ð<Ã{™ð½#„BèDÊå^$¹—9žDFw&÷O畚$+šnZŽWQ³w“þp4žÎ˜Ü×?ÉýË^îß wt¬¾¿¨÷;Òûæšô¾\Ìg“ñpô:q«¾çÚ–¡«Š\«îõ.<ÇÞKÀ;B!„N£œî%¢;Çñ‚°—{µ&+ªnX¶ëù°ÙŠ»½þ`4žÌæ‹Õúâòj³etOåžÒ=•ûWÈ»ôþ¸ÓûÓûm®÷Õr1›NFÃ~Òí´[Q#¨{Žmêš*KµjŽwQày†÷2ázG!„ÐÑËå^$¹—9žÄœîÕš$«šaÚŽW¨Õît“Áp4™ÎK’ûõ†äÎè¹£Së5½ß¤z¿X¯–óÙt<ô{Ý¸Õ ~ݵ-CWYªVr½ Ïq„÷ðŽB¡c—Ó½Dtç8^r¹Wª’¬¨ºi9nÝo„ÍvÜíõ£ñt¶X®Ö;¹ß2¹?ìäþ¹£ê9Þ¿îðþùážô¾Ý^_]^¬—‹ùt2’^§ÝŠÂ î9¶ihª"Õª9ÞEçÞË„wè!„BG,—{‘ä^æxžÉ=£{¥Z“U3LÛõü ŒZq§— †ãÉl¾X­/.¯˜Üo^‘;莎ÞÙ­·í4Õ ã1@Nö‚‚€‚*²5mª³³½ÿëY?ˆÍfe¥›t}ï=¼c<ÿSï_Z½ßµz¯Ê"K“8 -ƒ•ï¹s{jm¬*²$òÜEï CSðŽB¡ßÜ3ºSͺwrg9^”dEkÚÙs×[®‚0Š“4/ÊVîBw"÷ãé¡§;äŽþÀžëýk¯÷ÑûýYïM]y–lãM°^ú ×™MMC×FÊPžëñ~ÃÐt‡wè!„B¿«'roéNÓDîgºs¼ ÊCe¤é†99îÂ_­ÃM¼M³¼¬ê‹Ü¿<“ûSºÿn±!té¥ÞÿyÔûçÏŸû]S—Ež&q«¥çÎí™eN´±ªÈ’Èsl¯w†¡©NïÀ;B!„~KOèNäNÑ ¡{'w–ãEIVÔ±61­™=_xËU°‰¶IšUÝìö­Üï‰ÜO½Ü¿BîèíûëàýátlõþéŽè½®Ê1­™=_xËu°‰¶I–UÝôr'tèè¹£wÐs½íõ~jõÞâ}¿kª²ÈÒ$ŽÂõÊ÷\Çžš†®Ô¡, -<×ãý†¡éïà!„B¿² Ý-Ý)B÷›žî/HòPiºaMmÇõüUFq’æEY7»ýáÓgB÷ãéô(wÐýù½Ô{‡÷‚÷‹ÞëªÌ³dm‚õÒ[Ìí™eNô±ªÈ’Èsl¯w†iñ~ÝâzG!„Ð/ê"÷«Vî×Mè~–;Ëñ¢4TÔ±>1­™3_øËu°‰¶I–—UMä~÷©•ûñ"÷¯;z/½ª÷Ñû}«÷ý®©Ë"O“8 -ƒ•﹎=µ ]©CYx®Çû Á;Õâ}¼#„Bè×t¡û ¥;E¹÷tçxA”‡êHÓ kj;®ç¯‚0Š“4/ªºÙåþ…Ƚ§;äŽÞQ/ñþDïï¢÷ªÌ³do‚õÒ_Ì™eNô±ªÈ’Èsl¯w†¦ Þ¯[¼Cï!„úé]ä~ÕÊýš¢ ÝÏrg9^”dEëÓš9ó…¿\‡›x›fyY5»ý™îÇÓéQîÿBîèõRïÞÞÏzß5uUäiGa°ò=×±§–¡k#u(‹ÿï MQÀ;B!„~IÏèNQ4óƒî¼ ÊCu¤é†5µ×óWAÅIšUÝ\ä~<ËýL÷o ;z_½ª÷ÑûýçÏw‡ý®©ÊhéNºßœéÎr¼(ÉŠ:Ö&¦5sæ ¹7ñ6ÍŠ²nvûC+wB÷‡GºÝÑ{íU½ŸZ½þtwØ7uUäiGa°ò=×±§–¡k#e(‹ÇÞvz'x§ Þ¯[¼Cï!„úõr¿jå~MÑ„îÜoYNå¡2ÒtÜڎëù« Œ¶I–UMä~×Òýx:Aîè/é5¼?¼·z?ìwM]Yº7ázé-æÎÌ2'ÚXUdIà9öŒw¢wŠÞB!ô“úð”îE3ºs¼ ÉŠ:Ö&¦5³ç o¹7ñ6ÍŠ²nvûNî„î½Ü{ºCîè=÷ý5½ŸˆÞ ÞïˆÞëªÈÓ$ŽÂ`å{®cOMC×FÊP޽=ë¡éïà!„Bo݅î4}‘;Ë ¢4TFcÝ0§¶ãzþ*£8Éò²ªwûCG÷ãéB÷³Ü¿Aîè÷¨÷ï½Þ_:½ïwM]Yº7Ázé-æöÌ2'ÚXÊ’Às¼3-Þ¯[¼Cï!„zËz¹_µr'tg~Ð$y¨Žµ‰aÍìùÂ[®ƒM¼M³¢¬›]/÷ã«rÝÑ»îÞÏz?ãè½Åûa¿««"O“8 -ƒ•¿p{júx¤ %‘çØÛïDï4Eï!„zã><¥;Eè~s¦;Ëñ¢4TFcÝ0§3Ç]ø« Œâ$Í‹ªÞí{ºŸžÑrGGß_Õûñ¬÷ý®©Ë"K·ñ&X/½ÅÜžYÆD©CYxööc«w‚wºÃûxG!„Ð[u¡û £;MèÞÉý–åQª#mbX3{îzËu°‰·iV”u³ëåNèþTî ;ú{zÔû#Þ‰Þ;¼ö»º*ò4‰£p½ò®3›š}¬*²$ðÛãiñ~ÝâzG!„Ð[ÔËýª•;¡;s¡;Ç ’¬¨c}bNgŽ»ðWë0Š“4/ªz·'t¿'t?=<£;äŽþ¦ñþDï§ãYïû]S—E–n£M°ZzîÜžZ†®”¡$ -{Ûë¦(à!„BoÔ‡§t§Ýo:ºß²/JCe¤é†5µçîØ­å´ñÀ8)è–@B$îSè¾ÁvŒ;à¾ÿëô¯»ÍîfÓg’ß÷ßt¾XmLËqý Š“t·Ìçþònî'Ì~2—½_òNö^ä=K“(ô=ÇÞšëå|6 õ¾¦*r[x–¹ä½Qäýy€ïu®ûmQ÷©{>÷f‹bXNÛ²¢j}}8šÌæËµ¹µÏ£$ͪºêº_掺ÃO¥ÎûÕÞ_¾”{O“8 -<×¶ÌÍj1›Ž‡Æ@ëuåŽ$òCSeÞÉÞIÞïò¼cïð=ª¹ßäs'u¨êNÑ Ç RGîö´1Og‹ÕÆ´l× ¢8I«¹¿Ôs¿ªûGO àÿìízïUÞÉÞ‹¼gi…¾çØÛÍz9ŸNF†Þï©J§- -KS­rï$ï÷È;|§O×u¿'uÿü¼î-Šf9A”:ŠÚëëÆh2/×›­íx~ÅiVÕýP×ý2wÔ~B×y?ïýåK±÷,Mâ0ð\Û2׫Ål2êMíÊmIàY†®óÞ(ò~‹¼À_u®ûmQ÷F^w2÷f‹bX^Ú²¢j}8žÌ«µiÙ®„q’fÅÜIÝÏs?bîð³»Þ{•w²÷<ï»,£Ðwk»Y-çÓñÈô{]¥#‰<ÇÐT«È;Ù;Éû]ž÷äþ‚jî7ùÜIݪºS4Ãñ¢Ô‘»=m`ŒÆÓùbµÙZŽë‡Qœf»¢î/‡ºî§ºîý+€¿Í[½÷c½w’w²w’÷$ϵ·æz¹˜MFC½¯©ŠÜŽe¨V³Ø;ÉûýuÞ±wø×u¿'uÿ\Ô½EÑ,'ˆíŽ¢öúº1šÌæËµ¹µ/£„ÔÌ=¯ûyîÇzî¨;üÔ꼟.y'{zÜï²$Žßu,s³Z̦ã¡1Ðz]¹- <ËÐuÞEÞo‘wøVŸÞÕ½AêžÏ½Ù¢–¤¶ÜUµ>Og‹ÕÆ´×¢8Év{R÷//—ºŸêºô¬þfoõÞ—½y&{ßei…¾çØÛÍz9ŸNF†Þïu•Ž$òCS­2ïyÞïò¼ß ïð Îu¿-ëþPբޥŽÒíõÆh‘¹_ê~ªëþѧø!Þê½/{'y"yOã(ô=ÇÚnVËùt<4Z¯+w$gºÎ{ã]Þ±wøCŸ®ë~Ÿ×=Ÿ{³E1,/Hm¹«jc8žÎ«ÍÖr\?Œâ4«ê^ÏýXÏu‡_F÷Ó%ïùÞ÷YšÄaà¹öÖ\/ç³ÉÈÐû=UéH"Ï14Uåý¡Ìû-òιî·EÝçºS4Ãñ¢ÔQº½þÀM¦óåz³µ/£$Íʹ_ê~ªëþÑ›øÞ꽫½eÞwYGï:–¹Y-f“ñPhª"·EciªÕÌóþ¹Èû]ž÷äþÐ¥îwyÝʺ·(šå±ÝQT­¯G“Ùbµ6-Ûõƒ(N²]Y÷ášû±ž;꿘:ï§*ï¯$ïùÞIÞ“(ô=ÇÞnVËùt<2Z¯+·%gºÕüg¾w’÷{äþœjîEÝïIÝ‹¹7[Cê.µå®ª Œáx:_¬6[Ëñü0ŠSR÷§ç¼î¯UÝOuÝ?úQ?Ü[½÷c±w’w²w’÷ý.Mâ(ð\Û2×Ëùl22ô~¯«t$‘çš:ç½ñ.ïØ;|ÍWêN3,/H¹ÛëŒÑd:_®Í­ízA'énÿøDæ^Ô=Ÿû±ž;꿤:ï§"ïùÞIÞŸIÞ³4ŽBßu,s³Z̦ã¡Þ×TEn‹ÇÒT«ÌûC™÷[ä~ϧwuoœëNÑ Ç‹RGQ{}}8šÌ«µi9®Dqš‘º?“ºçsÿ¯ºô >È[½÷KÞÉÞŸ÷YšDaà9öv³^ÎIÞÖëÊmIàY†j5˽çy¿Ëó~ƒ¼ÀWœë~[Öý¡¬{‹¢YNÛ²¢j}8žÎ«ÍÖrõ¦*r[HÞ©sÞÿÃn] ¶q­a}±c;m-f²˜YFQ42ì=ýïÐ(vÚ4P¿JßYŹEÞà•pÝoŽu'Rél®PªPÝ[^8žÎ‚$«šAu_ohî¼îlîǺ¿÷–þyöòîxy·-C×I\Îg“Ñ ×m7ëÕ‡r1ŸË¤’ñXÔÍûÝiÞ±wø¢î·~ÝcT÷L6_,UªuV÷Áh2/IQuôW¼îlî¼îϨ;À›‚½?ñ½³¼³½SÞM]SeQXÌ&ãaŸòÞ¨QÞ ¹L:™ˆE#,¼_#ïà9­û[÷h,žLerùbù¡Zo¶»}ªûl±eEÓ ‹ê¾ÝùuâuÇÜÞäý™çýàì÷,ïë•e”wIX̧”÷^§Ey¯” -¹l:•ˆG#÷lï<ïYÞ¯wpçþÍÝ­û'V÷H4–H¦3¹Õ½Ö`uާ³… ʪ¦›–½Þliî{6wÔào{÷òîxy·-CWI\Χ“Ñ€å½^­”Šùl†ò ò~ƒ¼€Ë›û›;¯;Íý>Sݳ¹B©Buouzªû|)HŠª¦½rëîxuFÝþR(ïlï,ïlï”wS×Y\.f”÷~·Ý¬WÊÅ|.“JÆcQ/ï·È;páºßuÅ©t6Ou¯ÖyÝG“Ù|)RÝuâºo½º³¹?aî'Èû3ÏûÁÙïYÞ×”wCSeIX̦ã!Ë{£Fy/ä2éd"ð¼ß!ïÀ¼Y÷h,žLe²ùb™êÞlwû¬î A”M7©îš;ÕýÀëþŒº|ƒ`ï^Þ7ï+›å]‘„åœò>èuZ”÷J©ËRÞãnÞ?yy¿öò޽\¦“ºßuOPÝsT÷‡¯ûp<¥ºK²ª¦µZ³ºïCuÇܾA(ïlï<ï»-åÝ2tM‘Äå|6ñ¼×«”÷|6by¿g{çyÿÈò~…¼\ªÓºßñºGXÝÓ™\¡Duo´:½Õ}¾$EÕ Óöêî8|î¨;À7 òþÌó~pö´÷í†ònRÞeQX°¼÷»í&å½\Ìg3”÷X÷äà’}ðê~íÕÍý>SݳT÷JÕ­ûh2›/EYÑtâºÓÜQw€ïìý$ïë•eš*K”÷éxÈó^{ ¼ç2©d<EÞàÞܯØÜuÅ©t6_¤º×›ínŸÕ}!𺛖½ÞPÝ÷{çÀ뎹ü3¡¼³½;Ž—wÛ4tU‘„åœå½×i5XÞ ¹L:™ò~‹¼\¬pÝoBuO¦2T÷òƒ[÷áxJu—dU3LkåÖÝauBÝþ¹ ïÏAÞiï”wËÐ5E)ï“ÑÀÍ{¥TÈeyÞ#<ïwÈ;À¥z³îQ^÷«{­ÑêðºÏ—‚¤¨ºaÚT÷[÷GÔà;{çy?8û=å}³¶-ÓÍûbÆòÞm7ëUÊ{>›N%âÑÈ=ß»›÷k/ïØ;À¥8©û­[÷H4–H¦3¹BÉ­{o0buyÝ-ªû–æ¾w¼î˜;À÷ åý‰åÝqó¾²LCSeI ¼‡}7ïåb>›¡¼ÇByÿˆ¼\˜ÓºßyuSݳT÷JµîÖ}2[,EYÑtÓ²×Ôàg8Éû£›÷åÝfyW$a9Ÿzy¯=PÞs™T2”÷7ïWÈ;À¥ø¢îlî÷¬î©t6_duo¶»ý!«» ʪf˜ÖÊ­»ãð¹£î?"´wÊûÁÙÓÞ·”wËÐ)ï"ËûhÐë´,ï7ïQäà2yu¿>©{Œêž¡º—¼º§ó… )¬î6Õ}w¬û³_÷÷ÀÔ›yßPÞM]Sdq¹˜Mü¼WJ”÷t2¼\¤AÝi'S™«{­Ñê¸u_²ºë†EußÒÜ÷ÎÁ¯û êð#Byg{wž÷5Ï»*‹‚—÷v³^eyÏò¼Gܼß"ïÛûiÝ£nÝ ^Ý{ƒ«»(+šnRÝ7¨;ÀOæçýù$ï+Û4(ïËûxØïzyϳ¼Ç½¼ß!ï—â+uO$ÓT÷Růûd¶ê¾æuw>÷ îï=€ÿ¸ï<ïÊ;íònºªHÂr> ò^.RÞS,ï÷|ïÈ;Àex«î^÷,«{µÞlwû¼î‚(«šaZ«“ºûsGÝ~Ô«¼ï)ï?÷^§Õ¨=°¼g(ï1äà‚œÔýÖ¯{œÕ=Ô}8žRÝ%^w›ê¾ûLu? î?Û1ïlïŽÃó¾¶-S×™å}2yÏeRÉPÞo(ï×^Þ±w€stZ÷» î)ª{±|¬û|)HŠªÕ}»û¼GÝ~‰—ãÞCy_ùy_ÌŽy/ܼGyÿÈò~…¼œ§/êþé·ß~¿çuϰº?Ô­NoÀë.úuß°º;Ÿ{P÷÷þÀÙ8Íûå}Gy·MCSeIpóÞm7ëÕ -Ë{:™@Þ.ëºÿþÇ}$Æêž;Ö}4™QÝeEÓMË^‡ëþŒºüt¯òN{߆ó>ûAÞ³È;À…øJÝ“T÷B¸î A”UV÷•W÷ƒ_÷Ôà§;æý)Èûfe[†®*’°œ‡óžwóAÞΜW÷kªû_÷¨W÷R%\w‰ên˜6Õ}‡ºür~ÞiïÇáy_{yÃy/yÞã~Þo‘w€³ô!¨ûÇpÝÉ4¯{µÞlwûñWwݰ¨î[š;¯ûÓ±îï½€3ôâïý‹¼›º¦È<ï£A¯ÓjÔxÞSÈ;ÀyóæþFݳáºOçKARܺo¼º?¢î¿ØiÞ^ÞW~Þ³I8ïž÷{Ê;íy8;Q÷üiÝEVwÓ²×¼îŽ[wî¨;À/ò*ïŸw”wÛ44U…Ó¼çXÞc‘û?hïÈ;ÀÙy«î¯îÅӺˊFu_¡îÿ®cÞŸxÞ÷Ÿw[?ïÒiÞ ”÷$òp¦Nê~ë×=îÖ½üPk´:½Áhòºî‡“º¿÷mΚŸwÚû㣗÷Íʶ ]UXÞ§ãa¿ÛnÖ«•òp¾¾V÷ÔiÝg ª»ª¦MußyuBÝþ%/þÞݼ;<ïk?ïËùë¼Gÿd·>´ç -/š fï("ìôŽ œyÿç¹ç¤Bbùç*IØßCìµ™w‚ƺî‹rÝʺ¯ÛÖý±ª¯û“8wÖøenóÞi5ëÕŠ}ÞײcÞcÌ;`[÷%eÝSrÝ7§×½ÕîöúCmÝÇcãÜYwàXæ}¤Í{_™÷š}Þ7˜wǾîË+q¹îY±îÛ“u/+ë^7­ûëÌ€1ïï–yoOÏûó@Ð|´î»û‡ù“Ó³óËòͺînoà´î³þ`nØç]Ü»˜÷ž˜÷†˜÷ûÛë«‹R±p|t°·ã0ïæûêº?Tªõ¦X÷¾¶î#Ö˜¿Æ½Çê¼?MæýÑiÞ““y2ïøØ?¬û;ëÌ„mÞßä¼û½n»Õ¨Uæ=ͼNë¾ê¸îµz³ÍºÞð­yÏ1ï‚óºg²kÎëÞë.Î]¬ûxlœ;ëü:˼Ôy(ó^ÿÒ¼‡™wüæ+ë~u}+×½¡®ûëx‚˼w´y¿)›æ}Ý4ï Ì;þäºî“u¿ë~ÿ¨¬{·×Êu³®û¬˜SƼ¿óÞóÞóþpwS¾œÌû¦:ï æÿr_÷­eÝ‹¥Éº·XwÀc>š÷Š2ïçgê¼o3ïøÝGë¾wpt\Ð×½ª®û@]÷ëxÃ_ãÞÇc9ï/ê¼·Mó~*ç}—yÀçXwÀ÷lóþúò,æ½'ç½6™÷“üá¾6ï©d"μàC__÷z£Õ1¯û;ëx…uÞßļ?¹Ï{vjÞCÌ;~ðÍuï³î€'¹Î{ƒy (¾±îMûºëçκà0ïCæ€ ùÚºßM­ûØ´î³> -˼ôyï2ï„˺ç,ë~s÷`Z÷Öð(·yoÉy¿¿eÞ𵯬{Y¬{E¬{»Óëþüòʺ^eÌûûdÞÚ¼?Þß^3ïø×·×ýI¬ûëxÖ_íÞÝæýÊ4ïkÌ;>ò…u¿Tֽƺ>¡ÏûŸéy¯*ó~aÌ{Θ÷˜œ÷0ó€g¹¬{ÖX÷sÖðoÏûŠ6ïæïúæºYwÀœç½Ã¼àc_^÷†iÝG¬;ày¦y[æ½®Í{‰yÀ_>[÷3Öð+§yï»Îû*ó€Ç}¶îE—ugÝïûμgļǙw<,¤¾û—Ö½kYwýÜYwÀÃ>÷3æ¿ø÷uŸõ™øÐœ÷(ó€×|oݬ;à?ÿ>ï³,ë¾à°î%Öð=æ€ °®ûâ’X÷$ëÎgó~μàyÚº‡åºÇĺ/ËuO›×ý‚u‚à›óž`ÞðšÉºG´u_Q×}}s{—uå“y¿Ôæ}gkc-—IÙæ=ļ0sÎëž“ë¾ïºîcÖð£/ÍûÁó€7}´î‡Êº_±î@`¸Î{MÎ{Y™÷#uÞ³Ì;c¬{T]÷xru²îycÝëÍv§×gÝ¿cÞð-ÇuÏXÖýšu‚Ä}Þ+÷7ʼÛæ}qy`öBê»»¬û‰²î·•*ëÇóþp§Ì{Á:ïËK‹ 19ïaæ€ÙùdÝO•u¿´®ûˆuüÍyÞÛ.óžL¬hóÑç}Öé`M¯{‚uæ€Ó¼÷Ìó^4æ=ͼàNëž2­ûëÔ›÷(óÀ¬hëVÖ}A_÷ìÚÆÖŽmÝ[¬;0ŸÍ{I™÷ÝíÍõœœ÷¸yÞCÌ;¿N_÷H4[X\2­ûž²îçæu°î@ |2ïʼïkó¾Ê¼0[¶u_6­û²î—“uï²î@à¸Ì{Ó<ï‡ê¼g˜wf˾î+‰ädÝLëÞ`Ý`úxÞ¯ä¼ç™w¼ ¤¾»X÷èdÝÓúºËu/߈u¯±î@`¹Í{]Îûµœ÷Ó¼'˜wfdjÝãæu/(ë~÷PÑÖ}ȺAä0ïý^GÌ{µr+çýÔ˜÷”:ï 19ïauÞg2æƒÃº¯¦³¹õÍí]¹îEcÝÛúº¿±î@à¸Ïû£2ïgrÞ÷v¶6Ö²ê¼/-Êy0ïüÇuÏ(ë¾/×½dZ÷Þ`ø¤®û˜u‚Æ4ï#‡y?—ó~ Ï{2_–óeÞøES래¬û¡\÷ ûº¿*ëþκA3=ï1ï-ó¼ióžó¾bš÷óÀ/P×=l^÷”¾îyÓº7Õu~aÝÀr™÷†:ï—bÞMógÞø]úºG¢1ùîêºg×6¶äºŸˆu¿º–ë^gÝyà4ï]1ï51ï7e1ïeÞ7×sÙô*óÀï -©ï.Ö=*×}y²î;{bÝOåºßÞWªbÝ;½¾eÝÿ°î@MÍûP›÷ÊÜ÷¢œ÷Ým1ï§yŸuÒ2ûº¯$’úºˆu?SÖý‘uæ‡ã¼·'ó^ó~¸¯Ï{˜÷0óÀÏšZ÷x2•ÖÖýH¬û¹¾î-Ö˜æySç½gÌû…˜÷¼>ï)uÞb±h„yà‡M¯ûêdÝź_šÖ}ÀºóA›wñîê¼?)óÞTçýJÌû‰uÞ—™w~žÓºgrë›Û»bÝ bÝË7rÝ­NW_÷‘±î¼;P–y}}Öæ½.çýZÌû©˜÷½­µl&•LÄ—å¼G•y1ïüuÝÃÆº'ôußë^”ë~÷P­±îÀ¼±Îû‹2ï1ïÕÇû[1ïgbÞÔyO‹y_aÞøqúºG¢1ùîrÝSÚºŠu/)ë^ëÞë>dÝ92=ï}Ó¼Ÿ‹y?2æ=nŸ÷YÇ €à ©ï.Ö=*×}YY÷ìÚÆ–X÷¼X÷ cÝ{¬;0gÔw·Í{K›÷K1ïÇrÞ7×sÙô*óÀO³¯ûJ"©®ûÎÞaþä´tqu­¬{SY÷'±îo¬;0?¦æ} ç½!çý¦,æ½ æ}w[Ì{Æ2ïaæ€`_÷x2•V×ý@¬û™X÷ÛûJ­®­ûóë«XwåÝYw`.ó>Òç½+æ½V}¸“ó^,îëóžó.Þ=DÔwgÞøš^÷U}ÝĺŸËu¬ŠuïôúbÝ_Xw`ÎüµÏûP›÷Š2ï¥b!¯Ï{JÎû’˜÷(óÀP×=lY÷Ln}s[¬û±X÷KmÝ[¬;0¯ç½­ÍûÕE©x"æ}gkc-›I%ñe怟Rß=‰ÆÄ»‹uOhë¾»t\(ž_–oäº7äºÌëþ‡uæ†yÞßļ? ½n»©Ìûµ˜÷Ó“üÁž2ïi1ï+¶yŸuæàìÖçvâX…Ñe3? -”Éå„DŽD4Æ®š÷¹Ò—Ýå.·×r×ø|qÎFèÿ¥ ÝÿCèþ-¤»Ó½Eènº÷‡“)¡{º#ôuKðþHð~<b¼Ï¦£AàÝ24ù‚w&Áû-ðŽB}`ÏéžfXN²ùb™Ð]ÑLÛ é>&t_ºï"ºŸ@w„¾`1ÞŸ(Þï Þ7ëÁû$Ä{Û± •à½R*ä²"Ÿà=¼#„BØOtϺ‹!Ý«uBwÃv½ND÷»e°ÝúÒ½Š÷Å»Oð®«r£â]y–à=´{„÷à!„ú(Ýoº3Ó½)k†EèÞ#tŸQºï Ý®è»#ô¥z÷í&X-æïý.Á»©«­ïBˆ÷oÀ;B!ô¡ÝP»§RWt—r…RHwÕ°B÷ÁhBè¾ -é~8 ÝAw„¾hÔî!ÞO×xŸŽ‡ï®mê -Á{¹˜ÏJÇ2éçxÿì¹C!„þô.tìžaXJ÷JÐ]·œ¶Oé¾X­7„î÷”îO ;B_´Ÿñ¾#x_Æx÷\ÛДV½â]$xÏï!„ÐGöœîiBwÒ½ÑRu“нÒ}º#„h/ñ¾–w!Þ{ϵ MnÆxç9&Áû-ðŽBýã~¢{†å)›/– ÝÝ´]¿Ûާ„îÁf º#„¨ÝÏx xßS¼Ï&£Á»c*Á{¥TÈI"ÏžñžJQ»ï!„Ðû£t¿MèÎp‚Ò½Zo)ša»^L÷eB÷SD÷ï ;B_¶ïïÇãa¿Û¬W Šw¿íXº*7jÞ…ï‘ݼöè!„Bn7Ôî©TBw>¦{SÖ Ëõ:½îwË`½ÝïOï÷1Þç!Þ»瑩´®ðžÞB¡èB÷Ðî„î,/J¹B©Bè®–Cè>Mgº?€î¡Wð¾ÝïÓñ°ßõ]ÛÔÞ«åb>+ ›ÞB¡èÝ¿¥ Ý…ˆîµ†¬ê–Óö Ý'„î«õf·?„îgºÃî}á¨ÝC¼Ÿ¼/c¼{®mhJ³á]8&Á;µ;ðŽB½§Ÿèža9AÊæ‹„î-E7í¶ß é>_PºßSº?î¡xßm×Áò.Ä{¯ã¹–¡Éï¥B.+ò ÞSÀ;B!ôînb»ŸéÎp‚Hè^®ºk¦íúÝþp<%t6[Ð!ô¬+¼?\ð>›Œ½NÛ±tUnÖ*ï’ȳL&²{‚÷Ï?„BèÏëL÷TBwžÒ½ÞT4Ãv½¥û2¡û)¢ûwÐ!Ù=ÁûñxØï6ëUŒw¿í˜ºÚjP¼ ïià!„úG%tìžaX^”r…R¥Þ”UÃr¼N/¤ûÝ2Xow ;Bè§b¼»‡x¿§x_Ì Þû]¿m›ºBð^.æ³’À±™3Þ©Ýw„Bè÷zN÷4¡»ѽÖUÝrÚÞ`4™]èþº#„®{÷í& xŸŽ‡ý®çÚ†¦´êÕï"Ï11ÞSÀ;B!ôŽ(ÝoÏtϰœ eóEB÷–¢›NÛïFt_¬Ö›Ýþp<º?žé»#„þ{÷S‚÷%Å{Çs-C“›õj©“Dž%xížàý³'!„ú“º¡vO¥bº3œ º—«„îši»~·?œÌæ1Ýï)ÝŸ@w„ÐUÔî¼ï¶ë`y7ŸŽ½NÛ±tUnÖ*!Þ…ï߀w„Bè}%tíÒ§t¯7Ͱ]Ð}<%t6[Ð!ô]áýá‚÷Ù„àÝo;¦®¶1Þ9–Iï!„лzF÷o†åE)W(UêMY5,ÇëôBºß-ƒuL÷èŽzÑ3Þ ÞÇÃ~·Y¯!Þû]¿m›šÒjTËÅ|V$xÏœñNí¼#„B¯çtOº Ýk YÕ-§Ýé F“YD÷ÝÝ¿ƒî¡gÅx¢x¿ñ¬óéxØïz®mhJ³NñÎsLŒ÷TŒ÷ÏB„BèÏè&¶{L÷ Ë R6_,×-E7í¶ß¥t_­7»=¡ûèŽz½xßn‚%Å{Çs-C•›õJ©“Dže2‘Ýw„BèwŠéžŠéÎp¼Ò½Zo)ši»~·?œÌ拈îb÷Óãã™î°;BèY¼Ÿ"¼ï¶ë`y7ŸŽ½NÛ±tUnÔ"¼ ïià!„úͺGvÏ0,/J¹B©ZoÊša¹^§?O ݃Í6¡ûèŽz5j÷ï¼Ï&ï~Û1u¥Õ¨•‹ù¬$plæŒwjwà!„z«çtOº !Ý+µ¦¬ê–ãuz!Ýï–ÁtG½Ý5ÞÇÃ~·Y¯!Þû]ßµMMiÕ«!ÞEžcb¼§b¼ö"„Bÿönb»Çtϰœ eóÅJ­ÑRuÓiû½Áh2‹è¾‹è~ŠèþtG½ÚŠwb÷ï÷!ÞƒÕb>û]ϵ MnÖ«¥BNy–ÉDvÞB¡¿WL÷TLw†DB÷rµÑR4Ónû]J÷Õz³Ûº?€î¡_÷ïÛM°ŒðÞëxŽe¨r³V ñ.¼§¼ßï!„Ð%tìžaXžÒ½ÞT4Ãv½n8žÍÝÄî§ÇGÐ!ôË.x?Exßm×Áòn6 z~Û1uµÕ¨UŠù¬$plæŒ÷[à!„z£è+º§ Ý)W(UêMY5,ÇëºO ݃Í6¡û¥;ìŽú‹¨Ý#¼?Äx_Q¼wý¶mjJ«Q-¼‹ÇÄxOÅxÿìQD!„þÅEt¿=Ó=Ãr”¬ê¦Óîô£éün¬cºŸ@w„ÐÛñþHð~<ö»Ízµ˜ÏÆÃ~×smCSšuŠwže2‘Ýw„Bè­bº§bº3œ fóÅrµÑRtÓnûÝÁh2‹è¾»¢ûwÐ!ôË~P¼?Q¼ßöÛM@ð>%xïxŽe¨r³^)r’@ðžŽñNí¼#„B¯—Ð=²{†ayJ÷zSÑ Ûõºÿc·NtÓÖ( +PéÆf cŒ ÛÌà†äýŸçl{;´Í½W§i+µRÖÿk}–Cè¾wý :žžÏgÐ!ôcý7Þ}ï°Û®öÜ4Fº¦*í&Å»À³ïÙïzB¡¿³‡Ôî”î ¡»X(Uj–¬¨ýÁxbZÎr½Ý»^L÷§gB÷+èŽú¡¾âý’à=Jð¾Y-ìÙÔêZ·Ó–êÕr1/ -ðŽBý{)ݳ”î,/Pº7ÛŠª F†9·cº¼ ¼ÓýFé»#„þ%j÷ïg‚÷cøîžàݱf“ñ°ßëÊ-Š÷ϱ‰Ýw„Bèÿw§;±;¡;'äòÅrµ.µ;]MÓ¹½XmvÏ£„îÐ!ôã½áýJðþüt"x÷Üýv½t,s2ôUEn5j•RA$xgR¼S»ï!„Ðû’‡LéþŸG–ãsùB©R—Zr·×ާ3+¡»Kè~$t?Sº¿€î¡ê•âývÇ{x‡ïöÜ4Fº¦*íf£Z.Dg)Þ³)Þÿô<"„B] Ý3)ÝBw‘нÖhÉŠÚŒ'¦å,×Û½ëÑñDì~¹^Aw„ÐúŠ÷K‚÷(ô½Ãn³Zس©1Ôµn§-Õ Þó9c™ØîÀ;B!ô¿K鞥tgyA,ËÕF³­¨š>2̹ÐÝ Â;Ýo”î°;B臢vOð~&x?¼»1Þk6û½®Ü’j•R!Ÿã9æñ ïÀ;B!ô®;Ýc»3,'äò„îu©ÝéjúИÎíÅj³;x~J÷ èŽúhox¿¼??ŽQà»ûízéXæd4諊ÜlÄxž}Ã{&»#„Bß÷Ú=¡û#Ãñ¹|¡T©I-¹ÛëÇ“™åÄtwý0:ºŸ)Ý_@w„Ðz¥x¿Ýñ^‚w{n#]S;íf½Z.æEKñžÞB¡÷¥tÏRº³¼ Æto4eEíFÓr–ëíÞõƒèx"vÝB?ÓW¼_R¼ûÞa·Y-ìÙÔê½n§%%xÏñ›ØxG!„Þ÷Žîœ æ‹åj½Ù>2̹½ˆéîaJ÷Äî ;BèƒQ»'x?¼£Ðwc¼;Öl2ö{ŠÜ’j•RA$xgR¼Ãî!„з=$v'tOìÎr|.¡»Ôêt{úИÎìÅj³;x~J÷Ëî°;BèC½áýJðþüt:Fïî·ë¥c™“Ñ@S¹ÙHð.ð,Å{xG!„¾-¡{&¥;Cè.J•Z£%+½þ`<™YÎ’ÐÝõÃèHè~¦tÝBâývÇ{x‚÷…=7‘®©v³^-ó9c™ØîÀ;B!ôm)ݳ”î,/Pº7ÛŠª Fsî,×Û½ëÑñDì~¹^Aw„ÐOözÇû%Å»ïv›ÕžMÇC½×í´$Šwžc)Þ©Ýw„BˆÒý!¦{lw†å„\¾X®Ö¥v§«éCc:·«íîàáî7Ð!ô“Q»'x?¼£Ðw÷»ÍÒ±f“ñ ßSäV£V)Dg)Þ³)ÞÿôX"„BA Ý3”î Ççò…R¥&µän¯?OgÖbµ!t÷Sº_ît‡ÝB?ÑÞ¯ïÏO§cxî~»^:sÓ 4Ui7Õr1/ -ðŽB}_J÷,¥;Ë bL÷FSVÔþ`<1-g¹Þí]?ˆŽ„îgJ÷Ð!ô³Q¼ßîxï°Û®ö|j u­ÛiKõï9žc»ÇxÞB¡¯tíΰœ æ‹åj½Ù>2̹½\o÷®Gè~"v¿\¯ ;Bè—z½ãý’à= -}‚÷Íjaͦãa¿×•[R­R*ˆïLŠ÷LvG!„ÞìžÐý‘áø\Bw©Õéöô¡1Û‹Õfwð‚ðN÷èŽú¥¨Ý¼Ÿ ÞQà»ûízéXæd4諊Ül$xx–â= ¼#„Bwºg)ÝY^ ¥J­Ñ’•^0žÌ,'¡»F Ý/wºÃî ïW‚÷ç§Á»—àÝž›ÆH×ÔN»Y¯–‹ùœÀ±Ll÷ïÀ;B¡OÞ;ºs‚˜/–«f[QµÁhbÎåz»wý :ºŸ)Ý_@w„ЯEñ~»ã=ô½Ãn³Zسéx¨÷º–T«” -ùÏ1ï™ ìŽBè“—ÚýKbw–ãs1ÝëR»ÓÕô¡1Û‹¡»Gè~"v¿\¯ ;Bè7ôzÇû%Æû1 -}—à}éX³ÉxÐï)r³ã]x–â= ¼#„úì¥tÏ&tgÝÅB©R“Zr·×ާ3k±ÚìžRº_®·¥;ìŽú¥¨Ý¼ŸÏO§cøî~»^:sÓ 4µÓnÖ«åb>'p,Û=ÆûðŽBè÷=ÝY^HèÞhÊŠÚŒ&¦å,×»½ë‡Ñ‘Ðý º#„~[ox¿¼?¼‡wØmW {>5†z¯ÛiIõJ©ÏñóHñžÉÀî!„>q©Ý¿$vg9!—/–«u©ÝQ5}d˜s{¹Þî]/ˆŽ'b÷ËõJèþº#„~C¯ï·Ûõ’à= -}‚÷Íʱf“ñ ßSäV£Fð. -OgöbµÙ¼ ¼Óýº#„~SßàýLð~ŒßÝo×KÇ2'£¦*íf½Z.æEc™Øî1Þ€w„BŸ´ïéÎòBB÷FSVÔþ`<™YÎ2¦»F Ý/wºÃî¡ßµûËíJðþüt"x÷b¼/ìùÔêZ·Ó’¼çxŽy¤xÏd`w„BŸ´Ôî_»³œËÿÃn}f§ª`^G²Ö‘nï½wEAT¤«fþã¹›MN¼Hò#~Ï$Þ7W(UêÍvo0šÎW›¦ Óv<ÿr ‚dÝXwø*ɼGŸóîÚÖùtØ«Êz9› ûV£Z.æ³²(pɼ3˜wxUëÎÐugyAÊdóÅr­ÑîöG“ùr³U÷GãlÅë~½‘u±îð¥Þ?çýϻﹶiœtm§¬Óñ ×iÖ«¥B.#‹<ÇÆïÏûÌ;¼ Ú¿ÏuçQŽ×½ZouúÃñl±VvûÃélÙ®G×ýFÖ¾TòîtÞƒàzñ=Ç2£®n7«ùt4è¶›µJ<ï’À³édÞS)¼;¼ ºî)æ¾;Ç‹R&W(UêÍvo0ž.V›¦ “¬»OÖ=x®;޾̿yɼßȼ»Žu>öêv½œM†ýn«Q-óYY¸dÞÌ;¼¢ug躳¼ e²ùb¥Öhwû£É|¹Ùª{²î–ãùòî÷0$ëþÀºÀ—zOæ=ŠÂ;wϵM2ïÚNY-¦ãa¯Ó¬WK…\FyŽß=žw¼;¼š?ôÝÿ­;'ˆ2Y÷rµÑêô‡“Ùb­¨ûÃélÙîçºGXwørÿ›÷ ¸]|ϱMã¨kÛÍj> ºíf­Ï»$ðl:™÷æ^ ]÷óFßãE)“+”*õf§7O+e§é'ô]Ï×ýþ¹îxwøRÉ»?¢Ìûízñ]Ç:Ÿ{u»^Î&Ã~·Õ¨–‹ù¬, -\2ï æ^ÍǺ3tÝY^2Ù|±Rk´»ƒÑd¾ÜlUýh˜–ãù—k$ëþÀºÀ×Kæ=ŠÂ;wϵãy×vÊz1{f½Z*ä2²Èslüîñ¼ãÝà¥Ðw'ëNÞ=Ír‚(“u/W­N8™-׊º?œÎ–ã’u¿‘u§ïŽu€oðþœ÷€Ì»ï9¶ium»Yͧ£A·Ý¬Uây—žM'óžÂ¼À+¡ëž¢ëþ7Íñ¢”ÉJ•z³ÓŒ§‹•²Óô“aÚ®çÇë~ÿ\w¼;|¹äÝQHæýv½y·Î§Ã^Ý®—³É°ßm5ªåb>+‹—Ì;ƒy€Wò±î ]w–$9›/–kvw0šÌ—›­ª Ór<ÿr ‚dÝXwøɼGQx§óî¹v<ïÚNY/fãa¯Ó¬WK…\FyŽßý ﯄¾;Ywòîi–DºîÕz«ÓNf˵¢î§³å¸dÝodÝC¬;|£÷ç¼dÞ}ϱMã¨kÛÍj> ºíf­Ï»$ðl:žw󯃮{Š®ûß4Ç‹R&W(UêÍvo0ž.VÊNÓOgÓv=ºî÷0аîð’wD!™÷ÛõBæÝ:‡½º]/g“a¿ÛjTËÅ|VîsÞñîð>Ö¡ëÎr‚$góÅr­ÑîöG“ùr³Uõ£aÚŽç_nAð\w¼;|“dÞ£(¼Óy÷\Û:ŸÚNY/fãa¯Ó¬WJ…\Fy޾û“¼Àk ïNÖ=~w–ãEºîÕz«ÓNf˵¢î§³å¸þåz#ë’u`Ýà½?ç= óî“y7£®m7«ùt4è¶µJ1ŸÍHÏÒyg0ïð躧’uO³¼ er…R¥Þl÷ãéb¥ì4ýt6m×£ë~£ëß,y÷G’y¿]/¾çXgã°W·ëål2ìwZj™Ì», -›&ïÏ;Þ^}w†IÖD9›/–kv·?šÌ—›­ª Óv<ÿr ‚çºãÝà%óEáλçÚÖùtÐvÊz1zf½R*ä2’Èsé¿tÞS˜wøý躧˜·øÝYŽåL®PªÖ[þp2[®u8-Çõ/×Y÷¬ûëßìý9ï™wŸÌ»ium»Yͧ£A·Ý¨•‹ù¬, KçÁ¼Àï÷±îL¼îi–¤xÝ+µf»7O«ÍNÓ†i»ž¯û=Œ"¬;ü€äÝQHæýv½øžcO‡½º]/g“a¿ÓªW鼋<ÇÆïÏ;Þ~9úîÿÖD9›/–«V·?šÌ—›­º'ën9ž¹ÁsÝñîðÍ’y¢ðNçÝsíxÞµ²ZLǃ^»Y¯” -¹Œ$ðl:™÷æ~7ºî)æ¾;Ç‹R&W(UëÍNo8ž-ÖÊn8-Ç%ë~#ë’u`Ýà¼?ç= óî{ŽmG]ÛnVóé¨ßm7jåb>+‹—Ì;ÃàÝàWûCßa躳œ e²ùb¥Ölw£é|µÙiúÑ0m×óãu¿‡Q„u€’¼û# -ɼ߮ßu¬óé°W•õr6ö;­zµTÈed‘ç軿1)Ì;üftÝSÌ[üî,Ç‹2Y÷rµÑêöG“ùr³U÷dÝ-Çó/× x®;Þ~@2ïQÞé¼{®Mæ]×vÊj1zíf­Ï»$ð,wó¿ÙǺ3ñº§Y^2¹B©RovzÃñl±VvûÃél9.Y÷Y÷¬ûë?äý9ïAp»øžc›ÆQW·›å|2êw[j¹˜ÏÊ¢À±iòîñ¼ãÝà×¢ïþoÝ9A”³ùb¹Öhw£é|µÙiúÑ0m×óãu¿‡Q„u€”¼û# -ɼ߮ßu¬óé°W•ÿØ­Ï%Å•£±¼pÂ{ï­ HÈc{Þÿyn©¸Ó½ÿ7¢™aó˜ún½œO†ýN«^-óYEyŽÅ;!hwxSÿ¦;aéÎ ¢œ¤{¹Úhuû£É|¹ÙéÖÑq½ ŒÏšî¬Ý‘îðƒ~}Çûõz‰£Ðwi¼ûíz1{íf½RJâ]x.i÷4I!Þà=±v§éNÛ=Ãñ¢¤dóÅR¥Þìô†ãÙr½Õ̓}¢é%é~CºÀÏ{¶ûçãNãýrŽ£Àw£eì6«ùt4è¶µ²VÈ©²(p™$Þ âÞK÷K÷ /H²š+håZ£ÝŒ§‹ÕfoXGÇõƒ(NÚ¥;Ú~Ø3Þû-‰÷( ¼“}0õÝz9› ûV½Z*泊$ò_ñŽv€7ÄÚ–î/ÊJ6_,Uë­N4™/7;Ý<:'/ŸéÎÚé?ì×w¼_¯ç8 -}×±-c¿]-¦ãA¯Ý¬U´BN•%gíž&)Ä;¼–î)’fíÎ ’¢æ -¥J­Ùî dzÅz»7öÉóÃ(¾\i»ÿNw´;ü¨¯v§ñ~9Çaà¹ÎÑÒw›å|2êw[j¹˜Ïª²Ès,Þ A»ÀûaíNKwNešîZ¹Úhu£é|µÙÖÑqý ŠÏšîwšîŸHwøy_ñ~Kâ=¢ñ~²¦¾]/fãa¯Ó¬WJ4ÞI๤ÝÓ$…x€wÃÒ=EÒ´Ý3/JJ6_,UëÍN8™-×;Ý<Ø'/£$Ýo÷Çé/ñlwï´Ýã(ð]çhûÍj1 ºíF­¬rª, -\&‰w‚x€wóoºšî^d5WÐ*µf»7O«íÞ°lÇõÃ(>_¯ßéŽv€÷ŒwÚîÏxïdL}·^Î'Ã~§U¯–Šù¬"‰<—¡ížÄ;ÚÞ -k÷ÓãEYÉæ‹åj£Õí&óåf§[GÇõ‚0>_hºßiº"Ýà5¾âýv½^â(ô]ïÆ~»^ÌÆƒ^»Y«h…œ*KŸù`ñžB¼À;aéž"iÖî¼ )j®PªÔ›Þp<[¬·ºy°O4Ý£$Ýo÷Çé/ól÷ÏÇÆûåGï:GËØmVóé¨ßm5ªe-ŸUe‘çX¼‚v€wÂÚ–îœ Ê4ݵr­ÑîFÓùj³7¬£ãúA'íÎÒí/óŒ÷Çã~Kâ= -ïdL}»^ÎÆÃ^§Y¯”Šù¬" <—´{š¤ïð>Xº§H:iwŽ%%›/–ªõV§?œÌ–ënì“„ÏtgíŽt€—ùõï×ë9ŽBßuŽ–±ß®ÓÑ ÛnÔÊZ!§Ê¢Àe’x'íïã™î$I÷ 'H²š+h•Z£ÝŒ§‹ÕvoÐtwý0Š/WÚîHwx±¯v§ñ~9ÇaàÑx7õÝf9Ÿ ûV½Z*泊$ò\†¶{š¤ïð.’KûJw^”•l¾X®Ö[þh2_nv†ut\?ˆâó…¦û¦;Ú^ê+ÞoI¼G¡ï샹߮³ñ ×nÖ*Z!§Ê’Àg>h¼Ä;¼ –î)’fíÎ ’¢æ -¥J­Ùî dzÅz«›ûäa”¤ûíþx ÝàÅžíÎâ¶{¾ë-c·YÍ'£~·Õ¨–‹ù¬"‹<÷;ÞÑîðX»ÂÒãE™¦»V®6ZÝþh:_mö†ut\?ˆâóõúîhwx¡g¼Óvgñ…w²¦¾[/gãa¯Ó¬WJI¼KÏÚ=MRˆwx,ÝS$´;Ç ’’ÍK•z³ÓNfËõN7ÎÉ Âø|¡éþÕî¯>nø¿öë+Þo×ë9ŽBßuŽ–±ß®ÓÑ ÛnÔÊZ!§Ê"ϱx'í;!Iºg8A”Õ\A+×íî`<]¬¶{ã`Ÿ˜úv½˜‡½N³V)rª, |æƒÆ;yÆû«Gà¤{ФY»ó‚¤dsÅR¥Þìô†ãÙr½Ó̓}ò‚0>_hºµû«/à¿âýv½žã(ô]çhûÍj> º­Fµ¬å³ª,òÜïxÿâþfÉ‘¥aéÎñ¢¬æ -Z¹Öhw£é|µÝ–}rý0Šiºßîð'y¶ûçãNãýrŽÃÀ;9Sß­—³É°×iÖ+¥b>«HÏÚ=MRˆ÷Ø­¯וÃ0[À0'Q9çœ#)fR£9ãýïÇÝ$Ž øÍOWê[DÕE–¥;GJ¬ÝQR4£\©5Û½ÁxºXm§ËÝqý0ŠÓ'm÷,ÝÑîð1òxÿýýóÃâ=‰ÃÀ{Ø×óq·YÎ&Ã~§U¯Z¦®Ê¢Å;!hw(²¬Ý aéÎ ’¬ê¦U­·:ýÑd¾ÜìŽç›ýð‚0NXºçíŽt€‘·{ï´ÝÓ8 -}×¹_O‡íz1zíf­R64EÖî%Â!Þ ¸²tçH‰µ» JŠf”+µf»7Ïëíát½;®FIÊÚýîhwøy¼ÓvÏâ=‰£À{Ø·Ëq¿YÎ'£~·Õ¨Z¦®Ê’À³x'íÅ•µ;!,ÝyA’UÝ´ªV·?šÌW›ýñr³^ÅI–îïvÿ§Ïà¯w¼³vO“(ô]ç~=vëÅl<ìušõJÙÐYxÚî%Â!Þ ¨²tçH‰¶;/ˆ²¢åJ½Ùé dzÅzw8_ïŽë‡Q’>_´Ý‘îðqÞížÇ{Þþ]ŽûÍj> º­FÍ2uU‘Dþ‹Æ;!hw(ª¬Ý ¡éþÅ‹’¢ê¦Uk´»ƒÑt¾ÚîO—›ízA§Ïošîhº£ÝàüãýçõúN“8ô=ç~=vëål2ìušõjÙÐTYxÚî%Â!Þ ˜²tçòtDYÕ «ZovúÃÉl¹ÞÏWûáaœ¤4Ýþüþ"Ýàãäíþïß?4Þ¿Ÿi¾ëÜ.§ývµ˜ŽÝv£V1uM‘Dþ‹Æ;!hw(¦<Ýóv%E3Ê•Z£ÝŒ§‹ÕvºÜ×£8}ÒvÏÒí'÷ßß??,Þ“8 ¼‡};w›ål2ìwZõªeêª, -y¼sˆw("v_Ó]eU7­j½Õé'óåfw<ß쇄qÂÒ=ow¤;|œ¼Ý³x§íž&Qè»Îýz:lW‹éxÐk7j•²¡)’˜·{ïÿôüŸXºs¤”µ»()šQ®ÔíÞ`<]¬·‡Óõî¸~%)k÷wº£ÝàÃäñNÛ=‹÷$ŽïaßÎÇÝf9ŸŒúV½j™º*‹ÂßxÿâІGH–î‚(«ºiUë­N4™/7ûãåf?¼ Š“,ÝßíþOŸ4ÀÿzÇûÏëõL“(ô]ç~=¶ëÅl<èµ›µJÙÐIX»—ǡݠhXºs¤ÄÚ]%E3Ê•Z³ÝŒg‹õöpºÞ×£$}¾h»#Ýàc½ÛÆû÷3£À{Ø·Ëq¿YÍ'£~·U¯Z¦®Ê’À³x'„µ;⊄]GKw^dU7­j£Õí&óÕf¼Üì‡Dqúü¦éŽv€öŽ÷ïi…¾ëܯçÃn½˜‡½v³V)š"‰k÷á8´; KwŽ”X» ¢¤hF¹RovzÃñl¹ÞÎ×»ãúaœ¤4ÝîðÉòvÏâýõýLã(ð\ûv9î7«ùtÔï¶UËÔUYxï„°vG¼@q°ãâaéÎ ’¬ê¦Um´ºƒÑt¾ÚîO—M÷ ŠÓ'm÷,ÝÑîð±òxgíNã=Mâ0ðöõ|Ø­—³ñ°×iÖ+eCS$Q`í^"‡v€"aéΑmw^eE3Ê•z³ÓNfËõîp¾Ú/ã„¥{ÞîHwøXy»gñþú~¦qø®s¿œöÛÕ|:t[šeêª, <‹wBX»#Þ (Ømq„ÐtÿâEIVuÓª5ÚÝÁhºXm÷§ËÝqý0ŠSÖîYº£ÝàƒåñÎÚÅ{‡÷°¯çÃn½œM†½N³^-š"‹OÛ½D8íÅÁÒ#%Úî¼ ÊŠf”«õf§?œÌ–›Ýñ|³^ÆI–îY»#Ýà“ý7Þi»§qú®s¿œöÛÕb:tÛšeêª"‰üwBX»#Þ Øiq„ÐtÿâEIQu³Rk´»ƒñt±ÚîO—»ãúa”¤Y»#Ýàã½Û=‹÷$ïaßÎÇÝf9› ûf½Z64Ež¶{‰pÚŠ‚¥;GJ´ÝyA”UͰªõf§?œÌ—›Ýñ|³^ÅI–îhw(€w¼³vO“(ô]ç~9í·«Åt<è¶µŠ©«Š$ò_4Þ aíŽx€"`—ÅBÓý‹%E3Ê•Z£ÝŒ§‹õöpºÞ×£$}¾h»#Ý ÞížÅ{G÷°oçãn³œO†ýN«^µ ]•E§í^"‡v€b`éΑmw^eU7­j½Õé'óåfw<ßì‡Dqúü¦éŽv€BxÇûÏÏë™&Qè»Îýz:l׋éxÐk7j•²¡)’ÈÑx'„µ;â>;,Žšî_¼()šQ®ÔíÞ`<]¬·‡Óõî¸~%éóõóƒt€bÈÛ=‹÷×÷3£À{Ø·óq·YÎ'£~§U¯Z¦®Ê¢ÀÓv/ŽC»@°tçH‰¶;/ˆ²ª›VµÞêôG“ùr³;žoöà ¢8}~¿òtG»@äñÎÚÆ{šD¡ï:÷ëé°]/fãA¯Ý¨Uʆ¦H"ÿEãÖîˆwøtÿa·^pSå0 ',¹#^€*UªT¨B*—-rÙûŸÿŒ‹&ž)Hò=“x_š+†~ݧ,/HŠºXéoæîÃv¾¼ïð'ÉnEù¨Û®_÷ßwǺÀü¾û0ïÿýûÛ5uuÏÿ¤qøg÷ó`½o m9ŸÉ"ϱý»OÃàÝàõÑugȤw–ãEy6_jÆæÝ:|ºg?ˆâôOQVuÓýíß}Xw¼;ŒÂï¼Ówïç½k›GYäYò~{_Žý±3ßôÕBU$g§ý¼Bßó¯ÆŠ!¤_÷)Ë ’¢.VúÚÜ}ØÎ—÷þ$Y~/MÛõëþûîXw…ßwæý¿»¦®ÊâOGv?ÖûÆÐ–ó™,òÛ¿û„0 Þ^]wæwÝ9^”gó¥fl¶ÖáÓ=ûA§вª›îoÿîXw“ßy§ïÞÏ{×6òžgÉOøí}9öÇÎ\ë«…ªHÏNûy'„¾;æ^MC~ß$E]¬ôµ¹ÛÛΗ÷þ$Y~¯M;¬;ÞFåÿóþß¿¿]SWeñ'£À?»Ÿk»1´å|&‹<Çöï>! ƒw€×F×ù]wŽåÙ|©›­u8ºg?ˆâôV”UÝtûcÝ`Tžï>Ì{Û<ª{ž%?á·÷åØû¹ÖW U‘žöóN}wÌ;¼.*†ü¾;/HŠºXéks··“w ¯I–ß«GÓëŽw€‘yÎ;}÷®©«²¸¥qøg÷x°¶C[Îg²ÈslÿîÂ0xwxetÝ2éßåxQžÍ—š±ÙZ‡£{öƒ(NoEYÕM7¼;ÖFæùîü·Í£ºçYr /Þɱ÷;s­¯ª" <;íçúî˜wxU4S !ýºOY^u±Ò׿no;'ï^“,¿W¦Öï£óœwúî]SWeqKã(ðÏîñ`m7†¶œÏd‘çØþÝ'„aðîðºèº3dÒ¿;Ëñ¢<›/5c³µG÷ìQœÞвª›nxw¬;ŒÎó݇yo›Guϳä^¼“cïwæZ_-TExvÚÏ;!ôÝ1ïðšh¤BúuŸ²¼ )êb¥¯ÍÝÞvNÞ%¼&Y~¯M;¬;ÞFè9ïôÝ»¦®Êâ–ÆQàŸÝãÁÚn m9ŸÉ"ϱý»OÃàÝàUÑugȤw–ãEy6_jÆfkŽîÙ¢8½eU7ÝðîXw¡ç»óÞ6êžgÉ5¼x'ÇÞï̵¾Z¨Š$ðì´ŸwBè»cÞàÑD1„ôë>eyARÔÅJ_›»½íœ¼KxM²ü^=švXw¼;ŒÒsÞé»wM]•Å-£À?»ÇƒµÝÚr>“EžcûwŸ†Á»Àk¢ëÎIÿî,Ç‹òl¾ÔŒÍÖ:ݳDqz+ʪnºáݱî0JÏwæ½mÕ=Ï’kxñN޽ߙk}µPIàÙi?ï„ÐwǼÀë¡bé×}Êò‚¤¨‹•¾6w{Û9y—ðšdù½z4í°îxw©ç¼Ów*‹[Gvk»1´å|&‹<Çöï>! ƒw€WD×!“þÝYŽåÙ|©›­u8ºg?ˆâôV”UÝtûcÝ`¤žï>Ì{Û<ª{ž%×ðâ{¿3ßôÕBU$g§ý¼Bß󝆿‰!¤_÷)Ë ’¢.Vú›¹ÛÛÎÉ»„×$ËïÕ£i‡uÇ»Àh=ç¾{×ÔUYÜÒ8 -ü³{lçä]Âk’å÷êѴúãÝ`ÄžóNß½kêª,niþÙýÌ{Û<ª{ž%×ðÛûrìù¦¯æ3Y8–Î;!ôÝ1ïð:h˜B躳œ ɳùJ3w¶óå}‡×$ËïÕ£i‡uÇ»ÀÈ=ç¾{×ÔUYÜÒ8 -ü³ûy°Þ7†¶PIä9úîÂ0xwx%tÝ2¡ïÎñ¢¤¨ ÍX¿[‡O÷ìQœÞвª›nxw¬;ŒÜó݇yo›Guϳä'üö¾ûck¾é«ùLŽ¥óN}wÌ;¼ -š%†ºî,'ˆòl¾ÔßÌí‡í|yßáO’å÷êѴúãÝ`ôžóNß½kêª,þ¤qø'÷so½¯ m¡*’ð?vëÉY5£pd¦q'BÜÝ‚K’_ö¿žËGWåî`ÒC½Ï&ÎáXòî¼;ü(ßï^!ïÎr¼(«zµnµ{ƒñl±ÞÎWÛõƒ(N‹wǺÀÿ½÷»óžÄaàÝo—ã~³šOFýN«Q34Ex–!óNS˜wø9ŠuÏß=_w†åIÑŒZ£Õé&óÕf¼Üî^ÆI±îxw(÷¼“wOã(ð]ûz>l׋ÙxÐk[uSWe‘çØâÝi¼;üÅ»ÓÅ»³/ʪnÖ­vo0ž-ÖÛÃùj»~ÅiñîXw(÷»óžÄ¡ï9·Ëq¿YÎ'£~§Ù¨š" <ËóNQxwø)ȺSź3,/HŠfTÍN4™/7ûãåæx~'źãÝ ÞóNÞ=£Àwíëé°]/fãA·mÕM]•Ežû~wš¼;æ~’$Šþ~wŽeU7ëV»;Ïëíátµ]?ˆâ´xw¬;”ÂûÝɼ§Iú®s»w›å|2ìwšª¡)’À±Lþðîð3u§èJþî Ë ’¢ÕF³ÓNæËÍîx¹9®ÆIJÖï%ñž÷üݳ4Žïn_O‡íz1ºm«fêª,òó•Ï;M“wǼÀç‘ Q4¯ûÃñ¢¬êfÍjuãéb½=œ®öÝ ¢8ÍÈ»cÝ $ÞïNæ=MâÐwÛù¸Û,ç“a¿ÓlT M‘Žeòw¯Ð…w€Ÿ€¬;EWòwgXN֛ͨÞp2_nvÇóÍqý0NR²îxw(÷¼çqxwûz:lW‹éxÐmY5SWe‘瘯|Þiš¼;æ>䈢é|Ý¿ŽeU7kV«;M«íátµï^ÅiFÞë¥ñ~w2ïi…¾ëÜÎÇÝf9› {f½jhŠ$p,y÷ -Þ~„ïw¯wg9AR4£Zo¶{ÃÉl¹ÙÏ7ÇõÃ(IɺãÝ DÞóž¿{–ÆQàÝíëi¿]-¦£A·Õ¨™º"‰<Ëy§)Ì;|^±îù»çëΰ¼()ºYk´ºýÑt±ÚîOûîQœfäݱîP"ïwÏç=K“(ô]çv>îÖËÙdØk7ëUC•Ec‹w§ñîðyÅ»ÓÅ»³œ ʪQ­[íÞp<[®wÇóÍqý0JÒìù»@¹¼çýõ|diÞݾœöÛÕ|:êw[š©)’À³L1ïæ>ެ;U¬;Ãò‚¤hf­ÑêôGÓùj»?]ì»Dqš=žXw(™ßýõÌÒ$ -}×¹ž»õr6öÚV½ª«²Èslñî4Þ>¤ˆ¢¿ßãEYÕ«u«ÝŒg‹õîp¾:®FIš=_xw(›âÝ‹y>²$ïn_NûÍj>õ;ÍFÍÐIàY&÷ -MQxwø,²î]Éßa9AR4£Öhvú£É|µÙŸ.·»„q’=žßëþëåñ·˜wòî¯G–&Qè»Îõ|Ø­³ñ Û¶ê¦®Ê"Ï1_ù¼Ó4ywÌ;| EÓùº1/ʪnÖ­vw0ž-ÖÛÃùê¸~%iöx}¿û_¼;”Hñîż?Y‡w¿]ŽûÍr>ö;ÍFÕÐIàX&÷ -MQxwø$²î]Éßa9AR4£ÚhvúÃÉ|¹Ù/·»„q’=ž¯_¿òuÿƒu€2ù[Ì;y÷×#Kã(ðïöõtØ®Óñ Û²j¦®Ê"Ï1_ù¼Ó4ywÌ;| -ÉEÓùº1/ʪnÖ¬Vw0ž.ÖÛÃéjßý ŠÓâÝÿ.Öï%R¼ûŸß¿~½ž,‰Cßun—ãn³œM†½N³^54E8–¼{ïõýîòî,'H²fTëÍvo8™-7»ã忏~')Yw¼;”ÐßbÞÿ.Þ=£À»Û×Óa»ZLGƒn˪™º"‰<Ëy§)Ì;|Y÷üÝóugX^”ͬ5ZÝþhºXm§«}÷‚(N3òîXw(¡÷»“yO“8ô]çv>îÖËÙxØk7ëUC•Ec‹w§ñîð9$B]¼;Ë ¢¬êÕºÕî dzåzw<ß×ã$%ëŽw€RzÏ{þîYGw·/§ýv5ŸŽúV£fjŠ$ð,SÌ;EáÝàSȺSt%w†åIÑŒZ£Õé¦óÕvºØw/ˆâ4#ïŽu€Rz¿{>ïYšD¡ï:·óa·^ÌÆƒ^ÛªWuUyîûÝiòî˜wø’ Цóuÿb8^”Uݬ[íÞ`<[¬w‡óÕqý0JÒ,_w¼;”Ô{Þ_ÏG–ÄQàÝíËi¿YÍ'£~§Ù¨š" Ëäï^¡) -ïŸñýî•üÝ–$E3ªf§?œÌW›ýébß½ Š“ì‘¿;ÖJêßw=²4‰Bßu®çÃv½˜ŽÝ–U7uUyŽùÊç¦É»cÞà¯X÷üÝÿóß/†ãEYÕÍšÕêÆÓÅz{8_m×£$Í/¼;”Wñîż?Y‡¾çÜ.Çýf9Ÿ {f£jhŠ$p,y÷ -Þývë¹QD¢h}ÐŒÉ @9g”³@ rP°÷¿žÜm×_@««¬w6q/ü%ù»“ù»Ó Ç‹²Z®6ZÝÁX›¯¶û“a¦ï„qr½Ýï麿cÝà'úÈç={÷[GïÚÖY?ìÖ‹ÙdØï4ë•’" ºíFµ¬¦ïÎ1tþîdöî˜wøÓ²Üäç»3,/•rµÑêÆÚ|µÝŸ ÓvÓw“ôÝ|Ýñîð~¿{:ïqú®cõãn½œM†½N³VQeIàXšJß½€w€§ø|÷Böî4à ’¬VjÍvo8™.Ö»ƒ~¶l×£8¹áÝàµ|üž÷Û5‰ÃÀs.¦qÚoVsmÔï¶êÕ’Ry–¡ÞÒy' Ì;õ;Íz¥(‹äÝy–Iæ¢ðîð,÷wO‘wgX>~w¹X©5;ýád¾Rwºq:ۮ燗ïuÇ»À«ù×»û®c™Ç½¶]/fãA·Õ¨–1ŸMóÜ_ïŽy€§ˆ×¼ûÛûÃñél^”KÕz«;Më¶7LËvýï¯ì1ï™÷À÷ë|<è;u9Ÿ {íf­\” -¹ŒÀ±É»Óxwx–81¼;Ë ™\ARÊÕF»7œÌ–êV?MËñü€¬{DÖýÖ^ÑãÝoäÝÃÀsíóÉØï6«ÅtÔï´ê•¢,æ³iže’y§(¼;<ÇýÝSäÝ–'ï.ÊÅJ­Ùé¦óÕf§§³ízAHÞývKÖï/èûݯaà{ŽeÚv½œÝv£ZR¤øÝ¹¿ÞóO¯;y÷·÷†ãÓÙ¼¨”ªõVw0ž.Öm4-Çõñîðâ>ïóE×KHÞÝ>ŸúN]Í'Ã^§Y+¥B.#plòî4Þž# E'ïÎrB&W”r­Ñî '³¥ºÕñ»{~@Ö=ºÀëz¼û-~÷ÀwÉ»{m³ZLGýn«^)Éb>›æY&™wŠÂ»À3ÄëNÑ)òî Ë“wåb¥ÞìôGÓùj³Û§³ízAHÞý†w€öõîÑ•¼»çXæñ m×ËÙxÐk7ª%EŠß»¿;¿;æ~ÜãÝßÞ?ŽOgó¢RªÖ[ÝÁx¶XoµýÑ´×Âë÷»ÿv>~Åç×¼_/¡ï¹öùdè;u5Ÿ ûf­\” -¹ŒÀ±ñ»§ðîðq^(:yw–2¹‚¤”kvo8™/Õ­~8ž-ÇóÃË5ŠîëŽw€×ô÷»¾k[¦±×6ëÅt4è¶ê•’,æ³ižeây§) -ï?/^wŠN‘wgXž¼»(+õf§?š.V›ÝÞ8m× âw¿áÝà¥%ïþç‘y|ϱÌãAߪËÙxÐk7ªeE*dÓÇ&ïNÇïŽy€öx÷·÷†ãÓÙ¼¨”ªVw0ž-Ö[m4-Çóƒðúýî¿O€_ò™ÌûíFÞ= <×>Ÿ }§®æ“a¿Ó¬•‹r!—x–!ïžÂ»ÀÄq¡èäÝYNÈä -’R®5Ú½ád¾Twúát¶É»‡—kÝ×ï¯ê_ïî»¶e÷Úf½˜ŽÝV½R’Å|6ÍsÌ™wš¢ðîðÓâu§èyw†åÉ»‹r±Rovú£ébµÙí òî®Äï~ûÀ‹{Ì{Dæ=ð=‡¼ûAߪËÙxØk7ªeE*dÓÇþÿÝ1ïð£ïþöþÁp|:›•RµÑêƳÅz«ަåxäݯÑ×»ÿv:~ÍãÝoäÝÃÀsíóÉÐwêj>õ;ÍZ¹(rg™øÝi¼;ü´8-¼û?ìÖçr¢~†áYH"ÅN³÷^°"b¥Gˆÿó?÷ú&î~3»3y®“¸o–K¦³yQ.VêÍN4-5Ý8œLòîþûåÿëŽw€ìñÝ]Û<÷ÛÍj¡Ž½v£Z*HB.“â9&Í;EáÝ๢u§èòî Ë“w$¥T­·ºƒ±:_iÛywÛõðî‘ëmÞ2ïžëXäÝ }½œM†ýN³V.Êb>“Jrì×»cÞà‰îïþú–`8>•É r¡\k´{ɺXoŒýñl9®GÖ= ëþu€Ÿíþî!ywßslótØéÚj> º­z¥¨Hùl:ɳLôî4Þž+ - EÇïÎrÉt6/ÊÅJ­Ù馳¥¦‡“i9žOÞ= ãuÇ»Àöùîßsmë|Üo7«…:ôÚj© ¹LŠç˜D4ï…w€gŠÖ¢_È»3,OÞ]”RµÞêÆê|¥mwäÝmïpw½Í{\Þ}׉ÞÝÐ×ËÙdØï4kå¢,æ3©$Ç~½;æžæþî¯o †ãS™œ ʵF»7œ¨‹õÆØÏ–ãzdݲîXwøéîïFïî9¶y:ìtm9ŸŽúÝV½RT¤|6äY&zwïÏe…¢ãwg¹d:›åb¥ÖìôGÓÙRÓÃÉ´Ï'ï†ñºãÝà‡û|÷‹ï¹¶u>î·›ÕBzíFµT„\&EÞ=Í;EáÝày¢u§èòî Ë“w$¥T­·ºƒ±:_iÛywÛÅ»|ºÞæ=.ï¾ëDïnèëål2ìušµrA£wçÞóOr÷×·Ãñ©LN åj£ÝNÔÅzcìgËq=²îY÷¬;ÀýÝÃèÝ=Ç6O‡®-çÓQ¿ÛªWŠŠ˜Ï¦“¿;w€ç‰¢BÑñ»³\2Í‹r±Rkvú£él©éÆádZŽç“wÃxÝñîðã}¾ûÅ÷\Û<÷ÛÍj¡ŽÝv£Z*HB.“âY&žwŠÂ»À³ÜÞý…¼;ÃòäÝI)Uê­î`<¯´í޼»íâÝ\oó—wßu,ò^Ì&Ã^§Y+d1zwîáÝ1ïðѺ“w}K0ŸÊä¹P®6Ú½áD]¬7Æþx¶×#ëuÿÀº|¾{½»çØæé°Óµå|:êwZõJQóÙt’cãw§ñîð,QR(:~w–K¦³yQ.–kÍN4™-׺q8™–ãùäÝÃ0^w¼;ÀïîÚæù¸ßnVsu<è¶Õ’" ¹LŠg™xÞ) -ïÏq{÷òî Ë“w$¥T©·ºƒñt¾Ò¶;òî¶‹wøÍõ6ï™wÏu,òîÆf½˜M†½v³V.ÈbôîÜûcÞà ¢u'ïþú–`8>•É r¡Tm´{ñºXo¶ûãÙ"ïNÖ= ëþuˆÜß=$ïî{Žmž;][Χ£~§U¯1ŸM'96~wïÏñëëÝY.™ÊäE¹X®5;ýÑd¶\ëÆþt¶Ï'ï†ñºãÝþ‹çýóÝ]Û<w[m5Wǃn«Q-)’@Þgòî/xwx’øÝéèÝ–O¦³yI)Vê­î`4¯´íîp2m¼;ÀŸ®·yȼ{®c{c³^Ì&Ã^»Q+d!—Iñ“ óNSÞž!Zw*Z÷y÷T&'H…RµÑî ÇêbµÙîgËv=ÿdÝ?°î7÷wÉ»ûžc™§ƒ¡kËÙtÔï4k•¢,æ³é$ÇÆïNGïŽy€ïúõðî\ôî¢\(ךþp2[®u#zwÇõß/AÆëŽwˆ=¾»k“wßmµÕ\º­zµ¤HywžeÈ»¿àÝà)âw§ãwg¹d:›•b¥ÞêöGÓùRÓw‡“i;ÞàO×Û¼dÞ=×±Îǽ±Y/Ôɰ×nTËYÈeR<Ç$ȼÓ…w€ï‹Ö¢_È»3,ŸÊäI)UíÞ`¬.V›íþx6m×ó/äÝ?âwÿÛ±øGÜß=$ïî{Žež†¾^Φ£~§Y+e1ŸM'9öëÝ1ïðM÷w}K0\ôî¢\(ךÞp2[¬7ywËqý÷K½ûïðéñÝ]›¼ûn«­æÓñ ÛªWJŠt{w&zwïßÅ„¢ãwg¹d:›•b¥ÞêôGÓùRÓw‡“i;^ôî!Þà7×Û¼dÞÉ»[çã~»Y-Ôñ°×nTKIÈeR<Ë$¢y§(¼;|×íÝ_È»3,OÞ]”RµÑêÆê|¥mwdzi»ïþ·S ðϸ¿{HÞÝ÷ë|Úúz9›Œúf­\ÅèÝ9¼;î·›ÕBºíFµ¤HywžeÈ»¿àÝàÛâw§£wgnï.)¥J½ÕŒ§ó•¶Ý‘w·ÝÇwÿÛ¡ø‡Üß= .ï¾ëXäÝÍz1› {ífíìÖér¢êFájM"଀""Ί‚³­îÜÿõœHWÛÕÝ{WÌ©J~¼ÏM¬%Öùj¹˜Ï2T†Ì{:•»ÀÇD랊Ö=CÑÙ|±\åê ©Ý*Su¥æþh»äÝɺ_“uÇ»ܹ{÷Ð÷œÓa·Õ×ËùdÔïÈMg+¥BŽ¡¾;æ>àîÝ™èÝY¾.¶:ý‘2[¬7[k²]?<“w¿áÝ~¿û?É»žcv¦®-ÕéxЕ¥F‹Þ=KSÑ»§ñîð1QHRéøÝi&W(UؚД»ƒÑd¾\ëÛÝáäx¿¼ûggàKyçýv%ó¾k÷–±Y©3eØkKb«–‹yòî™hÞS)¼;|DòîOäÝ):KÞ½ÊÕR»7OÕ•f˜û£íxAx¾\¯ÉºãÝî½½û¼û9ô]çt°¶›õb>õ;-QàÙ -ywïÿѺ“w~ÉPL6_,WùºØêô†Êl±Úyw×Îß/×Þàîß=ðÈ»ïL][Î'ãAWn -5®R*ä:~÷tôî˜wxÔ·ŸïN3¹B©ÂòBSîôG“ùb­ow‡“ãúáÝ»v$¾˜×dÞ¯dÞÉ»»öqoÚJ޽¶Ô¨sUòîYš"ïþ„w€‰ß=½;•¼;WkHrw0žªKM7£w÷‚äÝÿÁ»üîíÝoäÝÏ¡½»µÝ¬3eØë´Ä:_-óY†ÊyO§Rxwx\´î©ôÓÓs†¢³ùb¹ÊÕE©Ý*Suµ1¬ýÑvÉ»“uÞýïð›_ÞÝsN‡ÝV_/ç“Q¿#7ž­” -9†þùî˜wxÐÛ»?¿d(&zw–ÄV§?Tf‹õfkíO¶ë‡gòî7¼;À½&ó~½\Îaà9öqgêÚRŽ]YjÔ¸èݳ4½{ïûöóÝi&W(UؚД»ýÑd¾\ëÛÝáäx¿¼ûg'àËùñî×Ë÷sà»öqo›•:S†½¶$Ö¹j¹˜'æ=•»À£âwOGïNÑYòîU®ÖÚÝÁxª®4ÃÜmÇ B²î×dÝñî¿IÞý½{è»Îé`m7ëÅLõ;-QàÙèݼ;|T´î©hÝ3äÝóÅr•¯‹­vo¨Ì«a‘wwýàLÞý†wø‹ûw<òî;S×–óÉhЕ›B­” -9†þùî˜wxÈÝ»3äÝ+,/4[þh2_¬õ­u89®Þ½ûgà zMæýJæ¼»k÷¦¡­ÔéxÐmKW%©èÝÓxwxT”T:~wšÉJ®ÖhÊÝÁx2_jº¹#ïîÉ»ÇëŽwøÝÛ»ßÈ»Ÿ?zwËØ¬3eØk·Ä:_-óY†ÊDóžJáÝà1É»?‘w§è,y÷*WoHíÞ`õ;­¦À³•b>‡w€ŠÖ¼ûóK†b²ùb¹Ê×ÅV§7Tf‹õfkEïî‡gòî7¼;À_½&ó~½\Îa¿»©kËùt<èÊÍF«” -9†Žß=½;æpÿî¹B©ÂòBSîôG“ùr­ow‡“ãýòîŸG€/éÇ»_/ßÏçÚǽelVêt<ìµ¥F«–‹ù,M‘w»Àƒ¢€¤Òñ»Óñ»sµ†$w㩺Ôtsw°/ÏòîñºãÝþ(y÷[ôî¡ïÚ§½µÝ¬3eØë´Ä:¿;Ceȼ§S)¼;<"y÷'òîÍËU®.JíÞP™ª«aí¶ëçï—+Þàßüòîžs:ì¶úz9ŸŒú¹)ðl¥TÈáÝàC¢u'ïþü’¡˜èÝY^[þP™-Ö›­u89®Fï~KÞý³ãðE½&ó~½^Îaà9öqgÚRŽ]YjÔ¸øÝéøÝÓÑ»cÞཾݿ{®Pª°5¡)wú£É|©é掼»àÝþÓۻ߮—ïçÀwíãÞ26+uª {mI¬sÕr1Ÿ¥)òîOxwxHüîéøÝéøÝ¹ZC’»ƒñT]i†¹;Ú.yw²î×dÝñîq÷î¡ï:§ƒµÝ¬3eØï´Dg£wg¨ ™÷t*…w€÷KÞý‰¼;EgóÅr•«‹R»7TfêjcX{òî~p&ï~ûü«×dÞãw<òî;S×–óɨߑ›B­” -¹ûwǼÀ;EëNÞýù%C1Ñ»³¼ ¶:ý‘2[¬õ­u89®Þ½ûg§àËúñîdÞÉ»»öqgÚJŽ]YjÔ¸øÝéøÝÓxwx¿o÷ïž+”*lMhÊÝþh2_jº¹#ïîÉ»ÇëŽwø›·w¿‘w?>y÷½elVêLöÚ’Xçªåb>KSäÝŸðîð€øÝÓñ»Óñ»sµ†$wã©ºÒ s´]òîdÝñîÿåîÝCßuNk«¯3eÔï´Dg£wg¨ ™÷t*…w€÷JÞý‰¼;EgóÅr•«‹R»7TfêjcXÑ»ûÁ™¼û ïð^“yß=ðÈ»ïL][Î'äÝå¦Pc+¥BîþÝ1ïð.Ѻ“w~ÉPLôî,/ˆ­N¤Ìk}kNŽç‡wïþÙaøÂ~¼;™wòî®}Ü›†¶R§ãAW–5.~w:~÷4ÞÞëÛý»ç -¥ÿ±[ßË©ª ‡'–ö"bï Õ†Æxrÿ×ó½/$;Î|3gãù'{Ϭç"Öú•9Al´{ƒñl¡n4Ó¦íîù×i÷ ÝÑîÿ"l÷;i÷«çÒv·ôíJ‘§£~§)ÕøJ©Ë° i÷Úž´{ímSߨ‹ùdØk7ê_.æ³iö»ÝïÑC»§i»sU±ÑêƳÅr­öþè\¼°ÝƒtG»üVØîwÒîWÏ=Ÿ;Kß®”ùdÔï4ë5¾BÚ=Ã2´Ýãhwˆîå»ÝÙt6_,sB½Ñî '³…ºÑM{:“v'éŽvˆê¡Ý}ÒîÇelWKyJÛ]ªU+¥BŽ´{*™HÄc1´;D´{œ¶;ÃfH»WøZ½Ùé'seµÕÍÝátv½+i÷{Øî?}ˆ0ÞÃv¿8ǽmhë¥<º-I¬r´ÝÓLê5‰v€gÐtʼndŠ´{®PªTki÷ÑT^®¶†´»vxƯv¿]}ïâœö¶©oÔÅl<ìµ¢À•‹ùìc»#Þ ’ÏvO¾¦˜4mw®*J­î`<“—kͰ÷GçòÙîAº£Ý~ï«ÝßooWÏ=Ÿ;Òî+e>!íÞ¬ |Ðî,ÚžôØîÙ|±Ì b£ÝŽg u£™öþä\<ÿzC»hwö»Ýïð[ížÍÊœ 6‚v_¨kÍ´i»{þõ†vxÒÿµ»elWÊ|:êwšõ_!ížaÚîq´;DñòÝîl:›/–y¡Þh÷†“ùBÝè¦}8]ïúv{ÿl÷Ÿ¾B€¿ÆGï´Ý}÷â÷¤Ý×K™´{·%Õª•R!GÚ=•L$â±Ú~/h÷8mw†Ív¯ðµz³ÓMæÊj«[»_í~G»<åW»ß®¾GÛÝ6µõr1H»‹U޶{šI½&Ñî M÷X<‘H¦H»ç -¥Jµ&ÑvŸÊËÕÖ°vGçìúhw€ç}µûûí´ûùDÚ]ߨ‹ÙdØk7D+óY´;<á³Ý“¯)&MÛ«ŠR«;ÏäåZ3ìýѹ|¶{îhwø»õ¡”8ÛPx–"„*%„*Š ôÞ;$Ad½ÿëùÞ7a·XÿgÎsçx7ûÝâÝw†¾Y-fâÝ;ÍšõîiMµÞ]9½;óxÃówÃѸ–Êæ âÝíî`<¯Ö[ÃëλÀ¿úãÝ'£~§Y¯ÜÝ^çÒI5&Þݯxå»;ywÀÛ¾Þ]ñB—QUK‹w/•kvo8ž-VÝØ‰w?ØïþÙ!€/äÉžwù]/çâÝ»-ñîÅ›«L2‹„ƒâÝ=n—Ëépð<w¿x÷˜šLç®oïʵf§?œðîp¾Ÿï¾ß™†|÷éxÐm5ª÷òÝS‰¸|wŸ×sáæÝïa¯»|w¯â†#±D2#ß½Rouú£Él¹Þê¦õîÖºóîð~?Þýqÿ Þ}³ZLÇÃ^»Q-— -ùlJ‹G/CÞðnö»‹u÷x}òÝã‰Tæê¦x_­·ºƒÑtλÀùìw?ˆwߺx÷ÙdØë4kÖ»§5ÕzwåôîÌ;àUÏß= GãZ*›—ïÞhwãé|µÞ¦XwÞþÝŸï>êwšõÊÝíu.TcâÝýŠW¾»“w¼åÛ/ïºïžÎæ ¥r­Ñî dzÅj£;ñîûÝ?;ƒð¥<Ùó.ßÝÔ·ëå\¼{·%ßýæ*“LÄ"á xwÛår:¼;àuÏÞ]±Þ]ÕÒ¹ëÛ»r­Ùé'¼;|ÄÏwßïLC¾ût<è¶Õû¢x÷T".ßÝçõ\¸ywÀÛ¬wwÊw÷*þ`8S“Ö»Wê­N4™-×[Ý´ÞÝZwÞþÅwÜ?ˆw߬âÝ{mñî¥B>›ÒâÑËP€w¼“\w‡Óår{ŽïžHf®nŠ÷Õz«;Mç¼;|„ýîñî;Cï>› {íf­,ß=­©Ö»+§wgÞ¯8¾»ûÂãõÉw'Rö»7ÚÝÁØzwÃëλÀ9þòîýN³V¹»½Î¥“jL¼»Ÿw¼Ïów„.£q-•ÍJåZ£Ýާ‹ÕÆ~÷ƒýîŸAøbžìy—ïnêÛõr>õ;­ºõî™d" ýŠW¾»“w¼îÛéÝëÝU-³Þ½Ùé '3ñãÝàL?ß}|÷éhÐmÕ«÷Å›«L*·ßÝãv¹œïxõîNùî^Å/Þ=¦&Ó¹ëÛ»J½Ùé&³åúôîO¼;ü«ïþ¸0íz5ŸŽÝvC¾{>+Þ=*ÞÝçõ\¸ywÀ[äº;œ.—Û#Þ=ŽÄÉÌÕMQ¼{«ÛMçËõV7­wÿλÀìw?Øï¾Y-fãa¯Ý¨•KñîZt[ê½|÷T".ßÝçõ\¸ywÀë¬wwÊw÷*þ`8"Þ=#ß½Rouú£É|¹Þê¦õîÖºóîðÏìw?<îÄ»oV ñî½v£Z.òÙ”†ƒÞðrÝN—Ëí9¾{"™¹º)Þ‹wïFÓã»ïyw8ÛéÝw†.Þ}6öÚÍšõîiM^†xwÀ{ßÝ}áñúä»Ç)ëÝ« ñîcëÝ óaÿÈ»À¹þòîýŽx÷»Ûë\:©Æä»+§wgÞ/xþîÐe4®¥²ùB©\m´{âÝ«ýîûÝ?;€ð=Ùó.ßÝÔ·ëå|2ï^¯Èwψw„ƒ~Å+ßÝÉ»^öí÷wWµ´õîµf»7œÌÄ»ëÆŽw€øãݧ£~·U¯Üo®2ÉÄñÝ=n—Ëépð<{wE¾{LM¦s×·w•Z³ÓÿíÝŸxw8ËñÝż›†õîãA·Õ¨ZïžJÄå»û¼ž 7ïxõîNùî^Å GÄ»g¬w¯·:ýÑd¾\ouÓz÷ï¼;œÉ~÷ƒýî›ÕB¼{¯Ý¨–K…|6¥Å£á`€w¼I®»Ãér¹=ÇwO$3W7Åûj½ÕŒ¦Çwßóîð§wߺx÷ÙdØk7kÖ»§55zâÝo;¾»ûÂãõÉw'Rö»7ÚÝÁØzwÃ|Ø?ßý³ó_Ò_Þ½ßï~w{ï“ﮜÞyüÕówÃѸ–Êæ ¥²x÷Þp<]¬6ö»xw8Û“=ïòÝM}»^Î'#ñîõŠõîI5 üŠ—w¼î—w]FU-m½{­)Þ}2ï®;Þ>äwŸŽúÝV½r_¼¹Ê$±H8(ÞÝ#ÞÝž÷ÏnàÿÒ·Ó»+òÝcâÝs×·wâÝ;ýßÞý‰w€3ß]Ì»iXï>t[ªõî©Düøî.ïxÑéݽŠ?ŠÄÔ¤õx÷Ñd¾\ouÓz÷ï¼;œÍ~÷ƒýî›ÕB¼{¯-Þ½TÈgÅ»GÅ»ûÄ»»ywÀËìuïîï Gb‰dæê¦x_©·ºýÑ”w€ÿ‰Ó»ï ]¼ûl<ï^+[ï®Å£—¡ïxƒýî.×ÅñÝ㉔õîÕF«;[ïn˜bÝïþÙñ€/êwŸ {¦õî¹´¦ZﮜÞyüÅñÝÝâÝ}âÝ£âݳù‚|÷vO¼ûbµ±ßýÀ»À<Ùó.ßÝÔ7ëåìÖgR2Í@áRA@’df# -*‚䜃€î=_÷ô ‚?.Så}«Î³‰sºíf­\,<=Þßdôd,"ÞÝË»~g}w_à2MÈwÈ¿ˆwo´ºâݧ³ïGÚz÷ÉhÐë4k•’z÷”x÷PÐïõ¸å»Ÿñî€ýN¾ßÝc¼{,¡«w/–«6ïöؼûjùõîuñîϹìíU*7ßÝåt8ÎNOywÀ>Öw÷ŠwÄ’zææþñ©P,ךíî`4žÎw7Öw€ÿ‘z÷õjù>ŸMFÃ^§U¯¼½ªw×âQùîn×¹“wòýîn× ‰wO©w/UÄ»÷£ ï6Øz÷ñ°ßm5ªâÝów×i- ý>Þð+µîâÝ]æ»Ç“©«ÛlîY¼{½Ù1ß}É»À‘¾ß}1›Êwo‹w/¾ﮋw¿ ðî€ß©ww8ÏÍwÆ5õî¯o•z«ÓŽ&³ùûre¾û_§þYŸjÞ­ï^+‹w¼¿É艘ñîžïwgÞ?XÞýB¼{8šÐÒ×wòÝ«V·?«w_óîp˻ϧ“Ñ ×nŠw/<EÄ»{ywÀo¬ïî \Šw×å»ç_¾Þ}:[ðîp´ïÞiÖ*%õî)ñî¡ ßëqóNvß=–Ð3Æ»ËÕF{ëÝ?yw8‚ùî«åb>Sï^ïþœËÞ^¥’qóÝ]âÝÕ¼ÿu ÿw,ïî‘ï‰%õÌÍýãS¡X®5ÛÝÁh<ïþÁ»ÀQÔ»¯WËwùîÃ^§U¯¼½ªw×âQóÝÏżóî€}¬ïîõBâÝSêÝKñî½Áh»€-¶Þ}<ìw[ªx÷üÃÝuZKDÃâÝ/xwÀajÝå»»=^0‰'SW·Ùœ|÷z³c¾û’w€£}¿ûb6ݼ{ñÅxw]¼ûeÀÇ»~¡ÞÝápº6ï®ïþü*Þ½e¼ûlþ¾\™ïþ×á€اš÷ïwo7jeõî=Û}wæ°Ã|wç¹Ë}!ß=×ÒêÝߪâÝûñz÷5ïG²¼û|: ºí¦x÷ÂÓãýMFOÆ"òÝ=¼;à ë»ûüÁp4¡¥¯ïò/âÝ­®ñî Þl°õî“Ñ 'Þ½RRïžï -ø¼¼;à°­w\Šw×Õ»Ëæ»O7ïþÉ»ÀQÌw_-Íwï4ëòÝsÙÛ«T2 ý^[¾ûïøéd÷Ýc =ssÿ(ß½Öhwû£Í»ðîp$õîëÕò}>3Þ½%ÞýõÙxwmóî.§ÃqvzÊ»vYÞÝ#ß=KïþTïÞl÷£Étλ€-¶Þ}<ì‹w¯¾©wOkñ¨|÷ ·ëÜÉ»ö±¾»×‰wO©w/Uxw°×÷»/Œwï¶âÝ_òw×i- ý>ÞpZwùîn× EâÉÔÕm6÷,Þ½ÞìÈwŸÍË•ùî=ø§}Êy7ß}j¾{¹¨Þ]ï~à݇©ww8œ®Í»kêÝ_ß*õV§7”ïþ¾\­yw8šñî–wo7jêÝo2z"¶ûîÌ;`‹ùîÎs—ûB¾{4®¥Íw¯ŠwïǼ;ØÅòîóéd4è¶›âÝ O÷âÝ“±ˆ|wï8Àúî>0Mhé뻇ü‹x÷F«+Þ}:[ðî`‹Ýwï‰w¯”Ô»§Ä»‡>/ï8dëÝ—âÝuõîÅòî»òîp$óÝWËÅ|&ß½Ó¬ËwÏeo¯RÉx$ô{=nùîg¼;`×Éî»ÇzæF½{­Ñ¶¼ûïGSï¾^-ß-ïþúl¼»¶yw—ñî§¼;`›åÝ=êÝ“âÝïŸ -êÝ£ñtλ€M¶Þ}<ìwZõê›z÷´šï~îpðïîï‰%SêÝK•Z³ÝŒ&¼;ØæûÝ[ïþpw-ß=,ÞýB¼»“wüd¼û™ùîþ`H¾ûÕíî»/Wæ»ÿuôà÷)çÝ|÷©x÷n«!Þý%o¼{"¾ øxwÀrÝÕ»»Õ»Çå»gsÏâÝëÍŽ|÷™|÷5ï60ÞýcûÝËEõî:ïø•zw‡ÃéÚ¼»¦Þýõ­Rouúñx÷wÞìay÷ùt<êwÛš|÷Çû›Œžˆí¾;ó°0ßÝyîr_ÈwƵôµz÷*ïvÛz÷ÉhÐk7Å»žŒwOÆ"òÝ=¼;`/ë»ûüÁp4!Þýî!ÿ"Þ½ÑêŠwŸÎêÝ?yw8Úžw¯”Ô»§Ä»‡>/ïØoëÝ—âÝuõîÅòö»ðî`óÝWËÅ|&߽Ӭ½2Þ=è7ßýŒwl;ÙóîóÝk¶ñîsÞl£Þ}½Z¾[ßý9g¼{\½»[½û)ï°úñî1ñî7÷Oæ»F¼;ØiëÝÇÃ~§U¯¼½ªw×6ïîr:¼;`‡åÝ=òÝ#±¤z÷B©\k¶{ƒÑ„wíy÷ªùîi-5ßýÜÉ»vYßÝë „Ä»§Ìw¯|¿ûre¾û_'þyŸrÞw_̦âÝ»­†x÷—üÃݵ|÷°x÷ Þ°ñîgæ»ûƒÆ»_ÝfsòÝëÍŽ|÷ïö1ÞýcûÝËEóÝÑðeÀÇ»ö’ë®ÞÝ­Þ=®ÞýùU½ûP¾ûûrµæÝÀ?Þ½ýýîúÏwgÞ_Ô»;N׿Ý5óÝߪõV§?óî`'˻ϧãÑ@¼{M¾ûãýMFOÄxwÀAæ»;ÏÍwƵôî»/xw°ÍÖ»O6ï^x2Þ=©ÞÝûö°¼û…x÷°|÷뻇ü‹x÷F«+Þ}ºy÷OÞl°óî½v³V)©wO%cÞpˆõÝ}Ëp4a¾{±¼ýî¼;ØÂ|÷Õr1Ÿm¿û•|÷PÀçUï~Æ»¬N~¾»þýîmÞl§Þ}ýõîf]¼ûs.{«Þ=èÿz÷SÞð»u‚µ‚P´ÿeE@PIežç…ý¯§+©Te¨¤°ú$ÒÇsï&Þ‹å½ûôìBøî;µw?»¸¼¾õî%j¾û}ðîçá»o|Þ}¼þî=Þ€-ï>¾ûÒÊZãݯ¼;@©Rï~y~zt°»Ýx÷ÉÆ»w{w²ïÞ¼ûû±‰èÝ×·vöO2ïþÒÁø <ó¾ûÝÍuúݧ&ÇG£wS›wï@RòÝû†ÞÕÞýSæÝonï~zw€²„ïþ¿ûñÁ^íÝW—çg‚w©½{Ÿw Uøî¯¢wßýóÜ—ðÝw÷šïþË»”$ïÝ7Dïþatäíà€w G°îõwï©¿ûxøî_¿%ßýÞ»”'ñî·á»Æïþ1x÷!ï@žÖwŸ¬¿û÷­Ýƒ£“óKïP®œw߉Þ}:çÝÍ;‘æ»w7ß}*z÷íÚ»Ÿzw€²¥ßýâ,z÷•¥…Yï@õwïzý&z÷ÑڻϤÞýúæ®þîOÞ Éw¿º8;9ÜßÙ\_‹Þ},|÷^ï@‹Ä»÷ÕÞ}$|÷ùÅåÕÚ»ïÇïþèÝJ½ûχøÝ·ï>1öÞ»/ùîƒoGF?DïþcÓ»T£þî¿‚w¿ Þý(~÷Oµw74Ð_÷WÞ€„Ô»ïþ1~÷ÃðÝo½;@©šï~ßx÷ÝðÝ¿Ì}ß}x°ùîÿzwþÉy÷éèÝw¼;@%òßýÛ×ä»÷xw2rß}v¡ùîgÞ l©w¿½ûÚzðî'™wéÜüž‚yßýîæ:ýîSÍwï~ÝÕåÝHȾûû±‰Æ»oEï~s{÷ðÓ»”'|÷ÇøÝöÂw_œŸ©½ûhôîo^{w’ÂwU÷þ¡wµwÿ¿û‘w¨@þ»¯.Gï>R{÷>ï@V°îÍwßýsôwÿåÝJ“÷î›?¢wÿ0:òvpÀ»Ð"~÷žøÝç¾|ý–|÷{ïP¦Ä»ß†ï~¿ûÇà݇¼;­ -ßýûÆÖîw¨BλïDï>íÝ(Òòîãéw?¿ôîeK¿ûÅYüî³yïnÞµ¾ûdãÝ·kï~¼ûw(Wòݯ‚wßÞ}eiÁ»P¬þî]]¯»›ï>•~÷ëÆ»?yw€’dÞý$x÷õµèÝÇÂwïõîdDïþúMôwŸ™¯¿ûÞÁqüîÞ 4Þ€ÿAâÝûâw_\öîŠÞýçÃÝíMôî[wŸðîä+z÷ÕÞ 2Ùw?ŠßýÓÄØûøÝ_ywš’ï>08<¿ûæöÞaøî·Þ dõwÿ•x÷ÝèÝ?ïþnh ¿ñîÿzw"©wz;2úÁ»T®ùî÷©wÿúe®þîÃý½=Þ€´ÖwÿØx÷àÝ/¼;@ùrßýû7ï@;9ï>x÷³‹«ä»¿tìþ©w¿¾ûÒJðîû‡'Þ  -ñ»ß5Þ}Û»Ð^âÝ{Sï¾¶îÝ*óÌ{ôî×™wŸl¼{·w é7Þýæöîá§w(Søî¹ï>•|÷.ï@S›wßòîUɾûñÁ^ôî3µwõîäh}÷‰Ä»yw€J½ûâ¼w Høî¯âwïÝþ€üw_]N¼{_O÷›×Þ€X°î™wÿÔx÷ÝÄ»ÿòî%J¼ûmóÝxwÚI¾{ÿÀлàÝ?gßýÞ»”«åÝSï>âÝh¿{OoÿàpýÝç¼;@ÅrÞ}³ñî¼;yòßýËWïP©gÞýíЀw £èÝ¿}¯½ûw¨HêÝ/‚wßñî´×òîãéw?¿ôîH¿û™wàyÅï¾áݪ“|÷«ô»ôîäzæÝO½;@%¼;k¾{wË»o7Þýλ”Í»бçßýÚ»”¯åÝ÷ï>íÝÈ×úî“EïþäÝJ“y÷“æ»ÏÖÞ}Ì»£þî]ÞàÏ*x÷¥…Üw7ïüç¹w?ŽßýÑ»”(z÷Ÿ©w_ñî˾ûhâÝ÷¼;@Urß}-õî½Þ€ïð"ï~ãÝø-9ï>åÝ*—÷îëÞ€v¼;À‹ðîtÌ»¼ï@ÇòÞ}Æ»TÍ»бĻ÷5ß}Þ»T,çÝ·¼;må¿û¢w¨–w cï¾ìÝ*åÝèØo¼û­w(w cEï¾êݪ”}÷#ïÀs¼;À‹ðîtÌ»¼ˆì»zwžSôîßâw¿ñî¥óît¬àÝ¿zw€Jyw:–ÿî_¼;@µ¼;K¼{oóÝç¼;@ż;Ë{÷ÏÞ j9ï¾éÝhË»¼ï@Ǽ;À‹ðît,çÝ?yw€Êyw:æÝ^DâݯïþûÐNöÝß{w€?á7޽ǻÒîÝw“ïþË»”(z÷‡û仯.{wŠÕßýUÁ»yw€j¼û¢w Pë»O½û£w(MæÝï>¼ûhöÝ_:ü_xþݯ¼;@ùZÞ}/z÷ï@6ï¾Õx÷[ïP¶âwŸòîäk¾û›Üw?ñî•ðît¬øÝ×½;@u’ï~™~÷Iï@®–wK¿ûÙ…w¨@úÝO½;Ï+|÷5ïP¡Ô»Ÿï¾íÝh¯àÝ—V‚wß÷îyæÝ‡û½;ùï¾àݪÕîÝǽ;yâwïîíz¾ûlæÝï¼;@¹ž²ï~°·½¿û;ï@«ä»÷Eï>íÝá¿ìÖ‡R"K@ÑRQPɘs–œ%H\ÿÿ{^÷tÃÌ0ƒo«lÞç'îVÌñîCÞð{Öä¼»ß=;{÷²ãݧ¼;äûîÏÎwß7¼;Àf½ûºýî±DÊñî ÞVbÉ»ß^óî€e¾y÷ï«â}÷Š~÷Þ°Äo¼û€wÓ¬wÿ´ß½i¿{.“<œ¿ûï˜s¼{Èýî/Žwÿ˜ðî`’\÷eïžž½ûïpò¼{\½ûÝ£õî-ÞVÁùîïêÝ‹¼;à_ø½ûéŵõîUÞVÃ~÷‘|÷6ïø >ï~äz÷>ïƹ޽ױÞýuöî ÞàËûî™Ù»—Ä»¿u]ïμ€žw¯‰wºçÝßq½{„w€ÿÄ’w¿¹t¼{w¸9ß}7²‹'gïž/Uë¼;¬ÄüÝÇ ï~vl½{4<÷5Þ -¼ûÏ»yw0L½ûÔñîåÙ»gÅ»ïGÃ;êÝ×ywÀœãÝ·ïþðÌ»ÀÊ,¾{Ãñî©DŒwøY|÷CùîçW·òÝ+õ&ï« ß}ò1 ô»xwÀ¿Pï.æÝñî'~ïþÉ»€1~ïþ»¾7÷­ù»çô»Õ»¿ÏÞýïf|-¼{«Qïþx§Þ=n½{ˆw,ð¾{Úùîmùî#ÞŒr½{ß~÷ë‹SÞ°”çݳw-VjÍv§Ç»€iîwノw/éw?òy÷? -À_Â~÷ ëÝïŸxwX•ïÞ=û–X“ó>{÷pT½ûÙå|÷òìÝǼ;˜äx÷¡õîõj)?{÷d<¶áÝ^Ö»¯«wß G÷å»Ïß½1÷)ïÆø¾ûóÃìÝö"»¼;ÀcñÝc‰tV¿{A¿û€w³¬wÿ´ß½Y¯Èw¿½:—ï~(ß}›w,ò¾{Êùî-õîÞÌ‘ëîÿî'Žwëλï²Þ=®ßýñ¥P®zÞyìw ßûݶx÷¢~÷ÜüÝ·xw€›ï»Ÿ^\ßéwëõyw0ÌõëÝÓ¼;`Ÿw?Òï^’ïÞåÝÀ4Ï»×*Å×'ýî Þ°„÷Ý3ö»×­wòî`ÔüÝÇÎw¿¿¹{÷wûÝo¯ÎO仈wß7¼;ÀÍñî!õî)õî/…rµÑêôú¼;e¿ûH¾{[¼{Q¿{.“v¼ûÓ½z÷„z÷ z÷5Þààz÷ˆ|÷Œz÷ç<ï« Þ}:÷F­,ßýæòìØz÷hX¿û:ïpq¾ûnd/OZï~û Þ½RoÚïþÉ»€ _úÝ'ãÑ@¿{A¿{V¼û~4¼Ã»üèwlCÛâÝ仟œ_9Þý}8Rïþ‹w€Ÿ[|÷V£Z.¼<ªwO%bòÝC¼;À‡z÷Àæ–z÷Ãd&§ß½X©5ÛÝï&¹Þ½ß{Óï~w}q*Þ=λ–’]PïÔïžVïþôj½{‡w£ï>ô»o­zµ¤ßýÈçÝÿt&Ï»'Ä»Ÿ]ÞÜ‹w/×êÝÇ“é”w#üÞ=¯ß=#ß=»üYï¾®ß=Ý—ï~ì~÷Áhü1áÝÀ µîö»7ë•RþùA½{2Û‹ìòî_ÎwßïK¤³êÝ_ -åj£µðîÌ;üýî£á»ýî·Wç'òÝÄ»o‹wðî€EŽw©wOYï~÷8{÷>ï¹Þ½×m7k•¢~÷\&y¨ß}3°Á»-¾{<•=:½¸–ï^ªÖ[oÝþ`È»€1ówËwïXïþú¤Þ=={÷-ÞàÃûîýîyÞÌSï>•ï>ïÞ¨•Å»ßß\žçÒ õîAõîk¼;ÀÅù½X<©Þýá9_ªÔ›ö»«yÿÓÍ€ÿ¹/ýî“ûÝ úݳâÝ÷£aýîë¼;`~÷€x÷mñîòÝOίníwŽxw0Äõîý^§Õ¨– /êÝS‰˜x÷ÞàO½ûF`S¿ûa2“SïþZ¬Ôšínwsï>ô»oúÝï®/NŻǭwñî_ówßš½{Úz÷û'õîùîãÉtÊ»€žw¯WKúÝ|ÞýOGðWYSó.Þ=¸½Ž&Ò¹ã³ËùîåZC¾û`4þ˜ðî`‚õîŸîwÏ?«wψwß‹ðî€eœï¾Žî‹wϪw)ø¼;ó?"×]½ûhø.Þ½Y¯ˆw¸½:?9Ê$ã{‘]Þ°„ãÝCòÝc‰”õîwâÝ«V§×çÝÀ×»÷ºmñîEýî¹LòP¾ûv(¸àÝ>ß=žÊ^\Ëw/‰wëöCÞ Qï>NÆòÝ;íf­R|}Rïžž½ûÖf`ƒwxyß=£Þý9_ªÖïþÉ»ÀO}éwŸ|ŒGùîZY¼ûýÍåÙq.PïTï¾Æ»À?ìÖr"KÑø„÷Þ á½4Ð ø;÷?ÏVu5#7»Bš‰Èw‰L¼pùîn¯?‰ï^©‰wNfâÝ7úN½ûxw¸Î[ïÞ5ß=%Þ=àó˜ï~û^1ßÝ*ÞÝ)Þ=(Þ=+”ä»÷xwøZ¿¼ûZ[Χ£A·UWï†Ä»»xwÀ{Ô»[¬6óÝñ„z÷F»7ÏKM¼ûþp<òîpµ‹w×·ëÕ“ùîÕr1ŸIÅ#Æ»;xwÀ;dŒw¿5ß=*ßýþáñüî[Þ¾†Z÷‹wŸŒúóÝ“¯ßý»øÃï~#ßÝît{|ùîÙ;ãÝ»ƒñÔ|÷çƒùîÌ;\áüî;}#Þ}6ö;Íšz÷X$ä÷ºywÀ».ßÝ%Þ=M¤Œw¯·ºƒÑt¾ÔÖ¼;|‘_Þ][-Ä»÷Ä»WJ…\Z¼{P¼»S¼»•w¼åâÝêÝã©l¾X®šïþ´ZouÞ¾„z÷ãñ°—ï¾\ÌÆÃ^»¡Þ= ›ïn³ZxwÀ[^¾{$žÊ¨wïôG“‹wWóþÝÝ€¿ØóÝÏûÝV¾ût<ïþøp—M'¢æ»ßïþïxåòÝÝ^¿x÷¤ñîµf§?œÌÄ»oôï_à­wïšïžïðyÜN»|÷ÞðóÝ­âÝâ݃‘X2+”*âÝ{âÝ+w€¯qñîúv­-çÓÑ Ûª«wGCâÝ]¼;à}êÝ-V›ùîáXB½{£ÝŽg‹¥|÷ýáxäÝàJÆ»ÿ{z÷Õ“x÷¾x÷j¹˜Ï¤âãݼ;à]²ƻߚïM¤³w÷âÝã©|÷ínÿ|0ßy€O“ë®Þ}§oä»OFýNS½{òõ»w ãÝoä»Ûn/ Þ=¥Þ½ÕåÝà+½|÷Ùd(Þ½V)Ä»Ç"!¿×Í»>pùî.ñî¡hÜx÷j]¼ûh:ÒÖ[w€/ Þýx<ìÅ»kË…x÷^Ûx÷\Z¼{P¼»Óa·YywÀ;Îïî0Þ=OeòŲ|÷¾|÷ÕéÝÕ¼wùà¯õÃ|÷Ãó~·5Þ},Þ½ñh¼{"Vï~k³ZxwÀÛ~yw¯_¼{R½{³ÓMä»oôïW{õîÓñ +Þýáþ.›NDÃAŸÇí´Ëw7Öw¼rùîn¯?‰%3¹B©Rï>œÌxwø"ï®o×Úr.ß½U7Þ=%Þ=àó¸xwÀGÌw·Úì§|÷p,™VïÞî‰w_,5ñîûÃñÈ»ÀUÔºŸÞ}õ4ŸŽúâÝ«åb>“ŠGCòݼ;à²7‹Õv{z÷„x÷û‡ÇF»7ï¾ÝíŸæ»3ïðIçwßéùî“Q¿ÓTG^¾ûwçð2ÞýF¾»Ýéöøáh"•½“ïÞêÆSÞ¾ÈËwŸM†âÝk•RA¼{,ò{ݼ;àC—ïîïŠÆw¯ÖÅ»¦ó§Õz«óîp5õîÇãa/Þ][.Ä»÷ÚÆ»çÒâ݃âÝâÝ­¼;à]çww2ùbY¼{§ÿË»«yÿîöÀ_ê‡ùî‡çýnk¼ûX¼{ãÑx÷D,l¾»ÍjáÝïùåݽ~ñîIãÝkMñîùî}Ç»À•^½ût<èŠw¸¿Ë¦ÑpÐçï~+ÞÝXwÞð†Ëww{ýÁH,™ÎJñî½ád¶Xi¼;\ïâÝõíZ{šOGƒn«®Þ= |—Óλ>b¾»Õfw8廇c õîvo8ž-–Úf»ÛŽGõîÌ;|ŠZ÷Ó»¯ä»÷;­zµ\ÌgÄ»‡ä»;xwÀ‡d!n,«íÖ|÷h"½»xï>øùîÏÞ®q~÷¾‘ï>ïÞ¬G^¾ûwÇðG2ÞýF¾»ÝéöøâÝSêÝ[ÝÁx:_jë­Î»À•Ô»Õ»k«Ål2ì‰w¯” -¹t2 ú½nÞð—ïîïŠÆS™|±\­·ºýÑtþ´:½»š÷ï®ü•~˜ï~8ìwÛ¶\ÌÆÃ^»¡Þ= Ëww:ì6+ïøÀùÝÆ»GâIõîÍN4‘ï¾Ñw¼;\åç»?›ï>ºíÆãÃý]6ˆšï~k³Z,rÝywÀ›.ßÝíõ‡"1ñî…R¥&Þ}8™ñîð.Þ]ß®µå\¾{«n¼{J¼{Àçq;íòÝoxwÀ»Ìw·ŠwwŠwŠwOçŒwo÷Ä»/–Úf»ÛŽGõîÌ;|‚Z÷Ó»¯žæÓQ_¼{µ\ÌgRñhH¼»‹wüŽzw‹Õf¾{8–ï~ÿðØh÷ãÓ»?xwø¼ó»ïô|÷ɨßiªwOÆ#Æ»;ÎïþÝiü¡þQónµÝŠw÷øáh"•½“ïÞêÆÓùR[ouÞ®¢Þý¨Þ][-f“a¯Ó¬UJ…\&‹ý^7ïø­ó»Û.ñî¡h\¼{±\­·ºýÑtþ´:½»š÷ïîü…~˜ï~8ìwÛ¶\ÌÆÃ^»a¼{: Ëww:ì6+ïøÐùÝÆ»GâÉL^¾{³ÓMä»oôïWøùîÏæ»OÇñî÷wÙtâôî·6«Å"×w¼ãòÝÝ^(ï^(Ujâ݇“Ùb¥©w?òîðIï®o×ÚÓ\¼{·¥Þ=•ˆ†>Ûi—ï~û>pñîNñîAñîéœñîíž|÷¥¶Ùîö‡ƒùîÌ;üßÔºŸÞ}%Þ}Ôï¶êÕr1ŸIÅ£!ñî.Þð{æ»[m滇c‰tîîþá±Ñî Æ§wæÝàÓÎï¾Ó7âÝg“Q¿ÓTGŒwwœßý»Ãøcý#çÝb±ÚnÅ»{|p4‘ÊïÞêÆÓùR[ouÞ® Þý¨Þ][.f“a¯Ó¬UJ…\:‹ý^7ïøï~#ßÝît‰wEã©L¾X®ÖÿËn}.)Ž$PŽÁÞÈâ½2x/DÁD½ÿólfŠj˜Ýn¨þAWÄý^✑9ž-×Ûýç»ûóþê|;×w?ŸOžÃÞ}>µô¡ÿ£ïÎs‘pï¿p{w޽» «þ»kÆx¶X‘w?ºÞàË~¼ûûõÝ—ó‰©{íFµTPÄ뻿…CÁ ]w¼;ü_÷ïK¤2‚¤ʵf§¯Öt±ÚìlÿÝ/þ»cÞžä¯;{w×9ì·ëålbŽìÝóäÝÓÉxŒÐwàÝà§®ï -G8ž¾{NRüwêÖtÎÞÝñNdÞñî_ò?Þ}lŒÝV½RÌËb–¼{ï ƒ¡ðÛõÝE¥Pª6Ú½¡nNæË5Þà÷øï~!ïî¹Gòî«Åtlh}öîª,°wçnïþê,ÀŒ½{€¾{„Å“iòîyúîÝÁȜ̖ëíþà¸ìÝýyu¾™ë»ŸÏ'òîönCÞÝÒµ~§Y+TIȤ1¼;<äþÝ£äݳ¢œ/Vê-òîÆx¶À»üžïþ~òöîó‰¥{mú£ïÎs‘pï¿t{w.O¤²‚¬Òwïô5c<]¬6{ûèzäÝ/þ»cÞžÂÞýoöî®s°wëå|bŽÈ»7ª¥¼"æÒÉ8y÷·p(¤ëŽw€Ÿ¸÷X"•$µP®5É»ë}÷}t¼ÓùŒwø -ºî·wßo×ËÙØ º­z¥”—Å,y÷(¡ïÀ»À/\ß=Žp<}÷œ¤ÊÕF»7Ô­É|y}÷w¼;À—ÜÞÝsäÝW‹ÙØÐØ»UY`ïÎÝÞýÕQ€?Ú_tÞƒÁPø¼{<™Î‰J¾Dß}02É»¯·ûƒã²w÷çýÕøV>üw¿øïnï6«ÅÔ2´~§Y+TIȤ1¼;<ˆ½{€¾{„’wÏŠr¾X©·ºƒ‘1žáÝ~Ë统ßOžÃÞ}>µôa½»"åè»ó\$»Ànïαwd•½{_3ÆÓÅŠ¼ûÑõÈ»_üwǼ<á¿ß}½œOÌѰ×nTKyE¼¾û[8 ÒuÇ»ÀOÝ¿{,‘Ê’Z(ך¾¦[äÝ7;›¼ûé|Æ»<Ï_wöî®sØo×ËÙØ ºìÝe1›NÆ£|„¾{ï¿t}÷P8ÂñôÝs’Bß½ÝêÖd¾¤ïîx§w¼;Àüëݳ±¡ º­z¥¨Ê{wƒ¡ðy÷x2•|©Ú ï>2É»¯·ûƒã²w÷çýÕøF>üw¿w÷Ü£½ß¬SËÐúf­\T%!“JüãÝ_øÃ±wÐwðQòîYQÎ+õVw02Ç3¼;Àoø|÷óûÉsŽön³šO-}ÈÞ½ H9òî1¼;<îöî{wAVÙ»÷5c<[¬È»]¼ûÅwÌ;ÀÃüu¿¾ûÁÞ­—ó‰©{íFµ”WDöîìµé»+R޼{ ïϹ½;ÇÞ]UòîÍN_3ÆÓÅj³·®w{wÌ;ÀCüugïî:‡ýv½œOÌy÷Fµ”WDöîìwšµrA•„L*»÷WǾöîúî>JÞ=+Èùb¥NÞ]3ƳŊ¼ûÑõÈ»_üwǼ<À_÷ë»ìÝz9Ÿ˜ú°×nTKEÊÑwç¹H8„w€'ÜÞ‹Æ©Œ ©År­Ùék†5]¬6;›¼ûé|Æ»<îîÝ]ç°ß®—³‰9té»ç1—NÆÉ»¿…CÁ ]w¼;<äîÝyúî9I)wo÷†º5ý»uº¤(š@a8F3[Á]qßQDqPkòþ¯g¾O*K;¦«*ÍþaeÄy.âœ×\Óv?ቴ{ïÏþC€/à-j÷ i÷À÷H»ÛÖj9W&£~§)‰•r‘´;Ë$h»ÇÐîðaô3bqï¤ÝÓÙ‡ï¹ÎÖ¶Œå\‘‡¤Ý¥j¥tm÷äµÝchwx@Ôîñ—׿H»§³y®\ëÍN4™-–+ëÿÚñð×vÿFÚýGÏÝomÓÐÔ©<ìµµ*_*ä2©ûvöÀ—qm÷m÷Ã’v/–*U‰¶»¬Ì—†eo×óƒð|¹ Ý>„¦ûv?8»ÍÚÔêt<è¶ê5çh»3ÉÄë Útk÷$›Êä -%¾Zk´{CYQ5ô·{×;áéŒvø·¨Ý/´Ýýk»[+}1›ŒúV]Ê\>›&íþ×ëK‡ï¹ÎÖ¶Œå\‘I»7%±R*’vg™m÷ÚB#¿¼þEÚ=ÍseA$íÞMf }e]ÛÝ¿kwÄ;À/]Ûýi÷S=w¿µMCSyØk7¤*_*ä2)6yk÷gß|!×vÑvO0,i÷b©"JÍN$+óåʲ·Žëùi÷ Úàhºÿh÷ƒ³Û¬M]S§ãA·Õ¨ ›&íNÓ=NÓí¸o÷iwŽjVw0žªšn®7{çð½Ý£xö-üÑÞÛý|ßs­m˹"ú¦$VÊEÒî,“ íC»ÀƒèsÄâ4Þ“L*ÍseA¬“vMf }µÞìH»ûwíŽxø…k»#í~ -ƒ£çî·¶ihª"{í†TåKÅ\&Í&oíþì€/åÚî1Úî †%í^,WD©Ùé&Ê|¹²ì­ãz~ž/´;ÀoÑtÿÑîg·Y›º¦Nǃn«Qx®Ë¤ÐîðY·vO²éL®Xâ«R£ÝÊÊ\3L{»w½cžÎ—oQ¼?ûþ`oQ»_h»û×v·Vúb6õ»­º(”¹|6b’4Ýã4ÝÑîðûvOerŽjVw0žªšn®7{ç€vø˜÷v?ŸÃÀ÷\gk[Ær®È£~§)‰•r‘´;Ë$h»ÇÐîð0ú±8÷$“Jgó\Yë¤ÝG“ÙB_­7;Òî>m÷KÔîˆw€ŸŠÒ´û) Žž»ßÚ¦¡©Š<ìµR•/s™4›¼µû³/¾˜k»Çh»'–´{±\¥f§?š(ó¥aÙ[Çõü <ŸÑî¿ó·v?8»ÍÚÔ5u:t[šÀs…\&…v€Ï»µ{’MgrÅ_•íÞPVæšaÚÛ½ëƒðDÚ=Š÷g?#Àë-j÷ mwÿÚîÖJ_Ì&£~·U…2—ϦSL’¦{œ¦;Útßî©L®ÀñB­ÑêÆSUÓÍõfçÐîñÞîçsøžëlmËXÎyÔï4%±R.’vg™m÷Ú>¾G,Nã=ɤÒÙ£Ý~íoí~pv›µ©kêt<è¶5ç -¤Ý´;ü ·vO²©L®Xâ«R£ÝÊŠªæµÝAx"íÅû³¿àõµû…´{à{´Ý­Õr1›ŒúV]Ê\>›&íNÓ=NÓí»kw†´{ã…Z£ÕŒ§ª¦›ëÍÎ9ý»vG¼ü£÷v?ŸBÒîî~k[Ær®ÈÃ~§)‰•R‘´;Ë$h»ÇÐîð)ô?bqï¤ÝÓÙöÚÍZYi»ó\’¶;ƒv€¡?Â$ßüEÚ=•É$¥Rkvú£éb¥ê†u89¤Ý#ï×8Þý’_Êó›vwíãÞÜjëål<è¶Õ’\ÌgÓϾ¶û£gþ`·vgh»'9ž¶»(—kvo8™/7ÚÎ$íîúhw€ßxi÷ i÷0ðh»½˜ŽúÝV½¢HÅ\&%p,IwÒîßÐîð!¯íÎòB:›/Ê¥j£ÕŒg˵¶5÷GÛõÚî—¸Ýïwât¿’tH»;§ƒµÓ7«ùdÔï4keE,vç¹$i÷Ú>Š> iwï,'¤2¹¢¤Tê­N4]¬TÝ°Ž¶ãat>£Ýþáù¾Ý}—´»¹Ó6ËÙdØk7ªeYÌgÓÏÞÚaîð1q»'H»'9ž´{ATʵf§7œÌW}gNŽç‡Ñi÷8Þ}”_ÈK»_H»‡ïÚǽ±U׋ÙxÐmÕ«%©HÛC»À'¡íÎÜÚå…t6/Ê¥j£ÝŒg˶3÷GÛ}Óîˆw€ÿ‹ÓýJÒ= -Ï9,CWW‹é¨ßiÖ*ŠTÈeR¤Ýiº'hº£ÝàC^ÚÄ;ËÑv/J¥J½ÕŒ§‹µº5h»{AHÚý‚vxëù¾Ý}—´»¹Ó6ËùdØk7jeY¤íÎsIÚî Ú>Œ~ “HvOr|*“+HJ¹ÖìôGÓùJÕ ëprH»G$Þ¯q¼?ú*¾Œ—v¿vßµ{s«­—³ñ ÛjTKr1ŸM <ûÚîž|øÃÝÚ¹µ;Ë élA”ËÕF»7œÌ–mg’vwýûvG¼¼ˆÓýJÒ= -ϱ–¡««ÅtÔï´êE*æ2)cIº“vÿ†v€»kwŽ´{¾(•ªõVw0ž-ÖÚÖÜm×BÒî´;À½çûv÷=çt°vúf5Ÿ {f­¬ˆÒî<—$íž@»Àg oÂ$h¼“vOerI©Ôšþh:_©ºaNŽ„‰÷kï>K€/â¥Ý/´Ýßµ{s«­—³ñ ×nTK²˜Ï¦ž½µ;à ÝàãníÎÐvOrÁK»“xÿ»õµ¥*¶@ax4\HQ Š9g1¡`$SBU¿ÿëô{ï®}o Ï8Îï!æü6mwI©Ôšþp2××»ƒuºÚŽ„‰÷äï¯>L€ÿ¶»kßÎGÓØ®³ñ Ûªkªœ¶;ÇæÒv§Ðîð$é£P4MÚ=ÇrùB±,W´F»7Ï–ëíÞ<]nŽçowÄ;ÀßYº&1i÷0ð\ûz¶ÆFŸOGýN³VU¥’(ðó_»¿zìàÿBÖîTÖî Ç bIV«õVw0š.Vãp<_m×ÒvÑî_Y»' I÷ˆ´»s»œ¬ýn½œO†½v£VQ¤b!ϳ IwÒî¡ÝàI¾µ;›¶»¤TjÍN8™ë›ÝÁ"íîxAÝïqòˆ÷W_&ÀËýÑî¾KÚýhÛÕb6t[uM•ˤÝ96GÚF»Àó¤ŸBÑY¼³\¾P,Ë­Ñî dzåz»7O—›ãùaôñ»Ýïðö²tÿLbÒîaà»öõlŒ¾˜Žúf½ªJ%Qà9&kwŠBºÀ³díNeíÎp¼ –dµZou£ébµ5Ìãùj»~¶{ŒvH}eíž$$Ý£0ðœÛådíwëå|2ìµµŠ" yžeHº“vÿ íOó­ÝÙ´Ý%¥Zkvú£É\ßìVÚî^F÷{œ<âýÕ§ ðb´»ï’v?šÆvµœÝVCSå2iwŽÍ‘v§ÑîðLé«Ptï,—/ËJEk´{Ãñl¹ÞîÍÓåæx~}ünwÄ;¼¹,Ý?“˜´{ø®}=ÆF_LGýN³^U¥’(ð“µ;E!Ýày²v§²vg8^˲ªÕ[ÝÁxºXm óx¾Ú®¤í£Ý²t'íž$$Ý£0ðœÛådíwk}>öÚÍZE‘Š…<Ï2$ÝÑîðdßÚ%í^’”j­Ùé&s}³;Xi»{AÝïqòˆ÷Wß&ÀKýÑî¾KÚýhî·«ål<è¶š*—I»slŽ´;M§éŽv€§I…¢Óx'íž/ËJEk´{ÃÉl¹ÞíÍÓåæx~}ünwÄ;¼µ,Ý?“˜´{ø®}=ÆF_LGýN«^U¥’(ð“µ;E!Ýà™²v§Òvϱ\^˲ªÕ[ÝÁxºXm óx¾Ú®„¤Ýc´;ÀWÖîIBÒ= -Ϲ]NÖ~·Öç“a¯Ý¬U©XÈó,CÒíO÷_»3/ˆ%I©Öšþh2×7»ƒ•¶»„‰÷äï¯>N€úÞîï’v?šûíj9º­†¦ÊeÒî›#íNÓiº£Ýà‰Òg¡è4Þ–ÏŠe¥¢5Ú½ád¶\ïöæérs<ÿ{»#Þàeéþ™Äñ= -I»Û׳u06úb:êwZõª*•D瘬Ý) -éÏ•µ;•¶{Žåò‚X–U­ÞêÆÓÅjk˜ÇóÕvý $í£ÝàÝ}eíž$ñýƒ´»çÜ.'k¿[ëóɰ×nÖ*ŠT,äy–!éŽv€ð_»3/ˆ%I©Öšþh2×7»ƒEÚÝñ‚0"ñž<âýÕ× ð2ßÛ=ð]ÒîGÓØ®–³ñ Ûjhª\&íα9Òî4¦;Úž*ýÒî$Þ–ÏŠe¥¢5Ú½ád¶\o÷æérs<ÿ{»#ÞàmýJ÷ø…¤ÝíëÙ:}1õ;­zU•J¢ÀsLÖî…t€g{´;MÚ=ÇryA,˪Vouãébµ5Ìãùj»~’vÑîðÞ¾~µûý# -}Ϲ]NÖ~·Öç“a¯Ý¬U©XÈó,CÒí?"mw*kw†ã±$)ÕZ³ÓMæúfw°NWÛñ‚0"ñž Þà­ýÛîqÚîïÚ·óÑ4¶«ål<è¶š*—I»slŽ´;M§éŽv€'Kß…´;‰w†åó…bY©hvo8ž-×Û½yºÜÏG»üýH÷$¾ß£0ð\ûz¶ÆF_LGýN³^U¥’(ð“µ;E!ÝàùíN“vϱ\^˲ªÕ[ÝÁhºXmŒÃñ|µ]?I»Ç¤Ý?Ñîð®¾~·ûGúžs»œ¬ýn½œO†½v³VQ¤b!ϳ Iw´;ü´Ý©¬Ý–Ä’¤TkÍN8™ë›ÝÁ:]lÇ ÂˆÄ{’díŽx€·ôo»Ç¤ÝÃÀwíÛùhÛÕb6t[ M•ˤÝ96GÚ¦ÓtG»ÀÓ¥ÿBÚ=w–ËŠe¹¢5Ú½Áx¶\o÷æñrs†¢Óxg9!›—”b¥ÞìôGÓÅj»?é†i9žvÑî𙾞íÝH»»¶y9kÇÝf9zíFµ¬Ê…œÈsLÚî…t€WIÛJÛáx1W‹åZ£ÝNæËÍþ¨WËqý $ñ~G¼ÀGz´{œ´»ï9¤ÝõÓa»^LGýn«^))R>+ð,CÒ´û/´;¼Ì£ÝI¼3,/dó²ZªÖ[ÝÁxºXï§óÅ´]ÏG»ÀçúN÷{Ea@Úݺúq¿YÍ'Ã^§Y+•BN86CÚF»À+%/CÑ4i÷ Ë‘v—”b¥ÞìôG“ùj»?éÆÕrõ;Íz¥¨H¤Ý96Mw:Iw´;¼Pò4¤ÝI¼3,'dó’RªÔ[þhºXm'Ý0-ÇóÒîÏxÿé'x›¯g»G7Òî®m^ÎÚq·YÎÆÃ^»Q+«r!'ò“¶;…v€ûnwš´{†áx1WPŠåZ³ÝNæËÍþ¨WËqý $ñþhwÄ;|ŒG»ÇI»ûžCÚ]?¶ëÅtÔï¶êÕ’*å³Ï2$ÝíþÓ£ÿoI»SßíÎòB¶ «¥j£ÕŒ§‹õî /¦íz~Òî1Ú>Ë#Ýïq…ï:ÖÕÐûÍj>ö:ÍZ¥¨H9QàØ iwšNÒí/•| E§ñÎrB6/)ÅJ½Ùé&óÕvÒ«åx~FQ|G¼ÀGù¯Ýoa๶y9k‡Ýz9ºíFµ¬Ê…œÈsLÚî…t€WKÛJÛáx1WÕr­Ñî Æ³åfwÔÎÓv½ ¼¡ÝàÓ<Ó´{à{Žu5ôÓ~»šOGýN«^))R>+p,CÒ´û/´;¼Ü£ÝI¼3,/dó’ZªÖ[ÝþhºXo'´»ãùi÷˜´ûo´;|Нg»G·0ð]›´»vÜo–³É°×nÖÊE¥yŽÉv§ÑîðÉÛP4MÚ=Ãr‚˜“”b¥Öìô†“ùj³?êÆÕr\?I¼ßïi»#Þà#<Ú=NÚÝ÷\Û¼œO‡Ýz1 º­Fµ¤Ê…¬À³ßíNQHwxƒ¤Ý©´ÝŽsY-Wíî`<[¬wí|1m×óÑîðaé~£( |ϱ®†~ÚoVóɰßiÖ+EEÊgŽMÓNÒí/—ü iwï Ë Ù¼¤”*õf§?šÎWÛýI7®–ãùA!Þà“ü×î·0ð\Û¼œµãn½œ½v£VVåBNä9&mw -íoñÝî4i÷ Ãñb® ˵F»7Ï–›ÝQ;_-Ûõ‚ð†v€OòLwÒîï9–iè§Ãvµ˜ŽúV½ZR¤|VàY†¤û£ÝzÎà$íN}·;Ë Ù¼¬–ªõVw0š.ÖÛÃé|1I»ûi÷g¼ÿô£¼Ü׳ݣ[ø®c] í¸ß,g“a¯Ý¬UŠJ!' -›!íNÓIº£Ýà ’Ç¡è4ÞYŽ´»¤+µf§7œÌW›ýQ7®–ãúAHâýÑîˆwøßKÓý÷=NÚÝ÷\Û¼œµÃn½˜ŽÝV£ZVeÒî<ˤíNQHwx´Ý©´ÝŽsY-Wíî`<[¬wí|1m×ó“vÑîð¾Òv¿ßã( -ßu¬«¡ŸöÛÕ|2ìwšõJI‘òYc“t'íþ ío’Æ;ý‰w†å…l^RJ•z«ÓMç«íþ¤WËñü Œ¢øŽx€ð_»ßÂÀsmórÖŽ»õr6ôÚZ¹(r"Ï1I»ÓhwxŸïv§I»gNs¹X®5Ú½áx¶ÜìŽÚùjÙ®„7´;|ˆ?éGaà{Žeúé°]-¦£~§U¯–T)Ÿx–!éþMQHwx›¤Ý©ïvgy1›—ÕRµÞêFÓÅz{8/¦íx~@Úýï?}«/õ§Ý£[x®c] í¸ß,g“a¯Ý¬UŠŠ”ŽÍv§éÙ­ÜFٌˆ:¸ãÞ{ï¦w\’ý¯ççÃ™Ì -®-qßgçuÇ»À‹êPt:ï,'HJ¾X®Ö[ÝþhºXm'ͰÏ£8™÷ŸwǼ@¦ý]÷äÝ£0ð]ÛÔ/Çýf9› {ífM-r²ÈsLúî…u€×IßJßáxQÎJj­Ùé 'óåf¼è¦íúAHÞýž¼ûÞ²íûï»ß®qúžcÚù°]/¦£A·Õ¨VŠyE8–IÖ=y÷?xwx¡ŸwOæayARòÅJµÑêÆÓÅzw8k†åxAÅ·ÛýñHßóöóîwòîaà»¶©_NûÍj>ö;ͺZ.äd‘ç˜ÏäÝi¼;¼éEÓÉ»2œ ʹBY­7;ýÑd¾ÚîOÝ´]?ˆâ+Þþü¬ûã~»ÅQxŽehçÃn½˜Ýv£V)åIàÙç»SÖ^м;õ|w–%¥PªÔíÞ`<[®wdzfÚŽ„Qòî˜wȼï~£ÀwK¿œöÛÕ|:êwZõj¹˜—EcÓu§ÉºãÝà…Hy’w'óÎr‚¤ä‹åj½Õí¦‹ÕöpÒ Ëñü0Š“yÇ»@Æý®{òîQx®mêçãn³œ‡½v£¦– -9Yä9&}wŠÂºÀk=ß&ïÎp¼(ç -%µÖl÷†“Ùr³?^tÓvý $ïþwÞßW€ÿ‘ßw¿]ã(ô=Ç2´Óa»ZLGƒn«^­óŠ$p,“¬{òîðîðbäÝ)ú#™w†åIÉ+ÕF«;OëíᬖãùaDæýçÝ1ïQ×¼{ø®mê—ã~³œO†½N³¦– 9Yä9æ3ywï¯GÚCÑtòîŸ 'ˆr®PVëÍN8™¯6ûÓE7m×Bòî÷äÝ¿ðîUßß=Y÷(ô=Ç2´óa·^Lǃn»Q­”òŠ$ð,“¬ûMQXwx9òîÔóÝY^””B©Rk´{ƒñl±ÞΚa9^Fñív<ÒwǼ@&¥ëþõ¸§ïø®mê—Ó~³šOFýN³®–‹9Y8ö3ywš&ëŽw€#õ¡ètÞYN”|±\­·:ýÑt¾ÚîOÝr\?ˆâ+Þ2í;}÷Çã~»ÅQxŽmhçãn½œ½v£V)’wçY&}wŠÂºÀë¥ïN¥ïÎp¼(ç -%µÖh÷†ãÙr³;žuÓv½ Œ’wǼ@†ý{÷k¾çXÆåtØ®æÓQ¿ÛªWËż" KÖ=y÷?xwxƒtÞédÞ–$%_¬Të­î`4]¬¶‡“fXŽç‡QœÌ;Þ2ëwÝ“wÂÀsmS?w›ål2ìµ›5µTÈÉ"Ï1äÝi¼;¼ÇóÝéäÝ?Žå\¡¬ÖšÞp2_nöÇ‹nÚ®„äÝ1ïY¿ï~»ÆQè{Žeh§Ãv½˜ŽÝV£Z)æIàX&Y÷š¢°îðäÝ)ú#™w†åIÉ—*ÕF«;OëíᬖãùaDæïõ»îäÝÃÀwmS¿÷›å|2ìwš5µ\ÈÉ"Ï1ŸÉ»Ó4Yw¼;¼)EÓÉ»²œ ʹbY­7;ýÑd¾ÚìOÝ´]?ɻߓwÿ»@öü¾{²îQè{ŽehçÃn½˜Ýv£Z)åIàÙç»SÖÞ#}w*}w†åE)W(Ujvo0ž-Ö»ÃY3,ÇóÃ(¾ÝîGúî˜wȘtÝ¿÷ôÝßµMýrÚoVóɨßiÖÕr1'‹ǦëN“uÇ»À[¤óNyg9ARòÅrµÞêôGÓùj»?]tËqý НÏwÿ»@Ö|§ïþxÜo·8 -}ϱ í|Ü­—³ñ°×nÔ*¥Bòî<ˤïNáÝàmžïN“wg8^”s…’Zk´{Ãñl¹ÞϺi»^Fñí9ïߘwȘtÝÓw¿ÆQ໎e\Nûíj>õ»­zµ\Ì+’À±dÝ“wǺÀûw§èdÞ–$%_¬Të­î`4]¬¶‡“fXŽëQ|Å»@&}§ïNÖýGa๶©Ÿ»Ír6öÚÍšZ*äd‘çòî4ÞÞ‰Tˆ¢éäÝ?Žå\¡¬ÖšÞp2[nvdznÚ®„Ñõ†y€,ú÷î×8 -|ϱ ítØ®ÓÑ ÛªW+ż" Ë$ëþASÖÞˆ¼;õ|w–$%_ªT­î`<]¬·‡“fXŽç‡Q|Å»@ý[÷Û5 -ϵMýrÜm–óɰßiÖÔr!'‹<Ç|&ïNÓdÝñîð6¤CÎ;Ë ¢œ+–Õz³ÓNæËÍþxÑMÛõ‚¼;æ2çß»_ã(ô=Ç2´Óa»^Lǃn»Q­”òŠ$ðìóÝ) -ë;•¾;Ãò¢¤J•j£ÝŒg‹õöpÖ Ëñü0"óŽw€Œù]wòîa๶©_ŽûÍr>õ;ͺZ.ædQàØtÝi²îxwx£tÞé2ï,'HJ¾XVë­N4™¯6ûãE7m×Bòî˜wȘßwOÖ= -}ϱ í|Ø­³ñ ×þݺÀm\  (,Ù‘jf‡™™0c“ÎÌþ×óü;šÌžÔ¤ºß&ÎiÖ+¦®H"Ï2Å»Sxwøfw§É»3/ʪnVêÍN4™/7ûãùêxA§™w¼;ü(Ïu'ïž&qè»öåtØ®Óñ ÛnTˆ¦HÇ’uÏßëß¼;E—òygXNÍ(×íÞ`<[¬w‡ÓÅvý0NŠwǼÀò|÷|ݳ4ŽϹžûÍj>õ;ÍzÅÔUYä9†¼;w€ïGZDÑtþî Ç‹²ª›Õz«ÓMæ«ÍÞ:_]?ˆâ´˜w¼;ü Ïu/Þ=‰Cß³/§Ãn½˜½v£V64E8–É×½DSÖ¾ywŠ.åóΰ¼ )šQ®5Ú½áx¶\ï§‹ãaœïþwÞ¿;¸ÿƒç»“uOã(ðÝëÙÚoVóé¨ßiÕ«¦®Ê"Ï1ù»Ó4Yw¼;|3R#Цówÿ`9^”UݬÖ[Ýþh:_m÷ÖÙvý0JÒìó~ÿûî˜wøþ®{ñîIžs9vëål<ìµµŠ¡)’À³w§(¬;¼òîTñî Ë ’¢•Z³ÝNfËõîxº8^ÆIöy»}åïþï?ÁŸ¿ï~¿fi…¾kŸ­ýv5ŸŽúÝV½jêª,ò[¬;MÖïߎôˆ¢‹yg9A”U½\­·ºƒÑt±Úî­³íúa”¤Ùí~ÿúõ«xwÌ;¼½bÝÿúúºß>³$ϹœŽ»õr6öÚÍZÅÐIàY¦xw -ï/¡xwªxw†åEIÑÌJ­Ùé '³åfw<]/ã$û¼=Þý7ÞÞߟâÝýúºßoYšD¡ïÚgk¿]-¦£A·U¯–uUŽ-ÖÆºÀ‹(æ.‘yg9A’U£\m´ºƒÑt±Úî­³íúa”¤Ùíþ˜÷?˜wx{źï~ûÌ’8 <çz:î6ËÙdØë4kSS$‘g™âÝ)¼;¼ˆÇ»ÓäÝŽeU7+µf§?œÌ—›Ýñtu¼ ŠÓìó†w€âOñîdÝï·,M¢Ðwí‹uØ®Óñ ÛjTˆ*KÇ’uÏß믂¼;E—òygXNÍ(Wíî`<]¬¶ëb»~%iv»cÞàgø÷î·Ï,£Às®§ãn³œO†ýN³V1uUyŽ!ïNãÝàu&Q4¿ûÃñ¢¬êf¥Þìô‡“ùr³;ž®ŽDqš}Þðîð#ü[÷û-K“(ô]ûb¶ëÅt<è¶Õ²¡)’À±L¾î%š¢°îð2È»St)Ÿw†åIÑŒrµÑîÆÓÅz{°.¶ë‡Q’’wǼÀðïÝoŸYGç\OÇÝf9Ÿ ûf½bêª,òó‘¿;M“uÇ»À‹ U¢h:÷†ãEYÕÍJ½Ùé&óåfw<_/ˆâ4#óŽw€·÷\wòîi…¾k_¬Ãv½˜Ýv£Z64E8–É×½DSÖ^ywŠ.åóΰœ )šQ®6Ú½Áx¶XoÖÅvý0JRòî˜wx{ÏwÏ×=Kã(ðœëù¸Û,ç“Q¿Ó¬WL]•Ežc>òw§i²îxwx¤KMçïþÁp¼(«ºY©·:ýÑd¾Üìç«ãQœfdÞñîðæžëNÞ=M¢Ðwí‹uØ®³ñ ×nTˆ¦HÇ2ùº—hŠÂºÀK!ïN=ÞåIÑŒr­Ñî Æ³Åz{°.¶ë‡Q’’wǼÀ›{¾{¾îYGç\ÏÇýf9ŸŒúV½bêª,òó‘¿;M“uÇ»À !e¢èǼs¼(«ºY©·:ýÑd¾Úìç«ãQœfdÞñîðÖžëNÞ=M¢Ðwí‹uØ®³ñ ×nÔʆ¦HÇ>Þ¢°îðZŠw§ïÎò‚¤hF¹Öh÷ãÙb½=XÛõÃ(IÉ»cÞà­=ß=_÷,£Às®çã~³šOFýN«^1uUyî±î4Yw¼;¼”bÞébÞYŽeU7+õV§?šÎW›ýñ|u¼ ŠÓŒÌ;ÞÞØsÝÉ»§Iú®}±Ûõb6ôÚZÙÐIàÙÇ»Sxwx9Å»SÅ»3,/HŠf”kvo8ž-ÖÛƒu±]?Œ’”¼;æÞØóÝóuÏÒ8 -<çz>î7«ùtÔï´êSWe‘çØbÝi¬;¼ bÞé™w–ãEYÕÍj½Õí¦óÕf<_/ˆâ4#óŽw€·õ\wòîi…¾k_¬Ãv½˜‡½v£V64Ex–)Þ»À z¼;MÞayAR4£\k¶{Ãñl±Þ¬‹íúa”¤äÝ1ïð¶žïž¯{–ÆQà9×óq¿Yͧ£~·U¯šº*‹<Ç’uÏß믈¼;E—ȼ³/ʪnVë­n4¯6ûãùêxA§™w¼;¼©çº“wO“(ô]ûb¶ëÅl<ìµ›µ²¡)’À³ yw﯉ô‰¢iòî Ë ’¢åZ³ÝŽg‹õö`]l×£$%ïŽy€7õ|÷|ݳ4ŽϹžûÍj>õÿc·>sTçÒ( -KçøÎÙEÎ9çhã\Ôÿ„šÔ|SÀÒ~&±V»Q-»¶©«²$Òº œ1¬;|%zwÆšwQ’UÝ´ÝrµÑîÆÓÅj»?]nA'YNóŽw€Bú¬;½{–ÆÑÝ¿ž»õr6ö;ÍzÅs,CSd±DïÎ9­;Þ¾ŠqNï^eE3,ǫԛþp2[®w‡óÕ¿GqšÑ»cÞ >ïþ\÷þþaÞ @>ïþ÷xäYGwÿz>ìÖËÙdØë4kϱ M‘Ž;ç´îxwøjÔ*Æ9½{I”Ͱ¯RkvzÃÉl¹ÞÎWÿÅi–?žóŽw€Âø¬ûóÝó4‰Âàv9î7«ùt4è¶Õ²k›º*K"­»ÀúÀ×£wg\ y%YÕMÛ-W­î`4¯6ûãå„Q’æ¿ÏwǼ@a|ÞÖ=Kãèî_χÝz9› {f­â9–¡)²X¢wçœÖï_ŽjÅ8§w/‰²¢–ãUjÍNo8™-×»Ãùêߣ8Í^óŽw€‚ø¬ûëÝÓ$ -ƒÛå¸ß¬æÓÑ ÛjT\ÛÔUYiÝÎÖ -€Þqæ]”dU7m÷§Úhu£é|µÙ/· Œ’ôõî˜w(ˆÏ»ÓºgIÞýëù°[/gãa¯Ó¬U<Ç24EKôîœÓºãÝàëQ¯çôî%QV4Ãr¼J­Ùé dzåzw8]ý{'ÙkÞñîPÿ­;½{šDap»÷›Õ|:êw[êk›º*K"­»Àú@!л3.м‹’¬ê¦íþT­n4¯6ûãå„Q’Ò»cÞ Þëþz÷çºgIÞýëé°]/fãa¯Ý¬U<Ç24EKôîœÓºãÝ ¨XŒsz÷’(+ša9^¥Öl÷†ãÙb½=œ®þ=Œ“Œæýõî˜wørïw§u¾{–&QÜÎÇýf5ŸŽúÝV½úãÚ¦®Ê’Hë.pưîPôîŒ 4ï¢$«ºi»?Õz«ÛMæ«Íþx¾a”¤ÙóÝßóŽw€¯ö^÷×»?~ó,‰ÃÀ¿œÛõb6öÚÍZÙs,CSd±DïÎ9­;Þ -šÅ8§w/‰²¢–ã•kÍvo0ž-ÖÛÃéâaœdùsÞ_ïŽy€¯ö~wZ÷ç»giÝýëù¸Û,ç“Q¿ÛªW\ÛÔUYiÝÎÖ -ƒÞqæ]”dU7m÷§Zouú£É|¹ÙÏWÿÅiö|÷÷¼ãÝà‹}ÖýßsÝó,‰Ãàv9¶ëÅl<èµ›µ²çX†¦Hb‰ÞsZw¼;U‹qNï^%E3,Ç+×íÞ`<]¬·‡Óå„q’åÏyÿ‡y€/÷y÷¿Ç#ÏÒ8ºû×óq·YÎ'£~§U¯þ¸¶©«²ôZw3†u€¡wg\xÍ»$«ºi»?•z«ÓNæËÍîx¾ú÷(N³üñœw¼;|µÏº?ßý7O“8 n—Ó~»ZLǃ^»Q+{ŽehŠ$¾ÞsZw¼;u‹qþzwQR4Ãr¼r­ÑîÆÓÅj»?]nA'iþû|wÌ;|µÏ»ÓºgiÝýëù¸Û,g“a¿ÓªW~\ÛÔUYúÿº3¬ûÿØ­$UµŒÂuÝV59*bÀœ³bBÉ`÷Õ3ÿù<6T÷Bëyÿ7‰µà­ÐwÿžwŽeU¯Öê­vo8ž-Ö[ûx¹º~%i>ïxwxa?ëž¿{‡ws·ýf5ŸŒú]«iM‘Ž-Þ=_w¼;¼‘ŠyÏßåIV+†Ù°ºýÑd¾ÚìgçæaœäïŽy€×U¬;}wºîi…¾{½ííz1zíV½VÕYä¹bÝ ÖÞN>落wŽ%E«Öê­vo0ž-Ö[ûx¹º~Åi>ïôÝ1ïð’Šw§ëNß=‰ÃÀ»9§Ãn³œOFýŽÕ0 ]•%c™lÝˤ„w€·“¿{‰”³ygXNeU7̆Õé&óåfw897/ã$ÍÞ½˜w¼;¼ bÝÿ<ºîi¾{=ííz1zíf½VÑIä9æ#{wB°îð†òy'${÷†åIÑ*µz³ÝŒ§‹õÖ>ž× ¢8½góþxdïŽy€T¼ûó™­û×gšÄa¶î—Óa·YÎ&Ã~Çj˜U]•Ec™lÝˤ„w€7”¿{‰”é¼³œ ʪ^5V§?œÌ–›Ýát¹º~%éý+›÷çï/ègݳwÿ¼§qx7ç|ÜoW‹éhÐm7ëFES$g™ìÝ ÁºÀ[Êçúî Ë ’¢UŒz³ÝŒ¦‹Õv<;7/ˆâäþ™½;æ^ÒÏ»çëžD¡ï^/'{·^Î&Ã^§Õ¨UuUyŽ¥ë^&%¼;¼¥üÝK¤LçåxQVõj­Ñêô†“Ùr½³O—«ë‡Q’æóþýî˜wx!?ëž¿{GwsÎÇýv5ŸŽ]«iM‘že軂u€7•Ï;!ôÝ–$E«fÓêFÓùj³?œ›„qBßý¿yÿíRü(Ö¾;]÷4ŽBß½^Nön½˜‡½N«Q«êª,òK×½LJ%¬;¼)úî%RÎçãEYÕ«µz«ÓŽg‹õÎ>^®®FqJç=wÌ;¼”âÝéºÓwOâ0ðnÎé°ß¬æ“Q¿k5M£¢)’À± }wBèºãÝà-ц•ÉßåIÑ*†Ù´ºýÑd¾Üì'çæaœ¤Ù»óŽw€R¬ûŸçãA×=£ÀsóÑÞ®³ñ ×nÕkU]•Ežû^÷ÖÞ}÷ïyçxQV´j­Þj÷ãéb½µgÇõ‚(NïÙ¼?0ïðbŠw>³uÿº§Iúîõr:ì6ËùdÔïX ÓÈÖ]8¶x÷|Ýñîð¦þ)潜Í;Ãr‚$«ºa6¬N8™-7»Ãéruý0JÒûW6ïxwx)?ëž½ûç=‰£À»9çã~»ZLǃ^»Y¯U4Ey®Xw‚u€·–Ï;!Ù»0/JŠV©Õ›íî`4]¬¶ûãÙ¹yA'÷ÏìÝ1ïðJŠu§ïN×=M¢Ðw¯—Óa·^Î&Ã~Çj˜U]•Ec™lÝˤ„w€·–¿{‰”³ygXNeU¯šV§7Ï–ë}º\]?Œ’4Ÿwúî˜wxÅ»Óu§ïžÄaàÝœóq¿]ͧ£A·Ý¬M‘že>²w'ëo.ŸwB²wÿ`X^­bÔ›V·?šÎW›ýáìܼ ŒúîżãÝà%ëþçùxÐuOã(ôÝëåhïÖ‹ÙxØë´µª®Ê"ϱtÝˤ„w€7—¿{‰”é¼³/ʪ^­5ZíÞp<[¬·öñ|u½ ŠS:ïGöî˜wx Å»?ŸÙº}¦IúÞír:ì7«ùdÔïZMÓ¨hŠ$p,C߬;¼½|Þ ¡ïΰœ )ZÅ0›V·?šÌ—›ýát¹º~'éý+›÷çï/ágݳwÿ¼§qx7ç|´·ëÅt<èµ[õZUWe‘çòu/“ÞÞ^þî%RÎçãE9›÷Z½Õî ÆÓÅzkÏÎÍ ¢8¹fïŽy€×P¬;}÷|Ý“(ôÝëåtØm–óɰ߱¦¡«Š$plþî„`Ýà/Ï;!ù»³œ ɪ^5V§?œÌ–›}º\]?Œ’4Ÿwúî˜wøuÅ»Óu§ïžÄQàÝœóq¿]-¦£A·Ý¬×*š"‰<÷½î%¬;üè»Ï;Ç‹’¢UŒz³ÝŒ¦óÕv8;7/ㄾ{1ïxwøeźÿy>tÝÓ8 -}÷z9Ù»õr6ö:­†YÕUY8–ÉÖ½\¬;ÞÞÞ?ż—³ygXNeU¯Ö­No8ž-×;ûx¾º~Å)÷Ç#{wÌ;ü²âÝŸÏlÝ¿>Ó$}ïæœûÍj>õ»V³nT4Ex–ùÈÞ¬;ü%òy'${÷†åIÑ*†Ù´ºýÑd¾Úì§K6ïaœ¤÷¯lÞŸÏâÝ1ïðk~Ö={÷Ï{GA¶î磽]/fãA¯Ýª×ªº*‹<ÇÒu/“Þþù»—H™Î;Ëñ¢¬êÕZ½Õî ÆÓÅzkÏÎÍ ¢8¹~ýûß¼ÿv»àÿV±îôÝóuO¢Ðw¯—Óa·YÎ'£~Çj˜FES$cúî„`Ý௑Ï;!ôÝ–$EÕ ³auúÃÉ|¹ÙÙÿc·>°SE0 Ÿ ÎŒtì½÷®¢Ò‹"$û_ÏüÀd79‡û=›xßËõnXŽëɼ§ïŽy€”½{²îÉ»ûžk›úMSåãn³œO†ýN«AÖ]äY&]÷õ†w€ÜHßý*¤óΰ¼ •«õV§?œÌ–›ÝQV´›nÚŽç'ïžÍ;Þ~L¶îïq%ëx®c÷«z>í·«Åt4è¶›µJI8†Nߢ°î#é¼Sé¼i†ãÅR¥Öhw£é|µÝŸÎªv7LÛõ‚dÞ#Ì;ü¤ìÝ㘬{ø|ϱLýzQäÃn½œM†½N«^-KÏ~®;Þò$y÷dÞÿþçß"Ír‚T®Ö›Þp<[¬wY¹\ï†åx~ðɼÿÿî˜wø_ëþ -ŸßsmS¿iêù¸ß¬æÓQ¿ÛnÔ*%‘ç:Y÷Öræ¯lÞ É¼Ó Ë‹¥J­ÑêöG“ùj³?ʪvÓMÛõüÇ3|}ÍûOþ@Ùº¿ÇQ”¬{໎eܯåtØ®³ñ°×iÖ«eIàXº˜¼;EaÝ gÒy§¨äÝ‹4à R¹Zo¶{ƒñt±ÞNçËõnXŽëɼGywÌ;üˆìÝ㘬;ywßslS¿iŠ|Üm–óɨßm5Ⱥ‹<ˤë^ Þðî3黿Q…tÞ–“youúÃÉl¹ÙdårÓMËñüà’yãìÝ1ïðÍ>×¼ûóx®mwM=ŸöÛÕb:tÛÍZ¥$ -C§ïNQXwÈtÞ)*}wšáx±T©5ÚÝÁh:_mödzª‘y·]/x<É»ÎûOWþ0Ùº'ïþ -ÃGà{Y÷ëE‘»õr6ö:Ízµ, <Ëü¿îxwÈôÝ?çå©\­7;½áx¶Xo'år½–ãúÙ¼'ïŽy€o—½{²î¯ðùð=×6õ›¦ÊÇýf5ŸŒúÝV£V)‰<ÇÐE²î¬;äÒ¯y/$óN3,/–*µF«ÛMæËÍî(+ÚM7mÇó“wÏæïß,[÷÷8Š’u|×±ŒûU=ŸÛõb:ôÚÍzµ, Kÿ%ïNQXwÈ¥tÞ)*y÷"Íp‚Dæ½Ùî ÆÓÅj»?UínX¶ëɼG˜wø~Ù»Ç1Y÷¬»çX¦~½(òa·YÎ&Ã~§•¬»È³Lºîê ï¹”¾ûUHçayA*Wë­N8™-×»ƒ¬\®dÞÏ!™÷äÝ1ïð­¾Öý>¾çÚ¦~ÓÔóq¿Yͧ£A·Ý¨UJ¢À1túî…u€œJç¢Òw§ŽK•Z£ÝŒ&óÕf”Uí¦›¶ëùgøÊæïß([÷÷8Š’u|×±Œûõr>¶ëÅl<ìušõjYx6[÷õ†w€œJßýsÞYNÊÕz³ÓŒ§‹õöp:«×»aÙ®$óaÞà{}dïÇdÝÃgà{Žmê·‹"w›å|2êw[Z¥$òCgëNaÝ ·~Í{!™wšay±T®6Zþp2[®wY¹\uÃr<2ï!™÷äÝ1ïðm¾Öý>çÚ¦qÓÔói¿]-¦ãA¯Ý$ë. K“w'ëŽw€üJ碒w/Ò 'ˆ¥J­ÑîFÓùj³?žUí¦›¶ëùgøÊæïß$[÷÷8ŠÒu÷]Ç2î׋r:ìÖËÙxØï´êÕ²$ð,“®{ë¹–¾ûUHçayA*WëÍNo8ž-ÖÛÃé|¹Þ Ëqý ™÷("ïŽy€ïñ‘½{“u'ïî{Žmê7M‘»Ír>õ»íF­RyŽ¡Ów§(¬;äZ:ïT:ïEšáx±T©5ZÝþh2_nvGY¹ÜtÓr<2ï!™÷8ÎÞó¿Ý׺¿Èºžk[Æ]Sϧývµ˜Ž½v³^-KÇ~®;Þr-}÷dÞÿþçß"Ír‚Dæ½Ùî FÓÅj»?žUÌ»ízþã¾¾æý§›¹—­û{EéºûžCÖýzQäÃn½œM†ýN+Yw‘g:Y÷Örï×¼ÒygX^ÊÕz«ÓŽg‹õöpR.×»a9®$óEäÝ1ïðû}dïÇdÝÉ»“u·Mý¦©òq¿Yͧ£A·Ý¨UJ"Ï1t1ywŠÂº@î¥óNQé»Ó Ç‹¥J­ÑêöG“ùr³;ÊŠvÓMËñȼ‡dÞã8{wÌ;üV_ëþ"ëx®m÷«z>í·«Åt<ìušõjY86[÷õ†w€ÜKßýsÞYNÊÕz³ÝŒ§‹Õv:«Ú]7m×óÏðõ5ï?ÝuȵlÝßã(J×Ý÷œdÝ/Š|Ø­—³É°ßm5j•’ȳ ­;…u€?À¯y/$óN3,/&óÞêô‡“Ùr½;œ”ËõnXŽëɼGywÌ;ü^Ù»Ç1Ywòî¾çÚ¦~ÓTù¸ß¬æÓÑ Ûn&ë.p ]LÞ¬;Þþ¥óNQÉ»i†ãÅR¥Öhw£É|¹ÙeE»é¦åx~ð ɼÇqöî˜wøm¾ÖýEÖ= ën÷«z>¶ëÅl<ìušõjYx–I×½€u€?DúîoT!›w–¤rµÞìôãébµÝŸÎªv×MÛõ‚Ç3|}ÍûO·r+[÷÷8ŠÒu÷=Ç2ôÿØ­Ó-5ÑŒÂ'ÑîÈì¬ˆŠˆ8NÈl9PÞÿõôÓý÷¤²j%¾û&ö³Ûúb6jªÒnеJ© p,Måºg@w„B/R‚÷LŠwŠf8¡PªÔD©ÝQµáx¶X›Ýáèx~˜àýv#vÞB¿®{j÷("t'vßµ­ýÖÔ—óɨßSäV£NèžçY†Ê}#v't‡ÝB½H‰Ýc¼»ç(šå¼7š²¢ö‡“ÙR7¶{Ëv¼€àýBðE©Ýw„Ð/éݯ„î'BwçxØ™ëÕb:hÝNK«åbžç:¡{tG!ôB=ðžMðN3Ÿ/–«u©%w{ƒÑt¾Z›Ûƒe»~¾/×xÿì¿#„þÈRº¿G·[B÷0𜣵Ûúb6jªÒnеJ© p,M%vÏdºÃî!„^£ï™ï9Šf9¡PªÔD©ÝQµáx¶X›Ýáèx~xŠñ~»»ï¡_Ó=µ{º»º»¶µßšúr>õ{ŠÜjÔ«åbžg™'Ý¿‚î!„^§Äî1Þÿúû[ŽbX>Á{£)+j8™-uc»·lÇ Þ/ïðŽúUý û•Ðýø®s<ìÌõj1´n§%‰1ÝŽ¡©˜îYÐ!„ЋõÀ{6Á;Íp|¾X®Ö¥–Üí FÓùjmn–íúAøv¾\S¼ßw„ÐÇ—Òý=ºÝº‡Ó}cè‹Ùx¨©J»)Ö*¥‚À±4•‹ížÝB½X_¼g2‰Ý)šå„B©R¥vGÕ†ãÙbelv‡£ãùá)Æûí‰÷Ͼ=Bèê;Ý#B÷ ¡{๶µßšúr>õ{ŠÜjÔ«åbžg™”îYÐ!„ÐK–Øý‰w†åó1ÞMYQûÃÉl©›½e;^ðÄû;ðŽúÐî©Ýcº_/ç·0ð]ûxØšëÕ|:hÝNKcº CS)Ý3 ;B¡—ì÷l‚wšáø|±\­K-¹ÛŒ&óåÚܼ»ïÄîïQ”ÚxG}POºßbºŸBßsŽ‡ÝÆX-f㡦*í¦X«” -ÇÒT.¶;¡;ìŽBè%û’à=“IìNÑ,'J•š(µ;ª6O«õfw8:®œÞ¯À;BèƒKéþþ¤{à9¶µßúr6ö{ŠÜjÔ«åbžg™”îYÐ!„ÐË–Øý‰w†å¼7š²¢ö‡“ÙR7¼{~˜àýv#v‡ÝBÔ=µ{º»‡ïÚÖak®WóéhÐëvZ’Ó]àšJéžÝB½l¼g¼Ó Çç‹åj]jÉÝ^4™/us»·l× ÂÓùBðï¡ëݯ„î§Ðwãa·1V‹éx¨©vS¬UJci*ÛÐvG!ô²=ìžIìNÑ,'J•š(µ;]m0ž.Vksw8Ú®œÞΗkŠ÷;ðŽúˆRº¿G·[J÷ÀsŽÖ~cèËÙdØW¹Ù¨WËÅ<Ï2)ݳ ;B¡—î¿xgX>Á{£ÙVTm8ž-tcCðîx~˜àýöÄûg?!ôÛ÷î¡ûåÓݵ­ýÖ\/ç“Ѡו[RJwŽ¡©”î°;B¡Wí÷l‚wšáø|±\­7Z²Òë&ó¥nl÷–íxÁïïÀ;B躧vé~½œßNï:ÇÃÎ\¯Óñ@S;mI¬UJci*ÛÐý+èŽBè•{Ø=“Ø¢YN(¼‹R«ÓÕ£é|µ6·Ëv Þ‰Ý Þ£(µ;ðŽú©žt¿%t}/¦ûÆÐ³ñ°¯*r³Ó=ϳLJ÷,èŽBèåû/Þ– -¥JMl¶UŽg‹•±ÙŽŽë‡'‚÷+ðŽúRº¿?éxŽmí·¦¾œOFý^WnIõj¹˜ç9†¦RºgºÃî!„^¹Þ³ Þi‚÷|±\­7Z²Òë'³¥nlöïÞï·'Þ?ûü¡ß¸{j÷("t'vßµ­ÃÖ\¯æÓÑ@ëvÚ’X«” -ÇÒT.¶;¡ûWÐ!„Ы÷°{‚÷E3œã]”Zno0šÎ—ks»·l× Þ/ï±Ýw„ÐÏô/º_ ÝO¡ï:ÇÃnc¬³ñPS•v³‘Ðg™”îYÐ!„úß¿ðþ×ßßÞYN(”*5±Ùî¨Ú`<]¬Öæîp´]?ßΗkŠ÷;ðŽúÿKéþÝnº{ÎÑÚo }9› û=En5êÕr1Ïs ý {&¡;ìŽBèÕ{à=›âaù<Á{½Ñ”µ?Ϻ±!xw\?<Åx¿ï¡Ÿë;Ý#B÷ ¡{๶µßšëå|:ôº–$ºŽ¥©Äî„î_Aw„B(µû—¯™ïÍp|¾X®Ö¥–ÜíõG“ùR7¶{Ëv¼à‰÷÷ïŸý„ÐoÙ=µ{L÷ëåü¾k;s½ZLÇMí´›b­R*<û»uºœ(€a¸2mÕ(‹¸o €  -Šû -ŠÆ-ÞÿõÌá€vÒÓ™îôŸdª¾÷"ÞzXÐ!„zµ{ˆwb÷dŠáx!›/–«bCi¶ŒNÏqG“ï~ˆ÷ã‰àý -¼#„þ¸ït¿„t?ìw¾Gè>û¶e¶5U–j•R!—!tg(Ý1Ýaw„Bè÷D„w–KS¼×¤†ªµL«×wÇÓùríù»àð|<#¼ß€w„ПÑýåA÷`ëmV‹Ùx8pº¶Þ”ë"¥»À³L*IéÛý³_‰B}…ž(Þ¿ÅxgX>ÉJ•Z]Võ¶ÙµÃ;Þ÷ïà!ô§Ýé~%t?Cºû!Ý'#×éuŒVSiˆÕr1ŸxŽÐýobwÐ!„zµ{ˆ÷Ðî)†ã…,Á{U¬+MÝètÁp2[¬6Þ6xàý%Âûg+!ô?ëÙ=¤ûùt|>;ß[/çÓ±Û·-³¥© ©Ò=“æØˆî Ð!„zSŒ÷D„w–K Ù|±\•J³eX=ÇQ¼û!Þ'‚÷+ðŽúƒ¾ÓýB龿Ó}8°»f[Wåz­R*ä2ižeRÝaw„BèMOïßb¼3ï‚÷JMj¨ZË´ì¾;žÎ—kÏ߇çãéáý¼#„>VD÷—݃­·Y-f“áÀév ½©ÔÅ*¡{Và9&• íº#„B?Fí~Ç{Šaùt&W(UjuYÕÛf× ÇÓÅûžâý¼#„>ÞîWB÷Ó1¤»Oé>rže´4¥!UËÅ|VHslD÷èŽBý«މݓ)†ã…l¾X®Šu¥©ž3Mf‹ÕÆÛ¼¿Dxÿl „þ7Ý"»‡t?ŸŽÏ‡`ç{ëå|:vû¶e¶4U–j•R!—!tgbº£t‡ÝB¡W=ÅxODxg¹t„w©¡h-ÃêõÝÑdNðî‡x?žÞ¯À;BèC}§û…Ò}Oé¾˜Ž‡»k¶uU®‹”îÏ2©dL÷¿@w„BèÇb»ÇxgÞ3¹B©R“dUk›–ÝާóåÚówÁáùx:ï¡ö/ºo½Íj1›ŒN¯cèM¥.VËÅ|Và9B÷¿‰ÝAw„Bèç=ðÚ=Ű¼@ñ.Öå¦ÞîtíÁû‚â}Oñ~¡x¿ï¡ß+¢{hwB÷ãalýˆîn¿g-MiHÝÓÑ=ÓvG!„~,Æ{"Æ;Ç Ù|±\JS7:=g0šÌ«·ÞBï5ÝOÇçC°ó7ëå|:vû¶e¶5U–j•R!—!tgbºÇvÿì;"„B_¯'Š÷ow¼³\:â½&5­eX½¾áÝß¼¿Dxÿl „¾|·Èî!ÝÏ!Ý÷;ߣtìn§­7åºHé.ð,“¢vÝB¡÷£v¿ã=Ű|:“+”*5IVµ¶iÙ}wrže´4¥!QºgÒ{§{l÷Ï~"B!ô•{ŠñžˆðμgóÅrU¬+MÝèt‚÷Ù‚â}ÿ -ï7à!ô^Ý_"ºû`ëoVË9¡{ß¶Ì–¦ÊR­R*ä2ižeR ;B!ôÛÅvñΰ\:Cñ.5”f˰zŽ;šÌ«·ñ~ÞBÿÕîWB÷ÓñùìüÍz9ŸŽ‡}»k¶uU®‹”îBH÷dhwÐ!„ú½Þà=Ű|:“+”*5©¡j-Óêõ Þçïþ6xàý%Âûg !ô{E÷sLw/¢ûÀév ½©ÔÅj¹˜Ï -<Ó=ÓvG!„~ÕïÄîÉïB„÷º¬jm³k÷‡ãé|¹¦x'v'x¿ï¡wºEv't¿Pºïw[o½ZÌ&£Óë­¦Ò"º§9öN÷ØîŸ}C„Bèë÷ã=ãã…l¾X®Šu¹©·;]{áÝówÁàý ¼#„ÞëgtßPº»ýže¶4µ!Õ*¥B.CèΤ@w„BèƒÅv¿ãåÒ1ÞJ³etzÎ`4™-(Þ÷¯ð~ÞB?Ñý%¢ûñ°¶þfµœOÇn߶̶¦ÊõˆîOèž íº#„Bé ÞS Á{&Ä{Mj(Z˰zŽâ}µñ¶1Þ/À;BègÝé~%t?ŸÁÎ߬Cºv·ÓÖ›r]¬ºgž‹éžˆé»#„B¿×ïÄîI‚w>ÉJ•š$«ZÛ´ì¾;šÎ ÞýmðÀû ðŽú¡Wt?Çt÷ÖËÅŒÐÝév ½©4Äj¹˜Ï -i޽Ó=¶ûg!„ú¿ôã=ãã…lˆw±.«zÛìÚýáx:_®)ÞŸ!Þ¯w¼¶B_¦[dwB÷ ¥û~·õÖ«Ål2rže´Ý¥ZH÷ ¡;ºÿÃn}(%’¶.÷b7Drh2JFEœõþ¯ç¿î&êlÕÎj國8õý^¶Ý×x÷xýZ ‰%’©l¾hTë­Ž…÷Ét¾xx\>w"zÕ[t[to7j•R!'tGÃAÝïó¸]¦Ý¡;Ñ¿oïnÁ»nâý"Í—Œj£Õ¹îöo·x_w"Úïݳ©Ð}л¹l7ë•r!—IYt×|^›îN›î؈ˆèß´Á»²»Ëíñùõ`8?¿Hç -¥J­ÑºTxŽ'³ù½‰÷gï/àˆ¬,º+»¯žÄî&ÝGwB÷«N³^-ó™T2‹„BwÏšî¶Ý¿ú€DDDÿ­Nl¼;7x×,¼§2¹B¹Rk¶ïðND¿h‡î+¡ûÃb>ØtoÕ«F1ŸMÛt÷{=nèNDDô'ÙvßàÝëÓ‚÷DRð^,WêÍöÕMop7Og‹û‡¥…÷¿Á;™½M÷Û~÷ºÓjÔŒR!›¾8Wt×Ý]Јˆè:À»ÇëסHLðžÍj½Ù1ñ>2ñþ¸|¼ÿ\ãý«Õ@D_Ü‹ew¡û³I÷ûùl2*º_¶µJ©ºÇ£á î÷ Ý(»¯éŽÝ‰ˆˆþ}ûxw Þuïél¾dT-Á{_ð>™Î‚÷x'"«_Ð} èÞ¬UÊ…\&eÒ= ù¼6ÝB÷SèNDDô{lð®ìîr{|~=ŽÆÏï…’Qk´.¯»ý[ðND½¢ûb6ï½›«v³^-ó™T2‹„šßëYÓÝ݉ˆˆ~?Ëî§çïš÷L®P®ÔmïÃñd6¿7ñþlâý¼u6ݕ݅îK‹î#“î¡»QÌgÓ[º»¡;Ñ{dáݱÁ»×§Þ“©L®X®Ô›‚÷Þ¼Ñ^»tZ>>,æÓ‰Ð½/to5ªFIè~q®è®+º»~üuv¶¡;v'""úÝðîñúµ@(KÞóÅrUð~uÓÜ ÇÓÙ¼‘ÙÝW[ºßö»×—­FÍ(ÝãÑpP÷ûÝÿ÷×™Ó Ý‰ˆˆþ´“}¼»ﺅ÷t6_4ªõVÇÄûÈÂûÒÂûßàèˆ;¤ûý|6 Mº·µJ¹ËØt×|Þ Ým»õôˆˆˆþËmñ®ìîr{|~=(x?¿Hg %£Ú¼wû‚÷Ét¾xx\> Þ‚w¢#îŲ»ÐýyC÷±Ð½'toÖ+åb.“J*º„îèNDDôŽYv?u87x×ô`8¼ç -¥J­Ñº¼îöo·x_íàý« ADŸÞ+º/fS¡û ws%t¯–‹y¡{" 4¿×ãÞ§;v'""ú³,¼;6x÷ú´€‰÷T&W( ÞÛ&Þ‡£Él~Þ‰Ž¼·é~§èÞiÕ«F1ŸM[t×Ý]Јˆè];À»ÇëסH,‘¼Ë•zÓÆûxƒ÷gðNt¤ÙtWvº/…îóéddÓ½Q5JB÷‹s¡{P÷û„î?”ÝÝO¡;Ñ{t²w÷.ÞóÅrUð~uÓÞ§³Å.Þ_À;Ñ‘µG÷§åãƒE÷Û~÷Zè^3J…œÐ= umCw't'""z¿¶xWvw)¼ëÞÓÙ|ѼwÞïÀ;ѱ·C÷•E÷Ùd4Tt¿l7j•r!—I™th>ï†îèNDDô~Yv?u8×x÷ùõ`8?¿¼—Œj£eá}dá} Þ‰Ž³Cºß ÝÇ6Ý›B÷¢Ð=™0éî÷zèŽÝ‰ˆˆÞ' kk¼ç -%£&x¿îöï“é|qÿ¸|¼+»ƒw¢cjK÷ç=º÷n„îõj¹˜WtEB&ÝÝЈˆèc:Ä»×§,¼gïÁû¥àýÖÂûx':Æ^Ñ}1› -ݽ›«ŽÐÝ(æ³i‹îº¢»Ë´;t'""z÷Nðîñú-¼'S‚÷r¥Öl›xŽ&3 ï+ðNt\½Xv? ûI÷–н$t¿8ºu¿oMw§Ðýº½oxw›xEb Á{¾X®Ô×x ÞïñþÕ¦ ¢ïMºlº7jF© è†ƒº¶Cwt'""zÿ,»+¼+»»ÞuïYÁ{Uð~uÓïDGÚ>Ý—B÷ùt"tïw¯Ý+¥BnKw/t'""úØÖxw®ñî³ñ~‘¼‚÷Žà} xŸ®ñþ Þ‰Ž$›îÊî«§§å£M÷[¡û¥¢{¹Ë¤Lº„cw""¢÷λcïÁp4~®ð^2ª–‰÷;…÷x':¦v龺?,æ³Éhhҽݺ…îÉD, -h~¯Ç ݉ˆˆ>º×x×6x/”ŒÚï£C¼¿€w¢oÝ›t¯é^ºç×t×Ý]B÷3“î§Ðˆˆèc:9Ä»×§l¼ç -¥Š‰÷®Âûd:ïDGÓ+ºßÛtï™t¯ -ݳºû„î?ÄîN't'""úÈñîñúm¼§2¹BYáýòºÛßà} Þ‰Ž _Ñ}л¹Rt7„îé E÷àÝЈˆè#³ì®ð~¦ðî6ñŠÄIÁ{QðÞl+¼ßÚx\>™xÿ¼}ßvèþlÑ}1›Ž‡wŠî–н¤è~†ƒº݉ˆˆ>¯5ÞNew—»¾Æ{^ð^·ñ>MfóŃà}µzþ Þ‰¾qoÒ}dÓ½!t/ìÐÝ{HwìNDDôqYxwlñîÛà=+x¯nð>ïDGÑ?Ó½&tÏÙtÝ=Јˆè{ ïAïiÁ»¡ð~uÓ³ñ~Þ‰¾y¿¤{פ{EèžIÙt÷{=î-ÝO¡;ÑGwòïš Gãç‚÷’Â{Gð>ïDÇЋe÷ºÏ§¡{¿{}©è^VtO&b‘Ew—Ðý º}V¯ðîÝÁ{Aá½eâýn8ž‚w¢ïÝ/è~«èÞn -Ý‹ºë&݈ÝNèNDDôY½…÷€÷œÂ{cï ðNô}Û§ûòÑ¢ûp‡îù-Ý}[º; ;ÑgeÙ]áýÌÄ»Çë_ã=£ð^[ã}´Åû3x'úvíÑýéîuE÷ì?л}FxwoñžRx¯€w¢cȦ»²»I÷‡Å|¶C÷ª¢{Ú¤{º}]k¼;Êî. ï¡H,‘Üâýº Þ‰¾s»t_­é>ÞÒÝPt¿8GÃA]ƒîDDD_Ö‰…wÇ.Þõ-ÞË‚÷öÿÙ­µÄµ€ÂŸc™3#X@ì½#¢tB Å!Áãû?ÏÝ;=GÏU Ûõ?ÄúV¾X®Šyoë]æPÐÔu¯” -Öº_×=\÷¬;_i|Þãy¿ôæ½Æ¼j[÷¾½îšX÷܃\÷ wÝ7½u_fݘ…Wçý\Î{–yÔ5eÝëu?óÖ}-¶Êº0Kç=aÏû©œ÷Œ3ï æPΤu×½u¿·Öý$°î¿Yë¾Äº0ö»‡æ}Ýž÷ÃcæPÚøº÷‚ë~g­ûQpÝÿï.Ö}Ñ^wÞ€¯66ï19ï[Û»ûö¼§™w@M“×½9²î{;©$ë@Døó¾Ì¼ßÇßÖý6°î¬;1:ï«bÞ7ýy¿ Î{‡yÔð¾u³îDÂ;ïKö¼ÿ^­æýÊž÷’œ÷ó¨á•u/Zë~ͺIμ/Êy_YùçפyÏJæPE`݇áu/óÖº_ºëž]÷¬;³š÷Ÿ£ó~Á¼Š™ºîU±î#ë¾Îº)¯Îû™5ïrÞ5æPÀ´u¯ùë~X÷˜½îˬ;Ñ0yÞ“Ö¼Ÿ0ï€Rën:ëÞÕÛîºg­u?e݈®Ió¾aÏû‘=ï÷Ì; „7­û±\÷­Éëλ0kö»ç=.ç=µ³wÀ¼ -yÛºîïnÛë¾ê¬ûë@t0ïÀwð—uÏŒ­ûo±î+rÝYw¢ã¯ó~Ǽóî=ë¾i­û¯Xw"ˆyT7aÝ;Ó×}ÍZ÷Ÿ¬;´àÏû2ó¨ç…u@÷[æ˜_îº?‡Ö½å¯{šu`ŽŒÏ{LÌ{‚yàœ»X÷áX÷¬;Q3iÞ×™w@¬;Êyß¼ëÌ;0'BënÖ]cݘ[÷gÞ«µFÓŸw“y¢lºwCë~˺0‡¼y_ræ}•yæÝ¬;ï@9ó¾(ç}ÅŸ÷-ÞÓÖ¼—§Ï;÷DÊôu¯Xë~Ǻ0¯Þ0ï™)óîÝû¬W€/¼î±î=ÖUL™÷dpÞ³¹BqlÞ‡Ì;=cëÞëÞn5ĺ—ĺ߳î̵7ÍûcÞ÷óD×Ⱥÿy -¬{!ÿÀº0ïÞ1ïuÞ æˆš—Àº›cëžcÝPÀ»æ½Å¼5uÝk¬;êxï¼w™w züs¬»Îº ûÝß2ïš?ïæˆ݇Áuo6jUÖ¥ŒÍûo9ï›Óç½7>ïÜ;0CoZ÷³“£Ö€¹7iÞ×ìyß?<>=¿tç½¢Õ­¶˜÷¾¸wÃ4™w -BënØëÞ±×½ì®û…\÷=Ö€ù7}Þwíy¿ž>ïÞ½Ïz_€ïjں׽u¿¹²×}‡u@Sç}Û÷Û;1ï…RE«…ç}ȼ3õ2aÝ»½e­{1/Ö=í­{Šu@ãó¾jÍûV`Þïrî¼ëÌ; #ë>ëÞ³×]“ëþ˜Í°î('8ï˯Î{µÖhzón0ïÀ,¹ç.×ÝëþçOÿµuß`ÝP‚}ïož÷ΤyçÞ/å®û³»îOrÝÛ­F]«Œ­{R¬{œu@ ç}}316ïåj­Þl鮜÷óÌŒ¿îCÖ€ïe¼Ç&Í{Ñ›÷^hÞÿeÞ/5qÝu±î5­RbÝP›7ï‹ãó~ptrvqu#æý1/æ]sæ½/îÝ0M1ïÏÌ;ð¥^BënØëÞÑÛMkÝ 9±î·×—ç§Ç‡û¬; -ræýÇ„yßsæ=É:óÞhµó>dÞ/õʺWåº?Üß¹ë¾+Ö}S®»8wÖeLŸ÷‘y¯0ïÀ,¹çî¬û@®{·£·šõñuß–ë¾f­ûOÖuL÷Ôȼ—*ZMÌ»îÌ»šwîødîº?‹u7íuï¹ë^]÷-kÝW庯°î($0ïKþ¼o$’#ó^°æ½ÙÖ;Ì;ðåüuZëþç©/Ö½-Ö]«–‹ù‘uO°î(jҼǽy?>=¿¼¾ÍÜ?äļWíyïÊyØóîÝû¬×PØË´uoØëþ˜Í¤o®.ÎNŽœu_w×}™u@-¯Íûþ¡=ïwî¼×›-1ï={ÞMæøáu7œu×­u¯„Öý`ÏY÷뀢¦Ìû¦˜÷Ýð¼—­yo‹yï‹{—ó>ôç{>…{î¡uïèíf£¦UJáußaÝPÝ輋{Å×ä¼o‡æ=_,Wµzßwƒy>›»îÏbÝMÓÈuïzë^È…Ö=5iÝXwTžwqï¿~¯Zó¾˜÷LöÑ›wy¾†¿îCwÝ{bÝ[Íz­*×ýáþ.}}y~zl­{2±\÷EoÝgðq¦Í{BÎûÁÑÉÙÅÕMÚš÷RE«5šm½cÍûÀžwïÞg½9€b^F×ýÏS_¬{ÛZ÷²½î·Öºî;ëw×}iIž;ë€zBó¾ìÎûº5ï{Áy/xóÞuæÝdÞO^wÃ_÷F]«–‹¡ußeÝø6&Í{Ìž÷ÞïrbÞ«µz³%æ½÷$î]ÎûПwîø0×]w×=ÿ˜ ¬ûv*¹ÉºðMLŸ÷”œ÷ãÓóËëÛ;kÞËÖ¼·Å¼÷å¼Ì;ð ^ÜuënšÆÀZ÷ŽÞn6jZ¥$×=“¾¹º8;9’ë¾%Ö}-çκ ¾çÞGæ}#‘ó¾˜÷b¹ªÕ­¶>:ïÿ2ïÀG ¬ûÐ[÷®·î…Àºì‰uOÈu_ëþs…uàðæ]Þ»3ïq{ÞwýyÏ>æ½yïXó>0LSÌû³;ïÜ;𠯻aˆsê‰uo5뵪X÷Üý¿î;rÝ×Ýu_fÝøœyÿ12ï›ÉÔ¶œ÷“³‹«›tFÎ{©¢ÕM1ï]oÞ‡Ì;ðaüs÷Ö½/Ö½Ýjˆu/[ë~w{}y~j­{ÊZ÷ëÀ·2:ïâÞcñ51ï[bÞŽüy/Èy¯7[bÞ{OâÞ ƒy>ÌKpÝMÓØë®ËuתåbÞ[÷ãC¹îÉÄëÀ÷32ï?ż¯ÊyOˆyßóæýþ!W(•«rÞÛbÞûþ¼{÷>ë÷æX`݇þºwôv³QÓ*bݳwÝ÷wíu¬ûë€úÂó¾âÌûºœ÷9ï§ç—×·wrÞ‹åªVo´Úº=ïÃ4ƒóνÿ‘{îöº†8÷§^×]÷’µî雫‹³¹îÛ©äf`Ýå¹»ë>뜀Ïš÷e{ÞcÖ¼§Ä¼;óž}ÌÛóÞlëÞ‡ÌûÿØ­Ïå¶Í5ŠÂ£þG@½÷ŽÞIŠáP¹ÿë9èØIœÌgF{]Äš¡×ﺟ¿ÒýHt£Ð÷ÛÔ7« Ý›u¢»Dtç®è~ º#„BŸ¦à]+²ªÕ2¼§s†wÓv½ïÂûÛ)I.xÞúg} ;ÉýKrÊ辋£€èn1º/f“œîU¢»ÈèžÊtG!„>aßÅ{‰ÊYaxowûÃïÝ´Ï#Âû éý‚÷óïÐ;B?Ù÷é¾Oéî:–±Mé>ô:-¢»ÊèÎçtÝB¡ÏØM®÷»Tï¼s„w‰ð^ofxŸ-V„w‹ðDñ.Ãû)ù’êxGèŸTÈ=£{’Ü_¢{x®mÛõržÓ½Q«ªrJ÷çŒî ;B!ô9Ëñ~{Á;Ó;û()j•ðÞé F“ï†å¸)Þ÷À;Bÿ²‚îç¯t?¾Ý£Ðgt×ݧãa¿Ë让rE@w„B}ƒ÷§ ï<á]&¼7Z9Þ—ë­aÙ®„„÷Ãñ•ôž$)Þ¡w„~¶t'¹INÝwqøžc™úfµÈèÞnݹRøèŽB¡k¼?¦xæxA¬ÈªVKñ>Oç„wÝ$¼ûaDx9fxÿ¼#ô³r/èþÆè¾Oéî:–Áè>›ŒŒîõª¦HDw® ;“û].wÐ!„úl]áý!Ç{)Å»ÂðÞîöÞ«nZŽçQ¼Ëð~bxÿ xGèg*è~NéžÝIî¢{x®mÛõ2¥{¯Ó"º«Š$2º3¹_è~›ÓýWÏ!„Bÿÿ~„÷rE"¼×› ï£ÉŒáݰ7Åûžáýí”$¼Cïý­>Ðäþ•îqúDwS'ºÏ§ã!£{£VUe¢;ŸÑý tG!„P†÷†w¦÷ Þ9¡,JŠZ%¼wz†÷åzkX¶ë!áýÀô~ÁûxGèïTÈýB÷SF÷]¾çX¦¾Y-ÝûÝ6Ñ]SåŠ(ðÜsJ÷GÐ!„B_ñ~›ã=Õ{‰ã ï2á½ÑbxOç„wÝ$¼ûaçx?%_R½ïýuÝÏ)Ý“„äþz<ìwqø®cŒî³ÉˆÑ½Y¯iŠ\) |)§ûèŽB!Ö5ÞS¼?s¼ VdU«Þ»ý!á}±Úè¦åx~Å»ýÞ¡w„þªt'¹gt?¾Ý£0ð\Û4¶ë%£û ×!ºWUE"ºsÝïAw„B¥]áý!Ç{)Å»Bxo¶ ï£ÉŒð¾5,Çõƒð~8¾’Þ“xGè¯+ä~¡û)£û.ŽBßslS'ºÏ§ã!Ñ½Õ ºË’X湓{F÷;F÷Ð!„B?Â{¹")ZµÞlwzÂû|¹Þ¦íz~Þ_ŽÞS½¿Cïý°‚îç”îIrzctßÝßu,S߬Œîýn»Õ¨iª\atftÊé~›ÓýWï!„B¿ºx¿/ðÎ eQRÔj½Ñ"¼ÇS†wÝ´†÷x—áý”ãý ¼#ôý -¹¿§rOéNr?ÝÃÀsmËØÝg“Ñ€èÞ¬×4…è.\èþº#„B躛\ïwLï„÷Tï%Ž'¼ËªVk´ÚÝ>ÃûbµÑ Ëqý€ð¾?_IïI®wà¡ïUÐýœÓý”Ó=ŽBŸènÛõrÎèÞëÝ«š"UÊ_Êéþº#„BèÛr¼ßfxLñþÌñ‚X‘­VoÞ£Él±Zo Ëv½ Œï/Çk¼Cï}ÓÝIîÉéÑ}¿‹£À÷ËÔ7«å|:ö{V£^UI, \A÷{Ð!„Bè -ï9ÞK¼P®HŠV%¼wz„÷é|¹Þê¦íx~Å»ï©ÞÞÏÀ;B×r'ºÿ–Óä~ º‡ïÚ–At_Ì&D÷n»Õ¨iªLt繓{F÷;F÷Ð!„Bû>Þ9¡,JŠZ­7Z^8žÎ«nZŽë„÷ýáHzgxOõþ½#ô¡‚îç”î$÷œîqúžk›Æv½$º½n»Y¯iŠ\ž{ftÊé~ º#„Bè}Äû=Ã;Ó{‰ã ﲪÕ­v·?Mf„÷­aÙ®„áý…áý”ãý ¼#t©û{*wF÷·W¢û~Gï9–©oÖËùtLtï´šõªªH•²À—2º?^ÓýW!„Bÿ­nr½ß1½ÞŸÞŸ9^+²¢ÕêÍv·7 ¼Ï—ë­nÚŽç‡Q¼KñþvJr½x‡ÞÑ'¯ û9§û‰è~|9ÝÃÀwmËÐ7«Ål:ö»V£VUeI, Ü…î ;B!„þ¬ï·Þ3¼—x¡\‘µZo¶:½Áp½N»Y¯iŠ\žKåÎè~º#„Bèov…÷‡ï<á]VµZãìÖénâh…a%,éï+cŒmÀ¼aã5!­®Êý_Of Ñ´4SÝiE•:ï=œ£§×˜–3v½™F‹d™åj½Ùޯxÿ¼£_³«Ü¿¿ÉýL÷UUæYšÄa0Ÿº“‘=4 ]몲$ð,C?éþp¤{£¦ûèŽB¡ÿÝ-Þ›ï'½S4Ãñ¢¤¨Ýžn˜–=šxÓyÅIšeEð¾Û×x¿êý;ôŽ~Á®tÿöF÷ç§§ýv³^UE¾LQèÏ¦îØ±†ƒ¾®uY8–¡ÎtoŸè~º#„Bèÿìî¬÷F­÷V»}Âû#Ͱ¼ ÉjGÓÁÐvÆîtî‡ñ"]æEµZoj¼½_ðþ xG¿ZW¹ŸéNä^Ó}¿#t¯Ê"[&qÌgÞdäX¦Ñïu;Š$òKSDî5Ý[ïèþÙW€B¡Ÿ¡ Þïxo]ðNÑ,'ˆ²ÒÑzýi9ã‰7óƒh‘,³¢¬Ö›m­÷ÃK­÷ Þ¡wô u¥ûIî5ÝÏ5Ý7ëUUäYºˆÃ`>uÇ#{hºÖUeIàY†¦þCèþÛ¡{tG!„Ðw‹÷f÷£Þ)šáxQRÔnO7LËMÜé<ã$Íò²Z­Ox?Ôx¿êýzG¿FW¹_éþBèNä¾%t/‹|™,¢ÐŸyîØ±†ƒ¾®uY8–¡Oto×toÔt¿ÝB!ô#ÝõÞ¨õNðþpÄû#Ͱ¼ ÉjGÓÁÐvÆîtæ‡Ñ"YæE¹ZoNzy¹Áûwàý½^é~‘ûï/‡Ý׫ªÌ³4‰£`>õ&#Û2~¯ÛQ$‘çXúJ÷Ö‘î÷ ;B!„~¸ ÞïOxoŸñNÑ,'ˆ²ÒÑzýi9£‰7›Qœ¤YQV«3Þ/¿ßèýzG_½«ÜoéNä¾ßnÖ«²È—é"ýùÔìáÀе®*KÏ24u’;¡{ó–îŸ}!„ú¹z÷ÁûQïÍp¼()j·§æÐÝéÜãEºÌ‹jµÞl÷ODïïðþxG_º×+Ýoä^Ó}Gè^•E¶Lâ(ðgÞdìXæ ßÓ:Š, -ËP'º·kº7jºßî!„ú;Ýâ½IðþpÄû#Ͱ¼ ÊjGÓûƒ¡åŒ]oæÑ"YfEY¼ïöïïõþ -½£¯ÛUî·t~zÚ¹¯ª"_¦‹8 æSw2²-ÓÐ{]U‘Džcé+Ý[Gºßƒî!„úÛÝõÞ¨õÞj·Ïx§h–ãEIét{}ôìÑě΃0^¤Y^T«õ†àèýÞ¿ïè‹öz¥ûÜ Ý÷;B÷ª,²e²ˆBæ¹cÇ ]먲$ð,CSG¹×toÞÒý³‡B¡Ÿ³ Þïxo¼õNÑ Ë ’¬v5Ý mgìNg~-’eV”Õz³%z>¼×û+ô޾bW¹ßÒýù‰Ð}³^UEž¥Ió©79–9è÷´Ž"‹Ç2Ôã‘îíšîšîw ;B!„þI·xo¼?ñþH1,'ˆ²ÒÑzýi9£‰7›Qœ¤Y^V«õ†àèýÞ¡wôõz½ÒýFî„îûÝv³®Ê"[&‹(ôgSw<²‡¦¡÷ºª"‰<ÇÐWº·Žt¿ÝB!ô»;ë½Që½Õn_ðN³/JŠÚíé†9´Gcw:÷Ãh‘,ó¢$xß½?þRïŸÍ-„>¨7¹¯å~¦ûó¡ûf½ªÊª Þïxo¼õNÑ Ë ’¬v4½?ZÎxâÍü Š“4ËËŠèàèýŒ÷?nñ½£/Ñ­Ü¿]äNè¾ßm ÝË"_&‹(ôçSw<²‡¦Ñïu;Š$òKSgº·kº7jºCî!„únñÞ$x8âý‘bXN%¥Óíõ Ó²Gw:÷Ãx‘.ó¢$xß½?.zÿv«÷ÏFBÿ¸×[ºŸåþBäNèNä^•y–&qø3o2v¬á ¯k]U–žehª–{M÷Ö‘î÷ ;B!„>¬»³ÞµÞ[íöï4Ãñ‚$«]M7CË»ÞÌ¢8I³¼¬ˆÞ Þ‰Þ_ÞéýzG_ wr¿Ðý@è¾ßm ÝË"_¦‹8ôçSw2²-Óè÷ºEŽe¨Çšî¿=º7Aw„B}t¼ßñÞ"x?éfXNe¥£õú†iÙ£‰;a¼H—yQ¼o‰ÞŸ‡wx‡ÞÑÏßÝßäþRË}¿#r¯Ê«94êÞM{ÿ×3߇²“´ÝîšÌ¼Ï=1ææbe¯7žFIšDïw÷_^ëýzGï´Wrÿö—Üÿ r?\ä¾Ûy–ÄQà»kgµ´æ³éD}E–Dç:Dî”î,KäÞ¢rÝB!tj¼7(Þ[ ËR¼½w8^%Yé†#m2Í­åÊY»^ÆI–ÛݾÒûÑû zGï¹å^Ñýt1fæbi;Ï£8Íò’êýêýp¢#oïí]ä{y{O¥3ªn˜v6_(•«µF³Ýéõ‡£ÉtvÂ÷ÎòN{¿¾þ}ƒ½Ã{znîTw>÷¥;÷s6÷ͽßí°¹×*åb!—µL]SÙÜnÝY^Ï=‚¹À‡æåÝß»Ìö§½'’lïšnXv._,UªõF«Ýí hïsÚûŸlï ìÞÙ~s?;ϦãŸ{“æ^*ä³¶ihj&½ž»"K›{40wÔ>°ÀÞÙaDI’¶w–÷ï´÷Œª¦•ÍŠåJ­ÞluºýÁp<™±½Ÿ_`ïðîvÍ}˜û Í}ØïuÚÍF­JsÏÙ–¡³¹§’ÎÜYÝeYE𻀹Àçpäí] ½‹¢$ËJÌÛ{*Quô³ùB©\õö>â{? îý7öoosîwá¹³º»sŸŒ†ƒ^·ÝjÔ«•R‘ænêšÊæžpêSY’ØÜ£4÷柄—÷å=*J|ïqÚûq"Éö®é†eçòEÚ{£ÙîôúÃÑx:›Ÿú{_bïðö¶ÍýÆû›û 6÷ùt2væÞ¬×*åb!—µLCS3iî1>w‘æ.xsGÝà38òö.ÐÞEÚ»ÂöÎòþï]ÕtÓÊÒÞ+Õz£ÕîÒÞ'ÓÙ öïfÇܯ×s?gsŸÑÜûÝͽZ.òYÛ4t6÷TÒ™{œÍ]^Ï=‚¹À§âåÝß»,+1ï錪´÷B±\©9{ö~‰½Ã{aî wîg|î£A¿×i74÷b>g[†®ÑÜNÝcŠ"K›{40wÔ>£ÀÞÙiD‰ï=Î÷žH¦ØÞuô³ùB‰öÞluºýÁp<™Îiï?~^þÂÞáÍ<¾bîÓñhè̽^­Ðܳ–©kjf=÷Ÿ»Hs0wøœü½ ´w‘ö®°½SÞùÞ5ݰìí½Zk„÷~½Ã› Æ}çÜO½¹wÛ-š{¹X ¹lîé”;÷8›»Ì祹G0wø¤¼¼û{—e%¶Þ{FÕt“ö^,UhïíN¯?aïð¦^5÷Éh8 ¹7ë5š{>k›†NsO&ŽÝ¹+²$9s¼¹£îðöÎv#J|ïqwï©4Û»aZÙ\ö^o´¼½ÏØÞÏ÷Ü;ú¯°ÿÜO¼¹whîÕr‰ænºæÌý;ÕÝ»èÎ=‚¹À§æï] ½‹´w…íÝÉ{’ö®¦M{/Wj´÷îþ{ÀÞáuž™ûíι÷iî š{1Ÿ³-S×ÔÀÜcŠ,ó¹GsGÝàóòÜ{,¸wï=_(ÑÞ›|ïCìþsÁ¹ß¿8÷1Ÿ{›æ^¡¹g-ÓÐÔLÚ›{œÏ]ræ.`îpŽ{ò½ËὫlï–£½W{ŸbïðßÙ˜ûÝ~s¯ÓÜ |î:›{*™ ¹csWhî¢;÷æÂß»àì]â{{{OgØÞMÚ{ÑÝ{çoö޾ÃVÁ¸‡çþ{ÛÜ{v‹æ^¦¹ÛlîŸû1Õ=‹=7wÔ‚—wgï"í]a{ÿÆ÷žLÑÞ Óʺ{oð½°wøoüõÜk4÷¼3w5á{?¿Ø{ïèû—´9÷;>÷?Á¹ÿòæ>ßwî -æ_Ÿwgïb`ï,ï‰m{ï?ÝûÕb¹\];}_ïýIßÿõ#á=>;÷[î«ÕrÁæ~˜ûè5sbîðÅüÅÞ[ÞÞ§[öè{xïèû²÷àܯý¹ÿ¤¹Ÿžxsïîšû·ðÜ̾š-{oÛ{ÍÝû€ö>ó÷þ‹ï}õüÞ°÷¯åqsîw|î<î4÷¥;w÷³ðÜ;æSd90wÔ¾žàÞ£îÞ•m{/9{oÓÞ‡Á½_²½/hïÔ÷?Ôwwï÷á½£ï/woî·á¹_…æ>̽²sîæ_œ¿w᥽çÖ{ïx{ŸŸ°½SßùÞ—ÎÞohï^ßÂ}ÿ×·„7ôžûýÆÜW|î¿sŸÐÜ{ë¹vÍ]ÄÜà«óóþÂÞMïuoï#¾÷SÖw¾÷«ç÷~Þ;ú~ Âq؈;Í}Áæ~éÏ}JsïÓÜ›þÜmÌ`—Wî½ìî½K{öÎúN{ôýÎíûú~àÃs¿fîËåâŠÍÅæ>ŸÑÜ4÷›{sØÓköžwöÞ ½÷hï“©·÷Ÿ´÷Ehï·îÞï±÷Ãõ$înÜïqçsÿÅçÎâ~Âç>¤¹·Ý¹¹ë[çÅÜ\¯Ý{…í½I{ïhï³9Û;õíýj± õý}?dOæ~ïÎý64÷›ûe`îãͽCs¯9sϾ4wÁŸ;êÿg·N×ÒØ‚( ?¢€ö˜édPPÁTfh Ðû¿žSµww³{£ÑÄd}w°ê©ï?_ŒÞ³±zÿJz/‘Þ+¤÷jõ~!ôÞ#¾³Þ‰ïÓi@ï>ßïÁ÷¿¬åpg¹ܯ¦Éà.åÞn±Üëg,÷#’û¾”ûçUrOAî!„B~½g’ôþÍÕû!ëý”õ~ÙôõN|·gzÅ|g½û|Ÿû|ßÿ†Bp¿wáîÉàÎrŸN î,w÷Ëý¼Ár?9&¹Üw!w„B¡Ÿ/¤÷ôr½ï±ÞXïguÖ{«Ý!½3ßIï¶«wÁwOï3_ïàû[/îó Ü|¿ºš:$÷ñH‘û˽Ve¹—IîE’ûÈ!„Bè Åè=£êÝå;ë}‡ô¾@z?>a½7Î…Þ»ÄwÖ;ñÝ|ÿäû|ÿ zÉ݃»*÷ïBî6Ëà.äÞj^²ÜOY{‰äþrG!„zj½§U½ߥÞÿc½ïIïeÖ{µÆz¿¸lºzg¾Ol[èý»¢wðýí†û}"Ü‚»;ýÍroÔÏXîG,÷=’û7È!„BèY…ô¾л¹Ðûç/¬÷é½rÈz?=zo¹|'½ßßgàû.îsî¹Û$w‚»/÷‹s–{õä˜ä~°OrßÜB!„žß2½½ýFzßc½³Þëó…Þ™ïÛv¦S_ïàû[.îRî*Ü‚;Ë݃û%Ëý´Ær¯”IîÅ]!w wWîäŽB!ô”’ô¾£÷Òûþëý¤Zc½_0ß»‚ï¤wâ»ãL¯|¾ßø~¾¿‘w)÷éÔ±IîwEîúËýèå^b¹ùüŸ”{!ïÉ}rG!„zR±zÏ -½ë½ïIïåÊ!ëý”ø.ôÞzg¾O$ßYï.ßï$ßçàûÛh%Üo\¸_¹p'¹3Ü»†û9˽zrLr?Øß#¹ûªÈ=¹#„B=»•z_ðõ^ÚÛ'½ßYïçÌ÷Žä»5"¾Û¶3•|¿öù>ßßB+à~«Âݱ'$w‚;˽Ór'¸×Xî•2Ë}w'(wrG!„ú%ë]c½ß}½ý¶Ãz?(WXï5â»Ð{[èù>&¾;ÎôÊåû øþ&zxÜYîÓ©cÛ w’ûî –;Áýä¾W*FänxrÏ@î!„BÏ+Aï›RïfHï»ÅëýøÎzo(|ZÄ÷ øþ¦Z÷; ÷kî$w‚»"w‚{•å^>Øg¹«pr×umKÊ=Ír_‡ÜB!„žÑR½®Þ%ߥÞ÷ˆï¬÷*ñ}¡wÁ÷ñݶ©Â÷ÛU|‡ßS?÷«©ãØ“ Ãä¾€{åNp¯°Ü‹»;ªÜó9_îY!÷ !÷äŽB!ôœâôža½oiº.ôÎ|zÿ"øÎz¯ßYïõßûæûØã;ë|ÿ3{xÜo"p·Ü=¹ ¸Ÿ°Ü ÜM’»#÷5È!„BèYEõN|Ïf}½߃z/ßYï'‚ïRï’ïÃ0߯cø>ò~µ¢nÀý6w›à>b¸“Ü]¸7Xîîe’{îBî†û&äŽB!ôë è]òÝÓ»Fz7…ÞU¾³ÞË‚ï¬÷†ä{§+ønß'ÛIàûLáû=øþª=<îc†û ÷*Ëá^ -ʽg¹ëº¶ÅrÏ@î!„B/ÐBï©€Þ7…Þ Ö;ñ]Ñ{Qðõ^ ð½—È÷Á÷»e|‡ß_°$·à~íÃ}êÃ}(á¾»€{EÈ]»{Î$¹k,÷l–á¹#„B½Dk ¾/ôža½oiºNz'¾“Þ¾ ½W<¾³Þ]¾÷™ï£Gð}ÃwøýzH‚ûlÜ-w’»÷Ë]½¨ÈàÎr7„Ü7]¹K¸Cî!„B¿¾½ß³YÖ»Fz7IïÌ÷…Þ‹ß…ÞëÌ÷f+‘ï?\¾ßº|Ÿ)|¿ß_ª8·/à~· -î½Ü…ܸ ¹çs$w]×¶BrOAî!„B/RPï’ïBï›B#¾³ÞU¾K½«|o ¾‚|~Wø~æ;üþË{ˆƒû<÷îN,Ü¥Üp/)r'¸³ÜM’»Ærg¸«rÜB!„^(Eï©…Þ3¬÷-M× Ód½3ß½ïÅñ½“Ì÷ë(ßçq|‡ßŸÓ -·Ï„ÛU¸OcáNrp¯I¹‡àÎr/äIî†û¦{rG!„zÖ¾{z'¾g™ïš¦éøNzã;ë=‰ïvï®ßg+üÀ?¡X·ßÜîÃ]¸ýqp/‡äNp'¹çLÓÐumË—»„;äŽB!ôEô¾áë}KÓuÃ$¾¶™ï1z?a¾×I|g¿‡ù®øý~n±pŸûpWÝ®Â}‚{kÜIî…<ÉÝ0tMsáîË=¹#„B½RA½¯»zg¾“Þ5Ý0HïÄ÷wïË÷>ñÝÇßãý>‡ßŸU<Û·'ÀÝvá>|$ÜYî÷ÁÝ4t]ÛråžVä¾¹#„B½VŠÞSžÞÓBïÌw]7Lâ{ùþáãJ¾·|Ÿ,ãûr¿ð‰=Õíî#î]†{3÷Üî$÷|.g†®±ÜîîªÜ÷#„Bý#­)|_÷øž|'½kºa˜9âûö;æ;é}5ß{ -ßÂïüŠÂ÷Iv{ÜÇã‘e qprÃä¾] ¹›¦¡ë w!÷´'÷äŽB!ô;Rõžòôžzg¾ë‚ïyæû{ÉwÒ{2ß[߇ֈýåûÏø€EÎ’àö»x·{pïÜ; ÷ËåpÿÈpß&¸çLÃÐ5–;Ã=ãÁ}];äŽB!ôÊ©|—zß`½3ßIïÌw“ø^`¾ðø¾³á{]ð½É|ïßCËb¾Çøý6êw>¶D¶/s{5$¸÷îm†ûÅ2¸b¸¿#¸çÜu†»{Ú“{ -rG!„ú½…ô¾.ôžz—|7 3G|ßf¾ôù^ ñýLðý’ùÞ!¾÷á5øï÷Ù*¿ÿ{€ž ÄöˆÛ%Ün,k8 ¸w î-†û¹÷ã0ÜIî÷÷÷ÁÝd¸k.Ü3î®Üw„B¡ßž¢÷”ÔûëÝã».øž'¾¿c¾Jàû©àûó½M|ï ¾[£ñr¿ß)~_øDðKØ~¯°=ÞíÜÉí#k8ô î‚{“áÞðà~„û÷.Üs¦a0Ü]¹§…Ü×!w„B¡?¨5…ïë’ïiæ{–øNzg¾›Ä÷ñý}2ßk‚ïçÌ÷ñ½Ûë ¿ØïöÂï?âý> ùý|ÌÚ0Û·ßÝþÝw;Ãݲ†ƒA¿GpoÜ/îuî‡ pßöà®ûpϸoH¸Cî!„BNªÞ|Ï0ß7%ß ÃÌ­à;ùùÞ`¾7‰ïn¯× †V²ßoâü¾ðáã.a»âöQ·¬ápÐï÷º÷Áý‚á~æÁ½ûGîyîÚîi ÷uÀ!„BèÏ+Ìw¡w…ïzßw|?–|¯3ß/›-ò{·Ûë÷Cé÷É„ùç÷¥€ÿK»j)Û=·_‡ÝnK·[ÃÁ ßëu;÷&Áýœá~Zsá^>ˆû; wSÂÝ•{î;B!„ПXXï>ß³‚ïZ"ßw|¾“ß™ïä÷Æ9ù½ÙlµÉï=ßïã ß€¿] øxÁ¿EÂÇQÔdûLe»ïö«8·÷¥Û[ÍK‚{£Îp¯ž¸pß$Ü3î€;BýÏnõ7‘caþ%$±! x·³y‹÷-^’ÀÓ4|ÿï3çèH*©Je;4= Éû¿–^ÕE]<!ô«çûžâûóôžÎ÷3Ãwò;óü>™’ßç‹Årµº¾Q~ÿ׿¶~÷¿…à ç}º«ömØpû[åöÛ›ëëÕrIn'¸OÆ ÷~OàÞlh¸×6Á}_à¹#„Býúí¸|&|ß߂栗ïäwâ;û}4&¿Ï®ÈïËåêZùýñû{å÷â÷õ€àIçì÷€Ú¿9jWlÿbÙ.n¿·ßyn}{ss½Z‘Ûçäv‚ûhÈpïvîu ÷jîG€;B!„Ðo«÷ðýDøN~'¾“ßûöûÄóû­ç÷¿ß+¿ÿÕ¼'ø5„ÿç¿öÛÖ©} Û?1ÛÓݾ ·ÏØí#v;Áý²­à~qná^òá~¨áž1pß‹ÃrG!„úÅÛy8ßËÄ÷šâ;ùøN~ïöÈïÃù}J~Ÿ;~íúýŽýþ‘ýþIüîþ‹ øÁ¯'üÿÓñ›?ä{í¾Ú¿jµÇÙ~Ïlÿ@lg·Û­Û¯WË%¹ýŠÝ>&·Ü»‚{«©à~vêÀ=ïÂå®à~`áîËýŸþB!„Ð6%ø¾·–ïá{•ùN~'¾“ß/;ä÷~ªßßx~~“àc„ßÂð?_ò[>ù=íµ¯aûb{šÛ'äö!»½Kn'¸7ê -î'÷J -ܳîû!¸Cî!„B¿M ½oæ{©\©0ßO™ïä÷û½K~ßÇa¿Çoooï Þ!|Üð[#þ¡œðlüÃ’h©=ÎöÂv×í·ìöÕj¹·OÉí#v{Ü~In'¸_œ3Ük÷r¹Ttà~¸#„B=ÂÂ÷W¹|¾P, -ßÉïgçä÷ù½½Æï7Žß“€ÿ>!øá†ÿ!ÆÿõŸñm=Úãj÷Ù~ç±=Íí}r{‡ÜÞ"·ÜÏN îU{¡ÏY¸³Ûw„B¡ÇØÖ|?f¾ç„ïåJµJ|'¿_ß›ä÷Kò{ÏóûÕ|±X®VìwðïÀkÁÿ'&ø0á=Çÿ÷B>üž÷M¦¢=®ö0ÛÅíÄöëÕr¹˜Ï¯f³éDÜ> ·wÉímr{ƒÜNp?©Õª•J¹dàþ2‚{Öƒûž†;äŽB!ôÚÙŽï‡Ì÷—Šï…b©T®Tª5òûù½žî÷ùb¹\]o¼'øá#ÃûˆOeü_áü†Éoa²³ÇÑT»Ëö·ší·ÌöÕr±Öíäv‚{µZ)—KÅb!ŸÏ½b¸Y¸gbp¸#„B=¦|½ù®ü~tÄ|•Ëç Åb©\®T«µòû¹ø½åù}4žL¦³û}±\ àÙï>à“‚ÞÞA|\ñ›!ÿÃ%ú3IvmöÚcjÿ¨Õž`û ³}Él¿šM§“ñx4ú‘Û›âö3r{­Z©”K¥b¡Ï1Üw„B¡§ÕF¾g-ß™ï¹|¡P,•Êå÷ÓT¿'Óé슿 þÞ¼%ü>ᓈwrür>uÉ{/Av1{í‘Ú?hµ'Ø~Íl_0ÛgÓIÐíuqû‰r{¹T,ò ÷— ÷ÃÜŸ%á¹#„B=ž6ð=ãñýžÏŠÚ﵀߻½~0²ß'ÓY ðJð ø· xOðµàáÃÿ×3¼«xŸñ0¿uÉMçÅÙÅìI´ß ÚIíw®Ú#¶¯„ísfû”Ù>ý^¯ÛqÝ~.n¯j·Øí ÷£#q»‚û÷]À!„Bèq·ß߉ïÚïå„ß›­vû²ÓéözýÁ`8bÀOÓŸ¼!|Øðñã]ǧaþНFï}N’]™ÝCûGƒvQû;_íÛ¯˜ífûpÐï÷ºÝÎåe»Õj6õ åöSåöJ¹TrÜnážÕpßÜB!„žXkù~À|W~×|¿Öû½Ûë÷ÃàS&|Üð Å»ŽY>õkN~õ7?û`÷Èî›]£= ö8ÛgÂö1³}ÐïõºÏígÊí5íöb!ÏpÜ®àž1pßÜB!„ž^¾?¾ï+¾g„ïý~Qo4š­Vû’ß[x+x!¼^>`xA¼Q¼a¼ ù$æSYŸvì‹7fßÐ`×bÈnÍþAÌnÑž¦öˆí#f{¿×í2ÛÛ­f³Q¯_œ³ÛOng¸³ÛÅíYåvÀ!„BèI·ðûžøý@ù=+~?´~'¾'ü΀¯×Íf«Í€ï2àði‚w ÿNï^¯¯oïH>Àùmó7¢mì"öˆìlö;1»‹ö7Œv«ö8Û‡–íf{«ÙhÔ/Øí§ìöjÒí -îìöçìöŒ¸pG!„zê­áû¾â{†ù®ü~D~'¾'ý΀'¿_Ô>àûàÁ¯Dð.á]Ã[Ä‹â5ãã ä=Ë'=¿&ÿÚÑžyá>.vCvßì‚öׂv¥öELíÛ/5ÛëÌvv{Ý^»ý»=«Ü~à¸pG!„zÚ…ønü~ üže¿¿¿k¿çÄï%ö;žü΀¯3à[àÂ_²à]ÂkÃÄ¿7ˆ×Œ×Ž7(ïiþ9÷?ÙQýHv%vCö¸Ù í7Œv¥öy¤öˆí=‡íMfû…°Ý^·bn?´nψÛ-Üww„B!”àû®Ã÷}Å÷„ßàóyñ;žüî¾)€~*‚÷¯ oï)^1^;^CÞRÞÕ|œôÉü£÷цYÕX°±²»f7h_Ú•ÚÇVí†ííÛÙíÄö°ÛŸ·h·GpßÜB!„Ç÷Ëwã÷ƒ¤ßàµßðä÷àYðà­à',xðÚðŒø„âãÅñyKyGó1Ò‡óGzô½õº»+v&»kvƒö+F»Rû(¦va{CØ~î²]Üž'¶Üžµnß7nÜB!„P¬ßw¾¯õ;^ù=x¼¼¼"< Þ#ü^žŸP¼b¼8^ o(i>núPÞQ; ßZ¯+°»bg²»fŸ³Ù ÚÇ‚ö¸Ú ÛÏ’lWng¶'Ýž ºpG!„BñÂ|O÷û¡ø]žüžxGðŠð,xðÖðñžâ-ã5äEòÆòçmïÅØ›oõÔËuåuv#vMv1û•6»AûPÐR{*Û•Û™íGÌö Û÷àv„B!´©øý¹ö»<û=ø€àáYð†ðC&¼6|„x£xËxò†òóè7]x£'n#­+®+¯3رÙ]³ØìÚj²=/lWn?Ônφݸ#„B¡mJò}×ð=äw<û= x-øSWðšð—Bø.Þ^#~"ˆgÅÆ;7”ËGž¿õYïå¸5÷ôÎÊj]¼Î`wÄ®É.f²ÙchwÔ~nÔbû+a»¸ý¹r{f;·î!„B(­¤ßŸ¥ø]¯üž¼|5&xEø¦¾Í„Ã{ˆw¯¯¯ /’×–·œwMŸšstéP]°.\g¯°;b'²[³wÙì.Ú•ÚÏDí'Fí¶k¶Gn?€ÛB!„ÐOh[¿gŒß}À¿bÀ+Á3à#ÁŸ°à#Â7˜ð®á#ijâ ã•ãäEòBy£y—ô닎Ïõ€ÌM ו×ìŽØ-ÙÅìm6{„ösFû)£]©½"jWlϹl?rؾµÛw„B!´];ýnŸMþX>'€'Á—Xð|ïÞ7|LñŠñÊñ -òJòÚòZó‘è·Èޘꉱպâ:{Ý€Åî’]ÌÞ`³ ÚÏí'Œö*£=R»°ý¥Çö–í©nß…ÛB!„Зê÷ðÚïaÀ‹àó,ø‚|™ïÞ5|Lñ†ñy‘¼PÞhÞ‚~«Ì•‘žÁ¾áºñ:ƒÅî’Ý5» ½Æh¨]خԞÂv¸!„Bý…ü¾ëû= ø˜àsZð ÂkÃGˆwÏŒWŽWW’זךD¿]ö’‘ÅŽëu»»&{Òìí!µGl¾–íp;B!„úù¥û=ðZðÿc·Þv›¸0Œª!I ¤Eá²R…úþÏØzŸ¶A!¶Óµngö¿Gsõ=O?$|jø>âŸ3>t|ùPò©åSÍ— ”,äCÿ¤‘ï¥Ö¹zýì¹ØS²¯›ý¿h_Wû"ÛK¶ßo³]¸ð*~[öû]í÷>àsÁZ|—ð©áûˆ?T|—ñ¡ãcɧ–1_ƒ¾Ó…y§œŠ#1ÖC­‡\½~ö\ì)Ùk³¿”f¯Ñ>Uûœí5Ûu;¿Þ±~þ1|SðŸcÁ÷ ß4|ŽøCÅw:>–|jùó¥ç[WóÃr.ÎÄXµr=ôú!Øs±7É~hö¯±Ùûh_Uûï¥ÚÙ®Ûx çüCøRðOµàs _+¾ËøÐñ±äS˧˜/=_ü5Þ('ãPŒõPë!×C¯‚={›ì¹ÙÑ>Wûc­ö!Ûu;oiÓï]Àß—€Ÿ >$üªá‡Š:>–|jùó¥çÛª_j_+gãTŒõPë1×C¯ÇbŸ’ýÐìËh«ý¬l×í¼‰±C‡€ÿÐ|Sð5áKÃ?ç†/_+>f| -ùœò©åsÍ7I\óz^xik=æzèõ?C±ÏÉš½öMµËv®Ë6àïÚ€o ¾Mø9áCÃßf| -ùÚò9ækÏßzãã—r0O}ÍÛ_J¯7Å“ý9'{hö§Úìûjßg»nàB¦4>ü"ᛆo">V|ÌøÔñ1äkË—˜ï“þ¨þHú’—ÓE Å“ýSIö®ÙOT»làúL‘:ü‡®àSÂç†o#>V|—ñ9äKÊט£~gx½ìäá”ë±×ÛbOɾlöísµÏٮ۸Ǿ$ü}Ÿð¹á‡ˆï3>‡|MùóSÔo ¯×¡>/Filter/FlateDecode/Height 3418/Intent/RelativeColorimetric/Length 73012/Name/X/Subtype/Image/Type/XObject/Width 3418>>stream -H‰ìÁ€þ¯î -€Ùƒ ÿ×FPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUa€ü_AUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU…=8òmUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUöëä`†ØÄý_ðÁÈŠàp …h/½Cµ¤ßPGz¯þ%ý΀úÒ;’þaÀ•ÒÓpJúw¤—`›ÉŸ4€~ôÀGA‹ , 1짯€‹­î©—ýúPoãVÂ0ü¨‘"©^\"Y²cÇU²ÓNrêýßÖÙY,`°EvB‹û}÷€óîÑôúæÆZ÷2è«@µîCŽˆA_'¬uo$Qo"ÕÐ[j—ˆ¦Ô×; ]Ñ#l¬©=¬‘Æ‚WDDDôhaª‡Xjˆ¦ÛCœ5ÂWëžO"""¢¦¡¨ä©uŸpDôXb¬¡¾Z÷ŒÑ䆪nQ™7ÓŒˆÈl€²ú€…®ˆˆˆè{jª:D5†Rs"šnc Õ,tEDDDßacQUÕXCíÑT ®’°:|…®ˆˆˆhõªÊ6U T£ñ´ ¢Ín4»JÂ*ø -]ÑÚëSU©lP„Ó’ˆ6»±ô2eùj„®Ö=¶DDD´É V•ªT%Lõ]+"ÚìFÒË2V¬>^¡+"""ú[2ŽŽnU¥¦ÊAUÀTïÑu@D›ÝHzÆJÕÁ«n]­{z‰ˆˆh³¨ªU±©2P0U<¶‰hZ ´Wn¬X^™ºWDDDôWÕɪ’ª,S¥¢²-•ÝVGD4õzЕ+Vä«„WÃtµî&""¢ÇßU¨ŠM‹Ê²TtKéŠÜJ‰+òUīݔWàŠˆˆˆþ’:XÕ¥*ªÈT‘¨rM©ûéÄꔈ¦•¹&µbEÀÒ¾ÊyUÆU¦«uO2=ΰ*RÕ,¨J£J™*UÊ©2 Îˆhêu˜+AV$¬ÌW¯út®ˆˆˆè+ëUÕN¦ªyP•BU0U$ªØS¶¢Î‰ˆ¢lnÅÆÒÂJ}•òª¬+pEDDDß ^Ví*VUíUµ¨ -¦Ò¢Š=•Cê"é’ˆ¦[:9µ"beÀ -¾JxeëªWëžh"""z d•¥ªªRRYž2õ„ˆHez+2V&¬ØW-¯ŠºÚt®ˆˆˆè¡•\©*°*V•*“TÚS¤ž&=#¢)—NBN-m¬ ,ÃWžWKÏ«²®À=¸A¬jU5ËTµòªÒ¨ -¦ -¤R Š1¥n©çDDi†·"daÅÀj}ÕèªåU®«á¸Z÷dÑwÚ(VÍ=«´ª,Tµ¦jI¥@qÊ_N?讈ˆ¤hRi)cÀò¼:ixuØðÊÔÕ,ÖUŠ«-pEDDD eÕ̳ªCUUÞTÞTATšS™£®³^Ñôʧà:Ö6V,,ÓWNWžW©®æ^WCqµîñ&""¢ï*ÛUšU{žUsŪDUGNU -UÞT—ÞT±¨4§ @Ýé rEÈj‰ÕKûJñêØñªCWàŠˆˆˆF7’Uª™ªŽª T)RQ)O%’ºzIDÏBJ-e¬VXXÊWŠW'ŽW¦®á -[Q’ɪíV-«,UT¦ŠE¥8•1ê•ÙD4ìÈ´¥Õ+Vã« ç+§«Ó‚®\ÍÀõgºJ±j×fÕʱʩê(QU„*e*CTZSž^…,vidbi`5¾ŠxuÞòJëêÀéÊájÑàjnàjÛÄÕº÷œˆˆˆÖV«vºYuвÊTU‹ªÄT^TT‘¦ÚóéMÜOD4í’Mx“PK+V¬ÆW-¯.[^™ºr¸Z:\í÷à -[Q‡«zY•©Ê¡êÂDUcªˆTT1¦Â%õ¶»wD´™õ¼ýœ[Y-±<°_]9_%¼Êt¥qµÊpµçqµáj \M:ËU#Y«ê2VU‹*e*Oª *Í)M\¦¿"eµÄJ|ó*ÖU«HW®f ®v®¶-\­{݉ˆˆèïÌ`UâªNV «jUEª2Q՘ʓ*ˆJy*ƒÔ‡¼D4½Œ-øZK«–Vã«ç+Å+¯«'AWÕªÕº2q5ïĶ"""šb[EWyVíYu¤Yu.¬ŠT•£ê¥C•7U,*­) PŸˆˆT¹4²Zb¥Àr¼ºõ¼òºzžèêLt5W‘­¶±ÑIJ\µÓºªaլ̪aÕ™°êBX•«J£Ê0U,ªXSíùtgtODÓ˃»TZ)±"`5¾zÕúêÆéÊñ*èêRtu.º:==\wàÊÛj[M5ƒUÛ-«¼«æÎUeV «.…UZUת4ªSe¤R J0¥oªÏDD!Ó\YAXXÊWŽW^WŽW™®.DWg¢+WûW3…««-pEDD4:]Õ°jÖÁªSǪ a•¨êi¬ª›FU-ªÞ8TySE¤Òž2$õ…ˆÈ,§–6V+, ¬ÆW¯´®ž‰®W—¸ZÔ¸š\a+""¢)f¸jG»ªa•sU«.«DUÏcU½ ª -¨Ò¦jI¥@•Yêg«_ˆhš™‹9K+–ãÕÛŒWZW?8]=uº*áj™àjOã -[M£’«vƒ«ZV-«3V=ñ¬U]ŪªQõZ£*5U •æTP¿©lrEÆ -ÂòÀj|õÎùJñJëêÚéê¹Ó•ÇÕyŠ«Uƒ«}‡«‚­¶±ÑæÖ媽ÖUûµ«–â*ͪÍ*QUÃ*QÕ‹XUª´©ZRE ²$õ‘™%-M¬XÊWŽW¦®nœ®®œ®L\ ®\-j\9[Í´­v°ÑF×ãªY명¸j%®jXuœ³JTÕ°JTuk©* J›ê³7UªÜR¿ue8+V ¬ÆW&¯]½tºzát•âê,àê°ÁÕRpål5w¶ÚÃVDDD›_¿«æÞUKqÕ¸êH\e³JTÕ°JTõªUUªw)ª¼©¾´¦Ò Ê5õ"¢¾ feÂJ}•ð*ÓÕ­Ó•«ÓS«•àjáqlµ‹­ˆˆˆ6·Wíµ®ªYµV­„U‡Ý¬U5¬UU¬ -ª²Pe‘*ö”º—þ "êÏbV&,í«ˆW¹®Wµ®ºpålu$¶:[-•­fØŠˆˆh£+¸j7wÕR\u ®VyWÙ¬rªªY%ªú)U•CÕg…ª–T‘¨,NýIDÔŸ¥¬X©¯4¯"]½ñº†«CÁÕJpµ\Í®°ÑÆÖíªY䪕¸êйªa•¸ªÄ*§ª7™ªªîª~ñ¨2HerêŸDD½™ÊŠ„û*æUAWƒp%¶ªqu ¸jlµ?ÄVëþˆˆˆèõºj^»já\u ®VV‰«Ê¬U½ÍU£êW*Mª TÑÁô/"¢î -Ê2€ùªáUIW‚«XW®j[Õ¸[:[-c[ía+""¢Íj€«ö•««Nœ«V‰«Ê¬U½7Tõ³SUŒ*MªTéÙôo"¢BEeYÀú½õU£«ˆW‘®Wµ®Ê¸ªlåquìp%¶Za+""¢ n¨«–ÞUGµ«jV‰«V‰«V‰ªV}Veªú¥QU„*›TÃ1õ"šfÙ• -+õU«\Wï®\½¸ªlåpUÛêÄÛê ±Õ [mLÃ]µò®ªXå\U±J\Õ°êJ³êuÍ*QUͪ•ª>eªêDU&*ED«H¬XÁWšW–®WºqõÌ᪲•Õتƕ³Õ¢¶Õ[mJc\u \U±J\U±J\U³êÚb•¨ªfÕ°ª¤ªU¦©z4õ_"¢BÝÈJ€õ§ò•ç•¡«ûû{ÁU­+W7W•­W•­Wµ­j\y[-ÅVûý¶Z÷'ADDDƒç*aÕ‘°J\U±J\U±J\U±ê…ͪŽU÷ªTUETå¦SDôµ•ˆeùJó*ÕÕgÑÕèÊÄÕ­ÃՕલ•લ•àj„­¶°Ñcjˆ«ÚUÇÎUç⪊U⪊UWªǪV}r¬ú,¬*ªJ¡*5U·§þGDÔ['±l_^eºªqõEpup%ºjqõRpUÙêZl%¸ªluéluªlµÂVDDDÒÃ\u&®ºWU¬W]_ «n«^'¬º»«YõE±*¨êVUU¹©à}£ŠÂJ|xUÖ•ÂU­«wo=®^ ®nWW‚«ÊVOÅVÎV'­°ÑF´•Âj§U‡«NÅU⪧ÿg¿>ÔçÚ( _@I¥·BËT±ÍÿÿQýﻳRvè8QYÏI¬u³«ˆUgÈ®r]ŸU^&«TªÊB•ÚT?éBe·‹°R¾ŠðJ¡«®n|\‘®ØV®¦Œ«1ãÊqØV=¶U›mÕðm%qµ»­Šž „Beõ -WµÙU=v•ã0«Æî„]E¬bWmXu­dU†ª’¨ÊUÑW !ô!Ë–šWyºŠãŠlµÁÕŒqå2®†CgÀ¸êvÙV-¶U=ÓV>­N7´‚­B¡wÞÞ®²ÙU éª.»j0p†Cf•ˬšù¬Z†¬ºòYõU²*TÕmTUJTe›ªèW†ú$åKÅ«¤®"¸úƸú’ÂÙŠq5™°­FCÇ‘¶ê°­š™¶*ÃV!„ÐÇjOWY¡«ZÒUýþÀ‘®šL˜UžÏªÐUV}°êN²*©ªªö ÕÿB(»}„•Á«l]eãjÁ¸"[M'®Ë¶:ƒA¿×c[µ¥­j)[U"¶:ÙØ -´B!„Þk Wï઺tU§ÓíIWFc×LÙUsvU.«Tªzˆ©J*h -!ô÷Ú XI^)tÅÕW7\‘­WžÇ¶š¸ãñÆV]i«l…B}ðŽ°’®:ݸêLáªæÆUƒ3ŽÆcw®òdULUÙ¨Úïý‡B©^å«”®"¸zˆàêW -W[1®–Ë=låÓÊ·UIØêDa«¢Ç!„:ð2\uªt•™áªñØWÍç‹å’Y•p³ê‡‚U)V½UE?6„ÐGë%¾ÊÑU -W?WßS¸"[­–‹ÅÜófÓéÄuÇ£QŽ­´­ÊQ[%h[!„B¦pÕ‰pUiGW CWyÞ|!]µ«¢ªzÊP<…zóöä•RWQ]%qŶòq%lµ–¶š{³Yh+Gm+=´U¶B!„ÞeG -X®*³«|XmuÕ4pÕju±ö]å³Jº*—U¹ª©Bÿ¶—ëêq£« ®„­nÙVWÂVŒ+²ÕÅj¹ l5ɱ•¡°•¤UÒVEÏ -B!t˜©]u*]U‘®Ò|WYjW¹¡«–ËÕ»ŠX%]°êç6Ví­ª¢¯Bè“·3¯öÂÕ÷®ÈV—l«Õr±Èµ•­´U)´U‚V°B!ôÏ;ŠÃêDÂªÄ°ŠºJ—®ªe»j¸êrã*f•pÕmàª-¬Ú UEß-„Ð!µ“®žº -põ;‚«Ÿ>®B[]³­Ö­<ßV㤭êÂVf`+¦ÕÓ*ÛVE B!thÅ]uuU™]u¸Ê\ÕP¹jw•d•pÕ¬ÚEUE?,„ж®Ô¸ú%pu˸b[1®¤­®¶Ùª™°UUت"m%iu§l…BýÃŽâ°’®:•®"XŸ§]ÕÊrÕju±^_^)\²êwšUÏ;³ªè_…:ø¶ë*W÷!®î"¸"[ù¸"[]®/.VË¥o«iÜVíÐV–o+-j«Rh«ã¸­Šž„BèpŠ»*€U‰a¸ªê»Ê´l;tU'íªEÂUQVm\µ« *„ÐûnW]åã*a«ëlU“¶ÒÙVL«3¦UYÐ -¶B!„ŠJíªSvU™]uÆ®Ò6®ªïä*bUÌUQVÝocP…úí«‰«ˆ­6¸JÙj±Õ€lÕõmÕle°­ªÂV¶UIØ -´B!„ -I «ê°:?gWéì*Ë®ÕÈUMßU=µ«.·¹ê%¬*úE/ÀUÄVw1[}ÙØj%m5 lÕ'[u|[ÕÉVÛJg[1­[IZ€V!„пë(«“VÒUgì*]eZ¶í»ªE®ê®owÕ]ÂU¡«ž®‚ªB¹WáêVâJÚê&j+Oe«&Ùª&le°­ªÂV¶U)´ÕqÌVEB!ô™KÃJ¸ªÄ®"X3¬t]e‘«êW WMÓ®úštÕËXUôIB¡½ÛW¶úž°Õ2j«!ÛªG¶j“­d+Û¶L¶•ƶ:c[•ÙV’V'1ZÁV!„Еv•«2ÃJºJÓ C¸ªF®j’«:äª>»j¸j®t³ê–Y•pÕn¬*ú!„Ћۊ«ÐV\ [Ý…¶ú¦¶•˶rØV]²U‹lUl¥ëL«s¦U…iØ -´B!„Þ¾4¬„«Jì*Vä*Ý0M˶ÉU rU›\Õ ]5 \µÚ檀UQWU¡Ï[&®ž¸ -mõ{«­f¡­l«ÙªI¶ªÕlË2 C×B[•ÙVQZƒV!„ÐÛsÕVe†•pU•]e˜–E®ª“«Z䪮pÕpWÝo\V!„¨-¸ -mõ±Õ/¶Õ­ÒV‹ÀVca«>ÛªM¶j­lÛ2MCg[ù´ª0­b¶:‚­B¡·é(«ÐU%v•+McW™äª¹ªI®ê°«Vä*—]å©\õC¸êŽ]õ{_WýƒB诶+®®¢¶ú™°ÕE`«)Ûj$lÕc[µÈVu²•e™Ûª*mUf[Eiu Z!„BoQÌUX•VÂUUM×…«lrUƒ\ÕfWõ…«Æìª»jI®ZosÕcà*° -!txeàJi«ûm¶š³­&l«¡°U—mÕ$[ÕÈV&ÛJÓ$­*L«˜­@+„BèïƒU誻ʇ•¦é†aZ¹ªN®j‘«VìªQèªÅVW=HW=¥]V!„¥ [Ep³Õo¶ÕÊV«ÐV.Ûʰ­:m²Uƒle [éºV•¶*³­T´‚­B¡¿Ô‘Ve†•pUUÓuÃ4-›`Õh6ÉUá*‚¹Š`%]uA®ºÚÃUÔ®*úõ „З«¸­slu}}uØÊ¶ [õ{l«ÙªN¶²,Ó0tM“´ª0­”¶*z†B¡ÏQÌUÇ«Jì*Vš¦†iYä*‚U«ÝfW¬ØU®pÕ|?W=Ç\V!„0µ­þ„¶z’¶zØb«%Ûj&l5 -[u;d«&ÙªfÛ–iº®U¥­Êl+Ð -!„z›b°: `UfX WU5]7LÓ² V&ÁªÓ%X±«Vì*]µ"W] -W}‰ºê\…B©qµ‹­¾¶Z³­l«éDØÊ[µÉV:ÙʲLÃÐ5MÒª’E+Ø -!„zeGY°ªHXišn¦e‘«V­6ÁŠ]E°bW¬ÈUË„«¾§]õsX…BÿåÚêYi«[²Õi«››ë+²ÕÛj.l厅­ú=¶U«I¶ª‘­LÓÐu­*mÅ´RÚªè9B!„>vjW X¬ªUM× Ó$WÕÈU+rÊ]E°bW-ØUkrÕuÂUwìªûÐUOpB¥RâjO[­ØVÞLØj4¶"Z‘­ÿg¿N”Ú¸Ö( -— ˆ¨G€TÝ8©º7ñlÔ£<0ØïÿVwÿçt·ZRKc,’¬õ{²Õ$M“8ŽÂ°£ÕZýè†a5ò°ƒ0Œâ8I«ÓéÔ\%X9W Væ*ÁJ®z+W}x˜«ö}mˆˆöÖ ­¾n³Um¶*Š5¶ªª²(òL¶ú`¶zóÚÛÊÓª±•h%[MÒÔÓ*p´:^Ðê O+lEDD´K}Wu°5° -‚0¬RÁêtj°ò®j`å\%XÉU‚U–9WU«>·®ºÆUDDjW[9Z9[åy6“­Þ¿3[9Z5¶jh%[‰VÑ*ŽÂ0;[­Ž Ñwô¬«ƒ¬œ«¬bÁjb°:;oaÕ¸ÊÁJ®¬.g3¹ª0WÕr•ƒ®""úqm·•£UßV¥l•e³K³•håmÕЪ±•h%[¥IGÑ‚V#£Õ!´"""º_°:êÁ*¬ÁêäÔ`å\µ€•¹Ê`%W]ÊUyQ–æª9®""zŒv°•ÑÊÛªªÊB¶šÍŒVf+G«ÖV ­d+Ñ*õ´ -­Ž¡Ñw´ -«CƒÕ¨U„‘`•¬¦g ¬ZWyXÉU«Y–åEQVUç*+\EDôCÛl«ë¾­­êª,‹\¶º4[‰VÞV=Z™­D+Ù*‰ã( ƒ±³Õ‚VK¶Ú÷`=å6À긃U,XM¬Î/–`å\e°’««yW]á*"¢ݰ­n:[}Y¶UQä™l%Z™­<­z¶2ZÉV¢Ur7­°ѦV\µ€•\5BÁ*¬NN¬®ja%W¬fY&W•æ*+\EDôˆmµÕ•ÙÊhe¶­d«<­ÌV¢Uc«>­d+£U*ZEat´jl­ˆˆˆînX¥«éÙ¬W¬ä*Á*¬*ƒUëª/ÎU¬pÑlÍV·C¶­ÌV¥l•ÉV¢•ÙªG«ÖVF+Ù*‰cG«±£ÕZíØ³X9Wµ° -‚02XM¬Î/Öa%W¬fY&W•æªVWV¸Šˆè±Úh«kg«/=[U•h•‹Vf+£UÏV­d+Ñ*­B£•³UK«hEDD´­AX¬ÆV±ÁêäÔÁjÅUVr•`• VUµÑU·¸Šˆè´Õ·Õ•Ùª£U]•²U&[‰VÎVk´’­ŒV)´"""ºw`%W¬BÁ*q°šž­ÃʹÊ`5Ë2¹ª¬ê%X]{Xá*"¢Çl•V›mUU¢U.Z™­ZZ-ÛÊÑjb´ŠÂ èhu´ ÕshEDD4PVðJ=¬Î/a%W V¹`UUK®ºò®ºÁUDDܪ­n[];[õhUW¥l•ÉVF«ÖV«´’­D«¸G«‘ÑêZml¬‚ Œ V“Vë®ò°še™\UVµÁÊ\å`µæª¯¸Šˆè‘ú¶ÅVWK¶ª*Ñ*7Z™­i%[­Ñ* Æ­†h…­ˆˆˆÚz®j`u´«Ø`urºVr•ƒU.XU•¹ÊÁÊ\ÕÀêv+\EDôˆ Úꦵ•ÑÊl%ZÕU)[e3ÙÊÑjÈVŽV)´"""ÚµX¬FVãq -V‰ƒÕôl¬ä*Áª(˪6X­¸êfÈUÀŠˆèQ¢Õ­§Uc+ÑÊlUU¢•l%Z9[m ÕÄh…A°B«hEDD´Ò0¬äªV©‡Õ°«¬2ƒUU™«:X]{Xá*"¢ŸÚ­n¼­®:[‰VµhUˆVf«´’­ Ñ.=Û«È`5Ù+¹J°Ê Áªö°ò®ºZ¸j Vû~DDÿì¶Úª¡ÕG£•l•gYC«…­´’­­bG«qC«#hEDD´Ú6X-¬NN·Áj– V¥ƒ•\ÕÀÊ»êWí¡!Zݶ´ò¶­æŽV²•ÑÊlÕÑê…­<­Ñ*li52ZB+""¢^}X À*ö°šžµ°Zv•‡U.XUU=_ƒÕm«oÀŠˆèg6d«›ÖVŽVf«º®ÊÒhe¶ÚF«´£•³UŸVÏ¡ÑX—aÕ¸êÅ2¬ä*ƒUQ–U]¯¹ê¦sÕW\EDô³Û`«eZÍëª2Ze ­d«!ZÉV¢U­ˆˆˆ†[‡ÕÑV¡`•Ü«Yf°ªªz¾+\ED´×6ÐjÉV¢U-ZÉVF+³ÕëW/[-h%[µ´ - ÑZC° V¿t°J‡`Õ¸ÊÃ*ï`Õºêʹ -Xí½ ¶êÓ꣣Ui´2[-Ñê÷…­<­â;h…­ˆˆèßÙ -¬=¬ŽXE«ÉIVÎU6°’« VEYVu=ÿØÁêÚÁ -W=…VlÕÐêÆhåm%ZÍ몭d«i5†VDDD½¶À*è`u:m`õÛ‹ßWa5Ë VUUÏ VÞU«°ÂUDD{m…V­­®ÍVŽVf«º­Š†VÎVh•ˆV!´"""ê·#¬¼«þ3«¼ƒÕ§V+®VDD{oÅV}Z™­:Z•ŽVf+£ÕKo«Z¥ÐŠˆˆh¥;`o‚•w•‡UQ–U]Ï?n‚®""z --ÓjÉV¢•Ùj>¯«Êh%[-Óêß{´’­Vhuähu­ˆˆè_Û÷ÀJ®zéa%Wµ°š¬¼«®œ«nZW}ÅUDDO£o˶ ÕÇy]‹V²Õ:­^üÖÐJ¶r´Š­~VDDDÿg¿>ÔIÂ( ?¨D'˜A -¨3¢D¸÷UûWWu¨¦wfIßwç¼ñ°Êç û«aX]Wk¬: -V=V#«wVcVŸÀŠˆhe²i5Ñ´úP´R¶òhÕ5´rl UÑØ -ZYÍ…ÕO V•«)X== ¬úýÁp.¬–ý&ˆˆèŸ­>]ZZ½;´R¶ ú½žC+e+E«¦Ø*–VM« ´""¢-n>¬=X•ÊX‰« ¬º.¬"]¬ˆˆV­ä´êiU¯Í¢UZÑ7Vß4¬ŽŽX]}X5[m•¸ÊU¯× †£hXá*"¢Õ˦•o«7ÇVB«á ßZ‰­lZU¯§hõ=D«=hEDDÛW2X)W]x°jÜÜz°êDÁêCÃj¬ˆˆV7ÛV­ÞZ½(Z „V]—V÷>­®*ЊˆˆÈnqXÕ꬞žVýþ`84®Ò°»°ÂUDD«šM«I˜V#‡V=M+e«»vË£Uy!Z-{숈ˆþv1°ÊŪ:«®ÀjàÃêX­M¶­Æ®­¬,W+"¢µ+L«±O«—Y´*C+""ÚÊba•W°úîÂê\ÃêZêåêëÁêõU¹ -XmH´ú°hÕÓª­ˆˆhkû °‡aµìo@DD_ê3l« ­F>­ÄVÉh•†VDD´±Y°ÚM«fV=Õp8z1°úVDDT ­ÞlZu„V h•É(YA+""ÚÄ|Xí+"" -I«wVE+±•¢Õ½¦U=’VhEDD]Ê—Õ¬¾y°:[ V–«€ÑZ¦ÕØ¥Õ+´"""r[V·6¬úó`µìG@DDÿ±Z}„hÕuiu­ˆˆh+û#°)X½+"¢-h+›V/†VËžC""¢ÿVV{V¹¯ÀêXmlAZM´ -­zshõó‡K«¬¡•‘´""¢ hViVûXσի «1°""ÚÌ¡U{šV‡?|W´ÊOÑ*­ˆˆhí‹€Uf!X fÃjÙ?€ˆˆþX_£UIÓêøZÑ «‚«‹D°úp`t°""Ú¤bhõE«–¢UͧՉ¡Õ7hEDD˜+-«Y°ºR°º1°zì+"¢-,D«±¢Õ»¦Õh6­N£hµ­ˆˆh#Jù²òa•M«'`ED´ý Zí ­rŠVé)Z-{‰ˆˆ¾R¬ò!X]†aõ;«`ED´M}lA«~­ÊŠVgS´Ê@+""ÚŒfÁJdeÁê:«Ç°""ÚÖ‚´š8´ú˜E«zZí@+""ZãB°Ú Àê›ÀêàÐÀªèÂêvX-{ù‰ˆè/•œVm‹VçAZ´ÚÕ´JA+""Z˦`•V°Êù°::VDD4ÝhU™¦U>ŸËB+""Zÿ|Xí¸°ÊhXí»°:q`UXUçÁj ¬ˆˆ¶§9´êÙ´j¸´ºHF«e$Ñ"¥|Yí*Yy°*ø°:µ`ÕVDDdJJ«;—VW3hµ­ˆˆh}‹‚U6«3«²Àª–VŸÀŠˆhKZ„V7.­. ­Y)Zå­ÒЊˆˆÖ·Xå-XaÕVDDä—V÷.­®…VEM«£C‡VûšV—V¾¬ ­K!XíÅê"°ª+"" -—ŒVŠV·­NŽ£hµ ­ˆˆhýòaµ£a•V°Ê9°YX]aÕVDDd•ˆV¿w+Zµ„Vu¡U¥\ºT´:>2´*äôJA+""ZÙba¥eåÀê\`UÖ°ºXÝ?¸°êkX½ -¬ÞYÅÒjèÐêùɧUChuU)­N¦iåÊjYѪ–òdåÃ*+°*hX)X]hXÕVM«_V=«‘‚Õ[V`EDDNZ9²Ò´z Óª­iumhu¤UNÑ* ­ˆˆhåó`ed¥a•÷`u|"°º,•+«ºÀª¥`õû±óÜí+""š]<­ZÝ ­nõªÐª$´:sh¥deh•VDD´ò…a•V°Êau*°*–+W«†«§çÙ¯Óå¶‘3ŒÂeÅX”ü7 4ö•;E‰$à’F¹ÿ«Ê×… Mi$;5¤«Þs§žaY!„úzni5Ÿ­ÒšVœhe -Z ­þóo¢•ÖÑê(+Ð -!„Ðmõ3¬ÔsX+Çõ|‚U’åÅ ¬ö€B¡»D«ê”V A«Œh¾K´²ˆV£aK«û†VBV=Z]{ !„ÐI}Y}'Y¬4‚U#+ +³†UPÃjz«²Õ `…BèRç´"Y Z­žˆVëÕRÐ*'ZEaà­˜eNÆ=Zé‚V -h…Bè†ëÊd¥(V÷ ¬C+Ëv8Á*Œ“”`5›w°ÚÂê°B!t¡iµ}Üi×´²™eœÓJíÑêh…BèÆúVª¦ëGXÆ+æp—`%i&`µh`õ X!„úTGYÒjB«"Ï¢•﹎ÍLI«FVD+MÐê» Õ]G«kO!„jûÖÉê=XM ‹ÙÜõjXåVËÕš`õ$`u(« -°B!ôw]¤UyJ«Ù´ÈS¢Uà{ܱ-A«á ¡Õ½¤•¢YV!„n¯VwV߬4‚U#+ +“ÙŽëùa¬ŠV’U+)+À -!„нÐê¥G«]G«9Ñ*#Z…ïr‡­Æ£#­t]SA+„B7ZV$+E‘°ºo`5 -XY¶Ã=?ˆâ„`5íÃjX!„úd=Z½žÑêùIÒj¹hh…çr›YÆä„VZG+È -!„Ðmõ­“U +UÓõ#¬Fc‚s¸ëaœ¤«ÙüVå)¬þ¬B½Ó%ZUUy´Ún×+I«¬„¬VZV£±aZ¶Ã=?ˆâ$Ë «Õz³}"YV!„~«3Z‘¬$­öGZ͉VYšDaà¹Üf¦A´<Ô´º×uMíÑ -²B!tÅ:YÕ°R$¬ZY¬&†ÅlîúA'i^LgV[ «CYUV/€B¡¯÷v‰V%Ñj×Ðj¹ ZåYG¡ïqǶˆV£á­ZYV!„®W«»Vª¦ë-¬C‚•ÉlÇõ‚0JÒŒ`5?Âj/a%eõÚ—Õµ?Bèé}Z=­6ëÑjZäYGïr‡YædL´ªeE´Ò4UéhY!„ºV}X Y¬´¬Fcôl‡{~Åi–³ùbÙÀjG°*/Á -²B!ôéNhõ"iUUåAÐêiû(i5#Z¥IžËmfD«ÁCM«{]×TÐ -!„ÐõëdUÃJ‘°jd%`51-æp×Â8IóbJ°Z­7Û'’`…BèÿP_V=Zí;Z-æ³iž¥qúžëØÌ4&£á­ZYV!„®S«»Vª¦ë ¬+Ãd6w½ Œ’4+¦³¹€ÕãVÂêPV•„Õ `…Bè—;£ÉêGU­v5­VK¢U‘gI¾Çf™“1Ѫ–ÑJÓT¥£d…Bè*õ`%dE°ÒްŽV–ípÏ£8Ír‚Õ¢ƒÕ¾«ž¬®=h„BXoïÒêùééq³´šyšÄaà¹Üf–A´<Ô´º×uMmhuZ!„ºNßZYÕ°R$¬Y¬ÆÓbwý Š“,/VËÕZÂjG°*«RV€B¡ßé„V/’VUU$­¶’VóÙ´ÈÒ$ -}Ïulf“ÑðH+MÐJÈ -´B!t:XÝ X}WTUÓõV‚•a2›»^FIšÓ™€ÕFÊê=XAV!„¾\_V=Zí;Z-æ³"Ï’8 -|;Ì2'c¢U-«šVJG+È -!„Ð?^'« Y)ŠªiGX G+Ëv¸ç‡Qœfùt6ïÁêPV•„Õ `…Bè7;£ÉêGU­v’VëÕr1ŸyšÄaà»Üf–A´<Ô´º×uMmhuZ!„úçë`u×ÀJ%Xµ²ŽÆÓbwý Š“,/fóŲ…Õ^ÂJÊêµ/«k¯!„ÐÙÛEZˆVBV¢Õ|6-²ÿ±__9Š, …Õ@fðt›ôÞ{‡)$‚®ýïêF•¥é§™‚Ö´þ³‰£¯ÈÓ$ -Ïu,ÓÐÔOZF+&«9d…BèùM`ÅdÅ`µ¼ÃJQuô×Â8Éò¢ª›¶Ö›-…•Õáx¬B}[_huæ´)­ö‚V=¥UUYG¡ï9¶eè”V7YqZIœV3Ð -!„гûq—ÕV’LÈVšnZ¶ëùa”¤YQVMÛ1Xí¨¬(¬¿…d…Bè¿l*« —Õ•VïWZ­‡¾kêªÈ³$Žßul“ÒJYÝhµ\™ÑjZ!„zzV³¬d²²¢°2,Ûñü ŠÓ,/«ºíúá«=…ÕÈau¬B}K¿£Õ‘Ñêíõu·ÝPZµM]yšDa๎ešúI+Âhµ¸Ñ -²B!ôÄ„¬æ\VVDÀJQuô× Â8I󢪛¶Ö›-ƒÕ;…Õqo²:/§•Vo¯ŒVÓ8tmS•y–Äa๎ešªÈ\VŒV„l²­BÝ#««¬a°â²’U3LËq½ Œ“,/«¦í‡qb°z}[aõ%«OÈ -!„Ð/$huù¢“Õû“Õ<}×ÔU‘§Iúžc[†®)ò3§ÕŽR"m´‚¬BÝ!!++‰P&«Vϲ¢é†e;žFIšUÝtý8ÍLV VLVVÀ -!„Ðo$dõù%«•Vo¯ŒVÓ8ômS•y–Äa๎ešªÈ\VŒV„l²­BÝ¡ VWYÂ`Åe%+ªf˜–ãzA'Y^VMÛãÄ`õÊdu<}Éê²B!ô+ Z]¾huüXiuØÏÓØwM]yšD¡ï9¶eèš"?sZí(%ÒF+È -!„Ðî¯MVV¡LV+¬žeEÓ Ëv˜¬ÎLVWÈ -!„Ð㲺,²Zhu:RZQYíçiè»¶®ŠŽB+"«ýØwmS•y–Äa๶eèª"‰DVßgZq,Keõ ²B!ôU?ËŠ%²šaõ²ãEIV5ô/ã$Ë˪n»~Ø¿¾XY-°‚¬B=vWZ­²:RY }ÛÔe‘¥qø®c™º¦È¢ÀSYq,ÃY=CV!„þ ¬fYqWY ¢¬¨ºaÙ®DqšeÝ´Ý0.²:WY©¬î=N„Bèû$«‰V“¬Z }×ÖU™gIúžc›†¦Ê’Àï(­&Ymn²­Býº§›¬¬ˆ¬¶‹¬v¼ ɪ¦›–ãùa”¤yQÕM×ã«EV¬NVB¡Êê<Ëêãx8,²‡®mª²ÈÒ8 -<×¶ ]U$Q¸ÉŠ¥²úY!„ú}V‹¬X"«V/;^”U7LÛõ‚0N²¼¬š¶ëÇý$«÷Ãáø1ËêLeuïm"„B¿èBiu"´"²:YZYõ]SWEž&Q軎eêš"‹Oeű Cdõ Y!„ú2*+ò ð•/ˆ²¢é¦å¸~ÅiV”uÓö•Õñ&« d…Bè¡£²"´úÏD«¡Õ·×ýØwm]•y–Äaà9¶ihª, üŽÒŠe™Íæ&+Ð -!„ЯzºÉj3Ëj;ËêeÇ ’¬j†i;žFIšUÝvý°Àj–Õ+È -!„Ðãw¡´Zeu¤²ú¶©Ë"Kã(ð]Û2tU‘Dá*+î*«oB¡ßEaµÈŠ%²š`õÈJ”U7,Ûõ‚0N³¢¬š¶ÆEV‡Ãñc–Õ™ÊêÞÓD!„~Ù'YM´še5ъȪkêªÈÓ$ -}×±L]SdQàw‹¬¶DV ‘Õ3d…B苨¬È56 ÃrTV¼ ÊŠ¦›–ãúA”¤yQÖMÛY½ý˜duœdušeu¬B=xTVçYVÇ¡‘Õ~ì»¶©Êm•Õú"+Ž$YÑtÓvÈjµÈJ%EÕ Ëvý ŠS"«ºéz"+«YV¯B¡ìÌhu‘¡•Õ~×µMUæY‡¾çئ¡©²$ðÜ,« ‘Õ‘ÕwÈ -!„Ð'-°¢²Z3Yñ‚(+šnZŽë‡Q’æEU·DV‡#‘ÕË0Œ'*++È -!„ÐÍ´Èj¢Õ,«çIV}ÛÔe‘¥qx®mºªH"ÏmgZQYÝCV!„>ígY=Ym¨¬¶/H²ª¦íxA'Y^VMÛíöY“¬~,²ºö$B¡?ŽÉêÊêDdEhõt$²êšº*ò4‰ßu,“ÈJ…EV«²­BýÔ"«ûYV¬·œ JŠª–ízA§YQÖM×YXͲz…¬BÝdgF+&«Êê°ï»¶®Ê›N‰¬n´úî‹#„ú¿i€U/«ù +ޤ¢ê†å¸~1YÕM»Û3Y½CV!„žºAV„VçóUVoG*«¶®Ê™¬NTV„VTVMUæY‡çئ¡©òFˆ¬–ŒVLVÈ -!„ÐCƒ¬^ˆ¬¦DV &«ÕšÊJV4Ý´Ï£$Ë˪nïeu>3XAV!„ž²Ë@«AV„VÇ×ÞȪ.‹,£ÀsmËЉ¬$e5ƒ¬BýÜ(«ÉUVVK"+AÜȪf˜¶ëaÌdÕY1XYY] +„BOÙ(«*«®—ÕnÛÔU‘§Iú®c™ºªPYqƒ¬æ7YV!„ƾÈj6ÊŠ$"+ݰl×¢8ÍŠ²nÚÝžÉêýQVß=G„Bè—dEhu>ß˪­«2Ϩ¬<Ç6uM‘%‘çÖ+&«‘Õ”Èê²B!t׫^Vó^VkŽ¥¢ê¦å¸~%i^Tu³dÕQY}@V!„ž¸Ë@+&«‘£‘UÃd‡çÚ¦¡©òFˆ¬–ŒVLVÈ -!„ЗY½YM‰¬LV+&+YÑtÓv3XAV!„žµGY½3YíwmS—E–ÆQà»¶eèLVü(«d…Bè±QV“«¬(¬–DV‚¸‘UÍ0m× zY5DV‡×#Õ{wdu¬B=i£¬(­ºnÕ¶©«"O“(ô]Ç2uUÙHÏ ²šßdZ!„ú"«Ù(+^ˆ¬tò]?ˆâ4+ʺiwû«¬ºY}÷B¡ßhÕç(«·#•U[Wež%qè{Žmêš"K"Ï­WLV "«)‘Õ d…BèÖ«^Vó^VkŽÊJQuÓr\?Œ’4/ªºÙÞÉŠÂ -²B!ôÌ]Z1YºwB«ãëȪéex®mš*oDÈjÉhÅd5¬BÝ5Èê…ÈjJdµ`²ZY‰’¬hºi;žÆI–—UÝRYߨ¬NLVŸB¡gn”Õ•Uw•Õ~×6uYdi¾k[†ÎdŲšAV!„¾6Êjr•…Õ’ÈJ ²R5ô]/èeÕY^Vw²º@V!„ž¶{YïdµmêªÈÓ$ -}×±L]U6’Àsƒ¬æB¡‡þ›¬xAÜȪnX¶ëQœfEY7ín•UGeõ1Êê»ÇˆBýV—‘VDV'*«·#•U[WežQYyŽmêš"K"Ï­¯²ZYM‰¬@+„B·¾Èjv“Ç ÒF¡²r\?Œ’4/ªºÙÞÉê Y!„zú~’¡Õñõ@dÕ0YÅa๶ih*‘•À­WK"«¿®²š@V!„n°b²š÷²Zs¼(ÉŠ¦›–ãQYeyYÕ-•ÕñÊêÄd5À -²B!ô¤²ú ²ê®²ÚïÚ¦.‹,£Àwm‹Êj# -<‘ÕB+È -!„Ðc÷²šY-¨¬–«5'0Y¦íxA3Y5DV‡×#d…Bèé^Vç;Ym›º*ò4¡²r,CW•$ðÜMV3È -!„Ð}£¬&WYXý ²âq#«šaÙ®DqšeÝ´»ý¬>FY}÷B¡ßì2ÒŠÈê4ʪíeúžc™ºFd%òܺ—Õü*+Ð -!„PßYÍn²âxAÚ(ªnXŽëSYåEU7ÛAV]w:CV!„þ€~–¥•US•y–Äaà96••,‰·^1Y-ˆ¬¦B¡±¯²š÷²Zs¼ÈdeZŽç‡QÂdÕ>Êj€d…Bèi{”Õ;•ÕaOdU—E–ÆQ๶ihª¼a²Z2Z1YM +„B}#¬^&S"«“ÕŠÉJV4Ý´©¬â$Ë˪¡²¢°"²:AV!„þŒFYQZu]/«Ýö&+ßµ-Cg²â!+„BÿØ(«ÉUVýõ÷%‘• ndU3LÛõ‚0N³‚Éj ²z”ÕwO!„úíY}>ʪ­«"O“(ô]Ç2uUÙHÏÝd5ƒ¬Bý,«¿ÿEeÅ÷²²l×"&«ºiw½¬ºŽÁ -²B!ôü]Z1Y¨¬­®²*óŒÊÊslS×YynÝËj~•h…BˆõEV³›¬8^6Šª–ãúa”¤yQÕÍöAVŸB¡çïQV„VÇ×Ã~Û6LVqPYLV·^-©¬DVSÈ -!„ÐÐWYÍ{Y­9^$²ÒtÓr¼›¬Z*«ã•ÕiÕ²B!ôä²ú¸—Õ®mê²ÈÒ8 -<×¶ M•7¢ÀYý ´b²š@V!„X#¬^&S"«“ÕŠÉJ¦²²/ã$Ë˪!²:¼ ¬eõÝKD!„þ‡YZϧ®dµ½ÉÊwÿÃ~}(§Í¦Îl06¸!Ñ‹ -½ˆ"À&k ~ßÿ]ýß«ŠŒìL2ë‰|ÎMœy,£Û eUAVDDtY*«B(«R©|w¯d¥WëV»Û3m‘Õlî,×w·?“Õ YQ.ziu&«ƒÈÊ]¯œÅl:‰¬zV³^S²zŒeUDVDDw)«ò­ÈJ‹de˜ö`8ŽdµeåyþYQ^ÊÈÊW²R´z~ -dµ\̧“Ñ o™½N»Ù¨U•¬BY]#+""JÊȪ˜Èª¢éµz³Õé–=§³…³º”U +dEDDu©¬N¬^Yí·î&’ÕPdÕ d¥+YÝ‹¬n”¬®”¬ }{+«ëHV­ªdÕîô «ŸÈÊY~ˆ¬|dEDDùé\VGßó"YíÜÍzéÌg“ñ°o›F·ÝjÔCYÝ ­Y};‡U(«›@V¬"+ÓêG“é|±\m”¬žž -VoeõÙC$""ú­bYýóFVÛDV‘U'•†¬ˆˆè¢sY]‰¬J¥òݽ’•®dÕjw{¦-²šÍ‘Õn&«²""¢œôÓ*•/²úqY¹ë•³˜MÇ£m½N«Y¯éZ%‘UYQX*«B$«ò­ÈJÓ«u‘•aÚƒá8Õz³eåyþYQ~z++E«ÃóS «åb.²ê‹¬ÚJVU­òÉêYQÔ²ªhz­Þluº†%²šÎÎêRV1¬ý奲:Éj¿u7¬&£aß2EV@V¬n"YA+""ÊʪËê1–UOd5Šd劬?DV~FVŸ½C""¢ßì\VGßó"YíÜÍzéÌg"+ÛìuÛ-%+]Éêþ®\*‰¬®}‹`•Êê:”Õƒ’UUɪÝé™V0šLç‹åj£dõô|P°BVDD”³bYýóFVÛHVãáÀ6 ‘U½ªk"«Ûr$«²""¢o)¬¾®”¬nDV÷¡¬ÍvWd5Leµ?“Õ YQnziÈÊ?—ÕÊY̦"+ËèvZÍzM×*ÈŠˆˆ²]ȪT*߉¬ôj½ÑYÙýáx2›;ËõÆÝE²ò<ÿˆ¬ˆˆ(O]ÈJh¥dåF² ú–Ñ‹eõ˪ˆ¬ˆˆHJeUˆdU¾Yi‘¬ Ó$²Ú¾‘U +dEDD}©¬N¬^DVOû­»Y-óéDdeö:m%«*²""¢·} «Š¦×êÍV§kX"«élá¬Ö®ÈêÈÊÏÈê³gHDDôÛ} «]"«¡ÈªÛn6Y=„²ºe­ˆˆ¾|YcY=ƲêV0Jeõô¬`…¬ˆˆ(ŲR´:}ÏKeµ^:óÙd<ìÛ"«–’•®du/²ºQ²ºBVDDôVVס¬”¬ªJVíNÏYM¦óÅrµq·û@V/¬NÈŠˆˆrÔkL«7²Ú&²ئ!²ªWuMÉêNhȪ€¬ˆˆ¾|)¬¾®”¬nDV÷¡¬ÍvWd5LdµCVDD”Û2²òYBY­œÅl*²²Œn§ÕDVDDtÑ…¬J¥òÈJW²j‰¬ìþp<™Íå:••çùÇc -+dEDD9èBVŠVÏO»­Éj$²ê‰¬jºVIdUDVDDt.«B$«ò­ÈJÓ«u‘•aÚƒDV[dEDDù-•Õ)ÕK «ýÖݬ–‹ùt2ôEVm%«ªVyDVDDtÖÏeÕé–Èj:[8«µ+²:üYùY}ö -‰ˆˆþ@¿”Õ°o™"«F «‡PV×YYA+"¢/ZFVÅDVM¯Õ›­NOd5Jeõô|øñ_dEDDyì5¥Õñè{^$«»Y/ùLde›½n +]Éê^du£du¥d•Ðê³ÏNDDŸÓû²z eÕYõEVóÅrµq·û@V/¬NÈŠˆˆrÕG²ÚF²‹¬Œn»Õ¨‡²ºZ!+""’²²ºeõ dU­5DV¦ÕŽ&ÈŠˆˆ¾@Yùç²Z9 ‘Õ@dÕ d¥edU@VDD_¼Vß WJV7"«ûDVÝži‡²rDV»HVžç)¬å¢ Y ­”¬Ü@VÓñh`["«f½†¬ˆˆ(Ó…¬J¥òÈJ¯Ö­HVãÉLÉj¬ˆˆ(ߥ²:²zY=²Z†²ê[F/’U%‘UYÑ¥¬Ê·"+-’•aÚƒDVÛDV~FVŸ=B""¢?Òû²ÚoÝ’Õ|:‰dÕV²ªj•GdEDDI©¬ -ïȪÓ5,‘Õt¶pVkWduø¬ˆˆ(§Ëêè{Þ…¬†}ËY5Y= +""ŠËȪ˜Èª¢éµz3’Õ(•ÕÓóAÁ*Õ YQÎzMiu.«»Y/ùLde›½n"«û@V×Å«+%«ï‘¬ Ñ—ì²êV_d5_,WdEDD9ï²G²j5êU]du§du“Êê?ÈŠˆèËö¾¬+ZµÖh¶;=Sd5‰eµeåyþYQþÊÈÊOdµÝ¬WÎBd5°Mã\V·ŠVÈŠˆˆBX¥²ºeõ‘ÕPd刬vYYŰBVDD”“.d%´Jd5dÕ d¥edU@VDD_ºXVß•¬®”¬nDV÷JVz «nÏ´EV3%«5²""¢¼—ÊêÈêEdõ´Ûº‘¬FÛY5ë5]«$²*"+"¢¯^«TV¥Rù.”U½ÑŠd5Ždµý@VŸ½A""¢?ÔOdµ\ÌEV}Ëè!+""zÛ¥¬Ê·"+-’•aÚ‘ÕÂYËÊGVDD”Ç^SZ¾ç…²ÚoÝM «I$«v³Q«j•GdEDDQ©¬ -ïȪÓ5,‘Õ4•«d%°BVDD”×~)«aß2‘]”‘Uñ\Vµz3’Õ(•Õ“Èê%Õ YQîú@V;w³^:óY$«n,«‡PV×YYA+"¢/زªD²êV_d5_,WdEDD¹ï²û¶Èª¥d¥+YÝ‹¬n”¬®”¬Z}ö݉ˆèÿßOeÕŽd5‰eµeåyþñ˜Â -YQnÊÈÊOdµ=—•!²ª‡²ºZ!+""z_V­Zkˆ¬L«?DVDDôeº•Ð*ÕÊY̦ãá ••–‘UY}åþ7YÍþe¿NtËоJín´œÇRP@--ASÿÿW W¦sN§Ò&ܵ~bgßVkõÆcöY}uàœÕÇÈY5guzrt¸¿·³í¬èû6tV…Bq¹wV륭îY—Ï*WÎ -€¼?«·ä¬žgu™}VEgoƒ±êÕJrVkݳÚÙÝ;«fÿ¬ÚÎ -€Å4ñ¬ê÷µ»Ûä¬*§'ÇéY•œ=ÁYuÆjuè¬NÊgçÉYÝUï9ð{°VïïíV«wVOŸgužÕ³`Øà¬–FÎj³{V‡éYÝtϪÑ9«d¬œ‹kž³*'gµ»ý}³´á¬èšvV{ÉYž_ŽÕ[÷¬>œ‹(û¬õ‡Z59« g@hòYmžU­{VÏÎ -€7õ¬~¤guôyVë™ge­rg䬊ý³*¥guœžÕmÖY}Ž•³`L8«fzVW•³ä¬ö;gµÕ?«åb¡à¬òlöYUÎ/¯»gUo4ŸzgÕjµß‹iä¬ÚSÎj§{VkÉY­¤gÕ_«¯î;ÿµ‰gõ½sVÎ -€Ü Ïêõ¥wV÷Õ»ä¬ÎÏÊ'Cgµú÷_9+€ÜË>«ä¬v“³*ŸV.fÕW'þ ÁY}ôÎê×ëËÏþYݤguØ=«Íä¬þùÛY0ßYý¸­ÖêGgÀÂ?«·ô¬ƒ³:Í>«%g_ÓÏêè¸|æ¬È•̳zœÕezV{;ÛÎ -€Ô·Ì³Zß(muÎj?=««ô¬šÎ -€Å÷{°VãgU ΪÔ?«¢³ȳá³*ŠËCgµ3å¬ÚÎ -€E5|VïíV«wVOÍF½sV·ÉYUNOŽÃfÕIùì<9«»ê}ï¬^^ mÆY]§guଌUï¬V’³Z›|V?_^õÎêÃY°"Î껳 '8«ÎX­vÎj³{V‡éYÝtϪ‘žÕ›³`‘Í:«‹Êi99«Ýä¬6œÿ>«¥ì³:9«ggÀÂË>«Ç䬪Π-€L“Ïj{g/=«Ë gõ9VÎ -€…2ñ¬:gõ#=«#gÀ¹Ïª6tV­VûÝY°¨œÑ&œU)=«ãô¬n¹1㬮.*gŸgµUÚXÏ<+k3#gUÌ:«ÊçYÕÍ'gÀâ›pVͱ³ÚwVôÍuV×Î -€9«ö”³Ú:«åb¡à¬òkêYÌwV_@ø£Â³zMÏê¾z—žÕ‰³`˜³€1ÁYýz}9«sgÀ˜ì³Ú(m~ïUÙY7ƒ³úèžÕ[ç¬~öÏêfä¬67Ö׆Ϫ¿V_]xþ[SÎj7=«‹ä¬ªµ‡zãÑYóÕ¡³`ÀYÀ˜Ì³z~l6&œÕjç¬Vœ@¾ÍwV?œùñ{°V“Îêtä¬þé¬U÷¬–œ@^M?«#g@þÌ:«KgÀ8gc¦œUmø¬öv¶]ßfžÕ™³ g†Ïê½Ýj9+fÉ>«õÒ–³ ¯¦žÕíØY•œsžÕ•³ O²Ïê©Ù¨;+²M=«}g@ÍuVÇÎ -€á³*ŠËCgµã¬È)g@$g™gUqVŒˆ:«fÿ¬ÚÎ -€öïΪè¬òËY@`úY];+Æ Æ*û¬NÒ³º«Þ;+òÂYÉY@ÀY)ó¬ÖÖ76ù嬈48«%g=Î -€HsœÕ¹³ gœ‘ÆÏjÅY€³ ’³€À|guà¬øä¬ à¬ˆä¬ }VúC­ê¬ÈଠଈœUg¬Vùæ¬ˆä¬ à¬ˆä¬ à¬ˆä¬ à¬ˆ4ßYÝ8+òd޳*;+†8+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9+8+"9«ÿ³_‡ ƒú·~€©{h„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™ÄدC†Aý[?ÀÕ<´À¬ˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÆ~0 êßú¦î¡faVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+Nfc¿ õoýS÷Ђ0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+Æ~0 êßú®æ¡‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘YÀ1+"³€cVDfǬˆÌ -ŽY™³ 2+8f@dVpÌ -€È¬à˜‘Y0öë€aPÿÖ0u- Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -€“Y@˜'³€0+NfaVœÌ -¬8™„Yp2+³àdVfÀɬ Ì -`ì×±M‚…ÁÒl,h, Ø9caBxÿWs·Å™ ³ 2+f@dV0Ì -€È¬`˜‘YÀ0+"³€aVDfìˆÌ -†Y™ ³ 2+f@dV0Ì -€È¬`˜‘YÀ0+"³€aVDfìˆÌ -†Y™ ³ 2+f@dV0Ì -€È¬`˜‘YÀ0+"³€aVDfìˆÌ -†Y™ ³ 2+f@dV0Ì -€È¬`˜‘YÀ0+"³€aVDfìˆÌ -†Y™ ³ 2+f@dV0Ì -€È¬`˜‘YÀ0+"³€aVDfìˆÌ -†Y™ ³ 2+f@dV0Ì -€È¬`˜‘YÀ0+"³€aVDfìˆÌ -†Y™ ³ 2+f@dV0Ì -€È¬`˜‘YÀ0+"³€aVDfìˆÌ -†Y™ ³ 2+f@dV0Ì -€È¬`˜‘YÀ0+"³€aVDfìˆÌ -†Y™ ³ 2+f@dV0Ì -€È¬`˜‘YÀ0+"³€aVDfìˆÌ -†Y™ ³ 2+f@dV0Ì -€È¬`˜‘YÀ0+"³€aVDfìˆÌ -†Y™ ³ 2+f@dV0Ì -€È¬`˜‘YÀ0+"³€aVDfìˆÌ -†Y™ ³ 2+f@dV0Ì -€È¬`˜‘YÀ0+"³€aVDfìˆÌ -†Y™ ³ 2+f@dV0Ì -€È¬`˜‘YÀ0+"³€aVDfìˆÌ -†Y™ ³ 2+f@dV0Ì -€È¬`˜‘YÀ0+"³€aVDfìˆÌ -†Y™ ³ 2+f@dV0Ì -€È¬`˜‘YÀ0+"³€aVDfìˆÌ -†Y™ ³ 2+f@dV0Ì -€È¬`˜‘YÀ0+¢c³ú6+Þ‰Y™Œ³ú2+˜ ³ 2+f@4³ú«•YðÞÌ -€È¬`˜‘YÀx=«ûíz9ÿ˜/˜ ³ 2+f@ô<«³€c³ú4+þ˜Õɬ€_öë9ul€èsügl“ƒÉ"gƒ o¼ÿ]ý{ÅE‰4õj¨’úl¢«á¬²Ï*ÂYpÄYä{Vï‰dг„gxg€gxЋ½V¾gUUg5O8+@XpV€qVxpV€=tVºuV;Î -`×ϪËYÎqVxü»³ŠqV^Î³ŠÆâqÇYå8+@8ýÜ<+³¸\=«"g#Î -ð¨»ÎªÃYÂÄÿ¬†>sœU…³ØüÏê#™JsV€°z謒œà—Z«kgÕà¬!ã<«ý~·uÕ€³øà¬8så¬ÆÎ³*䳜àèúY•9+@øÜ:«6g8wßYõ9+@xÜqVuÿ³ŠpVVœgì±rœÕòÊY‰±â¬ äî8«Öñ¬¦œ .ÕÜuV%ë¬ÞÄY½rVnþg•g•—gUSg5’gepV€8?«o×Yõ\g•:;«ÓXqV2Ï*ÃYBÊ>«ƒuV+çY5]gõÎY®ŸÕ'g!ÏYmÖ_çgUå¬NwU÷úY±V€@¹|V“ñÐyV9ÇYÅã±(gáuû¬4Î -.®³ÚYg¥sV€‹\g³Î*©Îªâ8«™n,8+@ðÝ8«Ž:«"g°ÜyV×Ymwû=gªÛgÕ8U:•üð=«gð»|VÙ|ÁyVcïYYkõìð']=«¾:«2gp°Ï*âVu­Õ¶ÏjÉYïâYM9+Àž³keŸUÉuVsuVßœ ÈüÏÊg5’gÕâ¬ç^ìµ2ÏêUœÕ›8«”ë¬zÖY­8+@ÀýÜqV5yVyyV Î -ðëÂY½ÛgU­kMyVÃÓY}‰µ2ÏêÀYéγúg•á¬GWÎ*ç>« g…gÕí´4Î -pÆyVÑX<î:«¢:«Ž:+Ý:«g*çYí÷»íñ¬†>g5PgUQg•´Î*ÆY@¨ùžÕG2•>Uƒ³„Š=Vž³sV€ ®ŸUYUŸ³„…ïY-í³j·´º<«B>ËYNî8«–<«Ñd:× Î -xöY̳úVg5wUÉ<«”ë¬"œ„—ÿY%äYååYÕî8+Ö - ž³cµ²Îª×m7Ýg%ÇŠ³€Ð»xVqVŸê¬º§³ZpV€ »|V“ñPUÕ>«wyV¯ê¬NcÅY@èÜ8«J­¡ÎjfÕv·ß‹³²ÖêÙ àÏqÕÎ:+]UGU±sœU<‹rVf®³ŠYg•<;«ÁhÌYBáöY5êÕ²yVéTòÃ÷¬žwÀîòYeóyVu­Õ¶Ïj)Ï꛳—ÿYú|*ΪÏY|Ùgñ9«’:«žyVsqV«õfs<«g Ÿ+g5’gÕj6jò¬òò¬œÀä9+±Vò¬RöY5åY Ç“ãY}­9+@€Ý8«®:«OqVÎ -pòb¯•yV¯â¬ÞgUuž•nÕŽ³“=V¿ûýn{<«…¡ÏNg¥qVçYEcñ¸yVïâ¬ÒÙ\¡(ϪÑlw8+@X\9«ñh Îª¢Î*iUŒ³€ó=«ÓY•ÕYõÅYM/žk û¬æY}˳ZÚgÕniuyV…|–³ØnU­Ñlɳɳ28+@ÀyÎj³ùZ‰³š›gÕSgU2Ï*å:«gaæV‰T:“Ë?ÕYuÏÎj»ÛïÅYYkõì -ð§xÏj­Îj2ʳjjõªó¬ÄXqV€[gU©54yVqV3ÝXpV€`sÕÎ:+ý쬊…Üñ¬ÞÄY½ª³:g!ä:«˜uVIÏYí³ú6ÏêÀYççÆYuÚÍF½Z6Ï*-ÎêÝ<«x<uœÕ³ãx‚Ëg•ÍäYÕµV[ÕÜX,Wë͆³Õ…³2ôùt2öÏÏꃳÙgqUÊ<«’:«Þ`8žÏêkÍY˫߇ý~·õœU«Ù¨É³Êç2éT‚³(ž³’kå8«j]kZg¥[gµã¬AäV CŸ™gÕí´4yVŸœÀíÅ^«hTœÕ«<«wqVél®P”gÕh¶;7Ίµ„}Vó¬¾í³ê¬*ꬒÖYÅ8+=÷YÅgõq:«²:«þp4™Îuƒ³šç¬6›õj¹0æê¬Ú-­.ϪÏrV§+g•—gUk4[ž³Úîö{qVÖZ=»ƒü®³ÚɳZÏj2zê¬JæY¥\gᬠÜüÏ*‘JgÄY}ª³êöâ¬fº±à¬ösá¬t묚Z½*Ï*w<+9Vœà×ÙYŬ³Jª³ªÔÚñ¬ÆæY-åY}›guà¬sù¬¦â¬ú½N»ÙgUg•gõ.ÏêUœU4jg¡tù¬²ù‚<«ºÖjw{æYÍÅY­äZqV€@²ÇÊ<«­:+CžÕHžUKžUùtVÇ³Š»ÏêÙi<…}V×Y¥Ì³*ɳjʳŽ'γڹΊµ‚ó¬öÞ³êʳªUËŸÅ|.ÃYœ›Œ‡ƒž<«z­Râ¬^þg•H¥3¹|ñ³\­É³êö£ñt¦ Î -X?®³ÚYg¥[gÕÔêUuV)yVÿ¥Î*ÂY@عÎ*æ9«J­¡9Ïj¹ZoÄZɳ:pV€@9•÷¬¦â¬ú½N»ÙgU,ä²iyVoÿõ?Î -ø?ûõ¹6¶P83`“dL‘¨ê….Å`Šã÷«{Ž$ÀÉý3?¼`ö~‰½>"Júƒ¬êŠÚlw¤¬l×ïG‰¬")«×-²""¢‡ì,«w!«ãñ°Ïdµ”² -¤¬|)+ý"«)«ŠU¹ ¬ˆˆþóå²*]ɪ‘ÈJ“²ò¤¬¦á¬(«Ã•¬ =@¿—Õj/Y ¥¬,SïuÛ-UȪšÊêYÑ·ßÈJÒ*•U«ÓÕ SÊjÉ*¾‘Õ…V_ýB""¢_.«S"«·Ýn»Y'² -ƒ‰”•ëXÆYV5dEDDÅrZ•ËBV)«!+%‘•nÚŽ”ÕxÌæQ¼Ìdµ?ÈŠˆˆ«Ï²Ú¾JYE™¬ú¾kKYuÚMU©_dõ„¬ˆˆèÛ­¬žSYUYµ¥¬,ÇóÃDV‹x¹BVDDô }\ÉêP”Õ,œNFþ'e¥%²j +""ºî÷²ª5UȪ'eåJYM‚0‘Õz³Ý ZIY=P9¬®eg²HY™†Öí´RYIX¥²*!+""º’ÕÓEVuEm¶;=ݲêg²Š¤¬^·Ÿe­ˆˆèî+Êêx<ì3Y-ãh> ¦c)+Ç6õDVŠÕ‹”UEȪœÊê/dEDôŸîÿËJ3,[Êj4™†³¢¬ÈŠˆˆ«\V§‚¬VËx‘Èj8ð=Ç’²j'²ª¦²zNeõw&«¯Þ:}Y¹¬J©¬$­„¬j³%eeÚ®×d²Šodu¡ÕW߈ˆèßv+«·Ýn»Y'² -ƒ‰”•ëX†Þ²R•F YÑUe´’²* YU¤¬^„¬!«®¦›¶#e5ž³y/3YíÇ#²""¢êãJV)«í«”U”Èj4ìû®-eÕi7U¥~‘Õ²""¢¤LV§²zNeUMdÕ–²²Ï Y-âåª «²""¢‡)‡Õµ¬âh1 §RVž”•–Ȫ¬ˆˆè¶ß˪ÖPT!«žnXŽ+e5 ÂDVëÍv'hu#+hEDDw^QVÇãaŸËj> ¦ãÑ@ÊÊ4´n§•ÊJÂ*•U YѬž.²ª+j³Ý‘²²]¿?M¦álIY½n¥¬ÈŠˆˆ©\V§‚¬VË‹¬|ϱM=‘•"dõ"eU²*—sX!+"¢ÿp’U#‘•&eå]dßÈêB«¯þ!Ñ¿ëVVo»Ýv³²ZÌÃ`2JYY¦Þë¶[ªU5•Õ󵬾zêDDô…å²*¥²’´JeÕêt5ô¯?§ÁlÅËLVûÃñˆ¬ˆˆèaú¸’ÕAÊjû*e]då:–q–Uí,«'dEDDiå´*—…¬*RV/BVJ"+]ÊÊÏdµˆ—«‚¬NÈŠˆˆ¤VŸd5 §“Ѱﻶeh½N»©*udEDDŸº–Õs*«ª•Újw{ºi9®?Ž'A˜Èj½Ùî­nd­ˆˆè®+Êêx<ìÏ²Š£y"«Aßsm3“UCÊêçLV%dEDD²+Y=eU²j¶;=ݲêG‰¬")«×­”Õá,«_ÈŠˆˆî¾\V§‚¬VK)«`:–²rlS׺VS²zùççïRVedEDDiU=••fX¶ëIYMÃÙ"Šodõެˆˆèú¸•ÕÛn·Ý¬…¬ó0˜Œ‡ßs,)«v"«j"«J&+`EDDߊ²*¥²’´²j¨ÍV§«¦”Õ`4ž³y/3YíÇ#²""¢éZV)«í«”Ut‘•ëX†Þ²R•F-“Õ3²""¢KEY•…¬*RV/BVJ"+Ý´ÏÏeµ*Èê”Ë -ZÑ—ÃêZVq´˜…ÓÉhØ÷]Û2´^§ÝT•úEVOÈŠˆˆ.å´’²zNeU²R[ínO7-ÇõÃñ$ç !«õf»´BVDDô8eu<ö¹¬æ‰¬}ϵÍLV )«Ÿ?]w%«§³¬j‰¬:=ݲêG‰¬")«×­”Õá,«_ÈŠˆˆî»\V§‚¬VK)«`:–²rlS׺VS²zùçç𤋮JÈŠˆˆÒþ «º¢6…¬4ò]OÊjÎQ\ÕQÈêYÑÝ÷IVo»Ýv³²ZÌÃ`2|ϱL½×m'²ª&²ªY•ËÀŠˆˆ²rY•RY%´ªÕj³Õéj†i;^0OƒÙ<Š—™¬öRV§\VЊˆˆî¶3¬RY¤¬¶¯RVQ&«¾ï:–‘ÈJUµLVÏÈŠˆˆ -eU²ª$²ªÖJ³Õîjºi9ž?&²ZÄËÕZÈJÐ -YÑ£t–Õ»Õ± «8ZÌÂéd4ì{®mZ¯ÓnªJý"«'dEDD…rZIY=g²ª5UȪ§–ãJYM‚0•ÕFÐJÈêp–Õ/dEDD÷ÜG.«“”Õ>“Õ2Žæ³`: ¤¬LCëvZMµ!d%`•ɪ„¬ˆˆèÜ•¬ž.²ª+j³Ýéi†e»~8šLÃÙ"*Êê(dõެˆˆèÎû$«·ÕzµŒ™¬|ϱM=‘•Ò¨W_„¬¾KY•‘å}–ÕŸRVLV¦ízýA"«y/3Yí¥¬N¹¬ ÝigX¥²:HYm_7©¬Â`2|×±L½×m·T¥QKeUÉd¬ˆˆ(+—U)•Õ÷?ÿy²Rš­NWÓMÛñüÁh< Y­ÖBV‚VÈŠˆˆ£³¬Þ…¬ŽEYE‹Y8Œ†}ßµ-Cïu¤¬êgY=#+""º.§U¹,dUIdU²R[ínO7-)«áx„ó…”ÕFÐJÈêp–Õ/dEDD÷ÛG.«“”Õ>“Õ2Žæ‰¬}ϵMC²jeõ„¬ˆˆèªkY=g²ªeeXŽë÷‡£É4œ-¢[Y½#+""ºë>Éêm'dµ^%² -¦c)+Ç6u­Ûi5ÕF½–À*•U YQÞ•¬ž.²ª+j³Ýéi†e»ÞEVñ2“ÕþpLhu–´""¢»ì «TV)«íëFÊj1ƒÉx8ð=Ç2õ^·Ýj*z5‘UEȪŒ¬ˆˆ¨X.«R*«„Vµzãì×Gr*ÙEѨ€Ž ½÷ÞŒH¹ùÏêß›†I¯Q­WùãìIìX¼ ÊŠf˜¶ãaœdyYYŽDV„VB¡ÿ‡&Y}Y½Ýʪ©Ë"Kã(ð]Ç2zYñ»eµdX!„ºv+«G"«M/«-Ãr‚()šnZŽç‡Q’æEUSY­ˆ¬ºIVŸB¡¥ö5ËêÊê2Êjß^eå¹¶ehª, <Ç\eµ‚¬B}k¦•Õz”ÕŽåx"+U7,Çõƒ(N³¢¬›[Y½Y}@V!„ÜY½¾YDVU™gIžc›†¦È¢À³DVVƒ¬ +„B·ÝÉju•Ãñ‚$«šaÙ®w•U»eu¡²zŸeZ!„Z`¬YuTVçç•U]yšD¡ï9–©÷²âXfûDeµ!²z„¬BÝ7Ëêa¥‘Ë ¢¬h†i;^ÆI–—‘ÕáHdEhY!„Z~“¬>ˆ¬ÞneÕÔe‘¥qø®cºªH"ϱ»QVëAV€B¡›neõHdµ¡²zÚ2,×ËJ7-ÇóÃ(I󢪩¬N„VDV]/«+­þöB¡Ý×,«w*«Ë(«}{••çÚ–¡©²$ðs•Õ -²B!ô£™VTVëQV;–ãEIQuÃr\?ˆâ4+ʺ¹•Õd…BhÑM°ºÊêõ…Èêx ²ªÊ‰¬êªÌ³$ϱMCSdQàÙYV+È -!„КiEeµždÅp¼ ɪfX¶ëa/«ªi÷‡^V¯7²ú„¬B-¬YVV£¬ž©¬šº*ò4‰Bßu,Sïeű̫AVB¡ßº“Õj–Ë ¢¬h†i;žÆI–—UMduìiuéº^VB¡ÅõõMV—QVû¶©Ë"Kã(ð]Û2tU‘Džcwƒ¬6DV3¬ +„B7Ͳ¢´ZoFZ1,'ˆ’¢é¦å¸~%i^TuÓÞȪ§d…BhqͰ¢²ê:+"«ãȪ*ó,‰ÃÀsmÓÐTYxŽ™dµ¾—Õß^8B¡ÿTÿÌ´¢²Z²Ú±Od¥ê†e»^ÅiV”UÓ­®²­B-«[Y½ ²:?Ÿˆ¬šº*ò4‰Bßs,S×Yx–Ùõ°"²ZAV!„þجVWY1,/H²ª¦íxA'Y^V5‘Õñt&´ºt]/«È -!„ÐÂúšeõNeu™dÕ6uYdi¾ëX†®*’ÈsìnÛËjCdEaY!„úµYVƒ¬zZYq‚(+šnZŽë‡Q’æEU7TVÏ£¬zZM²­B-¤VTV]G`EeuØ·MÕË* <×¶ M•%ç˜IVëAV¬ +„BwÝÊê‘ÈjÓËj»c9^”U7,Ûõƒ(N³¢¬›v?Êê2Ëê²B!´ neõ6ÈŠÀêHdUWež%qè{Žmš"‹ÏβZÝÉêo!„ЬfZQY­'Y1/H²ª¦íxA'Y^Vu»?OçB«®ëeõY!„ZT_³¬Þ©¬.“¬Ú¦.‹ûœ!„Ð/º2Y]¨¬X­²šÆ¡o›º,²4ϵ-CWI¼ËŠ_eÅ`Y!„ú0&+B«ÝŽãy&+A”M7,Ûõ‚(N³¢¬›¶Æ›¬­VY]˜¬@+„BƒÕ;…•…Õqû®­«"O“(ô=Ç6 M•%ñ+"+²B!ôç=1ZQYqDV+­QRTÍ0mÇóÃ8Éò²jÚn§ãéí¡Õy¾Ñ -²B!ô¸]™¬.7Y™¬Æ¡ïšº,²4Žßu,Sÿ—ýúXn;À(\,!ÌÆ"rÎ9'J=MÚ¤üþOå 螥٪ùÏKœúTY«¬x"«V›¬=l„BÏÞ.«—EVü]V¯GQ’UÍ0mÇóÃ(Éò²ªÛ®'²z{ŸeuÞeuƒ¬B=g¿ÈjÕ…Àj–Õ4}ÛÔe‘¥qø®c™º¦È¢°ÉŠ»ËŠÂ -²B!ô:ì´b–ã6Y ’¬hºi9®DqšeÝtý0N³¬­.—EVW*+Ð -!„ÐÓEaEeu&²"°:McßµMUæY‡çئ¡«Š$ -V<DzV›¬½k„BOßï²b‰¬VZ ¢¤¨ºaÙ®„q’åeÕ´‘Õi¦Õ"«…V7J«Gß!„úKTV×EV— Õ"«q軦®ŠÙÒj‘Kdu§ÕQ%EÕ Ëv½ Œ“,/«¦íúq:Í´úy>¯²­B=c¿ÈjÕ…Àj–Õ4}×ÔU‘§Iú®c™º¦Ê’p\eÅYͰÚdõèU#„úí²zYdÅßeõz%YÕ ÓrÉêa‘•x•Õ£¤¨šaZŽëQ¼Oó¢ªÛ®˜¬Ž³¬6Z9­nýT„Bÿp\V§MV VÏ VãзMUYšÄa๶eèš"KWXíDz‘‡d…Bè qY1Z ¡TÜ]i%ÉŠ¦–ízA'iV”uÓöÃ8˜¬­VY¸¬@+„B7‹Ãê¼Áj–Õ‘Éjè»¶®Š<ÝÇQ໎ešªHWY‰"%„Á -²B!ôî8­ØRB¨(^eõ()ªf˜¶ãúAïÓ¼¨ê¶ë‡éðÄhõòºÑêÌiuë«"„úgûà²:m²zùËdu˜Æ¡o›º,²4‰ÃÀsmËÐ5E–/°Ú‰”AX`uX!„úr\VŒV‚@(wZ=J²¢é†e»^ÆIšeÝ´ý0N&+F«UV'.+Ð -!„Ðâ°:o°b²z>>¦¡ïÚº*òtGï:¶ihª"=þ¹ÈJ)! VVB¡/uÇiŦ"BEñ"«?’¢j†i;žDñ>Í‹ªn»~˜OŒV/¯­ÎœV·þ*B¡´.«Ó&«—¿LV‡iú¶©Ë"K“8 <×¶L]Sdéq“¥DXÝV!„¾—£• J™¬fZ1YÉŠ¦›–ízA'iV”uÓöÃ8˜¬­VY¸¬@+„B·h…Õyƒ“Õóñé0 }×ÖU‘§û8 -|ϱMCWéñÏ"«(RB¬8¬ +„B_ìŽÓj‘¡"£“Õþ<ÊŠª¦íx~%û,/«ºíúa:<1Z½¼n´:ƒV!„nØ*«Ó&+«çãa‡¾mê²ÈÒ$ϵ-S×Ty“¥DXÝV!„¾Ó*« ­(]e%ɪ¦›–ízA'iV”uÓöÃ8ŽÏ3­VY +„B·k…ÕyƒÕ,«ãÓaú®­«2ÏöIúžc›†®*ò -+‘.«;È -!„зZiµÈŠPq¥•¬¨ºaÚŽç‡Q²Ïò²ªÛ®¦ÃÓq–ÕF«3h…Bèf­²:m²b°z>¦qèÛ¦.‹,Mâ0ð\Û2uM•¥UV”.°‚¬B}¿O²šiEé*+IV5Ý´l× Â8I³¢¬›¶Æép|žiµÊêY!„ºU+¬Î¬fYŸÓÐwm]y¶O¢Ð÷Û4tU‘WX‰”,²¬Bý@ŸhÅdE˜¬8­dEÕ ÓvÉêa‘•Èe%ɪ¦›–ízA'iV”uÓöÃÈhõ<Óêíí*«d…Bè6­°:_aõÎ`Ådud²ú®­«"O÷Iúžc›†®*2‡“YduÏeuë%#„úÿŽËŠÑJ¥âŽÓJVTÝ0mÇóÃ(Ù§yQÕm×LVG&+F«÷+­Î B¡›ô VY½1Y]`5}ÛÔe‘¥Ižk[¦®©²Äe%.²zXduY!„úvwœVl.!T¹¬$YÕtÓ²]/ã$ÍŠ²nÚ~¯´z}{»Êj£Õ­‹BèŸêƒËŠÃêÁê"+«®­«"O÷qúžc›†®*2‡ÕN¤”«{À -!„ÐÄeÅh%„RqÇi%+ªn˜¶ãùaïÓ¼¨ê¶c´ºÈŠÑêý­>@+„B¿Û -«ó «YVoLV ¬¦qèÚ¦*‹,Mâ0ð\Û2uM•%.+Q¤„0X=pXAV!„¾Ù§Û‹@E.+IV5Ý´l× Â8I³¢¬š¶ÆéB«WF«YVÿ]dZ!„úåVYfY1X½3X]d5}×ÖU‘§û8 -|ϱMCW™Ãj'RJaÕ=`…BèGâ²b´B©¸ã´’U7LÛqý Š÷i^TuÛõøȊÑêí}¡Õi¡d…BèW[auža5Ëêíõõ«iº¶©Ê"K“8 <×¶L]Se‰ËJ)! VVB¡owÇiÅ#BE‘ËJ’UM7-Ûõ‚0NÒ,/«¦í†qZhõòºÑê Z!„úåVYfY1X1Y½ü]d5}×ÔU‘§û8 -|×±MCW™Ãj'RJaÕ=`…BègZeÅh%„RqÇi%+ªn˜¶ãúAïÓ¼¨ê¦ë­fY1Z­²:AV!„~·Vç VLV3¬¦qèÚ¦*ó,Mâ0ð\Û2uM•%.+Q¤„0X=pXAV!„~ •Vl1!T¹¬$YÕtÓ²]/ãdŸåeÕ´]?N‡™V/¯­Î B¡ßìc•Õi“ÕËßYV V}×ÔU‘§û8 -|×±MCW™Ãj'RJad…BèÇZeÅh%„RqÇi%+ªnüý:ËM$YÀ(,AfõÒ&çyžGÀå6$*ãýïª#¨wÒWºúÏ&Ž>Ëq½ Œ“,/«ºí†qÇhõñïL«iºÉ -´B!ô£ X]°b²b°z?ìǡ,²4ŽBßslËÐ5e{—¥D–¬Ö€B¡—&hÅ&#É2¡ô.«­¢é†i;žFqšeÝt=£Õáý÷“£Õù‰VB¡êVWYMÓ «?¬vãеuUæY‡çÚ–ihªr‡Õ†"K‡d…Bè… Y1ZI’LÝÜi¥¨šnZ¶ëaœdyQÕm×»ýV§iâ²úÃeZ!„ú¡„¬î°:3X1Y}ü~?0XõmS—E–ÆQà{Žmº¦lï²¢”È2ƒÕ°B!ôâ­Øf$Y&”ÞeµUTÝ0mÇõƒ(N³¢¬›¶ÆÝMVŒVgN«/N+È -!„Ð$`u™a5Ëj:n°ÚïÆ¾këªÈ³$ϵ-S×Tå VD–$+È -!„ÐK²b´’$™<ÓJÕtÓ²]/ã$Í‹ªn»~Üío´:=hu­BýLßBV_³¬¬˜¬ŽŸ\V VCß6UYdi¾ëئ¡«ÊVÈŠÁJf°ZV!„^ž $Ï´²RTÝ0mÇõƒ(N³¢¬š¶­¸¬­¦é&+Ð -!„Ð%`uyÀŠÉj†Õa¿ú®©«"O“( <×¶L]S°¢3¬$+È -!„Ћ²b´’fZÑ­TM7-Ûõü0JÒ¼¨ê¦ë‡ÝþÀiud´:?Ñ -²B!´xϰºÊjš¬fY1XC×6U™gi¾ëئ¡«ÊCVd–ÕšË -°B!ôê­ØjfY&+N«·­¢ê†i9®Dq’åeÕ´Ý02Z1Y1Z¦éIV B¡Å²ºÃêÌ`uœaõ~ØCß5uYäi…¾çØ–¡kêVt†•ÄaY!„zyBVŒVÒL+Êh5Ëꟷ­ªé†e;žFIšeÝtý0îïŒVŸGF«ó­ +„B '`u™a5Ëj:î°ÚC×ÖU™gI¾ëX¦¡©Êö -+&+B8¬Ö€B¡E´ZsZÂdu¥ÕVQ5ô× Â8Éò²ªÛ®wwZ´º€V!„–î[Èêk–ƒ“Õñó*+«¾mê²ÈÒ$ -}ϱ-C×”íÛUVJ‰Ìeµ‚¬B-’ÕŠËJ&”ÑŠËêm«hºaÙŽç‡QœfEY7m?Œ»«¬­¦é&+Ð -!„Ðâ X]°b²â°ÚïÆ¾këªÈ³$Ïu,ÓÐTe{ƒÕ†Âaµ¬B-” ÕšÓŠº¹ÓJQ5ôl× Â8Éò¢ªÛ®wû+­ŽŒVç'ZAV!„ìVWYMƒ—ƒÕзMUYGï9¶ièš²}»ÉŠR"sY­ +„B %dµâ²’ ¥wYmM7LÛqý ŠÓ¬(«¦í†™VLVŒV§iâ²úÃeZ!„Z0!«;¬Î VG«Ã~7ô]SWEž&Qx®m™º¦*wXm(!VkÀ -!„Ðb Z­9­¡›;­UÓMËv½ Œ’4/ªºéúaÜÞ­>ŒVgN«/N«oÐ -!„ÐR X]°: XC×6U™gi¾ëئ¡«Êö.+J‰Ìeµ‚¬B-–ÕŠËJ&”ÞeµUTÝ0-Çõƒ(N²¼¬ê¶ëÇÝV§­.‚Vÿë÷"„ú?ìVBVÇÏ«¬¬ú¶©Ë"O“(ô=×¶ ]S¬6”«5`…BhÁ­ÖœV„Р•ªé†e;žFIšeÝ´ýÀhÅeÅh5M7YV!„LÈê VLVVûÝØwm]•y–Äa໎ešªYQJdù«`…Bh±þ¢•,J…¬U3LËq½ Œ“,/ªºéúa·?pZ­ÎO´ú­B-‘€Õe†Õ,«išaÅd5ÃjèÛ¦*‹,£Ð÷Û2tí« %D–¤'XAV!„IÈŠÑJ’dò­4Ý0mÇóƒ(N³¢¬š¶Æ™V3­NŒV³¬þpY] +„B ô «/«3ƒ“ÕÇï÷ÞÁªkêªÈÓ$ϵ-ÓÐTe{…Õ/+™Áj X!„Z8A+¶Ižiµùu£•¢jºiÙ®„Q’æEY7]ÏhuxÿÍdÅh5]iõZ!„Z*!«'Xî°ÚC×6U™gi¾ëئ¡kÊöí*« ¥3¬$+È -!„Т Y1ZI3­(£ÕUV[EÕ Óv\?ˆâ$Ë˪n»~Üí¯´:2ZŸhõ Z!„zuV—V³¬¦‰ÁŠËj†Uß6uYäi…¾çÚ–©kªr‡Õ†Âaµ¬B-ž ÕšÓŠº´R5ݰlÇóÃ(I³¢¬›¶fZ1Y1Z­fYýᲺ@V!„^Ü3¬¾8¬Î VG«Ã~7ô][WEž%qø®c™†®*Û»¬(%2—Õ -²B!´xBV+.+™P*d¥¨šaZŽëaœdyQÕMÇhµ?¼3Z}2ZMgN«/Ð -!„Ð} Y=Áê$`5]ÛTe‘¥qúžc[†®©VJ‡Õ°B!ô Z­9­¡›­4Ý0mÇóƒ(N³¼¬š¶ÆÝVÇÓß´ú­B½2«Ë «YVÓÄ`u•ƒUß5uUäi‡çÚ–ihª"dE)‘¹¬VB¡HÈjÅe%J7¿®´Ú*ª¦›–ízAøûuºÔF’†Q8™Êâ—%Õ¾ï{iÁ´‘JÌýßÕ|™*’‚–cƆ–Ú﹉O”¤yQÖMÛsZqYqZ ƒÕ“ÕÈ -!„Ð'6…ÕQÀê@°Ú`µÝ¬û®­«2Ï’8 -|×±MC×ÞÀJ°šV!„.’¤ÕLÐJ´²úJ´Ò Ór\?ã$Ë˪n»~µÙÞsZ=îˆVA«#h…Bè“{–²šÀjÏaõׇժk›º,²4‰BßsmËÔµåâV*‡Õí«À -!„Ðz‘• Õ-§•*iµÔtòÏ£8ÍŠ²jÚnµ–´ÚƒV!„þ¡$¬~pXqY ÁŠdõðí~»^õ]SWEž&qx®c™†¾\Ì_dŇ՗ ¬ +„Bÿpÿ™Ðê §cRV‹¥f˜–ãzA'i^TuÓöœV\VœVà dõ4•h…BèÃMau°:¬v#¬6ë¾këªÌ³4Žßsl‚•¶”°R™¢XÍ+„BKÒj&h¥(L}¥•¦¦í¸~ÅI–—UÝvýj³½ç´zÜIZ§´ºöBýñ…ÕžÃ꯫Uß6uYäi…¾çÚ–I°Z̬HVŒ)·BV7B¡‹%eu#du«0¦Þ´Z,5Ý´l×óÃ(I³¢¬š¶[­%­öûáZ!„úäž§²z²‚ÉêáÛý–`Õ5uUäY‡ï:–i諯BVVŠ€Õ °B!tÁ$­f‚VŠ ÕIVóÅR7LËq½ Œ“4/ªºi{N+.«¿Óê´B!ôñ¦°: -XV»V›ußµMUæYG¡ï9¶eèÚRÂJå°²º¬B]0)+A«[N+UÒj©­lÇóƒ(N³¼¬ê¶ëW›í=§Õ#Ñj„¬ž„¬@+„Bï,¬öVV«¾mê²ÈÓ$ -ϵ-ÓЖ )+ÆFXÍ+„BmJ«/œVŒ‘¬­æ ¢•iÙ®ç‡Q’fEY5m·Z¿ÐjG´:Z§´ºö“BýÁ=KY½Âjà°"Y}»ß¬º¦®ŠÊŠÃJ°šV!„.ž¤Õl¤cRV‹¥f˜–íz~%iV”UÓv«õ ­vD«ƒ Õ´B!ôá~ -+!+«®©«"Ï’8 -|×±MC×^a¥rX YÝ@V!„.ž”ÕH+Eaê+­4hå¸~ÆIšUÝ´½ Õƒ Õþ,­®}f„BdÏSY= Y ÁêQÀj»Y÷]ÛTe‘¥qúžc[«åb„ÕÊØ«`…Bè -MiE²ºUSïFZ-–D+ËvWX%²RXMÆÃA¿ÛiGaà¹N«Ù¨ç`e)¬2Y+""úóe´2²RZYJ+•Õ¥ÒªÙ²]Ï£¸Óí „VW×+ZÍZ©¬Öiõ§MDDÝnX='°º»UXý^§‡ï:¶ÀªV]ªl•J9X!+"":€2Ye´*­ÑªÞh¶× ¨Ýéö…V“„V"«„VóùâuI«_Њˆˆöh+¬«—%¬nVÃ~¯ÛŽ£À÷»¥°ª,e¥°*+"":¬6iUTZ•ÏRZUkB+Ûqý ŒÛ^0+­îî…VOÏyZý4´zƒVDDôa»`5[ÁêúJ`5èu;qúžk·š<¬,…U&+`EDD‡QžV"«%­Œ¬*J«–íx~Åín¯?TZÝܦ´zVDDô¹6a¥²ZÁjj`5Xõ»vžë¬êµ<¬J9X!+"":ò²ZÒÊÊÓªÑlÙ®ç‡QÜéöJ«ë5Z- íÝ -V¿–°z]Ìç -+‘ÕÃýÂj<ô{v¾ëØ -«jÅÀJd%°*+"":¼ÞÓªT²Ê­ju¡•ãzAµ ­&W9ZÍ í߬~æaõl`u{“ªێ£À÷»•ÀêÒÈ*…U&+`EDD‡SžV§B«bB+‘•ÒªRUZÙŽëa,´ê†cC+‘UB«¹ÒJe­ˆˆè7½­dµ‚ÕB`õ’ÁêZ`5Xuâ(ô=×n5yXYk°BVDDt@e´:QZ”VVB+‘ÕeB«–íx~ ­zýÁHiu{w/´zJiõ -­ˆˆè÷í‚Õ,««Éh80° -<×XÕk¬ÊV©¬ˆˆèPËd•Ѫ´N«F³e»†VÝ^¨´ºIiõœ§U*«_ÈŠˆˆ¶ô1¬¦)¬ÆÃA¿ÛiXÙ -«jEa¥²RXV§ÀŠˆˆ±MZ•VåŒVµºÐÊZ…QÜéöB««ëŒV/ЊˆˆöiV*+Õ<Õãôáþ.ÕhÐïuÚqø«V«K••ÂÊRXV'¬LG­Œ¬RZ‰¬”V•ªÒÊZaÔ6´šäi5›Íë´zƒVDD´Ñ6X½¦°zJ`u{“ªێ£À÷VÍ X•r°:VDDthe²ÊÑÊJh%²ºLhÕZùA ­úƒáØÐêa -­ˆˆh¯>€ÕóV׫¡ÀªG¡ï¹«F}«²Âª¬ˆˆè{O«Ò­šB+Ï"¡U¯?%´º»˜>®h¥²‚VDD´­¬Œ¬2X½¬`u5 «vžë(¬jU+‘•U&«#dEDDXžV§B«¢Òª¼¢U½!´r=?Zu{ý¡Òêæ6¡Õ“Òj>_¼B+""ÚÑvX-¶Àªo`廎Àªbd%°²Ö`u ¬ˆˆè;Êhu¢´*¤´:;7´ªÖ”VŽ¡U'¥Õõ’VÏЊˆˆ>l¬f ¬¦)¬Æ«^§ ¬<Çnmª¬ˆˆèðËd•£•¥´JdUIhe ­‚0j ­ÃÑäjE«hEDD»ûVÓ‡û»V#U·GVÍFVe…UQ`u -¬ˆˆè°{O«Ò&­ZB+?c¡UÿZ¥²‚VDDdz[É*…Õ VO ¬noVC«Ð÷\…U½¶„ÕY -«‚Âê$ƒ²""¢C,O«S¡UQiUÎÓª)´òü Zõ„Vã5ZÍfó´""¢÷mÂêo«yV×)¬:«ÀsVÕŠÂJdU¶¬5X+"":ÜŽ2Z(­ -)­Î2ZÕB+×Ъ+´¥´z˜B+""ÚÙ6X½X=g°ºX Vm+ÛÀêRee`UVDDôUÊd•£•%´:7´ªÖ”VŽÐ*4´&´º½»˜>B+""ÚÞnX½ä`5XõVqø«Ö¬Ê -«¢ÀêXÑWè=­J†V‰¬* ­l¡U ´ê,iuchõ­ˆˆhK{Âj,°êXy«fã=¬ - -«“ VÈŠˆˆ·<­N…VE¥UyV­”Vm¡Õ@huu§Õ\iõZQÚ'a ¬\…U½–ÂJdµ«c`EDD‡ÞQF«¥Ua ­šJ+ßЪ¿N«gC«×W•´""¢MXýLaµ˜Ïf ¬¦)¬F«®À*X9 ¬ª…Õ…ÂÊVDDôÕÊdµN«³­J+Oh§´š@+""ÚÑǰzœ>ÜßÝ&° -¬:ë°ºTYX•X+""ú:m£•%´:OiU«/i ­zB«1´""¢íí«›<¬•½«²Âªh`u’Á -YÑ¡·“VJ«JÕÐÊÝE«hEDDiÂê)…ÕµÂj °j ¬|Uk¬ -KX+""úåiušÐª”ÒJdu™ÒÊZ…B«®Ðj­ˆˆhKûÁêjVͬ΀}Ùò²JhUTZ•×ie ­¡U'O«hEDDY{Âj"°ê ¬b•§°jÔ—°:XYÀŠˆˆ¾j´*¤´:ËÓª•§Õ0¡ÕíÝýÃ4¡Õ Zýã{Û«¹Àêy¬ÜVµj« «R«Ó<¬}¶ÑÊZ§USiå ­Ú­nZ=B+""ú¬Æ«žÀ*ÊÁª’ÈJ`UVX ¬r²úÓŸ$""Ú¯£]´:ÏhÕX£Õ@iu ­ˆˆ(í¿ƒ•³V`EDD_´•¬ŽUVJ«’¡Õ…¡U­žÐÊZÅЊˆˆ6ú¬º«Pae+""úf­hubhUTZ••V ­*Õ Zõ•VWЊˆˆ´ýa5ZÂ*x«³²emƒ²""¢¯Ô­ -yZýëß—KZ¹B«èÓ´ÂVDDߺœ«öUg «VVçÀŠˆˆ¾EGŸ¤UOi5Éhõ­ˆˆþ±}VÃ%¬|…Us;¬Öeõ§IDDô¹vÑêlV´""¢µ6`õ÷ï`ÕÎ`Õ¨§°º0°*+""úm¥•µ•V!´""¢´ÿVµªÂê/…UYaUVDDô ÚÕŠVçyZÙKZu•Vã´ú‘Ðê'´""úæ½}Vƒ%¬¼%¬**«¬ -°BVDDôÛB«Ò'hõ¸ƒV¿ ÑwmXݯÁ*VDDôý{G«¢Òª,´ºXѪ¥´ - }«Y«»÷°r7`u¬ˆˆè{u´A«Â6Z5?¦Õ‹¡Õ«Òêï Za+"¢oÕÿVV -«S«ÿ°_'jI­a†wZ2kj{gi9¤‰] ¬ ŠAÎÿ¬ö÷Ok^€]Ïsï{ï+""ÚìV¡Õ¿ ­n­ºe´ú ­ˆˆ¶¾4¬fKau§`u©`õ!«VVûÀŠˆˆ¶¡E´êZ½3´º€VDD»]ÊUV`EDDd[J«“Ó­î¡ÑÎ5¯‚Õ «ðY°ª•À -YÑf—“UL«¦¢•ÈêZQVÓ•au–‚UÛÁêXÑÖUJ«úÊ´ò…VÑp4ÊÐ -[mW¥°W=V «7ÀŠˆˆ¶­W¿—VhED´u-‚Õ°«[`EDD»Ø¯Ñªëhåi5…VDD[Ô|¬`EDDôÏóiu¡Õ@Ñ*Ô´ú!´C+"¢í*ïª_ƒU§V{ÀŠˆˆ¶©jZµÑêAÓªŸ¡ÕÏ -Za+"¢ ­V «Q ¬îÒ°z¿Vû ¬mKyZ½ZÕV Õ7m+G«aŽVY[­ûѯ”‡Õ4«H`åWÂê¿*X½VDD´¥iu°˜V7yZЊˆhûš—Âj,°úQ«¯VŸílÏ Õù*´š”Ð -[mXyW9Xý´° -V^ «ûE°j+""ÚY­J«/EZEÃÑ(¡ÕZmt a5´°ô³°ºÌÃêЪ¬ˆˆhzUA«ÆZÝfhå;ZýZ­²¶Z÷I "¢•›—ÀjR«ž†U7 «÷ÀŠˆˆvµgÑêÂÒê.G«ÐÒêg­°цT€Õ4«ÀÀJ¹êÁÂꪫ°""¢]+E«ýÕiõ5¡•gh5Œi5VDD›ZÞUVc «Ñh•ÁêÚÂê XÑN÷|LÓªû`i5ZaUÑê Z½„æYX¥]¥`%®Faø -V½Ç¬®¯. °ê¬šÀŠˆˆÈUE«ZŠVb+G«ó‹­ÄVŽVCK«±¦Ub«9¶""Z{YWe`%®J`åiX‰«VÊU7ÀŠˆˆh…Ò´ÚÓ´z§ÕQ†VŸÄV)Z‰­­ü ­¬­&ÚV1­ž Ñz›gae]5U®r°Š¢0X ,¬º÷YX)W9XµQ®å´:,ÒêZÛªû l¥h%¶R´Šr´Jl5ÇVDDë+ç*«‰‚•uÕ0 -ÃÀXõ{EX‰«Î¬NOX5€Q¦jZÕͦЪSI«û®¥U_Ñ*P´R¶R´²¶Ši…­ˆˆÖVVÖU%°ò¬ÄU)X‰«.X¿Õ°jYXXí+"""ÕZµ­¬­Š´[ ­ü ­´­ ­[A+"¢µ”s•ƒ•v••¸* -ÕÀÀJ\Õ5®ºÊÃê(U­¦\¬ˆˆˆ’Ъ‘ÐJlehu.¶JÑJÙJh%¶ -‚0R¶2´²¶Ši…­ˆˆþ~󬬫 ¬´«¬Â0ðVýž…Õ}¬s°z ¬ˆˆˆR-¦UKÓJl•¦ÕeÊVšVý­¬­ ­°ÑÚʹÊÁJ»ÊÁ*Ò°ò¬¿a¥]å`ÕX5›:°"""*íUÊV ­Ò´:ZL+±ÕÀ[…ÊVŽVÖVЊˆh-U¸ÊÀʺJÁ*X ú -Vâ*+ãªVïN-¬Ú%°ÚVDDDq9Zí+Z‰­jµ˜V‡‹h¥l%´­E«ØV†VØŠˆèï7¯€•v•ƒ•¸* |«ž•uÕuV'Ç1¬ÀŠˆˆhAEZ½¶´ª7šM¡UÇЪÊVŠVb+Ï÷ƒ0LÑÊÚj†­ˆˆþn®2°²®R° -q•ÀJ\µVo¬Z‹aµî)#""z -£U[ÓJlUI+±•ÐÊóƒ ŒR¶2´š–Ñ -[ý¡Ê\5s®J`†/°êkX‰«Ò°²®²°:LÁêXU—¦Õ^ŽV K+±U­”­„Vb+E«0E+k«Y™­Ö}=ˆˆ¶²y¬Œ«&)WEaøžÀª÷h`•rÕ……Õ»S«ŽÀª©`U«)W+""¢Ê–Ъ%´:´´*µ•¦UOh%¶Z¥l5ÁVDD¯*WMµ«X…Vƒ¾ÀJ\U«“c «¶†UÝÂʸj?å*`EDDWA+e+K«Ž¡•تœVÊVýÁ@h¥l•Ðjlh5-£¶""ú•ºjVt•‚•ï ¬zVÚU¥°z{daÕVDDD+VF«7šVõF³Ùj·5­ÄVe´Ò¶Z‰­<±•Ъh«¶""ú£å]õd]•‡•¸J`5X‰«,¬ -®2°:XµŠ°ÚVDDD•åhel•£•ØJÓªh+E+e«þ` ´R¶2´Ò¶š`+"¢?ݪ®R°ò=O\¥`%®*…Õ鉆UÇÁª¬ˆˆˆVíUÊVyZ5š­–ÐêÐÐJlU¤•²•ÐJl剭„VÖVŠVcC«iB+lEDô;›ça5³°šhX)WX‰«VÕãw «ØUYX¿U°j·[Íf£^W®VDDD+–¦Õ^šV5G«Ž¦•Ø*K+k+E+±U0ð|lEDô÷ªtÕT»JÃJ»*Ò®òÄU+qU -V‰« ¬Ž,¬Vo¬öÑ -UÐJlU¯7šÍV»­h%¶R´ÊØÊÒJÙê±'¶ò܆ÕKßcŒ1ö­’VµŒVŒV¡Ò -¶*Ó*µh[E°U’ŒÆS¶ºP[]ÑVŒ1ö´ÝrÕõ”«.SW尒ᮬઠV…«rXµ[+X«õ[°Z!¬cŒ±;š¥Uj« ­ hå…V°UN«ÂVJ+±U0­†Éh”ÑŠ¶bŒ±çé.W)¬2WGIWEp•ÀJ\5 +u•ªVVaµ±!®*`µJX1ÆcK6—VëB«´r lZå¶*h¥¶­`«¶J’Ñ8³•Ðê\iE[1ÆØSUíªVS®:Wàª8Vp•Â*wU«nGaå+c‚F«aÅcŒÝ¿•[e´‚­66”V´ -…V°UA«ÜVB+±U0ˆbØjT²ÕmÅcOÖR®RXžª«†q‰«+qU«ÌU«vK`åf`•ºŠ°bŒ1ÆîU%­j­1 •­`+¡Un«ŒVj«£c±UÅCµUJ+ÚŠ1Æž°Å®Êa•¹j¤´[e´ò lÕí©­”V©­@+±ÕÑq•­þÒVŒ1ö nîã*ÕÄU}q`¥®RX©«VÝ`Õ Cï« €U-‡]ÅcŒ=¢y´ª+­1Ö9ÂVíl%´Jm%´R[툭N`«(ЇÃdt[WŒ1V´Œ«.RWýQWGI2Œãh0W©«VâªVâ*ÀªÝ¬¼wVa%®RX¥®"¬cŒ±GVa«šØj]mÆZç=h[u{j+¡Uj+ÐJlux[õi+Æ{lr`WVâ*•ºJaÕíVÍ0ôÎYc‚†ÂªNX1ÆcOX­>­êJ«F`Œu·°U»[ ­ÔVB+µÕÞ¾Øê¶ ¢8&b«SÚŠ1ÆîY«ª]õwÚUÃ8Šý¾¸ -°‚«Vê*•¸ -°j·+ïµ&ÔUë⪠V%WVŒ1ÆØÃª¦U­ U`¬uÞƒV°U·§¶­R[ýÚQ[ˆ­N¦l5 ­îe+âŠ1ö®{ˆ«FÓ®:WVâ*…•¸J`ÕíVÍ0ôÎYc‚†Âª.°J]U†ÕKŸcŒ1öz[©¶•Ð*µ•1Ö9ÂVílZ©­@+µÕï]±Õ¡ØªßDQ<\ÞV×´cŒÍ°êfšU ]• ã8 àªcqÕ¾º -°RW ¬à*ÀªÝ¬¼wÖš €U°bŒ1Æž¼y´ªg´ -ŒµÎ{Ð -¶êöÄV •ÚêÇOµÕžØêh [].¶qÅ{‡U±j±«NK®:Wˆ«+q•ÀJ\Xu;€U3 ½sÖ¬ÄU -«*WVŒ1ÆØã*Ñj5§UMh%¶­Œu·°U»[mn©­¾|U[ýÚ[í‹­Ža«Af«Ñm[]”lõO¥­ˆ+ÆØ»êf¾«®îtU4è÷ÅU‡âª]u`%®Xmö«v °òÞY+®RXÕçÁê¥Ïˆ1Æ{ý­”lµ–Ûª.¶­ÄVÖ:ïA+تۃ­¶?ª­¾}W[ý[ˆ­NÔVñ½luM[1ÆÞe7Kºê¼p`5—]u$®ÚWVâ*ÀJ\µ WVÍ0ôÎY#°W­‹«+Æc칪¦UMh%¶­Œu·°U»[mŠ­>}V[ýø)¶Ú[.o««¶"®cï ¬ºËUÃÜUÇâª}qÕŽº -°WV½n®¬¼wÖŠ«VuU•«+Æcìi*Ñjb«ºØ -´[Yë¼­`«.lµ¥¶úòUmõKlµ'¶:‚­ú°qÅ{OÝÜåªËiWýWVºê@\õ[]õ]]XmmVv® -½sÖ¬6RXÕªaõÒ'ÄcŒ½VJ¶*hUKiµ!´2Ö9ÂVmت[mT[}S[툭öï´Õyf«ËÂVÄcì5‡U׫®2VÍuÕ rWŠ«vÅU€\XÁU[p`Õj6CïµâªFêªzÙU„cŒ1ö•h5±U=µUCle­ó>lÂVØjSlõ鳨êû±Õï¥mu±œ­ˆ+ÆØ›k!«¹jTåª=qÕ/uÕWuÕ6\Õƒ««0ôÎY#°ÚHaU+Ãj…°bŒ1Æž¥•’­ -ZÕRZm­Œu·a³[ua«­m±Õ—²­`«ã9¶úsËVÄcìý4»peVý“³*sÕßå]õM\XmmnÂU¸ªzï¬W5RWÕ W•aõÒçÃcŒ½½nÓ*µU=µUCle­ój«6lÕ[}[}[ý[íVÙ*Q[f¶ú[i+âŠ1ö¦›¶‚U×V]MX5åªñ-WÁUûâªqÕwqÕgqÕ\Õ…«Zê*gQW)¬j¬J®"¬cŒ±ç¨D«Õ‚V5¡Uj+c¬[5a«lµ)¶ú$¶ú&¶úµ´­Î3[Mãêz.®¨+ÆØ«niV•\u¶ØU¿ÅU?ÄU_ÄUÛpU®jÃU¡¸Êš@a%®ª®"¬cŒ±ÿ¢•’­Ö -[ÕÅVJ«ÀX±U6[°U¶Ú*lõ=·ÕluxËVŠ«3ÁUa+âŠ1ö滵f³¬š¸jšU%WÅ \õU\õ1sU®j†Þ‹«LæªuqU«Õ¬^útcŒ±·[™V«­jB«ÔVFlåÕVmت[mÃVŸ [í,a«?…­.flµWÔcìuu{Ææ³jÖU§w¹êgÉU›©«ZÍ0ôΉ«2XÕV™«ÖJ®"¬cŒ±ç¬l«µÂVu±•ÒJlåÄVMت[mf¶ú²ÀVÑ”­N3[帺¼®¨+ÆØë¨b¿ªYu•³*u•²ê¬`Uêª~iW}W}‚«¶àªnî*ï¬-\µ.®ÊaµJX1ÆcÿaeZ­´ª ­r[Y±U6[°U7µÕÇÜV?¦lu0m«¸ÒVÀuÅû·PU·YuY°êWíÃU»Ó®ú WmÃU=¸ªÝj6ÅUÎÕ†Àª.°Ê\µFW1Æcÿqe[­¶ª‹­6ÔVFlåÕVÿ²_êmãZ…?7ɶä"wõÞ\'‰KìLòþuy‚@€’3¹qÑZ±Ïù”­Î#[5"[µ½¶ºÖ¶JqõhàêEãê_?®Ð}œ|ƒ•gÕÏ«RW=®ŠX•¸jž¹jàqÕq檪¸jG\UWiX­+""¢¿žM«õ”V[B«rL+±ÕžØêPÙê´ÐV—b«ÇV†­žµ­^…+tED﫪 -°êÅ`Õ£Á*íª«ÔU£ÄU]ÃUgÊUµÃƒåªJæªRêª \EDDô&Ù¶ÚHmU2mUÍlu¼¤­WÚV÷b«×àʯ+xEDï!ÿ@½†UOÂ*×U×Wµ"WÕ•«N´«ö•«v#Wm'®Ò°ZVDDDo”M«õ”VÊVÛ±­*ÊV‡µÔVy['Óil«+m«W‚«§W/~\ý\ˆ+xEDoÙbUý2Ue³*qÕ£¸êÞpUĪœ«ú¶«Î•«Žj‡‡âª=åªqUW½— -lU[E´R¶Ú7luV`«¹ØêÚ±Õ½ØêQÙjI\u¯ˆèoÜ#ª±êÁ`•vÕåå|6›NB®:µ\U5]UŠ]¬ˆˆˆÞAk¶­6R[•l[íe¶:ñÙj`ØêRlåàêa®¼º -ó -_Ñ_)¼B>U°ê)e•íª«¼«:®«ŽMWUbWm'®ÚÂUDDDï&›Vë)­”­¶[US[ylÕU¶'“él&¶ºrlåàêÙÂÕWËê -_Ñÿ­¢é±TõËVUˆUª{‡Uâªù|6NÆãÑ0ìªÚáÁvU «²À*sÕ†í*`EDDô6­-c«Š¶ÕáR¶š‹­\Ý ®ó¸z1pÐU!¯ýÁÌÍ/¯ª~ªò³êA±ÊvÕ¥íª^«ö]W•bWm¦®ZÇUDDDoŸ‡V©­Êb«ˆV…¶j)[õÃáh<žL§b«KÇV®ž®2]ý0tõ3 «E¼BXDôZ¼0¿ -UµUßV‰«f³éd2†ƒÔUÍe]µåw°"""zËÖ<¶ÚŒmUZÞVÃV“él&¶òáêa1®ÂºZ‚W(‹ˆ–léA ¡Ê£*«î5«2WE¬šÏ¦¶«ÚAWí¥®Úv\åÂê­Ï ÑʰՖ×Va[õúƒÁp4Jl%¸Êlãê[†«GW¶®þ¯À%ýæn¸óó3 ª¦ª|¬úb°J\5WÇ£ápÐï÷ºÅ®ªf®*¹ -X½ƒ<´2mµ]`«ó‹z½Ñl¶Úmm«áh<žLW‘­àê)ÁÕ]åxõÛÀ""Z¢Üäü,VU˜U_s¬WM&ã‘áªV«ÙhÔ/ü®J`»ª»jW½ÛÖŠlU.°Õ©m«n¯ßOl5[9¸ú’âêÞ•¡«A]yx…¯ˆèÏæÙªòªzÎT•g•骈UÓÉX\5ô{½nÇpÕÙbWmY®ZÇUDDDï/Ÿ­6c[• -luœÙªÑlµÚN·×ëÑàj*¸Ò¶òáê!ÁUª«SW^^ù|±ˆè?æ_ªüª -±ê‹Usa•¸j8ôû½n·Ón·š™«N–tÕ†ã*`EDDôžri¥mµ•ÙjǵU-³Õ…e«þ`8[ ®æ)®noý¸z4q•èêÅѕͫ°0½¢àØ{ã¢Ê§ª'CU!V‰«"V†ËUõúÅyâª#\EDDôrmµQl«}ÓVgb«z£ÙlµÛnWl5ŽW‘­,\Ý¥¸*ÐÕ³¥«ŒWKû -iQ¾Å‹álLUyU…Y¥\³j"¬ -«zÝN§Ýj5‰«NWâ*""¢OÑoÛêDlužØªÕîtº=ÁÕPp5Y -W ®b]}7t•ò*ì«åˆED,7*ÙàxQU¤ªŒU7 «ÄU«ÄUqU·Ûi'®ºH\uìwÕ¶áªÍÌUÀŠˆˆè½·öj[ˆ­ŽÄV§b«‹z£!¶jwº]±Õ@låÁÕ­àÊÕÕc^W9^¾ò cÑ+òmÈ¿S٨ʩÊaÕÝ]ŽUSŪ¡°ª×툫šÍF]\uVìª2®"""ú ¹´ZÆV‡b«c±Õ™ØªÞh6ÅVnOp54q%¶ -âJë*ãÕ³Å+¿¯ÂBZDäV´Öªd¦ò ªHUšU׫ÄU«ª®°ªÕlˆ«ÎÅU'⪚rÕ^ÞU ¬62Xá*""¢’×V›‹lU[ˆ­ÎÅVfKpÕ\ 2\E¶šÇº\Ý®|ºz°t¥yåñ• ¬EÆ""rsGÄØmª<ªU™¬ºõ³j$¬ê «:Â*qÕ…¸êT\u$®ŠXµ/¬z…«€Ñ»o[m{lu$¶:[]ˆ­WÁUßÄU¬+…«kÁÕ­+¯®¯¾;¼²€•'Ò""o±ð‰*5•‹ª€ªîDU7¢*/«ÄUmqUĪº°J\u,®:L]UÁUDDDŸ«µWÚJá*¶Õ±ØJpUW¸j ®z\Eºº]Ý9ºúfèÊÇ+X¶°ÂÈ""rr×#O*e*ª U)VÝ -«®…U¢*“UCÍªŽ°ª)¬WE¬WÕ,Wí»jW}¸^g«jb+ÁUd+ÁUd+ÁUd«"\] -®®W^]e¼²|å–ÇXX‹ˆÒBñÚ‡T‰©lTåTu'ªºUŬšùYÕV‰«"V‰«"Vå\µ#®*ã*""¢OÕklU±l%¸Šl%¸Šl¥qÕõà*ÖÕ•èêÆÖÕCW1¯ ^i_eÀr‰U -"Zí|{ñì’Ê2UU–ªnEU×¢ª˜U¢*«ZŠU⪈UÊUšUŽ«J \¬ˆˆˆ>XËÛjWÙJã*¶•à*²U1®¦ -W—‚+Ÿ®|¼ÊË"–YDDù¬éøîÊ0•ª¯ -U¶ª®”ªbV%ª²YÕÔ¬WŬJ]UÕ®ÚÖ®ÚÂUDDDŸ«µ%lU[í([US[)\E¶²qÕqpëjÒ•Å+ÃW° a9ÆÂZD”æ]‡gc>žlR¦ -¢ÊPÕ\Tf•¸*a•¸ª–°*vUW}þÚªÛ*•ت¢l¥qÙ*«v‚«TW‚«©àÊÑU˜W‰¯4°Ra9È -B‹ˆV7w$¾òh’Ê0•‹*ŸªfJUaV‰«V¥®ÚS®ÚÝu\µ‰«ˆˆˆ>aŶڲlµ«lµ—Ú*„«DWW®®2^Ý9¼R¾²• -Ë2–ZDDÎLd¢'åÞc*UUM”ªÂ¬W™¬ÚVÅ®ÚÁUDDD«QÀVy[í([UÅV¯ÀUPW ¯,_å• -Ë4–ZDDOÎNdro’*3UU®ªFZU!V‰«jµÄU{⪊r•bÕbW+""¢_­6S[)\‰­4®ÄV q•èj$ºŠþ“XW…¼R¾RÀJ„¥‰e"Ë'-"¢Gg&îmP)Qe¤Ò¦²Qe«j¬T³J©ÊϪÈU«ªÂªÔU%\EDD´-¶U)³•ÂÕžÆU­W±®WZWcCW6¯R_)`YÂÒÄ2å“­|öF¤ÓñÕ•"Uj*UWª U µªbV‰ª -XµŸ°ª"¬Ê\µ¥\µ«ˆˆˆ>{ lµeØJáª*¸Ú׸:òã*ÖU×£«¯,_)`YÂÒÄ2å‘­töÜšžJDe“JL5S¦JP¥T£J«ª­TÕPªŠYufÕn̪íÿ±_7ÊUWFKXAC—SIÅNòþßÛ3ݧf4(2WhÖz‡³ë|)«.§¬ªºêLWÀ ÚêYn«óÔV—©­R\½\Ž«÷‡¸:ÖÕ§º®Ú¼ú{Ê«ÜW%°RaM‰55VÕY£Úv§Ù„ÿ–µøwªcQUI57U‰ª\U_rUý%UÕO‡ª:fÕ»•¬ºNYõÕUõþPUwdÕUɪ‹œUº -ökÔV!®.¶ÄÕÍ!®R]½u•òêXW‡¼ú’óªê«c`…š+WV ­ÆoÀÓ·4¿–˜WãŸ9¨ú¤š›ª‰ªTU?Ūºªêí¡ªÞªj”UÏCVÕ]u¦«`ŸÖÛjK\½9ÄUª«Ûa]Myõ×”W‡¾ª+VJ¬Y%³ÚØöª…¼±§RQå¤jšª‰ª®ªÞMUus¨ª•¬Ê]Ue•®€=;ÛWW1®b]Ý ëªÍ«Ï)¯ª¾:V*¬”XScåʪJ à ìC•S)¨ú¤š›jU±ª~ϪcUmÌ*]D[Úê"µUˆ«u\źçUè«*°Ra¥ÄškЬÐYÅ?€]êÆ ïÄ”S©§ŽAu,ªcR5MU¢jXU)«rUÉ*à+m‰«Ë)®ž§¸ºÎquG]•¼ú˜ò*÷Õ1°Ž…kj¬\YMkûV-Ã<Ózü­.ª9©æ¦ZˆªXU%«^nÉ*]´VÚªŽ«Ë)®®r\½ÌqÕÖU—Ws_åÀj kj¬\Y±´&a!¦ÍH=•‚êXT9©æ¦ú˜šªDÕmŽª¶ª~LUµ˜Uç+Y¥«`÷Î6ÅÕEW/R\ê*äÕû”WU_+VJ¬Y¥³²ŸÝj÷ Å—ÐSÇ ê“jnªUSUÝĪz•ªêeªª.«.YõLVa[ÝW×)®úºjò*öU¬PX)±æÈʙմ°sq¾Ì{ñ¹ ª’T±©š¨z›¢ª¯ª¡ªrV‡¬úa˜Uº -ÈÎîWW)®b]½Juõ&ÕU•Ws_•ÀJ…•kj¬\Y!´Æ¾OÔêé—‰ø<ƧTMRµM5GÕMŠªAU嬺\ͪg² -Xñµqõ|Š«Q]½NuU÷Õ»¹¯Ž -kJ¬©±Bfõ¹ìQ3 y+>†ž:UHªÜTmT½)QÕUUΪ‹Y¥«€…¶ªâê|Ž«q]ż:|0o漪û*V*¬¹±reÕ©C*ÔÔÜS)¨JQ•¤ÊM5GÕzUÉ*àalŽ«RWW±®^4u•úê¦ê«X©°RbM•++„Vë#°K+PvâCè©©¨š¤*MÕEÕBUmÏ*]¬:»G\•ººžë*çÕ«9¯b`õ…57VȬ6¶€«‡áCŒÛT©¨RR5M•£êÇ9ª¶U•¬þÛâj½®J^•¾Š kn¬RY1´Š°·órü©+ª”T¥©Q5¬ªY¥«€Ú/¢‹«B\µu5Ì«ÐWU`M…•«TV[À~5Ëð.OÆÛTSQ¥¤jš*DÕZUÉ*àam«®®º¼J}õ²ôÕXSaåÆÊ‘;  Q–b:¨RQŦê¢jsUÉ*à,ÇÕJ]õyÕ÷ÕX9±rcåÈjK àíÛj!ònÌCRUÕT}T­TÕJVé*ྺ¿¢«º®óªê«)°JbåÆŠ™5ª-`ÚY(5õ:¯H]TSRUM£êΪ’UÀ[‰«¥ºäÕXÓ³3VN¬YMhTâV” ™‹ªNªº©ª¨š«JVßÌZ\uu5Ì«XÓ³ÓVY£ÖxÕ®DXyTæ¤6ÕbT­V•¬Nÿj¬ÖU“W9°®® -«©¬¥Øv¬ßˆ0 ×MQ-4ÕWW•¬ÚàãÖUŸWm_ -«­¬ÅØöj0a@®Ú¢ÊMuÙ6UˆªXUƒ¬:õìOÖz\…º*yÕ÷Õ¨°šÈZ‰-`§'äyWT¥©JTm¯*Yü±ÿÇR]…¼*}«VY«µìÓh#∄m)I5nª*ªTp2wÕU•W㾊ÕFÖzm;5Z‰fIÂÆ„¦ZŽªQUÉ*à[½#M^-öU ¬.±ÖJ Ø»ñ`\,UÝTMT©*à±ØRWu^ÕÕ$ÖbetÚù¨‹ªNª¶©†Q¥ª€Sþ']^µ}ÕVßX’ 8Z߆vJλ±ÙUª -x ÆÊ ¯úÀê -kciû´4ý¸tIµUª -xL–êjW£ÀZ­,€‘ñ’ŒFgq¡N=#‹Ï˰¯–Kk­»æbae–gIUÚʳX["  ³²)kM%ª€ïÄj^­–ÖlZŽÕ¢UÀ÷设ÚXXw»{pDð=Ûðíˆ,à~¶Œ¨žˆÍïÖ–ÜgH4ðÝë-¸SÀîÔð”zá¾µSÿ_ÀrêAxNý’ß©SÀcvê_ x¼N½Oü=8òmUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUöà@ÈÿµTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU؃ ÿ×FPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUa€ü_AUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU…=8$ôÿµ7 ÀX ¢[‡ -endstream endobj 113 0 obj <> endobj 115 0 obj <> endobj 121 0 obj <> endobj 122 0 obj <> endobj 123 0 obj <> endobj 124 0 obj <> endobj 114 0 obj <> endobj 125 0 obj <> endobj 126 0 obj <>/Shading<>>>/Subtype/Form>>stream -q -0 g -/GS0 gs -129.5558014 0 0 -129.5558014 181.8615265 172.3060913 cm -BX /Sh0 sh EX Q - -endstream endobj 127 0 obj <> endobj 128 0 obj <> endobj 129 0 obj <> endobj 130 0 obj <> endobj 131 0 obj <> endobj 132 0 obj <> endobj 43 0 obj <> endobj 110 0 obj <> endobj 112 0 obj <> endobj 133 0 obj <> endobj 134 0 obj <> endobj 111 0 obj <> endobj 135 0 obj <> endobj 136 0 obj <>/Shading<>>>/Subtype/Form>>stream -q -0 g -/GS0 gs -0 -0.4444444 -0.4444444 -0 170.9031067 196.9139557 cm -BX /Sh0 sh EX Q - -endstream endobj 137 0 obj <> endobj 138 0 obj <> endobj 139 0 obj <> endobj 140 0 obj <> endobj 107 0 obj <> endobj 109 0 obj <> endobj 141 0 obj <> endobj 142 0 obj <> endobj 143 0 obj <> endobj 144 0 obj <> endobj 108 0 obj <> endobj 145 0 obj <> endobj 146 0 obj <>/Shading<>>>/Subtype/Form>>stream -q -0 g -/GS0 gs -0 -192.0446777 -192.0446777 -0 181.4170837 277.4395447 cm -BX /Sh0 sh EX Q - -endstream endobj 147 0 obj <> endobj 148 0 obj <> endobj 149 0 obj <> endobj 150 0 obj <> endobj 151 0 obj <> endobj 105 0 obj <> endobj 98 0 obj <> endobj 152 0 obj <> endobj 153 0 obj <> endobj 106 0 obj <> endobj 154 0 obj <> endobj 155 0 obj <>/Shading<>>>/Subtype/Form>>stream -q -0 g -/GS0 gs -0 -192.6805115 -192.6805115 -0 181.4170532 277.7574463 cm -BX /Sh0 sh EX Q - -endstream endobj 156 0 obj <> endobj 157 0 obj <> endobj 158 0 obj <> endobj 159 0 obj <> endobj 102 0 obj <> endobj 104 0 obj <> endobj 160 0 obj <> endobj 103 0 obj <> endobj 161 0 obj <> endobj 162 0 obj <>/Shading<>>>/Subtype/Form>>stream -q -0 g -/GS0 gs -0 -226.1058197 -226.1058197 -0 181.4170532 294.4700928 cm -BX /Sh0 sh EX Q - -endstream endobj 163 0 obj <> endobj 164 0 obj <> endobj 165 0 obj <> endobj 99 0 obj <> endobj 101 0 obj <> endobj 166 0 obj <> endobj 167 0 obj <> endobj 168 0 obj <> endobj 100 0 obj <> endobj 169 0 obj <> endobj 170 0 obj <>/Shading<>>>/Subtype/Form>>stream -q -0 g -/GS0 gs -0 -226.2054596 -226.2054596 -0 181.4170532 294.519928 cm -BX /Sh0 sh EX Q - -endstream endobj 171 0 obj <> endobj 172 0 obj <> endobj 173 0 obj <> endobj 174 0 obj <> endobj 96 0 obj <> endobj 97 0 obj <> endobj 175 0 obj <> endobj 176 0 obj <>/Shading<>>>/Subtype/Form>>stream -q -0 g -/GS0 gs -0 -24.7455978 -24.7455978 -0 181.4173279 277.4232788 cm -BX /Sh0 sh EX Q - -endstream endobj 177 0 obj <> endobj 91 0 obj <> endobj 93 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream -q -201.013 187.633 m -202.285 208.606 l -202.664 208.787 l -219.709 216.957 231.084 235.257 230.734 254.049 c -230.676 257.172 230.37 260.041 229.823 262.617 c -230.142 263.221 l -230.818 260.426 231.094 257.412 231.167 254.049 c -231.584 235.028 220.046 216.638 202.853 208.397 c -202.702 208.325 l -201.421 187.218 l -h -W n -q -0 g -/GS0 gs -0 -41.4666176 -41.4666176 -0 192.424408 239.1365662 cm -BX /Sh0 sh EX Q -Q - -endstream endobj 94 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream -q -160.132 117.862 m -161.043 117.571 l -181.401 97.088 l -202.254 118.031 l -200.972 136.846 l -210.806 146.728 l -211.421 146.728 l -201.42 136.676 l -202.702 117.862 l -181.401 96.471 l -h -W n -q -0 g -/GS0 gs -0 -30.4885464 -30.4885464 -0 190.1102142 125.2657852 cm -BX /Sh0 sh EX Q -Q - -endstream endobj 95 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream -q -200.837 156.78 m -215.94 171.986 l -216.55 171.986 l -201.449 156.78 l -h -W n -q -0 g -/GS0 gs -0 -12.7799854 -12.7799854 -0 204.5773315 169.2155609 cm -BX /Sh0 sh EX Q -Q - -endstream endobj 183 0 obj <> endobj 180 0 obj <> endobj 185 0 obj <> endobj 186 0 obj <> endobj 184 0 obj <> endobj 187 0 obj <> endobj 188 0 obj <>/Shading<>>>/Subtype/Form>>stream -q -0 g -/GS0 gs -0 -12.7799854 -12.7799854 -0 204.5773315 169.2155609 cm -BX /Sh0 sh EX Q - -endstream endobj 189 0 obj <> endobj 190 0 obj <> endobj 191 0 obj <> endobj 192 0 obj <> endobj 181 0 obj <> endobj 182 0 obj <> endobj 193 0 obj <> endobj 194 0 obj <>/Shading<>>>/Subtype/Form>>stream -q -0 g -/GS0 gs -0 -30.4885464 -30.4885464 -0 190.1102142 125.2657852 cm -BX /Sh0 sh EX Q - -endstream endobj 195 0 obj <> endobj 178 0 obj <> endobj 179 0 obj <> endobj 196 0 obj <> endobj 197 0 obj <>/Shading<>>>/Subtype/Form>>stream -q -0 g -/GS0 gs -0 -41.4666176 -41.4666176 -0 192.424408 239.1365662 cm -BX /Sh0 sh EX Q - -endstream endobj 198 0 obj <> endobj 92 0 obj <> endobj 88 0 obj <> endobj 90 0 obj <> endobj 199 0 obj <> endobj 89 0 obj <> endobj 200 0 obj <> endobj 201 0 obj <>/Shading<>>>/Subtype/Form>>stream -q -0 g -/GS0 gs -0 -166.2333221 -166.2333221 -0 181.4170837 216.1957245 cm -BX /Sh0 sh EX Q - -endstream endobj 202 0 obj <> endobj 84 0 obj <> endobj 87 0 obj <>stream -H‰ìÕ ²·EAzÿ›vÈ I$ý‡ *s…s_ÿø0žRÿZ÷Ü…÷Op˜9gÞŸÀ>ŠKÿ™ú[\V}à¿V€‹¨Ïù³êïp¦úz¿«þ~‡¨ÏõXõרV} gª¿-ÀFꓼNý¥ZõnÔ_`½úòöêX£¾¶[©`¦úÆîª~€áêú¿ú…©ÏéIê·xK}DÏT¿À êÓyºúýVÌë¨_à;õ¼žúE>QŸÇ «ŸàõY¼ƒú~ª¯áÔo Ü]}ï¨~sà®êëwgõÛwS_=~`™úÞñ·ºàúê;ÇŸê"€ ««»®¨¾l|­î¸”ú¤ñˆºàê[Æ3êZ€ÃÕGŒçÕͧª¯/«ÓÎSß-ÞU¤>XŒQw¡>UŒT×ì­¾QLPG쪾NLS§ì§¾KLV줾H,Qgl¢>F¬S·äê3Äjuq@¨>@4êî€D}z(Õõ‹ÕG‡^Ý °L}nØE]"°B}iØI]#0Y}dØOÝ$0M}^ØU]&0C}YØY]'0X}TØ_Ý(0L}N8E]*0B}I8I]+ð¦úˆpžºYàuõýàLu·ÀKêÓÁÉêzgÕWƒÓÕO¨×Pw <¦¾\GÝ2ð­úLp5uÑÀWê ÁÕUŸ©¯WU— | > \[Ý7ð»ú&p}uãÀ¿ê{À=ÔÿSŸ¨¯wS÷V_î«^?wU—·TŸ{«û‡»©7õàNê½Ã_êÀ]Ô[‡¿Õ[€;¨w¿ª÷WWoþTo.¬ž7|¬^\S½lø\½¸žzÕðµz!p-õ¢á{õJà:ê5Ãcê¥À5ÔK†ÇÕkóÕ+†çÔ‹ÃÕ†gÕ›“Õû…WÔ»SÕÛ…WÕÛÕ»…wÔûÓÔ›…wÕ‚“Ô{…êÁ)ê­Â õ”à õRaœzM°¿z¥0V½(Ø[½P¯^ì«^'ÌQ/ 6UOf©·;ªw 3Õû‚ÝÔ›„ÙêÁNê= -õÎ`õa‘zj°‡z‰°N½6èÕ+„µêÅA«^ ¬W¯Bõü Pï*õö Ro -õî Tï–«G­z°V½8èÕ+„uêµÁê%Â"õÔ`õa…zg°“z0[½1ØM½I˜ªì§^%ÌS¯ öT/&©§»ª· 3Ô»‚Õû„ÑêMÁîêÂPõ `õJaœzMp†z©0H=%8E½U¡Þœ¤Þ+¼­œ¥^,¼§^œ§^-¼®^©.¼ªÞœªÞ.¼¢Þ ¬ž/<¯^ œ­^0<§^ ¯1<£Þ \A½cxT½¸ˆzÊð˜z)põšáõLàJê=ÃwêÀÕÔ›†/Õë©W Ÿ«××T/>QO®ªÞ6|¤Þ\Y½oø?õ(àÚê…ÃïêEÀõÕ+‡_Ôs€;¨wÿ¨Ç÷P/~ª—÷Q¯~8ú°R½w¨7wSož›«÷S¯ž[«ó‡;ªwÏ}ÕíÃ]ÕÛç¦êðá¾êõsGuõpoõàvêäáîêÀÍÔÁõàNêÚ¿Ô—€Û¨S~ªo÷Pwü£>ÜA]9ð«ú"pyuâÀïê›ÀÅÕª¯WV× |¤¾ \V6ð±ú6pQuØÀgêëÀÕU_©/—S' |­¾\L4ðúJp)uÎÀ÷ê;ÁuÔ-©oQ‡ <ª¾\B1ð¸ú^puÄÀ3ê‹Áéê‚gÕWƒ£ÕùÏ«ï«ã^Q_ŽU§ ¼¦¾œ©îx]}?8P-ðŽú‚pœ:Yà=õ á0u°À»ê+ÂQê\÷Õw„sÔ­cÔ·„CÔ¡£Ôׄ#Ô™ãÔ÷„Ô‘#Õ…íÕ‰cÕ7…½Õ}ãÕw…Õq3Ô—…mÕisÔ·…MÕa³Ô×…-ÕYóÔ÷… ÕQ3Õ†ÝÔE“ÕG†½Ô=óÕw†Ô1+Ô—†mÔ)kÔ·†MÔ!«Ô׆-ÔëÔ÷† Ô+Õ‡\ °V}shÕýëÕw‡PP¨/™:= Qß"ux@¥¾>$êì€N}ÔÑ¥ú±\Ъo‹ÕÁµú -±TЫï Õ±;¨/ËÔ©{¨okÔÛ¨Ï+Ô•;©/ÓÕ‰{©o“Õ»©¯SÕyû©ïÕq;ª/ÓÔi{ªo“Ôa»ª¯SÔYûªïÔQ;«/ÃÕI{«oƒÕA»«¯CÕ9‘‘ uoØ@+©‡Wn‡L ˆ7Ìȇ@ëHˆ÷L*ˆµêŒXGD¼kZC¬SGÄ:2â}+b:!ÖÑ#Ììˆê€XHH 13$¦«óa%%1ÆÌ’˜¬Ž‡¥¤Ä 3Sbª:ÖÒ£Ìl‰‰êpXMKŒ2¯%&ª³a911̼˜˜¦Ž†€˜fVLLS'CAMŒ3«&&©ƒ¡¡&Æ™S“Ô¹PQą̃‰IêX訉aÆÇÄ4u,„ÄÄ0£cbš:Rbb˜±11M -111ÌȘ˜¦Î„œ˜f\LLSGÂÄÄ0£bbš:¶ &†ÓÔ° 11̈˜˜¦Îƒmˆ‰aÞ‰iê8؉–eÌ}b‚: ö¢%Fu£¬ƒíH‰AF^*†©³`GJbˆÑçŠ!ê,Ø“Žá¿ìÖ vã8ÁéýozŽ]®ê®Ÿ-Š""v |à=±YœT? -–åqQËÅÓê'Áʼ"ι_<¡~,Î#â´Ñ+Æ!õsàxBœ4gÍxHýxÞgÌÝ5>Q?`õÖñ¡~À.êµã]ý €mÔsÇ»úû¨÷Žÿ}`¦zñ0úÀTõæm¯~ÀnêÕÛ\}~`?õîm­>>°£zù6VŸØR=}«Oì©Þ¾mÕ‡vU¯ß¦ê³ûª÷oKõÑÕ ¸¡úäÀÞê ÜN}p`sõn§>8°»z7SŸ ÞÁ­ÔÇ0ûÕ§xSoá6êC|S¯á.ê;|S¯á&ê3|Wïáê#ü«^Ä Ô'ø¯zo¯>0ÀÏêU¼»ú¾?«WñæêóüªÞÅ[« ð»zo¬>-ÀŸÔÛx[õaþ¬^Ç»ªï -ðgõ:ÞT}V€¿©÷ñ–ê£ü]½7TŸà3õFÞN}P€ÏÕ+y7õ=>W¯äÍÔçøJ½“·RàkõRÞH}J€GÔ[yõ!RåmÔ‡xL½–7QŸàQõ^ÞB}D€ÇÕ‹yõ ލ7óõÕ8¢ÞÌ—Wà˜z5_\}>€£êÝ|iõñ«‡ó¥ÕÇ8®^ÎVŸàõv¾¬úpÏ©×óEÕgxR=Ÿ/ª>À³êý|IõÑžW/è ªOpF½¡¯§¾Àõ†¾œú`çÔ+úbêsœUïèK©pZ=¤/¥>Àyõ’¾úTW¨·ôeÔ‡¸F½¦¯¢¾À5ê5}õ™®RïéK¨pzQ_@}"€ Õ“úê\©ÞÔåÕ¸V½ª‹«ÏpµzW×V_àjõ®.­>Àõêe]X}€êm]W}€êm]V}€1êu]T}€Qê}]S}€Qê}]R}€qê…]P}€‘ê]O}€‘ê]N}€±ê•]L}€Ñê]K} €Ñê]J} €ñê¥]H} -€ê­]G} €ê­]F}€9êµ]D}€Yê½]C}€Yê½]B}€yêÅ]@}€™êÍíÕ˜©ÞÜ\}€¹êÕÕùf«w·Uט­ÞÝT`¾zyCuz€B½½º<@¡ÞÞL Q¯o¥îШ×7Rg¨Ôû›¨£tê.ÔÍ:õêä¥zƒ§«ƒ´êž­î ЪWx²:7@­Þá¹êÚµz‡§ªcôê%ž¨N °‚z‹ç©K¯JØK½ÅÓÔ¡%7åaÿ]¹Ä3Õ—¤7åe&™àùêÌKÒ‡›ò²?7}€ uä% ÄMyÚ_™»¿ºñŠâ®<í¯LßJxEqWÞö×fmo§.¼ ¸-oûkS†·T^HÜ—Çý€ Ã[ªó.H%îËë~ÈèÝmÕu×#7æu?dèèÖê¸ëщ;ó¼3ptsuÛåèÄ­yß6¹½:ír„âÞ<ð šÜ^v9Jqs^ø£†LîꮫQŠ›óÄvýÞ.¡Îº­¸;OüqÏí"ꪋъÛóÆw騮¢Žº±¸?ü€ ÇvuÒŨżò#.ÛeÔE×¢ð̹fiR]‹^ìÀ3?æ‚¡]JÝs)z±ïü˜Ó3»–:çRcúA'gv1uÍ•Æ&¼ôƒNìjê˜+QŒMxê‡=¿±ë©[.D2vá©öäÀ®¨N¹Í؆·~ÜS»¢:äBDcûžØ%Õ×!ûðÚŸqt]Ug\‡llÄkÊ¡•XV]q²±Ïý)ÇfbQuÄeèÆV¼÷çŠ%Õ W¡[ñÞŸtt)T'\†rlÅ{Öá©XMpÒ±þYÇ·b1uÀUHÇf¼ø§=±+©ó­B;6ãÉŸðL¼uÔõ!»ñäOxn0QÇ[„zlÇ›?ãÉÉXBÝn ê±þŒg7cuº5ÈÇ~¼úsžî—«Ë-A?6äÑŸsb6Zu¸5Ȇ¼ú“NìFªî¶Ù‘gÒ™áÕÙ–  ;òîO;•0SW[„lÉ»?íäv4êh+Ð=yøç]BÝl²'/ÿ§#ÎW'[€ŠlÊÿÂ2Wl2²)/ÿ -ç+NV[€ŒìÊÓ¿Ägªs-@Gvåí_ã’ŽóÔ¹zB²-oÿ"ׄœ¤ŽÕS’}yü¹(äu¬œ’ìËã¿ÌU)'¨Sõ´d_ÿe.K9^*§%óú¯s]ËÑêR5-Ù˜ç¡+cU‡ª©ÉÎ<ÿ+]Zs ºSLM¶æù_éÒšãÔ™jr²3ïÿZ÷¤®Ó“­yÿ׺ºçu¤˜ ìÍp±ËƒP7j ÊÞ|WPôju¢˜¤ìÍp¹I/VjIÊæ|—‘ôRu –¦lÎ'0À˜¨×©û¤Dew>E½J§¥*»ó 0(êUê<)UÙo`ˆaY/Q×)ÉÊö|CŒËz:NIWðŒ1°ëiu›’®lÏG0ÈȰ'ÕiJÊ‚`”¡eO©Ë„”ÿ}†[ö„:LHZð 4ºí³ê.!mÁê4ºí“ê,!qÁŸŸ¡†Ç}J]¥#.øÆšP÷¸:JG^øÇê5¡îqu”޼à;mJ߃ê&}áŸYBý+;súR'É o|ƒM -|@]¤"0¼ñ!Œ6«ðÃê ‰áa¸i‰T÷¨H o| ãMlüˆ:GEdxçCobãGÔ9*"Ã;_Â3#­®Þùf˜[ù uŒˆÌð/aй™?W·ˆÈ ï| -sÌîü‰:EDhøÆ§0ÉôÐU—h | “ÌýuˆˆÒðoa– ôŸÕ!RÃßÂ4Eê?©;$¤†>†yšÖ¿©34þ…‰šØ¿ª+$Ć>†™ªÚ?©#$ä†ï| 3UµRGHÈ ßù¦ÊrÿGÝ  7|çk˜+ìý]  8üàc˜, ¾qwÁá;_Ãliñ]«K?ø¦k“o]røÁ×0_Ü|Çèuò›³,_Ã|’Ïß3:«ª?†=?Å'kƒ¿«Àwõ·°ç× ø\iïuøP -oê½g*kÿ«®ßÔ_›ºAAï™ÊÚÿª+À»úCø¦®P{¢0öOêð¦þ>ÔbOÓ¥þEþYç{¨;´ž&Ký›º,ô=Ô!æ“z–¬ôïê°Ð÷P—H=IúOêPÿQ§˜Oè9¢ÎVÇ`{õ'ð“:Æ|:OÑdþ›º»«¿€ŸÔ1æ“y†¤òßÕ9Ø\ýü¢Î1Ê$‘?SaoõûÿEc>•Ç+ÿŸ}ú@®-‡a ZÞÿ¦§ÊãŸìn س5¨—è a>ÿè íÒXHü$ŒÑÇÿ¤]«õ~n¾èÛ€NÒ.‰Åú@G [ôé?DGé–ÀZí}¡³„+úò¢£´K`©î¼ÑYÂ}øOÐYº%¯RsÝãè0ቾû'è,Ý’W©¹îqt˜°DŸýSt˜n©«ÓÛö:M¢þ9ºL·ÄÕim{Ý&üÐ7ÿ¦[Úªt–=Žv蓉ŽÓ,iU:ËžG× 7ôÅ¿DÇi–²"a¯ ó„úàß ó4KX¾®×Ð} -}îïÐ}š%¬D_Ö«èBᄾö·è@½’U¢-ëet¡0Bû{t¡fÉ*ÐõºQø oý:Q¯T­×Õô:RØ OýºQ¯D­×Ôô&ºR˜ ýºR¯4­ÖSô>ºSx ïüºR¯$­ÖR´Ý),Ðg~Ý©UŠk Z‚.è#?ŒÕ+Ekuô,B§Šùè?Ž.Õ*=K5ä,C·Šñè?NÕ+=+ék¢cÅpôŸBÇj•œ…ô1Kѹb6ú¾O¡cµJÍBò˜µè\1}Þ'ѹZ%fuÊrt°Œ>î³è^­³Œ:e=ºXÌEßöit°NIYE\RNcѧ}]¬URцԠ›ÅPôa_A7ë”’5´Uèj1}×WÐÍ:%d iGºZŒDŸõ5tµNéXAYQ‰îÑG}­S:VPV”¢ÃÅ<ôM_Ewk”Š„Åèr1}Ò—Ñá:¥â}º†rtº†>èètñ6]Ât¼˜…¾çètÒð6YÂt¼…>ç[èx’ð&UÀ&t¾„>æ{èz’ð&UÀ.t¿ƒ>å»è~}ðQ¿FtÁ˜‚¾ä»è~}ðQ¿FtÁ‚>äûè‚}ÒïM½^tÃ>ãtÂ>éw‡¦^3:bL@_qºa›Ô»A¯]1 ¸±Oê]§h 3Æöè.Bgl“x—)Ò!è±9ú€«ÐÛ¤Ýe‚tºdì¾ß2tÈ6IwQ}8 2¶FŸoºd›¤»¨>‡n£·ݲKÂ]SÞ E׌mѧ[ŠŽÙ&á.©Î£sÆ®èË­E×ì’n—Tg£Ñ=cOôÝ£svI·+ª«áè ±%úlËÑA›¤ÚÅÕ@ ÑG[.Ú%ÕΫm¶ºil‡>Yºi“D;¯¶Ù"許úbè¦MÒì´Òdë ³Æ^è{Õ «6I²³*‹-„Î[¡ÏU„ÎÚ$ÉNª ¶:ll„>Vºk“$;©2ØZè²± úTuè²=ìœÂ^Ë¡ÛÆ&èC¢Ó6I°Sêr-ˆŽ{ ïT‰nÛ#½N©Ëµ :nl>S):nä:£¬Öšè¼±úHÅè¼=R넪X«¢ûÆòèU£ûöH­ãªZ­‹.‹£TŽÜ#µŽ«jµ0:q,>ÏtâiuXQªµÑ‘ceôu6 ÷H«£jJ­Ž®ë¢o³¹ERUSjutåX}š=èÊ-Rê ’P ;Ç¢èÃìBwn‘PÇTtÚ:–DŸe:t‹„:¤"Ó&èÔ± ú(ûÐ¥[$Ô!™vA·ŽåÐ'Ù‰nÝ!™)È´:v,†>ÈVtìÉtÀýH[¡sÇRèslFçîJÜ´ºw,„>Æntï‰ô^Á)m†.Ë O±]¼A½WpI»¡“Ç"èCÐÉ;¤Ñ[§´ºy¬¾C¼C½SqIû¡«Ç -è+DÐѤÐ;%—´:{ðèdÐÕ;¤Ðk5—´!:|Ðè „ÐÙ;¤Ðk5—´#º|°èûÃÐá$Ðk5‡´%:}èëãÐå¤ÏKE‡´':~`èÓCÑñ$Ï+U‡´'º~@èÃcÑõ$Ï+U‡´): 賃Ñù$Ï Uw´-z€ÐG‡£ÐKœÊîh[ôÑŽ>9½@ƒÄyªîŽöEoÍèƒ[=AƒÄyªîŽ6F­ès[=‚^Ú²…ÐSè¥Ìc•W´=zŒ£Ol)ôr óXåí^#Äè[ ½†\º¦…ÑÓ¨%Éå74½M”¡Oieô6jIòCù MBEèCZ=Ž\’|SC³ÐûDúŠGÏ£–"ßÔŸÐ0ô@q}BË£RK‘oêOhz¡¸‰> õÑ ©%È¿'4½QÜBŸÏèÔÒ㊚‡^)®£og ôHjéñÅ DÏч³ z&µôø›â‚f¢—Š+è«Ù=”XrüMq@CÑSÅyôÍìƒ^J,5þ&¹ ¡è­â$ú`vBo¥–h.h,z®8ƒ¾–­Ðc©¥Æš š‹Þ+£Oe7ô^b‰ñ‡æ€&£‹cè;Ù=˜Xbü¡9 ÑèÉâúJöC/&–¿‰h6z´x‹>‘-Ñ£‰%Å/ªŽž-^£ïcOôjbIñ‹ê€¦£w‹èãØ½›XR|QÝzºx†¾Œ}ÑËi¥ÄÕù8 ·‹‡è³Ø½VB|‘Ýz½ø‰¾‰­Ñã‰%Äÿtdž/¾¡bsô|b ñIw?.èãoô5lP+>éÎÇ=aüFŸÂô„ZéðIw>>è ã }Ðj%Ã'áýø GŒOôÌ@¯¨• -ù(Eèã#·\„žQ+>òSªÐ;FN¹½£V*|ä«”¡‡´GÀôZ©ð‘¿R‡^Ò=ÿ ô”R‰¿R‰ÞÒ=þ$ô–RiÏRŠÓ=ý(ô˜ZißR‰Ó½ü,ôšZiïRŠ^Ó½û4ôžRI =;ôœ®èݧ¡÷”Jíñø¡÷ôD¯>=¨T -ˆ¯Ç½§'zõqèAµì ¨ÏÇ=¨#zóèI¥Ü¨Ç½¨#zóèI¥Ü¨Ç½¨!zò‰èM¥Ü¨Ç½¨!zò‰èM¥Ü¨Ç½¨!zò‘èQ•òü¨EOjˆž|$zT)ïçëÇ=©!zò‘èQ¥¼Ÿ¯?;ô¤~èÅg¢W•ò~¾þxìГú¡ŠžUÉúõúÓñCoê‡^|(zV%ë×ëOǽ©zñ¡èY•òø(Eoê‡^|(zV)çÇwzS?ôâSÑ»*¿½ãtìУú¡ŸŠÞUÉøí§c‡Õ½øTô®JÆoï8;ô¨~èŧ¢wU2~{Ç騡GõC/>½«’ñÛ;NÇ=ªzñ±èa…òò¨D¯ê‡^|,zX%Û—÷œŽzU;ôàsÑË*Ù¾¼çtÜЫڡŸ‹^VÉöå=§ã†^Õ=ø`ô´B®ï9;ô¬vèÁ£§r}xÏáØ¡gµC>=­ëÃ{Ç=«zðÁèi…òî(DÏj‡|0zZ%ÓwwŽzV;ôà“ÑÛ -y>»ëpÜлڡŸŒÞVÈóÙ]‡ã†ÞÕ=ødô¶BžÏî:7ô®vèÁ'£·ò|v×ḡwµC>½­ç³»Ç ½«zðÑèqu,Ï"Bïj‡|4z\!ÇG÷ŽzX;ôà£Ñã -9>ºïpÌÐÃÚ¡WÈñÑ}‡c†Ö ½÷lôºBŽî;3ô°nè½g£×r|tßᘡ‡uCï==¯NÞeèaÝÐ{GÏ«cøæ¾³qC/ë†Þ{8z^<9ÊÐ˺¡÷ŽžWÈïɇã…^Ö ½÷pô¼B~Oî</ô²n轇£çò{rçáx¡—uCï=½¯N^UèeÝÐ{OGï«c÷âγ1COë†Þ{:z_»wžzZ7ôÞÓÑûêØ½¸ólÌÐÓº¡÷žŽÞWÇîÅgc†žÖ ½÷tô¾:ypT¡§uCï==°NÞEèiÝÐ{G¬“÷FzZ7ôÞãÑ똽·÷l¼ÐÛþÇ>½ 9rA5ÝÿÒ4‰ÅÏì ЕÏîðwƒ,jC÷~<:pNÙ½ŸMºmº÷ãÑsÊîýìlºÐmÛнœSvïggÓ…nÛ†îýxtàœ²{?;›.tÛ6tïç£ Çx®†ÐmÛнŸ.Óu­?%ˆnÛ†îý|tá¯Õ:nº÷óÑ…sª®ýôlªÐqÛнŸ.œSuí§gS…ŽÛ†îý|tᜪk?=›*tÜ6tïç£ çT]ûéÙT¡ã¶¡{?]8§êÚOϦ -· Ý»8¦þX ¡ã¶¡{ ÇÔ«!tÜ6tïtâ˜úc5„Ž[‡þ|tᘦc?=š.tÝ:tðç£ Ç4ûéÑt¡ëö¡‹?8¦üV¡ëö¡‹?8§èÖÏϦ ]·üéè¾9E·~~6M躅èäGŽ©>UsèºèæOG÷©>UsèºèæOG÷©>Us躕èèGç©>Us躕èèGç©>UsèºèêÏF×é9õó£©BçíDW6ºnLÏ©ŸM:o):û£ÑqczNýühªÐy[ÑÝŸŒnÓsêçGS…Î[‹ÿ`tÚ˜žS??š*tÞ^tùç¢ËÆôœúùÑT¡ó£Ó?]6¥æPÿF·Ýþ±è°)5‡ú5²è¼ÕèøOEw©=T£è¼ÝèúEg©=T£è¼åèüÏDW©=T£è¼íèþDG©=T£è¼õè<Ý4¦öP¢óŠ^ÀÑIcZ%FÓ„î+'>Ž.Ór(1š&t_¹ñqtИ–C‰Ñ4¡ûê_Ž|Ý3¦åPb4Mè¾ú7zCçŒi9”Mº¯þƒžÁ³Ð5cZ%FÓ„î«ßÑ;x:fLË¡ÄhšÐ}õ_ô…Ž™Òz§fÑ}õ?ôž„n™Òz§fÑ}õz -B§Li½S³è¾ú?z ÏA—Li½S³è¾úz A‡Li½S³è¾ú3z OAwL)9ÓF÷Õ_Ðsx:cJÉ™~ƒ0º¯þŠÞÃ3Ðc*ÏÔ4º¯þ†Ä#Ðc*ÏÔ4º¯þŽ^ÄÐ c*ÏÔ4º¯þžÄÐ c*ÏÔ4º¯þ‰ÞÄýÑc*ÏÔ4º¯¾@âöè€1•gjÝW_¡Wqwt¿˜Ž3™Ñ¡ë+ô*îŽîÓq&3š"t`}‰žÅÍÑùb:ÎdFS„¬¯Ñ»¸7º^LÇ™ÌhŠÐõ ô0nŽÓq&3š"t`ý -½Œ;£ÛÅtœÉŒ¦X¿DOãÆèt1g2£)BÖ¯ÑÛ¸/º\LÇ™ÌhŠÐõ z·E‡‹é8“M:°¾C¯ã®èn1g2£)BÖ·èyÜ-¦ãLf4EèÀú½{¢«ÅtœÉŒ¦X? rKt´˜Ž3™Ñ¡ë'ôBîˆnÓq&3š"t`ýˆžÈ ÑÉb:ÎdFS„¬ŸÑ¹ºXLÇ™ÌhŠÐõz$·C‹é8“M:°^A¯änè^1g2£)BÖKè™Ü +¦ãLf4EèÀz ½“{¡kÅtœÉŒ¦X/¢‡r+t¬˜Ž3™Ñ¡ëUôRî„nÓq&3š"t`½ŒžÊЩb:ÎdFS„¬×Ñ[¹ºTLÇ™ÌhŠÐõ:z+÷A—Šé8“M:°Þ@å6èP1g2£)BÖ;èµÜÝ)¦ãLf4EèÀz =—› 3ÅtœÉŒ¦Xï¡÷rt¥˜Ž3™Ñ¡ëMô`nŽÓq&3š"t`½‰Ì-Бb:ÎdFS„¬wÑ‹¹ºQLÇ™ÌhŠÐõ6z27@'Šé8“M:°ÞGof?ºPLÇ™ÌhŠÐõ>z3ûÑ…b:ÎdFS„¬ èѬGŠé8“M:°® W³Ý'¦ãLf4EèÀº‚^ÍvtŸ˜Ê35î«KèÙ,G物KÑYRZïÔ,º¯ŽÐóÙ‰®Ór(1š&t_¡÷³%¦öP¢óê ½Ÿ•è(1µ‡jWgèý¬DG‰©=T£è¼:Cïg%:JLí¡EçÕ!z@ÑMbjÕ(:¯ÑÚˆnS{¨FÑyuˆÐFt“˜ÚC5ŠÎ«Cô€6¢›¤Ôꪳè¼:Dh#ºIJó¥DçÕ)zA ÑIRš/Õ :¯NÑ ZˆN’Ò|©ÑyuŠ^ÐBt’”æK5ˆÎ«Sô‚ö¡‹ÄôœúùÑT¡óê½ }è"1Õ§j]W§èíC‰©>Usèº:FOh:HLõ©šC×Õ1zBëÐAbªOÕº®ŽÑZ‡S}ªæÐuuŒžÐ:t˜êS5‡®«cô„Ö¡ƒÄTŸª9t]£'´$¦úTÍ¡ëê=¡uè 1Õ§j]WÇè ­CIi¿USèº:FOhºGLý±BÇÕ1zBÛÐ=bêÕ:®ŽÑÚ†îS¬†ÐquŒžÐ6t˜úc5„Ž«cô„¶¡{ÄÔ«!t\£'´ Ý#¦þX ¡ãê½ uè 1õÇjW§è­C‰©?VCè¸:E/h:HLý±BÇÕ)zAÛÐ=r¼V3è¶:E/hºGL×µî:ˆn«Sô‚¶¡{Äx®†ÐmuˆÐ:tÏÕº­ÑZ‡ã¹B·Õ!z@ëÐAbt‘/Öº¬NÐëÙ‡.’ãÅšB—Õz< ÑIr¼XSè²:@g!:IŽk -]V×ÑÛÙˆnSx²O¡Ãê:z; ÑIr¼Ycè°ºŽÞÎBt’oÖ:¬.£§³Ý$Ç›5†«ËèélD7Éñf¡Ãê*z9+ÑQr¼Ycè°ºˆÎNt•œÆ›yÝUÑÃY‰ŽäÑCwÕ5ônv¢«äxµæÐ]u ½›è*9^­9tW]BÏf):KŽWkÝUWЫيî’ãÕšCwÕôj–¢³y¶æÐYu=š­è.Až­9tV½ÞÌZt˜ ÏÖ:«ÞGof-:LŽwkUo£'³]&Ç»5ˆÎªwыً.äáDWÕ›èÁ,F§ òp ¢«êMô`£Óy¸ÑUõz/›Ñm‚<\ƒèªz =—Õè8Aµ‡»ø:ªÞA¯e5:N§kUo Ç²]'ÈÓ5‰Žª×Ñ[YŽÎäéšDGÕëè­,Gç òtM¢£êeôT–£ó$y»&ÑMõ*z)ÛÑ}’¼]“è¦z=”õè@IÞ®ItS½†ÞÉ~t¡ ×(º©^BÏäèDAÕÇ»ýytR½‚^É Ð‰’¼^£è¤z=’; %y½FÑIõ3z#·@GJòz¢“êGôDî®”Ô}½`]T?¡rt¥$ï×,º¨~@ä&èLIÞ¯YtQ}ÞÇ]Ð’¼_³è¢ú=Û C%µßï/˜FÕwèuÜ*ÊÐ,:¨¾Aã>èRQ>€fÑAõkô6n„N•ä d·óûô‚·ŽQp¼ÿMϱýdI­&©ª 2–p³jCzÐ8¤Oc%z«J)WLïGôe¬DoU* ò ƒé=ã€>Œ¥è±J%Aža0½g<§ïb-z­RIoLïOé³XŒž«TäÓsÆ3ú*£ç*•¿òƒé9ã }«Ñ{•J„_ùˆÁôœñ‘¾‰åèÁJ%¯¼Ä`zÎø@ŸÄzôb¥á·ÊóÙ^3é‹X^¬V*üVy?ûÑkÆ} Ò“•J†?ê®gGzÍxOßÊôf¥’áºëÙ‘^3ÞÑç°$=Z©dø«î|6¤ÇŒ·ô5,IV+þª»Ÿ é1ã } kÒ«ÕJ‡¿êîgCzÌxCÚôj¥â?U׳%=f¼Ò·°(=[©„xQu>;Ò[Æ+} kÒ«ÕJ‰U÷³#½eü£OaQz¶Z)ñ¢ê~v¤·Œô),JÏV+%þ©:  é)ã…¾„EéÙj¥Å«šûÙ’ž2^èKX”ž­VZ¼ª¹Ÿ-é)ã…¾„EéÙj¥Å«šûÙ’ž2^èKX“^­Xb¼QsA;ÒKÆ } kÒ«KŒ7j.hGzÉx¡/aMzµZ©ñVÅýìI/ÿèSX’­Vj¼Sq@[ÒCÆ?úV¤7+–ïT\ЖôñJß‚ôdŒ㊠ڒ2^é[Xž¬Xr¼WqB;Ò;Æú–£+– Æ_ОôŽñ†>†åèÁŠ%ȃñ´'½c¼¥¯a5z¯b òhü mIÏoékXŒž«ZŠ<C[Ò3Æ;ú֢ת–$†ŸÐžôŒñž¾‡¥è±Š%ÉG£OhOzÅx b!zªjiòÑèÚ“^1èƒXˆžªZš|4ú†ö¤WŒGú"Ö¡—ª–&OŒ>¢-éã}«Ð;•K•'Ñžôˆñ‘¾‰E虪¥Ê3cohSzÄøHßÄ"ôLÕR婱G´'½a<¡b z¤rÉòÔØ+Ú“Þ0žÑW±½Q¹tyjèmJoÏè«XÞ¨ZºyD›ÒÆSú,æ§*—0F^Ѧô„ñœ¾‹ééÊ%Ì‘W´)=a<§ïbzz r)sdàmJ/ôaLNÏS.i»¢]é㈾Œ¹éuÊ%Í¡qW´+½`Ñ—15=N½´96îŽ6¥ŒCú4f¦·©—6ÇÆÝѦô€qHŸÆÌô6õçİ;Ú”Þ/ŽéÛ˜—^¦^êœuG»ÒûÅ1}óÒËÔK3£îhWz¿8¦oc^z™z©sjÔ!mJÏ'ôqÌJïÒ }N :¤]éùâ„>ŽYé]ê¥Ï¹1w´-=_œÑ×1'½Jƒº0æ’v¥×‹3ú:æ¤WiB†Ò¶ôzqF_Çœô*õRèÒˆCÚ–/Néó˜‘Þ¤A]qIÛÒãÅ)}3Ò›4H¢K#.i[z¼8¥ÏcFz“itmÀ%mKoçô}ÌG/Ò ‘>áç‘ö¥·‹sú>æ£iHŸñóJÛÒÓÅ9}ÓуtH¥Ïøy¥méé✾éèA:$Óg ¨´+=]\Ð2½Gƒdúœö¤—‹ ú@&£çèNŸ3¢ÓžôrqAÈdôÒé“F„Ú’..虋^£CJ}Ö˜RÒÃÅ} sÑktH©ÏSjCz¸¸¢/d&z‹IõicRíGïWô…ÌDoÑ"­>mPªíèÝ⊾™è-:¤ÕŒŠµ=[\Ñ2=E‹Äú‚Q±6£g‹+úB&¢§h‘X_1ªÖ^ôjqE_È<ô-’ëKÆåÚ‰^-.陆¢Er}ɸ\;Ñ«Å%}"³Ð;ôH¯¯×k#z´¸¤Odz‡ ö5{íC—ô‰LBÏÐ#žjd±]èÍâ’>‘Ièz¤ØW,¶ ½Y\Ò'2 =Cû²‘É6¡'‹KúDæ Wè‘f_7¶ÙôdqIŸÈô -=ÒìÆFÛ^,.陂¡I¢}ÃØh;ЋÅ%}"SÐ#4Iµï\íþô`qIŸÈ ôM’í[Fg»==X\Ò'2½A“dû–ÑÙnO—ô‰L@OÐ%á¾gx·›Ó{Å%}"Ð4I¸oîÞô^qE_Èô]Rî»Æ—»5=W\Ñ2=A—”û®ñånMÏWô…xz.i÷}íîK¯Wô…xz.i÷}íîK¯Wô…pz€6‰÷ñnKWô…pz€6©÷%ñîJôpz€6É÷#5ùîIoôpz€6É÷#5ùîIoôhºŸü™¢~w¤§Š ú@4Ý¿MþPUÀÒSÅ} ˜Îß'ªªàýè¥âœ¾M÷ï“„?UVðvôRqNߦó÷Iß«kx3z¨8§ïÓùû¤áÏÕ5¼=TœÓ÷aéúRq€Âˆ·¢wŠSú<0¿O*ŽPYñNôNqJŸ‡¥ë7JÆ!*3Þˆž)Néó°týFé8DiÆûÐ3Å}–®ß(!© yz¥8£¯ÃÒõ%ä µ!ïB¯gôuP:~§¤¥¸ä=è‘â„>K×o””ÃT§¼=RœÐÇAéøÒrœê–w 7Šcú6,]¿SbŽSÞòôFqLߥãwJÍ‘êk.OOÇômP:~§Ô©¾æòôDqHŸ¥ã·JÏ¡r.N/‡ôiP:~§ô«£çÚôBqD_¥ã·JÐÁ:‚.MôaXº~«¬%èÊô@q@¥ã·JÒáz’®KïÏé»°týVI:\OÒué}â9}”Žß+QÇkjº*=O<¥ÏÂÒõ[%j…®ªkÒëÄ3ú*,]¿WªV誺&½N<£¯ÂÒõ{%k‰¶¬+ÒãÄú(,]¿WºÖèëº =N|¤oÓù{%l‘ưËÑÛÄGú&,]¿WÊVé,»½M| OÓù{¥l™Î´‹ÑÓÄ#}˜Îß,mË´¦]‹ž&èƒÐtÿ^i[¨7îJô2ñ@¦ó7KÜB½qW¢—‰÷ô=`:·ä­Ô\wz˜xGŸƒ¦û7KÞZÝ}W¡w‰·ô5hº·ô­ÕÝwz—xC§è–ÀÅÚ¯Aϯô-pz€n)\­¿ðô,ñJß§è–Äå@âèUâ} -œ [×ç§W‰ú8=@»Dn "OOÿчàéÚ¥rRyrz“øKß§h—Ì-Læ¹éMâ}дKæ¦óÔô$ñ›¾‚ è Ú%tzbz’ø•»üMoÐ.¡»¨ÒóÒ‹D®ò7½A¿¤îÂJOK/9Êÿíx†iÝǵž”$ôLAÐ/­¹ØsÒ{lOÀô@j7‚±§¤÷ØÞz…~©ÝJæžžcszþ9è€ôîE{OG¯±7½þô -@‚7³Ág£×Øšz Á»Ùâ“ÑcìLo? =ƒäÝpñ¹è16¦§Ÿ„žAHó~ºùLôûÒËÏBï èæ‰¾7=Ŷôð³Ð;ºyªoNO±+½û,ô„Žžì›ÓKlJÏ> =¡£ÿ/Ý÷¦‡Ø“^}zBGÿM7 tôiè!ö¤WŸ†‚ÐÑÿÐ}z‡-éѧ¡‡ tô¿tCWŸ„žaKzôYè ]ý/]ÁÐÕ'¡gØ‘Þ|zCWÿÎ`èêsÐ+ìHo> ½ƒ¡«¿Ð} -z„ éÉg¡w@tötCWŸ‚aCzòYè ]ý•.èì3ÐìG/> ½¢³¿Ò%Ý}z‚ýèÅ'¡g@tö·t DgŸ€ž`;zðYèý-ÝBÑÝ=½Àvôà“Ð3(ºû;:†¢»sz€Ýè½'¡gPt÷÷t Ewçô»Ñ{OBÏ èîtEw×tÿÝè½ç WPt÷Gº£Ãc:ÿnôÞSÐ#0:ü#݃Ñá17zïè þ#]„Ñá-]7zïè þ#]ÄÑå)7zï è ]þ ÄÑå%Ý~7zoO/àèòÏè&Ž./éö»Ñ{{zG—JGqtyH§ßÞ›Ó8ºüsº -¤Ó;ºünôÞšîéôtH§gþÏ.}XÉuCATþQëPZ’kÆ| žA…зõðÝèÞ˜žÒÓ?£wôôŒ¾ÝÓóCzúgô.’Þ^Ñ»w£{[z}HOÿœ^FÒÛ#zöntoJ/éíŸÓËPz|C¯Þî-éí)=þ zIooèջѽ%½½¤·EoCéñ =z7º7¤§§ôø/éq(=¾ 7ïF÷vôò”ÿ5½Ž¥×ôäÝèÞŒÞÒë¿¡ç¡ôø€ž¼Ý›ÑÃSzüwô>–^=½x7º·¢w·ôúoé,½þrzðntoDÏnéõßÓ azþÕôÞÝèÞ†^Óó¿§Âôü«é½»Ñ½ ½º¥×?Bo„éùÓs·£ƒ zsLÏ„ÞHÓû¯¥×nGôäšÞÿ=’¦÷_JÝŽ¾ž^\Óû£WÒôþKé±ÛÑÁ—Óƒs:ÀAz&Mï¿’Þº|9=¸¦÷?JïÄé é©ÛÑÁWÓ{s:Àaz(NXG/ÝŽ¾˜ž›ÓŽÓKyºÀ2zèvtðµôÚž.p‚žŠÓ–ÑC·£ƒ/¥Çöt3ôVž.°ŠÞ¹|)=¶§ œ¢ÇòtEôÌíèà+é­=]à½V:Ázåvtð…ôÔè'é¹Ð –Ð#·£ƒ¯£—@'8Kïn°‚Þ¸|=tºÁiz°t‚ôÆíèà«è#Ð ÎÓ‹E , 'îG_DÏnpž,Ý`>½p?ºøzåtƒ+ôf!èÓéûÑÅ—Ð#‡ #\¢G AG˜MïÛ.¾‚Þ8á½Z ºÂdzÞ~tñôÄ1è -éÙbÐæÒëö£‹Ï§ŽAW¸J0—^·]|:=p:Ãez¸t…©ô¸ýèâÓécЮÓË¡3̤·íGŸMp‡Þ.a"=m?ºødzÞ t†[ôxAè óèeûÑÅçÒë¡3ܣ׋Bw˜FÛ.>•7 -Ýá&=_ºÃ4zØvtð™ô¶QèwéýÂÐ!fÑ»¶£ƒO¤§ C‡¸M†1‰žµ|½l:Ä}zÁ0tˆIô¬íèàÓèaãÐ%І¡CÌ¡WmGŸEï‡.1‚Þ0]b -=j?ºø$zÖ8t‰!ôˆqè3èMûÑÅçЫơKŒ¡W D§˜@OÚ.>…5]b½c :ÅxzÑ~tñô¦èÃè!Ñ)†Óƒö£‹O ' D§G/‰n1šÞ³]|<½h$ºÅ@zÊHt‹ÁôœýèâÃéA#Ñ-FÒ[†¢cŒ¥×ìGM1”3c(=f?ºø`zÎPtŒ±ôš±è#é-ûÑÅÇÒkÆ¢k ¦çŒE×HOÙ.>”3]c8=h,ºÆ8zÉ~tñ‘ô–±èãéEƒÑ9†ÑCö£‹¤§ Fç˜@OŒÎ1ŠÞ±]|½d0:Ç zÓhtAôŒýèâÃè!£Ñ=¦Ð£F£{Œ¡WìGEïî1‡^5d=b?ºø zÆhtYô®áè #è ûÑÅÇÐ+†£ƒL£‡ GAoØŽ>„1d½l<ºÈzÂvtðô†ñè"éiãÑEîÓ ¶£ƒ 'ŒG™IoNr›°ü>½`@:ÉTzÜ€t’»ô~ÝèÞ÷éÒI&Óó¤“ܤçëF÷¾MN2›Þ7"Ýä½^7º÷]z¿ˆt“éôÀé&·èñºÑ½oÒóE¤›Ì§IG¹Co×î}^/$e=qH:Êz»ftî[ôx!é(Kè‘CÒQnÐÓ5£sß¡· IGYC¯“®r^®û=]LºÊ"zæ˜t•ËôpÍèÜ×éåbÒUVÑ;¥³\¥wkFç¾L”βŒ:(å"=[/ºöez¸ t–…ôÔAé,éÙZѱ¯Ò»¥³¬¤·ŽJw¹F¯ÖŠŽ}‘ž-*Ýe)=vTºË%z´VtìkôjQé.kéµÃÒa®Ð›µ¢c_¢G K‡YLÏ–sž¬û -½YX:Ìrzð°t˜ ôdèÔWèÍÂÒaÖӋǥ˜§kD§¾@O—.èÉãÒeNÓƒ5¢SŸ¦ L§!ôèé4'é¹Ñ©ÏÒ{¦ÓzõÈt›sôZèÔ'é¹"Óm={dºÍ9z­6tè“ô\‘é6ŠÞ=4ç=V:ô9z­ÐtFšŽs†Þª ú=Vh:¤§MÇ9CoÕ„Î|Š+4GÒÛǦ뜠§jBg>Co›®CéñcÓuŽÓK5¡3Ÿ §ŠM×ÁôüÁé]è=Q:ñz£øt¡(t‡t¢ôDåéÀGèЉÂÐ!ЉÞÓ •§ 'J@' -D§H@'zO/Tîûž^((Ý"Ýè-=Pq:ï{z¡ t£PtŒt¤7ô<Åé¼ïè}RБ‚Ñ9RБÞÐó”¦ã¾£÷IAGŠF÷ÈAWzM¯SšŽû†ž'])$]é5½Neºíkzt¥€t’$t¦—ô8ué²/éq’Й"ÒM²Ð^ÑÛ”¥Ã¾¤ÇÉBw -IGÉBwzEoS•îúŠÞ& Ý)(% ê9½LQ:ë zš4t¨¨t—§—ÉC— -L§ID§zFïRNú”&*2Ý&Ýê½K=ºè3z—Lt«ÐtœLt«gô.ÕèžÏè]2Ñ­‚ÓyRѱÓ«£s>¡gIEÇŠN÷ÉE×zL¯R‹®ù˜^%]+<(]ë1½J%ºåcz•\t­t¢dt®‡ô(uè’éQ’ѹ2вѽÑ›”¡C>¤GIFçÊAWÊF÷zDoR…îøˆÞ$Ý+ )ì=I ºâz’tt°4t¨tt°ô$è†èIÒÑÁòÐ¥òÑÅ~Ò‹ > 'ÉGKD§JH'ûA’Ÿ.øƒ$!,+!ì=Hvºßz„t²\t­”t´ïô¹ézßé=2ÒͲѽRÒѾÓ{d¦Û}§÷HIGKGËIWûJ¯‘˜N÷ž#']-!,']í+½FZ:Ü7zŽœtµŒt³¬t·/ôYén_è1²ÒÝRÒѲÒݾÐc䤫}¡ÇÈJwKJgKK‡ûLo‘‘nö™Þ"-.-.-î3½E>ºØgz‹´t¸¼t¹ÄtºOôÙè^Ÿè)ÓéÓéÓé>ÑSä¢k}¢§HL§KMÇËL·ûK/‘‰nõ—^"3Ý.7]/5ï/½DºÔ_z‰Ìt»ìt¿Üt½?ôYèNè!rÓõÒÓ“Óù~Ó;ä +ý¦wHNç+@'LNçûMïnô›Þ!9¯Ý0=ðƒž!>]胞!;ݯ]1=ðƒž!:Ý烞!=°1?]ðz…ØtÿéòÓËÐ! Ð ÿ£GˆL·ù¡°²Ýð½A\ºÌ/zƒ -tÃJtËtÄ_ôQé.¿è JÐKÑ1kÐÿÙ!ÓUþÙaÆÐ‹Ñ9‹ÐwÈGt“]e±´ -Ýq‡üAÙMÑëÑEËÐ!wÉotdݱ"Ý´Ž]2’]£ -]²$µ]2Œ¢ -\²*µ’]2†Ý¡ -[²0¶”]2€¡ -Z²4]¶˜RÛÊ)‹Ói‹Ù)­½2ey:n5;%´Ç/¦ì@ç-g§Töòe¸”MèÀõì”Äž½ –² ]¸¢Ýr½½yªe#:qI»åb{ð:PË^täšvË•öÚu˜–íèÌEí–Ëì©ë -;Ò¡«Ú-ר;×!Z6¥S—µ[.°G®´lK·.lÇœm/\Èú˜éØ•í˜Síy Y³7»´sž½m!«c¶§ƒ×¶cN²‡-dqÌmz²s†½j!kcn¿èæåíšÃíI Ysû «×·k޵÷¬deÍí½ƒ]sœu[6“[XsûL‡oa×dYɲšÛ¿ìÔ ²ÝÆDÁðþ7í°)‰"ù‡74pzÈ\зª~WŸþ ®9‚WÜÉ]×äõñášoó„;¹éš|¬>ÿ)\ó=Þo'÷\“ÏÔ÷?‡s¾Áãmå–sò¹:'qÎy¸­ÜpN¾VGà(Îù -¯¶•ëÏÉ·êœÅ9ŸæÉ¶rù9yDƒÓ8çS<×V.>'ªƒpç|œ·Úʵçä uäœñN[¹òœ<§Î‘Üói+ž“§Õi8”{~Ãíå²{òŠ:§rϯx½\uO^Tâ\îù/³—kîÉêHœÌ=?âUörÅ=ySг¹çï¼È^Æß“êXÎ=á9ö2üžŒQãxîùO±—Á÷dœ:ŒmGý3¯ó {zOƪÃÁ†6¤þ•Wy‚½ ¼'ÃÕéà‡ÃzøïïgØA¹BþvðAþõ= :(W©ÂO‡ôÐßÞ׃r¥:"ü⼃ž÷Ç›{ÿ \® ¿9ë gýíÞ=(·¨cÂÎ9è9zˆ÷Êmê ð‘#zÄOžäƒr¯:*|b÷ƒîþÇyõ ê°ð¹ºñ¯é¥ƒR©ã—ö<èžu°çJª ßÙî ÛýÐéž<(½:2<`«{nõ3ýÕ¡á1»Üs—ÿà‡×V‡V·Ã=wøþñÞøP©sÃs?çâŸÏ¯F­7«ƒÃÓV>æÊßÎoƯ7©£ÃKV=åªßÍ®Ý%.U‡‡×-xÈ?™Ü¹Q WÇXM½Z¼©°–z³x[!`%õb1@"`õ^1D#`õZ1H$` õV1L%`õR1P&`~õN1T'`võJ1X(`nõF1\)`fõBq:TÀ¼ê}âu¬€YÕëÄEê`sª·‰ËÔÑ&T—ªã̦^%.V ˜K½I\®Ž0“z‘¸A2`õq‹:fÀ,ê5â&uЀ9Ô[Ämê¨3¨—ˆÕazõq«:n@­^!nVhÕÄíêÈ¥zÔ¡:õþШs4êí!SG(ÔËC¨p¿zwHÕñîV¯±:€À½êÍ!WG¸S½8L !pŸzo˜BCà.õÚ0‹:‰Àê¥a"uëÕ;ÃTê8W«W†ÉÔ®Uo Ó©# \©^&T‡¸N½/L©Ž%p•z]˜ULà -õ²0±:œÀxõ®0µ:žÀhõª0¹: ÀXõ¦0½:¢ÀHõ¢°‚:¥À(õš°ˆ:¨Àõ–°Œ:ªÀõ’°:¬Àûêa)u\wÕ+ÂjêÄ宅ա^WïKªc ¼ª^UxM½,«Ž.ðŠz9XY^àYõj°¸:ÀÀsêÍ`yu„gÔ‹Áê«÷‚=Ô9SoÛ¨£ <¢^ -6R‡ø^½l¥Ž3ðz$ØNià+õB°¡:ÔÀçê}`Ku¬ÏÔëÀ®êd©—ÕáþTï[«ã ü®^6WøE=  9ðS½¡Ž9ð·z 8Dtàÿê)à uأϭê¸õ -pš:ñp¶z8Pz8YÝŽTÇÎU·ŸSÕɇ3ÕÍç`uøáDuï9[8MÝyŽWWÎR7Ì>ܨî;üOÝ8EÝuøK]8CÝtø©nì¯n9ü¢.ì®î8ü¦®ì­n8ü©nì«n7|¨.ìªî6|¦îì¨î5|¡®ì§n5|­nì¥n4|«. ì¤î3<¢î ì¢î2<¨® -ì¡n2<®n ¬¯n1<¥. ¬®î0<«î ¬¬î/¼ ® ¬«n/¼¦n¬©n.¼¬.¬¨î-¼£î¬¦î,¼©®¬¥n,¼¯n¬£n+ Q VQwF©»+¨{ -Õu‚éÕ%…ÁêJÁÜê†Âxu«`^u;áu±`Vu7á*u·`Fu/áBu½`:u)ábuÅ`.u#ázuË`uáuÑ`uá.u×`uáNuß VwnVWZuá~uë S·uó Q72uù P×Ruánuç VwîT÷ &P×nS— &QWîQ7 æQ·®W· æR7®U7 ¦S—.T× ¦T®Rw fUw®P÷ -fV÷F«;³«; -#Õ}‚Ô5…aê2Á"êªÂu“`u[á}u‹`-ucá=uƒ`=ukáuu{`Musá5us`Yuyáum`iuáYug`uu‡áu_`uáQuW`u—áuO`'uŸá;uG`7u§á+u?`Gu¯á3u7`Wu·á#u/`kuÁáWu#`uË᧺ p†ºéðCÝ8GÝv°ùp¯ºñœ®nœ§n='«Ó‡ª«Ï™êÜÃÉêþsž:ópºz8KwÀîsŸ:ëÀ_ê1àuÊ«ÝÕ ~W¯;«Ó |¨žöTçø\½ì§Î4ðz$ØIfàõR°‹:ÉÀ£êµ`uˆçÔ›ÁÚêüÏ«wƒeÕÑ^U¯+ªS ¼£^Sx_½#¬£Î*0H=&¬ N)0R½(Ì®N(0\=+Ì«Î&pz[˜RKàJõÂ0›:‘Àåê™au›Ôcà êwª‡X@à~õîЩ³Dêñ¡P§HÕĽê¼¨‡ˆ»ÔI¦QÏ׫3L¦%®T§ ˜R=M\£Î0±z ­N0½z¦§Î°ˆz¬¡N°–z³xG`Iõtñš:7ÀÂêãYub€õÕ;Æ£ê¤Û¨çŒïÕvS¯Ÿ«³lª7>R§Ø[½qü[àõÔñCà$õ⮾?p¢zùNUß8X=€ç©/`úoRßà§zwWßàOõ2+Àê‰ÜK}M€GÔ[¹‡úŠO©Gseõí^TÏçzꋼ­ÒUÔw¨žÔ¹Õ׸D=®3ªopµzggQßàFõä¶þËN ÛkðáqJ“úh] Qßw¾º8ÀêÏP7XMýå¯Ô]–VOú=uI€ÔÏW—ØYýðÇêP‡©·~¯®p¾úô^1z€_3yæ¹—☠-endstream endobj 85 0 obj [/Indexed 41 0 R 1 204 0 R] endobj 203 0 obj <>/Filter/FlateDecode/Height 1534/Intent/RelativeColorimetric/Length 418298/Name/X/Subtype/Image/Type/XObject/Width 1526>>stream -H‰ì×gw׆aŠP@Ý )65º@4ŠlÇ1Á¤‘Äé!½÷Þ~xæm»ÍÞSŽŽ<*ÏýÑš9ËK:ëzvì@!„B!„B!„B!„B!„B¡q´³WCÿß"„ê^?áq Bh“µ>Ìã „ÐÆiéK ý»@¡-ÛØ¤Þ4¶ú·ƒB[¤5Ã>zà!„>¶P~¬W`èßBm’6–ôk½Cÿ6Bhö~ÖïîØúù?ôï!„6Pã¾+îýÿCÿ¦BhØÖˆ}W´_ëØ˜ŽìG¡´‘¹îýéÀ~„ÚÑæ}?ëÛ´þÄHxFÁè?B­g½¹ï%}3åŸliÄCЙØÚVõã¾›õ£ñÞ¯îG ›þ !´åëã};ö˜ß3–:vþûØ?ôß -!„ÖTwï[´o„>öÞ1ÔzZüoÃô#„¶RÁoâ¾H}›ñc¨í@þíúï‡Bë -~™û<öEèk`ª­}U­5ßü(êßh?èGmÖº_ô>§}–ú&ä÷%íï\úfÓÈ€œþ]í‡ü¡ÍU'ðKÞ7iŸ¡¾€|lødCSSM?-Þ‚ü ¨óŸÑ¿›ý!´)ê ~ÎûTû:öuèóÄO%Mw,}/ê' Ì ÿ‚ý !´yê~ƒ÷)÷ëëÌx?Pî`Uà Ǡ~ -þðo±¿ýCÿ­BÛ½vñ³àæ}Vû¬õuæSÓ}‡z¿™?É Èúëßj‰~ÈÚ@~aßg¸µ­O¯ó~8êHçâ÷êÇ ½ÿ#ý#üÛìïCÿÐ{„Ðv«‡ø¥Ÿ™÷!÷ö¡õô òßGÃŽu.z­~ â#€ÿ@ÿÿ&û3ô·É?ôW!´}j¿ ~fß׸ßï¹O±©Oy=ìx¢Óc߀Úø÷øïOñÏØß‘~È ÞâGà‡ÞïõÞ'Ü{í=öõ!ôòÎîÖLÔÉbñsîõô„7 8ÿž§ºüködzò#„6NÅo¿ì}{§½·ÞK: oŸ -šíXøNrÂ3œœÿN‡ÿdŒbnö×èo–èïBh+Ö(~iâ×ÀŸpà;ï'Íûˆ{ÓÞaï­O 7¾ßÐNG)?go'ÇÀbÿÿ¦ ÿØþüì‡ü¡Áë%~}âg~´ï ÜGØ›õ‰ôù„ö³®sioºj?òo%ÁŸÌ0ÿCþsø×ìwô³?7úwgèü¡õ©iä·OüühàÞ+÷6î•û{£>†>0>Bý-ë|Ú§]µ¹—¢³ÜøØÈðoÛ?Æ?µßè÷³O~Èúøê2òÅÀoô>æ^µWìCëMzÇ|`|¤úíbÚœ«ö#{'º -ÁpGÀ.@â¿ò¯ú×–Ý~£ßÍþüè-¡WƒüCgB›µ.#?#~<ñ3à缸×m/Ú+öõ&½1¢>¯-Ä-&%?¶·Â³;vbÿ•Ñ_·Šd2û£ÑÐß&?àG­¹âïn?œø -¾ü~è}Ƚh¯Ü‹ö‘õôƼ7>`}IºäºÜ’R_ Ž‚¿v‚ ùïôüOºéÏø§öûÙ¯ôïKé/È¿ò#„ÆY÷‘_?˜øøÞ—´wØ«õ*}ȼ#ž¿"]Õ®…]OŠ~hoè¸sà΀½ÞÇNÿØþcF¿ØÀÍ~?úýäü¡µ5ªø{ñýÄ/€oÞϨ÷÷¦½ÃÞY/Ôôʼ3Þ»~CZvÝlÉ?©¯ú›àî€àÈpþ3ÿþ†¿,ÿt÷×fÿTDÿ(ò~„P¯:ü‚ø5ð§Rð#ïyßÛ¼÷Üó¶7í {±>’^wÈ;Üoq+Òm×bþ}I>Áwü ðÀü7þ½þþ<ü#ûƒÙo«:¤_G¿É¿7+ûäúK…Ú¨•Éï)þd<ñëà«÷¼ïyÞŸ!ïCîU{[öŒ½£^¤WçMyž¿ËÝ“î[osè+ò¾;vôè @ùOôñíŸQûuöý6ú§s£¿¼ù['ÿÐ_-„ÐÆ«ùNü=9ñðfÀŸ‘¯û^¸?GÜ¿qï§½bï¬géÅyc^‰w´?à>#=´>[Ì=¢¯Èûî è!Ž€œ>æ?óëïð'ûßûϤöÇôòôG£¿,?àGõ®(þ®ÂÈoÿ Nü#$~ühß÷<÷N{^öŒ½·^¤è•y5ÞÑþ9î÷ØzÒ{HÞ‘÷ÝAÐ; GÀ>ÞæŸ×¿è¿Hú þÑðvDÿ±˜þdôäÏL~Àjn”‘_Ÿ'þ!7ñ‘øþÉüØ{á^½7îI{]ö¡õF½s^•7àÉð§Ü*÷÷n‡äIyK>Áî=rüðþ»õ/ÛßðÏ ³¿Dÿa¢ŸG³üm“ð#„’:‘_ùB~I|ÿ¨¦~ì}Ž{¯½bÏ«^©7è•y5Þxú<õ>÷×ÙüÏåy~•?ÄŽÞwäèà8þ½þ%ü+ûKôŸ0úk£?‘BäÏMþþTþ¡¿q¡k!¿yä7‰O້ïÀ~ä}‰{Óž°Wë™z–^œWå•x£ýõEî9÷akòœ¼Ã¯ÛAÐC WÀn€\:ê¿ÌÑ?‹`2ûSúMþ£mò·L~À -êG~0òKâöâ—ÁwŸ½wóÞqŸ×^°©gè…yE^'À_T}‰û2õë«…Üü¸¼IŸaÇ@ï€\¾|ü0þ³ú;ücûçÌþ<ýÇýèo•?žü€!T¯ ùm#¿M|ÿL>|¿ïuÞóºwÜçµë•z–^œåUx³ýkU/¹¯sßû¦+úÏò¤¼EïÛ=ÐK WÀn_=äAÅŸ—Íþpö3ýgþtô“ü‡cù;Lþþ€¡íZ/ò‹#šÈ¯‹ï&>ƒ6ß|Ù÷ËÎû{§}Œ=YOÔ³ô ½0/È+ð¦úGÔ·¨oKßiIãWøe» -z -ä ÈÐÀ€ùñïôgüyùóð¿Eÿ²ÿÙ™ì¯fÿ<Íþ„~7ú³òO“üùÉøBió‹ä'#?ÿPN|?ñ3àËÀ—}¿¢Þß'ïyÝWÜó¶´÷Ø“õJ½B/Ì ò -< þݪïQß§~ ý°1}ˆ_àWé3ìÈ!+À7€O€;ä¿ãßé¯Û¿ÂŸ—¿ ±Yí—Ù/ôóê?OôŸ;—ŒþP~‚?’?;ù»Â?ô·!´Î@~fä°‘ŸŠ?KâÛÄ?žÀ¿87?ƒ_ |·ï+ïmÞWëþ ­ûŠ{Ýö¬½Ç^¬'êYz†^˜äøŠðWÔª~ÌýDúiCúˆ|èÐüWþ+ý«íÿmÂ_–¿ ³µ²ÿñc¢ÿaHÿÍ›:ú¯øÑáBM~?ùI~_'7øóî~„¶DM3¿…üIO¾ù¯ÓÈŸ!òÄ牿Lÿömÿ~þ;ïVà;ï_¼°yÏë^Æ}µíM{ÅÞ[OÔ+ôƼ /¾“âÿªú7õî¿ÒÿŠéò4¿HŸ ÷@\>zä8ÿ•ÑŸ·?M]þ6üÉ~ÚýïWö»ÙÒ{¥¢yÙF^þÙYšü*:ù×ÿÐßV„Ðù:òëÈŸ}ãôé3gÏ&â_"ñ¯]sÿî½{ þCÿ)ÿÿÁ³gºïÉû—/eÞÓºî_½¢m_iÏËž±7ë…z…Þ˜äÅwRüÿì×ësUgÇñ ÒBé$!wÈ…r©Çâ !H©J‹I !娄$äFB´aFt†iu€ -±hAI-¡! ŠVï÷ûýþ߸Öo­õìgŸ³÷9I;#ŸßKÎ~xÅ|Ö——hŸæÃŽËFS§È×xȃÞ9rpôØPÿÁ?êŸô§öïïçô·ò·ðwÝßÚÒÂÙߨÑ¿žé_ÛЋþw­\™!mmÍ"“¿¢Â’?þ¹Ið{îøÃÂî»%š?3ÃüòqägD~•D>‹_Oâ/‰‹¿ -â¿âøœø®ð›šþ–¶6ö~»yßÑ!yßÓ㸗¶7í{±^¨WèyA^}'Å?Ã{™wû¬ìs)ÓŸå[<Ã_ ç@\=và¿ò/ú[ûþTþþqûÛ¶liýM ƒÐÿäºuQô¿gÕª¸üKHþúzIþ…ÕUUšü¥–ü…þyS?¸vlR™ŸJ>‹_À‘Ïä—2ùQä×ÔÔÖÕ™øË³Ä_½FÄgð‘øQá[à·ïÜi}ßÕÝ-y?0 u/Ü8ÀmOÚSÙ+öb½P¯ÐÃyQ^„7ÛÇh'yŸÇNɾ2ýY¾Å3~o÷@.]Üœ;ð_ù§ú'ý©ýÐôGù høGöïl'û™þ6¥_ªŸåýu–üËYþGIþºº„ä+ð‡à »?ö¶É/ôÈÏŠüÅDþÒeË þŠ4ñ>?þ®ç8ðµï{ûú4÷÷Òö¤=•½b/Ö3õ*½:/È«ðjûiÞÞ±/ÉÎ&N”/ñÏõè%3 7À]>ð_ù§ú'ý¥ý9ýÿáa µ¿“í·ì÷«ŸåúMþ51ùW@þe,ÿb’¿¶V’_à/Ï‚ÿ‘dø˜ üwû_pXXØ6ÙÌÏM>‰ï‘Ï‘Oä×Õsä/] -ñÏ¿!.¾Ïâøø{{z¸ï÷ jÞŒHÝ3÷÷Òö¤=Ê^±7êUz8/Ì‹ñÊ;K>N{…÷eÙ«ºsY³_ôC<â×väÈ#À'@/€ãõOúKûsú3þ\þ##qû‰þî.¡ÿ¹ˆ~È/ôûò7dÈÿø;Yþ¥K–xÉ_Uµ ²Ò‡¿(ÿþüaa÷Ù¦ùyÈ/++¯¨¨\ ä{‘¿ü1Ž|ŸÉÏ-~"øøÎ{äýÁƒR÷Ì=Ž´=i²WìzH¯Î‹òb¼òÌÏÓ^ã]}%ÚE7ïõ3<á·vôÈÀÀ Ð ÀøGý‹þÔþ†?—ÿÁƒþf”ý‰ô§ËÏðCþÇ–/wÉ_CÉ_-É/ð—ü…€Þ[‡ÿnÿ[ Ë»ÄÌŸ™Ÿ@þœ$òKüªªê…L~]ù+VJäçßÀ‡ø|ò^ÀwÞ#ï’ºWî©íM{.{Å>¢^¡wÌ‹ñÊ;D¿Ä{÷†îrêì |އvôÈ# ' :Ê?êŸôeý©ý}ü%üÅ~é~¥¿Ï£?Ÿük|ùW®€ü–üµ”ü  -üIð?ìÃ?;þ™1øCð‡…MŸM2ógÃ|Ÿüy äW -ù‹˜üúúx䫸 ?.~BâûàøÖ÷â=ç}œ{i{ÒaYÏÔ+ôp^”Wá ÷+´¯bW±kn‹~‘/å¿·s —À®nN€óù¯úSûKú£ü&û?Éö‚ýƒýŽ~ÎþTú³ägø#ù£ä¯¯«Sø«þ2†¿˜á/È‚ÿAþ°°é¼ôÌŸ•”ùJ¾e~6ùÕD~ “¿XÉÏŽü˜øâg¿8?òþSìýQòþØ1ážâ~lŒÛÞ´WìÙz¦AoÐCy1Þxg̯c7x_ÓÝÌ1ûä­=rppðß9ä¿òoúSû!ýÿcÇ4üÕ~éþ8ýýFRô'ÉŸ•ü=ÿ(þù ð?dð¿# þà~XØtÙ$2ß'ÿ¡8ùÉä×2ù.qä§‹5~BâüÄÁw}ô%òþøè¨Ô½rú´Óe/Ø‹õNz^˜â ÷¯ó¾Ý¾éö­ŒE¿È—ò -9rìè0ÿÁ?êŸôGûŸ>íðçò—ð?zö¿ûèÏŒþÉÊïà_Ìð×(ü•ü…üs3áÁ6ý–n¾Ÿù³a¾’?7Nþüâ’’DòIülòó‹Külð]ß‹÷œ÷V÷½´=´WìÙz¥^¡çEyÞÉþ&ïÛØmÝwRg_È÷xê.‚ž¹vpÜ ÿ•ÓŸÚ_Òåò¤†ÿè(ì?röç ß“û6“¿Ñ—?~NþºÚÚüðÏQø3‚?¸6-6µÌŸ#™ïÈ/L$¿ÎÈgñ™üxä;ñ›2Äw‰Ÿ|öþxäý)Êû3gâÜSÛ“öRöWÌz¥Þƒ^”WâîßåÝÁ¾'û~ÎéGòÝ9ÐC WÀ;îˆÿW´þIjÿþgÎhø«ýljýiôGÑŸ)“ÉOþ~I~þ -‚¿´´¤8þ<ÁÜ »÷–žù3ã™ÿ Ëü‡Õ|#¿8'ùÉ‘/â7o‚ø[ãâ[⧃ÏÞŸˆ¼ç¼î%î/1÷¦½`/ÖƒzH/Ð ój¼Óý¼b?Òý8çì+yƒçîè#`'@ü'þ#ý_çöçôWüÇÇãöŸxö'Óï¢_åïPù·BþMÍß’ÿ}ÉÉŸ~qð‡à ›fK2?WæÏõ2ŸÈ/ù¥D~E>òã‘ñ7·°øÛ|ñ{!¾KüðÙ{ß¼ç¼?wÎÕ=ÅýæžÚ^µgìÙzD}$½8¯È›ð@ü'¼Ÿb?Óý<çì+yƒçîØ#€`@ÿ Àþÿ‘þ„ÿN+ÿsçâöŸƒýIô»è‡ü}1ù·±ü”üÍMšüï—äŸ -üEE!øÃ¦ïr›ŸœùJ~A&ùU)äkä7¬õ#ŸÅoÝBâoß‘!þÄw‰Ÿ>{Oà›÷çÏKÞ»ºîÑöªý›‚½O½@/Ì›ñN÷_ð~)û•î×9fßèò]<ÿ»ìÑþ™2ï}ä]wôè °ÿÑÿRÿNÃÿöm ¶Ÿ»ÿÚÕ«ÈþK—"úÏúÑ/ò…ü/˜ü#$ÿ~’¿¿¯wowWgÇîkòoimÙÔÜÔ¸ñ™§7üëþ5éðWW1üå à/,œ\ð÷ÃÂîÞ&c~îÌ/+cò9óA>™ŸDþ:"ÿDþF"Óæ‰üv‰üî½=}ýƒCû‡?úü‰ÐÄ? ñGEü(ñ=ð/ü‰ë>úž½—¼¿sGêÜGÚûØ‹õÞ 7æ#â…òÉþí?©ó>ÒgÞ9pgÀn€žøïóïôþ(ÿ;wþfÿÍ›.û/¿ÁÙŸI¿F?ä?k~’xÿоþ¾ž½Ý{:$ù·>ÛÖÚ²™àÿPüO8øá¾Á¿€á/#ø‹‹ó–û3‚ûaaÿÛ%˜?Ó™ÿ@¶ù™™_J™_ÌgòÿË~}=GuÞaŸ$À„1–@HcÈE;qBS×JÚ]õÞ» PïÒª—U[õÞE/N“@(È€M°Æ0É 1iŽSœ^þ€¼½œÝ)ÃÄsžë÷\îç÷]šù”|g äGFEÇÆÅ'&%‹‘Ÿ›—_XT\ZVÄ7ˆoBâãÄŸ° >ü‹Þƒ¼Gu/rµ'Ø£¬ÇÔ ÐSæ9ñDò'x?çûÈê„Gä3ñ°3@o9ø?„¨¿€?*þ‚ý/\`Ù¯¤ŸE?’¿[’ßP]UQ^VZ\T˜Ÿ—›“}%ú®´”䤄ø¸˜è(  €_¯„Ÿ?Ók~GGËÁ/º¿’¹o)ø_öïAºÏûžgþ*j>$ŸšÏ2ßdþF˜ù›iæ#òAæsò=ùZL~HhXDdTLl\BbRJjšùÅ%eå•Õ†šºúIü$>O| þ)þ÷ ø?¸À¿z{ƒxòqϵçe°çÔèóœx"ùS²_ˆû¥…IèWâ9àg€Þ|È üóú'úüiøsû¯ûIöŸ?ÏèWD?’Éoò7ùk Õ•å¥%Å…ù(ù³23öìÞ•–šœ”Êá×@ø] ü(ø)üÈýÍÏ ~Õ}uê^ö¾`ÍüÜüçfþ&šùœü­Û ù.–ÉOHLNIÝ•¾goFÖ¾ý$òKJË**« 5µõ @|#¿‹‰?†Å_þeþççYß߆ރ¼'uO¹giÊ^´žP/9/O=ÿÛ¯—0þZ¾ü °ÀóŸÔ?‰†?*þÜþë×Iö_ºd…~"ÿ¸™üM@þÚCU%Mþƒ9Ùû÷efìÝž–š’”˜ ï#ð»Bø·›Ãÿú¦M–‚ÿóà_Áà·à¾ -¿:uŸÉþ+óYæÛ³Ìßòj>!û@¾+ _#“MÈOƒägfí?Í#¿ªÚP[WߨÔÜjlâ›$ñQâ#ñ9øç øW®ðÀ'}½gyO¹'m´gØcëEé9ó’ï¿¡ûXÚo-L~Á>”n?â`þSþ‰þ¤ýþrøûoݺyØm~Ò™ÐåÿÎÛBôËò›€ümÆÖæ¦ÆúºZCuIþ¼Üœìû²2öîIßEà‘á÷ð»AøwPø™û[̃߆¿ê¾:u/sÈçæ¯̇äcóm ùRæ¿.g>&' ß ïå£Õùúù›‘¿{O$?ç`^~AQ1‰üºú†¦æc[;¿»·¯_)¾œøBá_»~¾è½÷,î‰ö{b=¥žB/ ¯¤ý¶ß-aüµò g€žá`ÿ)ÿDšþBøcûA÷/,ܹ ìÇô_›«ŸG¿™ü@þnSWG{›±¥™'IqQA~îÁìû³2!üi)É"üþ~z ¿;„'‚ ÁOÝ_-¸¿Ru_º¶ç™¿J4Ÿd¾¥Ì‡ä‘3ïÈwä{kuzH~0$? -’ŸDÉß·?’_XTRZ^Q #¿¡±©¥ÕØÞÑiêîéëâBñ§ÍÄ'à_ºÌ -ÿæ­[8ðïÞ½wÿ>óžæ=çµ=ÕcO¬§ÔsèEã©á¿gûÃ2Æ¿’opØ €øù'ú£ö§ø“ðGöÓîGÙè¿É«Êáû‚ü'ŽsùÇ€üƒ@þžnSgG»±µ…$eEYiqQa~ÞÁ ÿnËð{{i<üÎN~üo¾a1ø×±à…¿u÷¿¨º¯NÝg1 æIa>"_4ß™3ßÁ<óùÛ¶ïtrvqs÷ð$ä@òÃ1ù‰"ù¹y…Å%eå•UÕ5µ$ò;:»º{zû‡FFÇÌÅ‚?þ >üpß#ïuµ"h±§Ö3é¹ó -áÿ(ìÓeLüNq ø `@ðóôGø?Áøãò—íÿ ´ŸÑ‡U?ŸÐ£_!ÿ È?48Ð×Ûcêê$É_W[S]UQ^ZBáß—™¡€?Âï«×ùx{yø]ü0ø¿õ–…àwÁogÝ·…îsø™û–‚ÿeÿRÔ©û|lùæÛ@ó×aó7l2ÿk$óù;v:»¸ò5Þ>Z½¯@`p&?Îù†šºúƦfù]¦îÞ¾þÁ¡áѱñ‰©éQü3 -ñ!ø7nÒ¿‡Áÿ |Ô÷<ïYÝ#îEíëeé%å™ÞöçeLüNy -„À.€à¿¬?JVþ$ü‰ý‹‹$ûß{ЗVÿaú¹üçÎùAùgü@þá¡Áþ¾^’üÍM õµ5†ªÊò²’₼ܜlþè¨`€Ÿ¯^ëã­ñôpsuqÁ¿m+þ¯KÁï‚= -~[üªûêÔ½ðY3…ÂüÕÄüW¡ù0óíÖÛÛ£ÌÍGä{+ ßÉÅÕÍÝSãå£ÕùúAòCÃ#¢¢äÌÍ/(*.-«¨¬6ÔÖ546·´¶µÓÈŸ˜œž™â3ÿ*‚û/| >üG0ðEïeîEíEìõ"ôJàÿ"î¯Kžô™òˆ'€ÿ‚þ2þÌ~Òý,û1ý°úoÿÑoEþãPþ9 ÿäÄøèÈðà@?LþŽö¶Ö–¦ÆúºçÁá×i}¼4žîn® øw àÿ¦ü¯¡à·§Á/¸¿Záþ -Õ}uê>“-Ù|H¾`>Ê|G’ù[xæòAæ;9»¸¹{h¼¼µ:½Ÿ`ÐÉ7¶ut’È›˜œšž;Ä?ŽÄÿ.Ÿ&>€ÿ® >|Ùû§Ð{T÷”{¢½ˆ=§^‚Þø¿)ö÷gNùÚüH'€ÿ2þ¨üŸBü%û -íçôÃê¿é_€ôcùýLþ3Hþ@þÇæf§§&iò÷twu¶·[šêj Õ•e¥2ü©)I‰ñq1Ñ‘a¡ÁAþ~zÖÛKãáîæâìdü›åàÇî¿ -Ü'Á¿$÷_öoFºÿç=Ãü•fæ¯æÛÚ®]GÌß°q£˜ùoH™ïá©ñöÑé}ý‚‚CÃ""£cââ“RRä—WTU×ÔÖ745·Û;ºL=½}0òÇÆ'¦¦gæ>rìø‰“Pü3Jñ!øHü»÷€øï?xÀ -ÿ1¾è=Ï{ʽ¬=Ã^ ^†ÞšïÿXÖ¬Ýù@äŸèÿ ÕáOÂ_´ß"ýïúïAú‘ü,ú©üg‘ü'üG¢É?48Ð×Ûmêìh3¶ŠðqøÓ)üQþ_½ÎÇ[ãéáæê‚»…à߸aqÝZ[[èþ3÷Wªî«S÷?ßrÍ·AæÛÙ­·Gæò‰ù8óß‚™¿ÓÉÙÕÍÝSãå£Õûú‡„…GFÅÄbòÓ÷ì…ä瘑ßÖÞÙÕÝÓÛ?04<:6>953;wøÈQ þ©Ó@ü³ç°ø—ñø ,ñ>Äà?"à³ÀÿƒÏòþcâ=á^Оa/RoƼÀ÷?•û×3göÜÒ%O?”¡ýqúÓò'áí²Ðÿ3Jÿââ!ý$úï°èò_&òŸƒòŸ>uòı£Ghò ô÷ö˜º:ÚüM õµ5üY™{!üÉI ñ±þð°àÀ?_ÖÇ<ø¹û(øìíU÷Õ©{{¶ù«ù_–Í_‹Íw æóÌ“f¾³‹«»‡§—·V§÷ó - ˆŠŽOHJNMƒägAòóò›Zù}ýƒC#£c“Ó3³‡‘êôÛPüwÎ#ñ/Kâ¿‹Älj¿¸¨Ÿ¾à=Ë{ν™ö‚õJç­úþïeÍê-PÞÁIÿO¹þ¬ü­Ø/Ðÿøñ£?£È¿ ÈËþ ?HþS4ù§&'ÆF‡‡úûzº»:ðBø@øw§§¥&'&ÄÅFGE„‡†úûÁà÷’‚ÿÊàwtÁog·níZ[›ÿ°[_±m]wÇ‘p’¢±HNÛ§,Û¢I‰Ejャ½÷–¨M‰Ú{ïmí½‡eyHNÛ¤m’>vPÇ–ä‘ÔŠEÑä¥@Û¤è9÷^^ž»(ÊR‘<Üßóy=ŸÿqÿUÌý³¼ûüøæŽ4ÿÔü×5æÀ̧˜Ïžù.®î^Þ¾~A!¡áQ1±ñ I)©ù…òÛÚ;»zzû‡GFÇ&&§ffç@䯀Èâo߀âïï‘ø>Úß?8<Ä Ÿÿ8øDß#Þ#Ük´×bO¡ž…yŠàçÚ?ˆq>à8ô€øOòèãÏ´Ÿ•þý}môßâÈÿ©Vþ»{˜ü ù·6ñ䟟›žš»62<8Ð×KÀßH‡?Ÿá ðóõöòpwuqr„Á¯à ~è>~û¯óîóã÷ÿš~æ¿F1ÿ ù?ýa>žùFŒÌwrvuóðôöñó¼ ÉONMÏÈÊQRÉo&ɾ6:>19=£| þÎM(>Œ|ø¿%Ä¿ÅðOüC˜ø(ø¸÷"½'ó^Ë=‹öë™Î³Âζ’ÓõŠã Ð.Â?©¿¦ýµøÓìg£ÿñc,úÑÏK~(?Hþm"ùægg¦&'ÆFG†‡ú{{˜ðçç)³³2ÒR““âb£##ÂBƒ¯úûùxÁo¯ ~!üZ÷aðs¹ÿ -ï>?~§´—è³›ÿ#ùçqó qóµ™é2È|S¡Hl!‘R3ßÇ×?àjPHXxdtL\BbrjZFV¶2/¿°XÅ$ph’?5=;7¿¸´LDþŒ|L|ùhããâþ9žø8øÏ¨àCï¿"úõž¨{í)Ö3¡ç„eß’ÓùŒó -ÐÂ?Cû5ôCû úŸ=ÓDÿ#"ú?»_+¿&ùüšäßX_[Y^Z˜Ÿ›™žš½FÀ߉À¯.Uæç*³33ÒR’âb¢#ÃÃB‚®øS‚_® ~ྺƒ¸ÿECCàþΟ×Ë}ž}~üŽ9½ÍäkÌ“Å|ùcS3¡ÈÜBj)£e~@`PphxDTLl|bRJZFf¶27¿°HUª.¯¬BÈïÃÈŸœš™[X\ZY‘¿EF>.>ù„øŸ‘âh€ÿ_ø¨÷ß Þ³jO³^‡òßêÜwÄt¿Òqhþ³êOµÿkºý8ýÐ~²úµÑ¿¿Ï”O~ ?™ü×Aò¯­®,-.ÌÍBøÇ˜ðW”«KTEù¹9Ù™éi)I‰ñ±1Qá¡ÁA0ø=Ü\AðÛ‘Á/Áo,Á¹O?Ýýcî¿Æ»Ïß©ìEÍ¿H1dþ#ùf"±¹Dji%'3ßf~àÕà°ˆÈèØø„¤”Ôô̬œÜü‚"U‰º¼¢ª¦¶¾±‰IþüÂâòÊÚúù»xäÓÄÇÿ!!þ“'Dâ?Ç)|màS¼grjÏÀ^—òßxº®ÿˆþ(þtû©ô…U?F?ý\òS“sc}ueÂ?35Iƒ¿¡¾¶ºª¢L]R\T—›“•™žš’” ƒß‡ü–R‰¹Xd‚¸‰êþEàþ›Z÷‰àçÝçÇï„;žùçο@˜ÿÖO4æÃÌæ €ùB‘ØBb)³RXÛÚ98â™ï 3?$4<2*&.!195-#+G™WPT\¢.«¨ª®­ohjiEÈŸ˜œ†ä/-¯®­on]‘ ‰|øXä£ÅgK||4ðiÞk¹§hÏ´^/åÿuÌéu˜þ3õ'ñG·_“ý”ê'èÑÏ.?„“M~ÿÎöõ­õµ•奅y*üü¥%Å…yÊœ¬Œ´ÔäÄø¸˜¨ÈðÐ2ø]°à·VXɤ ±HÜ÷AðkÝ‹wŸ¿SÃü—õ0ß3̇™Ì¿b$065ŠÍ-¤–2¹ÂÆÖÞf¾‘ù¡aQ ó“RÒ22³•yù…ŪҲŠÊêÚ: ù½Zòçæ!ù›[Û7vnݾ³Ëùâ#‰O_—÷ îéØë ^'çÿÖ¹c]ÿ©úkñç´Ÿ‹~Môñ»üÔäßÛ½sûæÎë[›ëk«¬ð775ÔÕVWøUÅ…ù¹ÊìÌô4üñ±ÑQa¡hð;ØÛÚ(ä2K©…¹Hhfj,0ÂÜçmÜ}ü†Àý çÏÓåþ˼ûüøé·™33ÿ20ßÄÔL$6—HeVrk;{Gg7wOo,óÃÂ#£Aæ'%§¦gfåäæ©JÕå•Õ5€üæÖöHþJþ -$ÿúö›€ü=@>ù¿¡Šÿ€U|"ñqðÿL> ->»÷¬Ü³[|ß³#O—þþdø#ö³ÑO‰~6ùü•O~ÿݽ;·oíÜØÞÚÜ`ÂßÝÕÑÖÚÜØPWS]Y®.Uäçæde¦ƒàOˆ‹‰F‚ß¿½µÜÊR*1‹ÌLMFW.cî“Áÿ¢îß‹¿âXÍ?s„ù†Tóß¿Ì761ŠÄÐ|…5Ì|gW7/o_ÿ<óc@æ'ƒÌÏÊQæ—¨Ë+ªjêê›[Û:ºº òÇ™äïîÝ‘ÿáGšÈÿù@ü}Vñµ‰Ï>‡÷TîY´?óÿ9ÆŽw¸õGñgØÏFÿ_(ô³É¿ËOM~ÿ/àß½}ë&+ü}½Ým-Íõu5Uåê’â‚’ûgèìóîóã‡ìóÏmþ»Ð|#±©™P Í·’[ÛØÙ;:»¸yxzûúÌ™Mf~.È|U©º¼²º¶®¡©¥µ½³»§o`pøÚ(Nþƒü!ùXää?À"ÿàðS|jâÓÁgë{îu[”Ûÿ=Æ^à°éOÅŸÅ~.ú5ÑÏ%ÿáÁ=ù!ü¿úˆþ‰ñÑ‘áÁþ¾ž®ÎöÖæ¦†ºšêJüª"ü9ôà÷óõötwsqv´·³±–[YJ¡ûfÀ}#àþ{ïíþYÞ}~üôÚ‰ÍGk¾Hl.‘ʬÖ¶vNήî^>¾ óƒAæGÁÌOÆ2?f¾d~M]}csk{GWO_ÿàðÈèøÄÔ4$yuAþÇùHäïÃÈòô)ÿKšøÌÄgŸË{=´?ãOtôÐ_—ý,ôéG£‘ÿùó?| äúä žü˜üø?ý„€ÿüs³ÓSc£#Cƒý½=]m­Í økª*ÊÔ%0ø•Xð'Á ‚ß×ÛËÃÍÕÙÉÁÎÖZa%“JÌÅB3ÓSsÿûþjüøý0¦‡ù¯ê0ÿmÌü+Fh¾…ÄR&WØØÚ;8¹¸º{zù€Ì™ 3? Éü² -ùõM-mݽýC#£c“Ó³s ÿc·ÎŸ¢8ó8Ž'‚°QÀÛ­èVÅlLb¢‰Wä¾A‘O<â…H¼oQPƒÈ}ß0Ã0Ã5\ -Êpß -j¶jwU@Ž–I•k¬ì®ûÃî>OßÝótO D]éÏÐÕÕUýú¾eLò«ä“‘›ˆü¿ÂÈ"¿¿ÿáÀB|Tâkƒòž—ûWýKž>üùíGÓOG?Jþ<ù`ÉÿvòCø›ü6üŠ|Y^NVfzZJRb|lLTdÄ¥‹áçCÏžÁô0#ø@ðûûúx÷ÝV8;9ØÙZ[Z˜™bîµàËùŸ6ï“?A÷ÿ(äþï$÷¥I1®ùSPæ¿'lþǘù_Pæ›[XÙØÚ;:¹¸ó=½}ü`æoÂ3–ù!ÇA懞™y%:6>!)%5=3 ’¯PªŠŠKÕDå×òYäß%ÈÇ#¿¯%þB|Vâ“à‹ð^‡ö¯Žz±@¦ý‚ôòÿLÉ?BËÿ—ÿþ½{Dòë€_¥TÈe¹þÔ”¤„¸Øè+—#.à=‚?þÝxðoÁïçãå¹z•›«‹“ƒ½­µtÙ’Å´ûC÷çðºÿÊý)’ûÒ¤1÷.}®ù†˜ùÓÐæÏ&Íÿš¿ð«E‹—.[njniecgïèìâºÒÝÃÓÛdþ†<󃘙2ÿò•¨˜¸„ÄäÔôŒ¬œ\™M~A>ùùTä ë_|®÷‚Ú‹gù?ãÚ8øGâϲ_›þç8ýÂò ùûû©ä‡ðù øÛðª - üÙYi©É‰ q ø/1<ì3øñàîûûz{‚àwuqv´·µ±²07]¾l)pá—_|þÙ§:ÜŸ†¹oˆvÿ]É}iÒÞÑ}=}„ùÆhóçbæÏ§Ì73·´¶±spt^á¶ÊÝÃËǘ¿Ëü]»‰Ì?†e~øEùQ1±ñ‰É)i™Ù¹yrEª°¸D]VQ É¿Á&¿‡ ˆÿ7­Èâ¢ÅG$¾vࣼiíLJüœü9ö£è§£ŸGþÑQ:ùü}½½8üdòkÁ_ á/S—@øóåy¹Ù™i)I‰ñ±ÑQ‘ øÃÏcÁ”~à> þõký}}¼€ûn+œìl¬,ÍÍ û‹h÷çB÷gk¹oŒv_åþëþï¤I{]ã3_Ÿcþtæ/Xøõ¢%K¿YnfaimkçàäÌ_íéíã·fÌ|`~ ‘ù!xæ_€™—”’šž™“'Ï/PRäWsÈïfïþ}näâ‘ÿ$Ÿ#þs\|v⣟×û×*ý˜.€NûéÇåÿ…-?ø´ˆäïëƒð“ÉàïaÁ_ ᯪ,/+-)*TäËòr²2ÓSS’@ðG_aÿ‘CxðïÜÝÁïçãå¹zpßÉÁÎÖºÿÍÒ%˜ûóu¸?ã¾¾ä¾4iô¸æO¡ÍŸ*Úüy óMÍ,¬¬míù®+¡ù¾þk1ó·íÀ3˜Odþ,óã@槦gdåäÊòÊ¢’Ò²òÊ*H~m]}ù ù2"ÿ1ùÚâó$¾(ïß<ëQ‰¿HúiùŸ#ä'“„Lþ‡ý ùàÉÏ ¿J©È—åæde¤¥&ƒàÁ‚?ŒþÃÀ}<ø·nîûûz÷Wºº89Ø÷-ÌL¡û_/\ÝŸ'Úý©´û\ö%÷¥M¾¡BŸ2߀cþ ]æ/#Íwtæ»{xAó×oÜ´Ë|hþ¡#Dæ‡ã™2?-#3;7O®(P—ªË+ª®V×ä·¢Èï…ä °"_‡øTâ3À¡¾ïÇ ô…ö[ñ/l?ƒ~±òcÉ?Š%?„&o/ü õÿÕªŠruiq‘ª@!ÏËÍÎLOƒÁ‹ÿy2øìÃ݇Á¿~-tßúïÜ·åþ Žû‚î¿î?Pš´W;”ùz‚æÏâ514ßÜÂÊš¿Â šïã·†6?xï~*óÃ8™Ÿ'Ë/P—¨Ë0ò¯×jêIòoqÈïƒä¢#ŸO|:ñÑàëö~‚}¹ Õ_7ýtôÿƒ !?;ù!üÃCƒ0ùûúPð·að×ij¯×\»ZYQ¦.).TäËò@ð§3ƒÿÜY*øƒƒwn'Ü÷óñÂÜwîÛ`î/p– ûz’ûÒ&÷t™oøÒæ[ZÙØaæ¯Z™¿nCÀæ­ÛvìÚMg>0ŸÈü82óer…RUTRZVQyõZÍõšº†Æ¦–Ö6~ò‡XäÓâ?#¾øãå~" ŸÈ+ Ö~áè§äåÊKþ‘‘G?þÈ7„¿ÀßÔX_§¹q½À_^VZR¤R*ä2üXðÇÁJ¹ÿÖÍÖ­ÁÜ_嶸oÜ7‡î/æwÿ®û†„ûú’ûÒ&ùPèëcèæCôùFÆ&&Ðühó?Ô69n¾n¾§·/Òü³çˆÌ¥2_ž_ *,.U—WV]«†ä×765·¶µCò»9ä÷“ä?z42:ªùÏä3Äÿ¯øÂÞ¿1Ô÷Œ~ù¡äg$ÿc,ù!üCø{ üþf-„¿ª¢\]Z\¨*È—ÓÁMÿé“ÇCŽ:°í¾·çjÊ}KsÓåÚîÈqßÄÄØºç¾!™ûúûÒ&ëøÍŸJ›?2¦nó­ùN.„ùþk×oÜ´åÛí;ƒ‚÷î?xøè±§ÈÌŠ¡3?_¡,,*QÃ̯®¹Q«©ohjnikï€ä÷è&Ÿÿïâ¿`ˆ/ -ü7{ÄÆŠÿØåg&ÿ˜üþGhøoCø;ü-ÍM õšÚ5 ø+`ðÁŸŽT$'øƒƒwnÿv˦ë×úûî;9ØÙXëvæLÒýi’ûÒ¤½ƒ6_4ß`ìæ»®ä3Ï|`~4;ó‹ŠKËð̯ÕÔ546·´¶wtvòo#ÈÆÉ ÉgGþÅø¯[x¡M(ýÚòÿJʯ•ü:à¿áïð·¶476Ôi°à¯$ƒ_ƒ? þ+ºÝwáw6Êýé”û¤ûz’ûÒ&Ý8èó˜?ÝÈØ˜ÿ>ËüÙhómqóÝ=¼Hó·íص{Ïwû:rü$n~D$žù©é0óådæWa™_WߨÔÒÚÈ¿ È¿s—A~Eþ›|fäãâÿJˆÿOJü³Äÿÿ™{Î^Ú~qò£“Ÿ€ÿ'ÿc>øïøoÝìêlokmnj¬¯Á_}µª¢LÍþÔd<ø#.];wöôÉã!GØ÷ݞݻ˜î»¯t…îÛj»ÿ‘–ûï÷µÜ—r_Úä*ôõ1ô1ó!ú”ù30óú´ù ™ïã·f݆€Í[™æŸ:z>ü"‘ùI)i0óe ó ‰Ì¯™_ßÐÔÜÒÖÞÑuó$ÿ‡?ó’ÿ’OGþ3¡È+þ[Ã={ã¥_—üüP~>ø{ øAðø»üím0øë5µ×k˜ÁŸ ƒ?ºO?ËýÛ¶n€îûxyð¸ÿ æþÂ}À>æþ Ú}Ⱦ!™û’ûÒ&Ó¡¯O†¾!úÀ|#¦ù ô¡ùs0ó?gþÞý=v‚e~2Ìüœ#òµÄÁŸ_üߘ{Õý’›ðw£üŒäÆH~ÿ-øø±àÿáîížî[]m­-Ìà/-)RàÏËÉ‚ÁŸK¸zæÔ‰cG¤Ýß°nŸ(÷ñܧÜ72¢rŸr_r_b_ÚÛ=„ùz¤ù„ùÓ0óM0ógáæÿþ¸ùsŘ¿30(˜4ÿì¹° —""£bâ`ægfç‚ÌW‚ÌW33¿µ­½³ëf7È|Œ|"óµÉÿ™—|1â‹ÿÍa~Â^RèI|ô£åçIþ§BðcÁá¿s»' þ&,ø«ÉàW*@ðgg¦ãÁqéBéþþ½ÁA¢ÜŸ‹»sº? sßÄ„È}Ì}¦ûRîK{ÛÇ1ŸúLó§CóÿÇ~?7qÞqŸ)¸´ Û´%?´Ø:-ß·1æ¾B¹Ï¦†’”’ CHBB!Ü`076Æ÷mY–dI–|ÈÖå -mgÊa0>0mL t¦ßçÙ]iWÞ•dKÐÁÝÏ ùyfôzÞF¡Oš"‰½2ÿ­wHó?þäÓ ]Ì?™Ÿ“WPT\Z^2_£Õ™ß ™o‡Ìg’É ù,ä;Å¿ë^|Qú ¡÷ýæüŒaÉï ü—ðCð·Ø­s“©‘üü…y9Ù(øÒÝß¼iã†O)÷—¿Ãé~ -Ý}±Hâpÿ·¿Aîr4ï>¿ÿ‡±„þh*ôÇ`ôæw1_‚ÌŒŽ‰‹OLNa7ÿ7IóW¯!Íß²uÛö»öì;p0ãd~æé3¹ùE8ó•ôÌ·@æ·¢Ìw’‘I~/Aþ¿˜äß&ÈwD¾/â?lÔ³ÌÏôsËÏÿ ü]'‚ÿâ?)øqð·ÚmVüõÎà//+)*€à÷!ø3Ø·g׎íÛ¶îòñÒý·Þäv?>.&:¹/‹Béî§¹ØCÏýQ<ûüFìXÌE™O…>˜/óƒæ‡bóå4ó§ 6 iþ«°ùŸ}þÅ—”ù釰ùYÙ9¹ù…Å¥eŠ*”ù:GæÛ óÛ‰Ìÿû?ˆÌò;ü.&ùÿ&ÈwùÃÿÁiÿŸ¡mx_âÛQ¼Ÿžü·±üìðw“ð_Áð;ƒ¿£þfZðW)*ÊJŠ óss²³N1Üßòå„û«W‘î¿Áâþšûr†û°ûÁà¾@ÀÌý>÷ùìq†¾Óü±Øü Â|„>6_(–H‘ùQÈü¤”ÔÉØü¹l濇Í_·ž0ÿÛïvîÞ»?ýÐá£ÇOfžÎÎÉ+(*.-¯T(UjFæ· Ì?çÌ| 2ÿd~w·—äÓÅ¿Ç*¾oBGû! -ïïWÀ—s±ËÏU~–ägƒÿ‚ÿ2~2ø-TðkkÔ*¥¢²¼´¸¨ ÜϸŸuêı#î…Ý_û·û3§ÓÜ@î‹Áý‰N÷Ç#÷È}ZîÐsÿ<ûüFÈ8Cÿ—´ÐÀü`ºù!B‘X* ó£cã’’Áü©nÌÿ›¿ ›¿c×§ù9y`~y¥B©R×èôc}ƒ©Él±ÊüËWPæwuQäßùž@ô|Oâ æŸ}œïúûY~Žägƒÿ‚ÿ - ~*ø­s“©¡ÞhÐëjÔ*p¿¼´¸° /'›rßž]Øý͞ݟ -î''%ÄÅFƒûa2‰XBw?8»?–îþhºû|îó c1ßúó!ôƒ‚°ù€>a~¨H,‘…É#"‘ù‰`~aþü ¹Ì߈Ìß¶2ÿøÉÌÓgÀü¢’²òʪj•F««5@曚ÍDæw¸fþ5ÈüîîAä¸'ÿAŠÿ‰÷ñðU~¶Óþ&ü½½=Ýÿ5?{ð›ëë µ:­F¥¬ª,/-)Âîgž¤Üß±¹¿i#rÿC÷.˜?»Ÿî'"÷##äÈ}!v³O¸ˆr¹?¹ïÌýQ|îócýzè#ó!ôÇ;B™/K¤Øü˜¸x0?›?g˜ÿäÓÏ濆Ì_N™¿™¿•0?ýÐá£ØüÜüB0¿BQU­ÖhõµÆ:ÈüfÖÌïD™2¿·‘ßï ù>ˆÏI¾/ÐßóqC|ƒhòsÃÿ= ?ÿõë(øiðŸGÁßÖÚb³Zš›ꌵz­F]]¥¨(÷ósÏœÎr_€ÜçsŸßÈ»ù£éæ'€Ðv˜ÿû?€ù"‰T&ŒBæ'¥¤¦M™6ceþó/bó_g7ï~ºùÅ¥`¾R¥®Ñé ÆúFS“Ùb³·@æŸuÍü.Èüœùý(óùß»’ÿ“gò}Ÿü¡Zï«ñÃz¼¦ß—»üdð÷ßèëëíø»º\ƒÿ,‹Ýf17™ê½¶F]­Dî:ÝOßÝߊÜß@wÿuìþ‹Ï;ÜŸ1mJZjJRb|lLTd¸\&ƒûiîîu¸ÀåþÿúçËßÐç&ôá¿[Â|ý  Âü Øü‰!B‘X* ˆŠ‰Oó'3Íù6ó· ów“æŸÊÊÎÁæ—W‚ùš]­¡Ìo6[möÖ¶vÈüóhä£Ìï¦2ÿ¦#óo!ó=‘ïÞ9ïÅ÷¸î°çú®¿æÿÞÐïÓ•°Ü„øo1à'ƒ¿? þ (øÛÛZí6«¹ÙÔX_gÐëjÔ*¥¢²¼”éþ^ìþ÷—"÷_y™éþdp?¹†ÝÁîûØý prß‘û|îó ó"ô‘ùÈ|2ô‘ù¡"±›æOÂæÏžûèc“æ¿ -æ/óWp˜™ŸWP„̯ªVi´ºZc]CcS³Åjoi…Ì?Ç–ùùýäÿH‘ÏôÎ_¼ ΠüOßWO€ûýy1>Àßág ~p¿£½µÅfµ4756ÔkuZJY…Ý/ÈËÉÎ:Eº¿›îþjpéþ«„ûO<þØ£sgÏœîO÷ãb££"äa2‰X -î;rÜÄîÿÚé>Ÿûüþ¹ ý_¡/€Ð&Bÿú!¡B±D&ˆŒŽ‰KHLó§NŸ‰Íâ©g°ù‹Àüe„ù«iæï$Ì?F™_R†ÌWk´úZc}ƒ©Él±Ù[ÚÚ;Pæÿmpæ÷õ!òo’ä òx`ä»ÒæÖ{/¤wïøžçõ#À¿[ø}ºæqÂÃÿ‚€„ÿ&‚¿¯ -þN -~pÿü_Áý¶»Õbn25Ôkõà~5r¿¤ˆpÿÄ1ÂýL÷W‚ûËÀýEÈýçžyŠrjÚäIɉ q1Ñ‘à¾T"†† Ü'Ý÷”û¤û|îó{èç1ôÇâÐ -¢›?1T(’HeòðȨ˜¸x0?5fþs/¼æ/óß^¾b%aþz†ùGhæW(Àü­Þ`¬o45›­6{k[ûY0Ÿ+óoÒ2Ÿ"ÿÎ òYPóQ|WÕ8Áwgýt¿ãiÞ½\úsÑïÇ;òþÛøÉà¿Éüç!øÛÛZí6Ò}ƒ^[£÷+Êœîa¸¿~ÝÚ5„ûo/[ºd1¸ÿÒ Øýùó÷SS’ãcc¢"Ãå2©X$„ÜGîOøvŸÏ}~#kLó9B?B<…>˜*KdaáQ1±ñ‰I)`þ´³æÌ›¿`!6ÿZ´x ˜ÿç+ß_µz‹ùLó•`¾No¨#Íoimë8{2Ì'Èïdf¾“ü[ˆüÛLòïrïkä»zÆ>ö”çBý¶§yñ°óÏF¿¿Ü÷ þ[ø]ƒÿʕˤûÀý޶Ö›ÕÜlj¬¯3èuà¾RÁp?c°ûï¯ü/ûõ\U™Çq|œÕÙÕ¥8£ã -Éí½å¦@!„Þ{»é½÷ÞI! !„Í ®: cEìŠ:® -H !=4wvw}±û<§Ü{žsÎM‹;qÎïõ¹oþ3ù<ßäeg¦§÷c¢ ûþ¾Þžîn®.ÎNÀ};=t_!—JDBºOæþ“\îsû=5ô#Cÿq2ôWRB˜ÏŠÄR™B¥ÖêôvkHóýƒ¡ù†„¤Üü’òÊ꺆¦–¶vºùâæúÙß¿8|ä«ã'Nž:34|ndl|b -˜OÏü¦Ì¿ƒfþý¿hÈÌšÏ>;ös)oõŸçݼo›ÿLûYä·ä¹XOf~³Áÿ)øûÓSãc#熇Μ: Ý? Üÿ”pÿÝýö¶–¦†ºêÊò’¢‚ÜìÌ4ྸhrßq p_§U+2©X$äó¬±ÜÇÝ_¹b–ûOp¹Ïm©i>=ôÿL„>0ÿ©§¡ù«­x|H,‘É•jNokÌ_¿aã¦Í^ÐüÐp`~|RJZfv.Íü^Šù¯8øö»ï“æ…柆æŽMLNMÃÌ7™ÏšùòAÈÿuîn½OÃþËêC|&÷ìÔÏ‹ûÝEÎü[Àâ?Í~ºü–rÑð7Bá7ÿ5<øq÷/]îOŽîÇÜÿ sÿÝ·xâ~oOw'é~YIQ~nvFZJb¼!&2ºïãå±yÓÆ ëûö¶zF­”Ë$b‘€Ï³ÂÜú)Üýå˜û\îs[Ú3ú$CúÀ|kž@(–HåJ•FkÌ_»Ž0ßÇ/˜mˆOLNËÈÊÍ/*)«¬®mhjnkïDÌ7ÿChþç˜ù_óÏ`æŸÇÍÇÈÇÌG3’s Í|D.óäß^s›OŸ®=+õf}ÿéÆö 0ýGìg—ßRî3åŸ~jðßÃÝÿÉü³dð_½àÇݿܟ>{æôɯuôðŸC÷?|sÿUºûÍM µÕe%…ù¹Yiɉñ±ÑÀý ?Òýukìmm´•B.•ˆ„ž5pߘûÀýeË`î?Îå>·¥ºGô ó…æSCÅ -£ù ô­y|¡H,•)Tj­ÞΘïìâêæî Ì - ‹ŒŽKLNÍÈÊÉ/,)«¨®­ojnmïìêéíæ?‡˜šÿåá£Ç ùCÐüñ‰Éi`>5óù33XæßbËüß„|VóQò©àÓ´g‘žÕø;´ý¸ð¡?¤¿ ÿ©öSéGà·œû÷ ?-øoÞœÁÿ½)øûçûãF÷îBܸß×ÛÓÕÙÞÚÜTÝ/.ÌÏÉÊHMNŒ÷½=ÝÝ\]œ€ûvz­Z¥IÅ"!Ÿgå>á>—ûÜ–øæ -ý?¡¿„þ“8úÐ|+_ Kdr¥Z£ÓÛÙ¯qtÂÍ÷öõæGDÅÆ%$§¦gåä—UTÕÖ7.ÄüSÀüs#cãSÀüKTó¯óg1óoCóY2ßÄÕ|äß'Y¨Z(WfÄG¹§SÏTüöŒù°úÏNÿè§d¹£%N8üä!iÁþð࿎?îþeàþ4æþ¹³C§Oaî9·ûõµU¥Å…y9Yé©I q±Qa!þ¾¤ûŽkìmõ:Z)—IÄ"æþ³árŸÛï`0Ðg ý•¦Ð_meÍÅ©\©ÒèllùëÖoظi³‡—¯`phDTŒ!!)5=3'¯ ¸´¢ªš¿µ³k{o_?0ÿyhþ+¤ùŸ@ó=v1ÿ"nþ·Wpó±Ì¿ 3ÿö<™ÿðȧŠÅb¾I|JáSµG¨g8O!ûm?,bÈioâ?“ýFùéð3i‘3Î?{ðß&ƒÿÆ ÄýKÀý©‰ñ1ÂýÇŽAܺÿ·%º‡>iþªÕÖ<¾P$–Ê*µÖFoç°–4ßÇ/ 84<2ÆŸ”’–™WPTZ^US׸¥ukG×ö}ýs˜fhøÜèØøäÔôÌ|"óIóhXææÓ3ÿW–6µ(ù,¡oŽ|øíQêÊSø¾‰nv£~Ïx¨E£ýˆüÿfùßÉ’î3ä§Ãÿ+~¶à¿…ÿÌ æ>?æþÅ ÓS“Ðýá¡3&÷?¡»?Ðß·c{Wt¿®¦²¼´¨ 7;3-%1Þà烹ï Üw°ÓÛhÕ*…L* ù<,÷ŸìC÷—/çrŸÛÒ3ôÿ€„þôÐ_BŸC_&Wª5:½}'gW7wOo¿€ °ÈèØøÄä´ŒìÜü¢’òÊšº†--[;¶‘æ¿ÍÍœù“Sç¡ù óqó¯]æÏ’æ/.ó-I>Kè³f)N> ¾Ñ{Šö(õtäM†Ï »±€Q>§¿ÔÕŸJ?)ÿ/¬—µ,ûæá_HðÃ3bîÏB÷Áor”Ýý× û/îoëØÚ²¥¡®º²¬¤(?7+#-91>6:2,$(ÀÏÛÓÝÍÕÅÙÉä¾^§Q+å2‰X(àƒÜ_eÌý•\îs[z[|è[YóB‘D*W¨4Z[`> }h¾¯`HXDTl\BrjFVN~aIYeu]CSK[Ƕî;ûù/Aóß ™5ÿŠùÀ2 ðj¾Ì¸äSŒ2g>‹øFïÚS©G™gè~ÙµŒò9í! ¼FþIûiôß3^—y^úi-wÔùág?¼&î>ü¸ûÿ€îŸŸšœ0ãþÐý—€ûƒý;wtoëhkij¨­®(+)ÌÏÉÊHMNˆ‹Š ô÷õö¹¿ä>pßF«Q)äR Ì}k,÷ ÷¹Üç¶Ô¶¸Ð毶âñ"±T¦Pªµ6z;‡µÐüM›=¼|üƒC#¢b I©é™9y…ÅeÕµõMÍmíÐü]ƒ{€ùû ùo¾eÆüi`þeÄ|Ì|Ìüù3ÿ¡‘Ï@ߦÀÈ??Å~D~æ)~(‡e…ßLðîÿˆ¹’êþ7¨û'÷ßzº¿¸¿gp`×ΞîmímÍMõµU¥Å…y9™é©I †˜¨ðÐà@?/à¾3pßÁN¯Óª• -™T,ÂsÿÙEæþÿû/7|¬æ?:Gè¯ÆB_,‘É•*NoBßÉÙÅ„¾_@PhxdŒ!>)%-3;¯ ¸´¢ª¦¾±¹µ½³»gç®Ýƒ{öó÷cæ¿óÞ‡>FÌÇÌ¿„›å*aþ,f>pé2ß2±¢O‚„zD6>>á=©½Ñz*ôò„ÞWÉ]A÷-ûЈŸRßÓ @òOào²Ÿ*ÿÏŒCÓzߢÇ}€à‡×e¸¸?ÍtÿãC¼÷æþ~àþÞ=ƒ»wõötw¶·67Ö×T•—äeg¦¥$Æ¢#ÃC‚ü¼=ÝÝ\]œAîëu•R.“ˆ…žµ—ûÜ–äÌ„þc¬¡ÿ }k_B_®Pзµ_ƒ…>0ßÛ×?($,":6>19-#;· ¨´¼²¦®qKëÖήžÞ]»ÿºgïß^Ü·ÿeÂüæ2Ï|Òü[¨ùH‚þVäÓÑ7bÄB">>Á=©½QzªóTã˜ÿ˸.lÆï©é ý'ô'ðÇíÇè'å¿ËòÀ>Dö¿Ùà¿?¸/æ>€wÿáþêþG„û/ïß÷âÿدï 6ï;Žã×k.½öüoÓKb;‰Ëvz„ä wÏçïçÑÒÝëûV{kKc½RQU^ZT›™.MIŒ—DG†…ø }øn<';û[aîoX·vµ¥Êý—.¹ÿ;.÷¹-¬ý·õ†þ» ô—’з„¡¿™¿c—µ­½ÏÕï-ôó -‹ˆ’Ä%&Ke™òÜü¢’òJ…²®±˜ßÝÛ?8lÒü¿cóŸBóŸ#ó!D/I~Ê|ä¿.óõ ¯kþw˜¡—D|6ø˜{ª=¥^ã<Ûxâ÷²¿iï¯ú§ý~“u˜@ýÇúcü)ýH~Úü üúÜŸ öMÁ¯/ø÷ÿ£qŸ¿I÷‡û{»;ÛUÍuJEeyIQ~®4ˆÉüW¦2ŽÈ7€>C#з,ò‘ø,ï±ö{J½Æy¶ñ„ò¿Ðýy6#ï°®sÈ üSü5ô3òc÷§}íäÐÎûÓá7ü¯ø‰ûÏûϨû_êsÿÜêþžQྺ»³MÕÜPWS]YVR˜Ÿ#Ï¥&'ÄÅD…‡ŠE¾/O7gG;›Ý;·oÛ²yÓ'0÷­,ÌV­Xs1Ìýw¸Üç¶P¦…¾vèÿÊ`è´lÅJ3sËÕk™Ðßmcçàäâæáå#ˆCÂ#cb’RÓ2²rò -‹Ë*ªkjšTmÝê>hþ¾ÈüSg ùÆÍþ~þ˘?ËÌ}F_Û|R˜|F|â=Öž`O©§Î³ŒÇr?ÆûÝg>òþÍ '€øÏèOì‡ô?ƒôcù5ð³¾zæØÎ%û&à7üèÖ‚ïݨûÈýSÈýû€û}êîŽ6USCmMUEYqa^vVzZJR|ltdXˆ8@$ôá{¸ñœì`îoý çþjKs3&÷ß5™ûûÜ~›uè¿¿xÉ(ôÍ-¬Ö|¼‡þŽ]Ö¶öNòþæÀðOñGöCú©ü°ùøõ¹O¾û¹cßüºÁÿýô“KÝÿÚ¤ûã'Ž9Ýèëéêhmiª¯UT•—äfg¦KSã%ÑaÁAþ~o¾»+ÏÑÞÖz“ûk¬,̹Üç¶À¦ƒ¾ÉÐ_BBß„þº Ÿ€Ðß¶}'}GgwO/¯`phD”$.1Y*Ë”çæ•”W*”õ-­í]=½C#cló/#óo5Å&6ç%jÞ3Ÿ­ }ÄŽ¶ùZä3⣾‡Þcîì õlæY¾ÿï>Þ=fwŒ>C^BÀÜr°ÿˆ‚?±ŸÐOåÇð£à׸~&÷µ¾÷¹úÆÿûì~7÷oߺyýÚÄe¶ûc#C½=]í­ÍõJEeyIQ~®|7ž“ÈýŸÃÜ߸þc”û+AîÀå>·0è› ýUfV(ô7mÞBßÚÖÞ‘çêÎ÷øù‡EDKâ“RÒÒ³²ó -ŠË*ªkêšTmÝêþÁa`þÁÃGOŒŸ<}öüLÍiÈüù%ß$úßj"ó9Âjó¯¾Ââcð±÷ˆ{„=¶^=ƒ¼†÷I´›h7˜]72ú ~¾Í|ÿ‰þh?¡ŸÊ“Ÿ?ë·˜oöMÃÏvÿ³uÿüÙÓ'Ç= ÝìWww¶©šjkª*J‹ ò²³Ò¥)‰ñ’舰à ?·§»«³£=ÌýmÐý \îs[HÓBÿ'‡þn;g7O/¯(P%‰KL–Ê2³s ŠJË«µõM-mÝê¾ÁáÑ=Ðüã_`ó¯\½~srvæOMQkæß|cèk !æ#òÿ‰"‹À‡Þ3ÜSìõzª<#uWG[KS}­¢ª¼´(?Wž)“&'ÆÅD…‡ŠE¾>^n.Nv6 ÷·~öéïQî[ÂÜ_f*÷ßÂîsìs{S3úý†þ.úN¹ø  @ø‡úcüAøú¡ü°ù ü÷_¼À§ø ±o2øõºOnñt÷÷oM޸ܿpîÌ©ñÇŽ÷ÇF†ú{{:ÛUÍ u5ÕeÅyÙYéi)‰ñ’èˆÐà@_—§›‹3ÈýÝsÿ·º¹ÿ6É}Ž}nof¿ÐB_'ôú‹ -ý54ôw€Ðwpâ¹yxùøŠÅ¡áQ1q‰ÉRYfvnAQiEUMmC“ª­³[Ý?82¶wÿAùÀü[wîó!óŸ4ÿâ…š¯›ùÚæÏ™7 9úм0¡O;áÌäÃÆ‡âCð‘÷{¨=žRœ'ÌSá!àgÐN£Â;izäIô|_|Ð@þSýþÀ~Bÿƒ‡@~œü~m÷á_0øË€clý¹ÿŒ?rÿ{ãî?Aî?îßEîOhÜ?¸ïØð`¿º»£MÕÔP«¨*/-*È•gÊ¤É q1Qá!â‘ЇïáÊs¹¿Ëtî/ZDØ×É}Ž}nó8Ðÿ% }ˆ>0ÿ70ô)ú ôßÓúÛAèÛ;:»ºó½…~A!a‘ѱ I©² yN~QIy¥BYßÔÒÖÑ¥îæ>z™ñ20ÿæÿÙ¯Ï種3Žã“À˜äLf’1(ÆŽÛ_ã8™Ä˜:˜bªPï½÷Þ{ïZI«²êZíª!!Ô*¨"dìlãÆ yžsÎ-Û„IŠû{©½WoÎÌç|/š?…æÏé6ÿÛgš¯§Ìq³úËWâ ‘âCácßï9íIÕ£õTzê<3žã½ ×J¦¤SkQ›ð {_Ã@/zýgüSüÁ~¤ª|båGøUÝGöñxt³¯ÇƒP…_—ûìp´»?‡îO¡ûÃà~ßåKè¾BÞÔP'«ª(“äeg¦¥$ÆÇD…‡ùûz¹»:ÙÛZY˜=}òøÑÃöíÙµrÿÏ|î¿§5÷ƒ¹¿Ý_aÈ}Önè/gès¡¿JúÆkMÖi„þúÛ¶ïÜCBÿ䩳çÍ-mì]Ü=}üCÂ"câ“Ó2²s Š$eÒ*Ym=˜ßÚÞÙu Ì™¿ð¼æë=ól8aÔÐHÑ×b>#ŸŠ}Þî{©öh='=už!Ïx'˜ËqÍdMlºÇ=BžÇ7Ù}@/v ÿ‚þÌ~B?'¿¿ªû÷Reÿ‰ -ûú9 mÁÿî/÷á|¦&ÆÇF‡‡Ñý®ÎöV…¼±¾VV)-+)ÊÏÍÎHKNˆ‹Ž ôóñtsq´³±4?æÔ‰cGíß»{çvÈýŹÿ—ûÆ4÷Kr•8÷—S÷ ì¦Ç© Ï‡>‡> }}ú¦úo -¡¿Bÿ£wìf¡æÜ k;g7o¿€àÐˆèØ„¤ÔŒ¬ÜüÂ’Rieum}cs 5¿·ÌŸ˜š¾> ¢`Iê4ÿ;4ÿ‡—Âüç@Ÿ3_…| -z/Ò­gÒSçò xT¼WOVGW+¬F4á¯ì9|_fw¹È €þ#ÿLÀì‡îïä'ð«»ÿ²°ÿóÜÿÝÿN§ûxJóèþ4º?î÷÷÷•-Íõ5Õ•å¥%…ù9Yé©I ±Q¡Á¾Þ®Î¶ÖfçNzü“Ã÷ý}׎!÷ÿÄåþ»$÷7m4%¹ÿ—û¯ÒÜçØç¾}Ãô0Ð_ÆBÿqè#ú*¡ÿ„þ{4ô߇ÐÿÛ¶í»öì=pè(†¾™¹•­½“«»—¯PhxTL|RJzfN^a±¤¼¢º¦®¡¹EÙÖq±»Ì¿rudìš6ó¿ÔeþÚÌ×/ùOÕÔ'®ˆÐ§žˆ5¡æ‹ÉGñ øà=pÏiØ#õôLy&<çº W«âV©kÜäq|]ä W»ÿDÀí'ôSù)ü4øo°“ºÇÝÎôœÄìÓÓÑ£úOµÃ¯âþºÜÿRtRðAFjâÚØÈÕ+à~O÷ÅŽ6eKSC]MUE¹¤¸ /'3-%1>&*<$ÈßÇËÝÅÉÞÆÊüüÙS'=t`ïžÛ·‰sÿµÜ'ì‹sÿ–ûË ¹o˜¾¦¾JèÿZ#ôM ô7‘ÐW=ô÷<òÉ }Kk;Gg7O¿À°Èè¸Ää´ŒìÜ‚"IYE•¬®¡I® æ÷ €ù£`ÉôÌì Vbó,bþ“%5ÿYè«„>˜?ÏÌgäSñ±ð»‰÷À=ѱç©'ÐSåñî0)®œ®LX©Ê„¿Óñ|™ÞôÀ€úüý´¿“Èå§ðcð3÷oû˜ûÿr©Ù×íþ“EÜ rŸ|•÷g¦''®‚û}ÄýV…¼©¡VV%-“äfg¤%'ÄEG†úy{º9;ØY[\8wæÓ$÷wkæþ’û&k׬rßȈ±¿‚±¿ÜÀ¾aú™ -ú*¡¿Í_ɇþï~¡¿FýwÔCßÃGŸ<}ÖÌÂÊÖÁÉÕÃË7 (4"*6!)5=+7¿°¤TZ)«­o”+ZÛ;».]ó‡†G¯ON!#ó·nƒù”‘/3ÿ§—À|‘ú"ô¿WG_-Ñ|¬|F>¿ƒxÜSí{´¥§ÎóÈ3ÞQs ®WÌV´ØØ3ä|“ÞôÀ+/žÐðÇðúyù)üüÔýYîÀà’Vgÿ{ƾþÕ–û?-æþàþ?ð’^ —ôõ<¯Ñá!pÿò¥®ÎöVEsc}mu¥´´¤0?'+=5)>6*"4(À×ËÝÕÉÞÖÊÜL-÷?PÍýÖ¯3Yc¼šcs%ºOÙç¾}Ã^à4BŸCŸ }‚> ýÕ\èoÑý,ôO9ÁÒÆÎÑÅÝÓÇ?0$<2&>1%=3'¯°¸´¼¢º¦®±¹EIÍïóÇÔÍÿ'׎ È7?Çü¥ _#õ9ô‹Ñ‡vüœ„þÜÍYfÈ"‚äóâøè=pÚsØSê9ç©òTx4¼V€Ë'Ëã–«cÜïäi|Þ§W¹ð@ÿÿ ?àOìúyùþþÁ!ø6C÷¯ÏÞœ›¿}Î ŽLÌþã¥e_+ü‹»ÿ ï>æ>û8›cîûƒýp`]mʖ憺šêŠrIqA^vfZJb\LdXH Ÿ§›‹£å…ó˜ûGîÇÜÿHœûo ¹o,ÎýUj¹¿Ìû†½èi OÌçÐ'¡Ï£¡¿vÝú 7¿. -ý?ª…þ93 k[gWo¿€à°ˆè¸„ä´ŒìÜ‚"IYE•¬®¡I®lë¸ØÝÓÛ€Œ]c~Ü"~æß¦ùK˜ù-âÔçÑHÑGA>»·pç6†þÌ41ÿ*šOÉçÅo¢Þ÷"ì‘z„ž:O”gÀ#ã9°l\Y&· ­ã~%Ïâ[ð6½ È%€7úÏóúcú× ý¼üþÞ>ê¾ð}vgŽ N²ÿP`ŸœÕ’¨¿Hð/æþ}M÷ñûl>Ï®^÷{º/v´)äM µ²*i™¤¨ 7;#59!6:"48À×ÛÃÕÉÁÖÊÂììé“ÇIîïÒÌý×Iî¯]c,°OsÿWª¹o`ß°8ôE¡èó¡è“Ð7^k²Ît ý·¹Ð_úÇ0ôÍ-mì!ô½|üƒBãbã“RÓ³rò KJ¥•²ÚúF¹¢•†þÀÄcb’kÆ…ÿÙ|=ª¢=õJÈ× ýÏý[ó<}½=— ò|N|ŸxÚöÔz”žÄ‡þJ@ÿU}ý5$ô7oyój¡¿CúV6öNú¾úQ± I©Y¹E’2i•¬®¡I®lë6z¡‡GÇÆ'Q›óÈÆ½Ï˜ùÿFóÁއ/µùÚSÿ1¦>¢ä`è×g¦X-öóÛÛ” -yscŸ_‚qÚöh=RO¤Gç©ò”x&{,.MÅí?ì×ipUõÇñQÔÑúBInö•}GÙBØZp@…[¬¶X´RA‘]a $!d_ÈB6²ö]Šv:6CÉÍrIز€Ø^ ý=Ïÿÿ?çÞ$‚ˆWç>/ï=çÕ3óy¾g}«Qÿðsü -^×€¯]:ÒðÏøÇýR~$N.ŠŸƒ_¸ÿï¯pµ‹ŠÏƒý -É>¶×(ا½=îØ×·ôCÝÿF¹_Ïî#÷éhWi¸Úô¥F <~ôð}ùyÙ»3RSb£#ÂB·mÙðÙªåŸ~,rÿmóÜãï7\Ïý.*÷‘ûŠ}侯¾tÿI[îÛæ§ ôÍBŸÐ§ÐoO¡ß±‡~gGƒBßÃËÇ·uè¿júKúk֮߸ekHXxTL|brjzfvîž}!ôa>È((d‘Š&˜Ð¯­£Ðoüæ÷8Íoúwdê ô¯[ þ\¥"È Ttè°ÿàúSûÃ~I?ä'ø³sòð­F;T‡¹Î’}þLcöyq"öŸú–î÷î×ÕQîÃ}>ÖŒ¥ÎãpÒáæÜ?rèÀÞ=¹Ù™é»’wÆÇD…oÙºyãúµ«Wê¹ÿåþ äþ$Êý"÷ûôBîûzËÜû”û:Rî·çÜ'öŸ±±o›ŸmZ†¾BŸCèÛ۫Сopvqs÷ôö¡ÐïÝ—C¸Ÿÿú³´Ð_„Ð_Ðß°)(8tGdtÜΤ]i™Y9ãàác'>×2ñÜù’R#À0]dó9ôFÓ/ÁüïI}‚C¢_{õŠŽþךèD˜ÌÏÚM䓸|xî {e=QOÐ æÙxé;Y¾³Šf%Ï -5Ë[ú‡Ÿ£7èUq ø -Ð  Àþƒè,íˆdùÑü€?#3 §{¯¸ÝbìÓÝìÓú¬#öïý÷›„ûµÂý‹&Úbi‰¼Ýb¼Fl1#-%)!.:bGè¶ MëdîÐ:÷GRîìß·wOä¾—§»›‹³ÁÑÙÿ å¾½=³/s_°oéþãöÂ6¿‚i‰þSæèÛý}„¾ƒ£“³«›‡—7B¿G¯>ýPè5zì„IýZè¿Ð_ŠÐ@èo ‹ˆŠOLIÍØ—¿ïÀᣪÏ‹â’RhQi¢JÔÌoli~óÍ ŽÜ³T_¦þm•ú ƒÑ¯±Dÿô©“ºù™éi»R’âY|€/¼'í5ë…ôŠy6^úN–/Ã|J³”ç5·õ?GoЫâð  üÿŒ _ÊOð'§¤RðçòùÖV©³_Ãìc‰*öo[EìëÛºûÍšû·„ûºû5ÕM•Ʋ %Å´Iþf£U:°/?7{wzjrb|lTxXÈÖ-Èý5Èý%Èý÷DîÏ–¹?–sÿ¥ôëÓ«‡È}7Wg'Gä¾b¹oggcß6?ã<ÑúOKô)ôÛë¡ÿBgGƒ“‹«»§B¿{ÏÞ}û„Ðé?fÜÄÉS§Y„þb„þj„þæ àí;"c(ôÓ3³ … Ä/E —\(3VT" a>g"ĸ%Í¿mµæ·‘úÍÍ -ý¦Æ†úÚkÐBG_HqâØ’‚ÍOMIfòÑø,>ïI{Íz!½bž—¾“åK0‹i>âù‡šE­FýÃÏÑôª¸|èˆ@üCÂöKú!?ß°3 îg°ûj›tÁuö/_¹V[ß@[ìcÖûúÂîëþmÝý›üÁÖ ÜGîã£Ý?_\tVûlÃ6qÁ±Ì´]I;ãb"wlÚ´¹¿¹¿HæþÊýiS'Oǹ?xç~÷®È}wW'ƒcgÎýN)÷Ûsî ö¥ûìÛÜ·Í£Œúíú2ô¾½Ž>BßàìâæîéíÛ¥‡þ‹/ 6ÂO ýÙ2ôRè/GèŠÐŽMàÐÏÉuøù?¿€ùÿ9s¶N”Ë+«L0ÿ2b=…~Ó-ÍWè[—ù÷K}⢾VÔ úg}b‚B_šŸ´3>.&‘OâKðá=¸'ì…õBzÅ</}'Ë?Äüæž÷Õ,l5ê~ŽÞ WÅ5à+@'@âú3þ‚~’?$ðGEÇÆ³û™Y9yùj¡:ûøj«¹|õZ]=-ÒÚbÿÞ}Ýgö5÷¿e÷o°ûõ´Ê+侩ª²ÜXZrþ\ÑYì“Ü_nùyÙ»3RSb£"ÂB¶!÷ûKUîÏ“¹?eÒø±£ýF "s¿[_oOw7grÿy•ûööÌ~ëÜ·±o›GŸ–¡o¾Ðï ÑGè;œœ]Ý=¼||»ÊÐüòð‘£dèÏœõÆ„þ;úQ诡¿3¡Ÿ›¿ïÀ¡£ÇOž:ÍiX$JJ)Á™/B¿‘͇ßZ¿ùfê·‘ú×êjˆÕ -}*}´!Œ@èç²0?6: -•ŠÆ‡ø >¼'î {a½^1ÏÆKßÉò¿Ñ¼‡Y æ¯jþÒbÔïâ1zƒÞ×€¯qˆ迌Òöƒ~’óÀ¿=,å>ܯÆǧ[iI16Z >ÞN§·=¹Ù™é»’UîoFÜÿr>çþÌßM{…rÔÈá/k¹ïëíåáæêìdp@îKö‘ûvvm±ÿ¤}Û<â´DŸÍèSè·×Cÿ…Î2ô½|ôÐ:ÂÏìøIS^Ρ?O ýe2ôC9ô“RÒ2²röìÝèȱ"ô -¿.*.¹Pf¬¨¬ºX]cf~“2ŸÑ·nó% wÍÕ×S¿¡¾öÚ(QUaÔÑ' öï݃ÐO0?2”Ë+«LÕ}e~#Ì¿ùË1_Oý»ý;ZꃉºkW/×úCsôóó8ôâÈüÐà­A›A>ŸÄ—Þ/&í½ ž gçòBxûŸhþHó–˜yÚüAí'ñ?Nï‰sÀg€O]øOú#þa?…?Ë¿j5ÿiKжv?!‘7›—¿ÿ ³½âû­¤”دÁJûZìß‘ìßµ†Ø¿÷î߼ɹ/Ü¿|©¦ÚTUQŽ­â–Ÿ=£r_~ÂqîÇÇD†ËÜ_e‘û¯Ïšù[äþ„q£G†ÜЯO¯Ýûžn.ÎG‡Î:ûöfì?Ýû6÷móðc~;}˜ÿìsv@¿ƒD¡ï`prvu÷ðòú={÷í?pСÃýüÇŒŸ8eêô¯Í~s.…þ‚V¡gú§N úçŠKJËÊ+ªLa>B¿®žCŸÍ¿¥™ß¬™o†¾õ˜ßVê7·L}SeyYIqQaDÿà~†¨2˦ ëÖ®YÆ'ñ üEàÚ3öD½„^0/Œ—º“è¿§™K3GΛß;â~˜ÞAœ:tØèú_û™~’ŸáX¸qsÐ6êý˜8ÊýLt°ŒÙ/(Ä\Yy¥©eì7[YìßkÃ}}á~³æþ-ºâ7Dî×Qî_ª¹hª¬(/Ã5Ç7rî#÷åWr?‰s?¹¿^Ïýw‘ûsß ÜŸ:eâø1þ~Ç4°?r¿{W_/wWg'ƒr_²Ü·³{îY=÷ÛI÷mìÛæÇNËÐÿ?ûuõyp|bÚT01m]ñ¹ïû¾oEQðÂ[£ÕV«ihM“ØèhªVcŒŠ¢ˆ¨\"ײ˲À.‡Ñ ¶U§qÚçyÞßï· 5igÄ™}þÜý½½3ŸçûEŸ}C#‘BßRbck7‰BßÞÁÉÕÝÓÇ/08,":.B>…þÊ¡ÿáGù¤Ð/»^^Y]S[ß •ÉÊÖv•º³‹Ìg¡ßÓ eH¡æ?ÑnþóQdþõ‡¤þ}>õ• -¹´¡¶¦ª‚Gÿä tB¿ðdþÎPùù >þòeö¨=YOÒsÎ3ä9à‘ñ˜dœ$6‰ü$ þö!žÁô -Ø`üþAÄ)£äçàßþ.º¿ï½÷ ÿ„¹;ßqXûU5µ R¸Z>öïû/ûî¸ÿ\»ûOÈ}Ì}¸Òæþ=t¿»«S­‚ÜWÈeÒ†:p¿Wúåâ çð!wì3-¹Ÿ‡¹??=-9!.:",8ÐÏÇÓÝÕÉÁžå¾­µÄÒÜÌD,ö!÷ ÆcîÃþûºùA3}2Ÿ¡¯§§?®úFÆ"@ßJbƒ¡?CßÑÙÍÃË×?($<*&>1B?k …þz!ô ¹Ð?qòô™³EAúu MrEKk›JÝÑ¡/˜ßÛυþ3ýÑjþPõ¦þ]JýÖ–æ¦ÆºšêŠëeúÇ?;rèàÇþñƒý¿ßËÌߺÈ/Xâø9Ä}aϨç gÊsÄs²ÇãÄÑIJ‰i¸oè{<ɶ-ܸˆПð_ŒôƒüÐüÿ&æþîßíÛϯudj–zEuM]cSsK+Åþ]­±?ŠÔÉ}bÿ™ûœûx÷!÷»:Ô”ûò¦Æ†º[7!÷¯]…Ü/&÷ VaîgeBî'ÆÇD†‡ùûzy¸9cîûû6+ 3S±ÈØÙŸ`@ìÓ×ÓãØçÜ×±¯›:ZÑçB_CŸCBßXlbjniemkèO>BßÅÝÓÛ/ 84":6!95B?;7Bÿ-¡þBqI)úM²æe[»ª£³›B̧Ðïë{ÕÌÿ·àÅw¼úOP}Jý\ê·)2iý­›•7Ê®\¾ÈÐçKpßžß’ù›6¬_ äçç¡øK˜÷™¨=bŸÆIOÎ3å9àñh˜(œH6ü„kþ?ö)žÂã´ -hЀ@ü#þÌ~”šà_]°nýFtçoöì…Ü?ðÑ'Ÿrì_„·ÜÊ›·ê¥2…²‹ýû¨þ^ýï„{|Ù·GóÂî?†ºìã+îÎW·»:;Tí­JE³LÚXÏr¿¬t¸Üß¼s?7{ä~jRBltDhp€Ÿ·§›‹“Ãì™Ó§¾ ìÛZ[Yš›šˆ öߨCǾnþ§y­?ú¯B__ŸB¼†¾¡‘Hlbfa)±±µ›4yÊ´³ìœ]=¼|üCÂ"câSÒ221ôóWPèïÄÐÿ€Bÿ(…þ¹"A}© C¿]¥îìêFó¹Ðï?~µÌ >¡ÿŒKý>Jý¯1õÛ[[äM µ5Uå×J5èòç…»wý;ú‚ÕPùËr¡ñA|?#˰gÔ“ôä÷{x÷!÷»;;ÔímÊ–fY“&÷KŠ/œ”û»Yî¯]M¹¿`ÞÜÔ¤øØ¨ðÐ _/7gÇ9ûS&CîÛH¬,ÌLÅ"cdŸË}ûºù?LóÇðæ èÓ ohd,215·´²¶µcèÛ;8¹¸{úø‡EDÇ%$Cè/\œ³ŒB H0Lè—WV×ÔÖSè+!ô;:»ncèƒùú}}d¾úœùÿÝækQŸKýÞG…ÔWÈ¥ µ7+o”]¹táÜ™S€ ý}{@‚m[6­_Kæç@å/Èœ—â#øÄ=hÖsÒ3ç9äyÞÑs_6ÞÂx áö!â¶ÛÜÿAÀÒ?éOJ†æøf-ÎF÷W¬Û¸…6<Çþ‘¿ûç.\ºRv£òfmƒT®bÿá#|ÅáÍŽ^õ‡qHî“û}}”ûø–» îwuv¨Ú[• -¹Œr¿z¤Üß²‘r?gñÂùiÉ qÑaÁ~Þžî.Nö3§O}Ø·µ¶²075jا¯§§aÿGûctìëæ…G+úoúc ý7Jècè‰Ä&fæ–@Òä)Óf̲wtvõðòñ - Œ‰OL™ ¡¿déò«)ôwìÚ¡`pèßÀЯkhl’7·´¶©Ôúw„ÐïE÷3ÄÐÙ> ž "«©,p©¯f©_SU~­ôòÅó_~þ·cGЇü[·f3!‘âøä=pOØõ½FyžwâÜǃ»fÜæö)žâ¶[´Ðàð‡ö'ûQ~„?=cþr?Ÿv[·Ã}ûÛ>sþâåÒkåU5,öÕ\ì?êÁ•ޱK—: -Õïï¾¶Ü׸ÿ—z/ŸûwïÜîîê—ûà~•–Ü/ÄÜß…;ÈýË—.É‚ÜOIŒ‰  ô÷ñòpuv°Ÿ5cڔɓìl­%–æf&b`ÿ?gìcî ìÿXǾn¾ÿ ƒþO}}} -ýño!úÆ"±©™…¥Äf" ýÙs]Ü<¼}‚B#¢b’RÓçcèç­\퇡ÏÚïã¿>Ò/ô¯³Ðo”ÊšʶvuGg7„>o>„þ·ú/dþh”bˆúƒ|C©¯jm‘Kë1õ¯–=}òøÑà¡¿cûÖM€ÀʼeÌüô´Ôä$hü½õ$=ƒž!/øNœ»Ò¸°qÆiàhþ`Ò!~Р @ õüÉþðˆ(h~‚.s?Ö<¼íxöaË>zìäé/‹ŠK®bì×Kå-­*Šýo<„~Ôמû÷Ÿrîcîƒû=œûýs¿r¿¾¶¦ºsÿ2ËýãBîÃSî¯[³2/7r?=5)!6*<4(À×ÛÃÍÅqÎì™Óý_N´‘XZ˜™ŠEÆÀþÏÞ2O¹¯¯¯7V“û:öuó}æµþè¿>}=}ƒ ˆ¾‘±ÈÄÔÜÂÊšGßÞÁÉÅÝÓÇ/08,2:.19-#3‹BŸ`ï{ïŸbèŸú ->ô¿Âпÿ€B¿¯ÌÐuÌ >Ú€AøÏ` >zxŸ¥~»&õ/ý‡ýúŒªêÊ8¾F×$Q“QG¥÷ªˆÒ«Ò{ï EPƒÑHP°AP¤)ˆ€4é  ¨€ £FŒ‰FŠÒ{S‘jV–Æ™5³Ï9÷Ý÷(OÌ'a­·¿¾{?w~ûoT])+)ÊÏÎLOI¢Ð?´?Êïb¾;T>D>ÀGÞìõDzÂ<ƒxZvu2jdTgò~…± ÈÀ€øô'öý–ÐüöNΛˆûðu·; :tXô)é™ÙùE%eWªnT3b¿©¥ÄþÐðú–Cê¿}÷fŸ>ÓO}~SfV÷©Ü÷ÇÇYr¿¿·§»³£­µ¹éyC]-ÊýÖÜ/$¹Ÿ”€szÊ}_o·MNö6Væ¦FºÚ4ÔTå×ËÊûâ¢ÂBü¼<܈ýåËff!+û÷9Ã~>ŒþýU\Ü<|ü‚B"¢â’ÒkÖ®“SPRQ×ܨ£ghlfamçàìêî¹eë×ß|KB?,<2‡~Æl¡ß¡?Èý1Âó)ôç…ùÿeQ§þÄøè¤þ`?¤~[óó†Z*õ¯U”—äde¤&%Ðè@èoߊÍwqrDäcñ|Ä=ÒY¥'ÎSÊ3}WÁ£ŒG‰Å™‡þ<Þd첨€ô'öý&¦~;{Gìþ_øÀ#çìÇœLHJÍÈÊ)(.-¯¸FÅ~mCcsÄ>¨ÿêõÈ(Zì8öiõçbìÿû4ûL÷ß ÕN»¹ßÛÝÕÙÞÆ’û¹_Žr?7;3#ç~dxXhðœû_oÝâéîêì`kmafl §³QSMEIAr_ZR\TDHŸ‡›‹Éþ’Å‹qØçÌßVó0Ìg¢ÿåW}}.n^>Aa1 )„¾¼¢²ªú-}CsK;G·Í^>pùéæ‹ŠK@¡Ÿ•“_8=ôëqè·£ÐïC¡ȮПÀ¡?Åü™ÑÿÔ"Ì0“ÕÇPltxèÕ‹¾žÎöÖ&ÖÔ¿t±0ïüÙ´äÓqpû}tùwúmóõöDæ;ØÙZ[Y˜ñõõ÷H{d=-=¥<-<¦\6ŸBÿ_K—.û7BŸ‡—_@HXT\BjµŒìzyE5 ÚºF¦æV¶öNpõ½}·ïØå¿'è@p(ýøÓÉ©ú¹Å/•_­œúÍŒÐ`†þø86ŸFž™ÏNýñ±‘á¡—ƒý½Ým-$õïâÔ/)ÎÏÎL?“WŸŸ—‡Û&gd¾¥¹Å×FÞ#î‰õDzÂ"šä~Ðÿ];¶ûz{¸or²·µ2752ÐÕÞ ¡¦¬(¿^Vfµ”„˜(fŸØ_±|ÙRœûˆý/€ýÏ8ìsæcçCè/&è/[ŽÐçÆè‹ˆŠKJ¯‘‘•SPRQÓܨ£ghlfamçàÌrï†>CÿLÚÙ¬œ¼Â %8ôoMý.ú/™¡ÿæ ‹ùú3š?7} ÕG, o‘ú€ÁèÈk¬~WGkóóú§ÕÜ¿s›¤~nVFjÒ©Ña¡Ð{ý-ž›]]í‘ù¦&F†ˆ|- >x¯Š°ÇÖèÌÓÂËeȬ¡g5û¡Ÿ!ï0Vµð@ü#üQù«#ù1üüØ}GgWwO´óáø÷ - ‹ˆ>q*)5#+Å~ÕÛwî×ql”rr¿MîWU\.+¹P˜—u6íLâ)œû‡CîÛK¿»+¬|k Sc=íšj*J -ˆ}iIqQa!~^n`Ÿä>°¿±ÿ9‡}Î|ì°G…>}.n>~A!1 @í:9eUuM-}C3K{G7/Ÿm~;wî‡Ø;v<ú -ýôsçs Š˜¡ -ý6¡?A…þ$óßÏ#óYÕÕþ ê¿z1Ð×ÓÕÞÚô¬î÷ß~yp÷Ç[×+ÊK!õÏ¥%ŸŽ‹9~ìpðÀê֣з±BæèòA|Uä=Ò[O¤g0OOI.GŠ9’ì‡~†¼Dojà€ôü¡üqõcøutÁ}SsKk[êS¶~àþàÃGÇÄ%$§ƒØ/-¯¸~ëÇ»~ØÖÔÚÞÕÓ7ðâÕë‘QôQ‡Nyî«ÏÆ}–ÜG ìÿ1kîÿ ¹_s¿ôbQ~îùsé)8÷;Ÿz»wúmóñÚìæâhgcifb¨¯£¥©®ª¤ ·ní`_LDHŸ‡›kû‹8ìsæcç¬è/œ†þ—ú+Wqqóò  -‹ŠIH­–‘]/¯¨¬ª±A[×ÀÈÔÜÊÖžºò;vùï :sòT"„~fv^aqIÙ努©¡ßB‡>mþÔÐg1úŸÚö3Mý?¡'ÆF‡‡úÝm- µO~}xÿ§Û7«®–áÔOIŒ -?r0îRÿýÜWŸÕýɹÿþ#r¿}Jî߯¹©¤¸ /;3åþɘÈð°ÐàA{üwíØîëíÿ{[+s#}]­ ªÊŠòˆ}) 1aA>^n®U4ûK¦²¿Ã>gØÍ èÿ“ý¯0ú+}^~!aQq‚¾‚’ŠšÆFm=¸ðÖvή›=·À…ÿö»½û†>—”¡Ÿ“_t¡´üJåµ›ÕÌЯǡßB¿…>2„ý?'‡þ<3Ÿúãc#ÃC/û{»;ÚšŸ×?}ü¨æÞê•—©ÔO8zhß^=Œ>\x ScC}d>T>âø˜{Œ=¡žá<“xJrQjD&ðÔ™ô+yƒ¹ ¨@üGúƒýˆ~9 ¿ªš:r_¯~Ä>ü üvúïÙwèû°ˆè“ŒØ¿\y£úνšGOj›Û:º{û_ÍCõÙ»ÿ«û(÷'p”ûÍûµ(÷k ÷¨¾y­òJYé…¢üœ,Èý¤„¸Ø¨ˆ£‡CîÛûõ½çêŒV¿©±žöF 5Eùõ²2«¥$ÄE1û<\«V®XŽØG¹ÿ!ö9îs†9¬æ/`†þgŸA¡CÐçÆè‹ˆŠKJ¯Y»NNAIU]®»¡‰™¥#Dž—Ï6¿»÷úþȱȘñ§“S32³s ŠK.]¾ZuýÖí;wï?À¡_¡ß<=ôÇÇÿÏ~}EE•¤?»söŒãîuT@2ˆ  £HA‚YA$IÎ9gA ’sÎ9§¦ÉH2(QtFÇÖÃìºUuûvßD}›Þíï•ËSWý¾!óß"óéC±ùj>á& õßÓÔ -Õ_˜Ÿšœ¸96<Ø×Ejm¬«*+ÊËJK©èçåîlomab¨Ñ?©¬t„¾<4_R‘ÄàCîöõTç Äã¢sÓ†ëKCý’° ð€ùõöúE(ð‹K@÷åö:¢tâ$|ñéšXXÛ;»yùÂØOJËÊ+*«ªkl%uõ Ž\»9195;©ÿüå+ŠúïqõÿÍ?î÷?âKË}ä>-÷çñÜ¿r ¯§‹ÔÞÚÔP[]QZ\ r?éJlTxhp ¿§›3xñ™ƒs £­©®ªrâØáƒŠò²{÷Hˆ‰îì mìssr`ìÿ¸v Ê}Èþ*Ä>Åý¿2sŸ9ËÌgÐÿ¢¿š€> +;7/¿†þnqÉ=2ûÐ]WFw]×ÀÈÔÂÚÎÑÅÝË ý¸„ä´ÌœüÂ’òJúäîÞ~úױП¡ ý0ôß¼æÓBÿ##†þ§åÕ Õüè— ó3w'ÇoŒ ô’;Zj*J -r2Rb#Aêûx¸8ØZšéëhi€ÒW:r„>¸ìÐ|Œ|a>äaO‘žÆ<ïœøpÐ ûâ¡û+þ?´=@ÙHˆ? Êà‡îKJIËì“ßö?8 -:úF¦–6.0ö#cR2r -J*jZ:ȽÃc7Æ'§fæõŸõ_3œúߘûÐ}ºÜŸD¹?24r¿³£­¹±æ~a^NfZrB\tDXHP€¯—»‹£µ…©‘®6¶ÿÁQ뤸èÎ"Ûûü¼Ü\ìl¬ýuk1öWCö ¹ÏdŸ9KçóèÃЧ¢¿‘…u;'¿€àVáí?íÚ-nºœÂCG+ŸRÓÐ:§wÞØÌÒÆÞÉÕÃÛ?08…~JzVnAQiE -}ý«Ãc×h¡ÿˡψæ/«>(¿õçfîÞ¾u}t¨¿§³½¹¾º¼8?;=)>:üH}7';+sc]- 5 -ú ô¥$Ä¡ùˆ|(>rYOužŽx\ôM´aûÒP¿$.|`üCüýH~?t_Ld_ ]c3+;'û—£ã“Ò³ó‹Ë«ë›Û;{ú‡F¯ßº}wfnáÁ/?}þ‚!Õÿ‚ûïûo‘û´ÜDÉýiJî_¹O&µ·4Õ×VU”åçf¥§$ÆÇD†‡^¼àçíáêdocif|^ïÜYxŽƒgŸ‚œŒ´$8 ?öøyyû›XY62ÙgÎ×ÏÊèÿƒ‚þ†,l}n¾ÍôÅ$¤öÊÊ+<|섊ªº¦–޾¡‰¹•­ƒ³›§O@PHXD4 ýŒì¼Ââ²ÊêºÆæ¶ŽNúƒC#c0ô'¿)ôÎüOÿ¡Wÿ®þ3¨þý{sÓw€ú#WûºImMuUeEy™©‰qQaÁ`êÛX˜êÓTWUV:Š£/&Š™/‚Oážb=yzßY ÃòCûš¸ð €ø‡öúü[ûÛwìÜ~{qöÕ5µõ M,Pì_‹ŠKLÍÌ+*«ªkj#u÷_êß™ž»wªÿ ¨ÿªÿŽ^}Fùiîãì$æþÛ½yƒçþ“%¹?†r¿«³£µ¹¡®º²¬¸0/;#5é -Êý@O7g[+sCøðSWU9~ìðE9YpûÛ…·öùx¸8ûpöÿ¾ú‡˜ì3g…!¢ÿÝRôÿ‰Ð_ÐçàäæåÛ¼Eh›ÈŽ¢bÔK~âäé3šÚºF¦ÖvŽ.î^~.^ºŸ˜’ž™“_TR^USßÔÒF"£Ð…¡ ý…eBŸ`>ã†þRõÿÜÿ×/_<{òëßïß›¾3qóÚÈ`_©µ±¶²´0'#%!&"4ÈßÛ¤¾™‘ÎÙ3§UŽcèïAq·CDd>$Š½Ç´Ç¥§SžªøFÂløŠ!|N\ø@ú#úü~è¾Èv˜û؉O?Õ3gu Œ`ì»{û…FÄ$¤dä–VÖ6¶’ºúG®Ýœ¸3={ïþÏ}òìÅKð»3¤ú+çþûræþmjîw“Im-õ5Uå%Eù9™iÉ0÷/_ - -ðõrwq´³¶052ÐÕÖT?}òı#÷ËïÛ»VdËf>nNŽMl€ýõë û0÷±ÿ“}æf)úC询 B ÏÊÆÎÁÅÍËOA–Ì>pÅAÙ©9{Nï¼±™¥½“«‡·`phxT앤ԌìÜ‚âÒŠêÚ†æÖöή<ô'VýwýŒúŸ–Qÿ7¢úó³S“7Ɔ{É- 5%ÙéÉñÑá!~ž®Ž¶0õµ5ÔÀ?|€ŠþvÔùùP|è={šóK€_O˜¿bh_Óí| ü)òsƒâ‡î m¦†€Âðø;©¦bßÖÑÕÓ70$<:>9=» ¤¢¦¡¥ƒÜ;8Œ}ÆSy÷?âî/“ûérÏýž®ÎöÖ¦†ÚêŠÒâ‚ܬtû±Qá¡Áü¼=\ìm,ÍŒÏëpJYé¢;wˆlÚ²™Ÿ—› °Ï -Øÿqí”ûLö™óÙùË"ô)¡Ð_M@Ÿ¡ÏÃË/ ¸UtÝnq)i9pÁaשihé蚘[Ù:8»yú…„EDÇ%$§eæä–”UÖÔ56·u»{)¡?BzvîÛBŸÁ̧Wÿ®þ«—Ï‘ú ó3S“ã7ƆzÈíÍõÕåÅùYi‰qQaÁ>ÎöÖæÆ0õUU”ŽT”“‘F„2‘ÀǸǭ§WžÆø:ºY»â¿¤_Tÿ)öCù1øû0÷1öeäÁóOž±¹µ½³‡O@pXT\bZV~qyu}s;¹w`hìÆøäÔÌüRÿùËW¸úNý%î/“û¿-Êý‡„ÜÇr¿¿·›ÜÑÖÜXWSYVR˜— r?!.:",$ÐßÇÓÍÙÁÖÊÜÄP_GKCí|ÿP@§b÷.Ⱦ bŸcÝZ*û«û÷‰ì3Ýÿ¢ùô¿_„þFÖMìœ\<|8úbR{eåªSU×ÔÖ502µ°¶stq÷ò ¸xérdL|bJzVN~QiyUm}SK;©«§o…þ-úS(ô|)ôÿ`ØÐÿ´²ú€úw'ǯõ÷t¶5ÕU•åe¦&ÄF„^ô÷vs²³4©¯ Rÿè¡ýò²ÒRâ»aÕm„YÌGäCð1î©Ô/Bž¨ùšoÅ‹€ê?f? Ÿ?xÂs^€¢â’Ò²òàb_ľ©¥“›·ÿÅЈ؄Ô̼¢²ªº¦¶Îž¡Q þÝÿõ—Íý?h¹ÿn…ÜŸ¹ äþðÕ¾2©½¥©¾¶ª¼´(?'+=%1>&òrHP€¯—»‹£µ…©‘®¶¦ºêÙ¯¯¨(Ï4€ã9‰ŠîF{¯ëºAD¤—¡÷Þ†ÞAzïC:Cï½w†*]zŠ€ )b‰›Mv½HN’³Ç}ßwf`†®7{Äy®¿Ë÷ù}ÿG ^€¢ð.¸ÐøwÀþ•KΟ=sêä‰uöY(ìEÏ>3÷™³=ú‡±¦¡üÄÉÓgοxéʵ}t\¼üBÂb é”Õ4µõ MÌ-mì\=¼}ñAaÑq‰)éY¹E¥ÄªšºÆæÖö®ž¾ÁáGcO¦@èÏî!ôÿ¤¢ÿ©š¿½ú?!õçgŸ=$!õ+ËŠr3S¢ Áxœ‡‹½µ…‰J}q!~´Ü¨é®]¹ŒÌ‡äCð)ܯ[¿…ñÝ0Ùe¿füÐø‡ô¯Á_¸o@öÙ9@Æ¾Ž‰…µ½‹LˆNHÉÌ-*«Dê“O>}Õ_êÿô©«¿µû"÷wÍýYû€ý±GÃ}=]í­Íu5UÄÒ¢üܬô”ĸhBhÞ×ÛÃÕÉÞÆ²¯­©¦¬ n@aAð2îÝEì߸¶ÆþqFö0ÙgýìŒþ -úßÒп ЧÝ=n^!PtrŠ*êX€¾…•­ƒ³›'Î/ 8,2&>)5#;¯°¸¬¢º¶¾©¥­£»—DŸxBæÅüÂË%Jè¿e ýßv ýÿ÷vÈl«þÛÕ þTl„Lênoi¨­,-ÌÉHŽ -ò÷vw²³27ÒÓÒPQE©ÏM]mXt‘ù ò!ù|ö›˜gÀüÈ‡ÎæÁÿˆ~ ?€¸s°¼ÁÛÀÀØWÑÐÒ32·²sr÷ö -ŠOÉÈ-,­¬mhiï&‘GÆú‹¯–WVßîõ?6÷—^.Ì¿˜¹ÿdbæ>©·«£­¥±¾¶ª¢¬¸ /;#5)>:",8Àçéæì`cinb¨§­©®¢(' ž†/xð ¼ ÙoãÌi:ö³:ÄdŸ9 ³ ú`Ù¿>ú ØíS`±/\¤åÜNn> è9y%U ¬Ž¾‘©…•£‹»—`HxTlBrZfN~aIye̓†æ‡íÝ}ýdú'Aè?Ÿ›¡ÿÃë•7û9ôßo­þ»ÿüBQiqnfzjbl˜ÜÕ¯©(-ÈIOŽ‹ ôórs´µ45ÔŪ)ÉKKÀÔçä¸s›}d> Ÿ>õ[xðì8ŒßnüÐð‡òøAñ÷ÏœEì_§Üœ(ö¥å•Ô°º†¦–¶Žn^~aQqÉé9¥5Pý> þPn]ýwŸ¸ú™û?€ÜŸŸ›}NË}r_wgÛæ†Õ•å%…y9™iIñ1‘á!þ>^îζV¦Fú:Xu%yIqŒ7|ˆý«àìŸ:qüÛc}˜ûLö™Ã0»¢B,öI„>m«ÙØ98yø1¢R² -ʪZºÆf÷­í]=¼}ñA¡„¨ØÄ”ô¬Ü‚¢RbUM]csk{Wi`p˜úÏh¡ÿ†þ?ÿõóÏŒ¡ÿû~ ý÷{W¿«­¹¾†XRžàëéê`cab £©ª(+EI}v6úšƒæƒÊ?FûMÊo6ýОfëÿÀ:ÿˆ~?êýuöA°ßãâ“’UTÕÔ10¹oãàêé—”ž]PRQSßÜÖÕG›˜šž™[\¢¨ÿË>P÷Üÿm=÷)쯾yMËýgߣÜ õtµ·67ÖÕTK‹òûÉ ±Q„Ð ¼¯·»‹£õ}3c]- U%yY)qQŒ ˆv6Ö[7A@öÏ"ö¿/ƒÉ>s6 =ú_Сp#úh§¯ÐпÇÅÃ/(,*!-§ ¬¦©­ghbnicïäêó ‹ˆŽKLÉÈÎ+(.«¨®­ojiëèîí'ŒŽON=F¡ÿr§ÐÿcŸ„þû½©?:<€Ô¯&–äg§%ÆF„øxºØ[[ëkk¨(ÈHŠb@êß½Ãú:ôQç;v%>ûÍÐoÁùÁ=Î65ü‘ü~Šû´'ríÆMjìcD%eT4´õ-¬\<}B#b“Ò²óKˆÕHýý¨þGäþ*Êý—(÷§Ÿ>™"“z»;ÚZëk«*ÊŠ r³ÒSã¢#‚|½=\ìm,ÍM õ´5Õ”d¥%D…ùy¸@°¢cðò%ÄþIø@Ž®±É>sÐì€>Ë:út п}ç.(9~!a1Ii9Eu,@ßÔÂÊÖÁÙÍ矔 -Ð/,)¯¬~ÐÐü°½³§¯pøÑØãÉ©ïAèÏ-,.½Z~½²º†þv¡ÿ©›¿gõ{;[›êª‰ÅùY©‰1„<ÎÃÙÞÊÜHOK]Y^ZBDˆšú¨ä ú0ô)æCòiào!ýšØãl÷ Ù৸؇µñÒ0ö¹ù„D$¤å•ÕµôŒÌ­ì=|ð!1‰iYùÅÄ꺦ÖÎÞáÑý¨þ&öÿKŸû¿o™û+¯—_--.Ì͂ܟš|<öhx°¿¯»³ýaSÃêÊò’¼ìŒÔ¤ø˜Èð?œ§›³ƒ-•}uE9iI1a!~^®{0 û  .œ?{\ƒëì³0²ÿ“ýÏv6£ÿåfôÑ>Ÿƒû 2îÖw}Nn^!qIy%U ¬Ž¾‘©…µ£‹»—P(!*6!9-3'¿¨”XUSרÜÚÑÕC€¡?ñ„þÌ‹ùúË+oVÜï¡ÿ~Oê?¢ª_^œ—•šCÆãÜí,ÍŒt±jJrR₼\´ÔGw‚Òq_Sȧ‚¿•ô[qþÕžfÛŸÀšýH~èþûà™\¾ŠbŸƒ‹WPX\JNI «kdfeçìŽÃbS³òŠË÷·ú;åþŒ¹ÿoŠû?‚Ü_¹¿0ÿbæþÈýÁROW{ksc]M%±´(?'3-9!6Šèïãåîâ`keaj¤¯ƒìËËHЉ ðröow‹z"öofÿK&ûŸõl@ŸúôSÑ_ßfúœÜ|q)Yˆ¾–®±Ù}k;'Wo_|PXDt\bJzVnAqYEUm}SK[Gwo?yh…þôóÙ¹ùmBÿ×ÝBÿSÜÿR¿ -¨Ÿ™šMö÷vw²µ45ÔŪ*ÊJŠax8ï²±RS®3}ÐùTò´ÿâ?ä'°F?‚ÿí"<~âÔé³ç.\ºzýo·XÙîrò`ĤdU±º†f–vNî8ÿ`BtBj&P¿jŸ«¿{îÿŠrÿݦܟŸ›}> stdˆLêíîhki¬¯­"–äf¥§$ÆEBƒð¾Þ.ŽvÖ÷ÍŒ tµ4T•äe¤ÄE0|Üœ4ö×NÂì¯å>“ýÏrȩ̀CÿÀFôOô/€„»ÐgecçàäáĈJHÉ*(«ij뚘[ÚØ;¹zâüþÇ~}FEyfß$›£kv÷ –+R¥½AAE * #U@z—¢ ¤ Ò¤Kï½w°Š 3È''j<›äd7ÙçyßiÈŒÀ¸»á~æ÷þæÿøø†„EDÇ%$§¦gåä—UT×54·¶wõô |ûç/p„É©i2„þwˆù¯>åÐÿ}©êg¤&ÆF†õí°æfMŒ¡úªŠr2b¢Â‚HêÃcFÑ¡T>C|.Òùá3~è>‹ýÍ[`€:=(!#§¨ª¡Ô76¹hfµsrõòBÔÏøôÕ_JîÿÝìÓ(äé©IÂîÅsÈþ@_OW{kSCmuEYqaÞã¬ôÔ䄸èðÐ@OWç[vÖV(û'>¤¥¡ª¬ '#ö²¿—ÉþÆõ(û_!쯙Ëþç«ì¯¨ùŒ+úà˜é§Ì -8€¾ °@_#§¨¬¦¡­{ä(}K¬½ãmw/߀ »a‘1ñ‰)iÙ9ùE%å•5uÍmݽýƒÃ#£ ôqxâ$išB¥±Bÿ 3ôþäBÿwÕ÷ótu´ꛚèik¨(ÈJK@RëfÁýõ+ùsµçL÷ŸyÎþ3á_Ç „ È®€Gá^!‘ƒÒ² -*Úz†Æ&¦fæX;GW/? ~ì -QŸýßæçþϬÜÍÈý•2Mš$âq ÷GG†û{»:Úšëj*ËJŠòs²2ÒRã¢#ÂîøzºÝv´·±²¸våâù³Æ€ý#ºÚjÊŠrÀþaäU¸c;²+lìÿe•ý=  ÿ·¿£èoFÑßCG_R#¯¨¢¦©Ð7µÐÿõ#èê[™_1=‹¨¯®¬ +%~`¿8exÉ›7mÜÀ†>Jþ|îyB~Q¿ øQ÷éìÃmÏÂ]{÷G¡¸”¬‚²:TßÈÄôŠ9ÖÖÑÕsE©Ï•}¸ô܇ì#¹°?;C¥ISDÂÄø’ûý½Ým-Mõ5Uå%O -r³!ûñ1‘÷ïøz¹»8ÙÛ`-¯›]º`rú”áÑ#º:šj*Šòi&û»ìo ¿ ßÇþªûŸþ,ˆ>Œ7ˆþ¶¯¿èó  -‹—”–•WRQ×ÔÑÓ?v ùªù›¶ήÞ~!¡áQ±úó -‹K+ªkšZÛ»zú†FFú8D1Ÿ]|.bÁëp±Ÿá>Û¾€Ø‡êïÙ'ÕÇ@õuúgúV+Oýsÿ'˜ûoÙrä>yzj’€Ç½@Øèëélomj¨­®(-.Ì{œùèa҃بðÐà;~Þ®N¶7o˜3Ø××ÓÑTWQ’—•–GÙÛ_†0ÖÓ÷e•ý<‹CŸA'D_h?D_FVAIU]ë‚þ™s¦}+k»[Înž>þ!aÑq É©éY9ùE%e•5uÍm]½ýƒÃ#£ÏÆÆ'ðÄIÒ4…Jc }ýCÞåsÔ~yÚ¿tõ#Yê_@ÕWS–ÇH‰‰îäß³ ž1=õè3Åÿï0¿˜_¦û€ýuë±Ï^†ßìÜÃ/¸_TL -#¯¬®¥«¿xõ_½þqy«¿äãÆ>÷ܧQ)Ó¤I"7>öltdx°¿§«£µ¹±®º²¬¸0?'+=59!.:<4$ÐßÇÃÕù–õ ó«—MÏ1:qL_ï–º*`_FRü Ø~„ým[6󭲿:\Ñ_;ýí,ô%¤dä”U5´68~Òøìù‹W®YXYÛ;Þvóô ºŸ˜’–‘[PTR^USߨÒÖÙÝÛ?ôô[úãâ‰L¡ÿÝKh>Dÿí[ú?-ús/jâ/'ù9«ÿŠ]ýáþžy껾«¾¤˜¨° ÿî@}Ðnë7¼–~Ã,ò¹ý9¯Ã…~Ô}”}úÊ€·!T7?xŠIõÕ€úÇ™ê{AõãS3s -ÿxêó´ssþòþÜõp°?C£ISDÂÄøÌýÁþÞîζ–ÆúšÊò’¢üÜ쌴”ĸ舰»A>žn·í¬­,®ÑÙ78|HKCUIAVF -²/ÙßÉýµ«ì¯Àyúë˜èoâÛ¼¢¿{/Dÿ€оš†¶.ýë–X{'w/ß;Á÷îGÆ&òþ½ _/÷ÛŽö6X‹kW.ž?k|ò8`_[CUYANFJ‚Î>ؘí`eø61Ù_·ÊþJœ%¢¿OPX¢‘STVÓÔÖ=rÔðÔi“ —Ì®[Þ´uprñðö»‹¢ŸWX\VQ]×ÐÜÚÑÕÓ?8<2úll‡GBŸ -CŸŽþâC=¤%‹ÿÎ~¤aÞ;'õI¨ú=­µ¨úIP}¨>–¥¾2KýíÛ¶À f¥>ýÿöég²ÏŒ}¸4àuÈA}3s¬T?8 ¨Ÿ–™[XRYÛØÚ Ô}>>A$‘©³/ÙÕÿuY©ÏóÞÍûÉþÜ܇ì#¹°?K£R¦I“DA NM“)4€>jþk4ôÁ‰/ý™e`]ý_ÙÔÿþå, ª?þ|¨ß Ô¯,-ÌÍLê‡õì°æf¦&F†¨ú˜¹ê#÷ Ïw Ûù.MüÏÞ7‹Ÿ±7k½k3O}um=C#S3 ¬“T?*>)-+·¨Q¿Qԧ;üž‹úùßÇkmpž9¹Ïbì3÷û34 -™4E$LÐÙïïíîhkn¬«©,+.ÊÏÉJOMNˆ‹ - ôóöpuv°½y°Áäô)CÀ¾Ž¦šŠ¢¨ÿt ·³µ ¨_”›•–Ô÷vê[ êèi«¿£þÆÿ°_×_Q {À¸g×ãquõzõ(âŠt—Ø…¢"‚ŠHwÒ-ÝÝÝÝÝÝÝ9ÉÌ€{×ZÖ=Æ÷}g†™aòèÂQ¾Ãó|Þç…êéOTŸŠþJm_éѹO›œ-¿@õwÒ¨ÏÁÍOR_JFNAU ¨omïÔNHÍÌ-*«ªê÷@õQI}8þ^_ê/'{«cŸäþG†sŠ€ŸÄ¢Qˆñ±‘¡¾ž®ŽÖæÆºšªò’¢üÀ~b\tDH Ÿ·‡«ãKKS#=-uEù'²€}‰W/‰‹Ùg§aßžÿ.Ìþ¿6ØÿÎo>ú?Q«KBÿßôYˆèŸ!¡/"váòµYô•T5´õ ͬlí\=}üƒB#bâ!ú¹Å¥UµõM-mݽýƒÃ}$ -ƒÅáÁЧ ?3‡þß«ú Á_¤ˆkìú€}0ëÞ¾êã0(¢ú­MuUeEy™© 1áA¾ž.ö@}}-U9)’úüÜtêÃòR»;Çü¯*ýBôÏf‡¢þVõ?u¨/ Õ—”’•STÕÒ72ê{ú…Ç$¦fåAõ›Z;iÕÕ‡¿¿õ£þÊr·R÷Í}2ûÓ<‹A!'ÆFàÜïêhki¬¯­ª(-*ÈÍJOì‡ùûx¸:ÙÛZšêik¨Bö¥ïKö/_äãád?w†Ä>ó,û¤Oâjt~Ú`ÿ8Fèÿ<ýÝ}&€þo¬ ¿}.~A‘óý›·ïJ=|$÷LIUSGßÐÄÜÊÖÁÙÍÓ7 8,2&>)5#;¯ ¸¬¢º¶¡©µ½“ˆþèø™Äú$ó!útCÿóJ†þRâ3îàšÊAUŸ8ö)êcQcÃ=m$õ³Rcƒý<]lÌôµÔåd¥$oõ…úçNŸ8 -Ôgêÿ‡¢þ&X]Ò`ûģºOû ;›(ꃵ°— ªâô9~áó—®Ý’| ûTQM¨oãàê铘–•W\^]×ÔÖÙ30<†@a)êƒXÀ!°>Ô_MîVÊ>eî Îý÷ïˆîö§¸I 91> -Ùïîloij¨­®(+.ÈÍÎHMЉ ö÷ñts¶·µ276Ô×ÑPUz&÷²ó`_DŸ‡ ° -²ÏÂ|€ °¿{û?o°ÿcô7ÍC/ýc'ú\¼üB"ç/^™E_AYMSçù  k;gw/ß€ð¨Ø„ä´Ìœ¼Â’²ÊšºÆæÖö®ž¾¡‘±q -Ħ¨CŸý•ýeŠÏ°‚khÇÂê#€ú½]mÍõÕåÅùYi‰±Áþ^®6ÆÏµÕ”žÊ>¸{ëÚ¥óÂü<$õY2íå¥UîÔÿöæÏeć¬>ŒHÎ>¦ƒ,Dõ9y úwy+sŸ:÷!û”¹ØÇObÑ(ÄøèÈÐ@_OW{ksC]ueYIa`?9!6*,8À×ËÍÙÁÎÚÜ䅾ަš2`ÿ¡ÔÝÛ€ý‹çE„û€ýÇX#²¿wû›6ØÿniôwÌCŸˆ¾(@ÿú­;÷È<~ -Ð×Ò}ndjaýÒÑÅÝÛ/ —ÑÏ/*)¯ª©olië £?@a°8@Dc'q„©iÊЧAECŸqï>Óà -®1ûsÔÿ4«þ[¢ú“h$QýŽ–†ÚÊÒ‚œŒäø¨°@wç—V¦†ºš*Ïž<¼ûÆ• ¢‚|\ì@}ÖÃÌöïÙ½kçŽíÛ¶’jK«þ·4Ÿ6@têŠ0=;wì`>ÌzüÔYv.>!¨þûŸ(¨hêšZ½töð ‹ŠOÉÈ),­¬mhéèîGbHê¿]Gê/½¥é_ûóç>dŸ2÷§§¸I,‰ ³ßÙÞÒÔP[]QZ\ØOMŠìùûx¸:ÙÛXšèi««(ʓٿz‰ÂþéYö÷öw‘Ù‡«aóûßû-þ¶_Ièï!¢ø뱓Dôù„Åú7$$ïKCôU5´õ Í­líÝ<}‚Ã"Ièç–”UV×54·vtõôGÆÆ(€>ž†þ,ú3 ×ýÙ¡OEeæÓsÏÐ~ý[+@èÔÿªÿû4~ƒœêïéhmêæf¦$D‡ùz8Û[›½ÐÓTU“‘ºsóêE1!>nö³§Ž³>t4—¤þ/[`k«ÿ#D§þæÍ0?³êú ªÏÁÍ/$vñêMI)9U-ýfÖö.ž¾AáÑ )™¹PýÆÖŽžþ¡Ñ  >a|ß¾û“¢þ—µUUÑ[)ü´ì¦°Ò1CaÿÕØG!ÆÇF†úzºÚ[›êª+ËŠ ó²3û1‘aÁþ>žnNö¶VfƆzÚªŠòOd¥ïKJÜ€ì ðqs’Ù?|ˆÊþöm0?ì÷·Bôè³sòð -‹]  ÿLIUCGßÐÄÜÊÎÁÙÍË7 8<*6!9-3'¿°¤¼²¦¾±¹  ß?8<26Da°8üDÿ50¢¿ª¡O×;š¢}š{ó¸اªÿ…ªþû·¯ÿø}š€Ã ˆêw¶6ÕU•åe¥&Æ„ûyºüŸýúð‰2Ïã8žÜ]÷?äþ»·À}ˆýù¹™i,59¾Ì~Gksc]MeyIa~Þ³ÌôÇÉ€ýˆÐ@?OW'{K3c}Íö/œGØ?qœ… Ç>Ž}’=öwÁÛ<ú´úœú’Ò²×o)ÞQQÓÔ506·ºïàìæùÀ?(,2 Ÿ–¡_TZ^U[ßÔÒÖÙÝ ÐŸDc¦¦gúHèúîîóWÞªýí<ûø/Ç>Pÿ#¬þ¬>51:4ÐÛÙÖT_]^\“™–œäëåê`cn¤§©zGáúU)qQ‘³|§¸€úL t4ÔT‡“‘ü¼¬þ¾õêÿùg„»¢¨ÿ3 ùCTÔ4ô LÇNppâ?+"&!uõºÂUM=c W/¿àð˜Ää'™¹ÅåÕõÍm]½@ý vEýÐu|þ}gÕÿÆí;¾oÇ·ØÿLÀ>’û€ýÙé) zr|ldh°¿·«£­¥±¾¦ª¼´¨Ç~R|LDh¿§›³ý}+3cM5•;Š·û’€}Á3|§¸÷Øß•o3èX…>„¾€ úêZº&æV¶Îî^‚Ã"c¦¤edå<Q\ZQ]ÛÐÔÒŽ ?Bc§ffç@è/£ÿ”„þ'}d›4Uæ#3û´î­àÆîïˆ!êC±6 JîÕÜ4=1:<ØÛÕÞ\_SQò"7ëIJblD°¿·›ã} }-5eŲW$ÄÎ òórqœ8Æt”žRŸ¨ÿoX}$ö öº w„¨ŽèŸ°úà‚È(€ú‡ié2õ¹yÏž»péŠì Ee5m}K[G7oÿˆØ¤”ô¬¼%5 Íí]½ƒÃchìÌ(ƒp"pêï´ú_3ÿkµA¬8¾yÞ_ðîC¹Øÿß#ì¿~57;3…EONàØïîloiª¯­ªì?ÏÉÊHKyìÿÀËÍÙᾕ¹±®ÌþuYiˆ}˜}N„}Z˜ý{ìï‚÷]èóBè‹^\F_ùžº–ž¡‰¹µ­ƒ‹»—o@px@?õÉÓì\€~YEu]Csk{WOßÀËáQýé™ÙyýEýï}b³#€þ·å·†þõëÛqöqê‚ÔÔÔŸ™BOŽ öu··4ÔV–æe§§&ÅE†ø¸;ÙZ™h«ß½}óšôå‹ç…Μæ>Évœùè0[ʃd¤ÐfÿµÿΫ¿wB¤d)9Lw„‘ù8ÛIžÓBç/^–¾vë¶ŠºŽ©•³»O@hdÜÃÔŒìç…¥•µ -Ý}@ýIô¤þ þûÕêÿè¯7}m¬jŽ-¹¿aî€sÏþ<Ì> -°?ür ¯§³½µ©¡®º¢¬øÅ2û ±QaÁ¾^î.¶Öæ&†ºZê÷ð싊 -ðñrsr챿ËÞ–Ñgá/п$%-{Cþ6@_[ÏÐÔÂÚÎÑÅÃÛ70$<*.ñŒ~~aIYeM]cskÇ2úã“( @  ý¯ ¿eóWk¿æ­…ÿ`•úŸqêÿúv§>frläewGkcmUYÑógÅG…>ðp¶·63ÔÕPQ’—“‘àãádgead £¡¦£%%'‹WÿïÛ­>îŒö!ê“’ƒÔ§¦¡c`daeç<ÅwVXT\RFN^鞆®‘™µ½‹çƒÀ°èøGŸ>Ë/*«ªklíèé92>‰™š™ýŸ7‹oÅ©ÿyGÕßÀãM‘äØBî°ÿÇ>ì>ÄþÜÌ4ƒš…Ùïêhmn¬«®,+.ÌÏÍ~ú$õQblTxH€¯·»‹£­µ…‰¡`_ù¶<Äþ¥‹{ìïη9ô)©¨ÓÒ#èóðò/£/s F_C[ÏÈÔÂÆÎÑÕÃÛ/0$":.1ùqzæ³<€~yeM}cK[GWoÿàÐ@™šž›‡B}0h}x«±™ ­îwüêp;û¸þ­ ¿¾gŸ˜úÿ}=?;…Aõ{:[›êªË‹ós2Ó’¢Ãƒ|=]lÌõ4Uï(\¿*%!&r–ÿljcL ô´ÔT‡ÀfÁdaõûˆúÛ.õ SVܤ>-ýQ¦c'8¸xùEÄ$¤®ÞPPVÕÒ3¶°qpõò -IHNËÌ)(.¯®kjëìéGa¦gçAüê½¾5Ç÷Ûw·Lÿ†Éñ­;ÿ‚w™}èHÜìÏNOaГ€ý¡Á~À~[sc}Mey `ÿYf:`?.:<$Ð×ÛÃÅÑÎÚÂÔPO[bÿÆ5)ˆ}!À>'Ûû»çm} -}€>+‚þ9<úwU5´õL-mìœ\=|üC#¢ã“pè•–WÕÖ7µ´uvÃèML¢±S3³s¯Ö ¿Aè±ÕLîÚG°Àåñá··“쯨ÿeEýw‹ úÓXÔÄèÐ@oW[s}MEIAnÖ“”ÄØˆ`o7Çû–&úÚjÊŠ7e¯\ºpNè /÷I¶ãÌG€ÑR¤ #…»ûÛ¬>rG+©Oqò—Ãà¯"óq¶“ܧÏ¿pIúÚMÅ»jÚ&–¶NnÞþ!±I)éY¹/J*jê›Ûºz†F'PXXý…Åw+êÙ)õ78?b×G$:ððoÞýUŸø ˆý÷û¯_!ìö{»;ÛZšêkªÊKŠ -òû““â¢#Bý|<\ìl,Môµ5TïâÙ?'$À¿Â>=íaj*Ê=öÿÒoKè32CèsáЇп© Ð×Ñ72³´±wróôñ -ˆè§edå<èWTÕ64µ´ô^ôQ0úóúÀ|ý¥%(ô×£¿Uóñ›ƒ•_ZýVè_ãþzö·_’?؇½æ¼nn‹žìëjoi¨­,-ÌËNOMŠ‹ ðqw¶³25ÔQW¹}KNæòEQa>NvVF:8öÁb‚cß6Æ>‘Ôÿ ¤>9”ú4t Œ,¬ìœ<|¢â’2r·”T4t ͬìœ=|B£â¦fdç–VÖ6´´w÷ B˜™{.ÜÉ\Hêï€úDÐ'4£Ü ¬ŽšcsîãÙGri ff~vf -‹FM ì·ök«*JñìÇÇD„ùùxº:ÙÛXšéëö•pì‹áÙgì3 ìƒtØcÿ¯ù¶ˆþ1ýÓÿg¿¾‚¢J³Ž?lÕŒµ[kíŽ3³ëŽ9ŒŽ£ŠŠ‚ Š¢ˆ‚0 ( -‚dArÎ9‹ (HÎ4±É9§N4(Q‘Â݇ý¾{o÷í€,²ƒPÊyjžnuõ9?þ—¢I\B -A_E]K÷‘™¥ƒ‹»—_`Hxt‚~fN^a @ŸX×ÐÜ -Ðïí"‘©4:@ }6ôÙî`qó¹J ;:üwlô;>üöV—}õÑØêO@õ)Ã}Ý­MõÄJBq~vzjR|Lx°Ÿ§«ƒ­¥‰Á} EùëÒ—EÏ ñóñò:°oÏ®í[¡úhìÿ9×ÏûKý`‰~øq3X¡]{ö8ÄsŒO@èœèe éòwU4ï˜ZÙ:¸zùGÄG}3ÍŸc[¿…ªcq÷ÿ7ûŒÜÇÙGr²O§QÉ$À~owg{ksC±ª¢¬¤0/'3=-åÙÓ8À~ ¯—»³ƒÝCK3£ºZê*}Àþ¥ €}~À>`ßÞÝëìé³\ôqô”TÔµu›YÙØ9º¸{û†FDÇ%$=ÐÏ/*!TTë1ô‡Hê}„þ‚>àzË }Ü|ôæpïß² ƒ~üøæ¹^.ýü”p¨ÿvz -œòè…4ÔßÓÙÖÜP[U^Ró*-9!62ÄßÛÍñ‘µ™¡®–ªÒm9Iñ‹"gNŸ<~äð¯û÷îÞ±í§Íÿøaˆý¿~îØçJýo©ÿ·ïÀmÞ²mÇîŸ÷ÿzøèñ“§…Ï_¼rMFîŽ’š–ž‘™µ“›w@HdlBò‹W9%åUµ Íí]=ýC$êÈ(„©é·¨úê¯ôçY×ï=woàÕÁ¶{óËrc²ÉýIû öûQöë‰Õ„’Â|ûÑ!~Þî.Žv6–fÆtµÕU” ûRâûÇ×Ùÿ:æÓÑ? Ð?É‚¾<@_C[×ÀØÜÊÆÞÑÕÃÛ/(4"æ D?#+7¿¨”PY] Ðoëèêès¢ÏúKBóÑ“cz?Ã> ú™Á¿û«ûˆú0õg¦&ÇúTòÐ@oW{Kc]uEianæË”ĸ¨Ð@wgû‡æÆúÚêÊ -7e¥®Š]8+xêïoùyÏÎí[ÐØ÷úÖØÿÓçSÔÿþÇþkËö õòðžà<{A쪔ì-…{ê:úÆ6öξaQOŸ¿ÌÌ-,­¨®kliïê"#êONͬ1õÙÐgMîÞÀ«c–eùðí[ûhî³±ÿz”>B¥†!û]m€ýÚêJBi`?ãÅó¤„'Ñ¡A~Þ.Žö6VfƺÚ*J -8û‚ëì%³lô…QôeåúªÚz}[{'Wÿ ÐH&úE¥å•5µõM-ý¾Áa2…62:Ðæs Ï¶þKCŸË|ìâ òÓœƒÑ¹Ï¸¼…Ùÿ옠_ -Uî=ªþ›1:<<Ð×ÝÑÚT_SYV”—•þüY|txŸ§Ëc[Kƒû*Šò7¤%.‹žà;väÐý{wíØÊûȱ®tìs¥þ·˜ú õ7ÔÿiëŽ]{Aê9vRàŒˆèeÉßoÈßUѼo`jiëàê韔šž•WTVYSßÔÚÑÝ78L¡ÑÇÀ¶À]A^ ÁÏõŸÕQ™æ³ì¾‚,ÙÈ¿<÷YûoŒý9øH&ûcô… Øïëì·4Õ×ÖT–ös³Pöc"Cƒü½=\ím­Ì ô´5T•äåpöOö¯³ÿ…Ï’Ñß‚£Ï‹ /" -З†è+«jè蘘[Cô=}üƒÃ"câ“S_¾ÊÎ-(.+¯ª©m` ?ÄD }˜oÈ)³ ÿ‰¡?n?ãæÐ‹ƒ§6gäô9Ü_ì3¿ûHÃÍ‚Kžœ€êSHƒ}=mÍ Ä*Bq~vFZòÓØˆ/7ÇGÖf†zZªJwäd®]¹t^øô©ãGaìïÞ¹ ‰ýﱿ;öWäPñeBWé›…Rÿç_þvôÄ)Aáó—®\“¹yGIMKÏÈÌÚÎÉÍ; $26!9-#;¿˜PElhnëìé$Qh£c`]¦gÔêc©¿jê/Œ>n>Sû)–aèÏ]¬îRî³²¸ØEØÀØo@Ø/.ì¿LMNì‡ùûxº:AöM ôtPöeöE„×Ùÿæ“Ñ?ˆ£/vE¢¯¨¬ª©£ghbamûØÉÍÓ' 8,*C?¯°¸¬¢ª¦®¡©µ½³» O"SitpÄãúïô?.ï"賚ÜÜ,j>rr î'X³ƒŸY\Ü_uõç¡úïÞNO3¡’†ú{»Ú[k«ËK -r^½HIŒ‹ - ôqw¶ha¬¯£~OáÖu©«bÎ -ñóñò:°oï®íœ±ÿ-Wì¯À¡r¢ÏLýl©àÏ1>¡s¢—%¤¯ßR¼§¡óÀØÂæ±³‡o`XÔ“Ä”—™¹…¥åÕµ-í]½ýC$êÈèëñ‰©é·ˆúó«§þÇÑŸC3ó~’c8³[?ÜýOÌ}ôÙÈ“ác‘ÜìÓiT2 °ßÛÝÙد«©*/+.ÈË~Ù €ì?¶µ671„ì+Cö¥%ÄÅDQöy—Áþ¿Lë³b³<ôpôo#èëCô=vvóô GÐOK‡è—ô‰uÍúýƒC$ -u„>úšýÅr{ñÐç0ŸyrȽAçÇἃ|BéGnwm±¨ÿSfjrªOèíîhmª«©(-ÊËJþ,>:<ÈÏÓÅÁÖÒÔ@WSåîí¿KŠ_9s”¸Xfìoú;v­à­2b¥.•m™°UâHým;w#©üÔia‘‹â’2r·ïªjêšZ=rpõò ‰OJMÏÊ+*«¨©kjíèî&Séc¯Ç'§f0õ?0Ô_ÍÔçDŸcÙ6eùÛ7Ãéþ’s¡9ýwû Pöû!û­Í uÄªŠ²âB&ûQáÁ¾žnNY[@ö5U•!û’WÖÙÿ*æÿEÿ&@_ ¢ojñ¢ïå÷ôYJZzf@ŸPQM¬g¢?̉þ,ŽþRV~Ðg1Ÿ|Œû×ø øcðƒËûûkDý¹÷ðŒ''ÞŒÑi”áÁ¾žÎ¶æzb%¡8?;#-ùilDˆ¿·›“µ¹‘ž¶šò›²Hì òŸ@bKìoDÔßÀˆý•»TöeBS3õ¿g¤þ>ú¼|üBg/ˆ]•’½¥ ¬®­odþÐÎÉÝ; $26!9-#;¿˜PElhnëìé$Qhô±7“à›E^ WM}w¹ÑÇ7p‚¹ø öObëDzs,¹¿Ä·]<|°çÏβ²?B¥àì7Ö«+ÊJ -ór2ÓÓRžAöC|½Üœ!û¦†ú:šjÊŠ·qöÖÙÿ¢ç@ÿžšæ}}gw/ßÀðhúùE%„ÊêZ€~[GWO@ŸL¡€n{ÂmGžý%î;úðâÞs\¼7àüœQtàG„~ôòÀáaw·6ØÇÕ‡ì#ý6û\ñÄÙ¯³ (¯4ŒãeʘTrÅHÔXeÐàĸâ'f4ê0â¸EEP ˆŠŠ" ˆ " -²ïû¾ÓtÓ; ÍÖ -ÌÔH2©š÷œó¯¿n Â2ˆ:œ«x×T¿Ï/ÿ† 7‚…|^UyqANfjb\tø£à Wç‹çlÏœ2;rpï®Û¾ß´á«5+`±óçÎ6àÄþXNì)û=¡Ï¤þ4õÿ@SѲ(õ·lÛi¼÷§#ÇOYÙsrvõô¹—”–™[PR^Å%2E#t‚ -¾0’ú]¿Ð¯iÕïŽ>ç©ø-ô™ãka»ã¹VwpÝïoîk°îûÍÊÆ†z™T,¬ãóªý"`?#59°/Ø÷@ì;žµAìÁìo×bÎûoäú ÕèoÅè›9vÒÂÊÆÞÑéÊ57›¾ýÐð'1€~F¿´£/’`ô›}ýNFÜn×ÞÇÐgÌ'™…Ç%s¯ä>B?†_…Üǽ¥Íþp«¯Ž}p¤mÔWÈ%"AmuEIa^Vzr|LdXÈÝ€[^n×.?kmyâ¨ÉþÝF?þ°ù»¯×®Z¾˜Æ¾ŽýuÆÁXÉV‡–ýЃÐï}¸¤qÝR9IýíFÿØèèIËŸÏž¿|ÍÝË7à^HXdL|rzv^aiEumH*GêC' J@곩ÿ²Õï–úZèsÌ'È&‡ºZ\÷»ç~ßÙA?b¿ ³¯K% û¥Ey˜ý¸˜'á¡!ˆ}oľ“£=aßd„ýÿ×Oôgõ„þ„¾¥•­ýy„¾' DÑOIËÌÁèWÕÔ -Ôè·RôáÔ5±íû«C_Û|ÜXho|…BQ¯~ -¦–ǸV×ýáŽ}ª>fþ,UksSC½L"ðªÊK -r3Ó’â¢#BÝöñt½êähgmqÂÔdßî¿ÑØ_Bb:‰}]û˜}˜ê-Uó˜FãcB·„O ]’.ÒTH}6õ¿þnóÛvï79zÂÒú¬ã¥«nž·nß}—”–•[PR^Å%²zHýV|W8õA}ú% êk£ÿìc>=A|„ôÑûc°ëþ sŸù jöáj”À¾ ±_[ìû™i)‰„ýûA˜}ľ­•åI3ľ1°¿e„ý7ú -ýÍ€¾Bß”¢ïìâîéí€Ðˆz -è§ú…Å¥}¡Æ«hTÂ|†þo=Ä >sMóÉÞˆøõõr¹\Æ>ø‘Ÿºß†?I»šýW#ö‰']LìÂÛZš¡ÚD‚ÚêŠÒ¼¬ôäø§OÂBîÝñ½éîrù‚½Íióc‡ìù»FìÏ™9C­uÒGÆë ­’©ÙR{:&}’ú“>ÖLý¯6lú~ëÎ]{63?cãpáŠË›~wî=|üäiBJzv^QiEumH*W€úmðUubõ»ºhê£úlYôÛÛ{ºAt„ô1éòü$øY÷5rÿ×þç>eÿ_,û-ð!0ûBAmMUEiqa^—ý_oO7g§ó”ý\ö GØß@Ñ_èoä onimë@Ð÷Aè? ôã“RÒ³rò ‹Ëô¥}d­ŠH«†¶ÏèÿGë-37ͽAbÁÜÐØd2©T¢~R)¦í»OrŸÃþ0Ç>GûXýŽögmʆz©¸Ž_SYVœŸ“‘šþ(8ÐßÇÃÕÙ霕ÅqÓŸökžÁôOô¦N™’Áì¹ó?ÿr‰!Iývï31=aamçètÕÕÓçvPð£ðèØÄÔÌœ‚â²Ê¾P,«oP6·ªž‘£“ùe˜Ôï-õ¹è£ßšØ|L¾œ!ûÈÖ3ðÓò`q’#ìó&º±ßÅaÿ9e~%Š ûeÅ…ù9™éÀþÓ¨ˆ0ľŸ·§;aßÚÒÜ̱oìoaÿM}FízŒþ#ã½jô/9_Çèß fÐOÅè— ôùý‚>ýN³ýBŸšÏ¬n›æfœXˆ|"¾X,R?±˜ÈgGG§bØ'?<†5öÙ¿”ªÙ‡«Z››a¼B¯ª¼¤07+-)>&2ìÁÝ_/÷k—ÏÛÿ|úä±Clì¯Y±lÑ æÁZõ§áØ×ýPg3Õw{aSÕ úLê£SÒ©¯7M Rñ²•kÖKSÿ˜ùiû —]ÜoúÞ¹Ÿœž•WXR^ň$2”ú­Ð -}Žú¯@êsúš l|„¨;äì²O¹Àüä'uŸæ¾zý›SB(÷чR/“RöK€ý¬ô”¤xÄþÃ``ß±鼃ûûÎþhö˜þ7·4ò†ðq‡Šw:ºÏèo`Ñ?ÄEßËÇïŽýŒ¬Üü"@¿šÇ¯‰¥r@ݸ -£¯ÙÖƒ -}|ßZsCcCà …uœ'bùavrÄ~#Î}Ì~GGç«û¤#»˜ØGómijTÈ¥¢ºÚêŠÒ¢ü쌔„§O?¼èïíqÝùâ9[«S(öw“Ø_·ÊpÉ—ŸÏŸ;Û`ŒuÊäIM¯3v(Ùÿô?§§èÃ%͘‰S©áêußlüË_·ãÔ?naewÎÉÙÕÃÇ¥~TlbJFN~¤~mœRÅ“ú]ì74,êk¥~7ôñMl>“BÎcÛƒI%ë~;i!z†Í}ÎOø<èãûr`¿ŽÏ«¦ì§Röïbö¯sÙßkl´£?ì¿=Âþëóz@ÿí Üü´µÃ…KWYôGFDzè—Wbô%}b,-ë~£ÿ+ûK–Ž]ž“ù˜|$¾@Àçókñƒÿ°ühuÄ}mö{‰ý—«ÊoœØÇêw´Ãz›•lb!¿¦²¬¸ 73-).:"bÿ–—'öwáØ_¿få²Å ÌûlÖ§Ó§éM2y¢.—ýwzaÀ[õ{èÕ?ANiªÞ'Ó f}öÇ?-\¼|åÚõßþyË6ÍÔ÷ò ©Ÿ”–•[€S_(‰Êf¨…öF}6õ‡O}nê«ÛšA›/CW(b®ß!:@‰N{(é>ë=÷Á~e_"BìW–•åçfe ö£#ûwü|¼¸ìê'ûcFØ}^èú7¼|üýGý„äÔŒìÜ5ú2¹¢®»uðè÷ú*µ¡Ì¡­!ïy¼úx<Ø»CîwgŸ|¨cÿåªÂU³"4Š}‰H½VZ˜—žÌľŸfìAìoüfÝjÃ¥(öçÌœ¡? ¶:i¢.3Õ÷ßÓd_cªë¨QZ·DÑç]Î-éNœôñT½iúŸÎœ3oÁ‹–®Xý“úûMLOÐÔ÷öÄ©Ÿ’‘_TZQ]['bR_ßÑ?É7Ī?_G}6õYb¹gÈ\!s†äáúÀñá§GH¯ð9ÍýÓÜgÖÑypŠˆùLð‘,ûå”ý„ØèÈLj}ÿÿ²_§AU^gÇ'm:‰Öš˜èXâ8†°( D\"Š‚â‚‚ˆˆ(Š‚¢¨5®AEÅ £5©F«ÖF«¬²ï;— \6bDÄ]²Ìô9Ïy÷{/\ˆãÅ”ó…|ðÛ9Ïó»ÿCØÜ½ckDxXHpÏØ[ û/Õªþó²ŽôßÖ ýY*ÐôÏ3è§"ú%bôïIÐ×°f¸¡þYUèw¨Y¶j¿¢B.——“+*ý?トýg*ÚaŸû¦¨t2±Ë ÉÖÚr»±¾c?/;#%‘ÆþiAìBìÏ5ÃÕy’£½­•Åh#C}=ÜUXÕwaUÙ@SË~×õ.чabЪó!%=}ÃOMÇXZÛŽsœì‚©ï븊¦þ>’úÿ$©—”š‘“_TZ^Y­¨§©ÿA›úܯrßH}°8‡üRñ+ÉVà2#¨&>Ú{™ûRö;U²ßIJ_R˜Ÿ“•žrÙ¿xÙ?¬’ý)êØ'³ÔÏþkwºEÿ]DÿCŠþ'Êè{ Ð߅蟠Ÿ›_èWÞªQ úw(úY]Eè÷0ôñ û” }Ø5¥e#«{V.“ÉÊØ#“ý°vŒû"ö©úOú^ì£ú>hoõ¿ojPÔTÉËŠ r3¥±±amðŠ?ïùžîÓa[ìlÆš›2øÛÇ#†ëcV•ÙTž}vU{ë¾Ä|á,1èÿy %†éÂ(陌¶°²±?qÊT7wO/¿€ ÕkùÔ?÷¯+×n$$§eåËäU5u ˜úmíÈ áÜp©¯eõùÔ‡‚÷˜}f «0<ÊÉ â!ùAfP‚G§$÷5cŸ[nGÄìß#ŸEٿűŸÊ²öÌ©˜~öÿÎK@ߟA¢,æÔ×ý«× ú}9A¿¾¡‰àÊÙÊ%ug/:†}¿Â¦=Q -}Æ|†|X´²ÒÒ’’’b<ð¥¥D~9uŸlǾ(öû”úÈþ#Bʽ»°¸uµ°¶%…yÙéÒØß²2Ðßw!Äþ4—ÉÆýÝÚrŒ)ÙÕ‘”ý!ïîŠýÞ¸/5_%úafi˜îðd”ŒÍÌa’&8¹L›9{ÞB_ÿå«BÖ“Ôß©þÒþ—”’‘MS¿¶¾ñ6y&’ÙQúÚP_uêóèssXAç‘L"L Ì`™¨>”ÝÇÜÊ. ¿%=Ê}ZF4ŒpEȇûŠš[•À~Q~nV†„ý¨È=ö½ûÙÿ­—‚~PphØF1úW®^KDô ŠJdýFýv.¨5GÿåÇ+—1lÇ0æßFó1óɪ•• - àÀŸ¢"°àG÷aáHhQöqÛTǾ6Ôç\ÁhÃÝíxpŸÆ~½¢c?b?^û»¶E„¯]àçã5ÇÃmªó¤ñö¶V°«†úz#ɪê ûƒT²ß;÷U™/š%ýÁïôÿúш‘zŸ~j:ÆÒÚÖÞq’³«›Ç/Ÿ%Ë‚V¯ ؾ+2*úIý_½‘p3-R¿ R_ÍÐÒú“ú¨¾är^ÙÝt™ú8Š údIè³éA‘9¤?P~¹Ä}qîÓ5éAî«aŸ~Ï~=a_γwý*aÿëS1Çým ûþ]³?„²³ÔÏþërº@•¢?¤gèŸô/!úɩـ~)~‹ýç=CŸåŸÔ†>šßÔÈ™äð -òóóØ“Ÿö1îÃÂá¾ÁºµÜ¹Ë~œrì¿bY„±ÿœý6Œýû2&öc1öÿsôо=;>ß´>dÕò¥¾ çÍž9ý3§‰v6cÍÍLŒ ôéªê òž}ºª ì+»ßÍξ¡Òüß“Q£?Ñ×ÁYÒÓ742maec7~â”Ϧ»{Î÷^¼typèúÍ[wìÝè¤þ…ËLêç‘Ô¿U[×x»ù¤~;\ó›L/G[wÃ]Ž$õ™ nAôµ50ˆ´=@üBœDzH€¡ü?ç¾$÷cî¿4öÛ™ƒ-Aöe%EÈ~"°EÌþưÐà ÍØØÏþksºF 2ú&=A?MŒ>Ã*3ËÂQL²Fƒü£ ô‹BŸ˜×Z03È/$àçææäd³'''èøÉÂÉ+ ³(ûÍ-°l¸kÌç1°hYåØ¿ÇÆ~¥$öOŽŠÜµ}Køº5AË–,Z0wÖ W—ÉÆ‘]53e@VUWÂþì r_侺µÿ›ß)…¾ý÷Xô?Ö70263‡Qr˜àä2mæì¹ ù®\³nã–í»#£Ž@ê{ñÊ5U©ŸÞÎ3üIÖÒ;L¢¾RêcÀ(ôé$b|0“£ˆ'—™BòîäܯÃþh¦‚«Âå>Ù -‰{…ü,,¤§ÒÏcÙ/ö³3R“‘ýKÀþi Ø7²?Xûì õ³ß׎p[™<“ ?¸èFô/ðèç!úUDUÕè ò¥'õÂä ÎñCQè³yEÌ'›V{àgeeff0'33++à‡Ã}#ëV‹O‘f|ŠÜWû¿¼zZ$êÿȪÿðû5|ìÇÑØ?yôÐþ½;¶nÞ¼"`±÷|O·©Î“ím­-ǘb¡®;Œ²ÿŽ}6ÑÔ»ßÝ›OG‰Ÿ%ŠþP@_w8Ì’Á(cÓ1–Ö¶0Jήns¼|üV¬^»aó¶{†Ô?{áòw×¹Ô¯àR¿¤þcz7ZK}å»é¤9ͦþÝÖ–f}|qRóa³qñÀ2cHßÔ}EL"ÙaîSöùFÒ8÷¹Hêžý4 ØwRÁ¾e_’ÒØïg¿¯ᾊѧuFÑ×¢o®ýˆþI)úÅ¥² -@¿®A¿­×èÿ,mîÍJÐgC¿¡¾®¶¦ºªëŠ,ìYxŸž––Êž´´t ?+›,\Qqie¿Nø»DÕÆ«¯µ ôä Ê>qc¿Qû LìŸ8r0r÷[6†…¬ ô÷]8o¶ût’hv6V£MaUõFö?Ö>Ú†}6÷{î¾À|úýRô‡é1’Ì¢o?~┩ÓÝ=ç{/^º|UHئϿسïà‘§¿!©›œ–ES¿ZQ߇R_x5¢»AT¡@Zï4ßÔ³HÑÇQÌÃQÌÌHO‡a$'Ž! ¿ðÝI -¤EÀ>·0Âùì·±ìÃV!ûy<ûýè¨}½dÿ­~öûðQþ[êÐ7dз¯„þýsú™bôqŠyôŸñ%ÝÝ‹C_ø`egÚâ -ö¬¡NQÃ/i+ ?ÀOIN¾Éžää”T€݇ܧì×p)Œý/´­>”ÂØÿAû|ì;|àËÛ"Â×®Z¶dÑ‚¹³fLsqšà`g3Öb´‰‘¡¾2ûBöI¢ r¿gîKÌÇIÂ~@FIоÎ’…•ÃD'—i3gÏ]°hɲ•kÖ…Glßõåèã_ÁÔOJUN}üE¤¾¶Õÿ‰¹šç|ê“i$¯N[ØäÉIóg†‘œ””Tf üè~¹¼²ŠŒb}“û”}>÷ û-dkT°Ož#ä««*d¥ÅRöO"û;U²oÛ+öµÍ]ÿÁÓ+ôIž9uþµñRô›XOÛ;rý+ÐÆ 0ƒ>ú -سª -9c>ìY³”ä›II‰ ñpàObRÒM€ö-;¶­¸؇]ƒÄ‚ºÓ*ˆ}íÚ"|ç‚ò‘rìçÒØ¿rñÛoNÇ=‘¶uÓúÐà~>^s<Ü\';Ž#…f¦Ä>¬*î*²Ïå¾Èýîäçþ™À|:IÜ( zG„¾¾¡ ‡ “]\a”¼|üV‡nؼuÇÞý‡ŽÆ¨Mý{äYü{Ì Î«»ågX§ŠÔ'B¤¬¤BŸŸE2Œô9Ä!ð³Op¿ºFQ§”û û¯2û¸6¸5jØÏäØ?§1û0K,ûôåÈ=ßìg¿)úo2è`6•EU}.ÑObÑ/WFÿÑc5èk8¼-0½OT‡~U¥\FöŒ˜i…ä'&ÄÇÅÅÆÞÀðS÷³rróiíÃw*ê!°Z1(¹ØïÔ".êb¿CUì'Å]ÿîò…³g¾:¹kû–a!+ý}Î÷tw›:e’ã8[kKs3c#ÂþG<ûÿc¿Îc¢¼ÓŽgÓzl²Û¬QëíZ[kÛX‰–h̉F×s%Rqµ¢PQPTªVWYÏUë}¡rÃ=ÀÌÃ0Ã%‚T/TÀŠZÏZcµ»û<Ïï=çÑ6e6á—h¢þóÊû<Ÿ÷ûûŸhlYeî‹ð[§_òÏoÉÍç&IDßI޾3¢?aâäi3Ý?Ÿ÷Åâ%~ëþù¯í»öw#¹Kìß4g?×)g›œýé2ö)!¬²ß¥“}<–èw±…þ{ïÛ‡~ ŸŽè"úÕRôÙeõüªÊ®=ÅòB]vSчÐÇém‚ñ¥¶ªcmuª”Ö ÄÏ6deéõ™ìèõY‚¿ÀTT ËFì×caá“Bì·Ýá¾NަþOôÁãc¿‹ý‹ûeŦ¼lXWU¼224øð~h´Më׬Z¾ÔÇkçœÙ3¦âªŽsÍØ:„cßI`_Ì}›î¿âX1Ÿ&É*ú#>é<ÆeÌÒä©3g{x.Xô岫×nÚúï=ŽTÆ«Ôéúl£©„KýËv¤¾¼úO©ÏkÊ¡¡Ï #N#Œ#Ì#üf0ð BÁ RS{®^Èýf¼{bîßðÐ|uìÍ}Kö°Æþ·°5Ä~¾möÉÙÇ›£À>%„„ý®ì;ె~Wú=qQyôYúÓ ýE¯F¿Ð?'EÿŽýgö¢/Ï)úpO}È]T¿kmiæBÿÂùúºÚšªÊ -4¿Ð•äë3uépÒàWF†.áÏÍË/(„]Øo¼Œ±ßJ¸ˆIi¡Ëoˆ‹T—¶cÿÛºš3§K‹òs³tÚ”ÄXEøÉc‡öíÚ¾yã×_­ô÷õ^8πUuìùñˆáƪöÇUuêÉØçs_æ>;ò¿%’/7'‰¡ß“B‚þhBbÎÜù^>K—¯Z³~Ó–»÷ -‰ˆŽKJÕê yE§3õm^Â(õïbêßÄÔo„{g¡¡_È䇿ŽNÇ5Ào*$÷+¹«gC#lNÓ Êý6!÷9öñÿÜnö–±ÿŒgŸžTú}BöËO"ûéÀ~œÀþVÆþRûã¤ì÷ïdÿÿáØ‰~)úãdè/µý†þ})ú’Z±ýçÏ©©„±¥ÐÇ^Á£Ð?ϧ3¶Ìâ§§iµF£Ñ¦¥üY†œ\Ì}d¿ -KxØ[L®)Ÿ9ŠúÖcÿ¦û%…Æ=lkBLT؉£öì„D[à·dñBXÕYÓÿ6ÉÍuüØÏûüªööqWe¹oÅ}ô‹ÿ*3_ú4JfèôÇ»ºÑ,ÍýÇBo_ÿ•_}½qóö]{=“¬ÉÐçä–Â…±¶þ¤þu1õË^K‡«ÏqÊ«"¡T@B߈Ө§q„y¤“F£(kòJ˜Fˆ ,÷o6Ã@Þn؇¡4¦×aÿ¹ûòkÉ«Ù_ɳ?KÆþp)û=xö»w²ïxÇúÝyô{HÑ.CþJD+C?ŒÐ×0ôKxôinåè?ýè ¡/¢º -ƶ‰ý³úåe¥ÅEh~¶AŸ‰äkÔ©))É줤¤ª~p+Ù§Ecž–¿–X‹ÊßR—ÿ -?[±ãÚ•ÆŒ}Xׂ ß»O_îÖÈ¡?П4eú,w˜¥ÅKü×A?ìÜsàÈñÐHe¼J–™g*>UQcÔpéJ“õÔÑAèË_ ~ŒÅ×¾ÆÍ,õ!Bjªú8ŽYzGuj*L$ü¦fðcð‹wÏZÊýË”û¸?m܉dç -ÉÙÿIÎþ}Æ~Ëk±?Ïû}m³/Q¿“ýŽ;¿“©o ý¾6Пg~¨-ô›l£ß~¨ØDÿñ#†þ¼¡Â†ÁЊ]ÀãËŠ[2Ø1?Y•””˜˜'11)I• ðkÓ`Õ Ä~iY9ìYûVß›ùÒ¡êÛŠý;,ö/CRÖVWž.-ÌÏÉÊЦ$Æ*ÂO;´o÷Ž-›Ö¯Y…«º`ž‡ûL«ì÷íÓ»—±Û*w_¿ý2ðò¥æ³ÐôzúƒDô?cèO›éî³´lÅ굂`”ö‰€IJÑê²ró‹ õák ctM’úO õ-Õ§·òäÿ1æÅ -Á¡yÄkgF:H² -Šf‘‹œFpÆ*ä,Ëý+¸AÍ­pÿ¼#äþðøQÎþK;Ø)eÿ©ûð‘2c_cÆþ:Kö]Æ8”²ïdýÎØwcžú–è;‰èâ:q±DMôÏTך¡Ïì› /T -•˜)úPU0±U°a ¸bÕ,ô Œ`~¦v V, ¼‹‹¥Ÿ˜¤JIÕhÓuÄ>ìäUMí91ö©*rêóÀtˆúvÅþ%hʳUeÅ&c¶>]­Jˆ‰ -;qôàÞ]Û7o¤BóñZàé1ØŸ8ᯌýOˆý!ƒP¢IsŸs_ -¿ ?ï¿üÏ]dä3ó¥¡ß«ŒÒ€AC¬¡ï¹`‘ÏÒå«Ö¬ß´eÇî}‡Ž WÄ$À$ésŒ¦’2Lýó/]u´Ô·¢>L&Í%¤ %K}Rô $¡ ¢Qc‚à@²“€Ã˜LÓ˜ÁÜÇË'æ~ —ûW¯]¿ÑÜr r_`ÿ ±?„7‹'«ìKøT‰û»åì» ìvæf ÙÇ‹#¤Nöï´‡þŸý>RôG è»ËÑßm}F(4fÊ+Ñ·gV¹a•£û»[-Í,S.Š¡/1_š¬Jñcc”Êèh…B­Œ‰øÁ}5Ç~]NªXì3`nß¹g™•?wûíÇþõk°®õu5°­Ey]ZjR¼22ôø‘{vn£Uõ÷õñšï9göÌ©“Eö¡Ð† 2h`ÿ~ïBîû–î‹ð›Ó/_ ßÜ|BBÿÝ~ý2tØû~„³„èO˜èÏô½||ýáÖ¸qóö]{=¥ŒW©Ó2 yÅ0H5u0Gxk½eõ8†ú§øÌåÝ6öRXê×TUœ† -áÐת©Ap c`$•ʘ˜XœÆDU2»}feçe¹ßÐ÷O\#J~ÄE²3Ÿþó*öaŠÚ¤ì×Úd?ˆ±ï7Gƾ›«„}*}œ¢ßwïÖɾã«èwëŽûú úgCEô]Ý8ô©Îý «è—µƒ¾tT_'PøQåчЇa…¨‚ýjÄЯ­ÁÐ/)2IW,!ÄVDEFFЉŒŒRüqñ‰IÉ©š4`?×h**-ÃØ‡»„Â´Ü¢Ë >16UǪo3öa§Qì7]``[+O—æçdehS`W#B‚ïÿ†V50ÀÏכ؟!°«úчûƒè'É}Á}9ü¼üVNW3òyóùЇ;c¿ú0ô]ýÉ€þÏù^Þ¾þÛvî9pä8ŽRRŠV—•›_Tzº²ÞÉE˜#|%mÜ+q„Ô^ÊK õ…wr¹o`Õ•Hh&2#MCG©ˆb¦QÉgˆFtŸrÿlÝ9,ø\¿ÙÜJ›tOÞO¿ûð¡âŸ¹öý‰}`Ê$7×ñc]ØÍ BdŸb¿“}G:æè¿-AÿïÈÐ6|ÄÇ#GÑ¢ºMšè{úþoˆþ¿ýǸ{)$U+*D$JÝY1ô9óUI°aÊè¨Èˆð°°ÐÐÐÐаð€ÜOàØÏ†§†%ƒØ‡ƒ§¾N}÷Þý1¯¾eì?|ú¸®$aª*ÊJLÆl=ìjB¬"üä1XÕ[ƒ6¬]à·Ä{áü¹û´ªÎŸûïýe0.+Ë}rÿtŸ ~~&¿\᯺ ä³ÌÍg¡“—FBÿSý©„þBï%~k7À,}³ÿppH„"F)CŸc„IªÀW‚b¼~µQê?vŒÔ·¥>{%¤>N%¥~Yi‘ G’Ðg©øûuÕ•Åü‹f™IMÄ]ã  -7@\ƒ‚\¢‰‰Íh…Š5Z:ƒ%Ž”X¢´Ð¬ ÍÖ@³v²Ê*› ‚wA†t„(‹¦Ô¤25sι÷õ{ 8@’øÀ­JªB¾¼êû?¿û?IÈ$œ8Šc"À…_·~V`Áº“tGé~Û7ˇö%Ó4ø8éæI§çχÅ~0gÿÈþû"ûf æûoÍœ>u -ÄèMbÿuÎþ¸1öGüôG<¡ÿ:¡ÿ&L딩ӡŸ!ús¥è¿/¢ˆ£üÿCS*Ä´—å´Ààâ^JE¬â\iI‘0aɉZ˜¯˜hµ:*’(µ:à×Àœ¥¦ûg -KÊÊ+«/bÙ¯o€bŸÆŒõÿ[ÙÔÓ…ìô10¬Õ•åg‹òs2S“5±0ª -?¹ÌÝÍÕÅyÿž/>ÿÃöm›‘}Uk«%–f 晚Ï™m8KW÷u}_(ü?“_Š¿È=Ÿ‘¯g¾®èÏ2„$™ÀÒhfa¹ÄÊÚ³´~ã¦-Û¶úÎ.€¾LB¥ŽÓ$§Î9STZ^YS{nßaýíkTT}‰úì!þ§î!îbÚ¿®@©(/-.„Hf¦Ãæ‰-;ˆš¨"XD´‰ÉHÁ}¬ûy݇ ´^>œ¦ÎññcãÄæé…”ýŸ~Eö¿äìçœN?%°/×±ï„ìÈÙ_ÞŸý RöDZ?âg ô_ÑŸ@èÏàèÏ7³X¼l9GÿíŸìØå¤C_. õ,Gý» ýB¿÷ Oý.(TßB£ºßÚÓÕÀ‹þE(úegiÀ˜ùš$?*2B'<\¥ŠˆD÷´Œý<üðóUXöéÃa¾Ú@ý‡’fÉŒaõ_Zö»x³dÆ\¾³ZR˜—‘’”¬ðõòpw;ìâ¼Od-cébd†U¬û辺¯?É/Á_Ê=_B¾Ô|¡èC’ýÅK­VØØ²,ú_ìÙçìrØÍ]&÷U@–b5I©™Ùù…gÏUV_ i¸«÷ 2âU¿Ÿút#Nán>›ëë¨êC(K -Ï0ô“´h>–l"b÷ó ŠJJ¡î×èê>”˜§¶öŽÎï€}ú%žÐDÑÞ#©!ÏT_ö{a?>&’³Ùß ìï°QšÏÙŸÑ—ýWöÇÔ¹£§þÐ_ªC ¡¿Ñ?ÊÑúOžýŸ¤è¿` #úð»NÊhkK³Xôkª T•ÉËáæÓ|øa¡!!ÁtBBBÃÂÉýx YÆi˜±âRVöoÔI«%ªÿdT¨ÿò²Èðj‰ÃJÈ\¬:_V\›•ž’¦ ö¹>è¼ïÄþ6ª¶6+`V™/„a¥º-Mpúþî>À/È/â¯;üÏ$>ÏÌŸ 5ÿ­ßCÑ761;¡ù"ˆ o¯þA@ßÃËW¡ Ã,¥ddå””a”à>`gÄW¸½S¸§,E#^õÿ-½Rÿùs¶}A!¡gø^Kó݆۸}ÕžyÙ§}I&ÃB!•!¡¡XEþH¤–"™›Ïê~5¯ûwh¢î·ñ‘ê‹Ô¯Á>-ŒýÆþÝAØ?ÀÙ§,9ØõeÚÔɰ?VöGðô­ú ý×ô &Mž: Ð74’ oçÀÑßé´{ïŸHÑúφƒþ¿ôЧx‚rÄÕÛB¿£½JèSчNuîlqA~nVf:3?:*R¬ - Tà R‡€ûQŒý´Œ¬\¡ì_¹~ëvCS3|:ªßÕóèñ¨R_¯ì ìK”ùº¹©¡ž”©*/->“{:í”6>:"TàãéqìÈზ²ïho»rÅòeK,Í¡î›òºßÇ}‚_”_Ä_wØ_ñYÍó'éÌçEß‹¾åXWÚÚ;öEÿ˜‡—O€2,"³”• ¯0¿z„ïµ ×ñý“QSõP_¸¶|Á -•¹—¯êJ¨"…ùÐDúÑ`~†R„G ù~ŒdbrJTØ@KÊ„º³®Ù‡÷‡ -öÐ.‘ý~cõ3Øö2ökû±¯ð“ËŽuEöw;í$öׯq°[ ì[Z`062œÅØ7ØmŒý?CC–¡‘± ô3 K¨g+íÖ¬ÇA%ô÷8äzô¸Lî§&ú/~9úTô¡ÝR<Ûî·b>êën^¿ -EÿBEyýl¯$6^áa!ÁAŠ?:þþŠÀ p_©FöSÒ3³óXÙ¿tù~|sK+|{ç¦þÓQ¡þÀeÿJ`7>ÈL3Î*cælQ~NfZ²6NäïãyâØ‘¿0öwûÖ9ÚìZ[-±´0ãußÈPâþ¤‰~Q~þÂaÄgäƒù“Eó xÑGô­¬±?8®ÛÀ²ÄÑ?rÌÃЈŽÓžJÃ,ámÔb”à6î±Ûèî},¬^£¡ê¿D}~l÷jj¬¿…»“ªH¦2F æcQ@.á_ -½*î§gfIêþ•k7nÝ¾ÓØÉ„£ØïˆýA'kö_ …}x±Òˆý0‘ýýÄ>di#±¿‚±oj2Æþ(<¢ÿªý)ÓfÌ$ôM }+†þF}ý0B5Ÿ¡_; úB6iZúØHDô»>èü¶ý›¿¡sTôo\ƒe´º -‹~!ý´”$m™Ó¨ð÷óõññ–ãñööñõóW*9ûÚäT^öñͺz£îNã_¡R1õ{ñ½ºå(Pÿ%eÿü äLëWØ.g -ó³3S“5±jUH¿·Àþ`Ç'[?ú`ú5«WÙX[-]¼È|!«ûsf‹îKàçò#ýoèø'ìß`à3ñ9ù ÑüÙsxÑ7_´’d³jµÃšu>øh+lŸïæèŸðôñ -PÇi“Ó2)Kì ®ƒ(ÁePÕ׉?Â#]õUŸV¯Ûlõ:_VR}9E@?D‰Ec‰Ç" ò+ƒCu+hªX÷/ÔÔ^¾z~ŒÆ&¬¶öŽNX}º{èd}Š¿„ÃgÿÆ>ÍÖØFö}å2÷£®.öïÙMbgßj©¥ùÂyŒý™3¦M‘²ÿêû#yú¢?N@ÿ7¿%ô'JП·ÐúGÓ–mÛqP }w™ÜÑ.ú?òqú”ËÐïãý6ˆ&GÿúÕ˵5*…¢Ÿžšœ¨‰‹!óƒ0[r/OÏ“'OÊàO/¹·¸ªŠŒŽM€ï§²_v¾ª¾ÿV}cÓW ô©îQ¤þ@e_pæ1¼ƒ:Ù¬b½¼Žì4…yÙ©IšØ(UH À¾ó>UbfõÝÕ¶ÐÑ–ñºojò¶±‘è>~?“é'ûõÏïø$>‘5_4ßÈøm]Ñ_;£íêw1J„¾“>ú*u¬&953;¿°Dxë!J }\¼¾çèCŽ~ñª¯¯þ\}\½è †ËÐß¼ êg¤&kãcÕ‘ºXz˽ ˜ž^^ÐF Œ`(ÉýmRJ«û¥ç*ªª/}yÞÀú-'Ÿ­žÞGÀ>ý(C¯TÒNÅÆk0ökDöµÈ¾’ØwsuqæìoFöí!I°7ŠìOö'û ¾Àþ¸1öGæôC<¡OUŸ£?½ú¶ö8©›9úÎ.®nî2/_…Ñ×þïÑAè?{Jè÷öúÐl)˜ õu7A¹K5UçJŢåÂáò'òOÊ}Âþ; -ö'ÔG‘úcÑÿËdD ¯>o> ¯£o¸è³¿š®\cf›ºÅÑÅ ÑŒDÿ”¬ø,¢‘¢Eÿþxè¿ðL27Чd&©n8”ÃÌTô÷ݤ跷^nj¨¯©‚))’‘ÐÏqŸ…Ÿ‘éW#ø+5â=#>K>1>˜¯¡µPGWß„¾éÊÕkÍ-,­¬m7#úî^8KJègfçæÀ­«œ¢OÞÄÍ>D^Å03IÌËxóè?Oýþ>P³‹~€áM”`êg9tcÐóa.äÒPI)æÈލ˜Øxêþ?d&¹_xúÌÙ²òJÜ®æ–6`ÿ:²û5ˆì?P°æ§±ìÿÎŽ=SÚ±ße¿•²_ƲŸ–’”AØ÷!ìoúb£%e1eÿÓùóÔ?šýáŒépUœÌ²ÿ®œý‰Ø½ç-åÔ§è¿«@ÊÔýýO5ú‹)ú–ô}úÑñ I)i,úeýÖ—„þ³ñÑŒè?€¨ý~f²²†²£½„««©¬(;wæt!†þ‘ÃéÒöíMÚ æGïˆ  •ˆCD"!‘(D*… ‹Fö÷îK;€±ŸWpº¤ ³©¥½óXsû;UtìSið -„»ŠìãªvûõÀ><’üÑìC¡y¹»:C¢ÙÚl´üÜ|Í}pß@á>ü~F~ Ÿà/÷_þÿw#>!ŸÉ|…ù`>„þòUkÖ­ÿÜr£íæ-ŽÎ®€~ÌRhDT‹>^ºJË™KW'Þûè­ëÁ0êFÑ'ƒô‹jªnâ«‚7që[¸vÑAR,ËÇÔOߟ–èã`F„CŠˆÅ!äˆ%P#á‘;¢©û#ebîÈŠá;x¡º¶¾±©¥íJgWwÙ°Aü>x8üz؇›#e?'ëœýм9z¸9;~¹É†eߨPOg¡aaÊhößž`ÿõžè¿-GÿýèÏ¢èkéè³èÛlúÒÑÙÍÃÇŸ‡‹—”œvðPVE¿‚ÔÙ £ÿÛãøëXô’Ï#ƒþ]@'Ñï¼ÒÖÒÜx±¶úBy) %älV†¼§pµÂ¤±H,ðÉ‚…à~aWR2ÆþÑc'òegÎ6˜˜ð°0UNý±ì³±ÿãc²«CtU{¯Ã¨¥©±¾´Aö)ØÇU ðóöpuÞæ`o÷Åßÿ¶s¥)¸obld ‡îkjP÷™âgå'ö3ü3Øï|*>SùÔ| M4_ÏÀÈØ͇Ð7³ØwF;{‡m.nÞ~ÁÊèÍ=™š¼@¿¾d–0j¡i=fSÿg•HýßP>Àð&`DoߺAÕo¨«®(+)*Ì;žƒ©¿oo"3™¡’˜Ì`˜MøC9"‘â\¢ûIØ#é˜û'ó ‹Jί¨ª©ohºÜÚΰ_C\²{À>óhžüaö}1ö;•Ø/dØONJˆöáæÈñQÚJØ_¿nõŠe”}-–ýi -öߟ`ÿœç ¯öÁ´3è/^²lÅêuë ú[]=|8a÷ždÌý#P$§à;VYS×p©¹µ½Òª÷ÆÍ¾~ºf÷}˜Ò‘§Ã.Ús7í²ß¬`¿]Ò’`–BE|Ç›°og³qa‰‰±ž¶œý™À¾Ëþ{ì¿3úïFÎÜ?ÑÐÒôM(ú¬lìúÞ_„u–˜¬Ð’¢ßü*Ðÿ7Aÿ S³ÃÌ0ô÷Ý$èw´C…4ÔÕTV”AÓœ:q,k -k÷Îø˜(4_$€øÜÿn`@H؉O@pÒ3³só -ŠJÊ*ªë›[‘›oûúQSlìÿL¿ŠOð›HîA  <œ=ÝW;Ú.e?q'šT, âr|<¿Úîä¸e³ æ¾9äþr¹ûúº:Ú µÀ}ÿ¼¹êêsý`?âOø'‡üczàÏQWŸ;æk-óõ±óÑ| }s }»Í[·åéÃáò…bi$„}‹>|{»‘6zk|8üÃ£Ç ú*“úã©ÿD¡þw·o~CÔ/+ËÏ˘JNÙßÞèáRM>Œ&7€(€_(b˜û™Y9ÇóòeÅ%¥åªk/Â%¨MÎ>,Þƒ M`Ó˜›Ð+`¿wûE#Øö¹owW§­öv6VröûŸ|™Cù ’”%“ˆ1KF]ƒY¼ -= ÃXW]Y^z¶XVw<çhf ýRS`~0?ˆÇõçøùúúãëÇñàòƒC$aQ±_ï‚Ø?x8ëffiEU]üŽ«Ý£ÕÇÂT)õYöŸ>ebŸ²a>‰W¯´]ƇìËÙO…'&òyþ¾^î®.Û˜Ü_o†î/#îèëéjÓàGø©ü„~‚ÿlò`þ‚ÿ‡àñò5Á|]=¹ùËÐ|3yè;lsqu÷òõçñ…’°Èhøð&A.\W»{°g}`í¨FQ¾êªÿOTÿz|{/Õ×\8ZæÏÎÌ ¯ >†  æÀlúÁtúúá`ryxE÷£bâw’ÜO?|$;÷$ìY <›ªÚúFx8W:!LH_ Þº;–ýÚ¶ÿ™ý<Â~jrâÎØ¨p‰G÷íNövÖVÌ×®Z¾Ù×ÕÖ\€ìÏž5sú´©jS&õ ûï(ØŸˆýWÞRVI}DŸ¤>ƒþ‡}M‚þgK—¯ZkèÛÚ;8mw÷öƒ<ôc ú€~ÞkBHûSöÞÐ÷ƒ8ˆýÎ+m-MkÁµÒ’"€-7;ë0Ȇ¡³#B*Á½âù>Þ^žžžž^Þ¿?—²Ï˜ƒ?åÄ) §¼ª2“¨«@Õ7öYöɪ!û·à&t²_«Ä>˜“ŒæD†ID‚À?o·íN[Iî[YZ˜¯[#w‘‘¡ ~Íÿ²_çAQŸgÇÇM¦ñÖDñà5(UP‰Š‚€À.ì ,ç -È}(ž(¢‚ÜÁ‚ŠÜ‚ B`‘Z¨'Õb‘¯¬¢ª®¡©-5ͺÏ7n¡ÐçÙØÚ;:»I¼|üƒBqÚŠÆ@ý+WÁµë7nvýÐ拾ęƆ®þ“ô6Ñ‘úÏ9õï0õ¯5Ö×T–•œÏ‡_ %1Rÿà¾=ÒÃéágÓYŒË™N¦&¸¿;|ï>ÊýøÄä3éY9¹ù…ÅÊ*ªjëáM„»ÖÑ ûs7ˆØ§aH*öÈØoûòZ#±_BïWêéSð~Úì{ïtûÛ·mÞHì/×ÖTSY̱?“±?aûÿÖ˜©?SŸCÂDô«¨ij3ô7nFô­mÄn;½ý@?¥Ì@ôK."ú×¾l“¡ÿàU ÿw¬XôŸ>yü¨÷áƒ<†²ÍM õµÕ—.ÃÜ™“•žšœK¡¿'<48ÀÏÍwu;9:ˆDö°D"G'±‹›;Ü-?¸ZûGŽÅÆ'ÁïRtáRÕå+M-ðMnvËÔÿšsÄ©?û°I8 õ²@ë¢@“g?!x£05ƒ|½wº»89Ø (÷6oB÷õÈýåKµYð#üRù‘þyØý´Hz\ø7_*>#3_{Ùr2_Íß´ÙȘB_`çàäâ¾ÓÛ7 xwDäÁ¨èãq€~ÆPèß¾ÛC—ì,É¥úC«ÿ¦>üw@ËhäÆºšŠ‹%…y9™iTȇÀ´à»Ë‚{ÄÑ–#%‰;%‰PHXåþ Øž”4¬¼‚¢Ò²ò*… ±Úpê¢aˆ‹,6± ×÷êÙï²_…•OìÃØrØö%nb‘­µ•ùö­Øÿdîl`Æô©S&O”±?žØ;Êþ›Xã?iÊÔé3fÎúhöÜOæ/\¬¬¦èë®^èoÝnè‹Äno¿ÀЀ2æd¡Ÿè—Wqèw¼ôÿ&Eÿ™ý{w8ôÛ€´†ºÚ*:‹ -áf"jqRú»Cý}¼áZ¹:Ã¥²·³³â²µµ³9:9»ûØšûÑ'âSÒ³áË”^ª¬½r•Sÿnσ¨¾ûl§~ü‘=ŽÜ6á.É Ìö«ýbš…Ri‡¢(6ývyz¸Rîó-w˜šlã܇Þ×]¡³œ?ÀÏÉ¿PiÁ°ðGþ¹…€ûùð¿”râ#ù,óuVèræo31ÝaɧÐwõð„77$ ÞÜ(T-9U}»ØØØûÕcêX†~ßHBÿߨÔ_@CPY\ûE [±”úðèúí’žNO;[øgMâÌFQ¿€àPÊ}…’Rh‡°±Ê+kð¾µ´¶_‡ÊBöïËØgÑwƒØÿù¥Ùï–²__[ÅØÏ¦/sä`dDh ¯·ÄU,Z[š›ûkVëê,ÓÖPS^¬4Øÿˆ±?‰cÿýQößäý÷ÐÿÐW"ô—éú6o51·´ŠÄ®o_@?ÐMÀ:ãЯ­—¢ßýjÑïëGÿÏÏè>ü#  Žàëím-Z] B -ÙÌ´”¤,Y -}.¥àV9ˆ@|5-¸ïWËƒÕæ6¸$§eÍ/,)«¬­¿Úü?£þÏý[õ½l£àq” 4Æ>Ö~q!±Ó=Œ˜›þ>^Ê}¡5ÏÂ\æþZýÕ«t1ø ~©üH?ÚkÜÂÏè=€/ŸÈÇÌ×]µZ­Ì|s žµ…>÷âîÇ”O$ôó Ñÿ=‡þ£ÇOXŲ³˜É¥ŽXõ{eê·45\®*¿Ptî·0k%ÅŸˆf©O{ÇÓ§ÀN¦ªàÇYÔÃÓÛÇ?rÿðјXÜ£ô¬œÜsçq“ª/×76µ´Ò.ußbwŽGvé¾}Õì÷Ü¿{kû…ù89&Ñì{I\DB¾¥™ÉVà Œ}- UåEŒýgΘ6u²Œý÷†bÿmëøº ÿ.¢ÿž ýÉS§Íø€C‘²ª†‡¾¡‘‰™%_hïä*ñôÃýc± IgÒñ¢@ÿÖÝû=/ƒþσÐÿŽ,{è?&ôïß•¢ßÚ‚ó&påq.7‡ysôð -}?¯Ü¥ -¬ù<ž-ßÜGöݰ7ƒðûDÁ÷9š™“êWÔÔ76·Ždõ‡dÿû°UŠ7Už}ˆÒä¶)ŸFÌ}‘­€o…îoÝ‚î¬Õ׃à_©Cðk1ùUU”•Ñ~X‹ä~ï••UT™øZD¾ÎJÈ|½5k úÍ·â lE,ôñ½•–’– SãèÃa’¢O–ý0¢Rÿ…êÃO€êßFõÛZš®\®ºTz>ÿlVzJbÜñ£‡öcêûzÃù;Šìm¡Høp@y<>N!F‰ØÕ]B»$}ãN>“ζ©´¬¢º¶¾¡ ÷©£ó&D=ÄþdŸÛª÷­¡Ø§Ôêö[8ö‹9öãcapŒ  ðõòpu²ð-ÌLŒ€}ýU+}uÕ%Rö?Ìþ»RöGcÿõ­12õ9ôÇ1ôõkýé€þÇsæ}ª´h‰ªºÖ²ÏV®Ò_è›YðöN.^¾!á‘Éxýbý@¿“¦Í_Šþ?^€þ·¥ÃûU/W°Ì²Öæ¦ÆúËÕ„YnNVú™Ó§âd wÊÓà ͷÚðyV–;hYXXZñ¬B{,N]BÂöî?}¾PƹÅ+jê@ývPÿÖÈV û}ýìËßThŠì÷Da!þø:ºˆa£lÐýíÆÔûë Ö­à—Âòkj¨««ýÐýÈ¿lÁGø£ššºº†&‰Ï‘¿JOÍ:ƒõûÍ·×VÌ…~HØž}£¢ŸLHýîÛr1<ú#Týž{·»oÞ(¯^©­dê§%Ÿ:qäÇ=·vB0¨¥œMK¹*q¥ -Tܨì³yE¥epëê`§Ú¤ìý£©èéìÿô‹Ùÿfûíð†û49Â+³Ë±(˜]B|¼<\‰}c#Ãõë€ýÏ–2ö?7çc`ú´)“'M$õ‰ýqŒýwFÙkŒ|ê÷£O©èOAôg!ú -QQ×\Jè¯ßddljÁØ;ºxxúú{}02%=ël\TB¿©¥­}úß¼úxò8ÆúÑïAô»nvbÀ675Àé«(+-‚2} PæˆÅGòÍÍLi™™›[Xòø6À¾›Ó?hwľCGÇ%¦pêW×5^kmïø]ªÿ§aÔkÔ Œ}Ü0|$¹ýúúù3¸©½rìSí×û8)<,÷%n.Nàë}pßp#?ÿ -”š_[ í‡îWGÿÙÂÿ†?÷ZÚØø þ -$µ>eþFÃ~ó…vðÔºI¸Ð—KجœÜsçKäÐgcãÀ‚ø¾¯oàYzËèÿgê7_­¯­,+)ÌËÉL=‹H†A{㦋hÓñ€š›Á27ßÇÓšÜïß+éP”œš‘}÷êb9íÔVûõÀ>ݼáØöò ˾ÂabìÃÅóT@ì'ÆŸˆÆoàãéîâh'àY˜oÙı¯©®²dádÖLÆþ)ûã‰ý±£ì¿Î¥€þXB¼ý  ý™ ý… ý¿Ñô·›îàÙØ9º¸úÁa{`'úXgЊèC?}öèÿ4úOŸ<~ÔûOC¿󵡮&ÍÒ"8|٩ɉñ±1ÿb¿Nƒ¢Ì®0WÍ^3UqßfFÍ}_'î²tÝ4tÓ4«²*K˾È* ( ²*È* - -Ѝ - -‚c’2fʸMYN¢V*V,SɼçÞïënQgt¢NyIÿûŽç<ç=[R’È1ôùHa¢lTJ¥5{J•ZÃb§»§¯6(42&>)5}[.>©¢º¶þÈñ–¶Ž®®þõ×Týþì‹·›Ô°I½ÛýnÆþñÆÃŒ}}¹hGF…‡i‘;Åz‘û -¹ÌÜLbj ø—/[Âäýd?ð‡þ†?Ì£„ðñ‘òŒM)æËzóÝ‘_ýµABÐ7€¬JY‡}ÃfÒ)öøñk…þs«²‰Ô¯,-B4ÞºeÓÆØ¨pŠúÞÂ¦Õ “¨Ð£JÚÓ–ú“Ü÷ôæq?*&~ ÙÒÚÞÙu®ì åºy›-É¿÷gÿÙã÷“ÙçâÀþªò’Ý;·Ó'}|’Ÿ‡Û*G•ÜÜÔhù’ß.˜7{Æ´É"û#G :dÐ[öÿo@ô?Ð ±°H!èoÍÊÍßµ»¤¬ù¡¾¡W£€þeôïrÄ„fz,4Sô_õijÔïíî„ú‡ì«,‘Y›“b"Ãõ}p‹®r²·£Tbm…UX¡?•6jýšôÅ=I[25M,XeuÍÁCGŽ6µ´žîÄð‰»v]dÿÞÎ>Ÿ¿çÀg°¯Ï¹zEöë`öJ -é›h“}­¯‡ë*ÊJfÆÙŸ;kÆT°ÿåø±Ÿqö ì4 û¯ZÉ_ÙÓG}=úöEÌgcÇùõÄÉSgÌÑ—Y©lV¹z ‡GÅýŒ¬í; Kʪö¨×£éê7§?ý÷GŸ²Æïoß¼®C¿÷\Wg{k Ń5}FX*%×Ȱ` -úžî®.΂_ -K¹Lf'“É-Ö>W¯ñôñÓ‡ÑW¥eæä–”ï­©k8Öü¨ß?ì?Áþ½'Øïí>ÛqúTsÓцúƒ5Õ•e|Qò¸MŒU)ºïhô©´VüfRÀo´R ö/^´üëþÄK8ø+ˆ|©‘O•Vkìuæ‡F ¹‚0}!º’aõ G›šOî8ÛÝk€þmú,¹ê›é¿¼™^=úÏ£þE¨ßÆÕ¯Ø³{gî¶ôÔ¤øèˆ@D}ô¨“+5õ({”Lx0Á=ºÆƒâ~Phe’x}¶'Å’Ñq„ù»úØ¿öï¾<öœŽ·Eö1Ýœýb¿¬¤pG.­20a`ßÛÃÕÙÁV¥™™¬\¶øÛùŒý _ûcF>lˆŽý‰ý÷Dö߆ý—ÿú¡ÿ^_ô‡ >rG¤©ÓgÍÿíâe+M¤2…ÒÖÞÙÕÝÛWD<&oÎÈB*.úµh;†~·ú· ÂÙß‹þc}Ðà~ è_ãè3À:OŸji:Jè0–[ɯ$ÄֈР-}àEv±Ì*ƒ]fR©Ô Éä˜*=f -#“@L~A±Ný³=^sõ„ýG?ƾAÕhUÒ}TZ\¸3»RRB\tTxhðzrßËc ö¥£p$ÑÂüÊüFF+W¬Xü—-eг‡–/_!€/‘HÍ,d"ùvŽÎ.ÀË‹Ì_¿xÐßYX\ZNBp=ÖÔr -Áè_ꇾØÍôêѪú·n\ãêwu¶µ?R_[]±@f¦¥$ÆQ,öCÔ_`"ö¨…9= *?‘P:÷C±+é>ÊÌÎcUÏ£“ì<:Oì_!öÅÜuホýG/Äþ§ãÎ>]Ž” j÷U–ìÀøÑ… »lµ³½­Ra!åìÏ™5}ê$ýQ"ûŸ|ÌÙŸ³ÿÎ[ö§GÿŽþûý?ÐAè#ô§LŸ5G@ßB¡TÛ;¯v'âb’7§oËÝQP\VÉÐojik?ÃÑ¿òôpöBèßú·€þwWÑqH­=úÔz`ÿÞ -¦WºnS"2kxH`€¯ Q|žˆ|©Ä”= ¡V*µÆaßk­`HD4¾+#;ŸUõ¦©ß—ýÇOcÿÒ…Þsg… ép]- -‡m‰¸Ê¥¥nJLˆŽ4pŸ~ÀÏb(]Jý&ÆÀÉoû~066áàc­ÊV‰|[;ó ÌŒŽMHÜ”š†ÐŠ ¿›§ÖºÃÇN´´¶w²«è_ýG£ÿêÿž_ýò’ÂüœÌ-›(P*F2±µQ -MŠ£„¬†Xš*:“Vá"õ^ç¿>8,2:'RZ¦p!aY¢nÇ‘»ÚÏtõœ¿(°ÿWÎþ`ÿÕíáKgCH½Ô}­„¬«­®,-.ȧìG†‚}/÷ÕNöj¥¥…ÔxÅÒE çÏ™9}ʤ _}1îóOÇŒ1|èÁƒXØ×±ÿî[ö‰×ýwú}õþPBÿÓÏÇ}ñ¡?sμ…‹–®0–ZXZ«íœ€ãº€@ŠÄI©@™¸´²º¶ŽÐo%ô‘ÎÐp/ýG:ôïs»¾¿uC‡þù–3š7Ð]Ù™H¬ã¢#Â×û¯óöX³Z?NfRÑ*#¢ ITŽ‘²µwrqóôñ[õã“R3²òv•Uí?Hê·¿êÿ4ö¯ûÏŸë:ÓÞvòÄñƆzIUå{°0ósQ¼-)ɉñ±Èý@­¿ïZoOw7W¿Fm£"ù-ý‚M|‡¢šl•U°ŠÀ—3ñU”ò‰|W7wOïµ¾þÚ@n~|brÊ–ŒÌlôaWuÍA!³¯sç }¯ÐüÚ¡ÿêÿêw0õkö–—ägoÝÂt ô_ëEQ_ú”ô© mOº–(ïÛÚ9°¸¿ÖO±!WRI»vsöq#8‰u©«œ°.ïèØÿçKb_h¦›7Ø‚ýýÃu5`¿¨Û,=5)^ü0';µµ¥¹„±?oöÌiS&~ÃØÍØGØØÿàIö_±•¿ž7 ú1ô3hÈÐa#FŽfè3qÊ´™³9úsKk;'–ˆC#ÉÆôÌœü‚¢ÒŠêä Ž~GÇåÍþsú"è?¤f{ôäâèC®ÈÕzòıFÖ}€«çeÖÖ´Ôä±"Bƒ´~k½ÜÝô5j3ÃdlÄr)%S#cS ±¯´AØwu÷öÕ‡oˆKLMÏÚ¾«¨ê>Ö|êPÿ öÅêýëIö ‹×ÑFgÒ‘C¨Å}”//'kkúæ”ä†î#ð ð;Økl™üD¿¥œð·ÿú‡?Á½Ü’ÀgâÛjìòó Íߘœ²9}kVNòjIYÅ^&×ѦæSm,±^â‰õ:O¬¯?úÏRÿ/¤~OWGkó±†:¨_\—±99>:"d½Ÿ§›‹£-µ©¹T‚.5.'cÀof÷Ñ¥ˆû®k<}|C£bâ“°3·å€}œIؘ`cxZw%ýYÏþßîÝï[¼gÿØgéë—wÍa ²د(-Ú•—“™–’D_öÙ—ÙXËÍ%ÿc¿¾ƒšNÓŽÏÝz«³;sg/»–m*vº QªTé= %ôÐ tB¡0HA@lØlãíy7WƽuÝÑ=ï›sv{ž÷—Ä€k[Ùœáq ü—Ïûù}Ÿ#43#Ý}{tÔì¯_·fõJû+沿û yž§>A¢¿\þJ -ýO·lôuöìÓ5021£±±wtq÷òƒ ŽŒ¥‚¸¨´¢ -ЏÐïƒår#ãÆÍÛT!úýiФÎÕûª\½ Ã6>:<ØwRÙÙÖ,¯«•ˆËEù¹Yé)œvtDX0ƒ„¾«³#šäÓ,ÌñXXÐ[µö\0öÉ“˜œ–•W$UË[ þÈ8¨?}ó΢WÿsÔ9ûÚ‹$ÚÕ©‹çÎâKs s¿µ ž`u¥¨¼´¤(ÜÏHKMæ$Ƴc¢"à üôÀ”ß›ÐOìwqqvÿU>;ïÐ{¾7ŠH'ä‡GFŰã9É©i*óKËEUÕÒ:yS+†~ïÀÐéÑñ³ç.N]…~¸}÷Õè“iZTè¿Výû¿×R¿³­©®F\Iœž’ÂÀÔwuô­­pLi4Q ©:N\Ý< ÷éÌÐð¨Øø¤dH¯¼Â¡¨ª6%Œ/X”FÆàñ]¾z}o"Åþ7óÙö³Ù×^ÏgÿòÅsÀ~ßÉ®Žy]M%°Ÿ—­~¡úy¹»8ÚYöõu÷íÖÙñåçÛ¶|ºiãúµZì/Gö—-±¿ðçWÚ©¿Œ¤¾ú«Ö¬]¿q ÿù—;tvï; Oз¶stqóò d†FÄÄs°‡a¹¬¬Ý²£‹Bfm>úçÞÓw@çìé?žPƒ†èÿñˆþÌôÕËq±DôO(}YM•¨LP˜—“™–‰ -eÒ|½=¨‚ó‘|³C䘙™[Ѐ}[{çãÞÔ-›–Å/*IdòV…òåêS±¹øÔÿï‹OðUìã„]iâÌÈ©Á¾žî.E[Kcƒ¬VR)*Óvƒ_0“DÉôƒýîîÀ?¼ðà7ø…xàñƒèÌ`ù˜ùÚæ—‰*%µ²†Æ–6EWwOßà©‘3“«ÏÑÿæÕè¿Çê7ÖU‹…ÅyÙéɉì(V0ÝßRâÐ'ib†ò„vXå>É}ÿ F+2&.‘ËËÈæ +*«¥õÀ~Wwï>AÍ[“b.ãÃGß?~òƒ6ûot_ËþCŠ}¸Œ·gUìÃUìîjo›XY1ßh1¡Œ@_/7;kK‹C õìÝ­³b°¿ -Ùÿø#ŠýßPìÿz‰ýd>7…—ž™›§6¿FV/oníèTbèB©^˜ºrmzæÖ’ª¯A‘¥þ[©ßÝÙÚ(« ‹ò²Ò’b#ØA~Þî®Nv6êA555Ð'æÄ}È'W7Oo¿@zpXD4;‘›šž•[P\Z.ö[Ú;»{û±À&᪖%ê.ûÚò©û0JwoÏN#ûã£ÃƒpÛ!ÀªÅÀ>?+,2¡°Èxº9;ØZöõ€ýÀþÖÍÀþ:Â>‰}`ÿCÂþKì/èyý}’ú€þêµë6lúdóÖϾؾs×Þýzú¶PÞ>Œðè¸Äd¨áBA™¸ZÖÐŒƒ68<:Ž[åô,© -ôŸÎ¹§?} XOxòø{2dúЩ7ý ¸TªÐo¬—VÃZY\ÀÏNOå&ÆÅúŒ@?oO }ÍUñð41Eö­l쨯G‡¯ÏIÍÌ-TH¤ò…²÷Uêÿg‘©ÿ¦ì?Bö5ûÒ,Nûp;Ûš¤Õâ²’`6™èðz€çqçc¶V‡ÍM õöïݵsûŸmÝüÉF`õ*ˆ}dÅ\ö—Ô_˜ó<õµÐ_AÐÿíïú ú_íØµg¿ž±©ù᣶ǜŽ{øøÓCXQl@?3· ¤L,‘64·u*{}ˆ @ÿÖÝ{pSÕ36}2boƒþ?‰>Vê×÷ú©“€þP²³½ЗˆËK‹ós³ÒS9 ì舰`z€¯—ÇqúG-Á|¸IÆF†ä#û‡@ì;¹zxû£úqI©¹‚Š*P¿ã=SÿÍØ§ž#lLþÓ}ò 1÷/ÁëslôôÐ@ßIe—¢ ܯ#î— Å…ù| ~„Ÿ“˜€Éò‡³(ûƒ™Lºêàg&3˜òžNćÈW“™ÏÏ/,ËÕæ·´+º”'û†NŽMœC­¦gnª¸úËß¼©‹ý·P¨¯[Ñ*—I*J ù™>?áç¥$Còƒül¤ìGüYaaa¡š?°{ðÁg£øIÜä’ŸÃÏ'™ÿÜü64¿·hxäÌ„þ”&ô+¥o¿ƒ­ñÐ_,€×«éüÄÈPŸÔ—J*…¹™©œ8ŒaJEH} -}¨}r T“j£jwÌÉÅÍÓÛ/ŠŒ‰KLæedç–EU52È0ʼn“}ÀþØÙó—._›ÆGI±ÿ`ûÿ~wöÿ9‡ý¯ïݹ5sÙ95УT´5Õ×ûÅp!a—‰dùy»»:ÚÛ¥™™ýŸýúŠúÌã8>GLr“ü{‰-6:,E@=; EzQzg]ª°ôeuiR좢ˆŠ(ûE—èY¨¨gÔ™$we&÷ù>¿ß -Üé¨Q'a†çvùoŸù>¯çýêéh©«Îž1}êäI/a±¯2Ìþ{Yýè«pè<ý±ã'Nš9 èË‹·Vm£²8xøèñŽÎî³þ~ùÛ BÿÙ{C…úèáƒèª3]§OÇs²yﮦíµÕeEò|iVz*fL†!óY»ÚÓÝÅÑÎÆÊ‚…þf>Ätuu=¸Ã´`!bßÂÚÖÑÕcõ:_¼ebÄÉ’¬&2$`ãºÕ®Ž¶Öf”ú(}6¬˜V>Qæ™ Q0¬æh{'W¯5ë6ø†„GÅŠS$™9y…ФX}ãÎ=ûÁþ±v¼œp‰ÒÃéÆÍ[ìÝÄíæïaÿ×—³ÏNæ=žý«—/ñì·Ø·«©¾¦²¬¨P–“‘š$މ - òÛÀ~¢~âÒE Læ´5ÕÀþ´)`cŸÅ>Øÿd˜ý÷¸úSú|ê5zì¸ “¾œ2í«™sÔ4´uõçý¥¦ÔÁqí¿ ÐÈqRjFv^aQYE ªbß–V†þùKì)©œ­=y9ú¿þôŸFÿпpîë®SÔ÷ïÙÙX¿ è+ -e¹™’ÍIâØèˆ@?_ ïáêdSdnÊBßOækkiijjjiióìSì/7·´±wv_µv^3BqÔ/äÕoZê¿!ûØÐ¾û÷zïÞ¡Eî_f¹ß=ÈýÛë¶UW–—• ø óóþŒô´T^~±ˆÙ/ŒŽŽÿ¸Ø¢OQQÑÑBa Ÿ?5-‘Ÿ—_ˆÌ/)+¯¬ÞV·½qùÝ,ô )ŠÓ;w{ïáÑÈêôÙ«ÑWNÓ½ïÜz+õë™úY’dqLD•°‡‹ƒ­Õ -S¤þ<†>Š–6›U¸olB¹¿ÜÌÂÊÆÎÑÅØß#JLIËÈÉ+ØR²µ²†c¿¥•±[Ê=ØÑì{öÓ/4LϰÏõØ¥ógºO·km9°wWc}MEiQa^6ZL¸iÃÚU.¸Ùè7‚}}]m µÙ3¿š6åˉ`ô(Ä>±ÿ×Áìÿe˜ýwZÿƒþBÿSý/F3nüD†þl5 -]}Cãù —p }6}Qâæt ¯(­¨©kÄS’ÍV×™ó4ZtVqTyôŸ¿j°ÞýÇÊž¸yƒ„PèÒöc/ЯÜZ¢(ÌÃS2%Q‚ñZ·ÆËÝÅÑÞÆÊÂl9ú†z"MM uu M¸öç#ö—™Y®´wróÂÍõEP_:TÕ=ûÜ=úøaíiÏí[ÿ¼ÞŸû]§;Ú·µ>4À} -þ’"…¼ÅŸ›•™!!ù““Èþx±H$Š‹‹ÅÀ>ÅÆÅáŸâxxŸ”¤?+'—*_®(*¡Ìd~kÛñöŽÓBDÝîaFáÑÈ"迵úÅP?-Y,Œö‡ˆîÎö6–æË— õ õY¡Ð¸j R´iXõ çS¤,3]a¹ÒÎÁÙÍsõZŸÁa‘BQB2jLZ°¥¸¬²¦®aÇnê±cídÿÏþ³÷Â>KŽý^¾È¾û]8›­‡š÷îl¬«®(UH³Ò7'Š„ˆ±M>Þ«Ü]l¬VàGÎ76Ô×ÕÒPåÙ?nÌè‘Jö?%öGû*Ãì¿ãêG_…CÿãèäÐŸÑø.èÿ2ý>þyý;š« gú­-„~C] ÐßR—‘–’ ÂK28M±ÚÓÍÅÑn%ÊiÙúúÌ|ˆ¯Æ–:±¯+ЧØg;¨ïíã õ3¡þÖW«ÿÓŸXýW±þCì³Ü'ö±«÷èí¡»”rÿ -—ûJ÷_ô~}m ‚Ÿƒ¿°@FÉùÓA?ìgø'&&$àà>âÄ=¼OM“øÙ¹Ò2¿¦¶¾AiþaÞ|.ô¯p¡ëNOï÷1I„>ÒOCý·P¿êW—Bý$±0<ØoÃZ/7'û•f˳ÔGék±BÁ¬ª¿ˆC#“ù /55·´¶û«p0ýƒB#…qñÉ©éÙÒ|yqYEµ’ý¶<ûWxö{ß'û?+G‰Î'cÿ»kW¾¹xŽØo;r¨‡³¶ºgSš%IIˆû×{{¹)ï6°¯§£¥®:{Æô©“'M?v0ûý±¯2¬þ;¬èÔþgŸú£ÆŒ?aП1kŽº¦ŽžÑCû4 yðsH|DþE1#¿ª™ßдs÷€Î?Õ ó)ô¯²Ð¿y›xºß÷ó‰ÒÐ@ÿ­ÔobêK¡¾Häçì¬-L—.¢ÔÇÔŸW¶ú+…§‹–,7³°¶±wrûë}ý‚B#¢ãâ“6§ãpÊ‹À~íö¦]{Ðñì8ÝMQvåÛÈ>Nè}ÆþuŽý¯;;N´A“íh¨­B’åçf¢Èâ¢Ãƒý}ׯñ¤ËÍ’]nFÿ²__AQeiÇk-ËÙ§PŒÄnh"ˆ ‚d$(HnFAI -’s$G%6QZD„A "a)†‘ÑÁajõefvöi÷;çÞÛÝPŽã*S%Uœ*«ìGn}ßïü¼¬4³¿ØØŠÕö·ð±¿ûŸx©O¡¿ÐǩѦЗ‘WÕÿ8û¿pÙ_þi ݧDîÃÇxñÜJ¹ÏAî³ê ø«*0üùy¹¬l? ì¿ô‡s‹<èÿ ýíxðƒŸ†Ä‡ÈÏË/Àäã̯k`#ó9`~72ÿ)˜2A‘’¡8-¡Ð'Ñÿe} ÿ ê òÔÏõã@ý _Ï çlO›èA«©‡ŠÔÀ¢ƒ3æeÊuè]}#SóÓ6vga9½‚‚¯ßˆ‚&KÉÈÎ…(Cì7!ö»W³VtyíÙ‡9B+:ñbtˆ`¿½…]w¯²´0Ÿ•‘’Èôõvwqr°E·›¾.ºÝ”*ÊËHÓ%ÄDöìÞ)¼]HP€Œý ö׿|ý¿côÿ±UPÐßµGDL‚&-#§ªÕÒÑ346?mkïäâæåËôoDÇ&¤d°ò K+ïÖ5¶´s0úC£ÔH-èÿkз -}`iøÙÀ“^T­M µw+ýÜìŒÔÄÛ·¢n„]ògx¹“è›èë?vTýˆ - -}è&Ø :F£IÂ?€­ľ2ñ¦12µ´±wvõd0ƒ®­wõ?ý·KoˆÜŸ{93=59>ö|dèÙÓ~pÿ1á~k3] qQÁ?‡¤ìOINNþ¸~$%%'§€÷ø,$þ‚¢b’|œùÍ­`~'Ñùý`þÈó±ñɩ陗sóX¦7ú+Ñÿ÷:@ÿÓÕo#ÔÏõ£A}&¨ïŒÔ7:yâ8tŠòá}rbid§ÈÉ+B§(«ªiÓÖÑ38eB²ïæés1 ðêõðÈ›q )éYÀ~iÁ>ç!—ý)´£ kÆþoûhKáÙ¸ˆ—tjbltèé“ÞöæÆÚ»¥…yÙÀ~lôëW/3}½ÜÎ;ÙÛàë =jTà•“‘¢!öwíÞ&$¸•dÿÄþfÄþ¦ ö?ÿpÑß„ÐߌÐÿ†B_@h›ð}©}r -pÃ\™YÚØ9žwóbø_¾zÐONÏÎ+,‘jlnÇõthtŒ(„þ?ú¿ý5èwóÐ/º“›ž’w3êÆõà €‹ /7ç³v6§ÍMŒ ôtµ!›T•£Ð—• ¢IJJà#)ICìËAì+¡ûMWÿRßÉÕƒÁ Dê'rÕç<ê}²ÞÔÿcöáãâ]%Ýö¹¹_xjb¥ûœŽvüõµþÊò2¿ÉOП•™™‘‘ü§¥rüHOÏÈÈÌÌ"À§Ä/+¯Dä×Ö7°›[ÚÚ;8]÷bó‡ùSP¼ÐK™Gi ÿ1õ_/.¬R¿ÔOõï1ž®Îö6–¦§Nêjkª«*Ú¯@d -Œ,> ?¸/+G澆¦–Ή“§LÌ,­Ï88¿àéãÇ ¼—œž•ƒØ¯®©g·à%í†4›š~9;Ù_Zcö—¹ìOû#$ûmÍ µÕ%yÙéÉñ·¢Â}†ç…óŽv6–fF'àUƒî7¹}R4qѽ»1û|ìóbÓ†úŸuøÑ'RúÛwìÚ½WT\RjŸ¬ÂþCÊ€þñ(€­íΞ»àÉð¿t%$<ê Ÿ•[PRQ]ÛÐÜÖA ?26ãD¡Ï¦ ÿ¡aúSô_“èOqÑÈ!Я(ô³Òáùx3&*0ÀÏÇÓ g¬ýS'õt´55ÔT” ô ›ÐIHˆ‹‹‰‰‰‹ƒû4:,‘<õªÑ74±°†Gé‹Ô/"ÔïêYêÿûü¹ÿ#Îý…ù¹Ù>÷ž|Ûû¸» {+†Šÿnue–¿è'ìÏa±XÙÙpP~°X99¹„÷…„ø•ÕwQå7°›ZZÛïs<ìêFæð™?3;7¿€CÿGþЧÐÿÏ×þÿ£~¡~"R?ÉðpuÂêëëâ>¸ŸèÈq|ðÄ’ïS˜Ù#êGµ`A )ö=¼ý˜—¯„„EÆÄ&$§eåäò±ßÃeæ Ø_9L¿ó؇كه'ãøØÚÓGmM 5ÕåŹYiI·ý+—.úx\8wöŒµ\pÀ¾úe¸àd÷Ñ%û;wlß&ì#õý-|ìoÄþ眿qÕ§Ðßècõ· -ú;1útiYùý‡”TÕ5µu!%,¬Ïœuvõð¹xéʵ°È›·“ÒàõX\^UÇŽÎG0MÏ0ú3ýÞ¬Fÿ÷/C™@DÐïÃOÇv}M5B?'+=9!.&2<äj ÓêÎ4°(UˆRAÔÃʪjG×Õ742µ°²µw<çêáíë¶4":6>9-“•_XRÎÇ~?°?¶æìÿJ±ÿóòÛ%x4~??;3=9þØïëö[›êkªÊ‹ïädû7#îAšy¸:;œ±²0¿kà†“‘¦KЉûÂÛ…ÈØß`ÿKÏ*ô7cô©ÔÚ.¼s÷1 º´ 䯒ª ùkneëàìâîíèÇÄ%¦fÂÛ±¬ê^=»õ>‰þóñIr”Þ,½]þ–£ÿ+FOÒ—¢??‹Þ€þàJô ós²Ò’bc"ÂB®\fúzúŽö¶V¦Æ†úÐGÕU•!šˆÐGæ‹ŠŠˆìÝ»WDDD±O'Þ5Jªð®Ñ34õ]ÜAý`Bý¼¢òê:özUÿÙlj†—•—ûÐi?,Âí -_ÜŸÄî?èï#‚¿“ƒàoif76Pò#úÁþÒ’ÄÿŠSŒ´/-++GàSâ7465· ò9Dæ÷õ >ÆæO"ógç¿[xµ¡¿Ä }r’¨QúêÑÿ/õÅ?®~O¡~V?* Ô÷õíúzÇiàþ• iäТ‰åKÈ}˜Z5cÚºz\öݽ|ý!ÎB#¢oÅ'¥f²ò€ýª{uˆ}´ªýƒC£8ÐÖ„}j”ˆIzO±–uæŸÀ>ÚÕž®÷[Ùõ÷ªÊŠòs2Sãb"Bƒü¼Ý]œlO›£+?lá¥Iˆ‰ìÙõ?öë<ª§u àøb9Z÷/iNCiÔ<(Í*J©”¢ðKs¢R”R)RI§DˆHe §Cudh4ètˆC¦ÄµÜuËZ×Zç>Ïûî½»t\çÞZt—÷¯úý·÷zžÏþ¾„ýI û"Èþd<Çþ—†tLýñýï&Šˆ°è‹Š‰KJÉ úŠ3ç(«ªÏÓÑ72úµwpvóX±Jà»ÐÏÈÊ9PPX„£TUs¹ïmí]݃Ñ3âèí±ó6AÿgýcGÈÙ·g÷ÎíI[·lÚ¾.8Àwµ7EßÎ*b¾¡¾®–&4L„>¬’?Àì+‚úäg`¼ÀÂÆÞq)U?œªŸý§ê¿Æ'üêÕ†}vWé² -s€ä>”ܪîÝíáÜoi¢Á__Ká¯DùËYúÁ~Ä¿èøqð¾äà_ðCrÞ3àŸ#âWRòkëiæ7µpæ÷ܽ×ûà·‡hþ3œ".ôé$q£ôµ£?Œú¿V¿óöMªþ¹²“Ç -ò¨úÑ ¾ï*/wG{ËLþBê+²SKÂC‹¹OØ×Ñ3465³´±]äèìêî uæº!2:6>)%uWfVNÞAÂþÙóÕ£Ä>³¯˜8EÏ8ö1Ñ®7Ô_®e-+.‚@ËÉÊHÛžì‡û |Vx¸:;ÀÓRöÕU”ái ûR’âb¢<ö…±ÿý¿z†¤þw$õ…èKHÉÈÊMU•UÔçiëaüÚØ98¹º{ùüƒÖ…GÅÄ'mOËÈÚŸwèhQqÙYè‡Ëõ xkô{(úÏú_¼|õ—uÐý÷è?‚þu¸4RôOôóröeîÚ™’´5vSä†uAþ€¾§»«³ã";&ScC=‚¾úò@¾,9à>°±?‹ùÈ›õ—yùø†Rõ3‡ªßýk/§þ?Æ‚úCÙÿÀgŸyѼÜG÷Q÷¡÷ï û·Z[0ø¯50ð×ðäGúËJKK@ÿSÅÅð`ü?•””‚÷>OüŽ|Ìü–Ö[míwHç£ù¨ùƒBÿw }!ú¾rôÿƒú½©ŸMÕ ôõñZ¶Ô·õu´4TçBêϘN§v -™YZù©ôŠ:GYEMöÔÀØÄÌšc_àº>2:&>1%5=–õàáB!û £Å>É`Ÿ­´»=Ýí·Z}X×ógK‹=”·/Z|LTøº ¿5>^î®NgìÕÖt†ÂT9Y) ñÉÈ>¨ìOä±?îûé >Q’èd@_ÑŸñýl%5M‚¾…5Ü]Ü=½×øÁ½qs\bÊÎÝ{aŽŽ?Y -cô㥺†ë-·Ú;»{îöþö¨ï‰ýAÿÃH ßBÐÿ©ºòÂÙ2Dÿ`^NVæ®ÔÌ‡È ¡Aþ‚U+)ú¶ÖPÆzpsTSQžÃ&“쎌Œ´´´ŒŒŒ,²Ob¿rpµ1…çõ=}|¨úiÿêÿûèþ»¡¹ÿ±û]í$ø›øëxò#ýåçÿ3§Oƒÿü?œAîÁ{Ÿ'~C~c3ÉüöŽ®?3_úôÎ8FÐV}gFý_»‡ªŸÉ¨àëãIÕ75¦ñ;‡Ì-3¶xdÉÔÒÜgØ×502UµµwprY¶|…À/0t}DtL\brj:4Z.°_Äc¿qdغ³dŒþNÙï{ø ÷nÙØÆkWê.ýXqþLéÉãGæfû)‰q›7n \»ÆÛs™Ë’ŶÖð¼p·Ñ„» |å}iÊ>ýoìÿ‡C<¢? Ï¦þd1 IiÙ)òÓ¦Ã0ÍUÓÐÒ5065·²]´\¹zm`(A?9uמì\¸3ž,9S^Q}©îÊ5œ¡Î;€þƒ‡}8B°¯¡ÿ¯‘@¿Cˆ~Åy‚þáƒyû³2ÓSSãc¢#ׇù!úË\œ} ¸6èiSôg}¯8]˜äKáøa öA}ò™õÍ­íœA}Q?!…¨_ê_Ãêÿ1dUé«fsÿ-?÷9÷ûX÷{ÀýÎŽvþ›ÍMÿU¾ü@edÿ… çü°ÿí‘ûŠJ_(~!¿ È'™æ÷°æ÷qæóCÿ-ú|ôÙ§úÒow˜óÙê_õ Qý´”¢¾Ôwv°³675Ò×ÖTÇöU„Ôgæ–¦VÈ%u¶Ò\UuMm]}#(4«…,ûküCÂ"¢bâ’w¤gìÝŸ›ì—Röë‘ýÖÛ]£Å>YZÂ>îlk3°+[~¦66?7{Ï®Ôä„-›"ׇ®]½r9|å-´2‡Ïœ.s¹™>M~ŠŒ´¤„Ødˆ}¾²?Ùϱÿ¥5#‡>M}}Q1qIiD_ -BUË×Ä æÈÑÙmùŠU¾!ë#7mIô3÷ýøØ‰’Óå±®Þhn%áÀ¢? DÿÝ( ß D¿ððÁÜýYé©É‰q1Ñ0D~ŸË}û…Ö LŒôuµç©«ÎUš »#OvGJJ’pöG/7³”æâåÆÈ„¨ïæéêGÅrê—VÿÑ“gcJýO³ÏåþšûÔýÇÄýû½à>'ÿ-,þAòý`?âúÿƒüTUUM¼ð‰ßLȿݎäÿæ÷Þ'æ?¦æÓÐà ý±…þ'Ôöä£~#U¿”S?6 -Õ÷fÔ71ÒÓæÒW^N–¶ -N­urö -²¯¥£o8m¡Ýâ%KÝ<€ýµ!aáQ›ã¶íHËØ››_€ìŸAö/a¿odØǰO×ö)a·¶­µù–ZÕÅòÓ°³ù?ìËLß±mk,nl€ïªnÎŽö -¡Ñðv£Š·¾”¤¸˜(}aìcÿóÏ8N}}Hý¿ú} )%$eõy:z†&f–6öή0Dÿà°ˆèØ­Ûv¤gîË9PPxâÔés«j(úmt~ÂÒòÆg”Ñ/."èïÍHß‘œå°†CßÊ|Á|@_K“ ?Sq†Â4úÒ°8ôÀIËÐØ‡Ûª†<2\nõC6°êâÔo¼Ù&Tÿ«þû¯_ý?†yÝä}³îã+ÇP£î¿àõþ}ü¿tcð‚åú‰ý€ÿO55à?ÿÀ ý%üÚ:Ÿˆ?ˆ|È|Bþ=Æ|Úù/¨ùX!Æ|:IAô¥ßì°g°úïYõ_ Õo#êWõ±êoAõݨú†zÚLù*`êK³“+Iæ–ä¾\S¡ÑTÔ4´`_MÍ-m(û^ޫׇ…oܼÙßMØ?Šì—WTÕŒûïùì¿èþ”ÙÛ®Ž¶›M7®Ö_®©ºp®ìTÑÑ‚9YiÛ“ý°`—‡«“ƒå‚ùðÈp½Qž=>tð“’Ÿ ì£úÀþDûã¾±ÿ™gXôiêO èKËÊa÷ÎVRÁî5„+#Ì“‹»\ƒÖ…GÅÄ'mOËÈÊ9pæ§ìÜ…J2>M7ÛÚ»ºé]ñéóþ—,úo)ˆ#‡~kKãõ†zŠ~)¢Ÿè§!ú›£ÂÃB}/·¥KÛÙÀ…q¾¡¾Ž–¦šŠò@6Gž3_œdcÔŸ‰×-]ÃùfV¶‹árã-ðçÔÏ¥êWV¿€ªO9ÔÿˆýásÜMÝï'î?æà§ÁßÑΓŸÒOìüëjkÁþ©%Ú×Cà_ih¸ŠÏ¿ƒf>Gþc¾ù¯ÁüO†þ×þPõq¨‰úý<õ¯þ|‰Q?—Sß_à½ÜÍy±­•™‰¡®–¾rdt™Éez…äþt¸§ö!Ó ŒM¡Óì9:ö}þÍ~½G唯_cµ´ÎZçè*G®‘»î¥û¢¤(º¨è¢«n”®Š.Ô(¢•Š¡¤S£™\š‰t™W:F“A£sX³æ8ëœçùýöÞï[½RfæÐZýþëõ×ޞ糿?ÿ@d?.a²ŸÅ²…°ë`ÿ5a¿ûm-MÀ>,îUWË!Ö - r>˜ìÇFíØèçåîêdok³zÕ -C]- r¿™?—°?EFZRBœ‰}¾²?û£8ú}D_”¢?ILBRzò†hábH !ã+W[Ûnpru÷ò  ‹Ü¹;)%íàác¹ù…gΕ]¾ZUCÐoôyý'ýþ?ýRDÿDöÑLD?aWLdض Ÿ-n®,ú¦FºÚËÔU•ýysaqf0¡‹#I²Oc–ÜoøêÛ€úî¬úû3@ý"T¿æË›cXýw³/ûÜ6Èý‡~.ùA~ ªÿö-‚ÿº:ð_ðÔ¡öÈý­ÛPø>ŠÏF~kë€Ìnþ€ÐCèPý/Aý²sE ~Æ~V}wPßÕ×£ê“î.;`tÉä’Ñ>2mÞ|\Y5`_ßÈtÅJ`ßÎÞ Ø÷ö ‹ ì§gf?QPøÁì SŸÏ>“„}œ ˜Ÿ§Oûí¼¶æ¦Æ†¯oÕÕÖTa®æçÀ⦥$íÞà»ÅÍÅiÃ:kË•PjÀ¾*sÁ™‰=YJRBŒa_TT öÇÙÙšú|ôÅ%¥&ÃaõÎÃêUQ×ÔÑ7^nn¹fÝzG·-¾Á¡1»“SÓ3æäŸ*>Wz¹¢ª¦¶F§±©¹×v…ÏzêëG ÿEÑ'ƒ3L.Œý/þv­â¢_p";+“¢èïãIÐ_»ÆÑ××ÕZ¦¦Â /7 j‰¿8ôÀöHcì³E -=#SPßÎÑ…Q?1…Q¿lÌ«?”ý¹O6^=¼{ØÚèþsÖ}ø“ŸÐOíÇð¿þ ü¥¹Gï¾ÆGñ›˜È Ÿ5ÿ9šÕðO°‡àƒú -ý1þûÕ0Xý”ĸ¨0TßÅÑÔ75ÒÓÒPQ\Âfï_g—+–©Ó¦ÃðΑö—*ª¨ihéè™°ì»löôöCö£ãâ÷¤¤¥gö‹…³ßýAìÿg ûd}q{‘ýgð¨»:;Úy­Í÷)ûÕ¸»%ŧò ×ÒS“wÅD„oõñÜì ÷›5æpÁÑÑTWQdo8²ðÔR’âûØÿlœýœ¡èOôA}D_BJšò´øCôLÍ-¬à®è¼ÙÓgkphxt\ÂÞ}2²²óN•”^ª¸V}пûíýæV@¿³ë1ýW? ŽÍèÐýô+¯ ú…ýtD?.&",$ÐßÐw²·ôW®àÐ_ -—Eù¹$–˜Ð‡µga_†Üpfà [KÏÐÔÜ’Q?8,*Žª_  þP¿óûî1¨þ‡,ëÜî>ü??ù¡ùïßCûüÿA#Ü£÷÷îCãó#ŸÏf>ßü¾>AóßúŸö«~‡úÝßwõˆúå ~§~°?UßÒÜÔPOKÕ‡fþ¦^„_Jš$‹,°?›a_YMöÖØ·°²±Eö=¼ýBB)û©È~îÿ‹}˜Ü_Â>Yß»õ7¿º^}íÊ¥ g‹NæegeØ·7!.:|{¿·Ç&g»µVPkzÚ°·ŠKè?vÒRâbDýqöG8ô' ú"}šúý)\ó*(«-ÓÖ341[eecg¿q“‡·ÐvýCGŽŸ8YtöÂÅ+•Õ׿ºY÷Û{Z¿{HÑÿÐ! ýw ÍoAÿ8¢Ÿ²'ž¢ïçí¹Ù…EßÄP_GKCMY‘ ?g6AŸ¿6bô û$ö釪¯‹ê[Û9¸¸{ùsêç úåDý†±¬¾pöÙÜâ>ü'ôö¢û$ø ü¤ø™ä'ô“ê§øƒþè?ÿàß”{RøÍ-ÐøLä“Ê'ä“ÌGó{…›Ï…þXB_Pý_õ_½ìç«ßÊW¿¤¨ ‡¯¾—»‹ƒ5ª¯Ë¨O£wÊ€éEø%iîËN›ã+?oÁ"`_؇Í]nŽìopö½ýðèØø$dÿa¿äwfÐ -³ìÃ÷ û°À-îöaË/ž?{úä‰ãGíÿ|O|lÔŽm~^î®ímmV¯‚ÕEö•¸;<·¤û„}dÇþGfõÓ>‚èÓÔ¥èO“”žÌ%ïb%U -](†ÕÖ ®î^~ÛvDÅÆïù|ÿ¡#Çr NŸ9±œLMýh_24]»{Ḛ̀è¿ÁÈ š˜_¢ÿôèô3ÒSýèˆÐ?oDßÖÆÊÑ×ÓÑÔPEô ú3gL“eC·f9,ûäŽê/X¬ ¬®É©ïÆW? Ô/á«ßúð«~ÿËWŒú¿Ž õ±?4÷‡ºÁÿŒ ~€_ ùyß!ýÔ~ÿ&âÿ€ƒ¿Á?ï|h|*>ßäs™æÿ$Ä|¡¡?Ðúx¨~=¨_IÕÏ:Ä©ïæâ`KÕ×TWVX¼ÔÇù•™LУãK‡WR -ÙŸ: Wn.°½¦ª®©­g`̲ï¼ÉÃË7 ˜eÿÀ(Øýì¿y#n=t…ÛZšî}s‡lðÕò²óPm¹ÇLKIÚ½32,$Àw‹›«Óxì•+Œ tµ4T•`uçÍe>wR’â,û¢¢ã±?Šó§>‹þD}qœZ¼òP J*êš:88–Öë ܶø„„EîÜ”’vðð±œüÂ3çÊ._­‚™¹ è7µ´Ñ‘éùñéó^vb~úäz8,ú¹ý¤øXо ï¸Ñ7_Ρ¿dL–\§ÈH3[3iÒ_ðàêPõÉ%žÔWÓ„¯™¥µ­ƒ3§~Ú!Pÿ4¨_ ê×£ú¼±«>ß}>ûÂÜÿ™q¿¿ïü üPü4ùIó·?dìüAÿüðù¡¹GïüöGD|ˆ|ZùH>“ù/úú¡†3úûMwØWüöÝê76Ôߨ­®,/-9ê§%'ÄF†¢úΨ¾™‰®¦ª/?‡$/™_š,txÙ»*eþ’ªú2Êþ*h6dßÙß»;)™²Ÿì_û¿Œ–ý_8öatzŸ?eØçû wn×ÕÖTU\.ƒÎÏ9š™žšœ¸+&"4x«'ìïúuk,Í—éëhÂ%gé¢òô–#ðêÿ‰Äþ8û#=BÑ'êƒ}Lð}ó-QDôõLÍ-Ö¬]ïè¼ÙÓgkphDÌ®ÄäÔôÌ£9y§ .WTÕÔÖÁÄ465·ñÚ úOúýó22ôß~úGXôÃCƒ úÎ,úÆzÚšêªJ -}¹Y}&ôaiü?ãÁÕAöÉ-gÆ,9øÞ¡ú: ¾£~PhdlB2£~iyeuíú†FFýž¡ê¿eŸóc›3ìžûÂ{ÿ%ºOƒŸÂÿ¤ç6ùÿÑÙù÷ŽÆ~ÀôÇÓÆú7¹Gï)øŒøù?ô<¡ä³™?Œùc,ôÕÿ÷`õ{º»«ŸÏ©äêÛÛZ[€ú:¨>Ø'GÔ‡–`æ—©1Z-ûSe§Ï@öç/öU€}]cS3`ÝzÂþÖ‘³ÿT8ûoGÃ>î1ŒN·Æí¼¶æû _ߪ«­¾Vq©´¤øT^vVÆÔ䄸èðíAþÞ°Ávk­,ÌLô´—©A³-œÏ<º ytû„}dÇþǶõ“=ú}‚>›úT¾i8786Êj †&f«¬lì6nòðöÚ—°wߌ¬ì¼“E80ת¯×‘yinåµwtv=ÆqéýûõÕcžÇüp±ì$—º(¥ûÝ%J÷(*]t/EH!T(*ÊÈ%ÊÔ(*S; “£ã²µ%m! m‹F¶Ø53fÆ:³ŸÏ÷û<ÏïéwIÌœùÍéó_õ×óôþ¼ž÷|ùo\[&-ïDÿ퇣Ÿ.@?,$ÐÑ_æ`‹è›™êë ú*ˆþôiS 7 úГùc(ûdmÈ™ê«À•£gHÔwZáîí.P?OXýNQõßH‰úâØÈ}^áGøIå'ò³ô? øƒþ8÷¸¡?ßGîÁ{ ->'>”|$ŸWóÑüW’Í—*ô%©ß+P¿ùf=Q¿â\qaÞñ#œúÁ~ ¾QßPoÞÜ9HSxe±ñÒs­—w’ÜdÂ>”65õ¹ótô Í,bÙ÷ò îÏ~Î;؇ÿÈ qì¿}'ûÜ&ÓEfØïê|ìßn¹ÕXãꕚ‹°Æ¥ÅgNç⧦ìÞ¾&Ð×Ë}år[«Å Í ðÌQ#ûK¾xãeáÑ û22¼²?Äþ@3L¤êËȰèø06 -Šp#ªÃ‰h™Yle¢»§O@HxdtlÜö]Éû:r,÷taqIÄ¥æÊÕõ–Ûw…ÐǰÀÖöÏÊ ÐÿþýÐß›”¸=nsÌúua!ˆ¾  ¿t ‡¾:T…™ú\Ññé°ìã_yã8öGòØ6ľäAªþhPŸAŸ¸™Qøtô@>Kkûe.n«ýƒÃ"6lÚš˜´ï@fvÎÉO ŠJÎ_¨Â°\¯kh"YAôŸtãa( }1IùÑôW¹RôA` õt 1ˆ¾"4…)“ñBäzÒ˜1"ƒ{ÃW_‘¨¯kh2ß -Õ÷bÔß•’– ê€úU þuP¿µíþP¿ûÙsTÿ•ª/±îà>…¿¿ü„~b?ÑŸøßoÈ/ ÷à=Ÿëø(>%æKúýÕÿ‘Qÿ%§~û]¢~mÍWU¥Å§ˆú»¶ÄD†ûyú¶ ¾ £>À'êËøÐ|&¿Ü¹:j›üÔé -,ûÚzƦÀ¾•½“3°ïúNöoÀ>ùW À¾ ;ˆ°ßƒOüNÜåÖæ¦†:\åêª çÏäÌÉÎ<°/)1aë¦ aÁþ«=\]œì­-Í75Ò×ÑÂCg¦"”}öéQ}±ìÿÖ¾þ.‡C8¢?‚ O«>eO"3Ci¶Ê ì &k;ˆ‹‡·_Pèºõ·Äïܳ7-#ëè ¸ Ïž¯¨¬¾tÑïФPôûAáЗPõè“*ÄCŸ^…OÞ }/ýù}-}‚þD}Ö|øÞáÞŒEöeÇÃÊÈOÅCGMƒQßÖÉÅ Ô‹ŒÙ’@Õ?UP\ZQõUM-QÿnûƒÎ.ªþKFý¥KýŸ…þ÷q_,üT~ ŸÚøƒþâæŸ„{âýSžøbÈ6ÿ'IæKËû• ~U¿‘§þ1úA~^n.ŽD}è»jÊ þTy1d{ [[÷}\a(nòS±¹ÍR†êƲ¿˜°¿Ø÷öŸöû^oó‰ÛÌ+û ûì:÷õ>ïù¦›nsÛ–æ›ûëµÚË—ª++`—óóNÍÊHÛ»ggü–ë×…ùy¯Zéìh{lnb¨§­©¡—47y(näñIÙ'ì@ö‡±/y†‰T}Š>§ ìijúæ /µu\añ \³6*fó¶»SRÓrüTþ™ÏÏ•W~yñr-åfsË6ýozž÷ö½|L$¥Dý›âÑß“˜…èû úNö6ˆ¾©±ž6‡þ4¬ ±'Ðûp !Ÿ nÍXæÔÁçWœ ¯¥k@Ôwõ}ƒêã©ßø‡PÐî3…Ÿ?#?Óù~´ñ§þ÷úÛ§Ä{>_|ùLÍÿ£˜/Nýo…Ô¿ÕXGÔ//-õ³3RYõ}½ÜœAýE¨¾¨OÚ®ÜÄÇ e˜-.¤îsì+!ûZÚºF¦ó2ì»ö×FEÇnMØù`[Üwd¡_öÉ>w´·Ýn¹EÙ¿øå奟Ÿ9}êø'‡ÓSSvïØ¶9&jíš@_/÷Ël­/436ÐÕÖT'½i¤º—ýˆa_FF¤ì±/2"èäÐGô&Mž‚-AYU}î<]c³V6ËV¸{ú„„GFÇÆmß•¼ÿà¡#ÇrOŸ).-ûâ/k®\½Qßx«åv[{ÇCö&샔¼Âå> þkú4$;ƒ~(EßзZÌ¡?GUy–}Rô™…mCÙ'/@–¯¾Ž‰ù"K[Gg7ONýÔŒlP¿¨´œ¨_×xKHýo¥S}öŸÿç¾~ü,ýÔ_üà©÷|ø|ò©ù?H2_ÊЗ ~ªÿ¸ë¨ßê_«­©®,/)ÊÏEõ“ã7GG€úž ¾å"sc¢þ ª¾,UŸë-Ls¡!Æ5–“‡=žAÙ×$ì›sì{úø Äþu(q”ý‡„ýû¯?Œ} WãwÁB·ãB7Ö߸z¥ö¹¬´¸ðtî±#‡îOÞµ=.6:2<$ÀÇÓÍe™½¥Å3#8u檫’ö6ö˜~ö@ýÑ¤ì ±ÿ[û»ýáˆþŠ>QÍ›€%Л—¡Ž>4 Kk{'7ÕþÁa6mMHLÚw 3;çä§…E%e %ˆ~C†¤ãag×ãþÕ€´µ_‚~7E2Ò"ýTúþ€þJŠþBD_W[KÑWšè˱èÿy,Ý—Qìà @öQýI“áÖ¯ªo êÛ8:»‚ú¡Ñ›ã“QýÜü¢’òÊêšÚk ~ ¨ÿ¨ë1ªß'ÅêäþžûÂðóägèû{(ÿâ†üñ9 >O|–|^ÍgÌ#åæÓWû–S^ãwH «~ǽ;Dý+_3êçpê‡úzº:;õõu´P½Ó=þãû°ßAØïþì ít/°ßMÙ¿w·õïM õd£«.œ/)‚…ÎÉÎ<°/)1aë¦ aÁþ«= ÂÙY/gϯ1Ge¶~öoÊ>a²?|ˆ}ñ3L¤êËpUOClº¨ºÚz†Ðu—,…œ¸®òö -]·~ã–xHIZFÖÑyŸ=_QU©khjnŃЇÖÛó¯^‘„¼ú´ôRô»è×½}w}sS£~èOAô?fÐâ/ƒÃ°O^~÷¦€ú³UÕá«GÔwõ}9õ³rõ¿¾BÔ¿s¯ƒSÏrÜ0ê¿•"š~úŸ0싺ß~N~¤Ÿ±Ÿê/vÈ_{©÷>'þñ䋘ÿ_aó¥êÍòÔ'‚úàSVýª~YÉg ~Vúþ¤T}×å¬úš ¾Ò ¬ºX^˜ª?ŠW]FóØŸ0In2ýyÀ¾ °oimç¸Ø_-žýs|ö[nßmÇ"GÙïíû•Øïy†Mîуû÷î´675àN_ª®¬€•ÎÏ;q4+#mïžñ[6®_èç½jårGÛ¥Kš›êikj¨©ÌR¢×¼zí@Ù—)ûCì÷ôGr胆€IQPœ¥¬¦ŽW¡±´[H‰—oàšµQ1›·íØ’š~øì×kXNéðk\‰Ù¶Í\HÇ("•Ò¶H”BQ¤(**ªqÌq”óNãXé ¥ƒ”J’(‰IIí(’C#{ Ùfsíýÿ?ÏZë]ë}ßÒØ¨Ëó1}i¹ïßs?A¡‘Ôs™Ù9y× !¥w+ªjjâ.@ô›¥ ßJ>¤£ÿú7!úUú—¥¢ÿ“tôÇ2è"è÷åЧæwcV†»ø@ýC†úcQýÉ þœù¶¨¾÷ºM?ïÜ÷ ªêt -Uÿ«~#>pˆú8ö;¤úíq_¿@~¤Ÿµñoí43Ü£÷>_@>3ó;‹ùõÿà«ÿâYcC=Q¿äV!¨Ÿ™ž’x*:œª¿i÷ -W§Å¶óæÌ21š¬¯7^C >Cž(Æt»Ðc—ûb™qÂ)Ž€ DzoØû'yìß ìW‰±­n_­Ù^K°ÏÖÙ¯ª¸[zûfáµ¼œ‹™çΞIˆ=Þí·mÓúÕžî.NÐh+¸õ¦O5Ð×ÓÖTW=RIqè`ü°à°Ëäâñ/Æþ—vö«:ú]}Š>Їì\@†®Šªº¦¶®¾á´3-¬¬.vrq_õÓº[}wí 8r<:6žƒ™/_ô‹I>ú4ý–OiáŠ~)AÿÊå‹™RÑ÷@ôŠÐŸ ;^S‡¾sÅEùPëóé)Iñ1ÑÇCìÛå»uã:ï•nÎŽö ­--fΘfh0Qwü85U•‘#‡úo¾>?ôîEÇ>a_Ùïò}ÉóÄÔïÆNýÞ8sû+à8¡¬2F 22qÒ#3sËù¶öŽÎn+½×úlÙ¾sïþƒG…GÅÄŸNI;ŸuùJ~AQñ2æ-øáæ%›€ ǧÑç=±ì$ /Áú·ôÏIGE¶™ ýQÊ#È‹Ðï×—Žƒž¢²È²§sõõ¤ïT_Ye¬†Q&¨oϪ¿7àppxtlbrzfvn>¨_ê?àÔÍSÿûiuþÌ‘øÏw_ ~V~Ž~b?Õ_Ú¡ÿúš>+~ Ÿ#¿Mó;Þ7¥SŸ§þ+¢þãú5U÷ÊJnõÓ@ý(TïŽm×zy¸8ÙÛ̳õ ôuµ4TU”‡ƒú -ýÉÎe¦¾(Çt½@ŽÉܱ?˜°?Ù×cßU’ýDdÆa¿”e¿áÉÓç/~}‰ ÿ<öÙjÿö/ø»›žÃuGš] :²Ÿ{)+#-ùtôúØÑƒû÷îܾÅg׊åËìlçÏ5731š2i‚Ž–†Tš4Z¯>öÁAbìcŸ;è˲è÷ôûQô‡+AD4´ !“ŒMgÏgcç°lù -¯56C<ü ‹<—˜œ–ql¯¼²š¢ÿ”¢O§>Æÿ> òôóÛDßПèO3䣯8”CÿDÿ¯´+Ý™®tÅo KÇ>¹ûXõ‡+«¨¢ú ¾Å<{'¯µ·í êGúiDý›%e÷ªjÔ?&ê¿â©ÿŸŽ©~ëîKÂ/ŸÐOì§ø‹.öp?þõž€ÏŠßùÝü6Õ©_p5÷âù´ä„ب° ‘úŽv6VfÆS &êh©£úC#x忱3W4^dÅØ‡FËÉ+ˆ±¯Ïcß¡öÏeûùÐl`¿‚a¿Q’ý¶}®Ü¤Û¯^û´Û5Õ•å¥%¸çr³/d¤&'ž:|ä€ÿž?o^¿ÚÓÃué’E6PkScœrÚZðÞ¥a VšÎ8ʾ¬û_ÚÚ¯æpèwAôe(úÌp''?` $DiähUuMm=}ƒ©ÓgÌ‚x,Z²ÔÕÃsõúMÛüvÿã—ÃA¡'à%˜zîBvNYåÕ5µëÓAÀ¡ÿN¸Ú;Ú¾¿tô ýqêD°ý¼Ô•fì3/TÿÇÁCQ}u-‰SÍ,¬lì9õ…EÅ&$§¿˜{µ€SÿI§QÿSî áçä§ôSûý¥æÞràsâ‹‘ßYÌ—ª>„ðCõëˆú·AýPÿLBLdXСý{ü¶ú¬ñtõX™ Ô$TŸdÑ«õ/Bö2ì« -Ù·–d?$<ª}ì·|ûïxìC»áÂ{X[Så¾Yx-/'»{""4öÜn¿mÐìUî.N‹.°²˜5cº¡¾ž¶&|„‘Øj`_ŽvšyòÀWAö»|c_x¾“˜ú¬vä=HvÁÈ‡ŠªÚ¸ñº'A:fZXZ/\ìäâÙØ¸Õw×¾ˆÆñèØ„¤³é™sò®Þ¼}‚Á ÿŒ—‹ÏA_ @rè“9P@ÑO=“× -úVú:ôäåð5ÈìоÈ|RZòä!ê¨onµÔw÷\ã³ÕoÏ~P?2&á ¨Ÿêß&ê×õ_‚ú¿wõÛp_~‘üŒý þ¼ €wDÿÖÂyÏ_’üÎ`¾˜úïõ!äMH_]mMUyéí"T?#õL|Ldh §¾³ƒÝKs³é†“&èhª¥¤ˆê#wæl”yAfž­­³¯Õû‡ ûq‰°èû7n•À¤«ºí&ì7‰6] [ïO÷[‚ýæ—M/žQöïWÝ»{§¸¨Û}>=%)>&úxHà¡€}»|·ø¬õ^éæìhokmi>ÓdÚ”IaÍ©QQ1l^~rØjÑí'>ö¿±OŽú²ìÄí…ù@í† ®{Ñô¯ ZM…ý÷ô›ž?kl c€¢_Ô~ôõè”@¿»¨)2øà¡ìcWzõûÊ¡úŠJ£Æ¨kêL˜d8ÝÌÜrƒ3§~`hdLü™Ô T¿:påÕá3§ Á¨ÿ¾ƒ«/Õ})ðóägègìçŽyî¼ãÏ_*ùÜ|iê¿áÔTW{¿²¼´¸èzÞ嬌Ԥø“¡ýwûnÙ°z•›³Ã"PßÕ×ÖTCõ;yÔŽnÜîÝ™(3Aîʰÿ=Ç~Ÿ~rýyì«ûzâì{¶Î~eŸŒ:è7Ÿýwíg_Ôð·oÉŸÞü+°«®îÁ?ïWÞ++)†~ç^ÊÊHK>õ>vôàþ½;Þ¼a׊åËìlæÏmfl4öœ–4[i8e¿_ü û²ìio¿ŠÃ¡ßÑ—¡èSëzc:ä@8†+=V]S[OòÔ馳ç̳±[²ÔÕÃkÍ†Í ÿG‚Ã"!ÉiY—r¯Â°¤¬¼²š>1Í -ÈÄÛv¼Å#Á=›yèWW”—ñÐONŒ‹‰:ô)ôU[Aÿ{ú2ìaÇ>4…\ròøäõÕ4µQ}SP‘ƒ³ÛªÕ¶øîö?q2>)5#ërÞõ¢âÒòÊûµu8õßtõ¥»/„Ÿ/?C?‡ÿ;±K@ìÇìo¿—_œüo>ý’9õáúšQý†GQý;Å7ˆúg“âNF„åÔ_¶d‘µålªþ8Fý¨~oF}A–Es_ûðÚûFƦ,ûË)ûÛ¡ÞûÉ<öËÊ+ªyì76ûÿFöß¼a+þ”²_]‰ ¿qýjnö… (ø©‘aÁGøïñÛ¶iýjÏÿ±_çQ=æ{ÀïÄÔ\sî%Ë0H$*¡T”„V¥E¥}û¥RÑB!S”R’%[¢}Õ¾N%QmJ¥$Q!Rèºçâ`æÌý|¿Ïó{~ÏoI¹î9i<΄Óç¼?¯ïûãêì`kefl »^CuÍ*…å2°Ûb Ðjà €ýIÔÕ“ØçûÆ>ëûŽ«ê“Ôý wÆÌY¨ˆI@2ää¡héè™Y2ì\¶íðöñ 8 eàÜ…˜„”4è%W®!ô¡ë¢Lú½l BÿÃ× ßK "šÀõkWJhèC(ú;y /ˆþt AúhOøiæãe¡©?“T¡¾ÞFS+ÛÍLõOœ‰ŒILÍÌÅê×ܾƒÔïzü©ÿ©ÿ¿w¤ú¿ÿy­bw(øIùIúYøs>œÿùóÙÄÿ,ùê9ÒÔÇAó/sp¯ Ún ¨_uýjIanFjBt䙡A÷{ïpß²ÙÖÒÔPOK]YI©/&*"<›TŸÖpé†YapšÑí:V³/ÌÆ¾2ž;ûç"£ã’0û°á×ýÛ¸×aö{Ÿõõóbÿ·°Ï±ä¯^öÃ¥Ã,vM uÕU°âÅ…¹YiÉ 1 Ö…ùûB«Ûæâdϰ45Ò×ÑRWY­(/s€åFe&1E…WÙÿÆþ߸Ðç'¥Ãw$C‚±a'»båje5Mí M-lì·º{îÚëëtäXøÙÈèøäK™¹Ð®WU×54µ÷ ßÏãü}î<×;ú(¨dPè‡|ý¥Ã Oîɸqxl³ ÕŸ- Ïß"P_AIY]KÏÐÔÒvó÷Þû…‚úÑ ©¹…%0P¿å^G'¨ÿ Õ |ç ²?&ÔÊ}&üœò³ìçñpþ¯ÔâŸEþØ0ÿæðÐÀ>ÒÕ‡˜?íéê¼ßÖr§¾¦ª¢¬¤0'#%!úüéãGHõ–&†ºX}¹eK‰‰ÎCêOãP¢-’ý×À~Á~G{+<{µÕ•WK‹ -r2/%ÅGGž C+¾w—§ûVG; à ښjÊJ°ßÒK$ÅΟ‡ØŸ£$w›9 :û£mî¨ú|˜::ˆŒiÓº9 ñEK +•ÖªB( Í­átóðÚ³ÿ``HØÉ3ç£P"rò‹.ãóÌkmôÈe—w àZˆÛîÞA8|™qô[›Qôó³3P .èû"ôÝx£/¶`>ý©Sp.ØÐ§Ìg±/ðÃG/ ¨? ©?Ô_²L«¯khbÉp Õ?rüôùè„”ŒœÂ’²Šªšú;-m÷aOá÷§«ÿñí7mw¾âÂ} -~J~šý<øç=Í{–ø4òLjùtõ?QêÿûÍ ]ýÆz0¯¬¸ '=%> -©xÀg·§›³ÃÂÄ@WSmí*9i¬þœÙ@ݔɓ@º ´8³²<žÆþlì aö%ûËYì›q³!:>éRFv>Á~5lys+b¿›Å>^s”ôaÙçlwïö‰=öôIÏ#8vZq·«,/»Œ¶<51†pâhð¡û÷xyÀŽo²676Ð[¯¡ -ƒX.#…öÎ4 Xob¹ax|ߨ'¾ï¸ª¾Uo§à~;g.\‰ÅR2(*Zº +[g×í;½}ü §#.Æ&¦¤£PV~ãfM=nº¡êö½À·Fÿýa«> }ZýÇÝ: ôë˜èçèŸFèû“è;Ú1x¢?…‚@ý¡Ð'ž@rX}x†©/-'¿j­š¦®‰ÃÁÙÍs·Ï@¤~T|JzNAqYEeu}#]}ØJýOcB}÷éð³ä§ÑÏŽÿPýçã%>GbF{_õ}N}@ïA;˜WW]Y~¥¸ ;=9.*âÔ±C~X}{ c¤¾‘ ¬fn"n·¨êC"Ä¡ßÊ®X©´Vm¶ž¡‰…õ¦Í[Ü=wí…Û/$,üldt\Ò¥Lh¹¥WQhhjik𰫇lƒd†¿ûØÐg}$úDèh'Ї€¿œLŒ~‰¾Ï0è ñBŸŸŽ>1Œq´yÀŽÀˆÔŸ5g.¨¿ÔW\£ºNGߨܯÎÉÕc×>¤~ø¹‹qÉiÙùE þ­ºRýÞ>4À[âÒKêsºÏ?;ý#ПãÇ9þ2Žj´ó¯ÿxªè €yOº‘úM µ·n\+-ÊËJKŠõÂ|÷zmõ­Íôµ‘ú+d¥°úBLõ)æ¸K °ÿ=ûÓx°¯¢N²Ï°sDì{3ÙÀìgæä]öoÖ Uom§³?ÈbÿÈÙ'–ý=mÙû`=]ñ®ß®­®¬¸ZZTý.).êü™“°éÙãåá¶eó&kscC½õëT×*),—‘Z²H|<³g΀ià‡qÐæÁ÷}&úôª/@Vý‰Pn§þ„П+"*¶h±” ŠƒªÆz]c3+[g×í^{ö8 —_ÄÅØÄÔŒl…ŠÊ[µèîƒ$`ôûú¨÷ÿýûÿ}xþXè·µÀû_ƒÑ‡$@Hˆ¹q¢„Ñ÷àDåÐèO ÑÿžBŸü¨²Ï®¾V_JvR_[ßÈÜÔßîµ×7 8 ÔMJËÊ+*½vãVmCR¿=|° cT}.÷¹äç²×_ÁõŒöoýÿøX‰GꣲûJýÇÝ;îÝmº]{óúÕË¿æe^JŒ½pöäÑÃX}ÇMÖfÐp5T àÊHIŠ/õgü„Û-©>Uõéqf^¯,öÙÙ—dcߘž¯PHØIXõ˜„ä4(x$ûõ¸á‘ì÷½ U<Ú¶ûƒ¯_ ô÷={ -÷NgÇ½ÖæÆÛµpñ †—žš »~âhð!?Ôï\l­ÌŒôuµ4`Ñåådà Ëg&ŒcŠà¤‰dÙà*ûaö¹Ð'‘ƒ@NžŠ™ž'ºÒ°LN^qµŠº–޾‘©%ÃÞÉeÛŽÝ>~‡CŸ‚»/!%=+Ÿ}„Ææ»÷î³rð‘Gý‡Œ“ÎÇ£1xÜÓE¢_ÏD?—DÞ8û PàîcX ‰þ žèÏÌ}võ'Ã#ê‹,—”ú/ûõe–…¸Ð­q¦j×€a—aEE‚EE2‚€€ä( ( -@@@rN’s$ ‰’QDtʸ8;«;:Δ{îýº›nºÁÖu–*œû¿»ê»÷œçœWD|÷Þý•Ô4˜XÚbõý‚¢R2r K+kšÛ:»ûGÆïOMSÔM¤^’ú¿-»>0€Ÿ^~æôgø3ú_ìïý2‡ªä±úDµÃ¦ ê?ž~@­~IaNƵø(PßËóÌ) “c:šªŠH}1‘HýMs¬å(ê/£]c>Æ>ÚöÅéØwö/xù\ ‹"±_ì7ÜÄÝÞ?ì߇ÒîÌ.yt ÿŸ7pÐï3¤~‡%oldp µ{c]Mdèö„˜ˆ@Øðκ9;ØZ™éëhª): ³WRBTnƒ5:Š>x -þ…~æ°¿Øö.Ú¡ ¿Œ¨Œ> G„?\ P ¼üP »¥dää•Ô4´õ M-mì\Ý=¡‚ãã“ÓPTT×56·v@蛸Od>R¼~ó†0o¡ÈG¦}R È71:<ت€È|%EyÙé)‰ú‚|½Éè›!ô5æC=cô—Ó¢O¥þ·DöAê¿qR‡ˆR_QUS瘉…é3ž^ ~TüµŒœÂjõL?Fêσïç9ê/¿>0‚ú?é0ú×ÅþÒ/vÈw„*þ²úÿúqæ%Ús§Ü¾ÛwçvëÍúšŠ’‚œôäø¨Ð@ßK§ím,Œõu4TÈHí¦Sõ¬qŒØ_Á4ûÇŒÌ,mN8ºûÞÐíaQq‰)éÙyE%åÕ7nÞj'؇~ö °ÿïׯ‰†gŽý÷¸åß¾¥ZóžCàA³ob my]­Í 7ªaÉËÍLKŽ¿zåò%OwW'ûã&zÚÐìòrÒRÐëBü¼[6sràN'Ô'ØÇ]¾ì«gŸnÕ_AZõq1l@èsrqoåß.(¹OZœ;¬¥k`bãßåŒÇE}QqI©™9ùPttu÷Aä#ŠàɳçT‰×ÀèÏÉ{¸È“áŒþØ0ýøýê -„~FJR\Txp€ ÆÅÑž ô×0>1ÉW2W}a±]R2U5tô-lìO{\ò ŠONÏ)(©¨©¿ÙzûÜÃØ½(ð<9ƒPÿÒ,-Â>0†ÿ³íŸçÏû¿ä™Uÿ=EýŸÈê?Äê÷Þé@ê—_/ÈNKŽ‹ ¸ŒÕ?nn¤¯­¡¢€ÔàßÊýMPÚ°Û®†º¦Þlç4 ûßѲÏΈ} ûöÐîÀ¾,yÐï)ÙùE°åaö;»{GHì?yúVœW¸ã™ØóæöÁ-?>:t·¯w|mUÙõ‚œŒ”ÄØÈÐ Ÿ‹g\NÚY›C»VQ<(»oÏ.1Áí|[¹¹89ØÑD­NZöWü±ì‡ýoHè¯\µ†J U7('*!¹wÿeõ#ú̬lO¢Ìçí›ˆŠ ¸¬²¶¾ Õ@ßÀÐÈø½I<ùQ 0÷èç>®€WyÉ0ó^7ýÒ¢|Œ~txp  ïÑ·23>¦«¥¡öÉè/[6Wýåäøê¯õ×Ä ÙÊ/ ,ŠÔWPÑÐÖ72?ŽÕ¿—œ– ó©ßq§«ÿ¬þOõß/MõÑ™ëO±Þ¿XìoûÒ‡±ú¯°úN‚ú½]·šêªË‹ó³Ò’b#@ý‹çÜœNX›és‡ä¤÷Hˆ -aõa·…ÕvÍj¼Ù’[úšf’}áâ»)ìëûV˜}høÀàðhÄ~N~Qéüì“zþbÿŽýZBLDêøsnζVfFú:šêÊÐï{%%D!ûðñÀÜÈÎÍκ†èõ9“ð+fŸ…Jý?‘ƒR@•ÀºÇ>¨^~˜þ»¥dä)©ijëšÂìwr;{Þ _DLµô¬<(šºÆ–6È{¨îMN¡—ˆ{ä  ÿ+Ã÷§CŸêý!í=šžBè  ¹ßÚ܈Ð/ÎÏÉHM‚¼‡JM~§Yô•™Aú”+¡Zö¿Åwͱþ¯èFúB¢{¤å©ÖÒ32³>áävî"¨›”–•_\^]ס§wÔ‡é‡Õõu¨Î¼l/äÿG~´Øßô{õßaõÑ’åÕ>591:4ÐÓÕÞÒTWUVœ—•š|ÅçÂYWG;k3C]-`©¿Sh;ÏfPŸ ©¿j%I8êUŸ¦¤?‘}5ľ1bß Ø¿쇄GÇ'¥ûÅÀ~]csk±éá¦öŸ=IÍþ;&Øÿ•Š}¢í„á÷âÁþÄØð`°ßÜXW]QR˜—•– =àëåéî --oij¨§­¡ª$/'- cwËfNÜîkYWwB; -Y¾^öéVý¤U×Á„>'·]PDl×iYyEÕÃZº&ÇOÀä÷¼tùÊÕ0È{©™¹…×ËaîCtõôÆ cú1¼?FqÇDØ£AÿÝ,ú¯ ëúxêèwuúu5ýL„>šû(îAØbôµ}…ƒû÷I-„þw Ðgaa¡bŸZý?CüõÙÐäáÛ.´«¯¬®¥khfmçèzö‚Ï•àˆØÄÔ¬¼â²ªº¦–ö®ž¡Ñ‰É)hXPè}C4ÁRW þIg±¿åw:TUÔG{æîŸ/ÐŽ+ÎèPOg{KãªÒ¢¼Ì”Ęð«þÞçÝ]í¬L t¨+ÉËî“ß)ˆÔçä`ŸWý95Í}Vjöù ö¥€}e5 m̾­½“+°ï㟜š™SP\ZYƒÙïêé»;42Nìz˜ýW$öž³ì1³í½yýz¶ï=|71|·¿Úþfêòë¹ÐõqQaW¯ ¦wq9-3·àz°ßÔÒF°?Jbÿ)l{ ÙŸÙÿm¶óß’;ØŠÙGÛ^gû­¦úZèûüìŒ”ÄØÈÐ@?ï çNŸ‚®73Ò×9¢®¬pnDz~7´<š„ëX׬"³ÿ ݵ,¶Áÿ÷3[ -ĪÑ'|[ͺ×ìµ[xù„Ðà—‘ƒ¸§©£ghjiãàìvö¼—/Lý˜„kéÙùE0ôëáõoßé Ìü§°áÎ0ýö´O?‹þlÐÃèÃÈ¿ÝÖÒT裙Ÿ–œ -è_‚¬çì`kÑפB_ðóÐ§Ü úë6À$ääÚ»MPD\rï~y¸‘£&–¶'‘ú~AaÑ )¹…¥•µ ÍmÝÿe¿Ìß±Î÷0~uuºÎ\לÓ:95ͨf¤$Ù’"KQJÈ®õY²”d-B–,Ù÷}Ñ")²„È•PsZŽ¡3Í霖Îûýù~¿ç!Ñü0ýÀçOxߟûußw[GwïãþABýá×túM#êSo†÷Ÿ~Ì·Ç_ÿž¡>À><üw@]w{ksC-P¿¬8?+-1&¨ïåîìhkÉféji¨©(ÊËJŠ‹"õpÐkΟ›jµœo=k<ögOŽýõ\Ø×"Ø7?bëØ?íe|Ÿ’‘Ø¿J¿¥­½ °uÂþ0bÿwNßûì3Þü{E[¿§»ãþ½&p>Ô½2X>)‰±‘aÁ¾^.Çím,ÍLM  ë©«*¡ë%ÄDÖ®Yõó -~ð<ßâEp* öyËþ´ÃþèÏ!Ÿ€üùÈ7„þŠŸðˆKÊÈmݦª¦¡©£oÌb[XÛõýÏ…ÁÔCñ‹Ë*pé¡ö]=9‰?UöÉ]à,…pØ?H}QqIYyE5 -]#ÛÒÖÑÙÝ ¨“˜–çê×6Àî|·ÀS¼þ7Cý÷ô¦ Ý8oöL[Àþ/T᣼Oa½ÿyìäÂþ[*ÿˆùŸ#ö?ìéê€ÂW_{«êZE)X?=9>:âü9p¾›ó1;k 6ËX_Gs—šÊ¶-r2’âë× ÁQpáUÌgÊ>³fOײÏË6ºêS?€|hµËW - - ÃØ“†^«¼c×m=#È|«£Ž'Üpé…†GÇ'§eÁÐ+¿v£º–ìD¡èI˜?Ê;4öê`[Ú8œp;íš™WTv¥²2®ÑígRÿ7õ?LKêÏ<žÇCýw õGõŸ@¿í‚z[_só:`.73%>:<$À甫“ƒÅ¡ý†û4w!õe6nê¯\|1P.Mý9PÿsØ_Ä…ý5ûÒ4ö÷h阰Øà|À¾‡ô½Ðð‹q‰©9ùÅ¥èýšºÆ¦{÷±ñQæ'؇OW¾É°?Þþèþ×#¿½zùüªòuÂòi¬«©¾¯0/+-)¼tÖÛÓõ„ãÑ#‡î7ÔÓç++ÊoãÃDß/[úªìÓØ'qÈs™¯Íá?÷¯úßêƒþ ùùW ú"bù -JÛÕw£ö¦f–˜øÞ~!°óS3s KpæðÍ­÷;©•‡ºqt§FÞgdçQ {ì=ýç4ôÉÈ#ºCÜäd¦&‚ð÷8óœG¡‰¿u3j¿–žà„>‡úshêÏê/†³@®^+²a£ R—æ>Ãý‡,lœ\Où„@ ¦dæ•V\¿YS>ê÷ <%Ôa¨ÿn†ú3oú4õ ëÞü¤û‚®¿ïáƒÎû-wë€ú@¹œŒäø‹‚ýÏxº:Ù[›41ÐÑܹ]i«œôF1‘µ‚+ù@¼a©ý–—úŸúÖSþbb_m} ,|€}_ÿsç#.Æ%¥fæ—VPØoìwöû±óqÙŸúôSÃ>ñ?ûœÒ×÷¨·»ó>v¾Û7+¯\.!îº@Ìoocifjb°oïnuU%è{Rp¨{+øÁø|x—yõ¿™æe<ô™ª[:í2þPj…Ö­—”‘Cé54uôAyk»ã'aæ‡EÆ$¤d€îe׫ÈÈCÙõõ>£7 }FõI ÏYxc³~<Ѓª7ÓÐ/+.ÈÍ„´Ç‘‡ºcÜ[Y°MM uµú <¾8> =þ?ý1Ôÿi¸ô~X@…¥å¶*mß©©c`rÐÜÚÞÉÕóŒð…‹ñÉ9…—Êúuw[ öõ“áó+^zõÐÔŸÁþt~c©O}zšúƒýÐn;ÚZënW]+È¥'ÅE…;{ÆÓå¸ÕaS}赪۶ÈIKˆ­¼‘R»`ÞÜ¿MFý©a_@±/N°¯¤ -Ø×Ö541óö]=½|‚ÏGDÇ'¥eæ””U\«ºU[OJãøñCðåÇàã'©?û Fû/_üó@Ü£©¡öVŒŸâüìô”„°¿¿ÏiwçcvÖl–±¾Ž&6¾-r2’âë× ­ëcÙçûnáî²?}±Ïý`ò ü€6dUõ—.ÃÄÅÀ—W„V»G[ÏèÀ!sŒ{·SgΡìÉéÙyE¸ñ@õ»-mídâÑ¢ƒè8€hN¢^=½¬¤0&^|tDXp€/Ùx »¾&B_a,ô—~9ô™Dd¨#ˆPÒî²NLBZnË6Õ{´õML[ÙwñyÜÛÝÑÖÜxçÖ«—Kò³Ó’b#Ïõö8yìè3Sc=m¨µÛ¶l’’¼A©ýq<õgO@ý)` ûò -ˆ}M‚}3è|ÇûÞ¾XúÀÿiY¹…%eW®W´¶w>è¥kM€©õ>æ¼ý¹ÆÈð™>O?|ÐÕÞÖr·¾j_ù¥¢<@ÜÅðÐ HB,}GÜo¨Y¸]YÜ/!&*¼Fðç•Ë©Ã,DëSÎãÿ…7¿6‹ÿ¼7aÕ'ÒóåÉÌ“’ݬ ´]}7ޤ½ˆð(ôù¦}æ2Üe õ„ÃÀ’ÚÔWß­­g W9z줇7$adlRZv~Éå«7nÝilnëèîÅDêSø_r ®Îóµé3ó¾ÎeÝõá×½‚??ðäQOW{ksCmu啲⼬ÔĘˆÐ ?/wgG[K6ËHWk·šŠ¢¼¬”8ÐmvÚ%¤Ò2vâª?9ö—rc_’ƾ†¦¶žá~S3KÀ¾³›' ,2j_V°ûÕûû€€Qì¿ùf¶)4?rŒÿq5¿W/ö‘XüêjnV"r3Sc£.„úzy¸8ÙÛL öí…0TÚºYí¿võ*âþ%”ùéÓüuú–}Þª?‡®úDù ¿ã#lûI`5ÀM\R:­ -¨®£oÌ‚‰gü¤ûiŒú˜„”Œœ‚â2"yCÓ=ØwLп"”ã@ÿ³‚×›óhJp’ó wn£â— -ó²Ó“b"Ar?ïSn}У^GSC@&žú˦ }î㌣þßÉi–àeV­—’•WTQƒ04b±-mݽü‚B#bS³òà&•Õµ ƒ]=à<ÈÞƒCý3ÔŸî‡úïêê?èCêßkª¯ê—åe¦&D‡‡úžv;á`cÁ>`¨»WCMYè¶ATà¶üÿì××S”ið­©µjÊ‹qaE]AÉArjrÎP@%ITrÎA@P$ˆƒ’QF×ÚQѱ­ÝÒÒÒ‹=çýºé¦‡Aœ©Ú½€ïO8çý~çyxÑ6nB%§úì›üøßüû[XìïEööÖvN®ž¾À~d4É}@@ieM¿4ÚíäôI~t‚+ú­‚}*ì3اC÷Y`D¿™©ñ£Ã€@wg[KcmeYz).&*sŸ‡‹ƒ¥)Ä> UÅòҒâ¢Âðÿ“°OâwÌ‹Èø÷¿YsìsD}‚>,÷ÎMZ>~غ¸$V<um] k{gwoÿ`\9¤Útèw¥•µ Í­]¤ÞÁÂgæØÛÝêÊÝôññ³¯{±Ü ôÛ¡ÝÕV–åá‡zè‡CýΚ ¯¥®¬pxô¹¿Œ>ÇtØÔ‡é„êoçåûAP&s:ºÎQ#s+{ß ÐÓQ± ÉiÙyÅå5 Í þÁáQTþé3¢>©þÇuõ×?¶·ê“´óŸC¶}µ€~~’íè½Á;=mÍõÕeE¹YiIñ1‘a!>îÎv43C=mPÿ ´$DÚÝü|hy@}xâ Ø–ªÏñ²¿ÈþŽEö%HìSQ×:rÔØ·wróò…àG H¾œy’A üD?¢aÿù˅׋Ùï=«cŸ8@…¿—Ï}``†d¿Á¾Û]­p -+J -r²Ò’ˆ°Ð`o0ÀÊÜÄ@ “‘"àhþ±•‡üÿDýÅ鬹°Ï>剳dëÛÈ­“’9$¯—^ߨŒf ýÎ/(ä©w—3s -JÊ«ëñÌþ‡ ×NL³­›N¢í»÷«DŸóÆ¿}Õî%}Æ‘€àÓë®­*+‚rGö~Ð÷rs²·¶45BôUè ÿQô—̇y7Â?êóÀløøwÃh$¥‚úÚz†f4;gwŸÀ°È˜ø¤´¬Ü¢²êúæ¶Îž;ƒ÷ þLÏÍãH ÷àd„†úëì¯Ýõ?“ŽK½{T_ýH:c#C½Ý­MuU¥…9™—ã¢#NÝli¦†ºZjJi%ÄàóïÚ‰²qúTœÝ°T}Η½ûÜìì ûRLöõL-!ù¹yùûáQ1À~ZÖÕüⲪÚFÌ~„ÑãSTøc9°ªôÇœ%Á‡Lè,f§'þthà„¿ë×ê«Ë‹ó1û%Äž=s*¢Ÿ«£-Í ÐTS’ö‰Š@ °‘áPaŸ9ž5Æ>kñ¸v&kdé\‰ú¸rQ´°qU =CSKŸÜwl|bj”»²ªºk-7:I·à¦f1ªëƱÙ-_옻f4;ˆ=¸ì[]mÍuUeÅùxäI·;y<ÈÏËÍÙÞÆÒÌHŸ‰¾”„øŸAŸCý Ôx@}.ìA;wñÃlÄ$¤e+©iéšÒlܼŽŸŠˆŽK„cXXZU×ÔÚÑÝ;042†—ð BJ}*ìÃ@>¯‡ýµý±œûÄRè¯þñìÔøØý¡þÛ]à[]eiÁÕÌÔKÎ9yÌßËÍÑÆ"­¦ª¢œ¬”„¨ðßïÚAÔgÄYNõû´¿‚}qH~ûºúFf–6öÎî^˜ý€ý¸K)iY9ÅåUu-m]·û0ýý_^¼|õ5ì/Rð )øÀʯ^ü€ĿþÞîζ–FLyW2R‰'Žøx¸8ØXšB Òd¥% ü|¼8œÍÜ\›˜ì“°ÿWößÿëïÿçûmÔÿ–¨OVγ•ÄYRï¤dä”aß&VvNîÞþÁ¡¤Û¥¤gç–bµkëè¾Ý7xo„4;æ®}C_媗¢Ï:ðØë«žôá“b»®ƒÍ.=–7>ÈÏÛ¾®6¢H† /„èóþ!ôâPÆCÔß±ë{¸ˆR²rŠªš0KG7/ÿc'Ïœ»p)5ójAieݵëí]·û‡îOÍ>†¡ úpYêZWm˩Ľ&Âýühfbí]xóíÀ[EIþ•Œ”‹çφŸöótu°±0Ö?¢©¢('väY|ç›—ªOÞ÷2o{Õìó"ûBû‡€} m]}c3šƒ38ìŸ9 ì§gç””W“øGIðÓÉi6ößÐñݯ&þN¤ã%$<ž›™¹G(hmn¨©()Ì…øwñBtDXh0ÜC';+sc]-ued@lïA~ ûpJýo×dØ_õ7°E}³›·ú°oA!Ñ}û”WRÓ„ngF³utõôÅeŸ;Ÿ‘w]ßt½ý&;\õ$¤ZŒúÏ7ýîýûU£¿ØêHâa¢µî©udÓÝ7Z ×U”äf§§$Æ“bìïí'žff èk¨*Éö%ÅE……úÛ¶ð|=ú‹#¿b‰ú›ñw€éìáÈÈ)ªÀlŒ-l\=ý‚O„Ÿ=1%ãJ~IEmc ¨ßw÷>ŒeæÑÏøþ^cýYWý#Ûë§¢-¥>¨ÿìé<ª?:<Øwëæ–†šòâ¼ìô䄨¨Ó¡A¾.öÖæÆGu4TØ/°ýÀÇ»}ÛL³ðÊÉÿݨÿ—ձϳe²Ï/ ($,*. ìË+©ûÆæ4[ŒagcãS1ÿ•TT×_»ì÷öc f‰ðìà»E VÍ>Kƒ…—Ïÿ<&ܸÓs:P=Àü«™—“¾ž®Ž¶43££G4‚ƒà$Šð·Çów®¿±…ý k-ìsD}‚>,œì{3†Y^>~Òí$¥eÉ×34µ´]û; ÅVq%¯¨¬ŠøžÞ~f­£Ð_`ku˜Ä-¿gÆ–Ykf]÷…Ôžç¦'âyïïíé¼q½©žÜ÷ìŒT@ÿ9ðØëlixá9Ð'ÕŽý«FŸ#ì“_~ˆM\Üxyù@ý½âûRPÑÐ9jlnmïâáz:*6!9=;¯¸¼¦¡åÆÍ[}ƒÃ£¨þüÓgD}:SýLõ×Ù_«+êõ1ðÀËK‡‡ïþÉüÜôăÑ{ [g[s}uYQnvZR|LdXH ‡³•™‘ž¶º2À&)®ñóí$êc˜e ¶‚ú+°¿‘ƒ}>&ûÒû:z&À¾#¡Ø‡ˆä–VÖ4` îŽOÎ0" ¼{,¹”lðóÊê/†@䦂·Çòhv -æ2|·¿·»³ JPUYQÞ•ŒÔKq1Qá'ŽÀlì­-L õ´5 ÉJKŠïþq7`+Ã*û1&´†Â>ú”i¸îMõy¨¨/ ¸GD ›‚²º^x+;'7rà#£/\LÆû^ZYÛÐÜÖ­Žìyj†Qê𺳡ÿq¥ã¾|¥{ûæ×ÅãN:Y3^÷¦†šÊÒBÜsRÂy@Ÿ,¹‰žAW ž}®¯GŸC}öq@Dýp…DÄ%¡)«kë™YÙ9{ø†„EÆÄ'¥eç•U×7·uö@}01=7ÿž?Œ…þ¦B]BæHÖÕ_£K}J8êé£úððÿùäñìÔøØÈÐ@owGkS]UiaNÖåĸèˆSǼÝli¦†ºZjJ‡e¥%ÄPý];·Õ¾c¨¿aEõ¿Ì>×öED÷Aþ““WRÓ$ì[Ù:ºzû'Nÿ—ý2ÿê9ßãø=g8×½Œ F—!II()E´ï‹ö}Ï’%)iO’J¡¤UQí©”ö¾¾%[Š…6ë8Hc¹s3sî÷õz¿?ß¾ßo¨˜3çÞsëó'¼žïÏãùx†ö$¦ " ªëØ—›·½÷C$û£’ý\ ìñìéhCäHà•‹õ¬êŠR
Iq1"P=Ü6op²³23‚ë¨*Ây‹-šËȾ#ûœìsǸ9Hcž9 U_XD~¹ `ME][ßÐÔÒƒÞáåFrNËÌÎ;sÛb¾Þ֛ʠÿ¼¤öíèBæÏ˜¯ÚáícÈ}Ý÷:¡ÛaÒ5²ë åâ,wÜtQ¡Á}uNvXïzÚ4öûòAèÏùjèóS"Cý©(A‚ЊH}IiXB*:&¶Ž¶lßé´7â`lbjú©œÂ’òjVÃ¥¦–6¨ÃxþðúêÙÿ#ûãÔ£ß'©¾óÓ@?Ðí!R¿½µùêÅúºªs%9™i) ‡„‡úxºm^ï`cnl ­6++½LbP¸ìwӈʥþgÀ¡Àg±?‡b1ƒ}%Uľ‰¹5( ÒÀ70˜8 à ãtnaqYE5«xÐÒ -²3h£ÔÀ¡Øÿ…žå Þ…ÑÀ®;í­UçΞÉËÊHCD†…ùz!m-M õ´ÕUÖ®–“Y¾LB\TDeƃŽìOàÅÀŸKÝÿö÷±êO"Ô§ÃNü¢ÅK¥0he5-]ÌÙÞy#Žº€=ûöÄMå^Xr®²ö²è8Õþî=ÁÛè ÏÝsï~f"¦ÍN͸žUS‹Ž„ŒÝˆ)C¹Û[[˜r /³œÔ;úô´¯€>=?õ'õ¿#‚-´Hb™´,ÜG]ÛÀØÜÆaýf7OŸÀð‡ s -JÎUÕÕ_¼ÚÜÚŽÔÇ:ÄÇÿöŸãÔÿðãyÿðú£ÔG©ýé%¼üÇûºïv´ßh¾ÒÈ®­,+ÎÏÎ8ž¶'ÀÛc›«‹½µ™‘>R_©ÔŸG©/0uÊ õ¿Žú#b b.…ÁIP@Š}}C k{§ ›Ý<ûÀÀ~RjzFV^aIYe «áâ•k@„$öÿE‘@ÿè°Ï/‚/û 7o4_½Ôp¾¦‰x4þðÁýûзoÙèlomn¼NWS8 ÔÒÅ‹€sçÌ&kˆ9Ѥ1&ûüª?‘Gõi31h!a1TYYyEU }#3+;’²·ÿî½ØíÉÇNœÊÁEG2†ABËiö—¯^óûp 3ùò÷úÏúøô¡Øûz°ØÉžk`AÄ%…Ðìé8è ã=}\tÎö6¦†ú:úrúó<u‚|Пô%ÐçRÿ›AêC1RêÏ#Ô_.#Ô‡ûXÛ»¸nóðØŸ|<#;¿¸¬²–Ý·Ô }ˆ—·mHË¡þ8öÇæÇU}B}‚7 ² ŒööÍë×._`×T”åe<–¹/Ø׎­›œí¬@fµÔ”ädjb"`8ÿ &Ë¡>ê^j>ýI öö‘óEDì¯^«¤ª©£ohja¸ÅÍc—_PhàáøäÔôÌì¼3Äû×ÛnuÜíݤLxC™Àk‚ÿžú¤ ±ÿú˜`o÷ÝÎ[„ õ¬j8N~v&AÂð½»ýw!œì¬ Š -ò²Ò’KÄÅD„…³fÎ`hð7. ƆìQ}}â±$gT}ˆ™)«¨këaÈ.dÑ…„EFÁA—•wælyU»ñ2$ dëê%Bû¼Ÿð‡Q«>…>_¾œ5w·ƒÜp¾¶ç$|,‹öœD Íî`ci -kª)㢓–„n¥)Sèã¯0ù‹¡ÿî™ðJƒÔŸň'ƒ1$#§ ¤¦²²sÞ´uÇ.ÿà}‘ÑqIÇNfåA%²/Àq`ëvõ>€ÇÿG\†iCÎYÆ©?&?.õ©Ô~`ŒçÕ@?<ýGðòïÀÃoºtá|MùÙ3¹§O¤&ÆÚºÛÏË}ËF';KSpYUÅÕr+¤–ˆ‹ŠÌ'H‘¢‘I;2õ‡Ãþd¤ûˆý¥’Òe5M#SK ÂÆ-Û=½ý ‡bãQ³ó‘ µì —®6ßh»Õy·»—`ÿy?<ýA‰ -ŸÆqÁ~.Ú[[š.7²ëª -Yi)‰GE†…€B+º8ØX˜@-ª"à Ä9Dšñ[ Åþ˜‘ý!ПHWi÷é3ȦZ°‘¶b%,:5M]csklöí;}‚±ØŽ?y:·ô: kî6®9N¾¯é˜ãkõ/>ê'^lu2æ.°k«ÊÏåçœ:q,9!ò÷ö„9çâ`kifd K¡/û)è;å+ ?”úp%z$2‡ Å—H­[­¨ª©»ÎÔÒÎiãw/¿Ý¡ûÅ&¦ž8 ï¿®ÓÒÔ¿ÿo3ðêÍ[f1‡§þýÿ>êãéþôÉÃû=÷:oµ¶\½ÔÀª>WR˜“™ž’pø`ÄÞ ßÛ7op´µ01ÐÑPY»j%š¬èxí‚ßϘŽûw.φ§þ°ØŸB°?-Á¾ÄR)iYyľ–®‘™¥­ƒË¦­îžÞþ»÷†GŠE(œÊ)(*-¯®£Ø¿y»ó`ÿÑ“§ûo8Øÿõ ±ÿËû÷ï.Pìë¹C±Ðp¾¦²¬¸0÷ôÉãDCƒ| -ÎöÖæÆÀU¥5ò b Ùÿd_€‘ý¿rpðÿ}Þ 'pTŸ¦L4vö˜±øP}yE m}LØqÃf˜s𘸤Ô$ߊŒ9ˆ÷ÄÛ÷â}ö‚·Ô¥lû\º6;f<úF ý!Ô'g‚+a5 -b3Â$¥W®Z«¢¡c`bÚ¾Ó7ho´bJzf”b5«;®Óƒ;ˆÌ ZˆQûcìãùàýS¶Ú@h_¾xöÀÖ:Û|åb}]UYqAvFÚÑø˜¨ð@O7×õ6æÆúÚêÊkVÉJƒÈ.B…ÇN4vg#P(ö'| -û³gÿÀ‹}`‚:`ߨÌÊÖq½ëVwTAÀ~ô‘ÄtÁ‚âÒŠjV}ã妖VX¹ƒ\èàØàÈ`ø ñ8bƒmׯÁyXÕ¥EùÙ™é©Iq1ˆ¿]p! ‚©‘¾¶†Š"‘}ÜCÂ(û³¨ìSì“rœÀ‹ƒ?ƒ¸ÿ ßǪOCžJT"ž7IT­²º–Þ: ¬õ^¾8æ Þ´Œ¬<ÜrulH÷z[{Ç]°YàÚ3¶7£«t&Z¾FÙ!CŽfK*.9 ?t:N9€>–úN÷­¯•¹ñ:€¾Š¢‚¼ì -€¾8>Iø@ŸŸúi9õ¿#W^¸Hb™´ìª5ÊêÚúÆæ6ë]Ý<}C£bâ¦ed—UÕÕC)¶Âyºa‘JÄãPêÿÆ¡þ¸ìÅ«ú„úm@6â³Ï~|Œ\ß¹v¥‘][YZ”—.¹oO€·Ç¶M.öÖfFzZjJ -ò@´Å@ýy”úS§ RŸë°#Á`tØ—X&µ‚Á¾Þ:cs+;§õ®ÛvxöC#@ r KÊ*kXðð¯µÀË¿ÓÕÓ÷àñøö¹d Ïÿ dŸbŸ¢ÈþýÞ.,E ÃvÝØ/ó¯žó=ŽÏ=spgîAÈ2v-ÊR(Q*•Ò¢}_µj£¢’=)e©HÒ¢I*J‹T´~-W#ÆÖJážûÃeÆÅý…¹gÎ=ç>_ï÷÷Ó÷ûÍ çÜ{Žúü ¯çûóx>žõ5Uå¥E¹ÇJÙ—»=fÉ —›“°`„f\JT˜«8g¿Òx9ñ™þKx -Í9EeUh,òÕ741³¤x}‚7lŒFºIÉ©G©Ó)܆fZr¬Ò{€µ¿³!÷’7ú‡£ýÍd!;¬ÐY´=»~¼Ë]Ô„!WYFÙR¥ïOôc"ÃCý¼=\í¬,LôïÂy*ÊPŸŸ}~+ñï PåÈ©?ÔWe{Hßhµ…ƒ«§ïºÐˆèm±ñû¤ãBE¥g«ëZ._»Ž¥{¿ûž>BôðŶ#œf˜úCð“PŸ ­¶2®Áfvuܾ ª5_¬­*/9™Ÿ™–’´gçÖ¨ð{ksC=- õªÊ -³fL‹•+Hì Tÿ‹A`<Ç>TPQYeþÂEpA`ߨ2èèêéí´žl06>)ù`zfvÞwÐÁÊAìß¼}û ¡?–.ÂÅ>!dŸu"Ã>Â;?´·]5 gŠ óÍH%2lÞ¸!ÈßÛÃÅÁÆÒÌÄÕ¨¹Xm>®¤3±IÔ/û#†‚ìP}}æ°cǗ窯 „V_¤¡¥­kµ¶w¦)µe-9–í©ÓgÙãÑvöï8ÂÚk‰ê<ô±â^ü$Õç|Ɖšêj*ËKÙŽËHMNŠG£G†¯G¶ž®Nv֦ƆúÔé4å”Å¥ŽxÇ Ðÿê@_Vö…vÄ@åˆ3)«.P×ÐÒÑ341·¶§f ÚºsORJZfvþÉ’òªÚ‹Í—h ut=|ôø)•âÏ8ø:âã SH~R¿©¾˜úxþd³Ø¹}=:ïݾ¨5]8_YV\˜“MNŒÛìïíîlgefl «½t‰Ú|¥9³¦K¨·>xêÿ.ö¿’`â¤)²Ø_¡ohL`próô ZOdØÏ|ðx>ÐP^USßÐBBøØãéŒP¤=Âþ¯¼‘Д÷¡-ÔÉàp¹ª>{š±!íÀ·{wïØE>¸ÖÝÙÞštPW[ ‹hÞ\%.ûò㱉F÷SaÈþ;ª?J3Šwêt¤;8£pW­6g•î».$l5ú¾”C‡iÇ•R²-—ÿú=Í8Öç€>QMXqʵú²±¾âЧwÿ¨ŸÕù¥–†úóU–÷yò¾J6b}P€§›“½õ1ô‘-*Cʤ‰Ÿ -ýÔÇ¥$ÔÇ”Tæ«-YŠn46³²sv÷ö‹ŒÙ—˜Œå—Už¿Ð$ºÚvƒj±§­ˆû¼xÉ—Ð[~©Ûü¿94üý/?‰ê3êó€–î ¢\¶ûþwoµ·]im¬‡Éž*ÈÍÊ8¸ïîí›á±~^n޶–¦«Vê.'‹õgN͘à - -;XêûS9öUç«A û&fklìݼ|‚7lŒöˆ Y9ù…Å0ÂóýïÛ±s%JH¯ÿ{þ2NøRøúkÅ~'¼{ëÖèPSYVRT“uøP -áæMaDž®Ž¶Væ&FÌi)Îa²O‡FѨ¡ ûæñòtÇ̾™6s¶*]m±æ2H¬1¢upñ ·1zë®=‰ûYŸŸ©8Ww±YDu~§£ëAO¯Ðæ/y¬oÞ|`ÉC•™pP–*/óÞn¶áëå–FjsŒ¸,W@'­¸à_/7g{›5f”,:vÜ\}–-«t1ôGýè >?Õè1rã&`MŸÉ¨¿Xs¹îÊU¦–¶Žn^~A6nÞ¾{ïþƒY¹§p£úÆÖ+míԋݸÛBԊ®3Lý!÷ISŸ´XcTƒô<ÔHeñøa²- uÕgK‹NäM?°/!v[tDh ¯§«ƒÍPÅ2M’XÅÙ3§1êÃY&AÙ`Ýf öGI°?N¬ƒÀ¾|Pm±†–¶îJ#3Kgw/2BÀagÜÞo¤ÉÊ9q²äLEuí…¦Vî„ û?I¤ðC|xû±>cØïía|@1Šš/Ö¢‹É ÓîOÜ:@ ý½=\p&3cC=eÄ%…ÙÌåûÉ #ûŸ-öÿ$™ŒêóJŸÌ†œÒÜy Õ—P²«V[XÛ9¹yù††G¢ÎY®ÙyqÔæM­W®]¿É6œªì„{_¨¿YåP¾àðì{{vñ.§ G©–œ<‘{ìm¸8ÄŠ6_çëåîì`c‰:_I+n±ÚU6ãX¡ËËBäÇC_–ú#F -§bÔG=*âP‹4—­õQŽXD¡ÑÛböH?šs¢¨ôlu]CËåk×QŒ˜¹Ñ‹üB8Л·oÙ}†©?4?©€]±Ëâý“Êbè>ìê¸}" ¢U•—œÌÏÎLKIÚ³kkTxÈ:{k‹ÕFú:Zä°31Ë$Ôÿ²Ÿúƒƒ‚ öGJa_>8q2°!äØ×dØ_mniëàâ¾Ö/0$lÓæmä„ÓŽË-(*)«„6‰ <{ú˜Òó)⣰ÿ‹ø@ÿz-&´ÅØyïöM4c+¬°êìéSßå …;b"ÃC7';܉6ÉþwYRYšº@Ú“¾ž÷nÝh»*jºPSYV\žJNŒÛ±%2,ØßÛÝÙÎÊÜÄPO[ 0SQ†èL%êËŃç$¼êñØ!Æþ×\e°?o:è £g'´²utñðö#)ŒÙì§g - êšEº\ qì?à…ïC„„¿J1âõ+:‘€î…W/aáJМ¬Ã©ÉIñÄÆ Á>ž®Ž¶–f&†ú:„‡ùªÊŠŒ“ä'ˆáÀe_¸ÖgŠýªÏ ’±'ÏU_AI‹§g` …µwF™­ˆÂ„£PÏ/,>Sq<]mk‡ÆÒ€"}‰H³ß¤•îqšoHEÞÇ‹ûíª¨‘V•—¢É³3Ó)ÓØíTå´àm­Ðåz”ªz?ô¿áЧ:ÿ˧@_VöÙ€†Ä,¢‚Ä©”UÐ(ÒC=ZÙ9»{û‡aÅ%&:r,¯°¸¬²æB®tãÖ½Î=¬Ÿÿü‚d‡SÿßÃÔªŸðpóá¿Ûº/Hdÿö¤·û>€ÖÞv¥µ±þ\ÅéS¹Y©û÷îÞ¾yÓ† ¿µnN€™±,SQšƒ7Ï$ƒì£¨ÿ쓎%%ö•õ%K ûƦÖvN®žÞþÂ~RrjâÔéòªóõ-—8":t÷>~ŠçÿŒÞ?gÇþ eŸõ"+ÆW‚>îE5vÜ#H k«+ÎbÁ ÷Æíܱž´ÐÙÞzé*]m-E ç©()pÙ§†3šàЭÏVößQ}!XÊu"Sý9ŠØpHuù -špVvNn^¾ëBÂPå»þË~™¿õ˜ïaÜu0Ìüp"c̘HZUdißW•TÒ¾©"…•uìÊR•J%•¢]‹R$²/e?3—™s†ášëœÉu8g®s¿?Ïó}ú~Ñœkæõü ïûó¼î×½%Ž\zVnþ‰SåUµõ´ßX‘s‰þø´s¾õh×<‰ú?s5έ·ûí| èñª26ߎ>¸ ýF‘.˜;ÇÛÜt ‚>BU$è#UVæR|›í5ô»PŸÉ>í"é#GÑ­”U'NÖÔ10±°¶stñ@=bE¯Ý¸mçžÄ”´¬Ü‚ⲪZø ¢vT#é›Cü‰Dê§~ßú„¿€ÿ‘ý‰yìã‡ÐX<ÿæ¦zXlQ~Nfjòþø¸-ÖDEfþ>îÎ`™±¾ö4 L K$cþÊéëà¤þ1ê‹a¨8ö¿ )•UÕ5F¦ÐB{'o¿yA!aá+b€ˆØ]{“S!†ùEŒç[Z93ì„Ä =¨¡$&:ÝðùOOä(Á©áÅæÆúZ‚ÄñœÌ´l¢X*:réâàùþ>.XEVfÆú: „d_N})^ö‡|ä²ßês±'}EªÔå -8S Ìa6ÜÜ %Q«×S‘#ÑŒì<šoèqzõÆ­6Ñz{úLȳ‡ñÖú|œ/ø8Y‹ãÕÓx£<ËY³õFúÜ|óp¡"·05¢H5ÔU•‘)«òwAÿO}IêæÎê£"ñ Œ'¯„Y4M[ߨ«ÈÙÝÇ?pQXDÔÔcüþäÔÌœü"Ü åH‹¨ ÝÈ®„‰Ë‰òÂþhõ¿×'öˆQŸ ÔÇÔÅûÎΟ=S]šegÀawÇn^¿zexhð|?/7'{[+3#=í©D²qxôôæiÜöŽúï}YûSö-­g88¹’#V®Z·q+3C@âXAqIÅiRCŽw9J@{$Üðýäð5qB¨F’C’ýGt¦„ Ü©²´¸0/” 5Ü„K0C/·Ù3¬-L!†Ó4hÇBz¸¹ì¿Mõª4ã2UPbN×ÀØÜÊÖÞÉÕÓ7 pa(zîˆO8pˆÕ8ò¬kàÇZ\'·Ý::z(ñnÛn”&.J¼‰m·âÄI-¾;n+ÆòäjÜÕ Zôi¾©ªðЧ&—þ¯@¿[êã\ô PEÊ+ª¨iLÕÖ32£[¹yùÍ _‰~ŒÝpàpF6fnE5Ú“ˆžýãoõŸsW§~¿ì÷­¯Sõ‰úü?@ÞóŒYì£ûwïܼÖÚr®{²ðØÑôCI{wmß´.&rÙâ ¹s<]!°–¦†ºZÌ_ÇËŽ!}•ìU Ø‡>õw`„øâËÑ ûJ*ª5¦jf–60C@Â~ðâ¥Ë¡†›¶I)i™9y…Å¥Õu MÍxþ7o·‹äã„€ýWvønÙgÕHWâ@ñ=Êñáýö;7±‰.45Ôž†æçf¥:LÀ —…. ÙGCšè’ìc£iI÷Ùƒ¾¤ê³&ÿr´ÌXâS}êq;GgwZoÈ3zÍ74ÞXœ`YYUM}£(ÍÎéÖ%Ì+\4ܸ,¹ -Çr{À/7„Y‡?YˆéÆÒܱ %µÛ-0À×-ngci†<µ¦Nž¨ªÂýïd'ô?APo /œŒ?/üt®1²ãAýIS´t q¬™³\=1‹/‹ŒY·i;Nu(ýè±Â“eUµ çZZ¯Q;>bwb‹Ht%‰ÿG³¨ÿû>á7Tÿe³XÂÙÚºí°À¬¾ -[›•–œ¸gP½àëáâhgmab £9™ôUNVf4ýyŽbªúºbûŸJb_¯^AIE Ðbjh3ÓÑÙÍ‹¹á²H`bóö$‡éYàÄɲʚ3gy;l¿ÏâoOñ¼Ÿvƒ -æ‡4‰¨)n\»Ür¾±¾ýx HKIÜ»+vó7kˆAóü¼Ýq,¸!dŸ(¡8~ÜX*ÉÇu#ût²ÿ‡OHuà›ªÿ9§úã”'¨SšXL§ñ-X†íF%¾gÿÁÃG²ó -ŠK+a°ç$–ËR|¸½iìÛUŸ+pñÝÆ¢üÜÙ35•eX¸¨ðÃi¹!ÌèHÖá˜nÎŽ3m¬ÌM t)N5%8 ýáÝ@`/ /)ûì`¬%i–Á2RFGjê˜XXÛ9ºxø,Y²á`jFÎñ¢’Šê3XExõm÷<þ–ꛈoÇNê÷Ë~_ú:Uÿ_<Î:ØÜ}Õ‡÷€ewn’Áž­;]~ª0/ûÈáûà¯ëW­ žççåædokef¤Œ©‘¼‚bä®"ˆõ’úÝbˆûRÃö¿bØW„‚À¾©Åt[{€ÂÛo^PHXøŠ"v×ÞÄäÔŒ£Ç -*ê›%QÄ -‘!¾â ±ì¿݉`ÁF‘`ˆ×._lnª¯Å­NäCS’öíŽ*à‡‹ƒçûûx€6–fFú:šS&á^òo‘ýAâŒè`ÿ'¿.ª/ªqQ‹CõQâpWi,Lk;‡Ùn¨ð %Q«×£ÁY”Ùy…l·Q“ÀÊØlË$ƒ|wޝ»Œ6Ê‘¯ï{m˜·dCí銒₼ìŒT–äÖ(ðˆ%!´Û<\¨Á-L¹,Õ'(sËí+úRÐÿä·@¿[êcQM²ƒ¡%1ôŒÌ¬líܼü懆¯Xµ~sì®}hž*?]wö|Ëe$=SgÏY=rí(ºS?õûÎ'ü‚ê¿ì Ÿ€cyO;þ€Ö çj«Ê௲½;·m\¹4$h®¯'0fmaj¨«ŠááËŽ!ˆI󯞨Ͽø^½v ì°ÿÓCâÙ¡²ªºé¡H1ÃÁÉ•üP±rÕº[!ˆI)i™xþÅ¥ÕudˆøøH|ž=öÿþŠ(‰}/hqÉhAŠx¦¦²ìd!Á"9qÏÎí›×¯Ž+ ˆ^n˜Ft/=mȾª²ÂxNö -)n ýheÿ Õ«¾Ô0élºÉÊÉÓr›¢©k`lNsõô \ŒÅ Éñ àú»¸„‚óIÈ£>cÌç)‰Ïã‡÷Ún]¿r©¹±¾¦²´(?73-yüŽ­ÖD/_²(0ÀÇÃÙÑnº¹±Žæä‰€˜lgÔÈõ¹yÛ+Õð&ö‹°G/†}BQØŸªõöËý+Çtã³ÖvÌšÙ sBÊ«r¤œR:§¨t>(¥HQQˆ•CD¥¥ƒB"%¥“brÚ›I”´ÍžÙ¶Acÿ°™½Ö˜µ¯ï}?ïó¾oBƒöRÏŸð½îçs}. bž! "±ÂËge`0 qk4Á"ýàá£ù'¡ˆ•5õŒß·àñÁß„ý2Kü/ëG9^$Þmm¡c¡"«áˆEÇŽd§ïOЇ"†oÄ4Záí±²mĆšT—¨("Ù—žŒƒBÜGö»S}æ§ al¸©iLüª¯£ghjniã@³ An‹ÀjcõKÊΞ¯•¶·£°ÙzPÞ] /×Ýr“¥XOå]r2›bÜ½í¸’rtB}›cµÍ=+w¢f›ò(yèK³|Wè+Ê>ûÄ¢ÄÉ”i}«©š4ÆÁ]=¼}p¯H”drZÖ¡¼E§+ª0qYE¶Ýû;kÈ'bAʨß'û½ç“©þoËð`ïvÒÜ%ñim÷4]¬¯>W† 7'#5)n×öˆMë×ø¯ðrwÁã73š§3KkÚä `Øè‘d®x÷\\åö–’ÓûDìãÙ>‚c_B¬àØ72µ°´±wv#E\½´Ø¶sÏÞäÔŒìÃy'ø.6]ýëæ–VŸŸ/hðv±ÄWc_^0žò]DÀ,‰e„s‘$¦$ÄîÚF¸X¾ÔÝÅ5IŠ8SkõäØ1t2šG$ûJÌû÷ÿeÿUªÏ£ä®*Qçý­«oL«ÍÉÍs™¯?FÚ›bÌÌa›Ê›R¼ ŽÑdSìî_}ô…æ–lO;)C¡ºo7óņËJŠN »3R“i²E„mX»åM›ÍÆÒ”Ú{Ætä8^M¢Ê /ô·ýïúŠÔdðXÝläh:Ù4­Y:óŒÌ.²wq÷Zá¿fý&´d\RjFN.•ä¹jœ ÙÒÚŽŠ|ððçǬ!yAJOÕGýÞò‰‚¨úÏŸ1õá Ã?pç~Ø+0V\xìÈÁô} ±;±t×­ÄÜœí¬-L õæÌœ>uÒx5 웯Fí|2Dé©ß#ìù5V®ªDm™ ‰= †"öEd'>|@×joˆQ_SYqúTŒÝÑ8jÒw$ÑÎzÁ|c}]æˆ(JN‹á¾ì¿RõÙlcªÕ6~ÒMm ÌÐÔÂÊÖÑu‰—•7RŒ‰K¤ÉwEˆÕu ´Ø¨ºy†wJõõ¹ØÜ/z úÏþÃ$‡Þ;ßkˆðÖMjólÈ07'3ª{{$-6„è‰î¶µ²0CŠs¨¼i³©¢½ÅÑö>¡ß-õQ•ìh_}Cóhü¤©ÓgÎÁ:²°¶svÃ8Z½.tóÖ± ûÒ9VX|æìùºÆïèÍßÁ¹„aDžK”ýßû°ßK>¹A >þ‚Gô0{½yýÊ¥†Ú*PìDÞ᬴@,*|Cp æhkenb„iN¸ªŽE/¨ `¢µ¾µå¼Œýö?ýlè°áŒcTÇ©.€}=c³Ö¶Ž.îK—ûÀ7Gí0öÈ:Ä4±¼ĸtâsëN™y"!ãß„ .?¯Á¾È ¾‹Øµä˜qï.¦Ñ ºQVZ„ƒ¡&ãb@ hâJ¯%®Ž6V(JÌ#m&‰cU8.†²$\í”ý.ÐWPý¡\õ£©>ÊÛÀd>ÄÕÙÍ“B Ù´‹Uwn>AŒ"ÅÚûµ v¾ô¹w>~ôP:×0n¯_ù®±¾Å]\xœöE¸# -Íà‡ÁæêhKÕm ‡5§Lš >N€þðaÂfCŒ»‡þÏR8œP–BWÒÕ¨*ÙÑ&NÑÄ<201GQ.öXæ¼!<*z÷Þ”´,Ô$¶QTçÊu~/V’O¤)Gý>Ùï-ŸLõ@öŒ¹ýð´cîÞ¸vùâ…šÊòÒ“ùGs2S“âc¶G„…ù¯ð^âê`³â:—Œ¼O_ÔVn­o¯ú]±ÿ± áÝ3ìÁ°?vv.³D=†µiâÊÀ`ckôîø$òÄ£ù'‹ÏTTÕÔ7’(~ßrç®ÀŒGO:‘ɾ`ŠoÀ¾TIöŸBöfÐhocÛ¨ «ªÀ8:ÎDqïž[·l"d,óts¶_„›èÎá²OU)ÊþVö»Ùê+«H¸êÏž;ÏÈl©¾‡÷ŠUlhnŠ0#{7O°ùvk»Lõ{´Ö^H Ga¬Éò£Ún¾q­µª³gJNæSoïOŠÇ\Û²)$8·“"41äПhÊPÌ£ØÄýéÙGŽ—«®klºŠ‹µÞí¸Ï¶oÉgÏåeÿ÷>ì÷ŠOîO¨/,Þ'b÷H]Á°†ÚªŠÓ§ -ògHIØ ‚­ ô[î¹ØÉÎÊÂÔPÚÊøEÖ -|ÑÈUz/Ôïûý^(uÁ¾D È`Ø×72µ3œÝ<—ùúÃÃ#·)i™9¹PÅÒòsçë5nÞºÝÖÞñÂ+ö /qƒƹñ¯þD²x=yíò¥†ÚógËàŠGeØ—» Ô€*ú-§ª4L ôæÌÔÂBÒeŸÝm°‚ì0ØWTý~2ÕgÎJªOªCõY‚Æà—z›\ºkj;'÷xá©Ó4ÖXkS|âVëYiw ï¹ëléTãéAsÊñâùVC|Û#ÑÚkü}i¬9ØàÕéÓZ£Õ$úTÜ´×K[ÿ÷ýn©¯ÄÚòóxúcƪ±³¡+M-¬p5Ïå~k7†GEïIH9u8¯€nVÛ€utóÖ¶{|¡&…ƒÉ¨ß'û½ã“©>ý ‚ýÐâ¥ß€ý0×k—/^¨!qÁ2S“á­‘a!A¾Þ®Ž6Ä/ÝÙÚš _Ê£˜´~ÆG.ƒ—ðìßíÉËa¿Ÿ"ö92èí«Jðø™)ê4¬l™*úQ;bâ™+B|NWTV×7âd‘¸¿€ËçF±/ÊþÓNô$ÖÑt2f‹õ5•Ô”\ãwGGm%lÀìh!éCIö1‘^!ûËãmŽ÷ÿóuQ}ýƒ” ðúòë‘P}5¦ú³t_¤úK¼|Vb¬¡µßþôƒ‡±ÕJ™·"½ÍL\ÿ!íl¹ð^ }&8ì­Ë†Ú“G´l…ÊæK á).䇩¶9t}P•¶ ¶Ú3c]ÖÚ”Õ68Lú,Â~ïú"ö…Óáõ u9”·¥*M$MíÙº´]=¼}‚BÂ"wÄÄ'§fb•–WÖ\¸xùÚf^”ìdèIN}ÙÁú¨ß¾—Uÿ9ÿ˜¹þx¿ãn+ÄõjS#̧¬¤ðxnvÆþĸ]Û¶„®_³ÊÇËÝÅ~ÑB3£y:³´¦MžÀégåðÙõ.ªÿÑ+°?  ö ªL5µA ãùpEGWÂF`pȦ-Åøÿ±_.N= k7³â˜Ù娵vvfÇ-—(·’¨”nºQDX)Ý•”îJ’JJ)¥È%Š(R©ärXvmî‹söÌîžsì²ÇÎsfÇ™ó}ž÷ýýúýºÐ3éýžçy?ßÏw'sãHYEeµ°ÅpPå…ü¨ëâPÿ¿í¡Cú"êÏŒÈq¡±îlÕÉòÒƒÅ{ØbDh°¿7Ía‰Š4CÊþ¨ÃZÉþŸº™ì·Qý¾ªª/Úö§3‘ÊRÛÎÁqw5„6¶—”’ÆU ™å5ÀnÜ$oª/v÷ûóç¯+jí6_»\$‡»©¡¶º²¢Œw—½‘ަ†å­XŠÌv°CU›ah€ÐÖ‹®6ŒR‡Ïûërè«Ë¾hI¸}]Lî‹!Ô‘t&RZšYÙbn®ËW¯õACŠŽOFVæbj•W®ÁsèàåÌøÜ_ôÈþûöÚU}BØA°G(¼Í°†ZÖÖâ‚ܬô”ĸ¨0àËc¥>ÀlÐËxº¾îm-¼>Q°K®7¢~Øï'±Uüô3éŠcpýŒ}3Kk{G”]÷/=}`‹1ñGæî¼Âý‡Xëš._½öMóm¸Š/>#ê¿jìà‘=W²ƒ…‘†vã:£ƒ|ñð}ù9»ÒR’â¢I½ÖðÜìf™›MÓ×¥¸%é3vÅÙ×è>²ßžêËý}"U_s”– m3¨þ<'Êl,oCX$šE6vwô8¬U5hëý‡°´êi„>-ŽŽý™J^£¦Ñæ®^¾ÐÀ-{VƒÄðñ¤¢¶ÈýÖÒÌÄЀ–‡ÌÖ$è‹Ð–]­_—B_úbv<:ÎK*IÚtõ§SGš¿p‰ÛJoÿà°¨¸Ä”ô¬Ü‚bŒíÔ™Ú† ˜Z3E¥¸÷'ÊzÔ#ûïÕSþI}¡? ØÓ_ÿ‹†opëÛëW/5Õל†µ–åçdîØ–±1ôr_ºØ ÀÂÔÈ` -)+]ô\2Vºpù¼)õÛÃ~_öÀxIY7Æg[41³²™=wÐEß@#vKòötá‹ø@Gã…Ëj¨ʎÿûJeT#²òâùs46 -KcêÖ„ØÈ0 ƒ|q±Ó<Ä%J’É>å%Ùâ`!û*°Ñmd¿#Õïߢú#FŽaÕŸnlja-T•Ç:?µ˜x¬.+woQ zZUu]ƒØÜ{¿XõU×aK{Ù^IÃÞ 8ЏF³¥Å5bq§ŽS^ïÍÍÊØŽš¶!ЗÛ=m¶•¹ %6ïNsøP’ÁƒÐq( /„§w—@¿—jd*¨Ó‡ð 0ytãÆOšb`„ÉÙÏE\º£#mŒˆMض#3'¿¨¢sº¦ž²ò»‡tï˜ÚSîG")ը߃ýnýT&¦øB[©ñÞ¹‰Â‹_p¶ªŸ 0/;#59>:<$ÐÇsõ -WgGRVézd¬šÃ.R>~qúo®ú½Za¿w 6Øxûƒ%öGkiŸ¤7ä0·²…/:».'t¬ÙaLÍì8v¢òLm½4FT^`ÿGî¼ô:¡Œ-3ýè…tFš°ÿ·GˆB«++ÊŽ”íÍÝ•¾Æޏ\‡’䲈&gajÜ"û¢&µÈ~ßn$ûªþŸªÏ»cÕGbÛÎêSOC`cs‰€×4vÖúó—®È–Æqýøg•½½2­Û kÙѨØâÚ‘Ö×®\:__[]y‚öFq ÍÙE-mǪå®Èë9¶¨iÆÓ§"°µµF è#±iwýÕ–§Úo²>5ÙçÛgᡚ+f‡ÀÔ›jhb> yéìJ%)0$<:>95#;¯ðÀácUgÏ5^ÄÜnâÞ©!ѹ+ ’ÚËÙ^+Õ—Ô‡ê?ak%ù¹ÝüõW Wí™SÇÉYs³ÒS㢠¬Þ«Ü\ΟCÆ:]_w‚¶5]&õ\¡úoƒúŒý> -[üHè"ÈÁ¾8z,ÐAØŸi1ËnÎü…‹—®X½ÖÛÆxìÌÞSP|°””±¶¡‰éqëîý‡•ÎøôWÖŸ×âCʬ¤±=þ§¬H·›¿a|Ôðàöæíô€2úx~éβokefbh0e²œË>ïCÕéuÙ•ê‹¢6LøªØ„uç5³%™âšöV.à¥Hk±¶ŸQv´W‡uë¥É¬V«h¼µ&„uUEyéAZ[fZJR\4ÒÚß›KÚÂù×3gLŸJ‹C^Ëšö©:ôû´@¿Ë©/2“#“†7dJ®öÔ¤f–68zjIÞÁaQq‰)é49—èH_}ÝÌå–çFa©ÌJ5Ù×\êyoñ)?ƒªÿpçeÕÿ;ÿ8륦úšÓ'ËKKŠòs2Á®ØˆÐ ?¯5îË;͵·&a2yü¸1#G@z®è/¹¥Ñ5Ôoƒ} >}ö -ì1„Ø1V‡qÆLKk{Ç…KH}‚Aø¤”4éŒh¼gë/\¾zýÆM|!ôü?¡SØWjc @¨#}KqÙX‡’TVz²Ÿ•±=yK FçÏÎè¼€f7ÊٗӲ߿»É~§TŸòzÊ4#´4 {[ãå‹’†´ÆÚrò÷ÁX©£!¬åÖ Õ‡³Jz©/íÕ­eg0ŽjRÑÐÐlOŸDVØ—ŸƒŠÆ[  °^¶ÍÞ¢Ci’6f”€>5Ü -ès`kt!ôÕ©¯ÑG‘™?ÆôØv™ž±)%&Õ¤5^~ÌØ´¤œü¢’R|M=OŽ-G ޝ]5,•S{×dêyoï©ý—ø ²ó¼î±²^Ä7¨ª8vø@a^vFjr|LxH ¯çê®ÎŽðsøªÞ$XÏp¡«à]¿ÄÖ]Aý°ßOÁ6F¾æ¨1ãt&êêƒfV6pÆE.n+À a‘±[’·C÷?à>5çγ5Þ¼sïëOg´Q¥!)½²/' "´±-éF·/Ÿ¬5ifçEü@O²µ271²?Zsx·•ýTŸóZ¡ú£¤ê#­mXõ©£!¬#c¶¦ÊŠFè’K 퇟¤²þ¦tÖΩ¾úre?be2©ÿr‘ -Z%vVÂQº5as$š¯×š•n.ÈêÙ6¨hFÓôu'ÂtDGûœ¡/÷Ö¯ë¡ßK55Åüèð©)‰ÌDÇÕ™¤g`hb>ËÎÁ‘†çéš”Wˆƒ-‰Êíí{T’d\*§¤~ìwó× -_ÿ‘ÔöoÒ(+Øu÷kÐ÷).ÈÍJ'r…x{¬rs!pÁ{XWÁ­aCØVùüU¨ÕÐ5ö°2=†Âµ>ŒM!³ç99»._å±ÎÖµêÃ)9RVQY] ùÁ7¡Ò+¼ñ·ßŸ¿!É>Mî§¾ç–Äao,/=X\°‰¹uKldh°¿÷ÚÕRö-gbzz“¸) cÙÔýdÿµª?”±ÅamÊÜZÈYí·~cx4Zú®œ½Ebgu ¢ QR·¬¬3Aý²mNãÔ©ÖŠzFAÝP[]YQv„W¶sǶĸèM!ëý¸ -vš7Çv–¹©1/³š+‡µX›ÊÞº ú­d_ PÌB²3Z ãCfšYRQrq[åÈ ‹BOJÏÊ-(>tšS‹Ùq`¢%Ñè8/•q©^‘Þ5›zÞÛzmUÿ…d—0V|„;Ty/A~@®#%Eù9™;¶%ÄF„ùy­q_†?`omajûà‡ö„É„ý™³ìð/%môAâ’RÒ2wçî'o¬:+Ò|ûîw\zù#¨0„¾‚Ú_hŸ"•–$óÁ=žÝ妆ºêJ!û9»ÒR’â¢ÃCÖ“7²ì£)™ñøÆv_Ùoý¶ª?ªÏYm`lÙ ªigž>(h"©±2WMýùKì«ØXÛz¦šÓìë±/µ˜ævöíŒv¡±îlÕÉò£‡öæQ=KЉØDA½b)Væ`gmAI=…w6’nþsZeõGªaÝ»+¡¯N} › =®óÃÑëO36µ°¶Çø–¹#3ƒB#b1½Ìœ|D&õ$ ó>_;dÿé¯<º=²ÿþ¼öUŸÐŪÿ=Èõ?öËü©ÊóŠãÎ5Î$j\:©“DEI3mh*²( àRM@AEEPAvA¼¬"à - -Ä}aÄÝHuâŧ?Ô&6N3mLêÄé÷œç}ßûÞ 3s§7<Â9çù|?ß›°øª¾tU“nEF, ò÷ñš; ز·™ duô(¦îÿM-õûŠú*ì÷Øï¯‹ý\vMLÇŒ³øà–V ˆÃTW÷Ys=ø!Ñø™š<ˆciyå>0äÄItÞ‹W:„9v…Hꨚœvt\“¤Ä¼+ÔñGæQ‚™cöúô5hJáįys<Ü û6BöÇ*²ÿ–qɾ^Z+ªO–ö®VõA-R}O¨>úÙê¸ä´ llóv¡úÈé6ÖU€«S´³oerýÕW Ï)ÍÐç”ærvæÔɵG¥˜.ÌÓ %Ĭ -_àëí9wꙣÍ+Ë?}`AýŒ“z„.ôû è÷5ôû¨O_¡>&8TîJãDjÚsUòòAhFDÆ¢)iò7Qfî;t E çN‘)÷¤oµ5I_ö_5›zßKz*v©þ‘ëQŸôçöë¤«Í µGVï)Û^R˜›•žl-]ìç Y>Íâóg|s3“÷ZBU%fNõû¨œQ‘F\¿Œ}ÖFÆ¾ÙØqï3Blí§¹y̞熄,‹ˆŒIHI_Ÿ¿I@ß ¡ùt;©#J¯L‘oá'üëûÿGߟ'zy,†÷·÷;©(u°;6Ö?Œ¦Dã˃:&ÅE­ ô#ˆH²Ï”cÓÈd¿GÕGAã•AU?DPccÓYõ)§#cSÒ³ «hg•ÀV­¼/pë®”Ò¼.×¥›ýô)£i[€þw¢š=@­!}¾ýt3G¬kó¦|¤tJblªm Ÿ×¼ÙnÓíÅÂÓf}9¨ÅÊxgÊÒ ·5Ù#ÄÙSnrY2ãØ´žd‡¢ßzû-]¾*Ÿ•[X²½lO55¥æÖö —;píT”Ddò­«SÝ«¦Sï{9O_XµªÏþ#qëê¥ód?5øå¥[‹!«kQxñ |ç2ÇÝÕyÊ䉣펪JÌ’MµÿK¡¾>ö*Þ8œ>Ä !ñ±ž4yŠ“Ëô™€ˆÏ¢ÅPǨ¸¤Ôu HÑ–»öT8r¼¾±¥õì…ËW|j½ä?jyì#ÚÙ=U@¢cw¹)1G(4!û;·ä#Âýb€}RG’}šà{Šì¿i,²¯^š²3IT‡I£z†œž4ÙÁÙÕ}ö\OÚ×ò•«ã“Ó25”Ò¼®šM¢›QHß»ÿ@Ú–RÍzÌèŸ%»Ñ‹hjµ´¬{´¬kW‘Ñ­-Mõ5GTïÁ¶Š7æd­KMŠ[½r9u3¬kæt¤ôäITÎþ0ÞÜlô(jgœÓ¢ßìú†§¾4Cç°á¿ÃML)7-¹,¹ºãâ}B–QWZ»>©YZŽªTƒn{æü¥«×DS’3SžÞ{eÿ7ðtÉ%ÀÅÄ_þƒÒ l]¹H²Zw쨵c˦Àë*bèôŸ}ˆ#aæÈ1·Àöíœ]f@},ôZ÷F26än,ÙVZ¾÷³ƒGé0GðÐz…=ªAòã ËþO]eÿÞ[¨J4¿SMõÇ $dyšÌ4ŠÍ0*K,ûœ›²ì¿‹Ž0*Ùïªú¯«U¤¬ú–’êÓº|‚ÑÍbÒ¹‹±-RýºFvUPë&-Kif/²«nW¥JèÎ/o}A»:×ሮ,/݆f¦ÉHKަŒð]ð)¶åêì`gcmÍÁºL ú¢œqL«sÚÀÐ×¥~?Urò )8Ét0B'—³æzùø¡,a‚š¼M[vìÞû °¥íìÅ+T•:¿âfË·®d¦õ{±o”OGXõŸü aK|*½×¡?쪀VEÙ¶’¹Yék¢W. ôóþô/3ÉT'Y3²Ì„¨ -b)÷ÏçoXáÑÅþéþ±: -Š˜’;2F짺ºÏšëéíŽÄ$¬Y+챬¢Š@ÒÐ|úóù_Iá? -Iø+ü’?ê°„ÆÇ¡É(ö %7¹+µ·67 6÷URY"}LIŒ‰ŒHXö§OsDpZ‘<Ž53>ÙÕǺއê[Kª?Ï ª¿dùÊèx,+;“ÔÌXUÏ]ä]‰b¦›Ð?éÛjwµL@_Þ”* oßPzVµ¿ª‚:?{=®»Z‚s÷œ7Û÷N˲ÄÁƒjö‡ôP‚þª}½fpè+s¤»—ÏWס!"9Í-x†¸x7'm):aMzYNY&X‹k§Øä®$ç‘(¶?&xòD Éþ®@‰&smrüjçâE>DèãäI,ûãT²?ØHd¿{ÕC¥ú£ÍÌ…êÛÚ;ɪˆŽŠMJ]·!·ŠYÕþÃÇaª­gYõoÝ‘Uõ‘zS/¨ú?j[]ºXNýçlkK£¨e»vl)*@@§&ÅFQ/[äãÅ í„{Ç®Ðm)¢ß©d´ ýþú} }=Ù—³SDÃEtš˜Š¾4Ñv -%ç'ó¢.­ˆŠKNËÌ.(Úº³¼#¬oBnÂqHöIqâÖ÷ÊþoèuQ}ú BõI€Ðz³ðšëÐy÷Y…yÖ¥BT×X(¼.NPŸ>Ä'°H|†ÕòªŸá©¯£ŽŠ;JØŽ{d ðB§8¹€$øþAðÇÕqIir7o݉Ò{ðh͉¦SÔz;ÀÔÞ¯»d0é–&Z…„ìßúB†IÝ1 -ÎRªK4ÃXdp€ïô%Iö9:‰$¿§)‹ì¿ êó®ì¦JªU­"O]ŸMÍ›ªm8)jç³¼(0ë{Ú“´z„¾6¹”Q©å=q<·Q<Ó­cQÅXTFZr<Ší’ ÿ…ó±©.ÐÖQ/37CB£˜Ñ®†HÐçŒVBÚÀëÒ¡~?Õ9;GSœ`cïä2í–†“ˆäÌ+ܼcͰ®±Áy¥ƒÚn]››êKï•}#~ú®ª0Kú h½„¬KçÏœfQ­ª ƒÊ‹è`y¸Mu°šj^á¥â (¸âû7¼òèc ôH|Þfì1· õ±¶±spvÅ/ ^N,Y›©É+,Ù^V^¹ïÐ1† ùÕ^ ¿ÿƒz¯0 ¡@zÔ•'O岄2N„ì Ù—êfX+’sKQ~öúµk&d²ì[ Ù7e”Œ6ÔHdÿ¹ª/v¥R}X*xEªïBšJùÌ‹ª¨bOmiĺuçÞý.ªßãšä3[’;­θôÛ7hM8õ憺c‡öWU”m¥lMBLdÄRij7ÇÝç.òÙÂ\lêm*·CD»øR¡¯L’Is Ì‘ÂýÖÜ‚ê-e§›O14let<¢3gcñ¶ÒŠªGjNprr]âbûð›GNy„z|Õ„ê}ªïÀ¿A˜*EµWU‹ü‡<õоÊÝ;,MfZR\4òüBáµ²¤¾kj‚O@@|…V†U}ùøu°?@òžAìŒ$>¥ÜÇqª ÒÓ›`›˜")ä®=Õ I]cKkû…ËW…CÒWNþ©ÅIϲÿ¬;‹Ôò¤“’³²ßÖÒTü0ád[I!25)S ‘eßÉÞV%û#»•ýÿKìwQý=ª¾›ÇÑÊÂWÅ$`O9ER)«mh>Ý.TÿË»R'ÓëI[ꮑaI8t)›qér%ÖTï¡p.ÈÉJOIŒZ*ÒÙà ¥Ìv"Iß;/ŠóYR}UI»2à²td_îLƒSzbŽ&¦c1GOgjLc0ÎÙ™©É/Ú²s79޽íÜÅ+4ÄίDrr¯•/ý©$ûÏz±o”﹪ÿ¢ú·o\ÇWh‡ÿ@Sñ¶ƒWYëRbV‘¥B~þÇ~¹xåœçq|ÕØ9gYvwözF!T®"·b2›;I¤{é•R#B]UˆÂ`܆q) If¦q—kÍºì †³.{qξ?Ÿï÷×ïyOOÍÏœ£éû'|>ŸïëýzWCõGá…ê›w0´RÕÄ(Ôׯ~Kì·#–0ö;u¶°ê÷!…tt"š¸ºÏò ‰ˆŠEéMIË8ÿ”9Vñù• |•'ú,R¯FjÌPÑHÙ—ªoPÈ"å·n¢ì\¹ )&côœ!d˜”}«ze¿¥JÞØ(ÿtT_a•¶êS+³ª?f,¥³O@p©~rjÆ*¨þXêl ¼ª¤JÕÇ’$°VýWú’Yîèvt½êò…s•ä7GJŠöŠ%åf¥!›a8!´¥i“Ç#œ‡Û¶ôÿÒÝJ¦3ö$âY¾î¦Þè®´¨oòŽŸË7Âsá’4&8ŽÌN(Ž˜¢8õGͲÿSyºª/ƒ®êyúDùa©…ù¹YÀÕ‚¸èˆào·)ãÿþÁH¢•M/é¨ «vmñ꼇µÇ(Σ¢D°¤&¿þ­PHÐÄ¢;¤Ý‡á£œÑyÝfzùÍŒŽ[”œšž—_Hþ³¯µ÷,’¾Âõ[€è/¢è—}1Å»·k—/Q4dá™Ê@ ö÷ö˜Þ ìÿâm–ýzTŸZ™Ø“PT‚ÕÀ¡ŠêcKa¤úK–S6 -I--;~òÌW"šyGš¼j¤êÿ[ f¶ÙÇHo8™Ë)™©ÕbG«ÒS““P4Ïöó¢F6v̨CÚÂq°¥.:p8S·m+¡Ïñ¬³¨7º)åìéê•QŠü¤I²çtëÑË÷΃œâæáôĵ£ÚfåænF³Exò­ëÈ~]t6Ë~S~¯«þ‹ç¢÷>¼ÿí=®½WWh½¥Åû÷ÀÖ¯Y•‘š¼(!vnX;ê˜Q‚Uw©¨ Oð«6†jÕ×8Å …BJóa‡$ìw4g‰ìÝ—x‚ÎËéí6g^|ââe+2rÖ¬ßH?µ·ŒèìùKW® ¢¿ðøIc¢-ûu©–ÆxçÕžg¿Rdç'ä‘™+—“ìÏ MI²ød toHöß2ê7Nõ­{p%sª?Ë',ä«°#Rý¢C •P}¹¢ûBõµƒÙ0ôÕ‰\æ:vãoè .ýðAóv´Ú59¼¢øysÃ(™§N䡨R4[[bIfXß{[qðïjCß(‹Ò’}e–è·4J>xä'î]”¦q“\gxú…ÍMàδf=šížýÅ¥e§äÑkExÒ¥ó›e¿)?MUUÿqíô^Hêõ«—/­Ê*Úûév8j^vÚò%€UdH Ï¬éSYQ‡ìßço=­-á>ÒPUT™úz°ßJÁ $ò7ï1OØ"­{PÙ;:Á~&¹ºƒ(ÁQ± h½ä‘ø @JÉ‘c„ÉjQ|k!ûOëè?e_³1=&¡Bsü†M’dÿÄ1t& rËFˆ$Å'Ë~!e‚‹ÈÏ~,ûê(IöùvËþQ}2Nf^‘ìç´TÿÁC5— .H§ŒáΟ>áXþç]Žeº\.}7ü¹œ•–²‚A·îî:½–ûX?›^=­­ºvîÈ…LD³TýV­Œ }mê›( J³T´'ÒÑ Ý–ò30$2f>•¦ì¼u6s|-?yšI½V¤çc-Ùÿ_³ì7ѧOõŸ Õ õÚ•Kçñ*Ž>¸ŸZoÁÚœÌÉIÅUþ^3§MÿáhT^»~6„ªÎÌÚ³ rß­ûüŒðZÂ~; -ÿ‚ÎL[;òHüƒ)ÓfxúÎŒ&‘LMÏ–LÙWŒ¯@½tõÆ­:¨|' ¢õôc_+Ïþ¥1ÈÈ>Åç™SÇËJÅ$ *ÈÏx’}´¦iÄ”¦)û ª¾© ’ÙNQ}wBUDtÜ‚$YǶìªq«þFV/ –1½ª_·Nåó_)ʘØÏºÕÙé©ÉI æGGbA^3ݦÀpF wlÇ¢kï V$“YB_]’Ü’Q¨ßBLS9y1LJÐöf¸w”[Ìrˆº-¨p¸hM™9k d~²áÐ$oVkÄ§î ›©ßÔ^=ªÿT*+ªdÕÑCÅûv³¡f§§,]?¨òõtw8–•*¯Bª?qá}W‚ÊHª¯ƒý–(šD!4í`ÞÅß wßþ‡ 1š˜2ÝÃÛ&Ÿ¸PAíݸyÛ®Ï@%“Jž¿T%©òíƒZÕ% bE›+ŸB&Ù¿Ùÿ.Y~„[Ó–ë׬ÊàÙ³„ìÛ4 ûF³H#½F«~_òSV}7*(lî:¯UwAûáNÎ.h½3<}CÔÞÔt’Iê½ûŠK%W.^½f“ßCö_*d‘³¬†ìS‚ž–²¿ƒmRÈ~4sEʾC““ýº”ÒQ}Ä2í‡T©ìÕŸ¢ª>éi^þ®b%‡UP&_$?­¹}÷5±ïžh -êë…¾îj(‘k‘Èwo×p£Ýœ<~´´˜"yó*µ©ÉIð›ÈÐÙ~žÈä .δ;[e‹Îb=¿—бÜJúÆÛ2P:yež"D•ædAݶßdèh8δ^~˜fl¢¥©TlE„–R¯•Ãl–ýŸÌ{Mõ_*ª_«øi•ª’¢½»¶mÞ ô4q~LdH sÊÅÙÉqè ÅN;˜ÖaJKN¥ú?3Œýv‚*ï›Â~,º+¤?B&%WæÄÄ'.^¶‚¾z/ÀrðpY_U'uÈbXö_©B)Тô¦š[,û•RöQœ6Cö³ÓR„ì#Cg6QÙ­ŽVýÑ¢Šù’êÏ';ÍÌá&ƪ\U}JäúT¿ÁöŒ6SÈtçJC§ýt;'r&Jm"ïÆßÛƒ#yôÔZ,Gf²ØŽ e }ÚV,eCZ1ªt'¾w9Ï®¢}8D]&NÎÍ)f~"[‘¡ÔkËOˆi^¿)ü¦V‘ý—ͲßT_ýªÿHÕS¨þ‚S{vRívìï5ÓM`jˆ­M/þ¨¼:”2ùq¨/±ßR~¥ò2VØ~Ì»ZZCØ&G~ Àâ›°¾B® ËÞ¢CT|á“._•ŸA-Z¤ûºF)ØrïØrMdèÉò£‡”æ„q.#ŸŒ!Úe_Wõß1¬úÎ.ÉÞþAá,§PýÕëtTÿŠb§*§^¬aúTŸÎ\ÍcºóϹ†ñf -Öæf¥¥,]˜Œæî:iN‚3 oï¿ö´¶D$›µÿ3-ÅV^;‡²N*g?ºåI¹w*·¤n ÉéÑËÆÖnȰ‘¨N“IqèÖQlWdpˆîܳŸ‡Çyí†ð´ÚfÙoÚ¯Né¨þ…³SE{a@\{INcæ„ÎöõtweJÙÓOPÝôwïáHQᕟÀÈÞ£å’ô ð Z·áo@öC`éjÅ:9`°ýpeüäi3<}C#£ãðRÓ³óò ?þ¡¸T -%}†[5·ï²=~¢Ç(õ*¥¦ì?g¥¤q"DknÝpù?ûuâTåy…<6±šÄ8šTëtQ” "Æm,Á+‚VM¬qA‹ˆ  "û*(»È"›,¢±Æ¢Õ˜¸ Š€âFµZÜ£ÆÆÚ™ÈØØ¤6™žsÞ÷ÛîW,׿z¿?á;ïyžß9u¢EÉN'Â~|L¤ñb_ õ»¿Þõi4ÑŒúÅõi2t†‰}, ¦Í+Lúÿ”ÍåÎ-À «ãúšjÐ fÓÆÂܬtìãp|én®sàªuV9Œÿ7£GÀh,P8ú4›žoÁl^7\è‹ÿ”ýRvݲ?Ú§/Þ¶ƒûcÆÚMP9ãe‹?Ô?ÛäTÖ¢Ûw~ -À©©ƒ—.ûŸZ°oŠ}ãú4S_Fý“¨R -©_¹mKY1œ½°  oÏ…óç°²µ ü‘h -{ È¨N¤¾ld¹Âñƒ7/êö` ¹Åk¼zÁ?“\pæ#€B`’Ö®ËÎ/*­Ø -»€¢åá ØÇmh7]´Å ÿŸ_Þ•°_/`siQ>Ã~8b‘€ýñF„ýR?Q?+·‡Ô#ü -£:æÔ‡¹<Ö—úBÓXZÙ vo°ë-Wþú—?ŸemŒºÙ -GXþúŒµIq1!˽=é -›æâäOú˜&à -™æMn1ô;y8Šªø¥„œæÔ£6¶öûðG=½ýâV'¦P2ào'Â>kQû¦Ô7¯mêuŸ¾° BHá2 €Òˆ¦þ¾K<àêýpšË$»÷Ç`FY 2c2%ê³Ôïj€ÔWÄþk| xì÷ê {ðsÆŸÁVÖÃGÁlM QzùøáÝŸœ–™S ò`Õ±:–.W®^¿Å $Û}°/´¨ôCÿÎPyU¬QŽýM%p<±?°|éâ…Æ‡}åp8õßÐúIk3ˆúü;^߀m|E¤©’úOu•ñ÷¯¨]Ì.Z6• §OÖ±2Ý”—äd¦­‰_…¼6†—s™½©VЍŠÒ¼¬tPd(ÂÔÍu6RßWa¸µÕ`sغy%—„úºbŸôá‚ü¡«—¥‹íxÇI.¿ý`ÖÜù {/‰ˆ‰#T•VP¾Ð2œTyT©0ßµý4°ÿ¸õÑ×"öy‘ž¬=&`#Ã>ÿ§ û“û£¾¿@}8Á¶õõÙPä˜:õu„¾õqÛ`Ã3g¸9väàÞOw²*^Ÿ‘šG˜7ðº_º½-N…ÊXKOi. }]ØçU -Æ1Ç˪#þTÎâ¥ËB#¡IÓ³ò -K+è¬=„¾9kÂþËòÉ÷á©vêß¼Ö|ùÒyBáÝ Ë¼b™×¢äR^½#É?|z÷‚EYúªR_¥ûÝÄØïýöÏúâÕKñ‚g/¢ÒiÊtÊ/¿À0RefNA ¨—¡ª¦î$` tõ†fÂh®ƒfÆhüSû²&ýlW%KûËŒû:¨/äÓ/­›ú kÒeÔ¯Bê+0lb}F¢‹úÄ"¾t¡ñLC]MNÚlâ5 «¢Â‚üð›÷U1¾ôQÇY æ]ŒSé%„~7Yè Žå¿Uxî¬Ké¯ÀËö½‘øÖUÎ(œ‹¼ð®…*MÍÀ—g-bÿX-ÞOøSojǾ¢I_tj™¾çût¸”­ºT¤>¾Œú›K‹àîÅe \îÍYê‚«VAžO -•b ä±ÿO!^8*û› ‚³—Tiç r†€y+áðMIÏ΃„¡e\y¹·#æ!b_mtƾš,ûÿ ìßV``¹°Ÿ•¶ÆX±ßQêGDǵG}béãožèE}¡†Õ=|™žù‰ãG#n¶o­ØX˜—½.%uãï #™?çw3¦:«°‰á¥£oÌØSà°·.LE^ÆH}ûB™2ãô£Ë–ýV[{GÎÌÙ®x×ò.ÍÎ+*Ý̱/ÿ«ì Øÿ— ûFöéMýFõ7•lÈÉ„»7:"ØÙQßÁd=VAF}O]©ßùKÐE†}ÜXÀ~¯·Á?l+mlñî%¹ƒ+B"câ€@ëó‹Êp–Ì@ç/6IÒ&K­´Ô}E—îGYn.+°l|ØoƒúïèA}(â -‰úgE•vŒúßj‡PÃU÷nÊŠ Ög¤&ÇÅ`{{ºãM;ÍyƒEL#ð«_ð&î)U±ZwòX©ßUø¯"öñ¿Òa‹Â§.+ÓÔÌœ %›dØo4aÿ¥øÚ£¾F<1êçg§§$¬Ž - ôóöDJa€ú–ïâ*(ÒIݤ¿ŠØï&,ú‡½èJZˆÁÒËÇ/( 3&-3wCI9É TS×€!ÓÔ|íÆ­;‚ÄuÐ2ÚbF}±L?ö5¨OCÁ™´OýT¤~9§þÑã'N=QDé(ÕFýÿ¨—°pÐâ8ZpgêkX òqy ÍßyÕð<6 ã7pÔò‰ð§ÞCÑÄ ýW´Öé["öáÇZÂáØOœ("Äßw‰Çïç}ôá4—Iv̤æfýÕÃII}C؇Œ°‚+yÄô7ô®åPÊÊÒÕÍc‰¯pxtlbʺlNK0K܆–ë7oö™-[·3ü¿ -múäÉ7Ô·|&ê·ÈLúHþ^k³W~÷‹›×[Ø4NÔ…‹JxkEiQ^6Þ^xÒúB ƒnfàM ó=bØPK8jÙ@àªåO±|$>Ù¯•c_ø³ýÍÌ ûøÔyâK‰ˆ‰K°¿“®Ú:†}?Ö„}cù´…“DýZ¨¿«_ þº”DN}w\†©j$í×·¬øGÌ&CQÿeìÓà"0ÿÐ&`ì„UÀ±±ï8Éß¹ Ü!eB#qЖeh =û(fNŸ;±©ùê @¬ÃCX‡gÆþwº±ÏëtûÖM 5±ïdØoŸúæmP?GƒúMWp÷t“T'õÿ­F}xå÷¾¸uãjsÓE þɺšªCûöü©rÛ–²âÄ NƒÞù‚¹³@7NŽxÓŽ|ZŽZ>ªa6S_‰}á×Âe ÄéÓ·¶(|êãìyŸºsì£oò‹à¡ãŸÕÀ~;GÔ‹Î.Ó×ѯl’¨ß¬IýÜÌ´äxN}7F}Gµ•$RXE4 ¤]Ô`)É’Î^¢%ܽƒ­@@cЖNS¦ÏĘñòY˰&-+— ´s¦º¦¾AÒ% š¯¥uÐPNì·Ñ§2ìghbßNìÿ_§þsS¿¨O\S' 㮑¶K}ÅãV©ñ •fñùîð̱‚ÓSV¯ Z± Þ9uðä‰ìÆŽ5|˜Õ`^Â|=ó0dè«5ªðo‘8ì°ÅBµ¦Bud…êÆ±Ÿœ–™«‰ýf½®¨]¦¯ƒßóQeXŸ©¯š0n,ÔB)QÿÍ7ðè5t2iÆ~71e¸-û›¡€—v*g–3‹—ú¢.c“Ö¢0h`9Z{â`Ÿ#ˆc_X‡oõÂþS5ìË |y¬êÙ°Ïÿíû²¨Q_–LíPÇîÏõÏqêßiƒúúœ]­@›‡0‰»Hý+MÏŸ;}²–ÙæØ\ZD à ³À“+˜t3 ºë`˜?½ã0Ü<4~n÷îDÄ> GjT6*žµ>~Aa+MØ¿6¨Âdº¡Fýí` NýHÜ"Þ½ãmq¬ÕL†ÜZî3„K–3CèðµµG}0 —.ßÐÈUñÉ©™,i*wíÙwHðeSó5EÔ(©û?ènÔ{Z°¿å°ßãG„ýΣ>°>“`´êW£>ågêkªí£I”—lÈÉÄŽ - ôóQÐIû_öëü)ËëŠxl'…LÅjÒ6ScQÐ$6™Z  ˆ"AÂP†:Ö€Q@EˆHˆˆD@0ˆ,â‚q©M­¦.ˆ,A“1ÑÖ×L& .ƒZô‡žs—gÞȼ÷O¸çœïùœ©>t“Z 6W0µxyÑV—Ÿµ½SíßU¯TO/Ÿ©oýéωˆš¿hIÃþ¦­ÿU ûßuÞ¹kÃþOíiÍÃãG²`"Ò¤~qþšVâá;oPƒÉ—Þ½¯QŽ>ÏdD.©±Ïs†ŒЈQpø¾þ‡ñ$iÞz› Cìü‹—½—™‹QÓ°€y˜“ èRÉÙ8h(H7mØJ½'`ÿROaÿg½¸S­Qÿ5K¨OÏ®sŸ‚úOuøúæ5ÞåÇ[ëjìƒBlÛTV‚-´yòÂù±7oãI;ÑútÃJA7°X ÅåÕ‹©/þj§Ž!>ÑÛwÚtâ›9ó°ÑW~°&¿Xû¸S©niïT£óËöºñ¤±¤œ¤¾AºÔŽ ¹ä3ÉóMBýQ( röR1ö.õµbßN…!/Ф!¾Ë¢fÚtÌh4fÍš: {ö‚êAÝ»lSQZ\—“…mžÉ á…}ûtãÈ]àA¡/ÿ_ÙR¥­N€ŽgíTê›h3Ø¿zƒ,UÓº1:ÁlÏú§J%aAúÔ¯RŸÅ’ïdN}ˆ%%õ Á¨úÄ?,iè(¨¡ÀAÖa`œ3/1)%}Åû«q*˜AM­,m®\ÇáþC•1­Âþ×ÝÃ>d ûÏöyìkS ŒúˆÑîPŸ—á‰)êëÓ†œ\—Îó.‡å»ï“ÝÄ6ëÖ®ÎÎLO!m>3,$ˆÔö¹ëHÔ ktÂÞéÒRôZ-dÍ.nUŽ}G§‘û'3ì¿+Å~Åæê]:Ø7©£Ìö¬~ó@,úð¾Œú€ /ÚO´H©/I% õÿÔ-RSI - Þžö`bÖpa^§—¯ 1P¦ NCn~1& è@M‹KÇÁbì_ÕÁ>ݪó%[ÕC¶U%Øg[µ/c_JÏŠÔ"§þ›H}°(]Rêo‚2(©¯USÔÿŸ’ú"m çÎ~)éòÛªÊ7åãÉ•š¼^´¡Á¤ nãHŸÃö…:УKäQ•Ð\«ôƒ9öGöÑ7Sì',Zš†¼Y'Å~ µ_ýëœ ûúº1:ÃlÏʧÎ$õ<‚õÛ$Ô/צ¾2”ë…Rï‚4öí±Yptrv´ÁËŒI —°hIZFVAææê{ oj…¼ÆáöÝ{]÷°q08ZØ¿o9ö#8öŵú²¸Vûö•SÿE¬§þDV¤þ‚äeËW®ZSPÜÃÔWцנ­µ‰vù®í[*K×~˜ƒEHJŒ‹‰Ä6 -ðóñò¤'—‹³“#× ¿iíT¡ß‹•Püð/ø¦À±û;9öÛöuöªò‹N1Û³îiE’\¢·®ê3Õ@&ÑË·P̤Ù<“&Ði@I3ÉÞÞ(êK²†ˆ̂à vø"hÜŒwŸ€ - - ›N¦!%=•ùQ h7Îá£ÍÇOÊÆ¡Æ¡ëùıûÕˆý§Ú«}.öMQ¶¯ŒúT¢Ý¡¾ -¢šР~ÇeB›“Ç[ëjì#mYIÑÚÜ2ÉÁEW¯ÿï #Gêÿ欂T—Aº}{³*ìÛÛó/þµÞ Ø/$Øß د¡ØÇÅzEX¬¦tctŠÙžUOAlº8D‘úça(‚}ºwõýððå‘4l(FÒ£©ÿŒŠ˜‚€2÷¸|ǹ‡Î˜Ó¿pI*2T^µ °¿ÿà‘úcŸ±q`ÎüžŽƒ  «±[û ö3Ò–H°ïØǰ?L\¬RdöÕÔWRßõáð¥Ó RŸ ƒQ & d&†#]‰3Ý'xOñ'Ó‹Ðåæ•”Uaæì?XSwŒÃYèô0ö?FìãjEìÇÏâØ÷¢Øw•aÿ—ýûÚ uЧþ;H}d(¥þfºwÍQÿGÓÔ¾ÿñ#F›ïe´­mU¬Ë—/K^K -èÏ÷.©Å ,^R¾y¥¼éå"È„#‡žµèÖèÚØ/±_Ø'»•èæ[©nØ?Û°ß?Ÿ2ôE qDŠópR¤þ–J1LQÿùÁƒä 5‚úÊQÀYD†cß ôÊØ7ƹyxaæ‡Î˜5;:.aÑ’´Œ¬œ¼‚õ:ljâ8ÈSç+±ÿð>,W}ì—ìg¾—²8‘a?a¥éì$dNÀ¾Šú¤õ‡!õ±@}ªÐ5õ÷´˜úü¾Š6§6Í µäû·o©,]_˜‡]¾4)!.†[~“½<Ý`í¾: -àøÅ´ÏÔ7ä›ì‹.øFûÐçû•[DìŸÔÕÆMet–Ùž…O=Aÿy ¤ÎÃEJýÏ8õ)‚rI™£~ŸPèUìÛ Ðd™C¤I¦C' ($lf8 (qqJzfö굘:[é8k~~úÌ¿/\VÄŽ…ØgÁÓì‡ öÝØï#ßlúéSŸÆ‘“3¥¾ûDoFýH¡ÅDê7›§¾Öïk]Z]JÚ´o9´!ÔßTVR´»Úù±ï†Ï ¡¶!ÔãBÛ\ºvííT¡oLêk,WóØÏÄ£vCyÕ6Ž}¶]/Êtó>šþ´r¿f¶gÙÓ§~—Hý0èbÐÆ£‡‘ú€ ˆ ,šFÑúÔï+ Ë: ‚FŒr}…§Ž`0µfüÂäÔå+Waì”Wìlžh‡q8wñ -ËÛwïÑqèì·2ìïDìóíš8°9#48Ðß×bÿYûT&Ÿ~ Ôw¥Ô÷âÔšO J©¿•QÿXPÿáïïpÚЕÛÖÚÔ@iS½¹¢´¸ oUVF*éòÙ³ð÷§ù¢mèÒemÎq#ü¿´TÀÜvÕÄ>ý蜼Âõ€ýí¨º^™nDìwÙ°ßÏŸ:ô%bÔ¿~õÊÅsg¿ú¢] è >CP?¡þ3²Ì¡¡Ã‡aÐ`n °&L¿ŠÍ˜¸Ä¤¥é+ w -?Âq Úlhn¥ãÀƒ§S2œ›æcßöëö+ ö1xÆÇFE€6ƒüìK?z ÿh95{ý£uŸlïbêkPÿÕß3ê2ê'J¨_ÝóÔ× MKãѤ 9´Ö}¸:{EzJR"ty8ùü©>“<©m`ç:²Sk𠇲>7ôÿ»‹ýŠýÀ¾°_5u#üµ-öûáS)‚Hu\:óÐÆº ¨_J©ŸÚ]ê% iìÛÙKc‡NƒË‚}AQ±ó$cðÈÆ¡îXˉvYòè`_œ?êaÿ Å~­ûIˆ}ÂMÿ)€}<ì§ÅÜ×kþâÿY ”eRßìÜ 0‘ú9¸r%Ô?Á©ãé©OisiCnІP¿ª|CqþšU+—/K&»œþýx° ®Üá/emNw®FŸœú–b?‚`?5# ±_ª©üké†Õäщf{柚úOÔºz¨ÿ%P¿…tǶMeHýìÌô”Å€ H«¨oX ³@ćˆO @ï´éÁ¡3fÍŽŽKÀä¡ãPÁơơíÔiŒž+4zÈ8h ¨[ØogØGpVnä £‡zÓo²—‡Û8šJìK°˜‰“oXo7g{†}YÖ¯¼Ì±O¸){Gå©TNýù aãšYÚÒè]<}‰?‘ú˜¼ŒúCI}øå·õEÚtka´ÁàÉ•¥ ðñ û–þr<³æÏ3â ¢çßœg¯ïðûpWAر‰iYyÅåtÅþòh膧-îXÞLÔþÓñFM5mý»aõ‚:Z4ÖD~V–äd$ÇGa¹sÙŒMý)Z ¾ú0°æ¡ÓðêogÒêùýS 'Œƒ½‡Ô¬¼"‡½Ÿøbô8ü…ƒ -‚ûpXÑ´wì㊠ôõpÙÆ±ÏÂ6šm07ìK°aµ}%õ§üŠSÿåWäED©oïìæíû–S/£þñžSg%Ô¿ñÈÔÇ_~Æ><ÐÛhÛ–Q¿¼˜YaA~^®NtÝÒ_Ô7ž;ÇP´ ùæj¸ÑWø -ìOû6 ûpXAÚQñÉ9¨›ö£nZ;ºz@7ß]±Ïþ¹¸ä£ë»Õ&ÞŸlX ‰-tëÆ5Š ¡þóHýîζ–&ªÏê²¢¼¬ÔĘö§¾•ùrmS_R<|¸è4 ‚ °{,zã­åfV¶kÄqÆqHÏ)(‘éޯåã AÐÃaÿ¶ûm£°µ#ØßË Û‡VÒ¦0‡ÞXÞîÛÙ¶¹Ñ,ƒbðÂ7—ãFoÑûxÔ2ìÃeqÇÝ”qÝ´´uÝœï¢[ZáŸÿK‰ý‰Ú×ôS–>1‡;·nâ8\á‚jomn¨#Ô¯()ÈNOŽ‹ -Ãrv@Qê/QRš†¨¯00 /¼ÈDÊg‰ Sh]DLBj&ŒCÕ.2M0´~`¾'è¼)¢óQ°ê„À‡úû§eØ/ÎÏBìë}< ~„Ëj‰ûÊ«÷´eOAýÉTŸ<ø™†ê¯%Ôwró‚mŸ’‘[XVÅo,B}\¶#—.?.õoqêÓ ¨/ìÚêr  9±‚|=]6ëíVY[¬0ÁØá—ã¶•åο¹ö­*ö§)±¿„aÿÝ ’wT\rzvݲëš[yàÃ%ÿüÞO÷Yä£k_ß½6ñðTKŸÃí›7pAýAXBM‡Aîª*+ÊÍLMˆ ÇrQ H»ÔçÕ3Ê@¤|DΙk Ø_*ŒÃ8~ÁaQqIéˆÎµûö¬ÃqèbýóØØ¿§Ä¾X@»ªPÉñ°eý¼\ìÅÓêE ŒçŠØ^Š}IÜúJ[öä5¤Ä§Á,#i m Ô÷Aê'¦eåWìd'Ö±Žî¯žõ¤™_2ÿ¦÷TOWG+[µ5•%9éÉäÂòvwvØŒ»v­¥Ùò¥:þròË©m¦þZõ›ë»õÇ}r[9bàºpÔM.êæÃ?#Ç$~º÷›óý¸gyäwé?Ÿ¨ý§ë) -ˆ7d®|?"EPCÝçŸî«Ezf§%ÅE†ùy¹9Ù#õíVÙX˜šŒ›úú›†gäå#Nƒ`ÎX?£ÆaÛvŸ]xtBJfna)‡–c0ç`8öEv>¸ˆý‘!ºg…ªÝY^œ—•š¡ @ìo¦Øç±þ‘nY!o}—øFµ§þó"õɲ¥©ã‰Å¨ŸL¨¿‹Q¿í¸¸jŽúÿQ£>=hÉ}uædwg[K¥>Ð&/“dèëá⸕®Zks þbva±];ý¹QÔ×À7WùècbßÄÔÂf•?®@7‘qIiÙ¸gk÷}úy]F~â$]´ôŸ_»qëö]ÎúÑå?]ßÝ6ñÆzªÔÿÇ}âN:Ð@‡<9‚ú•¥…¹) Ñá!>îÛõm­Ì€úAÚ¥þ$…Ø4ˆz°?{®1U§8®^~Aa‘±IÈÎr6ÍGÛY _|4ìÿ,Ç>lÚ«û¸h[û4rpgÃ>k +ÊNcÙšU\yó'ÉÅ®N}ì ¤þ¦Í¸ju1‰©„úµ"õOCõõ¯ŒŸúÿ•ïYF}~в󪧫½µ¹¡Ž,ÚŠ’üìô$¹›3Ò7­¥é²¥üÀ~9 ]صšøæãÅþ‚E 3+Û5¢nBP7°hK+‰n óÖ8j{é?‡ÐaÕÞÄU{ï§ûì£O`ÿ)yª¥Ï $ŒÃÈ ¸óÜ™¯º;qU#<Óc#Cƒü<]úï!õ­-V0yr)©¯‰qxFV?’i ¢ãðº8¤Ü½BvDǧdäÀ8Ôì³ -ê%ؿİ›LÃø±/‘'Áþ2ì77Ö“óŠ`?!&\‡‹Öaó&z]­0ysñë¿{͈ïYÆÎ)ZľzÉä‰Ô_ -™SêoÅM—Œ‘Ã}Å©âq¨ÿ³õGêÃ/?ôg¤MUYanf -M܃Ñ­9ІF.ûåâªÕ -õÇâû³Ù¢]aa-èÆÓ/(4261-+¯¸¼z7¹¯šZÚ:»ûçûG. ¼¹{_µµÿ”<µ»—MQ'‡‹C}AÇÛ67Ô‚öÔT–€;ã£v„ø{“Úð¥>AИÔ×L)§×þô^ä $RAŽ®ž¾A¡Â8öY„ê{bØÇ]K¬3'Ot¶ñª,…Гâ"ÃpÓ:nåçÀsá| ö§kûJêOá™3xÁ¦]ü&Dn³Ún=,Z‡íî>ºð˜„TLÎ+¤~3°“ïYBýëÒÀ‰úÿæÔ¿Ô¿£ >ùåudÍVçg§%Åbà^H›tÏš.CÚ`â3!qÙ/×”m‘…}¾iA7ï0Ýø‡ìˆŠONÏ)(©¬Ùƒ–xÔö à…%ò†æ.ütIòúî·‰§òÔî^¡ô©HýÀ8 :»;ŽT”—™šèëéâ¸õOïýáíµcQªæ¨?IQûÏR¡;…q0œCá¹ÌÌÒvõ:g‡`‡Œœ‚R6G„|BØçöDì÷tµ·²ª.ÇÔ¢ÃC¼Ýh Y›¯ ò$›2§Ø—VF"›úÓ%ÔŸ¿'çÕÉžõ -‹ŒKJÇÀwáu…ê¤köÂPÿ*Ïû¡¨ÏþùßeÔ?ÿí¹ÓxжlanFJ<ͨ¿i]³@ýE 0pBá—«,ZmD®ÀþÔ±°O,GOßÀЈ˜ÄÔ̼¢²*û¡&~Ôâ‰Exó·ë7ñÆj_ý‰Ú×àS–>v›Á@#ƒ8G¿<,"ÔìïåæL¨¿nµ­%²¨?wŽáƒ¨¯ x -ÓÀÝù¬û³ŒæQyš[¯äãàá¨ÃqÈ‚q¨Þ½÷“ûgÎ}Kt•ÙóîÃbÿŸJì÷±Üöñ‚Øc#Cƒp×n¡Ø·4]¶”¯ZµÐµ“¹¤õÅûJLœ° _e·þÝàš  NÀú)¯®…㪮ANýþúðÔv¬H}zZ=uB¤~uyq~VZ"ÛÕ‰ÐÆNJv\Ñ5Ë—'®÷È'Éþ¹*öÕtãæåË6;¿¤b'Éÿy'ùç„7ÂUËö-ù鵯ù7ªôÉ0ˆÓÝC tqh ǘ³±þ i‚ @§.ÀǃÖÏÛkWruÎ3šEúGBýÉZ£¾‚äã%„ô\€ô4µ´Y½Ž¶‡äôì‚’ - ö{°†.à4<6ö™>ɺ•awuYQn&àsGˆ¿·›³=`/,sbOã×`ײ’¤. ];‘«õW'æM¨ÿþDgPhdlÆ]YCÍÙBÊçëïú(9¯‰i à?õo°°éeEÚF¶cK s2’iÚî¦ÍsÓ4yÐŽ -]úÏöIìrÝÐÜ=|t°mS2r éÿ¼¹µ½«çÔYLxïÚ;"öp$éë»ã&Þ¨'›Ù0Üã‡/1Ðà>@Î/üýúþêê>ãNm{Žý¡fk« ¢¨i´Õý²‡ˆÄ­‰‘½—ld£Œ¯€ {ºW´66M"d(š“ž´."¢¦ÖŒ&?EÍ9}ÆçÞïD1’ÃåîŸðÜÏó~¿žc‡ö‚ŠòsÁœñ[Ãý¼0}–¹/rFtJû€ñ3¤§Nå°Ó`8„´×a¬ÛSeç¸cÈ“×!𹫴²v/c¿I è'aÿáã°ßu¶¥±äÀžêòâ|R\TX ¯çÆu˜C0wOs3ƒ K¦§BHoàšøáã -Ði èÄq;¹.^ -%ëáí“’‘Ó®Û'¨ßÆ‹â¤èÑöSQÚS'߯W^Z”Ÿ“%†½…¨O´™/ÓÆõ¥0êë`_¯lŸ{a¼˜»À>ê†n,/¿àð­ñP·¹ùEeU|ÔBß¶´wu3o¸paö_öåØ¿¯‰ýQì+ñÓÙÎ\A iÈ@=´$ÎõÕå» óA‘!>žHý%n.޶*¢¾¥”>Ц¾Vê1À¾ˆ¡É€}Äç«ómì]uÖ!ôY\^]¿Ÿ°ÏÒÂþ'Ãþƒ°… WVGŽû¶¶¬Œä„èˆ`/"G;·íÔ)œC8wƒ²þ©ëRÿ×úÔÇ’ÓÆÓjùjêØ°¨¸$È6\VHýÆ–³]\±CI}¾«º;ÛÏ4ÂA{¶†_9ÏÚ{3І+h3›†m:iâŽUâ+ öǤŸ€HìÛêB>j±pš[;ˆ7—¯]‡‡NÃÇÊý¦>wî}=ìÆ¾’>ã¡/¸‰ÛÐãzÏ4ÐùÎ6\¼|÷bôìÌÉJEù‚–¹»:Ù rÊᣠå¯ÃXÊ¡qC¼¦æ–³@AV*[GyB#cS2Ÿ%€ýƒARöo>5ö¹riøÐ¸Ýˆ}Ž¢úê²âü\}lTh ç†µ„}{ëù¯rÝš2öÅàÇ* ûÆn+œ6žV¢c‰œ˜=‹—®|c½‡—pDtBrF¶gàÄäÑjX¦þWCA}|æõé ­,-¢WŽ£öeÚPÃ@¥¾òŽZ¨ÛqÆtãºÑoÚâ„…›š%ŽÚƒGO¼óîÄ›?¹Ä]øæýÑØWú§ú´ Ò2|û5ió ý^ä&‚§é´X‡ª²â‚ÜíéÉñŒ Š7[ç,K ‘=F¨?FQû ‹}£ë`6UðÓדh“—_PøÖ¸mäÏ2ÀþaD„ýKW?íZìSå"öiø{k+J -Õ;pöáÁ~^X¸te-ÐÂþK€ýgõ°?F Ø7 þØßˆa‹Š%q⬉úk7xú†FÅBòäæã¨Ð]…Ôï– -Vhs0“~RêÃA['& gPhãlo³À€6Ïhh£ÀW>àQ«…}I7¯©l\Ühö›½ýC"¢ã“ÓéWÕaåžzxÓýun/ŽŸJçÿ½¸µFc_ÁŸAè‹] kbêh@›l ÷ÿvס¦bw¡:;#%16Ô_³réâ…NvÖLýiSÍFõa_Ä>`_$Ñ öçXŽ¢Í>!‘1 )Ð -Fö¯=-öµ -Ø¿؇Îatx}UYQ>‡à»ŠÎ,k(®VذÓg¾<GMwy38ƒg‡º'M¹Ôï mHýÆëUž³!õû™úðÌ϶6 ê×V–ÂA›Iƒ†«Š¨ý -Ô×¥T°ò]¥´W>ìktcç„wÖ¾o`hd,µêÂÝ5{ sOâ¥ÕÚqúåk0ÿÏoÑK‡€µË±ŸÖcî¬ýħ³ 9¸ ‚š´ @ þ¾ëtø^<ßÙ†±óΉ£÷Â:àå›¶-nkx#èõEÎ6›Sx^ЀS™Ô7yÄ: ‚x̧̀Γֲ((lk\R ´J¾&Œû·žû?`_6èçŸõ2ö¡t1püع@Ðmñ0}¨\#À¾Ô¸Òì¥Â•G?ܓכµN‘b¨?ð:ìCìë­aÂ("&!9ƒZó3bÿ&b_Ž#8µÞ>¼¿® -K73%ÆïïMi´ØÕÉŽ:Ó*—†ÿüsÏìëÏ~øg-Z÷¬’¹ ƒFê¯Y·q‹/Ôkü¶ôíyˆMœ3P¿ ¬)·+Rÿ¿(Í' þ}#ÔÜÐE+SlS²kg6Žo*Ï kW/§vUm,µió[…ÓÆdPغ±RÙ9.äñ{úð;Oß‘W@¼¡[ :Öî?þyéjOïþ›ü 8ß áhUïhì+è{\èß»û%,J2·¡£µ¹B ´§¦¢¤P —oTX `sý+—º»:ÛÛ‚fNŸ -û0qÄ샑u`"öIA°A%ìCE!öÉ u?ö¹xñô ö)Nÿn-øå»¡pjáü¡tW/§KKÔÜŒÓH«ru±?¼£6ùªõбƒGbÓÛR'1%3ggQ©<æ3í˜9—¥rBêŸ×¦>Ø&w»tÐÒ+_ÌÔÿÓ+ZÔ§vU8mL«›ßá¥5uúL,Ýù6öÎpjñ; ‹Â[+›x³çÀ‘ãðš¡wÁ7ð è¥ñŸ/ïÞ}Åú¡¯µ -ßá.Ü»{‡B¿ïúµ+ÿúäã‹ç;Ûp s‚J‹òs²Òèòõ÷ÞŒzÝÍÅÑVe5wÎ+³,-8vFÊ>¬ƒ¡‚¤u`ì/ƒ8ÚŒqØ'„îaì7ö»û}O}™¡wïà¹Õw]RcŽ­ÊRPhFJBtD°¿—åZˆP(]MéL؇o@ý±Òœ¥v!¥ÞT`M ¸miÛó -v—CæðIÕzöÜìÖîÖ¨o,õEýÓê«qÈ1‘pÐò+_Ô_@ÔŸŽÔŸ8a¤ÐÆäاÒåù[€næÌµRÙ:º¸‰£Ö?8Ž­´¬Üü¢ÒÊZºjßýàÃ3mèzéûðÔñ/ˆ·Îå;û -ûŒ„>­wDËÎü¨»³½ ‰Û°¯® - ”·##™×¨¹f„Ž“µ°¦HÄæˆØ½u4$aß‚±¯ì»-Y±fÝFFPR*b¿tè°¯íPÀ>Uï^)‘ZûxmU—C³Ò’b£B}<9œY¡³,§™›Bë¾(°/ÿ—ÃŽý_褾†úÏ>¯)×?Ιû„ŸT^þÁЭ)Ùê]¥•uû#êCâ0õ¡Zoÿ›ªUŠ›APÿqê_•›•¨¿©Ÿ3ê‡ùñAK¯ÜjÙl²†6øÈå“jøÛÕè÷ìCëŠ jךŽ-|çž>!‘1Ä›‚â²êúý‡ŽýåÔ{§›ZðÞ‚—~¥®ÛøÔQ8X¾£±¯ÐOG?åЗĻêåeèî:ÛÚ܀΄ĩ©()Tgg¦BäÐ:¼õæªel$Qè¼4^g”K}“G(Hû²B]ÝûÞHñÉézØoZìÿ ƒ}Iˆý‹ç;Úšd‡ª¡xã£Ãƒý¼ ‘V,q[èˆ ý2`ßlòèÈ­«)Ýá¿Þ˜9u˜ú/Nøý$SÑ­ó­iÈ MOŸÀP¨V„&&Î#ÇÿJÕ¹ 8ãžÞ¤LjÖ!¦>\´ôÌ‘ú!â åWþçÙtP™ÒAÅÕª¹¨”J£ÏœbŸt€{—ŽZ~ç^~AÄ›LhÞxèð zš[á¬ÅîàÜè¿u›N.©}ùOpÿ>M}…|:ú‘C_¬Ò‘IqCËÐÁ:q¶¡²´ˆ „‰ãÏë°ÄÍÅÑNEš2²Ê¥þÀ -B…¾ ­ƒå,X+`¨ cßÓ—)53g'ba¿aè°ÿŒ})“º»Ú[D«ÊŠòs²Rc#C1’°x]e‡Zȉ$j× u‡wÌÒ”%jò'›QµBäØ:ÐŒ×oÚâNͪ.,©¨ÝKÌä#õ?íû ‘©S¬ƒ¢þPÿ"Qÿ}˜ðaœ0Q?)lã+Q_zåHýÿ³_/^9çyÀgÖ±kÏq[»kgf-I0f™\EÆmilŒ(%M"éé¦(‰JÒ=JB‘äRIÑF‰VfvÖÌìÅٱ׳ïÏ÷ûûýžßÓó<•Ë™çyÎéû'|>ßÏûóút ÍOtœúj¾¹ªn MÄ£=X„ÍëÞ  A´z÷$¦¤eÁ7E%e¸¸jÙòe} í‹F°¿þwá³ËzÑû:ð:ýg}„ Í¥Íë†êÊ gOC™Ù阆¸0Óßãâh¿ìŒƒ•¥ùä ã?cBbóðsH³_=›‡ŽØ ÃcŽ}sK+ûNl8ö“a öi^û¬b(5Sj«ö±{îß»;&24ÈÏ›2 Mö­QÖ1’ä{WûÚ«²J‘™4©ÆÃ†ÓfEâ˜[%vpvóØè€Å»'é@FN^!âF:§ZïÁ˜"õÙ^}!¦þ«RÿrÍÅò³§…ókЍïÊöª@}ñ—«£Nr•o®N78jGIÿ|î‚ÅK—ÛÓÁµÑÇ?x{dL\B|CË?½²ºŽ€C౿þäYOìëèëú -_0Ù(PÖ¤HܳkGXH %ê$j‰¢ £¤L¢(E’V Bý>? ÉJLΤÀ1› -êÏ£ -¯^ãîéí½ºÿ !Ô/¯ ,Rÿ‰òZ}]êŸ*:šÇ)úë@}Z«2êj¤Î~òŽß\Y7´yYøQK×ÌÙó8oÖº{²«6ŠN.ø†ÎZ4âb €Ót³ùNk[û´ ˜ˆ#Äþ 9=±¯Ocès_"i¾BŸÍµ†z“ݽù‡²ÒR(m·ùmÞ°ž dg eŠãf -CÎÐOO¨¯NA}húIåØ;N ûk9ö#bâ^û*©¯û¬ï·1ì7Ô×TÁ¢ÅÇŽÊ<˜¼7.:BH%G{;[¢¨åÔÉ(”ŒÅPb•zÐK«Ø[)õÔ(T˜˜‰¼™4ÅbÆ,(vvõðòñ ‹ÚŸcRØœ9_IõmºÕrW¤>ê‹ y9êÿ£êSyÔß̨ÏlcÃê«¿Ô׌}®¡ 쟛²6€7¶v+œÙU´-7WbJÖ/Ž®3ç+ªjë®5ݼ á°ØÿšÇ>}vE;zb_žºÐgƒÀŽÞ¿<¥ Á(<€îÞ¦Y¸R{©òB†¡àpvú¤„¸˜ˆP¾?ssq´_¾tñ‚¹6V| L£á;¤T©O+ÔwäÔ·æ—Q¸ -õUhóƒ×·{OU7}„>ðí ìgë—ubƬ9ó‡îàìÊ|³-|Ç®ø}ûœüBúê8¼ œ&üõVZÂâ±ÿLˆýïÅØR¿'öµô”§@5ô‰?,eÚÛØÕ ]ÖVUœ?SRDJKIÜìïãåáæ‚iXºxd 6"‚ÈÔuêkTû¿áâ¹4‹au׌ý–íû²hz!bÿéæÑ‡‚G¯^ÆáUVRT˜Ÿ“Á’)lk€ÏF7gptÁ\+‹)“LLX¿ -ö•c_k]Ç6ÂR«‹¬?ÁlêtkDÍ'ËV®^˳{ßþ´¬Cà%_©Dý?RÊüùk¥Ú¾õëÁ›Î©o® þ¯ß©ÏŠ«'´éøÍåºaë—wÂhä¨ЊÉS-gÚ|Œ¾Ì¾ñØèã»'é@zÖ¡#ÇŠJΜ¯¨ª­o ÓëNk[;kÈ7{b_ÇžúЧ„a#†þ—ï·Á?lj/U^(;] ]fg¤&ܹ¯YͦaÞlëéÌ@cG¤q`YbŠÒ¿yЄý¡@Ð(ÓD -&Ž}‡®±OɤÀþ‹—ľ¤8½®ÿá -–0°Ï£ ݈ »‹{ÔvѼÙ|S+ ‡É°/5¢—Ö°¯‰ú)Š‹KjÒ+õ÷Ÿ®rvõðò aµ=ž“WXTRÆ6*§~;¨ÿHNýNJûêÔÿL•úïõñË)ûåÂJÕùO®ûÂ? ýsƒÆ&£ÇâªÂ®Ú…KÐ øÆsÓ–€íØÁ{“S3²/>]v¡òR-»½°†±ÿ”bÿ¹Ð”žØ×öëú,_„Ð'ýÉt ` -Q3h GºyÐÕЀ}L"Gºýk ûí¯„}±+Ïq~I"¥Ž45^­«²);=%íØ‚Ãk½«Óªå¸»æÎ’¢‰0Zñ‹AŠdê­„}m”W±SÅKЍ?µÆkË|É6ª½ãšuž›|ƒ¶ED³Ò—Å¥gËaK¾P?¿Ï©Xv]Y5Ô ûP‰úâ>•QßI ¾QÜX‘úTZêëø=KOþÍ¥ýËZñŸÃÆÝ5Ît²9V0/ò³ëú Þ¾œø}ûfæäÅíE½ġώ–`säð¦(vqOìkïi -}†Ì…þ#ú­-eãÕË…s¥§Næçf¥¥$î‰.ý6{y¸¹3˜â%‚f¤‘¡Bÿáò•¤wóÐöMìÏ”a_iØïR¤²tR!)]_„}N§‹ÉÍLMNˆ‹߯Dêâˆ,d“é8` ήý•<ª¥F(Q¿÷%`²¤!_Ri?šh6m†´P×{möÞµ3^ªìùÊ꺫M%ö)£þwݺ¢4×UF}¬Ó²’¢nQˆ@ýþzG}ͺAìÿŒî.78¼ÆO0ö¡v,³wtqóðÚìG[8_=-+7¿ðÄ©Òsåk._¥ÏÞÒzÅþ#ñ¶í‰}xêBÿŸŠÐ§9 ý|ñ¡§“@¡_qþLI”YHˆ‹!ùlÄ0¬^¹š7{æôif˜†±£™Äq|)SæAã8(ô²ØoU„“ûÿêö“>ã&¥¦ét©‚°_p8;-…“Ôoó÷µè '´cÂx^ÆlÿJÌ&±½´„ý·•R_ܨBм7dØp±²–V6/\"ìÓ-[ãc’R3ró©°åU5õ ×°N[¥uÚMê+•õ9'ŽDýæõwAýÑTXõûêõßRÑ m`ÙQËxc0ÂØäÿì—‡WÖçÇÓ¦Æ$MSI{R+CEˆ[AQDAW4*{#[@*ÈFö½™²e‰ ˆ -"Ô(¢± ÖZ›ÆôœäœÞû<¿ß»x_ÄØ‚oÏŸpïs?ßÏÖ±bõÚõÕ·nÓ3ܽ÷€‰… Äp@pxT\Rj&´¯ÒŠêºÆfÀ~Ïõ>XÊ—÷FûÐmYìÿ@3ý){" ÿ‚ }¸°Ÿ8„Á>,½í-à?•Š s³Ò’ã£#BO?êîâ`k ǰgÇvM µ k׬\˜‘“‘–œÇ9^ —{&ûï½O$ˆ_öWñɾý„dÿ+û„N–}Ü˓ǣXÀOý°”޶Kõà¤EùYiÄIOøuw¶·63bèû J*#M2øãf½ ²Ï;Z6Pi"y*5;XuMýŸd0N½ý‚#bR2r ‹Ëª`®—;0 ú÷F>B¼4…±¾ø…ªÏ†i£úEyÌXUŸÊ Wõ?SÕb7ïðÊ>ÕúщߨihêÀOßwÇÁžz`HDt|rZfn!$ñꦖvˆbØ -dñ0¬åk‚ýgÓØ¿÷>:å(…>t^àK7–ÞúšÊ²bh½é @‘¡§Oúópu´³23ÂcÐÕRQ·T”_(‹$pâ¤úoqÑ$xce-•}á²ß&Töyñ$JöâX)Ý ,†á¬¥¯·»³½¥±–•ÒèˆàS~^®O;¶C÷Â…€“Â>0„ÿ@eŸÝÆo¦JöùTÏ`9q*¯¸t;×ÝûšYÙ;1i—”–•WTZqÇz•Œõî0‘Ê'蔯¤ú?ŽUýÁ[7{‰ê׊P}]ªú+ÕŸ'Öª/LöYìÏ¢z3WB ->º¼"İ’ -”/-]ÈáýFfVvŽ®Ç|OžŒI8›ž•w®¸ >{d1®e$‡Áþ.ö_LcÊÞD¡NygèvÿÍ^„þ%¸„ò’¢üìŒ”ÄØ3aA@O7'{ksã{wèioÝL¯AF -ÝòŸÌáÈ¥ z³ïaì9¼‹ç@%h|Ù÷á“ý:*û ?wîÝøÊ²ÛaõO>@¡ìwu@_¬((NMŠ …úuä0á¬DWKCmýZØv/Xȧt¬“Îà“ý)˜,O‹¢s%”aÓCÇºßØÂÆÁÅÃË— Óœ‚ó¨úÍl…b¦ -Yúísfª¢³t¬êóDéTû6Õ—wÕg—1¦Ôþöƒ©ÞàG—’Y°hñgKW¬V^?][Ǿº“NPüõ”ôì|øìU5 —Z/Ã^ûC öG‰æLcŠŸôâ…þ÷ ôá €-÷ánƒýôtu´57ÖV——ÿ¤&ÅE…ø`œáLÀ€ ñÔ6¬] -„Œ‘–ä:÷ÄJ‚±ÿz²õ¿#ûß>{J uÿÞÔÒî+íÍ 5•Îd§'ÇG…AÿB@™±g‡±R\ È>Ã'®”2xš‚mWý™±Æ(,AĨ©kêèÃTM-íœÜŽxû†Db–æ‘,mjíèêá*ªþs}v¨Q}&IG¿FÅaT¿ª~aNFŠ êêqU!Wõg‰«êó|sÁRKô†~tâ7ÌOW×ܶÝú—‰…Í!çð•€àð¨¸Ä”Œœ‚¢ÒòêÚ†f¨¶Çý·‡ |5ý7âñÀÏ‚ÐG°Àümô -ý¿ôÁ~ ó6‚þ]r3S“â£#BOøuwq°µ45Àèëhià1¬Z¾DQ~¡,^ã@¬Z²ç 64öfÎ}Ê'”}U®ìrvçÊ~#û ?×yd+ïsÙM}~DA$c ƒÝŒ ³^ÚÒTW]^R˜›™’‰„òts´µ49°w§¾h©Š2ìDa (j¥œ…¼=²ÏG}2¨–L…’•“W\ºrͺ ›¶hëîf†zÌçdPXT|2H%F)ÀåÊU¢úwï?˜øLÇ)Q})Ÿê×£êç£êG…a’z¸8PÕ'3ý?Rý·„•ZŽÞÐö5wžø¼"üt¥uª›4´tôñ«›ZÚ:¸¸=~"0$":. šmÁùÒ -øíˆýžë7oA #öÿŠí–bÿûiìOÑ}¼æXèÀüô]¿öÓ‡Py¡¸Jor|td(¶^WG;+3¼]í-›0x D$ð>™ƒô;¸öÄJ‚Æ‘ýÙ\Ù'€âʾ)¿ìçÙoàÈþÝáŒì3^ú‚ÇKÇ‘ýóÈ>ö0VLa5m—XD%Ç ; a|ØÙÞÚ̼T¢úC( *ûœæZé䮃+3UÂT}ÎP@ƒÂ(ݨQºóóý&8So¿€ˆ˜„”ŒÜÂâ2š¤=¤C úùúÓ㌔ÍQîD¿c&ú&Ê©ODõsùUßL”êÏgÕ´æŸS½ÁúÅúÍÂÅŠK¡€©lܼE[×Öblfeçèêq̇`?>9- 6s¡òb]SKû•«°›[ƒ ö¿ì?ý åiìOÉãÿÿc¡}—¨ÏWG†,}7€,h?5•eÅçò²ÓÏ&Ä ô}½<Ýœì­ÍA*wêmÛ -´v ƒÂ"T ¦øÎþ=‰¯½Tö•à„È~+ûM,¢^Cö¡‹±f -ŒbÍ´»³½…2*'ãlBtDð)?/W*¦;¶oÛºYUEi"Jv¾ä<ê¥4ˆ9Z:é áSýÜ(ý©3EÕ_±šMÒ}ͬìƒSÂHã’Ò²òŠJ+.Ösƒ¹2úø Lô»WS}øòt œöt»ÿFOWG+“£Ù£ã«¾ÄÕ¿_.DöÙN£XZFn‘ÂgË@pÖ«Aë‚á›[Û;¹yzùž<“p6=+ï\qYeM=Áþ5û#9ØÿnûSó&}ÄÊ0¸Ï@ÿkÝ—[/5ÔT•—À!d¤$Æž :åç}ä°ó!   ‹¦†Ú†uJ«–/Q—C¾Ìý”^ë•cÏAîA”ì/ì —};Fö#xd¿¹í -¿ì?ee<3"û¸ ©É©k)¨a%çò²R“b#Cý35=¸w—.ìµDaÑ) FLQï½KõöäË>õÙ™r’TRZTÙJ¥uªL›Û8¸xxùrëSYUmcs{gw/ÉÑš£*/iOBæÉQý{Tõ91 -ªŸÂt\Õp›_Ozz÷«1ØŸÉÓja+´ÖÊÉÁY_]³{ßA ›C·xû - -;›˜’ž®¤¬ª¦þRëåNøï}ƒðá ös°ÿ¯iìOö{5èô{)ôk«ËK‹ -r2R“â¢Âƒüuwq°µ45úb–Æ&Ub@äˆÑâ‹ZÉz%ï9ˆÅ=ˆ}Qà@ÙWæÈ¾1¿ìg Èþ—üš€ìsÝ)õ(EeŸ¥Ô•öæ†šÊ ç ²Ó“ã£ÂQMÝ]Y›ÃfH­Y‰f*˘)nåa²?™CeÃŽ” R´J©ùd¢«•×oT×ÔÑßIsÔ툷`Hdl"§=µvtõÆèDTÿgѪϦ(Wõ™yÕ7­úØhßgsTìT_ðŸ3QL[-60Zkç/X¸;˜²Šê& -Ø [SK[÷£Çý‚ãâ’R2rò‹JË«jûݽ7úï ö!öÿNLg|ìOsÿðDCÿ -ýg|пÝTéêhkn¬«®(=_›™šxÂ瘇«#øœ‚®ö–Íx h@à”Ò’þQ r |$¶ç Rö¥9²¿‰GöÝ<½ý@öÎfðÊþÍ[ƒB(õrÙ§˜"ØÇ`æ`jh ïzO×å–¦ºêò’ÂÜLpÓˆ?oOWG[K“ ¥T”W-'j*IÕtö,’Ť€1K™Ìð©þŒw8VIU_BZFººE[Ïp÷>#3k{ŒÑ“§Ã¢â’ÓþÃ~y?E}§q<Îçw1¶Ë%9 M[$DÞ”& Å¥—¥÷ºTéK¯‚ôŽ`A@z/FÅPÑÄ9£Á‹“›Üåîfîù|¾…ÝÖ5gp–áó'<Ÿçy½_ïs•ô('»oïžÛA)1\À)]þHá…ç„äøÊþŸ’ý3.$¥R³r‹ì·v€›ŒÌÊ>:Ù_S|85ýhò>ÈþøèP)§ð=Y©I¬ÈЦ)£G”åH7…ÆC©•‹/û+¸¨OâÑeý£b’À™ý -Jxž¦æÖv W/¿ ”¢Ù%ÕõÍí—¯ÒÝ ‚Bô%Ê›Bô¿ü2t«þè Lª¨>Q¢Ã‚|½\´ê+óªþº9ª/\…½s°¿ŠNcô1ö%¶ÁªïÃ9¨¬ª®¥kŠÍÖÙÝÛ/(,ŠØgç•VT×5µÂõô ŽŒÝ¸ykbûïõqî>è?èsoâ6†>¸Ï厶æúšóeÅùÙ)‰qÑáÁþL(½'éiiYä÷ËHïÙ%%)!&BõÞ5­Fp¡HˆÏŸì”Ú'+Oɾ%-û €)$ûõÍÐy{úI9|4äôÈ))û°þÿ&95õiPý  ‚oz5ƒúÔ±),û´V•—äg§'Ç#Nyºž±;enŸ£®BÉ©*a$¦¸Ütñ©O”¤ žçºõ)ú¥25N'w¦HdlbjfnaÙùÚÆÖŽ+Ý}ƒ£ã_Ýš¸Ó|úÝßž¿àPýýJÕ'†9ëÍ©zmNfJbldH¨¾£­Õ¬êËàN»„TŸWoÈE'âx ‘Ç7‹ˆ¡^ †³_^Qùˆ†–1 k;p¦px+1Ö,§º¾©­ƒÀþuûS¦—±ÿ~Þ[BÿþÄí¯ÿz}t¨ÿZ¸OsC ÈO~Nfj@?$ÀÇÓ•aocifb¤¯}NA Ô^q }âVÏ^ƒ°žƒÀ²ÿ%Ⱦ*–}s$ûž>´ìWbNuõŽðØ)’}býßFöÑ?a=&õtd°· d¿b*!6"ØßÛÍÉÞŠ²ÓC`§ÒPÃhNáFw0ü/‹÷-\ª¿ò÷´R®#Ð"*¾Mj×ç¢J‡Õ4u M̬ˆi†EÅ%§±ó‹Ë«êš.\ºÚÓ?2ÐÛ…U4735‘…TßÙž¥ÊÒT}ê_8±¿ŠÆ>)8›¶@$o߉v]îà!5Mø3+['7OŸ€ˆ˜øäÔÌœ‚âs•5 Ím¯ ì‚èÜž¸°ÿTpì/sÿ=>Ðÿèôvô[j«ÊK -s³Ò’b#C}½ÜœOŸ27=f «©ŽüGvØ$ ¸l@ä1P× ô4Ÿìügl@Û8eߨÔü”¥§IiYyEçÙïÙG¤ÙÊ%ûÿäã§4«hA}M ê㇪®!TÕWW”dgœ òÃ~jnj¬§¥®¢¤€I%)!¶e¥§\ ZÄád —êƒO~Ї)…lRNQEèñ“–¶ÎÌ€ÐHTœˆY¶]ììéÅ :õˆP}`Ék’ú ÷¦ùk(¬üä} £t€–—äg§“£tcØ[½éÈRU}ÞE'™üœµë¡ˆaìKl“‚]ÇØWU×Ô58Û~ÚÑÉÍË704°Ÿ–•[PR^YÛÐrÄþ8`ÿ® Ø_ÖýwùxÌqú?sAÿûYèßùêî0@¿óÒ…–F€~ia.;ýlBlTXŸ·»³#tÞÇ õ´ ô*‚ÿHïÙ%XÁ6‰ hõ¬ ±ñ—}l@²¯¦©kx|VöcI?%dÿZÿðØB¨â/ûܬzÍÍ*ø§Á¾î+­µ•eEHPc#Cü™îN6–'ŽèTøò‹=;·oÙŒýtí‚TD ûÝbÊ>—êSÔ'"ô“Ï6Vð,÷Ë+©@‚™ uõô -‹ŽONÏÎ/)'G90 yçÞ7SŸ -$ùé ÊÕš`’„êóä'¨~G+Rý¢Ü¬Ô$VdhªM§­ÌLŒô4‰•F£#G¹DTÿƒ9‹Î±é8“Ñ÷l]—ÚµGZf¿¼¢²ª†lû ëÓŽÎîÞ~€ýØ„³éY¹…%åUµ€ýÎîÞ…±ÿ}’ûËØ·O`èÃLÃÐ# ßÞÚXWUQZ”ÇNOIdôý™.gì¬-O7Òý9¬¤pùÏID•ŸÁ-lX·–†þª9Юsà/ûèD)ÙÿÑÐÖ'dP—œÆÎ+¦d¿opËþäÃi,û?ª`õýógß>y<…a56Üíê¥ ÍõUåÅùìôä¸è°@_O—3ˆU†ºšj‡åe÷!AÅ¡¼U+¹dñ¦ID(ž%G‚ŠˆmE£”!Gyì„…½“›·HDlbJfNaÙù²6ñLRüœ7>_B|~ ¢ó©þ¨>9HÜšbƒý¼Ýœìm,¨ü”“åQý5KCõ©¯áÄþ*û°êð?¸Øn•ÜÊØ¥ÃG4´õŒ@r¬¡Ûzxû…E±ûì¼ÂÒ -„ýöKûÃðS¼ØŸYÆþoÿ8ù!ô'1ôoôûàÚ[›êª+ÊŠò²3Rã¢Ãƒú® {K3c}£jô÷îÞ*)ºe¾+¤ ÿ5 û ¨”ìÛ:8»3iVì7´´_F†:† •–ý™YXýò²ÿ#’}¤¨ÓðW·¾º>2ŠÚÞÒPSQZ“‘’`Ű·¶05Ö×ÖP=„ u÷èbðA˜UÊœ‚ºhÃ9KZõ?™ª*L‘•#k“™•­£‹‡O`hT\ÎϪº¦¶‹=ýCÜ­iæÂ†ˆ@ªçk?«úhŽã0Gº4åe¥%±¢B}P|žBª¯Å¡údkBù¹zi¨>¯ß›NýÏÚõ>Æ».*¾u;,;}µ£ 9&f–6ö ¦px+1%ƒWدkl%±?Æû˜ûó`™ûÿ×ã…>fþÐÐp÷Î-ýA€>ÔݦúêóeÅùÙ©IýOW†ƒ­•™©±Ž¦šÊ!П}{áÿô "¨Bƒ_ƒ@²/µù-ûÖv W/ß °èøätv>«î¾¡¹²ÿFEå–}ì¨?’Žú„tÔÑ¡¾žÎ‹mMµ•ç€V©I¬ÈЦ‡³ÃÿØ/離Î4Ž»“1Nv'‰eÝdg‘"`I"* -((½÷^.péUzïK/ -Ê¥ (¢ ¨ØDMtMD°­1’ÍjÌî™Ùç}Ï9—sn!Ä]Ùáýžçy?ßÏ—}ŒTÔò4X­Z‰ õOTû`îdŸ©ú2' L!óSYU]S×ДdxtBj&§¨¬’KÄ祫×n Ý‚9ŽŒÏ~Ž¢UŸ#¯35Õs©ôŒÀªï@ª¾ -¡ú2 Põ—ø ±XÈ>ÆþçûRÐlaG -Š»ÕÔ÷ëè›YA6»{ù…öS2ròŠÊ©©o:ÖFÇþ=ØËÀþ¢îÿÐC@ÿ• ôoÐïh;ÞÜP[UQ^œŸ“™šÐö÷f³œì¬Ì t45ÐG@ú?AB\ }Ä”O?!TÙ2èÏ¿ß0 Ù—æ“}PTŸÀÈØ¤´ìü⃇«š§i²?2:>ùäù ÊQi²/ÄQy¼”ÔÉñÑ‘oï}}k¨ÿ‰«:nEY!'3%!:,ÈÏÓÍÉUú˜$óf¹ ­VR]Œ«¹X5Jr’8?iƒ—–ÝôÅVˆÏ=ŸÆæÖ.loTš’ÒÑÔ4¶œhïìÂé‰Tÿᣠ¬ú¯fÑ™~åŸ"T¦)Feº9p½‡T}ÏÒ‚œŒäxRõíÕWSÞµpUŸÚû˨S‡6¶j5Vqh¶r°¤íûš:ÆæVvŽ,¶·Phdl"`?¿¨¬¢ª¦cÿüÅ+=‚ØÿžÄþëE쿟Çõôÿ.Ÿý<èË€þI ýÊòâ‚\€~\TX°¿‡«“½µ…‰®@_ :/Òiúè+¬ A}†…¢@LÙÿ˜)û›Aö1­@öíÝ GMÉä–UpëÙ¿ÒÛ70LÃÕKÀÕìd_ÐR!¦yÕÜPsø`q^vZb,!©öÖfFzZ<\Iˆ¯Å²¿‚(cü€KW¯ƒì¼üó -É>ðjFÙ'vG ˆEÖ£Q¨fw†ûz¯\8×Ñvìhma©qQ¡¾,G à42XȾäz±5ˆúLÙÿ`®dŸA}jŽ@”UˆúЙ¤ˆ1*«©kêšYÙ9»yù‡Ç$¦få•WVד•éú›·¿ùÛwÇ&ðiª/:;¢ó'":Ÿ=žxÑy¢³¯çò…³0ÄFè¶¥…¹)ñQdc²bf'OõW,$Õ_"péÄŠÈ[GKÂÍv½$\;’Ôm÷iéšXXÛ;»zø‡EÅ%¥fæ—WVÕ64oëÀØ¿Þ?8,ûÿ °GqûÿåcpCô_#èOQП ¡gx ß}©‹€~·ò`I'+-)> ïëéæì`cij¤§½Ÿ€þWý ô ÿ!<ò#aП—¿a²/Å“ý}ÚúÆæÖHö¯R39Ee•\ÒRAö±ì>šD²ÿì€%ŒXS¯^¾€v6>6²kèÆµ«—@S[›ê¹•eEœÌÔ„èð`?/,SC]MuU¥Û`OÈR× K¥ñj)Cöçddzâ1‚GPPxЉKJËnúB~Ç.rŠ6,¶O@ÊΜü’CGjcê!5Do~ž1:…''5C¤ú0Ãn<Ãæ†j(LùÙiI±!>l¨¾‰Îþ½*J -Ä%°ê¯^hªO-ˆû„ìcìN`ƒ,¤3,J°¯­ghjacïìæép °Ÿ–•[PBbÿ¤pì?§cÿg>ì3¹ÿÿfè¼{¿ ýŠ„~/@ÿìé“­-ýÃK 9YéÉý@_Ow[K3#}íýêj»QåûÙ %!.¶ÿ„•úÄWXFƒþø 3Ë>ð -J¯²*²TS}WßÀШ¸äôœVMcˉöήËš:—©?kÙÇ‹C É>xêƒûwï`Oíêl?ÑÒPsdšXÞlks¬©»wíÀš*!Ž ,š¥ÎɆª¿”6E2;%QvnSPRÙ †èäê韒™[XVÁ­kÂÑÙ}­èÖ׸0MR3üýªÏ!îKwï  ¾„Tÿh]UEY!'3%!: %§3¥ú0Cytì¨01£sÙÂP}¦àÐ cŽïI\Bjƒì¦-_mSPÜ­¦¾_[ÏÈÔÒÆÁÅÍÓ7ð@xt<`ŸSPr°’[Û8ö_2±¹/ û‹Üÿ]O8óñٓЇ’ Ðÿ~FèWcègôc"Bý¼Ü]m­ÌŒõu4 èKädHè“¥—}ô€Í$û«0°Ö‘²¯ ¨Bɾ‹»·ÿð˜ÄÔ¬¼¢òJn=I¬ÞþAD¬£ã O}ËóTѲOP3 ¥5Õ'“ã£XTû{»/ž;}#«´07#9>*4È×ÃÕÑ–ôTEù/7ËÄB{Zþ)MS?˜ÙgPŸÊNrˆàR2· èTÓÐÒ32³Â… Í0-+¯¸üpuC3™œDr?žþè1Ý—DŽðWa¤×¥ÛpõP—:ÛAõ!8KòsÒ“â"C}ú§Z[Žô•æe§§$ÄD„ùy±YŽvVæÆ:š{T”vnß -(‘‘–DЇðgø $M°Eòмý ¿%ûbÓ²¯FȾöÔШøäŒÜ‚ÒCUµ ûg».÷ôÑ…DõÇYˆªpSÅÌš{8ͬ3§Z›ë«+Ë‹ò²Rbƒý Q5ÔÕTWUÞ¹#kýºµLO&Öû^5Erˆ8:&ËW3”D3”ß¡¸'§…‹íIö%á±¶Ž³®ôö ß¹wŸœ¢ëo€´¶4ÅP}ÈÍ+(77Õq+ËŠ8ÔÝ퉺´©>/8ùUé‚P}jG É>ºuòØ1öÿа/)-#·Ý;,KCSGߨÌÊÖ‘åîåŸœŽ±˜[ÇÀþMö!¯auûpÿo™Ø_äþ;=‘Ðÿú/)èŽ|п-úEyÙýH€¾7›ådgmnb «E@¾ÁFYiÉõØ~þ‚¡ÿÉÇð>bB¾‘²¿|Zöá Î«²—D– Û;à@DlbZ6Õú¦ÖSgÎ_ê¾Ö?„d˜ÔŸ³ªúË/xy|Ðèë¹|állj–FÊTc#C|Ø.ÖæÆúÚû³ –ÉJKˆÓDõÄžèÔKb¨þRZrâŠá¾#TR}$ƒÓ/(,:!%“SX†ë1ÁC· 7GÆÆ‰ÜœšEn -Ä&OõÉØ¼9p½çrWg;à¡’‚œŒä¸¨Ð@Ü–,M ¡Ù‚êãÜäMpå´ê¸PTŸyê´[ÇÍ_;ôÚuëû¡Ünß©¤Ø×506·²sd±½ü‚û ÉéÙœÂRaØ¿Kaÿ)Æþ+Œý×4ì/êþ;?Aæ3¡ÿfÐ? A? ìïÍvýûuâÎU¾p¼ž©æéNÓ^ÓÜ™6 Y²g'"²F‘}ß…} YC")„I‹´Ì´PdM{’=•¦Eu§f¹·ç¹Ÿï÷œóûãg»÷y47×ù¾çû}}Þ+scC}]MuUeE9Ô>Bü|<ú‹¢‡0‹z DCŽ»·Àûói¡**!-§´N]KoÓ3+{lÖŽ¨ø¤Ôô¬ÜÃG‰R…Ø¿yûÞÃVˆ}\ªpïßÿ±O©ÕÓÕñ¸åþæÆÚêJœªG eíOMŠÚäçµÕ¡¥¯³AMYAv ³T©¥l`¨Žñ!RêSG8sœ 7/¿ûÍm\=ˆ¹¹'-#;¿¨¤ìÌ9Ø–jꛘøŽ:ÀáRŸ65?~ §æ‹ç½=]í´ó«8]zŒ\–b"B|<\lÌ©±)ÙúßÒ®ú¸HýI ‡83ûsÑ¿"Øçáã“D쫪kêèo66³²utu÷òö£b’IöKc¿‹Å>Ìlâÿáð¡åþ'†ûµ¨_À7Dèèd£ÿŠ@¿‡~ýB@?F?"4ÐÏÛÃÍÉÎÚÜÄÐ@WKƒ@_\DH€‡›k~ПF Ï~ _òc<ög°b1Š}~!Tª -Êjtô!ömÝ<·†FÆ’hãØ¯ªÁ©ÚB¥ê+¸öï1Z#Äþ¿Xl!õ߿퇑Ý­ÚI´j]MÕehÕÅEyÙÒ’wEG„øûx¸8X›oÙ¤§¹^EIŽHUn®¥‹)´ØêOù êOfªO;AÚÜ“”E4´á-mܶù†íŒKLIÏÄcóì…KW¯×6PËR/^–9¿‡&y|ÏzÑñÁ®Ô»ÒUØ•N?r873=%)ŽššVfúp~Šp~Œe‰66§MeÞô1;ÂÏñMfžÏtö Å Íh>!1Ii9EeUu-]}Ccs+;GW/ß@ŠýÌì<ûÕû°¦µutõÀíï{ØÇ¹ÿë¼ïþNc"÷ÿ£aþ'ZèãÐA—£ÿÐï{þ”…þAÑß“äçíéædÑ×ÓÒPSQ’—Y#.²Z`…þw ˆúÁ¿„©ãý!c&û?Z<-iy2öÍ­í]ܽýƒÃ£ãw§îÏ:Tpôø)R-ûí=cÿÏ!cˆX¶z:Û[­› 7®SlådîKIŒ ܾÍÍÑÖ„lUiI†ZsfÃÏ¢¡5æfÑOÍMö¶„Y²œ›g• ˆ¸”¬¢ÊzM]#¼,yûáóÛ»ÿ`^á1bjV×5ÞºûàQ[G7žš£Ù•觇ՇëɫҼ*Ýmn¬«®º|±â454b"C¶{º9ÚX˜¢ãSV!v%îåKqêϧ©ÏÁþT|Ù)öç ëŽ~×2`•ÀjqÌ¾š†–®fßÉÕÃÛ704<*.!yï ì7û-­ûÏú`jÂ>#÷'ØÍÇúú¿c0P鼃[è¿ÀèwÑÑ¿Æ~|tDFßÙÞÚÂÄÈ@O{‰¾èjÁU¼+1úÀ¼²~¦3Ño3öÉw€Ru!Úy¹ˆØµˆØ7µ´sÚŠ[56qϾŒœü#%egÎýtb¿‰ÁÄêHl R«èRnAì77ÖVW^ºXqªôXÁ¡ƒûSwÇGíöór‡X55Ò×Ù ¦¬ »F±µb9ÞÌæÓZþÕWcûÌÔgM¼,Qç'*!-GLMcsWOŸ€ÐÈ´+±ŽïÚz<4ÛÈ¡ù¦“ñÛoìJƒnJƒÌ̳'-ÈÍJOMŠ -öóvw±·6C«’ú:%9éÿԟļë,ö§“3³ÿ=f%/fŒ¼’ -°¯g`hbnmçä†Ùœýz6ûÝû/)öá à–ûŸ&ÜÝlj>6Ÿ‰þÛ~ýgOŸôtu ôïq ŸŸ“ÅFß¡ocaj´ Ð_¿Ї}WXŸwåŠåKÑ3XˆÑGõÃΟ)ãýabÕª+ U…Å$eä×»q3fËÃÇ?$"zŠÕC…ÇJQìWBñ4ß¹ßò¸½‹æ¡ÝbÆ>®'Ým®¦úškW~:w¦¬¸(?;#-yWLDH€‡‹ƒµ9¸¥…Ü’’âçåæZº«±ÊVʘ«?™©þ×èüÈ©ùÝ÷?À®´’OŸÂZU š&–¶hh…íŒKJIÏÊ%W¥ÊëìÓC3óÌÌ÷#ÍÌ¡GfwGŒÌ[Mu5UøðJŠòs2öíI 7%'[KCÖÌħÇJýÙã4õ' LÜ8èoýíˆýÙhJÃ[ Ø\-*A²¯­g`dbamØ÷Ãì'Rì“ìWaöoìwv?é}ö؇€ØÿfŸÌ}’ý‰ÜÍÇ4 úáÆ³Ðÿ…B¿­µå ßÔP[sí*ý4}Ï­ý-›6"ô×*È2ÑGÏ`.Bù¦賟Âÿ†}ô -Pû@ìKHÉ)ª¬×Ô502µ²sÞêå´cg\bJzfîá#%'ËÏãZm‚Z}Ô×ÔùºÿíûQÆ>¡>– þâ"W»Ú·Ü¿s³¡åj9äêáÜÌô”ÄØa¾ÛÜm-L6oÔÖP]+/#)†juŲ%¸V‘[3h±ú9Ô'§&ûøfͦ†&7 M¼*§gfeïâîíŽfæƒy…Å'NW\¼ÌØ”˜‡÷çP‡Ç˜˜pvðúYg× -g×Ü€¥ gÉEiïî]Ñá!þÞxd#S^yxóÇqêSw•8¸q¨ëÎf)bŸ_PXTBJØ_¿A[oɾçÐìߨol¾}±ßN°?ñüÅwxeûÀb"÷Gýq†>þàûŽ2‡Dÿå//žúÝúÍú—ú'ý< -ýH}K„¾…¾˜°?<„>´Ïúø!LgèsÆ>ñ¾åˆý5¸Vµ!ö-l]=}B#b’ÓdSpUV×5â\íèzÂÌÕb`¯öS½úõjc]uÕå‹§K‚\©»ã£Âƒý¼Üí¬L P®*B® - ®‚¶ç* .ø]_5ûÌÔg¯J`È" „‹f¦¨„´œÒ:u-=´)ÁámŒMس/#'ÿHIYùùŸ¯Âȼ #³µ½sô‹ÇÑ¡=é%¹'=zpïVSý ؓΗ—•9œ“¹/%1ngXï¶­Nv–ÄÙ©(ÊJ‰S‹Òèºã‘ù ¾ì¬ÔÓ¡ùY¿ìOÅÿ‹ÅþÜy ."Ùç#ÙWX»Ž`ßÔÂÆÞ±Äd¿±ÿóŠýû=ö{zŸ>ïƒ'ðú Î}Ä>~´ÜŸ`øoøÐ‡ûŽ.®Ð«[ˆ^•ƒ” «¿Œ­þ˜Ç>S}<3Ù›Ò’eˆ€°˜¤Œ‚²ª†Ž¾¡©¥¹(‘gWzêì…K•ÕµŒ‰ù&æH{Ò§A×$<0»:ÐšÔ ³ ÌÅ…yìMÞ‚ÎÆÜ˜½' ˜˜3ÇmêOb^vûÓìÿýG`Ÿ›‡_HXŒÅþF&ûÑ$û‡û'Ë+.û×ý›û]Ùÿ±Oæþ?éî³ÿç_ÍìÿÖ7úÐÑÇ¡è÷ú=Ýíý»·Ùè—#ô òr2è»úfúªÊŠr€¾þ2ôÐÂ;‡ Gx_s¢?.žÂd†[ôØŸ‡cÞ/ľ8ľ²š†¶¾¡‰…­£›çö@Ü«iÙùEÅeÿf¿Îÿ¹Ê÷ŽßÇcZT³Õ45MÙ&I"%$¥”ÊP!”R¤­JJ*ŠY‹l!Ò¦MÙ×/¾H‘-Ëw±6EÍèVs¸÷ýùœs¾«/æñ·Çã{?á}Îy¾_ïû3s -JÊ*«kê›[™Ã¦K¸X)»ÚYŒl½´(/ûÉûiÉ ±‘a8XO8r´·µÞ¼‰C—Ê\E¹YR3gL'{•G®UŸ7Ñð8+“<”äáPRU_¬­KnÌv{÷;¹¸¹{] åÞI|£ë~ý›ÐÂ,õÿ¤Rÿ=tÚ—¬¶´/«è´¢¼¬ŒxrQaÁ}<ϸg’•¹‰ñºÕ+t‰…©¨ ;K’;:)>©Ïû±×íÓÑ[›% ìÏöiìm0µ Ù?ÂÇ~bÿ>b?¿ˆVVQUý±ßÜÊ`±;:»{àMö"ö‰Ü§ØÍý¡žÍÿ7'ôásç¢ßÓÝÕÑÕXÿЯ(§ð£äÐ?I o‹ÐßÈA_]Ueîý$úß~3iâDúcÄ}^õŒ}¢WUÔi.Y¶ÒÀp½©ÅV ë€“ËIw/߀ð¨¸Ä"X‹Jé(X›ZDì÷öAæà]´]àõ®ï-.Vfksc]M5k.Ö”¤¸èðÐ_/÷“Çœöï±Ãv­]¥§«­¡.¬@õʾYöùSŸœ¹1gJJËÊÏVš§¶™å6›ÝÇ óräÕ„7ñ™T(p&Q“ûÄ3¹¡ÖåïWYVRƒ®¤T|%ù?{êøÑƒŽ»m·ûRo©–N}yjrœ3i¼X¦¾ûc¸•C|ð˜ý\öUIö ÖqØßG°ï‰Ùàg¿¤Œì×Ö54ûLv{g°¹ÿçþ”ûˆýÑÜêúò„>…þëžîÎ6‹A¡_…ÑÏ%Ñ¿‘3ú–\ô50ú³1úP>Ó¦Bú|GµŽ|?‚xý ±ÿ=û$]ªêÚûk6šo±Þi¿ïó‰Óç¼ýƒ »Pìç–”WV×B±¶ «èØ'^+©þÇñ%k3NÖrZa.ÂëækW1^§Ž9à°Ëf«¥ézCƒ•Ë–h¢b…'-Éo7XÿGêãÑ}GÇ]˜Œp&é¯1Ú¸ Oî°³ëOŸ‹!aÜ}Y\Zñ¬¦®áU+cØW’ÀÜ>sëéä=’òáHºw+%1.*<$Àׯ˽v;¬,Lׯ#‡®$*õ§—­¸¦þ?xÙÿŠ`ù½£ØG_<—ý9À¾:´Ž®ž>ɾµÍ..û~!aÑq ×S0û™9ù…À~%Å~f¿³ß‡ÙïGìžû£îÿgÐÐç¢ÿû{9o~£ÐomF迨®ª(£äf=ôo¥ŠFߘ@_ ¡¯‚PìKHL˜Ä-Vˆ}û )¼Ì·lß¹gßác®gÎù\ ‹ŒMHN»û #+¯ˆF¯z^[ßÔÒÆj®^üÑÊÃW›ÙÚÜXWS]YVRóôQúíÔ¤øèðÐ_/ܬ{ì¶[™›ƒ^º ×|å9¿ÈÉHa½ˆdåÃk¤Þ˜Ðäˆ}‰¯¤™ä•¤¶Psɲ•†ëÍ,·Ùìv8xôø©³Þ~AÄ‘ÄÛËÎ܆³-y¦Æ¿,ÙŒV¼,+ÊŠóñØR`lWB/xy¸¹ iu#éhâmù tÚ–SyRœ˜¦>oìó°/!Ⱦ$°¯@°¯!̾ӱ˜ýÄ~,‡ýì¼ÂâÒr`¿æe}#°Ï`±;:}ÈŸ¾w8÷? Üÿ4šû¢Ÿa…>ýžî®Žv³­…D¿Ð/ÌÏÉ$ÑOÀèúûxy¡¿jÅ2@áÿ-ú¢c2•¬ûÊóhh-]®¿æ× f›9z÷ ¼s šõ>Õ¬5uÍ­L6Šý·Ð8¤úŸ±^"øâó ^i_ïˆÖvV[KS}íóªrZan­—‚üÎ{œ:~ä Ã.Н%‹âf••–ÄêC³’záØçSŸw]‘¤ 8wþ‚EZKõô×mÜ´Ùz§ý¾Ãήg<}.†„EÅ%¦Üº÷ðIv~qiÅ3ÜHÛð®œV”—•ñànZrBldXðEŸsg\ïÛ³sûs£µ«Wèj/V§Æ6}ñèFúš“úcÄ2õE±?bÊ?Nû ¥ŽŒ°¯¬¢¦®¡%À¾#fßÝÓ±%:öZfÿñÓ켂bZyEÁ~s+ƒÉnïìBì¹ÿG?bÿ#—ýÜÿÒð~ÁgðÐÿ„Bê}úÝ€>£­åUcC]Íóg•ôRŒ~ÆC@?å: 1úó••HôÆèOæ¢OücÄ}®]üÉú þPø@÷(ÎU!šbßÔÂj‡ÝÞýNÇNº{ú„„sù**¥?{ñ²áU ¢nÛ^ûø¬<öñËEoFU+‹Ñ‚«•^Z”Ÿýäá½´äÄØ(ì×iWçCŽö¶Ö›7møuþr-­ -²³$Q´b¾šudÞâÍm¼97r[ÊöTUçÜHVÛÑØ\Üܽ.†^‰‰‡e™þ83· ¤¼²N¤æ6æ°O¤†ÖG¤>ï…” »2õúµ˜ˆKxW=è°Ûf›¥gj'Ò·|©?‚ÛòK>|ìùëìÛñ²L°Ÿ|óö½À~.°_VQUý¢¶®¡©¹µ Øïèêî¡ØçæþçÑÜ~D†þŸdèÇÞÏ ý×=]l£Я‰Ð//-.ÌËôÓï¤!ô£#ÂBýD¢¿£¯ˆÑ‡?]»8|&M$Òg>ú_úÓý[ÁØÙ‡_Ý»À—´Œ<|ÿóÕ5´—ê­Z‹£ÕÖÞñó‰Óg½ýƒ.G^M¸qóÄ~n!øõ¼¶¾übƒ_¨Zùý*ö‰lE€½îæìé£ôÛ©IñÑ᡾^î'9íßc·ÝÊÜÄxí*=]m uŽ_èåáwG­küÞFæ­ñ¥þXIRZV~¶ÒÈÈÊ+¢Ñ«`W6qv%øðRŸ<ÞAýôtµ ®Ê[)‰qQá!¾žœ¡Y˜¯[½]Hj*Jü»¾x ¡I¼>vžÏøÞÉ}M±?³ÿ3ɾÒ`ìŸó¾€ØºJ±ÿ$+· ˆVF§Øoic²Ú;:»Qî÷ö½ÍýÁžÁBÿ37ô)ô{º»:ÛÙLFksS _]UQN+.ÈË~ú˜@ÿZltÄe„¾§Ç)‘èÏSR5¤¥8èãð¡Ð+€¾˜ýü±?N0ö¥fÉáØ_¤©ƒý2µÜºc×ÞG\ÜÛªÕk?Ʀ¦¦~䨉Óç."]ieçìᆋK’-$"„öxBš¬*ç£þ¿ßhJ83‡ eÖ‡dV 2ËÍLKÄG…ø¸;¡éÚ%P•ÇŽ U¹K¢ú+SýEöØ`9":0öׂÎVûÎî^öq± Éé™Ùyû5õM­í]™Ö70426>Á`±¹|H<aÑý—°î¿ZÒý¹§²èCТ?=%òy€þãÑáÁ~¥—ÐÝ _[U^Rø@?%1.¾‹£­è«ÁÐßµ‚>ОO€÷¬Y€cå{}yÙGÕç÷ð°c­ihj²¯­sGßÈÜÊ,0 ›”ž•[X*ÕV û“,ÐÖi ­Ï!½ùå•Tö_+–}aÿD¼õðV‘€Ë†½•Žzkia^VzR,.,ÐÇÃ"˜žîÍ«Ï>qô°úÁ}{1Ú -¾` L}LjHW~²aã?Û²}çÈBÒ:yæüemôï[;¸zùÁU™‘_\^ R7Hƒ 30àÌž©Ù¼‘AûˆN!ÊöQJ|LD°¿—«£Í}ISÎÍLiU.¶Ç.yî2ì/“`ÿð烰¿L\eØ×ƒ°oaß70$‡OHNƒ°_\VYSߨÒÞÙC$Séö'™l.O OMÏ Ø_Ò}…÷6Ñ‹þK‰èÏÎL‰E>—ÃbLè ôÑ($BWGk“ú™é)‰±Ñ‘¡A~ôÍ•B ý ïô•Éþê9ÚzÒÖ«7nëšZØ:¹y„DâR3rò‹+j`‚Qú·2Ù<•½õ××Ù—ŠëÓÙi‘€ÇfBë£dKŽöótq°67Ò¿££ {«&â­;·"ŸÙi I}9Õ_& PCV•¿ÒøF2 MÌB#ñ‰i™¹%Ò¦{2É₦œM Œðíª/KìÕ?~ž3Ɔúi½„N ú•²¢ôõp¶·’FvRKSãº`Õ—5åŠÅ®úJ°¿¸«U¾™¥½³„ýp>>9-ãa.À~Eu]cK[g7±—Jï}üd’ÉâðøB‘xzI÷ç9UE…>}±PÀã²ôÇÇFô©dROW{kS}MeYqA^vfzrBltDh Ÿ·»‹}Ãw‡þ‡‹úXÙG¶»ë?ݸ ŒÝ»%ƒ½õðVskO¿ ðè¸äô‡yEeUuMm]D2m ŒQ_†0Œ¸Î¥þ¯†ÁØŽaØèP?µ·§£µ±¦¢¤ '35âïíæhcÄõ×3§Ž£ñaòÞúÁBa_.4´*e™mÛ±{ÏÞ}’¦¼vS÷Ç{fVvÈ>ŠKÂFFEÉ`s¥*ª÷$¤ú’ž¤’º;Zj*Šós2àļݜl-L õnß@æÑuµý{AQnƒ‹™´)f ýîmØ_` „ý=s°`ßÀØÌ¾§o@Hx>>)`?¿¨´¢º¶¡¹­£›ÐK¡õÁØŸ`°8\¾@tvI÷ß;‹þ´X$äó8læä“Çc#ƒýtj/±§³½¥±Ný´ä<."$ÐÏËÝÙÁÖR诓@ÿ# ô?XÌÐÇL^öo•È>xûǾýîûKÂ,íœÜ}C£bq­âÚÑÓKíŸdq€¸NÏþíÙó†ýKÃÞ„ >1.›ñdlx€N&tµ5ÕU¡æèãîlgizOOeØaõƒûöîÙ½cÛç›7!â:a Ný 3¸)×AÔ—E¦©"»¬­ƒ¥«§_pDL|JFv~qyuCK{7‰Ú7crx˜Ä $(OLaMBñ¹,40"XYQÞÃÉqÑáAÈ:2Öÿá–öåógNjž<zr÷Ž­ 10>ÆÌ#¹Èås—Çþ‡Š±¿Iöuö ì;¹yú‡EÅÄ%¥>ÈÊyTXR^UÛÐÔÚÑE ‘i}C#cã &›ËES@÷!ì«®ûÿoÿîEvfJ,ð¹@tx°ŸFé%tw´57ÖUW”åç>ÌHKŽÇãÂC}!èÛXšèßRýÍóCÑS_Nöá` ‚0‰¸T?|ôø©³®\¿}×Àä¾£«—?̰ÙÃê›Û»‰ú 0W&›'1×ræªHö_c(†¨ë‹çÏ Ùð8ˆºRHÝíÍõÕåŲ$Ç#³·67Ò¿££}éûï¾=väkµý_JÍUŽa F}lSÊEåÖí»À<:Í#41C [G7ï€H|b*Ô“• '; ½´~°Ž&Á:ФëHy`JóÂŽ£ÎÖÆÚÊ’‚ÜÌ´ÄØ¨P¤&Íîý¨{óØ!8°í[u4·'¨(37GöQì„Áþ†y°¯ cßÚÞÉÕÓÇ?8,2&.1%Á~eM}SK{g‘L¥÷ú?Édqx|¡H °êþß—t_zª‹>} úS"¡€Çe³ãc#C}4 -‰ÐÕÑÚÜP[…@ÿAjR<>*<$À×ËÍÙÞÆÒ @ÿŽêÐ_ñ¾@ÿ Ù_3 ¼èùËvH6×KÚ:wôÌ­ì=|ƒÂp±IéYy…¥•uMm2 1 1 ®?AêúËüêú†ìÃî:‡b­5%9™© øÈ/7G›û&wo]¿‚ªë ®»¶oE ¶vÍ*bà .ÃäU¹,±O7Èõä‰Óç.^Eב³‡O`.¬¬ -ÖE$Ó@M2Ø\IM¾u)ØFÏ‘mÄcÃ-IÇ´dFJ|LD°¿—+’×íëW.œ=u\nIjRØ¢Wý9²ÿ_`ÿ®‘©…µ“«‡PhdtlBJzfv^AqYeM]cK[g7±—BC°?Á`±¹|P tÿé’îËÝ;‹þ´X$äó8,&}út*™ÔÓÕÞÚT_[U^Rø(' @?.&*,8ÀÇÓÍÉÞÆÂÌØ@‚þ¥ógUƒþò÷ú¿Ãü2†!æ -dÿ³-Ûv~ñç½ûÕÔ »¡«ghja넨kBjFN~IEMCKG‰Ú78:>Áäð€ú*QLÆ~B0Æe3žŒ ÐÈ„®¶¦ºªÒ¼¬´¤Ø¨0à®Nv–¦÷ôto\½xîÔ )Ŷ~¾P½L]—-˜ìËSîI À hÁ}¹_íkÍc’š46·vpñô ŽˆÆŽ#Êkä%kÉŸçoIŒêcJrfJÈç²$quJâJOŠÃ…ùz¸Ø[I·ÑI-MCØ–„òZõ>©¾bì¯À`rì_¼a_ßÈô¾•£‹‡·_Ph.6!9-ãan~QiEu]CsÛد§(ï4€ãÞÜxç˜ñ“¹nA¢‰ÆŠ€ T‰-‚HコôÞ{ï½—¥ÃÒaYvY–¥ww)¢—1‰õ’™ËéÌÝï÷¾ûî¾Ë.JŒLnÀýžß»ŸçûôôQ¨tst|rzv~µøór»°ÿóBÿ;úÿ|°z ý¹™©‰±‘á!Ú¹·»ƒÔÒXWSYVR˜›•ž’àëåáêdgma‚ ¯ÐW~ú»9èïÜ&èó.^øØ)€Øþƒ¢G@ì‹KJË*žW¹¢ª¡­ghjeç싈MLËÎ/©¨©oiGÛÆ>Ö®Ož=ç¨ÿ¢Ø+áêsCÔñüécû«+KH¼2±x­(ÉÏNKŠöóÂSŒ“?súÔ‰/}ö©È^»âÛDõ±ñÖ$î8óR󺮡­ohfmïr×'lÉ”ŒÜ²ªÚ&Rgo?12>=·€ÜF€úÀƒ7ŒkÝi=Ó‚§sˆÚßÓÑÊ;Â}®ÖæFè’TV’;#uêÄqd\ûÀ¸ÖÜFÛ õwcÿwc_åòµë7 ûÆfV¶.îÿ ÐȘø¤T”ý*b}Sk[gw_ÿÀàÐ0šû ,öÈý‡ÜܶÑÜÿµ]ÞÔ?úë…þ‹µ¡¿Èº7? CŸÉ S)äž®vRsC-@¿¸ 7+-9!6*,8À×ÓÃÕÑÎÚ ¯{SAÿœÂ{ôùÂcÿîE;piWðá#íª®¥k`laãèFð -‹NHÉÌ-*«®ƒŒQ c ^ÙK÷7¯±Ö+pìþ:62Dã8VZ˜“‘àíáboef¨§­¡zEW þáCxEC^<"ò†ïúýøR'o^‹¿ [òèq1q)îmdlŽŽ+<&!5+¯¸¼¦¾¹ ]’“3óÜ%¹Óèµ—Ø‘£Ãô>¸#k°âïåálgeŠMKQVZR¤>rýõOè’ü`7߸¶xêïdçØ—‘UPº€°¯¥£Ø·´upv#xû…FDÇ%¥fdç–”Wë[HݽäÙ¹½¸¼Üµr_(ú¯ ý‡ ô—جú“ã ô©ý}=m­MõµÕ¥Eù9™iÉñ1‘aÁþ>žî.ŽvVæ&wôñ蟖@/ý]Û }|ìããž—1Å _]½®¡£o„Ä«w@hd\rzNAi%±±µ£›L¥3Ç€c¬ÅᎽ6ö…A67=1ʤôvµ5×U—åe¦&D‡ù‚zµõª£©võ« Šr2ˆc‡cˆúà%…Æë;ÿ–ä뀲$OaKòæ­;&–vNî^þÁ±IiÙ%•Ć–vtZS³ó¬¥dG>~óŽÄ§>L}Ί\f/€a0h”ÞNRwXáA¾žn޶Æ·´ÐËèìi ä2âíHlZÜÓhë«¿.û»…±ÿ9ƾ<}#3K{g·»^~!áQq‰)éY¹Åe•5u ͤö®2…Jg0GÇ'§gñ¹ÿí†r˳/`þ«7†þêÊò"„þÌÔÄØÈ06ÐßÛÝÑÖÒXO¬*/)ÌËÎHMЉ ò÷&¸»8ØZ™ÿô·ú8Åp±¿‡¯ÛwðÐáÏ¿øÇI é³ -ç/^V½8fëäî铘š•Õ+e1:1=w½|ªÿýðq£êÿ$ >öòxÉõd¡d«+‹,¯c _É0_‰H¾&ÆFûyº;ÙZ˜ )Ÿ“?#uJìøÑ#ŸŠ€zý3®^yŽmŽúp\pI‚q+œÓèðgÇ8ÓR¹¢ª¡­ghf…îȨ¸äŒœÂ²ªÚFRgO?mhd|zŽw½fXBÔGgõìéãïY-YM1‡¨dx+Áa”ŽFw]ì­ÍŒôu4¯£+RJK7,ðÝïØ‘[úƒÇÔ+ö¯ªªkBöM-lì\ïzù‡GÅ&$§eæ•VT×Ö7µ¶uv÷õS‡†aîÏÌ¡¹¿úàá7ü¹ÿ£Üßì ý—‚¡ÏAú³Ó“ã£LJ!÷tµ“šëj*ËôSã¢#Bý¼ nζ–fÆwôt´n\¿vY /ûô?À¡¿}RÝØ‡Žz݇իÔ9%åK×Ô4uo›Û8¸|ââS2r!dMdS³ ,dh¾âb÷AsŸ}w^ìƒ×æôë{avj|dˆÖ%«­B%‹’y8Û[™êißP½¢r^Ÿ¯²È€ú¿ß$õ…N ìHDýýE᎗D/#5MÛFȰ|ƒÂ¢R3óŠÊ«9+rY‘‹ËÂ#ÁÔ•À]4<8Ðî¢úšŠâü¬´Ä°!½Üì,MïèÝäÌJZâ$<ŒDRÿ“½kRväÿå§þÙ?)!%s°ñd_ûÖmCS k;GWOŸ€à°È˜xÀ~N~QIy±¾±¥­£»—<@Ãr~µ¸´"û?ðåþKœû[š}aèãCÿGþÐÿ†úshè Rûûz:Û[›j«+ÊŠ r³ÒSc£ÂC}½îº9ÙÛXš`è_x¾ð>ö9õº|ûíý¨ÿwÙ2iYE,_M­ì=¼ýC"c“Ò³ J*ˆ -íÝäúðØäÌõñ—2,Ñ#G‹)NùÒ×êZ· L,8‡QlbZv>6+*‰Ìjie•·!!ëªO}8*xñ/H­UUU<•/ÁÕÑÆÜø¶®–ÚµKÊJð.B6$øöAꯙնIý|ìÿ–Çþ®õØ?†±¯xžÇ¾‰¹•£‹;ÁÇ?(4"&>)5#;¯°¤¬²¦®±™ÔÞÕÓG¹?:sámsÿ×&úÝÿ„£ ýBei‘µ0Bb „>m€ÜÛÝÑÖÒTO¬ª(-ÊÏÉLKNˆ ðõòpu²·¶0…èkª«^è+)ÈÊœ–?ñå{ôù¸?2n¾î;p‰}‰ÓgåÏ]¼ŒIæèæéÃé×:Я½”AÒ¯ìeû¾ýþ ø²õq”­«þ8ê¿xöô1x퇫+‹¬ù™É±aú@_w{ 7`Ãý<Ýœl-Œ tµÔ!erg¤ÄÅŽ="*²<èa¿î&Ù»ž:,¸"¡€ ä0âÎJnÈÜ —œžSXZUÛØÚÁ½‹Øœ»ˆ;*Á)L}Þ¤`ês&ŤSÉ`R ÄÊ’‚ìô¤¸Èô,23Ô×Ö@¤Œ¤¸Ø`T9£‚wÑnÞ]´]RÇ[±JJú¬dÿÊ×j7uõï›[Ù:8»¼ýC"¢ãSÒ³r ŠË*ªkšZÛ:»ûúhCÃ#cS ÷ïqsÿîo3ö×¢ÿ’ƒþ¿aʬú ô'ÇG™ŒA*…ÜÓÕNjn¬«©,/)ÌËÎHMЉ ò÷ñôpq´³¶01¼}K¢éâ%y}±÷è¯ýý†²õ1ɰ~—’‘ûûõáTÕ™p8»³º3™L"›5qQ‚Á@è½wÞ›ôK/—ré½÷Þ{ï½÷^¤#6DLLVEÑÕ1;³Ùï;ç–s/KFfwÅó'¼çœçý½RrJªº†¦–vŽnxBPxtBjf…²éùEHØmJÀ"–Ñ,åõ“Þ=±`ŸÑìâüôÄÈ@OGK}uYbY(°Ìgca¢¯­®¢ #!*ȇ X -eG¤ú¤ÃPÙÌ,¬à.â†w•:*/¿ ð˜ÄÔ¬üb¸ ;1 r}ƒö,Ú/õ1ƒzIÔãGh®¢±¡¾®¶¦ÚÊ’‚lò~ÄY›ëkÁII‚IqƒI±²Ï"ðéSÿèáJýhÙÿËþì3¢ìGf_^‰Ì¾-ÎÉÍÓ››œ–™“_TZQ]ÛÐÜÖÑÝ;04:>93wiqùò•«HîßÙ“ûO‘ÜGÙyاƒþo(ú/ úT¡ÿ 9ôoÐÿñ‡•¥…ùÙ©‰±áÁ¾žÎö–ÆúšÊ²â‚ܬô”ĸèˆ@?¼»³ƒ}Yi Qa>îèÓy(êcb|ù ŸCʉ”ñ VßÄÂçâé—œ‘SXZU×ÔÞÝ?<65·°|eõËöìï˜Ø§Âì)Àì!³%€Ùè`ogkcMEq~VjBLxïæhk‰¬¢¬”˜?7ç¹³dËŽ}^èÇHÀAßå»|t7$qTØ)-¯¬¦©gdn…žE‘±Ié9¥•è¤ÆÁ¤VÀ¤ÖÖ7·^³é¦þ‹çðï ^Kó3#ƒ½- 5åÅyÄAy¹9ÚYšêj"W‘°/¼ŠÀ~DRÿop?äYô?ý¼5ûœÜ¼üB"â’2òJ*jÚz†&æ–68'W/_ÿà°È˜ø¤ÔŒì¼Â’òªÚú¦Öö®žþÁ‘±‰éYšÜ߯äþÚÜßÙ%ú0ôŸ¢¡ÿ ýŸ`èßABÿ*ús3“ã£C}ÝmÍ uÕ¥Eù9™iÉ ±Qá!oO7g[+ S#}Mõó}) Q!}ö³ßœyôÃ/°OìÀ=þ%8rYΰ±spñ -ŠH@Ë´˜ܽý‚#bÓ²óK*j@ÁöŽNÎ\Z{óöÆ]$öšA,Ã`FG}ŠfPýÝÇ;@ýû÷¶6××n¬^YY˜›B¶®²I؈`ow'{+3#2f<³ÓÌŒ_SìAXF5*tA³ˆ9‹˜N‘'%£ ¢®­oŒìG_°ãS2r‹Êªë©®¢Ûwhµw=ÒUŸ2§Ÿ±sîïno®«*+ÌÍHGQ8Šl.šh_8¯(+IZ`Pp=~¿}lê.õßýö¹xù!ûrŠûÆf–6öŽ.îxÿ Ðˆè¸Ä”ô¬Ü‚â²ÊšºÆ–¶Îî¾áÑñ©½¹ÿÌ}È>mî#ìÿëýeŸ.ú/ôI¡ÿúÛ´¡?=162ØßÛÕÞÚT_[U^R˜Ÿ“‘š@ðòpuÂÙZ™›"è+ÉËJ‰ôy¹¿ÿ¢ÏÂÌtò«èclìCõ©-#,¿°˜”œ’ª†Ž¡éE[GWýÇ;}bèߥ ý©ñÑᾞζ–ƺšÊ²â‚¼ìŒ”ĸèˆÐ _/G{K€¾ž¶†šŠ’¼Œ¤¸ˆ?/7çôé?Ô±”ûŸ~Æ€bÆ 1ãàæ•$%¬5ÎÅÃ' $2.9=§ ´²®©­«ohljvaùÊê[ë[4šíiØß1±OÅÙSÀ±DΖ.ÍLŽöv¶6Ô”çe¦&D‡ð®¶ au†âãædgc…š}yœ¨À쯠>í~¤#óéoÎ"ëQ\ZNIMS×ÈÌÊEþà(JJË.(©¬%ÎinaÌim}sëÞý_ÿñpçñ~Û‘nê¿xþŒ²7IËqf,ÇŽ–†êò"tLA¼›£­¥©¡®†ª’œù&:ÅHÞŽŸ|ŒÎéÈáKý7aŸeÿkÀþiÀþ9À>Ÿ °˜„´¬‚²ªº¦Ž¾‘©…•-ÎÙÍÓ›Ÿ”š‘WXR^YSßÔÒÞÙÓ78<:AÎýk×o®Ü¿‹æ>Ê>Ìýgàå?ïÙúÿ?>‚>ú÷1¡¿J -ýɱ‘!ú­Í µÕ¥Eù9Yé) ±Qá!~>xwG;ë‹fƺZÔTåˆès‘Ðg$¡l_ôÿ|¨Ð§)Xf0a‘Øg:uÆ>¯€ˆ¸´¼2Y3/¿àð˜Ä´¬|JÃÎ\Zº bÿö»Û0öú»ˆfÎè¨Oñ ª¿ûxQksýÖÕ+Ë ³Sc bÛk+Kò³ÓAÄúy¹;ÙYšêjBÎÄ„ùy8Ïe=Í̈4,¶aß±fô| EpN\`Np;j‘·chT\rFnaYU}s;¸‰ÆÁMt¹‰ˆcÚ¡Œ‰f9ÒUŸfJk`J+ sSãÃýÝíMuU¥…9à$Š'‘§ ÎÆÂD_›²Á˜X˜OÇôé'ôn¢CóÑ¿ ûL§ö9¾çá•’UP:Ù741·´Å9¹zxùú…FDÇ%¦¤gå—UT×54·ut÷ ŒÓäþmýÿ¶×ïäyú»OHè“CíæõkäП¡ßÞÒT_SU^RB?5)>&2,8€àíéæì@F_UYQNZRLDŸçú¯x° KŽ}T³/N€Ô9 bŸ“‡_HLJVñüÓ‹¶®ž¾aQñ)¹EeÕõÍgs‹o±”Ïãªbo\ûqeq~ñ¬ñ,xàãálomn¬§¥®,/-!"ÀK±à½’ÕDZOç(< Ûñ$Ë6v.xÁ1i˜À1á aÑ ©™yÅå5 -¤åøÃÕë·noÜ}ÝIôoì0È¢G€úÛä‹h½ˆk+Ýv£·»“½•¹‘ž¦qJ\ìlgN1„SBO¢ÓÿÉóGØçæ—’‘WRQÓÐÖƒìÛØ;º¸ã}üC£b’Ó2sò‹JÊ«jaîwõôÑÉý{ ÷)ì?EØñ³¿?úÏÁ÷ü ý4ô¾·½µ¹Cÿ:%ôÇG†z»;Úšêª+ÊŠ rAè'ÆEG„ùûzy¸:ál­,Lôu4ÕÏ++ÈJKˆ òAô¿ecEÑ?Aý#‡ýþD¥6öÿþʼn¯0œ‘"ÖÜÚÞÙÃÛ?$26)=» ô?ì—÷WTgÆóî1UÑH,tEQiC—.EÞ{ï½w)R)JÞA:‹ˆÒņA˜)€&¨ÑÝìž³»Ù}ß{g†”s¢''Á÷Oxî÷~žÏSQs£¥£«wàÞÈÄȳùâûxö?:Ùßh³ÓS&LJûº;Ûšê«Ê®_ËJONˆ‰öóru°A,ö,°X1„gÜ(ÏXvƒËDb?XP("˜vÒÇÄÉ ËQ–£’ª†¶‰¥­“»7˜Dq`åä—×4ÐR݈…ÝSÚ¼™ªþ?ù;C5Â@52„”B -ñ÷rs´±0Ñצ."ÇxÁ":t€•¾wÐ.›]ýV±ÏºÿÀ!6ˆ}ÞcÇö…EÅ%ed”TÔ5µt ŒÍ,mì\=¼ýC£b.&&§fdæ\º_QUÛÐØÒu¿ê>À>Ôýg3Ø9 ûDyè>ûðþñgÆþV ˆþóå%2‘°¸^ôn÷Üêìhm¾QWSYVr=?7ëJZJR|셈РO7g[+sC=}UeE¹3R!“'ôy¸ÀÉèïûýu^ö!ÎöáÕƒ£{ˆ‹‡—_@#!#¯¤ª©ƒðÌÍ; $261%#{Íb‡Ç&MMÏÎá ¤¥•?½|õó„gt@cBý5¢ý§ÞëW«€údâÂ<ÔØ#wz»:PÍàíædKš¸¨à©ÇŽps‚FgýŽb±;?ÿœÆ³õ=™–#˜Dú ))«iêš"ݺñRÚÕÜÂ’ÊÚÆÖ¿Ýº}ghìþéé~‘Ò[æ!1¥>CF‹óØ™ž<œ½7Ñ †Aäébomf¤w^ý¬¬FAPG@5Ò…´Qõ·ÕÙoû{hØç> °Ïê´°¨˜¤´¬¼’Šš†–®¾‘©…µ£‹»—o@pXdt\Â¥ËéW³î—”WÖÔßh^Óý±‰É‡P÷gfqóøE‰¼°ÿ#øþ¯¡î3Çþ¯k¿Ëúmú@ô—ÑŸÃÎBчЇ¢ßE¿½¥±¡¶º¢´¨ðZNfFjrâبð@?oW'{K3cC=mMuUe9)qŒˆ úTè³ Ðÿ’ý¿lk诓ýŒ<;ÈN³X)YE•sZzÆæ6®ž~ÁÑñÉi™y…¥•u Þ45 Øwh,Ã%¬÷ØUè±€h8H´û£CwP¢U”ä^MMºx!,ÐÇÃÙÎÊÔPGSMY^F#$Àχh,ÐX¦@û@1­K‰Ö\È"“D‘ž‘¹5RL|rzVÞõ²ªú¦¶Îî¾Ááq´$ ú?Aôf“Aô+}D›ì!ØŒ“ã#wû{n¶77TS›1*4ÀÇÝÉÎÒÔÍH# 3:ÌÅqˆ6ˆ¾ú©Æ¿nWÕÿlSìƒ/û#öÁâå¤b_HTLBúŒ¼âYµsçuô MÌ­lœÝ<}üƒB#.ÄÆ'¥¤]º_X\ZQ]ÛÐt¿ ÑýáQ û îÏbçð "yibÕýuØÿ#öojÿÆ÷Nè¿E¡Ee™L¢?ÃÎÑüprbl„Nôëk*Ëèçe_M¿|)!.:2,8À×ËÝÅÑÎÚÂÔØ@WKC]EIAVFR\T@ÿø1^úö³~‚>“ÇÔb¿Ùµ{7Ðt ͬìœ=|Ã.Ä%¥^Í)(®¨ihéèê¸;2þàñÓgØùmí-s¢­ÝS¤ê“ø¹Ùé©G“cÃ}ÝmMuU¥×ó2Ó“ã£Ãƒý<]¨{FRLø4ðXz¢¡ÔßñQ©OYDhH€ -h5Š Õ¨­olaëèæíODùEåÕ ÍíHF”ŒˆHF›7#SÕ§#Ñ"#º?6DQVzrBLD°¿—«£…±¾ö9EÚÍU/hF¦m·»ÿŒŽú›bï>ÖïöÙ!öòØÁHH‘STV=§©­ghlficïäêáís11ê~^AQIyUM}cs[ÇÍ[=}ƒC#P÷OÝÇâæ‰¤¥å•í€ý-@By‰L$,àçpPôŸ@ÑFD¿ ˆ~ý²b(úWÒR’âc/D„ùûxº9;ØZ™›éëœ×P;«$/+-)&*|ú?€þan.6ú{X>Aý[ã htËÎÅÃËÇ/ $*!#§¤ª¡m`B#Z Úµ¢²jà±7{€ÇŽ¡‹'–V^€õJñX:¤­1¦Á+xóúå*Y2EdPE¶¾º¼èZvFJBldˆ¿—‚4-€4Y)qÁSÇáæ`;¨¿‡Îc?(õéCb¨FtñêS3ÒÔ10µ´svÍ…6cIEíú=„_$ˆV_ÁùÝ×GÄ”úhB¯„ÀÂÂ941zo ÷VG u]s(È×ÃÅ£.RŒRb"H1ˆàڽ뛴‡þhoKØÿŽŠ}ž#û'E0âR2r -Ê*êšZºƦÖvŽ.î^¾Áa‘Ñqˆîgåæ—UT×54µBÝ¿ÝçªûOžN?›ÅÍã $òòÊóL°ÿïõØÿ½Áý›Ão -ý•å%€þüv@ý¡Á¾ž[7;ÚšëkªÊKŠ - è§&'^Œ‰ - ôóöpu²·±431ÔÓ>Nõ¬¢Üi 1!*ô9?Aÿ]Qc)Dûv B46NÕÒ32·vpñô ŽONËÌ+,­¬kl¥GÚü"‘ 4æ"Ëp Œ& àÅ -dŽÆ´.À´šŠâ‚œ+—“â¢B|Üì,M t4T•ä¤%D…P‘e‚4äË~hêÓ "}3 -cÀRFöµ½‹§oˆè5¢¶ÎîÅøšRŒæ=õ7®!@}¥'LJÑ^l½˜Ÿq91$äíîdkij £©¦,/#àçãåáb§Í¡¯¿\+ÆmLý-cÿÁCìœ\Tì ‹ŠKJËÊ+©¨ihé虚[Ù:8»yúø…F ºŸš‘ u¿´¼ª–¢û½}w©ºÿóYì~@$/ìÿ¸öÿû§Àþ{¡ÿ@ÿùÊ2™D\\˜Çag¦ŸRDÿÞþÛÝ]í­M uˆèççfAÑOˆ‹Ž ðõrwq´³¶036ÐÕÖTWQV“‘Lj œ<ÁwBŸíàïY ²|‚>“·Ácw~O~÷ˆ46®ÃGŸ< ‘&¯¬¦©khjeçìAÙ+9Å5 -]½wGÆ<~ú ;·@ /?×üúç·Ì™¶vkPûj¯^ê/‘xÜìôÔ£ûcCwúº;[ë*K s3ӀɆ#&kef¨‹0M#Le þ^–]ß~‘eÒŒ_S÷7‘ˆ¥Ím\½üC"bRÒ³Ð9Ô~³§cB›õ"#õék‘Ð"- AP[c]Uéõ¼¬ôäø˜ˆ`?/WsÊ’„½~¤×bœCÛñò߇}È}€ý}ö9¸xóþŸýúpŠúL8~Î]Ì%¹XéUš´…eé½÷ÎÒ¤ "¨XE)RDTQzï½÷&½(v:v=u.‰qîÎÜû¾[ø-»ÄÌ 3NÐߟð컟çû‹ŠKHáää”U5´tõLÍ­l‰Ž.nžÞ¾þ‡Ž Ü‰K<s?#+· ¨´ä~SK{gwÊ}Èþ½3sóˆýga¨ÿи´07; BÿÖMúý=]­Í0ôK -ór`è_L&…þ‰£Aöûùìqßíä`gmafl §­©¦¢HÀã¤ú‚üô™—Ñÿfuô?Ç·¿iß}C–™„,¿°˜¤Œœ‚²º¶¾±¹5ÑÙÝË/0(8,2&!™lZ]S;}ɾ&—,µ+bÿ¿XÕàK€ï¤ìÚ”­«*+ÌÍH¨ÅPQ³³23ÔÕTU’—•Ú%ºS€—›¶dW˜¶&3¢Ž²P$`Ï!9Âò„¼ý‡œŒŒM<ù*u/^Ã\C¯H×ú«¯}ÚùÀcÎC3Ôc¨C%ùÙ×R/œk1¬E´Má€åqh@|Üœì¬ÛW\Ck8¡?ç·ã>ûäÜì³°íàýÃGf_FV^AIU]SGßÐÄÜÒÆÞÁÙÕÃkï¾”û§"£ÏÀÜ¿œr?æ~M]cs[GW/ÈýÑñÉ›·îögç—=¦cÿ×õÅ> úÿ¡Cÿ5@ÿå‹çOŸRö5eû‡F'§îÜŸ™[|øäÙ ð–ß¼ý˜úÖàkøíÿW/Ÿ?}¼´0 [v|x ·³µ±–Ò²gNŸ -=r`Ÿ‡‹PÍ@‡¬š°?; 3ÓVlÊ®jŒö"º†ÈkQ -'¯¨ª©khjeçˆÖâ±áÑñç.^ÉÈ-„ÇP8†FÁ1túãó¡UŸ´éÆ3}ïöÍñ‘¾®¶¦ºÊÒœŒ+ÏÅGSo!{+3#=-5e‚,i+òp’ç³éKêc¿ì“~`xð‚ßø[ -ûÛ¶³°ö¹xøøûÒ89‚¢²š†–®¾‘©¹•­½£‹›'Ìýƒ‡…¢ÜOH‚¹Ÿr¿¨¤¼ª¦¾±¥­³»ïúàðØÄ©Û«°ÿËúbú”wL‡þÒâü,ý‘¡þž®öÖæ†ºêŠ²â‚¼lú—. Ð8y<†¾ŸÏ÷ÝND;k 3c=mMu%^VFr—˜ÈN!>nN€> @+ -ý/è3ú6Р¶q9e·‘SVPXLBFNAY][ßØÜšèìî哜’–™[DQm¨vozŽÒ²oVmÙßèbŸAÌBÖ&FkU$Ö’â£Ã=´¯§«£¥©¡®¦ª"'ZV€Ò²›)-»–ª1\‹LP}Nn>t À1¤gdfmïìFšO$˜Ï¥«™yEåÕõh+Ž¡­8¿ø©¿ú-„AÕS-űap -µ6ÔP—bXŠý}|4˜OÍ÷ÿùѾbR꿃ù':ô§ïôoLŒ ^ïëîloiª¯­*/-ÊÏÉJ‡¡Ÿ”€B?ôØáƒ0ô=Ý\ím­ÌM tµ5Ô” xœ4B_Ÿ‡‹“}+@Ÿi+Bÿ»/è3ü¥ì?¾ß¼… ¨ÏNVMJV^I ´¬™•jÙ£Çãã’.¦¦ç”TÖ6¶vö ߸u÷ÁìüÒ#¨þ¯ß®ÆÝ‹ wmq~æþ©ÉÑ¡þîöæúê²¢¼Ì´”䄘ˆ°à _/jÌ*ÉËbYÛ -YCêo\{õI&Àc;>ìV´°!ºxxƒ[(ÜBgÁ-”_RQƒÏÂi)Âñ0^Štê“wâ¿à_NìD8 ÊtÊÁt®^JNŒ 9èçíîB´±0Ö×V'B"Büp)²`—"íx>߷ψý¿QØÿÃþv2û|döeñ%5Mm=cS k[¢È}o_”ûaá§aîŸOIMKÏÊ-(*­¨ªmhjmïêéìß¼ÙŸcÀþ»wë&öW¤>BÿW*ú¯y·ŒþÝÛSýáÁë½ÝmÍu5•e%…yÙ™×®ÀÐB¡t`? }Wg;K3C}-uU%y9œ´„¸¨° ?/BýoÁ{ÿ‚>ý·N5RËn…-ËÁÍ+ $".‰Ã+ªhè˜XØ:¸xøYK¬eå—×4 ˜]³o?¦þ¬úï~ϼ†—ÏŸÒÔl ¨Ùâü¬k—Ï'Æž> \Û‡\3‡®)ä¤%Ä„ùx8ÙÙX˜™¶l¦Æìš©Ïp+‚[ˆ ÝB¼üp<2x4K[ÇÝž{ý‚¥E^Š¥•t§Ð Ì)ôþý*©ÿú!ý[àp~„Ãyüpa^Bã#˜K(å\|tĉc‡|÷,ïD‚,ýtÖüú“«±ÿ5•}°àû,l;88¹yøwŠˆí’”ÆÉ•Õ4´tõLÌ­lì]=¼Pî 9rÿl2ÌýÌœüÂ’òÊšú¦–öΞ¾¡Èþ,û¯ û@ýŸHð~]Ä>í#þ7ýŸWC|tx°¿·«£µ¹¡¶º¢´¸ 7+ãjjÊyú§ÃÃPèûûzƒÐw"ÚZ[˜èikª«(ð²2R}>^n€>+ ó -ô72FÿS?½OúѰ¶q™µm0f¹xøaÌJËPÌš[Û;»yù‡EÄ$$§¤eæ•UÕ5·ÓºöœÞ5LÍÒ½ JÎ2€­·«­±¶²´ '=õBR\Ô©Ðÿ±_Þ_Qfw?»&Ñ]][¢0à CQY¤×¡÷Þ{PP"é½÷Þ¤HEĶºTTDݵM4É1žÜ{ßaú˜=gùEÂýž÷û~žÏsôÐ~/Wsc}mušÍ‚އ\6KçúÆüûr¢>c)Â)$%§¨J›B¾‡ˆŠKJË.(étõŽ\Ÿ¼ -;q–Ú‰oÞq[BlªÏ<„^Ì3VâpOGKCuyQ^f* '…ãhcab £¡ª('…–‰a Q;‘šÎ -õÿ7ö‘îCìóàð¢‰,,Št_JFNAIUMC[×ÀÈÔÂÊÖÞÉÕê~àá`¤ûq‰)P÷ KÊ«jê›ZÛ;{z†GFÇ&®LqÀ>Uö±õ· dŸ]õ!ô?P¡ÿ†ú3Ó“—.ž?7Øw¶«£­¹¡®º¢´¸ 7+=‰þ‰Ð£Pô÷y{º9;ÚY[šêéhªS”åe¥$%Äwlà'ðáxy¶0@ÿ; úÆ4ƒþŠèÃÇQf†©OàD\“–S¢`\stóÚwÚì)šÍžéé¾péòôµ›·ï>§ ©ÿú-¼c´Y¹Ê>ÙÞ¿{ȶ0ÿäñ콟º~urüâÈ`og[Sm%]gøîqs²µdøÖKm³JN¡Í€ú0aQЉÒòJM]C3+{go¿À#!áÑñ)9…eUÔ%4615¹ÿpîé< -ç[8ìªÏ5›û?ÿtcfrfÓÕÞ\WUZ˜“ž†Bæp©(È`•H"òá€ÿÐ+‘y ýŸŸ?ö¿eÃ>Òý›ÀçÞÊËç#ò“ÈB"û»¥eåU(êZ:ú†&f–6vŽ.@÷÷ù ÝŒ>u?+· ¸¬²º®±¥½³»w`häÂØ8 ûÁ¿2ÿüÅË_~}ó–ŠýH“þýÕË>‹Ö!¯ûÈýW/èÐ¿Ž ?z~x°¯§«£µ©¾¶ª¼¤(?'3-%1‰~ðá@(ú®Nö¶V¦FºÚjªJ -r2R’»vBè“IDÇ»@d>ú«WÓEúô·xó«0®­^äf³DYdûN )YEum}cskϽþƒC#bR2r‹Êª©`»819uö!UgßrÕYÚQ|æì³ð"²MMŒêëno®GdKd -ôóvw¶³25ÔÕ¤(ÉKKBê b:»ê,°ýáxèé¬YÃЉØ’Ø-£—Ž',2&!53¯¨¼¦¡…¥±!ô–:„þÉ6„>fùa$1í Ylž8ÛÙÖX[AoÄß=îNv–´lvíØ&,(@ÀÃ!´qÃë–º—Åû"ö¿§aÿo[xxq|~A!Ñí;Ä%$î+*«ªkjë›ZXÛ:8»zìñAºr<" -ê~ZfN~QiÀ~sÛ™î³ýCçö¯2`áÅ+FìSeŸõùº³¹,ªþ?þåå-°ýgOèп216:2<ÐÛÓÙÞÒT_SYV\˜—q:9áTt$ý(ú.Žv6–f&†ú:Z%yYéÝ?îÚ)¶MDˆLâ'òáq<úTÑ_þ—›]»ný†M `Û%)#Áfdfeçìîí—œž]PZY×ÔÖÙ;xntüÊÕë·îÜ›}üäÙs°ZáhŨÏF6fêÓÑö msܽ}óÚôåK†û{:ZªË‹r3Sb"‚úïõ\ôYeà³ìdƒßz©ÀÆq pþ -Âa©D úJ:•_RQÛØÖyv€)›¨vïÞÿƘÍبϦú°a4 Q4S—Ç`4gZjÊ‹ò2Sc#ÃŽÚïãåêhcAÛA;·ÓwÐb#"ê£`åþ±Çûk˜±¿•‡'Hda€}¤ûr -J*jZºúF&æ–6öŽ.î^P÷9u?!ùtFv^aIyUmCs[G ûÀöoCì?~‚aÿ5x–…ìsRý˜êèÿúê%è ôvŸioi¬«®(-.ÈÍJOMŠŠ8EßÏg‡«³ƒ­µ…©±ž¶¦ºª²"} q ú"B‚$~Ž—LZ*ôײAÿÛè3>:ØVÑÁ¶¨³~A!Q1ñ¥å”(:&–¶ˆl‡!ÙÙŠ+j[é>{‡æ³¯Ñ£ÉJ“}õYd» -(´ïÀú{IÚ«T¡mm¬©(ÎÏ:{ò8@Û>„6c}muÙÝ;·‹ID>HýMÖÓ}vIÈÆ‰ú´!ÄOZÌFdcjiçä¾Ç7 èØ z#¶wõŽüþÄ•ú l=ÆfÐäÄÅ‘¡¾.8ƒÊ -s2Râ£#BúïõX,DPˆ;¶‰ˆ|8ð7УYº´\ìÃe÷ú÷!öypx>"?‰,$²M a_V^Q™¢®©£ghlfamçàìtßïÀÁ ¤û±ñI©éY¹ÅûõM­±ÿìù¤×o–‘ìsS}}(/àŽŸÓ ƒúmÍ µU¥Eù9™i)‰q1'ÃÃŽ9EßËÝÅÑÞÆÊÜÄH_WKCMEIA‰>€¾0YP€HÀãxèÓ ÿ=8õèá}ÃD6Lö×ÑÈÆì³Ææ6.ž>þƒÃ"bR3r‹Êªë[:ºû†ÎMLÍܼ}÷w í.Œv‘m³4¶ övµ5ÕU–d§%ÇE8v8Àw›“­¥é¢ÐŠ‹1 -úK‚6.ÙlÙÀFD;HZ^™¢© v½³Ç^¿À#¡Ññ)¹…ôh.O]у–2šeô¾aäþªUXÅcº°OÓý­<¼x>¿€ Ð}q I) ûªjÚºF¦æV6öN@÷÷úîGº~2&.1% b¿¬²†û·ögÍ=’÷ß[l.Ùçªúúà‡wütîÑìý»œ _^R˜—q:9áTtä‰Ð£A@Ñwsv°³¶036ÔÓÑT§(+ÊË"è‹m"“ø‰|x‚þÆ ÐÿË -ô¹?N>»ný†MHö‰d„6ye5-= mÞ~A!áÑ@hsжA¡Ÿ¼ -„öÞ,ЗxÆ@^0êÿ‹õ?3RÿãH} ¯^Ì?{øàîí›3Scç‡úº;èFŒÖÏÛÃÙÞÊ ²M ²MLTXŸ€Ôß ¨¿nI…–š ( ;‹Fb·ŒŒ¢«§Ï~Pˆ‘± ©™yÅå5 ÔteúÚ­;÷¨ûGCODFŸJHIËÌÉ/bÅþôÌ[À‘ öçÁQüÂ&ûŸ¾ZÙgTºO,ªÿž1Ð:ý;·n\›žDÐï§B¿²¬¸ 7+=5)>6*âxHðáÀý¾{½Ü] è›èjk¨©þ—ýòpªòÌâð¬nœ‰-¢Rnår)Š¢R¥wiÒÛ¥÷"EŠô.¢¢ˆЍ@A• " UŠ "Šˆfw³Æ“ݘÉì&Ùó~ßýnã‚É莫Ãû'œ÷œç÷ü@ôU•×+€èËJK1èT -Y Ï}Ìn>g‹þôgz\êÏǨ›N  Zi9y… *µô M,lX>!1 ©™¹…ÅeG+«ë8lÂØ6‰³mf£ýmšp”vê7PZÜênå¥öægoO‰ßâïåædgif¬¯­¡ª„Œ–Ég´¶½3õg -D°> dmÏr÷ &³¯¸¬¢²¦®¡ËÞþ¡,±ô -·:!-ˆú‚%hŠ]‚ž`%ˆ/K ³3’ã¢Ãƒý½\ì¬ÌŒ t4Ô”Ö¯]-Ë”¤QHb+Wˆ|±”­úï+?±Ç‹ýy|؇?_ˆa.°/&N"ShtSZv•<¡ûÚºúF˜îÛ;²\=¼ýA÷£bâ“R3û» ‹ûÇ*«x°ß"p÷Þƒ‡ž<}ö¶5@L~ä‘ýO€úÕÿ+¬à.°ÆPYŸ‚Ö=¸7Œ ›cú§«1èØ·g×ÎìÌô”ĸm‘á!Aþ>žî.N¶Ö›ÍMŒ ôt¸¢/'Ô’¤Q)$ q$ú"Ë0Ñç>Îüù¼ÌŸ[yöãcÛœmK–.Y!*N`ÛhÃÁh3²ÁhKÊW®¿p¹ùzkGwßÀ0èË“Éçܦ^ÿ0Ü„mN7$ˆnÏžŽõ‡ú{:ÛZ®656ÔÕTV”äf‚ÒF°•Ö|“ަš27‚¨Ï…ü8×hßÏd>˜ Aä¡.–‡.¾A¡¨eá-èËSgÏ_‚Á´wõ@ ‚Ÿq0ÓUÿþ4|ý -Ë7h.£÷†ú{;Ûn^ûª±áLÍÉŠÃ÷íÞ™•–äëéâhƒJ¶ºª"ŠC)¾8äÌõùßlØGY¿„Ð}1Ð} -•.)%-#·z ®ûZ:z†Æ&æ›­mœ]ܽ|‚BÂ#·Å%¦fdåäö–"ìŸbcÿf[GWoÿàð½Ñ±Ç€}°$$S3Ëþæøz³¨þ\7’:}ØãaXänè—èççîØž–œ¶%ÐÏÛÃåh‰¾‘¾®6!úò«d¥™ :B&ès¡¿Ö|úo3-Ⱦ™&É”Yµf¢ªº¶¾±™¥­£«§_PXÀmGngÎ_¥mïìíGp{»ÒrVã×·9moW;ÐíÒù3§N;|p?¢["Ð-Ð×ÃÅÁÆÂÄPWk£òy9iB]!²léÜÞƒÒ -ÉC°>p>Q¬aƒQQ×Ö32Å—œ‘·§ˆˆC(A‡ƒ‡¿£ýÊ;ŒúØÁüS  ÝéÁ;йºêÊ£¥Å…»rØièãβ·FsÑœ>—Å ?ŸV‚æn€û„bç>†ýÅöEûd*M’Á”Ý_»t_M]S[×Àh“™…•½ËÍÓÇ?pKX`?%=3'¯`/`ÿíßl»ÝÝ×?4|Îeb’Oößà²ÿïVögWýèº''ÆÞèë¾ÝÞzƒ ýr€~áîüܬŒÔ¤ø˜¨­¡Á¾^î®Îv˜èêéhiࢿfµœŒ´”$J!KôÙÌýy¼ÐÿÐKöô¸l›QÖÜ --x ‚¡´z˜Ò²<|C"bS3s ö—UTÖÔklºÚÒv»çÎÐȃ±ÇÏ8tû—Pºñí†P¼=Ÿ„xx°¯»£õzóå õ§«Ž))Ú“·##9.*,ÈÏÓÕÑ9­–ºŠâ:y9):• t[NÐmÁ‚ÿõa0 ‰Áq¸^IUÅ!»mÝŸ²=gWáÒ£'ªkÏ]ä™Ë8šËß¿{ùê5{.?ÿ,†üÔ ÃßþEØXÊKŠöægg$ÇG‡û{¹9ÙY¡¤¡¦Dt ’ØÊÜô~æòI>!Øÿ3ö!ìÃßöÅÄId -Î’–ÝWì«nÝ×7465·´¶sd¹zxû!ìGÇ&$§gfö÷s±ù««7ZÛ;{úJ—”bÊÈ!Ýß ¤‚t_ÏÀÈÄl³•­ƒ³‹»—o@pèÖ¨˜„ä´Ììö«OŸi¸ˆ°«£«çÎà]؋ǘ죃yÅ/ûÿáÙò?ðøV˜}٘С%†ÛÆÜelôÞðàÞ®Ž[-ך¯ôk èäåd¦§$ÆFG„m ôóöpe9ÚY[š›êƒèoTè+€èËJK1è4 -™¢Ïþ"ô?›ƒþ[õèÆvÚuJªêÈi-m]=ý‚¢â’ÒwäíÙèȱ/O= á­«wÖøoßÏ€·ß„ôÀi|êïél»y­©±¡®¦²¢¬x_Anfj¶ˆowg{k$µšjÊ„Ô"¼q¥–ÀÛ»|·°¹pÒÎ :®¡Éfß ÐÈØ¤ô¬»÷:Œ¥ùzk{W6< ¿ÃÃðÍOBÂOõù²pŠ7 ±©´\mj¡ µiY¸ÔVÖÔ546]miëìéy06>*ë‹—luá3n_åÙêÃn`Ôþô aµ­×›y­6-1624Ð×ÃÅÁ†Ÿo‚o꿳ì é@p÷Ë–õÑXP*ª¨kÃXð0 ŠKÎÈÎßSTR~¼ê4VnhbŸ -:möeóO…Ÿúì¡üô†òýÔ?õ‘$=¼?<Ø×ÝÐ…úÚªå%Ѐ²Ù ÈÛÍÙÎ -e¡†š‘…$±•+¸Yø~*Ð'ûø°?À>Î}„ýEûÀ}„}q 2…º/-#·šÐ}-=CcSsK;GŽýðȘø$ûEËÊŸ¬©­?ߨôõÙ/ï¯*¯, /ÍšùA±ÎŠ(pá‚t¤]àÒ«ôŽ4EPT+ˆA©Ò{浪¨H·ÅÞQ“q9š¸2É$ã“™}Î÷}÷~·©™°–ã„ó'¼gïg?C£ °/S²ÿ†ô$Žð®Ìgñh6÷Ž«ú?rTÿëg“0Åwn~uubl–»·«½¥±®ª¼¸€‚þ>€~@ÝšUþ>^î.Nö+¬-ÍLŒ8¢¯¤°TŽ)Ã’X²˜&úbXô¡?cú"ž¼q¥–Á”SPVÓÐÖ341·¶sr÷ö Þ¹3ú@Üñ“éÙù%•µmˆoC£—I¾=ÿ+âïEX-g:hZ‹•àŽÖ>}B\gkcMEq^VZRÂáý{wDl - Zåëéê`kiÊÖ×Y®®¢(/+-%Ô_HYí”ð7¾cˆ+†–®ª@NnÊ:*•äôìH¥© Ý¡±Ëœ[ˆ„ŽÓ€Þò5 ô?x -ú»;ZªË‹ò2S!”Ø=œPWX™éë.WWU’—•‘’@ hþ¼9| hšú"žìsuèþŽî‹Ót_E ë¾¾¡‘‰¹¥Í -g7o߀À À~$û™9ÅåUu­]}gσì£}¹û€Ð$ÙûÙʾÀ Qýûwoݸvy|äÒù³}Ý­MuÕå%¹\èo èû­ôtsq´³µ²05fS¢¯¬(¿DŸ!)D ?‚þl }Ä|ôgNCÿ½o"¨/6wÞÌ7æ›:É7GW/ßÕ¤ÕNHJËÌ+.¯ihéì9s~päåÖÝ'Á]^¾u¡f˜o„ý7ú¿p€P‚ׯ^‚ÀlܹyýòØÐÅs}§Ûšj+K -²AkãH­]íçå†g «%8üûSD}Z¢§B»…Æp ÝWú¯ ƒsh@eUõÍíÝýƒÃãW®C(&ŸáP¾ EPõy2ùÈäXÎäÊØ0dÒÕÞ\WUV˜s*åÄQ(@Û·l Y°ÒÃÅÁÆÂ”ÍÒÁNáú)ä ez„<~ìAÇ>1ö‰/AºÏĺ¯ºL°Ï2`›˜YZ¯°wr%±¿Â~‰äôÌÜ‚’Šêú¦¶ÎžþsHö¯€Ü{ˆ†.ûÿX™O ó~‚âò3¿ê?¸w¦xbV»¿§³­©¾º¢¤073=91!Ž€þf€~`€¯·§›³ƒ¥¹©‘¡¾}5šè‹sDIÍ,Žè ƒþ§«ÿÅ7ƒo¼V+-»TQeÙr}¶©¥­ƒ‹‡OÀÚ[£vï;€Ë%‡´ií䳯_¼Wk…áßa¯E„»{ëú•ñá‹àµˆp¥…9@¸ƒ1»"·„ú{»;ÛY›êik¨)+ÈÉ0$ỡ˧µÿý§ »…°òD’f¢P4uXl {J(„²'öP|bjfnQyuCKý>}þ ±Ø´ôNõE÷Ÿ; I£CÐ8—0ù8º„‘á‚ý¼Ýè™0’ˆúÉœÙSV€þßß :÷iØÇ[0aŸàþ"Ð}I)iY9y¤ûêšZ:zúlcS +[{'w/ûÛwîÝwðHBbJzV^aieMCsûé^á1ý[wïS²J€dÿ'!¢ô‰YþÑ„©µF3üŠPý‡÷Qa½<6<8p¦÷t{sCMeia^Vz -‚~, ý }W'‡Ö–f&l–.‚¾*}&ý%„è/@ÐâOBŸ`þ4ô?üx÷g 8îùÀÖjj³ àœÝ½ýƒÃÂ#wň;žœ‘]PRYÛÔvº÷ì…!˜b þÃ'OaˆÿFVÒ\þÅC8¾ùàHn‚È ¾yJ€†c|dðü™žŽ–†êò¢ÜÌÔÄxðÚ¨­CÖøx¸ØÛX˜²´±×2¥)Âq©ÿ; '"”…(8…òŠªêä)ttõô]´~*@GŽ%¥eåWÔ4¶¢L.N\»qû=“i™ü"‚ú<‡Œä)²¤W'F.A$­ 5åÅyYiI Göïݱi}Ðj_/WÜôu—£þ—Û¦(“?ÀãÁþL -û”îÏÝŸÃÕýÅ”î+(îk€î뙚[ÙÚ9b쯦°{0îXRJFv~QYUmckGwß¹ —FÆIÙ%xñ’ܺ(ñ®Ìgð\Žª«o¾}Í£úã#—.œíëêhm¬­*+ÊÏÎHI:wˆ„~†¾»«“½­µ…™1[_OGKS‰¾¼œ¬Œ´”$ˆþ"‚ùú³1ôóy¡?cúï}´V i-Ⱦ$CF¨¯¡¥g`lfµÂÑÍËwõºõ›·Ñ ×ÐÚ ^KŽðÚW„×þƒÇ\„R_”ØÞ¾qmb†£·³µ±¦‚@ÜáX„¸Ð U¾ž®¶–¦l}åˆú²ÒR˜úó§Îky©ÏW€dää•TÕµt Œ '7/¿Àu·íŒF—0¼„¨ÿÀ%Äýçɇú ú¼Ôÿž[¨Cõ§£¹¾º¬(÷ß!Ä‘°t4ÉH$Ä¿ê£ÅÀ[ÁÓ¦wAÔãÇ>¥ûûtÝì‹/– u_QYt_[—e`dbniÃÅ~Øæˆí»¢c=~2õTNAIyu=XRÏ™‹¤ì?x4‰do 9BWæ3xBF¹5ÃÕŸº8ÐßÓÙÖT_]^\s*õäñ£‡b£wE‘¦ïãåîâhgkenjl¨¯Gˆ¾’%ú‹¹¢ŒfGôIèÏœ†þG<.à¾àRŸK8YD8ðZ#ðZOŸUkC7nÚ{(>153·¨¬º¾¥£»`pdüêWăºàÂÊO}î ó1î-—qPA -ž<ºçæõËcCÏõuµ5ÕV–d§Ÿ<w zç¶ÍÖ­öórÃbk «…ÄVVFŠ+¶⦈ú<™À%\H»„Úz†ÆæÖvÎî+ýׇmÙ¾+æàÑ)§r -˪ê›ÛQ$às<‘ˆ8„‚Ô'ACh‘È•±a"‘ºÊÒ‚œŒäãGÆìŠ  ô÷vwÆõGO[CMYa)“!9Õ‡ðòDaŸ~!º/ÅaÊî«öµtXl3ö1ö£vGï?"9-3·°´²¶¡¥£«ï,%û÷¡ "ÙÇRóñÓÏ‚+ó©qþ‘O娺Š]› î«HõÏŸííjoi¨©(-ÌÍLK>xôpôm¬ÌMŒ YºÚËÕÕT•IÑ—Ñ™Y@}ú4ÑŸ9Íü>^¯Åˆ¡™¿à/_Š/‘”f.UTY¦©Í24±°±çE\rFNAiU]S;Ûá±+”Ø‚ºà.¶œù•ßlÿÎ5[ap‚îö溪ÒB`Ü Ì¸-ãœì¬Í ô´ãäd˜ú õ1ã~/âDöÁH\<|Ö† C¸<„åÕ°ØPG&ð!$êÏk¢þP.÷Nõ…¶ŸçOÓÚÏéÖÆÚŠ’ü,¸ƒGöï…;¸ßA'¸ƒÆp5T•h‰Ì¥™¦þG¾üÜÇØ§é¾˜ûH÷ÒLÙ¥ - ûË4´tôø°¾mÇî˜GS2²ó‹Ë`_Ú:{úIÙ¿}ïÁãIrcÞZÁçD}¦TîÍ·¯(s¡Tÿ\wgkc]UYQ^VzJb‘1»wl ßHƒ¾¥¹ Û€¥£¥©®¦¢/Ç”aH },yÓÐÿíï?ì—gL•i†3ÑÙ˘UÚi€€(½7AA:RzïUPĂЀˆˆEEQQQìŠ Epv²™î¨Qgv]×1&’ìhvŸ÷ýÊù¾SI˜‰¼?ߟOîçz®[õ Äa±`±52³Dbëîퟜ‘³f]I鎪šú¦æc'Û;/]»Ù݃Cü÷3Ì…ì«¿°'‘õGP„€ä  ö?Fù@RpõâÙÓ'ZíÛ[]¹}sqAnvZbL¸(À‡0[sc]†Ù27…fÜ8„:„žÚ|-T¬Qýñò†DÆ%¥¯Ê/Ú°¥lgMýþæ£ÄDîôôበ‘[-ﲩÏ:ƒoð¤ÒE ¤nwåö- -ó²Ó’b#B}½\–ÙY[˜âöÓj?äD&×áWŸöźO`t&É}À¾²*‡ÇWSŸ±ohlfamKc_—˜š™“W°~ciYeumCSóѧ;ÙGR€< m tÁ7?¿}Ç È‡? õ?2#Lˆ ÔUœal.ߪõRgG[kKsSCmueYéÆõy«2Sã¢ÂDBúö}3€¾îÂ}5KŠ> }¦è“Ðg12å£=1⦈ÅvƬÙs€ú*¾Ú|í…z†¦6öÎn˜q±À¸¼B`\åî:i³Ä…õµ s‘Aý²ÔöùÐCmA -Ž6ﯫÙYË_•N@Γ‚œ®Ž–† þì™3ÆÇlåÔŸ9™KOÄÈÔOÄÛ¾ƒ·î¨ÚÓÐtøØ©3¨ýtß@µj?ïF§þGIê¿e”Ÿ‡°0÷ïÞº~ù<*?k«+PùÉÍJMˆ fžAˆ@<<Ïn?_Ô“}J÷¿fë¾’² -‡ËöµuöMÅØ÷ŠÂ£ã’Ò²V¯)Ú°y[yUMÝ>Rö¯vÝ&eÿ ¹1( „H®Ìã|ŒOv„é† ?f¨þY(¬‡4îݽsÇÖMÅ…ù9YiIqÑá"¡? } 3C}€¾Ö|u5>£ª Ð'™±žNB_®èO¦|ôÇfÜ4Šq¤Ù -4´tt LÌ­/]îâé -ILÍÊ-(Þ´­¢º¶ñà‘Ö¶¹»½ßbÈ þäþ'M}1åÀ ˆ2”{p¿ûæõËgN;ÜT¿§jGiɺ59ÉqQ¡B?/7g{ SBmù€ÜœqƒœÄDXwËgµŸ•þÁaÑ ©™«×®‡ìªm9æ„y|÷ §® 1˜ÇÖh)ñQaAþÞî+—ØZšé/Z ©åTŸ]~&©?ö'¥ûSIÝŸÆÐýY˜ûsA÷UT¹<º†¦¶Î"=&ö}üƒB"b’Ó³s×®+Ù²–ý³°07»{OBC•Aù¢ô»òVÕÕŸ@õq†‘êß¹qPýCûë÷ìªØ¾¥dÝÚÜìôäøèˆ¡¿}[€¾1}ŸËQQVb‹þ×’¢Ï†þDGèwÿd˜ít5¦¾*W@BΊ„\PXt|Jæj¤¶å”Úv^ºvÔö»ïþãÉÀaÊ\X}•-ûl1`¸í#”Úm4Öî*ß -n»:3%>šM9mMu>W(7gö,p€?£,Œõ%ÛP¢¡¹@×ÀØÜ -Aâ ¦eÃÜ k½—Q~z‰ò34üæA”Êä>È¡þ²ûŒŒ¼Çžô¨ÓOuŸW/žk?qôÙ}ŠP÷‰‹ úJ]AzõñZLnÄØžö§ØÇR„u­ûŠJʪ_ýÅ€}w/Ÿ€àÐÈØÄÔÌœüÂâMP)Ùï$‚=‰Ü˜WDBØÔÿɾd„IqÁ"÷ã‹áÁþÇ(à¯v]¹pŽVý²Òë òVe¤$ÄD†øx¹S¦Ð_¤£­©¡.àqUU@ôçbæÏbˆþ4Rô§NŠþ'¿¯dAŽR[_}¾öB=CS {g7/?ahd\rúªü¢’-e;kêöƒ»´Cc½q§§(¬lÊÉ6æþKcîgsÔ{ï݆„œ=ÝÚrpßÞêŠí›‹ r³RcÂE>.Ë—.¶236»í–ÛŠ)÷™J„*?ªDù1„òc·ÌÉÕÓ70$"6 æQ¸šÇÉösp©yH^A©îæ>ë¾yMlÌSæ8Ú˜ãÈNKŒ‰úxº:-³³671ÐÕÑÒPãq”¡û|CuŸÏ¾‚_ÞûŠÅ}û’ºO`ž’² -ûf€ý%N.Þ¾¢°¨¸¤´,°$ý -Zö/\¹~ y${Ñß¾“‘ æùØžT„Iq!ê*9Èpß½;ÐWÏÓª_¾mó†¢59™©‰±QaÁ¾Þî.NKèëaè« xUe%EZôg`ÑDZ&¡/%ú“ÃcË>²éÙP_!Íjˆrå|E±à¶y”ÛliE!î¢Üöé •áQú*¹ 3gê ”ÜîFr[˜—žèËœ€§Š1™ ©ÿ˜“Q~˜óq3r`«KwTí©gvdrOž=ùÏWÿ–»ÒLè“Ó ©OzÒógOxÕç>Q}N?| A\}¢Ã‚ýWz¸8â#¨OAö8&©ÿéo̺°¯Øç2°o ØwtvõXé' ‰ˆIHÉXûBÉ~Kk[Çy ÈyöüGyb0Á<ÓE\`£‡a£q†{ïÞîB+Mª~%¨þºµ¹ÙéÉñÑá"¡Ÿ·‡«$ôù<ŽŠ²Ò<úlÑŸ„þo~2('v[®@CsÁ"c3«ÅK—»x¬ NHÍ\½vý¦­å»j@cí8ùú­»÷¿•Àœ¹¥C"‡s`8#P»A :Ïœ<ÖÜT_Sµ£´¤(?'#9.2Tèçåæì`ocab¨·P{>)·s(¹ýLÌɼ‚¬î£odfi»Äq…»·PXt| -=ŽFG1Ž^Ç£`¥G?‚2¨/û>èÁÓhgLc šFThŸ·;LÃÖÒÔH¦¡ÎçªÕg†Dõ™¤þ'<9Øgè¾­ûó•ÄØ×741³´±[ê¸ÂÍË' 84, d¿d¿²rø´Á‹W»nãˆCÖÁw("8#Ä™` éÉ]h²®ö?¦2|ýò…³§OЪ_\˜Ÿîä¿ÒÓÕÙq©%@_Ÿ„> ¯ˆ ÿͤèëcQîOõfÎúcŽËW×Ô^¤od -˜spv÷ö -ŠGr[„䶦¾©BŒå¶Ö'CRþ…™a¶ì³Ô€ - êƒ »m;~„°[ð°Ûø¨° o÷ç0õù̹وs8ãA}´ç’ã€#¨GPŸycR³r¡úl«Q}ú‡†_üô¯W¯ß ê¿‘ÜhõáŸÆÈ{“€ú/†‡ú?úûßþÚw7ŸÓÐ|öÕ%1›n>⨢8wܦñå>)îO¥uŸÀþt™Ø×Õ721·²µ_¶ÜÖ%P ûBÈ~9´Áý‡Žž€ˆ€@$7fø%f0Á@Ó“I},.¸®>¥3Œ<îÔñ#Aõw–•–€êg¥%ÅE…øz¹­XŽ on"}Zô&EÜžæØrËS¹Õ34±°±[æäêå+ ‰ŒMJÏÎ+Üî²»n -1¨Ë;÷ú¤9'Ëné°@'.„„ ôÞ»ÝuÌ µ2R]±mSqAnVjBtxpÀJŽKl­ÌŒõ-Дa·ŸK}GWž@CKG×ÀØÜMÃÓ'P›”†§QÓ@+ÝŽ§ÑÓ7Ú ü(‡úÿg¿¼ƒª:Ó0>;£LDŲH‘Þ.\zé½÷ÞA@Ä‚,`× ‚Š -P@¸ - -jŒëºFE‚ÁMŒ àdãÚ˜‰™5»³ï÷}çÜ{nfÔÉ=ž?ßyžß÷{Þ0Á}á·»:Úð1š8µÌc¤%ÆDû{¹9Ù[››êëj©«()È¡å3–ÏÔ X>âo Ý—–ÆØ‡¢Ìš- Ø—#Ø×ÖÕg±M-¬A’ܽý‚Âìg‚ì¯/Ü1¨mhlFžù2ò°·Úƒ/?yêÓ}𫔯A†¿9wæÔ‰ã•åKЉê/Eªèëåæì`kenbÄÒÓåBúS)èÓ¢?Iˆù’x¿õÇ'ûR˜sgλõŽˆILÃv»춬¢º–ÓÔ‚ì Ö;÷<ê5ÃüÔ§Ü€?% ·=0i½=CéíN¬·Yi‰±!þÞ| “' ›ñ9MýÉT Þ#¢¦} ôªkQo ‹~“3²—¯f,Ÿfzùüx÷AOßÀÐð/¿>…c¼"ÇG}AOBÃ~žè 43fá'ŽAž@Æ1$Ô¯O$ö'q±t`:Ö}‚}bûšÚ‹ô Í,mì\=}hÙ_æ`IYyeMý)lô„Æ =!!Éÿ>ì‹dqx®¢>ww¶ß¸ -niâÔA¡ìݽ­ˆRý¸¨°`ow—ÅvÖ¦l–¾®6ú²}™úÒÒÑŸ°Oç°Ý‚ìËÉ+)«iê豌ͬì»z‚¼D'¤,Éw)B‹µ¼ªÔåk2Xoè!Ð!½:¾”,ÂÄ úzîß%)AƒðTýñÊ#Ð,X½<;=).24ÀÇÝÙÁÆÂÔÈ@¤ÞŽtbÞ@²|ñòa±Í,m]<}ââá+ð1JÈ1ZÐ1ÚnvácŒõŠ ¾°'¡ÆÜjoE·@šôïЗÐ@G[KS¶Á"m Õ…Š ðð‘ÁÃu„~%½x÷OŒîKaî#ìcÝçb_ò¡®©Z`bneëèìîEd?=kÙªµж#3@{ðôYð$nHèÆ<­1÷'’ú/©¹:Øß sõŸÄâ Ïõ5Ue¥Å;·l* ªàëéêdocifl¨¿H[“ ý™HôQš§p¡?Iýñ~t®Q¦¹ÔŸ>ƒtlS:ŸÀÐ(®ÞîÚ !>~Ô… Ön¬=½¹AþdXŒì‹ŒÉ@ÿ#²±ß¶¿Ý‡ývÅÒŒ”ø¨°@_!ÒÉé@0õ¥&Œú¨Ü¼cÈ+ -<áÑ ©™¨ÑÔð©ãàBÓ×Û?ˆ©ÿüÅ+õÿC}øONñú7âIO‘'qsvÏÙÓ'A“ÁîÙBvOìžoüšáݳPaýŽÿ’O ö'ÓØ—À¾’²ª†–®‹mjam¿ØÕË~b*2ƒ‚­»öì?t´º–ÓÔBynLŸèÆ|²ÔgJÔyˆ®sGÛõ+—.@†‘¹ >oÞ°nU.¨>:ÈRìhkenbd°HGS:­À„þ´©úˆùRÑŸOŒÞΜ%;wþ……*êZºúF&6ÎîÞþ!±IiY¹y°Xw¢«;96é«0긓'tLš8µÕe%Å;6oX»2gIjBtxŸ§ëb;+3c–žŽ†š²¢<Ïoq4ÆO}¾'†P>  ¾¾¡‰¹µ½“›—pDl"Æ9÷Íß¿mýîÖ÷äµÏÔÃ<ï¼w‡nL ó«–e¦&Ä„ûy¹9Ù[›ƒ#é€")É“Ý3c"väE÷ûŸ1±?gî|9À¾ŠH’¾!ˆ­‘ýèøäôl’Å%e0ë›Ïó<é!¤äç'ÿ¢óúµHOú¸?þ¹JSŸ7WúÝ”Ä5qêªÞ¿w×Ö‚5+r2S‘ºø@¡ím,LÙ,=]- Ue%€þ|ô¥ièO–@b>ÔŸ -QÆÔç’ΘÎ/8<ùíJì·%eUµ D]èÁÚ?€©ÿìÅË· >•“ßQNF 'Hp‡÷>¼ÿ-¸çx‚»qݪeYi0ƒý™¨SÔ!êê¦qQ‡cñžÔ§oÁ >¾tšù„DÆ%¥£Ý³i+w÷ >ßh§,n€XÜ‹—¯È)ÄQ_°1#Ä“†‡ú°'Qin¬¯©„Ù³›Ìž%)ñÑaA¾¢@1§tãÝ?±Ø—BØŸBaÿ ‚}yE$4)Ù÷ô 5À…)Ú¾{ßA’ä×Á Þj~`¤ýÕæžû?ýÐ}«½õêå‹ç›jª*ÊJ‹wlÙ˜Ÿ·<;#9>:<ØŸ¨¾z‘¶È‹Â°—9LèFA_$ó%Á~çG}!¿÷WyEe5 ˆ1È‹NqXT|Ê’¥+Ö¬/Ú†B\I« BPŸ‹ºçbP'*'Âv@åäÛËÏ9“ððƒMùy¹ÙéI±‘! #}]-uÈ-¸ÓDî{Þ‚ùrw*ˆœÛÔÒÖÑÅÃ'04*>9ƒ{Šr| -ôÞ¸ÙI=€C£>€"¨ÏmŒà%®ò_¢`õòìôä¸ÈÐG[KS¶ÔEu!(Ò<Ù š=’â>Æ>Ñ}öe¡- ûʪ`XöA ü‘&áÂnÛµ-º“§Ï^¸tåz[G¢þ[yÒGý13̘«Ïñ\ìï}xïr¸Väp(ÕG°¹à½šu DêboU_GS]e¡"LV°—Y_PП‚ /%ú:"ŸäÇ:”eH2y¶,Ê1uÎ>¡‘qÉHpó±àþêØ‰“X]ZA]àÂ`EÔÿ7PeXä`å³î?|†û„a¸ÄÀpQN¶¬^±4#9.*4bÍ:L}™Ï§‹ þ;eBøÒPjü.Pħ`±©0(,úœƒgÏ—ÜÙséÊ5¨óm\ç1$ŽIý?èÆ¼þ4¨ÏmL^=gOsêªéÕ“— «'6", Vàû—˜†/!¡þ|buŸ}p$Ù¹¸.*j”ìÛØ;¹yù…EáÂäåoÚ²sO顊êZÄä íf–äI¿üúTõ?ì e˜*3¦þ@ÿ#”ᮎ¶ëW.]8{údݱ£‡÷ƒ¹ཚçúºZªÊJH^æÈ2¡ODŸ‚¾Dô'àMpå”TÔA^ŒL`²:¹yû‡DÀbÍÊ]µnã–Å¥‡ŽV×qˆº|×!~° -ª‹0ì˜zAypïÇÛ]7Û®ýão_·45ÔV•—•|¹½hýš•9KRâ£Ã‚@PLØ,L}E0Üñ³N€úxöàš=PhCcsk;Ôg°¸ÄÔÌe".q‹\âñàÏ"Þ¿ÿŠ¡þæ!žñ¢£í4¢¢¬¤xÇæ kWæd¦¢Âøy¹.¶³276IRSV’—CŠ$fõHêñž¿î `_šDdæ¬Ùs ."û&æà.X“b“Ò² &DÊ«j›Ï_¼|&a7P¿QrÔE -#”“õ1¾Qn˜V8n™9µÕ‡J‹Á\òórÑ^ - òórs²·±@ƒR¬‚ë\˜¬3 /ý üøPG³ôr®‰¤ãû„tŸ‰},û2_Ì’Cd_˾™¥­ƒ3Ä$8"&!5 -³¾hûî}T¯?uQ¿µ½s´œ07á‡æúèŸ(êC—ŸÁ\zÜ×sÿîÝí7®^¾n¨ù?ûåÁTÕµ†á¹s¯b FÅNKDéMPT¥7 t{¯Ø» t‘ÞAàQ#F DŒ½ HŒ"Bô–8ãܹßZkï³ËÙ8&sÖOøæ}Ÿõ¼DáÀ\ Ì°W]œì¬,Ìgcu!ª¯¬‹É •cèËD¿ëϺ^,Ã…äe’:Nñls kûÅËÜ<|×mÞ±çÀQ:ÄD]è7´;NPHR>r“ÒøâÙ“‡÷êj*K‹o^¿š—žtöÄaЃµ”¥Ž¶ÈL õ '  ¸ÃùŠÛ9Ø ü¼Õ£¡­o4êŒ$ÎÕÃÇoÓv|ˆ`î!Ð÷‡ñºù­ÄïOœús¯îveY14&/;#9>*<8àäÿ=Û7ùù¸»º8ÛY-˜; ,I[¤¡ -ƒðèéâ÷'{Ü'û½hì;p°-û“Ô5´±À$tX¼ÜÍ -ƒrr2 8<*ž±ƒTØ„¿²7!‹úìs¨O2ü×e”aÜ匔øèˆ`0—`.ëW{®\¾ÄÑÖ…xš¾v¸1*Hõ‡ ƒê÷íÓ‡ }™èKëqd¿'†äÙËP$/cÕ&ª3°srquØaÅ `+n©pˆÿà«‹((‚«Ñ®ë$)@»4íœìpPŒô´ÁÔ '  -\ê3´“â!Puô™ïµy8Üés!bR/ žÖ¶÷Ÿ§>kóüëÃû6´y~k‚ÆÐ›“›•ž›~¿ý»¶’ßÏÉÖý~ü; @mAwQ_zO"ö{÷&’ô-#ûaꛚÍ[hmï¼ Û*Ì Ø„ã’Ò³r¡0EP˜;¿4¦¶º¢¤° ÿJNfjbLdè¹ÓÇíÛ¹eý/Ð$›EóÌL uµ%©ÂæÆß<2êKë c_NŽ'ûJ*ªã&|7ESÇì€hÒ -wïµQaNP…Éì`a¸IénºKzܽʘ Êpc=¦>d¸2œ›™–K›Ë¶k}ÜW ½Šºll ‹T_R}Hñyý^’ ßÝø“?vQ¿Žña#©‹Ó9n¨DÇ}×ö{‡¨ÿ‰àN8*wi‰± îÐ*$~`jl £‰©¯Œƒ2¨ß¯KŽË£>é3¹ÃEe|p8üûÙ ßÏ‹ü~ pa\…c6Ï;Þæë²ðäi~&þüªèÏ/%!}~GÉçç šdo??ê ªôp]"õ ª"+‰T^»ØÇ²?ú‚í@]C[ßhú¬9ó-mé `=8“˜š™s9¿ ô ¨/i -E…÷º÷ÔãQ_XàJP†is9ƒ«¼aתï—:ÚZ.˜;kºep"Õ Žª³ ú_àµï¸£qŠuôÁ]Ì-Ðbuóð]·yûžGOGDǧdüó‡úùVYÕí:ÀÝó†—4îHˆy¸%…'0 omyûæ·_Ñ,|xÏB$Y,AØ -QYùýG›Eó瘚В«¬Èà®·w¦>ÿ÷4N‘Þ1—W,sA¦Íåô1d.XàÐ^?g¦‰¡žÖÔÉ(ÄÊ´êCT_NNúÝ…¿ÀãRãbŒåe8•bâ.€;¼X}üîÎ…GÅ%§ÜäÖuDrEÔÿßçywóúÕ¼ìô丨ð Ä»Ý0 ½W­Xêdk)ŠÊ„qcTÀPRä¿!AA9éŒä²Ï@QŸ>ÃH%Ö,¬ìœ]\=|ü6‘Ï/$":!åùüÊ«p—áóƒ.¿•8y¨ÏùûšÐß‹ý}è -YéIqÂÈßǹ‚)Ì%dI¸/¢+Ȩ/Õ'„}FöÒA!£ÐÀØÔlÞBk‡ÅËÜ ËÇ? ,lÍ}ÆÒÜ®æ®ö\¹|±ƒõB¤¹ðè¬ A ü ëÔç^úû´tY‹Ç‹,žgƒÂ.Æ%¥gå]½~³¸´²UùÙ n•ùG`CŸº]˜6Ž&U•Óƒ'*"4‰ öàÑPG…!__W {í?öy²’¢0t8¬Â1j'OÕÖ3BÔ·´uZºÂÝ{íFD}ˆJxT\rz6ŽJY%¡>$,Ùa_ø}Ü—@ýqP¹¦¢”Ù«açq‘·nÀ{ÕÑfÑü93M õ´¦õǨ(aÕ§Ô…Nñ?dÐÿOÐrñd¥Ü…¤Üe¸ËFâ.ÜSÀkd§XLs9YáO@® Eˆ½vž(3SC]­)ßM»ÑÜÞÖ\¡Å7hðÐá#UƨM˜ó8ØÉ~_Q_F*©`êké±Á{­dA`SŸ6K°/ þÝG}Rdbž¾ä_ÎÉLMŒ};}ì £o6Dßt5q‘UE!î'¦ú2èK÷q¨ÏžxìSš{æ|ØÅؤ´¬Ü+ùE¥5w~yðøY}cÓ«7Í-­mbì.âO,≲"®\Ï­,ÃÄËNOŽ‹ -Ïõç)–!ƒÁ.¤ ¡ÓÔ—tReúë³²svqõðñÛDOHDtBÊ%2xÊ«jïÞô´¾áå«×Í-@ýŸ¥>ÜFt {‡hR(_“PaèŸn€~>Ö zºÈº"ÝÇ`Ÿ#ûýqT† ¾Ð³ÐØÔlþ"Ç%Ì,$}I‡¾\¿YTʱ$ÒJ“hêwüb©ênê‹Büôñƒ»µÕå%…7®]ι”šs!$ðÔ±ƒ{wl^çëé¶l±½µ…ùìÓ t4Õ'Këâž2è¹'¤¹ýåÿÏ~yGeqfaüd÷ìnÖ`,M”"ŠX. *"6PÞ¤I$¢%–X±€ -**)R£ˆj4𥣉Š%qÏf7q÷ì}ßyg¾™ùæCDÁÏwÿœÿÞ;Ïó»Ï3b¤ì¨OÇ((akëÍ›YØ8,óðYñù_~õõîý‡ŽžŒKJËÌ-¸P\z­ª¦ï>"£b>ñ$Rÿ¢>¨¥»³­åÞ[Mõ5•åW.ågg¤$ÆDE†ïÛµmÓºÕ+ý¼Üœí¬–,š7g¦¾.'çŠïOoH}p#úc ð¨Lšª®5Ý`–ñ|SskûeîÞþAkÖoÞŽvp"6)53‡ÚAmC3\¾tùø;x)‘úÜ`Ãt¶£ð ƒbb’7Ä$k ŽaäE}gH¿ûŽt^=âaŸÂ~qñð X…ü²çP?N”’ꨔÔÑuÿ§GÙÔ§°Os¿_äÿCPŸq%ˆ¸(?'#•åã ìcsÓyƳ tµˆ•Ù"æV)ôßþpÂ>]Y‡ Ç*–WâÏÊÞ™sx(ç6!ê·uv?xø¸GbÎåQ_ è -"/òÉþÞîÎöV8#Lµ¨"µÐÅ'–× -wØÊ2ˆú¢hhOg9™º|ÈÉ'ãN§ÍåôQß!ñ¬àÔgêN'Ô;7›ê«Ù‡/BÌ0s؆Œ„ȰR’”ú0| X~üBkÅZ”’@+G%h'Ê/¿bês±/qÞ=÷‰ˆYÔg|ÜM|ÌJo â°Ð[7¢ôæéædg)”Þˆ?ú;Ž.áFýwýëß« ʹPYG9w‚ê”iZº3çÌ[´ÄÒÎÉÍÓoåêu·î ‹ˆŠNHIÏÎ+ºt¥¼¢º® UÖ¶ŽnTYŸ>ûùŠú<äq¨OÔòo^3lýáûïn4ÔV}{õò7¹gÓ’âN=|`Ï×_}É]³ƳIÐUFAWNöÍ×Ûå#ùMGÏÐhîÂÅKm]–û¬Z»aËŽ½?Ÿ|&ëÜù‹%e(¿¡€“{]úì”ÔFQ¿¨ûfS]uEYÉż¬ôä„èãG"Äúyº:ÙJ2ŒÀᓺåm‹ú|­È±RÒ ”’, zx#êS½ðd\P¿Q¿ŠPŸôBHIH,tØÇØï ø9ì|î‹û˜)¬]€ú(ºTõ ó²ÓSˆÃˆˆ}=]m-/412Ô×ÑT›Ë]m–š-˜;ÛPO[ä2^IAÔ ©ŒðÆÔgV ; -­QV0­ÀÒÖÉÕÓ/08„:|Ç£’áð¡TT×sßsšú¼º#@}ÖÝ{w¯ß½ÆZÎ ðÅÀ†ÑÓÁà €adêã”$µËÛnØgõB’’TTõ õÍúî@ý5ë õc“Ò2s .\¾z­ª¶O}öõEØïm„È?ØÜç©ÙQ¿çñCª°r£K<Š.”ˆÅE¬$ b6õßõß†ÈøÏlä 6‚tµõ¨Êjãàâá@*ë!ve7ƒŒ[ÚéÊJTŒ˜÷’Å<†úÿ£ÕòMýç½%]‰!A€yý¦>ZØáS‡êŽ&©;VvÎn^¨îlÚ¶k_xdTLbJFv>ª;•5õÍ·îÜkiëì&FÞ›úðYÓv:Û[€úÍÐv®•_(ÈÍÄmçÐþÝܶ3µ©“¸woH?ïžtú8\ê±õ‰X”‘X´t fÍ™gjneïìîíDSÿ¡~qé5Æ.È.¸bµ0Øï øYì7Ü—D}¶¯#Ÿ?—u&™]|<\l(ë!«ðDÌŠ.Òì2 à º¢Ê:Š©¬ÚTe%á…È8<dœš™ƒeL3¯]€y¿÷…úÜjx ªa%Tâü쌔ʨˆ°}»¶mZ·z¥Ÿ§›“å’EóæÌÔ×Õœ6E•U …’nßW ÁÈòØÈL|㙽ªš†æ[Œ‘ÙwÛv¸Ôç. G´€æúšÊòÒâ¢üœŒÔʑᰀÍë×ù{¹;Û[™›Î7že0]K £¬(?0røÇCeð¤ÔȦ¾PD0‡ˆàîEIJ/\L,´] µÐا¸ßûðÉ/ÀýA¤þoÂÔo¬Ö8Dý=Ttñ¡¢ ˆ¢ ±’ü˜Oå(ê#‹¢‹TÅ2••Ç<^Ä’nhXDTL“t«ë›nÞ¾ûHº~Ceí õ…£.‚^C Žºù9™©‰±z»·ó¡§«¥Ž¨¯HQ Ç«†}V‹€‘e`#?‘cß½ÙÆÐv¬–yx¯ mç0i;TÛi¼ñ­µGõÑúL}~Ù©¯®@g//;=%!Î*;Âg¯×Hýò–G$b¨@¨¯/²‹] OÄ& -PÙÔ) ‡}‚}†üÿ1ôKâþàSÿ—ŸŸawu´‚ŠoÐÔÏ=›vVB}o÷eöÖÑE$bnt‘ªømPxáËXGßÐÈdábK['WOßÀà[wì=xäxt|rzV^áÅ’²Šëuˆú­]˜úÏhêó Ç¨…] ‘^êwµ·þðýw7j«®]½|¡ 73- ëe7Ñ‹èÅ”•DQ·¿Ð¿{¢¶£ 4^e’š†¶ÞŒÙs˜-µqtYî°jí†-°€ÃÇNÅŸ>söÜùoJʾ}åÄ¡OÞ/É/e% ÏeIŽ?uüÈÁ½;¶lXè»ÜÕÑvéâ…&F†ú:šj“'â²3JV ìH©? CÄBÔÂØÔ‚í2ÛSßÒÎ ¨¿’Ký|6õÛDÔ§Ã>`Ÿïÿî -õ_ -S¹¸±S»8»˜ÊnÞì솢‹²4º òèñà ‚ÞX€ÞÄÉj:z†\èá¨{ìT=á¨ûO¡¨+@ý^Sê†ñT7ê­ -ðñpq°±0[0wö =m ºŽuC^JxÐ>þÛ‡CõGÐÔ' @go©­#}öv†¢³—Àœ½ê:ªìtô^v¨/xõk«X) ¿®ÿý@ýñJ -Ìû?ò!2ŒÔ/9<µ`» ¥í2Ô‚©odB¨ï'¢~LbjEýÊšzD}¢–ÇOžbê³°ÿêa‘¿î4ôÅ+vñ}B}”ÝJ‹QvKMŠ=NSßËÍÙÎJ¨°J£Ë`ôXQW^IYeÒTuíé3fÏ7³°vXæá½âó/ÖoÞ¾{ÿ¡£'c“Ò2syõþ õiê½dQ‘‹¸^žcêww´õo6ÕU㬛—•žM²n'ëêé°©7QôÒê ù•YªìÓéÍ“òñÎаˆ¨˜„”Œì¼¢KWʉQzCï ¿ŸM}vHb¨ßÙÞrïέæ†Ê/9Ø/LJZáí]‡JI¤ë «''‹ºN¯žt^gz± E}5P Êlµ êGQÔ/*.-Q¿ Ûå) û€}Ä}Bþ_{ùyà<ìK þLýv6õóAʼnˆúûvmÛ´nõJ?/7';KŠú:õÅ -«TÄ;\cêÉ ýxøÈOäF&¯¨¬¢:U]KרojneïìîåÄK/„zM"êõp¨÷{_¨ÿQÿñÃÝm{MõÕ•åW.åe§§$ÄDE„…îܺ1ãéæd ‚11‚ê#ÁŒ~#Á0ïç–ôþ±Šã&¨N™ïGÔ7·²Ãï_³~3õþX&½I¾zܮ徨ódž_ƒŸŸŸ‘’Åø…•’ tµÔÁ/ÊŠò8%õ™”$5ÌŽ ]HH¢š!¡þbK[õQFHLá¸å.Mýž§ÏHØGØ'à‡ù—ÄaÈÏ€Ÿ‡ýÿ<ödüQŸj¬-@}’]Šòs2RAÅ õ)£è&V£LÌD7iaŒáȘPo(—zšº$ëÚ:¹‚ŽƒC6nÅY7:!%=;¯ðbIYEu]ÓÍÛwIgý?ûõTå™Å|fÇltU&šÝP„ØM ½ˆ5Vi‚4¥ (ŠÄ²–]ѵÄ"AŠ€RD£Q"Ho¢Hï‚4݉ggÏó¼ý½…¢—Ìdîùvï·sï9¿çúÃQ_\ØÍb†Ž nöć#WŸÝÿTêÕƒ[GU“xõLÌ­mEÜ:ùE¥eÕu Í´ú¨ýa«/æÔ ô#½ïw¸8l&÷…’øíKF‚5´úÊêZ”ú›±úä¶ õã õs ñ¶Ôaõ»~E·áÁ> ?QoEM?¿÷%Î>gŒß‘ê÷Ñê“KÌÊ.¼)ÖGêk©+#õd‘úS‘úÒƒuLŠœc~ÖeݬÔšZØØ;»ºï;tôÄ™ Þ¾!Qq‰) ~fNAqé«Êj˜c¬~o?ÁÞ;{œy!æ7ÞÀ°Ã䄘Ȱ ÿ«—Ïòô8°ÇmûV[ksƒu«–/ÑÑFØ~ûlõñ­ƒÖX^«¯¦¹héŠÕzL6ÙØ9¹ºï=xäøéó^¾ÁáQ± )÷¥gæäóÛÃm_}öº€ú½XýæÆºêÊW¥Å9™éî§$ÆF…‡øz_8sâè¡}î®Îö6¦†úkVð÷å=i¨„Ž‹8õéŒ$D}:ºº{^÷’ì¿áèþFDÑô3ð³ÝöÅ©OF7òbMõCõí7[l4$ÔWã«/.cSÜô2æx"=ÇòŠ3=e5-Š=k;'»{W¯‡G’ì »o„…]!ê3Ç!¸×ŠÜõ‹ó ÷b#ïùz?}üÈÁ½»¶;ÙYo2Ù ·zùÒEšjß|5oö—Šò²ÿ˜3y”#Þ&ò×XMKÚ'½Ô£çGHÔ«ˆo(úiø ÷Ç”ý᨟‹ÔOMŠõýÈì‚ÔGÙO1RŸ5Å£Ýai¸„Þ¬v?›þwYù8ìªjê,Y¾j±¹•íÖmn{xxž:wÙÇ?(ìVÌä´‡O2²òŠž¿,¯ªmhbÔ§Ü{Ïržz`~ç¦Ý–ÆúšÊW/ í>ûåç)‰qQ‚iMŒ.51¼œ0R÷½O‘úÜSG›\c öû†ÞŒŽOJ…5~†Ö¸¼ª¦¶¸³©?8¤úð«ÐÍó×¥(/ ]:wïÄÜ‚KLJºt¶mµµ27¦/ôæ—³/Rõ%\âÔ—ç¨oˆÆÅ™§~Ò=<.($TêÃÀà°ßO™>ÈÖ¾_ (ü±ü‚îû‚êÓcÜÒTƸ¤0÷ÙÓÇR“â¢#BhõÝ]ìm6™RÙ…JnäOTÿþÇÿœ%dŽ'‚ú2 þr3”fÍ]°PUCgñ²•k×›YmqtÙ¹{ÿác'Ï -­/‡ážHõûûõ›êkªÊ_ ‰õñÄ œ@_‡Ìu¨N^‡rH}™Ñ¦]žú¨ûI“§Ý+àîU4´q÷Ff–L÷—8ÝçëÍãªÏkž³.($Ý»ûæë?^¹töä±ÃûwïtqÜbif´~íÊe‹µ5T.˜;Ki†R_Fø¾Hæã—ˆm¡ÔŸ=Ÿ†"Ô¦Õ/~QVQ]‹ÔoïìêõûèdªÇÂ÷ÕKñ‰¤ÃϸωûcÀ>÷då«ÏßaHn^´úv6ÌÅÊÊ."¦øþÇÿ¤EÏñ8zޱ{Ó>'Ü›¿P…N»–Ì _ð†´—”úàç_ˆøRYS߈nV8Yû†£>'î¾få„ç…yø.þ@ÂçÀÀ§®²pþœYJ -ß´Ïd¦LžDŽÌÈÕÖ=çÍ[²l%\:fV¶ŽÔ¥s‰}édÃ¥ƒ·¸™Qÿ¿h©æ‡P€zòˆC§¤@ä“g¹Ñ?y¬æ?ç4?š'E_b%J}˜PÿËÙó¾Bê/]A¨oÏRŸ> Ѳ—¢y©o„éèÂa¿—æœöKÿšW$þ$üÈý·È}^Ü—<ûÂÔï§w˜=ƉqQXýó§9¸w¨o ꣋uçbå¨?Nª¾d‹Ÿv?÷¨£U8Zñ ¯Ö34µ°±wrußwèè‰3ç½|B£bSî?JÏÌÉǃ\s ê÷€úƒX}|ôÀ°&æ7vNhmj¨­®({^”—ñäaÚÝ;1·nùû@Üõô8°Çm›£­•™±¨¿DGC•wG Ÿ˜KG~ÚâoT5u–,_µÎÀÄÜÚvëö]{õ/_½›ŒšÏfšoÚüÿD¨ÿŽR¿«ßÜXW]ùª´¸ '3ýÑý”ÄØ¨pNH²·±05D!IWKvìØØaúdeÂK¨OŒq0£þö­vÖæ&H}PV˜R_ ¸IÕ—\qÕǃ<‰9Z1|jšhõ6˜l²¶#à;~š„/&ânzFv~†o¨¸+D},ß È‡Õon¨õK‹ò³A¾´ä„˜È° kW/Ÿ;åéGÆ–;2z -ÉnDóÓš7Ýdc‡ž<ÔÊðD1Þwuuuò -¾BôðsÜ[ö‡¯~Bl$VŸcPñÊe‹ÙêO¢¾tŠ%XBÔŸ4y -V_n†Ò¬¹ ªhh/^¶ríz#3Ë-.;wï?|ì$šäë8¿ÜûéñÓ¬ÜÂ’(¾4µ´uv‹–OŒúœ‘))È…óðAjb\TDH€Ÿ÷…3'ŽÚçîêlocaj¨êëj©)=oöLE"ïNUÞåª?aÂ'Ÿ"õeúr¤úêZºß~·Fßh£åfz‹ýÈìFöŽ^Ó:ÞP¿¥©©_R˜›õôñO÷’âoß ½þã•‹gO;¼÷N‡-–fFë׺hk¨Iã¡õaß9ÒyZ}?FýÌœ|‘*‘úÍ­m ~vœ,B|ì}T;§à L7upÜd,ÔÜò±úÉ ~X£> -/fÆì1Vû6X6x"L±Tý1)r’DZ©Oȧ„äSQׯò¡Iv 'åÝ@1yw`8ê¿çÓ×ôÕô=úR“â£o†ú]¹øÃþý¯~¿ÃÙa³ÅF#ý5ß}««¥®üõü9 ¾¥þ(f†§>çÅSPš5g>çÅs$_¼³—àÅ»qîüâå²ïœ^æÎ![B}^R\tDH Ÿ·ÖµÕU uf]¤!i¬êã©ÿª²º¶¾±¹¥­½ƒPœ(:ácïÛÚÚZ9_ ú;©—‚qŒÙ¯~uE¨Ÿ ê§%'Ä€úþ>Œú[@}:¼cÌÞàæ6i®òî_QÞŠÔ—%󮚖.L²ž¡©…½“«û¾CGOœ>ï囘rÿQz&ºZË*«ë›±ú½0‰X¾wbÔ眇}½=x[›Pà}^˜‡ï]¼7D^ujf€¾ÑÞ‡"^<Ö£ª¡ƒÔ706³²uÜæ¶ç€‡'¨ïãv+æNrÚÃ'Ù°ÄeÕµ ÍŒúx‡RÿðŒT€3RJblTxH€¯uæ8á3G:sðƒ'ûž´FQAýôÌÿ³_gaQ\YÀ¿Œ“y· ‚ ¸EÇD‘UÜe”qCT\PDÅw£&š¨‰»F\ЀTQ@DDPp‹»"Ð4K7Mïݸ "J'#sî­ª®ª®jÔÖ&/}žê¥Î÷ó»ÿsŸV_o¬Aìc÷ŸPâㄽ7 ì2ˆþ‡øøëêž×CÄz‰â~ìÿ9êß¹qõâù³§S‘ú{È õŒÆ˜¡þßíê7W±ÕÇ“Ü -&ÙÁÑÉ™œdo¿~ƒG‡N -ŒŠ^²bõº[wîK8r<ít6EŸèS3è{ÅCŸib˜êÃÌÐê´*˜™Rq±if’É™1»û’÷¡»«ËçNLõ?…™iñêS­³—Ø¥ƒ{gPßÃ˯ïÀ€À‘cBÃÂgàÖ×nÀ­'OËÌ>¼ûèÁ“£¯æaíÓg–<õQç¯`[ÈÎ9))!.6fÛÆu«W,‰ŽŠ Ÿ<*0`P??o¯ÿùeçŽõÛØ×¥¹ÊZõ÷êŸË»Œ¦XTRV)W¨ÔZ=„}Ì>¸#þcJ|¾^¯×étZªà[§×#úkÐ[ñˆvŸŒû|ìÛ(ìóÞ¬XýR}±€³ÁTn›0.ˆ>Y9êjãf¨OÞ>_‚¾0³À›œšq67Ô/(†ü"S¨´z:ðbû`-…}FâÅö=­}Xú/÷aBq"ûf„‡…Ž0°¯Ÿ—¨ßÙ½VìkÉšwéÛºC;öƒg~ðàÌAžù™#”H+«”Œ3ÇÔ9¯úÌ+çµÙ•#/§Þ»\r[ˆÎ‰÷.,„èÜ×Ëãëî_6ݹ}]lQ þQ¤>¬~…\¡Tku#Šî¨zh"¯Õj45£4d?–¿þÚ'OÁýçà>‡ýFû6@ߢú8½Ðsœ‘š|øà~Zýé þh¤~ó“Õ>ÆÍW&úèInÕ¦-VßÕ­¨ßËÓ×Àa#‚ÆMœ1kÞ¢åßþðÓ8[>v2#+'ÿÊõÛE¢¤¾FoõŸÖÕ¿h൫>÷>TVUJ%ÂB¤þ…s™é)I‰ñTâ]0‡H¼ÿþ3ñ‚}V©Ï{æ´…3§=R¿ ½Ä£ÆŽŸ?û6 û<Lç6JýP?ÔGs¼÷ŽÍ?~¿jRò„±võÿôbÛgRÙêwéÖ£§§ÿÁC‡ãQžEŽ2²˜~ûø¯Eõ^Ôcõ: ¨_V",ºwëÚå¼sgÒOMŒß·kû¦õkV.]0wæ´ÉãÇbõûx÷õ»€úxhÚCó·÷³Î¡õ–&õÝ:¢Î{ûôátŽ—øØÉSY9yðÞ݃÷®ŒxwÕçi\O4."Ï9sêıC¨mY8—ÎHþ>žh[:¹¹º@ã õíÛbë²Rý],õ ŠEi…¬ªZañ ~ãª!ȇâ#ð««Š*F)†»ØGî×qØcÆ~3¨OÞ¬-N/b:½£ÕGslRß›Pß´ÀïÛìeu5e_Â>ï>ýM‰w™xcb㦤ggk¡P"õÕ:Vÿ9¥þMªßÈÆïÉãDäÅøÁÐäådaüöíâNTh Có^øñ½w­ñ{çB¿w…+g‚éÊÙŒ¯œd¸rrñ•S,*EWŽV_Wγºú—”údãoQŸ:rÈ玤þâ¹;`ö܆çδ-и½¬« þ;E°+å ¾R­Ñê #¸_ƒÄgâ#ðår™¬ÒT2™\ôð3Üoš}[„}Ö ÿÁV_¯5¿YYéeætrŽ™±ÍÉ®~sÛ><Ê­`”Ñ(»£Qöðöë7( pTpè¤ðȨè%+V¯Û¸-fo\BÒñ´ÓÙç/‚ú÷bi…¼Z­5`ü@ý†Wx¹ê›f†Bý—õu††:øv9ˆyƒ@ýtäuÆ‘·õûG^ Wì°‹«{§®Ý¿êåéë?`ȰA!§FÌž¿øPËÏ{~ùõHrêé³¹¯Þ¸s¿X\ -«¨Æ‘ú6fÛÆu«W,‰ž>)49~Þ°-?äȱ—ueú۹ꗖWÊJ²»Ä7èõ:­–$Äð+*ÊËËËÈ*/¯¨úA~€Ÿvß2û¶ ûï®>Ķ“8¶m§ÔGé…œãÞäîÔîLõ[ØÕ·}1íc² ¨øyxùö8rLHØÔ¿ïÖnغ“ƒ_¹Üy1~¯^s"/¯ú04¿3DÐÄûwn\½˜{ötjò‘_Ùóó–Ÿ@ýÅógGL4bØþ¾ž½¾êÞµ“»« šš¶m¬V¿c‡)õ‰Æ{1Š&‡çîõÜÝa>wµôsg~äð¨ÿ_Ö²´X}±÷}>ûtêñ# q{wnݰö»oGGÍ 320``_?/¬¾{óm±g$—õê'‚ú™ þÕ·A}qiY¥¼ªÓ îEÅ|‚|$~Y™TZZZBVi©T -öWü´ûdÜçaß–aÿíê—ˆŠúy þ B}ÓÍ:i¼yzáªÿûÛºšÀÏ,òŽ›8%bö¼EˉȻÿàáä“Y¹ùW®ß.(•–Ë*ÞˆÔ¯Ãê#ý t4š…}‹™÷I-~iLýæG͘Bèçë…ÔïÌQŸÌ -ï¨>ÿsG9^~ýúÁ¡aŒ#'Žœ”´ÌlHn7ï -$ÒÊ*¥Zgxð¨öi¨oê›W}îÊHbˆH7®æçžÍHM>ÌûÚõµôÚÙ3’ÍË*õ7ꧤgBNõï -@ý -Y•Ë îãB1Ÿ0‘/‘ˆÅ"²Äb‰¤ÉOÀO¸qŸÃþë×¶ûÜ6 ²Q¯!Õ¿wëÚ弜3§NM¤ÕŸ9 ߬ ¾…ôòW»úÍQŸ0õ£ÕwplïìêÖ©K·==}üû:|ô¸ S¦Ï"ÌŽÝû:vâÔ™œ¼Ë×nÝ+•”~ >Ö¯þE¯~\õIþ@ýº§µtjeU¥T"(¼{ó·K²3ÓR’âbc¶m\·zÅ’è¨HȼÁ)órÕo;ìàèäLî°‡·ÚáQÁã'M‹œ³`éÊ5ë7úñh‡Ïœ»€ú.Jpß:ªï·«Ëhj»áE}{YPDÊÏÉÊ8yìðÁý»wlþñûUËÍ›1e¸ Cð÷ñìÕ£[×Nn®.í­»qìeeY£þz¶ú×±ú%Ò -™œìà>”Å|Ú| ‰/ -‚b²¡P$Fðî£ß!î î3ØÿýÕ+2ìÿÏvaŸ_ÌÕW*de”úçΤƒúñ±1&õÑúÜýå̱]}Û–™ú0Ë-[µnûRÿ ·ŽH}˜åþx–ÇOž6s.¡Ìr<º[ùõ³”y›P¿«oÔi@ý2‰°M͘š<5Ûè¬À¹Ú9X¡>»oR}ž¾‡“}/\Fö}àÐQúµš^»ÇOد]£Eõß°Ôg´]"dD¤CdDZµláÜ™Ó'O;zøÐÁýûøôîÙ£[—Žn_8·wtø¬mëV-¡m»úÍQV«ÏV_T"-¯”£°¯Rƒû >Šù¤ùùñ…‚⢢ÂÂûd (øÁý*EµJ­ÕéÍÙÿf-Þ…}>õéøÂdz‰Ô6‡•ÚþÏ~GEu_q?­Mõ¸à’¦UYÄhÍ1‚  --6Øj*( €, ¸à¾Å¥j¢&Šu©ÑàDö}X`††f˜…MDv•UÔš¤÷÷{ofÞ”Iÿ˜ûÇûósϹ÷óû^¸YµêÿJ¥V?õ™wåjwïuë7ïØ{ð ”y¯\ÿ.*>9=+7Ÿ_,’–WÝ®½×ØÜ -êwúO±~?ö«>=ôvv´ÝW™;·k׬Zaê[YÌ#øÓSð×[ý~ǦŸ×N—TßÌByãø+nœàЈ˜D“Åæ „â²Êêš:PÿA[GWwϹúô•ëK}ú‰ƒ;>7/+=%^±,ª´-ì¨mkÕ×@ BýU¤úŸÓÕg±¹ü"¡XZVI„}ì>Jùwkéæ#ò‹‹‚ÂB>Y……AQ1?¸yÿöÚ»÷êÕ°ÿüùð†}ºú/^66¿à/ûû?—­tq÷ò[¸}Ï#ǃÎ^¼r-<2%NA‘H‚ÕohnEü=ê!Ô¡Fý_~V™¬þEV¨«©®,—xl“‘|þô‰£‡ö¡Ðëó†Ð;þTÔGmÕ?ÔŸ¢«oꙘYZ/Z¼ÔÞÁÙÕÓ×Ó¶Ýû;yæ|ðÕ°ÈØ¤T&´-J°ú Mж¿§µÝ—ú8!={ -êwú­ ~ííªr©¨˜ŸŸ›•–~ýÊųAÔeÁi!D$¤¾ÞÔ? íÄÑÖkPꯥ©óQ“P¿TZVЮ©÷QùØü*d¾‚üB~ÇåróóóáËåð 1üØýŠJ÷ïÖÉÙïÀì#õŸ wØW·¿ô£ÅdB}d…ú^î.ŽZõÿJ¡Ÿr–H}]óf™˜/Àü9:»yú’ü]¸¬à§Ž?5¡W­úøB|Òó©ßÚÔ@¨/Äê§&ÅF†]õO;¼÷¶Mþ>ž®NöKmm¬-ÍLŒ@}C}]¤þD¤>ml†ª>­m¬þ2hÛ Ú†ÇŽh=vIj»>N5êÓ»nnÀêKDEœœÌ´¤¸Èðk—/œ :~äÀží¾^nÊe1†e™N.‹V}MÖ€ÕÿT®þNŠúqÉ©LV¨_R*‘•ƒÙÀ>¸_‹ÉÇæW’æËÉçæs8lv.6›ÃÉùüÈ}©¬¼Ý $û0û -ûWâ VŸdP òÒÅ‹¬˜›ÈÕÇ뫃CÛ ÖW[oW}ñG½6¶z\=} ôîÚwèè‰ÓzC#b`x‚± ©_ßÔ‚øëîy,Wÿ%môê÷J½4ÿÊTýCêcÿ<ÝœíÑØX*ÇFmX¨úê»éH}Ssꉳ™râÀ -§eåæó‹DR¬~cóý‡íÝ þ÷ýªßû¡½uÚ[GtÞ:_OWg‡þ»~º¡]–a­·T? ©Ÿ_ Ô¯Bìƒû5(æcó+ÊdRÂ|L>¼ÏÍÉa‘•““›ÇÆð#÷E¥)ŠûöÛ;PØ'Ù'Ãþëa ûý¨G+¨O;Z¯)ÕGñÅ™P_>Èú¤úã°ú¿×ª¯©RQ†yÌØqã'LúÃ'OÕŸêÏ™kfaec»Än…ÓÊáz)äÆÍ˜FFv·°¤TVqëÎÝúÆìUýWRÿñ£.›V”z¥¢"›Ì´ä8ÚØar"N+õå]ÓWxŠžZacÓùXýå+W»{¯[¿yÇÞƒ_|uêÜ7W®Ÿ’ŽÔ/.•–C×÷È®ê¿ì[}XÄW/)»‚ÔoiªGêËÄ%X}FbLDh\8'ŽÚ·këF¸pì–ØÚXÁ…3‡zá ºkm ½­þBýs -õ³±ú"1»±Eš_^&•”Š„È|”òA|VvVVf&WffVv6+'àGî ÑOÊ•ìßÐÖÞÙ…&-Þʰ?¼êË'ÖW®~¯õ½|A©>=´ýy9È@ýÑZõ5Ytõñ0+Ô×›ö!e˜—¯Z½Ö{Ý4ÌØ¿ooþÁÝ -þU À¿Þê÷'b4:Ïúꋃ{wl^ïçíî²r9V¾©ñÇÍœn ‡ÕŸ 3Žžz;4õ'½ÿÁdr…çÍWíú˯q×7£RÞôÖ½îSýW4õQÓ >4]!+-)äæeg0bnÞ¹ôßÿ|ýå¿?ß¹eãgÿZ»fÕ -»%ŸØXY˜ÍEêOÓŸ*_mDÒX½#õ‹ °«ûPÕ¤ù2‰¸TXR$àã˜ÈÏdf¤§§‘•žžÁùY¹yØ}÷e -ö›aÛ::»ú ûšU¿€“ƒÔDêËÖÊÑjfb¤Œ/Zõ5_}úÃ,O½ ‰ÔëâîíG¦Þ ³!õFÅ'§áÔ+’–WÝ®½×ØÜ -þu¡ÌñŒHS_`# `10=%!úæo¿õ1€Öy¯]½jù§ÿøä¯ çÏÃêOÓ›:ùƒ÷'QÕÿÝ@ÔÿMﮩoºpˆ¶#WxëN• ‡Í+,Ë*ªkîÖCÖjëèRQÿ§7ª/ß²iôÔqó²ÒSà©#š†§Nµé¹ò¦Ñ²èh—Eƒ5Xõ7(Ô¿r=©Ÿ‘Ëá ‘×À>¸_}ëV•"è— - ¸ùlˆù@~zZj*#%%WJ -#5 ÁÝçòøâ7˜ý{ °v¶Ã>ê!Ô'WoXÂþ›Õ—ê'ÅE†QÔ÷'Õ·µ±¦­ -õßÓ²¦J½úh˜§€ú3fÍ665_€Ô_æèâæå¸}Ï#ǃÎ^¸|-<2.)-3‡SP$’`õ`ü@4|}©ÿ‹À×tõ;Úpì­©®‰û½@‹ysç|4óCU:7½/œ1 -õõ õÍ,¬ll—Ø­pZãáêïÚwèè‰ÓçƒCB#bL›'ŠË*«kêšM“ê¿ê_ýûHHò'*œ³AÇ üÀÐS§­·©w¤~p aدBäA_Šƒ~!Ÿ—ÏœŸ)ÄONJLL +11)9…ðgf±rÙùªì7µÀ¶÷öß©úýä—Öæªú©Hý«ÁJõ}<]ì—ØÚXYö:Zµêk¶ÈiAæ±:ã±úº† ¾‘‰¹¥õ¢ÅKíœ]=}6mÛ½ÿð±“g._ ‹Œ…ÕÅ%½Ä£G66¤€„úOzº»:Ú€úu5Õ•eb¡€Çf1‰1¡!—Ο>qôо][7~æã±Æi…š‹^s3f0±—®þÈQ£F#õ'"õuõ ‘ú&f–H}Ü´?Ù4¨5,5 Oº¦ 6ýs¿ê?…]A=«ì -JHá(!úöl ðórsq\†Õ775š=k†¡.V¼ÎX…ú#´êw QýSX}ˆGŒŒ,PŸ_T"Keˆ}p¿²²}±Hˆƒ>‡ 9?#-‘Ÿƒ+66.>àg¤‚ûÙ9÷ È£¡²úNm]}csËý‡mÝ”°¯Tÿ' ¨ßÕÙ.Ÿä2‰M235)©Û+WßÔïc{µêk¶T$Õï  ƒ“«¨.ö–ˆeÀú¦`wÏcyì}©^}¥€/`nú„€M -õ9,47ô¹¡¤ê8©?zÔÈ‘CUŸúÔéÓž:Gg7xêåOÝåka”§Œzà A?;“™æ'&ÄÅÆDGEEFF@EFFEEÇÄüÈ}&Äýÿ±_çAMŸiÀ§»;³;+jµîº*µ×z€ â}µ^€ - - -¨°ŠUl‹m±-ÚŠÜ„@ á I¸ä”#„„C- °Ze»;£«Îìó¾¿$ürpHwvòüÁŸ™y‡ïóù}%û­mröûÿqÊþ ²ì?“³? ê“úË­›ò$Ãöfg¦0ðöjv¶¥„ú†„úÓ´©ÿ¶ÿßÿߣ - J3ª½ï"õÿj4©¿Ä|ùªu·ì€48tìÄiâr ¦%²28y‚ⲪÚzISk{g7¨?áSS_õÊGï•·Ü{“Pï%ôt?ââ¤)ଙ¯.àhꎙ…%¨¿ÍÚÖÁÉÕÍÝÓËÛÇ×/0”B¥'§±syE¥•5B±¬©‡ÔW¾y,õUï›Õûv…¦ÜrCÒñK§æ5©_‡°FeO3B_B _‰Š~€——›ÅòSSXLf2&“•’š–žÉFîó…%¥åû²æÖöŽ®îÛ=}jeÿéSuõ_ûZ·W³³•ËÕ§‘Ô?t`¯=¨¿q-Rÿo-À꿇՟¢WrGSý?@š±ú†sMHi¶±wÜð(Jóù þæ¸Dfz—_ê‹$2¬~/¡þHjª¯r#Þë¿Ó‹Ôo‘Š…5•¥…¼\vZ2J ôóõñöòtwsur°µFê[Z˜aõ'Ö{•oÖØàÙ†ÆóAýÅfË,×løt›µƒóA7SgÏÁ›AýØfZV.©oniïDêúf²úðT>ùס'ƒÜ¸Û÷swg{kSc}mUY± “ÁbТÃ.~÷5Þ•ýxWPC2'’ÑúèÉzõ'e&¬>%–ŽÕç#õ«‘úˆ}<¨èKê…Jô¡èçpÀüÔfrƒ‘˜€'‘ÁHJøÓ3Øœn¾ °¸”ø©FYËõvrÙüŸœÃ9|ñÖÔÏËÎHÁIVª’¼ý³kWêÏõayõê¿!«¯žfc”fp%І$ Ÿš€ÊÞ;aõAý¤~g{‹L,õ‹ø¹YiÌ„XPßÿÂùsgOy¸¹:;ØYoûtÃP1¨?ߨP®þpp~‹‚3^õG|óRüæí6vŽÎèK‡Õ—é8\~1þÒ5‘¿t#Ý7ªê?WUž|·«/“ˆú|.'™vÅÔÿâó¿=¸ßÑÞïÊ2å®`õ§M5ÐÜý²¼©ÑU}.¿ðjyeu­°^ e_Ö„GýâB¢èg¦§²˜I >=žF£ÅÅÁŸx:ÈŸÄ÷3³²¹ù|ûbiSKÛNrÙ’—ýgÚ–o2Ô‡þ‚Ô€úÃý’ ê'yñ°ú3ÞUYÞßèÕŸŒÑÒ{ ¦MWé½Dïµuprus÷ôòöñõ#©fv.¯ðjEµP,Åê÷@å¸ÿàÑc\8pòFSÿŘf)ÄêÎŽv6ÛAý•ËÌppŒ5ƒ3žº ]}ù}£P_qß(78(<:.‘•ÁÉ õë õû´©ÿrLõIºnÍâÉnáCg³M÷'ëG·™˜úþdõKʰú¸ìƒû2™TÚ(VAý´0?N‹‹¥RcðP©±q4zr?-#+;³_QU#¬—H›[Û;ºˆ²Ÿ(ûDI•ëåä¨W«\ýÚkåÄÕšHRÿ¨†úòÊ6œäßéÕŸ¬y‡L ªúsŒçú‹L-V¬^¿y«•íž}.GÜOžùêÛ~ºIOJÍÌÉÇê7H›¯wܼÕÓG¨ÿ -‘<ͺ¡ÈÍKmê÷aõ›$õH}_¨?JpPñ}õ#ñMõ ¦N'Ô7škòÁÇ aƒWÁïØ¹{ïCÇNœþò›ï¼êÓ)Ùy%å×ê@ýë7`ßúî¢'>Qt,Õ]ÓT_±*CÁ“ûÑyÓÑÖ" AýB^.;-™ŽÎ?_o/O8oœlçÍ¢ÑÎý®¼ÑÑE}Ø¡þµZ¡¨A ìK±ù„~­ý|n.úÉŒ„xZ,5&:ŠB‰„¡P¢¢c¨±´øF2+5ƒÙ/)­€kh”µ\'•}È¡²ìO’úÿRU¿©–7O}yájU¯lzõßÖ¨©ÿû?€úS§Ï@Î1š‡45_±jݦ-;víÞwàðñ“g0Á1ñŒ”Ìì|L`Cc3"P®þHj¨ÿ\¡þ?Ÿ ªÖõ#ñûo¾<}ŽÄ½ö;w õ—/]²ðãLú³f"õ 4Õ19ªOF*ú‰tZ,†'<""2*ܧ'&±RÓû|9Ô‰ÄÒ¦Ö6eÙðpð±R}"‰/^¿ú/5ÔW,¯–ʦ¸ZA}gGâjµDê¸`¸¿èÕŸì?gEñ½€‹/+ƒ“'(.¯ª…âÛz£«ŠïŠžâÌD}C«úÃ>%×…þ¾¤~scR¿ ?;3…|éG¬þñÃöîÞ¹c˦u«–›êêO—«?>Çõ¡[ O¶Ú…ΛãÊó&FËysG©>i×´Vý±^\/ÎÉLIÂ/ÆêŸ<~Øeßî]V[7úæ¦ðâ÷çÍ™ /ž/Ö«?‰£»úÅ¥U5uÂúÄ>˜OF¿HÀ#ÐGE?ŽM‰  ‚  ¤DSãâ’˜ˆ}n¾ èjyU°^B.û¿<„ iWÿõ°¯Mý!¬þ€ªú|PŸIRßÔw°³V¨¯Öú‹^ý7?*q6€8cõ çšâlcï¸ÿÐQ"ÎAaQq‰¬tWP\êKšZÛ;»îÅÑSS_5xc4ß[]×åÍ˜Š ”7_…H}Â@0P¡þÎ8 TS-°Á´é3þ4sÖlPÿý?Ydj±bõúÍ[­l÷8¹q÷ôòöñEêSéÉ©ìV_,mië¸y[¡þÐøÕ×rÝ(¾spݤÀu£üÎí;÷ -/Ö®£«ú¹„úÕµBQbÌ'Я®ªô ”èCÑGæùAW/ã ¼îGÅÄÒÌÔ `ÿܵZ‘úV;´yÙ»G$/ßó7«>˜cõþroàn/V_&úE|nV:3!vX}7W¥úf£^­zõ'a4Õ޳1Šób³e+×løt›£óÁ£§Îž;â›ÀLÏâò‹J+kDP9@ýÛ½w°ú` R}õàiWH¡þí›m-R1R¿—ÃNM¢S# õ½<ݸ8í±µÚºš¯…é¢Opóý n¾êÉ™úïýyöc¬¾™…%RßÚÖÁÉÕPß/089ËÃ/˰úc¼X]ýÿ(ÔW¬ -¤®­M¸ ò8¬DZtxPÀÅï¾þâóÇíßk¿sûg×®Z¾tɘÌ5œÈu£]g¢ê‡R¨Ãê—ƒúu"(ûhêEuµ€~ÙÕâ~^¡ŸH‡¢ÌºrùR@€¿¿ŸŸ¿@À%€?$,‚-g?+'_XRVY]G”ý.´z >‘Ä_Õ¢øò©¯e¥ú5•¥Hý4PŸJVßV¯þÿÊ( $Ç™0ÔƒH}k;gW7u Á@¡ÒÀ~|f* |6–úòä õ!9ýwz±ú2±’SÈËe§%Ó©”Ð@?_o¤¾«$©o‰Ô%9¯ªþÙ¯§¨Ï4àsãd¼ ¢ˆåTDcA1‚T[r&—blˆ""Šˆ "¥÷Þ{ï• ,½/KG‰•¢1žç š›èœWž÷ýý¶±, âš™ìó¼3ÏÌó|Þï3iǬ.þ¹ìñÿÜ£i«ÿv"õ‰U¹ŽRUYq>5=9Ž HÆúz:ZjHýªJòŸo\¿©¿d‘¤Ä|q²a96°š‘ú®\êÓèU5õÍ f°ª£ßÜX_SUQF+ÊÏ¡¢¤æ{yz¸»»A¹»{xzùøú‡†GÅÄ'¥fdçÀ{å•58ì÷BØï¿?0ôOâó£,õß|Tõ‹ò²Óú¬Ý=‡wwÞ]¶ú¬ÄÆsµŠFY5uòUPÙ†’ïþCšÇOÅÉ×ÙÃ7(<&1-+·°´¢¦¡¥­«·©?Dœ™/È+ó]ÔÇ“ƒÔïGê³''˜Wâš«Ï÷ÏI°Ôç»n ŒY×M\r:5¿¸¼ª®©µ£-ÛƒARýÑ1NÀz+Pý †Uù‘kUx’4¬†VUÄê¯Z‰©/äzOõó°Ò,õ;ùím­ @¿¶º¢œV\KÍL'Ð -ðóÝÝ\]œq¹¸º¹ƒû~A,ö©¹Å¥tvØ¿u÷ÞžDØ=Î( -Y}Ö(»[ŠÔOŒåIlšDbÛF&6iR}q¬¾èjj RñÒåRÒŸ­“‘•SP&ÔW×ÔÖ=sÁДbê†E'¤fåÒè >³³·îL„ú(oÀཞ@ýÿM#ú^ÃÑ]‰Ôô$VôõõNhîŒàœ)än˜³À’œ–WRÅ ¬¦¡¥sZ/°›w@hT\rÆÕüõ!a=}Æ­>ϦM¦¾Àã†? q¾9þã†lX´*¶fEý:P¿³æ··1-M u5•ôҒ¼«Y€~|LdX}o0ßÅÙÉÑ—£“³ ¸ïí뛜–°Ã>¬º:qâB£HD®ñ d¶ÕŸ<±£Ã¥¾.¨¿Ÿ­¾ R¨/ê*R_Ø5N}˜g±yâ $$/]&%½z­Œìæ-Ê[wîúf÷>õ#ÇNž¹pÙÄÒÖÉÝÔOɼZPB¯®ofvöê?z‚óÆË äQÂ+ñ!Vÿzw¨_U^œOÍHõ¼Ým,Œ ôõt´4Ôö~ÿ·¿îPU"Õ_ñîÑ—_ýyH}hxíú›awr5L¨Ÿ’ —£†;z®£†'o˜_ý7¸áWHýgOŸ<Âê÷vµµ4ÔT”æf¥&Æ„ùz8ÛQLùVe"õE«"”šõšZú¨ÚÚ˜­-õkª*ÊhEù9Ù©Iñ(éúûxy€ùŽöv¶¶66¶¶vöŽà¾‡°i?.1%=;'ŸûŒ¶ÎÈwï»gç‹1¹ˆ»óßÂUŸ'Àd¥áQf«¯­©NŒ²²‚œ¬ÌZ‘ú³xÕ'$Ô_AªO ¸D}ã¹¢/ŒÞ{SE_Áê¿ý'(ˆÕ¿wçÆõžŽÖæúêò’ü«)ñQ¡,õÏŸÖ9¦q«¿Ui ¨¿võÊË–,’|'õÿ4‘ú¼ “ßÜAôÍç|s )™94ÞonÒãF°ú£„ú‡îݹÙ×ÛÉõé´Âœ¬Ô„è°@B}à gðªìþf׸UY«"R_˜õê'¤fRó -Aýj¤> -ûm`> Ïhnl¨«®,/-.È¥f¦%'ÄFè»»‚ùv¶6ÖVVŠ••µ­¸ïJ°Ÿ/械_Ûù£ûÚ·ˆòó/ÿ1‹Äò S}ÖÙÊ`Ò8Æð©>1Ê›Eêì}—,#çY^IÏ³š†–Žž¾¡¾Hd\r5¿˜P¿GÿƒÁaV“ ê‡ú¸;ÙZš\>úä±#÷‚;A}4:H}îÑùd£3õ7§ ¼™è·45ÔÕTÑËJ -ós²ÒSã¢#Bƒôìm­­(–¸,)VÖ¶öûÁa‘1 ÉéY(ìWT×71Ú»`ïô?øixäñ/xYËÇ›¹>¸ú“­8ÀÁf'©>×(‹Ô~ñ«Ï™çUX}EÕí_~ýݵÃGOè»ddníó›”NÍ+.«¬md´Cà¸&P®Ì‰âÆ'PŠì›‰³/¡ ŒÎI -ÎPý¹Ð°¨¿©/%ýÙ:Y9Pÿ‹¯¾ýa¿º¦¶îYR}ß ð˜ÄÔ¬ÜÂÒ -P¿ Ô¿u÷þO,õǦ¯¾ÀÛ¦jÜmƒ~9tÛì#o›™þr¢š…š‰úÜê—”UT×Ö76·´ûLŒ~sc}-'ê'ÅÇD†øúNv6V s33S(33s Š•Á~HxT\b*ñ‘TÕ6Â(ö ÄÅžEˆ\/?¾úäÙÊ¥>{u¨/e¡9Ðs¸æyÞühž—ƒúë6l’WTÁê8tôø©s—®˜YÙ»xúGÄ&¥eç•bõ»à̇Gf¨þ¡þÈÐŒ¨Ï ‰htäxÏÄigßqê³û]¼t9RÃ&9BýCšÇuÏ^dõ ê§eç•V@¿m]½d¿¡ßç‚ú¨þØ(Ú”Ÿ >è¿}ãzwGkS]Uyq>5#9.2Ä«ol ¯§£¥¡¶©¯ª$ÿùÆõkúKIJÌã_áŽÍ«f¨>š¤~.G}F+ }õ+ÊJŠˆ¨èëåз¦Xš›™šA›˜š™[’ì{û†FÄÄ£°_«¦¡™ÙÑwo`èá£'O¹—WýÙ`Ÿgu9ê?ç¨ÏZ]Rý°@~õß#°‰jÖJ‚ ¾Ô* -âì›ÆÎ¾¤‚Sd_~õ'ö™X”›•Æ:­Ì®\<«{\óÐþ¾ýê‹m* -r›6¬#Õ_¸`þ<±Oÿ§þµîvFS]eYq5= ©ïåê`mntI_ï„Öaµ½ß}ýåvUE¬þª•Ëÿ²dÑB‘ú®ÙR¿ ÔGÅ`´45Ö×UWÒ9Q?"4ÈÏÛÃÕÙÁÖšbafjltÅ×#cS3 Š5°ïæéã†Â~&½º¾©µ½«·ïæ{ƒ±†/ßk¡¨ÿŠXÝ'¼êÓAýL¬¾»“­¥ Rÿ˜HýßQ PP’̾2²r -Ê„úêšÚºg/šRìœ=@ýè„Ô¬œBV¿&å RýÑwW382ŒÕ¿ÖÕÎh¬­,-ÊËNKŒöót±GêŸ;uüè¡Hýí*ŠXýUR˜A¬>ž©/ÎVŸç¶9|ôÜ6FæÖ°¿þ!‘±IéÔ¼bBýîk7n÷?&mtì[ý·ÕŸªÝ2Ôn«]PÿÜ©G؃ÔWQ”‡v×ðµû ´;G´)¼fCýªÚú†¦fÌ>GýúÚêŠrDýl"êøxº9£¤oafæ_6¸epÜ7ömì]ܽpØOHNφ7Ë«êàîìì黉‡G¼|¿þë·ß>´úoHõG_<ö©?pÿîMPŸÙÒPM§ð¨ùßïö]0¸®þ°Ïðù̼Ÿ×÷ýX;¸¸{ûžŽŒMLËÌ-,­„ÂÑq%úÆ»õŸóÕ ®ú<Ñy%ŠA(¿—Pù%d`Éò+ÄàtÕÿHP}¼¿r‹—*­\£¬¢ŽÔß§¥£odF㪟Bgä—°ªš¡_õ‹VŸoÏ&SŸ8mØêwÃsÑiÃD§ ç'gÉó“Û0ÝŸœl$1Q¿±«ЇªßØP[]QV\›MGU?2,$ð„ŸÏQ7WgG;[k<6¶vNΈ}_ÿ“ADÙÏÈÎ+(A ¤µóBï -#:<¹ËÇí ÒRÿî[cW±ú-„ú™¼ê›sÕW]¿v•ҲŋõEž­²,¿ëáWš­þBR}ÕMÛ Ðûÿ}è;й•=V?$"&!53§ ´¢©É#¯L¼GÜà × vt^ó¨ÿóÓ'Xýû·AýQP¿«½¹¾šUœÏÈH‰'Õ§™éëhaõÕU”׬TZª¸3ÈͦT†¨ýUDû«¬ªŽ÷Wë ¾± í¯_zn -=§ õ«ö.¼hc7á¹ðsßT}ö¦”R}";bîD±¯ù“[€Ô_¶byÚü‹ï´9›˜š™ ê×¢ÓæâÀRŸlW‘ú赿ñ­™8õŸ¿i?²Àý©¿Im=R±ÂB¶úøµ2õ¥5o­>« -©ßBªßAVýÚªŠ²âüÜìŒÔĸèˆP\õ=ޏ8úÈ|s3sä>°ïäzÄã(*ûaQ± )Ùy…PAšÚÎw÷ Ž„\¾gŒú!lõAý}“«/˲‡Lô á@ËúËW~ êoõ÷jêè™Rm õÃΜMÎ`0‹Ë«ë!y=pe‚úã÷pðO¼ÉõQv@}”áÆ`ÌÓÖ®RZ†îDäàlÒÁiª?‡P_Ô_½v½Ú¦m_C¨oaÍU?-+·°´’PŸØ³;÷8êÿ2™ú‚ÿ¸gø'âµ9™œœd^+ÉŒ$Ô¯olBêw`ô¡ê7««©d•1s²Ò“b£ÂC‚PÕwsur°ôÁ|SSpØ·sp&Ê~phDôÙ¤ô¬Ü‚ì^k'ÙA8•k²å“¾úe™úàð9HzÖì9X}yÅ% þ:•[¶ïüv¯æ=CSªãaOßÁHýôlfQyUîèʼêÿg’àýWŒúⲃÛošèö«*²ýNþ× -¨¿©¿Am3R_Cû‰…µƒ«‡Ïñ Ð¨8P?¯°¬²®±µ³Ô‡×rÔJªÿrjõá±ø²yH^6ׯŒ÷ó\6)܈&ËF6’‰¨®©¥µØôÛÛZšêª+ËK -óô´¤ø˜ÈÐSÇqÕw´³±¢Z€ùб1…î[P­lì]PÙ?~&ÏœübؽÆÖŽ ½ãP¹n V®ß>õÝÄ«/&˲0¿ó§þ¼rò -Xý 7ƒú{4èšX‚ú¤ƒP8òŠÊª°ƒ}ƒX}äàÅ:8¥ú÷ˆì ^¼ÐÙÚX[YV˜›êG…÷ñpu°¶ Ò&ÔW“˜ú3AýÏúèµ+V¯õñkµu àµõE¿öâµ"ÿq‚ê¿äUÿÇÜŸ ÕïAêW³Jòô”øèðS'yq²£™éëhíݽkÇVu¬¾â"9Á~4C¦¾4Fbê·ê·µ¶4«¯­®(+.ÈËÎHMŒ‹Ž8|ÒÏU}{[Œ>ÅØ1³oëàäêîåëp*,*6!…Î`•á˳«·ÔgW.îòqÔýžÕw­>y·ÊÔ# þ'Ÿþ…×A²ýnÇíW—·ýÆ’í·–l¿ßó´ß'‚Á§þK2;Oÿ‚úã7®]ìëõë*ËŠò²Ò’â8ê[šèjkìùæëí›Õ6 õ—(ȳ՟‰²óç?¨þ'Ÿ~JüãæŠÿÇ‘—M’¨ËæÁd— ¯ú¯xÔÆQ©?Ôßs¾­©¾šUœÏÈH>ËVß–jj¤§£‰Ôß²QEù˕˗*Êcõçp6E¶(Ršé«ŸÈV¿†T¿WýÖfP¿¦ŠUZ”Ÿ›•‘’{&<$ðÄ1o\õ­iú†0†˜}Kš5*ûžÞ~'ƒC#câ“Ó³ó -K+jšÛ»zú‡8•Käò}hê¯]¥´Œ­þ›÷5ÙHrD·ß¿!õ*,Fê¯WÛ´ Ô߯}È€bamïâîíx:ÔÏÌ-,Å}ãÂő﯎ݺs—¼çbÔÿŸõÂǰúHýK¤úU ~v:R?ø„¯çaGKCÝ{¾Ý¹}óÆ ëBRýϦ¯>û²™ÿw9yE¬¾ÊÆ-H}Íz†¦T®úÉÙÌâòªzP¿G¼ú¯Äª/ôØäc‡úõË‹™Ù þ™0ò±TSC½š{á± >~,GýY2õ¥;ÓPßK„úÍHýv„~KscC]M%«´™“™žv*Àß×˪¾•¥¹)Ìÿ¸O15·„²ï|Øýè±A§#¢¡ƒdå” õ¹q”Šú¯ßBýýlõ¡¯-VàW_f韃D¢ÕWÝ´ ½M1·"Ô‰ˆIHÍÌ-€¾ÔïFêß¾{ïRÿ—__¼àž ú¯¦€°ª¼ˆ™Î¡%†_}¹óþ„Sª¯ êïØµ{¯¦Žž‘)ÕÖéZßðhPŸÁ,fUcõû‡F¯\¿9>q«ÿäéÏ<ê¿~õøÅµÁ/?vŠ_œþÅÉÔ—öHNý6õ«+ËK -óô´¤³1‘¡Á'ý|<ÝPÕ§Z˜QŒ}}=}`ߨÄÌʾ“«›—¯@H8ñÙ‚"ŽÝ}ƒ#—¯MR¹Þ·ú. >…T›Lýc„ÕG‰ž;oþœD«ãDkÔ76§¡ëÕ/«OÏ!úF{¨?zuì&¨ÿ«ÏP¼ú¯ùÔ‚Õ¿?1~óú•KCýœúËàÖ_'[²þîÞ¹cÚõ—g}?æ__Péò•ÿg¿>œ¢¼Ó8€On&—\,ÄX"£#Q£â€5¢bÔ»l_¶P–Þ‘"EŠ‚" ¢H—ŽtDPšbD,oÌxcÃxwIO“›Ë™Læžßï}÷ÝÂ.,BVf²ÏðÎüf¾Ïçý>ËWš˜cõm@}±Lýc9%• >zlïÀ-¤þÃaêÿ¢‰ú?"õÑ¢ =Bêßì§›"¬~|LDH€·›³Ë´³Þai±a©±,ŠÒa£S_{3õs K*ª¤êwâ²ß ê·Ÿoki>]_sª¼¸07+3=%1>6*<$ÈÏÛª¾Ðó™0à>b—}ÿ Ðˆ½ðÙÔ ølieM¨ßÕs­ð6ª\“Uý`B}†­ÕvK‹õ«M•Õ×…ùmŒjõ‰D D¯õÂ6t6_,! „äÕ6êká0õ!Õÿ‘Rÿ!¨ÿ5Rÿ"¨ßXS êKO>ê‹ù,:¨¿©¿ÔÿTúzõÉÇš(=ýâT?ÿâÆ ¾Ò¢ ‹2ØÔo9S_U^”—•q8qt8RßIÀeØ©Y]=ÒîL úÝýŽöó­-MHý²â‚œ¬£iÉ÷ÇDî ôõr—8‰|.‡Åd0ìí &‹Ãå  ì»{ù†„ïK8t8ãx|¶¦¡éÜ…®ž«ý7°úÇH+ÄñçÉ¡~t¸JõÉ -ƒÕÿà}Ýáªõ¡Ô–h ¡¬þîR][Û/^Zýך«ÿý¿ž=}‚Õ¿5ÐwåbG[scmeIa¥¾§DÌgÓm°úæ&+—/ýìSƒùXý§O›ú*+÷‹Óè°‘mÙ+U[6ºúŠ‹r¦®ªì¤T}´(N²EY¥Rýwu‹¢­™õ/`õ»±úηžmj¬«®,+ÊÏ9ž‘št`_tdØîO7Tõ9l&˜O§ƒûL6‡ç rtqóô ÞŸ˜rv¯¸¢º© Ô¿¥¬þðòVÔW3Qaàp]!¸R}í]³.ÍZ›w( ©ú;uºVžÁBÃ%ËŒLÌõi,žÔ ŒMHJËÌ.@}Ôï¾Ü{ýæ»ßÜðx«ÿâå+9õQýŸÿK¨Â£¨þÙÓµ•¥ >q(îöõ@ýÛ6o\g¾jœê+6©[_/Jý“¥§êNŸ=ßyéjŸÂ–½ Õÿµe¿¤þOÒE·¢E¹u£-ÊY¹zoEõÈcokµmËÆu >¼uÑ'ó õ©·Ê«¯íÐü±f"Ô?צ ~Û9BýÒ¢üìcGJˆ‹Ž ò÷öpuCÕg³`>î3Xl._(vvõðñß³ÿ`Jzfv~qyuý™2ÐBF¹=ß‚ú² -C®Ö2õ A}ý9³f*¨¯ë0ZœÑÕ76[³aÓÖÖ4&OäìîC©Ÿ}®LPÿRÿžJõå%¤ÔQ¯AÂ+—:‘ú§J ) ýä w Ý5_nþb¹‰ê»f´?œn&jÆ«~mV¿]ª~R¿ùLCmUEÉɼ™é)‰ñ±Q{B}½Ü\…\6“AómmÁ}:ƒÉæ:ˆ%î^~A!áÑûÐwOà<ž>ÛÖqñJßÀdT¿«ê; ¹LP+¨o¦ >•æ?ëÔ×ê(©‘ž"•ÔG‚úHBk;Wèä&S?ú\™H}$á½û”„/UK¨±úª*¨ï$à0l­¶o±Xêḩ?gRªFw¢æêÃ[Ô[±úè­çÈ·ÞUñÖ×cPÿ;Pÿ1Vÿæ@ïå‹­Í5•%2õ=\Ä|}×W þZPöDª¾¬üTÝLÜL°úíçÛZ°úå%…¹”úÁ>žnÎbŸÃbØÓÀ|pŸfÏ`qùBG7/ßÀð½ðÝÔ£Yyp{ÖN:õÉÅ­¯*õ¦Âêû¸; yLÚ.¤þZ3#Yš©Í%ã¬c_[£¨þ›ôßÎKWûoý÷ɈýW½ú/‰ð Axîáðôtá𕫇¢E«í– ¾)¡þB}½‰P_ú‡Û`aIÞ5r¸ü¢1Þ5Êê¿&ÕE©ÿÔ¿ƒÔïnomn¨©()ÈÎLKJˆ õE<PŸØi;Ò›>U§¾–gBÕïÂê·¶4Ÿ®¯9U^\˜›u4-ùàþ˜È°Ýþ>® >Ô§Óúˆ}(û,O vvõô Þ—p(5#+÷dé©ÚF¬~ïÀM¤þƒÇC“Aýž® ç°úù'°úfw¹4“—«´¯ÁæNùàýa«« ôï=ª$œNH8Ô_º"½"m‘8ºÊÔÏ…¾Qwz\êS¾xþÃwHý÷ïÝ…ð\£Â#«  ¾Ô·FꯙõñNé®1BêoÚŠÔç Ý}dê—W7êßÄê“K¦‰ú¿*¨ÿ«?ô=õÎÍëXý¦†êŠâ|J}hGxOˆvd,UÎ,úocƧ~9R¿©ßìw)©_ ¯¾·‡ÄIäÀe3QÕ·ÙcƒÊ>“Ís9¹zø õcàö<ž[XZYÛØÜÚÞ}Ô¿£Rýׯþ°ºöoª®É-nS}uy1¨/×aàrµAê¯3_…Ô_Dª/gižuìke†«"ýÑÌÙs©H›+FzÏÞ}SŽÇ}®ÌÎKWúnÜBê?|òTªþO<¥¾ñÛðð(RHªgð:ie@êáÈeÚYﰴذÆÔ©¿pÁ¼q¨ÿ©þ P_Ô7\²ÌÈØŒPŸÆä‰@ýÀÐÈØ„¤´LP¿ÔÇK¦^ý_Õª?ì©Rõ¥Om ö$õT}!I³Fê¯!Õ'ž:ƒ(GïéÔ×â¼™ú I©êÔ¿ê7!õËŠ rŽg¤&Øäçí.q:pqÕô­­ûPöÙ\P_âáíß—ª_Cª}2¨¯”fªÃD…ùzHÄ|6Ýfç¶-×­^Eö5gTb¦êyÖ•}mjõ‰H H¯$Õ·±g;ˆ%2õspßÀWfßÀ-te‚úÏ@}5Wæ¨êË -ð5(À#RhjlôùbC9õ§È¢£±úè©S§ë͘9ëcýy¤úk‘ú»h,žÈE¦~vAqEMƒbµzJ.Ù+K6¢úÏGÿÁ¹‘?¸­ª~p=U77cT_òÆê{¹»8 -ùPU}kTöé —/t”¸#õ#câ£Ý+‘W_m Ñ‚úŠi&.×šŠ’‚ìÌôäq ¾Ÿ§ÄÑcokµÍÒbýjg´¹úÏž9ãÃéDaÓ•}-%á°Hë#õ—,_ib¾ö‹Í_~eCgóÅß t¾&§CɃ+SI}ž¡^}”µê÷á‘UB}Ñð¬/-ÀÑ «S6¥¾‰~*¨Ï¹üŸýúðŠòÌÂ~ÎnÌnÖ¬klkDQlØDÅ^bf€aè)*1¨A b,A,X" €)"VŒÔDcGQ1¶¨G»f÷Þ÷ý0ƒÀ#çìwÿƒ÷œçþÞç2O%êïØÉ.YÙòÔ꟪Ný—¨>mG7¯_½\UqÕßW›•ž’°e§¾›£µÔt:Y¦ukÒY#Žæ¦eÔÏËÝ•‘–¨ÿ]ØÂ ¹~Þ®Žö -¹•LŠè›š"ûR™•Ô÷ðñ›ûõ‚ÅáËVF1êïùøê³¦ÖâîÍÛ•±c[Ü&P?",4x®Ÿ—«£‚Æ™Ý\=Ýî >ÓbIJ¯ýiB= p(K¡¥€BP(Ìø…ï©þs¢~Mõ­¿ü|ñB T†íÛxõg{8+mdf3AýÑ# ˆúºÐÈÈD§êÿ©±Ou<5Žy*|p¥Ì×TõíˆQÿÚTÿôñ’ƒû -r²Ò’Aý5+—-Y8ž¨¯°¶ÕoÓêæådƒú‰¨þªåDý9~Þî.ŽJ[P«¾) –}™•\¡ttõðFõõ1ìñyæc¨¯¢®1‹{ìȽy»3R“â6¯ZFãÌœ®ds‡Òï«×³;É3¿ºbÙ×ê4®OœŠX ê-X¼t9)ÀÛÙäúB6yÏU&¯¾úÿbÂó’Sÿ6¨‰U?Šké¡8Ô·Gõ¿š4N¨~g¨¯ê¬ñ­sÖÕ9k=~BÕó¶Éêߥê—Sõós2Ó’ãyõ±YY˜N›<Þd¤á°Áú}{3[Ò¾*õµšÿ«Ñ¬ú% þbNý­›Ö¯aÕ÷åÕ§è#û¨¾­ÒÑ…QɲQëõ ©ú­A}º¸gOúEù»3S“ã7Ó8ÃéêãÓÍ516õ±ÅÐÕÅ@·ýì¯\¢Å²¯Q£~‡N]¾ÔéAÔ>bÔØ‰Sg˜ÉäJgwNýØÄí;³÷7|eÒè5BýÇœú•e¥§HeàEF}{Kª¾±ÁPr'ªQ_…*Ôg¶—¨¯ê›ŒŸ4Mê;¸àö††E%KJÍØOÕ/¯¼tåªÿ¨ÿûËWøÒÆ©ÿŠU¿†ª_Y~Õ/õqMH9 - ž ê;€úTŸl éFðRT¿­¨¾–§åÔOåÔÿ6t~à_/w¥­µ¥«¾D"!êK-­Q}woß9A!Œúظ²[úìâ–Ÿ=ÅÄ™œ®Ñ«"Ã…ø`_³4'y¦·+SØèñ*–}íOõ!Óm?ÿ;Q¿+ªßÔ7"êÏ’Ê•N ~`È¢ðÈUÑ1 ~zvnañ¡£'øäÝo@ý?T©ÿö U,|Ps—QŸV8w$ñêûzºØÛZš³êêßWO·»†Õ74&ÛkneK·—¨¿~s|Rj&ª_rÕ¿|åÚMFýgõÔ¯~õŸRõoƒúdMØr”Ç©ïëéê`ke.TŸy©Pý?‹êkg4£þANýÃõÕ_Šêøz¹9;ØÙðêK@}sTßÎÁÅÝ‹ª±âN}h\ÜîÝ©¿{-¤þ¿9õI]Cõaqù³¯ '+=%!6&zõò¥‹@_ót<[˜NŸ2aÌ(£áCö'5WØ]’he_Œu NmõI¦AýöŒú½û ŒêO˜‚êÛ9¹yûsê'¤¤gå0êW1É{øëoOš ~] oÔ²0#Õç,„ì`c˜¨¶°Ñê«Þ^V}²½^~¼úÉ©™9ùEKŽŸ>[^…êß¹{ŸUÿuãÔÿÀÿ–Êýo䥸¿IàkæKÅÑàhXý#Dý¡ú‘TýÙ¼ú}dÕ·±sp¦ê/$êodÕ4.m©ÿ¾®ú4ÎxºV•Ÿ;}âè¡â‚Üìôí‰[7®eóìåꨰ–Κ1uâØÑ#H {÷ì¡C­¾ì‹¹n¹©¥~›ZêwëÑÕf4rÌ„)ÓM¥ÖvŽDý…K–­\³aKBJ¨¿“w®¢êòÕë7Q}´ð…j ¹ðüQOýg|f*Ó€ãnÀÝš¡¾à¥¸½:vîZ{{Ma{AýyóÉKQý4Pª®Ùêók娚Q¿Õß›·+cÇ6þª™íábociÆ^5û÷ÑÓÕiÒU#ŽGsê—ÔVgj2QeõeDý™3‰ú2¢¾U?,â{T?±Õ¨‹{ÿî›×®þTUqþ ª_¸g×N’gÜÜ…óçù{»9)å2 ôx“‘†Ãè×§ö˜ÚeÿS®ì‹ì·ô¨T¿U¿;Uߪoa­ptã,õ“Ó²r -¨…±Pú¯YõIxheÀC1?'35™WßÏËÕAae!T¿g]õÛ4G}ö¥új_ßÔ—6¨þ¯œúÊJO;²ŸªÏv#TßÙÞFFÕa0Ôï¥N}q9Z~´§¾§›³½ÂÆJfaêÏ„õÍ,dVTýÙõÓ³s?šú\œÙŽwçÖõ«?]¼p¾ôä‡!Ïx»Âæ®Y¹lÉ¢À4¯Ó&O3Êh8$šìn×.²ÿ¦ì‹ìkc¶°/±P3 ¸éê§%3ÙÆà‡w¢•…)ª…Q¿k玄êóª|h㮢¾·à㮚Ój®šwMUÿ¨ÕÇ-!ÝÔ_½|éâA ¾ÕŸ:q¬PýN¢úe4¡þ¾ýŒú% þÁÚêGõƒç¡úNªÕWØSõçõ×6Y}M±/ˆ3äY ~õ­ë4Ïx»‘ÍMؽ* 5Æ -›µ…é L4\¯ƒôëÝ«¶ì“P‹ìkoT«/ÈôPCc>Ó^éаˆQ¨~jæîü"Tÿly%U¿†UÿUsÔ¿GÕ¯ êädav6pê»9bt¦O™0ÏDý¾½I_è¤yõ¥Öv ¾`È¢ðÈUDýtPŸì¨ÏïØáŽ5¤þ;Fýß_<#êã–ðݨpOöÎ퉼ú>îÎJ¹lîȨÉú°"]pC ÑZ$ª¯µÑŠúßÏó§êˉúª¾„¨/WØ;¹y¶*õ™Å}ñì “g¼]+ËΞ"›››•ž’ †ã54x.¬®“œ\¯ÐØHÙ[§ìö?Ù×ÎpÖËô—Ýu…ê›[Ù:¸xòêÇ%õ9v -Ô¿êßV§þ{5ê¿ãÃèý*QÿÄÑC˜´úÞõ† †¾Ð³UrS_ýzù°úÃF¡ú³@}'Nýè˜XPÿÃ;Ö,õÏ€úÅ ~úöÄØ˜hN}'¡úú¡úìCÛ~Ƭ‡¨¾–¦%ÕOˆÝ¸Õ_Œêûxº²êÓªe_¥ú±­C}.Ï5Õ·o@_«,‡¾vôP1©1Ûâ6­‹Z«è=ÆÞÆÒ\» ‘†²¯_»ìÓ –.0 ¶È~ËŽ ÓŸ¨VßÀØdܤ¯$æ–¶ö¨þ×éïX· ÔÏØGÕ/«¼ôó/7õŸ>ñòÕë7oß6RýWLeõCPÿ ¨_L¨wbø¢@PßÎZÚ"êëôèŨ?vâÔ³¤r;'w^ýú;V}ïAýk²úçÉC s³±ŰõíäRª¾Ñp|¨@ý¿‰êky´®¾Ôœ¨?cQß\*P?4ì»Ö¥þsÈó£5wïÜõÉæÂñº7oWFjRüf(l‘áÐcæÌötuPXc¤'3166Ë~O(ûÿìÜRÝÔgrݦnÙÓÝ"£BýÏÛýƒU¿Oÿ þhP¦¹¥½‹Çì9¼ú;2våíEõK9õZT[Vß›Vg ©Eê?~ÚõáSÓÂû©É§>5{„ô©aG¨#jõíÿ@ê·¿mÅê£ä>þåçªò{ÅEWóQ9}üHB\LÔ¶ð° •Kû¸;;ØXBx©²¯(/'óƒÔxñqcF"Ùʲ/ªáŰ õCóùvNn >!¨Ÿ’‘ýµêîZýªûwïܼ~éBö¹Bý[à›¸rÉ"Ô(õ5ù¨ÿ­€êõGƒúR¼ê‹.a,zš^ÔïyÑ®Ôÿ©C‚ªQ-¨_r»2’•~«¿3"<,8Š‘§‹£ ¡>‡P_šUÀFtê/öõrsüê“ÁýðoB}"¹Ïž‚úÕ袡°eg¤&H<' »­_»j™¿¯§+”}sºì«*Mš(‹ÎZ|,Ü5“ýoXöû:ªÿÝ÷]bÈ[C^``ØHbØÝéõ þÓÇÄ?ñæõˤúöîꬾž¶¦œMÔŠÕI.Êïy[õÕÏ[gõÿCªOV£¦ç Oaõq3õO&rÕ‡„¸@/2c„ÕWQÄêC)9bXgõâhþL#Jõ= õ­@}3Pߪ'õË*kD®>ôGªÆàä¾lzF\4.l—/æd¦A‘9¼ï®È­›BƒW,òÆeß•ý)ˆ¯2œ5*ûãÆŽöA}‚ý!,û"~êK"õ•hõ­@}/®úûáôRÎe_¸ÞõÑé½hHýÿRŶ·Äí õ¡Ô¿˜‘ßD†úÞ þ|Z}e¦úÃz§þ_zúÔÎ66ŸoïäŽÔ_ ጉCê§fä€ú·„¬~¡~nV¨pßnZ}PßÂdŽäCK]EQÔ:«þÌàPßw°¨Ï~µú÷úy ~2V?jÛ¦Ðu«—úÎÖX}}Îd®ú£™êsS1GógšþW?âëÔ??8ÔÇÝü¢±¢[NºðÚ¥ Ù©É'àÿ½cëÆÐuË©²o6o6”}]mMu%…‰²ð‰ÅìbÙéð¨?„ú þô™sM­l]½0Ô?EŽû•¤ú=žžêçd¤bõc"·nüÛÚU”úƳ )õe¡*Àÿñïð›n4ìV}yP²Ž>VßÚÞÙÝÇ¡þ‰¤ÔÌœ<¤þ=ZýJ}´gïÔG©ÿ²éR"R\Tp%/73 ÂU߯“ú²ÒR¼êw·';ÂWßžPÉŠÀWŸ>h*¹è¢©è¢"Syÿ.dn:+ýÌ©cGÄÅDm ßB—}8ë¹3gLÓçhA€ ·M”@ßX’ýïXöE2ݨ?AF©¯E¨o ê{2Ô?ô㩳éäé‘êó9=âöºVÿãº1PêWão"¥~BW}w'ûNê‹“ê÷¨a7êKËÊ+*«“ê[ê/c¨ŸÌTÿÑJýÖ·í}UÿÖ ¤>ô¢£ \õ}<œí­-`O}VýžQß|Щÿ¿Žê¿×¶V¢°Á÷µ¾îáƒ*”Ý‚«ùç:—’U&~OôŽ-ÑvDÙ·µ23žc4}ªžÎd UåIòr2a hn,û"Þ¨?«oãè‚Ô  ع'žT?Ÿ÷ôZ~}ýFõ )õ›Hõ±†s2S“@C®ú>´ú ¡°ÕWAêÎ6Aê{ø ð†nÚµ{R?-3—P¿¢ºöÑ“†.ÕïŒ~õ#Õ‡bDí™—C¨Oí 껃úÔžêÊ´ú½Û“á«~Gõé‹~ÿ®ˆnË«æçõ(»e%· ¯CeËLƒ²øÀ^ªì/ó‡íœì­-MçÍ24˜¢« }F‰e€†¯ú# õ¥ õ9 õý—3Ô?“žu>ÿjáí8½Úºú¤>Ò°­ýw>êéR}††\õ{ÐÔLC>ê“á¥ÔçèãðZ;8á%Ô?˜Hª_PÄGý÷‚¨ß»×ͯãë&/ÐëÆŽpg¨ïì6ˆÔÿÌTN¾¯Pö›_ &S[Sy¿ô5Yö’e?¯çãáâh7ßÜdîÌÓô9Zšj*J -e¥'Àq³ì‹x:«? «/ŽÕWTÁêÃQ[ÂQ{ú2ÔO7ºè¦!»¸ìCx‰²_\T@•ýcÜW/Xäãáâh7ßÂdî,Cƒ)ºÚ“ÕU•'ÉËÉü0ARB8˾ˆ¦ë£–’–eªoÔGGM©"9-37ix¯¢iø¬ée_Ô¿DP¿¦¢ Ô¿š—›•–|’¡¾Ïê‚ú–^O®úñ‡@ýô¬óBU¿±ƒú§ê/!Ô7õ§êicõeHõG`õ¿eÕå°ê3Ù§Õ§nº½­Ž‡·±®ºº¢ìîmnÙO<»+r[xXÈšUËüz¹;;ØZ™›Ì™9cš¾®¶¦ºŠÍþXûCYöûwGýMêû0Ô?J¨寭âþP?Ô?ÃU?p9¨ïâ`ƒÕŸÂÑBêËIOè«úcÆŠKBxU4 ¼ÓgÎ5µ´qtñ\ÈPÿGRýÂÛ%±ÚºúˆÞ³Üó“`ê7cõTÝÇê_@êc¨¿ÈÛm¯ú’ ¾¨ÿ=«¾¨‡U¿ƒúŸ)õñQ·ÃQãð6ÃÒ e¿”Yö$ìÛ½}ËÆÐà •Ký`C'{K3cÌ>‡Ë¾f_Œe_DÃGýá#G1Õ×Ñ70œmlamïìÎU?.ÔOÍÌéBýwBS?~ÏΈð°à¾ªO…¯Iì9©?N«¯¤ª¡¥ËP?€¡þ)¬>oÄZ~}ý†±¾¨Ô?¼Ÿ«¾­>´!U%VýVý.Ô§Ê>„ÿ`!½TÙ¿e?•}´âþ½1QôŠ>® ì­-MçÍ6š>U£¥©†Ø—eÙñt¯þ$e5P¨oN©¿Ž:2†WýòꟻSŸq{<êâU¿¶¦’Pÿ|V:¨ˆ¡¾'¨o)LõGêËð¨oëè -ê¯bª/HÄ`Q^õÉ5¡µRê××=õ!×/QêÇFoß¼!$ˆPß–R_ƒU€‡UŸ©>]nvA}tÕÊ~áµËs²ÒÏž>~ô`|ì®È­›ÂBÖ¬^°ÈÛÃÅÑÎÚ‚d_GKCMEQa"büÿÙ¯§(®<à•T%ºkUÆ5«â•J6&jÁ[Áû(ˆ‚ - -*\5„ ¢A]e…¢äd¸SA@†ÎáAåÔè‚••Ú÷º{fºgz.œk—÷ý¾U¿÷éoþľº"E}]õÍú‡„ꇑÕçÖ7êó^¾RPýW|õ!‡Pý‡¹„ú·IêÛìÙif¼iÝ*Ã%@ýYàX¤ªÿ‘xMÅÔ?érÖý²'T?B1õÉ/DŠúìÒ¢‡¹÷Ó“ãïFÔÿÁÎÖʪjêO›2 ©¯± õ)ì“Æþ ÿ–4ö눱ŸŸ™–̈ - ôóÝÝ\O8:9hcµk‡™É–kW-[Œ³ÿ5d2b_‘ªþt þl=Lý-Pýý$õƒÂ¢bR†©¾‡ðn„êC1õCHêÛ‘Ôןƒq8yÒø[¨tõ­„êûÜ"©_Ê®”ó‰)¦~Y}Lýu’Õÿ©¯Æ õiԇ쿣ûà'–Uf[351þndXpÀM/KXIGûÃöYYî05Ù¼c¾Þwôìÿ ±¯Ê(¤¾5I}?¡úÅ„úmÃTŸ'¦~zRà¤þR£ÕP}K¨¾Ó©ŸÝ.\ÁÔŒe¤0³ò HêÃۃ꿞úüŒs(:‚U ¾î”é„úK W¯ÇÕ?dOQŸ‘œž•WPTÊQúR~iú RŸÊþ{±±ÿš<ö›êk«+8¬’Gr³˜©‰ñšîçNÿtÒÉá¨íÞÝÛ·}¿ g>`&Áþ$ľš"Y}È!T®ÁB þzB}{1õóhÕÇnO!õ;Ÿ¶‘ÕOŽ¿(ªþf•ªo„©o ÕÇkbêGêCõëêK¨9$:‹¤ªŸÔªÿ÷£@ýfÆõ'ã5uúRŸª>yìÒŒýÆ:nU9»´¸0?ç~zJ½˜ˆ°à€›>^ÿtwsu>áäpä ­õîÛ·BöW ö5qÇ%ªˆ¤~¨zÕ·µ²ØŽ«¿P®ÒÕŸÍW+Y}ì‰Aõ™„ú ¦,õ‡ˆç!§ú÷¨ê$©?oά_aêÕï)|š9š¤>­úýwä±0`¿¥©¡¶¦’Sö¸¨ /;3-™äÃÛÓã(ê|ÂÑþÈAë];ÍûëV¯XNÇþX™ìkú*þ×#C’úCk[QõÉ*I}N)¸˜,LýP’ú‡dªÿ釩o@«¾ŸâêÉ©þ£‡¹™˜ú¿‘Õ߇«¿r9T振¾êÿuEWIê+óã&ŸúÕPý9ôê›oZ»rùb¤¾©O£>öz…cÿw|ì¿èc¿µ¹¡®¦ªœ]Z\ø ç>3%oêç{í*`ÿŒ ¬J°o"Âþ—_LÃØØWu†=‚o©Bý¦z¾úL ~$¦þ• n?Ÿr‚ê[bê Wý)5Ç€šcÅÕßB«~ -V“Å©¾úp§^Æ“æ†ÚêŠ2’údõwõ7"õµ$H}:öÅÆþK^_O76ö[šjÁ#.{\TŸ“™ž’p/&2,T½võò…sg\N]ì³²¤²?{æ7ÃÙŸ ™ýûʉLõgÍÕÇÕ7!«ïé£"õ¹"ê_÷"«¿•¯þl%¨¯C¯¾¹¥õ~²úaÊR ¢°‡Ú)ê'Þ‹ê߸†Ô×Î õéÔ§û¼^xÜ€ýæÆznu‡Uòèa^vfZrB\LDXpì -Ø? Ø?ËöMùì/²?±¯†(¢¾Tßñ¤ËY÷ËõÓU«¾­úªVÿ°¼ê *Iý]:Ú™ªþüyß!õ5¤>-ûü±ÿŽ4öÁ²m­Íuܪ -viqáƒÜ¬Œ´$F\tDhPÀMPÖýÜéŸN?vo+Âþ ľš"EýIS¦ê/1\ÅWÿ’ú$õáí} úm­P¢îTõ(ê'¤0³ó iÔ‡-¥©O¼ yÕÿÇ1¤¾–©O«¾èØýªŸ××qû“–¦†ºšªò2œ}fj#6:<4Èÿ¦`ß °ïD°oÙ_»Ê±¯æÈ«þ:\};ªúñÊW¿ŠÃÂÔOaÄF†ITÿÛ¯¿”¨>‡ -«¼Ý‹˜úQâê¿èéSúG€ú;L¿'«?uòDªú’[¢(=H}zö)cÿí0öûy½à¼qöëkk*9e‹ -òsî3Sãc£ÂCýoøxy\rwsÅØ·Û¿gξÁ¼9ˆ}uE1õm4©¾5P‹¸úcúc>\}=ƒE@ý Tõ嫟ñê¿“¡þ²úúZ¤>½úÄØOxû/y}½Ýྟ¶µ67Ös«+9¬Œýô”Äø»Qw ûÞ€ý_Ü\O:9Øß Ù_†ØWgd«?G½ú!|õ‹JÙÃUp@šúa"ê›Ó«¯£¨ú£Fþ3¦>x»$õ—­êï"©ïKR¿„UŽÔiAêK`Ÿ4ö öûy}=àãì×q«+ج’Gó²3ûXß@¿ÞžTö-ÌMûjEýO¤ªoF«>¼=ªúÂÛ“©>ôP^õ÷+Q}øviÔ_ÔßFUß_\ýöŽ.¥©Ÿš'¢þ^¤¾6©/A}ûøØÆ~?¯·çxÇíOZšê¸UìR‚ýä„{1û¾ÞžW.ýrÖÕùÄ0؇ê#ö•¹ÕߤRõ‡2Ô?<²Ô_±lñ|=²ú°%R_íAêKbS»îAbìƒìwì×ÖT•³K‹ äeg¤%'ÄÅD†ývÛÏ÷™}[¹Ù=šûˆ}%D!õ÷¨IýÂülfJE}M©¬õËËJ¤©¿fŲEH}-R_’ú‚±ΛÏ>¯¯·œ8d¿±¾¶¦²¼ ²Ÿ›…³|ûdÿ"è Ù?"“ýÏûªˆ6«…©ïqñœëÇ5©~\B*ú¯‘úÿÿAêKcÿŒ}8öqöûÁCî~Þõìi[k3Áþc>û ûW öùìo£°ÿ-ξ®,ö?Bì74W­<õÅoOqõÕRõûúo•£~0R_kƒÔ—¦>ìÃr?¯°ßÉg¿º’Sö¸¨c?‰±²^Èþnľº£=êwu´cê—³J€ú„ú¾"êoê/2ÐÃÔŸª;QÝê×64#õGRúr±?0€}ŒýÏ;;pö¹ûù¹YÌTŒýÐàû?г¿±¯ŽÐª¯£5êû“Õße¾M-êïžúCÊW´Dêk4H} êñÕe¿g¿²_Ç­®à° û9÷!û±ö/Kf_±¯êH¸êÏÆŸ®Zšú·Gˆúwú#8H}Iì¿aÿßBö»_töŸ´65àì—г†ÄþvIì޳ÔGì+-Ò¯©ÔÙAêKRŸÊþ ¼qœ}ž€ýÈ~U›Uòˆ`?>6:\Œýƒ¶Ö2Ù×Aì+12¯©ÔÁAêËÁ>6öEÙ&ý_ìÛ‹²¿°?‹ÏþDÀþ8ľrƒÔGê£HR_2û„ú|öÀ•¿ì÷ƒçÜý¼ëÙSœýÿ²_Q\yÀ/w"Š'‘ÞÁ‚€tTš¢((@AìXƒD¬X° èY¢16+¢b!Æ[ÄŠ&ÄcŒ†ÓØrzšÓKNïÞ{3»ûfwvvv-ñÞ÷?ø¾ùý>ûÛoÙØ_'aÿû‘„}͇¨¯LýrªïîêLÔ×iˆúŠÕ—û öŸ>agÿ4bÿb3Å~‘,ûÑQ‘¡ìì¿KØ,D}yõ3ÕS_–}¢þ[¢¾ªìƒc_žýK±?]Â~2 û û‡¨¯’úW®/¼ú¥D}½ Q_%öÿ%aÿû;²?ˆÉ¾sgØ×õ¬üq¢`ªMÍ,¬ÁTwîê¦#õk)õ×ãê§&Æ!õý}t¯þ/@ýçDý·=D}ØÉÂþmÈþUEì/ÃØÏbaßEž}#Œý¿öÕ -ËTÿªon©LýM«·å6R¿©ñ¦þõ£0õ쬵¢þžý‡ØÔú&ê_¾pžKý¾á½‚‰úz¢>·úRöѱ¯”ý€ýC¬ì–e_äëEØ×LXÕ—RßAÇêWBõWèXýͺQ?"$8ÀW¿ƒq{¢¾öCÔWÂþ+…ì?~ôðþÏw)ö¯s±?²?QÌ~Å~O6ö;HØ7$ì¿AôWýjZýâ¢Âù“ßRõ¨’QQ_ŸBÔçÃþ¸Ù¿%ÃþQ)û«eØOSȾ•¥¹öÿLØW1â©F -­þï¼ÕôàgLý3'ŽËªŸ+¨ú†mXÕêÇ1Õ_/¯þí–»Dýÿ—õù²ÿ;û7o`ì~ŒfëæO$ìçs³oÏd¿­ûïöùG·ê¿ä¯þ(Õ‡5‘ú &¦~ϰ>PýTLý5˜úç›ÔRÿ7%êoÇÕAÔ׫õÕaÿWvö¿쟓°¿[Âþb&û böƒûn\ì·’e_×󇈎ÕÏ…ê—áêg+T¿½êûøõ£˜ê¯«_«%õÇõ“ãcqõìm™êõµ¢¾ì·ð`Å~NV†*ìöÕ oõc€ú:V›ú€úF‚«?9FaQ1R¿R^}X“ú°¦ -êçM$êëYˆú<ÔW…ý œì“gßG¾­û­ ûj…¡~kNõ‡ðTr¨¾ú_75 õkäÔÏêLjÕwëÚY¡ú,ß^±úÖv,êç2Ô¯>T{üÄõ}ñR¶¦šê—,ž?»€©~w?o¢¾®CÔ×û+XÙïØì»3Ø7!ì¿i”«ï# -dW¿ ©8Ôú»+Ë6éHýQ|Õ—¯©Xý§`ÜûûO õVíê¯[EÔ×ÏõÕbÿ?ö«vïØØ_ Ù_ÙŸB³ŸØЯOxˆûûm0ö‰ú*D5õ³YÕ?×Ð$„ú?ÝþA«ê·gWHjf6®~™0ê?êÚ@ýn\k¾|S#®~:P?š¨¯'!êkžýMìì³ï‡ØïÒÉ °o Ø7•gŸû*…¯úQ”ú£´¬þǬê‹|<ÔP_AM¦ú1¬ê×ÔÒ5ù¨ÿ_ê Õ?]Ç®~Blt¿ˆD}=QŸ'û¯a¿²?*gXFjRÂ`Šý}Ow·®€}œývhûj„—úˆCJý\†úÕ«8”Qõr\ýÁšQÔÄÕÏÀÕßTV¹›¡¾’š¯%‹ LýúÓuŸ!õ·âêgQê÷…ê{¸:wê[[˜™õu¢¾†ØÿRŽý¥4ûhöãÅì"ö]Åì[RìÃc_Ì~+öu=5ú¥bêK9¤ÔWC9õS¤~=Pÿ(P¿©¿dÁœéS'ê§@õ‡´úN¶Bª/bU_¸š -ÔßÇT$¦¾ÈÕ´§jÓ5 8j’¢¾†ÙGO!a¿pVÁTÈ>z œ}oÏnûv}3SpìöÛ"ö ¤ì“cŸOø«ÏäP@õiÅê_l€­ÙÇT$¥~? ©ÏúãV,ùq“ü¥¹®ò_Nõõ+¤êƒšYé) ƒêËÔ$êk3D}­±¿JÊþXô‰ˆýÞa€}Œ}Ä~)û­éÀŽ}²œáqûkçfQ+®~–2õ¹8ä§~(R?Öœ4uúœÔ_š -Zýz¨þ5‰ú\+¦ºúÒšD}} -Q_ì7S쟒²_ºi=dт™S'cì÷ïÛ;¬Wp ¿¯·d¿£#`ßÊÒÜÌDÌ~Vöu=7ún»¸tÃÕÏÄÔ_/§þ­Û-Á õ72ÕO ÔWƒCŽš¶N´ú=B{÷£Ô9Ž¡þ¾´b …S_35I„Q_ãì×ì¯ÚE³¿|é¢ù…3§AöGšž’C±ßbß¹sGG{[ö ©¥ Ù'ǾòðV ¬ú›Ë*÷T\}™#xµ0G0£¦§ú )Y¸ú[…U_£iH„Q_sìŸGìzDÂþGRöÇÓì¿'a_äëåáæB±omeanjW¢Z -rì«l¨iõÛMØÔOLÍŽ«_.Q¿±éM©¿ªDKê{‹ºCõ£eÕ߸µb½b´úö û*†M}c¤¾#Rß×?¨ßŸR4_õ_¼|3õõ·#õÏŸ]7ªŸœËPßžâÐXª>öÕåkòV?]ªþªu˜úüWŒ‡úM õgN?ZS½»S?wTvF*T¿OXOZýŽvD}…¨/,û÷°¿—fåòâ…àE¦åM‚ìgBöESìˆ|<Ýݺvéää`gØ7;A³oH­Íþ;„}%á¥~¯°H¨~Pü\ýý@ý“lêÃÑãRNÆ!˜‡{RõÏž®;vä`Cý±#0õý¼=\‘úðÓ·o§õó -fÏ_\Õß®’ú¯% ðJÜ“ªù Ì=­þ÷ׯõÏõkÅê¯(.*œ‘?™R?N¬¾'Q_Ç!êkŠý+ˆýz&û‹Ùÿ0oRýä!qƒ¢ûõ éàØw¥Ù·²473ìõ)öɱÏ?Lõ Û!õÁPãê‡õߣÕC½péß ú; úŸŸüSÿþÃÇŠÔgpˆ©ÿ ªÿð>TÿækÍPýS_Pê—âêKOŽî ÔwwuîÔ·²_žU}–šrêSêÛSêûQêÇ&$õÇNÄÕ¯:x„¹b÷žÝ\ºõu¢¾ ì?WÊ~õÞ]å[ û%Å çÁ7™”;zDVfZrBÜÀˆý@?oÏn®àr´·µ±²07…ËŽ}´äØçõáPóRÿ£O(õ?êÕx‰ú8‡”†´úO(õïüxó»«Í—/Pê¨Ú¹½tÃZLý÷úÔTÿOìËkjfÔwvEê‡DÐêÀÔ/Eê«;}¬Xóµ7¡ú 'X±g¬ê¿æV¿©ÿMS#RÿT3¦þðÌÔĸLõm€ú&@ývD}m‡¨¯ öïp°¿feÉ’…ófO’;:'+#-)aðÀ}{‡õ -ô÷õöèæâŒØ·¶´0·Í>9öU‰Rõ½|úƒ€úCqõ·”ïØËTÿNË=Nõ1y«¿r™&Õ—_Þh°¼éÃ0õ7Ðêqêìù —›¯~wóÇ;”úOhõÿ­ªú·dÔ/ÇÔM©ß¨äï‹Ôw¤Õ7Fêõµ¢¾FÙ¿ÜÔx¾þ dÿðÁê½;+ʶlR²¤°Ÿ_%gXFjRüà˜þˆýî"_/w7—.œÀ)dmi¶®…‘Q[¶c_׳£¿áPßÞ±Cý¤´¡9¸úÛ€ú‡ÙÔÿ§@êoCê/š7kÚ úI´ú~^SŸZ^‰ú+×õwVМúû÷ì@ê/]8wæ‡SÆõÓ ú‘á½0õaO4Þ¨g+Žž$†¨¯Aö¯‰Ù?Y÷Y-`bx•%EsgMÏŸ2z–ÄøØ˜¨ÈˆÐžA"Ow×®ûVàê@ûˆýVøjåPnõÁPõƒú(õÁPO›5o‘¼ú@CZý¼™ú—.|Õ?|`/Cý19PýA¸úŽö6Lõ¹4Tº¼^~¸úTÏe©ÿ?öëÄ«Æ}ø:w]ÇZ÷›y5B‰Ôn. %ó*KÉ‘H7Q’¢hNóœL!J“æÙ˜dvp]‹{eÝç÷{ß½÷oÕN;ݵîûüÏï}žÏû} O¬>ôÉV¿®º¼ôæ5¶úaÇ9ê;ÙY™1êÿ¯£þ`±ÿøÑý.ûÅ4û ±ÑgÂCáYüìóöÚ¹ÕÃm½“½¥™‘Áª:KiÎSSV”—•š=súÔÉÇ3Â>ÅþðáLص„¨O5¡þ=¤þZŽú !¨!=‡Rÿn]SoêäPˆúOŸ<¢Õ/-)¾„Õ?Gªï$.õ{è“VßÈ| ¨¿‰P?Ô/@ê ö)¢úÿæQÿ ­~¨)?;=9î\$Wý \õç©*ú³õ‡°õÅÌþ;Xšý‡ˆýF`¿‚Í~fZrBLtdxhpà?ß½Þ^;¶lrsq\kmij´z¥.°¿@CUIANF -‡ý‰ãÇÂþbÂ~«꟡Õ/.¢~¯~ãÓPP}ÐR?2ŒG}3£Õ áBÐP_4 ‡ O~õÿ‰ÕG}Þïhe«_êÇêCŸvÐ'[ý¹2ýì“)ñ£þ ±ßÍe¿¦º¢ ³ŸŸ“™šy*$8ððÁý{w{nß¼ÉÕÙÑn… K_oùR­…óÕU”æÊIÏÁìO7v´$öû]}µèøñ“î«/¢†8Pý£øn-Á›&L\7MÏ·dÑþn¢Ý4L‰·õû·n_¾˜Ÿ“쟊 9vÔŸ~÷ ël­Ì õW,Ó^¬9OMYQ^VjöÌéS'O?N ì3ê÷]‡ztCíê±ÍÓÛçà¬~¨_ˆÔ¯¼[ßõù3ðnno!Õ#Ôwõ­øÔŸ"6õçÈȃúšZ:+úv þ–°¼þÇ‘úÉéÙ”úÕu­÷{T_H£½«_RLß4gNqÕ_·v¹Ñj½eKÎScÔêbÔ;ûï1û/žwwQì7ûUˆýkÀ~vFJRÜù³a'‚ü÷Ù³kçVx'{K3#ƒUº:K-ÐPUR“é-ìÿ…a¿÷¢‡cH¨?vÜDÞ¡6€¡¶ç¨ê§däŠOýgõË‘úùÙiÉqÑ„úë‘ú,¬¾†ª"¨?S\êO!Õ×§Ôw'Ô#ÕoiGê?ƒ>ÿxÿ¡?êb«ßýä1R¿þnEYIñ傜Œ ñç õ]ÔŸ1u2¯úÃõX1ê‹™}û|ì·67ÖÕT•cö ó²ÓSãÎá§ 8t`Ÿ·×Ž-n.Žk­-LY«õ–/ÕZ8_]Eq®¬´Ð°?Œ û¢TOêGêÏ–’U€¡^¤½|¥±…µ½3¡þYBýšú¦6P¿«¿êùòùVÿͫϞvbõk±úE”ú'¹ê;žú3A}EU ¬>ËÌÊÎi=¡~t\rZv>R¿œV¿“«þ§Ï_¾|¯ú•HýBP?«ä ·ç6PßÚÜ«?_M™«þhRý¿r{(fæÿ©õ‡ý7\öÛ[›êîV•—–\¿z©0/+ýBblô™ðÐàñóÝ»ÛsûfwWgÛ5æÆ†ú+–i/Öœ§¦¬ /#%$ìÿÌ»Ìz¯ŸÕ1r¥þ´³¥å”Õ õÝõcR2s aôʸ£÷üÕ›·0zÙ£×—úx -Ô¿}ãjQ~VZR?øè!ßßví@êÛZ™²ôu—.&Ô?9|q|Ý‘ß[X£"«ïÈUÿd¥~ÑÕ·Ë«kÙê£ÃêãF¿KýJýÜŒP?<$ˆ£¾=¨o°rÙ’E ¾‚¬ÔlP"Ì6£þP£þ ²ÿ¬»«óу{û•˜ý¢‚Ü̴䄘èÈS!Çccifd°RW‡}%ûsÂþp&ì‹T¢«obaêÿºÝkÏ~¿€cHýÄ”>G¯ÿê7êÇrÕß¼‘R¨¿@C«?V¾8õ›ïKýŸ¸êC£X}h”PñR]}–©•-¨¿yÇ®ß|ÁŽúIiYRÿ?´ú(õ»?¸×†Õ¿uR?æ,W}7g{k P¹6V_N«¢ÑTŸëÁ-F}1²ÿö€`ÿ%—ý¦†Ú»•wnß,¾RT“™š>*"ìDP€ÿï>{víÜêáæâhgmaÂÒ×ë3ì3ê÷Y}«¯¢¾©oê;pÕ= ê³G¯ª¦¡ïуáëIýwXý®Î‡Xý*¬~^VjRl¡¾‹£­¥©!¯úl û­þÏXý‘´úÓ°ú* @ýU,SK[G—„ú±õ«j@ý‡]ߣþ¿úo^!õÞkkõïܺ~¥073%«à·×ö_A} J}uJýiŒúCVŒúâb‡}‚ý·ûm-MõµÕe·o^»|1?;#%)îõ:~¾{w{nßì¾aƒ­•™±Á*]%|a,„} ¾°Ï¨ß[ bÈQ0¤ÕGšXÚ8¸läªG/TŸÆ°'õ9“@«O`ÈV0õï€ú)õO‡rÕwਯ®¢êÿí{Ô'#ÍQßÔw Ô‡F“R³òØê7·÷Ù(ù{ãS5J«ßPS…Ô¿˜›™ -êŸ=ÆQßÔ7DêC£ŒúC\ŒúƒÌþÓ'Ýïhki¬¯©ª(»uãÚ弬ô ‰±Ñ‘á¡Á‡9Ïã´ÖÚ”µZo¹@Ø»!1©On³=–ðL¨¯ÈVŸC¬>Âð"`xa(6õi AýD¤>CPßÆÒ„­¾‚˜Õ'¥~oT£ìß4ze°Ío£L‰µõÅÁþŸ<ì¢Øÿ.ß—ÏûýæÆºšªòÒ’ëW/äf¦%ÇÇDE„ -8t`Ÿ·×Ž-›\!ì›ó†ýÙtØ-9Šöéí`Â~oÅ‹ápZ}IÀpŠÀ2<Ø‘ˆÀ ~Ú"°†Ý‚ÆD‰/ó4:¬Ï£Æ8jbD:jþàQsLÈQ£Žš9„ú¿PG,£þ+F}q±ÿ•ŸýwûݘýöÖæ†º»•wnß,¾R”Ÿïwî ~?ß½œ°oI†}9™9³ö%ñrÐêó¬³BŠO}4Ó#$FIŽ;aÒ”é´úšC–©•­ãzw®úÑHý|¬~umCKûý‡O1†ï?|¤Gï+¯úßHõ¿ -ªÿaX_S‰ÕÏÍLIŒ9ÂUßÔ7@êÏWW«ú“§Í Õ_¤½|¥¡‰…ƒ3¡þÙÎŽÑê Ù±¯„úßxǽgõËAý"Jýˆ“ÁõA}[}y¤þ$*ÏÀ`ã#–Qÿ‡£¾ØÙÿŒ–Øì¿~õâ9ä½Gîµ·4Õ×VW”ݺqíra^Vú…„ØèÈS!ÇŽúÿ/ìk¡°¯(/+L™4aR@‚RŸßf?„TOê㨯ª¡©¥³BÔ·õ·ì„™öDêÇ%¥e³Õoõ}¿úðÏÎU¿ Ô/õúAGúx{nCê[[¦úÊêó‘ú ¾=Gý pP?EØŽ½íQýo<ÓR~„£©ÿ´¢MKCm5V??+-).š«¾ûzG[+S–¾îR-M U¬þt˜ì±c$كͨÿ‹Q؇°ì¿yýòÅ3Ì~G[Kc}MUyiÉõ«E¹™©Éì"þl†Þ2íE 4T•æÊIÃnLÅ -Àr x`ö£§"fZPýY ¾[}3+;'ŽúÇÃ"£ã’‘ú×n–L}tê½}ý©ÿ £µ ©_R|¹07#%á`õ@ýBر2ر¦ÿ²_/îT¥{ÀÏ9O™ç9Íè”zº -•®¡R©iç¾]v$Gsä¤bR))éÞ¨I!¹mwÛ¢¨& ¹uQr§{f˜Ssžó{ßµöZ›½7›ÙÌ<Ϭßð®õû~Þï[Wßë|þ©ß54õ›@ýZ¤~qa^/‰‹Ô?è¿{§—¨Ï¶d™è#õ•A}¤þFýßdõ‡ƒýŸøì¿ö;;Ú[›Ÿ>yô ¦ªânÉ­âkWs³xÉ ±tÙ÷¡Ê>Ë €B¤€l` À™"L>úê“;=yšœÂ,¥ùʪX}S–›ã²…V?"Š›ÌËÎõKË«°ú­í`!¡~wÏÀêÿLªÿŽP¿•P¿B@ý giõ7Ú[ÃónÕr]¤þ|ô¸ƒÿ=Abõÿ$¬>:)VÚ ÅYs@zµõ–ƒú¬í7n¦Õ¿p)&!%#çʵXýGOš[ õß‘êÿ<õ_RêW•ßù¾¸0«B©ïÂõM±úPh”f)ÈM#Õÿ¢·úbNÊŒ‡Q_ê™ç³ßC³ÿæõ«¨ñµ65Ô?~x¿º²¼ôöÍ¢‚üœŒÔ$²¿«³#Ûjƒ™ñ}]­Åj* ç!¦ãJ4n¬ ­~¯VÄDxPR_KW•¨oÇA;½Ëoÿ¡£Hýhnr:¡~_ýN¬þ]zY8$õÓSâ‘ú§Žâ«oêúZ„úè–Ç¿[@ýþ,£þø “z§w-N/¥þ©³ ~|J:¡~ÅPÕïé&Ô‡“B³!Õ/Eêgó’¹Ñ”úÿþz ¨oÅ25õµús(õÇ2êü0êK…ý_(öqÙÇ-èŠ>$âÅ:žµAzR÷ Êþ¡²ÐßÏÇÛÓÝÍe£½Åz@@O{‰:ÊÆlEy9P¢ì8ª}ƨ?àPŠÛiåEx§M7X;Õ #¢ã‘ú×n`õÁBRý·BêÿOCZý|õÁB¤~UE)¨ŸŸžÕßï· ,õ­6˜bõ5)ÓêKlá€éåŸt:鿝è“^Šõ³‘úpÒ¡©Ï?éú¤°à„ú}Oê"tR!õG t`¯ï/0ÀÉÁÖ’µníêË–jj,úÇ‚¹J3!S&M”ÅééøœQàÛ€Eî44`ÚBªÒBaõÅZB[ȱC x<î†Ö€~Õ p¿‘¯iÜoÍôýv%^5Ñ—hõ%{ÕŒbÔ™aÔöQÙ'ÙÇe¿•ý¢ì—•@Ù¿’›ÉKމ ;rêXPÀ¾Ý»ð'âØY››¯Y©¯£µXMeá<%ŽI Æô‰Ç_õEΟ…ÕƒÔ—8 vZqöܰÓÚzËW¯…¶Gêo÷Ùsàð±Óç@ý„” ¬þÝŠê¡5`ø÷ðçßSê?}ü°¶ªœPŸ—ÌEêŸ ôß½ÓËÔgƒú†ú:šÃ¥¾ª†–޾‘)ËÊŽC©2$4"š›Ì£Ôøø)©þ!õE•VÿG¾úÏõ«+î"õs@ý˜KÎ>vøÀŸíÿõíAýµ«—ëjƒú æÌRÄ‹-;Žl3Œú#9ŒúRTŸ`—ý\ö!üoßô*ûÕ¨ì߸^m(1.*‚qüH ¿Ÿ·§»›ËF{‹õ&†%H}ŽéS'ãN$è/áˆT_†P:¡¾¨¿Ô7·¶wr¥Õ¿I¨ýæmØ<¬~Û ÕÇÔ‡ÿÞA©©ŸÅKâF…Óê»mâ°-Y&|õçá§V_æË1CUÌ—2”úJH}MPßÔgƒú^ÞÀ`¤~¨Ÿ…Õ/ç«ßÕßõáÇîžžÁªßF¨P?#%!&ò"­¾«“½µ9zÆêi/VƒWìlXlB}Qê3[=¬Ã¨/Mö©²è,û¨ì?…²_SUq·äVQ!ä"-‰‹¿Ñ‰àCöøîØæ±e³“ƒ­%ËÔhÕ -½¥KÔQù›­(Õ—eÔ—|V_Em RߨÌÜÔßêéí»7 VúbdlB¯ÍÃê¿xõ6¯‹¿y«¿½½«_Y~çVqa¡þùoiõ)õÕUái7S^nª´ÔŸ*§0Siž²ª:Vß„eÉælr£Õâ&ñ²ò -‹oÝ)¯Äê·´w aõñQPÿ¿¤úï)õëëú%7¯_ÍÉHMˆõÏ -Øëëí¹Ô·17cÔÿ} £þp°O•ýøeÿ´¾†z ú^ô¾kWs3yÉñ1‘açCN=ßÈëë¯\A}Ôˆ–-Eåo>„Cµ?œ>„T>˜€ô^êÿíôßøêO.ê/õ—ê­\clfaãàL«ÿ]X$l^&Þ¼²{5b6opê7‚ú5Hý¢‚¼¬´¤8¤þ‰#÷}³c›;¨ok o»•ð»Ô—¡¾˜?Ýû¨}Ô—õ"õ—úë-ÙŽ|õ!dçãâ’Ò²ò -Š~¥úúpTP¿±Zͽ2¤~nfjbldØw´úÎ6fÆkVBŸQSAêCAêÿµz­õGbõ¥ªþ/eÿ'‚ý·DÙoomݯ®,/½}ã:ž’{9<ôì©cA÷íÞ…¾‘³#ÛjúµkV.ÓÑÔX„*80m -‘ZýÑŒúýM -?ûœ TQ¨¢¾dé2P½…­ƒó?Ý·íøfßÁ#'@ýËq‰i ~Ñ­’²J¬~K[Ç`Ô «ßÖÒXÿøAMeV?3-1îr­>üo[‹õ&ð»ái§‚Õ‡—…ƒVŸ<êxYJ}ò¨ ¾­ã&ꨠþeP?«Gõ)õE†¬?õ©£ -¨Ÿ–{Ô§êG5uT´×•é £¾tÙÿDÁ/ûoPê|ÖÖÒôôÉ#Ô¿YTŸžšqáìéãGúûíÚî ߈cgmŽ‘¾ŽÖb¤¾ÒL‘êbÔ?â -°ìDšBMŠBg -ÃzQ(F}ñŠV¿©_êçêCîÂIøa'aºàð³]p“û½à¾å_pý^pŸÄ\pýUìgI\pšäQѳf‚äÏf¤7Œúà>NŠÊÄ»· þs¬~ÓºµUw€ÂüœŒÔDntÄ…sЇ÷ûùx{º»ñÕ7Ð×ÕZ¬†Ã! þŒú8õ'PXU]SGßÀÔg;nróðÂ+ -p¨Ÿ…Õ/—F~Ö§§øxPÀ^_o¸ål,ÌõÕTàe§( >!á ÔÇgõÇ’ÏÅÙs¨¨ê›YØ õ=½}÷?C„,‡¬ìÞ¯{Ö¼Ãê··À[ö!”¬~VZR\T8¨è¿{§—‡Û&G6¨oh ¯£©®Ê¨ÿÛ£¾tÕÿEP}\ößAþ_>ïìhomj¨¯{H¨_\x%'3-‰‹>ÒHÆþ=>ÞÛÜÝ\6ÚÛXàlðÕŸ¥0«?žR_€& "G`¥GQ+M¨?MNa¦Ò|eU ¬¾)Ë’Í!Õ >ÅMâeåêׂúM”ú]äæ}”T}¸ëáªoFêW“êg¤&ÄF^‡mÉ2Åêk¨*ÏÇu«?–ßfzmõÈoÍiõ¥Ìþ'2ü œ Üú^>‡T´67ÔC,€Èŵ+¹ ~| úH'‚íßãë½ÍƒV¹®v_õÇ2êK8”„B+Ô‡•õµtõ ŒLYVl¹ÒXýˆhn2/;Ô/ý?ûõý啯üìêº{b›ãŠ‚E1±RE•$1tÚPb ¸@QD*(½ÍÀPQÞ‡¢Åquh²çìsïûNaf€ÁŒüßç?xî}žÏýÞêz¬~÷“žÞ¾ «n½¿}ðàÎÛšj+Ë@}øÝ1AýX -B}:¨¯ÔWUZ+uõ#õ×*©"õµA}:Wýs!—@}fFv¹dÍmí°dÏzûú¯&¬~šo¬~}uÅÝ’ÂüÜ,|d±úÞžnßÚë`cA3ÐÙ ê«#õäEÕÿ´:…RŠRÕïõ›‘úw õY @Éß÷4¥¾ôJTB¡‘^£¨‚GZÇFŒ´›§·ï…àðÈè‹M¨_SßÔÊAê# õ‡†ÇWÿ ©þ ¡>¼ôœÖ憚ʲÛEyÙéLxæ±ú^î.‡÷9ÚÑMt õ õe õgIA}YB}EB}]#Sºã¾Ã.î^§±ú1‰Ìô켂¢Ûe•5 Í­žúƒ¤úoÆWxˆPõŠÔç´ÂW–PŸÍb$DG†_ð%Õ·µ¤êìüjÛfuE¬>ô -êÏT*¥þ¤¥>¥þŸ­Ä«Ï•P^a9ÒÚx¤‘„\õcéì\$!¨$$ÕG¾KBÉÔg§Ãç$ä©oK75ÔÕF"õä±ú’Pœú½nܼm;ê•nËWŸìu„úÝ’©?²××Ü^A}Ô+¨zÍåözÁ—Û«¥˜^G}á&{f>¬¢Ô—úc©ÿ ©ß ê7!õïê§ÁbÀ!ùûzSêK­ÆÊ¿rͿҕòoŒ@þ%$Í¿ ª?e‚êãNô_C¾püMLÂ{}á$ø×ÈêÏ–ð_C•ÔŠR_zêóÐGêÃF`õ õŸ>yü°³½í~S}Meù’‚°g·¥©‘Þ®|õ—x9xêO -EÔ~ÕHõÿ#=«þB¹% þêuJjšZ;vé›YÙcõOøø†^¾ ƒw]hð°ú/Iõߎ¯>¾vPžú¤>|ïê« õ³X)ñÑaýÏž:þï£H} šÎÎ/·nÚ ²^¼úS%SŸÛ¬õ׫¨oÚúåNš… ¹¾gý/†ú)¬,Býêú¦û:@ýžÞ¾çƒ/_‘[6ŽúoIõ_rÕïjokõËAý¯g¤&Å^»ÈUßÞÊÌF[KSC &Ô_"·lPÿ#œf(õ'©(õ¥†¾úC\õ!õýúK¨ß¹¯¥±®º¢¬´ø&$¿ŒÔäøèÈðÀógNyº¹8Ñê±u“ºª"$¢êÏ Ô—¤„ÔG=cÖìA}PÙŠÏV¯SVÓØòÅŽ]úÆæVöß8rìû“g°úqÉ©™ ~qiyUm#¼ÇxðúObõáÒá‡Ô¯«¾êßÈÉJK‰â©y ô³Ãêã'~!VŸw×ï¦þl¬þÂEŸB³ þPÿëo L,lvï9x”«~T|JZVÎ Pÿ©þã'=hË&¨þk¤>4‹Ôo¬­*/-õ3S“ã@ý ógN~ìÈoí­Ìõa´·h¨)ã<êËŸX¡f©©~ßE©/5õyèã}@ Ô|RÐý¨«ãAksRÿö­›7rØé̤¸¨ˆðà?Ÿ“ÇÝÐÙ[[Ð uµa5À¤þòeKĪ?…RÔE}B¬þzå  þ×ß蛘[ï&Õ‡Á»—œ–™sãfñ{Uu¤ú=ƒ7–ú|¹êÃ߇‡þÞb¸ñÌ´äø¨+?„¤úÖ&ú„úÊë1„£©?êEKÔ,V_ßÄš«>n6ž×luR¿KDý·’ª›%Õ¯«â5G4K¨¿ÛÚ5 ê¿s³TI©(õ¥‰¾¸¨‚Pï3HB;ÛÛî75ÔVAð+‚0”Åb$Æ^»gägtôÐ>'{Ø ]ííZ°þ>_¹|)¨/ó/PŽ€úS)õǨ1!$â¯2/þò ôÇâø+BÁÁ¯þï#Ô! ´ÇîÀ¾cü­ÙOxê¯ÃOÜñOÜõqž8ÉšþØ`õñÇæÊüµÈÇF–T&Ù,™f¨©~ßE©/%ôE£>¡þ‹þ>X P¿«ƒÓÚÒX_SY~§¸0?/;#-ŸQ¿¯·—DZ#÷:ÚYú:;¿ÒÒÔPSõ@}9”ˆú3gð–ƒ €Z±ÅsPd¢ed¡‰^³^E©¯c@³°qàª1,":>…••“_Xr÷^u=Rÿá‹¿OIõk«ÊKoÁ;Ÿ™šwírh O}+scý]H}5žúÄ¿îšÿÀODýêÏýdžÌB9R}5¤þ.}cs+{žú¡°eÉ©™×ü©¸´ü}l^T¿¾RMa~N+%>:"Œ«þ^ Ì6¨¯Ž‚<¨¿©?G@}~·“=5TQêKIýè‹Dýž'ݺÚÜon¨­®(»} ²;™xþì)Owç{léfÆú‡¶mÞ¨¦(È/]ŒÕÿ'¥¾Ä%è ¢çò'z¢ -žhCš¥ šh7Ooß Á ~ƒÅÎEêWêw «ÿ›¤ê÷cõP?#5)©ïçsÂÃÕy¿“½•™±¨o¼ÒºU+ñ?ù¿‹ú¨Ûé3fΞêÏõ—._¹z’š†&¨¯glfeï´ßÙÕã„_ ¨ [voYUm#Ëú%Uÿ7AõûzaÄIõ+ú¹l#!:"<ø‚¯·§Ûw‡ö:ØZÒ !ÑlÛ¬®¢ˆÕ_,»`>šlJýÉ.J}©¢ÿ;‰>^PõvpÚZšpÔ/)*€àÇb$Æ^»àçsò8qD6–¦FˆÈCªHýÄjÌ#¥¾D%ªþ ¤>8½T^aÕˆ‰vÜw˜T?<2&‘ÎÎ-(º]VQSßÜÊéõŸõöõ þÔ_ý7BôÅëïë}êw¶·ÁK_‰Ô‡ß3)ö꥞úvt3#=ííZšU•Ö"õË-àª/ê „êÄUÜbPÕZ%µšZÛµõŒÌèv|õ/]Mbfdç‘[ÖÜÖÞ [†º…-{%©úÃC(Û  nAýNNks} Äš¢‚\v:#!&’Tßåð>G[KSC]mP£ª"Ñ­,Ñí,qÝNöÔ|PE©/5ôùQ¡OFýõŸBÔïÄQ¿¢~é­›ù¹Ù©ÉñpD¡Aþ¾§Ox;zh¯£•¹‰.0°Ecƒ -ÚŒË>]„WƒPvC„j=„ê/âÔrP;¨kdJ·õ]ܽNŸ ¹“ÈLÏÎCêWÖ4 õu"õÑܽÅAõ õáÖÁÁ†šJä`^v:31Ô8wÚËõMt¥¨þøÝ:ñ»½:V·ÿ•¼Û×cuÉïÖqÜnÇÿÙP%¢Ô—šú<ôa†Hô_ <ïëý¥Ðïêà´¶4ò£~‹‘xþÌÿٯ﷨Î,à»›õÙ$Ä’„ÁRA iƒtdèUÁ‚mQƒ"¢ˆ"Q•&½ÃPT‘6 )bA1(°*›‰Éóìyï½Ó(*øÓ=ÿÁ¹÷œÏû=GýìÝåãåîlociJ5ÐÕRWQ¢Èɬ]%)¾\TXè[X Aó±¨Oª?Eñ¦ß¹\Êâé×h<ýÆ&é·¥ßOw°ŸÓAH¿à`七ÎöDú݈Ò歹‘~ùªÏï²1„ýµwãà²I„Ëf&ß8tÙt¢Ë¦šý²9s’uÙ8Àec„ÔWREê/f©?ŸlRýÏS¤ú³…þGúï^þûÐÛóøaWG[K#“Q]ADýdÖ -¾÷6WG[ks#=M`@AVz r@Ô_º_ "‘êOVœêÿëË/¿Fê "…E–KH®–õU5´õŒL,m\=‘úG‚BÂ".]‰…¹ËÇæŽ96w˜ƒo¦Pÿ¯1áÌCï=Üx˜ú=HýæFUEY =7#%Ô ô÷Û·³¨o€ÔW”‡7~å -PûÙÄ ? õÿÆ«>ÚßEãû+#¯8¾¿°¿~þÁ¡á ~BJF.½¤¬¢ŠÑÐŒÔïéëGÝŽ õýíÝ»±nù´Ë¡þ–úOvµ·62k@ý¢ü¬´±1—"ÂBpõ=]h–¦FzÚªJnI P_4Äh“ê¦"ÕŸ9ôÿ$ÐG«€E}@è%¬ŠútÞomªGQ¿”3êŸô?°Ïwû.4+3cÃÍ›4Ô”!ü­–’X¥¿¥‹Qüc©vƒ\މŠ[}èy Ð@ ‹.—Z#-KQFêSM-iŽ®ž>¾û †¹KJËÎ/º]^ ê·¢¹ëÅæn˜}î¦R»òÞ¼z‰N¼žG:ÚšëUwKKè9É ×._SßÝÉÎÚܘ]}Ñeè‰dWÿ‹éªÏgEÙÕ76·¶srSÿÂåk É9ô’Ò»UŒúæ¶Ž@ýÁWC#¯ßŒíN¡>Ñ.RÚ…lƒ©ßĬ©,¿]”Ÿ–séüÙSÇí÷õñtu¤Y™R‘úÊH}) 쎅vIõ?w‘êÏ úñAÿõ0ôúº»ÚÛš˜µUwnÓs³Æ?PPñœì¶Z˜PõuµÔU”(r2kWCEêcyhþ¼¯¿âÈärð­©Õ—£(«iêèSͬlݼ¶ãêŸ=u5.)=» Ô¯e6êpÏÝdêÿÁ­~/¡~-R¿Ôõ>}âèOÿÞ½ÝËÝÉÖÚÌX_GyøÝR|ÔgÿÕ·ûÎv‰ýBêK­•‘SÄÚ56³¶ur÷Ú¾ö÷ÄéŸAýxP¿©_K¨ßÛµûêcí"õt€úµ ~qAvzRüÕ(B}h×ÍÑÖÊŒŠµ Ó ê¯àQŸxäÈÁžå"ÕŸôÿG ?2ôjvÿYoÏã¶–ÆzFõ½òҒ¼ìô”ÄX>Qß|‹¡ž¶¦ÚÆ -†V­A‹±dÑBÖf°©ÿwr9øÕÄáWˆ¿0u5>9=§ ¸ônem}bðɃìsÇ_ý?ÙÔK¨ "õ›êqsÒ“ƒcêó0ø1áwÊGN†ë‘#Ú=Ïj=rŸÖ.×#ׄ=rD»<œë‘ãÚüsŠÓ†¬™(Rý™C[Nôaž#ô!ÝoiªgÔTÞ-»YT“™z#þZôň³lßE}Sªî&uUeEùõëVCCQ-†À|Rý)Š]A¾-#¯ˆ ´±¹µh?ÿÀ`,ü&@ø¥£ð˘(üþñÁá·«~ó!üÆ…__O7Gš•)U_[CÔ—ž-õÑi£ª¡­O5µ¢9ºyúpž6ùŸpÚ¼çV¿8mè´¡Ãi“€N›Ðà@¿=;~pw¶³676ÐÕú~£¢<¦>šî¥‹‘êî"ÕŸQôgGÐЇ÷³½µ¹¡®¦²¢ìV1=7+->OÔ…ð3!ÇòDýïQÔ‡µ_.ŠÔ_²Wm©þ„Å«þ<èEK¾ùZ|åªuÄ@bíá«}=!%#—^RVQÅhhnëì~ÔÓ×?0øŠ]ý÷ÓU|þì)¦~#³æÞ[EùÙiIq1—"ÂBõ]h–¦Fz ¾ES.;üo²úЯ°¦¾,E Ô×32µ¤9¸ꇄEÀš%¥eçckÆll_³áVÿík˜õÁ þãîÎûÍ ŒªŠ²›ôÜÌ”„ëÑ‘á¸ú;½=œí¶Â€ƒú*P¨‘çE¶Ùž¼_²f Hõg}l FÙÐï{úäQwg{[s#³¶ªâÎí’¼ìô”ÄØ«—#Ï… ->vøàþÝü¢þ)C"Xøƒ½Àã{"Wƒoq*H¨/€«/"&.¹zÝz… *ê›6n±Øjïâá½sïÃÇNž9ê'¦dæÞ,«¨®kh¹ßÙýøi_ÿ‹ÁWÃ#¯ß‚ú¿½›Z}ìÕÿu© -ê·4Öáêg¥Ýˆ½‚Ô:rpß®·¹:ØXšéÁWR•A}ü‡'üõ¡ß¹Ð/Rÿ;Pú•–UPRUߤgdbiãàºíÇ]û Bê_‰…5ËçZ3Ô/¬Ù(¶f¿O­>ô‹ÔÇûí{ŠÔoi¨«õ ó2S¯G_ßâ¯àÂqׂH}# BAPÿâ•ØÄÔ¬¼B»j;\}\A¤þd -ò¨Ï©`c]5¨_˜—•š{…P©ïboca2‚ÓξÓå _{¼_ì•›¼ßIÕŸ¨ßgÜýÞÀúe½r.“½rÓ½mÈš"ÕŸôáäôô;ýzý¢ôqâÑÇ ?rü¨ÿ}¾;¼·¹:ÚZ[˜Põuµx¢>Z –ú¤ú—úhžç-\¼ä!P_Bj´,EIUC›È¾ž>cÙ7fÂì;}?$ûz°e_y¾êÏùPõçðU_žïmsn›ÔÌ<ÎÛ†ã•{7mõ9n›ÖFæØmúm|}<]h–¦FzÚªJYé5Rj°SÆ›Tÿ³©þ,£ßƒÐ¿ßÒTϨ©¼[v«¸ 7+-9!6&ê¹°S'Ä?Ž“½¥™±áfm 5®¨[±P€+ê“êOX©¿ô[!aQL}9Š2RŸjjEstóôñÝ(à8>vIiÙùE·Ë+k˜­hìz±±†±e_ÿWM¨—Þ üý¤~s©OÏÍLI¸èï·g‡·‡³ÝVó-ºZpÜɯ_»j¥¸Ø2\ýóçòª?YÜê£ÆÔ_&&νÀ þ?ÿÀàÐðÈèë )™¹t¤>£¡©ßÓ×?ê õñ†ß³ï¯úDÃHý¡—¿<Ö‹©ßĬ©,¿]œŸ–uþì©ã‡öûúx¹9Ò¬L©ú:šjÊ9¤þ -õçàÃMŽöì©þ¬¢ßÛóø!Ž~Ž>=/+=91öêåȈ³§ƒáÛøíÝåãåîâ@³2ßb¤§£¥®¢D™,êsÄ!r3xŠè/8æW™è -P_ÔWÓÔѧšYÙ:ºýŸý:ÿæ:ßã~îé6ÍL í“Ý-»¬ CÉòµï;Y²$2˜T%¥´Q”]È®J*úJb(ZƸ•êÜsîLçžs_ï÷çóµ|}mcùe>¯ÿàõù¼^÷óåéóŒÆ.>%#» ¸¼ -Ôol¦·wv#õß0݌ԇ‘úϺ;·µ4Ý»}£º¢´0'35!ö©¾—›“¥©V_^žyøáÜœÁùPÌKÊÊã60µ´sB ŒÕ?›š™SXZQ}ãö½¦–¶ÇÝÏú¨áá³VŸh¸ï94ÜNoiDê—äd¤Ä_8uìðÁŸ|=]l-L °úò2¸a^nŽÙ7LÕœ‹R¡Ñïîìh§·úõ·jýâ‚ܬË)‰Ïç9v0$h¯¯—ûNG[+3cšîvM"êK@Ô˜õ¿¦¢þô5‚¼A@P4±´Ebõ£‚9%åÁÆ:F°A4v¬ÕGsð'³ú}X}@©_^‚õº9ÙZ*OŽà’™«?a9FFÏÑ0ùÌ¡†S¨á6FÃä3 OþÌmX‡›”ú‹X”úó‰þFчÀèwaôïúՕ׊ s¯d¤&¢/s"âphHpÀoW';ks=m-­õe$ÅE…YDý1kA©Ïºþ1Qý0ϫ׮Ûó,€çYžœgK;gwFôŽƒè›[X2uôýsVÑw€9úf£è{öd}!úÒpô…_.œ— «ÏÎF^vãîºuL,ð -ò¸áÂÇ‹ã&‚é¸iAÇͳÙ7ãÔÄÇMO×ã¶VÆq“›™šM7ÞîÎvV¦†z ¾Šœ³¢B|LÝôêÿüŒÔ_¼Äê?l¾çÖ¿®—]Í¿’ž|éü™GÙêït°17ÖGê+n–ÆêÃ_ø<¨s@Ç‚BH}E¤¾¾±¹ÃNP?hÿ/GOœ9)9ö¬ ïYóÃvrÏpÇ?}Æ{öÇ$êvü_è©OtLªÿðAÃ[5•×®æe¥'ú¸cks#¢c˜rQ!²ãÙ¾sT͵(õý'úwênÔ\Çèg¦%ÇÇÆœ9y¾Ë¾@ÿÝ^î.޶VfÆ4]m-uUÅÍ2’â¢Â1úÐF0E}b+(õ'©©’/™| °>þ “ү䛺^†Ã36T˜¡~ïÓ_‘H}dàdà™ñ¢ä ¢äËO$ßU³K¾Þ¹o&}çÌ­Ð;GtŒÞ9Ôq%ÙqǼtŒÞ¹G¬Þ¹`–ïÜ_ºn¨škQê/úåø«¤'ÇÇÅœ:vp_Ð^_/NvVæÆzÚZ[Uåe¥ÄÅ„7 -ðórsnX¿nÍê•TÔŸM‘ó¼dÌ8¨Ï‹Õ—Ù¬¤ª®¥C3¶°qt…ä| ,‚˜ºìüâ²ëµuã’ïïsO¾­êoBò-ÊËJCÉ72üPH Ÿ·‡‹½•™¡R_AN -©ÏÇÉÔGÏ<&ð¯¨[õW"õ9yøúRr -H}=C3+¸n¼ýF®›´_7Ó©×Í¿ÿíõ@¾nèÍ÷ïÖÕ^/+ÎϾœáìɈ° ¾§«£­… Mg›†ª„Pÿ^nRýïHõ—ŽðÅœ›¿WQê/ú¥Eù9€~B?òhØÁ ½{¼=\ì­-L õvlûQm‹’¼¬´Ä&!AÜ(Að[ÉFEýYÔXÇ37/gIy%Um:4 ['WOßg4uñ)ÙÅåUµuw›éíOºŸ>ïxÃ.ö Ð'£õ§-V²ë6ã,)+ÇÙÀÄÒΉçcQçbR3r -JÊ«nܾרBÜÙýìEß+¬þð Õgøùã0&Ô·µ4Ý»}£º¢¤0'35!©ºï§=^nÎv–¦º ¾²¼,&©®»YÈú¡[½fb˦–Äï EêCË™9…%ÕÐrSKn¹ŸÑògV‹Æ¤>‹–ûÈ–Ƕ|.jbËðÐAË#Û¬:ªæX”ú ŠþÃQô¯æçd¥§$\<öTäÑá!Á{|v¹9;ØXšÑt¶kª«*+ÀÝ+.*¼Q¢>l€ŒúË–AŸR²|¿|yø6Š0_q‰©™¹…¥ÓÈZý)¤âà‹ $‚¯|uç|'?o8GÎe8oÐCg qÞŒ>tÕ¬ºé[žðР⇮Ôo%ºÒ‘ó&”8oì­Ì õ´5ÕTäˆó†gä¼Yþ yÎRê/xQê/6úðI"‡îðóñôm-ÍŒhºÚ€¾Šâf)q1}Žï×­]À賊úÔRL¬ñê/ƒq^ê¯BêsúB¢âRr -*jšÚzFfVö.Þ~!‡Â#OÇÄ%¦eå•VÖܬohjmëèêéõß½›aðý2Bà§°ú}ÏŸvw¶Ó›ïÖÕV•dg¤Ä_8{’PßÓÕÑÖ„¦ê+úb‚ >³úøOó³Éž—LÜ`P_PX ÔWõuh&¶Ž®ž„ú°hñ)ÙÅåUµuw›éíÝOŸ÷ ¼a^´©Î›/ õ? ¿74øöUÿËÞž®ŽG­êoÖT^+ÊËJKºs:2üPH ¿‡‹½µ™‘>R_QN©ÏÏÃ…Ô_…ÔÿGJýE(JýE¿iý&ôBè» ô tµµ4¶ª(ÊËJIˆ‰ òóòpq|¿~-ÀÎÛ@Eý“úhšW°±¯Z³öÿìׇSÕÙðI¢ÑØ)"ÒAQ”òàѱbAéU:ø@)+v…µ¡¢Æé ½IÅB‘*¸¢.JpGE™I6£»“sïï÷*y>Ðd&¿û|çžó9çHÌ•–U˜§¬¢F£ë-_ebfeïäîå¼+äàÑ“g.DÆ&¥fåaõ¡èúݽýHýƒŸ˜êTýw ~?Rÿé/mÍ µ þõâüìô«qW@ýc‡Bwo Üìíáì`m¾nÕr#}mM5P_AN«ÿ«/˜€#eõ¥å@}5Mm}ȼÎÜÚÁÙÃ{sà¶Ý¡‡Ž–ž_|Ô¯mhnCÖƒíÝ·¨™‘úúý¤úÍkîݾYV”—•–{%âìÉ£Cvlörw¶·63ÌzÚ´±d¦Þ˜¥þ÷F¿ê&‰þÕø„þÉc‡ ôý|.Ž€¾© B__G‹¦¶ÐW”ô%%f‹ÁáK®ú“Ъ?ZõG}|ö^iX@sk{g/, ¨6‚(ºb\t ¬¢c©EÇVÿábõ‡úHÀWÝH}°¼^œ—–Ç0€hÖ‹Ÿúä¤Ã™‰I™Ý!31éPæ$Væ‡Ü™?~Â&\f4épæüì4˜t¼“Ý7Ú\÷ ;óDŽ"ÿquóö(õ¿;úålô/"ôÄìa¡oÐ_½r™‘¾¦¾XeÁ|@_F -ÐGw/‰þd„>µê ð8䮿¹2rŠ  º¦Žþ’«×™Û8¸xxûm'÷Þ¨x¼÷–ã½·…¹÷¾&ö^Aiï½{»í½©I±‘Î{¯/ÃÝÉÞÊl­ñ2C=:MUEY Ô—”@¿Ž>_wB©?i2¨?}¦ˆ¨¸„$¨¯¤¬¢ -÷á2ãµø¾að¹onÃ}Ó4ì¾hÒ±ï›÷pß ÷MKCÜ7å%ù9éÉñQpß„þyÏö ?oO ¤¾Ž¦úâ…óA})¤þ¬ÓYêO ÔÿÞRÿ‡¢†D?£ïʾ. ¯ -è+)@#HÎAèÏÂý›B_°7\ýiPÍ¢b³%ÉjV×Ò1XºbÍz › .ž›¶m‡j?uîRt|rFNA R¿®±¥íɳNP€·èø -ø;[} Sý>Rý&P¿ª¢¬ðZfjb ¨âÈ};·úû0Üí,M‘úºt ¤¾¼¬Rÿ:ñç¨B#õg!õ¥då‘út]¤¾©¥£ÃÇëÎ}ŽœõcS3¯–UTq¨ß‡ÔÔ'Bæì´QÕïëéê|ö¤½¥±î~ueyIANFrBô¥s§@ý½;~Ú²ÉÓuƒ­Åú5+—èji€úJò2DhØo¦|KhêåQêOô«ýR@?“ýP„þ/„¾ ‰¾.]“>½â°ÿ0WýIÄ -Dªÿ'Jýßp§°”‘Wš¿P•«š} š÷î;~úü¥è„”ŒÜ‚Ò•Õê[ÛAý®ž>¬þàÇ!Ôg8ôqð=¨?Ð×ÛÕù¼£½µ©þAuåÒÂÜÌ”„˜ËçOÛúûltu´µ4%Äê˰Ô¾ö -ª>Ǩ#C#õ‰Ð¦DhfèË1 )™¹…Dè¦ÖöŽç]½}oÞr‡þ2Bè/<¡±ú½XýÖF~¡aÔmtC¡Gu8ÔË£Ôÿï¡ïdoci†Ð_b «­©¡ºˆ@_zî Nô©U_àÇ­þ$ríuíS`í-…µwÜì!¬C–äf¤àµ—PŸsíÕÑR‡µW©?[ ­½S‡«?Zjnõ§ò9p …-l7¸zn"F>pð¨+Aê×˨ƒ§ 80êø8¾ 7';+3PßHNSõd¥‘ú"3gL#SSêÿG©ÿCÐO ÐGèïäDÝš•Ë™è/„&“•ž mÍO¢ÿ7¾èSýÀ÷ñ¨ŠyÚŒ™"bâsæJË*ÌSVQ£ÑõŒ–¯21³²wrgøï -9ê_ˆŒMJͺVTê×Ô[ý?†ÈOýW=/}úK[KC-R¿8?;ýj\ÔÅüýØ¡ÐÝÛý¼=œ¬Í±úÚšÈ?E¡ý#{˜jE25RßÜÚÁÙÃÛR‡:w5=;¿©_ÛÐÒ†:­wÚ;V§šúß85´¡þ«nœº¹¡öÞí›×‹ó²Ó®Æ]‰`¦ÞÌ•Z§vÖQOøG©/$ú¿ˆ~;_ôÏs ï‹Ðwà@_KC}ý)ý¿²Ñÿ3…þמÀ[¯9l½à_×oݹWÛÐÜFÖÜk¿¡qôm½Ø?/wçѶ^þQ؅Þu4mâÂYçŽg](9ëP§ãNk`užu¤†Y×ÏšuuĬËI‡ f×…³~õŠ¥:Zä…#5m9”ú?ðQêúý ú†\èKúâ¢"³fr¢?‘}ªø?nþp1OƒbŸ-I³º–.f Û ®ž›¶m‡b?uîRt|rFNA Úzë[Úž¬þàÇ¡¯«ÿ;[}Ĩÿ©ß×Û…ÕozXs·ª¢¬ðZfjbLä…3'ŽØ·s«¿/ÃÍÉÎÊt­ñ2C]º†*¨#ŸÉßT<í…UŸ_lº®á2㵦–vŽn _ÿ­;÷8rÔILͼVXVQu·¦¾ «ßÕÛ‡ÔÔ'b ¦þÐÇABý^¬~kcýƒêÊ¥…¹™) 1—ÏŸ>¶ÅöÙèæhgÉ«/òí±©'ô£ÔH}AÐÙɃ~ÑXПƉþ -}A¿¥wçÒ« -K/æ–^7†‹¿Ë¥7ªî>¨ojmïxÞ ü ¼yË­þ—ÔG•ÁÅßÛ7,þš†ó·wâÏÕÑÖÒ–^CXz9øbéå{â|eØùoe»˜„”ÌÜB<ìêÉa7†Ø\îžvY©‰±Ìa'ƒçÄ™‡Nœ9âbBœ8ÔúQê ‡þ?dž¾íÈè‹ñEŸR_€Gó_8jù?ì×ùWûðu—…u¯”ÓÂ’´Ëœ!Ju’áÊÑ<ª¨T$)ÔI9dÈJ¥4Ï¥y$ -¡yˆhØ®YÜ{ÖźŸï÷yönïm·Û{§ßžïð^Ïûy}>¤>tYÔ_¸dÙJyeUµttÌ,mœw{zûù‡GÅ'gdॷŽXzûˆ¥÷ƒÐK/«ßÜPƒÔ/ÊËJKŒ ½xö$Rßc×N»m&ú¿úkTå–/]4_>?Œü¢¤ú“Yù;7Cý‘X|æ¬9ä?,§¨‚ÿa}‹mv;‰çäÙ‹¡‘±‰pâ'N3û‰óIÐçRÿyV¿©®êþ[%9)ñÑWB‚üý¼=Ý]l¬ÌŒôújÊ -+—-Y(Cõg±ª?™¬;Uõ {”úü£ÿ•ú}=Ϻ~2ú§Ððq×PŸ†Ô—SPVÓÔÞ¸YÏÈÜÊÖÁÅÝËçÐQÔe¢r…,•ë†Ê1Õ‡Êñ­þ§¡Xý:¬ÚšëkÜ-»Q”›™šqÔÿóß÷íqu´³67Öß¼Q[sŠVŸ6o.ÒÔŸösÔǹçѰú -*8·¾±¹µ£ëž}ðƒú—#bS3s‹n”Ý}PSßÜê÷Ð^pþj\Õÿ>¢>Ê ¡þ@_ÏÓÇÛšê«Aýë…¹×R¢#._8sâè!/wWG[È­‡r«±å&7õ„|”úü¡ÿ+úïß¾yý¯—‚¡¿ô§Rè òþƪßÜe´óâ.Ó;/¡ŸÅˆ~P¹ˆ˜ЯéW]ßÔFVîåë·ï rŸqå†ÇÔo˜©ßÛ×lúÝ-㦟•¹¡±ó‚~Üw^>>:¯‡6Ý8¬ÓΑ1í wtBêµ\bÚ±æ~#ln<íž>yÈ>íðƒ§Ý(7Îl–g -«úTÛ'äQê‰þw&úx¡}ßÐÿulô§Pè ðØÕŸ -]ž&2]l†øÌÙs Ë غlAtUîìÅÐÈØÄ´ÌÿøqgWÝ8+å•U5ÖnÐÑ52³²ÇÓÛÏ? Ý8ñ¿Ú¸oœAz/Ü8íÍ 5•å¥EyYiI±‘a—Î:vØw¿Ç.§Û¶šlÙ´NK}µÒª²‹HKê‹Aí‰M‡R¢¥þ˜ê³¡?Ìý~„þc„~ƒ°èÓFA2'úÔo0úã†ßt±_°úRÒ Ë®X¥´Z]ký¦-¦[·ïprÛ{ààác§Î] -»›”ž•_\Z^QYÛÐÒê÷Ò±ú‡>óVÿÛˆú_p1Hõûûº»:;ZëªîݾYR‘|þ4Rßs·³½¥©¡®ÎzP_Iá'#%)øý4õÉà’R2(¸¼’ª†Öz]CSK{çÝ þ‘ã§Ï‡GÅ'gd”ܼ}¯ª®±µ£³«»¯«ÿ©OçOýÏC õû{ajoi¬Eêçg§'Ç]EÁ9x`¯›³ýv¾eÓz-u"øB"¸pãŽzÂ=J}AÑÿ2ú­ý‚¢/ËúÔª?ö#»<‰¥ÊÌ•WŠXy•ˆ•×ÐŒÄï ‰_\rzv>Ư¶±á×Û?øâÕvõ¿Ž¢>j+~ >©ø!õIü˜ø9Ùoßjj€ñc®¼’B¯¼¼ŽœÇ=w»¸$^ Á+!xûx‚ÂÁ_’Á9ÆyäÀ¸ããÈ™L–žêûD=J}¡ÑÇúgøC_btô'Qèó÷Xíc¯²„$ «¯ ¬†Ô×32³²upq÷òöó -¹Ÿ’‘SP«‚Ʊ¬¼„^yé½Ïž¶OxõqrHŽÕŸ'½€ó'v‚ŸØ9¡‘±IiYyã=r 9Û‘óôñÃÖ¦ºêûwn]/̹–’}åò…3'Žòñrwq´µ27ÒÛ¼Q[SMEA’χö#õgˆNgªO-ûû(õG7œD@ÿú¹™é)‚¢G®8…þxÞhöá*ÓP•åTÔ4µ7nÖ76·¶utÝãåsèè h\DtBêµÜBܸú¦6²q õQãøVÿÓЬþ½©ßÜPóànÙ¢¼Ì´Ä˜ÈЋgOþùÇïû¥þD?J}^èÿýÿè¿ô_Œ ßÜP[-úò£ ÿ -}á‡ú¨ÉLõ¥¤,–]±JiµºÖúM[ L·nßáäæ±ß÷ð±Sç.…EÆ&¥eå—–WTÖ4´´ÃÆÛKäoãýÆTÿ/Bý°ñ¾bn¼MõÕ÷ïܺ^˜s-%!úJH¨ÈÇËÝÅÁÖÊÌHo󆵚jÊ -+—-Y(C“ÄꋉŠ0ÕÇ_Ÿ¯/OFŸÄò‹ˆŠaõ%i2 þJye5µtôŒÌ¬l\ÜáÊñ -¹ÿZ!Ë¿ÖÍråü[°+ç#VÞ‹®œ–†ÚÊŠòÒâü¬ô¤¸«a—Ο>~äà½nNöÛ-M ·lZ¯¥®ª$ê/”‘’”€þ zB~5.9=;¿øæí{•µ-í]Ïzû õ?}æ[ý/¸¤úý}Ý]­MuU÷nß,)ÈÉH‰ - - ð÷óöÜíì`cif¨«³a­†ª²ô9Vý/_è¿ôa«é§÷v?}ÂDÿN‰~" ŠÐ?N ïF¡?ñM>ö&3^…‘…ׯÁ…¤Þ¨ø”Œú}ïGèCã®>Oúj1}ùÙéÉqWà ¯3ç»ԟ3{¦ø/b¨¨ãQ²3ÏIö3ÇÎ{'7ÆÀ cxäÀ{õ†}à÷ÀÃgNyæ\`œ9޶VæpælÔÖTSQ[¾tÑ|øú3D§sQŸªýï›ÌN¨¿Ô_ÿÓFxÅrðŠUð+>¯øÂ¥«×oßó ‹ŽOÉÈ}TXR^]×ÔÚÑõ²·Ÿvæ|˜÷™ƒ²ÓÕìëyñ¼½¥¡¶òYñ“üìôä¸ÈЀûw=Ü]œÎÛÙXY˜êiªíÛ½cÛi ¬þÚ5Dvx?°žÖ‡RèBèãW ´¹¡·o&Їc¶ª£Ÿž’HGÿúµ+Núßlf黰ɤ|x“Õ´ôŒL-ÛØÁ&»{Üõ ŠKNÏÉR\VUÛØ‚®/Ü0,Ü8^¸ùªÿá·Q¬þ`R¿±®ª¬¤0?'#9>*,ÐËwáŒíqKS#=­)òq2ÈÇZßæÎÁ?'ùŠE%¤‰ìšz†Ý–!{|r‘½®±Ô‡ì¿L~lÓªOÏþÇtÙ[PvPŸ–üñ ;ñãAöé~<ÖïjXJýy¨ÿ'QgȪ?2ü~*Íëè4]í€~- ýŒ”ĸ¨ðà€)èPè/ôLR-2ÛöeH}n>þ B7In–SPRV9 }ðÐá#'¦ë» _+–ïõgÉë1 -ÛñX>Zß½sk¢ïêjªíÝ¥¸UVZ««ð#çŠe þ¢©êÏ/<³ú´W¼ -Ý9‚ÂpçÈ2Ü9ðãÑ¤ô쇠>Ü9-äcÃwë?ÞŒwNxŸ·çk—ÎÂcvH_[]EYIANFRLDHP€‡{¼‚eìKØèá¿c!<5¬¥þ¼Ð‡½þH¢ÏîØ_ú/»;Û[›j«*ž"ôSIô½úÎNÎQ賡Ã7±ÈH}7/Ÿ€ °ˆ˜”Œüö{ö«ëè›……s¸|톧·PxLBjfnAQiyu}R¿w€Pì·ñÙÕÿ/]}T ð%8 ÛñÏÁ¾W ~sCmå³§f§%ÅF†<ðñºåæ|Ñþ´õ1 ] U¬¾”¸ˆ° ¨¿ -©ÏΠ>+ð‘Ïx–ðâR²[!¼ª†Ž‰ù1ëÓö]ozù<‰˜ôØ^õ ê}ÿdÿÏ|ÕGêCø×½¯º;Ûšê«+J‹ -ò²Rc"‚ý}¼nº^qÏjzjXJýÙѧWý“{=2ünè-”¹þ^hsmÍ€~YI Ÿ™šèç}Ç㺫³“BÇÆè+ïT¤£/H¡ÿµ‡Ù=¼Èl°ÈË98¹ÈE•Þ²Uq×^5M]C +TwÝ`ßB"ã’Ò³ñ¾Õ’uwp¢î 7[ÝýkrÝ…C*ÁDÝÍLMˆ ò÷ö¼qí²ÃÙŸO5;¤¯­®¢¬¤ '#)¶Qh?7×JŽåËØõ!ý"¶ÅìË–s¬äâæYË¿Ahã&ÉÍr -JÊ*´2;r‚*,Á‡Ng÷ç:¿3:=pè´À¡SVü$?;=9.*4À÷®‡»‹Óy;+KSC=Mµ}»wlÛ"-± Ôç_»f5J¿¥Ç¯€Ra‡Rvõ'Wý‘á÷Ch±¡Ï¼èêlki¬«©ôççf¦%ÇÇD„úùÜñ¸áê|Éᜉ¾Þôׯã£Ðÿº3Ž{K‘{«I÷ÈEVÓÒ32%ÙÝã®o`hT\rzNþ“â²ªÚÆ´oýhßõѾ͡þ'ºúhAÞÁ%‡`WGkS]uyIá£ÜŒ”„è° ¿{·¯_½táÌÏ'Ž6:¨u@Ey‡‚ÜfÉMHýµ<_æÞ´ÞDúõ?¡ôrôg|Ò_¸tõúí{¾aÑñ)9HýªºÆÖŽ®—½ý„úŒ¯mõiéGqúÁþHO£ª¬¤0?'#%>:,–Þö8-½CzòÏ£_:ßÿ ¿jýf(õgE¢êÿŽ›Ü(ªro Ëõõ@™koiª¯©,/}ú$?7+=9!&24ÐßçÎí®.—ìílQhãéÐç§ÐÿÚC.òw {̶„Övù@}1IzÛ=ŒÚ.áž_v/—Á½žÉîý1ƒ{ÿ›Û=h»9ÉñQ¡dÛ÷,Mô´ˆ¶»·Ýu´¶ »€Ùû"õ¿ŸéÒÙ¦ž¦ž¡©¥•ùçÌð罆ôãÌé?ïÏ›téœ .ý{vn——‘àãå^õ#ç -&õ©²¿€C©?«úŸÈMVýÑ‘áwh­û{_u?oomj¨­Bè?ÊËJOIˆ òG‘Ý\.9ÚÛAfK&ôe}Q -ý™iØ£íñ*n^>Aa1)ùí;÷ìW×Ñ76;zòÔ9ÇË×nxzû‡Ç$¤fæ•VT×7á¶;@¨?6ÿ¶‹¯A´!ÃïÐ)Ø×óây{KCm%¨ÿ0;=).24àþ[nÎNçíl¬,L u5ÕöîRܺEZ\©Ï»³êOÃÞ|óÏ ï:ˆ/*.-»Uq×^UM]C +ëÓö݈×—”ž_[mC ùÚÞüú—Î8Râ¿€×ÑÙÖ\_SQZT—•šüÀÇë¦ëÇs§¬™èh¨‚ú[e¥ÄE…§ÆgõÓ£†µ¡ÔŸ }†ªÐ~?„5 ÿ¢«£­¹±®ºâYqaA^vFJblTX$ö¼éærÙÑ"[YšêiSèƒaRÿïeï1/.»4ö4t LÌ!ö®¸Þôòy›˜–•ëVQSßÜÖÙýªoà5bÔgØ·ÙÕÿø­È¡þ@”‚¶æ†šÊgO?ÌJKŠAì¹9_´? ì™ ööì1—Ý/QšS‡éÓ“ÅŸž†Ž1ćOˆÌ¿ŒOWÎøèÐÕgŒßIŸ ñ#CˆOⓟž*ñéIˆÒNÎ/8u¨am(õgSŸ¹ê¢*U ¯çeWg{Kc}MeYIQÁÜŒÔĸ(ì{Ïó¦ûÕËŽØšD_C £//+-I¡¿`ìþ?`±-f_ºœc%ì1?Þci¼Çjšz†¦V6vxïÜ\v_1”]rß>Í—½‘á™Ê®¿·'QvO57Ö×QßeW^FJ «ÏCSŸ®>^„yïÀ¤ütõ9@}>þ B"b’2ò -Jpêh§ÎY‡éN¤>:u~}÷žéӛߩƒÔ¢Ÿ:øÔÉÏIOŽ‹ - ô½ëáîâtþŒíqKS#=-µ}»wlÛ²YbÓF¡ ükyVs­õÙÓòSê/äPêÏ‚>y½Ò«þTý·¸ê¿ì~ÞÞÚÔP[U^úôq~nfZR|txH€¯·×-÷«(ð)k«#f&†}•=;(ôvfèºHýÿ³_æßTïk_÷vïºgU§áœÓ)™S"džC2Ïó<'B‘$’™2Ïcæ©(2gLD$¥\×-n³:g­ûù|¾{o{o{›â·ïó<Ïz?¯çõ`Ôã9.$*)sRQ…”co¿À°èøäôì‚’Šš†¦–öîÞAHý×S(nAÜaÜÔÿ“õ¿.QD$hÁäøè‹gCý=­Íµ•¥…9) 17¯ûû\<ïbomf¨«©¢(/#)&Ä©¨©·wãÔ£}õPÿ™YIý˃þu ͬì]ຆ„Ç$¤¤ç–VÖ66·vôô ={1:>95ý®ÛÙº­B}¬ÿÏÿ™Gý¿›z ûìëFýW”䤃þÃCýPÿV  bÿ¼\GÐÕ ±üêáØß’©¿õ¿z™êO¼}>ؾžÎ¶–¦Æºªò’ÂÜÌ´ä„Ø¨°ëW¯x_¼àælocaj¨¡¯p’ -úŒ8ô7¹( Gîºû€ë²°qpr\Wº®™µ t]H½ zÔ#Åíw:Ô£¦>‘zÓS“dÔ«AÔKŽGÔó®koej¨£¡\W’†ëBè}+õÑÈ~ò=V×10µÄ®Þµ`ª«×78 úWNÿ«\½Ï˯üu*Ë -s3à¯X€~kÒ¯#.,€~ì×Ù³ë{õqÙߺ©OúDÕÿLõç0Õ=>6Øþ']í­Í÷ë«+J‹ò²ÒSã@»AW¼=ÝÝœl,Mô´5ÐÐçÁ¡¿UEzÄ30±°æäæ—’=¥¤ª¥glnãxö‚§ïÕ ÐÈØÄ»™¹EeUu÷>îìéz>26>ùvúÃìtÝÅu¹.ÈÈ<üaB^½éínoij¨)/ÉÏNKŠ ¾vå’‡›“¥‰¶ú@} A¾cG³³2<°Pbû&Pi@{Ì÷˜OPDBZNAY][ßÄÒÖÉÍíqÔí¤´¬üâòêú¦–¶®ÞaºÍÌÎ}œ_ØÀ¯óqnvzÑØÈó§ýO:Û=¨¯ºW”—™z'.2ôFÀe/wWG[ c}-5e9iq4¦ƒ€úß2¼ÖQ8õé@ŸD}JÕŸÁTÿ%0™ÞîŽÇ4ÔT‚n³a·1¡7®ùùxzœsq°µ43Ò×ÖPUЗ–À¡¿…EIý€ï R]"ôÔô,ôܽ.èÅai«&¦ PâÍ[½Ozdq[‘ú_õPF ôÞ¿ƒ ùõé@o„^õ½â¼¬Ô;·£naÐs²µ0Ñ×&A›BoÕ]û–SŸìÙg @KßØÂÆÑ 4 “|ÝÈ0¿–À5!QŸÆZšê«Ë‹ó³Ò’À–Ÿ=øì¥|v¶'€S §>}êÓRýHõGGžöõt¶µ47ÖU•—äf¦&ÅÇFÞ -ô÷õò t«¯£©ª|Z^@_Xà87èG€þßpèo¸1ÞF >L1 þ^D}fÖCG¸xˆ1V×10µ1†ªŸ”–_R^ÓÐÔÒNCuÿû¿ß~[Eu) ‡T÷ý’ê>~x¿©î]¨ºAW}=/œu´17ÖÓRS:%+%.ÌÏËÍÉÁÆÂˆ¨¿{×Nõ·m€ú„ ÷xç®Ýõ™!õyù…Åг£©gdní@xv"h<;àÙÁÎÞÚŸ/+=;%ÙéÉñÑá!~Þ¿œs±·25ÔÑPQ”—‘âçá:rˆ™PŸÞðUØä©Oƒúªÿ…Zõ'1ÕïÒÕÞúðA}MEiQ^VZJb\TXjö‚«“µ¹±Ž¦Ú}1ý£úÌŒ ~Þ‡Cs‹Bõi0ï/¿˜¤Œ¼¢Š†®¡™•½ L[`HxLBrzNAiEmcskGwßàð‹ÑW¯§Þ} ¤m¦mê]¢>0ƒÏýFd|l$¤§P¿¶²¬07#%16âæuŸ‹çÏ:X›éjª*ÉËH‰ ñóbÌcØOÁ¼õ›.Õ·Cœ¼{`ðî'  &` 'àãýfDLBJFNai%š@Oßг£ã“SÓh dû¶ -õ± êÔÿ0=59> -v¤¯§£µ¹±¶²´0'#%bz`àî‰QÞ=Úß¾ ›\8õéRÿ+1Í(Î ÈbfˆªÿªþãGMµU÷–z -¸â}ÑÝÍÙÞÆÂÄPWKíŒâ)¹’b‚Çy¹á`g%B/ýÍ,ZÔ'¤˜‘…𮀰8•éBæÅ&¦dä–UBÓí¦K“y¿Óa5õá?HÁ¼nļŠÒ‚œô䄘%Ó53Ô%šîqhº¬Ìé‚P€LämõÁà·³‡òÛ‘¤XdìîÅ'§g”T o»{ãdwjkº{³HÀ·3DüvÊŠr3ï&¾wWG c}-5e9iqa¾cG³³0Üe¬¢þFF€×Z §þrè/) Ña‘ÄÌÍB{C¦úÍ÷ë«ËK s3S“b#oúûzyœsq°µ45ÔÓRWQ‚Ðäç=F }˜î;pèoRÑCÞRŠùDÄ¥å”Õ´ô-l]ݽ.…FÆÝIÍÌ+ÂÂÖù¤ÿé󑱉ɷÓ3³sú‹ë2ÝE¢é1xõò×áÁÞîö–¦†šŠ’‚ì´äøè°àkW.yœs¶³45ÐQ?súä QÁãy¬Lˆú{vò(G€y'Xä~Úw€8A‰r§Ï¨k˜XÚ:¹y€E‹¾”–•_R^ ©ßÕ;0LØ70‚ó ëýv>/|ú87;ól  þÓ']mÔWß+ÎËJ½s;êր˗<Üœl-M ´±ˆ ÁŽí¤Ã· §þ–N}ÚÔÿƒf¢Ã@ÕŸ…ª?9>¶¤ú µ• Õìô”ĸ¨°b«vVfFúÚªJ -'e¤ÄE„ô¹0èƒhïR·g÷.ú›X„o#P†x¹è¢«ëäÙ‘W\^]ßÔÒÃ6ñæ- ydi[‘ú0%yóyïÞ êôbÈ+/ÎÏJMÂçåga¢¯­EWB„Ztw êÿ}#¢»Â»ÃÄÂ~˜“æá»q+*Û·jâ¾Á÷žÀMAÔ§1‡¾;ÎvV¦†:*€úÄw‡™{wÀbl|x­­pê/§þŸ$ê/©>t˜!ÕýjtIõëªËK ê'ÅÇD„Þ¸æçãéîælomnb £©¦|Z^VZBTH€‡‹óð!6°Üö ÿýNú›V¡A¼»vïýñ§Ÿ™Ù8õù…Ä$eäU4t ͬì]Îýâퟜž]PRQE·»w‰î ÛšE÷rѧÝN@ýºª{Ey™wïÄE†]õõtwu´±0ÖÓRS>%+-.,ÀËÍÉÁÆÂȨ¿—6õ×3„¿b—b€úŒ,lœÜ¼üÂbR²§”TµôŒÍmÎ^ðô½ -ßÄ»™¹EeUu÷>ïÎÐß/ÔïÎ8X“Á¾îŽÖæÆÚÊÒœô”„˜ðëþ>Ï»8X›éjª*ÊËH‰ ó¯>|!6·pêÓ£>R}õA˜ç0ÕŸƒT¿Zõý}½<þÏ~™xcïqüÜéLMEH)Éž"²/QZ¬Ù²=ä¡G¶,…)mÚ‘ж¡K²„lCÉÊT7‰6ÉÌ©©“{oÝ3Ý9÷óýþžå÷<žì9÷œß÷?ø~Îûóú¼Þ[ý6ympu²·]g‹m¨¯£©®ªÂ‚>{Ž8ýÉ~<ÔŸÊë¹R2òˆxš,âÑœè &oÛ®}‡cãÏ]H»”[PR^UÛp«µ½óþÃîÞg/úxÂ6<õÿàRÔBf€ê ˆ´ÁºêŠ’Âܬ´‹çãbxÛCƒü˜ ºÍÚÂd•‘¾6A¿}óš¥ú½ÝÈã º6ÔU_/+*à¨~ÔÈÛBƒ|à£ÎvV¦P` tµÔÕT–(Ì Ý– A:ýIz|ÀƒÏÍ ñ2M]ƒ«M-mìÝ<½ýƒÃ"8ž{™í¹­÷»÷‚çž;ñþB<Âsû_ÄkoÅž[ÌñÜC{w‚çúnôpu´³Ï5ÔÓVWUVR•–š/KýñïsC˜#1´,¢¾º¶ž¡ñ3+Î&㾓€ûNôچƖö»÷€úÐwÆù†öëeW¯\ÎHùîôÉcÑöD„‡lòrwq°µ4]½b9,P†° ATíÆ7ÓXCëé£Þ¨Eýá©ÿm0o~#æIÏ#ä0·›oÖ×@u½ÊQý¶ê{{º»:Òl,ÍÖ‚Éèik,[ª¬¤(«-9_Ù úÓ(èOÊc…x -)ÃüÀc…ØÖÁÅÝË' $|GähÈZRJFö•¢2vÖt=~ò¼ïÕÏÿøí Pp´ž‹ÝB¤ÐŸö :bP_Sy­8?'35ùì©ã1#w~»e³×—õvëÌÖ¬\®§¥®º¨¿ ¼éàMŒúx -B°Éx¬Ó§¥Ë?„ƒ1ÇOIJÍÌÎ/*«¬©oln»sµphoß½ü'ÌàãðÔÿÄ¥þ{ð#Dý—Ïñî´5ã!ågg¦&‘†°qƒ+1öé“ç·ðP²ÿ…E}ÔÿD–¸AÜ[q–AãwÁFƒÇ݇¹V,PõéN¶Væ&«WêCUU^¼HAN­6@_LC^ï©ô'áñðŽMýY"bâs$$¥¤åúÚú†ÆkÍ­ì!ľ„æðÎ&§fæäƒæðZÚî7l‚©ÏÞ‡ ÖÜ¢+Ù)Ig°æî 4×™£¹Ë@så!óæõ!3ˆ8aêóo² _áq÷Ü„ -Ï|úˆ…túF5A§o¾n´(-¬Â“Ã.<ûv¡ÂÃô ;ÒPá1Ò×ÑPSY¬('#%9o®8Z™˜õFó(êŠúoý+±Ð½Ý¡¸‚Ç5ÔVW”åç ‚ê9ÌU}Gšµ¥Ùc#¨¯j* sú’hµÅD±Ì°¡ÿ5ý‰¿ÏX.ʰ¤”Œ¼âb5 }£U&Ö4':ƒéYÛµïpl\¹ i—r JÊ«jnµ´ß½ÿ°»÷é‹—¬¬ þkdÍýƒ¬¹¿cê÷=ò¸ëÁO·›€ú¥Wó.§§|w:þhÔþ=aÁþÞžnÎö6ˆú À; >/ïx,wlctûðäˆ)à)Ø;¹1¼ý‚B·ïÞu6ùbzV^aiEuݦ֎NDýg}ý@ý×c)<ĈUùe ü¨ûáýÎУºêŠ’Âܬ´‹çãb£öïÞäïÍps²·¶0Y…§À¹}â½}ÔÍ£¨?„úÿå®3©¶â(ÃB÷!á;öˆæD­Œ5d¹Ïû^å¾™°åÞmo¹ÕP[U^\séû çN9Z°5Ðw£‡«£•ùZcC=m UeèÒRw$êOr‡;~¬1hë¯1·â¬òν‡ŽœH8›ü}fN~ñµÊšúFh<÷v÷°Ï›ñ4ž·¸ñ¼D‚ô÷Ÿî´57Ö×T–ågg¦Â¢9¹ãÛ-›}6np]o·ÎlÍJƒ:w ¼Ç’ý/ó(êKýÄ>cêC’a¡‘ÀÜiƒ®«¾YÎAß<}òø‘C`ra!›}™ 7g;+ “Õ+Yª¯D¨þvƒA >*„’§=È ÚZî®ççd¦&óàÎe½-ÂÝr=-Œ;Ù…\É%‚1ÔÇs‚U&W-]¾ãy0æøÉ3I©ÙùEe×kêoŽg Ÿ¸c ¨OC{K#¿køø%“ŽÓƒîHCÇSydˆÊ#:K˜ þxç@½Eýá©õYAý§ q°À@”+J¯^ÉΑKŒ?}pïÎm¡Á›¼6ÐìmÖ™­åW} P}Q–êÃV} -úŸ¡¦þByÅÅ*jš:úF«L,¬iNtÓ¢¶kßáØ ç.¤]Ê-()¯ªm¸’{ì’ûi8ɽùã W²3R’Μ<}`ODxÄÝÙÁÖÒtõŠåºZË–.Y$á˜7¨јí_?Ö*Ë`êkê¬Xmjicïìæ¹É?8,UžøÓ¤kšäÊÓÙÞzëF]uEIanVÚÅó‰q±Qûwo ò÷f¸ÁžX˜¬Za «ÉƒøÄ¯õF|õGIý_ùùUßó§=(É·›oÖ×T•—æ]ΑK€,“Ûèçíéfmi -ÕU_Gs™ªòb~ÕŸ1¬ú_QÔŸàã¥þ4ˆðL!aÇ%ÓÎh·}÷þ¨£ñ‰ç/¦gå–VT×Ýhjíèê÷>{Ñ?Àµá©OJ «ö÷={‚ú`Çí&D»Ò«y—Ó¡ ÆE´ ö÷öts¶·±D´ƒx€ãíx÷k2íÆ:>ê ±;Œº~¤ëçíŠæ7d]0‡>bïH+'ú‚æðšwèúá9¤Àðõ Ã×ÏÅÛy–@ç‘ævö °Q»1Ù¢>?ô‡Ø »´ô÷aê·B’k*¡¶æf¥ƒÈá_îŽß²Ù—Épsv°³²0—ÓÓÖP[ -qƪ4FŒRý/ðXžBJ0‚¢¾”´¬‚’²*;¶ë]ܽ|BÂwD‚㲓VÆNá¸ý£sÜ?‡8î;ÂqûÇíÀŽ[Ž÷rÜÃûvmÛäÇdÐhÖà¸Fú:j@}9¤@}‘Y|°õ B|Ž„¤”´œ¢’²š†¶¾¡ñZs+;GW¦o îéBv^qYÕõ[5õÍmÓ¾CŒûÇeõìÙîåîiÓz=mu9©¥B -ŽRÐáÝ£©?%ê×ÕT3¨Ÿˆ©8(~ÒèoJR_YAÊIýyêÿDSŸWBýŸ¨—:um=ƒõ›·XÚ9¹{ïØqâtlbjfnaiåÕ›wê[ïu‘FCÔù0ɆûatxhôÈã‡÷;Ûšëkª¯U•åe]HŠ;sòØ‘ƒûývx{8ÛYA+Ôi ÔõÅ„¨ãTp§¤Å,Yf;€r -ÊXŠM)ÎÄ&¦eå•V]«®©kjëèzøøiwO¢þ{ÈÜG¤Ä—ñ©ÿAýÏŸˆÕR ôõt#êw´5a)J‹r³ "9AH±ÍÃÙÞÊl3>€ÐdðZ€ÛÑôgýÆ}4õyOýM˜új@} ¾…ú¿Ì¤©ÏÓG¥>øþY³çþ6¡2°¬¼¢*.¸ÆfÖö.Pp÷â‚—t!+¯¨ ¡®PwŸ;ê8SŸ4Éd’@} -êÀ"¨à–æ‚CbOŸˆe\S¢à*+¬”–’”sÌd¡þÔIÇU‹yó -‹JH.ã8{£NŸKHÍÌ),™ðr“âo6)(œ=e¬³Ç—ÏVWksã†ú:šªJòЖHˆ -a-f  r4ƒåÒáí£©Ï{êS»>MýïùþÁ©ßÎ"ú-A:0°’š–Ž¾¡‘‰¹ƒ«§Ï.ÿ‡?s>9ýb~qùåë·jšÛ;úÏ^ôô¿¢mü‚û'Qp‘GPÁ}÷æõ@ßËç@}°HãÝ;7¯T”äd¤&œ‹Ž  Ú·Û×ÓÍÑÆÂÄhÝZ]-5¥U+ÙIÎà!õ±üfâŠPIU´ØÈ¢EXdt ‘¹ -”¹È܃GOž¿ìÅÔäìAy-ú{_<Çqii¼{ûÆ•ŠK3R΃aX /7G[ SB åUøÂî-¨»‡.ûßáÑÔŸõëkn1¨Ÿ„©à‡~¨¿…¤>ìVÙR’‹)Ô'ìÌGSŸG:¦,[,)%½RAY][Ï`=ÃÀD¿†~›‘SPRÁðAº~.¤›ˆúØ#c¤koi@¤+¿”1=å| ªP¿uaï·â"B þ¼Ö û¨O ó‚E"b‹—.—ùz÷:züäÙøäôlö ØK\À‘i^À.¸€x÷”ÀîIeîžÞîNv–[6ãÝ£¢ '³|)$ecÎlÔŽ¦+ý¸?šúßBýaõ!Òÿéê ©_|œ–öÔ—à¿ð“޶àä †úºcÔ‡`/ÄÉžCSŸçK½Å G “STÁ Û¼ÅÊÎÙÝ{‡ßþàЈgbÓ2s K+¯Þ¼S×ÔÚÑEú QxäÃ$ûí‡Ñá¡A²<~x¿³½¹¾RVœ—} rR¸wç6g{+3(kVk€;8‚ŽRo§¢Æ?Ù†Ë Db(¨à8&ÆÁ# F\RZV^QYÕµêšú¦¶Dýîž>Æîùˆ´ø2>õ±_>þÔ~b ôõt?1:Ú .Õתʊò².@G1îGb¸Ø[›#14U'}øüH¤„NOMý‰©º Ž4*rP^:ÚP¦a³õÁÇñ1Ñ‘á¡Á`dOX­–fPæÖêjk¨*¡Ýºt±¸¨0Jö\AmL}²ÅÐØŸþ#ýËàß àÜ,Ù‚sçÍ'ý++¯¤ª©£o¸ÑØêíV¢Þƒz›t!;¯˜]s[ç8 ãL}èG {E€®‹ºÒ¢Ü¬´Ä¸3¨Þî÷#ëí&f½EC¼1oî¯Pø™ÔŸ:ç¨7 þ,9X aQ røPÒu:61•ã |Ëv¹‰1Á l@'°¼†O2>Gñðñtu°171B I Ee™¤„¨0¦>E ºìóþÑÔçDý¿¹PŸ˜¬@ý†ÚÛ7®T–¢öz0pï._O7';+3c£uz«1õ¡Î-‘@ÔŸ¢;ÌÌŸ‰íJ—}< -æXÛ-pÚ-æé_# GWOßÝþ‡EFÇœOI¿˜©üòÛµ -í=yö¢·S„á³ñë-Xä,y÷æõ@ßËnä{­uwn^­,)ÌÉLMˆ=´oÏv/(¦FëÖç”Q%`rŽtâÜt0ÇF}㫸JIMKGL}AHs )9%ŒÐÏ_öâáj|ëða¨1:24j ¼Þþ;Ã÷ì‡æ“Û|9¿¸¢¦±µ­£ë6»à>y_N¼âMãKoà½Þ|ë«Ê -s3ÓPó‰EÍ'ØÏÓÕÁÆÒÜÔH_›¥ -‚´JAVQŸ;Ž9Aæ}â1ÔÀ¾€ºíôðS\Ya©o´_mi€ÎZ9NŽ?qd‚ìïíîlI†Úª§ÍRSA«šëB’úŒì‹é‘ñýŠL/¿Ür1§odjniëèêå 1;{<>)åbVnQYu}óÕkÝ=}÷~#c†¨?õæÝlí–ƒwÈn±Œ =~„µ «£­µ±¦¢8ÿrzjr‰#1Ñ‘á;ý½Üm1æt ÐIÌ¡`ˆCn…UŸoQõ¡A–6‡ 1ŽH<ŽdG^QyuC »oàþÃÇCÜç/È­›FÓø(šúxÑ8ÐÂ`MzÎBûÒÇî֥¼8/ ÆOÃÛÍÉAM5¾#È«>_KÂlˆ8CýYR» N1¨\ï[ãÖÆÚÊÒÂܬ‹©gN;|`_dxH€‡‹£­Õö­&†ú:šê›À`V+ÊAq…03²/î'Œr@9L}9E_MÝÍ ·ÖvNîÞ3å¶+·€¹θ0Ì §þLÌMÒ0w¯¯‡À\uyÄ#–€.·f m ,·ò²R˜ú’ x”ãQÿ‹òm›©yHÉÈ+*­Û¨ª¡ET´ÎAa¨úÄN:—–™[XVUߌªOO/÷Â8ˆ#øþµv³:‚SÜ#Õ,‰8‚µ%ùTõùGTDH (’õö­?lÖÕRß‚¤(›‹ò‰y0 "¦ÇP_4õ)“#+§¨[ÝÑöKS]U|3ýüÙÄSq±1Ñ{"Bƒü¼Üœì¬-ÌL tµ4TÁ`”`·¥WòÉþßÙËã£þ73ÜVF~Pn—rÎ>¡Q8¾g/dà”5Q){ðèɳ‘±ñ/'^M¾¡b&Zné^ðfŠ”ÁÁþv¯·çÖö+ÍõUe…PÏA:Ø»;4È×ÃÅ~‡P_OKƒ¢r[>ÊñÜv®áï>p•Ön¤ÖÙÚÎÙÝ'0Ïm]FNAieß·mË„ìoÙW d¿ì3ØŸó„Ü< Hïbœ^Y…UkÖ+«²´õLÍ-m\=ý‚ÂPÊxn[Gw[”ûõé”CVp÷ÎÍë¿þÒU° ;ãrÛŸÛ€ÛÚn ÉØ°Z ôJDý…’ -¢Î rBÎ o xUÔ4u  ûXÙ:¹Ýçî>—.ç—TÔ6âîs·¨?Ä»‚Ós¼‚d÷©¯.ÃÝ'wŸÈ]Áþ^n޶–æ¦F:šj H°)´ÌáŸAfAÄóê‹¢>-ÄDc}ötðá}¨¬H^®¶4ÔT”äd^LMN8yìð}‘á!¾ž®Ž°ÚfeºìK‘²ãL`QŸÄ>Cý/y<ÆñÂËU[AÈyùïÜsäx|rjzV^QyuCËÕkÝ=}÷î?|üt˜ƒR6ñz -Qÿý‡Ù¸-T_M¼„|à.8ÐRÐÑÖÚXSQœMðL‰#1û÷„ïô÷vs²µÚ¶Å˜ 9(Ë‘ ˆKmù¨Ï¿Î+¤ˆ3¨ÆÒ!Π£«—_0 ä`,9b4 ~7»o24Âyþ‚\»i´vES{Òô»·S“xa8#CѾi  ä $$ÀÛ݉<ƒZê¸üÈáò³„¯ü0²/îÇP_€ú´ SÔÇ!&ÜRŒ*kÏ­Îk°×uUeðÏôógOÙµ›}û²¯Ø_‰e%ûcdÎOˆÙΗX I0NF^QiÝF*½ÖöÎî>!QûEé½”ÍS[v? ¹qaN}¡{ÎÆëccµm¨./Ê£«­Ÿ—«£ R[}m–ªòú5`H–,ꋉqÂî šÈÒïÐDV)­SVÕÐÖ341³Øáàâé åg/.?)Dù©o†3H•ríøÏà§ò©38£ü”àò“xꔟݡ¾.ö;,ÌL õ´5T•×) Nd®wyBCýYQ‡¨ÏA2‡*+»» bÜ\_]^œŸ‘–’œpâèOHöÑ?é²NaV‡Y±IÌBûb{üÔÿ+ -¯e¶Ò²òÈlqúˆq6˜q^²Äsi9…¥•uMTÈ¡Q°Ï§Ï^ÈÈ)@¹Ò~ãæ^˜È šÈï0‘דˆúÔÞ‰.?¼‰L¾Æ 3úLÈDR’`"÷ýìçIÝA–ºƒ -X–.^( [á„Ùñ=†úB©OË0v9bÔXÁ]ž¢Ê -òr£t®¶²´07 dÿçSqXöCƒì;€ìo%d¤n­–}˜¥‹öaÅçáD#‘a°ÿ¥G8šØRˆ#«¢¦©c`ljneëèæå¼+rßÁØãñI)³r‹Êªë›qt³EŒ›ú,ã¨ÿ–dÜØ(ŸÙÖU–b³ýù$2Ûˆ@wgЭ?lÖÕ‚Ô—“á!nò€9‹­à!œ!}$ꚺÆ[¶YÙ9¹{„„ïAí'×~`ínßíÇwpdlüÅŸ¿ƒÞwÚÏï‚í§8/+=éHL4(’¿·›“Õ¶-ƺšê*Ö®¦FÂwÙóc¨/šúÔZãõGQŠa±A^:;Ú`³«HÙOŠ'e?$dßÉÎÚÂÜÔx³ž6KmÓÆõkVcìO`Ÿ}JdþB³;&ÖæñޤþÉEKqR3Ä–‡¸#'qé—ó‹+jZÛ:ººÙ}÷>æ<!{ !›þÏû(eq¢Ì–ì‚dDNMðÁ@?ûvWG[kcMEIþåKçÏâíß-g‹§£©†§ '½rù²%‹Q"0áÄM}¾}†ú£€êKGßÈÔÜ’:„Ñ1p“SÓ³òŠËkZh#!F‚öníÈ‘ü—ÉGr$S“ÄÂ#¹KŒ¤F’} £‡ˆCèál¿¡¡ž–Æ&²þ€¡úóí|1Í„y3C}AìÓ¨OVbÜX9(ÅPYûØ·o^o¿ÒÒP3SöÂý½=\l­¶o512ÐÕÒPUÙ°ª«ÄùûïÐŽKr±ÿ …}Fö¿à !œE8)YyD8U m=C3 *¼Q^”± œ±&*c”Øò…l¶ˆ›¦'(¶EyYS“ãÇŒŽÜìçåêhcinj¤¯ÃRS^™%·"Üܽ–o&_Ó.¡àLl\=ý‚ÂÐÞÅNJIËÌ-,«ªo¾z­“^þýÇlêÏÿ„Ô´0ã¨þ "K"ëOUiaNfÚ¹ÄÓq‡ìý1,ÈÏÓŘÉÿÙ/ϧªÎ-0Qg.FåK¤(‚€ôªØŽôÞ{PÀ‚" -H^±Ñ«%v””ñ*×–Irgüp×ûî½Ï9Ö“Édf¿ÿÁû›ßzÖ³Te‰LØ›ð_”a/bƃg¡þLÔç¹÷Èæ&_²ÿäñ˜ìþžÎ¶k—›زŸÈ’}OWG[0]­MšªJò²ÒkV¯"°¿dñ"rûs)ìÏb°ÿ 8vuùæÍ_ÀªOvW†òZc GW/ Ü>á[®R„{22ölâÅËÉÿ¾y;•p\©ÏA¸wp b%yúøÜW[ëªÏ–åá(¹á¶ékoÖTWQ•–X%ÆöZ>^QŸJ… -PŸŸãþQPV'ÚÊÞ™Ú„ñ° s OŸ92¹ÑÙ ›ðÁ#fÒ×ãÒTW]YVœGnÂý° ½Ým-¦Ý?K/7šÇ»P˜G õ§SŸ-sÔÁ -êòzòÕ°ìƒÏÝÿå’ýëW.5Ö±e?>–õUg S#}-׫«(ʯ•’\½RT,†œûsìý›Qk)À¡î*©­ß¨¥khjiëäîí´{ÿ¡è#‰)Ùù%å•5õàµíÝ}7ïÜ{øøé(tìÅ×z-&òZ¨Æ@éµgNæd¦Âypop€¯‡³½•™‘ÞÖMëÕ”¡«DWbÀ-dî;­åA*³ç@*ÓV!„²ŽÅÎÉÝÇ?hψ˜¸c'Næ”VTÕ6ÀÜuôôß„ûgÝ?/^¾êÓ¨O¿&Ñý3>:ŒïŸ~—Öæ†Ús%§Nž8q`OP€»³•)E …½ -Éh6C}^?†úÜ©OÍ5Kö_£‹ÉþðTÙ¯¤d?.&2lßî ?/7';ksC=íÍÖ©)+ÊÉHIˆØ_ -Øç_Hˆ …ýï¦`ÿïîÄ?äÑù†«ËGVw™€°h­¬‚Šºæfm}Rk@k#bŽg®¹õ:¸‡CããÏÉŽ½Gû“ÜǨO–‚pcÃC@}À•€‹>€ó÷vw²³4ÅZ«¦$?MkqxÀ·RáG©,Y).É:€L,lݼ¶ïܽ?ügjž«©‡PÈU8«ðÛC™¶ -s3S“âa††ú² EYiIq1¡å˜ú ÀŒˆ /bïBf:xðêsÁ>Ua²ÃD‰±»L•ý–Æúš*}ò¯ÑCwíô÷ñtu´µ236ÐÝŠ±¯ +³°/²Bùÿæ_HÊ>UjrØÙÿ‚ÇÆÑ\ºÕb¾IS|36·qpõôÛŸ”–•[túìù ¸b½·@kŸŒŒO|µÖbÀáfÜ»3Ø×Õ~írS}Meyq~vzJ⑟Ã÷íÞ¹ÝËÍÑÆÂØ@gË UE¹)|ãÕr»€æ¡ ˆÜ… -µ ©Tv¡T’Ó²òŠÊÎV×5¶\mëê¼MÞÄ×@ïÈè×°¤»·{»Ú®¶4ÖUŸ-+ÎËJONˆ…Tv‘©˜êÀ.TU’›¶ ‰ ˆ‘}?†ú3RŸì0Ub,û¤ìß%e¿µùâ…êÊòÒÂܬô”cGG±?kciºÍ@Gk“¦†ª’‚¬ô‰Ub€}eû ØØŸM¶šÁþ—=nxã¼aê ®…êÊÈ+©­Û¨¥khbië俬ö²ÚôìüâòÊêú¦Ë×Úºú>Å7®Ô§ñí5É·§SøV”—•–”²Ãmµê* -Øj…¡ ˆúóà%ÞÈ\fq 4‹€ °(\@k”Õ‰‰ÆP \@‘‡ã§fæž>CîÂjâT`~I*üN¤»ð¹ oöu»ð\yIþ©ŒêòÁ‘ÞÖMëÕ”å×JI¬E±,^Ä /–!ó8C}.Ôç4j´ß"w£CÃdÿ6’ýW[šêk«À_ -r2Ó’ãb"Ãöï ôórs¶·±05Ò×Ù²q½ºª’üZiÉÕ$ö— JSØŸËûw+þ FýÙ´æb©%ñ¦ Õ52³²söð Þs U÷ä©‚ÒŠsµ Í­×;ºûoÞ¹÷pèéè¯Ï¡b“P±÷¿ýþÇ—Xí[ÂjÇÇFž<‚#p §óÆ•K/À X˜“™zühLäÁ½Á¾ÎöVf4¼AÔÒ¨kðM ç2å¢/CSK;'wÿ ˆ%:ŽŒ¥Š Phxlü9mò>÷úº€À’†P,ý=×[/]¬­:SJÄrb ôõp±Ÿº Ù'ŠeJ.Ìp|ûc¨?3õÙê2]öÁ^z»Ú¡Èu5ðÛ¢¼lüÛ舃¡»ƒ|=Ýœì¬ÍM õ´öUåÖJI®^) -žŠý9„ÌØgdÿ3nDqét—”–UTÑØ°EÇÀØÜÚÁÅÓ/0$4,êp|R©¥ðö†Ž·QŸÞF‡±ÔöwÞšjÏU”œÊ8AI­·»“­¥©¡®ÖÆujJò2kV¯Y±ü'Dýó¡Ýxá´\¶!L4?žh!‘•â’2rŠª8 [G7/t…³O tµÃ 4u¢Xþüt,S–á3X†èèí¼N óÄ ” 'Pø¾];ü¼\m,L t¶lX§ª$7-ÞÝ@Ìc?†ú3aÿwÙŸÀ7ë£ûwoö÷t¶]»Ü|ñBueyianVƉãñ±ðÝÐ];ý}<\í¬Ì õ¶nÞ°NMYQNFJRcÿ§¥K~Ã#JÍ’²× ö?óÑàF—ï‡ù 1õéNË¢Û>D·äôì¼â²ÊêºÆ–«m]½ƒ·¡aOFÆžM¼x9 ÔϪØ'¥|ãõ$PÕâ1P°¯«ýÚå¦úšÊòâüìôäÄ#?ÝvnÇt3FtÓPU”§])B8-?å´³ÿê?ýBÛPAE]s³¶¾±¹ƒ«§ß´ c’Ò²òŠÊÎÒrA“‡ryýæÝ'r™F}Ð$L}"—Û¹”ägg¤$Â6Ü¿oC;KS#=-ö $,(° ‰ëâM0Ìc=†ú3Qwxºì£›ìåá½_n ôuwܸÒÒT_ SR“™žrìèá¨pâ¿ð_K3c]û -€} Àþ -„ýÅû¤ìµþž’}æŒý¼7ƒÒ²à¶JBj­‚²:j®‘™•³»O@О1qÇNœuB-@À†Ÿ<º*ÐÓyãÊ¥‹ªÎ”p‹@póñp¶³23ÒÛJSÚ¥‹ñöçcQŸÍ6^Dƒöáœ9s9“¡A¦–vNîÞþ°EÃ:ÌÀë°ÖáõŽî~¼‡GéÁüïcÁ|à æÌ’$Î`Ο=×aZ‡»vüŸý2ÿæ:ßãø™sïçÜÑÔtçÎT¶VKö=!dɾo’( -¡HF$QÄ·,YBÈ.„Rv_KˆÈ’´ßi›æ6·3¿Ü×ûýù|·Mßsî=ç~ÞÿÁçùy¾ÏçÓ‹5‚Ô`InÙ¸N£ïá@–ñr5©G>Šú aÿÒÄsÊþÔÄØè0¬ÖîŽÖ–¦†kÕå¥Eù9™4üÁ‘'Bƒüxy¸:ÛÛX˜铨—•–Ø,²‰ÀþhÁ2±O´ÒØö—ò8ÐöQ£]#À`›2f›‰…­£«Ç~_ÿà°ŸNIHIÏÌ-(.¯®k¼ÙÚÑÓ7ƒJû*íKV¥ýð…•¶¢´(/ûBjb|Läñ@?ï½®N¶–&†zÚjÊ -sÙFx€;hûÄ -Z‰OZpÝFa1IyeUu-] ¬LR&.!…–•[XR^SßÔÒÖIïêßçAïg/ûŸŠÃ¹#h - þžN¸•úšò’ÂÜ,ZjbÜ)P&À—PÆÔHO›#W£aæ!·¤¡ñ(ê/D}ÂĘeÿ5”ýç¸ìOÞ¿7ý…ÞÕ~ûfc}mUYIaþ¥ ZjÒÙØS‘áÇ‚üý|ö¹»:Ù[[˜éëhilUQ’—•’O ò¯ -o¶5ékfÙ§vìâï«O  ùv5ŸàÚ ›DÅ¥äUqL­ìœ÷x¢FN4Ú¬¼ÂÒ -̶.Ûõ1Û[€ú$Û~O²íÅ3ðÁ6zgÁ¶‚ÜLZJø?,Øÿà~V£U…F+!£O\ÙÑÏU´ÍˆË Ò $§¤² VÐ.¼‚¼`…FDÇžKNÏȹ\\6~¾2oѹ<{Êà<¤wµ¡<¬„‚”}ñ|císs¶·2Û¥¯£¹MEINI³VCšfu_ú(ê/ˆ}βµ]ø“G€ý‰ñ{w‡úz:ÛnÝh¬¯©¼Z\—‘ž’ Ÿäïëíéîâdgenb¸SGS]m‹’¼Œ”¸˜ðFŒýUöɲω}ªì/úXdcÙ–wÙò¸êC¡Åh“WRU´c´qƒŽˆŠ=ûsá¯Ú†æ[íݽw†GÇ'¦g=! öì³í+Üh>˜GÜéëéh½ÙXWUV|9'#-ù\lԉРÃö¹ï¶·6g¡MÐ&@  Qh¿æ&õ¿úHrñ ¬]‘¼i#3+{g7OŸCGŽ…Ÿœ{z ÍäôÃGOžƒ4o··Ôô´$b=œž…ŠÔÝqûÆõk„4é MtDhÿA/w¶@œ3ƒ¸ª õ𣨿 õÙÊ>\8”ýW¿À‰ƒ‘LMŒÞèíîhmi¾^WSqõJAnÖÅ´äÄøÓQø›½=Ý\m­ÌŒ õv ì+ÊÉHŠ‹ -ƒ©øÀÕÿø;ØšÄ>Uö?çÍSõ™d[# ´|+)« ¬¦¡­ghbaëèê±ß×?8ì§è3 )é™9D¡½MÚq(´ ÐÎAÛBÔ' Ú&Úz»ÛÚ*¯^aÚ£Ph=÷8ÛY™íܱ}ëEY)qÑMë…0Ù¾c'wú,§8< ["â›–”ahciëäºfPÈq˜A‰h•Và@ìê€4_ .& #߲ϠžNˆÕå%…¹Y´”Ä8@CH€¯÷^W'[KSC=m–6(ø%"© ç¢Nã Eý…±ÿáb²×!ÿòŒ<‹œ<6:<ØOïjomij¸V]^Zt9¾99!.&*",$ðùÑ–f» ÀÒÛT•å¤%7‹nÚ€°¿úGdëØ×¤±©²¿ÔÇ^gI°ý—´íj>ÁµPŸ•STÁ}ÖÔÊÎy'í(“l…¥5õM-mô~ öPÿåë7¿¾clI…í¿—ˆú³3Sc#Cô®¶–憚ŠÒ¼¬ ©‰q1‘,²™Ù4Ô”æöY"ö¹Ugç‰D$ÎJ$¹ƒdä•UÕµt Œ-l]<àö OA"Ò2s JÊ«A›VÐf¼½¥i3Ï ÂÚú}õ¦>«ì“>†úGNž†32t§°ûfSCmUyIQ~N& }tÌÉ¡Á‡xyìqv°±4Ý¥¯‹±¯ +%!&]F ØšÞ -²ì“}æ¯TÙ_ÊãàéZV%À&-¯¤ª®©£olní°Ûð-²Wa/fŸeöÙ—¨Ïþöþwv²-ÖgÙPŸ}0ÅÙg r3ÓSÎDG„ûôòpq°176ÐÕRWU’Ç`['ȇÀ† 0Oå¶:Ë`1"QXTBZNIeˆƒ‰ƒn/ö\rZFÎåⲪk7к3Œw¦>ì ÏLDØA¯;h’mU•]¹œ“‘–|.6*"4èðA/w–8Êòs#‘1„¸¤õ(ê/ŠýË>ùŸÏ‘“¡ÀŒß»;4Ð×ÓÙvëFc}mUYIaþ¥LZj|udxhp€Ÿ—‡«³½µ…‰‘¾Ž–ÆV%y)q1áû«~@mf9‰}ž9eÿ¿íÿÝ7O›ý†q Q_@h=ØVRVAYMC[ÏÐÄÂÖÑ•¬³Ñg’Ó3s -lu„½†GÇ'§bêØH}À`[ -õaýž>‚í‡ÀÖ×ÝÁÛ¥Œ´Ÿl'Ž9|`ŸÛn{k²ÎÂà‡½·æZ{ðÿ¹Í5ö%ÄÌDPe"¨ƒ†yÔäò9x4õù‹ÙùEd$v÷€8 qÇ÷ïÅÅùÀG"ˆ3'i) qÀæ2…!´}ëEY)Pg=Re"SÎL¤NãËEýE¨Ï,ûLìÃj}þ°ÿ°?zwp ·c¿®¦²¬¸0ïRFzJÒÙØèÈðcAþ¾>ûÜ]œì¬ÍM wêhª«mQ”“‘…¦'¶^…®žQg¨²¿ôÇŽ5 >r-/éZÜf×äUظæíxôxdL|bê…¬¼Â’Ššú¦–¶Nzÿ i/Tg_¿ùõO×ٙ鉱ѡޮö[Í µ•W‹ò³/œOŠ9~4ÐÏÇs“¥©ÑÎ$×`î à6û{›Å‘Ï…_ÏŠH¶%„ZR†=÷î÷ 9y*.1•ê”êtцFÆ&¦fðñêü™!ôìñ,4¤±‘¡zW[ ¨SQZ”‡Õ9 ê9äãéæloEf¢’¹„øõW¢%ô £ý…*û\zõ—†}täö_CyñìéãYÔ`ÆF‡û{»;Z[š¯×ÕT\-.È;˜ž’:}·¿¯·§›‹£­•™±ÞÍmªÊÐô$6‹lB¶Fm=Uö?÷qPQf™X\·AXLBZ^IU]SGߨÜÚa·;a[ä®4Â]¸Ívõb®MÏÌ>Á\{;‡kóRÿc®½À\»\ë§w¶µ4Õ×T”æfÑR¡Í†A›Ý¿×ÕÑÖÂÄPWK]MYAFr³ÈFøÿk0Ö–3±Æ­ª?ïb†"»§˜X+«ªk$¦khäþøÃ'Ïõ_O1ÆëÆ76ûç ËßE0:<Ð×ÕÞÚÜXW]V”Ÿ•–wþ\(k:šHf¥ÄD°Ìò¯FGªÜ|Lµ¿úßRòAUˆW¡P…dåU5´õñV{0ŽbjfÞåÒ*Æò1âyÁmè*JŠ ã«Ht¡åD¢eŸÇ¦þ,ÔŸû“È``×MŒöï€Ä ì××V•æf¦%' />qÜÇËÝÅÁÆÒÌØ@çÀþ}Šr»¥%vÁXoÙ(ð Ù§©?ó㨲 ¨¡¡Ý°y› ˆ˜Ônye5Mƒƒ‡lˆ©Å.K ;Õž"ªM"ªqC}’jïÞ¢Y€QêS¨Ör­¡– ZBLdXp ¯·»³rÙý* -{¤%D…¶oª·ýüiPc©,ObœEoõj´ÕÛEÄq@t qò‚.t&":>9=» ¸œ¸ŠÝÓ®âçäC\ÅÇÇÐUìélCW±ªôr^fjbÜù³¨ yâ.d¨«©¦,¿[Z\TˆÄ:‹ìeˆ^/y4õgÃ>“úxÁ_H쿆]…!°?2<ØßÓÕ~«åzc}meYQANfjRBlÔÙÐà ÿcžnÎöÖ¦Fà2jÊ -{e¥ÄE¡ÃnÞ°žýœdÿôlÏòæ±31³‹—,[¾bå*¬²[ÊJƒÊî? k„¡æ P =—”–•_TVU×H ×ÐÈýñ‡O—"§ës\öÑăÑá¾®öÖæÆºêòâüì´äøhþÏÃN¶¦$ԤġꡟUvA}âÏóÒd9'Ä*Cpw -‹IÊÊ)©jà³èèzäØñ“§ÏžKJÍʃ€ðöuA@£÷Ç=ÁÔÍìBæÔ… X”qPo×mj@1@_/7tõ´ÔQ’Ø%Ä(C+!!¼ÿd%DË>/MýÙ¨?Möñ$3ùÇË稹ºßèïé¼°_WSYZ”Ÿ“‘’~šò톺ZêªJò{`¬…Áf6 üÂIö¿emz¶9<ÒÈ‘Å&»›ìÊŸLÛ%) C«®­olneïâîí“p)=§ ¸‚PÙ.6•5ÎÔŸjHe{;oc•-»œ—…Uöô‰ãÇŽ¸:Ø21ÐÑPU’“•ƒ¦·yü{&Ó8™,ï"¢´!â.þ´ŠÀ¦­ŒµÆ YÛ»xõ - н˜’‘[H–¡Îž~8‹cŒ³øæ Î"« Ýhj¨2”›‘r162<$Èÿ¨‡‹ƒ5$¤’Á ­]Í¡ ñ0¢¯úÑÔŸûÿcÇþ»w¤ì³°ÿp°?4ÐØo½qíj]uE)þöĸ舰“¾Þ®Ž¶–fÆ:šûUåÙß¶—Øé²?ÚhÓ³ÍáqY„´¥€4rf· ŠˆKí–WVÓdš¬ÿ‰Óg£.$³…™ÖÑÓ?x÷ÞØÄ㧈i“0\ÿaN×§T >ÿ¯^>ÿíÙã‡c÷F ñu´µ\k¨­,e1ÍÏÛÃÅÞÊÜXÿ#“EH[BÞ{ž#ÌèÊV/ü~ñdDëpD¢âDÒ32³´svóò >A½‹·:º Áúý1ùfŠ»„Hê¿{û[Bè.öt¶±ßÅГÇyvÄmèÀ~eù=Ò⢠Ex;õ—AD#½_ðhêÏJ}–ì„}¼ç¿Ø½;t§¯»£ífsSÕêò’¼¬´düñÁAþÇ<Ý\l,Lô´5Ô”öÈHЉ²¿vºìGËþ§UõúßQGv%SdE%dH¤™ZÚ9¹yùœ -=Ÿ”–•_TVU×H̘ì8Ãd§X&Ë`ÚLö˜l_w;˜l}MEqAvzrBL̾¯—›“¥© ME‰´µk¨"‹ÿ;ùÛyôÓ9\FJZ‹ëˆy ZØ:öô9~"ŠÃ•W×563ÚÐø£'ÓÚwñã6ô`tx ·«½µ¹±®ºGCDîÎvVfÆzÄa”Ü%Œ#£-ÅJÄØohÙçÅ£©?Gì¿e`cÆ,fôîàÞ.ŒýúÚª²â‚ÜÌÔ¤„ب³¡Ì¯77™Qß§$·V_h'»ì/¦È>MýÙШK%š°˜¤¬œ’ª†¶¾‰¹µ½‹»·_PpÌ,Ù,²­íÝih¶Ø‘ö#êÒ0õ™H»‘VV”Ÿ•–wþ)²6 u4Õ”åwK‰‰ÀŸß€î=".y<–Ç!ÍŸ?ý2þ—q§ð.2#b¯=ŽRëPZ¿¶Îž™#·QãÆþîŽ[7P*!êPÔ!ÿ£®Ö‡L t4Ta= #AÈh=áDËYJ4­Ñ«ñù¦þœ°ÿž û/_üް?Øì¹Õr½±¾¦²´(?'#%1.:2üôÉ_oWG[K3c}mM5…½,ÙçgÉþ÷ì²OöLo' -\´xÉÒå+~úÙí‚¢âÒLµqt=‚F‹I´ÊÚ†k-m=ýƒwïM<~Šˆ6 ³Å½È¾'EßKtùáð Ýéélk¹~õJeéåÜÌ”Ä @´@4ks}m UE9Y¦ÇòaEמÐx”Yˆ˜§‘³Á^«ké›YÙ;Ãe $.cFNaIÊèVG÷ǽ}7KFlÔ÷- -™ÑcfF7!£ª²¢¼¬Tò2úxv²µ`ö! Q¡[6 -`'ZAœFŽFôå)}µ¦>÷ØÇ²öÀ>x`ÿWŒý{#Ãý=·[o\»ZW]ŸŸE~~pÿ1O7g{ëC uµ˜²¿ë –ý ÙG“MÝz´9¾é±n”^DuUK -ó !â"χP2Y™îa•#žDs?c wSó¸Ô—;ö7S±ÿÎ bÿþ½¾Þî›ím-àéêŠ2Qa^¶,Ø7ÚñÍWúº:šhÄ.[ Ô‡MxFÊÙÐŒÓX©O¡¾0,•f`Øå+רkêèéoÙ¶‹‡ëé}ô[€Ø0±ÙùE¥(ήAœÄ2âì%gopœ½+õñÿCë£8{ŸOÅÙ*ÎÒ’b#BO÷÷=âµß ÖCìF- øõ¥‹T•e¤fØ)üq¶P3@(’ú¨(©.\²|åj¤šD<2‰àƒN ILåç -Ee•µõ¸oßí|ðð1È$)ljÈ$UŽÅù9™) ÑaÔ$rwv€ó(2УuRSV$Ç1›½‰8ØŸìãR_ŽÔÿ7ûÈÎÄÏÏGÿúì)rô0€Ìž®Nûõµ•K‹ $°ïÏ€ý]Û¯7hõ-_@V,#8g¿å1– -³(¿Î›¯¨¢†P­ÆÂ°Ææ6.`¬c$ÍR3s De`¬Ææ¶Ž[€úÃ#ꂳ&±ÏÐÒìïëíêlkiª¯¹T&æòSbÂÏž úî/‡â4ãá4ƒ®§ý9nzÆ—Oí˪G†Pô&ÒEí¸ÇÔÊŽ´#\69Àüâ Õ—›[iÈ$Â:½“oש¶²\$ðÓc# !üáv´µ0¡7Ñ:´‰€‰¨ãDÜmLæq©?‘Ø£`ÿZ¯ÈцúûnwßêØ¿RW}‰ûûH;+3ž!Pß›´×ÈE8£‚Sqß,qês3ö×õ)»b„ýŒ°ë4µuÁ°;w›ZÚ9¹yòñ  ŒMJÏ–”WÖ6\†í¦§Ͱò¥Ù(N³‘a̰­Í4Ãf¤ÄG…9èwÔÛÓm¯t=„™®6 3êÏÇ!ìLýéR£HQYm1ºl ›P=î6±°ur —œžWÈÞD#ô&’»_A;bØø`¹‰J‹ò²Ó“ã¢ÎÃ}øùx{î¡Ìжè£z\³3EsÇÁÝÆ<.õåŠý_ÈÙ3b.ýYúÞ ™v8~ ûE4ìŸ9äï{äç>gB3úºÈ׫>Ç8#66‰ižáœÍxR¨/ɲOQ–¿®Z£®¥£g°u»!ÏÌÚÞ™–ø*#'¿!ì•k­T˜= Ãì%fop˜½+õ_“¥‡Ãìу!øùî›íׯá0ƒ¶OOŠ‹ =à{Ä˃ ,Týf4ðV¡¦WV¤¾œA°S¿î(­>¢{ÆLº‘RJl¥Ä£ÈFQDLb_ 1êñ>ªG -ÕãÄ„zöô‡G#C’z¬z,ÈÉLMˆ&£èÏÝ]lÌh¥þ×JÍg­¢$õ9ØŸäãR_ÞØÇ°üü/²^‘£Ÿ€¥‡úïÞî¡a¿¢L$İ$Fpwq´µ4E4c ·Q |½bÙ’…ª$õÅÆ·b9g3Þ8€ù[ˆ2b×yóUÔ/[ýŠÖÈÄÂÆÑe¿dÙqœe©ü\¡¨ ùª¹­£«·¯`x£þ(K^„…ÆG;ïGÔ÷ðñÝ7Zšj+ËEB?-1&üÜ© ïŽá,³676ܾÕ@OG š,|9™wú’(›ê$ciE -R"•’ŠxéoÙÆ<í“gâÄØ(¥:ÁWï?ŠRøHð(z8<Øß`D)U"d¥%ÅF„BDy¸:Áy («h5À>b¢yb©è‚äŽcÒK}9RŸûL؇ÛKcäC°ýZc}MeyiQ>°Lbl$LØïfûœ`Ãò ¾Ü¼iñ5ŒXÅù¤qFÊØÏH½i2’ ¡¾`q”©ÓQfje·×Íó_`pÈùȸ¤ô¬¼Â’‹Uu W¯KöÉOÏÁc½_–ÁßÿS’e¨îûz¡í`« Á¦ÄG‡9ñý·G½ìÛkoe†š^_W[“Ž21À’ÿ¤þtö,b$œöÎݦ–¶Nn UH—œžWT -R¡Ut VÑÀнŠäîÇWÐâUý(^EEùÙÉñQ U –ÊÙÞŸU0‹T•)&š=K©û“{\êËûØÍ4żû}·»ì75ÔU¡û€qQa0aýf<ÝöÚ[ã ‹hF“øš±²p†3¶Ô“Ný ·ÎÔWV[¼ôóUk5´6n6غÝÐØÜÚÁÙýÀad+ -`ó‹/TT_ne/©({ƒ£ì]©úGÙjûI”åeçCÕøú€5Á EæÝbôãdŸH’lúN}Ée+üŽnH|Ú«Ö ­Ð,2–Ì¢Óç"bӲ’òÊZfAb©žOT*¸t"F¸ ëk.•‰ -rù©’Y´ßÅÑÆÂÎCÑJEQÜ ÖLö§æq©/ìcØÿ™ û? ýzÿî°pÿ—«ÁÔ…yÙ) ”>fÀÖ(ôu)š¡}-sÄr©Ï~Ódâ+ -2pë¼J*€ú+V¯[¯MøÕøÕÕÃëˆ/d|PIFlÕÛ×?0 ¨¾_É °ðñÏÑ¿ÃÆDÛy£åjCmey‰PÀOKŒ8wê¸?N2(zįµ4˜üJ}øÌøÃ1¾Nñw³‡®Hê´çIv‘Žì"Cž™µ½ó>ª!ãR3s ŠËÐ 6·u ­)­Ä7ø~³i%™E U?S«Â¼¬ô¤¸ÈPhH? "';+S²‹t4Õñ.RU¢ÅbÃ>w“z\êË•úÿ¡aÿ4샥‡îõõvÝloE(SY 6'X&\ öðAwG[Klkœ˜fªP¾þÕË›~R¨O¥þ¬ÙsXøª®…ƒlÛÕÓû¨_à‰°krzv^QéŪº+À¯7üú7à×Èïÿe¿<œªL¯8<;“™˜ qf3;JÄÆ*½+¬bED¤(EŠ4Dš ]šAŠŠŠXa)Ò¤Y°!ˆ kŒ±$ë¸3ÉNÎ{ÞïÞûÝ ŽÞ‹ìL2ßû'œ÷œç÷üÆF +^߯_¡à<Iýîàþ}ôŽ¶Û¶2 SGÉË -ôU˜cSJ}ÞiK#õçÈÈ+(-R^Æ‹Hs«í;ݽý‚è°rò‹Ë**/B/jd÷¢WØ‹ÄNÈ´=czQñ¢êKp Å9GSè°<\œì¬-Ì "Èy A1úî[:-¼AFrÔ—üqÔûÙcÉþëW°Òxÿ÷ïöš®×\½(9ž—•ž|8æ`ø¾½¾0B}\k]¤þ‚ ©/ÅQ‚7^õÿ@TŸ±WÇÔ4u ŒŒ×mÜlacïäŠ[Ç×Wتú¦ÖŽn>Èþ6È>G}üwøvÙ0d=²:øóÊŠ²âüìŒdzF_·[‘v÷Ãr]-Œy,w„cÒ ÇÝn*©/hF4#eä0#5uøÓrvó¤Å()-+ïxé©s 5ˆDä[ˆÈâD$£FoE"²"òr£Ì4€ÄÐ@¸°"K:-=-ueÌȹ‘¼f4~\ÜuHò8êKJ}²Ðè1Dúðþ‡Ÿ<ºïv÷-(°u 2çÏž*=ž—.èëE*ì¶­ 3Æ@}-u¡+L}n¯Ç?öª²U&U}ÙyŠ ¯¢®­·båØV´W/¿ Ðˆèø¤tÇšÛ:{îô=ìyñ’Y«?މ«¯o€úÐðȧßíé„?¿~íÊüò,äü¸§«³½ÅæëŒ‰½ª‚½ÎŸ'Gÿ[cS#¯ÌÀ¦1§ ó"Ô‡q‘ÛfÆ¥¡­o¸j­‰ÙÖmvN.>‘±‰©™˜‘U—É ¶Þê!kZ¿N4-J}œÖOdZ¯Óêíl‡ Œ¼ÿ—¸Ò }wz`§¡À¢Ê!d¤$ÆFü¼Üq«ÍLËùÔŸ`­9êOðXªÏ§oW¿ÕÈ+ص£ o[S2r -ŠË**/V×Ö5¶´w¡½’­’Ä^ÇFÑ^߉Øk±W¨w' -s¦&ÆB» ØãáâhG>œ`L[ƒ—ò ¯³ÿ2óÏ@}øîßOŸ"Õ‘ýéB·Mª‘"©FêZz+à¸MÍ­lv¹{û‡E’ãÎÉ/.¯¨¼T][ßÔÒÑÅoF¯^oF_–‘BÍèvWGkS=ñ¢3å̸¢Â÷íõñpuâ…¤P5‚yÍÂyq²ÿuG}1±/ý1^{}ýŠPÿ)P¿P¿¥±žXTBbi°~Äeì¬q«i… -df&C}ÖZs6ÃzßAŒYUtWB±¹²òŠ (ÅȲšn±´ÙáìæéràPÜ‘´Ìc…%,y½Ý~þòË1& >“õ"ki$òZYQV 9òäï ån»•¹éúոߢc»ë”S_Šßfa7bRRMS×ÀÈxÝÆÍ8//ßÀЈCXŠJOÓjt³½CrðÙˆD!ÉÉ[ É‘¡A’=·ÚšYÕ(=)>:"4´ç²¿r…ž %±Íàdÿ+=Žú“¦þ?ú¯)õ“•îjoiê_¹Ô/. C Ôâ¨?©ÇV}–º2£»ºTUC[ßpåš dYÑ]ƒÂ"£'§gç#Å®ÖÅÚ:{€bý@±/™­ú[%¦¼bÁû‘ô»G÷ï’z‡;‡KKŠ'1ïëéæloc‰îj «©¶tÉÂù -r2"“šZêÃ.GLLâÀdçÍ_°ø{U }^7rrñð Ø—˜ÊNIr„}û‡„çõñsó¢ÔÇyý$2¯^8~Jäd¤$Äܰg7t#kèFkWèàÀ”``Ù¹Nö%|õ%¦þÇOP¿W˜ú¹H}Po\jŽú½O¨>]ÕïæÈÈ+(êóÕÕÂÚÞÉÕƒìTTlbêÑ\Ø©Šó—ªkë›Z:ºnß{ðøÉÓáç¹ëØ(-xè®ÃCÄ]»oµ6ß íîÌÉ…¹™©‰±Qáûöx¸8ñ ¦ÏR׿õgJÿiÆy¿æ:-42𓂉A9‚‰©@9Z1iEc28,2&!%#§ ¸¼¢’=°2°/ïFÂ))Ú``MÌÀJ -e¦/ -Á˜Üac¹…WŽT”abò²súÌÄ„Ûw>Žúõÿ'Þ„ª?ƒ¯ú²óÁ\UÔµa«×›š[mß±ÓÍË/04âP|RZVÞñÒSg«®\»Nvª›¨ëÀÐ0ªë[¢®Ÿ‡˜€úA¬«£¥±¾¶Õ5?'#9!&2 þÛ}—ƒ­•ù¦õ«W®€ï^¦¼H Æ7W„M5õ¥#› #›##§€×­©»œääK›În^¾tbéYyXŽ®ÔÔ5Ülïì…rôÊÑäcrdh°ÿáý;=mL9:]V”Ÿž|8'¶{—£í¶­›6¬œÔÑP%íˆ Ò‚ù JNö%|õ%¦þCý÷@ý¿Sê?yü 6šRÿ2¥~Rÿ@hÙiŽú’½qª/,®€0¥…K–ªjê®Zkb¶ÕÚÎÑ…·«`®ùÅe•¯ÖÔ5²ööF—ŠEý_ÇCLX]!éßê<|òèþÝÞÎvÃJ‹ò²Ò“âá¿yæJ¾ÛÈ@WS LANfƒ0F\¥~êOcÕ#é™4(áº,^ªª¡£#³°¶sr¡í(.15óXaÉɳU—yW9984‚9IÎðƒÈÄ>+ûèF$'ñH0'› '/?S~‚ˆ¶£½>®Nö6x!FËuµÔHP*ÈË`P²d_xf܈ý8ê‹}T†ú£Œö!õùÔóƒúzö!%1. -(àîÇ£¾G}ñ{OªêÏ••ÕWVQ×Ò#«jJÅÕÓwoȨ¸#ag΄5µvtß¾÷àñÀÓáçh®ï'c®ÃCýÐîºoµ6߀˜¯:s²¤07“",ÀÇÃÅÉÎz«™ÉZ*®øÛ²øÛ Á˜ÏFo€ E¥hRâ̘z´fÃ&s+[‡]»½ýƒ÷GbP—WT^ª®­ojéèâìÕk2²/iGÿ׎„GÖÖ|‚’ÜÈñ¼¬4Ê8/÷Û¡mXõH[C…=3ARr²?ÉÇQ_<ê3» ËL¶%†€XÌðˆh ,ôÍÆºÚj†úÙ)@!d¥±¿š™P“Aê+2;-(°Ó9•ÿXª?¯ú°¨Ò³f󼕨¾†¶¾!lÌÝÛ?(,2úprzv^Qéés®\»Þp³­s¼¸~aÿ‡0×á§lq­¬(/ÎÏÉHNˆ‰ ö‡w°å ~¼UQ^½•Dü À¦*à…©ÏD%34ìG‹”éy¯c’ÒË704":>)=‹™YM]«aP¾/(ÉÌ (i=zÁªGu5W/VV”‘™¥$Äܰg·‹#“”F:šjË–d‡QÉÉþ¤G}‰¨ÿ ZÀ¿¨ÄPê÷Ã>ê77ÔÕöz²äx^vzrBìÁð½¾^n;úd¥úËXÔ2n§EŸ°êK±TµUFžLS×ÀÈxÝÆÍÖöN®>d£SŽæÂFQomoE‚‘•bFwêã' &×_(õyû‘E°ðÖ çN—åe¥So…ïvÞac¹›®¦ÚÒ% •ädæ0Ï|¶ÔoDýiÂScG¥¦Žáªµ&fÖvdhp†Qq‰´­ºLϰ{|RŽŽ}‘ì33#v$””Ý­Mõ¼~t,3õH1#_O:4Óõ«X®',FP>!û_{lÿ÷£¾XÐGa¨?J©ÿþÝÛê:ò ÖùaßÝÞ®ŽVR^Acp¡ÿË~yeueax¹fpMVbÔÁ ,±¡X¢€ˆX¢FDéEˆB¥†^E:Ò)"  -RéÊH@z;htÇ5IÖìsν÷»ß'H1˜_îùöÙûyŸ(àçåêtÏ@××mÊŠXdV.—ûŽú\å{|ªÏg­„_b —HH®Z#%-«°YeÇî}Zz†f–Ö ­¾!‘1‰)éÀjn7¶´µwtõöÿ{6øâå«ñx+D=ùóçèËû{»:ÛÛZoÇӋކjç|òøQ c}Mu”ñŠr2RkWKJ,Y¸€æ×4õ'_ü²ÒgÔy‹Î_Œ¦¶M$¸o+›N®^þAaQñITTVAT¶Ü½×ÑÕÓO¢’7´qô#zh G0´¦ú[¬¨5òótu´³±27: f„oOmŲ%$+Y ‰“ý|õÇ -}Õÿ/Kõ‘Ãàê -ë\[,ö9ó|r|tDÈ)_Xhh¯&„ú[7ÃFcê/EÔý>‘áVšúlÕ§ðETÅê¯hkUÓÔ9lŒ7ÕmjT\RjFv^aqYåÍÚz¬úÝ},mýeŒÚÊL@[êª+¯—\¹œy>).*ì´¿|7â—ž6ùmYib­âbsEgóãk2U_ú¼°ž%ÂkHä¾wïݯ¥khгÒÓ7042ö칌‹— -ŠJ+XSCÔΤ‘£òõ™‚D¦Ö׃ =µ|%átV1Ñ?tP]•4¤ ë(3Bcc‡%37Nö'ò8ê•ú ôéM¦¨OTóã¿ ºÞ‰)+¹’Ÿ›•Žgàãáâ€4Æ·×Í -rÒØc–.Ÿ/¸ÑBÜF ¼U­úDZ7ÈRø:¨k`zäØq{wŸSÁÑ Éi°PÈZk¬ø5šêó¨ÿö-Ã/ô8ç_ó,k…j+ï`{ÌÒÔ@ýöö-J€/ñHZEEf ÏHøD}&-é¹áû^½– -KUuÍCú&èÝ}‚#bRÒx ©µ­½ÎÊA”•ÿcV¾eg%\ -JWG{[ Ó²ÒSc#CðØì¬-Í õ(5¢„®HhnÓ>edŸ3£ ?Žúã€>Kõß0ª Å–¹¦¦ª¼´¨0/çB¬3tWo7g{À€™ÑaM¬1J_cû£Ú+Ò?Žúïyï¨>ZSJõEæÌ¿`¦—”Œœ¢òÖo¾UËjecçèêéz¤5Hë[õM_ݽ,|Ñ+5"¾k}ó:Ô;À×ÀW'ü8ƒ/øï„èZZ-Œõá·÷ìܦ¬(/³žM/þ¿þÛ¤S -‰KÁÍeÒRZVa3Ìm57\‘‚¢â“Îgf£°¬¬Ë/_–ücûõ4¶¡çOŸ<¤Ã²²²¬¸0/;3U¤ /7§ßG榺d_~ãz’–âÜ‘ü©£þØ ÿ?ô‘¾`ÕįúÐ\¯æƒú¥&ÅGG„úyº:Ä#ÐÓ>  åuÍ*I -_Ïœñ9·Ð#¼T++Àk®˜øb‰å+¿\{ºiËö]ªêiguó -†}¢éUÛÐ|/Ô¢×sP}²Qã–Ö'èË!çïÝ…˜¯®,+aèuÚßËÕñ4;#=mÊYqÄKJ,ÃðÂM)ë䪾€ìóJŠKѹóÅ-…ÁQIK×ÐÔÒÚÖáOßÀÐHHË ’–7kë›Ðܺû.HŽL uµ4öîÞ¡Â nÉB1—LI¢&ÇÉþÄGý±QŸ>––êƒö ªþŠÒâÂË9Òñ‚|PuµAsèàþ½ÀlÈb$SûÌ€M}nŸÉVõɖΙC­)¨¾´QV -=C3 /ßÀȘĔô¬Ü|´O5·±³öö£…“³þÁrVL/øt>gmª¿u³¢´¨àÒÅôs‰±‘¡°ñ^ºðÛ»w@±Û¸§¬è¯ivMýÈÔbç%krëeä•·íTUפãÒÝ' 8":!%í38Ô‘`pãéH¿1²ÿ+¥H¸# € Á©ð—‡r&ô´ŽËïÌë`9"g²zOö97úsGýñ@ŸV}ô‡ž?{‹ ªßÅRýkWa—3Ï''ÄD†‚û¹9#‡1ƒm†êºk‡Š’‚œ´ÔZ²ÎHÿˆÅL£-†£>ß›ÂÞQ~ÕFªOëúò úˆ]:úÆÔž…EÅ%¥fdç—URÊÚ‰”õ!µP¯7£ÀëwAx bx¡/ooƒ¯©*e͹–œàíî|òøQÈxømš]ðÙ˨^7ëŸ3¦¿ƒ®É¥þR“èÀüŒ:pÑyb KH®Z³NZ–äåm=#s+›N®èÂÑä2³ópIªkh†¸¼ßq % âòçÑâò÷aãË>Ä%.I×K®€OŽðqw¶?~ôˆ‰Á!œ—*J_Ën -éÙŸÊÉþ<Žú€>ZbtÿýÁgO£ÒÚÛ}¿ãø Rýr¬úYéô<ÉL  ¹îlÙö‡¶yÙ’E ˆÄ xëÌQŸï±TSŸVýé3aeÐ¥²c÷^ -]CSËc¶ö.>§‚#b±æä_-¹^US×€UŸf×Ðèìâ)ë[ŠúÀ®Aš]÷î67ÔVW–æeg¦&ÅE…AÈ#cµ27ÒÓÖØÅn³‚¬4A—¸Ø&Ї5¾ÛÒ{\U^ZT˜—À§«2˜=»¶«(ý!…Y¾éÝ\‘ÿ}Â9Ì;OPõ)p1ª/¶p1Vý ²hK‘¯20m²wv÷ †mÊ̹|¥äzeu]Có¼NHõ‡Ö÷¢‹Ö猰Þmi¬«©*¿võ2|xrBtxp€·;&—±¾Ž¦:;eˆxâ«$á¸è€úXÔŸB¦'DŠŽLtá¢ÌðPOÚúÍ·û4´õŒÌ­pb‰GÅ%¥ffç—UV×64CM§øá5©¿‡=»üܬ´”ĘÈ [kK3C=-ª'ÉIó ëѧLQú;Gý =Žú£S_úohèaèÃ÷vßÿñ^[kSC]ÍŠ²â+ù¹3R“†Q}XåmÊ›äÁ`Ö¬’$Å•_a¸ex#«þL¢ú -Eº*%#§¨ àR;à2³²¶süÁÓ/0426ñ\zVnAÞ¦Æ òÕ?rñ|u"äêë¹|µöUøð¸¨°Ó~^®Žv6VfFzÚ¸d¥ÑgC¯›MjóÕØV'õ§ùd*}áÓaz"¼¢„N| ŽL]SËc¶.¾!dxÃö$t‹¯GOÌ߆M̽ÝímtO*¼×r6îLØi/70¤ÿ³_NU^ižÌŽ™ÙLȬÆYcD#cšÄŠÁ -H‘Ž‚R¤( EŽH‘"  t¤HïE:\àÂEP"‚€:º4«Ù8Édwö=ç|߽ߥy…àÌÎ|ç?8oy~Ï{‚D¦¦*ȾÜvi|(Q²¿”‘™¬ìÏû±Ô_ô'Ÿ?ûçý»Cƒý½=]mÍ µUåŹ`/‰ñ1@õéÿ#Õ×TÛ¿F2€`õª/þIÀ˜e–úÌ7«êÆPýõ¶`n)«iê™ZÚœ<…†) CW»‘êŽ3ÀÅŸ'T}‡¬W+€«¼8/ŽuÕÛÃÅÁÖÊÌØ@OK ¸%¿}+æÖÚ5ðË¡×tÀSØZì£NˆúüФˇWü‡MÒ2r -{”T5t1=FW¥$jZÚ¹$2ï£È|ÆŒÌßg‹Lfñ0öai(Ñ‘9ÐËãrZj+©C)62,ØÉÁªg¨¯¥Žv…ÊL싱²¿àÇR>ÐÇÚBCÿÁ8Ü«C·ûûzº:9p±VW”^ÏÎH¹z96*<$Ð×kªêË#Õ‡³@ ŽGùïh”Yƒ™éMW}4¢Dõ[Hõ1¶¤¶Éþ¸T_[ßÐÄÜÚÎÑÅã,¶Õ„äô¬¼¢2&!n=Õùó¿·¨yšSõ™ºŠ¹5M¿3Ð×Ãm§¸u-íêå‹‘¡A¾^n”­êh¨*íQ•‘Úͦ±ÅÕ%Žú‘Ô¤ê'8•HhJnܲmU>|)9¹zú†ÀŽ_IÉÌ¡3“‡2ï¢PõÞçPÂÕC™91+3x 4‰df>ìKb|4¾”N;Ù·8zä )Ÿ1$š¬ìÿ9¥¾hÐÿƒ‚>š^¢ú/áX…õ„ ? âÒw³A¿®¦²´(/'3-)!.:â|°ÿlªý…?ÉD`˜(X\ü¿¼YT»*Pk¥ø‰uß®G3*·«>–Uþ^BØÊ/®¨®kjëè¾ykphxtŒ¨>ÃVEçßVŒ‚­ö÷vw¶5××T”äd¦\‰‰ ðñtu²·¶09¬¯È—U Høø¬ƒ€ç»*†Ö"3KHö?¦W\ V|ùŠ•«Ö¬¥ê'ê§¥g`lfeëàâîí. ‡fv^QyuÙEFù¨Kéí<.¥§OÑåãur |•¥¹Thûy¹;Ÿ´µ4GB²¿K~ÇVR¿¯†ÄÊþÂKý¹¡/Pý¡ÿ˜‚þ[7yÜöÖ¦úÚª²âüÜkéɉñè÷>gÜœì¬-Ž¢1V} Jõ ØIžáͬú£UŸQIP}äªûÕAõÍ­ì0µ‚Ã"c/'¥eÁ,UÖ6´p¸¼Þ¬¾Y}-P}Q°…ÿ -ú²ú`lddõ&Èjc]uYQ^vzrB\TX°¿·»‹ƒ­•™±ž¦šò^è6ÃUQ¯Å>RÕÅw!ê/aÆ&¿€p+ÉÈ*ìQRÕСRÓíŒoPè…‹—É.¢úµsyB§Ò|Bó Ú¡S©«½µñF©_b\txHÀYOWGœš û*øV’F·Cö?ee¥þÜÔçCo>Œî¯ú°üÏŸ¢íŸèÞêåq;Úšj«ÊK¨ÏÇF…‡úz¹»8ž°±436„)VSÞ·kšê}ay¦7‡ê/eª¾4¨>­£ÇŽŸp:í韘’‘_ ®Ú³Ô®zwdlâ!¸ê<©õϤËii¨­,-$®z!4È÷ŒÛ©6ÇŽ9¤£¡Š¡%… Í&ªú™Ýê%’ú‘Ò¹ù µã+¾ÿJâëï$7nÁ±©r@[ÿ°‰¹µ½£«§O* ¾•J*jê›Û:»{ûaGÇÌšš³ÖïwAý^R©9ŠSn¥&|+åf¦^½„ èåvꤥ©‰ÍeŸU¤…=–ú¢Cÿ·iЇí½wC¿ AÿFuEIáõìŒÔ«—ã¢#ÎùySŸ79rHWK]EqÏN¹)ªÿ9¨¾ØÕg™¼YU_L ú4³`DÕµô ŒÍ¬lœÝ½ü‚C#±ªæ€ªÖ7s:y4´=~J†éÍ/¿¾};‡êÿ—¡ú˜ZèÆC'\x£÷~ºÝßKA«8?'#%1>:‚VUsC}mõýñˆYë¿ýšMŸuüVãN/z£…dŸNTÂÏ—¯X¹jÍZ*7åwîUVÓÔ302³DDÇRTlBrzV^QYF›Ã› 6_LâÒëøî[‰_@›ã÷ï‘Øl‡Ø¬*+¼ž…¥pà…‡‹£Tð°¾öÅÝüÜ\K$‰”pJp²Ûò^¥þû@ÿ- ý—Lè ö÷ötupZëª+J‹òr2S“âc.„ûŸ=ãæì`gmæ3¬ª´T›Ô\ªÏÚ ã½KõùÈ’‘SÀªGÔÞÉÕól@Hxt\brF6Ŭö®ž¾;wGîO†>Z|¢2¡?~>ÈÏÛÿÜ~®§}@Uiï®ee¤7oüÄe&Õg‡˜ùDP} ¾êc`22µ´9yÊ Mè…˜KWR3sòAõÁS;@õ‘êOLUýßD'ÖkB,¸ñ íï ±Ú[oT•aO½ìçåî|ÒÖÒÔˆ,éÍM]¶t*¯>„êO¡þFvâ*®ÆÓ&©m² -»U4tÈš;î¥ÊÚúfN'¯·ŸZGHÎIHNÑkø;]C~rŽcÙïä4ד{)í*)¢·»³ƒ­•™1‰Nìƒ(}«ÈÊþÂKýwC,šY¢ú/'_<ƒõ†þO·@ù¸úUåäß0»ÑçƒðÇì¬-L õu4Ô”÷íVmÙ²QòûoÖÍ¥ú,õÉ›MõÉx‚¥®&ª/%ƒyu@[ßÐÄÜÚÎÑÅÃÛÿ\XÑÔÂÒÊÚ†WXx”ÞÀ(½CõibÑÝÿõþÅsh=ëX5%¹ÿc¿<Ÿº¼Ò0<ÎŽã—‘èfË”¦H QPª *M*U@@Þ‘Þ«tQADlÞECÕl¢QÉÆX&›ugŸsÎûþ -¡Ç!ö=ÿÁ¹Ïs®ûzÊŠò²RÎFû#M=zÄÜÄ@WSóJJB;\ñÙ@7<®V‹úkHŽty²cÜÄ/´e›ø—¸;÷ÐÑ76³²sD)…Gǧdä”V\¼RßÈYOquâß¾[0ijCü} "GuÞEÕy¹º¢´ 73%>&<øÌ)OWHÑÂÄà Ö>5Ü\²ÏÃÈþï: õç£>ô‘¨SÝCÐÿŽ‚þ0@¿A¿  _[SUQZt.;#%!6*,ØßÇËÝÕÉœÅÄ@O瀆š²Â.d-âÛ¶ -cèoáV}Æ\è3êÿ™[õ®äUˆê[ØØ;£ ÆšWªy…ihdtlrúðê%¨þ’4õãlM}M4urüÉÈÐà@OçÝæÛõWª+J -r2’ãaÖý¼Ý]í¬ÌŒ¥ª*BÉsàŠH*«à1­V塹dŸnOÈq#äˆÊ¾¹äW²r -*|ÇШؤ´ìübèΫ×o5µvt÷ß8<:61MdÅ ;ÅGàL]mTw–ÃßIKФ6&[«Ã$F¥]¸<‘ìó²eŸüFöWpêÏýÿ΂þ6ô_¾À ê$þ=€~[KÓ­ÆúÚKUeEçr2Rc£Ãƒý}½=\l­ÍM õu4ÁYwíDÒ"ºUXËßç‘¶0ª?çY‚ê cÕßÉR}$©îÞ¾aQqI逫r¢ú-í]Dõǧ¸,õ=ËR—Ä+ôøœ– -ßÚt³¡îRUy1+Ÿ“'œl,M ‰¤ÊÉJKЉ næ#´šå¨«£ú³¨¿–r=G{JHAŽJ8GüÏ]=OŸ Žˆ¡Ê³¦öÚ;-m]½tŒdcúõ!•ý_çØ˜žMM|ƒeb¤d¿¤ 7#%>:<ˆ’}sZöåÙÿ”‡¡þ<Ôg©þ,èÏè?›žÿæñð‚~'†þµÚKÕýüœÌÔĸèð_oO7g;k S#}]­}êªJ»ax¥$ÄDÐôò’ñÅÖ¨þgIª¿M'­úGìÜ(Z¥dæ–V Õ‡9êèá–ÔZõ—ˆ+ôüHõg`ÍC…OÿèÁ=Ôf$©+Ë -ó2Sb"‚­Žµ679¤«©±‡rÔ­B¸ã¬¨†g+êêQ éO:Iv}nâÚ²ìLðÏuô̬lQ{ú†EÇ%gä”TT_†• ýÇ~X™žÀʄ˓Cö—Qž,ÙŸ¦V¦ÞN’cM%8SVZbldH€–}K¶ìË  Ùÿ4‡¡þR ÇË@öŸú£ÃCîõ÷PЯ»T]YVœŸ›™ -—Ž ð;åéFnmtHWkÿÞ=Ê -ò;d¤$Å@Y6ó}ñ2½XZ(ka´…ã,Cõ•hÕ·u<îîå›”– ct¡¦¶å¨#OÆ'ŸÎ¦Õ/Ë£z|xû±Ñ‘¡ûý=w‰£ž/)ÈIOŽ‹ - ôõv?îhk°ÒÞ¯®ª(¿+ª ?êx«ÐZG=õ*½4—ìÓQBnDýI')+§ ¬¶Oë Ô§½³ÛIôcIxgjmïîCí‰?$W{.œãíIË>jϾîvØ™®_½T…‚ÌHŽføò õ‰e_™–}A"û9ú“‘ýå†ú QÿWÖfJTÿÇôï¿§ ?BA¿õëÛýËÕ•åŹ™p瘈@¿SèÒGX6>tP›‚þviIñm[…av‘²àá¥TÝ:è3ó»ˆêõyÁP)ÕWPQ'¬ÕwEªŸ’‘[P -ŠzQGw?'¬^¬Þ,¦ú4õ©÷÷=x}nXµ4Ýl¨«¹PŽõldˆ¿ÏI7gû#¦4«àÁÅD„7óaÕÿ W<U«¥ú³¨¿–.Ðõ<ì­ITBJfç.ª?Í­sõ8u&(œZš*ÑÒt»¹­³>$»>Ñüùíû–$»>â®ÏÁøCÍ·ë¯ÀÒT”—•J%yÂÙÁɾ6Ⱦâod=#û+? õ€>­úˆë¡oÿêø÷ß>…?:òèø^W;@ÿFCÝå‹úpåø˜ˆÐ@?¸³Ë±£6–fƵh¨©Ààn—þR\T„@Œ0ÀCA.ÕÿÿßUŸCP±êï= £oD«~@(2Ô¬sEHõ¯ÕZ¾ê³•îüWÀªoŸNŽ?A¬ê¥YUQZ˜›™tªµ™ñ!]M=Jª„à½Ñs³uíAý5¬0qƒr¬Mü‚[H*ª¨ï×Ö3:lië@mMqIé9ù%ç«p¶vôàþ›˜F?òåò–&î$_@’Sã²ßP‡d?mMÑa~Þ.¥¹ Š’SöùÙÿ݇¡þ|ÔÿQý_(ÕCÐÿñ5ÚLÑ´NŒ=yôðþ@/ý«W.^(/)ÈËJOމ „+»»³·±231ÐÓ¡ s+!*²Eˆš\$,ÔŸ–§ú0´ ~ÏÔÞ®¶–;7®ÕÖT–åe!RûŸöts²?babpPkŸšòn¹íÒ’b"4¨6|†;ž­§«§ú³¨¿–Ns=Ï$û¼›„¶B˜2¦* -ÓØÌÚ‡·_Px44hnAiEõ•úÆÛÍøGν6ý{qÙ§ ô ò'zm"Y¶·Ü!²4. -ɾ» koBaÊB˜Œì’ÃPêÓÐ'Ÿž¬¥¯_þðÊ$üûá¡Á¾n ýëõÔ}³ÓSÎFÂ…}¼Ü]ìmôõúêªú2R0µHVø>Ç ƒ‹'—Q}޳ÕGÃéêT?:>©þù*Pý›M­íÝÄO'°Ÿ’1R}X!©¦'aÏÄ~z«±þruEIAnFr< ºŸ·‡‹£•™±¾Î½ªJ”žÂnÇ;‹SðØú¨¿†U¢8NªC!M>~AVšêûµõ [Ú88Sš”–d ö¦Ñ±‰i¼7½žYfƒâ0߀ì¿â–ýJö+J s3SbP…bÙ·˜%ûB›XÊ-û ö—|êÏ }<¦K) *úõ/(è=¸××ÝÙÖÒЯ­©‚i=—‘’äïãåáêä`kmnj¨¯«…¡/¿CFZR /Ȧöoú„”®0Ðç<‹«¾KõU‰ê[Rªf(5+¯¨¬ò"ÖÓ6¢§£ úϾ{Î *šúç§>¨^cPMM@å?„ÇoomBzz¡¼ø\vZbldH€ÏÉÎ6–„S* -ò²_êoD»¬vSs©þê<õœ²Kâä%qJoß¹[y†¦.Õ¡ž§ÏGÄÀWÏ+„4ÉâÔÕ;úd|ŠÈ>©Ð÷ì -] ÌydäÑàYœêjpšHöC}AöiÙÿûåâÎUžÇñݧÑl»3]Øig+Õ4£‹”$Ý”J’\Ê’B!BDµ(rD$]G¹D„ÆlMã–j¦™.ÚÚ¶¶Ýg?ßï÷œó;ç÷;ôózöé|ÿƒó9ïÏëýúèQ²ÿ¿ìÓºý¿~õù©ÏRý_ÿ—¾ë µ üä6œ¥`{ý‹çÊK‹ egI9˜ÐðõöpuÆÐ7èëƒõis¡¡ý£@ŸRý‰­ptåÃN®ôª?—Q}k'P}ÿÝ{"câ“RÒ@õ;ŪÏåT?ô”9õDœ‚;¯ñê•Jl§ùtd§aÁ»|<]¬7šbLéÌ×TçÈ)Gõ?ZÕgS_´è¨EeåXóT›3o)Q +»-.îÞþAdœp9Âå+Yw­Ë>tèCÔ¡=Ïû9M'™&Ý¡Xö@ö/ž-ƒË);’ý];=9²¯Å•}X AöøêóBŸRý×$¥déŸ>Æ[GiëïÑUZ_[ giù©âÂüœŒ´”ƒ‰qÑ‘aÁ~ÞnΛí­7QÐ×[ÐWW©ò%>˜ÊX6ôÕ—xÒª¾Gõ·ïðEÙŒ£ä«>d¨¹å&`ª0õQýÒª¾ÈNÑ©‡1¿cêZ]5ÆÔñ¼¬´”¤ø˜ˆ=HN·m±³271ZU(5SeÚå‰ -”›¢ÿMwü°÷B}Fö‡Ó›>jŒÈþxyE%Xõªt‹®7Ûdëèì†æIV2#· J´¢ª¶ž”hGW7ç“AŒ­Ó=ºD±ì——Ùÿú@4#ûV"ÙWïEö?d¿O >/õ9ª ÿü:IÑÖw¶ÿpçÖ ”S}¸JOžÈÏÍLK=”ÐôóEÁ_k²Ž†¾&†> -¬$‰Š, ý¼Ðÿ°sÛÕ_ȯú™”êÓ”jmï$ª?9ýåçŸà҃߇^S}-E©œŒ#IŒÛ°s‡ÛVG›MfƆË/Ôž« 5YIQž¨)üp¢úÃ9ª?T¿šC}FöG–ê› 0Iy*Ô¨:Ô¨Þ²•kÖmØhmºkwXÔþ„C©G³1-zý»›·ùæù¦¯y¾í]öaZš¨Ų0a?º@öñ@±ìëòË>{¤‚ìKùêóA_\õAMHHñÖß½uó»o!¦5•Δ•œ=«}kxH Ÿ§Û6 -ú†«0ôç!èOè+ORÄÐÿŒ}b*œÐ~ੈêÛ2ªËRýË5u ú7DªÏ¸é«~¹é pÓ'ÄMÛ›6_»ZwÞéR‘a»ý}<\œì­AMW¯Xª§3O“Ã(‘™ŠÄtH5{¦T‘Ò#…•Ÿ¨„{v]w‰þªµøx‚ô ˆ>”ÌÔhu]C{ èv’ºEye¿ÈþÕ+•”ìC‚ìï ôó‚ã©WÙG#Ù‹ìà ô®'PŸúŒ˜°Tg´»«B -®k¥êÒ…³§KŠ -ò²Òѧî - ò÷ñ„ou°±4ßÐ_Y]П-‚þ8 ý1ú$±ÃEÐ2û›«¾‹‡·Оˆ£*@õAõyÕ´wHý‡¥ú8(l5…ί­¾táÌ©âã¹™G’ £|½¶oÛlkiNÌT[KcöL•i4¢ˆ˜2„öž¨ÏÈ>ݤ0S9,ûx×g¨ªÏOtZvÏÁ¤G3rò‹JËÏWT^©o¼Ž§.2Q´•/ÿ.m¾¡k”:ž2Çš(‘ý¬wʾ¢ ûƒzõy Ï£úOqDïßëlo½óý–ëõ(¤çN—’/MNŠßµ7 Ÿê„¡oŒ ¿X ¯!‚>J+HÊ"~4ôeÄ ÿg¶ŸªÅ”£ú©G³±ê_dTGˆVý—lÕïEMÅE«~7üÚL¿9W^r"?çèáC‰±QáQ®[l6š1ÕÄb:™"êy †žOêËÐC57éhÒ©h¦s¨óiƒ…•ýwT¤‘1ñSÒ³Žž,;+i['Èþ#ýž~ȾȤ°HýüèGX©¶»h¤×ÐH±ìç Ùdÿ÷êóP_Bõ{HB 1¹{ "ÚÔPWs2zª¸ðXvƑ䤄Ø}{Cñ—º89ØZZp ?kúW ôÿD OIÊïèK¼^TÿS¬úc%T% -¦¸êçRªOÄ´WÕÿWªÿ–ê}¢Pëw´Ý½u£¥ùZ]õe$¦Çó²ÒR’âc"öùy»»l±³²01Z½bé¢óÀKUÀK'*L@ª/KzQ_†Cý¡Ÿ+Õ¥xªT•ÂPå'*M™Ë®¡¥­»DÕÚõf–¶Ž¨Ia)£ÑRfäQçSœOh+»I‘ö"ý§T²ÿš#ûÔNIÈ~JŸ²?YýÁ=ú’ÐgåôQýGdé[oCB›‘˜T\8Svd/3 2êëåîâähkeaj¼–‚þ\ ýi}Cÿ#ú¢×›ê©ü|¼¼¢Kõ $Uÿ­ú bªß#ê3b - à!\zUŒ—&ÆíÛà»ÃÍÙÑeh°|±®6üw¬¥ŠXK1Ÿh+¥ð4ä?›#ûôXI—~Ž—d_U]s¾ŽÞ2ºJ]=|ví‹ÚŸÀ õ›J¼•7o·‚ìó5©”²ÿ‚Ó¤}ʾ˜ìOÙW ²?Fý<ú¼ÔWý'ÏÜë„¥ջ޶¼ätIQAnVzê¡Ä¸èȰà_/×­ŽRÓõkW¯DП 9 -ÐW Зㅾ@}úõ­ú€'>Õ·g«>ä§Tÿ+—ŒêW‹T¿[¤úL„¤ÔR¦öÞïê`ñéÌ©âã¹™G’¿>@¬tû¶Ív–æ&Oº ´æÌž©‚¤T¤úŸü÷<üñaï‘ú¿,jS9Ô¦d®3TI™›n²qÜêæ¹3 õðÑœü¥åç+*é.mïìÆ²ÿL$ûRPâ² Ë~ ‘ýüœŒÃ½É¾†„ì*È~Ÿ@} èÓá|ÍU}Hgg{+,}K3ºE+Ο9®ÇhrRüþ¨ð@O7çÍ {fëÖPПÅþX.ô? /ñÄ "Ù‹êkië: @õh¥hýëðÿAõKNäç=|(!6*KjS£ Vö[È\#c⦤gåž,CkYw —i[Ç=FöY?õß1VÙ·ì&Èþ€ž@} êsUÿ%[õÀNÒX_[uéâYØú‚ÜÌ4¸Ec÷í ò§¿ÒÌÄh>‚¾Ö5Õ*}@¸}ñÇ$J$¿êÏP¥UßÈ„£ú Xõ KNŸÅªßtºC©þ/lÕžDª/.¥7ZšáÔƒÿ_vòx^VZJR|LÄž ?owä¤&F«W,]¤CÁIþ;VÒÑ£h6Ép¨ÿ~f;ŒZv-L–l;Lv¢S§KôW­]o†»}³–¹EHö«j뛾ý+ìe{W÷Ñ\}õJª2eËþ¶ì7cÙ?Ç#ûö”ì£:ÕÀG”² ûƒxõ9Ôÿ·¤‘°T¿­õ6V’ºšË(œÅ°õ驇ã¢#ÐGz¹»89ØXšoXgh ¿To¡6úã1ôeÅ /#ý=ªbª¡?â÷Ÿ Õ—cŒT\õÄU¿ˆ¨þU1ÕÖ/ÕÃN©}â¤õWª*Μ -œãö…‡øîpsv´%Õ_¢«­¥1TŠ’¢¿PoÙJ´ï0YWŸÿ²_'NUÝWÀ'“8jšàE›1DM! û""*Š*û" ( RQAADÄ]£QT jÔ¸à†M“ÔÛš¦‰3;=ç÷»ëã=x`Ò×™ÞßpÏ=ç{>gMzV^AQIyeMýÁ£'šÎà\^ƒÂ>èyCõ²Mß0Û´7ìwÈÅþŠžØÇ+ê‚}ÁB•°¯ì“R_Nê  G¨ÏÎ|Jïú•/`蛡7ëkwï*-.,ÈÍÊHMŠ…S4ÐwñïÙžLè›™L6ÔW.ô%ê“÷ްY*¢¾3Oý•bêQÿqÿ©/ÜûäØcÖ>¡þØúHýõ5•å%øûÓSc£Âƒý©Hím,ÌõµàÄ«N@*J&U“(õÉœQã44ÉB5¥óŽ¥õ -[Ÿ¼63'öi™ËÆæ³Ú/Sìã`~÷ü­l¿Ö)Tö2ØÇÊö}[ûã~ÏÔ–`Ÿ»£¤ØïóI©/ }èýL¡÷R–úÎn:qôPÃÞꊲ’¢MÖg¦¥I"Âü–,ôöòœîæâhgmABbŸ¡ÿ®úÜ“G} &ìHõÍ{¥þ±“§ZÎ ¨ÿõ·yN¨Oúç—>²éL6!õ¡pí3"m=ÛÜxü0üÿ]¥Û¶`4%ů\èëC@êhgeN’i¼&¥þÈáj¬G‰R_%åå«;X0îêüFbië@k»4 4bEÜêÔŒì<øUµûö¹Ò>~ú'Äþ€ý¾÷iÿ±_D°¿Zûö™â -°ÏVWŠý^Ÿ”úÂÔŒ¼¸1qæŸt1i;ßr -†~=ùÄÍù9Ü'úCoΙéÁ„þg“¡;%ОÌ1J¦ÿ})ô8jŽÕ%¹7ž@£bêÿ÷¸(õq܇ eÊËìT<¤¦@u]Ý=½æ-ò ¥+•æîZZÜÖ¶Ž«×ouòØÿ+¿Qû®­x£¾PûûSì öa§ŽïýÁö•{Rê+J}Ú–¨‘ïqæ»9°Ô‡¾,ß¾uÓ†õ™i) ±ÑИè‘Ù3°3!ôIk -C„ú}<ÔÿPm؈‘£ØX’¥~Oý­2Ô¿ÁPÿÏr¨ÿ¯þRŸ¬} þÕŽ¶ógN4¤®¾‘±)t¤£+¥~Æ’ˆú‡‹¨/È¥Rÿå áÚ¿| €Õha48,ý¨p&–Üœím,Ìú˜TÂ?/ -%UfRì“N¶ê8 Mm]À¾)xOºTa2“×f®Ïß²^RǛ϶¶w|yã–h§¾‚ªduåÍWØ ôìã)Ø73™$ƾš„ýþ<)õ{¤¾ü™úˆJODý’"¤ÁHxXoþœ™n.ŽvVØ—ÀlL˜ü1úÃÙÐ"…¾ü'úØbêkõõТ–hQB}?L%õ=ÁRŸ¥o¡y^Ê£~ïå=A,]íhomêjØË`tÝÚ¤ø•‘a¾>ó¼<Ý]áEuÆkr¡ÄRt(õUVc¦Ä‚c -^n©OÇìO±´upa·jDtÜê5Ùy›Š°¾û ¾MgΓѼsïÁ£§ÝXÞPÞžØW|I‘òþü“rØOKN ØTÑ[ÊJÂþÛ=)õ©/”žÌÌ?{ÒÅK¯‰¡>~_P/,ä‡Ö›1ÍÕÉ0m Ú¯©Á…>zäwRè+~ï{›Q QhDZ"¢¾»'„ÒRBýÄ”tJý -BýFžúF}!Fe¨©„ pä@} n}°húšÄ¸èð % ¾‹ƒ%¥(œy4“àÈ“I*-²èšRCìã1¥¡¥M*lam#ku±_в¨˜„ä4¶Àu0š€ý íÌVÅÙ„úR줾JaÁ¾¨J€}v¯’kêCö¥ØïõI©ßkê³=Ù =yH¯­µ¥™¡>ô䦼ìu©Iñ1Ë)E¼<§Ou¶·±‹écWBèc[~„¡O9†þ{RèË<ê“Dúþ”ú$’4µuô '6ÅÒÆÁÙÍcÖÜ‹ õãêÿÂZôûçßÁÚÜEBér{ëYl€†½Õ¥Å[òs2ñÔ[¾,ÈÉ$;ksSc#}]müùcÔG)¤¾j~¹(õÉ9…‹•N<`¯),±•­£+`Þ¢¥¡‘ÜÌïØYU»ï౓§Î°kõácŠ}ÙËO}·ƒý.1ö¨« ÂûáBì››NÆk}Êb}¶ÈRì+|Rê‹SŸö$#‘åJúù9HKIŒŽ`$‚ÖÞ4FŠ@S¢EÔ¥ÐWæõ þ`õ!‘° õ­íœ€ú^IДú¹ õ÷ê·ŒúÿVLÑî§Þ»só:Í$lèïí[aëg¤®Ž[°t‰$[Øù¢ä熿žs¨Š©/L}1ö™ÍJFÞÈÄÌÂÆžY¬þÁáQ± Xâ‚Â’²Ê=uŽ|N÷굯nß}Àc_¶Â -ÖªòدßC¯),1`?ŒÅ>º -±¯‡¬"Æaˆ„}ež”ú²©O!‚-ÉIïôøó³œP?#5 ¿.Èoñ˜zwW°ÞŸ†zº4ôÇJ¡¯Ü“G}–¡Š©Ïõ 4äΪš}@ý&Jý¯n¿-õÿ)–èýÎÛЗ.œen½Š²âBhï´€è²`øÿsI"Áï'Ô×Ò Å@âªzê Ëü7ñüj…"ëB‘MaæÉfõñ ‹\¹ -kœ³¹»¶á`k,ÖNľÜûxìŸBìïݽ«”b?%!6*<„Á¾«£½§&Àˆ}<V+P –°ß÷“RŸ}aêÓŽ‡üÀ:¥wõ‹¶ó-\CoÙÈR?¨7Ï §ÞÁ¬‡çç€Î=iI)ôûzЍ¯ÆS<2ÔØÌB@ýЈè¸Ä5”úeÕu,õ;ê?í?õ·ßÝ2 €·ÞÎ[7oX¿¶þŠÈÐ@üÿžî®Ž¶Vðû ‘¡”ú|ñq¤Ò.\®\™éÈ«eª<ÉÄ V« ¬Vï…KüCÂážZ“ž•WPTR^YSO±ñÒ‚ýçÔk%±ÿZö9ZÕ×T–o§´‚‰ "Ø÷p#Cf‚UÖ¦3°bGŒ]®ªÞ®ÿÓOJ}>õßÈK}hÈo¾îfréâ¹ÓM'ŽB?V•oߺiC6 }üÊåaHý¹³<¦¹0 1˜¨CCÌhz~bG•B_ñ4¢êk…õmI!õ¡mb˜¶ÙºcgUí[Sÿú?ýøêï<õIõÏfn½²’‚ܬtÜúáÁþKðÿ»9ÛÛà¥g0ÊÇ‘Ü4Ri¡9ì³uÆåÊ•YßÈØÔ܇~æœù>~AaPåäµ™9ù[¶•Âp6:ÞØÜÒÚÞñå[÷9ìãx¾=öïÜb¿š³UTlµÐw«“5Á>–™[®jö•}RêËI}–z0ô/Ù¡¿÷6£Æã‡÷×UW”âÇ¥$ƱÔ÷tŸêD§ÞPOW›éG}F{Rè÷òYÄPmÅa#FŽ"Ô×djamÝH¨±©Ÿ•[€Ôß#Cý‡¿õÉ­× Ôïhkån½Û6ç¯Ï\K·>(”Æ,ýɆúºˆPò÷Q_u]”ú¤Ðìveꬣgðöëü«ªëŠø¢Ž¿8€¨5®*âã<2 PA£V­¢â"E•ùùxðx>@æAPÁ©ÑU# -(8Äã,6©Õ®VÓµÒ´]«{Ÿsîô£@÷‡{þƒ»ïÞßýÙãér3oáo¼¨6oÙ£JÒ¥gå•”ÆÝZ…ÓyãÖ)ößtö/Rì ¸ŠpE±?YŠý¾&°ß¹ûU¾OI}ó©OòòÅóoŸ=¥íC_K†þHEi1ú0ôaðm<õìBlm ôi;í QBßøYˆû‘£~lE4èP4èXlF'WL£ÅË|Öúo!MÖK¨¹©ùÆ­/¿nõâ¨O·¾äÖ£q´¿(/+M§QÅЭïã½dá¼9îF„ú#mqçèOÈÿ÷2 ¾8õ¥Ø·ä°?±ÛÕ °OOª°È¨øDmjFná¾2²\/ÔÔ56ì“2?!Áþ»ìVcì·Rìßl¹ÒÀcbŸè*\ÐbÆÔ‰ãলåpÅaŸß¯2X°r}JêKRû‘›zlGJ½Ö'ïß%ÝCþ´dè·oÙ¼1À—§¾Rÿ#Þ ôôìÅݞݕÐ7ý,LDOýŒ ”úŽ$Œ-]±Ú7 ˜©ŸÇQÿBRŸl}1B¯6ÖUã­i´·0'C¯UÇGáÖ÷[³bé¢ù^³ ŒÈÒ‡KÔÊ’e'PTTë®üÌã~µ°ëu¬WOvS cÏmתÚÏ;wïAq¹Š°ÿ^Ëõ°_ŒØ'¼ -åy5ÛÝÅɱ/Tu%`_ZkeÆ ž’ú©/FíFzÍMõ58ô:D ¢MŒŠ ò_ë½8Rò˜úÃ8‚XJB¿›ú¦žõ{H£èƒß ¥ÂQ‰7P?ˆ©ŸSP\ÚÑÔ#¥þ >lýªó§O;BÃH—¤Š%[J¨ïêd‡YôáHré dÔ§QÄ'Q§ÿwƒ ÛCzkzUà÷ëì¹ ûXéðÈè„Ä”TX¯ûq½ž:w¡¦žÃþã§Ï¾ã±ÿîÛõíØ¯æ°¿'735E“@Ž*æ+/ÞW£¹RÓIƒR VÅ–åSRß|êóSÿôñžz¤+J‹ ²wƒ@bwD„ú­fÔµ¢¡@z*¡oþ™¢>†>ŸDCl†@ÇOšf'¢~ ¨J£KËbYdDý¿þíý©/ £—/žûìé£(ü7üÿéÒç©ßKLý.O}Cìwaß6,ÖzÔ˜±¦àØì“R‡Fðã ûõøÉ3•ˆ}¾Òû¯Ú}Vé¦úKˆýcû0jê8¸ª Ô,¶`íéY…Àúà·°a­xì÷Mš2f&ž’úoM}$N=ž_ܼ!ÔƒV,ÊÏJÓ1€¬_·Ê;уt¢˜ú؉8öâ»S }£gú؆$ˆz3êFê&Ôw˜éêáI©¿ž4^­ÕgÐ(BêWõ[(õ9¾õÿóó¿ÅK³¨õÉÃ{w™@)õ+ ·³Ów%íŒÝ±9˜Ôÿ?¥þp›!Üï—õÅØç«ÍV,-¶íH‚};GwÀ>­õ¦ðmÑ šX°0÷‡?ýó)˜Ïú¦æë¬ÔRÿ½c°¥¾F±Ïl^fZŠFgÔš ËÍÙÑ…õ¡XXüa…;¶«xÔ:µÞ²{Jê§>{j=*ûЊ7Zš.€|zè€1õÌÍ5"¡þàAÒF¤sÏ:ñ7J苞…¸ ± ©? ©?a2PßÅ ‚¨¿Æø3V•¤K'ID©_S×xõÚç·y€¶úðûyê÷Œ;õõÏ‚$:°’[;:2<$ýÉþ?=õ(?Ùïþ¾L¨/N}1ö{÷±´âª=Š­ØÙ]åHæS¬'Ø?x±/œU(öß}Áþ×ûtÔžŠ±ÏoØœÝúd56,6#ÖLŠýÑb‘aë©`ÿíOI}>õÿ'Mý7|ê£õ¾þòÖ èÄš gÁËöædè“wÆíˆ ~ê}<Ó?:Q"ë ü袄¾á³0‘B¤ 1†ˆ>ml¡ÇMœ:rÈÃó“ßÿaùªu”Ÿñ‰ÚÔŒœB >ÑùªZFý{<õÿÙfê¿â©ŸógU噓ÇT”î… Ú%úÿKéÿÇSoì˜QÃQŸXó1Dÿ¾èß˦à]ù©a߯–íX'÷9ä°‚Áß´e[ŒJ£#Ø/gØ¿ÜÔÌ›aÿu°ÿ/SØ¿ÚPWM† ‰•—•¦Ó¨ÈaèG°;ÖÅÑŽ]VÃLa¿›‚}³O©¿zÝz9¦>{Ú‰ú`½ºjœú£¥ÅÙé»’ðèÜ´qýºUDî.N\ÂÔ©·ìc؆Jè=ƒÐ‡&d)Ô§¯U¿þˆÏ¡ˆOŒ!{ˆ! þâe+×ø‘Žá[‘æGý¯8~¶“ú$ˆúä÷#?ñÔ;|`äPŠ&!z[ø¦ õDŸsáÿó§Ã'K!ÁžrÉ ƒ5Ûƒ=‡}˜{‚ýÎnû¤Üa[£âÔZ=îØ2ÀþggöiµŸµûŠýAŠ}B¬Ë—ª(öqÇfèµêx¸¬ Ü0n²fL8N+[Ro:o0nš•MÅåõ”Ô7‘ú? ©Ï=^ÈÊ3Їå%EùÜÔã͹rÙâù^³Ýœ± ¥'' ýJè›{y2êzr!4ì9ú£ñ“€úÎЈ„ú¾ˆÏè„Ä”ÔÌ\C'ÏTõ¯´ˆõÙvêó9ÔúäÑ}^Ÿdé$Ô×'«ãvl ý#ç×,þÔãì‰!$¡~yPß,öÉšcßÞÉÕ°§UÀÆÍ[¶Ç¨’téYùE%å‡8}±OËýðqkÛ±OvìkûÜeuµ‘Ç>.Ùt]ÒÎX8­ Þk`ÞÌ Ê²GeaÁ‡BÁÍœ2n†O©ï½²ÓS_2ù4õ¥>òãöÍkWjQh½=y™©ÚÄø¨­atê©=ì§Oá¨ÏM=Ò£§dì•З>cê÷$Ô›Ï ŽžÓ!„Ü!„/óYëö¤ “_\B©±¦¾±ùºˆú/ÛAý×õñÒ#ø¤Ô/'Ô×iT1ÛLžzŒž¢ ’õ¥Øï&`æžÃ>]³ŽÎnì¶òߟ¨MÍÈ-ÜWv&ô,9­°Þß¼?öÍ-Y‚}¬w Ãþñ£€ýBHm"¹­6¬[µ°kÖ°O+ñĉmWñÄuvÍeô”Ô7•ú¤aîIêC}´\ac¨l_an±^Dhp€/4!7õ¬ÍQ_ }£g!î@lAžú\ ±ò?išdÐ,¯ù‹–®XíŒôLФ¤eæîÙǨ_]Û`LýïÛ™BH}Üù„úg?ê—aéµê8\úžH}7Ì ¤þ"ÏÖý¸¥¿_VÔ—Ž½p^ᢵ†E‹%…؇ÉwõðdÇU0Ž¾ŠŒ~qIÅÄ~Õ%î¶â°ßž-û#ì×\8ËÖl~vú®¤p\AÅý×öqâ\ìéu%çGŽžW=ì¿åuJê{É9õ¥>jÎý/>.žƒ“ƾ g74aìö-›Áz>Þxpº9;‚<$Sßàaº•dÏ€ú$€Hö±$ Ô·….Dê;`Í[¸Ä¨„òŒS'ëwg õê_bÔçéÙ!Ôx£çE ç±Ãå%EùYéº$U þ~*ÏyžA”úpêR¿»tçwvÑ%_±M+Ô°oçè°%ŒŽOLIÅ={àWÂ>"‹W ¬ÚªÊ3'éžÍÍLMÑ$Àu%÷]½b)]´Ž-VsÑÌ™‘Vg]>¯ÓS1M}˜b9¦>ÕâãÖæ¦z°b¯´¸ ›Œ=œA(lA¸7)<° „s“sN½Ò€¦ŸAèC2ê;ûõGêFÝ9%Rß/ÂS£KËÌꓪ¬®kÀ†¹#ȳc¨ÿÍW·?¿Nå ;Ÿ^z©ÚÄø¨È° þ@}aéé‡î”,}qþ龕ݯµû°jÉ}Eƒ›FŸ`ΫÀàЈ8ûdÑ2ì×"öÅ%oãžý‘aJÞJ¯+,y}ÍÅsû%ÅùÙ»w%Ãy5‡‘óñ^²7íL2sPt[‚}k+z`‰v­B-ã÷ë§¾¦m©ª³Sÿ.õáä$öhnÄÔ?yüHô`VšN“cï·àñ v ýtb=Ö€"v(Ǧ¹g!î?Qüôbù3hðÛ‘„3  1€–¯‚vÙ„îTkõ9Å¥4€úM”úxê¿zýý›vQÿÿì—÷W”gÇ—³Ù ?X6×ãIVE&#J¯¢Ò‹ ÒËÒ,(QŠ -(E° ¢(]"8 % ݸ«±EÍÆ’dcâñ$?ï½Ïó¼ïÌ;3º"#óæîŸpËçû¹9Õÿ²[ÖŽªO¦_]Q¾¡hU^VZ²T‚ªÏÆoã'¡ÿ¾rè Æ¯í¦c©Ê>m;'û¬ëµ®nžä¿Â¦ç¬-.%IËÉ>÷^ݹ÷€Êþ³7—}¸7ú^q²ßÓÙÁd¿qGíV89ø¯ é ±(ûµN ûpt ZÓ§ì >¬Ñ³{i‰ƒúQRÿõ/ôvá9ؼwgÝÖ-¥ {Ù+RpéÙÛ÷‰®§Ï¹±ŽÑ_óU¥ªúºL:Qõ?°ƒ`æ`öÎÀ߀¥aQ±‰)T;Ë*¶ÕÁRê÷‚êß|»ªÿ ^Ø59ËɧÀø3—¿bèëêŠQõUdÿ]vù*²YëáC¬”tv£Õ4jŸ¦²/húðd_Ðô¾‹2}µõ5•›JÖc×S—ÅÇЬ]èâhK?,p-[þÅâÒvôîÔÖHR?’RߨØwê{ÿ?ê~õµ¶©Ou¿¨¶×Ò¼gGÝÖÍ%ðnf§''€ìÁ·éæJÏÞÔhÆtº~réPy5µ=tÑ”*ôœ“ÒGÏÀÐÄ TßÚÎq>àU_"MJÍDë,Ù\UÓ°›©~»¬»oàʵë -Úù†ªÏÄ«þ¿þ‰ªßÉ«~}ueù†u«ò³pú,ó]l--fˆÒÉÆÿž˜U_xø -?Ÿ¶ û&fæsæYÛƒì{¡ìÃñƒì®ý˜È>díác'Ï*Éþ“4!û¬ë_ ~‰'G³nn[E|XÐvP­(¶n®Îö6´ï3¦³´Å mKÝቤ÷Z¯‘£~|LdXð“úw¨îõÃ?ÜX[Þ±:¾MiLDp Êž£={½©lûÐ9FUÿ¥£@ýwxöpÊÉà3Ø8§ƒóJŸè¸Ä¶,d ›[Õ¿ÐÕKUÿöÝûSý÷èìz/*©þÚ‚\”Îèðà@? |zsfÍ4çäáÃ…¾UÿO‚ÖÿEQöiÜÒk¶…•­#“ý(&ûë7nÂ#Ý÷é¡ÏŽŸnkïìádÚþø©†dŸµ½¯[ÆÂvßî I í{’T‚²ïã±ÎeËÌÄ‹[}®ó\ëÅÖ{­×HS?àKýAJýc‡áð€ú×­ÊËJKŠ Gëê£ì™ÉÏ?ÍQÕe½Tõ©qöQå´sš¿Èá)‘&§eæQç¬mhlÚô9×ÞÙÝw Tÿ® ¯ú úÃQý› TõOúÕ߸nu~6:gdhÐb€¨¾§œ¼êåÐ#Êñ {¯"ûôÉ‚ÎÛØ;SÙ@ÙÏDÙ/Û² e¿eÿ¼@ö Köñâ}ìïíâÒvÏÎíÕðcAãW¤$Æ‘¸õr[àì@d¦ñ zx¬õü›5*\jJƒÔ—ÉÔS¿h(Ôß$6ê?úÏB}|7áòOk=ÐÔØPSI¨Ÿ‰¶¿&¹{Ë9æH}ø4‰rŒ§ìz£›'(ÅåÃíãȃûG„sªž¾¡ñÌY͵²upYàîíˆ;»’³’(guý®½Í<|ú¯ -UœóÅo¿kJõÏâìáϫۺU•"Ÿ°‡ª¾¹™ZÕÿ«püÚî:Wje_¡÷äø±õvŽóQö—†EÅ⓵’—}·m ûòk8²ÿâ94þ'yã¯_»r©ãöÔñÏíoÚÝ€OJdfZ²TBòlËÉŽ´ÞÔÈ`ú´)ï³ÞÓÓSc\¢i¿VkÄ©ïïK¨Ô÷õW >¿O"¥~·ì<¹|Ø¿šÊò E…¹@ý¸¨0Ø>wtX>T¹ì)StïKGIõ ôÉúq¾9ÐÈôÃÙ–D8=}= Éé°ƒEÔ8™êöÕ¿…ªÿ艆U¿í4°U=Sý(¦ú޶VsAõ9Õ—zâ¿zÙÇæOT”}ìýw/ÿ%!1Ò$ü²hëwÊe¿oàòµëš•ýûwo3Ù§y{¸x²¿¬õ«Wæ¬X¾,>&"d‰¿·;íýG³fCâN•7Œ û"l¿6ëmRŸ…sÑ*¤þ²x G}/‚}/µÔo5õ¶‚uÔWSêg,êÃá{õÁöp÷¸»§²GotïÔ•ô™m‚ê—«>‚|Óšø¦7!O|RjFNÁšâ’MU5õ»ö}zðÈç¸+{._ýúß7oß»ÿð{uÆ9Õ¦ªúç zT?U?‚ª¾³½ U}½©¨úUTÿÏbS}5²¯«Ë=ZŸ4"W_.û‹hâÆÙ_³{ßð–dŸµþÛ;·n ìCàvÀÝßÔˆ½/c<Ä [àëIšoi‘kÂ5…vŒ 2—o¿â«%¢h¯F„úùYéË)õƒõ©ì{xê‡EI¤b§> -Gý}@ýŠ2¼üŒå‰¨{þ”ús)õA8È› ¾¡pö£[§T:Š«‡»ÇdTÿ½ '¡êë!wˆê;8/póò ð¤gçà -–Uß<ÐzôÄ™¶Ž.P} Ï[wqYT„sèªÿTA8åäÑSÕ_™½"%Áƒª?ßÑΊ Ú¹mŠ[õ•SW.ûØ~ÌÜéF û´ûî$r%¼ì“æ7SÙ—iPö%²ÿzïöM–¸xvŸ9Hþ¬ªM%Åk -r3R“¤Döi÷­YæâíM&ÇÇBWWUöE4­•&¨¶Q_Ô?/¤þBýl|É$Qê©N©ŸC¨_5dêúC þ‰£‡xêÀ§™ -¦›«“P„7|ƒÜ=•=Ñž½VKGtÈòÿÛØ>€þ4ÀŽ©™ùœyÖvN`›>‹ƒB# wr ×—n®ªÝDÕ?u®]ÖÝGTÿPýï@õ|‰o¾¶êÿð„©þuOŸ\õwÖmCÝ,ÌËLcÜñÂÄ·±äTÿLõlj]õ…·Ï?“}Ò&û´ýLöñN9ÙoÒ ìóÍÿ›O®eή§«£í̉£­H÷+Ê7¬[™ŽŸ´ßÁe¦±¡>¼Z˜ºHêrP¾¶Û.‚9êK%Qá!Aþ¾>@}À¾PßÇ×?R?)5CúZ‰™ú»xê§Pê{Qêã› ‡ÿÁ«¨¯í‹¥” «Ç 3–º¦ž¾¡ RÇÊÖÑeU?žÓƒòJØÀ½h›'Î|q¡«·ŸpTÿ!§úÏ•tshªÿX½ê7 m2ÕÕðõ\$W}ýiS>˜<‰Œè3_0~c²oJ_-^ö“Eøim×´ìÿþÛ ÚýŸ>þþ;ýoˆì÷uËÚÏ"²D©Ú\Z¼¶073-Y*‰ Z ýwu²'²oj„¿¹>Œ]o{£ÔWS:Š‹‡›Ç›&2‡WM -{gW7êš± ÉéYy…E—nÙZ»£‘Êæ¹öÎî¾KW®]¿A°CUÿ—_Ÿ¿x-Û|Õ—QÕoV£úÞèš6– úäÏ£ªù2Õ×ø…3àGÀ?[»J²·ŒÉþfEÙïêéלì?£²ÿðÛ»·Hèö÷v]øâ éÿ^¸¼Êòº9@”x6€….޶$vé³…€ÜÏr÷]Ù×´Q¦þBý“ŠÔß@©Ÿ$§¾7ž§—7RiHx4¥~¡~-G}¸eÑRO}‰ -õÑ6& -©/ß9mÏ[$¥£¤ú„8ˆœq9“qù ŒLÌÌç̳¶sœ¿ÐÃUöÛ“Êšú]{™k^¸ª•£ÈæOjT_l¾¡ê¯AèÈUß<^õ¹?O9òŘù -Cx畲oËÉ~¤PöÉN WöUûÏdS÷Ú•K}ÝíçÈšwÔQ‘ÌËJã"€ã#¹ ×# çGƒw,Ÿ¼bŽ^m”f¨ž§~‡*õ×!õS“¤±Ñá¡KåÔ÷êû"õC#¢cè5ƒBpÔƒëá¨!nêÃé[ÁÞ™âÚ uOp÷Úž·HJ úpÆÕ£Ä¡¢9ÛŠ ÇË/08<:.1%=;ö˜S·cÏ'ZžÕ„E!ª ü€¨þ‡£ú?ÃÔ_®ú 1¨úÉR S}†ê•{¦ˆy£&z•eßd‚×É•È~8ÊþÿØ/ó§*Ï+Ž—´ì4nh34¸aQR"… A"Ü}ƒ \/—Ë.‹‚ -.H ŠWD\ "»l""â‚R§ŽV((b:1NƦuj3ãtÚsž÷}ïÎ*Ëeæ>ÀûÃû=çóýõ¦¢ìWÕ6މì3àÚ½ ²ÏÔnGûõVL ¢d?{wwêÖä@ʺ ‰€ãçCŠ÷³O©s‹n^‹YTÌÁ¥Ù½ÆÄ¿ñ£~±ŠúpADJyˆT"äsÙþ@}ò€úl.©ªŒZŸ˜LÏRþÉ¢’rc§~¶ŠúR1åëåá†Ô_ªI}Ti&êzfšc‡sÇð†h&ÌžõT}ç•„8„ˆfbrJÚîL‚œÂâÒŠšú&Ê4ïu>ìîí#Õ×dŽZõÏh«~ˆŽêDy&ŽZ3Xõ“}ªzI´ì¯¦e_©#ûêÆDö_½¤zd¯§ eŸDÐX[UVRDŠ7 ˜&‰Šx,Ò¼.NLTõÂÁŤ`®'ûFÄ¿±¥þU ~s“ŠúùD(êG©©ïGaßw­R_$‘Êhêã:çÒÔ¯§¨oJPvßÍE›úd樑3Q_çiBŸ‘LBý”e¢ê/´úÈv©½ƒ£“‹ ©LŸ´eû®Œ¬¿³çÊA4›A4o£hvõ<~ò O©>œÑ©þw¨þQ¢úÛ6mÐR}—AUÿÆ«úº'—žìãÁe‹Õûû•ã,ûo Ê~_o÷ÃN:ƒ¦úšŠRJ%÷e¦§‘{K)Ù‡êõþÂ}%upÙ,^DdŸŽAU¾:ØŸì?Éo<¨ßXWSUÔ?‰ÔÏÊ Ô‡„BeÒPŸÔìûõYl®@$ WI\î‘üSEçhêwLAêÏ·ü€¡¾Ý›ì¼á™éÀ†qÌ÷pð,P270zh™Î®îžÞ¾,®0 X®ŒŽCÍLÿ*Ý€Sy¡¡©åê ôLœ“¾þ¿} ƒBçÕ¿_ê_ÓTý}´êG0ªÿ¨þgƒ«þÏUõµ×_SögéȾ#û”ý¸ › ûZÍ;ì ´š÷ù3ýÇ=]B„ÐÜX‹Õ{ºàèÁœ½˜BBl„BFº×gµ‡ÄðéÇKm¡|aéHû2Ah]FÅD¾ñ¡þ…ªòÒâ34õw¥nM†^•ˆ< eß¡ïÏâðb ¾"÷9%-=3›¦~‘S¿‰ú£~zÐgs㘖„6D2W|îáåãÇnÂ"c’Ñ2÷þñP^𦼺îâåÖkíŒfœ<{þ=Ê«~}¾êé¨þâ…ó‰êÏ™:ª?¨ìÏ¥dßJ-ûÞkXl‰á }qu´_o½|±®º¢´¸ðDž\»Ó*‘оÇá ²¿l‰ÍbXAHvûW… ûê7:êgdå Dý ~=RZù8cOÊ&¨åźà@±Ïe£ì¯Eè³Ø\¾PÔ‹À…Þ¶cCý -šú6NêçiP?¨ïk¢þ°Ÿ™žê›«T¶ TÁ"Š5ËWºƒbús…ÁreÔúDrîË=|ìDaq©š6pv÷öõÕAnBnµL7†U¿SKõOkª¾’VýÕT–¾ê¿c´œ@ög–}_ƒ²ž–ýÛjÙÆÈþ«!ËW[ö©ÍSÉ>äÐÓ…²Ï´oYIÜ\A&wnß²1>&B!“ÒI¸­prt°_jkmµv.`’…öß1æ -ž°÷vÔ/Aê7 õúmm:Ô?¥Iý˜ˆ0yˆT""²ïïÏU_ ’HCäa‘±Hý{¾Úõ,îZ;PÿAê¿1&êó õW˜¨?¬§ýwUПe1Ic9¡•õ‚šn`˜l¾X*SDÄ&$mIÝ•±f¯³¼º¶±™MWÏ£'jǤæd8´aTÿ5­úA;¦†ê7\¨\õ?ÆÜÌCÕŸ;µTßìSaвo9LÙ¿8”ì¨}qõ蛫¯·[U¿Mõ5˜ÄÉc‡s³3Ów V¢”òàˆÂ×ÛÓÝÕ -ØÞγ`˜C+ cŽcbÞ˜R¿PÿRc}muÅù¯¡”ñƒx¶m†VŽTõ€ú(ûþ}P}ž@$ UFáFo‡ïîÇ»@¨cÔïÿæÛñ¥þÿ†¤~'©_WUö5ܘjêË õ½¿øœ¡þËßš¨?ð3Ó m—´^ÂÔh>$~igïàèäâºÊóKJ0Cã5Ô9˜†Yy¡¡©åê dMçÿ¢êÔ0ŠÉÀæÍp`óÓàª_Wm@õ%Œê;é«þ{¿"œ™ª¯/ûæŒìÏ‘ìú¶Ñ²O,:º(Ù=’ú%I¼T'ýÛ…ýÛqóZks#EAÞ!°É]©[“b#à ÇÏÇ˃jàeKlƒzAÃΞ9ƒî`&u i ñƘúW¯´\¾t‘P¿¤Ó¡©Ÿ”¥ •Š…|}pŸÅÕç ÅÁ2ExÔúDâqðݼ‚ÂbÜh£¡þ7ºÔ?£AýpõGôÌôTß\m—`— ú Qz¹Ü@ãµÆŸø%L^bòÖ4$Í¡¼… Õu/·Â=¨…MÃüiÃÄ´5 s˜ªï­V}+µêϘJª?¨ìÿz¸²_ŽYÙ¿×iPö‡ŠBOöüÇ/¾ìƒìÃö=¸÷έm-˜EYIÑ©ü#ØÀ;·£M†C"©`7'Gû¥¶ÖV ç[~qÌÁ8¦CT&ìÓïm©_YC¨…¡~+R¿¡¶ºò| t2žb˜Î–¤ÄõQáŠuÁR‰HÀçrØÀ}6›Ãå Dið:EDt¬tê®?ìÍÁ•«mln½Þþ§»“Nýï4¨ß¦Gý >XE}ÇO–™¨?øÓ‡¾Š23gYÌA¹ÌXYSv¹ÂÍcµÏZ6_,•^Æ«®Aœ¼2Æ/ïàŒ¨HcHõ ¦ÕW f¿Zõ[iÕ?eXõÝ(Õ·ÑQ}ü”P}-Ù×lááËþ êî2(ûÿNÿ5xvÁòÑ ÜK¸£诩(-.$œ™ž–² ¸¢”@ûz{º»:/ÿÝ'öv6°…ó˜ dº*“ìSo,¨ßÔ¬Eýæ&ŠúPÉx‰a8)›6ÄÇD*CeA‘Ïã÷¹\_(’ËB•‘±ñ7ãNïË=œò ˆu1‚Çý¥»gú‡I£þã¤~P¿‰¦þ¡õƒ S6:†‰úÚOúZf9}&ŒÜÜ÷ª¿€†ÌrgpK¯5þ„2a‘±x î&Ç`…ð‚k7;Ð.»z=yªæÌ¿pHF úÿQ©þ Zõ{)ÕoêÿŸýòþŠòÌâøš-¿yàXˆTÀˆŠ‡•H0èâ!¬²Áh,T‡‘ŽôŽôRTT RDDÀ¡ ˆcAQE@Ac6Çh5k’]w={ïó¼SGDQ2Ïðþð~ïý|?w.¨åÌ÷PõÇYö/ŽEö¥^b<²O//~3¯ŽCJ8;3 }2"$À×ÃÅZØÔp#ˆ¦†úÒŪ 0èáé _ÂHdØgÞøPŸG¨ßB¨ÏãÖÕœ¬,/-.„l ’ã¢Ãƒ|½Üœì¬-@öM û††FƦf,¶¥µƒ³»×ŽÀÐÈ»’÷¥eÂg‰:4óú’Ô§Þð©ÿŒ¡>`€PÿR¿K@}ΉҢ¼ì õm-¶oZÔÿLHýÙ -Œô‰œOFý?ø2E úB± fî|åªÀ ÍÏV­Ö[k°~“‘!ãé‹nI¤)Ã;…rõú‘;÷þIfD3cWý.P}”KU}¸Z Q}ÓWP}Aîï:_^Köw¡ìçHÊ~/#û„²ÿë(d_X©ì3y´µžmiâb ÎJ'„ûyC ÛX°àø÷ÒÕÑÖZ¾L]mÑB¥yŠPÄ3 ˆi&bØÿà÷Žýq¤~K Á>[_ÃAêÉC‚lâc"Bwx»»8ÚÛ ì›™Á3661Ûj¾ÍÊÆÞÑÅL.>+œ!N¯™OÍ¡·ð.ŠLÐBý¿eêÀÔ]o¿$¤~¾õ)õ¿ Ô× Ô'˜.ÜõO:ôÉÀÉÉO#„Q$b©¦®¡¹b¥Žî0Ë-&, dŒ0½3.,.«àÈ´¶µ‹¹%Qý'/RæTÿ ¤=®ªÿ ­œèŸ?Ìg€ÙWAö@"TöyŒìwA ƒ/“ý—a_‡°…1û4[=7®_½|ñ<ÿTc}uUyIQ>$²wBlTh ö°ÛÌhó}=XC(bÌDe>èׇè_‚P„˜ö'úßOÌ{ êgå€s1ÔGÕGìƒì7Ô×rªN”;’ŸŒ‡XdhŸ‡«Óv[kK6`߸Ì7Eèƒêowr󄥋ŠK¤ŸÅ¥®Ãj»Òâð.Q¿¢ô(¡~bldˆ¿·PŸ…Ô_£û7õGxS†à…Z%ÕJ9¸ýæ)1^©¥ „Ñ_GÅÒÞÉÍË/H4GKË«j¸ÈPý®›·`B¨ZÂ9øŠªÿ_)ªÿ=ªþàí[7eŒ¸ê'Š©¾É$Rýeÿ£—ʾHĈ²‰Œ\Ãÿ¯a&‘G‚Dàøêíî¤=ÜÜ+lÉËÎH´€Pøx¸8àùe¸‘ibM õ¥‹U(ìÏœŽ©LËç²?~Ôo£~uUÅñcE¹‡ lä°`_O7g} 6 °OžÙVÛ‚¨¾»—o@ªÜÞéDå@`©Áä`‚n1Þ@¨ÿô­Pÿ·_ê?§þÙ–Æz†ú©{…Ô·do§¾²ŒúÒŸ8ô‡HåTU_”?V]B´rÕj½µë7™™[Ú:¸zú„F"aÒ2³óˆXâ-xŽALßÀI³|uÆH¨þPýnTýVP}.Q}Ë´I¬úÃ˾ÂH²Ÿ8Döù‚"¦Kû=Dòh4=,)ûäúìÇ"î¸ÒÖz¦¥‘[Cί\0Jlâð ?owg{ëm,Zź:ÚZË—©«-Z¨¢4O‘Ä2M°±Ð\dØõ¤P¿ ©ú4b¿‘Ç­«>Yq¼ähááìÌ´}{ šˆÀÞ(ûvÖ–lsà>¼­,s¶…¥ ¨¾«‡·_ nurJjÆ!ºÕõ-g[/M õqîõáÄÄ ©L¨_]QÈQßNDýO5Ô õeÔ—ò¦H(%uJ2nròÓ`ÞfÍQœ§ xQS×Ð\±RGw ðe‹ ËÂf»3¨Fp8‘‚ "à•Ü&˜¸;»nöݦªÿ&D(–8#ϤC_bIUý:TýBFõ£ÂÇ ú¼h£ì» d?í`N>‘}.È>YÚný;¯+ûx~= ²MÜsãÚÕËÎ1÷WI­â„ØÈP’ŠÛÌhó}= –±ŠÈþ,…ÐÆr´™:Oæ]Ïæ¼±S?]@ý†ú§á¡ìõk8•å¥Åp†üzÿÞ¤ø‘¡A~> ûŽö¶ûä!ô­mAõÝ<}ýƒÃ¢bÐårò‹JÊ«j¸ôZ$Ú&GvúñPÿ»©_ ¢¾»PßdóõÕ@üdÔ—öDÐ'FIÙBá"ã6C¡¯ÄÐEK¤RÅ‹½“ZeTl"¨ÆA:ä$Z VÐ?€Ð-©þH^)¦ú¿üò”ñÊûô°ëíî¼ÖÞ—]ÕJ—dêÛO>Õ›ìÛ¢ì†E1²_H0qÙ¿Kdÿ¡ìÿ6r(Ϙõ#Øüè§‚ì{wðvßÍîN”}8Àj9eÅØÅ©)Éñ1!>.PƦ†™\45Ô—.›?WXÇS‡ö±ö'úçOÀ7ê·Pê·œjjl¨¯åT(;v$?'+’Ù@dß`›mnÎfo#Ðw@ÕßÇ"®unц†æÓç.ùé¸ó šîô¿†Rÿù›¤>øCýþÞn°?Jýʲb¤~JR\Th€RߨoÔ×J}yrUʨτ¨¿ý†ª>‘JTýªò’¢üœLTý˜ˆ`FõÍ&êZö¿ÚbBdß“ÊþɵYëä2:Ù—,cñ\n\k¿t´quåñcGò²!˜Ý ±‘¡¤Ží¬ØfFà_úzØÇ4‚}…ÉF†}òƃúõ H}>Ÿ`¿¹‰Ç­«9YY^z´0/ûà×û÷&íÚFdßÍÙ°o܇gemÐwtvóDÕŽMؽ‘¹ÊêzÞ©3çq­»{ûèôàR¿=ê?PîK¤~¥~Måñâ‚\õí‘ú_ Ký?˨?EÂ&©N’Y#ÐW˜ÐWRY¸H „RKТ¿Ž¥½“›²¦APÊ’ò*œþy„Ë¢úˆ¼H—ð"….Eªß/Uõ÷$ÆRÕw`T_R©þheÿ ¼Â ”ý`*û™4™n#ÊþìK#ý—aˆì?EÙÝ`}7»uÜP{’&“‘š’âïãá‚јn$…¼Šd³DYÎTA:ØÉâñ¼ï{mêWrúÍ õùDöêk9U'ÊŽÉÏÉJOMÙ²ïëåî -Ø·GîÃæÛô]=¨êÇÄ'íî5NÈ\û5\kp2<ÿ<‘Ô¿( ~!R?9>:,Ðשo -@êk}òW†ú³ð¨£þŸ„f1ÑyOÌAŸÈ$Å -åŠÌê$‹êâ“«Vë­5@²€P:¸zú„DìÜ•œ’šJðöËó©Êô ãë—äCÂè5.¢QQ1L˜0Ee 1,QQQéíçÀ9ôÞË¡wE^¥w°7Alc[ëì¦ÌN4qsßÏó¾ç=Y3”çx¿\÷û»~e]SkÇùKWoôôõÞ{ðè £”ä>F —aUØBU¿½¥S}1U}'iÕß0•Tÿ+Ù|>)û;©ì[ ì{ú¡ì§KÉþyÒÇwîr²OÿÜÇZǘ þƒO?¼}| û¸«½¹áDS{òxzR\tx°¿—HÙ˜›A#ëéêhA8jª*ÊPÉË@öûð;JaŸ“ýIÐľϣ~n~K}€~{{;bŸÈ~eyIaþé“Y©‰qÑ!DöÎŽ€}+ ྙ©©0ßÂÊÚÖžç,¢ê“ÿ?ZP\^]×Hÿë[d)¢2¼–¡þ¾8õ¯Pê—æõ“b9ê@êoÛ¼qPÍÊŠ¿#£r†úRO*2T‘#X™O ¿l¹Òª5*ªjk×mج³]Oÿ¯3261'>éíŸÌQ‚7{û´ÐóàŒr”lùQ¢ú/‰Q´Ü¸zé<¨~UýãéTõ=….Dõ¦¢ê_öPöC"ʼn©™Òº†²…<œì¿e³Ñ¼yõ‚)ä>šM+ΰÒ¼SÙ™©‰±Qa¾žB>ÏÖÒì𽆻w‘t4Ô¡“ÁÁ—.Q ¥L°ùÐVRË“"¢ |@ýj¤>¨~;>”ýFýªŠÒ¢‚39ÙÇÒ’ãÅ‘DöEn|ľ•¥…9y–V6v}¾›»¨~x4 E°9e€ÿš¹0†¿KSÿ¿?õß2ÔÿRÿÑ`¡> $#/'+£¾ù‘{ €Ú@ý?"‰ûõgËýúCêO·û"o$èÏ™‹T‘™T\±R°¢®¡©µeÛÎ?ï6Ü\±²ãñE^~AaQì,­mä±É¾$›ïß0üàÞþ^²Ã:Zk«Ë±’³2RÄ!>nÎ6ÐÉû÷`<ÚדR^­„ù@+/˜ͦÍ`b¨_ßH¨ßÑÑA°²_]YV|6ïô‰ã)Œì{{ˆ\ùÎ<;[k+KxVÖ6¶v}‘§PX¤lŽý±šÛ».\¾ÞÓÛÿ5³ñ·&—óî PÿŸHýW/¾êßêwõ«ú§õC¼E|G þ^ýêðf Ij’„ú³áÒæô-^J\©²~“öÖ(“û™ZVàÞÉÌÌ&\!;°ûâUª“DõÉu€Oþk4>9Dõ¥ÀrÿîÀmV'ëªQõO‚êÇE‡ù¢êVŒÇ¡ú“#òOȾüb„•ý Œì€R¶w¸{3²Ÿ²ÏüºWȯK…íÅG*yäp>¨d’ÎÍk—/tµ77œ# ñ$ÅE‡û{‹ ”­ÍMH>zº:ØÊjª*kV)-§Ø§ ɱa1Ëd49Bš¨7Ô¯­oln!Ð'ØGÙ¯­©*/)ÌÏÍÉÎDÙ - ðõö"öíûäÙÚÙ;ô]EÞ~Tõ3²rr ŠË«j[:èN`„ÎDæp¾õßpÔ¿ˆÔ//Êê'ÇEI¨¨¯‡Ôû›¡þ‡ƒ>ñHJ RˆI.¦,W•TU[»nãfízú{ŒŒMÌ­í]ݽýC"bâɽ—UÕ6´ Àdl‡ ¹ŽO«þp\ùc&›T¿÷&Ö;b¥²´0ï¨>‘IT};«£‡©ê#TÔ§”êZö #ûƦ6ÐʞΗ“R¦²? #û4žãßûntCŒv2q/Ï@_SÊõ5L>‰±Q¤•ù<;+³Ã÷îÞµ¬¥© )¯Ä^V_øÛù¿?’Ã>'û“*¥ zE}TýNxDöêÎUW”‚쟢²àë…¶ïâÄst°·ƒgïàÈsr¸ô}‚‰ê§;q*¯pÈL›£¾@W"½› ¦þOR77„úO=Jýì Žú&÷~«¯§»eÓz†úK/’¡þ/¦7õe /9$ -ÚBy‚eU5õu´¶èS ÷•´ãñE^~AaQqIi8 K+kê›Úèmô àdeòB+³I‚•w+D&QõŸ?{úe²¨~Gk#]\K]¡âæâQO]Õ£ìëPÙØ¡ìC-‹@öáç-ed[¹ÿL±'Ïèo)sS ì«¿·çú•‹Ý-µÕå°År²2RÄ‘!>$!ÓCû±—wlÕÞ´#ÂbV„ŒÐà™ûý)§3öÇIýðhƽ8êwêì77Ö×ÖTr²ŸäØwðx~Vb}sw8øcS]ŽúýŸ¸›ûõ¯^¬äŸ&Ô ôqðlúû¾ý ¥¾Ú~ à¨ÿ«ê5ôçÌ%@è+Â¥QÔ547ioÛ±‹ ÅÌÒLÒÃ704Rœ’™sælIQI2)T†qɱª>º$ •›×.£ê׳ªŸ‚ªïï-“¢úJSGõ?!ûóed½DöM,l¨ìC/Ó1Fe¿›Öò]ZË/_q[L: áZ™ [™Ûb/q‹a-ß¾Ejƒ1VUV”½œìkÌÞÚ‹Ù@_2Ú¸n­6³Òr ª™bŸ¦$‹ýY“+¨ x㡾§4õË*kjšZZQõ»ººö‰ìWU”QÙOMŠG…‡ö½=Ü…®¾‹3y.|«ÐÝ“B?:6!9UÿlIyumcK;ù³ûúïÁÝ|ÔgmîÿAýÁþ^ ~7Р¨Ÿ-¡¾1Pÿ–ú«•ú_/@û£Ôÿåô¦þ‡ÐÇ##ÔŸ g6oÁ¯¡F*­¦@Ù¸yëöoô öì?d -Dqv%"Ã\[qYU­Ä$aÞøxSFTÉ÷RЗ¨>Ç”Á¾žë3§úÇÒ’°Þ}‰Hš³ªO‡úY9õÛ€ú]]ÝÈýŽöÖæ¦Nö¥§$ÆÅDRì{zˆ„n®Ÿ/¸º EúáQâø¤´Løb~QieM}SkçyÖ$gÃÊÂ[–úïê¿c¨ÿØ–ÄHýK„ú@ý™õ-M÷‚õÿ¤¦J¨$±`A0­©?K–%&šP‰œ,WZµFEUm-òDW5òà¸5'ÈË/(,:.)íØ‰Óù…ä4ÚØÓ$")…”Ñ›ä[Ö$)/©êß½s›¨~gÄLT?+#%!&"Øß UßrXÕW˜*ª?jÙWQEÙ×feߪ÷XXT,†„²_ÒFç›ÑxdŸ[cP̯_>g2‚9vý -4sKcmuyÉÙ39’824ЪÙÑ–¦´{×èfM ŒIyå -Å¥KhNsçHaŸ“ýi‡ýÏ ~FVΰ¯Êš:¤>@¿b¿­µ¹±î\uEYñÙ¼Ó'³2Ó’(öü|€ûî"¡ÐÍM(¹ó}ü(ôãS3ŽŸ8ª/ës Ïž¿`®Fʾ0õo²Ô/)È%Ôòõpu²ê!õu´4¥©?†úøfÉ¢DŠ%r¸²…ò -H“•Ê(‘šZ[¶íܵÛ-ÒÒÖÑEèé)NüûåýUå}ÇñÓ´ù¥=9ÒÄ&m%âÁ`±ÔÀ½QQ Ü{"*ÊÞ—qY¸LÙ C@@¦,™nD -Úôä´® Ïicæéûóý>÷¹\‚ûòüÏ/ïÏ÷õ~½£ã’Ò2²ó -KÊ«j9Pnt(<òþÃ/¾”ê÷)’¢êw3Õ€R\@åÕ—ú’êÛZíêúÉÊe\õ¹Dj %ÕœìO`²?ÝpÉþjsŠÉÒú½³‡ƒ,Š€”x5ãý¶Òë’ ûß"£ïfŽ}Ï2R4³¸Çº:Û[©šÏÖ©,+.ÈÅ Kˆ £nvq°³µÚ»sËÆµæ«W/š?Û“LOWí¬¡>ê}`*FØGR¼Ÿ{cÿuðʾCý3µŒúçñûõu5Õ•å¥Å§òsOd¤%'öeÀ¾¯ÄËÜwvrdŸ“3˜ïá%ôƒCåQ±ñIø!©~yµð´Û:nu+\^¶ø°xÉÔü@ýûwÔo¾T -Ô©¿Ñâ“•œúúûÔÓõßV—EŸ -ôÛ újo3–úã4'NÒÕc9±±‰©ùÚ[wB"í\=}€“ÈØ„n‘•5ÜODüJ„þ·ýC¿Pþ ÿìN÷­Ž¶–kWSmµ°Èx9ûy»c’ÙXîÞ¾y½…Ùªå -›l*êYG oØÿË{û<ªaýBýª3µõ úÄý³ õýŠÓ%Ey9Yé©À~4Ù~ ÔÏÇÜwsuaŸ«˜ïíã'%ÓŒ‰KLIÏÊáªU¸tåZk{'ž6Tá.Sq ªˆÂË >£>–å¿ANýó ~YQ^vzr¼’ú»·m´0[¹LA}m°`ô¿RŸOBŸ.ŒQnlä»@ 7H]½¿Oa4{Þ¢¥+V›YlLöÛ¶wv—ø…Fpšä•1‰¤Ëhëä8ùϽ¿d)ÜÆàxòXà Yä=²HÂÉ Rý³õ5•PýÜ,¨~´\àëåêhg»ª¿žTñü9FCTõ–ý‘TÐ*²¿I¡ž±É¬¥ ¨Ù‡·)_ð‹¬gL}uó1a‘á%R9ß麉·¨˜d%§x;G…‡ (7§£P=¯[ÃFÙÜYÔÏT샿*²zK½L•ŽþeÅõìßsR?ûdAq£>©þú€ýƆ:`¿¼¬¤°àdvfzjÇ~H tÜ÷ôðpÇçáá æûú) <3›µWýæë7:nvÝa7COûÑ«¦>˜  ~gf%§~~vz -Q_*qw:b»Ô_ ê/õ§õ5E꫱-9œ©ß'ôEpôÇrœ:ÃpÖÜ…K–“AnÞ¾Û,qrc -—”– ˜””W #—Ñ}ç š (‘?õ)‘Mþy»«ªÏ²¼„©~BldX¿ÄÝùè!bÉF…ê QÕÙŸú±V“ýÍèg6Ê|B()&ûel“ñ'Œ íÌsúæirbA}Mí|ŸÚ™…Çxálý™Ê²â‚“'ÒS(©`©§«ƒ­ÕÞ[•©‰1 -z&L YikRCSXzçmµØ“cÿá†ýç¦þ©â²Šªšº†F‚þE|à>a¿¦º²¼¬¸0?7;óxjR<°/ -”‚û‰··——··Dâãç/ –…É£bâ’Ó2Näæ–ˆªß¢:¶EQøîeQÿ§~©ßÕÙÖBÔ¯­"êg¤ÄÇÈCDêoZk¶ -8Ûpº¾Þ¯ÔïñýF•"LöŽàÄ Mmæ3ç,X¼ÌÄtͺ[wî;pðˆ£«§48< -—–~â$@bÉåæë­í71é2îã2”0!!”CŠ0yøàSÈnRHKŠòs³Ò’â¢å0HB‰Íþ=Û7+U*©>dW}µ!¢úO%ûhh.û[wí;€‚vB#cRÒ…27a”õHª/Ùp“)ë™'õùg4ÊÚZX?×UW”åçÐ*‹‰em؆fÙ 34ô¢y³±ËôõtuPÑê£ÞgͰÿ‡ß÷ÌkØaÿ™¨ïÞ‹úÕ >©þÅKøÀýógëýŠÓ¥Å§òrOöŽÅDÉÈûR?_öùÁ!¡áô³ròØïHèð¶o(ß6ºž>'žËË¢þÔÇ¥ Ôo¬­:3ËHIPRÏv¢þòžÔ‡ªRÿÍaI}諸# ¯è¿Ë¡?Nsâ$]=ýi¤‹Œ $¶ptñ€$1ñÉ$Ee‚´ -: ŒÀgg‰Ò ±æ%çPìå%§¸@‚$~ÞîNGØÇü‘T.©>ãÈØ1£‡˜ê$ûjÂ2cÝKö„åéÎfYN>eÅ Z¹ÊxTªýÜŸì³wÈúY_exŒ(è–«MÏ5ÔTñYÆZèçåætôµånVÑ«–/Á03œA­£…¸Ô©¤Y^#X^<°a‰ýg¥~pX£>ÇtM}ãYýË—/ƒû ûµgª€ý"ûq±Ð}p?àâ  óÃä‘ѱq‰Éié€~AQiy„Ž«~Ç­ž#>mU{UÔ¿zùQ¿ÔO%êøx8=hEÔ7Ç…õú¦)Ùƒú¿Qðºe_Чó BîH!yÔÒÑFfΞ·péòUfÄKëCöÎîÞ~29I^ai9Ó¦«-"IHD|<ôR@_H(ayÿž@’v®úug* ú9™ITxˆÔÇÓÅúHYcjB‹ÎhWýqCPõ!û£ÇŒ0Q%-È>âÂ0Û‹aæä†´PÑ}ì²’ÓUBXhè'eÀ¬z´0ËĆîêloUì²ÓÅTÑ©‰ÇxZ®ŽGÐÑ»¶mZ·ÆËlÁÜ™(é)“?ÒÖÏZš&ÖtŸØÝ¼Šïù©_rº²º¶¾ñÜy‚~SS¸ßû%EûɉñÐýyx¨L̾™,4\s,>1… ² ƒÐá\𝷶÷3U¨ÿb ?ê7qêäd‚ú2%õ×õ€$À:sÀaNý O÷%¨£ú˜±ãµÈqc³æ.Xy\³nÓ¶]û€G7/_Øc”°)Á‘®­Ê ˆÃt@UõûñÇTüQ ’î[,`¦œ#)ñ1¡~ÞnNÀÈÞ[7X˜‘<Eô‘²ÖTýÁÉþ8.û3ŒcSä…’¶9lïâá# ¦¸Hö Ki˜‰i1wCE÷¹ËUôT4^c·0ÌÎ7ÖUSGçfO¦¸‚ü%.v¶V{wlÙ€ifb¼xþœ™OÓ×›TпrÜgØo`Ø/°Ÿž–Bº ð‡……â —G€ù±q I)i}ü¬B‡·ÝSõ煮 ¿–_&õ¿¨ÿ5§þ¿HõëªAýÜÌÔÄX%õwl^g¾ÔŸêOÆk¨âÔÇ|’úÃá¨èëú‚8Ž`Ð'süPc¼¦ö¤ÉSþ1Ý`æœóµäŽV¶vŒ"a‘±Ç¬Ü‚â2ÒÚ€­°Çn‚¾°ûàHÿª/è#çÈ‚êßF¾­×š9FJ óÐëǰ`)(bØÚr÷vrGãEt¢ê«3ÕgH©þ e_‹dšÁLÔ4m³ [kiL³ˆ˜øä㔕4—}zÇÔÑ,®GŠŽþ™´~‡™"®/×]¶ÌºovÜà%][UÎòÂ4‹–ËÐÒîÎö‡m,i›¡¦W,]4o¶a_Wgâ^&Ïì­ÿ³_Þ_UÞw?鱚ÚÓ¸¢Më1qO÷@Å{ïmÔ(*"‚ŠŠ ·2Ùó÷²áÂes ²Üi«5ÖÖ4ñ$çXÓ¾?ßïsŸ;P¨é ×ç‡çx¾¯÷ë­šNj¿ÆØšù½ õƒPêõ ŠJJ}•JU îëa?IAºèïçësÙÛûû¼½/ûøúù^  ‹ˆfÐOË”CèJÊ*ªªëDÕç[wþÔÿž¨½õï - ~Qž<#ÔeÔ÷<´ßyçÖ þ¼Y﩯û} ‹Æ5@à:wáÐïÝo€!Äæhcï0‹²fè£+®ÌëƒwG¹¢£¦îæmn$âä‡ñ¼QŒ¨wÈ Tê÷îpŠåçfQ­3wD<=Ü]vsudªo Õ­¯úíZê7.ûø<#Ù72ìŸhiÃeÕúÍÛv:»<.x³m&‘¦f°ÀÐÒì!ßðð‘v^–ô ½’òRO³/ïÞºQ[]Y^ÊKIЉ š¾pæ$Û·gÇÖMëV-[4ö Zg漨Yf¬©Ù>Cj¿o«ÝÕ…ý·CýþAĤ”ŒìÜ: ØÀmÁè.hE´ÜQ‘úÚë*¨¾ùJ%Ä+ÞçO?rÐÕyç¶Í„¦ú–Pý‘ÃLŒè¨þZê¿BöÛ²&È~÷^}¸ì›bž ²¿fÖ™‹›“}ÆY~Qi9kšo3Æ_òsu`´´V`¼¦°šV'–—“™F=~-";qô›Ë.õÚ•K"³©¶ÔÔcšñÀþ}¨ª)5†}/kƒÃþÏ£þ‘ú R¼GP¿¸T Õ¯¬b_¥öÓS“¥‰L÷ÃCC‚ƒþö^ ºæGDÅÄIejè—–«®“ÑñÇ­¾•ïø­hÞö[¥þEêÿGŸú¾þJ›úI ~Ÿ†úkW,žçè`7y’™©@ýîݺêP¿µÁQ_úÜé´õÛµ'|0kì~ 42f>ÉzÊÔ³É×mÚºc·‹Û¡£' ŽW¯…GÇ'&«¸uG÷.šVÇŸª£ÈûE§ß¬ã易•&K€êùû\„82‚lÙÕgÞhmafÊU¿O¯î\õ;v`Òø»?ÔvÆ_3:È~k¡­5²ßƒšÉ°‘cÇ›[ÚØ9ÌšÚ`ðRgFE­((†ìר#Óñ·›JŒgšž~òø‘­³â…<3U–IóìÒ9/4õ~g§í,´…sg¡ª­Xj¬«ñ4)6`¿£8Ñ ûoNýÔ Žê²r@ÿ:ûªàûåeÊ’b-ì“îƒûa¡!ׂƒø 䇅GFÅÄÆ'$ÉRÒ úè2UŒî–¶ê?Õ;•ïŠú/^M}•XõãA¢þ1·½NÛ6úó§«©oôžúC·ÕñcЃKc¿„1ãÌ,¬lí§;Î]¸tåÚÐÆ½û ç.ù7&ÈR3åy…%8Œq~óø‰>Bž7Š]s|*ª>‰£@lŠ7šy#rø€ëž[7­[µüp°³±4?†©~ßÞ=¨~ë–¡ú dŸ˜À¡ÐÁiÉþÈþ k[t5Úš [¶ïÚ‹ª>yæö‘A––™“ÇeóLÌìõŠúEâþîÛ§Zóìö jjeq~n6ßg¡TÕgO;|`ß ´õ«—/^0g&Å6q/k䯱߅÷‘8Òèö›¦¾ñÐ/£þ…Ëþêç–(Ë*T€~5}Ä}U…€ý\yVFZŠ,)Q ð‡…††à ˆŒ&æ'J“SÓ3åú•ÕµõÚªßðRÄCy[Ð-êççd¦ -Ô?ï%R‰Hýá„„^õ; ‘ú/‡>7FbG§Î=É%zL´²±w˜5gÁ’„'gׇ:{‘óC"åÚ¨¬¨bùáÞøô[vÍ$óƧðF¦úZRý¼®àÇå gN=´ï.X#ðÕŸjkez b<°%«~“²ÿ ÃB_&û˜h–“™ì£¬±Ðöìs?|ŒºšË~rzv.KWµ¸Ïþ­ ­yM­Þg„}T5ž$Z^NVzr"º:äªÅæéáæ²{•õ²El¢MF[…àõêÉébÿ·ì¿§þëP_–š!ÏÍ/*Q2Õ¯®aq_UQ®,-.,ÈË•3ÝgÜ‹‰ŽŠŒŒ`_ddGÌ—¥¤ed‰ÐÇ&äÐ×Sý®ÂwAýçõ!jêß¹Y§¦¾4>: XÐPå’ù³§ÛõG‹Ôÿ'£~£¾>ô[8Ú¨¡ßžC¿k·Ïz‚ƒ>jìø‰€Ç´™äŒ«×oÞ¶ôðð„4^ö»Áð‘…ƒ5^¯Åd2ðˆñãµ´QŒõ9ƒ¾,ã´ñ/”-S}X#ÇǵßK˜r‡Ý÷íÙ±uãÚ•\õ'O2§Q}Ñ5ªßªE¨~²•Ö}ݧÿ@ã!ÃGAö­Ù¶;a¢=qšç#‘ªņç|ÿo¼«uZ#U­IMý¡«QWSlXhª²’ÂÌâf]µªL¤~°†ú›×qêÛL2dÔÿwÕ¹£>#‚S¿ç†ú:}ÜäèöY^}û"tŒo>Éz -Ø1oѲUë Œ»]Ü罯À£âei™9œ\¡úÿæñ}|4˱â?zHÒx÷í8ÐC!ÏH•Jb"˜3ž>qäà~g§í›×¯^¾hžãt{[«‰˜1ì×§'õú;kT¿MËQ}}Ùo¥-ûøL£ìh¥3Î|õ5FÚʵ?GrîØh—|‚Ã\rkkšh7o ¹ñçüý³&ËZ¡ eÍsã­®šÚº@‘MÁa£S]{?rÀÉmÙ°fÅô5EgaÆ ÙÑLÂkÏeŸw¶Ÿ!`ÿͨ—€'IÔ'ZWôëØGÜö+Ê”%L÷s²3Áý”diR"È/‰gŸD’ä'§¤¥gBôõ¡ÿ›„ôºÙ„ÿêK¢Ã‰ú§vwÙµ¨¿`ö {Kó&©ÿ›–~Mô髾}‘L úä‹&Ã@3 k[ûéŽs.%t|± Æxä¸×9ÆaM* -Š•U5€Ç]‚ÇC½Øz<{èsÕgÎxÑV–—åçd¥%'BÁŽ‹gOyz¸»ì&c\±dÁœ™Ó¦`Ë3bèàA˜«>éâGÚªß2 ÿ2Ùo£+ûÝ ûý˜ì0ÑÊÙQac¥99»":êk&ûI)ÙŠ^×ê¦Üü=7>ÑôÚZÜh¼®yr¹Yé)Iñèë DwÌ+mç6*ìÅÈÎÁÎm:á è×»'°ÿçOÔÍâ38ì¿õøˆÑ›,-WU’ê×Õ×߸Q__î“îW0Ý/ÌWäʳ³2Ò ü2©4Iø¤„üTÆüEƒR„>á×PÉ+TÿÅÛ…¾>õüSƒRMýʲâ‚ܬ4N}Ÿ ê/Õ¢¾1AÁ©ÿè·VCwEØ€-~JÜ`d2tÄhÓ ‡Ã,øâÿدï¨*ï; à'¶ÑžÔ¨uÆ4­QDQ”@DÙ 2Ä-ˆâÞ"θ•ˆ{ ŠŠF8PöÞCÆeÃe‰šhgØôØœöùþ~ï½÷.ÞОBÞ?îðÏó¾ŸçùºÍ[¸t%䨶 ƒñøiÌ -FGT-Æœ¼Ââ²ò*nG½ °Yô塾'ô<^˧~ueyi¦>[ŒœŽ¿“Gù`„žsç°©oaf¬/LýÁMOýNíBý†ìËÇ~7v©Q|ìP‰ôô q§±±ðÐØ8ÓöúbÙQaÓ•Æ¢+)ã}Íf\3tƒà%‡#íE­ÐוR]fZrB öõ+t¦òÝ»ã›ëV/_LáMw¢Êæé±ÎØïÛ§WÏ•ýfÔïpEêÛ8L‘«¿«žú ÉXb9’üB¿¬L*•üÜ}šû÷2ÒSá~B\l ÁÆžpˆÇÌÇÐçÿD@ŸM:|Ý/_ñwDôy·ÁÔo >B…úõ3IýÐÛAW.ž©?×eÆ{¦¾¶ þV}åè h`+öêÓ—£?xÈ0ÆÆ8c³ ÖpcúlWÌÅ5Þ›¶îÇNùŸ¿tåú­;aQ±$cq)€MÐñþƒ#åJtܯª#É|ãÚeÚ‹ Ž ^«–.œçæ<ÝÉÞÖÊÜÄ­Åáj,ßö<õEêwª7ö»vëÞCûA MŒ}}c3Œ}GZ„ž‹‘*wÚI¿€@„Ç›Ÿi¥Rd‡Âþ‰vƒ/úŸ-E‡R\ØŒý*œiEù¹Yhìø˜„‡;*ûà¾ÝÛ· =jî.èl{+sS#^Ú,¿hm -PÁ~aGaÿÃÔwi¬~X$>ʴ̬œ¼üBB_*-Çø¹ûùy’œì¬ÌŒ´Ô”ä¤ ~È%<ÑÑ1± ?‘ÌgC_’_¨@ŸÞ|ÝÍMý6VÿoL‡'ÕäêoÛ´nÕÒ\}K¨¯«Í¶ LýÂì@ê7~Ž>Cƒ¶â(RÃÈt‚•­½Ó´YÄÆòÕë°÷ì;x”ÜÀûÌnÉ´ÌlI~Q‰´‚£ÿ´V¾þÞÂÔo Ç»wì„{õâ¹h/)‰qQawoa.ø8rÀÙz¯ÁZtw™9ÕÑή?VGKSc¦þ6õ™]ÛãÔoÍØÿRE•ýq†&æV6öN(mºÔ¼6lA|ÔÙlì‡DÄÄ'SzŠ;­ö¹<¼æÇ~£ðxcSxìN“W6¥r;}î âç¹yýÚ•¬´‘ߤ‰–hm=]8B]M•³ßõ6»Öv$ö?Tý­JÔÏÍ£©OèWÐø1øá~A~^.s?=-59)11!>>öÓÏÈO!óïeçHò - -‹KEèãy!G_é0hkõ_ êW•—âõâê]%õíÛ-SæËñÆúºÚ£;¶ú Ñg`t‘£ÏÈ ¥8PeˆšúˆQ_éèêšš[ÚLš;·¢µW,YàáêƦ>mEB#m~—M}¿“G~»{ûæõki)Ι5mò¤‰ÈÖ`ì×_¡®¦:H˜úÜ‹OÚåÔozìÊÇþgŸ‹Æ¾ž‘é+[dèìF×Úºß BÖÛ—¿¿J RmÓ­F>(´vkN5öMÖ½EkËn5|—e%…ù¹YH޵àÔÛ!»Ö¼V-[ä9:ÙÛZ¡¹õ)Ä‘ÃQÝBЬ»…‹M9ûÿë Úè©—n“ê‰Ô÷ª¯>cLýÒ2 _UUÍÈOƒ¿¬´Xp?'›ËŸ‘.<™œ| ÌGi`èWTU×(A¿Í§~sêÿˆQ(Vÿ†Xýe ¡þT[¦¾Îè‘Wý>ªoaÑY†>F"¡ÏWâà¡Ã†­ýõXc3Ãiú¬9s=/_ 1v졡舗+84"&>)5#+7¿¨DZQEè SñðV4‹~=4~þY<Ÿ<þá™QLS?-9!&¹^»|áìéã|(’óÜœ1õm­ÌM õÐèä… -…ûY{ŸúÊÇ>£rdu7}Jq¼ÅDŒ} -‘šçÚ·ŽP†W®Óµ—(‹PÖÛÏ_Їý¶®®¥ùEø$ë%Èzû'êmÌ1azJb\TxÈí dxî̉#xs¯\F÷ÚÌ©“'ÙXšƒ}]t÷p5~±u`ö[V”6êÜÌÒÆž«¿’©€Ô¿¬P?G‚TIíʪêûÂøiðÓÞ—ÁÏäϺ' ¡ÏÞ ¥“à×DÿÃÕ?ìÛ‚ú=•«ß>_#¹úÍ¢‰8€°ÀK¥¥£«ghjni3iòÔ™.ÄÅʵë±}ö>~úì…KWƒnÝÅ»•@ïV^Aqiye5ÀÀN¬}ñR„~+‡¢BŒ×¯^>§L±å`$ÅGG`& ÿSÇÐæ;¶lð".\gOw²·±2717†¦¾¦þ_1õ™2* ÅïÛÝÔo4öAƒ°ùÑFIâfS×ÐÔÒA{›YXÛ9"G÷ù¸Ø¼7mEŒ¬»¿#!"… e÷ZÃ[{®ÑWI!¾BU7±zç&º›Åè»wçV*ï% <\gãd³³¶ol€ µ45PßHRÌþ?éPì· þê{rõ}©ŸGêÿ›ýú ªúL£¾kŸÝÄÞã¢tTƒX"‚Ò‹ˆ -Ø{ï]‰½wTTD:¢(b)Âå‚‚(MQwtb6ÛÎó¾ÿÛàâ³3ߎ™‰ŸÎÿþžsDy ýÂÂ"¼B¢Ÿ~rŸàgò?I‡ýü¥“øù|%}’«‰eTŸåçådg<~pïöÍäëÄEȹÓþ¾T¡ÅÊ¥ ç̘2aüg{kËá&C¡"êiköRûI¨úBÒU±êW-ûÍde¿µ´ì÷@”¬ì66³i‹²ï1 Aâzc²íÞØ9‡FÆ`±¥`±=Lç1¢ì—òÁ&ü¶?'Å?Sdƒßn#-¶4v¼£Âc€ŸÏáý¸Þ^k$m6œo';$ÉØï×Qbµá€óÙÖ¶ »àûÍûµ«ßSC[¢¾ãèq¦0õ½¶@}9õïÜg},W¹~QÑ zL~VøÅy~&&ìç/33++äË™ÿèÃü -%è7hÕÿÕwfê‚úºDƒ ~™úÍd,ü¿oW#ú¬JÑÇ¥N‘QaJ ÑÉ•¬˜‰Š¸r­×æí„…_ÀtĨظ„$®+‰ÏÐJ€>qñ÷ëß?~ü pQú -‘ˆs‘)iq#ñÚ•˜ªú„Å®m›Ö¯^Î+¢›‹ƒíH 3¢B¿·®–zÏÊ«~S<ê5”ýoønã¼—†¶;à&æ–ÖvNt¿gÌY°Iâ|³ÍvöBXTìÕ„$\o""G”ÿ “­„oùÅÆÝgÄ(eÇ»¼T˜l9YüzSØlΞò÷õ>´Ib´-Y@÷ÛÝV›¥9¸¡~]m^Œý®œýÖ2ö›7ökQ¿®¹¢úžLý5‚úg/HÕø8êç‰9Ý/ŠÙcòK -?¿(—Ó/}OI|"_Îü’šÑoÀªÿùZQ»úÑa‚üª©?Â̘©¯¥ŽBØØÔ¯Š~3}Ö~ûŽøž¨ª©kjë¡j:Ür” -¢ûÄ©3ç.X²b â®}‡¼}ýOÊÈK¨ˆ|EfH± ŽXù®šJ¹ø—¬$Ê´x÷¶òu…ÐÅ“G¿Þ½•š”+N?z`Ï4D¢búdÏq®Øpbˆ«úXq¬êwh/´CYÕo¢bUÿOÕØWVöÕh·é26Ålspq£,iµ­ß¸•¢ÄýÆh‹‘‘ž‰óÍ7[y…Bõ¸ÞU7?ß<Éäë×.³ûMQbµm݈¾xþìé4Ûè‚ûF`'\Â~gÄÙ®”ý‚ý:Õ×Ó7àê;põ-gêbê‡UQ?¿€£ÿRx$?‡ŸägôËžH”ÇÉ—7¿ô´êË©ÿá Ôïß8Õ¯Ž~sú­9úœ ´CÝ>äÄPó£l]ÜÆO˜BýpùjH±s//ˆÁ¡‘1W®]O&ôaDŠÄ2+$ñ7eû¯,ªTD²"?/7;#ý!5DPqñü™V!Ūe‹æÎœ:ÑU߯ÊÂÔ˜êaoMu‰ŽR%ª¾ª!Ÿ©|Ùÿ–—ý®ß£ì÷¤8û 02 iÒ ÷œ<}ö|ºà˜mŽ##B#/ÅÅ'¥Üºûë£'™%+ûå(ûïÞ ?ðz&‰(ß ÷[%V?àWc£Ã‘eà‰cGpÁ·ü²aΛM'|Œ³ƒ †Û0ºáˆSK£'qÎ~[%ì7Qaöë£þXÏ)3æ2õwì=äãÈç›TýQ^¾ ÷ËW“Â_HðC~ÐûÙÃßÄùùŒ|n¾¤è+A¿ÚWÑ êªEý¨°à¯ê+wáÒUë~¡N»í\Hx4HNfŒ(,~UR&wÀ…²ÿG]Qʯ6ž¥0Ûòrè‚ß¿“–’ÝrîL€ŸÏaJÓkíÊ¥‹æÍš6Écœ«³½µ•…™ñà˜n`_±ÿ~ª2ö[IØoªÒì×­~_ƒƒ‡™[bÀá’3õ7l†úÞ~AUÕ#QoÉS”ôÃ~Ùø$>›ø7Ì|*ú5 ß`U¿šúüÓ¢jXVR\ôŒÔüà®L}ßú¨ßBµÕ—C¿‰ôÛrô»±j¨¥Ó[¿?¡of1ÒÆÞÙuœç¤i³æ-Z&¶ìØsà°_À™ó!áQ±q I)iø®Ò3²s -Þß°CQ -¥T(—‚÷C…('+ãñƒ{·S“QɉÓþ¾Gî݉v¸réÂ93¦L?JX7ŠXûêéhöRë#ºtâU_*„ªVýZË~»éŽwÿ[Ou-*û We߃òÄß°iÛ®ýˆ30(84Ã-ñK33[r¬×WÜm”¦X’æÍ솇]8‹8i¹mÛDì/¤é†+îdgm5ÜìèG‰ -ìwûíûUÔoÙJP¿£œú†¤¾5Ô÷€ú —­&õzû3õ“oÞ–¨_õ9ú¥¥¥eeeø³”ä)“ŸìýŸÆþÌGѯ¬Ä×Pý­úRõéãú‡Dý÷µ¨ô«úÂSD¿©ýV2ô!Äw }u-½¾ý8ØØÔÕÐÉ•˜‰n¸r­×æí»¡•Ct‰Kqñ‰(¼Š8úäD¥úŸ …¬r'Š‹žäåfgR;×®ÄD\<ÏÊ!)±~õrÖ ÝÝ\mG²jHUŸša÷(W!!õA%«~µ²ß\’*…ÊË>Ö›¦6Ej4ÄDØ9áŒOž1gÁJWüèñ“§Î²<’Ør{’õT$–ÜðJa¸ýVßáÆ+»á~Úøm+G¿«þ¿%U_N}|W¯ÕÔ?ðU}öêBŸja}M OÅÐØt81z¬ûÄ©3ç.X²b UÃ}‡¼}ýDh$ë†ôUq%„rX( ÿLý·o^—³ª_ q%n¥$ÅDZnxêä±#öìØìµ–Œ˜>Ùsœ«ˆ07bDU_[£ï…: ×Öý–r:¨ UʾÀ‹UZö{Ð%ï­o`8ˆ¹ƒ‹‹ãmýÆ­;)Ql·‹áÑ—Y9$&²s0ÝgI™\žŸ¿Ü$Gœåɦ±ŸÏ¯8¥ív9g<(ðı#o[7âŽ/ž?›ÖòQ#̉}\r„JìÏ‹UÈUÕÙW¦þ·tË;w…újp¤¾±Ôwvó˜õ—®Z¿ êEžÁ¡‘¸âÉ©rê½( âô8ýL~N¿Â{Åwûß_¿~ƒï@ZôkC¿¡ª~uõY7|&ÎÍÆ‚¼›–’x56*4ø ©¿{ÛWõ?}ø ¦ŽZاßÃACM†[޲síæ>a -Ã嫉ˆ½©_Œˆ!#x5Ì|š+ _V!é†2%þY·¿Ëªþ[¶Ü^½(|–Ÿ—“…<ïݾ™|F„‡œ;íïë}ˆˆX·jÙ¹3§¢º8ØXY˜ýÞ:Z¬V¯úÍT¸ê++û-¥e¿C'á–khë"U£!ÃÌGP¨˜oÓgÏ_L‡œÖÛ±(‡¸ãñ‰)iwî?L—%ŠíöVºÝêsÅ¥ÛMzÆ)Ñì oi)I q±Qá!´ÞþK~GÕ¼®qwÏÂ=ëZ8ç CB$§N¢H©4)vÓnØMR”’™±A* ©””Js*J»vJ” Kѽ\Ëi@ážã,wuÖ}ž÷ýí±rs×⮵{ÿŒÿ¾¿ýù~Rä!!ÓÍþë¡É9ö¶,sSc]mMLUÀþdÊ>ÉuX°/ÌUPæýÕ_ª£o¼Ôw†@7õ#cO$¥fd¤>N}2Üq|’ô‹½.æ*À™;Ÿoþ×E_BýT}t‚¨ÿœªëƵÚjª~*Qˆ`Ô‡Yh´|Ù0Tÿ/"ê Ñ'6Œ!èÿ耣p–ò€«p™ø`βµç¸y ˆ~È‘£±ñ †p?ÖÔ]»D´´Á2|þâeg·˜ø] > Åè“öwº ˆZ·¼´(ÿ< ĸèñý{pz­vq´#³PW{‰:Y…³aêOa¦þØá1õGu`²Žýñ2(„,¡ 8_Ec]nhÓR…*ß´-`ïÁ#´É3s -.\¬¨ª¡EŽNð#í¥=þÙÇ›x¤ÈþÓvZäõiEÙ…‚hòd 5 î·€í›7øx­†ÎÆÒÌÔH_/8`°?c:¶9²?žÖ9ÃþH)fÿêO™>Õÿy¡QßÂÆÞÙÝkýÆ­{ŽŒOLMÏÎ+*«àbš·ïÞS¿‡˜ÿ†<¾ý=Ô~ñ×CÄç“/fþèÉ©ÿ§àÃ’PÿU¿ùV#Q¿8?;#5‘ª°Õç€ú¦D}µa¦þàèÿœŒýÉôU}2 -MÍX6öN®k}6lÞ¾ }8—|&#+·€àÖ]x÷AËãvŠ>Ã^>úŸIÄz· ‡áÓöÖG÷›oݸ~•삜̳)(ÎÂÀ€m}×­qãØÛX®21ÔÃ&WUž¯›púTÙI…6r•bôGˆ¦+:ö1Ú ?NÄdaìÏñ¿DKWߨÔÜʶ¡ÄŠ]~8"ú8¦ -N”\ª¬®­o ¡B“ÃØïì~õ¦·oèEþ‡d¦ïßÂôU7mr*Þoµ¼ÊòÒâ|H¸èˆÃAÀþ6¼à ÌÙÖ«‘¾Ž°¯ -7©ó©ÈþqöGI3ûbêP}5 èq£•Ööw/T?4"&>1%=+¯N·š:A‡ãéöò—.ïÄü^úDí—x¯_óÉ7ÿk¢/1õ™}[¡è'p°#ª/—Qõãc¨úþ>Bõ5A}bÆ´a¢~?ôG2èÓA(@>$°AeÁB @_ßÈÔÌÒ†íä‚:À( <w2)5=+§ ¸¬œËšpH´ÒOê—®!†Œ>éoþÔïƒ]ØÝ @ü£ãÉ㜅 õWª+/•æegœ!<„Ú·G¡§»³ƒ-ËÜq SÞœÙ3åH¨dúMýo¤X}!û"cÂ¥c®¸©­¢’²*&«g°b•…5ÛÆáÎ=˜+¹àÎÏÇXñ€»Õ|ïak?Uñûmˆ¡òï7˜e”ýNæ€k}H»c%–ù±¨<ávnÝèë Á:ÚY[@/Çd±Ï1Z`_–°ÿýÑRÍþ§ÔŸ†‰¢ú𠾩¹5›ãæéã¿egàÁЈè¸S)ga™•–WòH˜‚ŸèK2õ©åˆ9>!þTæ‘?ÿõ–/nþ èyõg¦Bñò|QaGÜl¬¿RUQVœ—žêG„$ê{ºsØÖæ"êÏ.ê€þ(ô²A„óU-}#“U–ÖlGwOo?@Ïþ Ü„'“RÎf‚ðAU_¹Ú€_”‡îW¯{Á‡áÇÁ÷aHS_€þ[@¿‡Y…m-ïݹÙx­ŽÇ-‡?.íô)hñ°`ÄÁýZW'¶µÅÊzÚ¸••æ*&ýˆ¡Ž#è‹©?ÀØÍŒ}¨ô Ä9ùÙs [¸â–ê,721cÙÂ8$É uì¶9žp—«®\½NÊö!¹à„±~F—ÿ[´ËE.¸Ž'4××ëjª._Ä6'Á‹ -Ç:ß±…qÎvV-e_ Ï8†}¸ã†ûª?ޝþLÅù*jêT}+¶“›§÷Pÿ@Hxt\Âé´ÌœB¸Üxµ×ÉoTL}Á€§OTÑ××' Ÿ1ÿ7ù_ý?_ÕGFýwŒúÿ|Öêß¹Ù@Ô/ÊËJO9‡êîÜËÐM ¾ºš -_}b£þ(éT@ôG ÑÿŽ /KÐ`ª/ÑÒYnˆƒÐÎÑÙÝs/.ÂýAĆĘ„yE%—.úp<Þ¹÷°¥íIÕAb~*ú˜$?J¾OÛ[ÑMXSUqñBANVz*NÂ#!ÐâÛ6ù {K3„K/Z‘Ι%/˜ú㘩?z8Lý~cŸ¶:äKãDÓ«ÛP}‰¶®ñJs+;G¼âü·ìØ}—|&#;¯¨ôReum}ãÍ;÷´<~ÒÁ´¹à„ûÜ\ÅÚœ²ßŽ7©ó.$[˜ G\ò©øØ£-°…îÆq°µ2ÇF_¶t1ÜqÊJÀ¾¼þ Ÿýo¥›ýÔƒêC¢ÐãDý§ž¡‰™•“ëo¿Í;àt;ußüwÌÕŸ>úü7B¾pçÿ.bþ—G¿ßÔ¨OÎG˜‡í­°"š®ÖpËK‹r³Î‚úÑá!D}oO7'¶•¤ú“ð^7vŒ«ÿYè+új ú+-¬ìœÝÖ¬óEöôcãON -K`ÖÔ]Ø@Ðïô{ùèÿo›°¯ ¦>LB´ávSC}mu奒¢<¤!áxtÄá „›7øx­vq´ƒ@õuqþü“Ò\\ƒSdI¦ÌÔÿ+?Uéžú’c¤È؇SȾü,Œw¡ÆÒezPé–6lp=  8ŸW\NAqY¢…#îžðˆ“¨óOËÌ2ñ:ÿ¶¤Ì‡}N£åq+ÊH¡C¶qpÆû»¶C¸pÇqìmY.aÆ«¨€¥>¬ØD}ìqT®oT}–£«Ç:¿MÛwï;zìdÒ™ŒóùÅx¸Õ741Óìý•ÂÔïíEÖß1¦“÷n ÷žŠ䋘/6ô¿ -ú¢ê+¯{ºˆ¨þí¦ë¨~IanæÙÓÀDxÈ= „÷W'@ÂÄPO[S}Q_ލ/#Ýê†þ·Bô) -rˆ¾’2ŒÁÅÀ‚Á -Xƒ¶7µëý·lßµ÷`€{0+·ðÂÅ -.Ðoº}÷Á£Çp;>4áôÿÌ’£ Há"¤4´A–Í8yÜò²âüóçÒNã >¸sëF_pÁ‰mm¹j…¡Þ2M…ªÊóQº¿—/2õÅAøçñ¥Þ`cìxDbâd܆pÊ‘±¯¥£odjƲu€Cæ!¤‹•~üdRj:„‹gd{²\q½À¾d´Ÿîsa´¿B´„ýN~¶xÆÑF//-ÎÏÉLOM:y<:Ó…C;ÝÕÉÞ†eìëjkÂ)‡­NØÇZ.ìJý©ròp¼)«.Z¬¥k°b¤éâ±ÖwÓ¶]û‚Â"cO$¦Â:ƒ¯ª!QŠl³nª>Aÿ=Ÿuxï%ýó¯DüÌÿè Õ§C‚?õaF¼Aõáv|Ú†óðÆõ:¬ÃœÌ4‡QG‚Q}¿uk\íXf¨þú²R¯þE_†¢?MN~EAßØÔœekÏqõXë³Y8— .à,çòjaCÜn¾ÿH°ákê%2ˆ Â!N}ò7"$ÙÝù£Ä=Ø Y^½Ruùâ…ÂÜ,táXTx(®ÁM~Þžîζ ‚‘¾Ž  òÓ¼9³±Ç'Ó%8V|ê#åSD?öùçû¨Äô³‰…šÚØêÖvŽ.«ÿC~xõ˜ïq?çθÆe.ÓÜq}—QZ”${TÚ÷}ßC•¢´hQ)E”PT*EJB ƾ/áÎuçÎÕ`†sϹïÏ÷yžßïùÕψ9Ì9?Ï¿ðþ>¯ÏûMG=2:.‹wsiYeMÝÞ&¤Ëí8jˆ\¸’‹Nپƌ…Û~ýê%œô¯)] ¹ºšªòm[Š -òØ’‹‹ûÁþ˜r޶Vó(`°¯ÍæÙö•º²ÿž‚²ÏG*¨ßŠÕ×ÔÁŸ‰éfïìá±dY|rz†ÛÖí%vÛ1ì6Éÿ–SUŸ™ÿHBû#Ùï'áãÅçÉçÍûèÿOŒÅOè9u°×té<ÞRËÍMõ»ªËK‹7æ¯ÉXµ2. -Løyº8Xóêã ¡8ÈS_ÑJá« TÕÇýI†@ßdž•­£«‡O@Èüˆ%1@?-“Êà–mUµ`áàá£Çé1]¸Ì¹Àêà=<¥×á‰p¾…:®à€Ÿjcm,T–•o\—›E*D-^Š.èâ`ca6‡UAªúè0ªú@@¤²U_q(ÿ‰ƒbæRf!S٧î2–"60š>PØ9¹yùQÀlÊå!_õFXÑÂÇËßt¤{_”t™!dzxÏžjk=vôŽúnä‹)WGWìcËÑYwq 17›c_Sû}z+8û2‘ŠÕï+Ž8±Ý4µõ >n¸“»O@hxdÌŠ¤´ÌÜõ…[¶a·5à€·´²$¯!ÉÝÔÿ©/æ]üý,ýË’/cþ[EŸ{OÜs¢×DVüû›ÛxKè‡m­b_}mUyIñ†¼ìŒ”„X”à _Otù³¦êC} f8HÑÕïú¨ 9ôǨBAé38ô]<¼ýƒaª`2Ð'JË«jêö}4ˆSg/PdÃñ¿bžt}–ã/2,ýÛ7o\½ÌÊ`Ë‘Cû÷î©e]pýÚìŒU‰Ëc–„‡ùy¹9ÙY„éFzTõUFâ@`UŸo ުߥì÷rFÌJTöÙ„¬®¡¥«o8kÎÂÚÞR`ÌEÅÆ'qg}ëvXQ¿ï®ú‰“g$‘ò½Ï–èf¼Òr&u._6å®\¤«ÞŠ€4Ò–++Ù\H §&ÅÇF-f»;;ØXšQÆ“õuqÙǪŒÁ_;lˆ„}³B³/Tªþ‡4Þú íFêkhO40šaljiëäæí²pqôòÄÔÕ9´Û*ªwÕãWýòxûS¹ûÍý©¤>¡ßÙx1õð¥äË3ÿ ¢ß©ê?—Tý‡?¢!2+nµ_ÔhÜS[Y¶uSÁÚìôäøØ¥a¾Îö`‚Ô×™@ÕpÄp^ý¾õßW0õ_޾Ð B_“C=ÐÒÖÁÅÝÛ?(,<è'¥®^“WP¸¹´¬²†L@lÅS:I²ïvà)qè‹UøUž -ËàãŸÙõ~pïû»l´…ËÏ9yâØÑè‚0aûÖMòsV K-AtÆ 75FÔ×ÕÒPWe H*±H‰ö,xÐïTöß•}ÆÄßY;9ZYmR6˜2mÖ\3KÌ9OßÀPÊxeJzVî:D\^Yƒ1×üÅ—|Â8ë iÀ¯sÕYÀÔÏø³Î'Œ1×¼¿qÏ®êÛÙš£Ã¾"–æ\ .»³=í¹YŒ}-Æþ(bŽ» û=•ýÎêЋÔïGêãˆ#M•±ZsúlS GW/¿`\pD™±&oCqIYf¿¹ ¹ûÝ!V¿ óRëŸHÄ—’ÏÌ—Wôß4ú¿Š+"aÑÁ[‚Ȩ@?¬«Ù±êaVZRü²%á¡>îÎvVfsfN¬§£É©?DP¿bªß ý÷Äè³Ç# ôUÆ‚]ýÉF@ßÌÒÆÁÙÝË/(lábê©Ùk×âíØ¹«¾q?C/ M+4ïsU(à‘°×ñR8ôŸU6Û·wþy £í5Ap°©¡®¦²Œ‰•ž’ |=]m-áÁ´)“&jSœ£G~Îòì úŠª¾€þ; ¾œ²/”CÚtýÙu1 -9Ÿ £G1›˜[Ù9¹y±=·lEâ*X9· qeŒ5wúÜ…Ë|Gdw]sÄ@÷–Œ9þ® kîÜiŽý&̹ê -ºì,äÄËpÚ)e7'{k S}qj˜tö?’V`öeÕggœSÿ¤‰¿ê×ÒõMÌ­\<}ƒæG,MHNÏ^[P„Ù†û½¿ùH yñòµBAûþÞƒL}ý®Ò ØKÅïL~ç¢ÿÐïTõ™ú·o^¿ -+¾þªåHsSÃîÛ6®ËÍLM\¹0$ÀÛ͉œ õµ5Ñ G1%úÿíEêÿÑyÿþï7Ðg PŒþ}-B:J …½³›—_`(Ðgdç®ÛX\²}=ê’d5ÒCzežËpÿ^Ç]¾B„³§)ÉCèµUÛ¶a¶Q ŒY1?-ÐÉÎjžÉlh §3a<ë€Ã‡†ȳ_ße«þ;‚~ö™`ŸVÒÇŸP٧󮬪®) §Îœƒ‚èàâá²€n{rZfNþ†MÀb'öÜA®#ž£ËÎwD.cñaQÄò;e,̹vü­,dì9:í,et`åòZt8îNv˜tsfN›b G›NÂþ§ïûrÔïM.¥9x(~[eµñtõ 1ÜæYÙ;{ø†…ã€'¥eæ®/¤û½»aßAnµIÏ7ý¬÷ÙßÊÔ—ÿ™ïéS‘øù/0ÿÍ¡/¯ê?dý°¸Õ~íÊÅs§ÛZQ÷Õïª./-Þ˜Ÿ³zÕÊåÑ‹û{¹9ÚZ˜Ï02˜¨­ÁÔ6„”PRTõ_†~ß  - Q0bÔhµq<úÀÀÚÞÉÍÓ70tÁ¢¥@?%=+wqPQ]»gožÑq¾^oÇ;’‚ÀÐBèwWÙø·Ù®]¾H5ØW¿{çjù9™©Iñ±Q¤»‹ƒ œ9Õ* ºªò?F2 -0Ý”úAä)[õ‚€—~âÀ…¸{ñ^(ûŸ³¨5µõ ¦à¼Ï³´utEC Œ^¾’r^_¸¹´¼ -±©™Óâü¥+×Ûoñ§ýþƒº2Ÿ±„ýÇBE£ÓγìŸjûŠÅŒEWU^ŠãŽœÓ’Á>®;‚öpu´³271fìëLûÊ2ì÷“ÇþŸ‡}õ{Ȫ?Ë êÓÄpÃ7³´sr÷Yˆ$W­ÎÉßXŒ k÷4àÎ7—#w¾;8õ -êË‚ÿTü={&&ÿEæ¿ ô;Wýg¢ªO‘k¬!ž:q±²¬dÓ†¼ìŒ”„¸¨E¨‡ž®€ípʤ‰ZcUFÔçªáЦþ Ðïù›èƒ‚ih€æÖvN°pÑÒ†u@T‡ªÚº†&”Àc@ÿì…KWùgô=#9èÿÚÈ<úüdã88ædÛqœo”À$Y¼q].:`B\tdxh * #vÛÜY `¢¶æ85JsøÐA|Õÿ+_õÿü®Uý.e¿wä{÷áË>Øg³Nu,ÄÉF3f›˜[Û;»{ûÏ ó¾jõš¼‚"êˆ4éia9KJ¢8æWtüm—ÆŒ’ÆŽ;å|ª­“Ž®{Mey鿢‚¼5`Iƒý`G[¬ºNìÚ‰ý^ -ʾ<õ‘&§þœð1ªêtÁf›ZØ:ºyù/X—’‘W€šV‰ó½¿™åˆ’víÆMü®”#+i?2õyô»€ÿLú=—!_Žùoý礅LÕÿÏonßdX`1iÞ¿·qKÑúµYéÉñË–F„úz¸Ø[›3õuµÆ“úŸ ,Qÿ/Òf(¼—?:ïßùuýOyô•ÕÔ5´túƦæVvŽ®>!ó#–ýä´Ìœ|X@ƒñÀ¡ÿ“_î_=çy?ggÆšHcm"R4cÇ=ºßTB*Ý¥¤{©T]PS!º'¢FÑU)S.)ã~Ö.S -93»®»“3ócÖìîóõþ\¾Ÿo7åæTïáùz?žçåk¼¶3ès4xÎh@8à ÿfü*‰‘I Ñ€rlcH0¨C}Ÿ(9D'ÆÅ’úyº»8ÙS–&ºÁœÙnÓU”‘&§ú<ôÿ(aÀøÿýzò²ÿ¡Dö‘÷xFŠ)ÓT™ .\¬­‡†_ie븖²‹ˆÚÁ¢¦QWZQ]s¶ž“ÄÛw€ ^%“ˆ”{ŸØ%t<ö4m:Ôû .險 -ô{~îÌÔä¤xVð~^0ëì¬}C=mJÃŽu<-;”üǾ´Å¥ÔKË Yõç.X¬­oŒG’˜mÔß’V«oÊñÊõ· ûm÷Y{³;¹ êKÿk¼‰/ _>ïwýÿv“QõqD¤÷Zn0ij5U`E~nvú¾¤øØmðCoWg{K衞–æü9ŸÏRcœ`˜=©ÿFèéýù<ô—¯²±[ÿm‰ŒÞ @só ‹Ê*‚ó0@@¿±ùNk;¯€OÿõïNÜ;!p@TÞ úŒ·¿E{c³ÁQßGÌJÛ·;~GTDh¿7ü³mŲ¥Fzhð¹À€*œ(ðÉø±Š -Õ 0ø¿?_wÙ籯0Fq‘BI‚¨®Ù§¸M-,©âÝ<}CÂ#Ù¬Ë8€¬‹IÏ5\¼Â¢¾ÛÊ:1i°B²éz ºë¦“&QǰßFQß¼U×€‚¯BÖy¹2R€}„ ìûzòØ·0#ì/^Ȱ¯FØWfاÃdÔÇpSeQjjéQ’Îë=|B·ÅÄ%%§eÊ+(.?I£íò5’}ú±,F’ýNú¥ ú=ð^Fü÷Èüÿõ|D/^p‹‘»¡0E$q¸~ùÂybyqAÞÁ¬ÔäÄ]1‘aÁþ^\œì¬W.[j=œ÷Qª2qbœ"¨ÏQ⣡CýþC_y*}¢€¶ž¡‰ùrK;Øß/?â@ôÎø¤äÔL€  ¨´¢ªæ ÍEQEèË p ,b$DŒß×q¿• HP®öT%ü/ïPvúþ= »Hÿ|6º­[C05Ö×Y²Yj¨Ï ÐpciÊ«þ°‚~7ì3Ù)øÈ?åj^¢¦–.å½jµƒ³ëêø­Ûcã(mì:H"ÃÅ¥«ýû­¦Á‘µ°êúõë°ßÉYʺ ¦††gaŸÆ®CÅ#í vÀ~Xp€¯§»«³£­õJûóhÛ ìw¡>Ò¤ÿËe©¤Œ(i·-Z¢kˆÙfmçä²ÁË?(,"zgÂÞ”Ìn´Õž«gí-‹QýŸ)Húæ÷|‘øïƒù½@Ÿ?!a/â‚Ú[™"^½ÔX!ÎÉHÙ“°‚¸ÉÏÓ}Ýø¡¹‰‘â/ŸÍ(&sÔWzÔïú‹Ð?áSýiªê³>#è/&è›-·´ôA’¿ˆ¨€~ -ì/¯àxé‰*púè{»åwAÙ½5ôŹÅö+ï–&L6äX”—ûêpN&a vû–Í›ü¼Ü]œV¯Znnb¨K³0]eŠÒ¤?±á¦0šA_Nõý×À“ÏÇ>’]q,—9‹¬XˆÄ¶hyoÿà°ˆ(ZviY9\`Ø}Ã["U<,ñÑÂ…6‘¢ß³Nhx.ìgO„ŠGÚܰöOh¿ÇÊû&r¤ö>r0+ A’ûù{{ Iô÷²¥FÌü0ÛÔU‘%…É«þˆá©úÝdŸóCŠ]¨?aâ$%Æ -Ù´ît Œ¹½“ %¾-fWžýhùüÂâ²ÊSµç¸’ol/dq.È û’´û¨xñÓŠÃŽ~-°ÿ ½•¾íßöÏÖžb-ÀÙ¶öCƒ0î¨ç û¦ÆºZ”¹ˆýICûrÔÿˆ¯p48E‰Ý6m7Û´õÍØj[ïá@9Æ%&§¢½ Šø¯ -²ß!ªZ'ïj$k/eÔïÃñßó{„þ+¹ûáÇ"¯ú×.]¨;}ª²¬¨ ï`Vjrb\Ldxp€·‡«³½¥…©‘óC uUÒC¢þ…Q2ê0¨?`èÏž3O€>ÄÏÁð Ûº=Ї2:rôXIùI\O=s?:ŸVúd 8ázx ô©ú¯Õç1Àw·,ÆæÆ›(ï‹õ˜l,GR?0 :2<õí¶n%i¬¯³d‹rÆtúÿ¹ïχ)tøpS}1}‚’ Rîdˆ“§¨°ª,´t áˆD ¬;¿M¡,òäÔÌœÃ_£š?Swá’/=yÊ,ñ­–ÌÕèÛr²ö€ζj¾¶º²¼ãŽz‘ÇlÛäÌiÞ¡éö5 û2ì2¤±ßõDzG’ꬿµô iµ¡¾‘cP(6ÖÞcULöi³ 1þ(/û<õå™ÿ[ÈgÌï ú/¥[±»êWW”âtr2Rö$쌊 òórwYcg½rÙRCÝ%‹ÈÕ¦«(+ábÆñÔIÔ—ªþ =“B&}-]Ò¾•V ú}‚ˆ$~é0ÜN9”áìy‚>Ð|—›Š"~bÇÃNçMЗP€QÄØÒÄÐPwúë“ 9™){ãh³mòóÚàêì€ÑfnbˆÿÏV¢dªÏ²=Šûû#FtþàÍs ¯WÙ=†cÅŸ)wuÏ¿ ®×72-ì×®÷ð`óîËÝûÒùÑã¥Õ5\äàE˽6žTóü¶ãï?ö_ŠØÿ‘lÇ>ÆzžÃ~MueYqa>2Ǽûr'°¿ûUïd¿z•€ýRìOÚØ—†)R_àJÊ*ÓÕfQXm¨o+[Çun}7oÙŸ”ŒóDÙ¿‚ònllí1gk2Ù¨/…~_ć̗B¿—ãyö„9"»Aõ‰…PÄ´}Iñ‹@ßnkm­V˜›è`!䇌Šcp.¼J©ÿ{§ýÖïí¡ïoµÚÁÉÅm£? ¿-Ð'ÀûŠË+«}Nü›ï´J”¡ó¹À€ªŸ£¬»´Ýka1^¾pþLMUEéñ£GÈûvÇÃÿ÷XOA¢¾ô´‘$ú[ŸŸ Ù¦Èý‘âÇÿÃà/ñ¿îØÉ"c°˜1“9"hal¶ÜÒ’èîéê>;7ŸçEýÅ+×oÜd™s¼xúL°Ä~Œ»ß¤ã®ËÏźã|¾.›w uzYQa~nNfj2°I]ïí!þ¾Ž û¨ûa„}n¬ÁYs³mê´3iµ¡¾M-,mh´yû‡EF#Æ”Œ‡åe¿I,ocçóŸ~f9òØç©ßúÝ¿ò»c~/ЗŠ8ï¿ë¸ßz·¹ñ&§úµÕŒLwÅD†x{Àm,-p3Úœ Θ?œ8çÂé¡h‡ƒúý…þ$ú0Mú+úoÿ Í[}²¾ÌœÃù…Åe•Õt9€> Û‰e;Qú¯û†þäc»»£½•yÅx®ÚWT€òNß¿'aWtdxH ¤o=‚436ÐY²hþü}êo|ý Tà -ôi·uQýß;–÷ù¤ð!¡B0ÄÑ -}‹)*ªj³ˆšZz†KÍW¬ZM¸ðòÛ´ /.qo*b§wòëÓu ¬ê›8Mü់óŽh1€Ìö_ˆMϰÿöËþ­ç{ãÇÁfç:rCn+™ÙAJ¥M’¨¢ÐJ!EÈmE%E­Rº¯åvÆÜUbÈ\;LņkGn~صë¼^¯÷ûsóýö-Ée|µ÷¿ð|¿ÏÇC¯bUϱŸ]±ÇÆDoŠ ìâÄ›ãŠÁöÇšö¿BÑ·ì+RŸEÉ’„ÙÖ«7®6¨oÊG›ÓthoŒ14<”m/É~¶XÞLØî2aã·Ë‚”d_ úõC}“Ìoúøsô%G,¿|Vb)WýøX ÅúˆÐ ïîn3œ¦LC41Ò'Vè€& *ȹ¶}¨ÿªÐÐÿý‰“§ôçÌ_è Ð_±> -®?6>)%-t¡¸”>Îå -ð…*€>×¾Gú"U}Ñû„¥î¾Ãº»üÒù³ßÂùçÅâb¢¡¼×àdƒãŸ í=y¢µ•¹‰¡>Õ·. ®6%ÕoÓbU_•ì ØEDX`øZ:ƒCáƒ$šZ .]\ç %‡„†¯Ç‰·/195CÒÄ -Qd‰¯¸ïä©ÿï·Ç4ðì_Ãë=wæô‰oŠòs²ÒS“¡í!xÀ~hÖ=bß±om…Ø…ØÜ2°¯@ý¶Bó ûö×ÖÅa´™[ZC{cŒ‹|å²å] XÞ¸Ùj°öÆŸ*ÈþË ÿ&™_ú¿uAø7·G<ªŸËTLÄukV. ô[ä1×ÕÅ`ai†8|ØÁºÚýûjö$T~ø~P_ úmêC¿“Jèsè;M‡?ÆŸ&,"2jktL,ȇ>»~éßÈ¡ÿâåЗ•÷s®úxþŠÝ}îÌÉc%¹Yé‡1ÆÛèöƒ|·Ów´·€Âg ‡AB}÷ë£ÙãZmè·lÕˆ}2D¦ˆPú]>f´Ð‚7ôË£ ñ-­mì¦N›1ËÝÓËñbóö]’&çšs¯®••=‡E“c§…'–=äÎ&¶=÷[uÉÃÈþÇè û³ûSìl8öGöuZöëSÿ#êo ²{Í>˜#Ž6#S‹ñ£›ûo’ý(¡¼³s KŽ‹å-:¶·x¿Ïe¿!è¿Qä7ý6¢äˆE̹ꇅûû "N›jg3Þa†8P«_DŽŠÚ1ê·Vsê7ú£MÇôíúóxãåãŸU€ÓONMÏÊÉljˆ¿¦¼ò‡~u-û5Üš }ÖÝÕãí[7¸Zqùëî¼ìŒ´0>ˆqCDØ ->¹³¦;aŽ–fÐÞ´ÙÐö4éê;C³ÕÆU_}õL³ùOþ øà²ß¡“Æ¿‘½z÷ ­K¸Ð72k•ïàÖ=X0a¿0.øðÁÄ}=ÍM8b:â)戨ú»IõW-[iaoû•ÕXC}‚bï^¢ -~(W}uüMƒ~‚~oX†}¸úQ}+k„¾‹+Ü=è^p@|/1ùpúü3¤ -´oâéÿ\]{Ÿ/ĺWS>a±‰1JÝ}õ -¶ÓÔÝ™ÔÝ1è{°Ø–,öÆòvv€Éfe9ŽÄöÖÕG߃F[§‚ê Í65óµž’ì °øg{Öûݨöµt 2l¸ž±©Å¸ “ˆóúPú\§gå”;ùíÙó—¨ð‰ñòà_/OwÂþ$ö?o9Ø -\èoªï®l´a{SŒf‚ìcy-_)nÝ)„s -ŠYŠeW®^çØ¯½/Ž6„#8"©~€ÏÂùœ–fÆ£õ†2XW›bWb…ˆ -9õßvÔÍy2æ7ýn úZáæ%èÛØM!è{zùáÙ£ímßµ è^^!A_þe8ôŸ°óèÿ¡túÏžBŽ,H¨ïúrè«wƒ¿ÞkÕJÎ - rÄ5:SñSïÊ,qŒ™%òÂiú¬¹^¸ôÂ"6l†ø÷HIÍÈæé_¸\Q)h"ͼ&g߈¸aãÓ ß æØÏÍÎLìÇíÙ Ø_ Ø -ð]äéî6ÓÙѱonb„cOûÁ¾ú®>ê·ý@¬oʱG/joˆq¤¾!n6Qöä)¦edç–câVÉ7»á‡ü†%ì+Èþ; }pDÉN”ççpÁ‘«þ”IH #¦ˆµhˆ5DVH~¨¦Ÿ£èÿC ú½TBßÑe&Bß ¿ - ÿeϾ€~&@¿¤ž'ÔÈ>ŒÂá¿ìòr|üèá/xw‹ƒí8ž}Fj2u÷&èîK}yPŒv6ã-ÍÆàÉÃd¨ÅÚ›I£MêïÖê|é¯ýêɾ@ &‰ˆ‹Þý %ÂÐ7B^Lœìà ?4qɲ•ØúÑ1±ñI‡ Xz'N÷ýEŠyq¯¦V´Äfí<~Ř>=ê|®nTú„ý$Äþ¶MÖ®ìûð?Þ°oÀ°¯Ë°ßãýž2õ1HÈ‘6¸eˆ‘6ÛhcVÞ ûî”â*…óŠ ¼¿cå}ƒ°Û[T7ñŒdÿÝ‚>Ñâ@ÿǪëäˆçÎ%d.÷áoYª¨úæD RDü'‹Ná“ÈQm©ßªè·“ ¯!‡¾A„ýI}w‚þrø- ;úð]²è_,«¸úà ‚þ½‡ôŸ=—9«@Îþ×µ5÷ÄîÆÁv‚ ¶CIñ±1Ñ[6®] ݽØLoÆ4ŒDÏ•·®6åíM›­½8Ú„$[¬êÿMö?%‘ᢧ&Y"ñÂÀØÔbܦ‰óúø…„†GFmݱ;j?ýHNAq)µ~ùÒDyþuûMŒ_ÀþSYé×°3¦Ö§PŠØÏHKIŠÛ‡ _°ïÅï6±?áµ°¯nÿAH’)Ô7ooŒ NVÞbŠ`o¡áë7mƒ;N¤ó‹K©¼/ãW í £MÂþ‹zØÿ©ßôëžЗÿrD¸©¾…©‘©¾vÿ>¨ˆ] "+ø÷PËŸÑDèwmúÎ3ÝÜ=aô×nØ Ÿ%.!éPZfvnBUý–ŸîÜÅ£ÿEt½f]=+o€þý¡»¯”ã`;Iƒík>Ø¢"ÃQô »ç¸º8ÚÛâb36Ð>ŒÊ»ÏC_¨ïÖ-úõÿÎ>ÑpÁ~B—»Ò“ß§Ÿ ý¾ÁÒÄ)NÓgÍõXä¸tEXcïþÄäÔŒ¬\èýSg@Ë+yíW×Þ'KTl}>õêç¯Ôú/¤CþU²·×ð9ös@ßû;Ðßà”ñöDìëɱßSûðڽؗõ7«o©½»ðͦC²?J.ûž^~KW®†KÞ¾kïþ”bA±’½)aÿ™ û¿×ÃþÛ…¾Lîüt›–!W„"ÀEº„‹PÂÅ<®úVæc Á†~†´`ŠØYC„…’ê«ÙÇh2ô»KÐÿü ¼vÔúpïþ}ø*pð»ãâ“RÒ2ú¢"T*)‚Ìš}QõIõØÍ߯­þ™bÄÁv[Â` [à šGÝm3ÞÒŒÄ8Ž]“nsüW{&xTß©¾ -ÙpÁ-‘ñB[WÐDs+뉓Þ‹—,C`l‰Ž‰ÅOy4¯è›ã§¸&Þ¼uû¿wû²Þ.Ã~Ã?@ÕØ¾/þÊrô7vÊYé©)âcá–ñ€Áög!öm%ìm!Ø—Qsbì¦JöœgΞ·ÀoyͺbŠÙy…%„ýKeW®^¿IíÍýMûªdÿ]€>("ÒâÖM€~ÙÅïÉ9.öïݵ}óÀÅÒ@?¨úÜuµ-HáƒÈ Qøo;èW|Í…¾»%@ßžCß> -œ;XÞý,úú×8ôñâQô~{RW÷Tú( žüªOž•wµ#l…yÙ™i)XŠÂ`sw›1m*u·‰¡þH\lºÚúþŸýúðªêʾˆŽf5:3×8Š„bu0V, Hi -ö®±a5T  -R©Ò+FcA@)¢‰•(Rtfâ¬è¬Ùûœ{ï;÷x¸4Ïgæü ßÞ¿ómúy““MS¸Ùþ_õÉÓa¿#Ó9/´ÉÑ7dèðQpóYM²wvó˜5oÑW+ {ýƒ` b’R3sNà\…{½àþ†6²ÿJûÜÏÿàÞÝrïÑ) ì'ÆE -‡ -‡Ÿ¿×úÕpòûÓ~gì‹sì )ûÝä”} kèpÜɶvãr²q)rŸ÷åk×KÊÊ+9öäÙÿ׿UÊ~kè¿hjlô9-ª+ÊKK®úçÏäçf¥§`= ôóñÞc²b)[õGrQ»w/A  ‘ªºm¯ è÷’Aßš ?cÎ|‚>t<˜ØöCGâŽÂU˜CÑ¿Vt£ìVe5Aj^E_îÂ+Þxé…ÇñbƒšGbä¶ìÌÔ¤x<ØHŠx°‘Ýœím­ÌMÇp7\l½…Ï›?Ù:Ê ¯fQ¾Å'™ :„ ð‚ŽCœý~áÕ7NŒíFhDTlbr~þ´&–Ñ¿Ÿ¶Ä†Fa -”½÷„unfÙ¶ٿγŸÉ±ä¿—²¿Bö»}`ì3ß7ý½¹›Mòy eß„žl.äd[îIO¶€`L1!9 >oÊ~‘ûð}?ÿ§4û¯¤ZEèÿ,}ɘäçegp\À”ìÚ¾eãZèófy¸IU}Òa>-¤ª¾Z ÅÛBÞzýp‚~Úq“sì˜Ü{ð¢ß(}eöýåK¦åÑ‹íÞ÷whŒøwŸ> /9!6*"tÿ>šâ*á`³¶0;z÷wÓ‹ b$[1ò¿7 R“|»O¦ì ^huí†ó5±Ž®\0Öm¢`„EFÇÁÍ—•—† œ|U·)üçc€ì·i öå•8Â~^vfZrblt$´8Xè[7IØwØ*ÅþŸä°O›@;µfŸQŸÆˆkÝ]\öñd³>Ù|üC0ÅD²Ïl‰Ã£M`Ÿì3]hüÀåEù> /sBGä¹À‹pÓ:ÏåKÌ™1ÍÅÑÎf"T} ®#bÕ×ìÄVDµ¬ú,úí¸çÑÿ´Uô'98»2èÃEèè“!QÔ ô…moCÉà ý&èxOɲ߹]u«ìÆH¶cGã¢#Â|÷ÈIqä0ãÁ†ý¹¿›¿Ø4…“Mªê«:U> ö9/4µ$5ÀèGÁcjnekÓ0sîÂ¥+Vó`@ˆOJÍÈ΃Q¸t¥°¸ôfEL¹ùžÕÓ’(çä“9¿?»Ñµ”ý*Êþwßœ쇅úö×!ûófOçØ7'Ãþç ûŸrìwPsöÅ1vPPöñdi2Î Šœ#{²íÚëBk\:ÞlÈ~!a6¹ìKVúÕoRöÛ‚>VD¢Å•KÎÁAxÂXÂ…Ÿ÷¶ÍP –.œ;ÓÎA[+sÓ1¢ªÿ9íˆ-DX¨:æ¶E=mîïf.¶Ž2è«U’oý±ƒÑž÷¦‚ÎD20úýŒ£ÇšYÀBöoÃ,”“³cŠÇþvÂþR û„ý/‘ý~ŠÙçÊ@{µeŸù½Åe¿«¤ìëÀZãß=ÞÜÒv²“«p²m¥Eîàá#ñx³ûç‘ýb8Ú(ûTξrè,ýÛýBDÿôÉœã¤#.`@¶l\»jÙâù³§Oâ`‡ã1Z~Õ§ê‹«¾ „4úí)ú)úý®ýžXìpÅeÑŸÍ¢í.2:– õî"]tÒïýZ}r ¶†þkYôI¸écM5ô»â«ã‰Üó˜ÃùcŠÖ¬„r7ËÃmŠÃ$+ Ó±R)Ò¿»³&¤ÈÞíÙÝVu:*~2e_¨‰0úý ƒž8a¢£‹Œ}ûÃ"£bIM~Hr,/+!íb$[TDèþ}ß¹¯ÛÅÑÎf¢Ù8.E}ݾ\Š¢¿[¦ê«:U? ö¹š¨©%C[GÏ`€Ñ¾'Ú;¹º3`øB 8t$î(x‘—O.¿"Â=üžÖÕ74ûJV€×òï>`¿?ž}ºÖ”ý,d?&*B¾'Ǿ e¼ˆ}è=)û8šû1eŸt:©¿[_òw[ÛÁÉ6O¶•k6lÞ)‡FDÅ$$¥fðk]kͲ_Ïÿß-±ÿ ÏL Ÿ‘’‘p±ók¯õÐ Îéîæ ³an:vÔð¡CŒÂdh U¿ Ã…H U‡¬ôk ýΰÜ-¡oï — ¢¿‚CßÑŠMEÿÎ÷÷è¿à†C -}Å{N£$èC’tÍ1ȇ÷¸Kr,ºvùbÁ™|òwÇECµ ðÝCSįÛÝÕi²­¥9,8 o4À@ORì‰)~Öµ‹–¦øï– ¯>A¾«§!ò‚«‰Œ.0FöûàÈôDè‰Þ{ýƒš^œ8uöÂ¥+…d àô#ZHJ@só/’qh™ý_å±_'°Ï·9a±)û~>ÞÒì[Oœ b_›cJ]×.\Pö™Ï[|²17”}þïž`i3O¶Ùó/[µv#¤èã,o±å²ÿóoÊþ¡U\ B÷.6oX³ò«EófyLâ`g %qôˆ/ÿ1ˆ-‰BÕWý¿ˆÐ7V€þv}¦H.ÁZ\rÒíÈ–ÿ¢ô– å®™nùó¦Fìvú5UtÇ ÎžÊˆá` bç½MH‘|ÝÌ×Ý—~Ý4EMºÙäï¦1ªYŽïðÉ”} ¦'öÅžˆì›Œ3ƒžè=‘cËöÝßìÛ5f"-3çÄés€‹’ÒòÊê2P›ä Dë§Ÿ<öKØ/‚‘¸pî´Ðç"B9ö7Êae__Wçƒd_ödãË~IˆÌßmnEN¶s,Yî‰)îò!«›È±_Àö9U²ßvôKôA‹ä„XR| kW-[<Ãq²%ÌÅHIIô[®új2 -o‚þ@è¯ãЧ…z]EÿŠúuòÐWfÉÅ;NÐBš]MuE9æˆ~"'3-™þÝþ{wÁ~s)Nâ(ùº2_7¤¨Å¤¨ž1¾Ó§! Ǿ×{âhè 0lì·A ÿn kr²Íœ»p)¦ìïõ 'ì§û§Î\|/Øô¯óèg¦&'ÆFE†Ò¹X»jù’sf¸»:ÙÛZ™Ó’8h`?ý/úöaJ¢¸ê \¨:b%‹~;ýYô»ôÿ&B4EßA -}D?"*† Ÿ‹è_¢èW²sÑôЇ$ŸÕQô¡×•—•ÐOæO?–‰÷î[7­ó$)Âr“¯Û¿nCòuÿ~ÝŸÁ^k*HQmr|·OCF{ -ß±üAß/ô`6† >ŠöDg7wN@¯mÞXÉ?š‚]¸¸|­ˆT»?ÜøøÇ'üPü„Cñò¥Ò3CñRÄ> e¿†²M–}_1û® ûÆŠÙÿ„gŸŽH;µc_AÙïƨ !0· ì· žl³æaаÞ;€ý ˆo<ÚÞöÛŠ~EÿbÁÙS€~Z2j臑p±pîLw7g‡IÖ\I4ìo «ÓBIT³Ž(‹þxô?iýÿq_/^5§kÀWXŒå2GMW‡PR’Ü0ÑEMÑM×éê’Ür+¢R!÷KTRB©”ä>55)1„q,Ëœ3¹kœµfbqÖ:Ïó¾ïÞû÷Û{ÿ¶-V»ß¼ÿÂ÷y>ï÷óaôa»ËÎ],¯ôënñÑ—Öº–AÿOŒòÝ[n­Ãý~üo\ï+?þŸ7l÷±œ¬tŒqcb\LԲŘâ,òuÛà× ‹m2÷Zúu÷ ]Žl¸ ­é€ÚÉSCÚ¿ÄùÐÇžØßx°éP‹áÖÐhO$`Ì[°dy4©‰;ö¤e>r¼ ¸¸¨¤e ñÞÊ>ëÌŠV°ÿ‡ädì?~ô؇2sAÙ/ÁP‹} Æ~_åìwVƾ…ÿw …8V|8þÝ6S¦ÁÉææå† ›”1òÙ¿¢iö?ý³§‹ óæ-vlÝ´;"räïã9ÓG‚”DK(‰2/z©(‰šŽX§%‡>+ú|ôu` Œ$èµÀ"0îëIŠè¯•¡Dýû8¤Ô½à¡ßºõ†$›i’d»!ȆúÚšËäó>Y€•.mÆ¿&zù’ó EoOòuO"_·ÅP¼×„¿nq¥ØOKý.L 2!¤ôƒù2t˜•¬'zùÏ_‰51)%uçÞ™Ù¹yÈLFõÕÚú›·ï?@,šž<{ñòu³|x/8²ÿ¯¤ ¨ÏþNAö¿–cßÈ&D‡±ß°Ï¦„‰¨ê¾PÙç†ØŸ„Hþnr²¹º“ñ󎊉K„á÷NÏÊ9–_XÒ.Øÿ,èƒ)I ±Ø‘‹/7W'‡iShI„yPé…t 4°:k>ý.täÐïÇGÿ›iöÓ]}?>úÛ$èIпèß¾Kv[‚~³t"ÔF_²Ýo[hÕÿ­ùõËÏž4a’î7Þ¾‰èÃjcŽy¹Ù™°Ù©)I°Ø+"†ÏÆ]œì§N&_7ç^ÓÃ&×SðëEŒmòø=±í‰0%8#Ú:p õZ0ÈÄÌÜRÒ 9ó±&Æ%&o†á8ˆ-±¨¤ìÜ¥Šªê«×oàh,š¸“!£Bõ`°ÿØobì7û×á -DöOö³2ÒT²Ýj²ßO‘ý®bf_EÙç„8Ðdˆ9ý»ádsüv†;4»ø¼áfÃá÷nOì·ý+ý’Âüc9YéPA‹„¸˜(ìˆÀ…¯—»«³Ã´ohI†Ó@¼0ÐÃYöBÓ«ñ„Ñï*E_[Š~c,2ôœÔAÿʵ:²Ù>z¬}în«¬úÒ,¥îÙS‚þ?I¡ƒß»ªâö¹ü£Ù‡îÛµmsr"lKÍŸòl5¦È¾n¸×²{.twºÎ°Íx_·Rl«§ÐebôÒ†!14ÂdjfÁz"‚ááíŠ51zMüz8wïOÏ:r îÀ3çQ lw ˜&Þ¨&ûïåFCV`6$ìß$ìÿPŽ[^”/ľe²?‚±ß_ʾ6a¿û_‚ýJ.¶žc!ûÆôï¦ìÛO‡Éç 7ÄÈc¿HÆþ ±ÿyÐ‡Š˜œ½| vDäb†³£ídÒ†q¼Ð¥“ÐMyÕˢ߽C_ÐïCÚÐŽÃÐZô›>ú%ësäÝ;·êp¯/?s -Úä¸÷ö-×ÇãÁ174ÐÏvÚÑŽ}Ýô^ÃõYˆü{MT_w›=-öybèéb5Àf=q4Ãe¦§O@0ÔÄÈ«`@6mݱ'-棠¸µ¸\S[×€XÐJ€V4£¿ÿþ1gàŸrì¿bÿ{ìâ{ÌöI½£ì1)é×ÇÊv¯/{ÒAá³ßQTì+/û"ìz/Iˆäïf'ÛTLÑÃÛ/n6ˆ~o8ÚRwîMË€ï[óì·ý2ô‹x诉^¹0:¢©€þÄñ8 -æf0 ˆ¾!üÿÚâ®ú\ô;*A瀠oÈC}oAôK„Ðùºù7œ¹:§ÆbC–ï¤è7Ó(q­1ɆºÚ òLéÉ‚ãGgÀŶuÓ†u#laAþ>ž3]¦ÛCŠ’{͘Ük -Q)¶áã‹Ñ‰ŠÑU&†öÄM†˜[ZA50œ\ݼ|¡&Î_´tåêØ„$h‰{dfçæŸ>‹RS[óv#α‚ŒÇY'hût<¸ìß#ì_U‡}'dw}8‡}Cʾ¤¨`¿½OŒŠ¯+ž.„HÿnSØukÊ>®º§·`(Ä¿7mÉ›·)°M#ì2útR7''Ư‰^¹pþœìˆ3ÉÝg3aì(øÿII$^Àà/HKì$®ª¯¥úº<ô‡ô'rÐQ…þýFŠþ¿›ž>SоºkMÐÿƒ–9ú¤ËÕ×Ö\®,¿xötqa^nvæÈ1%)!vÄ[€¯—›«“¤8žs¯õ†{MbW1†ØÆOAŒÎ<1ô û0(¬'˜8:ÏpŸå:7bñ²¨˜8h‰0#åÍ'#RQU k±‚ ¥¢¥åãJû¯(û¿°ZðAögcÓ±?JÆ>)yzº<öéaÈÜï ¢º¯ìëæ\l,Äädn=zkxnž>þA¡sá÷–cÿ²±\Cì· -}eg_òúø5 Å¢ùsBý½¡#:1ô­a LDôÁ É |Á>~1U}®ù$æ³C¿wŸ¿SôÍý±Rô= úáýXôaÐóŸÖ¡a¶Ð¥¦UîIFùàþ]Ò䪫*.ž++)Ì?š}èà¾]cbÜê•K!F<ØÜg8;Â6“¯[z¯‰>Ķ~ªŠ"Ã{¢1í‰Æd[»éßB9ð -›·`Éòhàbã–í»÷§£'O•¿TA‹Á»?3öŸ¿x%eŸ{ þ¯ì?'#òø‘pÅ“±¿€ÏþDÂþ0Ê>Ì -ÖgãÛŽýσþ.†þJDµô úÀ…¥¹ž{¤$êIãcÕ×â¢ß‘‡~WL_òëëêcþ}S@ßÊzôØ l4€þ»·üè?zˆQ6Ô×Ö\®,¿p¶´¸ /÷p&üÞ©)I ±«VD. ‡çKþî©Sl&Œ5Sd÷šž®Ž6†(ôsk:¦öø´Ø—E¬ ú†À>ôD;ÔÄiŽÎ3÷~îu Zƽçìû_x¾^÷óuÐ/ˆƒ>o"ô¿¥è?Bÿ§‰ò‹>[â0Laô‡‡ôßëîºÓù ù¾›êªÏ–—@9)Gáó ‚úæ¶Ç‰üÝ[6m4Ô‡ÕWôa…ååÄþÜR°¹sö&.Ф(,U"=&FNCcS3˜[{gà"<*6!9 ´à—VTÖœoüªõr[û d¿§¯pˆPAêÁèØë e†ÙÇ­?q,ëó”£ñ1Q"ìo%ìë1ì¯$ìCÝ“ç÷=æBdÝ—2öeD¿n&Dy²øª´ìiëêÃÍÆ°ï„ìûRörÙ¯Ÿ ög -ý|ôCýýãÑ_³j%[ù^ˆk‰R¹}b>³½ì'' LÐÿ„ùó ŒŒM·lý”¢¿Ïƒ Ÿ”’ž•;ú÷ úßô_£ÿÏé£OwùõØèË‘Ÿ=Å,‡‡ûûz`“oÞhÇ$Ï×T–—ó ÈÔ¤øø¼ýz¹»:ÛÛî´‚ƒÍxƒ¾®6ûuÃÃþrC”¦Ÿ{îÞDE‘VÚ M8IMÜnmçsÀ7ðPDt”ĬÜüÂSeU0-Í­WÚ®wÀ°Üííü–aÿÅÈ«Ñ1Ñ~ðv:ì‹ßûÉÙòƒa؇ãÐÔØÈ@gf ªÊ2!öÉàpê¾ûù²ÏËÏ?OyVƳ?6ûç„Ù ì{¾g½ýӭаðikj¨óÙWœ˜ýùRÇ>çëa9e_o6ˆØ·¶å°ƒìgQöeógýYBßm“=E“úËý%lì 0ô߉¶DÉÏ›ßM„¾¢} M@ßÐÈÄÔ ÑÇä}ÿ Ðßý·œ4Ù0 úOÓ5î%è_¿våbó…úÚsgÊNæçfÁÉq(?oG;Xà-£žŽ–†:ýºqy!JÙ¹6§OLQä‹!'¯ `àÜš¸ÁØÔÌbœ‡N®nžýƒIILÉÈ9~²°¨®khj¹tØïÆy&ì †Ó`ÿßâØ‡q™Œ}މܬô”¤øXdߟ°ïdoKÙ71Âí§ì«©b] ¥G‡6Qöe¤…}™ñów+,U†}Ü~Ê>»ü”ýpû¿ºû³Äþ  –ýïýú¶Ö€>h±A½¶&E9¹ñ„З&0D‹>}ÌœE_ASWUcÑ×'è[ðÑ?àã›”šž=kèÿG<ú/q‹Ÿ<~ô³ìíîºÝ Q^½ÔÒÔP[ Iäe§§Àïäçíé†ÛŽm$F]­u¸¼ôë–—ù¹¥å\›ë'®(R1hOT&쓚h€ì[Zí´µwvu÷ò!%1>)Ùÿ¢¤¼²¦®‘ŒÌ›·îÀÄô?ö¿ç°ÿ÷7È>™bÆeÜe8Eö¿$ì—ØŽ ò‡‘a›…Ùf(}ë ûdŸ -°H–Ã>㾌TÔ}¡ê÷ÿbãœlLŠ«ö¹ì{ûÎ1û3‚~ ýpú´"n ¡Cæ+0sNIn‰’Ưxz±sП|‹ùÝíÍ sŒ†‰è=è¿×ÝuçÖMˆòÒ×MuÕ•åäñœŒÔ¤xø½ƒ¡µ¹»:ÛÛî´²035Æá`ûdå -þ×Í Qä\›ë¨$ùÍË> œ58:F&›Í-·[Û9¸ìõ %1*6!9-óØ ^qiEUÍù/¿j½ÜÖNÙïëfzÂÈËѱל‰ù×ôÙ3=ö³ÓS“ý``¿›+`uÁœ²W"é}+–«(Ce@p€8u_ÚØŸÏ¿ØìË ³¯#ľ«(û“”¾Y`Ðôõæ¢oÌ ¿šp½ýÒ–‘üª/}7,-Í›œwŠJÊ*ä¾[³vFè›[lÛacçàìŠè úq É©ýòwAÊ;LÐÇ4ýÑ—#?>{ -aúƒý}=°À7o´·]n…ý­©ª(-æ8–™–œ¿·—Ç^gÈÑV×È`½Ž¦9ØTø)rC”’sM·(ÎçEJ„}ðBKGÏp#r£ã¸gjq(":.°ÈÍ/G;z±êA]S§è+q¾n6Dé8×$ãqçˆ)Š0ì#K•hM\»N[Z¢)œ‰;ví†+ÑÓÛ/(4ò`‘žWPt¬¨m¸Ðrñêµë·ýû86‘ý#¯¸ìOsh&eÿ/"ìóòó²3R“‘ý°à‚aßÊÒ0Уìª*p+*òÙg%f_ÒÝŸ7û ÊH÷S•Dögýqè›BÜô±#*°èÈDýžt€1®èsÐ_@²fÐW„%iSôõ ð¸3·´bÐ÷ôö  ‹<—˜œ†è"úÕ³ˆþ/\ôq}Ÿò··— Ë{±åB}í¹3e§‹ -ò²Ó!É#‘¡A~ädÛ½kÇ6 D__Wków+ RĞƆ(ñJÌŒ’@ 2E²‹`† 7(#û0@šÚ„ 3K«¶öήî^ýƒÃÇÄ'¥fä?‰VT×54µ\º -“Óy»«»çá£ÇO~xFØgæf¼3Å>Q öÜÙò’âBÊ~bܑȰ`ßÓE»];­,·Röuµ5×’ ¢ì+0ìËrØçh Uì³°·(ûZÄþÜ ¿ø#.ú¢-Q²3 Or /Ëš ¯F¿xm]=# ¶v×nG—½îž˜vØaŠ~N^Aaq)E¿yjè¿ëö2i’å}òøÑC ³·»ëvç7†ÆÖÒÔPW}ö§‹NÏÉHMŠ9ìÐÓ‚„­µ03Å‹MªE©Â&E\Wnˆ¡½ñìÓžH¦›x¡Ç"i‰F&p*‚Î{=¼|B£b’Ó2Á -h •5u”Š›·îtußë04LÙçNŽ`pÞN<8☄}p Ù¯>[^Z\X—“‘†ì ôCö]wà Œ ‘}Bšêòeh=™9_÷¥†ýùÓeßyÙÿÐ×Ò`>xe%ö_È/‰Òˆ¾pч˜IÎd]}¨i°°,ú†F4j>ú~˜õ‘?$~––‰èŸ*-¯ô/Ì<úoÅ ÿ’Eøoúïuwݹ…Y^úº©±®¦²¼ä‹“Çe¦%'ÄF…‡øxaW³µ¶²4ßlbD>ï5«>VSÅ¿›®+©úÿGÿžhQü=‡}âV‡ z†7áÙØ9ºìÛÀ7ðPDt\âgŸgåæóŠK+ªþtïĶöÀþ_{úúýï¾gØû/ûõþåyÅü‡´jt¡,‚2™Œr×Å]¹ -³„€€paAÈB¸ -B€‚€\Q0QP¢ Vë%¥”:ŽÃ8A­­hfZkg’LÏyžwßÝeQ©,ò’ñù¾ç|žï™‰ýŸæÊþ_ì£'O ûMõ5U”ýÌ´ä¤ ,$ˆ²Øn á\$ìÃAw@ t™ºOJ &ûw_M„Ø×å"ûó†þ–¡ÿ¦*ú¿â>úEôñs§1aKCô×[ -„¢Í¶$h‚~PHØ&MÐ/Fôýö—Eÿù«; ý)š&AÐÿîÛËÏöc[ë8z¸¹¡¦¢$èÇÇÊvlðóöpsÁ EV>æHÑ×ôW°è/Õü¹:®Åð4Ë> ñ.FCäb‰™…%²oï(qq÷ô,¤Ñq `E°_^UÛˆTœ8yº·ÿ,ŒÏaŸLÏäÝûþñpêÑcfxžj—ýïýs”ýcÈ~²_\—I0Iý?Zím­aŠ,¸ û0H<%ûôl$$0îsŸ}õ"Ȳÿ›¹²?7 ¸‡¾îŒès ôIÀL=ƒˆ•èóXôa[×úV"k[{GŒÙËÇ/ЗÊvÊ!çÌ=yŸ—VôÛXô/ ohý§to)úîßÄ4oŽÝ!aö÷žÆ®v¤¹±¶ª¼¤pïžÌ´¤øØhiØÇ~>žî.Ç÷mİ®f&$GCúw«¦8íç^è¸Ç›‘}œ&Æ ¼ $( …­½“³ë‡^mÝó a?¿¨´¢º®ñÜŠ]§N÷ ö‡GFÇèüLÞ£ìÿ d6wâìÙ¿¢d¿½°_Q -×âžÌ])ŸÊceÒp–}‰£½µØj£‚}"‚>^”„7YöÕëþ¢céìÙ߯°ŸòêØŸú'ç }.g˦«øÕ•Sô¯DÌ ¿a£•ØÚKƒ~h¸T+')úeUµ M‡µ‹þÏjyôIœ¦ú÷&išc£#ÃCæÙ¾Ó§°©j¬­®(-ÊÏ(â¢a_·mýÈËÝÕÙÑÞ‚´´0‡]%è¯ä‘ˬ镪Ïá 9ø¦‰Á€Áx¡£«Ç.°?¬5…IЬíœ 8C#¢bÀŠô¬Ü‚â2¤ŠCgWÏ™>¡KW¯ _Å š@öÿþàŸ§è=™oö75ÔVU”RåÐÂCƒQ8%ŽÀ>ÀGöÑ8a˜@¨@XX:}N»¯Éþ’³o»pìkýým³DŸüê‹}¢ÏžrK—Á’ÒxqM}¨gï¬Â€¡ Yð!a± ìªÄÅͺàÐðÈèXybJ:ɸ¬¢º¶¡чžÖKÑš/ô«¡ÿ×ÑëÃCW/]87Ðw¦§«³½µå`]5ìkAnV:DäI:;Á®Š„Ö››BA3†E]‰õŒý»™¹®qñ©Š¡ƒv}Â>Ñ‚G#báæáí¼="j§<15#;PQÕ¡£³»‡4`Ÿ@qëöÄïïö)Ùÿ¯ÖÙ¿@D8EØon€îP$äìNOI„“12‚eGÉF¼I¸oanŠ*À4A‡@t.(ÙW¡aQ±ÿëg°¿ê•²ÿ ÷Ÿ±VзýÅ¢OÌŸ†>}’.¢oŒñš"úB@ÿ}'gýˆÈè¸øÄÔôÝ9{ ?/Û_]Ûˆèw"úýªèßÒúç“'ÿVÙØÉïïLܾ…i_Cô!ÌžîÎŽ¶–¦úûý¼ìŒÔDùÎ(ØÕ_o7HÑð1Hо> ¿Bý%4Å×èÿÿO9XJ0–Qö p9’’hbfa)°‚aúƒÄÅÝÓÇ/¬ÅÆ'¥e**k <í8ÞýÕ×ýƒç/^þöNÑMûÊ!Òœ¡¹±ƒe¿÷ô)(À>œŒûË>/Ü›“•žš*@ð€³Ñ‰tA¡À’°%ÂÈЧd_AôºÏaö5px.û& Êþ«EÕŒèk–D†ªŽ¾JÑW$«DŸÙ­2~÷=‚¾¥@¸i3ì©“³«»§·¯?ÄŸ”šž•“_ùV×5â²Rô¡¤ú#t]µŽþ#f_ý›˜æµ«—/ž„0»w=ÜÔPS YúiIñ±²Ûƒý¼=Ý\$°§b+ßÂÌ„üÞ†#¬(ƒþ2µ¹"WߌìãT1\àí쿇—£%baï(qu÷ò+¤Ñq É»€ýÂ’ò*¸ýòÄɯz)ûXÆöqŒ¦æý¡+Ðû û0IÍuÕû÷•æçde¤&%ÄÅü}½=}ƒÈJ` 2˜àíˆ}Ð@ŸGf -l`p`u`Ùç°û‹‡}Ž¢ÏÙH•¡*Ð'EŸäªŠÙÛï­ô×`´ÐÍD4[ýQ1q I©Y¹ù…%˜n#¬ªýó -ôÇ)ú“ZAÿ?OÔã$蓎†è÷÷b˜G47ÔT•—îÝ“ èÇEKÃ>Üêãåî*q´Ç$¡›™¬aÐç‘1¾FnO­PÉB/.ttõx¨Ž”©ùz87ÛÁåˆVøo ŒùØß“_TZQUÛx¨õ‹c'`”ÎþéÏd’ÆÆo*˜Ò`ÿGí°?BØ?ϲäPcÝÊ}%Eù¹YP!P†° ?/¤ÊZdµ‘ag -Ø_ ìëê¼õ;ÊÃr–}ÆýÅÃþ3²¯ƒì¼röžÙüùGßdvès ô‰ù -ô—/W}=¬e$WŠþ†V"k¨f˜¬—_@PHF›œ–‘›_T²¯’d«ŠþUý ­£?ÅÆ èÁªbšgqSOƒ0k«ÊK‹òsvïJNˆ‹Ž (½>tuv²§Iš›b132|öד©ú£Æ×½Ð‘-®§&×öWè0%Ø_kºŽ¿A(²¶s€‰òØâëT¤gå—VT×lim?ÖuêLexdtŒ:£ô€aÿ_ÓØî Í‚ý›”ý« û=Ý„ýƒõ*ËKŠ -r³3Ó’Á™Ø ì»@°³ÃLñ-ÌM™Nhh@|Ða€`…X,u6ìóšýW¾>ýËg@ÿ £ÿÌ¢¯ˆT}}‚¾1¤ºÖÔÜ‚±Š­íì%.,úR›œ–™[PTR^y ÑÿòxwÏ™>@ÿ" ?LúÙÜÑÿQmUôÜ¿;IâÅ~èôA=;ÖÞ -aVW”b9K‡,c"ÃCƒü}·x|ðG';k‘’4] èÓß–Sý%t/_£ÿ²O9aJ/–1ì¿EØÇ¹Â±2[ÇX‰mÀ -7o¿€àíQ;剩ÙyÅeûažZÚÚ;»`œ¾9‡bø:Ëþ=`ÿáÔ£ÇÌ,=;ûÔz7Ž ûx8öéé¦8Ô×TB‹(ÈËÎÜ•ü©Ì¶ ¼!)ûŒ,¯Ùyöð¿ ØyBŸ÷‹BŸ}(ƒ¾*™¡t2}p“ØÆÎÁI -©‡†Ke±rˆ5sìhiye  ßúE@‹èÿ¤Dÿ)“' ÿпGÑÿ ?'ÉSj´ÚøÝÿ±_7>QßwÀãŒ]]2Àéå¦õ§ˆÇÓyôB@@(B¡<p¡€ èQP(…@‘jq:- µ”áS[çšÆ9¦›vnM³%sÙûóýÞqwM gw,üþ…÷ûóú½¿K¬)Q;')Eêîéí«E?N©JIÍ P‹ö”WÖhp¢GFѼp GúšÐfŒþ—7¯ }¤y¢·»³­¥é ³(?è§$Æ¿äUÆÑ·³åIŠ„,H¦.Ç)ôMñ•ŒyÁ¸Ðiaa)`ì£Z6«ìÈ -¹½ - *bTj°ŸûþîR¼ëš[Ú9ý¬QÌ êî½û=þë“§3`ÿê4ûäÃ}ö‡‡.] ö?fì75ÔijªÊIˆ¿ÌHS«”q "48Ðß×ÛsÝZù™Tâ¨e_«„€ØçsÖ›£PL޹?!ö7ü€ìÿoÐÿñ¤CÿûC_÷rãaÎ&ô­p—,N-úŽ©lzûú‡"Ñ8e’:-cûÎ]ˆ´ªFSßô;ºz)Ð?ÇÑ¿ÉÑ¿kbôù6úwq£,ÎaZf”fïGí-8Ðûö–î~?7;3-%1!æÝðMA¾Þ -9EigkƒËdè ÿÞ”£ýifâ¤øŒÀ ’Í0`Ÿ=$À‹¯ÈUöNRÞž´C7GÅ*Uêô¬» -ŠÁ¾¦¾±P T§Îû—‡¯ÞøüKV©{ ÙÿÎÔìßäìŸû ¢§«S¢¡¾¶¦ -µ*À 23MÄ öI …ÜUæ,q´Û®XŽwä[xH¢^ -ƾvWŒZ1Z3sûfÇþ‹51ú&‚¾y†¨Gßh賓ԡoi%˜ô"LÜ¥­ØÞQâ,s•+èñDèÇÄoIR§gnß™W°»toÕþZ ßÒÆÑÿͧ„þåá‘ëzôN } -”ÐÿÎý÷ýÛ ýËØeýgNQšíG›ê5Õ¥fVºZ•…,ü¼=ÝÝ¥“ý*›åÖKá,çcŒ£?ƒÏ0óýuOŽOß4=3µì£aXóû¨×J1gŸQ«L‚XÅe•5µõ‡[?ìê9Þ§eÿw`ÿÖ(ûúNû¯\©qÙ¿«eïÇË—>;7À`ì77Ö×B‰Ò₼œìÌtb"&*",$(Ào½—‡ÂÍÕÅíÛÚûè—HHTX°Çä(Z-&ÁÜŸ ìO¡ÿÒïCÿGº¡Ïsúú”¤PD[Œ£ïà´ÚÙÅÕMááE臄EDÅPšé™Ù9y…˜dûö×ll6Dÿ³1è?ž(úÿÒ£ÿ!ú·>¿89ú}¸N¤ÙX¯©©,+.úÛ¶&)c£"BƒéÕæîæ*“â,Wâ*9úVsçÌÖ¡?SŸãúüŒ¼Ð±Ï§ë*&q+Ð/‰³ Qá³!08,2:nKr*ØÏ+,)¯ª©xB;ÞG/HrâÚ/tì21¶Tãuê%ì3†ý«Œ}ÆÄñcݘäDEYqa~N6º•œ˜FRøxaSüÂåm©“ƒYA³bXˆ}>÷g½©û3´s,ûfÕ7sb|&tiN¡?Þ7vèsôõCŸ§HCßÂR€q’‹–XSvNR$éæîéåCQ†GFÇ&$"ˬìÜüÂⲊ}>úGÛ;»q›º4‡¯}¤ùzÐÿ‹ý/n\cqœ=ÝwüXWGëáÆƒµ@¿¤0o' 3w¸Á‡²tq–8ˆW®XFQŠ„,IÜ#Cÿ)ôMùeŸi¡ÇBÀÙGÅlí8û^>þA!á‘ïÅ'&§flÏÉ/ÚS^µÿƒC¿:ÒÖjäì_¹FkBÏÄSÓ²ÿ³ÿ‡ßûÔ¬ó€âTgŸ¤8P]QVR”Ÿ *RST`?2Vøûz{2©Ä‘³Ï¹Î0/ûÚ¢Mš¹o~ì?åú/ú^:ôµêз´Ìò­yŒ©l|í:Oo_ÿ@޾R•‚5¶#7¿¨¤¬²úó°ýSg>ýíyžåM–%&Gÿé+¢ÿŸñ®“åùTŸ'Gÿ -Gÿ$.³£õ¥YU^‚9¶=#•ÂŒ ô÷ñòàèÛÙâ"9ú޾vê#H=úÓÌ/ÄÉõyAm›aÌ>¶¬XHËÂf•Q!Wxxûm -7&>1%-›¢P ]M-mݽ'NžF·.rö9÷6Ë$ì?ûØŒŠQöéy¼—[q¨î@ueyIa‘‘–¢RÆA‹Ðà@_p¡»Êœ%Žöb[¼'ãA)’¬h:38“aî›–ýRS°ÿÜ(Ç)ô_ô½xèÏ0ú@Ÿ†>"ŠpŽ‹—.[nc+FˆÎ2W¹)úù‡"Æ8¥J–A9bŒUVkê€~+‚ì%ôûÙaê“|­èÓ »6r…èŸèíîl;Òtˆ¥Yô3ÓRfxH–˜‡BNYÚÙÚüÜzÉ" ?_`i1š¤6Hv†Ó¦¦¾ >}åôZÌÔ±?{Î\ +-û¨§Bîîéí)¢bTêt°(ð’¬khjiïü¨÷9qþâÐðˆvQü‘¿"Ÿ<¥n}k -öŸêØ×bqã*&ÅÅóƒ`õ‚­èW¦¦ª|Ïî‚];Ñ0uÒ–ø˜¨Ía!A~ë½<n®.Ϋ°-l–SÏ.Á ±?G;0&ÕÜ7+öuî?%Ÿ™?ôKÿÿÑèÓÎÒ },0(Zðm0 oçà´úmW7…‡×z¿€ °ˆ¨˜ø-Iê´Ìí;wìÞS^U£ÁQaècŒéäèßxè?þóƒû:ô¯\ºxžâÄUv¶·à(°_xn6NR•Caøz{ºËy–6Ëé¥ÀÊbîœÙ:ôgꃜBß$Ÿ:öYÝ~BeûdÅBZ+ÅöNR™«›;¦Å;C7GÅ*“ÔéY;P±ÒŠjM}CóÑvìß1`åšû†ízø@Ï>^’C/ ö³UÑÓ…·dSC}mMÀ(ÈðHßšœö#ÂB@†—§»ÌâIIhX/ajàUÉØ`ìO²¹oìoî?7DŸ¥8…¾Ñ÷²¡Ï޲ӡo‰ý%äñYS~v)èîéåƒú ‰É[±Ãròp‘{«jjë~[GWÏÇ@ÿlÿà…‹CWF®éÑðð‘nMýoÿAgù„­1mž@X‹þ'˜bí-Í ušê -–fVºZ¥ŒÚºñ¿õ¸FW™Ô Y._¶”¡?¡ÿSŽþSè›ü3æ‚uN‹«³B(ÒR!v ö¹Á¡ÑqÊ$@eQ\VY£©ol†=p³âÂ¥¡aÆÄW_ß¹;Êþ3S±~=2b„±?pö4Äûm-ÍõµDFqa~NvÖ¶ÔäÄ„ØèÈpBëbÝZù™Tâh/ÆÜ_¶t1ʆw%à°`rŒ™ûÓÍ|î›3ûSèÿkþtáϒcÑYPvBÑÏ.¢ýec+¶w”8ËÖÈ×®óôöõܸ)<2:6!1%u[VvN~a1%X‹ƒlaèòëÓgè$ ÐÿÓXôÿ9ôÿþlý»w¾æy³%¦‹©©®,+.úÛ¶&)c£#BƒY˜ }ñÊË(K‘EIãk4I=úÓÌ-ÅÉùq1]Ï¾Þ -g ÃVì qv˜!a‘Ñq[’SÁ~^a د=Øx¸õC”¬ïcÿ2{LÞ&öñ–d S°O}"ã«Û·ˆýá¡KÎ œ¥’õtwû„FEYIa~.ÔHMQ)ãÀFhp ¿/ª¦»þ—ý:Šú<ã>Ó¦Œ™è4Ú( ^ Q ²á†•£»,,,°ë®¬,B œr -¸\rº È}ÈY(P„€•`q4ˆb$ˆ¡CÑqMƒ6ÖI;5ujgú¼ïûûíÁa¢â€‘÷¯ßÿßçùü¾ËÊÂŒ°ËëtZªÕ}šýÅ^÷’}ú?® CÕý'O” ªñÚ£?WѧÑW+ú«5l¡î&½-}3 +–­›ëìê.yzAzA¡áQ1²Äýi™Ù¹ù…%Gj¡…µwtõàÏ]@= П¸u{ôÍ'ú·oaô/úgúamý#´°2@?+#§äï#õyðy&ËÊÜÄØhë=‚>C%Júo¨å¸Ðé½òO9{Ôài¨³¿z ¨ÐAófhÄ4…i³gsyn±ÄÛ÷Ãà°ÈY´‹Ü‚âò*p¢ºÅI`Mf‚°fìáìì?}Â~š}²‰ñ˜}¢FßÉž®ŽvÌFEiQAnöô”DYlt†ÃK"º»ò¸;–5t &²CoÆc­6ê>f_µîkÌ]÷Íü-<û4Äý' -òQ|$¿%ôé7»ù82 õ¢¿m &C{-ÉMÇ41³´fÙ9p¸<¾»P,‘úøï‰ˆŽ•%¦¤ÈÎ-(*­8Ré!ôaq|ׯŒ]»1Ž÷‘Bÿás£ÿD‘(½‘Sß=„…œü†Bÿ:äIÐï;ÙÝ èÿ¡¶ª¬¸ 7+#5IƒÒô•JD>ËFè›2 a u}mÚ@Uô5¨Êµ„þ<>5-(,–Ñì¯\…Šžá6&’ØwqŠwyìgç..‡Ik†“ .JÌéóÆþTÙ‡)ûû½É¿Ý½CØ¿6åⳡÁOÑ õ8êª+ËŠ -òÊ3R’âã~>R ØÁwqâ6–榤îo~WWgÌø¡¨ûË—Sì¿ -u‘°¯¨ûЇÃ[B_õýTÑGË·\QôQhk×þ»Yý÷MÍ-m¶ÛÿÞÑÉ…ÁôÃ"÷ÆÅ'¥dÈæ—UVú­Ý TÁ>‚ð®üE‰þ$¤÷¼èÿonôïô'úŸ]8wíbç±ÖfgqA^v& izKÄ7.Û…ÉÜfhèë@– ÍÕï¬ZI£¿L™äúóùÔµ ÙÇ“·Í°¯…Ù‡™) flwà8¹¸ !áÀ~rÚ`®ÊºF`¿«§÷atûß¿0û¦³ÿ5Í>–chúÅ©Þ@Gksc}MeYñáC9òŒÔäÀ#,$Ðß×{×N œ³#ÛÞÖÆÊ ³šÜ—ëàÀÔ¤Ù§!Š,úº¿Àì?Raÿ¿jæ+д„>zO-úxóp^4úš -\ô¡vmÙŠÐ7³°²±µg;:»¸ D;wyûú†„EÆìKHNÍç:\\VUSߨŒÑï=Õf`pèŽîÆøM¼‹Jôx)è_¿úÅèçýÓ§Nötkkn¬CqúiÉñ±Qá!¦XèÕ Ð·4ƒ0¡waôµ0úoÿvi\jèÿjQÅøŠ?5-ÈøQVຩX»I¡¿õ=c¸.ml8ήî;vzíö ŽKö*,©¨®kliëè‚a;™»Šú(ÙW(¡:hÏÅ>™´(Ù¿ùWÄþèç—†à¬< ìwwkkiª¯©*/)ÌÏÉÊLÛŸ°/&*<4üðò Ý]áºt°cY[˜™0!z`®û R÷ß&ŒÌY÷•î/t€Ô[LìøÉ×újOÝüY‹þ[3‹>¦‡cÂþY³ì8\ž«»Päé¡…†GÅ@ji™Y9ù…%å€~SKÛ±În´‡gÎú£tp4úÜJn^ÐÿžFÿîWÓÐï=ÑÕÑÖÒXW]ãôã¢ÃCýv{íÜáîêÄq°µôßÛªÂ\¿g‰× -:Êè/–_õ§œBj)+¨á*„}˜;#cs¨ -O/¿ÀЈ½q ûÓåÀ~ie5Ì[{t ÄÄÐ¥Ìþ,JP£ö,“¦Æþ¿ìߟD ë¦mäÒÅó0nÀa¿¡öHEia~n6D±'8ÀÏG* =ø<'2ÄÒÜ×}<]¨ûÚZŒ5tÝ_ñ*Õý…aJ}¥û*æ«¡?õ:£ÿóŠþ -•¢¯½nýF]¨\¨è›š[Ú@`'ßc‡X"õñ Þ+KLI?›_XZq¤¶ ©>{îüEXÃ/®^'±Ýùú›Éû³åö<è?ú÷Ì¿øÄø«c¨}Až€þÇí-õÕ°ƒ8΄¸èˆÐ@?/Oœ&BßÜÄØˆ„©Š>ªú4úo,¡ÿ2Þ4ö£Îþªß­^˱ݘ†FL`ŸPÀ؉<¥>þAÀ>rB=£´jÆGípZ~¢`ÿÚË`_1mû_QìŽ _„–€ÀmÙÑ‚@Ï(-*È;(OOIŠÛì{"7gG¶½­•…bêþ&] ©û˜ýŸ[÷Ç,. û$QºîÓðãOÚôŸõë‰þ4óç.ú}(ú°w8+ؼ­€¾‰™T.{¶£³‹›òòöõ ‹ÜŸ”’!?˜WPTZQ]‘µwtõœ„ÌΞ»pqxäÊþ]ŒþÕíÇgF-â\èßÄè`ôÿü F¿©¾ºÐÏ‘úûöF„ùûH=E|”&ËÊÜ„id›‡Ð×f µSE_ƒÚ·%ô_ÂS²bÍþJÂþº :À¾á6¦©°Ïæòø‘DêûaОH¸/S2à¼,*«¬ih¢™@ì_ö)%Èe9¥Âþ³O„f -³OK¸ Äþ•‘aLHf¿µد,+Dä©É ûb¢ÂBý}½½ŠŠibfiͲs`s]Ý…"O¯Ý€~hxT̾„äÔ yΡÃÅe•ÕuÍ­Gú}ý8±áËýñ‰[ý{ý©DÿñÜè_ƒ¤Ð‡<Û?jj¨©,-ÊÏ‘g¤à8ƒü}¥‘€Ïã"ô-L}¨[:&F%þ2e”Ê$:Ã_ÒSÇ‚fÿMÌ>AtjöáÎ$PØûn±ÄÛ9#ƒ²‘•[PTVUÛ€˜€ó²ÿ̺._:ûßÞ'#wûÖž9@dhpàLܗǶ67Ö×T•—@ÙÈÊLÛŸ(‹‰ - H¤±ÐƒÏsâ%pgš¢ºo ¿™ªûZ ÌÉ̺¯¡`ÿ×Kì#ö`öq¢Ääþcùþ?Àè?XBŸŽ‡ ¯1[ч”Z¸èCׂ­32~ßÔÜÒ’â8ñøB±D -Y…†GÇÊ÷§eBç*,)¯ª©GèÿøDoìßàä…пý%ìþ·ÓÑübèOaô'©@)ôÏ <»Qž 5UeEù¹Y€¾,Åéë- Üx\¶=I¶ŽB_sõ;°qý7gEQù‹yjXQ¤¨ÀÍЇ&AÝÍútŽíö'7¡x—÷ÁaQÀ~j&°_\^L´íìþSfîK¥Àþö|.ö+™ûŽfÿΗ„}Ä»3§Oõžèî<ÖÖÒÔP{¤¢¤0?7û@zJ’,6:bOp€ŸYâæâìȶ·µ±² ê¾Þ&ºîkάûÿg¿NŸ¢¼²0€ÑD§˜‰Š2”ŽÉˆ‚È"[š}miÁfiéYš}ß‘UöšAPP( ®”DDƲ¬Ä"5¦¢“15ÉL͹÷}{…V"p?tÿÏ9¿÷9¤*ïqÝ_&öÉDÑ—œç>ñó…âZ­è¿®è“æ‹}ÈHýOöEÿSm]Šž‘©¹•5Åtrvõðòñ -‹Œ9•˜’–™SP\ZQ][ߨ ËwñJl_ÿ N‹@ÿ!}¡¸È \8ú¯$¡ÿÅèðÐlß5Œ~ÃÙꊒ¼,@?6 -âdÚÛÒ­ÌM0ú&T-„¾Üv@ÿϰn<ôׯ¡¿ÔO0‘ä4’TRÈ`)ää -ŠûU€} -اё®lŽ_PXTlBJ:°LÔ5Àäu’ìß!ÙGc7óxÑìÿ[œ}ìÈÌ7Óˆ}’‘Ûƒ}½Ý]¨n´67%•¥Å¹Yé§“`øÂ‚|9l7ÓacM³056 Ñ=uØGuÿãÝ»vÊ¿±î¿§î¿]öÓÆ>>à°û¿äCT¸. ýô•†¾óßPôåwîÚý ô,%”‘¦Ö!Ý#TCc3 šµ ÃÉrqcs|‚aïâ“N§gå—UBRMýKW»º{ûoY!ô§QéýF Ðÿí÷£ÿ£ÿð+"ÐÑ;ú—;ÛZý3%E€~Jì]‡íŠâ¤ÓÌM ©- 5•ýŠ -(My9¦ &}©5ô—ò‰X!D…@ -Y’ý½ŠÊ*Ꚙ}S Ú±ã'œÝØph†EÅ%¦`&*1ûíÀ~wïM`O9xˆ}þÜ-”ýßÞÀ>¦dbüîô›½È’Îös-˜ý2na^vFjrBlTxH Ÿ·§;xâ`gK?jifb¨¯wXG[󠚊²Ò>\÷wγî¯cùó³ÿX„}ûóEм†þº…}%eHH[ç°ž¾¡‰™åQº­#„äîéí—œš‘WÈ%Ðo9‹A¡ÍŸÀIñÐ:ú¿.ýÇýbè··67ÔAÝ*ÊËNOIˆ‹ô½Ù®Î'Žƒ¦E ¯®¢L¤ èË -…If)%Võ—;Æ•÷D­ ©bËVÙˆ}˜C%eUuMm]Ò †ƒ“³›§·0 `âéŒì|è5uÍ0}W qܼ…ØŸxkìÿ:ûpd>žy4ýðk’ý183±&0}ÀIC]MUyIQ~NfZJb\tDh¿—‡«³“#bmenjd@¥èÂÁ©®ŠTáÕý³êþÆÿƒº¿tìwHdŸ—¨À}ò‘æ“A=•ˆ~Ç -FÿÍE㬢¿ý¡èC<ªêŸÒ¥P ŒLÍ­¬!!¦“³«‡—PhD4T­´Ìœü¢’òªšº”´­ë(¦¡áQú_?œ~›÷ÖÑÿ@ -׃û°x(ª[Ý]ýƺšÊÒbœ' ìïÍvÃèqêjkbô÷`ôwÈnÝ"„¾´ Ë5ô—òÍÍþ’}™?}´e›,@7'fÿ Á>T†£“‹›§O@p8b"#NͪšúF( öocöÿrìÿWœý_(0{0|ˆý'˜}ÄÉý{S“_Ž‚'ý7 t\¹Øq°¾¶º¢´¸ 7 ‘àËa»¹°˜ :ÍÂÌØ -¬h êþîyÕý÷Òýåc»ÿ3rÉ~Fßfbõ¢/Ùü×ýE›¶}M-H‡jhlfA£Û0˜,76Ç7 8,2æTÒéô¬Ü‚âÒŠêÚúÆæÖó°t×{nôCH£c_NNÝ»Rš†”`ïžý€ÌÇ}ë_p‰¡/yóæþ=ý[ý+íç0úeÅù9€~tx°¿§›‹“ãØQK3ýƒªÊJhÓvAš}ý s¢¿ìI®È'bQEÖóØG)Äþ>¥ªÈ =c3Kk;G–‹»—f")Øç’ìwØç±ÿˆÏþ Ô Ë>?Ä> -š?`‰2Øß×xéB[ks˜RYÆ-ÌËÎHMŠ - ôóötVílaÍMŒôõ(:Úó©ûH¾ûs±¿ÜóùnÙŸ&ØöüGAÝ'àGÿ¼¢ÿãs2£éU…¾ÐPˆ Oš¿ž0_RÑßK}mŠž¾‘‰¹åÑc¶vŽŽ»§·_`HxTl<ì[v^!·¬jjnm»péjWwO_ÿ Ž¡ÿà+þ§2""Gÿ {7oôoè_l?×ÒX_SUV\è'Š ðñtwqrdØúÆGt!NÕJûxèoÛòìýõkè¿«'˜ÎuÂìÃTâ5dÛv9Ä>ܤÀ>Üœ0‰¬“î˜ è©™À~yUm}Áþçˆý`jñìÿgûäòÙLj͑áÁ¾Þn@šGKSC]MUyIQ~NfjrB\tDh¿—‡«³Óþ¸µ•…©±†‘W÷ˆºÿ—Yuÿ~Ýÿƒäº¿Ì#úîÙÇ=ò9Q$!U ?"™Oï±U†¾$óq¼¢ÿ¤¢¯À/úºG¨ƦVÖ6Çí™Nή^>þA¡Ñq Éi™9ùE%åU5u °oíô¬Áá‘»_LüýxåDî1bé‰þË|ôñп;ÂC¿ƒDŸ è§&á<}¼Ü]XŽv°i€¾ç>…¿aô·èÿq3?L²Q­¡¿ôO„ -4›¤2 -9yä„‚â~5 ¸;õ M0ûLb"04"&>953·[^]ûYS Ü›H‰~qö‰üi±ì¿°#øýwßÅ©21>6:<4€X¹v¹¹ÒP_[]QZ\›•–’x*&2,8À—Ãvsap`ØÒi–f&†úz‡qÝWQ_ö̪û™‰º/-Z÷ß3÷—˜ý^qögøìî#ø1ùØ|>ú3âè÷®dôç4_¨èKEÿCœÇœE_YýÃzú†&f–4º-ÃáËÅÍñ ‹Œ9•˜’ž•[P\ZQ][߀Âé¼| ”‡†GÇÆ'P¯.!ûüsóÙS’}ìÊÔ$°gèVÿžëhÛZ›ëÏž©,ãæ-Iñ±Qá!~Þžî'í€+sS#*꾆ºêIu3®ûuÿýtéÙº3ÊcŸ¸ß¾ì?XÀ}?&ÿÅO(¾É˜ú(›þëÍ'Ð߈‹þfIEÿ€ª:4+] -ÕÀÈÔÜ -R±str>éîéíŸt:#;¯[Vyæl}csk[ÇÅ+]×{`Ù ›±ñÉ)ápx§ØK8Ö ý~tºaô?«­.çúÉ€~h /òdÚÛÒ}C*EGKCMe¿"}Yô¥a®Uýwñæfƒ€ý-[ewìïUDE„`ß‚FGL¸zpü‚B#cý,Ì>VâÁþà푱·Ë>o -EØ'ë$ÄIÜ'ûûzº»®^ºÐvfñlMUyIQ>ÜÉ qÑ¡Aþ>^P÷™ö kš…™±!££¥yPmκÝß´I¸î·¨Ôje’”…¬“ˆÔ÷±ü >êùDÑþ"O®Vô¥¤ˆ„Šþ¦MØü9‹¾ÚAM-ÿ±_çOUgǧKœ¨)3Ú(HJ]Q£¸ÇÑ:Œ *Šì ˆ‚‚€ì‹€€€ìû¾oBAQd'  b&jE” K„8±bê¤>Ïûžsî¹— © K)ç‡ûÜçy>ç{`";vîSÓÔÖƒÐ?qÒÂÊÖá´«»ç9¿ Ðˆè¸Ä”ôóËÍ/,†K«¨®­‡SÃï°{xkì‡ØôñÜþ»{ûuXô‹>” èûúÎ6–f'Œ} Uýu -Ì8 ús¹iN¡?¢ìKQöa3ÿ²x©üJ`ãf(`Bå†ÎaC#sK[Gg7Oÿàð¨¸$aöoµ`0ì÷ŒÀþ¯ïÃ>¸¸ôõö<ïê|ÚÁ²ßrëFCý·Õ•e¥%Å…/dg¦§&ÅÇÀ—§¿—ÇgG;ëSfûGëh©:°Oy×7JŠÛ¶nÞ„¹ÿ%—û²üÜÿŒÍ}ÆýéÓý1d' -ì÷ö©û(?þ¢ùý^‚~Gûÿú#˜?g>™Ã¡¿ ÎKQé›]ÊûR×Ò…‰@蟲¶st>ãáåŸ”š‘™ S).)űÔ7À¡±èw<íìzÎÌ…|„úwZ ¯ú—È@ýð`ÿsžnζ–f&F8OU•½»ýÍ×)¬‚¦"èKô¥ôgL¡?`UÙÏQeÖsÎÜÏý/äö× û šÀ¾±‰¹•­£ °Ͱ_$Ê>ùêÄ]xö¹MüåÍ ¬â+šû”`Ÿòr·ñÖ͆ku5Uå¥ðåy1/'+#59!62À×û¬›‹“½ 澑¡>¤ˆÚÁý{wïܱœ’û2˜ûŒû$÷?åçþt†ý‰äþ(²¹¬²šcŸ¾È /}Œû?}^2æ÷±S¡/cŠ>¼‹/OJôÅš?5ŸEÿS.ô‰ùóæË }Æö;wïÝPMC[OßЈ„¾½“‹ÛYo¿Àð¨Ø„ä´Œ¬œ¼˜IiyUM Ïìî}ú2æÐIBÐ|ó‹è©‰¿5Þ©½ý{xf,úEý$‚¾ ïhkinbdxXGã -™çV@ͪ•òTr0ÎyŸÏÃG_òÌ5M¡?v¸¨(Ȇûóö—¯\½fý&Âþž}Ⱦ¾¡±©¹•£‹;°‚ì§Ï¦ìWá—'ÃþãØû»Ègÿ”}ÜÆ>R•OŸ0ì£0×ëj«*®^¾TTŸ Æ$'ÆEG„úótw=MrßÄø¨ÁaMuUÌý¯¡GÄä>.(²OÄ™ÉËý‰éþh²µØoà±UÙì1?Èâÿ<æ#úÝü/0I ™Œèk¾ß|˜EÌú_c諨ªCS9jlbÆ…¾PhDt\b - $7¿NìjEUmÝõƦæÛ úxeðÖGÏìïÌ} ú¯è÷<Ç+ƒ~6 4.º -Ðwq´µ2716Ô×Ñdæ è¯ô— ¡ÿÇφ ?m -ý±{„¥àAA"NÈö—Qö ¥À¾š¦®þQ¾“‹»a?ž°; "Ì~çh±?ÐOŒù±óéƘÖføø¬¯­®(»RR\˜!;3=%)>&2Lû–æ¦Çêëji"¹¯$”ûËØÜ—æåþl’û|÷%$ôL ÷Ç„ý;û?>ïî¡îüôé§æ÷0èß™Ôè1ÿ÷ó§óÌÇÿŸúÒâC_‰„>LBWßðØqSsKú¾Áa‘1ñI©é™U…Å%Wðë .¬©¹•y“Ã÷pÿ¡Ï\Ùpè?æÐ¯¯­*ô úñÑá!>^î.ŽvVæ¦ úûöô7­_³šC>†ÞÓ,Á49ô§Ô³G,ûŸˆ²/û…lèr† Edÿ š°ÜÔØwug”HNËDöKû 7nQ$†°ÿвÏ[Èá÷ñßCÙ‡…|-`ÿ…HZ¶ÂR35•å¥%àL^NVFjrBlTx“û¶V'O@îëéhªAîïáçþ*&÷å˜Üt¨û³ˆû”}I6÷'–ûcÀ>L_ähZR÷~Åñ5Ÿ~|Ñ.¼}kò¢ÿ›æSôÑüYÔ|üÿièË ‡þú{ ôÕ4uô ôOZXÙ:œvu÷<盜–‘•“‡Ã(-¯¬!Óhôïó?¾^Ð-zc¿Ž|cÿ½18±Ñ/%ègruwq²³²05>ª¯«©èïTRdæ¹|ÙD_†ŒSЧÐ4§ÐÛç7ØG'æûÈÄ2dbe_y?²o€ì[û D`HD a?O”ý6ûý¸“”ýÁwaH‡öÁ}d—²«óYGûã¶÷ïâZÞl¼V{yõ2,f~.P“’äïãåqÆÙÑÎú”äþ‘Øûö+‹Ï}XSd‡É}\ՙ¹ÏdÊÄq”ØÏaÿîý0ÒŽg$÷Á}€Ÿ>}`> ýgO˜Y¡Ÿ;©Ðoþ4Ö|AèÏÄ¿ž }0þþaB†1uCÿ”µ£ó/ÿ Ðˆè¸Ä”t˜D~AÑ%EUmݵFÁ,Úa]ô¾~óèÿó}. Ð亊A¿“Eÿ6DA¿¤¨ ÐOfÑwu²³¶0=~Ô@WKí ú0OYQô?™Büñìϰ?—ϾÂÚ _mù«âŽ]À¾:°ìøI kûwdŸlå{²ÿ–²O¿?q-‘ý¾žnÚ— 5ÍM#ÕeWJŠ ó!HÒS“âc"Â|½Ïº¹8ÙÛ`îèiór+?÷aî/ ¹Ï¸?{6Éý‰ìþh°ŸÊc¿û’Rƒ}Iráïúáȧ¡ß]Ü ¸¡ž‡~ê¤AŸ7êßh>þï³9ó!ô`è/â‡þV^èkëÀзwrq;ëícÈÈ̾p±°¸äJYEumýõMÍä¶ðŒƒèîéCô_’ë¢çõ†œ×ÇC¿í‡{ß‹A?&"$ŠèŸdÐ߯LÐÿjÃZ…/W°èÏûÓ\nœSèó#$…„(ûR„}iʾüŠU -ë€ýmÛ‘}Uu-=dŸ*á퓜ž™“WP<ºìÓ½dsØïí&›ÙþzäûïZ[š`7¿­©„ånòr²2Ò’b£ÂCýÎyº»ž&¹obLr_]4÷W“Ü_¼è‘•A÷‘}âþ,Î}IÆ} a÷ùŒã,?"ûq|öÉD[Zý>¢¹ß…ðƒü(>ßECÆè·¶"øèÇMô‡7_‚1ѧæÏ"æ#úh¾Œ,üó “Ð_Í}e}è(€±‰ }WwÏs~!áQ± Éiç³à¬` -¥å•5ðÑu£©¥õ;¸¬‡ÚÉiu÷úìmñŽkÔÐ/æÐ ôõôíýczZê€þ®Û·m¡èËSô¥…ПÁ¢/1…þø<"±{+ɱ ;Ù_ì/^JØßȰ¯¢ª®­G”°±?}ÆÃÛ/04R”ý›•}‘ÍäØï'ìwubd>|@½¹Ùx­®¦ªüêåKEù NzJ"äïãåArßÒÜr_hî¯U€Ü—_ºdÑB¹?Ë.€uesŸ¬,ºOs_’Íý äþGc߉²ΰŸÏ²ó¦í1€ó¬“ÀO$¿¾¸Ú·qïÞë,úù úá}§ÿeôG4:kþ 4Ÿüå\èKËÀÉ-\´d©<„¾ÂÚaBßÜÒ†„¾—P(¼xSÒ3aE—`Uµu×oÒw/ýäêì"è÷‹CŸžÖ¡=õL,ú9™éÉ ,úä-Žèk««rè¯SXµB~)})ú’,úÓ¦ÐG -\]¤S°R€ ¹…ÀþJd3a¯Šªaßl(û…£Îþ›Áׯì“$é"Ù†ìß¹ÝÜÔHÈ)»RR\xñBvfFjR|LdXp€/É}[+Ìýÿ°_çOQ]iÇ«’)MR–„ 64Ѐ, -n8Qƒà‚ŠK‚Q£Á˜d’ŠQǵ\K‰I`$ÊHÄq EPeWÙ7;-X‰3U£èdÆÔ<ï9·oßÛ4‹°¸?Ü?àœ÷|Î÷,ü`nËýI>Þã‘ûžä¾+ôq`¹¯´P ¤ÜÜ7áî¿"¸ß«ë¹ÿÌØ? öiGÁ~îõ"¹_][Kð«§&òkk««øÅ[p=—¡OoüÉçý¶Ìï%˜ÿ -7ßD4k®°P²ÐwÀ²»’ùžýñÞ>“d¡¿dÙŠÕ<ôƒCBwïùû÷ÇÄÇ‘:{ž]¼×²sóo0ôÙ{KÕˆþƒM; -ý†¶Ðݵcû–ëVÿe)ÛPBßO@G_eMûÙÿÍ~f8@ÆÑïQ¿>CöE'8Œýzö]Áþh¦±?÷ƒ@bÅêu›¶lßIìGF6Îþ-z‰JÙÐìÓ|û ÚÛ> ¼4ÎÕ+©)’Î!51¤Ñ÷ïÛöÍ×,÷×­YÉrÿ£f¹?jÄ0wÊ}G–ûD9¹ö™û}ip»°ûÏ„ýÄ>ßÑ4:7K‘šè}À_w _ÈGçWV”•ÞÔ]»iœBÿÀó~só_hÁ|,6?=¯¿NÙ4¡g¡ïH¡ï>lÄ(yèÏCèB¡¿rͺ<ôÃÂ÷îÛ0úȱxlKº’š~U|mU²3¥¹­m ôïáPuúžýM ý?3ôgM÷›äCè6Ôu°¡¯Ô£oÒW²=èwîg”ý—ôì¿.aOSWw‘}ý/–®X³nÓVb?\Ï>•I3öäì?4œOããù›Œ}Ї¼Jt¹öiDÕu5Õ•œý¼œ¬kép'9ñì™Ó€'æPTdÄwc¹¿eÓz–ûŸóÜŸc,÷ìíT6VJKÜsŸ$êÒî?cöSÒÒ¯eå;Å%¥åä~uM èǯšÌ//-)?å9C¿æ÷–™/†>ÌWX*­lTvöN-„þB„þç,ô×oÚòׯ(ô¿‹ˆŒ:ƒµ?}ælb2î\¾øtç–WV×Ö©Ù‰j¼« }œ©&Ý™zÒCÅÏ”QôË Ð?yìÈá¨HB'C¡HJècCGËÑ@Ñd*ì§l;{ÐOmöÁ„9cC;ÄÕ}¸À>”˜» ðc=û!û„Dbò¥T‘ýò`ÿ±”}þÕÍèÏ4¤ÚzúVmuUEY‰.7¯\¾tá<õÔñØ#‡aËýÛ·²Ü_Þ<÷lj¹…ìmUÖVJ Å@Ê}Á}ûœ}÷_èt÷ŸŠ}?ûö#¾?p˜³^—›Èý¢›%¥e€¿²Š}• ¿¬´äfV>­t<´Îsô±ðúdèûu'ô[0ÿE™ù„¾`¾‰h>ÖZa¡´²VÙÚ;`¹ÅÐ' ý(ô—óÐß¾ãëoú¸o‰=~Š­<J÷Ð*)«¨ª®½¥ÖÔké<éпÏÐ$E¿•ÐoýŸuè×¶ˆ~8¡¿uÓº5+–~! ï/¢ïî:ÄÉ£oÎöSþK=èw¯}ìcr­möG1ö'ëÙ_¶bÍú¶Ø¯Õ±ÏÞ£-±ßÆkTò•¦ Æ´ñŽö¶†¿H…Üçø\LJLˆ?}âØÑèƒû)÷¿Ýµ“åþZYîÏòŸÆr¬Ï}7—ÁNŽƒìlm¬• ÈœÜïg&ºß§˜û]ÍýeØcìÓûíÌYà“z%#3;¹ä„ûeååøÊËËÈüâB,{nvfÆ•T\·gÏ0"}\¶_mëÆè·Û|¬1¹/7߬™`²TZÛØÚ rtìâÆCßk, ýiþ³d¡¿–‡þ®oqÙFî?}ô؉Óñ ‰xeñë¯,œ¥ -ÖPšÛÚ;ôùqú½çÉ8úÕ•-¢¢GÿãÀstO·Ñ#‡3ôí{ÐïÒŸtš…A&ö_~Yd¢ßýÁ>)aï *áí ög3ö?Ø"ö#"coÒ–ÙÿõiØž¤ ZLªº®†jáõ¼œ¬ki—/&3âbc!÷÷ìe¹¿™åþ—<÷ç ¹?¹ÿ6 1Ìc¨ëgŒ®ÊÆJi©€û<÷™û}[pÿÅ®à~³Lìӎ°ŸÌš3+ÑYPXøKJÙWò‹ - ðÄ¢EÇ‹w-Ð$ôƒ»3ú­˜ÏÑ7b¾ú0_a©´²QÙ!˜œ‡¸õ@èÿñOo#ô' -¡?Ÿ‡þ—,ô7o¥Ðݽ¡(&6ŽÝµÉ/§Ñ¢ç]ÇUK'©¦NÍŽÐgæ? ú¿¶…~a«è/Ó£?™¡?ŠÐwv°·ú -sÙ~â¼Ûù‡ô;ý3Œýv±ï5N`Þ‚EÄþJý0‘ý„D2âj&Ø/4Îþ})ûmw¯+ᚥÐ/(Â!ª¨ª©£S¤½ÓxWDÿ>Cÿ‘´ŸþÛÆAzlÐOôo7B?HDÑ‚yúã¼ÚB¿wú]èkξŒ Ó×Ìd컸yŒÐ³?‡±¿„ØßlÈ~ÒEcì7°ÿ¨ýì?–³/>LùË´±A‹§©º®†M,å~Nº|éÂy -ÂÔ"÷ÃÃ(÷·Qî¯sÞœ÷f͘æ7ÙwÂ;ã„ÜŠ·ª“ƒ½ÊÆJi©ÈÝ7cßKî~§ÿS³ÿ¾”ý `ìè^ý~{B`¥é‚ %ô7oX»jywCßù­˜ßGg>}2ßBie­²µwÀòº¸Áü‘žc¼ÆŽ÷ö™4eªÿÌwæÎ_¸øS!ô7RèSèÓ» -+}ât|¢)%5ýjfv.C¿¬¢ -H­©×òpºGå$G_úíG¿I‡þ=ô‹Û@ CŽý†è›á ÙÏô»Æg”}Œ4š”²÷ê`—¡#<ûSÚÍ~±1öÿÕŒýö¼MeS1Thhï6ÜÑÖÓÔÖTU UŠþÇ~>Eu¥q¯šÑ$šµtRq4ì‚È"‚¬"k³C³É¾4 BEÀIÔ8*„€ÑR´E.ˆlƒ¢ÑX–¥1 A1¸Ä%“ròfjj~çܾMßæ¶‚mª8/ú8ý<Ÿû=W¯\FîC£æÆ‚ -´äÐ6÷·²¹Ÿ+Š I>^î®'ûå¶Ël¬,–˜šè/Ð¥î÷iî³îOÃ@3î¿ÃuÒvÿÕ°ŸÀ²¿ýÃRŒûÍ­èýöÎÎó]]pººÎwv¶£ó[qÍõÒÏëa ¯ëý„q…¾²ÌW0ÿ™ùtKf0æãbçâf54µ±,úFÆ&¦K,¬l–Ù.·w¸º{!ôƒBÂ#E±ñ‰lèo%¡GÕþ‡JðªÂêœÂ5ãëŠÐ¿|åê5MÝ=½t}Iè3èK»é,ÐÈÑÿï0ôç ›ý -9ô73èÇ1è{rЧ(6僿Sôߣi4¾JåìS%¦ÏdØŸ§¦¡Åa_öýeìgŒ€ýÛ”ýdl™Tác_ÉÐrÙWH:¶ÈÜôßîíÁàÊr¿ã\"ÕTWÀ#ä~¡|ˆaRtDrß×ÛÓÝÅÙѹomin÷ êëéêhkR÷ç°îÏwŠŠ¹ÿ*Ø1ì“”°_´•UTÕÐÜ'î·þŽŽŽÎNü€ü6b> ýš*"Ä}E}Á /?èØü)ræO—™?æ«QóõôÂ|3sKk„¾½£³‹»§·/B?,"ßUqJª|è"ôñm­ ßV<©ÚÎuÈBŸìNïíþº<}üäéúÌúŒz†Ðÿ÷o¿‘hz0ýŽç¢!‡¾•¹©‰‘Á]-ú‡²èÓ?ë1¾ -®“øØg”g©­ãóد`ÙïPÂ>ÜѰÿ?öÿøÏ32¸lîß¿7xw€Žn÷7oHs¿³ý,L:ÍŸû™ÈýäÄø8Qr?ÐOèåá&pr°ƒûVpñ"#è¤7_GKSC ó<äþt™ûS¹îO~ãî¿2ö™JÙ—”­údwž‘Іþs–‡ý§,úRôÑKWÐ/æCßßÇÓMÀE_Cþ¡Ø¡?¡þ›>бÿ|öñl51%ûW,L±á•gÿóF1û -“;ôH}Âäþ Š¥¿¯·§ÉrýrÿÛ ç1¿-M õ'Hî—Érr?¹Ÿ–š’”°26:2,dE€¯§»«ÀÑ~¹í2+‹%¦p߀¸¯­¥©®†ÇëXÝÃ>6ö½Xö“ûYHÑœÜ|¶DIîÃý†3MÍ--­8--ÍMg`> }ék*?7·›EÐObÑ÷Ryô9”¢ù“Gbþ\j¾ö|Ü©Ì7]bae³Ìv¹½£ÀÕÝÓÇ7`EHXdt,î6%5 ¡ŸÛÝ%ú5u'êšZ°4ç/ÐпNj©§·¯¹4HBŸ]L£+&Îê°ÁÄ¢?HÐï•¡Q†~5ý .úŽvè#Eôgó¡?Iºè«ÊQÂþ”)%æÈØ7æ²:œýbû)û$ZXög_:¼£™]¶Xèô>}BÙÇCu ŸÎ/rOÕï.]ìêlokm>súäq£C¹¿¹¿1szT¼*.&*"48Ð_èíéæâìhÜ·¶„û&ÆFú tᾆºÚ<ÆýÙ³¨ûïs_ -¿¢û¯9øÇÎ~h¤(ްŸŽL»IŒ$1ZYMÜ?YøÏ4Òsäן$æWÓ»=Hîv7>©xI¥ôãD‘¡ãýQ›O.ò}jþ¬ÙŒùóÔÔ5¨ùú†Æ&0ßÒ¡oïèìâæé-ô ˆŠ‰[%Æ;j]æF„þvùЯ¤¡¦¹µ­½³ë"EŸì i¥þ»} ÿøÉÓ!ô‰ù£CŸîÍ0ô²è÷tӡ蟕G¯Rôm¾Ð×1ú@_µÎK°oÁ²/T`ØßKÙ¯fØ?ûg±Ïæ>_6÷ïßdÞªa’ûWñZEîŸýWK#'÷‹ -òˆM[²7mÈHK]”+Š  -ðzy¸ œì¨ûæf‹MŒ ôõtu´55ÜgrŸuÿo¬ûSøÜç þ×õwŽ™ýÕkÓ×›vîÞSP´ï@±äHq¿¶🪯?S_ -ä×ÕóËŽHŠì+*س{'ùž®Oã}ò9æSòyÍgBŸ˜ÿ‘º†¦¶Ž®žþB˜¿ØÌœšoçà$póðú…„GŠbã“V§¦elØ”½…|Oó -Šhè—IC¿±ûrþ·—¯\½†ÐÇÆÜBèceîÝgC_¶4ò[óêÐÇÂ\ľ´rÐÏ{.úÆ2ôçpþP¬Äú*|øØ[ûz/b?e¿–°ßŠ1ûWYöûùØW|ªŽŠ}äþïìc•ÎðÝ;ý}½=x®åþ¹á¹ŸŸ›ž>ß¼1Qš"NX¼"À×ÇÓÝUàd¿Üv™•Ü_dd¸PÞýyÝŸ:r÷ÿì±#ûB°!"ÿèšôõ›²Áþ—yù…_ÓÜ/‡ûÇj¾©ƒüô¯«û¦æÌ/§¡ÿua~Þ—¸ÕìMëÓ×"D@_¨Úè+Í|Eó§È™ÿžœùÎaÍŸOÌ7Zó-¬l–Ù.·w¸º{úø¬‹ˆŽY™ NÁ*sãæÏq«9¹ùò¡R1ôøég²/wîÒ…ù•ÝúC+3"ôe;#_Jdc°0¤“úÑoúµ@_ƒ~¨úèß3œý·øØŸ; -ö%„ýã§š(û—/2öñ^ež«œ×꨺…a2Ä„}:ÄÌ#÷ïbŒûnýŒ9æÍýr’û´Jwýó‹-ÙY2Ö­Yœ£¢ÂCƒý…Þžî.ÎŽR÷—˜R÷èÍ×ÑÒÔPƒûsøÜ—ÇýIoÈý—dßZ}ñê5ë2Q¥_ìÈÉÅ ¹¸¤´ìhE௩¥§äWU-+-9ŒÐßû՞ܜ¸ÒM™¸Q±úÖ*‰þ(ÌŸÊ5¦œùjšZ0ÁB˜oºDj¾£³‹»§·Ð?084< -š˜ŒÍØ…+Eè“ ýrÞпICÿö²-ÒJâîËË-Œü¾HÑ¿+C»r‰A¿áÔqEôÓ‡ÐrÑ×S†þÛè«ôQdò0ögÍþàÅì§ó³ßΰ²ßDzÿhììsÚE–û¤^hîwÿôÃ÷Êrÿàþ½…ù¹ÓmŸoF™¦¥¦$%ÄÇŠ"ÃC‚ü„^n.ÎvŸ|¼ÔÚ+â¾:ÜÿëþL©ûÓFäþ냬ìûÑTœö¦Û`T^rîKŽ ø+*+«ªª««ª*++ùG$0¡_‡ïè6ò|Z·&EL‰òWeôùÈÿ‹Œ|Eóßå5W¨¦NÌ×%æ›À|Kë¥bçàìâæá%ô  - ÅÆ'$¥¤¦áõ„ûÄó)7¿p/}>­’…þ9YèOC¿†þ=Yèc[ž=“…þ˜ÑÄ¢ßGѿΠß.C¿TR¼_Š~Ö ÑŸË‡þ[è«òQ`‚O û†JÙÏ’²¿¿XRÊaÿ;)û·†Ø,ä±³?”/hîÿB†æþ 6÷Û9¹/A›}µg7ÚtëgYpjí§ÉâU+c¢#‚Wøúxy¸ -œ¤î››Á}C}¸¯=÷'ËÜÝÁ?föÉ?/†ShÓ϶nßIr¿ˆ¸HRr¤´¬¼ü(NyyYé‘É!b~ ýÛq™2ð ÇÇ2D¨.ú/ÌüáæOcÌŸ¡h¾6Ì×7ÀV˜š™KÍw¸zxùø¬‹ˆŽY¹JœüéÿÙ¯ó§¦Ï<€ã3»¶Ó¶^Õ®³3ênµeÛµ­Š¶Ô“¢(J¹@Â}ßW¸ï„!nä’Ë£­xt­ÚŽÕvG»^ ¢v;Ý]wtº?ìÎ~žçûýæ"„p¨Øáùáû<ßçózÞOÜ¡°™ðvÃfÂÛ©É(ôÏR¡ÿ-ÌÉßnÞºƒ2BŸDŸ,¤¹£ MÊ@úÍÉw0&¹ô¥)ú2@Ÿoúk^_= ýÑ_Èk:öW²oƒØ·Ýn·Ó<û|`_†Ùo'Ù…ÙG s% <[õ‡™8ËGÙª“Le£€Áîû(÷ïܾ‰sÿªiî÷uwµ·jU8OE§ÅEù@;91.&2,$ÈŸÉðöòpsq>t`¿ƒýž];À}Û™»ÿ¢9÷ŸüsgŸìÇU§EÅ%¡¨JŠÜoP©5MZm3,­¶©Q£V5 ó¥h'K`'s2áôY }£ß`½ùË;-eþÛÈü-¶`þŽ]{ìö8äìâæáåÍ`ú…„EÂF&³á…äㄇ“ªQÛj.ôÑ|C|B?&:ô‘ùú@²jTt}ôè‘>PaôÑè’è··4©ú3B…¹ú´^n‹kÆËðøë•xi–ìW öUÀ~fÿ³Ñ³_û_°?aÄþ£°?Eî?"†Ìý{è@£Ü¿¹Å4÷{t¶µ4i”ŠZ¹*·0´JMJˆŽ dù1èžnŸv"Ý·÷·l~oÓŸÞFî¿è¾>ø—èàªîω}üGY!áQ±ˆýì¼B.r_ŒÜ¯UÔ7(U*µZ£Q«U*eC½¢™/†mäÃ6f#ôc£ÂC0ú°… }säÿJGþò§3ÿo¾æoÂæ`Gšï[èáIgø±ƒÃ"¢c’Ráö„m$_Mµ -¥¦©¥­óH¯¹Ð¿n.ô©)±:ôÿ7iLŒÑÿÁ}£/¿8; -óèwY¾Uè/¦þ]S³ÿ²1ûë¿áͰßsthäfÿ¢žý;˜ýLØÿÙ b¬¸RìS¹O²W2÷¯MÊý!”û­Íꆺ™D,,+)æäfgXñ1Qá¡Á,_º§»+¸ï¸ïcìþÛl·¼ÝËÔýU:÷_5ãþäà7Í'ú?gÃ>ú£4:É~B2;#+·€¹Ü—Èþ:…¢/…¢È—Iù¼‡Yìä}: ±àП&ógeþû[l·aó÷~¼ÏÌwu§Ñ}|YÁ¡áQ1ñpufdã=,Š«d5u êÆæÖúCæB ÈøÝ{ä„#‚Cè‰aQèß›À‚чñ¸H ?2ØßC _cŠ>Ëjô_ZDÿ9YÆJ,1e¹žý?˜eŸeÊ~ ^4wWçCÁý½»wNëþ -÷1üÜ -ðÏ}ûÄ¥ÑÌ€à°È˜ø¤ÔtÔ©r_TY%•ÉåÕ5xUËå2iU¥™Ïã ÷RzjR|LdXp“A ¿Ï^‡¾Í@ß,ùæ¿``þoHó_Åæ¯€X¥7˜¿AgþV0ÿ£»‘ù9ƒù^Þ¾Lÿ ðȘ¸ÄdvzVN~—/(UJ«kë•mK; -ýÁác'!ôÏ‘¡… ýÛcPE÷îS¡OÈc< ú ™úº.ú;‰þ-Œþý3zôú•09™l‹è¯7FÿåEôŸ«5/ìÇ'³3s -8|AE%f¿Ù€ýó¿ö¿E5£cÿÇŸ RÆjö§È}ľaîOL•û'F†úzº:Úš›ÔJE\RYQVªc+!.:2,$ПÉðö¢¹¹èÜÿÜߊܹ¿Á¬ûËûºà'Ü‘tßRð?‘˜ûvFì…FDÇ%¦ Ü¶Àý2a…H\Y%‘HaI$U•bQ…° ÌÇ—f;%1.:"4È}»…‚¾É–O•ù”ùˆüéÌgÓ»Øüõ滸yxy3˜þ!a‘ѱ I©iÄ¥YZV!–Èk ê¦æ¶Ž®ž¾¡‘&¡ -ý‰û(ôþÛ¨Šf1TQèÿ¨CÿÆ÷סˆ.ýÕEŒSúÍ*>£O¢O³ˆþrSô—ÿÐùÿŸ‹k–eöá䯄c¿æwæÙ§aö#ŒÙWûmûŸžÒ±ÿ×kˆý±q2g¨ƒ=ìS›pÿ…Ü?>ñG]=¼|üP®Freçq‹ù¥‚²r_$‹áS!,/”ò‹¹E°s™ipcÆFÁCÉßÏÇËÕ bÁ ?“Ì'Í™¿l*óm°ù›·nÛŽÍ·wØÀ ™ïIgø±ƒC#¢bã“RÒ2`ç8Å%¡¸JV]%¤mmïìî=:8||rèß BÿAèãÙ˜ úÃfƒH"TD0ãc}4—a,Ο;sêSŒ~gF_jˆ~Ä"ú¿Üe}ŒÄÌØVJkJ`¿³ž²Çýsç/Àù&Ù¿=6~—|Å’X|´­=Ù:ö©œÑçþCãÜ›”ûgQîèï9ÒÙÖÒ¤QÖ×Ê¥•¢rxÐRÅÀòóAîrØ Ü·ßƒÜß¾mëf#÷×Qî¯ÍVb÷—êÜŸ&øŸ,üsaßÉ؇_ŠŠ5&>1™îçr¸<~I©@P†—@PZÂçq9…ù`~:;¶ ½’@@ßÙi¡oMæOiþJئÕ:ó×›1×lþa¸+=é>¾¬€àÐð(Ø6ê•Ä/-UJåµõJMSK[瑞þ¡c(ôÏN -ý1ãÐhúú"²n4tèAæÿëŸ?èÃXÜ&чº€Ñ?><Ð×ÐW"ô…žýÀéÑ_¶ˆþsºæÌ~ Á~FN>‡‡Ø¯V(5ˆý¾Äþi‚ýo0û7QÔè›Fwºÿceîÿ×rîÿC—ûãúÜ¿Jåþ™QÈý‘Á£}Ý]­ÍêE\"®(+åq ós²`q1‘P­L_:ÍÝ•r—‰û ÜGÁÿ€åÈ}<‚ÿ×fÝŸßé˜ûÛívì¶wp„lu÷ôf0°ˆhÈýÂý‚Â".·˜ÇãÃâñйܢÂÂüýè¸*™ oOwg'GLijGß<ù“3Ÿ0‘O˜¿6ˆ4ÿuÒüufÌß¡7ßæ3à…—œšž™“WÈå•–Uˆ%òEƒº±¹µ£«»ïèà„þè*ô¯š }b*fúTékˆŒ!Š»071úßèŸÖ£¯Q*ª ôós2ØIV ¿ -¡¿týçuÍûÑñIûb̾–bÿsxÎ^¸„9:ã˜}”5&ìÿl%ûfš†xÉ’Uc9÷OŸúìıáÁþÞîÎö­FU_W-« %Åœ‚¼ìÌ´Ô¤„¸h× &”«¡û; Üÿ#åþZp¿‘ûdðOrßbðÏç„Ì‚ý͘ý½Ž»¸Ñè ?Ò0ì~VNn’¿¨ˆÃˆŸ—›“E˜OÜ“þ~ :ÍÍåðAG‡½ýÍÏýiÉŸ2ó ó_CæÿvÞüzómuæ;æÃëˆéžGèžLMËÌÎ+à—À TɪëêUmK{ç‘ÞþaýS§­ ýÇ0ó‡>ž„>tÐw(ƒ.]øó¹ÓŸŸ$ÐoÕj”uÕR±°”B?£OŸ}ôGÑ.—‰ÿg¿ÎŸ¢>ïŽÏdÆøCÚ8FLÓjÛD"FT@‚\‚¨( ñ¹¯……–{aYŽu¹‘{–û>–û¾EQX¯¡I”0Z±Í4Ó‰™ô§vúyžï± ¬î.Š6ÏŸð|?Ÿ×÷ý(fÿw‹Ù?@±Ø÷¤Øç'¥"ö‹€ýºF)°ß?4:~ Ø¿ìߟAìÏìÿ@±ÿ31âj³OM¸lÄéÜÿÇóstx ¯§«½UÚX_SU^*‹òs²2Ò’ùñ<.'"48ÚÕÛÓÍâ»ÔÚêå¾®œû[±ûDðÀkëaÖÑîcø ÷_7üª³O~Q̾ÁcSsKkø¤v§ìÏ:£Ügb÷Ã"~n ‹Ãò#°ùLúÎgíOÙÖ–æ¦Æ 0ú;1ú|è¿|E™/3¼ù¿ÿŒ‘Aæú3ýצ®\ôûa¤úy}~—†Ð÷|yôWÕÿÿ>/˾É~‡K°ŸWPT‚Ùoëì!ØŸ‚¼‘±ÿøÉ;ÁÏáDEEÉŠâpù!ll>ùƒ2=˜¯Aš¿i36«óͱù'àÿæ;»ád ;4œ͋㠒S32sòD…Å%å•Õu Í-mݽC#(ô§ˆÐ¿«  ôéuPcþ«häÐ'–áñ£¹Yý¯1úúmýò„~…~Fßaý·ü(d!¡*ûNˆý‚ýÄÔŒìZ¢žý„vÐSý}”?ÓP?F(ô«}B?‘ËDè3<Ýœú6«è¿ÕG~MHößU¾ž É>Ã/€Éå'¦ddå‰ÄÀ~mb¿op³Æý[` -gþ)¢oèQW“ýçþÓE¹ëæõé©+aâúz:Û[¥õ5U¥qA~nÖù´”Äs ±1Q‘a!ì_†ˆæhZæ¾)åþ¾=Ú´ûŸPîãàß°áƒõ°~Â}ùàWþW°1곿{Žž¾¡ÑA3 +ëcÇ)ÑÀ}†/ÓŸò³ƒñaƒø,¦/›ïè€nèø1k+ ³ƒF†úz:{v¿ ôß¡Ròå2ÿ·(óaÆ7À|(3ÿ“-`þÍ»žg¾=º!/†/<ˆBÂ"£bbãÏ%¦¤ÏÊÍ/KJ+ªjꥭí°ú.N\™š¾~ó–Ú¡¯útùÿú‘@­Áìƒo!~ýëÓ“—aaÚšj}±(/+#…@ŸM£o‹ÿãJÐÇ_tý_éYÂþÙ·€4´µö]=L‚ýÄ~®H,Aì7·vtìON_§Ùÿ³ÿwrÜ—Éþ‚W­‚Üÿåþ߈܇‰‡·-tÎýñ1(Þîζ–憺šÊò’b±(?'+#-9ñ\|,7*",$(ÀÏ—A”ì"÷ —¸Û°yü54°ûŠ‚-éþ™û+ÿrØß§§ŸÔÔÂ~å(÷Ï`÷=¼¼}|™~þþ,VËßßéëãíåÍ?ƒCÿèaK SB_oß›@_ ù Ì_« óa¾Á| ”ù¤ùËÌ×óõ˜_C _¿€ à°ˆ(nlþ¤JÑWýw^Ñ]=¯å,—}S‚ýSÀ¾b?42:6A’ž•+KÊ*)ö‡Ç.NL^…Ò!؈G2‡fGÎÂÆyU¹ÿå>¼naèoÓ¹?:<ØßÛÕÑ&mj¨­®,+)*æådf¤&'òãy\NDXpËÏ×{‰ûf Ü×ÒܱýSì>üà>rîäþ:ÚýÿJÁ¯œýõòìo×DìëîG´lGŽ·%Ýwqs÷ôòføøø’ÇLJáíåéîæBšo{üT¡9zí×Eèkn—GýJ£¯ùÏÍ|ôÜHdþ¦Íú36ûM-dþ>Åæ;¡—¯+(84‚ÃåÅóÉ©™9y¢’²ÊêÚ†&i[GWoÿàð(ú·aþg¾ù`îÑ+}b ¨À+€7ÂwÏ=4þW''.Ž èW–IÄB„¾ ‡Ðg1€þ)}Ð_³Šþ¯õ¨Íþn`ß@ƾ=fŸÅˆæ%’Ó3s……À~M}°ß;0<6ì_ƒ¹¿{ÿ¯ß|‡¦žz’ýgäÈ«Çþ’ÜÿEqîÏáÜŸ¹÷Ê}Âý‘¡¾ž®öVic}mUE™¤¨@˜—™žš,àÇñ¢9¡Á¤ûN‹Ý724ÐÇîïÞ¥µÜß&ï> -þ 8ø×-~µá™õQ‹ý-Û¶kj}¦½Ww¿¡‘‰‘û_Ø!÷Ï:9»º¹{xxzzáãééááîæêìt™¯BßÌ.e¿î^íÏ´4·Ã}¼&ô—\˜Jä/Í|¸‰ ó!ó±ùŸ.0ß6ÿØqÒ|0ßÇΉæÅñI©é™Ù¹Â‚"IYEUm}£´µ½«§o`h„0…þ»÷gpèÏ)ý_†¾Šè£ Âç‰>d¨ˆxëÞºyíꕉq@‚§µ©¾Ð/æf¦'#ô#úÞ€¾=…¾ñ*úoûQ‹ým4ûÆ4ûŽ®ÞLVb?±Ÿ#,,Æì·´wû£ãWà‹ØŸ!Øüd·šúŸäž·ª±¿`æ•çþ,ä>äý×®N^¾4>62ÔßÛÝÙÞÒÜXWSU^*äçfŸOOM$ÄÅDsÂCÙྸï²À} Ê}Ý}{±ûÐ¶Û øI÷qðk,~ -þµjÿìR™}ø¢Sìëèé”EíW§NÛ;8:9»¸¸ººáãêêââìäè`š4ý -MÂB±âè/½)eäS™ÿm>™ù(óeæoÝæïÔÚµ[{/˜¯Í7#¯ÄöKÂ|70ŸÉ -d‡†GFÇÄ%’RÒÏgçæˆ%¥åU5uÍ-íݽýC#cã—.CïÜ@Á]ýYúó/}5€T=xúñðÏ?ÙŸ¥Ð¿ÑôÛ[ú¥Å…œ̴dA¸ÿ-¸X”û:Ä}uUp_ž¸?ükEÿçLð/þÅ]¤°/¿(~ÉÕ54µu9È}K‚Ü>'g—®®Ýܾ"ÇÍí «ëg§}vð:,IèèÁÛÐPÇ,D"¤môE¼"±äÂO¾ÈÌ_Ce>š™æ+(*© ù,4_Î|¦óóýƒBB#¢bâ’SÙœ,n^AqiyUM]CS Ì|gw/ú·îÜ›¸? s?=½ó|ö%oòCþ®+Qè £OL>þ A·Ü±Ñ!@ÿZA¿¼¤0/›ƒèG…‡õ;}ÊãÄѯÐ×\Fÿ£?‹a_“fßÚÖÙ?rÂÃë´_@PHxTLBr:';·°¤¼ª¶¾©µ ØïÇEšgš°ÿ’ÙrßðzGÄäKÄ>½ãŠÌ}Lžç˜ûÓBôà¸A»ßÑÞÛn}]MeyiQA^N'=59!.:*<4$(0ÀO¤ûÝ.t_‹µÝW÷ådùÝ -~üŸñÃÿ‰0üK,ÿ¼T ûë)öe)öYZÝ.Æ};{G'gçý..ÈqqÙïììäè`ogدb§‹B_–B½8ô?Ü Ä$ÿSò)ó¿àÏüus™æËÉ+(*«¨ªoßæëóM„Ì? -æ{1æ‡GEÇ%$¥¦s²rò -ŠJË+kêê[.·µwÐæCè߀֡ÇÐŽK®¸ÐÿPèK„>³è2ƒÿ†É¨˜zzh»·ÇÇF†úaÁmkmª¯­ôs³9iÉ 1ˆ~€ßi/G}[k D_ÐW§Ñ—^Fÿ£=bÛP} d_Ø×ö÷XûNÈþq/d?,*&>9-#;· ˜a¿³§päúø-ûp^¾‚ùdÿoø%\rß›û¸ébîÿå)d\Xvï€û×G†úzº:Ú¯´67Ö×VW–—äæde¤§&%ÄFG†‡Sî{Ís±Û½K_¸¯¡®¦¢¬• ÁO»/ü+xîóÃÿé‚á_è•’Œ}üE7Bån••WPRQƒO9b·k·1¸oae Áoïà°ÏÑщGÇ}@¾í^kòŒw“ÏT¡šŠì<ð¤7RDü -è‹z' '_8óç̇̇w ¬¢†æk‘×€Ÿ?Ñæû‡†GFÇ&$¥¤gdæäæ•”UV×Ö76·^iïèê鹿߹÷ý˜xXp™ÐÿÛ†¾ú˜;Tí¼eЇÖyõRç)>ì·×Gû{:ô‹ r³3Ò’ãc¢ÂBÎøùxyGôý=Æ<ô–ÑÿØÏÙWà±oL±ïrØw÷òñ 8Ÿ”–‘ì—U"ûWÚ;{ú€ý°îö€;@±ÿ¾Æ ð3¹ïèܧÇÉrîÀ³ŸBî?š‚[p®ÁØ(q¿óÚUp¿áRmuEYIQ~nNfFzJR<㾿(÷-)ð ôtvji¢ûªà¾ºÏüëÄ¿8øÿ ÿ‡Ê/£öW2ìo–ÎòHîkëè÷Í ø­÷ÚØÚÚÙÙ“cggkkä[š›1¯@› -}%b«Ìfý• ¿˜‡)þïøÅIþç|äÏËüMTæËÊ)( PSר¡©µSG>}FäÓ'l¾7eþ…ðÈ‹±ñI)i™Ù¹ù…%eÕµ—Àü«8hþèØ8L;TÎÔ#œwXoaà—0ôôÉÌcêüLЧCçtɨœ[9ƒ0ëíWZ/ÕT–p³2Ò’âc"ÂÏøúx¹ú]hô ‚þï—ÑÿmŸE±¯­k`ÈcÿÐáãîž>¾þç‚Ã"£ã“R3²¸ùÀ~Í¥Æ`¿»opêãgêÑÂþ,S>oHîó±¿4¹Ïsrÿ.¼x¦|+ïMpx°¿·Ü¿ÜÒîWU”æçfgf¤¥$ÆÇ^ë¾5¸oJÐÓÝ©­ÉÒØ®¦ª¢¬¨Á?ç¾pðÕ‘þ%’_rö¥6nÚŒ­+¯¨Œ¹ÏBôÀ}#cS€ßÂÒÊÊÚz/9ÖÖVV–@¾©±ýÙcaè++ÊËnÛ"³yÓF©¥G_"ñEÿG~ò)óW0™¿V0óá“'櫨ªm×`iÒ뎥HóÏ2æ'¦¤±3³¹ù…ÅeU5—šZ.ƒùݽýƒÃ`þÍÛw'`ÖIèãn;KWš¿D¡/€>/sþújöFΓGS¸ÚÂf;<Ø×=‡~>7‹š|Îß×ÇÓýøáCüèkk‡\‰ýUË複ÿFIľ”!°¯OØ·±'ìs÷ôöõ ˆŽKLegró‹J û—¯vt÷ ÂÒK³?ó#n¼?tû0é³höçå>¹xHîÏ>†;ï“G'ñ.܆Ë0BÜïhoC÷ëjª*JÁ}nv&;-™rÿ¿ûG¾!î;:Ø¡ûf Ÿ¡>¸ò©}JŠòtðKo¢‚à_ÃÀÏ¿øùäŸÿ¢å$Rû« z û_nÙ*+¯òÍÅ®!Ào‚ò››[€ø&@¾á.}fÕQUQR‡ïÝ—ýuüDü/ôö "Å$Ÿ'>MþŸ„ÈÿɇÌ_ÃË|Ê|Ì|xpexrøâijïÔÕ30Ü _ôÍÑá˜rˆD¿´(Ÿ›ÉNMŒ‹Ž ô÷õöt?†è;ÚÛX!úúËèÿ_IØ_%†}s+{Çý®ÀþIOï3þçC#.Æ%¦°3s€ýŠêº†f`¿«w`ht è>n½@„ý¿3ì¿¥/s~Ylî¿crŸ×??aÁe îOMÞŸ€ÅwÜèëéB÷›ëÁýrp?›Í!îÇÌwÿ›«‹3å¾…™©‰è§«ƒîk¨«©‚ûàß6^ðo`‚õª•+©àÿû“_¤üï»gBNŠe5t¯þ¤2˜¼˜û´ûºú~cSú˜˜òákG›OB_nÛVüÔmú³äèKþïK ¾(ò?$’Ïd¾_æËÊAæ+«âS³´´ñ© aË1³@ó‰ùGÌ£ÌOes²¸yÅ¥å•`~cs+˜ßÕÓ70æßºsoâþä1ò×Z^èÿ‹ ýw‹ ý_xC%Î[}²×’µvúñC˜ò»·a§èíô›êª+J‹òr2Ù)‰q#BÏúŸñö< è»îGôÍM ú, u•£¿¬þoõ,œ}u –¶Ž¾¡‘)ÍþWß;ù­÷™ïÏ_ˆ¸›˜’ž™“WXB±ßv­«·hdlÙŸ|øèù zí}M}–2÷÷!÷_<ƒûð\ˆ©p#Àý±QÚý«WZÑýêJp¿ ›Åa§ -¹JÐ}Û½Vf{LŒvÓÕËÒØ®¦ -*`ðo‘¡á—ZOÿjQð€üó°dŸï]½ܰQz³Ì–m˜û”€šZÚ¿Êÿ_öë,(ª+ àxլ̘LÅèˆ×[dmšfßADDE}_DQ%‚¸7DA ÙwYDÄYÍL¦&5¾ÌTfj¾sîÒ·›ÛMãäI9/úاø¾ßý>Ÿo -þ1Aâs|=Â|øÒ¡ÝŠï–«B¨ÁEÙˆ`A_Ùß®H|YòIñÙÈ_€É‡Ì_Œ3_ƒ4e>|è4µ8’Ž©Ì·±Ãæoݶ}Ç.Âüp†ùGhó/ƒù7±ùe+ óÛž€ù0âý0ã𤟘œ"§ÌÿCŸè"oÈ)ôG‡IôaÂ[›j«+Ë"ô¯^:ŸŸ›s"+óPZJR|Ldh¿ï./ -}S#&úêsèGyöÕ)öµ0ûÆ ö}üƒB#bâSÒÒ3³²sró€ýkEÅwK–WŠjšZÛa)0ûCãh#ÞýLGöå.æç>½ïerÿíÔ›‰ñÑ‘á!؉þ¾Þž®Np¿¥©¡®FTI¸_ŒÜ¿|ñ|>›ûÁ÷]œû–BߘÇ5Ô×ÓÙ¬ÍAé Á¿FüþÅ(1ü ”¶ò³n‹˜ŠÙ_ª®±œÌ}ª|Iø¹FF<òqIòé× úË5Ô—Î}e~·’â«JG>&¾,ùùjèžË˜™. \VOßË3æ› „–`¾ƒ“bósrÏæƒù…`~ñÂ|QM]CS ˜¯ÙÞ¾~<à#0áð • ý÷’)Ÿ6æ3̹ô©G/Z˜ðá!1 ž³í­M µ"@¿änq _—›“•™ž–’äçƒÐwq´CècôµæÐÿ´ÎLìÿ™•}]̾…µ£Ë`ß/04":>19-ýpVö©Ü¼‚‹W®böË*DµõM-íϺa-ÄÀþfÿ¯ öÉ -¢"è·Ùçþ¿é܇@+ÁpjòÍÄØèÈk¼}½Ý]í ÷KîÝAG¸ï¿»ïáîîÛÛZ[Z˜›™šðŒ pþ¢àÿ~ -þeKˆÿ"eàg&¿ - ürä—Y<65?cc¹¿j Ü_¹šrŸCÀ¯§¯o```þÑ××#ÈçPæ¯^‰B_>nè†  Ë± Ï¦¾ÂŸÌ&þ¤Å—D>ƒü?É#2 Î|D>•ù?l >pºz†F<¾™¹ÐÒ™ïâæN™ŠÌß+c~eþ½’RÚüÖöŽÎ.nˆñ:"4Ðßî±з¶ô¹º›9€>z½aôÕôá:‡þG|³Jì«aö¿[¹z-°Ïö¹Æ¦’ýí;wû†DDÇ%&ïO?|ôø©3gÏû7nݹ_ZVQUSߨҫуÙ=2†Z­žüÜŸ}–Ü'–oé>äþä›ñ±Ñá׃â—/žCÁn´67ÖׂûåJ ÷¯‚ûÓÜ!Ý÷ñÞéå‰Üwv÷­,̦&ÆF\ü›¨à_K¹á_ð£üÓ’ŸU~¹ô+¤“úƒ2Ù'r±>å(÷WP L¿YGG—>::›Iò7æ¯ZCºÞ_Y(…¾ª|ô•ûՊħ#ŸIþRä-M¾LækÂáÓ¦oÀ5261˜[XYÛÚ;"ó=<½vzûìñ—gþ…Ë…WIó•Wˆªkë›Á|xÇöÂCv@<ø’fÌûŽ4·$kfúÿ•úúÄpÃl ÑîlG[Kc}MÕc@ÿÎ-@ÿ¹³gN?zøàþ䄸èð@¿Ý;)ô4úëÖ®†×›}ü‡¿èçsè¬G.ûŸÿ- !a9b°¯­«Ï5æ#öœ1û{C£âöí?˜qôøÉÓgÏ]¸üÓu`ÿÁ£ÇU5uÍmOžvõÀr¼öa5ÈÍø;ìÊ}yìxîÿÊÈ}ÔCã(ˆ_ ô¿xÞÓýìéÂýêª -ÊýëÓÜOÅîGE0ÜߺÅÜ·³±² -ÌøÆ<. -~P£(üþÅü_Ë…_qò+ýòý¤b_úCŽØ_¸¹ˆs>櫈&àçlÚ´I›<ð_E>q=|;t7µo-$ÐÿB}úw¨ø’ûË‹ü™ÈGwSWgÏÌ|}C.Ϙo&ZXÙ€ùή[¤Í‰Cæ§Éš6¿Š0¦úY7ŒuÿÀ«Á¡al4ŒÐÿõÿ }vôñlSEAïØAxÆ>ïézú¤­¹±®ºêñ£÷nß¼þÓe@ÿôÉãG3îß—°£ïì` èó¹úºÚúË¿UG·EsèG)öÁˆ%K)ö×ìó€}+[g·­ž;vï ŠMØ—z0ãȱ“§Ì?ìß¼}ïÁ£òÊ꺆æVX’ýáÑñ‰É©w?Ó»AåYCä^|xî“=ÄtòÍĬ¸ÿ²¿Üo“q¿ˆÅýdÂý° ?ßÝ»vlßî»89ØÙX[ -ÍÍÈà×eÿšÕ+IøÕ—)„Ÿ%ù•_YH%|ʰ?Ÿfå>ªa¦û~M--­äÿj"ò¥Ì‡}èÏN}ÖÄ—#>3ò‘O^ ™O}Ñ$™Ï3á›™ -­mìœÀü­Û¶æ…„EDaóS¥Í¿æI›ßæÃ öy_? 5¼aGá;É4ÿ2æHè³F›~ÈR=c=591>ŠbÐG)ÓÚÜP[ ïWýKçó<}òØ‘Œ©ûöÆF…ú;<·ºúVBŸG ¿~ýOòÌÌþWû$ûšmľ™bßÛ7 8,2voRêCGŽÈÉÍ?©ðZQñÝ’‡å•¢Ú†¦ÖöŽgݽ}ýâ¡aXÉ©·°4ûÿ|/DšûdÁvàõ Ü;E¹/Fî÷ötu‚û-M -ÜÏÄî'%ȸïáîîÛÛZ[Y¦ŒàçILÿ ð) ¿D~U¦ü*ìò+Á)ƒP…ì/¡Ü'‹Ë¿~}Öcñ™¯u"ô%èÏ—‹¾Ò?sšø*LñU™â3ÉÿRùÄ$—"1ŒÌ7˜[XYÛÚ;8¹¸¹ƒù;víöõ  ÌOJÆæ•6ÿ–Äüº†&Òü^d¾˜2Ï46O5®âû{…>>žiixÁŠ` »Ÿu´·6Õ׊*Ë–Ü-.ºVèçæœ8–yè@jÒÞØÈ°à_o}3>ÏP_G›£I¢¯A¡ÿýysèćýy -ÙßìòLûöN®îˆ}ÿ °È˜½I)i‡2³²sró -.ì—–Uˆjê›ZÚ;:)öG`G¦Þ¾ƒ!ØG¹OîÇ,ØŸæ¾lîSY„º¹?>6:üzP<ðò¬IWgv¿®F¾ûéØýøØèÈðÐ`pßÇ{§—'¸ïêìhogcÅ~=ÍÚüš¨,ÆFb$ð/”†ºüóÈ?ú™Žª0þ ô_”Õ}0Éÿý:ú|ć밚Ï@Ÿ6Bå3%Õ—>‹øóXÄg%_"ŸñƒÌò¥2_ ´´²±µwtvus÷ðô’˜Ÿ@˜Ÿ)kþmÒ|Q 6†¹ ¦ùÅË1z½Ž#ó!ô¡°ÓC_IóeÑÿ}r¤QÈÀ@Ã< qîéhki¬¯U”•ÞGè_¹X—›“•y(-%)>&2,Èß×Ûk›»«“½  o‚Ñß8úªsèÄGjIöUYØ_L°¿j b“Žž¡°oiƒØßæµËÇ?(4"&>1%-ýpVö©3Àþ•«7nݹ_Zö¸ª¦®òêèù‹—¯¡`M`Kþö ûïqî³mˆ2 Bgåþ{"ŒH÷ÿÇ~}U}åP×1‰ÎW£âª±&±Ð{ïÍ‚ -ˆ`CªTéU:ÒAPTÄ‚t)ÒD5JUAÚÎÄìN’Ýd3ÙÝ<ìïœóo÷Þÿ”Ììœ'x;wîï÷¹ßóž¸? -{B¹ÿ-vÿ1q¿–ÏýÔdì~DX(㾓ƒvßÊÒ|?¿©‰‘¾.ürü’8ø§¿Hò/â&?%ÿù…éç—USNì3ìsrŸu )7ý[¶âÀ¿›6²oòAèÐç Ï—úS]Nüyà³â/$â G>!™PåÿE|È|)i9y%&ó ŒŒMwï5ÛoniuÈæÈ1[;§“®îž”ùQ1Øüt®ùw°ùÕÄ|x·vÁÃõÛW=}ýƒ¨aFpÄСÿãOäùú ×|ºd¦‡>·dئCÿû÷0Í1ðvì‡Q~Þ ×–G k*ýÛ7Š®úY©Iñ±Qá¡~ޮζG)ô tµ5T•ä¤ý¯¶lÚèK¬^É‹>ù:¾Éÿ¯Tsç<¢ìÏça9°/ìoØ´å«ohöµtYöí\=¼|C¢bãS3²rò -®ߺ[Z^YS×ÐÔÒÖÑù”bÿíðÈèøŠ#!ög˜ûxK¨4‚5Á{º?>6 -«òöõ`_rÿ)¸ßFܯæu?1¸èïë î»8Cð?zØÚ -‚¿‰`ðËËÊH£àÇð3…, -ÿTÉÏ'ÿdô +$*û‹1ût¸ù!úéÿl€Ï@ˆUtècô‹AÞT·š|^ñ'‰|~ò±ù„|IiY9”ùêœÌ߻¥•5Ê|ÖüÀàÐ0b~r*1¿€2ÿ^iÙƒJb~‹°ù0ɸ`(óñ0ãi&Wfœ?&ôÿà }}eT0ÃhýgO;;ÚZšêª+ËKïÞ*¾VX—“•‘’èëåáêdÐ7ß·¡¯¥¡ª¤ èƒÐ_OÐ_ΠÿÉú³äLÆþ'„ý¥4ûk×cö·KJË*(©ªûF¦{ö™´>rÜÞÉÅÝË7 8,2&.1%=3;¯ ðb¿¬¢º®¾©¹íq'ìËËž¾TH(ЮPìæP‹Bçþï3Ë}²)dU(÷'ÀýwH”ûÏaaÀý>÷ss(÷ãb£#)÷Oy¸÷Qð„à7ã¿†šª²’¢¼œ¬Œ†Ÿ -þ)àŸJþ? ÊÏ¥ŸÏ~^Vç‹aç>ë>†Ég>è/_Ÿ5‡¾ô…ÕŸübBàÏç€?©ø“’Ïd>"_JZV4ó÷˜í?`qð 2ßÞÑÙÅÍã”·¯?1?6.!‘2ÿ¢óa†Ÿcó^ãÆxœÌñßþN&‡þ¿fú¿S¡Ï¢OO2šã¿NÀC½ ôõ¼„vnnª¯­®(+!èçfg¦§œ‹‰ ðõrwq²?~Äú  ojè«ô·ô×Òè/C¶a§´¬¼’Šº–Ž>þ£‹û)Ÿ€àÓ1qg“Ó2³só/_½~óNIYEUm}cs+tR7fðÍлÔHT"ýô侈û¿B¢éû÷ûŒûý½=/§pÿ|fí~øé ?/þ“Nv¶ÇŽ@ð[Bðïå¿šŠ²’‚¼œŒ4ÀO‚_~ ~l'†'ÿü´üâ£_€þI‰'¨>Í>|£è+¥s9'’äç¸7&ŸÜ|9úHL…¾€úÓ¸?øB‰O‰Ï¿„D>!ÿÏèâbÉß¶‘/ä+*£Ì×ÒÖe3ßÜÒêÍ‘c¶8óióO‡GFÓæŸÏÉå1ÿcþËž^dþÛa4ÃlèÿˆÇ˜;Çl¾hèã9fBÿýwèÍ:ònèÍ BÿywדöÖæÆ‡µUÊJîܼ~õr~nö¹´ä³qѧƒý}N¹»8Ú1èëëh©«(ÉËJïdÑ_µrÅú³óL‡ýÏ¡¬V®’Xð/…Ù×öMv›°qÿj eü+ȧ, -}1èÏŸÆu„¼_¼ø"‘Oß®Œ~ªÉ߱ȗ•SPTRQUÓ 2ß„É|k”ùØ|wO/¿€ bþÙ¤”´ŒLÖüÛwKîSæ7"ó;:Ÿv ˜?*`>õd¥‡˜™â¡O½Y)ôñƒutºe°¿^«Ýí-ÖT=¸ïö¢+—.^8.-)áLtDh¿§ÛIG»c‡Y0Ûmèkbô¥ô×ô?ŸCVždãæ­_û2òŠ*jš:z†4û'œÝ<½ý‚BãÎ$$¥fd]¸xéJ°_Z^YS×ÐÔÒ›ó ±?ðÖm ZÂ>Ê}†ý³ 3ƒÜgÜÿëþ(vr¿ûigŸû…—ò9îÇDE„…úûzŸòpsqv´GÁoÁoŽƒßÔØÈ@_WGKS]MUà—Cðï†~JQ€)“ü‚ò/bäG¿ ýüG@}šýOQ;£Ü§ÝGˆbùÁQö¬Æâsn»”„>Á Ï£þ”×þB -|añ—ñ ùÔmÅ“/‰È—WTRVUS×äÍüöŽÎ.t懆EDÅœ‰ç𵍸&2¿¼‚×üÁ7o‡„ÌÿcþLCÿ¿ì#ôÿù‚>_4½0¼¯úz_½€béhkij¨«©,/½{ £Ÿ“•‘š”èçíéæìp‚FßPOGSMEQ^Ðÿzëæ<è/šCvIØ_$Âþº/ûÛvHÉÈ)*«ihëïÚ»ßÂÊæ¨­ƒ³«‡—_`HXTl|bJFVN^Aáµâ[wKË+ªëꛚÛ?yúìÅËž>`èÝè,ÝJ(÷ak~ýàÜÙ÷fÖ†q ÜBî÷Må~Þ…ì¬sé©É‰÷©àw°CÁoMÿ.cC=]m- u5€_Á/Éÿ”Ï`é -äŸD~>ú§k? ¬(ûKH=SñŒáL¹g%C>e>}ôL÷&\ïEÀ+>7òW ß'øu‚gÉÚuˆüäK!ò””UÔÔ5´´uôô …2ß–d¾°ù©éç²²/äå_*dͯ¢ÍoÇæÃÜööÑæ1æ3Ñò³¨ù1ÀlèÿŠ«…ý÷ߡхɅ‡j_ÏËϺž»Ã²/’û˜J¬û¿±‹ƒ6‡¬åþ8¸?̸ÿBÀý1î'ÄÅFG†Ÿ -ð÷I🠂ßâÀ>³=»MMŒ õõt´55ÔU~~ø×ü"ÉÏ/ÿ§”üâéçÚÏ«.GYZ}šýÏÓ Í‚ -òcûñA¯üiB÷[üƒ>G}qì ]pÁ¤à/"àóŠ/ù@þzDþ&^òUÕ54µutõ ŒŒMéÌ·†Ì?Ž3ßÕÝÓËÇ/ (ätxdtl\Bb²Xó›ˆù]ÈüWÈ|¨•a0Ï-˜O&—Œ.,¿ ˜?£Ðgч¹ƒ±}3Øßû -Z¥ëI{ë£Æ‡µUÊJîܼ~õr~nvfzÊÙ¸˜È°àÿ±_ŸAU¥gÇ'Ù][2³q]\¥‰XÖ­Š  ôÞ{ï½JGéˆH•Þ{ï½)‚ë8 *ê¬;ÙÝd²L2î$ÎäyO¿çž«HÌä¼ßøtÞžçwÿoä™Ð O -}m 5e…“²2ÇÒè o¢¿áÏÚØÿc_ ±±/ì+(«jhë›YÚØ;¹zøø†„GÆÄ'&§^ÊÊÍökê›ZÛ»z†G'¦fæP7á쯶;L”û¿ ÷|I¸¿‚Ü Èý–¦†ºšªŠ²’¢‚¼ÜìÌKŒà ¢ƒßÁÎÆÚÒÜÌÄØÐ@OW[KC ü ?ÀÉ/.NÂäÇ]åŸýüô ´Ÿ}hg‰Ø'Ùg¹®"ùG]×| -}*õ·¼Ç%(ï¹À'ŸK|D>ú="Èò÷#òñ‘/ä+*«¨"òuôô LÌÌ-™™ïÀÎüìܼ‚¢’²Šªš:†ù£‚̆ÌÇÞ¨¿PæcÏTÔ+ÌÐ_“ùœ¡ÿšx§’ÏTbh_<[…‘ÅЇy]˜›™šèíjoAè—åçf]º˜œèïãáêdocifl «­¡Š¡/…Ð?ŒÐÃÐÿ|ý ~ÞÅ>¸³¿c_òàá#_ûÒ²ò -JªêZ4ûÞ~!áÑq‰ÉÓ3só‹J+ªë[Ú»zú‡Fǧ®Ì]]¼qkéîý‡–a‡`…ð ¢rŸJ¦÷Z®ÜÿÈ}Òý_q÷±ÜGî?àþ8î~WG›÷‰àĂ߂ßÑÞÖÆÊÒÜÔÄÈP_OG[SC]UEY‘~<ùHBòïƒäåM~LW†ü¼ÑÏG?Ÿý‚äe`KÆ>û„û8ü¸ýØÁÿ¢.õ)}fê¿•}æíx¼çŸN|Z|êBE>¿È—Däƒø‚È×ÄÉ765·°Â3ß e¾‘ùÜæ74µ´1ÍŸ…Y`þŸÉ‘ý•6ÿŸ<æ¯gn ôÉG*ú?ÿ  óºü^§K·n,^…Qêïéloi¬«®(-ÊËÉL¿˜œàçíáêhgmÐ×RWUR—•–:úí×G”ôE„÷`è#óßþÿÙ¥Íó¿=ogË}`_ØÛ'±ÿí÷RÒ'äO)©¨kéè™ZXÛ9º¸{ù‡ŠK8Ÿ’–™“WXR^UÛÐÜÖÙÓ78269=;¿x6éþCÈýÇOWŸÃÁQìã¹O-п֗ûl÷_Ý´&÷'‘û}=„ûµÕ•å¥Å…ù—s²2ÒSS’“âc£Áï Áïä`okmeanjldÀ ÿ1€ŸHþCQòKàÉ/*",Œ'?Ÿü¼ÑÏ¢Ÿe?þ‡ò–TŸ`Ÿv7–}°ÛÐæÓèêo]óÇYÞóO%>—ø{ö - câCäK È?HD>F¾ùjšZ:ºú@¾™…¥µ­d¾;#ó#£cã’’SRÓ3²r.ç—–“æwtõ`æSæß"̇§éc>óÿ†¿O_­×|ŽÐÿ} -}W˜Vxœ>ÆCÿöÍë‹ó³Ó“c#ƒ}ÝmÍ µUå%…y9i)çb£Î†øz¹» ôMôu´ÔU”NÉŸ–úG_G_ˆ@ÿ›èoèÃÌ}ö·mGH öw’ì‹“ì“>!wJQEM±oneëàìîå{:(ôlT칤”´ŒìËÅeUµõM­Ý}ÃcÓ3ó ×nܾsï°¿ò6  íƾÀܳ.÷_¿§ûׯÎîáî·67ÖÓîÓÁƒ -~/7WgG;kK 3 ~]-M 5üDòüÌäCÉÏ+ÿ.¦µÜôóÚOáÏ 0Ýmtìÿ–ƒ£–uvb÷øý „Ýø¼ '[{’{¦÷à3~v±ÅcF>N>ùÜ䛘™[ZÛØÙ;:»¸y@æûã™Ag>e~eum}c3f~ß2R€ùÏ™æc‘Âcþëu›Ïú}lV±Ð_…AÅÑ¿qmanfzbtx ·»£µ©¾¦²¬¸àrvFê…¤s±QgBƒNûz¹9;ØZ™›êëhª©(ž’;!}ŒD_œD'†>üC·oãCÿw›èo”Ãbÿ#œý-löwïÙ+"ŠØ?ôåWÀþq¹“ŠÊjšÚz†&ûnž>þA¡g"câ“.¤^ÊÊÍ/.«¬©ojiïꟺ2wjéîý‡–Wž<…€‚]"ò åþ«ÿ*÷ßðç>±Hä& rÿíþôäøØr¿»³s¿¦ª¢¬¤¨ /Ü'ƒ? þ`~_oOw7'G{;+Ks3cC6ür<ðãÉ’?–ü|òóE?›~û)üiýùÃ]:öéÀ&ágüô³ƒL}šýw~“âžá='øtâó‹‘¿"ÿù¼äËó¯Goeckïèäâêîéíãw:™ùÈüÌìܼ‚¢’²Š*ÌüÖöNdþИ?}evþêâõ·™O -™(|¡ÿ>•‚O+ù6%…ýŸaN!ôŸ=}¼²üèáý»K·nÀ‹ôÊÔøèPoW{Kc]MeiQ~nÖ¥Ô ‰ñ1‘gBý}Êý|°Ü'û (Âý¿2ÜN¹ÿÜ_Bî/ÌÏÎLON ÷û{‘û-M uÈ}<ø³2ÒSñàÅ‚?‚ßÏÇËÓÝÕÅÉÁÞ–‚_?$??3ùA~ .ù…(ù¹égÚOâOë¿õ-øn'Õ'Øg¸ÏC?þ7m>Ž>õÜüs³•õA’{Ú{.ðIñ…¸Ä— Ä'"Ÿ$"Ÿƒ|Ss +k[{'gWw/_ÿ€ ”ù‘xæ'§¤¦ã™™_S×ЄÌïîíóÇÀü™5›=K©A]Oè¿úúhH_þðâùêÓÇ(ôïß¹}óú"TÉäøÈ`Og[sc]uEiQ^NfúÅäĸèˆð@?oW'{K3c=m Ue…“²2Ç~÷ B?…þgú;ô?ÙDÃ~ö?ædÿ‹½Â¢âûöJÉÈÊ+(©jhéRì{û‡EDÇ%œOIÏÌÉ+,)¯ªmhnëèž™_¸vóö{€ý•'«ü¹ÿ÷õåþqÿ&rnfz -Ü÷»:ÚZš ø«+ËÁ}<øÓðàCÁàïëíåáæêìä`gkmeanJïð+)ð³“ä—dÉÏý¼ô³ì'ñ§ôgðÏ ðJ}’}†ûÌó)Ç7Éï½û[¤ö8÷<Þs‚O'>K|IŸ#ò1ò•¸È·sptvuóðòöõ? -™Å“ù`~qiyeu-˜ßÒÖÌ›ÀÌ_@æ/ݹ‡Ì_æ3ÿ/Âüµ†þO0 è=údeЇÇèk ó3ÓcÃ}Ý­Í µUå%…y9i)çâ¢Ï†øy»»8ÚY#ôuµ4T•äee¤Hô÷‰‹ -ïýb·Ð.~ô?ÞDÃ&û¿çe;Åþ.œ}1Äþá#ˆ}iYùSJ*êZºúF¦ÖvŽ.î^¾§ƒÃÎFÅžKJIËȾ\P\VYSßÔÚÑÕ;04:153wõ¬Öد¯ ¨²4€ãUû°3ê–c¹Š ÉÁ1ŠˆJh¢da (Š’sMÎI$‰‚€ä;G iÉAdPÁ¸U[;;û05ëÖ¬³µ{ν}›{ow3jáÓò=öù/çûõÿ€Ü_zö -®تUö±Üÿð©¹/×ýòÜÿÇZîC÷‡<.›I§ ôõtu¶·÷aðWU–£ÁŸ‹?TDXHp ¿ßmŸ›Þ×¼®Èß ÂoD€_’ü@~­5äG¢Ÿ@?Áa<þ²ú“†”Üxö òK~Ø*G}™G†Üï`Ú¯rOþÁÀ'$¾¬ø òuÑÈ?B ßÈ’o.ükÞ7|nûú‡„E€ÌO„™Ÿ)ÉüÒr$óë56·¶wtõô óÙž@8,921…˜¿ˆ˜ÿRŽù?“Ìÿðyæ“BÿzCWCÿ'x;áå|µ²ü|iqa*¾²|ñe"ojÈ·¢XÛJÈw»è‘Ë×? ($,<2:&.! f~>ókjëAæ·¶wvói &›Ë ˆÄm¾¤J÷sBÿ_ï±Ë ¯&¸™ïÞ¾~¹ò }ðâsYŒÁ¾îζ憺šû•e%Eù9™©Ô„بð_o¯Ëžî.Žö¶ scC}½ãGôµ4úûöîÞ¥´ƒ€þWèoÌï³Üìïܵ{ï¾ýªjöÐ78c|ÎÌ‚bcï育ï“@MÍÈÎ+¼SZÙojíèî 39|á0Ȫə¹'€ýç`½Þ¼û X®ååþoëû8÷ßËuÿtqÿ)âþäø˜,™Ïå°ôÁþÞž®Ž6üuWƒ?Z -51!.&*2<4$(Àß÷~g~Š•¥€$?~DþƒdùUQù¥ÑÑOÈþmŠT^ÕÏófE£è¯¥>úù_ÀLü€¼•mÄÀÇÀ_M|(¾*Yüƒˆøòaäò-qä»ò/]¹Š’ïŸHM™ŸËüê‡0ó[Ú:ºº{ûi ‡ËŒŠÇÆ'§ffç¡ùÏ›ÿ ÉüÏ -ýÿ*ýb¡ÿ÷Áµ·ÄxƒBô'ÁtXÈã0é½Ý­Mj««*Jïæeg¤&ÅÇD†øÞ¼~õ’D߯ÊÂìœñýÇ$è«¡èïèó7Ðßüüûhîcì«öµu¿=t䨉“gŒÎ™·²±»àìæqéêõ›·ýƒB#bâ“RÒ³r ŠK+ªªk5¶´wõöÓ˜lž`X$Ÿœž_XYs,Ü/ ûÄÜÿíSrÿ#Üÿe ÷—P÷§''ÆŽ <›I§ ôõ€àom–9 þü™é©ÉÔÄøØ˜¨ˆðÐà ?YøüÖþóæ~Ròãå×ÖÒÔÔPW‡òËÒ¯„ÑO²ÿ²ÍÎ8¡ñ¿àÈ—˜¯}Œ}Â٤÷Gæìod¼GÁW’Н®®¡©©¥_&òMLAäòmò!ùž ò¯^».%?,"*:6>1)95=#+'f~éjæ7ƒÌï™?Hg²8< Ðü Ôü§ˆù+_Æ|…¡ÿ«$ôQôá„OÐׯÀ…\Z\˜Ÿž‹†<6ƒÖßÓÕÞÒX_[}¯ünqAnVzJR\tDhÿm}7ç v6VçMÏ18yâØ‘Cßêjkj¨©ìß·A ý ô7?k³¿EʾÒî=û”UÔÔ5ö¿;~òÔi£³¦ç-­û®¿¿ríÆ-¿ÀЈè¸Ää´Ìœ‚â»å÷<¬olnëìéd°¸|WcShîƒ-{-“ûè~Áíú€Ïý/çþ[èþ2âþÂütô•h,—ÍbÐú{»Að·Hƒ¿qa~nNVFZjrRB|ltTDXhp ~7g§ ö~ -„&??&ÿ²ü’èWAä—ÐOÊ~‰ýþ2úK–(ý'âÈWh>Îý­äS±³e%k¹'x¾|(¾Š4ñ‰âÁÄÇÈG#ßÂ’bmckïÉwCÉ÷äß„äBò#£cã’’SÒ2²²sóaæ—Á̯™ß2¿³»·o€Æ`²¹¸W^R”Ÿ“™–œèwëÆµ+ß_tur°³¶15=;7¿ðô`þ24ÿ­"ó%è+0½Bÿ¯ ôß¼z¹ü>zLOßÀÐØÄÌ‚bkïè⎰’žWx§´¢ªºöQSK{Wo?Éæ †Dâ±ÉéÙùPX/V^]«ö7™Üÿurç>¾B÷Aa¡î/.<™›™šŽ <›I§ ôõvw¢Á__[óàþ½Š²Ò’₼œìÌôÔj¢ø¯^¾äéqÑÍÕÅÉñ‚ƒ>ùÉOˆ~u$úû!ý$û1üIúË›0øœ—¾úF:¯=Æ=Ñ{|è=L|uBâ¯%>ùv ò\\!ù—dɉKH¤¦¤¦gfåä—Ü-«Í|:“Åáñ…Ã#£â±ñÉ©™Ù¹'ˆù/ ùo>Åüõ ý÷äÐý±Bqa~vzbL,pÙ ZOW{Kã£ÚꪊÒ;…yÿc¿¾‚¢J³ŽWÍÖŒ£³U[cŒ( -*%""‚HÎ9Óä,H$çœS74MÎHΚîAÔQw¶¬Úrvvkj·¦ÖÝÚ‡ýîwCßneÔ§éóÜ}ŸîùÿMJˆ‹Ž  ô£x¸:ÙÛXš›Ü3ÐÓ½©u]íš’ÂÕ˲¥Ï=}ò„„8@_XèÈ!^ô¿ /ÒÝÇÙÿe?—ýÃBÂ"¢bâ’8ûròJ*jZÚ·ô Í,mì\=¼}‚Ãî?ˆMHJÍÈÎ+,)¯ª¥50ZÚ;{ú†G'¦fæ—™ ÷7žÂÜÿæþÛÏ‘û{qÿg^÷_÷·€ûëö*seiq~nfzrbltxüôzj]MUEyiqQA^NvfzZJR"8~Wg'~kK sSc#Cnòù!ü<ò_’•ôKãÑOÐí'²Ÿ°Ÿ¨?Êÿ÷;âÍ/ý÷;ή7àý'ĵçåž×{4ðñ‡ࣉ/ À—‘½Ä#>$‹|Cù¦æ–Ö6¶öNÛŸ˜”’šž™“WPX\ZVQÅÍüŽ®ž^$óAsLNÏÌÍ/.­0WÙœµ'›[Àü—¯¾Œù¼¡ÿß÷BGŸúO7Ö9,æòâÜÌøØèëéloa4Pk«ÊK -ó²3R=Œ}p?,8À×EßÌØP_ï–¶–†šŠ’¼޾¤„¸˜¨ˆ°Ða.úûQô¿FÐÿ†¾Àüßýð±çþ¾}¼ììGØ—:Aæ’œ¼¢Šª†¦¶Îm}CcS k;Gw/ÿ Ðˆ¨Ø‡RÒ³r ŠË*k¨õÍmÝ}‡FÆ'§ç°ÜßÂs.¶nŸ’û¿Å}ØYÀý€û µÖר¬Õ•åEüÓSã£Xðwu´µ63hTüe%Å…ùy9Y™é©þXü¾oO~G{;k+ s3Scü0ùüDò£òúå®ðG?/ý\ûùñ'ô'ñO\€]çàŽóñ>D`kÏÇ=×{>ðyˆ/¯@‰|(>ˆ|ùÆ ò-¬¬mìò]Ý<<½)¾~(ù‘ùÉ©éY9yù…Å%eå•Õµu´þÌŸ˜šž[X\^a²Øœõ' :žìà5ÿç/cþn¡ÿWPhèomÂÐ_Z˜›žzÜ×ÝÑÖÜXO­©,+.ÈÍJOyäïãåîâhgmajd¨[G[SCUEQ^î’Ì…óRgúÇ!úGôÿD ¿o7ôè ²ÜGÙ?*v °ê dÿÊUEeUuÍ:ºw[Ù:8»yRüCÂ#câ“Ó2sò‹J+ªëêéM­í]½ýƒÃcÓ³Hî³×@{rÿÍ®¹ÿe݇ÁºÿÔÖæÆú‡µÊ\Æ‚|l„þ¶–&½žVWS]Y^VRT˜Ÿ›“•‘žš¼-üî®.NŽv¶6Vää×»%?”_ÊD¿7ú!ýXõóÛÏ?®?äõ=ä#°ÝÚq>ê_‡ ë!ö˜ö|ÜóyO> ->–øˆøŠP|U\|$ò¡øDä[ÙØÚ98:¹lGþCŒüìÜü‚¢’Òòʪš:j=½±©¥µ½“ÈüñÉ©™Ùù…¥å•U¼y›Àü¨ùù»™ÿî“Ìç ý_yCÿ- ý_¿͇þüìÔÄØð`oW{kVW]QZ”Ÿ“™–œèGñtsv°µ271º{GW熦ºª²âÕ+(ú§NH?&vTD Cô¿ /lÈìõ>ûhîö… û'N9{Nú"`_Aùšúõ7uõ [ÚØ;¹zxû‡EFÇ%$¥fdç–”WÕÒ-m=}C£ãS3s ËL®Í­ç/^¾þó_vÈý“Vno Çïþ»í܇{ƒÿ \=ÄýgÀý'ë6‹¹²´¸0Ç þ~,ø›ꩵ5U•å¥%Eù¹Ù¼ðG„…øûúx{y¸»¹8;9Àä·Éo’È&?*?Œ~ ?ˆ~y,úyè—Âè'Ûσ?IÌô7àóþl!Üz²ödîÉÞ£àKñƒ$>_ ŠÀ'Ä‘ˆÏÈ„ù.nî^Þ>¾þAÁ¡a÷£òÓ¸äWTÕÔRi ŒæV"ó‡GÇ`æÏ/.­0WÙœµ'ÀügÏ¡ùxæïÕü=†>¹;þõO4ôÿŽ~kb¡ÿ } ý™©ñÑ¡¾žÎ¶Fµ¶ª¼¤0/;#5)!öÁý°à_oW'{K3“{zº7µ®«]SV¸zEö¢ô¹³} ýƒý?~'@_0»Ìî쇲°/|Tô˜¸Ä‰“§öe/Ë)(©¨ihißÒÓ746³´±stq÷òñ -»ÿ öᣔô¬Ü‚â²Êj}cs[Gwïã¡‘±ÉéÙ…¥•U6XÀ§ ¹vÈý_?)÷wwlÞ/˜û?î#ÁÜßz -Ü_c³VW–—ægg¦@ð!Áß3ƒÞ@£ÖVWU”—c𧽿ŸÅËÓÃÍÕ™›üf ùùïàòãш~”~YŒ~i”~²ý|ø“ôGýG~xîy„v˜ü{¸f=Y{^îIÞ£àKcàË¢à‰ O|\ü;P|c3nä;#‘ïEÙžüÌìܼ‚¢b„üêÚ:ZÑÔÒ†d~æ3YlP›[À|˜ù˜ùoá‹·ƒùäêØ«ùÿã}ù¶ ý70ô_€Ð²Æ^]YšŸž|ÜÛÝÑÚÜX_WSYV\›•žòèalTDh¿—»‹£µ…™±¡¾Þ-m- 5%¹ËýÓ'OHˆ=*,täŽþû¿ /˜ggö¿ÝàÎþ¡ÃBÂ"¢bâ’ûç/öåUT54µunëß52µ°¶spvó¤ø…FDÅÄ'&§eæä•VT×ÑèM-í]=ýƒÃ£S3ó‹0÷Á>ÿáC¹ÿþÅÛ}íöàþ?Þwìàþõ5{ þyžàïéêlomibÐëiuüeüy$øãb¢£"#ÂCC‚ýý|)ÞžDòÛZ#ò›’äçF¿:ý€~‚~Xý¤ìöóàÏÕçúìïÀoîƒD°G‹bÖãØÚóp{ŸTø|øÊhâ«sŸ$¾)"¾µ-ù®îžÞ_?ÿÀ ÐðˆÈ¨è˜¸øù…Å¥e•ùõôƦ–ÖöŽ®žÞþǃC#£ã ógÌ_f®²8kàu{ºõ f>×üŸ0ó¯Ýç6ÿáÿ†þÆ:‡Å\^œŸ™šèïéjoi¢Ój«+J‹òs2Ó’ãc"ÃCý(žnζV¦Fwõoëhkj¨ª(ÊË]–¹p^ - /)!.&*",tX€¾`>vv`ÿ~ö@öKž6ÿ9eþßá{õÌß)ôÿµ›ÐßX_YZ˜›™êïéêhmn¨¯­*/)ÌËÎHKŠg³"ÂC®\õõºäyËI;kKs#Ýã} 5UeE„þú}h¾}ñì01Ý߇Üÿ Ê}À¾fÿwŸAö%¥eää•UûšÚ€}}C3 kÛ'Ýθ{\ôò쇄G°ØñI©œ¬Ü‚â²ÊšÛ M-íÝ}ƒÃc“Ósó‹+kTî?ÊýW¯ÑO‘û¿¢û? ÷™ÁÿgüOAð?BÁ¿ƒia~nvzjb|tdh°ÃßÚÒ,nvV'-59)!>ŽÃ"ÉŒ“ÿŠŸhùIô3é7240Ð×#ÙOu?¦þ„ä?ZhÐK€Z{êr "E=´ž‰=ÖžÁ=å= -|=}C#&ø$ñE‹ïÄ¿æt=˜D>+†Ÿ”œšÆÉÈÊÎÍ+"¿£³ “?:>15=‹3‘ùOÁ=æó2_”ùük>ú?Ó¡ÿú 1ÀEã…þÚòâüìôÄØð`_wg{ ýšÊ²â‚Ü,Njb\LÔ­°à ÿ+>^=ÜO»9;ž°µ¶031Ô×=~D[ó †šŠ’¢¼œŒ´$D˜O¡Ï ý}LóÅ苇Œ0û(÷?ù„°r³/+¯¨¤¢¦~PSûÈ1}CcS +[{G'×Óîç/\ö¹âv+*&.1%=3'¿¨´¢º®¾ñNÛݮޡщ©YîÂò*ûßîûø2sÿí®ÙßÁ}ô -éöBñõš¸ƒŸrÿ3¾à_‡Á¿À›™žœèïíéêìàÁ_]YàÏÏÍÉÊ䤧¦$%&ÄÅÆäÉå÷%ò{zÐòSÑè·ô[úMMŒQö ØOðç×òOù7^d 07Á®‡þ"9 ªŒ~@c/¤=á^Ð{øÆ&¦| ¾ŸJ|Z|O"¾/? D~(‰üùI)©éœÌ¬ùuLò{û††GÇ&&§gæ¸ó‹K+ŒÌ3ÿ[*ó¿#™o¼jè® šÿ†Ü·÷ ú¾‘Ì — Dj ¡Ðÿ#ú«K Ü™©ñÑ¡Þ®Ž¶; ô+J‹òs2Ó“b£#o†Þ¼æçsùÂù³§]ím­,L õtŽAôÕUU”äee¤ ú8ôýÿµ4âù?&û ±rÿ³ßþÅI)À¾‚’²*`_ëð1=#Ss+{'—SgÏ{^òö»x#ôfdtlBrZFv^aI9ÌýæÖŽÎžþÁFî?üZ8÷‰ûÿeî¿—ûð5¾$îcø¡û$ø¿¦‚?wöð—Aø³33ÒÓRø’?,ÈÀl~OþèGôÛ‘êÙo†²Ÿi?Á•?CÈ?ñ-¼ð Ö5J¿0|& ÓôPzÊz€=C{T÷˜{~ïAàð-IáÛ!ðùß“Ùø@ü0¾ÈOIKÏ€äç—–UTV ß70ÈŸœš™åÎ/,-¯®­of>2ÿ»çÄü—üæÿŒƒwÕÞ×ü½…þ3:ôWçç¦'ÇFûz:Û[›nÃÐ/ÌËæ¤&ųYá!×®úz_òÇèÿVýÅè‹g‡Ù™ýO%öï§ÙÿRRJZVNAQYUMãÖá£Çu ŒLÌ,­íNœtq;sÎ㢗ïÕ€ë!á,v|R*'+·åþWM-mw»{†y¹¿bl‡Üÿ/÷©Ç¸§—øN÷‚îƒ _$~’"‚ÿ þÍ{ëk+þ¹Ù™©Éñ±‘áÁ>aøËKKŠ -óór²³28i$ùÙѬ¨ (C~_ù™ôÃê§³Ÿi??¥?jÈ?ñ-¸ð ¶Ùï1Ô÷Ô)ç±ôzÚzŒ=¥=Ž€÷8ðéÂ'à ˆïË?ˆÅŠf“ÈOãddeçäå•ìDþ$zvn~aqyeuýÞÆý­í‡ ó¿A™ÿ'fæã°WŒ2ÿ§nþ[¦ù$ô_cô_ˆýåîìÔÄèð@o÷ݶ–¦¯êªIè§$ÆÅDÝ - ò¿âëuÑÃýŒ›óÉvÖ–f&FúºÇ!újªÊŠ}i)É/iô÷ï—øTŒ¾xv9»eÿ€”´Œœ¼¢² -`_SûÈq]}Cc3 kێή§Ý=.\ö¹âv+Š‘ûUµõwZ;ºzú‡FÆ'gææ—@îßß~GîÿH* ¾ÇS¹ÿv÷qwîÿ“r¦ ~žû øÿƒÿуí­Í{ë«+Ë‹þé© ð××ÕVWAø‹ òrs²xÉÍŠ¤å"ò E?¢ß ÒOg?e?Ä߈àOôGíOóO/¸ð [€ìÆ2ØixŸ#_ħ µ0õÐz{ÔöD{̽äžç= |¾_(ñ‰øA´ø‘¬è˜X¾ÈÏ+(,.)-¯¨ª®­«"t|’Ï]X\ZY]»·±¹µýÜ*þÌÇæÿõº]àz½‚]!Ò|ù{5ÿ ¼b}üòGF胻õÑ¡?>2ØßÓÕÑÚÜX_[U^B?#-9!6:òfèÀk~>—/œw?íêìhokeafl¨¯{숶æA 5%Ey9i©bôųÇÉ>t°/Ùîö%¥edå•TTÕöé蛚[ÙØ;8¹ž:{Þó’·ßµÀ¡ŒÜ/.«¬¹ÝÐÔÒÞÙÝ78<61=Ë]¹¿ rÿ±@î¿Àì¿‘ûoÞ/Âvë>Ž1ø2QðÏ? -þÇ>ؾà_[]YZ\àbøGùà¿ÓÔᯩª,/+-.* ÉŸžš’œägóËÈ'¿@õƒìwÄöÛòºãolLô'íù‡þ“€6\ÔÀk@“± vÞçðµð)z(=¤—=Àž´=Öä=âž×÷¶Ø{¾³@áó‰È/>ˆŸ˜œ’šN"¿ ¨¸´¬¼²ª’ߨtG˜üŠüõÍû[@æ?Ê|t±þö›ÿý—ü æ  ÿ†úÐ|:ôÑÅzÎ }€>3ôûºï¶ƒÐ¿]SYV\›ÅIMŠg³"ÂC®\õó¾äyîì)'{+sSc=„¾ºªŠ’‚¼¬Œ´$@™Ñ—€èCóÅè‹gWóÓý}|¹ÙǹØ—ì+()«ªkÒ:|TGÏÀÈÄÜÒÆÎᤋۙs½|¯ Ü‰KLIÏÌÉ/*­¨®¹ßÖÑÕÛ?4 -sAdî/"÷‰ûŒÜÿPî“§I»’Œü ËPð?ýÿÃí-ÿúÚêòÒâkÞÙQé½h " ÒA"Ò«iö†ÅBGiREiÒ;ÒEШ» ‰®5jv7[6®ÑlL&«Y³™ì&3ûÿŸsžvïelÌ$;sÏÛû<¼zÎç÷%=-äOæåO¤òËF?¥³ße?ßý|øü1ý‰þ”ê?.7l؈Æ`¼#_6ñ©ø‰¼øÉ ~JZzFùEù‡**«jŽÔ!ù­mräž=÷!È¿äCEò¥™O¾*ø¬hOPó˜`ó¹ÐgIñ/Iè?a¡…þõkW ôÏþá4„þ`_OW{k„~EyiQAî¾Ì´½»vlÛœ¸nõŠ„¸¥‘á¡Aþ¾Þžî®.Nö¶óçY˜›Ížejbd ¯«­¥©è³Ð§è‹Cÿ±ùJô•GÑy û$÷ýiÓÕÔ5´´uõ ûVÖ6öŽÎ® =ùø†„GDÇ&`îoÚš”¼'5#;'¿°ä æ~cK[g·lî߄ܿÍrÿ©2z?I‘û2¹?1îK‚®'ÜO¸ xCI—}) ~¨3~è3„ÿâŸ.|$ _O÷Q„¿¥©±¾®¶¦ºª‚%aA~^Îþ}Y™驼üÛˆüÒOªŸÏ~Î~/OþLlÊ?ó@غtæ -c øpÏÐW,èûVz”©ç¬ìIÛSíEÜ{xzqÞóO -_!øˆøÛxñSÓ32³öíÏÉË/(d‘_QU]S[WßØÔ‚äíîé“?vîÀüK@þÇH>d¾„üG4󿦙ÿfþs>óÉw%gþ/oa¾lè“–Pú—!ôÏþñÌ©ÃÇzv¶57Öaè—æçdg¤îINÚºiÃÚUËãc£#ÂBý|y.tuv´³±¶¢èèúêjÓ§1ôßU¢¯‚_€Ÿ?Àá¿Dáãà:6Øß׋𷷶476Ô× -É_\x  ?W,ÿ."?F¿T~Ž~Ìþ0Ì~f?t¿Ïboþˆ?¯?áŸúO'€l²Ü°c)=¢_¸‡‰ò„ytÞÿ*G=µž`ÏiO¹'yï½Ø‡ö=z†Ï/Ÿˆ¿K,~n~ÁÂb!òkë›[ZÛ‘üÞ¾þÁcCÃbòÏù—üë7ù˜ù@¾ùhþÓ§\æ?£™ÿ‚Ïü76_„¾œù4ôÉ÷$ -ýÏ1ôoɆþq ýýÚjúyû³ÒSvïܾeãú5+—ÅÅD- ð]ìåá¶ÀÉÁÎfžåÜ9ï¿7ÓÄØP_OG[SC}†€¾ªªÊd ú“ÄèÿÚ²(Ïoø¼ûS¦"ûjšZ:ºú†Fûómœ\Üܽ¼}ýƒBÃ#—Æ%¬X½.qó¶»ö¦eîËÅÜ?\ur¿½³»o`è%¹ÏÜÇ2{!rÿ rÿ•Ý'÷Tüe‚ŸÀῠ🗅áïêhokm%yYiIÈŸÇÉŸFä‡è§òK£ŸV¿ýÔþÀþ|ù3ý ÿœÿlpppè -аáÇ`œÃ=C_±%¯ÛSè™ô@=g=ÁžÓžÕ=áÞ? z/>-|¹Äñ!ñ‰øiœøy ~QIiY¹(ò›[ÛÚ;ºÆ'ÿ -’“#_Èü/e2Ÿ|Lo¾€>oþ òß#gþWOà3úBýëפ¡ßÝÙÖ¡_uø ýÌ´½»vlÛœ¸nõŠ„Ø¥‘á!Aþ¾Þžî®.Nö¶óçYš›!úFúº:ZšjˆþÔ)}%úÊó†G!ûÔ}dŸæ>°¯®©¥­«g`db:k¶™¹…•µ­½£³ëBÏE>~!aѱñËW­Ý°ikRòžTšûe‡*!÷›[;ŽÊæþ Èý[ŸÝ½÷às¸°x]ûÿ$uU&÷'Ä} -?^T -ÿó—?…ÿ“›Šà?92|àïïíéîêìhã“¿º²âpùÁ²Òb©üýDþ$9úIöÇÅ’ìûY÷‡1ü©þÞÞ<ÿœÿt¸ À #@g€-=vÒ#ü`Ï%¯91ç)ôŒzö`=‡=Õžç>(8„õ=xOÁïåÀO"âCâKÅ/.-;X~¸¢²šü¶ŽÎ®îžÞþÁcLJGNÊ’ÉÿD–|’ù_±Ìÿ–eþsF>gþOl>ý–Ð| ýï(úø ý]ú_½Œ¡?FC¿Ÿ„~„þ¡²â4ô““¶nÚ°vÕòø˜èˆ°@?ŸEž ]ím¬­,ÌÍfÏ2562ÐÓÕÖÒPôiè3ô©ùJô•çµ,û¢ÜGöIîûÓ¦«©khjëè›ÎÂÜ·²¶±sp^àæáµØ7 8tITLܲ•kÖoܲ}'Íý‚¢ÒrÈýz>÷Ož:3Êrÿ:äþ§·ïܽÿào_Àåþ3r[˜x÷ÿ#¸ÿ*Á/ÿþ³ÿ€ÿÄðñ¡cý}=Bò7ÔÕ©®ª¬8$•?;+“È¿Gý¢ìGû¡û!üÃþ¨¯?Æ?ðOü§€ À&€Ž®€ [n ä÷£3{xcǨQÖ3ì9íP{R÷4ï¡ï9ïYà+?3+[*þ¡ŠÊªê#µu Bä÷ôõ:>|È?䟕!2Ÿ‘Ïgþc.ó¿QùÿeþD™/„>ÖÃ3ÙÐpÿîÛŸ’пrIúíúG0ô‹ -r÷ÑÐß²qýš•Ëâ–F- ð]ìåá¶ÀÉÁÎfžåÜ9ú¦Æ†z:Úš€>„>Aÿ÷ïŠÐ§æ¿#6_‰¾ò¼ìüNì¾”ýÉ*ªªû3Ôûú†Æ&3‘}Ëyómœ\ÜÜ=½}ýƒBÂ#—Æ&¬X½.q3ÉýŒìœüBÌýÈý6iî_÷årÿ_ÓN#•öBä¾ø²¾æ]¥—õgY÷”¸Ïÿ7\ðsðß¿ÇàÿËŸ üW üþ1€ÿ4À?2<ÉßG“¿’¿©¡^Nþü¼\"Æ8ôÓìGû±ûãÀ~þ€?êÊéÏøçü§ €€€#@g€ =®Šÿ«}š¼èAœGè©ô@½`=bOµGîÃEÜÇÄÆaߣ÷4ðÇ?ƒˆŸ›—/'~}CD~;ü>ˆü¡á ÿ4?†ä_’™ç.ŸùøÌGòùÌçÍÿQÖüŸßÄü_Æ1ÿùQ0ÿ1|9ðáÜ»óÙ­¿ -¡?Ê…þÑŽÖfýJú9Ù©{Hè¯[½"!6:2<$ÈßÇÛÓÝÕÅÉÞv>CßÄÈP_WGKSBŸG_UUe²}åy«#›û -ØŸ2•°¯®©¥£«o`d2sÖl3s +k[{Gg×…ž‹|üƒÃ"¢câ—¯ZKrwJzÍý -Èý¦–ö.Iî_ºrMœûñîr¹îOÜç3íMr_Þ}veâÝ/øŸ`ðsðßø1ø%ðŸGøG~HþHþAHþ^HþNHþ–æF”¿†—¿¤¸ˆÈŸÃÓò‹é§Ùöc÷CøÇ“ð'åAõñþs L€7]œ¶ÜÈîGOú,yÍ›:O¡GêI×ë9ì©ö‘Q"î!ï±ïÑ{øbðQ|ü"~Qq /~ Šßâ·µwBä÷BäBäœøà?ŠäŸ—'Ÿd>%3ÿ Ëüoå2_Æüÿ¾ùúôû¡æO¾Š>~6åCLúõúå¥$ôÓSvïÜŽ¡¿jy|LTDXp ŸÏ"…®ÎŽö6ÖVæf³g™šèëjkiª#úh¾Bô'‰Ñÿµ5Qžÿ“3û辊 -²ÏrØ×øûu\Uyp|°ã Ì´Jro–›{³} Ù÷}!; «Š²¨¬6ˆ²VhVé¨È°T[*KÙµˆfß0@§LAÐÚ©NŸå¼ï9÷æÜ !Ngîó19ùö>¿ç7wO“Ùâãì?iJ@`phDTl|RJzfvn~QÉœù˜ûKW¼¼šsÿ ÌýJî±Íý†¦–ÖöŽ®nˆ6Ê}vr 7WÍýAt_ÿ·ö‚Ÿ¢ á¿&à§àð_þüÁ¾à‡ä¯–É’¿ ’äߣʿý-–› _D¿¦ú9ûE÷CøÏ£ð§ò§ôçöWø'ÿé¨'o_<| hûŽøU© OIÏУôD½b=cÏÚÍ,Öpy/úž_Sø"ñøÛXü·¶«âïAñÿ¼¯ "ÿ Œüjˆ| ¿æ<‘éóËzäcæ÷ÞÀ7c7óE3 ØüõÌ¡O/ß ý^ -ýŽþCÿ] ým[(ô_^±ô…EúsJŠòs³3ÓS’âc£"Bƒ¦PèûûùXÌ&@ßàê"CÐwrRÌw ï˜Ç]öŸ”ìSî#û¿áj0º{˜¼,>¾#G=5vüÄÉS§…†GÆÄ%&§eLÏÉ+,ž ¹¿pÉKË)÷7m¦ÜG“ûUÕ'O©¹_ߨܹß[Ü‹;ÌÑFɦ,ï ¸ÿƒ¾û6Áÿµ~Øa„¿׸ÇüŸ]$ø!ùO©É“ÿÃûµòï`ù•èߦ~²ŸèרÝÏáø[ë¯ðOþÓà À'€^ºé| ä¤JוQ¾I§?`åÉy€¤Ô+Ö#öRû9sç î!ïeß³÷ >z¯Müm"ñIüZñ÷ƒøùG0òQäŸ: ‘äcäëO™ÿU/>ì‘ù_ÛÏ|ù? ŽùÈü{lþmê„^x,]ím-ÍõµvCÿú›ÖSè¿´dáý⼜éiɉq1‘á¡AÓ¦N&ôGúz[¼LîFƒë‰þ0 úl¾}Ç p†hÝÿ™šûÀþP'gg û.£›‡§—ÙÛw$äþ¸ ûA!a‘ѱ I©éY3r fBî?ûübÊýW×Qîÿ^“û‡)÷OËܯkhj†ÜïìîÁx“¹î£¸ÿÝ ¹/áÿ^Ù_ýàgøoIø»­à¯¯“ðcò#ü˜ü'(ù+0ùAþ2kùõ£Ã‘ý¥œýhÿR°_ *©?ó¯øO€/Ÿ¼xè Ð!àÉÒñ[ú‘Gåyz^PÏÖ3öR{ª{%ïÁû¥è=~©ü ôßZü2ÿð‘ -Šüù@>F¾ ¿®¾/ùðRn⿆ýd¾ùÿ\óïãƒáLÀп‰ÿötwv´µ676À¡Ð¯9«úoP迺šBÿùgçÏ)™Y;#+=5)!6:2,BÒ„qcFûûùz›½<=ÜŒ®.ˆþ/~Nè;;; í‹þúŽÀ<œ}vØw5¸¹{šÌ?ÿÑ”ûÁ¡Q1ñ‰)i™Ù9ùEųç=óæþªRÊý­¿•¹¿Oæþ™sJî×Ö76µ´µwvuÃ:cî+îÃósîÿS²ÿˆîÿ¨ë¾ýà'øoÃ.cÁá:ü]~‘ü*ü”ü§9ùAþrù÷"ýRþ7µôÛd¿ì~*­þ’ò\>xðà ;À§@œáºþ(þ @0¯@ÒõŠõŒ½µöÌ=ä½ì{›Àׂÿ¦Áßk#~9‰‘Ïâ_ä‹È$òµ™oýbÃ|FŸŸ‹jþ]Åü[71º»:Ú[[š ôÁ|ýóç ô÷ ýÍú«–cè?3ovqa~NvfZJb|LTDhp`‡¾¿ŸÅlòtw3úJèë¡ÿ„}Ç<ÆhÙBeÝwröeîûFw“—ÅÇwä(bê´ ðÈ踄äÔŒé3ò -fΚ‹¹ÿâ2Êý¯÷Íýcûgk0÷Áýº†ÆæÖ6Ìýk¸Ñ·þFë|ç.î2¬òÅ}ÝÜ÷•àðßé~%ù~MòŸÉOòWù”íWåßÙ—~›ìGûWƒýŒ?—¿ÔŸùWü§€O€rðÐàK@S¨3âwüe1+̃ó=K¯PÖ3öR{®{æ¼_ÞÛ~_ðwªâï/; įâSäkÄ¿"ÈñmÈÇim„þ+$òíf¾µùø^´æ‹Ð‡wB¯D˜£žG— ý+—Áü úÕÇŽ–Cèï·ýuú/.†ÐŸ;kfAÞŒ¬ŒÔ䄸èÈð iS'Oèôõ¶x™<ÜW }B8 ï䤘¯‡þÿZÇüŽ.ûOJö‡IöG¸Œnž^fo_Èý1ã&LšŸ”’ž™›_T‚¹¿èÌý5kEî¿­äþG‡ŽTVÇÜ?îqµ¶¾¡©¥µ½û:¬µÈý;°Ð°Ï÷Ï}ø¿ï'øa§a©a«µðwümvà¯ÑÈ´R+ÿ>»ô‹ìWíü×0þPþ«V®PôWùWü§€O€8tèð-°7üÁlúx.+̃óRz ^µž±W´_±rÔ=s}¿Võ^¾]ð÷iů<ª¿ÆùmD~·ùËü (ó­A}(Væß#ó }|×{ºá]´675Ôaèö׿`èŸ8^Uaú[)ôK)ôŸƒÐ/)ÊÏÍÎLOIŠŠƒÐŸ2i¸1£ýý|½Í^žnFƒ‹Šþ0 úl¾}Ç<öز/rØêäìŒì£ûȾ«ÑÍÝÓd¶øøù‹Ü ЉKLN˘ž“WXå~ùÑcÕ'!÷/|zñæ~}csK[;¬7,7n6»÷¿í~Ÿà×Âÿ»ð·Køû“¿ -é×—_¥_d¿´ð_ÏøCù¿²º”ÒÛÅòe -ÿèÿqàð À#@g€r æ+AŒüÙ|þ†>Ç¿[ œèAz¢^µž±Gí!îKW¿Âuܯî¥÷"ðUðõÅGð«ú_’ßþÉÿI™?æßÇçAÿ *¡æ_ƒ7ÑÞÖÒÔX_«†þÉêc•å‡?¶ ýúË0ôŸ†Ð/Ì›1=#-91.&2<4C<†¾ŸÅlòtw3¸ºŒPÌô†:ÐwÌ`Ï­û¶ìCî—¹ïâj0º{˜¼,Þ¾#G=E¹?-($,2:6!)5=+;· ¨dÎ|Ìý¥2÷ù¿[ÉýŠªã'>‘¹ÿe]Ccsk[G'l8ì·ê>l6§œ²Ôwßj¡åJ[?ïõCàïAø;~›ä·#¿nôËêçìWíß²ùu ÂÝÚ×(ý•öWøÇü‡ .Ÿ:xèð)àY`5òÇüý)OÎô$=Pom=bÚCÜ¿¶v×=pÿúæ-ª÷ø²ðí&¾Žø6‘Ïäw ù= -ù7ù·­ÉXæ’ùßiÌ¿+Í¿Ñ žC[KscCÝ—W8ôÏžþäÄñ£G~T¶ïƒ?îÞ¹ãíí"ô×Pè/‚ПSRT›•žš”4BÐ÷õ¶x™<ÜW5ô‡Sè[¡oe¾}Ç t†Øæ>±Ïî#ûÃ$û#\ F7O/³7äþhb? 084"*&>1%-szN~añlÈý…V¹ÿ;‘ûû?üøPy%äþ©3œû_\­­ohjimï€=¿ŽKŽì³û÷ÈýªûV%7÷õƒŸáÀðÓü×þN„_$­Uò?D~I?eÿŽw9û¥ý€ÿV‰¿ÔŸÚŸù/U€¸pðÀ 3€w€OÏb›‘¿ ÏðPyf¡'ézõ”öØö÷7ýZp¿¸—Þsàø»vKð"¾Uä׊ÈGò;‘ükzäß!ò•Ìä?~æ÷kþ·ü,ðMù'ó¿‚§¡µ¹©¡¾ö*˜ñÓóçΜ:Y]UY~BÿOïïÙõÞ;ÚÐ_‰¡¿B¿¸0/‡B?>& -B?0` -„þ˜Ñþ~>Þf/O7#„¾D¡Ïæ;ÐwÌ ûjî;;ûè>°ïjps÷4™->~ûcÇOœ<r?<2:.!95#kFnÁL½ÜßN¹ÿÁ¾²ÿ°_çAQßgÇÇô¯"©ù£Ê)È!jÒ4MšÛûÊÕ$¤mÚ¦­mšÔ;jµ‰­©&QåPîSîû^D…öbw9TiI;íh2éó<ßï÷wì.xÉ´³Ï¿»û×ßë󦸴¢ªrÿdËé¶p¿»Wo0™-ýð²Ã«>*åþUµû·§Ñý‰‚ŸÃÝ1ü£—GF~h¼–ü&žü -ùÛl䟀~ÊþÊ~a?àÅð‡òçú#ÿ{ÿŸò €#@3€;@KÀn»Ý‰Oè{â/væz’ž¨çÖKØKÚ³º{á=~ -þàۈߦŸG¾‰E>É¿ƒIɧ¿ ™?æ3ô¥ ó¯“ù,ôÁü‘á‹À|KŸÉ ëíî:öLÛi ýºšªr -ýLúaRèo•Bÿ'<ôWbè?ý ¡à·BßÓÐçæú..6¡¯Fÿ›VÃyÿãgËþ·”ìÙ—rßÍÝËr?0HÎýe+V­¥ÜÛ>÷÷³ÜOHNËÈÎÉ/,)«¨®Õ@îŸjmï8שíéÕMfk?¼òðÂÃÛ.Ü¿îÃ[~SrÿÎÜŸ$ø•ðßTÂU ?4Þ?&ÿ &¿…%?Éß­u$¿2úý`?ÐOÙ/ÙÝÏßÊ?2"õ§öü‡ð €#@3€;@KÀî/v'>¡ïíÄ_üM0Ð é‘z²ža±GíÃ#"YÝ3îEß“÷ø~~_™øŽÄ§È×Xä#ùƒƒùŒü+ðGÀÉÿ#ŸÌ¿'ò§ÇüÛÜü›øÇ@ Ìü±+`þ¥ Cý³É¨ïí†ÐïhÇÐoÐÔVW”•bè§&'ÄÇFG@èïµ ýŸÿô­¿þ†þ - -ý'ŸxB?(‡¾»›ú®úNô7s7K龂}tÙ§ÜgìÏsó Ü÷X¸h‰Èý¥ËW®á¹ÿåþF‘ûŸBÜOIÏ<ž[PTZ^YSW߈¹r_Û£3ûÌVH=½Ë_·û_2÷ïÿ¸€^{Lþ!Hþ~L~’_Ïäïò·3ù¥èWÓ/g¿°?ìgáOøsý©ýÿä? €X˜ÜšÜZv»ìN|Bßû,˜Gè…ôŒúƒ*ìQû˜#±±qñÄ=ä=xŸ*¼—_ ¾”øLüv!~_OâcäùCHþ0ü³'ÈŸ|úSæ9•ÌŸÀü;¶æ_“ͽ Ï~h°ßjî3êu=ÚN -ýæõu5•å%E¹ú‰Çâb ôC!ôw‰ÐŸ‡þ›?zõ¥u«W.—CÑB ýù^žúú³ }4_B_e¾}çMýfÙæ>±/rßsÿ;Ì}`sßÇ×/ 0hñ£<÷_\¶bõÚõ¯¼ö†Mîÿr/ä~Dtl|BrjFVN^aqYEU­¦¡ Üoï÷»{uSŸÞ~x÷GÈ}`ŸÜÿbæÜwüô¶«á¿Æàÿ'Â/>¼ù,ù/Šä·bò£ü:¥üý­§yô3úkýH?f?ÚŸËíÏÌHgáÏÊõGýÿä?X6¸04¸´ìöØø„¾·±O0Ð éõ2ö’ö¬î÷é™Ü{ üB |¿‚Ï¿‰'>ЦC)¾ÅÇÈ·ŠÈ¿È"žüF>=}$Å·!º2ÿÍÿ‚™ÿ93ö~pÀjé3t½Ý]d~ËɦMMUEiqa^NVFjRBü‘èˆCúÁúñÐÿ-†þÛú¯¬_»jŲEè/ - ðóõñö‚П7—›軸H¡ïDßy3v¶ì‹Ü'ö!÷]åÜö=½çû.ð„ÜŒrÿ¹–._µfÝ˯¾þæ[˜ûXîoƒÜß¹w41%-3;7¿¨¤¬²º¶¾ñDó©ÖöŽsÚî^½Ñd÷A(¾QžûÂ}|çoñ÷}Jî; -~øÿ= üŸ#üRò_¸üµüZ”_ýD£L¿È~a?t¿Ô? õüsÿùÀ° €  ÀÀ %`·ßîÄ'ô=4þ þò9Ð3é9õÌz=jqŸ’š¦àž÷½ð_Ÿ¿E‘ø(¾V-¾…‹CIùÿÀÈ—É¿~wòm2úÍg¡æÃÒô[Ì&ƒÌï<×ÑÞz -B_S[]YVR”Ÿ›™–œx46&òpXh„þNý-,ô%…þš•Ë—¾ÀBÿ±%úþ |ç{{z¸+Bß•BŸ£ÏÌW£ÿM[á¼ÿ›S徂}tÙÇÜŸ3çdž›‡§×|Ÿ~ !÷‰ýgŸ§Ü‰çþ»Rî¹ ¹("úH|BRjzÖñ¼‚âÒòªšºzÌý¶3gÏwj{tzcŸÙÚ˜ûä>¾ü{ðâßš ÷åà¿ü(?Á?ÎágÉò (å×£üýrô#ýÍý` f¿lØ/㟕™ú3þUþÓˆÀ ÀÀÀ`K@wÈÁ‰Ïè‹ø¦<:Ï é9õ²õˆ=Ó>#3Kæ¼/’½ÇÀ¯ï%ð1ñ[åÄñ»Q|½RüÁ¡!&>E>‘?Îȇ‡~äO!ó'3ѧ'ÏæžÌ»‚3ßo5›Œz]̇Ðóëëj*ËK‹ -òŽg¥§&‹?qè„þnýíªÐC5„þóÏbèïQ -ý>ó½<1ôýGæ ú³ }4_¾3ô7ý7Ë6÷‰}‘û.û‹ÜŸ¹ïåíãëç¹ÿøOþðÛÜÿÍïÞÿËýû!¡a‡#cb&&§edçä–”UTÕj„û]ݽ:ƒ±Ïb .^¾,»L¯ûS‚åÇäÉ?|é¢CùUѯ¢¿ è‡ìWÙ_ZRLáOå/é¯âŸü§€`@#+@;À– šÏ݉Ï蛈<*̃ó’ô@=·^Æ^Ò>µ'î‹KJUÞCàøM*ðU‰ïP|xÌ"òÇ0òÇEäOBþíÉÈŸ&óoIæ_•̽ ™Ìï3t=Ý]çÏ‚ù-'›45U¥Å…y9ÙiÉ Gc£# Ù¡¿ƒ…þï1ôß¡ÐyÝšUúÏ=ƒècèúûùúx{yú"ô})ô9ú9ÑwÞLû"÷‰}È}WWÁþÜyîžÞûþ )r¥mîoÚü§íû»ƒ÷î;p(<êHܱ¤”ôÌã¹E%å•Õµõ'šOµ¶wœë÷õ¹ 8¢t`L·ûÿQ¸ÿ•Â};øoØÀÏ“ “ßF~+Èßòô:ý¶ô·4Ÿ´µ¿ª²‚ãOåú þþÓÀ° `@+€3À–€.Îá‰O髸#Î<8Ð3é‰zÙz†=Óž×=q_QYeëýÉæ[ðyâëô¿Ä·Ú‰?ŠâK‘¯ ÿÆäß‘ÈÿêÁÈ0óGàºÁ«¥ÏdÐõ‚ùç:Ú[OAèkj«+ËJŠòs³3ÓRÅÅD…‡Ø÷Yðî!ô·nÞ´ñƒ÷6Ø…þÓOýàûú‹òÐ÷p§Ð'ô]])ô9úŠÐÈi¾ófèTî+ØG÷‘ýÙÈ>¸ì»¹{ŠÜ_,çþŠUkÖÛäþ–mî€Üßzðpdtl|BrjFVN^AqiyUM]}#å>¸¯íéÕMfKÿ¸0ÌÜGîÇýûì=uðß~»äÿ;&?¨`'¿*úþN™þ¶ÖÓJûê5šºZŽ?•?Ó߆òŸ€M®Î ]âÇ?¦ï"ò¨<0Îô$=POÖ«±gÚóº'îkë4šú¥÷§[Ûdð;ørâÛ‰?‚â_Añm#ÿ~ÈÐÌŸÜü×ñ1+͆';Ðo1›ŒúÞm§0¿¾®¦²¼´¨ ïxVzjRB|ltÄáƒûCö|¡ÿçm[þH¡ÿî/~æ0ôƒxè{BèÏý.šèÏ&ôÑ|5úÎÐwÞÌ]îû"÷] ÷–rßrß—r‰ÃÜÿå¯7¼÷ÁÆM›·Bî¼;ø³}£bâŽ&&§edçä—UTÕjšÈý³ç»´=:½±Ïü_öë+6ËëŽã¸Ú¢T8†R© {5´jè}Õ›†$M˜3lÀ6ØÆ{ï½÷Â{ï½÷^˜ Þlc›Ù4Š !…Ò`ˆÔó?ç<ûymƒÁéÅû¿}ÏÃ¥ÏïËë>É}ìþSìþówæþÃÈ$¿bùIôËÐßÕy“d?g?Š?Ñ_Ä?öY˜´x`ðäÐ1Ppô~ ßå3γÒ#ê±õBì‰ö´îqÞsÞ“À¿ÙÙ%>Iü…ÅE>w…äÏ/‡|Aæ/Á|@_dþ2¿·»óƵ+—:Ú[›êª+ËKŠ -r³3Ò’â¢#ÃC‚ü}¼Ü]Pè[š› -C0ôÿ°cûÖ-‚ÐG諨°¡OÑÿ¥}å½ï“°Ïä>f循*ËþGë7nÚ¼uÛŽ‹sÿKÈý£'4!÷ ŒÍ,¬íœÝ<¼ý‚Ã"¢bâ“RÒ3sò -‹K+ªjê›[/\¼|õúÍ.äþàÐÈ(vfvîrÿŸÄýÇKrÿõ* ÿ¼~"ÿ36ù~Åòß»;77;#Œ~ýý}½½=Ýœý¸ûYüqùSýücÿÑ€ @#€gv nÁG_ÁEðe ã<•S­`qOëžrOûžñ¾»§··¯Ÿ¾0ñÑsîî½ħäÿ›’OÄ·ä/Ùü§Ø|úÈü{è9=u{bltdh°™C¿½µ¹±¾¦ª¢´¸ /'3-%1>&*"48À×ÛÃÕÙÁÖÚÂÔØ@OQèÿùO»>F¡¿•†>EŸ†>EŸúJô•÷¾Oûà>°ÿ!°Ïåþfœû»Ê}CsK{GwOÿÀðóѱ É©Y¹ù…%e•ÕµõM-mÔýž¾þÁá‘Ññ‰É)‡¨ €?66>Á‚Àñqâ+_ùK!ÿí3ÿ'á®/jþCžù·†úù7®]¹ÔÑÖÒÔPW]Y^RT›‘–œäïëåîêdokenjd wFû”æqý½2¡¿B#?ôUù¡OÑW†¾òVì$ì3¹Ùä>bæÍ[¶mß)Íý¯öTS?¦qRKGWßÐÄÌÒÚÎÑÙÍÓÛ/08,"*6>)%=3'¯°¸´¢ª¦®±¹•ºßÝ‹ÝCîOc÷pî?YÄýWÞþ×øùÉÿBœüŠä'ô?`¢¢èŸ"ôÓìçÙOð—èOùgüG@&€n^˜ºüŽý<äAy`œGÐéõÈz\ö{±ö„{‘÷8ðü)þ ŸˆÁW(¾(ò_ˆÅ_.ùò濘ÿLùsè?k“·ÇÇn !ó»;±ùí­Í u5Uå¥ÅyÙ™é)‰ñ1QaÁ~ÞnÎvÖ–fÆ$ôO@èïC¡ÿ© ôw¡Ð߆Cÿ#b> ÿ!E_úJô•·B§€}âþjqîoظi‹4÷ÿŽrïC‡×<¥}F©¹•½“‹»—PHøùèØ„äÔŒ¬œüÂ’²ŠêÚúÆæ¶ /_½~¹ß?04BÝŸUäþ3û/ß•ûBø_‰á—&?–ÿ;EòËÒÏf?c¿ þTÌ?®ä?X˜ØX²d -:ú -Êóà<žR¬ÇeO±ÇÚK¹ç¼g_|EâÇÑÈ—ÿæÙ×bó\Äü<óG†ú{Áü«—/^hmn¬¯­ª(+.ÌÏÉJOMJˆ>èïãéîâhocenbtކþaú{¸ÐßÍ ý \è#ôUTÄ¡ÿ+¥ùÊ[Ù“¸¿J.÷×­Ãì rÿ/lîŠrßAµ#ÇNœ<­sVßÀØÌÂÚÖÁÙÕÃÛ7 (4"2&.19-#;7¿¨¤¼²º¶¡©…ºßÕÓÛ?842:6q{ -»1÷»ÿúux#øEò?•—_Ž~±ý¤ûEøSý9þ‰ÿd````È !hgÖ@îØä}eœ'ÐSê‘õì©ö"îy}Ïy/ ¾¬øO%â¿Gò˜ÿBdþžù÷ïÎÍÞ™žº=16:24ˆÌïºyÌokiª¯­®,+)ÊÏÍÊHKNŒ‹Ž  -ðõòpur°µ¶056Ð?«s…þúŸ‰C'„þ&ú¿ÿ2?ôMC•2ô•÷sœ‚Üÿ€Ÿûk™Ü_Ïæþ¹¿åþþC‡ÕkœÒ:£{ÎÐÄÜÒÆÎÑÅÍÓÛ/08,"*&>)%=3;¯ ¨´¼²¦¹ßÞqé -v¿¯p˜º?³ˆû/tYð¿–Ÿ—üù¿ùŸùyÑ/K¿Ð~>þTÜþˆâ?º0°0dè»(sܯä5þ˜çz"=¡žX°ÇmOµçq/ò^|^âcñŸ€øßˈÏ|1ù¯—Aþ2ÍŸ¡æ#ó{8óêj*ËK‹ -ò²3ÓRãc¢"‚ü¼=Ýœíl,ÍL ÏéžÑ:¥q\ýð¡ý{¿ü\.ô·ðC- ýÕØü¡¯D_y+|¿¸Ï²ÏË}Uœû¿•æþn.÷?C¹@íÈÑš§µÏê™ZXÙÚ;¹º{ùø†„ŸŽMHJMÏÊÉ+,.­¨ª©kln÷¯ÝèDî€ûã“‹¹ÿûóËraø'¿¬ü8úåègíçu?ÅŸÓ·?âŸø/X¼0dè»*sܯä5þ˜çzž¥žX°ÇmÏiO¹çõ=ë½ø8ñåÅ_(òßù2æÏ3æã¿üé8ó+6¿™ãÚ•Kí­ÍÈüªŠÒ⼜ÌôÔ¤„بóa!þ>žî.Nö6Væ¦FzgµOkž8zDíÀ¾¯¾X(ô úkTUù¡ÏG_i¾òVþ$¹¿ŠÍ}Â>äþo¹¿]šûŸ£Ü?xXý˜ÆI-]}Cc3Kk;gWo߀ ÐðÈ踄äÔŒ¬ÜüÂ’²ŠêÚzÎýnäþÐð-Öý{|÷óÜNÜÿ¯Àý÷¿|ò‹åÿÊñÈÒÿ ¡ÿkB¿ÐþYb?Æ—?£ÿ(èOø§þÓ€€ À#@f€Yv$ÇýÜIÞãoypž‘žROÊa?Ø3ÚãºÇÜO“¼zÁÿš€ÿ >L4ÿ‡ÄGþ;'ÿMÍŸœ½5<8€ÌïdÌo¬Gæ—æçde¤&'ÄEG†‡ùûzy¸:;ØZ[˜êëêhÔ8¦®vpÿÞ@èÿí¯$ô?á‡þz~èSô•¡¯¼ÿ‹“°/Ì}”ûkx¹¿QAîrÿБ£Ç5OiŸÑ;gdbnicïèâæéퟘ’–‘[PTR^ î·´]¸xù*¸ß˹gÉî¿\¾û<ø’_‘üÏyò éÿ–­þúqösö3áËŸI¤?Ë?øO€Ý²dzÙ1PxÌ+òQ?ež…¤'ÔsØíqÜãºgòžóþ#øLá+ÿì×wp”uÇñ?ŽÑñfîî/=•jBz("B ¤g“MÏfÓ{ï½÷ºé½÷JGDÄóTôË9RæŒs ‡w"ÜIf¸_y~OÛçÙ’8#™y¾ï³ì3óú¼—ÿšÄç‘Ïz z}\óª™^Ôm¾ùWYæñÙùsÁæŸ> Ì?rèÀÜÌÔøèð@_wg[KcCmuEYqa^vfZJb|LdxHÒß×ËÃÍÕÙцþ¶­À|-¡ÿ[ÁЗЗî×:Žû¿aåþ³ê¹ÿÎýU ÷×›šáÜßbs¯½“‹Lîéí§ ‹ˆŽMHJMÏÊÉ/,)¯¬©S5µ¶wõôMLÍ÷;ŽÝÿà,pÿSèþ…‹—EÜ¿ 8áºÏ~ž‹„_-ùøÅäÇôßbW?¡ŸØºŸ…?WÈ?ã?¸hààÀ3@-ö£>ŒžDÌÿ}%=¤ž±·=K{÷¤ïIàðIáß"à‹ŠŸˆ¯%òCþcNæëdþ<4ÿmþþÓ™Ó'O?Ìß7351:<Ø×ÓÙÞÚ¤ª«®,+)ÌÏÉJOIŠŠ V*|½=Ýe.Žö0ô­­¶lÞ´q½HèÿúÏR¡¿L2_º_ÿDrÿäþsZs¸¿uÛvûvήnr/ÿ€ °Èè¸Ää´ŒìÜ‚¢ÒòªšzUskGWoÿÐÈØäô쾃‡YîŒÜÿR›ûwÅÜ_Lðkƒ_XþŸhùyÑOÓÒOÛÏ -Œ?Oâ?ÕÿhР À+@í½¢G>…Â_prIO¨ÇÖóµ§¹'yO{ -||NâSâÿ$.þ/E¾HæÓæß£Ì¿«ÉüËÀü/¿øìS`þYÚü£‡웞ìïéêhmVÕ×T•—åçfe¤&'ÄEG†…øùxÊÝ\@èïÜŽBÃ:KsS#Cƒ5j¡ÿ;úÏ!óŸ‘B_º§çDØ×1÷×oÜ´y‹•õ˜ûŽÎ2wo_…2(4<*&>1%-3;¯ ¸´¢º¶¡±¥­£»w`hd|rzn?tÿ­·O½C»ÿ¹îîß#î?váð‹Ëÿ@H~!úyÙOw??G†èÿ<ö/ú€GÏY]ŽúüEü4ú&=”žP­g°gkÏpO÷=7ðÁWÿ.â/ômqÍȘßÍu1ÿs`þÇØüSÈüƒûg§'ÇF†ú{»;Úšëk«*J‹ ò²3ÓRãc"ÃCƒ”þ¾^î®Î ôwÛì BßÒÂÌD—ЗЗîi:=sÿE”ûk LLÍ-×mÀ¹¿¸ïàä"“{zû)ƒÃ"¢c’RÓ³rò KÊ*«ëšZÚ;»û†FÇ'g€ûGÞxºÿî{ÐýO4¸¸ÿ@º/ü6*"4X©ðóö”Ë\œöîÙE‡¾…¹©±úÒ-½Ó+÷Ÿg羉™…%É}›Ý¶vŽÎ®n^>þA!a‘Ñq É©Y¹ùE%å•5uª¦ÖöΞ¾Ááщ©™¹‡h÷ßÿÜ×!øŸP§Yò?äÈÏŽ~uúÕì§ðÿÆêOø'þ£@ €&€jè%ÐzäãóÔã´ó´ô´õ{¨ý÷X{Š{5ï…Á§ÿ'ñ(¾¦w$’ùæß¡Í¿Á˜EÀü÷ßÃæ¿qš?5>:<Ð×ÓÙÞÒ¤ª«©,/)ÊÏÍÊHMNˆ‹Ž ðóñ’»¹:;ØÙ²B߆¾ ýåRèK·´NÍýe:æ¾±©¹Î}+k˜ûöŽ.2wo_…2(4<*&.19-#;· ¨´¼ª¦^ÕÜÚÑÕÓ?8<ÜßÇvÿCàþy®ûW÷oÐîߡݿGÜ ~Vž<Ñ$¿üÙðó奟g¿:þDšÚ4x¨À+À,G?ñwü Wièê‘õ{¢½:÷<ïÅÁWÿgžøº“/ðv4d>6ÿÛ|ðËßÒÇüC€ù£Ãƒý=]í­ÍªúšªòÒ¢‚Ü쌴äĸ˜ÈðÐ ¥¿¯—‡»ÌÙÑ„>2…¾ú+µ†þ2É|éž¶Ó?÷—ÃÜ7Xkdbfs¸¿mûÎ]¶vN.nrOo?E`phDTl|RJzfN^aqYEUm}cs[GWoÿàÈØÄô,vÿÄIÝ¿ôîßEî/2øµÃ/"ÿÏŒü"ôóíÀéOóOû-µÔ ïŠÀñ>BžÄßóFzšzd==Ô^€{5ïÅÀÀ_£ø‚äkz/Bä‹d>1üÒà7f›ÿ5cþy`þ‡ló÷ÍNMŒó{»:Z›ëk«*J‹ ò²3ÓRãc¢"Bƒ• -?oO¹ÌÅɘ¿sû¶­¯óA蛚Ð_-…¾tKóÙ×”û/-_±’Ê}3û7mÞbe½Ãf·­£³«›‡—@`HXDtlBRjzVN~aIYeumCcK[GwïÀÐÈØ$rÿè±ã'NžFîÄqÿkèþUÊ}?йÿ#tŸ -þû ~-ðë.¿ ýœìçØÏÆéÏåû€š2Ô -0K í˜Ï_c˜'Ò3Ôó°‡Ús¸çxÏ |að,¾æ7Â{lòÕÍÿ‘1ü Èü«”ù—ÔÌ?yâ86zbld¨¿·»£­¥±¡¶º¢¬¸0/'3=%)!6:",80ÀÏÇKîæêì`g»Û…þ¦ëQè¯5|…þKÚC_B_º§ðôËý`î¯Xµ復¹åº ¯R¹¿g¯½£‹ÌÝÃÛ×? ($<2&.!95#+7¿¨¤¼²¦®¡©¥½³»¸?Ý?x»†çþ%âþ·ß÷Qð#÷€îß¡Ý ~á_€ü:Òϵ_¤?æù/Ù²dè»&p¼POþ“|Óu–ôˆzl=Âi¯Î=×{ÝÁ_˜ø:/˜ùÄ|øƒ_÷øMo ÌÿþÚwß -˜ÿ2ÿ40ÿØÑÃÐüI`þ@owg[KSC]ueYIa~NVzjrB\tdXHP€¿¯—‡»ÌÙц¾µ -ýu(ô Ö¬^µ„>m¾úÒ-­Ó?÷_^±rÕšW ×›˜YX®‡¹Ý¹ïàä"“{zû*”Á¡áQ1ñ‰ÉiÙ¹E¥åU5u*è~p¸?·_“ûóØ}üÀý›ÈýÛÐ} ÁÿˆOÎbá•_„~žý<üý1ÿØö `V€½ZõÌuò=Ô÷ÞdQ­GØ3Úó¸ç{/ -¾ñE¾N™e>0ÿ6d>2žeþ9Êü3”ù÷óÇù}Ýí-MªºšÊò’¢üܬŒ´äĸ˜ÈðÐ ¥Â×ÛÓ]æâ„Ìß¾ ˜BßÒÜÌ…þª•+^†¡Ì—B_º%yzæþqî¯104265·¹Ü·²ÞaÝwvu“{úø)ƒÃ"¢bã“RÒ2³ó -Š¡ûõª¦Väþ0pFÝýsÈý¯.^º Üÿ†ã>~àŠå¾Á¯~½ä×N¿šý,üYúcþ±ÿÔP @M³œ%Ðv¬gó”óDzL=¶cÏҞŽš÷º¯§øº¯1óïÂÌæÿ‡oþ7ÀüË—.~EÌ?Ë5˜? -Ìïélo…æW•—äfg¦¥$ÆÇDE„+~>žr7W';ÛÝ6;¬­¶lÞ´qÃ: 3Scú+Aè¿H‡þï¥Ð—n žî¹Ýgrß`­‘‰™¹åú ¯¾ö:Ìý]{öþŸýú -Žê:8>yH‚Aˆ‡0IŒ´½i«VÞ«$@HB½÷Ž„ -BHô–1¶‡`lOÜâ8÷„PGmW»«¶SœÓÛÐ=‰óÛïÝ»«»2³ßû=gu~ß_+VE¬ŽŠŽKLNÍÈÊÉ/,)+¯¬®­kضc÷Þ‡^8rô•cÇO¼Éç~;r¿oÀB¹ÿÃ}þëXð#§÷Ý¿[øþùËÏK¿³ýLü™úüþ €ZÔ`o‚±†ùuy4A=a=Ž=S{&÷<Þ»ß3ñÿ;Æ»»%Ÿ‘ù¸ùèáå0óá#Òü ̷̄ ôñ™ÿ0ÿÏ`þ±WŽyáÐþ½»wl«¯«­®,/+.ÌÏÉJOMNˆ‹ŽZ± -B™¡h4è4*¥\&‹üPèãæ£Ð÷ñ†¾w&àüJXîûR¹ÿGÈ}‘D*S(Õ­Þ`2Cî“î‡G®‰Š^Ÿ˜’–‘›_TRVQYS»¥aÛNä~ã‘£¯î¿ëÚ}ûÐðrÿû¿î£à×û·ûî‚ÿ)ÁÏ‘lúùì'ðçÑŸàŸZä`,ö&{XßÑÇ‘Òß&o¼ëJ{‚{>ï…ƒ/D|ÈçÏü;(óÁük×°ÌÇ̇ÌGæ ÙÝ›ÿ&iþ½»wnk¨«­©¬(+)ÊÏÍÊHKNŒó×D†ƒù‹Ì›æ›M½V£V*dXè?ïqè{Ñ÷ÎÿáÉ}pá>Ê}?‘X"“+TêÞîÏž;áâ¥ËW†G®]³>>)%-3;· ¨tCEUÍæ- ÛwîÞwàpã‘—Áý×¹î7û­í]˜ûVÌýQÌýüó‡ãÁ‚lCŒQîóÿONŧò»¤Ÿm?‰?[‚ÒzP+€½<æw8Ò“ÖØs´'¸çxïüñˆ/˜|—™eþ-Xˆù˜ùxæcæŽ ;ì6«¥Ìïêloó›æ¿K˜ÿêÑ#‡ìCæo©­©ªØPRT›™–’¿>f˜¿rùÒÅ(ôg†›z]€Z¥K%bú¤ùÞÐ÷΄a¹?•‘ûÏÏð‰¥2¹R¥Ñê ¦À °Ysp÷WE¬÷ã’RÓ3sò -ŠK7lDîoݾsËý·yÝïéëGî;Àý‹¸ûxð_¾Á þÛn‚ÿ ð ¿0ùÝÒϵŸÄŸ«?å?¹è À\N›ÀͰ?ºÃ8޼‚¤þõ#8Ú“Ü;y/|aâ»%ÿ?îÈgfþm,óÁü+,ó/]"Ìïqiþë`þËGØ·gçö†-›kª6n(-*ÈËÎLOIJˆ‹Y·vue~XHP Ñ ÓjTJ¹L*ùÏ`†þToè{gb‡¹ÿû?@îû‹$R™B©Ðê &sp(¸?oÁ¢%ËV€ûQѱq É©éY9y…Å¥å«6!÷wíÙwðpãKàþk\÷Oû-­í„ûƒvǸ‰á> -þkdðßqüã‡ß…ü‚è§íwŸҟâŸöŸZô -pÚž ëúìûNÖSØSÚ;sO{ï9øB×ùIé—$Þ“ùwÈÌ¿†2Ÿ6ÿ[ÂüAë˜ßÝÕÑÞÚæŸb˜ÿ6×ü­[6oªÚX^Z\˜—“™žšœ æ¯Z±lÉ¢óæÌóÍ&ƒ^«Q+2©D¡O›BŠ7ô½3±Ç£ÜÿÝt,÷ýDb‰L®P©tzc ¸?s6á~x䚨èõñ‰É©Y9ù…Åeå«7m®ßºÃµû߀û͘ûÝ=½ýÖA›chÜGÁ¹ÿU<øo¹ þÇ´Vã‚_¨üüôóáOëOóOûÏܬ%à¼ Ü ç»{¬C—=tÆžÒž—{·à ßsòó‘™2ÿ*žù`>Ê|dþðÆÌïEæ·µ¶4ƒùßpÌ Ì©ñðÁ}{vmßZ¿ySõÆò²âÂüœ¬ŒÔäÄøØè¨5‘¤ù³g†›MF½.@­RÈe1˜¡™O†þdoè{g¢ûÜŸ„rÜ÷õ¥rÜ÷‰¥2¹R¥Ñê ÆÀ pîü…‹—._ ÷SÒ2²ró KÊÊ+«7Õaîï?xøEpÿO÷¿"Üo#Ü·`îŒbî“Á?rŸ/øÇ¿pùÝÒïÂ~&ÿ ÿYÀi Œg8ç=`Þõˆ{&÷®¼ ¾°×tAþO\ò`{Î|Üü+—/Ó™æŽ Ùmƒ–>0¿“2ÿ+Êü·˜æïß³kÇÖú:Ìü’ÂüܬŒ40} ˜¾rùÒÅ çÏóC‚]€F¥”ˤb‘?2Ÿ }_2ô'yCß;|ÆÎýÉS||Pî“îCîû‹$R™B©Öhõ“9($lÖÂýˆÕk‘ûIà~vn~QIYEeum]ý6®ûoîörÿLsËù¶ŽÎî ½}«Íî÷/2Ü'ƒÿ7øï“ÁÿˆdìÁïR~÷ô»ÄŸ©?ËöàÙž÷¸‡¬ËX?ã‰î=_à3 - ßEæß 3Ÿ62dØa·Y‘ùùç[šÏ ó¿ø 7ÿÚüæW‚ùEù¹Ùi)I`þºµ´ù³ÂÀ|“A§Õ¨• -™T"‚Ч͇Ð÷ñ†¾wž™+÷ŸÃr*‘ûÓ±Ü÷‰%2¹B¥Ðê&sp(¸?oÁ¢%ËV¬BîÇÆ%€û™Ù¹E%(÷÷îÃݹÿÑ'˜û§1÷ÛÁýž¾~‹uÐî÷!ø1÷ñà¿Âü÷°Èe¿'ð{$¿3ýûYø³ùgûÏÙ|[ÀÃq:ïçÂ'®°çrïì½kð…>Ÿ;òŸðÏÍü+xæÿð/<ó/Ž9ìƒVK_Ï…®Îö¶óçšÏœÆÌÿä£ÿö×÷8æïݵc[}]muen~&˜Ÿ毎XµbÙ’E æÍóƒÍ&ƒ^ V)äR‰̇ÐóñÐŸŠ…þsÞÐ÷Î32‚s™û྿H,•É•*M€No -9›v?*¹Ÿšž™‡»_S[×Àãþ{ïð!îþIpÿr¿ ¹?`´9††GûTðÿè&øŸ2üžÑ?þlýüw±<ÞS97s´›{ÁùIò òéÌ¿Igþtæ{ 2Èa´ô÷bæ·ž?wöÌé“_ãæð>aþqŽù5•JŠ -Àütd~l4Óü™¡Áæ@£^ Q)å2‰XäÌ'Cß×3¡ÿ[oè{çá¹Oº¹ï/’He -¥Z£ÕLA!àþÜù /]¶"3¼¾ï"侤®¹¯Ti´ºNƒÑÔcîí°\¾ -ƒÿk¶à¿ÿ¿¡ûÜáŸ2ù™ì§ÓŸéàò¸k<#õŒÚ»ðÞ­ÏC÷˜ÈɧÉü{”Ì¿3ÿÈüáAë@_¯¹Çd4èuZJ©€æ7ÔI ùÅE˜ùYŽæ¯æ¯æÿõ/ó—,æ'ÆÇÆDE†‡…‹„AÈ|<ôüiCß‹}~Óbô¹?Þû¿B¹ÜŸesä~`H—˜œÝñåW¡ûo½ýæþ*àþ²û©Ðý,ÜýâÒòÊjÌ}¹B©RkuzCpßÒ×oÁÝ!øïØ‚êág¢ÍýÌø3ðïê ð|ŒŽù„./çÖW™,ù óGAæß¡fþ̴߱ö÷YÌݦ.ƒ¾C«nW*äRd~uey)n~62?ÕÑüUÐü?ýáÜü—_\ -ÌOINŒ‹‰ŽŒ óç“̇¡/àCŸßtž3û^öÜ÷Ár¸ïïr¸s¸/‰CBÃ#¢¢cã’’Saî/{ý7 ÷W2¸ŸCq¿±Y*W´µ«5úÎ.c·ÙÒÛ?084ôùM“qÈ}ß™à~@€-÷¡ûABQ0î~|BÒ‚”EÏ=Ïîþè~æ~n^A!æ~Mm=p_ÖÚÖ®Òtè: Fü½}ÖÁaüׂÂ?::6>ƒ~Îð»N~í¸Øï·ÞwÇéOs¸‚ÛíÝ8™?3ÏüÛÔÌ¿2e~¯¹Çd4tê´•²­Uͯ­©‚æ_,,ÈËEæ§#ó÷PÌ_i3ÿ×1óŸæ'%ÄÇFGE„‡†ˆEBd¾-ôüQèûÚBß›}~ÓrTöŸ"ç>áþLÌýY$÷ç ÅÁ!aá‘Q16÷_x‰âþ -÷÷A÷Ó3÷/^*)«¨î74µÈZJ•Z«ÓºL øûPð_¦ÿ¿Pðcð áÿ‡ÿGføb†Ÿ A6ú¹ØÏ•^O~™Û™=yòhÏï >3ùߓɿƒÈ'gþùƒ0óÍݦ.ƒ^§U«” -¹¬¥©š_QVrÉf~243£ù/<Ì_Í‰Š   ƒÉæÃÐÀÐ'Ìw }Þ|~ÓfŒ¹ï Ù÷Ár¦Àº?{î>ÈýÀ ‘88w?1iÁBäþ+ îoFî@îgž:Mr¿ZRÜ—ÊÊvµ¦CßÙeìî±0?ÿ˜Kø9%¿GòsµßCþ§hœÏèⲜ®Æùlä;>6È¿ ÉwÊüáAë@_¯¥§ÛØÕ©ïШÛÛrisSC¤Únþ™Ó§2‘ùXÍå%hþÂI‰6óÅÀüùvóaèûùAó}‘ù>dóyôùM¿1ºoÏ}_”ûÈýgæ÷AîÛ܈ŒŽ‰‹OL^°p1rÿ5'÷?GîoEîÂÝ?sö\þù EÅ¥å•ÀýúÆf©¼µ­]¥éÐuŒ¦jðÿ¸OÀÀ€Âø9ÉïŠ~7ðwfò±SÏå‚Ü®ò¿I‘2ÿ6Ê|Dþ’3¿Ïbî1 :­FÕÞÖ*“67Ö×Jª+ËK‹‹.œÏ?w7ÿÈ!dþV’ù+H濆Ì_ŒÌ‹‰ŽŒ ‹€ùóžÅ̇¡àï›oý|è󛯣aß‹È}Âý™ÈýÌ}˜ûÈ}¡HBq «ûÛ‘ûGŽsp¿ª¦¶¾±©EÖªPªÔÚ½¡ËDþ«äà‡ðßðŽŽSáÿÁÿGø=“ß5ýîâO+ç#bžû¥8ž›Q|‚ütäO8’OÊük0ó‡(™¯U·+­²–&`~MUÅüãÇŽ"ównGæ¯uî|dþ`~²Íü±H͇¡?w.2„¾@@5ß›l>>¿i8ÆÜ÷†ìC÷}¡û~ÀýY÷ƒ„¢àÐðˆ¨èظ„ÄäÂýåv÷ÿ†¹¿v=rçnÌýã'NfeçäæŸ/¼x©¤¬¢ªFR×ÐÔ"•+ÚÚÕŽÁ?‚¿ þ›.ágK~wåçB¿Çú?ÊMò?»ß9òiÉäßäß$‘2ÿ²CæwÀÌWÈ¥ÍM u`~YÉ¥‹…y¹9ÙY'O ó÷ïÝ™¿ÞÙüå$óùáÈü Üü_#óAèû¡ÐÇÌ÷!›Ï‡>¿i<öIîÛsßæþì9v÷ƒ„bG÷—:ºÿ>îþ†Èý½û¶¹ŸW€Ü/¯¬–ÔÕ76Ke­mJ•F«#ÿ þkסûü·üwÝŸ‹ülñÌÍþ_ ÿSqpvñ#ß=òo|ÈÇ2¿Ÿœù*e[«LÚ 2_R]Y^J5?õðAÜüpóßw4)0?šÍv0¶Í|rèÏ ýÇýOÊß&÷½ˆÜ·»/øù#÷ŸÁÝŸ7s?Ì…û|ˆ»¿i î~jZzFæ©ÓgΞË?¡¨¸´¼²ª¦¶¾±©E&W(i‚ÿòRðs†ÿ¿=ù]É?%ô?î`êú³'ⳓ #ŸÈ|Hþðu ¿×bîÆ3_ 3_ÖÒÔP_ 2¿¼´¸èÂùüsgÏœ>•™‘ž†™¿cÛ–M¸ù~àÚ|±0(p>a> ý'ó½éÍçÑç7 Gãþ Â}Üý™Èýäþ\è>È}ྐྵ‰ÜOJNYDïþGŸàîoÛ±kϾîƒà¯¨ª‘Ô545Kåöà7¢àïÁ?Œ‚ßÿ7þÛ´ð߇ð³%ÿdäw›ÔGôxt*öcqÿ'B|ÇÈÿŠ‘ÿ ù(óù óù(óÍN™ßP'©®ª(ƒ™O6ÿÐ}{vÙÌÿä#Fó“ù‘áa¸ùóžEæÏEæƒÐèÍ÷âÍç÷$Ì}’ûOîûB÷ý€û³û(÷ ÷C¡û1±ñ¬î¶fÝýCGŽ;~âdVvNn^AáÅK% ø«%ÎÁßm¶ôöXað»€ÿ;¿SòÿÇùÙé÷PÙ)|ê¿‹øl‘Ï@þ7ò/òúPæwᙯD™ß2¿ºd>0¿ /7';ëä‰ãÇŽ!ÌÿêË/Ö­ùŒÉüE$óCƒÅ"dþoC6}h¾a>úüž¨Ñ侑ûOã¹os6Å}¡îñåW›·nß¹{/Ù}üÅ¥0økíÁ¯Övè;að›Að€àGðC÷YàÇ“Ÿ -¿-ùYåw“þÉÒëšã‡ýûn€Ï$>Mäÿ€G>Fþ+ùÃCÖþ>‹¹ÇDÊ|¹´¹ d~ Ìü⢠xæcæÜ¿w÷Îí[7Ó›¿Œl~|lŒƒù0ô¡ù³ìæÛCŸ7Ÿß8ºÜ§q_ ðóçìþ2›ûï¾·bå*ªûûNMKÏÈ¿'ktîÏ Ü÷qrÉý à~HhX“û¿ÿ㟑û«?þôóµë7lÜ´eÛŽ]{0÷ñàÏ+(„Á_Nü£©Û à€ðÃেÿ„Ü?‘ü.äçB?û™ús97wðÙÅG‘O?É¿çH¾-ó!ùV@¾ÅÜm2:uxæËì™_Š2?/7'; ËüCöýŸÝúŒŠêÌã8~’µd`’ó.ºçÄŽ ¥ ÃÌÐ{ïˆ –Ø»"b ½—¡3CzfÙ7«Xôìn’Ýìž³›Í‹}žÛæÞ;Ï,IÎñþÞÃýÏ›Ïó=sêDÌñ£‡ˆÚKšïëí©ÅüU4óAècæëQæ/%ÍçCŸß[:n÷—¨Ü_¶LO_ùûÐý´»/ÆÜwuG»îÂÅK—¯÷ñà—±ƒ¿»·o`pxdt|âú›·¾þÂþ9 -~ZòÓá_ˆüúu²ÿ÷¡¿n—jò^7ñqòÿÉŽ|‚ü94ù†äû ÿÆõ‰ñÑ‘!µÌ—c™ŸOd¾FóÝ]¡ùb`¾ÀÂÌ„2ýÚ5«9Í_Æ›Ï9û s •û4÷Wp»obf! Üwt&Ü - ˆÜ³oÿÁÏ‹Ž=yú,ü‰É©éxðÁ¯¬oljikïìêéíŸø’„ÿ®Fø_0à×.¿ú_ÞþßÂÝ/Cü,màsˆOFþ4ò_ÐÉŸb‘#ÿk@þ—ãc#Ãý½=]0ó›ðÌW`™_€g~râµ+ ñqçÏž>}ìÈç÷ïÛ@˜ï¨›ùAóß_®¯͇ècæ/Q™Ï£Ïï­wîku%‡û"±ÔÖwßÇ/@Ý}*øÓ2TÁ¯¨ª©­khlnmëèìîéë¿àÿ -ÂG þ)ÿÓg³³sóó~VòkýÚè_þoò Xè¨_ò -|õÄçŸù/žÏÏÏÍÎ>{J‘?©"ÿ.FþW€üëãc£ÃCý}=Ým-Í uµdæËðÌOIbf>Ý|?/Ì|{[©X¤Íüjæ¿G˜¿˜7Ÿ¿ºÿV÷ÍVBÒ}7/Ìýл>Û½7êÀ¡ÃGÇœ8u¸O&üòÊêe}CSKk{GWwoßÀàÐÈèØ€ÿ„ÿ6þI?Hþ™þç ø5ȯ!úu°Áø¿ÊCð*ßB_ôž#ñQâÿ_Eþs’ü@þŒü*òï0Éìïëíîêhomnj¨WÖTWÊaæ♟Je>aþ¡Q{w¶kghp 4ßà 3_" ­æÐ|Ãm[èæ¯d˜ÿ—ù‹xóùñC²¯r)ÒýYîoÙfˆ»o Ü—÷\ û¾þÁ”ûdðŸ‹O ‚?‹ þ -EUum]}cSK[{gW„‡ÿ¦ü ü øŸÍÎÍAø&¿.ôsØÿŠü¿¹q]‹î{øTâ#ÅgFþóù¹¹Ùgù‘äßäOŒŽ ä·45Ö+k««ªÌO#3ÿüÙÓ'c£Á2Ÿ0ßßטïâäÌ· -æ¯ÓÉü¥ÍçÑç÷NƒûKèîëéé/îÈá¾澑‰)æ¾ pߺïé Ý ˆÜ³oÿAà>ü—.Óƒ¿¨¤¬\^YU£¬khl&àïÇà§àÿNÿ}ÿ#ÿôÌSõäÇäÿ‘)ÿ¿ù9é粟ÿßÿÎû…üŸ9À§'>R|Hþ Uä?™†ä?‚äßG‘?>:2<8ÐßÛÓÕÙÞÖÒÜØPW[S¥——–ɰÌO'2ÿâ…sDæcæGF„‡…Aó=Ý¡ùv¤ù¦&F˜ùêæLš¿\_Onþ•ù|èóã‡Ëýźºÿ)Ë} K¡µDjçàäìêÜ÷ ‚îãÁøèñ2ø¯àÁŸ ‚¿ °¸´¬B^Y]£¬ohjnmëèìFÀ‡Kþɇ!üœÉ–_gúYökÂÿ×´ÃÅ=å=| â«"žùü‡| >Nþm$ùm­ÍM uÊšêJyEYIqaA-óããˆÌ?zøÐ¨½0óù~>À|WgG;©ÄÆZhiÁ2ÿS5ó?D›¿˜7Ÿ?ÖÞA¹¿ˆæþ{À}À>ÒýOîo5Ünd Ý·²¶÷û^>~Á¡;w÷ñàŽ=Iþ´ üù²¢âÒò -EUu­²¾±©‡¿¯`hxdŒÿ{dò?˜Éÿ˜žüù Éÿ!ÿ¿)ù‘ôÓígã¯Mÿ7õèôYö­ÿC€ÿ_]Àçÿ9_ù€üIœ|(þ½;(ò» òë•µÕ•ŠŠòÒâBY~.Èü´,ó/™}ìžùÀüÐà@?/7`¾½Tlcmeiafjl´Ýp+ÃüOæCô™æ/âÍçÇ56û÷ÿ¨Ýýõ 6î›Y¬¬Eb©­½£“‹›‡—·¯`0 þÈ=ûöãÁâü—að§¦gfçäÈŠJÊÊ努šÚ: þvüXñß á¿K“ÿ=ùgçæòÿÿGL~tô3èWÙ¯ù‰·`áÿWý6÷Ág'>Jüy(¾*òÁÈ'É¿‹ ¿’ßÞÚÒÔX_W[]¥——–É -òr²2ÓS“é™sÏü=‘á óý}½==Ü\œím%b‘ÐJ@™¿É`ãzíæcè£ÌçÑçÇ*÷_ÞýÆ&fæ+¡H,±µwprqu÷ôöõ  - Â?ê#ø@ð'¥€àÏÎÍ/(,.)«WÒàï¢àƒðßdÀHþg0ù¹ägÓO³ÿ? ûÑáÒÿ%ø-C\ÂÐ^{Â{nð5‰?G_ùtòoÝ„ä!ȯ©ª”——•äåfg‚ÌOúd~<žù±DæïÝ 3?$(ÀÏÇÛÓÝÕÅÉÁÎVb#Z -ÌÍLŒwlßö -æó¡ÏŸúÞy î¯îo0Ø´yë6Â}K¡µDjçàèìêîáåãºþƒxðŸ„ÁñþÄäÔôŒ¬œÜ|Yaq)„¿ºFY×ÐØÜÒFÂ?HÁ%?„Ÿžü@þ'¤ü³,ùÿåÿ“Ÿ ÿ'4ýœö³õGñÿ+¼è¯²NûY³÷ZÁÿ‚¯&þÓ™éé©' òÒ#’E>šü†:%$¿¢¬´¸P–Ÿ›“•‘–šœx dþÅ ôÌ߇e~hp ¿Ÿ—‡›«³£ƒTbc Í751‚æoÞd°˜¿š7Ÿ¿×5-î/ÕâþJÌý5¤û†;ŒLLÍ-,­¬mÄR[{Gg7/o_ÿ@üáôà?ƒ?.>áÊÕ/’RRÓ3³sò -dEÅ¥å -ü½üãüÌäò?òOMMϨËÿWJ~fô³ègÚ¯þ\ü¿®G@Ã?W»D÷tï9Àg$>]üYšø ò¨E>FþÄ8A~/A~3F~u¥’_$ËÏËÉÊLO™õrB|Üy˜ù1xæGa™2ßß×ÛÓÃÍÅÉÑÞV*Y[YZ`æBó7ó×`æ¯ÔbþRÍæóèóãGÓ}2÷‘Ü_…¹¿vý†›6oY¬„"±ÄÖÞÁÉÅÕÝÓ›þ]´àÁîþ+דRÒ22³só - -‹Jpøkqø[Û;:qø‡ ü ùéðãÉäŸò?FËψ~‚~Íö«áO×_-/÷ƒ°€¿B}”~¥=‹{„÷jà«ŸÕø3ÓSS¸ø òÿ‚G>|ù€üá!$ùå¥%E²‚¼œìÌô´”¤ÄkW@æŸ;2?ú˜*ów‚Ì™ïéîêìä`g+‹„V 3Sc£í†Û¶`æ¯ÅÌ_E™¿‚7Ÿ¿W›ýw¹¯ƒûÂÜ_·a£Áæ-[ ·›˜™ ,…"‰ÔÎÁÑÙ•üTðÁö|\ü¥ËW¯%&§¦edeçæãðËU,øûüÃ#üxòG&?”ÿ>ÿ!C~TôsÓO·Ÿ†þhÿü -,€yuëiÚ£¹WyÏ>"ñ‰Æâ?ÆÅ¿ÿvë+8ªëŽãøÄÎxœ‰A€Ày±'Ži*»«mê½K¨w­zïuÕ{ï¡Þ{ï…î ÄÆN&˜FðâñðÏ$ï9çÖsË -É o÷÷~Ï}ûü¿˜ø¬È‡äÿ’ƒ$•Aþ`oOwWg{kKSC}mueEYIÈ|uÌüD˜ù‘Dæû€Ì¿äâìhogceinfbl¨”ˤ±¾ž®Îhþ¿?Œùúˆùæ ¦qœÜ?ºû_üºQWO_,1ɆF&¦æV6¶öN.®nxð«ÈàOJÁŸ“WPX\Z^QUS[ߨÜÒÖAÁ?†Á?á_]ߨÜÞÙðß„ðß¹KÁ%?&ÿ[þrä'£Ÿ¦ÿ_ýˆýðGôgûà Ðxû [zÔzZ{>î™Þk_ƒøû¤øO0ñä߽ɿ ÈßÝÙÞä’ß×Ó}¹³½­¥©±¾¶¦ª¢¬´¸0d~&ÌüV滹º89ØÛZ[Y˜›š*ä2Ìü‹À|ùG1ÿׂù„v÷?|—û'¸îy¸¯£§/’Hå -¥‘±©™…¥µ­ƒ£³+ü~ øC@ðGàOLNMÏÈRçæ•”–WVÕÔ‘ð_¡áŸ†ð/aðoíì^ðߺ áÉÿ-"ÿ£ÇüòCúqù¤Ÿe?/þ´þ þyÀÑÎÀ!çHbOjÏÃ=ÃûŸqï™à‰‹À‡â¿fˆ¿ÅçD> ÿö-@þÕÝ-Œü%.ùm-Íõu5U•å¥ÅEy9ꬌ4ùñ ó#@æã™ï3ßÁÎÆÚÒÂÌÔØH©K $"}=`þY–ùÚÀüG6_@_˜0 ûeîkîøq÷Ï÷uõEb‰T¦P›˜™[ZÙØÙ;’Áï$þüé™ÙêÜü¢’²òÊꚺ†ÆæÖ¶Ž.þÑñ -þ5ÿöîÕk×ü ù!üdòså±ÿòå«×þ7Œè'éKÒ϶_#þ”þÿ,ÿ¼GÏÓÈŸ)ìIí9Ü3¼GMü70ñ_¿zùrÿ"þc\|„|,òoݼ~íêîöÖæú$žK~kscC]MueyYIQA~®:;3=d~Èüp<ó}½==`æ;ÚÛÚXYš›™*2©D,ÒÓæŸÃÍäÅüó… ;Âþ÷‰àÇÜ?AGWO_,1ɆF&¦æV0ø`ð{âÁ¯ - ÁŸ˜œ’–‘™“—_X\RVQY][×ÐÄÿüâÒòêÚ:€À’ÿ+"ùïQÉÏ+?ý|ôÓÙOÙ¯JšÔ 'àà‹pˆ/ÒÓÔ³±ççñžþ ð¡ø¯øÅgGþW0ò¯]ÝÙÞÚä/Còg"¿0?7';3#-%)1>d~X¨*ˆÌ|W˜ù¶ÖVæ¦&F† -¹Ì@"Öæ_8™Of¾`¾0aïm¿ÈýSÐ},ø¡û ø¡ûû"‰T®P›šYXZãÁ ~¿€ à°ðÈ蘸„ÄäÔôŒ,uN^AaqiYE/ü“Ó3só KË+kë›Û; ùoàÉç.€_£üÏ_ìïCùéè'èÿÒÿI?Òý|ø3õçõŸs}4Ï•ž¢ž=®=—{ïQð‘ÄõrÿÅóçFˆÿŠÿ€ÿ›¯ï‘DþÎöæÆúêÊòÒ$rbŒI~SC]mueEYIqa~^NvVFZjrbB\LTdxhHp`€Ÿ+óM” -¹Ô@"Ò×™þ–ù„ùŸBóOóµ´ŽÌ&ìÿ<û»츖áþÔý/Ï÷utõEb‰T¦P›˜aÁo¿‡—¯`*4,"2:6>!)%5=3K›WPÄ„¿“€xtlbrjfv~aqyeum$ÿ.žü·©ägÈÿÈÿd渚è§éG³µŸ…?¡?Á?ÿì ù<žGÐü‡{\{&÷LïßÞ£…'þkFâ?Ý{BŠO5>ù·©ÈßÜX[]YZ\˜›™‚ä °È¯ª(+-.,ÈËQge¤§&'%ÄÅFGF„…¨‚ü}½aæ»02_)—I%b‘¾.0Ë|Úü3§dþ‚ù„q¿Èý“ÀýÓ¤ûŸáîƒà×Á/–Èä -CF𻺹{zûø«BÃ#¢bbã“RÒÒ3³ øËðw÷ôö ŒONMÏÎÍ/.-¯RÉL~Lþïù¿'äÿ”‹~’~Â~H?’ýÐþ·¸ýLüqýyùGóh<ï÷ äÿfZbiÏàž×{|è=L| |,ñqñâ?äFþu2ò×@ä/ÎÏÍNOMŽ@ò{¹ää媳2ÓSS’âc££"ÂCUÁþ~>^žîtæ[Й/Ö×ÓÕ™™ÈGÌ?IšÿÛ#˜/ /LØ¡wx÷!üÀýã¸ûÚ¸ûTðC÷/÷Eb*ø-AðÛ98:»\róðòöõ - ŒŠ‰‹OL&àÏç…¿o`pxdt|bjzfIþ]<ù9ò߇ò?|ôDÿÞÞÓgDôãô³³Ÿ²Ÿ…?KÿÔ /ãh8ý=ò4“zöLíiî¡÷?¡Þàÿƒ,|:ñøøâßçDþ.ùË‹ ó³3Ó“ã£#Ã}½WòòósÕÙ™éi)I‰ñ±1Q‘á¡!ÁA~¾ÞžnŒÌ76T*dRùz óÏŸC23_7ÿ8n>$_0_˜°÷°ÃºÿÄý¤ûxðŽ?p¿ˆ ~<øm휜að{ùøú©BÂ""£câ ü™Ù9 ø›[ÚÚ;»º¯ôöõŒŽMLNÍÌÎ-€ä_É¿…%?Sþo1ùAô? £_#ýXöSö³ðgéOðOøOú0¯ÿ-àç#äAú/?£ÖÓØSÚ3¹g{Ïþ3 |ø@ü`âcâßc‰"‹Œü…¹Ù™©É‰±Ñ‘¡Á~H~Wg{[ —üŒ´”äÄø¸˜èÈð°UP€¿¯—‡û%Wg',óÍaæ*ä2"ó/^À3Ÿ0ÿwŸæŸ`˜ÿ±`¾0aïg‡sÿcÂýOH÷O÷±à§Ý'ƒ_B¿©¹üžÞ>~þP,„?¿ ¿£ëò•ž¾þ¡áѱñI"ù—@ò¯oÀägËÊ£ÿ{:úyé§íÇ»Ÿ‰?W–ÿä`Üæ`…:{Œgè×QêÙØ“Ú3¹'½§Ÿ þ|øPü¿`âÊ¿ºÄŸŸ›™žšèïë¹r¹«ƒ ¿¦º’M~$?’èïçãåéîæêâähogÃÉ|]˜ù˜ùŸF˜˜Š4ÿÁ|aÂÞÿÞéþG÷µp÷Oãîk ~cS3sK+"ø1ø}ýƒU¡áQþ$ü•Õ5uõM-­í—»{zû‡GFÇñ䟇ɿº’Ÿ#?Œþïþ £ÿ>ý,ú¹ö¿!ìGðçèÏðŸ8ô `\ž[pÀØßÑ/’?Á©Ç­§±Gµ§¹gô=ø(ø=$ÿ¯0ñ¡ø_ÿ‰-þÖ&y ˆEþøèÈðà@_oO÷åÎŽöÖ–¦Æzù©üXH~¨*80ÀÏÇÛÓÃí’‹³£ƒ•ùJ…\ -2_„eþy$ó1óOóOž<¡Å1ÿ#Á|aÂÞ×~u°ûTðSîÃÜ?yJ[ºÏ~üb<ø`ð[ZÛØÙ;BøÝ=¼ üAÁ!,øÕ¹yüµõ MÍ­m]Ýÿe·>«<Ï8Ž 0•Ä&l2^%R+%€ ÞÛÆ{ï…±ñ8^ÇÇãxã½m ‚mH -Iš(ŒHZHC™a(mÚ4MTµjÚJéßÐûº÷ýœç8¤PUÏõÒœç~Çç÷:2=3wôc ‹ÇQòŸ<õŽ#ùqôß`Ñ/Ñÿèÿ‚ÒÏíÿì—Âëÿ­FÌ¿ì?_>ÚМuíɯ°§eê‰õ{¦ý·D{)ïÕ¾ð‘÷þ# |žø×qâë‹ÿ.ˆÿÖ ùs3ÓG¦M˜èïíé²u´·¶45Zò òöòS’ããb¢##Âv‡øûúx{z¸ï´Ë|bþ–Í`þúõ8ó]œŸ“Ìç™o˜oœqOèþ÷]Ö®¥îo"îSø_U‚ßÝÓË‚?(àŠŽKHLNIsSKk{‡­«§·o`pxdl|b’zvîè±ù…Å ÿÛDþÓªürô#úoëÒ¯ÚÏŸ”¿¤?kÌ?ñŸ ]6Ò -èlãS?úŒ¾.Q/¬gØ+ÚîqÞKÞð à?Ô‚‰•&¾,þ"þ;o#ñß<±¸0ì(üɉñ±‘áÁ¾¥ÈÏÉÊLOCä'ÄÅFGE„ï  -ô÷óõæ™ÿš&ó±ù›6"ó×aóÁüÕ?È|}ãŒû/o)÷4îüÜýuë7@ðoÙªÿYðïÄÁïë£iYye†¿¡©¹µ­£³«»·¯ph„&ÿáé™Y”üó‹ÇAþSöò³èú¯ié¿ÿà¡j?Æì·Çô—ù—€.±š)øNYÝ¿'ÉŸ£ÏÿCµ^Æžj¯r½î•Àøàþý_ßãàßäàóÄ×ÿ8ÿ¹Ù™éÃ4òG†ûûz»»:;ÚZ››¬uµ–êªÊr-ùÉ„üÈð°Ð À?_/’ùÛu3Ì߀ÌžšÏ2_6ßÉ0ß8ãžì=®û"ø‘û.kŸWƒÿe -? þ×Pð»¢à÷ðòöñó -ÙðÇ'$%§êÀo©­ø[ÚÚ;mÝ=½ýCRòÏÌ!ù°ü'™üœùyôcú¯Hô~ûλ÷hö3ûÕðgå/ôWøÇþ“ @'@¬€²ò©¨Ë'}ùOþÜß…ô˜zn=`OÛžhÏê^É{á=ü{wïð¯øö‰š‰ -‹¿ˆÄ?:73}dŠEþÐ@oO·­³½­e)ò“âcc€üÝ!Áþ¾>Þˆü]n:™ÿÉ|dþzl¾‹ dþ–ù†ùÆ÷TÏ‘û+ºÿ¸O‚#þt‚û7¿'ƒ?àv¿ÙRSWßÐØÜÒÚÞa£É?<:6~`òà’VÈÿS!?~Lÿe™þ7o±ì¿ÙÏì§áñÿ’âOõ§üsÿñH @'€€ºò©¨Ë'}É#Ðcéõ¬ì)öRÜ#í1÷$ï…÷,ðo~ëÖÍ´ð¯øšÄ׊¿âÏN9˜¿™¿nÍ|‡æ¯0Ì7θ'á>_rßÜGÁ¿ÿfÝà}ÛW¿‚ß×Ï?àøã4ð—šÊ+ªÌÕ5µõÖÆ¦æÖ¶šüƒÃ#£ã&!ùg@þy*ÿIE~Bÿ'œþÏýW¯]—²_Óý\þ$ýÿ´þ±ÿx¤`#Àw@šùdÔ¥ãßü½Bý —žQϬ'ØsíqÝKÜó¾ÇÞ“À'à&À§‰ÏÄðOjÅ?4y`bltdxF~G[ksS£µ¾¶¦š_\ThG~4èïç‹È÷@ä»bò!ó_U33Ï|jþjf>!ß0ß8ãžò鸿\v¥ì>ß‚ÜGÁ¿I'øüü®n»Ü=<½}|ýƒBþ(þܼ|€¿ÄTVQi®¶ÔÖY!ùÛXò Œ!ùrùÍSù5Ñ/è¿Dé—²Ÿw¿þ¸üYú“ögü3ÿÉHÀV@^y tOþá_ùçô9ü6–^¦^žµ=ÖsÏò^õþµ«¿BàÿI_M|*þ<†Š?ŽÄP"ßZWk©6WV”™J€üü¼\-ùá»CC‚ü|}ùîˆ|”ù„ü%2ßEÊüURæ ó—ægÜS¹e:ðs÷$÷í‚ü2ü8øü;)üþZøSþl€¿ pqIiYye•ÙRSG“¿½ÓÖÕÓÛ7084<ª•A•_¡ÿcJ?²ÿаÿ&±_ÁŸéÏÚ_ã¿X2tè ([ lº|â£?Ógè£_3ê¿"ÔSë9öDûGD{Á½½÷(ðø¿°_%þ¼hüƒHü1$þ ¿§ËÖÙN#¿®Æb®ª,/+-)Þ_Xäggeè“ïÈßµÈG™¯/2ƒœùkXæ ó´æ/3Ì7θ'?ÔýÕÄ}5ø·Šà…?†ß à÷"ðcø#£cbãþŒ¬ìœÜ½ùûö•”šÊ!ùkhò·¶wtÚºí䟦òk£ŸÐÿ!вÿçÈþË(ûE÷_ûü±þ¸ý9ÿ’ÿ0xİC ¯þÉ?ü†}ý'Vôªô@=X/c/k/¸ï¯ ïià#ð/^À×$>vFˆ?ŠÄ@âwÛ:;Ú”È/7•–íßW¿77‡’Ÿ¨’ïÈ÷òÝùù@¾]æcó]ˆù« ó3î蹿B¸Oà÷Yð»,ü~W€ßÁïgjzFfvΞ½yû -‹ŠKL4ùkë­ MÍ-mHþ.$?—Ë£ŸÉ¯­~”ýçYö+ö_û%ü…þ,þê? ^<xè -ÐÇ@º¯íÿ$~þ}€¼ö&=Íz žZϰWµ—¸}/>ÿÜY»ÂÇâãÄÇâœÔŠßŽÄoj°Ö×ÒÈ7•î+ÈÛ»'';3#=U%?˜’ï ä»ròE濸d毒È_ÉÉ×3ÿYÿ0θÿÿû>÷µÁ¿FüEðkáßð{hàŠ‰KHLJIMËÈÌÊÙ“›—_P(’ßR[WomljnUäÁò£è§ò³£ÿ} ²ÿ#”ýÜþK—?ü¯ðWôÇí/ñÏ€-ž¼tèHc ßíÿô¥ø=}€¼ö;;é™õ {¬=‹{ÁýÈ{Þ÷Ràcðßãà‹Äñ!ñ±ø#Lü.$~¿ÑZ¯D~aA~^îžœ¬ÌŒ´Ô”¤Ä„¸Ø˜¨Èˆ0;òwØ‘3‹N毱Ï|Ã|ãŒ{ö§ãþrÖ}‡Áá÷üÛ¶«ð!øÃüñ‰IÉ©ié™YÙ9¹RòWT™«kü T~È߇å#òv@?dÿýŠý4ü?…ð'åð§ú3þ‰ÿtØà À@V€î€4òýÞþO_ˆß“ïÉ[¿‘¤'Y/¬giϵgÜ‹¼çÞ³Àðö®.øGˆø(ñUñ[‘ø HüšjsU…ù¹9ÙYéi©ÉI‰ñ‚ü F¾‡=ù4ó_€Ìߤ›ùó¸ùË ó3îÞã¸Oà_å8ø·@ðSø_!ðCðcøÝ1ü¾ þðȨ蘸ø„¤ä”ÔôŒÌlžüÅ¥¦²ŠÊ*³Éom›¿¯ŸÈO¢Ë/Ñìúyöû?üèüù /~ü à‰àÏõ¿JÚñ/ûO€l¼| Ä,uü§ôSü.z=HO¨çÖcìqÛ3í ÷,ï/^8Oúy/ƒÿæ ð'°øƒý ¾Mßb®ª¬(3•óÈÏÎÌHOMINJˆ‹‰ŽŠ GäkÈß¾íuF>Íü—^„Ìßì0óW1òô}™o˜oœqOõ–éÀ¿‚ÿÒQð;Cðø7!ø·ü/SøYð«ðû!øƒþl|BbRŠHþü}…û‹KJMåHþjU~–G?•J¥gÿIœýÔ~ÔýgΞcáÏËŸê/óÏòŸž¶dè°)`÷@çäg‘'îRæ1ôTzB=±—=ÅžiϹ'yîìÒ÷<ð1øÇøÚÄñÿÍ~=gYŸaE‹RJHÈ›=Ȧì­,µà:‚ì [ l D -HYTpDEÅ 7t­È¦¶¶´ÓNÇ:Óô 3íøGõ¾®û¾Ï’ç}’0„ôwŸæù½‡Ÿë›W)þ ˆÌÅö™½{úvõöìÐÈß$‘ß¹vÍêU+„ü§„üÅ a–|É|?ÉÈGæ7T*)òK2?š/Þ0»r÷Kƒÿ¾±55ãj þFÀßZÿCsçþEÿâ%ÿÒeËW¬\µÆ’¿K’ÛŽ=½»Eþ}YùOP~Fÿ™tôƒ~±_éO²ßìÿãõ?yøèCÓ?Ç¿øŸ þð àpl~kP~áÛô-ç?æ< ÒëYö†=´ÿ»joÜkÞ[ß‹÷ ü« üPø™Ä[ŸâŸ<ÿ‹¿»·gçŽmù]Iä¯X¾l©¿ä/"ùóæ¦È×Ì'ù­$_2üøºÚÚq55 ¿<óïH“Ío\û·gÜ0øëÆ×øÛªÀ?Ÿð?ò¨ÀÿÄ“*ù7JòwKòïìÙ••ÿ(åGô«üoæègö ýÌ~·ÝÿûïþÀð'þ,×?Ë¿ø¯` € Àp¸œŸ¿ÿ\úïö„ï¡<˜ЋôJ½[ϲö‰öV÷{É{ë{zÏÀWð?ý$ ¾&þkL|Šìhhü}—ˆ¿]Äßܵ1ùK%ò…üG!ùó«ßFò%óëëI>3ÿgCÉüÛ#ùñâ +þ; ~…¿"ð7þö,ü3~I~ÀÿØã¿'ÿj$ÿzIþÍ[¶BþÞDþƒ”ÑOùOЯÙÿYÆþ+b¿†?ñgùÿø›þú¯` € ° Ðà Øèý»ä’¯ôʃy8èEúõ´Þ°Wí÷Æ}È{ñþŠ{¯^?>ÿ%&>Å?t04>Åß¶UÄß´q}6òŸX"‘/äKä;ù3gdÈo'ù’ùÉüº:#æƒü¢Ìïo~Ìüxñ†Ñ•»_ümmÝø üü–üþ_-üIò¯”äïè”äù»Sò?Cùý”ÿÅBú-û³öu鲆¿ãÿðWýÿ¬ú¯€ÀØè -pt ôþUzá3}Å_€ò`þøm—^©O¬ö®ýuhϺWî%ïÅû‹Þ÷ üsøýÁgâgâSü}ýÄßñ׬^ÉÈŠ‘/ä#ò|übòÇ“ü%¿4ó祥ùÑüxñ†Á¹?@ð'ðMÁß ð7§‹ß“’ßáGò/¶äz¹$¿È¿ŽòoQù{T~D?å?R…~ËþŒý‚ÿ—Yü¿ùöwªŠúï  à€Ðàp ôþYzá3}ÅàO©ó -}–zZ¯Ø«öŒûo¾¾æÜKÞ‹÷Ÿ{ßBï-ð‹À?¦â#ñUü^¿›â¯_ñW­¤øˆüÅŒ|#‘oäO’'¿AɯùcSä&ó£ùñâ ËZðßíÁ¯ÿØšqÕàŸœß“‘'¿Èäù;:×¥›¿ѯò¨J¿e°ÿœØ/ø_ðwü/]¾ôOñOÿ}t0ØŒ€ÎvÀ¦àF؃â ßÜÐ7|þ½1/Î+ôYêi½bŸÒþÊåKνå½÷ý‡ôÞ¿ -øU|$~oºñ×¯ë¤ø+–»øˆüEIä§ÈŸ<© -ùã@þ}Fþ=üÂÌÉo¸ßP‚ÿ.¸?&üÅð·þIÅð/tù5ù³òoéòï)¡ß²Ÿö³û?û-ü½üûåEÕŸíoüÓÿÐð à -`l l ì¾Ï_êoöõßøô¯¦¼0oЫô õ´þ›¯¡ý´½i¯u¯ÜKÞ‡¾§÷øUÁßëâKâñ;T|D~aùmÕÈ™?æß3?^¼[ùp¿0øKào -ðO ðÉoÉ_ ÿÖé·ìöKøŸµðWü¡ÿÓ?áŸþsø€.&@ÿ ÐÐ!àðþ2ÀùwúŠ?p]™Wç!=«>P5Á>há³ó9îÅûwØ÷ôÞ¿üíiñ×&â#ò ÅäOùžù£Ë2?š/Þ-pC þ»5øsð×eàoü÷ü%ÉŸ–mGgùóôköÓ~vÿ›gÞ²ð×òÿèãsA¶¿ñoþstt8XÌ€-·ÀïzÿKýU?'ñ0žAoÎ ô"ý5HOêÍz`ÿ°ÚŸûø£À=ò^¼#xo_~?ñ‘ø9ñù?ùFþý ¿µœü{ù1óãÅ7øàWøÇÂ_Ûþ „ß’æ¬AÉ_ý™ê·ìÝ/áÿºâÿ6Ëÿ½³ï3ýMçŸþsø€,€N€V€;`Sð­ïAõó¯ôß_£òæ|>Pÿy‚½µýG~øÁûïŸ}Oë^ó^¼•}Oï-ðC5ñs‘¯ä‹ø$BŠüJ ùcŠÈæÇ‹w ßàƒ´uø+ -‹Àßø5ù§¥“pògègö+ýšý¡û%üOeð‡þïšþÎðŸà € Ðÿ¸Ü]ƒp×Ò—þÃUý–ï`ü%üÔEw^ wé…z·Þ±gÛ3îsÜ‹÷/…¾·ÀOÀï˃?8ñ=ò§iäƒüv!¿EÈoü»IþèH~¼x#èü?ñàþƦfIþ6Iþû™üS-ùƒüóûË_ý ý}F¿f¿w*üÿÓ¯¿ôÿgøï  € À -pt ¸z__øûEýžO¿På…y8¯ÐSzRïÖ;öÐþŒi¸GÞ‹÷Ï£ïé½¾¿{W~qâçÅ‘?s†FþTF¾ß&ä7’ü˜ùñâÄ»íÇ„¿¾Ò Éß*É?!Iþ5ù]þùsÑ_@?³ï3‰ýè~ Å_ÊÿåS¯˜þàÿLàù/à  €À -`8¶¶ÕÎ?¹ /ΫñPÌ‹ó -=¥êƒõ{¶=´åÔËZ÷©¼÷¾×À'ø½=Åàg¿P|FþƒIä ù­B~SScCC¥>’/ÞÿïÂ?*ÿNƒôà—äo—䟈äŸÂä§üsúÉ¢ÙÓ©èwúÅ~¡_³?Ø¿_ìÏà/åÿ≓¦?øÍùÿmð@'ÀG€3€Ð)à}Zzö‘>Ác /Ê'Î ô"=³þí·h½bZ±7íOžxQë^¸·¼}Ÿ -|‚¿9€Ÿ$¾‹ðsâ3ò§OCäOAä ùíB~ËÈÝŸüQEäGóãÅ»o(Á?ü¿RihlljÎ%ùç«üýOzô;ýZý©ìöïû5üÿß9zôØqÓŸíïü‹ÿ6¾2º\̇À¶@ç ôì3}sV‘7æ úDzP/Ög°7í;ªu¯Ü#ïÅû=Á{~7?¾'¾‰/à÷:ÄÏE~sSccC¥ñA~Í`È™/Þˆ½~È_W”ü"ÿd‘ÿÈ?#%ÿ<ÈoÑÿ¸E†þÐÏì‡ýÛÜþ]»û,üÿCÏfú[û+ÿæ?À@&@7€+€ÀèðÞàì3}„çoáwȼAïÒ+õb½cÿ°7í?wèÐÁä^ò^¼ïï{Ý{~à¯Í€o‰¯â?üKÞÜœø˜øE‘_‡Èˆü|æ’Íï–¾2÷‡?ä¯Ï&‘ü³!?¢A:úûѲßíG÷ïØÙð—òß÷ìþ´þοùÏàèèp0Ø‚7lÊÏ>ä#ÿa$þ<$¾ˆ?+'þÄ”øŒüŠF~­‰3äGóãÅ™Wp¿þjÉßÔÜÒÒÚÖÖ>A埜“_¢®G?èÔ«_ì_ŠìOÙîß°q“†?ñß¾cçΞޠ¿óüçptt¸˜ì€NÁI›ƒò³ùÏ<‚^è]z£Ö;öÖö¦=ë^ó~s×&ñ~½z/¿Ê_À2>¾'¾ˆ?SÄŸ–B{[[kK įù¥ä§ÍäÇ‹7òï¶›†ÿ§€ÿ^‡?•üUåŸ*òOùgΚ]@?ª_²ÿ Ë~±…Ú¿fm‡†¿ã¿¥{«¥?Ú_ùÏøÏÐ Ð à -`°:ÇmÊÏ>ä#<òGð{t^ wéI½[ïØgµwî%ï×uvhß›÷øþã¥À—ÄŸk‰/âÏPñ§–ˆŸDþXü{!þÍ’Íoä]™ûƒ…?›ü¿ò7ɯÑ/ôÏ™óó_ýó²ô'Ù¯öK÷¯\µšáïøoÜÔ¥ú[ûþÍ€,€L€nF+€Àè¶9(?ûðÈÄïÑùÿ±_¯ÏYUWÇ[ic 々$’H ‘›‚¥¨#تµ—7:Îèt¦Óñÿݳ.{ïµöåìs‚á Éïû¶çœ'¥3Ÿßª@?HÏÔGë{ÒþßFûÄýpÞûÍ_¢÷æÀÿìÉcþ]8ñoýagkkó†ÿýLüxäÏ!ÿ ÈGè45zð×áùþüäò_%ùW£ükëÞ¸±¹µus[ŽþÛwv#ýzõ?úäÓhÿ³`ÿWÏ_ðáïðýÿÑþ?ÃÈ„ àà%øE× “>ù ¿ö?Až”ÿ/}—¡géõb}Â>hÿ¿ÿM¯{æþÏ_¿xñü+öþsñ^üO?yäÀÿhoמø,þÆÆúšÿ½L|{ä ù"~—ü7@>B§§¹ðwN~’ŸO~¹ùWIþk*8ú«ôßðPÎþÇO> wÿç_|©‡¿âÿͷ߉þÿì?À°2²¼4´²2ýôY~Œÿ}éçà¼@?HÏÔ«õ{Ñž{½îõ¼7ÞÇÿáƒûUðIüÍM=ñ×®_#ñWE|"_ÄïùsȇùüæÀ¶„?üËîäÏ俾¶žŽþ›Û;Žþý»ßã³?ØÏw?þÿ Æ?ûÏ @@#@+@3ÀCð“ŽÁ„ôi~“'å‰ùÁy~>P¯Ö'ìƒö½\÷Äý³?=Õû>x?ø÷>>8¸»¿ÿÑ^ ~:ñ¯Ñ‰ŸÄ7GþrqäòÏ‚|„PÑøýÉ®}ò;ù¯ù‰þëtô¯ÓÑŸÑgwoèç³?ÙÅ_ô¯ðÏþóÈÈÐÐÐ -Ð ðü cûÑçþ3}žß%äIyb~p^ ¤Ô³õ9ö¢½ãžÏûtß§o÷ÎÛ·ü‹À×ÿ:ø"~?¿<òÏ•G>ÈGÅ~;þÆÉïå·Gÿûáè_££?Ò¿Môß"ú½ý÷É~ÁÿIÀ¿Ð_ùgÿ‡0 6€F€g€v@§@úW»ô¼D¯ò¤<1?8/Ћôõl}ÄÞkŸq½? ïõÀWð· øñÄÿ 8ñUüK$~óÈù¡ñ:ðŸñð×NþRþxô_µG¿£Sèg´ßþáòwúGþƒÿÃȤ 6à{žÞ҇ùMBž”'æÉy^¤¨OÖGì“ö÷™÷·åÀß&ï ð ñWzâÇ#ßfœ|˜Ðim:üõ“¿'Iÿz ¿b¿Å¿¢¿òÏ×ÿàÿ0²ihhxh¾Ó-¾o•ù«¼C¯ò¤<1OÎЋôB=[Ï—½bïµ÷ÜÞðï+àwÅoù !Ô­ÿþ)'¿È¿Lò_ùÍÑŸÓ_Ú?‚¿ê¯üÿeÒÐÐÐð èèLHŸfâ¿æ¯<æÉy‚~^¨Öóe¯Ø³ömîsï+à›ŸÅ¿Lâ/'ñ§ù¿ËÄù¡²ðç'¿“_è·òóÑߦ¿a¿Ã_õOüóõ?ø¯0,€Nm­€Lö¼yJ^cã yRžèIz¡~°>Ã^µwÜx_ŸO|'þR¸ñ“ø­#ä#„¦ÖƒìäOò_tò;ú¯ô›³ßØŸã¯úóíøÿethÂð -èÈľ¨fŸ—žÉž*ó¤¯Gé…z±ž/û{¾íU{½î#÷Æ{wà‚IOü¥xâñÇŽ|šØøÝÉoä¿`äô¯ýïúßúõì÷ö{üþñ_ -M€Ì€ nAìi%÷€¾$_x,ʳó½J/w½XÏ—ý€½ÓÞsï½þ*yŸ¿¢à÷Äoù !4«&ü£'¿•ÿ¼•¿ ?]ýéì·ö×ðú ÿ»Ê]€0´¼:a b+¹ô-6þí:OЫôr×Gëìö;¤}ƽõ>øðUüó³Åù¡éå`´Nþ¾ü9ý—-ýæìOöWðgýoªþ‰ñß.Om€¬Í÷Àõ°š{$¼È_¹ÇhŸsï¼çÿ -y__Oü¦øgøý#ä#„zµá¯ümù ýæèô‹ýW3û=þ¢¿ÜþÂòŸ ,@˜™°a ú…Çôõ}UžÒëYOÔËe/Ø[í7HûȽ÷>ø=ð/ð§ŠòB‡l2üUùsúß¶ô÷ìÏðOú'þÕZ€8¼²<q -bûÕÜ#áEþ -+Ï=C¤'êÕú„½h_rßö>ÿN~S|:¢%¿?úýýîì·ö;üsý•½þÉÿ0idxâ¤5èŸà¯1óìü6ÿ˜Ro¬OØçÚGî÷5ðßÎÀ˃ñB¯¢ ðÊŸýþâìWûþéô'ý•ëø?2¼2¼i vÌ ´rO†×åcÌ<;¿É?f¨'ë öª}:î÷é¾Wï—ÅûþÅüâÄÏÅù¡#©¥+ÿï“üÅÑí_Jg¿ÚYì÷øëénÿÀôŸÀL€Ž€¬@‚ÐͱܓáuQþ†|y#H©'ëöæ¶×ãÞp_÷~)yŸÄOà¿Yžø“Äù¡—nþBþ‘£Ÿé¯ýÁ~søüƒþáøþÇà ÐHKð¡„FîÉø¾~O>¡gé™úpÙìƒö–ûá>xŸøì}:ñ ø}ñqä#„ެ±“¿%þâìö[ükúÇë_üçH   #† ´ÞË?¿"è“ôL=[±¯i_pï¼¾=ñ-øóÄù¡_¹iò·~¡?;û£ýmü£þÌò_À,€n@œ43J¯~¾¶š OÒë{§½ã>ž÷Þût໿>ÄG- ’›)ò;úó³?Ù?ëŸø7þËÈ„ 0CíA3ÿxüŠ~õª^¤êÙzÆÞkŸ¸ç}îý[¹÷‡ä#„Ž´qù{ô—gnÂ?éoø7þëè褰[0=ûrü¢þ‚•^¨ëû\ûÄ}ÝûùàC|„ЂªèÓ‘?Ð_9û­ý9þ…þ¿€8ºqò1˜’5|ðÝð +õ—û\û‚ûŠ÷o:ï#øÓÅù¡WXOþ>ý5û-þþŽõ?[€¸iüLÊ¿¿~ÂK¯Ö[ì­öŽûš÷SÁ‡ø¡cÒ ùý£ö×ð··à_ýO 7 ­@>SÊÞß¼”~çK}À¾¢½ç¾ç½â#„Žq5”æÐŸÙ_Å?ã?ø N€¿sʾ‘>žK¬Wì3í3îsï >ÈGƒúò[úGìÏñúGþƒÿaÒ¤ p3·\Ô|Ô|oÉüÌEOý…ø§eÚçÜw¼÷à×Å_ôÿÎ!”špô7èOöøGý#ÿÉÿ8qüäK0µüæëñõÑúˆ}Ô¾äÞx?|ˆ:†Õ½ÊèoÙ_Á?éŸøOþÛ0àg /7Ý©že?iê¼ùΕØGíëÜxßâ#„Žsóéwöü“þ†ã¿€l*S0½ò;þ‡ õÆú„½ÑÞqï¼ø¡Tƒ°œ~oË¿õß@±£kЪõ ÿC–zcýY÷'·¹Ï½oñB¯WSéÏì÷ø{ýÿnŠ è¯A_÷*ó^úÌz}Î}á=ÀG´Z¬•öã_úï Ü€þôuo8_P_`ßç¾é=ÀG½þ5…«ØŸã_ê_ú_NÀ”5˜¢ûôê ìkÜ·½ø¡“T»šýþuÿë0>“j|µ&} û*÷#Þ|„ÐÉlĽ:þ5ý[þ®À!ù¡ê_Výï0Æ=ÀGüF¬ãßò¿3Y˜ûjëOh`ßáÞ#„NSã ¶ñ€ÃÍÀ|äÇ©ïsðB§µžŽãú÷àW®÷Çtµ‡÷!ô›)øwõ?‚˜þ“´÷!”5ÎyþuÿàEÿ»"„бn¢¥‹€Þ¢ÿ%Bèuj¯G;sÿhB/Ñlt_nÿk‹þ‡B¡ÖKø„-ú_!„N~‹–Ö#„ÐÂô!tªò!„B!„B!„B!„B!„B!„BèÕõzÑm -endstream endobj 204 0 obj <>stream -ÿÿÿ((( -endstream endobj 86 0 obj <> endobj 205 0 obj <> endobj 206 0 obj [0.0 0.0 0.0] endobj 207 0 obj <>/ProcSet[/PDF/ImageB]/XObject<>>>/Subtype/Form>>stream -q -/GS0 gs -244.1599945 0 0 245.4399945 59.3429222 55.4917377 cm -/Im0 Do -Q - -endstream endobj 208 0 obj <> endobj 209 0 obj <>/Filter/FlateDecode/Height 1534/Intent/RelativeColorimetric/Length 418298/Name/X/Subtype/Image/Type/XObject/Width 1526>>stream -H‰ì×gw׆aŠP@Ý )65º@4ŠlÇ1Á¤‘Äé!½÷Þ~xæm»ÍÞSŽŽ<*ÏýÑš9ËK:ëzvì@!„B!„B!„B!„B!„B¡q´³WCÿß"„ê^?áq Bh“µ>Ìã „ÐÆiéK ý»@¡-ÛØ¤Þ4¶ú·ƒB[¤5Ã>zà!„>¶P~¬W`èßBm’6–ôk½Cÿ6Bhö~ÖïîØúù?ôï!„6Pã¾+îýÿCÿ¦BhØÖˆ}W´_ëØ˜ŽìG¡´‘¹îýéÀ~„ÚÑæ}?ëÛ´þÄHxFÁè?B­g½¹ï%}3åŸliÄCЙØÚVõã¾›õ£ñÞ¯îG ›þ !´åëã};ö˜ß3–:vþûØ?ôß -!„ÖTwï[´o„>öÞ1ÔzZüoÃô#„¶RÁoâ¾H}›ñc¨í@þíúï‡Bë -~™û<öEèk`ª­}U­5ßü(êßh?èGmÖº_ô>§}–ú&ä÷%íï\úfÓÈ€œþ]í‡ü¡ÍU'ðKÞ7iŸ¡¾€|lødCSSM?-Þ‚ü ¨óŸÑ¿›ý!´)ê ~ÎûTû:öuèóÄO%Mw,}/ê' Ì ÿ‚ý !´yê~ƒ÷)÷ëëÌx?Pî`Uà Ǡ~ -þðo±¿ýCÿ­BÛ½vñ³àæ}Vû¬õuæSÓ}‡z¿™?É Èúëßj‰~ÈÚ@~aßg¸µ­O¯ó~8êHçâ÷êÇ ½ÿ#ý#üÛìïCÿÐ{„Ðv«‡ø¥Ÿ™÷!÷ö¡õô òßGÃŽu.z­~ â#€ÿ@ÿÿ&û3ô·É?ôW!´}j¿ ~fß׸ßï¹O±©Oy=ìx¢Óc߀Úø÷øïOñÏØß‘~È ÞâGà‡ÞïõÞ'Ü{í=öõ!ôòÎîÖLÔÉbñsîõô„7 8ÿž§ºüködzò#„6NÅo¿ì}{§½·ÞK: oŸ -šíXøNrÂ3œœÿN‡ÿdŒbnö×èo–èïBh+Ö(~iâ×ÀŸpà;ï'Íûˆ{ÓÞaï­O 7¾ßÐNG)?go'ÇÀbÿÿ¦ ÿØþüì‡ü¡Áë%~}âg~´ï ÜGØ›õ‰ôù„ö³®sioºj?òo%ÁŸÌ0ÿCþsø×ìwô³?7úwgèü¡õ©iä·OüühàÞ+÷6î•û{£>†>0>Bý-ë|Ú§]µ¹—¢³ÜøØÈðoÛ?Æ?µßè÷³O~Èúøê2òÅÀoô>æ^µWìCëMzÇ|`|¤úíbÚœ«ö#{'º -ÁpGÀ.@â¿ò¯ú×–Ý~£ßÍþüè-¡WƒüCgB›µ.#?#~<ñ3à缸×m/Ú+öõ&½1¢>¯-Ä-&%?¶·Â³;vbÿ•Ñ_·Šd2û£ÑÐß&?àG­¹âïn?œø -¾ü~è}Ƚh¯Ü‹ö‘õôƼ7>`}IºäºÜ’R_ Ž‚¿v‚ ùïôüOºéÏø§öûÙ¯ôïKé/È¿ò#„ÆY÷‘_?˜øøÞ—´wØ«õ*}ȼ#ž¿"]Õ®…]OŠ~hoè¸sà΀½ÞÇNÿØþcF¿ØÀÍ~?úýäü¡µ5ªø{ñýÄ/€oÞϨ÷÷¦½ÃÞY/Ôôʼ3Þ»~CZvÝlÉ?©¯ú›àî€àÈpþ3ÿþ†¿,ÿt÷×fÿTDÿ(ò~„P¯:ü‚ø5ð§Rð#ïyßÛ¼÷Üó¶7í {±>’^wÈ;Üoq+Òm×bþ}I>Áwü ðÀü7þ½þþ<ü#ûƒÙo«:¤_G¿É¿7+ûäúK…Ú¨•Éï)þd<ñëà«÷¼ïyÞŸ!ïCîU{[öŒ½£^¤WçMyž¿ËÝ“î[osè+ò¾;vôè @ùOôñíŸQûuöý6ú§s£¿¼ù['ÿÐ_-„ÐÆ«ùNü=9ñðfÀŸ‘¯û^¸?GÜ¿qï§½bï¬géÅyc^‰w´?à>#=´>[Ì=¢¯Èûî è!Ž€œ>æ?óëïð'ûßûϤöÇôòôG£¿,?àGõ®(þ®ÂÈoÿ Nü#$~ühß÷<÷N{^öŒ½·^¤è•y5ÞÑþ9î÷ØzÒ{HÞ‘÷ÝAÐ; GÀ>ÞæŸ×¿è¿Hú þÑðvDÿ±˜þdôäÏL~Àjn”‘_Ÿ'þ!7ñ‘øþÉüØ{á^½7îI{]ö¡õF½s^•7àÉð§Ü*÷÷n‡äIyK>Áî=rüðþ»õ/ÛßðÏ ³¿Dÿa¢ŸG³üm“ð#„’:‘_ùB~I|ÿ¨¦~ì}Ž{¯½bÏ«^©7è•y5Þxú<õ>÷×ÙüÏåy~•?ÄŽÞwäèà8þ½þ%ü+ûKôŸ0úk£?‘BäÏMþþTþ¡¿q¡k!¿yä7‰O້ïÀ~ä}‰{Óž°Wë™z–^œWå•x£ýõEî9÷akòœ¼Ã¯ÛAÐC WÀn€\:ê¿ÌÑ?‹`2ûSúMþ£mò·L~À -êG~0òKâöâ—ÁwŸ½wóÞqŸ×^°©gè…yE^'À_T}‰û2õë«…Üü¸¼IŸaÇ@ï€\¾|ü0þ³ú;ücûçÌþ<ýÇýèo•?žü€!T¯ ùm#¿M|ÿL>|¿ïuÞóºwÜçµë•z–^œåUx³ýkU/¹¯sßû¦+úÏò¤¼EïÛ=ÐK WÀn_=äAÅŸ—Íþpö3ýgþtô“ü‡cù;Lþþ€¡íZ/ò‹#šÈ¯‹ï&>ƒ6ß|Ù÷ËÎû{§}Œ=YOÔ³ô ½0/È+ð¦úGÔ·¨oKßiIãWøe» -z -ä ÈÐÀ€ùñïôgüyùóð¿Eÿ²ÿÙ™ì¯fÿ<Íþ„~7ú³òO“üùÉøBió‹ä'#?ÿPN|?ñ3àËÀ—}¿¢Þß'ïyÝWÜó¶´÷Ø“õJ½B/Ì ò -< þݪïQß§~ ý°1}ˆ_àWé3ìÈ!+À7€O€;ä¿ãßé¯Û¿ÂŸ—¿ ±Yí—Ù/ôóê?OôŸ;—ŒþP~‚?’?;ù»Â?ô·!´Î@~fä°‘ŸŠ?KâÛÄ?žÀ¿87?ƒ_ |·ï+ïmÞWëþ ­ûŠ{Ýö¬½Ç^¬'êYz†^˜äøŠðWÔª~ÌýDúiCúˆ|èÐüWþ+ý«íÿmÂ_–¿ ³µ²ÿñc¢ÿaHÿÍ›:ú¯øÑáBM~?ùI~_'7øóî~„¶DM3¿…üIO¾ù¯ÓÈŸ!òÄ牿Lÿömÿ~þ;ïVà;ï_¼°yÏë^Æ}µíM{ÅÞ[OÔ+ôƼ /¾“âÿªú7õî¿ÒÿŠéò4¿HŸ ÷@\>zä8ÿ•ÑŸ·?M]þ6üÉ~ÚýïWö»ÙÒ{¥¢yÙF^þÙYšü*:ù×ÿÐßV„Ðù:òëÈŸ}ãôé3gÏ&â_"ñ¯]sÿî½{ þCÿ)ÿÿÁ³gºïÉû—/eÞÓºî_½¢m_iÏËž±7ë…z…Þ˜äÅwRüÿì×ësUgÇñ ÒBé$!wÈ…r©Çâ !H©J‹I !娄$äFB´aFt†iu€ -±hAI-¡! ŠVï÷ûýþ߸Öo­õìgŸ³÷9I;#ŸßKÎ~xÅ|Ö——hŸæÃŽËFS§È×xȃÞ9rpôØPÿÁ?êŸô§öïïçô·ò·ðwÝßÚÒÂÙߨÑ¿žé_ÛЋþw­\™!mmÍ"“¿¢Â’?þ¹Ið{îøÃÂî»%š?3ÃüòqägD~•D>‹_Oâ/‰‹¿ -â¿âøœø®ð›šþ–¶6ö~»yßÑ!yßÓ㸗¶7í{±^¨WèyA^}'Å?Ã{™wû¬ìs)ÓŸå[<Ã_ ç@\=và¿ò/ú[ûþTþþqûÛ¶liýM ƒÐÿäºuQô¿gÕª¸üKHþúzIþ…ÕUUšü¥–ü…þyS?¸vlR™ŸJ>‹_À‘Ïä—2ùQä×ÔÔÖÕ™øË³Ä_½FÄgð‘øQá[à·ïÜi}ßÕÝ-y?0 u/Ü8ÀmOÚSÙ+öb½P¯ÐÃyQ^„7ÛÇh'yŸÇNɾ2ýY¾Å3~o÷@.]Üœ;ð_ù§ú'ý©ýÐôGù høGöïl'û™þ6¥_ªŸåýu–üËYþGIþºº„ä+ð‡à »?ö¶É/ôÈÏŠüÅDþÒeË þŠ4ñ>?þ®ç8ðµï{ûú4÷÷Òö¤=•½b/Ö3õ*½:/È«ðjûiÞÞ±/ÉÎ&N”/ñÏõè%3 7À]>ð_ù§ú'ý¥ý9ýÿáa µ¿“í·ì÷«ŸåúMþ51ùW@þe,ÿb’¿¶V’_à/Ï‚ÿ‘dø˜ üwû_pXXØ6ÙÌÏM>‰ï‘Ï‘Oä×Õsä/] -ñÏ¿!.¾Ïâøø{{z¸ï÷ jÞŒHÝ3÷÷Òö¤=Ê^±7êUz8/Ì‹ñÊ;K>N{…÷eÙ«ºsY³_ôC<â×väÈ#À'@/€ãõOúKûsú3þ\þ##qû‰þî.¡ÿ¹ˆ~È/ôûò7dÈÿø;Yþ¥K–xÉ_Uµ ²Ò‡¿(ÿþüaa÷Ù¦ùyÈ/++¯¨¨\ ä{‘¿ü1Ž|ŸÉÏ-~"øøÎ{äýÁƒR÷Ì=Ž´=i²WìzH¯Î‹òb¼òÌÏÓ^ã]}%ÚE7ïõ3<á·vôÈÀÀ Ð ÀøGý‹þÔþ†?—ÿÁƒþf”ý‰ô§ËÏðCþÇ–/wÉ_CÉ_-É/ð—ü…€Þ[‡ÿnÿ[ Ë»ÄÌŸ™Ÿ@þœ$òKüªªê…L~]ù+VJäçßÀ‡ø|ò^ÀwÞ#ï’ºWî©íM{.{Å>¢^¡wÌ‹ñÊ;D¿Ä{÷†îrêì |އvôÈ# ' :Ê?êŸôeý©ý}ü%üÅ~é~¥¿Ï£?Ÿük|ùW®€ü–üµ”ü  -üIð?ìÃ?;þ™1øCð‡…MŸM2ógÃ|Ÿüy äW -ù‹˜üúúx䫸 ?.~BâûàøÖ÷â=ç}œ{i{ÒaYÏÔ+ôp^”Wá ÷+´¯bW±kn‹~‘/å¿·s —À®nN€óù¯úSûKú£ü&û?Éö‚ýƒýŽ~ÎþTú³ägø#ù£ä¯¯«Sø«þ2†¿˜á/È‚ÿAþ°°é¼ôÌŸ•”ùJ¾e~6ùÕD~ “¿XÉÏŽü˜øâg¿8?òþSìýQòþØ1ážâ~lŒÛÞ´WìÙz¦AoÐCy1Þxg̯c7x_ÓÝÌ1ûä­=rppðß9ä¿òoúSû!ýÿcÇ4üÕ~éþ8ýýFRô'ÉŸ•ü=ÿ(þù ð?dð¿# þà~XØtÙ$2ß'ÿ¡8ùÉä×2ù.qä§‹5~BâüÄÁw}ô%òþøè¨Ô½rú´Óe/Ø‹õNz^˜â ÷¯ó¾Ý¾éö­ŒE¿È—ò -9rìè0ÿÁ?êŸôGûŸ>íðçò—ð?zö¿ûèÏŒþÉÊïà_Ìð×(ü•ü…üs3áÁ6ý–n¾Ÿù³a¾’?7Nþüâ’’DòIülòó‹Külð]ß‹÷œ÷V÷½´=´WìÙz¥^¡çEyÞÉþ&ïÛØmÝwRg_È÷xê.‚ž¹vpÜ ÿ•ÓŸÚ_Òåò¤†ÿè(ì?röç ß“û6“¿Ñ—?~NþºÚÚüðÏQø3‚?¸6-6µÌŸ#™ïÈ/L$¿ÎÈgñ™üxä;ñ›2Äw‰Ÿ|öþxäý)Êû3gâÜSÛ“öRöWÌz¥Þƒ^”WâîßåÝÁ¾'û~ÎéGòÝ9ÐC WÀ;îˆÿW´þIjÿþgÎhø«ýljýiôGÑŸ)“ÉOþ~I~þ -‚¿´´¤8þ<ÁÜ »÷–žù3ã™ÿ Ëü‡Õ|#¿8'ùÉ‘/â7o‚ø[ãâ[⧃ÏÞŸˆ¼ç¼î%î/1÷¦½`/ÖƒzH/Ð ój¼Óý¼b?Òý8çì+yƒçîè#`'@ü'þ#ý_çöçôWüÇÇãöŸxö'Óï¢_åïPù·BþMÍß’ÿ}ÉÉŸ~qð‡à ›fK2?WæÏõ2ŸÈ/ù¥D~E>òã‘ñ7·°øÛ|ñ{!¾KüðÙ{ß¼ç¼?wÎÕ=ÅýæžÚ^µgìÙzD}$½8¯È›ð@ü'¼Ÿb?Óý<çì+yƒçîØ#€`@ÿ Àþÿ‘þ„ÿN+ÿsçâöŸƒýIô»è‡ü}1ù·±ü”üÍMšüï—äŸ -üEE!øÃ¦ïr›ŸœùJ~A&ùU)äkä7¬õ#ŸÅoÝBâoß‘!þÄw‰Ÿ>{Oà›÷çÏKÞ»ºîÑöªý›‚½O½@/Ì›ñN÷_ð~)û•î×9fßèò]<ÿ»ìÑþ™2ï}ä]wôè °ÿÑÿRÿNÃÿöm ¶Ÿ»ÿÚÕ«ÈþK—"úÏúÑ/ò…ü/˜ü#$ÿ~’¿¿¯wowWgÇîkòoimÙÔÜÔ¸ñ™§7üëþ5éðWW1üå à/,œ\ð÷ÃÂîÞ&c~îÌ/+cò9óA>™ŸDþ:"ÿDþF"Óæ‰üv‰üî½=}ýƒCû‡?úü‰ÐÄ? ñGEü(ñ=ð/ü‰ë>úž½—¼¿sGêÜGÚûØ‹õÞ 7æ#â…òÉþí?©ó>ÒgÞ9pgÀn€žøïóïôþ(ÿ;wþfÿÍ›.û/¿ÁÙŸI¿F?ä?k~’xÿоþ¾ž½Ý{:$ù·>ÛÖÚ²™àÿPüO8øá¾Á¿€á/#ø‹‹ó–û3‚ûaaÿÛ%˜?Ó™ÿ@¶ù™™_J™_ÌgòÿË~}=GuÞaŸ$À„1–@HcÈE;qBS×JÚ]õÞ» PïÒª—U[õÞE/N“@(È€M°Æ0É 1iŽSœ^þ€¼½œÝ)ÃÄsžë÷\îç÷]šù”|g äGFEÇÆÅ'&%‹‘Ÿ›—_XT\ZVÄ7ˆoBâãÄŸ° >ü‹Þƒ¼Gu/rµ'Ø£¬ÇÔ ÐSæ9ñDò'x?çûÈê„Gä3ñ°3@o9ø?„¨¿€?*þ‚ý/\`Ù¯¤ŸE?’¿[’ßP]UQ^VZ\T˜Ÿ—›“}%ú®´”䤄ø¸˜è(  €_¯„Ÿ?Ók~GGËÁ/º¿’¹o)ø_öïAºÏûžgþ*j>$ŸšÏ2ßdþF˜ù›iæ#òAæsò=ùZL~HhXDdTLl\BbRJjšùÅ%eå•Õ†šºúIü$>O| þ)þ÷ ø?¸À¿z{ƒxòqϵçe°çÔèóœx"ùS²_ˆû¥…IèWâ9àg€Þ|È üóú'úüiøsû¯ûIöŸ?ÏèWD?’Éoò7ùk Õ•å¥%Å…ù(ù³23öìÞ•–šœ”Êá×@ø] ü(ø)üÈýÍÏ ~Õ}uê^ö¾`ÍüÜüçfþ&šùœü­Û ù.–ÉOHLNIÝ•¾goFÖ¾ý$òKJË**« 5µõ @|#¿‹‰?†Å_þeþççYß߆ރ¼'uO¹giÊ^´žP/9/O=ÿÛ¯—0þZ¾ü °ÀóŸÔ?‰†?*þÜþë×Iö_ºd…~"ÿ¸™üM@þÚCU%Mþƒ9Ùû÷efìÝž–š’”˜ ï#ð»Bø·›Ãÿú¦M–‚ÿóà_Áà·à¾ -¿:uŸÉþ+óYæÛ³Ìßòj>!û@¾+ _#“MÈOƒägfí?Í#¿ªÚP[WߨÔÜjlâ›$ñQâ#ñ9øç øW®ðÀ'}½gyO¹'m´gØcëEé9ó’ï¿¡ûXÚo-L~Á>”n?â`þSþ‰þ¤ýþrøûoݺyØm~Ò™ÐåÿÎÛBôËò›€ümÆÖæ¦ÆúºZCuIþ¼Üœìû²2öîIßEà‘á÷ð»AøwPø™û[̃߆¿ê¾:u/sÈçæ¯̇äcóm ùRæ¿.g>&' ß ïå£Õùúù›‘¿{O$?ç`^~AQ1‰üºú†¦æc[;¿»·¯_)¾œøBá_»~¾è½÷,î‰ö{b=¥žB/ ¯¤ý¶ß-aüµò g€žá`ÿ)ÿDšþBøcûA÷/,ܹ ìÇô_›«ŸG¿™ü@þnSWG{›±¥™'IqQA~îÁìû³2!üi)É"üþ~z ¿;„'‚ ÁOÝ_-¸¿Ru_º¶ç™¿J4Ÿd¾¥Ì‡ä‘3ïÈwä{kuzH~0$? -’ŸDÉß·?’_XTRZ^Q #¿¡±©¥ÕØÞÑiêîéëâBñ§ÍÄ'à_ºÌ -ÿæ­[8ðïÞ½wÿ>óžæ=çµ=ÕcO¬§ÔsèEã©á¿gûÃ2Æ¿’opØ €øù'ú£ö§ø“ðGöÓîGÙè¿É«Êáû‚ü'ŽsùÇ€üƒ@þžnSgG»±µ…$eEYiqQa~ÞÁ ÿnËð{{i<üÎN~üo¾a1ø×±à…¿u÷¿¨º¯NÝg1 æIa>"_4ß™3ßÁ<óùÛ¶ïtrvqs÷ð$ä@òÃ1ù‰"ù¹y…Å%eå•UÕ5µ$ò;:»º{zû‡FFÇÌÅ‚?þ >üpß#ïuµ"h±§Ö3é¹ó -áÿ(ìÓeLüNq ø `@ðóôGø?Áøãò—íÿ ´ŸÑ‡U?ŸÐ£_!ÿ È?48Ð×Ûcêê$É_W[S]UQ^ZBáß—™¡€?Âï«×ùx{yø]ü0ø¿õ–…àwÁogÝ·…îsø™û–‚ÿeÿRÔ©û|lùæÛ@ó×aó7l2ÿk$óù;v:»¸ò5Þ>Z½¯@`p&?Îù†šºúƦfù]¦îÞ¾þÁ¡áѱñ‰©éQü3 -ñ!ø7nÒ¿‡Áÿ |Ô÷<ïYÝ#îEíëeé%å™ÞöçeLüNy -„À.€à¿¬?JVþ$ü‰ý‹‹$ûß{ЗVÿaú¹üçÎùAùgü@þá¡Áþ¾^’üÍM õµ5†ªÊò²’₼ܜlþè¨`€Ÿ¯^ëã­ñôpsuqÁ¿m+þ¯KÁï‚= -~[üªûêÔ½ðY3…ÂüÕÄüW¡ù0óíÖÛÛ£ÌÍGä{+ ßÉÅÕÍÝSãå£ÕùúAòCÃ#¢¢äÌÍ/(*.-«¨¬6ÔÖ546·´¶µÓÈŸ˜œž™â3ÿ*‚û/| >üG0ðEïeîEíEìõ"ôJàÿ"î¯Kžô™òˆ'€ÿ‚þ2þÌ~Òý,û1ý°úoÿÑoEþãPþ9 ÿäÄøèÈðà@?LþŽö¶Ö–¦ÆúºçÁá×i}¼4žîn® øw àÿ¦ü¯¡à·§Á/¸¿Záþ -Õ}uê>“-Ù|H¾`>Ê|G’ù[xæòAæ;9»¸¹{h¼¼µ:½Ÿ`ÐÉ7¶ut’È›˜œšž;Ä?ŽÄÿ.Ÿ&>€ÿ® >|Ùû§Ð{T÷”{¢½ˆ=§^‚Þø¿)ö÷gNùÚüH'€ÿ2þ¨üŸBü%û -íçôÃê¿é_€ôcùýLþ3Hþ@þÇæf§§&iò÷twu¶·[šêj Õ•e¥2ü©)I‰ñq1Ñ‘a¡ÁAþ~zÖÛKãáîæâìdü›åàÇî¿ -Ü'Á¿$÷_öoFºÿç=Ãü•fæ¯æÛÚ®]GÌß°q£˜ùoH™ïá©ñöÑé}ý‚‚CÃ""£cââ“RRä—WTU×ÔÖ745·Û;ºL=½}0òÇÆ'¦¦gæ>rìø‰“Pü3Jñ!øHü»÷€øï?xÀ -ÿ1¾è=Ï{ʽ¬=Ã^ ^†ÞšïÿXÖ¬Ýù@äŸèÿ ÕáOÂ_´ß"ýïúïAú‘ü,ú©üg‘ü'üG¢É?48Ð×Ûmêìh3¶ŠðqøÓ)üQþ_½ÎÇ[ãéáæê‚»…à߸aqÝZ[[èþ3÷Wªî«S÷?ßrÍ·AæÛÙ­·Gæò‰ù8óß‚™¿ÓÉÙÕÍÝSãå£Õûú‡„…GFÅÄbòÓ÷ì…ä瘑ßÖÞÙÕÝÓÛ?04<:6>953;wøÈQ þ©Ó@ü³ç°ø—ñø ,ñ>Äà?"à³ÀÿƒÏòþcâ=á^Оa/RoƼÀ÷?•û×3göÜÒ%O?”¡ýqúÓò'áí²Ðÿ3Jÿââ!ý$úï°èò_&òŸƒòŸ>uòı£Ghò ô÷ö˜º:ÚüM õµ5üY™{!üÉI ñ±þð°àÀ?_ÖÇ<ø¹û(øìíU÷Õ©{{¶ù«ù_–Í_‹Íw æóÌ“f¾³‹«»‡§—·V§÷ó - ˆŠŽOHJNMƒägAòóò›Zù}ýƒC#£c“Ó3³‡‘êôÛPüwÎ#ñ/Kâ¿‹Älj¿¸¨Ÿ¾à=Ë{ν™ö‚õJç­úþïeÍê-PÞÁIÿO¹þ¬ü­Ø/Ðÿøñ£?£È¿ ÈËþ ?HþS4ù§&'ÆF‡‡úûzº»:ðBø@øw§§¥&'&ÄÅFGE„‡†úûÁà÷’‚ÿÊàwtÁog·níZ[›ÿ°[_±m]wÇ‘p’¢±HNÛ§,Û¢I‰Ejャ½÷–¨M‰Ú{ïmí½‡eyHNÛ¤m’>vPÇ–ä‘ÔŠEÑä¥@Û¤è9÷^^ž»(ÊR‘<Üßóy=ŸÿqÿUÌý³¼ûüøæŽ4ÿÔü×5æÀ̧˜Ïžù.®î^Þ¾~A!¡áQ1±ñ I)©ù…òÛÚ;»zzû‡GFÇ&&§ffç@䯀Èâo߀âïï‘ø>Úß?8<Ä Ÿÿ8øDß#Þ#Ük´×bO¡ž…yŠàçÚ?ˆq>à8ô€øOòèãÏ´Ÿ•þý}môßâÈÿ©Vþ»{˜ü ù·6ñ䟟›žš»62<8Ð×KÀßH‡?Ÿá ðóõöòpwuqr„Á¯à ~è>~û¯óîóã÷ÿš~æ¿F1ÿ ù?ýa>žùFŒÌwrvuóðôöñó¼ ÉONMÏÈÊQRÉo&ɾ6:>19=£| þÎM(>Œ|ø¿%Ä¿ÅðOüC˜ø(ø¸÷"½'ó^Ë=‹öë™Î³Âζ’ÓõŠã Ð.Â?©¿¦ýµøÓìg£ÿñc,úÑÏK~(?Hþm"ùægg¦&'ÆFG†‡ú{{˜ðçç)³³2ÒR““âb£##ÂBƒ¯úûùxÁo¯ ~!üZ÷aðs¹ÿ -ï>?~§´—è³›ÿ#ùçqó qóµ™é2È|S¡Hl!‘R3ßÇ×?àjPHXxdtL\BbrjZFV¶2/¿°XÅ$ph’?5=;7¿¸´LDþŒ|L|ùhããâþ9žø8øÏ¨àCï¿"úõž¨{í)Ö3¡ç„eß’ÓùŒó -ÐÂ?Cû5ôCû úŸ=ÓDÿ#"ú?»_+¿&ùüšäßX_[Y^Z˜Ÿ›™žš½FÀ߉À¯.Uæç*³33ÒR’âb¢#ÃÃB‚®øS‚_® ~ྺƒ¸ÿECCàþΟ×Ë}ž}~üŽ9½ÍäkÌ“Å|ùcS3¡ÈÜBj)£e~@`PphxDTLl|bRJZFf¶27¿°HUª.¯¬BÈïÃÈŸœš™[X\ZY‘¿EF>.>ù„øŸ‘âh€ÿ_ø¨÷ß Þ³jO³^‡òßêÜwÄt¿Òqhþ³êOµÿkºý8ýÐ~²úµÑ¿¿Ï”O~ ?™ü×Aò¯­®,-.ÌÍBøÇ˜ðW”«KTEù¹9Ù™éi)I‰ñ±1Qá¡ÁA0ø=Ü\AðÛ‘Á/Áo,Á¹O?Ýýcî¿Æ»Ïß©ìEÍ¿H1dþ#ùf"±¹Dji%'3ßf~àÕà°ˆÈèØø„¤”Ôô̬œÜü‚"U‰º¼¢ª¦¶¾±‰IþüÂâòÊÚúù»xäÓÄÇÿ!!þ“'Dâ?Ç)|màS¼grjÏÀ^—òßxº®ÿˆþ(þtû©ô…U?F?ý\òS“sc}ueÂ?35Iƒ¿¡¾¶ºª¢L]R\T—›“•™žš’” ƒß‡ü–R‰¹Xd‚¸‰êþEàþ›Z÷‰àçÝçÇï„;žùçο@˜ÿÖO4æÃÌæ €ùB‘ØBb)³RXÛÚ98â™ï 3?$4<2*&.!195-#+G™WPT\¢.«¨ª®­ohjiEÈŸ˜œ†ä/-¯®­on]‘ ‰|øXä£ÅgK||4ðiÞk¹§hÏ´^/åÿuÌéu˜þ3õ'ñG·_“ý”ê'èÑÏ.?„“M~ÿÎöõ­õµ•奅y*üü¥%Å…yÊœ¬Œ´ÔäÄø¸˜¨ÈðÐ2ø]°à·VXɤ ±HÜ÷AðkÝ‹wŸ¿SÃü—õ0ß3̇™Ì¿b$065ŠÍ-¤–2¹ÂÆÖÞf¾‘ù¡aQ ó“RÒ22³•yù…ŪҲŠÊêÚ: ù½Zòçæ!ù›[Û7vnݾ³Ëùâ#‰O_—÷ îéØë ^'çÿÖ¹c]ÿ©úkñç´Ÿ‹~Môñ»üÔäßÛ½sûæÎë[›ëk«¬ð775ÔÕVWøUÅ…ù¹ÊìÌô4üñ±ÑQa¡hð;ØÛÚ(ä2K©…¹Hhfj,0ÂÜçmÜ}ü†Àý çÏÓåþ˼ûüøé·™33ÿ20ßÄÔL$6—HeVrk;{Gg7wOo,óÃÂ#£Aæ'%§¦gfåäæ©JÕå•Õ5€üæÖöHþJþ -$ÿúö›€ü=@>ù¿¡Šÿ€U|"ñqðÿL> ->»÷¬Ü³[|ß³#O—þþdø#ö³ÑO‰~6ùü•O~ÿݽ;·oíÜØÞÚÜ`ÂßÝÕÑÖÚÜØPWS]Y®.Uäçæde¦ƒàOˆ‹‰F‚ß¿½µÜÊR*1‹ÌLMFW.cî“Áÿ¢îß‹¿âXÍ?s„ù†Tóß¿Ì761ŠÄÐ|…5Ì|gW7/o_ÿ<óc@æ'ƒÌÏÊQæ—¨Ë+ªjêê›[Û:ºº òÇ™äïîÝ‘ÿáGšÈÿù@ü}Vñµ‰Ï>‡÷TîY´?óÿ9ÆŽw¸õGñgØÏFÿ_(ô³É¿ËOM~ÿ/àß½}ë&+ü}½Ým-Íõu5Uåê’â‚’ûgèìóîóã‡ìóÏmþ»Ð|#±©™P Í·’[ÛØÙ;:»¸yxzûúÌ™Mf~.È|U©º¼²º¶®¡©¥µ½³»§o`pøÚ(Nþƒü!ùXää?À"ÿàðS|jâÓÁgë{îu[”Ûÿ=Æ^à°éOÅŸÅ~.ú5ÑÏ%ÿáÁ=ù!ü¿úˆþ‰ñÑ‘áÁþ¾ž®ÎöÖæ¦†ºšêJüª"ü9ôà÷óõötwsqv´·³±–[YJ¡ûfÀ}#àþ{ïíþYÞ}~üôÚ‰ÍGk¾Hl.‘ʬÖ¶vNήî^>¾ óƒAæGÁÌOÆ2?f¾d~M]}csk{GWO_ÿàðÈèøÄÔ4$yuAþÇùHäïÃÈòô)ÿKšøÌÄgŸË{=´?ãOtôÐ_—ý,ôéG£‘ÿùó?| äúä žü˜üø?ý„€ÿüs³ÓSc£#Cƒý½=]m­Í økª*ÊÔ%0ø•Xð'Á ‚ß×ÛËÃÍÕÙÉÁÎÖZa%“JÌÅB3ÓSsÿûþjüøý0¦‡ù¯ê0ÿmÌü+Fh¾…ÄR&WØØÚ;8¹¸º{zù€Ì™ 3? Éü² -ùõM-mݽýC#£c“Ó³s ÿc·ÎŸ¢8ó8Ž'‚°QÀÛ­èVÅlLb¢‰Wä¾A‘O<â…H¼oQPƒÈ}ß0Ã0Ã5\ -Êpß -j¶jwU@Ž–I•k¬ì®ûÃî>OßÝótO D]éÏÐÕÕUýú¾eLò«ä“‘›ˆü¿ÂÈ"¿¿ÿáÀB|Tâkƒòž—ûWýKž>üùíGÓOG?Jþ<ù`ÉÿvòCø›ü6üŠ|Y^NVfzZJRb|lLTdÄ¥‹áçCÏžÁô0#ø@ðûûúx÷ÝV8;9ØÙZ[Z˜™bîµàËùŸ6ï“?A÷ÿ(äþï$÷¥I1®ùSPæ¿'lþǘù_Pæ›[XÙØÚ;:¹¸ó=½}ü`æoÂ3–ù!ÇA懞™y%:6>!)%5=3 ’¯PªŠŠKÕDå×òYäß%ÈÇ#¿¯%þB|Vâ“à‹ð^‡ö¯Žz±@¦ý‚ôòÿLÉ?BËÿ—ÿþ½{Dòë€_¥TÈe¹þÔ”¤„¸Øè+—#.à=‚?þÝxðoÁïçãå¹z•›«‹“ƒ½­µtÙ’Å´ûC÷çðºÿÊý)’ûÒ¤1÷.}®ù†˜ùÓÐæÏ&Íÿš¿ð«E‹—.[njniecgïèìâºÒÝÃÓÛdþ†<󃘙2ÿò•¨˜¸„ÄäÔôŒ¬œ\™M~A>ùùTä ë_|®÷‚Ú‹gù?ãÚ8øGâϲ_›þç8ýÂò ùûû©ä‡ðù øÛðª - üÙYi©É‰ q ø/1<ì3øñàîûûz{‚àwuqv´·µ±²07]¾l)pá—_|þÙ§:ÜŸ†¹oˆvÿ]É}iÒÞÑ}=}„ùÆhóçbæÏ§Ì73·´¶±spt^á¶ÊÝÃËǘ¿Ëü]»‰Ì?†e~øEùQ1±ñ‰É)i™Ù¹yrEª°¸D]VQ É¿Á&¿‡ ˆÿ7­Èâ¢ÅG$¾vࣼiíLJüœü9ö£è§£ŸGþÑQ:ùü}½½8üdòkÁ_ á/S—@øóåy¹Ù™i)I‰ñ±ÑQ‘ øÃÏcÁ”~à> þõký}}¼€ûn+œìl¬,ÍÍ û‹h÷çB÷gk¹oŒv_åþëþï¤I{]ã3_Ÿcþtæ/Xøõ¢%K¿YnfaimkçàäÌ_íéíã·fÌ|`~ ‘ù!xæ_€™—”’šž™“'Ï/PRäWsÈïfïþ}näâ‘ÿ$Ÿ#þs\|v⣟×û×*ý˜.€NûéÇåÿ…-?ø´ˆäïëƒð“ÉàïaÁ_ ᯪ,/+-)*TäËòr²2ÓSS’@ðG_aÿ‘CxðïÜÝÁïçãå¹zpßÉÁÎÖºÿÍÒ%˜ûóu¸?ã¾¾ä¾4iô¸æO¡ÍŸ*Úüy óMÍ,¬¬míù®+¡ù¾þk1ó·íÀ3˜Odþ,óã@槦gdåäÊòÊ¢’Ò²òÊ*H~m]}ù ù2"ÿ1ùÚâó$¾(ïß<ëQ‰¿HúiùŸ#ä'“„Lþ‡ý ùàÉÏ ¿J©È—åæde¤¥&ƒàÁ‚?ŒþÃÀ}<ø·nîûûz÷Wºº89Ø÷-ÌL¡û_/\ÝŸ'Úý©´û\ö%÷¥M¾¡BŸ2߀cþ ]æ/#Íwtæ»{xAó×oÜ´Ë|hþ¡#Dæ‡ã™2?-#3;7O®(P—ªË+ª®V×ä·¢Èï…ä °"_‡øTâ3À¡¾ïÇ ô…ö[ñ/l?ƒ~±òcÉ?Š%?„&o/ü õÿÕªŠruiq‘ª@!ÏËÍÎLOƒÁ‹ÿy2øìÃ݇Á¿~-tßúïÜ·åþ Žû‚î¿î?Pš´W;”ùz‚æÏâ514ßÜÂÊš¿Â šïã·†6?xï~*óÃ8™Ÿ'Ë/P—¨Ë0ò¯×jêIòoqÈïƒä¢#ŸO|:ñÑàëö~‚}¹ Õ_7ýtôÿƒ !?;ù!üÃCƒ0ùûúPð·að×ij¯×\»ZYQ¦.).TäËò@ð§3ƒÿÜY*øƒƒwn'Ü÷óñÂÜwîÛ`î/p– ûz’ûÒ&÷t™oøÒæ[ZÙØaæ¯Z™¿nCÀæ­ÛvìÚMg>0ŸÈü82óer…RUTRZVQyõZÍõšº†Æ¦–Ö6~ò‡XäÓâ?#¾øãå~" ŸÈ+ Ö~áè§äåÊKþ‘‘G?þÈ7„¿ÀßÔX_§¹q½À_^VZR¤R*ä2üXðÇÁJ¹ÿÖÍÖ­ÁÜ_嶸oÜ7‡î/æwÿ®û†„ûú’ûÒ&ùPèëcèæCôùFÆ&&Ðühó?Ô69n¾n¾§·/Òü³çˆÌ¥2_ž_ *,.U—WV]«†ä×765·¶µCò»9ä÷“ä?z42:ªùÏä3Äÿ¯øÂÞ¿1Ô÷Œ~ù¡äg$ÿc,ù!üCø{ üþf-„¿ª¢\]Z\¨*È—ÓÁMÿé“ÇCŽ:°í¾·çjÊ}KsÓåÚîÈqßÄÄØºç¾!™ûúûÒ&ëøÍŸJ›?2¦nó­ùN.„ùþk×oÜ´åÛí;ƒ‚÷î?xøè±§ÈÌŠ¡3?_¡,,*QÃ̯®¹Q«©ohjnikï€ä÷è&Ÿÿïâ¿`ˆ/ -ü7{ÄÆŠÿØåg&ÿ˜üþGhøoCø;ü-ÍM õšÚ5 ø+`ðÁŸŽT$'øƒƒwnÿv˦ë×úûî;9ØÙXëvæLÒýi’ûÒ¤½ƒ6_4ß`ìæ»®ä3Ï|`~4;ó‹ŠKËð̯ÕÔ546·´¶wtvòo#ÈÆÉ ÉgGþÅø¯[x¡M(ýÚòÿJʯ•ü:à¿áïð·¶476Ôi°à¯$ƒ_ƒ? þ+ºÝwáw6Êýé”û¤ûz’ûÒ&Ý8èó˜?ÝÈØ˜ÿ>ËüÙhómqóÝ=¼Hó·íص{Ïwû:rü$n~D$žù©é0óådæWa™_WߨÔÒÚÈ¿ È¿s—A~Eþ›|fäãâÿJˆÿOJü³Äÿÿ™{Î^Ú~qò£“Ÿ€ÿ'ÿc>øïøoÝìêlokmnj¬¯Á_}µª¢LÍþÔd<ø#.];wöôÉã!GØ÷ݞݻ˜î»¯t…îÛj»ÿ‘–ûï÷µÜ—r_Úä*ôõ1ô1ó!ú”ù30óú´ù ™ïã·f݆€Í[™æŸ:z>ü"‘ùI)i0óe ó ‰Ì¯™_ßÐÔÜÒÖÞÑuó$ÿ‡?ó’ÿ’OGþ3¡È+þ[Ã={ã¥_—üüP~>ø{ øAðø»üím0øë5µ×k˜ÁŸ ƒ?ºO?ËýÛ¶n€îûxyð¸ÿ æþÂ}À>æþ Ú}Ⱦ!™û’ûÒ&Ó¡¯O†¾!úÀ|#¦ù ô¡ùs0ó?gþÞý=v‚e~2Ìüœ#òµÄÁŸ_üߘ{Õý’›ðw£üŒäÆH~ÿ-øø±àÿáîížî[]m­-Ìà/-)RàÏËÉ‚ÁŸK¸zæÔ‰cG¤Ýß°nŸ(÷ñܧÜ72¢rŸr_r_b_ÚÛ=„ùz¤ù„ùÓ0óM0ógáæÿþ¸ùsŘ¿30(˜4ÿì¹° —""£bâ`ægfç‚ÌW‚ÌW33¿µ­½³ëf7È|Œ|"óµÉÿ™—|1â‹ÿÍa~Â^RèI|ô£åçIþ§BðcÁá¿s»' þ&,ø«ÉàW*@ðgg¦ãÁqéBéþþ½ÁA¢ÜŸ‹»sº? sßÄ„È}Ì}¦ûRîK{ÛÇ1ŸúLó§CóÿÇ~?7qÞqŸ)¸´ Û´%?´Ø:-ß·1æ¾B¹Ï¦†’”’ CHBB!Ü`076Æ÷mY–dI–|ÈÖå -mgÊa0>0mL t¦ßçÙ]iWÞ•dKÐÁÝÏ ùyfôzÞF¡Oš"‰½2ÿ­wHó?þäÓ ]Ì?™Ÿ“WPT\Z^2_£Õ™ß ™o‡Ìg’É ù,ä;Å¿ë^|Qú ¡÷ýæüŒaÉï ü—ðCð·Ø­s“©‘üü…y9Ù(øÒÝß¼iã†O)÷—¿Ãé~ -Ý}±Hâpÿ·¿Aîr4ï>¿ÿ‡±„þh*ôÇ`ôæw1_‚ÌŒŽ‰‹OLNa7ÿ7IóW¯!Íß²uÛö»öì;p0ãd~æé3¹ùE8ó•ôÌ·@æ·¢Ìw’‘I~/Aþ¿˜äß&ÈwD¾/â?lÔ³ÌÏôsËÏÿ ü]'‚ÿâ?)øqð·ÚmVüõÎà//+)*€à÷!ø3Ø·g׎íÛ¶îòñÒý·Þäv?>.&:¹/‹Béî§¹ØCÏýQ<ûüFìXÌE™O…>˜/óƒæ‡bóå4ó§ 6 iþ«°ùŸ}þÅ—”ù釰ùYÙ9¹ù…Å¥eŠ*”ù:GæÛ óÛ‰Ìÿû?ˆÌò;ü.&ùÿ&ÈwùÃÿÁiÿŸ¡mx_âÛQ¼Ÿžü·±üìðw“ð_Áð;ƒ¿£þfZðW)*ÊJŠ óss²³N1Üßòå„û«W‘î¿Áâþšûr†û°ûÁà¾@ÀÌý>÷ùìq†¾Óü±Øü Â|„>6_(–H‘ùQÈü¤”ÔÉØü¹l濇Í_·ž0ÿÛïvîÞ»?ýÐá£ÇOfžÎÎÉ+(*.-¯T(UjFæ· Ì?çÌ| 2ÿd~w·—äÓÅ¿Ç*¾oBGû! -ïïWÀ—s±ËÏU~–ägƒÿ‚ÿ2~2ø-TðkkÔ*¥¢²¼´¸¨ ÜϸŸuêı#î…Ý_û·û3§ÓÜ@î‹Áý‰N÷Ç#÷È}ZîÐsÿ<ûüFÈ8Cÿ—´ÐÀü`ºù!B‘X* ó£cã’’Áü©nÌÿ›¿ ›¿c×§ù9y`~y¥B©R×èôc}ƒ©Él±ÊüËWPæwuQäßùž@ô|Oâ æŸ}œïúûY~Žägƒÿ‚ÿ - ~*ø­s“©¡ÞhÐëjÔ*p¿¼´¸° /'›rßž]Øý͞ݟ -î''%ÄÅFƒûa2‰XBw?8»?–îþhºû|îó c1ßúó!ôƒ‚°ù€>a~¨H,‘…É#"‘ù‰`~aþü ¹Ì߈Ìß¶2ÿøÉÌÓgÀü¢’²òʪj•F««5@曚ÍDæw¸fþ5ÈüîîAä¸'ÿAŠÿ‰÷ñðU~¶Óþ&ü½½=Ýÿ5?{ð›ëë µ:­F¥¬ª,/-)Âîgž¤Üß±¹¿i#rÿC÷.˜?»Ÿî'"÷##äÈ}!v³O¸ˆr¹?¹ïÌýQ|îócýzè#ó!ôÇ;B™/K¤Øü˜¸x0?›?g˜ÿäÓÏ濆Ì_N™¿™¿•0?ýÐá£ØüÜüB0¿BQU­ÖhõµÆ:ÈüfÖÌïD™2¿·‘ßï ù>ˆÏI¾/ÐßóqC|ƒhòsÃÿ= ?ÿõë(øiðŸGÁßÖÚb³Zš›ꌵz­F]]¥¨(÷ósÏœÎr_€ÜçsŸßÈ»ù£éæ'€Ðv˜ÿû?€ù"‰T&ŒBæ'¥¤¦M™6ceþó/bó_g7ï~ºùÅ¥`¾R¥®Ñé ÆúFS“Ùb³·@æŸuÍü.Èüœùý(óùß»’ÿ“gò}Ÿü¡Zï«ñÃz¼¦ß—»üdð÷ßèëëíø»º\ƒÿ,‹Ýf17™ê½¶F]­Dî:ÝOßÝߊÜß@wÿuìþ‹Ï;ÜŸ1mJZjJRb|lLTd¸\&ƒûiîîu¸ÀåþÿúçËßÐç&ôá¿[Â|ý  Âü Øü‰!B‘X* ˆŠ‰Oó'3Íù6ó· ów“æŸÊÊÎÁæ—W‚ùš]­¡Ìo6[möÖ¶vÈüóhä£Ìï¦2ÿ¦#óo!ó=‘ïÞ9ïÅ÷¸î°çú®¿æÿÞÐïÓ•°Ü„øo1à'ƒ¿? þ (øÛÛZí6«¹ÙÔX_gÐëjÔ*¥¢²¼”éþ^ìþ÷—"÷_y™éþdp?¹†ÝÁîûØý prß‘û|îó ó"ô‘ùÈ|2ô‘ù¡"±›æOÂæÏžûèc“æ¿ -æ/óWp˜™ŸWP„̯ªVi´ºZc]CcS³Åjoi…Ì?Ç–ùùýäÿH‘ÏôÎ_¼ ΠüOßWO€ûýy1>Àßág ~p¿£½µÅfµ4756ÔkuZJY…Ý/ÈËÉÎ:Eº¿›îþjpéþ«„ûO<þØ£sgÏœîO÷ãb££"äa2‰X -î;rÜÄîÿÚé>Ÿûüþ¹ ý_¡/€Ð&Bÿú!¡B±D&ˆŒŽ‰KHLó§NŸ‰Íâ©g°ù‹Àüe„ù«iæï$Ì?F™_R†ÌWk´úZc}ƒ©Él±Ù[ÚÚ;Pæÿmpæ÷õ!òo’ä òx`ä»ÒæÖ{/¤wïøžçõ#À¿[ø}ºæqÂÃÿ‚€„ÿ&‚¿¯ -þN -~pÿü_Áý¶»Õbn25Ôkõà~5r¿¤ˆpÿÄ1ÂýL÷W‚ûËÀýEÈýçžyŠrjÚäIɉ q1Ñ‘à¾T"†† Ü'Ý÷”û¤û|îó{èç1ôÇâÐ -¢›?1T(’HeòðȨ˜¸x0?5fþs/¼æ/óß^¾b%aþz†ùGhæW(Àü­Þ`¬o45›­6{k[ûY0Ÿ+óoÒ2Ÿ"ÿÎ òYPóQ|WÕ8Áwgýt¿ãiÞ½\úsÑïÇ;òþÛøÉà¿Éüç!øÛÛZí6Ò}ƒ^[£÷+Êœîa¸¿~ÝÚ5„ûo/[ºd1¸ÿÒ Øýùó÷SS’ãcc¢"Ãå2©X$„ÜGîOøvŸÏ}~#kLó9B?B<…>˜*KdaáQ1±ñ‰I)`þ´³æÌ›¿`!6ÿZ´x ˜ÿç+ß_µz‹ùLó•`¾No¨#Íoimë8{2Ì'Èïdf¾“ü[ˆüÛLòïrïkä»zÆ>ö”çBý¶§yñ°óÏF¿¿Ü÷ þ[ø]ƒÿʕˤûÀý޶Ö›ÕÜlj¬¯3èuà¾RÁp?c°ûï¯ü/ûõ\U™Çq|œÕÙÕ¥8£ã -Éí½å¦@!„Þ{»é½÷ÞI! !„Í ®: cEìŠ:® -H !=4wvw}±û<§Ü{žsÎM‹;qÎïõ¹oþ3ù<ßäeg¦§÷c¢ ûþ¾Þžîn®.ÎNÀ};=t_!—JDBºOæþ“\îsû=5ô#Cÿq2ôWRB˜ÏŠÄR™B¥ÖêôvkHóýƒ¡ù†„¤Üü’òÊ꺆¦–¶vºùâæúÙß¿8|ä«ã'Nž:34|ndl|b -˜OÏü¦Ì¿ƒfþý¿hÈÌšÏ>;ös)oõŸçݼo›ÿLûYä·ä¹XOf~³Áÿ)øûÓSãc#熇Μ: Ý? Üÿ”pÿÝýö¶–¦†ºêÊò’¢‚ÜìÌ4ྸhrßq p_§U+2©X$äó¬±ÜÇÝ_¹b–ûOp¹Ïm©i>=ôÿL„>0ÿ©§¡ù«­x|H,‘É•jNokÌ_¿aã¦Í^ÐüÐp`~|RJZfv.Íü^Šù¯8øö»ï“æ…柆æŽMLNMÃÌ7™ÏšùòAÈÿuîn½OÃþËêC|&÷ìÔÏ‹ûÝEÎü[Àâ?Í~ºü–rÑð7Bá7ÿ5<øq÷/]îOŽîÇÜÿ sÿÝ·xâ~oOw'é~YIQ~nvFZJb¼!&2ºïãå±yÓÆ ëûö¶zF­”Ë$b‘€Ï³ÂÜú)Üýå˜û\îs[Ú3ú$CúÀ|kž@(–HåJ•FkÌ_»Ž0ßÇ/˜mˆOLNËÈÊÍ/*)«¬®mhjnkïDÌ7ÿChþç˜ù_óÏ`æŸÇÍÇÈÇÌG3’s Í|D.óäß^s›OŸ®=+õf}ÿéÆö 0ýGìg—ßRî3åŸ~jðßÃÝÿÉü³dð_½àÇݿܟ>{æôɯuôðŸC÷?|sÿUºûÍM µÕe%…ù¹Yiɉñ±ÑÀý ?Òýukìmm´•B.•ˆ„ž5pߘûÀýeË`î?Îå>·¥ºGô ó…æSCÅ -£ù ô­y|¡H,•)Tj­ÞΘïìâêæî Ì - ‹ŒŽKLNÍÈÊÉ/,)«¨®­ojnmïìêéíæ?‡˜šÿåá£Ç ùCÐüñ‰Éi`>5óù33XæßbËüß„|VóQò©àÓ´g‘žÕø;´ý¸ð¡?¤¿ ÿ©öSéGà·œû÷ ?-øoÞœÁÿ½)øûçûãF÷îBܸß×ÛÓÕÙÞÚÜTÝ/.ÌÏÉÊHMNŒ÷½=ÝÝ\]œ€ûvz­Z¥IÅ"!Ÿgå>á>—ûÜ–øæ -ý?¡¿„þ“8úÐ|+_ Kdr¥Z£ÓÛÙ¯qtÂÍ÷öõæGDÅÆ%$§¦gåä—UTÕÖ7.ÄüSÀüs#cãSÀüKTó¯óg1óoCóY2ßÄÕ|äß'Y¨Z(WfÄG¹§SÏTüöŒù°úÏNÿè§d¹£%N8üä!iÁþð࿎?îþeàþ4æþ¹³C§Oaî9·ûõµU¥Å…y9Yé©I q±Qa!þ¾¤ûŽkìmõ:Z)—IÄ"æþ³árŸÛï`0Ðg ý•¦Ð_meÍÅ©\©ÒèllùëÖoظi³‡—¯`phDTŒ!!)5=3'¯ ¸´¢ªš¿µ³k{o_?0ÿyhþ+¤ùŸ@ó=v1ÿ"nþ·Wpó±Ì¿ 3ÿö<™ÿðȧŠÅb¾I|JáSµG¨g8O!ûm?,bÈioâ?“ýFùéð3i‘3Î?{ðß&ƒÿÆ ÄýKÀý©‰ñ1ÂýÇŽAܺÿ·%º‡>iþªÕÖ<¾P$–Ê*µÖFoç°–4ßÇ/ 84<2ÆŸ”’–™WPTZ^US׸¥ukG×ö}ýs˜fhøÜèØøäÔôÌ|"óIóhXææÓ3ÿW–6µ(ù,¡oŽ|øíQêÊSø¾‰nv£~Ïx¨E£ýˆüÿfùßÉ’î3ä§Ãÿ+~¶à¿…ÿÌ æ>?æþÅ ÓS“Ðýá¡3&÷?¡»?Ðß·c{Wt¿®¦²¼´¨ 7;3-%1Þà烹ï Üw°ÓÛhÕ*…L* ù<,÷ŸìC÷—/çrŸÛÒ3ôÿ€„þôÐ_BŸC_&Wª5:½}'gW7wOo¿€ °ÈèØøÄä´ŒìÜü¢’òÊšº†--[;¶‘æ¿ÍÍœù“Sç¡ù óqó¯]æÏ’æ/.ó-I>Kè³f)N> ¾Ñ{Šö(õtäM†Ï »±€Q>§¿ÔÕŸJ?)ÿ/¬—µ,ûæá_HðÃ3bîÏB÷Áor”Ýý× û/îoëØÚ²¥¡®º²¬¤(?7+#-91>6:2,$(ÀÏÛÓÝÍÕÅÙÉä¾^§Q+å2‰X(àƒÜ_eÌý•\îs[z[|è[YóB‘D*W¨4Z[`> }h¾¯`HXDTl\BrjFVN~aIYeu]CSK[Ƕî;ûù/Aóß ™5ÿŠùÀ2 ðj¾Ì¸äSŒ2g>‹øFïÚS©G™gè~ÙµŒò9í! ¼FþIûiôß3^—y^úi-wÔùág?¼&î>ü¸ûÿ€îŸŸšœ0ãþÐý—€ûƒý;wtoëhkij¨­®(+)ÌÏÉÊHMNˆ‹Š ô÷õö¹¿ä>pßF«Q)äR Ì}k,÷ ÷¹Üç¶Ô¶¸Ð毶âñ"±T¦Pªµ6z;‡µÐüM›=¼|üƒC#¢b I©é™9y…ÅeÕµõMÍmíÐü]ƒ{€ùû ùo¾eÆüi`þeÄ|Ì|Ìüù3ÿ¡‘Ï@ߦÀÈ??Å~D~æ)~(‡e…ßLðîÿˆ¹’êþ7¨û'÷ßzº¿¸¿gp`×ΞîmímÍMõµU¥Å…y9™é©I †˜¨ðÐà@?/à¾3pßÁN¯Óª• -™T,ÂsÿÙEæþÿû/7|¬æ?:Gè¯ÆB_,‘É•*NoBßÉÙÅ„¾_@PhxdŒ!>)%-3;¯ ¸´¢ª¦¾±¹µ½³»gç®Ýƒ{öó÷cæ¿óÞ‡>FÌÇÌ¿„›å*aþ,f>pé2ß2±¢O‚„zD6>>á=©½Ñz*ôò„ÞWÉ]A÷-ûЈŸRßÓ @òOào²Ÿ*ÿÏŒCÓzߢÇ}€à‡×e¸¸?ÍtÿãC¼÷æþ~àþÞ=ƒ»wõötw¶·67Ö×T•—äeg¦¥$Æ¢#ÃC‚ü¼=ÝÝ\]œAîëu•R.“ˆ…žµ—ûÜ–äÌ„þc¬¡ÿ }k_B_®Pзµ_ƒ…>0ßÛ×?($,":6>19-#;· ¨´¼²¦®qKëÖήžÞ]»ÿºgïß^Ü·ÿeÂüæ2Ï|Òü[¨ùH‚þVäÓÑ7bÄB">>Á=©½QzªóTã˜ÿ˸.lÆï©é ý'ô'ðÇíÇè'å¿ËòÀ>Dö¿Ùà¿?¸/æ>€wÿáþêþG„û/ïß÷âÿدï 6ï;Žã×k.½öüoÓKb;‰Ëvz„ä wÏçïçÑÒÝëûV{kKc½RQU^ZT›™.MIŒ—DG†…ø }øn<';û[aîoX·vµ¥Êý—.¹ÿ;.÷¹-¬ý·õ†þ» ô—’з„¡¿™¿c—µ­½ÏÕï-ôó -‹ˆ’Ä%&Ke™òÜü¢’òJ…²®±˜ßÝÛ?8lÒü¿cóŸBóŸ#ó!D/I~Ê|ä¿.óõ ¯kþw˜¡—D|6ø˜{ª=¥^ã<Ûxâ÷²¿iï¯ú§ý~“u˜@ýÇúcü)ýH~Úü üúÜŸ öMÁ¯/ø÷ÿ£qŸ¿I÷‡û{»;ÛUÍuJEeyIQ~®4ˆÉüW¦2ŽÈ7€>C#з,ò‘ø,ï±ö{J½Æy¶ñ„ò¿Ðýy6#ï°®sÈ üSü5ô3òc÷§}íäÐÎûÓá7ü¯ø‰ûÏûϨû_êsÿÜêþžQྺ»³MÕÜPWS]YVR˜Ÿ#Ï¥&'ÄÅD…‡ŠE¾/O7gG;›Ý;·oÛ²yÓ'0÷­,ÌV­Xs1Ìýw¸Üç¶P¦…¾vèÿÊ`è´lÅJ3sËÕk™Ðßmcçàäâæáå#ˆCÂ#cb’RÓ2²rò -‹Ë*ªkjšTmÝê>hþ¾ÈüSg ùÆÍþ~þ˘?ËÌ}F_Û|R˜|F|â=Öž`O©§Î³ŒÇr?ÆûÝg>òþÍ '€øÏèOì‡ô?ƒôcù5ð³¾zæØÎ%û&à7üèÖ‚ïݨûÈýSÈýû€û}êîŽ6USCmMUEYqa^vVzZJR|ltdXˆ8@$ôá{¸ñœì`îoý çþjKs3&÷ß5™ûûÜ~›uè¿¿xÉ(ôÍ-¬Ö|¼‡þŽ]Ö¶öNòþæÀðOñGöCú©ü°ùøõ¹O¾û¹cßüºÁÿýô“KÝÿÚ¤ûã'Ž9Ýèëéêhmiª¯UT•—äfg¦KSã%ÑaÁAþ~o¾»+ÏÑÞÖz“ûk¬,̹Üç¶À¦ƒ¾ÉÐ_BBß„þº Ÿ€Ðß¶}'}GgwO/¯`phD”$.1Y*Ë”çæ•”W*”õ-­í]=½C#cló/#óo5Å&6ç%jÞ3Ÿ­ }ÄŽ¶ùZä3⣾‡Þcîì õlæY¾ÿï>Þ=fwŒ>C^BÀÜr°ÿˆ‚?±ŸÐOåÇð£à׸~&÷µ¾÷¹úÆÿûì~7÷oߺyýÚÄe¶ûc#C½=]í­ÍõJEeyIQ~®|7ž“ÈýŸÃÜ߸þc”û+AîÀå>·0è› ýUfV(ô7mÞBßÚÖÞ‘çêÎ÷øù‡EDKâ“RÒÒ³²ó -ŠË*ªkêšTmÝêþÁa`þÁÃGOŒŸ<}öüLÍiÈüù%ß$úßj"ó9Âjó¯¾Ââcð±÷ˆ{„=¶^=ƒ¼†÷I´›h7˜]72ú ~¾Í|ÿ‰þh?¡ŸÊ“Ÿ?ë·˜oöMÃÏvÿ³uÿüÙÓ'Ç= ÝìWww¶©šjkª*J‹ ò²³Ò¥)‰ñ’舰à ?·§»«³£=ÌýmÐý \îs[HÓBÿ'‡þn;g7O/¯(P%‰KL–Ê2³s ŠJË«µõM-mÝê¾ÁáÑ=Ðüã_`ó¯\½~srvæOMQkæß|cèk !æ#òÿ‰"‹À‡Þ3ÜSìõzª<#uWG[KS}­¢ª¼´(?Wž)“&'ÆÅD…‡ŠE¾>^n.Nv6 ÷·~öéïQî[ÂÜ_f*÷ßÂîsìs{S3úý†þ.úN¹ø  @ø‡úcüAøú¡ü°ù ü÷_¼À§ø ±o2øõºOnñt÷÷oM޸ܿpîÌ©ñÇŽ÷ÇF†ú{{:ÛUÍ u5ÕeÅyÙYéi)‰ñ’èˆÐà@_—§›‹3ÈýÝsÿ·º¹ÿ6É}Ž}nof¿ÐB_'ôú‹ -ý54ôw€Ðwpâ¹yxùøŠÅ¡áQ1q‰ÉRYfvnAQiEUMmC“ª­³[Ý?82¶wÿAùÀü[wîó!óŸ4ÿâ…š¯›ùÚæÏ™7 9úм0¡O;áÌäÃÆ‡âCð‘÷{¨=žRœ'ÌSá!àgÐN£Â;izäIô|_|Ð@þSýþÀ~Bÿƒ‡@~œü~m÷á_0øË€clý¹ÿŒ?rÿ{ãî?Aî?îßEîOhÜ?¸ïØð`¿º»£MÕÔP«¨*/-*È•gÊ¤É q1Qá!â‘ЇïáÊs¹¿Ëtî/ZDØ×É}Ž}nó8Ðÿ% }ˆ>0ÿ70ô)ú ôßÓúÛAèÛ;:»ºó½…~A!a‘ѱ I©² yN~QIy¥BYßÔÒÖÑ¥îæ>z™ñ20ÿæÿÙ¯Ï種3Žã“À˜äLf’1(ÆŽÛ_ã8™Ä˜:˜bªPï½÷Þ{ïZI«²êZíª!!Ô*¨"dìlãÆ yžsÎ-Û„IŠû{©½WoÎÌç|/š?…æÏé6ÿÛgš¯§Ìq³úËWâ ‘âCácßï9íIÕ£õTzê<3žã½ ×J¦¤SkQ›ð {_Ã@/zýgüSüÁ~¤ª|båGøUÝGöñxt³¯ÇƒP…_—ûìp´»?‡îO¡ûÃà~ßåKè¾BÞÔP'«ª(“äeg¦¥$ÆÇD…‡ùûz¹»:ÙÛZY˜=}òøÑÃöíÙµrÿÏ|î¿§5÷ƒ¹¿Ý_aÈ}Önè/gès¡¿JúÆkMÖi„þúÛ¶ïÜCBÿ䩳çÍ-mì]Ü=}üCÂ"câ“Ó2²s Š$eÒ*Ym=˜ßÚÞÙu Ì™¿ð¼æë=ól8aÔÐHÑ×b>#ŸŠ}Þî{©öh='=už!Ïx'˜ËqÍdMlºÇ=BžÇ7Ù}@/v ÿ‚þÌ~B?'¿¿ªû÷Reÿ‰ -ûú9 mÁÿî/÷á|¦&ÆÇF‡‡Ñý®ÎöV…¼±¾VV)-+)ÊÏÍÎHKNˆ‹Ž ôóñtsq´³±4?æÔ‰cGíß»{çvÈýŹÿ—ûÆ4÷Kr•8÷—S÷ ì¦Ç© Ï‡>‡> }}ú¦úo -¡¿Bÿ£wìf¡æÜ k;g7o¿€àÐˆèØ„¤ÔŒ¬ÜüÂ’Rieum}cs 5¿·ÌŸ˜š¾> ¢`Iê4ÿ;4ÿ‡—Âüç@Ÿ3_…| -z/Ò­gÒSçò xT¼WOVGW+¬F4á¯ì9|_fw¹È €þ#ÿLÀì‡îïä'ð«»ÿ²°ÿóÜÿÝÿN§ûxJóèþ4º?î÷÷÷•-Íõ5Õ•å¥%…ù9Yé©I ±Q¡Á¾Þ®Î¶ÖfçNzü“Ã÷ý}׎!÷ÿÄåþ»$÷7m4%¹ÿ—û¯ÒÜçØç¾}Ãô0Ð_ÆBÿqè#ú*¡ÿ„þ{4ô߇ÐÿÛ¶í»öì=pè(†¾™¹•­½“«»—¯PhxTL|RJzfN^a±¤¼¢º¦®¡¹EÙÖq±»Ì¿rudìš6ó¿ÔeþÚÌ×/ùOÕÔ'®ˆÐ§žˆ5¡æ‹ÉGñ øà=pÏiØ#õôLy&<çº W«âV©kÜäq|]ä W»ÿDÀí'ôSù)ü4øo°“ºÇÝÎôœÄìÓÓÑ£úOµÃ¯âþºÜÿRtRðAFjâÚØÈÕ+à~O÷ÅŽ6eKSC]MUE¹¤¸ /'3-%1>&*<$ÈßÇËÝÅÉÞÆÊüüÙS'=t`ïžÛ·‰sÿµÜ'ì‹sÿ–ûË ¹o˜¾¦¾JèÿZ#ôM ô7‘ÐW=ô÷<òÉ }Kk;Gg7O¿À°Èè¸Ää´ŒìÜ‚"IYE•¬®¡I® æ÷ €ù£`ÉôÌì Vbó,bþ“%5ÿYè«„>˜?ÏÌgäSñ±ð»‰÷À=ѱç©'ÐSåñî0)®œ®LX©Ê„¿Óñ|™ÞôÀ€úüý´¿“Èå§ðcð3÷oû˜ûÿr©Ù×íþ“EÜ rŸ|•÷g¦''®‚û}ÄýV…¼©¡VV%-“äfg¤%'ÄEG†úy{º9;ØY[\8wæÓ$÷wkæþ’û&k׬rßȈ±¿‚±¿ÜÀ¾aú™ -ú*¡¿Í_ɇþï~¡¿FýwÔCßÃGŸ<}ÖÌÂÊÖÁÉÕÃË7 (4"*6!)5=+7¿°¤TZ)«­o”+ZÛ;».]ó‡†G¯ON!#ó·nƒù”‘/3ÿ§—À|‘ú"ô¿WG_-Ñ|¬|F>¿ƒxÜSí{´¥§ÎóÈ3ÞQs ®WÌV´ØØ3ä|“ÞôÀ+/žÐðÇðúyù)üüÔýYîÀà’Vgÿ{ƾþÕ–û?-æþàþ?ð’^ —ôõ<¯Ñá!pÿò¥®ÎöVEsc}mu¥´´¤0?'+=5)>6*"4(À×ËÝÕÉÞÖÊÜL-÷?PÍýÖ¯3Yc¼šcs%ºOÙç¾}Ã^à4BŸCŸ }‚> ýÕ\èoÑý,ôO9ÁÒÆÎÑÅÝÓÇ?0$<2&>1%=3'¯°¸´¼¢º¦®±¹EIÍïóÇÔÍÿ'׎ È7?Çü¥ _#õ9ô‹Ñ‡vüœ„þÜÍYfÈ"‚äóâøè=pÚsØSê9ç©òTx4¼V€Ë'Ëã–«cÜïäi|Þ§W¹ð@ÿÿ ?àOìúyùþþÁ!ø6C÷¯ÏÞœ›¿}Î ŽLÌþã¥e_+ü‹»ÿ ï>æ>û8›cîûƒýp`]mʖ憺šêŠrIqA^vfZJb\LdXH Ÿ§›‹£å…ó˜ûGîÇÜÿHœûo ¹o,ÎýUj¹¿Ìû†½èi OÌçÐ'¡Ï£¡¿vÝú 7¿. -ý?ª…þ93 k[gWo¿€à°ˆè¸„ä´ŒìÜ‚"IYE•¬®¡I®lë¸ØÝÓÛ€Œ]c~Ü"~æß¦ùK˜ù-âÔçÑHÑGA>»·pç6†þÌ41ÿ*šOÉçÅo¢Þ÷"ì‘z„ž:O”gÀ#ã9°l\Y&· ­ã~%Ïâ[ð6½ È%€7úÏóúcú× ý¼üþÞ>ê¾ð}vgŽ N²ÿP`ŸœÕ’¨¿Hð/æþ}M÷ñûl>Ï®^÷{º/v´)äM µ²*i™¤¨ 7;#59!6:"48À×ÛÃÕÉÁÖÊÂììé“ÇIîïÒÌý×Iî¯]c,°OsÿWª¹o`ß°8ôE¡èó¡è“Ð7^k²Ît ý·¹Ð_úÇ0ôÍ-mì!ô½|üƒBãbã“RÓ³rò KJ¥•²ÚúF¹¢•†þÀÄcb’kÆ…ÿÙ|=ª¢=õJÈ× ýÏý[ó<}½=— ò|N|ŸxÚöÔz”žÄ‡þJ@ÿU}ý5$ô7oyój¡¿CúV6öNú¾úQ± I©Y¹E’2i•¬®¡I®lë6z¡‡GÇÆ'Q›óÈÆ½Ï˜ùÿFóÁއ/µùÚSÿ1¦>¢ä`è×g¦X-öóÛÛ” -yscŸ_‚qÚöh=RO¤Gç©ò”x&{,.MÅí?ì×ipUõÇñQÔÑúBInö•}GÙBØZp@…[¬¶X´RA‘]a $!d_ÈB6²ö]Šv:6CÉÍrIز€Ø^ ý=Ïÿÿ?çÞ$‚ˆWç>/ï=çÕ3óy¾g}«Qÿðsü -^×€¯]:ÒðÏøÇýR~$N.ŠŸƒ_¸ÿï¯pµ‹ŠÏƒý -É>¶×(ا½=îØ×·ôCÝÿF¹_Ïî#÷éhWi¸Úô¥F <~ôð}ùyÙ»3RSb£#ÂB·mÙðÙªåŸ~,rÿmóÜãï7\Ïý.*÷‘ûŠ}侯¾tÿI[îÛæ§ ôÍBŸÐ§ÐoO¡ß±‡~gGƒBßÃËÇ·uè¿júKúk֮߸ekHXxTL|brjzfvîž}!ôa>È((d‘Š&˜Ð¯­£Ðoüæ÷8Íoúwdê ô¯[ þ\¥"È Ttè°ÿàúSûÃ~I?ä'ø³sòð­F;T‡¹Î’}þLcöyq"öŸú–î÷î×ÕQîÃ}>ÖŒ¥ÎãpÒáæÜ?rèÀÞ=¹Ù™é»’wÆÇD…oÙºyãúµ«Wê¹ÿåþ äþ$Êý"÷ûôBîûzËÜû”û:Rî·çÜ'öŸ±±o›ŸmZ†¾BŸCèÛ۫Сopvqs÷ôö¡ÐïÝ—C¸Ÿÿú³´Ð_„Ð_Ðß°)(8tGdtÜΤ]i™Y9ãàác'>×2ñÜù’R#À0]dó9ôFÓ/ÁüïI}‚C¢_{õŠŽþךèD˜ÌÏÚM䓸|xî {e=QOÐ æÙxé;Y¾³Šf%Ï -5Ë[ú‡Ÿ£7èUq ø -Ð  Àþƒè,íˆdùÑü€?#3 §{¯¸ÝbìÓÝìÓú¬#öïý÷›„ûµÂý‹&Úbi‰¼Ýb¼Fl1#-%)!.:bGè¶ MëdîÐ:÷GRîìß·wOä¾—§»›‹³ÁÑÙÿ å¾½=³/s_°oéþãöÂ6¿‚i‰þSæèÛý}„¾ƒ£“³«›‡—7B¿G¯>ýPè5zì„IýZè¿Ð_ŠÐ@èo ‹ˆŠOLIÍØ—¿ïÀᣪÏ‹â’RhQi¢JÔÌoli~óÍ ŽÜ³T_¦þm•ú ƒÑ¯±Dÿô©“ºù™éi»R’âY|€/¼'í5ë…ôŠy6^úN–/Ã|J³”ç5·õ?GoЫâð  üÿŒ _ÊOð'§¤RðçòùÖV©³_Ãìc‰*öo[EìëÛºûÍšû·„ûºû5ÕM•Ʋ %Å´Iþf£U:°/?7{wzjrb|lTxXÈÖ-Èý5Èý%Èý÷DîÏ–¹?–sÿ¥ôëÓ«‡È}7Wg'Gä¾b¹oggcß6?ã<ÑúOKô)ôÛë¡ÿBgGƒ“‹«»§B¿{ÏÞ}û„Ðé?fÜÄÉS§Y„þb„þj„þæ àí;"c(ôÓ3³ … Ä/E —\(3VT" a>g"ĸ%Í¿mµæ·‘úÍÍ -ý¦Æ†úÚkÐBG_HqâØ’‚ÍOMIfòÑø,>ïI{Íz!½bž—¾“åK0‹i>âù‡šE­FýÃÏÑôª¸|èˆ@üCÂöKú!?ß°3 îg°ûj›tÁuö/_¹V[ß@[ìcÖûúÂîëþmÝý›üÁÖ ÜGîã£Ý?_\tVûlÃ6qÁ±Ì´]I;ãb"wlÚ´¹¿¹¿HæþÊýiS'Oǹ?xç~÷®È}wW'ƒcgÎýN)÷Ûsî ö¥ûìÛÜ·Í£Œúíú2ô¾½Ž>BßàìâæîéíÛ¥‡þ‹/ 6ÂO ýÙ2ôRè/GèŠÐŽMàÐÏÉuøù?¿€ùÿ9s¶N”Ë+«L0ÿ2b=…~Ó-ÍWè[—ù÷K}⢾VÔ úg}b‚B_šŸ´3>.&‘OâKðá=¸'ì…õBzÅ</}'Ë?Äüæž÷Õ,l5ê~ŽÞ WÅ5à+@'@âú3þ‚~’?$ðGEÇÆ³û™Y9yùj¡:ûøj«¹|õZ]=-ÒÚbÿÞ}Ýgö5÷¿e÷o°ûõ´Ê+侩ª²ÜXZrþ\ÑYì“Ü_nùyÙ»3RSb£"ÂB¶!÷ûKUîÏ“¹?eÒø±£ýF "s¿[_oOw7grÿy•ûööÌ~ëÜ·±o›GŸ–¡o¾Ðï ÑGè;œœ]Ý=¼||»ÊÐüòð‘£dèÏœõÆ„þ;úQ诡¿3¡Ÿ›¿ïÀ¡£ÇOž:ÍiX$JJ)Á™/B¿‘͇ßZ¿ùfê·‘ú×êjˆÕ -}*}´!Œ@èç²0?6: -•ŠÆ‡ø >¼'î {a½^1ÏÆKßÉò¿Ñ¼‡Y æ¯jþÒbÔïâ1zƒÞ×€¯qˆ迌Òöƒ~’óÀ¿=,å>ܯÆǧ[iI16Z >ÞN§·=¹Ù™é»’UîoFÜÿr>çþÌßM{…rÔÈá/k¹ïëíåáæêìdp@îKö‘ûvvm±ÿ¤}Û<â´DŸÍèSè·×Cÿ…Î2ô½|ôÐ:ÂÏìøIS^Ρ?O ýe2ôC9ô“RÒ2²röìÝèȱ"ô -¿.*.¹Pf¬¨¬ºX]cf~“2ŸÑ·nó% wÍÕ×S¿¡¾öÚ(QUaÔÑ' öï݃ÐO0?2”Ë+«LÕ}e~#Ì¿ùË1_Oý»ý;ZꃉºkW/×úCsôóó8ôâÈüÐà­A›A>ŸÄ—Þ/&í½ ž gçòBxûŸhþHó–˜yÚüAí'ñ?Nï‰sÀg€O]øOú#þa?…?Ë¿j5ÿiKжv?!‘7›—¿ÿ ³½âû­¤”دÁJûZìß‘ìßµ†Ø¿÷î߼ɹ/Ü¿|©¦ÚTUQŽ­â–Ÿ=£r_~ÂqîÇÇD†ËÜ_e‘û¯Ïšù[äþ„q£G†ÜЯO¯Ýûžn.ÎG‡Î:ûöfì?Ýû6÷móðc~;}˜ÿìsv@¿ƒD¡ï`prvu÷ðòú={÷í?pСÃýüÇŒŸ8eêô¯Í~s.…þ‚V¡gú§N úçŠKJËÊ+ªLa>B¿®žCŸÍ¿¥™ß¬™o†¾õ˜ßVê7·L}SeyYIqQaDÿà~†¨2˦ ëÖ®YÆ'ñ üEàÚ3öD½„^0/Œ—º“è¿§™K3GΛß;â~˜ÞAœ:tØèú_û™~’ŸáX¸qsÐ6êý˜8ÊýLt°ŒÙ/(Ä\Yy¥©eì7[YìßkÃ}}á~³æþ-ºâ7Dî×Qî_ª¹hª¬(/Ã5Ç7rî#÷åWr?‰s?¹¿^Ïýw‘ûsß ÜŸ:eâø1þ~Ç4°?r¿{W_/wWg'ƒr_²Ü·³{îY=÷ÛI÷mìÛæÇNËÐÿ?ûuõyp|bÚT01m]ñ¹ïû¾oEQðÂ[£ÕV«ihM“ØèhªVcŒŠ¢ˆ¨\"ײ˲À.‡Ñ ¶U§qÚçyÞßï· 5igÄ™}þÜý½½3ŸçûEŸ}C#‘BßRbck7‰BßÞÁÉÕÝÓÇ/08,":.B>…þÊ¡ÿáGù¤Ð/»^^Y]S[ß •ÉÊÖv•º³‹Ìg¡ßÓ eH¡æ?ÑnþóQdþõ‡¤þ}>õ• -¹´¡¶¦ª‚Gÿä tB¿ðdþÎPùù >þòeö¨=YOÒsÎ3ä9à‘ñ˜dœ$6‰ü$ þö!žÁô -Ø`üþAÄ)£äçàßþ.º¿ï½÷ ÿ„¹;ßqXûU5µ R¸Z>öïû/ûî¸ÿ\»ûOÈ}Ì}¸Òæþ=t¿»«S­‚ÜWÈeÒ†:p¿Wúåâ çð!wì3-¹Ÿ‡¹??=-9!.:",8ÐÏÇÓÝÕÉÁžå¾­µÄÒÜÌD,ö!÷ ÆcîÃþûºùA3}2Ÿ¡¯§§?®úFÆ"@ßJbƒ¡?CßÑÙÍÃË×?($<*&>1B?k …þz!ô ¹Ð?qòô™³EAúu MrEKk›JÝÑ¡/˜ßÛυþ3ýÑjþPõ¦þ]JýÖ–æ¦ÆºšêŠëeúÇ?;rèàÇþñƒý¿ßËÌߺÈ/Xâø9Ä}aϨç gÊsÄs²ÇãÄÑIJ‰i¸oè{<ɶ-ܸˆПð_ŒôƒüÐüÿ&æþîßíÛϯudj–zEuM]cSsK+Åþ]­±?ŠÔÉ}bÿ™ûœûx÷!÷»:Ô”ûò¦Æ†º[7!÷¯]…Ü/&÷ VaîgeBî'ÆÇD†‡ùûzy¸9cîûû6+ 3S±ÈØÙŸ`@ìÓ×ÓãØçÜ×±¯›:ZÑçB_CŸCBßXlbjniemkèO>BßÅÝÓÛ/ 84":6!95B?;7Bÿ-¡þBqI)úM²æe[»ª£³›B̧Ðïë{ÕÌÿ·àÅw¼úOP}Jý\ê·)2iý­›•7Ê®\¾ÈÐçKpßžß’ù›6¬_ äçç¡øK˜÷™¨=bŸÆIOÎ3å9àñh˜(œH6ü„kþ?ö)žÂã´ -hЀ@ü#þÌ~”šà_]°nýFtçoöì…Ü?ðÑ'Ÿrì_„·ÜÊ›·ê¥2…²‹ýû¨þ^ýï„{|Ù·GóÂî?†ºìã+îÎW·»:;Tí­JE³LÚXÏr¿¬t¸Üß¼s?7{ä~jRBltDhp€Ÿ·§›‹“Ãì™Ó§¾ ìÛZ[Yš›šˆ öߨCǾnþ§y­?ú¯B__ŸB¼†¾¡‘Hlbfa)±±µ›4yÊ´³ìœ]=¼|üCÂ"câSÒ221ôóWPèïÄÐÿ€Bÿ(…þ¹"A}© C¿]¥îìêFó¹Ðï?~µÌ >¡ÿŒKý>Jý¯1õÛ[[äM µ5Uå×J5èòç…»wý;ú‚ÕPùËr¡ñA|?#˰gÔ“ôä÷{x÷!÷»;;ÔímÊ–fY“&÷KŠ/œ”û»Yî¯]M¹¿`ÞÜÔ¤øØ¨ðÐ _/7gÇ9ûS&CîÛH¬,ÌLÅ"cdŸË}ûºù?LóÇðæ èÓ ohd,215·´²¶µcèÛ;8¹¸{úø‡EDÇ%$Cè/\œ³ŒB H0Lè—WV×ÔÖSè+!ô;:»ncèƒùú}}d¾úœùÿÝækQŸKýÞG…ÔWÈ¥ µ7+o”]¹táÜ™S€ ý}{@‚m[6­_Kæç@å/Èœ—â#øÄ=hÖsÒ3ç9äyÞÑs_6ÞÂx áö!â¶ÛÜÿAÀÒ?éOJ†æøf-ÎF÷W¬Û¸…6<Çþ‘¿ûç.\ºRv£òfmƒT®bÿá#|ÅáÍŽ^õ‡qHî“û}}”ûø–» îwuv¨Ú[• -¹Œr¿z¤Üß²‘r?gñÂùiÉ qÑaÁ~Þžî.Nö3§O}Ø·µ¶²075jا¯§§aÿGûctìëæ…G+úoúc ý7Jècè‰Ä&fæ–@Òä)Óf̲wtvõðòñ - Œ‰OL™ ¡¿déò«)ôwìÚ¡`pèßÀЯkhl’7·´¶©Ôúw„ÐïE÷3ÄÐÙ> ž "«©,p©¯f©_SU~­ôòÅó_~þ·cGЇü[·f3!‘âøä=pOØõ½FyžwâÜǃ»fÜæö)žâ¶[´Ðàð‡ö'ûQ~„?=cþr?Ÿv[·Ã}ûÛ>sþâåÒkåU5,öÕ\ì?êÁ•ޱK—: -Õïï¾¶Ü׸ÿ—z/ŸûwïÜîîê—ûà~•–Ü/ÄÜß…;ÈýË—.É‚ÜOIŒ‰  ô÷ñòpuv°Ÿ5cڔɓìl­%–æf&b`ÿ?gìcî ìÿXǾn¾ÿ ƒþO}}} -ýño!úÆ"±©™…¥Äf" ýÙs]Ü<¼}‚B#¢b’RÓçcèç­\퇡ÏÚïã¿>Ò/ô¯³Ðo”ÊšʶvuGg7„>o>„þ·ú/dþh”bˆúƒ|C©¯jm‘Kë1õ¯–=}òøÑà¡¿cûÖM€ÀʼeÌüô´Ôä$hü½õ$=ƒž!/øNœ»Ò¸°qÆiàhþ`Ò!~Р @ õüÉþðˆ(h~‚.s?Ö<¼íxöaË>zìäé/‹ŠK®bì×Kå-­*Šýo<„~Ôמû÷Ÿrîcîƒû=œûýs¿r¿¾¶¦ºsÿ2ËýãBîÃSî¯[³2/7r?=5)!6*<4(À×ÛÃÍÅqÎì™Óý_N´‘XZ˜™ŠEÆÀþÏÞ2O¹¯¯¯7V“û:öuó}æµþè¿>}=}ƒ ˆ¾‘±ÈÄÔÜÂÊšGßÞÁÉÅÝÓÇ/08,2:.19-#3‹BŸ`ï{ïŸbèŸú ->ô¿Âпÿ€B¿¯ÌÐuÌ >Ú€AøÏ` >zxŸ¥~»&õ/ý‡ýúŒªêÊ8¾F×$Q“QG¥÷ªˆÒ«Ò{ï EPƒÑHP°AP¤)ˆ€4é  ¨€ £FŒ‰FŠÒ{S‘jV–Æ™5³Ï9÷Ý÷(OÌ'a­·¿¾{?w~ûoT])+)ÊÏÎLOI¢Ð?´?Êïb¾;T>D>ÀGÞìõDzÂ<ƒxZvu2jdTgò~…± ÈÀ€øô'öý–ÐüöNΛˆûðu·; :tXô)é™ÙùE%eWªnT3b¿©¥ÄþÐðú–Cê¿}÷fŸ>ÓO}~SfV÷©Ü÷ÇÇYr¿¿·§»³£­µ¹éyC]-ÊýÖÜ/$¹Ÿ”€szÊ}_o·MNö6Væ¦FºÚ4ÔTå×ËÊûâ¢ÂBü¼<܈ýåËff!+û÷9Ã~>ŒþýU\Ü<|ü‚B"¢â’ÒkÖ®“SPRQ×ܨ£ghlfamçàìêî¹eë×ß|KB?,<2‡~Æl¡ß¡?Èý1Âó)ôç…ùÿeQ§þÄøè¤þ`?¤~[óó†Z*õ¯U”—äde¤&%Ðè@èoߊÍwqrDäcñ|Ä=ÒY¥'ÎSÊ3}WÁ£ŒG‰Å™‡þ<Þd첨€ô'öý&¦~;{Gìþ_øÀ#çìÇœLHJÍÈÊ)(.-¯¸FÅ~mCcsÄ>¨ÿêõÈ(Zì8öiõçbìÿû4ûL÷ß ÕN»¹ßÛÝÕÙÞÆ’û¹_Žr?7;3#ç~dxXhðœû_oÝâéîêì`kmafl §³QSMEIAr_ZR\TDHŸ‡›‹Éþ’Å‹qØçÌßVó0Ìg¢ÿåW}}.n^>Aa1 )„¾¼¢²ªú-}CsK;G·Í^>pùéæ‹ŠK@¡Ÿ•“_8=ôëqè·£ÐïC¡ȮПÀ¡?Åü™ÑÿÔ"Ì0“ÕÇPltxèÕ‹¾žÎöÖ&ÖÔ¿t±0ïüÙ´äÓqpû}tùwúmóõöDæ;ØÙZ[Y˜ñõõ÷H{d=-=¥<-<¦\6ŸBÿ_K—.û7BŸ‡—_@HXT\BjµŒìzyE5 ÚºF¦æV¶öNpõ½}·ïØå¿'è@p(ýøÓÉ©ú¹Å/•_­œúÍŒÐ`†þø86ŸFž™ÏNýñ±‘á¡—ƒý½Ým-$õïâÔ/)ÎÏÎL?“WŸŸ—‡Û&gd¾¥¹Å×FÞ#î‰õDzÂ"šä~Ðÿ];¶ûz{¸or²·µ2752ÐÕÞ ¡¦¬(¿^Vfµ”„˜(fŸØ_±|ÙRœûˆý/€ýÏ8ìsæcçCè/&è/[ŽÐçÆè‹ˆŠKJ¯‘‘•SPRQÓܨ£ghlfamçàÌrï†>CÿLÚÙ¬œ¼Â %8ôoMý.ú/™¡ÿæ ‹ùú3š?7} ÕG, o‘ú€ÁèÈk¬~WGkóóú§ÕÜ¿s›¤~nVFjÒ©Ña¡Ð{ý-ž›]]í‘ù¦&F†ˆ|- >x¯Š°ÇÖèÌÓÂËeȬ¡g5û¡Ÿ!ï0Vµð@ü#üQù«#ù1üüØ}GgWwO´óáø÷ - ‹ˆ>q*)5#+Å~ÕÛwî×ql”rr¿MîWU\.+¹P˜—u6íLâ)œû‡CîÛK¿»+¬|k Sc=íšj*J -ˆ}iIqQa!~^n`Ÿä>°¿±ÿ9‡}Î|ì°G…>}.n>~A!1 @í:9eUuM-}C3K{G7/Ÿm~;wî‡Ø;v<ú -ýôsçs Š˜¡ -ý6¡?A…þ$óßÏ#óYÕÕþ ê¿z1Ð×ÓÕÞÚô¬î÷ß~yp÷Ç[×+ÊK!õÏ¥%ŸŽ‹9~ìpðÀê֣з±BæèòA|Uä=Ò[O¤g0OOI.GŠ9’ì‡~†¼Dojà€ôü¡üqõcøutÁ}SsKk[êS¶~àþàÃGÇÄ%$§ƒØ/-¯¸~ëÇ»~ØÖÔÚÞÕÓ7ðâÕë‘QôQ‡Nyî«ÏÆ}–ÜG ìÿ1kîÿ ¹_s¿ôbQ~îùsé)8÷;Ÿz»wúmóñÚìæâhgcifb¨¯£¥©®ª¤ ·ní`_LDHŸ‡›kû‹8ìsæcç¬è/œ†þ—ú+Wqqóò  -‹ŠIH­–‘]/¯¨¬ª±A[×ÀÈÔÜÊÖžºò;vùï :sòT"„~fv^aqIÙ努©¡ßB‡>mþÔÐg1úŸÚö3Mý?¡'ÆF‡‡úÝm- µO~}xÿ§Û7«®–áÔOIŒ -?r0îRÿýÜWŸÕýɹÿþ#r¿}Jî߯¹©¤¸ /;3åþɘÈð°ÐàA{üwíØîëíÿ{[+s#}]­ ªÊŠòˆ}) 1aA>^n®U4ûK¦²¿Ã>gØÍ èÿ“ý¯0ú+}^~!aQq‚¾‚’ŠšÆFm=¸ðÖvή›=·À…ÿö»½û†>—”¡Ÿ“_t¡´üJåµ›ÕÌЯǡßB¿…>2„ý?'‡þ<3Ÿúãc#ÃC/û{»;ÚšŸ×?}ü¨æÞê•—©ÔO8zhß^=Œ>\x ScC}d>T>âø˜{Œ=¡žá<“xJrQjD&ðÔ™ô+yƒ¹ ¨@üGúƒýˆ~9 ¿ªš:r_¯~Ä>ü üvúïÙwèû°ˆè“ŒØ¿\y£úνšGOj›Û:º{û_ÍCõÙ»ÿ«û(÷'p”ûÍûµ(÷k ÷¨¾y­òJYé…¢üœ,Èý¤„¸Ø¨ˆ£‡CîÛûõ½çêŒV¿©±žöF 5Eùõ²2«¥$ÄE1û<\«V®XŽØG¹ÿ!ö9îs†9¬æ/`†þgŸA¡CÐçÆè‹ˆŠKJ¯Y»NNAIU]®»¡‰™¥#Dž—Ï6¿»÷úþȱȘñ§“S32³s ŠK.]¾ZuýÖí;wï?À¡_¡ß<=ôÇÇÿÏ~}EE•¤?»söŒãîuT@2ˆ  £HA‚YA$IÎ9gA ’sÎ9§¦ÉH2(QtFÇÖÃìºUuûvßD}›Þíï•ËSWý¾!óß"óéC±ùj>á& õßÓÔ -Õ_˜Ÿšœ¸96<Ø×Ejm¬«*+ÊËJK©èçåîlomab¨Ñ?©¬t„¾<4_R‘ÄàCîöõTç Äã¢sÓ†ëKCý’° ð€ùõöúE(ð‹K@÷åö:¢tâ$|ñéšXXÛ;»yùÂØOJËÊ+*«ªkl%uõ Ž\»9195;©ÿüå+ŠúïqõÿÍ?î÷?âKË}ä>-÷çñÜ¿r ¯§‹ÔÞÚÔP[]QZ\ r?éJlTxhp ¿§›3xñ™ƒs £­©®ªrâØáƒŠò²{÷Hˆ‰îì mìssr`ìÿ¸v Ê}Èþ*Ä>Åý¿2sŸ9ËÌgÐÿ¢¿š€> +;7/¿†þnqÉ=2ûÐ]WFw]×ÀÈÔÂÚÎÑÅÝË ý¸„ä´ÌœüÂ’òJúäîÞ~úױП¡ ý0ôß¼æÓBÿ##†þ§åÕ Õüè— ó3w'ÇoŒ ô’;Zj*J -r2Rb#Aêûx¸8ØZšéëhi€ÒW:r„>¸ìÐ|Œ|a>äaO‘žÆ<ïœøpÐ ûâ¡û+þ?´=@ÙHˆ? Êà‡îKJIËì“ßö?8 -:úF¦–6.0ö#cR2r -J*jZ:ȽÃc7Æ'§fæõŸõ_3œúߘûÐ}ºÜŸD¹?24r¿³£­¹±æ~a^NfZrB\tDXHP€¯—»‹£µ…©‘®6¶ÿÁQ뤸èÎ"Ûûü¼Ü\ìl¬ýuk1öWCö ¹ÏdŸ9KçóèÃЧ¢¿‘…u;'¿€àVáí?íÚ-nºœÂCG+ŸRÓÐ:§wÞØÌÒÆÞÉÕÃÛ?08…~JzVnAQiE -}ý«Ãc×h¡ÿˡψæ/«>(¿õçfîÞ¾u}t¨¿§³½¹¾º¼8?;=)>:üH}7';+sc]- 5 -ú ô¥$Ä¡ùˆ|(>rYOužŽx\ôM´aûÒP¿$.|`üCüýH~?t_Ld_ ]c3+;'û—£ã“Ò³ó‹Ë«ë›Û;{ú‡F¯ßº}wfnáÁ/?}þ‚!Õÿ‚ûïûo‘û´ÜDÉýiJî_¹O&µ·4Õ×VU”åçf¥§$ÆÇD†‡^¼àçíáêdocif|^ïÜYxŽƒgŸ‚œŒ´$8 ?öøyyû›XY62ÙgÎ×ÏÊèÿƒ‚þ†,l}n¾ÍôÅ$¤öÊÊ+<|섊ªº¦–޾¡‰¹•­ƒ³›§O@PHXD4 ýŒì¼Ââ²ÊêºÆæ¶ŽNúƒC#c0ô'¿)ôÎüOÿ¡Wÿ®þ3¨þý{sÓw€ú#WûºImMuUeEy™©‰qQaÁ`êÛX˜êÓTWUV:Š£/&Š™/‚Oážb=yzßY ÃòCûš¸ð €ø‡öúü[ûÛwìÜ~{qöÕ5µõ M,Pì_‹ŠKLÍÌ+*«ªkj#u÷_êß™ž»wªÿ ¨ÿªÿŽ^}Fùiîãì$æþÛ½yƒçþ“%¹?†r¿«³£µ¹¡®º²¬¸0/;#5é -Êý@O7g[+sCøðSWU9~ìðE9YpûÛ…·öùx¸8ûpöÿ¾ú‡˜ì3g…!¢ÿÝRôÿ‰Ð_ÐçàäæåÛ¼Eh›ÈŽ¢bÔK~âäé3šÚºF¦ÖvŽ.î^~.^ºŸ˜’ž™“_TR^USßÔÒF"£Ð…¡ ý…eBŸ`>ã†þRõÿÜÿ×/_<{òëßïß›¾3qóÚÈ`_©µ±¶²´0'#%!&"4ÈßÛ¤¾™‘ÎÙ3§UŽcèïAq·CDd>$Š½Ç´Ç¥§SžªøFÂløŠ!|N\ø@ú#úü~è¾Èv˜û؉O?Õ3gu Œ`ì»{û…FÄ$¤dä–VÖ6¶’ºúG®Ýœ¸3={ïþÏ}òìÅKð»3¤ú+çþûræþmjîw“Im-õ5Uå%Eù9™iÉ0÷/_ - -ðõrwq´³¶052ÐÕÖT?}òı#÷ËïÛ»VdËf>nNŽMl€ýõë û0÷±ÿ“}æf)úC询 B ÏÊÆÎÁÅÍËOA–Ì>pÅAÙ©9{Nï¼±™¥½“«‡·`phxT앤ԌìÜ‚âÒŠêÚ†æÖöή<ô'VýwýŒúŸ–Qÿ7¢úó³S“7Ɔ{É- 5%ÙéÉñÑá!~ž®Ž¶0õµ5ÔÀ?|€ŠþvÔùùP|è={šóK€_O˜¿bh_Óí| ü)òsƒâ‡î m¦†€Âðø;©¦bßÖÑÕÓ70$<:>9=» ¤¢¦¡¥ƒÜ;8Œ}ÆSy÷?âî/“ûérÏýž®ÎöÖ¦†ÚêŠÒâ‚ܬtû±Qá¡Áü¼=\ìm,ÍŒÏëpJYé¢;wˆlÚ²™Ÿ—› °Ï -Øÿqí”ûLö™óÙùË"ô)¡Ð_M@Ÿ¡ÏÃË/ ¸UtÝnq)i9pÁaשihé蚘[Ù:8»yú…„EDÇ%$§eæä–”UÖÔ56·u»{)¡?BzvîÛBŸÁ̧Wÿ®þ«—Ï‘ú ó3S“ã7ƆzÈíÍõÕåÅùYi‰qQaÁ>ÎöÖæÆ0õUU”ŽT”“‘F„2‘ÀǸǭ§WžÆø:ºY»â¿¤_Tÿ)öCù1øû0÷1öeäÁóOž±¹µ½³‡O@pXT\bZV~qyu}s;¹w`hìÆøäÔÌüRÿùËW¸úNý%î/“û¿-Êý‡„ÜÇr¿¿·›ÜÑÖÜXWSYVR˜— r?!.:",$ÐßÇÓÍÙÁÖÊÜÄP_GKCí|ÿP@§b÷.Ⱦ bŸcÝZ*û«û÷‰ì3Ýÿ¢ùô¿_„þFÖMìœ\<|8úbR{eåªSU×ÔÖ502µ°¶stq÷ò ¸xérdL|bJzVN~QiyUm}SK;©«§o…þ-úS(ô|)ôÿ`ØÐÿ´²ú€úw'ǯõ÷t¶5ÕU•åe¦&ÄF„^ô÷vs²³4©¯ Rÿè¡ýò²ÒRâ»aÕm„YÌGäCð1î©Ô/Bž¨ùšoÅ‹€ê?f? Ÿ?xÂs^€¢â’Ò²òàb_ľ©¥“›·ÿÅЈ؄Ô̼¢²ªº¦¶Îž¡Q þÝÿõ—Íý?h¹ÿn…ÜŸ¹ äþðÕ¾2©½¥©¾¶ª¼´(?'+=%1>&òrHP€¯—»‹£µ…©‘®¶¦ºêÙ¯¯¨(Ï4€ã9‰ŠîF{¯ëºAD¤—¡÷Þ†ÞAzïC:Cï½w†*]zŠ€ )b‰›Mv½HN’³Ç}ßwf`†®7{Äy®¿Ë÷ù}ÿG ^€¢ð.¸ÐøwÀþ•KΟ=sêä‰uöY(ìEÏ>3÷™³=ú‡±¦¡üÄÉÓgοxéʵ}t\¼üBÂb é”Õ4µõ MÌ-mì\=¼}ñAaÑq‰)éY¹E¥ÄªšºÆæÖö®ž¾ÁáGcO¦@èÏî!ôÿ¤¢ÿ©š¿½ú?!õçgŸ=$!õ+ËŠr3S¢ Áxœ‡‹½µ…‰J}q!~´Ü¨é®]¹ŒÌ‡äCð)ܯ[¿…ñÝ0Ùe¿füÐø‡ô¯Á_¸o@öÙ9@Æ¾Ž‰…µ½‹LˆNHÉÌ-*«Dê“O>}Õ_êÿô©«¿µû"÷wÍýYû€ý±GÃ}=]í­Íu5UÄÒ¢üܬô”ĸhBhÞ×ÛÃÕÉÞÆ²¯­©¦¬ n@aAð2îÝEì߸¶ÆþqFö0ÙgýìŒþ -úßÒп ЧÝ=n^!PtrŠ*êX€¾…•­ƒ³›'Î/ 8,2&>)5#;¯°¸¬¢º¶¾©¥­£»—DŸxBæÅüÂË%Jè¿e ýßv ýÿ÷vÈl«þÛÕ þTl„Lênoi¨­,-ÌÉHŽ -ò÷vw²³27ÒÓÒPQE©ÏM]mXt‘ù ò!ù|ö›˜gÀüÈ‡ÎæÁÿˆ~ ?€¸s°¼ÁÛÀÀØWÑÐÒ32·²sr÷ö -ŠOÉÈ-,­¬mhiï&‘GÆú‹¯–WVßîõ?6÷—^.Ì¿˜¹ÿdbæ>©·«£­¥±¾¶ª¢¬¸ /;#5)>:",8Àçéæì`cinb¨§­©®¢(' ž†/xð ¼ ÙoãÌi:ö³:ÄdŸ9 ³ ú`Ù¿>ú ØíS`±/\¤åÜNn> è9y%U ¬Ž¾‘©…•£‹»—`HxTlBrZfN~aIye̓†æ‡íÝ}ýdú'Aè?Ÿ›¡ÿÃë•7û9ôßo­þ»ÿüBQiqnfzjbl˜ÜÕ¯©(-ÈIOŽ‹ ôórs´µ45ÔŪ)ÉKKÀÔçä¸s›}d> Ÿ>õ[xðì8ŒßnüÐð‡òøAñ÷ÏœEì_§Üœ(ö¥å•Ô°º†¦–¶Žn^~aQqÉé9¥5Pý> þPn]ýwŸ¸ú™û?€ÜŸŸ›}NË}r_wgÛæ†Õ•å%…y9™iIñ1‘á!þ>^îζV¦Fú:Xu%yIqŒ7|ˆý«àìŸ:qüÛc}˜ûLö™Ã0»¢B,öI„>m«ÙØ98yø1¢R² -ʪZºÆf÷­í]=¼}ñA¡„¨ØÄ”ô¬Ü‚¢RbUM]csk{Wi`p˜úÏh¡ÿ†þ?ÿõóÏŒ¡ÿû~ ý÷{W¿«­¹¾†XRžàëéê`cab £©ª(+EI}v6úšƒæƒÊ?FûMÊo6ýОfëÿÀ:ÿˆ~?êýuöA°ßãâ“’UTÕÔ10¹oãàêé—”ž]PRQSßÜÖÕG›˜šž™[\¢¨ÿË>P÷Üÿm=÷)쯾yMËýgߣÜ õtµ·67ÖÕTK‹òûÉ ±Q„Ð ¼¯·»‹£õ}3c]- U%yY)qQŒ ˆv6Ö[7A@öÏ"ö¿/ƒÉ>s6 =ú_Сp#úh§¯ÐпÇÅÃ/(,*!-§ ¬¦©­ghbnicïäêó ‹ˆŽKLÉÈÎ+(.«¨®­ojiëèîí'ŒŽON=F¡ÿr§ÐÿcŸ„þû½©?:<€Ô¯&–äg§%ÆF„øxºØ[[ëkk¨(ÈHŠb@êß½Ãú:ôQç;v%>ûÍÐoÁùÁ=Î65ü‘ü~Šû´'ríÆMjìcD%eT4´õ-¬\<}B#b“Ò²óKˆÕHýý¨þGäþ*Êý—(÷§Ÿ>™"“z»;ÚZëk«*ÊŠ r³ÒSã¢#‚|½=\ìm,ÍM õ´5Õ”d¥%D…ùy¸@°¢cðò%ÄþIø@Ž®±É>sÐì€>Ë:út п}ç.(9~!a1Ii9Eu,@ßÔÂÊÖÁÙÍ矔 -Ð/,)¯¬~ÐÐü°½³§¯pøÑØãÉ©ïAèÏ-,.½Z~½²º†þv¡ÿ©›¿gõ{;[›êª‰ÅùY©‰1„<ÎÃÙÞÊÜHOK]Y^ZBDˆšú¨ä ú0ô)æCòiào!ýšØãl÷ Ù৸؇µñÒ0ö¹ù„D$¤å•ÕµôŒÌ­ì=|ð!1‰iYùÅÄ꺦ÖÎÞáÑý¨þ&öÿKŸû¿o™û+¯—_--.Ì͂ܟš|<öhx°¿¯»³ýaSÃêÊò’¼ìŒÔ¤ø˜Èð?œ§›³ƒ-•}uE9iI1a!~^®{0 û  .œ?{\ƒëì³0²ÿ“ýÏv6£ÿåfôÑ>Ÿƒû 2îÖw}Nn^!qIy%U ¬Ž¾‘©…µ£‹»—P(!*6!9-3'¿¨”XUSרÜÚÑÕC€¡?ñ„þÌ‹ùúË+oVÜï¡ÿ~Oê?¢ª_^œ—•šCÆãÜí,ÍŒt±jJrR₼\´ÔGw‚Òq_Sȧ‚¿•ô[qþÕžfÛŸÀšýH~èþûà™\¾ŠbŸƒ‹WPX\JNI «kdfeçìŽÃbS³òŠË÷·ú;åþŒ¹ÿoŠû?‚Ü_¹¿0ÿbæþÈýÁROW{ksc]M%±´(?'3-9!6Šèïãåîâ`keaj¤¯ƒìËËHЉ ðröow‹z"öofÿK&ûŸõl@ŸúôSÑ_ßfúœÜ|q)Yˆ¾–®±Ù}k;'Wo_|PXDt\bJzVnAqYEUm}SK[Gwo?yh…þôóÙ¹ùmBÿ×ÝBÿSÜÿR¿ -¨Ÿ™šMö÷vw²µ45ÔŪ*ÊJŠax8ï²±RS®3}ÐùTò´ÿâ?ä'°F?‚ÿí"<~âÔé³ç.\ºzýo·XÙîrò`ĤdU±º†f–vNî8ÿ`BtBj&P¿jŸ«¿{îÿŠrÿݦܟŸ›}> stdˆLêíîhki¬¯­"–äf¥§$ÆEBƒð¾Þ.ŽvÖ÷ÍŒ tµ4T•äe¤ÄE0|Üœ4ö×NÂì¯å>“ýÏrȩ̀CÿÀFôOô/€„»ÐgecçàäáĈJHÉ*(«ij뚘[ÚØ;¹zâüþÇ~}FEyfß$›£kv÷ –+R¥½AAE * #U@z—¢ ¤ Ò¤Kï½w°Š 3È''j<›äd7ÙçyßiÈŒÀ¸»á~æ÷þæÿøø†„EDÇ%$§¦gåä—UT×54·¶wõô |ûç/p„É©i2„þwˆù¯>åÐÿ}©êg¤&ÆF†õí°æfMŒ¡úªŠr2b¢Â‚HêÃcFÑ¡T>C|.Òùá3~è>‹ýÍ[`€:=(!#§¨ª¡Ô76¹hfµsrõòBÔÏøôÕ_JîÿÝìÓ(äé©IÂîÅsÈþ@_OW{kSCmuEYqaÞã¬ôÔ䄸èðÐ@OWç[vÖV(û'>¤¥¡ª¬ '#ö²¿—ÉþÆõ(û_!쯙Ëþç«ì¯¨ùŒ+úà˜é§Ì -8€¾ °@_#§¨¬¦¡­{ä(}K¬½ãmw/߀ »a‘1ñ‰)iÙ9ùE%å•5uÍmݽýƒÃ#£ ôqxâ$išB¥±Bÿ 3ôþäBÿwÕ÷ótu´ꛚèik¨(ÈJK@RëfÁýõ+ùsµçL÷ŸyÎþ3á_Ç „ È®€Gá^!‘ƒÒ² -*Úz†Æ&¦fæX;GW/? ~ì -QŸýßæçþϬÜÍÈý•2Mš$âq ÷GG†û{»:Úšëj*ËJŠòs²2ÒRã¢#ÂîøzºÝv´·±²¸våâù³Æ€ý#ºÚjÊŠrÀþaäU¸c;²+lìÿe•ý=  ÿ·¿£èoFÑßCG_R#¯¨¢¦©Ð7µÐÿõ#èê[™_1=‹¨¯®¬ +%~`¿8exÉ›7mÜÀ†>Jþ|îyB~Q¿ øQ÷éìÃmÏÂ]{÷G¡¸”¬‚²:TßÈÄôŠ9ÖÖÑÕsE©Ï•}¸ô܇ì#¹°?;C¥ISDÂÄø’ûý½Ým-Mõ5Uå%O -r³!ûñ1‘÷ïøz¹»8ÙÛ`-¯›]º`rú”áÑ#º:šj*Šòi&û»ìo ¿ ßÇþªûŸþ,ˆ>Œ7ˆþ¶¯¿èó  -‹—”–•WRQ×ÔÑÓ?v ùªù›¶ήÞ~!¡áQ±úó -‹K+ªkšZÛ»zú†FFú8D1Ÿ]|.bÁëp±Ÿá>Û¾€Ø‡êïÙ'ÕÇ@õuúgúV+Oýsÿ'˜ûoÙrä>yzj’€Ç½@Øèëélomj¨­®(-.Ì{œùèa҃بðÐà;~Þ®N¶7o˜3Ø××ÓÑTWQ’—•–GÙÛ_†0ÖÓ÷e•ý<‹CŸA'D_h?D_FVAIU]ë‚þ™s¦}+k»[Înž>þ!aÑq É©éY9ùE%e•5uÍm]½ýƒÃ#£ÏÆÆ'ðÄIÒ4…Jc }ýCÞåsÔ~yÚ¿tõ#Yê_@ÕWS–ÇH‰‰îäß³ ž1=õè3Åÿï0¿˜_¦û€ýuë±Ï^†ßìÜÃ/¸_TL -#¯¬®¥«¿xõ_½þqy«¿äãÆ>÷ܧQ)Ó¤I"7>öltdx°¿§«£µ¹±®º²¬¸0?'+=59!.:<4$ÐßÇÃÕù–õ ó«—MÏ1:qL_ï–º*`_FRü Ø~„ým[6󭲿:\Ñ_;ýí,ô%¤dä”U5´68~Òøìù‹W®YXYÛ;Þvóô ºŸ˜’–‘[PTR^USߨÒÖÙÝÛ?ôô[úãâ‰L¡ÿÝKh>Dÿí[ú?-ús/jâ/'ù9«ÿŠ]ýáþžy껾«¾¤˜¨° ÿî@}Ðnë7¼–~Ã,ò¹ý9¯Ã…~Ô}”}úÊ€·!T7?xŠIõÕ€úÇ™ê{AõãS3s -ÿxêó´ssþòþÜõp°?C£ISDÂÄøÌýÁþÞîζ–ÆúšÊò’¢üÜ쌴”ĸ舰»A>žn·í¬­,®ÑÙ78|HKCUIAVF -²/ÙßÉýµ«ì¯Àyúë˜èoâÛ¼¢¿{/Dÿ€оš†¶.ýë–X{'w/ß;Á÷îGÆ&òþ½ _/÷ÛŽö6X‹kW.ž?k|ò8`_[CUYANFJ‚Î>ؘí`eø61Ù_·ÊþJœ%¢¿OPX¢‘STVÓÔÖ=rÔðÔi“ —Ì®[Þ´uprñðö»‹¢ŸWX\VQ]×ÐÜÚÑÕÓ?8<2úll‡GBŸ -CŸŽþâC=¤%‹ÿÎ~¤aÞ;'õI¨ú=­µ¨úIP}¨>–¥¾2KýíÛ¶À f¥>ýÿöég²ÏŒ}¸4àuÈA}3s¬T?8 ¨Ÿ–™[XRYÛØÚ Ô}>>A$‘©³/ÙÕÿuY©ÏóÞÍûÉþÜ܇ì#¹°?K£R¦I“DA NM“)4€>jþk4ôÁ‰/ý™e`]ý_ÙÔÿþå, ª?þ|¨ß Ô¯,-ÌÍLê‡õì°æf¦&F†¨ú˜¹ê#÷ Ïw Ûù.MüÏÞ7‹Ÿ±7k½k3O}um=C#S3 ¬“T?*>)-+·¨Q¿Qԧ;üž‹úùßÇkmpž9¹Ïbì3÷û34 -™4E$LÐÙïïíîhkn¬«©,+.ÊÏÉJOMNˆ‹ - ôóöpuv°½y°Áäô)CÀ¾Ž¦šŠ¢¨ÿt ·³µ ¨_”›•–Ô÷vê[ êèi«¿£þÆÿ°_×_Q {À¸g×ãquõzõ(âŠt—Ø…¢"‚ŠHwÒ-ÝÝÝÝÝÝÝ9ÉÌ€{×ZÖ=Æ÷}g†™aòèÂQ¾Ãó|Þç…êéOTŸŠþJm_éѹO›œ-¿@õwÒ¨ÏÁÍOR_JFNAU ¨omïÔNHÍÌ-*«ªê÷@õQI}8þ^_ê/'{«cŸäþG†sŠ€ŸÄ¢Qˆñ±‘¡¾ž®ŽÖæÆºšªò’¢üÀ~b\tDH Ÿ·‡«ãKKS#=-uEù'²€}‰W/‰‹Ùg§aßžÿ.Ìþ¿6ØÿÎo>ú?Q«KBÿßôYˆèŸ!¡/"váòµYô•T5´õ ͬlí\=}üƒB#bâ!ú¹Å¥UµõM-mݽýƒÃ}$ -ƒÅáÁЧ ?3‡þß«ú Á_¤ˆkìú€}0ëÞ¾êã0(¢ú­MuUeEy™© 1áA¾ž.ö@}}-U9)’úüÜtêÃòR»;Çü¯*ýBôÏf‡¢þVõ?u¨/ Õ—”’•STÕÒ72ê{ú…Ç$¦fåAõ›Z;iÕÕ‡¿¿õ£þÊr·R÷Í}2ûÓ<‹A!'ÆFàÜïêhki¬¯­ª(-*ÈÍJOì‡ùûx¸:ÙÛZšêik¨Bö¥ïKö/_äãád?w†Ä>ó,û¤Oâjt~Ú`ÿ8Fèÿ<ýÝ}&€þo¬ ¿}.~A‘óý›·ïJ=|$÷LIUSGßÐÄÜÊÖÁÙÍÓ7 8,2&>)5#;¯ ¸¬¢º¶¡©µ½“ˆþèø™Äú$ó!útCÿóJ†þRâ3îàšÊAUŸ8ö)êcQcÃ=m$õ³Rcƒý<]lÌôµÔåd¥$oõ…úçNŸ8 -Ôgêÿ‡¢þ&X]Ò`ûģºOû ;›(ꃵ°— ªâô9~áó—®Ý’| ûTQM¨oãàê铘–•W\^]×ÔÖÙ30<†@a)êƒXÀ!°>Ô_MîVÊ>eî Îý÷ïˆîö§¸I 91> -Ùïîloij¨­®(+.ÈÍÎHMЉ ö÷ñts¶·µ276Ô×ÑPUz&÷²ó`_DŸ‡ ° -²ÏÂ|€ °¿{û?o°ÿcô7ÍC/ýc'ú\¼üB"ç/^™E_AYMSçù  k;gw/ß€ð¨Ø„ä´Ìœ¼Â’²ÊšºÆæÖö®ž¾¡‘±q -Ħ¨CŸý•ýeŠÏ°‚khÇÂê#€ú½]mÍõÕåÅùYi‰±Áþ^®6ÆÏµÕ”žÊ>¸{ëÚ¥óÂü<$õY2íå¥UîÔÿöæÏeć¬>ŒHÎ>¦ƒ,Dõ9y úwy+sŸ:÷!û”¹ØÇObÑ(ÄøèÈÐ@_OW{ksC]ueYIa`?9!6*,8À×ËÍÙÁÎÚÜ䅾ަš2`ÿ¡ÔÝÛ€ý‹çE„û€ýÇX#²¿wû›6ØÿniôwÌCŸˆ¾(@ÿú­;÷È<~ -Ð×Ò}ndjaýÒÑÅÝÛ/ —ÑÏ/*)¯ª©olië £?@a°8@Dc'q„©iÊЧAECŸqï>Óà -®1ûsÔÿ4«þ[¢ú“h$QýŽ–†ÚÊÒ‚œŒäø¨°@wç—V¦†ºš*Ïž<¼ûÆ• ¢‚|\ì@}ÖÃÌöïÙ½kçŽíÛ¶’jK«þ·4Ÿ6@têŠ0=;wì`>ÌzüÔYv.>!¨þûŸ(¨hêšZ½töð ‹ŠOÉÈ),­¬mhéèîGbHê¿]Gê/½¥é_ûóç>dŸ2÷§§¸I,‰ ³ßÙÞÒÔP[]QZ\ØOMŠìùûx¸:ÙÛXšèi««(ʓٿz‰ÂþéYö÷öw‘Ù‡«aóûßû-þ¶_Ièï!¢ø뱓Dôù„Åú7$$ïKCôU5´õ Í­líÝ<}‚Ã"Ièç–”UV×54·vtõôGÆÆ(€>ž†þ,ú3 ×ýÙ¡OEeæÓsÏÐ~ý[+@èÔÿªÿû4~ƒœêïéhmêæf¦$D‡ùz8Û[›½ÐÓTU“‘ºsóêE1!>nö³§Ž³>t4—¤þ/[`k«ÿ#D§þæÍ0?³êú ªÏÁÍ/$vñêMI)9U-ýfÖö.ž¾AáÑ )™¹PýÆÖŽžþ¡Ñ  >a|ß¾û“¢þ—µUUÑ[)ü´ì¦°Ò1CaÿÕØG!ÆÇF†úzºÚ[›êª+ËŠ ó²3û1‘aÁþ>žnNö¶VfƆzÚªŠòOd¥ïKJÜ€ì ðqs’Ù?|ˆÊþöm0?ì÷·Bôè³sòð -‹]  ÿLIUCGßÐÄÜÊÎÁÙÍË7 8<*6!9-3'¿°¤¼²¦¾±¹  ß?8<26Da°8üDÿ50¢¿ª¡O×;š¢}š{ó¸اªÿ…ªþû·¯ÿø}š€Ã ˆêw¶6ÕU•åe¥&Æ„ûyºüŸýúð‰2Ïã8žÜ]÷?äþ»·À}ˆýù¹™i,59¾Ì~Gksc]MeyIa~Þ³ÌôÇÉ€ýˆÐ@?OW'{K3c}Íö/œGØ?qœ… Ç>Ž}’=öwÁÛ<ú´úœú’Ò²×o)ÞQQÓÔ506·ºïàìæùÀ?(,2 Ÿ–¡_TZ^U[ßÔÒÖÙÝ ÐŸDc¦¦gúHèúîîóWÞªýí<ûø/Ç>Pÿ#¬þ¬>51:4ÐÛÙÖT_]^\“™–œäëåê`cn¤§©zGáúU)qQ‘³|§¸€úL t4ÔT‡“‘ü¼¬þ¾õêÿùg„»¢¨ÿ3 ùCTÔ4ô LÇNppâ?+"&!uõºÂUM=c W/¿àð˜Ää'™¹ÅåÕõÍm]½@ý vEýÐu|þ}gÕÿÆí;¾oÇ·ØÿLÀ>’û€ýÙé) zr|ldh°¿·«£­¥±¾¦ª¼´¨Ç~R|LDh¿§›³ý}+3cM5•;Š·û’€}Á3|§¸÷Øß•o3èX…>„¾€ úêZº&æV¶Îî^‚Ã"c¦¤edå<Q\ZQ]ÛÐÔÒŽ ?Bc§ffç@è/£ÿ”„þ'}d›4Uæ#3û´î­àÆîïˆ!êC±6 JîÕÜ4=1:<ØÛÕÞ\_SQò"7ëIJblD°¿·›ã} }-5eŲW$ÄÎ òórqœ8Æt”žRŸ¨ÿoX}$ö öº w„¨ŽèŸ°úà‚È(€ú‡ié2õ¹yÏž»péŠì Ee5m}K[G7oÿˆØ¤”ô¬¼%5 Íí]½ƒÃchìÌ(ƒp"pêï´ú_3ÿkµA¬8¾yÞ_ðîC¹Øÿß#ì¿~57;3…EONàØïîloiª¯­ªì?ÏÉÊHKyìÿÀËÍÙᾕ¹±®ÌþuYiˆ}˜}N„}Z˜ý{ìï‚÷]èóBè‹^\F_ùžº–ž¡‰¹µ­ƒ‹»—o@px@?õÉÓì\€~YEu]Csk{WOßÀËáQýé™ÙyýEýï}b³#€þ·å·†þõëÛqöqê‚ÔÔÔŸ™BOŽ öu··4ÔV–æe§§&ÅE†ø¸;ÙZ™h«ß½}óšôå‹ç…Μæ>Évœùè0[ʃd¤ÐfÿµÿΫ¿wB¤d)9Lw„‘ù8ÛIžÓBç/^–¾vë¶ŠºŽ©•³»O@hdÜÃÔŒìç…¥•µ -Ý}@ýIô¤þ þûÕêÿè¯7}m¬jŽ-¹¿aî€sÏþ<Ì> -°?ür ¯§³½µ©¡®º¢¬øÅ2û ±QaÁ¾^î.¶Öæ&†ºZê÷ð싊 -ðñrsr챿ËÞ–Ñgá/п$%-{Cþ6@_[ÏÐÔÂÚÎÑÅÃÛ70$<*.ñŒ~~aIYeM]cskÇ2úã“( @  ý¯ ¿eóWk¿æ­…ÿ`•úŸqêÿúv§>frläewGkcmUYÑógÅG…>ðp¶·63ÔÕPQ’—“‘àãádgead £¡¦£%%'‹WÿïÛ­>îŒö!ê“’ƒÔ§¦¡c`daeç<ÅwVXT\RFN^鞆®‘™µ½‹çƒÀ°èøGŸ>Ë/*«ªklíèé92>‰™š™ýŸ7‹oÅ©ÿyGÕßÀãM‘äØBî°ÿÇ>ì>ÄþÜÌ4ƒš…Ùïêhmn¬«®,+.ÌÏÍ~ú$õQblTxH€¯·»‹£­µ…‰¡`_ù¶<Äþ¥‹{ìïη9ô)©¨ÓÒ#èóðò/£/s F_C[ÏÈÔÂÆÎÑÕÃÛ/0$":.1ùqzæ³<€~yeM}cK[GWoÿàÐ@™šž›‡B}0h}x«±™ ­îwüêp;û¸þ­ ¿¾gŸ˜úÿ}=?;…Aõ{:[›êªË‹ós2Ó’¢Ãƒ|=]lÌõ4Uï(\¿*%!&r–ÿljcL ô´ÔT‡ÀfÁdaõûˆúÛ.õ SVܤ>-ýQ¦c'8¸xùEÄ$¤®ÞPPVÕÒ3¶°qpõò -IHNËÌ)(.¯®kjëìéGa¦gçAüê½¾5Ç÷Ûw·Lÿ†Éñ­;ÿ‚w™}èHÜìÏNOaГ€ý¡Á~À~[sc}Mey `ÿYf:`?.:<$Ð×ÛÃÅÑÎÚÂÔPO[bÿÆ5)ˆ}!À>'Ûû»çm} -}€>+‚þ9<úwU5´õL-mìœ\=|üC#¢ã“pè•–WÕÖ7µ´uvÃèML¢±S3³s¯Ö ¿Aè±ÕLîÚG°Àåñá··“쯨ÿeEýw‹ úÓXÔÄèÐ@oW[s}MEIAnÖ“”ÄØˆ`o7Çû–&úÚjÊŠ7e¯\ºpNè /÷I¶ãÌG€ÑR¤ #…»ûÛ¬>rG+©Oqò—Ãà¯"óq¶“ܧÏ¿pIúÚMÅ»jÚ&–¶NnÞþ!±I)éY¹/J*jê›Ûºz†F'PXXý…Åw+êÙ)õ78?b×G$:ððoÞýUŸø ˆý÷û¯_!ìö{»;ÛZšêkªÊKŠ -òû““â¢#Bý|<\ìl,Môµ5TïâÙ?'$À¿Â>=íaj*Ê=öÿÒoKè32CèsáЇп© Ð×Ñ72³´±wróôñ -ˆè§edå<èWTÕ64µ´ô^ôQ0úóúÀ|ý¥%(ô×£¿Uóñ›ƒ•_ZýVè_ãþzö·_’?؇½æ¼nn‹žìëjoi¨­,-ÌËNOMŠ‹ ðqw¶³25ÔQW¹}KNæòEQa>NvVF:8öÁb‚cß6Æ>‘Ôÿ ¤>9”ú4t Œ,¬ìœ<|¢â’2r·”T4t ͬìœ=|B£â¦fdç–VÖ6´´w÷ B˜™{.ÜÉ\Hêï€úDÐ'4£Ü ¬ŽšcsîãÙGri ff~vf -‹FM ì·ök«*JñìÇÇD„ùùxº:ÙÛXšéëö•pì‹áÙgì3 ìƒtØcÿ¯ù¶ˆþ1ýÓÿg¿¾‚¢J³Ž?lÕŒµ[kíŽ3³ëŽ9ŒŽ£ŠŠ‚ Š¢ˆ‚0 ( -‚dArÎ9‹ (HÎ4±É9§N4(Q‘Â݇ý¾{o÷í€,²ƒPÊyjžnuõ9?þ—¢I\B -A_E]K÷‘™¥ƒ‹»—_`Hxt‚~fN^a @ŸX×ÐÜ -Ðïí"‘©4:@ }6ôÙî`qó¹J ;:üwlô;>üöV—}õÑØêO@õ)Ã}Ý­MõÄJBq~vzjR|Lx°Ÿ§«ƒ­¥‰Á} EùëÒ—EÏ ñóñò:°oÏ®í[¡úhìÿ9×ÏûKý`‰~øq3X¡]{ö8ÄsŒO@èœèe éòwU4ï˜ZÙ:¸zùGÄG}3ÍŸc[¿…ªcq÷ÿ7ûŒÜÇÙGr²O§QÉ$À~owg{ksC±ª¢¬¤0/'3=-åÙÓ8À~ ¯—»³ƒÝCK3£ºZê*}Àþ¥ €}~À>`ßÞÝëìé³\ôqô”TÔµu›YÙØ9º¸{û†FDÇ%$=ÐÏ/*!TTë1ô‡Hê}„þ‚>àzË }Ü|ôæpïß² ƒ~üøæ¹^.ýü”p¨ÿvz -œòè…4ÔßÓÙÖÜP[U^Ró*-9!62ÄßÛÍñ‘µ™¡®–ªÒm9Iñ‹"gNŸ<~äð¯û÷îÞ±í§Íÿøaˆý¿~îØçJýo©ÿ·ïÀmÞ²mÇîŸ÷ÿzøèñ“§…Ï_¼rMFîŽ’š–ž‘™µ“›w@HdlBò‹W9%åUµ Íí]=ýC$êÈ(„©é·¨úê¯ôçY×ï=woàÕÁ¶{óËrc²ÉýIû öûQöë‰Õ„’Â|ûÑ!~Þî.Žv6–fÆtµÕU” ûRâûÇ×Ùÿ:æÓÑ? Ð?É‚¾<@_C[×ÀØÜÊÆÞÑÕÃÛ/(4"æ D?#+7¿¨”PY] Ðoëèêès¢ÏúKBóÑ“cz?Ã> ú™Á¿û«ûˆú0õg¦&ÇúTòÐ@oW{Kc]uEianæË”ĸ¨Ð@wgû‡æÆúÚêÊ -7e¥®Š]8+xêïoùyÏÎí[ÐØ÷úÖØÿÓçSÔÿþÇþkËö õòðžà<{A쪔ì-…{ê:úÆ6öξaQOŸ¿ÌÌ-,­¨®kliïê"#êONͬ1õÙÐgMîÞÀ«c–eùðí[ûhî³±ÿz”>B¥†!û]m€ýÚêJBi`?ãÅó¤„'Ñ¡A~Þ.Žö6VfƺÚ*J -8û‚ëì%³lô…QôeåúªÚz}[{'Wÿ ÐH&úE¥å•5µõM-ý¾Áa2…62:Ðæs Ï¶þKCŸË|ìâ òÓœƒÑ¹Ï¸¼…Ùÿ옠_ -Uî=ªþ›1:<<Ð×ÝÑÚT_SYV”—•þüY|txŸ§Ëc[Kƒû*Šò7¤%.‹žà;väÐý{wíØÊûȱ®tìs¥þ·˜ú õ7ÔÿiëŽ]{Aê9vRàŒˆèeÉßoÈßUѼo`jiëàê韔šž•WTVYSßÔÚÑÝ78L¡ÑÇÀ¶À]A^ ÁÏõŸÕQ™æ³ì¾‚,ÙÈ¿<÷YûoŒý9øH&ûcô… Øïëì·4Õ×ÖT–ös³Pöc"Cƒü½=\ím­Ì ô´5T•äåpöOö¯³ÿ…Ï’Ñß‚£Ï‹ /" -З†è+«jè蘘[Cô=}üƒÃ"câ“S_¾ÊÎ-(.+¯ª©m` ?ÄD }˜oÈ)³ ÿ‰¡?n?ãæÐ‹ƒ§6gäô9Ü_ì3¿ûHÃÍ‚Kžœ€êSHƒ}=mÍ Ä*Bq~vFZòÓØˆ/7ÇGÖf†zZªJwäd®]¹t^øô©ãGaìïÞ¹ ‰ýﱿ;öWäPñeBWé›…Rÿç_þvôÄ)Aáó—®\“¹yGIMKÏÈÌÚÎÉÍ; $26!9-#;¿˜PElhnëìé$Qh£c`]¦gÔêc©¿jê/Œ>n>Sû)–aèÏ]¬îRî³²¸ØEØÀØo@Ø/.ì¿LMNì‡ùûxº:AöM ôtPöeöE„×Ùÿæ“Ñ?ˆ£/vE¢¯¨¬ª©£ghbamûØÉÍÓ' 8,*C?¯°¸¬¢ª¦®¡©µ½³» O"SitpÄãúïô?.ï"賚ÜÜ,j>rr î'X³ƒŸY\Ü_uõç¡úïÞNO3¡’†ú{»Ú[k«ËK -r^½HIŒ‹ - ôqw¶ha¬¯£~OáÖu©«bÎ -ñóñò:°oï®íœ±ÿ-Wì¯À¡r¢ÏLýl©àÏ1>¡s¢—%¤¯ßR¼§¡óÀØÂæ±³‡o`XÔ“Ä”—™¹…¥åÕµ-í]½ýC$êÈèëñ‰©é·ˆúó«§þÇÑŸC3ó~’c8³[?ÜýOÌ}ôÙÈ“ác‘ÜìÓiT2 °ßÛÝÙد«©*/+.ÈË~Ù €ì?¶µ671„ì+Cö¥%ÄÅDQöy—Áþ¿Lë³b³<ôpôo#èëCô=vvóô GÐOK‡è—ô‰uÍúýƒC$ -u„>úšýÅr{ñÐç0ŸyrȽAçÇἃ|BéGnwm±¨ÿSfjrªOèíîhmª«©(-ÊËJþ,>:<ÈÏÓÅÁÖÒÔ@WSåîí¿KŠ_9s”¸Xfìoú;v­à­2b¥.•m™°UâHým;w#©üÔia‘‹â’2r·ïªjêšZ=rpõò ‰OJMÏÊ+*«¨©kjíèî&Séc¯Ç'§f0õ?0Ô_ÍÔçDŸcÙ6eùÛ7Ãéþ’s¡9ýwû Pöû!û­Í uÄªŠ²âB&ûQáÁ¾žnNY[@ö5U•!û’WÖÙÿ*æÿEÿ&@_ ¢ojñ¢ïå÷ôYJZzf@ŸPQM¬g¢?̉þ,ŽþRV~Ðg1Ÿ|Œû×ø øcðƒËûûkDý¹÷ðŒ''ÞŒÑi”áÁ¾žÎ¶æzb%¡8?;#-ùilDˆ¿·›“µ¹‘ž¶šò›²Hì òŸ@bKìoDÔßÀˆý•»TöeBS3õ¿g¤þ>ú¼|üBg/ˆ]•’½¥ ¬®­odþÐÎÉÝ; $26!9-#;¿˜PElhnëìé$Qhô±7“à›E^ WM}w¹ÑÇ7p‚¹ø öObëDzs,¹¿Ä·]<|°çÏβ²?B¥àì7Ö«+ÊJ -ór2ÓÓRžAöC|½Üœ!û¦†ú:šjÊŠ·qöÖÙÿ¢ç@ÿžšæ}}gw/ßÀðhúùE%„ÊêZ€~[GWO@ŸL¡€n{ÂmGžý%î;úðâÞs\¼7àüœQtàG„~ôòÀáaw·6ØÇÕ‡ì#ý6û\ñÄÙ¯³ (¯4ŒãeʘTrÅHÔXeÐàĸâ'f4ê0â¸EEP ˆŠŠ" ˆ " -²ïû¾ÓtÓ; ÍÖ -ÌÔH2©š÷œó¯¿n Â2ˆ:œ«x×T¿Ï/ÿ† 7‚…|^UyqANfjb\tø£à Wç‹çlÏœ2;rpï®Û¾ß´á«5+`±óçÎ6àÄþXNì)û=¡Ï¤þ4õÿ@SѲ(õ·lÛi¼÷§#ÇOYÙsrvõô¹—”–™[PR^Å%2E#t‚ -¾0’ú]¿Ð¯iÕïŽ>ç©ø-ô™ãka»ã¹VwpÝïoîk°îûÍÊÆ†z™T,¬ãóªý"`?#59°/Ø÷@ì;žµAìÁìo×bÎûoäú ÕèoÅè›9vÒÂÊÆÞÑéÊ57›¾ýÐð'1€~F¿´£/’`ô›}ýNFÜn×ÞÇÐgÌ'™…Ç%s¯ä>B?†_…Üǽ¥Íþp«¯Ž}p¤mÔWÈ%"AmuEIa^Vzr|LdXÈÝ€[^n×.?kmyâ¨ÉþÝF?þ°ù»¯×®Z¾˜Æ¾ŽýuÆÁXÉV‡–ýЃÐï}¸¤qÝR9IýíFÿØèèIËŸÏž¿|ÍÝË7à^HXdL|rzv^aiEumH*GêC' J@곩ÿ²Õï–úZèsÌ'È&‡ºZ\÷»ç~ßÙA?b¿ ³¯K% û¥Ey˜ý¸˜'á¡!ˆ}oľ“£=aßd„ýÿ×Oôgõ„þ„¾¥•­ýy„¾' DÑOIËÌÁèWÕÔ -Ôè·RôáÔ5±íû«C_Û|ÜXho|…BQ¯~ -¦–ǸV×ýáŽ}ª>fþ,UksSC½L"ðªÊK -r3Ó’â¢#BÝöñt½êähgmqÂÔdßî¿ÑØ_Bb:‰}]û˜}˜ê-Uó˜FãcB·„O ]’.ÒTH}6õ¿þnóÛvï79zÂÒú¬ã¥«nž·nß}—”–•[PR^Å%²zHýV|W8õA}ú% êk£ÿìc>=A|„ôÑûc°ëþ sŸù jöáj”À¾ ±_[ìû™i)‰„ýûA˜}ľ­•åI3ľ1°¿e„ý7ú -ýÍ€¾Bß”¢ïìâîéí€Ðˆz -è§ú…Å¥}¡Æ«hTÂ|†þo=Ä >sMóÉÞˆøõõr¹\Æ>ø‘Ÿºß†?I»šýW#ö‰']LìÂÛZš¡ÚD‚ÚêŠÒ¼¬ôäø§OÂBîÝñ½éîrù‚½Íióc‡ìù»FìÏ™9C­uÒGÆë ­’©ÙR{:&}’ú“>ÖLý¯6lú~ëÎ]{63?cãpáŠË›~wî=|üäiBJzv^QiEumH*W€úmðUubõ»ºhê£úlYôÛÛ{ºAt„ô1éòü$øY÷5rÿ×þç>eÿ_,û-ð!0ûBAmMUEiqa^—ý_oO7g§ó”ý\ö GØß@Ñ_èoä onimë@Ð÷Aè? ôã“RÒ³rò ‹Ëô¥}d­ŠH«†¶ÏèÿGë-37ͽAbÁÜÐØd2©T¢~R)¦í»OrŸÃþ0Ç>GûXýŽögmʆz©¸Ž_SYVœŸ“‘šþ(8ÐßÇÃÕÙ霕ÅqÓŸökžÁôOô¦N™’Áì¹ó?ÿr‰!Iývï31=aamçètÕÕÓçvPð£ðèØÄÔÌœ‚â²Ê¾P,«oP6·ªž‘£“ùe˜Ôï-õ¹è£ßšØ|L¾œ!ûÈÖ3ðÓò`q’#ìó&º±ßÅaÿ9e~%Š ûeÅ…ù9™éÀþÓ¨ˆ0ľŸ·§;aßÚÒÜ̱oìoaÿM}FízŒþ#ã½jô/9_Çèß fÐOÅè— ôùý‚>ýN³ýBŸšÏ¬n›æfœXˆ|"¾X,R?±˜ÈgGG§bØ'?<†5öÙ¿”ªÙ‡«Z››a¼B¯ª¼¤07+-)>&2ìÁÝ_/÷k—ÏÛÿ|úä±Clì¯Y±lÑ æÁZõ§áØ×ýPg3Õw{aSÕ úLê£SÒ©¯7M Rñ²•kÖKSÿ˜ùiû —]ÜoúÞ¹Ÿœž•WXR^ň$2”ú­Ð -}Žú¯@êsúš l|„¨;äì²O¹Àüä'uŸæ¾zý›SB(÷чR/“RöK€ý¬ô”¤xÄþÃ``ß±鼃ûûÎþhö˜þ7·4ò†ðq‡Šw:ºÏèo`Ñ?ÄEßËÇïŽýŒ¬Üü"@¿šÇ¯‰¥r@ݸ -£¯ÙÖƒ -}|ßZsCcCà …uœ'bùavrÄ~#Î}Ì~GGç«û¤#»˜ØGómijTÈ¥¢ºÚêŠÒ¢ü쌔„§O?¼èïíqÝùâ9[«S(öw“Ø_·ÊpÉ—ŸÏŸ;Û`ŒuÊäIM¯3v(Ùÿô?§§èÃ%͘‰S©áêußlüË_·ãÔ?naewÎÉÙÕÃÇ¥~TlbJFN~¤~mœRÅ“ú]ì74,êk¥~7ôñMl>“BÎcÛƒI%ë~;i!z†Í}ÎOø<èãûr`¿ŽÏ«¦ì§Röïbö¯sÙßkl´£?ì¿=Âþëóz@ÿí Üü´µÃ…KWYôGFDzè—Wbô%}b,-ë~£ÿ+ûK–Ž]ž“ù˜|$¾@Àçókñƒÿ°ühuÄ}mö{‰ý—«ÊoœØÇêw´Ãz›•lb!¿¦²¬¸ 73-).:"bÿ–—'öwáØ_¿få²Å ÌûlÖ§Ó§éM2y¢.—ýwzaÀ[õ{èÕ?ANiªÞ'Ó f}öÇ?-\¼|åÚõßþyË6ÍÔ÷ò ©Ÿ”–•[€S_(‰Êf¨…öF}6õ‡O}nê«ÛšA›/CW(b®ß!:@‰N{(é>ë=÷Á~e_"BìW–•åçfe ö£#ûwü|¼¸ìê'ûcFØ}^èú7¼|üýGý„äÔŒìÜ5ú2¹¢®»uðè÷ú*µ¡Ì¡­!ïy¼úx<Ø»CîwgŸ|¨cÿåªÂU³"4Š}‰H½VZ˜—žÌľŸfìAìoüfÝjÃ¥(öçÌœ¡? ¶:i¢.3Õ÷ßÓd_cªë¨QZ·DÑç]Î-éNœôñT½iúŸÎœ3oÁ‹–®Xý“úûMLOÐÔ÷öÄ©Ÿ’‘_TZQ]['bR_ßÑ?É7Ī?_G}6õYb¹gÈ\!s†äáúÀñá§GH¯ð9ÍýÓÜgÖÑypŠˆùLð‘,ûå”ý„ØèÈLj}ÿÿ²_§AU^gÇ'm:‰Öš˜èXâ8†°( D\"Š‚â‚‚ˆˆ(Š‚¢¨5®AEÅ £5©F«ÖF«¬²ï;— \6bDÄ]²Ìô9Ïy÷{/\ˆãÅ”ó…|ðÛ9Ïó»ÿCØÜ½ckDxXHpÏØ[ û/Õªþó²ŽôßÖ ýY*ÐôÏ3è§"ú%bôïIÐ×°f¸¡þYUèw¨Y¶j¿¢B.——“+*ý?トýg*ÚaŸû¦¨t2±Ë ÉÖÚr»±¾c?/;#%‘ÆþiAìBìÏ5ÃÕy’£½­•Åh#C}=ÜUXÕwaUÙ@SË~×õ.чabЪó!%=}ÃOMÇXZÛŽsœì‚©ï븊¦þ>’úÿ$©—”š‘“_TZ^Y­¨§©ÿA›úܯrßH}°8‡üRñ+ÉVà2#¨&>Ú{™ûRö;U²ßIJ_R˜Ÿ“•žrÙ¿xÙ?¬’ý)êØ'³ÔÏþkwºEÿ]DÿCŠþ'Êè{ Ð߅蟠Ÿ›_èWÞªQ úw(úY]Eè÷0ôñ û” }Ø5¥e#«{V.“ÉÊØ#“ý°vŒû"ö©úOú^ì£ú>hoõ¿ojPÔTÉËŠ r3¥±±amðŠ?ïùžîÓa[ìlÆš›2øÛÇ#†ëcV•ÙTž}vU{ë¾Ä|á,1èÿy %†éÂ(陌¶°²±?qÊT7wO/¿€ ÕkùÔ?÷¯+×n$$§eåËäU5u ˜úmíÈ áÜp©¯eõùÔ‡‚÷˜}f «0<ÊÉ â!ùAfP‚G§$÷5cŸ[nGÄìß#ŸEٿűŸÊ²öÌ©˜~öÿÎK@ߟA¢,æÔ×ý«× ú}9A¿¾¡‰àÊÙÊ%ug/:†}¿Â¦=Q -}Æ|†|X´²ÒÒ’’’b<ð¥¥D~9uŸlǾ(öû”úÈþ#Bʽ»°¸uµ°¶%…yÙéÒØß²2Ðßw!Äþ4—ÉÆýÝÚrŒ)ÙÕ‘”ý!ïîŠýÞ¸/5_%úafi˜îðd”ŒÍÌa’&8¹L›9{ÞB_ÿå«BÖ“Ôß©þÒþ—”’‘MS¿¶¾ñ6y&’ÙQúÚP_uêóèssXAç‘L"L Ì`™¨>”ÝÇÜÊ. ¿%=Ê}ZF4ŒpEȇûŠš[•À~Q~nV†„ý¨È=ö½ûÙÿ­—‚~PphØF1úW®^KDô ŠJdýFýv.¨5GÿåÇ+—1lÇ0æßFó1óɪ•• - àÀŸ¢"°àG÷aáHhQöqÛTǾ6Ôç\ÁhÃÝíxpŸÆ~½¢c?b?^û»¶E„¯]àçã5ÇÃmªó¤ñö¶V°«†úz#ɪê ûƒT²ß;÷U™/š%ýÁïôÿúш‘zŸ~j:ÆÒÚÖÞq’³«›Ç/Ÿ%Ë‚V¯ ؾ+2*úIý_½‘p3-R¿ R_ÍÐÒú“ú¨¾är^ÙÝt™ú8Š údIè³éA‘9¤?P~¹Ä}qîÓ5éAî«aŸ~Ï~=a_γwý*aÿëS1Çým ûþ]³?„²³ÔÏþërº@•¢?¤gèŸô/!úɩـ~)~‹ýç=CŸåŸÔ†>šßÔÈ™äð -òóóØ“Ÿö1îÃÂá¾ÁºµÜ¹Ë~œrì¿bY„±ÿœý6Œýû2&öc1öÿsôо=;>ß´>dÕò¥¾ çÍž9ý3§‰v6cÍÍLŒ ôéªê òž}ºª ì+»ßÍξ¡Òüß“Q£?Ñ×ÁYÒÓ742maec7~â”Ϧ»{Î÷^¼typèúÍ[wìÝè¤þ…ËLêç‘Ô¿U[×x»ù¤~;\ó›L/G[wÃ]Ž$õ™ nAôµ50ˆ´=@üBœDzH€¡ü?ç¾$÷cî¿4öÛ™ƒ-Aöe%EÈ~"°EÌþưÐà ÍØØÏþksºF 2ú&=A?MŒ>Ã*3ËÂQL²Fƒü£ ô‹BŸ˜×Z03È/$àçææäd³'''èøÉÂÉ+ ³(ûÍ-°l¸kÌç1°hYåØ¿ÇÆ~¥$öOŽŠÜµ}Køº5AË–,Z0wÖ W—ÉÆ‘]53e@VUWÂþì r_侺µÿ›ß)…¾ý÷Xô?Ö70263‡Qr˜àä2mæì¹ ù®\³nã–í»#£Ž@ê{ñÊ5U©ŸÞÎ3üIÖÒ;L¢¾RêcÀ(ôé$b|0“£ˆ'—™BòîäܯÃþh¦‚«Âå>Ù -‰{…ü,,¤§ÒÏcÙ/ö³3R“‘ýKÀþi Ø7²?Xûì õ³ß׎p[™<“ ?¸èFô/ðèç!úUDUÕè ò¥'õÂä ÎñCQè³yEÌ'›V{àgeeff0'33++à‡Ã}#ëV‹O‘f|ŠÜWû¿¼zZ$êÿȪÿðû5|ìÇÑØ?yôÐþ½;¶nÞ¼"`±÷|O·©Î“ím­-ǘb¡®;Œ²ÿŽ}6ÑÔ»ßÝ›OG‰Ÿ%ŠþP@_w8Ì’Á(cÓ1–Ö¶0Jήns¼|üV¬^»aó¶{†Ô?{áòw×¹Ô¯àR¿¤þcz7ZK}å»é¤9ͦþÝÖ–f}|qRóa³qñÀ2cHßÔ}EL"ÙaîSöùFÒ8÷¹Hêžý4 ØwRÁ¾e_’ÒØïg¿¯ᾊѧuFÑ×¢o®ýˆþI)úÅ¥² -@¿®A¿­×èÿ,mîÍJÐgC¿¡¾®¶¦ºªëŠ,ìYxŸž––Êž´´t ?+›,\Qqie¿Nø»DÕÆ«¯µ ôä Ê>qc¿Qû LìŸ8r0r÷[6†…¬ ô÷]8o¶ût’hv6V£MaUõFö?Ö>Ú†}6÷{î¾À|úýRô‡é1’Ì¢o?~┩ÓÝ=ç{/^º|UHئϿسïà‘§¿!©›œ–ES¿ZQ߇R_x5¢»AT¡@Zï4ßÔ³HÑÇQÌÃQÌÌHO‡a$'Ž! ¿ðÝI -¤EÀ>·0Âùì·±ìÃV!ûy<ûýè¨}½dÿ­~öûðQþ[êÐ7dз¯„þýsú™bôqŠyôŸñ%ÝÝ‹C_ø`egÚâ -ö¬¡NQÃ/i+ ?ÀOIN¾Éžää”T€݇ܧì×p)Œý/´­>”ÂØÿAû|ì;|àËÛ"Â×®Z¶dÑ‚¹³fLsqšà`g3Öb´‰‘¡¾2ûBöI¢ r¿gîKÌÇIÂ~@FIоÎ’…•ÃD'—i3gÏ]°hɲ•kÖ…Glßõåèã_ÁÔOJUN}üE¤¾¶Õÿ‰¹šç|ê“i$¯N[ØäÉIóg†‘œ””Tf üè~¹¼²ŠŒb}“û”}>÷ û-dkT°Ož#ä««*d¥ÅRöO"û;U²oÛ+öµÍ]ÿÁÓ+ôIž9uþµñRô›XOÛ;rý+ÐÆ 0ƒ>ú -سª -9c>ìY³”ä›II‰ ñpàObRÒM€ö-;¶­¸؇]ƒÄ‚ºÓ*ˆ}íÚ"|ç‚ò‘rìçÒØ¿rñÛoNÇ=‘¶uÓúÐà~>^s<Ü\';Ž#…f¦Ä>¬*î*²Ïå¾Èýîäçþ™À|:IÜ( zG„¾¾¡ ‡ “]\a”¼|üV‡nؼuÇÞý‡ŽÆ¨Mý{äYü{Ì Î«»ågX§ŠÔ'B¤¬¤BŸŸE2Œô9Ä!ð³Op¿ºFQ§”û û¯2û¸6¸5jØÏäØ?§1û0K,ûôåÈ=ßìg¿)úo2è`6•EU}.ÑObÑ/WFÿÑc5èk8¼-0½OT‡~U¥\FöŒ˜i…ä'&ÄÇÅÅÆÞÀðS÷³rróiíÃw*ê!°Z1(¹ØïÔ".êb¿CUì'Å]ÿîò…³g¾:¹kû–a!+ý}Î÷tw›:e’ã8[kKs3c#ÂþG<ûÿc¿Îc¢¼ÓŽgÓzl²Û¬QëíZ[kÛX‰–h̉F×s%Rqµ¢PQPTªVWYÏUë}¡rÃ=ÀÌÃ0Ã%‚T/TÀŠZÏZcµ»û<Ïï=çÑ6e6á—h¢þóÊû<Ÿ÷ûûŸhlYeî‹ð[§_òÏoÉÍç&IDßI޾3¢?aâäi3Ý?Ÿ÷Åâ%~ëþù¯í»öw#¹Kìß4g?×)g›œýé2ö)!¬²ß¥“}<–èw±…þ{ïÛ‡~ ŸŽè"úÕRôÙeõüªÊ®=ÅòB]vSчÐÇém‚ñ¥¶ªcmuª”Ö ÄÏ6deéõ™ìèõY‚¿ÀTT ËFì×caá“Bì·Ýá¾NަþOôÁãc¿‹ý‹ûeŦ¼lXWU¼224øð~h´Më׬Z¾ÔÇkçœÙ3¦âªŽsÍØ:„cßI`_Ì}›î¿âX1Ÿ&É*ú#>é<ÆeÌÒä©3g{x.Xô岫×nÚúï=ŽTÆ«Ôéúl£©„KýËv¤¾¼úO©ÏkÊ¡¡Ï #N#Œ#Ì#üf0ð BÁ RS{®^Èýf¼{bîßðÐ|uìÍ}Kö°Æþ·°5Ä~¾möÉÙÇ›£À>%„„ý®ì;ె~Wú=qQyôYúÓ ýE¯F¿Ð?'EÿŽýgö¢/Ï)úpO}È]T¿kmiæBÿÂùúºÚšªÊ -4¿Ð•äë3uépÒàWF†.áÏÍË/(„]Øo¼Œ±ßJ¸ˆIi¡Ëoˆ‹T—¶cÿÛºš3§K‹òs³tÚ”ÄXEøÉc‡öíÚ¾yã×_­ô÷õ^8πUuìùñˆáƪöÇUuêÉØçs_æ>;ò¿%’/7'‰¡ß“B‚þhBbÎÜù^>K—¯Z³~Ó–»÷ -‰ˆŽKJÕê yE§3õm^Â(õïbêßÄÔo„{g¡¡_È䇿ŽNÇ5Ào*$÷+¹«gC#lNÓ Êý6!÷9öñÿÜnö–±ÿŒgŸžTú}BöËO"ûéÀ~œÀþVÆþRûã¤ì÷ïdÿÿáØ‰~)úãdè/µý†þ})ú’Z±ýçÏ©©„±¥ÐÇ^Á£Ð?ϧ3¶Ìâ§§iµF£Ñ¦¥üY†œ\Ì}d¿ -KxØ[L®)Ÿ9ŠúÖcÿ¦û%…Æ=lkBLT؉£öì„D[à·dñBXÕYÓÿ6ÉÍuüØÏûüªööqWe¹oÅ}ô‹ÿ*3_ú4JfèôÇ»ºÑ,ÍýÇBo_ÿ•_}½qóö]{=“¬ÉÐçä–Â…±¶þ¤þu1õË^K‡«ÏqÊ«"¡T@B߈Ө§q„y¤“F£(kòJ˜Fˆ ,÷o6Ã@Þn؇¡4¦×aÿ¹ûòkÉ«Ù_ɳ?KÆþp)û=xö»w²ïxÇúÝyô{HÑ.CþJD+C?ŒÐ×0ôKxôinåè?ýè ¡/¢º -ƶ‰ý³úåe¥ÅEh~¶AŸ‰äkÔ©))É줤¤ª~p+Ù§Ecž–¿–X‹ÊßR—ÿ -?[±ãÚ•ÆŒ}Xׂ ß»O_îÖÈ¡?П4eú,w˜¥ÅKü×A?ìÜsàÈñÐHe¼J–™g*>UQcÔpéJ“õÔÑAèË_ ~ŒÅ×¾ÆÍ,õ!Bjªú8ŽYzGuj*L$ü¦fðcð‹wÏZÊýË”û¸?m܉dç -ÉÙÿIÎþ}Æ~Ëk±?Ïû}m³/Q¿“ýŽ;¿“©o ý¾6Пg~¨-ô›l£ß~¨ØDÿñ#†þ¼¡Â†ÁЊ]ÀãËŠ[2Ø1?Y•””˜˜'11)I• ðkÓ`Õ Ä~iY9ìYûVß›ùÒ¡êÛŠý;,ö/CRÖVWž.-ÌÏÉÊЦ$Æ*ÂO;´o÷Ž-›Ö¯Y…«º`ž‡ûL«ì÷íÓ»—±Û*w_¿ý2ðò¥æ³ÐôzúƒDô?cèO›éî³´lÅ굂`”ö‰€IJÑê²ró‹ õák ctM’úO õ-Õ§·òäÿ1æÅ -Á¡yÄkgF:H² -Šf‘‹œFpÆ*ä,Ëý+¸AÍ­pÿ¼#äþðøQÎþK;Ø)eÿ©ûð‘2c_cÆþ:Kö]Æ8”²ïdýÎØwcžú–è;‰èâ:q±DMôÏTך¡Ïì› /T -•˜)úPU0±U°a ¸bÕ,ô Œ`~¦v V, ¼‹‹¥Ÿ˜¤JIÕhÓuÄ>ìäUMí91ö©*rêóÀtˆúvÅþ%hʳUeÅ&c¶>]­Jˆ‰ -;qôàÞ]Û7o¤BóñZàé1ØŸ8ᯌýOˆý!ƒP¢IsŸs_ -¿ ?ï¿üÏ]dä3ó¥¡ß«ŒÒ€AC¬¡ï¹`‘ÏÒå«Ö¬ß´eÇî}‡Ž WÄ$À$ésŒ¦’2Lýó/]u´Ô·¢>L&Í%¤ %K}Rô $¡ ¢Qc‚à@²“€Ã˜LÓ˜ÁÜÇË'æ~ —ûW¯]¿ÑÜr r_`ÿ ±?„7‹'«ìKøT‰û»åì» ìvæf ÙÇ‹#¤Nöï´‡þŸý>RôG è»ËÑßm}F(4fÊ+Ñ·gV¹a•£û»[-Í,S.Š¡/1_š¬Jñcc”Êèh…B­Œ‰øÁ}5Ç~]NªXì3`nß¹g™•?wûíÇþõk°®õu5°­Ey]ZjR¼22ôø‘{vn£Uõ÷õñšï9göÌ©“Eö¡Ð† 2h`ÿ~ïBîû–î‹ð›Ó/_ ßÜ|BBÿÝ~ý2tØû~„³„èO˜èÏô½||ýáÖ¸qóö]{=¥ŒW©Ó2 yÅ0H5u0Gxk½eõ8†ú§øÌåÝ6öRXê×TUœ† -áÐת©Ap c`$•ʘ˜XœÆDU2»}feçe¹ßÐ÷O\#J~ÄE²3Ÿþó*öaŠÚ¤ì×Úd?ˆ±ï7Gƾ›«„}*}œ¢ßwïÖɾã«èwëŽûú úgCEô]Ý8ô©Îý «è—µƒ¾tT_'PøQåчЇa…¨‚ýjÄЯ­ÁÐ/)2IW,!ÄVDEFFЉŒŒRüqñ‰IÉ©š4`?×h**-ÃØ‡»„Â´Ü¢Ë >16UǪo3öa§Qì7]``[+O—æçdehS`W#B‚ïÿ†V50ÀÏכ؟!°«úчûƒè'É}Á}9ü¼üVNW3òyóùЇ;c¿ú0ô]ýÉ€þÏù^Þ¾þÛvî9pä8ŽRRŠV—•›_Tzº²ÞÉE˜#|%mÜ+q„Ô^ÊK õ…wr¹o`Õ•Hh&2#MCG©ˆb¦QÉgˆFtŸrÿlÝ9,ø\¿ÙÜJ›tOÞO¿ûð¡âŸ¹öý‰}`Ê$7×ñc]ØÍ BdŸb¿“}G:æè¿-AÿïÈÐ6|ÄÇ#GÑ¢ºMšè{úþoˆþ¿ýǸ{)$U+*D$JÝY1ô9óUI°aÊè¨Èˆð°°ÐÐÐÐаð€ÜOàØÏ†§†%ƒØ‡ƒ§¾N}÷Þý1¯¾eì?|ú¸®$aª*ÊJLÆl=ìjB¬"üä1XÕ[ƒ6¬]à·Ä{áü¹û´ªÎŸûïýe0.+Ë}rÿtŸ ~~&¿\᯺ ä³ÌÍg¡“—FBÿSý©„þBï%~k7À,}³ÿppH„"F)CŸc„IªÀW‚b¼~µQê?vŒÔ·¥>{%¤>N%¥~Yi‘ G’Ðg©øûuÕ•Åü‹f™IMÄ]ã  -7@\ƒ‚\¢‰‰Íh…Š5Z:ƒ%Ž”X¢´Ð¬ ÍÖ@³v²Ê*› ‚wA†t„(‹¦Ô¤25sι÷õ{ 8@’øÀ­JªB¾¼êû?¿û?IÈ$œ8Šc"À…_·~V`Áº“tGé~Û7ˇö%Ó4ø8éæI§çχÅ~0gÿÈþû"ûf æûoÍœ>u -ÄèMbÿuÎþ¸1öGüôG<¡ÿ:¡ÿ&L딩ӡŸ!ús¥è¿/¢ˆ£üÿCS*Ä´—å´Ààâ^JE¬â\iI‘0aɉZ˜¯˜hµ:*’(µ:à×Àœ¥¦ûg -KÊÊ+«/bÙ¯o€bŸÆŒõÿ[ÙÔÓ…ìô10¬Õ•åg‹òs2S“5±0ª -?¹ÌÝÍÕÅyÿž/>ÿÃöm›‘}Uk«%–f 晚Ï™m8KW÷u}_(ü?“_Š¿È=Ÿ‘¯g¾®èÏ2„$™ÀÒhfa¹ÄÊÚ³´~ã¦-Û¶úÎ.€¾LB¥ŽÓ$§Î9STZ^YS{nßaýíkTT}‰úì!þ§î!îbÚ¿®@©(/-.„Hf¦Ãæ‰-;ˆš¨"XD´‰ÉHÁ}¬ûy݇ ´^>œ¦ÎññcãÄæé…”ýŸ~Eö¿äìçœN?%°/×±ï„ìÈÙ_ÞŸý RöDZ?âg ô_ÑŸ@èÏàèÏ7³X¼l9GÿíŸìØå¤C_. õ,Gý» ýB¿÷ Oý.(TßB£ºßÚÓÕÀ‹þE(úegiÀ˜ùš$?*2B'<\¥ŠˆD÷´Œý<üðóUXöéÃa¾Ú@ý‡’fÉŒaõ_Zö»x³dÆ\¾³ZR˜—‘’”¬ðõòpw;ìâ¼Od-cébd†U¬û辺¯?É/Á_Ê=_B¾Ô|¡èC’ýÅK­VØØ²,ú_ìÙçìrØÍ]&÷U@–b5I©™Ùù…gÏUV_ i¸«÷ 2âU¿Ÿút#Nán>›ëë¨êC(K -Ï0ô“´h>–l"b÷ó ŠJJ¡î×èê>”˜§¶öŽÎï€}ú%žÐDÑÞ#©!ÏT_ö{a?>&’³Ùß ìï°QšÏÙŸÑ—ýWöÇÔ¹£§þÐ_ªC ¡¿Ñ?ÊÑúOžýŸ¤è¿` #úð»NÊhkK³Xôkª T•ÉËáæÓ|øa¡!!ÁtBBBÃÂÉýx YÆi˜±âRVöoÔI«%ªÿdT¨ÿò²Èðj‰ÃJÈ\¬:_V\›•ž’¦ ö¹>è¼ïÄþ6ª¶6+`V™/„a¥º-Mpúþî>À/È/â¯;üÏ$>ÏÌŸ 5ÿ­ßCÑ761;¡ù"ˆ o¯þA@ßÃËW¡ Ã,¥ddå””a”à>`gÄW¸½S¸§,E#^õÿ-½Rÿùs¶}A!¡gø^Kó݆۸}ÕžyÙ§}I&ÃB!•!¡¡XEþH¤–"™›Ïê~5¯ûwh¢î·ñ‘ê‹Ô¯Á>-ŒýÆþÝAØ?ÀÙ§,9ØõeÚÔɰ?VöGðô­ú ý×ô &Mž: Ð74’ oçÀÑßé´{ïŸHÑúφƒþ¿ôЧx‚rÄÕÛB¿£½JèSчNuîlqA~nVf:3?:*R¬ - Tà R‡€ûQŒý´Œ¬\¡ì_¹~ëvCS3|:ªßÕóèñ¨R_¯ì ìK”ùº¹©¡ž”©*/->“{:í”6>:"TàãéqìÈზ²ïho»rÅòeK,Í¡î›òºßÇ}‚_”_Ä_wØ_ñYÍó'éÌçEß‹¾åXWÚÚ;öEÿ˜‡—O€2,"³”• ¯0¿z„ïµ ×ñý“QSõP_¸¶|Á -•¹—¯êJ¨"…ùÐDúÑ`~†R„G ù~ŒdbrJTØ@KÊ„º³®Ù‡÷‡ -öÐ.‘ý~cõ3Øö2ökû±¯ð“ËŽuEöw;í$öׯq°[ ì[Z`062œÅØ7ØmŒý?CC–¡‘± ô3 K¨g+íÖ¬ÇA%ô÷8äzô¸Lî§&ú/~9úTô¡ÝR<Ûî·b>êën^¿ -EÿBEyýl¯$6^áa!ÁAŠ?:þþŠÀ p_©FöSÒ3³óXÙ¿tù~|sK+|{ç¦þÓQ¡þÀeÿJ`7>ÈL3Î*cælQ~NfZ²6NäïãyâØ‘¿0öwûÖ9ÚìZ[-±´0ãußÈPâþ¤‰~Q~þÂaÄgäƒù“Eó xÑGô­¬±?8®ÛÀ²ÄÑ?rÌÃЈŽÓžJÃ,ámÔb”à6î±Ûèî},¬^£¡ê¿D}~l÷jj¬¿…»“ªH¦2F æcQ@.á_ -½*î§gfIêþ•k7nÝ¾ÓØÉ„£ØïˆýA'kö_ …}x±Òˆý0‘ýýÄ>di#±¿‚±oj2Æþ(<¢ÿªý)ÓfÌ$ôM }+†þF}ý0B5Ÿ¡_; úB6iZúØHDô»>èü¶ý›¿¡sTôo\ƒe´º -‹~!ý´”$m™Ó¨ð÷óõññ–ãñööñõóW*9ûÚäT^öñͺz£îNã_¡R1õ{ñ½ºå(Pÿ%eÿü äLëWØ.g -ó³3S“5±jUH¿·Àþ`Ç'[?ú`ú5«WÙX[-]¼È|!«ûsf‹îKàçò#ýoèø'ìß`à3ñ9ù ÑüÙsxÑ7_´’d³jµÃšu>øh+lŸïæèŸðôñ -PÇi“Ó2)Kì ®ƒ(ÁePÕ׉?Â#]õUŸV¯Ûlõ:_VR}9E@?D‰Ec‰Ç" ò+ƒCu+hªX÷/ÔÔ^¾z~ŒÆ&¬¶öŽNX}º{èd}Š¿„ÃgÿÆ>ÍÖØFö}å2÷£®.öïÙMbgßj©¥ùÂyŒý™3¦M‘²ÿêû#yú¢?N@ÿ7¿%ô'JП·ÐúGÓ–mÛqP }w™ÜÑ.ú?òqú”ËÐïãý6ˆ&GÿúÕ˵5*…¢Ÿžšœ¨‰‹!óƒ0[r/OÏ“'OÊàO/¹·¸ªŠŒŽM€ï§²_v¾ª¾ÿV}cÓW ô©îQ¤þ@e_pæ1¼ƒ:Ù¬b½¼Žì4…yÙ©IšØ(UH À¾ó>UbfõÝÕ¶ÐÑ–ñºojò¶±‘è>~?“é'ûõÏïø$>‘5_4ßÈøm]Ñ_;£íêw1J„¾“>ú*u¬&953;¿°Dxë!J }\¼¾çèCŽ~ñª¯¯þ\}\½è †ËÐß¼ êg¤&kãcÕ‘ºXz˽ ˜ž^^ÐF Œ`(ÉýmRJ«û¥ç*ªª/}yÞÀú-'Ÿ­žÞGÀ>ý(C¯TÒNÅÆk0ökDöµÈ¾’ØwsuqæìoFöí!I°7ŠìOö'û ¾Àþ¸1öGæôC<¡OUŸ£?½ú¶ö8©›9úÎ.®nî2/_…Ñ×þïÑAè?{Jè÷öúÐl)˜ õu7A¹K5UçJŢåÂáò'òOÊ}Âþ; -ö'ÔG‘úcÑÿËdD ¯>o> ¯£o¸è³¿š®\cf›ºÅÑÅ ÑŒDÿ”¬ø,¢‘¢Eÿþxè¿ðL27Чd&©n8”ÃÌTô÷ݤ跷^nj¨¯©‚))’‘ÐÏqŸ…Ÿ‘éW#ø+5â=#>K>1>˜¯¡µPGWß„¾éÊÕkÍ-,­¬m7#úî^8KJègfçæÀ­«œ¢OÞÄÍ>D^Å03IÌËxóè?Oýþ>P³‹~€áM”`êg9tcÐóa.äÒPI)æÈލ˜Øxêþ?d&¹_xúÌÙ²òJÜ®æ–6`ÿ:²û5ˆì?P°æ§±ìÿÎŽ=SÚ±ße¿•²_ƲŸ–’”AØ÷!ìoúb£%e1eÿÓùóÔ?šýáŒépUœÌ²ÿ®œý‰Ø½ç-åÔ§è¿«@ÊÔýýO5ú‹)ú–ô}úÑñ I)i,úeýÖ—„þ³ñÑŒè?€¨ý~f²²†²£½„««©¬(;wæt!†þ‘ÃéÒöíMÚ æGïˆ  •ˆCD"!‘(D*… ‹Fö÷îK;€±ŸWpº¤ ³©¥½óXsû;UtìSið -„»ŠìãªvûõÀ><’üÑìC¡y¹»:C¢ÙÚl´üÜ|Í}pß@á>ü~F~ Ÿà/÷_þÿw#>!ŸÉ|…ù`>„þòUkÖ­ÿÜr£íæ-ŽÎ®€~ÌRhDT‹>^ºJË™KW'Þûè­ëÁ0êFÑ'ƒô‹jªnâ«‚7që[¸vÑAR,ËÇÔOߟ–èã`F„CŠˆÅ!äˆ%P#á‘;¢©û#ebîÈŠá;x¡º¶¾±©¥íJgWwÙ°Aü>x8üz؇›#e?'ëœýм9z¸9;~¹É†eߨPOg¡aaÊhößž`ÿõžè¿-GÿýèÏ¢èkéè³èÛlúÒÑÙÍÃÇŸ‡‹—”œvðPVE¿‚ÔÙ £ÿÛãøëXô’Ï#ƒþ]@'Ñï¼ÒÖÒÜx±¶úBy) %älV†¼§pµÂ¤±H,ðÉ‚…à~aWR2ÆþÑc'òegÎ6˜˜ð°0UNý±ì³±ÿãc²«CtU{¯Ã¨¥©±¾´Aö)ØÇU ðóöpuÞæ`o÷Åßÿ¶s¥)¸obld ‡îkjP÷™âgå'ö3ü3Øï|*>SùÔ| M4_ÏÀÈØ͇Ð7³ØwF;{‡m.nÞ~ÁÊèÍ=™š¼@¿¾d–0j¡i=fSÿg•HýßP>Àð&`DoߺAÕo¨«®(+)*Ì;žƒ©¿oo"3™¡’˜Ì`˜MøC9"‘â\¢ûIØ#é˜û'ó ‹Jί¨ª©ohºÜÚΰ_C\²{À>óhžüaö}1ö;•Ø/dØONJˆöáæÈñQÚJØ_¿nõŠe”}-–ýi -öߟ`ÿœç ¯öÁ´3è/^²lÅêuë ú[]=|8a÷ždÌý#P$§à;VYS×p©¹µ½Òª÷ÆÍ¾~ºf÷}˜Ò‘§Ã.Ús7í²ß¬`¿]Ò’`–BE|Ç›°og³qa‰‰±ž¶œý™À¾Ëþ{ì¿3úïFÎÜ?ÑÐÒôM(ú¬lìúÞ_„u–˜¬Ð’¢ßü*Ðÿ7Aÿ S³ÃÌ0ô÷Ý$èw´C…4ÔÕTV”AÓœ:q,k -k÷Îø˜(4_$€øÜÿn`@H؉O@pÒ3³só -ŠJÊ*ªë›[‘›oûúQSlìÿL¿ŠOð›HîA  <œ=ÝW;Ú.e?q'šT, âr|<¿Úîä¸e³ æ¾9äþr¹ûúº:Ú µÀ}ÿ¼¹êêsý`?âOø'‡üczàÏQWŸ;æk-óõ±óÑ| }s }»Í[·åéÃáò…bi$„}‹>|{»‘6zk|8üÃ£Ç ú*“úã©ÿD¡þw·o~CÔ/+ËÏ˘JNÙßÞèáRM>Œ&7€(€_(b˜û™Y9ÇóòeÅ%¥åªk/Â%¨MÎ>,Þƒ M`Ó˜›Ð+`¿wûE#Øö¹owW§­öv6VröûŸ|™Cù ’”%“ˆ1KF]ƒY¼ -= ÃXW]Y^z¶XVw<çhf ýRS`~0?ˆÇõçøùúúãëÇñàòƒC$aQ±_ï‚Ø?x8ëffiEU]üŽ«Ý£ÕÇÂT)õYöŸ>ebŸ²a>‰W¯´]ƇìËÙO…'&òyþ¾^î®.Û˜Ü_o†î/#îèëéjÓàGø©ü„~‚ÿlò`þ‚ÿ‡àñò5Á|]=¹ùËÐ|3yè;lsqu÷òõçñ…’°Èhøð&A.\W»{°g}`í¨FQ¾êªÿOTÿz|{/Õ×\8ZæÏÎÌ ¯ >†  æÀlúÁtúúá`ryxE÷£bâw’ÜO?|$;÷$ìY <›ªÚúFx8W:!LH_ Þº;–ýÚ¶ÿ™ý<Â~jrâÎØ¨p‰G÷íNövÖVÌ×®Z¾Ù×ÕÖ\€ìÏž5sú´©jS&õ ûï(ØŸˆýWÞRVI}DŸ¤>ƒþ‡}M‚þgK—¯ZkèÛÚ;8mw÷öƒ<ôc ú€~ÞkBHûSöÞÐ÷ƒ8ˆýÎ+m-MkÁµÒ’"€-7;ë0Ȇ¡³#B*Á½âù>Þ^žžžž^Þ¿?—²Ï˜ƒ?åÄ) §¼ª2“¨«@Õ7öYöɪ!û·à&t²_«Ä>˜“ŒæD†ID‚À?o·íN[Iî[YZ˜¯[#w‘‘¡ ~Íÿ²_çAQŸgÇÇM¦ñÖDñà5(UP‰Š‚€À.ì ,ç -È}(ž(¢‚ÜÁ‚ŠÜ‚ B`‘Z¨'Õb‘¯¬¢ª®¡©-5ͺÏ7n¡ÐçÙØÚ;:»I¼|üƒBqÚŠÆ@ý+WÁµë7nvýÐ拾ęƆ®þ“ô6Ñ‘úÏ9õï0õ¯5Ö×T–•œÏ‡_ %1Rÿà¾=ÒÃéágÓYŒË™N¦&¸¿;|ï>ÊýøÄä3éY9¹ù…ÅÊ*ªjëáM„»ÖÑ ûs7ˆØ§aH*öÈØoûòZ#±_BïWêéSð~Úì{ïtûÛ·mÞHì/×ÖTSY̱?“±?aûÿÖ˜©?SŸCÂDô«¨ij3ô7nFô­mÄn;½ý@?¥Ì@ôK."ú×¾l“¡ÿàU ÿw¬XôŸ>yü¨÷áƒ<†²ÍM õµÕ—.ÃÜ™“•žšœK¡¿'<48ÀÏÍwu;9:ˆDö°D"G'±‹›;Ü-?¸ZûGŽÅÆ'ÁïRtáRÕå+M-ðMnvËÔÿšsÄ©?û°I8 õ²@ë¢@“g?!x£05ƒ|½wº»89Ø (÷6oB÷õÈýåKµYð#üRù‘þyØý´Hz\ø7_*>#3_{Ùr2_Íß´ÙȘB_`çàäâ¾ÓÛ7 xwDäÁ¨èãq€~ÆPèß¾ÛC—ì,É¥úC«ÿ¦>üw@ËhäÆºšŠ‹%…y9™iTȇÀ´à»Ë‚{ÄÑ–#%‰;%‰PHXåþ Øž”4¬¼‚¢Ò²ò*… ±Úpê¢aˆ‹,6± ×÷êÙï²_…•OìÃØrØö%nb‘­µ•ùö­Øÿdîl`Æô©S&O”±?žØ;Êþ›Xã?iÊÔé3fÎúhöÜOæ/\¬¬¦èë®^èoÝnè‹Äno¿ÀЀ2æd¡Ÿè—Wqèw¼ôÿ&Eÿ™ý{w8ôÛ€´†ºÚ*:‹ -áf"jqRú»Cý}¼áZ¹:Ã¥²·³³â²µµ³9:9»ûØšûÑ'âSÒ³áË”^ª¬½r•Sÿnσ¨¾ûl§~ü‘=ŽÜ6á.É Ìö«ýbš…Ri‡¢(6ývyz¸Rîó-w˜šlã܇Þ×]¡³œ?ÀÏÉ¿PiÁ°ðGþ¹…€ûùð¿”râ#ù,óuVèræo31ÝaɧÐwõð„77$ ÞÜ(T-9U}»ØØØûÕcêX†~ßHBÿߨÔ_@CPY\ûE [±”úðèúí’žNO;[øgMâÌFQ¿€àPÊ}…’Rh‡°±Ê+kð¾µ´¶_‡ÊBöïËØgÑwƒØÿù¥Ùï–²__[ÅØÏ¦/sä`dDh ¯·ÄU,Z[š›ûkVëê,ÓÖPS^¬4Øÿˆ±?‰cÿýQößäý÷ÐÿÐW"ô—éú6o51·´ŠÄ®o_@?ÐMÀ:ãЯ­—¢ßýjÑïëGÿÏÏè>ü#  Žàëím-Z] B -ÙÌ´”¤,Y -}.¥àV9ˆ@|5-¸ïWËƒÕæ6¸$§eÍ/,)«¬­¿Úü?£þÏý[õ½l£àq” 4Æ>Ö~q!±Ó=Œ˜›þ>^Ê}¡5ÏÂ\æþZýÕ«t1ø ~©üH?ÚkÜÂÏè=€/ŸÈÇÌ×]µZ­Ì|s žµ…>÷âîÇ”O$ôó Ñÿ=‡þ£ÇOXŲ³˜É¥ŽXõ{eê·45\®*¿Ptî·0k%ÅŸˆf©O{ÇÓ§ÀN¦ªàÇYÔÃÓÛÇ?rÿðјXÜ£ô¬œÜsçq“ª/×76µ´Ò.ußbwŽGvé¾}Õì÷Ü¿{kû…ù89&Ñì{I\DB¾¥™ÉVà Œ}- UåEŒýgΘ6u²Œý÷†bÿmëøº ÿ.¢ÿž ýÉS§Íø€C‘²ª†‡¾¡‘‰™%_hïä*ñôÃýc± IgÒñ¢@ÿÖÝû=/ƒþσÐÿŽ,{è?&ôïß•¢ßÚ‚ó&påq.7‡ysôð -}?¯Ü¥ -¬ù<ž-ßÜGöݰ7ƒðûDÁ÷9š™“êWÔÔ76·Ždõ‡dÿû°UŠ7Už}ˆÒä¶)ŸFÌ}‘­€o…îoÝ‚î¬Õ׃à_©Cðk1ùUU”•Ñ~X‹ä~ï••UT™øZD¾ÎJÈ|½5k úÍ·â lE,ôñ½•–’– SãèÃa’¢O–ý0¢Rÿ…êÃO€êßFõÛZš®\®ºTz>ÿlVzJbÜñ£‡öcêûzÃù;Šìm¡Høp@y<>N!F‰ØÕ]B»$}ãN>“ζ©´¬¢º¶¾¡ ÷©£ó&D=ÄþdŸÛª÷­¡Ø§Ôêö[8ö‹9öãcapŒ  ðõòpu²ð-ÌLŒ€}ýU+}uÕ%Rö?Ìþ»RöGcÿõ­12õ9ôÇ1ôõkýé€þÇsæ}ª´h‰ªºÖ²ÏV®Ò_è›YðöN.^¾!á‘Éxýbý@¿“¦Í_Šþ?^€þ·¥ÃûU/W°Ì²Öæ¦ÆúËÕ„YnNVú™Ó§âd wÊÓà ͷÚðyV–;hYXXZñ¬B{,N]BÂöî?}¾PƹÅ+jê@ývPÿÖÈV û}ýìËßThŠì÷Da!þø:ºˆa£lÐýíÆÔûë Ö­à—Âòkj¨««ýÐýÈ¿lÁGø£ššºº†&‰Ï‘¿JOÍ:ƒõûÍ·×VÌ…~HØž}£¢ŸLHýîÛr1<ú#Týž{·»oÞ(¯^©­dê§%Ÿ:qäÇ=·vB0¨¥œMK¹*q¥ -Tܨì³yE¥epëê`§Ú¤ìý£©èéìÿô‹Ùÿfûíð†û49Â+³Ë±(˜]B|¼<\‰}c#Ãõë€ýÏ–2ö?7çc`ú´)“'M$õ‰ýqŒýwFÙkŒ|ê÷£O©èOAôg!ú -QQ×\Jè¯ßddljÁØ;ºxxúú{}02%=ël\TB¿©¥­}úß¼úxò8ÆúÑïAô»nvbÀ675Àé«(+-‚2} PæˆÅGòÍÍLi™™›[Xòø6À¾›Ó?hwľCGÇ%¦pêW×5^kmïø]ªÿ§aÔkÔ Œ}Ü0|$¹ýúúù3¸©½rìSí×û8)<,÷%n.Nàë}pßp#?ÿ -”š_[ í‡îWGÿÙÂÿ†?÷ZÚØø þ -$µ>eþFÃ~ó…vðÔºI¸Ð—KجœÜsçKäÐgcãÀ‚ø¾¯oàYzËèÿgê7_­¯­,+)ÌËÉL=‹H†A{㦋hÓñ€š›Á27ßÇÓšÜïß+éP”œš‘}÷êb9íÔVûõÀ>ݼáØöò ˾ÂabìÃÅóT@ì'ÆŸˆÆoàãéîâh'àY˜oÙı¯©®²dádÖLÆþ)ûã‰ý±£ì¿Î¥€þXB¼ý  ý™ ý… ý¿Ñô·›îàÙØ9º¸úÁa{`'úXgЊèC?}öèÿ4úOŸ<~ÔûOC¿󵡮&ÍÒ"8|٩ɉñ±1ÿb¿Nƒ¢Ì®0WÍ^3UqßfFÍ}_'î²tÝ4tÓ4«²*K˾È* ( ²*È* - -Ѝ - -‚c’2fʸMYN¢V*V,SɼçÞïënQgt¢NyIÿûŽç<ç=[R’È1ôùHa¢lTJ¥5{J•ZÃb§»§¯6(42&>)5}[.>©¢º¶þÈñ–¶Ž®®þõ×Týþì‹·›Ô°I½ÛýnÆþñÆÃŒ}}¹hGF…‡i‘;Åz‘û -¹ÌÜLbj ø—/[Âäýd?ð‡þ†?Ì£„ðñ‘òŒM)æËzóÝ‘_ýµABÐ7€¬JY‡}ÃfÒ)öøñk…þs«²‰Ô¯,-B4ÞºeÓÆØ¨pŠúÞÂ¦Õ “¨Ð£JÚÓ–ú“Ü÷ôæq?*&~ ÙÒÚÞÙu®ì åºy›-É¿÷gÿÙã÷“ÙçâÀþªò’Ý;·Ó'}|’Ÿ‡Û*G•ÜÜÔhù’ß.˜7{Æ´É"û#G :dÐ[öÿo@ô?Ð ±°H!èoÍÊÍßµ»¤¬ù¡¾¡W£€þeôïrÄ„fz,4Sô_õijÔïíî„ú‡ì«,‘Y›“b"Ãõ}p‹®r²·£Tbm…UX¡?•6jýšôÅ=I[25M,XeuÍÁCGŽ6µ´žîÄð‰»v]dÿÞÎ>Ÿ¿çÀg°¯Ï¹zEöë`öJ -é›h“}­¯‡ë*ÊJfÆÙŸ;kÆT°ÿåø±Ÿqö ì4 û¯ZÉ_ÙÓG}=úöEÌgcÇùõÄÉSgÌÑ—Y©lV¹z ‡GÅýŒ¬í; Kʪö¨×£éê7§?ý÷GŸ²Æïoß¼®C¿÷\Wg{k Ń5}FX*%×Ȱ` -úžî®.΂_ -K¹Lf'“É-Ö>W¯ñôñÓ‡ÑW¥eæä–”ï­©k8Öü¨ß?ì?Áþ½'Øïí>ÛqúTsÓцúƒ5Õ•e|Qò¸MŒU)ºïhô©´VüfRÀo´R ö/^´üëþÄK8ø+ˆ|©‘O•Vkìuæ‡F ¹‚0}!º’aõ G›šOî8ÛÝk€þmú,¹ê›é¿¼™^=úÏ£þE¨ßÆÕ¯Ø³{gî¶ôÔ¤øèˆ@D}ô¨“+5õ({”Lx0Á=ºÆƒâ~Phe’x}¶'Å’Ñq„ù»úØ¿öï¾<öœŽ·Eö1Ýœýb¿¬¤pG.­20a`ßÛÃÕÙÁV¥™™¬\¶øÛùŒý _ûcF>lˆŽý‰ý÷Dö߆ý—ÿú¡ÿ^_ô‡ >rG¤©ÓgÍÿíâe+M¤2…ÒÖÞÙÕÝÛWD<&oÎÈB*.úµh;†~·ú· ÂÙß‹þc}Ðà~ è_ãè3À:OŸji:Jè0–[ɯ$ÄֈР-}àEv±Ì*ƒ]fR©Ô Éä˜*=f -#“@L~A±Ný³=^sõ„ýG?ƾAÕhUÒ}TZ\¸3»RRB\tTxhðzrßËc ö¥£p$ÑÂüÊüFF+W¬Xü—-eг‡–/_!€/‘HÍ,d"ùvŽÎ.ÀË‹Ì_¿xÐßYX\ZNBp=ÖÔr -Áè_ꇾØÍôêѪú·n\ãêwu¶µ?R_[]±@f¦¥$ÆQ,öCÔ_`"ö¨…9= *?‘P:÷C±+é>ÊÌÎcUÏ£“ì<:Oì_!öÅÜuホýG/Äþ§ãÎ>]Ž” j÷U–ìÀøÑ… »lµ³½­Ra!åìÏ™5}ê$ýQ"ûŸ|ÌÙŸ³ÿÎ[ö§GÿŽþûý?ÐAè#ô§LŸ5G@ßB¡TÛ;¯v'âb’7§oËÝQP\VÉÐojik?ÃÑ¿òôpöBèßú·€þwWÑqH­=úÔz`ÿÞ -¦WºnS"2kxH`€¯ Q|žˆ|©Ä”= ¡V*µÆaßk­`HD4¾+#;ŸUõ¦©ß—ýÇOcÿÒ…Þsg… ép]- -‡m‰¸Ê¥¥nJLˆŽ4pŸ~ÀÏb(]Jý&ÆÀÉoû~066áàc­ÊV‰|[;ó ÌŒŽMHÜ”š†ÐŠ ¿›§ÖºÃÇN´´¶w²«è_ýG£ÿêÿž_ýò’ÂüœÌ-›(P*F2±µQ -MŠ£„¬†Xš*:“Vá"õ^ç¿>8,2:'RZ¦p!aY¢nÇ‘»ÚÏtõœ¿(°ÿWÎþ`ÿÕíáKgCH½Ô}­„¬«­®,-.ȧìG†‚}/÷ÕNöj¥¥…ÔxÅÒE çÏ™9}ʤ _}1îóOÇŒ1|èÁƒXØ×±ÿî[ö‰×ýwú}õþPBÿÓÏÇ}ñ¡?sμ…‹–®0–ZXZ«íœ€ãº€@ŠÄI©@™¸´²º¶ŽÐo%ô‘ÎÐp/ýG:ôïs»¾¿uC‡þù–3š7Ð]Ù™H¬ã¢#Â×û¯óöX³Z?NfRÑ*#¢ ITŽ‘²µwrqóôñ[õã“R3²òv•Uí?Hê·¿êÿ4ö¯ûÏŸë:ÓÞvòÄñƆzIUå{°0ósQ¼-)ɉñ±Èý@­¿ïZoOw7W¿Fm£"ù-ý‚M|‡¢šl•U°ŠÀ—3ñU”ò‰|W7wOïµ¾þÚ@n~|brÊ–ŒÌlôaWuÍA!³¯sç }¯ÐüÚ¡ÿêÿêw0õkö–—ägoÝÂt ô_ëEQ_ú”ô© mOº–(ïÛÚ9°¸¿ÖO±!WRI»vsöq#8‰u©«œ°.ïèØÿçKb_h¦›7Ø‚ýýÃu5`¿¨Û,=5)^ü0';µµ¥¹„±?oöÌiS&~ÃØÍØGØØÿàIö_±•¿ž7 ú1ô3hÈÐa#FŽfè3qÊ´™³9úsKk;'–ˆC#ÉÆôÌœü‚¢ÒŠêä Ž~GÇåÍþsú"è?¤f{ôäâèC®ÈÕzòıFÖ}€«çeÖÖ´Ôä±"Bƒ´~k½ÜÝô5j3ÃdlÄr)%S#cS ±¯´AØwu÷öÕ‡oˆKLMÏÚ¾«¨ê>Ö|êPÿ öÅêýëIö ‹×ÑFgÒ‘C¨Å}”//'kkúæ”ä†î#ð ð;Økl™üD¿¥œð·ÿú‡?Á½Ü’ÀgâÛjìòó Íߘœ²9}kVNòjIYÅ^&×ѦæSm,±^â‰õ:O¬¯?úÏRÿ/¤~OWGkó±†:¨_\—±99>:"d½Ÿ§›‹£-µ©¹T‚.5.'cÀof÷Ñ¥ˆû®k<}|C£bâ“°3·å€}œIؘ`cxZw%ýYÏþßîÝï[¼gÿØgéë—wÍa ²د(-Ú•—“™–’D_öÙ—ÙXËÍ%ÿc¿¾ƒšNÓŽÏÝz«³;sg/»–m*vº QªTé= %ôÐ tB¡0HA@lØlãíy7WƽuÝÑ=ï›sv{ž÷—Ä€k[Ùœáq ü—Ïûù}Ÿ#43#Ý}{tÔì¯_·fõJû+沿û yž§>A¢¿\þJ -ýO·lôuöìÓ5021£±±wtq÷òƒ ŽŒ¥‚¸¨´¢ -ЏÐïƒår#ãÆÍÛT!úýiФÎÕûª\½ Ã6>:<ØwRÙÙÖ,¯«•ˆËEù¹Yé)œvtDX0ƒ„¾«³#šäÓ,ÌñXXÐ[µö\0öÉ“˜œ–•W$UË[ þÈ8¨?}ó΢WÿsÔ9ûÚ‹$ÚÕ©‹çÎâKs s¿µ ž`u¥¨¼´¤(ÜÏHKMæ$Ƴc¢"à üôÀ”ß›ÐOìwqqvÿU>;ïÐ{¾7ŠH'ä‡GFŰã9É©i*óKËEUÕÒ:yS+†~ïÀÐéÑñ³ç.N]…~¸}÷Õè“iZTè¿Výû¿×R¿³­©®F\Iœž’ÂÀÔwuô­­pLi4Q ©:N\Ý< ÷éÌÐð¨Øø¤dH¯¼Â¡¨ª6%Œ/X”FÆàñ]¾z}o"Åþ7óÙö³Ù×^ÏgÿòÅsÀ~ßÉ®Žy]M%°Ÿ—­~¡úy¹»8ÚYöõu÷íÖÙñåçÛ¶|ºiãúµZì/Gö—-±¿ðçWÚ©¿Œ¤¾ú«Ö¬]¿q ÿù—;tvï; Oз¶stqóò d†FÄÄs°‡a¹¬¬Ý²£‹Bfm>úçÞÓw@çìé?žPƒ†èÿñˆþÌôÕËq±DôO(}YM•¨LP˜—“™–‰ -eÒ|½=¨‚ó‘|³C䘙™[Ѐ}[{çãÞÔ-›–Å/*IdòV…òåêS±¹øÔÿï‹OðUìã„]iâÌÈ©Á¾žî.E[Kcƒ¬VR)*Óvƒ_0“DÉôƒýîîÀ?¼ðà7ø…xàñƒèÌ`ù˜ùÚæ—‰*%µ²†Æ–6EWwOßà©‘3“«ÏÑÿæÕè¿Çê7ÖU‹…ÅyÙéɉì(V0ÝßRâÐ'ib†ò„vXå>É}ÿ F+2&.‘ËËÈæ +*«¥õÀ~Wwï>AÍ[“b.ãÃGß?~òƒ6ûot_ËþCŠ}¸Œ·gUìÃUìîjo›XY1ßh1¡Œ@_/7;kK‹C õìÝ­³b°¿ -Ùÿø#ŠýßPìÿz‰ýd>7…—ž™›§6¿FV/oníèTbèB©^˜ºrmzæÖ’ª¯A‘¥þ[©ßÝÙÚ(« ‹ò²Ò’b#ØA~Þî®Nv6êA555Ð'æÄ}È'W7Oo¿@zpXD4;‘›šž•[P\Z.ö[Ú;»{û±À&᪖%ê.ûÚò©û0JwoÏN#ûã£ÃƒpÛ!ÀªÅÀ>?+,2¡°Èxº9;ØZöõ€ýÀþÖÍÀþ:Â>‰}`ÿCÂþKì/èyý}’ú€þêµë6lúdóÖϾؾs×Þýzú¶PÞ>Œðè¸Äd¨áBA™¸ZÖÐŒƒ68<:Ž[åô,© -ôŸÎ¹§?} XOxòø{2dúЩ7ý ¸TªÐo¬—VÃZY\ÀÏNOå&ÆÅúŒ@?oO }ÍUñð41Eö­l쨯G‡¯ÏIÍÌ-TH¤ò…²÷Uêÿg‘©ÿ¦ì?Bö5ûÒ,Nûp;Ûš¤Õâ²’`6™èðz€çqçc¶V‡ÍM õöïݵsûŸmÝüÉF`õ*ˆ}dÅ\ö—Ô_˜ó<õµÐ_AÐÿíïú ú_íØµg¿ž±©ù᣶ǜŽ{øøÓCXQl@?3· ¤L,‘64·u*{}ˆ @ÿÖÝ{pSÕ36}2boƒþ?‰>Vê×÷ú©“€þP²³½ЗˆËK‹ós³ÒS9 ì舰`z€¯—ÇqúG-Á|¸IÆF†ä#û‡@ì;¹zxû£úqI©¹‚Š*P¿ã=SÿÍØ§ž#lLþÓ}ò 1÷/ÁëslôôÐ@ßIe—¢ ܯ#î— Å…ù| ~„Ÿ“˜€Éò‡³(ûƒ™Lºêàg&3˜òžNćÈW“™ÏÏ/,ËÕæ·´+º”'û†NŽMœC­¦gnª¸úËß¼©‹ý·P¨¯[Ñ*—I*J ù™>?áç¥$Còƒül¤ìGüYaaa¡š?°{ðÁg£øIÜä’ŸÃÏ'™ÿÜü64¿·hxäÌ„þ”&ô+¥o¿ƒ­ñÐ_,€×«éüÄÈPŸÔ—J*…¹™©œ8ŒaJEH} -}¨}r T“j£jwÌÉÅÍÓÛ/ŠŒ‰KLæedç–EU52È0ʼn“}ÀþØÙó—._›ÆGI±ÿ`ûÿ~wöÿ9‡ý¯ïݹ5sÙ95УT´5Õ×ûÅp!a—‰dùy»»:ÚÛ¥™™ýŸýúŠúÌã8>GLr“ü{‰-6:,E@=; EzQzg]ª°ôeuiR좢ˆŠ(ûE—èY¨¨gÔ™$we&÷ù>¿ß -Üé¨Q'a†çvùoŸù>¯çýêéh©«Îž1}êäI/a±¯2Ìþ{Yýè«pè<ý±ã'Nš9 èË‹·Vm£²8xøèñŽÎî³þ~ùÛ BÿÙ{C…úèáƒèª3]§OÇs²yﮦíµÕeEò|iVz*fL†!óY»ÚÓÝÅÑÎÆÊ‚…þf>Ätuu=¸Ã´`!bßÂÚÖÑÕcõ:_¼ebÄÉ’¬&2$`ãºÕ®Ž¶Öf”ú(}6¬˜V>Qæ™ Q0¬æh{'W¯5ë6ø†„GÅŠS$™9y…ФX}ãÎ=ûÁþ±v¼œp‰ÒÃéÆÍ[ìÝÄíæïaÿ×—³ÏNæ=žý«—/ñì·Ø·«©¾¦²¬¨P–“‘š$މ - òÛÀ~¢~âÒE Læ´5ÕÀþ´)`cŸÅ>Øÿd˜ý÷¸úSú|ê5zì¸ “¾œ2í«™sÔ4´uõçý¥¦ÔÁqí¿ ÐÈqRjFv^aQYE ªbß–V†þùKì)©œ­=y9ú¿þôŸFÿпpîë®SÔ÷ïÙÙX¿ è+ -e¹™’ÍIâØèˆ@?_ ïáêdSdnÊBßOækkiijjjiióìSì/7·´±wv_µv^3BqÔ/äÕoZê¿!ûØÐ¾û÷zïÞ¡Eî_f¹ß=ÈýÛë¶UW–—• ø óóþŒô´T^~±ˆÙ/ŒŽŽÿ¸Ø¢OQQÑÑBa Ÿ?5-‘Ÿ—_ˆÌ/)+¯¬ÞV·½qùÝ,ô )ŠÓ;w{ïáÑÈêôÙ«ÑWNÓ½ïÜz+õë™úY’dqLD•°‡‹ƒ­Õ -S¤þ<†>Š–6›U¸olB¹¿ÜÌÂÊÆÎÑÅØß#JLIËÈÉ+ØR²µ²†c¿¥•±[Ê=ØÑì{öÓ/4LϰÏõØ¥ógºO·km9°wWc}MEiQa^6ZL¸iÃÚU.¸Ùè7‚}}]m µÙ3¿š6åˉ`ô(Ä>±ÿ×Áìÿe˜ýwZÿƒþBÿSý/F3nüD†þl5 -]}Cãù —p }6}Qâæt ¯(­¨©kÄS’ÍV×™ó4ZtVqTyôŸ¿j°ÞýÇÊž¸yƒ„PèÒöc/ЯÜZ¢(ÌÃS2%Q‚ñZ·ÆËÝÅÑÞÆÊÂl9ú†z"MM uu M¸öç#ö—™Y®´wróÂÍõEP_:TÕ=ûÜ=úøaíiÏí[ÿ¼ÞŸû]§;Ú·µ>4À} -þ’"…¼ÅŸ›•™!!ù““Èþx±H$Š‹‹ÅÀ>ÅÆÅáŸâxxŸ”¤?+'—*_®(*¡Ìd~kÛñöŽÓBDÝîaFáÑÈ"迵úÅP?-Y,Œö‡ˆîÎö6–æË— õ õY¡Ð¸j R´iXõ çS¤,3]a¹ÒÎÁÙÍsõZŸÁa‘BQB2jLZ°¥¸¬²¦®aÇnê±cídÿÏþ³÷Â>KŽý^¾È¾û]8›­‡š÷îl¬«®(UH³Ò7'Š„ˆ±M>Þ«Ü]l¬VàGÎ76Ô×ÕÒPåÙ?nÌè‘Jö?%öGû*Ãì¿ãêG_…CÿãèäÐŸÑø.èÿ2ý>þyý;š« gú­-„~C] ÐßR—‘–’ ÂK28M±ÚÓÍÅÑn%ÊiÙúúÌ|ˆ¯Æ–:±¯+ЧØg;¨ïíã õ3¡þÖW«ÿÓŸXýW±þCì³Ü'ö±«÷èí¡»”rÿ -—ûJ÷_ô~}m ‚Ÿƒ¿°@FÉùÓA?ìgø'&&$àà>âÄ=¼OM“øÙ¹Ò2¿¦¶¾AiþaÞ|.ô¯p¡ëNOï÷1I„>ÒOCý·P¿êW—Bý$±0<ØoÃZ/7'û•f˳ÔGék±BÁ¬ª¿ˆC#“ù /55·´¶û«p0ýƒB#…qñÉ©éÙÒ|yqYEµ’ý¶<ûWxö{ß'û?+G‰Î'cÿ»kW¾¹xŽØo;r¨‡³¶ºgSš%IIˆû×{{¹)ï6°¯§£¥®:{Æô©“'M?v0ûý±¯2¬þ;¬èÔþgŸú£ÆŒ?aП1kŽº¦ŽžÑCû4 yðsH|DþE1#¿ª™ßдs÷€Î?Õ ó)ô¯²Ð¿y›xºß÷ó‰ÒÐ@ÿ­ÔobêK¡¾Häçì¬-L—.¢ÔÇÔŸW¶ú+…§‹–,7³°¶±wrûë}ý‚B#¢ãâ“6§ãpÊ‹À~íö¦]{Ðñì8ÝMQvåÛÈ>Nè}ÆþuŽý¯;;N´A“íh¨­B’åçf¢Èâ¢Ãƒý}ׯñ¤ËÍ’]nFÿ²__AQeiÇk-ËÙ§PŒÄnh"ˆ ‚d$(HnFAI -’s$G%6QZD„A "a)†‘ÑÁajõefvöi÷;çÞÛÝPŽã*S%Uœ*«ìGn}ßïü¼¬4³¿ØØŠÕö·ð±¿ûŸx©O¡¿ÐǩѦЗ‘WÕÿ8û¿pÙ_þi ݧDîÃÇxñÜJ¹ÏAî³ê ø«*0üùy¹¬l? ì¿ô‡s‹<èÿ ýíxðƒŸ†Ä‡ÈÏË/Àäã̯k`#ó9`~72ÿ)˜2A‘’¡8-¡Ð'Ñÿe} ÿ ê òÔÏõã@ý _Ï çlO›èA«©‡ŠÔÀ¢ƒ3æeÊuè]}#SóÓ6vga9½‚‚¯ßˆ‚&KÉÈÎ…(Cì7!ö»W³VtyíÙ‡9B+:ñbtˆ`¿½…]w¯²´0Ÿ•‘’Èôõvwqr°E·›¾.ºÝ”*ÊËHÓ%ÄDöìÞ)¼]HP€Œý ö׿|ý¿côÿ±UPÐßµGDL‚&-#§ªÕÒÑ346?mkïäâæåËôoDÇ&¤d°ò K+ïÖ5¶´s0úC£ÔH-èÿkз -}`iøÙÀ“^T­M µw+ýÜìŒÔÄÛ·¢n„]ògx¹“è›èë?vTýˆ - -}è&Ø :F£IÂ?€­ľ2ñ¦12µ´±wvõd0ƒ®­wõ?ý·KoˆÜŸ{93=59>ö|dèÙÓ~pÿ1á~k3] qQÁ?‡¤ìOINNþ¸~$%%'§€÷ø,$þ‚¢b’|œùÍ­`~'Ñùý`þÈó±ñɩ陗sóX¦7ú+Ñÿ÷:@ÿÓÕo#ÔÏõ£A}&¨ïŒÔ7:yâ8tŠòá}rbid§ÈÉ+B§(«ªiÓÖÑ38eB²ïæés1 ðêõðÈ›q )éYÀ~iÁ>ç!—ý)´£ kÆþoûhKáÙ¸ˆ—tjbltèé“ÞöæÆÚ»¥…yÙÀ~lôëW/3}½ÜÎ;ÙÛàë =jTà•“‘¢!öwíÞ&$¸•dÿÄþfÄþ¦ ö?ÿpÑß„ÐߌÐÿ†B_@h›ð}©}r -pÃ\™YÚØ9žwóbø_¾zÐONÏÎ+,‘jlnÇõthtŒ(„þ?ú¿ý5èwóÐ/º“›ž’w3êÆõà €‹ /7ç³v6§ÍMŒ ôtµ!›T•£Ð—• ¢IJJà#)ICìËAì+¡ûMWÿRßÉÕƒÁ Dê'rÕç<ê}²ÞÔÿcöáãâ]%Ýö¹¹_xjb¥ûœŽvüõµþÊò2¿ÉOП•™™‘‘ü§¥rüHOÏÈÈÌÌ"À§Ä/+¯Dä×Ö7°›[ÚÚ;8]÷bó‡ùSP¼ÐK™Gi ÿ1õ_/.¬R¿ÔOõï1ž®Îö6–¦§Nêjkª«*Ú¯@d -Œ,> ?¸/+G澆¦–Ή“§LÌ,­Ï88¿àéãÇ ¼—œž•ƒØ¯®©g·à%í†4›š~9;Ù_Zcö—¹ìOû#$ûmÍ µÕ%yÙéÉñ·¢Â}†ç…óŽv6–fF'àUƒî7¹}R4qѽ»1û|ìóbÓ†úŸuøÑ'RúÛwìÚ½WT\RjŸ¬ÂþCÊ€þñ(€­íΞ»àÉð¿t%$<ê Ÿ•[PRQ]ÛÐÜÖA ?26ãD¡Ï¦ ÿ¡aúSô_“èOqÑÈ!Я(ô³Òáùx3&*0ÀÏÇÓ g¬ýS'õt´55ÔT” ô ›ÐIHˆ‹‹‰‰‰‹ƒû4:,‘<õªÑ74±°†Gé‹Ô/"ÔïêYêÿûü¹ÿ#Îý…ù¹Ù>÷ž|Ûû¸» {+†Šÿnue–¿è'ìÏa±XÙÙpP~°X99¹„÷…„ø•ÕwQå7°›ZZÛïs<ìêFæð™?3;7¿€CÿGþЧÐÿÏ×þÿ£~¡~"R?ÉðpuÂêëëâ>¸ŸèÈq|ðÄ’ïS˜Ù#êGµ`A )ö=¼ý˜—¯„„EÆÄ&$§eåäò±ßÃeæ Ø_9L¿ó؇كه'ãøØÚÓGmM 5ÕåŹYiI·ý+—.úx\8wöŒµ\pÀ¾úe¸àd÷Ñ%û;wlß&ì#õý-|ìoÄþ眿qÕ§Ðßècõ· -ú;1útiYùý‡”TÕ5µu!%,¬Ïœuvõð¹xéʵ°È›·“ÒàõX\^UÇŽÎG0MÏ0ú3ýÞ¬Fÿ÷/C™@DÐïÃOÇv}M5B?'+=9!.&2<äj ÓêÎ4°(UˆRAÔÃʪjG×Õ742µ°²µw<çêáíë¶4":6>9-“•_XRÎÇ~?°?¶æìÿJ±ÿóòÛ%x4~??;3=9þØïëö[›êkªÊ‹ïädû7#îAšy¸:;œ±²0¿kà†“‘¦KЉûÂÛ…ÈØß`ÿKÏ*ô7cô©ÔÚ.¼s÷1 º´ 䯒ª ùkneëàìâîíèÇÄ%¦fÂÛ±¬ê^=»õ>‰þóñIr”Þ,½]þ–£ÿ+FOÒ—¢??‹Þ€þàJô ós²Ò’bc"ÂB®\fúzúŽö¶V¦Æ†úÐGÕU•!šˆÐGæ‹ŠŠˆìÝ»WDDD±O'Þ5Jªð®Ñ34õ]ÜAý`Bý¼¢òê:özUÿÙlj†—•—ûÐi?,Âí -_ÜŸÄî?èï#‚¿“ƒàoif76Pò#úÁþÒ’ÄÿŠSŒ´/-++GàSâ7465· ò9Dæ÷õ >ÆæO"ógç¿[xµ¡¿Ä }r’¨QúêÑÿ/õÅ?®~O¡~V?* Ô÷õíúzÇiàþ• iäТ‰åKÈ}˜Z5cÚºz\öݽ|ý!ÎB#¢oÅ'¥f²ò€ýª{uˆ}´ªýƒC£8ÐÖ„}j”ˆIzO±–uæŸÀ>ÚÕž®÷[Ùõ÷ªÊŠòs2Sãb"Bƒü¼Ý]œlO›£+?lá¥Iˆ‰ìÙõ?öë<ª§u àøb9Z÷/iNCiÔ<(Í*J©”¢ðKs¢R”R)RI§DˆHe §Cudh4ètˆC¦ÄµÜuËZ×Zç>Ïûî½»t\çÞZt—÷¯úý·÷zžÏþ¾„ýI û"Èþd<Çþ—†tLýñýï&Šˆ°è‹Š‰KJÉ úŠ3ç(«ªÏÓÑ72úµwpvóX±Jà»ÐÏÈÊ9PPX„£TUs¹ïmí]݃Ñ3âèí±ó6AÿgýcGÈÙ·g÷ÎíI[·lÚ¾.8Àwµ7EßÎ*b¾¡¾®–&4L„>¬’?Àì+‚úäg`¼ÀÂÆÞq)U?œªŸý§ê¿Æ'üêÕ†}vWé² -s€ä>”ܪîÝíáÜoi¢Á__Ká¯DùËYúÁ~Ä¿èøqð¾äà_ðCrÞ3àŸ#âWRòkëiæ7µpæ÷ܽ×ûà·‡hþ3œ".ôé$q£ôµ£?Œú¿V¿óöMªþ¹²“Ç -ò¨úÑ ¾ï*/wG{ËLþBê+²SKÂC‹¹OØ×Ñ3465³´±]äèìêî uæº!2:6>)%uWfVNÞAÂþÙóÕ£Ä>³¯˜8EÏ8ö1Ñ®7Ô_®e-+.‚@ËÉÊHÛžì‡û |Vx¸:;ÀÓRöÕU”ái ûR’âb¢<ö…±ÿý¿z†¤þw$õ…èKHÉÈÊMU•UÔçiëaüÚØ98¹º{ùüƒÖ…GÅÄ'mOËÈÚŸwèhQqÙYè‡Ëõ xkô{(úÏú_¼|õ—uÐý÷è?‚þu¸4RôOôóröeîÚ™’´5vSä†uAþ€¾§»«³ã";&ScC=‚¾úò@¾,9à>°±?‹ùÈ›õ—yùø†Rõ3‡ªßýk/§þ?Æ‚úCÙÿÀgŸyѼÜG÷Q÷¡÷ï û·Z[0ø¯50ð×ðäGúËJKK@ÿSÅÅð`ü?•””‚÷>OüŽ|Ìü–Ö[míwHç£ù¨ùƒBÿw }!ú¾rôÿƒú½©ŸMÕ ôõñZ¶Ô·õu´4TçBêϘN§v -™YZù©ôŠ:GYEMöÔÀØÄÌšc_àº>2:&>1%5=–õàáB!û £Å>É`Ÿ­´»=Ýí·Z}X×ógK‹=”·/Z|LTøº ¿5>^î®NgìÕÖt†ÂT9Y) ñÉÈ>¨ìOä±?îûé >Q’èd@_ÑŸñýl%5M‚¾…5Ü]Ü=½×øÁ½qs\bÊÎÝ{aŽŽ?Y -cô㥺†ë-·Ú;»{îöþö¨ï‰ýAÿÃH ßBÐÿ©ºòÂÙ2Dÿ`^NVæ®ÔÌ‡È ¡Aþ‚U+)ú¶ÖPÆzpsTSQžÃ&“쎌Œ´´´ŒŒŒ,²Ob¿rpµ1…çõ=}|¨úiÿêÿûèþ»¡¹ÿ±û]í$ø›øëxò#ýåçÿ3§Oƒÿü?œAîÁ{Ÿ'~C~c3ÉüöŽ®?3_úôÎ8FÐV}gFý_»‡ªŸÉ¨àëãIÕ75¦ñ;‡Ì-3¶xdÉÔÒÜgØ×502UµµwprY¶|…À/0t}DtL\brj:4Z.°_Äc¿qdغ³dŒþNÙï{ø ÷nÙØÆkWê.ýXqþLéÉãGæfû)‰q›7n \»ÆÛs™Ë’ŶÖð¼p·Ñ„» |å}iÊ>ýoìÿ‡C<¢? Ï¦þd1 IiÙ)òÓ¦Ã0ÍUÓÐÒ5065·²]´\¹zm`(A?9uמì\¸3ž,9S^Q}©îÊ5œ¡Î;€þƒ‡}8B°¯¡ÿ¯‘@¿Cˆ~Åy‚þáƒyû³2ÓSSãc¢#ׇù!úË\œ} ¸6èiSôg}¯8]˜äKáøa öA}ò™õÍ­íœA}Q?!…¨_ê_Ãêÿ1dUé«fsÿ-?÷9÷ûX÷{ÀýÎŽvþ›ÍMÿU¾ü@edÿ… çü°ÿí‘ûŠJ_(~!¿ È'™æ÷°æ÷qæóCÿ-ú|ôÙ§úÒow˜óÙê_õ Qý´”¢¾Ôwv°³675Ò×ÖTÇöU„Ôgæ–¦VÈ%u¶Ò\UuMm]}#(4«…,ûküCÂ"¢bâ’w¤gìÝŸ›ì—Röë‘ýÖÛ]£Å>YZÂ>îlk3°+[~¦66?7{Ï®Ôä„-›"ׇ®]½r9|å-´2‡Ïœ.s¹™>M~ŠŒ´¤„Ødˆ}¾²?Ùϱÿ¥5#‡>M}}Q1qIiD_ -BUË×Ä æÈÑÙmùŠU¾!ë#7mIô3÷ýøØ‰’Óå±®Þhn%áÀ¢? DÿÝ( ß D¿ððÁÜýYé©É‰q1Ñ0D~ŸË}û…Ö LŒôuµç©«ÎUš »#OvGJJ’pöG/7³”æâåÆÈ„¨ïæéêGÅrê—VÿÑ“gcJýO³ÏåþšûÔýÇÄýû½à>'ÿ-,þAòý`?âúÿƒüTUUM¼ð‰ßLȿݎäÿæ÷Þ'æ?¦æÓÐà ý±…þ'Ôöä£~#U¿”S?6 -Õ÷fÔ71ÒÓæÒW^N–¶ -N­urö -²¯¥£o8m¡Ýâ%KÝ<€ýµ!aáQ›ã¶íHËØ››_€ìŸAö/a¿odØǰO×ö)a·¶­µù–ZÕÅòÓ°³ù?ìËLß±mk,nl€ïªnÎŽö -¡Ñðv£Š·¾”¤¸˜(}aìcÿóÏ8N}}Hý¿ú} )%$eõy:z†&f–6öή0Dÿà°ˆèØ­Ûv¤gîË9PPxâÔés«j(úmt~ÂÒòÆg”Ñ/."èïÍHß‘œå°†CßÊ|Á|@_K“ ?Sq†Â4úÒ°8ôÀIËÐØ‡Ûª†<2\nõC6°êâÔo¼Ù&Tÿ«þû¯_ý?†yÝä}³îã+ÇP£î¿àõþ}ü¿tcð‚åú‰ý€ÿO55à?ÿÀ ý%üÚ:Ÿˆ?ˆ|È|Bþ=Æ|Úù/¨ùX!Æ|:IAô¥ßì°g°úïYõ_ Õo#êWõ±êoAõݨú†zÚLù*`êK³“+Iæ–ä¾\S¡ÑTÔ4´`_MÍ-m(û^ޫׇ…oܼÙßMØ?Šì—WTÕŒûïùì¿èþ”ÙÛ®Ž¶›M7®Ö_®©ºp®ìTÑÑ‚9YiÛ“ý°`—‡«“ƒå‚ùðÈp½Qž=>tð“’Ÿ ì£úÀþDûã¾±ÿ™gXôiêO èKËÊa÷ÎVRÁî5„+#Ì“‹»\ƒÖ…GÅÄ'mOËÈÊ9pæ§ìÜ…J2>M7ÛÚ»ºé]ñéóþ—,úo)ˆ#‡~kKãõ†zŠ~)¢Ÿè§!ú›£ÂÃB}/·¥KÛÙÀ…q¾¡¾Ž–¦šŠò@6Gž3_œdcÔŸ‰×-]ÃùfV¶‹árã-ðçÔÏ¥êWV¿€ªO9ÔÿˆýásÜMÝï'î?æà§ÁßÑΓŸÒOìüëjkÁþ©%Ú×Cà_ih¸ŠÏ¿ƒf>Gþc¾ù¯ÁüO†þ×þPõq¨‰úý<õ¯þ|‰Q?—Sß_à½ÜÍy±­•™‰¡®–¾rdt™Éez…äþt¸§ö!Ó ŒM¡Óì9:ö}þÍ~½G唯_cµ´ÎZçè*G®‘»î¥û¢¤(º¨è¢«n”®Š.Ô(¢•Š¡¤S£™\š‰t™W:F“A£sX³æ8ëœçùýöÞï[½RfæÐZýþëõ×ޞ糿?ÿ@d?.a²ŸÅ²…°ë`ÿ5a¿ûm-MÀ>,îUWË!Ö - r>˜ìÇFíØèçåîêdok³zÕ -C]- r¿™?—°?EFZRBœ‰}¾²?û£8ú}D_”¢?ILBRzò†hábH !ã+W[Ûnpru÷ò  ‹Ü¹;)%íàác¹ù…gΕ]¾ZUCÐoôyý'ýþ?ýRDÿDöÑLD?aWLdض Ÿ-n®,ú¦FºÚËÔU•ýysaqf0¡‹#I²Oc–ÜoøêÛ€úî¬úû3@ý"T¿æË›cXýw³/ûÜ6Èý‡~.ùA~ ªÿö-‚ÿº:ð_ðÔ¡öÈý­ÛPø>ŠÏF~kë€Ìnþ€ÐCèPý/Aý²sE ~Æ~V}wPßÕ×£ê“î.;`tÉä’Ñ>2mÞ|\Y5`_ßÈtÅJ`ßÎÞ Ø÷ö ‹ ì§gf?QPøÁì SŸÏ>“„}œ ˜Ÿ§Oûí¼¶æ¦Æ†¯oÕÕÖTa®æçÀ⦥$íÞà»ÅÍÅiÃ:kË•PjÀ¾*sÁ™‰=YJRBŒa_TT öÇÙÙšú|ôÅ%¥&ÃaõÎÃêUQ×ÔÑ7^nn¹fÝzG·-¾Á¡1»“SÓ3æäŸ*>Wz¹¢ª¦¶F§±©¹×v…ÏzêëG ÿEÑ'ƒ3L.Œý/þv­â¢_p";+“¢èïãIÐ_»ÆÑ××ÕZ¦¦Â /7 j‰¿8ôÀöHcì³E -=#SPßÎÑ…Q?1…Q¿lÌ«?”ý¹O6^=¼{ØÚèþsÖ}ø“ŸÐOíÇð¿þ ü¥¹Gï¾ÆGñ›˜È Ÿ5ÿ9šÕðO°‡àƒú -ý1þûÕ0Xý”ĸ¨0TßÅÑÔ75ÒÓÒPQ\Âfï_g—+–©Ó¦ÃðΑö—*ª¨ihéè™°ì»löôöCö£ãâ÷¤¤¥gö‹…³ßýAìÿg ûd}q{‘ýgð¨»:;Úy­Í÷)ûÕ¸»%ŧò ×ÒS“wÅD„oõñÜì ÷›5æpÁÑÑTWQdo8²ðÔR’âûØÿlœýœ¡èOôA}D_BJšò´øCôLÍ-¬à®è¼ÙÓgkphxt\ÂÞ}2²²óN•”^ª¸V}пûíýæV@¿³ë1ýW? ŽÍèÐýô+¯ ú…ýtD?.&",$ÐßÐw²·ôW®àÐ_ -—Eù¹$–˜Ð‡µga_†Üpfà [KÏÐÔÜ’Q?8,*Žª_  þP¿óûî1¨þ‡,ëÜî>ü??ù¡ùïßCûüÿA#Ü£÷÷îCãó#ŸÏf>ßü¾>AóßúŸö«~‡úÝßwõˆúå ~§~°?UßÒÜÔPOKÕ‡fþ¦^„_Jš$‹,°?›a_YMöÖØ·°²±Eö=¼ýBB)û©È~îÿ‹}˜Ü_Â>Yß»õ7¿º^}íÊ¥ g‹NæegeØ·7!.:|{¿·Ç&g»µVPkzÚ°·ŠKè?vÒRâbDýqöG8ô' ú"}šúý)\ó*(«-ÓÖ341[eecg¿q“‡·ÐvýCGŽŸ8YtöÂÅ+•Õ׿ºY÷Û{Z¿{HÑÿÐ! ýw ÍoAÿ8¢Ÿ²'ž¢ïçí¹Ù…EßÄP_GKCMY‘ ?g6AŸ¿6bô û$ö釪¯‹ê[Û9¸¸{ùsêç úåDý†±¬¾pöÙÜâ>ü'ôö¢û$ø ü¤ø™ä'ô“ê§øƒþè?ÿàß”{RøÍ-ÐøLä“Ê'ä“ÌGó{…›Ï…þXB_Pý_õ_½ìç«ßÊW¿¤¨ ‡¯¾—»‹ƒ5ª¯Ë¨O£wÊ€éEø%iîËN›ã+?oÁ"`_؇Í]nŽìopö½ýðèØø$dÿa¿äwfÐ -³ìÃ÷ û°À-îöaË/ž?{úä‰ãGíÿ|O|lÔŽm~^î®ímmV¯‚ÕEö•¸;<·¤û„}dÇþGfõÓ>‚èÓÔ¥èO“”žÌ%ïb%U -](†ÕÖ ®î^~ÛvDÅÆïù|ÿ¡#Çr NŸ9±œLMýh_24]»{Ḛ̀è¿ÁÈ š˜_¢ÿôèô3ÒSýèˆÐ?oDßÖÆÊÑ×ÓÑÔPEô ú3gL“eC·f9,ûäŽê/X¬ ¬®É©ïÆW? Ô/á«ßúð«~ÿËWŒú¿Ž õ±?4÷‡ºÁÿŒ ~€_ ùyß!ýÔ~ÿ&âÿ€ƒ¿Á?ï|h|*>ßäs™æÿ$Ä|¡¡?Ðúx¨~=¨_IÕÏ:Ä©ïæâ`KÕ×TWVX¼ÔÇù•™LУãK‡WR -ÙŸ: Wn.°½¦ª®©­g`̲ï¼ÉÃË7 ˜eÿÀ(Øýì¿y#n=t…ÛZšî}s‡lðÕò²óPm¹ÇLKIÚ½32,$Àw‹›«Óxì•+Œ tµ4T•`uçÍe>wR’â,û¢¢ã±?Šó§>‹þD}qœZ¼òP J*êš:88–Öë ܶø„„EîÜ”’vðð±œüÂ3çÊ._­‚™¹ è7µ´Ñ‘éùñéó^vb~úäz8,ú¹ý¤øXо ï¸Ñ7_Ρ¿dL–\§ÈH3[3iÒ_ðàêPõÉ%žÔWÓ„¯™¥µ­ƒ3§~Ú!Pÿ4¨_ ê×£ú¼±«>ß}>ûÂÜÿ™q¿¿ïü üPü4ùIó·?dìüAÿüðù¡¹GïüöGD|ˆ|ZùH>“ù/úú¡†3úûMwØWüöÝê76Ôߨ­®,/-9ê§%'ÄF†¢úΨ¾™‰®¦ª/?‡$/™_š,txÙ»*eþ’ªú2Êþ*h6dßÙß»;)™²Ÿì_û¿Œ–ý_8öatzŸ?eØçû wn×ÕÖTU\.ƒÎÏ9š™žšœ¸+&"4x«'ìïúuk,Í—éëhÂ%gé¢òô–#ðêÿ‰Äþ8û#=BÑ'êƒ}Lð}ó-QDôõLÍ-Ö¬]ïè¼ÙÓgkphDÌ®ÄäÔôÌ£9y§ .WTÕÔÖÁÄ465·ñÚ úOúýó22ôß~úGXôÃCƒ úÎ,úÆzÚšêªJ -}¹Y}&ôaiü?ãÁÕAöÉ-gÆ,9øÞ¡ú: ¾£~PhdlB2£~iyeuíú†FFýž¡ê¿eŸóc›3ìžûÂ{ÿ%ºOƒŸÂÿ¤ç6ùÿÑÙù÷ŽÆ~ÀôÇÓÆú7¹Gï)øŒøù?ô<¡ä³™?Œùc,ôÕÿ÷`õ{º»«ŸÏ©äêÛÛZ[€ú:¨>Ø'GÔ‡–`æ—©1Z-ûSe§Ï@öç/öU€}]cS3`ÝzÂþÖ‘³ÿT8ûoGÃ>î1ŒN·Æí¼¶æû _ߪ«­¾Vq©´¤øT^vVÆÔ䄸èðíAþÞ°Ávk­,ÌLô´—©A³-œÏ<º ytû„}dÇþǶõ“=ú}‚>›úT¾i8786Êj †&f«¬lì6nòðöÚ—°wߌ¬ì¼“E80ת¯×‘yinåµwtv=ÆqéýûõÕcžÇüp±ì$—º(¥ûÝ%J÷(*]t/EH!T(*ÊÈ%ÊÔ(*S; “£ã²µ%m! m‹F¶Ø53fÆ:³ŸÏ÷û<ÏïéwIÌœùÍéó_õ×óôþ¼ž÷|ùo\[&-ïDÿ퇣Ÿ.@?,$ÐÑ_æ`‹è›™êë ú*ˆþôiS 7 úГùc(ûdmÈ™ê«À•£gHÔwZáîí.P?OXýNQõßH‰úâØÈ}^áGøIå'ò³ô? øƒþ8÷¸¡?ßGîÁ{ ->'>”|$ŸWóÑüW’Í—*ô%©ß+P¿ùf=Q¿â\qaÞñ#œúÁ~ ¾QßPoÞÜ9HSxe±ñÒs­—w’ÜdÂ>”65õ¹ótô Í,bÙ÷ò îÏ~Î;؇ÿÈ qì¿}'ûÜ&ÓEfØïê|ìßn¹ÕXãꕚ‹°Æ¥ÅgNç⧦ìÞ¾&Ð×Ë}år[«Å Í ðÌQ#ûK¾xãeáÑ û22¼²?Äþ@3L¤êËȰèø06 -Šp#ªÃ‰h™Yle¢»§O@HxdtlÜö]Éû:r,÷taqIÄ¥æÊÕõ–Ûw…ÐǰÀÖöÏÊ ÐÿþýÐß›”¸=nsÌúua!ˆ¾  ¿t ‡¾:T…™ú\Ññé°ìã_yã8öGòØ6ľäAªþhPŸAŸ¸™Qøtô@>Kkûe.n«ýƒÃ"6lÚš˜´ï@fvÎÉO ŠJÎ_¨Â°\¯kh"YAôŸtãa( }1IùÑôW¹RôA` õt 1ˆ¾"4…)“ñBäzÒ˜1"ƒ{ÃW_‘¨¯kh2ß -Õ÷bÔß•’– ê€úU þuP¿µíþP¿ûÙsTÿ•ª/±îà>…¿¿ü„~b?ÑŸøßoÈ/ ÷à=Ÿëø(>%æKúýÕÿ‘Qÿ%§~û]¢~mÍWU¥Å§ˆú»¶ÄD†ûyú¶ ¾ £>À'êËøÐ|&¿Ü¹:j›üÔé -,ûÚzƦÀ¾•½“3°ïúNöoÀ>ùW À¾ ;ˆ°ßƒOüNÜåÖæ¦†:\åêª çÏäÌÉÎ<°/)1aë¦ aÁþ«=\]œì­-Í75Ò×ÑÂCg¦"”}öéQ}±ìÿÖ¾þ.‡C8¢?‚ O«>eO"3Ci¶Ê ì &k;ˆ‹‡·_Pèºõ·Äïܳ7-#ëè ¸ Ïž¯¨¬¾tÑïФPôûAáЗPõè“*ÄCŸ^…OÞ }/ýù}-}‚þD}Ö|øÞáÞŒEöeÇÃÊÈOÅCGMƒQßÖÉÅ Ô‹ŒÙ’@Õ?UP\ZQõUM-QÿnûƒÎ.ªþKFý¥KýŸ…þ÷q_,üT~ ŸÚøƒþâæŸ„{âýSžøbÈ6ÿ'IæKËû• ~U¿‘§þ1úA~^n.ŽD}è»jÊ þTy1d{ [[÷}\a(nòS±¹ÍR†êƲ¿˜°¿Ø÷öŸöû^oó‰ÛÌ+û ûì:÷õ>ïù¦›nsÛ–æ›ûëµÚË—ª++`—óóNÍÊHÛ»ggü–ë×…ùy¯Zéìh{lnb¨§­©¡—47y(näñIÙ'ì@ö‡±/y†‰T}Š>§ ìijúæ /µu\añ \³6*fó¶»SRÓrüTþ™ÏÏ•W~yñr-åfsË6ýozž÷ö½|L$¥Dý›âÑß“˜…èû úNö6ˆ¾©±ž6‡þ4¬ ±'Ðûp !Ÿ nÍXæÔÁçWœ ¯¥k@Ôwõ}ƒêã©ßø‡PÐî3…Ÿ?#?Óù~´ñ§þ÷úÛ§Ä{>_|ùLÍÿ£˜/Nýo…Ô¿ÕXGÔ//-õ³3RYõ}½ÜœAýE¨¾¨OÚ®ÜÄÇ e˜-.¤îsì+!ûZÚºF¦ó2ì»ö×FEÇnMØù`[Üwd¡_öÉ>w´·Ýn¹EÙ¿øå奟Ÿ9}êø'‡ÓSSvïØ¶9&jíš@_/÷Ël­/436ÐÕÖT'½i¤º—ýˆa_FF¤ì±/2"èäÐGô&Mž‚-AYU}î<]c³V6ËV¸{ú„„GFÇÆmß•¼ÿà¡#ÇrOŸ).-ûâ/k®\½Qßx«åv[{ÇCö&샔¼Âå> þkú4$;ƒ~(EßзZÌ¡?GUy–}Rô™…mCÙ'/@–¯¾Ž‰ù"K[Gg7ONýÔŒlP¿¨´œ¨_×xKHýo¥S}öŸÿç¾~ü,ýÔ_üà©÷|ø|ò©ù?H2_ÊЗ ~ªÿ¸ë¨ßê_«­©®,/)ÊÏEõ“ã7GG€úž ¾å"sc¢þ ª¾,UŸë-Ls¡!Æ5–“‡=žAÙ×$ì›sì{úø Äþu(q”ý‡„ýû¯?Œ} WãwÁB·ãB7Ö߸z¥ö¹¬´¸ðtî±#‡îOÞµ=.6:2<$ÀÇÓÍe™½¥Å3#8u檫’ö6ö˜~ö@ýÑ¤ì ±ÿ[û»ýáˆþŠ>QÍ›€%Л—¡Ž>4 Kk{'7ÕþÁa6mMHLÚw 3;çä§…E%e %ˆ~C†¤ãag×ãþÕ€´µ_‚~7E2Ò"ýTúþ€þJŠþBD_W[KÑWšè˱èÿy,Ý—Qìà @öQýI“áÖ¯ªo êÛ8:»‚ú¡Ñ›ã“QýÜü¢’òÊêšÚk ~ ¨ÿ¨ë1ªß'ÅêäþžûÂðóägèû{(ÿâ†üñ9 >O|–|^ÍgÌ#åæÓWû–S^ãwH «~ǽ;Dý+_3êçpê‡úzº:;õõu´P½Ó=þãû°ßAØïþì ít/°ßMÙ¿w·õïM õd£«.œ/)‚…ÎÉÎ<°/)1aë¦ aÁþ«= ÂÙY/gϯ1Ge¶~öoÊ>a²?|ˆ}ñ3L¤êËpUOClº¨ºÚz†Ðu—,…œ¸®òö -]·~ã–xHIZFÖÑyŸ=_QU©khjnŃЇÖÛó¯^‘„¼ú´ôRô»è×½}w}sS£~èOAô?fÐâ/ƒÃ°O^~÷¦€ú³UÕá«GÔwõ}9õ³rõ¿¾BÔ¿s¯ƒSÏrÜ0ê¿•"š~úŸ0싺ß~N~¤Ÿ±Ÿê/vÈ_{©÷>'þñ䋘ÿ_aó¥êÍòÔ'‚úàSVýª~YÉg ~Vúþ¤T}×å¬úš ¾Ò ¬ºX^˜ª?ŠW]FóØŸ0In2ýyÀ¾ °oimç¸Ø_-žýs|ö[nßmÇ"GÙïíû•Øïy†Mîуû÷î´675àN_ª®¬€•ÎÏ;q4+#mïžñ[6®_èç½jårGÛ¥Kš›êikj¨©ÌR¢×¼zí@Ù—)ûCì÷ôGr胆€IQPœ¥¬¦ŽW¡±´[H‰—oàšµQ1›·íØ’š~øì×kXNéðk\‰Ù¶Í\HÇ("•Ò¶H”BQ¤(**ªqÌq”óNãXé ¥ƒ”J’(‰IIí(’C#{ Ùfsíýÿ?ÏZë]ë}ßÒØ¨Ëó1}i¹ïßs?A¡‘Ôs™Ù9y× !¥w+ªjjâ.@ô›¥ ßJ>¤£ÿú7!úUú—¥¢ÿ“tôÇ2è"è÷åЧæwcV†»ø@ýC†úcQýÉ þœù¶¨¾÷ºM?ïÜ÷ ªêt -Uÿ«~#>pˆú8ö;¤úíq_¿@~¤Ÿµñoí43Ü£÷>_@>3ó;‹ùõÿà«ÿâYcC=Q¿äV!¨Ÿ™ž’x*:œª¿i÷ -W§Å¶óæÌ21š¬¯7^C >Cž(Æt»Ðc—ûb™qÂ)Ž€ DzoØû'yìß ìW‰±­n_­Ù^K°ÏÖÙ¯ª¸[zûfáµ¼œ‹™çΞIˆ=Þí·mÓúÕžî.NÐh+¸õ¦O5Ð×ÓÖTW=RIqè`ü°à°Ëäâñ/Æþ—vö«:ú]}Š>Їì\@†®Šªº¦¶®¾á´3-¬¬.vrq_õÓº[}wí 8r<:6žƒ™/_ô‹I>ú4ý–OiáŠ~)AÿÊå‹™RÑ÷@ôŠÐŸ ;^S‡¾sÅEùPëóé)Iñ1ÑÇCìÛå»uã:ï•nÎŽö ­--fΘfh0Qwü85U•‘#‡úo¾>?ôîEÇ>a_Ùïò}ÉóÄÔïÆNýÞ8sû+à8¡¬2F 22qÒ#3sËù¶öŽÎn+½×úlÙ¾sïþƒG…GÅÄŸNI;ŸuùJ~AQñ2æ-øáæ%›€ ǧÑç=±ì$ /Áú·ôÏIGE¶™ ýQÊ#È‹Ðï×—Žƒž¢²È²§sõõ¤ïT_Ye¬†Q&¨oϪ¿7àppxtlbrzfvn>¨_ê?àÔÍSÿûiuþÌ‘øÏw_ ~V~Ž~b?Õ_Ú¡ÿúš>+~ Ÿ#¿Mó;Þ7¥SŸ§þ+¢þãú5U÷ÊJnõÓ@ý(TïŽm×zy¸8ÙÛ̳õ ôuµ4TU”‡ƒú -ýÉÎe¦¾(Çt½@ŽÉܱ?˜°?Ù×cßU’ýDdÆa¿”e¿áÉÓç/~}‰ ÿ<öÙjÿö/ø»›žÃuGš] :²Ÿ{)+#-ùtôúØÑƒû÷îܾÅg׊åËìlçÏ5731š2i‚Ž–†Tš4Z¯>öÁAbìcŸ;è˲è÷ôûQô‡+AD4´ !“ŒMgÏgcç°lù -¯56C<ü ‹<—˜œ–ql¯¼²š¢ÿ”¢O§>Æÿ> òôóÛDßПèO3䣯8”CÿDÿ¯´+Ý™®tÅo KÇ>¹ûXõ‡+«¨¢ú ¾Å<{'¯µ·í êGúiDý›%e÷ªjÔ?&ê¿â©ÿŸŽ©~ëîKÂ/ŸÐOì§ø‹.öp?þõž€ÏŠßùÝü6Õ©_p5÷âù´ä„ب° ‘úŽv6VfÆS &êh©£úC#x忱3W4^dÅØ‡FËÉ+ˆ±¯Ïcß¡öÏeûùÐl`¿‚a¿Q’ý¶}®Ü¤Û¯^û´Û5Õ•å¥%¸çr³/d¤&'ž:|ä€ÿž?o^¿ÚÓÃué’E6PkScœrÚZðÞ¥a VšÎ8ʾ¬û_ÚÚ¯æpèwAôe(úÌp''?` $DiähUuMm=}ƒ©ÓgÌ‚x,Z²ÔÕÃsõúMÛüvÿã—ÃA¡'à%˜zîBvNYåÕ5µëÓAÀ¡ÿN¸Ú;Ú¾¿tô ýqêD°ý¼Ô•fì3/TÿÇÁCQ}u-‰SÍ,¬lì9õ…EÅ&$§¿˜{µ€SÿI§QÿSî áçä§ôSûý¥æÞràsâ‹‘ßYÌ—ª>„ðCõëˆú·AýPÿLBLdXСý{ü¶ú¬ñtõX™ Ô$TŸdÑ«õ/Bö2ì« -Ù·–d?$<ª}ì·|ûïxìC»áÂ{X[Så¾Yx-/'»{""4öÜn¿mÐìUî.N‹.°²˜5cº¡¾ž¶&|„‘Øj`_ŽvšyòÀWAö»|c_x¾“˜ú¬vä=HvÁÈ‡ŠªÚ¸ñº'A:fZXZ/\ìäâÙØ¸Õw×¾ˆÆñèØ„¤³é™sò®Þ¼}‚Á ÿŒ—‹ÏA_ @rè“9P@ÑO=“× -úVú:ôäåð5ÈìоÈ|RZòä!ê¨onµÔw÷\ã³ÕoÏ~P?2&á ¨Ÿêß&ê×õ_‚ú¿wõÛp_~‘üŒý þ¼ €wDÿÖÂyÏ_’üÎ`¾˜úïõ!äMH_]mMUyéí"T?#õL|Ldh §¾³ƒÝKs³é†“&èhª¥¤ˆê#wæl”yAfž­­³¯Õû‡ ûq‰°èû7n•À¤«ºí&ì7‰6] [ïO÷[‚ýæ—M/žQöïWÝ»{§¸¨Û}>=%)>&úxHà¡€}»|·ø¬õ^éæìhokmi>ÓdÚ”IaÍ©QQ1l^~rØjÑí'>ö¿±OŽú²ìÄí…ù@í† ®{Ñô¯ ZM…ý÷ô›ž?kl c€¢_Ô~ôõè”@¿»¨)2øà¡ìcWzõûÊ¡úŠJ£Æ¨kêL˜d8ÝÌÜrƒ3§~`hdLü™Ô T¿:påÕá3§ Á¨ÿ¾ƒ«/Õ})ðóägègìçŽyî¼ãÏ_*ùÜ|iê¿áÔTW{¿²¼´¸èzÞ嬌Ԥø“¡ýwûnÙ°z•›³Ã"PßÕ×ÖTCõ;yÔŽnÜîÝ™(3Aîʰÿ=Ç~Ÿ~rýyì«ûzâì{¶Î~eŸŒ:è7Ÿýwíg_Ôð·oÉŸÞü+°«®îÁ?ïWÞ++)†~ç^ÊÊHK>õ>vôàþ½;Þ¼a׊åËìlæÏmfl4öœ–4[i8e¿_ü û²ìio¿ŠÃ¡ßÑ—¡èSëzc:ä@8†+=V]S[OòÔ馳ç̳±[²ÔÕÃkÍ†Í ÿG‚Ã"!ÉiY—r¯Â°¤¬¼²š>1Í -ÈÄÛv¼Å#Á=›yèWW”—ñÐONŒ‹‰:ô)ôU[Aÿ{ú2ìaÇ>4…\ròøäõÕ4µQ}SP‘ƒ³ÛªÕ¶øîö?q2>)5#ërÞõ¢âÒòÊûµu8õßtõ¥»/„Ÿ/?C?‡ÿ;±K@ìÇìo¿—_œüo>ý’9õáúšQý†GQý;Å7ˆúg“âNF„åÔ_¶d‘µålªþ8Fý¨~oF}A–Es_ûðÚûFƦ,ûË)ûÛ¡ÞûÉ<öËÊ+ªyì76ûÿFöß¼a+þ”²_]‰ ¿qýjnö… (ø©‘aÁGøïñÛ¶iýjÏÿ±_çQ=æ{ÀïÄÔ\sî%Ë0H$*¡T”„V¥E¥}û¥RÑB!S”R’%[¢}Õ¾N%QmJ¥$Q!Rèºçâ`æÌý|¿Ïó{~ÏoI¹î9i<΄Óç¼?¯ïûãêì`kefl »^CuÍ*…å2°Ûb Ðjà €ýIÔÕ“ØçûÆ>ëûŽ«ê“Ôý wÆÌY¨ˆI@2ää¡héè™Y2ì\¶íðöñ 8 eàÜ…˜„”4è%W®!ô¡ë¢Lú½l BÿÃ× ßK "šÀõkWJhèC(ú;y /ˆþt AúhOøiæãe¡©?“T¡¾ÞFS+ÛÍLõOœ‰ŒILÍÌÅê×ܾƒÔïzü©ÿ©ÿ¿w¤ú¿ÿy­bw(øIùIúYøs>œÿùóÙÄÿ,ùê9ÒÔÇAó/sp¯ Ún ¨_uýjIanFjBt䙡A÷{ïpß²ÙÖÒÔPOK]YI©/&*"<›TŸÖpé†YapšÑí:V³/ÌÆ¾2ž;ûç"£ã’0û°á×ýÛ¸×aö{Ÿõõóbÿ·°Ï±ä¯^öÃ¥Ã,vM uÕU°âÅ…¹YiÉ 1 Ö…ùûB«Ûæâdϰ45Ò×ÑRWY­(/s€åFe&1E…WÙÿÆþ߸Ðç'¥Ãw$C‚±a'»båje5Mí M-lì·º{îÚëëtäXøÙÈèøäK™¹Ð®WU×54µ÷ ßÏãü}î<×;ú(¨dPè‡|ý¥Ã Oîɸqxl³ ÕŸ- Ïß"P_AIY]KÏÐÔÒvó÷Þû…‚úÑ ©¹…%0P¿å^G'¨ÿ Õ |ç ²?&ÔÊ}&üœò³ìçñpþ¯ÔâŸEþØ0ÿæðÐÀ>ÒÕ‡˜?íéê¼ßÖr§¾¦ª¢¬¤0'#%!úüéãGHõ–&†ºX}¹eK‰‰ÎCêOãP¢-’ý×À~Á~G{+<{µÕ•WK‹ -r2/%ÅGGž C+¾w—§ûVG; à ښjÊJ°ßÒK$ÅΟ‡ØŸ£$w›9 :û£mî¨ú|˜::ˆŒiÓº9 ñEK +•ÖªB( Í­átóðÚ³ÿ``HØÉ3ç£P"rò‹.ãóÌkmôÈe—w àZˆÛîÞA8|™qô[›Qôó³3P .èû"ôÝx£/¶`>ý©Sp.ØÐ§Ìg±/ðÃG/ ¨? ©?Ô_²L«¯khbÉp Õ?rüôùè„”ŒœÂ’²Šªšú;-m÷aOá÷§«ÿñí7mw¾âÂ} -~J~šý<øç=Í{–ø4òLjùtõ?QêÿûÍ ]ýÆz0¯¬¸ '=%> -©xÀg·§›³ÃÂÄ@WSmí*9i¬þœÙ@ݔɓ@º ´8³²<žÆþlì aö%ûËYì›q³!:>éRFv>Á~5lys+b¿›Å>^s”ôaÙçlwïö‰=öôIÏ#8vZq·«,/»Œ¶<51†pâhð¡û÷xyÀŽo²676Ð[¯¡ -ƒX.#…öÎ4 Xob¹ax|ߨ'¾ï¸ª¾Uo§à~;g.\‰ÅR2(*Zº +[g×í;½}ü §#.Æ&¦¤£PV~ãfM=nº¡êö½À·Fÿýa«> }ZýÇÝ: ôë˜èçèŸFèû“è;Ú1x¢?…‚@ý¡Ð'ž@rX}x†©/-'¿j­š¦®‰ÃÁÙÍs·Ï@¤~T|JzNAqYEeu}#]}ØJýOcB}÷éð³ä§ÑÏŽÿPýçã%>GbF{_õ}N}@ïA;˜WW]Y~¥¸ ;=9.*âÔ±C~X}{ c¤¾‘ ¬fn"n·¨êC"Ä¡ßÊ®X©´Vm¶ž¡‰…õ¦Í[Ü=wí…Û/$,üldt\Ò¥Lh¹¥WQhhjik𰫇lƒd†¿ûØÐg}$úDèh'Ї€¿œLŒ~‰¾Ï0è ñBŸŸŽ>1Œq´yÀŽÀˆÔŸ5g.¨¿ÔW\£ºNGߨܯÎÉÕc×>¤~ø¹‹qÉiÙùE þ­ºRýÞ>4À[âÒKêsºÏ?;ý#ПãÇ9þ2Žj´ó¯ÿxªè €yOº‘úM µ·n\+-ÊËJKŠõÂ|÷zmõ­Íôµ‘ú+d¥°úBLõ)æ¸K °ÿ=ûÓx°¯¢N²Ï°sDì{3ÙÀìgæä]öoÖ Uom§³?ÈbÿÈÙ'–ý=mÙû`=]ñ®ß®­®¬¸ZZTý.).êü™“°éÙãåá¶eó&kscC½õëT×*),—‘Z²H|<³g΀ià‡qÐæÁ÷}&úôª/@Vý‰Pn§þ„П+"*¶h±” ŠƒªÆz]c3+[g×í^{ö8 —_ÄÅØÄÔŒl…ŠÊ[µèîƒ$`ôûú¨÷ÿýûÿ}xþXè·µÀû_ƒÑ‡$@Hˆ¹q¢„Ñ÷àDåÐèO ÑÿžBŸü¨²Ï®¾V_JvR_[ßÈÜÔßîµ×7 8 ÔMJËÊ+*½vãVmCR¿=|° cT}.÷¹äç²×_ÁõŒöoýÿøX‰GꣲûJýÇÝ;îÝmº]{óúÕË¿æe^JŒ½pöäÑÃX}ÇMÖfÐp5T àÊHIŠ/õgü„Û-©>Uõéqf^¯,öÙÙ—dcߘž¯PHØIXõ˜„ä4(x$ûõ¸á‘ì÷½ U<Ú¶ûƒ¯_ ô÷={ -÷NgÇ½ÖæÆÛµpñ †—žš »~âhð!?Ôï\l­ÌŒôuµ4`Ñåådà Ëg&ŒcŠà¤‰dÙà*ûaö¹Ð'‘ƒ@NžŠ™ž'ºÒ°LN^qµŠº–޾‘©%ÃÞÉeÛŽÝ>~‡CŸ‚»/!%=+Ÿ}„Ææ»÷î³rð‘Gý‡Œ“ÎÇ£1xÜÓE¢_ÏD?—DÞ8û PàîcX ‰þ žèÏÌ}võ'Ã#ê‹,—”ú/ûõe–…¸Ð­q¦j×€a—aEE‚EE2‚€€ä( ( -@@@rN’s$ ‰’QDtʸ8;«;:Δ{îýº›nºÁÖu–*œû¿»ê»÷œçœWD|÷Þý•Ô4˜XÚbõý‚¢R2r K+kšÛ:»ûGÆïOMSÔM¤^’ú¿-»>0€Ÿ^~æôgø3ú_ìïý2‡ªä±úDµÃ¦ ê?ž~@­~IaNƵø(PßËóÌ) “c:šªŠH}1‘HýMs¬å(ê/£]c>Æ>ÚöÅéØwö/xù\ ‹"±_ì7ÜÄÝÞ?ì߇ÒîÌ.yt ÿŸ7pÐï3¤~‡%oldp µ{c]Mdèö„˜ˆ@Øðκ9;ØZ™éëhª): ³WRBTnƒ5:Š>x -þ…~æ°¿Øö.Ú¡ ¿Œ¨Œ> G„?\ P ¼üP »¥dää•Ô4´õ M-mì\Ý=¡‚ãã“ÓPTT×56·v@蛸Od>R¼~ó†0o¡ÈG¦}R È71:<ت€È|%EyÙé)‰ú‚|½Éè›!ô5æC=cô—Ó¢O¥þ·DöAê¿qR‡ˆR_QUS瘉…é3ž^ ~TüµŒœÂjõL?Fêσïç9ê/¿>0‚ú?é0ú×ÅþÒ/vÈw„*þ²úÿúqæ%Ús§Ü¾ÛwçvëÍúšŠ’‚œôäø¨Ð@ßK§ím,Œõu4TÈHí¦Sõ¬qŒØ_Á4ûÇŒÌ,mN8ºûÞÐíaQq‰)éÙyE%åÕ7nÞj'؇~ö °ÿïׯ‰†gŽý÷¸åß¾¥ZóžCàA³ob my]­Í 7ªaÉËÍLKŽ¿zåò%OwW'ûã&zÚÐìòrÒRÐëBü¼[6sràN'Ô'ØÇ]¾ì«gŸnÕ_AZõq1l@èsrqoåß.(¹OZœ;¬¥k`bãßåŒÇE}QqI©™9ùPttu÷Aä#ŠàɳçT‰×ÀèÏÉ{¸È“áŒþØ0ýøýê -„~FJR\Txp€ ÆÅÑž ô×0>1ÉW2W}a±]R2U5tô-lìO{\ò ŠONÏ)(©¨©¿ÙzûÜÃØ½(ð<9ƒPÿÒ,-Â>0†ÿ³íŸçÏû¿ä™Uÿ=EýŸÈê?Äê÷Þé@ê—_/ÈNKŽ‹ ¸ŒÕ?nn¤¯­¡¢€ÔàßÊýMPÚ°Û®†º¦Þlç4 ûßѲÏΈ} ûöÐîÀ¾,yÐï)ÙùE°åaö;»{GHì?yúVœW¸ã™ØóæöÁ-?>:t·¯w|mUÙõ‚œŒ”ÄØÈÐ Ÿ‹g\NÚY›C»VQ<(»oÏ.1Áí|[¹¹89ØÑD­NZöWü±ì‡ýoHè¯\µ†J U7('*!¹wÿeõ#ú̬lO¢Ìçí›ˆŠ ¸¬²¶¾ Õ@ßÀÐÈø½I<ùQ 0÷èç>®€WyÉ0ó^7ýÒ¢|Œ~txp  ïÑ·23>¦«¥¡öÉè/[6Wýåäøê¯õ×Ä ÙÊ/ ,ŠÔWPÑÐÖ72?ŽÕ¿—œ– ó©ßq§«ÿ¬þOõß/MõÑ™ëO±Þ¿XìoûÒ‡±ú¯°úN‚ú½]·šêªË‹ó³Ò’b#@ý‹çÜœNX›és‡ä¤÷Hˆ -aõa·…ÕvÍj¼Ù’[úšf’}áâ»)ìëûV˜}høÀàðhÄ~N~Qéüì“zþbÿŽýZBLDêøsnζVfFú:šêÊÐï{%%D!ûðñÀÜÈÎÍκ†èõ9“ð+fŸ…Jý?‘ƒR@•ÀºÇ>¨^~˜þ»¥dä)©ijëšÂìwr;{Þ _DLµô¬<(šºÆ–6È{¨îMN¡—ˆ{ä  ÿ+Ã÷§CŸêý!í=šžBè  ¹ßÚ܈Ð/ÎÏÉHM‚¼‡JM~§Yô•™Aú”+¡Zö¿Åwͱþ¯èFúB¢{¤å©ÖÒ32³>áävî"¨›”–•_\^]ס§wÔ‡é‡Õõu¨Î¼l/äÿG~´Øßô{õßaõÑ’åÕ>591:4ÐÓÕÞÒTWUVœ—•š|ÅçÂYWG;k3C]-`©¿Sh;ÏfPŸ ©¿j%I8êUŸ¦¤?‘}5ľ1bß Ø¿쇄GÇ'¥ûÅÀ~]csk±éá¦öŸ=IÍþ;&Øÿ•Š}¢í„á÷âÁþÄØð`°ßÜXW]QR˜—•– =àëåéî --oij¨§­¡ª$/'- cwËfNÜîkYWwB; -Y¾^öéVý¤U×Á„>'·]PDl×iYyEÕÃZº&ÇOÀä÷¼tùÊÕ0È{©™¹…×ËaîCtõôÆ cú1¼?FqÇDØ£AÿÝ,ú¯ ëúxêèwuúu5ýL„>šû(îAØbôµ}…ƒû÷I-„þw Ðgaa¡bŸZý?CüõÙÐäáÛ.´«¯¬®¥khfmçèzö‚Ï•àˆØÄÔ¬¼â²ªº¦–ö®ž¡Ñ‰É)hXPè}C4ÁRW þIg±¿åw:TUÔG{æîŸ/ÐŽ+ÎèPOg{KãªÒ¢¼Ì”Ęð«þÞçÝ]í¬L t¨+ÉËî“ß)ˆÔçä`ŸWý95Í}Vjöù ö¥€}e5 m̾­½“+°ï㟜š™SP\ZYƒÙïêé»;42Nìz˜ýW$öž³ì1³í½yýz¶ï=|71|·¿Úþfêòë¹ÐõqQaW¯ ¦wq9-3·àz°ßÔÒF°?Jbÿ)l{ ÙŸÙÿm¶óß’;ØŠÙGÛ^gû­¦úZèûüìŒ”ÄØÈÐ@?ï çNŸ‚®73Ò×9¢®¬pnDz~7´<š„ëX׬"³ÿ ݵ,¶Áÿ÷3[ -ĪÑ'|[ͺ×ìµ[xù„Ðà—‘ƒ¸§©£ghjiãàìvö¼—/Lý˜„kéÙùE0ôëáõoßé Ìü§°áÎ0ýö´O?‹þlÐÃèÃÈ¿ÝÖÒT裙Ÿ–œ -è_‚¬çì`kÑפB_ðóÐ§Ü úë6À$ääÚ»MPD\rï~y¸‘£&–¶'‘ú~AaÑ )¹…¥•µ ÍmÝÿe¿Ìß±Î÷0~uuºÎ\לÓ:95ͨf¤$Ù’"KQJÈ®õY²”d-B–,Ù÷}Ñ")²„È•PsZŽ¡3Í霖Îûýù~¿ç!Ñü0ýÀçOxߟûußw[GwïãþABýá×túM#êSo†÷Ÿ~Ì·Ç_ÿž¡>À><üw@]w{ksC-P¿¬8?+-1&¨ïåîìhkÉféji¨©(ÊËJŠ‹"õpÐkΟ›jµœo=k<ögOŽýõ\Ø×"Ø7?bëØ?íe|Ÿ’‘Ø¿J¿¥­½ °uÂþ0bÿwNßûì3Þü{E[¿§»ãþ½&p>Ô½2X>)‰±‘aÁ¾^.Çím,ÍLM  ë©«*¡ë%ÄDÖ®Yõó -~ð<ßâEp* öyËþ´ÃþèÏ!Ÿ€üùÈ7„þŠŸðˆKÊÈmݦª¦¡©£oÌb[XÛõýÏ…ÁÔCñ‹Ë*pé¡ö]=9‰?UöÉ]à,…pØ?H}QqIYyE5 -]#ÛÒÖÑÙÝ ¨“˜–çê×6Àî|·ÀS¼þ7Cý÷ô¦ Ý8oöL[Àþ/T᣼Oa½ÿyìäÂþ[*ÿˆùŸ#ö?ìéê€ÂW_{«êZE)X?=9>:âü9p¾›ó1;k 6ËX_Gs—šÊ¶-r2’âë× ÁQpáUÌgÊ>³fOײÏË6ºêS?€|hµËW - - ÃØ“†^«¼c×m=#È|«£Ž'Üpé…†GÇ'§eÁÐ+¿v£º–ìD¡èI˜?Ê;4öê`[Ú8œp;íš™WTv¥²2®ÑígRÿ7õ?LKêÏ<žÇCýw õGõŸ@¿í‚z[_só:`.73%>:<$À甫“ƒÅ¡ý†û4w!õe6nê¯\|1P.Mý9PÿsØ_Ä…ý5ûÒ4ö÷h阰Øà|À¾‡ô½Ðð‹q‰©9ùÅ¥èýšºÆ¦{÷±ñQæ'؇OW¾É°?Þþèþ×#¿½zùüªòuÂòi¬«©¾¯0/+-)¼tÖÛÓõ„ãÑ#‡î7ÔÓç++ÊoãÃDß/[úªìÓØ'qÈs™¯Íá?÷¯úßêƒþ ùùW ú"bù -JÛÕw£ö¦f–˜øÞ~!°óS3s KpæðÍ­÷;©•‡ºqt§FÞgdçQ {ì=ýç4ôÉÈ#ºCÜäd¦&‚ð÷8óœG¡‰¿u3j¿–žà„>‡úshêÏê/†³@®^+²a£ R—æ>Ãý‡,lœ\Où„@ ¦dæ•V\¿YS>ê÷ <%Ôa¨ÿn†ú3oú4õ ëÞü¤û‚®¿ïáƒÎû-wë€ú@¹œŒäø‹‚ýÏxº:Ù[›41ÐÑܹ]i«œôF1‘µ‚+ù@¼a©ý–—úŸúÖSþbb_m} ,|€}_ÿsç#.Æ%¥fæ—VPØoìwöû±óqÙŸúôSÃ>ñ?ûœÒ×÷¨·»ó>v¾Û7+¯\.!îº@Ìoocifjb°oïnuU%è{Rp¨{+øÁø|x—yõ¿™æe<ô™ª[:í2þPj…Ö­—”‘Cé54uôAyk»ã'aæ‡EÆ$¤d€îe׫ÈÈCÙõõ>£7 }FõI ÏYxc³~<Ѓª7ÓÐ/+.ÈÍ„´Ç‘‡ºcÜ[Y°MM uµú <¾8> =þ?ý1Ôÿi¸ô~X@…¥å¶*mß©©c`rÐÜÚÞÉÕóŒð…‹ñÉ9…—Êúuw[ öõ“áó+^zõÐÔŸÁþt~c©O}zšúƒýÐn;ÚZënW]+È¥'ÅE…;{ÆÓå¸ÕaS}赪۶ÈIKˆ­¼‘R»`ÞÜ¿MFý©a_@±/N°¯¤ -Ø×Ö541óö]=½|‚ÏGDÇ'¥eæ””U\«ºU[OJãøñCðåÇàã'©?û Fû/_üó@Ü£©¡öVŒŸâüìô”„°¿¿ÏiwçcvÖl–±¾Ž&6¾-r2’âë× ­ëcÙçûnáî²?}±Ïý`ò ü€6dUõ—.ÃÄÅÀ—W„V»G[ÏèÀ!sŒ{·SgΡìÉéÙyE¸ñ@õ»-mídâÑ¢ƒè8€hN¢^=½¬¤0&^|tDXp€/Ùx »¾&B_a,ô—~9ô™Dd¨#ˆPÒî²NLBZnË6Õ{´õML[ÙwñyÜÛÝÑÖÜxçÖ«—Kò³Ó’b#Ïõö8yìè3Sc=m¨µÛ¶l’’¼A©ýq<õgO@ý)` ûò -ˆ}M‚}3è|ÇûÞ¾XúÀÿiY¹…%eW®W´¶w>è¥kM€©õ>æ¼ý¹ÆÈð™>O?|ÐÕÞÖr·¾j_ù¥¢<@ÜÅðÐ HB,}GÜo¨Y¸]YÜ/!&*¼Fðç•Ë©Ã,DëSÎãÿ…7¿6‹ÿ¼7aÕ'ÒóåÉÌ“’ݬ ´]}7ޤ½ˆð(ôù¦}æ2Üe õ„ÃÀ’ÚÔWß­­g W9z줇7$adlRZv~Éå«7nÝilnëèîÅDêSø_r ®Îóµé3ó¾ÎeÝõá×½‚??ðäQOW{ksCmu啲⼬ÔĘˆÐ ?/wgG[K6ËHWk·šŠ¢¼¬”8ÐmvÚ%¤Ò2vâª?9ö—rc_’ƾ†¦¶žá~S3KÀ¾³›' ,2j_V°ûÕûû€€Qì¿ùf¶)4?rŒÿq5¿W/ö‘XüêjnV"r3Sc£.„úzy¸8ÙÛL öí…0TÚºYí¿võ*âþ%”ùéÓüuú–}Þª?‡®úDù ¿ã#lûI`5ÀM\R:­ -¨®£oÌ‚‰gü¤ûiŒú˜„”Œœ‚â2"yCÓ=ØwLп"”ã@ÿ³‚×›óhJp’ó wn£â— -ó²Ó“b"Ar?ïSn}У^GSC@&žú˦ }î㌣þßÉi–àeV­—’•WTQƒ04b±-mݽü‚B#bS³òà&•Õµ ƒ]=à<ÈÞƒCý3ÔŸî‡úïêê?èCêßkª¯ê—åe¦&D‡‡úžv;á`cÁ>`¨»WCMYè¶ATà¶üÿì××S”ið­©µjÊ‹qaE]AÉArjrÎP@%ITrÎA@P$ˆƒ’QF×ÚQѱ­ÝÒÒÒ‹=çýºé¦‡Aœ©Ú½€ïO8çý~çyxÑ6nB%§úì›üøßüû[XìïEööÖvN®ž¾À~d4É}@@ieM¿4ÚíäôI~t‚+ú­‚}*ì3اC÷Y`D¿™©ñ£Ã€@wg[KcmeYz).&*sŸ‡‹ƒ¥)Ä> UÅòҒâ¢Âðÿ“°OâwÌ‹Èø÷¿YsìsD}‚>,÷ÎMZ>~غ¸$V<um] k{gwoÿ`\9¤Útèw¥•µ Í­]¤ÞÁÂgæØÛÝêÊÝôññ³¯{±Ü ôÛ¡ÝÕV–åá‡zè‡CýΚ ¯¥®¬pxô¹¿Œ>ÇtØÔ‡é„êoçåûAP&s:ºÎQ#s+{ß ÐÓQ± ÉiÙyÅå5 Í þÁáQTþé3¢>©þÇuõ×?¶·ê“´óŸC¶}µ€~~’íè½Á;=mÍõÕeE¹YiIñ1‘a!>îÎv43C=mPÿ ´$DÚÝü|hy@}xâ Ø–ªÏñ²¿ÈþŽEö%HìSQ×:rÔØ·wróò…àG H¾œy’A üD?¢aÿù˅׋Ùï=«cŸ8@…¿—Ï}``†d¿Á¾Û]­p -+J -r²Ò’ˆ°Ð`o0ÀÊÜÄ@ “‘"àhþ±•‡üÿDýÅ鬹°Ï>剳dëÛÈ­“’9$¯—^ߨŒf ýÎ/(ä©w—3s -JÊ«ëñÌþ‡ ×NL³­›N¢í»÷«DŸóÆ¿}Õî%}Æ‘€àÓë®­*+‚rGö~Ð÷rs²·¶45BôUè ÿQô—̇y7Â?êóÀløøwÃh$¥‚úÚz†f4;gwŸÀ°È˜ø¤´¬Ü¢²êúæ¶Îž;ƒ÷ þLÏÍãH ÷àd„†úëì¯Ýõ?“ŽK½{T_ýH:c#C½Ý­MuU¥…9™—ã¢#NÝli¦†ºZjJi%ÄàóïÚ‰²qúTœÝ°T}Η½ûÜìì ûRLöõL-!ù¹yùûáQ1À~ZÖÕüⲪÚFÌ~„ÑãSTøc9°ªôÇœ%Á‡Lè,f§'þthà„¿ë×ê«Ë‹ó1û%Äž=s*¢Ÿ«£-Í ÐTS’ö‰Š@ °‘áPaŸ9ž5Æ>kñ¸v&kdé\‰ú¸rQ´°qU =CSKŸÜwl|bj”»²ªºk-7:I·à¦f1ªëƱÙ-_옻f4;ˆ=¸ì[]mÍuUeÅùxäI·;y<ÈÏËÍÙÞÆÒÌHŸ‰¾”„øŸAŸCý Ôx@}.ìA;wñÃlÄ$¤e+©iéšÒlܼŽŸŠˆŽK„cXXZU×ÔÚÑÝ;042†—ð BJ}*ìÃ@>¯‡ýµý±œûÄRè¯þñìÔøØý¡þÛ]à[]eiÁÕÌÔKÎ9yÌßËÍÑÆ"­¦ª¢œ¬”„¨ðßïÚAÔgÄYNõû´¿‚}qH~ûºúFf–6öÎî^˜ý€ý¸K)iY9ÅåUu-m]·û0ýý_^¼|õ5ì/Rð )øÀʯ^ü€ĿþÞîζ–FLyW2R‰'Žøx¸8ØXšB Òd¥% ü|¼8œÍÜ\›˜ì“°ÿWößÿëïÿçûmÔÿ–¨OVγ•ÄYRï¤dä”aß&VvNîÞþÁ¡¤Û¥¤gç–bµkëè¾Ý7xo„4;æ®}C_媗¢Ï:ðØë«žôá“b»®ƒÍ.=–7>ÈÏÛ¾®6¢H† /„èóþ!ôâPÆCÔß±ë{¸ˆR²rŠªš0KG7/ÿc'Ïœ»p)5ójAieݵëí]·û‡îOÍ>†¡ úpYêZWm˩Ľ&Âýühfbí]xóíÀ[EIþ•Œ”‹çφŸöótu°±0Ö?¢©¢('väY|ç›—ªOÞ÷2o{Õìó"ûBû‡€} m]}c3šƒ38ìŸ9 ì§gç””W“øGIðÓÉi6ößÐñݯ&þN¤ã%$<ž›™¹G(hmn¨©()Ì…øwñBtDXh0ÜC';+sc]-ued@lïA~ ûpJýo×dØ_õ7°E}³›·ú°oA!Ñ}û”WRÓ„ngF³utõôÅeŸ;Ÿ‘w]ßt½ý&;\õ$¤ZŒúÏ7ýîýûU£¿ØêHâa¢µî©udÓÝ7Z ×U”äf§§$Æ“bìïí'žff èk¨*Éö%ÅE……úÛ¶ð|=ú‹#¿b‰ú›ñw€éìáÈÈ)ªÀlŒ-l\=ý‚O„Ÿ=1%ãJ~IEmc ¨ßw÷>ŒeæÑÏøþ^cýYWý#Ûë§¢-¥>¨ÿìé<ª?:<Øwëæ–†šòâ¼ìô䄨¨Ó¡A¾.öÖæÆGu4TØ/°ýÀÇ»}ÛL³ðÊÉÿݨÿ—ձϳe²Ï/ ($,*. ìË+©ûÆæ4[ŒagcãS1ÿ•TT×_»ì÷öc f‰ðìà»E VÍ>Kƒ…—Ïÿ<&ܸÓs:P=Àü«™—“¾ž®Ž¶43££G4‚ƒà$Šð·Çów®¿±…ý k-ìsD}‚>,œì{3†Y^>~Òí$¥eÉ×34µ´]û; ÅVq%¯¨¬ŠøžÞ~f­£Ð_`ku˜Ä-¿gÆ–Ykf]÷…Ôžç¦'âyïïíé¼q½©žÜ÷ìŒT@ÿ9ðØëlixá9Ð'ÕŽý«FŸ#ì“_~ˆM\Üxyù@ý½âûRPÑÐ9jlnmïâáz:*6!9=;¯¸¼¦¡åÆÍ[}ƒÃ£¨þüÓgD}:SýLõ×Ù_«+êõ1ðÀËK‡‡ïþÉüÜôăÑ{ [g[s}uYQnvZR|LdXH ‡³•™‘ž¶º2À&)®ñóí$êc˜e ¶‚ú+°¿‘ƒ}>&ûÒû:z&À¾#¡Ø‡ˆä–VÖ4` îŽOÎ0" ¼{,¹”lðóÊê/†@䦂·Çòhv -æ2|·¿·»³ JPUYQÞ•ŒÔKq1Qá'ŽÀlì­-L õ´5 ÉJKŠïþq7`+Ã*û1&´†Â>ú”i¸îMõy¨¨/ ¸GD ›‚²º^x+;'7rà#£/\LÆû^ZYÛÐÜÖ­Žìyj†Qê𺳡ÿq¥ã¾|¥{ûæ×ÅãN:Y3^÷¦†šÊÒBÜsRÂy@Ÿ,¹‰žAW ž}®¯GŸC}öq@Dýp…DÄ%¡)«kë™YÙ9{ø†„EÆÄ'¥eç•U×7·uö@}01=7ÿž?Œ…þ¦B]BæHÖÕ_£K}J8êé£úððÿùäñìÔøØÈÐ@owGkS]UiaNÖåĸèˆSǼÝli¦†ºZjJ‡e¥%ÄPý];·Õ¾c¨¿aEõ¿Ì>×öED÷Aþ““WRÓ$ì[Ù:ºzû'Nÿ—ý2ÿê9ßãø=g8×½Œ F—!II()E´ï‹ö}Ï’%)iO’J¡¤UQí©”ö¾¾%[Š…6ë8Hc¹s3sî÷õz¿?ß¾ßo¨˜3çÞsëó'¼žïÏãùx†ö$¦ " ªëØ—›·½÷C$û£’ý\ ìñìéhCäHà•‹õ¬êŠR
Iq1"P=Ü6op²³23‚ë¨*Ây‹-šËȾ#ûœìsǸ9Hcž9 U_XD~¹ `ME][ßÐÔÒƒÞáåFrNËÌÎ;sÛb¾Þ֛ʠÿ¼¤öíèBæÏ˜¯ÚáícÈ}Ý÷:¡ÛaÒ5²ë åâ,wÜtQ¡Á}uNvXïzÚ4öûòAèÏùjèóS"Cý©(A‚ЊH}IiXB*:&¶Ž¶lßé´7â`lbjú©œÂ’òjVÃ¥¦–6¨ÃxþðúêÙÿ#ûãÔ£ß'©¾óÓ@?Ðí!R¿½µùêÅúºªs%9™i) ‡„‡úxºm^ï`cnl ­6++½LbP¸ìwӈʥþgÀ¡Àg±?‡b1ƒ}%Uľ‰¹5( ÒÀ70˜8 à ãtnaqYE5«xÐÒ -²3h£ÔÀ¡Øÿ…žå Þ…ÑÀ®;í­UçΞÉËÊHCD†…ùz!m-M õ´ÕUÖ®–“Y¾LB\TDeƃŽìOàÅÀŸKÝÿö÷±êO"Ô§ÃNü¢ÅK¥0he5-]ÌÙÞy#Žº€=ûöÄMå^Xr®²ö²è8Õþî=ÁÛè ÏÝsï~f"¦ÍN͸žUS‹Ž„ŒÝˆ)C¹Û[[˜r /³œÔ;úô´¯€>=?õ'õ¿#‚-´Hb™´,ÜG]ÛÀØÜÆaýf7OŸÀð‡ s -JÎUÕÕ_¼ÚÜÚŽÔÇ:ÄÇÿöŸãÔÿðãyÿðú£ÔG©ýé%¼üÇûºïv´ßh¾ÒÈ®­,+ÎÏÎ8ž¶'ÀÛc›«‹½µ™‘>R_©ÔŸG©/0uÊ õ¿Žú#b b.…ÁIP@Š}}C k{§ ›Ý<ûÀÀ~RjzFV^aIYe «áâ•k@„$öÿE‘@ÿè°Ï/‚/û 7o4_½Ôp¾¦‰x4þðÁýûзoÙèlomn¼NWS8 ÔÒÅ‹€sçÌ&kˆ9Ѥ1&ûüª?‘Gõi31h!a1TYYyEU }#3+;’²·ÿî½ØíÉÇNœÊÁEG2†ABËiö—¯^óûp 3ùò÷úÏúøô¡Øûz°ØÉžk`AÄ%…Ðìé8è ã=}\tÎö6¦†ú:úrúó<u‚|Пô%ÐçRÿ›AêC1RêÏ#Ô_.#Ô‡ûXÛ»¸nóðØŸ|<#;¿¸¬²–Ý·Ô }ˆ—·mHË¡þ8öÇæÇU}B}‚7 ² ŒööÍë×._`×T”åe<–¹/Ø׎­›œí¬@fµÔ”ädjb"`8ÿ &Ë¡>ê^j>ýI öö‘óEDì¯^«¤ª©£ohja¸ÅÍc—_PhàáøäÔôÌì¼3Äû×ÛnuÜíݤLxC™Àk‚ÿžú¤ ±ÿú˜`o÷ÝÎ[„ õ¬j8N~v&AÂð½»ýw!œì¬ Š -ò²Ò’KÄÅD„…³fÎ`hð7. ƆìQ}}â±$gT}ˆ™)«¨këaÈ.dÑ…„EFÁA—•wælyU»ñ2$ dëê%Bû¼Ÿð‡Q«>…>_¾œ5w·ƒÜp¾¶ç$|,‹öœD Íî`ci -kª)㢓–„n¥)Sèã¯0ù‹¡ÿî™ðJƒÔŸň'ƒ1$#§ ¤¦²²sÞ´uÇ.ÿà}‘ÑqIÇNfåA%²/Àq`ëvõ>€ÇÿG\†iCÎYÆ©?&?.õ©Ô~`ŒçÕ@?<ýGðòïÀÃoºtá|MùÙ3¹§O¤&ÆÚºÛÏË}ËF';KSpYUÅÕr+¤–ˆ‹ŠÌ'H‘¢‘I;2õ‡Ãþd¤ûˆý¥’Òe5M#SK ÂÆ-Û=½ý ‡bãQ³ó‘ µì —®6ßh»Õy·»—`ÿy?<ýA‰ -ŸÆqÁ~.Ú[[š.7²ëª -Yi)‰GE†…€B+º8ØX˜@-ª"à Ä9Dšñ[ Åþ˜‘ý!ПHWi÷é3ȦZ°‘¶b%,:5M]csklöí;}‚±ØŽ?y:·ô: kî6®9N¾¯é˜ãkõ/>ê'^lu2æ.°k«ÊÏåçœ:q,9!ò÷ö„9çâ`kifd K¡/û)è;å+ ?”úp%z$2‡ Å—H­[­¨ª©»ÎÔÒÎiãw/¿Ý¡ûÅ&¦ž8 ï¿®ÓÒÔ¿ÿo3ðêÍ[f1‡§þýÿ>êãéþôÉÃû=÷:oµ¶\½ÔÀª>WR˜“™ž’pø`ÄÞ ßÛ7op´µ01ÐÑPY»j%š¬èxí‚ßϘŽûw.φ§þ°ØŸB°?-Á¾ÄR)iYyľ–®‘™¥­ƒË¦­îžÞþ»÷†GŠE(œÊ)(*-¯®£Ø¿y»ó`ÿÑ“§ûo8Øÿõ ±ÿËû÷ï.Pìë¹C±Ðp¾¦²¬¸0÷ôÉãDCƒ| -ÎöÖæÆÀU¥5ò b Ùÿd_€‘ý¿rpðÿ}Þ 'pTŸ¦L4vö˜±øP}yE m}LØqÃf˜s𘸤Ô$ߊŒ9ˆ÷ÄÛ÷â}ö‚·Ô¥lû\º6;f<úF ý!Ô'g‚+a5 -b3Â$¥W®Z«¢¡c`bÚ¾Ó7ho´bJzf”b5«;®Óƒ;ˆÌ ZˆQûcìãùàýS¶Ú@h_¾xöÀÖ:Û|åb}]UYqAvFÚÑø˜¨ð@O7×õ6æÆúÚêÊkVÉJƒÈ.B…ÇN4vg#P(ö'| -û³gÿÀ‹}`‚:`ߨÌÊÖq½ëVwTAÀ~ô‘ÄtÁ‚âÒŠjV}ã妖VX¹ƒ\èàØàÈ`ø ñ8bƒmׯÁyXÕ¥EùÙ™é©Iq1ˆ¿]p! ‚©‘¾¶†Š"‘}ÜCÂ(û³¨ìSì“rœÀ‹ƒ?ƒ¸ÿ ßǪOCžJT"ž7IT­²º–Þ: ¬õ^¾8æ Þ´Œ¬<ÜrulH÷z[{Ç]°YàÚ3¶7£«t&Z¾FÙ!CŽfK*.9 ?t:N9€>–úN÷­¯•¹ñ:€¾Š¢‚¼ì -€¾8>Iø@ŸŸúi9õ¿#W^¸Hb™´ìª5ÊêÚúÆæ6ë]Ý<}C£bâ¦ed—UÕÕC)¶Âyºa‘JÄãPêÿÆ¡þ¸ìÅ«ú„úm@6â³Ï~|Œ\ß¹v¥‘][YZ”—.¹oO€·Ç¶M.öÖfFzZjJ -ò@´Å@ýy”úS§ RŸë°#Á`tØ—X&µ‚Á¾Þ:cs+;§õ®ÛvxöC#@ r KÊ*kXðð¯µÀË¿ÓÕÓ÷àñøö¹d Ïÿ dŸbŸ¢ÈþýÞ.,E ÃvÝØ/ó¯žó=ŽÏ=spgîAÈ2v-ÊR(Q*•Ò¢}_µj£¢’=)e©HÒ¢I*J‹T´~-W#ÆÖJážûÃeÆÅý…¹gÎ=ç>_ï÷÷Ó÷ûÍ çÜ{Žúü ¯çûóx>žõ5Uå¥E¹ÇJÙ—»=fÉ —›“°`„f\JT˜«8g¿Òx9ñ™þKx -Í9EeUh,òÕ741³¤x}‚7lŒFºIÉ©G©Ó)܆fZr¬Ò{€µ¿³!÷’7ú‡£ýÍd!;¬ÐY´=»~¼Ë]Ô„!WYFÙR¥ïOôc"ÃCý¼=\í¬,LôïÂy*ÊPŸŸ}~+ñï PåÈ©?ÔWe{Hßhµ…ƒ«§ïºÐˆèm±ñû¤ãBE¥g«ëZ._»Ž¥{¿ûž>BôðŶ#œf˜úCð“PŸ ­¶2®Áfvuܾ ª5_¬­*/9™Ÿ™–’´gçÖ¨ð{ksC=- õªÊ -³fL‹•+Hì Tÿ‹A`<Ç>TPQYeþÂEpA`ߨ2èèêéí´žl06>)ù`zfvÞwÐÁÊAìß¼}û ¡?–.ÂÅ>!dŸu"Ã>Â;?´·]5 gŠ óÍH%2lÞ¸!ÈßÛÃÅÁÆÒÌÄÕ¨¹Xm>®¤3±IÔ/û#†‚ìP}}æ°cǗ窯 „V_¤¡¥­kµ¶w¦)µe-9–í©ÓgÙãÑvöï8ÂÚk‰ê<ô±â^ü$Õç|Ɖšêj*ËKÙŽËHMNŠG£G†¯G¶ž®Nv֦ƆúÔé4å”Å¥ŽxÇ Ðÿê@_Vö…vÄ@åˆ3)«.P×ÐÒÑ341·¶§f ÚºsORJZfvþÉ’òªÚ‹Í—h ut=|ôø)•âÏ8ø:âã SH~R¿©¾˜úxþd³Ø¹}=:ïݾ¨5]8_YV\˜“MNŒÛìïíîlgefl «½t‰Ú|¥9³¦K¨·>xêÿ.ö¿’`â¤)²Ø_¡ohL`próô ZOdØÏ|ðx>ÐP^USßÐBBøØãéŒP¤=Âþ¯¼‘Д÷¡-ÔÉàp¹ª>{š±!íÀ·{wïØE>¸ÖÝÙÞštPW[ ‹hÞ\%.ûò㱉F÷SaÈþ;ª?J3Šwêt¤;8£pW­6g•î».$l5ú¾”C‡iÇ•R²-—ÿú=Í8Öç€>QMXqʵú²±¾âЧwÿ¨ŸÕù¥–†úóU–÷yò¾J6b}P€§›“½õ1ô‘-*Cʤ‰Ÿ -ýÔÇ¥$ÔÇ”Tæ«-YŠn46³²sv÷ö‹ŒÙ—˜Œå—Už¿Ð$ºÚvƒj±§­ˆû¼xÉ—Ð[~©Ûü¿94üý/?‰ê3êó€–î ¢\¶ûþwoµ·]im¬‡Éž*ÈÍÊ8¸ïîí›á±~^n޶–¦«Vê.'‹õgN͘à - -;XêûS9öUç«A û&fklìݼ|‚7lŒöˆ Y9ù…Å0ÂóýïÛ±s%JH¯ÿ{þ2NøRøúkÅ~'¼{ëÖèPSYVRT“uøP -áæMaDž®Ž¶Væ&FÌi)Îa²O‡FѨ¡ ûæñòtÇ̾™6s¶*]m±æ2H¬1¢upñ ·1zë®=‰ûYŸŸ©8Ww±YDu~§£ëAO¯Ðæ/y¬oÞ|`ÉC•™pP–*/óÞn¶áëå–FjsŒ¸,W@'­¸à_/7g{›5f”,:vÜ\}–-«t1ôGýè >?Õè1rã&`MŸÉ¨¿Xs¹îÊU¦–¶Žn^~A6nÞ¾{ïþƒY¹§p£úÆÖ+míԋݸÛBԊ®3Lý!÷ISŸ´XcTƒô<ÔHeñøa²- uÕgK‹NäM?°/!v[tDh ¯§«ƒÍPÅ2M’XÅÙ3§1êÃY&AÙ`Ýf öGI°?N¬ƒÀ¾|Pm±†–¶îJ#3Kgw/2BÀagÜÞo¤ÉÊ9q²äLEuí…¦Vî„ û?I¤ðC|xû±>cØïía|@1Šš/Ö¢‹É ÓîOÜ:@ ý½=\p&3cC=eÄ%…ÙÌåûÉ #ûŸ-öÿ$™ŒêóJŸÌ†œÒÜy Õ—P²«V[XÛ9¹yù††G¢ÎY®ÙyqÔæM­W®]¿É6œªì„{_¨¿YåP¾àðì{{vñ.§ G©–œ<‘{ìm¸8ÄŠ6_çëåîì`c‰:_I+n±ÚU6ãX¡ËËBäÇC_–ú#F -§bÔG=*âP‹4—­õQŽXD¡ÑÛböH?šs¢¨ôlu]CËåk×QŒ˜¹Ñ‹üB8Л·oÙ}†©?4?©€]±Ëâý“Êbè>ìê¸}" ¢U•—œÌÏÎLKIÚ³kkTxÈ:{k‹ÕFú:Zä°31Ë$Ôÿ²Ÿúƒƒ‚ öGJa_>8q2°!äØ×dØ_mniëàâ¾Ö/0$lÓæmä„ÓŽË-(*)«„6‰ <{ú˜Òó)⣰ÿ‹ø@ÿz-&´ÅØyïöM4c+¬°êìéSßå …;b"ÃC7';܉6ÉþwYRYšº@Ú“¾ž÷nÝh»*jºPSYV\žJNŒÛ±%2,ØßÛÝÙÎÊÜÄPO[ 0SQ†èL%êËŃç$¼êñØ!Æþ×\e°?o:è £g'´²utñðö#)ŒÙì§g - êšEº\ qì?à…ïC„„¿J1âõ+:‘€î…W/aáJМ¬Ã©ÉIñÄÆ Á>ž®Ž¶–f&†ú:„‡ùªÊŠŒ“ä'ˆáÀe_¸ÖgŠýªÏ ’±'ÏU_AI‹§g` …µwF™­ˆÂ„£PÏ/,>Sq<]mk‡ÆÒ€"}‰H³ß¤•îqšoHEÞÇ‹ûíª¨‘V•—¢É³3Ó)ÓØíTå´àm­Ðåz”ªz?ô¿áЧ:ÿ˧@_VöÙ€†Ä,¢‚Ä©”UÐ(ÒC=ZÙ9»{û‡aÅ%&:r,¯°¸¬²æB®tãÖ½Î=¬Ÿÿü‚d‡SÿßÃÔªŸðpóá¿Ûº/Hdÿö¤·û>€ÖÞv¥µ±þ\ÅéS¹Y©û÷îÞ¾yÓ† ¿µnN€™±,SQšƒ7Ï$ƒì£¨ÿ쓎%%ö•õ%K ûƦÖvN®žÞþÂ~RrjâÔéòªóõ-—8":t÷>~ŠçÿŒÞ?gÇþ eŸõ"+ÆW‚>îE5vÜ#H k«+ÎbÁ ÷Æíܱž´ÐÙÞzé*]m-E ç©()pÙ§†3šàЭÏVößQ}!XÊu"Sý9ŠØpHuù -špVvNn^¾ëBÂPå»þË~™¿õ˜ïaÜu0Ìüp"c̘HZUdißW•TÒ¾©"…•uìÊR•J%•¢]‹R$²/e?3—™s†ášëœÉu8g®s¿?Ïó}ú~Ñœkæõü ïûó¼î×½%Ž\zVnþ‰SåUµõ´ßX‘s‰þø´s¾õh×<‰ú?s5έ·ûí| èñª26ߎ>¸ ýF‘.˜;ÇÛÜt ‚>BU$è#UVæR|›í5ô»PŸÉ>í"é#GÑ­”U'NÖÔ10±°¶stñ@=bE¯Ý¸mçžÄ”´¬Ü‚ⲪZø ¢vT#é›Cü‰Dê§~ßú„¿€ÿ‘ý‰yìã‡ÐX<ÿæ¦zXlQ~Nfjòþø¸-ÖDEfþ>îÎ`™±¾ö4 L K$cþÊéëà¤þ1ê‹a¨8ö¿ )•UÕ5F¦ÐB{'o¿yA!aá+b€ˆØ]{“S!†ùEŒç[Z93ì„Ä =¨¡$&:ÝðùOOä(Á©áÅæÆúZ‚ÄñœÌ´l¢X*:réâàùþ>.XEVfÆú: „d_N})^ö‡|ä²ßês±'}EªÔå -8S Ìa6ÜÜ %Q«×S‘#ÑŒì<šoèqzõÆ­6Ñz{úLȳ‡ñÖú|œ/ø8Y‹ãÕÓx£<ËY³õFúÜ|óp¡"·05¢H5ÔU•‘)«òwAÿO}IêæÎê£"ñ Œ'¯„Y4M[ߨ«ÈÙÝÇ?pQXDÔÔcüþäÔÌœü"Ü åH‹¨ ÝÈ®„‰Ë‰òÂþhõ¿×'öˆQŸ ÔÇÔÅûÎΟ=S]šegÀawÇn^¿zexhð|?/7'{[+3#=í©D²qxôôæiÜöŽúï}YûSö-­g88¹’#V®Z·q+3C@âXAqIÅiRCŽw9J@{$Üðýäð5qB¨F’C’ýGt¦„ Ü©²´¸0/” 5Ü„K0C/·Ù3¬-L!†Ó4hÇBz¸¹ì¿Mõª4ã2UPbN×ÀØÜÊÖÞÉÕÓ7 pa(zîˆO8pˆÕ8ò¬kàÇZ\'·Ý::z(ñnÛn”&.J¼‰m·âÄI-¾;n+ÆòäjÜÕ Zôi¾©ªðЧ&—þ¯@¿[êã\ô PEÊ+ª¨iLÕÖ32£[¹yùÍ _‰~ŒÝpàpF6fnE5Ú“ˆžýãoõŸsW§~¿ì÷­¯Sõ‰úü?@ÞóŒYì£ûwïܼÖÚr®{²ðØÑôCI{wmß´.&rÙâ ¹s<]!°–¦†ºZÌ_ÇËŽ!}•ìU Ø‡>õw`„øâËÑ ûJ*ª5¦jf–60C@Â~ðâ¥Ë¡†›¶I)i™9y…Å¥Õu MÍxþ7o·‹äã„€ýWvønÙgÕHWâ@ñ=Êñáýö;7±‰.45Ôž†æçf¥:LÀ —…. ÙGCšè’ìc£iI÷Ùƒ¾¤ê³&ÿr´ÌXâS}êq;GgwZoÈ3zÍ74ÞXœ`YYUM}£(ÍÎéÖ%Ì+\4ܸ,¹ -Çr{À/7„Y‡?YˆéÆÒܱ %µÛ-0À×-ngci†<µ¦Nž¨ªÂýïd'ô?APo /œŒ?/üt®1²ãAýIS´t q¬™³\=1‹/‹ŒY·i;Nu(ýè±Â“eUµ çZZ¯Q;>bwb‹Ht%‰ÿG³¨ÿû>á7Tÿe³XÂÙÚºí°À¬¾ -[›•–œ¸gP½àëáâhgmab £9™ôUNVf4ýyŽbªúºbûŸJb_¯^AIE Ðbjh3ÓÑÙÍ‹¹á²H`bóö$‡éYàÄɲʚ3gy;l¿ÏâoOñ¼Ÿvƒ -æ‡4‰¨)n\»Ür¾±¾ýx HKIÜ»+vó7kˆAóü¼Ýq,¸!dŸ(¡8~ÜX*ÉÇu#ût²ÿ‡OHuà›ªÿ9§úã”'¨SšXL§ñ-X†íF%¾gÿÁÃG²ó -ŠK+a°ç$–ËR|¸½iìÛUŸ+pñÝÆ¢üÜÙ35•eX¸¨ðÃi¹!ÌèHÖá˜nÎŽ3m¬ÌM t)N5%8 ýáÝ@`/ /)ûì`¬%i–Á2RFGjê˜XXÛ9ºxø,Y²á`jFÎñ¢’Šê3XExõm÷<þ–ꛈoÇNê÷Ë~_ú:Uÿ_<Î:ØÜ}Õ‡÷€ewn’Áž­;]~ª0/ûÈáûà¯ëW­ žççåædokef¤Œ©‘¼‚bä®"ˆõ’úÝbˆûRÃö¿bØW„‚À¾©Åt[{€ÂÛo^PHXøŠ"v×ÞÄäÔŒ£Ç -*ê›%QÄ -‘!¾â ±ì¿݉`ÁF‘`ˆ×._lnª¯Å­NäCS’öíŽ*à‡‹ƒçûûx€6–fFú:šS&á^òo‘ýAâŒè`ÿ'¿.ª/ªqQ‹CõQâpWi,Lk;‡Ùn¨ð %Q«×£ÁY”Ùy…l·Q“ÀÊØlË$ƒ|wޝ»Œ6Ê‘¯ï{m˜·dCí銒₼ìŒT–äÖ(ðˆ%!´Û<\¨Á-L¹,Õ'(sËí+úRÐÿä·@¿[êcQM²ƒ¡%1ôŒÌ¬líܼü懆¯Xµ~sì®}hž*?]wö|Ëe$=SgÏY=rí(ºS?õûÎ'ü‚ê¿ì Ÿ€cyO;þ€Ö çj«Ê௲½;·m\¹4$h®¯'0fmaj¨«ŠááËŽ!ˆI󯞨Ͽø^½v ì°ÿÓCâÙ¡²ªºé¡H1ÃÁÉ•üP±rÕº[!ˆI)i™xþÅ¥ÕudˆøøH|ž=öÿþŠ(‰}/hqÉhAŠx¦¦²ìd!Á"9qÏÎí›×¯Ž+ ˆ^n˜Ft/=mȾª²ÂxNö -)n ýheÿ Õ«¾Ô0élºÉÊÉÓr›¢©k`lNsõô \ŒÅ Éñ àú»¸„‚óIÈ£>cÌç)‰Ïã‡÷Ún]¿r©¹±¾¦²´(?73-yüŽ­ÖD/_²(0ÀÇÃÙÑnº¹±Žæä‰€˜lgÔÈõ¹yÛ+Õð&ö‹°G/†}BQØŸªõöËý+Çtã³ÖvÌšÙ sBÊ«r¤œR:§¨t>(¥HQQˆ•CD¥¥ƒB"%¥“brÚ›I”´ÍžÙ¶Acÿ°™½Ö˜µ¯ï}?ïó¾oBƒöRÏŸð½îçs}. bž! "±ÂËge`0 qk4Á"ýàá£ù'¡ˆ•5õŒß·àñÁß„ý2Kü/ëG9^$Þmm¡c¡"«áˆEÇŽd§ïOЇ"†oÄ4Záí±²mĆšT—¨("Ù—žŒƒBÜGö»S}æ§ al¸©iLüª¯£ghjniã@³ An‹ÀjcõKÊΞ¯•¶·£°ÙzPÞ] /×Ýr“¥XOå]r2›bÜ½í¸’rtB}›cµÍ=+w¢f›ò(yèK³|Wè+Ê>ûÄ¢ÄÉ”i}«©š4ÆÁ]=¼}p¯H”drZÖ¡¼E§+ª0qYE¶Ýû;kÈ'bAʨß'û½ç“©þoËð`ïvÒÜ%ñim÷4]¬¯>W† 7'#5)n×öˆMë×ø¯ðrwÁã73š§3KkÚä `Øè‘d®x÷\\åö–’ÓûDìãÙ>‚c_B¬àØ72µ°´±wv#E\½´Ø¶sÏÞäÔŒìÃy'ø.6]ýëæ–VŸŸ/hðv±ÄWc_^0žò]DÀ,‰e„s‘$¦$ÄîÚF¸X¾ÔÝÅ5IŠ8SkõäØ1t2šG$ûJÌû÷ÿeÿUªÏ£ä®*Qçý­«oL«ÍÉÍs™¯?FÚ›bÌÌa›Ê›R¼ ŽÑdSìî_}ô…æ–lO;)C¡ºo7óņËJŠN »3R“i²E„mX»åM›ÍÆÒ”Ú{Ætä8^M¢Ê /ô·ýïúŠÔdðXÝläh:Ù4­Y:óŒÌ.²wq÷Zá¿fý&´d\RjFN.•ä¹jœ ÙÒÚŽŠ|ððçǬ!yAJOÕGýÞò‰‚¨úÏŸ1õá Ã?pç~Ø+0V\xìÈÁô} ±;±t×­ÄÜœí¬-L õæÌœ>uÒx5 웯Fí|2Dé©ß#ìù5V®ªDm™ ‰= †"öEd'>|@×joˆQ_SYqúTŒÝÑ8jÒw$ÑÎzÁ|c}]æˆ(JN‹á¾ì¿RõÙlcªÕ6~ÒMm ÌÐÔÂÊÖÑu‰—•7RŒ‰K¤ÉwEˆÕu ´Ø¨ºy†wJõõ¹ØÜ/z úÏþÃ$‡Þ;ßkˆðÖMjólÈ07'3ª{{$-6„è‰î¶µ²0CŠs¨¼i³©¢½ÅÑö>¡ß-õQ•ìh_}Cóhü¤©ÓgÎÁ:²°¶svÃ8Z½.tóÖ± ûÒ9VX|æìùºÆïèÍßÁ¹„aDžK”ýßû°ßK>¹A >þ‚Gô0{½yýÊ¥†Ú*PìDÞ᬴@,*|Cp æhkenb„iN¸ªŽE/¨ `¢µ¾µå¼Œýö?ýlè°áŒcTÇ©.€}=c³Ö¶Ž.îK—ûÀ7Gí0öÈ:Ä4±¼ĸtâsëN™y"!ãß„ .?¯Á¾È ¾‹Øµä˜qï.¦Ñ ºQVZ„ƒ¡&ãb@ hâJ¯%®Ž6V(JÌ#m&‰cU8.†²$\í”ý.ÐWPý¡\õ£©>ÊÛÀd>ÄÕÙÍ“B Ù´‹Uwn>AŒ"ÅÚûµ v¾ô¹w>~ôP:×0n¯_ù®±¾Å]\xœöE¸# -Íà‡ÁæêhKÕm ‡5§Lš >N€þðaÂfCŒ»‡þÏR8œP–BWÒÕ¨*ÙÑ&NÑÄ<201GQ.öXæ¼!<*z÷Þ”´,Ô$¶QTçÊu~/V’O¤)Gý>Ùï-ŸLõ@öŒ¹ýð´cîÞ¸vùâ…šÊòÒ“ùGs2S“âc¶G„…ù¯ð^âê`³â:—Œ¼O_ÔVn­o¯ú]±ÿ± áÝ3ìÁ°?vv.³D=†µiâÊÀ`ckôîø$òÄ£ù'‹ÏTTÕÔ7’(~ßrç®ÀŒGO:‘ɾ`ŠoÀ¾TIöŸBöfÐhocÛ¨ «ªÀ8:ÎDqïž[·l"d,óts¶_„›èÎá²OU)ÊþVö»Ùê+«H¸êÏž;ÏÈl©¾‡÷ŠUlhnŠ0#{7O°ùvk»Lõ{´Ö^H Ga¬Éò£Ún¾q­µª³gJNæSoïOŠÇ\Û²)$8·“"41äПhÊPÌ£ØÄýéÙGŽ—«®klºŠ‹µÞí¸Ï¶oÉgÏåeÿ÷>ì÷ŠOîO¨/,Þ'b÷H]Á°†ÚªŠÓ§ -ògHIØ ‚­ ô[î¹ØÉÎÊÂÔPÚÊøEÖ -|ÑÈUz/Ôïûý^(uÁ¾D È`Ø×72µ3œÝ<—ùúÃÃ#·)i™9¹PÅÒòsçë5nÞºÝÖÞñÂ+ö /qƒƹñ¯þD²x=yíò¥†ÚógËàŠGeØ—» Ô€*ú-§ª4L ôæÌÔÂBÒeŸÝm°‚ì0ØWTý~2ÕgÎJªOªCõY‚Æà—z›\ºkj;'÷xá©Ó4ÖXkS|âVëYiw ï¹ëléTãéAsÊñâùVC|Û#ÑÚkü}i¬9ØàÕéÓZ£Õ$úTÜ´×K[ÿ÷ýn©¯ÄÚòóxúcƪ±³¡+M-¬p5Ïå~k7†GEïIH9u8¯€nVÛ€utóÖ¶{|¡&…ƒÉ¨ß'û½ã“©>ý ‚ýÐâ¥ß€ý0×k—/^¨!qÁ2S“á­‘a!A¾Þ®Ž6Ä/ÝÙÚš _Ê£˜´~ÆG.ƒ—ðìßíÉËa¿Ÿ"ö92èí«Jðø™)ê4¬l™*úQ;bâ™+B|NWTV×7âd‘¸¿€ËçF±/ÊþÓNô$ÖÑt2f‹õ5•Ô”\ãwGGm%lÀìh!éCIö1‘^!ûËãmŽ÷ÿóuQ}ýƒ” ðúòë‘P}5¦ú³t_¤úK¼|Vb¬¡µßþôƒ‡±ÕJ™·"½ÍL\ÿ!íl¹ð^ }&8ì­Ë†Ú“G´l…ÊæK á).䇩¶9t}P•¶ ¶Ú3c]ÖÚ”Õ68Lú,Â~ïú"ö…Óáõ u9”·¥*M$MíÙº´]=¼}‚BÂ"wÄÄ'§fb•–WÖ\¸xùÚf^”ìdèIN}ÙÁú¨ß¾—Uÿ9ÿ˜¹þx¿ãn+ÄõjS#̧¬¤ðxnvÆþĸ]Û¶„®_³ÊÇËÝÅ~ÑB3£y:³´¦MžÀégåðÙõ.ªÿÑ+°?  ö ªL5µA ãùpEGWÂF`pȦ-Åøÿ±_.N= k7³â˜Ù娵vvfÇ-—(·’¨”nºQDX)Ý•”îJ’JJ)¥È%Š(R©ärXvmî‹söÌîžsì²ÇÎsfÇ™ó}ž÷ýýúýºÐ3éýžçy?ßÏw'sãHYEeµ°ÅpPå…ü¨ëâPÿ¿í¡Cú"êÏŒÈq¡±îlÕÉòÒƒÅ{ØbDh°¿7Ía‰Š4CÊþ¨ÃZÉþŸº™ì·Qý¾ªª/Úö§3‘ÊRÛÎÁqw5„6¶—”’ÆU ™å5ÀnÜ$oª/v÷ûóç¯+jí6_»\$‡»©¡¶º²¢Œw—½‘ަ†å­XŠÌv°CU›ah€ÐÖ‹®6ŒR‡Ïûërè«Ë¾hI¸}]Lî‹!Ô‘t&RZšYÙbn®ËW¯õACŠŽOFVæbj•W®ÁsèàåÌøÜ_ôÈþûöÚU}BØA°G(¼Í°†ZÖÖâ‚ܬô”ĸ¨0àËc¥>ÀlÐËxº¾îm-¼>Q°K®7¢~Øï'±Uüô3éŠcpýŒ}3Kk{G”]÷/=}`‹1ñGæî¼Âý‡Xëš._½öMóm¸Š/>#ê¿jìà‘=W²ƒ…‘†vã:£ƒ|ñð}ù9»ÒR’â¢I½ÖðÜìf™›MÓ×¥¸%é3vÅÙ×è>²ßžêËý}"U_s”– m3¨þ<'Êl,oCX$šE6vwô8¬U5hëý‡°´êi„>-ŽŽý™J^£¦Ñæ®^¾ÐÀ-{VƒÄðñ¤¢¶ÈýÖÒÌÄЀ–‡ÌÖ$è‹Ð–]­_—B_úbv<:ÎK*IÚtõ§SGš¿p‰ÛJoÿà°¨¸Ä”ô¬Ü‚bŒíÔ™Ú† ˜Z3E¥¸÷'ÊzÔ#ûïÕSþI}¡? ØÓ_ÿ‹†opëÛëW/5Õל†µ–åçdîØ–±1ôr_ºØ ÀÂÔÈ` -)+]ô\2Vºpù¼)õÛÃ~_öÀxIY7Æg[41³²™=wÐEß@#vKòötá‹ø@Gã…Ëj¨ʎÿûJeT#²òâùs46 -KcêÖ„ØÈ0 ƒ|q±Ó<Ä%J’É>å%Ùâ`!û*°Ñmd¿#Õïߢú#FŽaÕŸnlja-T•Ç:?µ˜x¬.+woQ zZUu]ƒØÜ{¿XõU×aK{Ù^IÃÞ 8ЏF³¥Å5bq§ŽS^ïÍÍÊØŽš¶!ЗÛ=m¶•¹ %6ïNsøP’ÁƒÐq( /„§w—@¿—jd*¨Ó‡ð 0ytãÆOšb`„ÉÙÏE\º£#mŒˆMض#3'¿¨¢sº¦ž²ò»‡tï˜ÚSîG")ը߃ýnýT&¦øB[©ñÞ¹‰Â‹_p¶ªŸ 0/;#59>:<$ÐÇsõ -WgGRVézd¬šÃ.R>~qúo®ú½Za¿w 6Øxûƒ%öGkiŸ¤7ä0·²…/:».'t¬ÙaLÍì8v¢òLm½4FT^`ÿGî¼ô:¡Œ-3ýè…tFš°ÿ·GˆB«++ÊŽ”íÍÝ•¾Æޏ\‡’䲈&gajÜ"û¢&µÈ~ßn$ûªþŸªÏ»cÕGbÛÎêSOC`cs‰€×4vÖúó—®È–Æqýøg•½½2­Û kÙѨØâÚ‘Ö×®\:__[]y‚öFq ÍÙE-mǪå®Èë9¶¨iÆÓ§"°µµF è#±iwýÕ–§Úo²>5ÙçÛgᡚ+f‡ÀÔ›jhb> yéìJ%)0$<:>95#;¯ðÀácUgÏ5^ÄÜnâÞ©!ѹ+ ’ÚËÙ^+Õ—Ô‡ê?ak%ù¹ÝüõW Wí™SÇÉYs³ÒS㢠¬Þ«Ü\ΟCÆ:]_w‚¶5]&õ\¡úoƒúŒý> -[üHè"ÈÁ¾8z,ÐAØŸi1ËnÎü…‹—®X½ÖÛÆxìÌÞSP|°””±¶¡‰éqëîý‡•ÎøôWÖŸ×âCʬ¤±=þ§¬H·›¿a|Ôðàöæíô€2úx~éβokefbh0e²œË>ïCÕéuÙ•ê‹¢6LøªØ„uç5³%™âšöV.à¥Hk±¶ŸQv´W‡uë¥É¬V«h¼µ&„uUEyéAZ[fZJR\4ÒÚß›KÚÂù×3gLŸJ‹C^Ëšö©:ôû´@¿Ë©/2“#“†7dJ®öÔ¤f–68zjIÞÁaQq‰)é49—èH_}ÝÌå–çFa©ÌJ5Ù×\êyoñ)?ƒªÿpçeÕÿ;ÿ8륦úšÓ'ËKKŠòs2Á®ØˆÐ ?¯5îË;͵·&a2yü¸1#G@z®è/¹¥Ñ5Ôoƒ} >}ö -ì1„Ø1V‡qÆLKk{Ç…KH}‚Aø¤”4éŒh¼gë/\¾zýÆM|!ôü?¡SØWjc @¨#}KqÙX‡’TVz²Ÿ•±=yK FçÏÎè¼€f7ÊٗӲ߿»É~§TŸòzÊ4#´4 {[ãå‹’†´ÆÚrò÷ÁX©£!¬åÖ Õ‡³Jz©/íÕ­eg0ŽjRÑÐÐlOŸDVØ—ŸƒŠÆ[  °^¶ÍÞ¢Ci’6f”€>5Ü -ès`kt!ôÕ©¯ÑG‘™?ÆôØv™ž±)%&Õ¤5^~ÌØ´¤œü¢’R|M=OŽ-G ޝ]5,•S{×dêyoï©ý—ø ²ó¼î±²^Ä7¨ª8vø@a^vFjr|LxH ¯çê®ÎŽðsøªÞ$XÏp¡«à]¿ÄÖ]Aý°ßOÁ6F¾æ¨1ãt&êêƒfV6pÆE.n+À a‘±[’·C÷?à>5çγ5Þ¼sïëOg´Q¥!)½²/' "´±-éF·/Ÿ¬5ifçEü@O²µ271²?Zsx·•ýTŸóZ¡ú£¤ê#­mXõ©£!¬#c¶¦ÊŠFè’K 퇟¤²þ¦tÖΩ¾úre?be2©ÿr‘ -Z%vVÂQº5as$š¯×š•n.ÈêÙ6¨hFÓôu'ÂtDGûœ¡/÷Ö¯ë¡ßK55Åüèð©)‰ÌDÇÕ™¤g`hb>ËÎÁ‘†çéš”Wˆƒ-‰Êíí{T’d\*§¤~ìwó× -_ÿ‘ÔöoÒ(+Øu÷kÐ÷).ÈÍJ'r…x{¬rs!pÁ{XWÁ­aCØVùüU¨ÕÐ5ö°2=†Âµ>ŒM!³ç99»._å±ÎÖµêÃ)9RVQY] ùÁ7¡Ò+¼ñ·ßŸ¿!É>Mî§¾ç–Äao,/=X\°‰¹uKldh°¿÷ÚÕRö-gbzz“¸) cÙÔýdÿµª?”±ÅamÊÜZÈYí·~cx4Zú®œ½Ebgu ¢ QR·¬¬3Aý²mNãÔ©ÖŠzFAÝP[]YQv„W¶sǶĸèM!ëý¸ -vš7Çv–¹©1/³š+‡µX›ÊÞº ú­d_ PÌB²3Z ãCfšYRQrq[åÈ ‹BOJÏÊ-(>tšS‹Ùq`¢%Ñè8/•q©^‘Þ5›zÞÛzmUÿ…d—0V|„;Ty/A~@®#%Eù9™;¶%ÄF„ùy­q_†?`omajûà‡ö„É„ý™³ìð/%môAâ’RÒ2wçî'o¬:+Ò|ûîw\zù#¨0„¾‚Ú_hŸ"•–$óÁ=žÝ妆ºêJ!û9»ÒR’â¢ÃCÖ“7²ì£)™ñøÆv_Ùoý¶ª?ªÏYm`lÙ ªigž>(h"©±2WMýùKì«ØXÛz¦šÓìë±/µ˜ævöíŒv¡±îlÕÉò£‡öæQ=KЉØDA½b)Væ`gmAI=…w6’nþsZeõGªaÝ»+¡¯N} › =®óÃÑëO36µ°¶Çø–¹#3ƒB#b1½Ìœ|D&õ$ ó>_;dÿé¯<º=²ÿþ¼öUŸÐŪÿ=Èõ?öËü©ÊóŠãÎ5Î$j\:©“DEI3mh*²( àRM@AEEPAvA¼¬"à - -Ä}aÄÝHuâŧ?Ô&6N3mLêÄé÷œç}ßûÞ 3s§7<Â9çù|?ß›°øª¾tU“nEF, ò÷ñš; ز·™ duô(¦îÿM-õûŠú*ì÷Øï¯‹ý\vMLÇŒ³øà–V ˆÃTW÷Ys=ø!Ñø™š<ˆciyå>0äÄItÞ‹W:„9v…Hꨚœvt\“¤Ä¼+ÔñGæQ‚™cöúô5hJáįys<Ü û6BöÇ*²ÿ–qɾ^Z+ªO–ö®VõA-R}O¨>úÙê¸ä´ llóv¡úÈé6ÖU€«S´³oerýÕW Ï)ÍÐç”ærvæÔɵG¥˜.ÌÓ %Ĭ -_àëí9wꙣÍ+Ë?}`AýŒ“z„.ôû è÷5ôû¨O_¡>&8TîJãDjÚsUòòAhFDÆ¢)iò7Qfî;t E çN‘)÷¤oµ5I_ö_5›zßKz*v©þ‘ëQŸôçöë¤«Í µGVï)Û^R˜›•žl-]ìç Y>Íâóg|s3“÷ZBU%fNõû¨œQ‘F\¿Œ}ÖFÆ¾ÙØqï3Blí§¹y̞熄,‹ˆŒIHI_Ÿ¿I@ß ¡ùt;©#J¯L‘oá'üëûÿGߟ'zy,†÷·÷;©(u°;6Ö?Œ¦Dã˃:&ÅE­ ô#ˆH²Ï”cÓÈd¿GÕGAã•AU?DPccÓYõ)§#cSÒ³ «hg•ÀV­¼/pë®”Ò¼.×¥›ýô)£i[€þw¢š=@­!}¾ýt3G¬kó¦|¤tJblªm Ÿ×¼ÙnÓíÅÂÓf}9¨ÅÊxgÊÒ ·5Ù#ÄÙSnrY2ãØ´žd‡¢ßzû-]¾*Ÿ•[X²½lO55¥æÖö —;píT”Ddò­«SÝ«¦Sï{9O_XµªÏþ#qëê¥ód?5øå¥[‹!«kQxñ |ç2ÇÝÕyÊ䉣펪JÌ’MµÿK¡¾>ö*Þ8œ>Ä !ñ±ž4yŠ“Ëô™€ˆÏ¢ÅPǨ¸¤Ôu HÑ–»öT8r¼¾±¥õì…ËW|j½ä?jyì#ÚÙ=U@¢cw¹)1G(4!û;·ä#Âýb€}RG’}šà{Šì¿i,²¯^š²3IT‡I£z†œž4ÙÁÙÕ}ö\OÚ×ò•«ã“Ó25”Ò¼®šM¢›QHß»ÿ@Ú–RÍzÌèŸ%»Ñ‹hjµ´¬{´¬kW‘Ñ­-Mõ5GTïÁ¶Š7æd­KMŠ[½r9u3¬kæt¤ôäITÎþ0ÞÜlô(jgœÓ¢ßìú†§¾4Cç°á¿ÃML)7-¹,¹ºãâ}B–QWZ»>©YZŽªTƒn{æü¥«×DS’3SžÞ{eÿ7ðtÉ%ÀÅÄ_þƒÒ l]¹H²Zw쨵c˦Àë*bèôŸ}ˆ#aæÈ1·Àöíœ]f@},ôZ÷F26än,ÙVZ¾÷³ƒGé0GðÐz…=ªAòã ËþO]eÿÞ[¨J4¿SMõÇ $dyšÌ4ŠÍ0*K,ûœ›²ì¿‹Ž0*Ùïªú¯«U¤¬ú–’êÓº|‚ÑÍbÒ¹‹±-RýºFvUPë&-Kif/²«nW¥JèÎ/o}A»:×ሮ,/݆f¦ÉHKަŒð]ð)¶åêì`gcmÍÁºL ú¢œqL«sÚÀÐ×¥~?Urò )8Ét0B'—³æzùø¡,a‚š¼M[vìÞû °¥íìÅ+T•:¿âfË·®d¦õ{±o”OGXõŸü aK|*½×¡?쪀VEÙ¶’¹Yék¢W. ôóþô/3ÉT'Y3²Ì„¨ -b)÷ÏçoXáÑÅþéþ±: -Š˜’;2F짺ºÏšëéíŽÄ$¬Y+챬¢Š@ÒÐ|úóù_Iá? -Iø+ü’?ê°„ÆÇ¡É(ö %7¹+µ·67 6÷URY"}LIŒ‰ŒHXö§OsDpZ‘<Ž53>ÙÕǺއê[Kª?Ï ª¿dùÊèx,+;“ÔÌXUÏ]ä]‰b¦›Ð?éÛjwµL@_Þ”* oßPzVµ¿ª‚:?{=®»Z‚s÷œ7Û÷N˲ÄÁƒjö‡ôP‚þª}½fpè+s¤»—ÏWס!"9Í-x†¸x7'm):aMzYNY&X‹k§Øä®$ç‘(¶?&xòD Éþ®@‰&smrüjçâE>DèãäI,ûãT²?ØHd¿{ÕC¥ú£ÍÌ…êÛÚ;ɪˆŽŠMJ]·!·ŠYÕþÃÇaª­gYõoÝ‘Uõ‘zS/¨ú?j[]ºXNýçlkK£¨e»vl)*@@§&ÅFQ/[äãÅ í„{Ç®Ðm)¢ß©d´ ýþú} }=Ù—³SDÃEtš˜Š¾4Ñv -%ç'ó¢.­ˆŠKNËÌ.(Úº³¼#¬oBnÂqHöIqâÖ÷ÊþoèuQ}ú BõI€Ðz³ðšëÐy÷Y…yÖ¥BT×X(¼.NPŸ>Ä'°H|†ÕòªŸá©¯£ŽŠ;JØŽ{d ðB§8¹€$øþAðÇÕqIir7o݉Ò{ðh͉¦SÔz;ÀÔÞ¯»d0é–&Z…„ìßúB†IÝ1 -ÎRªK4ÃXdp€ïô%Iö9:‰$¿§)‹ì¿ êó®ì¦JªU­"O]ŸMÍ›ªm8)jç³¼(0ë{Ú“´z„¾6¹”Q©å=q<·Q<Ó­cQÅXTFZr<Ší’ ÿ…ó±©.ÐÖQ/37CB£˜Ñ®†HÐçŒVBÚÀëÒ¡~?Õ9;GSœ`cïä2í–†“ˆäÌ+ܼcͰ®±Áy¥ƒÚn]››êKï•}#~ú®ª0Kú h½„¬KçÏœfQ­ª ƒÊ‹è`y¸Mu°šj^á¥â (¸âû7¼òèc ôH|Þfì1· õ±¶±spvÅ/ ^N,Y›©É+,Ù^V^¹ïÐ1† ùÕ^ ¿ÿƒz¯0 ¡@zÔ•'O岄2N„ì Ù—êfX+’sKQ~öúµk&d²ì[ Ù7e”Œ6ÔHdÿ¹ª/v¥R}X*xEªïBšJùÌ‹ª¨bOmiĺuçÞý.ªßãšä3[’;­θôÛ7hM8õ憺c‡öWU”m¥lMBLdÄRij7ÇÝç.òÙÂ\lêm*·CD»øR¡¯L’Is Ì‘ÂýÖÜ‚ê-e§›O14let<¢3gcñ¶ÒŠªGjNprr]âbûð›GNy„z|Õ„ê}ªïÀ¿A˜*EµWU‹ü‡<õоÊÝ;,MfZR\4òüBáµ²¤¾kj‚O@@|…V†U}ùøu°?@òžAìŒ$>¥ÜÇqª ÒÓ›`›˜")ä®=Õ I]cKkû…ËW…CÒWNþ©ÅIϲÿ¬;‹Ôò¤“’³²ßÖÒTü0ád[I!25)S ‘eßÉÞV%û#»•ýÿKìwQý=ª¾›ÇÑÊÂWÅ$`O9ER)«mh>Ý.TÿË»R'ÓëI[ꮑaI8t)›qér%ÖTï¡p.ÈÉJOIŒZ*ÒÙà ¥Ìv"Iß;/ŠóYR}UI»2à²td_îLƒSzbŽ&¦c1GOgjLc0ÎÙ™©É/Ú²s79޽íÜÅ+4ÄίDrr¯•/ý©$ûÏz±o”﹪ÿ¢ú·o\ÇWh‡ÿ@Sñ¶ƒWYëRbV‘¥B~þÇ~¹xåœçq|ÕØ9gYvwözF!T®"·b2›;I¤{é•R#B]UˆÂ`܆q) If¦q—kÍºì †³.{qξ?Ÿï÷×ïyOOÍÏœ£éû'|>ŸïëýzWCõGá…ê›w0´RÕÄ(Ôׯ~Kì·#–0ö;u¶°ê÷!…tt"š¸ºÏò ‰ˆŠEéMIË8ÿ”9Vñù• |•'ú,R¯FjÌPÑHÙ—ªoPÈ"å·n¢ì\¹ )&côœ!d˜”}«ze¿¥JÞØ(ÿtT_a•¶êS+³ª?f,¥³O@p©~rjÆ*¨þXêl ¼ª¤JÕÇ’$°VýWú’Yîèvt½êò…s•ä7GJŠöŠ%åf¥!›a8!´¥i“Ç#œ‡Û¶ôÿÒÝJ¦3ö$âY¾î¦Þè®´¨oòŽŸË7Âsá’4&8ŽÌN(Ž˜¢8õGͲÿSyºª/ƒ®êyúDùa©…ù¹YÀÕ‚¸èˆào·)ãÿþÁH¢•M/é¨ «vmñ꼇µÇ(Σ¢D°¤&¿þ­PHÐÄ¢;¤Ý‡á£œÑyÝfzùÍŒŽ[”œšž—_Hþ³¯µ÷,’¾Âõ[€è/¢è—}1Å»·k—/Q4dá™Ê@ ö÷ö˜Þ ìÿâm–ýzTŸZ™Ø“PT‚ÕÀ¡ŠêcKa¤úK–S6 -I--;~òÌW"šyGš¼j¤êÿ[ f¶ÙÇHo8™Ë)™©ÕbG«ÒS““P4Ïöó¢F6v̨CÚÂq°¥.:p8S·m+¡Ïñ¬³¨7º)åìéê•QŠü¤I²çtëÑË÷΃œâæáôĵ£ÚfåænF³Exò­ëÈ~]t6Ë~S~¯«þ‹ç¢÷>¼ÿí=®½WWh½¥Åû÷ÀÖ¯Y•‘š¼(!vnX;ê˜Q‚Uw©¨ Oð«6†jÕ×8Å …BJóa‡$ìw4g‰ìÝ—x‚ÎËéí6g^|ââe+2rÖ¬ßH?µ·ŒèìùKW® ¢¿ðøIc¢-ûu©–ÆxçÕžg¿Rdç'ä‘™+—“ìÏ MI²ød toHöß2ê7Nõ­{p%sª?Ë',ä«°#Rý¢C •P}¹¢ûBõµƒÙ0ôÕ‰\æ:vãoè .ýðAóv´Ú59¼¢øysÃ(™§N䡨R4[[bIfXß{[qðïjCß(‹Ò’}e–è·4J>xä'î]”¦q“\gxú…ÍMàδf=šížýÅ¥e§äÑkExÒ¥ó›e¿)?MUUÿqíô^Hêõ«—/­Ê*Úûév8j^vÚò%€UdH Ï¬éSYQ‡ìßço=­-á>ÒPUT™úz°ßJÁ $ò7ï1OØ"­{PÙ;:Á~&¹ºƒ(ÁQ± h½ä‘ø @JÉ‘c„ÉjQ|k!ûOëè?e_³1=&¡Bsü†M’dÿÄ1t& rËFˆ$Å'Ë~!e‚‹ÈÏ~,ûê(IöùvËþQ}2Nf^‘ìç´TÿÁC5— .H§ŒáΟ>áXþç]Žeº\.}7ü¹œ•–²‚A·îî:½–ûX?›^=­­ºvîÈ…LD³TýV­Œ }mê›( J³T´'ÒÑ Ý–ò30$2f>•¦ì¼u6s|-?yšI½V¤çc-Ùÿ_³ì7ѧOõŸ Õ õÚ•Kçñ*Ž>¸ŸZoÁÚœÌÉIÅUþ^3§MÿáhT^»~6„ªÎÌÚ³ rß­ûüŒðZÂ~; -ÿ‚ÎL[;òHüƒ)ÓfxúÎŒ&‘LMÏ–LÙWŒ¯@½tõÆ­:¨|' ¢õôc_+Ïþ¥1ÈÈ>Åç™SÇËJÅ$ *ÈÏx’}´¦iÄ”¦)û ª¾© ’ÙNQ}wBUDtÜ‚$YǶìªq«þFV/ –1½ª_·Nåó_)ʘØÏºÕÙé©ÉI æGGbA^3ݦÀpF wlÇ¢kï V$“YB_]’Ü’Q¨ßBLS9y1LJÐöf¸w”[Ìrˆº-¨p¸hM™9k d~²áÐ$oVkÄ§î ›©ßÔ^=ªÿT*+ªdÕÑCÅûv³¡f§§,]?¨òõtw8–•*¯Bª?qá}W‚ÊHª¯ƒý–(šD!4í`ÞÅß wßþ‡ 1š˜2ÝÃÛ&Ÿ¸PAíݸyÛ®Ï@%“Jž¿T%©òíƒZÕ% bE›+ŸB&Ù¿Ùÿ.Y~„[Ó–ë׬ÊàÙ³„ìÛ4 ûF³H#½F«~_òSV}7*(lî:¯UwAûáNÎ.h½3<}CÔÞÔt’Iê½ûŠK%W.^½f“ßCö_*d‘³¬†ìS‚ž–²¿ƒmRÈ~4sEʾC““ýº”ÒQ}Ä2í‡T©ìÕŸ¢ª>éi^þ®b%‡UP&_$?­¹}÷5±ïžh -êë…¾îj(‘k‘Èwo×p£Ýœ<~´´˜"yó*µ©ÉIð›ÈÐÙ~žÈä .δ;[e‹Îb=¿—бÜJúÆÛ2P:yež"D•ædAݶßdèh8δ^~˜fl¢¥©TlE„–R¯•Ãl–ýŸÌ{Mõ_*ª_«øi•ª’¢½»¶mÞ ô4q~LdH sÊÅÙÉqè ÅN;˜ÖaJKN¥ú?3Œýv‚*ï›Â~,º+¤?B&%WæÄÄ'.^¶‚¾z/ÀrðpY_U'uÈbXö_©B)Тô¦š[,û•RöQœ6Cö³ÓR„ì#Cg6QÙ­ŽVýÑ¢Šù’êÏ';ÍÌá&ƪ\U}JäúT¿ÁöŒ6SÈtçJC§ýt;'r&Jm"ïÆßÛƒ#yôÔZ,Gf²ØŽ e }ÚV,eCZ1ªt'¾w9Ï®¢}8D]&NÎÍ)f~"[‘¡ÔkËOˆi^¿)ü¦V‘ý—ͲßT_ýªÿHÕS¨þ‚S{vRívìï5ÓM`jˆ­M/þ¨¼:”2ùq¨/±ßR~¥ò2VØ~Ì»ZZCØ&G~ Àâ›°¾B® ËÞ¢CT|á“._•ŸA-Z¤ûºF)ØrïØrMdèÉò£‡”æ„q.#ŸŒ!Úe_Wõß1¬úÎ.ÉÞþAá,§PýÕëtTÿŠb§*§^¬aúTŸÎ\ÍcºóϹ†ñf -Öæf¥¥,]˜Œæî:iN‚3 oï¿ö´¶D$›µÿ3-ÅV^;‡²N*g?ºåI¹w*·¤n ÉéÑËÆÖnȰ‘¨N“IqèÖQlWdpˆîܳŸ‡Çyí†ð´ÚfÙoÚ¯Né¨þ…³SE{a@\{INcæ„ÎöõtweJÙÓOPÝôwïáHQᕟÀÈÞ£å’ô ð Z·áo@öC`éjÅ:9`°ýpeüäi3<}C#£ãðRÓ³óò ?þ¡¸T -%}†[5·ï²=~¢Ç(õ*¥¦ì?g¥¤q"DknÝpù?ûuâTåy…<6±šÄ8šTëtQ” "Æm,Á+‚VM¬qA‹ˆ  "û*(»È"›,¢±Æ¢Õ˜¸ Š€âFµZÜ£ÆÆÚ™ÈØØ¤6™žsÞ÷ÛîW,׿z¿?á;ïyžß9u¢EÉN'Â~|L¤ñb_ õ»¿Þõi4ÑŒúÅõi2t†‰}, ¦Í+Lúÿ”ÍåÎ-À «ãúšjÐ fÓÆÂܬtìãp|én®sàªuV9Œÿ7£GÀh,P8ú4›žoÁl^7\è‹ÿ”ýRvݲ?Ú§/Þ¶ƒûcÆÚMP9ãe‹?Ô?ÛäTÖ¢Ûw~ -À©©ƒ—.ûŸZ°oŠ}ãú4S_Fý“¨R -©_¹mKY1œ½°  oÏ…óç°²µ ü‘h -{ È¨N¤¾ld¹Âñƒ7/êö` ¹Åk¼zÁ?“\pæ#€B`’Ö®ËÎ/*­Ø -»€¢åá ØÇmh7]´Å ÿŸ_Þ•°_/`siQ>Ã~8b‘€ýñF„ýR?Q?+·‡Ô#ü -£:æÔ‡¹<Ö—úBÓXZÙ vo°ë-Wþú—?ŸemŒºÙ -GXþúŒµIq1!˽=é -›æâäOú˜&à -™æMn1ô;y8Šªø¥„œæÔ£6¶öûðG=½ýâV'¦P2ào'Â>kQû¦Ô7¯mêuŸ¾° BHá2 €Òˆ¦þ¾K<àêýpšË$»÷Ç`FY 2c2%ê³Ôïj€ÔWÄþk| xì÷ê {ðsÆŸÁVÖÃGÁlM QzùøáÝŸœ–™S ò`Õ±:–.W®^¿Å $Û}°/´¨ôCÿÎPyU¬QŽýM%p<±?°|éâ…Æ‡}åp8õßÐúIk3ˆúü;^߀m|E¤©’úOu•ñ÷¯¨]Ì.Z6• §OÖ±2Ý”—äd¦­‰_…¼6†—s™½©VЍŠÒ¼¬tPd(ÂÔÍu6RßWa¸µÕ`sغy%—„úºbŸôá‚ü¡«—¥‹íxÇI.¿ý`ÖÜù {/‰ˆ‰#T•VP¾Ð2œTyT©0ßµý4°ÿ¸õÑ×"öy‘ž¬=&`#Ã>ÿ§ û“û£¾¿@}8Á¶õõÙPä˜:õu„¾õqÛ`Ã3g¸9väàÞOw²*^Ÿ‘šG˜7ðº_º½-N…ÊXKOi. }]ØçU -Æ1Ç˪#þTÎâ¥ËB#¡IÓ³ò -K+è¬=„¾9kÂþËòÉ÷á©vêß¼Ö|ùÒyBáÝ Ë¼b™×¢äR^½#É?|z÷‚EYúªR_¥ûÝÄØïýöÏúâÕKñ‚g/¢ÒiÊtÊ/¿À0RefNA ¨—¡ª¦î$` tõ†fÂh®ƒfÆhüSû²&ýlW%KûËŒû:¨/äÓ/­›ú kÒeÔ¯Bê+0lb}F¢‹úÄ"¾t¡ñLC]MNÚlâ5 «¢Â‚üð›÷U1¾ôQÇY æ]ŒSé%„~7Yè Žå¿Uxî¬Ké¯ÀËö½‘øÖUÎ(œ‹¼ð®…*MÍÀ—g-bÿX-ÞOøSojǾ¢I_tj™¾çût¸”­ºT¤>¾Œú›K‹àîÅe \îÍYê‚«VAžO -•b ä±ÿO!^8*û› ‚³—Tiç r†€y+áðMIÏ΃„¡e\y¹·#æ!b_mtƾš,ûÿ ìßV``¹°Ÿ•¶ÆX±ßQêGDǵG}béãožèE}¡†Õ=|™žù‰ãG#n¶o­ØX˜—½.%uãï #™?çw3¦:«°‰á¥£oÌØSà°·.LE^ÆH}ûB™2ãô£Ë–ýV[{GÎÌÙ®x×ò.ÍÎ+*Ý̱/ÿ«ì Øÿ— ûFöéMýFõ7•lÈÉ„»7:"ØÙQßÁd=VAF}O]©ßùKÐE†}ÜXÀ~¯·Á?l+mlñî%¹ƒ+B"câ€@ëó‹Êp–Ì@ç/6IÒ&K­´Ô}E—îGYn.+°l|ØoƒúïèA}(â -‰úgE•vŒúßj‡PÃU÷nÊŠ Ög¤&ÇÅ`{{ºãM;ÍyƒEL#ð«_ð&î)U±ZwòX©ßUø¯"öñ¿Òa‹Â§.+ÓÔÌœ %›dØo4aÿ¥øÚ£¾F<1êçg§§$¬Ž - ôóöDJa€ú–ïâ*(ÒIݤ¿ŠØï&,ú‡½èJZˆÁÒËÇ/( 3&-3wCI9É TS×€!ÓÔ|íÆ­;‚ÄuÐ2ÚbF}±L?ö5¨OCÁ™´OýT¤~9§þÑã'N=QDé(ÕFýÿ¨—°pÐâ8ZpgêkX òqy ÍßyÕð<6 ã7pÔò‰ð§ÞCÑÄ ýW´Öé["öáÇZÂáØOœ("Äßw‰Çïç}ôá4—Iv̤æfýÕÃII}C؇Œ°‚+yÄô7ô®åPÊÊÒÕÍc‰¯pxtlbʺlNK0K܆–ë7oö™-[·3ü¿ -múäÉ7Ô·|&ê·ÈLúHþ^k³W~÷‹›×[Ø4NÔ…‹JxkEiQ^6Þ^xÒúB ƒnfàM ó=bØPK8jÙ@àªåO±|$>Ù¯•c_ø³ýÍÌ ûøÔyâK‰ˆ‰K°¿“®Ú:†}?Ö„}cù´…“DýZ¨¿«_ þº”DN}w\†©j$í×·¬øGÌ&CQÿeìÓà"0ÿÐ&`ì„UÀ±±ï8Éß¹ Ü!eB#qЖeh =û(fNŸ;±©ùê @¬ÃCX‡gÆþwº±ÏëtûÖM 5±ïdØoŸúæmP?GƒúMWp÷t“T'õÿ­F}xå÷¾¸uãjsÓE þɺšªCûöü©rÛ–²âÄ NƒÞù‚¹³@7NŽxÓŽ|ZŽZ>ªa6S_‰}á×Âe ÄéÓ·¶(|êãìyŸºsì£oò‹à¡ãŸÕÀ~;GÔ‹Î.Ó×ѯl’¨ß¬IýÜÌ´äxN}7F}Gµ•$RXE4 ¤]Ô`)É’Î^¢%ܽƒ­@@cЖNS¦ÏĘñòY˰&-+— ´s¦º¦¾AÒ% š¯¥uÐPNì·Ñ§2ìghbßNìÿ_§þsS¿¨O\S' 㮑¶K}ÅãV©ñ •fñùîð̱‚ÓSV¯ Z± Þ9uðä‰ìÆŽ5|˜Õ`^Â|=ó0dè«5ªðo‘8ì°ÅBµ¦Bud…êÆ±Ÿœ–™«‰ýf½®¨]¦¯ƒßóQeXŸ©¯š0n,ÔB)QÿÍ7ðè5t2iÆ~71e¸-û›¡€—v*g–3‹—ú¢.c“Ö¢0h`9Z{â`Ÿ#ˆc_X‡oõÂþS5ìË |y¬êÙ°Ïÿíû²¨Q_–LíPÇîÏõÏqêßiƒúúœ]­@›‡0‰»Hý+MÏŸ;}²–ÙæØ\ZD à ³À“+˜t3 ºë`˜?½ã0Ü<4~n÷îDÄ> GjT6*žµ>~Aa+MØ¿6¨Âdº¡Fýí` NýHÜ"Þ½ãmq¬ÕL†ÜZî3„K–3CèðµµG}0 —.ßÐÈUñÉ©™,i*wíÙwHðeSó5EÔ(©û?ènÔ{Z°¿å°ßãG„ýΣ>°>“`´êW£>ågêkªí£I”—lÈÉÄŽ - ôóQÐIû_öëü)ËëŠxl'…LÅjÒ6ScQÐ$6™Z  ˆ"AÂP†:Ö€Q@EˆHˆˆD@0ˆ,â‚q©M­¦.ˆ,A“1ÑÖ×L& .ƒZô‡žs—gÞȼ÷O¸çœïùœ©>t“Z 6W0µxyÑV—Ÿµ½SíßU¯TO/Ÿ©oýéωˆš¿hIÃþ¦­ÿU ûßuÞ¹kÃþOíiÍÃãG²`"Ò¤~qþšVâá;oPƒÉ—Þ½¯QŽ>ÏdD.©±Ïs†ŒЈQpø¾þ‡ñ$iÞz› Cìü‹—½—™‹QÓ°€y˜“ èRÉÙ8h(H7mØJ½'`ÿROaÿg½¸S­Qÿ5K¨OÏ®sŸ‚úOuøúæ5ÞåÇ[ëjìƒBlÛTV‚-´yòÂù±7oãI;ÑútÃJA7°X ÅåÕ‹©/þj§Ž!>ÑÛwÚtâ›9ó°ÑW~°&¿Xû¸S©niïT£óËöºñ¤±¤œ¤¾AºÔŽ ¹ä3ÉóMBýQ( röR1ö.õµbßN…!/Ф!¾Ë¢fÚtÌh4fÍš: {ö‚êAÝ»lSQZ\—“…mžÉ á…}ûtãÈ]àA¡/ÿ_ÙR¥­N€ŽgíTê›h3Ø¿zƒ,UÓº1:ÁlÏú§J%aAúÔ¯RŸÅ’ïdN}ˆ%%õ Á¨úÄ?,iè(¨¡ÀAÖa`œ3/1)%}Åû«q*˜AM­,m®\ÇáþC•1­Âþ×ÝÃ>d ûÏöyìkS ŒúˆÑîPŸ—á‰)êëÓ†œ\—Îó.‡å»ï“ÝÄ6ëÖ®ÎÎLO!m>3,$ˆÔö¹ëHÔ ktÂÞéÒRôZ-dÍ.nUŽ}G§‘û'3ì¿+Å~Åæê]:Ø7©£Ìö¬~ó@,úð¾Œú€ /ÚO´H©/I% õÿÔ-RSI - Þžö`bÖpa^§—¯ 1P¦ NCn~1& è@M‹KÇÁbì_ÕÁ>ݪó%[ÕC¶U%Øg[µ/c_JÏŠÔ"§þ›H}°(]Rêo‚2(©¯USÔÿŸ’ú"m çÎ~)éòÛªÊ7åãÉ•š¼^´¡Á¤ nãHŸÃö…:УKäQ•Ð\«ôƒ9öGöÑ7Sì',Zš†¼Y'Å~ µ_ýëœ ûúº1:ÃlÏʧÎ$õ<‚õÛ$Ô/צ¾2”ë…Rï‚4öí±Yptrv´ÁËŒI —°hIZFVAææê{ oj…¼ÆáöÝ{]÷°q08ZØ¿o9ö#8öŵú²¸Vûö•SÿE¬§þDV¤þ‚äeËW®ZSPÜÃÔWцנ­µ‰vù®í[*K×~˜ƒEHJŒ‹‰Ä6 -ðóñò¤'—‹³“#× ¿iíT¡ß‹•Püð/ø¦À±û;9öÛöuöªò‹N1Û³îiE’\¢·®ê3Õ@&ÑË·P̤Ù<“&Ði@I3ÉÞÞ(êK²†ˆ̂à vø"hÜŒwŸ€ - - ›N¦!%=•ùQ h7Îá£ÍÇOÊÆ¡Æ¡ëùıûÕˆý§Ú«}.öMQ¶¯ŒúT¢Ý¡¾ -¢šР~ÇeB›“Ç[ëjì#mYIÑÚÜ2ÉÁEW¯ÿï #Gêÿ欂T—Aº}{³*ìÛÛó/þµÞ Ø/$Øß د¡ØÇÅzEX¬¦tctŠÙžUOAlº8D‘úça(‚}ºwõýððå‘4l(FÒ£©ÿŒŠ˜‚€2÷¸|ǹ‡Î˜Ó¿pI*2T^µ °¿ÿà‘úcŸ±q`ÎüžŽƒ  «±[û ö3Ò–H°ïØǰ?L\¬RdöÕÔWRßõáð¥Ó RŸ ƒQ & d&†#]‰3Ý'xOñ'Ó‹Ðåæ•”Uaæì?XSwŒÃYèô0ö?FìãjEìÇÏâØ÷¢Øw•aÿ—ýûÚ uЧþ;H}d(¥þfºwÍQÿGÓÔ¾ÿñ#F›ïe´­mU¬Ë—/K^K -èÏ÷.©Å ,^R¾y¥¼éå"È„#‡žµèÖèÚØ/±_Ø'»•èæ[©nØ?Û°ß?Ÿ2ôE qDŠópR¤þ–J1LQÿùÁƒä 5‚úÊQÀYD†cß ôÊØ7ƹyxaæ‡Î˜5;:.aÑ’´Œ¬œ¼‚õ:ljâ8ÈSç+±ÿð>,W}ì—ìg¾—²8‘a?a¥éì$dNÀ¾Šú¤õ‡!õ±@}ªÐ5õ÷´˜úü¾Š6§6Í µäû·o©,]_˜‡]¾4)!.†[~“½<Ý`í¾: -àøÅ´ÏÔ7ä›ì‹.øFûÐçû•[DìŸÔÕÆMet–Ùž…O=Aÿy ¤ÎÃEJýÏ8õ)‚rI™£~ŸPèUìÛ Ðd™C¤I¦C' ($lf8 (qqJzfö굘:[é8k~~úÌ¿/\VÄŽ…ØgÁÓì‡ öÝØï#ßlúéSŸÆ‘“3¥¾ûDoFýH¡ÅDê7›§¾Öïk]Z]JÚ´o9´!ÔßTVR´»Úù±ï†Ï ¡¶!ÔãBÛ\ºvííT¡oLêk,WóØÏÄ£vCyÕ6Ž}¶]/Êtó>šþ´r¿f¶gÙÓ§~—Hý0èbÐÆ£‡‘ú€ ˆ ,šFÑúÔï+ Ë: ‚FŒr}…§Ž`0µfüÂäÔå+Waì”Wìlžh‡q8wñ -ËÛwïÑqèì·2ìïDìóíš8°9#48Ðß×bÿYûT&Ÿ~ Ôw¥Ô÷âÔšO J©¿•QÿXPÿáïïpÚЕÛÖÚÔ@iS½¹¢´¸ oUVF*éòÙ³ð÷§ù¢mèÒemÎq#ü¿´TÀÜvÕÄ>ý蜼Âõ€ýí¨º^™nDìwÙ°ßÏŸ:ô%bÔ¿~õÊÅsg¿ú¢] è >CP?¡þ3²Ì¡¡Ã‡aÐ`n °&L¿ŠÍ˜¸Ä¤¥é+ w -?Âq Úlhn¥ãÀƒ§S2œ›æcßöëö+ ö1xÆÇFE€6ƒüìK?z ÿh95{ý£uŸlïbêkPÿÕß3ê2ê'J¨_ÝóÔ× MKãѤ 9´Ö}¸:{EzJR"ty8ùü©>“<©m`ç:²Sk𠇲>7ôÿ»‹ýŠýÀ¾°_5u#üµ-öûáS)‚Hu\:óÐÆº ¨_J©ŸÚ]ê% iìÛÙKc‡NƒË‚}AQ±ó$cðÈÆ¡îXˉvYòè`_œ?êaÿ Å~­ûIˆ}ÂMÿ)€}<ì§ÅÜ×kþâÿY ”eRßìÜ 0‘ú9¸r%Ô?Á©ãé©OisiCnІP¿ª|CqþšU+—/K&»œþýx° ®Üá/emNw®FŸœú–b?‚`?5# ±_ª©üké†Õäщf{柚úOÔºz¨ÿ%P¿…tǶMeHýìÌô”Å€ H«¨oX ³@ćˆO @ï´éÁ¡3fÍŽŽKÀä¡ãPÁơơíÔiŒž+4zÈ8h ¨[ØogØGpVnä £‡zÓo²—‡Û8šJìK°˜‰“oXo7g{†}YÖ¯¼Ì±O¸){Gå©TNýù aãšYÚÒè]<}‰?‘ú˜¼ŒúCI}øå·õEÚtka´ÁàÉ•¥ ðñ û–þr<³æÏ3â ¢çßœg¯ïðûpWAر‰iYyÅåtÅþòh膧-îXÞLÔþÓñFM5mý»aõ‚:Z4ÖD~V–äd$ÇGa¹sÙŒMý)Z ¾ú0°æ¡ÓðêogÒêùýS 'Œƒ½‡Ô¬¼"‡½Ÿøbô8ü…ƒ -‚ûpXÑ´wì㊠ôõpÙÆ±ÏÂ6šm07ìK°aµ}%õ§üŠSÿåWäED©oïìæíû–S/£þñžSg%Ô¿ñÈÔÇ_~Æ><ÐÛhÛ–Q¿¼˜YaA~^®NtÝÒ_Ô7ž;ÇP´ ùæj¸ÑWø -ìOû6 ûpXAÚQñÉ9¨›ö£nZ;ºz@7ß]±Ïþ¹¸ä£ë»Õ&ÞŸlX ‰-tëÆ5Š ¡þóHýîζ–&ªÏê²¢¼¬ÔĘö§¾•ùrmS_R<|¸è4 ‚ °{,zã­åfV¶kÄqÆqHÏ)(‘éޯåã AÐÃaÿ¶ûm£°µ#ØßË Û‡VÒ¦0‡ÞXÞîÛÙ¶¹Ñ,ƒbðÂ7—ãFoÑûxÔ2ìÃeqÇÝ”qÝ´´uÝœï¢[ZáŸÿK‰ý‰Ú×ôS–>1‡;·nâ8\á‚jomn¨#Ô¯()ÈNOŽ‹ -Ãrv@Qê/QRš†¨¯00 /¼ÈDÊg‰ Sh]DLBj&ŒCÕ.2M0´~`¾'è¼)¢óQ°ê„À‡úû§eØ/ÎÏBìë}< ~„Ëj‰ûÊ«÷´eOAýÉTŸ<ø™†ê¯%Ôwró‚mŸ’‘[XVÅo,B}\¶#—.?.õoqêÓ ¨/ìÚêr  9±‚|=]6ëíVY[¬0ÁØá—ã¶•åο¹ö­*ö§)±¿„aÿÝ ’wT\rzvݲëš[yàÃ%ÿüÞO÷Yä£k_ß½6ñðTKŸÃí›7pAýAXBM‡Aîª*+ÊÍLMˆ ÇrQ H»ÔçÕ3Ê@¤|DΙk Ø_*ŒÃ8~ÁaQqIéˆÎµûö¬ÃqèbýóØØ¿§Ä¾X@»ªPÉñ°eý¼\ìÅÓêE ŒçŠØ^Š}IÜúJ[öä5¤Ä§Á,#i m Ô÷Aê'¦eåWìd'Ö±Žî¯žõ¤™_2ÿ¦÷TOWG+[µ5•%9éÉäÂòvwvØŒ»v­¥Ùò¥:þròË©m¦þZõ›ë»õÇ}r[9bàºpÔM.êæÃ?#Ç$~º÷›óý¸gyäwé?Ÿ¨ý§ë) -ˆ7d®|?"EPCÝçŸî«Ezf§%ÅE†ùy¹9Ù#õíVÙX˜šŒ›úú›†gäå#Nƒ`ÎX?£ÆaÛvŸ]xtBJfna)‡–c0ç`8öEv>¸ˆý‘!ºg…ªÝY^œ—•š¡ @ìo¦Øç±þ‘nY!o}—øFµ§þó"õɲ¥©ã‰Å¨ŸL¨¿‹Q¿í¸¸jŽúÿQ£>=hÉ}uædwg[K¥>Ð&/“dèëá⸕®Zks þbva±];ý¹QÔ×À7WùècbßÄÔÂf•?®@7‘qIiÙ¸gk÷}úy]F~â$]´ôŸ_»qëö]ÎúÑå?]ßÝ6ñÆzªÔÿÇ}âN:Ð@‡<9‚ú•¥…¹) Ñá!>îÛõm­Ì€úAÚ¥þ$…Ø4ˆz°?{®1U§8®^~Aa‘±IÈÎr6ÍGÛY _|4ìÿ,Ç>lÚ«û¸h[û4rpgÃ>k +ÊNcÙšU\yó'ÉÅ®N}ì ¤þ¦Í¸ju1‰©„úµ"õOCõõ¯ŒŸúÿ•ïYF}~в󪧫½µ¹¡Ž,ÚŠ’üìô$¹›3Ò7­¥é²¥üÀ~9 ]صšøæãÅþ‚E 3+Û5¢nBP7°hK+‰n óÖ8j{é?‡ÐaÕÞÄU{ï§ûì£O`ÿ)yª¥Ï $ŒÃÈ ¸óÜ™¯º;qU#<Óc#Cƒü<]úï!õ­-V0yr)©¯‰qxFV?’i ¢ãðº8¤Ü½BvDǧdäÀ8Ôì³ -ê%ؿİ›LÃø±/‘'Áþ2ì77Ö“óŠ`?!&\‡‹Öaó&z]­0ysñë¿{͈ïYÆÎ)ZľzÉä‰Ô_ -™SêoÅM—Œ‘Ã}Å©âq¨ÿ³õGêÃ/?ôg¤MUYanf -M܃Ñ­9ІF.ûåâªÕ -õÇâû³Ù¢]aa-èÆÓ/(4261-+¯¸¼z7¹¯šZÚ:»ûçûG. ¼¹{_µµÿ”<µ»—MQ'‡‹C}AÇÛ67Ô‚öÔT–€;ã£v„ø{“Úð¥>AИÔ×L)§×þô^ä $RAŽ®ž¾A¡Â8öY„ê{bØÇ]K¬3'Ot¶ñª,…Гâ"ÃpÓ:nåçÀsá| ö§kûJêOá™3xÁ¦]ü&Dn³Ún=,Z‡íî>ºð˜„TLÎ+¤~3°“ïYBýëÒÀ‰úÿæÔ¿Ô¿£ >ùåudÍVçg§%Åbà^H›tÏš.CÚ`â3!qÙ/×”m‘…}¾iA7ï0Ýø‡ìˆŠONÏ)(©¬Ùƒ–xÔö à…%ò†æ.ütIòúî·‰§òÔî^¡ô©HýÀ8 :»;ŽT”—™šèëéâ¸õOïýáíµcQªæ¨?IQûÏR¡;…q0œCá¹ÌÌÒvõ:g‡`‡Œœ‚R6G„|BØçöDì÷tµ·²ª.ÇÔ¢ÃC¼Ýh Y›¯ ò$›2§Ø—VF"›úÓ%ÔŸ¿'çÕÉžõ -‹ŒKJÇÀwáu…ê¤köÂPÿ*Ïû¡¨ÏþùßeÔ?ÿí¹ÓxжlanFJ<ͨ¿i]³@ýE 0pBá—«,ZmD®ÀþÔ±°O,GOßÀЈ˜ÄÔ̼¢²*û¡&~Ôâ‰Exó·ë7ñÆj_ý‰Ú×àS–>v›Á@#ƒ8G¿<,"ÔìïåæL¨¿nµ­%²¨?wŽáƒ¨¯ x -ÓÀÝù¬û³ŒæQyš[¯äãàá¨ÃqÈ‚q¨Þ½÷“ûgÎ}Kt•ÙóîÃbÿŸJì÷±Üöñ‚Øc#Cƒp×n¡Ø·4]¶”¯ZµÐµ“¹¤õÅûJLœ° _e·þÝàš  NÀú)¯®…㪮ANýþúðÔv¬H}zZ=uB¤~uyq~VZ"ÛÕ‰ÐÆNJv\Ñ5Ë—'®÷È'Éþ¹*öÕtãæåË6;¿¤b'Éÿy'ùç„7ÂUËö-ù鵯ù7ªôÉ0ˆÓÝC tqh ǘ³±þ i‚ @§.ÀǃÖÏÛkWruÎ3šEúGBýÉZ£¾‚äã%„ô\€ô4µ´Y½Ž¶‡äôì‚’ - ö{°†.à4<6ö™>ɺ•awuYQn&àsGˆ¿·›³=`/,sbOã×`ײ’¤. ];‘«õW'æM¨ÿþDgPhdlÆ]YCÍÙBÊçëïú(9¯‰i à?õo°°éeEÚF¶cK s2’iÚî¦ÍsÓ4yÐŽ -]úÏöIìrÝÐÜ=|t°mS2r éÿ¼¹µ½«çÔYLxïÚ;"öp$éë»ã&Þ¨'›Ù0Üã‡/1Ðà>@Î/üýúþêê>ãNm{Žý¡fk« ¢¨i´Õý²‡ˆÄ­‰‘½—ld£Œ¯€ {ºW´66M"d(š“ž´."¢¦ÖŒ&?EÍ9}ÆçÞïD1’ÃåîŸðÜÏó~¿žc‡ö‚ŠòsÁœñ[Ãý¼0}–¹/rFtJû€ñ3¤§Nå°Ó`8„´×a¬ÛSeç¸cÈ“×!𹫴²v/c¿I è'aÿáã°ßu¶¥±äÀžêòâ|R\TX ¯çÆu˜C0wOs3ƒ K¦§BHoàšøáã -Ði èÄq;¹.^ -%ëáí“’‘Ó®Û'¨ßÆ‹â¤èÑöSQÚS'߯W^Z”Ÿ“%†½…¨O´™/ÓÆõ¥0êë`_¯lŸ{a¼˜»À>ê†n,/¿àð­ñP·¹ùEeU|ÔBß¶´wu3o¸paö_öåØ¿¯‰ýQì+ñÓÙÎ\A iÈ@=´$ÎõÕå» óA‘!>žHý%n.޶*¢¾¥”>Ц¾Vê1À¾ˆ¡É€}Äç«ómì]uÖ!ôY\^]¿Ÿ°ÏÒÂþ'Ãþƒ°… WVGŽû¶¶¬Œä„èˆ`/"G;·íÔ)œC8wƒ²þ©ëRÿ×úÔÇ’ÓÆÓjùjêØ°¨¸$È6\VHýÆ–³]\±CI}¾«º;ÛÏ4ÂA{¶†_9ÏÚ{3І+h3›†m:iâŽUâ+ öǤŸ€HìÛêB>j±pš[;ˆ7—¯]‡‡NÃÇÊý¦>wî}=ìÆ¾’>ã¡/¸‰ÛÐãzÏ4ÐùÎ6\¼|÷bôìÌÉJEù‚–¹»:Ù rÊᣠå¯ÃXÊ¡qC¼¦æ–³@AV*[GyB#cS2Ÿ%€ýƒARöo>5ö¹riøÐ¸Ýˆ}Ž¢úê²âü\}lTh ç†µ„}{ëù¯rÝš2öÅàÇ* ûÆn+œ6žV¢c‰œ˜=‹—®|c½‡—pDtBrF¶gàÄäÑjX¦þWCA}|æõé ­,-¢WŽ£öeÚPÃ@¥¾òŽZ¨ÛqÆtãºÑoÚâ„…›š%ŽÚƒGO¼óîÄ›?¹Ä]øæýÑØWú§ú´ Ò2|û5ió ý^ä&‚§é´X‡ª²â‚ÜíéÉñŒ Š7[ç,K ‘=F¨?FQû ‹}£ë`6UðÓדh“—_PøÖ¸mäÏ2ÀþaD„ýKW?íZìSå"öiø{k+J -Õ;pöáÁ~^X¸te-ÐÂþK€ýgõ°?F Ø7 þØßˆa‹Š%q⬉úk7xú†FÅBòäæã¨Ð]…Ôï– -Vhs0“~RêÃA['& gPhãlo³À€6Ïhh£ÀW>àQ«…}I7¯©l\Ühö›½ýC"¢ã“ÓéWÕaåžzxÓýun/ŽŸJçÿ½¸µFc_ÁŸAè‹] kbêh@›l ÷ÿvס¦bw¡:;#%16Ô_³réâ…NvÖLýiSÍFõa_Ä>`_$Ñ öçXŽ¢Í>!‘1 )Ð -Fö¯=-öµ -Ø¿؇Îatx}UYQ>‡à»ŠÎ,k(®VذÓg¾<GMwy38ƒg‡º'M¹Ôï mHýÆëUž³!õû™úðÌ϶6 ê×V–ÂA›Iƒ†«Š¨ý -Ô×¥T°ò]¥´W>ìktcç„wÖ¾o`hd,µêÂÝ5{ sOâ¥ÕÚqúåk0ÿÏoÑK‡€µË±ŸÖcî¬ýħ³ 9¸ ‚š´ @ þ¾ëtø^<ßÙ†±óΉ£÷Â:àå›¶-nkx#èõEÎ6›Sx^ЀS™Ô7yÄ: ‚x̧̀Γֲ((lk\R ´J¾&Œû·žû?`_6èçŸõ2ö¡t1püع@Ðmñ0}¨\#À¾Ô¸Òì¥Â•G?ܓכµN‘b¨?ð:ìCìë­aÂ("&!9ƒZó3bÿ&b_Ž#8µÞ>¼¿® -K73%ÆïïMi´ØÕÉŽ:Ó*—†ÿüsÏìëÏ~øg-Z÷¬’¹ ƒFê¯Y·q‹/Ôkü¶ôíyˆMœ3P¿ ¬)·+Rÿ¿(Í' þ}#ÔÜÐE+SlS²kg6Žo*Ï kW/§vUm,µió[…ÓÆdPغ±RÙ9.äñ{úð;Oß‘W@¼¡[ :Öî?þyéjOïþ›ü 8ß áhUïhì+è{\èß»û%,J2·¡£µ¹B ´§¦¢¤P —oTX `sý+—º»:ÛÛ‚fNŸ -û0qÄ샑u`"öIA°A%ìCE!öÉ u?ö¹xñô ö)Nÿn-øå»¡pjáü¡tW/§KKÔÜŒÓH«ru±?¼£6ùªõбƒGbÓÛR'1%3ggQ©<æ3í˜9—¥rBêŸ×¦>Ø&w»tÐÒ+_ÌÔÿÓ+ZÔ§vU8mL«›ßá¥5uúL,Ýù6öÎpjñ; ‹Â[+›x³çÀ‘ãðš¡wÁ7ð è¥ñŸ/ïÞ}Åú¡¯µ -ßá.Ü»{‡B¿ïúµ+ÿúäã‹ç;Ûp s‚J‹òs²Òèòõ÷ÞŒzÝÍÅÑVe5wÎ+³,-8vFÊ>¬ƒ¡‚¤u`ì/ƒ8ÚŒqØ'„îaì7ö»û}O}™¡wïà¹Õw]RcŽ­ÊRPhFJBtD°¿—åZˆP(]MéL؇o@ý±Òœ¥v!¥ÞT`M ¸miÛó -v—CæðIÕzöÜìÖîÖ¨o,õEýÓê«qÈ1‘pÐò+_Ô_@ÔŸŽÔŸ8a¤ÐÆäاÒåù[€næÌµRÙ:º¸‰£Ö?8Ž­´¬Üü¢ÒÊZºjßýàÃ3mèzéûðÔñ/ˆ·Îå;û -ûŒ„>­wDËÎü¨»³½ ‰Û°¯® - ”·##™×¨¹f„Ž“µ°¦HÄæˆØ½u4$aß‚±¯ì»-Y±fÝFFPR*b¿tè°¯íPÀ>Uï^)‘ZûxmU—C³Ò’b£B}<9œY¡³,§™›Bë¾(°/ÿ—ÃŽý_褾†úÏ>¯)×?Ιû„ŸT^þÁЭ)Ùê]¥•uû#êCâ0õ¡Zoÿ›ªUŠ›APÿqê_•›•¨¿©Ÿ3ê‡ùñAK¯ÜjÙl²†6øÈå“jøÛÕè÷ìCëŠ jךŽ-|çž>!‘1Ä›‚â²êúý‡ŽýåÔ{§›ZðÞ‚—~¥®ÛøÔQ8X¾£±¯ÐOG?åЗĻêåeèî:ÛÚ܀΄ĩ©()Tgg¦BäÐ:¼õæªel$Qè¼4^g”K}“G(Hû²B]ÝûÞHñÉézØoZìÿ ƒ}Iˆý‹ç;Úšd‡ª¡xã£Ãƒý¼ ‘V,q[èˆ ý2`ßlòèÈ­«)Ýá¿Þ˜9u˜ú/Nøý$SÑ­ó­iÈ MOŸÀP¨V„&&Î#ÇÿJÕ¹ 8ãžÞ¤LjÖ!¦>\´ôÌ‘ú!â åWþçÙtP™ÒAÅÕª¹¨”J£ÏœbŸt€{—ŽZ~ç^~AÄ›LhÞxèð zš[á¬ÅîàÜè¿u›N.©}ùOpÿ>M}…|:ú‘C_¬Ò‘IqCËÐÁ:q¶¡²´ˆ „‰ãÏë°ÄÍÅÑNEš2²Ê¥þÀ -B…¾ ­ƒå,X+`¨ cßÓ—)53g'ba¿aè°ÿŒ})“º»Ú[D«ÊŠòs²Rc#C1’°x]e‡Zȉ$j× u‡wÌÒ”%jò'›QµBäØ:ÐŒ×oÚâNͪ.,©¨ÝKÌä#õ?íû ‘©S¬ƒ¢þPÿ"Qÿ}˜ðaœ0Q?)lã+Q_zåHýÿ³_/^9çyÀgÖ±kÏq[»kgf-I0f™\EÆmilŒ(%M"éé¦(‰JÒ=JB‘äRIÑF‰VfvÖÌìÅٱ׳ïÏ÷ûûýžßÓó<•Ë™çyÎéû'|>ßÏûóút ÍOtœúj¾¹ªn MÄ£=X„ÍëÞ  A´z÷$¦¤eÁ7E%e¸¸jÙòe} í‹F°¿þwá³ËzÑû:ð:ýg}„ Í¥Íë†êÊ gOC™Ù阆¸0Óßãâh¿ìŒƒ•¥ùä ã?cBbóðsH³_=›‡ŽØ ÃcŽ}sK+ûNl8ö“a öi^û¬b(5Sj«ö±{îß»;&24ÈÏ›2 Mö­QÖ1’ä{WûÚ«²J‘™4©ÆÃ†ÓfEâ˜[%vpvóØè€Å»'é@FN^!âF:§ZïÁ˜"õÙ^}!¦þ«RÿrÍÅò³§…ókЍïÊöª@}ñ—«£Nr•o®N78jGIÿ|î‚ÅK—ÛÓÁµÑÇ?x{dL\B|CË?½²ºŽ€C౿þäYOìëèëú -_0Ù(PÖ¤HܳkGXH %ê$j‰¢ £¤L¢(E’V Bý>? ÉJLΤÀ1› -êÏ£ -¯^ãîéí½ºÿ !Ô/¯ ,Rÿ‰òZ}]êŸ*:šÇ)úë@}Z«2êj¤Î~òŽß\Y7´yYøQK×ÌÙó8oÖº{²«6ŠN.ø†ÎZ4âb €Ót³ùNk[û´ ˜ˆ#Äþ 9=±¯Ocès_"i¾BŸÍµ†z“ݽù‡²ÒR(m·ùmÞ°ž dg eŠãf -CÎÐOO¨¯NA}húIåØ;N ûk9ö#bâ^û*©¯û¬ï·1ì7Ô×TÁ¢ÅÇŽÊ<˜¼7.:BH%G{;[¢¨åÔÉ(”ŒÅPb•zÐK«Ø[)õÔ(T˜˜‰¼™4ÅbÆ,(vvõðòñ ‹ÚŸcRØœ9_IõmºÕrW¤>ê‹ y9êÿ£êSyÔß̨ÏlcÃê«¿Ô׌}®¡ 쟛²6€7¶v+œÙU´-7WbJÖ/Ž®3ç+ªjë®5ݼ á°ØÿšÇ>}vE;zb_žºÐgƒÀŽÞ¿<¥ Á(<€îÞ¦Y¸R{©òB†¡àpvú¤„¸˜ˆP¾?ssq´_¾tñ‚¹6V| L£á;¤T©O+ÔwäÔ·æ—Q¸ -õUhóƒ×·{OU7}„>ðí ìgë—ubƬ9ó‡îàìÊ|³-|Ç®ø}ûœüBúê8¼ œ&üõVZÂâ±ÿLˆýïÅØR¿'öµô”§@5ô‰?,eÚÛØÕ ]ÖVUœ?SRDJKIÜìïãåáæ‚iXºxd 6"‚ÈÔuêkTû¿áâ¹4‹au׌ý–íû²hz!bÿéæÑ‡‚G¯^ÆáUVRT˜Ÿ“Á’)lk€ÏF7gptÁ\+‹)“LLX¿ -ö•c_k]Ç6ÂR«‹¬?ÁlêtkDÍ'ËV®^˳{ßþ´¬Cà%_©Dý?RÊüùk¥Ú¾õëÁ›Î©o® þ¯ß©ÏŠ«'´éøÍåºaë—wÂhä¨ЊÉS-gÚ|Œ¾Ì¾ñØèã»'é@zÖ¡#ÇŠJΜ¯¨ª­o ÓëNk[;kÈ7{b_ÇžúЧ„a#†þ—ï·Á?lj/U^(;] ]fg¤&ܹ¯YͦaÞlëéÌ@cG¤q`YbŠÒ¿yЄý¡@Ð(ÓD -&Ž}‡®±OɤÀþ‹—ľ¤8½®ÿá -–0°Ï£ ݈ »‹{ÔvѼÙ|S+ ‡É°/5¢—Ö°¯‰ú)Š‹KjÒ+õ÷Ÿ®rvõðò aµ=ž“WXTRÆ6*§~;¨ÿHNýNJûêÔÿL•úïõñË)ûåÂJÕùO®ûÂ? ýsƒÆ&£ÇâªÂ®Ú…KÐ øÆsÓ–€íØÁ{“S3²/>]v¡òR-»½°†±ÿ”bÿ¹Ð”žØ×öëú,_„Ð'ýÉt ` -Q3h GºyÐÕЀ}L"Gºýk ûí¯„}±+Ïq~I"¥Ž45^­«²);=%íØ‚Ãk½«Óªå¸»æÎ’¢‰0Zñ‹AŠdê­„}m”W±SÅKЍ?µÆkË|É6ª½ãšuž›|ƒ¶ED³Ò—Å¥gËaK¾P?¿Ï©Xv]Y5Ô ûP‰úâ>•QßI ¾QÜX‘úTZêëø=KOþÍ¥ýËZñŸÃÆÝ5Ît²9V0/ò³ëú Þ¾œø}ûfæäÅíE½ġώ–`säð¦(vqOìkïi -}†Ì…þ#ú­-eãÕË…s¥§Næçf¥¥$î‰.ý6{y¸¹3˜â%‚f¤‘¡Bÿáò•¤wóÐöMìÏ”a_iØïR¤²tR!)]_„}N§‹ÉÍLMNˆ‹߯Dêâˆ,d“é8` ήý•<ª¥F(Q¿÷%`²¤!_Ri?šh6m†´P×{möÞµ3^ªìùÊ꺫M%ö)£þwݺ¢4×UF}¬Ó²’¢nQˆ@ýþzG}ͺAìÿŒî.78¼ÆO0ö¡v,³wtqóðÚìG[8_=-+7¿ðÄ©Òsåk._¥ÏÞÒzÅþ#ñ¶í‰}xêBÿŸŠÐ§9 ý|ñ¡§“@¡_qþLI”YHˆ‹!ùlÄ0¬^¹š7{æôif˜†±£™Äq|)SæAã8(ô²ØoU„“ûÿêö“>ã&¥¦ét©‚°_p8;-…“Ôoó÷µè '´cÂx^ÆlÿJÌ&±½´„ý·•R_ܨBм7dØp±²–V6/\"ìÓ-[ãc’R3ró©°åU5õ ×°N[¥uÚMê+•õ9'ŽDýæõwAýÑTXõûêõßRÑ m`ÙQËxc0ÂØäÿì—‡WÖçÇÓ¦Æ$MSI{R+CEˆ[AQDAW4*{#[@*ÈFö½™²e‰ ˆ -"Ô(¢± ÖZ›ÆôœäœÞû<¿ß»x_ÄØ‚oÏŸpïs?ßÏÖ±bõÚõÕ·nÓ3ܽ÷€‰… Äp@pxT\Rj&´¯ÒŠêºÆfÀ~Ïõ>XÊ—÷FûÐmYìÿ@3ý){" ÿ‚ }¸°Ÿ8„Á>,½í-à?•Š s³Ò’ã£#BO?êîâ`k ǰgÇvM µ k׬\˜‘“‘–œÇ9^ —{&ûï½O$ˆ_öWñɾý„dÿ+û„N–}Ü˓ǣXÀOý°”޶Kõà¤EùYiÄIOøuw¶·63bèû J*#M2øãf½ ²Ï;Z6Pi"y*5;XuMýŸd0N½ý‚#bR2r ‹Ëª`®—;0 ú÷F>B¼4…±¾ø…ªÏ†i£úEyÌXUŸÊ Wõ?SÕb7ïðÊ>ÕúщߨihêÀOßwÇÁžz`HDt|rZfn!$ñꦖvˆbØ -dñ0¬åk‚ýgÓØ¿÷>:å(…>t^àK7–ÞúšÊ²bh½é @‘¡§Oúópu´³23ÂcÐÕRQ·T”_(‹$pâ¤úoqÑ$xce-•}á²ß&Töyñ$JöâX)Ý ,†á¬¥¯·»³½¥±–•ÒèˆàS~^®O;¶C÷Â…€“Â>0„ÿ@eŸÝÆo¦JöùTÏ`9q*¯¸t;×ÝûšYÙ;1i—”–•WTZqÇz•Œõî0‘Ê'蔯¤ú?ŽUýÁ[7{‰ê׊P}]ªú+ÕŸ'Öª/LöYìÏ¢z3WB ->º¼"İ’ -”/-]ÈáýFfVvŽ®Ç|OžŒI8›ž•w®¸ >{d1®e$‡Áþ.ö_LcÊÞD¡NygèvÿÍ^„þ%¸„ò’¢üìŒ”ÄØ3aA@O7'{ksã{wèioÝL¯AF -ÝòŸÌáÈ¥ z³ïaì9¼‹ç@%h|Ù÷á“ý:*û ?wîÝøÊ²ÛaõO>@¡ìwu@_¬((NMŠ …úuä0á¬DWKCmýZØv/Xȧt¬“Îà“ý)˜,O‹¢s%”aÓCÇºßØÂÆÁÅÃË— Óœ‚ó¨úÍl…b¦ -Yúísfª¢³t¬êóDéTû6Õ—wÕg—1¦Ôþöƒ©ÞàG—’Y°hñgKW¬V^?][Ǿº“NPüõ”ôì|øìU5 —Z/Ã^ûC öG‰æLcŠŸôâ…þ÷ ôá €-÷ánƒýôtu´57ÖV——ÿ¤&ÅE…ø`œáLÀ€ ñÔ6¬] -„Œ‘–ä:÷ÄJ‚±ÿz²õ¿#ûß>{J uÿÞÔÒî+íÍ 5•Îd§'ÇG…AÿB@™±g‡±R\ È>Ã'®”2xš‚mWý™±Æ(,AĨ©kêèÃTM-íœÜŽxû†Db–æ‘,mjíèêá*ªþs}v¨Q}&IG¿FÅaT¿ª~aNFŠ êêqU!Wõg‰«êó|sÁRKô†~tâ7ÌOW×ܶÝú—‰…Í!çð•€àð¨¸Ä”Œœ‚¢ÒòêÚ†f¨¶Çý·‡ |5ý7âñÀÏ‚ÐG°Àümô -ý¿ôÁ~ ó6‚þ]r3S“â£#BOøuwq°µ45Àèëhià1¬Z¾DQ~¡,^ã@¬Z²ç 64öfÎ}Ê'”}U®ìrvçÊ~#û ?×yd+ïsÙM}~DA$c ƒÝŒ ³^ÚÒTW]^R˜›™’‰„òts´µ49°w§¾h©Š2ìDa (j¥œ…¼=²ÏG}2¨–L…’•“W\ºrͺ ›¶hëîf†zÌçdPXT|2H%F)ÀåÊU¢úwï?˜øLÇ)Q})Ÿê×£êç£êG…a’z¸8PÕ'3ý?Rý·„•ZŽÞÐö5wžø¼"üt¥uª›4´tôñ«›ZÚ:¸¸=~"0$":. šmÁùÒ -øíˆýžë7oA #öÿŠí–bÿûiìOÑ}¼æXèÀüô]¿öÓ‡Py¡¸Jor|td(¶^WG;+3¼]í-›0x D$ð>™ƒô;¸öÄJ‚Æ‘ýÙ\Ù'€âʾ)¿ìçÙoàÈþÝáŒì3^ú‚ÇKÇ‘ýóÈ>ö0VLa5m—XD%Ç ; a|ØÙÞÚ̼T¢úC( *ûœæZé䮃+3UÂT}ÎP@ƒÂ(ݨQºóóý&8So¿€ˆ˜„”ŒÜÂâ2š¤=¤C úùúÓ㌔ÍQîD¿c&ú&Ê©ODõsùUßL”êÏgÕ´æŸS½ÁúÅúÍÂÅŠK¡€©lܼE[×Öblfeçèêq̇`?>9- 6s¡òb]SKû•«°›[ƒ ö¿ì?ý åiìOÉãÿÿc¡}—¨ÏWG†,}7€,h?5•eÅçò²ÓÏ&Ä ô}½<Ýœì­ÍA*wêmÛ -´v ƒÂ"T ¦øÎþ=‰¯½Tö•à„È~+ûM,¢^Cö¡‹±f -ŒbÍ´»³½…2*'ãlBtDð)?/W*¦;¶oÛºYUEi"Jv¾ä<ê¥4ˆ9Z:é áSýÜ(ý©3EÕ_±šMÒ}ͬìƒSÂHã’Ò²òŠJ+.Ösƒ¹2úø Lô»WS}øòt œöt»ÿFOWG+“£Ù£ã«¾ÄÕ¿_.DöÙN£XZFn‘ÂgË@pÖ«Aë‚á›[Û;¹yzùž<“p6=+ï\qYeM=Áþ5û#9ØÿnûSó&}ÄÊ0¸Ï@ÿkÝ—[/5ÔT•—À!d¤$Æž :åç}ä°ó!   ‹¦†Ú†uJ«–/Q—C¾Ìý”^ë•cÏAîA”ì/ì —};Fö#xd¿¹í -¿ì?ee<3"û¸ ©É©k)¨a%çò²R“b#Cý35=¸w—.ìµDaÑ) FLQï½KõöäË>õÙ™r’TRZTÙJ¥uªL›Û8¸xxùrëSYUmcs{gw/ÉÑš£*/iOBæÉQý{Tõ91 -ªŸÂt\Õp›_Ozz÷«1ØŸÉÓja+´ÖÊÉÁY_]³{ßA ›C·xû - -;›˜’ž®¤¬ª¦þRëåNøï}ƒðá ös°ÿ¯iìOö{5èô{)ôk«ËK‹ -r2R“â¢Âƒüuwq°µ45úb–Æ&Ub@äˆÑâ‹ZÉz%ï9ˆÅ=ˆ}Qà@ÙWæÈ¾1¿ìg Èþ—üš€ìsÝ)õ(EeŸ¥Ô•öæ†šÊ ç ²Ó“ã£ÂQMÝ]Y›ÃfH­Y‰f*˘)nåa²?™CeÃŽ” R´J©ùd¢«•×oT×ÔÑßIsÔ툷`Hdl"§=µvtõÆèDTÿgѪϦ(Wõ™yÕ7­úØhßgsTìT_ðŸ3QL[-60Zkç/X¸;˜²Šê& -Ø [SK[÷£Çý‚ãâ’R2rò‹JË«jûݽ7úï ö!öÿNLg|ìOsÿðDCÿ -ýg|пÝTéêhkn¬«®(=_›™šxÂ瘇«#øœ‚®ö–Íx h@à”Ò’þQ r |$¶ç Rö¥9²¿‰GöÝ<½ý@öÎfðÊþÍ[ƒB(õrÙ§˜"ØÇ`æ`jh ïzO×å–¦ºêò’ÂÜLpÓˆ?oOWG[K“ ¥T”W-'j*IÕtö,’Ť€1K™Ìð©þŒw8VIU_BZFººE[Ïp÷>#3k{ŒÑ“§Ã¢â’ÓþÃ~y?E}§q<Îçw1¶Ë%9 M[$DÞ”& Å¥—¥÷ºTéK¯‚ôŽ`A@z/FÅPÑÄ9£Á‹“›Üåîfîù|¾…ÝÖ5gp–áó'<Ÿçy½_ïs•ô('»oïžÛA)1\À)]þHá…ç„äøÊþŸ’ý3.$¥R³r‹ì·v€›ŒÌÊ>:Ù_S|85ýhò>ÈþøèP)§ð=Y©I¬ÈЦ)£G”åH7…ÆC©•‹/û+¸¨OâÑeý£b’À™ý -Jxž¦æÖv W/¿ ”¢Ù%ÕõÍí—¯ÒÝ ‚Bô%Ê›Bô¿ü2t«þè Lª¨>Q¢Ã‚|½\´ê+óªþº9ª/\…½s°¿ŠNcô1ö%¶ÁªïÃ9¨¬ª®¥kŠÍÖÙÝÛ/(,ŠØgç•VT×5µÂõô ŽŒÝ¸ykbûïõqî>è?èsoâ6†>¸Ï厶æúšóeÅùÙ)‰qÑáÁþL(½'éiiYä÷ËHïÙ%%)!&BõÞ5­Fp¡HˆÏŸì”Ú'+Oɾ%-û €)$ûõÍÐy{úI9|4äôÈ))û°þÿ&95õiPý  ‚oz5ƒúÔ±),û´V•—äg§'Ç#Nyºž±;enŸ£®BÉ©*a$¦¸Ütñ©O”¤ žçºõ)ú¥25N'w¦HdlbjfnaÙùÚÆÖŽ+Ý}ƒ£ã_Ýš¸Ó|úÝßž¿àPýýJÕ'†9ëÍ©zmNfJbldH¨¾£­Õ¬êËàN»„TŸWoÈE'âx ‘Ç7‹ˆ¡^ †³_^Qùˆ†–1 k;p¦px+1Ö,§º¾©­ƒÀþuûS¦—±ÿ~Þ[BÿþÄí¯ÿz}t¨ÿZ¸OsC ÈO~Nfj@?$ÀÇÓ•aocifb¤¯}NA Ô^q }âVÏ^ƒ°žƒÀ²ÿ%Ⱦ*–}s$ûž>´ìWbNuõŽðØ)’}býßFöÑ?a=&õtd°· d¿b*!6"ØßÛÍÉÞŠ²ÓC`§ÒPÃhNáFw0ü/‹÷-\ª¿ò÷´R®#Ð"*¾Mj×ç¢J‡Õ4u M̬ˆi†EÅ%§±ó‹Ë«êš.\ºÚÓ?2ÐÛ…U4735‘…TßÙž¥ÊÒT}ê_8±¿ŠÆ>)8›¶@$o߉v]îà!5Mø3+['7OŸ€ˆ˜øäÔÌœ‚âs•5 Ím¯ ì‚èÜž¸°ÿTpì/sÿ=>Ðÿèôvô[j«ÊK -s³Ò’b#C}½ÜœOŸ27=f «©ŽüGvØ$ ¸l@ä1P× ô4Ÿìügl@Û8eߨÔü”¥§IiYyEçÙïÙG¤ÙÊ%ûÿäã§4«hA}M ê㇪®!TÕWW”dgœ òÃ~jnj¬§¥®¢¤€I%)!¶e¥§\ ZÄád —êƒO~Ї)…lRNQEèñ“–¶ÎÌ€ÐHTœˆY¶]ììéÅ :õˆP}`Ék’ú ÷¦ùk(¬üä} £t€–—äg§“£tcØ[½éÈRU}ÞE'™üœµë¡ˆaìKl“‚]ÇØWU×Ô58Û~ÚÑÉÍË704°Ÿ–•[PR^YÛÐrÄþ8`ÿ® Ø_ÖýwùxÌqú?sAÿûYèßùêî0@¿óÒ…–F€~ia.;ýlBlTXŸ·»³#tÞÇ õ´ ô*‚ÿHïÙ%XÁ6‰ hõ¬ ±ñ—}l@²¯¦©kx|VöcI?%dÿZÿðØB¨â/ûܬzÍÍ*ø§Á¾î+­µ•eEHPc#Cü™îN6–'ŽèTøò‹=;·oÙŒýtí‚TD ûÝbÊ>—êSÔ'"ô“Ï6Vð,÷Ë+©@‚™ uõô -‹ŽONÏÎ/)'G90 yçÞ7SŸ -$ùé ÊÕš`’„êóä'¨~G+Rý¢Ü¬Ô$VdhªM§­ÌLŒô4‰•F£#G¹DTÿƒ9‹Î±é8“Ñ÷l]—ÚµGZf¿¼¢²ª†lû ëÓŽÎîÞ~€ýØ„³éY¹…%åUµ€ýÎîÞ…±ÿ}’ûËØ·O`èÃLÃÐ# ßÞÚXWUQZ”ÇNOIdôý™.gì¬-O7Òý9¬¤pùÏID•ŸÁ-lX·–†þª9Юsà/ûèD)ÙÿÑÐÖ'dP—œÆÎ+¦d¿opËþäÃi,û?ª`õýógß>y<…a56Üíê¥ ÍõUåÅùìôä¸è°@_O—3ˆU†ºšj‡åe÷!AÅ¡¼U+¹dñ¦ID(ž%G‚ŠˆmE£”!Gyì„…½“›·HDlbJfNaÙù²6ñLRüœ7>_B|~ ¢ó©þ¨>9HÜšbƒý¼Ýœìm,¨ü”“åQý5KCõ©¯áÄþ*û°êð?¸Øn•ÜÊØ¥ÃG4´õŒ@r¬¡Ûzxû…E±ûì¼ÂÒ -„ýöKûÃðS¼ØŸYÆþoÿ8ù!ô'1ôoôûàÚ[›êª+ÊŠò²3Rã¢Ãƒú® {K3c}£jô÷îÞ*)ºe¾+¤ ÿ5 û ¨”ìÛ:8»3iVì7´´_F†:† •–ý™YXýò²ÿ#’}¤¨ÓðW·¾º>2ŠÚÞÒPSQZ“‘’`Ű·¶05Ö×ÖP=„ u÷èbðA˜UÊœ‚ºhÃ9KZõ?™ª*L‘•#k“™•­£‹‡O`hT\ÎϪº¦¶‹=ýCÜ­iæÂ†ˆ@ªçk?«úhŽã0Gº4åe¥%±¢B}P|žBª¯Å¡údkBù¹zi¨>¯ß›NýÏÚõ>Æ».*¾u;,;}µ£ 9&f–6ö ¦px+1%ƒWدkl%±?Æû˜ûó`™ûÿ×ã…>fþÐÐp÷Î-ýA€>ÔݦúêóeÅùÙ©IýOW†ƒ­•™©±Ž¦šÊ!П}{áÿô "¨Bƒ_ƒ@²/µù-ûÖv W/ß °èøätv>«î¾¡¹²ÿFEå–}ì¨?’Žú„tÔÑ¡¾žÎ‹mMµ•ç€V©I¬ÈЦ‡³ÃÿØ/離Î4Ž»“1Nv'‰eÝdg‘"`I"* -((½÷^.péUzïK/ -Ê¥ (¢ ¨ØDMtMD°­1’ÍjÌî™Ùç}Ï9—sn!Ä]Ùáýžçy?ßÏ—}ŒTÔò4X­Z‰ õOTû`îdŸ©ú2' L!óSYU]S×ДdxtBj&§¨¬’KÄ祫×n Ý‚9ŽŒÏ~Ž¢UŸ#¯35Õs©ôŒÀªï@ª¾ -¡ú2 Põ—ø ±XÈ>ÆþçûRÐlaG -Š»ÕÔ÷ëè›YA6»{ù…öS2ròŠÊ©©o:ÖFÇþ=ØËÀþ¢îÿÐC@ÿ• ôoÐïh;ÞÜP[UQ^œŸ“™šÐö÷f³œì¬Ì t45ÐG@ú?AB\ }Ä”O?!TÙ2èÏ¿ß0 Ù—æ“}PTŸÀÈØ¤´ìü⃇«š§i²?2:>ùäù ÊQi²/ÄQy¼”ÔÉñÑ‘oï}}k¨ÿ‰«:nEY!'3%!:,ÈÏÓÍÉUú˜$óf¹ ­VR]Œ«¹X5Jr’8?iƒ—–ÝôÅVˆÏ=ŸÆæÖ.loTš’ÒÑÔ4¶œhïìÂé‰Tÿᣠ¬ú¯fÑ™~åŸ"T¦)Feº9p½‡T}ÏÒ‚œŒäxRõíÕWSÞµpUŸÚû˨S‡6¶j5Vqh¶r°¤íûš:ÆæVvŽ,¶·Phdl"`?¿¨¬¢ª¦cÿüÅ+=‚ØÿžÄþëE쿟Çõôÿ.Ÿý<èË€þI ýÊòâ‚\€~\TX°¿‡«“½µ…‰®@_ :/Òiúè+¬ A}†…¢@LÙÿ˜)û›Aö1­@öíÝ GMÉä–UpëÙ¿ÒÛ70LÃÕKÀÕìd_ÐR!¦yÕÜPsø`q^vZb,!©öÖfFzZ<\Iˆ¯Å²¿‚(cü€KW¯ƒì¼üó -É>ðjFÙ'vG ˆEÖ£Q¨fw†ûz¯\8×Ñvìhma©qQ¡¾,G à42XȾäz±5ˆúLÙÿ`®dŸA}jŽ@”UˆúЙ¤ˆ1*«©kêšYÙ9»yù‡Ç$¦få•WVד•éú›·¿ùÛwÇ&ðiª/:;¢ó'":Ÿ=žxÑy¢³¯çò…³0ÄFè¶¥…¹)ñQdc²bf'OõW,$Õ_"péÄŠÈ[GKÂÍv½$\;’Ôm÷iéšXXÛ;»zø‡EÅ%¥fæ—WVÕ64oëÀØ¿Þ?8,ûÿ °GqûÿåcpCô_#èOQП ¡gx ß}©‹€~·ò`I'+-)> ïëéæì`cij¤§½Ÿ€þWý ô ÿ!<ò#aП—¿a²/Å“ý}ÚúÆæÖHö¯R39Ee•\ÒRAö±ì>šD²ÿì€%ŒXS¯^¾€v6>6²kèÆµ«—@S[›ê¹•eEœÌÔ„èð`?/,SC]MuU¥Û`OÈR× K¥ñj)Cöçddzâ1‚GPPxЉKJËnúB~Ç.rŠ6,¶O@ÊΜü’CGjcê!5Do~ž1:…''5C¤ú0Ãn<Ãæ†j(LùÙiI±!>l¨¾‰Îþ½*J -Ä%°ê¯^hªO-ˆû„ìcìN`ƒ,¤3,J°¯­ghjacïìæép °Ÿ–•[PBbÿ¤pì?§cÿg>ì3¹ÿÿfè¼{¿ ýŠ„~/@ÿìé“­-ýÃK 9YéÉý@_Ow[K3#}íýêj»QåûÙ %!.¶ÿ„•úÄWXFƒþø 3Ë>ð -J¯²*²TS}WßÀШ¸äôœVMcˉöήËš:—©?kÙÇ‹C É>xêƒûwï`Oíêl?ÑÒPsdšXÞlks¬©»wíÀš*!Ž ,š¥ÎɆª¿”6E2;%QvnSPRÙ †èäê韒™[XVÁ­kÂÑÙ}­èÖ׸0MR3üýªÏ!îKwï  ¾„Tÿh]UEY!'3%!: %§3¥ú0Cytì¨01£sÙÂP}¦àÐ cŽïI\Bjƒì¦-_mSPÜ­¦¾_[ÏÈÔÒÆÁÅÍÓ7ð@xt<`ŸSPr°’[Û8ö_2±¹/ û‹Üÿ]O8óñٓЇ’ Ðÿ~FèWcègôc"Bý¼Ü]m­ÌŒõu4 èKädHè“¥—}ô€Í$û«0°Ö‘²¯ ¨Bɾ‹»·ÿð˜ÄÔ¬¼¢òJn=I¬ÞþAD¬£ã O}ËóTѲOP3 ¥5Õ'“ã£XTû{»/ž;}#«´07#9>*4È×ÃÕÑ–ôTEù/7ËÄB{Zþ)MS?˜ÙgPŸÊNrˆàR2· èTÓÐÒ32³Â… Í0-+¯¸üpuC3™œDr?žþè1Ý—DŽðWa¤×¥ÛpõP—:ÛAõ!8KòsÒ“â"C}ú§Z[Žô•æe§§$ÄD„ùy±YŽvVæÆ:š{T”vnß -(‘‘–DЇðgø $M°Eòмý ¿%ûbÓ²¯FȾöÔШøäŒÜ‚ÒCUµ ûg».÷ôÑ…DõÇYˆªpSÅÌš{8ͬ3§Z›ë«+Ë‹ò²Rbƒý Q5ÔÕTWUÞ¹#kýºµLO&Öû^5Erˆ8:&ËW3”D3”ß¡¸'§…‹íIö%á±¶Ž³®ôö ß¹wŸœ¢ëo€´¶4ÅP}ÈÍ+(77Õq+ËŠ8ÔÝ퉺´©>/8ùUé‚P}jG É>ºuòØ1öÿа/)-#·Ý;,KCSGߨÌÊÖ‘åîåŸœŽ±˜[ÇÀþMö!¯auûpÿo™Ø_äþ;=‘Ðÿú/)èŽ|п-úEyÙýH€¾7›ådgmnb «E@¾ÁFYiÉõØ~þ‚¡ÿÉÇð>bB¾‘²¿|Zöá Î«²—D– Û;à@DlbZ6Õú¦ÖSgÎ_ê¾Ö?„d˜ÔŸ³ªúË/xy|Ðèë¹|állj–FÊTc#C|Ø.ÖæÆúÚû³ –ÉJKˆÓDõÄžèÔKb¨þRZrâŠá¾#TR}$ƒÓ/(,:!%“SX†ë1ÁC· 7GÆÆ‰ÜœšEn -Ä&OõÉØ¼9p½çrWg;à¡’‚œŒä¸¨Ð@Ü–,M ¡Ù‚êãÜäMpå´ê¸PTŸyê´[ÇÍ_;ôÚuëû¡Ünß©¤Ø×506·²sd±½ü‚û ÉéÙœÂRaØ¿Kaÿ)Æþ+Œý×4ì/êþ;?Aæ3¡ÿfÐ? A? ìïÍvýûuâÎU¾p¼ž©æéNÓ^ÓÜ™6 Y²g'"²F‘}ß…} YC")„I‹´Ì´PdM{’=•¦Eu§f¹·ç¹Ÿï÷œóûãg»÷y47×ù¾çû}}Þ+scC}]MuUeE9Ô>Bü|<ú‹¢‡0‹z DCŽ»·Àûói¡**!-§´N]KoÓ3+{lÖŽ¨ø¤Ôô¬ÜÃG‰R…Ø¿yûÞÃVˆ}\ªpïßÿ±O©ÕÓÕñ¸åþæÆÚêJœªG eíOMŠÚäçµÕ¡¥¯³AMYAv ³T©¥l`¨Žñ!RêSG8sœ 7/¿ûÍm\=ˆ¹¹'-#;¿¨¤ìÌ9Ø–jꛘøŽ:ÀáRŸ65?~ §æ‹ç½=]í´ó«8]zŒ\–b"B|<\lÌ©±)ÙúßÒ®ú¸HýI ‡83ûsÑ¿"Øçáã“D쫪kêèo66³²utu÷òö£b’IöKc¿‹Å>Ìlâÿáð¡åþ'†ûµ¨_À7Dèèd£ÿŠ@¿‡~ýB@?F?"4ÐÏÛÃÍÉÎÚÜÄÐ@WKƒ@_\DH€‡›k~ПF Ï~ _òc<ög°b1Š}~!Tª -Êjtô!ömÝ<·†FÆ’hãØ¯ªÁ©ÚB¥ê+¸öï1Z#Äþ¿Xl!õ߿퇑Ý­ÚI´j]MÕehÕÅEyÙÒ’wEG„øûx¸8X›oÙ¤§¹^EIŽHUn®¥‹)´ØêOù êOfªO;AÚÜ“”E4´á-mܶù†íŒKLIÏÄcóì…KW¯×6PËR/^–9¿‡&y|ÏzÑñÁ®Ô»ÒUØ•N?r873=%)ŽššVfúp~Šp~Œe‰66§MeÞô1;ÂÏñMfžÏtö Å Íh>!1Ii9EeUu-]}Ccs+;GW/ß@ŠýÌì<ûÕû°¦µutõÀíï{ØÇ¹ÿë¼ïþNc"÷ÿ£aþ'ZèãÐA—£ÿÐï{þ”…þAÑß“äçíéædÑ×ÓÒPSQ’—Y#.²Z`…þw ˆúÁ¿„©ãý!c&û?Z<-iy2öÍ­í]ܽýƒÃ£ãw§îÏ:Tpôø)R-ûí=cÿÏ!cˆX¶z:Û[­› 7®SlådîKIŒ ܾÍÍÑÖ„lUiI†ZsfÃÏ¢¡5æfÑOÍMö¶„Y²œ›g• ˆ¸”¬¢ÊzM]#¼,yûáóÛ»ÿ`^á1bjV×5ÞºûàQ[G7žš£Ù•觇ՇëɫҼ*Ýmn¬«®º|±â454b"C¶{º9ÚX˜¢ãSV!v%îåKqêϧ©ÏÁþT|Ù)öç ëŽ~×2`•ÀjqÌ¾š†–®fßÉÕÃÛ704<*.!yï ì7û-­ûÏú`jÂ>#÷'ØÍÇúú¿c0P鼃[è¿ÀèwÑÑ¿Æ~|tDFßÙÞÚÂÄÈ@O{‰¾èjÁU¼+1úÀ¼²~¦3Ño3öÉw€Ru!Úy¹ˆØµˆØ7µ´sÚŠ[56qϾŒœü#%egÎýtb¿‰ÁÄêHl R«èRnAì77ÖVW^ºXqªôXÁ¡ƒûSwÇGíöór‡X55Ò×Ù ¦¬ »F±µb9ÞÌæÓZþÕWcûÌÔgM¼,Qç'*!-GLMcsWOŸ€ÐÈ´+±ŽïÚz<4ÛÈ¡ù¦“ñÛoìJƒnJƒÌ̳'-ÈÍJOMŠ -öóvw±·6C«’ú:%9éÿԟļë,ö§“3³ÿ=f%/fŒ¼’ -°¯g`hbnmçä†Ùœýz6ûÝû/)öá à–ûŸ&ÜÝlj>6Ÿ‰þÛ~ýgOŸôtu ôïq ŸŸ“ÅFß¡ocaj´ Ð_¿Ї}WXŸwåŠåKÑ3XˆÑGõÃΟ)ãýabÕª+ U…Å$eä×»q3fËÃÇ?$"zŠÕC…ÇJQìWBñ4ß¹ßò¸½‹æ¡ÝbÆ>®'Ým®¦úškW~:w¦¬¸(?;#-yWLDH€‡‹ƒµ9¸¥…Ü’’âçåæZº«±ÊVʘ«?™©þ×èüÈ©ùÝ÷?À®´’OŸÂZU š&–¶hh…íŒKJIÏÊ%W¥ÊëìÓC3óÌÌ÷#ÍÌ¡GfwGŒÌ[Mu5UøðJŠòs2öíI 7%'[KCÖÌħÇJýÙã4õ' LÜ8èoýíˆýÙhJÃ[ Ø\-*A²¯­g`dbamØ÷Ãì'Rì“ìWaöoìwv?é}ö؇€ØÿfŸÌ}’ý‰ÜÍÇ4 úáÆ³Ðÿ…B¿­µå ßÔP[sí*ý4}Ï­ý-›6"ô×*È2ÑGÏ`.Bù¦賟Âÿ†}ô -Pû@ìKHÉ)ª¬×Ô502µ²sÞêå´cg\bJzfîá#%'ËÏãZm‚Z}Ô×ÔùºÿíûQÆ>¡>– þâ"W»Ú·Ü¿s³¡åj9äêáÜÌô”ÄØa¾ÛÜm-L6oÔÖP]+/#)†juŲ%¸V‘[3h±ú9Ô'§&ûøfͦ†&7 M¼*§gfeïâîíŽfæƒy…Å'NW\¼ÌØ”˜‡÷çP‡Ç˜˜pvðúYg× -g×Ü€¥ gÉEiïî]Ñá!þÞxd#S^yxóÇqêSw•8¸q¨ëÎf)bŸ_PXTBJØ_¿A[oɾçÐìߨol¾}±ßN°?ñüÅwxeûÀb"÷Gýq†>þàûŽ2‡Dÿå//žúÝúÍú—ú'ý< -ýH}K„¾…¾˜°?<„>´Ïúø!LgèsÆ>ñ¾åˆý5¸Vµ!ö-l]=}B#b’ÓdSpUV×5â\íèzÂÌÕb`¯öS½úõjc]uÕå‹§K‚\©»ã£Âƒý¼Üí¬L P®*B® - ®‚¶ç* .ø]_5ûÌÔg¯J`È" „‹f¦¨„´œÒ:u-=´)ÁámŒMس/#'ÿHIYùùŸ¯Âȼ #³µ½sô‹ÇÑ¡=é%¹'=zpïVSý ؓΗ—•9œ“¹/%1ngXï¶­Nv–ÄÙ©(ÊJ‰S‹Òèºã‘ù ¾ì¬ÔÓ¡ùY¿ìOÅÿ‹ÅþÜy ."Ùç#ÙWX»Ž`ßÔÂÆÞ±Äd¿±ÿóŠýû=ö{zŸ>ïƒ'ðú Î}Ä>~´ÜŸ`øoøÐ‡ûŽ.®Ð«[ˆ^•ƒ” «¿Œ­þ˜Ç>S}<3Ù›Ò’eˆ€°˜¤Œ‚²ª†Ž¾¡©¥¹(‘gWzêì…K•ÕµŒ‰ù&æH{Ò§A×$<0»:ÐšÔ ³ ÌÅ…yìMÞ‚ÎÆÜ˜½' ˜˜3ÇmêOb^vûÓìÿýG`Ÿ›‡_HXŒÅþF&ûÑ$û‡û'Ë+.û×ý›û]Ùÿ±Oæþ?éî³ÿç_ÍìÿÖ7úÐÑÇ¡è÷ú=Ýíý»·Ùè—#ô òr2è»úfúªÊŠr€¾þ2ôÐÂ;‡ Gx_s¢?.žÂd†[ôØŸ‡cÞ/ľ8ľ²š†¶¾¡‰…­£›çö@Ü«iÙùEÅeÿf¿Îÿ¹Ê÷ŽßÇcZT³Õ45MÙ&I"%$¥”ÊP!”R¤­JJ*ŠY‹l!Ò¦MÙ×/¾H‘-Ëw±6EÍèVs¸÷ýùœs¾«/æñ·Çã{?á}Îy¾_ïû3s -JÊ*«kê›[™Ã¦K¸X)»ÚYŒl½´(/ûÉûiÉ ±‘a8XO8r´·µÞ¼‰C—Ê\E¹YR3gL'{•G®UŸ7Ñð8+“<”äáPRU_¬­KnÌv{÷;¹¸¹{] åÞI|£ë~ý›ÐÂ,õÿ¤Rÿ=tÚ—¬¶´/«è´¢¼¬ŒxrQaÁ}<ϸg’•¹‰ñºÕ+t‰…©¨ ;K’;:)>©Ïû±×íÓÑ[›% ìÏöiìm0µ Ù?ÂÇ~bÿ>b?¿ˆVVQUý±ßÜÊ`±;:»{àMö"ö‰Ü§ØÍý¡žÍÿ7'ôásç¢ßÓÝÕÑÕXÿЯ(§ð£äÐ?I o‹ÐßÈA_]Ueîý$úß~3iâDúcÄ}^õŒ}¢WUÔi.Y¶ÒÀp½©ÅV ë€“ËIw/߀ð¨¸Ä"X‹Jé(X›ZDì÷öAæà]´]àõ®ï-.Vfksc]M5k.Ö”¤¸èðÐ_/÷“Çœöï±Ãv­]¥§«­¡.¬@õʾYöùSŸœ¹1gJJËÊÏVš§¶™å6›ÝÇ óräÕ„7ñ™T(p&Q“ûÄ3¹¡ÖåïWYVRƒ®¤T|%ù?{êøÑƒŽ»m·ûRo©–N}yjrœ3i¼X¦¾ûc¸•C|ð˜ý\öUIö ÖqØßG°ï‰Ùàg¿¤Œì×Ö54ûLv{g°¹ÿçþ”ûˆýÑÜêúò„>…þëžîÎ6‹A¡_…ÑÏ%Ñ¿‘3ú–\ô50ú³1úP>Ó¦Bú|GµŽ|?‚xý ±ÿ=û$]ªêÚûk6šo±Þi¿ïó‰Óç¼ýƒ »Pìç–”WV×B±¶ «èØ'^+©þÇñ%k3NÖrZa.ÂëækW1^§Ž9à°Ëf«¥ézCƒ•Ë–h¢b…'-Éo7XÿGêãÑ}GÇ]˜Œp&é¯1Ú¸ Oî°³ëOŸ‹!aÜ}Y\Zñ¬¦®áU+cØW’ÀÜ>sëéä=’òáHºw+%1.*<$Àׯ˽v;¬,Lׯ#‡®$*õ§—­¸¦þ?xÙÿŠ`ù½£ØG_<—ý9À¾:´Ž®ž>ɾµÍ..û~!aÑq ×S0û™9ù…À~%Å~f¿³ß‡ÙïGìžû£îÿgÐÐç¢ÿû{9o~£ÐomF迨®ª(£äf=ôo¥ŠFߘ@_ ¡¯‚PìKHL˜Ä-Vˆ}û )¼Ì·lß¹gßác®gÎù\ ‹ŒMHN»û #+¯ˆF¯z^[ßÔÒÆj®^üÑÊÃW›ÙÚÜXWS]YVRóôQúíÔ¤øèðÐ_/ܬ{ì¶[™›ƒ^º ×|å9¿ÈÉHa½ˆdåÃk¤Þ˜Ðäˆ}‰¯¤™ä•¤¶Psɲ•†ëÍ,·Ùìv8xôø©³Þ~AÄ‘ÄÛËÎ܆³-y¦Æ¿,ÙŒV¼,+ÊŠóñØR`lWB/xy¸¹ iu#éhâmù tÚ–SyRœ˜¦>oìó°/!Ⱦ$°¯@°¯!̾ӱ˜ýÄ~,‡ýì¼ÂâÒr`¿æe}#°Ï`±;:}ÈŸ¾w8÷? Üÿ4šû¢Ÿa…>ýžî®Žv³­…D¿Ð/ÌÏÉ$ÑOÀèúûxy¡¿jÅ2@áÿ-ú¢c2•¬ûÊóhh-]®¿æ× f›9z÷ ¼s šõ>Õ¬5uÍ­L6Šý·Ð8¤úŸ±^"øâó ^i_ïˆÖvV[KS}íóªrZan­—‚üÎ{œ:~ä Ã.Н%‹âf••–ÄêC³’záØçSŸw]‘¤ 8wþ‚EZKõô×mÜ´Ùz§ý¾Ãήg<}.†„EÅ%¦Üº÷ðIv~qiÅ3ÜHÛð®œV”—•ñànZrBldXðEŸsg\ïÛ³sûs£µ«Wèj/V§Æ6}ñèFúš“úcÄ2õE±?bÊ?Nû ¥ŽŒ°¯¬¢¦®¡%À¾#fßÝÓ±%:öZfÿñÓ켂bZyEÁ~s+ƒÉnïìBì¹ÿG?bÿ#—ýÜÿÒð~ÁgðÐÿ„Bê}úÝ€>£­åUcC]Íóg•ôRŒ~ÆC@?å: 1úó••HôÆèOæ¢OücÄ}®]üÉú þPø@÷(ÎU!šbßÔÂj‡ÝÞýNÇNº{ú„„sù**¥?{ñ²áU ¢nÛ^ûø¬<öñËEoFU+‹Ñ‚«•^Z”Ÿýäá½´äÄØ(ì×iWçCŽö¶Ö›7møuþr-­ -²³$Q´b¾šudÞâÍm¼97r[ÊöTUçÜHVÛÑØ\Üܽ.†^‰‰‡e™þ83· ¤¼²N¤æ6æ°O¤†ÖG¤>ï…” »2õúµ˜ˆKxW=è°Ûf›¥gj'Ò·|©?‚ÛòK>|ìùëìÛñ²L°Ÿ|óö½À~.°_VQUý¢¶®¡©¹µ Øïèêî¡ØçæþçÑÜ~D†þŸdèÇÞÏ ý×=]l£Я‰Ð//-.ÌËôÓï¤!ô£#ÂBýD¢¿£¯ˆÑ‡?]»8|&M$Òg>ú_úÓý[ÁØÙ‡_Ý»À—´Œ<|ÿóÕ5´—ê­Z‹£ÕÖÞñó‰Óg½ýƒ.G^M¸qóÄ~n!øõ¼¶¾übƒ_¨Zùý*ö‰lE€½îæìé£ôÛ©IñÑ᡾^î'9íßc·ÝÊÜÄxí*=]m uŽ_èåáwG­küÞFæ­ñ¥þXIRZV~¶ÒÈÈÊ+¢Ñ«`W6qv%øðRŸ<ÞAýôtµ ®Ê[)‰qQá!¾žœ¡Y˜¯[½]Hj*Jü»¾x ¡I¼>vžÏøÞÉ}M±?³ÿ3ɾÒ`ìŸó¾€ØºJ±ÿ$+· ˆVF§Øoic²Ú;:»Qî÷ö½ÍýÁžÁBÿ37ô)ô{º»:ÛÙLFksS _]UQN+.ÈË~ú˜@ÿZltÄe„¾§Ç)‘èÏSR5¤¥8èãð¡Ð+€¾˜ýü±?N0ö¥fÉáØ_¤©ƒý2µÜºc×ÞG\ÜÛªÕk?Ʀ¦¦~䨉Óç."]ieçìᆋK’-$"„öxBš¬*ç£þ¿ßhJ83‡ eÖ‡dV 2ËÍLKÄG…ø¸;¡éÚ%P•ÇŽ U¹K¢ú+SýEöØ`9":0öׂÎVûÎî^öq± Éé™Ùyû5õM­í]™Ö70426>Á`±¹|H<aÑý—°î¿ZÒý¹§²èCТ?=%òy€þãÑáÁ~¥—ÐÝ _[U^Rø@?%1.¾‹£­è«ÁÐßµ‚>ОO€÷¬Y€cå{}yÙGÕç÷ð°c­ihj²¯­sGßÈÜÊ,0 ›”ž•[X*ÕV û“,ÐÖi ­Ï!½ùå•Tö_+–}aÿD¼õðV‘€Ë†½•Žzkia^VzR,.,ÐÇÃ"˜žîÍ«Ï>qô°úÁ}{1Ú -¾` L}LjHW~²aã?Û²}çÈBÒ:yæüemôï[;¸zùÁU™‘_\^ R7Hƒ 30àÌž©Ù¼‘AûˆN!ÊöQJ|LD°¿—«£Í}ISÎÍLiU.¶Ç.yî2ì/“`ÿð烰¿L\eØ×ƒ°oaß70$‡OHNƒ°_\VYSߨÒÞÙC$Séö'™l.O OMÏ Ø_Ò}…÷6Ñ‹þK‰èÏÎL‰E>—ÃbLè ôÑ($BWGk“ú™é)‰±Ñ‘¡A~ôÍ•B ý ïô•Éþê9ÚzÒÖ«7nëšZØ:¹y„DâR3rò‹+j`‚Qú·2Ù<•½õ××Ù—ŠëÓÙi‘€ÇfBë£dKŽöótq°67Ò¿££ {«&â­;·"ŸÙi I}9Õ_& PCV•¿ÒøF2 MÌB#ñ‰i™¹%Ò¦{2É₦œM Œðíª/KìÕ?~ž3Ɔúi½„N ú•²¢ôõp¶·’FvRKSãº`Õ—5åŠÅ®úJ°¿¸«U¾™¥½³„ýp>>9-ãa.À~Eu]cK[g7±—Jï}üd’ÉâðøB‘xzI÷ç9UE…>}±PÀã²ôÇÇFô©dROW{kS}MeYqA^vfzrBltDh Ÿ·»‹}Ãw‡þ‡‹úXÙG¶»ë?ݸ ŒÝ»%ƒ½õðVskO¿ ðè¸äô‡yEeUuMm]D2m ŒQ_†0Œ¸Î¥þ¯†ÁØŽaØèP?µ·§£µ±¦¢¤ '35âïíæhcÄõ×3§Ž£ñaòÞúÁBa_.4´*e™mÛ±{ÏÞ}’¦¼vS÷Ç{fVvÈ>ŠKÂFFEÉ`s¥*ª÷$¤ú’ž¤’º;Zj*Šós2àļݜl-L õnß@æÑuµý{AQnƒ‹™´)f ýîmØ_` „ý=s°`ßÀØÌ¾§o@Hx>>)`?¿¨´¢º¶¡¹­£›ÐK¡õÁØŸ`°8\¾@tvI÷ß;‹þ´X$äó8læä“Çc#ƒýtj/±§³½¥±Ný´ä<."$ÐÏËÝÙÁÖR诓@ÿ# ô?XÌÐÇL^öo•È>xûǾýîûKÂ,íœÜ}C£bq­âÚÑÓKíŸdq€¸NÏþíÙó†ýKÃÞ„ >1.›ñdlx€N&tµ5ÕU¡æèãîlgizOOeØaõƒûöîÙ½cÛç›7!â:a Ný 3¸)×AÔ—E¦©"»¬­ƒ¥«§_pDL|JFv~qyuCK{7‰Ú7crx˜Ä $(OLaMBñ¹,40"XYQÞÃÉqÑáAÈ:2Öÿá–öåógNjž<zr÷Ž­ 10>ÆÌ#¹Èås—Çþ‡Š±¿Iöuö ì;¹yú‡EÅÄ%¥>ÈÊyTXR^UÛÐÔÚÑE ‘i}C#cã &›ËES@÷!ì«®ûÿoÿîEvfJ,ð¹@tx°ŸFé%tw´57ÖUW”åç>ÌHKŽÇãÂC}!èÛXšèßRýÍóCÑS_Nöá` ‚0‰¸T?|ôø©³®\¿}×Àä¾£«—?̰ÙÃê›Û»‰ú 0W&›'1×ræªHö_c(†¨ë‹çÏ Ùð8ˆºRHÝíÍõÕåŲ$Ç#³·67Ò¿££}éûï¾=väkµý_JÍUŽa F}lSÊEåÖí»À<:Í#41C [G7ï€H|b*Ô“• '; ½´~°Ž&Á:ФëHy`JóÂŽ£ÎÖÆÚÊ’‚ÜÌ´ÄØ¨P¤&Íîý¨{óØ!8°í[u4·'¨(37GöQì„Áþ†y°¯ cßÚÞÉÕÓÇ?8,2&.1%Á~eM}SK{g‘L¥÷ú?Édqx|¡H °êþß—t_zª‹>} úS"¡€Çe³ãc#C}4 -‰ÐÕÑÚÜP[…@ÿAjR<>*<$À×ËÍÙÞÆÒ @ÿŽêÐ_ñ¾@ÿ Ù_3 ¼èùËvH6×KÚ:wôÌ­ì=|ƒÂp±IéYy…¥•uMm2 1 1 ®?AêúËüêú†ìÃî:‡b­5%9™© øÈ/7G›û&wo]¿‚ªë ®»¶oE ¶vÍ*bà .ÃäU¹,±O7Èõä‰Óç.^Eב³‡O`.¬¬ -ÖE$Ó@M2Ø\IM¾u)ØFÏ‘mÄcÃ-IÇ´dFJ|LD°¿—+’×íëW.œ=u\nIjRØ¢Wý9²ÿ_`ÿ®‘©…µ“«‡PhdtlBJzfv^AqYeM]cK[g7±—BC°?Á`±¹|P tÿé’îËÝ;‹þ´X$äó8,&}út*™ÔÓÕÞÚT_[U^Rø(' @?.&*,8ÀÇÓÍÉÞÆÂÌØ@‚þ¥ógUƒþò÷ú¿Ãü2†!æ -dÿ³-Ûv~ñç½ûÕÔ »¡«ghja넨kBjFN~IEMCKG‰Ú78:>Áäð€ú*QLÆ~B0Æe3žŒ ÐÈ„®¶¦ºªÒ¼¬´¤Ø¨0à®Nv–¦÷ôto\½xîÔ )Ŷ~¾P½L]—-˜ìËSîI À hÁ}¹_íkÍc’š46·vpñô ŽˆÆŽ#Êkä%kÉŸçoIŒêcJrfJÈç²$quJâJOŠÃ…ùz¸Ø[I·ÑI-MCØ–„òZõ>©¾bì¯À`rì_¼a_ßÈô¾•£‹‡·_Ph.6!9-ãan~QiEu]CsÛد§(ï4€ãÞÜxç˜ñ“¹nA¢‰ÆŠ€ T‰-‚HコôÞ{ï½—¥ÃÒaYvY–¥ww)¢—1‰õ’™ËéÌÝï÷¾ûî¾Ë.JŒLnÀýžß»ŸçûôôQ¨tst|rzv~µøór»°ÿóBÿ;úÿ|°z ý¹™©‰±‘á!Ú¹·»ƒÔÒXWSYVR˜›•ž’àëåáêdgma‚ ¯ÐW~ú»9èïÜ&èó.^øØ)€Øþƒ¢G@ì‹KJË*žW¹¢ª¡­ghjeç싈MLËÎ/©¨©oiGÛÆ>Ö®Ož=ç¨ÿ¢Ø+áêsCÔñüécû«+KH¼2±x­(ÉÏNKŠöóÂSŒ“?súÔ‰/}ö©È^»âÛDõ±ñÖ$î8óR󺮡­ohfmïr×'lÉ”ŒÜ²ªÚ&Rgo?12>=·€ÜF€úÀƒ7ŒkÝi=Ó‚§sˆÚßÓÑÊ;Â}®ÖæFè’TV’;#uêÄqd\ûÀ¸ÖÜFÛ õwcÿwc_åòµë7 ûÆfV¶.îÿ ÐȘø¤T”ý*b}Sk[gw_ÿÀàÐ0šû ,öÈý‡ÜܶÑÜÿµ]ÞÔ?úë…þ‹µ¡¿Èº7? CŸÉ S)äž®vRsC-@¿¸ 7+-9!6*,8À×ÓÃÕÑÎÚ ¯{SAÿœÂ{ôùÂcÿîE;piWðá#íª®¥k`laãèFð -‹NHÉÌ-*«®ƒŒQ c ^ÙK÷7¯±Ö+pìþ:62Dã8VZ˜“‘àíáboef¨§­¡zEW þáCxEC^<"ò†ïúýøR'o^‹¿ [òèq1q)îmdlŽŽ+<&!5+¯¸¼¦¾¹ ]’“3óÜ%¹Óèµ—Ø‘£Ãô>¸#k°âïåálgeŠMKQVZR¤>rýõOè’ü`7߸¶xêïdçØ—‘UPº€°¯¥£Ø·´upv#xû…FDÇ%¥fdç–”Wë[HݽäÙ¹½¸¼Üµr_(ú¯ ý‡ ô—جú“ã ô©ý}=m­MõµÕ¥Eù9™iÉñ1‘aÁþ>žî.ŽvVæ&wôñ蟖@/ý]Û }|ìããž—1Å _]½®¡£o„Ä«w@hd\rzNAi%±±µ£›L¥3Ç€c¬ÅᎽ6ö…A67=1ʤôvµ5×U—åe¦&D‡ù‚zµõª£©võ« Šr2ˆc‡cˆúà%…Æë;ÿ–ä뀲$OaKòæ­;&–vNî^þÁ±IiÙ%•Ć–vtZS³ó¬¥dG>~óŽÄ§>L}Ί\f/€a0h”ÞNRwXáA¾žn޶Æ·´ÐËèìi ä2âíHlZÜÓhë«¿.û»…±ÿ9ƾ<}#3K{g·»^~!áQq‰)éY¹Åe•5u ͤö®2…Jg0GÇ'§gñ¹ÿí†r˳/`þ«7†þêÊò"„þÌÔÄØÈ06ÐßÛÝÑÖÒXO¬*/)ÌËÎHMЉ ò÷&¸»8ØZ™ÿô·ú8Åp±¿‡¯ÛwðÐáÏ¿øÇI é³ -ç/^V½8fëäî铘š•Õ+e1:1=w½|ªÿýðq£êÿ$ >öòxÉõd¡d«+‹,¯c _É0_‰H¾&ÆFûyº;ÙZ˜ )Ÿ“?#uJìøÑ#ŸŠ€zý3®^yŽmŽúp\pI‚q+œÓèðgÇ8ÓR¹¢ª¡­ghf…îȨ¸äŒœÂ²ªÚFRgO?mhd|zŽw½fXBÔGgõìéãïY-YM1‡¨dx+Áa”ŽFw]ì­ÍŒôu4¯£+RJK7,ðÝïØ‘[úƒÇÔ+ö¯ªªkBöM-lì\ïzù‡GÅ&$§eæ•VT×Ö7µ¶uv÷õS‡†aîÏÌ¡¹¿úàá7ü¹ÿ£Üßì ý—‚¡ÏAú³Ó“ã£LJ!÷tµ“šëj*ËôSã¢#Bý¼ nζ–fÆwôt´n\¿vY /ûô?À¡¿}RÝØ‡Žz݇իÔ9%åK×Ô4uo›Û8¸|ââS2r!dMdS³ ,dh¾âb÷AsŸ}w^ìƒ×æôë{avj|dˆÖ%«­B%‹’y8Û[™êißP½¢r^Ÿ¯²È€ú¿ß$õ…N ìHDýýE᎗D/#5MÛFȰ|ƒÂ¢R3óŠÊ«9+rY‘‹ËÂ#ÁÔ•À]4<8Ðî¢úšŠâü¬´Ä°!½Üì,MïèÝäÌJZâ$<ŒDRÿ“½kRväÿå§þÙ?)!%s°ñd_ûÖmCS k;GWOŸ€à°È˜xÀ~N~QIy±¾±¥­£»—<@Ãr~µ¸´"û?ðåþKœû[š}aèãCÿGþÐÿ†úshè Rûûz:Û[›j«+ÊŠ r³ÒSc£ÂC}½îº9ÙÛXš`è_x¾ð>ö9õº|ûíý¨ÿwÙ2iYE,_M­ì=¼ýC"c“Ò³ J*ˆ -íÝäúðØäÌõñ—2,Ñ#G‹)NùÒ×êZ· L,8‡QlbZv>6+*‰Ìjie•·!!ëªO}8*xñ/H­UUU<•/ÁÕÑÆÜø¶®–ÚµKÊJð.B6$øöAꯙնIý|ìÿ–Çþ®õØ?†±¯xžÇ¾‰¹•£‹;ÁÇ?(4"&>)5#;¯°¤¬²¦®±™ÔÞÕÓG¹?:sámsÿ×&úÝÿ„£ ýBei‘µ0Bb „>m€ÜÛÝÑÖÒTO¬ª(-ÊÏÉLKNˆ ðõòpu²·¶0…èkª«^è+)ÈÊœ–?ñå{ôù¸?2n¾î;p‰}‰ÓgåÏ]¼ŒIæèæéÃé×:Я½”AÒ¯ìeû¾ýþ ø²õq”­«þ8ê¿xöô1x퇫+‹¬ù™É±aú@_w{ 7`Ãý<Ýœl-Œ tµÔ!erg¤ÄÅŽ="*²<èa¿î&Ù»ž:,¸"¡€ ä0âÎJnÈÜ —œžSXZUÛØÚÁ½‹Øœ»ˆ;*Á)L}Þ¤`ês&ŤSÉ`R ÄÊ’‚ìô¤¸Èô,23Ô×Ö@¤Œ¤¸Ø`T9£‚wÑnÞ]´]RÇ[±JJú¬dÿÊ×j7uõï›[Ù:8»¼ýC"¢ãSÒ³r ŠË*ªkšZÛ:»ûúhCÃ#cS ÷ïqsÿîo3ö×¢ÿ’ƒþ¿aʬú ô'ÇG™ŒA*…ÜÓÕNjn¬«©,/)ÌËÎHMЉ ò÷ñôpq´³¶01¼}K¢éâ%y}±÷è¯ýý†²õ1ɰ~—’‘ûûõáTÕ™p8»³º3™L"›5qQ‚Á@è½wÞ›ôK/—ré½÷Þ{ï½÷^¤#6DLLVEÑÕ1;³Ùï;ç–s/KFfwÅó'¼çœçý½RrJªº†¦–vŽnxBPxtBjf…²éùEHØmJÀ"–Ñ,åõ“Þ=±`ŸÑìâüôÄÈ@OGK}uYbY(°Ìgca¢¯­®¢ #!*ȇ X -eG¤ú¤ÃPÙÌ,¬à.â†w•:*/¿ ð˜ÄÔ¬üb¸ ;1 r}ƒö,Ú/õ1ƒzIÔãGh®¢±¡¾®¶¦ÚÊ’‚lò~ÄY›ëkÁII‚IqƒI±²Ï"ðéSÿèáJýhÙÿËþì3¢ìGf_^‰Ì¾-ÎÉÍÓ››œ–™“_TZQ]ÛÐÜÖÑÝ;04:>93wiqùò•«HîßÙ“ûO‘ÜGÙyاƒþo(ú/ úT¡ÿ 9ôoÐÿñ‡•¥…ùÙ©‰±áÁ¾žÎö–ÆúšÊ²â‚ܬô”ĸèˆ@?¼»³ƒ}Yi Qa>îèÓy(êcb|ù ŸCʉ”ñ VßÄÂçâé—œ‘SXZU×ÔÞÝ?<65·°|eõËöìï˜Ø§Âì)Àì!³%€Ùè`ogkcMEq~VjBLxïæhk‰¬¢¬”˜?7ç¹³dËŽ}^èÇHÀAßå»|t7$qTØ)-¯¬¦©gdn…žE‘±Ié9¥•è¤ÆÁ¤VÀ¤ÖÖ7·^³é¦þ‹çðï ^Kó3#ƒ½- 5åÅyÄAy¹9ÚYšêj"W‘°/¼ŠÀ~DRÿop?äYô?ý¼5ûœÜ¼üB"â’2òJ*jÚz†&æ–68'W/_ÿà°È˜ø¤ÔŒì¼Â’òªÚú¦Öö®žþÁ‘±‰éYšÜ߯äþÚÜßÙ%ú0ôŸ¢¡ÿ ýŸ`èßABÿ*ús3“ã£C}ÝmÍ uÕ¥Eù9™iÉ ±Qá!oO7g[+ S#}Mõó}) Q!}ö³ßœyôÃ/°OìÀ=þ%8rYΰ±spñ -ŠH@Ë´˜ܽý‚#bÓ²óK*j@ÁöŽNÎ\Z{óöÆ]$öšA,Ã`FG}ŠfPýÝÇ;@ýû÷¶6××n¬^YY˜›B¶®²I؈`ow'{+3#2f<³ÓÌŒ_SìAXF5*tA³ˆ9‹˜N‘'%£ ¢®­oŒìG_°ãS2r‹Êªë©®¢Ûwhµw=ÒUŸ2§Ÿ±sîïno®«*+ÌÍHGQ8Šl.šh_8¯(+IZ`Pp=~¿}lê.õßýö¹xù!ûrŠûÆf–6öŽ.îxÿ Ðˆè¸Ä”ô¬Ü‚â²ÊšºÆ–¶Îî¾áÑñ©½¹ÿÌ}È>mî#ìÿëýeŸ.ú/ôI¡ÿúÛ´¡?=162ØßÛÕÞÚT_[U^R˜Ÿ“‘š@ðòpuÂÙZ™›"è+ÉËJ‰ôy¹¿ÿ¢ÏÂÌtò«èclìCõ©-#,¿°˜”œ’ª†Ž¡éE[GWýÇ;}bèߥ ý©ñÑᾞζ–ƺšÊ²â‚¼ìŒ”ĸèˆÐ _/G{K€¾ž¶†šŠ’¼Œ¤¸ˆ?/7çôé?Ô±”ûŸ~Æ€bÆ 1ãàæ•$%¬5ÎÅÃ' $2.9=§ ´²®©­«ohljvaùÊê[ë[4šíiØß1±OÅÙSÀ±DΖ.ÍLŽöv¶6Ô”çe¦&D‡ð®¶ au†âãædgc…š}yœ¨À쯠>í~¤#óéoÎ"ëQ\ZNIMS×ÈÌÊEþà(JJË.(©¬%ÎinaÌim}sëÞý_ÿñpçñ~Û‘nê¿xþŒ²7IËqf,ÇŽ–†êò"tLA¼›£­¥©¡®†ª’œù&:ÅHÞŽŸ|ŒÎéÈáKý7aŸeÿkÀþiÀþ9À>Ÿ °˜„´¬‚²ªº¦Ž¾‘©…•-ÎÙÍÓ›Ÿ”š‘WXR^YSßÔÒÞÙÓ78<:AÎýk×o®Ü¿‹æ>Ê>Ìýgàå?ïÙúÿ?>‚>ú÷1¡¿J -ýɱ‘!ú­Í µÕ¥Eù9Yé) ±Qá!~>xwG;ë‹fƺZÔTåˆès‘Ðg$¡l_ôÿ|¨Ð§)Xf0a‘Øg:uÆ>¯€ˆ¸´¼2Y3/¿àð˜Ä´¬|JÃÎ\Zº bÿö»Û0öú»ˆfÎè¨Oñ ª¿ûxQksýÖÕ+Ë ³Sc bÛk+Kò³ÓAÄúy¹;ÙYšêjBÎÄ„ùy8Ïe=Í̈4,¶aß±fô| EpN\`Np;j‘·chT\rFnaYU}s;¸‰ÆÁMt¹‰ˆcÚ¡Œ‰f9ÒUŸfJk`J+ sSãÃýÝíMuU¥…9à$Š'‘§ ÎÆÂD_›²Á˜X˜OÇôé'ôn¢CóÑ¿ ûL§ö9¾çá•’UP:Ù741·´Å9¹zxùú…FDÇ%¦¤gå—UT×54·ut÷ ŒÓäþmýÿ¶×ïäyú»OHè“CíæõkäП¡ßÞÒT_SU^RB?5)>&2,8€àíéæì@F_UYQNZRLDŸçú¯x° KŽ}T³/N€Ô9 bŸ“‡_HLJVñüÓ‹¶®ž¾aQñ)¹EeÕõÍgs‹o±”Ïãªbo\ûqeq~ñ¬ñ,xàãálomn¬§¥®,/-!"ÀK±à½’ÕDZOç(< Ûñ$Ë6v.xÁ1i˜À1á aÑ ©™yÅå5 -¤åøÃÕë·noÜ}ÝIôoì0È¢G€úÛä‹h½ˆk+Ýv£·»“½•¹‘ž¦qJ\ìlgN1„SBO¢ÓÿÉóGØçæ—’‘WRQÓÐÖƒìÛØ;º¸ã}üC£b’Ó2sò‹JÊ«jaîwõôÑÉý{ ÷)ì?EØñ³¿?úÏÁ÷ü ý4ô¾·½µ¹Cÿ:%ôÇG†z»;Úšêª+ÊŠ rAè'ÆEG„ùûzy¸:ál­,Lôu4ÕÏ++ÈJKˆ òAô¿ecEÑ?Aý#‡ýþD¥6öÿþʼn¯0œ‘"ÖÜÚÞÙÃÛ?$26)=» ô?ì—÷WTgÆóî1UÑH,tEQiC—.EÞ{ï½w)R)JÞA:‹ˆÒņA˜)€&¨ÑÝìž³»Ù}ß{g†”s¢''Á÷Oxî÷~žÏSQs£¥£«wàÞÈÄȳùâûxö?:Ùßh³ÓS&LJûº;Ûšê«Ê®_ËJONˆ‰öóru°A,ö,°X1„gÜ(ÏXvƒËDb?XP("˜vÒÇÄÉ ËQ–£’ª†¶‰¥­“»7˜Dq`åä—×4ÐR݈…ÝSÚ¼™ªþ?ù;C5Â@52„”B -ñ÷rs´±0Ñצ."ÇxÁ":t€•¾wÐ.›]ýV±ÏºÿÀ!6ˆ}ÞcÇö…EÅ%ed”TÔ5µt ŒÍ,mì\=¼ýC£b.&&§fdæ\º_QUÛÐØÒu¿ê>À>Ôýg3Ø9 ûDyè>ûðþñgÆþV ˆþóå%2‘°¸^ôn÷Üêìhm¾QWSYVr=?7ëJZJR|셈РO7g[+sC=}UeE¹3R!“'ôy¸ÀÉèïûýu^ö!ÎöáÕƒ£{ˆ‹‡—_@#!#¯¤ª©ƒðÌÍ; $261%#{Íb‡Ç&MMÏÎá ¤¥•?½|õó„gt@cBý5¢ý§ÞëW«€údâÂ<ÔØ#wz»:PÍàíædKš¸¨à©ÇŽps‚FgýŽb±;?ÿœÆ³õ=™–#˜Dú ))«iêš"ݺñRÚÕÜÂ’ÊÚÆÖ¿Ýº}ghìþéé~‘Ò[æ!1¥>CF‹óØ™ž<œ½7Ñ †Aäébomf¤w^ý¬¬FAPG@5Ò…´Qõ·ÕÙoû{hØç> °Ïê´°¨˜¤´¬¼’Šš†–®¾‘©…µ£‹»—o@pXdt\Â¥ËéW³î—”WÖÔßh^Óý±‰É‡P÷gfqóøE‰¼°ÿ#øþ¯¡î3Çþ¯k¿Ëúmú@ô—ÑŸÃÎBчЇ¢ßE¿½¥±¡¶º¢´¨ðZNfFjrâبð@?oW'{K3cC=mMuUe9)qŒˆ úTè³ Ðÿ’ý¿lk诓ýŒ<;ÈN³X)YE•sZzÆæ6®ž~ÁÑñÉi™y…¥•u Þ45 Øwh,Ã%¬÷ØUè±€h8H´û£CwP¢U”ä^MMºx!,ÐÇÃÙÎÊÔPGSMY^F#$Àχh,ÐX¦@û@1­K‰Ö\È"“D‘ž‘¹5RL|rzVÞõ²ªú¦¶Îî¾Ááq´$ ú?Aôf“Aô+}D›ì!ØŒ“ã#wû{n¶77TS›1*4ÀÇÝÉÎÒÔÍH# 3:ÌÅqˆ6ˆ¾ú©Æ¿nWÕÿlSìƒ/û#öÁâå¤b_HTLBúŒ¼âYµsçuô MÌ­lœÝ<}üƒB#.ÄÆ'¥¤]º_X\ZQ]ÛÐt¿ ÑýáQ û îÏbçð "yibÕýuØÿ#öojÿÆ÷Nè¿E¡Ee™L¢?ÃÎÑüprbl„Nôëk*Ëèçe_M¿|)!.:2,8À×ËÝÅÑÎÚÂÔØ@WKC]EIAVFR\T@ÿø1^úö³~‚>“ÇÔb¿Ùµ{7Ðt ͬìœ=|Ã.Ä%¥^Í)(®¨ihéèê¸;2þàñÓgØùmí-s¢­ÝS¤ê“ø¹Ùé©G“cÃ}ÝmMuU¥×ó2Ó“ã£Ãƒý<]¨{FRLø4ðXz¢¡ÔßñQ©OYDhH€ -h5Š Õ¨­olaëèæíODùEåÕ ÍíHF”ŒˆHF›7#SÕ§#Ñ"#º?6DQVzrBLD°¿—«£…±¾ö9EÚÍU/hF¦m·»ÿŒŽú›bï>ÖïöÙ!öòØÁHH‘STV=§©­ghlficïäêáís11ê~^AQIyUM}cs[ÇÍ[=}ƒC#P÷OÝÇâæ‰¤¥å•í€ý-@By‰L$,àçpPôŸ@ÑFD¿ ˆ~ý²b(úWÒR’âc/D„ùûxº9;ØZ™›éëœ×P;«$/+-)&*|ú?€þan.6ú{X>Aý[ã htËÎÅÃËÇ/ $*!#§¤ª¡m`B#Z Úµ¢²jà±7{€ÇŽ¡‹'–V^€õJñX:¤­1¦Á+xóúå*Y2EdPE¶¾º¼èZvFJBldˆ¿—‚4-€4Y)qÁSÇáæ`;¨¿‡Îc?(õéCb¨FtñêS3ÒÔ10µ´svÍ…6cIEíú=„_$ˆV_ÁùÝ×GÄ”úhB¯„ÀÂÂ941zo ÷VG u]s(È×ÃÅ£.RŒRb"H1ˆàڽ뛴‡þhoKØÿŽŠ}ž#û'E0âR2r -Ê*êšZºƦÖvŽ.î^¾Áa‘Ñqˆîgåæ—UT×54µBÝ¿ÝçªûOžN?›ÅÍã $òòÊóL°ÿïõØÿ½Áý›Ão -ý•å%€þüv@ý¡Á¾ž[7;ÚšëkªÊKŠ - è§&'^Œ‰ - ôóöpu²·±431ÔÓ>Nõ¬¢Üi 1!*ô9?Aÿ]Qc)Dûv B46NÕÒ32·vpñô ŽONËÌ+,­¬kl¥GÚü"‘ 4æ"Ëp Œ& àÅ -dŽÆ´.À´šŠâ‚œ+—“â¢B|Üì,M t4T•ä¤%D…P‘e‚4äË~hêÓ "}3 -cÀRFöµ½‹§oˆè5¢¶ÎîÅøšRŒæ=õ7®!@}¥'LJÑ^l½˜Ÿq91$äíîdkij £©¦,/#àçãåáb§Í¡¯¿\+ÆmLý-cÿÁCìœ\Tì ‹ŠKJËÊ+©¨ihé虚[Ù:8»yúø…F ºŸš‘ u¿´¼ª–¢û½}w©ºÿóYì~@$/ìÿ¸öÿû§Àþ{¡ÿ@ÿùÊ2™D\\˜Çag¦ŸRDÿÞþÛÝ]í­M uˆèççfAÑOˆ‹Ž ðõrwq´³¶036ÐÕÖTWQV“‘Lj œ<ÁwBŸíàïY ²|‚>“·Ácw~O~÷ˆ46®ÃGŸ< ‘&¯¬¦©khjeçìAÙ+9Å5 -]½wGÆ<~ú ;·@ /?×üúç·Ì™¶vkPûj¯^ê/‘xÜìôÔ£ûcCwúº;[ë*K s3ӀɆ#&kef¨‹0M#Le þ^–]ß~‘eÒŒ_S÷7‘ˆ¥Ím\½üC"bRÒ³Ð9Ô~³§cB›õ"#õék‘Ð"- AP[c]Uéõ¼¬ôäø˜ˆ`?/WsÊ’„½~¤×bœCÛñò߇}È}€ý}ö9¸xóþŸýúpŠúL8~Î]Ì%¹XéUš´…eé½÷ÎÒ¤ "¨XE)RDTQzï½÷&½(v:v=u.‰qîÎÜû¾[ø-»ÄÌ 3NÐߟð컟çû‹ŠKHáää”U5´tõLÍ­l‰Ž.nžÞ¾þ‡Ž Ü‰K<s?#+· ¨´ä~SK{gwÊ}Èþ½3sóˆýga¨ÿи´07; BÿÖMúý=]­Í0ôK -ór`è_L&…þ‰£Aöûùìqßíä`gmafl §­©¦¢HÀã¤ú‚üô™—Ñÿfuô?Ç·¿iß}C–™„,¿°˜¤Œœ‚²º¶¾±¹5ÑÙÝË/0(8,2&!™lZ]S;}ɾ&—,µ+bÿ¿XÕàK€ï¤ìÚ”­«*+ÌÍH¨ÅPQ³³23ÔÕTU’—•Ú%ºS€—›¶dW˜¶&3¢Ž²P$`Ï!9Âò„¼ý‡œŒŒM<ù*u/^Ã\C¯H×ú«¯}ÚùÀcÎC3Ôc¨C%ùÙ×R/œk1¬E´Má€åqh@|Üœì¬ÛW\Ck8¡?ç·ã>ûäÜì³°íàýÃGf_FV^AIU]SGßÐÄÜÒÆÞÁÙÕÃkï¾”û§"£ÏÀÜ¿œr?æ~M]cs[GW/ÈýÑñÉ›·îögç—=¦cÿ×õÅ> úÿ¡Cÿ5@ÿå‹çOŸRö5eû‡F'§îÜŸ™[|øäÙ ð–ß¼ý˜úÖàkøíÿW/Ÿ?}¼´0 [v|x ·³µ±–Ò²gNŸ -=r`Ÿ‡‹PÍ@‡¬š°?; 3ÓVlÊ®jŒö"º†ÈkQ -'¯¨ª©khjeçˆÖâ±áÑñç.^ÉÈ-„ÇP8†FÁ1túãó¡UŸ´éÆ3}ïöÍñ‘¾®¶¦ºÊÒœŒ+ÏÅGSo!{+3#=-5e‚,i+òp’ç³éKêc¿ì“~`xð‚ßø[ -ûÛ¶³°ö¹xøøûÒ89‚¢²š†–®¾‘©¹•­½£‹›'Ìýƒ‡…¢ÜOH‚¹Ÿr¿¨¤¼ª¦¾±¥­³»ïúàðØÄ©Û«°ÿËúbú”wL‡þÒâü,ý‘¡þž®öÖæ†ºêŠ²â‚¼lú—. Ð8y<†¾ŸÏ÷ÝND;k 3c=mMu%^VFr—˜ÈN!>nN€> @+ -ý/è3ú6Р¶q9e·‘SVPXLBFNAY][ßØÜšèìî哜’–™[DQm¨vozŽÒ²oVmÙßèbŸAÌBÖ&FkU$Ö’â£Ã=´¯§«£¥©¡®¦ª"'ZV€Ò²›)-»–ª1\‹LP}Nn>t À1¤gdfmïìFšO$˜Ï¥«™yEåÕõh+Ž¡­8¿ø©¿ú-„AÕS-űap -µ6ÔP—bXŠý}|4˜OÍ÷ÿùѾbR꿃ù':ô§ïôoLŒ ^ïëîloiª¯­*/-ÊÏÉJ‡¡Ÿ”€B?ôØáƒ0ô=Ý\ím­ÌM tµ5Ô” xœ4B_Ÿ‡‹“}+@Ÿi+Bÿ»/è3ü¥ì?¾ß¼… ¨ÏNVMJV^I ´¬™•jÙ£Çãã’.¦¦ç”TÖ6¶vö ߸u÷ÁìüÒ#¨þ¯ß®ÆÝ‹ wmq~æþ©ÉÑ¡þîöæúê²¢¼Ì´”䄘ˆ°à _/jÌ*ÉËbYÛ -YCêo\{õI&Àc;>ìV´°!ºxxƒ[(ÜBgÁ-”_RQƒÏÂi)Âñ0^Štê“wâ¿à_NìD8 ÊtÊÁt®^JNŒ 9èçíîB´±0Ö×V'B"Büp)²`—"íx>߷ψý¿QØÿÃþv2û|döeñ%5Mm=cS k[¢È}o_”ûaá§aîŸOIMKÏÊ-(*­¨ªmhjmïêéìß¼ÙŸcÀþ»wë&öW¤>BÿW*ú¯y·ŒþÝÛSýáÁë½ÝmÍu5•e%…yÙ™×®ÀÐB¡t`? }Wg;K3C}-uU%y9œ´„¸¨° ?/BýoÁ{ÿ‚>ý·N5RËn…-ËÁÍ+ $".‰Ã+ªhè˜XØ:¸xøYK¬eå—×4 ˜]³o?¦þ¬úï~ϼ†—ÏŸÒÔl ¨Ùâü¬k—Ï'Æž> \Û‡\3‡®)ä¤%Ä„ùx8ÙÙX˜™¶l¦Æìš©Ïp+‚[ˆ ÝB¼üp<2x4K[ÇÝž{ý‚¥E^Š¥•t§Ð Ì)ôþý*©ÿú!ý[àp~„Ãyüpa^Bã#˜K(å\|tĉc‡|÷,ïD‚,ýtÖüú“«±ÿ5•}°àû,l;88¹yøwŠˆí’”ÆÉ•Õ4´tõLÌ­lì]=¼Pî 9rÿl2ÌýÌœüÂ’òÊšú¦–öΞ¾¡Èþ,û¯ û@ýŸHð~]Ä>í#þ7ýŸWC|tx°¿·«£µ¹¡¶º¢´¸ 7+ãjjÊyú§ÃÃPèûûzƒÐw"ÚZ[˜èikª«(ð²2R}>^n€>+ ó -ô72FÿS?½OúѰ¶q™µm0f¹xøaÌJËPÌš[Û;»yù‡EÄ$$§¤eæ•UÕ5·ÓºöœÞ5LÍÒ½ JÎ2€­·«­±¶²´ '=õBR\Ô©Ðÿ±_Þ_Qfw?»&Ñ]][¢0à CQY¤×¡÷Þ{PP"é½÷Þ¤HEĶºTTDݵM4É1žÜ{ßaú˜=gùEÂýž÷û~žÏsôÐ~/Wsc}mušÍ‚އ\6KçúÆüûr¢>c)Â)$%§¨J›B¾‡ˆŠKJË.(étõŽ\Ÿ¼ -;q–Ú‰oÞq[BlªÏ<„^Ì3VâpOGKCuyQ^f* '…ãhcab £¡ª('…–‰a Q;‘šÎ -õÿ7ö‘îCìóàð¢‰,,Št_JFNAIUMC[×ÀÈÔÂÊÖÞÉÕê~àá`¤ûq‰)P÷ KÊ«jê›ZÛ;{z†GFÇ&®LqÀ>Uö±õ· dŸ]õ!ô?P¡ÿ†ú3Ó“—.ž?7Øw¶«£­¹¡®º¢´¸ 7+=‰þ‰Ð£Pô÷y{º9;ÚY[šêéhªS”åe¥$%Äwlà'ðáxy¶0@ÿ; úÆ4ƒþŠèÃÇQf†©OàD\“–S¢`\stóÚwÚì)šÍžéé¾péòôµ›·ï>§ ©ÿú-¼c´Y¹Ê>ÙÞ¿{ȶ0ÿäñ콟º~urüâÈ`og[Sm%]gøîqs²µdøÖKm³JN¡Í€ú0aQЉÒòJM]C3+{go¿À#!áÑñ)9…eUÔ%4615¹ÿpîé< -ç[8ìªÏ5›û?ÿtcfrfÓÕÞ\WUZ˜“ž†Bæp©(È`•H"òá€ÿÐ+‘y ýŸŸ?ö¿eÃ>Òý›ÀçÞÊËç#ò“ÈB"û»¥eåU(êZ:ú†&f–6vŽ.@÷÷ù ÝŒ>u?+· ¸¬²º®±¥½³»w`häÂØ8 ûÁ¿2ÿüÅË_~}ó–ŠýH“þýÕË>‹Ö!¯ûÈýW/èÐ¿Ž ?z~x°¯§«£µ©¾¶ª¼¤(?'3-%1‰~ðá@(ú®Nö¶V¦FºÚjªJ -r2R’»vBè“IDÇ»@d>ú«WÓEúô·xó«0®­^äf³DYdûN )YEum}cskϽþƒC#bR2r‹Êª©`»819uö!UgßrÕYÚQ|æì³ð"²MMŒêëno®GdKd -ôóvw¶³25ÔÕ¤(ÉKKBê b:»ê,°ýáxèé¬YÃЉØ’Ø-£—Ž',2&!53¯¨¼¦¡…¥±!ô–:„þÉ6„>fùa$1í Ylž8ÛÙÖX[AoÄß=îNv–´lvíØ&,(@ÀÃ!´qÃë–º—Åû"ö¿§aÿo[xxq|~A!Ñí;Ä%$î+*«ªkjë›ZXÛ:8»zìñAºr<" -ê~ZfN~QiÀ~sÛ™î³ýCçö¯2`áÅ+FìSeŸõùº³¹,ªþ?þåå-°ýgOèп216:2<ÐÛÓÙÞÒT_SYV\˜—q:9áTt$ý(ú.Žv6–f&†ú:Z%yYéÝ?îÚ)¶MDˆLâ'òáq<úTÑ_þ—›]»ný†M `Û%)#Áfdfeçìîí—œž]PZY×ÔÖÙ;xntüÊÕë·îÜ›}üäÙs°ZáhŨÏF6fêÓÑö msܽ}óÚôåK†û{:ZªË‹r3Sb"‚úïõ\ôYeà³ìdƒßz©ÀÆq pþ -Âa©D úJ:•_RQÛØÖyv€)›¨vïÞÿƘÍبϦú°a4 Q4S—Ç`4gZjÊ‹ò2Sc#ÃŽÚïãåêhcAÛA;·ÓwÐb#"ê£`åþ±Çûk˜±¿•‡'Hda€}¤ûr -J*jZºúF&æ–6öŽ.î^P÷9u?!ùtFv^aIyUmCs[G ûÀöoCì?~‚aÿ5x–…ìsRý˜êèÿúê%è ôvŸioi¬«®(-.ÈÍJOMŠŠ8EßÏg‡«³ƒ­µ…©±ž¶¦ºª²"} q ú"B‚$~Ž—LZ*ôײAÿÛè3>:ØVÑÁ¶¨³~A!Q1ñ¥å”(:&–¶ˆl‡!ÙÙŠ+j[é>{‡æ³¯Ñ£ÉJ“}õYd» -(´ïÀú{IÚ«T¡mm¬©(ÎÏ:{ò8@Û>„6c}muÙÝ;·‹ID>HýMÖÓ}vIÈÆ‰ú´!ÄOZÌFdcjiçä¾Ç7 èØ z#¶wõŽüþÄ•ú l=ÆfÐäÄÅ‘¡¾.8ƒÊ -s2Râ£#BúïõX,DPˆ;¶‰ˆ|8ð7УYº´\ìÃe÷ú÷!öypx>"?‰,$²M a_V^Q™¢®©£ghlfamçàìtßïÀÁ ¤û±ñI©éY¹ÅûõM­±ÿìù¤×o–‘ìsS}}(/àŽŸÓ ƒúmÍ µU¥Eù9™i)‰q1'ÃÃŽ9EßËÝÅÑÞÆÊÜÄH_WKCMEIA‰>€¾0YP€HÀãxèÓ ÿ=8õèá}ÃD6Lö×ÑÈÆì³Ææ6.ž>þƒÃ"bR3r‹Êªë[:ºû†ÎMLÍܼ}÷w í.Œv‘m³4¶ övµ5ÕU–d§%ÇE8v8Àw›“­¥é¢ÐŠ‹1 -úK‚6.ÙlÙÀFD;HZ^™¢© v½³Ç^¿À#¡Ññ)¹…ôh.O]у–2šeô¾aäþªUXÅcº°OÓý­<¼x>¿€ Ð}q I) ûªjÚºF¦æV6öN@÷÷úîGº~2&.1% b¿¬²†û·ögÍ=’÷ß[l.Ùçªúúà‡wütîÑìý»œ _^R˜—q:9áTtä‰Ð£A@Ñwsv°³¶036ÔÓÑT§(+ÊË"è‹m"“ø‰|x‚þÆ ÐÿË -ô¹?N>»ný†MHö‰d„6ye5-= mÞ~A!áÑ@hsжA¡Ÿ¼ -„öÞ,ЗxÆ@^0êÿ‹õ?3RÿãH} ¯^Ì?{øàîí›3Scç‡úº;èFŒÖÏÛÃÙÞÊ ²M ²MLTXŸ€Ôß ¨¿nI…–š ( ;‹Fb·ŒŒ¢«§Ï~Pˆ‘± ©™yÅå5 ÔteúÚ­;÷¨ûGCODFŸJHIËÌÉ/bÅþôÌ[À‘ öçÁQüÂ&ûŸ¾ZÙgTºO,ªÿž1Ð:ý;·n\›žDÐï§B¿²¬¸ 7+=5)>6*âxHðáÀý¾{½Ü] è›èjk¨©þ—ýòpªòÌâð¬nœ‰-¢Rnår)Š¢R¥wiÒÛ¥÷"EŠô.¢¢ˆЍ@A• " UŠ "Šˆfw³Æ“ݘÉì&Ùó~ßýnã‚É莫Ãû'œ÷œç÷ü@ôU•×+€èËJK1èT -Y Ï}Ìn>g‹þôgz\êÏǨ›N  Zi9y… *µô M,lX>!1 ©™¹…ÅeG+«ë8lÂØ6‰³mf£ýmšp”vê7PZÜênå¥öægoO‰ßâïåædgif¬¯­¡ª„Œ–Ég´¶½3õg -D°> dmÏr÷ &³¯¸¬¢²¦®¡ËÞþ¡,±ô -·:!-ˆú‚%hŠ]‚ž`%ˆ/K ³3’ã¢Ãƒý½\ì¬ÌŒ t4Ô”Ö¯]-Ë”¤QHb+Wˆ|±”­úï+?±Ç‹ýy|؇?_ˆa.°/&N"ShtSZv•<¡ûÚºúF˜îÛ;²\=¼ýA÷£bâ“R3û» ‹ûÇ*«x°ß"p÷Þƒ‡ž<}ö¶5@L~ä‘ýO€úÕÿ+¬à.°ÆPYŸ‚Ö=¸7Œ ›cú§«1èØ·g×ÎìÌô”ĸm‘á!Aþ>žî.N¶Ö›ÍMŒ ôt¸¢/'Ô’¤Q)$ q$ú"Ë0Ñç>Îüù¼ÌŸ[yöãcÛœmK–.Y!*N`ÛhÃÁh3²ÁhKÊW®¿p¹ùzkGwßÀ0èË“Éçܦ^ÿ0Ü„mN7$ˆnÏžŽõ‡ú{:ÛZ®656ÔÕTV”äf‚ÒF°•Ö|“ަš27‚¨Ï…ü8×hßÏd>˜ Aä¡.–‡.¾A¡¨eá-èËSgÏ_‚Á´wõ@ ‚Ÿq0ÓUÿþ4|ý -Ë7h.£÷†ú{;Ûn^ûª±áLÍÉŠÃ÷íÞ™•–äëéâhƒJ¶ºª"ŠC)¾8äÌõùßlØGY¿„Ð}1Ð} -•.)%-#·z ®ûZ:z†Æ&æ›­mœ]ܽ|‚BÂ#·Å%¦fdåäö–"ìŸbcÿf[GWoÿàð½Ñ±Ç€}°$$S3Ëþæøz³¨þ\7’:}ØãaXänè—èççîØž–œ¶%ÐÏÛÃåh‰¾‘¾®6!úò«d¥™ :B&ès¡¿Ö|úo3-Ⱦ™&É”Yµf¢ªº¶¾±™¥­£«§_PXÀmGngÎ_¥mïìíGp{»ÒrVã×·9moW;ÐíÒù3§N;|p?¢["Ð-Ð×ÃÅÁÆÂÄPWk£òy9iB]!²léÜÞƒÒ -ÉC°>p>Q¬aƒQQ×Ö32Å—œ‘·§ˆˆC(A‡ƒ‡¿£ýÊ;ŒúØÁüS  ÝéÁ;йºêÊ£¥Å…»rØièãβ·FsÑœ>—Å ?ŸV‚æn€û„bç>†ýÅöEûd*M’Á”Ý_»t_M]S[×Àh“™…•½ËÍÓÇ?pKX`?%=3'¯`/`ÿíßl»ÝÝ×?4|Îeb’Oößà²ÿïVögWýèº''ÆÞèë¾ÝÞzƒ ýr€~áîüܬŒÔ¤ø˜¨­¡Á¾^î®Îv˜èêéhiࢿfµœŒ´”$J!KôÙÌýy¼ÐÿÐKöô¸l›QÖÜ --x ‚¡´z˜Ò²<|C"bS3s ö—UTÖÔklºÚÒv»çÎÐȃ±ÇÏ8tû—Pºñí†P¼=Ÿ„xx°¯»£õzóå õ§«Ž))Ú“·##9.*,ÈÏÓÕÑ9­–ºŠâ:y9):• t[NÐmÁ‚ÿõa0 ‰Áq¸^IUÅ!»mÝŸ²=gWáÒ£'ªkÏ]ä™Ë8šËß¿{ùê5{.?ÿ,†üÔ ÃßþEØXÊKŠöægg$ÇG‡û{¹9ÙY¡¤¡¦Dt ’ØÊÜô~æòI>!Øÿ3ö!ìÃßöÅÄId -Î’–ÝWì«nÝ×7465·´¶sd¹zxû!ìGÇ&$§gfö÷s±ù««7ZÛ;{úJ—”bÊÈ!Ýß ¤‚t_ÏÀÈÄl³•­ƒ³‹»—o@pèÖ¨˜„ä´Ììö«OŸi¸ˆ°«£«çÎà]؋ǘ죃yÅ/ûÿáÙò?ðøV˜}٘С%†ÛÆÜelôÞðàÞ®Ž[-ך¯ôk èäåd¦§$ÆFG„m ôóöpe9ÚY[š›êƒèoTè+€èËJK1è4 -™¢Ïþ"ô?›ƒþ[õèÆvÚuJªêÈi-m]=ý‚¢â’ÒwäíÙèȱ/O= á­«wÖøoßÏ€·ß„ôÀi|êïél»y­©±¡®¦²¢¬x_Anfj¶ˆowg{k$µšjÊ„Ô"¼q¥–ÀÛ»|·°¹pÒÎ :®¡Éfß ÐÈØ¤ô¬»÷:Œ¥ùzk{W6< ¿ÃÃðÍOBÂOõù²pŠ7 ±©´\mj¡ µiY¸ÔVÖÔ546]miëìéy06>*ë‹—luá3n_åÙêÃn`Ôþô aµ­×›y­6-1624Ð×ÃÅÁ†Ÿo‚o꿳ì é@p÷Ë–õÑXP*ª¨kÃXð0 ŠKÎÈÎßSTR~¼ê4VnhbŸ -:möeóO…Ÿúì¡üô†òýÔ?õ‘$=¼?<Ø×ÝÐ…úÚªå%Ѐ²Ù ÈÛÍÙÎ -e¡†š‘…$±•+¸Yø~*Ð'ûø°?À>Î}„ýEûÀ}„}q 2…º/-#·šÐ}-=CcSsK;GŽýðȘø$ûEËÊŸ¬©­?ߨôõÙ/ï¯*¯, /ÍšùA±ÎŠ(pá‚t¤]àÒ«ôŽ4EPT+ˆA©Ò{浪¨H·ÅÞQ“q9š¸2É$ã“™}Î÷}÷~·©™°–ã„ó'¼gïg?C£ °/S²ÿ†ô$Žð®Ìgñh6÷Ž«ú?rTÿëg“0Åwn~uubl–»·«½¥±®ª¼¸€‚þ>€~@ÝšUþ>^î.Nö+¬-ÍLŒ8¢¯¤°TŽ)Ã’X²˜&úbXô¡?cú"ž¼q¥–Á”SPVÓÐÖ341·¶sr÷ö Þ¹3ú@Üñ“éÙù%•µmˆoC£—I¾=ÿ+âïEX-g:hZ‹•àŽÖ>}B\gkcMEq^VZRÂáý{wDl - Zåëéê`kiÊÖ×Y®®¢(/+-%Ô_HYí”ð7¾cˆ+†–®ª@NnÊ:*•äôìH¥© Ý¡±Ëœ[ˆ„ŽÓ€Þò5 ô?x -ú»;ZªË‹ò2S!”Ø=œPWX™éë.WWU’—•‘’@ hþ¼9| hšú"žìsuèþŽî‹Ót_E ë¾¾¡‘‰¹¥Í -g7o߀À À~$û™9ÅåUu­]}gσì£}¹û€Ð$ÙûÙʾÀ Qýûwoݸvy|äÒù³}Ý­MuÕå%¹\èo èû­ôtsq´³µ²05fS¢¯¬(¿DŸ!)D ?‚þl }Ä|ôgNCÿ½o"¨/6wÞÌ7æ›:É7GW/ßÕ¤ÕNHJËÌ+.¯ihéì9s~päåÖÝ'Á]^¾u¡f˜o„ý7ú¿p€P‚ׯ^‚ÀlܹyýòØÐÅs}§Ûšj+K -²AkãH­]íçå†g «%8üûSD}Z¢§B»…Æp ÝWú¯ ƒsh@eUõÍíÝýƒÃãW®C(&ŸáP¾ EPõy2ùÈäXÎäÊØ0dÒÕÞ\WUV˜s*åÄQ(@Û·l Y°ÒÃÅÁÆÂ”ÍÒÁNáú)ä ez„<~ìAÇ>1ö‰/AºÏĺ¯ºL°Ï2`›˜YZ¯°wr%±¿Â~‰äôÌÜ‚’Šêú¦¶ÎžþsHö¯€Ü{ˆ†.ûÿX™O ó~‚âò3¿ê?¸w¦xbV»¿§³­©¾º¢¤073=91!Ž€þf€~`€¯·§›³ƒ¥¹©‘¡¾}5šè‹sDIÍ,Žè ƒþ§«ÿÅ7ƒo¼V+-»TQeÙr}¶©¥­ƒ‹‡OÀÚ[£vï;€Ë%‡´ií䳯_¼Wk…áßa¯E„»{ëú•ñá‹àµˆp¥…9@¸ƒ1»"·„ú{»;ÛY›êik¨)+ÈÉ0$ỡ˧µÿý§ »…°òD’f¢P4uXl {J(„²'öP|bjfnQyuCKý>}þ ±Ø´ôNõE÷Ÿ; I£CÐ8—0ù8º„‘á‚ý¼Ýè™0’ˆúÉœÙSV€þßß :÷iØÇ[0aŸàþ"Ð}I)iY9y¤ûêšZ:zúlcS +[{'w/ûÛwîÝwðHBbJzV^aieMCsûé^á1ý[wïS²J€dÿ'!¢ô‰YþÑ„©µF3üŠPý‡÷Qa½<6<8p¦÷t{sCMeia^Vz -‚~, ý }W'‡Ö–f&l–.‚¾*}&ý%„è/@ÐâOBŸ`þ4ô?üx÷g 8îùÀÖjj³ àœÝ½ýƒÃÂ#wň;žœ‘]PRYÛÔvº÷ì…!˜b þÃ'OaˆÿFVÒ\þÅC8¾ùàHn‚È ¾yJ€†c|dðü™žŽ–†êò¢ÜÌÔÄxðÚ¨­CÖøx¸ØÛX˜²´±×2¥)Âq©ÿ; '"”…(8…òŠªêä)ttõô]´~*@GŽ%¥eåWÔ4¶¢L.N\»qû=“i™ü"‚ú<‡Œä)²¤W'F.A$­ 5åÅyYiI Göïݱi}Ðj_/WÜôu—£þ—Û¦(“?ÀãÁþL -û”îÏÝŸÃÕýÅ”î+(îk€î뙚[ÙÚ9b쯦°{0îXRJFv~QYUmckGwß¹ —FÆIÙ%xñ’ܺ(ñ®Ìgð\Žª«o¾}Í£úã#—.œíëêhm¬­*+ÊÏÎHI:wˆ„~†¾»«“½­µ…™1[_OGKS‰¾¼œ¬Œ´”$ˆþ"‚ùú³1ôóy¡?cúï}´V i-Ⱦ$CF¨¯¡¥g`lfµÂÑÍËwõºõ›·Ñ ×ÐÚ ^KŽðÚW„×þƒÇ\„R_”ØÞ¾qmb†£·³µ±¦‚@ÜáX„¸Ð U¾ž®¶–¦l}åˆú²ÒR˜úó§Îky©ÏW€dää•TÕµt Œ '7/¿Àu·íŒF—0¼„¨ÿÀ%Äýçɇú ú¼Ôÿž[¨Cõ§£¹¾º¬(÷ß!Ä‘°t4ÉH$Ä¿ê£ÅÀ[ÁÓ¦wAÔãÇ>¥ûûtÝì‹/– u_QYt_[—e`dbniÃÅ~Øæˆí»¢c=~2õTNAIyu=XRÏ™‹¤ì?x4‰do 9BWæ3xBF¹5ÃÕŸº8ÐßÓÙÖT_]^\s*õäñ£‡b£wE‘¦ïãåîâhgkenjl¨¯Gˆ¾’%ú‹¹¢ŒfGôIèÏœ†þG<.à¾àRŸK8YD8ðZ#ðZOŸUkC7nÚ{(>153·¨¬º¾¥£»`pdüêWăºàÂÊO}î ó1î-—qPA -ž<ºçæõËcCÏõuµ5ÕV–d§Ÿ<w zç¶ÍÖ­öórÃbk «…ÄVVFŠ+¶⦈ú<™À%\H»„Úz†ÆæÖvÎî+ýׇmÙ¾+æàÑ)§r -˪ê›ÛQ$às<‘ˆ8„‚Ô'ACh‘È•±a"‘ºÊÒ‚œŒäãGÆìŠ  ô÷vwÆõGO[CMYa)“!9Õ‡ðòDaŸ~!º/ÅaÊî«öµtXl3ö1ö£vGï?"9-3·°´²¶¡¥£«ï,%û÷¡ "ÙÇRóñÓÏ‚+ó©qþ‘O娺Š]› î«HõÏŸííjoi¨©(-ÌÍLK>xôpôm¬ÌMŒ YºÚËÕÕT•IÑ—Ñ™Y@}ú4ÑŸ9Íü>^¯Åˆ¡™¿à/_Š/‘”f.UTY¦©Í24±°±çE\rFNAiU]S;Ûá±+”Ø‚ºà.¶œù•ßlÿÎ5[ap‚îö溪ÒB`Ü Ì¸-ãœì¬Í ô´ãäd˜ú õ1ã~/âDöÁH\<|Ö† C¸<„åÕ°ØPG&ð!$êÏk¢þP.÷Nõ…¶ŸçOÓÚÏéÖÆÚŠ’ü,¸ƒGöï…;¸ßA'¸ƒÆp5T•h‰Ì¥™¦þG¾üÜÇØ§é¾˜ûH÷ÒLÙ¥ - ûË4´tôø°¾mÇî˜GS2²ó‹Ë`_Ú:{úIÙ¿}ïÁãIrcÞZÁçD}¦TîÍ·¯(s¡Tÿ\wgkc]UYQ^VzJb‘1»wl ßHƒ¾¥¹ Û€¥£¥©®¦¢/Ç”aH },yÓÐÿíï?ì—gL•i†3ÑÙ˘UÚi€€(½7AA:RzïUPĂЀˆˆEEQQQìŠ Epv²™î¨Qgv]×1&’ìhvŸ÷ýÊù¾SI˜‰¼?ߟOîçz®[õ Äa±`±52³Dbëîퟜ‘³f]I鎪šú¦æc'Û;/]»Ù݃Cü÷3Ì…ì«¿°'‘õGP„€ä  ö?Fù@RpõâÙÓ'ZíÛ[]¹}sqAnvZbL¸(À‡0[sc]†Ù27…fÜ8„:„žÚ|-T¬Qýñò†DÆ%¥¯Ê/Ú°¥lgMýþæ£ÄDîôôበ‘[-ﲩÏ:ƒoð¤ÒE ¤nwåö- -ó²Ó’b#B}½\–ÙY[˜âöÓj?äD&×áWŸöźO`t&É}À¾²*‡ÇWSŸ±ohlfamKc_—˜š™“W°~ciYeumCSóѧ;ÙGR€< m tÁ7?¿}Ç È‡? õ?2#Lˆ ÔUœal.ߪõRgG[kKsSCmueYéÆõy«2Sã¢ÂDBúö}3€¾îÂ}5KŠ> }¦è“Ðg12å£=1⦈ÅvƬÙs€ú*¾Ú|í…z†¦6öÎn˜q±À¸¼B`\åî:i³Ä…õµ s‘Aý²ÔöùÐCmA -Ž6ﯫÙYË_•N@Γ‚œ®Ž–† þì™3ÆÇlåÔŸ9™KOÄÈÔOÄÛ¾ƒ·î¨ÚÓÐtøØ©3¨ýtß@µj?ïF§þGIê¿e”Ÿ‡°0÷ïÞº~ù<*?k«+PùÉÍJMˆ fžAˆ@<<Ïn?_Ô“}J÷¿fë¾’² -‡ËöµuöMÅØ÷ŠÂ£ã’Ò²V¯)Ú°y[yUMÝ>Rö¯vÝ&eÿ ¹1( „H®Ìã|ŒOv„é† ?f¨þY(¬‡4îݽsÇÖMÅ…ù9YiIqÑá"¡? } 3C}€¾Ö|u5>£ª Ð'™±žNB_®èO¦|ôÇfÜ4Šq¤Ù -4´tt LÌ­/]îâé -ILÍÊ-(Þ´­¢º¶ñà‘Ö¶¹»½ßbÈ þäþ'M}1åÀ ˆ2”{p¿ûæõËgN;ÜT¿§jGiɺ59ÉqQ¡B?/7g{ SBmù€ÜœqƒœÄDXwËgµŸ•þÁaÑ ©™«×®‡ìªm9æ„y|÷ §® 1˜ÇÖh)ñQaAþÞî+—ØZšé/Z ©åTŸ]~&©?ö'¥ûSIÝŸÆÐýY˜ûsA÷UT¹<º†¦¶Î"=&ö}üƒB"b’Ó³s×®+Ù²–ý³°07»{OBC•Aù¢ô»òVÕÕŸ@õq†‘êß¹qPýCûë÷ìªØ¾¥dÝÚÜìôäøèˆ¡¿}[€¾1}ŸËQQVb‹þ×’¢Ï†þDGèwÿd˜ít5¦¾*W@BΊ„\PXt|Jæj¤¶å”Úv^ºvÔö»ïþãÉÀaÊ\X}•-ûl1`¸í#”Úm4Öî*ß -n»:3%>šM9mMu>W(7gö,p€?£,Œõ%ÛP¢¡¹@×ÀØÜ -Aâ ¦eÃÜ k½—Q~z‰ò34üæA”Êä>È¡þ²ûŒŒ¼Çžô¨ÓOuŸW/žk?qôÙ}ŠP÷‰‹ úJ]AzõñZLnÄØžö§ØÇR„u­ûŠJʪ_ýÅ€}w/Ÿ€àÐÈØÄÔÌœüÂâMP)Ùï$‚=‰Ü˜WDBØÔÿɾd„IqÁ"÷ã‹áÁþÇ(à¯v]¹pŽVý²Òë òVe¤$ÄD†øx¹S¦Ð_¤£­©¡.àqUU@ôçbæÏbˆþ4Rô§NŠþ'¿¯dAŽR[_}¾öB=CS {g7/?ahd\rúªü¢’-e;kêöƒ»´Cc½q§§(¬lÊÉ6æþKcîgsÔ{ï݆„œ=ÝÚrpßÞêŠí›‹ r³RcÂE>.Ë—.¶236»í–ÛŠ)÷™J„*?ªDù1„òc·ÌÉÕÓ70$"6 æQ¸šÇÉösp©yH^A©îæ>ë¾yMlÌSæ8Ú˜ãÈNKŒ‰úxº:-³³671ÐÕÑÒPãq”¡û|CuŸÏ¾‚_ÞûŠÅ}û’ºO`ž’² -ûf€ý%N.Þ¾¢°¨¸¤´,°$ý -Zö/\¹~ y${Ñß¾“‘ æùØžT„Iq!ê*9Èpß½;ÐWÏÓª_¾mó†¢59™©‰±QaÁ¾Þî.NKèëaè« xUe%EZôg`ÑDZ&¡/%ú“ÃcË>²éÙP_!Íjˆrå|E±à¶y”ÛliE!î¢Üöé •áQú*¹ 3gê ”ÜîFr[˜—žèËœ€§Š1™ ©ÿ˜“Q~˜óq3r`«KwTí©gvdrOž=ùÏWÿ–»ÒLè“Ó ©OzÒógOxÕç>Q}N?| A\}¢Ã‚ýWz¸8â#¨OAö8&©ÿéo̺°¯Øç2°o ØwtvõXé' ‰ˆIHÉXûBÉ~Kk[Çy ÈyöüGyb0Á<ÓE\`£‡a£q†{ïÞîB+Mª~%¨þºµ¹ÙéÉñÑá"¡Ÿ·‡«$ôù<ŽŠ²Ò<úlÑŸ„þo~2('v[®@CsÁ"c3«ÅK—»x¬ NHÍ\½vý¦­å»j@cí8ùú­»÷¿•Àœ¹¥C"‡s`8#P»A :Ïœ<ÖÜT_Sµ£´¤(?'#9.2Tèçåæì`ocab¨·P{>)·s(¹ýLÌɼ‚¬î£odfi»Äq…»·PXt| -=ŽFG1Ž^Ç£`¥G?‚2¨/û>èÁÓhgLc šFThŸ·;LÃÖÒÔH¦¡ÎçªÕg†Dõ™¤þ'<9Øgè¾­ûó•ÄØ×741³´±[ê¸ÂÍË' 84, d¿d¿²rø´Á‹W»nãˆCÖÁw("8#Ä™` éÉ]h²®ö?¦2|ýò…³§OЪ_\˜Ÿîä¿ÒÓÕÙq©%@_Ÿ„> ¯ˆ ÿͤèëcQîOõfÎúcŽËW×Ô^¤od -˜spv÷ö -ŠGr[„䶦¾©BŒå¶Ö'CRþ…™a¶ì³Ô€ - êƒ »m;~„°[ð°Ûø¨° o÷ç0õù̹وs8ãA}´ç’ã€#¨GPŸycR³r¡úl«Q}ú‡†_üô¯W¯ß ê¿‘ÜhõáŸÆÈ{“€ú/†‡ú?úûßþÚw7ŸÓÐ|öÕ%1›n>⨢8wܦñå>)îO¥uŸÀþt™Ø×Õ721·²µ_¶ÜÖ%P ûBÈ~9´Áý‡Žž€ˆ€@$7fø%f0Á@Ó“I},.¸®>¥3Œ<îÔñ#Aõw–•–€êg¥%ÅE…øz¹­XŽ on"}Zô&EÜžæØrËS¹Õ34±°±[æäêå+ ‰ŒMJÏÎ+Üî²»n -1¨Ë;÷ú¤9'Ëné°@'.„„ ôÞ»ÝuÌ µ2R]±mSqAnVjBtxpÀJŽKl­ÌŒõ-Дa·ŸK}GWž@CKG×ÀØÜMÃÓ'P›”†§QÓ@+ÝŽ§ÑÓ7Ú ü(‡úÿg¿¼ƒª:Ó0>;£LDŲH‘Þ.\zé½÷ÞA@Ä‚,`× ‚Š -P@¸ - -jŒëºFE‚ÁMŒ àdãÚ˜‰™5»³ï÷}çÜ{nfÔÉ=ž?ßyžß÷{Þ0Á}á·»:Úð1š8µÌc¤%ÆDû{¹9Ù[››êëj©«()È¡å3–ÏÔ X>âo Ý—–ÆØ‡¢Ìš- Ø—#Ø×ÖÕg±M-¬A’ܽý‚Âìg‚ì¯/Ü1¨mhlFžù2ò°·Úƒ/?yêÓ}𫔯A†¿9wæÔ‰ã•åKЉê/Eªèëåæì`kenbÄÒÓåBúS)èÓ¢?Iˆù’x¿õÇ'ûR˜sgλõŽˆILÃv»춬¢º–ÓÔ‚ì Ö;÷<ê5ÃüÔ§Ü€?% ·=0i½=CéíN¬·Yi‰±!þÞ| “' ›ñ9MýÉT Þ#¢¦} ôªkQo ‹~“3²—¯f,Ÿfzùüx÷AOßÀÐð/¿>…c¼"ÇG}AOBÃ~žè 43fá'ŽAž@Æ1$Ô¯O$ö'q±t`:Ö}‚}bûšÚ‹ô Í,mì\=}hÙ_æ`IYyeMý)lô„Æ =!!Éÿ>ì‹dqx®¢>ww¶ß¸ -niâÔA¡ìݽ­ˆRý¸¨°`ow—ÅvÖ¦l–¾®6ú²}™úÒÒÑŸ°Oç°Ý‚ìËÉ+)«iê豌ͬì»z‚¼D'¤,Éw)B‹µ¼ªÔåk2Xoè!Ð!½:¾”,ÂÄ úzîß%)AƒðTýñÊ#Ð,X½<;=).24ÀÇÝÙÁÆÂÔÈ@¤ÞŽtbÞ@²|ñòa±Í,m]<}ââá+ð1JÈ1ZÐ1ÚnvácŒõŠ ¾°'¡ÆÜjoE·@šôïЗÐ@G[KS¶Á"m Õ…Š ðð‘ÁÃu„~%½x÷OŒîKaî#ìcÝçb_ò¡®©Z`bneëèìîEd?=kÙªµж#3@{ðôYð$nHèÆ<­1÷'’ú/©¹:Øß sõŸÄâ Ïõ5Ue¥Å;·l* ªàëéêdocifl¨¿H[“ ý™HôQš§p¡?Iýñ~t®Q¦¹ÔŸ>ƒtlS:ŸÀÐ(®ÞîÚ !>~Ô… Ön¬=½¹AþdXŒì‹ŒÉ@ÿ#²±ß¶¿Ý‡ývÅÒŒ”ø¨°@_!ÒÉé@0õ¥&Œú¨Ü¼cÈ+ -<áÑ ©™¨ÑÔð©ãàBÓ×Û?ˆ©ÿüÅ+õÿC}øONñú7âIO‘'qsvÏÙÓ'A“ÁîÙBvOìžoüšáݳPaýŽÿ’O ö'ÓØ—À¾’²ª†–®‹mjam¿ØÕË~b*2ƒ‚­»öì?t´º–ÓÔBynLŸèÆ|²ÔgJÔyˆ®sGÛõ+—.@†‘¹ >oÞ°nU.¨>:ÈRìhkenbd°HGS:­À„þ´©úˆùRÑŸOŒÞΜ%;wþ……*êZºúF&6ÎîÞþ!±IiY¹y°Xw¢«;96é«0긓'tLš8µÕe%Å;6oX»2gIjBtxŸ§ëb;+3c–žŽ†š²¢<Ïoq4ÆO}¾'†P>  ¾¾¡‰¹µ½“›—pDl"Æ9÷Íß¿mýîÖ÷äµÏÔÃ<ï¼w‡nL ó«–e¦&Ä„ûy¹9Ù[›ƒ#é€")É“Ý3c"väE÷ûŸ1±?gî|9À¾ŠH’¾!ˆ­‘ýèøäôl’Å%e0ë›Ïó<é!¤äç'ÿ¢óúµHOú¸?þ¹JSŸ7WúÝ”Ä5qêªÞ¿w×Ö‚5+r2S‘ºø@¡ím,LÙ,=]- Ue%€þ|ô¥ièO–@b>ÔŸ -QÆÔç’ΘÎ/8<ùíJì·%eUµ D]èÁÚ?€©ÿìÅË· >•“ßQNF 'Hp‡÷>¼ÿ-¸çx‚»qݪeYi0ƒý™¨SÔ!êê¦qQ‡cñžÔ§oÁ >¾tšù„DÆ%¥£Ý³i+w÷ >ßh§,n€XÜ‹—¯È)ÄQ_°1#Ä“†‡ú°'Qin¬¯©„Ù³›Ìž%)ñÑaA¾¢@1§tãÝ?±Ø—BØŸBaÿ ‚}yE$4)Ù÷ô 5À…)Ú¾{ßA’ä×Á Þj~`¤ýÕæžû?ýÐ}«½õêå‹ç›jª*ÊJ‹wlÙ˜Ÿ·<;#9>:<ØŸ¨¾z‘¶È‹Â°—9LèFA_$ó%Á~çG}!¿÷WyEe5 ˆ1È‹NqXT|Ê’¥+Ö¬/Ú†B\I« BPŸ‹ºçbP'*'Âv@åäÛËÏ9“ððƒMùy¹ÙéI±‘! #}]-uÈ-¸ÓDî{Þ‚ùrw*ˆœÛÔÒÖÑÅÃ'04*>9ƒ{Šr| -ôÞ¸ÙI=€C£>€"¨ÏmŒà%®ò_¢`õòìôä¸ÈÐG[KS¶ÔEu!(Ò<Ù š=’â>Æ>Ñ}öe¡- ûʪ`XöA ü‘&áÂnÛµ-º“§Ï^¸tåz[G¢þ[yÒGý13̘«Ïñ\ìï}xïr¸Väp(ÕG°¹à½šu DêboU_GS]e¡"LV°—Y_PП‚ /%ú:"ŸäÇ:”eH2y¶,Ê1uÎ>¡‘qÉHpó±àþêØ‰“X]ZA]àÂ`EÔÿ7PeXä`å³î?|†û„a¸ÄÀpQN¶¬^±4#9.*4bÍ:L}™Ï§‹ þ;eBøÒPjü.Pħ`±©0(,úœƒgÏ—ÜÙséÊ5¨óm\ç1$ŽIý?èÆ¼þ4¨ÏmL^=gOsêªéÕ“— «'6", Vàû—˜†/!¡þ|buŸ}p$Ù¹¸.*j”ìÛØ;¹yù…EáÂäåoÚ²sO顊êZÄä íf–äI¿üúTõ?ì e˜*3¦þ@ÿ#”ᮎ¶ëW.]8{údݱ£‡÷ƒ¹ཚçúºZªÊJH^æÈ2¡ODŸ‚¾Dô'àMpå”TÔA^ŒL`²:¹yû‡DÀbÍÊ]µnã–Å¥‡ŽV×qˆº|×!~° -ª‹0ì˜zAypïÇÛ]7Û®ýão_·45ÔV•—•|¹½hýš•9KRâ£Ã‚@PLØ,L}E0Üñ³N€úxöàš=PhCcsk;Ôg°¸ÄÔÌe".q‹\âñàÏ"Þ¿ÿŠ¡þæ!žñ¢£í4¢¢¬¤xÇæ kWæd¦¢Âøy¹.¶³276IRSV’—CŠ$fõHêñž¿î `_šDdæ¬Ùs ."û&æà.X“b“Ò² &DÊ«j›Ï_¼|&a7P¿QrÔE -#”“õ1¾Qn˜V8n™9µÕ‡J‹Á\òórÑ^ - òórs²·±@ƒR¬‚ë\˜¬3 /ý üøPG³ôr®‰¤ãû„tŸ‰},û2_Ì’Cd_˾™¥­ƒ3Ä$8"&!5 -³¾hûî}T¯?uQ¿µ½s´œ07á‡æúèŸ(êC—ŸÁ\zÜ×sÿîÝí7®^¾n¨ù?ûåÁTÕµ†á¹s¯b FÅNKDéMPT¥7 t{¯Ø» t‘ÞAàQ#F DŒ½ HŒ"Bô–8ãܹßZkï³ËÙ8&sÖOøæ}Ÿõ¼DáÀ\ Ì°W]œì¬,Ìgcu!ª¯¬‹É •cèËD¿ëϺ^,Ã…äe’:Nñls kûÅËÜ<|×mÞ±çÀQ:ÄD]è7´;NPHR>r“ÒøâÙ“‡÷êj*K‹o^¿š—žtöÄaЃµ”¥Ž¶ÈL õ '  ¸ÃùŠÛ9Ø ü¼Õ£¡­o4êŒ$ÎÕÃÇoÓv|ˆ`î!Ð÷‡ñºù­ÄïOœús¯îveY14&/;#9>*<8àäÿ=Û7ùù¸»º8ÛY-˜; ,I[¤¡ -ƒðèéâ÷'{Ü'û½hì;p°-û“Ô5´±À$tX¼ÜÍ -ƒrr2 8<*ž±ƒTØ„¿²7!‹úìs¨O2ü×e”aÜ匔øèˆ`0—`.ëW{®\¾ÄÑÖ…xš¾v¸1*Hõ‡ ƒê÷íÓ‡ }™èKëqd¿'†äÙËP$/cÕ&ª3°srquØaÅ `+n©pˆÿà«‹((‚«Ñ®ë$)@»4íœìpPŒô´ÁÔ '  -\ê3´“â!Puô™ïµy8Üés!bR/ žÖ¶÷Ÿ§>kóüëÃû6´y~k‚ÆÐ›“›•ž›~¿ý»¶’ßÏÉÖý~ü; @mAwQ_zO"ö{÷&’ô-#ûaꛚÍ[hmï¼ Û*Ì Ø„ã’Ò³r¡0EP˜;¿4¦¶º¢¤° ÿJNfjbLdè¹ÓÇíÛ¹eý/Ð$›EóÌL uµ%©ÂæÆß<2êKë c_NŽ'ûJ*ªã&|7ESÇì€hÒ -wïµQaNP…Éì`a¸IénºKzܽʘ Êpc=¦>d¸2œ›™–K›Ë¶k}ÜW ½Šºll ‹T_R}Hñyý^’ ßÝø“?vQ¿Žña#©‹Ó9n¨DÇ}×ö{‡¨ÿ‰àN8*wi‰± îÐ*$~`jl £‰©¯Œƒ2¨ß¯KŽË£>é3¹ÃEe|p8üûÙ ßÏ‹ü~ pa\…c6Ï;Þæë²ðäi~&þüªèÏ/%!}~GÉçç šdo??ê ªôp]"õ ª"+‰T^»ØÇ²?ú‚í@]C[ßhú¬9ó-mé `=8“˜š™s9¿ ô ¨/i -E…÷º÷ÔãQ_XàJP†is9ƒ«¼aתï—:ÚZ.˜;kºep"Õ Žª³ ú_àµï¸£qŠuôÁ]Ì-Ðbuóð]·yûžGOGDǧdüó‡úùVYÕí:ÀÝó†—4îHˆy¸%…'0 omyûæ·_Ñ,|xÏB$Y,AØ -QYùýG›Eó瘚В«¬Èà®·w¦>ÿ÷4N‘Þ1—W,sA¦Íåô1d.XàÐ^?g¦‰¡žÖÔÉ(ÄÊ´êCT_NNúÝ…¿ÀãRãbŒåe8•bâ.€;¼X}üîÎ…GÅ%§ÜäÖuDrEÔÿßçywóúÕ¼ìô丨ð Ä»Ý0 ½W­Xêdk)ŠÊ„qcTÀPRä¿!AA9éŒä²Ï@QŸ>ÃH%Ö,¬ìœ]\=|ü6‘Ï/$":!åùüÊ«p—áóƒ.¿•8y¨ÏùûšÐß‹ý}è -YéIqÂÈßǹ‚)Ì%dI¸/¢+Ȩ/Õ'„}FöÒA!£ÐÀØÔlÞBk‡ÅËÜ ËÇ? ,lÍ}ÆÒÜ®æ®ö\¹|±ƒõB¤¹ðè¬ A ü ëÔç^úû´tY‹Ç‹,žgƒÂ.Æ%¥gå]½~³¸´²UùÙ n•ùG`CŸº]˜6Ž&U•Óƒ'*"4‰ öàÑPG…!__W {í?öy²’¢0t8¬Â1j'OÕÖ3BÔ·´uZºÂÝ{íFD}ˆJxT\rz6ŽJY%¡>$,Ùa_ø}Ü—@ýqP¹¦¢”Ù«açq‘·nÀ{ÕÑfÑü93M õ´¦õǨ(aÕ§Ô…Nñ?dÐÿOÐrñd¥Ü…¤Üe¸ËFâ.ÜSÀkd§XLs9YáO@® Eˆ½vž(3SC]­)ßM»ÑÜÞÖ\¡Å7hðÐá#UƨM˜ó8ØÉ~_Q_F*©`êké±Á{­dA`SŸ6K°/ þÝG}Rdbž¾ä_ÎÉLMŒ};}ì £o6Dßt5q‘UE!î'¦ú2èK÷q¨ÏžxìSš{æ|ØÅؤ´¬Ü+ùE¥5w~yðøY}cÓ«7Í-­mbì.âO,≲"®\Ï­,ÃÄËNOŽ‹ -Ïõç)–!ƒÁ.¤ ¡ÓÔ—tReúë³²svqõðñÛDOHDtBÊ%2xÊ«jïÞô´¾áå«×Í-@ýŸ¥>ÜFt {‡hR(_“PaèŸn€~>Ö zºÈº"ÝÇ`Ÿ#ûýqT† ¾Ð³ÐØÔlþ"Ç%Ì,$}I‡¾\¿YTʱ$ÒJ“hêwüb©ênê‹Büôñƒ»µÕå%…7®]ι”šs!$ðÔ±ƒ{wl^çëé¶l±½µ…ùìÓ t4Õ'Këâž2è¹'¤¹ýåÿÏ~yGeqfaüd÷ìnÖ`,M”"ŠX. *"6PÞ¤I$¢%–X±€ -**)R£ˆj4𥣉Š%qÏf7q÷ì}ßyg¾™ùæCDÁÏwÿœÿÞ;Ïó»Ï3b¤ì¨OÇ((akëÍ›YØ8,óðYñù_~õõîý‡ŽžŒKJËÌ-¸P\z­ª¦ï>"£b>ñ$Rÿ¢>¨¥»³­åÞ[Mõ5•åW.ågg¤$ÆDE†ïÛµmÓºÕ+ý¼Üœí¬–,š7g¦¾.'çŠïOoH}p#úc ð¨Lšª®5Ý`–ñ|SskûeîÞþAkÖoÞŽvp"6)53‡ÚAmC3\¾tùø;x)‘úÜ`Ãt¶£ð ƒbb’7Ä$k ŽaäE}gH¿ûŽt^=âaŸÂ~qñð X…ü²çP?N”’ꨔÔÑuÿ§GÙÔ§°Os¿_äÿCPŸq%ˆ¸(?'#•åã ìcsÓyƳ tµˆ•Ù"æV)ôßþpÂ>]Y‡ Ç*–WâÏÊÞ™sx(ç6!ê·uv?xø¸GbÎåQ_ è -"/òÉþÞîÎöV8#Lµ¨"µÐÅ'–× -wØÊ2ˆú¢hhOg9™º|ÈÉ'ãN§ÍåôQß!ñ¬àÔgêN'Ô;7›ê«Ù‡/BÌ0s؆Œ„ȰR’”ú0| X~üBkÅZ”’@+G%h'Ê/¿bês±/qÞ=÷‰ˆYÔg|ÜM|ÌJo â°Ð[7¢ôæéædg)”Þˆ?ú;Ž.áFýwýëß« ʹPYG9w‚ê”iZº3çÌ[´ÄÒÎÉÍÓoåêu·î ‹ˆŠNHIÏÎ+ºt¥¼¢º® UÖ¶ŽnTYŸ>ûùŠú<äq¨OÔòo^3lýáûïn4ÔV}{õò7¹gÓ’âN=|`Ï×_}É]³ƳIÐUFAWNöÍ×Ûå#ùMGÏÐhîÂÅKm]–û¬Z»aËŽ½?Ÿ|&ëÜù‹%e(¿¡€“{]úì”ÔFQ¿¨ûfS]uEYÉż¬ôä„èãG"Äúyº:ÙJ2ŒÀᓺåm‹ú|­È±RÒ ”’, zx#êS½ðd\P¿Q¿ŠPŸôBHIH,tØÇØï ø9ì|î‹û˜)¬]€ú(ºTõ ó²ÓSˆÃˆˆ}=]m-/412Ô×ÑT›Ë]m–š-˜;ÛPO[ä2^IAÔ ©ŒðÆÔgV ; -­QV0­ÀÒÖÉÕÓ/08„:|Ç£’áð¡TT×sßsšú¼º#@}ÖÝ{w¯ß½ÆZÎ ðÅÀ†ÑÓÁà €adêã”$µËÛnØgõB’’TTõ õÍúî@ý5ë õc“Ò2s .\¾z­ª¶O}öõEØïm„È?ØÜç©ÙQ¿çñCª°r£K<Š.”ˆÅE¬$ b6õßõß†ÈøÏlä 6‚tµõ¨Êjãàâá@*ë!ve7ƒŒ[ÚéÊJTŒ˜÷’Å<†úÿ£ÕòMýç½%]‰!A€yý¦>ZØáS‡êŽ&©;VvÎn^¨îlÚ¶k_xdTLbJFv>ª;•5õÍ·îÜkiëì&FÞ›úðYÓv:Û[€úÍÐv®•_(ÈÍÄmçÐþÝܶ3µ©“¸woH?ïžtú8\ê±õ‰X”‘X´t fÍ™gjneïìîíDSÿ¡~qé5Æ.È.¸bµ0Øï øYì7Ü—D}¶¯#Ÿ?—u&™]|<\l(ë!«ðDÌŠ.Òì2 à º¢Ê:Š©¬ÚTe%á…È8<dœš™ƒeL3¯]€y¿÷…úÜjx ªa%Tâü쌔ʨˆ°}»¶mZ·z¥Ÿ§›“å’EóæÌÔ×Õœ6E•U …’nßW ÁÈòØÈL|㙽ªš†æ[Œ‘ÙwÛv¸Ôç. G´€æúšÊòÒâ¢üœŒÔʑᰀÍë×ù{¹;Û[™›Î7že0]K £¬(?0røÇCeð¤ÔȦ¾PD0‡ˆàîEIJ/\L,´] µÐا¸ßûðÉ/ÀýA¤þoÂÔo¬Ö8Dý=Ttñ¡¢ ˆ¢ ±’ü˜Oå(ê#‹¢‹TÅ2••Ç<^Ä’nhXDTL“t«ë›nÞ¾ûHº~Ceí õ…£.‚^C Žºù9™©‰±z»·ó¡§«¥Ž¨¯HQ Ç«†}V‹€‘e`#?‘cß½ÙÆÐv¬–yx¯ mç0i;TÛi¼ñ­µGõÑúL}~Ù©¯®@g//;=%!Î*;Âg¯×Hýò–G$b¨@¨¯/²‹] OÄ& -PÙÔ) ‡}‚}†üÿ1ôKâþàSÿ—ŸŸawu´‚ŠoÐÔÏ=›vVB}o÷eöÖÑE$bnt‘ªømPxáËXGßÐÈdábK['WOßÀà[wì=xäxt|rzV^áÅ’²Šëuˆú­]˜úÏhêó Ç¨…] ‘^êwµ·þðýw7j«®]½|¡ 73- ëe7Ñ‹èÅ”•DQ·¿Ð¿{¢¶£ 4^e’š†¶ÞŒÙs˜-µqtYî°jí†-°€ÃÇNÅŸ>söÜùoJʾ}åÄ¡OÞ/É/e% ÏeIŽ?uüÈÁ½;¶lXè»ÜÕÑvéâ…&F†ú:šj“'â²3JV ìH©? CÄBÔÂØÔ‚í2ÛSßÒÎ ¨¿’Ký|6õÛDÔ§Ã>`Ÿïÿî -õ_ -S¹¸±S»8»˜ÊnÞì솢‹²4º òèñà ‚ÞX€ÞÄÉj:z†\èá¨{ìT=á¨ûO¡¨+@ý^Sê†ñT7ê­ -ðñpq°±0[0wö =m ºŽuC^JxÐ>þÛ‡CõGÐÔ' @go©­#}öv†¢³—Àœ½ê:ªìtô^v¨/xõk«X) ¿®ÿý@ýñJ -Ìû?ò!2ŒÔ/9<µ`» ¥í2Ô‚©odB¨ï'¢~LbjEýÊšzD}¢–ÇOžbê³°ÿêa‘¿î4ôÅ+vñ}B}”ÝJ‹QvKMŠ=NSßËÍÙÎJ¨°J£Ë`ôXQW^IYeÒTuíé3fÏ7³°vXæá½âó/ÖoÞ¾{ÿ¡£'c“Ò2syõþ õiê½dQ‘‹¸^žcêww´õo6ÕU㬛—•žM²n'ëêé°©7QôÒê ù•YªìÓéÍ“òñÎаˆ¨˜„”Œì¼¢KWʉQzCï ¿ŸM}vHb¨ßÙÞrïέæ†Ê/9Ø/LJZáí]‡JI¤ë «''‹ºN¯žt^gz± E}5P Êlµ êGQÔ/*.-Q¿ Ûå) û€}Ä}Bþ_{ùyà<ìK þLýv6õóAʼnˆúûvmÛ´nõJ?/7';KŠú:õÅ -«TÄ;\cêÉ ýxøÈOäF&¯¨¬¢:U]KרojneïìîåÄK/„zM"êõp¨÷{_¨ÿQÿñÃÝm{MõÕ•åW.åe§§$ÄDE„…îܺ1ãéæd ‚11‚ê#ÁŒ~#Á0ïç–ôþ±Šã&¨N™ïGÔ7·²Ãï_³~3õþX&½I¾zܮ徨ódž_ƒŸŸŸ‘’Åø…•’ tµÔÁ/ÊŠò8%õ™”$5ÌŽ ]HH¢š!¡þbK[õQFHLá¸å.Mýž§ÏHØGØ'à‡ù—ÄaÈÏ€Ÿ‡ýÿ<ödüQŸj¬-@}’]Šòs2RAÅ õ)£è&V£LÌD7iaŒáȘPo(—zšº$ëÚ:¹‚ŽƒC6nÅY7:!%=;¯ðbIYEu]ÓÍÛwIgý?ûõTå™Å|fÇltU&šÝP„ØM ½ˆ5Vi‚4¥ (ŠÄ²–]ѵÄ"AŠ€RD£Q"Ho¢Hï‚4݉ggÏó¼ý½…¢—Ìdîùvï·sï9¿çúÃQ_\ØÍb†Ž nöć#WŸÝÿTêÕƒ[GU“xõLÌ­mEÜ:ùE¥eÕu Í´ú¨ýa«/æÔ ô#½ïw¸8l&÷…’øíKF‚5´úÊêZ”ú›±úä¶ õã õs ñ¶Ôaõ»~E·áÁ> ?QoEM?¿÷%Î>gŒß‘ê÷Ñê“KÌÊ.¼)ÖGêk©+#õd‘úS‘úÒƒuLŠœc~ÖeݬÔšZØØ;»ºï;tôÄ™ Þ¾!Qq‰) ~fNAqé«Êj˜c¬~o?ÁÞ;{œy!æ7ÞÀ°Ã䄘Ȱ ÿ«—Ïòô8°ÇmûV[ksƒu«–/ÑÑFØ~ûlõñ­ƒÖX^«¯¦¹héŠÕzL6ÙØ9¹ºï=xäøéó^¾ÁáQ± )÷¥gæäóÛÃm_}öº€ú½XýæÆºêÊW¥Å9™éî§$ÆF…‡øz_8sâè¡}î®Îö6¦†úkVð÷å=i¨„Ž‹8õéŒ$D}:ºº{^÷’ì¿áèþFDÑô3ð³ÝöÅ©OF7òbMõCõí7[l4$ÔWã«/.cSÜô2æx"=ÇòŠ3=e5-Š=k;'»{W¯‡G’ì »o„…]!ê3Ç!¸×ŠÜõ‹ó ÷b#ïùz?}üÈÁ½»¶;ÙYo2Ù ·zùÒEšjß|5oö—Šò²ÿ˜3y”#Þ&ò×XMKÚ'½Ô£çGHÔ«ˆo(úiø ÷Ç”ý᨟‹ÔOMŠõýÈì‚ÔGÙO1RŸ5Å£Ýai¸„Þ¬v?›þwYù8ìªjê,Y¾j±¹•íÖmn{xxž:wÙÇ?(ìVÌä´‡O2²òŠž¿,¯ªmhbÔ§Ü{Ïržz`~ç¦Ý–ÆúšÊW/ í>ûåç)‰qQ‚iMŒ.51¼œ0R÷½O‘úÜSG›\c öû†ÞŒŽOJ…5~†Ö¸¼ª¦¶¸³©?8¤úð«ÐÍó×¥(/ ]:wïÄÜ‚KLJºt¶mµµ27¦/ôæ—³/Rõ%\âÔ—ç¨oˆÆÅ™§~Ò=<.($TêÃÀà°ßO™>ÈÖ¾_ (ü±ü‚îû‚êÓcÜÒTƸ¤0÷ÙÓÇR“â¢#BhõÝ]ìm6™RÙ…JnäOTÿþÇÿœ%dŽ'‚ú2 þr3”fÍ]°PUCgñ²•k×›YmqtÙ¹{ÿác'Ï -­/‡ážHõûûõ›êkªÊ_ ‰õñÄ œ@_‡Ìu¨N^‡rH}™Ñ¦]žú¨ûI“§Ý+àîU4´q÷Ff–L÷—8ÝçëÍãªÏkž³.($Ý»ûæë?^¹töä±ÃûwïtqÜbif´~íÊe‹µ5T.˜;Ki†R_Fø¾Hæã—ˆm¡ÔŸ=Ÿ†"Ô¦Õ/~QVQ]‹ÔoïìêõûèdªÇÂ÷ÕKñ‰¤ÃϸωûcÀ>÷då«ÏßaHn^´úv6ÌÅÊÊ."¦øþÇÿ¤EÏñ8zޱ{Ó>'Ü›¿P…N»–Ì _ð†´—”úàç_ˆøRYS߈nV8Yû†£>'î¾få„ç…yø.þ@ÂçÀÀ§®²pþœYJ -ß´Ïd¦LžDŽÌÈÕÖ=çÍ[²l%\:fV¶ŽÔ¥s‰}édÃ¥ƒ·¸™Qÿ¿h©æ‡P€zòˆC§¤@ä“g¹Ñ?y¬æ?ç4?š'E_b%J}˜PÿËÙó¾Bê/]A¨oÏRŸ> Ѳ—¢y©o„éèÂa¿—æœöKÿšW$þ$üÈý·È}^Ü—<ûÂÔï§w˜=ƉqQXýó§9¸w¨o ꣋uçbå¨?Nª¾d‹Ÿv?÷¨£U8Zñ ¯Ö34µ°±wrußwèè‰3ç½|B£bSî?JÏÌÉǃ\s ê÷€úƒX}|ôÀ°&æ7vNhmj¨­®({^”—ñäaÚÝ;1·nùû@Üõô8°Çm›£­•™±¨¿DGC•wG Ÿ˜KG~ÚâoT5u–,_µÎÀÄÜÚvëö]{õ/_½›ŒšÏfšoÚüÿD¨ÿŽR¿«ßÜXW]ùª´¸ '3ýÑý”ÄØ¨pNH²·±05D!IWKvìØØaúdeÂK¨OŒq0£þö­vÖæ&H}PV˜R_ ¸IÕ—\qÕǃ<‰9Z1|jšhõ6˜l²¶#à;~š„/&ânzFv~†o¨¸+D},ß È‡Õon¨õK‹ò³A¾´ä„˜È° kW/Ÿ;åéGÆ–;2z -ÉnDóÓš7Ýdc‡ž<ÔÊðD1Þwuuuò -¾BôðsÜ[ö‡¯~Bl$VŸcPñÊe‹ÙêO¢¾tŠ%XBÔŸ4y -V_n†Ò¬¹ ªhh/^¶ríz#3Ë-.;wï?|ì$šäë8¿ÜûéñÓ¬ÜÂ’(¾4µ´uv‹–OŒúœ‘))È…óðAjb\TDH€Ÿ÷…3'ŽÚçîêlocaj¨êëj©)=oöLE"ïNUÞåª?aÂ'Ÿ"õeúr¤úêZºß~·Fßh£åfz‹ýÈìFöŽ^Ó:ÞP¿¥©©_R˜›õôñO÷’âoß ½þã•‹gO;¼÷N‡-–fFë׺hk¨Iã¡õaß9ÒyZ}?FýÌœ|‘*‘úÍ­m ~vœ,B|ì}T;§à L7upÜd,ÔÜò±úÉ ~X£> -/fÆì1Vû6X6x"L±Tý1)r’DZ©Oȧ„äSQׯò¡Iv 'åÝ@1yw`8ê¿çÓ×ôÕô=úR“â£o†ú]¹øÃþý¯~¿ÃÙa³ÅF#ý5ß}««¥®üõü9 ¾¥þ(f†§>çÅSPš5g>çÅs$_¼³—àÅ»qîüâå²ïœ^æÎ![B}^R\tDH Ÿ·ÖµÕU uf]¤!i¬êã©ÿª²º¶¾±¹¥­½ƒPœ(:ácïÛÚÚZ9_ ú;©—‚qŒÙ¯~uE¨Ÿ ê§%'Ä€úþ>Œú[@}:¼cÌÞàæ6i®òî_QÞŠÔ—%󮚖.L²ž¡©…½“«û¾CGOœ>ï囘rÿQz&ºZË*«ë›±ú½0‰X¾wbÔ眇}½=x[›Pà}^˜‡ï]¼7D^ujf€¾ÑÞ‡"^<Ö£ª¡ƒÔ706³²uÜæ¶ç€‡'¨ïãv+æNrÚÃ'Ù°ÄeÕµ ÍŒúx‡RÿðŒT€3RJblTxH€¯uæ8á3G:sðƒ'ûž´FQAýôÌÿ³_gaQ\YÀ¿Œ“y· ‚ ¸EÇD‘UÜe”qCT\PDÅw£&š¨‰»F\ЀTQ@DDPp‹»"Ð4K7Mïݸ "J'#sî­ª®ª®jÔÖ&/}žê¥Î÷ó»ÿsŸV_o¬Aìc÷ŸPâㄽ7 ì2ˆþ‡øøëêž×CÄz‰â~ìÿ9êß¹qõâù³§S‘ú{È õŒÆ˜¡þßíê7W±ÕÇ“Ü -&ÙÁÑÉ™œdo¿~ƒG‡N -ŒŠ^²bõº[wîK8r<ít6EŸèS3è{ÅCŸib˜êÃÌÐê´*˜™Rq±if’É™1»û’÷¡»«ËçNLõ?…™iñêS­³—Ø¥ƒ{gPßÃ˯ïÀ€À‘cBÃÂgàÖ×nÀ­'OËÌ>¼ûèÁ“£¯æaíÓg–<õQç¯`[ÈÎ9))!.6fÛÆu«W,‰ŽŠ Ÿ<*0`P??o¯ÿùeçŽõÛØ×¥¹ÊZõ÷êŸË»Œ¦XTRV)W¨ÔZ=„}Ì>¸#þcJ|¾^¯×étZªà[§×#úkÐ[ñˆvŸŒû|ìÛ(ìóÞ¬XýR}±€³ÁTn›0.ˆ>Y9êjãf¨OÞ>_‚¾0³À›œšq67Ô/(†ü"S¨´z:ðbû`-…}FâÅö=­}Xú/÷aBq"ûf„‡…Ž0°¯Ÿ—¨ßÙ½VìkÉšwéÛºC;öƒg~ðàÌAžù™#”H+«”Œ3ÇÔ9¯úÌ+çµÙ•#/§Þ»\r[ˆÎ‰÷.,„èÜ×Ëãëî_6ݹ}]lQ þQ¤>¬~…\¡Tku#Šî¨zh"¯Õj45£4d?–¿þÚ'OÁýçà>‡ýFû6@ߢú8½Ðsœ‘š|øà~Zýé þh¤~ó“Õ>ÆÍW&úèInÕ¦-VßÕ­¨ßËÓ×Àa#‚ÆMœ1kÞ¢åßþðÓ8[>v2#+'ÿÊõÛE¢¤¾FoõŸÖÕ¿h൫>÷>TVUJ%ÂB¤þ…s™é)I‰ñTâ]0‡H¼ÿþ3ñ‚}V©Ï{æ´…3§=R¿ ½Ä£ÆŽŸ?û6 û<Lç6JýP?ÔGs¼÷ŽÍ?~¿jRò„±võÿôbÛgRÙêwéÖ£§§ÿÁC‡ãQžEŽ2²˜~ûø¯Eõ^Ôcõ: ¨_V",ºwëÚå¼sgÒOMŒß·kû¦õkV.]0wæ´ÉãÇbõûx÷õ»€úxhÚCó·÷³Î¡õ–&õÝ:¢Î{ûôátŽ—øØÉSY9yðÞ݃÷®ŒxwÕçi\O4."Ï9sêıC¨mY8—ÎHþ>žh[:¹¹º@ã õíÛbë²Rý],õ ŠEi…¬ªZañ ~ãª!ȇâ#ð««Š*F)†»ØGî×qØcÆ~3¨OÞ¬-N/b:½£ÕGslRß›Pß´ÀïÛìeu5e_Â>ï>ýM‰w™xcb㦤ggk¡P"õÕ:Vÿ9¥þMªßÈÆïÉãDäÅøÁÐäådaüöíâNTh Có^øñ½w­ñ{çB¿w…+g‚éÊÙŒ¯œd¸rrñ•S,*EWŽV_Wγºú—”údãoQŸ:rÈ玤þâ¹;`ö܆çδ-и½¬« þ;E°+å ¾R­Ñê #¸_ƒÄgâ#ðår™¬ÒT2™\ôð3Üoš}[„}Ö ÿÁV_¯5¿YYéeætrŽ™±ÍÉ®~sÛ><Ê­`”Ñ(»£Qöðöë7( pTpè¤ðȨè%+V¯Û¸-fo\BÒñ´ÓÙç/‚ú÷bi…¼Z­5`ü@ý†Wx¹ê›f†Bý—õu††:øv9ˆyƒ@ýtäuÆ‘·õûG^ Wì°‹«{§®Ý¿êåéë?`ȰA!§FÌž¿øPËÏ{~ùõHrêé³¹¯Þ¸s¿X\ -«¨Æ‘ú6fÛÆu«W,‰ž>)49~Þ°-?äȱ—ueú۹ꗖWÊJ²»Ä7èõ:­–$Äð+*ÊËËËÈ*/¯¨úA~€Ÿvß2û¶ ûï®>Ķ“8¶m§ÔGé…œãÞäîÔîLõ[ØÕ·}1íc² ¨øyxùö8rLHØÔ¿ïÖnغ“ƒ_¹Üy1~¯^s"/¯ú04¿3DÐÄûwn\½˜{ötjò‘_Ùóó–Ÿ@ýÅógGL4bØþ¾ž½¾êÞµ“»« šš¶m¬V¿c‡)õ‰Æ{1Š&‡çîõÜÝa>wµôsg~äð¨ÿ_Ö²´X}±÷}>ûtêñ# q{wnݰö»oGGÍ 320``_?/¬¾{óm±g$—õê'‚ú™ þÕ·A}qiY¥¼ªÓ îEÅ|‚|$~Y™TZZZBVi©T -öWü´ûdÜçaß–aÿíê—ˆŠúy þ B}ÓÍ:i¼yzáªÿûÛºšÀÏ,òŽ›8%bö¼EˉȻÿàáä“Y¹ùW®ß.(•–Ë*ÞˆÔ¯Ãê#ý t4š…}‹™÷I-~iLýæG͘Bèçë…ÔïÌQŸÌ -ï¨>ÿsG9^~ýúÁ¡aŒ#'Žœ”´ÌlHn7ï -$ÒÊ*¥Zgxð¨öi¨oê›W}îÊHbˆH7®æçžÍHM>ÌûÚõµôÚÙ3’ÍË*õ7ꧤgBNõï -@ý -Y•Ë îãB1Ÿ0‘/‘ˆÅ"²Äb‰¤ÉOÀO¸qŸÃþë×¶ûÜ6 ²Q¯!Õ¿wëÚ弜3§NM¤ÕŸ9 ߬ ¾…ôòW»úÍQŸ0õ£ÕwplïìêÖ©K·==}üû:|ô¸ S¦Ï"ÌŽÝû:vâÔ™œ¼Ë×nÝ+•”~ >Ö¯þE¯~\õIþ@ýº§µtjeU¥T"(¼{ó·K²3ÓR’âbc¶m\·zÅ’è¨HȼÁ)órÕo;ìàèäLî°‡·ÚáQÁã'M‹œ³`éÊ5ë7úñh‡Ïœ»€ú.Jpß:ªï·«Ëhj»áE}{YPDÊÏÉÊ8yìðÁý»wlþñûUËÍ›1e¸ Cð÷ñìÕ£[×Nn®.í­»qìeeY£þz¶ú×±ú%Ò -™œìà>”Å|Ú| ‰/ -‚b²¡P$Fðî£ß!î î3ØÿýÕ+2ìÿÏvaŸ_ÌÕW*de”úçΤƒúñ±1&õÑúÜýå̱]}Û–™ú0Ë-[µnûRÿ ·ŽH}˜åþx–ÇOž6s.¡Ìr<º[ùõ³”y›P¿«oÔi@ý2‰°M͘š<5Ûè¬À¹Ú9X¡>»oR}ž¾‡“}/\Fö}àÐQúµš^»ÇOد]£Eõß°Ôg´]"dD¤CdDZµláÜ™Ó'O;zøÐÁýûøôîÙ£[—Žn_8·wtø¬mëV-¡m»úÍQV«ÏV_T"-¯”£°¯Rƒû >Šù¤ùùñ…‚⢢ÂÂûd (øÁý*EµJ­ÕéÍÙÿf-Þ…}>õéøÂdz‰Ô6‡•ÚþÏ~GEu_q?­Mõ¸à’¦UYÄhÍ1‚  --6Øj*( €, ¸à¾Å¥j¢&Šu©ÑàDö}X`††f˜…MDv•UÔš¤÷÷{ofÞ”Iÿ˜ûÇûósϹ÷óû^¸YµêÿJ¥V?õ™wåjwïuë7ïØ{ð ”y¯\ÿ.*>9=+7Ÿ_,’–WÝ®½×ØÜ -êwúO±~?ö«>=ôvv´ÝW™;·k׬Zaê[YÌ#øÓSð×[ý~ǦŸ×N—TßÌByãø+nœàЈ˜D“Åæ „â²Êêš:PÿA[GWwϹúô•ëK}ú‰ƒ;>7/+=%^±,ª´-ì¨mkÕ×@ BýU¤úŸÓÕg±¹ü"¡XZVI„}ì>Jùwkéæ#ò‹‹‚ÂB>Y……AQ1?¸yÿöÚ»÷êÕ°ÿüùð†}ºú/^66¿à/ûû?—­tq÷ò[¸}Ï#ǃÎ^¼r-<2%NA‘H‚ÕohnEü=ê!Ô¡Fý_~V™¬þEV¨«©®,—xl“‘|þô‰£‡ö¡Ðëó†Ð;þTÔGmÕ?ÔŸ¢«oꙘYZ/Z¼ÔÞÁÙÕÓ×Ó¶Ýû;yæ|ðÕ°ÈØ¤T&´-J°ú Mж¿§µÝ—ú8!={ -êwú­ ~ííªr©¨˜ŸŸ›•–~ýÊųAÔeÁi!D$¤¾ÞÔ? íÄÑÖkPꯥ©óQ“P¿TZVЮ©÷QùØü*d¾‚üB~ÇåróóóáËåð 1üØýŠJ÷ïÖÉÙïÀì#õŸ wØW·¿ô£ÅdB}d…ú^î.ŽZõÿJ¡Ÿr–H}]óf™˜/Àü9:»yú’ü]¸¬à§Ž?5¡W­úøB|Òó©ßÚÔ@¨/Äê§&ÅF†]õO;¼÷¶Mþ>ž®NöKmm¬-ÍLŒ@}C}]¤þD¤>ml†ª>­m¬þ2hÛ Ú†ÇŽh=vIj»>N5êÓ»nnÀêKDEœœÌ´¤¸Èðk—/œ :~äÀží¾^nÊe1†e™N.‹V}MÖ€ÕÿT®þNŠúqÉ©LV¨_R*‘•ƒÙÀ>¸_‹ÉÇæW’æËÉçæs8lv.6›ÃÉùüÈ}©¬¼Ý $û0û -ûWâ VŸdP òÒÅ‹¬˜›ÈÕÇ뫃CÛ ÖW[oW}ñG½6¶z\=} ôîÚwèè‰ÓzC#b`x‚± ©_ßÔ‚øëîy,Wÿ%môê÷J½4ÿÊTýCêcÿ<ÝœíÑØX*ÇFmX¨úê»éH}Ssꉳ™râÀ -§eåæó‹DR¬~cóý‡íÝ þ÷ýªßû¡½uÚ[GtÞ:_OWg‡þ»~º¡]–a­·T? ©Ÿ_ Ô¯Bìƒû5(æcó+ÊdRÂ|L>¼ÏÍÉa‘•““›ÇÆð#÷E¥)ŠûöÛ;PØ'Ù'Ãþëa ûý¨G+¨O;Z¯)ÕGñÅ™P_>Èú¤úã°ú¿×ª¯©RQ†yÌØqã'LúÃ'OÕŸêÏ™kfaec»Än…ÓÊáz)äÆÍ˜FFv·°¤TVqëÎÝúÆìUýWRÿñ£.›V”z¥¢"›Ì´ä8ÚØar"N+õå]ÓWxŠžZacÓùXýå+W»{¯[¿yÇÞƒ_|uêÜ7W®Ÿ’ŽÔ/.•–C×÷È®ê¿ì[}XÄW/)»‚ÔoiªGêËÄ%X}FbLDh\8'ŽÚ·këF¸pì–ØÚXÁ…3‡zá ºkm ½­þBýs -õ³±ú"1»±Eš_^&•”Š„È|”òA|VvVVf&WffVv6+'àGî ÑOÊ•ìßÐÖÞÙ…&-Þʰ?¼êË'ÖW®~¯õ½|A©>=´ýy9È@ýÑZõ5Ytõñ0+Ô×›ö!e˜—¯Z½Ö{Ý4ÌØ¿ooþÁÝ -þU À¿Þê÷'b4:Ïúꋃ{wl^ïçíî²r9V¾©ñÇÍœn ‡ÕŸ 3Žžz;4õ'½ÿÁdr…çÍWíú˯q×7£RÞôÖ½îSýW4õQÓ >4]!+-)äæeg0bnÞ¹ôßÿ|ýå¿?ß¹eãgÿZ»fÕ -»%ŸØXY˜ÍEêOÓŸ*_mDÒX½#õ‹ °«ûPÕ¤ù2‰¸TXR$àã˜ÈÏdf¤§§‘•žžÁùY¹yØ}÷e -ö›aÛ::»ú ûšU¿€“ƒÔDêËÖÊÑjfb¤Œ/Zõ5_}úÃ,O½ ‰ÔëâîíG¦Þ ³!õFÅ'§áÔ+’–WÝ®½×ØÜ -þu¡ÌñŒHS_`# `10=%!úæo¿õ1€Öy¯]½jù§ÿøä¯ çÏÃêOÓ›:ùƒ÷'QÕÿÝ@ÔÿMﮩoºpˆ¶#WxëN• ‡Í+,Ë*ªkîÖCÖjëèRQÿ§7ª/ß²iôÔqó²ÒSà©#š†§Nµé¹ò¦Ñ²èh—Eƒ5Xõ7(Ô¿r=©Ÿ‘Ëá ‘×À>¸_}ëV•"è— - ¸ùlˆù@~zZj*#%%WJ -#5 ÁÝçòøâ7˜ý{ °v¶Ã>ê!Ô'WoXÂþ›Õ—ê'ÅE†QÔ÷'Õ·µ±¦­ -õßÓ²¦J½úh˜§€ú3fÍ665_€Ô_æèâæå¸}Ï#ǃÎ^¸|-<2.)-3‡SP$’`õ`ü@4|}©ÿ‹À×tõ;Úpì­©®‰û½@‹ysç|4óCU:7½/œ1 -õõ õÍ,¬ll—Ø­pZãáêïÚwèè‰ÓçƒCB#bL›'ŠË*«kêšM“ê¿ê_ýûHHò'*œ³AÇ üÀÐS§­·©w¤~p aدBäA_Šƒ~!Ÿ—ÏœŸ)ÄONJLL +11)9…ðgf±rÙùªì7µÀ¶÷öß©úýä—Öæªú©Hý«ÁJõ}<]ì—ØÚXYö:Zµêk¶ÈiAæ±:ã±úº† ¾‘‰¹¥õ¢ÅKíœ]=}6mÛ½ÿð±“g._ ‹Œ…ÕÅ%½Ä£G66¤€„úOzº»:Ú€úu5Õ•eb¡€Çf1‰1¡!—Ο>qôо][7~æã±Æi…š‹^s3f0±—®þÈQ£F#õ'"õuõ ‘ú&f–H}Ü´?Ù4¨5,5 Oº¦ 6ýs¿ê?…]A=«ì -JHá(!úöl ðórsq\†Õ775š=k†¡.V¼ÎX…ú#´êw QýSX}ˆGŒŒ,PŸ_T"Keˆ}p¿²²}±Hˆƒ>‡ 9?#-‘Ÿƒ+66.>àg¤‚ûÙ9÷ È£¡²úNm]}csËý‡mÝ”°¯Tÿ' ¨ßÕÙ.Ÿä2‰M235)©Û+WßÔïc{µêk¶T$Õï  ƒ“«¨.ö–ˆeÀú¦`wÏcyì}©^}¥€/`nú„€M -õ9,47ô¹¡¤ê8©?zÔÈ‘CUŸúÔéÓž:Gg7xêåOÝåka”§Œzà A?;“™æ'&ÄÅÆDGEEFF@EFFEEÇÄüÈ}&Äýÿ±_çAMŸiÀ§»;³;+jµîº*µ×z€ â}µ^€ - - -¨°ŠUl‹m±-ÚŠÜ„@ á I¸ä”#„„C- °Ze»;£«Îìó¾¿$ürpHwvòüÁŸ™y‡ïóù}%û­mröûÿqÊþ ²ì?“³? ê“úË­›ò$Ãöfg¦0ðöjv¶¥„ú†„úÓ´©ÿ¶ÿßÿߣ - J3ª½ï"õÿj4©¿Ä|ùªu·ì€48tìÄiâr ¦%²28y‚ⲪÚzISk{g7¨?áSS_õÊGï•·Ü{“Pï%ôt?ââ¤)ଙ¯.àhꎙ…%¨¿ÍÚÖÁÉÕÍÝÓËÛÇ×/0”B¥'§±syE¥•5B±¬©‡ÔW¾y,õUï›Õûv…¦ÜrCÒñK§æ5©_‡°FeO3B_B _‰Š~€——›ÅòSSXLf2&“•’š–žÉFîó…%¥åû²æÖöŽ®îÛ=}jeÿéSuõ_ûZ·W³³•ËÕ§‘Ô?t`¯=¨¿q-Rÿo-À꿇՟¢WrGSý?@š±ú†sMHi¶±wÜð(Jóù þæ¸Dfz—_ê‹$2¬~/¡þHjª¯r#Þë¿Ó‹Ôo‘Š…5•¥…¼\vZ2J ôóõñöòtwsur°µFê[Z˜aõ'Ö{•oÖØàÙ†ÆóAýÅfË,×løt›µƒóA7SgÏÁ›AýØfZV.©oniïDêúf²úðT>ùס'ƒÜ¸Û÷swg{kSc}mUY± “ÁbТÃ.~÷5Þ•ýxWPC2'’ÑúèÉzõ'e&¬>%–ŽÕç#õ«‘úˆ}<¨èKê…Jô¡èçpÀüÔfrƒ‘˜€'‘ÁHJøÓ3Øœn¾ °¸”ø©FYËõvrÙüŸœÃ9|ñÖÔÏËÎHÁIVª’¼ý³kWêÏõayõê¿!«¯žfc”fp%І$ Ÿš€ÊÞ;aõAý¤~g{‹L,õ‹ø¹YiÌ„XPßÿÂùsgOy¸¹:;ØYoûtÃP1¨?ߨP®þpp~‹‚3^õG|óRüæí6vŽÎèK‡Õ—é8\~1þÒ5‘¿t#Ý7ªê?WUž|·«/“ˆú|.'™vÅÔÿâó¿=¸ßÑÞïÊ2å®`õ§M5ÐÜý²¼©ÑU}.¿ðjyeu­°^ e_Ö„GýâB¢èg¦§²˜I >=žF£ÅÅÁŸx:ÈŸÄ÷3³²¹ù|ûbiSKÛNrÙ’—ýgÚ–o2Ô‡þ‚Ô€úÃý’ ê'yñ°ú3ÞUYÞßèÕŸŒÑÒ{ ¦MWé½Dïµuprus÷ôòöñõ#©fv.¯ðjEµP,Åê÷@å¸ÿàÑc\8pòFSÿŘf)ÄêÎŽv6ÛAý•ËÌppŒ5ƒ3žº ]}ù}£P_qß(78(<:.‘•ÁÉ õë õû´©ÿrLõIºnÍâÉnáCg³M÷'ëG·™˜úþdõKʰú¸ìƒû2™TÚ(VAý´0?N‹‹¥RcðP©±q4zr?-#+;³_QU#¬—H›[Û;ºˆ²Ÿ(ûDI•ëåä¨W«\ýÚkåÄÕšHRÿ¨†úòÊ6œäßéÕŸ¬y‡L ªúsŒçú‹L-V¬^¿y«•íž}.GÜOžùêÛ~ºIOJÍÌÉÇê7H›¯wܼÕÓG¨ÿ -‘<ͺ¡ÈÍKmê÷aõ›$õH}_¨?JpPñ}õ#ñMõ ¦N'Ô7škòÁÇ aƒWÁïØ¹{ïCÇNœþò›ï¼êÓ)Ùy%å×ê@ýë7`ßúî¢'>Qt,Õ]ÓT_±*CÁ“ûÑyÓÑÖ" AýB^.;-™ŽÎ?_o/O8oœlçÍ¢ÑÎý®¼ÑÑE}Ø¡þµZ¡¨A ìK±ù„~­ý|n.úÉŒ„xZ,5&:ŠB‰„¡P¢¢c¨±´øF2+5ƒÙ/)­€kh”µ\'•}È¡²ìO’úÿRU¿©–7O}yájU¯lzõßÖ¨©ÿû?€úS§Ï@Î1š‡45_±jݦ-;víÞwàðñ“g0Á1ñŒ”Ìì|L`Cc3"P®þHj¨ÿ\¡þ?Ÿ ªÖõ#ñûo¾<}ŽÄ½ö;w õ—/]²ðãLú³f"õ 4Õ19ªOF*ú‰tZ,†'<""2*ܧ'&±RÓû|9Ô‰ÄÒ¦Ö6eÙðpð±R}"‰/^¿ú/5ÔW,¯–ʦ¸ZA}gGâjµDê¸`¸¿èÕŸì?gEñ½€‹/+ƒ“'(.¯ª…âÛz£«ŠïŠžâÌD}C«úÃ>%×…þ¾¤~scR¿ ?;3…|éG¬þñÃöîÞ¹c˦u«–›êêO—«?>Çõ¡[ O¶Ú…ΛãÊó&FËysG©>i×´Vý±^\/ÎÉLIÂ/ÆêŸ<~Øeßî]V[7úæ¦ðâ÷çÍ™ /ž/Ö«?‰£»úÅ¥U5uÂúÄ>˜OF¿HÀ#ÐGE?ŽM‰  ‚  ¤DSãâ’˜ˆ}n¾ èjyU°^B.û¿<„ iWÿõ°¯Mý!¬þ€ªú|PŸIRßÔw°³V¨¯Öú‹^ý7?*q6€8cõ çšâlcï¸ÿÐQ"ÎAaQq‰¬tWP\êKšZÛ;»îÅÑSS_5xc4ß[]×åÍ˜Š ”7_…H}Â@0P¡þÎ8 TS-°Á´é3þ4sÖlPÿý?Ydj±bõúÍ[­l÷8¹q÷ôòöñEêSéÉ©ìV_,mië¸y[¡þÐøÕ×rÝ(¾spݤÀu£üÎí;÷ -/Ö®£«ú¹„úÕµBQbÌ'Я®ªô ”èCÑGæùAW/ã ¼îGÅÄÒÌÔ `ÿܵZ‘úV;´yÙ»G$/ßó7«>˜cõþroàn/V_&úE|nV:3!vX}7W¥úf£^­zõ'a4Õ޳1Šób³e+×løt›£óÁ£§Îž;â›ÀLÏâò‹J+kDP9@ýÛ½w°ú` R}õàiWH¡þí›m-R1R¿—ÃNM¢S# õ½<ݸ8í±µÚºš¯…é¢Opóý n¾êÉ™úïýyöc¬¾™…%RßÚÖÁÉÕPß/089ËÃ/˰úc¼X]ýÿ(ÔW¬ -¤®­M¸ ò8¬DZtxPÀÅï¾þâóÇíßk¿sûg×®Z¾tɘÌ5œÈu£]g¢ê‡R¨Ãê—ƒúu"(ûhêEuµ€~ÙÕâ~^¡ŸH‡¢ÌºrùR@€¿¿ŸŸ¿@À%€?$,‚-g?+'_XRVY]G”ý.´z >‘Ä_Õ¢øò©¯e¥ú5•¥Hý4PŸJVßV¯þÿÊ( $Ç™0ÔƒH}k;gW7u Á@¡ÒÀ~|f* |6–úòä õ!9ýwz±ú2±’SÈËe§%Ó©”Ð@?_o¤¾«$©o‰Ô%9¯ªþÙ¯§¨Ï4àsãd¼ ¢ˆåTDcA1‚T[r&—blˆ""Šˆ "¥÷Þ{ï• ,½/KG‰•¢1žç š›èœWž÷ýý¶±, âš™ìó¼3ÏÌó|Þï3iǬ.þ¹ìñÿÜ£i«ÿv"õ‰U¹ŽRUYq>5=9Ž HÆúz:ZjHýªJòŸo\¿©¿d‘¤Ä|q²a96°š‘ú®\êÓèU5õÍ f°ª£ßÜX_SUQF+ÊÏ¡¢¤æ{yz¸»»A¹»{xzùøú‡†GÅÄ'¥fdçÀ{å•58ì÷BØï¿?0ôOâó£,õß|Tõ‹ò²Óú¬Ý=‡wwÞ]¶ú¬ÄÆsµŠFY5uòUPÙ†’ïþCšÇOÅÉ×ÙÃ7(<&1-+·°´¢¦¡¥­«·©?Dœ™/È+ó]ÔÇ“ƒÔïGê³''˜Wâš«Ï÷ÏI°Ôç»n ŒY×M\r:5¿¸¼ª®©µ£-ÛƒARýÑ1NÀz+Pý †Uù‘kUx’4¬†VUÄê¯Z‰©/äzOõó°Ò,õ;ùím­ @¿¶º¢œV\KÍL'Ð -ðóÝÝ\]œq¹¸º¹ƒû~A,ö©¹Å¥tvØ¿u÷ÞžDØ=Î( -Y}Ö(»[ŠÔOŒåIlšDbÛF&6iR}q¬¾èjj RñÒåRÒŸ­“‘•SP&ÔW×ÔÖ=sÁДbê†E'¤fåÒè >³³·îL„ú(oÀཞ@ýÿM#ú^ÃÑ]‰Ôô$VôõõNhîŒàœ)än˜³À’œ–WRÅ ¬¦¡¥sZ/°›w@hT\rÆÕüõ!a=}Æ­>ϦM¦¾Àã†? q¾9þã†lX´*¶fEý:P¿³æ··1-M u5•ôҒ¼«Y€~|LdX}o0ßÅÙÉÑ—£“³ ¸ïí뛜–°Ã>¬º:qâB£HD®ñ d¶ÕŸ<±£Ã¥¾.¨¿Ÿ­¾ R¨/ê*R_Ø5N}˜g±yâ $$/]&%½z­Œìæ-Ê[wîúf÷>õ#ÇNž¹pÙÄÒÖÉÝÔOɼZPB¯®ofvöê?z‚óÆË äQÂ+ñ!Vÿzw¨_U^œOÍHõ¼Ým,Œ ôõt´4Ôö~ÿ·¿îPU"Õ_ñîÑ—_ýyH}hxíú›awr5L¨Ÿ’ —£†;z®£†'o˜_ý7¸áWHýgOŸ<Âê÷vµµ4ÔT”æf¥&Æ„ùz8ÛQLùVe"õE«"”šõšZú¨ÚÚ˜­-õkª*ÊhEù9Ù©Iñ(éúûxy€ùŽöv¶¶66¶¶vöŽà¾‡°i?.1%=;'ŸûŒ¶ÎÈwï»gç‹1¹ˆ»óßÂUŸ'Àd¥áQf«¯­©NŒ²²‚œ¬ÌZ‘ú³xÕ'$Ô_AªO ¸D}ã¹¢/ŒÞ{SE_Áê¿ý'(ˆÕ¿wçÆõžŽÖæúêò’ü«)ñQ¡,õÏŸÖ9¦q«¿Ui ¨¿võÊË–,’|'õÿ4‘ú¼ “ßÜAôÍç|s )™94ÞonÒãF°ú£„ú‡îݹÙ×ÛÉõé´Âœ¬Ô„è°@B}à gðªìþf׸UY«"R_˜õê'¤fRó -Aýj¤> -ûm`> Ïhnl¨«®,/-.È¥f¦%'ÄFè»»‚ùv¶6ÖVVŠ••µ­¸ïJ°Ÿ/械_Ûù£ûÚ·ˆòó/ÿ1‹Äò S}ÖÙÊ`Ò8Æð©>1Ê›Eêì}—,#çY^IÏ³š†–Žž¾¡¾Hd\r5¿˜P¿GÿƒÁaV“ ê‡ú¸;ÙZš\>úä±#÷‚;A}4:H}îÑùd£3õ7§ ¼™è·45ÔÕTÑËJ -ós²ÒSã¢#Bƒôìm­­(–¸,)VÖ¶öûÁa‘1 ÉéY(ìWT×71Ú»`ïô?øixäñ/xYËÇ›¹>¸ú“­8ÀÁf'©>×(‹Ô~ñ«Ï™çUX}EÕí_~ýݵÃGOè»ddníó›”NÍ+.«¬md´Cà¸&P®Ì‰âÆ'PŠì›‰³/¡ ŒÎI -ÎPý¹Ð°¨¿©/%ýÙ:Y9Pÿ‹¯¾ýa¿º¦¶îYR}ß ð˜ÄÔ¬ÜÂÒ -P¿ Ô¿u÷þO,õǦ¯¾ÀÛ¦jÜmƒ~9tÛì#o›™þr¢š…š‰úÜê—”UT×Ö76·´ûLŒ~sc}-'ê'ÅÇD†øúNv6V s33S(33s Š•Á~HxT\b*ñ‘TÕ6Â(ö ÄÅžEˆ\/?¾úäÙÊ¥>{u¨/e¡9Ðs¸æyÞühž—ƒúë6l’WTÁê8tôø©s—®˜YÙ»xúGÄ&¥eç•bõ»à̇Gf¨þ¡þÈÐŒ¨Ï ‰htäxÏÄigßqê³û]¼t9RÃ&9BýCšÇuÏ^dõ ê§eç•V@¿m]½d¿¡ßç‚ú¨þØ(Ú”Ÿ >è¿}ãzwGkS]Uyq>5#9.2Ä«ol ¯§£¥¡¶©¯ª$ÿùÆõkúKIJÌã_áŽÍ«f¨>š¤~.G}F+ }õ+ÊJŠˆ¨èëåз¦Xš›™šA›˜š™[’ì{û†FÄÄ£°_«¦¡™ÙÑwo`èá£'O¹—WýÙ`Ÿgu9ê?ç¨ÏZ]Rý°@~õß#°‰jÖJ‚ ¾Ô* -âì›ÆÎ¾¤‚Sd_~õ'ö™X”›•Æ:­Ì®\<«{\óÐþ¾ýê‹m* -r›6¬#Õ_¸`þ<±Oÿ§þµîvFS]eYq5= ©ïåê`mntI_ï„Öaµ½ß}ýåvUE¬þª•Ëÿ²dÑB‘ú®ÙR¿ ÔGÅ`´45Ö×UWÒ9Q?"4ÈÏÛÃÕÙÁÖšbafjltÅ×#cS3 Š5°ïæéã†Â~&½º¾©µ½«·ïæ{ƒ±†/ßk¡¨ÿŠXÝ'¼êÓAýL¬¾»“­¥ Rÿ˜HýßQ PP’̾2²r -Ê„úêšÚºg/šRìœ=@ýè„Ô¬œBV¿&å RýÑwW382ŒÕ¿ÖÕÎh¬­,-ÊËNKŒöót±GêŸ;uüè¡Hýí*ŠXýUR˜A¬>ž©/ÎVŸç¶9|ôÜ6FæÖ°¿þ!‘±IéÔ¼bBýîk7n÷?&mtì[ý·ÕŸªÝ2Ôn«]PÿÜ©G؃ÔWQ”‡v×ðµû ´;G´)¼fCýªÚú†¦fÌ>GýúÚêŠrDýl"êøxº9£¤oafæ_6¸epÜ7ömì]ܽpØOHNφ7Ë«êàîìì黉‡G¼|¿þë·ß>´úoHõG_<ö©?pÿîMPŸÙÒPM§ð¨ùßïö]0¸®þ°Ïðù̼Ÿ×÷ýX;¸¸{ûžŽŒMLËÌ-,­„ÂÑq%úÆ»õŸóÕ ®ú<Ñy%ŠA(¿—Pù%d`Éò+ÄàtÕÿHP}¼¿r‹—*­\£¬¢ŽÔß§¥£odF㪟Bgä—°ªš¡_õ‹VŸoÏ&SŸ8mØêwÃsÑiÃD§ ç'gÉó“Û0ÝŸœl$1Q¿±«ЇªßØP[]QV\›MGU?2,$ð„ŸÏQ7WgG;[k<6¶vNΈ}_ÿ“ADÙÏÈÎ+(A ¤µóBï -#:<¹ËÇí ÒRÿî[cW±ú-„ú™¼ê›sÕW]¿v•ҲŋõEž­²,¿ëáWš­þBR}ÕMÛ Ðûÿ}è;й•=V?$"&!53§ ´¢©É#¯L¼GÜà × vt^ó¨ÿóÓ'Xýû·AýQP¿«½¹¾šUœÏÈH‰'Õ§™éëhaõÕU”׬TZª¸3ÈͦT†¨ýUDû«¬ªŽ÷Wë ¾± í¯_zn -=§ õ«ö.¼hc7á¹ðsßT}ö¦”R}";bîD±¯ù“[€Ô_¶byÚü‹ï´9›˜š™ ê×¢ÓæâÀRŸlW‘ú赿ñ­™8õŸ¿i?²Àý©¿Im=R±ÂB¶úøµ2õ¥5o­>« -©ßBªßAVýÚªŠ²âüÜìŒÔĸèˆP\õ=ޏ8úÈ|s3sä>°ïäzÄã(*ûaQ± )Ùy…PAšÚÎw÷ Ž„\¾gŒú!lõAý}“«/˲‡Lô á@ËúËW~ êoõ÷jêè™Rm õÃΜMÎ`0‹Ë«ë!y=pe‚úã÷pðO¼ÉõQv@}”áÆ`ÌÓÖ®RZ†îDäàlÒÁiª?‡P_Ô_½v½Ú¦m_C¨oaÍU?-+·°´’PŸØ³;÷8êÿ2™ú‚ÿ¸gø'âµ9™œœd^+ÉŒ$Ô¯olBêw`ô¡ê7««©d•1s²Ò“b£ÂC‚PÕwsur°ôÁ|SSpØ·sp&Ê~phDôÙ¤ô¬Ü‚ì^k'ÙA8•k²å“¾úe™úàð9HzÖì9X}yÅ% þ:•[¶ïüv¯æ=CSªãaOßÁHýôlfQyUîèʼêÿg’àýWŒúⲃÛošèö«*²ýNþ× -¨¿©¿Am3R_Cû‰…µƒ«‡Ïñ Ð¨8P?¯°¬²®±µ³Ô‡×rÔJªÿrjõá±ø²yH^6ׯŒ÷ó\6)܈&ËF6’‰¨®©¥µØôÛÛZšêª+ËK -óô´¤ø˜ÈÐSÇqÕw´³±¢Z€ùб1…î[P­lì]PÙ?~&ÏœübؽÆÖŽ ½ãP¹n V®ß>õÝÄ«/&˲0¿ó§þ¼rò -Xý 7ƒú{4èšX‚ú¤ƒP8òŠÊª°ƒ}ƒX}äàÅ:8¥ú÷ˆì ^¼ÐÙÚX[YV˜›êG…÷ñpu°¶ Ò&ÔW“˜ú3AýÏúèµ+V¯õñkµu àµõE¿öâµ"ÿq‚ê¿äUÿÇÜŸ ÕïAêW³Jòô”øèðS'yq²£™éëhíݽkÇVu¬¾â"9Á~4C¦¾4Fbê·ê·µ¶4«¯­®(+.ÈËÎHMŒ‹Ž8|ÒÏU}{[Œ>ÅØ1³oëàäêîåëp*,*6!…Î`•á˳«·ÔgW.îòqÔýžÕw­>y·ÊÔ# þ'Ÿþ…×A²ýnÇíW—·ýÆ’í·–l¿ßó´ß'‚Á§þK2;Oÿ‚úã7®]ìëõë*ËŠò²Ò’â8ê[šèjkìùæëí›Õ6 õ—(ȳ՟‰²óç?¨þ'Ÿ~JüãæŠÿÇ‘—M’¨ËæÁd— ¯ú¯xÔÆQ©?Ôßs¾­©¾šUœÏÈH>ËVß–jj¤§£‰Ôß²QEù˕˗*Êcõçp6E¶(Ršé«ŸÈV¿†T¿WýÖfP¿¦ŠUZ”Ÿ›•‘’{&<$ðÄ1o\õ­iú†0†˜}Kš5*ûžÞ~'ƒC#câ“Ó³ó -K+jšÛ»zú‡8•Käò}hê¯]¥´Œ­þ›÷5ÙHrD·ß¿!õ*,Fê¯WÛ´ Ô߯}È€bamïâîíx:ÔÏÌ-,Å}ãÂő﯎ݺs—¼çbÔÿŸõÂǰúHýK¤úU ~v:R?ø„¯çaGKCÝ{¾Ý¹}óÆ ëBRýϦ¯>û²™ÿw9yE¬¾ÊÆ-H}Íz†¦T®úÉÙÌâòªzP¿G¼ú¯Äª/ôØäc‡úõË‹™Ù þ™0ò±TSC½š{á± >~,GýY2õ¥;ÓPßK„úÍHýv„~KscC]M%«´™“™žv*Àß×˪¾•¥¹)Ìÿ¸O15·„²ï|Øýè±A§#¢¡ƒdå” õ¹q”Šú¯ßBýýlõ¡¯-VàW_f韃D¢ÕWÝ´ ½M1·"Ô‰ˆIHÍÌ-€¾ÔïFêß¾{ïRÿ—__¼àž ú¯¦€°ª¼ˆ™Î¡%†_}¹óþ„Sª¯ êïØµ{¯¦Žž‘)ÕÖéZßðhPŸÁ,fUcõû‡F¯\¿9>q«ÿäéÏ<ê¿~õøÅµÁ/?vŠ_œþÅÉÔ—öHNý6õ«+ËK -óô´¤³1‘¡Á'ý|<ÝPÕ§Z˜QŒ}}=}`ߨÄÌʾ“«›—¯@H8ñÙ‚"ŽÝ}ƒ#—¯MR¹Þ·ú. >…T›Lýc„ÕG‰ž;oþœD«ãDkÔ76§¡ëÕ/«OÏ!úF{¨?zuì&¨ÿ«ÏP¼ú¯ùÔ‚Õ¿?1~óú•KCýœúËàÖ_'[²þîÞ¹cÚõ—g}?æ__Péò•ÿg¿>œ¢¼Ó8€On&—\,ÄX"£#Q£â€5¢bÔ»l_¶P–Þ‘"EŠ‚" ¢H—ŽtDPšbD,oÌxcÃxwIO“›Ë™Læžßï}÷ÝÂ.,BVf²ÏðÎüf¾Ïçý>ËWš˜cõm@}±Lýc9%• >zlïÀ-¤þÃaêÿ¢‰ú?"õÑ¢ =Bêßì§›"¬~|LDH€·›³Ë´³Þai±a©±,ŠÒa£S_{3õs K*ª¤êwâ²ß ê·Ÿoki>]_sª¼¸07+3=%1>6*<$ÈÏÛª¾Ðó™0à>b—}ÿ Ðˆ½ðÙÔ ølieM¨ßÕs­ð6ª\“Uý`B}†­ÕvK‹õ«M•Õ×…ùmŒjõ‰D D¯õÂ6t6_,! „äÕ6êká0õ!Õÿ‘Rÿ!¨ÿ5Rÿ"¨ßXS êKO>ê‹ù,:¨¿©¿ÔÿTúzõÉÇš(=ýâT?ÿâÆ ¾Ò¢ ‹2ØÔo9S_U^”—•q8qt8RßIÀeØ©Y]=ÒîL úÝýŽöó­-MHý²â‚œ¬£iÉ÷ÇDî ôõr—8‰|.‡Åd0ìí &‹Ãå  ì»{ù†„ïK8t8ãx|¶¦¡éÜ…®ž«ý7°úÇH+ÄñçÉ¡~t¸JõÉ -ƒÕÿà}Ýáªõ¡Ô–h ¡¬þîR][Û/^Zýך«ÿý¿ž=}‚Õ¿5ÐwåbG[scmeIa¥¾§DÌgÓm°úæ&+—/ýìSƒùXý§O›ú*+÷‹Óè°‘mÙ+U[6ºúŠ‹r¦®ªì¤T}´(N²EY¥Rýwu‹¢­™õ/`õ»±úηžmj¬«®,+ÊÏ9ž‘št`_tdØîO7Tõ9l&˜O§ƒûL6‡ç rtqóô ÞŸ˜rv¯¸¢º© Ô¿¥¬þðòVÔW3Qaàp]!¸R}í]³.ÍZ›w( ©ú;uºVžÁBÃ%ËŒLÌõi,žÔ ŒMHJËÌ.@}Ôï¾Ü{ýæ»ßÜðx«ÿâå+9õQýŸÿK¨Â£¨þÙÓµ•¥ >q(îöõ@ýÛ6o\g¾jœê+6©[_/Jý“¥§êNŸ=ßyéjŸÂ–½ Õÿµe¿¤þOÒE·¢E¹u£-ÊY¹zoEõÈcokµmËÆu >¼uÑ'ó õ©·Ê«¯íÐü±f"Ô?צ ~Û9BýÒ¢üìcGJˆ‹Ž ò÷öpuCÕg³`>î3Xl._(vvõðñß³ÿ`Jzfv~qyuý™2ÐBF¹=ß‚ú² -C®Ö2õ A}ý9³f*¨¯ë0ZœÑÕ76[³aÓÖÖ4&OäìîC©Ÿ}®LPÿRÿžJõå%¤ÔQ¯AÂ+—:‘ú§J ) ýä w Ý5_nþb¹‰ê»f´?œn&jÆ«~mV¿]ª~R¿ùLCmUEÉɼ™é)‰ñ±Q{B}½Ü\…\6“AómmÁ}:ƒÉæ:ˆ%î^~A!áÑûÐwOà<ž>ÛÖqñJßÀdT¿«ê; ¹LP+¨o¦ >•æ?ëÔ×ê(©‘ž"•ÔG‚úHBk;Wèä&S?ú\™H}$á½û”„/UK¨±úª*¨ï$à0l­¶o±Xêḩ?gRªFw¢æêÃ[Ô[±úè­çÈ·ÞUñÖ×cPÿ;Pÿ1Vÿæ@ïå‹­Í5•%2õ=\Ä|}×W þZPöDª¾¬üTÝLÜL°úíçÛZ°úå%…¹”úÁ>žnÎbŸÃbØÓÀ|pŸfÏ`qùBG7/ßÀð½ðÝÔ£Yyp{ÖN:õÉÅ­¯*õ¦Âêû¸; yLÚ.¤þZ3#Yš©Í%ã¬c_[£¨þ›ôßÎKWûoý÷ɈýW½ú/‰ð Axîáðôtá𕫇¢E«í– ¾)¡þB}½‰P_ú‡Û`aIÞ5r¸ü¢1Þ5Êê¿&ÕE©ÿÔ¿ƒÔïnomn¨©()ÈÎLKJˆ õE<PŸØi;Ò›>U§¾–gBÕïÂê·¶4Ÿ®¯9U^\˜›u4-ùàþ˜È°Ýþ>® >Ô§Óúˆ}(û,O vvõô Þ—p(5#+÷dé©ÚF¬~ïÀM¤þƒÇC“Aýž® ç°úù'°úfw¹4“—«´¯ÁæNùàýa«« ôï=ª$œNH8Ô_º"½"m‘8ºÊÔÏ…¾Qwz\êS¾xþÃwHý÷ïÝ…ð\£Â#«  ¾Ô·FꯙõñNé®1BêoÚŠÔç Ý}dê—W7êßÄê“K¦‰ú¿*¨ÿ«?ô=õÎÍëXý¦†êŠâ|J}hGxOˆvd,UÎ,úocƧ~9R¿©ßìw)©_ ¯¾·‡ÄIäÀe3QÕ·ÙcƒÊ>“Ís9¹zø õcàö<ž[XZYÛØÜÚÞ}Ô¿£Rýׯþ°ºöoª®É-nS}uy1¨/×aàrµAê¯3_…Ô_Dª/gižuìke†«"ýÑÌÙs©H›+FzÏÞ}SŽÇ}®ÌÎKWúnÜBê?|òTªþO<¥¾ñÛðð(RHªgð:ie@êáÈeÚYﰴذÆÔ©¿pÁ¼q¨ÿ©þ P_Ô7\²ÌÈØŒPŸÆä‰@ýÀÐÈØ„¤´LP¿ÔÇK¦^ý_Õª?ì©Rõ¥Om ö$õT}!I³Fê¯!Õ'ž:ƒ(GïéÔ×â¼™ú I©êÔ¿ê7!õËŠ rŽg¤&Øäçí.q:pqÕô­­ûPöÙ\P_âáíß—ª_Cª}2¨¯”fªÃD…ùzHÄ|6Ýfç¶-×­^Eö5gTb¦êyÖ•}mjõ‰H H¯$Õ·±g;ˆ%2õspßÀWfßÀ-te‚úÏ@}5Wæ¨êË -ð5(À#RhjlôùbC9õ§È¢£±úè©S§ë͘9ëcýy¤úk‘ú»h,žÈE¦~vAqEMƒbµzJ.Ù+K6¢úÏGÿÁ¹‘?¸­ª~p=U77cT_òÆê{¹»8 -ùPU}kTöé —/t”¸#õ#câ£Ý+‘W_m Ñ‚úŠi&.×šŠ’‚ìÌôäq ¾Ÿ§ÄÑcokµÍÒbýjg´¹úÏž9ãÃéDaÓ•}-%á°Hë#õ—,_ib¾ö‹Í_~eCgóÅß t¾&§CɃ+SI}ž¡^}”µê÷á‘UB}Ñð¬/-ÀÑ «S6¥¾‰~*¨Ï¹üŸýúðŠòÌÂ~ÎnÌnÖ¬klkDQlØDÅ^bf€aè)*1¨A b,A,X" €)"VŒÔDcGQ1¶¨G»f÷Þ÷ý0ƒÀ#çìwÿƒ÷œçþÞç2O%êïØÉ.YÙòÔ꟪Ný—¨>mG7¯_½\UqÕßW›•ž’°e§¾›£µÔt:Y¦ukÒY#Žæ¦eÔÏËÝ•‘–¨ÿ]ØÂ ¹~Þ®Žö -¹•LŠè›š"ûR™•Ô÷ðñ›ûõ‚ÅáËVF1êïùøê³¦ÖâîÍÛ•±c[Ü&P?",4x®Ÿ—«£‚Æ™Ý\=Ýî >ÓbIJ¯ýiB= p(K¡¥€BP(Ìø…ï©þs¢~Mõ­¿ü|ñB T†íÛxõg{8+mdf3AýÑ# ˆúºÐÈÈD§êÿ©±Ou<5Žy*|p¥Ì×TõíˆQÿÚTÿôñ’ƒû -r²Ò’Aý5+—-Y8ž¨¯°¶ÕoÓêæådƒú‰¨þªåDý9~Þî.ŽJ[P«¾) –}™•\¡ttõðFõõ1ìñyæc¨¯¢®1‹{ìȽy»3R“â6¯ZFãÌœ®ds‡Òï«×³;É3¿ºbÙ×ê4®OœŠX ê-X¼t9)ÀÛÙäúB6yÏU&¯¾úÿbÂó’Sÿ6¨‰U?Šké¡8Ô·Gõ¿š4N¨~g¨¯ê¬ñ­sÖÕ9k=~BÕó¶Éêߥê—Sõós2Ó’ãyõ±YY˜N›<Þd¤á°Áú}{3[Ò¾*õµšÿ«Ñ¬ú% þbNý­›Ö¯aÕ÷åÕ§è#û¨¾­ÒÑ…QɲQëõ ©ú­A}º¸gOúEù»3S“ã7Ó8ÃéêãÓÍ516õ±ÅÐÕÅ@·ýì¯\¢Å²¯Q£~‡N]¾ÔéAÔ>bÔØ‰Sg˜ÉäJgwNýØÄí;³÷7|eÒè5BýÇœú•e¥§HeàEF}{Kª¾±ÁPr'ªQ_…*Ôg¶—¨¯ê›ŒŸ4Mê;¸àö††E%KJÍØOÕ/¯¼tåªÿ¨ÿûËWøÒÆ©ÿŠU¿†ª_Y~Õ/õqMH9 - ž ê;€úTŸl éFðRT¿­¨¾–§åÔOåÔÿ6t~à_/w¥­µ¥«¾D"!êK-­Q}woß9A!Œúظ²[úìâ–Ÿ=ÅÄ™œ®Ñ«"Ã…ø`_³4'y¦·+SØèñ*–}íOõ!Óm?ÿ;Q¿+ªßÔ7"êÏ’Ê•N ~`È¢ðÈUÑ1 ~zvnañ¡£'øäÝo@ý?T©ÿö U,|Ps—QŸV8w$ñêûzºØÛZš³êêßWO·»†Õ74&ÛkneK·—¨¿~s|Rj&ª_rÕ¿|åÚMFýgõÔ¯~õŸRõoƒúdMØr”Ç©ïëéê`ke.TŸy©Pý?‹êkg4£þANýÃõÕ_Šêøz¹9;ØÙðêK@}sTßÎÁÅÝ‹ª±âN}h\ÜîÝ©¿{-¤þ¿9õI]Cõaqù³¯ '+=%!6&zõò¥‹@_ót<[˜NŸ2aÌ(£áCö'5WØ]’he_Œu NmõI¦AýöŒú½û ŒêO˜‚êÛ9¹yûsê'¤¤gå0êW1É{øëoOš ~] oÔ²0#Õç,„ì`c˜¨¶°Ñê«Þ^V}²½^~¼úÉ©™9ùEKŽŸ>[^…êß¹{ŸUÿuãÔÿÀÿ–Êýo䥸¿IàkæKÅÑàhXý#Dý¡ú‘TýÙ¼ú}dÕ·±sp¦ê/$êodÕ4.m©ÿ¾®ú4ÎxºV•Ÿ;}âè¡â‚Üìôí‰[7®eóìåꨰ–Κ1uâØÑ#H {÷ì¡C­¾ì‹¹n¹©¥~›ZêwëÑÕf4rÌ„)ÓM¥ÖvŽDý…K–­\³aKBJ¨¿“w®¢êòÕë7Q}´ð…j ¹ðüQOýg|f*Ó€ãnÀÝš¡¾à¥¸½:vîZ{{Ma{AýyóÉKQý4Pª®Ùêók娚Q¿Õß›·+cÇ6þª™íábociÆ^5û÷ÑÓÕiÒU#ŽGsê—ÔVgj2QeõeDý™3‰ú2¢¾U?,â{T?±Õ¨‹{ÿî›×®þTUqþ ª_¸g×N’gÜÜ…óçù{»9)å2 ôx“‘†Ãè×§ö˜ÚeÿS®ì‹ì·ô¨T¿U¿;Uߪoa­ptã,õ“Ó²r -¨…±Pú¯YõIxheÀC1?'35™WßÏËÕAae!T¿g]õÛ4G}ö¥új_ßÔ—6¨þ¯œúÊJO;²ŸªÏv#TßÙÞFFÕa0Ôï¥N}q9Z~´§¾§›³½ÂÆJfaêÏ„õÍ,dVTýÙõÓ³s?šú\œÙŽwçÖõ«?]¼p¾ôä‡!Ïx»Âæ®Y¹lÉ¢À4¯Ó&O3Êh8$šìn×.²ÿ¦ì‹ìkc¶°/±P3 ¸éê§%3ÙÆà‡w¢•…)ª…Q¿k玄êóª|h㮢¾·à㮚Ój®šwMUÿ¨ÕÇ-!ÝÔ_½|éâA ¾ÕŸ:q¬PýN¢úe4¡þ¾ýŒú% þÁÚêGõƒç¡úNªÕWØSõçõ×6Y}M±/ˆ3äY ~õ­ë4Ïx»‘ÍMؽ* 5Æ -›µ…é L4\¯ƒôëÝ«¶ì“P‹ìkoT«/ÈôPCc>Ó^éаˆQ¨~jæîü"Tÿly%U¿†UÿUsÔ¿GÕ¯ êädav6pê»9bt¦O™0ÏDý¾½I_è¤yõ¥Öv ¾`È¢ðÈUDýtPŸì¨ÏïØáŽ5¤þ;Fýß_<#êã–ðݨpOöÎ퉼ú>îÎJ¹lîȨÉú°"]pC ÑZ$ª¯µÑŠúßÏó§êˉúª¾„¨/WØ;¹y¶*õ™Å}ñì “g¼]+ËΞ"›››•ž’ †ã54x.¬®“œ\¯ÐØHÙ[§ìö?Ù×ÎpÖËô—Ýu…ê›[Ù:¸xòêÇ%õ9v -Ô¿êßV§þ{5ê¿ãÃèý*QÿÄÑC˜´úÞõ† †¾Ð³UrS_ýzù°úÃF¡ú³@}'Nýè˜XPÿÃ;Ö,õÏ€úÅ ~úöÄØ˜hN}'¡úú¡úìCÛ~Ƭ‡¨¾–¦%ÕOˆÝ¸Õ_Œêûxº²êÓªe_¥ú±­C}.Ï5Õ·o@_«,‡¾vôP1©1Ûâ6­‹Z«è=ÆÞÆÒ\» ‘†²¯_»ìÓ –.0 ¶È~ËŽ ÓŸ¨VßÀØdܤ¯$æ–¶ö¨þ×éïX· ÔÏØGÕ/«¼ôó/7õŸ>ñòÕë7oß6RýWLeõCPÿ ¨_L¨wbø¢@PßÎZÚ"êëôèŨ?vâÔ³¤r;'w^ýú;V}ïAýk²úçÉC s³±ŰõíäRª¾Ñp|¨@ý¿‰êky´®¾Ôœ¨?cQß\*P?4ì»Ö¥þsÈó£5wïÜõÉæÂñº7oWFjRüf(l‘áÐcæÌötuPXc¤'3166Ë~O(ûÿìÜRÝÔgrݦnÙÓÝ"£BýÏÛýƒU¿Oÿ þhP¦¹¥½‹Çì9¼ú;2våíEõK9õZT[Vß›Vg ©Eê?~ÚõáSÓÂû©É§>5{„ô©aG¨#jõíÿ@ê·¿mÅê£ä>þåçªò{ÅEWóQ9}üHB\LÔ¶ð° •Kû¸;;ØXBx©²¯(/'óƒÔxñqcF"Ùʲ/ªáŰ õCóùvNn >!¨Ÿ’‘ýµêîZýªûwïܼ~éBö¹Bý[à›¸rÉ"Ô(õ5ù¨ÿ­€êõGƒúR¼ê‹.a,zš^ÔïyÑ®Ôÿ©C‚ªQ-¨_r»2’•~«¿3"<,8Š‘§‹£ ¡>‡P_šUÀFtê/öõrsüê“ÁýðoB}"¹Ïž‚úÕ袡°eg¤&H<' »­_»j™¿¯§+”}sºì«*Mš(‹ÎZ|,Ü5“ýoXöû:ªÿÝ÷]bÈ[C^``ØHbØÝéõ þÓÇÄ?ñæõˤúöîꬾž¶¦œMÔŠÕI.Êïy[õÕÏ[gõÿCªOV£¦ç Oaõq3õO&rÕ‡„¸@/2c„ÕWQÄêC)9bXgõâhþL#Jõ= õ­@}3Pߪ'õË*kD®>ôGªÆàä¾lzF\4.l—/æd¦A‘9¼ï®È­›BƒW,òÆeß•ý)ˆ¯2œ5*ûãÆŽöA}‚ý!,û"~êK"õ•hõ­@}/®úûáôRÎe_¸ÞõÑé½hHýÿRŶ·Äí õ¡Ô¿˜‘ßD†úÞ þ|Z}e¦úÃz§þ_zúÔÎ66ŸoïäŽÔ_ ጉCê§fä€ú·„¬~¡~nV¨pßnZ}PßÂdŽäCK]EQÔ:«þÌàPßw°¨Ï~µú÷úy ~2V?jÛ¦Ðu«—úÎÖX}}Îd®ú£™êsS1GógšþW?âëÔ??8ÔÇÝü¢±¢[NºðÚ¥ Ù©É'àÿ½cëÆÐuË©²o6o6”}]mMu%…‰²ð‰ÅìbÙéð¨?„ú þô™sM­l]½0Ô?EŽû•¤ú=žžêçd¤bõc"·nüÛÚU”úƳ )õe¡*Àÿñïð›n4ìV}yP²Ž>VßÚÞÙÝÇ¡þ‰¤ÔÌœ<¤þ=ZýJ}´gïÔG©ÿ²éR"R\Tp%/73 ÂU߯“ú²ÒR¼êw·';ÂWßžPÉŠÀWŸ>h*¹è¢©è¢"Syÿ.dn:+ýÌ©cGÄÅDm ßB—}8ë¹3gLÓçhA€ ·M”@ßX’ýïXöE2ݨ?AF©¯E¨o ê{2Ô?ô㩳éäé‘êó9=âöºVÿãº1PêWão"¥~BW}w'ûNê‹“ê÷¨a7êKËÊ+*«“ê[ê/c¨ŸÌTÿÑJýÖ·í}UÿÖ ¤>ô¢£ \õ}<œí­-`O}VýžQß|Щÿ¿Žê¿×¶V¢°Á÷µ¾îáƒ*”Ý‚«ùç:—’U&~OôŽ-ÑvDÙ·µ23žc4}ªžÎd UåIòr2a hn,û"Þ¨?«oãè‚Ô  ع'žT?Ÿ÷ôZ~}ýFõ )õ›Hõ±†s2S“@C®ú>´ú ¡°ÕWAêÎ6Aê{ø ð†nÚµ{R?-3—P¿¢ºöÑ“†.ÕïŒ~õ#Õ‡bDí™—C¨Oí 껃úÔžêÊ´ú½Û“á«~Gõé‹~ÿ®ˆnË«æçõ(»e%· ¯CeËLƒ²øÀ^ªì/ó‡íœì­-MçÍ24˜¢« }F‰e€†¯ú# õ¥ õ9 õý—3Ô?“žu>ÿjáí8½Úºú¤>Ò°­ýw>êéR}††\õ{ÐÔLC>ê“á¥ÔçèãðZ;8á%Ô?˜Hª_PÄGý÷‚¨ß»×ͯãë&/ÐëÆŽpg¨ïì6ˆÔÿÌTN¾¯Pö›_ &S[Sy¿ô5Yö’e?¯çãáâh7ßÜdîÌÓô9Zšj*J -e¥'Àq³ì‹x:«? «/ŽÕWTÁêÃQ[ÂQ{ú2ÔO7ºè¦!»¸ìCx‰²_\T@•ýcÜW/Xäãáâh7ßÂdî,Cƒ)ºÚ“ÕU•'ÉËÉü0ARB8˾ˆ¦ë£–’–eªoÔGGM©"9-37ix¯¢iø¬ée_Ô¿DP¿¦¢ Ô¿š—›•–|’¡¾Ïê‚ú–^O®úñ‡@ýô¬óBU¿±ƒú§ê/!Ô7õ§êicõeHõG`õ¿eÕå°ê3Ù§Õ§nº½­Ž‡·±®ºº¢ìîmnÙO<»+r[xXÈšUËüz¹;;ØZ™›Ì™9cš¾®¶¦ºŠÍþXûCYöûwGýMêû0Ô?J¨寭âþP?Ô?ÃU?p9¨ïâ`ƒÕŸÂÑBêËIOè«úcÆŠKBxU4 ¼ÓgÎ5µ´qtñ\ÈPÿGRýÂÛ%±ÚºúˆÞ³Üó“`ê7cõTÝÇê_@êc¨¿ÈÛm¯ú’ ¾¨ÿ=«¾¨‡U¿ƒúŸ)õñQ·ÃQãð6ÃÒ e¿”Yö$ìÛ½}ËÆÐà •Ký`C'{K3cÌ>‡Ë¾f_Œe_DÃGýá#G1Õ×Ñ70œmlamïìÎU?.ÔOÍÌéBýwBS?~ÏΈð°à¾ªO…¯Iì9©?N«¯¤ª¡¥ËP?€¡þ)¬>oÄZ~}ý†±¾¨Ô?¼Ÿ«¾­>´!U%VýVý.Ô§Ê>„ÿ`!½TÙ¿e?•}´âþ½1QôŠ>® ì­-MçÍ6š>U£¥©†Ø—eÙñt¯þ$e5P¨oN©¿Ž:2†WýòꟻSŸq{<êâU¿¶¦’Pÿ|V:¨ˆ¡¾'¨o)LõGêËð¨oëè -ê¯bª/HÄ`Q^õÉ5¡µRê××=õ!×/QêÇFoß¼!$ˆPß–R_ƒU€‡UŸ©>]nvA}tÕÊ~áµËs²ÒÏž>~ô`|ì®È­›ÂBÖ¬^°ÈÛÃÅÑÎÚ‚d_GKCMEQa"büÿÙ¯§(®<à•T%ºkUÆ5«â•J6&jÁ[Áû(ˆ‚ - -*\5„ ¢A]e…¢äd¸SA@†ÎáAåÔè‚••Ú÷º{fºgz.œk—÷ý¾U¿÷éoþľº"E}]õÍú‡„ꇑÕçÖ7êó^¾RPýW|õ!‡Pý‡¹„ú·IêÛìÙif¼iÝ*Ã%@ýYàX¤ªÿ‘xMÅÔ?érÖý²'T?B1õÉ/DŠúìÒ¢‡¹÷Ó“ãïFÔÿÁÎÖʪjêO›2 ©¯± õ)ì“Æþ ÿ–4ö눱ŸŸ™–̈ - ôóÝÝ\O8:9hcµk‡™É–kW-[Œ³ÿ5d2b_‘ªþt þl=Lý-Pýý$õƒÂ¢bR†©¾‡ðn„êC1õCHêÛ‘Ôןƒq8yÒø[¨tõ­„êûÜ"©_Ê®”ó‰)¦~Y}Lýu’Õÿ©¯Æ õiԇ쿣ûà'–Uf[351þndXpÀM/KXIGûÃöYYî05Ù¼c¾Þwôìÿ ±¯Ê(¤¾5I}?¡úÅ„úmÃTŸ'¦~zRà¤þR£ÕP}K¨¾Ó©ŸÝ.\ÁÔŒe¤0³ò HêÃۃ꿞úüŒs(:‚U ¾î”é„úK W¯ÇÕ?dOQŸ‘œž•WPTÊQúR~iú RŸÊþ{±±ÿš<ö›êk«+8¬’Gr³˜©‰ñšîçNÿtÒÉá¨íÞÝÛ·}¿ g>`&Áþ$ľš"Y}È!T®ÁB þzB}{1õóhÕÇnO!õ;Ÿ¶‘ÕOŽ¿(ªþf•ªo„©o ÕÇkbêGêCõëêK¨9$:‹¤ªŸÔªÿ÷£@ýfÆõ'ã5uúRŸª>yìÒŒýÆ:nU9»´¸0?ç~zJ½˜ˆ°à€›>^ÿtwsu>áäpä ­õîÛ·BöW ö5qÇ%ªˆ¤~¨zÕ·µ²ØŽ«¿P®ÒÕŸÍW+Y}ì‰Aõ™„ú ¦,õ‡ˆç!§ú÷¨ê$©?oά_aêÕï)|š9š¤>­úýwä±0`¿¥©¡¶¦’Sö¸¨ /;3-™äÃÛÓã(ê|ÂÑþÈAë];ÍûëV¯XNÇþX™ìkú*þ×#C’úCk[QõÉ*I}N)¸˜,LýP’ú‡dªÿ釩o@«¾ŸâêÉ©þ£‡¹™˜ú¿‘Õ߇«¿r9T振¾êÿuEWIê+óã&ŸúÕPý9ôê›oZ»rùb¤¾©O£>öz…cÿw|ì¿èc¿µ¹¡®¦ªœ]Z\ø ç>3%oêç{í*`ÿŒ ¬J°o"Âþ—_LÃØØWu†=‚o©Bý¦z¾úL ~$¦þ• n?Ÿr‚ê[bê Wý)5Ç€šcÅÕßB«~ -V“Å©¾úp§^Æ“æ†ÚêŠ2’údõwõ7"õµ$H}:öÅÆþK^_O76ö[šjÁ#.{\TŸ“™ž’p/&2,T½võò…sg\N]ì³²¤²?{æ7ÃÙŸ ™ýûʉLõgÍÕÇÕ7!«ïé£"õ¹"ê_÷"«¿•¯þl%¨¯C¯¾¹¥õ~²úaÊR ¢°‡Ú)ê'Þ‹ê߸†Ô×Î õéÔ§û¼^xÜ€ýæÆznu‡Uòèa^vfZrB\LDXpì -Ø? Ø?ËöMùì/²?±¯†(¢¾Tßñ¤ËY÷ËõÓU«¾­úªVÿ°¼ê *Iý]:Ú™ªþüyß!õ5¤>-ûü±ÿŽ4öÁ²m­Íuܪ -viqáƒÜ¬Œ´$F\tDhPÀMPÖýÜéŸN?vo+Âþ ľš"EýIS¦ê/1\ÅWÿ’ú$õáí} úm­P¢îTõ(ê'¤0³ó iÔ‡-¥©O¼ yÕÿÇ1¤¾–©O«¾èØýªŸ××qû“–¦†ºšªò2œ}fj#6:<4Èÿ¦`ß °ïD°oÙ_»Ê±¯æÈ«þ:\};ªúñÊW¿ŠÃÂÔOaÄF†ITÿÛ¯¿”¨>‡ -«¼Ý‹˜úQâê¿èéSúG€ú;L¿'«?uòDªú’[¢(=H}zö)cÿí0öûy½à¼qöëkk*9e‹ -òsî3Sãc£ÂCýoøxy\rwsÅØ·Û¿gξÁ¼9ˆ}uE1õm4©¾5P‹¸úcúc>\}=ƒE@ý Tõ嫟ñê¿“¡þ²úúZ¤>½úÄØOxû/y}½Ýྟ¶µ67Ös«+9¬Œýô”Äø»Qw ûÞ€ý_Ü\O:9Øß Ù_†ØWgd«?G½ú!|õ‹JÙÃUp@šúa"ê›Ó«¯£¨ú£Fþ3¦>x»$õ—­êï"©ïKR¿„UŽÔiAêK`Ÿ4ö öûy}=àãì×q«+ج’Gó²3ûXß@¿ÞžTö-ÌMûjEýO¤ªoF«>¼=ªúÂÛ“©>ôP^õ÷+Q}øviÔ_ÔßFUß_\ýöŽ.¥©Ÿš'¢þ^¤¾6©/A}ûøØÆ~?¯·çxÇíOZšê¸UìR‚ýä„{1û¾ÞžW.ýrÖÕùÄ0؇ê#ö•¹ÕߤRõ‡2Ô?<²Ô_±lñ|=²ú°%R_íAêKbS»îAbìƒìwì×ÖT•³K‹ äeg¤%'ÄÅD†ývÛÏ÷™}[¹Ù=šûˆ}%D!õ÷¨IýÂülfJE}M©¬õËËJ¤©¿fŲEH}-R_’ú‚±ΛÏ>¯¯·œ8d¿±¾¶¦²¼ ²Ÿ›…³|ûdÿ"è Ù?"“ýÏûªˆ6«…©ïqñœëÇ5©~\B*ú¯‘úÿÿAêKcÿŒ}8öqöûÁCî~Þõìi[k3Áþc>û ûW öùìo£°ÿ-ξ®,ö?Bì74W­<õÅoOqõÕRõûúo•£~0R_kƒÔ—¦>ìÃr?¯°ßÉg¿º’Sö¸¨c?‰±²^Èþnľº£=êwu´cê—³J€ú„ú¾"êoê/2ÐÃÔŸª;QÝê×64#õGRúr±?0€}ŒýÏ;;pö¹ûù¹YÌTŒýÐàû?г¿±¯ŽÐª¯£5êû“Õße¾M-êïžúCÊW´Dêk4H} êñÕe¿g¿²_Ç­®à° û9÷!û±ö/Kf_±¯êH¸êÏÆŸ®Zšú·Gˆúwú#8H}Iì¿aÿßBö»_töŸ´65àì—г†ÄþvIì޳ÔGì+-Ò¯©ÔÙAêKRŸÊþ ¼qœ}ž€ýÈ~U›Uòˆ`?>6:\Œýƒ¶Ö2Ù×Aì+12¯©ÔÁAêËÁ>6öEÙ&ý_ìÛ‹²¿°?‹ÏþDÀþ8ľrƒÔGê£HR_2û„ú|öÀ•¿ì÷ƒçÜý¼ëÙSœýÿ²_Q\yÀ/w"Š'‘ÞÁ‚€tTš¢((@AìXƒD¬X° èY¢16+¢b!Æ[ÄŠ&ÄcŒ†ÓØrzšÓKNïÞ{3»ûfwvvv-ñÞ÷?ø¾ùý>ûÛoÙØ_'aÿû‘„}͇¨¯LýrªïîêLÔ×iˆúŠÕ—û öŸ>agÿ4bÿb3Å~‘,ûÑQ‘¡ìì¿KØ,D}yõ3ÕS_–}¢þ[¢¾ªìƒc_žýK±?]Â~2 û û‡¨¯’úW®/¼ú¥D}½ Q_%öÿ%aÿû;²?ˆÉ¾sgØ×õ¬üq¢`ªMÍ,¬ÁTwîê¦#õk)õ×ãê§&Æ!õý}t¯þ/@ýçDý·=D}ØÉÂþmÈþUEì/ÃØÏbaßEž}#Œý¿öÕ -ËTÿªon©LýM«·å6R¿©ñ¦þõ£0õ쬵¢þžý‡ØÔú&ê_¾pžKý¾á½‚‰úz¢>·úRöѱ¯”ý€ýC¬ì–e_äëEØ×LXÕ—RßAÇêWBõWèXýͺQ?"$8ÀW¿ƒq{¢¾öCÔWÂþ+…ì?~ôðþÏw)ö¯s±?²?QÌ~Å~O6ö;HØ7$ì¿AôWýjZýâ¢Âù“ßRõ¨’QQ_ŸBÔçÃþ¸Ù¿%ÃþQ)û«eØOSȾ•¥¹öÿLØW1â©F -­þï¼ÕôàgLý3'ŽËªŸ+¨ú†mXÕêÇ1Õ_/¯þí–»Dýÿ—õù²ÿ;û7o`ì~ŒfëæO$ìçs³oÏd¿­ûïöùG·ê¿ä¯þ(Õ‡5‘ú &¦~ϰ>PýTLý5˜úç›ÔRÿ7%êoÇÕAÔ׫õÕaÿWvö¿쟓°¿[Âþb&û böƒûn\ì·’e_×󇈎ÕÏ…ê—áêg+T¿½êûøõ£˜ê¯«_«%õÇõ“ãcqõìm™êõµ¢¾ì·ð`Å~NV†*ìöÕ oõc€ú:V›ú€úF‚«?9FaQ1R¿R^}X“ú°¦ -êçM$êëYˆú<ÔW…ý œì“gßG¾­û­ ûj…¡~kNõ‡ðTr¨¾ú_75 õkäÔÏêLjÕwëÚY¡ú,ß^±úÖv,êç2Ô¯>T{üÄõ}ñR¶¦šê—,ž?»€©~w?o¢¾®CÔ×û+XÙïØì»3Ø7!ì¿i”«ï# -dW¿ ©8Ôú»+Ë6éHýQ|Õ—¯©Xý§`ÜûûO õVíê¯[EÔ×ÏõÕbÿ?ö«vïØØ_ Ù_ÙŸB³ŸØЯOxˆûûm0ö‰ú*D5õ³YÕ?×Ð$„ú?ÝþA«ê·gWHjf6®~™0ê?êÚ@ýn\k¾|S#®~:P?š¨¯'!êkžýMìì³ï‡ØïÒÉ °o Ø7•gŸû*…¯úQ”ú£´¬þǬê‹|<ÔP_AM¦ú1¬ê×ÔÒ5ù¨ÿ_ê Õ?]Ç®~Blt¿ˆD}=QŸ'û¯a¿²?*gXFjRÂ`Šý}Ow·®€}œývhûj„—úˆCJý\†úÕ«8”Qõr\ýÁšQÔÄÕÏÀÕßTV¹›¡¾’š¯%‹ LýúÓuŸ!õ·âêgQê÷…ê{¸:wê[[˜™õu¢¾†ØÿRŽý¥4ûhöãÅì"ö]Åì[RìÃc_Ì~+öu=5ú¥bêK9¤ÔWC9õS¤~=Pÿ(P¿©¿dÁœéS'ê§@õ‡´úN¶Bª/bU_¸š -ÔßÇT$¦¾ÈÕ´§jÓ5 8j’¢¾†ÙGO!a¿pVÁTÈ>z œ}oÏnûv}3SpìöÛ"ö ¤ì“cŸOø«ÏäP@õiÅê_l€­ÙÇT$¥~? ©ÏúãV,ùq“ü¥¹®ò_Nõõ+¤êƒšYé) ƒêËÔ$êk3D}­±¿JÊþXô‰ˆýÞa€}Œ}Ä~)û­éÀŽ}²œáqûkçfQ+®~–2õ¹8ä§~(R?Öœ4uúœÔ_š -Zýz¨þ5‰ú\+¦ºúÒšD}} -Q_ì7S쟒²_ºi=dт™S'cì÷ïÛ;¬Wp ¿¯·d¿£#`ßÊÒÜÌDÌ~Vöu=7ún»¸tÃÕÏÄÔ_/§þ­Û-Á õ72ÕO ÔWƒCŽš¶N´ú=B{÷£Ô9Ž¡þ¾´b …S_35I„Q_ãì×ì¯ÚE³¿|é¢ù…3§AöGšž’C±ßbß¹sGG{[ö ©¥ Ù'ǾòðV ¬ú›Ë*÷T\}™#xµ0G0£¦§ú )Y¸ú[…U_£iH„Q_sìŸGìzDÂþGRöÇÓì¿'a_äëåáæB±omeanjW¢Z -rì«l¨iõÛMØÔOLÍŽ«_.Q¿±éM©¿ªDKê{‹ºCõ£eÕ߸µb½b´úö û*†M}c¤¾#Rß×?¨ßŸR4_õ_¼|3õõ·#õÏŸ]7ªŸœËPßžâÐXª>öÕåkòV?]ªþªu˜úüWŒ‡úM õgN?ZS½»S?wTvF*T¿OXOZýŽvD}…¨/,û÷°¿—fåòâ…àE¦åM‚ìgBöESìˆ|<Ýݺvéää`gØ7;A³oH­Íþ;„}%á¥~¯°H¨~Pü\ýý@ý“lêÃÑãRNÆ!˜‡{RõÏž®;vä`Cý±#0õý¼=\‘úðÓ·o§õó -fÏ_\Õß®’ú¯% ðJÜ“ªù Ì=­þ÷ׯõÏõkÅê¯(.*œ‘?™R?N¬¾'Q_Ç!êkŠý+ˆýz&û‹Ùÿ0oRýä!qƒ¢ûõ éàØw¥Ù·²473ìõ)öɱÏ?Lõ Û!õÁPãê‡õߣÕC½péß ú; úŸŸüSÿþÃÇŠÔgpˆ©ÿ ªÿð>TÿækÍPýS_Pê—âêKOŽî ÔwwuîÔ·²_žU}–šrêSêÛSêûQêÇ&$õÇNÄÕ¯:x„¹b÷žÝ\ºõu¢¾ ì?WÊ~õÞ]å[ û%Å çÁ7™”;zDVfZrBÜÀˆý@?oÏn®àr´·µ±²07…ËŽ}´äØçõáPóRÿ£O(õ?êÕx‰ú8‡”†´úO(õïüxó»«Í—/Pê¨Ú¹½tÃZLý÷úÔTÿOìËkjfÔwvEê‡DÐêÀÔ/Eê«;}¬Xóµ7¡ú 'X±g¬ê¿æV¿©ÿMS#RÿT3¦þðÌÔĸLõm€ú&@ývD}m‡¨¯ öïp°¿feÉ’…ófO’;:'+#-)aðÀ}{‡õ -ô÷õöèæâŒØ·¶´0·Í>9öU‰Rõ½|úƒ€úCqõ·”ïØËTÿNË=Nõ1y«¿r™&Õ—_Þh°¼éÃ0õ7Ðêqêìù —›¯~wóÇ;”úOhõÿ­ªú·dÔ/ÇÔM©ß¨äï‹Ôw¤Õ7Fêõµ¢¾FÙ¿ÜÔx¾þ dÿðÁê½;+ʶlR²¤°Ÿ_%gXFjRüà˜þˆýî"_/w7—.œÀ)dmi¶®…‘Q[¶c_׳£¿áPßÞ±Cý¤´¡9¸úÛ€ú‡ÙÔÿ§@êoCê/š7kÚ úI´ú~^SŸZ^‰ú+×õwVМúû÷ì@ê/]8wæ‡SÆõÓ ú‘á½0õaO4Þ¨g+Žž$†¨¯Aö¯‰Ù?Y÷Y-`bx•%EsgMÏŸ2z–ÄøØ˜¨ÈˆÐžA"Ow×®ûVàê@ûˆýVøjåPnõÁPõƒú(õÁPO›5o‘¼ú@CZý¼™ú—.|Õ?|`/Cý19PýA¸úŽö6Lõ¹4Tº¼^~¸úTÏe©ÿ?öëÄ«Æ}ø:w]ÇZ÷›y5B‰Ôn. %ó*KÉ‘H7Q’¢hNóœL!J“æÙ˜dvp]‹{eÝç÷{ß½÷oÕN;ݵîûüÏï}žÏû} O¬>ôÉV¿®º¼ôæ5¶úaÇ9ê;ÙY™1êÿ¯£þ`±ÿøÑý.ûÅ4û ±ÑgÂCáYüìóöÚ¹ÕÃm½“½¥™‘Áª:KiÎSSV”—•š=súÔÉÇ3Â>ÅþðáLص„¨O5¡þ=¤þZŽú !¨!=‡Rÿn]SoêäPˆúOŸ<¢Õ/-)¾„Õ?Gªï$.õ{è“VßÈ| ¨¿‰P?Ô/@ê ö)¢úÿæQÿ ­~¨)?;=9î\$Wý \õç©*ú³õ‡°õÅÌþ;Xšý‡ˆýF`¿‚Í~fZrBLtdxhpà?ß½Þ^;¶lrsq\kmij´z¥.°¿@CUIANF -‡ý‰ãÇÂþbÂ~«꟡Õ/.¢~¯~ãÓPP}ÐR?2ŒG}3£Õ áBÐP_4 ‡ O~õÿ‰ÕG}Þïhe«_êÇêCŸvÐ'[ý¹2ýì“)ñ£þ ±ßÍe¿¦º¢ ³ŸŸ“™šy*$8ððÁý{w{nß¼ÉÕÙÑn… K_oùR­…óÕU”æÊIÏÁìO7v´$öû]}µèøñ“î«/¢†8Pý£øn-Á›&L\7MÏ·dÑþn¢Ý4L‰·õû·n_¾˜Ÿ“쟊 9vÔŸ~÷ ël­Ì õW,Ó^¬9OMYQ^VjöÌéS'O?N ì3ê÷]‡ztCíê±ÍÓÛçà¬~¨_ˆÔ¯¼[ßõù3ðnno!Õ#Ôwõ­øÔŸ"6õçÈȃúšZ:+úv þ–°¼þÇ‘úÉéÙ”úÕu­÷{T_H£½«_RLß4gNqÕ_·v¹Ñj½eKÎScÔêbÔ;ûï1û/žwwQì7ûUˆýkÀ~vFJRÜù³a'‚ü÷Ù³kçVx'{K3#ƒUº:K-ÐPUR“é-ìÿ…a¿÷¢‡cH¨?vÜDÞ¡6€¡¶ç¨ê§däŠOýgõË‘úùÙiÉqÑ„úë‘ú,¬¾†ª"¨?S\êO!Õ×§Ôw'Ô#ÕoiGê?ƒ>ÿxÿ¡?êb«ßýä1R¿þnEYIñ傜Œ ñç õ]ÔŸ1u2¯úÃõX1ê‹™}û|ì·67ÖÕT•cö ó²ÓSãÎá§ 8t`Ÿ·×Ž-n.Žk­-LY«õ–/ÕZ8_]Eq®¬´Ð°?Œ û¢TOêGêÏ–’U€¡^¤½|¥±…µ½3¡þYBýšú¦6P¿«¿êùòùVÿͫϞvbõk±úE”ú'¹ê;žú3A}EU ¬>ËÌÊÎi=¡~t\rZv>R¿œV¿“«þ§Ï_¾|¯ú•HýBP?«ä ·ç6PßÚÜ«?_M™«þhRý¿r{(fæÿ©õ‡ý7\öÛ[›êîV•—–\¿z©0/+ýBblô™ðÐàñóÝ»ÛsûfwWgÛ5æÆ†ú+–i/Öœ§¦¬ /#%$ìÿÌ»Ìz¯ŸÕ1r¥þ´³¥å”Õ õÝõcR2s aôʸ£÷üÕ›·0zÙ£×—úx -Ô¿}ãjQ~VZR?øè!ßßví@êÛZ™²ôu—.&Ô?9|q|Ý‘ß[X£"«ïÈUÿd¥~ÑÕ·Ë«kÙê£ÃêãF¿KýJýÜŒP?<$ˆ£¾=¨o°rÙ’E ¾‚¬ÔlP"Ì6£þP£þ ²ÿ¬»«óу{û•˜ý¢‚Ü̴䄘èÈS!Çccifd°RW‡}%ûsÂþp&ì‹T¢«obaêÿºÝkÏ~¿€cHýÄ”>G¯ÿê7êÇrÕß¼‘R¨¿@C«?V¾8õ›ïKýŸ¸êC£X}h”PñR]}–©•-¨¿yÇ®ß|ÁŽúIiYRÿ?´ú(õ»?¸×†Õ¿uR?æ,W}7g{k P¹6V_N«¢ÑTŸëÁ-F}1²ÿö€`ÿ%—ý¦†Ú»•wnß,¾RT“™š>*"ìDP€ÿï>{víÜêáæâhgmaÂÒ×ë3ì3ê÷Y}«¯¢¾©oê;pÕ= ê³G¯ª¦¡ïуáëIýwXý®Î‡Xý*¬~^VjRl¡¾‹£­¥©!¯úl û­þÏXý‘´úÓ°ú* @ýU,SK[G—„ú±õ«j@ý‡]ߣþ¿úo^!õÞkkõïܺ~¥073%«à·×ö_A} J}uJýiŒúCVŒúâb‡}‚ý·ûm-MõµÕe·o^»|1?;#%)îõ:~¾{w{nßì¾aƒ­•™±Á*]%|a,„} ¾°Ï¨ß[ bÈQ0¤ÕGšXÚ8¸läªG/TŸÆ°'õ9“@«O`ÈV0õï€ú)õO‡rÕwਯ®¢êÿí{Ô'#ÍQßÔw Ô‡F“R³òØê7·÷Ù(ù{ãS5J«ßPS…Ô¿˜›™ -êŸ=ÆQßÔ7DêC£ŒúC\ŒúƒÌþÓ'Ýïhki¬¯©ª(»uãÚ弬ô ‰±Ñ‘á¡Á‡9Ïã´ÖÚ”µZo¹@Ø»!1©On³=–ðL¨¯ÈVŸC¬>Âð"`xa(6õi AýD¤>CPßÆÒ„­¾‚˜Õ'¥~oT£ìß4ze°Ío£L‰µõÅÁþŸ<ì¢Øÿ.ß—ÏûýæÆºšªòÒ’ëW/äf¦%ÇÇDE„ -8t`Ÿ·×Ž-›\!ì›ó†ýÙtØ-9Šöéí`Â~oÅ‹ápZ}IÀpŠÀ2<Ø‘ˆÀ ~Ú"°†Ý‚ÆD‰/ó4:¬Ï£Æ8jbD:jþàQsLÈQ£Žš9„ú¿PG,£þ+F}q±ÿ•ŸýwûݘýöÖæ†º»•wnß,¾R”Ÿïwî ~?ß½œ°oI†}9™9³ö%ñrÐêó¬³BŠO}4Ó#$FIŽ;aÒ”é´úšC–©•­ãzw®úÑHý|¬~umCKûý‡O1†ï?|¤Gï+¯úßHõ¿ -ªÿaX_S‰ÕÏÍLIŒ9ÂUßÔ7@êÏWW«ú“§Í Õ_¤½|¥¡‰…ƒ3¡þÙÎŽÑê Ù±¯„úßxǽgõËAý"Jýˆ“ÁõA}[}y¤þ$*ÏÀ`ã#–Qÿ‡£¾ØÙÿŒ–Øì¿~õâ9ä½Gîµ·4Õ×VW”ݺqíra^Vú…„ØèÈS!ÇŽúÿ/ìk¡°¯(/+L™4aR@‚RŸßf?„TOê㨯ª¡©¥³BÔ·õ·ì„™öDêÇ%¥e³Õoõ}¿úðÏÎU¿ Ô/õúAGúx{nCê[[¦úÊêó‘ú ¾=Gý pP?EØŽ½íQýo<ÓR~„£©ÿ´¢MKCm5V??+-).š«¾ûzG[+S–¾îR-M U¬þt˜ì±c$كͨÿ‹Q؇°ì¿yýòÅ3Ì~G[Kc}MUyiÉõ«E¹™©Éì"þl†Þ2íE 4T•æÊIÃnLÅ -Àr x`ö£§"fZPýY ¾[}3+;'ŽúÇÃ"£ã’‘ú×n–L}tê½}ý©ÿ £µ ©_R|¹07#%á`õ@ýBر2ر¦ÿ²_/îT¥{ÀÏ9O™ç9Íè”zº -•®¡R©iç¾]v$Gsä¤bR))éÞ¨I!¹mwÛ¢¨& ¹uQr§{f˜Ssžó{ßµöZ›½7›ÙÌ<Ϭßð®õû~Þï[Wßë|þ©ß54õ›@ýZ¤~qa^/‰‹Ô?è¿{§—¨Ï¶d™è#õ•A}¤þFýßdõ‡ƒýŸøì¿ö;;Ú[›Ÿ>yô ¦ªânÉ­âkWs³xÉ ±tÙ÷¡Ê>Ë €B¤€l` À™"L>úê“;=yšœÂ,¥ùʪX}S–›ã²…V?"Š›ÌËÎõKË«°ú­í`!¡~wÏÀêÿLªÿŽP¿•P¿B@ý giõ7Ú[ÃónÕr]¤þ|ô¸ƒÿ=Abõÿ$¬>:)VÚ ÅYs@zµõ–ƒú¬í7n¦Õ¿p)&!%#çʵXýGOš[ õß‘êÿ<õ_RêW•ßù¾¸0«B©ïÂõM±úPh”f)ÈM#Õÿ¢·úbNÊŒ‡Q_ê™ç³ßC³ÿæõ«¨ñµ65Ô?~x¿º²¼ôöÍ¢‚üœŒÔ$²¿«³#Ûjƒ™ñ}]­Åj* ç!¦ãJ4n¬ ­~¯VÄDxPR_KW•¨oÇA;½Ëoÿ¡£Hýhnr:¡~_ýN¬þ]zY8$õÓSâ‘ú§Žâ«oêúZ„úè–Ç¿[@ýþ,£þø “z§w-N/¥þ©³ ~|J:¡~ÅPÕïé&Ô‡“B³!Õ/Eêgó’¹Ñ”úÿþz ¨oÅ25õµús(õÇ2êü0êK…ý_(öqÙÇ-èŠ>$âÅ:žµAzR÷ Êþ¡²ÐßÏÇÛÓÝÍe£½Åz@@O{‰:ÊÆlEy9P¢ì8ª}ƨ?àPŠÛiåEx§M7X;Õ #¢ã‘ú×n`õÁBRý·BêÿOCZý|õÁB¤~UE)¨ŸŸžÕßï· ,õ­6˜bõ5)ÓêKlá€éåŸt:鿝è“^Šõ³‘úpÒ¡©Ï?éú¤°à„ú}Oê"tR!õG t`¯ï/0ÀÉÁÖ’µníêË–jj,úÇ‚¹J3!S&M”ÅééøœQàÛ€Eî44`ÚBªÒBaõÅZB[ȱC x<î†Ö€~Õ p¿‘¯iÜoÍôýv%^5Ñ—hõ%{ÕŒbÔ™aÔöQÙ'ÙÇe¿•ý¢ì—•@Ù¿’›ÉKމ ;rêXPÀ¾Ý»ð'âØY››¯Y©¯£µXMeá<%ŽI Æô‰Ç_õEΟ…ÕƒÔ—8 vZqöܰÓÚzËW¯…¶Gêo÷Ùsàð±Óç@ý„” ¬þÝŠê¡5`ø÷ðçßSê?}ü°¶ªœPŸ—ÌEêŸ ôß½ÓËÔgƒú†ú:šÃ¥¾ª†–޾‘)ËÊŽC©2$4"š›Ì£Ôøø)©þ!õE•VÿG¾úÏõ«+î"õs@ý˜KÎ>vøÀŸíÿõíAýµ«—ëjƒú æÌRÄ‹-;Žl3Œú#9ŒúRTŸ`—ý\ö!üoßô*ûÕ¨ì߸^m(1.*‚qüH ¿Ÿ·§»›ËF{‹õ&†%H}ŽéS'ãN$è/áˆT_†P:¡¾¨¿Ô7·¶wr¥Õ¿I¨ýæmØ<¬~Û ÕÇÔ‡ÿÞA©©ŸÅKâF…Óê»mâ°-Y&|õçá§V_æË1CUÌ—2”úJH}MPßÔgƒú^ÞÀ`¤~¨Ÿ…Õ/ç«ßÕßõáÇîžžÁªßF¨P?#%!&ò"­¾«“½µ9zÆêi/VƒWìlXlB}Qê3[=¬Ã¨/Mö©²è,û¨ì?…²_SUq·äVQ!ä"-‰‹¿Ñ‰àCöøîØæ±e³“ƒ­%ËÔhÕ -½¥KÔQù›­(Õ—eÔ—|V_Em RߨÌÜÔßêéí»7 VúbdlB¯ÍÃê¿xõ6¯‹¿y«¿½½«_Y~çVqa¡þùoiõ)õÕUái7S^nª´ÔŸ*§0Siž²ª:Vß„eÉælr£Õâ&ñ²ò -‹oÝ)¯Äê·´w aõñQPÿ¿¤úï)õëëú%7¯_ÍÉHMˆõÏ -Øëëí¹Ô·17cÔÿ} £þp°O•ýøeÿ´¾†z ú^ô¾kWs3yÉñ1‘açCN=ßÈëë¯\A}Ôˆ–-Eåo>„Cµ?œ>„T>˜€ô^êÿíôßøêO.ê/õ—ê­\clfaãàL«ÿ]X$l^&Þ¼²{5b6opê7‚ú5Hý¢‚¼¬´¤8¤þ‰#÷}³c›;¨ok o»•ð»Ô—¡¾˜?Ýû¨}Ô—õ"õ—úë-ÙŽ|õ!dçãâ’Ò²ò -Š~¥úúpTP¿±Zͽ2¤~nfjbldØw´úÎ6fÆkVBŸQSAêCAêÿµz­õGbõ¥ªþ/eÿ'‚ý·DÙoomݯ®,/½}ã:ž’{9<ôì©cA÷íÞ…¾‘³#ÛjúµkV.ÓÑÔX„*80m -‘ZýÑŒúýM -?ûœ TQ¨¢¾dé2P½…­ƒó?Ý·íøfßÁ#'@ýËq‰i ~Ñ­’²J¬~K[Ç`Ô «ßÖÒXÿøAMeV?3-1îr­>üo[‹õ&ð»ái§‚Õ‡—…ƒVŸ<êxYJ}ò¨ ¾­ã&ꨠþeP?«Gõ)õE†¬?õ©£ -¨Ÿ–{Ô§êG5uT´×•é £¾tÙÿDÁ/ûoPê|ÖÖÒôôÉ#Ô¿YTŸžšqáìéãGúûíÚî ߈cgmŽ‘¾ŽÖb¤¾ÒL‘êbÔ?â -°ìDšBMŠBg -ÃzQ(F}ñŠV¿©_êçêCîÂIøa'aºàð³]p“û½à¾å_pý^pŸÄ\pýUìgI\pšäQѳf‚äÏf¤7Œúà>NŠÊÄ»· þs¬~ÓºµUw€ÂüœŒÔDntÄ…sЇ÷ûùx{º»ñÕ7Ð×ÕZ¬†Ã! þŒú8õ'PXU]SGßÀÔg;nróðÂ+ -p¨Ÿ…Õ/—F~Ö§§øxPÀ^_o¸ål,ÌõÕTàe§( >!á ÔÇgõÇ’ÏÅÙs¨¨ê›YØ õ=½}÷?C„,‡¬ìÞ¯{Ö¼Ãê··À[ö!”¬~VZR\T8¨è¿{§—‡Û&G6¨oh ¯£©®Ê¨ÿÛ£¾tÕÿEP}\ößAþ_>ïìhomj¨¯{H¨_\x%'3-‰‹>ÒHÆþ=>ÞÛÜÝ\6ÚÛXàlðÕŸ¥0«?žR_€& "G`¥GQ+M¨?MNa¦Ò|eU ¬¾)Ë’Í!Õ >ÅMâeåêׂúM”ú]äæ}”T}¸ëáªoFêW“êg¤&ÄF^‡mÉ2Åêk¨*ÏÇu«?–ßfzmõÈoÍiõ¥Ìþ'2ü œ Üú^>‡T´67ÔC,€Èŵ+¹ ~| úH'‚íßãë½ÍƒV¹®v_õÇ2êK8”„B+Ô‡•õµtõ ŒLYVl¹ÒXýˆhn2/;Ô/ý?ûõý啯üìêº{b›ãŠ‚E1±RE•$1tÚPb ¸@QD*(½ÍÀPQÞ‡¢Åquh²çìsïûNaf€ÁŒüßç?xî}žÏýÞêz¬~÷“žÞ¾ «n½¿}ðàÎÛšj+Ë@}øÝ1AýX -B}:¨¯ÔWUZ+uõ#õ×*©"õµA}:Wýs!—@}fFv¹dÍmí°dÏzûú¯&¬~šo¬~}uÅÝ’ÂüÜ,|d±úÞžnßÚë`cA3ÐÙ ê«#õäEÕÿ´:…RŠRÕïõ›‘úw õY @Éß÷4¥¾ôJTB¡‘^£¨‚GZÇFŒ´›§·ï…àðÈè‹M¨_SßÔÊAê# õ‡†ÇWÿ ©þ ¡>¼ôœÖ憚ʲÛEyÙéLxæ±ú^î.‡÷9ÚÑMt õ õe õgIA}YB}EB}]#Sºã¾Ã.î^§±ú1‰Ìô켂¢Ûe•5 Í­žúƒ¤úoÆWxˆPõŠÔç´ÂW–PŸÍb$DG†_ð%Õ·µ¤êìüjÛfuE¬>ô -êÏT*¥þ¤¥>¥þŸ­Ä«Ï•P^a9ÒÚx¤‘„\õcéì\$!¨$$ÕG¾KBÉÔg§Ãç$ä©oK75ÔÕF"õä±ú’Pœú½nܼm;ê•nËWŸìu„úÝ’©?²××Ü^A}Ô+¨zÍåözÁ—Û«¥˜^G}á&{f>¬¢Ô—úc©ÿ ©ß ê7!õïê§ÁbÀ!ùûzSêK­ÆÊ¿rͿҕòoŒ@þ%$Í¿ ª?e‚êãNô_C¾püMLÂ{}á$ø×ÈêÏ–ð_C•ÔŠR_zêóÐGêÃF`õ õŸ>yü°³½í~S}Meù’‚°g·¥©‘Þ®|õ—x9xêO -EÔ~ÕHõÿ#=«þB¹% þêuJjšZ;vé›YÙcõOøø†^¾ ƒw]hð°ú/Iõߎ¯>¾vPžú¤>|ïê« õ³X)ñÑaýÏž:þï£H} šÎÎ/·nÚ ²^¼úS%SŸÛ¬õ׫¨oÚúåNš… ¹¾gý/†ú)¬,Býêú¦û:@ýžÞ¾çƒ/_‘[6ŽúoIõ_rÕïjokõËAý¯g¤&Å^»ÈUßÞÊÌF[KSC &Ô_"·lPÿ#œf(õ'©(õ¥†¾úC\õ!õýúK¨ß¹¯¥±®º¢¬´ø&$¿ŒÔäøèÈðÀógNyº¹8Ñê±u“ºª"$¢êÏ Ô—¤„ÔG=cÖìA}PÙŠÏV¯SVÓØòÅŽ]úÆæVöß8rìû“g°úqÉ©™ ~qiyUm#¼ÇxðúObõáÒá‡Ô¯«¾êßÈÉJK‰â©y ô³Ãêã'~!VŸw×ï¦þl¬þÂEŸB³ þPÿëo L,lvï9x”«~T|JZVÎ Pÿ©þã'=hË&¨þk¤>4‹Ôo¬­*/-õ3S“ã@ý ógN~ìÈoí­Ìõa´·h¨)ã<êËŸX¡f©©~ßE©/5õyèã}@ Ô|RÐý¨«ãAksRÿö­›7rØé̤¸¨ˆðà?Ÿ“ÇÝÐÙ[[Ð uµa5À¤þòeKĪ?…RÔE}B¬þzå  þ×ß蛘[ï&Õ‡Á»—œ–™sãfñ{Uu¤ú=ƒ7–ú|¹êÃ߇‡þÞb¸ñÌ´äø¨+?„¤úÖ&ú„úÊë1„£©?êEKÔ,V_ßÄš«>n6ž×luR¿KDý·’ª›%Õ¯«â5G4K¨¿ÛÚ5 ê¿s³TI©(õ¥‰¾¸¨‚Pï3HB;ÛÛî75ÔVAð+‚0”Åb$Æ^»gägtôÐ>'{Ø ]ííZ°þ>_¹|)¨/ó/PŽ€úS)õǨ1!$â¯2/þò ôÇâø+BÁÁ¯þï#Ô! ´ÇîÀ¾cü­ÙOxê¯ÃOÜñOÜõqž8ÉšþØ`õñÇæÊüµÈÇF–T&Ù,™f¨©~ßE©/%ôE£>¡þ‹þ>X P¿«ƒÓÚÒX_SY~§¸0?/;#-ŸQ¿¯·—DZ#÷:ÚYú:;¿ÒÒÔPSõ@}9”ˆú3gð–ƒ €Z±ÅsPd¢ed¡‰^³^E©¯c@³°qàª1,":>…••“_Xr÷^u=Rÿá‹¿OIõk«ÊKoÁ;Ÿ™šwírh O}+scý]H}5žúÄ¿îšÿÀODýêÏýdžÌB9R}5¤þ.}cs+{žú¡°eÉ©™×ü©¸´ü}l^T¿¾RMa~N+%>:"Œ«þ^ Ì6¨¯Ž‚<¨¿©?G@}~·“=5TQêKIýè‹Dýž'ݺÚÜon¨­®(»} ²;™xþì)Owç{léfÆú‡¶mÞ¨¦(È/]ŒÕÿ'¥¾Ä%è ¢çò'z¢ -žhCš¥ šh7Ooß Á ~ƒÅÎEêWêw «ÿ›¤ê÷cõP?#5)©ïçsÂÃÕy¿“½•™±¨o¼ÒºU+ñ?ù¿‹ú¨Ûé3fΞêÏõ—._¹z’š†&¨¯glfeï´ßÙÕã„_ ¨ [voYUm#Ëú%Uÿ7AõûzaÄIõ+ú¹l#!:"<ø‚¯·§Ûw‡ö:ØZÒ !ÑlÛ¬®¢ˆÕ_,»`>šlJýÉ.J}©¢ÿ;‰>^PõvpÚZšpÔ/)*€àÇb$Æ^»àçsò8qD6–¦FˆÈCªHýÄjÌ#¥¾D%ªþ ¤>8½T^aÕˆ‰vÜw˜T?<2&‘ÎÎ-(º]VQSßÜÊéõŸõöõ þÔ_ý7BôÅëïë}êw¶·ÁK_‰Ô‡ß3)ö꥞úvt3#=ííZšU•Ö"õË-àª/ê „êÄUÜbPÕZ%µšZÛµõŒÌèv|õ/]Mbfdç‘[ÖÜÖÞ [†º…-{%©úÃC(Û  nAýNNks} Äš¢‚\v:#!&’Tßåð>G[KSC]mP£ª"Ñ­,Ñí,qÝNöÔ|PE©/5ôùQ¡OFýõŸBÔïÄQ¿¢~é­›ù¹Ù©ÉñpD¡Aþ¾§Ox;zh¯£•¹‰.0°Ecƒ -ÚŒË>]„WƒPvC„j=„ê/âÔrP;¨kdJ·õ]ܽNŸ ¹“ÈLÏÎCêWÖ4 õu"õÑܽÅAõ õáÖÁÁ†šJä`^v:31Ô8wÚËõMt¥¨þøÝ:ñ»½:V·ÿ•¼Û×cuÉïÖqÜnÇÿÙP%¢Ô—šú<ôa†Hô_ <ïëý¥Ðïêà´¶4ò£~‹‘xþÌÿٯ﷨Î,à»›õÙ$Ä’„ÁRA iƒtdèUÁ‚mQƒ"¢ˆ"Q•&½ÃPT‘6 )bA1(°*›‰Éóìyï½Ó(*øÓ=ÿÁ¹÷œÏû=GýìÝåãåîlociJ5ÐÕRWQ¢Èɬ]%)¾\TXè[X Aó±¨Oª?Eñ¦ß¹\Êâé×h<ýÆ&é·¥ßOw°ŸÓAH¿à`七ÎöDú݈Ò歹‘~ùªÏï²1„ýµwãà²I„Ëf&ß8tÙt¢Ë¦šý²9s’uÙ8Àec„ÔWREê/f©?ŸlRýÏS¤ú³…þGúï^þûÐÛóøaWG[K#“Q]ADýdÖ -¾÷6WG[ks#=M`@AVz r@Ô_º_ "‘êOVœêÿëË/¿Fê "…E–KH®–õU5´õŒL,m\=‘úG‚BÂ".]‰…¹ËÇæŽ96w˜ƒo¦Pÿ¯1áÌCï=Üx˜ú=HýæFUEY =7#%Ô ô÷Û·³¨o€ÔW”‡7~å -PûÙÄ ? õÿÆ«>ÚßEãû+#¯8¾¿°¿~þÁ¡á ~BJF.½¤¬¢ŠÑÐŒÔïéëGÝŽ õýíÝ»±nù´Ë¡þ–úOvµ·62k@ý¢ü¬´±1—"ÂBpõ=]h–¦FzÚªJnI P_4Äh“ê¦"ÕŸ9ôÿ$ÐG«€E}@è%¬ŠútÞomªGQ¿”3êŸô?°Ïwû.4+3cÃÍ›4Ô”!ü­–’X¥¿¥‹Qüc©vƒ\މŠ[}èy Ð@ ‹.—Z#-KQFêSM-iŽ®ž>¾û †¹KJËÎ/º]^ ê·¢¹ëÅæn˜}î¦R»òÞ¼z‰N¼žG:ÚšëUwKKè9É ×._SßÝÉÎÚܘ]}Ñeè‰dWÿ‹éªÏgEÙÕ76·¶srSÿÂåk É9ô’Ò»UŒúæ¶Ž@ýÁWC#¯ßŒíN¡>Ñ.RÚ…lƒ©ßĬ©,¿]”Ÿ–séüÙSÇí÷õñtu¤Y™R‘úÊH}) 쎅vIõ?w‘êÏ úñAÿõ0ôúº»ÚÛš˜µUwnÓs³Æ?PPñœì¶Z˜PõuµÔU”(r2kWCEêcyhþ¼¯¿âÈärð­©Õ—£(«iêèSͬlݼ¶ãêŸ=u5.)=» Ô¯e6êpÏÝdêÿÁ­~/¡~-R¿Ôõ>}âèOÿÞ½ÝËÝÉÖÚÌX_GyøÝR|ÔgÿÕ·ûÎv‰ýBêK­•‘SÄÚ56³¶ur÷Ú¾ö÷ÄéŸAýxP¿©_K¨ßÛµûêcí"õt€úµ ~qAvzRüÕ(B}h×ÍÑÖÊŒŠµ Ó ê¯àQŸxäÈÁžå"ÕŸôÿG ?2ôjvÿYoÏã¶–ÆzFõ½òҒ¼ìô”ÄX>Qß|‹¡ž¶¦ÚÆ -†V­A‹±dÑBÖf°©ÿwr9øÕÄáWˆ¿0u5>9=§ ¸ônem}bðɃìsÇ_ý?ÙÔK¨ "õ›êqsÒ“ƒcêó0ø1áwÊGN†ë‘#Ú=Ïj=rŸÖ.×#ׄ=rD»<œë‘ãÚüsŠÓ†¬™(Rý™C[Nôaž#ô!ÝoiªgÔTÞ-»YT“™z#þZôň³lßE}Sªî&uUeEùõëVCCQ-†À|Rý)Š]A¾-#¯ˆ ´±¹µh?ÿÀ`,ü&@ø¥£ð˘(üþñÁá·«~ó!üÆ…__O7Gš•)U_[CÔ—ž-õÑi£ª¡­O5µ¢9ºyúpž6ùŸpÚ¼çV¿8mè´¡Ãi“€N›Ðà@¿=;~pw¶³676ÐÕú~£¢<¦>šî¥‹‘êî"ÕŸQôgGÐЇ÷³½µ¹¡®¦²¢ìV1=7+->OÔ…ð3!ÇòDýïQÔ‡µ_.ŠÔ_²Wm©þ„Å«þ<èEK¾ùZ|åªuÄ@bíá«}=!%#—^RVQÅhhnëì~ÔÓ×?0øŠ]ý÷ÓU|þì)¦~#³æÞ[EùÙiIq1—"ÂBõ]h–¦Fz ¾ES.;üo²úЯ°¦¾,E Ô×32µ¤9¸ꇄEÀš%¥eçckÆll_³áVÿík˜õÁ þãîÎûÍ ŒªŠ²›ôÜÌ”„ëÑ‘á¸ú;½=œí¶Â€ƒú*P¨‘çE¶Ùž¼_²f Hõg}l FÙÐï{úäQwg{[s#³¶ªâÎí’¼ìô”ÄØ«—#Ï… ->vøàþÝü¢þ)C"Xøƒ½Àã{"Wƒoq*H¨/€«/"&.¹zÝz… *ê›6n±Øjïâá½sïÃÇNž9ê'¦dæÞ,«¨®kh¹ßÙýøi_ÿ‹ÁWÃ#¯ß‚ú¿½›Z}ìÕÿu© -ê·4Öáêg¥Ýˆ½‚Ô:rpß®·¹:ØXšéÁWR•A}ü‡'üõ¡ß¹Ð/Rÿ;Pú•–UPRUߤgdbiãàºíÇ]û Bê_‰…5ËçZ3Ô/¬Ù(¶f¿O­>ô‹ÔÇûí{ŠÔoi¨«õ ó2S¯G_ßâ¯àÂqׂH}# BAPÿâ•ØÄÔ¬¼B»j;\}\A¤þd -ò¨Ï©`c]5¨_˜—•š{…P©ïboca2‚ÓξÓå _{¼_ì•›¼ßIÕŸ¨ßgÜýÞÀúe½r.“½rÓ½mÈš"ÕŸôáäôô;ýzý¢ôqâÑÇ ?rü¨ÿ}¾;¼·¹:ÚZ[˜Põuµx¢>Z –ú¤ú—úhžç-\¼ä!P_Bj´,EIUC›È¾ž>cÙ7fÂì;}?$ûz°e_y¾êÏùPõçðU_žïmsn›ÔÌ<ÎÛ†ã•{7mõ9n›ÖFæØmúm|}<]h–¦FzÚªJYé5Rj°SÆ›Tÿ³©þ,£ßƒÐ¿ßÒTϨ©¼[v«¸ 7+-9!6&ê¹°S'Ä?Ž“½¥™±áfm 5®¨[±P€+ê“êOX©¿ô[!aQL}9Š2RŸjjEstóôñÝ(à8>vIiÙùE·Ë+k˜­hìz±±†±e_ÿWM¨—Þ üý¤~s©OÏÍLI¸èï·g‡·‡³ÝVó-ºZpÜɯ_»j¥¸Ø2\ýóçòª?YÜê£ÆÔ_&&νÀ þ?ÿÀàÐðÈèë )™¹t¤>£¡©ßÓ×?ê õñ†ß³ï¯úDÃHý¡—¿<Ö‹©ßĬ©,¿]œŸ–uþì©ã‡öûúx¹9Ò¬L©ú:šjÊ9¤þ -õçàÃMŽöì©þ¬¢ßÛóø!Ž~Ž>=/+=91öêåȈ³§ƒáÛøíÝåãåîâ@³2ßb¤§£¥®¢D™,êsÄ!r3xŠè/8æW™è -P_ÔWÓÔѧšYÙ:ºýŸý:ÿæ:ßã~îé6ÍL í“Ý-»¬ CÉòµï;Y²$2˜T%¥´Q”]È®J*úJb(ZƸ•êÜsîLçžs_ï÷çóµ|}mcùe>¯ÿàõù¼^÷óåéóŒÆ.>%#» ¸¼ -Ôol¦·wv#õß0݌ԇ‘úϺ;·µ4Ý»}£º¢´0'35!ö©¾—›“¥©V_^žyøáÜœÁùPÌKÊÊã60µ´sB ŒÕ?›š™SXZQ}ãö½¦–¶ÇÝÏú¨áá³VŸh¸ï94ÜNoiDê—äd¤Ä_8uìðÁŸ|=]l-L °úò2¸a^nŽÙ7LÕœ‹R¡Ñïîìh§·úõ·jýâ‚ܬË)‰Ïç9v0$h¯¯—ûNG[+3cšîvM"êK@Ô˜õ¿¦¢þô5‚¼A@P4±´Ebõ£‚9%åÁÆ:F°A4v¬ÕGsð'³ú}X}@©_^‚õº9ÙZ*OŽà’™«?a9FFÏÑ0ùÌ¡†S¨á6FÃä3 OþÌmX‡›”ú‹X”úó‰þFчÀèwaôïúՕ׊ s¯d¤&¢/s"âphHpÀoW';ks=m-­õe$ÅE…YDý1kA©Ïºþ1Qý0ϫ׮Ûó,€çYžœgK;gwFôŽƒè›[X2uôýsVÑw€9úf£è{öd}!úÒpô…_.œ— «ÏÎF^vãîºuL,ð -ò¸áÂÇ‹ã&‚é¸iAÇͳÙ7ãÔÄÇMO×ã¶VÆq“›™šM7ÞîÎvV¦†z ¾Šœ³¢B|LÝôêÿüŒÔ_¼Äê?l¾çÖ¿®—]Í¿’ž|éü™GÙêït°17ÖGê+n–ÆêÃ_ø<¨s@Ç‚BH}E¤¾¾±¹ÃNP?hÿ/GOœ9)9ö¬ ïYóÃvrÏpÇ?}Æ{öÇ$êvü_è©OtLªÿðAÃ[5•×®æe¥'ú¸cks#¢c˜rQ!²ãÙ¾sT͵(õý'úwênÔ\Çèg¦%ÇÇÆœ9y¾Ë¾@ÿÝ^î.޶VfÆ4]m-uUÅÍ2’â¢Â1úÐF0E}b+(õ'©©’/™| °>þ “ү䛺^†Ã36T˜¡~ïÓ_‘H}dàdà™ñ¢ä ¢äËO$ßU³K¾Þ¹o&}çÌ­Ð;GtŒÞ9Ôq%ÙqǼtŒÞ¹G¬Þ¹`–ïÜ_ºn¨škQê/úåø«¤'ÇÇÅœ:vp_Ð^_/NvVæÆzÚZ[Uåe¥ÄÅ„7 -ðórsnX¿nÍê•TÔŸM‘ó¼dÌ8¨Ï‹Õ—Ù¬¤ª®¥C3¶°qt…ä| ,‚˜ºìüâ²ëµuã’ïïsO¾­êoBò-ÊËJCÉ72üPH Ÿ·‡‹½•™¡R_AN -©ÏÇÉÔGÏ<&ð¯¨[õW"õ9yøúRr -H}=C3+¸n¼ýF®›´_7Ó©×Í¿ÿíõ@¾nèÍ÷ïÖÕ^/+ÎϾœáìɈ° ¾§«£­… Mg›†ª„Pÿ^nRýïHõ—ŽðÅœ›¿WQê/ú¥Eù9€~B?òhØÁ ½{¼=\ì­-L õvlûQm‹’¼¬´Ä&!AÜ(Að[ÉFEýYÔXÇ37/gIy%Um:4 ['WOßg4uñ)ÙÅåUµuw›éíOºŸ>ïxÃ.ö Ð'£õ§-V²ë6ã,)+ÇÙÀÄÒΉçcQçbR3r -JÊ«nܾרBÜÙýìEß+¬þð Õgøùã0&Ô·µ4Ý»}£º¢¤0'35!©ºï§=^nÎv–¦º ¾²¼,&©®»YÈú¡[½fb˦–Äï EêCË™9…%ÕÐrSKn¹ŸÑògV‹Æ¤>‹–ûÈ–Ƕ|.jbËðÐAË#Û¬:ªæX”ú ŠþÃQô¯æçd¥§$\<öTäÑá!Á{|v¹9;ØXšÑt¶kª«*+ÀÝ+.*¼Q¢>l€ŒúË–AŸR²|¿|yø6Š0_q‰©™¹…¥ÓÈZý)¤âà‹ $‚¯|uç|'?o8GÎe8oÐCg qÞŒ>tÕ¬ºé[žðР⇮Ôo%ºÒ‘ó&”8oì­Ì õ´5ÕTäˆó†gä¼Yþ yÎRê/xQê/6úðI"‡îðóñôm-ÍŒhºÚ€¾Šâf)q1}Žï×­]À賊úÔRL¬ñê/ƒq^ê¯BêsúB¢âRr -*jšÚzFfVö.Þ~!‡Â#OÇÄ%¦eå•VÖܬohjmëèêéõß½›aðý2Bà§°ú}ÏŸvw¶Ó›ïÖÕV•dg¤Ä_8{’PßÓÕÑÖ„¦ê+úb‚ >³úøOó³Éž—LÜ`P_PX ÔWõuh&¶Ž®ž„ú°hñ)ÙÅåUµuw›éíÝOŸ÷ ¼a^´©Î›/ õ? ¿74øöUÿËÞž®ŽG­êoÖT^+ÊËJKºs:2üPH ¿‡‹½µ™‘>R_QN©ÏÏÃ…Ô_…ÔÿGJýE(JýE¿iý&ôBè» ô tµµ4¶ª(ÊËJIˆ‰ òóòpq|¿~-ÀÎÛ@Eý“úhšW°±¯Z³öÿìׇSÕÙðI¢ÑØ)"ÒAQ”òàѱbAéU:ø@)+v…µ¡¢Æé ½IÅB‘*¸¢.JpGE™I6£»“sïï÷*y>Ðd&¿û|çžó9çHÌ•–U˜§¬¢F£ë-_ebfeïäîå¼+äàÑ“g.DÆ&¥fåaõ¡èúݽýHýƒŸ˜êTýw ~?Rÿé/mÍ µ þõâüìô«qW@ýc‡Bwo Üìíáì`m¾nÕr#}mM5P_AN«ÿ«/˜€#eõ¥å@}5Mm}ȼÎÜÚÁÙÃ{sà¶Ý¡‡Ž–ž_|Ô¯mhnCÖƒíÝ·¨™‘úúý¤úÍkîݾYV”—•–{%âìÉ£Cvlörw¶·63ÌzÚ´±d¦Þ˜¥þ÷F¿ê&‰þÕø„þÉc‡ ôý|.Ž€¾© B__G‹¦¶ÐW”ô%%f‹ÁáK®ú“Ъ?ZõG}|ö^iX@sk{g/, ¨6‚(ºb\t ¬¢c©EÇVÿábõ‡úHÀWÝH}°¼^œ—–Ç0€hÖ‹Ÿúä¤Ã™‰I™Ý!31éPæ$Væ‡Ü™?~Â&\f4épæüì4˜t¼“Ý7Ú\÷ ;óDŽ"ÿquóö(õ¿;úålô/"ôÄìa¡oÐ_½r™‘¾¦¾XeÁ|@_F -ÐGw/‰þd„>µê ð8䮿¹2rŠ  º¦Žþ’«×™Û8¸xxûm'÷Þ¨x¼÷–ã½·…¹÷¾&ö^Aiï½{»í½©I±‘Î{¯/ÃÝÉÞÊl­ñ2C=:MUEY Ô—”@¿Ž>_wB©?i2¨?}¦ˆ¨¸„$¨¯¤¬¢ -÷á2ãµø¾að¹onÃ}Ó4ì¾hÒ±ï›÷pß ÷MKCÜ7å%ù9éÉñQpß„þyÏö ?oO ¤¾Ž¦úâ…óA})¤þ¬ÓYêO ÔÿÞRÿ‡¢†D?£ïʾ. ¯ -è+)@#HÎAèÏÂý›B_°7\ýiPÍ¢b³%ÉjV×Ò1XºbÍz › .ž›¶m‡j?uîRt|rFNA R¿®±¥íɳNP€·èø -ø;[} Sý>Rý&P¿ª¢¬ðZfjb ¨âÈ};·úû0Üí,M‘úºt ¤¾¼¬Rÿ:ñç¨B#õg!õ¥då‘út]¤¾©¥£ÃÇëÎ}ŽœõcS3¯–UTq¨ß‡ÔÔ'Bæì´QÕïëéê|ö¤½¥±î~ueyIANFrBô¥s§@ý½;~Ú²ÉÓuƒ­Åú5+—èji€úJò2DhØo¦|KhêåQêOô«ýR@?“ýP„þ/„¾ ‰¾.]“>½â°ÿ0WýIÄ -Dªÿ'Jýßp§°”‘Wš¿P•«š} š÷î;~úü¥è„”ŒÜ‚Ò•Õê[ÛAý®ž>¬þàÇ!Ôg8ôqð=¨?Ð×ÛÕù¼£½µ©þAuåÒÂÜÌ”„˜ËçOÛúûltu´µ4%Äê˰Ô¾ö -ª>Ǩ#C#õ‰Ð¦DhfèË1 )™¹…Dè¦ÖöŽç]½}oÞr‡þ2Bè/<¡±ú½XýÖF~¡aÔmtC¡Gu8ÔË£Ôÿï¡ïdoci†Ð_b «­©¡ºˆ@_zî Nô©U_àÇ­þ$ríuíS`í-…µwÜì!¬C–äf¤àµ—PŸsíÕÑR‡µW©?[ ­½S‡«?Zjnõ§ò9p …-l7¸zn"F>pð¨+Aê×˨ƒ§ 80êø8¾ 7';+3PßHNSõd¥‘ú"3gL#SSêÿG©ÿCÐO ÐGèïäDÝš•Ë™è/„&“•ž mÍO¢ÿ7¾èSýÀ÷ñ¨ŠyÚŒ™"bâsæJË*ÌSVQ£ÑõŒ–¯21³²wrgøï -9ê_ˆŒMJͺVTê×Ô[ý?†ÈOýW=/}úK[KC-R¿8?;ýj\ÔÅüýØ¡ÐÝÛý¼=œ¬Í±úÚšÈ?E¡ý#{˜jE25RßÜÚÁÙÃÛR‡:w5=;¿©_ÛÐÒ†:­wÚ;V§šúß85´¡þ«nœº¹¡öÞí›×‹ó²Ó®Æ]‰`¦ÞÌ•Z§vÖQOøG©/$ú¿ˆ~;_ôÏs ï‹Ðwà@_KC}ý)ý¿²Ñÿ3…þמÀ[¯9l½à_×oݹWÛÐÜFÖÜk¿¡qôm½Ø?/wçѶ^þQ؅Þu4mâÂYçŽg](9ëP§ãNk`užu¤†Y×ÏšuuĬËI‡ f×…³~õŠ¥:Zä…#5m9”ú?ðQêúý ú†\èKúâ¢"³fr¢?‘}ªø?nþp1OƒbŸ-I³º–.f Û ®ž›¶m‡b?uîRt|rFNA Úzë[Úž¬þàÇ¡¯«ÿ;[}Ĩÿ©ß×Û…ÕozXs·ª¢¬ðZfjbLä…3'ŽØ·s«¿/ÃÍÉÎÊt­ñ2C]º†*¨#ŸÉßT<í…UŸ_lº®á2㵦–vŽn _ÿ­;÷8rÔILͼVXVQu·¦¾ «ßÕÛ‡ÔÔ'b ¦þÐÇABý^¬~kcýƒêÊ¥…¹™) 1—ÏŸ>¶ÅöÙèæhgÉ«/òí±©'ô£ÔH}AÐÙɃ~ÑXПƉþ -}A¿¥wçÒ« -K/æ–^7†‹¿Ë¥7ªî>¨ojmïxÞ ü ¼yË­þ—ÔG•ÁÅßÛ7,þš†ó·wâÏÕÑÖÒ–^CXz9øbéå{â|eØùoe»˜„”ÌÜB<ìêÉa7†Ø\îžvY©‰±Ìa'ƒçÄ™‡Nœ9âbBœ8ÔúQê ‡þ?dž¾íÈè‹ñEŸR_€Gó_8jù?ì×ùWûðu—…u¯”ÓÂ’´Ëœ!Ju’áÊÑ<ª¨T$)ÔI9dÈJ¥4Ï¥y$ -¡yˆhØ®YÜ{ÖźŸï÷yönïm·Û{§ßžïð^Ïûy}>¤>tYÔ_¸dÙJyeUµttÌ,mœw{zûù‡GÅ'gdॷŽXzûˆ¥÷ƒÐK/«ßÜPƒÔ/ÊËJKŒ ½xö$Rßc×N»m&ú¿úkTå–/]4_>?Œü¢¤ú“Yù;7Cý‘X|æ¬9ä?,§¨‚ÿa}‹mv;‰çäÙ‹¡‘±‰pâ'N3û‰óIÐçRÿyV¿©®êþ[%9)ñÑWB‚üý¼=Ý]l¬ÌŒôújÊ -+—-Y(Cõg±ª?™¬;Uõ {”úü£ÿ•ú}=Ϻ~2ú§Ððq×PŸ†Ô—SPVÓÔÞ¸YÏÈÜÊÖÁÅÝËçÐQÔe¢r…,•ë†Ê1Õ‡Êñ­þ§¡Xý:¬ÚšëkÜ-»Q”›™šqÔÿóß÷íqu´³67Öß¼Q[sŠVŸ6o.ÒÔŸösÔǹçѰú -*8·¾±¹µ£ëž}ðƒú—#bS3s‹n”Ý}PSßÜê÷Ð^pþj\Õÿ>¢>Ê ¡þ@_ÏÓÇÛšê«Aýë…¹×R¢#._8sâè!/wWG[È­‡r«±å&7õ„|”úü¡ÿ+úïß¾yý¯—‚¡¿ô§Rè òþƪßÜe´óâ.Ó;/¡ŸÅˆ~P¹ˆ˜ЯéW]ßÔFVîåë·ï rŸqå†ÇÔo˜©ßÛ×lúÝ-㦟•¹¡±ó‚~Üw^>>:¯‡6Ý8¬ÓΑ1í wtBêµ\bÚ±æ~#ln<íž>yÈ>íðƒ§Ý(7Îl–g -«úTÛ'äQê‰þw&úx¡}ßÐÿulô§Pè ðØÕŸ -]ž&2]l†øÌÙs Ë غlAtUîìÅÐÈØÄ´ÌÿøqgWÝ8+å•U5ÖnÐÑ52³²ÇÓÛÏ? Ý8ñ¿Ú¸oœAz/Ü8íÍ 5•å¥EyYiI±‘a—Î:vØw¿Ç.§Û¶šlÙ´NK}µÒª²‹HKê‹Aí‰M‡R¢¥þ˜ê³¡?Ìý~„þc„~ƒ°èÓFA2'úÔo0úã†ßt±_°úRÒ Ë®X¥´Z]ký¦-¦[·ïprÛ{ààác§Î] -»›”ž•_\Z^QYÛÐÒê÷Ò±ú‡>óVÿÛˆú_p1Hõûûº»:;ZëªîݾYR‘|þ4Rßs·³½¥©¡®ÎzP_Iá'#%)øý4õÉà’R2(¸¼’ª†Öz]CSK{çÝ þ‘ã§Ï‡GÅ'gd”ܼ}¯ª®±µ£³«»¯«ÿ©OçOýÏC õû{ajoi¬Eêçg§'Ç]EÁ9x`¯›³ýv¾eÓz-u"øB"¸pãŽzÂ=J}AÑÿ2ú­ý‚¢/ËúÔª?ö#»<‰¥ÊÌ•WŠXy•ˆ•×ÐŒÄï ‰_\rzv>Ư¶±á×Û?øâÕvõ¿Ž¢>j+~ >©ø!õIü˜ø9Ùoßjj€ñc®¼’B¯¼¼ŽœÇ=w»¸$^ Á+!xûx‚ÂÁ_’Á9ÆyäÀ¸ããÈ™L–žêûD=J}¡ÑÇúgøC_btô'Qèó÷Xíc¯²„$ «¯ ¬†Ô×32³²upq÷òöó -¹Ÿ’‘SP«‚Ʊ¬¼„^yé½Ïž¶OxõqrHŽÕŸ'½€ó'v‚ŸØ9¡‘±IiYyã=r 9Û‘óôñÃÖ¦ºêûwn]/̹–’}åò…3'Žòñrwq´µ27ÒÛ¼Q[SMEA’χö#õgˆNgªO-ûû(õG7œD@ÿú¹™é)‚¢G®8…þxÞhöá*ÓP•åTÔ4µ7nÖ76·¶utÝãåsèè h\DtBêµÜBܸú¦6²q õQãøVÿÓЬþ½©ßÜPóànÙ¢¼Ì´Ä˜ÈЋgOþùÇïû¥þD?J}^èÿýÿè¿ô_Œ ßÜP[-úò£ ÿ -}á‡ú¨ÉLõ¥¤,–]±JiµºÖúM[ L·nßáäæ±ß÷ð±Sç.…EÆ&¥eå—–WTÖ4´´ÃÆÛKäoãýÆTÿ/Bý°ñ¾bn¼MõÕ÷ïܺ^˜s-%!úJH¨ÈÇËÝÅÁÖÊÌHo󆵚jÊ -+—-Y(C“ÄꋉŠ0ÕÇ_Ÿ¯/OFŸÄò‹ˆŠaõ%i2 þJye5µtôŒÌ¬l\ÜáÊñ -¹ÿZ!Ë¿ÖÍråü[°+ç#VÞ‹®œ–†ÚÊŠòÒâü¬ô¤¸«a—Ο>~äà½nNöÛ-M ·lZ¯¥®ª$ê/”‘’”€þ zB~5.9=;¿øæí{•µ-í]Ïzû õ?}æ[ý/¸¤úý}Ý]­MuU÷nß,)ÈÉH‰ - - ð÷óöÜíì`cif¨«³a­†ª²ô9Vý/_è¿ôa«é§÷v?}ÂDÿN‰~" ŠÐ?N ïF¡?ñM>ö&3^…‘…ׯÁ…¤Þ¨ø”Œú}ïGèCã®>Oúj1}ùÙéÉqWà ¯3ç»ԟ3{¦ø/b¨¨ãQ²3ÏIö3ÇÎ{'7ÆÀ cxäÀ{õ†}à÷ÀÃgNyæ\`œ9޶VæpælÔÖTSQ[¾tÑ|øú3D§sQŸªýï›ÌN¨¿Ô_ÿÓFxÅrðŠUð+>¯øÂ¥«×oßó ‹ŽOÉÈ}TXR^]×ÔÚÑõ²·Ÿvæ|˜÷™ƒ²ÓÕìëyñ¼½¥¡¶òYñ“üìôä¸ÈЀûw=Ü]œÎÛÙXY˜êiªíÛ½cÛi ¬þÚ5Dvx?°žÖ‡RèBèãW ´¹¡·o&Їc¶ª£Ÿž’HGÿúµ+Núßlf黰ɤ|x“Õ´ôŒL-ÛØÁ&»{Üõ ŠKNÏÉR\VUÛØ‚®/Ü0,Ü8^¸ùªÿá·Q¬þ`R¿±®ª¬¤0?'#9>*,ÐËwáŒíqKS#=­)òq2ÈÇZßæÎÁ?'ùŠE%¤‰ìšz†Ý–!{|r‘½®±Ô‡ì¿L~lÓªOÏþÇtÙ[PvPŸ–üñ ;ñãAöé~<ÖïjXJýy¨ÿ'QgȪ?2ü~*Íëè4]í€~- ýŒ”ĸ¨ðà€)èPè/ôLR-2ÛöeH}n>þ B7In–SPRV9 }ðÐá#'¦ë» _+–ïõgÉë1 -ÛñX>Zß½sk¢ïêjªíÝ¥¸UVZ««ð#çŠe þ¢©êÏ/<³ú´W¼ -Ý9‚ÂpçÈ2Ü9ðãÑ¤ô쇠>Ü9-äcÃwë?ÞŒwNxŸ·çk—ÎÂcvH_[]EYIANFRLDHP€‡{¼‚eìKØèá¿c!<5¬¥þ¼Ð‡½þH¢ÏîØ_ú/»;Û[›j«*ž"ôSIô½úÎNÎQ賡Ã7±ÈH}7/Ÿ€ °ˆ˜”Œüö{ö«ëè›……s¸|톧·PxLBjfnAQiyu}R¿w€Pì·ñÙÕÿ/]}T ð%8 ÛñÏÁ¾W ~sCmå³§f§%ÅF†<ðñºåæ|Ñþ´õ1 ] U¬¾”¸ˆ° ¨¿ -©ÏΠ>+ð‘Ïx–ðâR²[!¼ª†Ž‰ù1ëÓö]ozù<‰˜ôØ^õ ê}ÿdÿÏ|ÕGêCø×½¯º;Ûšê«+J‹ -ò²Rc"‚ý}¼nº^qÏjzjXJýÙѧWý“{=2ünè-”¹þ^hsmÍ€~YI Ÿ™šèç}Ç㺫³“BÇÆè+ïT¤£/H¡ÿµ‡Ù=¼Èl°ÈË98¹ÈE•Þ²Uq×^5M]C +TwÝ`ßB"ã’Ò³ñ¾Õ’uwp¢î 7[ÝýkrÝ…C*ÁDÝÍLMˆ ò÷ö¼qí²ÃÙŸO5;¤¯­®¢¬¤ '#)¶Qh?7×JŽåËØõ!ý"¶ÅìË–s¬äâæYË¿Ahã&ÉÍr -JÊ*´2;r‚*,Á‡Ng÷ç:¿3:=pè´À¡SVü$?;=9.*4À÷®‡»‹Óy;+KSC=Mµ}»wlÛ"-± Ôç_»f5J¿¥Ç¯€Ra‡Rvõ'Wý‘á÷Ch±¡Ï¼èêlki¬«©ôççf¦%ÇÇD„úùÜñ¸áê|Éᜉ¾Þôׯã£Ðÿº3Ž{K‘{«I÷ÈEVÓÒ32%ÙÝã®o`hT\rzNþ“â²ªÚÆ´oýhßõѾ͡þ'ºúhAÞÁ%‡`WGkS]uyIá£ÜŒ”„è° ¿{·¯_½táÌÏ'Ž6:¨u@Ey‡‚ÜfÉMHýµ<_æÞ´ÞDúõ?¡ôrôg|Ò_¸tõúí{¾aÑñ)9HýªºÆÖŽ®—½ý„úŒ¯mõiéGqúÁþHO£ª¬¤0?'#%>:,–Þö8-½CzòÏ£_:ßÿ ¿jýf(õgE¢êÿŽ›Ü(ªro Ëõõ@™koiª¯©,/}ú$?7+=9!&24ÐßçÎí®.—ìílQhãéÐç§ÐÿÚC.òw {̶„Övù@}1IzÛ=ŒÚ.áž_v/—Á½žÉîý1ƒ{ÿ›Û=h»9ÉñQ¡dÛ÷,Mô´ˆ¶»·Ýu´¶ »€Ùû"õ¿ŸéÒÙ¦ž¦ž¡©¥•ùçÌð罆ôãÌé?ïÏ›téœ .ý{vn——‘àãå^õ#ç -&õ©²¿€C©?«úŸÈMVýÑ‘áwh­û{_u?oomj¨­Bè?ÊËJOIˆ òG‘Ý\.9ÚÛAfK&ôe}Q -ý™iØ£íñ*n^>Aa1)ùí;÷ìW×Ñ76;zòÔ9ÇË×nxzû‡Ç$¤fæ•VT×7á¶;@¨?6ÿ¶‹¯A´!ÃïÐ)Ø×óây{KCm%¨ÿ0;=).24àþ[nÎNçíl¬,L u5ÕöîRܺEZ\©Ï»³êOÃÞ|óÏ ï:ˆ/*.-»Uq×^UM]C +ëÓö݈×—”ž_[mC ùÚÞüú—Î8Râ¿€×ÑÙÖ\_SQZT—•šüÀÇë¦ëÇs§¬™èh¨‚ú[e¥ÄE…§ÆgõÓ£†µ¡ÔŸ }†ªÐ~?„5 ÿ¢«£­¹±®ºâYqaA^vFJblTX$ö¼éærÙÑ"[YšêiSèƒaRÿïeï1/.»4ö4t LÌ!ö®¸Þôòy›˜–•ëVQSßÜÖÙýªoà5bÔgØ·ÙÕÿø­È¡þ@”‚¶æ†šÊgO?ÌJKŠAì¹9_´? ì™ ööì1—Ý/QšS‡éÓ“ÅŸž†Ž1ćOˆÌ¿ŒOWÎøèÐÕgŒßIŸ ñ#CˆOⓟž*ñéIˆÒNÎ/8u¨am(õgSŸ¹ê¢*U ¯çeWg{Kc}MeYIQÁÜŒÔĸ(ì{Ïó¦ûÕËŽØšD_C £//+-I¡¿`ìþ?`±-f_ºœc%ì1?Þci¼Çjšz†¦V6vxïÜ\v_1”]rß>Í—½‘á™Ê®¿·'QvO57Ö×QßeW^FJ «ÏCSŸ®>^„yïÀ¤ütõ9@}>þ B"b’2ò -Jpêh§ÎY‡éN¤>:u~}÷žéӛߩƒÔ¢Ÿ:øÔÉÏIOŽ‹ - ô½ëáîâtþŒíqKS#=-µ}»wlÛ²YbÓF¡ ükyVs­õÙÓòSê/äPêÏ‚>y½Ò«þTý·¸ê¿ì~ÞÞÚÔP[U^úôq~nfZR|txH€¯·×-÷«(ð)k«#f&†}•=;(ôvfèºHýÿ³_æßTïk_÷vïºgU§áœÓ)™S"džC2Ïó<'B‘$’™2Ïcæ©(2gLD$¥\×-n³:g­ûù|¾{o{o{›â·ïó<Ïz?¯çõ`Ôã9.$*)sRQ…”co¿À°èøäôì‚’Šš†¦–öîÞAHý×S(nAÜaÜÔÿ“õ¿.QD$hÁäøè‹gCý=­Íµ•¥…9) 17¯ûû\<ïbomf¨«©¢(/#)&Ä©¨©·wãÔ£}õPÿ™YIý˃þu ͬì]ຆ„Ç$¤¤ç–VÖ66·vôô ={1:>95ý®ÛÙº­B}¬ÿÏÿ™Gý¿›z ûìëFýW”䤃þÃCýPÿV  bÿ¼\GÐÕ ±üêáØß’©¿õ¿z™êO¼}>ؾžÎ¶–¦Æºªò’ÂÜÌ´ä„Ø¨°ëW¯x_¼àælocaj¨¡¯p’ -úŒ8ô7¹( Gîºû€ë²°qpr\Wº®™µ t]H½ zÔ#Åíw:Ô£¦>‘zÓS“dÔ«AÔKŽGÔó®koej¨£¡\W’†ëBè}+õÑÈ~ò=V×10µÄ®Þµ`ª«×78 úWNÿ«\½Ï˯üu*Ë -s3à¯X€~kÒ¯#.,€~ì×Ù³ë{õqÙߺ©OúDÕÿLõç0Õ=>6Øþ']í­Í÷ë«+J‹ò²ÒSã@»AW¼=ÝÝœl,Mô´5ÐÐçÁ¡¿UEzÄ30±°æäæ—’=¥¤ª¥glnãxö‚§ïÕ ÐÈØÄ»™¹EeUu÷>îìéz>26>ùvúÃìtÝÅu¹.ÈÈ<üaB^½éínoij¨)/ÉÏNKŠ ¾vå’‡›“¥‰¶ú@} A¾cG³³2<°Pbû&Pi@{Ì÷˜OPDBZNAY][ßÄÒÖÉÍíqÔí¤´¬üâòêú¦–¶®ÞaºÍÌÎ}œ_ØÀ¯óqnvzÑØÈó§ýO:Û=¨¯ºW”—™z'.2ôFÀe/wWG[ c}-5e9iq4¦ƒ€úß2¼ÖQ8õé@ŸD}JÕŸÁTÿ%0™ÞîŽÇ4ÔT‚n³a·1¡7®ùùxzœsq°µ43Ò×ÖPUЗ–À¡¿…EIý€ï R]"ôÔô,ôܽ.èÅai«&¦ PâÍ[½Ozdq[‘ú_õPF ôÞ¿ƒ ùõé@o„^õ½â¼¬Ô;·£naÐs²µ0Ñ×&A›BoÕ]û–SŸìÙg @KßØÂÆÑ 4 “|ÝÈ0¿–À5!QŸÆZšê«Ë‹ó³Ò’À–Ÿ=øì¥|v¶'€S §>}êÓRýHõGGžöõt¶µ47ÖU•—äf¦&ÅÇFÞ -ô÷õò t«¯£©ª|Z^@_Xà87èG€þßpèo¸1ÞF >L1 þ^D}fÖCG¸xˆ1V×10µ1†ªŸ”–_R^ÓÐÔÒNCuÿû¿ß~[Eu) ‡T÷ý’ê>~x¿©î]¨ºAW}=/œu´17ÖÓRS:%+%.ÌÏËÍÉÁÆÂˆ¨¿{×Nõ·m€ú„ ÷xç®Ýõ™!õyù…Åг£©gdní@xv"h<;àÙÁÎÞÚŸ/+=;%ÙéÉñÑá!~Þ¿œs±·25ÔÑPQ”—‘âçá:rˆ™PŸÞðUØä©Oƒúªÿ…Zõ'1ÕïÒÕÞúðA}MEiQ^VZJb\TXjö‚«“µ¹±Ž¦Ú}1ý£úÌŒ ~Þ‡Cs‹Bõi0ï/¿˜¤Œ¼¢Š†®¡™•½ L[`HxLBrzNAiEmcskGwßàð‹ÑW¯§Þ} ¤m¦mê]¢>0ƒÏýFd|l$¤§P¿¶²¬07#%16âæuŸ‹çÏ:X›éjª*ÉËH‰ ñóbÌcØOÁ¼õ›.Õ·Cœ¼{`ðî'  &` 'àãýfDLBJFNai%š@Oßг£ã“SÓh dû¶ -õ± êÔÿ0=59> -v¤¯§£µ¹±¶²´0'#%bz`àî‰QÞ=Úß¾ ›\8õéRÿ+1Í(Î ÈbfˆªÿªþãGMµU÷–z -¸â}ÑÝÍÙÞÆÂÄPWKíŒâ)¹’b‚Çy¹á`g%B/ýÍ,ZÔ'¤˜‘…𮀰8•éBæÅ&¦dä–UBÓí¦K“y¿Óa5õá?HÁ¼nļŠÒ‚œô䄘%Ó53Ô%šîqhº¬Ìé‚P€LämõÁà·³‡òÛ‘¤XdìîÅ'§g”T o»{ãdwjkº{³HÀ·3DüvÊŠr3ï&¾wWG c}-5e9iqa¾cG³³0Üe¬¢þFF€×Z §þrè/) Ña‘ÄÌÍB{C¦úÍ÷ë«ËK s3S“b#oúûzyœsq°µ45ÔÓRWQ‚Ðäç=F }˜î;pèoRÑCÞRŠùDÄ¥å”Õ´ô-l]ݽ.…FÆÝIÍÌ+ÂÂÖù¤ÿé󑱉ɷÓ3³sú‹ë2ÝE¢é1xõò×áÁÞîö–¦†šŠ’‚ì´äøè°àkW.yœs¶³45ÐQ?súä QÁãy¬Lˆú{vò(G€y'Xä~Úw€8A‰r§Ï¨k˜XÚ:¹y€E‹¾”–•_R^ ©ßÕ;0LØ70‚ó ëýv>/|ú87;ól  þÓ']mÔWß+ÎËJ½s;êր˗<Üœl-M ´±ˆ ÁŽí¤Ã· §þ–N}ÚÔÿƒf¢Ã@ÕŸ…ª?9>¶¤ú µ• Õìô”ĸ¨°b«vVfFúÚªJ -'e¤ÄE„ô¹0èƒhïR·g÷.ú›X„o#P†x¹è¢«ëäÙ‘W\^]ßÔÒÃ6ñæ- ydi[‘ú0%yóyïÞ êôbÈ+/ÎÏJMÂçåga¢¯­EWB„Ztw êÿ}#¢»Â»ÃÄÂ~˜“æá»q+*Û·jâ¾Á÷žÀMAÔ§1‡¾;ÎvV¦†:*€úÄw‡™{wÀbl|x­­pê/§þŸ$ê/©>t˜!ÕýjtIõëªËK ê'ÅÇD„Þ¸æçãéîælomnb £©¦|Z^VZBTH€‡‹óð!6°Üö ÿýNú›V¡A¼»vïýñ§Ÿ™Ù8õù…Ä$eäU4t ͬì]Îýâퟜž]PRQE·»w‰î ÛšE÷rѧÝN@ýºª{Ey™wïÄE†]õõtwu´±0ÖÓRS>%+-.,ÀËÍÉÁÆÂȨ¿—6õ×3„¿b—b€úŒ,lœÜ¼üÂbR²§”TµôŒÍmÎ^ðô½ -ßÄ»™¹EeUu÷>ïÎÐß/ÔïÎ8X“Á¾îŽÖæÆÚÊÒœô”„˜ðëþ>Ï»8X›éjª*ÊËH‰ ó¯>|!6·pêÓ£>R}õA˜ç0ÕŸƒT¿Zõý}½<þÏ~™xcïqüÜéLMEH)Éž"²/QZ¬Ù²=ä¡G¶,…)mÚ‘ж¡K²„lCÉÊT7‰6ÉÌ©©“{oÝ3Ý9÷óýþžå÷<žì9÷œß÷?ø~Îûóú¼Þ[ý6ympu²·]g‹m¨¯£©®ªÂ‚>{Ž8ýÉ~<ÔŸÊë¹R2òˆxš,âÑœè &oÛ®}‡cãÏ]H»”[PR^UÛp«µ½óþÃîÞg/úxÂ6<õÿàRÔBf€ê ˆ´ÁºêŠ’Âܬ´‹çãbxÛCƒü˜ ºÍÚÂd•‘¾6A¿}óš¥ú½ÝÈã º6ÔU_/+*à¨~ÔÈÛBƒ|à£ÎvV¦P` tµÔÕT–(Ì Ý– A:ýIz|ÀƒÏÍ ñ2M]ƒ«M-mìÝ<½ýƒÃ"8ž{™í¹­÷»÷‚çž;ñþB<Âsû_ÄkoÅž[ÌñÜC{w‚çúnôpu´³Ï5ÔÓVWUVR•–š/KýñïsC˜#1´,¢¾º¶ž¡ñ3+Î&㾓€ûNôچƖö»÷€úÐwÆù†öëeW¯\ÎHùîôÉcÑöD„‡lòrwq°µ4]½b9,P†° ATíÆ7ÓXCëé£Þ¨Eýá©ÿm0o~#æIÏ#ä0·›oÖ×@u½ÊQý¶ê{{º»:Òl,ÍÖ‚Éèik,[ª¬¤(«-9_Ù úÓ(èOÊc…x -)ÃüÀc…ØÖÁÅÝË' $|GähÈZRJFö•¢2vÖt=~ò¼ïÕÏÿøí Pp´ž‹ÝB¤ÐŸö :bP_Sy­8?'35ùì©ã1#w~»e³×—õvëÌÖ¬\®§¥®º¨¿ ¼éàMŒúx -B°Éx¬Ó§¥Ë?„ƒ1ÇOIJÍÌÎ/*«¬©oln»sµphoß½ü'ÌàãðÔÿÄ¥þ{ð#Dý—Ïñî´5ã!ågg¦&‘†°qƒ+1öé“ç·ðP²ÿ…E}ÔÿD–¸AÜ[q–AãwÁFƒÇ݇¹V,PõéN¶Væ&«WêCUU^¼HAN­6@_LC^ï©ô'áñðŽMýY"bâs$$¥¤åúÚú†ÆkÍ­ì!ľ„æðÎ&§fæäƒæðZÚî7l‚©ÏÞ‡ ÖÜ¢+Ù)Ig°æî 4×™£¹Ë@så!óæõ!3ˆ8aêóo² _áq÷Ü„ -Ï|úˆ…túF5A§o¾n´(-¬Â“Ã.<ûv¡ÂÃô ;ÒPá1Ò×ÑPSY¬('#%9o®8Z™˜õFó(êŠúoý+±Ð½Ý¡¸‚Ç5ÔVW”åç ‚ê9ÌU}Gšµ¥Ùc#¨¯j* sú’hµÅD±Ì°¡ÿ5ý‰¿ÏX.ʰ¤”Œ¼âb5 }£U&Ö4':ƒéYÛµïpl\¹ i—r JÊ«jnµ´ß½ÿ°»÷é‹—¬¬ þkdÍýƒ¬¹¿cê÷=ò¸ëÁO·›€ú¥Wó.§§|w:þhÔþ=aÁþÞžnÎö6ˆú À; >/ïx,wlctûðäˆ)à)Ø;¹1¼ý‚B·ïÞu6ùbzV^aiEuݦ֎NDýg}ý@ý×c)<ĈUùe ü¨ûáýÎУºêŠ’Âܬ´‹çãb£öïÞäïÍps²·¶0Y…§À¹}â½}ÔÍ£¨?„úÿå®3©¶â(ÃB÷!á;öˆæD­Œ5d¹Ïû^å¾™°åÞmo¹ÕP[U^\séû çN9Z°5Ðw£‡«£•ùZcC=m UeèÒRw$êOr‡;~¬1hë¯1·â¬òν‡ŽœH8›ü}fN~ñµÊšúFh<÷v÷°Ï›ñ4ž·¸ñ¼D‚ô÷Ÿî´57Ö×T–ågg¦Â¢9¹ãÛ-›}6np]o·ÎlÍJƒ:w ¼Ç’ý/ó(êKýÄ>cêC’a¡‘ÀÜiƒ®«¾YÎAß<}òø‘C`ra!›}™ 7g;+ “Õ+Yª¯D¨þvƒA >*„’§=È ÚZî®ççd¦&óàÎe½-ÂÝr=-Œ;Ù…\É%‚1ÔÇs‚U&W-]¾ãy0æøÉ3I©ÙùEe×kêoŽg Ÿ¸c ¨OC{K#¿køø%“ŽÓƒîHCÇSydˆÊ#:K˜ þxç@½Eýá©õYAý§ q°À@”+J¯^ÉΑKŒ?}pïÎm¡Á›¼6ÐìmÖ™­åW} P}Q–êÃV} -úŸ¡¦þByÅÅ*jš:úF«L,¬iNtÓ¢¶kßáØ ç.¤]Ê-()¯ªm¸’{ì’ûi8ɽùã W²3R’Μ<}`ODxÄÝÙÁÖÒtõŠåºZË–.Y$á˜7¨јí_?Ö*Ë`êkê¬Xmjicïìæ¹É?8,UžøÓ¤kšäÊÓÙÞzëF]uEIanVÚÅó‰q±Qûwo ò÷f¸ÁžX˜¬Za «ÉƒøÄ¯õF|õGIý_ùùUßó§=(É·›oÖ×T•—æ]ΑK€,“Ûèçíéfmi -ÕU_Gs™ªòb~ÕŸ1¬ú_QÔŸàã¥þ4ˆðL!aÇ%ÓÎh·}÷þ¨£ñ‰ç/¦gå–VT×Ýhjíèê÷>{Ñ?Àµá©OJ «ö÷={‚ú`Çí&D»Ò«y—Ó¡ ÆE´ ö÷öts¶·±D´ƒx€ãíx÷k2íÆ:>ê ±;Œº~¤ëçíŠæ7d]0‡>bïH+'ú‚æðšwèúá9¤Àðõ Ã×ÏÅÛy–@ç‘ævö °Q»1Ù¢>?ô‡Ø »´ô÷aê·B’k*¡¶æf¥ƒÈá_îŽß²Ù—Épsv°³²0—ÓÓÖP[ -qƪ4FŒRý/ðXžBJ0‚¢¾”´¬‚’²*;¶ë]ܽ|BÂwD‚㲓VÆNá¸ý£sÜ?‡8î;ÂqûÇíÀŽ[Ž÷rÜÃûvmÛäÇdÐhÖà¸Fú:j@}9¤@}‘Y|°õ B|Ž„¤”´œ¢’²š†¶¾¡ñZs+;GW¦o îéBv^qYÕõ[5õÍmÓ¾CŒûÇeõìÙîåîiÓz=mu9©¥B -ŽRÐáÝ£©?%ê×ÕT3¨Ÿˆ©8(~ÒèoJR_YAÊIýyêÿDSŸWBýŸ¨—:um=ƒõ›·XÚ9¹{ïØqâtlbjfnaiåÕ›wê[ïu‘FCÔù0ɆûatxhôÈã‡÷;Ûšëkª¯U•åe]HŠ;sòØ‘ƒûývx{8ÛYA+Ôi ÔõÅ„¨ãTp§¤Å,Yf;€r -ÊXŠM)ÎÄ&¦eå•V]«®©kjëèzøøiwO¢þ{ÈÜG¤Ä—ñ©ÿAýÏŸˆÕR ôõt#êw´5a)J‹r³ "9AH±ÍÃÙÞÊl3>€ÐdðZ€ÛÑôgýÆ}4õyOýM˜új@} ¾…ú¿Ì¤©ÏÓG¥>øþY³çþ6¡2°¬¼¢*.¸ÆfÖö.Pp÷â‚—t!+¯¨ ¡®PwŸ;ê8SŸ4Éd’@} -êÀ"¨à–æ‚CbOŸˆe\S¢à*+¬”–’”sÌd¡þÔIÇU‹yó -‹JH.ã8{£NŸKHÍÌ),™ðr“âo6)(œ=e¬³Ç—ÏVWksã†ú:šªJòЖHˆ -a-f  r4ƒåÒáí£©Ï{êS»>MýïùþÁ©ßÎ"ú-A:0°’š–Ž¾¡‘‰¹ƒ«§Ï.ÿ‡?s>9ýb~qùåë·jšÛ;úÏ^ôô¿¢mü‚û'Qp‘GPÁ}÷æõ@ßËç@}°HãÝ;7¯T”äd¤&œ‹Ž  Ú·Û×ÓÍÑÆÂÄhÝZ]-5¥U+ÙIÎà!õ±üfâŠPIU´ØÈ¢EXdt ‘¹ -”¹È܃GOž¿ìÅÔäìAy-ú{_<Çqii¼{ûÆ•ŠK3R΃aX /7G[ SB åUøÂî-¨»‡.ûßáÑÔŸõëkn1¨Ÿ„©à‡~¨¿…¤>ìVÙR’‹)Ô'ìÌGSŸG:¦,[,)%½RAY][Ï`=ÃÀD¿†~›‘SPRÁðAº~.¤›ˆúØ#c¤koi@¤+¿”1=å| ªP¿uaï·â"B þ¼Ö û¨O ó‚E"b‹—.—ùz÷:züäÙøäôlö ØK\À‘i^À.¸€x÷”ÀîIeîžÞîNv–[6ãÝ£¢ '³|)$ecÎlÔŽ¦+ý¸?šúßBýaõ!Òÿéê ©_|œ–öÔ—à¿ð“޶àä †úºcÔ‡`/ÄÉžCSŸçK½Å G “STÁ Û¼ÅÊÎÙÝ{‡ßþàЈgbÓ2s K+¯Þ¼S×ÔÚÑEú QxäÃ$ûí‡Ñá¡A²<~x¿³½¹¾RVœ—} rR¸wç6g{+3(kVk€;8‚ŽRo§¢Æ?Ù†Ë Db(¨à8&ÆÁ# F\RZV^QYÕµêšú¦¶Dýîž>Æîùˆ´ø2>õ±_>þÔ~b ôõt?1:Ú .Õתʊò².@G1îGb¸Ø[›#14U'}øüH¤„NOMý‰©º Ž4*rP^:ÚP¦a³õÁÇñ1Ñ‘á¡Á`dOX­–fPæÖêjk¨*¡Ýºt±¸¨0Jö\AmL}²ÅÐØŸþ#ýËàß àÜ,Ù‚sçÍ'ý++¯¤ª©£o¸ÑØêíV¢Þƒz›t!;¯˜]s[ç8 ãL}èG {E€®‹ºÒ¢Ü¬´Ä¸3¨Þî÷#ëí&f½EC¼1oî¯Pø™ÔŸ:ç¨7 þ,9X aQ røPÒu:61•ã |Ëv¹‰1Á l@'°¼†O2>Gñðñtu°171B I Ee™¤„¨0¦>E ºìóþÑÔçDý¿¹PŸ˜¬@ý†ÚÛ7®T–¢öz0pï._O7';+3c£uz«1õ¡Î-‘@ÔŸ¢;ÌÌŸ‰íJ—}< -æXÛ-pÚ-æé_# GWOßÝþ‡EFÇœOI¿˜©üòÛµ -í=yö¢·S„á³ñë-Xä,y÷æõ@ßËnä{­uwn^­,)ÌÉLMˆ=´oÏv/(¦FëÖç”Q%`rŽtâÜt0ÇF}㫸JIMKGL}AHs )9%ŒÐÏ_öâáj|ëða¨1:24j ¼Þþ;Ã÷ì‡æ“Û|9¿¸¢¦±µ­£ë6»à>y_N¼âMãKoà½Þ|ë«Ê -s3ÓPó‰EÍ'ØÏÓÕÁÆÒÜÔH_›¥ -‚´JAVQŸ;Ž9Aæ}â1ÔÀ¾€ºíôðS\Ya©o´_mi€ÎZ9NŽ?qd‚ìïíîlI†Úª§ÍRSA«šëB’úŒì‹é‘ñýŠL/¿Ür1§odjniëèêå 1;{<>)åbVnQYu}óÕkÝ=}÷~#c†¨?õæÝlí–ƒwÈn±Œ =~„µ «£­µ±¦¢8ÿrzjr‰#1Ñ‘á;ý½Üm1æt ÐIÌ¡`ˆCn…UŸoQõ¡A–6‡ 1ŽH<ŽdG^QyuC »oàþÃÇCÜç/È­›FÓø(šúxÑ8ÐÂ`MzÎBûÒÇî֥¼8/ ÆOÃÛÍÉAM5¾#È«>_KÂlˆ8CýYR» N1¨\ï[ãÖÆÚÊÒÂܬ‹©gN;|`_dxH€‡‹£­Õö­&†ú:šê›À`V+ÊAq…03²/î'Œr@9L}9E_MÝÍ ·ÖvNîÞ3å¶+·€¹θ0Ì §þLÌMÒ0w¯¯‡À\uyÄ#–€.·f m ,·ò²R˜ú’ x”ãQÿ‹òm›©yHÉÈ+*­Û¨ª¡ET´ÎAa¨úÄN:—–™[XVUߌªOO/÷Â8ˆ#øþµv³:‚SÜ#Õ,‰8‚µ%ùTõùGTDH (’õö­?lÖÕRß‚¤(›‹ò‰y0 "¦ÇP_4õ)“#+§¨[ÝÑöKS]U|3ýüÙÄSq±1Ñ{"Bƒü¼Üœì¬-ÌL tµ4TÁ`”`·¥WòÉþßÙËã£þ73ÜVF~Pn—rÎ>¡Q8¾g/dà”5Q){ðèɳ‘±ñ/'^M¾¡b&Zné^ðfŠ”ÁÁþv¯·çÖö+ÍõUe…PÏA:Ø»;4È×ÃÅ~‡P_OKƒ¢r[>ÊñÜv®áï>p•Ön¤ÖÙÚÎÙÝ'0Ïm]FNAieß·mË„ìoÙW d¿ì3ØŸó„Ü< Hïbœ^Y…UkÖ+«²´õLÍ-m\=ý‚ÂPÊxn[Gw[”ûõé”CVp÷ÎÍë¿þÒU° ;ãrÛŸÛ€ÛÚn ÉØ°Z ôJDý…’ -¢Î rBÎ o xUÔ4u  ûXÙ:¹Ýçî>—.ç—TÔ6âîs·¨?Ä»‚Ós¼‚d÷©¯.ÃÝ'wŸÈ]Áþ^n޶–æ¦F:šj H°)´ÌáŸAfAÄóê‹¢>-ÄDc}ötðá}¨¬H^®¶4ÔT”äd^LMN8yìð}‘á!¾ž®Ž°ÚfeºìK‘²ãL`QŸÄ>Cý/y<ÆñÂËU[AÈyùïÜsäx|rjzV^QyuCËÕkÝ=}÷î?|üt˜ƒR6ñz -Qÿý‡Ù¸-T_M¼„|à.8ÐRÐÑÖÚXSQœMðL‰#1û÷„ïô÷vs²µÚ¶Å˜ 9(Ë‘ ˆKmù¨Ï¿Î+¤ˆ3¨ÆÒ!Π£«—_0 ä`,9b4 ~7»o24Âyþ‚\»i´vES{Òô»·S“xa8#CѾi  ä $$ÀÛ݉<ƒZê¸üÈáò³„¯ü0²/îÇP_€ú´ SÔÇ!&ÜRŒ*kÏ­Îk°×uUeðÏôógOÙµ›}û²¯Ø_‰e%ûcdÎOˆÙΗX I0NF^QiÝF*½ÖöÎî>!QûEé½”ÍS[v? ¹qaN}¡{ÎÆëccµm¨./Ê£«­Ÿ—«£ R[}m–ªòú5`H–,ꋉqÂî šÈÒïÐDV)­SVÕÐÖ341³Øáàâé åg/.?)Dù©o†3H•ríøÏà§ò©38£ü”àò“xꔟݡ¾.ö;,ÌL õ´5T•×) Nd®wyBCýYQ‡¨ÏA2‡*+»» bÜ\_]^œŸ‘–’œpâèOHöÑ?é²NaV‡Y±IÌBûb{üÔÿ+ -¯e¶Ò²òÈlqúˆq6˜q^²Äsi9…¥•uMTÈ¡Q°Ï§Ï^ÈÈ)@¹Ò~ãæ^˜È šÈï0‘דˆúÔÞ‰.?¼‰L¾Æ 3úLÈDR’`"÷ýìçIÝA–ºƒ -X–.^( [á„Ùñ=†úB©OË0v9bÔXÁ]ž¢Ê -òr£t®¶²´07 dÿçSqXöCƒì;€ìo%d¤n­–}˜¥‹öaÅçáD#‘a°ÿ¥G8šØRˆ#«¢¦©c`ljneëèæå¼+rßÁØãñI)³r‹Êªë›qt³EŒ›ú,ã¨ÿ–dÜØ(ŸÙÖU–b³ýù$2Ûˆ@wgЭ?lÖÕ‚Ô—“á!nò€9‹­à!œ!}$ꚺÆ[¶YÙ9¹{„„ïAí'×~`ínßíÇwpdlüÅŸ¿ƒÞwÚÏï‚í§8/+=éHL4(’¿·›“Õ¶-ƺšê*Ö®¦FÂwÙóc¨/šúÔZãõGQŠa±A^:;Ú`³«HÙOŠ'e?$dßÉÎÚÂÜÔx³ž6KmÓÆõkVcìO`Ÿ}JdþB³;&ÖæñޤþÉEKqR3Ä–‡¸#'qé—ó‹+jZÛ:ººÙ}÷>æ<!{ !›þÏû(eq¢Ì–ì‚dDNMðÁ@?ûvWG[kcMEIþåKçÏâíß-g‹§£©†§ '½rù²%‹Q"0áÄM}¾}†ú£€êKGßÈÔÜ’:„Ñ1p“SÓ³òŠËkZh#!F‚öníÈ‘ü—ÉGr$S“ÄÂ#¹KŒ¤F’} £‡ˆCèál¿¡¡ž–Æ&²þ€¡úóí|1Í„y3C}AìÓ¨OVbÜX9(ÅPYûØ·o^o¿ÒÒP3SöÂý½=\l­¶o512ÐÕÒPUÙ°ª«ÄùûïÐŽKr±ÿ …}Fö¿à !œE8)YyD8U m=C3 *¼Q^”± œ±&*c”Øò…l¶ˆ›¦'(¶EyYS“ãÇŒŽÜìçåêhcinj¤¯ÃRS^™%·"Üܽ–o&_Ó.¡àLl\=ý‚ÂÐÞÅNJIËÌ-,«ªo¾z­“^þýÇlêÏÿ„Ô´0ã¨þ "K"ëOUiaNfÚ¹ÄÓq‡ìý1,ÈÏÓŘÉÿÙ/ϧªÎ-0Qg.FåK¤(‚€ôªØŽôÞ{PÀ‚" -H^±Ñ«%v””ñ*×–Irgüp×ûî½Ï9Ö“Édf¿ÿÁû›ßzÖ³Te‰LØ›ð_”a/bƃg¡þLÔç¹÷Èæ&_²ÿäñ˜ìþžÎ¶k—›زŸÈ’}OWG[0]­MšªJò²ÒkV¯"°¿dñ"rûs)ìÏb°ÿ 8vuùæÍ_ÀªOvW†òZc GW/ Ü>á[®R„{22ölâÅËÉÿ¾y;•p\©ÏA¸wp b%yúøÜW[ëªÏ–åá(¹á¶ékoÖTWQ•–X%ÆöZ>^QŸJ… -PŸŸãþQPV'ÚÊÞ™Ú„ñ° s OŸ92¹ÑÙ ›ðÁ#fÒ×ãÒTW]YVœGnÂý° ½Ým-¦Ý?K/7šÇ»P˜G õ§SŸ-sÔÁ -êòzòÕ°ìƒÏÝÿå’ýëW.5Ö±e?>–õUg S#}-׫«(ʯ•’\½RT,†œûsìý›Qk)À¡î*©­ß¨¥khjiëäîí´{ÿ¡è#‰)Ùù%å•5õàµíÝ}7ïÜ{øøé(tìÅ×z-&òZ¨Æ@éµgNæd¦Âypop€¯‡³½•™‘ÞÖMëÕ”¡«DWbÀ-dî;­åA*³ç@*ÓV!„²ŽÅÎÉÝÇ?hψ˜¸c'Næ”VTÕ6ÀÜuôôß„ûgÝ?/^¾êÓ¨O¿&Ñý3>:ŒïŸ~—Öæ†Ús%§Nž8q`OP€»³•)E …½ -Éh6C}^?†úÜ©OÍ5Kö_£‹ÉþðTÙ¯¤d?.&2lßî ?/7';ksC=íÍÖ©)+ÊÉHIˆØ_ -Øç_Hˆ …ýï¦`ÿïîÄ?äÑù†«ËGVw™€°h­¬‚Šºæfm}Rk@k#bŽg®¹õ:¸‡CããÏÉŽ½Gû“ÜǨO–‚pcÃC@}À•€‹>€ó÷vw²³4ÅZ«¦$?MkqxÀ·RáG©,Y).É:€L,lݼ¶ïܽ?ügjž«©‡PÈU8«ðÛC™¶ -s3S“âa††ú² EYiIq1¡å˜ú ÀŒˆ /bïBf:xðêsÁ>Ua²ÃD‰±»L•ý–Æúš*}ò¯ÑCwíô÷ñtu´µ236ÐÝŠ±¯ +³°/²Bùÿæ_HÊ>UjrØÙÿ‚ÇÆÑ\ºÕb¾IS|36·qpõôÛŸ”–•[túìù ¸b½·@kŸŒŒO|µÖbÀáfÜ»3Ø×Õ~írS}Meyq~vzJ⑟Ã÷íÞ¹ÝËÍÑÆÂØ@gË UE¹)|ãÕr»€æ¡ ˆÜ… -µ ©Tv¡T’Ó²òŠÊÎV×5¶\mëê¼MÞÄ×@ïÈè×°¤»·{»Ú®¶4ÖUŸ-+ÎËJONˆ…Tv‘©˜êÀ.TU’›¶ ‰ ˆ‘}?†ú3RŸì0Ub,û¤ìß%e¿µùâ…êÊòÒÂܬô”cGG±?kciºÍ@Gk“¦†ª’‚¬ô‰Ub€}eû ØØŸM¶šÁþ—=nxã¼aê ®…êÊÈ+©­Û¨¥khbië俬ö²ÚôìüâòÊêú¦Ë×Úºú>Å7®Ô§ñí5É·§SøV”—•–”²Ãmµê* -Øj…¡ ˆúóà%ÞÈ\fq 4‹€ °(\@k”Õ‰‰ÆP \@‘‡ã§fæž>CîÂjâT`~I*üN¤»ð¹ oöu»ð\yIþ©ŒêòÁ‘ÞÖMëÕ”å×JI¬E±,^Ä /–!ó8C}.Ôç4j´ß"w£CÃdÿ6’ýW[šêk«À_ -r2Ó’ãb"Ãöï ôórs¶·±05Ò×Ù²q½ºª’üZiÉÕ$ö— JSØŸËûw+þ FýÙ´æb©%ñ¦ Õ52³²söð Þs U÷ä©‚ÒŠsµ Í­×;ºûoÞ¹÷pèéè¯Ï¡b“P±÷¿ýþÇ—Xí[ÂjÇÇFž<‚#p §óÆ•K/À X˜“™zühLäÁ½Á¾ÎöVf4¼AÔÒ¨kðM ç2å¢/CSK;'wÿ ˆ%:ŽŒ¥Š Phxlü9mò>÷úº€À’†P,ý=×[/]¬­:SJÄrb ôõp±Ÿº Ù'ŠeJ.Ìp|ûc¨?3õÙê2]öÁ^z»Ú¡Èu5ðÛ¢¼lüÛ舃¡»ƒ|=Ýœì¬ÍM õ´öUåÖJI®^) -žŠý9„ÌØgdÿ3nDqét—”–UTÑØ°EÇÀØÜÚÁÅÓ/0$4,êp|R©¥ðö†Ž·QŸÞF‡±ÔöwÞšjÏU”œÊ8AI­·»“­¥©¡®ÖÆujJò2kV¯Y±ü'Dýó¡Ýxá´\¶!L4?žh!‘•â’2rŠª8 [G7/t…³O tµÃ 4u¢Xþüt,S–á3X†èèí¼N óÄ ” 'Pø¾];ü¼\m,L t¶lX§ª$7-ÞÝ@Ìc?†ú3aÿwÙŸÀ7ë£ûwoö÷t¶]»Ü|ñBueyianVƉãñ±ðÝÐ];ý}<\í¬Ì õ¶nÞ°NMYQNFJRcÿ§¥K~Ã#JÍ’²× ö?óÑàF—ï‡ù 1õéNË¢Û>D·äôì¼â²ÊêºÆ–«m]½ƒ·¡aOFÆžM¼x9 ÔϪØ'¥|ãõ$PÕâ1P°¯«ýÚå¦úšÊòâüìôäÄ#?ÝvnÇt3FtÓPU”§])B8-?å´³ÿê?ýBÛPAE]s³¶¾±¹ƒ«§ß´ c’Ò²òŠÊÎÒrA“‡ryýæÝ'r™F}Ð$L}"—Û¹”ägg¤$Â6Ü¿oC;KS#=-ö $,(° ‰ëâM0Ìc=†ú3Qwxºì£›ìåá½_n ôuwܸÒÒT_ SR“™žrìèá¨pâ¿ð_K3c]û -€} Àþ -„ýÅû¤ìµþž’}æŒý¼7ƒÒ²à¶JBj­‚²:j®‘™•³»O@О1qÇNœuB-@À†Ÿ<º*ÐÓyãÊ¥‹ªÎ”p‹@póñp¶³23ÒÛJSÚ¥‹ñöçcQŸÍ6^Dƒöáœ9s9“¡A¦–vNîÞþ°EÃ:ÌÀë°ÖáõŽî~¼‡GéÁüïcÁ|à æÌ’$Î`Ο=×aZ‡»vüŸý2ÿæ:ßãø™sïçÜÑÔtçÎT¶VKö=!dɾo’( -¡HF$QÄ·,YBÈ.„Rv_KˆÈ’´ßi›æ6·3¿Ü×ûýù|·Mßsî=ç~ÞÿÁçùy¾ÏçÓ‹5‚Ô`InÙ¸N£ïá@–ñr5©G>Šú aÿÒÄsÊþÔÄØè0¬ÖîŽÖ–¦†kÕå¥Eù9™4üÁ‘'Bƒüxy¸:ÛÛX˜铨—•–Ø,²‰ÀþhÁ2±O´ÒØö—ò8ÐöQ£]#À`›2f›‰…­£«Ç~_ÿà°ŸNIHIÏÌ-(.¯®k¼ÙÚÑÓ7ƒJû*íKV¥ýð…•¶¢´(/ûBjb|Läñ@?ï½®N¶–&†zÚjÊ -sÙFx€;hûÄ -Z‰OZpÝFa1IyeUu-] ¬LR&.!…–•[XR^SßÔÒÖIïêßçAïg/ûŸŠÃ¹#h - þžN¸•úšò’ÂÜ,ZjbÜ)P&À—PÆÔHO›#W£aæ!·¤¡ñ(ê/D}ÂĘeÿ5”ýç¸ìOÞ¿7ý…ÞÕ~ûfc}mUYIaþ¥ ZjÒÙØS‘áÇ‚üý|ö¹»:Ù[[˜éëhilUQ’—•’O ò¯ -o¶5ékfÙ§vìâï«O  ùv5ŸàÚ ›DÅ¥äUqL­ìœ÷x¢FN4Ú¬¼ÂÒ -̶.Ûõ1Û[€ú$Û~O²íÅ3ðÁ6zgÁ¶‚ÜLZJø?,Øÿà~V£U…F+!£O\ÙÑÏU´ÍˆË Ò $§¤² VÐ.¼‚¼`…FDÇžKNÏȹ\\6~¾2oѹ<{Êà<¤wµ¡<¬„‚”}ñ|císs¶·2Û¥¯£¹MEINI³VCšfu_ú(ê/ˆ}βµ]ø“G€ý‰ñ{w‡úz:ÛnÝh¬¯©¼Z\—‘ž’ Ÿäïëíéîâdgenb¸SGS]m‹’¼Œ”¸˜ðFŒýUöɲω}ªì/úXdcÙ–wÙò¸êC¡Åh“WRU´c´qƒŽˆŠ=ûsá¯Ú†æ[íݽw†GÇ'¦g=! öì³í+Üh>˜GÜéëéh½ÙXWUV|9'#-ù\lԉРÃö¹ï¶·6g¡MÐ&@  Qh¿æ&õ¿úHrñ ¬]‘¼i#3+{g7OŸCGŽ…Ÿœ{z ÍäôÃGOžƒ4o··Ôô´$b=œž…ŠÔÝqûÆõk„4é MtDhÿA/w¶@œ3ƒ¸ª õ𣨿 õÙÊ>\8”ýW¿À‰ƒ‘LMŒÞèíîhmi¾^WSqõJAnÖÅ´äÄøÓQø›½=Ý\m­ÌŒ õv ì+ÊÉHŠ‹ -ƒ©øÀÕÿø;ØšÄ>Uö?çÍSõ™d[# ´|+)« ¬¦¡­ghbaëèê±ß×?8ì§è3 )é™9D¡½MÚq(´ ÐÎAÛBÔ' Ú&Úz»ÛÚ*¯^aÚ£Ph=÷8ÛY™íܱ}ëEY)qÑMë…0Ù¾c'wú,§8< ["â›–”ahciëäºfPÈq˜A‰h•Và@ìê€4_ .& #߲ϠžNˆÕå%…¹Y´”Ä8@CH€¯÷^W'[KSC=m–6(ø%"© ç¢Nã Eý…±ÿáb²×!ÿòŒ<‹œ<6:<ØOïjomij¸V]^Zt9¾99!.&*",$ðùÑ–f» ÀÒÛT•å¤%7‹nÚ€°¿úGdëØ×¤±©²¿ÔÇ^gI°ý—´íj>ÁµPŸ•STÁ}ÖÔÊÎy'í(“l…¥5õM-mô~ öPÿåë7¿¾clI…í¿—ˆú³3Sc#Cô®¶–憚ŠÒ¼¬ ©‰q1‘,²™Ù4Ô”æöY"ö¹Ugç‰D$ÎJ$¹ƒdä•UÕµt Œ-l]<àö OA"Ò2s JÊ«A›VÐf¼½¥i3Ï ÂÚú}õ¦>«ì“>†úGNž†32t§°ûfSCmUyIQ~N& }tÌÉ¡Á‡xyìqv°±4Ý¥¯‹±¯ +%!&]F ØšÞ -²ì“}æ¯TÙ_ÊãàéZV%À&-¯¤ª®©£olní°Ûð-²Wa/fŸeöÙ—¨Ïþöþwv²-ÖgÙPŸ}0ÅÙg r3ÓSÎDG„ûôòpq°176ÐÕRWU’Ç`['ȇÀ† 0Oå¶:Ë`1"QXTBZNIeˆƒ‰ƒn/ö\rZFÎåⲪk7к3Œw¦>ì ÏLDØA¯;h’mU•]¹œ“‘–|.6*"4èðA/w–8Êòs#‘1„¸¤õ(ê/ŠýË>ùŸÏ‘“¡ÀŒß»;4Ð×ÓÙvëFc}mUYIaþ¥LZj|udxhp€Ÿ—‡«³½µ…‰‘¾Ž–ÆV%y)q1áû«~@mf9‰}ž9eÿ¿íÿÝ7O›ý†q Q_@h=ØVRVAYMC[ÏÐÄÂÖÑ•¬³Ñg’Ó3s -lu„½†GÇ'§bêØH}À`[ -õaýž>‚í‡ÀÖ×ÝÁÛ¥Œ´Ÿl'Ž9|`ŸÛn{k²ÎÂà‡½·æZ{ðÿ¹Í5ö%ÄÌDPe"¨ƒ†yÔäò9x4õù‹ÙùEd$v÷€8 qÇ÷ïÅÅùÀG"ˆ3'i) qÀæ2…!´}ëEY)Pg=Re"SÎL¤NãËEýE¨Ï,ûLìÃj}þ°ÿ°?zwp ·c¿®¦²¬¸0ïRFzJÒÙØèÈðcAþ¾>ûÜ]œì¬ÍM wêhª«mQ”“‘…¦'¶^…®žQg¨²¿ôÇŽ5 >r-/éZÜf×äUظæíxôxdL|bê…¬¼Â’Ššú¦–¶Nzÿ i/Tg_¿ùõO×ٙ鉱ѡޮö[Í µ•W‹ò³/œOŠ9~4ÐÏÇs“¥©ÑÎ$×`î à6û{›Å‘Ï…_ÏŠH¶%„ZR†=÷î÷ 9y*.1•ê”êtцFÆ&¦fðñêü™!ôìñ,4¤±‘¡zW[ ¨SQZ”‡Õ9 ê9äãéæloEf¢’¹„øõW¢%ô £ý…*û\zõ—†}täö_CyñìéãYÔ`ÆF‡û{»;Z[š¯×ÕT\-.È;˜ž’:}·¿¯·§›‹£­•™±ÞÍmªÊÐô$6‹lB¶Fm=Uö?÷qPQf™X\·AXLBZ^IU]SGߨÜÚa·;a[ä®4Â]¸Ívõb®MÏÌ>Á\{;‡kóRÿc®½À\»\ë§w¶µ4Õ×T”æfÑR¡Í†A›Ý¿×ÕÑÖÂÄPWK]MYAFr³ÈFøÿk0Ö–3±Æ­ª?ïb†"»§˜X+«ªk$¦khäþøÃ'Ïõ_O1ÆëÆ76ûç ËßE0:<Ð×ÕÞÚÜXW]V”Ÿ•–wþ\(k:šHf¥ÄD°Ìò¯FGªÜ|Lµ¿úßRòAUˆW¡P…dåU5´õñV{0ŽbjfÞåÒ*Æò1âyÁmè*JŠ ã«Ht¡åD¢eŸÇ¦þ,ÔŸû“È``×MŒöï€Ä ì××V•æf¦%' />qÜÇËÝÅÁÆÒÌØ@çÀþ}Šr»¥%vÁXoÙ(ð Ù§©?ó㨲 ¨¡¡Ý°y› ˆ˜Ônye5Mƒƒ‡lˆ©Å.K ;Õž"ªM"ªqC}’jïÞ¢Y€QêS¨Ör­¡– ZBLdXp ¯·»³rÙý* -{¤%D…¶oª·ýüiPc©,ObœEoõj´ÕÛEÄq@t qò‚.t&":>9=» ¸œ¸ŠÝÓ®âçäC\ÅÇÇÐUìélCW±ªôr^fjbÜù³¨ yâ.d¨«©¦,¿[Z\TˆÄ:‹ìeˆ^/y4õgÃ>“úxÁ_H쿆]…!°?2<ØßÓÕ~«åzc}meYQANfjRBlÔÙÐà ÿcžnÎöÖ¦Fà2jÊ -{e¥ÄE¡ÃnÞ°žýœdÿôlÏòæ±31³‹—,[¾bå*¬²[ÊJƒÊî? k„¡æ P =—”–•_TVU×H ×ÐÈýñ‡O—"§ës\öÑăÑá¾®öÖæÆºêòâüì´äøhþÏÃN¶¦$ԤġꡟUvA}âÏóÒd9'Ä*Cpw -‹IÊÊ)©jà³èèzäØñ“§ÏžKJÍʃ€ðöuA@£÷Ç=ÁÔÍìBæÔ… X”qPo×mj@1@_/7tõ´ÔQ’Ø%Ä(C+!!¼ÿd%DË>/MýÙ¨?Möñ$3ùÇË稹ºßèïé¼°_WSYZ”Ÿ“‘’~šò톺ZêªJò{`¬…Áf6 üÂIö¿emz¶9<ÒÈ‘Å&»›ìÊŸLÛ%) C«®­olneïâîí“p)=§ ¸‚PÙ.6•5ÎÔŸjHe{;oc•-»œ—…Uöô‰ãÇŽ¸:Ø21ÐÑPU’“•ƒ¦·yü{&Ó8™,ï"¢´!â.þ´ŠÀ¦­ŒµÆ YÛ»xõ - н˜’‘[H–¡Îž~8‹cŒ³øæ Î"« Ýhj¨2”›‘r162<$Èÿ¨‡‹ƒ5$¤’Á ­]Í¡ ñ0¢¯úÑÔŸûÿcÇþ»w¤ì³°ÿp°?4ÐØo½qíj]uE)þöĸ舰“¾Þ®Ž¶–fÆ:šûUåÙß¶—Øé²?ÚhÓ³ÍáqY„´¥€4rf· ŠˆKí–WVÓdš¬ÿ‰Óg£.$³…™ÖÑÓ?x÷ÞØÄ㧈i“0\ÿaN×§T >ÿ¯^>ÿíÙã‡c÷F ñu´µ\k¨­,e1ÍÏÛÃÅÞÊÜXÿ#“EH[BÞ{ž#ÌèÊV/ü~ñdDëpD¢âDÒ32³´svóò >A½‹·:º Áúý1ùfŠ»„Hê¿{û[Bè.öt¶±ßÅГÇyvÄmèÀ~eù=Ò⢠Ex;õ—AD#½_ðhêÏJ}–ì„}¼ç¿Ø½;t§¯»£ífsSÕêò’¼¬´düñÁAþÇ<Ý\l,Lô´5Ô”öÈHЉ²¿vºìGËþ§UõúßQGv%SdE%dH¤™ZÚ9¹yùœ -=Ÿ”–•_TVU×H̘ì8Ãd§X&Ë`ÚLö˜l_w;˜l}MEqAvzrBL̾¯—›“¥© ME‰´µk¨"‹ÿ;ùÛyôÓ9\FJZ‹ëˆy ZØ:öô9~"ŠÃ•W×563ÚÐø£'ÓÚwñã6ô`tx ·«½µ¹±®ºGCDîÎvVfÆzÄa”Ü%Œ#£-ÅJÄØohÙçÅ£©?Gì¿e`cÆ,fôîàÞ.ŒýúÚª²â‚ÜÌÔ¤„ب³¡Ì¯77™Qß§$·V_h'»ì/¦È>MýÙШK%š°˜¤¬œ’ª†¶¾‰¹µ½‹»·_PpÌ,Ù,²­íÝih¶Ø‘ö#êÒ0õ™H»‘VV”Ÿ•–wþ)²6 u4Õ”åwK‰‰ÀŸß€î=".y<–Ç!ÍŸ?ý2þ—q§ð.2#b¯=ŽRëPZ¿¶Îž™#·QãÆþîŽ[7P*!êPÔ!ÿ£®Ö‡L t4Ta= #AÈh=áDËYJ4­Ñ«ñù¦þœ°ÿž û/_üް?Øì¹Õr½±¾¦²´(?'#%1.:2üôÉ_oWG[K3c}mM5…½,ÙçgÉþ÷ì²OöLo' -\´xÉÒå+~úÙí‚¢âÒLµqt=‚F‹I´ÊÚ†k-m=ýƒwïM<~Šˆ6 ³Å½È¾'EßKtùáð Ýéélk¹~õJeéåÜÌ”Ä @´@4ks}m UE9Y¦ÇòaEמÐx”Yˆ˜§‘³Á^«ké›YÙ;Ãe $.cFNaIÊèVG÷ǽ}7KFlÔ÷- -™ÑcfF7!£ª²¢¼¬Tò2úxv²µ`ö! Q¡[6 -`'ZAœFŽFôå)}µ¦>÷ØÇ²öÀ>x`ÿWŒý{#Ãý=·[o\»ZW]ŸŸE~~pÿ1O7g{ëC uµ˜²¿ë –ý ÙG“MÝz´9¾é±n”^DuUK -ó !â"χP2Y™îa•#žDs?c wSó¸Ô—;ö7S±ÿÎ bÿþ½¾Þî›ím-àéêŠ2Qa^¶,Ø7ÚñÍWúº:šhÄ.[ Ô‡MxFÊÙÐŒÓX©O¡¾0,•f`Øå+רkêèéoÙ¶‹‡ëé}ô[€Ø0±ÙùE¥(ήAœÄ2âì%gopœ½+õñÿCë£8{ŸOÅÙ*ÎÒ’b#BO÷÷=âµß ÖCìF- øõ¥‹T•e¤fØ)üq¶P3@(’ú¨(©.\²|åj¤šD<2‰àƒN ILåç -Ee•µõ¸oßí|ðð1È$)ljÈ$UŽÅù9™) ÑaÔ$rwv€ó(2УuRSV$Ç1›½‰8ØŸìãR_ŽÔÿ7ûÈÎÄÏÏGÿúì)rô0€Ìž®Nûõµ•K‹ $°ïÏ€ý]Û¯7hõ-_@V,#8g¿å1– -³(¿Î›¯¨¢†P­ÆÂ°Ææ6.`¬c$ÍR3s De`¬Ææ¶Ž[€úÃ#ꂳ&±ÏÐÒìïëíêlkiª¯¹T&æòSbÂÏž úî/‡â4ãá4ƒ®§ý9nzÆ—Oí˪G†Pô&ÒEí¸ÇÔÊŽ´#\69Àüâ Õ—›[iÈ$Â:½“oש¶²\$ðÓc# !üáv´µ0¡7Ñ:´‰€‰¨ãDÜmLæq©?‘Ø£`ÿZ¯ÈцúûnwßêØ¿RW}‰ûûH;+3ž!Pß›´×ÈE8£‚Sqß,qês3ö×õ)»b„ýŒ°ë4µuÁ°;w›ZÚ9¹yòñ  ŒMJÏ–”WÖ6\†í¦§Ͱò¥Ù(N³‘a̰­Í4Ãf¤ÄG…9èwÔÛÓm¯t=„™®6 3êÏÇ!ìLýéR£HQYm1ºl ›P=î6±°ur —œžWÈÞD#ô&’»_A;bØø`¹‰J‹ò²Ó“ã¢ÎÃ}øùx{î¡Ìжè£z\³3EsÇÁÝÆ<.õåŠý_ÈÙ3b.ýYúÞ ™v8~ ûE4ìŸ9äï{äç>gB3úºÈ׫>Ç8#66‰ižáœÍxR¨/ɲOQ–¿®Z£®¥£g°u»!ÏÌÚÞ™–ø*#'¿!ì•k­T˜= Ãì%fop˜½+õ_“¥‡Ãìу!øùî›íׯá0ƒ¶OOŠ‹ =à{Ä˃ ,Týf4ðV¡¦WV¤¾œA°S¿î(­>¢{ÆLº‘RJl¥Ä£ÈFQDLb_ 1êñ>ªG -ÕãÄ„zöô‡G#C’z¬z,ÈÉLMˆ&£èÏÝ]lÌh¥þ×JÍg­¢$õ9ØŸäãR_ÞØÇ°üü/²^‘£Ÿ€¥‡úïÞî¡a¿¢L$İ$Fpwq´µ4E4c ·Q |½bÙ’…ª$õÅÆ·b9g3Þ8€ù[ˆ2b×yóUÔ/[ýŠÖÈÄÂÆÑe¿dÙqœe©ü\¡¨ ùª¹­£«·¯`x£þ(K^„…ÆG;ïGÔ÷ðñÝ7Zšj+ËEB?-1&üÜ© ïŽá,³676ܾÕ@OG š,|9™wú’(›ê$ciE -R"•’ŠxéoÙÆ<í“gâÄØ(¥:ÁWï?ŠRøHð(z8<Øß`D)U"d¥%ÅF„BDy¸:Áy («h5À>b¢yb©è‚äŽcÒK}9RŸûL؇ÛKcäC°ýZc}MeyiQ>°Lbl$LØïfûœ`Ãò ¾Ü¼iñ5ŒXÅù¤qFÊØÏH½i2’ ¡¾`q”©ÓQfje·×Íó_`pÈùȸ¤ô¬¼Â’‹Uu W¯KöÉOÏÁc½_–ÁßÿS’e¨îûz¡í`« Á¦ÄG‡9ñý·G½ìÛkoe†š^_W[“Ž21À’ÿ¤þtö,b$œöÎݦ–¶Nn UH—œžWT -R¡Ut VÑÀнŠäîÇWÐâUý(^EEùÙÉñQ U –ÊÙÞŸU0‹T•)&š=K©û“{\êËûØÍ4żû}·»ì75ÔU¡û€qQa0aýf<ÝöÚ[ã ‹hF“øš±²p†3¶Ô“Ný ·ÎÔWV[¼ôóUk5´6n6غÝÐØÜÚÁÙýÀad+ -`ó‹/TT_ne/©({ƒ£ì]©úGÙjûI”åeçCÕøú€5Á EæÝbôãdŸH’lúN}Ée+üŽnH|Ú«Ö ­Ð,2–Ì¢Óç"bӲ’òÊZfAb©žOT*¸t"F¸ ëk.•‰ -rù©’Y´ßÅÑÆÂÎCÑJEQÜ ÖLö§æq©/ìcØÿ™ û? ýzÿî°pÿ—«ÁÔ…yÙ) ”>fÀÖ(ôu)š¡}-sÄr©Ï~Ódâ+ -2pë¼J*€ú+V¯[¯MøÕøÕÕÃëˆ/d|PIFlÕÛ×?0 ¨¾_É °ðñÏÑ¿ÃÆDÛy£åjCmey‰PÀOKŒ8wê¸?N2(zįµ4˜üJ}øÌøÃ1¾Nñw³‡®Hê´çIv‘Žì"Cž™µ½ó>ª!ãR3s ŠËÐ 6·u ­)­Ä7ø~³i%™E U?S«Â¼¬ô¤¸ÈPhH? "';+S²‹t4Õñ.RU¢ÅbÃ>w“z\êË•úÿ¡aÿ4샥‡îõõvÝloE(SY 6'X&\ öðAwG[Klkœ˜fªP¾þÕË›~R¨O¥þ¬ÙsXøª®…ƒlÛÕÓû¨_à‰°krzv^QéŪº+À¯7üú7à×Èïÿe¿<œªL¯8<;“™˜ qf3;JÄÆ*½+¬bED¤(EŠ4Dš ]šAŠŠŠXa)Ò¤Y°!ˆ kŒ±$ë¸3ÉNÎ{ÞïÞûÝ ŽÞ‹ìL2ßû'œ÷œç÷üÆF +^߯_¡à<Iýîàþ}ôŽ¶Û¶2 SGÉË -ôU˜cSJ}ÞiK#õçÈÈ+(-R^Æ‹Hs«í;ݽý‚è°rò‹Ë**/B/jd÷¢WØ‹ÄNÈ´=czQñ¢êKp Å9GSè°<\œì¬-Ì "Èy A1úî[:-¼AFrÔ—üqÔûÙcÉþëW°Òxÿ÷ïöš®×\½(9ž—•ž|8æ`ø¾½¾0B}\k]¤þ‚ ©/ÅQ‚7^õÿ@TŸ±WÇÔ4u ŒŒ×mÜlacïäŠ[Ç×Wتú¦ÖŽn>Èþ6È>G}üwøvÙ0d=²:øóÊŠ²âüìŒdzF_·[‘v÷Ãr]-Œy,w„cÒ ÇÝn*©/hF4#eä0#5uøÓrvó¤Å()-+ïxé©s 5ˆDä[ˆÈâD$£FoE"²"òr£Ì4€ÄÐ@¸°"K:-=-ueÌȹ‘¼f4~\ÜuHò8êKJ}²Ðè1Dúðþ‡Ÿ<ºïv÷-(°u 2çÏž*=ž—.èëE*ì¶­ 3Æ@}-u¡+L}n¯Ç?öª²U&U}ÙyŠ ¯¢®­·båØV´W/¿ Ðˆèø¤tÇšÛ:{îô=ìyñ’Y«?މ«¯o€úÐðȧßíé„?¿~íÊüò,äü¸§«³½ÅæëŒ‰½ª‚½ÎŸ'Gÿ[cS#¯ÌÀ¦1§ ó"Ô‡q‘ÛfÆ¥¡­o¸j­‰ÙÖmvN.>‘±‰©™˜‘U—É ¶Þê!kZ¿N4-J}œÖOdZ¯Óêíl‡ Œ¼ÿ—¸Ò }wz`§¡À¢Ê!d¤$ÆFü¼Üq«ÍLËùÔŸ`­9êOðXªÏ§oW¿ÕÈ+ص£ o[S2r -ŠË**/V×Ö5¶´w¡½’­’Ä^ÇFÑ^߉Øk±W¨w' -s¦&ÆB» ØãáâhG>œ`L[ƒ—ò ¯³ÿ2óÏ@}øîßOŸ"Õ‘ýéB·Mª‘"©FêZz+à¸MÍ­lv¹{û‡E’ãÎÉ/.¯¨¼T][ßÔÒÑÅoF¯^oF_–‘BÍèvWGkS=ñ¢3å̸¢Â÷íõñpuâ…¤P5‚yÍÂyq²ÿuG}1±/ý1^{}ýŠPÿ)P¿P¿¥±žXTBbi°~Äeì¬q«i… -df&C}ÖZs6ÃzßAŒYUtWB±¹²òŠ (ÅȲšn±´ÙáìæéràPÜ‘´Ìc…%,y½Ý~þòË1& >“õ"ki$òZYQV 9òäï ån»•¹éúոߢc»ë”S_Šßfa7bRRMS×ÀÈxÝÆÍ8//ßÀЈCXŠJOÓjt³½CrðÙˆD!ÉÉ[ É‘¡A’=·ÚšYÕ(=)>:"4´ç²¿r…ž %±Íàdÿ+=Žú“¦þ?ú¯)õ“•îjoiê_¹Ô/. C Ôâ¨?©ÇV}–º2£»ºTUC[ßpåš dYÑ]ƒÂ"£'§gç#Å®ÖÅÚ:{€bý@±/™­ú[%¦¼bÁû‘ô»G÷ï’z‡;‡KKŠ'1ïëéæloc‰îj «©¶tÉÂù -r2"“šZêÃ.GLLâÀdçÍ_°ø{U }^7rrñð Ø—˜ÊNIr„}û‡„çõñsó¢ÔÇyý$2¯^8~Jäd¤$Äܰg7t#kèFkWèàÀ”``Ù¹Nö%|õ%¦þÇOP¿W˜ú¹H}Po\jŽú½O¨>]ÕïæÈÈ+(êóÕÕÂÚÞÉÕƒìTTlbêÑ\Ø©Šó—ªkë›Z:ºnß{ðøÉÓáç¹ëØ(-xè®ÃCÄ]»oµ6ß íîÌÉ…¹™©‰±Qáûöx¸8ñ ¦ÏR׿õgJÿiÆy¿æ:-42𓂉A9‚‰©@9Z1iEc28,2&!%#§ ¸¼¢’=°2°/ïFÂ))Ú``MÌÀJ -e¦/ -Á˜Üac¹…WŽT”abò²súÌÄ„Ûw>Žúõÿ'Þ„ª?ƒ¯ú²óÁ\UÔµa«×›š[mß±ÓÍË/04âP|RZVÞñÒSg«®\»Nvª›¨ëÀÐ0ªë[¢®Ÿ‡˜€úA¬«£¥±¾¶Õ5?'#9!&2 þÛ}—ƒ­•ù¦õ«W®€ï^¦¼H Æ7W„M5õ¥#› #›##§€×­©»œääK›În^¾tbéYyXŽ®ÔÔ5Ülïì…rôÊÑäcrdh°ÿáý;=mL9:]V”Ÿž|8'¶{—£í¶­›6¬œÔÑP%íˆ Ò‚ù JNö%|õ%¦þCý÷@ý¿Sê?yü 6šRÿ2¥~Rÿ@hÙiŽú’½qª/,®€0¥…K–ªjê®Zkb¶ÕÚÎÑ…·«`®ùÅe•¯ÖÔ5²ööF—ŠEý_ÇCLX]!éßê<|òèþÝÞÎvÃJ‹ò²Ò“âá¿yæJ¾ÛÈ@WS LANfƒ0F\¥~êOcÕ#é™4(áº,^ªª¡£#³°¶sr¡í(.15óXaÉɳU—yW9984‚9IÎðƒÈÄ>+ûèF$'ñH0'› '/?S~‚ˆ¶£½>®Nö6x!FËuµÔHP*ÈË`P²d_xf܈ý8ê‹}T†ú£Œö!õùÔóƒúzö!%1. -(àîÇ£¾G}ñ{OªêÏ••ÕWVQ×Ò#«jJÅÕÓwoȨ¸#ag΄5µvtß¾÷àñÀÓáçh®ï'c®ÃCýÐîºoµ6߀˜¯:s²¤07“",ÀÇÃÅÉÎz«™ÉZ*®øÛ²øÛ Á˜ÏFo€ E¥hRâ̘z´fÃ&s+[‡]»½ýƒ÷GbP—WT^ª®­ojéèâìÕk2²/iGÿ׎„GÖÖ|‚’ÜÈñ¼¬4Ê8/÷Û¡mXõH[C…=3ARr²?ÉÇQ_<ê3» ËL¶%†€XÌðˆh ,ôÍÆºÚj†úÙ)@!d¥±¿š™P“Aê+2;-(°Ó9•ÿXª?¯ú°¨Ò³f󼕨¾†¶¾!lÌÝÛ?(,2úprzv^Qéés®\»Þp³­s¼¸~aÿ‡0×á§lq­¬(/ÎÏÉHNˆ‰ ö‡w°å ~¼UQ^½•Dü À¦*à…©ÏD%34ìG‹”éy¯c’ÒË704":>)=‹™YM]«aP¾/(ÉÌ (i=zÁªGu5W/VV”‘™¥$Äܰg·‹#“”F:šjË–d‡QÉÉþ¤G}‰¨ÿ ZÀ¿¨ÄPê÷Ã>ê77ÔÕöz²äx^vzrBìÁð½¾^n;úd¥úËXÔ2n§EŸ°êK±TµUFžLS×ÀÈxÝÆÍÖöN®>d£SŽæÂFQomoE‚‘•bFwêã' &×_(õyû‘E°ðÖ çN—åe¥So…ïvÞac¹›®¦ÚÒ% •ädæ0Ï|¶ÔoDýiÂScG¥¦Žáªµ&fÖvdhp†Qq‰´­ºLϰ{|RŽŽ}‘ì33#v$””Ý­Mõ¼~t,3õH1#_O:4Óõ«X®',FP>!û_{lÿ÷£¾XÐGa¨?J©ÿþÝÛê:ò ÖùaßÝÞ®ŽVR^Acp¡ÿË~yeueax¹fpMVbÔÁ ,±¡X¢€ˆX¢FDéEˆB¥†^E:Ò)"  -RéÊH@z;htÇ5IÖìsν÷»ß'H1˜_îùöÙûyŸ(àçåêtÏ@××mÊŠXdV.—ûŽú\å{|ªÏg­„_b —HH®Z#%-«°YeÇî}Zz†f–Ö ­¾!‘1‰)éÀjn7¶´µwtõöÿ{6øâå«ñx+D=ùóçèËû{»:ÛÛZoÇӋކjç|òøQ c}Mu”ñŠr2RkWKJ,Y¸€æ×4õ'_ü²ÒgÔy‹Î_Œ¦¶M$¸o+›N®^þAaQñITTVAT¶Ü½×ÑÕÓO¢’7´qô#zh G0´¦ú[¬¨5òótu´³±27: f„oOmŲ%$+Y ‰“ý|õÇ -}Õÿ/Kõ‘Ãàê -ë\[,ö9ó|r|tDÈ)_Xhh¯&„ú[7ÃFcê/EÔý>‘áVšúlÕ§ðETÅê¯hkUÓÔ9lŒ7ÕmjT\RjFv^aqYåÍÚz¬úÝ},mýeŒÚÊL@[êª+¯—\¹œy>).*ì´¿|7â—ž6ùmYib­âbsEgóãk2U_ú¼°ž%ÂkHä¾wïݯ¥khгÒÓ7042ö칌‹— -ŠJ+XSCÔΤ‘£òõ™‚D¦Ö׃ =µ|%átV1Ñ?tP]•4¤ ë(3Bcc‡%37Nö'ò8ê•ú ôéM¦¨OTóã¿ ºÞ‰)+¹’Ÿ›•Žgàãáâ€4Æ·×Í -rÒØc–.Ÿ/¸ÑBÜF ¼U­úDZ7ÈRø:¨k`zäØq{wŸSÁÑ Éi°PÈZk¬ø5šêó¨ÿö-Ã/ô8ç_ó,k…j+ï`{ÌÒÔ@ýöö-J€/ñHZEEf ÏHøD}&-é¹áû^½– -KUuÍCú&èÝ}‚#bRÒx ©µ­½ÎÊA”•ÿcV¾eg%\ -JWG{[ Ó²ÒSc#CðØì¬-Í õ(5¢„®HhnÓ>edŸ3£ ?Žúã€>Kõß0ª Å–¹¦¦ª¼´¨0/çB¬3tWo7g{À€™ÑaM¬1J_cû£Ú+Ò?Žúïyï¨>ZSJõEæÌ¿`¦—”Œœ¢òÖo¾UËjecçèêéz¤5Hë[õM_ݽ,|Ñ+5"¾k}ó:Ô;À×ÀW'ü8ƒ/øï„èZZ-Œõá·÷ìܦ¬(/³žM/þ¿þÛ¤S -‰KÁÍeÒRZVa3Ìm57\‘‚¢â“Îgf£°¬¬Ë/_–ücûõ4¶¡çOŸ<¤Ã²²²¬¸0/;3U¤ /7§ßG榺d_~ãz’–âÜ‘ü©£þØ ÿ?ô‘¾`ÕįúÐ\¯æƒú¥&ÅGG„úyº:Ä#ÐÓ>  åuÍ*I -_Ïœñ9·Ð#¼T++Àk®˜øb‰å+¿\{ºiËö]ªêiguó -†}¢éUÛÐ|/Ô¢×sP}²Qã–Ö'èË!çïÝ…˜¯®,+aèuÚßËÕñ4;#=mÊYqÄKJ,ÃðÂM)ë䪾€ìóJŠKѹóÅ-…ÁQIK×ÐÔÒÚÖáOßÀÐHHË ’–7kë›Ðܺû.HŽL uµ4öîÞ¡Â nÉB1—LI¢&ÇÉþÄGý±QŸ>––êƒö ªþŠÒâÂË9Òñ‚|PuµAsèàþ½ÀlÈb$SûÌ€M}nŸÉVõɖΙC­)¨¾´QV -=C3 /ßÀȘĔô¬Ü|´O5·±³öö£…“³þÁrVL/øt>gmª¿u³¢´¨àÒÅôs‰±‘¡°ñ^ºðÛ»w@±Û¸§¬è¯ivMýÈÔbç%krëeä•·íTUפãÒÝ' 8":!%í38Ô‘`pãéH¿1²ÿ+¥H¸# € Á©ð—‡r&ô´ŽËïÌë`9"g²zOö97úsGýñ@ŸV}ô‡ž?{‹ ªßÅRýkWa—3Ï''ÄD†‚û¹9#‡1ƒm†êºk‡Š’‚œ´ÔZ²ÎHÿˆÅL£-†£>ß›ÂÞQ~ÕFªOëúò úˆ]:úÆÔž…EÅ%¥fdç—URÊÚ‰”õ!µP¯7£ÀëwAx bx¡/ooƒ¯©*e͹–œàíî|òøQÈxømš]ðÙ˨^7ëŸ3¦¿ƒ®É¥þR“èÀüŒ:pÑyb KH®Z³NZ–äåm=#s+›N®èÂÑä2³ópIªkh†¸¼ßq % âòçÑâò÷aãË>Ä%.I×K®€OŽðqw¶?~ôˆ‰Á!œ—*J_Ën -éÙŸÊÉþ<Žú€>ZbtÿýÁgO£ÒÚÛ}¿ãø Rýr¬úYéô<ÉL  ¹îlÙö‡¶yÙ’E ˆÄ xëÌQŸï±TSŸVýé3aeÐ¥²c÷^ -]CSËc¶ö.>§‚#b±æä_-¹^US×€UŸf×Ðèìâ)ë[ŠúÀ®Aš]÷î67ÔVW–æeg¦&ÅE…AÈ#cµ27ÒÓÖØÅn³‚¬4A—¸Ø&Ї5¾ÛÒ{\U^ZT˜—À§«2˜=»¶«(ý!…Y¾éÝ\‘ÿ}Â9Ì;OPõ)p1ª/¶p1Vý ²hK‘¯20m²wv÷ †mÊ̹|¥äzeu]Có¼NHõ‡Ö÷¢‹Ö猰Þmi¬«©*¿võ2|xrBtxp€·;&—±¾Ž¦:;eˆxâ«$á¸è€úXÔŸB¦'DŠŽLtá¢ÌðPOÚúÍ·û4´õŒÌ­pb‰GÅ%¥ffç—UV×64CM§øá5©¿‡=»üܬ´”ĘÈ [kK3C=-ª'ÉIó ëѧLQú;Gý =Žú£S_úohèaèÃ÷vßÿñ^[kSC]ÍŠ²â+ù¹3R“†Q}XåmÊ›äÁ`Ö¬’$Å•_a¸ex#«þL¢ú -Eº*%#§¨ àR;à2³²¶süÁÓ/0426ñ\zVnAÞ¦Æ òÕ?rñ|u"äêë¹|µöUøð¸¨°Ó~^®Žv6VfFzÚ¸d¥ÑgC¯›MjóÕØV'õ§ùd*}áÓaz"¼¢„N| ŽL]SËc¶.¾!dxÃö$t‹¯GOÌ߆M̽ÝímtO*¼×r6îLØi/70¤ÿ³_NU^ižÌŽ™ÙLȬÆYcD#cšÄŠÁ -H‘Ž‚R¤( EŽH‘"  t¤HïE:\àÂEP"‚€:º4«Ù8Édwö=ç|߽ߥy…àÌÎ|ç?8oy~Ï{‚D¦¦*ȾÜvi|(Q²¿”‘™¬ìÏû±Ô_ô'Ÿ?ûçý»Cƒý½=]mÍ µUåŹ`/‰ñ1@õéÿ#Õ×TÛ¿F2€`õª/þIÀ˜e–úÌ7«êÆPýõ¶`n)«iê™ZÚœ<…†) CW»‘êŽ3ÀÅŸ'T}‡¬W+€«¼8/ŽuÕÛÃÅÁÖÊÌØ@OK ¸%¿}+æÖÚ5ðË¡×tÀSØZì£NˆúüФˇWü‡MÒ2r -{”T5t1=FW¥$jZÚ¹$2ï£È|ÆŒÌßg‹Lfñ0öai(Ñ‘9ÐËãrZj+©C)62,ØÉÁªg¨¯¥Žv…ÊL싱²¿àÇR>ÐÇÚBCÿÁ8Ü«C·ûûzº:9p±VW”^ÏÎH¹z96*<$Ð×kªêË#Õ‡³@ ŽGùïh”Yƒ™éMW}4¢Dõ[Hõ1¶¤¶Éþ¸T_[ßÐÄÜÚÎÑÅã,¶Õ„äô¬¼¢2&!n=Õùó¿·¨yšSõ™ºŠ¹5M¿3Ð×Ãm§¸u-íêå‹‘¡A¾^n”­êh¨*íQ•‘Úͦ±ÅÕ%Žú‘Ô¤ê'8•HhJnܲmU>|)9¹zú†ÀŽ_IÉÌ¡3“‡2ï¢PõÞçPÂÕC™91+3x 4‰df>ìKb|4¾”N;Ù·8zä )Ÿ1$š¬ìÿ9¥¾hÐÿƒ‚>š^¢ú/áX…õ„ ? âÒw³A¿®¦²´(/'3-)!.:â|°ÿlªý…?ÉD`˜(X\ü¿¼YT»*Pk¥ø‰uß®G3*·«>–Uþ^BØÊ/®¨®kjëè¾ykphxtŒ¨>ÃVEçßVŒ‚­ö÷vw¶5××T”äd¦\‰‰ ðñtu²·¶09¬¯È—U Høø¬ƒ€ç»*†Ö"3KHö?¦W\ V|ùŠ•«Ö¬¥ê'ê§¥g`lfeëàâîí. ‡fv^QyuÙEFù¨Kéí<.¥§OÑåãur |•¥¹Thûy¹;Ÿ´µ4GB²¿K~ÇVR¿¯†ÄÊþÂKý¹¡/Pý¡ÿ˜‚þ[7yÜöÖ¦úÚª²âüÜkéɉñè÷>gÜœì¬-Ž¢1V} Jõ ØIžáͬú£UŸQIP}äªûÕAõÍ­ì0µ‚Ã"c/'¥eÁ,UÖ6´p¸¼Þ¬¾Y}-P}Q°…ÿ -ú²ú`lddõ&Èjc]uYQ^vzrB\TX°¿·»‹ƒ­•™±ž¦šò^è6ÃUQ¯Å>RÕÅw!ê/aÆ&¿€p+ÉÈ*ìQRÕСRÓíŒoPè…‹—É.¢úµsyB§Ò|Bó Ú¡S©«½µñF©_b\txHÀYOWGœš û*øV’F·Cö?ee¥þÜÔçCo>Œî¯ú°üÏŸ¢íŸèÞêåq;Úšj«ÊK¨ÏÇF…‡úz¹»8ž°±436„)VSÞ·kšê}ay¦7‡ê/eª¾4¨>­£ÇŽŸp:í韘’‘_ ®Ú³Ô®zwdlâ!¸ê<©õϤËii¨­,-$®z!4È÷ŒÛ©6ÇŽ9¤£¡Š¡%… Í&ªú™Ýê%’ú‘Ò¹ù µã+¾ÿJâëï$7nÁ±©r@[ÿ°‰¹µ½£«§O* ¾•J*jê›Û:»{ûaGÇÌšš³ÖïwAý^R©9ŠSn¥&|+åf¦^½„ èåvꤥ©‰ÍeŸU¤…=–ú¢Cÿ·iЇí½wC¿ AÿFuEIáõìŒÔ«—ã¢#ÎùySŸ79rHWK]EqÏN¹)ªÿ9¨¾ØÕg™¼YU_L ú4³`DÕµô ŒÍ¬lœÝ½ü‚C#±ªæ€ªÖ7s:y4´=~J†éÍ/¿¾};‡êÿ—¡ú˜ZèÆC'\x£÷~ºÝßKA«8?'#%1>:‚VUsC}mõýñˆYë¿ýšMŸuüVãN/z£…dŸNTÂÏ—¯X¹jÍZ*7åwîUVÓÔ302³DDÇRTlBrzV^QYF›Ã› 6_LâÒëøî[‰_@›ã÷ï‘Øl‡Ø¬*+¼ž…¥pà…‡‹£Tð°¾öÅÝüÜ\K$‰”pJp²Ûò^¥þû@ÿ- ý—Lè ö÷ötupZëª+J‹òr2S“âc.„ûŸ=ãæì`gmæ3¬ª´T›Ô\ªÏÚ ã½KõùÈ’‘SÀªGÔÞÉÕól@Hxt\brF6Ŭö®ž¾;wGîO†>Z|¢2¡?~>ÈÏÛÿÜ~®§}@Uiï®ee¤7oüÄe&Õg‡˜ùDP} ¾êc`22µ´9yÊ Mè…˜KWR3sòAõÁS;@õ‘êOLUýßD'ÖkB,¸ñ íï ±Ú[oT•aO½ìçåî|ÒÖÒÔˆ,éÍM]¶t*¯>„êO¡þFvâ*®ÆÓ&©m² -»U4tÈš;î¥ÊÚúfN'¯·ŸZGHÎIHNÑkø;]C~rŽcÙïä4ד{)í*)¢·»³ƒ­•™1‰Nìƒ(}«ÈÊþÂKýwC,šY¢ú/'_<ƒõ†þO·@ù¸úUåäß0»ÑçƒðÇì¬-L õu4Ô”÷íVmÙ²QòûoÖÍ¥ú,õÉ›MõÉx‚¥®&ª/%ƒyu@[ßÐÄÜÚÎÑÅÃÛÿ\XÑÔÂÒÊÚ†WXx”ÞÀ(½CõibÑÝÿõþÅsh=ëX5%¹ÿc¿<Ÿº¼Ò0<ÎŽã—‘èfË”¦H QPª *M*U@@Þ‘Þ«tQADlÞECÕl¢QÉÆX&›ugŸsÎûþ -¡Ç!ö=ÿÁ¹Ïs®ûzÊŠò²RÎFû#M=zÄÜÄ@WSóJJB;\ñÙ@7<®V‹úkHŽty²cÜÄ/´e›ø—¸;÷ÐÑ76³²sD)…Gǧdä”V\¼RßÈYOquâß¾[0ijCü} "GuÞEÕy¹º¢´ 73%>&<øÌ)OWHÑÂÄà Ö>5Ü\²ÏÃÈþï: õç£>ô‘¨SÝCÐÿŽ‚þ0@¿A¿  _[SUQZt.;#%!6*,ØßÇËÝÕÉœÅÄ@O瀆š²Â.d-âÛ¶ -cèoáV}Æ\è3êÿ™[õ®äUˆê[ØØ;£ ÆšWªy…ihdtlrúðê%¨þ’4õãlM}M4urüÉÈÐà@OçÝæÛõWª+J -r2’ãaÖý¼Ý]í¬ÌŒ¥ª*BÉsàŠH*«à1­V塹dŸnOÈq#äˆÊ¾¹äW²r -*|ÇШؤ´ìübèΫ×o5µvt÷ß8<:61MdÅ ;ÅGàL]mTw–ÃßIKФ6&[«Ã$F¥]¸<‘ìó²eŸüFöWpêÏýÿ΂þ6ô_¾À ê$þ=€~[KÓ­ÆúÚKUeEçr2Rc£Ãƒý}½=\l­ÍM õu4ÁYwíDÒ"ºUXËßç‘¶0ª?çY‚ê cÕßÉR}$©îÞ¾aQqI逫r¢ú-í]Dõǧ¸,õ=ËR—Ä+ôøœ– -ßÚt³¡îRUy1+Ÿ“'œl,M ‰¤ÊÉJKЉ næ#´šå¨«£ú³¨¿–r=G{JHAŽJ8GüÏ]=OŸ Žˆ¡Ê³¦öÚ;-m]½tŒdcúõ!•ý_çØ˜žMM|ƒeb¤d¿¤ 7#%>:<ˆ’}sZöåÙÿ”‡¡þ<Ôg©þ,èÏè?›žÿæñð‚~'†þµÚKÕýüœÌÔĸèð_oO7g;k S#}]­}êªJ»ax¥$ÄDÐôò’ñÅÖ¨þgIª¿M'­úGìÜ(Z¥dæ–V Õ‡9êèá–ÔZõ—ˆ+ôüHõg`ÍC…OÿèÁ=Ôf$©+Ë -ó2Sb"‚­Žµ679¤«©±‡rÔ­B¸ã¬¨†g+êêQ éO:Iv}nâÚ²ìLðÏuô̬lQ{ú†EÇ%gä”TT_†• ýÇ~X™žÀʄ˓Cö—Qž,ÙŸ¦V¦ÞN’cM%8SVZbldH€–}K¶ìË  Ùÿ4‡¡þR ÇË@öŸú£ÃCîõ÷PЯ»T]YVœŸ›™ -—Ž ð;åéFnmtHWkÿÞ=Ê -ò;d¤$Å@Y6ó}ñ2½XZ(ka´…ã,Cõ•hÕ·u<îîå›”– ct¡¦¶å¨#OÆ'ŸÎ¦Õ/Ë£z|xû±Ñ‘¡ûý=w‰£ž/)ÈIOŽ‹ - ôõv?îhk°ÒÞ¯®ª(¿+ª ?êx«ÐZG=õ*½4—ìÓQBnDýI')+§ ¬¶Oë Ô§½³ÛIôcIxgjmïîCí‰?$W{.œãíIË>jϾîvØ™®_½T…‚ÌHŽføò õ‰e_™–}A"û9ú“‘ýå†ú QÿWÖfJTÿÇôï¿§ ?BA¿õëÛýËÕ•åŹ™p瘈@¿SèÒGX6>tP›‚þviIñm[…av‘²àá¥TÝ:è3ó»ˆêõyÁP)ÕWPQ'¬ÕwEªŸ’‘[P -ŠzQGw?'¬^¬Þ,¦ú4õ©÷÷=x}nXµ4Ýl¨«¹PŽõldˆ¿ÏI7gû#¦4«àÁÅD„7óaÕÿ W<U«¥ú³¨¿–.Ðõ<ì­ITBJfç.ª?Í­sõ8u&(œZš*ÑÒt»¹­³>$»>Ñüùíû–$»>â®ÏÁøCÍ·ë¯ÀÒT”—•J%yÂÙÁɾ6Ⱦâod=#û+? õ€>­úˆë¡oÿêø÷ß>…?:òèø^W;@ÿFCÝå‹úpåø˜ˆÐ@?¸³Ë±£6–fƵh¨©Ààn—þR\T„@Œ0ÀCA.ÕÿÿßUŸCP±êï= £oD«~@(2Ô¬sEHõ¯ÕZ¾ê³•îüWÀªoŸNŽ?A¬ê¥YUQZ˜›™tªµ™ñ!]M=Jª„à½Ñs³uíAý5¬0qƒr¬Mü‚[H*ª¨ï×Ö3:lië@mMqIé9ù%ç«p¶vôàþ›˜F?òåò–&î$_@’Sã²ßP‡d?mMÑa~Þ.¥¹ Š’SöùÙÿ݇¡þ|ÔÿQý_(ÕCÐÿñ5ÚLÑ´NŒ=yôðþ@/ý«W.^(/)ÈËJOމ „+»»³·±231ÐÓ¡ s+!*²Eˆš\$,ÔŸ–§ú0´ ~ÏÔÞ®¶–;7®ÕÖT–åe!RûŸöts²?babpPkŸšòn¹íÒ’b"4¨6|†;ž­§«§ú³¨¿–Ns=Ï$û¼›„¶B˜2¦* -ÓØÌÚ‡·_Px44hnAiEõ•úÆÛÍøGν6ý{qÙ§ ô ò'zm"Y¶·Ü!²4. -ɾ» koBaÊB˜Œì’ÃPêÓÐ'Ÿž¬¥¯_þðÊ$üûá¡Á¾n ýëõÔ}³ÓSÎFÂ…}¼Ü]ìmôõúêªú2R0µHVø>Ç ƒ‹'—Q}޳ÕGÃéêT?:>©þù*Pý›M­íÝÄO'°Ÿ’1R}X!©¦'aÏÄ~z«±þruEIAnFr< ºŸ·‡‹£•™±¾Î½ªJ”žÂnÇ;‹SðØú¨¿†U¢8NªC!M>~AVšêûµõ [Ú88Sš”–d ö¦Ñ±‰i¼7½žYfƒâ0߀ì¿â–ýJö+J s3SbP…bÙ·˜%ûB›XÊ-û ö—|êÏ }<¦K) *úõ/(è=¸××ÝÙÖÒЯ­©‚i=—‘’äïãåáêä`kmnj¨¯«…¡/¿CFZR /Ȧöoú„”®0Ðç<‹«¾KõU‰ê[Rªf(5+¯¨¬ò"ÖÓ6¢§£ úϾ{Î *šúç§>¨^cPMM@å?„ÇoomBzz¡¼ø\vZbldH€ÏÉÎ6–„S* -ò²_êoD»¬vSs©þê<õœ²Kâä%qJoß¹[y†¦.Õ¡ž§ÏGÄÀWÏ+„4ÉâÔÕ;úd|ŠÈ>©Ð÷ì -] ÌydäÑàYœêjpšHöC}AöiÙÿûåâÎUžÇñݧÑl»3]Øig+Õ4£‹”$Ý”J’\Ê’B!BDµ(rD$]G¹D„ÆlMã–j¦™.ÚÚ¶¶Ýg?ßï÷œó;ç÷;ôózöé|ÿƒó9ïÏëýúèQ²ÿ¿ìÓºý¿~õù©ÏRý_ÿ—¾ë µ üä6œ¥`{ý‹çÊK‹ egI9˜ÐðõöpuÆÐ7èëƒõis¡¡ý£@ŸRý‰­ptåÃN®ôª?—Q}k'P}ÿÝ{"câ“RÒ@õ;ŪÏåT?ô”9õDœ‚;¯ñê•Jl§ùtd§aÁ»|<]¬7šbLéÌ×TçÈ)Gõ?ZÕgS_´è¨EeåXóT›3o)Q +»-.îÞþAdœp9Âå+Yw­Ë>tèCÔ¡=Ïû9M'™&Ý¡Xö@ö/ž-ƒË);’ý];=9²¯Å•}X AöøêóBŸRý×$¥déŸ>Æ[GiëïÑUZ_[ giù©âÂüœŒ´”ƒ‰qÑ‘aÁ~ÞnΛí­7QÐ×[ÐWW©ò%>˜ÊX6ôÕ—xÒª¾Gõ·ïðEÙŒ£ä«>d¨¹å&`ª0õQýÒª¾ÈNÑ©‡1¿cêZ]5ÆÔñ¼¬´”¤ø˜ˆ=HN·m±³271ZU(5SeÚå‰ -”›¢ÿMwü°÷B}Fö‡Ó›>jŒÈþxyE%Xõªt‹®7Ûdëèì†æIV2#· J´¢ª¶ž”hGW7ç“AŒ­Ó=ºD±ì——Ùÿú@4#ûV"ÙWïEö?d¿O >/õ9ª ÿü:IÑÖw¶ÿpçÖ ”S}¸JOžÈÏÍLK=”ÐôóEÁ_k²Ž†¾&†> -¬$‰Š, ý¼Ðÿ°sÛÕ_ȯú™”êÓ”jmï$ª?9ýåçŸà҃߇^S}-E©œŒ#IŒÛ°s‡ÛVG›MfƆË/Ôž« 5YIQž¨)üp¢úÃ9ª?T¿šC}FöG–ê› 0Iy*Ô¨:Ô¨Þ²•kÖmØhmºkwXÔþ„C©G³1-zý»›·ùæù¦¯y¾í]öaZš¨Ų0a?º@öñ@±ìëòË>{¤‚ìKùêóA_\õAMHHñÖß½uó»o!¦5•Δ•œ=«}kxH Ÿ§Û6 -ú†«0ôç!èOè+ORÄÐÿŒ}b*œÐ~ੈêÛ2ªËRýË5u ú7DªÏ¸é«~¹é pÓ'ÄMÛ›6_»ZwÞéR‘a»ý}<\œì­AMW¯Xª§3O“Ã(‘™ŠÄtH5{¦T‘Ò#…•Ÿ¨„{v]w‰þªµøx‚ô ˆ>”ÌÔhu]C{ èv’ºEye¿ÈþÕ+•”ìC‚ìï ôó‚ã©WÙG#Ù‹ìà ô®'PŸúŒ˜°Tg´»«B -®k¥êÒ…³§KŠ -ò²Òѧî - ò÷ñ„ou°±4ßÐ_Y]П-‚þ8 ý1ú$±ÃEÐ2û›«¾‹‡·Оˆ£*@õAõyÕ´wHý‡¥ú8(l5…ί­¾táÌ©âã¹™G’ £|½¶oÛlkiNÌT[KcöL•i4¢ˆ˜2„öž¨ÏÈ>ݤ0S9,ûx×g¨ªÏOtZvÏÁ¤G3rò‹JËÏWT^©o¼Ž§.2Q´•/ÿ.m¾¡k”:ž2Çš(‘ý¬wʾ¢ ûƒzõy Ï£úOqDïßëlo½óý–ëõ(¤çN—’/MNŠßµ7 Ÿê„¡oŒ ¿X ¯!‚>J+HÊ"~4ôeÄ ÿg¶ŸªÅ”£ú©G³±ê_dTGˆVý—lÕïEMÅE«~7üÚL¿9W^r"?çèáC‰±QáQ®[l6š1ÕÄb:™"êy †žOêËÐC57éhÒ©h¦s¨óiƒ…•ýwT¤‘1ñSÒ³Žž,;+i['Èþ#ýž~ȾȤ°HýüèGX©¶»h¤×ÐH±ìç Ùdÿ÷êóP_Bõ{HB 1¹{ "ÚÔPWs2zª¸ðXvƑ䤄Ø}{Cñ—º89ØZZp ?kúW ôÿD OIÊïèK¼^TÿS¬úc%T% -¦¸êçRªOÄ´WÕÿWªÿ–ê}¢Pëw´Ý½u£¥ùZ]õe$¦Çó²ÒR’âc"öùy»»l±³²01Z½bé¢óÀKUÀK'*L@ª/KzQ_†Cý¡Ÿ+Õ¥xªT•ÂPå'*M™Ë®¡¥­»DÕÚõf–¶Ž¨Ia)£ÑRfäQçSœOh+»I‘ö"ý§T²ÿš#ûÔNIÈ~JŸ²?YýÁ=ú’ÐgåôQýGdé[oCB›‘˜T\8Svd/3 2êëåîâähkeaj¼–‚þ\ ýi}Cÿ#ú¢×›ê©ü|¼¼¢Kõ $Uÿ­ú bªß#ê3b - à!\zUŒ—&ÆíÛà»ÃÍÙÑeh°|±®6üw¬¥ŠXK1Ÿh+¥ð4ä?›#ûôXI—~Ž—d_U]s¾ŽÞ2ºJ]=|ví‹ÚŸÀ õ›J¼•7o·‚ìó5©”²ÿ‚Ó¤}ʾ˜ìOÙW ²?Fý<ú¼ÔWý'ÏÜë„¥ջ޶¼ätIQAnVzê¡Ä¸èȰà_/×­ŽRÓõkW¯DП 9 -ÐW Зㅾ@}úõ­ú€'>Õ·g«>ä§Tÿ+—ŒêW‹T¿[¤úL„¤ÔR¦öÞïê`ñéÌ©âã¹™G’¿>@¬tû¶Ív–æ&Oº ´æÌž©‚¤T¤úŸü÷<üñaï‘ú¿,jS9Ô¦d®3TI™›n²qÜêæ¹3 õðÑœü¥åç+*é.mïìÆ²ÿL$ûRPâ² Ë~ ‘ýüœŒÃ½É¾†„ì*È~Ÿ@} èÓá|ÍU}Hgg{+,}K3ºE+Ο9®ÇhrRüþ¨ð@O7çÍ {fëÖPПÅþX.ô? /ñÄ "Ù‹êkië: @õh¥hýëðÿAõKNäç=|(!6*KjS£ Vö[È\#c⦤gåž,CkYw —i[Ç=FöY?õß1VÙ·ì&Èþ€ž@} êsUÿ%[õÀNÒX_[uéâYØú‚ÜÌ4¸Ec÷í ò§¿ÒÌÄh>‚¾Ö5Õ*}@¸}ñÇ$J$¿êÏP¥UßÈ„£ú Xõ KNŸÅªßtºC©þ/lÕžDª/.¥7ZšáÔƒÿ_vòx^VZJR|LÄž ?owä¤&F«W,]¤CÁIþ;VÒÑ£h6Ép¨ÿ~f;ŒZv-L–l;Lv¢S§KôW­]o†»}³–¹EHö«j뛾ý+ìe{W÷Ñ\}õJª2eËþ¶ì7cÙ?Ç#ûö”ì£:ÕÀG”² ûƒxõ9Ôÿ·¤‘°T¿­õ6V’ºšË(œÅ°õ驇ã¢#ÐGz¹»89ØXšoXgh ¿To¡6úã1ôeÅ /#ý=ªbª¡?â÷Ÿ Õ—cŒT\õÄU¿ˆ¨þU1ÕÖ/ÕÃN©}â¤õWª*Μ -œãö…‡øîpsv´%Õ_¢«­¥1TŠ’¢¿PoÙJ´ï0YWŸÿ²_'NUÝWÀ'“8jšàE›1DM! û""*Š*û" ( RQAADÄ]£QT jÔ¸à†M“ÔÛš¦‰3;=ç÷»ëã=x`Ò×™ÞßpÏ=ç{>gMzV^AQIyeMýÁ£'šÎà\^ƒÂ>èyCõ²Mß0Û´7ìwÈÅþŠžØÇ+ê‚}ÁB•°¯ì“R_Nê  G¨ÏÎ|Jïú•/`蛡7ëkwï*-.,ÈÍÊHMŠ…S4ÐwñïÙžLè›™L6ÔW.ô%ê“÷ްY*¢¾3Oý•bêQÿqÿ©/ÜûäØcÖ>¡þØúHýõ5•å%øûÓSc£Âƒý©Hím,ÌõµàÄ«N@*J&U“(õÉœQã44ÉB5¥óŽ¥õ -[Ÿ¼63'öi™ËÆæ³Ú/Sìã`~÷ü­l¿Ö)Tö2ØÇÊö}[ûã~ÏÔ–`Ÿ»£¤ØïóI©/ }èýL¡÷R–úÎn:qôPÃÞꊲ’¢MÖg¦¥I"Âü–,ôöòœîæâhgmABbŸ¡ÿ®úÜ“G} &ìHõÍ{¥þ±“§ZÎ ¨ÿõ·yN¨Oúç—>²éL6!õ¡pí3"m=ÛÜxü0üÿ]¥Û¶`4%ů\èëC@êhgeN’i¼&¥þÈáj¬G‰R_%åå«;X0îêüFbië@k»4 4bEÜêÔŒì<øUµûö¹Ò>~ú'Äþ€ý¾÷iÿ±_D°¿Zûö™â -°ÏVWŠý^Ÿ”úÂÔŒ¼¸1qæŸt1i;ßr -†~=ùÄÍù9Ü'úCoΙéÁ„þg“¡;%ОÌ1J¦ÿ})ô8jŽÕ%¹7ž@£bêÿ÷¸(õq܇ eÊËìT<¤¦@u]Ý=½æ-ò ¥+•æîZZÜÖ¶Ž«×ouòØÿ+¿Qû®­x£¾PûûSì öa§ŽïýÁö•{Rê+J}Ú–¨‘ïqæ»9°Ô‡¾,ß¾uÓ†õ™i) ±ÑИè‘Ù3°3!ôIk -C„ú}<ÔÿPm؈‘£ØX’¥~Oý­2Ô¿ÁPÿÏr¨ÿ¯þRŸ¬} þÕŽ¶ógN4¤®¾‘±)t¤£+¥~Æ’ˆú‡‹¨/È¥Rÿå áÚ¿| €Õha48,ý¨p&–Üœím,Ìú˜TÂ?/ -%UfRì“N¶ê8 Mm]À¾)xOºTa2“×f®Ïß²^RǛ϶¶w|yã–h§¾‚ªduåÍWØ ôìã)Ø73™$ƾš„ýþ<)õ{¤¾ü™úˆJODý’"¤ÁHxXoþœ™n.ŽvVØ—ÀlL˜ü1úÃÙÐ"…¾ü'úØbêkõõТ–hQB}?L%õ=ÁRŸ¥o¡y^Ê£~ïå=A,]íhomêjØË`tÝÚ¤ø•‘a¾>ó¼<Ý]áEuÆkr¡ÄRt(õUVc¦Ä‚c -^n©OÇìO±´upa·jDtÜê5Ùy›Š°¾û ¾MgΓѼsïÁ£§ÝXÞPÞžØW|I‘òþü“rØOKN ØTÑ[ÊJÂþÛ=)õ©/”žÌÌ?{ÒÅK¯‰¡>~_P/,ä‡Ö›1ÍÕÉ0m Ú¯©Á…>zäwRè+~ï{›Q QhDZ"¢¾»'„ÒRBýÄ”tJý -BýFžúF}!Fe¨©„ pä@} n}°húšÄ¸èð % ¾‹ƒ%¥(œy4“àÈ“I*-²èšRCìã1¥¡¥M*lam#ku±_в¨˜„ä4¶Àu0š€ý íÌVÅÙ„úR줾JaÁ¾¨J€}v¯’kêCö¥ØïõI©ßkê³=Ù =yH¯­µ¥™¡>ô䦼ìu©Iñ1Ë)E¼<§Ou¶·±‹écWBèc[~„¡O9†þ{RèË<ê“Dúþ”ú$’4µuô '6ÅÒÆÁÙÍcÖÜ‹ õãêÿÂZôûçßÁÚÜEBér{ëYl€†½Õ¥Å[òs2ñÔ[¾,ÈÉ$;ksSc#}]müùcÔG)¤¾j~¹(õÉ9…‹•N<`¯),±•­£+`Þ¢¥¡‘ÜÌïØYU»ï౓§Î°kõácŠ}ÙËO}·ƒý.1ö¨« ÂûáBì››NÆk}Êb}¶ÈRì+|Rê‹SŸö$#‘åJúù9HKIŒŽ`$‚ÖÞ4FŠ@S¢EÔ¥ÐWæõ þ`õ!‘° õ­íœ€ú^IДú¹ õ÷ê·ŒúÿVLÑî§Þ»só:Í$lèïí[aëg¤®Ž[°t‰$[Øù¢ä熿žs¨Š©/L}1ö™ÍJFÞÈÄÌÂÆžY¬þÁáQ± Xâ‚Â’²Ê=uŽ|N÷굯nß}Àc_¶Â -ÖªòدßC¯),1`?ŒÅ>º -±¯‡¬"Æaˆ„}ež”ú²©O!‚-ÉIïôøó³œP?#5 ¿.Èoñ˜zwW°ÞŸ†zº4ôÇJ¡¯Ü“G}–¡Š©Ïõ 4äΪš}@ý&Jý¯n¿-õÿ)–èýÎÛЗ.œen½Š²âBhï´€è²`øÿsI"Áï'Ô×Ò Å@âªzê Ëü7ñüj…"ëB‘MaæÉfõñ ‹\¹ -kœ³¹»¶á`k,ÖNľÜûxìŸBìïݽ«”b?%!6*<„Á¾«£½§&Àˆ}<V+P –°ß÷“RŸ}aêÓŽ‡üÀ:¥wõ‹¶ó-\CoÙÈR?¨7Ï §ÞÁ¬‡çç€Î=iI)ôûzЍ¯ÆS<2ÔØÌB@ýЈè¸Ä5”úeÕu,õ;ê?í?õ·ßÝ2 €·ÞÎ[7oX¿¶þŠÈÐ@üÿžî®Ž¶Vðû ‘¡”ú|ñq¤Ò.\®\™éÈ«eª<ÉÄ V« ¬Vï…KüCÂážZ“ž•WPTR^YSO±ñÒ‚ýçÔk%±ÿZö9ZÕ×T–o§´‚‰ "Ø÷p#Cf‚UÖ¦3°bGŒ]®ªÞ®ÿÓOJ}>õßÈK}hÈo¾îfréâ¹ÓM'ŽB?V•oߺiC6 }üÊåaHý¹³<¦¹0 1˜¨CCÌhz~bG•B_ñ4¢êk…õmI!õ¡mb˜¶ÙºcgUí[Sÿú?ýøêï<õIõÏfn½²’‚ܬtÜúáÁþKðÿ»9ÛÛà¥g0ÊÇ‘Ü4Ri¡9ì³uÆåÊ•YßÈØÔ܇~æœù>~AaPåäµ™9ù[¶•Âp6:ÞØÜÒÚÞñå[÷9ìãx¾=öïÜb¿š³UTlµÐw«“5Á>–™[®jö•}RêËI}–z0ô/Ù¡¿÷6£Æã‡÷×UW”âÇ¥$ƱÔ÷tŸêD§ÞPOW›éG}F{Rè÷òYÄPmÅa#FŽ"Ô×djamÝH¨±©Ÿ•[€Ôß#Cý‡¿õÉ­× Ôïhkån½Û6ç¯Ï\K·>(”Æ,ýɆúºˆPò÷Q_u]”ú¤Ðìveꬣgðöëü«ªëŠø¢Ž¿8€¨5®*âã<2 PA£V­¢â"E•ùùxðx>@æAPÁ©ÑU# -(8Äã,6©Õ®VÓµÒ´]«{Ÿsîô£@÷‡{þƒ»ïÞßýÙãér3oáo¼¨6oÙ£JÒ¥gå•”ÆÝZ…ÓyãÖ)ößtö/Rì ¸ŠpE±?YŠý¾&°ß¹ûU¾OI}ó©OòòÅóoŸ=¥íC_K†þHEi1ú0ôaðm<õìBlm ôi;í QBßøYˆû‘£~lE4èP4èXlF'WL£ÅË|Öúo!MÖK¨¹©ùÆ­/¿nõâ¨O·¾äÖ£q´¿(/+M§QÅЭïã½dá¼9îF„ú#mqçèOÈÿ÷2 ¾8õ¥Ø·ä°?±ÛÕ °OOª°È¨øDmjFná¾2²\/ÔÔ56ì“2?!Áþ»ìVcì·Rìßl¹ÒÀcbŸè*\ÐbÆÔ‰ãলåpÅaŸß¯2X°r}JêKRû‘›zlGJ½Ö'ïß%ÝCþ´dè·oÙ¼1À—§¾Rÿ#Þ ôôìÅݞݕÐ7ý,LDOýŒ ”úŽ$Œ-]±Ú7 ˜©ŸÇQÿBRŸl}1B¯6ÖUã­i´·0'C¯UÇGáÖ÷[³bé¢ù^³ ŒÈÒ‡KÔÊ’e'PTTë®üÌã~µ°ëu¬WOvS cÏmתÚÏ;wïAq¹Š°ÿ^Ëõ°_ŒØ'¼ -åy5ÛÝÅɱ/Tu%`_ZkeÆ ž’ú©/FíFzÍMõ58ô:D ¢MŒŠ ò_ë½8Rò˜úÃ8‚XJB¿›ú¦žõ{H£èƒß ¥ÂQ‰7P?ˆ©ŸSP\ÚÑÔ#¥þ >lýªó§O;BÃH—¤Š%[J¨ïêd‡YôáHré dÔ§QÄ'Q§ÿwƒ ÛCzkzUà÷ëì¹ ûXéðÈè„Ä”TX¯ûq½ž:w¡¦žÃþã§Ï¾ã±ÿîÛõíØ¯æ°¿'735E“@Ž*æ+/ÞW£¹RÓIƒR VÅ–åSRß|êóSÿôñžz¤+J‹ ²wƒ@bwD„ú­fÔµ¢¡@z*¡oþ™¢>†>ŸDCl†@ÇOšf'¢~ ¨J£KËbYdDý¿þíý©/ £—/žûìé£(ü7üÿéÒç©ßKLý.O}Cìwaß6,ÖzÔ˜±¦àØì“R‡Fðã ûõøÉ3•ˆ}¾Òû¯Ú}Vé¦úKˆýcû0jê8¸ª Ô,¶`íéY…Àúà·°a­xì÷Mš2f&ž’úoM}$N=ž_ܼ!ÔƒV,ÊÏJÓ1€¬_·Ê;уt¢˜ú؉8öâ»S }£gú؆$ˆz3êFê&Ôw˜éêáI©¿ž4^­ÕgÐ(BêWõ[(õ9¾õÿóó¿ÅK³¨õÉÃ{w™@)õ+ ·³Ów%íŒÝ±9˜Ôÿ?¥þp›!Üï—õÅØç«ÍV,-¶íH‚};GwÀ>­õ¦ðmÑ šX°0÷‡?ýó)˜Ïú¦æë¬ÔRÿ½c°¥¾F±Ïl^fZŠFgÔš ËÍÙÑ…õ¡XXüa…;¶«xÔ:µÞ²{Jê§>{j=*ûЊ7Zš.€|zè€1õÌÍ5"¡þàAÒF¤sÏ:ñ7J苞…¸ ± ©? ©?a2PßÅ ‚¨¿Æø3V•¤K'ID©_S×xõÚç·y€¶úðûyê÷Œ;õõÏ‚$:°’[;:2<$ýÉþ?=õ(?Ùïþ¾L¨/N}1ö{÷±´âª=Š­ØÙ]åHæS¬'Ø?x±/œU(öß}Áþ×ûtÔžŠ±ÏoØœÝúd56,6#ÖLŠýÑb‘aë©`ÿíOI}>õÿ'Mý7|ê£õ¾þòÖ èÄš gÁËöædè“wÆíˆ ~ê}<Ó?:Q"ë ü袄¾á³0‘B¤ 1†ˆ>ml¡ÇMœ:rÈÃó“ßÿaùªu”Ÿñ‰ÚÔŒœB >ÑùªZFý{<õÿÙfê¿â©ŸógU噓ÇT”î… Ú%úÿKéÿÇSoì˜QÃQŸXó1Dÿ¾èß˦à]ù©a߯–íX'÷9ä°‚Áß´e[ŒJ£#Ø/gØ¿ÜÔÌ›aÿu°ÿ/SØ¿ÚPWM† ‰•—•¦Ó¨ÈaèG°;ÖÅÑŽ]VÃLa¿›‚}³O©¿zÝz9¦>{Ú‰ú`½ºjœú£¥ÅÙé»’ðèÜ´qýºUDî.N\ÂÔ©·ìc؆Jè=ƒÐ‡&d)Ô§¯U¿þˆÏ¡ˆOŒ!{ˆ! þâe+×ø‘Žá[‘æGý¯8~¶“ú$ˆúä÷#?ñÔ;|`äPŠ&!z[ø¦ õDŸsáÿó§Ã'K!ÁžrÉ ƒ5Ûƒ=‡}˜{‚ýÎnû¤Üa[£âÔZ=îØ2ÀþggöiµŸµûŠýAŠ}B¬Ë—ª(öqÇfèµêx¸¬ Ü0n²fL8N+[Ro:o0nš•MÅåõ”Ô7‘ú? ©Ï=^ÈÊ3Їå%EùÜÔã͹rÙâù^³Ýœ± ¥'' ýJè›{y2êzr!4ì9ú£ñ“€úÎЈ„ú¾ˆÏè„Ä”ÔÌ\C'ÏTõ¯´ˆõÙvêó9ÔúäÑ}^Ÿdé$Ô×'«ãvl ý#ç×,þÔãì‰!$¡~yPß,öÉšcßÞÉÕ°§UÀÆÍ[¶Ç¨’téYùE%å‡8}±OËýðqkÛ±OvìkûÜeuµ‘Ç>.Ùt]ÒÎX8­ Þk`ÞÌ Ê²GeaÁ‡BÁÍœ2n†O©ï½²ÓS_2ù4õ¥>òãöÍkWjQh½=y™©ÚÄø¨­atê©=ì§Oá¨ÏM=Ò£§dì•З>cê÷$Ô›Ï ŽžÓ!„Ü!„/óYëö¤ “_\B©±¦¾±ùºˆú/ÛAý×õñÒ#ø¤Ô/'Ô×iT1ÛLžzŒž¢ ’õ¥Øï&`æžÃ>]³ŽÎnì¶òߟ¨MÍÈ-ÜWv&ô,9­°Þß¼?öÍ-Y‚}¬w Ãþñ£€ýBHm"¹­6¬[µ°kÖ°O+ñĉmWñÄuvÍeô”Ô7•ú¤aîIêC}´\ac¨l_an±^Dhp€/4!7õ¬ÍQ_ }£g!î@lAžú\ ±ò?išdÐ,¯ù‹–®XíŒôLФ¤eæîÙǨ_]Û`LýïÛ™BH}Üù„úg?ê—aéµê8\úžH}7Ì ¤þ"ÏÖý¸¥¿_VÔ—Ž½p^ᢵ†E‹%…؇ÉwõðdÇU0Ž¾ŠŒ~qIÅÄ~Õ%î¶â°ßž-û#ì×\8ËÖl~vú®¤p\AÅý×öqâ\ìéu%çGŽžW=ì¿åuJê{É9õ¥>jÎý/>.žƒ“ƾ g74aìö-›Áz>Þxpº9;‚<$Sßàaº•dÏ€ú$€Hö±$ Ô·….Dê;`Í[¸Ä¨„òŒS'ëwg õê_bÔçéÙ!Ôx£çE ç±Ãå%EùYéº$U þ~*ÏyžA”úpêR¿»tçwvÑ%_±M+Ô°oçè°%ŒŽOLIÅ={àWÂ>"‹W ¬ÚªÊ3'éžÍÍLMÑ$Àu%÷]½b)]´Ž-VsÑÌ™‘Vg]>¯ÓS1M}˜b9¦>ÕâãÖæ¦z°b¯´¸ ›Œ=œA(lA¸7)<° „s“sN½Ò€¦ŸAèC2ê;ûõGêFÝ9%Rß/ÂS£KËÌꓪ¬®kÀ†¹#ȳc¨ÿÍW·?¿Nå ;Ÿ^z©ÚÄø¨È° þ@}aéé‡î”,}qþ龕ݯµû°jÉ}Eƒ›FŸ`ΫÀàЈ8ûdÑ2ì×"öÅ%oãžý‘aJÞJ¯+,y}ÍÅsû%ÅùÙ»w%Ãy5‡‘óñ^²7íL2sPt[‚}k+z`‰v­B-ã÷ë§¾¦m©ª³Sÿ.õáä$öhnÄÔ?yüHô`VšN“cï·àñ v ýtb=Ö€"v(Ǧ¹g!î?Qüôbù3hðÛ‘„3  1€–¯‚vÙ„îTkõ9Å¥4€úM”úxê¿zýý›vQÿÿì—÷W”gÇ—³Ù ?X6×ãIVE&#J¯¢Ò‹ ÒËÒ,(QŠ -(E° ¢(]"8 % ݸ«±EÍÆ’dcâñ$?ï½Ïó¼ïÌ;3º"#óæîŸpËçû¹9Õÿ²[ÖŽªO¦_]Q¾¡hU^VZ²T‚ªÏÆoã'¡ÿ¾rè Æ¯í¦c©Ê>m;'û¬ëµ®nžä¿Â¦ç¬-.%IËÉ>÷^ݹ÷€Êþ³7—}¸7ú^q²ßÓÙÁd¿qGíV89ø¯ é ±(ûµN ûpt ZÓ§ì >¬Ñ³{i‰ƒúQRÿõ/ôvá9ؼwgÝÖ-¥ {Ù+RpéÙÛ÷‰®§Ï¹±ŽÑ_óU¥ªúºL:Qõ?°ƒ`æ`öÎÀ߀¥aQ±‰)T;Ë*¶ÕÁRê÷‚êß|»ªÿ ^Ø59ËɧÀø3—¿bèëêŠQõUdÿ]vù*²YëáC¬”tv£Õ4jŸ¦²/húðd_Ðô¾‹2}µõ5•›JÖc×S—ÅÇЬ]èâhK?,p-[þÅâÒvôîÔÖHR?’RߨØwê{ÿ?ê~õµ¶©Ou¿¨¶×Ò¼gGÝÖÍ%ðnf§''€ìÁ·éæJÏÞÔhÆtº~réPy5µ=tÑ”*ôœ“ÒGÏÀÐÄ TßÚÎq>àU_"MJÍDë,Ù\UÓ°›©~»¬»oàʵë -Úù†ªÏÄ«þ¿þ‰ªßÉ«~}ueù†u«ò³pú,ó]l--fˆÒÉÆÿž˜U_xø -?Ÿ¶ û&fæsæYÛƒì{¡ìÃñƒì®ý˜È>díác'Ï*Éþ“4!û¬ë_ ~‰'G³nn[E|XÐvP­(¶n®Îö6´ï3¦³´Å mKÝቤ÷Z¯‘£~|LdXð“úw¨îõÃ?ÜX[Þ±:¾MiLDp Êž£={½©lûÐ9FUÿ¥£@ýwxöpÊÉà3Ø8§ƒóJŸè¸Ä¶,d ›[Õ¿ÐÕKUÿöÝûSý÷èìz/*©þÚ‚\”Îèðà@? |zsfÍ4çäáÃ…¾UÿO‚ÖÿEQöiÜÒk¶…•­#“ý(&ûë7nÂ#Ý÷é¡ÏŽŸnkïìádÚþø©†dŸµ½¯[ÆÂvßî I í{’T‚²ïã±ÎeËÌÄ‹[}®ó\ëÅÖ{­×HS?àKýAJýc‡áð€ú×­ÊËJKŠ Gëê£ì™ÉÏ?ÍQÕe½Tõ©qöQå´sš¿Èá)‘&§eæQç¬mhlÚô9×ÞÙÝw Tÿ® ¯ú úÃQý› TõOúÕ߸nu~6:gdhÐb€¨¾§œ¼êåÐ#Êñ {¯"ûôÉ‚ÎÛØ;SÙ@ÙÏDÙ/Û² e¿eÿ¼@ö Köñâ}ìïíâÒvÏÎíÕðcAãW¤$Æ‘¸õr[àì@d¦ñ zx¬õü›5*\jJƒÔ—ÉÔS¿h(Ôß$6ê?úÏB}|7áòOk=ÐÔØPSI¨Ÿ‰¶¿&¹{Ë9æH}ø4‰rŒ§ìz£›'(ÅåÃíãȃûG„sªž¾¡ñÌY͵²upYàîíˆ;»’³’(guý®½Í<|ú¯ -UœóÅo¿kJõÏâìáϫۺU•"Ÿ°‡ª¾¹™ZÕÿ«püÚî:Wje_¡÷äø±õvŽóQö—†EÅ⓵’—}·m ûòk8²ÿâ94þ'yã¯_»r©ãöÔñÏíoÚÝ€OJdfZ²TBòlËÉŽ´ÞÔÈ`ú´)ï³ÞÓÓSc\¢i¿VkÄ©ïïK¨Ô÷õW >¿O"¥~·ì<¹|Ø¿šÊò E…¹@ý¸¨0Ø>wtX>T¹ì)StïKGIõ ôÉúq¾9ÐÈôÃÙ–D8=}= Éé°ƒEÔ8™êöÕ¿…ªÿ艆U¿í4°U=Sý(¦ú޶VsAõ9Õ—zâ¿zÙÇæOT”}ìýw/ÿ%!1Ò$ü²hëwÊe¿oàòµëš•ýûwo3Ù§y{¸x²¿¬õ«Wæ¬X¾,>&"d‰¿·;íýG³fCâN•7Œ û"l¿6ëmRŸ…sÑ*¤þ²x G}/‚}/µÔo5õ¶‚uÔWSêg,êÃá{õÁöp÷¸»§²GotïÔ•ô™m‚ê—«>‚|Óšø¦7!O|RjFNÁšâ’MU5õ»ö}zðÈç¸+{._ýúß7oß»ÿð{uÆ9Õ¦ªúç zT?U?‚ª¾³½ U}½©¨úUTÿÏbS}5²¯«Ë=ZŸ4"W_.û‹hâÆÙ_³{ßð–dŸµþÛ;·n ìCàvÀÝßÔˆ½/c<Ä [àëIšoi‘kÂ5…vŒ 2—o¿â«%¢h¯F„úùYéË)õƒõ©ì{xê‡EI¤b§> -Gý}@ýŠ2¼üŒå‰¨{þ”ús)õA8È› ¾¡pö£[§T:Š«‡»ÇdTÿ½ '¡êë!wˆê;8/póò ð¤gçà -–Uß<ÐzôÄ™¶Ž.P} Ï[wqYT„sèªÿTA8åäÑSÕ_™½"%Áƒª?ßÑΊ Ú¹mŠ[õ•SW.ûØ~ÌÜéF û´ûî$r%¼ì“æ7SÙ—iPö%²ÿzïöM–¸xvŸ9Hþ¬ªM%Åk -r3R“¤Döi÷­YæâíM&ÇÇBWWUöE4­•&¨¶Q_Ô?/¤þBýl|É$Qê©N©ŸC¨_5dêúC þ‰£‡xêÀ§™ -¦›«“P„7|ƒÜ=•=Ñž½VKGtÈòÿÛØ>€þ4ÀŽ©™ùœyÖvN`›>‹ƒB# wr ×—n®ªÝDÕ?u®]ÖÝGTÿPýï@õ|‰o¾¶êÿð„©þuOŸ\õwÖmCÝ,ÌËLcÜñÂÄ·±äTÿLõlj]õ…·Ï?“}Ò&û´ýLöñN9ÙoÒ ìóÍÿ›O®eή§«£í̉£­H÷+Ê7¬[™ŽŸ´ßÁe¦±¡>¼Z˜ºHêrP¾¶Û.‚9êK%Qá!Aþ¾>@}À¾PßÇ×?R?)5CúZ‰™ú»xê§Pê{Qêã› ‡ÿÁ«¨¯í‹¥” «Ç 3–º¦ž¾¡ RÇÊÖÑeU?žÓƒòJØÀ½h›'Î|q¡«·ŸpTÿ!§úÏ•tshªÿX½ê7 m2ÕÕðõ\$W}ýiS>˜<‰Œè3_0~c²oJ_-^ö“Eøim×´ìÿþÛ ÚýŸ>þþ;ýoˆì÷uËÚÏ"²D©Ú\Z¼¶073-Y*‰ Z ýwu²'²oj„¿¹>Œ]o{£ÔWS:Š‹‡›Ç›&2‡WM -{gW7êš± ÉéYy…E—nÙZ»£‘Êæ¹öÎî¾KW®]¿A°CUÿ—_Ÿ¿x-Û|Õ—QÕoV£úÞèš6– úäÏ£ªù2Õ×ø…3àGÀ?[»J²·ŒÉþfEÙïêéלì?£²ÿðÛ»·Hèö÷v]øâ éÿ^¸¼Êòº9@”x6€….޶$vé³…€ÜÏr÷]Ù×´Q¦þBý“ŠÔß@©Ÿ$§¾7ž§—7RiHx4¥~¡~-G}¸eÑRO}‰ -õÑ6& -©/ß9mÏ[$¥£¤ú„8ˆœq9“qù ŒLÌÌç̳¶sœ¿ÐÃUöÛ“Êšú]{™k^¸ª•£ÈæOjT_l¾¡ê¯AèÈUß<^õ¹?O9òŘù -Cx畲oËÉ~¤PöÉN WöUûÏdS÷Ú•K}ÝíçÈšwÔQ‘ÌËJã"€ã#¹ ×# çGƒw,Ÿ¼bŽ^m”f¨ž§~‡*õ×!õS“¤±Ñá¡KåÔ÷êû"õC#¢cè5ƒBpÔƒëá¨!nêÃé[ÁÞ™âÚ uOp÷Úž·HJ úpÆÕ£Ä¡¢9ÛŠ ÇË/08<:.1%=;ö˜S·cÏ'ZžÕ„E!ª ü€¨þ‡£ú?ÃÔ_®ú 1¨úÉR S}†ê•{¦ˆy£&z•eßd‚×É•È~8ÊþÿØ/ó§*Ï+Ž—´ì4nh34¸aQR"… A"Ü}ƒ \/—Ë.‹‚ -.H ŠWD\ "»l""â‚R§ŽV((b:1NƦuj3ãtÚsž÷}ïÎ*Ëeæ>ÀûÃû=çóýõ¦¢ìWÕ6މì3àÚ½ ²ÏÔnGûõVL ¢d?{wwêÖä@ʺ ‰€ãçCŠ÷³O©s‹n^‹YTÌÁ¥Ù½ÆÄ¿ñ£~±ŠúpADJyˆT"äsÙþ@}ò€úl.©ªŒZŸ˜LÏRþÉ¢’rc§~¶ŠúR1åëåá†Ô_ªI}Ti&êzfšc‡sÇð†h&ÌžõT}ç•„8„ˆfbrJÚîL‚œÂâÒŠšú&Ê4ïu>ìîí#Õ×dŽZõÏh«~ˆŽêDy&ŽZ3Xõ“}ªzI´ì¯¦e_©#ûêÆDö_½¤zd¯§ eŸDÐX[UVRDŠ7 ˜&‰Šx,Ò¼.NLTõÂÁŤ`®'ûFÄ¿±¥þU ~s“ŠúùD(êG©©ïGaßw­R_$‘Êhêã:çÒÔ¯§¨oJPvßÍE›úd樑3Q_çiBŸ‘LBý”e¢ê/´úÈv©½ƒ£“‹ ©LŸ´eû®Œ¬¿³çÊA4›A4o£hvõ<~ò O©>œÑ©þw¨þQ¢úÛ6mÐR}—AUÿÆ«úº'—žìãÁe‹Õûû•ã,ûo Ê~_o÷ÃN:ƒ¦úšŠRJ%÷e¦§‘{K)Ù‡êõþÂ}%upÙ,^DdŸŽAU¾:ØŸì?Éo<¨ßXWSUÔ?‰ÔÏÊ Ô‡„BeÒPŸÔìûõYl®@$ WI\î‘üSEçhêwLAêÏ·ü€¡¾Ý›ì¼á™éÀ†qÌ÷pð,P270zh™Î®îžÞ¾,®0 X®ŒŽCÍLÿ*Ý€Sy¡¡©åê ôLœ“¾þ¿} ƒBçÕ¿_ê_ÓTý}´êG0ªÿ¨þgƒ«þÏUõµ×_SögéȾ#û”ý¸ › ûZÍ;ì ´š÷ù3ýÇ=]B„ÐÜX‹Õ{ºàèÁœ½˜BBl„BFº×gµ‡ÄðéÇKm¡|aéHû2Ah]FÅD¾ñ¡þ…ªòÒâ34õw¥nM†^•ˆ< eß¡ïÏâðb ¾"÷9%-=3›¦~‘S¿‰ú£~zÐgs㘖„6D2W|îáåãÇnÂ"c’Ñ2÷þñP^𦼺îâåÖkíŒfœ<{þ=Ê«~}¾êé¨þâ…ó‰êÏ™:ª?¨ìÏ¥dßJ-ûÞkXl‰á }qu´_o½|±®º¢´¸ðDž\»Ó*‘оÇá ²¿l‰ÍbXAHvûW… ûê7:êgdå Dý ~=RZù8cOÊ&¨åźà@±Ïe£ì¯Eè³Ø\¾PÔ‹À…Þ¶cCý -šú6NêçiP?¨ïk¢þ°Ÿ™žê›«T¶ TÁ"Š5ËWºƒbús…ÁreÔúDrîË=|ìDaq©š6pv÷öõÕAnBnµL7†U¿SKõOkª¾’VýÕT–¾ê¿c´œ@ög–}_ƒ²ž–ýÛjÙÆÈþ«!ËW[ö©ÍSÉ>äÐÓ…²Ï´oYIÜ\A&wnß²1>&B!“ÒI¸­prt°_jkmµv.`’…öß1æ -ž°÷vÔ/Aê7 õúmm:Ô?¥Iý˜ˆ0yˆT""²ïïÏU_ ’HCäa‘±Hý{¾Úõ,îZ;PÿAê¿1&êó õW˜¨?¬§ýwUПe1Ic9¡•õ‚šn`˜l¾X*SDÄ&$mIÝ•±f¯³¼º¶±™MWÏ£'jǤæd8´aTÿ5­úA;¦†ê7\¨\õ?ÆÜÌCÕŸ;µTßìSaвo9LÙ¿8”ì¨}qõ蛫¯·[U¿Mõ5˜ÄÉc‡s³3Ów V¢”òàˆÂ×ÛÓÝÕ -ØÞγ`˜C+ cŽcbÞ˜R¿PÿRc}muÅù¯¡”ñƒx¶m†VŽTõ€ú(ûþ}P}ž@$ UFáFo‡ïîÇ»@¨cÔïÿæÛñ¥þÿ†¤~'©_WUö5ܘjêË õ½¿øœ¡þËßš¨?ð3Ó m—´^ÂÔh>$~igïàèäâºÊóKJ0Cã5Ô9˜†Yy¡¡©åê dMçÿ¢êÔ0ŠÉÀæÍp`óÓàª_Wm@õ%Œê;é«þ{¿"œ™ª¯/ûæŒìÏ‘ìú¶Ñ²O,:º(Ù=’ú%I¼T'ýÛ…ýÛqóZks#EAÞ!°É]©[“b#à ÇÏÇ˃jàeKlƒzAÃΞ9ƒî`&u i ñƘúW¯´\¾t‘P¿¤Ó¡©Ÿ”¥ •Š…|}pŸÅÕç ÅÁ2ExÔúDâqðݼ‚ÂbÜh£¡þ7ºÔ?£AýpõGôÌôTß\m—`— ú Qz¹Ü@ãµÆŸø%L^bòÖ4$Í¡¼… Õu/·Â=¨…MÃüiÃÄ´5 s˜ªï­V}+µêϘJª?¨ìÿz¸²_ŽYÙ¿×iPö‡ŠBOöüÇ/¾ìƒìÃö=¸÷έm-˜EYIÑ©ü#ØÀ;·£M†C"©`7'Gû¥¶ÖV ç[~qÌÁ8¦CT&ìÓïm©_YC¨…¡~+R¿¡¶ºò| t2žb˜Î–¤ÄõQáŠuÁR‰HÀçrØÀ}6›Ãå Dið:EDt¬tê®?ìÍÁ•«mln½Þþ§»“Nýï4¨ß¦Gý >XE}ÇO–™¨?øÓ‡¾Š23gYÌA¹ÌXYSv¹ÂÍcµÏZ6_,•^Æ«®Aœ¼2Æ/ïàŒ¨HcHõ ¦ÕW f¿Zõ[iÕ?eXõÝ(Õ·ÑQ}ü”P}-Ù×lááËþ êî2(ûÿNÿ5xvÁòÑ ÜK¸£诩(-.$œ™ž–² ¸¢”@ûz{º»:/ÿÝ'öv6°…ó˜ dº*“ìSo,¨ßÔ¬Eýæ&ŠúPÉx‰a8)›6ÄÇD*CeA‘Ïã÷¹\_(’ËB•‘±ñ7ãNïË=œò ˆu1‚Çý¥»gú‡I£þã¤~P¿‰¦þ¡õƒ S6:†‰úÚOúZf9}&ŒÜÜ÷ª¿€†ÌrgpK¯5þ„2a‘±x î&Ç`…ð‚k7;Ð.»z=yªæÌ¿pHF úÿQ©þ Zõ{)ÕoêÿŸýòþŠòÌâøš-¿yàXˆTÀˆŠ‡•H0èâ!¬²Áh,T‡‘ŽôŽôRTT RDDÀ¡ ˆcAQE@Ac6Çh5k’]w={ïó¼SGDQ2Ïðþð~ïý|?w.¨åÌ÷PõÇYö/ŽEö¥^b<²O//~3¯ŽCJ8;3 }2"$À×ÃÅZØÔp#ˆ¦†úÒŪ 0èáé _ÂHdØgÞøPŸG¨ßB¨ÏãÖÕœ¬,/-.„l ’ã¢Ãƒ|½Üœì¬-@öM û††FƦf,¶¥µƒ³»×ŽÀÐÈ»’÷¥eÂg‰:4óú’Ô§Þð©ÿŒ¡>`€PÿR¿K@}ΉҢ¼ì õm-¶oZÔÿLHýÙ -Œô‰œOFý?ø2E úB± fî|åªÀ ÍÏV­Ö[k°~“‘!ãé‹nI¤)Ã;…rõú‘;÷þIfD3cWý.P}”KU}¸Z Q}ÓWP}Aîï:_^Köw¡ìçHÊ~/#û„²ÿë(d_X©ì3y´µžmiâb ÎJ'„ûyC ÛX°àø÷ÒÕÑÖZ¾L]mÑB¥yŠPÄ3 ˆi&bØÿà÷Žýq¤~K Á>[_ÃAêÉC‚lâc"Bwx»»8ÚÛ ì›™Á3661Ûj¾ÍÊÆÞÑÅL.>+œ!N¯™OÍ¡·ð.ŠLÐBý¿eêÀÔ]o¿$¤~¾õ)õ¿ Ô× Ô'˜.ÜõO:ôÉÀÉÉO#„Q$b©¦®¡¹b¥Žî0Ë-&, dŒ0½3.,.«àÈ´¶µ‹¹%Qý'/RæTÿ ¤=®ªÿ ­œèŸ?Ìg€ÙWAö@"TöyŒìwA ƒ/“ý—a_‡°…1û4[=7®_½|ñ<ÿTc}uUyIQ>$²wBlTh ö°ÛÌhó}=XC(bÌDe>èׇè_‚P„˜ö'úßOÌ{ êgå€s1ÔGÕGìƒì7Ô×rªN”;’ŸŒ‡XdhŸ‡«Óv[kK6`߸Ì7Eèƒêowr󄥋ŠK¤ŸÅ¥®Ãj»Òâð.Q¿¢ô(¡~bldˆ¿·PŸ…Ô_£û7õGxS†à…Z%ÕJ9¸ýæ)1^©¥ „Ñ_GÅÒÞÉÍË/H4GKË«j¸ÈPý®›·`B¨ZÂ9øŠªÿ_)ªÿ=ªþàí[7eŒ¸ê'Š©¾É$Rýeÿ£—ʾHĈ²‰Œ\Ãÿ¯a&‘G‚Dàøêíî¤=ÜÜ+lÉËÎH´€Pøx¸8àùe¸‘ibM õ¥‹U(ìÏœŽ©LËç²?~Ôo£~uUÅñcE¹‡ lä°`_O7g} 6 °OžÙVÛ‚¨¾»—o@ªÜÞéDå@`©Áä`‚n1Þ@¨ÿô­Pÿ·_ê?§þÙ–Æz†ú©{…Ô·do§¾²ŒúÒŸ8ô‡HåTU_”?V]B´rÕj½µë7™™[Ú:¸zú„F"aÒ2³óˆXâ-xŽALßÀI³|uÆH¨þPýnTýVP}.Q}Ë´I¬úÃ˾ÂH²Ÿ8Döù‚"¦Kû=Dòh4=,)ûäúìÇ"î¸ÒÖz¦¥‘[Cί\0Jlâð ?owg{ëm,Zź:ÚZË—©«-Z¨¢4O‘Ä2M°±Ð\dØõ¤P¿ ©ú4b¿‘Ç­«>Yq¼ähááìÌ´}{ šˆÀÞ(ûvÖ–lsà>¼­,s¶…¥ ¨¾«‡·_ nurJjÆ!ºÕõ-g[/M õqîõáÄÄ ©L¨_]QÈQßNDýO5Ô õeÔ—ò¦H(%uJ2nròÓ`ÞfÍQœ§ xQS×Ð\±RGw ðe‹ ËÂf»3¨Fp8‘‚ "à•Ü&˜¸;»nöݦªÿ&D(–8#ϤC_bIUý:TýBFõ£ÂÇ ú¼h£ì» d?í`N>‘}.È>YÚný;¯+ûx~= ²MÜsãÚÕËÎ1÷WI­â„ØÈP’ŠÛÌhó}= –±ŠÈþ,…ÐÆr´™:Oæ]Ïæ¼±S?]@ý†ú§á¡ìõk8•å¥Åp†üzÿÞ¤ø‘¡A~> ûŽö¶ûä!ô­mAõÝ<}ýƒÃ¢bÐårò‹JÊ«j¸ôZ$Ú&GvúñPÿ»©_ ¢¾»PßdóõÕ@üdÔ—öDÐ'FIÙBá"ã6C¡¯ÄÐEK¤RÅ‹½“ZeTl"¨ÆA:ä$Z VÐ?€Ð-©þH^)¦ú¿üò”ñÊûô°ëíî¼ÖÞ—]ÕJ—dêÛO>Õ›ìÛ¢ì†E1²_H0qÙ¿Kdÿ¡ìÿ6r(Ϙõ#Øüè§‚ì{wðvßÍîN”}8Àj9eÅØÅ©)Éñ1!>.PƦ†™\45Ô—.›?WXÇS‡ö±ö'úçOÀ7ê·Pê·œjjl¨¯åT(;v$?'+’Ù@dß`›mnÎfo#Ðw@ÕßÇ"®unц†æÓç.ùé¸ó šîô¿†Rÿù›¤>øCýþÞn°?Jýʲb¤~JR\Th€RߨoÔ×J}yrUʨτ¨¿ý†ª>‘JTýªò’¢üœLTý˜ˆ`FõÍ&êZö¿ÚbBdß“ÊþɵYëä2:Ù—,cñ\n\k¿t´quåñcGò²!˜Ý ±‘¡¤Ží¬ØfFà_úzØÇ4‚}…ÉF†}òƃúõ H}>Ÿ`¿¹‰Ç­«9YY^z´0/ûà×û÷&íÚFdßÍÙ°o܇gemÐwtvóDÕŽMؽ‘¹ÊêzÞ©3çq­»{ûèôàR¿=ê?PîK¤~¥~Måñâ‚\õí‘ú_ Ký?˨?EÂ&©N’Y#ÐW˜ÐWRY¸H „RKТ¿Ž¥½“›²¦APÊ’ò*œþy„Ë¢úˆ¼H—ð"….Eªß/Uõ÷$ÆRÕw`T_R©þheÿ ¼Â ”ý`*û™4™n#ÊþìK#ý—aˆì?EÙÝ`}7»uÜP{’&“‘š’âïãá‚јn$…¼Šd³DYÎTA:ØÉâñ¼ï{mêWrúÍ õùDöêk9U'ÊŽÉÏÉJOMÙ²ïëåî -Ø·GîÃæÛô]=¨êÇÄ'íî5NÈ\û5\kp2<ÿ<‘Ô¿( ~!R?9>:,Ðשo -@êk}òW†ú³ð¨£þŸ„f1ÑyOÌAŸÈ$Å -åŠÌê$‹êâ“«Vë­5@²€P:¸zú„DìÜ•œ’šJðöËó©Êô ãë—äCÂè5.¢QQ1L˜0Ee 1,QQQéíçÀ9ôÞË¡wE^¥w°7Alc[ëì¦ÌN4qsßÏó¾ç=Y3”çx¿\÷û»~e]SkÇùKWoôôõÞ{ðè £”ä>F —aUØBU¿½¥S}1U}'iÕß0•Tÿ+Ù|>)û;©ì[ ì{ú¡ì§KÉþyÒÇwîr²OÿÜÇZǘ þƒO?¼}| û¸«½¹áDS{òxzR\tx°¿—HÙ˜›A#ëéêhA8jª*ÊPÉË@öûð;JaŸ“ýIÐľϣ~n~K}€~{{;bŸÈ~eyIaþé“Y©‰qÑ!DöÎŽ€}+ ྙ©©0ßÂÊÚÖžç,¢ê“ÿ?ZP\^]×Hÿë[d)¢2¼–¡þ¾8õ¯Pê—æõ“b9ê@êoÛ¼qPÍÊŠ¿#£r†úRO*2T‘#X™O ¿l¹Òª5*ªjk×mج³]Oÿ¯3261'>éíŸÌQ‚7{û´ÐóàŒr”lùQ¢ú/‰Q´Ü¸zé<¨~UýãéTõ=….Dõ¦¢ê_öPöC"ʼn©™Òº†²…<œì¿e³Ñ¼yõ‚)ä>šM+ΰÒ¼SÙ™©‰±Qa¾žB>ÏÖÒì𽆻w‘t4Ô¡“ÁÁ—.Q ¥L°ùÐVRË“"¢ |@ýj¤>¨~;>”ýFýªŠÒ¢‚39ÙÇÒ’ãÅ‘DöEn|ľ•¥…9y–V6v}¾›»¨~x4 E°9e€ÿš¹0†¿KSÿ¿?õß2ÔÿRÿÑ`¡> $#/'+£¾ù‘{ €Ú@ý?"‰ûõgËýúCêO·û"o$èÏ™‹T‘™T\±R°¢®¡©µeÛÎ?ï6Ü\±²ãñE^~AaQì,­mä±É¾$›ïß0üàÞþ^²Ã:Zk«Ë±’³2RÄ!>nÎ6ÐÉû÷`<ÚדR^­„ù@+/˜ͦÍ`b¨_ßH¨ßÑÑA°²_]YV|6ïô‰ã)Œì{{ˆ\ùÎ<;[k+KxVÖ6¶v}‘§PX¤lŽý±šÛ».\¾ÞÓÛÿ5³ñ·&—óî PÿŸHýW/¾êßêwõ«ú§õC¼E|G þ^ýêðf Ij’„ú³áÒæô-^J\©²~“öÖ(“û™ZVàÞÉÌÌ&\!;°ûâUª“DõÉu€Oþk4>9Dõ¥ÀrÿîÀmV'ëªQõO‚êÇE‡ù¢êVŒÇ¡ú“#òOȾüb„•ý Œì€R¶w¸{3²Ÿ²ÏüºWȯK…íÅG*yäp>¨d’ÎÍk—/tµ77œ# ñ$ÅE‡û{‹ ”­ÍMH>zº:ØÊjª*kV)-§Ø§ ɱa1Ëd49Bš¨7Ô¯­oln!Ð'ØGÙ¯­©*/)ÌÏÍÉÎDÙ - ðõö"öíûäÙÚÙ;ô]EÞ~Tõ3²rr ŠË«j[:èN`„ÎDæp¾õßpÔ¿ˆÔ//Êê'ÇEI¨¨¯‡Ôû›¡þ‡ƒ>ñHJ RˆI.¦,W•TU[»nãfízú{ŒŒMÌ­í]ݽýC"bâɽ—UÕ6´ Àdl‡ ¹ŽO«þp\ùc&›T¿÷&Ö;b¥²´0ï¨>‘IT};«£‡©ê#TÔ§”êZö #ûƦ6ÐʞΗ“R¦²? #û4žãßûntCŒv2q/Ï@_SÊõ5L>‰±Q¤•ù<;+³Ã÷îÞµ¬¥© )¯Ä^V_øÛù¿?’Ã>'û“*¥ zE}TýNxDöêÎUW”‚쟢²àë…¶ïâÄst°·ƒgïàÈsr¸ô}‚‰ê§;q*¯pÈL›£¾@W"½› ¦þOR77„úO=Jýì Žú&÷~«¯§»eÓz†úK/’¡þ/¦7õe /9$ -ÚBy‚eU5õu´¶èS ÷•´ãñE^~AaQqIi8 K+kê›Úèmô àdeòB+³I‚•w+D&QõŸ?{úe²¨~Gk#]\K]¡âæâQO]Õ£ìëPÙØ¡ìC-‹@öáç-ed[¹ÿL±'Ïèo)sS ì«¿·çú•‹Ý-µÕå°År²2RÄ‘!>$!ÓCû±—wlÕÞ´#ÂbV„ŒÐà™ûý)§3öÇIýðhƽ8êwêì77Ö×ÖTr²ŸäØwðx~Vb}sw8øcS]ŽúýŸ¸›ûõ¯^¬äŸ&Ô ôqðlúû¾ý ¥¾Ú~ à¨ÿ«ê5ôçÌ%@è+Â¥QÔ547ioÛ±‹ ÅÌÒLÒÃ704Rœ’™sælIQI2)T†qɱª>º$ •›×.£ê׳ªŸ‚ªïï-“¢úJSGõ?!ûóed½DöM,l¨ìC/Ó1Fe¿›Öò]ZË/_q[L: áZ™ [™Ûb/q‹a-ß¾Ejƒ1VUV”½œìkÌÞÚ‹Ù@_2Ú¸n­6³Òr ª™bŸ¦$‹ýY“+¨ x㡾§4õË*kjšZZQõ»ººö‰ìWU”QÙOMŠG…‡ö½=Ü…®¾‹3y.|«ÐÝ“B?:6!9UÿlIyumcK;ù³ûúïÁÝ|ÔgmîÿAýÁþ^ ~7Р¨Ÿ-¡¾1Pÿ–ú«•ú_/@û£Ôÿåô¦þ‡ÐÇ##ÔŸ g6oÁ¯¡F*­¦@Ù¸yëöoô öì?d -Dqv%"Ã\[qYU­Ä$aÞøxSFTÉ÷RЗ¨>Ç”Á¾žë3§úÇÒ’°Þ}‰Hš³ªO‡úY9õÛ€ú]]ÝÈýŽöÖæ¦Nö¥§$ÆÅDRì{zˆ„n®Ÿ/¸º EúáQâø¤´Løb~QieM}SkçyÖ$gÃÊÂ[–úïê¿c¨ÿØ–ÄHýK„ú@ý™õ-M÷‚õÿ¤¦J¨$±`A0­©?K–%&šP‰œ,WZµFEUm-òDW5òà¸5'ÈË/(,:.)íØ‰Óù…ä4ÚØÓ$")…”Ñ›ä[Ö$)/©êß½s›¨~gÄLT?+#%!&"Øß UßrXÕW˜*ª?jÙWQEÙ×feߪ÷XXT,†„²_ÒFç›ÑxdŸ[cP̯_>g2‚9vý -4sKcmuyÉÙ39’824ЪÙÑ–¦´{×èfM ŒIyå -Å¥KhNsçHaŸ“ýi‡ýÏ ~FVΰ¯Êš:¤>@¿b¿­µ¹±î\uEYñÙ¼Ó'³2Ó’(öü|€ûî"¡ÐÍM(¹ó}ü(ôãS3ŽŸ8ª/ës Ïž¿`®Fʾ0õo²Ô/)È%Ôòõpu²ê!õu´4¥©?†úøfÉ¢DŠ%r¸²…ò -H“•Ê(‘šZ[¶íܵÛ-ÒÒÖÑEèé)NüûåýUå}ÇñÓ´ù¥=9ÒÄ&m%âÁ`±ÔÀ½QQ Ü{"*ÊÞ—qY¸LÙ C@@¦,™nD -Úôä´® Ïicæéûóý>÷¹\‚ûòüÏ/ïÏ÷õ~½£ã’Ò2²ó -KÊ«j9Pnt(<òþÃ/¾”ê÷)’¢êw3Õ€R\@åÕ—ú’êÛZíêúÉÊe\õ¹Dj %ÕœìO`²?ÝpÉþjsŠÉÒú½³‡ƒ,Š€”x5ãý¶Òë’ ûß"£ïfŽ}Ï2R4³¸Çº:Û[©šÏÖ©,+.ÈÅ Kˆ £nvq°³µÚ»sËÆµæ«W/š?Û“LOWí¬¡>ê}`*FØGR¼Ÿ{cÿuðʾCý3µŒúçñûõu5Õ•å¥Å§òsOd¤%'öeÀ¾¯ÄËÜwvrdŸ“3˜ïá%ôƒCåQ±ñIø!©~yµð´Û:nu+\^¶ø°xÉÔü@ýûwÔo¾T -Ô©¿Ñâ“•œúúûÔÓõßV—EŸ -ôÛ újo3–úã4'NÒÕc9±±‰©ùÚ[wB"í\=}€“ÈØ„n‘•5ÜODüJ„þ·ýC¿Pþ ÿìN÷­Ž¶–kWSmµ°Èx9ûy»c’ÙXîÞ¾y½…Ùªå -›l*êYG oØÿË{û<ªaýBýª3µõ úÄý³ õýŠÓ%Ey9Yé©À~4Ù~ ÔÏÇÜwsuaŸ«˜ïíã'%ÓŒ‰KLIÏÊáªU¸tåZk{'ž6Tá.Sq ªˆÂË >£>–å¿ANýó ~YQ^vzr¼’ú»·m´0[¹LA}m°`ô¿RŸOBŸ.ŒQnlä»@ 7H]½¿Oa4{Þ¢¥+V›YlLöÛ¶wv—ø…Fpšä•1‰¤Ëhëä8ùϽ¿d)ÜÆàxòXà Yä=²HÂÉ Rý³õ5•PýÜ,¨~´\àëåêhg»ª¿žTñü9FCTõ–ý‘TÐ*²¿I¡ž±É¬¥ ¨Ù‡·)_ð‹¬gL}uó1a‘á%R9ß麉·¨˜d%§x;G…‡ (7§£P=¯[ÃFÙÜYÔÏT샿*²zK½L•ŽþeÅõìßsR?ûdAq£>©þú€ýƆ:`¿¼¬¤°àdvfzjÇ~H tÜ÷ôðpÇçáá æûú) <3›µWýæë7:nvÝa7COûÑ«¦>˜  ~gf%§~~vz -Q_*qw:b»Ô_ ê/õ§õ5E꫱-9œ©ß'ôEpôÇrœ:ÃpÖÜ…K–“AnÞ¾Û,qrc -—”– ˜””W #—Ñ}ç š (‘?õ)‘Mþy»«ªÏ²¼„©~BldX¿ÄÝùè!bÉF…ê QÕÙŸú±V“ýÍèg6Ê|B()&ûel“ñ'Œ íÌsúæirbA}Mí|ŸÚ™…Çxálý™Ê²â‚“'ÒS(©`©§«ƒ­ÕÞ[•©‰1 -z&L YikRCSXzçmµØ“cÿá†ýç¦þ©â²Šªšº†F‚þE|à>a¿¦º²¼¬¸0?7;óxjR<°/ -”‚û‰··——··Dâãç/ –…É£bâ’Ó2Näæ–ˆªß¢:¶EQøîeQÿ§~©ßÕÙÖBÔ¯­"êg¤ÄÇÈCDêoZk¶ -8Ûpº¾Þ¯ÔïñýF•"LöŽàÄ Mmæ3ç,X¼ÌÄtͺ[wî;pðˆ£«§48< -—–~â$@bÉåæë­í71é2îã2”0!!”CŠ0yøàSÈnRHKŠòs³Ò’â¢å0HB‰Íþ=Û7+U*©>dW}µ!¢úO%ûhh.û[wí;€‚vB#cRÒ…27a”õHª/Ùp“)ë™'õùg4ÊÚZX?×UW”åçÐ*‹‰em؆fÙ 34ô¢y³±ËôõtuPÑê£ÞgͰÿ‡ß÷ÌkØaÿ™¨ïÞ‹úÕ >©þÅKøÀýógëýŠÓ¥Å§òrOöŽÅDÉÈûR?_öùÁ!¡áô³ròØïHèð¶o(ß6ºž>'žËË¢þÔÇ¥ Ôo¬­:3ËHIPRÏv¢þòžÔ‡ªRÿÍaI}諸# ¯è¿Ë¡?Nsâ$]=ýi¤‹Œ $¶ptñ€$1ñÉ$Ee‚´ -: ŒÀgg‰Ò ±æ%çPìå%§¸@‚$~ÞîNGØÇü‘T.©>ãÈØ1£‡˜ê$ûjÂ2cÝKö„åéÎfYN>eÅ Z¹ÊxTªýÜŸì³wÈúY_exŒ(è–«MÏ5ÔTñYÆZèçåætôµånVÑ«–/Á03œA­£…¸Ô©¤Y^#X^<°a‰ýg¥~pX£>ÇtM}ãYýË—/ƒû ûµgª€ý"ûq±Ð}p?àâ  óÃä‘ѱq‰Éié€~AQiy„Ž«~Ç­ž#>mU{UÔ¿zùQ¿ÔO%êøx8=hEÔ7Ç…õú¦)Ùƒú¿Qðºe_Чó BîH!yÔÒÑFfΞ·péòUfÄKëCöÎîÞ~29I^ai9Ó¦«-"IHD|<ôR@_H(ayÿž@’v®úug* ú9™ITxˆÔÇÓÅúHYcjB‹ÎhWýqCPõ!û£ÇŒ0Q%-È>âÂ0Û‹aæä†´PÑ}ì²’ÓUBXhè'eÀ¬z´0ËĆîêloUì²ÓÅTÑ©‰ÇxZ®ŽGÐÑ»¶mZ·ÆËlÁÜ™(é)“?ÒÖÏZš&ÖtŸØÝ¼Šïù©_rº²º¶¾ñÜy‚~SS¸ßû%EûɉñÐýyx¨L̾™,4\s,>1… ² ƒÐá\𝷶÷3U¨ÿb ?ê7qêäd‚ú2%õ×õ€$À:sÀaNý O÷%¨£ú˜±ãµÈqc³æ.Xy\³nÓ¶]û€G7/_Øc”°)Á‘®­Ê ˆÃt@UõûñÇTüQ ’î[,`¦œ#)ñ1¡~ÞnNÀÈÞ[7X˜‘<Eô‘²ÖTýÁÉþ8.û3ŒcSä…’¶9lïâá# ¦¸Hö Ki˜‰i1wCE÷¹ËUôT4^c·0ÌÎ7ÖUSGçfO¦¸‚ü%.v¶V{wlÙ€ifb¼xþœ™OÓ×›TпrÜgØo`Ø/°Ÿž–Bº ð‡……â —G€ù±q I)i}ü¬B‡·ÝSõ煮 ¿–_&õ¿¨ÿ5§þ¿HõëªAýÜÌÔÄX%õwl^g¾ÔŸêOÆk¨âÔÇ|’úÃá¨èëú‚8Ž`Ð'süPc¼¦ö¤ÉSþ1Ý`æœóµäŽV¶vŒ"a‘±Ç¬Ü‚â2ÒÚ€­°Çn‚¾°ûàHÿª/è#çÈ‚êßF¾­×š9FJ óÐëǰ`)(bØÚr÷vrGãEt¢ê«3ÕgH©þ e_‹dšÁLÔ4m³ [kiL³ˆ˜øä㔕4—}zÇÔÑ,®GŠŽþ™´~‡™"®/×]¶ÌºovÜà%][UÎòÂ4‹–ËÐÒîÎö‡m,i›¡¦W,]4o¶a_Wgâ^&Ïì­ÿ³_Þ_UÞw?鱚ÚÓ¸¢Më1qO÷@Å{ïmÔ(*"‚ŠŠ ·2Ùó÷²áÂes ²Üi«5ÖÖ4ñ$çXÓ¾?ßïsŸ;P¨é ×ç‡çx¾¯÷ë­šNj¿ÆØšù½ õƒPêõ ŠJJ}•JU îëa?IAºèïçësÙÛûû¼½/ûøúù^  ‹ˆfÐOË”CèJÊ*ªªëDÕç[wþÔÿž¨½õï - ~Qž<#ÔeÔ÷<´ßyçÖ þ¼Y﩯û} ‹Æ5@à:wáÐïÝo€!Äæhcï0‹²fè£+®ÌëƒwG¹¢£¦îæmn$âä‡ñ¼QŒ¨wÈ Tê÷îpŠåçfQ­3wD<=Ü]vsudªo Õ­¯úíZê7.ûø<#Ù72ìŸhiÃeÕúÍÛv:»<.x³m&‘¦f°ÀÐÒì!ßðð‘v^–ô ½’òRO³/ïÞºQ[]Y^ÊKIЉ š¾pæ$Û·gÇÖMëV-[4ö Zg漨Yf¬©Ù>Cj¿o«ÝÕ…ý·CýþAĤ”ŒìÜ: ØÀmÁè.hE´ÜQ‘úÚë*¨¾ùJ%Ä+ÞçO?rÐÕyç¶Í„¦ú–Pý‘ÃLŒè¨þZê¿BöÛ²&È~÷^}¸ì›bž ²¿fÖ™‹›“}ÆY~Qi9kšo3Æ_òsu`´´V`¼¦°šV'–—“™F=~-";qô›Ë.õÚ•K"³©¶ÔÔcšñÀþ}¨ª)5†}/kƒÃþÏ£þ‘ú R¼GP¿¸T Õ¯¬b_¥öÓS“¥‰L÷ÃCC‚ƒþö^ ºæGDÅÄIejè—–«®“ÑñÇ­¾•ïø­hÞö[¥þEêÿGŸú¾þJ›úI ~Ÿ†úkW,žçè`7y’™©@ýîݺêP¿µÁQ_úÜé´õÛµ'|0kì~ 42f>ÉzÊÔ³É×mÚºc·‹Û¡£' ŽW¯…GÇ'&«¸uG÷.šVÇŸª£ÈûE§ß¬ã易•&K€êùû\„82‚lÙÕgÞhmafÊU¿O¯î\õ;v`Òø»?ÔvÆ_3:È~k¡­5²ßƒšÉ°‘cÇ›[ÚØ9ÌšÚ`ðRgFE­((†ìר#Óñ·›JŒgšž~òø‘­³â…<3U–IóìÒ9/4õ~g§í,´…sg¡ª­Xj¬«ñ4)6`¿£8Ñ ûoNýÔ Žê²r@ÿ:ûªàûåeÊ’b-ì“îƒûa¡!ׂƒø 䇅GFÅÄÆ'$ÉRÒ úè2UŒî–¶ê?Õ;•ïŠú/^M}•XõãA¢þ1·½NÛ6úó§«©oôžúC·ÕñcЃKc¿„1ãÌ,¬lí§;Î]¸tåÚÐÆ½û ç.ù7&ÈR3åy…%8Œq~óø‰>Bž7Š]s|*ª>‰£@lŠ7šy#rø€ëž[7­[µüp°³±4?†©~ßÞ=¨~ë–¡ú dŸ˜À¡ÐÁiÉþÈþ k[t5Úš [¶ïÚ‹ª>yæö‘A––™“ÇeóLÌìõŠúEâþîÛ§Zóìö jjeq~n6ßg¡TÕgO;|`ß ´õ«—/^0g&Å6q/k䯱߅÷‘8Òèö›¦¾ñÐ/£þ…Ëþêç–(Ë*T€~5}Ä}U…€ý\yVFZŠ,)Q ð‡…††à ˆŒ&æ'J“SÓ3åú•ÕµõÚªßðRÄCy[Ð-êççd¦ -Ô?ï%R‰Hýá„„^õ; ‘ú/‡>7FbG§Î=É%zL´²±w˜5gÁ’„'gׇ:{‘óC"åÚ¨¬¨bùáÞøô[vÍ$óƧðF¦úZRý¼®àÇå gN=´ï.X#ðÕŸjkez b<°%«~“²ÿ ÃB_&û˜h–“™ì£¬±Ðöìs?|ŒºšË~rzv.KWµ¸Ïþ­ ­yM­Þg„}T5ž$Z^NVzr"º:äªÅæéáæ²{•õ²El¢MF[…àõêÉébÿ·ì¿§þëP_–š!ÏÍ/*Q2Õ¯®aq_UQ®,-.,ÈË•3ÝgÜ‹‰ŽŠŒŒ`_ddGÌ—¥¤ed‰ÐÇ&äÐ×Sý®ÂwAýçõ!jêß¹Y§¦¾4>: XÐPå’ù³§ÛõG‹Ôÿ'£~£¾>ô[8Ú¨¡ßžC¿k·Ïz‚ƒ>jìø‰€Ç´™äŒ«×oÞ¶ôðð„4^ö»Áð‘…ƒ5^¯Åd2ðˆñãµ´QŒõ9ƒ¾,ã´ñ/”-S}X#ÇǵßK˜r‡Ý÷íÙ±uãÚ•\õ'O2§Q}Ñ5ªßªE¨~²•Ö}ݧÿ@ã!ÃGAö­Ù¶;a¢=qšç#‘ªņç|ÿo¼«uZ#U­IMý¡«QWSlXhª²’ÂÌâf]µªL¤~°†ú›×qêÛL2dÔÿwÕ¹£>#‚S¿ç†ú:}ÜäèöY^}û"tŒo>Éz -Ø1oѲUë Œ»]Ü罯À£âei™9œ\¡úÿæñ}|4˱â?zHÒx÷í8ÐC!ÏH•Jb"˜3ž>qäà~g§í›×¯^¾hžãt{[«‰˜1ì×§'õú;kT¿MËQ}}Ùo¥-ûøL£ìh¥3Î|õ5FÚʵ?GrîØh—|‚Ã\rkkšh7o ¹ñçüý³&ËZ¡ eÍsã­®šÚº@‘MÁa£S]{?rÀÉmÙ°fÅô5EgaÆ ÙÑLÂkÏeŸw¶Ÿ!`ÿͨ—€'IÔ'ZWôëØGÜö+Ê”%L÷s²3Áý”diR"È/‰gŸD’ä'§¤¥gBôõ¡ÿ›„ôºÙ„ÿêK¢Ã‰ú§vwÙµ¨¿`ö {Kó&©ÿ›–~Mô髾}‘L úä‹&Ã@3 k[ûéŽs.%t|± Æxä¸×9ÆaM* -Š•U5€Ç]‚ÇC½Øz<{èsÕgÎxÑV–—åçd¥%'BÁŽ‹gOyz¸»ì&c\±dÁœ™Ó¦`Ë3bèàA˜«>éâGÚªß2 ÿ2Ùo£+ûÝ ûý˜ì0ÑÊÙQac¥99»":êk&ûI)ÙŠ^×ê¦Üü=7>ÑôÚZÜh¼®yr¹Yé)Iñèë DwÌ+mç6*ìÅÈÎÁÎm:á è×»'°ÿçOÔÍâ38ì¿õøˆÑ›,-WU’ê×Õ×߸Q__î“îW0Ý/ÌWäʳ³2Ò ü2©4Iø¤„üTÆüEƒR„>á×PÉ+TÿÅÛ…¾>õüSƒRMýʲâ‚ܬ4N}Ÿ ê/Õ¢¾1AÁ©ÿè·VCwEØ€-~JÜ`d2tÄhÓ ‡Ã,øâÿدï¨*ï; à'¶ÑžÔ¨uÆ4­QDQ”@DÙ 2Ä-ˆâÞ"θ•ˆ{ ŠŠF8PöÞCÆeÃe‰šhgØôØœöùþ~ï½÷.ÞОBÞ?îðÏó¾ŸçùºÍ[¸t%䨶 ƒñøiÌ -FGT-Æœ¼Ââ²ò*nG½ °Yô塾'ô<^˧~ueyi¦>[ŒœŽ¿“Gù`„žsç°©oaf¬/LýÁMOýNíBý†ìËÇ~7v©Q|ìP‰ôô q§±±ðÐØ8ÓöúbÙQaÓ•Æ¢+)ã}Íf\3tƒà%‡#íE­ÐוR]fZrB öõ+t¦òÝ»ã›ëV/_LáMw¢Êæé±ÎØïÛ§WÏ•ýfÔïpEêÛ8L‘«¿«žú ÉXb9’üB¿¬L*•üÜ}šû÷2ÒSá~B\l ÁÆžpˆÇÌÇÐçÿD@ŸM:|Ý/_ñwDôy·ÁÔo >B…úõ3IýÐÛAW.ž©?×eÆ{¦¾¶ þV}åè h`+öêÓ—£?xÈ0ÆÆ8c³ ÖpcúlWÌÅ5Þ›¶îÇNùŸ¿tåú­;aQ±$cq)€MÐñþƒ#åJtܯª#É|ãÚeÚ‹ Ž ^«–.œçæ<ÝÉÞÖÊÜÄ­Åáj,ßö<õEêwª7ö»vëÞCûA MŒ}}c3Œ}GZ„ž‹‘*wÚI¿€@„Ç›Ÿi¥Rd‡Âþ‰vƒ/úŸ-E‡R\ØŒý*œiEù¹Yhìø˜„‡;*ûà¾ÝÛ· =jî.èl{+sS#^Ú,¿hm -PÁ~aGaÿÃÔwi¬~X$>ʴ̬œ¼üBB_*-Çø¹ûùy’œì¬ÌŒ´Ô”ä¤ ~È%<ÑÑ1± ?‘ÌgC_’_¨@ŸÞ|ÝÍMý6VÿoL‡'ÕäêoÛ´nÕÒ\}K¨¯«Í¶ LýÂì@ê7~Ž>Cƒ¶â(RÃÈt‚•­½Ó´YÄÆòÕë°÷ì;x”ÜÀûÌnÉ´ÌlI~Q‰´‚£ÿ´V¾þÞÂÔo Ç»wì„{õâ¹h/)‰qQawoa.ø8rÀÙz¯ÁZtw™9ÕÑή?VGKSc¦þ6õ™]ÛãÔoÍØÿRE•ýq†&æV6öN(mºÔ¼6lA|ÔÙlì‡DÄÄ'SzŠ;­ö¹<¼æÇ~£ðxcSxìN“W6¥r;}î âç¹yýÚ•¬´‘ߤ‰–hm=]8B]M•³ßõ6»Öv$ö?Tý­JÔÏÍ£©OèWÐø1øá~A~^.s?=-59)11!>>öÓÏÈO!óïeçHò - -‹KEèãy!G_é0hkõ_ êW•—âõâê]%õíÛ-SæËñÆúºÚ£;¶ú Ñg`t‘£ÏÈ ¥8PeˆšúˆQ_éèêšš[ÚLš;·¢µW,YàáêƦ>mEB#m~—M}¿“G~»{ûæõki)Ι5mò¤‰ÈÖ`ì×_¡®¦:H˜úÜ‹OÚåÔozìÊÇþgŸ‹Æ¾ž‘é+[dèìF×Úºß BÖÛ—¿¿J RmÓ­F>(´vkN5öMÖ½EkËn5|—e%…ù¹YH޵àÔÛ!»Ö¼V-[ä9:ÙÛZ¡¹õ)Ä‘ÃQÝBЬ»…‹M9ûÿë Úè©—n“ê‰Ô÷ª¯>cLýÒ2 _UUÍÈOƒ¿¬´Xp?'›ËŸ‘.<™œ| ÌGi`èWTU×(A¿Í§~sêÿˆQ(Vÿ†Xýe ¡þT[¦¾Îè‘Wý>ªoaÑY†>F"¡ÏWâà¡Ã†­ýõXc3Ãiú¬9s=/_ 1v졡舗+84"&>)5#+7¿¨DZQEè SñðV4‹~=4~þY<Ÿ<þá™QLS?-9!&¹^»|áìéã|(’óÜœ1õm­ÌM õÐèä… -…ûY{ŸúÊÇ>£rdu7}Jq¼ÅDŒ} -‘šçÚ·ŽP†W®Óµ—(‹PÖÛÏ_Їý¶®®¥ùEø$ë%Èzû'êmÌ1azJb\TxÈí dxî̉#xs¯\F÷ÚÌ©“'ÙXšƒ}]t÷p5~±u`ö[V”6êÜÌÒÆž«¿’©€Ô¿¬P?G‚TIíʪêûÂøiðÓÞ—ÁÏäϺ' ¡ÏÞ ¥“à×DÿÃÕ?ìÛ‚ú=•«ß>_#¹úÍ¢‰8€°ÀK¥¥£«ghjni3iòÔ™.ÄÅʵë±}ö>~úì…KWƒnÝÅ»•@ïV^Aqiye5ÀÀN¬}ñR„~+‡¢BŒ×¯^>§L±å`$ÅGG`& ÿSÇÐæ;¶lð".\gOw²·±2717†¦¾¦þ_1õ™2* ÅïÛÝÔo4öAƒ°ùÑFIâfS×ÐÔÒA{›YXÛ9"G÷ù¸Ø¼7mEŒ¬»¿#!"… e÷ZÃ[{®ÑWI!¾BU7±zç&º›Åè»wçV*ï% <\gãd³³¶ol€ µ45PßHRÌþ?éPì· þê{rõ}©ŸGêÿ›ýú ªúL£¾kŸÝÄÞã¢tTƒX"‚Ò‹ˆ -Ø{ï]‰½wTTD:¢(b)Âå‚‚(MQwtb6ÛÎó¾ÿÛàâ³3ߎ™‰ŸÎÿþžsDy ýÂÂ"¼B¢Ÿ~rŸàgò?I‡ýü¥“øù|%}’«‰eTŸåçådg<~pïöÍäëÄEȹÓþ¾T¡ÅÊ¥ ç̘2aüg{kËá&C¡"êiköRûI¨úBÒU±êW-ûÍde¿µ´ì÷@”¬ì66³i‹²ï1 Aâzc²íÞØ9‡FÆ`±¥`±=Lç1¢ì—òÁ&ü¶?'Å?Sdƒßn#-¶4v¼£Âc€ŸÏáý¸Þ^k$m6œo';$ÉØï×Qbµá€óÙÖ¶ »àûÍûµ«ßSC[¢¾ãèq¦0õ½¶@}9õïÜg},W¹~QÑ zL~VøÅy~&&ìç/33++äË™ÿèÃü -%è7hÕÿÕwfê‚úºDƒ ~™úÍd,ü¿oW#ú¬JÑÇ¥N‘QaJ ÑÉ•¬˜‰Š¸r­×æí„…_ÀtĨظ„$®+‰ÏÐJ€>qñ÷ëß?~ü pQú -‘ˆs‘)iq#ñÚ•˜ªú„Å®m›Ö¯^Î+¢›‹ƒíH 3¢B¿·®–zÏÊ«~S<ê5”ýoønã¼—†¶;à&æ–ÖvNt¿gÌY°Iâ|³ÍvöBXTìÕ„$\o""G”ÿ “­„oùÅÆÝgÄ(eÇ»¼T˜l9YüzSØlΞò÷õ>´Ib´-Y@÷ÛÝV›¥9¸¡~]m^Œý®œýÖ2ö›7ökQ¿®¹¢úžLý5‚úg/HÕø8êç‰9Ý/ŠÙcòK -?¿(—Ó/}OI|"_Îü’šÑoÀªÿùZQ»úÑa‚üª©?Â̘©¯¥ŽBØØÔ¯Š~3}Ö~ûŽøž¨ª©kjë¡j:Ür” -¢ûÄ©3ç.X²b â®}‡¼}ýOÊÈK¨ˆ|EfH± ŽXù®šJ¹ø—¬$Ê´x÷¶òu…ÐÅ“G¿Þ½•š”+N?z`Ï4D¢búdÏq®Øpbˆ«úXq¬êwh/´CYÕo¢bUÿOÕØWVöÕh·é26Ålspq£,iµ­ß¸•¢ÄýÆh‹‘‘ž‰óÍ7[y…Bõ¸ÞU7?ß<Éäë×.³ûMQbµm݈¾xþìé4Ûè‚ûF`'\Â~gÄÙ®”ý‚ý:Õ×Ó7àê;põ-gêbê‡UQ?¿€£ÿRx$?‡ŸägôËžH”ÇÉ—7¿ô´êË©ÿá Ôïß8Õ¯Ž~sú­9úœ ´CÝ>äÄPó£l]ÜÆO˜BýpùjH±s//ˆÁ¡‘1W®]O&ôaDŠÄ2+$ñ7eû¯,ªTD²"?/7;#ý!5DPqñü™V!Ūe‹æÎœ:ÑU߯ÊÂÔ˜êaoMu‰ŽR%ª¾ª!Ÿ©|Ùÿ–—ý®ß£ì÷¤8û 02 iÒ ÷œ<}ö|ºà˜mŽ##B#/ÅÅ'¥Üºûë£'™%+ûå(ûïÞ ?ðz&‰(ß ÷[%V?àWc£Ã‘eà‰cGpÁ·ü²aΛM'|Œ³ƒ †Û0ºáˆSK£'qÎ~[%ì7Qaöë£þXÏ)3æ2õwì=äãÈç›TýQ^¾ ÷ËW“Â_HðC~ÐûÙÃßÄùùŒ|n¾¤è+A¿ÚWÑ êªEý¨°à¯ê+wáÒUë~¡N»í\Hx4HNfŒ(,~UR&wÀ…²ÿG]Qʯ6ž¥0Ûòrè‚ß¿“–’ÝrîL€ŸÏaJÓkíÊ¥‹æÍš6Écœ«³½µ•…™ñà˜n`_±ÿ~ª2ö[IØoªÒì×­~_ƒƒ‡™[bÀá’3õ7l†úÞ~AUÕ#QoÉS”ôÃ~Ùø$>›ø7Ì|*ú5 ß`U¿šúüÓ¢jXVR\ôŒÔüà®L}ßú¨ßBµÕ—C¿‰ôÛrô»±j¨¥Ó[¿?¡of1ÒÆÞÙuœç¤i³æ-Z&¶ìØsà°_À™ó!áQ±q I)iø®Ò3²s -Þß°CQ -¥T(—‚÷C…('+ãñƒ{·S“QɉÓþ¾Gî݉v¸réÂ93¦L?JX7ŠXûêéhöRë#ºtâU_*„ªVýZË~»éŽwÿ[Ou-*û We߃òÄß°iÛ®ýˆ30(84Ã-ñK33[r¬×WÜm”¦X’æÍ솇]8‹8i¹mÛDì/¤é†+îdgm5ÜìèG‰ -ìwûíûUÔoÙJP¿£œú†¤¾5Ô÷€ú —­&õzû3õ“oÞ–¨_õ9ú¥¥¥eeeø³”ä)“ŸìýŸÆþÌGѯ¬Ä×Pý­úRõéãú‡Dý÷µ¨ô«úÂSD¿©ýV2ô!Äw }u-½¾ý8ØØÔÕÐÉ•˜‰n¸r­×æí»¡•Ct‰Kqñ‰(¼Š8úäD¥úŸ …¬r'Š‹žäåfgR;×®ÄD\<ÏÊ!)±~õrÖ ÝÝ\mG²jHUŸša÷(W!!õA%«~µ²ß\’*…ÊË>Ö›¦6Ej4ÄDØ9áŒOž1gÁJWüèñ“§Î²<’Ør{’õT$–ÜðJa¸ýVßáÆ+»á~Úøm+G¿«þ¿%U_N}|W¯ÕÔ?ðU}öêBŸja}M OÅÐØt81z¬ûÄ©3ç.X²b UÃ}‡¼}ýDh$ë†ôUq%„rX( ÿLý·o^—³ª_ q%n¥$ÅDZnxêä±#öìØìµ–Œ˜>Ùsœ«ˆ07bDU_[£ï…: ×Öý–r:¨ UʾÀ‹UZö{Ð%ï­o`8ˆ¹ƒ‹‹ãmýÆ­;)Ql·‹áÑ—Y9$&²s0ÝgI™\žŸ¿Ü$Gœåɦ±ŸÏ¯8¥ív9g<(ðı#o[7âŽ/ž?›ÖòQ#̉}\r„JìÏ‹UÈUÕÙW¦þ·tË;w…újp¤¾±Ôwvó˜õ—®Z¿ êEžÁ¡‘¸âÉ©rê½( âô8ýL~N¿Â{Åwûß_¿~ƒï@ZôkC¿¡ª~uõY7|&ÎÍÆ‚¼›–’x56*4ø ©¿{ÛWõ?}ø ¦ŽZاßÃACM†[޲síæ>a -Ã嫉ˆ½©_Œˆ!#x5Ì|š+ _V!é†2%þY·¿Ëªþ[¶Ü^½(|–Ÿ—“…<ïݾ™|F„‡œ;íïë}ˆˆX·jÙ¹3§¢º8ØXY˜ýÞ:Z¬V¯úÍT¸ê++û-¥e¿C'á–khë"U£!ÃÌGP¨˜oÓgÏ_L‡œÖÛ±(‡¸ãñ‰)iwî?L—%ŠíöVºÝêsÅ¥ÛMzÆ)Ñì oi)I q±Qá!´ÞþK~GÕ¼®qwÏÂ=ëZ8ç CB$§N¢H©4)vÓnØMR”’™±A* ©””Js*J»vJ” Kѽ\Ëi@ážã,wuÖ}ž÷ýí±rs×⮵{ÿŒÿ¾¿ýù~Rä!!ÓÍþë¡É9ö¶,sSc]mMLUÀþdÊ>ÉuX°/ÌUPæýÕ_ª£o¼Ôw†@7õ#cO$¥fd¤>N}2Üq|’ô‹½.æ*À™;Ÿoþ×E_BýT}t‚¨ÿœªëƵÚjª~*Qˆ`Ô‡Yh´|Ù0Tÿ/"ê Ñ'6Œ!èÿ耣p–ò€«p™ø`βµç¸y ˆ~È‘£±ñ †p?ÖÔ]»D´´Á2|þâeg·˜ø] > Åè“öwº ˆZ·¼´(ÿ< ĸèñý{pz­vq´#³PW{‰:Y…³aêOa¦þØá1õGu`²Žýñ2(„,¡ 8_Ec]nhÓR…*ß´-`ïÁ#´É3s -.\¬¨ª¡EŽNð#í¥=þÙÇ›x¤ÈþÓvZäõiEÙ…‚hòd 5 î·€í›7øx­†ÎÆÒÌÔH_/8`°?c:¶9²?žÖ9ÃþH)fÿêO™>Õÿy¡QßÂÆÞÙÝkýÆ­{ŽŒOLMÏÎ+*«àbš·ïÞS¿‡˜ÿ†<¾ý=Ô~ñ×CÄç“/fþèÉ©ÿ§àÃ’PÿU¿ùV#Q¿8?;#5‘ª°Õç€ú¦D}µa¦þàèÿœŒýÉôU}2 -MÍX6öN®k}6lÞ¾ }8—|&#+·€àÖ]x÷AËãvŠ>Ã^>úŸIÄz· ‡áÓöÖG÷›oݸ~•삜̳)(ÎÂÀ€m}×­qãØÛX®21ÔÃ&WUž¯›púTÙI…6r•bôGˆ¦+:ö1Ú ?NÄdaìÏñ¿DKWߨÔÜʶ¡ÄŠ]~8"ú8¦ -N”\ª¬®­o ¡B“ÃØïì~õ¦·oèEþ‡d¦ïßÂôU7mr*Þoµ¼ÊòÒâ|H¸èˆÃAÀþ6¼à ÌÙÖ«‘¾Ž°¯ -7©ó©ÈþqöGI3ûbêP}5 èq£•Ööw/T?4"&>1%=+¯N·š:A‡ãéöò—.ïÄü^úDí—x¯_óÉ7ÿk¢/1õ™}[¡è'p°#ª/—Qõãc¨úþ>Bõ5A}bÆ´a¢~?ôG2èÓA(@>$°AeÁB @_ßÈÔÌÒ†íä‚:À( <w2)5=+§ ¸¬œËšpH´ÒOê—®!†Œ>éoþÔïƒ]ØÝ @ü£ãÉ㜅 õWª+/•æegœ!<„Ú·G¡§»³ƒ-ËÜq SÞœÙ3åH¨dúMýo¤X}!û"cÂ¥c®¸©­¢’²*&«g°b•…5ÛÆáÎ=˜+¹àÎÏÇXñ€»Õ|ïak?Uñûmˆ¡òï7˜e”ýNæ€k}H»c%–ù±¨<ávnÝèë Á:ÚY[@/Çd±Ï1Z`_–°ÿýÑRÍþ§ÔŸ†‰¢ú𠾩¹5›ãæéã¿egàÁЈè¸S)ga™•–WòH˜‚ŸèK2õ©åˆ9>!þTæ‘?ÿõ–/nþ èyõg¦Bñò|QaGÜl¬¿RUQVœ—žêG„$ê{ºsØÖæ"êÏ.ê€þ(ô²A„óU-}#“U–ÖlGwOo?@Ïþ Ü„'“RÎf‚ðAU_¹Ú€_”‡îW¯{Á‡áÇÁ÷aHS_€þ[@¿‡Y…m-ïݹÙx­ŽÇ-‡?.íô)hñ°`ÄÁýZW'¶µÅÊzÚ¸••æ*&ýˆ¡Ž#è‹©?ÀØÍŒ}¨ô Ä9ùÙs [¸â–ê,721cÙÂ8$É uì¶9žp—«®\½NÊö!¹à„±~F—ÿ[´ËE.¸Ž'4××ëjª._Ä6'Á‹ -Ç:ß±…qÎvV-e_ Ï8†}¸ã†ûª?ޝþLÅù*jêT}+¶“›§÷Pÿ@Hxt\Âé´ÌœB¸Üxµ×ÉoTL}Á€§OTÑ××' Ÿ1ÿ7ù_ý?_ÕGFýwŒúÿ|Öêß¹Ù@Ô/ÊËJO9‡êîÜËÐM ¾ºš -_}b£þ(éT@ôG ÑÿŽ /KÐ`ª/ÑÒYnˆƒÐÎÑÙÝs/.ÂýAĆĘ„yE%—.úp<Þ¹÷°¥íIÕAb~*ú˜$?J¾OÛ[ÑMXSUqñBANVz*NÂ#!ÐâÛ6ù {K3„K/Z‘Ι%/˜ú㘩?z8Lý~cŸ¶:äKãDÓ«ÛP}‰¶®ñJs+;G¼âü·ìØ}—|&#;¯¨ôReum}ãÍ;÷´<~ÒÁ´¹à„ûÜ\ÅÚœ²ßŽ7©ó.$[˜ G\ò©øØ£-°…îÆq°µ2ÇF_¶t1ÜqÊJÀ¾¼þ Ÿýo¥›ýÔƒêC¢ÐãDý§ž¡‰™•“ëo¿Í;àt;ußüwÌÕŸ>úü7B¾pçÿ.bþ—G¿ßÔ¨OÎG˜‡í­°"š®ÖpËK‹r³Î‚úÑá!D}oO7'¶•¤ú“ð^7vŒ«ÿYè+új ú+-¬ìœÝÖ¬óEöôcãON -K`ÖÔ]Ø@Ðïô{ùèÿo›°¯ ¦>LB´ávSC}mu奒¢<¤!áxtÄá „›7øx­vq´ƒ@õuqþü“Ò\\ƒSdI¦ÌÔÿ+?Uéžú’c¤È؇SȾü,Œw¡ÆÒezPé–6lp=  8ŸW\NAqY¢…#îžðˆ“¨óOËÌ2ñ:ÿ¶¤Ì‡}N£åq+ÊH¡C¶qpÆû»¶C¸pÇqìmY.aÆ«¨€¥>¬ØD}ìqT®oT}–£«Ç:¿MÛwï;zìdÒ™ŒóùÅx¸Õ741Óìý•ÂÔïíEÖß1¦“÷n ÷žŠ䋘/6ô¿ -ú¢ê+¯{ºˆ¨þí¦ë¨~IanæÙÓÀDxÈ= „÷W'@ÂÄPO[S}Q_ލ/#Ýê†þ·Bô) -rˆ¾’2ŒÁÅÀ‚Á -Xƒ¶7µëý·lßµ÷`€{0+·ðÂÅ -.Ðoº}÷Á£Çp;>4áôÿÌ’£ Há"¤4´A–Í8yÜò²âüóçÒNã >¸sëF_pÁ‰mm¹j…¡Þ2M…ªÊóQº¿—/2õÅAøçñ¥Þ`cìxDbâd܆pÊ‘±¯¥£odjƲu€Cæ!¤‹•~üdRj:„‹gd{²\q½À¾d´Ÿîsa´¿B´„ýN~¶xÆÑF//-ÎÏÉLOM:y<:Ó…C;ÝÕÉÞ†eìëjkÂ)‡­NØÇZ.ìJý©ròp¼)«.Z¬¥k°b¤éâ±ÖwÓ¶]û‚Â"cO$¦Â:ƒ¯ª!QŠl³nª>Aÿ=Ÿuxï%ýó¯DüÌÿè Õ§C‚?õaF¼Aõáv|Ú†óðÆõ:¬ÃœÌ4‡QG‚Q}¿uk\íXf¨þú²R¯þE_†¢?MN~EAßØÔœekÏqõXë³Y8— .à,çòjaCÜn¾ÿH°ákê%2ˆ Â!N}ò7"$ÙÝù£Ä=Ø Y^½Ruùâ…ÂÜ,táXTx(®ÁM~Þžîζ ‚‘¾Ž  òÓ¼9³±Ç'Ó%8V|ê#åSD?öùçû¨Äô³‰…šÚØêÖvŽ.«ÿC~xõ˜ïq?çθÆe.ÓÜq}—QZ”${TÚ÷}ßC•¢´hQ)E”PT*EJB ƾ/áÎuçÎÕ`†sϹïÏ÷yžßïùÕψ9Ì9?Ï¿ðþ>¯ÏûMG=2:.‹wsiYeMÝÞ&¤Ëí8jˆ\¸’‹Nپƌ…Û~ýê%œô¯)] ¹ºšªòm[Š -òØ’‹‹ûÁþ˜r޶Vó(`°¯ÍæÙö•º²ÿž‚²ÏG*¨ßŠÕ×ÔÁŸ‰éfïìá±dY|rz†ÛÖí%vÛ1ì6Éÿ–SUŸ™ÿHBû#Ùï'áãÅçÉçÍûèÿOŒÅOè9u°×té<ÞRËÍMõ»ªËK‹7æ¯ÉXµ2. -Løyº8Xóêã ¡8ÈS_ÑJá« TÕÇýI†@ßdž•­£«‡O@Èüˆ%1@?-“Êà–mUµ`áàá£Çé1]¸Ì¹Àêà=<¥×á‰p¾…:®à€Ÿjcm,T–•o\—›E*D-^Š.èâ`ca6‡UAªúè0ªú@@¤²U_q(ÿ‰ƒbæRf!S٧î2–"60š>PØ9¹yùQÀlÊå!_õFXÑÂÇËßt¤{_”t™!dzxÏžjk=vôŽúnä‹)WGWìcËÑYwq 17›c_Sû}z+8û2‘ŠÕï+Ž8±Ý4µõ >n¸“»O@hxdÌŠ¤´ÌÜõ…[¶a·5à€·´²$¯!ÉÝÔÿ©/æ]üý,ýË’/cþ[EŸ{OÜs¢×DVüû›ÛxKè‡m­b_}mUyIñ†¼ìŒ”„X”à _Otù³¦êC} f8HÑÕïú¨ 9ôǨBAé38ô]<¼ýƒaª`2Ð'JË«jêö}4ˆSg/PdÃñ¿bžt}–ã/2,ýÛ7o\½ÌÊ`Ë‘Cû÷î©e]pýÚìŒU‰Ëc–„‡ùy¹9ÙY„éFzTõUFâ@`UŸo ުߥì÷rFÌJTöÙ„¬®¡¥«o8kÎÂÚÞR`ÌEÅÆ'qg}ëvXQ¿ï®ú‰“g$‘ò½Ï–èf¼Òr&u._6å®\¤«ÞŠ€4Ò–++Ù\H §&ÅÇF-f»;;ØXšQÆ“õuqÙǪŒÁ_;lˆ„}³B³/Tªþ‡4Þú íFêkhO40šaljiëäæí²pqôòÄÔÕ9´Û*ªwÕãWýòxûS¹ûÍý©¤>¡ßÙx1õð¥äË3ÿ ¢ß©ê?—Tý‡?¢!2+nµ_ÔhÜS[Y¶uSÁÚìôäøØ¥a¾Îö`‚Ô×™@ÕpÄp^ý¾õßW0õ_޾Ð B_“C=ÐÒÖÁÅÝÛ?(,<è'¥®^“WP¸¹´¬²†L@lÅS:I²ïvà)qè‹UøUž -ËàãŸÙõ~pïû»l´…ËÏ9yâØÑè‚0aûÖMòsV K-AtÆ 75FÔ×ÕÒPWe H*±H‰ö,xÐïTöß•}ÆÄßY;9ZYmR6˜2mÖ\3KÌ9OßÀPÊxeJzVî:D\^Yƒ1×üÅ—|Â8ë iÀ¯sÕYÀÔÏø³Î'Œ1×¼¿qÏ®êÛÙš£Ã¾"–æ\ .»³=í¹YŒ}-Æþ(bŽ» û=•ýÎêЋÔïGêãˆ#M•±ZsúlS GW/¿`\pD™±&oCqIYf¿¹ ¹ûÝ!V¿ óRëŸHÄ—’ÏÌ—Wôß4ú¿Š+"aÑÁ[‚Ȩ@?¬«Ù±êaVZRü²%á¡>îÎvVfsfN¬§£É©?DP¿bªß ý÷Äè³Ç# ôUÆ‚]ýÉF@ßÌÒÆÁÙÝË/(lábê©Ùk×âíØ¹«¾q?C/ M+4ïsU(à‘°×ñR8ôŸU6Û·wþy £í5Ap°©¡®¦²Œ‰•ž’ |=]m-áÁ´)“&jSœ£G~Îòì úŠª¾€þ; ¾œ²/”CÚtýÙu1 -9Ÿ £G1›˜[Ù9¹y±=·lEâ*X9· qeŒ5wúÜ…Ë|Gdw]sÄ@÷–Œ9þ® kîÜiŽý&̹ê -ºì,äÄËpÚ)e7'{k S}qj˜tö?’V`öeÕggœSÿ¤‰¿ê×ÒõMÌ­\<}ƒæG,MHNÏ^[P„Ù†û½¿ùH yñòµBAûþÞƒL}ý®Ò ØKÅïL~ç¢ÿÐïTõ™ú·o^¿ -+¾þªåHsSÃîÛ6®ËÍLM\¹0$ÀÛ͉œ õµ5Ñ G1%úÿíEêÿÑyÿþï7Ðg PŒþ}-B:J …½³›—_`(Ðgdç®ÛX\²}=ê’d5ÒCzežËpÿ^Ç]¾B„³§)ÉCèµUÛ¶a¶Q ŒY1?-ÐÉÎjžÉlh §3a<ë€Ã‡†ȳ_ße«þ;‚~ö™`ŸVÒÇŸP٧󮬪®) §Îœƒ‚èàâá²€n{rZfNþ†MÀb'öÜA®#ž£ËÎwD.cñaQÄò;e,̹vü­,dì9:í,et`åòZt8îNv˜tsfN›b G›NÂþ§ïûrÔïM.¥9x(~[eµñtõ 1ÜæYÙ;{ø†…ã€'¥eæ®/¤û½»aßAnµIÏ7ý¬÷ÙßÊÔ—ÿ™ïéS‘øù/0ÿÍ¡/¯ê?dý°¸Õ~íÊÅs§ÛZQ÷Õïª./-Þ˜Ÿ³zÕÊåÑ‹û{¹9ÚZ˜Ï02˜¨­ÁÔ6„”PRTõ_†~ß  - Q0bÔhµq<úÀÀÚÞÉÍÓ70tÁ¢¥@?%=+wqPQ]»gožÑq¾^oÇ;’‚ÀÐBèwWÙø·Ù®]¾H5ØW¿{çjù9™©Iñ±Q¤»‹ƒ œ9Õ* ºªò?F2 -0Ý”úAä)[õ‚€—~âÀ…¸{ñ^(ûŸ³¨5µõ ¦à¼Ï³´utEC Œ^¾’r^_¸¹´¼ -±©™Óâü¥+×Ûoñ§ýþƒº2Ÿ±„ýÇBE£ÓγìŸjûŠÅŒEWU^ŠãŽœÓ’Á>®;‚öpu´³271fìëLûÊ2ì÷“ÇþŸ‡}õ{Ȫ?Ë êÓÄpÃ7³´sr÷Yˆ$W­ÎÉßXŒ k÷4àÎ7—#w¾;8õ -êË‚ÿTü={&&ÿEæ¿ ô;Wýg¢ªO‘k¬!ž:q±²¬dÓ†¼ìŒ”„¸¨E¨‡ž®€ípʤ‰ZcUFÔçªáЦþ Ðïù›èƒ‚ih€æÖvN°pÑÒ†u@T‡ªÚº†&”Àc@ÿì…KWùgô=#9èÿÚÈ<úüdã88ædÛqœo”À$Y¼q].:`B\tdxh * #vÛÜY `¢¶æ85JsøÐA|Õÿ+_õÿü®Uý.e¿wä{÷áË>Øg³Nu,ÄÉF3f›˜[Û;»{ûÏ ó¾jõš¼‚"êˆ4éia9KJ¢8æWtüm—ÆŒ’ÆŽ;å|ª­“Ž®{Mey鿢‚¼5`Iƒý`G[¬ºNìÚ‰ý^ -ʾ<õ‘&§þœð1ªêtÁf›ZØ:ºyù/X—’‘W€šV‰ó½¿™åˆ’víÆMü®”#+i?2õyô»€ÿLú=—!_Žùoý礅LÕÿÏonßdX`1iÞ¿·qKÑúµYéÉñË–F„úz¸Ø[›3õuµÆ“úŸ ,Qÿ/Òf(¼—?:ïßùuýOyô•ÕÔ5´túƦæVvŽ®>!ó#–ýä´Ìœ|X@ƒñÀ¡ÿ“_î_=çy?ggÆšHcm"R4cÇ=ºßTB*Ý¥¤{©T]PS!º'¢FÑU)S.)ã~Ö.S -93»®»“3ócÖìîóõþ\¾Ÿo7åæTïáùz?žçåk¼¶3ès4xÎh@8à ÿfü*‰‘I Ñ€rlcH0¨C}Ÿ(9D'ÆÅ’úyº»8ÙS–&ºÁœÙnÓU”‘&§ú<ôÿ(aÀøÿýzò²ÿ¡Dö‘÷xFŠ)ÓT™ .\¬­‡†_ie븖²‹ˆÚÁ¢¦QWZQ]s¶ž“ÄÛw€ ^%“ˆ”{ŸØ%t<ö4m:Ôû .險 -ô{~îÌÔä¤xVð~^0ëì¬}C=mJÃŽu<-;”üǾ´Å¥ÔKË Yõç.X¬­oŒG’˜mÔß’V«oÊñÊõ· ûm÷Y{³;¹ êKÿk¼‰/ _>ïwýÿv“QõqD¤÷Zn0ij5U`E~nvú¾¤øØmðCoWg{K衞–æü9ŸÏRcœ`˜=©ÿFèéýù<ô—¯²±[ÿm‰ŒÞ @só ‹Ê*‚ó0@@¿±ùNk;¯€OÿõïNÜ;!p@TÞ úŒ·¿E{c³ÁQßGÌJÛ·;~GTDh¿7ü³mŲ¥Fzhð¹À€*œ(ðÉø±Š -Õ 0ø¿?_wÙ籯0Fq‘BI‚¨®Ù§¸M-,©âÝ<}CÂ#Ù¬Ë8€¬‹IÏ5\¼Â¢¾ÛÊ:1i°B²éz ºë¦“&QǰßFQß¼U×€‚¯BÖy¹2R€}„ ìûzòØ·0#ì/^Ȱ¯FØWfاÃdÔÇpSeQjjéQ’Îë=|B·ÅÄ%%§eÊ+(.?I£íò5’}ú±,F’ýNú¥ ú=ð^Fü÷Èüÿõ|D/^p‹‘»¡0E$q¸~ùÂybyqAÞÁ¬ÔäÄ]1‘aÁþ^\œì¬W.[j=œ÷Qª2qbœ"¨ÏQ⣡CýþC_y*}¢€¶ž¡‰ùrK;Øß/?â@ôÎø¤äÔL€  ¨´¢ªæ ÍEQEèË p ,b$DŒß×q¿• HP®öT%ü/ïPvúþ= »Hÿ|6º­[C05Ö×Y²Yj¨Ï ÐpciÊ«þ°‚~7ì3Ù)øÈ?åj^¢¦–.å½jµƒ³ëêø­Ûcã(mì:H"ÃÅ¥«ýû­¦Á‘µ°êúõë°ßÉYʺ ¦††gaŸÆ®CÅ#í vÀ~Xp€¯§»«³£­õJûóhÛ ìw¡>Ò¤ÿËe©¤Œ(i·-Z¢kˆÙfmçä²ÁË?(,"zgÂÞ”Ìn´Õž«gí-‹QýŸ)Húæ÷|‘øïƒù½@Ÿ?!a/â‚Ú[™"^½ÔX!ÎÉHÙ“°‚¸ÉÏÓ}Ýø¡¹‰‘â/ŸÍ(&sÔWzÔïú‹Ð?áSýiªê³>#è/&è›-·´ôA’¿ˆ¨€~ -ì/¯àxé‰*púè{»åwAÙ½5ôŹÅö+ï–&L6äX”—ûêpN&a vû–Í›ü¼Ü]œV¯Znnb¨K³0]eŠÒ¤?±á¦0šA_Nõý×À“ÏÇ>’]q,—9‹¬XˆÄ¶hyoÿà°ˆ(ZviY9\`Ø}Ã["U<,ñÑÂ…6‘¢ß³Nhx.ìgO„ŠGÚܰöOh¿ÇÊû&r¤ö>r0+ A’ûù{{ Iô÷²¥FÌü0ÛÔU‘%…É«þˆá©úÝdŸóCŠ]¨?aâ$%Æ -Ù´ît Œ¹½“ %¾-fWžýhùüÂâ²ÊSµç¸’ol/dq.È û’´û¨xñÓŠÃŽ~-°ÿ ½•¾íßöÏÖžb-ÀÙ¶öCƒ0î¨ç û¦ÆºZ”¹ˆýICûrÔÿˆ¯p48E‰Ý6m7Û´õÍØj[ïá@9Æ%&§¢½ Šø¯ -²ß!ªZ'ïj$k/eÔïÃñßó{„þ+¹ûáÇ"¯ú×.]¨;}ª²¬¨ ï`Vjrb\Ldxp€·‡«³½¥…©‘óC uUÒC¢þ…Q2ê0¨?`èÏž3O€>ÄÏÁð Ûº=Ї2:rôXIùI\O=s?:ŸVúd 8ázx ô©ú¯Õç1Àw·,ÆæÆ›(ï‹õ˜l,GR?0 :2<õí¶n%i¬¯³d‹rÆtúÿ¹ïχ)tøpS}1}‚’ Rîdˆ“§¨°ª,´t áˆD ¬;¿M¡,òäÔÌœÃ_£š?Swá’/=yÊ,ñ­–ÌÕèÛr²ö€ζj¾¶º²¼ãŽz‘ÇlÛäÌiÞ¡éö5 û2ì2¤±ßõDzG’ꬿµô iµ¡¾‘cP(6ÖÞcULöi³ 1þ(/û<õå™ÿ[ÈgÌï ú/¥[±»êWW”âtr2Rö$쌊 òórwYcg½rÙRCÝ%‹ÈÕ¦«(+ábÆñÔIÔ—ªþ =“B&}-]Ò¾•V ú}‚ˆ$~é0ÜN9”áìy‚>Ð|—›Š"~bÇÃNçMЗP€QÄØÒÄÐPwúë“ 9™){ãh³mòóÚàêì€ÑfnbˆÿÏV¢dªÏ²=Šûû#FtþàÍs ¯WÙ=†cÅŸ)wuÏ¿ ®×72-ì×®÷ð`óîËÝûÒùÑã¥Õ5\äàE˽6žTóü¶ãï?ö_ŠØÿ‘lÇ>ÆzžÃ~MueYqa>2Ǽûr'°¿ûUïd¿z•€ýRìOÚØ—†)R_àJÊ*ÓÕfQXm¨o+[Çun}7oÙŸ”ŒóDÙ¿‚ònllí1gk2Ù¨/…~_ć̗B¿—ãyö„9"»Aõ‰…PÄ´}Iñ‹@ßnkm­V˜›è`!䇌Šcp.¼J©ÿ{§ýÖïí¡ïoµÚÁÉÅm£? ¿-Ð'ÀûŠË+«}Nü›ï´J”¡ó¹À€ªŸ£¬»´Ýka1^¾pþLMUEéñ£GÈûvÇÃÿ÷XOA¢¾ô´‘$ú[ŸŸ Ù¦Èý‘âÇÿÃà/ñ¿îØÉ"c°˜1“9"hal¶ÜÒ’èîéê>;7ŸçEýÅ+×oÜd™s¼xúL°Ä~Œ»ß¤ã®ËÏźã|¾.›w uzYQa~nNfj2°I]ïí!þ¾Ž û¨ûa„}n¬ÁYs³mê´3iµ¡¾M-,mh´yû‡EF#Æ”Œ‡åe¿I,ocçóŸ~f9òØç©ßúÝ¿ò»c~/ЗŠ8ï¿ë¸ßz·¹ñ&§úµÕŒLwÅD†x{Àm,-p3Úœ Θ?œ8çÂé¡h‡ƒúý…þ$ú0Mú+úoÿ Í[}²¾ÌœÃù…Åe•Õt9€> Û‰e;Qú¯û†þäc»»£½•yÅx®ÚWT€òNß¿'aWtdxH ¤o=‚436ÐY²hþü}êo|ý Tà -ôi·uQýß;–÷ù¤ð!¡B0ÄÑ -}‹)*ªj³ˆšZz†KÍW¬ZM¸ðòÛ´ /.qo*b§wòëÓu ¬ê›8Mü់óŽh1€Ìö_ˆMϰÿöËþ­ç{ãÇÁfç:rCn+™ÙAJ¥M’¨¢ÐJ!EÈmE%E­Rº¯åvÆÜUbÈ\;LņkGn~صë¼^¯÷ûsóýö-Ée|µ÷¿ð|¿ÏÇC¯bUϱŸ]±ÇÆDoŠ ìâÄ›ãŠÁöÇšö¿BÑ·ì+RŸEÉ’„ÙÖ«7®6¨oÊG›ÓthoŒ14<”m/É~¶XÞLØî2aã·Ë‚”d_ úõC}“Ìoúøsô%G,¿|Vb)WýøX ÅúˆÐ ïîn3œ¦LC41Ò'Vè€& *ȹ¶}¨ÿªÐÐÿý‰“§ôçÌ_è Ð_±> -®?6>)%-t¡¸”>Îå -ð…*€>×¾Gú"U}Ñû„¥î¾Ãº»üÒù³ßÂùçÅâb¢¡¼×àdƒãŸ í=y¢µ•¹‰¡>Õ·. ®6%ÕoÓbU_•ì ØEDX`øZ:ƒCáƒ$šZ .]\ç %‡„†¯Ç‰·/195CÒÄ -Qd‰¯¸ïä©ÿï·Ç4ðì_Ãë=wæô‰oŠòs²ÒS“¡í!xÀ~hÖ=bß±om…Ø…ØÜ2°¯@ý¶Bó ûö×ÖÅa´™[ZC{cŒ‹|å²å] XÞ¸Ùj°öÆŸ*ÈþË ÿ&™_ú¿uAø7·G<ªŸËTLÄukV. ô[ä1×ÕÅ`ai†8|ØÁºÚýûjö$T~ø~P_ úmêC¿“Jèsè;M‡?ÆŸ&,"2jktL,ȇ>»~éßÈ¡ÿâåЗ•÷s®úxþŠÝ}îÌÉc%¹Yé‡1ÆÛèöƒ|·Ów´·€Âg ‡AB}÷ë£ÙãZmè·lÕˆ}2D¦ˆPú]>f´Ð‚7ôË£ ñ-­mì¦N›1ËÝÓËñbóö]’&çšs¯®••=‡E“c§…'–=äÎ&¶=÷[uÉÃÈþÇè û³ûSìl8öGöuZöëSÿ#êo ²{Í>˜#Ž6#S‹ñ£›ûo’ý(¡¼³s KŽ‹å-:¶·x¿Ïe¿!è¿Qä7ý6¢äˆE̹ꇅûû "N›jg3Þa†8P«_DŽŠÚ1ê·Vsê7ú£MÇôíúóxãåãŸU€ÓONMÏÊÉljˆ¿¦¼ò‡~u-û5Üš }ÖÝÕãí[7¸Zqùëî¼ìŒ´0>ˆqCDØ ->¹³¦;aŽ–fÐÞ´ÙÐö4éê;C³ÕÆU_}õL³ùOþ øà²ß¡“Æ¿‘½z÷ ­K¸Ð72k•ïàÖ=X0a¿0.øðÁÄ}=ÍM8b:â)戨ú»IõW-[iaoû•ÕXC}‚bï^¢ -~(W}uüMƒ~‚~oX†}¸úQ}+k„¾‹+Ü=è^p@|/1ùpúü3¤ -´oâéÿ\]{Ÿ/ĺWS>a±‰1JÝ}õ -¶ÓÔÝ™ÔÝ1è{°Ø–,öÆòvv€Éfe9ŽÄöÖÕG߃F[§‚ê Í65óµž’ì °øg{Öûݨöµt 2l¸ž±©Å¸ “ˆóúPú\§gå”;ùíÙó—¨ð‰ñòà_/OwÂþ$ö?o9Ø -\èoªï®l´a{SŒf‚ìcy-_)nÝ)„s -ŠYŠeW®^çØ¯½/Ž6„#8"©~€ÏÂùœ–fÆ£õ†2XW›bWb…ˆ -9õßvÔÍy2æ7ýn úZáæ%èÛØM!è{zùáÙ£ímßµ è^^!A_þe8ôŸ°óèÿ¡túÏžBŽ,H¨ïúrè«wƒ¿ÞkÕJÎ - rÄ5:SñSïÊ,qŒ™%òÂiú¬¹^¸ôÂ"6l†ø÷HIÍÈæé_¸\Q)h"ͼ&g߈¸aãÓ ß æØÏÍÎLìÇíÙ Ø_ Ø -ð]äéî6ÓÙѱonb„cOûÁ¾ú®>ê·ý@¬oʱG/joˆq¤¾!n6Qöä)¦edç–câVÉ7»á‡ü†%ì+Èþ; }pDÉN”ççpÁ‘«þ”IH #¦ˆµhˆ5DVH~¨¦Ÿ£èÿC ú½TBßÑe&Bß ¿ - ÿeϾ€~&@¿¤ž'ÔÈ>ŒÂá¿ìòr|üèá/xw‹ƒí8ž}Fj2u÷&èîK}yPŒv6ã-ÍÆàÉÃd¨ÅÚ›I£MêïÖê|é¯ýêɾ@ &‰ˆ‹Þý %ÂÐ7B^Lœìà ?4qɲ•ØúÑ1±ñI‡ Xz'N÷ýEŠyq¯¦V´Äfí<~Ř>=ê|®nTú„ý$Äþ¶MÖ®ìûð?Þ°oÀ°¯Ë°ßãýž2õ1HÈ‘6¸eˆ‘6ÛhcVÞ ûî”â*…óŠ ¼¿cå}ƒ°Û[T7ñŒdÿÝ‚>Ñâ@ÿǪëäˆçÎ%d.÷áoYª¨úæD RDü'‹Ná“ÈQm©ßªè·“ ¯!‡¾A„ýI}w‚þrø- ;úð]²è_,«¸úà ‚þ½‡ôŸ=—9«@Îþ×µ5÷ÄîÆÁv‚ ¶CIñ±1Ñ[6®] ݽØLoÆ4ŒDÏ•·®6åíM›­½8Ú„$[¬êÿMö?%‘ᢧ&Y"ñÂÀØÔbܦ‰óúø…„†GFmݱ;j?ýHNAq)µ~ùÒDyþuûMŒ_ÀþSYé×°3¦Ö§PŠØÏHKIŠÛ‡ _°ïÅï6±?áµ°¯nÿAH’)Ô7ooŒ NVÞbŠ`o¡áë7mƒ;N¤ó‹K©¼/ãW í £MÂþ‹zØÿ©ßôëžЗÿrD¸©¾…©‘©¾vÿ>¨ˆ] "+ø÷PËŸÑDèwmúÎ3ÝÜ=aô×nØ Ÿ%.!éPZfvnBUý–ŸîÜÅ£ÿEt½f]=+o€þý¡»¯”ã`;Iƒík>Ø¢"ÃQô »ç¸º8ÚÛâb36Ð>ŒÊ»ÏC_¨ïÖ-úõÿÎ>ÑpÁ~B—»Ò“ß§Ÿ ý¾ÁÒÄ)NÓgÍõXä¸tEXcïþÄäÔŒ¬\èýSg@Ë+yíW×Þ'KTl}>õêç¯Ôú/¤CþU²·×ð9ös@ßû;Ðßà”ñöDìëɱßSûðڽؗõ7«o©½»ðͦC²?J.ûž^~KW®†KÞ¾kïþ”bA±’½)aÿ™ û¿×ÃþÛ…¾Lîüt›–!W„"ÀEº„‹PÂÅ<®úVæc Á†~†´`ŠØYC„…’ê«ÙÇh2ô»KÐÿü ¼vÔúpïþ}ø*pð»ãâ“RÒ2ú¢"T*)‚Ìš}QõIõØÍ߯­þ™bÄÁv[Â` [à šGÝm3ÞÒŒÄ8Ž]“nsüW{&xTß©¾ -ÙpÁ-‘ñB[WÐDs+뉓Þ‹—,C`l‰Ž‰ÅOy4¯è›ã§¸&Þ¼uû¿wû²Þ.Ã~Ã?@ÕØ¾/þÊrô7vÊYé©)âcá–ñ€Áög!öm%ìm!Ø—Qsbì¦JöœgΞ·ÀoyͺbŠÙy…%„ýKeW®^¿IíÍýMûªdÿ]€>("ÒâÖM€~ÙÅïÉ9.öïݵ}óÀÅÒ@?¨úÜuµ-HáƒÈ Qøo;èW|Í…¾»%@ßžCß> -œ;XÞý,úú×8ôñâQô~{RW÷Tú( žüªOž•wµ#l…yÙ™i)XŠÂ`sw›1m*u·‰¡þH\lºÚúþŸýúðªêʾˆŽf5:3×8Š„bu0V, Hi -ö®±a5T  -R©Ò+FcA@)¢‰•(Rtfâ¬è¬Ùûœ{ï;÷x¸4Ïgæü ßÞ¿ómúy““MS¸Ùþ_õÉÓa¿#Ó9/´ÉÑ7dèðQpóYM²wvó˜5oÑW+ {ýƒ` b’R3sNà\…{½àþ†6²ÿJûÜÏÿàÞÝrïÑ) ì'ÆE -‡ -‡Ÿ¿×úÕpòûÓ~gì‹sì )ûÝä”} kèpÜɶvãr²q)rŸ÷åk×KÊÊ+9öäÙÿ׿UÊ~kè¿hjlô9-ª+ÊKK®úçÏäçf¥§`= ôóñÞc²b)[õGrQ»w/A  ‘ªºm¯ è÷’Aßš ?cÎ|‚>t<˜ØöCGâŽÂU˜CÑ¿Vt£ìVe5Aj^E_îÂ+Þxé…ÇñbƒšGbä¶ìÌÔ¤x<ØHŠx°‘Ýœím­ÌMÇp7\l½…Ï›?Ù:Ê ¯fQ¾Å'™ :„ ð‚ŽCœý~áÕ7NŒíFhDTlbr~þ´&–Ñ¿Ÿ¶Ä†Fa -”½÷„unfÙ¶ٿγŸÉ±ä¿—²¿Bö»}`ì3ß7ý½¹›Mòy eß„žl.äd[îIO¶€`L1!9 >oÊ~‘ûð}?ÿ§4û¯¤ZEèÿ,}ɘäçegp\À”ìÚ¾eãZèófy¸IU}Òa>-¤ª¾Z ÅÛBÞzýp‚~Úq“sì˜Ü{ð¢ß(}eöýåK¦åÑ‹íÞ÷whŒøwŸ> /9!6*"tÿ>šâ*á`³¶0;z÷wÓ‹ b$[1ò¿7 R“|»O¦ì ^huí†ó5±Ž®\0Öm¢`„EFÇÁÍ—•—† œ|U·)üçc€ì·i öå•8Â~^vfZrblt$´8Xè[7IØwØ*ÅþŸä°O›@;µfŸQŸÆˆkÝ]\öñd³>Ù|üC0ÅD²Ïl‰Ã£M`Ÿì3]hüÀåEù> /sBGä¹À‹pÓ:ÏåKÌ™1ÍÅÑÎf"T} ®#bÕ×ìÄVDµ¬ú,úí¸çÑÿ´Uô'98»2èÃEèè“!QÔ ô…moCÉà ý&èxOɲ߹]u«ìÆH¶cGã¢#Â|÷ÈIqä0ãÁ†ý¹¿›¿Ø4…“Mªê«:U> ö9/4µ$5ÀèGÁcjnekÓ0sîÂ¥+Vó`@ˆOJÍÈ΃Q¸t¥°¸ôfEL¹ùžÕÓ’(çä“9¿?»Ñµ”ý*Êþwßœ쇅úö×!ûófOçØ7'Ãþç ûŸrìwPsöÅ1vPPöñdi2Î Šœ#{²íÚëBk\:ÞlÈ~!a6¹ìKVúÕoRöÛ‚>VD¢Å•KÎÁAxÂXÂ…Ÿ÷¶ÍP –.œ;ÓÎA[+sÓ1¢ªÿ9íˆ-DX¨:æ¶E=mîïf.¶Ž2è«U’oý±ƒÑž÷¦‚ÎD20úýŒ£ÇšYÀBöoÃ,”“³cŠÇþvÂþR û„ý/‘ý~ŠÙçÊ@{µeŸù½Åe¿«¤ìëÀZãß=ÞÜÒv²“«p²m¥Eîàá#ñx³ûç‘ýb8Ú(ûTξrè,ýÛýBDÿôÉœã¤#.`@¶l\»jÙâù³§Oâ`‡ã1Z~Õ§ê‹«¾ „4úí)ú)úý®ýžXìpÅeÑŸÍ¢í.2:– õî"]tÒïýZ}r ¶†þkYôI¸écM5ô»â«ã‰Üó˜ÃùcŠÖ¬„r7ËÃmŠÃ$+ Ó±R)Ò¿»³&¤ÈÞíÙÝVu:*~2e_¨‰0úý ƒž8a¢£‹Œ}ûÃ"£bIM~Hr,/+!íb$[TDèþ}ß¹¯ÛÅÑÎf¢Ù8.E}ݾ\Š¢¿[¦ê«:U? ö¹š¨©%C[GÏ`€Ñ¾'Ú;¹º3`øB 8t$î(x‘—O.¿"Â=üžÖÕ74ûJV€×òï>`¿?ž}ºÖ”ý,d?&*B¾'Ǿ e¼ˆ}è=)û8šû1eŸt:©¿[_òw[ÛÁÉ6O¶•k6lÞ)‡FDÅ$$¥fðk]kͲ_Ïÿß-±ÿ ÏL Ÿ‘’‘p±ók¯õÐ Îéîæ ³an:vÔð¡CŒÂdh U¿ Ã…H U‡¬ôk ýΰÜ-¡oï — ¢¿‚CßÑŠMEÿÎ÷÷è¿à†C -}Å{N£$èC’tÍ1ȇ÷¸Kr,ºvùbÁ™|òwÇECµ ðÝCSįÛÝÕi²­¥9,8 o4À@ORì‰)~Öµ‹–¦øï– ¯>A¾«§!ò‚«‰Œ.0FöûàÈôDè‰Þ{ýƒš^œ8uöÂ¥+…d àô#ZHJ@só/’qh™ý_å±_'°Ï·9a±)û~>ÞÒì[Oœ b_›cJ]×.\Pö™Ï[|²17”}þïž`i3O¶Ùó/[µv#¤èã,o±å²ÿóoÊþ¡U\ B÷.6oX³ò«EófyLâ`g %qôˆ/ÿ1ˆ-‰BÕWý¿ˆÐ7V€þv}¦H.ÁZ\rÒíÈ–ÿ¢ô– å®™nùó¦Fìvú5UtÇ ÎžÊˆá` bç½MH‘|ÝÌ×Ý—~Ý4EMºÙäï¦1ªYŽïðÉ”} ¦'öÅžˆì›Œ3ƒžè=‘cËöÝßìÛ5f"-3çÄés€‹’ÒòÊê2P›ä Dë§Ÿ<öKØ/‚‘¸pî´Ðç"B9ö7Êae__Wçƒd_ödãË~IˆÌßmnEN¶s,Yî‰)îò!«›È±_Àö9U²ßvôKôA‹ä„XR| kW-[<Ãq²%ÌÅHIIô[®új2 -o‚þ@è¯ãЧ…z]EÿŠúuòÐWfÉÅ;NÐBš]MuE9æˆ~"'3-™þÝþ{wÁ~s)Nâ(ùº2_7¤¨Å¤¨ž1¾Ó§! Ǿ×{âhè 0lì·A ÿn kr²Íœ»p)¦ìïõ 'ì§û§Î\|/Øô¯óèg¦&'ÆFE†Ò¹X»jù’sf¸»:ÙÛZ™Ó’8h`?ý/úöaJ¢¸ê \¨:b%‹~;ýYô»ôÿ&B4EßA -}D?"*† Ÿ‹è_¢èW²sÑôЇ$ŸÕQô¡×•—•ÐOæO?–‰÷î[7­ó$)Âr“¯Û¿nCòuÿ~ÝŸÁ^k*HQmr|·OCF{ -ß±üAß/ô`6† >ŠöDg7wN@¯mÞXÉ?š‚]¸¸|­ˆT»?ÜøøÇ'üPü„Cñò¥Ò3CñRÄ> e¿†²M–}_1û® ûÆŠÙÿ„gŸŽH;µc_AÙïƨ !0· ì· žl³æaаÞ;€ý ˆo<ÚÞöÛŠ~EÿbÁÙS€~Z2j臑p±pîLw7g‡IÖ\I4ìo «ÓBIT³Ž(‹þxô?iýÿq_/^5§kÀWXŒå2GMW‡PR’Ü0ÑEMÑM×éê’Ür+¢R!÷KTRB©”ä>55)1„q,Ëœ3¹kœµfbqÖ:Ïó¾ïÞû÷Û{ÿ¶-V»ß¼ÿÂ÷y>ï÷óaôa»ËÎ],¯ôënñÑ—Öº–AÿOŒòÝ[n­Ãý~üo\ï+?þŸ7l÷±œ¬tŒqcb\LԲŘâ,òuÛà× ‹m2÷Zúu÷ ]Žl¸ ­é€ÚÉSCÚ¿ÄùÐÇžØßx°éP‹áÖÐhO$`Ì[°dy4©‰;ö¤e>r¼ ¸¸¨¤e ñÞÊ>ëÌŠV°ÿ‡ädì?~ô؇2sAÙ/ÁP‹} Æ~_åìwVƾ…ÿw …8V|8þÝ6S¦ÁÉææå† ›”1òÙ¿¢iö?ý³§‹ óæ-vlÝ´;"räïã9ÓG‚”DK(‰2/z©(‰šŽX§%‡>+ú|ôu` Œ$èµÀ"0îëIŠè¯•¡Dýû8¤Ô½à¡ßºõ†$›i’d»!ȆúÚšËäó>Y€•.mÆ¿&zù’ó EoOòuO"_·ÅP¼×„¿nq¥ØOKý.L 2!¤ôƒù2t˜•¬'zùÏ_‰51)%uçÞ™Ù¹yÈLFõÕÚú›·ï?@,šž<{ñòu³|x/8²ÿ¯¤ ¨ÏþNAö¿–cßÈ&D‡±ß°Ï¦„‰¨ê¾PÙç†ØŸ„Hþnr²¹º“ñ󎊉K„á÷NÏÊ9–_XÒ.Øÿ,èƒ)I ±Ø‘‹/7W'‡iShI„yPé…t 4°:k>ý.täÐïÇGÿ›iöÓ]}?>úÛ$èIпèß¾Kv[‚~³t"ÔF_²Ýo[hÕÿ­ùõËÏž4a’î7Þ¾‰èÃjcŽy¹Ù™°Ù©)I°Ø+"†ÏÆ]œì§N&_7ç^ÓÃ&×SðëEŒmòø=±í‰0%8#Ú:p õZ0ÈÄÌÜRÒ 9ó±&Æ%&o†á8ˆ-±¨¤ìÜ¥Šªê«×oàh,š¸“!£Bõ`°ÿØobì7û×á -DöOö³2ÒT²Ýj²ßO‘ý®bf_EÙç„8Ðdˆ9ý»ádsüv†;4»ø¼áfÃá÷nOì·ý+ý’Âüc9YéPA‹„¸˜(ìˆÀ…¯—»«³Ã´ohI†Ó@¼0ÐÃYöBÓ«ñ„Ñï*E_[Š~c,2ôœÔAÿʵ:²Ù>z¬}în«¬úÒ,¥îÙS‚þ?I¡ƒß»ªâö¹ü£Ù‡îÛµmsr"lKÍŸòl5¦È¾n¸×²{.twºÎ°Íx_·Rl«§ÐebôÒ†!14ÂdjfÁz"‚ááíŠ51zMüz8wïOÏ:r îÀ3çQ lw ˜&Þ¨&ûïåFCV`6$ìß$ìÿPŽ[^”/ľe²?‚±ß_ʾ6a¿û_‚ýJ.¶žc!ûÆôï¦ìÛO‡Éç 7ÄÈc¿HÆþ ±ÿyÐ‡Š˜œ½| vDäb†³£ídÒ†q¼Ð¥“ÐMyÕˢ߽C_ÐïCÚÐŽÃÐZô›>ú%ësäÝ;·êp¯/?s -Úä¸÷ö-×ÇãÁ174ÐÏvÚÑŽ}Ýô^ÃõYˆü{MT_w›=-öybèéb5Àf=q4Ãe¦§O@0ÔÄÈ«`@6mݱ'-棠¸µ¸\S[×€XÐJ€V4£¿ÿþ1gàŸrì¿bÿ{ìâ{ÌöI½£ì1)é×ÇÊv¯/{ÒAá³ßQTì+/û"ìz/Iˆäïf'ÛTLÑÃÛ/n6ˆ~o8ÚRwîMË€ï[óì·ý2ô‹x诉^¹0:¢©€þÄñ8 -æf0 ˆ¾!üÿÚâ®ú\ô;*A瀠oÈC}oAôK„Ðùºù7œ¹:§ÆbC–ï¤è7Ó(q­1ɆºÚ òLéÉ‚ãGgÀŶuÓ†u#laAþ>ž3]¦ÛCŠ’{͘Ük -Q)¶áã‹Ñ‰ŠÑU&†öÄM†˜[ZA50œ\ݼ|¡&Î_´tåêØ„$h‰{dfçæŸ>‹RS[óv#α‚ŒÇY'hût<¸ìß#ì_U‡}'dw}8‡}Cʾ¤¨`¿½OŒŠ¯+ž.„HÿnSØukÊ>®º§·`(Ä¿7mÉ›·)°M#ì2útR7''Ư‰^¹pþœìˆ3ÉÝg3aì(øÿII$^Àà/HKì$®ª¯¥úº<ô‡ô'rÐQ…þýFŠþ¿›ž>SоºkMÐÿƒ–9ú¤ËÕ×Ö\®,¿xötqa^nvæÈ1%)!vÄ[€¯—›«“¤8žs¯õ†{MbW1†ØÆOAŒÎ<1ô û0(¬'˜8:ÏpŸå:7bñ²¨˜8h‰0#åÍ'#RQU k±‚ ¥¢¥åãJû¯(û¿°ZðAögcÓ±?JÆ>)yzº<öéaÈÜï ¢º¯ìëæ\l,Äädn=zkxnž>þA¡sá÷–cÿ²±\Cì· -}eg_òúø5 Å¢ùsBý½¡#:1ô­a LDôÁ É |Á>~1U}®ù$æ³C¿wŸ¿SôÍý±Rô= úáýXôaÐóŸÖ¡a¶Ð¥¦UîIFùàþ]Ò䪫*.ž++)Ì?š}èà¾]cbÜê•K!F<ØÜg8;Â6“¯[z¯‰>Ķ~ªŠ"Ã{¢1í‰Æd[»éßB9ð -›·`Éòhàbã–í»÷§£'O•¿TA‹Á»?3öŸ¿x%eŸ{ þ¯ì?'#òø‘pÅ“±¿€ÏþDÂþ0Ê>Ì -ÖgãÛŽýσþ.†þJDµô úÀ…¥¹ž{¤$êIãcÕ×â¢ß‘‡~WL_òëëêcþ}S@ßÊzôØ l4€þ»·üè?zˆQ6Ô×Ö\®,¿p¶´¸ /÷p&üÞ©)I ±«VD. ‡çKþî©Sl&Œ5Sd÷šž®Ž6†(ôsk:¦öø´Ø—E¬ ú†À>ôD;ÔÄiŽÎ3÷~îu Zƽçìû_x¾^÷óuÐ/ˆƒ>o"ô¿¥è?Bÿ§‰ò‹>[â0Laô‡‡ôßëîºÓù ù¾›êªÏ–—@9)Gáó ‚úæ¶Ç‰üÝ[6m4Ô‡ÕWôa…ååÄþÜR°¹sö&.Ф(,U"=&FNCcS3˜[{gà"<*6!9 ´à—VTÖœoüªõr[û d¿§¯pˆPAêÁèØë e†ÙÇ­?q,ëó”£ñ1Q"ìo%ìë1ì¯$ìCÝ“ç÷=æBdÝ—2öeD¿n&Dy²øª´ìiëêÃÍÆ°ï„ìûRörÙ¯Ÿ ög -ý|ôCýýãÑ_³j%[ù^ˆk‰R¹}b>³½ì'' LÐÿ„ùó ŒŒM·lý”¢¿Ïƒ Ÿ”’ž•;ú÷ úßô_£ÿÏé£OwùõØèË‘Ÿ=Å,‡‡ûûz`“oÞhÇ$Ï×T–—ó ÈÔ¤øø¼ýz¹»:ÛÛî´‚ƒÍxƒ¾®6ûuÃÃþrC”¦Ÿ{îÞDE‘VÚ M8IMÜnmçsÀ7ðPDt”ĬÜüÂSeU0-Í­WÚ®wÀ°Üííü–aÿÅÈ«Ñ1Ñ~ðv:ì‹ßûÉÙòƒa؇ãÐÔØÈ@gf ªÊ2!öÉàpê¾ûù²ÏËÏ?OyVƳ?6ûç„Ù ì{¾g½ýӭаðikj¨óÙWœ˜ýùRÇ>çëa9e_o6ˆØ·¶å°ƒìgQöeógýYBßm“=E“úËý%lì 0ô߉¶DÉÏ›ßM„¾¢} M@ßÐÈÄÔ ÑÇä}ÿ Ðßý·œ4Ù0 úOÓ5î%è_¿våbó…úÚsgÊNæçfÁÉq(?oG;Xà-£žŽ–†:ýºqy!JÙ¹6§OLQä‹!'¯ `àÜš¸ÁØÔÌbœ‡N®nžýƒIILÉÈ9~²°¨®khj¹tØïÆy&ì †Ó`ÿßâØ‡q™Œ}މܬô”¤øXdߟ°ïdoKÙ71Âí§ì«©b] ¥G‡6Qöe¤…}™ñów+,U†}Ü~Ê>»ü”ýpû¿ºû³Äþ  –ýïýú¶Ö€>h±A½¶&E9¹ñ„З&0D‹>}ÌœE_ASWUcÑ×'è[ðÑ?àã›”šž=kèÿG<ú/q‹Ÿ<~ô³ìíîºÝ Q^½ÔÒÔP[ Iäe§§Àïäçíé†ÛŽm$F]­u¸¼ôë–—ù¹¥å\›ë'®(R1hOT&쓚h€ì[Zí´µwvu÷ò!%1>)Ùÿ¢¤¼²¦®‘ŒÌ›·îÀÄô?ö¿ç°ÿ÷7È>™bÆeÜe8Eö¿$ì—ØŽ ò‡‘a›…Ùf(}ë ûdŸ -°H–Ã>㾌TÔ}¡ê÷ÿbãœlLŠ«ö¹ì{ûÎ1û3‚~ ýpú´"n ¡Cæ+0sNIn‰’Ưxz±sП|‹ùÝíÍ sŒ†‰è=è¿×ÝuçÖMˆòÒ×MuÕ•åäñœŒÔ¤xø½ƒ¡µ¹»:ÛÛî´²035Æá`ûdå -þ×Í Qä\›ë¨$ùÍË> œ58:F&›Í-·[Û9¸ìõ %1*6!9-óØ ^qiEUÍù/¿j½ÜÖNÙïëfzÂÈËѱל‰ù×ôÙ3=ö³ÓS“ý``¿›+`uÁœ²W"é}+–«(Ce@p€8u_ÚØŸÏ¿ØìË ³¯#ľ«(û“”¾Y`Ðôõæ¢oÌ ¿šp½ýÒ–‘üª/}7,-Í›œwŠJÊ*ä¾[³vFè›[lÛacçàìŠè úq É©ýòwAÊ;LÐÇ4ýÑ—#?>{ -aúƒý}=°À7o´·]n…ý­©ª(-æ8–™–œ¿·—Ç^gÈÑV×È`½Ž¦9ØTø)rC”’sM·(ÎçEJ„}ðBKGÏp#r£ã¸gjq(":.°ÈÍ/G;z±êA]S§è+q¾n6Dé8×$ãqçˆ)Š0ì#K•hM\»N[Z¢)œ‰;ví†+ÑÓÛ/(4ò`‘žWPt¬¨m¸Ðrñêµë·ýû86‘ý#¯¸ìOsh&eÿ/"ìóòó²3R“‘ý°à‚aßÊÒ0Уìª*p+*òÙg%f_ÒÝŸ7û ÊH÷S•Dögýqè›BÜô±#*°èÈDýžt€1®èsÐ_@²fÐW„%iSôõ ð¸3·´bÐ÷ôö  ‹<—˜œ†è"úÕ³ˆþ/\ôq}Ÿò··— Ë{±åB}í¹3e§‹ -ò²Ó!É#‘¡A~ädÛ½kÇ6 D__Wków+ RĞƆ(ñJÌŒ’@ 2E²‹`† 7(#û0@šÚ„ 3K«¶öήî^ýƒÃÇÄ'¥fä?‰VT×54µ\º -“Óy»«»çá£ÇO~xFØgæf¼3Å>Q öÜÙò’âBÊ~bܑȰ`ßÓE»];­,·Röuµ5×’ ¢ì+0ìËrØçh Uì³°·(ûZÄþÜ ¿ø#.ú¢-Q²3 Or /Ëš ¯F¿xm]=# ¶v×nG—½îž˜vØaŠ~N^Aaq)E¿yjè¿ëö2i’å}òøÑC ³·»ëvç7†ÆÖÒÔPW}ö§‹NÏÉHMŠ9ìÐÓ‚„­µ03Å‹MªE©Â&E\Wnˆ¡½ñìÓžH¦›x¡Ç"i‰F&p*‚Î{=¼|B£b’Ó2Á -h •5u”Š›·îtußë04LÙçNŽ`pÞN<8☄}p Ù¯>[^Z\X—“‘†ì ôCö]wà Œ ‘}Bšêòeh=™9_÷¥†ýùÓeßyÙÿÐ×Ò`>xe%ö_È/‰Òˆ¾pч˜IÎd]}¨i°°,ú†F4j>ú~˜õ‘?$~––‰èŸ*-¯ô/Ì<úoÅ ÿ’Eøoúïuwݹ…Y^úº©±®¦²¼ä‹“Çe¦%'ÄF…‡øxaW³µ¶²4ßlbD>ï5«>VSÅ¿›®+©úÿGÿžhQü=‡}âV‡ z†7áÙØ9ºìÛÀ7ðPDt\âgŸgåæóŠK+ªþtïĶöÀþ_{úúýï¾gØû/ûõþåyÅü‡´jt¡,‚2™Œr×Å]¹ -³„€€paAÈB¸ -B€‚€\Q0QP¢ Vë%¥”:ŽÃ8A­­hfZkg’LÏyžwßÝeQ©,ò’ñù¾ç|žï™‰ýŸæÊþ_ì£'O ûMõ5U”ýÌ´ä¤ ,$ˆ²Øn á\$ìÃAw@ t™ºOJ &ûw_M„Ø×å"ûó†þ–¡ÿ¦*ú¿â>úEôñs§1aKCô×[ -„¢Í¶$h‚~PHØ&MÐ/Fôýö—Eÿù«; ý)š&AÐÿîÛËÏöc[ë8z¸¹¡¦¢$èÇÇÊvlðóöpsÁ EV>æHÑ×ôW°è/Õü¹:®Åð4Ë> ñ.FCäb‰™…%²oï(qq÷ô,¤Ñq `E°_^UÛˆTœ8yº·ÿ,ŒÏaŸLÏäÝûþñpêÑcfxžj—ýïýs”ýcÈ~²_\—I0Iý?Zím­aŠ,¸ û0H<%ûôl$$0îsŸ}õ"Ȳÿ›¹²?7 ¸‡¾îŒès ôIÀL=ƒˆ•èóXôa[×úV"k[{GŒÙËÇ/ЗÊvÊ!çÌ=yŸ—VôÛXô/ ohý§to)úîßÄ4oŽÝ!aö÷žÆ®v¤¹±¶ª¼¤pïžÌ´¤øØhiØÇ~>žî.Ç÷mİ®f&$GCúw«¦8íç^è¸Ç›‘}œ&Æ ¼ $( …­½“³ë‡^mÝó a?¿¨´¢º®ñÜŠ]§N÷ ö‡GFÇèüLÞ£ìÿ d6wâìÙ¿¢d¿½°_Q -×âžÌ])ŸÊceÒp–}‰£½µØj£‚}"‚>^”„7YöÕëþ¢céìÙ߯°ŸòêØŸú'ç }.g˦«øÕ•Sô¯DÌ ¿a£•ØÚKƒ~h¸T+')úeUµ M‡µ‹þÏjyôIœ¦ú÷&išc£#ÃCæÙ¾Ó§°©j¬­®(-ÊÏ(â¢a_·mýÈËÝÕÙÑÞ‚´´0‡]%è¯ä‘ˬ镪Ïá 9ø¦‰Á€Áx¡£«Ç.°?¬5…IЬíœ 8C#¢bÀŠô¬Ü‚â2¤ŠCgWÏ™>¡KW¯ _Å š@öÿþàŸ§è=™oö75ÔVU”RåÐÂCƒQ8%ŽÀ>ÀGöÑ8a˜@¨@XX:}N»¯Éþ’³o»pìkýým³DŸüê‹}¢ÏžrK—Á’ÒxqM}¨gï¬Â€¡ Yð!a± ìªÄÅͺàÐðÈèXybJ:ɸ¬¢º¶¡чžÖKÑš/ô«¡ÿ×ÑëÃCW/]87Ðw¦§«³½µå`]5ìkAnV:DäI:;Á®Š„Ö››BA3†E]‰õŒý»™¹®qñ©Š¡ƒv}Â>Ñ‚G#báæáí¼="j§<15#;PQÕ¡£³»‡4`Ÿ@qëöÄïïö)Ùÿ¯ÖÙ¿@D8EØon€îP$äìNOI„“12‚eGÉF¼I¸oanŠ*À4A‡@t.(ÙW¡aQ±ÿëg°¿ê•²ÿ ÷Ÿ±VзýÅ¢OÌŸ†>}’.¢oŒñš"úB@ÿ}'gýˆÈè¸øÄÔôÝ9{ ?/Û_]Ûˆèw"úýªèßÒúç“'ÿVÙØÉïïLܾ…i_Cô!ÌžîÎŽ¶–¦úûý¼ìŒÔDùÎ(ØÕ_o7HÑð1Hо> ¿Bý%4Å×èÿÿO9XJ0–Qö p9’’hbfa)°‚aúƒÄÅÝÓÇ/¬ÅÆ'¥e**k <í8ÞýÕ×ýƒç/^þöNÑMûÊ!Òœ¡¹±ƒe¿÷ô)(À>œŒûË>/Ü›“•žš*@ð€³Ñ‰tA¡À’°%ÂÈЧd_AôºÏaö5px.û& Êþ«EÕŒèk–D†ªŽ¾JÑW$«DŸÙ­2~÷=‚¾¥@¸i3ì©“³«»§·¯?ÄŸ”šž•“_ùV×5â²Rô¡¤ú#t]µŽþ#f_ý›˜æµ«—/ž„0»w=ÜÔPS YúiIñ±²Ûƒý¼=Ý\$°§b+ßÂÌ„üÞ†#¬(ƒþ2µ¹"WߌìãT1\àí쿇—£%baï(qu÷ò+¤Ñq É»€ýÂ’ò*¸ýòÄɯz)ûXÆöqŒ¦æý¡+Ðû û0IÍuÕû÷•æçde¤&%ÄÅü}½=}ƒÈJ` 2˜àíˆ}Ð@ŸGf -l`p`u`Ùç°û‹‡}Ž¢ÏÙH•¡*Ð'EŸäªŠÙÛï­ô×`´ÐÍD4[ýQ1q I©Y¹ù…%˜n#¬ªýó -ôÇ)ú“ZAÿ?OÔã$蓎†è÷÷b˜G47ÔT•—îÝ“ èÇEKÃ>Üêãåî*q´Ç$¡›™¬aÐç‘1¾FnO­PÉB/.ttõx¨Ž”©ùz87ÛÁåˆVøo ŒùØß“_TZQUÛx¨õ‹c'`”ÎþéÏd’ÆÆo*˜Ò`ÿGí°?BØ?ϲäPcÝÊ}%Eù¹YP!P†° ?/¤ÊZdµ‘ag -Ø_ ìëê¼õ;ÊÃr–}ÆýÅÃþ3²¯ƒì¼röžÙüùGßdvès ô‰ù -ô—/W}=¬e$WŠþ†V"k¨f˜¬—_@PHF›œ–‘›_T²¯’d«ŠþUý ­£?ÅÆ èÁªbšgqSOƒ0k«ÊK‹òsvïJNˆ‹Ž (½>tuv²§Iš›b132|öד©ú£Æ×½Ð‘-®§&×öWè0%Ø_kºŽ¿A(²¶s€‰òØâëT¤gå—VT×lim?ÖuêLexdtŒ:£ô€aÿ_ÓØî Í‚ý›”ý« û=Ý„ýƒõ*ËKŠ -r³3Ó’Á™Ø ì»@°³ÃLñ-ÌM™Nhh@|Ða€`…X,u6ìóšýW¾>ýËg@ÿ £ÿÌ¢¯ˆT}}‚¾1¤ºÖÔÜ‚±Š­íì%.,úR›œ–™[PTR^y ÑÿòxwÏ™>@ÿ" ?LúÙÜÑÿQmUôÜ¿;IâÅ~èôA=;ÖÞ -aVW”b9K‡,c"ÃCƒü}·x|ðG';k‘’4] èÓß–Sý%t/_£ÿ²O9aJ/–1ì¿EØÇ¹Â±2[ÇX‰mÀ -7o¿€àíQ;剩ÙyÅeûažZÚÚ;»`œ¾9‡bø:Ëþ=`ÿáÔ£ÇÌ,=;ûÔz7Ž ûx8öéé¦8Ô×TB‹(ÈËÎÜ•ü©Ì¶ ¼!)ûŒ,¯Ùyöð¿ ØyBŸ÷‹BŸ}(ƒ¾*™¡t2}p“ØÆÎÁI -©‡†Ke±rˆ5sìhiye  ßúE@‹èÿ¤Dÿ)“' ÿпGÑÿ ?'ÉSj´ÚøÝÿ±_7>QßwÀãŒ]]2Àéå¦õ§ˆÇÓyôB@@(B¡<p¡€ èQP(…@‘jq:- µ”áS[çšÆ9¦›vnM³%sÙûóýÞqwM gw,üþ…÷ûóú½¿K¬)Q;')Eêîéí«E?N©JIÍ P‹ö”WÖhp¢GFѼp GúšÐfŒþ—7¯ }¤y¢·»³­¥é ³(?è§$Æ¿äUÆÑ·³åIŠ„,H¦.Ç)ôMñ•ŒyÁ¸Ðiaa)`ì£Z6«ìÈ -¹½ - *bTj°ŸûþîR¼ëš[Ú9ý¬QÌ êî½û=þë“§3`ÿê4ûäÃ}ö‡‡.] ö?fì75ÔijªÊIˆ¿ÌHS«”q "48Ðß×ÛsÝZù™Tâ¨e_«„€ØçsÖ›£PL޹?!ö7ü€ìÿoÐÿñ¤CÿûC_÷rãaÎ&ô­p—,N-úŽ©lzûú‡"Ñ8e’:-cûÎ]ˆ´ªFSßô;ºz)Ð?ÇÑ¿ÉÑ¿kbôù6úwq£,ÎaZf”fïGí-8Ðûö–î~?7;3-%1!æÝðMA¾Þ -9EigkƒËdè ÿÞ”£ýifâ¤øŒÀ ’Í0`Ÿ=$À‹¯ÈUöNRÞž´C7GÅ*Uêô¬» -ŠÁ¾¦¾±P T§Îû—‡¯ÞøüKV©{ ÙÿÎÔìßäìŸû ¢§«S¢¡¾¶¦ -µ*À 23MÄ öI …ÜUæ,q´Û®XŽwä[xH¢^ -ƾvWŒZ1Z3sûfÇþ‹51ú&‚¾y†¨Gßh賓ԡoi%˜ô"LÜ¥­ØÞQâ,s•+èñDèÇÄoIR§gnß™W°»toÕþZ ßÒÆÑÿͧ„þåá‘ëzôN } -”ÐÿÎý÷ýÛ ýËØeýgNQšíG›ê5Õ¥fVºZ•…,ü¼=ÝÝ¥“ý*›åÖKá,çcŒ£?ƒÏ0óýuOŽOß4=3µì£aXóû¨×J1gŸQ«L‚XÅe•5µõ‡[?ìê9Þ§eÿw`ÿÖ(ûúNû¯\©qÙ¿«eïÇË—>;7À`ì77Ö×B‰Ò₼œìÌtb"&*",$(Ào½—‡ÂÍÕÅíÛÚûè—HHTX°Çä(Z-&ÁÜŸ ìO¡ÿÒïCÿGº¡Ïsúú”¤PD[Œ£ïà´ÚÙÅÕMááE臄EDÅPšé™Ù9y…˜dûö×ll6Dÿ³1è?ž(úÿÒ£ÿ!ú·>¿89ú}¸N¤ÙX¯©©,+.úÛ¶&)c£"BƒéÕæîæ*“â,Wâ*9úVsçÌÖ¡?SŸãúüŒ¼Ð±Ï§ë*&q+Ð/‰³ Qá³!08,2:nKr*ØÏ+,)¯ª©xB;ÞG/HrâÚ/tì21¶Tãuê%ì3†ý«Œ}ÆÄñcݘäDEYqa~N6º•œ˜FRøxaSüÂåm©“ƒYA³bXˆ}>÷g½©û3´s,ûfÕ7sb|&tiN¡?Þ7vèsôõCŸ§HCßÂR€q’‹–XSvNR$éæîéåCQ†GFÇ&$"ˬìÜüÂⲊ}>úGÛ;»q›º4‡¯}¤ùzÐÿ‹ý/n\cqœ=ÝwüXWGëáÆƒµ@¿¤0o' 3w¸Á‡²tq–8ˆW®XFQŠ„,IÜ#Cÿ)ôMùeŸi¡ÇBÀÙGÅlí8û^>þA!á‘ïÅ'&§flÏÉ/ÚS^µÿƒC¿:ÒÖjäì_¹FkBÏÄSÓ²ÿ³ÿ‡ßûÔ¬ó€âTgŸ¤8P]QVR”Ÿ *RST`?2Vøûz{2©Ä‘³Ï¹Î0/ûÚ¢Mš¹o~ì?åú/ú^:ôµêз´Ìò­yŒ©l|í:Oo_ÿ@޾R•‚5¶#7¿¨¤¬²úó°ýSg>ýíyžåM–%&Gÿé+¢ÿŸñ®“åùTŸ'Gÿ -Gÿ$.³£õ¥YU^‚9¶=#•ÂŒ ô÷ñòàèÛÙâ"9ú޾vê#H=úÓÌ/ÄÉõyAm›aÌ>¶¬XHËÂf•Q!Wxxûm -7&>1%-›¢P ]M-mݽ'NžF·.rö9÷6Ë$ì?ûØŒŠQöéy¼—[q¨î@ueyIa‘‘–¢RÆA‹Ðà@_p¡»Êœ%Žöb[¼'ãA)’¬h:38“aî›–ýRS°ÿÜ(Ç)ô_ô½xèÏ0ú@Ÿ†>"ŠpŽ‹—.[nc+FˆÎ2W¹)úù‡"Æ8¥J–A9bŒUVkê€~+‚ì%ôûÙaê“|­èÓ »6r…èŸèíîl;Òtˆ¥Yô3ÓRfxH–˜‡BNYÚÙÚüÜzÉ" ?_`i1š¤6Hv†Ó¦¦¾ >}åôZÌÔ±?{Î\ +-û¨§Bîîéí)¢bTêt°(ð’¬khjiïü¨÷9qþâÐðˆvQü‘¿"Ÿ<¥n}k -öŸêØ×bqã*&ÅÅóƒ`õ‚­èW¦¦ª|Ïî‚];Ñ0uÒ–ø˜¨Ía!A~ë½<n®.Ϋ°-l–SÏ.Á ±?G;0&ÕÜ7+öuî?%Ÿ™?ôKÿÿÑèÓÎÒ },0(Zðm0 oçà´úmW7…‡×z¿€ °ˆ¨˜ø-Iê´Ìí;wìÞS^U£ÁQaècŒéäèßxè?þóƒû:ô¯\ºxžâÄUv¶·à(°_xn6NR•Caøz{ºËy–6Ëé¥ÀÊbîœÙ:ôgꃜBß$Ÿ:öYÝ~BeûdÅBZ+ÅöNR™«›;¦Å;C7GÅ*“ÔéY;P±ÒŠjM}CóÑvìß1`åšû†ízø@Ï>^’C/ ö³UÑÓ…·dSC}mMÀ(ÈðHßšœö#ÂB@†—§»ÌâIIhX/ajàUÉØ`ìO²¹oìoî?7DŸ¥8…¾Ñ÷²¡Ï޲ӡo‰ý%äñYS~v)èîéåƒú ‰É[±Ãròp‘{«jjë~[GWÏÇ@ÿlÿà…‹CWF®éÑðð‘nMýoÿAgù„­1mž@X‹þ'˜bí-Í ušê -–fVºZ¥ŒÚºñ¿õ¸FW™Ô Y._¶”¡?¡ÿSŽþSè›ü3æ‚uN‹«³B(ÒR!v ö¹Á¡ÑqÊ$@eQ\VY£©ol†=p³âÂ¥¡aÆÄW_ß¹;Êþ3S±~=2b„±?pö4Äûm-ÍõµDFqa~NvÖ¶ÔäÄ„ØèÈpBëbÝZù™Tâh/ÆÜ_¶t1ʆw%à°`rŒ™ûÓÍ|î›3ûSèÿkþtáϒcÑYPvBÑÏ.¢ýec+¶w”8ËÖÈ×®óôöõܸ)<2:6!1%u[VvN~a1%X‹ƒlaèòëÓgè$ ÐÿÓXôÿ9ôÿþlý»w¾æy³%¦‹©©®,+.úÛ¶&)c£#BƒY˜ }ñÊË(K‘EIãk4I=úÓÌ-ÅÉùq1]Ï¾Þ -g ÃVì qv˜!a‘Ñq[’SÁ~^a د=Øx¸õC”¬ïcÿ2{LÞ&öñ–d S°O}"ã«Û·ˆýá¡KÎ œ¥’õtwû„FEYIa~.ÔHMQ)ãÀFhp ¿/ª¦»þ—ý:Šú<ã>Ó¦Œ™è4Ú( ^ Q ²á†•£»,,,°ë®¬,B œr -¸\rº È}ÈY(P„€•`q4ˆb$ˆ¡CÑqMƒ6ÖI;5ujgú¼ïûûíÁa¢â€‘÷¯ßÿßçùü¾ËÊÂŒ°ËëtZªÕ}šýÅ^÷’}ú?® CÕý'O” ªñÚ£?WѧÑW+ú«5l¡î&½-}3 +–­›ëìê.yzAzA¡áQ1²Äýi™Ù¹ù…%Gj¡…µwtõàÏ]@= П¸u{ôÍ'ú·oaô/úgúamý#´°2@?+#§äï#õyðy&ËÊÜÄØhë=‚>C%Júo¨å¸Ðé½òO9{Ôài¨³¿z ¨ÐAófhÄ4…i³gsyn±ÄÛ÷Ãà°ÈY´‹Ü‚âò*p¢ºÅI`Mf‚°fìáìì?}Â~š}²‰ñ˜}¢FßÉž®ŽvÌFEiQAnöô”DYlt†ÃK"º»ò¸;–5t &²CoÆc­6ê>f_µîkÌ]÷Íü-<û4Äý' -òQ|$¿%ôé7»ù82 õ¢¿m &C{-ÉMÇ41³´fÙ9p¸<¾»P,‘úøï‰ˆŽ•%¦¤ÈÎ-(*­8Ré!ôaq|ׯŒ]»1Ž÷‘Bÿás£ÿD‘(½‘Sß=„…œü†Bÿ:äIÐï;ÙÝ èÿ¡¶ª¬¸ 7+#5IƒÒô•JD>ËFè›2 a u}mÚ@Uô5¨Êµ„þ<>5-(,–Ñì¯\…Šžá6&’ØwqŠwyìgç..‡Ik†“ .JÌéóÆþTÙ‡)ûû½É¿Ý½CØ¿6åⳡÁOÑ õ8êª+ËŠ -òÊ3R’âã~>R ØÁwqâ6–榤îo~WWgÌø¡¨ûË—Sì¿ -u‘°¯¨ûЇÃ[B_õýTÑGË·\QôQhk×þ»Yý÷MÍ-m¶ÛÿÞÑÉ…ÁôÃ"÷ÆÅ'¥dÈæ—UVú­Ý TÁ>‚ð®üE‰þ$¤÷¼èÿonôïô'úŸ]8wíbç±ÖfgqA^v& izKÄ7.Û…ÉÜfhèë@– ÍÕï¬ZI£¿L™äúóùÔµ ÙÇ“·Í°¯…Ù‡™) flwà8¹¸ !áÀ~rÚ`®ÊºF`¿«§÷atûß¿0û¦³ÿ5Í>–chúÅ©Þ@Gksc}MeYñáC9òŒÔäÀ#,$Ðß×{×N œ³#ÛÞÖÆÊ ³šÜ—ëàÀÔ¤Ù§!Š,úº¿Àì?Raÿ¿jæ+д„>zO-úxóp^4úš -\ô¡vmÙŠÐ7³°²±µg;:»¸ D;wyûú†„EÆìKHNÍç:\\VUSߨŒÑï=Õf`pèŽîÆøM¼‹Jôx)è_¿úÅèçýÓ§Nötkkn¬CqúiÉñ±Qá!¦XèÕ Ð·4ƒ0¡waôµ0úoÿvi\jèÿjQÅøŠ?5-ÈøQVຩX»I¡¿õ=c¸.ml8ήî;vzíö ŽKö*,©¨®kliëè‚a;™»Šú(ÙW(¡:hÏÅ>™´(Ù¿ùWÄþèç—†à¬< ìwwkkiª¯©*/)ÌÏÉÊLÛŸ°/&*<4üðò Ý]áºt°cY[˜™0!z`®û R÷ß&ŒÌY÷•î/t€Ô[LìøÉ×újOÝüY‹þ[3‹>¦‡cÂþY³ì8\ž«»Päé¡…†GÅ@ji™Y9ù…%å€~SKÛ±În´‡gÎú£tp4úÜJn^ÐÿžFÿîWÓÐï=ÑÕÑÖÒXW]ãôã¢ÃCýv{íÜáîêÄq°µôßÛªÂ\¿g‰× -:Êè/–_õ§œBj)+¨á*„}˜;#cs¨ -O/¿ÀЈ½q ûÓåÀ~ie5Ì[{t ÄÄÐ¥Ìþ,JP£ö,“¦Æþ¿ìߟD ë¦mäÒÅó0nÀa¿¡öHEia~n6D±'8ÀÏG* =ø<'2ÄÒÜ×}<]¨ûÚZŒ5tÝ_ñ*Õý…aJ}¥û*æ«¡?õ:£ÿóŠþ -•¢¯½nýF]¨\¨è›š[Ú@`'ßc‡X"õñ Þ+KLI?›_XZq¤¶ ©>{îüEXÃ/®^'±Ýùú›Éû³åö<è?ú÷Ì¿øÄø«c¨}Až€þÇí-õÕ°ƒ8΄¸èˆÐ@?/Oœ&BßÜÄØˆ„©Š>ªú4úo,¡ÿ2Þ4ö£Îþªß­^˱ݘ†FL`ŸPÀ؉<¥>þAÀ>rB=£´jÆGípZ~¢`ÿÚË`_1mû_QìŽ _„–€ÀmÙÑ‚@Ï(-*È;(OOIŠÛì{"7gG¶½­•…bêþ&] ©û˜ýŸ[÷Ç,. û$QºîÓðãOÚôŸõë‰þ4óç.ú}(ú°w8+ؼ­€¾‰™T.{¶£³‹›òòöõ ‹ÜŸ”’!?˜WPTZQ]‘µwtõœ„ÌΞ»pqxäÊþ]ŒþÕíÇgF-â\èßÄè`ôÿü F¿©¾ºÐÏ‘úûöF„ùûH=E|”&ËÊÜ„id›‡Ð×f µSE_ƒÚ·%ô_ÂS²bÍþJÂþº :À¾á6¦©°Ïæòø‘DêûaОH¸/S2à¼,*«¬ih¢™@ì_ö)%Èe9¥Âþ³O„f -³OK¸ Äþ•‘aLHf¿µد,+Dä©É ûb¢ÂBý}½½ŠŠibfiͲs`s]Ý…"O¯Ý€~hxT̾„äÔ yΡÃÅe•ÕuÍ­Gú}ý8±áËýñ‰[ý{ý©DÿñÜè_ƒ¤Ð‡<Û?jj¨©,-ÊÏ‘g¤à8ƒü}¥‘€Ïã"ô-L}¨[:&F%þ2e”Ê$:Ã_ÒSÇ‚fÿMÌ>AtjöáÎ$PØûn±ÄÛ9#ƒ²‘•[PTVUÛ€˜€ó²ÿ̺._:ûßÞ'#wûÖž9@dhpàLܗǶ67Ö×T•—@ÙÈÊLÛŸ(‹‰ - H¤±ÐƒÏsâ%pgš¢ºo ¿™ªûZ ÌÉ̺¯¡`ÿ×Kì#ö`öq¢Ääþcùþ?Àè?XBŸŽ‡ ¯1[ч”Z¸èCׂ­32~ßÔÜÒ’â8ñøB±D -Y…†GÇÊ÷§eBç*,)¯ª©GèÿøDoìßàä…пý%ìþ·ÓÑübèOaô'©@)ôÏ <»Qž 5UeEù¹Y€¾,Åéë- Üx\¶=I¶ŽB_sõ;°qý7gEQù‹yjXQ¤¨ÀÍЇ&AÝÍútŽíö'7¡x—÷ÁaQÀ~j&°_\^L´íìþSfîK¥Àþö|.ö+™ûŽfÿΗ„}Ä»3§Oõžèî<ÖÖÒÔP{¤¢¤0?7û@zJ’,6:bOp€ŸYâæâìȶ·µ±² ê¾Þ&ºîkάûÿg¿NŸ¢¼²0€ÑD§˜‰Š2”ŽÉˆ‚È"[š}miÁfiéYš}ß‘UöšAPP( ®”DDƲ¬Ä"5¦¢“15ÉL͹÷}{…V"p?tÿÏ9¿÷9¤*ïqÝ_&öÉDÑ—œç>ñó…âZ­è¿®è“æ‹}ÈHýOöEÿSm]Šž‘©¹•5Åtrvõðòñ -‹Œ9•˜’–™SP\ZQ][ߨ ËwñJl_ÿ N‹@ÿ!}¡¸È \8ú¯$¡ÿÅèðÐlß5Œ~ÃÙꊒ¼,@?6 -âdÚÛÒ­ÌM0ú&T-„¾Üv@ÿϰn<ôׯ¡¿ÔO0‘ä4’TRÈ`)ää -ŠûU€} -اё®lŽ_PXTlBJ:°LÔ5Àäu’ìß!ÙGc7óxÑìÿ[œ}ìÈÌ7Óˆ}’‘Ûƒ}½Ý]¨n´67%•¥Å¹Yé§“`øÂ‚|9l7ÓacM³056 Ñ=uØGuÿãÝ»vÊ¿±î¿§î¿]öÓÆ>>à°û¿äCT¸. ýô•†¾óßPôåwîÚý ô,%”‘¦Ö!Ý#TCc3 šµ ÃÉrqcs|‚aïâ“N§gå—UBRMýKW»º{ûoY!ô§QéýF Ðÿí÷£ÿ£ÿð+"ÐÑ;ú—;ÛZý3%E€~Jì]‡íŠâ¤ÓÌM ©- 5•ýŠ -(My9¦ &}©5ô—ò‰X!D…@ -Y’ý½ŠÊ*Ꚙ}S Ú±ã'œÝØph†EÅ%¦`&*1ûíÀ~wïM`O9xˆ}þÜ-”ýßÞÀ>¦dbüîô›½È’Îös-˜ý2na^vFjrBlTxH Ÿ·§;xâ`gK?jifb¨¯wXG[󠚊²Ò>\÷wγî¯cùó³ÿX„}ûóEм†þº…}%eHH[ç°ž¾¡‰™åQº­#„äîéí—œš‘WÈ%Ðo9‹A¡ÍŸÀIñÐ:ú¿.ýÇýbè··67ÔAÝ*ÊËNOIˆ‹ô½Ù®Î'Žƒ¦E ¯®¢L¤ èË -…If)%Võ—;Æ•÷D­ ©bËVÙˆ}˜C%eUuMm]Ò †ƒ“³›§·0 `âéŒì|è5uÍ0}W qܼ…ØŸxkìÿ:ûpd>žy4ýðk’ý183±&0}ÀIC]MUyIQ~NfZJb\tDh¿—‡«³“#bmenjd@¥èÂÁ©®ŠTáÕý³êþÆÿƒº¿tìwHdŸ—¨À}ò‘æ“A=•ˆ~Ç -FÿÍE㬢¿ý¡èC<ªêŸÒ¥P ŒLÍ­¬!!¦“³«‡—PhD4T­´Ìœü¢’òªšº”´­ë(¦¡áQú_?œ~›÷ÖÑÿ@ -׃û°x(ª[Ý]ýƺšÊÒbœ' ìïÍvÃèqêjkbô÷`ôwÈnÝ"„¾´ Ë5ô—òÍÍþ’}™?}´e›,@7'fÿ Á>T†£“‹›§O@p8b"#NͪšúF( öocöÿrìÿWœý_(0{0|ˆý'˜}ÄÉý{S“_Ž‚'ý7 t\¹Øq°¾¶º¢´¸ 7 ‘àËa»¹°˜ :ÍÂÌØ -¬h êþîyÕý÷Òýåc»ÿ3rÉ~Fßfbõ¢/Ùü×ýE›¶}M-H‡jhlfA£Û0˜,76Ç7 8,2æTÒéô¬Ü‚âÒŠêÚúÆæÖó°t×{nôCH£c_NNÝ»Rš†”`ïžý€ÌÇ}ë_p‰¡/yóæþ=ý[ý+íç0úeÅù9€~tx°¿§›‹“ãØQK3ýƒªÊJhÓvAš}ý s¢¿ìI®È'bQEÖóØG)Äþ>¥ªÈ =c3Kk;G–‹»—f")Øç’ìwØç±ÿˆÏþ Ô Ë>?Ä> -š?`‰2Øß×xéB[ks˜RYÆ-ÌËÎHMŠ - ôóötVílaÍMŒôõ(:Úó©ûH¾ûs±¿ÜóùnÙŸ&ØöüGAÝ'àGÿ¼¢ÿãs2£éU…¾ÐPˆ Oš¿ž0_RÑßK}mŠž¾‘‰¹åÑc¶vŽŽ»§·_`HxTl<ì[v^!·¬jjnm»péjWwO_ÿ Ž¡ÿà+þ§2""Gÿ {7oôoè_l?×ÒX_SUV\è'Š ðñtwqrdØúÆGt!NÕJûxèoÛòìýõkè¿«'˜ÎuÂìÃTâ5dÛv9Ä>ܤÀ>Üœ0‰¬“î˜ è©™À~yUm}Áþçˆý`jñìÿgûäòÙLj͑áÁ¾Þn@šGKSC]MUyIQ~NfjrB\tDh¿—‡«³Óþ¸µ•…©±†‘W÷ˆºÿ—Yuÿ~Ýÿƒäº¿Ì#úîÙÇ=ò9Q$!U ?"™Oï±U†¾$óq¼¢ÿ¤¢¯À/úºG¨ƦVÖ6Çí™Nή^>þA¡Ñq Éi™9ùE%åU5u °oíô¬Áá‘»_LüýxåDî1bé‰þË|ôñп;ÂC¿ƒDŸ è§&á<}¼Ü]XŽv°i€¾ç>…¿aô·èÿq3?L²Q­¡¿ôO„ -4›¤2 -9yä„‚â~5 ¸;õ M0ûLb"04"&>953·[^]ûYS Ü›H‰~qö‰üi±ì¿°#øýwßÅ©21>6:<4€X¹v¹¹ÒP_[]QZ\›•–’x*&2,8À—Ãvsap`ØÒi–f&†úz‡qÝWQ_ö̪û™‰º/-Z÷ß3÷—˜ý^qögøìî#ø1ùØ|>ú3âè÷®dôç4_¨èKEÿCœÇœE_YýÃzú†&f–4º-ÃáËÅÍñ ‹Œ9•˜’ž•[P\ZQ][߀Âé¼| ”‡†GÇÆ'P¯.!ûüsóÙS’}ìÊÔ$°gèVÿžëhÛZ›ëÏž©,ãæ-Iñ±Qá!~Þžî'í€+sS#*꾆ºêIu3®ûuÿýtéÙº3ÊcŸ¸ß¾ì?XÀ}?&ÿÅO(¾É˜ú(›þëÍ'Ð߈‹þfIEÿ€ª:4+] -ÕÀÈÔÜ -R±str>éîéíŸt:#;¯[Vyæl}csk[ÇÅ+]×{`Ù ›±ñÉ)ápx§ØK8Ö ý~tºaô?«­.çúÉ€~h /òdÚÛÒ}C*EGKCMe¿"}Yô¥a®Uýwñæfƒ€ý-[ewìïUDE„`ß‚FGL¸zpü‚B#cý,Ì>VâÁþà푱·Ë>o -EØ'ë$ÄIÜ'ûûzº»®^ºÐvfñlMUyIQ>ÜÉ qÑ¡Aþ>^P÷™ö kš…™±!££¥yPmκÝß´I¸î·¨Ôje’”…¬“ˆÔ÷±ü >êùDÑþ"O®Vô¥¤ˆ„Šþ¦MØü9‹¾ÚAM-ÿ±_çOUgǧKœ¨)3Ú(HJ]Q£¸ÇÑ:Œ *Šì ˆ‚‚€ì‹€€€ìû¾oBAQd'  b&jE” K„8±bê¤>Ïûžsî¹— © K)ç‡ûÜçy>ç{`";vîSÓÔÖƒÐ?qÒÂÊÖá´«»ç9¿ Ðˆè¸Ä”ôóËÍ/,†K«¨®­‡SÃï°{xkì‡ØôñÜþ»{ûuXô‹>” èûúÎ6–f'Œ} Uýu -Ì8 ús¹iN¡?¢ìKQöa3ÿ²x©üJ`ãf(`Bå†ÎaC#sK[Gg7Oÿàð¨¸$aöoµ`0ì÷ŒÀþ¯ïÃ>¸¸ôõö<ïê|ÚÁ²ßrëFCý·Õ•e¥%Å…/dg¦§&ÅÇÀ—§¿—ÇgG;ëSfûGëh©:°Oy×7JŠÛ¶nÞ„¹ÿ%—û²üÜÿŒÍ}ÆýéÓý1d' -ì÷ö©û(?þ¢ùý^‚~Gûÿú#˜?g>™Ã¡¿ ÎKQé›]ÊûR×Ò…‰@蟲¶st>ãáåŸ”š‘™ S).)űÔ7À¡±èw<íìzÎÌ…|„úwZ ¯ú—È@ýð`ÿsžnζ–f&F8OU•½»ýÍ×)¬‚¦"èKô¥ôgL¡?`UÙÏQeÖsÎÜÏý/äö× û šÀ¾±‰¹•­£ °Ͱ_$Ê>ùêÄ]xö¹MüåÍ ¬â+šû”`Ÿòr·ñÖ͆ku5Uå¥ðåy1/'+#59!62À×û¬›‹“½ 澑¡>¤ˆÚÁý{wïܱœ’û2˜ûŒû$÷?åçþt†ý‰äþ(²¹¬²šcŸ¾È /}Œû?}^2æ÷±S¡/cŠ>¼‹/OJôÅš?5ŸEÿS.ô‰ùóæË }Æö;wïÝPMC[OßЈ„¾½“‹ÛYo¿Àð¨Ø„ä´Œ¬œ¼˜IiyUM Ïìî}ú2æÐIBÐ|ó‹è©‰¿5Þ©½ý{xf,úEý$‚¾ ïhkinbdxXGã -™çV@ͪ•òTr0ÎyŸÏÃG_òÌ5M¡?v¸¨(Ȇûóö—¯\½fý&Âþž}Ⱦ¾¡±©¹•£‹;°‚ì§Ï¦ìWá—'ÃþãØû»Ègÿ”}ÜÆ>R•OŸ0ì£0×ëj«*®^¾TTŸ Æ$'ÆEG„úótw=MrßÄø¨ÁaMuUÌý¯¡GÄä>.(²OÄ™ÉËý‰éþh²µØoà±UÙì1?Èâÿ<æ#úÝü/0I ™Œèk¾ß|˜EÌú_c諨ªCS9jlbÆ…¾PhDt\b - $7¿NìjEUmÝõƦæÛ úxeðÖGÏìïÌ} ú¯è÷<Ç+ƒ~6 4.º -Ðwq´µ2716Ô×Ñdæ è¯ô— ¡ÿÇφ ?m -ý±{„¥àAA"NÈö—Qö ¥À¾š¦®þQ¾“‹»a?ž°; "Ì~çh±?ÐOŒù±óéƘÖføø¬¯­®(»RR\˜!;3=%)>&2Lû–æ¦Çêëji"¹¯$”ûËØÜ—æåþl’û|÷%$ôL ÷Ç„ý;û?>ïî¡îüôé§æ÷0èß™Ôè1ÿ÷ó§óÌÇÿŸúÒâC_‰„>LBWßðØqSsKú¾Áa‘1ñI©é™U…Å%Wðë .¬©¹•y“Ã÷pÿ¡Ï\Ùpè?æÐ¯¯­*ô úñÑá!>^î.ŽvVæ¦ úûöô7­_³šC>†ÞÓ,Á49ô§Ô³G,ûŸˆ²/û…lèr† Edÿ š°ÜÔØwug”HNËDöKû 7nQ$†°ÿвÏ[Èá÷ñßCÙ‡…|-`ÿ…HZ¶ÂR35•å¥%àL^NVFjrBlTx“û¶V'O@îëéhªAîïáçþ*&÷å˜Üt¨û³ˆû”}I6÷'–ûcÀ>L_ähZR÷~Åñ5Ÿ~|Ñ.¼}kò¢ÿ›æSôÑüYÔ|üÿièË ‡þú{ ôÕ4uô ôOZXÙ:œvu÷<盜–‘•“‡Ã(-¯¬!Óhôïó?¾^Ð-zc¿Ž|cÿ½18±Ñ/%ègruwq²³²05>ª¯«©èïTRdæ¹|ÙD_†ŒSЧÐ4§ÐÛç7ØG'æûÈÄ2dbe_y?²o€ì[û D`HD a?O”ý6ûý¸“”ýÁwaH‡öÁ}d—²«óYGûã¶÷ïâZÞl¼V{yõ2,f~.P“’äïãåqÆÙÑÎú”äþ‘Øûö+‹Ï}XSd‡É}\ՙ¹ÏdÊÄq”ØÏaÿîý0ÒŽg$÷Á}€Ÿ>}`> ýgO˜Y¡Ÿ;©Ðoþ4Ö|AèÏÄ¿ž }0þþaB†1uCÿ”µ£ó/ÿ Ðˆè¸Ä”t˜D~AÑ%EUmݵFÁ,Úa]ô¾~óèÿó}. Ð亊A¿“Eÿ6DA¿¤¨ ÐOfÑwu²³¶0=~Ô@WKí ú0OYQô?™Büñìϰ?—ϾÂÚ _mù«âŽ]À¾:°ìøI kûwdŸlå{²ÿ–²O¿?q-‘ý¾žnÚ— 5ÍM#ÕeWJŠ ó!HÒS“âc"Â|½Ïº¹8ÙÛ`îèiór+?÷aî/ ¹Ï¸?{6Éý‰ìþh°ŸÊc¿û’Rƒ}Iráïúáȧ¡ß]Ü ¸¡ž‡~ê¤AŸ7êßh>þï³9ó!ô`è/â‡þV^èkëÀзwrq;ëícÈÈ̾p±°¸äJYEumýõMÍä¶ðŒƒèîéCô_’ë¢çõ†œ×ÇC¿í‡{ß‹A?&"$ŠèŸdÐ߯LÐÿjÃZ…/W°èÏûÓ\nœSèó#$…„(ûR„}iʾüŠU -ë€ýmÛ‘}Uu-=dŸ*á퓜ž™“WP<ºìÓ½dsØïí&›ÙþzäûïZ[š`7¿­©„ånòr²2Ò’b£ÂCýÎyº»ž&¹obLr_]4÷W“Ü_¼è‘•A÷‘}âþ,Î}IÆ} a÷ùŒã,?"ûq|öÉD[Zý>¢¹ß…ðƒü(>ßECÆè·¶"øèÇMô‡7_‚1ѧæÏ"æ#úh¾Œ,üó “Ð_Í}e}è(€±‰ }WwÏs~!áQ± Éiç³à¬` -¥å•5ðÑu£©¥õ;¸¬‡ÚÉiu÷úìmñŽkÔÐ/æÐ ôõôíýczZê€þ®Û·m¡èËSô¥…ПÁ¢/1…þø<"±{+ɱ ;Ù_ì/^JØßȰ¯¢ª®­G”°±?}ÆÃÛ/04R”ý›•}‘ÍäØï'ìwubd>|@½¹Ùx­®¦ªüêåKEù NzJ"äïãåArßÒÜr_hî¯U€Ü—_ºdÑB¹?Ë.€uesŸ¬,ºOs_’Íý äþGc߉²ΰŸÏ²ó¦í1€ó¬“ÀO$¿¾¸Ú·qïÞë,úù úá}§ÿeôG4:kþ 4Ÿüå\èKËÀÉ-\´d©<„¾ÂÚaBßÜÒ†„¾—P(¼xSÒ3aE—`Uµu×oÒw/ýäêì"è÷‹CŸžÖ¡=õL,ú9™éÉ ,úä-Žèk««rè¯SXµB~)})ú’,úÓ¦ÐG -\]¤S°R€ ¹…ÀþJd3a¯Šªaßl(û…£Îþ›Áׯì“$é"Ù†ìß¹ÝÜÔHÈ)»RR\xñBvfFjR|LdXp€/É}[+Ìýÿ°_çOQ]iÇ«’)MR–„ 64Ѐ, -n8Qƒà‚ŠK‚Q£Á˜d’ŠQǵ\K‰I`$ÊHÄq EPeWÙ7;-X‰3U£èdÆÔ<ï9·oßÛ4‹°¸?Ü?àœ÷|Î÷,ü`nËýI>Þã‘ûžä¾+ôq`¹¯´P ¤ÜÜ7áî¿"¸ß«ë¹ÿÌØ? öiGÁ~îõ"¹_][Kð«§&òkk««øÅ[p=—¡OoüÉçý¶Ìï%˜ÿ -7ßD4k®°P²ÐwÀ²»’ùžýñÞ>“d¡¿dÙŠÕ<ôƒCBwïùû÷ÇÄÇ‘:{ž]¼×²sóo0ôÙ{KÕˆþƒM; -ý†¶Ðݵcû–ëVÿe)ÛPBßO@G_eMûÙÿÍ~f8@ÆÑïQ¿>CöE'8Œýzö]Áþh¦±?÷ƒ@bÅêu›¶lßIìGF6Îþ-z‰JÙÐìÓ|û ÚÛ> ¼4ÎÕ+©)’Î!51¤Ñ÷ïÛöÍ×,÷×­YÉrÿ£f¹?jÄ0wÊ}G–ûD9¹ö™û}ip»°ûÏ„ýÄ>ßÑ4:7K‘šè}À_w _ÈGçWV”•ÞÔ]»iœBÿÀó~só_hÁ|,6?=¯¿NÙ4¡g¡ïH¡ï>lÄ(yèÏCèB¡¿rͺ<ôÃÂ÷îÛ0úȱxlKº’š~U|mU²3¥¹­m ôïáPuúžýM ý?3ôgM÷›äCè6Ôu°¡¯Ô£oÒW²=èwîg”ý—ôì¿.aOSWw‘}ý/–®X³nÓVb?\Ï>•I3öäì?4œOããù›Œ}Ї¼Jt¹öiDÕu5Õ•œý¼œ¬kép'9ñì™Ó€'æPTdÄwc¹¿eÓz–ûŸóÜŸc,÷ìíT6VJKÜsŸ$êÒî?cöSÒÒ¯eå;Å%¥åä~uM èǯšÌ//-)?å9C¿æ÷–™/†>ÌWX*­lTvöN-„þB„þç,ô×oÚòׯ(ô¿‹ˆŒ:ƒµ?}ælb2î\¾øtç–WV×Ö©Ù‰j¼« }œ©&Ý™zÒCÅÏ”QôË Ð?yìÈá¨HB'C¡HJècCGËÑ@Ñd*ì§l;{ÐOmöÁ„9cC;ÄÕ}¸À>”˜» ðc=û!û„Dbò¥T‘ýò`ÿ±”}þÕÍèÏ4¤ÚzúVmuUEY‰.7¯\¾tá<õÔñØ#‡aËýÛ·²Ü_Þ<÷lj¹…ìmUÖVJ Å@Ê}Á}ûœ}÷_èt÷ŸŠ}?ûö#¾?p˜³^—›Èý¢›%¥e€¿²Š}• ¿¬´äfV>­t<´Îsô±ðúdèûu'ô[0ÿE™ù„¾`¾‰h>ÖZa¡´²VÙÚ;`¹ÅÐ' ý(ô—óÐß¾ãëoú¸o‰=~Š­<J÷Ð*)«¨ª®½¥ÖÔké<éпÏÐ$E¿•ÐoýŸuè×¶ˆ~8¡¿uÓº5+–~! ï/¢ïî:ÄÉ£oÎöSþK=èw¯}ìcr­möG1ö'ëÙ_¶bÍú¶Ø¯Õ±ÏÞ£-±ßÆkTò•¦ Æ´ñŽö¶†¿H…Üçø\LJLˆ?}âØÑèƒû)÷¿Ýµ“åþZYîÏòŸÆr¬Ï}7—ÁNŽƒìlm¬• ÈœÜïg&ºß§˜û]ÍýeØcìÓûíÌYà“z%#3;¹ä„ûeååøÊËËÈüâB,{nvfÆ•T\·gÏ0"}\¶_mëÆè·Û|¬1¹/7߬™`²TZÛØÚ rtìâÆCßk, ýiþ³d¡¿–‡þ®oqÙFî?}ô؉Óñ ‰xeñë¯,œ¥ -ÖPšÛÚ;ôùqú½çÉ8úÕ•-¢¢GÿãÀstO·Ñ#‡3ôí{ÐïÒŸtš…A&ö_~Yd¢ßýÁ>)aï *áí ög3ö?Ø"ö#"coÒ–ÙÿõiØž¤ ZLªº®†jáõ¼œ¬ki—/&3âbc!÷÷ìe¹¿™åþ—<÷ç ¹?¹ÿ6 1Ìc¨ëgŒ®ÊÆJi©€û<÷™û}[pÿÅ®à~³Lìӎ°ŸÌš3+ÑYPXøKJÙWò‹ - ðÄ¢EÇ‹w-Ð$ôƒ»3ú­˜ÏÑ7b¾ú0_a©´²QÙ!˜œ‡¸õ@èÿñOo#ô' -¡?Ÿ‡þ—,ô7o¥Ðݽ¡(&6ŽÝµÉ/§Ñ¢ç]ÇUK'©¦NÍŽÐgæ? ú¿¶…~a«è/Ó£?™¡?ŠÐwv°·ú -sÙ~â¼Ûù‡ô;ý3Œýv±ï5N`Þ‚EÄþJý0‘ý„D2âj&Ø/4Îþ})ûmw¯+ᚥÐ/(Â!ª¨ª©£S¤½ÓxWDÿ>Cÿ‘´ŸþÛÆAzlÐOôo7B?HDÑ‚yúã¼ÚB¿wú]èkξŒ Ó×Ìd컸yŒÐ³?‡±¿„ØßlÈ~ÒEcì7°ÿ¨ýì?–³/>LùË´±A‹§©º®†M,å~Nº|éÂy -ÂÔ"÷ÃÃ(÷·Qî¯sÞœ÷f͘æ7ÙwÂ;ã„ÜŠ·ª“ƒ½ÊÆJi©ÈÝ7cßKî~§ÿS³ÿ¾”ý `ìè^ý~{B`¥é‚ %ô7oX»jywCßù­˜ßGg>}2ßBie­²µwÀòº¸Áü‘žc¼ÆŽ÷ö™4eªÿÌwæÎ_¸øS!ô7RèSèÓ» -+}ât|¢)%5ýjfv.C¿¬¢ -H­©×òpºGå$G_úíG¿I‡þ=ô‹Û@ CŽý†è›á ÙÏô»Æg”}Œ4š”²÷ê`—¡#<ûSÚÍ~±1öÿÕŒýö¼MeS1Thhï6ÜÑÖÓÔÖTU UŠþÇ~>Eu¥q¯šÑ$šµtRq4ì‚È"‚¬"k³C³É¾4 BEÀIÔ8*„€ÑR´E.ˆlƒ¢ÑX–¥1 A1¸Ä%“ròfjj~çܾMßæ¶‚mª8/ú8ý<Ÿû=W¯\FîC£æÆ‚ -´äÐ6÷·²¹Ÿ+Š I>^î®'ûå¶Ël¬,–˜šè/Ð¥î÷iî³îOÃ@3î¿ÃuÒvÿÕ°ŸÀ²¿ýÃRŒûÍ­èýöÎÎó]]pººÎwv¶£ó[qÍõÒÏëa ¯ëý„q…¾²ÌW0ÿ™ùtKf0æãbçâf54µ±,úFÆ&¦K,¬l–Ù.·w¸º{!ôƒBÂ#E±ñ‰lèo%¡GÕþ‡JðªÂêœÂ5ãëŠÐ¿|åê5MÝ=½t}Iè3èK»é,ÐÈÑÿï0ôç ›ý -9ô73èÇ1è{rЧ(6僿Sôߣi4¾JåìS%¦ÏdØŸ§¦¡Åa_öýeìgŒ€ýÛ”ýdl™Tác_ÉÐrÙWH:¶ÈÜôßîíÁàÊr¿ã\"ÕTWÀ#ä~¡|ˆaRtDrß×ÛÓÝÅÙѹomin÷ êëéêhkR÷ç°îÏwŠŠ¹ÿ*Ø1ì“”°_´•UTÕÐÜ'î·þŽŽŽÎNü€ü6b> ýš*"Ä}E}Á /?èØü)ræO—™?æ«QóõôÂ|3sKk„¾½£³‹»§·/B?,"ßUqJª|è"ôñm­ ßV<©ÚÎuÈBŸìNïíþº<}üäéúÌúŒz†Ðÿ÷o¿‘hz0ýŽç¢!‡¾•¹©‰‘Á]-ú‡²èÓ?ë1¾ -®“øØg”g©­ãóد`ÙïPÂ>ÜѰÿ?öÿøÏ32¸lîß¿7xw€Žn÷7oHs¿³ý,L:ÍŸû™ÈýäÄø8Qr?ÐOèåá&pr°ƒûVpñ"#è¤7_GKSC ó<äþt™ûS¹îO~ãî¿2ö™JÙ—”­údwž‘Іþs–‡ý§,úRôÑKWÐ/æCßßÇÓMÀE_Cþ¡Ø¡?¡þ›>бÿ|öñl51%ûW,L±á•gÿóF1û -“;ôH}Âäþ Š¥¿¯·§ÉrýrÿÛ ç1¿-M õ'Hî—Érr?¹Ÿ–š’”°26:2,dE€¯§»«ÀÑ~¹í2+‹%¦p߀¸¯­¥©®†ÇëXÝÃ>6ö½Xö“ûYHÑœÜ|¶DIîÃý†3MÍ--­8--ÍMg`> }ék*?7·›EÐObÑ÷Ryô9”¢ù“Gbþ\j¾ö|Ü©Ì7]bae³Ìv¹½£ÀÕÝÓÇ7`EHXdt,î6%5 ¡ŸÛÝ%ú5u'êšZ°4ç/ÐпNj©§·¯¹4HBŸ]L£+&Îê°ÁÄ¢?HÐï•¡Q†~5ý .úŽvè#Eôgó¡?Iºè«ÊQÂþ”)%æÈØ7æ²:œýbû)û$ZXög_:¼£™]¶Xèô>}BÙÇCu ŸÎ/rOÕï.]ìêlokm>súäq£C¹¿¹¿1szT¼*.&*"48Ð_èíéæâìhÜ·¶„û&ÆFú tᾆºÚ<ÆýÙ³¨ûïs_ -¿¢û¯9øÇÎ~h¤(ްŸŽL»IŒ$1ZYMÜ?YøÏ4Òsäן$æWÓ»=Hîv7>©xI¥ôãD‘¡ãýQ›O.ò}jþ¬ÙŒùóÔÔ5¨ùú†Æ&0ßÒ¡oïèìâæé-ô ˆŠ‰[%Æ;j]æF„þvùЯ¤¡¦¹µ­½³ë"EŸì i¥þ»} ÿøÉÓ!ô‰ù£CŸîÍ0ô²è÷tӡ蟕G¯Rôm¾Ð×1ú@_µÎK°oÁ²/T`ØßKÙ¯fØ?ûg±Ïæ>_6÷ïßdÞªa’ûWñZEîŸýWK#'÷‹ -òˆM[²7mÈHK]”+Š  -ðzy¸ œì¨ûæf‹MŒ ôõtu´55ÜgrŸuÿo¬ûSøÜç þ×õwŽ™ýÕkÓ×›vîÞSP´ï@±äHq¿¶🪯?S_ -ä×ÕóËŽHŠì+*س{'ùž®Oã}ò9æSòyÍgBŸ˜ÿ‘º†¦¶Ž®žþB˜¿ØÌœšoçà$póðú…„GŠbã“V§¦elØ”½…|Oó -Šhè—IC¿±ûrþ·—¯\½†ÐÇÆÜBèceîÝgC_¶4ò[óêÐÇÂ\ľ´rÐÏ{.úÆ2ôçpþP¬Äú*|øØ[ûz/b?e¿–°ßŠ1ûWYöûùØW|ªŽŠ}äþïìc•ÎðÝ;ý}½=x®åþ¹á¹ŸŸ›ž>ß¼1Qš"NX¼"À×ÇÓÝUàd¿Üv™•Ü_dd¸PÞýyÝŸ:r÷ÿì±#ûB°!"ÿèšôõ›²Áþ—yù…_ÓÜ/‡ûÇj¾©ƒüô¯«û¦æÌ/§¡ÿua~Þ—¸ÕìMëÓ×"D@_¨Úè+Í|Eó§È™ÿžœùÎaÍŸOÌ7Zó-¬l–Ù.·w¸º{úø¬‹ˆŽY™ NÁ*sãæÏq«9¹ùò¡R1ôøég²/wîÒ…ù•ÝúC+3"ôe;#_Jdc°0¤“úÑoúµ@_ƒ~¨úèß3œý·øØŸ; -ö%„ýã§š(û—/2öñ^ež«œ×꨺…a2Ä„}:ÄÌ#÷ïbŒûnýŒ9æÍýr’û´Jwýó‹-ÙY2Ö­Yœ£¢ÂCƒý…Þžî.ÎŽR÷—˜R÷èÍ×ÑÒÔPƒûsøÜ—ÇýIoÈý—dßZ}ñê5ë2Q¥_ìÈÉÅ ¹¸¤´ìhE௩¥§äWU-+-9ŒÐßû՞ܜ¸ÒM™¸Q±úÖ*‰þ(ÌŸÊ5¦œùjšZ0ÁB˜oºDj¾£³‹»§·Ð?084< -š˜ŒÍØ…+Eè“ ýrÞпICÿö²-ÒJâîËË-Œü¾HÑ¿+C»r‰A¿áÔqEôÓ‡ÐrÑ×S†þÛè«ôQdò0ögÍþàÅì§ó³ßΰ²ßDzÿhììsÚE–û¤^hîwÿôÃ÷Êrÿàþ½…ù¹ÓmŸoF™¦¥¦$%ÄÇŠ"ÃC‚ü„^n.ÎvŸ|¼ÔÚ+â¾:ÜÿëþL©ûÓFäþ냬ìûÑTœö¦Û`T^rîKŽ ø+*+«ªª««ª*++ùG$0¡_‡ïè6ò|Z·&EL‰òWeôùÈÿ‹Œ|Eóßå5W¨¦NÌ×%æ›À|Kë¥bçàìâæá%ô  - ÅÆ'$¥¤¦áõ„ûÄó)7¿p/}>­’…þ9YèOC¿†þ=Yèc[ž=“…þ˜ÑÄ¢ßGѿΠß.C¿TR¼_Š~Ö ÑŸË‡þ[è«òQ`‚O û†JÙÏ’²¿¿XRÊaÿ;)û·†Ø,ä±³?”/hîÿB†æþ 6÷Û9¹/A›}µg7ÚtëgYpjí§ÉâU+c¢#‚Wøúxy¸ -œ¤î››Á}C}¸¯=÷'ËÜÝÁ?föÉ?/†ShÓ϶nßIr¿ˆ¸HRr¤´¬¼ü(NyyYé‘É!b~ ýÛq™2ð ÇÇ2D¨.ú/ÌüáæOcÌŸ¡h¾6Ì×7ÀV˜š™KÍw¸zxùø¬‹ˆŽY¹JœüéÿÙ¯ó§¦Ï<€ã3»¶Ó¶^Õ®³3ênµeÛµ­Š¶Ô“¢(J¹@Â}ßW¸ï„!nä’Ë£­xt­ÚŽÕvG»^ ¢v;Ý]wtº?ìÎ~žçûýæ"„p¨Øáùáû<ßçózÞOÜ¡°™ðvÃfÂÛ©É(ôÏR¡ÿ-ÌÉßnÞºƒ2BŸDŸ,¤¹£ MÊ@úÍÉw0&¹ô¥)ú2@Ÿoúk^_= ýÑ_Èk:öW²oƒØ·Ýn·Ó<û|`_†Ùo'Ù…ÙG s% <[õ‡™8ËGÙª“Le£€Áîû(÷ïܾ‰sÿªiî÷uwµ·jU8OE§ÅEù@;91.&2,$ÈŸÉðöòpsq>t`¿ƒýž];À}Û™»ÿ¢9÷ŸüsgŸìÇU§EÅ%¡¨JŠÜoP©5MZm3,­¶©Q£V5 ó¥h'K`'s2áôY }£ß`½ùË;-eþÛÈü-¶`þŽ]{ìö8äìâæáåÍ`ú…„EÂF&³á…äㄇ“ªQÛj.ôÑ|C|B?&:ô‘ùú@²jTt}ôè‘>PaôÑè’è··4©ú3B…¹ú´^n‹kÆËðøë•xi–ìW öUÀ~fÿ³Ñ³_û_°?aÄþ£°?Eî?"†Ìý{è@£Ü¿¹Å4÷{t¶µ4i”ŠZ¹*·0´JMJˆŽ dù1èžnŸv"Ý·÷·l~oÓŸÞFî¿è¾>ø—èàªîω}üGY!áQ±ˆýì¼B.r_ŒÜ¯UÔ7(U*µZ£Q«U*eC½¢™/†mäÃ6f#ôc£ÂC0ú°… }säÿJGþò§3ÿo¾æoÂæ`Gšï[èáIgø±ƒÃ"¢c’Ráö„m$_Mµ -¥¦©¥­óH¯¹Ð¿n.ô©)±:ôÿ7iLŒÑÿÁ}£/¿8; -óèwY¾Uè/¦þ]S³ÿ²1ûë¿áͰßsthäfÿ¢žý;˜ýLØÿÙ b¬¸RìS¹O²W2÷¯MÊý!”û­Íꆺ™D,,+)æäfgXñ1Qá¡Á,_º§»+¸ï¸ïcìþÛl·¼ÝËÔýU:÷_5ãþäà7Í'ú?gÃ>ú£4:É~B2;#+·€¹Ü—Èþ:…¢/…¢È—Iù¼‡Yìä}: ±àП&ógeþû[l·aó÷~¼ÏÌwu§Ñ}|YÁ¡áQ1ñpufdã=,Š«d5u êÆæÖúCæB ÈøÝ{ä„#‚Cè‰aQèß›À‚чñ¸H ?2ØßC _cŠ>Ëjô_ZDÿ9YÆJ,1e¹žý?˜eŸeÊ~ ^4wWçCÁý½»wNëþ -÷1üÜ -ðÏ}ûÄ¥ÑÌ€à°È˜ø¤ÔtÔ©r_TY%•ÉåÕ5xUËå2iU¥™Ïã ÷RzjR|LdXp“A ¿Ï^‡¾Í@ß,ùæ¿``þoHó_Åæ¯€X¥7˜¿AgþV0ÿ£»‘ù9ƒù^Þ¾Lÿ ðȘ¸ÄdvzVN~—/(UJ«kë•mK; -ýÁác'!ôÏ‘¡… ýÛcPE÷îS¡OÈc< ú ™úº.ú;‰þ-Œþý3zôú•09™l‹è¯7FÿåEôŸ«5/ìÇ'³3s -8|AE%f¿Ù€ýó¿ö¿E5£cÿÇŸ RÆjö§È}ľaîOL•û'F†úzº:Úš›ÔJE\RYQVªc+!.:2,$ПÉðö¢¹¹èÜÿÜߊܹ¿Á¬ûËûºà'Ü‘tßRð?‘˜ûvFì…FDÇ%¦ Ü¶Àý2a…H\Y%‘HaI$U•bQ…° ÌÇ—f;%1.:"4È}»…‚¾É–O•ù”ùˆüéÌgÓ»Øüõ滸yxy3˜þ!a‘ѱ I©iÄ¥YZV!–Èk ê¦æ¶Ž®ž¾¡‘&¡ -ý‰û(ôþÛ¨Šf1TQèÿ¨CÿÆ÷סˆ.ýÕEŒSúÍ*>£O¢O³ˆþrSô—ÿÐùÿŸ‹k–eöá䯄c¿æwæÙ§aö#ŒÙWûmûŸžÒ±ÿ×kˆý±q2g¨ƒ=ìS›pÿ…Ü?>ñG]=¼|üP®Freçq‹ù¥‚²r_$‹áS!,/”ò‹¹E°s™ipcÆFÁCÉßÏÇËÕ bÁ ?“Ì'Í™¿l*óm°ù›·nÛŽÍ·wØÀ ™ïIgø±ƒC#¢bã“RÒ2`ç8Å%¡¸JV]%¤mmïìî=:8||rèß BÿAèãÙ˜ úÃfƒH"TD0ãc}4—a,Ο;sêSŒ~gF_jˆ~Ä"ú¿Üe}ŒÄÌØVJkJ`¿³ž²Çýsç/Àù&Ù¿=6~—|Å’X|´­=Ù:ö©œÑçþCãÜ›”ûgQîèï9ÒÙÖÒ¤QÖ×Ê¥•¢rxÐRÅÀòóAîrØ Ü·ßƒÜß¾mëf#÷×Qî¯ÍVb÷—êÜŸ&øŸ,üsaßÉ؇_ŠŠ5&>1™îçr¸<~I©@P†—@PZÂçq9…ù`~:;¶ ½’@@ßÙi¡oMæOiþJئÕ:ó×›1×lþa¸+=é>¾¬€àÐð(Ø6ê•Ä/-UJåµõJMSK[瑞þ¡c(ôÏN -ý1ãÐhúú"²n4tèAæÿëŸ?èÃXÜ&чº€Ñ?><Ð×ÐW"ô…žýÀéÑ_¶ˆþsºæÌ~ Á~FN>‡‡Ø¯V(5ˆý¾Äþi‚ýo0û7QÔè›Fwºÿceîÿ×rîÿC—ûãúÜ¿Jåþ™QÈý‘Á£}Ý]­ÍêE\"®(+åq ós²`q1‘P­L_:ÍÝ•r—‰û ÜGÁÿ€åÈ}<‚ÿ×fÝŸßé˜ûÛívì¶wp„lu÷ôf0°ˆhÈýÂý‚Â".·˜ÇãÃâñйܢÂÂüýè¸*™ oOwg'GLijGß<ù“3Ÿ0‘O˜¿6ˆ4ÿuÒüufÌß¡7ßæ3à…—œšž™“WÈå•–Uˆ%òEƒº±¹µ£«»ïèà„þè*ô¯š }b*fúTékˆŒ!Š»071úßèŸÖ£¯Q*ª ôós2ØIV ¿ -¡¿týçuÍûÑñIûb̾–bÿsxÎ^¸„9:ã˜}”5&ìÿl%ûfš†xÉ’Uc9÷OŸúìıáÁþÞîÎö­FU_W-« %Åœ‚¼ìÌ´Ô¤„¸h× &”«¡û; Üÿ#åþZp¿‘ûdðOrßbðÏç„Ì‚ý͘ý½Ž»¸Ñè ?Ò0ì~VNn’¿¨ˆÃˆŸ—›“E˜OÜ“þ~ :ÍÍåðAG‡½ýÍÏýiÉŸ2ó ó_CæÿvÞüzómuæ;æÃëˆéžGèžLMËÌÎ+à—À TɪëêUmK{ç‘ÞþaýS§­ ýÇ0ó‡>ž„>tÐw(ƒ.]øó¹ÓŸŸ$ÐoÕj”uÕR±°”B?£OŸ}ôGÑ.—‰ÿg¿ÎŸ¢>ïŽÏdÆøCÚ8FLÓjÛD"FT@‚\‚¨( ñ¹¯……–{aYŽu¹‘{–û>–û¾EQX¯¡I”0Z±Í4Ó‰™ô§vúyžï± ¬î.Š6ÏŸð|?Ÿ×÷ý(fÿw‹Ù?@±Ø÷¤Øç'¥"ö‹€ýºF)°ß?4:~ Ø¿ìߟAìÏìÿ@±ÿ31âj³OM¸lÄéÜÿÇóstx ¯§«½UÚX_SU^*‹òs²2Ò’ùñ<.'"48ÚÕÛÓÍâ»ÔÚêå¾®œû[±ûDðÀkëaÖÑîcø ÷_7üª³O~Q̾ÁcSsKkø¤v§ìÏ:£Ügb÷Ã"~n ‹Ãò#°ùLúÎgíOÙÖ–æ¦Æ 0ú;1ú|è¿|E™/3¼ù¿ÿŒ‘Aæú3ýצ®\ôûa¤úy}~—†Ð÷|yôWÕÿÿ>/˾É~‡K°ŸWPT‚Ùoëì!ØŸ‚¼‘±ÿøÉ;ÁÏáDEEÉŠâpù!ll>ùƒ2=˜¯Aš¿i36«óͱù'àÿæ;»ád ;4œ͋㠒S32sòD…Å%å•Õu Í-mݽC#(ô§ˆÐ¿«  ôéuPcþ«häÐ'–áñ£¹Yý¯1úúmýò„~…~Fßaý·ü(d!¡*ûNˆý‚ýÄÔŒìZ¢žý„vÐSý}”?ÓP?F(ô«}B?‘ËDè3<Ýœú6«è¿ÕG~MHößU¾ž É>Ã/€Éå'¦ddå‰ÄÀ~mb¿op³Æý[` -gþ)¢oèQW“ýçþÓE¹ëæõé©+aâúz:Û[¥õ5U¥qA~nÖù´”Äs ±1Q‘a!ì_†ˆæhZæ¾)åþ¾=Ú´ûŸPîãàß°áƒõ°~Â}ùàWþW°1곿{Žž¾¡ÑA3 +ëcÇ)ÑÀ}†/ÓŸò³ƒñaƒø,¦/›ïè€nèø1k+ ³ƒF†úz:{v¿ ôß¡Ròå2ÿ·(óaÆ7À|(3ÿ“-`þÍ»žg¾=º!/†/<ˆBÂ"£bbãÏ%¦¤ÏÊÍ/KJ+ªjꥭí°ú.N\™š¾~ó–Ú¡¯útùÿú‘@­Áìƒo!~ýëÓ“—aaÚšj}±(/+#…@ŸM£o‹ÿãJÐÇ_tý_éYÂþÙ·€4´µö]=L‚ýÄ~®H,Aì7·vtìON_§Ùÿ³ÿwrÜ—Éþ‚W­‚Üÿåþ߈܇‰‡·-tÎýñ1(Þîζ–憺šÊò’b±(?'+#-9ñ\|,7*",$(ÀÏ—A”ì"÷ —¸Û°yü54°ûŠ‚-éþ™û+ÿrØß§§ŸÔÔÂ~å(÷Ï`÷=¼¼}|™~þþ,VËßßéëãíåÍ?ƒCÿèaK SB_oß›@_ ù Ì_« óa¾Á| ”ù¤ùËÌ×óõ˜_C _¿€ à°ˆ(nlþ¤JÑWýw^Ñ]=¯å,—}S‚ýSÀ¾b?42:6A’ž•+KÊ*)ö‡Ç.NL^…Ò!؈G2‡fGÎÂÆyU¹ÿå>¼naèoÓ¹?:<ØßÛÕÑ&mj¨­®,+)*æådf¤&'òãy\NDXpËÏ×{‰ûf Ü×ÒܱýSì>üà>rîäþ:ÚýÿJÁ¯œýõòìo×DìëîG´lGŽ·%Ýwqs÷ôòføøø’ÇLJáíåéîæBšo{üT¡9zí×Eèkn—GýJ£¯ùÏÍ|ôÜHdþ¦Íú36ûM-dþ>Åæ;¡—¯+(84‚ÃåÅóÉ©™9y¢’²ÊêÚ†&i[GWoÿàð(ú·aþg¾ù`îÑ+}b ¨À+€7ÂwÏ=4þW''.Ž èW–IÄB„¾ ‡Ðg1€þ)}Ð_³Šþ¯õ¨Íþn`ß@ƾ=fŸÅˆæ%’Ó3s……À~M}°ß;0<6ì_ƒ¹¿{ÿ¯ß|‡¦žz’ýgäÈ«Çþ’ÜÿEqîÏáÜŸ¹÷Ê}Âý‘¡¾ž®öVic}mUE™¤¨@˜—™žš,àÇñ¢9¡Á¤ûN‹Ý724ÐÇîïÞ¥µÜß&ï> -þ 8ø×-~µá™õQ‹ý-Û¶kj}¦½Ww¿¡‘‰‘û_Ø!÷Ï:9»º¹{xxzzáãééááîæêìt™¯BßÌ.e¿î^íÏ´4·Ã}¼&ô—\˜Jä/Í|¸‰ ó!ó±ùŸ.0ß6ÿØqÒ|0ßÇΉæÅñI©é™Ù¹Â‚"IYEUm}£´µ½«§o`h„0…þ»÷gpèÏ)ý_†¾Šè£ Âç‰>d¨ˆxëÞºyíꕉq@‚§µ©¾Ð/æf¦'#ô#úÞ€¾=…¾ñ*úoûQ‹ým4ûÆ4ûŽ®ÞLVb?±Ÿ#,,Æì·´wû£ãWà‹ØŸ!Øüd·šúŸäž·ª±¿`æ•çþ,ä>äý×®N^¾4>62ÔßÛÝÙÞÒÜXWSU^*äçfŸOOM$ÄÅDsÂCÙྸï²À} Ê}Ý}{±ûÐ¶Û øI÷qðk,~ -þµjÿìR™}ø¢Sìëèé”EíW§NÛ;8:9»¸¸ººáãêêââìäè`š4ý -MÂB±âè/½)eäS™ÿm>™ù(óeæoÝæïÔÚµ[{/˜¯Í7#¯ÄöKÂ|70ŸÉ -d‡†GFÇÄ%’RÒÏgçæˆ%¥åU5uÍ-íݽýC#cã—.CïÜ@Á]ýYúó/}5€T=xúñðÏ?ÙŸ¥Ð¿ÑôÛ[ú¥Å…œ̴dA¸ÿ-¸X”û:Ä}uUp_ž¸?ükEÿçLð/þÅ]¤°/¿(~ÉÕ54µu9È}K‚Ü>'g—®®Ýܾ"ÇÍí «ëg§}vð:,IèèÁÛÐPÇ,D"¤môE¼"±äÂO¾ÈÌ_Ce>š™æ+(*© ù,4_Î|¦óóýƒBB#¢bâ’SÙœ,n^AqiyUM]CS Ì|gw/ú·îÜ›¸? s?=½ó|ö%oòCþ®+Qè £OL>þ A·Ü±Ñ!@ÿZA¿¼¤0/›ƒèG…‡õ;}ÊãÄѯÐ×\Fÿ£?‹a_“fßÚÖÙ?rÂÃë´_@PHxTLBr:';·°¤¼ª¶¾©µ ØïÇEšgš°ÿ’ÙrßðzGÄäKÄ>½ãŠÌ}Lžç˜ûÓBôà¸A»ßÑÞÛn}]MeyiQA^N'=59!.:*<4$(0ÀO¤ûÝ.t_‹µÝW÷ådùÝ -~üŸñÃÿ‰0üK,ÿ¼T ûë)öe)öYZÝ.Æ};{G'gçý..ÈqqÙïììäè`ogدb§‹B_–B½8ô?Ü Ä$ÿSò)ó¿àÏüus™æËÉ+(*«¨ªoßæëóM„Ì? -æ{1æ‡GEÇ%$¥¦s²rò -ŠJË+kêê[.·µwÐæCè߀֡ÇÐŽK®¸ÐÿPèK„>³è2ƒÿ†É¨˜zzh»·ÇÇF†úaÁmkmª¯­ôs³9iÉ 1ˆ~€ßi/G}[k D_ÐW§Ñ—^Fÿ£=bÛP} d_Ø×ö÷XûNÈþq/d?,*&>9-#;· ˜a¿³§päúø-ûp^¾‚ùdÿoø%\rß›û¸ébîÿå)d\Xvï€û×G†úzº:Ú¯´67Ö×VW–—äæde¤§&%ÄFG†‡Sî{Ís±Û½K_¸¯¡®¦¢¬• ÁO»/ü+xîóÃÿé‚á_è•’Œ}üE7Bån••WPRQƒO9b·k·1¸oae Áoïà°ÏÑщGÇ}@¾í^kòŒw“ÏT¡šŠì<ð¤7RDü -è‹z' '_8óç̇̇w ¬¢†æk‘×€Ÿ?Ñæû‡†GFÇ&$¥¤gdæäæ•”UV×Ö76·^iïèê鹿߹÷ý˜xXp™ÐÿÛ†¾ú˜;Tí¼eЇÖyõRç)>ì·×Gû{:ô‹ r³3Ò’ãc¢ÂBÎøùxyGôý=Æ<ô–ÑÿØÏÙWà±oL±ïrØw÷òñ 8Ÿ”–‘ì—U"ûWÚ;{ú€ý°îö€;@±ÿ¾Æ ð3¹ïèܧÇÉrîÀ³ŸBî?š‚[p®ÁØ(q¿óÚUp¿áRmuEYIQ~nNfFzJR<㾿(÷-)ð ôtvji¢ûªà¾ºÏüëÄ¿8øÿ ÿ‡Ê/£öW2ìo–ÎòHîkëè÷Í ø­÷ÚØÚÚÙÙ“cggkkä[š›1¯@› -}%b«Ìfý• ¿˜‡)þïøÅIþç|äÏËüMTæËÊ)( PSר¡©µSG>}FäÓ'l¾7eþ…ðÈ‹±ñI)i™Ù¹ù…%eÕµ—Àü«8hþèØ8L;TÎÔ#œwXoaà—0ôôÉÌcêüLЧCçtɨœ[9ƒ0ëíWZ/ÕT–p³2Ò’âc"ÂÏøúx¹ú]hô ‚þï—ÑÿmŸE±¯­k`ÈcÿÐáãîž>¾þç‚Ã"£ã“R3²¸ùÀ~Í¥Æ`¿»opêãgêÑÂþ,S>oHîó±¿4¹Ïsrÿ.¼x¦|+ïMpx°¿·Ü¿ÜÒîWU”æçfgf¤¥$ÆÇ^ë¾5¸oJÐÓÝ©­ÉÒØ®¦ª¢¬¨Á?ç¾pðÕ‘þ%’_rö¥6nÚŒ­+¯¨Œ¹ÏBôÀ}#cS€ßÂÒÊÊÚz/9ÖÖVV–@¾©±ýÙcaè++ÊËnÛ"³yÓF©¥G_"ñEÿG~ò)óW0™¿V0óá“'櫨ªm×`iÒ뎥HóÏ2æ'¦¤±3³¹ù…ÅeU5—šZ.ƒùݽýƒÃ`þÍÛw'`ÖIèãn;KWš¿D¡/€>/sþújöFΓGS¸ÚÂf;<Ø×=‡~>7‹š|Îß×ÇÓýøáCüèkk‡\‰ýUË複ÿFIľ”!°¯OØ·±'ìs÷ôöõ ˆŽKLegró‹J û—¯vt÷ ÂÒK³?ó#n¼?tû0é³höçå>¹xHîÏ>†;ï“G'ñ.܆Ë0BÜïhoC÷ëjª*JÁ}nv&;-™rÿ¿ûG¾!î;:Ø¡ûf Ÿ¡>¸ò©}JŠòtðKo¢‚à_ÃÀÏ¿øùäŸÿ¢å$Rû« z û_nÙ*+¯òÍÅ®!Ào‚ò››[€ø&@¾á.}fÕQUQR‡ïÝ—ýuüDü/ôö "Å$Ÿ'>MþŸ„ÈÿɇÌ_ÃË|Ê|Ì|xpexrøâijïÔÕ30Ü _ôÍÑá˜rˆD¿´(Ÿ›ÉNMŒ‹Ž ô÷õöt?†è;ÚÛX!úúËèÿ_IØ_%†}s+{Çý®ÀþIOï3þçC#.Æ%¦°3s€ýŠêº†f`¿«w`ht è>n½@„ý¿3ì¿¥/s~Ylî¿crŸ×??aÁe îOMÞŸ€ÅwÜèëéB÷›ëÁýrp?›Í!îÇÌwÿ›«‹3å¾…™©‰è§«ƒîk¨«©‚ûàß6^ðo`‚õª•+©àÿû“_¤üï»gBNŠe5t¯þ¤2˜¼˜û´ûºú~cSú˜˜òákG›OB_nÛVüÔmú³äèKþïK ¾(ò?$’Ïd¾_æËÊAæ+«âS³´´ñ© aË1³@ó‰ùGÌ£ÌOes²¸yÅ¥å•`~cs+˜ßÕÓ70æßºsoâþä1ò×Z^èÿ‹ ýw‹ ý_xC%Î[}²×’µvúñC˜ò»·a§èíô›êª+J‹òr2Ù)‰q#BÏúŸñö< è»îGôÍM ú, u•£¿¬þoõ,œ}u –¶Ž¾¡‘)ÍþWß;ù­÷™ïÏ_ˆ¸›˜’ž™“WXB±ßv­«·hdlÙŸ|øèù zí}M}–2÷÷!÷_<ƒûð\ˆ©p#Àý±QÚý«WZÑýêJp¿ ›Åa§ -¹JÐ}Û½Vf{LŒvÓÕËÒØ®¦ -*`ðo‘¡á—ZOÿjQð€üó°dŸï]½ܰQz³Ì–m˜û”€šZÚ¿Êÿ_öë,(ª+ àxլ̘LÅèˆ×[dmšfßADDE}_DQ%‚¸7DA ÙwYDÄYÍL¦&5¾ÌTfj¾sîÒ·›ÛMãäI9/úاø¾ßý>Ÿo -þ1Aâs|=Â|øÒ¡ÝŠï–«B¨ÁEÙˆ`A_Ùß®H|YòIñÙÈ_€É‡Ì_Œ3_ƒ4e>|è4µ8’Ž©Ì·±Ãæoݶ}Ç.Âüp†ùGhó/ƒù7±ùe+ óÛž€ù0âý0ã𤟘œ"§ÌÿCŸè"oÈ)ôG‡IôaÂ[›j«+Ë"ô¯^:ŸŸ›s"+óPZJR|Ldh¿ï./ -}S#&úêsèGyöÕ)öµ0ûÆ ö}üƒB#bâSÒÒ3³²sró€ýkEÅwK–WŠjšZÛa)0ûCãh#ÞýLGöå.æç>½ïerÿíÔ›‰ñÑ‘á!؉þ¾Þž®Np¿¥©¡®FTI¸_ŒÜ¿|ñ|>›ûÁ÷]œû–BߘÇ5Ô×ÓÙ¬ÍAé Á¿FüþÅ(1ü ”¶ò³n‹˜ŠÙ_ª®±œÌ}ª|Iø¹FF<òqIòé× úË5Ô—Î}e~·’â«JG>&¾,ùùjèžË˜™. \VOßË3æ› „–`¾ƒ“bósrÏæƒù…`~ñÂ|QM]CS ˜¯ÙÞ¾~<à#0áð • ý÷’)Ÿ6æ3̹ô©G/Z˜ðá!1 ž³í­M µ"@¿änq _—›“•™ž–’äçƒÐwq´CècôµæÐÿ´ÎLìÿ™•}]̾…µ£Ë`ß/04":>19-ýpVö©Ü¼‚‹W®böË*DµõM-íϺa-ÄÀþfÿ¯ öÉ -¢"è·Ùçþ¿é܇@+ÁpjòÍÄØèÈk¼}½Ý]í ÷KîÝAG¸ï¿»ïáîîÛÛZ[Z˜›™šðŒ pþ¢àÿ~ -þeKˆÿ"eàg&¿ - ürä—Y<65?cc¹¿j Ü_¹šrŸCÀ¯§¯o```þÑ××#ÈçPæ¯^‰B_>nè†  Ë± Ï¦¾ÂŸÌ&þ¤Å—D>ƒü?É#2 Î|D>•ù?l >pºz†F<¾™¹ÐÒ™ïâæN™ŠÌß+c~eþ½’RÚüÖöŽÎ.nˆñ:"4Ðßî±з¶ô¹º›9€>z½aôÕôá:‡þG|³Jì«aö¿[¹z-°Ïö¹Æ¦’ýí;wû†DDÇ%&ïO?|ôø©3gÏû7nݹ_ZVQUSߨҫуÙ=2†Z­žüÜŸ}–Ü'–oé>äþä›ñ±Ñá׃â—/žCÁn´67ÖׂûåJ ÷¯‚ûÓÜ!Ý÷ñÞéå‰Üwv÷­,̦&ÆF\ü›¨à_K¹á_ð£üÓ’ŸU~¹ô+¤“úƒ2Ù'r±>å(÷WP L¿YGG—>::›Iò7æ¯ZCºÞ_Y(…¾ª|ô•ûՊħ#ŸIþRä-M¾LækÂáÓ¦oÀ5261˜[XYÛÚ;"ó=<½vzûìñ—gþ…Ë…WIó•Wˆªkë›Á|xÇöÂCv@<ø’fÌûŽ4·$kfúÿ•úúÄpÃl ÑîlG[Kc}MÕc@ÿÎ-@ÿ¹³gN?zøàþ䄸èð@¿Ý;)ô4úëÖ®†×›}ü‡¿èçsè¬G.ûŸÿ- !a9b°¯­«Ï5æ#öœ1û{C£âöí?˜qôøÉÓgÏ]¸üÓu`ÿÁ£ÇU5uÍmOžvõÀr¼öa5ÈÍø;ìÊ}yìxîÿÊÈ}ÔCã(ˆ_ ô¿xÞÓýìéÂýêª -ÊýëÓÜOÅîGE0ÜߺÅÜ·³±² -ÌøÆ<. -~P£(üþÅü_Ë…_qò+ýòý¤b_úCŽØ_¸¹ˆs>櫈&àçlÚ´I›<ð_E>q=|;t7µo-$ÐÿB}úw¨ø’ûË‹ü™ÈGwSWgÏÌ|}C.Ϙo&ZXÙ€ùή[¤Í‰Cæ§Éš6¿Š0¦úY7ŒuÿÀ«Á¡al4ŒÐÿõÿ }vôñlSEAïØAxÆ>ïézú¤­¹±®ºêñ£÷nß¼þÓe@ÿôÉãG3îß—°£ïì` èó¹úºÚúË¿UG·EsèG)öÁˆ%K)ö×ìó€}+[g·­ž;vï ŠMØ—z0ãȱ“§Ì?ìß¼}ïÁ£òÊ꺆æVX’ýáÑñ‰É©w?Ó»AåYCä^|xî“=ÄtòÍĬ¸ÿ²¿Üo“q¿ˆÅýdÂý° ?ßÝ»vlßî»89ØÙX[ -ÍÍÈà×eÿšÕ+IøÕ—)„Ÿ%ù•_YH%|ʰ?Ÿfå>ªa¦û~M--­äÿj"ò¥Ì‡}èÏN}ÖÄ—#>3ò‘O^ ™O}Ñ$™Ï3á›™ -­mìœÀü­Û¶æ…„EDaóS¥Í¿æI›ßæÃ öy_? 5¼aGá;É4ÿ2æHè³F›~ÈR=c=591>ŠbÐG)ÓÚÜP[ ïWýKçó<}òØ‘Œ©ûöÆF…ú;<·ºúVBŸG ¿~ýOòÌÌþWû$ûšmľ™bßÛ7 8,2voRêCGŽÈÉÍ?©ðZQñÝ’‡å•¢Ú†¦ÖöŽgݽ}ýâ¡aXÉ©·°4ûÿ|/DšûdÁvàõ Ü;E¹/Fî÷ötu‚û-M -ÜÏÄî'%ȸïáîîÛÛZ[Y¦ŒàçILÿ ð) ¿D~U¦ü*ìò+Á)ƒP…ì/¡Ü'‹Ë¿~}Öcñ™¯u"ô%èÏ—‹¾Ò?sšø*LñU™â3ÉÿRùÄ$—"1ŒÌ7˜[XYÛÚ;8¹¸¹ƒù;víöõ  ÌOJÆæ•6ÿ–Äüº†&Òü^d¾˜2Ï46O5®âû{…>>žiixÁŠ` »Ÿu´·6Õ׊*Ë–Ü-.ºVèçæœ8–yè@jÒÞØÈ°à_o}3>ÏP_G›£I¢¯A¡ÿýysèćýy -ÙßìòLûöN®îˆ}ÿ °È˜½I)i‡2³²sró -.ì—–Uˆjê›ZÚ;:)öG`G¦Þ¾ƒ!ØG¹OîÇ,ØŸæ¾lîSY„º¹?>6:üzP<ðò¬IWgv¿®F¾ûéØýøØèÈðÐ`pßÇ{§—'¸ïêìhogcÅ~=ÍÚüš¨,ÆFb$ð/”†ºüóÈ?ú™Žª0þ ô_”Õ}0Éÿý:ú|ć밚Ï@Ÿ6Bå3%Õ—>‹øóXÄg%_"ŸñƒÌò¥2_ ´´²±µwtvus÷ðô’˜Ÿ@˜Ÿ)kþmÒ|Q 6†¹ ¦ùÅË1z½Ž#ó!ô¡°ÓC_IóeÑÿ}r¤QÈÀ@Ã< qîéhki¬¯U”•ÞGè_¹X—›“•y(-%)>&2,Èß×Ûk›»«“½  o‚Ñß8úªsèÄGjIöUYØ_L°¿j b“Žž¡°oiƒØßæµËÇ?(4"&>1%-ýpVö©3Àþ•«7nݹ_Zö¸ª¦®òêèù‹—¯¡`M`Kþö ûïqî³mˆ2 Bgåþ{"ŒH÷ÿÇ~}U}åP×1‰ÎW£âª±&±Ð{ïÍ‚ -ˆ`CªTéU:ÒAPTÄ‚t)ÒD5JUAÚÎÄìN’Ýd3ÙÝ<ìïœóo÷Þÿ”Ììœ'x;wîï÷¹ßóž¸? -{B¹ÿ-vÿ1q¿–ÏýÔdì~DX(㾓ƒvßÊÒ|?¿©‰‘¾.ürü’8ø§¿Hò/â&?%ÿù…éç—USNì3ìsrŸu )7ý[¶âÀ¿›6²oòAèÐç Ï—úS]Nüyà³â/$â G>!™PåÿE|È|)i9y%&ó ŒŒMwï5ÛoniuÈæÈ1[;§“®îž”ùQ1Øüt®ùw°ùÕÄ|x·vÁÃõÛW=}ýƒ¨aFpÄСÿãOäùú ×|ºd¦‡>·dئCÿû÷0Í1ðvì‡Q~Þ ×–G k*ýÛ7Š®úY©Iñ±Qá¡~ޮζG)ô tµ5T•ä¤ý¯¶lÚèK¬^É‹>ù:¾Éÿ¯Tsç<¢ìÏça9°/ìoØ´å«ohöµtYöí\=¼|C¢bãS3²rò -®ߺ[Z^YS×ÐÔÒÖÑù”bÿíðÈèøŠ#!ög˜ûxK¨4‚5Á{º?>6 -«òöõ`_rÿ)¸ßFܯæu?1¸èïë î»8Cð?zØÚ -‚¿‰`ðËËÊH£àÇð3…, -ÿTÉÏ'ÿdô +$*û‹1ût¸ù!úéÿl€Ï@ˆUtècô‹AÞT·š|^ñ'‰|~ò±ù„|IiY9”ùêœÌ߻¥•5Ê|ÖüÀàÐ0b~r*1¿€2ÿ^iÙƒJb~‹°ù0ɸ`(óñ0ãi&Wfœ?&ôÿà }}eT0ÃhýgO;;ÚZšêª+ËKïÞ*¾VX—“•‘’èëåáêdÐ7ß·¡¯¥¡ª¤ èƒÐ_OÐ_ΠÿÉú³äLÆþ'„ý¥4ûk×cö·KJË*(©ªûF¦{ö™´>rÜÞÉÅÝË7 8,2&.1%=3;¯ ðb¿¬¢º®¾©¹íq'ìËËž¾TH(ЮPìæP‹Bçþï3Ë}²)dU(÷'ÀýwH”ûÏaaÀý>÷ss(÷ãb£#)÷Oy¸÷Qð„à7ã¿†šª²’¢¼œ¬Œ†Ÿ -þ)àŸJþ? ÊÏ¥ŸÏ~^Vç‹aç>ë>†Ég>è/_Ÿ5‡¾ô…ÕŸübBàÏç€?©ø“’Ïd>"_JZV4ó÷˜í?`qð 2ßÞÑÙÅÍã”·¯?1?6.!‘2ÿ¢óa†Ÿcó^ãÆxœÌñßþN&‡þ¿fú¿S¡Ï¢OO2šã¿NÀC½ ôõ¼„vnnª¯­®(+!èçfg¦§œ‹‰ ðõrwq²?~Äú  ojè«ô·ô×Òè/C¶a§´¬¼’Šº–Ž>þ£‹û)Ÿ€àÓ1qg“Ó2³só/_½~óNIYEUm}cs+tR7fðÍлÔHT"ýô侈û¿B¢éû÷ûŒûý½=/§pÿ|fí~øé ?/þ“Nv¶ÇŽ@ð[Bðïå¿šŠ²’‚¼œŒ4ÀO‚_~ ~l'†'ÿü´üâ£_€þI‰'¨>Í>|£è+¥s9'’äç¸7&ŸÜ|9úHL…¾€úÓ¸?øB‰O‰Ï¿„D>!ÿÏèâbÉß¶‘/ä+*£Ì×ÒÖe3ßÜÒêÍ‘c¶8óióO‡GFÓæŸÏÉå1ÿcþËž^dþÛa4ÃlèÿˆÇ˜;Çl¾hèã9fBÿýwèÍ:ònèÍ BÿywדöÖæÆ‡µUÊJîܼ~õr~nö¹´ä³qѧƒý}N¹»8Ú1èëëh©«(ÉËJïdÑ_µrÅú³óL‡ýÏ¡¬V®’Xð/…Ù×öMv›°qÿj eü+ȧ, -}1èÏŸÆu„¼_¼ø"‘Oß®Œ~ªÉ߱ȗ•SPTRQUÓ 2ß„É|k”ùØ|wO/¿€ bþÙ¤”´ŒLÖüÛwKîSæ7"ó;:Ÿv ˜?*`>õd¥‡˜™â¡O½Y)ôñƒutºe°¿^«Ýí-ÖT=¸ïö¢+—.^8.-)áLtDh¿§ÛIG»c‡Y0Ûmèkbô¥ô×ô?ŸCVždãæ­_û2òŠ*jš:z†4û'œÝ<½ý‚BãÎ$$¥fd]¸xéJ°_Z^YS×ÐÔÒ›ó ±?ðÖm ZÂ>Ê}†ý³ 3ƒÜgÜÿëþ(vr¿ûigŸû…—ò9îÇDE„…úûzŸòpsqv´GÁoÁoŽƒßÔØÈ@_WGKS]MUà—Cðï†~JQ€)“ü‚ò/bäG¿ ýüG@}šýOQ;£Ü§ÝGˆbùÁQö¬Æâsn»”„>Á Ï£þ”×þB -|añ—ñ ùÔmÅ“/‰È—WTRVUS×äÍüöŽÎ.t懆EDÅœ‰ç𵍸&2¿¼‚×üÁ7o‡„ÌÿcþLCÿ¿ì#ôÿù‚>_4½0¼¯úz_½€béhkij¨«©,/½{ £Ÿ“•‘š”èçíéæìp‚FßPOGSMEQ^Ðÿzëæ<è/šCvIØ_$Âþº/ûÛvHÉÈ)*«ihëïÚ»ßÂÊæ¨­ƒ³«‡—_`HXTl|bJFVN^Aáµâ[wKË+ªëꛚÛ?yúìÅËž>`èÝè,ÝJ(÷ak~ýàÜÙ÷fÖ†q ÜBî÷Må~Þ…ì¬sé©É‰÷©àw°CÁoMÿ.cC=]m- u5€_Á/Éÿ”Ï`é -äŸD~>ú§k? ¬(ûKH=SñŒáL¹g%C>e>}ôL÷&\ïEÀ+>7òW ß'øu‚gÉÚuˆüäK!ò””UÔÔ5´´uôô …2ß–d¾°ù©éç²²/äå_*dͯ¢ÍoÇæÃÜööÑæ1æ3Ñò³¨ù1ÀlèÿŠ«…ý÷ߡхɅ‡j_ÏËϺž»Ã²/’û˜J¬û¿±‹ƒ6‡¬åþ8¸?̸ÿBÀý1î'ÄÅFG†Ÿ -ð÷I🠂ßâÀ>³=»MMŒ õõt´55ÔU~~ø×ü"ÉÏ/ÿ§”üâéçÚÏ«.GYZ}šýÏÓ Í‚ -òcûñA¯üiB÷[üƒ>G}qì ]pÁ¤à/"àóŠ/ù@þzDþ&^òUÕ54µutõ ŒŒMéÌ·†Ì?Ž3ßÕÝÓËÇ/ (ätxdtl\Bb²Xó›ˆù]ÈüWÈ|¨•a0Ï-˜O&—Œ.,¿ ˜?£Ðgч¹ƒ±}3Øßû -Z¥ëI{ë£Æ‡µUÊJîܼ~õr~nvfzÊÙ¸˜È°àÿ±_ŸAU¥gÇ'Ù][2³q]\¥‰XÖ­Š  ôÞ{ï½JGéˆH•Þ{ï½)‚ë8 *ê¬;ÙÝd²L2î$ÎäyO¿çž«HÌä¼ßøtÞžçwÿoä™Ð O -}m 5e…“²2ÇÒè o¢¿áÏÚØÿc_ ±±/ì+(«jhë›YÚØ;¹zøø†„GÆÄ'&§^ÊÊÍökê›ZÛ»z†G'¦fæP7á쯶;L”û¿ ÷|I¸¿‚Ü Èý–¦†ºšªŠ²’¢‚¼ÜìÌKŒà ¢ƒßÁÎÆÚÒÜÌÄØÐ@OW[KC ü ?ÀÉ/.NÂäÇ]åŸýüô ´Ÿ}hg‰Ø'Ùg¹®"ùG]×| -}*õ·¼Ç%(ï¹À'ŸK|D>ú="Èò÷#òñ‘/ä+*«¨"òuôô LÌÌ-™™ïÀÎüìܼ‚¢’²Šªš:†ù£‚̆ÌÇÞ¨¿PæcÏTÔ+ÌÐ_“ùœ¡ÿšx§’ÏTbh_<[…‘ÅЇy]˜›™šèíjoAè—åçf]º˜œèïãáêdocifl «­¡Š¡/…Ð?ŒÐÃÐÿ|ý ~ÞÅ>¸³¿c_òàá#_ûÒ²ò -JªêZ4ûÞ~!áÑq‰ÉÓ3só‹J+ªë[Ú»zú‡Fǧ®Ì]]¼qkéîý‡–a‡`…ð ¢rŸJ¦÷Z®ÜÿÈ}Òý_q÷±ÜGî?àþ8î~WG›÷‰àĂ߂ßÑÞÖÆÊÒÜÔÄÈP_OG[SC]UEY‘~<ùHBòïƒäåM~LW†ü¼ÑÏG?Ÿý‚äe`KÆ>û„û8ü¸ýØÁÿ¢.õ)}fê¿•}æíx¼çŸN|Z|êBE>¿È—Däƒø‚È×ÄÉ765·°Â3ß e¾‘ùÜæ74µ´1ÍŸ…Y`þŸÉ‘ý•6ÿŸ<æ¯gn ôÉG*ú?ÿ  óºü^§K·n,^…Qêïéloi¬«®(-ÊËÉL¿˜œàçíáêhgmÐ×RWUR—•–:úí×G”ôE„÷`è#óßþÿÙ¥Íó¿=ogË}`_ØÛ'±ÿí÷RÒ'äO)©¨kéè™ZXÛ9º¸{ù‡ŠK8Ÿ’–™“WXR^UÛÐÜÖÙÓ78269=;¿x6éþCÈýÇOWŸÃÁQìã¹O-п֗ûl÷_Ý´&÷'‘û}=„ûµÕ•å¥Å…ù—s²2ÒSS’“âc£Áï Áïä`okmeanjldÀ ÿ1€ŸHþCQòKàÉ/*",Œ'?Ÿü¼ÑÏ¢Ÿe?þ‡ò–TŸ`Ÿv7–}°ÛÐæÓèêo]óÇYÞóO%>—ø{ö - câCäK È?HD>F¾ùjšZ:ºú@¾™…¥µ­d¾;#ó#£cã’’SRÓ3²r.ç—–“æwtõ`æSæß"̇§éc>óÿ†¿O_­×|ŽÐÿ} -}W˜Vxœ>ÆCÿöÍë‹ó³Ó“c#ƒ}ÝmÍ µUå%…y9i)çb£Î†øz¹» ôMôu´ÔU”NÉŸ–úG_G_ˆ@ÿ›èoèÃÌ}ö·mGH öw’ì‹“ì“>!wJQEM±oneëàìîå{:(ôlT칤”´ŒìËÅeUµõM­Ý}ÃcÓ3ó ×nܾsï°¿ò6  íƾÀܳ.÷_¿§ûׯÎîáî·67ÖÓîÓÁƒ -~/7WgG;kK 3 ~]-M 5üDòüÌäCÉÏ+ÿ.¦µÜôóÚOáÏ 0Ýmtìÿ–ƒ£–uvb÷øý „Ýø¼ '[{’{¦÷à3~v±ÅcF>N>ùÜ䛘™[ZÛØÙ;:»¸y@æûã™Ag>e~eum}c3f~ß2R€ùÏ™æc‘Âcþëu›Ïú}lV±Ð_…AÅÑ¿qmanfzbtx ·»£µ©¾¦²¬¸àrvFê…¤s±QgBƒNûz¹9;ØZ™›êëhª©(ž’;!}ŒD_œD'†>üC·oãCÿw›èo”Ãbÿ#œý-löwïÙ+"ŠØ?ôåWÀþq¹“ŠÊjšÚz†&ûnž>þA¡g"câ“.¤^ÊÊÍ/.«¬©ojiïꟺ2wjéîý‡–Wž<…€‚]"ò åþ«ÿ*÷ßðç>±Hä& rÿíþôäøØr¿»³s¿¦ª¢¬¤¨ /Ü'ƒ? þ`~_oOw7'G{;+Ks3cC6ür<ðãÉ’?–ü|òóE?›~û)üiýùÃ]:öéÀ&ágüô³ƒL}šýw~“âžá='øtâó‹‘¿"ÿù¼äËó¯Goeckïèäâêîéíãw:™ùÈüÌìܼ‚¢’²Š*ÌüÖöNdþИ?}evþêâõ·™O -™(|¡ÿ>•‚O+ù6%…ýŸaN!ôŸ=}¼²üèáý»K·nÀ‹ôÊÔøèPoW{Kc]MeiQ~nÖ¥Ô ‰ñ1‘gBý}Êý|°Ü'û (Âý¿2ÜN¹ÿÜ_Bî/ÌÏÎLON ÷û{‘û-M uÈ}<ø³2ÒSñàÅ‚?‚ßÏÇËÓÝÕÅÉÁÞ–‚_?$??3ùA~ .ù…(ù¹égÚOâOë¿õ-øn'Õ'Øg¸ÏC?þ7m>Ž>õÜüs³•õA’{Ú{.ðIñ…¸Ä— Ä'"Ÿ$"Ÿƒ|Ss +k[{'gWw/_ÿ€ ”ù‘xæ'§¤¦ã™™_S×ЄÌïîíóÇÀü™5›=K©A]Oè¿úúhH_þðâùêÓÇ(ôïß¹}óú"TÉäøÈ`Og[sc]uEiQ^NfúÅäĸèˆð@?oW'{K3c=m Ue…“²2Ç~÷ B?…þgú;ô?ÙDÃ~ö?ædÿ‹½Â¢âûöJÉÈÊ+(©jhéRì{û‡EDÇ%œOIÏÌÉ+,)¯ªmhnëèž™_¸vóö{€ý•'«ü¹ÿ÷õåþqÿ&rnfz -Ü÷»:ÚZš ø«+ËÁ}<øÓðàCÁàïëíåáæêìä`gkmeanJïð+)ð³“ä—dÉÏý¼ô³ì'ñ§ôgðÏ ðJ}’}†ûÌó)Ç7Éï½û[¤ö8÷<Þs‚O'>K|IŸ#ò1ò•¸È·sptvuóðòöõ? -™Å“ù`~qiyeu-˜ßÒÖÌ›ÀÌ_@æ/ݹ‡Ì_æ3ÿ/Âüµ†þO0 è=údeЇÇèk ó3ÓcÃ}Ý­Í µUå%…y9i)çâ¢Ï†øy»»8ÚY#ôuµ4T•äee¤Hô÷‰‹ -ïýb·Ð.~ô?ÞDÃ&û¿çe;Åþ.œ}1Äþá#ˆ}iYùSJ*êZºúF¦ÖvŽ.î^¾§ƒÃÎFÅžKJIËȾ\P\VYSßÔÚÑÕ;04:153wõ¬Öد¯ ¨²4€ãUû°3ê–c¹Š ÉÁ1ŠˆJh¢da (Š’sMÎI$‰‚€ä;G iÉAdPÁ¸U[;;û05ëÖ¬³µ{ν}›{ow3jáÓò=öù/çûõÿ€Ü_zö -®تUö±Üÿð©¹/×ýòÜÿÇZîC÷‡<.›I§ ôõtu¶·÷aðWU–£ÁŸ‹?TDXHp ¿ßmŸ›Þ×¼®Èß ÂoD€_’ü@~­5äG¢Ÿ@?Áa<þ²ú“†”Üxö òK~Ø*G}™G†Üï`Ú¯rOþÁÀ'$¾¬ø òuÑÈ?B ßÈ’o.ükÞ7|nûú‡„E€ÌO„™Ÿ)ÉüÒr$óë56·¶wtõô óÙž@8,921…˜¿ˆ˜ÿRŽù?“Ìÿðyæ“BÿzCWCÿ'x;áå|µ²ü|iqa*¾²|ñe"ojÈ·¢XÛJÈw»è‘Ë×? ($,<2:&.! f~>ókjëAæ·¶wvói &›Ë ˆÄm¾¤J÷sBÿ_ï±Ë ¯&¸™ïÞ¾~¹ò }ðâsYŒÁ¾îζ憺šû•e%Eù9™©Ô„بð_o¯Ëžî.Žö¶ scC}½ãGôµ4úûöîÞ¥´ƒ€þWèoÌï³Üìïܵ{ï¾ýªjöÐ78c|ÎÌ‚bcï育ï“@MÍÈÎ+¼SZÙojíèî 39|á0Ȫə¹'€ýç`½Þ¼û X®ååþoëû8÷ßËuÿtqÿ)âþäø˜,™Ïå°ôÁþÞž®Ž6üuWƒ?Z -51!.&*2<4$(Àß÷~g~Š•¥€$?~DþƒdùUQù¥ÑÑOÈþmŠT^ÕÏófE£è¯¥>úù_ÀLü€¼•mÄÀÇÀ_M|(¾*Yüƒˆøòaäò-qä»ò/]¹Š’ïŸHM™ŸËüê‡0ó[Ú:ºº{ûi ‡ËŒŠÇÆ'§ffç¡ùÏ›ÿ ÉüÏ -ýÿ*ýb¡ÿ÷Áµ·ÄxƒBô'ÁtXÈã0é½Ý­Mj««*Jïæeg¤&ÅÇD†øÞ¼~õ’D߯ÊÂìœñýÇ$è«¡èïèó7Ðßüüûhîcì«öµu¿=t䨉“gŒÎ™·²±»àìæqéêõ›·ýƒB#bâ“RÒ³r ŠK+ªªk5¶´wõöÓ˜lž`X$Ÿœž_XYs,Ü/ ûÄÜÿíSrÿ#Üÿe ÷—P÷§''ÆŽ <›I§ ôõ€àom–9 þü™é©ÉÔÄøØ˜¨ˆðÐà ?YøüÖþóæ~Ròãå×ÖÒÔÔPW‡òËÒ¯„ÑO²ÿ²ÍÎ8¡ñ¿àÈ—˜¯}Œ}Â٤÷Gæìod¼GÁW’Н®®¡©©¥_&òMLAäòmò!ùž ò¯^».%?,"*:6>1)95=#+'f~éjæ7ƒÌï™?Hg²8< Ðü Ôü§ˆù+_Æ|…¡ÿ«$ôQôá„OÐׯÀ…\Z\˜Ÿž‹†<6ƒÖßÓÕÞÒX_[}¯ünqAnVzJR\tDhÿm}7ç v6VçMÏ18yâØ‘Cßêjkj¨©ìß·A ý ô7?k³¿EʾÒî=û”UÔÔ5ö¿;~òÔi£³¦ç-­û®¿¿ríÆ-¿ÀЈè¸Ää´Ìœ‚â»å÷<¬olnëìéd°¸|WcShîƒ-{-“ûè~Áíú€Ïý/çþ[èþ2âþÂütô•h,—ÍbÐú{»Að·Hƒ¿qa~nNVFZjrRB|ltTDXhp ~7g§ ö~ -„&??&ÿ²ü’èWAä—ÐOÊ~‰ýþ2úK–(ý'âÈWh>Îý­äS±³e%k¹'x¾|(¾Š4ñ‰âÁÄÇÈG#ßÂ’bmckïÉwCÉ÷äß„äBò#£cã’’SÒ2²²sóaæ—Á̯™ß2¿³»·o€Æ`²¹¸W^R”Ÿ“™–œèwëÆµ+ß_tur°³¶15=;7¿ðô`þ24ÿ­"ó%è+0½Bÿ¯ ôß¼z¹ü>zLOßÀÐØÄÌ‚bkïè⎰’žWx§´¢ªºöQSK{Wo?Éæ †Dâ±ÉéÙùPX/V^]«ö7™Üÿurç>¾B÷Aa¡î/.<™›™šŽ <›I§ ôõvw¢Á__[óàþ½Š²Ò’₼œìÌôÔj¢ø¯^¾äéqÑÍÕÅÉñ‚ƒ>ùÉOˆ~u$úû!ý$û1üIúË›0øœ—¾úF:¯=Æ=Ñ{|è=L|uBâ¯%>ùv ò\\!ù—dɉKH¤¦¤¦gfåä—Ü-«Í|:“Åáñ…Ã#£â±ñÉ©™Ù¹'ˆù/ ùo>Åüõ ý÷äÐý±Bqa~vzbL,pÙ ZOW{Kã£ÚꪊÒ;…yÿc¿¾‚¢J³ŽWÍÖŒ£³U[cŒ( -*%""‚HÎ9Óä,H$çœS74MÎHΚîAÔQw¶¬Úrvvkj·¦ÖÝÚ‡ýîwCßneÔ§éóÜ}ŸîùÿMJˆ‹Ž  ô£x¸:ÙÛXš›Ü3ÐÓ½©u]íš’ÂÕ˲¥Ï=}ò„„8@_XèÈ!^ô¿ /ÒÝÇÙÿe?—ýÃBÂ"¢bâ’8ûròJ*jZÚ·ô Í,mì\=¼}‚Ãî?ˆMHJÍÈÎ+,)¯ª¥50ZÚ;{ú†G'¦fæ—™ ÷7žÂÜÿæþÛÏ‘û{qÿg^÷_÷·€ûëö*seiq~nfzrbltxüôzj]MUEyiqQA^NvfzZJR"8~Wg'~kK sSc#Cnòù!ü<ò_’•ôKãÑOÐí'²Ÿ°Ÿ¨?Êÿ÷;âÍ/ý÷;ή7àý'ĵçåž×{4ðñ‡ࣉ/ À—‘½Ä#>$‹|Cù¦æ–Ö6¶öNÛŸ˜”’šž™“WPX\ZVQÅÍüŽ®ž^$óAsLNÏÌÍ/.­0WÙœµ'›[Àü—¯¾Œù¼¡ÿß÷BGŸúO7Ö9,æòâÜÌøØèëéloa4Pk«ÊK -ó²3R=Œ}p?,8À×EßÌØP_ï–¶–†šŠ’¼޾¤„¸˜¨ˆ°Ða.úûQô¿FÐÿ†¾Àüßýð±çþ¾}¼ììGØ—:Aæ’œ¼¢Šª†¦¶Îm}CcS k;Gw/ÿ Ðˆ¨Ø‡RÒ³r ŠË*k¨õÍmÝ}‡FÆ'§ç°ÜßÂs.¶nŸ’û¿Å}ØYÀý€û µÖר¬Õ•åEüÓSã£Xðwu´µ63hTüe%Å…ùy9Y™é©þXü¾oO~G{;k+ s3Scü0ùüDò£òúå®ðG?/ý\ûùñ'ô'ñO\€]çàŽóñ>D`kÏÇ=×{>ðyˆ/¯@‰|(>ˆ|ùÆ ò-¬¬mìò]Ý<<½)¾~(ù‘ùÉ©éY9yù…Å%eå•Õµu´þÌŸ˜šž[X\^a²Øœõ' :žìà5ÿç/cþn¡ÿWPhèomÂÐ_Z˜›žzÜ×ÝÑÖÜXO­©,+.ÈÍJOyäïãåîâhgmajd¨[G[SCUEQ^î’Ì…óRgúÇ!úGôÿD ¿o7ôè ²ÜGÙ?*v °ê dÿÊUEeUuÍ:ºw[Ù:8»yRüCÂ#câ“Ó2sò‹J+ªëêéM­í]½ýƒÃcÓ³Hî³×@{rÿÍ®¹ÿe݇ÁºÿÔÖæÆú‡µÊ\Æ‚|l„þ¶–&½žVWS]Y^VRT˜Ÿ›“•‘žš¼-üî®.NŽv¶6Vää×»%?”_ÊD¿7ú!ýXõóÛÏ?®?äõ=ä#°ÝÚq>ê_‡ ë!ö˜ö|ÜóyO> ->–øˆøŠP|U\|$ò¡øDä[ÙØÚ98:¹lGþCŒüìÜü‚¢’Òòʪš:j=½±©¥µ½“ÈüñÉ©™Ùù…¥å•U¼y›Àü¨ùù»™ÿî“Ìç ý_yCÿ- ý_¿͇þüìÔÄØð`oW{kVW]QZ”Ÿ“™–œèGñtsv°µ271º{GW熦ºª²âÕ+(ú§NH?&vTD Cô¿ /lÈìõ>ûhîö… û'N9{Nú"`_Aùšúõ7uõ [ÚØ;¹zxû‡EFÇ%$¥fdç–”WÕÒ-m=}C£ãS3s ËL®Í­ç/^¾þó_vÈý“Vno Çïþ»í܇{ƒÿ \=ÄýgÀý'ë6‹¹²´¸0Ç þ~,ø›ꩵ5U•å¥%Eù¹Ù¼ðG„…øûúx{y¸»¹8;9Àä·Éo’È&?*?Œ~ ?ˆ~y,úyè—Âè'Ûσ?IÌô7àóþl!Üz²ödîÉÞ£àKñƒ$>_ ŠÀ'Ä‘ˆÏÈ„ù.nî^Þ>¾þAÁ¡a÷£òÓ¸äWTÕÔRi ŒæV"ó‡GÇ`æÏ/.­0WÙœµ'ÀügÏ¡ùxæïÕü=†>¹;þõO4ôÿŽ~kb¡ÿ } ý™©ñÑ¡¾žÎ¶Fµ¶ª¼¤0/;#5)!öÁý°à_oW'{K3“{zº7µ®«]SV¸zEö¢ô¹³} ýƒý?~'@_0»Ìî쇲°/|Tô˜¸Ä‰“§öe/Ë)(©¨ihißÒÓ746³´±stq÷òñ -»ÿ öᣔô¬Ü‚â²Êj}cs[Gwïã¡‘±ÉéÙ…¥•U6XÀ§ ¹vÈý_?)÷wwlÞ/˜û?î#ÁÜßz -Ü_c³VW–—ægg¦@ð!Áß3ƒÞ@£ÖVWU”—c𧽿ŸÅËÓÃÍÕ™›üf ùùïàòãш~”~YŒ~i”~²ý|ø“ôGýG~xîy„v˜ü{¸f=Y{^îIÞ£àKcàË¢à‰ O|\ü;P|c3nä;#‘ïEÙžüÌìܼ‚¢b„üêÚ:ZÑÔÒ†d~æ3YlP›[À|˜ù˜ùoá‹·ƒùäêØ«ùÿã}ù¶ ý70ô_€Ð²Æ^]YšŸž|ÜÛÝÑÚÜX_WSYV\›•žòèalTDh¿—»‹£µ…™±¡¾Þ-m- 5%¹ËýÓ'OHˆ=*,täŽþû¿ /˜ggö¿ÝàÎþ¡ÃBÂ"¢bâ’ûç/öåUT54µunëß52µ°¶spvó¤ø…FDÅÄ'&§eæä•VT×ÑèM-í]=ýƒÃ£S3ó‹0÷Á>ÿáC¹ÿþÅÛ}íöàþ?Þwìàþõ5{ þyžàïéêlomibÐëiuüeüy$øãb¢£"#ÂCC‚ýý|)ÞžDòÛZ#ò›’äçF¿:ý€~‚~Xý¤ìöóàÏÕçúìïÀoîƒD°G‹bÖãØÚóp{ŸTø|øÊhâ«sŸ$¾)"¾µ-ù®îžÞ_?ÿÀ ÐðˆÈ¨è˜¸øù…Å¥e•ùõôƦ–ÖöŽ®žÞþǃC#£ã ógÌ_f®²8kàu{ºõ f>×üŸ0ó¯Ýç6ÿáÿ†þÆ:‡Å\^œŸ™šèïéjoi¢Ój«+J‹òs2Ó’ãc"ÃCý(žnζV¦Fwõoëhkj¨ª(ÊË]–¹p^ - /)!.&*",tX€¾`>vv`ÿ~ö@öKž6ÿ9eþßá{õÌß)ôÿµ›ÐßX_YZ˜›™êïéêhmn¨¯­*/)ÌËÎHKŠg³"ÂC®\õõºäyËI;kKs#Ýã} 5UeE„þú}h¾}ñì01Ý߇Üÿ Ê}À¾fÿwŸAö%¥eää•UûšÚ€}}C3 kÛ'Ýθ{\ôò쇄G°ØñI©œ¬Ü‚â²ÊšÛ M-íÝ}ƒÃc“Ósó‹+kTî?ÊýW¯ÑO‘û¿¢û? ÷™ÁÿgüOAð?BÁ¿ƒia~nvzjb|tdh°ÃßÚÒ,nvV'-59)!>ŽÃ"ÉŒ“ÿŠŸhùIô3é7240Ð×#ÙOu?¦þ„ä?ZhÐK€Z{êr "E=´ž‰=ÖžÁ=å= -|=}C#&ø$ñE‹ïÄ¿æt=˜D>+†Ÿ”œšÆÉÈÊÎÍ+"¿£³ “?:>15=‹3‘ùOÁ=æó2_”ùük>ú?Ó¡ÿú 1ÀEã…þÚòâüìôÄØð`_wg{ ýšÊ²â‚Ü,Njb\LÔ­°à ÿ+>^=ÜO»9;ž°µ¶031Ô×=~D[ó †šŠ’¢¼œŒ´$D˜O¡Ï ý}LóÅ苇Œ0û(÷?ù„°r³/+¯¨¤¢¦~PSûÈ1}CcS +[{G'×Óîç/\ö¹âv+*&.1%=3'¿¨´¢º®¾ñNÛݮޡщ©YîÂò*ûßîûø2sÿí®ÙßÁ}ô -éöBñõš¸ƒŸrÿ3¾à_‡Á¿À›™žœèïíéêìàÁ_]YàÏÏÍÉÊ䤧¦$%&ÄÅÆäÉå÷%ò{zÐòSÑè·ô[úMMŒQö ØOðç×òOù7^d 07Á®‡þ"9 ªŒ~@c/¤=á^Ð{øÆ&¦| ¾ŸJ|Z|O"¾/? D~(‰üùI)©éœÌ¬ùuLò{û††GÇ&&§gæ¸ó‹K+ŒÌ3ÿ[*ó¿#™o¼jè® šÿ†Ü·÷ ú¾‘Ì — Dj ¡Ðÿ#ú«K Ü™©ñÑ¡Þ®Ž¶; ô+J‹òs2Ó“b£#o†Þ¼æçsùÂù³§]ím­,L õtŽAôÕUU”äee¤ ú8ôýÿµ4âù?&û ±rÿ³ßþÅI)À¾‚’²*`_ëð1=#Ss+{'—SgÏ{^òö»x#ôfdtlBrZFv^aI9ÌýæÖŽÎžþÁFî?üZ8÷‰ûÿeî¿—ûð5¾$îcø¡û$ø¿¦‚?wöð—Aø³33ÒÓRø’?,ÈÀl~OþèGôÛ‘êÙo†²Ÿi?Á•?CÈ?ñ-¼ð Ö5J¿0|& ÓôPzÊz€=C{T÷˜{~ïAàð-IáÛ!ðùß“Ùø@ü0¾ÈOIKÏ€äç—–UTV ß70ÈŸœš™åÎ/,-¯®­of>2ÿ»çÄü—üæÿŒƒwÕÞ×ü½…þ3:ôWçç¦'ÇFûz:Û[›nÃÐ/ÌËæ¤&ųYá!×®úz_òÇèÿVýÅè‹g‡Ù™ýO%öï§ÙÿRRJZVNAQYUMãÖá£Çu ŒLÌ,­íNœtq;sÎ㢗ïÕ€ë!á,v|R*'+·åþWM-mw»{†y¹¿bl‡Üÿ/÷©Ç¸§—øN÷‚îƒ _$~’"‚ÿ þÍ{ëk+þ¹Ù™©Éñ±‘áÁ>aøËKKŠ -óór²³28i$ùÙѬ¨ (C~_ù™ôÃê§³Ÿi??¥?jÈ?ñ-¸ð ¶Ùï1Ô÷Ô)ç±ôzÚzŒ=¥=Ž€÷8ðéÂ'à ˆïË?ˆÅŠf“ÈOãddeçäå•ìDþ$zvn~aqyeuýÞÆý­í‡ ó¿A™ÿ'fæã°WŒ2ÿ§nþ[¦ù$ô_cô_ˆýåîìÔÄèð@o÷ݶ–¦¯êªIè§$ÆÅDÝ - ò¿âëuÑÃýŒ›óÉvÖ–f&FúºÇ!újªÊŠ}i)É/iô÷ï—øTŒ¾xv9»eÿ€”´Œœ¼¢² -`_SûÈq]}Cc3 kێή§Ý=.\ö¹âv+Š‘ûUµõwZ;ºzú‡FÆ'gææ—@îßß~GîÿH* ¾ÇS¹ÿv÷qwîÿ“r¦ ~žû øÿƒÿуí­Í{ë«+Ë‹þé© ð××ÕVWAø‹ òrs²xÉÍŠ¤å"ò E?¢ß ÒOg?e?Ä߈àOôGíOóO/¸ð [€ìÆ2ØixŸ#_ħ µ0õÐz{ÔöD{̽äžç= |¾_(ñ‰øA´ø‘¬è˜X¾ÈÏ+(,.)-¯¨ª®­«"t|’Ï]X\ZY]»·±¹µýÜ*þÌÇæÿõº]àz½‚]!Ò|ù{5ÿ ¼b}üòGF胻õÑ¡?>2ØßÓÕÑÚÜX_[U^B?#-9!6:òfèÀk~>—/œw?íêìhokeafl¨¯{숶æA 5%Ey9i©bôųÇÉ>t°/Ùîö%¥edå•TTÕöé蛚[ÙØ;8¹ž:{Þó’·ßµÀ¡ŒÜ/.«¬¹ÝÐÔÒÞÙÝ78<61=Ë]¹¿ rÿ±@î¿Àì¿‘ûoÞ/Âvë>Ž1ø2QðÏ? -þÇ>ؾà_[]YZ\àbøGùà¿ÓÔᯩª,/+-.* ÉŸžš’œägóËÈ'¿@õƒìwÄöÛòºãolLô'íù‡þ“€6\ÔÀk@“± vÞçðµð)z(=¤—=Àž´=Öä=âž×÷¶Ø{¾³@áó‰È/>ˆŸ˜œ’šN"¿ ¨¸´¬¼²ª’ߨtG˜üŠüõÍû[@æ?Ê|t±þö›ÿý—ü æ  ÿ†úÐ|:ôÑÅzÎ }€>3ôûºï¶ƒÐ¿]SYV\›ÅIMŠg³"ÂC®\õó¾äyîì)'{+sSc=„¾ºªŠ’‚¼¬Œ´$@™Ñ—€èCóÅè‹gWóÓý}|¹ÙǹØ—ì+()«ªkÒ:|TGÏÀÈÄÜÒÆÎᤋۙs½|¯ Ü‰KLIÏÌÉ/*­¨®¹ßÖÑÕÛ?4 -sAdî/"÷‰ûŒÜÿPî“§I»’Œü ËPð?ýÿÃí-ÿúÚêòÒâkÞÙQé½h " ÒA"Ò«iö†ÅBGiREiÒ;ÒEШ» ‰®5jv7[6®ÑlL&«Y³™ì&3ûÿŸsžvïelÌ$;sÏÛû<¼zÎç÷%=-äOæåO¤òËF?¥³ße?ßý|øü1ý‰þ”ê?.7l؈Æ`¼#_6ñ©ø‰¼øÉ ~JZzFùEù‡**«jŽÔ!ù­mräž=÷!È¿äCEò¥™O¾*ø¬hOPó˜`ó¹ÐgIñ/Iè?a¡…þõkW ôÏþá4„þ`_OW{k„~EyiQAî¾Ì´½»vlÛœ¸nõŠ„¸¥‘á¡Aþ¾Þžî®.Nö¶óçY˜›Ížejbd ¯«­¥©è³Ð§è‹Cÿ±ùJô•GÑy û$÷ýiÓÕÔ5´´uõ ûVÖ6öŽÎ® =ùø†„GDÇ&`îoÚš”¼'5#;'¿°ä æ~cK[g·lî߄ܿÍrÿ©2z?I‘û2¹?1îK‚®'ÜO¸ xCI—}) ~¨3~è3„ÿâŸ.|$ _O÷Q„¿¥©±¾®¶¦ºª‚%aA~^Îþ}Y™驼üÛˆüÒOªŸÏ~Î~/OþLlÊ?ó@غtæ -c øpÏÐW,èûVz”©ç¬ìIÛSíEÜ{xzqÞóO -_!øˆøÛxñSÓ32³öíÏÉË/(d‘_QU]S[WßØÔ‚äíîé“?vîÀüK@þÇH>d¾„üG4󿦙ÿfþs>óÉw%gþ/oa¾lè“–Pú—!ôÏþñÌ©ÃÇzv¶57Öaè—æçdg¤îINÚºiÃÚUËãc£#ÂBý|y.tuv´³±¶¢èèúêjÓ§1ôßU¢¯‚_€Ÿ?Àá¿Dáãà:6Øß׋𷷶476Ô× -É_\x  ?W,ÿ."?F¿T~Ž~Ìþ0Ì~f?t¿Ïboþˆ?¯?áŸúO'€l²Ü°c)=¢_¸‡‰ò„ytÞÿ*G=µž`ÏiO¹'yï½Ø‡ö=z†Ï/Ÿˆ¿K,~n~ÁÂb!òkë›[ZÛ‘üÞ¾þÁcCÃbòÏù—üë7ù˜ù@¾ùhþÓ§\æ?£™ÿ‚Ïü76_„¾œù4ôÉ÷$ -ýÏ1ôoɆþq ýýÚjúyû³ÒSvïܾeãú5+—ÅÅD- ð]ìåá¶ÀÉÁÎfžåÜ9ï¿7ÓÄØP_OG[SC}†€¾ªªÊd ú“ÄèÿÚ²(Ïoø¼ûS¦"ûjšZ:ºú†Fûómœ\Üܽ¼}ýƒBÃ#—Æ%¬X½.qó¶»ö¦eîËÅÜ?\ur¿½³»o`è%¹ÏÜÇ2{!rÿ rÿ•Ý'÷Tüe‚ŸÀῠ🗅áïêhokm%yYiIÈŸÇÉŸFä‡è§òK£ŸV¿ýÔþÀþ|ù3ý ÿœÿlpppè -аáÇ`œÃ=C_±%¯ÛSè™ô@=g=ÁžÓžÕ=áÞ? z/>-|¹Äñ!ñ‰øiœøy ~QIiY¹(ò›[ÛÚ;ºÆ'ÿ -’“#_Èü/e2Ÿ|Lo¾€>oþ òß#gþWOà3úBýëפ¡ßÝÙÖ¡_uø ýÌ´½»vlÛœ¸nõŠ„Ø¥‘á!Aþ¾Þžî®.Nö¶óçYš›!úFúº:ZšjˆþÔ)}%úÊó†G!ûÔ}dŸæ>°¯®©¥­«g`db:k¶™¹…•µ­½£³ëBÏE>~!aѱñËW­Ý°ikRòžTšûe‡*!÷›[;ŽÊæþ Èý[ŸÝ½÷às¸°x]ûÿ$uU&÷'Ä} -?^T -ÿó—?…ÿ“›Šà?92|àïïíéîêìhã“¿º²âpùÁ²Òb©üýDþ$9úIöÇÅ’ìûY÷‡1ü©þÞÞ<ÿœÿt¸ À #@g€-=vÒ#ü`Ï%¯91ç)ôŒzö`=‡=Õžç>(8„õ=xOÁïåÀO"âCâKÅ/.-;X~¸¢²šü¶ŽÎ®îžÞþÁcLJGNÊ’ÉÿD–|’ù_±Ìÿ–eþsF>gþOl>ý–Ð| ýï(úø ý]ú_½Œ¡?FC¿Ÿ„~„þ¡²â4ô““¶nÚ°vÕòø˜èˆ°@?ŸEž ]ím¬­,ÌÍfÏ2562ÐÓÕÖÒPôiè3ô©ùJô•çµ,û¢ÜGöIîûÓ¦«©khjëè›ÎÂÜ·²¶±sp^àæáµØ7 8tITLܲ•kÖoܲ}'Íý‚¢ÒrÈýz>÷Ož:3Êrÿ:äþ§·ïܽÿào_Àåþ3r[˜x÷ÿ#¸ÿ*Á/ÿþ³ÿ€ÿÄðñ¡cý}=Bò7ÔÕ©®ª¬8$•?;+“È¿Gý¢ìGû¡û!üÃþ¨¯?Æ?ðOü§€ À&€Ž®€ [n ä÷£3{xcǨQÖ3ì9íP{R÷4ï¡ï9ïYà+?3+[*þ¡ŠÊªê#µu Bä÷ôõ:>|È?䟕!2Ÿ‘Ïgþc.ó¿QùÿeþD™/„>ÖÃ3ÙÐpÿîÛŸ’пrIúíúG0ô‹ -r÷ÑÐß²qýš•Ëâ–F- ð]ìåá¶ÀÉÁÎfžåÜ9ú¦Æ†z:Úš€>„>Aÿ÷ïŠÐ§æ¿#6_‰¾ò¼ìüNì¾”ýÉ*ªªû3Ôûú†Æ&3‘}Ëyómœ\ÜÜ=½}ýƒBÂ#—Æ&¬X½.q3ÉýŒìœüBÌýÈý6iî_÷årÿ_ÓN#•öBä¾ø²¾æ]¥—õgY÷”¸Ïÿ7\ðsðß¿ÇàÿËŸ üW üþ1€ÿ4À?2<ÉßG“¿’¿©¡^Nþü¼\"Æ8ôÓìGû±ûãÀ~þ€?êÊéÏøçü§ €€€#@g€ =®Šÿ«}š¼èAœGè©ô@½`=bOµGîÃEÜÇÄÆaߣ÷4ðÇ?ƒˆŸ›—/'~}CD~;ü>ˆü¡á ÿ4?†ä_’™ç.ŸùøÌGòùÌçÍÿQÖüŸßÄü_Æ1ÿùQ0ÿ1|9ðáÜ»óÙ­¿ -¡?Ê…þÑŽÖfýJú9Ù©{Hè¯[½"!6:2<$ÈßÇÛÓÝÕÅÉÞv>CßÄÈP_WGKSBŸG_UUe²}åy«#›û -ØŸ2•°¯®©¥£«o`d2sÖl3s +k[{Gg×…ž‹|üƒÃ"¢câ—¯ZKrwJzÍý -Èý¦–ö.Iî_ºrMœûñîr¹îOÜç3íMr_Þ}veâÝ/øŸ`ðsðßø1ø%ðŸGøG~HþHþAHþ^HþNHþ–æF”¿†—¿¤¸ˆÈŸÃÓò‹é§Ùöc÷CøÇ“ð'åAõñþs L€7]œ¶ÜÈîGOú,yÍ›:O¡GêI×ë9ì©ö‘Q"î!ï±ïÑ{øbðQ|ü"~Qq /~ Šßâ·µwBä÷BäBäœøà?ŠäŸ—'Ÿd>%3ÿ Ëüoå2_Æüÿ¾ùúôû¡æO¾Š>~6åCLúõúå¥$ôÓSvïÜŽ¡¿jy|LTDXp ŸÏ"…®ÎŽö6ÖVæf³g™šèëjkiª#úh¾Bô'‰Ñÿµ5Qžÿ“3û辊 -²ÏrØ×øûu\Uyp|°ã Ì´Jro–›{³} Ù÷}!; «Š²¨¬6ˆ²VhVé¨È°T[*KÙµˆfß0@§LAÐÚ©NŸå¼ï9÷æÜ !Ngîó19ùö>¿ç7wO“Ùâãì?iJ@`phDTl|RJzfvn~QÉœù˜ûKW¼¼šsÿ ÌýJî±Íý†¦–ÖöŽ®nˆ6Ê}vr 7WÍýAt_ÿ·ö‚Ÿ¢ á¿&à§àð_þüÁ¾à‡ä¯–É’¿ ’äߣʿý-–› _D¿¦ú9ûE÷CøÏ£ð§ò§ôçöWø'ÿé¨'o_<| hûŽøU© OIÏУôD½b=cÏÚÍ,Öpy/úž_Sø"ñøÛXü·¶«âïAñÿ¼¯ "ÿ Œüjˆ| ¿æ<‘éóËzäcæ÷ÞÀ7c7óE3 ØüõÌ¡O/ß ý^ -ýŽþCÿ] ým[(ô_^±ô…EúsJŠòs³3ÓS’âc£"Bƒ¦PèûûùXÌ&@ßàê"CÐwrRÌw ï˜Ç]öŸ”ìSî#û¿áj0º{˜¼,>¾#G=5vüÄÉS§…†GÆÄ%&§eLÏÉ+,ž ¹¿pÉKË)÷7m¦ÜG“ûUÕ'O©¹_ߨܹß[Ü‹;ÌÑFɦ,ï ¸ÿƒ¾û6Áÿµ~Øa„¿׸ÇüŸ]$ø!ùO©É“ÿÃûµòï`ù•èߦ~²ŸèרÝÏáø[ë¯ðOþÓà À'€^ºé| ä¤JוQ¾I§?`åÉy€¤Ô+Ö#öRû9sç î!ïeß³÷ >z¯Müm"ñIüZñ÷ƒøùG0òQäŸ: ‘äcäëO™ÿU/>ì‘ù_ÛÏ|ù? ŽùÈü{lþmê„^x,]ím-ÍõµvCÿú›ÖSè¿´dáý⼜éiɉq1‘á¡AÓ¦N&ôGúz[¼LîFƒë‰þ0 úl¾}Ç p†hÝÿ™šûÀþP'gg û.£›‡§—ÙÛw$äþ¸ ûA!a‘ѱ I©éY3r fBî?ûübÊýW×Qîÿ^“û‡)÷OËܯkhj†ÜïìîÁx“¹î£¸ÿÝ ¹/áÿ^Ù_ýàgøoIø»­à¯¯“ðcò#ü˜ü'(ù+0ùAþ2kùõ£Ã‘ý¥œýhÿR°_ *©?ó¯øO€/Ÿ¼xè Ð!àÉÒñ[ú‘Gåyz^PÏÖ3öR{ª{%ïÁû¥è=~©ü ôßZü2ÿð‘ -Šüù@>F¾ ¿®¾/ùðRn⿆ýd¾ùÿ\óïãƒáLÀп‰ÿötwv´µ676À¡Ð¯9«úoP迺šBÿùgçÏ)™Y;#+=5)!6:2,BÒ„qcFûûùz›½<=ÜŒ®.ˆþ/~Nè;;; í‹þúŽÀ<œ}vØw5¸¹{šÌ?ÿÑ”ûÁ¡Q1ñ‰)i™Ù9ùEųç=óæþªRÊý­¿•¹¿Oæþ™sJî×Ö76µ´µwvuÃ:cî+îÃósîÿS²ÿˆîÿ¨ë¾ýà'øoÃ.cÁá:ü]~‘ü*ü”ü§9ùAþrù÷"ýRþ7µôÛd¿ì~*­þ’ò\>xðà ;À§@œáºþ(þ @0¯@ÒõŠõŒ½µöÌ=ä½ì{›Àׂÿ¦Áßk#~9‰‘Ïâ_ä‹È$òµ™oýbÃ|FŸŸ‹jþ]Åü[71º»:Ú[[š ôÁ|ýóç ô÷ ýÍú«–cè?3ovqa~NvfZJb|LTDhp`‡¾¿ŸÅlòtw3úJèë¡ÿ„}Ç<ÆhÙBeÝwröeîûFw“—ÅÇwä(bê´ ðÈ踄äÔŒé3ò -fΚ‹¹ÿâ2Êý¯÷Íýcûgk0÷Áýº†ÆæÖ6Ìýk¸Ñ·þFë|ç.î2¬òÅ}ÝÜ÷•àðßé~%ù~MòŸÉOòWù”íWåßÙ—~›ìGûWƒýŒ?—¿ÔŸùWü§€O€rðÐàK@S¨3âwüe1+̃ó=K¯PÖ3öR{®{æ¼_ÞÛ~_ðwªâï/; įâSäkÄ¿"ÈñmÈÇim„þ+$òíf¾µùø^´æ‹Ð‡wB¯D˜£žG— ý+—Áü úÕÇŽ–Cèï·ýuú/.†ÐŸ;kfAÞŒ¬ŒÔ䄸èÈð iS'Oèôõ¶x™<ÜW }B8 ï䤘¯‡þÿZÇüŽ.ûOJö‡IöG¸Œnž^fo_Èý1ã&LšŸ”’ž™›_T‚¹¿èÌý5kEî¿­äþG‡ŽTVÇÜ?îqµ¶¾¡©¥µ½û:¬µÈý;°Ð°Ï÷Ï}ø¿ï'øa§a©a«µðwümvà¯ÑÈ´R+ÿ>»ô‹ìWíü×0þPþ«V®PôWùWü§€O€8tèð-°7üÁlúx.+̃óRz ^µž±W´_±rÔ=s}¿Võ^¾]ð÷iů<ª¿ÆùmD~·ùËü (ó­A}(Væß#ó }|×{ºá]´675Ôaèö׿`èŸ8^Uaú[)ôK)ôŸƒÐ/)ÊÏÍÎLOIŠŠƒÐŸ2i¸1£ýý|½Í^žnFƒ‹Šþ0 úl¾}Ç<öز/rØêäìŒì£ûȾ«ÑÍÝÓd¶øøù‹Ü ЉKLN˘ž“WXå~ùÑcÕ'!÷/|zñæ~}csK[;¬7,7n6»÷¿í~Ÿà×Âÿ»ð·Køû“¿ -é×—_¥_d¿´ð_ÏøCù¿²º”ÒÛÅòe -ÿèÿqàð À#@g€r æ+AŒüÙ|þ†>Ç¿[ œèAz¢^µž±Gí!îKW¿Âuܯî¥÷"ðUðõÅGð«ú_’ßþÉÿI™?æßÇçAÿ *¡æ_ƒ7ÑÞÖÒÔX_«†þÉêc•å‡?¶ ýúË0ôŸ†Ð/Ì›1=#-91.&2<4C<†¾ŸÅlòtw3¸ºŒPÌô†:ÐwÌ`Ï­û¶ìCî—¹ïâj0º{˜¼,Þ¾#G=E¹?-($,2:6!)5=+;· ¨dÎ|Ìý¥2÷ù¿[ÉýŠªã'>‘¹ÿe]Ccsk[G'l8ì·ê>l6§œ²Ôwßj¡åJ[?ïõCàïAø;~›ä·#¿nôËêçìWíß²ùu ÂÝÚ×(ý•öWøÇü‡ .Ÿ:xèð)àY`5òÇüý)OÎô$=Pom=bÚCÜ¿¶v×=pÿúæ-ª÷ø²ðí&¾Žø6‘Ïäw ù= -ù7ù·­ÉXæ’ùßiÌ¿+Í¿Ñ žC[KscCÝ—W8ôÏžþäÄñ£G~T¶ïƒ?îÞ¹ãíí"ô×Pè/‚ПSRT›•žš”4BÐ÷õ¶x™<ÜW5ô‡Sè[¡oe¾}Ç t†Øæ>±Ïî#ûÃ$û#\ F7O/³7äþhb? 084"*&>1%-szN~añlÈý…V¹ÿ;‘ûû?üøPy%äþ©3œû_\­­ohjimï€=¿ŽKŽì³û÷ÈýªûV%7÷õƒŸáÀðÓü×þN„_$­Uò?D~I?eÿŽw9û¥ý€ÿV‰¿ÔŸÚŸù/U€¸pðÀ 3€w€OÏb›‘¿ ÏðPyf¡'ézõ”öØö÷7ýZp¿¸—Þsàø»vKð"¾Uä׊ÈGò;‘ükzäß!ò•Ìä?~æ÷kþ·ü,ðMù'ó¿‚§¡µ¹©¡¾ö*˜ñÓóçΜ:Y]UY~BÿOïïÙõÞ;ÚÐ_‰¡¿B¿¸0/‡B?>& -B?0` -„þ˜Ñþ~>Þf/O7#„¾D¡Ïæ;ÐwÌ ûjî;;ûè>°ïjps÷4™->~ûcÇOœ<r?<2:.!95#kFnÁL½ÜßN¹ÿÁ¾²ÿ°_çAQßgÇÇô¯"©ù£Ê)È!jÒ4MšÛûÊÕ$¤mÚ¦­mšÔ;jµ‰­©&QåPîSîû^D…öbw9TiI;íh2éó<ßï÷wì.xÉ´³Ï¿»û×ßë󦸴¢ªrÿdËé¶p¿»Wo0™-ýð²Ã«>*åþUµû·§Ñý‰‚ŸÃÝ1ü£—GF~h¼–ü&žü -ùÛl䟀~ÊþÊ~a?àÅð‡òçú#ÿ{ÿŸò €#@3€;@KÀn»Ý‰Oè{â/væz’ž¨çÖKØKÚ³º{á=~ -þàۈߦŸG¾‰E>É¿ƒIɧ¿ ™?æ3ô¥ ó¯“ù,ôÁü‘á‹À|KŸÉ ëíî:öLÛi ýºšªr -ýLúaRèo•Bÿ'<ôWbè?ý ¡à·BßÓÐçæú..6¡¯Fÿ›VÃyÿãgËþ·”ìÙ—rßÍÝËr?0HÎýe+V­¥ÜÛ>÷÷³ÜOHNËÈÎÉ/,)«¨®Õ@îŸjmï8שíéÕMfk?¼òðÂÃÛ.Ü¿îÃ[~SrÿÎÜŸ$ø•ðßTÂU ?4Þ?&ÿ &¿…%?Éß­u$¿2úý`?ÐOÙ/ÙÝÏßÊ?2"õ§öü‡ð €#@3€;@KÀî/v'>¡ïíÄ_üM0Ð é‘z²ža±GíÃ#"YÝ3îEß“÷ø~~_™øŽÄ§È×Xä#ùƒƒùŒü+ðGÀÉÿ#ŸÌ¿'ò§ÇüÛÜü›øÇ@ Ìü±+`þ¥ Cý³É¨ïí†ÐïhÇÐoÐÔVW”•bè§&'ÄÇFG@èïµ ýŸÿô­¿þ†þ - -ý'ŸxB?(‡¾»›ú®úNô7s7K龂}tÙ§ÜgìÏsó Ü÷X¸h‰Èý¥ËW®á¹ÿåþF‘ûŸBÜOIÏ<ž[PTZ^YSW߈¹r_Û£3ûÌVH=½Ë_·û_2÷ïÿ¸€^{Lþ!Hþ~L~’_Ïäïò·3ù¥èWÓ/g¿°?ìgáOøsý©ýÿä? €X˜ÜšÜZv»ìN|Bßû,˜Gè…ôŒúƒ*ìQû˜#±±qñÄ=ä=xŸ*¼—_ ¾”øLüv!~_OâcäùCHþ0ü³'ÈŸ|úSæ9•ÌŸÀü;¶æ_“ͽ Ï~h°ßjî3êu=ÚN -ýæõu5•å%E¹ú‰Çâb ôC!ôw‰ÐŸ‡þ›?zõ¥u«W.—CÑB ýù^žúú³ }4_B_e¾}çMýfÙæ>±/rßsÿ;Ì}`sßÇ×/ 0hñ£<÷_\¶bõÚõ¯¼ö†Mîÿr/ä~Dtl|BrjFVN^aqYEU­¦¡ Üoï÷»{uSŸÞ~x÷GÈ}`ŸÜÿbæÜwüô¶«á¿Æàÿ'Â/>¼ù,ù/Šä·bò£ü:¥üý­§yô3úkýH?f?ÚŸËíÏÌHgáÏÊõGýÿä?X6¸04¸´ìöØø„¾·±O0Ð éõ2ö’ö¬î÷é™Ü{ üB |¿‚Ï¿‰'>ЦC)¾ÅÇÈ·ŠÈ¿È"žüF>=}$Å·!º2ÿÍÿ‚™ÿ93ö~pÀjé3t½Ý]d~ËɦMMUEiqa^NVFjRBü‘èˆCúÁúñÐÿ-†þÛú¯¬_»jŲEè/ - ðóõñö‚П7—›軸H¡ïDßy3v¶ì‹Ü'ö!÷]åÜö=½çû.ð„ÜŒrÿ¹–._µfÝ˯¾þæ[˜ûXîoƒÜß¹w41%-3;7¿¨¤¬²º¶¾ñDó©ÖöŽsÚî^½Ñd÷A(¾QžûÂ}|çoñ÷}Jî; -~øÿ= üŸ#üRò_¸üµüZ”_ýD£L¿È~a?t¿Ô? õüsÿùÀ° €  ÀÀ %`·ßîÄ'ô=4þ þò9Ð3é9õÌz=jqŸ’š¦àž÷½ð_Ÿ¿E‘ø(¾V-¾…‹CIùÿÀÈ—É¿~wòm2úÍg¡æÃÒô[Ì&ƒÌï<×ÑÞz -B_S[]YVR”Ÿ›™–œx46&òpXh„þNý-,ô%…þš•Ë—¾ÀBÿ±%úþ |ç{{z¸+Bß•BŸ£ÏÌW£ÿM[á¼ÿ›S徂}tÙÇÜŸ3çdž›‡§×|Ÿ~ !÷‰ýgŸ§Ü‰çþ»Rî¹ ¹("úH|BRjzÖñ¼‚âÒòªšºzÌý¶3gÏwj{tzcŸÙÚ˜ûä>¾ü{ðâßš ÷åà¿ü(?Á?ÎágÉò (å×£üýrô#ýÍý` f¿lØ/㟕™ú3þUþÓˆÀ ÀÀÀ`K@wÈÁ‰Ïè‹ø¦<:Ï é9õ²õˆ=Ó>#3Kæ¼/’½ÇÀ¯ï%ð1ñ[åÄñ»Q|½RüÁ¡!&>E>‘?Îȇ‡~äO!ó'3ѧ'ÏæžÌ»‚3ßo5›Œz]̇Ðóëëj*ËK‹ -òŽg¥§&‹?qè„þnýíªÐC5„þóÏbèïQ -ý>ó½<1ôýGæ ú³ }4_¾3ô7ý7Ë6÷‰}‘û.û‹ÜŸ¹ïåíãëç¹ÿøOþðÛÜÿÍïÞÿËýû!¡a‡#cb&&§edçä–”UTÕj„û]ݽ:ƒ±Ïb .^¾,»L¯ûS‚åÇäÉ?|é¢CùUѯ¢¿ è‡ìWÙ_ZRLáOå/é¯âŸü§€`@#+@;À– šÏ݉Ï蛈<*̃ó’ô@=·^Æ^Ò>µ'î‹KJUÞCàøM*ðU‰ïP|xÌ"òÇ0òÇEäOBþíÉÈŸ&óoIæ_•̽ ™Ìï3t=Ý]çÏ‚ù-'›45U¥Å…y9ÙiÉ Gc£# Ù¡¿ƒ…þï1ôß¡ÐyÝšUúÏ=ƒècèúûùúx{yú"ô})ô9ú9ÑwÞLû"÷‰}È}WWÁþÜyîžÞûþ )r¥mîoÚü§íû»ƒ÷î;p(<êHܱ¤”ôÌã¹E%å•Õµõ'šOµ¶wœë÷õ¹ 8¢t`L·ûÿQ¸ÿ•Â};øoØÀÏ“ “ßF~+Èßòô:ý¶ô·4Ÿ´µ¿ª²‚ãOåú þþÓÀ° `@+€3À–€.Îá‰O髸#Î<8Ð3é‰zÙz†=Óž×=q_QYeëýÉæ[ðyâëô¿Ä·Ú‰?ŠâK‘¯ ÿÆäß‘ÈÿêÁÈ0óGàºÁ«¥ÏdÐõ‚ùç:Ú[OAèkj«+ËJŠòs³3ÓRÅÅD…‡Ø÷Yðî!ô·nÞ´ñƒ÷6Ø…þÓOýàûú‹òÐ÷p§Ð'ô]])ô9úŠÐÈi¾ófèTî+ØG÷‘ýÙÈ>¸ì»¹{ŠÜ_,çþŠUkÖÛäþ–mî€Üßzðpdtl|BrjFVN^AqiyUM]}#å>¸¯íéÕMfKÿ¸0ÌÜGîÇýûì=uðß~»äÿ;&?¨`'¿*úþN™þ¶ÖÓJûê5šºZŽ?•?Ó߆òŸ€M®Î ]âÇ?¦ï"ò¨<0Îô$=POÖ«±gÚóº'îkë4šú¥÷§[Ûdð;ørâÛ‰?‚â_Añm#ÿ~ÈÐÌŸÜü×ñ1+͆';Ðo1›ŒúÞm§0¿¾®¦²¼´¨ ïxVzjRB|ltÄáƒûCö|¡ÿçm[þH¡ÿî/~æ0ôƒxè{BèÏý.šèÏ&ôÑ|5úÎÐwÞÌ]îû"÷] ÷–rßrß—r‰ÃÜÿå¯7¼÷ÁÆM›·Bî¼;ø³}£bâŽ&&§edçä—UTÕjšÈý³ç»´=:½±Ïü_öë+6ËëŽã¸Ú¢T8†R© {5´jè}Õ›†$M˜3lÀ6ØÆ{ï½÷Â{ï½÷^˜ Þlc›Ù4Š !…Ò`ˆÔó?ç<ûymƒÁéÅû¿}ÏÃ¥ÏïËë>É}ìþSìþówæþÃÈ$¿bùIôËÐßÕy“d?g?Š?Ñ_Ä?öY˜´x`ðäÐ1Ppô~ ßå3γÒ#ê±õBì‰ö´îqÞsÞ“À¿ÙÙ%>Iü…ÅE>w…äÏ/‡|Aæ/Á|@_dþ2¿·»óƵ+—:Ú[›êª+ËKŠ -r³3Ò’â¢#ÃC‚ü}¼Ü]Pè[š› -C0ôÿ°cûÖ-‚ÐG諨°¡OÑÿ¥}å½ï“°Ïä>f循*ËþGë7nÚ¼uÛŽ‹sÿKÈý£'4!÷ ŒÍ,¬íœÝ<¼ý‚Ã"¢bâ“RÒ3sò -‹K+ªjê›[/\¼|õúÍ.äþàÐÈ(vfvîrÿŸÄýÇKrÿõ* ÿ¼~"ÿ36ù~Åòß»;77;#Œ~ýý}½½=Ýœý¸ûYüqùSýücÿÑ€ @#€gv nÁG_ÁEðe ã<•S­`qOëžrOûžñ¾»§··¯Ÿ¾0ñÑsîî½ħäÿ›’OÄ·ä/Ùü§Ø|úÈü{è9=u{bltdh°™C¿½µ¹±¾¦ª¢´¸ /'3-%1>&*"48À×ÛÃÕÙÁÖÚÂÔØ@OQèÿùO»>F¡¿•†>EŸ†>EŸúJô•÷¾Oûà>°ÿ!°Ïåþfœû»Ê}CsK{GwOÿÀðóѱ É©Y¹ù…%e•ÕµõM-mÔýž¾þÁá‘Ññ‰É)‡¨ €?66>Á‚Àñqâ+_ùK!ÿí3ÿ'á®/jþCžù·†úù7®]¹ÔÑÖÒÔPW]Y^RT›‘–œäïëåîêdokenjd wFû”æqý½2¡¿B#?ôUù¡OÑW†¾òVì$ì3¹Ùä>bæÍ[¶mß)Íý¯öTS?¦qRKGWßÐÄÌÒÚÎÑÙÍÓÛ/08,"*6>)%=3'¯°¸´¢ª¦®±¹•ºßÝ‹ÝCîOc÷pî?YÄýWÞþ×øùÉÿBœüŠä'ô?`¢¢èŸ"ôÓìçÙOð—èOùgüG@&€n^˜ºüŽý<äAy`œGÐéõÈz\ö{±ö„{‘÷8ðü)þ ŸˆÁW(¾(ò_ˆÅ_.ùò濘ÿLùsè?k“·ÇÇn !ó»;±ùí­Í u5Uå¥ÅyÙ™é)‰ñ1QaÁ~ÞnÎvÖ–fÆ$ôO@èïC¡ÿ© ôw¡Ð߆Cÿ#b> ÿ!E_úJô•·B§€}âþjqîoظi‹4÷ÿŽrïC‡×<¥}F©¹•½“‹»—PHøùèØ„äÔŒ¬œüÂ’²ŠêÚúÆæ¶ /_½~¹ß?04BÝŸUäþ3û/ß•ûBø_‰á—&?–ÿ;EòËÒÏf?c¿ þTÌ?®ä?X˜ØX²d -:ú -Êóà<žR¬ÇeO±ÇÚK¹ç¼g_|EâÇÑÈ—ÿæÙ×bó\Äü<óG†ú{Áü«—/^hmn¬¯­ª(+.ÌÏÉJOMJˆ>èïãéîâhocenbtކþaú{¸ÐßÍ ý \è#ôUTÄ¡ÿ+¥ùÊ[Ù“¸¿J.÷×­Ãì rÿ/lîŠrßAµ#ÇNœ<­sVßÀØÌÂÚÖÁÙÕÃÛ7 (4"2&.19-#;7¿¨¤¼²º¶¡©…ºßÕÓÛ?842:6q{ -»1÷»ÿúux#øEò?•—_Ž~±ý¤ûEøSý9þ‰ÿd````È !hgÖ@îØä}eœ'ÐSê‘õì©ö"îy}Ïy/ ¾¬øO%â¿Gò˜ÿBdþžù÷ïÎÍÞ™žº=16:24ˆÌïºyÌokiª¯­®,+)ÊÏÍÊHKNŒ‹Ž  -ðõòpur°µ¶056Ð?«s…þúŸ‰C'„þ&ú¿ÿ2?ôMC•2ô•÷sœ‚Üÿ€Ÿûk™Ü_Ïæþ¹¿åþþC‡ÕkœÒ:£{ÎÐÄÜÒÆÎÑÅÍÓÛ/08,"*&>)%=3;¯ ¨´¼²¦¹ßÞqé -v¿¯p˜º?³ˆû/tYð¿–Ÿ—üù¿ùŸùyÑ/K¿Ð~>þTÜþˆâ?º0°0dè»(sܯä5þ˜çz"=¡žX°ÇmOµçq/ò^|^âcñŸ€øßˈÏ|1ù¯—Aþ2ÍŸ¡æ#ó{8óêj*ËK‹ -ò²3ÓRãc¢"‚ü¼=Ýœíl,ÍL ÏéžÑ:¥q\ýð¡ý{¿ü\.ô·ðC- ýÕØü¡¯D_y+|¿¸Ï²ÏË}Uœû¿•æþn.÷?C¹@íÈÑš§µÏê™ZXÙÚ;¹º{ùø†„ŸŽMHJMÏÊÉ+,.­¨ª©kln÷¯ÝèDî€ûã“‹¹ÿûóËraø'¿¬ü8úåègíçu?ÅŸÓ·?âŸø/X¼0dè»*sܯä5þ˜çzž¥žX°ÇmÏiO¹çõ=ë½ø8ñåÅ_(òßù2æÏ3æã¿üé8ó+6¿™ãÚ•Kí­ÍÈüªŠÒ⼜ÌôÔ¤„بóa!þ>žî.Nö6Væ¦FzgµOkž8zDíÀ¾¯¾X(ô úkTUù¡ÏG_i¾òVþ$¹¿ŠÍ}Â>äþo¹¿]šûŸ£Ü?xXý˜ÆI-]}Cc3Kk;gWo߀ ÐðÈ踄äÔŒ¬ÜüÂ’²ŠêÚzÎýnäþÐð-Öý{|÷óÜNÜÿ¯Àý÷¿|ò‹åÿÊñÈÒÿ ¡ÿkB¿ÐþYb?Æ—?£ÿ(èOø§þÓ€€ À#@f€Yv$ÇýÜIÞãoypž‘žROÊa?Ø3ÚãºÇÜO“¼zÁÿš€ÿ >L4ÿ‡ÄGþ;'ÿMÍŸœ½5<8€ÌïdÌo¬Gæ—æçde¤&'ÄEG†‡ùûzy¸:;ØZ[˜êëêhÔ8¦®vpÿÞ@èÿí¯$ô?á‡þz~èSô•¡¯¼ÿ‹“°/Ì}”ûkx¹¿QAîrÿБ£Ç5OiŸÑ;gdbnicïèâæéퟘ’–‘[PTR^ î·´]¸xù*¸ß˹gÉî¿\¾û<ø’_‘üÏyò éÿ–­þúqösö3áËŸI¤?Ë?øO€Ý²dzÙ1PxÌ+òQ?ež…¤'ÔsØíqÜãºgòžóþ#øLá+ÿì×wp”uÇñ?ŽÑñfîî/=•jBz("B ¤g“MÏfÓ{ï½÷ºé½÷JGDÄóTôË9RæŒs ‡w"ÜIf¸_y~OÛçÙ’8#™y¾ï³ì3óú¼—ÿšÄç‘Ïz z}\óª™^Ôm¾ùWYæñÙùsÁæŸ> Ì?rèÀÜÌÔøèð@_wg[KcCmuEYqa^vfZJb|LdxHÒß×ËÃÍÕÙцþ¶­À|-¡ÿ[ÁЗЗî×:Žû¿aåþ³ê¹ÿÎýU ÷×›šáÜßbs¯½“‹Lîéí§ ‹ˆŽMHJMÏÊÉ/,)¯¬©S5µ¶wõôMLÍ÷;ŽÝÿà,pÿSèþ…‹—EÜ¿ 8áºÏ~ž‹„_-ùøÅäÇôßbW?¡ŸØºŸ…?WÈ?ã?¸hààÀ3@-ö£>ŒžDÌÿ}%=¤ž±·=K{÷¤ïIàðIáß"à‹ŠŸˆ¯%òCþcNæëdþ<4ÿmþþÓ™Ó'O?Ìß7351:<Ø×ÓÙÞÚ¤ª«®,+)ÌÏÉJOIŠŠ V*|½=Ýe.Žö0ô­­¶lÞ´q½HèÿúÏR¡¿L2_º_ÿDrÿäþsZs¸¿uÛvûvήnr/ÿ€ °Èè¸Ää´ŒìÜ‚¢ÒòªšzUskGWoÿÐÈØäô쾃‡YîŒÜÿR›ûwÅÜ_Lðkƒ_XþŸhùyÑOÓÒOÛÏ -Œ?Oâ?ÕÿhР À+@í½¢G>…Â_prIO¨ÇÖóµ§¹'yO{ -||NâSâÿ$.þ/E¾HæÓæß£Ì¿«ÉüËÀü/¿øìS`þYÚü£‡웞ìïéêhmVÕ×T•—åçfe¤&'ÄEG†…øùxÊÝ\@èïÜŽBÃ:KsS#Cƒ5j¡ÿ;úÏ!óŸ‘B_º§çDØ×1÷×oÜ´y‹•õ˜ûŽÎ2wo_…2(4<*&>1%-3;¯ ¸´¢º¶¡±¥­£»w`hd|rzn?tÿ­·O½C»ÿ¹îîß#î?váð‹Ëÿ@H~!úyÙOw??G†èÿ<ö/ú€GÏY]ŽúüEü4ú&=”žP­g°gkÏpO÷=7ðÁWÿ.â/ômqÍȘßÍu1ÿs`þÇØüSÈüƒûg§'ÇF†ú{»;Úšëk«*J‹ ò²3ÓRãc"ÃCƒ”þ¾^î®Î ôwÛì BßÒÂÌD—ЗЗîi:=sÿE”ûk LLÍ-×mÀ¹¿¸ïàä"“{zû)ƒÃ"¢c’RÓ³rò KÊ*«ëšZÚ;»û†FÇ'g€ûGÞxºÿî{ÐýO4¸¸ÿ@º/ü6*"4X©ðóö”Ë\œöîÙE‡¾…¹©±úÒ-½Ó+÷Ÿg羉™…%É}›Ý¶vŽÎ®n^>þA!a‘Ñq É©Y¹ùE%å•5uª¦ÖöΞ¾Ááщ©™¹‡h÷ßÿÜ×!øŸP§Yò?äÈÏŽ~uúÕì§ðÿÆêOø'þ£@ €&€jè%ÐzäãóÔã´ó´ô´õ{¨ý÷X{Š{5ï…Á§ÿ'ñ(¾¦w$’ùæß¡Í¿Á˜EÀü÷ßÃæ¿qš?5>:<Ð×ÓÙÞÒ¤ª«©,/)ÊÏÍÊHMNˆ‹Ž ðóñ’»¹:;ØÙ²B߆¾ ýåRèK·´NÍýe:æ¾±©¹Î}+k˜ûöŽ.2wo_…2(4<*&.19-#;· ¨´¼ª¦^ÕÜÚÑÕÓ?8<ÜßÇvÿCàþy®ûW÷oÐîߡݿGÜ ~Vž<Ñ$¿üÙðó奟g¿:þDšÚ4x¨À+À,G?ñwü Wièê‘õ{¢½:÷<ïÅÁWÿgžøº“/ðv4d>6ÿÛ|ðËßÒÇüC€ù£Ãƒý=]í­ÍªúšªòÒ¢‚Ü쌴äĸ˜ÈðÐ ¥¿¯—‡»ÌÙÑ„>2…¾ú+µ†þ2É|éž¶Ó?÷—ÃÜ7Xkdbfs¸¿mûÎ]¶vN.nrOo?E`phDTl|RJzfN^aqYEUm}cs[GWoÿàÈØÄô,vÿÄIÝ¿ôîßEî/2øµÃ/"ÿÏŒü"ôóíÀéOóOû-µÔ ïŠÀñ>BžÄßóFzšzd==Ô^€{5ïÅÀÀ_£ø‚äkz/Bä‹d>1üÒà7f›ÿ5cþy`þ‡ló÷ÍNMŒó{»:Z›ëk«*J‹ ò²3ÓRãc¢"Bƒ• -?oO¹ÌÅɘ¿sû¶­¯óA蛚Ð_-…¾tKóÙ×”û/-_±’Ê}3û7mÞbe½Ãf·­£³«›‡—@`HXDtlBRjzVN~aIYeumCcK[GwïÀÐÈØ$rÿè±ã'NžFîÄqÿkèþUÊ}?йÿ#tŸ -þû ~-ðë.¿ ýœìçØÏÆéÏåû€š2Ô -0K í˜Ï_c˜'Ò3Ôó°‡Ús¸çxÏ |að,¾æ7Â{lòÕÍÿ‘1ü Èü«”ù—ÔÌ?yâ86zbld¨¿·»£­¥±¡¶º¢¬¸0/'3=%)!6:",80ÀÏÇKîæêì`g»Û…þ¦ëQè¯5|…þKÚC_B_º§ðôËý`î¯Xµ復¹åº ¯R¹¿g¯½£‹ÌÝÃÛ×? ($<2&.!95#+7¿¨¤¼²¦®¡©¥½³»¸?Ý?x»†çþ%âþ·ß÷Qð#÷€îß¡Ý ~á_€ü:Òϵ_¤?æù/Ù²dè»&p¼POþ“|Óu–ôˆzl=Âi¯Î=×{ÝÁ_˜ø:/˜ùÄ|øƒ_÷øMo ÌÿþÚwß -˜ÿ2ÿ40ÿØÑÃÐüI`þ@owg[KSC]ueYIa~NVzjrB\tdXHP€¿¯—‡»ÌÙц¾µ -ýu(ô Ö¬^µ„>m¾úÒ-­Ó?÷_^±rÕšW ×›˜YX®‡¹Ý¹ïàä"“{zû*”Á¡áQ1ñ‰ÉiÙ¹E¥åU5u*è~p¸?·_“ûóØ}üÀý›ÈýÛÐ} ÁÿˆOÎbá•_„~žý<üý1ÿØö `V€½ZõÌuò=Ô÷ÞdQ­GØ3Úó¸ç{/ -¾ñE¾N™e>0ÿ6d>2žeþ9Êü3”ù÷óÇù}Ýí-MªºšÊò’¢üܬŒ´äĸ˜ÈðÐ ¥Â×ÛÓ]æâ„Ìß¾ ˜BßÒÜÌ…þª•+^†¡Ì—B_º%yzæþqî¯104265·¹Ü·²ÞaÝwvu“{úø)ƒÃ"¢bã“RÒ2³ó -Š¡ûõª¦Väþ0pFÝýsÈý¯.^º Üÿ†ã>~àŠå¾Á¯~½ä×N¿šý,üYúcþ±ÿÔP @M³œ%Ðv¬gó”óDzL=¶cÏҞŽš÷º¯§øº¯1óïÂÌæÿ‡oþ7ÀüË—.~EÌ?Ë5˜? -Ìïélo…æW•—äfg¦¥$ÆÇDE„+~>žr7W';ÛÝ6;¬­¶lÞ´qÃ: 3Scú+Aè¿H‡þï¥Ð—n žî¹Ýgrß`­‘‰™¹åú ¯¾ö:Ìý]{öþŸýú -Žê:8>yH‚Aˆ‡0IŒ´½i«VÞ«$@HB½÷Ž„ -BHô–1¶‡`lOÜâ8÷„PGmW»«¶SœÓÛÐ=‰óÛïÝ»«»2³ßû=gu~ß_+VE¬ŽŠŽKLNÍÈÊÉ/,)+¯¬®­kضc÷Þ‡^8rô•cÇO¼Éç~;r¿oÀB¹ÿÃ}þëXð#§÷Ý¿[øþùËÏK¿³ýLü™úüþ €ZÔ`o‚±†ùuy4A=a=Ž=S{&÷<Þ»ß3ñÿ;Æ»»%Ÿ‘ù¸ùèáå0óá#Òü ̷̄ ôñ™ÿ0ÿÏ`þ±WŽyáÐþ½»wl«¯«­®,/+.ÌÏÉJOMNˆ‹ŽZ± -B™¡h4è4*¥\&‹üPèãæ£Ð÷ñ†¾w&àüJXîûR¹ÿGÈ}‘D*S(Õ­Þ`2Cî“î‡G®‰Š^Ÿ˜’–‘›_TRVQYS»¥aÛNä~ã‘£¯î¿ëÚ}ûÐðrÿû¿î£à×û·ûî‚ÿ)ÁÏ‘lúùì'ðçÑŸàŸZä`,ö&{XßÑÇ‘Òß&o¼ëJ{‚{>ï…ƒ/D|ÈçÏü;(óÁük×°ÌÇ̇ÌGæ ÙÝ›ÿ&iþ½»wnk¨«­©¬(+)ÊÏÍÊHKNŒó×D†ƒù‹Ì›æ›M½V£V*dXè?ïqè{Ñ÷ÎÿáÉ}pá>Ê}?‘X"“+TêÞîÏž;áâ¥ËW†G®]³>>)%-3;· ¨tCEUÍæ- ÛwîÞwàpã‘—Áý×¹î7û­í]˜ûVÌýQÌýüó‡ãÁ‚lCŒQîóÿONŧò»¤Ÿm?‰?[‚ÒzP+€½<æw8Ò“ÖØs´'¸çxïüñˆ/˜|—™eþ-Xˆù˜ùxæcæŽ ;ì6«¥Ìïêloó›æ¿K˜ÿêÑ#‡ìCæo©­©ªØPRT›™–’¿>f˜¿rùÒÅ(ôg†›z]€Z¥K%bú¤ùÞÐ÷΄a¹?•‘ûÏÏð‰¥2¹R¥Ñê ¦À °Ysp÷WE¬÷ã’RÓ3sò -ŠK7lDîoݾsËý·yÝïéëGî;Àý‹¸ûxð_¾Á þÛn‚ÿ ð ¿0ùÝÒϵŸÄŸ«?å?¹è À\N›ÀͰ?ºÃ8޼‚¤þõ#8Ú“Ü;y/|aâ»%ÿ?îÈgfþm,óÁü+,ó/]"Ìïqiþë`þËGØ·gçö†-›kª6n(-*ÈËÎLOIJˆ‹Y·vue~XHP Ñ ÓjTJ¹L*ùÏ`†þToè{gb‡¹ÿû?@îû‹$R™B©Ðê &sp(¸?oÁ¢%ËV€ûQѱq É©éY9y…Å¥å«6!÷wíÙwðpãKàþk\÷Oû-­í„ûƒvǸ‰á> -þkdðßqüã‡ß…ü‚è§íwŸҟâŸöŸZô -pÚž ëúìûNÖSØSÚ;sO{ï9øB×ùIé—$Þ“ùwÈÌ¿†2Ÿ6ÿ[ÂüAë˜ßÝÕÑÞÚæŸb˜ÿ6×ü­[6oªÚX^Z\˜—“™žšœ æ¯Z±lÉ¢óæÌóÍ&ƒ^«Q+2©D¡O›BŠ7ô½3±Ç£ÜÿÝt,÷ýDb‰L®P©tzc ¸?s6á~x䚨èõñ‰É©Y9ù…Åeå«7m®ßºÃµû߀û͘ûÝ=½ýÖA›chÜGÁ¹ÿU<øo¹ þÇ´Vã‚_¨üüôóáOëOóOûÏܬ%à¼ Ü ç»{¬C—=tÆžÒž—{·à ßsòó‘™2ÿ*žù`>Ê|dþðÆÌïEæ·µ¶4ƒùßpÌ Ì©ñðÁ}{vmßZ¿ySõÆò²âÂüœ¬ŒÔäÄøØè¨5‘¤ù³g†›MF½.@­RÈe1˜¡™O†þdoè{g¢ûÜŸ„rÜ÷õ¥rÜ÷‰¥2¹R¥Ñê ÆÀ pîü…‹—._ ÷SÒ2²ró KÊÊ+«7Õaîï?xøEpÿO÷¿"Üo#Ü·`îŒbî“Á?rŸ/øÇ¿pùÝÒïÂ~&ÿ ÿYÀi Œg8ç=`Þõˆ{&÷®¼ ¾°×tAþO\ò`{Î|Üü+—/Ó™æŽ Ùmƒ–>0¿“2ÿ+Êü·˜æïß³kÇÖú:Ìü’ÂüܬŒ40} ˜¾rùÒÅ çÏóC‚]€F¥”ˤb‘?2Ÿ }_2ô'yCß;|ÆÎýÉS||Pî“îCîû‹$R™B©Öhõ“9($lÖÂýˆÕk‘ûIà~vn~QIYEeum]ý6®ûoîörÿLsËù¶ŽÎî ½}«Íî÷/2Ü'ƒÿ7øï“ÁÿˆdìÁïR~÷ô»ÄŸ©?ËöàÙž÷¸‡¬ËX?ã‰î=_à3 - ßEæß 3Ÿ62dØa·Y‘ùùç[šÏ ó¿ø 7ÿÚüæW‚ùEù¹Ùi)I`þºµ´ù³ÂÀ|“A§Õ¨• -™T"‚Ч͇Ð÷ñ†¾wž™+÷ŸÃr*‘ûÓ±Ü÷‰%2¹B¥Ðê&sp(¸?oÁ¢%ËV¬BîÇÆ%€û™Ù¹E%(÷÷îÃݹÿÑ'˜û§1÷ÛÁýž¾~‹uÐî÷!ø1÷ñà¿Âü÷°Èe¿'ð{$¿3ýûYø³ùgûÏÙ|[ÀÃq:ïçÂ'®°çrïì½kð…>Ÿ;òŸðÏÍü+xæÿð/<ó/Ž9ìƒVK_Ï…®Îö¶óçšÏœÆÌÿä£ÿö×÷8æïݵc[}]muen~&˜Ÿ毎XµbÙ’E æÍóƒÍ&ƒ^ V)äR‰̇ÐóñÐŸŠ…þsÞÐ÷Î32‚s™û྿H,•É•*M€No -9›v?*¹Ÿšž™‡»_S[×Àãþ{ïð!îþIpÿr¿ ¹?`´9††GûTðÿè&øŸ2üžÑ?þlýüw±<ÞS97s´›{ÁùIò òéÌ¿Igþtæ{ 2Èa´ô÷bæ·ž?wöÌé“_ãæð>aþqŽù5•JŠ -Àütd~l4Óü™¡Áæ@£^ Q)å2‰XäÌ'Cß×3¡ÿ[oè{çá¹Oº¹ï/’He -¥Z£ÕLA!àþÜù /]¶"3¼¾ï"侤®¹¯Ti´ºNƒÑÔcîí°\¾ -ƒÿk¶à¿ÿ¿¡ûÜáŸ2ù™ì§ÓŸéàò¸k<#õŒÚ»ðÞ­ÏC÷˜ÈɧÉü{”Ì¿3ÿÈüáAë@_¯¹Çd4èuZJ©€æ7ÔI ùÅE˜ùYŽæ¯æ¯æÿõ/ó—,æ'ÆÇÆDE†‡…‹„AÈ|<ôüiCß‹}~Óbô¹?Þû¿B¹ÜŸesä~`H—˜œÝñåW¡ûo½ýæþ*àþ²û©Ðý,ÜýâÒòÊjÌ}¹B©RkuzCpßÒ×oÁÝ!øïØ‚êág¢ÍýÌø3ðïê ð|ŒŽù„./çÖW™,ù óGAæß¡fþ̴߱ö÷YÌݦ.ƒ¾C«nW*äRd~uey)n~62?ÕÑüUÐü?ýáÜü—_\ -ÌOINŒ‹‰ŽŒ óç“̇¡/àCŸßtž3û^öÜ÷Ár¸ïïr¸s¸/‰CBÃ#¢¢cã’’Saî/{ý7 ÷W2¸ŸCq¿±Y*W´µ«5úÎ.c·ÙÒÛ?084ôùM“qÈ}ß™à~@€-÷¡ûABQ0î~|BÒ‚”EÏ=Ïîþè~æ~n^A!æ~Mm=p_ÖÚÖ®Òtè: Fü½}ÖÁaüׂÂ?::6>ƒ~Îð»N~í¸Øï·ÞwÇéOs¸‚ÛíÝ8™?3ÏüÛÔÌ¿2e~¯¹Çd4tê´•²­Uͯ­©‚æ_,,ÈËEæ§#ó÷PÌ_i3ÿ×1óŸæ'%ÄÇFGE„‡†ˆEBd¾-ôüQèûÚBß›}~ÓrTöŸ"ç>áþLÌýY$÷ç ÅÁ!aá‘Q16÷_x‰âþ -÷÷A÷Ó3÷/^*)«¨î74µÈZJ•Z«ÓºL øûPð_¦ÿ¿Pðcð áÿ‡ÿGføb†Ÿ A6ú¹ØÏ•^O~™Û™=yòhÏï >3ùߓɿƒÈ'gþùƒ0óÍݦ.ƒ^§U«” -¹¬¥©š_QVrÉf~243£ù/<Ì_Í‰Š   ƒÉæÃÐÀÐ'Ìw }Þ|~ÓfŒ¹ï Ù÷Ár¦Àº?{î>ÈýÀ ‘88w?1iÁBäþ+ îoFî@îgž:Mr¿ZRÜ—ÊÊvµ¦CßÙeìî±0?ÿ˜Kø9%¿GòsµßCþ§hœÏèⲜ®Æùlä;>6È¿ ÉwÊüáAë@_¯¥§ÛØÕ©ïШÛÛrisSC¤Únþ™Ó§2‘ùXÍå%hþÂI‰6óÅÀüùvóaèûùAó}‘ù>dóyôùM¿1ºoÏ}_”ûÈýgæ÷AîÛ܈ŒŽ‰‹OL^°p1rÿ5'÷?GîoEîÂÝ?sö\þù EÅ¥å•ÀýúÆf©¼µ­]¥éÐuŒ¦jðÿ¸OÀÀ€Âø9ÉïŠ~7ðwfò±SÏå‚Ü®ò¿I‘2ÿ6Ê|Dþ’3¿Ïbî1 :­FÕÞÖ*“67Ö×Jª+ËK‹‹.œÏ?w7ÿÈ!dþV’ù+H濆Ì_ŒÌ‹‰ŽŒ ‹€ùóžÅ̇¡àï›oý|è󛯣aß‹È}Âý™ÈýÌ}˜ûÈ}¡HBq «ûÛ‘ûGŽsp¿ª¦¶¾±©EÖªPªÔÚ½¡ËDþ«äà‡ðßðŽŽSáÿÁÿGø=“ß5ýîâO+ç#bžû¥8ž›Q|‚ütäO8’OÊük0ó‡(™¯U·+­²–&`~MUÅüãÇŽ"ównGæ¯uî|dþ`~²Íü±H͇¡?w.2„¾@@5ß›l>>¿i8ÆÜ÷†ìC÷}¡û~ÀýY÷ƒ„¢àÐðˆ¨èظ„ÄäÂýåv÷ÿ†¹¿v=rçnÌýã'NfeçäæŸ/¼x©¤¬¢ªFR×ÐÔ"•+ÚÚÕŽÁ?‚¿ þ›.ágK~wåçB¿Çú?ÊMò?»ß9òiÉäßäß$‘2ÿ²CæwÀÌWÈ¥ÍM u`~YÉ¥‹…y¹9ÙY'O ó÷ïÝ™¿ÞÙüå$óùáÈü Üü_#óAèû¡ÐÇÌ÷!›Ï‡>¿i<öIîÛsßæþì9v÷ƒ„bG÷—:ºÿ>îþ†Èý½û¶¹ŸW€Ü/¯¬–ÔÕ76Ke­mJ•F«#ÿ þkסûü·üwÝŸ‹ülñÌÍþ_ ÿSqpvñ#ß=òo|ÈÇ2¿Ÿœù*e[«LÚ 2_R]Y^J5?õðAÜüpóßw4)0?šÍv0¶Í|rèÏ ýÇýOÊß&÷½ˆÜ·»/øù#÷ŸÁÝŸ7s?Ì…û|ˆ»¿i î~jZzFæ©ÓgΞË?¡¨¸´¼²ª¦¶¾±©E&W(i‚ÿòRðs†ÿ¿=ù]É?%ô?î`êú³'ⳓ #ŸÈ|Hþðu ¿×bîÆ3_ 3_ÖÒÔP_ 2¿¼´¸èÂùüsgÏœ>•™‘ž†™¿cÛ–M¸ù~àÚ|±0(p>a> ý'ó½éÍçÑç7 Gãþ Â}Üý™Èýäþ\è>È}ྐྵ‰ÜOJNYDïþGŸàîoÛ±kϾîƒà¯¨ª‘Ô545Kåöà7¢àïÁ?Œ‚ßÿ7þÛ´ð߇ð³%ÿdäw›ÔGôxt*öcqÿ'B|ÇÈÿŠ‘ÿ ù(óù óù(óÍN™ßP'©®ª(ƒ™O6ÿÐ}{vÙÌÿä#Fó“ù‘áa¸ùóžEæÏEæƒÐèÍ÷âÍç÷$Ì}’ûOîûB÷ý€û³û(÷ ÷C¡û1±ñ¬î¶fÝýCGŽ;~âdVvNn^AáÅK% ø«%ÎÁßm¶ôöXað»€ÿ;¿SòÿÇùÙé÷PÙ)|ê¿‹øl‘Ï@þ7ò/òúPæwᙯD™ß2¿ºd>0¿ /7';ëä‰ãÇŽ!ÌÿêË/Ö­ùŒÉüE$óCƒÅ"dþoC6}h¾a>úüž¨Ñ侑ûOã¹os6Å}¡îñåW›·nß¹{/Ù}üÅ¥0økíÁ¯Övè;að›Að€àGðC÷YàÇ“Ÿ -¿-ùYåw“þÉÒëšã‡ýûn€Ï$>Mäÿ€G>Fþ+ùÃCÖþ>‹¹ÇDÊ|¹´¹ d~ Ìü⢠xæcæÜ¿w÷Îí[7Ó›¿Œl~|lŒƒù0ô¡ù³ìæÛCŸ7Ÿß8ºÜ§q_ ðóçìþ2›ûï¾·bå*ªûûNMKÏÈ¿'ktîÏ Ü÷qrÉý à~HhX“û¿ÿ㟑û«?þôóµë7lÜ´eÛŽ]{0÷ñàÏ+(„Á_Nü£©Û à€ðÃেÿ„Ü?‘ü.äçB?û™ús97wðÙÅG‘O?É¿çH¾-ó!ùV@¾ÅÜm2:uxæËì™_Š2?/7'; ËüCöýŸÝúŒŠêÌã8~’µd`’ó.ºçÄŽ ¥ ÃÌÐ{ïˆ –Ø»"b ½—¡3CzfÙ7«Xôìn’Ýìž³›Í‹}žÛæÞ;Ï,IÎñþÞÃýÏ›Ïó=sêDÌñ£‡ˆÚKšïëí©ÅüU4óAècæëQæ/%ÍçCŸß[:n÷—¨Ü_¶LO_ùûÐý´»/ÆÜwuG»îÂÅK—¯÷ñà—±ƒ¿»·o`pxdt|âú›·¾þÂþ9 -~ZòÓá_ˆüúu²ÿ÷¡¿n—jò^7ñqòÿÉŽ|‚ü94ù†äû ÿÆõ‰ñÑ‘!µÌ—c™ŸOd¾FóÝ]¡ùb`¾ÀÂÌ„2ýÚ5«9Í_Æ›Ï9û s •û4÷Wp»obf! Üwt&Ü - ˆÜ³oÿÁÏ‹Ž=yú,ü‰É©éxðÁ¯¬oljikïìêéíŸø’„ÿ®Fø_0à×.¿ú_ÞþßÂÝ/Cü,màsˆOFþ4ò_ÐÉŸb‘#ÿk@þ—ãc#Ãý½=]0ó›ðÌW`™_€g~râµ+ ñqçÏž>}ìÈç÷ïÛ@˜ï¨›ùAóß_®¯͇ècæ/Q™Ï£Ïï­wîku%‡û"±ÔÖwßÇ/@Ý}*øÓ2TÁ¯¨ª©­khlnmëèìîéë¿àÿ -ÂG þ)ÿÓg³³sóó~VòkýÚè_þoò Xè¨_ò -|õÄçŸù/žÏÏÏÍÎ>{J‘?©"ÿ.FþW€üëãc£ÃCý}=Ým-Í uµdæËðÌOIbf>Ý|?/Ì|{[©X¤Íüjæ¿G˜¿˜7Ÿ¿ºÿV÷ÍVBÒ}7/Ìýл>Û½7êÀ¡ÃGÇœ8u¸O&üòÊêe}CSKk{GWwoßÀàÐÈèØ€ÿ„ÿ6þI?Hþ™þç ø5ȯ!úu°Áø¿ÊCð*ßB_ôž#ñQâÿ_Eþs’ü@þŒü*òï0Éìïëíîêhomnj¨WÖTWÊaæ♟Je>aþ¡Q{w¶kghp 4ßà 3_" ­æÐ|Ãm[èæ¯d˜ÿ—ù‹xóùñC²¯r)ÒýYîoÙfˆ»o Ü—÷\ û¾þÁ”ûdðŸ‹O ‚?‹ þ -EUum]}cSK[{gW„‡ÿ¦ü ü øŸÍÎÍAø&¿.ôsØÿŠü¿¹q]‹î{øTâ#ÅgFþóù¹¹Ùgù‘äßäOŒŽ ä·45Ö+k««ªÌO#3ÿüÙÓ'c£Á2Ÿ0ßßטïâäÌ· -æ¯ÓÉü¥ÍçÑç÷NƒûKèîëéé/îÈá¾澑‰)æ¾ pߺïé Ý ˆÜ³oÿAà>ü—.Óƒ¿¨¤¬\^YU£¬khl&àïÇà§àÿNÿ}ÿ#ÿôÌSõäÇäÿ‘)ÿ¿ù9é粟ÿßÿÎû…üŸ9À§'>R|Hþ Uä?™†ä?‚äßG‘?>:2<8ÐßÛÓÕÙÞÖÒÜØPW[S¥——–ɰÌO'2ÿâ…sDæcæGF„‡…Aó=Ý¡ùv¤ù¦&F˜ùêæLš¿\_Onþ•ù|èóã‡Ëýźºÿ)Ë} K¡µDjçàäìêÜ÷ ‚îãÁøèñ2ø¯àÁŸ ‚¿ °¸´¬B^Y]£¬ohjnmëèìFÀ‡Kþɇ!üœÉ–_gúYökÂÿ×´ÃÅ=å=| â«"žùü‡| >Nþm$ùm­ÍM uÊšêJyEYIqaA-óããˆÌ?zøÐ¨½0óù~>À|WgG;©ÄÆZhiÁ2ÿS5ó?D›¿˜7Ÿ?ÖÞA¹¿ˆæþ{À}À>ÒýOîo5Ünd Ý·²¶÷û^>~Á¡;w÷ñàŽ=Iþ´ üù²¢âÒò -EUu­²¾±©‡¿¯`hxdŒÿ{dò?˜Éÿ˜žüù Éÿ!ÿ¿)ù‘ôÓígã¯Mÿ7õèôYö­ÿC€ÿ_]Àçÿ9_ù€üIœ|(þ½;(ò» òë•µÕ•ŠŠòÒâBY~.Èü´,ó/™}ìžùÀüÐà@?/7`¾½Tlcmeiafjl´Ýp+ÃüOæCô™æ/âÍçÇ56û÷ÿ¨Ýýõ 6î›Y¬¬Eb©­½£“‹›‡—·¯`0 þÈ=ûöãÁâü—að§¦gfçäÈŠJÊÊ努šÚ: þvüXñß á¿K“ÿ=ùgçæòÿÿGL~tô3èWÙ¯ù‰·`áÿWý6÷Ág'>Jüy(¾*òÁÈ'É¿‹ ¿’ßÞÚÒÔX_W[]¥——–É -òr²2ÓS“é™sÏü=‘á óý}½==Ü\œím%b‘ÐJ@™¿É`ãzíæcè£ÌçÑçÇ*÷_ÞýÆ&fæ+¡H,±µwprqu÷ôöõ  - Â?ê#ø@ð'¥€àÏÎÍ/(,.)«WÒàï¢àƒðßdÀHþg0ù¹ägÓO³ÿ? ûÑáÒÿ%ø-C\ÂÐ^{Â{nð5‰?G_ùtòoÝ„ä!ȯ©ª”——•äåfg‚ÌOúd~<žù±DæïÝ 3?$(ÀÏÇÛÓÝÕÅÉÁÎVb#Z -ÌÍLŒwlßö -æó¡ÏŸúÞy î¯îo0Ø´yë6Â}K¡µDjçàèìêîáåãºþƒxðŸ„ÁñþÄäÔôŒ¬œÜ|Yaq)„¿ºFY×ÐØÜÒFÂ?HÁ%?„Ÿžü@þ'¤ü³,ùÿåÿ“Ÿ ÿ'4ýœö³õGñÿ+¼è¯²NûY³÷ZÁÿ‚¯&þÓ™éé©' òÒ#’E>šü†:%$¿¢¬´¸P–Ÿ›“•‘–šœx dþÅ ôÌ߇e~hp ¿Ÿ—‡›«³£ƒTbc Í751‚æoÞd°˜¿š7Ÿ¿×5-î/ÕâþJÌý5¤û†;ŒLLÍ-,­¬mÄR[{Gg7/o_ÿ@üáôà?ƒ?.>áÊÕ/’RRÓ3³sò -dEÅ¥å -ü½üãüÌäò?òOMMϨËÿWJ~fô³ègÚ¯þ\ü¿®G@Ã?W»D÷tï9Àg$>]üYšø ò¨E>FþÄ8A~/A~3F~u¥’_$ËÏËÉÊLO™õrB|Üy˜ù1xæGa™2ßß×ÛÓÃÍÅÉÑÞV*Y[YZ`æBó7ó×`æ¯ÔbþRÍæóèóãGÓ}2÷‘Ü_…¹¿vý†›6oY¬„"±ÄÖÞÁÉÅÕÝÓ›þ]´àÁîþ+דRÒ22³só - -‹Jpøkqø[Û;:qø‡ ü ùéðãÉäŸò?FËψ~‚~Íö«áO×_-/÷ƒ°€¿B}”~¥=‹{„÷jà«ŸÕø3ÓSS¸ø òÿ‚G>|ù€üá!$ùå¥%E²‚¼œìÌô´”¤ÄkW@æŸ;2?ú˜*ów‚Ì™ïéîêìä`g+‹„V 3Sc£í†Û¶`æ¯ÅÌ_E™¿‚7Ÿ¿W›ýw¹¯ƒûÂÜ_·a£Áæ-[ ·›˜™ ,…"‰ÔÎÁÑÙ•üTðÁö|\ü¥ËW¯%&§¦edeçæãðËU,øûüÃ#üxòG&?”ÿ>ÿ!C~TôsÓO·Ÿ†þhÿü -,€yuëiÚ£¹WyÏ>"ñ‰Æâ?ÆÅ¿ÿvë+8ªëŽãøÄÎxœ‰A€Ày±'Ži*»«mê½K¨w­zïuÕ{ï¡Þ{ï…î ÄÆN&˜FðâñðÏ$ï9çÖsË -É o÷÷~Ï}ûü¿˜ø¬È‡äÿ’ƒ$•Aþ`oOwWg{kKSC}mueEYIÈ|uÌüD˜ù‘Dæû€Ì¿äâìhogceinfbl¨”ˤ±¾ž®Îhþ¿?Œùúˆùæ ¦qœÜ?ºû_üºQWO_,1ɆF&¦æV6¶öN.®nxð«ÈàOJÁŸ“WPX\Z^QUS[ߨÜÒÖAÁ?†Á?á_]ߨÜÞÙðß„ðß¹KÁ%?&ÿ[þrä'£Ÿ¦ÿ_ýˆýðGôgûà Ðxû [zÔzZ{>î™Þk_ƒøû¤øO0ñä߽ɿ ÈßÝÙÞä’ß×Ó}¹³½­¥©±¾¶¦ª¢¬´¸0d~&ÌüV滹º89ØÛZ[Y˜›š*ä2Ìü‹À|ùG1ÿׂù„v÷?|—û'¸îy¸¯£§/’Hå -¥‘±©™…¥µ­ƒ£³+ü~ øC@ðGàOLNMÏÈRçæ•”–WVÕÔ‘ð_¡áŸ†ð/aðoíì^ðߺ áÉÿ-"ÿ£ÇüòCúqù¤Ÿe?/þ´þ þyÀÑÎÀ!çHbOjÏÃ=ÃûŸqï™à‰‹À‡â¿fˆ¿ÅçD> ÿö-@þÕÝ-Œü%.ùm-Íõu5U•å¥ÅEy9ꬌ4ùñ ó#@æã™ï3ßÁÎÆÚÒÂÌÔØH©K $"}=`þY–ùÚÀüG6_@_˜0 ûeîkîøq÷Ï÷uõEb‰T¦P›˜™[ZÙØÙ;’Áï$þüé™ÙêÜü¢’²òÊꚺ†ÆæÖ¶Ž.þÑñ -þ5ÿöîÕk×ü ù!üdòså±ÿòå«×þ7Œè'éKÒ϶_#þ”þÿ,ÿ¼GÏÓÈŸ)ìIí9Ü3¼GMü70ñ_¿zùrÿ"þc\|„|,òoݼ~íêîöÖæú$žK~kscC]MueyYIQA~®:;3=d~Èüp<ó}½==`æ;ÚÛÚXYš›™*2©D,ÒÓæŸÃÍäÅüó… ;Âþ÷‰àÇÜ?AGWO_,1ɆF&¦æV0ø`ð{âÁ¯ - ÁŸ˜œ’–‘™“—_X\RVQY][×ÐÄÿüâÒòêÚ:€À’ÿ+"ùïQÉÏ+?ý|ôÓÙOÙ¯JšÔ 'àà‹pˆ/ÒÓÔ³±ççñžþ ð¡ø¯øÅgGþW0ò¯]ÝÙÞÚä/Còg"¿0?7';3#-%)1>d~X¨*ˆÌ|W˜ù¶ÖVæ¦&F† -¹Ì@"Öæ_8™Of¾`¾0aïm¿ÈýSÐ},ø¡û ø¡ûû"‰T®P›šYXZãÁ ~¿€ à°ðÈ蘸„ÄäÔôŒ,uN^AaqiYE/ü“Ó3só KË+kë›Û; ùoàÉç.€_£üÏ_ìïCùéè'èÿÒÿI?Òý|ø3õçõŸs}4Ï•ž¢ž=®=—{ïQð‘ÄõrÿÅóçFˆÿŠÿ€ÿ›¯ï‘DþÎöæÆúêÊòÒ$rbŒI~SC]mueEYIqa~^NvVFZjrbB\LTdxhHp`€Ÿ+óM” -¹Ô@"Ò×™þ–ù„ùŸBóOóµ´ŽÌ&ìÿ<û»츖áþÔý/Ï÷utõEb‰T¦P›˜aÁo¿‡—¯`*4,"2:6>!)%5=3K›WPÄ„¿“€xtlbrjfv~aqyeum$ÿ.žü·©ägÈÿÈÿd渚è§éG³µŸ…?¡?Á?ÿì ù<žGÐü‡{\{&÷LïßÞ£…'þkFâ?Ý{BŠO5>ù·©ÈßÜX[]YZ\˜›™‚ä °È¯ª(+-.,ÈËQge¤§&'%ÄÅFGF„…¨‚ü}½aæ»02_)—I%b‘¾.0Ë|Úü3§dþ‚ù„q¿Èý“ÀýÓ¤ûŸáîƒà×Á/–Èä -CF𻺹{zûø«BÃ#¢bbã“RÒÒ3³ øËðw÷ôö ŒONMÏÎÍ/.-¯RÉL~Lþïù¿'äÿ”‹~’~Â~H?’ýÐþ·¸ýLüqýyùGóh<ï÷ äÿfZbiÏàž×{|è=L| |,ñqñâ?äFþu2ò×@ä/ÎÏÍNOMŽ@ò{¹ää媳2ÓSS’âc££"ÂCUÁþ~>^žîtæ[Й/Ö×ÓÕ™™ÈGÌ?IšÿÛ#˜/ /LØ¡wx÷!üÀýã¸ûÚ¸ûTðC÷/÷Eb*ø-AðÛ98:»\róðòöõ - ŒŠ‰‹OL&àÏç…¿o`pxdt|bjzfIþ]<ù9ò߇ò?|ôDÿÞÞÓgDôãô³³Ÿ²Ÿ…?KÿÔ /ãh8ý=ò4“zöLíiî¡÷?¡Þàÿƒ,|:ñøøâßçDþ.ùË‹ ó³3Ó“ã£#Ã}½WòòósÕÙ™éi)I‰ñ±1Q‘á¡!ÁA~¾ÞžnŒÌ76T*dRùz óÏŸC23_7ÿ8n>$_0_˜°÷°ÃºÿÄý¤ûxðŽ?p¿ˆ ~<øm휜að{ùøú©BÂ""£câ ü™Ù9 ø›[ÚÚ;»º¯ôöõŒŽMLNÍÌÎ-€ä_É¿…%?Sþo1ùAô? £_#ýXöSö³ðgéOðOøOú0¯ÿ-àç#äAú/?£ÖÓØSÚ3¹g{Ïþ3 |ø@ü`âcâßc‰"‹Œü…¹Ù™©É‰±Ñ‘¡Á~H~Wg{[ —üŒ´”äÄø¸˜èÈð°UP€¿¯—‡û%Wg',óÍaæ*ä2"ó/^À3Ÿ0ÿwŸæŸ`˜ÿ±`¾0aïg‡sÿcÂýOH÷O÷±à§Ý'ƒ_B¿©¹üžÞ>~þP,„?¿ ¿£ëò•ž¾þ¡áѱñI"ù—@ò¯oÀägËÊ£ÿ{:úyé§íÇ»Ÿ‰?W–ÿä`Üæ`…:{Œgè×QêÙØ“Ú3¹'½§Ÿ þ|øPü¿`âÊ¿ºÄŸŸ›™žšèïë¹r¹«ƒ ¿¦º’M~$?’èïçãåéîæêâähogÃÉ|]˜ù˜ùŸF˜˜Š4ÿÁ|aÂÞÿÞéþG÷µp÷Oãîk ~cS3sK+"ø1ø}ýƒU¡áQþ$ü•Õ5uõM-­í—»{zû‡GFÇñ䟇ɿº’Ÿ#?Œþïþ £ÿ>ý,ú¹ö¿!ìGðçèÏðŸ8ô `\ž[pÀØßÑ/’?Á©Ç­§±Gµ§¹gô=ø(ø=$ÿ¯0ñ¡ø_ÿ‰-þÖ&y ˆEþøèÈðà@_oO÷åÎŽöÖ–¦Æzù©üXH~¨*80ÀÏÇÛÓÃí’‹³£ƒ•ùJ…\ -2_„eþy$ó1óOóOž<¡Å1ÿ#Á|aÂÞ×~u°ûTðSîÃÜ?yJ[ºÏ~üb<ø`ð[ZÛØÙ;BøÝ=¼ üAÁ!,øÕ¹yüµõ MÍ­m]Ýÿe·>«<Ï8Ž 0•Ä&l2^%R+%€ ÞÛÆ{ï…±ñ8^ÇÇãxã½m ‚mH -Iš(ŒHZHC™a(mÚ4MTµjÚJéßÐûº÷ýœç8¤PUÏõÒœç~Çç÷:2=3wôc ‹ÇQòŸ<õŽ#ùqôß`Ñ/Ñÿèÿ‚ÒÏíÿì—Âëÿ­FÌ¿ì?_>ÚМuíɯ°§eê‰õ{¦ý·D{)ïÕ¾ð‘÷þ# |žø×qâë‹ÿ.ˆÿÖ ùs3ÓG¦M˜èïíé²u´·¶45Zò òöòS’ããb¢##Âv‡øûúx{z¸ï´Ë|bþ–Í`þúõ8ó]œŸ“Ìç™o˜oœqOèþ÷]Ö®¥îo"îSø_U‚ßÝÓË‚?(àŠŽKHLNIsSKk{‡­«§·o`pxdl|b’zvîè±ù…Å ÿÛDþÓªürô#úoëÒ¯ÚÏŸ”¿¤?kÌ?ñŸ ]6Ò -èlãS?úŒ¾.Q/¬gØ+ÚîqÞKÞð à?Ô‚‰•&¾,þ"þ;o#ñß<±¸0ì(üɉñ±‘áÁ¾¥ÈÏÉÊLOCä'ÄÅFGE„ï  -ô÷óõæ™ÿš&ó±ù›6"ó×aóÁüÕ?È|}ãŒû/o)÷4îüÜýuë7@ðoÙªÿYðïÄÁïë£iYye†¿¡©¹µ­£³«»·¯ph„&ÿáé™Y”üó‹ÇAþSöò³èú¯ié¿ÿà¡j?Æì·Çô—ù—€.±š)øNYÝ¿'ÉŸ£ÏÿCµ^Æžj¯r½î•Àøàþý_ßãàßäàóÄ×ÿ8ÿ¹Ù™éÃ4òG†ûûz»»:;ÚZ››¬uµ–êªÊr-ùÉ„üÈð°Ð À?_/’ùÛu3Ì߀ÌžšÏ2_6ßÉ0ß8ãžì=®û"ø‘û.kŸWƒÿe -? þ×Pð»¢à÷ðòöñó -ÙðÇ'$%§êÀo©­ø[ÚÚ;mÝ=½ýCRòÏÌ!ù°ü'™üœùyôcú¯Hô~ûλ÷hö3ûÕðgå/ôWøÇþ“ @'@¬€²ò©¨Ë'}ùOþÜß…ô˜zn=`OÛžhÏê^É{á=ü{wïð¯øö‰š‰ -‹¿ˆÄ?:73}dŠEþÐ@oO·­³½­e)ò“âcc€üÝ!Áþ¾>Þˆü]n:™ÿÉ|dþzl¾‹ dþ–ù†ùÆ÷TÏ‘û+ºÿ¸O‚#þt‚û7¿'ƒ?àv¿ÙRSWßÐØÜÒÚÞa£É?<:6~`òà’VÈÿS!?~Lÿe™þ7o±ì¿ÙÏì§áñÿ’âOõ§üsÿñH @'€€ºò©¨Ë'}É#Ðcéõ¬ì)öRÜ#í1÷$ï…÷,ðo~ëÖÍ´ð¯øšÄ׊¿âÏN9˜¿™¿nÍ|‡æ¯0Ì7θ'á>_rßÜGÁ¿ÿfÝà}ÛW¿‚ß×Ï?àøã4ð—šÊ+ªÌÕ5µõÖÆ¦æÖ¶šüƒÃ#£ã&!ùg@þy*ÿIE~Bÿ'œþÏýW¯]—²_Óý\þ$ýÿ´þ±ÿx¤`#Àw@šùdÔ¥ãßü½Bý —žQϬ'ØsíqÝKÜó¾ÇÞ“À'à&À§‰ÏÄðOjÅ?4y`bltdxF~G[ksS£µ¾¶¦š_\ThG~4èïç‹È÷@ä»bò!ó_U33Ï|jþjf>!ß0ß8ãžò鸿\v¥ì>ß‚ÜGÁ¿I'øüü®n»Ü=<½}|ýƒBþ(þܼ|€¿ÄTVQi®¶ÔÖY!ùÛXò Œ!ùrùÍSù5Ñ/è¿Dé—²Ÿw¿þ¸üYú“ögü3ÿÉHÀV@^y tOþá_ùçô9ü6–^¦^žµ=ÖsÏò^õþµ«¿BàÿI_M|*þ<†Š?ŽÄP"ßZWk©6WV”™J€üü¼\-ùá»CC‚ü|}ùîˆ|”ù„ü%2ßEÊüURæ ó—ægÜS¹e:ðs÷$÷í‚ü2ü8øü;)üþZøSþl€¿ pqIiYye•ÙRSG“¿½ÓÖÕÓÛ7084<ª•A•_¡ÿcJ?²ÿаÿ&±_ÁŸéÏÚ_ã¿X2tè ([ lº|â£?Ógè£_3ê¿"ÔSë9öDûGD{Á½½÷(ðø¿°_%þ¼hüƒHü1$þ ¿§ËÖÙN#¿®Æb®ª,/+-)Þ_Xäggeè“ïÈßµÈG™¯/2ƒœùkXæ ó´æ/3Ì7θ'?ÔýÕÄ}5ø·Šà…?†ß à÷"ðcø#£cbãþŒ¬ìœÜ½ùûö•”šÊ!ùkhò·¶wtÚºí䟦òk£ŸÐÿ!вÿçÈþË(ûE÷_ûü±þ¸ý9ÿ’ÿ0xİC ¯þÉ?ü†}ý'Vôªô@=X/c/k/¸ï¯ ïià#ð/^À×$>vFˆ?ŠÄ@âwÛ:;Ú”È/7•–íßW¿77‡’Ÿ¨’ïÈ÷òÝùù@¾]æcó]ˆù« ó3î蹿B¸Oà÷Yð»,ü~W€ßÁïgjzFfvΞ½yû -‹ŠKL4ùkë­ MÍ-mHþ.$?—Ë£ŸÉ¯­~”ýçYö+ö_û%ü…þ,þê? ^<xè -ÐÇ@º¯íÿ$~þ}€¼ö&=Íz žZϰWµ—¸}/>ÿÜY»ÂÇâãÄÇâœÔŠßŽÄoj°Ö×ÒÈ7•î+ÈÛ»'';3#=U%?˜’ï ä»ròE濸d毒È_ÉÉ×3ÿYÿ0θÿÿû>÷µÁ¿FüEðkáßð{hàŠ‰KHLJIMËÈÌÊÙ“›—_P(’ßR[WomljnUäÁò£è§ò³£ÿ} ²ÿ#”ýÜþK—?ü¯ðWôÇí/ñÏ€-ž¼tèHc ßíÿô¥ø=}€¼ö;;é™õ {¬=‹{ÁýÈ{Þ÷Ràcðßãà‹Äñ!ñ±ø#Lü.$~¿ÑZ¯D~aA~^îžœ¬ÌŒ´Ô”¤Ä„¸Ø˜¨Èˆ0;òwØ‘3‹N毱Ï|Ã|ãŒ{ö§ãþrÖ}‡Áá÷üÛ¶«ð!øÃüñ‰IÉ©ié™YÙ9¹RòWT™«kü T~È߇å#òv@?dÿýŠý4ü?…ð'åð§ú3þ‰ÿtØà À@V€î€4òýÞþO_ˆß“ïÉ[¿‘¤'Y/¬giϵgÜ‹¼çÞ³Àðö®.øGˆø(ñUñ[‘ø HüšjsU…ù¹9ÙYéi©ÉI‰ñ‚ü F¾‡=ù4ó_€Ìߤ›ùó¸ùË ó3îÞã¸Oà_å8ø·@ðSø_!ðCðcøÝ1ü¾ þðȨ蘸ø„¤ä”ÔôŒÌlžüÅ¥¦²ŠÊ*³Éom›¿¯ŸÈO¢Ë/Ñìúyöû?üèüù /~ü à‰àÏõ¿JÚñ/ûO€l¼| Ä,uü§ôSü.z=HO¨çÖcìqÛ3í ÷,ï/^8Oúy/ƒÿæ ð'°øƒý ¾Mßb®ª¬(3•óÈÏÎÌHOMINJˆ‹‰ŽŠ GäkÈß¾íuF>Íü—^„Ìßì0óW1òô}™o˜oœqOõ–éÀ¿‚ÿÒQð;Cðø7!ø·ü/SøYð«ðû!øƒþl|BbRŠHþü}…û‹KJMåHþjU~–G?•J¥gÿIœýÔ~ÔýgΞcáÏËŸê/óÏòŸž¶dè°)`÷@çäg‘'îRæ1ôTzB=±—=ÅžiϹ'yîìÒ÷<ð1øÇøÚÄñÿÍ~=gYŸaE‹RJHÈ›=Ȧì­,µà:‚ì [ l D -HYTpDEÅ 7t­È¦¶¶´ÓNÇ:Óô 3íøGõ¾®û¾Ï’ç}’0„ôwŸæù½‡Ÿë›W)þ ˆÌÅö™½{úvõöìÐÈß$‘ß¹vÍêU+„ü§„üÅ a–|É|?ÉÈGæ7T*)òK2?š/Þ0»r÷Kƒÿ¾±55ãj þFÀßZÿCsçþEÿâ%ÿÒeËW¬\µÆ’¿K’ÛŽ=½»Eþ}YùOP~Fÿ™tôƒ~±_éO²ßìÿãõ?yøèCÓ?Ç¿øŸ þð àpl~kP~áÛô-ç?æ< ÒëYö†=´ÿ»joÜkÞ[ß‹÷ ü« üPø™Ä[ŸâŸ<ÿ‹¿»·gçŽmù]Iä¯X¾l©¿ä/"ùóæ¦È×Ì'ù­$_2üøºÚÚq55 ¿<óïH“Ío\û·gÜ0øëÆ×øÛªÀ?Ÿð?ò¨ÀÿÄ“*ù7JòwKòïìÙ••ÿ(åGô«üoæègö ýÌ~·ÝÿûïþÀð'þ,×?Ë¿ø¯` € Àp¸œŸ¿ÿ\úïö„ï¡<˜ЋôJ½[ϲö‰öV÷{É{ë{zÏÀWð?ý$ ¾&þkL|Šìhhü}—ˆ¿]Äßܵ1ùK%ò…üG!ùó«ßFò%óëëI>3ÿgCÉüÛ#ùñâ +þ; ~…¿"ð7þö,ü3~I~ÀÿØã¿'ÿj$ÿzIþÍ[¶BþÞDþƒ”ÑOùOЯÙÿYÆþ+b¿†?ñgùÿø›þú¯` € ° Ðà Øèý»ä’¯ôʃy8èEúõ´Þ°Wí÷Æ}È{ñþŠ{¯^?>ÿ%&>Å?t04>Åß¶UÄß´q}6òŸX"‘/äKä;ù3gdÈo'ù’ùÉüº:#æƒü¢Ìïo~Ìüxñ†Ñ•»_ümmÝø üü–üþ_-üIò¯”äïè”äù»Sò?Cùý”ÿÅBú-û³öu鲆¿ãÿðWýÿ¬ú¯€ÀØè -pt ôþUzá3}Å_€ò`þøm—^©O¬ö®ýuhϺWî%ïÅû‹Þ÷ üsøýÁgâgâSü}ýÄßñ׬^ÉÈŠ‘/ä#ò|übòÇ“ü%¿4ó祥ùÑüxñ†Á¹?@ð'ðMÁß ð7§‹ß“’ßáGò/¶äz¹$¿È¿ŽòoQù{T~D?å?R…~ËþŒý‚ÿ—Yü¿ùöwªŠúï  à€Ðàp ôþYzá3}ÅàO©ó -}–zZ¯Ø«öŒûo¾¾æÜKÞ‹÷Ÿ{ßBï-ð‹À?¦â#ñUü^¿›â¯_ñW­¤øˆüÅŒ|#‘oäO’'¿AɯùcSä&ó£ùñâ ËZðßíÁ¯ÿØšqÕàŸœß“‘'¿Èäù;:×¥›¿ѯò¨J¿e°ÿœØ/ø_ðwü/]¾ôOñOÿ}t0ØŒ€ÎvÀ¦àF؃â ßÜÐ7|þ½1/Î+ôYêi½bŸÒþÊåKνå½÷ý‡ôÞ¿ -øU|$~oºñ×¯ë¤ø+–»øˆüEIä§ÈŸ<© -ùã@þ}Fþ=üÂÌÉo¸ßP‚ÿ.¸?&üÅð·þIÅð/tù5ù³òoéòï)¡ß²Ÿö³û?û-ü½üûåEÕŸíoüÓÿÐð à -`l l ì¾Ï_êoöõßøô¯¦¼0oЫô õ´þ›¯¡ý´½i¯u¯ÜKÞ‡¾§÷øUÁßëâKâñ;T|D~aùmÕÈ™?æß3?^¼[ùp¿0øKào -ðO ðÉoÉ_ ÿÖé·ìöKøŸµðWü¡ÿÓ?áŸþsø€.&@ÿ ÐÐ!àðþ2ÀùwúŠ?p]™Wç!=«>P5Á>há³ó9îÅûwØ÷ôÞ¿üíiñ×&â#ò ÅäOùžù£Ë2?š/Þ-pC þ»5øsð×eàoü÷ü%ÉŸ–mGgùóôköÓ~vÿ›gÞ²ð×òÿèãsA¶¿ñoþstt8XÌ€-·ÀïzÿKýU?'ñ0žAoÎ ô"ý5HOêÍz`ÿ°ÚŸûø£À=ò^¼#xo_~?ñ‘ø9ñù?ùFþý ¿µœü{ù1óãÅ7øàWøÇÂ_Ûþ „ß’æ¬AÉ_ý™ê·ìÝ/áÿºâÿ6Ëÿ½³ï3ýMçŸþsø€,€N€V€;`Sð­ïAõó¯ôß_£òæ|>Pÿy‚½µýG~øÁûïŸ}Oë^ó^¼•}Oï-ðC5ñs‘¯ä‹ø$BŠüJ ùcŠÈæÇ‹w ßàƒ´uø+ -‹Àßø5ù§¥“pògègö+ýšý¡û%üOeð‡þïšþÎðŸà € Ðÿ¸Ü]ƒp×Ò—þÃUý–ï`ü%üÔEw^ wé…z·Þ±gÛ3îsÜ‹÷/…¾·ÀOÀï˃?8ñ=ò§iäƒüv!¿EÈoü»IþèH~¼x#èü?ñàþƦfIþ6Iþû™üS-ùƒüóûË_ý ý}F¿f¿w*üÿÓ¯¿ôÿgøï  € À -pt ¸z__øûEýžO¿På…y8¯ÐSzRïÖ;öÐþŒi¸GÞ‹÷Ï£ïé½¾¿{W~qâçÅ‘?s†FþTF¾ß&ä7’ü˜ùñâÄ»íÇ„¿¾Ò Éß*É?!Iþ5ù]þùsÑ_@?³ï3‰ýè~ Å_ÊÿåS¯˜þàÿLàù/à  €À -`8¶¶ÕÎ?¹ /ΫñPÌ‹ó -=¥êƒõ{¶=´åÔËZ÷©¼÷¾×À'ø½=Åàg¿P|FþƒIä ù­B~SScCC¥>’/ÞÿïÂ?*ÿNƒôà—äo—䟈äŸÂä§üsúÉ¢ÙÓ©èwúÅ~¡_³?Ø¿_ìÏà/åÿ≓¦?øÍùÿmð@'ÀG€3€Ð)à}Zzö‘>Ác /Ê'Î ô"=³þí·h½bZ±7íOžxQë^¸·¼}Ÿ -|‚¿9€Ÿ$¾‹ðsâ3ò§OCäOAä ùíB~ËÈÝŸüQEäGóãÅ»o(Á?ü¿RihlljÎ%ùç«üýOzô;ýZý©ìöïû5üÿß9zôØqÓŸíïü‹ÿ6¾2º\̇À¶@ç ôì3}sV‘7æ úDzP/Ög°7í;ªu¯Ü#ïÅû=Á{~7?¾'¾‰/à÷:ÄÏE~sSccC¥ñA~Í`È™/Þˆ½~È_W”ü"ÿd‘ÿÈ?#%ÿ<ÈoÑÿ¸E†þÐÏì‡ýÛÜþ]»û,üÿCÏfú[û+ÿæ?À@&@7€+€ÀèðÞàì3}„çoáwȼAïÒ+õb½cÿ°7í?wèÐÁä^ò^¼ïï{Ý{~à¯Í€o‰¯â?üKÞÜœø˜øE‘_‡Èˆü|æ’Íï–¾2÷‡?ä¯Ï&‘ü³!?¢A:úûѲßíG÷ïØÙð—òß÷ìþ´þοùÏàèèp0Ø‚7lÊÏ>ä#ÿa$þ<$¾ˆ?+'þÄ”øŒüŠF~­‰3äGóãÅ™Wp¿þjÉßÔÜÒÒÚÖÖ>A埜“_¢®G?èÔ«_ì_ŠìOÙîß°q“†?ñß¾cçΞޠ¿óüçptt¸˜ì€NÁI›ƒò³ùÏ<‚^è]z£Ö;öÖö¦=ë^ó~s×&ñ~½z/¿Ê_À2>¾'¾ˆ?SÄŸ–B{[[kK įù¥ä§ÍäÇ‹7òï¶›†ÿ§€ÿ^‡?•üUåŸ*òOùgΚ]@?ª_²ÿ Ë~±…Ú¿fm‡†¿ã¿¥{«¥?Ú_ùÏøÏÐ Ð à -`°:ÇmÊÏ>ä#<òGð{t^ wéI½[ïØgµwî%ï×uvhß›÷øþã¥À—ÄŸk‰/âÏPñ§–ˆŸDþXü{!þÍ’Íoä]™ûƒ…?›ü¿ò7ɯÑ/ôÏ™óó_ýó²ô'Ù¯öK÷¯\µšáïøoÜÔ¥ú[ûþÍ€,€L€nF+€Àè¶9(?ûðÈÄïÑùÿ±_¯ÏYUWÇ[ic 々$’H ‘›‚¥¨#تµ—7:Îèt¦Óñÿݳ.{ïµöåìs‚á Éïû¶çœ'¥3Ÿßª@?HÏÔGë{ÒþßFûÄýpÞûÍ_¢÷æÀÿìÉcþ]8ñoýagkkó†ÿýLüxäÏ!ÿ ÈGè45zð×áùþüäò_%ùW£ükëÞ¸±¹µus[ŽþÛwv#ýzõ?úäÓhÿ³`ÿWÏ_ðáïðýÿÑþ?ÃÈ„ àà%øE× “>ù ¿ö?Až”ÿ/}—¡géõb}Â>hÿ¿ÿM¯{æþÏ_¿xñü+öþsñ^üO?yäÀÿhoמø,þÆÆúšÿ½L|{ä ù"~—ü7@>B§§¹ðwN~’ŸO~¹ùWIþk*8ú«ôßðPÎþÇO> wÿç_|©‡¿âÿͷ߉þÿì?À°2²¼4´²2ýôY~Œÿ}éçà¼@?HÏÔ«õ{Ñž{½îõ¼7ÞÇÿáƒûUðIüÍM=ñ×®_#ñWE|"_ÄïùsȇùüæÀ¶„?üËîäÏ俾¶žŽþ›Û;Žþý»ßã³?ØÏw?þÿ Æ?ûÏ @@#@+@3ÀCð“ŽÁ„ôi~“'å‰ùÁy~>P¯Ö'ìƒö½\÷Äý³?=Õû>x?ø÷>>8¸»¿ÿÑ^ ~:ñ¯Ñ‰ŸÄ7GþrqäòÏ‚|„PÑøýÉ®}ò;ù¯ù‰þëtô¯ÓÑŸÑgwoèç³?ÙÅ_ô¯ðÏþóÈÈÐÐÐ -Ð ðü cûÑçþ3}žß%äIyb~p^ ¤Ô³õ9ö¢½ãžÏûtß§o÷ÎÛ·ü‹À×ÿ:ø"~?¿<òÏ•G>ÈGÅ~;þÆÉïå·Gÿûáè_££?Ò¿Môß"ú½ý÷É~ÁÿIÀ¿Ð_ùgÿ‡0 6€F€g€v@§@úW»ô¼D¯ò¤<1?8/Ћôõl}ÄÞkŸq½? ïõÀWð· øñÄÿ 8ñUüK$~óÈù¡ñ:ðŸñð×NþRþxô_µG¿£Sèg´ßþáòwúGþƒÿÃȤ 6à{žÞ҇ùMBž”'æÉy^¤¨OÖGì“ö÷™÷·åÀß&ï ð ñWzâÇ#ßfœ|˜Ðim:üõ“¿'Iÿz ¿b¿Å¿¢¿òÏ×ÿàÿ0²ihhxh¾Ó-¾o•ù«¼C¯ò¤<1OÎЋôB=[Ï—½bïµ÷ÜÞðï+àwÅoù !Ô­ÿþ)'¿È¿Lò_ùÍÑŸÓ_Ú?‚¿ê¯üÿeÒÐÐÐð èèLHŸfâ¿æ¯<æÉy‚~^¨Öóe¯Ø³ömîsï+à›ŸÅ¿Lâ/'ñ§ù¿ËÄù¡²ðç'¿“_è·òóÑߦ¿a¿Ã_õOüóõ?ø¯0,€Nm­€Lö¼yJ^cã yRžèIz¡~°>Ã^µwÜx_ŸO|'þR¸ñ“ø­#ä#„¦ÖƒìäOò_tò;ú¯ô›³ßØŸã¯úóíøÿethÂð -èÈľ¨fŸ—žÉž*ó¤¯Gé…z±ž/û{¾íU{½î#÷Æ{wà‚IOü¥xâñÇŽ|šØøÝÉoä¿`äô¯ýïúßúõì÷ö{üþñ_ -M€Ì€ nAìi%÷€¾$_x,ʳó½J/w½XÏ—ý€½ÓÞsï½þ*yŸ¿¢à÷Äoù !4«&ü£'¿•ÿ¼•¿ ?]ýéì·ö×ðú ÿ»Ê]€0´¼:a b+¹ô-6þí:OЫôr×Gëìö;¤}ƽõ>øðUüó³Åù¡éå`´Nþ¾ü9ý—-ýæìOöWðgýoªþ‰ñß.Om€¬Í÷Àõ°š{$¼È_¹ÇhŸsï¼çÿ -y__Oü¦øgøý#ä#„zµá¯ümù ýæèô‹ýW3û=þ¢¿ÜþÂòŸ ,@˜™°a ú…Çôõ}UžÒëYOÔËe/Ø[í7HûȽ÷>ø=ð/ð§ŠòB‡l2üUùsúß¶ô÷ìÏðOú'þÕZ€8¼²<q -bûÕÜ#áEþ -+Ï=C¤'êÕú„½h_rßö>ÿN~S|:¢%¿?úýýîì·ö;üsý•½þÉÿ0idxâ¤5èŸà¯1óìü6ÿ˜Ro¬OØçÚGî÷5ðßÎÀ˃ñB¯¢ ðÊŸýþâìWûþéô'ý•ëø?2¼2¼i vÌ ´rO†×åcÌ<;¿É?f¨'ë öª}:î÷é¾Wï—ÅûþÅüâÄÏÅù¡#©¥+ÿï“üÅÑí_Jg¿ÚYì÷øëénÿÀôŸÀL€Ž€¬@‚ÐͱܓáuQþ†|y#H©'ëöæ¶×ãÞp_÷~)yŸÄOà¿Yžø“Äù¡—nþBþ‘£Ÿé¯ýÁ~søüƒþáøþÇà ÐHKð¡„FîÉø¾~O>¡gé™úpÙìƒö–ûá>xŸøì}:ñ ø}ñqä#„ެ±“¿%þâìö[ükúÇë_üçH   #† ´ÞË?¿"è“ôL=[±¯i_pï¼¾=ñ-øóÄù¡_¹iò·~¡?;û£ýmü£þÌò_À,€n@œ43J¯~¾¶š OÒë{§½ã>ž÷Þût໿>ÄG- ’›)ò;úó³?Ù?ëŸø7þËÈ„ 0CíA3ÿxüŠ~õª^¤êÙzÆÞkŸ¸ç}îý[¹÷‡ä#„Ž´qù{ô—gnÂ?éoø7þëè褰[0=ûrü¢þ‚•^¨ëû\ûÄ}ÝûùàC|„ЂªèÓ‘?Ð_9û­ý9þ…þ¿€8ºqò1˜’5|ðÝð +õ—û\û‚ûŠ÷o:ï#øÓÅù¡WXOþ>ý5û-þþŽõ?[€¸iüLÊ¿¿~ÂK¯Ö[ì­öŽûš÷SÁ‡ø¡cÒ ùý£ö×ð··à_ýO 7 ­@>SÊÞß¼”~çK}À¾¢½ç¾ç½â#„Žq5”æÐŸÙ_Å?ã?ø N€¿sʾ‘>žK¬Wì3í3îsï >ÈGƒúò[úGìÏñúGþƒÿaÒ¤ p3·\Ô|Ô|oÉüÌEOý…ø§eÚçÜw¼÷à×Å_ôÿÎ!”špô7èOöøGý#ÿÉÿ8qüäK0µüæëñõÑúˆ}Ô¾äÞx?|ˆ:†Õ½ÊèoÙ_Á?éŸøOþÛ0àg /7Ý©že?iê¼ùΕØGíëÜxßâ#„Žsóéwöü“þ†ã¿€l*S0½ò;þ‡ õÆú„½ÑÞqï¼ø¡Tƒ°œ~oË¿õß@±£kЪõ ÿC–zcýY÷'·¹Ï½oñB¯WSéÏì÷ø{ýÿnŠ è¯A_÷*ó^úÌz}Î}á=ÀG´Z¬•öã_úï Ü€þôuo8_P_`ßç¾é=ÀG½þ5…«ØŸã_ê_ú_NÀ”5˜¢ûôê ìkÜ·½ø¡“T»šýþuÿë0>“j|µ&} û*÷#Þ|„ÐÉlĽ:þ5ý[þ®À!ù¡ê_Výï0Æ=ÀGüF¬ãßò¿3Y˜ûjëOh`ßáÞ#„NSã ¶ñ€ÃÍÀ|äÇ©ïsðB§µžŽãú÷àW®÷Çtµ‡÷!ô›)øwõ?‚˜þ“´÷!”5ÎyþuÿàEÿ»"„бn¢¥‹€Þ¢ÿ%Bèuj¯G;sÿhB/Ñlt_nÿk‹þ‡B¡ÖKø„-ú_!„N~‹–Ö#„ÐÂô!tªò!„B!„B!„B!„B!„B!„BèÕõzÑm -endstream endobj 42 0 obj <> endobj 81 0 obj <> endobj 83 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 CS 0.729 0.729 0.729 SCN -1.351 w 10 M 0 j 0 J []0 d -/GS0 gs -q 1 0 0 1 262.472 35.6399 cm -0 0 m --162.11 0 l --197.855 0 -226.833 28.977 -226.833 64.723 c --226.833 226.833 l --226.833 262.578 -197.855 291.555 -162.11 291.555 c -0 291.555 l -35.746 291.555 64.723 262.578 64.723 226.833 c -64.723 64.723 l -64.723 28.977 35.746 0 0 0 c -h -S -Q - -endstream endobj 210 0 obj <> endobj 82 0 obj <> endobj 211 0 obj <> endobj 212 0 obj [1.0] endobj 213 0 obj <>/XObject<>>>/Subtype/Form>>stream -q -0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /GS0 gs -0 TL/Fm0 Do -Q - -endstream endobj 214 0 obj <> endobj 215 0 obj <>/ProcSet[/PDF/ImageB]/XObject<>>>/Subtype/Form>>stream -q -/GS0 gs -297.1199934 0 0 297.1199934 32.8574219 32.8570574 cm -/Im0 Do -Q - -endstream endobj 216 0 obj <> endobj 217 0 obj <>/Filter/FlateDecode/Height 1857/Intent/RelativeColorimetric/Length 26176/Name/X/Subtype/Image/Type/XObject/Width 1857>>stream -H‰ì×K“ÚØÆñÙŽäMPÑHâ¶i5U„„$Ðè~— -éjøÐ\ Íõ@·Ã¹.²$ -ƒ ð½ãÞYÙ¶em•ŠRxch:Ey¤Ì©7MªM7ˆâ$I^“ýJê/öóå'Rfqø¾wȧÇuÅiQ³¥»áäóûº®š-X‘¦I‡—*ÕÕÙ¸O=Ê]ûÚøVÍt•¹¾¤áü²‚¶ó|¦ÓÊ}»_™†ö4õQœð#4EÚ+¬GWÛc±ý¼¢‘p,cŽ…«ãi8ÓÌ5ÛΗð¬)<›ítlCUF25'–~,Ö£òPißöA›¢çæqßÞO륪 ÅÎÏ×þN¸S|w ¨KÏ(-šédG“º3ôkK§žÜ0p=¼ Ê#e®[ë½Æ»©Î,EË< ÝýÊxšºQøÁšô\Ø;7LòнëèaWfmw.µf;q*àpž<šiK{óìGÉKŠVtcùǽ˜D<õá‡á»ý6=㬬ڣX¤4ž[ÛPi;qàÖP‹öÇ3u¹Ú{mŠ’ªÌ³È?¬éÑ?xÀ“¾;N‡3­MϲªO§šÆ3òŽȩCÝ 7‹î¯¨½94+Z²­ò$òö¢C±óóµ?Þ0®;˜Rz=àNìýFGÞoêl,÷:O¸u4¢ýfE·n@@pªË<ö÷+ãiÚïâƒïëö§ªµ=^Î\[žûµ©ÍFÂ^ZÑ¡B5pðãŒî³ó¹.³Ø?n-uÚ¸k¼1œ0`ëé†iѬ'¶ÀÝšš2’ðb€Wˆ¤ÑL³v^”U]×U™§¡Kª p«Á_†¨=Ͷ=+v̲ØÛ¯–óIÇ ^1¾;P4Óyö£”n·Š64 Ý¥)èPø+4íÙ¬gV”e™gq{¾†Rë ¯×mBts bºã؆¦ÝqèPøV\—µçåd•EÆg«¥:ÅÉ€·ƒg7Ýrµwô(ëº*Ò¦¦èPø³>µgœåe‘§qpܘª2’p¦àái¨¨æÎÒK‡†î -JÛžízEžÅþóÆœOú8LðFqÝ¢Ù;êмÙФéPe€f€ÿkOÍÚÃv=SZOÇ õ°žð–± ¥tø´¡iäíšņÂWáʼnjÑJò¢¼¬çrþˆõ€{@¡hÖŽ]e]WEÊ:Tˆï®ýapó8¡?Ó7Göü*Ëí ÷‡:tÊ:4J‹ª®è&ŒÜ1C†Âjâsç'Í¡Éÿyƒö€;Ôt¨½k7”:4ñ÷¶6qÂF¦Ï¢®ë" ´žhO¸SÔ¡ŠjÒ†fe}ªË,v·ú/Ã.®Dø6>½$¿¼¶v–Šõ€»Æ6T³~RT§SÝfèDzwíÏ‚›Â ýK|V´žiènte€õ€»Ç? gºãFyIZæ‘·5fƒ.wíÏ‚[Á‹sŠÏ¸‰Ï<ñv–6ñÆ`xqB¤eÍ64¥ U'=L(^š.œ6>kŠÏ£³Pð¼øŒïR†n]ª 6¡YänS‘¿öWÁµ½“}CÇ¢¬ª2Oü5D|üJ&C ÊЪˆÝ>íaBïG¯*cë'Ÿ‹Ï®  €ßc&õF”—õ©ÊªPº0¹k\ß›¨Ö¾Ï<ñv–:A|üWïÄ©¶¢ -Ù­¹tk>ŠhŽ;ċӽ¥²²ªÊExÜ®7Yl¼&>‹4|v4Ä'À×à%E߃„ò£ÌoKŠ -½#4Ÿ›ÏúT‰¿7ç=Ì'À×áÿÉ~½î6ŠeQþm°qI£ -Ð=3Œor:¾lò…›Ã¹ êýŸepU÷¨g4­©JœÇYß,#í½—ÑŸ:ç*ªó mV¨‰úA(wýÙ6ÌÏë““$XÿþY‘ àQþöëxüQCÐB?ŠÖ=ÝN„ Ë à™ÚæhéÿÇ -Å,½qçõ¹Þ'yÉX™ÇÁj„õ ð,ª1<·P*ª¦ŽÄ>ZèmSîìGwŸŠ¢È’£·šøn€çj›Ã…f%œæßV(*ÉjÖçÔÝEi–7ÛÓwf}|5À‹¨ú`¾Þ'å¼Ì#´Ð¥Üõ§ëóúÌÒh¿ž ý¬ÈŽðÿ1^q^2ö½…š¨&7FÑû³Í>>×gà>Ú:~à2Ts´ôã¼i¡Í - ÐBo‹ªçÛcšåYÎoö~àrTs¸ø}…q°B ½ª>XxቒÅ;÷±‡õ paÍ -]ç*Ø·Šz ZzsEyÉ(Iî#Ú'Àk8·Ð &¬ª8I‚å@Wd'‚Ò¬™åLœ"ofëXŸ¯C5G«ý‰ŠºâEäͬŽì@ðª9v9• ÙÁa}¼¢ö/7ÌYU73÷èŒÍ¶ì@ð\Š1\IÉ«¦~ž¯!Mv €§õ~\0!8I‚åµå}jéý…åÍ?²"]‘àæ©Æ°Y¡9eœ±¿šX¡ïOÇšnìlþ0ýåÐÀ¼…f….ý(/ùyüž[hKv"ø)Š1v)aŒæN €·ÔnZ¨åLÖ´ÐY¯+;ü8E,ü¸ ŒIsþmÙ>”¦…®vi)êŠåáf‚ó^´îú³m˜•Œ’ôàŒL¬O€·Ö6'ë0gU]Ñl¿êŠì@ð:÷ÓÍñD(%§ãfz¯ÉÎð!u{s?&¼®‰½™Õ‘þŸ–>|Ú§¥enfý;=r(Æp$¥¨ÍŽÎØÀ<¾nkæEyÉhûó¾®ÊÎð©æèi*…à$ æ=MvøkŠ1v'B)IÎÈhËÎðÁµ™¸ÇŒrNóp=11–¯T뮿ðãœÒ2 ·3 §€|ZoîǼLw«¡®ÈÎÿCÇšnìdeûó>> à*(úp¤„ ^4ӹוþ›bŒœÃ‰0FÒ½32TÙyàwª1Y‡9¯*–‡ë‰~s]´ÞÜO -Æhm§–&;üI·7ÒRT‚¦»¹zEcì3ÊÏõs5ÐqÝ\Å<—PVU¼ˆ6cúZ4õ3Hã4 ·_P?®Ö›y1UEO»%JèuøV?ósýLüÅàw À5RôáÓ>cUÍISB kùÎõ3%¼©ŸGgdª²ãÀ_hÿ2ÙD„W¢)¡s”PÙþ\?g¾àšuíåîD«Š!J¨dçú™”ßê§;ÖQ?®›bNÖQñ½„.PBåù^?çMýœ÷ð×Oûw PB¥Ñ¬¹ŸoõÓáÞÕœlþ(¡s”PZúÈ=f”3’3K“~P%TªöýÔ‹ ;×Ow¬«²ãÀSÌñú\B«¦„.zh@oK³WûSÉšúéÏ{]Ùià§hörbU-ŠÐ`ˆ¿¡–>rܲ¦~:#C‘~’jN6uEobª²ã|íû©”6õsfi²ÓÀ3t›š±ºæÙnaud§ù 4{µ;Zfáz¬ãlxŸTóa›”U-ŠÈ|’æ#hé#÷˜•”¤»•Ý•ž­;pÃBÔM¼S‘ææµï§^TPšG›ÇûŽì4ðš5ße¼®y¾_ö4Ùin\Ç^îRBËìø4Ôq®¼oŠùॴþ*H躲ÓܲÖÝÈ9f%%énaá¥Þ¿îÀˆ¨+šxS•æfµï§Û(§emÿÙ‘.@ë-÷«+–5Õ£ýuhöj—J²£3ºSd§€‹PÌÉ6)«Z‘3ø$;Í-jé#÷˜•´HwK»+; \Lwà†…¨+šx&úÑ¥µïg~\PšG›ÇûŽì4pAš5ße¼®y¾[Xñ—Õ±WûSÉÊìø4ÐqžÜÅ|ðRZ}$túšì47E8aÁX™î–VWv¸¸îÀˆøZÑx3ü$;ÌíPŒñ&&œ—‰7ýÒ‘^Ö[îs^×,õŒ–ì47¢cÍý´äœD›±®ÈN¯B1¶)­kžífÊÒ%tì§CF+BwЕ^Mw¸Iʪæùѱ±A_Në»aÁ8ÍO¶&; ¼¢nß Q 9}4¦—êÖ1á¼Lü™…{à¶µ{‹}Æ*QÆë:Ó‹(Æd›”œ“ÈŠì4ðÊT³ûTˆ2YO0ö_ }? RÊY>Ù]Ùaà |®#Ây™s«-;̻ձW‡Œqší—–&; ¼ Í~:æ”Óüðdcö?OÇv‚sšúÓ/Ùaàt¬y–œ“Èícƒ>G³?#"D™lƺ"; ü‹ýz[jYÃ0|lÅ’r4vN‚…$pyUÀ€,ã2¶µA›nµ\äþ¯e²­©Y+0:–Þç ->éäíÿÍÃq”ˆ}’È·u9@–·ï§zü}ïuo¼)Û,¨Lç'ô™zƒq—JUqèYºÇÞ˜í…qµ/h¶˜ ßésPúGg×IYËrK? ‹ÌÇ‚îê|uáôu9 æñå*«duw¸¦î1 ,7Ø”j§ŠMÀ%õd¦¬óJ”Éâ|D? ›úÎÅ*¯wˆ#<éÎ6…Åvv:4thòîÃd‘Õ»LCßÖ=æ ìû¹-¤Ì7WÇü0è²÷'󴾿—)7èS<ô³Ü÷s}éXº·´²ü¯åýµŸúÉsºî{A¹AÅúÞÏ¿ -`ùQZï¸AÉòBú øá¡ r·“IDAÿ·Þ`ÅôðË‹Ñ4"O††î1¨þèl‘TRÜÝÒOÀ7–Æ•R"[N¾î1¤þñåíU¶º8¢Ÿ€oL7XRÉb¸–î1 ó8ز®’ŧ¼0?˜Ît™ ¥ª8ô(èßíßÛ²®«8:ºÇþ(Æp2OEÓÈ$¢ cº³mõø¸ðmÝ[ÛR¹ÛÉ4ò)èÏöýŒ«F‰8äiø¶¦òþ¾Nçô'_úÙˆ$¢Ÿ€dîoÐú¡ Ü ?ÐOÀ/ÙÞׂrƒ~C?O`ùó¬þü¹Î(è?úÉü¶¿¿A?sƒ~E?OôíMIý<Ã÷4òºþq°¥Ÿ€'z¼Aï jêÞ¢ý<Ëã z/“ÐírA{£ËM©ý<Õ—t'ãÀ1toÑgpv[Ôýôè'àinP¹kªÍôƒî)ÚXãŬ«˜~žÎz,¨*–[÷M,/JľŸ!ý<ƒí…‰hd6÷»YPÓ ãJÒOÀs™þ<J$‘gꞢé楬’ȧŸ€ç±ýy&÷ ;xƒ~é§È§ÝûvÀKÙ“e¡š.Þ _ú)ïVŸº§Ðpº®šL»vƒ~íg~{ñÑнp€ 'ˆÅî^¦ÝºA¿õs}yÔ×½pún˜È‡‚†ž¥{Ë›é›â±Ÿ£.=¯Éò¢´¾¿—Iävåë]®é'à…¾4pÞéÞò6g«\ÐOÀ YþCAwbsñA÷”7a¯³JÐOÀK=t×”«ÿ¼×=å ˜^˜T¢Ø\:ôð2–?ßTå‹K÷”ßÎtgq)Ëíý¼Ø¾ Y½«³¹ßö‚>ö³®’ÙqÛ¿ðì“E®v2¼vßeý}?+%ï§¶î)€V°'«¢idºm.¨1ºÚVJ•·çCÝS-1¼ØTM#âÀ1tOù}†çë²iªm0jñGÞÔ;'ˆ÷­ÖÓögöd™«ý#!tMÝS­ÑwÃD4ªXŽ-ÝS~Ë¿Îj%’УŸ€×cyû‚*™E~; jzQ*•L#¯ßÐÅô£Tì/´¨•šé~yÌ[ú>ècûóLª*™¹í+¨áÛJÕùÍø½î)€Ö±'ËB5Õ6õtOymÃéºTª¸=è^h¡}fª}A7çt/yeÖø&¯Uµ½<2tO´á±hT±œØº§¼*ÓŸgR‰8pLÝS­ÔwônÔݵoéžòŠúî,LC·M_ø“X'×wjW§¡×ž[­7ºÚVªÎoNmÝS­eO–EÓˆ8pzº§¼–Áùm©T¹>ê^h±átS5Mµ>è^òJ¬Ó›»ZUÛÀ1tO´˜1 -bÑÔùblëžò*ún˜ˆZÄ¡kêžhµ}qR¡d:÷úº§¼‚ÞèjSÖ"û–î)€–³ü(“ªŠÇÐ=ååþ:[åRd‹±­{  õ¬É²¨Uµ™u/y1óô:2_ t/tÀpº®”*–“C?Ûúî,®d±¹<2tOt€áÌÙÔÙÜ3uOy‘ÞèrSÈ2œÃþÀ¡0½yV7"ž9=ÝS^bp¶Êe•Í}[÷@GØ“e^«r}>нä¬ÓE&D¾útÈ8,ƒóu©ê|1>Üã­ï†q%‹ÍåÈÐ=Ð='ˆ…’éÜëëžò/õFW›RVñÌ5uOtˆéF©T" œ½ßg«\ŠìúÔÖ½Ð)Öø¦PªÚL‡º—ü+Öxq'd¾úô—î%€ŽN7•RÅr|ˆ'\ß “J›‹†î)€Ž1œY"›:›{¦î)ÏÖ]ÅU]ÅsxÛ‡ÎôæY­Ä¾B=ÝSžkp¾.kyw}bë^è {²ÌkU®Ïº—<“uz“×uy{6Ô½ÐI‡œÚr§–î%Ïb‡©T"™9†î)€Nê9A\Õ%êéžòÃé¦RõÝâä°ºhÓ SQëó¡î%Ï`o -¥ÊõÙ@÷@gíc”K™ßŒç˜3ŽÃT6"¾:2tOt×pº.k‘„NO÷’§N7•’Y蚺—:ÌpÂDÔåú| {ÉYãe¡T~sjë^‚ÿ²_oËikY†sk ã‹”‘Hœê€AP®lF „NkI*òþÏÒäл“Ž“8;[Z8þ¿˜cÜÍð¬Õ{Î^ˆý}¯®ºÉ£hí©/³Äµ›ª›ž9ÃÞÄ2ñ¦­3ÕMôÝ4þ´­©nxæ´ÖÄKdìMÕM¡Þ_FY.ûª›ž½óž -:ýºê&?¥µ§Èwh¨nÀ s¸‰¥ð¦í3ÕM~Æ´Ý$þ¤¥«nÀ ­5õRoN~×ÕûË(“¡Ó««nÀQ½çì¥'þ˜´öÔYâÚ¦ê&|dÚn,SoÚÒT7ù‘cË$þ´}Ò-ψ֚x©ŒO{Û÷œPÊÐé_¨nÀgçýãsÊ¢åM]u“ï:kM|‘%îÐPÝ€¿˜¶›æ2˜µ5ÕM¾§1ØÄ™ð'-]uþ¢µgAV¤Û“ÝwZç~/eèô.T7à õþ*)òhaÕT7y˜9Ú&2ÙŽšª‹ð•æ­/ éݽR]äAç}'”"¸ïꪛð•šåDy‘¬o.T7yÀYkâ¥2Z¿k¨nÀÿ1í­(òp~­©nò-c¸‰d²»ý× v?NP«Ô jŽv²îà²Ì*ôr°•éÌ3´Î"ÊóhÑÑJ  Jg]'.ŠØ±J|nÇ'- -±³ò"¨˜9ö²C¶³/Ë‹x=Ýgy¼èÖÊ‹ bzo™Šhþ¦¼„þ*É¥72KK zæm¿››ÒöáqãÊìä¥Å&tÍÔyÑáªòÕoCuXÊ ·BËdì›©ëÆ©”§©©ƒ[uæYQdó®‘2'XçJ¼<#mØË'R‹mà˜(ó¢ÃUå«k¢ ‹9ÁVh™D¾‰²NœJyšuLt`µî<+Š,6ñé9Á&Wâ}äèÀnþ8‘Z¬C÷ñ*/:\U¾úm  -˹ÁVh™ŒýÇ«ºq*åijâ˜ÀvyVÙ¢ûp‘lr%ÞÿxF`;œH-¶óh‘®ê¼¸&V`9'Ø -­’È´¨§Ržf£°^w~ÖE?úñ9Á:Wâ}ä€íüq¢´Xîc5^t¸ª|õûÁ¾ 7Ü --cÿ±šNœJyš>zÈð]tæYQdóîC%Î`+ñþÇ34 -ÛùãDéË&p)iüÙ u^ \S«°œn…–‡Qã‘’æäx•§YÇÔ(¬×{˵:MZttç©ï#ÏÔ&¬×šžŠâ¼è=Pá›\æëkl¶kŒR‹íðßÏ‹B¦q×Ü(l÷y>^´JÆþý8•×ãkËÜ(¬×™gEq^Ü?:ÁúR\ßÿ4 ŽÀv^”¨RlçÞ‚Æèp-.›û ø†œpw-U2ºû€lMÓÇNX¾£Þ[^é´õ@^§ûó|K­YZè|Ñ»3î?/Xyøs÷ À·äE‰*¯Ûн/î¿‹R¬ŽÙUXÎ ¶B«äÕ¿/Þ]œµÎâŽÙQX¯3ÿüÏ‹î]a'Ü^K•Dw~¿|[þø¨J± œ{Â^”¨êº ]Ó«°œÈQãžðË,ÓåeÙ7= -ëõ–—R§ÓÖÙªÌâÓ›°ÞWäÛ=W¤;ÜË}ûÆG`;/:•Ü Ý;¢ã£þPû{¢|sn¸“Uq×ùŸ«±¼çxà»ë-/UyŽ_ê'ûKñQgw$øö>ïȲ«úw¤3Ü«}Œ¼'ŒÀvÞø¨?ä>tj£Ï ÚÝg¬Àrîp/?ŠdÔ¨lM³òC¬þ÷ŒQX¯¿•N'ͺ¹ö"¯ª|Þ~Æ&¬×žŸËò×þ¿>Þ2ÖþxøšÓT——·^͘;Ü˪HF§ŒÀvÞ(Qåuº5cѱ¨®› f € ·BËCäÕ‹½Ì2]拺‡+?EwqÖE:{©—ê½å¥N§­çlÀz­é©Ðù[½[òón½V*©{·ðc4FY^·S/”¨JîB÷Y«°œ:ŒuBÍiª+±ê?kÖë//eqš4ëdÚó¼,óEûY›°^;>k}Ž_êdú+Q•Ù¬õ¬MX¯99éòòÖ¯qÂüÐDZ÷´QØ®1JTuÝ Û#^”jÖˆðøŸçdU$Qs²9Mu%–uŽV~šþòRélÖº=ÑžŸË2Ÿ·Ÿ· ëµã¯ïpQã;ì-E¥ÓIóy›°^sšêJ¬ú7œáNVE2òž8 -Û5FIQÉ}è܈¾»Ð}æ*,ç„ÿ”[ÍIÍ“€Ÿ¨¿•>½þºõýK|.Ë|Ñ~æ&¬×žŸµÎ¦­[ßwy©Óió™›°^sšúß|Qö——R%‘÷ÌMX¯%Jço½Ÿ;á»Ðyê(lç~ýˆbº·=oŒR_ÞúÏ€õúË\ËèqÛë_¯GUdqû¹›°^{~.ÔiÒ¼íukzRê4m=wÖkÍÒâó¦|¹íu;ΔLÆ¿ž» ëýšüŸý:éi+MÃ0¼7«rÔxVUD%‘€ñží3X6$¤†þÿÿ¢!ÕI¥»Û|GGÉu­ŸÅ»»õ’tÜ®m·ÞëL’ù»£âËÞ¹W|s§ÓÞþVãÂáå,™]þRxᣠï -‡Wót~u¸Uk¥Óîvµ€ïÙ~wšÆ7GÅm¶»A’NÚµ—¾ r¯Öž¤Éàdw›mùt”¦ã³ÊKß¹WiÒdØ,o³­žMéèt«-|×ÊÍáÓWYÝf»ß.’Ac«o¾k»'ƒd1íîo1-^ÍñÍÑO/~ä]ñÍm²Œ._ïl3½‰ó‹Ÿ /äÜÎáU´Lnß¾Ú<Ý=éÇ餳÷òG@îí÷æËŰYÚ¼,5I2jU_þ&ȽZgºZŽ[•ÍËrs˜$ÃÓ-–ðÝ«žM–ËI{‹¿²Ò%ñ Q~ù› ÷*­ñr5ílÐêÙ8û'»/ä^©9Z¬fÝúæå~wšF7oŠ/äÞ«·ýt9??Ø8,¼¾ŠÑÕáNG@Þ^_GËèú°°iX|{›,g[”~ç³e|{TÜ´+5†‹Õ¬[Ïâ&ȽzgºHÇ»›våÖx¹šujYܹW=/’a£´iW9›¬VÓv5‹› ÷*­qš›åM»êÙtµšœU²¸ r¯|:JÓÑéÆ0VÛÓår|º1´ðC(7‡i:nU7íjé24v³¸ ro÷d,&íÚ¦Ý~o¶ˆoŽ~Êâ&ȽâÛÛd1ël˜/géìâçB&G@Þí¼¾Ž—ñõ¯;ëgÅ£wódÜÞËæ(Ƚƒóù*¿Z¿Ú=¾âa«šÍM{õîün9>-­_•NúQ4hV²¹ r¯Ö™ßÝMÏ6¤±ÔøÐr67@îU;óûûY»º~UnÚPøË§€Î;Û´/ ð_Õöl«€ãÇ€–²¹ r¯ÒžÝÝÏ»µ «Ó§€ž(ü¥r6Ù" Õ³qÝïfsä^©9ZÞÍ{õõ«½î4nŽŠÙܹ÷긟®¢óƒµ£Âë«h]îdtäÝÎëëx]ÖŠoûÉr¾¡²ð#9èÍñÍQqݦÔ-ïæ½½¬n€Ü«µ'iÜ?Þ]·©´&w÷Q¯žÕM{ÕÖ(‰û'¥µ›öìþ}Ô«euä^åtG›Ú™¿ÿ (|Qn>´±6 µnôáA@àoåæ z hyݦÖ€/¶ -h/~ø˜œ (|Vn ¢ùÆ€&ZÏê&Ƚr£/ ð\Ïh-«› ÷¶hO@à³í?(|å) Ñ}ˆ¾(7›Ú?|ˆº -Ÿ} -è`S@£÷ïçjV7@î=4ŽÍ ßßÏÚ -Ÿ•ž:<­¬Û<ôn5i­,üPžšŒZk¿Ëzw¶ZŒš¥¬n€ÜÛ=éÇé¤][·Ù?Ÿ-“Û7?euä^ñÍm¼˜õÖL -‡Wót~ùK!³£ ïv¯ãUüî×oOŠG7Q2éìewäÞÁEt·žüëÛ‹ÝãÛ(µªÙݹWïE÷w“VùÛ‹R£ÅÃf%»› ÷j½øÃûygÍùÐhÐ\“Xøá<ôá!îÖ¾½(7m(ü­ÖK>~LzëÚ| h_@à+õóô·ßÒóú· -ÿðÐß_\(ÐC€Ÿ´»ÕÕUÙ©hUm-Lï&˜y­nyy9Ø]¼ÑØèWÃãíš<;ínqqþa§yÿb~}Г×5?*<;“€~m6î_Ì­îW£Óîòôn€™·ÜŒ«ýÕ?î_¼\yWŽË÷¿œÞQ0ã^¬¼-Fƒ7ÖÕq¹Wœúk¯¦v̺¹Õ‹êdw©nÓîçg'ÛÍiÝ3o~m¿(¶ë6­Nqq~úºvÏJcý (7ê6“€^^€[I@û›ÍºM«S^^–Ö´n€™×¼ èÁF}@»åÕUÙP¸uÐÁƒ­®¯«ž€À­I@ h{Z7ÀÌ{l@? î| 躀ÀS|h£n# ð€À÷€6ë67½®î| èÆcÚšÖM0óÐNyuUunMZ<ÐâòªP¸ÓÜìß´Q·YÜ\\ -(üpÐâ`½6  ;§ç…€À…­Ã²Ø¯hcëøì¼è¶§u̼ţI@׿ë6¯Öú£ÅÞò´n€™·Ô9©ïÿ™«Û¼üë}yV¾[y1­£`ƽXy3Þ>ÐÆåÞ`\í×Wž‘¹ÕýrtÚ]®_µw?ŒªƒµùéÜ3o~ãp8>í´ëW‹;Çê¿Ñ˜ÎM0óš[Çã³ÓÝVýjaû¨š´9›à?öë¦)ufÂðø £CJ 8Ú†‰IZ‚„ïtw%þÿ¿rÜgOÎhX­ï}×êZ³§´×÷“ú=[ N¤¼£(.€?ú~úq@—'¨år@ø?ƒåÇM›Pqôú_³ íý> uâŸ8½yXŠhÁàß´Š=ëï©Û§C)cø5›ÐÞp•Vò8¿ý{ª;Ý—2]ßÍ&´7Þdª ÿó÷”ao Uì&¯€æ>.c.ó—_ƉÜx“Wâ03¿dºë>¾"YŽN冫¬V‘×ûŠMhïve´œÊ –Y]'~ÿ+6 ½ÞüP–Gïäa,Ó÷÷tyòÐð¯`¹aY†®u*×÷Óú=[q@øÍòŽt~ú€.’ú=_¿bÚë{QYžz§r=7ªÞóÍÝWl@{?E0»=•3g¡z/^î¿bÚ­SYì»§rÉ[Y—oã+F 9c²-T¾µ;'“÷Ïy-Ó“—€®ˆ*ÛÜŸNÞ­²JŸnÛ߀özîQUÙúîtrà'•Š\«ýMh¯¿ˆ«:]%•Šýö7 ½Á2­ëÄop-/RUº¶¿ íÝ­²ºŠÖédo~TU¾¹oÚ»Îk¹½ÓIÓ9ȺÜM:í@sÉ®¬åÁ1›EßåaÖ -Àg:øøVÚFƒìÇgõ½Š¼ŸU~¸Þ<”*[›d‡«¬®¿ßö&´g¹G)cÐ$Û÷“ªN—²üh}/âèZM²=7Ru¶¶½ í üX”‡§Û&YsvUþ|ßö&´7Z'²Ø?v›dÉ®¨Šm´= -Íök&³W»Ó(=Þdª ¦®-?Xwº/dº7K—‰áÓm»›ÐÞí<2^›¥û^$ÄѵÚÝ€ö,/’2Zô›¥{ó°ÑbÐî&´7ðc)Ây¯Yº;Ý"YÚÝ€öÆëT•Óm–6ì×Ld/v§ÝQhΰ·¹Ê·¶Ñ0?Z'²Ø;f«£Ð9 J™®ÇMó?–âèZmn@{=÷(dìšæ-/’*^6Îð#}ü(•Œ¼Æ?ÊÛy(«lÓøÇ -À4^gJ„O½¦ù®ˆªØÙF›£Ðœ1ÙUL» ö¶¨Å¡y€ÈtÊ­ÝiÜo²J翬ü@–©*[›7~R©Ä´· íýïÆçœÃóO.?Îx“Uòèöš7Lç «b;é´7 -Íö®¨D0í6¯t&»¢ÁÌloš3@TùëÃ9ßÉߟVyVk£Ð]Ï=J•¬Fçtˤª’å°­MhoàÇRFÞàœNÏT?ß·µ íשá¼wNÇt².ß&F[£ÐœaosUî§Ý3KE-CÇlkš3@¨üõ¡sVk¼Î*{VK£ÐåER%«Ñy­þ"VUº·³ íV‰’‘×?¯eÎBYÛ‰ÑÎ(4gد¹‡™y^­3Ù•µ88gÖø!ºÓ}©Š­}îWr¼É*yV+£Ð]o -•®Æçö~RUÉrØÆ&´7XDRFÞàÜ^Ï=ª:>ûðð#ŒV‰,ç޹½î4u¹›mŒ@s†ýšËâí±{~q[Ôòà˜m¬@sæt_ÈôåáüäxV*ò¬F ;Ë K/Gç7û^$UrI€oïn‹2t/øGšN Tþbw®? -Í/©È÷Ýó«{›«2pÌë¯@sÝé[.Òç_ÆÝÑ*‘âèõ¯> -ÝYó°,#ÿ -™®Ç×Þ€öî–±(së’n÷q_¨b7é\{š3ì×LäoÝKÊÿ<¼æJ„³›k¯@s7NPÈôù—qQûãûªTâß]yºú‘‘?¼¬}óÊ*µ/;¿|WÆÃK&Ë`vsY½3Ù•8\Zà›2 TùÖî\دÓJÅ‹þUG ;Ë‹¤JW£Ëû±ª²Íøš›ÐÞÇRÉȽøi΢.ß&—þ`øŽ:“]Q‰À1/}À°·E-ÃÙÍ5W ¹›§PVÅÖ¾üy·L”ŠýáG »óWUéz|ù ·O¡PÙóÃå'€ïư·E­"¯ùÉ6WÅÞ1¯· -Í™N jq˜}æúV‰ÇÏÜ`¾™¾©:ßÚÆ'Þ°ÜPÈd5ºÚ(t7Z¥J%þÝgÞè>î ùÉ# ÀwbL¶¹‡ÙÍgùçá%“eà|꾑›YPªìÕî|ê•¡ ->õàùsúüOž¾›ÿ²_7Kj›iÇÙFb< JƒôÂŽ”¨uŒTê¶$H¼*rÿ×2™mb;¼ú õÿ]À9Ïî©ãgB7oØ2sgyq¥e¶q½¸4Àƒpüôët´ïÌù:dO/wYÄ|×<¾"¼ûñMüLÔÍ#¶LÀÀY^\j‘ùÎÝA«¤ªeæOL\ÀÀMüT¨2ö컓áI«bw÷”àÌwG)¡·çl2©«xeÝÀÀY^\*‘nœû£ìURi‘™ˆ`à&~zQe왘ó°Pª01f¸ùî(e±››Èšø™ÐUbä0d–—J¤¾c$l•TZdþÄD6ñÓ‹*cÏ6’¶ ¥ŠÝÂHÃ5ߥ<†s3iÎ&ºŒW–™8ÊòâR‰t㘉³›8-2Sq ÔÄO…*ÏÔdœ‡…R§—…¡8†i¾;*Yìæ¦ò&~&ê*Y™zÈ ‘åÅ¥©ï \%U-3s ÐÄO…*cÏ6–¸OZŸv c Ï<¿<™ gó°Pú¼ÿhµíuoëq ÙôÉ^'•–ùÖm%üÓ«¸êcÐJ8=rƒ\ê*Yµ3Ÿ^NõµŠ<»•túb-£R«"\´ïlru•ÙÆi'€ž8~*k™ú-}8{Wu}úí©xz²Oº.£¥ÕRþìù ®âmm·”@Æë×K-ÛfÁUŸgmЃÛ@¬«d5n­añÒLÜ*^1Aÿ¶—Zᢽ -ÇÏäUåím\:çnsY‹ô×I{Ö2:k}Ž>ZíuÐ)k¹¿=·Ï¿´ùܦÛL´ü¤èÔÄÿ"´Hýi›%–•Zwó6KèÐ|w”ê´_Ú­¶¸A&d¯Ç­¶Ð{•”Jd›VhSãE'yÉŸgíÖÐ7È…:ï—mOÃé6kzâU»C€nØ«¨ ùÖm¿()µÈƒÖ‹èÀm€ê2Yµ=@G£EX(]F^ûM´Íöâ²VE¸h¿jâ§¢–ùó¬ý*ZÖ Pu•©ï´_e}Ü—u]ÆžÝ~­²Wqu­ËhiuPÖçê*s&(ࡸÛLÔ2ïk€Þ>x\Õuyã¾.à‡ÙËè6@û|_³çÃm‚ö÷ÂøaÓm&otÖß c/.µ>GžÝß üËÛŸ{^n -²-ð(šÚÿï²—û“’ç½7îó -¾ÛíuIYì—}Ðæû_*uÉžg½^À÷r·éE–oþ´ß3¬÷»ƒPçäÓ¿û½€ïò¯ut—<|oõ~H\*y|ùÐ÷!|ÛOïwùEœ¢õ»¾/Í‚\èKºqû>€ošþúvÕ ¾ÖØ‹ÎZŸ#Ïîû¾Áúøù(Dñùã¸ïKÓm.¯2f}À7L7i%«/þèhd{qY×U¼Â7àÏÙÞþ$e3@í¾/ùj4Tþûs߇ð—fAvQÍö}Èl/:××Ëë§w}_À_x·ŽÏJ¿ý2Œ:MýT\u~°ú¾€?õÓûðð?öël9m¬ ÃpŸZFRŽ ü £í¿mÀ 2¦„Aš¶¶Täþ¯¥ÉP]I%鎧,†÷¹‚w}{)<^ïȺ-j9QQfËþÎðƒêí2Õ*˜4wçÞ³{‹´(¢‡óSé~áô|iÏ/-é’oÔï|U(P“àêCo»UÞ .ò­/«žÌ{¶t ?e]ºI¡£Y·"]òêí2Õ*œ¶ é~ÂhM‚\§Ë~Mºä{Fs¨"]õëÒ%üDµÿéÒ &;wé™—óXëxÞ³¤Køyñåyôp±{3U믲B‡Ó›vNšc?Óéò¶*]ò#£5 u™­v± päÎnIžùãæ.^yVÏMÊ"žW¤KøŽÑqB¥¢‡ Kºä§êw~^æþèÒ!|§Ú_&*]êÒ!?W9ˆ‹2]ôlé¾a^ÌÖY8Sé’_¨öWª,"§mH—ð“ÆÈK²È½>“.ù£5 u™{út ÿ¨Þ¸Q–¬î>ìî}g÷ܤ,S·gI—ð•Ùu‚4 ¦Ý]§ZßS½ž¶O¥Køì¤q·ŒÓõüº*]òoŒ¶³Ö¥ò†ué>;»v×i¼¼kÒ%ÿÊî¹iQ&nÏ–.`«rîIâ;]Sºä?Ô‡ž*õÚiïöÐŽÃIãn§k÷úLºä¿mg­Kå ëÒ%üU½v×i¼¾ßý»Îî¹IQ&î¥%]8zf× ’ÄŸvöa”jý•*õzÚ>•.¹“Æh§ëùÿ«Ò%¿Ãh;k]*oX—.¹³7Jãå]Ã.ù-vÏMŠ2YôléÀQ3/îƒ4õ®)]ò›jO•zí´O¥KGÌhŽVI¶v¯Ï¤K~—Ñvֺ̽a]ºpÄj·‹(KVÃ÷†tÉo³{nR–éâÊ–.-ëbfiàt-é’'¨õ=µ)¢û½Š³=õS¹×Ué’§0ÚκØäÁ¤iH§Ž’Ñ­R•®FýZ"»ç&å&[õëÒ%€£T½}LrÞŸ[Ò%OT¬Ô¦LÜ+[ºp„¬Ë‡(ÏãÅuUºä©ŒÖ$Л"šu÷múû¯Ò™†J§«á{C:åɬî,*6:œ´ö¯°ßŒæÈË´ -&-S:åìž›”å ëÒ%€#Së/SG¶tɳÔžÚlÒEo?óûʾœÇZ'ýštÉóœ6ÇþXD÷]K:pDÌŽæE曆tÊ3™ÝY\lò`²·/ì£9öU‘‡NÇ”Ny¶wW‹´Üd«~]ºp4jýeªuôpiK—¼@}¸Re™¸WûüÀ>±zóXÉãmMºä%ŒÖ$È7E4ëZÒ)€£`v0/2ïîƒ!ò"VwNZûýÀ~0šc_y8m›Ò)/d÷ܤÜ(oX—.Z™:z¸°¥K^¬>ðÔ¦LWûÿÀ®³/ç±.ÒÇ~MºäåN›ã@,âûs𶬎æE曆tÊ+0»³¸ø¨C§S‘N´JkìeZNÇ”Nyï®Ü´Ü¨`Ü:•N°“ÆÝ2ÕùúáÒ–Ny%õÁJm6ÙjP—.°êÍ"ÎóxqS•.y-Fsìç›2YôÞI§–u9[«<~¼7¤S^ÙqB½)¢ûsK:p ÌöÄOódu×4¥S^‘u>‹t™Óö!½ -°;*­‘—¨Ô·ëV{wåÆE©¼QÓN “Ãe¬²Ð9·¥S^Yív™EºìפK¨z³ˆ”ŠÜëªtÉk;i޽¬ÐñüòоyÖÅ,ÌTü8lÒ)¯ÎlýL«pÚeA¯ËêLýTÅËQ«"òÌÎ4ÈtæO;¦t -à lo´U’%«qû0ÆîNCµ]ÐIÇ’N³5ZÆY²½Ðu_¬Þ<ÖEæMÚéÀÁ8mÞm÷3 î/lé”7Së?¦E‘z£æ©t -à@œ|>FY¶ž_ŸI§¼£9ò²í‚.uéÀ8»™¯·û¹è¿7¤SÞP¥=ñUQ$nït -à X÷AšE‹Á‡ŠtÊ›²:Ó@•:š[Ò)€`v&^’EÆ)òƬ®æe:]ðRf{¼ÝÏxywðûù×_öù,Òe° €—Úîç*Q©?næØ=7.XPÀ‹™±—æ*œ]ØÒ)Dm°ÌÊMLYPÀ lïO/+t²¸­I§ü§Í‘§6Ÿ´Ã‚žËìLü¬,²Õ¨aH·ü!•Î4øº ¦t `OU>ÝŸe©üIûxÆÄêL¶ zd¼&£9ú²ŸÇuŒ™ÝO7h™y£¦!ÝØGµþcZ”*˜v-é”?Êþtƒ–EúدI§öݛǺ8¾ýüzƒ:ž÷léÀÞ±ºN˜ëÌ?¾ýü|ƒú™V¡ÓeAOcu¦~–ç~~¹A3ÓŽ)ø›ýº[N;£0<§`$rdá´‘†"±Á„  ôƒ~öÖå¹ÿk‰°»SÉtOÚq÷ó>W°JªÚë['Åýùµê¸rUŠx9²ºÃŽH½5ðªþ,Òª? ÝaŽÑ™ø©T2ÝL:Ü€/öh‹BîÖmúó[Œ—/¤T¸ -xUí«MZ"ZÜ_ÓŸßV¿x¡(KÎhPÀ Ù¹R"ôúV]w˜ãÕìÎB±ßËhÖ¥A‡ýé¯ÓªÛÔå¨57”Ïû‚üö²?_†UH-|ÑEòù™öç48ô'¥ðÕ}mP¯ÛÔ ýùCþ½A½[ΙéL·yYÊþ|›jƒ†r¿/âù u¡; @“ÚeÏ ²B úóÍ gŠr_$«»¡; @‹‹ëû§ “2ÛºýùVfgâgj¯RÒá«À92ìÇe”‰<^O:†î0'¤a?¬’b_æëðÝàü7ãÍ.i8¶éqqõy,Ë2ÝnSwÀ/fv&~"DâO{­ºî0§æo·^T5¨g4(œÓ™úiÕŸ›ñ ðãÌî,UƒFÞ€óÎHÍêͶUîÖmSw˜“d:n+%âåÈnèøE×÷ó0ùnýÐ6t‡9QFg²I¥’éfÒá€ó`Ü<®ã\dÑrtMþ¿ {´Œ…RyàÞ6u‡üfgâ'BfáÓݧ†î0'¬ÞêϼT"z´êºÓ~²šÕwƒTÊt;ë]òìÿ%f÷Рe±[ŽÚœ"ð±5Ú÷ó0«úÓŸ:MÝaNžéL·¹*UêO:¦î0€ŸÈ¼¯w¹Ɇÿ=‰Ÿª}™n—ï WÓ™ú©,òxõxcèó!íárW”¥ˆfƒV]wÀOQoõ½ /Š,ôîÚ Ýi>ˆÚÕà)UƒÆË‘ÍQ‘a–±PEºÞZŒ¥wÓìºÕY¢dº™:MÝaïÎìNý´¨ús3¾áO¦3Ù$Ryè ¬šî4€wUo ¼0W¥Ü­lSwšư‡ó(WJÆË¡mèNxG†=ZƲ,E´¸ÿÄÿÞjVß ªó¤H6“ç |Mgê§E©òÀë[uÝi>¢¦39|á" fý_>†z«ï…¯ûhê4u§ù öh ¥D´Ù†î4€wðò´KUŠ˜§ý'ª·^J¦>g -|¦3ñÓ¢TY0ëµêºÓ|dMgºI¤Ryè ¬šî4€¿¤nõgA®Ê"ÙŒ;좟˰‡óH(%ãåÐ6t§üF{¸ˆ«']Ä‹á5OúÏV³ú^øz®L:¦î4€ÿ›Ù™l©Š,ðú­ºî4ç éLü´8|q—/§ªÞêͶY¡d²™:MÝiÎDÃ-c¡T-F6#N‘aça^/O¹¡;ÍÙ¨·ú^ÉB$·g1BàÔÔ.{“uœK™nÝ^‹wüj:“ÍN2 ¹\àäíû§m"d¯ošºÓœþ -Ój„î6SŽ8%5«;YE™È“íÓÝ'FЯV³zÓMò:B‡¶©;àí;o›ä"‹V“[‹¤ia&‹<Ù¸ŒP8 µËÛñ*Jó|·õîÚÌ=j­¾»Ùå/#tdºã¾Ë8ÌÏ]–§áê±ËüÔ§¡OaVbçOûŒP8r5«û2?³ïÝ}b~êT³z®ŸÈ¢8ŒÐþ3£}ïù/ós9î^²z4«Fè"Ìd!Ö¿jèŽøu«7ù™ºã೚Õsý´Øï‹t;0BàÈÔ­ÞtgBdÑrܽä™>"¦=ZƢܗ2^:ŒP8&æÍhfRŠd;»kºãà¿Ô[ƒÙö0BUxƒ« ÝyŸ]\õ]?…Ì£Õ¸k1?Žy3œ‡y¹ßËd=¾åÀQ¨Y·«(/”H|ïîÚÔßP·n'ëä0Bóp>²ùI ŸiçAV¨"Î%ãæH5þ>ð‚LíK™øîડ;œ¹‹«¾ë'²TÕ³<í]]è΃?×ì<®b¡J•G«Ç[‹Sô©[·Ë(y“CÛÔÿSýõÚQe‘…‹‡Û -zü‹ýzÝQÉÃ0þ96ÉJhL™M¦±Q´ÁÆ[|>V¹ä¾ÿkÙÑ̬V3›lèvïï -,¹To=ïº÷ÖÆOK.ósi iÞ¾Ÿ-ÇÏʪb©ïXŸñâhÂûO“/)h>SƒËø<(]}ê„94¡ÞúË]«é¸:ª6^죜q–…ît¤!?Ïý¸Õ!e¢®Êx77zjÓpU”îhêiÉXï—ãBæŒü㓹 2&DUDÛ™ŽŸðjÔ®>ÝxIQ–y|Xýô¡é‚ŸòNÓm7̹<][×P¡¯AÕFÓÿ<Ÿæï]¥é/‚Ÿ¥öt{U-x8Óþ!À‹S¨>?-+ïÁ¼ï¢^Î’ÚÏ÷I)jÁRÿÁüçû¦?àÂ}ølmü”U£r±î5ÌçÙjÝ}Yyô+EUÆû¹_ ð‚([V‡´|ºs—c­ÕôÁ¯øðyêYI¯¡ÔßX÷·JÓp¡TM··QAó)/\óÓ‡¦?~ýÑéÆO‹²ÌãýzrßÅ„œžÚÓmêF½’Ît„ËöÈG‘ãÅY‘§Áne¢BNM¶ŠC­ÂyIóiëšÚôÁi´4ÝZ¢4K“p·B…œÔ±>ý¤`¬H}×Ö{˜Ï ¢tGÖÃ>L², vkT(ÀÉ´Žó™ÊùL|YŸ­¦¿NKíÞOV» IÓ8ܯM½ßƆü*¥3ÏÜàÛ|NGêó)·÷æzÄT¡áÁYLîñ›~‰ªÌå.ÌÊã|n¦:îÕKõ­B³t”¦¿ -à R:ý±íxIÁ+Q•‰¿™¸0¯›Ú3hB3.kÊÐÝÊijÓðÆ´d|nŠO!¨>½…øšP}êøiYÕuU$¾kv°¡ß(ŒÏ8—óÉòØ{0G]Ì'UÓ­õ>Ê™¨kÁ²h¿²ô΀¤ã3ÌJ^Uœeáv9ù½‹Ê€gJgøeæø eh]We¸³ñ -WOéôe|&9¯D%ãÓ±A[iú³àMiQ†®(C¹¨ÏÃÝÊ2úœ¸^J»¯S|«„m±]š#­ÕôgÁÛ£v†cÛõS™¡‚‰¿]Z::®ÓÓzº^œËù䟛©1@VÀ_P{ºµ¦ =¾¶XË E‡ÀÕ9®çÂõ¢¬äUÅYn—“{Ä'üåvøÅv|ùä’‡&G‡ÀµùÓz2^ñ2‹=Ç6m´ü/-md­¶´¡ôðúÞ¡::®ÁŸÛ“sFëé»Ks„ø„£v Ù¡œ:´|ÞPt(\¶?Ö³`ÇõŒ¼í¤Ë?Néôïú}C>6.Ô­gì¹”¸öàçýѡϚ7t¨Ýà-Fißé“…ƒö„S9vèò[‡VLvèz6Ñûmœ)¸Ê6 ötQŠö„¢•‹6”ÉeyÒÉ2)D1¢pöh<‡úÄ^¹‡0ÍåzÔž.µgí 'pìÐÕ÷åô:ów빉çœ5ºÜF“g§yÉXYÈö\ =ᔞ;Ô‹³ò)D‹4ò·KËöÚ8gp~(=†¹p½0ÉŠ²,‹"KBZÏ ÚNŽžjºµ”‡-g\ÁYž»‡¹‰€ó¢´µ>±W®e%'eNM°ß,L´'¼Ù¡tæ¶¾ÜÐJT+²˜Fta?ÞuÛx´À[§Ütï†Æd¶raLëYUœixØ,¦ÿ¡=á%)7ÚplцFiÁ* -ÑŠ—Yì7ËÙÄh78}ðVQxÒvÚ‹õÖ “¬(ç¬Ì“ðàÌ'£A÷¼¼cˆÎžB´u]‹ŠÎ`äoW4¢”¢7jÓ_ð”v÷î£aÎåvÆéq;i<‹T^\ö×û~×¼¢ÆT†hVrQ?>Òˆ2zÈy»‡…ý´¢xËÀ[@Ý)·s¶|Øù´ŒW„³"‹ƒƒ³°Œ¡†ë -^ÛSˆ®wA’—¼BЙ,‹, }ZQ´(4îØcÚÎÍÞ’¬8ÞTôÚ/颢ñœ~õ;¸¥ ¢ÇÖâùl~›Qy8#ZÑå̤Õnñº€W¦ÜÜÊîœPwîƒ8•¯ü§ñäe‡w5û: =¡aj§G§Ô^¬]/J F#Z×µ<¥ùÓŠÎmŠÑ~v=xij»«õî†t)Í—;zÛÓvÊKIÞJ¬Hã`·žO¿êOx+”›.Xs¾Þz!¥èÓˆÖÇãšD¡·{X-fS¹£w½n§N®¡ÞÝà·±iÏh:é.Šé2b\^Å®X'V3¤RF8`@B€$P ÈÉNîÿ.Ò¿„c²˜ÔTÍ"có>×ÐÝ_w]¿/S\qv RIÒT‚4^Ì'ÉÑ®c«$µLÓ4¤•’¥þ=IMÝ0ä|XµF³-•S:çxÅ«u¢NΦ:;êyò»÷<<>>~p6då¾~ùüéã¾È7ÙI~V"‘¶¹. g4ún×éØíf£~cºvEëÄ+&}TÓ Óªhw=?z½þ`2Ÿ -Ãh! 5ß<è?íÙw/×o´ -ÐC±)æ/÷a6»—¶¾ïu;Í¿n%6uΉóRURÓ²ÊVjÛgeC½–‰j¢y!vÎ„Úø<ßn²dµ˜×qÔU°íêHØUÛ´äxúõ[ -'Îj¥š¦?+ªíÒN‡ÃáÀY‘µHËôœÖßeÃTª!—âú’Ô~ïâ®ê©r à|”[oY–©ko/þô!àEù!À¦6Áñ -endstream endobj 56 0 obj <> endobj 57 0 obj <> endobj 58 0 obj <> endobj 59 0 obj <> endobj 60 0 obj <> endobj 61 0 obj <> endobj 62 0 obj <> endobj 224 0 obj <> endobj 223 0 obj <> endobj 225 0 obj <> endobj 226 0 obj <> endobj 222 0 obj <> endobj 227 0 obj <> endobj 221 0 obj <> endobj 228 0 obj <> endobj 220 0 obj <> endobj 229 0 obj <> endobj 230 0 obj <> endobj 219 0 obj <> endobj 231 0 obj <> endobj 232 0 obj <> endobj 218 0 obj <> endobj 233 0 obj <> endobj 32 0 obj <> endobj 33 0 obj <> endobj 34 0 obj <> endobj 35 0 obj <> endobj 36 0 obj <> endobj 242 0 obj [/View/Design] endobj 243 0 obj <>>> endobj 240 0 obj [/View/Design] endobj 241 0 obj <>>> endobj 238 0 obj [/View/Design] endobj 239 0 obj <>>> endobj 236 0 obj [/View/Design] endobj 237 0 obj <>>> endobj 234 0 obj [/View/Design] endobj 235 0 obj <>>> endobj 44 0 obj <> endobj 45 0 obj <> endobj 46 0 obj <> endobj 47 0 obj <> endobj 48 0 obj <> endobj 49 0 obj <> endobj 50 0 obj <> endobj 51 0 obj <> endobj 52 0 obj <> endobj 53 0 obj <> endobj 54 0 obj <> endobj 55 0 obj <> endobj 246 0 obj <> endobj 247 0 obj <>/Shading<>>>/Subtype/Form>>stream -q -0 g -/GS0 gs -130.2232208 0 0 -130.2232208 181.4170837 178.7505341 cm -BX /Sh0 sh EX Q - -endstream endobj 248 0 obj <> endobj 249 0 obj <> endobj 250 0 obj <> endobj 251 0 obj <> endobj 245 0 obj <> endobj 252 0 obj <>/Shading<>>>/Subtype/Form>>stream -q -0 g -/GS0 gs -120.39328 0 0 -120.39328 180.528183 176.5283051 cm -BX /Sh0 sh EX Q - -endstream endobj 253 0 obj <> endobj 254 0 obj <> endobj 255 0 obj <> endobj 256 0 obj <> endobj 257 0 obj <> endobj 244 0 obj <> endobj 258 0 obj <>/Shading<>>>/Subtype/Form>>stream -q -0 g -/GS0 gs -0 -0.4444444 -0.4444444 -0 170.9031067 125.0784531 cm -BX /Sh0 sh EX Q - -endstream endobj 259 0 obj <> endobj 260 0 obj <> endobj 261 0 obj <> endobj 8 0 obj <> endobj 18 0 obj <> endobj 19 0 obj <>stream -%!PS-Adobe-3.0 -%%Creator: Adobe Illustrator(R) 24.0 -%%AI8_CreatorVersion: 25.0.1 -%%For: (janek) () -%%Title: (keepassxc.ai) -%%CreationDate: 12/20/2020 5:21 PM -%%Canvassize: 16383 -%%BoundingBox: -224 -228 324 320 -%%HiResBoundingBox: -223.39905511811 -227.480944881889 323.480944881891 319.399055118111 -%%DocumentProcessColors: Cyan Magenta Yellow Black -%AI5_FileFormat 14.0 -%AI12_BuildNumber: 66 -%AI3_ColorUsage: Color -%AI7_ImageSettings: 0 -%%RGBProcessColor: 0 0 0 (R=0 G=0 B=0) -%%+ 0.403921574354172 0.729411780834198 0.176470592617989 (R=103 G=186 B=45) -%%+ 0.988235294818878 0.988235294818878 0.988235294818878 (R=252 G=252 B=252) -%%+ 0.192156866192818 0.450980395078659 0.16078431904316 (R=49 G=115 B=41) -%%+ 0 0 0 ([Registration]) -%AI3_Cropmarks: -131.417322834645 -131.417322834646 231.417322834646 231.417322834645 -%AI3_TemplateBox: 50.5 49.610236220502 50.5 49.610236220502 -%AI3_TileBox: -235.600006103515 -358.899993896484 335.600006103516 458.899993896484 -%AI3_DocumentPreview: None -%AI5_ArtSize: 14400 14400 -%AI5_RulerUnits: 1 -%AI24_LargeCanvasScale: 1 -%AI9_ColorModel: 1 -%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 -%AI5_TargetResolution: 800 -%AI5_NumLayers: 5 -%AI9_OpenToView: -373.888888888889 363.332458442724 2.25 1992 1274 18 0 0 78 121 0 0 0 1 1 0 1 1 0 1 -%AI5_OpenViewLayers: 77773 -%%PageOrigin:-247 -370.8897637795 -%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 -%AI9_Flatten: 1 -%AI12_CMSettings: 00.MS -%%EndComments - -endstream endobj 20 0 obj <>stream -%AI24_ZStandard_Data(µ/ýXäjš›µ+@Šy€1,q7­¬óyƺ€ÑŸî3•˜™92£¶97"€h -! œ»ÞÙw<Ì{×õþ^ßžýænƳï|wº{¼u眾ÞûÍ;Οs×ÜÅû{Ü/æ^s7ë>ïük¼?ï¾kîf¼ã¼o×ïî6Ö›»™ÖWûý/抅—»,v"î¹çî…Ùkï=¯X଻Ýíî÷=ÅââÜ=ÅbwÝûï}¡½˜ûåýrÜqÝuþïýã˳ÞYóß{—eܯ߹þsÜyç³Ö÷ߎ»óܵîúúÜu¼ëÝuÆ]ã‹Ïø{Ÿsî.Þ¸Ë÷wÌõíÜW,>0ÌŠE¨‹¿=Þ}îÇí}ÚS,:ͯ}îZo.*ÝÑ‹bøý®XàîÓ_Æßýî‚ß÷¼ïžbÑm^±×¿ÞyŸ»î9Žoß—uvþwÿÌõ.ËÝÍwkŒ»Î˜Û7盽ïøþ;ïŽcÎwYï0÷s—½Ïš÷›1ÖØgîo×½öžïíqîö÷Ý¿~óïwÎW|û8f½;Þñ=êQg<ÞQEQ E½óö<ïyÏóøÃ/þñ_{™{×=ï}Ïó>ôBOôFï~øËŸþö7òQy¼ã(†"(zâ»Ø‰\Ôb¯8†aø…?ì¡bÁCâpCð?èÁÜ`¯÷ù¯ûö§ÁžCÿ»Ï‹ûEzísØÁîñ¾ÇNäݹȹb±¹¹¨yÿÝûŠEï6îW±?­X€ž÷Žsͳb÷ ;×Yk/ãñ‹_±?Èñ¾ŠEØÃþN±ð]ç¹»ß×ãV,Äþí»}'n‹c†^ØCæð†!‚øÁrPƒ¿ðû>ÅÂûü×?þé/ø=Ñ =Ðû<Ïûž÷º×yÜãÞö´—=<~ñ‹?üàÿþ÷½ïÿÝï¾bÁÿþûëŸþøßÿèE/úЃôŸÿ¼ç¿ÿÝw¾óÜs¿½öÚgŸ=öØ_?ö±‹]ìaW,Àö¯Ýë¿ÿî{ï½wwÞwß]÷ÜsÇc'vbv`v_çu^÷;ßù®w]×u¼ÛÝît§Xäw¸»ÝÈG.òƒä÷¸Ç?÷¼óÎ;Îùæ›kž9æ˜_>nq‹;Üàþö·½ý·ß}÷Ým¾ ƒÝ×?ÿýÏû¾üÂOüÆï‚Ì 7ÈÁì ?è‚!(‚#xCæP‡;äa*=ôá¿P oèõŽoÅ"ߌÃïcÅôvö|î¹Ë]æy‹X±Ð"ß{ë­wÞxß=jQ‹:Ô þ´§¿þÚë®;ÍõÖZk5ÖWYÌaó—¿ìåŸ}V,zîòÎ:gá,’sÎ7Ó]Æ8_Žow{w;ï4çœ÷w§3—yÖù®Ãž÷ÌsßœöY—ñÌÝ,g~ã®çËûõÞßûùÍ_w{ÿÝ1¾Î=ÿWßñ÷Ús·g[ïÿ{wñî{sž»ÙÍ´×øÞ˹ÆYïÍóÝ=ãûñÞ—»YÎÛkþwï½{~9Ý»¾ïçþEQoxÁ+î|½÷¾Ã¹ç®ÿÞ±×>ß}/w³¾ïíûæŽwÿËÝLßnïŸq‡µ¿s7ãw˜w¸ûì·Æ†¡Žá±˜E-n‘‹ØE/~Ñ?CqïˆÇ<êq|ìÆ>úñÞøàŽâ8Žô4Îã{Q,rÆùæ›G,âƒøÃþØãŽ;ÌñÆc|ñxÅ^ð~×»ÿúÛowùÝWß|ñ½W±0Ø}wÜ»÷Ùsýyßœæ+w¸[¡bøÝË~¨M±}¨-»g—g]†³œÝ,ËÖµeû*½ã½=þûû‹»¹ÞÞ¸ËóÍ]Åí}æ¹_ÿ¹î¸«Xt÷fÜ=¿¸óù~î* ŠÅêËrv3Å"òyÆY+[•0EIÌÒ¢¥¹"× úe+Ê -QV¶,QyªÌv%A0Ö<ÓŒ€¨`zØZž*Q»zíê¹Z„*ˆ²H©’.Q¶Bc© -KËÖŒ‰²µ\¡&ËÕ’ 3MGgšŽ2[¿LeºTrm™çI‚¦¶DÉÔ¢&éYI”<Ù”éq©ZÑš¶æJÌеl[2`¶ªReפ¦g)akÊ*CHÉÊ•<Ljj’$‹´PSE®£ ’EZU)‘RÈVesM[UY‚() ݨ±tÍ f+v‚P>A±h¡f‹š+MP(®ÆÚRÔJÏt¡f«d[´„ÁRp…ŠÛ¦Xˆ>ܽ•1Z¶-yލŸ7öwýÿüoþ_Ïù,÷•¹fPý÷®»þ½çn×”¬ïL± fË\Ê ê½wJ³„–ªÆg¾{œížq–ÿÇÏ\ÎvîyoÏwÖšÓξçt×”R:BKUõ3 »–H,–àÛØ™²e¨-[+9BqLžãY®ÒÏ/OR%*[+éAíŒ3 Ûš(i-ÏXèÞ½Eíê¡x‰¦ ™€ÒPî¬ÓÙö»û^ÿÿ¿ç<×”Œc®/îî½·ã¸Î”ÓÌ—ßœ;/3Î]^¶ä©ÂÊÏYÇw·µÏYw¼9¬1%³°¯•„©éy@SÓl•¡¼¾Œc|Éþ>A²ë}?ÖÛ÷ÛaîfŸw¾_þõõÿò}þ¸ë|ÇqþøËd™çƒÄwï±ß?s½ÿ||YçñA&Ó„ Ù÷¿ã.~ûî:ænæ?ÞÚ_ß1Þ?wîf¹ãÍõîç¯ïæn6¹_v2Ù=Anfù2¡Ì¶P³mKQÙ"aTÏ,e‹dI(Ýu™e-S°XÂê4c*ㇳ–„­éXžæˆâoS,^*òü2Òó,OÙ¢e‹üd(IÌ,ìšž)Ȳ¥*]A-ZÂbª4üXgøë¬³ï=ö~ïýæzΔ c1ç÷Íi¶ ™š¬³uæs¦d;gJf~-Ô\¡±ôÛ6ÅB{ÝáÌR0Y–€’P†³…g7ß\¹¹’qf)[2DS3b’œjË’jY¾ ™¥<[s´mŠE’E^%JJ@2ËšŽÛ¦X`îrq2‰JgQ{±É£"?v†ûýýzÿ;o%á++rÅAÍkêZMRm×R€jeU+ôLa©¦›»§ŠÅøâNßßýŽ»»=ÿ]æ{cÞݽÿÕ>ÿ¾7÷÷öÞýÆ8o…Êk%Woß1æ÷nãŽ9ýyD ’eåš²Ê/[¡¤:@Ì:Òéejº†ÙÍüö˜ë»¯ö]Ç×{¯MG‘¤Û¬Ä—wóû¹ë5çïÜq—’í߽ט÷N÷í;w)Y¤@*ã§é|¯ÄwºB&L£Ù¤Ì»ËÿÕ~ß}1︛óíü{¾óïºÓœh–<ØÆD&dnîÚw}ãWª`Ò"¾ ïZ¶*¹ò<"ÐËä±x€Ò÷*ñ -vÜÍ®Ç7wÝßXoýÿÇ…èL| Ó»z÷î^þ»}ñÅ=c½=ç¾cÍ]J–w÷ñÏøvýã.s—’zï øt+ì¥8f˵E7•ìò­JCå -‚d'Y†*.”Ü;¿ %M–‘™Ì#aÒtÓÔ NÝ…±gœaÌ;wCè†yª¬B²j®­¨’Eʕɶ1H…Å!åiŽ•,Ò–,‹¥‘R -ª hÄb•ûæû;~3×éßu›ïßùÏýr—’ußïí/w]Ÿ×»°€É±“NU+ŠwW+´ –, ’iúU²û}­/ß’‹Ô‡ …ó4Çó4ÇÖŒ­ÐlWTÉ‹‚,+P,²$S,²‚ŒU†Åbe -™²»Xe÷¡!ûdgd8“ÈnÆÉ®bAÀ”Ý̲*Wkª*CmšPÉ,•DS³U™aE± XÎ\¾Òµ©L–ü^*²)“5K• +Y%’¡&éײ=ͱâU ‚¬„‘ •,r ¦T ‰É®˜ì MQ¢XX2€íT ¶< ´¢võþÅ;g7ÃÅ"Q,V¨ˆò\©¸T±t”U"k¹Z²µl‘(ùÉþÇ·Ë]÷Üe±öøbÝq·ï¿{ëÛ5Î÷ïÝ1Ǻ_ŸÿåýwÝçý_çÞõÅýóþõ÷Ÿïœ·ö{noýýÎ_wÚk®ë²,ã]ÏŸóí»÷\¾\ÿÌ1îîÆ¼ã¯ý׿wÜy~owwßóî»søgš_¾}÷¸ãÞ¹îbŒ±þ=_~ΘËz|ÿî]Çwϸg¿¿–ÎÙô›Hš ãðË„¢š`B B§‹rBÄ×àš`ÂÍÂ5ž† 1uòM±`dL#þt«Hž ÐuMˆ>•AÆÓkšè‹IMáT’ÁÍ¡ÅJ¦ÐìÞ‹…¨q´{LN"ÄðÜ<€",òqc -\˜0@ø? ‹A‹­ „ÊA<ÈŒ"¾†³îòËÉÐÜvâ°¹„˜&ß‚kl…*ÓÓjLánŠÅùÔTããq<®‚e"!¥t,äÞËé²Bò Ôм2Ÿ~í£ ´eÁ`çϤruëÂL*ŸIåVR%̤GðËD±h”#Œ7^A‰ÕeJ¢Q˜)‰Z–ôèµì¤mÌË”2% -¶c‚d¦J‚"Ž*t“Ûj²`K¦ÒUåá\ÂÒÕ¥JÑôÃjÑMšòÊ Ûäl²Ì-W2¶€_k -@»z°t[e(ô­é9Z=äšéLš‚›²E‚®ª’oóLAY5W‡¢/4–±&+ÍJ6–$¢›Œ%3—*Æf橪dÖÆR䙑fVªÈSÍÒ6[•%šÅRkš˜j’­j¶æªÌÐ4CÉSÍb)’eI7† ”ÌX2+O“•¡dÖBM$›¡¥ €ŒÍ²ÒÕfåJf%[ºF”f)U2´,9¾Vò³–ŸÙ²eH€\3åiŽ0ϧI¢)XÌ5*[r-Ñ2ƒ÷k%?0s­ä -%[QJ–„CPÆÏì ¤!rÍ Æ„ñÆË ¦ª\A¤J¤J=婚íû”HÑÆsµ¤: eJ¢U™‚¥*TÌ”D¹%ÕLIÔ¢é˜)‰JX«dQ-Ô~Öt–Ì›5¤.QX€Ú‹KŸµEØL— ÖÒ‡°–œÖV¹a˜à—?±)m’ª(Hm(ܬ\R®”Ak8iËu‚ôàVT¨~ˆèãC(gÌ0˜Èv™°ÇN§_ NR•`_Ý K¯Õéø¯ƒMK•€MD¨“Ø‹‡'5,¤³ â°Íu}®¬r  Ú¥¥ì«…rˆZuK#°^¬˜‰A¥šÐhV¨<Ë/À¨ä—³ËHC ¶Z¯ja%Ñ"èV䦓ª0+RmŠE©MðªPJ²¦@¥U)… -R  MŒ % éÚ ª¶"â…Q0"¶Ù‘ˆ‰Ë¤Bu Ù D‰C‘$Ý„`Ð ¹!ú9J<¢ÒCÊ’Pð°)îA{¸¨)‡æ:hªƒˆÃ%±j€héNƒ„eáOD„H-£Ë€e’ZŸN)ÒCxê““êój™ - “ă¦3‰ÖÊÀØ|«å1lŠÅ} ÑÁ*}.®O @ðÒ«`´’DH–NÃGj”TRŠÕ¶F - hd€ùÑġԈ„(ªdD$GYqH °¦âK¡.¡1¡ ª@B‘nÂZØ‹ òéèb¬m¡…hQ ˜fj® z¼Ä ‚£A!_ˆP¡`üp -¡ƒ,!¡ÁÄÎKpµú$A+ø$>Ù$>àg^>% G> %—Gâ=DžM±ø2êÀsZ=ÄÓš®Î'ËP§à Ã6(@:—²äâ<¸F"ΤQ^8 9ᬙ/±U ¤D$âm.Á¦uJ`š‹è2i^+(Ô€5kd2‘ù¨¶‡Ì¦XL"› „§ðÌAÄ¢eØV!5’^eÂø]•‚‘•`xŒ'˜Ä=Í$F$þÍ‹£"Š>jè¹BŽSà„l‚BW1Ó@XʤX §mEàÅ“=PK8pS,&ªUý™â[¯Úù`±…ÿI¼ Ÿ‹|Hx,†ƒ×:­DÏl µ÷z€Ð<õ[!hD„ðÐÝC¨d*ŸTWLH0’GUÀ<¬ Ì ¤P0ÕT/›bÑ?P—¤“pyH…—µ“!¸hÎQ:%ÔÊE&DV’ËxÂP"°& "ž4ب\ SD0à È5`¸d[ðà0¬ -<ᨀ}„aÁ˜wAzv -6Å"<™ÕUž, ƒcѣŲp2%¯þ‡2â¸Ä…¯–ßuÊü3‚BãK tLŸPp à÷v¼ªÑx…Å{©Û%éºê¯|)uS"Ó7Åb\E~ﶃ¤;N¢;!gªC‰B£NTùÆN}‡ù$’®K&ømQT<¢P!ñ 3œÑ>o%¯ g4»ÙS¹Û‰i3&'Îvtƒƒ=ÛÊÞ‹«ÀÀؾå‘ÐÿAs¾Ò¤êˆÈî4* -#úÑðLä.*W9ÃILùvò)¦—OZ‘Ȥ•¶’†ó%q Ï”¢LO2u,HÊ­‘¼¶#™:I£ÁÁI&á&áþœˆlŠft1#-ˆ0€Sdõâ@6œÈD8¹x<=š€•ˆªüFçk!ÝýNˆGå¬ *ÒÁâ¡#È%œ| ¦‚Q„´^âbé~1}Ñ.ȦX`^íµñÀ“SÇz|\1ˆ‡ -1˜‹è±)l;í|‡‚…‚÷PÚS¥¤<( ¬ãÁ¡ÄCˆ:xÙrló’ŽTf!€ã€À1r /ÓÇÑ)uǦX@<ÁÑ€AG£o‡ -spŽ…ÕëáØäJsÀT,uE $¶Î”Xm¯b3µŒÓ†ÀuÑ9è|6ׂ+³‰X÷Û.ŽƒmâµÝ†’ xsxÄ&›'ÁäØ6Åâ V m\¦UblÄkÀÕù°rTª8 d,ÃÀKà “ÏÅÓšÁMí\&PFÒø€D§à¸2“Hð`a-ÏÁ6\`mlŠ…D'K4`¢VÙXIÙ`¨ÿ¡ñˆ4N ÊĨ±@ƒƒ§1^‘¦¡ÀI$B VA„Aƒ%a¾1ÑÞð'šNDi0¤ÌHÃ…ÙŽÆÀ*b4:Ò£elŠÅƃTƃڀ1&N$“‘7,†&ÃR ”&B1§çÀ( ï‰1*µ$ºp†û³R`(h<Œsó°aìÄÈ…\ câ´"0 ÈÇ…á€Z -G‚gp,œ±)°ÖŒòsKa\ 8aL.ÃÑøŒÏ§61r£14™ Õ&TZ†SHµ‰“¦i®ã¥µdêÒ<—KPM+M*¥4>ŠÐέ“LÚ¦X¸P4‘ 5i ‰XI#™.IÛŸH3½Ô‚¶é -2Á$h¨ôh^ŒÒѪÂFsP7†0µÕ!j¨F¨…˧M0Š µJMs¹hÁq mŠE«RhÉ¢iöø5ýAðÚŠÂ]ƒhtÇÀÁµŽÓÚ@ÛÐZÙY¬-€`W;0[-BIqš„è@ÑJ%íc,L4® #ÑR‘ÑN DË\ËCÛ ®pàÐ4Wß´Ô$h !AC³<8šCÓ4m£hšVÀ·",Âä¤0t®O!cCÓ4í¢`hšä[$Ú„)!¢1$†¦iZËÁh¸Šš¶BM“ЬLUihih -\>Ÿ/ÔVÈà(ÞK=@„ eÅ^†•ÅoâÒb"/õˆ<ÎCÓ -xø¯ Þ¨VO³ØJ著Ÿ>ÎoS,›Õ&lXø”o"11òXSNjܔ¨ a7n€õ=au*/‰ Â7²ˆÖ!wq€õM±hW-DDž…ƒöµ½L´çU)¼‘0º£ZHýX°`&$ŒîÜv„ÑØžøZÇ8ÒÁgÐŒát ×F"o$\›ÍF¢ !Ö‚Pf.†½´M+kZšVDŽÈ"Gä•éË"$‡9  ð ût ¶©erA[+’ØJ:xä<’Dñ–: >¤ñ ™n ƒŠöÖè@ñräȈ쳉¸øêè6s´¸ÔæA -ÐÈhud°§‡H¨|$[L‘}j-J 6„I—Õè`e&˜°›D¤#ÑŠ8e#dàT>¿ÂÑ&¦2X6‡Ë$‡UÈûØ•7[„ðZÕO…maÂÙˆˆˆ­§Hl`â¢ñ¡ÒÕ`E_‚_©Pì%°Æ‹%ƧÝèòB+L(\Dlu0 ¾%3ö†ÙuS,ߣ90hN5Ñ$\ÚHÂE >GüŠ¡=Š&B”P (Ek±¢àu? ù³MŒc•=:"Ta8TØkAX·Ã&Ô™Á7€§{r…#:V8uO¦“éĦ2È:q¦e2M@ˆ…u7Ä‚XX1ˆƒGM& Är+܄ÄYW=•ŒÓ¶ -"7ñ`ÝI„Æ<ž³£'Áà‹-IT”Ѩ(#Ê\Ô“ÈCˆÐ\E–·‚"KYÞŽ¶`Áĺ‰? cŒáÀ8yâhNc80£ƒ11õh–ƒ1®]ìCv±9òp@Ú‡ Áˆ̦Xl¸û5éeb/•ÖôåL‹G— iZì¥]{&&¨(“ÙÐÌÁ´—I†M¿ôC3+H¦õ¯Ìj2.(Œä31HQË\&£V NZ%8]&"Dæ_ÄÐAÄ*ÁIdPN"„ȦßJpRA%8H$Œ‡dEð$غL`Ð%¤!p¬îöBÅVí@Q6V± -&`ÆŠÒ86š©k8h N‹]-7CžvªTym!ÍÃmNª„Aââ ¤³`BxÐ 4þ´f2—kˆS£S辑12"ûHA\üV@ž…h¯ð•\8ªCÑÀ×e¢V(-i€h£Š@A”4†PH á‚ŽDCQœ'/¶¼“´RàIp'Á›bA)ð$XRàI°~±åMKiI—2$Sjñ$8Â= ÎŽÕG¦‘idŠD8 -ÁD‰Dh.ˆQdya  ”¹ˆL0H„æ‚lú=šûè¨6ýöFÂhmÁ‚騑FwÔH“0ú ‘U¢m$ŒnAÌ„Ã'þ€Žq0&-e.ÎÄПQ £±c80†e@kŒÛHD&2—É&»F‰O‚ۂًǤ}ȉM£eòF"¢¡ìƒH>Vw#!1 ù -{iÁŒ2}yS,.‡òt -ô¦XhZ‘ŽÁL4Œ—éË’J£S—‰&kZ,„éË—öba™&¬›Y•J‰ò’PdcàuðÈ ÎðåÌ*ó/›b¤´ÿÒ<HœYeL¼ú×Ä^Phà@Ö@>=‘Sà&^:_ì!$„àsðÈjó_—ÉȦßDN©Me.™–AVHmy7ÅU DìèdT†[^±)0Pæâà@åmPNžÆLÄ’ƒH`i˜•–àäˆDd(§ËDüB¤JpJ¹õ¦ЉYW=e.“O‚¿¹C},˜I¨ -KWEÅD‚ÍÅ%A~L…­ÑmŠEe52L§j›ÄÅÙ -÷ÐËGAU0¡€™±‚, žžGRf¥ñ1`y4× ¬kÌtP¹Ô* §JjÀ8ºqÑ¢]¹ªˆ_&“NåA÷ãm+œ Æá©cF#øh+Ƭ+X¢*Ü$Á ¥/„M±ÀtÖ§BbûÂfµryì‚iÔ`’Á -ëvÈG•«F@ŸØðX]PBC[!3 qqô$™ˆ‘†p †]M4¼bˆWÃ-‘¬y˜ÉG™úx¢Câ°qh(…ª6ÓegÎÆ .“ â2¾` _.½4*¨•è[Ä%tÐ*©a–P'E²00K¢ÀœþăŒ 4פT …FWÀRHe :ñ¨8²÷€ ]!Iö– ¨›.´ó/v„¾kt½”ØÀ‰CktŽÐ“àØ¡¹® /œ,)„ƒ¤éPdyÏ E”)CãÙ -Ç-X0ŸE‚³'-½u½¢]¹hŠ\×Í ZtDÂV \œÒÁ˜Ž¡)˜´ cu)›‘íÊÝ íBbWÍ`ƒO_¤tÐÝÓ8Rv=p¬îÅÁŽ TlKg‘D\ƒryd é ‰èª£bÇênŠ…Hy@Дϙâ%´‰h[QÊu7ÅBû¯S%,åd®wWü$Ñè6/…‡‡‡”xù„ ÃUhT©Ñ±nS,õÀa$mÚÃ` ÔNéf6ÅbÁ%j¡$ !¡Ôt,#‚]JÃ^×M±¸ZTvô£@JX%,Æ|n1®^½Ñ‘¼›a”"2—<ŒwS,2,4Ð[##’pÿxO§)¿GÄÅñéò` <.Ó†è vba׈fð±*}S,FˆJkEâ(K$”*=¬›b!¦< >3}´3þñ],év¬î£å›f`DD»r9Yå°nЉ-ølçáI™ÐÇTØ,êÈ`Áµ) ßh¼§ýY~ Ñ`îxB)ȦX p±UM¬ƒaðò¶¿5˜Á³›b‘)d¨K¤vâaX_zoŠEØ‘°cu%–ÌØ&Ï‚%Js!¢]¹Ÿ0ò°šØ‚ðäXÝ3Ã/“TÄ)–3þÃæ˜÷hn7«« $°é7É–ƒÝ_¦Ê5ÃMjˆ€.„‚#¨COD$üé6 •X©¢Â1դ̟QåÓß&ù›bAp;“î ‘š«DÔ‹CË\&Ú÷h–Ñ-=%D´ñu™h" † :P4I‚ADSàTí3f-¯+ëi½Gs!ÐôàHä‘Û–Ÿ›aA‹¥>ÞDø!œÜ碒Ì3¹òp|Z¤m:!ƒç3cßZ† Iw™øˆM±¸D(`¶n]! œdLOo.B$çŸài2”ë¨d”vÑLS¢ Ehf` ʳù¸wI6,V@F02"I£‘0, Å‘†A…A‡)Å”sŒÈ&Ò™Ds…u ˜êïD&[x€sWi)¬‘}•¢©BV5¾ÛÛ‚^(„&ã¢ø ¾`»˜¤GºèI0¯ðp7VÊ*x«²±«ò·Iö^à´J²ÖÁæà6ÎLÁ2W‰™Ø¨_\ßðÍ•Ç@’•²(×Ì,6ì‘æü0VªàML,­‰ÿƒÛ;îÑ®æß±¶ +‚ÁL¼§ã¹\»Dz—£8´çЩV‰n“2~;œá¸-›”Ò/$õl×6=7 öï(ÜÅÊeæ«q§†‰B .œv©l^ ”³ÜÆK.Àþ/­‹ê› RkcK¶_î΀ğû˜ø“Ø'FU‹¼kÆå¢~•}i¥ÜïÜ?êV0¬F6ö2È䃽…¿†½óG-ÕŒ2¢F!ªX1I¢ÆW£§þCÂYKûÎEõFß‘œËyêüÀ(ŠÞµ´K4AHØ”!ít¨ðâ.ÖSGÏ×èv/tsú Šbp½¦t&º©.~åFa¯i’g5kßN™#&Ïx\«ŠQ=‹' Ñ2æhÕ&øÐ´œâ†ÝÆ‚7ÊŠVcÂa]gW$‹þ5 :v¼Ÿíéåˆ õ}…±I_É®ŒhÁ lÂ¥¨ -Ã];¸aŠÅèùè3ZªÁ°Œ¾FÑ]*5¸#~¹‚ž¤g0ßc‰àc‰`gðEþ|’&%NáÔé²r¢ÛÑ>%8CÎàk®ä¸?];ƒ5eÜHœœ¨ml1Œ% 4 ö”ßvÔÉgiTQ4•tG8˜ür@LühÙŽm®QçÉ!Ò—dj8TÃé±Ghãqkã÷ÏH¯)K>ÖË„¤£r¤º¨tCÜ’¯õ×2’ÿ"fê–7‚«dT”¬%ÿ>lxt‘„ €k ì‹Ðz&4Zq0XcÄ÷€.÷AdœÔeÕÄ¡UJe(ih"|iç)ñx5 -g¢}ä‹ÂÉ“ƒã6~“Lnb`àà“@ÈóðµxÀ!LNe  pƒ!“qZ6T8N•% 0gñ£2“QâK5R7Êí­¢©&wÄØú‡¾uš¶Fø¤ü>Ä»S´ ‚àl/ï%ÁذSa\Ay3jßNŒn^OnÂ`à‘·å$Ý@°XLŽ?²õ=11Ââô €á -ßjãGÄ3ÐDU¿îâ$N­´×µ­hŸ×OA@n=ó¼ŸLñSí}²—›§ií>RžÙšfú0´Nß`—‰7lð"¨Ò÷aö³–ô³·¡9ݸc&Ý^—èKÞà0@Ë•668&yÄ©9ÜQmî÷‰}lðDÖCqŽgFrøþ§¦^`lp¼8Òý ÓÀT’='ꂸ®-Ê}ƒ£=¼®ÕæY6X™!ŒÍ¼ÁnP’YÝSÐL`ht?µÝ WúF4ú'‰´‚úî‡ÝžÏßO%cɈ©U‹ç`Áy𞱋÷Èò§V¸d.‰BPµZcp‡i¥¨þ*gn<PÁäU´ÌAƒš1`Æœ!YÛž{eÄû¨`˜ºÄãägÓð™J‚Ã{!Êü$S ƒû–~:ßÌôiõš6Êe-b}¨R8›¶"u¢7É•ã)T4ÉŽd*‚r…¥Ö]þd.M^Œ)8øì07"èÍ<ç±ÔðJH3ˆò&ahûÊûœY1Ms¨ NÌ /ìtm‹:10>œŸƒƒ•5|CeJØêåQR\\@‡8°‘ .P†NµßÓÏŽDOv`=ޏðR? ò¤VµEj¿!ÀË*ÙRAÚ}dzɣÃDf̲øì)€'QË?­Nàç*ù," -Po‡ê¡ÞˆÍÅb‡º'†6^YOÇ——%¼;¤§tdzÜÍ"¤²/—p¸®:Òï!i4Pl4LDÖp<Ÿ¢´RhšË À-ŽWü¢ƒxLŒú‹~à†Çéï½ZiBlyÖÕã‰ê$„*&þb‚“’Cþ"%$—¢UÝypêEõS7w¬Q`‚:p¼V¤E Û6Õâõ¨Åq.“XC¢_MÀR®Ã¦Ýª’rà³ãBÙ4v©IUq'_Á3ì"!Í-b¯ÂoØú[ÈðGx)åêúœ0J‘Ol§y"˜ÏÕ6Š×j‰.ÇYmvÙâY[Þåð×[œ.j>mB_Æ¡#Ú°Pº$ =0ßx­óØ„ûÀ÷ Žjc­Sô;!Y¦înt}Ú?ðqOvœœ_ç×TdNGNcúÅtÝé2¸l2ÎP‡œØ¨öÑödãIœH+­«Ï%rgæ¤_ŽÒ+{¡=×vü‹1‰g9éQpYñuxzÿÏ.¦r%Ö¦€,NÌ.V¹Æ—†ûWó¸*ãDCïèÍó6£^|‹e<’9Q;lÐüÙ©Ë€ÁOé2\36yÑwWŒÕ¨ñƒg¿½sg`;¥Sõþü'³}#Qò—½QǵYò©-…ùØUŒ®6šÞÿ¯ -×ïÚ;´²üÊûÏöšmût~î Óýö~Ñ&Ô›ý¨4d’ÑëÁåüïæ×@eÅC9°CÅÞ—Èù5J'*°0‰ÄtaƒKhÇÄœ7‹ B¡ÎGÖ>—t>K®+ÇOˆ«O‹ÊÆ@ç%}za¬ja©]š að‰ü¹EóÂ÷Oôø¼ü4 -ÏZn¸t§¸5.Œ}éU•¸ô½Œ &"/%÷{P!…¡Uý2DTÌm`ß©lø6ƒºq‰–JEÂÑ/{ ÿs5 qWªçKë‹MXòv^HYÚ*y 6;Ùë<Ÿ@8UÐÔžïzd39gå¢z|UÚ0IH™|mH˜a)}ÃøÄò×Y*jèå3ñv©P‘ô?„ØeËÓ8]ì¶gM¨ÏIßȾæÏ·^ß»†¾+¨ÚAf'ÒøCágB·DüpSÃC±¼2DåçÆnì«>y‡™¿¢^wñ†RSùqÒÚËWr&œ•(„È™°gr£{Þ¬])œ¶¹ îð­e@±i$¾ÞÉ1”Ó–õŸ¢‘3’Ñ–µáíd¨ó“%×ɯ€œ ^4lQád.C·NaÂÂêk Ð¥0Thn1ò K½øÈø ºA)Ë“ñZ ~@åÑ[R™Óž„cNa‰Å„ Þ]ÛíE~í´I,5´5§tÑú°ïwœ’ùÂPbºÕ¥ÞQõm,Ù¥4,lÆlDî+ò7 ®ïØ^]™¼r¯€m”䮉`"£ÄK0 CÙ©®pf§'3á†j¼{ÿTßÅØ[NX}8ëÔÀ@:ŽåÌ•áê0ÖE”þ6òŠ%ȱõ5ú––÷Ô”©b,á>ãfê(濟MKP)ñQXàçN2¯·½M¦îj”=<Ë×[´q|hIj_kpx5ŠAŽA´IãŠè›£:™°£‡e¿¿ŸÅY_ßUÔct¼•O\×àÌw"8ÚO -ª^_CãȳaeÉ›NÔ¿ö<âú²Õæd„Ëëkc=o΄¨ï|}YQ3«¹Lx}wÙõ^•ÚøDà6ÅUŠÿg›úv1Lr}áŠç¼˜e“—¤í<Ó‚ƒºHz"¡yXÙZ -M™>˃ƒB¸>xÌppÀø°°DW5C„“ý\9MÇ;8ÆîâSZÂàiÓ’Pù„q'j½@éKGòÀ`Öeü A×±>94Vp³Ÿ¨~]mú»’ö‚ƒ »¼¾œÆeu¸oµ Í%µ8jîk‰C ÓÇüÿð¢òÓ^SÜZ3)Ñ;…’íàmÄÇð ³êvBb·È.eßvPÛÊYݰ €#¡Jx -p#«Vb[—¡ K]Ÿ:ÏbÜ-óË¡# Ëçó2M¹_YjUfœ­TŠÁصVÞ4¶|'(äwXÅ+Eƒa…nö7QzDÿÛè@ñµÜ}óÙòSwG=Åè:‹ÚêüK±ÒJ@.d¾K—•ÏuÐÖKQ˜Áƒ;aC¡dûÃèò>|mNê8õ#«þÞ Yf«)©.Þ.‚}½«æÍ¾8R¸j(@L8Ýó»ø@ó`¡"GAc¿ëYàÆo,z?!Pœ~=Uô©2$Ð{%ǰÆe(sâk s—,T îC8h1Zs¸ØNcä¾Ì켨­|zÈʉæ&â„þf›&YldõjEcî¯5°a1ö6g˜·’ ?gþNš’9êP"I‡în‹ †î´muâcã}lR@ÿ1ThvÎ…=*F@zbq‘$´šS‘)Ó ¹•S‡ÕEçEh)(—6eÞíDb¾®‹£Ù -ò½õà 'AâÄ">ëfb³üðîm:5ÃD±r3í¸(”„QœúµŒ¹°é]8µ‚ˆ‡Ê^XÀœtïóÉsC?„q>rÌ:ÍݦTcy}¿]ìV¨8`„c÷JŽð^JR"Ÿt -ˆ¢)zœô;¨Ïhé‰_PJ|X>áJR*ÎØ^der!ÖeY˜Â‹! ýß³èiŸ‡îÿ›#oDz8/)bÙ{ÝÅ|\Þþ3%UÁÃâKpŒ,†äÐ+xÊŽˆ—C`­æDâ7 mbV -ºáÒiú«™\½^Î»ÔøŸïZAØö0q~cW*HÌó¾øè„SD.·oCWκ3qv«x]ÃjÉYRP¤ÏC‹‡™`¸SRÖU$¦-ô(…Uš|óÓ8︗Ì$ë¸Rs•hò„Ñà{¹AÊE¥Û_]kø™».x1¼'Ð]m,©Táà÷{$óï~«ë•ÖqK•ÆA{ºè…;oרi̾—Õ…©˜@:¡p›YGW¹k>Kƒtˆyf!—‰·â°\ô“‘¸Å˜ö¥TSeDÙ«pÀMIU)KTὌn<걉¢àŒ„3œKŽÂ9]ná$„8üðÙeåpè;&®$«„St†óT -%€ç›•­v…ú™_¸õDá›s4UyTíPƒ -â*‹âkÑ3B `àè ÖÀW>*!4›p¥ Æ•üï:^tƒ|ÉPŒ"ã„[ÅS;^fõp}i&ùçªìf½Uš#GÈêÒØÍê'N&µîïœljò¥VQ¸37Sðjøw8ÄFàö°ÃÑã‚°:0|Ñ -“vãÇ•ºJíB­¢o"ìWšDÅ%þÌRIµÈâµh&úµØC -o'“s & -<Éeø¾ -+[FoQ2ŬÔÊŽ">;77~ó+¦tÉÞˆt¢Q!ˆï‰‘¤Þ,OpŽ+òC/2ºð1h»ú:J+< çS‰Ü6…x”ï ü¾)A_üÁ„© èâ€E4¨aØuAoÕä‘´l»áR €-SÌȦ…`°¡]b¸›r¤Ãò¦Ó,BYà°a2…ŽTÌ‚šî"ŠÌE·|q4дBlM3ÎGè‚fã}k—`Ô(Þ9X%”6¼Õ!C‘,·Ó®¤ð…¢‰¶êøÖÉ"p_#÷šõr¸ið1~€m5o}ú˜f}?ƒN,Ü69=Õ†«Z‡ãÁ½³ƒ>!qêÎxQ\çgKØ>iι_? ³æ~Þ°Ž#ò - óX¹f¥ñ=T”!­ ÇùÈ£EàWœ%Wñ$èS!w!ç=ÊÔŠaVÈ·™1 Ñ3 `øVìÀÅ -ŒP0-“B·Hë<¹¹Ô7ËF'2Jí(”¨ÓºDš…†èr蹚iœ¹å¾[ŽiNœ3,umÙýLøx`üü³J›Ž4U“÷Ê#ÉfUÑjíàÃ|ò Q¢Fiz‚¯`³Ë±—¸I8u ÃñŪqN÷Ö».8Áç8"<Ìó¢#Ã6·‰ŒúI£Eí•øîÆl­-·£ ¶¢Âï%ºçëgf[þßK£©ÿQÑÖâø%oøDxð'²KRø8¥ç»cƒŠ’Ø1WÚ¸¨è°B¨?•Í ïµb¤«ä&ë,‹0hÑOä)³Ø…™áOç‡ñã¾@ës,%¸Èó㣧B:¦öéÌfq L3Ö×W¬;ûïaé!hÌx¢c5W*•9†>¡}½—€hÚ‡¼vœö bÇ÷Aê˜"r+ÃÚîB¿pèQÚ*LÊ»€AŸ *Œs"#üØ~åŽæwùסésŽáÍ~ÍQÒ¾vd]Xñ$ îÅ6=™ÝûŸÐê³È¨’„îôdNì -¢uE,ÒÙÎ,#!6†sñpǃìÕ¡ao†`}d„ -òÁÆÚnmO4|"C†¼Àô6ƒÎ/m¡ÑJëEE÷[÷Ò—kiÈ‹Úæà»?´Â_*…ÖÊŠPÑÉ.× Rð'ÚÓ%–`ÂðX´&×JƼ¸ï˜lçDš§5û(ÌÓ0–1+«æ¯¢;¿NjnÉÆ­Tž(Ìæ}‡P7ò4ÿ©*\À¬'q‘œû {3@!c=´³L Çûúº.Þt©¹0€Ë–o«î²–òëÈbº-öâÏym8ü-©d êxñŽr*ÑodkIÎE‘“æœý4uÀÈ6òˆKù1rnüÔ‘Òªæ'‰™»ü¨Ø;8«|ÿ\ý¿û:ÛH~ wŠûò«…¸²ï ³½fE½i¥å·¤]ÔˆX5ó§«íwñrV.Ù9w³®0P qkD5`PĆyTë’/Î_û:ïH›òMiÏ2 -øÛÔúÞÛÄâëXÝŸŸ©Æ™-K„oX.‚ÅpSû’ýì$†`èzÙôªy&dÀ—æe¬‹îÃÊVþ©fÕHÔ¢Ò(L®nBbå$MšHïô‘§—C-oæ”Àì4ïÅBZA 5»¸úùŽ‚èán®‰üÎeæ&‘Ø vÖ«ÄU>œ ƒä¨ý"õ-“„3g4z>\ù‰C -§xź†0@Þxu©ÅåËê°Ô€Z>óœ -pËëòa— N¿ÞÒ?´Ž&¬ÖÁ.˜”ų?\ôv›Çƒ84Z}?wøä(Tè>A!%^E>=µ ’Ö÷lA3þmèŸ,ºª¹zÙw¾bã%øaZ]zÁzNÝA9=ÈôÚD®ócž ×å”e7~@ÿdäF“­‡=a1òÙcÿÒÅõLE)`ž×7N€Ù*18ìe/(½ý¶hOÎFØa:‰î``Ö‡3ê)™›35ìnfUGo‚û±ë’ôP‚T&¹›nÿLÞ¥æ3Í/9ÛÈ‘¼ ½EåpÙ(À[L¢k!ƒá„!’؃ç/.ì ÷X?•µ ¥^[îÜÏ…EdÓ*)Üq*L43a€öt©×&dªWûRÀC—)ôP’QDÁò£ZË'­˜ @!•(Rò{Þ‘)i -êä(µÉ_Ø ^Ä$ Ýf†wsû dV/?jZ…Zp—Ûÿ£D¡ògæH@÷ÙÓ]t³»ƒ-â’§/Õhø5âßÑÚwÀL¶ÎĶÃ2§Ê¬Ì›éðÉdø£’]Ù¦¤gEŽAW¤Y¹¼VÁì»òÐ bÈhS8ö÷›k8-§%ÿ§TÆ+áÜÖs›2 ÿtLq=>©ÁƒéNm0VhÜsk’¨.¢Ò¥ì -šxBÚ÷Üì½môà?Cqœ{á'FBôhß%)¡Œ’Lh`Zƒ—Q¼ÒK¬rˆ³g¤Æ‰Î-z:C¿1™a(+¯´hÖ+ðiÓòW©šm–®fç -HhâgûeN³ κ½Í±ººÔ¢¶!X‚Nì™'±ìXØÞq%¡Îh@ßå{KTÍŒ‚¸å¯ëÈ$zð‹>rŠù¶Àt„ë¡§ªÁ¤f¶X龞;,vãaÔèn,9Ñ­`%çÑsä˜V½B%n„ï:PvÞÈÛxÛ[¨ÀسϤÙÕ††Ã0DÊ;+ÍÅ \Úæ™Àu7Ö -L蛺«Nro:•:R?_} -ÀL—-|¬ÞÐJg~À{«ƒàF3$vÏé—…S–Þ†,¼Ü ñÖ&Ü4…oИìˆöé€[Šs3“51Qgµ€,0rE•·Ñ¥åèNþ²æðA|Ϩ;YlWx± l#Þ ³=pær Ç´_”yò™|.”ш­déaqûˆ?«9«¯s*…Ü|?'ˆÑ¾;€“]¨œ v=Õn<Ê ¦ª÷”™¥ú='°ï ­t··D¤€7«S!ê†-CœˆivÈ ²ÅH—n™c1üÕVå×%6,Î¥^ Ï\'¯ùÓjT#¦ÚtKQNV¥ëo ûÁd“5ÑB Qꖦ른ølÐ.¬-о~'@Ø¡ù—°ë£]°zf¼ÊW\6Œæa€ -ŽV\B v£@–{c°.2ß„nÎ €·¡¼ñ>±¡^Æ90sž¤æY›×Ô”É&fÅ»müü £ýeeà -*VÈ6æp®¤qÿóƒîyÏî|ˆI°¢büvtÓ)k'ûÆX%Þ’¬½Ñ XŠC!_{PàCÝßõŠÐð¨ø6ññë”UÅéá³Ê»µ´{^=¢2/i¼›F7"‹i•aV#bZlÅb£ëçøF:w€L›D5 -7'Ø ùóˆüéã†×Ø37X}¹c+ü󳜿{WÒ ì¾ºâŒ¸¾Ç;„•„ðSÒâ'›ò‹_`&Aä}K ’ÎC¶ÏH'Æóf©·èÙ¡}ÔÏ6°J©E0@ ¤­Á6°‘Gêð©¬@@Œ÷ÔÀI_›äá rþa5ÁFA;3…TN4‘Ò3º!¾sqOKà -ºÉøý“$ÖàÞŠ‰G$Qpyئ'u8£ÁônM5€‚݃p™çBÁ.»NMJ9 -lÊØG‡íùê!hìÇÖ'€X‡šÉz£’  ÷ò+RÌH2j'¸öìSÝÉϦW7,)âVáĬs­ÿ)1µÕ -¹bÅ'q9–9Ù‘±õ1L漕ésseb^ -Þ>*Rn–;APÈ -+W-¬¿RXL ˜ÅèâèM曎?FÇ4»ŽD³`nd*(”Uqèt•¡r²r¥‡k -4ÑXt1pdQe‘ˆV´ ¦f».¦õÌ¥˜THÙÉ*׺­+­µ8(MG6sÏêm—r ô/²•vÝzþ­õ!£‚Ór×Eu„­»Ò‘kTLEZ>hõ£ÞÏ÷‹ÞØZÅÊ hÅ­´°Æy°þ’®o³IØ×úSDiñÓÓ|\QøtN.6ì+Ô#¤ÿí–[¾‰ hÄ&ñÕ[Å:Én$57!37 %.3¥¶¯$fbOÎé„ÍцëY´|‘f]~BÈgÃ8w;Ÿð"}¢Ê8ɰ,Yyuq¬¿¶¢ÛŠCÙå÷úJ娭:tzRm"c3¤ÚôÐm܃>ˆgãï˜O¬\^Q#s¸×’+‰øG òµÚÐ×ÊñKÅ=¯¯ÀôZ§mÈè•[ÐÃÔůY¸ -q×G‰­d@eó£]c¦¢}"Ê0y¸—°Bô„ÍU…-vµ …®Ìhæj.äºâ¶9¤iøˆ‹x‘ˆÞ–½é(/{.+fù_¯Í“R -9Ý7X|+£D9ˆ]“«{2ÕƒogÀ!XŸS&ç´â5Dù‚ô+}Þ·¿¨0àV+ö*UÁ}Ý>t%* èk¬©ÏjòÀïµÍL§e1‚"½OÓš;ó%3_$Þ{Ô®¾;èø»šq‡B@]ýc'þ5ÒÌ*Hn¹Øáš>ÝÿyKà`uœåO_Sª8Z¢³˜éàÏLx3ϲ oÈe§\ÐÈËY¥kó²û"ã Ôìë -*‹¦×ì{Žs Á8è“ø=ƒKR0²ð3_ÞXŸò9Ñ_3ìæŽÖ4®Øë±Q—'œôÇÁÎR»¬þfÎ7ñ·ÉÏšx€%MPg’/àIí—Ø»d¶%™Y¢z%*UL ÑjG‰^¯j÷¦T“×KD#½utH_ <ÈÊön˜[^lÕ[8®œÎòägŸ&IiB¼É¨1øà¸>œE–öøeÍ#ØÔÖé””ÔªNúÃeÏ+•S^úä÷o¡bÖdb[DV"’šFdQNfªId23©ë%ÅæSz¸ -§ßÓ©]ßUW‘ï´T˜€¨¸4@9x=ÍÓãHB ™<­»`!v§¾—¥s0'Qµ—÷9ãдÌìÖø1λ(Y;YIˆ¡úÖ^‹,"½çƒÌÈH â äjDmW±~z6Q8·ñ„xº?3Äšˆ™<ô›tó`3™ÕðÞ–ÉCž£ºÌyÃJ,º ®A‘ƘIšd4¨³Ô3wr‚QÎySQ0Š>6a‚Ìn·­A†Ý±vÄgçS<ùh%˜’÷MTy"êcj¿a¯>õôö£´Mªµ±H¥Jh'}ÅxñÝ µò4„J²„(µ*‘[!pÁTÜȳ“çO5ËGJ<øz¿jõ$äaøŒ¸´5@¡i h†,hKŠýß;4ðzÔe1Ô*Õ^U[©Ògä’`bƒ4l§ï³”¦çu×7-¼}§ &¾E½PSI/̆ЋÂVÁ! ¿èZs©Þ¯v,Bd%ˆʤ‚à߬K†ýg°õî6ÎUÉôZ…Ÿè=ýfp¹|0ù5ÀYnC¥l`¿{è^CýÀ¿kÀmÐçNòê¶°ÇŽ¢ßl»&žS 7ŸŸ>?c×òð±sàUž²¼¹0â6­5¿V»iá­ŽÆöaƒNÁ¶4FèþªéO-Á§¾tö(VäåPú @÷ßR-./¬Ü!“™ú ù8`î^(®ñírÚ¥àgÅÁäõ¸{E‘fÖe»ä Çàâ1Ã^ƒiBÃüU.Zýþìjã1;\ªu ݳyU€ñ×i_;÷U˜—È»j%YY`/Æ\)qgüfál wgDÉØ€ëŒLÁžq(ô•¹©r¼­ ö Ú‚ƒ¯ÂäŒÆw$.’¶§5Z¿¢]Å?Z’ÊÖlqE±”;ü™ù3Uitð ir|\œr¢ÚÒ{ƒãN‘2`S"žÑõV‚ÖÚÞ"TGR -ˆY¾ÜPö/A üøðAnÉWm„û4t@Š¢~”¢€ª -92_½uvCï-¥«Èèª*Sdv5wT¨o§ÃGç`î­œ7N®ÂæzK öO…Ç8ÂUÉ.Oˆªe:æ°o5¶˜Ã«à€^V¥³å@ÅGÚû^1‰¿ü”²íÞM`!âï!Ð}€IèÛLð3 -ŒP|~zÔ DK½­2HòÈ==az¸ÝXØuÝñ·DóSÌÓaRÈ©°nßùÎå]¸^lûq@OQÜCj¿ñÈ G]ü|ÁL_Y2¦mþ} -•Æb L­"ÇþC0AQt] žÆ ö÷ƒ#²Q 8]¥’ÑŠ;‰ŒÆÙáñ£Î¤»Œ«¹éŽ&‚éuÉC¶:Y–ÞOî9´ãJ?ꪚV®HE(¨Pý§È@æ1ɉÔÿ}‚Bô†É$3E!¦’‡ÎLè{#Í*$*C‰ šÉã(äÊÀ AÏycÅlþ]äñ!{OªÔô¥ÉNÏΆã(Å",Ks3[J™ÚÍ¥借£þ¢V¥ÀÙnžÁÊîFÚb™ë›ÛÌS@‰1• þÄ+ܱI·r²\aÖ²†Í‡³è@5ä¥Ö¶®ëÝû“bnÀXµ:&³þk6&]Â~±¤÷™GÈã0fRnJu>1à ´Õ«®¶-Ž¡ªŠ $åÁ`›q%‰,¿§˜´Îû€lÿ]‰ÿçŠ(ûÌ·Ÿ3Ñ"¸ãJü‡Ìà0a(|#,ŽÈ?Xœ%àmƒÍ˜ÄŸ ŠRp9ï¼rù±”‹pÐH ¹Ò†rÂmW„@Ê@ÌL#8¥@‡Ö¥½«EችŽÉ\®nRƇUbOÅê&Ì .Bâ«q—ò5 5$ ÙßÒ%¢e$Ƹøþµ€Ä¢@‰'ìÍŒô4ÔÉ2oÓTz½õÂU˜š0‡Hn[…åÐù0b’ó€õÿ‰ÌßnݵlÄU‚MêÞøRÖg‰Þ ä¦Èã4Z-Á<60kÃ<Ïó<Ïó<Ïó<ÏÉõÍÿ›<.C”ÉÅ0“‹!¢ÙMvK±E,‰‰sæ¤ñ’¶=nÏXÂĸíKâ°UOxž0Tž¢Fx:><7‰Éç²”– -£\¦lÕ°ßç”:¬'zÉãɺ&gâ™ÉÓ|êk3„~m¦!“G?èר˛P£ëK¢œïÈÚ‹ªí‘PëÍúµùˆ[O~b«Üxr8çÉ‹@›/l1•ûmB£_GöCÅ)¡Z˜í¸ vçôoú ÞHKã‚tÁÌsaä&gÅ@Œžƒ~}Æ6•­_P…TÝ_bUŸ[¢¹g*3ƒ~B™A¿.{-Õuýzþ(–R=F{x úµFUCçxo -¼ùÜy|©|á’NáqpŠùÈ€9%-åHæû)‚'S£ävì<†(®8I<üÍûFÁص朣Ïg¢Æ²ÇÕÛ4M–ŒÑ¯IAoqCŒ~mˆÝXbŒbtN1¿Ð_N1'Mòê -ëµQУà'¢ÑôŽ  z$‹o$[]ú|&êB@U¤8pA9Í…©Òß(3+¿/ƒ_)Üå‡9Õòkľþ$±¯?ª?ùS!?·ä!?9÷’ –‚§ÅEå¦ÞX$Lj¸0)Øy«\Ku<¤®Âb’ÊæäX­˜ðœ/Tß$Øüê‘ÛBJ¢tG¬¸€¨„‹Ã#²9æ)7·3pÅ)l_¬è…;Ï£¢„ÆÆ‹ÀA=±|> b–Î6Bçµ9t«@ÙÌb Jól D $ØšWý4¶µ0¾TõñRÔ7ÔânŸH¨`çå@4MARe_r44Å%b¯¦µx¶+ˆÉ{úülýzÅ"pÃyÕoV;/÷­º„‹CTÉ¢e/0ö -%𮲆‚€‘ÁÐð¹B$OÚZXâK¼‚•œŸgœæ°¹¨0åfϬçæmt›·;gÄʉäóÄq§ÆÄ[r©Ä/‚‰2ÄEOùá¹GÉÃe8îá­×­Ã=°‡/Îʆ¿X² wµ p“%Báå"s -Œör53y9£ pùp]v-ãh¦áÐ Ûoh5àa~¯¸TøTC/|¡ߌÂpôæ£èªÄÛ)LóÁ‡õ!Åàzƒâ»vÀ4Û|™™ì<›HȤîž¡ÂÔUÑcBSšˆâ,Öesšyª€µÇϽà¯s¯Î%´APi²-nŠŒíyf,˲<›¸Èhq¹üØF9%@uV` :»½Å?äȲ%k+´j ÁßãuìÆbOCì6Æn,n`˜la4¡NʤC6òF¦™§˜³``0ðü2ŒI#°ó^ÄÉý88ÓyL<)Ëcã¯iªô7‰}ýQ(5ù9Øy.›«kEìU,óªì‘Ò݆¦–­™ˆT}NÍpË4¡ªŒ„J›ýºF€`Ã$ ó vžæ!;om žÎ1 °óÀÎo.Øy›žCaŸS¸‹æ†êœ’üž¸“Lß²7ó^O°ó>’¤êë·j½$ ”ð²"®§z M°ó41I#í$œéý8L³õ°ó­Q‰mÙ“1²¹Œ”@ØóÇÃQ_!˜voƒ-zÓ»9Øy¶³å¨± ·£–0iÈå¬,Ô\†ì¼ð7 –Øy,‰~/„æñBhú%X…\°óÌ -åR4±-›¬Æ­0ÛѬ[Y¶f¹½j·r«#Ù#ƒÿŒj”¥Ù%U -w‘ÆÞ]7­„ÄΫn§”Íúq)0*×:p¥ÃaXNëê@ÄjŠ@Äꢂ!1ÀÎK¸8§ E% DúA3–Ô4ûBÓá)¥^͑޳ šº -Ò6£ga ´‹ þä s_ ”ÓÌ0 `ç  ÆÖÖ.kßL€H«nÕ–v&v3¢[a,—‘j(ŒBq*ÖÓô - ¿k0u~ûÍꙚ=Zì|Ò˜­é5j¤“Ê/F'm_Rй¬³öÆKT5ôY¥àÃчÍÈíó ì<“ê„rS-{2µ°Õf UëgôëAè1·ÒwÓÜ2­–ph9*ÅẨƒ˜4½ 9¦¥6¹àIçð…±$ |m›ùB©@ÌmT BiÅ€Gi -žô´m³4æžPnj{GnAÍõã‰É›Nù‘ó<þS-¿ÍëÉ/dô§)ìò‹”<äǰ8FËëÉo5Uú[„,ã‡È4%TF‹ -vÞI¸-\éž“aËv?[ªçRq=e¨Ü…P°ðä!ÊC#N8úK°”¢ ânA¿†LR¨Mó(xžº‘|ù›ÓÒ‘Û+§ ä SØPàvÞh‰ÊþβU[NNsHÚýp‘½œ _—šBvѪäv$¯>#ËÏ#è~Ñ ,_àÅ7Ytó2Fɺ¹•­ßdìÆâ¢ Åâ(÷99ªzùº‘<98Åܰy¼uÙ|V§˜‡;\ñy`3|±\!¿Õ©–DѾKÍF~’Â.?ˆCѾ6öõç)ìò;Xãv^ˆ;CÓ“F -_xΆ/C«/=T'Û‘Û5©Í0ÃG‘”ÔÉ‘U£/D«_ÌTŽZ›$^ì©vT–ñè xgk@›+ -Ùzy/¶5–X ójtÖÐu4š„Ñœq §ŒÙü¶º‘|OÝHžk0››Ìæ¹2‚!QÕÐ5‹YàP17 N1÷xw úõù–qO q—åÞo9¸HKJìÀ úµÁ¶ÂÝÅÖö„•(•*MÑ(Übœ˜^²óýÎ"yõµˆÕ ts±LtsSÄm>ƒÐ?Mæë“iV)›1ÝYÌ)æ&‹B:¡Õ£ q¡ØØ‚ˆÕYšÝÂyaš?Ï,ë–†+ÎýË,I¯ý‰þY³•Ç!>·ß}Ÿb¾·¹ËMî}Š1†ÍN`Ám€ðä©“ä¾@P¹Y3éi’¤N³È@’`çÅ켘f vža<}PZgwÓ>¹ç|ì’8¿[N°ó^èÜŠ !J³´ -±‘:g‘AËQ®!Xln­ƒ†A'@`’âɸŸéÝ<Ý_>P$‚ˆ£ ¬Ë椌Ë;N“é‘W¿ÍÜÉV€ê]Ôϲ1r» a*F–7*x_ÁC¾@p‚¢w!V¿š‡ #Ãì¼ñæ=7Ê -hh˜Þ¼Ë8Ì3J^}#ÊBóEŒ ,È€’©¯A3½ªË8|¦·Ðá¨#ƒ øÛ!÷9à´EJ¼X«Ð1¦J¹B~¦ˆ ¢ÿœ© ›¬ÏŽëÀò¬¨/¦ÙÞAyu["÷RßL+–n<ûê!›ý`çv^ -‰}ýñRQ~äjÏ•IÑ:ߥT”_CÑŸ…ð"¿‚ÒŸde"¿÷ Ó_*†ôg)ìòóš–ä8\?C¦÷„n3Z‡E|z g!-»òh1éEM$TCÉ‚vØy`çè"rç!]qàè` p(8èDWðÉ®è‡3@ -Ýì&ˆ:Ï"VXÃRÁÀjwçÁr F±ó=×y¬ÈÞyj wž ì¼nVM<À´‘nV]5À;oF Œ)J€8àE"€¢>°H|€wÞÌвš¹&ðÐß2î yÙÑ€°­pç³wȉ~üÎJœX5°ó¼÷›$M²{õ8‚7;/C8K˜µ-èfÔà^ZЯK³wm1<`ˆ„³5ÒœD¾˜þÈ’ý4ãd'èךýZ³côëY‚»i[ÎôF[¹G^ý Ä]3Ðñ€ÞBŒv+阼9 3Rì<ŽÉÝ5FàvŠ™eã*©¬W¤]H Y“X7·´2ë µ9D|Õãí©QuÍÇ1á8$“¶‚“®)­²AòŸü7 m©§#yu°óÈÊä НqAB¿F5,ቛ)<×X9½AéI4þhx=8ô€S­: -·¹˜v¸óNeʸÐDÛÜV9™Î¯äÁÎK«Xª㢘Û¼ÔÄ«Ôæ'*µ}dñ})µ»(µù¡¤:—S»“º¤PÔÀ$=§Ë ÍW‘–Ã*¤/¬Xd’‘ P}q¢€ôàócðµ>E˜mè`6'Øäu_0›Ïª+(þvP^Ìæ¦³yîë@ºÞ<p#ùq$¯Þ@†+nFàÍÁÎ#Y¸ô€Kýòw䓨Oz|Ò˜ø£Ó:PZ¼,E†Ö¶ÂÈ -`qŠÅ·)rAl—‹ìµ Øy4ŒéÕ^aCY¦#ùmùöêÝó¥ÞçbážCÝT<`šMxÌ®‘½1Ž3=L½ÙHhÊO”0F+y‹D£Qs7Ü¿æT¶`C2©kq¸^MIô !¥Ï/iØÌ¥z6F -Â$lé£O*`CÓÙŒ6 B^URºoNaÜÙ†²¨ó˜‰¢†™A¨D@D€À   ˆ&cQeÔõÁʤ©Tb(AÆd 1Æ ŒA„ M }³ù—ÄìÅ/ñéhëñºjû/ïðÙdŒOÿ[ãé¢O,/ #Ú:3íÆ{ʲŒi»Ûu¤üÇÑÅM<:etª%ØÅ€X zÑ ìâŽdniLÓît•3ìt-(vê ÝXã’º5—H iʵ_,ÊUóZi¯<Ëc#u?tJl4 ÊH‹wª7ü‡œ‡óï˜ ,R…AõÔÚü9 ARÜ]p󲮞jË2t^â$ýFýûY>m{‚Xn¦„§p3fOÎa™ŸIˆß–¦Iº’Cç½¼Êèë„ÞÂÄ‹ûv®ý¨ñçC^jb>K}‘üÈ«!º’ÂíÔkNÖ²·éÉöq$rÞ€¤^QeÔ@!ãWuÃú²y舩{ÿÕ «jË’o;añ!]žR(:Y­ÎäŽTÅõgyØotƒ* gŠoir^'1åfŠc†8 sfbÁ$¸£¨ -ó€¯@íâ‰iAîÛTA[ ²œƒ…*rôüåäŒå¼¦Ô~¿'ø7)%áû º#s>^“hö›˜)â›®íß'}Ã*ûÝÛ¿/8Î#ûÝñïÝà" -ûÝça‡âÄb‚Ã\ ŒŒ7 h@-Ú -¨ÀýލA¿„:U¿ßŒíú#*°@Žî7ÜûpÙf€â˜"`˜±h6°r¹±ù7Ù2O”€‡ý>$''c.Wm—­·ß›C®ºuÃ}ÖIÁ Æ—]ÀÑ(?‡ûý®p,""qÜ(4 ®A/õ­#D£3{ˆý|í©Â…^.ŠÅa³ß/ŠÐÂ6–£xU¦ÃË)x;è~= Y°c‘^ð7ìƒìw®gÿåE”)eÜïÕ®þçßÓ´Ê\ö[Í¿|BX 3§¯RþAöûÇ¿kµ©”ýF÷o5üý>¢D´5128K H86Ë‘‰©×n\õã¹”wŒ -*?þú°‘ÝϨ}=SLØü˲¦Xáš°p׆Ã%NábÈ¢iÂ4ŠGUÝú\6GFG·.¤Çaì“Ô·æûšÛ –ª3*ئ]²Äx$I7¦0âЧ§ˆoCÖ±2-tè—å…AÐuècíAˆŸsç¶”ß ÆMw±lÖ†q‹€Y[Co³ù€&/ÕyÎF#;3¸bgˆ…=v7÷è^¯ÕÂÖ¿‚ë£úÅ¿ñ “WŸpx|u{äÃfY“­Dô‚ûô¨&T¸ Hx9}Ñ'¤mI勪0A‘gÑI%ƒ] ÈâIéÒ‡š§À® –¦­“R|¬OÒ°iž1lëa}„b¯íœ|—3$ñ~UŸ–Ú:ÙœLÕ6ßÜe:Sƒ¾Ä ÝjD4.¥ÁÓÈs aök¬Qb¡d޹@fd›™A¿|«Ô{+Aÿr.Äm{…ºo L™i6dNüW¦[ú0ô²ÙH¨+§!"«ÉÚd€œ¸ÀŒ¡Í=$<ј¿Lœ–í]M÷øË+έ@,º©.k)œØ©±]>Ñè±|ë.@ò-’E†õz0Ã…9µÝQ !qñBÑìåÍ€v+™¶›[8D˜5å®Íô^ì›·Ü±Í ÎÊÞ. S=h}”¼|ÕW¼2ÁÙ¼4ÏLF‘[ƒ2˜5ÐÉáàcBâÄ"S6!|ÕÀp -Z_¦±m]rèp”¬£XÄÁ¯L±›c®MO‰ð3]DJ®§QDr[²ÐN,þŒ(â°!̹ ãš9öÑÔœç}‰õkЬ"i ûÒ ÞX¨)þÂ#0¹ËcéSý{Æî»©CfG£äëk¨ÔÒ~¾.Ìî¨å£–Q5ª¿=‘ …³1¸[b‡D‰-“)A;È;¡lÝk/“u[¦áDúH TÔ¶Z -$>XüxôËþ°–GØq‰„ötšç£eháµÎ軬"“¶&]2+åßß ‘¾uF³àr3ÜÐ.½X-S@E,šê†´rмqÛ­›DãŽ2z;õÁ2c:G¹rç‡kLõƒå0ܾ „yœGÆÌn +𪼩·¡HÙJǬÿóꈣû/\±AO Ò?ëzÓ±ý3XŽþLוà2Ž¡˜N©b››hSÕ¬êÆiq€;H©sô5~<…Q‡ÆK¿ò¦4¶;$MÝQ ‹d­5ŸÊZ„´è¹tR\B‰ž=‚w )¢Ä¥ƒ³¬X{æE`ð$Õ¶hiÓ㇢ʪ¸[`ó®]´¢[øz.úG‡"­‰E3Áòa`ÿ‡Øû´©Ñ9ð‘{ïJÊ7}3°%B€ î’Œ0ŽE<%°1}5•H'«ò«L`üÉë<ÿ@¼o§&¾ZñcªËÐæ’Ç{Ö±ïç{4áy›×ØWΓãƒ`}ÕRI¬bÉÿŸœAÀ+ÝÙ"NZŠY)ñº\¢UÖNßÈB» £KI¢Ù¼‘AŠ’ï)ŒM*A? NOˆæž-J)MüNñ2Í“>e¦œLýjÿ–Ê4ãdäU½Àô”ï$`›–fU´µg¬f>bä\-]ü»ñå¾+í ¾±RŽSwÔO øé›Ý) (ο= JÝ@±1ŒÛ($Ò—•'`׊[¸cNÒ\×c°Zçêh4º×¹¼ä{ª~F£ä-Y›šycjc‹#y੎­ OÉ€Èú!÷1t—žû¾_t)'1š´{Ž-h.Ǫ-Õ–sý©>³=BrÏ -É&ˆ¤0\Ø1œ 'Q_y±ùÉÀBù'ý¾‚ãR-Æ<Æ¿Ûï„?WÎüùÿ›9`Ý[Õè‡ó¿Ë0¤Œòè­>°ë•Þ1£ð̰Î%f‘µaÝoy37ú…2ó1U튎ÁDþChmµ î†5Ÿ¦FìOKºåiÝç¡›ï‰$$7:}ÊKŒòiݭů4t&µŠ¯ëa—“¸(Ò4BÞ¢I\1%}6?Bi—†Ÿ5E`pV¢°Koyæ´÷A[K„1·¿Wû:ýs²œ÷£ Å9kâ,äË\iƪýŸÇ"\<ˆWGœÅrpá¶yÎ`¦vÈXµu¹s`‚HZlÝÔ¹©ˆ½HŒâ†úàÈÝQÖ Ö#>~ÿê"‡_ æW€Bª/T%7F('Ï^%pRþ‹5ا'¦—kÉ„&ä0]}~¯¿[^J,æ×+ú:,iÞN8«¢+A( œŸñ/2%«¶ÃÎ80"Á¡kùɧA…ÒÏ«qõçŸZµ&k6{l[]Ê5¸ „E³<^ápe¤C„^¨ò*wÓZ<þYþ¡°@¦Gö`À¤’U»Û£õ²èSE)ƒ™rVвK%°}¤Û/)뀕x @ÁA‚}¹óà›ý¼Å•>X\28ÄÖ3„†ƒûµ‹2 -)ÂHkÜߦEÉpÔÌi`(´ž"áÛ Àaoˆ§Q÷“O½è’…îàŠpøiÞ…nL;÷h0Ì÷ŽüpÆÜ¤2ÉG¬{VTtv%˜Šy¾8Ž~HÄ$9–pnNüI°"öäÍÒœ½‘Tä®ônPÖ»o ¬ÎQ°6ˆ¯'²xòdÖÅ ÛF>BTÂútB…å§-ÈâÖ © ô  ( ¿QåùG~'Í - -X@ÐzøÅ׌Q}I¥ -4ä³`¾(É—Ÿq ˆ6ãÞšL2Gw³]Ò“þ±æ/)UÖÝÏÀ;#äGÓ—ÔBú,t>YKªQ²J~:ʰ¼*GÄçš¿¤ˆN½Åó‰”îT ÍʤÞ„–4r˜Kƒâ¶~IúÅÎö’këÏÁán~O|3ʬÐÅXªqZèmd­ ï4¡j¹¤0õà%„ßXUE€ÑùŸ -] -°Ç<€@=">mõÀfÙlhóÀõÉψ$d£ ¬íhrñ9”/œšljŸH¼»„ÐÃt$æuÄ¥¯ãWÉÊæƒ³æb›ex$šøb;3MÞEŸ#ÌRn¦Tr¿Ï&u@^Ö\—¡Êi ß Ã³5N¾µ´— ̸/;k˜¤Êl5oIˆø,ü¡¾úaÌ×qYhÔñ¦w½ô©8ª8ÞPbÛ¬@Ùåk,þU”fnKåJž‰@ Bë»=Tna !8Ð)9Fwàap%X¼Çpò? ¡ëø)Ç_,‡«P€w4#Qud¢ªâÆ5XOý¾ÕÿçÔ½¯(vb‚|M~â'!8„ÅO&çö8U+&U«çÕ!ëä<-ZYQ¢‚äô¤IJ²J„F¨kU›”ŤT¶jLLK¢I!§´Ç•SKc0 -õ û–ü}61)–éÒþ2øeébîDÂ"Ó¤J]·6¾˜T³æ÷„‰-»˜ˆJd [ÿmªÿ«S©ö¬Ðx-½\‰àš¿?3LÏV¢9ê}g+ª‚‘Ô’Î9¥5œ7¦Kï•2PÒ¢Ž?ÒÁ'§è?Íy}M¥èÂLlIoPcÐËŒr*¨} -ÃÁ‰??o&²‚Ü7ËÅ}…•†'@¼ÚBý£6UmcœH/•Di›\8 -ÚÐöý\=I5'Äc”½S·¯4ƒäÃNÀ`3v”ÕP,pDÌÄOÒßùá=.Í(Z›ŒM¢÷½<£:=·ÊlÈ”2vªêÆÉ•Åd‘é¦§Æ”Šº$z¶4ÉÄ“&„é:¼¨ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|ÿ þ@Aÿ¨Ûs6Ìÿ2 ðýòá ³‡C¾>jö (T×"0ÎÝú@á©E³>Áö (øÕ"èÐ…®ú@>ÚLS€M{h$굇™ œ>€€W{° jéõÚÃO0G>ØÐ³¢‡ÛOa‚Ó‡¦Õ‡+Ì5Z*è ‚Ø¡pt%ö@(¼Û`Š= -ÝöA'àb„²}Ð ÊØ¡kt7ö@(œÚ‡#ˆÇ…Gû  ²B¡Ï>ÁFöp(”Ù“= -PöᲇCÇ>Xöp(€Ø‡#ÀË…ºÕ´3þÑ¡@|z‚óõ(àÞÐ}= -©÷¡'¤_„‚æ}è ø×C àxtÂö@(ð݇ž`= -p÷A'”`„‚×}è 4ØC  utÂö@(݇ž …= -1÷A'a‚È}Ð sØ¡ Kÿ -œ5`àô¤*Ô¿ôJz®è!”ôhÿ 'PÐÓý;@Sèÿ gSèÿ ©ô˜ÿÐÓ$=éè€ö?úHÐÿþ;@ßHúåè“ÿ÷µÿ ÿ 7ÿÐïØ5ûúûLÿÿÿ3 Ѓ‰ -Ѓ´?8@*@Þþà=8¨P=œûÃô€ ‚ôïПèß 8ÐCÁ?8@g - ‡ˆX€¼@ÿà=H)€LþÁz0R =Èüƒô £ zØùè!Fôpô Њ-ûWDÿ3ÿà©Bôpå Ц -И?8@Œ*@iþ°=ª =Èùƒô §Bô°ç Ð -С?8@h*@þà=|© =dúÃô`¥‚ô êЃ’ -Ðê?,@D*@´þà=ਠ=ûƒôÀ¢‚³õWT4” zXï‡è@Ð}?8@ø*@ýý°=È«P= øÃôÀ®‚ôÀàи -ÐC…?,@Ú*@þ°=P« =øƒô€¬BôÐâ Ѓ° -Ѓ?,@¹*@<þà=ÀªP=ùÃô ª‚ôàäïð¯d4¾ÿ€ØÐ™ - - ‡È~X€¼TP=\öÃô€¥è´ ‡'@¦ý°=$© z`íèHÐCm?,@:*€|ûazˆQAô@ÜЊ - - ‡æ~X€DTP=L÷ÃôÀ¡è» @åý°=(«Wlÿ4fü°=« z éèWÐCO?,@²*(€†úaz`UAôÔ Ѓ© - - ‡§~X€@U =`õÃôp©‚èÁ« ‡H@dýà= ª zhë‡èAPÐÃ\?,@|*(€òúaz°Sô Ø ÐC› -†à_dÿ4”ó¡bÐ8?,@+(€ÌùazHXAôÀÎ ÐÃÀ - - y~X€úUP=àóƒô@¯‚è!  w@ý°= « zhè‡èA\ÐÃD?,@Ü*(€2úaz°Vô Ò ÐC³ - - ”~X€ŽUP=©+|5º*èZAô€É ÐÃÕ - ‡M~X€¨VP=„òÃôà´‚èá” ¤@­ü°=­ z˜å‡ègÐC.? @9+(€xùaz˜YAô Ì ÐCË - - d~X€NVP=8óÃô²‚èš ‡@Úü0ÇT3õaŠ ‡Ï@Vü°=d® zàâ‡èarЃ?,@+(€Ðøaz8\ô°Æ Ðá - - ‡8~X€üVP=ÜñÃô€·‚è¡ ‡º@€ü°=¼­ z0ä‡è!mÐ#?,@c+(€$ù¡©þ|ÿ5øü@Á ÐÃö - ‡ ~X€°WP=tðôP½‚è„ ‡ç@&ü°=$¯ z`á‡èaxÐà ?,@À+(€jøzè]Aô€Ã ÐÃí - - ~X€bWP=ñÃô°ºèሠÔ@Mü°=ˆ® Nu\ÿ4“`z¸àèa{ Ð?@á+@€"ø¡z _Áô°ÀЃú - ‡~@€ÚW°=ðCô0¿èáЃý - ‡ü@ü+X€æW€=ü¯`z€_AôPÀÐCû - - ~X€ÎWP=8ðÃô¾‚„ùWdÿ4xÿÅÐCé - ‡&~(€PW°=ñô°º‚èˆ - ‡Ø @AüP=Ю`zØá‡èAw ÐC ? @½+@€jø¡z^ÁôðÂЃñ - ‡~@€’W°=˜ðCôð¼èa„ - é,@üP=d®®d4-+(€äV°=ôñôP·è¡ - ¼,@wü€=ì­`z ã‡è!pÐC?@„+X€Öøz8\Áô€ÆÐCã - ‡2~(€ W°=|ñô0¹‚è‹ - ‡Ì @YüP=p®`z˜âèásð¯d4—òAh ÐC+? @E+@€Zù¡z@ZÁôpÊÐƒÓ - ‡P~@€¢V€=„òCô@µ‚èa“ ‡« @›üP=h­`z¨ä‡èl ÐÃ#? @c+@€ù¡z0[ÁôÈÐCÚ - C~(€ÞV€=H©W|ÿ5ù*T¬zèæ‡èc ÐÃ5?@+X€¢ùzYôÍÐÉ - ‡e~@€NV€=,óCô ²‚衘 ‡– @ÅüP=À¬`zøåèaf Ð/?@9+@€rù¡zàYÁô0ËÐÃÏ - ‡Y~Pë¿Tÿ3Tô!  ‡x @ýP=Ы`zØçèá^ÐÃ>?@ú*X€êùzèWôPÏÐÀ - ‡w~@€V€=¼óCô`°‚è! ‡„ @éüP=0¬`zçèáaÐÃ8?@+X€ºùaÁþ|5‰+@éèAY ÐCI? @Í*@€Jú¡z€VÁôðÑÐô - ‡~(€¬U°=dôô­è!£ - n,@ý€=|«z˜è‡èA\ ÐCC? @å*@€ú¡z@WÁôpÐÐú - ‡ƒ~(€ÜU0»º\4 @©*@€’ú¡z`UÁô0ÔÐë - ‡¡~(€dU€=õô «‚è¡§ ‡Z @=ýP=àª`z¸éèaWÐÃM?@¾*X€búzVôÓб - ‡•~@€ŽU€=¬ôCô ¬‚=úWd4tÿ°¨èᬠ‡E @gýP=8ª`zëè!RÐCX?@”*X€¶úz¸Tô°ÕÐÃ¥ - ‡­~(€4U°=TõôЩ衪 - P,@Oý€=ŒªzxêèaTÐÃS?@¦*X€jú¯dÿ4=* @…ý€=´©z(ì‡èN ÐÃ_? @s*@€þú¡z°SôÀ×Ѓ - ‡¼~@€òT€=äõCôÀ§‚èa® ‡? @sý€=ü©z˜ë‡èAP ÐC[? @…*@€Úú¡z@TÁôpÖð¯dÿ4†ð¡³ ‡* @ý€=T©zèì‡èK ÐÃe? @[*@€.ûzØRôpÙЃ— - ‡È~@€ÂT€=Döô¦è!² - 2,@‹ý€=œ©zXìèáLÐÃb?@j*X€ -ûz`Q¯d4|ý€=ô¨z¨í‡èHЃl? @@*X€^ûzRôðÚÐà - ‡×~(€ŒT°=¤öô¤è!µ ‡$ @©ýP=0©z0íèI ÐÃh? @O*@€FûzxRô0ÚЃ” -ÿ¯d4ÚôE ÐÃq? @+*@€ŽûzXQôpÜЃ‹ - â~@€\T°=÷ô£è!¸ ‡ @ÁýP=ШzðíèF ÐÃn? @7*@€vûz¸Qô°ÛÐƒŽ - ‡Ú~@€zT€=ô¼|ÿ5-ü`¡‚è!» ‡  @Ùý€=d¨zÈîè!CÐCv?@*@€¬ûzàPÁô0ÝÐÇ - ‡é~@€>T€=L÷Cô ¢èº ,@Íý€=”¨zhîè¡DÐCs?@(*@€”ûAeuTÿ3•õa½ ‡ @ëýP=(¨z@ïèAAÐz? @ -*X€ÊûzhPôPÞÐCƒ - ‡ò~(€ T€=ˆ÷ô¡èA¼ ,@ßý€=L¨zøîèaBÐÃw?@*@€¸ûázþt5ÙüpßÐþ -ÐÃ}? @û* @÷ý€=ì«€=Ü÷ô°¯ôpßЃ¿ -Ð}? @þ*,@ñý€=¨zˆïè!@ÐC|? @*@€âû¡z PôàÞÐ - ‡õ~@€T€=¬÷ôp ‚7Õ\4#*@€ÞU@€üzxWzðèá]èaÀ - y @€äU@€üzWzðèA^…è¡¿ ‡z ‡þ~@€êU@€úûz¨Wzèï‡è_èA¿ | ý~@€ðUp™\4{ñÁ\èÁ s @€ÌU@€üz0WazHðè!]è!Á ‡t ‡@€ÒU@€üzHWzHðè!]è!Á - v @€ØU@€ üz`Wazðèá]è{ulÿ5H -ÀU@€$üzWzðè\èA p  @€ÀU@€$üzWzðè\…èáÁ ‡q ‡@€ÆU@€üzWzxðèa\èáÁ ‡q ‡(€ÌU@€ü!Ñÿ -Lÿ3ýñàm  @€´U@€0üzÐVzÀðèA[…è¡Â ‡n ‡ -@€ºU@€*üzèVz¨ðè¡[è¡Â ‡n ‡ -@€ºU@€*üzèVz¨ðè¡[è¡Ârî_l5G*løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ?@Ú* @þ€=h«€=`øô ­ô€áЃ¶ -І? @Ú* @þ€=h«€=`øô ­ÂÿD3ºöáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZ…^ûWlÿ5þp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áJêLÿ33÷aà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaÃä_l5}þ°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -Qê -\4å+@€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U8Œ\4:óáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèAFulÿ5„*¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðeþ+Lÿ3³óaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaÃë_l5ý*ØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZ…(þ+T4%èáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZ…ƒúW\4ºÿp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô Û\ÿ4^ - ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ P‚\ÿ43ðaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡:u\4›ý€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«ýT4ðôáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZè§Wlÿ5:üp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°á«+Lÿ3iõaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaÔç_l5³ü°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -›ª+\4*@€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®Uˆš\4pñáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèulÿ5: -®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üÒÿ -Lÿ3éñaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaÔî_l53*løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­Â†ÿD3¦öáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZ…hûWlÿ5ðýp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°á^êLÿ3÷aà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaÃ(ä_l5iþ°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -eê -\4Ñ+@€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®UØŒ\4&óáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèÁHulÿ5p*¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðoþ+Lÿ3Ÿóaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaÃ(ë_l5é*ØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZèaà‡k ‡ @€®U@€6üz¸VzØðèáZ…2þ+T41ôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ô°áÐõ -ÐÆ? @×* @þ€=\«€=løôp­ÂFý+<3`ð}vñ0vôKüØÑaìè—ø±£ÃØÑ/ñcG‡±C¿ÄÆŽ~‰;:Œý?vt;ú%~ìè`ìè—ø±£ÃØÑ/ñcG‡±£_âÇŽcG¿Ä:Œý?v˜nc–®ö?ôÿ5@ -`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°Ä^ð¯Üÿ3ïña‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø"ú+ô59*,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`GÊÿ¯Ô3¬övô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0lBüÿ5ö}€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~@Y]Üÿ3%÷a‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–øÁ{þü5oþ°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`xU]ä4*ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèCÙü+ä4,óvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`G@ª+üÿ5v*l€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ? ú_Üÿ3¥óa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–øÁëþü5ï*Xâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0¼ø_Ô3bÐìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`(·ôÿ5¬€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~S¯Üÿ3ÛÐÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñŠü+ô5%ða‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À§®ä4½+ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèÃkü+ä4âôvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`G -ê -üÿ5,|€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ç¿Üÿ3[õa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–øµþü5¥ü°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`Èã¿Ü4•;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ /õ¯ä4bñvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`G -üWôÿ5, -`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°Ärð¯Üÿ3Ûña‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø%ú+ô5%*,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`Gòÿ¯Ô3˜övô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0¼Büÿ5â}€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~àY]Üÿ3÷a‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–øA~þü5[þ°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`V]ä4ó*`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€!oþä4óvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GTª+üÿ5b*l€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?ðú_Üÿ3‘óa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–øAîþü5Û*Xâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0 ù_Ô3NÐìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`È·ôÿ5˜€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~0T¯Üÿ3ÇÐÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñü+ü5ða‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:ÀР^ä4©+ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèÃpü+ä4Îôvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`Gê -üÿ5|€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~0è¿Üÿ3Gõa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø·þü5‘ü°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`hä¿Ü4™€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑ†¡úWä4Nñvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GKü€`ÀŽ–ø;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰°£ ØÑÃ?`G°£‡%~ÀŽ0`GüWÿ5 -ÀŽø;z8;z@âìèáì艰£‡°£$~ÀŽÀŽø;z8;z@âìèáì艰£‡°£$~ÀŽÀŽøa;:À€=,ñvt€;zXâìèvô°ÄØÑìèa‰ á_ìÿ3ÊñAˆ°£‡°£!~ØŽÀŽŠø;z@;z(âìèì衈°£°£‡"~ÀŽÀŽŠø;z@;z(âìèì衈°£ª£$~ÀŽÀŽø;z8;z@âìèáìè‰~¢¿5*ððvô°vôÀÃØÑÃØÑ?lG -`G?ü€=(€=üðvô vôðÃØÑƒØÑÃ?`G -`G?ü€=(P=ñvôvô ÄØÑCØÑƒ?`G `GBü€=$€=ñvô€ü+Ü3xöÁìèa†°£ª£~ÀŽÀŽlø;zh;z°áìè¡ìèÁ†°£‡°£~ØŽÀŽrø;z`;zÈáìèìè!‡°£°£‡~ÀލŽxø;zX;zàáìèa^è¯ÿ5¼ý° Õу -?`G˜€=¨ðvô€ ØÑƒ -?`G˜€=¨ðvô€ ØÑƒ -?lGKÀŽZø;zXvôÐÂØÑê£~ÀŽ<€=Àðvôàì膰£`G0ü°=8€=Ìðvôàvô0Ã\«+ÿ3÷aƒ°£‡Ÿ€=lðvôðª£~ÀŽxvôàÁØÑOÀŽ<øa;zÈ ØÑC?`G9;záìè!'TG$ü€=vô@ÂØÑƒ`G$ü€=vô@ÂÛÑÃ&`G'ü€=lvôpÂô¯45eþÀÀØÑƒ¡€=0ðvô`(`G ü€= -ØÑ?lGƒvôðÀØÑàP=Hðvô(`Gü€= -ØÑƒ?lG•;z¨àìè¡`Gü€=T‚ê胰£I€=`ðvô °£ ~ØŽ~¯ê -$4µ*`G;Auô ¿ìè'ÀŽôW€=àØÑƒþ -¶£‡š;zè_vôPTGü€=ÈØÑ?`G2vôÀÛÑã€= ðvôð(TGü€=0 -ØÑƒ?`GŒvô`ÀÛÑC¢€=$ðvô(°Í¿$4Ñò¡¥€=”¯;zh)TGè+ÀŽT -ØÑú -°£•vô€¾‚íèᤀ=¬¯;z8)TGî+ÀŽH -ØÑƒû -°£’vôྂíè!¤€=į;z)TGô+ÀŽ|ìè~ØÑƒO€=Я`;zØ °£Õ<ÿ5*(PP=@¯;zP€=@¯;zP€=@¯`;zø)`GÓ+ÀŽ~ -Õуõ -°£žvô`½‚íè!§€=d¯;zÈ)TGÜ+ÀŽl -ØÑ÷ -°£›vôÀ½‚íèa¦€=|¯;z˜)TGâ+ÀŽ` -ØÑƒø - þ¯,ÿ3ÈóAvÛÑC‡‚êèwØÑƒ†ìèwØÑƒ†ìèwÛÑÃ…‚êèÁwØÑ…ìèÁwØÑ…ìèÁwÛÑC„‚êèxØÑƒƒìèxØÑƒƒìèxÛÑ‚êèAyØÑ‚ìèAyØÑ‚ìèAyÈ÷¯T5!+ \Ávô°£ :zÐ\vô€£;zÐ\ÁvôP£;zè\vôP£ :z]vô £;z]Ávôð¢ :z0]vôÀ¢;z0]vôÀ¢;z0]Ávô¢ :z`]vô`¢;z`]Ávô0¢;zx]vô0¢ :z]vô¢€Áÿ -,3Ñ÷!Kvô·ìè!KAuôÀ·ìèÁJvôÀ·‚íèaJAuô ¸ìèJvô ¸‚íè¡IvôP¸ìè¡IAuô€¸ìèAIvô€¸‚íèáHAuôà¸ìèHvôขíè!Hvô¹ìè!HAuô@¹ìèÁGÁ¬ý+Tÿ5 ÿЧ :zÀZvô §;zÀZÁvôp§ :zðZvô@§;zðZÁvô§ :z [vôà¦;z [Ávô°¦;z8[vô°¦ :zP[vô€¦;zP[ÁvôP¦ :z€[vô ¦;z€[Ávôð¥ :z°[vôÀ¥;z°[ê -<ÿ3=ÑÍ -°£°£šlG*TG:+ÀŽ0TÀŽtV°=T¨P=­;zP;zZÁvôð Buô`´ìèAìèÁhÛÑC‚ -ØÑCÒ -°£‡ª£¦`G*`GL+ØŽT¨Ž¤V€=¨€=H­ÀYþ\5œðAaØÑ’ -ØÑƒÂ -¶£‡"ª£ˆ`GB*`G+ØŽ~T¨Ž,V°=ä¨P=p¬;z°Q;zàXÁvô0£Buô ²ìèFìèAdÛÑC‹ -ÕÑÊ -°£°£”lG'*TG.+ÀŽHTÀŽ\V°=„¨@¡®T4Ú*ØŽêT¨ŽÀU°=¼©P=˜«;z`S;z0WÁvô¦BuôÀ®ìèÁLìè]ÛÑØ -Õу¼ -°£0°£ylG]*TGø*ØŽ®T¨ŽüU€=P©€=ø«`;zˆR¡:z Xvôà¤vô@°‚íèaI…šøWD3`àô^õ–¦ïQ¦'Bš~H]š¾æÒôCªÓô ¤é“T§é‘HÓ?U—¦Ç—¦R¦¿‘¦¯R—¦o/M_¥:M_#M¿¥:M?#MV]š^^š>Luš#MVÕ¥é÷aêïu´÷ÿ5ü R@šTXš~‚¥é¡A§é'@š&Tpšl¤é!C…¥éa&Xš2Tpš`¤éáC§éAQ@šJTXš…¥é¡D§éP@šVTpš,Òô£ÂÒô0 –¦‡œ¦H€4=ܨ°4=ô¤éAGöþ+ ÿ3¨÷!JÓô€¡iz¸Rà4=H(@šº,M -¦0NÓC‚‚¥éaLÓô` izHSà4=(@šÞ,M=¤éANÓôpSXšê8M4¤éaOÓôàR@šTXšV -KÓC€ -NÓJiz8PA×þ<5 ÿ€¡ÀizˆR°4=l(pšœ M! -œ¦$HÓÉ‚¥é¡HÒô ¢ÀizøQ°4=´(pšx M3 -œ¦HÓCŽ‚¥éaFÒôÀ£ÀizhQ°4=ü(pšT ME -œ¦HÓÃ’‚¥é!DÒôà¤ÀizØP𹺠3"ÒÄ -HÓOà4=4¨€4=ˆœ¦‡–¦‡’‚Óô@ Òô°Rpšü M1§éOÒôpSXšê M:§éáMÒô ÀizHS°4= (pšÌ M -œ¦0HÓçéAKÒôP¡`iz¸RpCÿ - ÿ5KñK¤éÁ§éAJ¤é§éI¤éáNÓƒ‘ -HÓC&8M@* MG°4=ô¨€4=è§éáF¤é8M1* M–ÀizXQiz œ¦‡–¦‡CÁizQizhœ¦¦‡™Àiz°PizÈ JÔ+¼ÿÿ% ò‚q*Põ°MÈz™4xê¡›úhÆ_H,d‡\S4ÓC4íAgzX&=MÅÔƒÑ\¿Ä€ØƒÑT!õàKéïhPN£‡6fœ¦‡³* M‡œFa* Ífp𶍰4= á?>¸$ÿQðp ó<H }'`ÀC ïxJ8?€0BûåzÀ˜“€À°ÁGy=` è¡@z8'ÐÉ€’¥Wdn·£‚–=$‚è< ê<4˜ÀõLp{N.HéÃÐ=,@á¤@äz)Ѓº€6 -ô/ ‰=ä è¡@ÿz0(ÐCÁ€ÊøÔ€R÷ÐO ‡(Äùƒ+<‡z ЃS±Ú†bè– -ôð°ÀCP w@ß<„ð(À)LÀƒ4–“‚“(F¤PT c=üèY@6z¨ÐL‰žÚƒ¾}pŒÿƒæ€ŒxPsÊ¡€5P ÖÃPðV N=˜•Ê©=ø%îa¬@a@Ê<`6ðððÀCP t@@Ó<ÜTðhÀÊU’ƒ³J€‚®=¸ -è™\ÿ¸†=ì> ôð& ‡É=à èA±@„z,Ѓ¢€ðÊÚÔ°bM÷PW  ·<¤Ä à¨àn@zxp*ÀCPÁàø€‚þïÁd! °ó·w؃ª?BõC[à¡Òò‰þznA€þàx ó͇5 <|ù!ôÖéM -±e=p ©à¨‡¬PµpìA!xð=”VS*ìš<©@l6Q¥ì -\‚>ô ~ˆ€—‘îü@¨ö°2øÌAíøòÅzô 2ø,?àÀƒÂà‚xØü0ï‚>àa\ðÃJ<\ ~¸ €‡eÁCðð+øá)f?tÃW|ÿl®Õ¡£iÔô0=øÁ‚?4Àƒìà‡/xü°”ƒúà¡pðC"<Ø ~Ø€‡³Á§ð€µÊ˜ï1ª?xèæ@Ïð jê™ÌzHüð=¸¤ÿ pógÛ@þP÷îáÖ†>$¹ù@úÀ“=„Ù ïCJôð†>”~Wàƒî³!¸ú`jˆ?ðá"ö o÷ د{€vÒ‡ÐC | =`€ù߃ø°x ÿ ÄÇ8ýæ¨ßÿЧrW¼ÿ* Ðûañ’‡¾è!C>tч"`Œ=ÇZú‚dô`àÙ‡$£‡©ø0R:ÀŒ=˜Ä¨zÐ3zø‡wíƒÍèa>lÖ˜‘=ôâÏ|È-öЋÜÂÀèáÒz‹díz8б—=XXâQô°¥:WÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDýÿÍ ÿÿÿÿÿÿÿÿÿÿÿtÿí6œ. I9¸¤² ˆ4C"bˆF¶òÉ€ ÙÊ'ÙÊ'F¶òÉÈV>ÙÊ'[ùd+ßÊ·råÊ•RJ©{XXÁ€p8Ž¢Œâ „A0†€aŠ!BcˆŒpˆùf¾e6¡Cõ“?Ó²žÊT̰ÛÃ6W'MÿÈÒÇ ÜkWƒ$coÑ'“^…oL -'QI^Ø_Ì(½‰ç`Aøa˜‹¦ªï7 -µ—ù€Œ[+Rýðà`ÄÄìÌPB _`CÝ×Gv9ÄŒèqW@'8 èÄ Éc´Vf° =€óDTïÛ†’ïéO‰$t€”ì¸ýŒrÒjïER=×V:e„ï½Ùqû?å¤ÕÞz®­tÊß{³ãö0ÊI«½Ïµ•Ná{ovÜþF9iµ×V:e„ï½Ùqû?å¤ÕV:e„ï½Ùqû?夕Ná{ovÜþF9锾÷fÇíÿ`”ä§*ë -†ƒá¢â{ov¥4Q•u )ª>Çíò"i¢*ëVFwÜïEÒDUÖ%=tÊß{3·ÿƒQNZí} Hš¨Êªè”¾÷fÇíÿ`”“V{(’&j’"è¹¶Ò)#|ïÍŽÛÿÁ('­ö>P$MR=×V:e„ï½s"L(ZÅ %*‰Ê©ŠH&­bÁ¢÷ì’(+"™P´ŠVM‘kŸ É„ÉÞ»ãˆH&Hb׎ Ò`X.ë‚Ñp< ,˲ʱ¿•Pd FÃñp\×e½ý#…H(²£¡À*†H(²cÑwl8`ˆ„"S -íPÁpÀ ë‰ïÜþ/R×€P00f°,+Ñl8‚æ¡U’4NG`€ ³]"Ñ•Ìí’n͆Óèh¶ÙÌm·ŒfÃéln…Ž;Îz˜-£Ùp:KßqSÌ–Ñl8™ÆsܳJŠ fËh6‹ÇÒÈíoBdÇÃpÁl …B¡( :¡›ö9$*–€ fË\*ÇíL«X.˜­¢e×ýv­b ¸`.ZfyÇ…7¨óÆ#`«0@Èf3á\$§IŽRd@0@"€ø£=ø â«o¯þlìˆ×`­Ë°&{ ÝÅ93>ô™çóƒEMM&’o!µ}tlX-heõ'XÕwÕà  ¡ôAVo ûVAY]Zü¯Z<ŸW I«¤¾Úö¼*Øøê[¬gƒ•@E@Z™ËŸ,vj·GhJ«‚±j†í³ -l ŒÕúP$øO·Z¿þÞÕÛ$XºJõ9¯¢ÉØ‘ÿ®Vã«5 kO°R}Nï}޼S§U=Š‚U ®jãU¡çê$XïZÅIVÃS¬ê-XÝÛmṊuÐ’1PðÙ{¯ß@#Öm"ˆ<‚Rs4d»§Ærä” ª±þgX«.¬ªÀ¬ž4@Ahõÿ«&—ÕピnÕ\ÕóˆW›rº -©‘+#ÖKd1}Æš¾êG¨Ž¸<5ªözª ýG`ªÖ^V«ª -XÍG+tƒ€>% SwËnÕÔÙ{‘犂a üX½ëU§°š>XA„õXw:æ<þ'@qjÚ#·[«¾Å*<™U讪†´úNVmÿ4#o•RÝó™Wô„ì‰]o̓õ»ÂzXQ«'ÄêÏáRî%`áÔS¤†þÉøT¬Ê±ÿl ,Ê*É®jZõ2¢[Í+á·DßÕ{XW·3Ðë0‘Ú«’ ôãMVBAÐPaÝ› -}Æ£BÆÔøIþRµ USGNõV››¬RuU·V}_U'"Pßê4«:ê£(bUI\z°Ž6[XÓAªbÕF¬üà±C4à^©7—dyU7áUi°jµU3ʬ^uUß x¯ªg ¼DV§0Öu/W(‡®PüécØÛâÕÕÈÆîw¯ºÃ«ìh ƒlaMÑ_UÄªŽ°J%Ö¬¯Ãs5 À"¡6ªhDÊŸWµ[U¬»ª9ÕòJp¥Võh[Á“ôòlU¯Ý¯ÿ«…ÍÖÍàÉ@tÞ«;8÷*E-V7ê&Y|Ÿn~Å‚ÅÔÔ¤:«î¹ªªj?dõÅXæiu­_•™¸¬mÛåG'ù,¨@kƒ b—Ó`žp‡ÕˆX«Ç*$+£±ŠÓN'ØWj .CU$TmRÕøÿO«ªJzVó b¹ºw××*‘²ŠÍV]Æ~-~‹ÐIë4aÝVÝb½ V ²B|å<ª€ˆB-%TªC†€AÕõRÕÃÿx±ª[²Ú VEÍ -u<±ê¯¬näT@©7«ÑôƒÄ«6ÕàT ¯‚a¥íö?Ða Öb- Ym~^þ¶~‡òO©ÓKò¦zeªä_«Žî?ϳj ¬!´êÙW VÛ`X’sbOVAí»Ôúëý7Ð- -kj`]\ A$«’£z2@‚P“zê#óÎTWR5(«PV;_U­ºYZ@®ä‚®ú¯ -dŒ‘·êÅji @WIí{[7“ðH¾ºý«å~uƒX÷kü ªëg]rþòú"4pRóg’¨Ú ¨J¡ÿ Âê΢"@¯oU; ­®Ûj÷žUË~LSkÇr ꯖÄ-¤‰Õ'¬«Kd…›ÚY9 ðÕ¦T¢+9ÙHЪŒ^Õ6=ƒ²šÚ¬ ±¬^âY­iÀRÿÁÚצDqZ ÇÓ‚ÿ }uëWy Æb2¬ PP5²¬Á`>»h’QƒÕ“ƒªåðmSÕ/c5V'™*8VKë‚FVDúŸƒußÁn F“«c m¿JÌ¡Y±fkhc á%BÏ6©Y0)=–ª¯Så諸ÌjVM.@¡»ZMÊ*O °x•j¢ ¦"q¾÷äÕìêÕ5¾šDˆ•4±‚ÈÊø&QñŒø´ËS9uUGªž=Uk¬z²:ãThZÝT®ÄÞ¦d5wVŸVðP€‚°XÇA_F7²žðYÇÒ>·BjP=V¤2ÕK®š„ÕAYu®Í0­ú«„B ( -ïìV®âU¿:ânÿÕAÆ…ìX§MÐÔ±r…€mý,‘]©‘G5‘«RXUVÝiÕº®ŠÂUG¹â -«ˆ£Uoì‚`zM¶»j+¬E¬%ÇjLVZææÇ>(BMå]ª‡87UM»ªR«Z{³:Œ ò\ÃÀ€®Ò»ÔWˆ°²÷@ì躌m+ÖšÀÀ—X¿²²NjG$Ui©¶Û?Lÿ󛪳:ûª[V@ã¨Õq/HVz°>R²Ü`vÖz‡É¯­Ý—÷r©ÁYòoäþªz€®ª€$ú?\Žs–³ºAt€52bÕVš@Ð^Úò˜Cé -€5¨>©Zæ©6öc•¿³*gðX«)9p(AJOD„ubø@é"¨ªœ2Óåb#þï_Iý\2ÕYC:­êGÿ¤ÿŸWO ñ7¬æûVSþÀqÔŽ£†õ9üEК–<\N.2êÁ“¼¦zÔV]ÜXÁ…S°]ìij®@»ŸÆ€ãý†ŸÔxÿJJ¥†[ÐÈhRÅŽªþç¼Q ;©2á5ØQ·ãaû¤Ì^·JP‚ì6¼·Kîò0Êî [‹Ÿ[ ö[n~Ø{9<㩬çáÔ kRðzyÊ<[g|ºªzýÝÍ1œðÝ@-ü[næz™ÔjR‰Þ¸ï¹WgBg\ŸÇz`ŽñNã8ñ”Ðìó2¹Á¥ ÎM=ÞŠè¿eEÒÎ?*æý§Å‚.ªEëï5$¶áÏÝY›v°&O˜åWËJ]½Öonon4w<š¡k¾œ¥öf¢vø¹ÛʃýÇÒl /G؃¯–OŒ!|YÖàdÌÚ$ÊÔ*ާ M‘àOÈõÐ’a[`×fÛÿâü^½,[Ðeqï/s¡hE3–·¤b4SÆ©1±íq[ð“4¦FZ`X–Ù·`µP" €H} mÿ ~HBJÖƒ‚Pmå€ ^“Jý@Ûþ9…ùÚÖHþg"¢œT"©T0à_ìmàiä,H^û_œÃüÔ‰ž½ë tÊçp€iüŽÒÃ$h‘×þ7|·]ä™ÒÙìýn¢œ ®þ»ÝlûmŒ%› G*({¿»(›'…aþù^4íq]ŽUUç}¾ïˆeˆÓ”É×냢š(›DÂáÈ:KÍ··€€Á “.®K{ø“iB<…Ç`YÚãûnDç0æ÷Þ €GÆYˆ”jß\PG>†Éû:!´»¶zÛ,TZ‡»'·ƒËßþ(ÚD*5"\˜/6cU=ão*©ë*xq˜¿¯'"¨‚LË|aÆ×/ç “VÄÀëû5Á -ˆòàxlþaÆ÷-‘FV¤vYUIRe„Ô¨“‰7 .«ºì€Hád¢$†aBŒc 1Aúl5…¬>d@£‚‹—Þ:Z@ƒ;põDôîdtõ£Yˆ¶@tF_uWÓ¤ãÕ—=[ÅœÕ —–•"5«Þ¼‚`@8ü¶[GþÀ•ßïc´Z=®nº­«ó5 ¾X؉wˆ ×Ö󰾫Ü<Z(lv•y„¡Ú¦Ýª(¯`¸'ÑYò£Uu—U9óí -k«¢ÒY¼:d\a^²fÚËU4?}Õ~Ã+‚­¢g5¤#žÅmü=V…/K>ò -"º6žVÇ‘«8Óœ««Ö’°³½x ÄcÒW_¹ÍU¨]ýI»š g÷9D[5­K} è¸]¡¬W8™ä[\å9-âê6 t¼äª!q•)2fWá-]¥çÕ%ˆ¢rwuÜ`ïWVÏ*Ĺ‚†§"«ñøƒ]J´Ên4 ÓÀ¾³Þ««c!¸ª+WïËý”Õ ûÕ!4;jl±Ê¯•Rc@czËÙcÏUÕãRWy; ÄQ,¿ñUÿ½Jb JC³\£C[½šÖ:RIyOa­2 zZíw(®Òf[Wƒáµõ[ 68¢_Ý_ NZ°4„SÀ+XS2WÅb«¨N¬êÌåY ²×ÒDÉ^ ès­¶ƒ6u–JÂîí¶@žîüªœ{x'XïÅ´svÄÛ­²NWPa@Ô«VFÅÕ„ëD;áék&˯ðjwü«ÉÀh5±! -n0W¸²¾ˆ[Õw¸?pZå7 mn3{½Ð§YHÕƒ“²àªZ7ìøãªØ\í*WÛZ •h¬«ë’^µó4‘yÊŠ*0°Ÿt@±€’ê|ïš+Ô‡dÚÕ'­N¹UØs!ìØÄX  î1NBz¿jծ .­T¸W+åXEèžššè×+#Øêœ¬ŠÉ ˆœÓrõ‰ì»Y ï«™»ê²ebÈ Ž¬Òöª*ò«IÿMœŠÓ6„¨Ün•-4&«í¾›íZm}hB—a°Œþ*ƒUöûÍNƒ‘óÂ&3O¸‚“Ê«F(§w»‚w¯åBVϾçæj°ð•²ÀºiÒâéªø*ZhaWû -Í]ÅHÀµ¤]jU!"p¤m%˜U0c5|Oë²*ôûê¸Úa¸®ZO®WMƒ)Pìã®¶a O^ rv5\ƒ¯Ä+âs¤4€fÀºJåËê¢ -h‰6C}8²Õ³põˆõgã«êc ¯ÖÑu6²XJ«¥@_Ȫô³Žt«ÆfÕiN@fj‹wxÐ>¥Õˆ@Úu­ÊrGÜG¾ü«ŽvU= $NW¯²:H`eÌ« ƵCÉ/ ¯Gµª«O#2 ±W@ÕeµY¬^.ßjŸ±kÒê¬ÁU¿•¶@æxæ_åÐU  ôḧrP<¬y ‘5˜2DËãï4µúg «Ô· -Õok]0# R|x5­N Ç[" \Lš^÷’_»ª„³@åŠðñ…ÆŽÀЧ,7ЪFUQl ËH«w˜¯:«±fÝc .Þª²bh5~âá2 -ÊW‹t9Z˜³¬¡•s±6¨ `¦³À¢¨=öªó zˆyXÍ䬒̪Ê’Õ§u½AZµtüï·•RD…¯ºÑ—Ç@ĉpÎd Ó¾zB +=ωÃÐ˯"ÒAòeµŒ}¬~™u)@[!Œ£ž«ëZF·ª^ôUDèª>…2ÐRÞ«°±ÂªCºpëÇë…A -[.ÑXŒ#è œ­N)«šhp]áu\e5VÉ„¬&[á]pô’Ža÷—^çÅY ßHšWMw°.†µªÙÅ• -Úce[ Û~Ž£€©ã:¬f¸à0¬€u)Å: ÝPaõ!ÊÍäh«ß——AWÅñGØŠ«ßù*ñ(¬” „ káº%`fTya¬t¾´p8¬âZ•n-Ôª#«†$|À·­¶E7÷Wac @´ÀÜK ”½*ŒHD>7P-¬’‹½šz•„="ïCÐItèðvàôZݵB¤¬~ -˜Xm…V7{³ZºóÅñ4OÒW*v^UãÖuaMRŽuÇoüž#a§±Öèë”ÎYW«:!@(wUBYÅŸuƶzV•Îj„HW|€J1 jV/Åõ9]õŠJ] ã*ñƒµ^†e1ˆu'Š!ÎÊU&¨-gU»æî„Vq†P@ÛÉËá{«­òãÀWë*b»Ú䮊 T|µW¯~a½Q| SHn +{O±P¨èÀ©Ð­ƒ]e•Ó!hÕç[V§ÐRº‚ÚÇj'( ŠÓw˜ß”̯2¾«°/ªWy•H ÖáÂZÝf×ë$> î‚À‡Ä¾Ë*rõÐê8ñÒlu•U1÷}5/ð*‚]­`#‰6_E¢ìt‡õO¬*deß‹ÅPÅ2Au=;tz6W-xX]!L­–Ö ²Ú) öœ®P†d¬6øz$õE˽DÈ_uÚÑÈ@;uUÌ]íV:aÍ!V3Q”õBOüÍ#vàÔèáÇÇ2r‘Õ‰VÕU«ò±»‰sÕÍY%-¼UÅ»€øÉÔê^ôF¿«Ï[ òBñêfFÂÅ4Ðݳ’óªLXM>)¹5îÆ¨»¤‘½ƒÓ%§3«Fað„VÉd5¥óä­¤, Óê‘Õ˜ù›œÕ‹jÁ«{h?«Àa +²DÖ7ÑXŠ…£ OÅâ"?Õ#û:«ò=ã\«Ì„V4Æü1«QVué¹|u“†W5›ŒÀêöUšj hXÿÿ@mÁ @Îᙹ¤¢h„ …ŽÎ#‚ -’‰á&984U¡úN‰ £¤7—fá®R¡(°÷[†F L·¥D… !ã·Qd ½w×iHQ>ÔÐ>ïÍ,™ÇïmíBIlšh Ò–aH®ï±¨F¹xPDa”Ui ·UU’"Réa½¹‹¢Λo„ñ@Þû¶ÄÅÒž1ŒÁÚûsâTà÷®SV×Ývož(ŒÂÞPÂÇïí$лýÎŒÞ}_P`œ"_ÏUL×¥rÇ»Îg-Űù÷Mè{‚ÂÞ9¯Œ1L9ÙÖ^­Êy`"l¡)”ÊceŠSe—a´ƒ'¨í‚ ‚§`(² ÁH†Qƒ2ÈC @D|dáЀüÙ?\Á[g×mOáê °À”WÁW£sð2³ ³Y`‡q0£Õ*³zÚ‘XŽÄ€q]wpÕ%8å*WG¹­>¨ŽtµçÌ‚¶+†‹Î¦@^@žW@„ü -#°åj1Æ^ ìp¹ZGY@¦™L'®Ú=Øù+á*„Œ"xѨaËF®Ê çL ýÄB—ÈÝ÷ªùÝôÒ@‚I¹˜v„>¼ÂÃÕAàT£ÖOÒ«4Ánd>ÂJÔꟗ„~ŒÞ–w‰Fm@ÎV@ÖôŸ«ÐS ¢-$WÕnÕgv«¨@x°@—Ìh•—;]@±á꓇½:º ¤®‚ààƒë*DˆÑm.ÍA«„d -1±cuÇh Àš\ÕNz˜@ÅíVmp1 „ P.Z…®)…n‹¿j@ïj` [¬èÑ)`cÊU±ÂÑü³,(¡MI¯ª »‡Ü{Vg‘ÕW,û~kîÑ’Î* ¹ø¢×»^®>œ@Ëã‚®–¥YÈò+Ô!£Å€ê;Õ´]A¯ðÝ€¤P£‹a sÕ¸i¤ -®>T ºÌÂTÈ×b´Šø Ý‘W»‚SÙ`ôª¼FW¿ö¿ -pÿ·P -}…²:!-y7«*¿BßÀ­;Rqb0ßÚd¸Ô9xEsß(k1 ¶@ø€ª0Ð^A|…äX²à•«’.n æi‰a¹Ú«Ä4ðœ0ÓÕ«þUÖVéNÒêø‚WhûÖÉà*Èdõ.ŒŽ6Aöj-C¸zÖ ÙœÔÕÝfáç'Õ®ÂÄòÜ›iÕÀWhdJH‰s¬¸ -¸ -º¾®k^!^eC­P JÊÿ)Ò+aŒ‹-ˬ&™–™\mp\\Õ'¢c¿ãñü£®Si Ý=ЀÚÊÙke\…xoÆY`ò‰uu|ë§@ÚUË8…J£§ˆdèE"6À€>=ðÁgIhI‡'ز!«3«ÊKW ³ ‡‰«© Ä+ì$!ýªÜ3‹‰Å -(Àqܲ0„]¤UKï -Eüç+€¼­\õÁüš3 éö}°Ó}«òò’1$€ŒÖ¯jòRøzäÂ×7ÕWȲÝ\äD­®N" È¥ ›Ì„Úà6³ ýVÕ3Æ&X  b_µcðêüOí­ûPÑ–·n AZmº½°t•«Y˜´@Fåê^à«©Ÿv^%j«>¨€(xÝ]^Á)ƒüü¿uäé×Ì"P^2¦@rüü_½CEó*ܰUò Yåv–Ø<ð'ý†hµîÙ€¨'­³8èªNni,s!¿ê3+ÖÕ^š¶J’û ¨_Iéiu¨€W¸lãj Ï©˜…±®TR[Á£Yð¶@i#¹j™uWõ³æÕó:jÚk}oUœý=ðöf¾®Nq«gëê²Ø,|xpUC®Jý*:»Ú@WOÛÏŽÅ[çc³-|ЬJ[Ðð²G«±$P­Ž5TZ=Ì`7¶Ž«m`kruÓ°«朗ÉÕ"xuÍZc¬'&P50ÈÙ?y©¡žGn8å苾ì../Îoç"$ ah¸i5ňnϦ6óÉû‡ =‹,5¦æýZ,ϼ=M ôwžô؇~ÿ®ÌõQŒ†é¿uµ—v˜M¾ò;Z†Kµâ6Úe°“ºþçV-ؤ+ë“Qáš½;ÔÇÚÆìÝá)l úžRµõ£œœP?&G©ž™¤n’ôŽt¿“Xrx]!£\O‘ˆà„«îuc“1ýÄRˆQœÁÅi¦p{†är©ŸYEˆ ‚¨Bìr V<å¼¼@ &I¢( -! 1€€b>œÚ^ý‘mMóa|hnðàkvq€|l§X:Íu_ðWÀ¬ -Éüë)1³áÕL!„ŸYÝV3W…¼’@¥ÒV¥”&½Š.<¤]\!=W}ÝÖ¥ô¿®c¨AoÆ):¼j"Œþ«äª›XHÕtIX)îÆÐM¯¾»„ayJw;«Ài›‚×íù‚…— +ºW/Úr3[ÝB”…—Lh5HÔÎæÝÕá¡i ¯¾÷  Ö°EÏûmçªõÙ¿Î!¨†˜!®œL]aÎI_çU¼Ýc"®ž€ y¦ˆÕz½ŠWÙø¨C7Ȩ GPj5Z -C2Ÿ}õj¿Ü9Wƒo—ì/_hŇÑ]­ájãU^…êÔ%ëåUDhhUùHN:X«Nfõ%hôJœŸ-Wðp?²Ù¾ÕÝ ~¿÷ËŒo¥^!0Ä´`VsÂíí.§ íºpZ3Þš«v[î`fF¥Ü«r9´TöÝ1^«Hä±Z­=–%®Á‰¦ÏŠûO‚öjÚÎ7 ãÔq«cÈB â¾Phÿ:ˆ{§2£Ž\íÆNU^½øŸØJ Ø=Ëmk‘â:ùi‘b=‡N~þÒ|¬™ØwîUq\¦>j•Yï¬ÞÈuH=û¢] ðEs9du+±èÇ G¹úª-f&:xõ«þ:AQ`ǃUéáAά¢Â€< -‰Ž¸ªSágAõêÏÍþ-à*€6b°Öˆ-$ì²À`÷ƒê*ùUάjÄ-a¹jü•£WñSU Ç[ª>î$”㪧–,¯º²&PúÒÿºšg¯öؼŒw ÈD¸WI¸QŸÀrÕO&ÐßrùÕ¡2Æ5ÕófV«`@Õ5ûõ<ä*÷ÐxõóËB˜`W ôV m*}4û»I\õ¬ëÕH}ñh‹Ï­F`'¸Ê&ÈÕ ¡QûjV±7¢î{ÔsĮ۽>ËÕNÃ^%ìË‚ ¦-äôUÑÂB[’Ö~ý- ee Ha]lÃ]›H°•ºÚ\‡R´WÅ5lÙáü+ `@'Ýrõå;!̱s±,¨ÀKf WÕg×. d»FmÎÕ3À^¥Wo -'? ݲKî—Aݪ>+Ð\\[-=뇵I8?v¦A’ü -Š [“ˆ¬Ž« `/¯Ž¸KR®’M§«NÃ`û‘Ô¸¸ŽåWPLW«Á}¯¶Wé\iNP Œš4®#ð’«]I“«È•…¤e!j€"V ³«¥­RÎIQ\@F˜U€¿xç*qب 4tÍM[¤ëÕÙ_M[ô°|+i³:×aÐZ\—Ž\•ûj\{•T·#«;_ ÃU¤Ó±Ë±D-‚Ì(`På ð;o±ãBŽäâ`»§{§YXU”%$d –·={‰,÷%М—ÑøC};AOYœÛ%ˆ½””tî:ÅÙ*³wý½¨Äþõdb€CUp7Úă9mE’ª Ž‘u Ó·ÑµCAñv>‡ÇZE 9”.^;Æ\4nRÃÄtUUo- Ê Žôqõx‹âê«ôÛœÝêCÚºÂ/kžw*3Á¿Ž2 ÐRXëê5éRÀåãVUH Û[îµZõTƒ -ƒš ®„kI(5L‡Š«êg„,t$ƒ“äV©’,dz¡ˆ>4Á½'Á­.«Czz;:lµý芎«nõ`þl‘ÊIh2> Hq›¼Èuð2 ÁÚ6é”ë¶žà \Ž n·ª & e7W‹Ö}h4Xp!Áí[Csª¼¬ž ¨Ž«Ð¦HQ…[­’@ŸµUÇN! ­róèÕ» -ØIqµCt«ixu  ´´Rç:þlPa¸Zl!hÏU4¡:L…[%¯B>“…´9Òj®.ˆJЪ Pò€~®b-Ýr¸U†2¸ð"Oµ%¿®½èb´ºŸ®Û‚…â]\:Š4"Ю[}[KþxµÕ (j@Ôƒý+$6«œ W½ˆrÁ­>“Ú0zõ^dÑ b’£UY®¾?ÅÁ­Òþ%Y˜ïU Š\¥åŒ¡U~ (5[≭^1ÕÁ­ÎvbH±BšÄ«škŠ­¼Y’t_þË`YdZÝñ)eÉåÜ*ÞÆFœ,Ãõ* )|¤ý€Á‚&¡UWcGoÒH¿ÿXà±Àù×I’7I èf‰|˜Ö€€è+l­bØV#P5ÑÜj‚"J¨^¥3‘«ØsÝ~ 8|‰Vwq•]‡Aª€èVGòÇÂÔ"ЋWk;sõ›áyçфח¹î*,y@!¹jGJ‚°±P®t‰@l•Î^u,|ù‡&Ó`¡cp-YæjÓ[Ýꃤ%Ì5øt^ÕÒõ ÁDµÌÐd@¯]]¥BÐ'PDÙ!ØzuN¢"¥ y*sÕ‚ZeåVeI 5x¼ -p¢øs-QΌ밂†vW#[“„ -¸¿Ž¶\¯²½°~^‡Ì*)<Èu°‘Ñjަê–³AÉB½jr<«Ÿ¾1×™‚…ä­æ¨:¸ $ÊØêMdà‰ˆW3W¥ °wšÁWhq_4 Ó`a\Å£^œÜª]ð¯Külq«f<äê›Y]Ô€X"sÕìÔ5Ø*I7zkm•mÓ^å€5äªý‡¹î€Vƒ<›ÕFa«^í-8­gÓ7^ÍÑ«-¹îìhµU„H¨VÚ*¿ÿ¯R$üJðù+XЃ« Õ ' È5xšRƒ´Rõ0ÔÊ«ì¿góÌ€H¶€PB41X7€ö÷ 蔫¯ôd!yÕ0!W÷n™V•àFš9[픪J55ø$¯î,æ½ Ï*çš0TÎ|ÊP;Z7O¬ð×Q1éí%xuˆðŠr-y •ýrõ~ÖdÁjÄ„¼ZêïŽ_‹ù…ØbÂUiªmÁ 9²U(ï?¹Jy5§9W7¡¹Î;X€Œì‹—D,bN-`N­D&*ÖZ‘'€W6 h,ba²ˆ´Œ‚ –^ã^µUG¯&4£Ðù.¥luÁÕ>.Ûj÷\âqd›«¾nüÆBßô0([üØ*BWÛ“uÒE“Á„@L%ÑÖtµíÕ\È4½L8ÇÂØ­ë -¶:æj ™¸º<c®ú:vÄà¬.\ýÇDÞ!•×µU\W77ëÙ늭pu'¶ŠìÁÙ› €‹½¶ŠÂÕÌ(¤µ³Ó½îëF^†ë—ìÝ£ ˜àXëÎR´Õø®n-ߺÃUûÄŽ,¼ôj¯­©¹Ê)°À1z{4°Ø*ÉUU—Tûº•ÁÆ‚.ȯ:ï4áE]7ˆmɦ«F•¨c¥©# t2®,ïPXP뺃Ø*‚«Ý—…<’òjfú“Í%žý)dsˆsÙ€f7 Þ )0¿ÂŸy±[Åïê¼2¿l'å¨s-ÀWWÌLm ¥?°ÀšÄl•çª0L da ¶ªöº -W‰6qa¡’¹Í‹o`«tWš‰«Û÷lGdaÑ%>Í«‡u•¹Ü€}`á; ƒÊ¾M8\UÙ×I²X¨²[ͦÅýò¼:G•¯tV)÷üg]‡íª¦‘•@r¶VÜf&û¢¼¡!,ìj«Âˆ«RO4YÀìª?õjžË¹ˆ° ]×í}WŸžy±V·o¡}Uy«x*Ÿ‡ßY¥NXô¸ZÚŠ,¬D¯v»ªµä"¯,Pþ ':Âã[]EY€;ƒ±Ð•±ðß{UJ”+7 JÚW}6GSˆÌGʬª£àh˜ ²@º„ÕЉÝjŸ”“On@TéD:(,,71®ÖÖ¬!C6Y«4SHAcíÕ´drx@¤U§+2 °®ªcʸbpÛ4Â8’w£ç 47é­Úo@[iKB¶Õ3ÇUpnâª}¯ó&kUMG ­"·zMó‰Q±؜ՄÆÖÖUbM5ò²‘æ’$` -iϨ"ˆƒh`Ñ‘0 ‘ ÈAÚ¿V8¾ñÑ\§tËr•©€‚0ÆŒ'P!J´ -ÝkI̪¾·2XPXh»®Æ3SìÊYÜýW稸 Ô‘ÿ?QC(ƒhÁ HÞ¦paÁâÆUŠ& ²ƒ0VjIÊ T#q»ÕX$åðmrV϶ -Ìy!R90Æu«Ö”(Û´s‚·/Á›kÆ5i»è’.™–ò*«;$(n@+ øè!ß®…«ÓÓçܪDq¡©Jºî¼YŸ=DKW§6Ó­F Û„1Þ¯3·JÃŽlVAèÂb«à®:=í”m˜@MåjBRv#ùE¶UçMÌD÷ëZ¹UîbPIððqQnñ߀܊ ž8|5üD²Õ1ÈÂQÒ -sÕÔPýzd®¦^:^ÉàUaݪ•ºD$䨬v\$а`Ò\÷šwušŠý¼jĪ—Èfµ´³%d@h6WûC_L ®J—˜íVÁ ¼:q~Ås4«¤ÙÂèÍÜ€D¶úµÊV}ÄUœÏ%ž"îìÀת’…†+ûž•| %`P€„æ §fZ<÷”V -endstream endobj 21 0 obj <>stream -'0ÐùÃw[CÆ7H§±‚§û#1>d«í78ÀÈ_Ùoù¢h$ОOì¿h^_-¯„© ïÛñJÞßüªiv`BíÜ~¼kÏÛC솘¤[ÓC!ý‚;”Ø-g%ÓðX¬MÛrœ±Éí\‚]üÅo"OýÁ€G R_Ðô½Ö?ŽÃÊú×ÚˆI„;ÞIeàî4û3ú´Øoýq8`·ÍÞšº?KYêïgêZ@Ô‚~—4ø[Õ£=^çÄã"&ñ-¿lœùA -øˆ%ö ÒQsìÔua}>åójo0…”ïÒ‹ÀQ -Э¾2ŽÜñŒóÐöÇziK4þ…­%æÏ6+¶ƒƒ%oЖn“ug)@úTÄ ^¿;¸º¡Xýø‡ TòbUØ1àV…pŸýø_øcßÄöà³ãêqÀ8àu?§ƒN3•{]ðKN§7ã<»çXî¸nqùQ¿ûÇl ¤•݉9èbn‚UýÌ}ÌóÐã;ª³ÃCQÚ ’â…Qa,ûÕ·Æóô-õ¿jC‡°J}Yš5(¡êS¸šæeûš½Æí8³9‡`ØLŽvÝ€WW 'é_\êÈwôv>‰k²@[ß{ÊgR—?¾q#®%§JöʶK^ô‡m:®Uñ>0ð„‡AòÖ›¥ÓÇ»zwÈŸîÍÅj°æ9Àcú…I7´Ü/Hb{G·Ú—fLŽòÃÓì!iÏàæÄ$4m"1¡êQ,gÃq¡ñŠHÝ™­ã,ŠÈ<32VéáÃw(~rý„-ùeVP<¬/ºáÁ ~Ç›9J+( ö=Îoüàâøˆ^SŸñøxpGfK¬¿l…Ì”IëvUªI`ÚDÛ‡Â;J¨ëfp²Y $¦/S>xÉ×E|½ë‡G…k7î ›ãœ¯È±úZüÜû&6jc‰0T.×"÷ ÔrdºãxX—ñ2ê&NßÜbàZN,a=‡ìîÊû:Ñø ¤ÃNïOœjûå&®Ñ(Ò˱·¡hë¹Éw¿'¢ÜKÀ0‚$¢­W³%ü€ü =ˆíÍ´•¤òÙá3WRõt@tLë}u7[ÜŸŠ_hSxßYã&Ÿåˆ笖†Øª{~C³2¥Þ)aœúš80“%’ÊÊSØ×pb<ɈT2‹Yˆæ.¥%8Ñ1jGçS“lìÙ„n›\ÇùPæÃå±Ú;ˆ#|”ÖAmt´…(ê©\K.έK‘EÑÞˆ0tAº.ïUšŽˆö«EiźŒ£t§*ÀLÿhïùÛ>X­3â1æµ¹wFûþnm]¶µµ |À醶L¨Ì·^ kÇ·ØÃeÀðkKš-£WûÑþ[¼¼pòûëh´×ç¾’Pð`ÎIjrnœþrýV …XŸ}mß­+² 1)`Û ”¨+¿¶ï°×î—Ž1áÀcŸ`°†Mã£yðu"ïxŒ5)äL7rH{X@ç›L-’ì¸ø­¯~óAÔ+ˆˆ|i×>ò ¿ù÷Kðiâ˦|Ö<žqw´…¾"§;^çâaX5Xr]ŽÏî8έ˸¯nâ˜Jõ/ÿŽ?|­wMÌkk?ºJ&˜;kGõ~Y´ËE~%ýw/€ãÕ:1éW¬O`›ö .ÇÐ`£@ íÓWøËGW9i8üüøø!°­ö;N<Øý³@íþô@øÉ\wk¡_齄‚ÝÖЇ+äaŽ Îdáiq2(ûÐÓdípFu_>|âx‡·Vh`~6!³HÜh´/và–ì|ÿIkÇšõˆ%Ÿ‡UÚ¢?r;æcù,®~Ëøhî¯{<ãÍ3™…ì±Iç¡Zr%†äDÂì¹I“;޹±,¡€¹ú)ÓÛßó÷8!ZåEsSJ*ëÔ_viÿ´Ò7ÿ*Ûd»Ú0 À_²ê±õk'×¼ëºS£¤÷GÐÔÃû’(Ÿ\Y¡Ç¡sÃýê» YTåhœÎ<ƒ_R&ýªÕ(2¬û/mbg‡G$…ZC…Ћì[®$÷òYsPe…*ðÀHÒcë'‹Î˜nä¨Ú,_E™´?“£ˆ§cÔâú±nQ‰¦¯Î>û@òõH«=Õdo!åû÷æß:ÅÂa'÷LvÕ°×3Yq|EÞ¥îcxDMj@²WÁÀVdû«ƒx$²‰T÷üý-ɬWýaäjûUøª‡¨ý-w#>~?š[ÒW€œW˜6È–ûÎ~·p¥H?&Vr¿Iy¸óI¬°3ÙàM¥ò›ìE—wÿЪ.ÂÅÈOO$ »+´¿žÒïñ‰‚ÌĆ߬C´©ÿ;S”ÏÊâ•[Ñ`Ø#-±/M6e]çh›` §%Î1Îò´>G½ÛaC*}¦´M §~Ô¨~¬ïéÇš ùRD¾ -g [,‡”oBÂh²Ê £°û{¤ÆîZjlnÇç:l†:&ÅòÚeœ´¤Xwuçöîà0øþ¯ƒã¸á»·G¥5sgí9m«ï"íßÚâŒö4 «|ñ§ž<ô»©ýnCAunÕæ K‰Šd·C¸47WWÐïþábu_Pé1IÊÔ~I˜xœ×ô _bcõ“0céÒîGU—ûŠîŸXÕúW?Øgêʨ¢í;ü÷±µxÂôÑ"x±$h߸/îØÔu‡Ñ )°ìCéÖ™]|ó¡ó´6”lìÆÊmS+ßäp¥ŠHùvžµ›«dÙ„ ˆ8"ê°‚öt>v5ÅhI‹" " ‹Âð!{Jr°…ÜÔYܵug˜÷îàAÂ*…ïf\±Ä52ûcøl«?xÕÊVcZT½%»Òîúö!ŸdöÂDðùSz÷hM?óõ~kǺœdФz~GHf-?;L¼ïð¿û^Î’úcCa„¿µœú)tûÓ‡w+ †]ó@[A*d¬µw\Ó-–€“Y—l ·<äÞ“O;Ùz@Bœê÷Žà|ôm;Îå(H¾†9h‰}7Zˆ®GŸÐ/wõºÌF®Nl0x§)߸;äžpánqœ[åç -ìSz@+¿æ"€}œóAXÂü*æW’¨À"¾üj€¸'ëê&¾ywp'ýÝó·¥Lc½Ô»¶ûY–ªd ¸?"ð!qÓTÍ~ŽìƒþÀ]_®p·qüH?¥v¿þ¥§«§zqß -µŽÅTb]PG;ÍécFÛÚ&΃ŠÝ×Þm=#À|ìXê-ÀϘ뎴~€‹‰åêYKE-Ô†ZäñKîçóïB<«{ë%4Ù{ì–[°‰ï"´ xÐ?xY Ð^(·êkg&t_½¸O€ÿ}O²ŒôYÕqm2¸1ec4½²ßúœ%ÙØ¨Õd¸ì°é›G&áõ÷è¸[|ƒÍ¯zI<Õ[Pzzå‰I†ª6áÔ5¼Ž> ¯Ñ®½v ª³k¸ßÂ)»öûÃ÷pÑÜ6Pgg#ùÀ—þÈsg=gt¡ýd=Ù6þpÜáù!ý’Ùc)¢‡ñ~DznŠ8Sftb¿ò!¢©#US}ëÝ?ަïñ®­Ù<.Y¨ÕÍ€ -`g~£þe+õsÎǽÿ4¼ÖÔî­RÚò”UÞÄÙ€V5/7Õ=îbµ¸u>ã>;2‘tvGÛÚ)ö5¾c0}¦ g<Ÿ{÷:nE#Xc¡¦Oàh´îÃäOÓóc«z{\±‡ä7Dø­Œý°ºpl²{M'‡õ÷}—ŸpÁç½ÖÝNÐmZ¤Š_¶ÜíPˆ*”]÷éw ÜOOrÓÒÞA0ÑÚuÙmC}¬§ÜSvuå»ù©ø›@-¿¥„í†ÿ ìÀ­OÈ>-<÷½! a–ÿUõöG.¯°X„Åʵîõ³O?ù9Á -­Aj,dizg¹®³*Ñ$›n·y­Ã,gª…Önøæß kŠ…§ÇJã^R{ê“€¹£-,cåWb"°Ø«¦ƒc%,+uÏDOx¾;xŸ0„û#ýÙŠœ}Þ\’äÀNz[[K1‡:çÑXvéMÏ~Êèñ±âOÎé*…]–¬K=½ -Õÿô“ÌYö3õ늈Åìøº¦“ßÉ}÷¼ñBAŠmZͨ…$Ôhƒ¶"ó˜„ôû”<¹SG‚UÙUR]õ¼êÙ -ÕO’¹ÕWÇpVö)Bâ pöá}£ó ¯–X ¬é<ÙÇlûJ:>—gƒl}Œ¦9^½VWßGù8• -—]‚²÷_.ÉV%’IÁÚf-‚²¸³{_»ìj¸aè`|)‚+èVÍ7µŠ‚ìj€ÿ·$¡Þ·o§ýÙ­ æß–×ûÃ$—x+â–´[lüJü‰uYòЊ2¥wGÖãnwÇÐðtÖr«÷ãÝä´cÜ–½ÉçÅqêÝ–0€ù?‚µu üþf_÷‹ê÷è -ü„[ƒ´Miá19 Tî&l˜ŽJʱïla;mrÒÄ…Ù­¢Ï!Rä™V0.P}ÚÜñ‘úÄ%×Ó\(–ù¦N5|ä·c;Ñ×\;ÊåºÖ’­¬I¾¡Ûû’¯‘ÅÇþæß”Àç‡zÕi~H_îÛ<½*_DÂ\_TË«²[(%P%àÏÿYÚŸçž¿µÄ®ZÕ/8d7Øêܪ°Ûǹ³® /4/€[Òþݪ0GȦûÍz ÄcëÁÛãŽül¿’]0ÑXD&R+¿M€ùPåIrz¼?S« úËÝúa+ê–»@Ö³¾‡Pæ(Ãùq¡ìRAðÇU·ú0„Ü-€ÊÃ&/ê”âúÎRó'˪ñõŠ{príx È6ÝÈ;iµÏÛ¥?£‹Àj½Ã¹„“M@_0híÞiaºV©jâí¼Õ”Ö×YvFU«*ã?¦2©ú]l¦ðÎ+|w·¶þë·»Ï5^io¿‡‹Øø‰¬~i—%Ã.͸·R±Ï9‰[=jäg™¶_â ?)RšV(êªc§üÖâI޼Â7N;|¦;ƒß×M/ñe Ä`ðÆ~uj¢ÄVg=`:ʇ4`KƾÒû´C”ºÆ+‰(>ªmÝ¡É;ôMc¥>e@EXÜ’õˆO]_ìÄöòÌ¥6°’cÔS‘ð_°ãEX½>P ‡æ£aíªµ½A›ìR¾«ñU8‡“­S[§z~7¡5OUÿ¢Šd·i€Š‚ è"u:Q™i1?èÓ «Àšÿ‘]4÷ª3Ú= ÎæÎúÎ$W nIÅÆ"`/hÌð1Û½•ŠIK#=ÚnaòKs¿€Zùq¤œúTx8 ÚÅd“ç~gì Eƒù›³ßDÒ8Wpâô9À"Õ a2þ‡ÕZ³$YYJéÿÿ¿ïzKI<6ß]bxz{PL·XÙĬ¤áæÅ¡AÌÇJÍR.ªª¦ŽRI›Çp€”Ââ^¦^2ž¨êòí—ɺš*:…Mе¬/ßü{–"§–UV/¨¡yEûçëb"+ëê!×–V‡)$-™ÒÖUÑÎFÝשP¶8Y³’Úy-HÐÝŽœŸ¨_À­àUK%”I€ü€tD$\›ùîÕcÈp˜uUµÊ'Ùßœ‡HÊ -­‡ÏÖ°«+8óˆÀn+ÀŒv¸ÙOW0*¨¤a!! ³«:5ûm$Tül ¿º†Á©ZL?“DNˆ0oþTcn£àÖ×0øK—-xv1è|öæ¯Å& þ’Ê剅 -RL› -!åò -&ܪºi9‰˜ÂªèG‡÷oÐ NÑÓÔ×0¯X8Ÿhf~û~mO×`.a×W×.3¦”z¸ ’Š&°Žv6ï5 ÁCJlcWÞýñ TU——Z›%“&™™N0/y¡yÍÐñï]k§²B×Ù¶¿ÅÅÂ?õÿ° $TôáÃ’QqG à\„Ÿ,ý];Ó•ËClìqƒï -j)&Þüë,·&Çéj /ÈSΖïNãÝ€c0‡!ä‘Ç¢üæÑ€Upð0ˆäE[O@5ßücìVCLË?Ë\¦éÎc™–Ÿo.c³sß?ÓZ:îò¬•ÑÖtü½Æne°5­ÝÖrüÓ5¶[ÓÏ7ŸéúÆKƒûsþôV¦?߼dz‡;÷çßcš›þ|óùû›,Ï27=?><42s¼ygzFÀú7ŸwÌòæßcz‹`(È+Ç}å™ÎâÉñó=ßä4@2Òöÿxð%Pd´´dT€+÷ç›?õæ(rbʱéößü¹^!"£¦$ŸíóÍ¿Çs­•ñBrêûcyTSÒÍoþ1·Ã… SQNGÜmÌ7ÿX¦» 4H É¿ù÷¹§HëÁÑóæßi" -[\]^\O1Ù¾¿ÇòLÐÔ×XÓ ß{+ ìK‹ê(“¨¤÷¾‚“àÀã¨(ˆ!*ø5F6˜†bT›JÃ,ˆ!„Æ€! 0 á÷°C7Ç×1EɇÎ{ÑL÷LÖ¹½ÕaªJ«ÜJ`ÓDÀ3ཿ‰aÚµ-¢ÐwÏ‚“/ -ñu‰Žò>Ô«{oY?‚g¯–ÛZQ$ÈÀ€ôñ+ȯþ\µ^ÿe¸øÌ#"ØQ=Qw¾ÝRïÓþ~{õ>À2ù¥®nÏü¬ v`õXè曤.›œ¿¨ËÂp]£BÔS«òý½mÉÚ.Jä94¼glt½Ã@ñ´ä]JÈŠ`.c=v˜üÀx|ïÕß¿÷ôÆÑŒtø¾ÕÚ‡ôÌgØ*æÃ—f}eÇ÷zoÙl¯[õˆŽ®F7ʶ眹Kº’ ·ÿV -è6@€8”¡êïäfËí÷SÆQêFóµúPqä;eC¢|à°ÆÜ÷Àí°ç÷'Ç»–¦EÁ,Øð>v5ü+Ëú >Rï?n>âßH}¬ïvéªækW+B|çž2 óÛÃ1/­h׳±Ï«on»[ ~ «À[) ê¥Tåcá¿û¸M@Æ6;»\X+¤¾Ô“|Žpà)É‹bKé -•>•fÝ+™Ð&¨û£dm?hÕÒnùÄ7çßÍ~ äçý«уåŒû£¢Ô¿¿­í4‡ -q‰HiGï#!;XOoÛ`îöñ¯ãÛP„Û’‚ŽîÎÀãt/¿_%¶Ìzn^‚M°=ÐE¥ÄîZÁ5àYA{ ŠþÂ~ì×ßzÏP:«¿C£¾uü7ó *ì=¾—àSípv/Bhfï]O‹^°<,.^§UL”æÃÃ!½Àj!ö/âðB ì§í#~§†x¤ß,IèóqaߺÿÒg>Ïù­c¯ ‡ÄjÕ@èõÉ÷÷i½3ÎÿÆžïÍ©¨8±¶2…ªÅan UtÒÝZuÇþ€fúe*ë$ï ¸Á}G‡?´8¸FùûÆ*꣗mùŠÉtË7²q|…ïà `u­_àêMÀ{cp‘;Au*¶Œtðßù›ZÏ'r§³âú 4 С¿¥³{íx ôógâo=˜’?u×!7À;Sgo“«IïÝl+¤oö¨àEäûB²|AüÇoCH¿áÌ¥íUt‡!9jYMÈøÜ¸:ÖÙ»=‘ -c–c®c©èÒ•þµ•>çF?×ëûÙ.7 òÇv\K„»zþgó•õ/È7êˆ÷…t?îQ¶ç¯]°ð7ˆº·:ãÍe€7wÞOçÐ"0=ÇuGq{…å=±ø|ðÿäýÃÝ£­?qhðæ5s°LÁ>móÉÅíØ·Eœá/±ù"v.Ÿr&é­Š¶Çj€qÜC<þ¸æ¬wE^û@NséîüK® %“õãâÍͳ¬Ø„¿3ô&~£?ÿ}De@Í+0óqc÷·fINùó=bœ psÝ#Ô¿ÚQü Œ?„ßÁ7L쎑ŸÈçÀj¨ÅÒ8»ÕGY)v¶+òy„ÑSßTüÃ/¸‘`ØôÁD2cÀªºxÛ{‰N°¢ÖÀö_€ÿY¸¦?AÑ{~‘à´G—ú»‰aòj -öSkË•ê{™ÀŽ{ò‰Kâ~>“9[á1z®¹ý8‡¾7ì3Mþx-Ãûk®óðZð¹ÆKŽãî뿚X°òþù˜¤iý3Àošÿˆ>©ÞjÍrÅÏGGSü=[xš4q”HÒƒ>»R)_o'чði¾c5õÈ™ýâcöw_šãQ†gœ4ùãjÛDjÉ£#û©+·%Ï!Ø:*Øë»öÕqÅ5lmPsÂÐåù«þd›~PÜ/ÝÚ>´ãï1Qì‚éÑç·©üŸÑ@F?ôDô€ð¼òa¶|ÃI¤ó½8ã÷wŠ./6ÍÞ Ù-N’{ºiÔ4 Á¦ãZÉ¡SUe›KZCR,¹›ÀlN}-B*~ÀÄñÞÞkåôÚöÔ:É?0ˆì¡§ÉÀ»ýýŒ´©ø‡Áó¡ÍðÕ[`píß›- gúxDˆÌÇ™…ìÎâ ²rßÏ~âß§¢ÙžvÕz¥Šâ,yTïÇcNç•/êÙP%¼ÐÊ[ÇOôZ„zW688Þ{=V+¡þGÓߨòÇdh?E¢½¾Ä¾€?÷-웃[ þ^Z¢Ï¯@ýóGì&(ðñoíiü²™/E²e–Û9³­Bï™ÆTCÃ;h‘B –<ÏègýÇÜ:`É“ê§ù5 -ª'è² 5.AØ:Ôc(Öô(ÿFÛ{ø„÷ÇLŸEƒM—îñß ’Ž‘ -°ï-Ñ–ÕÏ~Â}“Ûå{ˆ\¾ÂÈœM¬ ‡oUn6W8U‰ˆ©æ©mæYN-ùň6¹Š6™F›|K>&ì\o‚4¿ÀȃÓPt·z˺W‰ƒÐÕþ¯@ÿZÜšø$ùþþ„ý> ‰‘{ôQ÷pm rÁúežõAÝ…¾#øôêq|Q»Ü“ĵñ!_›Î3í¬9>pÃܵ0§–ÜíѲ¥M•X‚%?À)›*•MùúýèÄÆZ¶JŒ»õõ®öAâŸIï’ö㉉oÜèã8ÓšèÃ@ûy4„ÇAÖ¢¹Óšpç} íðí¸4•¼`O«Ø{VìSæ+Ò×Î!çsÜãÕ -8Û$<}C( *kŽSêŠ\VORʨÓÂzŸh†/M%|¦R¸À47„çRè&ÞÀøÚ]>¥Á?èyˆò6¡q×û`\¯¾ìJh¼ŠïVÍß>Ödc›E_x¥©’‡ñÑtGÞ¨ƒ×ÑÚ:f~ÂÃYÁжº|Dñ%Ž››¸±r£$ñÇ&dTJ÷’¢ÇpÇÈã†fš¡Õ9uI¥Ħ6?ª]ÃhùÏÓgp “Ø(:“›®¢úŽT?éöS:¢ŸÈ#›Ç¾_ëªiê%šîÖ9®ïÐDÑWR`ñp¾=ñQ–¤ LÏ7øDc·ø/KF<™èv4¬5µäWNéK^³24Q·ív§ ä¿< -ø‡nâ -=¨`}4ÍÚ ‰ÅõÏ FU5ëʬÁ]’øxý­Û~¥ çâÏN[²­ôÝÏ…,šè£f>4óMLRúƼÙPή›§œä ‰bƳŸ¸ÛÒð‡&Ò5d“€nLÀÁê^n4–ïÅ®=°äsàIj-Û…QEòO€ ê;ÍÇ;8Âðë2fÝ¿ƒ7h>^>NÝ_^Ë–¿—¾]ê㥴\;¡\Ñç•4 uÝ:`ôb$¯pž%y‡äWߣ¤’SÏ3êæíªä>¨•1¯:h½:˜¥ -žöõ4lÆg†²teÐNÀ’?¡'òä ˜:޳Ðeüˆ€†:ˆÿý_&»G55§ÎÖZ$ÿV¹SþyËÆ¦íëdž3ú ¨ÇöHF?s3¨_åû_Š šrßòê|@ã…µD²•Ú‘ÖGø:6‚&}a¦ÏY õô[)‹ÅL^¶²k›Ø‡¬vY=I´zþLiᦖœúŒk´'—‡!éèpõD>6p¯:Ž3 Ëø_N’èP’‰ ýïzûjõoòç*LÚš#3h ÛHæ‡^ýaÈjäGZï¿i_³g¸ -h¾Ì8àÁ‹ù’}Ý‹°›¾ýªjùvóݼ©à³œ’Ä}àÁŠö¿À½/_ºôõr[7SK~Ù+K® dãòs«¦'òóâîãéQÇñÞì—â»ù” -ÛÖÑÀ²A±ùhôUÌŽºßIk–çI%§Šý&ƒ1?ãDý@„ü=4ˆøhé«uº—‚´±ýV0uéÄÉe‡S¸Ý|~jNéÛ/µÍSè¶÷ðãiœHž HªÜ'Ðò]ì6;gÍqý‹¦…Zòª¶ t³l Xò"Ú·6ÍæZÑMpÅt'ãôU¼b`D܇ĸ&[ÚÜ&¦²Gß]>îšñšò<$óÊq›ñˆ%¿ªßøà3~eé õºö Ô´ì+}N-ìîp8_–ª°Êð°ñaÌFÆ•÷æD\¾EñåÒ}¢jºêïiH£i°+òÔ’«y¿Ò­€¦_\,yEz"7ëMŽ.ãUVq@$Àº…áØçÉ-`ïörÔGªÕQÅwQ_;ýUÝŽ›7wöìGYDê·„IË~7ú}ž©+ƒFgq:Sœ¦s·°ñÅ ~ümî[ù=2¶ÏUÖrý9=²ži¿Dæg–¿<$ÖÏ/¿«ÓÏ£QXHJ¸¤Æn»(2+G]wçÝÎ&´¶_ú lú—7+ïÁï¶!Ò©b[¯ÜÚá³Lk¬úhòÇ©ÞVæPKþû<%éjêN• Xr–‚µå¶d`çï+ÌTu•tbª€þ%ˆâB¨èùÚp'›ñŽÈ5õak*1÷ºçK+Móai7Ò“:µ ²ü$š6úü©}Í»‹_÷‘r}»P/‰Ò6© ¿.¯=2U€ß‘àÖÂÉ·¶Z!KöæFíý|öõ»¥{(_³:ž(•/“Áçhžk|0ùã=:Ôeb™„¡CYQÀ膉›ˆX(X¨Ê,TÕîãX‰Y6º/“šØ3¸¿E?4t]á xòùÅwþðãNˆ×µ‘(k¬~°?2ž¯ç/Ðuºü•Ö/MÈÖ­Òû@ú -4ÒÞ •vþ; 0\²ÂpÆÒPK ‘§òÀëŧ#$4î5öãÛùàÃÂnq>5Ç)à•Ôæ•¦¡ZrP£óQ¹€%g«`Ñ«„³ÝÇïù5YM`Û ã2ƒUöø¸i­èkÿQÐßÚ_8ëPÞG%(ʇÉýqë7ñN‡ˆWßüé¸ ÓwËì¹€k'¬ñ=ÖVÇó‡#¸—¬hšçuú¦‰¥†Fìˆu¾U{ÓRùcÕœh“ÔÞ)}º -6Ö+ÁÂÃúhÉÚO<Ýâ-¬9¾ @òë'ª •ã9ÕÁ’[iû¬I»ö”ªÉѯŽã.?«™ÿ}ľÄBB þc}è{•£hü{ Ý€ŸšnĈ éí·äŸ{ -Ü·†²ýò/|¯MµÙ÷ñi -¸E¶cîÚ—·ï±ÛVe‡vtÉ—™>6ádÅ£çÛš`æÊ7 :Ðñ‘ð¥< ±Ïx€CÑçä£~\¡Zò‰,ñøÙ‡éy'?,¹ð7(7KD–%Rɵ’ž I6=Hñ®”Ø?€$Î"¼&ÆM¡‡Þm}Ákã®–® :~±¿|H‹7Ù_ò6 Aüñ‡ö°Ø–`{«éöÁ’æöÏ'2êjt-T›=º\B`cÁtó9ò‹ìaÞlíð»ÃÀfcEàß'À<[h…1ÔpRÇùÖ -ãç_O -‘£µäóT®€Í6œ½fdÀ’‡+øBðÞîãrVl BR)­çÎô#ÿƒ‹Ë þNf~Æ -(îÿÊÇ?>r€~pZ¸ñÎÄLçû3cõi¾³¾d²#]pÃf¡±0Ã2¬„ -2âô$AÂàÃJ„´!9Á=l¸Öû5f -£–œI€ùC,9è¸ŒÇ [z"W㤛t¥Õç®ÕAœñ4Hlúj2³šô”-—¸¹Ì#[LyèO²&xêXÞùK]í!3Rz¿ß -WÞ‰`_ùoñizVE;ö™¯½¬FŸ4ÅÛ¿afhO¨Ø,HP ’:ßEÈxáQ><ãÇû˜(®r`1 mj´*•KÎ{¿|w¿T×ô ¤ál¬Ýs/ê5¨½®áýCŸMAWYðÇõæ´ì‚êA>ûm†÷¨¼„ß=€ß}d!úÝ …S\³äý~e+3}eò/ô¸ åêÓ$ðX_ljÞË‘1ñ|ÞŠœ›nf Ϧˆ,öì'þZøãŦÈäsïŠüЩl\µ†pÝ`ü‚åyŠ\m–²t¯ì ÝÄå(ƒòè)QaShøkð~ïæ#Bïò5G§±.óc¹5A¬Jôc}ÎøÞ¢Zû–Ð×®|§Xµ;tŸÜc%Îfþö”ß2ªGƒ”®Õ—±V“~p4Y¦…?9VÅþ›¢úb=6,oLÚ&ôÕÞ¬)T?1ˆÈƒ}©;/Û˜†qý*ø´ÕƒìJÂígÛKn ,ùíôD.ü 1‘€+d•Áéú.5©úÒgÖ°%îÀ‚¿n䨣Lˆ{îw /æ…Ð)þ¾ï™ÒïúbÝ2«}O¹b°ïÄÁ]úo〿0)g>YvA] J¢bãiÃ=.ž2X~ß›úR­†ŽZ|¾ªypKs¼P“ Cв¿+ò©< -.’Ç  -Xr8”„Ÿ1<¾ æ‰?hÜB7qfÏ À“£/µÿÔ5"˜ÑRÕ´}ᨫ«÷3³x ½ÜM¾ÇmZ÷1ø^¦É žO>>¢»u?oSË„[ ·ìA@é/›ë´oÙ'uéìð ¼~¦£ì-þŒ‘:iC$-ØÊ— ôÈw¸Ö2Á"ðŽÄ7çá â]º‡(5Çkr ›7ƒ÷]‘×Á^ëIÓHVŽ2˜4î"á²@qè2>ÀN€îPÍÖ¤ø?ò:Ÿ‡ŒM…~7ËÖ¦ä XwbÝ ïÊqÂUÆ]õn¨ ß´˜í+¾ÄÒ•ª/9×>uÌ9H[ßË¥³‹L°™ªõéwتØaâ”Ïó Q¾/r-Ât8ÉõaÈý$ -n?ñþá>So~‹‘5Ü™Ñj`É­%óHÁdž„ ŸmgÊ8{Ä r ‚|ù2s¿8õ±ÏÚ|ÐÕX “éoÈ߆€YP¥l ï± •¿;äÇKèGº‚w{êwçù¾í޾Ã=<·¾UúŸbû=à€&„Ú±¬¯:ô^Ú»:ˆ!QEßLu}ç£ ô0ž£ŠÉÇ -âþr"àLþøÙ~wOµä"^nñÔIÚÖ`CAÉÊXéoú°)Âö ºôÅÜUÖØBS€‰2´Ö|Ü~ 2XÍžñp©Ž+"³Å.„·Š?×’ãö~ïjç´bº é£8òNµHÑW|±ßœ5ëvxŽí»¢öÖàETA7xÎ{ˆ­bË·eVªk;v6éëØ'O‡DâF¢GBcEè(QÉ pi—I°í%'J*Ë Ü…qBáâ”XÀzðÑõ@™V4wP%¯ì¢ V”^ǧœ˜Ù?F6jŠc·£Xé' êpÙÏŸ¡? ÓhKÜ^<ûFÖv²Èßnß›w×ò¾ -G=V½¢ßŠ÷í -·Å‘+¨—rIptGõ軥^iSùr8z¸WJ\šŸMƒ£qê«:õÉë›ô±K7ùÅ5•É5ùDF/dEçZ«”_r£ô)uH‡8˜Ðþ.›¬ŽÕv`êCô~TÃiò|õ‡IE¤€œZÄÔ”1”Û-¬Ñ¤LÇ÷ÓÝÌ»w"C?~é«ZWÀ÷©¾R^íŽâܼ}P-‡¹[¯fÔÙú¥Ób>íœmÉÝ|ÄÛ:ð“_˜å¦cßù¯3Ó¾ êA£¨û0 -G5Û;ݳ+òÐÔ’s]×ZžxŒ}b:Œ%_+SÁ -½8—‰Ë1…>×?qì¾AýtÉ…©y -¢:ÂÁYH¹öþ¬"ˆÙo÷2Ÿü¶0&N/&jb"¢<øð‡s6iK°ßžLEUÒkM¬•ÌFŸØM¸6HÀ5\ƒ$}´WÑrÌvP ÷_¸‹‡3úºý®#žä“!}€­¼ê ããvŠ–vàž‚fUì,¯žãl‘;yóïJˆ%#ø;½#t{ÀZO[Ö5ÜÞÁ3ÂWÙ ï±tŒ)ج3%¨¾ßwõS7«ñn«íœÁxs²^uÖÜö ýˆôÛÚÊ> ¤¶{kû«×¥¸oÎŒ¹ÛJzü¿;¤ÙGf"öž;¶Ú{“bS$Øê¾F¥¬Ïâ|~nÄpOÛ¸Ówø¯š“6K|ùùþÔÖ¡Äî:9®X]±âZ®A(6û<”(€0ûòîÂsÁG*óUò}‘ŽûzˆîL<èª2ŠÛ -~¾,Û8Ú‹dÿìñç§òùÔVÚòÈT2ÿuÏ@ø‚qÃa‰-tñ‡†¤DÆRë?§±¥Ÿ)ÙÃkŸ_¶è -'ÌêŽþŒ©Ë¼ yÇÑ"¥®:„:Q7—Ùª’Eš–ÑFÁù 6O:§Í`ß|¬•/¿>|¢ù·“pŽÇ) »i‚¿DÅbê*é½ÛóOþø!Ñî´ÁèKOÓ^`ÉÍC§ í>ŽF—q±€À‡üîþ¼Ð]€„?ß¼&È#üïo=|$$²0ÓÕŠ´‚xÁ÷åã›~Ù#®ìG¢ZöÝHŒ*©ä­ºmßWRÅ3›ÖüCBVM9£r­ˆ=CSïu.nDÀÍ*9^ÓŒ®>Cgñ,|#›­ŠÇÀšãŸ â&ïR,Ÿ¾è4úÆØ|î}Ð2ëZÙ?ø•™ò3€ÇË—¼óIÈ Íù£ùö·nvtÑd²7G„§Éè;dýn;Z«‚·åPmF?±uÝ{ã——ü¸%tœRÓ³´ß'å3¦¹œç’p>KŸE}©£R»àÕŸ&}̶߰‹HS¯gË€Þä‹X> ^†ÆSF‹¦&jtí4½.”X¸xl.¸d[U7£“?Þpò‘ú@o…$(†J„½D%³—Í@joÐísïB#nÝA×íÏlÒsf Ññ·v¤©¿Ç¤ Üï%õÝQD£ç9ò¢žf#ÎCJ ëñ‹îŽ>e?æIO׃Öê¤LP¹ïUÆRßz@^Ô›ok/¯hÒ½¶CŒ>Éã¬Å@tèmÊúj¥Ï¶ ÐOi|ùJí|‹[ùdûÄÁ}4Õs»[‘Óe'_t€¢ƒ ‹~0ú$‰ÉKç,ùp5ßÚk¾ÕÊ@<âªÉÙíoÔ÷Š4u²ðS® -ªÝÃß[%¤ÌÛ?ú-n²Çä¯S´6»¿ß¤TZ¡Æ-!šzõùvGÎí`Ymgõ¼Á} uMFzWÔ>*Hšú”G6„ ÊŽ ß -^}«¯ïbÞî`>©Î¿¸ó ÇÞ„£½“ý¦þä+ž çµÓ8Ùá/<üèfÒ QЬ™ɪ’UÙ±ùƒG?œ†>¶ç£W>×oôWj9šRnG û7bÊÝøÙÏ{¯1r‚úx7"ÁGŸWM='ÚÖãÌb7™#P)xÂH_—U^ìëóñk¬‚«¦¢èØ÷–±-wɧ2½üéë „+b´pÌPú>£5ôm_JVùvÎaìqÜÃØwQÃ3ÞQ<Žf*Qnkú%vMì&‚€›»z‚ŸRjôùÝuº‰‹²BØ_î“oÓÁºå{x¿Õ7Ù“bý¼@T)|¼ˆvîܤ5ía(ê'Ö˜ˆd³|áÞáñcÖÝQwd_k·~·xÂÚí>laM$¬#Tîï3 µ0ûö!<‰=ú *Řb}Ÿæ›7]G>ë %Ê÷JØsSù¡Z Ôi‡gü°Íý«ßö+û×wÆä cR´6u&NÒnÄd%¨æ¯n!_•kG¹gù¸xý=;öª’Axeóøóc˜ß-­óO¿Áݬz|œöëk€Ì/¶÷Õ½c;¾5UÄ´ú®¿ê"»C‰úÊÓÇjYŽ\Ú0‹nQmNTŸ öQ€7@ƒùÖ¢H¤ï‚»›ÊÃod§µË;H(^,ðN•ð=ùíùI1Vyª\Õ9e› ±/›¶Ì–Ñ1ß.wEÞ‚Åþ™Ã¿ ­d‘ʨóÀu¾e?öæó‘ÔáÔ’¢¯¥ÿ³ŸÛ— P},æeõAw3  0P쬓«WA|ÄÝ«}¿¶ºÁp¯1Ï0¸a2²CIúÐÆx.ú&=\;ùeì»U¤"Ý,r, Jvt®D¹YÔ›otFßw@×(Q¾%?µ< m¬³!‘"'Ѫ…5Ç H‚Ô«vÁžG{îÌÇmŠ%®¾–²~à|ÍÏ‚…û(ü—nÅ÷Óƒ8ÈÂçræ-£?ÒÝckB¦zi;ªAŸ³CL¡Ì¬ú‘míØ 1µÖƒ[=L5'<ÜMðå¿HiÕCýž½¯´ k¯õÌóÑ:¼yÃIéù±šœÁ>Ž”Ns¹-N^• ì‡y›A ð|Sê}T[O‚ÄA·=_‰¤àg9rƳ£ùhyœnüA÷!Ô^)»” Ø¡)~ü™Ü·Þi -’1ÒÏø{2K~ai?Þü¤–NßtuÇG¢’w—oo†§£; éØTö6—`¬<ý¹0ƒr5“¿»ï2«óeð4ßïÆâº†)âÊ·mfˆC~¾'°~”V=|¾{"å×UˆK•WH;Z*4tÙš'æÎó%dÉ M¥Øø’Q­úo`P’+¾á‚ìÏV¤à°ì:ÀM/óHÙcÇqÂvÙ”oÂdj•éî¶ž=‚ì -ÎÆ»¶ûO”î.{ÈY¿¦ ‡ö Ȉ;Ò”Uô±@_.ú$æa~;Á±0ú’í{Ì!)“°¹Æ 6”ü|ÕM½]ò‚:p#(§L„\Zl\­äøW`0™L§Q³Ncã\t{Yó5€{Wâóïá?€pÚòmèx¹~ÒÕ¾ÆÛþøP¼0yHBŠOÊ©œ›ßG|BDŒÁET«6eM-Â~ŸÇz:×ä°Kß¼ Òå" ¬RdÔ."¾ôúÃjgŸ0jžoEv÷(5_?±àMÏuìyôU¨×|ëäËfø¨ÜÛW¨m^ßá» ÖÛ(D€ðˆ|5LPÿ ZxŸªòi럂>G8æÉÚú£öDøo×Å£›XœüíöíiËŒ~µ˜V»[1‰ {;å´›98?ܩއqKwÈVÖ±|AxÐ'žpK_ÕöÌ€iII­œö ”UÆÍ'øvôŠ>°ê³!ùö‡½íäZ•Yc„¥û~"Hì°.‹lEäH¾žß‘´áéǹf‚Y$Èàzþ° ßKù˜€wðö¿ -GðžŸëïÍM?íZÇs:iôÈÐÖ/CÖL•X¦ÑŸŸ‚"Ÿ}?îåØen—öIeÎÿ¡L§¢JÖC¤®åW¨S3Æ=SHVY Ûʘ¹ãøiÒ:Íï!nzű-'UoÎí;¾µAXÛúCr?K½Á©ÒDV_Y6·i"ßëåË3Ù[$€JXÿ’£HÙQ’’ ô' îÄðî“@$!ËÕ0xF0|¶#>è?Må’&«Y(X°Èn8ùx“[-\i´±&äÂ7 dWQþ$4Úa&;‡»Y¬2•o‹LmNâôCOoöö×~á`£ÅynÞ÷ýGÜ40Pïˆ7Aô6µ¸u͆¦NpdŸ=|ãMžÒ|ýú®»AÀŽk¡ÆQ·ãð WUG½æ³fâó”.WøzÍÛ£ÙCÃÚµùƒhØ -È8T0²Ã8;¬½úôQÎäDi ;„û[YV†'kœ{ݯG·R -í½ç…«ù¹X{ÙŠ‚‡?úáÁ”éðÏ\^#*fu«÷Q»srs7܃P½Dv‡±ÿR7ehºC+út° r{uKl,ð­ž#¦e=¯¢a‘ZíCü¸×+Ê}¨Ïø|<â,Á”lq[/³ƒJ Ž¤až±-øŒ¿S„=ú£‘¿ÔÌ3H+@,ÌÉ‹÷o2ÿ !K£[WµÕ¯)¢ô@{¿_xï\ú½>ía̧ É7ÅC§ ×.èª!ê™PXi¸ÛÅ~ÞŽ_' f$”Þ‰­üd¡ñ êóÈF+jT©+ô]ÒŸoTŸŸÁ2 -0l:3°ÛÍ×/b~ÍŽçBEá'[B¸jiB¤lf/|ì0ø~æ¨I4HÍfîœýŽÃºÝP÷þL¬?Z)•øüßÈñ7j“®ƒ?¨yÓéÏÍ:§Ÿá“ˆ«Dùcˆ¾©KùWÀÌs¸jlŽ˜Šz¼š÷+ýÎûvç”Þ?'’MbW8™â¿ ³Ë”`Ž4»e—^ }˜ÿ ñZÔç_º¤”~èã„C›„ò ¶i©ƒÇÈwß{Ã3MJÐÈÍ$èíøÑw ˆÖÎy‡·c9ñ$£?zñ/㨿éÅ«¹OܹÞ‰«òg‚ÂgIx vmC$þa`&ù½2¬Ó#7øü¢¯ò~ߟOàùS«KäÆ}kÄÝk€²n>»ôßy‹†Î6OÛ‡«îQ¡°{[‡Êl¡vˆÝÛüò%&`ðÖBYŠzº:öꌠ®ië͆(ƒXÅITï àœ€îw‚6SBOg+e©¼X4¬P¾¾¥}ß'¯õ-»ÈyàüÖŸÀÆoh™â°ôsuõ@áž4ñÜ-þWŒÄÛï€|Ê@ׯ„wŒ\G€­ß±Ð¸¾½x~@¼A“U†&¾F^}㟞2Ohû¬ÙÚ}Þ24VÝùÔÓàD±DuÚÊuO>»è6X‘»ï±ƒ¨Œéuqñ¡6Ç?ܦ ½ s•™? -t‰uëTçϯêˆómLw‰ýÄ×_µ\8³šp/¶ÖØùúHÍßç» |`øÃ¨!.X~]¾ —Ô,f^e~î•ë÷³ 9Y7Ü·TjžÞa)n¨îÖWª¥îàÌOòý%jµþ|H‚ P¿(pÄG;N­Çmg™/Eè«¢‡ßÉ ÎDÝÕ"½Þ†˜;SwþËWÃðóJ†Õñ§ßÓ? -‡û3ÿ?墟ή8ÀlÂ9Rªl~Zs7ûÕ3o±¦±Ü¸u…+Q¸ß®ÐbÂZùŠg.…‘ß0Bî+=ö“Oª´`ÓpÓÇ–è›'Ñ!p/ŒÓ¡dƒ:’¥âkÏdAŸô›}ÍOä‚f‡ó±“Sàª{Æ©ÈôB4bÆ|@óŠñ}`¡Lr=éФKùpЫ%ó -i:ÖÐ[¼lT >_¥Z×ÉR ‰{A„“þ>7]ò‘ùÓiW;Ô´&¥e ÿèö÷L?«ì!]D¨œPçëê¸|Œzô¸Jê¼o›CûöƒÓZ¯˜ îÁI_6.ù´d«bà4èüãͶY“·¸¡šöùw¬Ä ÈÐPï%Ì™´/D®–wó=†dÌUXçãs¡¢þújç¥ß¬rïÖ—‘r·À°ÿÎ;VýÓß–>Îû×`—þnµ©õá?[´ߟiVÅ_,F Aíôñ–Ùö$•=Ήy;0]¢HÎKÄ/u?2Ãq÷uw¾ZäŽþÆW– ÒÑ),ÀRõCµY¸×Ÿˆ7º*¢žw¸(îhô­Çaf÷v|€ ýNðÅiØUQÑÖîÔÄ «ÈZ:c-›s‹ÇШ5u÷n—¼Ëçd1úÓ–j¤¦n¤ôBê&øï¢´¸ö¿c¨ý]9ÃÇ. (;~Ïñ‡ þ( W2Ja§Rëñ]¥Pîüb-߀­[áðtt•ÏóÜÊЋû0 úòÎ'©¡°i ßœõ)$jÆ#ž¨ -v›^}œ´Ð©;÷[íKñÿÍ<«ì^‹<ã†T²BiÖdðnœòløðƒöD)(0ñB¯Èõ_E¾5ûkÚÏ%Y ?ùñ†Þ±t¼Ç÷ÜdMþÚÞ !5?çš–G‹ õózå›=ÜŽKË‘½íg^†ñ”'‹AÔoïî_ß¶·Œ¦·†UGkžØ;lè‡ô#¼I«?T/{Km?<ÁÀ¹žqÚw ÜmV´>Ð[õ5ýÉ_‡ÌýÔ´·TÛÛÆïh Mkï†4!­>À{ -àž2y±Os,ë8…,ƒÓ3smÍÙ´Ú‚§l=’°<^´¡+þJ‚¯J¸­+îVÃûÕ%ôȤÉø!îßc„ïÌÚ8r+×GÎ(\"$ÄŒ»‹ÊŠ´xæRÐ7 >“p@[_MÌŽUÙPè¤}ße;` UÝÂCÏÊ÷ÿßOM†3õCö7ãÛGÇŸ¸§wÐÂå;È/ˆí>'øGV 9ñòÚJ:>ÿòVëWÂG½\_†¿ÕÃ7m9]”퀀>šÎ¾ùdŸj€åŸ"?¼ÎÄ+xÙ=§vsMJ=fqxÔîË -]¯ï‹ñ|ã5åj¤o.3RñÜQim%ëUŠg™ö‰˜†TApƒÎØðõ¥Û–ïåÒ×Þ°í¿¦ìw^}Ë–öÒ }P ÷÷>€{Ûý;ø -¤tábû»ð!ì‰yûë–fû™ÝCtìAwTN{àÛ‡ ôƒÔ>Dk»›T²Ô²-~ÊqúINëªn·bûI¢Âý]L­H‚—D\ªŒ-^s‚Ôj[#ö)­O‹Ü‹¢¯\Òm´›åùÅq…8ûì¥Ìü܆D{÷ìŠ+ÿ;7Àp±zì>€Pó9eµßôõ[žYq€ß?Ïì#ÛgHÔ'á½Cež”z?6 m?ˆ~ê–@c/"æÿWÎý1•ƒ%êÓ#†ÍGÕ@ó‡8çä~ïkVNž‘êqIƒ»Iú¾ƒºäáOµ01°ŒŠ$ K*²Ê¢TBj[}5tí›~ ×¯Q¤-A²›ìuôX£N™þŸÒ‡!Da$'¿ œN ‰"aDqp8•(Ûùsêpº”±ÿS¾Óõ9Õ^«fíÓ¦ÔƒU牪h¿2i3Çvsù|^XeP™ƒ/£6+#5;ø*ªD¡pø©>uùy…u¬û¢bfûɰ€TH<0(Ž$ò°°°àã^Ú;v×»«Wééö\[·ó’»w_‡«UÙŠE}퇜ÉûCí·½tûjTŒƒjÛ°Õ, 9Q"ÔÚ°úPЉ - Žfi–²æó¤ÌY+æÃ7[+që\Kûb2#Õ1ǰ¬Z³¸óÊèת˜Ø›m«Íˆ\T‡A²n=“w™zùîµYdž¨¿*ÆLjýõù‡ÚÉ÷»æeµÚc*æëÞä̶c­Öe5=nj<îÄý«¹‘Q-w7M©-Q"(  px‚n°p4K³4K³HÈÝKd´þÒÖOÛ·íȵUt=W¥öëŸ^U‘ŽÌ¹ÊJ==EÍg5Õ©fŽòeÞÑ´~|*æ`/ó=Wo‘w·)8œr8P»Š)ó¤å±Š›tO/éki7£d[6%æs•e¦guÕSÕϱ »)íçZ›±tWwùz˜k\Em?¼}Ô(ŽDiœ´*£ßײ¸·Ö÷ÚgJlº?¶e÷é_o¹sÙúÞš¦œvÙ‹ŒÅ?%³ÕuŸÖ/³ö1]ý\U•ºÏ½0)¹‹ßF̉â03Þ×íž[fÅd>ínvq¯rä0õžÏ¼‘&¾¯Ôš( N)§ ð€Á©Ÿ œŸ -N¼ž(&q*QX8 -‹ -‰ -N e‚ãÔ©<Õ{2íàÅ¢‚âÀ0 ‡ƒãš  ˆ0 &LÐôƒ†2áB¢aÁip@*Pq.204œ  Œ†_ Yš¥Yš¥Yš¥Yš¥Yš¥YšÅÑ,Ø,ÍÒ,ÍÒ,hȸhÀ„Ëp@r,.,X4˦Y˜fùy³$J¤Yš¥YÃÍÒ,š(§20šúƒ†ç‡AƒM çáG qݺ”}漟ÅJÖgŽý?µk¹Á”Úþxñ˜¤Kdʪpí¾QüϬe¾«ÒRÙê첺ÊL¶V!c[W}7+Ã͵j|\¼˜×îYñ_xН|^$À˜â(C~«Õ_#²j/¿07µÖl—ÏšÇ=4E5Ô=\®½fÛ]kÕòxVx|šY¨\[­Ö0Õb¦ÖmsUS#²1?O§¶×ú´,ÚãíkóTçˆUZÚ´¬h·[ý+²eR—­ÉÊ8ßhkÛÝtO®ë½.í̱£Ù*sðÊÕøÏ{¦¼ÚhTTû*3ŒÌ¦öýð¬Mñ¸sõò?³‰¬jÖL¯ÝI”s–™sì>¼›5³Ù™ŒªÌmçlÞ¦ÿGSÏ”éúã[M­Ÿ•þ'Jäà±ñWj…™)aÂ( ÂÄD3(PTT @Qñ@cá"‚uÖ¶Ù—™Si«ÍmªFgÇ·ÕÇ>3ÇjÏý–i–ÍL…ÌÉÌëãíL\BcŽàÌëÎÝ¥Ísm<ÎdëSVŸ6™&Š#ë캆ª?Zl>>×_1UVï›V—Y÷ÄŠH¬\ÅeÌ‹µ§ÒDi¨Ñí½¿eSßá4ü÷ˆ›Ô–( kļÓÌü祥m^ù•ˆXœõŸ1ýîJ‹Õšû´;‹¬‘³pK·—±ŒÿåícU¼¬ë+Ùìú²!ê17ñ×ÚiÄwöޱÒZφFˆ‰Ò°ãµz÷æVf³u65æž6õZ&sïõ٪啲V3÷£ÞR¥5=ÅɈDAÄÃÀ#ãñ°,‰‚÷çç×) -§Náï@à^z½’†_¥…p‡ey qbµºÖ.å?sI³PyôŽ‚çe@{/ªº -7p÷áÊJ;\?:I ’Ol= W>˜{ÊÓ‰jbn7 -¢|,Ìa¸a틈­cˆ¦ÅäXÞ‡Zâ‹¶ƒ£2R%7ÿXVeá€=XãPÒ‹‘BömΡ!™¶C!' f&Œ« UIª˜žb.ÉÕþÒþýd“cRtj.üËÕ™ÉÚkÆúÁa Ø‚'ëœwÞD±iòØ[—@5 ܉šÛ!ç«7Pe=n¸´S-˜Ò$;E™f§&@u0ŠDãCÂq´Ó‰ž˜‰%æ‰C4\d! fP?Ü]Âx²%:Šò£Ëå‚ïé8 ñYÿÔ RXü¢]~â$ïÈ]ô ΦØmi¼ƒt3LGIk9ÅxÖƒÎÑ-uÑo_t×fò -«+Ìׇ‘§éF½Í÷ ';@£¶­ª h>Ò2­4ßNZ#Ú±âŸ3[üEìê¸á5ú·© ¤ç²dB›¼$‰˜gÜŒÄ c„‚Fb½($/¥%5/nŒ p¦˜Ä¬çZùèf&‘aón“’C³è\sNÁÒ±ºÏ„JÔWÌ”TL3Ö†þ@Ç Ržâ(wB¦+ò´ÂŠý"!–aÇ:Ýg6´m¼‹ê ª£‹©):¡«¢ óv›äNÝ+”%¸«ª"&”•/ i¯/ä$ôÍÃ"V‰/8Ý¡Û"呼€ä¬“(`Ž0ÁOoÈ©`ªœª•«¥¹üøIç®ÚH·'ò„й˧D“‚c4Ë$ŠsED~€‘²ˆ ³ªT™Cy¯3RÇ(D¸à3ˇ…ƒPpÉ™ZŽò*C¤¬> -L¬Ž ÕW&ë2+Î)}~@ôˆC+áE@¨‡Ç¦þ[¤ÊOæo_ÛâÂ¥È ÆÀeMQ Öc±xˆ_l%G¿õqôžF]ƒÌ€'1 ý§Þ×aaISSõ0h-øqñPݽöã ´ÉhQØ¡Öl¯+là}ÊàciÌ<.+™áÖˆ­ž¹©Y‰yœÜO„•L®5çÒ^ô®€X;Xô¿Äш»%þn#Ã-“Í}BÌ”ÏäŪ«õ¼07¾&ö²5ÒtgÎ%‰ûòB Ò< ‚GK¤VïÏóÁ6ß þ·šÇšÝo×sQl)9¸Ñ‘×-t&þ”…í©¤Q=ÊÎ ì)ײN õÒpó‡™à¦$"!åÞú…“°–Æ@–é}÷‚γŠ•c4•5R*2¨<Þeäû­¸‹É1óàP>CqÏ,\Öe•Ôµb´JQš0=°œ Å†J£r¯®‚rŒqûê ó=x‚3©(£Ò)õ²·¬Æ!íÕyPpsÇËc€ãž7|Ú¢T»±éu4ìÛxQÍ@Úb0Ö\/P»Æfe.- géS/–På/œ³­As@Ò‹óÑGدtüo§âöZ(/ *®?¬Vfc {Hð!ærÁ,ýnÍo3±˜\¢V14;èÂñÀµE¡ *€"9 -‡OYÒ6¶AÓp² èÆ„ †:»±3qXe/ ¬ÿ¶•Æá"“áH¦ñÓúæÂ?'¶2B·6ÄÌ WÐ×xx3-ĈÒ#@ 3R’àÅÉôR¾t>Äbà ` -ç…P&Ø4s^8ˆìÁ`˜@,ÊÈ-ÐZS:¤t; Mrë5aßÀíiXËÈ> D/Œ«ÏYM¾¢ðõ«ª¢×ªášt%µÏªÔp™l·nÞ"ͱÕ ©p`‰#!`ã¶S@×™X¡‚ESâyLjÛ"0E·5 ´2 WÔК#" R¦"RÁÜ5¨*rÔdv¹“édþ§¦Ï^eú(ÜJ}øŸ´\„r›h’|Žª'ðîžÈËIvñÉöÊifM™ËÀ÷<%·žÉ_†Á ÞÀÌ>¯¶6"‘ÏÄ -ÔjMiQ0¥dÛ¹MŸ~›±DÂj›`t¾!ÒAÄöˆåôÛDb,ž4WdË—îÑP×úmÏ ü@ Xæjŵo£X¢Å—ˆ¬E_‚Æ-ÔMCRØ¿½ôhRŒ Ñww:ðRIvÌf‰öLˆÐ„ü8åû¾<üUÄ7ÁØ£ ’6ö“{ÞŠýãM‡§7Úòçšw¨)@f,†V®Ò$y ¡×ÎÏ ÐÚ$U¥Áˆ2ÄMråÓ4¼%h.4´n óç˜+YŽŽÑþ78&Õì| -ëÏž£¶ -Õ`áP)ý¨Trî¶´Y›Š€Ô5‘H }ÀL©U}]ˆ¡A¥Œ&¹nI€râ"a8UÙa2‘GHCVw@ZŠ®ô¬¯·Üú….¡p® éq‹(x¾‘9.æÂ+’MÜh,›í”W: ›¢o.·8/ͱùÏ©gh‡8=oXW Ò3 ’Ý#ÂÀÅ ÀÆß1Tö"$G~*~a#§à~­áÈ` ¸/7pÅ"ÝË=Ž "lÿPŠã9òÄͽE÷¥72ß ÞÏx Þ À -!—øk‹³1ÜÂVÆá–Ô4džgù%F+}¢7Ì)Ô  ޱ@Jm¨{ϹIƒ—СS5Oîeu(:¢ƒ1Ü$fáJÕ¥¾½s…C÷&_½vˆTd´U¿wè~+\ò‘ƪ̾jÅØ*kR) Ûû}>¨Û'aô¿Ç ØNY8¾”€t‘œ—¢še R"œ[ÚîH°Y‚E1­*Nh›a_ØB‹,XŸ%ëåÅ~’¨¼Y ÅWd>Ç›ÏTZ%ÛR]ví#ÚL¾¿ƒRÏbOEO7{^^’…™JÎÍ0IE¡D2ë#]s3mdÆ:É"Q'²‚ˆqHU…œ¨‚Pé*—î&¢îI©Ê,}Ìd¦‡<ÞT„õŸœ(Ýq¶kôÄ%ª¬sÄDZÁj¸ë•¯8Ò'йB\Té¡wâ&¤Y6‰%.’L;*JÛq¸…Ë9!Š +vŸ/ Ôü9ÜB’ -Èþ`Ihä“þínRÓ—g[ü‹Pt1=òÕž9Öq®LÐZE?gø(Ò¶î0ûU¤ËL$„®º˜¾æYw$)c€+‹ ãë#­øÓÙlMDÊÁ)SïgI¸Y¨*|OÈ_„ý[GOùEº’Üó€jD.‹'¡ÌŠÒŠÃ 10Þ ;&ßwìùœ×•Ð vWÅ"7£óÂ?`ï3÷ÑÎÇ!µ±Ð«ÿŬƒ¸„p"/Š‹à.‘Qz’Ô¼&}€®²ÖÔ±ÛºÃõò)&”¾©xÓz’õ Š7Q%í4~›øS^ &Ú¦úeÎDg°Àš¸xþ²ÈwMP¦°9ص)§Š]p°. ÆMõt‘V?Ë&vh'§¶s-8ÞÒ„¸Çå¥_}‹âΑ8ç²›.¢¿îk„F/…qf¹O‚Ÿ Zî¾Y´>9ŽEcî\v´±HÆ‚ì- Ö<kŒÒ§o˜i¤Bò$'H…´£Ëfì~åKAÉm³²‚$½‹±,5;ïŸ/²È?gßÿ³ -r@G «äÄüv4äá¸ÍO‘ÃÆî†UêfP%\0`Wc­ûÊëU.L–|<ú2kHæÒ¼Š\ðêù\dÕ1sd¥,\Òa?bø÷Àü’lWŠ]J×|DŠRàÕ½âÜ+Ê­%•†!-Æñ¨e‹ yÞ Ø n˜Ë…úÜLJ-|7ü= -ÚKöæÚúd'$ËÒÐX2 Wþ»VQ÷×õ[ ;K­äs¿Ú'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDýÿÍ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìxÿÿÿÿÿÿÿÿ@3€Ÿ -¨ààI€jT>¨Ùðµ@Å€ŸêØüP“àO8JÁ#\Ôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-Pwj‘RT!©LÀ;)0•“ºü•‚Qi©gÀ)Õ˜j¼œ:VåBà ÔB•@ ü‡z£r¨DRÔ*xœ•aà/V¤·W-þYõxTU†àU Þ$tÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ7PΫEö=ƒúàgPvß?¨~åøýƒb_I(Ðï+TôJBá~_¡lWJùû µ¹ÂPâß{¨¾•‡¢ÿžD}­BàO”ÏJE…¾Eu¬ZTàa¿jFEÞFa«rTàT¬êG|,”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ9PŒ*—ºyïR§þ˜öySžþ˜>zS•~šzzOÓŠ~šÂzOS€þ›þz¯Óuþ›F{¯Ólþ›Ž{ßÓ`~Ö{ßSVþž| .ù{šñý€úãP+ß(5þôý€’â7PRß(””ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ9P)ªH3»iÿO«Ýÿ$ã/ÒÛîE -â_ÒáîKá/ÒêîKúß_ÒðîK -ß_ÒùîKêÝÒÿîQÊÜÒïQÚÛÒïWºÚÒïWšÙ¿RïWzØ¿Ò&ï]Z׿Ò/ï]:­ -ì„ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ8Pt9÷65üÛϽMÿ6õso“¼N Ýç4îŸSE÷9]ûçÒ}NÈþ9ÁtÏS®N<Ýó¤êÏÓR÷ÐÜø–ä´·?P<í=o‰P{KžñUÔ>ÐÊøBj(cü@Iüô”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ9POÐO²“?É7{Hpò'g?éLþ$åì'yÉŸ4½¥*ù“¸³Ÿô$’xö“ŒäOZÏÞRüIôÙO¢‘oI?{K+ò' hoID¾%í-eÈ·$¡½¥ ù“<´Ÿ¤ ßðô”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ9PDö!•ˇ$•=¤où°²‡d-RXö åCRËÒ±|HpÙCò•?É.{H¸ò!ýe?éU>$Äì!™ÊŸä˜=$Pù“(³Ÿt)Rgö“åO2Í¢üI¬ÙOú“?é+~ô”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ9P9ô{:͇Ď=¤¢ù=뱇ô3¿ç>öræ÷$Ⱦ'Ì|H -Ù÷T™ "{H!ó!Ydic~Ïì!İ„’}O†ù\²‡40MöúåCÒɽ|HCÙCr—‰`~ô”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ9P1ò{ÆÎ×ùˆ}OÔù=+±ï):¿ç&ö=9ç÷$žçäüžªØ÷lœßûž‡ó{ÚbßÓo>$^ì{âÍïYŒ}O¹ù=—±‡”6¿g4öÆæ÷ÔÆ¾g×üžàØ÷¤š)•~ô”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ9P,ð{.Ð×Yƒ}Ïú:w°ïù?_gö=óçë<¾çü|MØ÷lŸ¯Ó -{äó{ra¯Ó{~O1ìubÏ½Néù=ݰ×É<¿'ö=‡ç÷Ôþgïüž€Ø÷¼¯“Ê~ô”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ9P*þ:Ëè…_¯ó‹þÑùõ:³èëT¿^ç}ð×ël¢¯ÓþzDô{ò_¯Ó‡~OìuâÐ×¹€½Nú:#°×ÉB_çö:MèëìÀ^'}#ØëÔ ¯3{ôuþßä”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ9P+üG¹ô ¯?š¥4y½ÎVúG™×ë<¥ôy½ÎPúG¥×ëܤ´z½ÎJúG±×ë|¤t{½ÎDúG½×ë¤4|½Î>úGÉ×ë¼£ô|½Î8úGÕ×ë\£Ô}Ü”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ9P,ª£ƒúGB×Ô?BºþhŸþ‘ÓõDøô¢®?’§tuý;ý£®ëÌé]Nÿ(íú#múGo×QÓ×)wý‘3}x×!Ó×éwýQ1ý#Âë~émMÔ”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ9P8‰¤êÝ[ôTŸ¨ßú£¤úD× Õ'J¸þ¨§>ÑÃõD:õ$®'¢©„q=‘Ký#ë‰Pê…\$Rÿèäú£úD-×eÔ'š¹þh¢>QÎõG õª´tÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ7Pôd­'º¬O„k=Qd}¢]ëë[O„XŸèØz"ÁúGÊÖñÕ?‚¶žÈ®þÑ´õGsõ‰²­?j«OômýÑY}¢rë‰Èê­[OäUÿÈÝz"¬úGÀÖÜ”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ9PNò‰à¬'Ê®O4g=‘u}¢<뉠ëýYOÔ\ŸHÐz¢ãúD…Ö×'Z´žÈ·>Q¤õD¸õ‰.­'ª­O¤i=Ñk}¢NëRëZOdZŸ(Õz"ÐúD¯ÖQªÜ”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ9P—ð3c¬'Ú°ODc}&†}¢ë‰$ìõXOô`?sÈz¢ûDFÖgØ'J²žÀ>Ñ“õDúõ‰ª¬'º¯O„e=Q|}¢-ë‰Üë…YO„^ŸèÌz¢òúDjÖ5®Ü”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ9PÝþDòÕgjÙ'ª¯žèÊ~æ~õDQö3¬Ït²OD`}&’}¢뉊ìg6XOôcŸÂúLûDÖÙØ'ʰžhÆ~æ‡õD-ö‰D¬ÏT±OTb=‰}¢ë‰ û¬ch ƒB;A@EQDA‚@„!!…Ô$0+×°¬E{÷êk_: ]¡óƒN¹£­éráºFè÷œÞ.Övtç®UzyÎèÇj/ú×a]7çÐR¨Qè|{õØ›9e'NSÐÏÎñn/ÌÙ / Ÿ¿íkíîË™ÛKÚy¾¶û•~ïÊ} ;Kv‰GÊQõF4à<ŒØF>(Ç»ZmnÖm°úü"§Ü&ž}ænE…•êíq;g“ùn ‡­öâ8­tsLßþ¼€ÿ_¨Àà…}ˆ@ „€"ˆ"‚ˆ "¨ˆ"À&B„ÓgE"—Nû€X§yu.šö×éÞÕ¥Ó|Õé4/x×é„7î´¯óBÓ|¹¶Ó;Ø»N¯¦ÜéÞù]§MÚiþMÓÚFÜé\N§›=­i2R0:}T³Ó9_xš^þòNws¸:r‚¶£Ž¢ -\Ÿ±Jo#;PÇø/® Y£‹7I6Ë¥ÙdüèÿU˜`øÿÿ#˜‚8"`°~ª(]ÝétšÓÕƒ7tš1­:-•¦Óu½Ó è:ý¬ë†äÒé/`ÙéB æÙX;=•£ÓƺÓ­:mάN éôçgï´s²N7J[§£ýtÚ[vÚr¬Ó®·­ipÓéïÞÚiWdöôèÿT˜pøÿgx à”&Èúà)P¿œÙéÊü¬ÓŸ&º·@ê'';]¡uúS£N÷VT~©¸ÓVµÓè4Hë4àÞhRA]s î´tnwë´uœÚéÎXöÀ)n²Öi*¢Þi._ ÖU:í £ÓVPµÓ§¼S+äàT˜pøþ"™`­ ê¥õôä~ï¤:­`Ô[G ÔU†íôS*éô…Þ Æ~¥ ¦Ð»ÓïµT§Ü€zë.ºÊ­~ -&¾»Ó\š©Ó5®5ú45 •NïÎæÖ\ÔNߨJvúC9uÖçnç:‚³Ó×ÓäèÿU˜`øÿÿÓDÁZÃ@ýµ‚Z0ïNWôІdÔÏ!Ôïs;‰µy¨O¨ßÕ‚A‹Úò ¨Ça¬Ó½‡ê²5zøNŸ²Îm;¨r¨ï·: 2ê´ŽêA}óc@MXÝé„L§q= j¢"jʧNŸôŸšäèÿU˜`øÿÿ+ÁÑ@ýÈ )¨¡ñÔ1 @}t nëÔ÷ Ôk @Ö_ f¾ÔEýjKŠ@P ~‰Ô$êB‡A L fZÔ jrA {P >¼Ó´“æÉ ¨0P»ü·Ób„a¦+óA-‚bÛ;´èÿT˜`øÿÿsŸ`ý~6µø8€š­DPoš¨§G@-n fÔ›éêiP‹§¨Ù>õ&;€zºÔâìj6A½ù žÖµø;€š-CPoʨ§/@-. f³Ô›õêi -P‹×¨Ù&õfI¤äèÿU˜`øÿ à»¬‘ Ó1js eÔÿèµÑhuÙQ›3-£þç&¨R¨ËhŒÚkõ?4Amôš@]cÔæd ¨Ÿbµ¥6úø5¨j Ô¬\‚Ún7ºœ¨E» Ô«ƒš$¸@M=ÔâÁ ÔM(‚ÚrœñôèÿU˜`øÿ#šà³ë§‰Ä4êÓ|j-ÌŽšƒ¯ŒºsPÿP3H>êL‚5êÎ’ƒ:¤°@íÈÈQ!–Qg2 -ê€ÅjFCGýͱF­Û¨…"¨Y êƒÈ52à º,PkõÔt—êF½G}®F_oP§u6°°=ìèÿU˜`øÿ?MðY×½gõ «š—÷Q»a¥QssõÌ«šƒmGýðj£þ´êãaÔ›`õYº–QOÈÒ¨ý[u›Zº[ÕQÏÔ¨yTõ»¶ê¥¤F=W£î'%¨ŸÌ¨¡z6j¨]uç ö’W¨§3ÔèÿU˜`øÿWCðY×Ö•Ázž¦FÝïî¨[7iÔÖîFÐ £~h;ê?uÿºQGÒ¨]Ôµ(ŒúmÔóC5ê~tGÝ2J£¶:7j„QõcÙQÿ1Õ¨ûÈ:Ê”Fí*î¨ RÔAnÔQ©4j—pGm -Ä…ÄèÿU˜`øÿ[Á5X?ì±€Q£-jÔœþŽúgFÝßoÔ™Œ2êç>G}ã¨Qû㵌£ÚSïQûDÚ¨ïòF #R£îÈÔ/‘4êã{£F¡Ô¨9Ùõ%ŒºŸÞ¨3.eÔOsŽúæR£ö77j™KµgÜ£öÑ4ÉŒÜèÿU˜`øÿÿ¥àϲ~¸Ž:úÏÁQàÓ¨½34uÁûÀÔ¾epÔ>þ4ê^ F-áO£î› ©}H¦þ<áQÃÒ¨{>jAu·Á£†)¤Q÷|Ô…4ꮂG SH£îø¨9iÔ]‘FÝ#ðQs ’YÕFÜèÿU˜`øÿÿ¤àϲ~¹:Ž:^úwcS÷ÐFý¿Á¨åàhÔµúS;£öÆà¨;æhÔ.ŒzÒœFͱbSK’Fý_Ѩ‘ìlÔµ‰ú_"S#~£ö–à¨;òhÔ"ŒzRžFÍñaSKRhr1ÜàÿS˜pøÿÿŸà*ë¹G­ùŦžXE£^ã¨?K9ê aõó™:L1Míó'FƒŒ£~d¢Q§iÔþI0µ‹enj´I2ê3Œº·£ÆqÆQ?‘©ÃDsÔþ‡8ê,5µF­GQ{íÁÔ¬^ã¨{hÔ)mâgÉìèÿT˜`øÿÿ œàg¨¬– >%S·Ù¨{TyÔ}j0jNUŽºü L͹•G­wF£îm…©žÑ¨°xÔ\afêäYuT˜Lím–š%ŒFÝj‹Qxɨ½lqÔj÷¹5ä–ú3—M­hK£æå…QCTÉÔ\~á¨Ó“ôèÿU˜`øÿÿ"šàg°¬ÇË|¤©…jÔ~’pÔ,25ÛJ5ÄŸL±’MÝèÏFÝYIS ýÓ¨ý0á¨Yòdj¶›4jˆ<™:ã&›ºQžºÓ“£–´ƒQÿy⨱æÈÔ­¡<ê©9š?”šºiÎFÝNJ£†h“©3žò¨;Ú¨0,GäèÿU˜`øÿÿŸàï²~ûIëѨc—`jN}pÔKõcL èRFÍ È£v¡Ä¨½aÔ“H0õ¶Aõ^¤Œú9ˆ¦‰QëâQ»eÔ®†µü¢LÍ#‘ŽºeQ£îL¤©/Ò¨»yÔ~ˆ5?#ŒZ^h¦þöˆ¦žVH`CìèÿU˜`øÿÿ(—àϺ~,È,£© ¼jÔ:h|Ô\©bjâ5Œšd*L½±†Mý–j£v]ƒ©§jÔ:n|Ô\£bjâ8Œšä(L½‡Mý6j£vƒ©jÔ:t|Ô\bjâ;Œšd'L½q‡MýÖi£v½ƒ©wjÔ:z|Ô\š -)ŒìèÿU˜`øÿÿ(—àϺ~]&NÁÔƒ5j+>j®]15qFMr¦ÞȦ~ÛµQ»fÁÔÆw5j.>j.\5?F-Vk¦æú‚£f«%SSÑÔk1jÜ/jê¦Zµ§Gæ¦Þ(ã~xSÛ–ÑÔ_1j½2nê”WdÎÎìèÿU˜`øÿÿ.”àϲ~ŽDaÔçšeêï#>j¶f2uùM ÐL£þ;‚¦®jƨ9ÁÔÃÍ2ê%<êc1uyGmê¦îjâ¦&:Ö¨½6ÑÔÆÇ2êž&lê›cu#G}"¦ÎœÂ£æ &SŸN‘©Aƒ5êShj§`"„ÇìèÿU˜`øÿÿ,–àϲ~¼tkhê ßõN 5µÂ7ŒÚ‡£6“-SkîàQ÷d‹©kwhÔóÙ0µç6u[6ŒÚs‡¦6ž­QëïPS7dè=}8j3Ó2µfuÏ´˜º6ˆL=8 S{aS·Mè=ƒhjãÓµ>uW³¡côèÿU˜`øÿÿ>Mð–õmq -šzp¦fI¦6¬Ó¨3¦€©ë4ê)ÐÔt2uå Gí¬\Lýò£ÎUn¦®¿€©CËej§jêC¹ºã ›:XN£æõ¦&SÛkhÔ!¾ÁÔî:ê ß`j{ ™:ä[¦vª¡¦>|›ñµFÌàÿS˜pøÿÿ:OðgU?_™힣ŽÝLpï¨ÿ쀩«îqÔ|;ÈÔ ô4uãÚ^MðƒEýM-°¦¤`S‡lê… 0ê?ýhêÒuÆ~˜Zì‚LÝÜoS/\SökjÀ `jG?:Ã15e?£6zÁLíÞïQù¦®Ö×ÔÂlÔúîijŠ2jœ÷0u°ƒŒ:Ç=šÚ¦ƒL]~¯© Î³ÜèÿT˜`øÿÿê|ÈÔöŒzT™ºs Gí—=ôèÿU˜`øÿÿDJð –õtL>ÄÔ¢`ê÷Úš L}ÿ© ˜©/ijK0õýa£&²€LÝúðQËR@¦¦ø¨IS;ÚÔbêJ†L-‚@¦vf¸©oШ?&ÄÔ¢0ê{ oê»õ½ ™p™ú’¦¶,€1ñÜèÿU˜`øÿÿ@Kð'.?™Š+njà™šYqSSþÇÔÔŠLþS;*:jÿ1õµb£núS¿*vÔ?ÿejcÅ£&òS¿$ÖÔuÈÔu‰›˜˜Ú!‘¦&#¦6JÄÔÀ -`ÔzjêKdÔ3u¸uü‡›ÚXáâ8ÄèÿU˜`øÿÿ@Kð×?¾ˆ72ê’ü1µ³‘£ÖÉS×35?¦v`¤© þ25‰1SùcjFššà/S“3u?¦v`¤©‰ÿ5EL-üߨû*ÒÔÕÿŒš¾â¦þgÔõojâF]_qSÿcêfEMmø’Àc¼èÿU˜`øÿÿHHðÇ?æŽ1u¦n6ÚÔT~˜Úܨ©Ãü1u³±¦&òÏÔçÆM=䟩Ÿ7õ‘¦>7nê!ÿLýl¼©ü3õ¹qSùgêgãG½'¦6n|ÔDòcêöÆGM/Lmo|ÔÅógjöÆG=/? yâÄèÿU˜`øÿÿ4Qð×? Ý7nj@þF»ñ¦¾òcÔÛ›š˜£îm¤©MùõæÆL-Îߨ{7jêGþº»qSòkÔû75!£ÆÞ¸©ÇüõîÆMÍÊQw7bjaþL½ÝXSÓòÏÔôFL=Ì/S36jêDþÞ#¼èÿU˜`øÿÿ2Sð× -ü6嘔_¦foÜÔ©üµc¦çoÔ¹75"ÿFÝݸ©EùõÎÆMíÊŸQc7bêQ~Fý»qS+òoÔú›:œ£îoÔÔŠüu#¦åר¿oê*?Fݸ©Gù5jÎF›š–?”I޼èÿU˜`øÿÿLEð3°?^âÆG]9?LÍnì¨éÊ©‰Zðü1µµ±¦žòËÔûÆMåÇÔΛš?S[72õ0?¦~oÜÔ´ü™º¸‘©Åü3õ»±¦¦òÇÔåFM-䟩Ý4õ•?¦&7jj ÿLÝl¤©…üÁ6ǤàÿS˜pøÿÿ@Kð· -üŘõßQ߬˜©'ÿúΊM½úï¨oVÌÔ“ÿF}gŦ^ñ×ÔWŒ˜Â?S?1fj…¿M}ň©!ü™ú#S£ø×Ô'ƘZ௩_125Š¿¦¾ndÔìò7õëÆ£>“S_72êù#êîäèÿU˜`øÿÿFH°CÐ ¢jL=F€M–XSGSgê–ÜÔ–D™š šZ(1S»À¦6UlÔ2ÿcjPEF=ïM}«Ø¨ûþÏÔ㊺ßÿšúV1S—ÿkjqÅLíþS_ejâÿ¦V”©Ýÿ7µ­âL}ÿwÔÈ,/wÜèÿT˜`øÿÿBKðgY?¸ .à¨O$ÄÔO pÔbêS0õ¡LíBÀ¦>1„© `ꆘÚMmõP£æY@S‹>Ô¨ù°©­ÊÔô4õèaLÝ( ¦®xˆ©O hj°‡˜Ú±:ÇÃL]_€£ó0S·àQç"”üèÿU˜`øÿÿ@Kð–õÚ‹AS œ©ØÔ3u}MS©aê75u `L]IAS lÔùE ©‰N1îìèÿU˜`øÿ?B ÓüY×!H›ÐÔ€î05ƒ ›Ú̦>5©ÇÝ•jhL ©Uñbjõš:o¦6Ž ©Íâeê{¦Úz3õ„šzFO¦Ö‚°©£ô`ê+›šˆ¦&¡©…ïaê§4õݽLMÛASÞÃÔ®>j|Ý £ÈFÜèÿU˜`øÿ¿A Uðk]?C†ehê@q˜º)ƒM]'S eÈÔPq0µQ†M]TS—_ÐÔÁr2µá…šZU¦³0Õ!C—©]XØÔ't3õ‘…MD7SŸY¸©Eè0õ= M^S·R¨©ë`ê} -˜:°S¿›°©kîJ «ÔèÿU˜`øÿÿTCðgY?b:LœS‚ ©Ófê±Mf-S·} ©KÖbj¡˜`m¦>ú°©k²eêú˜:˜-¦6ì@S ²ÍÔcš:Œ[¦nã@S—¸ÅÔB05€ÛL}ÄaS×|ËÔõ0uð[Lm¨¦|›/FÔèÿU˜`øÿÿTCðgY?„ðSuÉÃÔPhj -±™º -¦ƒ©PØÔ’c™š´‰¦9†©MØÔ¶c3õP M R–©™”ØÔÊ0õQ M-n6Sް©%Í25éM-Ò S?ˆ°©mÐfê!š-S3±©-¦¡G¿ìèÿU˜`øÿÿLEð–õ#qŽZ²W3u[Œšº K¦.Š¡©Eµ6ês}¡©ïjajË/˜Z¸¦~çBSÓàÊÔÅ\4µ×LÝæ¢¦.ì’©‹YhjÑ®™ú•G –]™šØŠ¦õ•©­ØÔ&¾0õ½L ,S7N±©MÁƃµ¼àÿS˜pøÿÿRCðgU?`™Ñé¦&ÒSc@5µk:šZÔ¦>Ò1S‹Fiêã825m”¦®u#SƒLmêV74õÂM½vS¥2êí¸†¦&¦ÒÔäk`ê‰TL͈¦N²²©ÇhÄÔVLݦF¾º©«eÈÔƒWøïâÌèÿU˜`øÿÿZÁß`Q?‘M-BtS¹©‹0µ8™ú°HSS’©íŽ25ؘúꨦ–"S#15È ™Ú©¦¦S¯)ej 2õ’¦¦$SÛ/ejp0õõRM-ÑC¦jbj=2µ[SMMÓ¦^wÊÔ îÌèÿT˜`øÿÿNFð‡U?nNÎijáP0µóMmæI¦®ÚÉÔOfj¶šúä L}΃©!›hÔy乩˜ÄÔ[>M=ˆ ¦vûó¨ýUI¦®þÉÔ€J6j|ÿÐÔIdj« M”D¦n²©uÄÔÛBM=ȦvC´©MÞ¤ôèÿU˜`øÿÿHH0C°–õ¢ÌnqÔHæ’©Û·lj2[2µµ—¦´S;†qÔèÌ"S_†aj±Yõýahj,3µ ¦Â"S7ÏØÔ”V`êã™MV%¦n«©©IªÌÔä6z™S0µc››ZrJF½s¦#S¿ÀÙÔF¤XÐ3ÜèÿU˜`øÿÿJGðwY?Ö -ij0j0õóG-¦h2µu¦;S·ÜÔgfêkG]Ô2˜ú9‰¦6X¦Q—™dS‡‘©ÛLnê 23õõ‰¦³Qû÷dS[ ƒ©­¥0õ°0™Ú¥Š¦>û%S[Vaêa^2µ M}ÆË¨ŽäèÿU˜`øÿÿHHðwY? É–0jÍÞ‘©™%jê;0u…¦³S·W|Ô·¤ƒ©¯W05˜9˜úÕ…¦¦1S_Ç0jÄÆ‘©™1jê80u†¦ƒS·o|Ô·tƒ©¯o05˜6˜úU‡¦¦ÑS_÷0jÄ®‘©™=jê5€ùkäèÿU˜`øÿÿDJðg]?D0êó aÔûÔÔ7…`j³MR¦f7°©KaÔ17`ê!‚05#MmE¦¾°©#aÔû'ÔÔ7`jsG]tŸ™Ú™Á¦®àSÓ9hê >0uËGý£™šþCS‡Ê“©ÝDhj"y¦²ûôèÿU˜`øÿÿ8Pð×{ŧµù•2u‡ôGío¥FÝ{:S¢”©;¼?j%5êÞß™zP¤LÝA~S;ˆS›×5ø0êõšúˆ#˜útߨÁgS?íkj¤Œ4jÝûL h‘LíRG­a"˜úÄL- Lí M­ðz2äèÿU˜`øÿÿ,–àǬµA‹µèSuwñMMĦV¹lÔæIeÔyË5õ…Q0µy´QŸ*SkFÔCiÔÞÑ›:¨™ºõúQëé‰Qÿ^oêAbj–îŽÚã&L­¼Û¨GÞÔ¨s»ij$šbjÊñF-£Ö1®©¸„“\GÜèÿU˜`øÿÿŸàÇ -°~ìêPG-k£î!}Ô~miÔíSG-mk£î9ÝÔZÔ’©ß¶µìYõ§õ¦^C¦æ8ë¨åÃbÔ=³º!¬úiû¨'¶ÂÔ9r9jßVuk.SÂJ¦þö먽ªÂ¨Ÿ¿›zXUŒš_¸£f<íRìèÿU˜`øÿÿ !x¬ë™î;jùË0j_ßM݈2™š}°QÇGÖ¨ûoê§È4jvã&]L£öItÔ‹5ê^FF=_£æ}ì¨_…mÔ¬’GMú—L­¹ÒQ?ü…Q{+7uA¾djîÍŽº/¯FÝ¿¹©í’©±…zÔ¿¹b–­´àÿR˜`øÿUCðU׆°o:j•Q;vã¨Yõy7£–äjÔýÚ:êÖWFm¬QgÄ6êçkŽÚ©¬Q÷_kÔQ´ŒÚ‘GýXۨϩµ¤[£îÖQ·â2jãhŒ:C·Q?;sÔNwºßY£ŽêeÔŽË(Ï üèÿU˜`øÿ~,–೬™ŒE¨…±4jÜò>j€ZY€ºžÁA†À¨q$è¨ÿêVõ¸CFí=à£æ@¨QÔuOµ—F ^©_PÔ`Ô~÷}Ô u=}ƒ: „QãˆÏQÿ™Ô­îêq“ŒÚ{½GÍ%apôèÿU˜`øÿࡆÁú¼ -)¨Eªš“GƒÚ ¨yÔ¢Û@Ýn£AMãeÔglԠɺFƒš†Ì¨ÿ¶Ø¨A«u»Š5šQÿ=±Qƒ†êv j8£þb£mÔíÔ4y@}‰aPñê† -u8€ßÔèÿU˜`øÿ¤à±‚®̦å ÔÀR@}g“ Þ¡ê=›€:¾ -¨ïfÔ;W@½“Q/§Ô-0 êÊm ®j9¨At€úAËAmÓ Ô¥T50P»Q)¨m†€ÚÞI 32jq–ä¨ý1ê*’€:Äܨë+òQ—!%àMFÌèÿU˜`øÿÿ[ ÁPÐõÜ„E êÀr v‹JP ¨š–Ó ¿Ñéì´Ô .ãj¡¥€:¨ïÔ -B@]†TPƒu[QƒÚ¦¨©„jP ~'tP×Mj±ŸAh¨o~ -jš @=ÆP>õ]΂Z!*ЯFìèÿU˜`øÿÿû4ADq AƒõéÄØjPœNãU­;ý¨)¥Ô ~gÖ ¦héô­ÉÒiPÞ€úa¬Am'êC` -ÔÍÀÚé;€úR× ¯éôï´Ô†À@}¤5P5ÓUƒšPB§9\•N›4ÔLT jB€CT¨ÿ]˜ PˆD*ADTAB DŽ@BˆúóÐ"^§ë´½Ó3[øN|j¬j]Ô;íÍ‚ïtÓ töïô®£@Mˆ_AíÞB§yŸ/P PÓlïN7ƒµ¼õÖé´ÊíÒi¬ÔNÔE§U¶õrê¥,n1\tZeP7óP#ñÈìb?T(ÿÿÿ@¨àƒ‘¹Rè°J‚†àÿŠ€eYŠà;ÖD@Í- Ç‹–`‘%ØœU±Án œ´sc»bk‰˜Jõ«GкÄ@^ºà²¾ +ºsæBKÒ úvä6ܸ8ô5ˆžj|QÝÞR–HV–£ûÁ·0¸,Áôº.}ˆì–i]Ò÷ŠòqˆUZÐ"M‡Ó9榱tvMÙç#âÐÔÓÎ,È´ *TWhqâîF 8F1 C@1 ADQACÀ0 ²G¸bòDÍ0÷µ1ù.VûذÃï«„òhL ëX¡?_ÊlÙF,Q¹-ËÄ=fbȺ$‰ ‚)¼c´ä!_/¬w”Üz黌Œ±.±*`.û<ëÉÒ…Mî%Ùw|Ž”e ›×kòïuúXÆq›¦3åWM†Î–9ðÀ2èZùYK¢ëe€°§<.?Ô{ôÈŒ@ö+¿ËïV陯Ù~E´þ?œÿZ¨àRq‹¡8Aƒ "€ ˆ`‰"€ (€8Â'þÅôÜ ›¼ -i3âN_I[iA†ªßo’â²~{¶E³¼Eö¦A;Åíw8š0# Ý—±KÅpz3« ~«ït1~Ï\Fp©‘Æ(¸ß­Ìpàf§Ž…pþA™4@ÁÍÎ;áük2[€ƒ›ô2^þ2)Àƒ;·²8Ü}A2>à„ëõ62"n¿™0 …{Ú=2%®œ # †;ú\2+Þ?…ÌY+(?”ÿ6 qFO R6=ÀvòÆ` ŽùÀÛ¨‹ÝíN@¶ô^]"„–l¼mû€xMòå¯]Èå–ðAÈb>P7íâƒ7a¿º„°Æì–ÌU£%ìºdÛ>TâŠàÔÒCwQ\>X@Ü-h°°ëá ²E`783e {@– Œ“‘…@&œaç{Í{öAäa}H/‡ù`a5°µüòÜÿ$ `óT8kö³}˜8{ج—×B«K|P8ÞÃ]ŽA@+Ó½¶ö>HKd‚^}À þ¦‡Ùú€ozÈ­õ†r;y냼õð[>’ñ]r=8µ½Û4a¹|·¢Ëm³ê*qû mëẺ¤±þã -Ìÿ& Qçwy·¤%ÇöÄà–œàu=LµX×CV}ºÕÃWu Š„}s,Ùƒ&”Õ‡¤ÛZ}ºÜêCÏí®>Ü\ôp×€ x‚Ëõ0U†0ʵ²JLJ°ôá®"E>hÂc}à¸*ËUøÄ ÿ6 !ÇHÜ„›4Öò8_¹ô¡6_¹ì4ßréƒe¾réÃQàöÂ9u‰äÃæ -p@^Y¢‡r:ÖxMÙ‡wŽÔ|X–˜ÐÎÕì–<¥>°H|è–({þp>à„ {àgÛ>„0€Œb4ZLô¡ÈÔ‡¼ë§|˜»|êCÛUDÕ%>œëA©n Lå;Wühÿÿ/ à÷ %ñå^éCòõwµôaøú;Š]úÐ{ýE0}¸½þŽâ˜>Ä^GÑLV¯¿£˜¦¥×ßQdÓ‡Ïëï(¾éCæõwåôaò|Ï’Q_¶t`èréGÁ|È¥ ™ |=äÒ ¾¾Uw¼0ÿ' ‘ç×òªÿ E¢°0ú°„=˜‘EØ}øAéAŽºd|ÈAZ2=1–Uv öàGZ°BŽ'HKz ¢õ+q¸ ~ý-Š0úÁ -ç×ߢ¸¤á×ßQtÒ‡íëïQŒÒ‡êëï(R郩ýõ -ôÿJ¨à1N0gGa¸A#€†€Áþ#$€XŒ$˜!hÌ ×}/‡4‰É¥ÂÛxX¡=ŸË)ÕK‘–z–é› -É MX -7ë\DÑ ënC• ß[…äð@ò{K"b0è‹6¼Ž,ßšpî¾6î‘ô NTž~W,_˜ݾɤ0úkSìVhЦyÁL¸ƒ0ÝþußâÀý0!ÆZ!–ü‡†"ÑŒ¡NŒ.œŠ¨R!ìýÜÿ_¨à1R|Šƒ8D¡ˆ!@ „B‚?‚0ˆ#„€Nø&ˆ%ÿÆs™¶‹Øo|šÁx„‰0 6p Ú‘– =ŒÒ U“>œ&Áƒ¸Ú‡³EA>DÎ|P;PÂT©7®üÿÿA¨ð ÁQ\Z`@à(Žàÿß‚q†À!Pí]£ª©%®3–Ä×Zq•é¤%|*gD·kÛ¯ ô*cÚÑ0›-¬(øh©Í²Äo¥CÆËélQ–@X,·ØÁÎZq µc¹sÚ·!¦K²Í¤%¨-)ÏO+“6—.áD³r7‘i®ð*·Ž@=q?”[-úK—@qákBEœÿP¨à±Æ\Ü…"ð0 ÃLðÿ—$žù”A • Ï؉6Ñ`²²@ýi¶ÿ(‹j!É€DUHRbøÅ»ïƒ¶QÚG[Ù}>:’¡à¡,¡Hóir¬Ú™yB¾]–\†jIaêàÒŠë«°½@Ö£¯PÑ%6:ÁŽ%Ñ´|ú§p'ºd¦(z¹“­«X6¹IKþ”¡ö”•x6i‰tk7ÌP\È,*{˜¬ñÿi¨à3íxRðÿ‡`áÞ}ãyŸAh—ùܨASÛx€¿4BœÅÆÌ4ŠƒˆéOs¤˜ÚnE†a¬ÓáØi™/¤™øýÌÁÓa#T=WŸ.Ó„X“oñÑ;27ègÎcfí@ßôg@‚@U!PN Z~ÌL;´ÔV¡ô ¸0uA4ç ü<ÃO)רhE—œÿq¨à3íøqx†€!ø­%¬ðcAÛ¸Äw,7‘$ÈbÄùÀ>ãPÖ‹“½çQ@‚Þ¤lhâs !^UŠ1­è3Ò^y)Ø2¬ÕàGJàYJ7Yk¹ä¼šK]8±{Š š—›ÅÎ:ÉE@ù¯Â 0™è -'ÅŽù^üt›S,•þºÌ„SM9![yhjŒ1­P‰ÉÒ©Ù2xr­"ÜÉæGz¸›´ÿq¨à3íøQT&ø .¬ÀCQæ*Jf.¬S@ ˜mbŒ† -5‹uÂÈî€/Ò!ºÿ…©@¬ALéáÂ#²°óR †h/ÑØ0ó ¯Xª;†aÅáT Eú!O¶ SLŠñŽpÃÚ!(ÁâzíCt –8ÖÄ¿¨#²xV¬DdDwˆÜÔß‘X42#7ˆµFø"wcùV’šJ‘†Èä’rI»c~Ìÿq¨à3íø!P4.ÁÿO‡„u?ÇG-ºîÞXý(§—‰ä)ð €Ë÷Q…^}õ€¸Ì­ ¾xÁ3àó<0@sþljƒŠd^\9¿A„ºÀÍï8=  ýCA Ù}Ç 0À…ÁÏwyê| ïeP -n®DŽG`ñqèÜüŽy³ ª<š½Ù˜(41—[®Ô„í! ò[AèjÑ&B%6?Tÿm¨à3mø<6CÀü?Â>þ”a Ø=ÚË?[e‰ñq‡í¦Æõ‘¬¯ ¹CñŽØæ“¢¬†9û Ïmø3@S™ç‡C>½Ý/ך -éìä|ÃñGÄEYk€¯¾Êío‚Úì㿽ÐÑ—¬ç$¹8ü[÷ŸÏ´ßÁÿ|¹ÃŸ·džýŠw¿'JY^¼ç=î;  Ñ tþto8ËE9Âõãø_·¬þ´ÿq¨àsÍøç Yžàÿ³–ÅÁO´Ç‰„¦ ÔGHG’‡ÞT-ä ½qK,®ûÔ)ü6·ufÐ?±\E-£]3Ÿkmzu }0j zŸÄ%Y´ ˆJ'Ðxƒ­+„5ËÔõðç`ód”ÕËðí5pzcûúâ…±Ão[§Ý0•±/€ ÿêÛÝcó`a^Z·F -]–mA¶Ë{ϧÁ€È•Òÿ¬ÿq¨àsÍøw ¸ Hð¿dгR:Û¶jfŒÜxçê}Fî¬!"VEǵ‚µ{ߎ'‽Ïéê4Te)b¿‰ç:áB„¶{4øø › sûÀn@× ¬¸écÅ$D©r~Ò.Bôø!:+6¾Óû™lFtQ•Õ~bË é.ÕŠWƒ‹s›E …X¢´‡†ÏŒieèt­8:-ºœ±DSÙÍâäÿq¨àsÍøß"@’$B€ü&X˜8x–“„qV” âíÿ¶bCþõ–0A€ÖÀUšgÚŠ©]oL¨¦±|’s1€NWSîaFØ3mœ®Ë›Ñ™Ü|â´Fú«p  - ‡6pÏz‰ýdÚ"P4 N`C€*µ•Ôù¬3S'ðãÊžp”r(/ñÏuëR™zK¬4¢Á0ÈPÐ-i’#HÉb—áv RœzH1(" ÈpþDÿq¨à€sElø ƒ€ÄqB°DÒRðòó {£¸ÌÀ£øV‚ìI©_c -Éí~qHT»ìÛ´mŠ~ß­"]vS ‹3ö;®òÍ…¸š:¿×>¡TNÌœãýü+Çó¸’î }ŸîÏo Ɉ¯öHÿbÿ¾K*\Á-°(|-»QßšN€…/ /m`žÝO bAfÉpoýhØs ”µ‰¿€£i…ÚÀ²‹Á 6bÖ»õ‘h_ëDÿe¨àp2%'øÿ· (bDA‚ÚX ùuõÊ’ùo|úb~yø, }™¯ÿŸ¿ªV7´ž1ß,ál!CXŠ^H¨iµnA„~"ËPâ)àt¹à•i‰Úm¬äy¬«Pd?U@y½T¢’þÞ› á6(‚Hô]žŸ1Ù êØ£åCmÇjHÞÄ3ºMØxQÒY  /„a¤]!aB9cQSsÃ%¬ 4.XnHßö V¿›Ìt øôÿ" ðõзLö…à!¦ö«°g‰bTÐ<ð(H,T<)ÐPР†àaI—‚¸ÎT¨@ ‚ià!J’ -*Ø¢à©à§ )ð@¥@T?¦óùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDýÿÍ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿtÿ?œ.Û@9¸ì::\H$ Œå ·»“ :•ÚAudî‹Ó]ö íÁæ)‡l6¢'GIKäñx<‹Åáÿÿ°ï÷ß-Ÿ½V§Ò(ô©3i ÄhIé™ìt¸ŠYìÁ°B™p»¦I#Ñè²ñÒ)¥ÐáŠÉh¶Üņ‡nWrâû±ƒ0ŠGdRÉÔN§ Žtß÷}Z½fyí¶ûõ¿;Zk¥N÷}ߣЧÓél.“Èã‚1 ‹ -J7@„##w«Í&$Zùà -…€ßvMH´é”j½b²͆ËYdøÐéBv%'=ŸÏ‡¢â Ècq&F²ü|>Ÿ¯Ç ¢Ót¸Èán5 -ÙÌ‘C4(¨P¥û¶kšD‰hÇM ªÕjµàÀÊóŸÞ~|æû_nVgÇyÖ ‰0->ÝFŽsA, LwM -‰Ht}›R ® §ñ1ÂKy*HÖ8¡QêU»ó5ŸËerïåòÙkuߥ;ÕŠÍòÛî·ïû¾ÿÃâðî½Ü¬ušcÓ¤1ÎY|D8.l3‰¼a•PºkzèÚÆO*ˆŒÂ†ÁBR å%†x¤i>q¤Ô+Ï ‹ÏerÙ|îéé9›Ëd°ÿíj±:{Î^“,Ê[~&;\MöÊP¦ÛÆM¨U«›Uä4<8IqÊ‘ËæÝ«W~ëí}ðÿ‡Åâñ˜\.›Ígžžr™<‹ÃÿÎZ©Ò©4c€+(¼Æ&“ˆxXH!àwM“>µ}—N©V &£Ý.6>DH - x"PpT.›T,¯åz{ß÷Áÿÿ‡Ãâ1¹l>óœÍerÛnþÇâßÿr±S'M†åd×aAƒåü´rhÅj#'+B¢R‡JuøÌóÝá¯ÕýX”®üz&»¹[…l"öŠÈY¦JµZ­XyÞ’°Ð"BÂ멸‡DcrjÍn»ä²ùì{·ØjôYsœþJB6p³‹e²iÒˆTߦë%³i€ôX„D$Ó&ZÅn½þËæsïåòX©4ÇÆÙ¬Q"Ä¡0\ùõz<‘ˆÇÆEÞ’ˆMTÜp¹\Î"ƒD§ Ù™œÀÈI¦þ„Fwª5«í~ûðu‡êK£ P…'€Ã¢k9¬J6=}lü¤jÈ_2FÇŽ§D°€¦y¥^µÝÞ|6—Á~ÿínù,VgºK£Ð§Sכˤ Œ0øb¥çKi…C¢ñˆD"‘J¦®ëN›žÚ.¥Z3\€]ïEÙÄËç²Öºã8—Æ™àJD·aQ!“ˆxP@!à¦Ë£¸atàý^†Ådó&ZÍr¿¾yYª”€`Ô`,…^“ìj!‡Õ0>¤‰J=‡šÝéÿð¸l>÷Çá_ -Õ—Ça J‰HG®&“hÝ¡PîŠQØ.6@FNT€Ãb’i“3½j½=X·Ö]ÜÌõ B¸é©¾T-ÙMCg¢$*uœ)–ûå‡ÿ»Ã[wœ'Siœ¶üpµY̲oVKb‚ÂfÀC@IÏp¨¹Ôozðþý.¯#µ©1]z# ¨’M…@¢—즡+ùgÌrùû_.oFoôšä‚˜¾œ6‹½"X +U‚ Ço»®kú4‘Hö—N©•BDî‚MPTà~-Á¡d€Â¨A­B - DÀ@Ä -B\=À ‰(iŽ!Á@ü@oŽ€CBd-"~åD+WâÉ€ÈÅpÀ0dcÓËÄ9¼9%¸bL½‹ÌF$Nz¯U뮎ÖErâÊhoLß…!;Û)ObSõ4‚(1Ì&éPˆb8¶I‘⎑‹Ô§+µoH"¿!ÕRiƒ ö‹¶r'cŸíÈýÃrÃD!Zq8|9“̼"â6"¢K¦óQd —N*ö[N“¿Yá¯Agà›¸0Ž 8Õº˜k}Y!1 ·Wª*©`7†ÑH¢•Ù†Ïê}fúLÙåh¯Õé•Z±ÛBó%&ë%£É^ì´e‰Ì ðéf-Ôh„jÍt½ ÆG‚&Ì•+ÖÕ|ÛýF#è( -ˆàél Ÿa w „”°œÓ;»Ý¿×éò7[}2E8†¹ ¦*…>üÿO¨”zÕ„ÈeËt†>«w¶û«µJL - 7{­P$Ñ™R®˜MÇ‹^“&Íh•¦6¯Ñåo6Æe…äh€‡“±N"Ȥ‚ÙrˆÈ’&Œu6§w¾Ý¿¨u2x;C*XŠ‹$z9Ž;©d6ÝîaÂbDY#>§×|ÛífójìÅR¡*$GÁžnæB‘B ‘‰•p[ðQ?°Dc°^²®ÞÏ㚬u -e1IvdTv -·GåŠÕpyï'à‚©d¶¼TÕ;ßæ÷´9¼½J("=ÝÌu@ -}8›ÿ¿A° çv˜#”k¦àj$™Ðmø¬öμ¨ˆ˜àÝ^£ÿèäªå?‹å»½§ÍàlÕyR@èS !°b8žÑHÂsíŽõ5ßîßožÁ†Ð—":›ÿG(—mäŠõ5ÛÝ¿¯0,ÊÀ†œ¬…Ø l$QžTìלÞÙî÷[[•Bž þÈ TÆ ÖÆ¸¤ŒpTüx8Yë+ø(Š % -¤35c]Í·ûw{G—½4Ò&‰‘Ä@.UmÙ‹¥>yÿó;º\3󲂀cø 0#¥^7 % -¦íž)ÂQ!ÑûMëÜ»ùµ.æZ£*#BŒe¸j9ÄÐH²òbåŠõu,šÓmc•>ü ¥Óêí{±vº’,sÙJ„B¸õM ×¾çà?–7”OkãT h°$è" ™/Xp¿£ÅZi -2%˃JgL·œæÝ}ÿî¿W— ˆþ¿«¶ iR·âöZca˜ DßÍ%ËE‘fµKÖƒ»šëÔ‘R0œ¯Âc µvËi¾Ý÷ïw]v n.S¨ƒÿÏ(Óý0’+Ôí½÷}›O“»VèÒƒøÛ‹j^mö^¡&G¼ZËêàß#B½pÈì9¬²  Fª˜‚ø±ÜÛ}ßq*7&v4V ÄÁèäº9 ;–Ðë׬.×X]N@üòß@1ÞR›"E`.S‘>üw@¦Vm7±¡l‰á’Óìµ.ÞV[‡¾\‚ªTÛ1BP¢W¯ù ¦ya" Dä`©Ñgƒ’*¶ ¢“Ñ èÈ&O®½óirWæYbл! DžÍÿÏõÐ%§ùvÍ5šRáÇ-TmÎJU’E ÃlUÊHªH³áóšíón¯É@dbM±àwšÜ•.=*|¸aônöÊ4X8ÔV¤ÏæØBÃ$š£Õå.5ÅC˜™ÓnY½•¢tw²”ȳùÅçõ{^³Ã3ÎŒ‹äÁÍw1âœë»¦q)Ù #­j="’¥Ú-«Ùm2wŠrœX€` Ƙ-9mU ‚û;áñF;Fó-"¾î©h=âšívWWÁ°¾æ ^'ÿPš°¾µ"ì{V›kª* øgv H·9·›¤ UúlðOZÕ,4e¼fõ„Å–j6jÂÌP¡þr”Ïðù¹%§÷4™;MùòD±|¸|ÉŠõ‘gƒ×Í·Ë4“¾[k¤¢5 ?˜Rí½ç±”¯Í^Ÿ¿W§²€„îu -qðÿ)µn>"r…Ê%§JàŽ¶z ‚¤H³.%Á®<ý÷/gH÷Ã+q”B¿Ä$È{¾–Yˆë¶÷³+ɼ;ÈÕ2E‡S[è—(ì¹¼ .õ¶¤ë°K²ºq‹£Cþ’|SB!ªYËš‡B-xðèp…¬Ù~Ââg= u:ªÃ3 CH·ÙDþpN"ŽÓˆ_V&ŸyÈϱCˆö×Ëb)ÍCKV„QhqJ–=÷v¼‡‡P »ÆŽtÜU¢s~ßÂl=ñ˜åŽÎû’×ù@×+!XЕœõÙ&`—óÀ¹'Dü’DýVy‘ͦse%"Ù¸‹*Iˆ @!ƒ @AD^:ÞØh:¤<ßÝ Mú¤Þ*#‡)ˆúš¹øž¯Å—\&`%!B†ê£ Ž|‚¨ 랎%Œ*iÞr3K?½N2côÁǃB¤ä#sFqv(´¬d˜RŽ ®®}}á Ø>²-F=^O*¾èè°§ŠõÔé[±+žYEòµñ’e-ÇŠþk"*õÿ}çÉŠX ,½Fs -&¢u}òÈØ1.:ÅÙˆ•ôèNñ -bø>dˆÅ¢Þ„;¼ª¬DØ*a -¸Ò„ †¢Pc/Ct«J§íïªä®vdCÙœ±‚Ê!$J‘€kÁß\ -@L•œ2‡)$* ¤C¸XTÅ¿;ÂUJ9{‡<7!uZ˜d°Íç!vW²!Óî‹­‹ŽU%ÓÚ{ÎÄ)¡^Þ!öM.#Îàlw"!;3TB½Å‡Nˆ” -10Àˆä§«Û¡+ª"ã‘z‡°óñDŒe''Z&ÒŠ‰CÞv8ÞUnˆ¶Kðê¶H^b̨qW W‡®Éx»îµJžèÕ#â„#‹C!ùó*F¨òŸMÔ!ûôº¯_ý»~‡©kˆ "]‹°#âk{ôµKy±Rø8\ÞÛP‡ ëCˆIÂDŒU5‹?y RçÎáùwÄt¸¿Ã—zG6[Í+8•yæº`ÝS"Et@ÄNu-Hr™R.‡òË!©X~P‰U#[FýsL¦¤m’jƒè;ÐBï'þr‹!:|"‡Ô(®bb­‹)ua.xõGd›´Í†“ù-0äÐ/ŸºŠ‰_÷ñ6¹5ÈæÂ—Câ!2R‰Òë šzsøŽPºÙ±3ý3 ½µ»ð'‰óŒrü†^Û/c"UÄc uZ*"ÏM2ä^8kCNqŸvӤ톃u9ËH€ /…‰#Ê´ë0;qð³%«ù)Š1¨C0}6øŸõ,’-3`}gï:øúÙ|Yƒ…ˆ“&ŒÞÙmw›½ÖÁ×–Ä‚h`ÉV—»S#Є @á¡ã5¯Ùm@ݬx@A»Í§ÇX _M%êà´ºE(‰jÇíÄí¥4°„Ñ’Ó|»ín7‘`'çÿÐAŒWÒ´‚õívkaNŒ«š€H‹õ{^³Ûnw›W—¹Ò¥¹ɳùŸ’+ä8™rÝnöZo~BNqD™ºgœ#³”¨ƒÿ͢͡Hòœ ëÝ)ó8¡ð2}6ÿo”$r3ÞD¥ZcV³Ýn,†¯f;˜éƒœJÑ 4L¤]³šg·Ù&¿Œa¢`&¬ïlñŒ‚ %þA³†òeKVñ@à’§yv›Åc"×"uðŸÀ#Ž@³ã4ßn·$+x (çÛí6{}öƤV¢þK¯|@H M;AÂ[N—6•ˆƒ’K7áÁbë5Tæ1˜s•>›ß»yòjò6ªü«›„jy¾*©àÅX$6–R®˜¦%Y±K0}6æPLÝ’Õ|z¬–ˆ¸­Füç>Xd¾çµ•åcBÁUòlþ)W‘l1{cT<(T5(VŒæÛíV£þK.… •ïyÓ8G  `¸ŸÍßÙl~G‡¯,AkÔÁÿ)Ö€‘¦[Vóì*ÊD–œæÙì&ˆPÁEêàŸæ+–ÀtÙìµþAÙX@ãLsN耱q2­1?“*[„¦–¬&k]hH8}6ИóÕ÷aò™§a`8Ì@œŸ;c˜òZhÄhµ¹;=Ùˆ¨¥Dü+˜£÷šéÉFÉ¥›øhΈÑûúìar@ybÇks¦¤è£€6ôh^u®’ÿ ^´ät&FCìÚ|Ñ -ìP‰ùêk6›¦åÀfúlþoãdÚ5«ÉÚ¨ò¢A¤ºý  T½Y½Y.Ø¡ó=¯Ócì3Y8Š'=ƶ€m Í—ëëßÕæ)УI“.o¡IºUˆóG–1ºÌ}ùW®a}Íó»ÚÜ•’sרóC)H'¿Cl0eÀúšç— °Rÿ,…".Û²zçZ#>{Ø[S @ÈNüwH¹ L׬Î>q½ŒeÕ+živHÔ@›ãa˜P½XAiÍyͳù==Î:A&¨BœoŠù4Pª_}󻚜}&èX"Îÿ hR¬<;*2\p:xM¢ƒåÖ•Hü«=X®b4L‚‹†„’ÿ¢€àG vç©Ëb/ÁôÁ¿h• spüAvúàÄ€ï¨!•1H1¤ªh@Ñ@„¦´wÀP‰¥(!0€!@@ø!³\éÁÖñÐÓSì!rxÈ^©µÌµŒŠ]aU#aÃ2˜K\býSèW —ÌM7Nÿµu ê>¬;T¡]I¾ƒ›½*´•.øN¨)·j¸Ÿ:(V\…¶R2>ˆjª®ï!\éÊUCßk á[SõµoÑ”ö AtòÌRI7 YôÇÂCA´[Xª‡P‘p! †|A„Fõ0]ÜÛIº$ãÿÑ…O=´p¤;n‹ê¿Å j7S÷ÅèåÂq¹ƒw$:í¡¾p‡.ìÒjÐãú ê³n©Ðõ\õðÆ/A4Áœ÷CH7{Û&ˆÇæ¼ù„è¡6Âü "Z * ܧS~ â[l+u¼DÃpãŠYØÃð s:ˆÀÄ“H‡mô062Aü—ØE‡~S[ï¡5ÊñodÇî¢qšöUÏî¡2Ë1,n~øŽ -Aù=4Š3¨·ðÌq2GX ì:´!gèCQëUž18ÓÓ¦˜UeÑñÕÔ“—´tÖ;έ&ˆc? Y ØX¡`ª "¨¸ZoågÔ;2 ,ÉŽ£’TëÌKLØÃò–ø|6A<ý­Ô˜;¬’Æo–‘B“˄ȿÈïKZ:ÂaÑÀ’Ô¡äÞÈé$Íú‡Ã#3LÃ’MÂᇊ¿²ïQ !–øX~È /QÔKRf£\ -Kiަ|u8:>àÀ -; ¡žÀ’^¦ãKj3uZ´©2&,Ùu| nÌ \áõþÀµYpÕØÂ’+®ãKˆä<ïÚo’f‡óe|o—0«dÑ*Íø¡¸üÕCî—¹î÷¢ß‰—€ž§Ÿ*1ƒM*äY®YýÖ1iŸ0à•ÜãùIŒ°Í 4› _Т>Vª9Bt’¹([‹=rÄ$W-H  «œC˜+‘ã7×Át3 Dtõõö ¥îb¸0¡~C(pªÐætJ°†Œ“˜lËG€êƒÿRìÁÀÊLdžúl¾+'’H»æ—‘ºUhólAäSK–AÑðÅLü‡V9I¨¶œŽYy£Îg)T €éšk¦%;[Ø1zçù5Z<Ãb|ñ2NbÀúzŽ Z#Î?É ¤XÁºö‰œ¸¥@›/ƒ0îüž&g!¸Uˆó{Ëê÷¬ÞaT(°DœŸºM Y²˜¦éÁB Ó5«Ë"ïEêàÑè¾ÖÁÖ3ÔgóG­ôÎïktøªbBfòàwQ2­9«w~WŸ¿Õ“/IáíàƒT ˆ„ni'þ[ù… õ{V¯‹;—ˆóY %Ô¯®Þ™(¸pËéõ¾N“³-3“ï”8XhÆèõNƒà`¡£×û®>{§Êa -€Pä¥kVïûž&kÀêƒ3\,«`}½ïk´xFeÃáEêü]ñD&Œ^ï*œ€d´kF}ðß¡ KN`‘·DœOûu(ÀŽu/5AnÀÈK×|€—m~CñŒŠ_B©ƒ#ðŠ'2è1Mó13yð_A"­9—·Ð íàƒiqlÒŒO2žÚòÙ;UZ,°BœpášÕ0*Z"Î?ͬ)êuÚ\#E0ÀÁÿŒÀÔ˜Ójuúì’ s*ÐæYhÄhõZ=âü •™°®^«Ñã¬‚ŽŸÌÔÁP½çôZ6w_D(P¶‰¤ ÷³¼`h‰8ßs¢¡S -ð\"Î߈Z»"Š ×%d"Å -ÖÕkuº¼u ÖNÜ4 òÔ’ÓêµZ_U6`¤Î òÒ-§Õkõ³¼ÈY¡Í_-X”¤Í5Se…Â*´16iÆhõz&g[<~2SçC`Éèõz&kÕïY½^«ÏÞi¢NÚ|ÜÒš³z½^ëaô˜†…×@âüWO#åF¯÷5ÇZmî?è–ŒV«ÑäíÓÃ$ –YPP}ðƒV9Š5¬-w]²Rç›fÀÑn½c…6?ÔÚH™ £ÍÝhrÂvêà“mBä%&g9?­‹iV -ð\¢Íw5l¬Ðˆõ´:}þVKˆ:Õÿ¤ˆŽ–,V ¸¡<øM)š¬mé€H u¾ŽXRýžÓjµ>Ʋ0À‚£ÕjõSBTX6?ááÔ’ÑR‰™©ó ˜Ä€Á2'Ð-H;yp G;F[Q2x®çC\¸å´šdÀ’i¹û"B‘rÅ69|¯ç;p°ÐŒÅ4+`$ÎÇ éšÓ€Å¨Q B!ÆŠ!lá'å¸ë@ Œ‚ˆ†`€‚á@PšéÐiÌêPt:¢2ãùó;4JaV\ü0*myج@hGЇt Áƒ÷C”'§7äÂC÷£F¹dNâ:j:é{ˆ‡x«ì¼f€^xø7è’¼¼tä¬ê¢IàahŽ|˜/s ]™•ÀØí0Kèµ?tUq<˜éêExX˜?ÔM¶z»2NÂï~ˆ”­FQæç.Ú@@§?<Ù~Xà=É$Üy;ZÜõó!¢ªî0— ýH7P>°Dòçñy3ª#¿ªrVå´]?k1æÇLWvEL”C¶x #¢]¾KDz¨˜¿‘àÃû~HAw-QÈ7=FÅ>ke £rÓ¼„ZìeÉ› -rÓòV†”%ï >”Øô—œ%Èü€åa ¦ "ñ-Êu³ªîH¬·D¡s›Õl¯J‡»^¾Rù*WŸÈ6·YuD€Øt"ÿo5 !\I ;$™¦¦ƒ@[uH•‘ºÄ] †¼î‡}È®á%uŸ{ÁÿG.;<«É’ø>ÂKŠ0èˆÙµ{W²'°`d²±OnbþÓ±Ý×úUÜHê’õëÃNšäAGï%Þß”S2[™iÓ÷ÁøŒ²êd–ÌV(ŠOªÖÙŒÐìpÁ%³•{LNÄéåÜÁ K¸ËµÊ$>tnä}£Æ-I·‰è aœÞi+úHËC…°Cb9yqì’±³“fEíž´é’àôjfK+$“®ÈzÞz·˜ç¶=ÞÀZÂc|Yìem£àôIJú'²´¥ŠœîàJÀgÀëÀ$/WùÏÐÍÒÿ6 A|N§Óh²¶Åè€ Úü(·ŒV§uñL'l=! Kyð¼˜2#ÖIœ¯@àÄú’ÎJœ_£@0õs©þaÎæFC+´ù¾c‹6«À`@‚ê7¦¤ʃë,–Ö°î’°dÇP_ˆóK²¢]3º%Úü”b¾á_…F¬×NÏ‚™¨™:ŸÁÔkfX¡Í€té–Ñê4zœe1ÐCm>‚ƒQA–ë‚ 0+uþ‰ 8ÁÀÿ¤rÄ’ð,sr±Ó:; `#Î7*4â3Z7‡¯L …Ô'ÃØ(«ÎcEIÌ׬£Ïcm‹±ç -m>,å–u´^®‘²Äº”­v,Øñ­úà:Z7×p> -@…I øŒFëäíÓ6Úüt×ü¥*ÜN«ÁKv¬£Ñgq‹·Á’ëi4 ´ù´`ò¥[žâ*LdÀgtZ"Fâ|ÕŠ5|F§uòÖÙáCm¾DH”[F§Ñ¹>z=t8µd=>‡¯LŒ…ÔõtZg›H¦^3:6{¥#4S'9‹¥5<ÀVâ|…¢ -˜„‚Vâ|žÙñ9 6ÚüÛ°…€îÀƒ¿tËz‡ƒ+´Ùb’ -8z-Ž]ÉXH}pƒMÈÕ3¶hÉ/dLR:Œ”™˜’áíÔùGç6@Œ´ù&›€14+òŸE`j$¼¹Ð˜hósK°YGŸÅ3)º”oõ8h½T¥[ƒØñ­›¿U¥›‰óuP®á³Ž>‡gR^ºÝ(26Ú|ÚĈ´Æ¬ÁØæÆnÂ;ž[2XfiCu~Fc­S¨¬~Ëçsù[URÌHœÏœ ›õ3¹ ùå ÌÔ¼øÁD›_Pó­*W<ÛçÑ¡ÂcÀ¤´&‡êüH”E#W}pŸ‡ —|Ö Ì&P½å³n_Q,p§ÎWí6šYnA´ù8âÒ6ëç²—JB1+q~Îå6ëzÙK ÎJœÿY1èg2…²ú5ëú9l}=|@¹d]?“µ- ¬.‚ý¼Ô”uôyœmnìVÜ`bdê5ëúYL“‚¡;ð|cË–üm~€×¨a™AÌ©ªˆAaF Œå< @Qd ` ^  @VõÖtA\¢šÝÁä½(AœÛù æ jiýÊЏRU åcÑJ>¡|y°V>>‘j²ß²Qèa¥1¨¸¢càCKÄb›“»AÃû‰ü¥šƒÿ÷|ë?T'ÑH©µNbuóƒY0ÔvZÿà»"ÝÑ®Z Ù #•=+†âÐæ[ŽÇDƒóé—õ&xdŒ&ÀSÙñШ'ÉsVƒÓ~؇†y”¶zš”3&Í’Íd иöˆJÃÄ Yµ›7QæŒ\„gäÉñx°‹Có ifîK€ò¬ÜíCת>æïJªmcèYl%V¿òA#cS¹AÀV£gÚHpÿŽ%L…4Îë“vI¤†Ã³¤ÌÊ DLq»l Ê.<Ë,¹o#6o<´KøøàYŒRÈÀ,ËȵÉ"Wy$('þô2ÚVçúVf9 ÑeY¯ýàË5·ö ¾@ÓoYC ­@[£Xw×ùåY n'rŒ%r0ŒêÚÉ®dUxÑ[‚™Ë Ï•ïÛ˜-0šAçÝL¬‘ÇL$RÅ2°óË: -XŽ…w»Y|¤ŠÀؽ"ó -B0TwO~Ï¡P:^X¤ézöî¯'4"[FugaÓï[ YÓÖ]_7?ØÂ¦ž}ŸÒõfp~bcžZ1RªEïø‹7×_U¿#ŠŠcëmÅ;ÈdTùŽ$$nÇ/b«Å=·I}η#¶Rù݈z5IÊFlueà|©øªÑ9G\*Ç/®¬­¬›¯ÃH™ +Ø`P}>Ù<1#q>Æ‚¬Ø|6‹±+EªóñË÷á›Ïe°Ì²âvê|(wl>0qþÎ@‹vl>›Ã4*E…”çÃÔÏçò7&‰ó= -ŬØ|6½S`l´ùˆ'Èî|&w£ !œBó5ëgçç,Ùñ™·úà’Òšò™àÔùÏ-ù¬+x¾Ë,¦YÉPHyp‰0'D'Î7®n—Íe1–EcáÀó B`ºã²yÜ…9 m~Q…&|‘;u¾t;.›É^*IÙ\[O*n&ÎçhÑÊ,+n&ޏl&ci$Î_(À‚—Íå0M -†Õù¿—îØl&{§#À„Ñæ`΄Ëf³8ÛÜ`P}pÙª—l6“»/H„^² M¬[h‡C „W˜È€Ëfó˜ íph}ðÙIÕ[>›ÉÝ—ßKæòXÛb€!åù@’jVÕ»±pÐù°#S/ÇNåÁ7ä -¨Î¯ùàp'Îyyp…pð “h+qþ‡åàÝ€…ðå°VÚ|‚`l´ù©\£™URÌH›¯ÑÌr8µâ²™ì­’D›_6“k¤"`!Ü‚9FuþëW/­ß¦Fžò| ‚-ÔÃÂ)”U§±E&ˆù’Íe±¶…c§úà F¦^²¹<満< -Y )Ï70 ™6ŸöಠeÕ;&'ˆ6?»…zÔ”ÄTÉbn´âÄúe}ðBïÂ$%`!Ü[%ÂBx  -°`Ãäò˜\/h(ȆÉD”™åÄŒ¤b0Т“Ëãî ˆ¯ÂmD”+˜\&eLV½Ž§V\.‹¹/ ¬^.e¾ä2|E‰r]>X¼ü€oƆ•*c¾esÕù¤5䀯¨q•bŠ)@`!aDÀ $Õ`aŒ‚!@‚€ € € !`Œ€ &Ýþ»ÛŒöáÙ éªT§¦”lY(R–°Qáy"AáÆ¼€SR"¨Š{PÿÃFU8à `Œ‚€! ¢•‚¬(r¸QVø%€˜4’.‘‚`~9´È¯}xŽhãH@‚±@éÝ5´âöÅóá˜xVh8hõ~‹¼ÊÛ²gª¢HG«è‡gÅp - 5øZ“†=”n«*Dï^¦€ -•Ÿ^À €´kÄÐUëC„Üýa¤UµE‘?ý¸?MBí•äâ€Ú^ B¥²Ÿzˆ]vK…ü˜‚‰Pº‰5l“â²Ó—@¼ -”®±fzè˜f~ÔHøµ‚ 2£~ž -Ò%8Œ~˜|äâÕóz°E`}\\áú2AaŠ‹=dg+ÜÔVâ‰]Â}3a›)ƒ^&râK‡ÀlŽ›p#@d3-™ ߊdþšéÏ|µÃÉ3`áŽÝ/ÏÂY“†¤„ì!™Š?‚àCêdÉ«¾ŠÙSìDww<~ö°‘OÐÉ…Ê€<šðY‹eÊkLŽ¥“%ËôŠ{Rß78Úኬùàµú`Ff×ÝPYCô"KÜ0£­Øu74v ]jt€>JÓGú]„Óç„öá-="iÿËÜ98Xð”®Øðžã´wh6§,Ö$ÚásÂHµkKW-çhÛÎ jô´ìÝŠá)½A(dÞöºÚÛ²ðæAÚGPöbÏeâTÜÚàžòOºfIý!`¨£Ýðß¼d":+J\áL§Ë5}¿·–z(mêG(„gŸssqr%2[—Š“ëW<k[4ª^ñ8Ì}qXy>1eæ+èJ<°<¿ƒe:òs}þI'¼@8§@€‘M,x<c›`!<ƒ©5ⱸ†Š@&A—b"œ6¿W”ñØzRQ#m¾ªó” ¨‘6ß â°×z2¤6–È —æ+g˜Äió?-ˆä´‡»S‘ŸëóiÀbñ—f@‰óA#S¤åùb0¶Y@gâü07 -æ•1$­ÓÀªóC1¡ÉfT«èØt>>¢ ]<R"Ù€koåùV¨1Ÿ6`iõ†Å_–Œœ‰ó]?‘i7,™Wo8ìQ¹¸•8ßà ‹ÃܤÃÊó 8¥Æ -Í7ö~D¥"®Ï7é–CÚhÓQ5x@µ N†Ýª‹Ã51Ê ,„o´dÁâpŒ‰€˜_õ<\¶`q¸Ëù p„È´ƒµOŽüÄùÈnX æF?RO²Y¨ ‰p\F5"ðÁ 8©$@¸l'ÅëpIB´>#@&ÂWÌ™b´‘ ((m ¨Â‚ b&JdjÂbpV†Â‰ó_PkÂb°öiÌQ€ª¨¡!bÑ@˜Dx†¡»;Àð@ c Ša†à_ ø×Ñ ±2MØÐâÀ¸BJ/PíW ññîh W»¸ •~ñkVÒic²±¤¢R†;û5 É|ËåWÝž[¢Ù¡†2hÓ•.:•½ 6&Xд<Ñ9óº§; ¡†\Õìì‹(ãÒeDÒÇ…D`j¬Ã‚DªPµà;õ#ÿî-Éúõ WÖF©²B°‹yVÓ ñ¢U(QèVÞv&”U¡IVâ—ˆ´ €búÀQ²õÚìÖ'LPpäïãð‚ -påU©'$Œêy ²%^eߤo¾ˆ!Ðó6a$ègDd,¼úÎ)Æ2v¬àg1a¥0ü°Ûˆ‘e o\‰+]ôÀ%B"~h|È-Óf®<÷Çõ¹í(æCÁuȈ ElÁ»ðÚ -y(E€dh‰/0TÈÃÚB]ô¿ÀÆ|Hâ1§?Jž‡ôôm™„'×î«©ª«ÄÚŸr¿`o+")å~Á^l3@i3‘ ¦ ×\™µnЉn¿àoöiÌOœ?D±Ö€Á!<7B³_0xûÒSuþ -Í7 îVI€ ?‰hy¾FKö{þíBeæ×Ä$¾@øC‡Ëo£=UçW \½apÍʇ„á‚Ã_-ôÈpÐù25à°w&ÅÂFÚŒP»àð7Û²¡pâ| Iµþb›¸ÒÆ VfM„7|DµÞo KñFÚ$P”Ät¿ßnL‚ Çz¿ÌkÍ÷Ë-²Ðx¿ßí ²§ê|Q¦µæûíVPíì] -ˆ…ð˜í쥙r¿àš« -iCá - -äLœ¢HáϬüÕB;çÓà -4±^ðw â[y>”k øÛ¥"p}~n„j¿à¯V°”é~¿]a,„; _¶_°KRí~Á5Wfœ_Á¼v¿^môƒwÀù0È^ªó `[4t¥*I×ç»h½ßîUÅ¢6Ú …p/i“ Ù.Vf¢¼NH6EÁ€3ëýÖ`hèLœÏõz¹1 ‚¯ÏyÑz¿5W• i³ò…Àlg"ü‡€Êõ2¡Yï·†&äåRH´>Ÿ¦æëͺt0 8ÿBåZóõj_¬Ý¯w+M>¬<_¶†ëõr«Êàëóy(Ù÷~»–.'2Üšš,´9ÓõÖÐ(ÐÀ•6?ÔmMÍv*Áòü]4[ãå6|Dµ5^®Ì‰€‘”nkj¸U%áóK9šow¦Y¼‘6&2\o&ÄAÕùÄk×[“…Pœ±2Sã­É>9Nœz±<cZ0>³5Þš™ icð”n½Þ®Œ  ôH·'.Yï·ffå¢6Ú PüZžOð4 ` -€®¨ÁB©€«A;ã¼f`Aˆb( h€ p‚€ 8 Øçy“*ÌjâºÁ¢xÅ|XÄEPD£…Šéä,laSrÃëä)YQKŒÅ­b WRùÿ¦sƒíÍÌF²wË`6ˆ-k–R†/@«„æŽwZ2¥#Â{˜.¹á˜ÞA%SzÞÚ“¢ñ]øz"y€)¡ÞmJ•Ûd¥s1¥s“0šC=Yé4þÓ¿("¿5LéÇ„é›èN`® ñOœ[é€cf:cPCvÍ,âh€¾ü){DŽ•n8øLgU9MÖ^H# N£â*m÷<”à•qã2 ã ýXòXXä±ùâ/P*Y.:+ìèCí’Ã%N"‰}7®Ä½ UŠK 0߸·7t ˜ÛÑg„9Ò3‚Õ’V”ˆG»_Ô8…2?@*ŽÂ1Á3ê-†Çñ³*™œ˜~W¸$Y²˜E$A€Î‰“–Ã%¸­²ÈίƒY"9\b¦F»!Ðê3‡KpÚȲåZÑ-ŽË<>è¢4˜ )s„)Ò Y=öƒÓZŒµFÌϯVbË/.œ‡ xQbÜŽ†ÕCndÐb…ë(½µ:[=;ãÂ}*½µâJ±¡tWÓ£‡ÓQøÈ¸pšå”#xVn^ôî"Š£ËdãÄ=…ãXªºôÖ7fsiñd¬·V[ߨ QªŠb‘°˜@7 )ÜÔÒyatT!÷¢€€=$Œ¶ÛÝN›3Ýî5…8áÕmM7ëÒÅ>9L›O# råÂð©:_Áø,™xþCòºraá°c~ÚüËÌC‚åùÆçÊ•[ÃaÁ¸‘6B“˜mM{Ã`™áÖp»]­4Åvk¶1K QRÕv¹4Nm·v±råv¹× šÉ®:sÊ;\>¿[³•9 ýê¶ÛÕ¾ 8FAi3dZ¹5]š–¸ÒÆ@‚„ºív³QÞçç6Zhº5\+Ê0Â=¢ÙnͶª àúüW–âm„'a²Ü-MFóºåj«&¯ÏwÒp¹Ù)‚ˆUç¿ {)Îçn­Ì -YçδhàJ‰Ž ŠÁÃËåÚPŸ-¹Ò&4#¦„8¤:_ÄâúÅÛÿ¡Ø€™m—{mfá"R-—‹uùà¡8_£e†ÛÝÆ,…0ЧávTâ,ôA\h´Ú™ç1?mŠ,Víò‚Õjgž¯‰ª€e5»ÕÊDi´ZhG~Ú|®@3@Ëó\µÛì”D¢åùQ,(AÀIŒv«µª ‰pߘìvKí`8m~–ª àòü™-7;E Ñòü(v»¥qñà¡8?FËÝZ™ÄYçn€§¨ñ2Ĺak&¥¼°XƒA@ÀA@  Á ýKÔ&Ý_€Í: “Îu¢×ù×Ý\â¾Þg%–4¢–ܲ™½T6sIZÀÍ oì`ºõtÌ”ÒPpã¤øms´}ƒvvòºpTM+ :—˜‡'‡*è\‚û8Ño;?ç• øãc&{‹†J[Jg hÚo€¡KÒߊãVÄô#ß a\Ç šž[œ€þ^ ;ŽIHÙôÁšàa#㈹°Æã'@¥‹~€C·HÉ|¬U;7Ç•g°ŒB=7OÂ#pÆz™ÖˆISksýžæšÂËÈ“Í׊”æ ‡.|7¨N{íé)šÆ¢)5†Lš²ê¸zÙP3I)´[ÆÂ g¢¡˜E+ñ¨Y+UÌdá×z4 Œ€Â¤FcŠ‘¡˜M -Rúÿª%o–šIÛÅ!3•‹®Ü—ºº¨›i1û>©,#î°4þô-"‹²Q×ÂtqzxiÌ‚c Â©=CLzüèh»t‡Cº~š´‡;uéþ5€Hôa`g:JôâŒ{è&ô-Œ)ŸvJûkoÔP'_—1-<UD©Üå2 -Áf®î`€:Û¡Ò¶‡æ‘)©%†ÂC“Ö–u=†Kî°ÀC‰Ö‘^Š©´Ü ûÚöpÂá(î{UF êv"wcƒ‚#,6^Dø|‡sF«ÅF‘ (ÎW0>g´Z—j¢Èh·Ùª Åëó;¬)v«µ®\ÔD¸A»Õ^À‘pšEŠ I‹}9àâ|hB6æD@è+S^ èJ ®€‚+ĪóQŸ… J… ôµÚ'‡‚i#‰Xu¾AS –ç( àšÍÒDAx¨Í7˜ÉfgžFÓf¤ŠÕbYÊa ôy.4ÙìUŽ´ÁÉji`DTßâB£Õ^[6r¥Í«ÍÆ0+d ¯ÍV—@ÿ”¡3Zí ô˜›6-!½çψ)2Úm–ª Ðò|•O»ÕZ›·¾ -X¬LˆCŠƒÍÎD8p>ƒt&‹•a¡Éb«(ÃèS.ÏÏm´X³ÙëÓ¸`Úh(¸f³3ÏŽÜ´.«Ø,ÍtDJ¥Éf­,E›·P ½„ô8ÿ´ó€ á,”  _BÅj±¥ËµùO á¾$ 6+³rQ á1Y-6ÒìŒôe;3µÒÐȰdØDxJ ÍõéÁpÚPi°×—+–¦ -°¬Ò`g^øRœ¡ƒÅ^¡ §óŠÅZ›`f°4Ô’ ÏŸÒàX¬µe#G±Øëó˜›6&Tš,ÁoÕù/32€ -¬XìÕiT(mh²4"03Ylõd@耱¨ðH`$ ‘;æ¤ìà@†Áˆa€ hÞæh~a@Då-°¶¤ÄÃî - y%.pô R,ÔÅWÀB©<³qiL޼f•Êdyô}'˜6‚±ëÄ`R+Õ0½oû,ø9XkÏ£0½-£Ptªtm6&®\žˆ¥ƒÍ¾Û^4ÊY{6Ø"–îwûu_à²W(àȯD›Ù`ŸÜ¢? ,¿°×@D;XÐ<òxæVÛ¨eEÕkr•îÁa™E]#š¥ûA±($CÉ¥›¤tmËtKóð[2iÐ}T'VÄÅ•V(œ€ž5´Õ î@½Zà @Þ¡ÑÁ'æêÞí¯—È;Rq_z?{3Úé'Éñ-%ÿ˜ÆÏùÖ~wˆãA4oÌC¡/—ñ zã9ö÷¡Í"Aû†,â*Šö -õÈM§•†&f£&Âi¨&žcm1#áM8nªÎ™™‰ifØDx ƒ%ffæJs…Pq~²)33c¡R™‘é´€J长ª3¶ÈÌÌTS,d Ocz<­4 OëÌ õd@ÂçSgh¬PÔæ' Q¨33Ö™™j -YGºXif¦-`长yHq?÷€Zg®S -„Ï¿ÎX¡»ÓfÀ ufF¦Å¨#m8œ233TfE ôƒ­Î–Lgh¬Ñ'FdräH8΀™™™ è÷D¯4Wi`«ó%H¤WšëKÒ!ÅùTbffdhá¢[ FM„?DŒU§³zµ.§VëUæÙ‘›püj…Q[o@AÌÕó=¯ ¤Ö« Ž›r§ÌÌUš èòü–˜ë•z2½^eZŒ ¥ô:cíxÊÌ\§K¯Ï7-23×)…‰ô:#óôÈM'ÓëŒ G‹ÌÌ õD쀚¨ÐHdf ` ±@x@à´ø`Q€ !†@ ‚u€?ŒRĪ^\L%äRª!¢²¹@5òÆ)¥èr+ ([zˆÀír|è|Š&ûg®íRÔCÛCYr¬Aº8Ûjon3ýÝ -£äš<ꃨ‡Ó÷ÜG„€ÐB­7¸  -ÑÓq—ô4|wá¾8ÂÇ¡œá_bâ^|â)YM%sùÎI¨tuò¨Œ†èDOuoË·Ñ - W¦uM’SRcÐln•2EÇŒœkñµÀC#¬…Y\L†ÒO¨6yE" =c@ÓÅ£<Áȸɲ!®®/½óŸyUGZãìv rÆÒäÙÅ(:F ÝNƒÄm±•Eg×âãÆB˜‡LÜ`¨f¯ø 3&Ü6fí¥—IQ>Ãþæ/J üºtŽjñ˜éŸeg ÒNÚ…ƒÆéq®£¡­.CÞל†VzëÝPD{¨„RWiâŠô˜Å©ð,w㽪&8ïéèc ‡K‡Ü õÈL¨ÏÄÚÑðZì;µÒõYIpiŠóZ1´%pIx F«“öèè ^B³'`y¶ÌÓ“ÿÛÚ=›ä*gL‚Ø!€q€º7Ä ‡ã„‚ƒ…Ñ'ºPÂ(L¤2V*K› ÁBµÊHM(<Ÿ¤3²t$\ù"c­Â$¶:ß5‘FÆJmnàF¸AµÅ¨@ÂŽ-U«Ì I€Vço4©V© .É‹Œ5ÆyÌK8^Ê;œ1V™e€Vço4«V«ÔDøò|áRjµV›2Ö˜«A %¼jqI>¤8SéRÌóO¤22Ó³Ðá6<ä3Æ épb OdNed¦(DèCc¬1PdµáôB\b¬1O$ï´10¨@™ÊÈL™f O»P¡ÊÈHO† Ÿo`ÀàñŒ±Æ¸$})NêAÄ%ÆãôÈMŒZ/®8c¬2%¼¥öù0110ËaÂç{8©1Ô'Hjó¬ÆP[:rÓ&&FÊ´˜…~Ê4&¦„Á£`T@•©B“¾G!â#CUÀ¡#á/11Ó•¢M„`¡Êļ(°:Ÿ…*ÆÈPY4ŒðhŒLÎ@“*ÍX™ÊļP”ÀÈÈLUŠ6.Sm1ÈÔ†ú¿Ç Ã -@‚°„q‚xä&ü¥sR‘ðù3 ¦4¦úRBàù1ÔgHµñ%¡Õ˜iÓ@n„•ÑjŒ4£ú1Õ(‰Uçk¬Lcª.#¿U§3Uɰ‰p—jÌ”e7ÂuÍi iLõ%AÐÕù%/Uj µ¥c!€¨àÐ0‘@xF•”ó`°(Šƒ‚€‚þ"€)àŸÈÙ¡k#.¤•vì¥ßŠ.~±UÒjÕ¶—`ÈîZ@P+­T«¾×ì•‚ª»fÔ̸öö˜w¾É´Eán¨À5@‰açgâ.¹j‚Ö†ÛDÖ!®uZîâ¨D-úÖdK$£f‘µÀP»–*;×7¦Ö²•Ÿ§FɺB*|^\߇ö›éÔr<«Ôð»,jÍZBï>ɒʧÙ,h£¸à}ÌSÊbì:âúë·Sž ÿ–†WÊKhùO(ñÊiø°gàMÒ®#nÔ,°¼õZj‚jYR¹¡oòLÀþZñÑDÖó©‘ Ÿ¸J¦¾È짬ššz4x -ÌñåWÇ›'²x âÃ@­‰E|ÛH|.]Bá.‹éÏ…—¡ˆYÔÎ>ÀˆWÂÚ„ö¡%<ý±péCÂmð©Ðêo5áÌÛ*®z8æL|vÿ䧸Ñ)¢ G²  /4®B ìäᴪ̢YPADu‚«¬M ú'‹\ÝH+³°qÁ¬©âa¤%WŒUTSv:Vzˆ§1X_}*ÙiÀ‡"Q¬ÒÃìÌÖÃÁUé¡wgùÔQA<ÓC,´Éø'ªYb„l >uBX2Zkð”ŸU;ÊïT¤õï²!W£ƒ‚ƒƒ+ .Ô* Óbú½'µ*eÙ0§թócwÚ,_ªÔh ‚§úR"T0­N[<L›iµTF©U˜b ô/˜0Uª ‰UgEZ¥rV#PjUªR¬…~J­JW -ÜD¸´J}†8 60UjT luªNjÌTÁq¡„ 0©VaN†°Ï7¸i÷Ñ"…N§Ñêô™|Hqž8¿è”ú‚b!C:§T•7Î"¥Jx0˜L¢Tª‹2Øê K¢TªK‚ —Ç€£)¥J[m¼=*¾®ô¼½Ðž -âfÊïu¥“@­MvõZû飔;)„Ô/=®¥¯–îa"±ë¿™òbŸè˜ˆ²8}ÞÕ ø-(+Í@/nº¬Q+¤jÕ¶‹Œswt^ꎲÎ-ÒJêäí¹'|— zz{yQ• #\ÄùóTN¸:%P˜—–˜ ¼Ó&¤åZ2æù,/0Ñ' T9áêø8(Q)ÇdÌó›4Ð_y‘¾ €J¥PX&.Rç‡%*…izä¦ÍæÀåbú*"*NGnÚœXÈ@¿FE! }ƒ/Ï’ 1öùL—— £çËK‹ÈoÅIð|‰*€¾DYŽyIAôåY"æù,Ñè èãœ//Α¬Î‰ Ì KG^ÚY^`\p*ÀVÇÃQ¬…~J›O*@ö8ŸXÅz åš@ÀËóW¢0.Ì [è«Da(ÅZè+p‰¶ ¶:C†Óæ²|ìN›dK4ÅåÅ…™aý•RAôå™@øò|èKtå¸PÂ)”Ñ–d„ŠSdº¼¸¨làF8CKôåiRûü!ìóQ /.*:$q¾D[@¤8$Η¨‚)Î ôÅe…CGÂ?šÑ#¬N -4 -=Á …¾ŠKô¹´þ…˳|F]TŒ:NÒui"{¨MKÔEÁ‡Æ 4 -MÙÀp—¨sÅ%ú,&|> -4 -e¸‰ðŸˆ‚¨‹‚$„Š£tF]š ¨É3ê²bT(áȦKÔI2áò¨@£Ï—(4€—¨Àd˜ ‘…2%íˆaEÀ Á@ ==3âòžî´H©¬Øá¨S[Fã56l˜Øé¥C1S°Ø™ã>ÈtXX;!GšïpÉé™RTdMYjäN2u%²‹«c½Öî«pôÅhqèz<ËÓÓj–5Ÿýì2«†qu»cmïÀ5EÜäÖRJ >J Ñj; ‡éyñÃ$é™jªD‰¶«g&n+A ,àÍbúÇ2mŒš¸G¤‹±šA´Ž'äÖÞD× - é¢5- -Õ'˜à4“. }–©‹3.@›M[RìçjI@T`©c@†œÚjëšÙbðH³%‘]…XÁ{‚´ŒÔj1³áEΞ%6€®ówñ"“ðñq="lHƒÄg‰(.áá7{#i ”ÁmÉ0š-ñãpBÛ[Å%Og±%{Ð_J?áæg̃…I—Øš­`Kèw9Ö¡Ÿ{¬8¤µkô®m 3/J?ça©tj¶2f³q(.¡ÂçE¢Ž':iŽf¶Dõ£¸Äàfù ä@0†Â..Ñ4ë‡×°lÉÐÇŽN–AËg£1³25‹Šñ É,[,Õé;kxø9Kdz¯ ¯J;µ’º¶4ëpäq–-¾®!ÍJ{Z »ã…¤×]popoÍ_ŠsòtyB]Z”B¨‹³dóügô‰R´¹(HF¬8ÂgÔe嘛p‰O”}>“gªÂ¡áAZ¢. -B|œ“'‹KÔ©"xþŠKôiR‘ðùL¨—¨‘ˆ'3êÂâÁ`Úx\V:rn -$œå m&#V'4å mI0„y:TžP‚®Ž‰údjáÉ&ôÉ‚ì¡6 - PÔ¦ÄéòL1á ,P—ÁVçéâ4!Æ@Ÿùtq. Ì@ M¨‹‚‘¬Ž'aXât"hq®|ðN›¤h,H_Šƒ ùt®8+H_Š“â|6P xþ²åÙ²D")H<)OgK 'Q}ªH¸/„åùd yPqœPç  ôUžÐ¥˜ç?¡ -H„ž¿tB(¶Ð?Є>YB|)ŽèS¥ƒÁ„'h>S8 ŸÒòT`˜ðù*Î'KR‚ÕI àÙr’a ý,O§Šµay:S޹ W*x:™¸®â|²€PqNZž-%2Ðß`:Ÿ -H¼Œ)Îgs$Øê”´<[–4Ðgq:W@6#:²ât€œ¨GhÁ…wŠ1w=`p8À0@Á@°@  XеÈÃ@›WåÄf¶¿Ä8’M;sS½pr‹©(òCVfR›;Å‘,Ck¶vq~qR’/«nA”R*L\z*qƒ¿NãKószéqò¦jýÉ\«ˆŽ»\tôr&ëz|åTÎUðãT:ò‚;YÁBKV(¸#ʽʵ“{ŽL ŒÌ’§âr›qU9Ú:CoÑKÔ o!z­Ào‚ä¡(‰Æ9/ÜÅX)¥Æq;©¬¨ÈC1aÆùœ¬<“‡çtâ˜KöæÐ1³‚HÔÀ¡Íh.Þ:1·Q´lÍ0‰î³|óµ„Ûv -ˆÍ†«_+Üè…w ð]W»“VÒ˜•Zæ´u‡Íš@Üî#›èk,Ú:2s@W!ù}ŽôÚQOS·¶¡®*«–•QŒÁbt›ÔdýRb¹ Š›ãΪö¢’Í |­·áµ„@¶ÒJÊ7ŸV… h+­f7‰‚7ÉVZù 3µâÊ[³`i5ÀI½1vê:›ë„LJ«p@s/­û„SZµã\Ãät–;¡M(­ÜrFž”¨L¯SéÞû؆£n¼t0ï ‹í± 1+MMµûÁÒ“âptÇšfceg)-N–¿Ug©ÀÙ,€Òâl’ €y¾‘Ùâ$&PàT°Ä¨…~K‹ÊGj#Ââlaº&FXœ-(¹ÎQàT`B`úN”–Î'Æ>Ÿç¡â|²„@¨8I–§S¥#7á«ÝiƒRàúƒÀVçDAËÊÈ„«óMš-,ÊŠ„Ïg*hQAB¨8$,-Íe†-ôCTZ0 ¦ÍM„Ÿ(hY º:¿¤ÙÒL@Œ}~Š* ¾–'ˆð+- -˜Æ…²ÒÒ’Ò±;m”M§‚c$Xb+ÊaÂçw0› -R>stream -„0YVJŠ7n`€,€y °¬, (”pƒd -‹J‚ èOVVHTXpË&FÉ -KÊ`§ÍHÊJÊÈØçk˜¨¬œxøRœ”æ Ë󨬠 ¬N‰Ê - -HĪKRè6LTVN:8;ã2„éó8ù@YQ1AYQI€Q }ÞñDEeÉ‘‹0WRTÄ>_e夣w°!IYaF¬8%*,Ì­NrÁó7–+,(*Ž -‹ -É0öùÆZ裰¬¹þq¢’’àD%%†-ô;–*)%!(*L Ù‡Ã$%Å„ƒá´óüeGï€s`ÂÕù«)*' ?V‡„©‚tu~IŠŠS…)"æù»Óe%…ÄBöù½Ž“ ] /ÚB?eE¥$ã&Â;NVTL6r$üs%EI`úK•¥‘!€Š¨ÀH¤L‘…wÈ@(€p@ ,¼@ðACÀmôj0Šajåc•VU<ñ0Av¼¬L´\¢ðÄà xi£¶¦ ½‚U·LËKó\ÏkË=/¾wP¶{´º‡tiÀÄó®GщØÙyËõ{ñМx¸ïƒo®yðy£)kÔY†léfÂÛ ä†”à -oÖÑ!ÉEVŠ—Ý›¹¥ä_ñÄNpàÜîîKc¨8*á+£‡0y¢ -Ùx³ç+Ò–.Ô*RÞé•`Šüðqš‚g’iDòÎO׆ÛäHÔÊØwÚ»M«…™Š¹E4ÙÑ¡åS/<Œ¡Ú]+ˆ«À;P¥Ñ]ÑÊ>‹MF|¼#+ÕÅÃ.rº˜ÎÞù~€fg<Z;!€Ýa;D9ý#P 7Šªšë¢%ú‘ïøu8ÜŠHž–8²HNgÉvR¡NøF,©é¤‹¤·<;k'ÿMr©8ÖìÔ’ “üp†²[zHš Ø©%IPì:µ¤UrP¶¤tZ²DI[²=ÙeY£¤vK4¨ulÕ˜dK2ø™ÅbÁULuµÇ®Û—ÉãizR]MiM¾ô®#þÈíÎ)LˆE(»|¶¬ W¡~~›ÈI -“äh’ÂL`„{,S˜J [è,S˜Ê‹ZèMR˜ -àH80ä$…‰€(û(a2K ä¦M%E£„™bbDÀLA9Dðü)*KGÉT¦¨œ %X)*'*ÎBŠÊòØ€ÚP$QT˜#>ß@nÚ˜¾AK& -‹èM˜(&L%†‡ ¥ÁXÂDIP7‘K&ÊHEìó7Lƒ‰';Ôf€J -Ê Ïg¦,;RfÊ 2@«±â\(™)ˈÇ3å lu~FfŠÉÑ!ÅAIAIR¼<_£„É 8IAa2K4JÆ&Š2€—‘}> -J‚: Y2OD† Ÿ¯qà„yr@øòü ¥È sty¾ ë3#Aašx@¨8#(Ì%ˆD«c``PT¢0O˜'!Á PPJ8v¨ÍæIRóü…(( 6LÈ%óddû|Ž&вބÿ>”''J…²DY†L x2”'' 6Ná% -É JކƒÍPäÅäC¢ÕAp‚Rұ✠”t<¬8HNPJŽ>gäÅäãÇ꜠”{)ŽÈ s‰º<ßÀµ9rÂÙçŽiþR)¢0¯Š´DÎŽ’ö`Ùë zÒ›v.ˆë ”z- AótIKªàŽ- ùô.r¤AZâ9`»Äe5ô2xFoí±¥!{ô -¶X¹#´Œ%¾A\yíÝ;zG3ßs+N/ö#íyc}ó=§;8ôóÚï¾Ny±ôÇ1 ®2m1É>[ˆÁ‰žæöc,¨8#&K¥±—Jšœ”xüXË¥Ò@jbrbÀåù$Ë¥rƒá´™(@²€ "x~Ê¥ÉQöÙ Y𠏏‰pˆŽK“ä0áS‰ ‚"Ž„{$X–„aÀ‰Œ ])Dðü"L8HɲˆàùL–$;ÔÆÀ ¤d™ @e‰Ò#èÊu(K€L¼<¿(’ H1WÂ$& B$))Á@Â$&%ÉŠØç#0)!P°˜8HLJDˆ²ÏçP.MFÐ@ßg¨À Àfñ…—!±0 Š‚‚ÿÿo1Š <=fHùÉßÈðf÷ñC<‰ÛC(í(…·j’1Ûü'ê+(ndx»æž­AÆöžêÀÆÎç„o«?ÐÞÑúað¾c–œ´¤²öïâÉßnOvfÕþz»Éí(Ÿc8@LŒÅõ¦ú`{)â‡Ö7ÒÒ¯í 8Á±$jëÙ¡ã +\ƒ­‡ 9©ôÅ[ß&Cîôí×ÓKx‹ôÚ8Gd!?¶7 Æ öηî]ÏÿyÉ1iÏ“=n†€#?Œ·žŸ,ñ¹¿§}ŽfrKÏ ÏmØû ìÓ®N=óM†úpîá–¨{Wu3°sXÕ3x6¢ê! -Iˆ¡zmO¿Âõ"cG޲Ķzê+¼ßÝKÈñï¼ Ÿ8 Î#7h­—‚¢y©?´ sŽ7"|+ΰÀî 7 !Å"$5x)ŽIrÃAÅ1¨A@’Ì`@m <ˆp@°:!ÀP0m€#$#Æ_+‡# q!9J¸: 8@GÂÆ@„ÎÇH’°¸pŽ%‚ -˜‡!CDIr€H ý % R@¯BjÐQ’„ +bŸßP!ûlŒ$PÆ>Ÿ§1’@y€8}# ”!>" ”I6‘AŠ—IWQ*E.p$’$@„$ H<¸:"J¥†A5 Ñ…÷”@‚)TÙëVª²—ÛLϲîÇúe‡?¤öédîÛO?¨gw?ÿ‰0-Hrɔɨ ªÅt㢽ïgÃy`øàÏq¼‡ÿY¯ÿ~ôßTBÈÞÀžŸ¸ÿÁq•Rü{R¥þÑz™Äß«çÂôè(`Í—?jï·¥¿áèßÂäº{˜¿?xïo»^ôÁ|ü¡ŸØó¿F" eáéOµÿ°WcþèÆ ?» -ý¬ ‘Ÿ5аÞÕ¯¿iï~”ãJÿüUy@µþǽeUôâ -#†………­NÈÈHˆÅm„Cpˆ é"xFµÐ÷m$ŒxPÀ< Ãè÷48€`d@,‰`D@ìóQ»ŒFCŸ’‘!Ìó‹ !ÖD?Â8B2Ò|yþ…ÅmÀÕù:FHFŽ?WÇâ.t%<è1B"ÂÁê|b’Å…ÓÆ Ÿ¡2"2œ…þÆ‘äˆàùÈ$Ñ6âHŽ$®Î·@Šˆ -Œ"#I"Rd$äBgÚ<¬:È‘‘b~ÚÐè¥8»ÞdÁ  #d0 8##B0N›I«‘‘ ] A bŒh…ŒŒ„À‘p"F‰" D´:Ÿ""‚´È•pƒà1ù+@DF §ÐCdä@žŠ#Û ø ÉàpÄ@=#"°O߃Àx@äÀÆ«óG¶ -ÓÆÀ`¢#)R §â0 x$EÅ݇¢#)’Ñâ ?’"È‹…Óæ˜ Ùx`u@,r%ü€IWaᜳÐç cŸ¿+"E’b o`P D$Ù1óü)’üÒBÿaã€ÈcÏ'""Büq$€¨ÐFBuÑ@xH€ ƒŒ¨€(þÿßÉCÀãAœbóhiÈ–½&íFÏ 0š‡iÈÅyÖçÍóìŽù(ƒõ¼=Ëá ”tåíúæ6ì=€å¥•< -„›µ‡(ÛVóP…}WÍ£–4w”–d3/"ÿ4êL  ;ü)-„û©Õsßpßþ¶§mWôÀ=»²Óqƒ/zÐûœ;é!Ý{ø éeFŽ;å䢇x3›%öÍ!ß•¦‡Üµ=Ÿ@Èô(Ò@«ÏÆ7-Q¤Ã%I}e4vøÒí6»yy6†ÎÓ½8¯®‡¯÷4Iƾ ¾ü<ë%†kϯwÖ«‰‡–W=ƒÒõ02×uì92<Ø#kã¨Ò°#{hŠÿØ{ro;¶xÕAq4ÝS·vÕƒa*9…÷ä¼®^(„šAŸ~¢ë1¼a;çÞæÊ–žçÚ¹ÞŽµ´ØL{»É2×£áƒËUzò ÅH·ï ¤Ñw‘1ò„½íS¸$y C(i “ŒÁ—çI&?†5!"8~®Î'‚$“ D 700¬ŽÇ·~i@Âå¹ø8Ò!@úÆ !Ç Øç8Ð!`†L†pH x¾ÅGòÓ&£§âÈ83’  (Îñ@I@gÚ Hp°*n$bc-ô 4d BȤǰf $b>BƉè_|„ 1Ðw(‚äðò|¢GHHÇ›¨±¢Ñê ;BB<ˆ¹Òƈ<’ÑSq:B|;B|`0 8Æ C>,t¦ 2HŽ`Âç= €°Ï·è@‚…4„ÆòC¢Õ‘ÈãWÚAz{ª²ƒÀ‚‰ô £8@¤GÒAÌ•6¬ŽAÆGÒÀÁ‘Bú>BF ! ¬Îic`òQlHq(ŽÈ‹€”¨àdFb±@xF€…G€ð8Œˆàÿÿ”búì\Îü/ÆÜíZ¡t㣙]:r<†‘zww"4zw%öt¤iÕrfÓꀤi•åNaír+Àž4tç¯A‘¦•$‘l§YÔª‰{ýñïМÈs—AH²ŒÃ;^P«Ž#M«Ô;&Ó’…·­ŽÌù4Çbð¢ñ+ÞÖq{„•1Þ±~3ºÃRx>6¯ùfô;¤%΃zÈךïzø¤@k]ïásWÊK»Ã“A‹‡ÔÅ£Ü$…¿ÝcT$¤x˜+^TótÄ#UxŸ©€Y ‹P²<)ÉÃVHñ0MÎÃ=jé#åµZú­¼©—§£•”Ç¥3³Þ{iHyf9§'_)/-ƒ¶çWô+¼ç›jiki6 -¦MnÀm„#x AŒ²ÐŸˆe| A6 x¾±‰< -øm€ ? -<°:G$²ƒ˜3m‚ H ^ŠCaAz\08"‘ -§M€ äG†oÕ©¸‘ðHŸËC  b¤˜…¾AÀ Ž‹†ÇàãÃ8PÂ!ZáL„7`x€|`x€|û|ÎiÁ¢äÃ(¤‰pˆ ZFc®ôÒÁKq&8>@:  §ÄƈGÑ¡ârp#áÁ×çÇ oqüð00! ý‡ ð *jCÁáñq$.œ6½Uç6ÂY"\Áè8~xlc _ìøðÐø!xþÐøñÁ!À6ÂE‡UGÈñña$*œ6>>Ž9j¹N£0àáa$. 6GÜÃÃÀÐFÂ0Ž~F ` ô-Œ.ÏÀááap›0àq$*œ6¯‡ŒŽŽŒ‡Vçox|/x)ŽÇ¨BgÚT?>8„µîðùÇ `B€‰¨ÐhFÍá…Wˆ9«F`8 #h‚ÿÿï!à4ÀË·ƒëê.D\g6žÎ1ÛÓ9ðW•.]eÎÂñåÑÏN6§x#¾K¯¥¥K¿nn&Sº.½¶ÌÒGuTÄi›÷¾°téÿæp¸•Î*]:X j'\ºt!$ ¨ÇäχLß¶?ÉúO ÝW¹Ë[º€¹¶Ú¡ydþî„ $$?Vå¶«ãBf·;Ò1V© thHÀÉ圬4Щc®0c}'+ HÓe.¶’cÓAË[tÀSˆ|-׉÷º;Dó}Iþ'gºÒX%#íɨ£ûÛï:ˆ¡µÔ1<üì3Øa*í¬]áõf"~êÈ'Å¿±©$÷hg ¶™¨ÞÕ¶®ZbcMx[¾Šv3©$qçÍF©–(§œñF’ôª%V<¶$qVv!‡mcìÍ »æêw¥ÁzgO*è[²æG6|F°›Ð ^L ÈvŸƒTÖœÄÇœpz~¼wü‚“† hàýA9Íš¸Dº6Äò†[Ãýñ¼áf‹ûá:•pÉÛcâBÖtá¹\“[âªw-;\rDŠ–î9B´ìpÿÇ…¸j‰n`kœ`ýŒ.3)YmrN+ÕªœC{ ·ý€ˆÓñ £Éãdˆ«ÐšÄ«=í r΢Ì]à„L$ç°,#Þ7Œ™Ü¦\ÿ>ŠJ혃r·P¾“|pàA¹®Š*1.·èG58Éø$¼Ä -7)/BJLKDG9HLKF8-A 8FKKH='4DJKIA,JKIA. !9GKKGIKJ(>HKKE6;GKKG:#BJKJC0 5EJKI?* -6EKKH?/BIKJC1" '=HKKF7,@IKJD43-FKKH<&)0CJKJBH?+ -7EJKH>(AIJIC2%GJJ#: .&.@HIHA0%;FIIE&*0AIIE9(=,?GIHC37DIIF=' 3CHIG?,/#:EIIE:#GIID7EIIF;&1BHIH@.*>GIIC5 !8€Œ¨àd€‰1†FAj ÀH†a€ € øÿ  ? 0 —ðµ%i¸„Pà F½³øŒKhQ %8&‹ÚÐúЧ®¨-i-yR•QKüDmÉÃh]™ÂËo -¼%¢mi®ÙÑbÑP«£šà–U ©´{)Ķ»ÓôÝæHš>,vš 5*ÝmÖs:­qhè^Û¼¶[¯Á?¡d'–ŽLsÁ+×ð.Èb'–^¤Và~.q«f!Q Ñ$Œ²í/yFªñ¡P L^Ê]¡±„¥ÂÐöˆ°–+^Û’&vLÚ­õ»Þgi%±¶tß¼‘­d]Kªjóhµtm>rL’·ófô”VÕÛà¦ìnK››Ž,­H·Ôªèèfi¥”VLvâØ,·Ž‡ ¿Ñ@»YZµ°µA¨yJd³ô©IiØöéà/„h Q(ääÅ#´iÄ•xÃÄ€ÒpØfëÐp. oxTÝ&…C_fnºG='X–"÷`~ -`LäN›bFŒaCk@±@¿˜OåŠ -˜AXÐÈòXž4ŠB -œiƒ¡¡A "!„54.ÐF8 CÞÊs¡¡‘!@a¢¨¡Qœ`Ú h : hh¡¡¬‘60462䩎AÔÆÀÀ ¸ÓÁ¡¢˜Q¬è¹>7 X ã ƒ@FF ÜD¯¢Õ0Ì(A|xðFÁ[i3“ P @Q@žêÄ", -(Ø­<BŒ.ÔHø€b !¼"£@F…ƒëóƒ -`LàLƒBö`‘QÀ""& |6`022ˆ1Nq‘‘A@‚FÚd``Xy~Â…TÇ 7q‘‘A €­´PÌ(Vø`!¼7,f+^ Í,‡A7²·Œ&Û±¶-M*&ãÿ(ãuÍ’ “áÒƒ.úfÑBדµÎªÙx›:-KÁ”éÌ(. ¥–´Ï:-‹þ':€h–õN¨ÚâOt°²Tï€Öp ÂÌ4ÙàQ[b¾ ÃŒ¢¶¤^3¦…@oï7Ã%ÃAŸ%E›A‡FÒ6»–ð£tÎo÷£¶dÜ3b޶›a\’Ћ”—à|~{|¥ k'€FÅCÂÆÅ€×ç°ÀÀ Z``Xq'BoÀÆÅ€¨Å@ゆE[éGÄÀ @±êü - ÂÝÊCƒø£‘6B²>ÄÀ¸°ÀÀ 0¡p´(-€N›EŒ¡Âs1"Fñ $ˆáÅ……pÇú|Ú¯ââÂbbAÕùº ÅÅE…„­´¸ 0ô%ˆ\\ЀÂ9¦[âÅ…E0w|9ÀBŸ àÄ1%UpG}Y#nE¢•ëÁñ¬@xÚgi¾!µe0½H.¼8ZÞZI«JТÚ;ý²Z´â´V rÙoªohZ¶NVvÒJ\+œ¢puuî4µµzA¸^ovfkŸw‹¾p‚¡¬dð¾k· ø—ÀJZáæ¯—j•Dz«fŽ.WûI+ —j•dØûPXo¤±ÎGvòò%_ÀúèåŠW»Ó˜´²ªk"°Œ-á1š^ -GgÊ\›è “ôzpeÓãªy*1ú]Ú˜ʺRÞaõ6[ø4ðƬËRµ¢Wµ¥+ºkl/dü˜,96û®]:Ä¢Ù‹‚ž5è÷L½2 ½nf= ¼=îõ¥;µÖżÔ+{¥oìõ¥7lIméâ_1]L[¿¸A¹+„ŸjB ; P€0Ø›•8_÷£ `À'‚B€Š\êóG @¡aP€!p÷m@Pð`;u>ƒ€Òæç~„¹”ç{1Òæ×NŸA1`€p†ÂE0^PÀ)Ï7Èý„¼†ió¸‰Ûç#0HP)‚½N.bB(œ€À¥<¶ @!¤6ÈJœ^BH!Á€ ÚØ|A¡â·Ð -!äBaÐfê|…ß„P|°t¾""·úà¥XP(¤òF›1!@ñÓIPN<ÜPÀ@(@8áP{˜ - €¥¨ ‚ n±@xHÀ¤¤`@Æ`@À @ðÁñùÖ•µdBTy -õ:øá|—Á0xCʼnð“ªÔÇp@j -¡˜!ýû•.{[BÅ&Šû™]|‚2¹y½psÈ=fÐTBRa)Ë ûÝB0ÁF7è—žóˆÔ$Qb¯=l)X1\¥+ ¡ª³to AÞX­b–Nˆ¡0=" 9£&AmHT¦ALœ~˜¥»ªÒÅCaúg~³tr#™Þî3*¢°"-’^«.^VÄÙÈYúH‘Öl)Óë/Ϥˆ¤d`é=&’éM« w”ìñLLCÌ’IŠÑÎä+©=ÐwhUÍ, LTzv9„nö¨é¤\ÄgC„…-R*°µ0pŒ–—óo®V˜”Ñwhe0#Ì®ít‘”SK€ÙhÃÔÆi–$žT7m¬“ßÑJV‹?6Z|ŸbÉýŽV yd¦Tí;Z™TÄUÛ¬#©¶4Ð@ìíÂ29…”÷VO¾WÃÕÊ >*ç¿n:“zÒ$I˜î(áwjT·ÈÅf’/](Ãdòwé¥nœþM°S¸’XÃ}ÁÒ ‘‘— -¯X7.í®Ur@¥›gzih¾3!%6vÊd©ÓÀôR¡©k樎ža¹/ͧ§–á2Ñ'>«ü–ZQXº”l3!Ȱî9•+KNKž³›ÃS%öó_±!À9¿ý.ÀÒé9?Ú] ÍiÆ£cj:ÊNn§•ë®ôT•Ïæ4;©QM+å§é£UfÂÆPX:§ùJ¥"ªÕ´„ðÐÏK®à4Ä‚jC¼T–.lƒ¦#fb¾KZ:zTOÕ"gõ!61T6ù’¬E8È&øJ#ñçG=h?ÿé9{É3åu¿åÃUEAt¦¿_r«ž::¨¦¥¥)Çx½Ñ0 A,HJx'àúP¿àÁ…€éëŽÍî;±c+f”Ó‰Ýïdƒ&FˆbÇÙhÝñé1BÔÝ­›š¶ €­¨àhf ÑK)€9†â†!`‚€ 8 øx~֓Ňµêž¥^˜hSµê* –Ñ«E«„÷3TœµÒ‚|´Ñ—«ÇØ7Êú²VÛã9MŠ˜·˜ôÌô–‚Ps"*¬UY#™l¸ß (ÌF#vjÈ.y¢©ôÖψéô‹„—Ù9Fõ3ÅP!zàÉÑLl« Ÿ‰vs"eh\4øó0øp‘Æy8j¢YjÒx£l‚$M×fÀA˜µ5þ{–Ë%  éRË -ÚD£Õ mÄf±«‰Ë”ó´É¯Á¥ÎêšY$rÿ8n¡³) Ì}·S6à(Ž®%C¶Áø|Š>f;‹‹ÄÚwC“7uêŠ-sñLÌ~o°WÂyY²}ƒ‘‹öàtªˆ®%…œm‰/k,4çãt-):®é\ü€®%ºç”¸øýêçZ”N‰k«/.=×’!:Î`<>”_ÎW-)XɤӴ³ÃNvˆeÌkÉÈg.‘¢ ¬<Ûm¬d ‹ÈRµD¯²fóê°÷ Z­ôò_¼/̇ž[YY\ÒÒŸyñEG­ðÔÀ噑‡ÕÞ`ú!Ü©i‚Ó‰ g€êŽ"Šñ=A†€inb1¾ewb|1¶$g€*QGBZ€å´ÉUPU”®Äî—| ê š‰—–V¨½ÖüSÓ#z¯-»+À´žöÚSâ œ&í½èäqˆj+¥½·ê©ŠÏ´÷¢âBÚ{- 9DK‡§4Ûh1¾¦§0}ñ5?E€`’4]£„´_2‚K3¾µ¨)qžÊ§µè$’0]‚Cb¢-¿†ä´-½… éjOkQÒk€¦µÖ§£Ãc‚Z‹NNQ+<Õ¢ãVA0 Öc‚ÞkÉ.`Ú!9íµ&ȘšL F9õ1ž(JMÒÒÑÒT{ò˜`ƒr ÛxÚF§æ”Óƒ¬ðÔ‰· Ú“=Å­‚ª´´SMÔ¢ewW€i€&jQ3Ä(§!‚…W¢=E­zjGr¨öµö‡(€Â¨°ld ±@xHÀ´l@ðPà €a@ þ•~.à «H¢`ŒI„´ºC!x€>D É€£iÌ^\Â3 :nÏïß—2KˆH¶Øš¼Géø˜è*D ê ³6¡B5ÈgPäs—8XF5Ô°b—Ë‘'Áh€‘_ †AäÏÍOáA:PAÂ[¦ˆ¯t£€hf$Àff:Ë _éØk’‡yžÔ}¾ÒLéóÈΘn×L7še`K*É˰6ÓwyªXR¢—X­¨•9å›ÀWút ™À´„Eú^éM fºBtc¸¤Mì¡oùÜ.ôÁÂ?,UÖ%ZJc¸?”•@¦EÇt(&nŠ6— -ju!%ãC&«Å•ÇÉ”YbB¶À•ÕÊ6Åi‡!nx(•á¹*€Hy};T§@@˜¾²kÛxXC¥+ªÂV–­bâJÃã–Ï¥"iš®+ÏC¬‡WÜð°n% {ÈäkG_꿦…K/ÁeA‚¾qW»_øRv 8ùŸ×ùB(|·pôæG}FN¹…ëýQT¼ˆ=œ»aCé‰F0ÀC®]ì!Ÿµöäþ¢ÇááÜ‹=ä3ÝèS -¦0E€‡ÄÆ<öÅ^²OƒÔh•kÞÏtÐêfxhLØU,âÆû× d~ s£©na}yÎh.×”æfl"ÌW[[ZZ™Ä<ѳ4Qôœt -Ó…§B¦+¨¶@ÑM¤Eá‘'Šš"gEKy¢§)Ñ Pm@"29Qô!Ó–'z–¡ƒðœ“È`:4Qô,¿åTÔ°‰&Šž¤ÇP’ò<͉ǘœV¨ÒÂÒ=PÎØh1sN<‚ïG اdÄ/öŠõ!ŽgÑ×ç3¢Äj]±—Þj|H±4À©k‹BÕó¡óˆ­¢²Þà+–Ð1 KÄ“…BÉ«°‡SU¤ Ø'ÙÂËÿb›-ZlÙËéb 2E¨¡ïSÔÇTÈ7Ž×KjÅ22œLøåCõT ¢[Â¥ÞeX7,–ÒoPá-¹šRþÉÛ™Te±Ä 1@dÕæ†ÂBŠš³Å,š¼h‚Üb 4Ü0ªE\çGÓ‹¬È~á–ŸÑÐ èBÚtÀ*˜š7ãр#/ðâ ]ï&š³*3 "ptþ+ÔS‡µ_ ®cDÇ? å-"u‘ÑÝAˆŒèaîëfI¹fL9BXÁð­ÁZœ†z¸a5ýøèö{VƒŒ¼IïØN™9φz8²µJ-Uzhå´¡†WkµOs4äcñwøtGëB{òi–è„û¹›:ê-? Ü‹¶ýÑZ é6|n–ÔB+1w´V{l#’îÇûOÜ¡ñIÆ^À`+Ïh¨Ç bGqº]”5H~ÆãÖ"w4ÈÕC‰{ú‹! ½Ý’)6ñoÚˈ$ÀÖÊÄ-Ì,ø~œÄ'—IHIIžØ4£s|â„$'á†0M`DÄkjß8!Éܦ—‡bD v0M-Hrü2 Àô@‘LHr´D-M=µꩊÒ1‘…ÝÚ'N&ñÓŠÁSÛàðÄq2Áí`:>®É©ŒT9¼ éÇ%hê¸!*¬“L&“ä.AåðÄ 9A.!h:*4:É„œŒa AS‘pG'£øiˆ@Óá8M_Üò¨àâ:¬Š˜V”«Qˆ–Fl ç0HÅ#'“Qa ¥ '“Qô²$„,¨g X58: 79•,(hi­¢¥Û'œéâ>qGIç0<ÀH£Š–FlŸ—Y€¦B2‰¸¸ä'…º{úo°Ù,áõ%T/œÑ>   Ã]c½ÿUl1I‘Ð a4Ã?ýÀÎrÊ -f9Šú£Ü!÷ö¿ÑjÁÅ_|HÇN@¬àáÍaß,q|žýyM G@\Ì*îõˆ -Á€·-ûÿëg¶ü -LBð¡Ë€XE€&I°@ zà•@ü wÓÈ p1`ä8@B@Ú‚/Àˆšµ€‰(Šaר$¦5O"ޢīX'!@KK -HÈô!ÐTHÒa‰é@Ó HXˆ˜4U Zj‰é©½ DL ŽÈ)(hi„Ö…‰$ô´kð, ¨/”HÂïÁ(DLo^—N%,_(‘HÀf4M`<¾fšº„Q"1m9ºï!@ha‚ݦ "¦CIzÜ¢ 1Õ+@S Y§ @LOOm©°x4"ã\´4f4uñèÈ€AÀ„ÖmYÀz, -Ó‹V°!‚óS! -ÐÔRÅàÓñÁ³´TXlèqŒJjjY$`hPM…–n!búkȆ!è=†@S¹ÄàYºb<<0 Ã/’!¦/ Cðƒ`VÀ©M][€é¨A¢"‚7Ä4®`À0Ž£H¢„A‚‚~€€Öw´´˜%!o¯»ÝETÌ!¸îa˜]2?$÷È<– ÏµÞ%Øtÿ(ä~†Â°ë|—à¯s³D~,éÑ+£õ -—´ kÔIõ®?Ø -w–ßw›éDì=ÅMµ³äØK»KêB<6U\}g‰ Þ%D.#=;ÐÂ1|¬Î’ià.ÅM»žÊ7+eÐpg¡‡ý=ëj–Ú.ñ.©k¨c¨[}à?îø?Šýë¡Ý… -~šÏœ¸8£q…Ž_4G=«  [ñÿ…Uöw¨ëYZ†­bµuîPtœð`†­pþLŒw(=¤ô‡™Èðán}wØ »g|(P™;Ó·|¦­™—JƒÍí¡ww-¸p‡bèbšcL®F?ëwEoáÃ’ŠûßX´Ô^i`ºÃ«§ ˆb0 -_Ú³4Œ;|P³ |˜Ü°®1!`‡QÜ!…úèRv©ÏþBJaÃoµ >tÇx€/ÞŠ -Ä.٨ăv¤Dëò!Ù¥“‡â’Ó–&m—·Ú¤o°âÍ·Â}¦ßj—û–p³9D@ÜçjºV‘&ßn[š3qó½à§JÆ"ïïÉÚ@/W`cð2Á\//Þˆ&©YŽ;^CP;n†Ñ0xíü2v2²ý¨ã}TV~ƒâÂÈýãÎ -TùG6hG°;c†]lÚÃð›8ÉÁþ³¢ K8êürÆþ×*Qÿ´ÃfSü@ÿذÂÍŽñ” -ßIغrö¶È2€f´CÌžñCö01€©6`šÒýϪfÊÏ2h ½´[@7Ô"—ŸccbcЄÀÝ÷}_'ø<ˆcë¾ü¼ˆ¦(HLx#‘A¼¿îÑ00´‹Š˜ÚàºH–  ¦ˆ‚àç=0‚B«MíÂb‹ôtx`‡éYºÞ‚ YlÝ‚àѸ„ùÀtj+Vƒ["W‰Ëp–^lMb1]@aá@  ¥=-‘A:ïû¼D„‘—àYZA˜Ú .r$¦vß÷y×°¦gi‚"ƒ0¬€ã ˆ¦ HMm®ó¾ïë˜VhÞ÷}^d[Míµ£Î x–fÝ£ó<Ï‹<Vcƒ4¬ ZúÐØ"ƒ‹<2…"s$(©©m𼮡Ex–f¢ã"žçyDSTgéj¡A<; ¦¶¨¤ó<ˆ¦(œÚƒv˜ ¥3H÷M„„cƒDƒ¨©]¸$ÒMœÚÝ p–Î\vÏÒÚ#‚%Ú ¦¶DH`¤ëº.rè<¯ƒp¢RdHà,Ý)*€³44846öÈ®Cck0íH„ËÁEº† ¢&€ÿ¨"*¢Ù€qaF ¤µ€a¤(†A(D€!~Ë颔%¬dÇÜg$°EæYòú±Ž1œôY—X"„X‡õÑC§öê’Äð[&/"KÞƒ‡ý_/Ul\èz¥DÚW K\õ —ø  ruÄ/ÕÀîMÇë%*˜,9ò5°öµ]ÚèÈà€X‡Àò’¶…îÉûk´ ”Hf«ëò·*D¯J¾¼“Ò˜—Ë Â £rÙ -r¢<͈&»œôJ辈7ÈôW\]Rü¤8éùyÉŽn4ýÜãeFyŒÚ]Oz#Å›^ÑNŠäFµ–MŽòáªbüQ|$Ö<Áuÿ"ܨ[\Ø7$¥\B9Ù`Ò 6…xô¼É燌,ª ÷‚C,A(Ëé’Œß$Cí'‘¼Ä8~¸Ÿ<W±DÿOª}QÙÍxX¢%¦×”F¥Í‡R&]g m¬%=?&nƒ†‡@˜ôYæ7ýëZPìÈq< ÛõÃlŠ=½Åͪ®ÔLyýP[„F ²¨ài3{_/ á!>Hý0gëʶ•)ÀCf¨ö b+TôêϺ̘…¢<\€hHm ›®+±:EÕˆðP9ꇻN6\êifloÇ€mí¨ö°`Ù¨³6àÉÕ±]š"çÞûa¥´ÏZØLûS Â%M^l!"J5¶ÒGÎóyØ¥¿›z7«lWãÄÑ~3€ÒÑ[m·é™rQ¡²gôñˆÒ¯®kÈGõ ›74vˆô,¡Qz伞yf÷òÞ´Ž„Õ;î6û -â‡×íM¬±•Ag”î:V€à Äé«oƒxt¿ì°oY÷Pt£:íO5'$§uØ!ZÕº‡WakQ¼ëjÜE¶ñN®¸”ÓsG…\#WXXWUL÷A‚<6ÇU ¦6580 í‰D" ‰D"—-Ï#‰D".ò*-aÙÃj‰zdŠÉZhŽà,O pe\sj/ -ኅA1Ý¢±A%ÆÈ¸<¸Œx@ ÑÈ8$ Ö5µ ë¨YšhhÆ@j–¶&¨©`hlƒl…Æ8Pgé몠ɀ *…cƒ@:zhK'° KOµYÖ,ÍaZÆ@S{q¤A‘q‰&Ã…mŽÅai¢©J4´Í±°(éaj ªDC³(ÉYj -‰Æ@r–†ÖBQUàaêÀZ4ÀÃÔŽ´‡é67Зa:,0mã8-j–nÀÀºÙÆ9‰²„ÀÃÔŽU‚ñx<¸- äñà²F;¶Ç#k$ªÃÓ¸n¶GaádÜj €`dÛ⸠Sä,!¨1*m@qaF ¦ `aŽã0Š €  €À¦qX!“x>FƒYA=po~Ò -|É; ®.£¿ñY(uD¢`VÒÓ ¤†gu8HÉR‹×ùfÖø·‹E]-,ÊQô‰/±¥ :Äý‘N´IýËi%éµ:,~8àØwµVWä‰$4¦‡ku¨îi1ø’‚ ªÂ¬øêä•üÔ¡Ü¢ÓQsî*%åzoFöh¨øƒùçx%åÓ/*Çd"",Ãa;D¾É^Ìjâ•dVF§‡¢pŸGè´=” Ì -Z6*Ÿ¡`,§‰ð¦*BÑveŸõÎãÁq5hÉB›ö—I?=Œ_2­ydeèÄ÷pivÄDz7ÇŸ#[u‹s¡!7S×Zö‰¸&½‡dk7qƒK¸i£ÅÛbØŽHÖ¦kqYYq9)&ÒϹ2¨o&Ýβ´ø0öéf+áDÇW \'@Û=­9VÌ9¶VR—<Ùá¤ø³]5¶èÃò hb;Eqýºzqv­ámñ¡`(’Ðb‡œ8}è‘…ßnžî81%±³[>D*x‰…Hü]DþºžcÓ‘_yÉV+$²äÃíۑбéZ¼$,°Ójw”1wªˆ…ˆˆ L(Lámšƒ‘0 N$(¬``H0°lÛ‰ª£á h8—Eè©*ôË´m˰¢š¬«á`, -‹B,°lÛº‘i#QM’ÃÔ¦ŠF–¨‘ €Xd˜¢6³qÇq›&i—5*÷xpÜ5K+0ms,j'*Aä,ÝUãj–V“#Ó6D5\Œ&X‰E#€ešV СHO³ÔT Ç¡ @(×2$˜CÓ! ÁAY‰Å Ђ‚u1°LS4óHƒ*±h,†©p¸0¦¶B°¨@ôHƒê h82-ÁÀ2mÛ6ã: T‰E#Ó6ÍÑPKw¦mÇm\ІCS,B…ƒ‚•P0°,0¨Yƒq!,ˆ*ÓÅ,ì²£Ç*.ÛŽŽ5­$ùCL‡W 7Ä¿ñ„gCûh‰,vÍgbL)"€Ùy}­’YP˜ÈˆNõ‡’üá -˜ 8¦Uá¡Ï;¼3*JP'aìêë⊢AP¼oÅY\¼Þ¦ÃŒ'¢a×v=]óD­×òß‹9,ÑaµšÁDù§þÚ% ÄRJòž‡=ÇG‡}ÐY‚ýÓ.Tˆ>i!›öÄ”úLn4y™´h¤ÿé. DÆ -Rë£tb¸ æ·UûÕ&ÄV•C†œi” Py¨˜ÃÚj:V_¢RùÆ`€( ¤àÄ<Äßî§ãFÙ—xØì$ Q©*ø&—ÏK ÝÁC~/¨èKxòùN¡­Ý”[\@: åEc"¢ñ;ÌëâA[ÉÔÐÏó° ¹/Q•³Ý2¿DWf0 |½tþ éZˆ—‹n¿ÄˆWi×2ç7CÃCJÝ8®Æî$þ ^GA¤Ö€ÇûcOúIÂÄk ŠêÈÅXˆA„D<|†ôqÛ!0›E¢dÝ,ÂÛ&€k FˆË”=¾,{~˜:DKQQˆïÀñËãDlj‡c\T5Of¶E¥µ{BNÐè+•Ls©YžÍ/:$ý!Ú¹è›Ò’g\46ä ԯ䖿UüЄ‚Ý ˆ!õ¾$¼>np4çb¾ù ü[ÄkØ÷íè‚-+w«Wb_ž^êܦÇ}- 勯@û#ÛÍ3½0pƒ_2Ò^7J›Žö{ñTHÛ>çÜ>Væ ,‡\r¼¶ãTßék\o„²Õ7`è‡ä Ó—®y>¤v™¢Ô9f0€ƒ4@²/iË{^˜!€µUáñép»™Dâ3¾DÛð¼FpµXïí›VbTˆ¥ÇØ­•èZÏ%>ÔCÔˆÉ vf&zàµ÷‹Wš"KseõEQ -é/0b8|‰‚6ðÓ›Ô¡ü•žÕ•¨hx¾Ä¤é­1òp÷ýÇaõð ,)í¬/ÀÃ~»Q$›5 ÎÓ…MÆB l1#sqssÄåp„ AOGR`‚œÆQQÃ,Ke!&@K€‰°P$ §a–*ˆëp)‰ƒ¡@ ÔO •…˜ÑÓ@R` -4C00WâPU8TâR -=MG€‰ª,Ä¥p Å…°¦ L ‚E(TÖ±`4˜Ã=Ýh` †%EPW†*T ‘0@ÓTŽƒ¡"P“ ˆZ0 ƒu@$ ‚ ¢±P(ˆƒU¨ a– -L¡2‰Ë8XšI0p\+CXUšR=NÓÁ€P0TÁ`X£ÁX,ŠËªªB¢ƒI $IŠ"‚œç$ Ó€¢D"q] -Å‚Áh4 Œ1˜€ª Å•@ «ª -T9MÃ0ËR‚Á:‰ë¸Ž5ˆ çq˜¦qœ‚¢H -‹R!Á@Zj?‚ÁÀ¨I‚ž§Öå)T£*€ÔóLÕ  -U¨ ,A OÅX£Å•H ×u]‹F &@ZšÆ 0ÆâJ ,CU( -j0 )LƒEQ…BUY–u8 *»¨A.¢Á@¨Bê`@q’§AL1B   „€ *yŸ?À½êô±W„I¯çÖs†^ [Æ£ãâ¸`¸ˆqè¨ \ÌA¿zY“>ÄuÂÕ<\-«g¬ÀLC˜sËEqKÓP«}¾lh¶Lx¢`’nP¿ÚéHܨšlÕRÿCœ¢cu¢UtçJ"\—d :é/d%q)/ ëX >G¯SUw`4¬ñÁþ6™èu9M"¿ÁŠ%ƒâûmþ–8·×T²p©²QŸY¯®q¤C̺­'y¢ýµ˜ˆdŠ”ÆŒ^~K‰Q§Pšy¡ñjømö†ÈíÞ5”›e‹L2âGº`JDX:ð#Id‡P1Í'=ÕÛE;TKö»a„s—*¦û4¶›“AH§Ì;§’»#öuµ‰(¨±8Ü%JôàݸÇ™÷½0-D°øñ §¿x©£ðS àEœxßîúˆ0)Žx2hŠ8=xh,ÂÜp ºc†Hb˜Ónœ™ir6Aý9'M<&ÆJÜ©i$~ŸÄŒØ¨ @¨N……46´ žõ Ù°òfø\áƒÂ;5,¾˜8Wa`EâfâD;n©@_kuÙT]µã°p×rãŽ6üx†%Å0Z!*3Ù.†[š¢ðÄÁNLЉÿWb‹ÄøŒª~»Ï‡ø¤5)â"õ`ö18tŸÃüTFJÞÚпáO:ª†ßV cÖªŽ'ŠÁ¡b’k¹Õ7¢:o^)EtoˆÍ+uL‡8ìühq9Œ¥8„rCš5Ü®Ÿ»É.yÇEN"˜UĤÃàòð\4@?)T¾È?p˜WšáÃU!J˜ ƒ³@TÄ4#ú|DÒˆTÅs6 -CÒäw¼Auµ0jPá3ÝÔxÙ°²!ÇÍD ªQgˆ¼ˆån<=ˆN"*UO @F"‚¼fVDåÇ47ØŽ(ÙDäEÄz«&å 2<ˆ=q?P*á•Ê´2ÜvrØ~Z:LDN¡Lø"¶üEDpU…d¸úÇ]> ‡.zíÂ!,rXÐ ýºÜ bU¢/b¡! ÜCLDÎY,ÎW{¿Kó} ÀaHx•t• ª‹˜e"£e”ôïEªV;à³´«Õø­Ù”ð§Ã‚ÆÄ»ˆB†ØD™ˆÝ¶oÁˬ~¸B§eâIö­t~9ëÆaÿ9_ Cl-Ä$„øs¢^¢†³[ѹE4¦Åá\ö~Ã2‡ -’º…’+•ˆiéÓæ˜³ Ë0‘4ÂÚ¡ŽygC±žTâtX• ææT"ÆÅĆãzýÈbŠ1 RQ¢Ü¡3µ UâÕ!Î@ˆ8œ­!2°+ï¼@ô`6UtØ8¼E w(ëªC‡•ý@P1‰gCˆâÿïC6Gr%I[1°—CI‡Œ¦ b‡ÄD8-ÄÙ‚¯_s úr bi$‘f|o%M3¡ oó§hÍYmï};»_%•€ûÿSúWXc`W•Š­¬„ÃR¬æ¹’½˜t„“§i O¹Š¸E1áJ¤Õ—ÂèVD.Šªu_?:h+.îr™O§Ëj‹ tG¶˜š*ŠIRå'µÅË·ÊXJ„ 9yÚb -–Åle%Fh ýhz.Yúõ[¬ÃòÚûUùžOž¦ úA(kPÖ šhɤÂÐ`‰TƒÚbc)"cñ$Mù¡«ütÓ{)‘žyï<|ÿ'u—yq£{ѤîÂ7ýR*ÐÉ$õ:E˧³ÂúO+¬õßןBÝÛyQ~•V))¾«Ïç”Ñ¡òî ¶ØEScuùOÆqÞ{ú¿„Õk­µBª¤j‹ežŽP[L#j‹Ý§Ô›°‹%< ´ÖÚbW²”E¦o¦ªÌÍR_ÉbÜÊVƶï†ÍH‹å‹™l–¸’…hm1çòí°  P1…c!Ãó4¦ðÓ`ww¯pº3è.ç{¤ÕÝQ(ŸtœêŽk¡|0 `ÀÜêM‰úµ¡ª…‰h-Ša8ì³BÑÞ  Bì¶vF%À.g¤ ãw0JgP™ÎÒá.ÓŸ›wÃdàq_L›ÑáRöÞpàå´p"@Jɳ5‚øƒ½)Ä…=…Ÿ>À º°F–Þ/al -h*çB -endstream endobj 23 0 obj <>stream -1ÑúrGÒ ÁI{ž¸ûΓֈ‘ϲDÖÊw­½å.,ŽƒWÅз¶ôYÃZ=×Ô‰¤îÎHd½¤­½%¢ìYäê‹Õ@8<^_@ -56Õ®”Ósï^gblç I-¸ä8ûáS× -„¨`íÆ÷ AÀ(•»óÓ¼â &H¨Qr@xIbG ±0ŒA’£0! €`€@ ØD xùºRŠÁ‘«hÔbn` Q¶º:NpäëŠw:®2M;è™Rú5*…4ÁOO˜(f«; Jóœ+ôº1ø¸ÚXÏ¢ÑnIú ¾8]'±@ ¼7.±Mf ®ëÇÕx©­ -ofz¢Ýxhðê…¸ÚE- ô·Uâã]¾®5®Š-½n("ÐÓg(]Éú\K׬•ª` ç¨Ü5@ ~£„ñu¤·âV©%—¼ÊpµYB3‡4˜É-Éùß°«iƧ™K ÁD^ -µ¤ydWy¦¯KQ¸%Ÿl522‡Œß™N’™Q\…ÿW«ªåK¬\ÝÂVQ?bð¥ÒªÁÂòGß$) ZàêûÔJm×ýÚjßÿ - C {£ùoÝ~R.é3¿s\åCýf«löËù¯ xW#Žyõ‚±q÷q5…šàq$ÙÖ‘ñWOSc8 h«^Žèö úW±U–T;¶ÕÌP\OoH šèº-Ìвհ£øüŠØÀÕ«ª-‹­Æ:¹ÙŠF¹¤yâK努¿¡ôbr 3H³;'ðmR¸rŒ†¬Ám` ®BŽªm2è´Lùb–”Úû»,UÀõŽRcý£¸ -ßyÅV‰ƒ5­® Ò6µ­®îWãºÐVÛT*—˜Îvû0þ¹„“«浚Uެ•vT‰Ú°[-8¹‡ÁÙ²]m5š…Wë2¸MD“–µU¿]EoÎWÿM^µ¡áoKTÐVqW…q¶f˜¬ÕÓŒ›Ñ§8<Ù*㮂Բ­v"q¶aG×(2fðªç™j¶"W‡2qµþ\r² NEtñjS ´®KÕÂVCÞÕl³WY…$?…Ÿ]uŽŽÃVCÍÕqK{Ýq vIËà}Õ`&Pô?)«­½«±d¯…4칤Aq0.¼¤}Èà4>… -¾ï¶Õ¸º™‰«â0è?úºôˆ˜@ùÜü!²‹&€ÌÝ Yh¯€s<ëßÖ=ˆ,Ý¿—Ì…38_›`±†ë{z’éÇ „ÝJ'öy1û3à(€•ÄD×z‘jƒÈe·¶«Ò0cù><\P¦ŠFG]—Ð^hFj¥ì›í&qî÷E,£Cƒ³]¡Õ¿é²ä£A—†¦¤ùÞƒa«Û¨þ}YB1%@˜¸\U±P€e´¨av@øH1x‘@ FaŠ£8Æ(c0@€â’ Pñ¢éEÞlß ñ4íw äúµ"î…1g (µBȱ P»­2…þ)(p[(µv"¤–‚w'ñPºZu#Ê)”.Û¾2lÃŒSàÔáꪻ©>5  PCWÙ -0¯ûÁtqµ>HäMSÂBØV» -7|(UNÈüÓëx-(õ1{w -‚ó³^ çÃquNݬO Õb’c«!%QÍ¢‰…™ÿFL}9\å¥:,ÐÚ‹ "“°Ùj†1k5úy, €ÖëÐØôÆú1„ŒËåB”(‘}ë¬Õ•OHÕÇB‰½ºemD”ñ®F3D ÇÕ*NÕ®¶N; pKA [=Ú±\"er,¸µ\î­«ìÒRÕì°0iß\‰‡è‚kzÆì÷ÁÕØSmUÜ”ã` mWƒ‹y‰cF”|Õ@ |Ý—W¥ »ê­LaaO[=ÌÑZÍþ9õ:6(¤™Ç«žÔà°`Ì^Üà¶U™F£9ÀÆÕàvu˜ª]‡,29,˜‡@n‹ç.|ÆKÔW•¤Úu¼¹6 Ej@hõ««¨"¥áë¾_¸#ÁðT­"ˆA¶ÔþÏQ±ÕÄÇ‚7}[¯‹½²{ÞUé-¯Î°°Z}µU¤¢4ü ¡D)_'!®R>M«·³XªéC ¹¢ŠÔeÕªXhÝw’jŠ®4l«Au5"öxì!‹$pÌUEAP±(éÉV-ñå參ÈM„|v -{ÙüâNm¬ì„t\§l â›­¤ú쎀eYÔ_Ãí”-¡°|•œe®èZ1‹Š¯Ã”!r«ž´¯hÀU4ɳÈQCh}dQÿ8Š“³ -ÐþAb%;Æ·Š ºÝ&ÀôŠÃ¼Î”êfàs·¨qú@ø ;› ‘8%qŒÃ ƒ1À@"€ €¸€PŒ…‚á7¶Š¿Ò»Î @!#¹ú¼€ â\ dæ—XžÇŒÆB&²Ü‚X(¯t5¸¾SžXXÙ‚gáó &ïg«¥­Ãˆ…Ì»Š'¼°Œƒ<ƒiÂlqÈۮ௠è£]ð ¶_pý¦› 7lb»\bካôÄ \l± A5\l9_|A\ßvuiØb,´ÆY9­d'>Õªb¡üÐÕôaflµzcÁ˜Å…€E,`g½UXàÉwhÀX@, Ÿtu™Z·P÷Ú€æ!MKYtKä,=f«Š­"t•†¶r³0 QÕjÉUXaïò’#¨T¯e«¢ÈB ê;Þ$[ãiºª#Ü’$ÿÁ]§ÕÿMÛ¹à­æ?]`˜t N«ÚšVë‚r¯s°Xëk?ÎCH%Í7«²¢«þÀ8ZÎA¯}†VµýVŠ]µñ<¾.Žh]eòu"¡6 9]=v8­6-›È%Q^½€MTD«I˜9D,¼¹ª-Œè¡g"qÉ,`šµ@œ4Öˆ*ºÐÜ\;H™R%‹ îGìØj‡MµM­ -ç*I"[5J$¹ä£"Yq¨Õ7tW!rd«²K Á*›ŽÕjÚÒÕÀ«Õã_€ÌTÙO©Œê&œ[°°ùjµ×UÃ`Åm”5Œ=d ¤²EýC­Jr•Xè6|l,|'.Ña佥Ή…AWiz„ë|Ò…ÀTÙ°x5ÛÀrM€ñV2ìD½S‡Vñßt«ÎÌ´“͆‰½ÿ”S熃Ù"—Òô*Ô!”ø‰49™@;Z”ÅÄÇ;NCNXÄ¢ R€ë¨PÁÆ0h@0–Â(ŠƒŒabˆ!Ä"4@„€ÝE1M=§N³‡1ŸšÆýYW¹^ß’ù°DÞA9t‚5#6¯­&SWÏ… }jœ#Ò*­‹VO|KæÁö}üâU„²}H1ªÝ8m ˆ> uè¾ÀÕ 2,\"‘V¡¢ní…W´Š×ü[ U¾JÈ¡öZ¡Öu -9I«¨P7q#*Knùàuu¸ ñ§<ãꀞ©qN‰½³$q«Z†EÙ"ƒ]Í·´ -FWf3wUiºFQçÍap *"Іă@”÷Šƒ±„Â-ââËó1¼¥«¶nSÌ4Ѭ®’ ±Aq‰Ì.x±wõæW$@Ù2¼«k­ H.øH÷™Mã€ru@¬ ½ë­èÃóýíæÃ .н*.¡h·Odâpv•´ †ƒ0w¤ÓѪÍÈ/¸D5º‰ÜÀ¨«»Ê™¬£ðºÃ­Ö~‰8ÎRˆ!e¡­´Zפ¸ø9QÉ,… Í®®AUW¼`|—¢¸7d -œSˆXàtÝÕçqYð’:xÈœ\êq¥<ˆ”0@"' ä[ ŒÁmðÁ‰«ÐaÄG„TA‹z6Tà‹Z€|pLüÿ9Lüÿ9L@üÿ9Lüÿ9Lüÿ9L@üÿ9Lüÿ9L@üÿ9L@üÿ9Lüÿ9L@üÿ9L@üÿ9Lüÿ9L@üÿ9L@üÿ9Lüÿ9L@üÿ9L@üÿ9Lüÿ9lšû·zr£Lüÿ9Lüÿ9L@üÿ9Lüÿ9Lüÿ9¼âFP”ëv¼Ï¬Qr#øZÇû<—§º¸IóƒUS,ê..7‹Ê’‚[Höªô Âo±0c*Œ„A:\.2’äÕ·SŸEmÂÊHQh€nããÛYÞaf”ÀÃ_øyÐ0K­ÖN^¨€tá뇞 P(Â@ -E „@B‚‚„ !øG€›ôT"p*ÂSX*ÇV -·­]E'8ꉼ›n9n WDš+Ìî_8ñ«™Ã†‹"<¶§ØI bÎ>¤PZÜnlñ9Uµ%[pL—O±ý…ß«ÍèÚ¿û5(nEàß­Y]+Ipä§¶SCX©§ÐxÌÀî}º:0Uö7Ȫ0¦V­Uc+ìBHp–zµ¡#s#—.Dì» v‡‰¼"0Æ…‘41Mú9~Ÿˆú*q¤Rf!sÚ[/¿Ê3"‡gÿuÚ8‰m ÍÚÌï÷›ȆQŽÕªˆ©7î/=“-¿õj«!‡§ 0ŒàªïV«ä!O Iö¨·EK¨n ‘Æ Ü•à°8£XƒˆÁ# †‚ ˆïÏáu. ÙJÖ2Ìòç§×ÅòxÝ>uÕv«×U«“Z-)®†Žå‰×ýêjv®×9˜©UÒA臎Êû¡e>BNÀ®f³–Ù».Zm[ áí: ­‚Õl&ÛA½»3oõÒÌÒ*¡baó+@ Wq½ëVÔj,¼ô)ï‹ ÐU×h©U4ÀÜjàư£&­bØrw3‹Ô*O’^ÈŠ´*^YWý·Ôj¸àÂýèªD¼}1j»:s]è‚ïSýFdÁ)hW­½qÁUˆq}ïc±WAvêuÁ§.Û®³©<î-Y%V•ö® þGø¹j™XpÍíªŸ® ^,ÄÂôXÐ" Æ´uw÷ ¬+h‰M¼»0"¤t÷#ÐoÁFÈÄJ30\\Ÿ± ¨€uXD™a!·íE,”DÏ ‚+µ«m¾ ¢£y@Ê«ÔÿxUpµ,6BÎ}‡‰KÂÄo"‚ßúVþÙ¶/r -u@Û5ìêð]qIdo#4ðºntÕ#QtÜ -„'Gn;b¡Ò6ß磌!eë1 .9•[Mã2kÙêÃë€Å0ÔÑáÅ)µ¾Vˆ»«V‡îº#”ÔšÛë‚W ¯[+þ1HâAB.»¨ý°l)DKú ™È…Bþà 1tmѪz$¤‹…¢îsÖ_L/¦·z Ò1~qÃñ¿a†A:2|KZÚ¢Õsí½Ñ £Ë˜39aû7¯þ­1D\Ù°>l.lÿ* Ë875‘èꥣUÁfùÖG…â†ÒÃØÑ;›½4£‰’ˆ§aŠâðVc>"‰¸¾…’c"Ð8 -<»×Ûvt픋)Œ"Ë#púÁ.¡´ †èôëÑ“v*ó´+±B*¸é~••­–|•@sDI¨Dº!tU¨ƒ¬%b°U]Uð‰£ñÂð¯«nÔCþ²V¡F[W›“/3[m©V™_' D6DR¤†a«Å¬è¡‘9lù0øÉQMwöºê‰'‰”µJb9(%%P6¯š¦ì€nNº:n†—@Àã^§Šl…@:[=§®–ýá$wÕ•$Ú¡±Õƒì82 䀫îÃÈgt‡µ -Þ_d¡0$K ÏP£­ YȺÊ{mÓ½‚dX¶J'dUÂÂèÈÖÓnÔ²ÙªÝuQÄ뎕>¸SJˆŠ2{WÇæÀ€@n›¶ªm·Ë0{?ñ€8ðñ`E¼òÖšNEÅD_( H]õ½•@‰îu±ºjäBX¯·$’„@ „¶ZZ]É2Š…n\ðî{]tzqX„ì¯ ôH°HJ L{]d]' -_ÜaêêÕJ(uӟ݈‹­À½ëq’V½a]5öTɶ¹ä}kmUf±ÃGú0#Ÿ•7è:4•ÊÕ¢Ñä0t+2N-PÈiçÆka’Obê j;·C„¨­3FÝFÉ"23•ƒú¶÷øC(NĥᲇA°´ª³lùΗÀvè³ø,¾vI ìÃc -¨(0ûe»jn%þ"Æ}±ìý²Éé -Óøñ]Ûq Ä›¯óê´è Ù†3e@÷²£Ay,L©©jÎ]KŠ+…¸Áaÿz†¨NŠG -‘)Æ~.É©Õ7x'¹n•âñp1pA‚(¨âì² ‚€à”"Ší`Ñ0 $IŽÃ Æ2!D € „XÀ¨èº¤|°°!×eiÉÕ¸I œ¼˜,T¶©#œ ´ÖV7ßSºî`Ê`!ÌUêÉÂönµö««FÑçYº4ÁÅþ‘’£Ðh\ÖXªrµí4x|B 3øWÅ¥ÑÙ%Ù¬­ÞuC3b‚'Ñ«‡91’…/·*wN šâjëih•ù²j°9W½ aH :Yˆu«ý<[ID€ß1 -aàêàl‰ˆr¦Ó4&¸òò3¤úåÉB{ßM×nUwÆ=[ ½ŠÀô­V‡²Â8í;ϸšá¢Wåiðˆ[u£_w’¸*­Õ;£U˜7Xfk@»0& Ob–s«DŒ@5¡ÂH…VŸ7«mœÁB®Z3Îq« ã KšÁgòê“Ò´¶ Uó¸¹Ê¯£[}˜“™àůK¦« $\ƒú€¦t“xñ¶,œ«wD´W{x­Rt«ÂëÎ%Ë|©A¸Zl >lp >Uš®CkVM@rU"1·®[•ÛM *àêÜ­‚f÷Å­>< @‰{iðïu"D˜‰cAÞr«kb‘èÄÂø8ñA:b,\Ñj¢Á'®–'fågë¼ùcÁ ´ ƹžZïÉu‹]7ˆqY­£UbŠ®d«`âg¸·w, -¶ãc@¾åº0®fèX‡â.ÇB:HjЫ”žÿ©H;]W<[¢x@Ž‘Ùjôóõj%èl±ö*"èÂT}´Úƒ«Ð‹£q«Õž­hL õÈB½èÒð ˆ° ­º#jÄ.2 -gÑXpÉÃz5O<…Ô'8™Þ¼ìÚâ WÇÃãÎ¢š†«³ŒéWµ•rx¹ú2Ò­’|ÁÂAg•å×ÒJA©1Opµ¨šË‰Ò–,àÙKpÌêq¹Jo¼uQÊè4²° -®FQó.Áåñ€¶QúutˆȯµZWKåWS!''m“Ù€ˆ,L¸)ž¯ÚçN ³ØêÔ@„¼ð\ÁÙ($$9g‹ÿ”HcK($ŠH­ªé*ZOaNŸ¶¤ê HЗÕC¸jõˆö,ªtXŸ„Á’y@{pšM ´ÅÕ¢-g`ACÆ—ba¤NðÏZ½p•IKs½`«û" Kæj8Vóùê¬FT ®0fÂD¯t;LWlÕaÃUIA¯æ[Ì&BgåÔ–@û?¸j†Lý"&Œ! åuß©KWÁâi«Ú9«ø/Ì ÿÞüÊV/“¡ÙªRˆxAŒðáêÎ^Æ÷= Ð*äæÚ éÒí¿Ú×»Ôͺ¤7 ¡á¬ÎhKú¸µäk)•BréëV¯FwÒ÷ò„"q5š$o#F—„Y! RN[*,|à#‡­Q=bQ…(dÓrDά{iO ˆ„Ôc‚õMRºÙc÷o,¸$ÄUG¦GJ2–>„îåªéú†¤(¦6@Zó×;¨\i84ì³µUM/00’:Âà ÈÍÚŠö:ëâ©ryÿ&Y5;;,â»b›éç_Á“bàStÖxÝ#Â2Œ‹2ï–îÖišÔ4Ux—d¶‰ØJÚÒ•9(žöÌÊ<´Kmw¦¶°ã;g ùÅ‹µl¯’˜›ˆx‡»ùr‹É¹ tÈ–H5‘A£\U:’â{V1·N¶´©>ö¬ö…B8Ë¡Ðè›ÕL׋’íòÂ,›yÏ÷™Äfb-Ý €ªC!°Üj‚¨BäR <ÄÀu€±PŽ9Ž£ d 2†B@€@ |™JNƒ»hz„³Æ£é†«¹·hy5¯ÝŒÛ2-Wgë»üu·Ð[]q[— °|`±õ+Dà=œÕø;ûôâ+¸‘­鄦—û:ÂÕ;;¼ê -¿æª.°¥SôŒIºq58ÎvâV oÞ䣺ÄW[„1G®¦aÜ‘@5xu…Å=jI–ú>C Ëà0ä+$­*üÆÑ©âg †´MÚ²§‹}á =*s²-Ö?—\8£Ù‚ÒØ[;þÊÕ^Á×yÝ×9Lœ.´é¹ú~ç`,¤½ºD[͸ªì¹ªÞú“xY«;ίͣOH%'®{µ{ .‘YeC¸*Bø`¸^µ`Z™« é:eÎu„@”Ã<‘y®F Õ®¼ -\Õ~E«Gù^¸šø:ÃÉ«œüu_U¶Z³ 5€«m ZKZ…>Â÷*)m54h ZÄ«še54ÁB‚Ï\}†8ô×½h¨zBK•–àå#[V/䪜†^ýéŠ@ì3Éþ _—ɹTÍ ½˜dÙ}… "Š«Ô€xÛ_woÁ"5¬“…‚¸«–#ÐrSm5…ö&8˜…‰IÏÕ©@O÷"ÐÞ{²`nõ’W9\E«¡ùèxb«õd…wqùhÍôÙDLeÿ—,x0À«)ÔëÐj$ ƒdÿ -j@xä*_#檒…Izû~ÞëLŸW—¢ŠV“4Á7Uapi@ÛtZKô¨†^­=›¶V& ‹aUí2ì×yµºZ—â´êᲺ ŒÍUÎ`µfðK²À¾ª4¨øu¡ -d!Õ]XÑjáa‚{ mŽÂ\gÇÕ×ÐhÇàêÌ”,ÐÑÙÒaãÕa -Pý·i´1&7@J;þ¯ -ˆì«×Я€àîµ »Ptb3//œm® …ßwRpdܶNÉ£×=,ZäÍ$*YÿpÒûVÁd¿8p–ÈiïúXn³Åâ³>[¼ìëb“õ™*@•ûbÖ‰&sv("õm5 "g½Mð ö‘õš«`ñ´ -3±·f²êÕÝ{¦K…™oMdYZ¡@ÐÉû¦ºù× z¼ÃÙ}3 -r¿¯@›šís ºÈ?‹íE¦òBIô6Û½™:”Ê}U!ßœ‚¨Âìò ‚€`†ç0˜7à 0f9£( -!d 0† !|†ìêÓÔšm] Þ%#½@éÕ:Ì\5GOÂ5È| KT,Øâíh?mž¯ÚGAˆâLWCル;Êo®ÂÁÌUû}ϬRœVOÝ*©·š7å,Œ~Áš° CWAZŒÁU-&§Ú ik××ViVX¹¢UsÙ:7ªÕô”·Òuõö`§òV3W kY9·J=†i—™Uí"ø;_Áá­ë$¸Uגּ޲@dg¿!ú–…0¼š\‰÷ø<³:—V[\ouý²2X>N]§¹*²¯ôMmˆUÆ æa B…©Ðª‰^áX\V5 øÄñe,p•¬´–V2PWåjÌBÃÁU7ãu®ÂË“9x×mþ -:³ -ÈÄ[+nÝ$,«¥8m•¯t‚ðÙ¯j‡ñ¨@X»z5x‚‹ V³JŸ$‹D«Ynµ¸ú°H@J\¦R£ùJqqß2¤Hñ*%Ù'W+h@Ue¢UYe7LW¹­@›˜@-ø^]½u{éë*«$Nt 茷n%\É/ƒ@Y½`@"²Z=˜®¢òn⣺¸yu#b®ê ®ó6z´ÍÏšÕ- 8zÕÖòÞuu5³1;æàj/·^U>ÌU;Œàóá MÜ€€a¢UÀ¬2'¦«vè‚ -„y²Pº,ÄìQ MG ûdvŸ5´a‹×™Û¬¢ž6ÈBJ Ñ*hVy ÓU«@é- ï­v døþ´¨^gÜsµe ’Œ¤aU]Î=³ ·Úú…«Š&7x÷æ*ÖâÉÁÕÀYZ¥PÁùYídLW¿š× -„‡ „ùD)H,bt×Å‚+ü -;1¸ÎP€V-¨Xâ˶‘Y€?ÁU½—モèÕùÅ\ÕXYõ™^áÕm@}‘U­î¿’ë…¬4m1ãºÕL˜@ÿ78 “Š\}Äu–ëZ¶ì”U ¨_AG¢%Ñ’ K‚Qö¬@›á*phO´÷0 dÍÕYa$µú³¸Nf•´‚­žÂÐ%N+ÐNgY˜HRƒ;Ñ«ÉâhÉ-‚Û/0ãàºÎ3Í̪ro È¥ËîÄH ápUª2Ví{•!1W)Œà#[ HÔ$çÝê¤Ù»çÕgY¨$°‹f€÷jIa® -~™FU†fÿ.ãªóØ9V ús«3Ï«¤¹²h9îÒAZ–×£¬*ÿ -s··NöêÜꢆ•j²0íU#`7*¤c\¥«ú毀å/™\Õ•åÞ«t?ÑŽx¢Q‘@‚›«Ï4xqÐà¢ÿïâ£øWøwãê šßèV«–…ÅÆtYH+x½jb®–WKb(ÌêÌVkÃÁÕ7xžïâUˆ_wẫ€²JŒk™U¸ú;Q4\UÁïëÞË«ñᨕ«¥Y pÞº ºÕZ™`÷“Gòƒ‰&”W»àvHÉ;·ï!W¥ˆƒ«¡s«›)î¤÷jƳ=\àj)í I˜Þ”,çUùÖªQÏ>Óߺ¹â:ïpÂÕóVØryš[êäÕ“àÎÝó+ˆÀ ¿ù¼F”W½*Ý5KVçÄm¸:[£‚ÁñêzãMÙc\uÚËÕ}[3Cÿ„¡eðöCI¼µB-Ù»¶ºcÃk›&U³Cz^ÅZv§çhζ.WïÙì\Œh -¨Ws»wò³ehP•œÚ± ¨^MÜíÉÕ°X³ŠÕ¶:³óa*¯oŒoYE0ÂÕ¸çÅÄK¦ÚQŠÃŒ:wŽ+©1bp­7rÿNJJÐÂÉw:?Øeè>Z´ÜÒÍ ¥êå†Ó¡ZdA`‚Å‚Ñ𸡖° å¨`x½C@€79Ý:ÎúnP¡HÜõ}v[F`¹!D¤ ‘©`‘›õ/×[ -FCè¾Vj±N—¬“ÿXå-7Õ0Ä;ašXëÌ.ÇË­ùs2Š]î'ɶwì¿ÓOìl˜ Àr¿ÂDn4ZfyôroÂø¿; †ló5D¶ŸdMÞ%¡êO'c¡H–ûI”CRq9Œ¨ïŸÈéë²¹×wÊEÐîãºl_¥„"G¿¾Ïމ  ’&Nw*;™·Ûþ.#CQ¡‚pN=äG!²èÿSz:šŒ2* Ì}§¢^o?êÿNg7„JTu!¸SéÑ`GƒA-wƒù¨Âä’ €à -Gy2 @¡@’…9ŽÃ(…Œ1įPèÝÎ0¯ÀÁY}´\á&¬z‡d5Ö*^´˜ÚY]¯'AŽ$ Ý´ÄJßEëɺ®ÆøùÕáë%#=8D® -£7wÇK0ôîÚž0 ÚèÀ£¾UdÜⱚJVáp.U™TìU!¢ĽÖÔ -+î _]TÚÕÚÅ.j`ʳ_¥¨µ–ÈÜä[A®ÚIíÿ[M«²ÚQ«$EĺW4^.îø}ƒú¶ Qº¬Ôòê®æìjqN#W…êfáws?Ä饕_{x½‡ ŽéÆ%UÛ üy«Æ­f Êʺi€\š$y;ÄJ[rÁzFý50öÞ*`Ÿ_%ÅÌÈî÷ô%:ʪÕVÉ}Ò«°üBÇö‡„õ‡ârnHšr(úÑ\e<Ò´䪋{ÉZ‡¯Òj D%efèÕ -ß6ÂÕŒ ˆ”¬N*VIP-[%$­r…Ô¦V²d ­p££*"Vi¤XE1tÕ£¦g~ñ«QÐOìU± W"«g•»Yp4†Ç÷Zš–ÕôVI{1ÍjÆb%%¿Ê‘ Ó ÚªùUgÁf᛺‚W¯»94®*1À„´Õøîo@½®UCKt'6ÐÕBúF&˼Šþmîê9kØ-b:-Ð\×,फEƒ½µ;I×~Ê).½~[ÇÊ&Valµ¦Š;¬ŠÃ–¬–ï.zMùÕ´úP꘮ŠU4#szÄUÄÌY(h"îàHÇ«ÜßWUan2²*—©­&J YUb[Š«ªD+ÍÁÚÑcýªpwâX µfÁ©¸ªfÁ$¶Æ»×­#€Bl«ÒÃ-) «°ººZ-Âd„´„uÝWáüÕˆaÇœ< ô“®þËæêœi-Œ)W[YpdV“ÕŠÓYM{÷FµNçVóMž$|e6)ðªÞäj– $"³`'WÇÈf©ºZB®ö'lùªÀ€ þ°©­†Së°¹À “®8L#µ”ÕÀp¸ˆyyàšÂÅòM@¨ (”YRõh Èj¯ºÁ¹BÙ«¯æwð¨¶Â“oR úš;Z=Œ¡ýŸ¥f•¹\¡ÁÅÊê{Éžé˜u÷çÎ÷«y<8®"¹Gꪊ aëUMêmV{Mp™‚ºÕ€ -È V‘±U}ÒùjqÖÝÉÁe9]±®‡V³3 HÂÅu„06ûY…j‹Vÿûγ .™ÎdøêŽd.ÈK”qµÀ«ðê>ealZ…—Õ¸3È -:ð瀫…Ô#„3Lm\®7_M †ŒEWrfÁà ôTZhh5ú±ZÑ+àðPouÍzVK'å¬òçt$¡_%œY ?™®uu(-bmVQ߇eÕK¯0Mq[ݤ€”˜]AÆÏ¦¬€œú§ÐÇ»_Åa÷ W›* tº*%{«0c¯zƒF ø¥%ú)«c HB[g­n[Àjtž tû˜ÒU»ê¶Gè–ˆ¿ƒ3kÆK\™…ÆXáU {Û¹4¾Bï kÓá±J´W‡“]¶:gšÕü•ëY‚}unA]•D½YÿUæ&àlœé÷ApiäËÜö -Ò§¶ƒïV:tLZ_…f,P~3ºª¿2ïUòš³e³a½uªDÂH >ðeË­–Ͳê:«ÒY"¼¹š®’¶@ÂÚ›huµ‰\}NjœÕÑ€¢J«°½£P6«4¹L@“Y}#e íê"Gn|9\ÂÚò‘«XïEêªR&¸ºÇ¹Zöߣ´šþ®àçVû9/ õ³ZêõU]½‰v×r|iïøØe–ó[·B -è)¢×½±Õò‡$“¹‹8#\ËU‡Èh3¨«ƒv8'PyË‚“Ñ HúRiV¯ƒ–x÷¯®šk²v³:ÃuòdUˆhu—e@Rx…D—*v¢"Í^­uµ® -UËÂ_sµ›Ô%û4«áû -Œ©€v`ˆÀƒ·:¯§ÌŸÞE”:TÇ­«)v¸Útƒ§¹aL[–#<Ý ÷ülXo×Ö€2@p Whânµ©øºs+”iö^_XÛ`éšA6î×qbe“X]Zªpÿ««rÝ*¤«&‹½•2‰ g!²þƒa#]·1-‰ÁnÆD]÷d…€„ûþø¡îʪž”ÿ]Ð=Ù«š‚Ú¾ççÜ•½FÙßjˆÜ”‰–¯ãƒcoIŠaôüæßÞÇs<è5ø6 #y|™£O!gC{²ÿIƒg)äÌd`ɤ¤H=þ„ËTWZŽ•þh@• ‰š"ôu-Ñ™ Ɇ<¼­šþ-.‘T²×œ¹ïœ¬äÇ)¤èþ]¢ÁT]˜è-8K‚tÆÖý-Î ÁÊ´M$ÅÎ@¹½‹n ™9bPƒmv",$;Íÿ.f6J1ô·ù#ËÓlŒh1¢¨Y† Ó,oŸÁEÞbѽ•:Ðñ–UUUU¾öÝB’ui†‹¹öý—œaªÁï~/,C Ž^Þýí–¸ÞßÞmKpŠ­ÁþöNE¼N¡eØAû ·!¦À»½i²(}‹5…qŠc…Ÿ¨óŠ/C àà}^ÝFæBÑ@šFAÃBÆb ñŒc5Åzaà -z€ÕAŠ!’Wµçý5§UXÍb½jC«)þªJÿ±QÕ%„ÖgãAWTfƒ–Z+h]›ê5d%Õ«ž¯’Âjç@„u°þS¸ì«äè-²€y~Ps—"#vT+ü`±¡¿jNWÅêÿª°XuBUU´`[0p„>† -”MžUWY±È*7dmUy«QXU¾ª—Óëîã^ 4®˜Ç–Vc¨ˆ°:6@¯: B覯zÚ§:QU%}ªà70ZBJ­KZ¯³Ú,«Vk2ÖN¬K`Õ7¬àæX«µ¸ ºš¢<û¦U¼j…ªaõãªI±êµêâªüªªJU× ª™R%‹á°ŠÐ4÷Ö0­Š˜Yäe¬‡¬û±*i±V¡¯öEÂ9jT2%ÛaIFã“lá±JG@àÙ -2­POV-­ªxÕyUF©ª~ªkYªá+îè÷^›Š ]km Uè˜u{ÕåX}±Îë&¬O `ÍöUíøßuLÓ*.”ŠbÕ2€üXU¹j·V¨J ¢Ÿ R2ƒv ye¥Ï¬ÏfV:CVö=V‘¾­ëÉWË…ÕæR®Êyµ ý›Ù <­ª6û¬"\µoÕøUk«*˜ª?TýOuï"lJñsk¥¨µÆXÙÌšJr²â¸a­A°Ê‰†g£`u~ÕÆ0´0ñþ¨O[«1ôU©Åêñ,̳*ªõªž¬ª;ÕêPáD•Þè#;(í›°à[ƒ´¢³N3Va=+#XMkVn/°žW^ÿªpý‹ÂFA­Âw²®¹jt®Z¸ªoUõ˜[ò7âÊoÖƒ²¾ŽÕí kjûb-íx+Qõ*1ˆÜº¯žÎßµ÷j½î -m…®ˆa‚€¬RXºªÀª²U%ÞF*‡…ÙîûW°/´rÑÚÌ:û°B²ª*b}ô@BXß²¯FG¬«qV#w¬^„oÕnªð¨êU©îæÑL…€D·µ‰VùLYçûX!.V°ÎÃ:Í«ñIxw/Ù€.Ð|Õ<¾~¶jUV}(6xU1=¬Ò«Ò­ºb¨ªµ‡'Â3 dŽ´r—µ¢^ÖØ°ZûãU:t°.ÿ*%¯:6PÁ:¿q¢¯fðªßªN‰Еê!Rh5ÓV …U}HV±JaÕɪ«fUƒQt -! ‘0ÀɉV)•õt¬‘OÖívÅ -¼„Um"îÕk(É®ëê]ÅUÌ@x˜ Tû¤9ì®wàv¿âG@W -h6Z‡+¬ÇêîW}uYÅ{ -P‰UòVµ]uý`U¹DÔ¬ ç@å2è8YÓ²¶âDøX¿l {X¥d(Ù°ªž“¯¢ßKÖtŒK±¯tßÐ -@òÅdUÂô¤Vë -Y½Âªäªú$˜USªjL£â™UYV„³îkC6¬1“XC{ +¬4y|5¬È\¸ì«ríïn· - «à -#cÕx€pVYí µV•"® -¬ª‰°ª‘Cä  ^¬™ž¬À©ÅªñU±°Òõl që§ÅnL±»4‰Ð_­Y ùë·:—º‚6¬rJ@5Ñê´«JrU -X•^5¶®*NL݃pIy!V1Yu• ¯<±Š´Î*[)ŒU Uµ‰ gE4Yï¡(Vö‰“ø`¸@þ-¦ÆùUl7 Ï“ÙÌVñuW@ ³;¬V¿Y=«“UwIfuq¬zk⼆•}dy5å-xb U4d¸È¾êµþ tµ›¹Èi¶Š³¤ô\Þ´n\¬¶Éê4µk5Ä•uØYýwÕã\DOòy¥5šR%V°_mªà₼« -É( ädêWsêÀ®OW½?m - L輂ýXׂt ¬+¬–¤uEÔ*«IË(Z’BÞ!Tø~„ +ub§°u¬fò*:Á@Ì×ܟ¡Á6±þU…Äq© [m/VuY%X_«’¬ÂÄIAžmùŒAæþe®¸K¬Š6âz¸kèbg˜W!ÓUR¯_]·—«±¸úù8l²ëVîµìÂ*@V£raõH@XÝb+èB PT)Õ3"›Ë›eá’,u«i[7X¹`C žxlgˆ_µ äPWQçÚŠz[ý®€ŠÕêú« HkЂGS QV¸ë&¶ð­¿KÖLãQN@" ‹÷D¹YäÔ‰`U÷ÂDžxïþ÷{ò؇ ›í²€0ä< ’?´«ã‹Bü¸ù‹8o`¸Ã‘Úe6P!€£{¸ëâéJâ }+–·\‹q´i ÙH$ ·!Ã…3ý - ‚T<—¢1#“Â'TÞ¨¥Uå|(4Á²…ÚÒÂtö¹(.ÀYÙ–mö;Ok¬‚C$µc.•EdÐÅrk¯¶ÿ2)K)¿¶ªU€!·­Dk–OÂ…e=UÏÝaüøï©&´UZTyo$C ”^wUiÊöØÓ*G'Uÿ!‘Y lÌèyÇy7ØqÆIleó‡/ØðÃã“8LgdtƒÃˆ°ƒPò”V„³É:†|Åzq½z¨.)½ê> HC©¶¬@VëA@ÐP0@¦…«× ³òªZUÅØÃ”)äñ^±DzÚ>뤬øš ËïÇúmb}÷šòUgë©‘|( ?ÜYýXA‹X•´8&þl"$[bÃY Îÿƒ‰¬‹í@m+d„µ,&XqŒ®¶ßŠ]½luËghõ¬Fë«ú«sW5žV¿ªØIÌÓCÖlÈúßéð~[ð°ØŠ‘ÖÇY3º².Á±*VV¡¯Ó:>iá2¡O^¥7ç$D›¬ü †]3UnÈ«¹8@1)«Ä®ª|U[«­ªÒ/TUnÝáxÀP(5ì*¨ ‘Õ±îŠÃZ+V…€Õå°Ž¾Zh)A tÌ^•5PÚZí‰R^5\V }U¥«cWXõêýçäT…aª¥|0ô’úüúšò‚€vVÇYyŽVYÓ–±¾5…5Þ¨qëU§tU`)²ê8!Kú—¬Ê5«^»jõÄêªX¬ú€ªÄ¹?´¨Âc’ÝÇݲ@<­>i]œ³/«€# '¦þ¹&à’j*1–Ñ<ÀUCFªˆ0ÌsÑÝdQúOrQí#QI>ÿø¡Ã¿B,çÁ©?¸›·¬»2JÇQËyáAw›kÁr5+”ó Bõàí.ËŽj¨~Ëyp¢ê¤éƒXÕÞþàGåýíGYþ -Ò±¢Õ±aÂÒlÒSS* - •$s8¬aù"l2—»Ó„5sd -1úÈF¼Ë—ÃîÆƒv³.Ë•.W$½Ó´ÙȰk‰qVJ¥Ic¬¤ŽÉ–76 î6´ms¡ ›¬CãÚ4mÛ&’þŸ&¬ùˆàpæ6íf¸£Ã²‰91™òꥷ&ÃVNè¥HÁá.c‚iÂ&ßî -þ e2iðâÁk2¹&m#+¥·OGŸ™ªe•þi:§Ÿ®òiûùƒ˜É·KODÖøÝeœa—Ã4†37g Hÿƒ—ÉœO}P›³eý9ÌÌÚÜxSíÛÅ##!ZüÁ vÞ2éÏ×Ó–6~|©E•-_ú¶³e¤QõÏè£×§eÒ#ÉÿèNén!J5Ëy0Ó5ª$==gôû?§Cm¨¶–¯R=Mi¥ŒzºÝ¥8Žå<èí-[ZŒª½NûmÑß’NÈB]QõÇåð•q`ŠÄr<¨ú;±œœaðk™åÀŽ~Ëq͆å<ˆ©J#g -ßq˜#W09Óh2ÃÚån2ŠklîÂfÂŽ®ô-uIßúŒ ªŠÖN¯’Ö)Å -yGUNúò£ÈºtÈ{Ú(ÅÈ«D­»}È»J*¹•¤‘»ô7¥±Ji'µTþŒP€Ê¨ñ@¥™™ñ !SI'@à@¤(C@’ã 3!L@%"¸öQŸ9ŒXFäs‡Ôû -…;˜Bðê®C›Ÿ¥V°;jíWKu/az—]×½nÿ´«³UÃÇ–6Î.©Ð.r×>Ux’Ñå_¥ýh8KÑ1jlP<œíž#$’±Œ–Ê}í%ÐÜrPì:NSý×Ârƹ -è߯;›»¶NÆ¡ºÇž¸+;È©:€Ö‹}×:f ¾MS¹’MkÕn4Œ™œ¿þQÄïUÚø&Üú§ '£¶°]“×—%i =ãäœÍ·k"·cœŠÁ´Ûû§ì8PÊ4†î/;V-k!iš\_óæó§ÿÜ6 pÊ!" Ò0²›üF€J´ðð‚ -FC¹ˆn•6¬!‡ y,ú9U€Í·–µú$ÓŒMŒ¯Œr”[zƒ<#`†Ûš^ EQÒ•«f„ÌîwoŸ.å.WÒzðŽ‘‰ÍÃ`0h¡’làhÚ‹sÎþÿÿ}ßù¢[fQRãaµyÑda›7)Ñ›5÷ÿ30000TÈ èuÝ–U -Åã4ÎÓ€¦+Û¸Îó¼ïû>ïGÒ­T*_ÔC.»$SäX8ÌAeœ…Cª.û&å‰Ú›5ÿi¥ÂP©¤ïí½÷ùšo˰ëʸDoÖ›kÍ»ÿiZ©¤¿olÑÓ,G±Ó0kŠÆY<$ÊB/Æ9û_@ððàÐP€@åó|-zš¦y¢W÷ï;çãkORì´ì²$SäxÅAm®LÛ6ÎÇÒ<ϵXó_!P Á¡¡¡Jú½ïœo½7ï>­0(ÐààððððààÐP€CÚ7¶çI =nÓ´Ì¢$Çã4Œâ :ϳp`™Æ}Óf½÷æ[ç¬õæœ÷Þ;ç[ç‹–b§a×uY’j!r,žÇi˜ƒz `šÆqÆCª0ë:Ïë¼oBš¥Y–ä(~×uÜ–]”Ôxã< Æ#š$Öe]×eYVµ9‹çq˜ƒ:°(˜†au Q¥…Þ›/«"Fb‰L'–Wwÿ¿Ï(h¨¥$úC­rQ•éï<£$¨QQ¥__³Ñ êj´HÔ…yO\4ˆÊ<‰ÂºIiñîþÛRì0 -b$ª$ÙÄÒâým%9DmPi3÷¿’ ¢*Q…uÓê]ŠFIEƒXÀ´ë»H,C’láh^Ý}Z1)߆UÒRaº¿1J†›$Á€.N$Q¼ûOI±Ó,ÄM–ÖMx¶å¤Ã¨ˆ‘XšFDa]Záþÿ¬’¢N—æMLûGð±X8 …êÊ8‘q,¹¾¨Èñ0µyeaZŽ&zóî?­00TÒôïùÖ:ã‹–“N˰ëz0Œ±Ô˜»{®íèI ’xÓbŒÑ2Ôõ+1÷à5KtåÕœëkŠÛ”  (ð¾gtÂM -ð2sÿéçwì(ˆ¢Bhbf dÊ>ÇåWE˜j%ÞÝwÏñ³"gñ(å'‰0²¼Å›s¾o¹W[ò“@ÍÙþûžÏ WAM%jT„Y$‰·Oß–ü,©‘¨à%5•¬¼Ü§éç³@&-4/ùY‘S ùHë÷%AKj$–HâhæèèI ga"Ô&š9Ÿ“­Š4K¥…%Þ· µ Ò,`iû¶¤gI ň¬Ïó'òÓÔslN(-ܸl(X ù»¶dˆ}#šùÿŸ3µªM41÷ÿûí£˜xc3”®´™wO‚ï½ïŒŽŸ%-u  ‰PZ12aÅäGš¥´Ì(Ä"2]żA­‚ˆÊè;GŒDÍ>Šyõæ|ƒÙ’aFÕìÏ›7ï[ßÌý9Œ‚‰¢0.$Q¬yÏBÒæÝ½ï\ßsüÕi\½{ï\QF±»÷|‚‚Gæž~nE bÉg^+D÷ÿ>—…``ðXèF»;Ï&X!8 -‰û¯—xf.55¡ -Ϭ˜:l~‚Âöû7…fˆ2ñÌœgt’EM­¾wßó J ¦Ö«ÃSw¿qùUÝhõ†(¶ÑR4…§ Ê&'B¥Q‹œR}%Þ\¨”QªBq£Õ{ãSÄ † Ì>M{.¿ -&Ž‚æ½3Já&@—h÷ßœ‚Ì(pãå?õú /¨YšÍ÷Ô5äÝœçs’IM%`ô%? j–…k;vÓ¾ïÎ÷-% Â€fîÁ`À€ûßµ ZPS¥Œb·×ž‚(›ìKÑ$g0呸ÿÔoT¼"gI ¼sïù%=jëó\‚ ÚäÌ›ëK~ˆ!à¾ï[‚ä, 9Â,Xâ2p<íµ'¥« f¹»÷}Ë„ $OkÑRä(SÎõ-µ‰äiíI†ÛQTÝûƦ¸U†Ê>Ši¯=ÉP›ǫ̃Qb¡@1A ŠZê  Ž‚(@„`@X€! ü0´˜ò,Ze5‰=´…ˆNg’Æ¿åU«ÕVÀ먖VŽ4ÕC«Ø‰Dž\iŸ¤Xp‘äCˆq„"ˆÏJîîLEbè,s{.öʰ„"®ƒ³öA¦Îr—žHµíl¥íãèú!íà²ù[K4+(OúK¿ÓïÖR|ˆœjã×à„WµAUfè°” î†"m¬1§\zoÉ=ѲÃû3Dš½œO— ‹4m2ì^£Èœ=T¢P¸Ûǵ‘à -÷ÚÐ>‰ÂU“L2e1ié›Ò[òov$xòÒ3¸„Û\¯íª´´a×Ï9P.åJÎRš¡WB_µï¼å]O±5jù‡]؃ïv‰¦†l¢W!;U [‡ZÔŒÎRlR }Ò³gYE‘74XFcÙ*fÝeLØVÏ•ë«CCüd¹¤+:›K4É•KµjØÍ[ÃiÅE¦€Èp‘2´–Fª°AÝßµêN´ÇD+€ŸóAÔî 5zt€M— ½'/ç‰^7EF ’ä´`p-ƒštÿkrüÕ`:xeŸ"Oq…Ûé­¶ÿ-‡|çcüvŠú9ø7Yˆy]å|6u‘,«†ýÜ¡¯Q~ú3£eO¨Ÿõ–)¹’<ön©è%Ëýż‰§=¼7¤Ei RMþ‚@ÈV –úM‚ê#@E°×4v1ÜÜŽ¨3-´3]—nÉ€‚>qÄ7ÞÏ?VU´èæš8errˆÐâ²hŒŽ/Å‚Ml¢C5P61”³Ï‘ÚQ§íŠ\Ýy>Øù3 ÁAzz=(:D›JÁkb¿¬uþÌôa‘‰nɾQ‚Mô™Þz«•®‰'U1îÄ6z)h ™h Ò½Ù%báÞaò¹&Û?Ë9&>=¥úÐ0;Jd4ˆÑŸ:&º·†ªÌ˜äðöƒ Ø…ÞçÞ -YtêŒnˆ¦Ü³ ?†EÐÀŸ£-²èpâòÒÅZ¿]‘‡ðÿÙò%+ °‡¾QÆž3¨ ~Å96… ¡åP+:‡èú–Q•à |@®šUÉûìqa%¥¢,Zcç–kÒ›†ˆ`ðOÇKEǾݳ°G³¹ßþ±ªùù÷쑟Ã(Æ~‘NÿŽN@ОH¤¾­$¸• hÝü A5»Hm.ä °ŒŠï‡.?C´çl篟kK‘©d —“틨„´ÜVÀaëÁp|'E§˜cº¿`tß+N}upæ41ÙŸÛæób凟 GyÒ¢%FpbD­´O\%Qç¢.Žéùc¢04ŽI7R¯ô|lEç1²s‘²êüxÚj$GG½.`À[רt­´‰Ä=m‘1 Ì@a£³£fç‡çúkêhTª["‚J"ùÒM^fk×þEô¦ó.ÛÙ™uFŽ<·+ÄÙÜ®9±ºé•y•‚„Pžýs«5Js -T. ü@Ü|âZ8.sß2ÄŠø¸Š[$Ý@4Y]³š§ãÊéÒ2Ÿˆ”Ô°x—V²ÏZÖ]È´+’•ÎïØb¾.ûc’Ãgædhâ… eúµ2{À‹{Œ‚üäú2ïú–é—:Ù⫈Ôdü‰çÛ]ÊRË$Ø×^j5ÌQáíÓœÿ¥"MçQ¸üæúÒ«AÐÀRÖ½Î%2có<(k}©uá´yY¿¥($šŠ÷þ*i ª*i 02²8¼yî2ˆ¢™X‘Qôn¾¿‚äœ,Ýëüm$ã¤4O_Ìû;Ë4£Â[ ‚2.zµÆvòxâfsïÚË$…Œ¬b­/w1˜ƒ‹{¾ U,ÎùÛ¨HJˆâ“ÖáÈMýfAiÝýk+‘)3WÈ‚ õð{TôæümÓŒMAÆÝüž6)¢f™f„\2IÑTÌ.øo…$„Ôb Ïùó\-#iéþë÷žëu!ŒhÝ¿·Q3Öç<[ló0ö4jÆY´yŒûð4OsýiÓ”Sv¹ŠØÄíûüq‡AÓÀìï}i}´b Wý½q€¾”‚¤³1g1˜Š÷¾”š±¢<žáľÖßFÍè½~O›¦„0øZ C" æ=ã®â8<“E204Óâ^6ÏU³°1,Óéa Sɺ}- •Ë{”†¡³À,æ°~{Eθ^Q„ð/­f¼ìoÌU“Oó¯½ù/CBÄC»›¿Î^æ80ÏDŸw­?MJ*î{ßw›ÍB®Vä@Ù¼°mî=W+ŠWͽ­ ‡b]»Q3ZÜïëÕXX¨á¡1T4£MA0Æ:€ðH -B  @€ € |À I;Z"ë9ôGÆx=3#‡ž <Ù‰¢#C¡mÂIôc€Z·<Ï(Ö½³D䍯ið% Gï†öè–Ðî¹W6º6´1Ä_?«ŸMD&›\À‡UÀrÜ8´q§’:Eb¿€¥0ßYõ6Ì-bz8õ\2 q(ðÊ]! s-jzÝÒ½½Ò84+Ÿ%’ð¸æÝêð -ZœVüOhsm…qè¿ÀB3âÐÊE? ÚbpCÏPPôŸã2ª8´y€²è ŠCCáÐð2Ä9@x^–àÄ -ô&j†÷ fC$ ²Z‡\YnˆŒ´‚ž`öëW™–/€k½Φ:уƺ¹û5ç3G ýt¹ÁAWñÙÓƒñ™Â·× ‡&ó†ösT4AÁ¡?†‹´GäÐ -І¶ý"å ¡‡^®h>æ= 94¬S´oÉ÷‘¼PP±#‡NBª†g/PÉ*W·}%‰3‘1Ú©J\¯©<ઊ™D/ȱBÑI}0s(r«ŠÎÐCE¾†àB&‹ŽÆÀâ«íR4]aÀH`0Q¡.Œ­:œ ^€ž¢ÉD”0FD¼Ýh|âø ,JdÊìÏ@ÙˆÒ"˜ò0„Ù¥–[Ÿ@­|gò+ÁVT}}èCü¨íZ% ¯€Ò»æˆÖ Ç•)u˜'DTå&M-Ú*àw®r?’&â¨w• \O•Úž\D #ý²¼ÿ­”r]Ùßrkȹ¶h:|~A +p1qa>‘p¶³CeåëŸà *lCBpèY¸<ºÞó•®¾©WäÔXÀüƒ•–Àª\(¯¶Jb`.Ápq1[@+ʬ&r>50¶€f×»ix˜ä†nÅÖúÂÿ3uª)Wþ]¸Ð¥[:[ºgºuR èKügR9q -.ø¾YŒßªÃþóv.ö† ås: -ès<Žè*C Ã$èv*hMžu]#Õ>ƒ$èb?DOàðVät ÝÈ‘}êÌõü+wôš˜™šä¢w®Õl&7c mWçn -ÚÝúàÈ<­?ËcÀ˜¶À˜tYßmzî^3ZQ„°¾þjAѾ–‡u¶’HJÅÓsÕl(Þº£4œ‡åî}éô0‰i»{…¼÷Õ p@!û´¾[$ÁìíU¼¼¾”š ×và@Hq7ól#Û÷¥f”X§y®—æáËUP @¨|›Ã C{ $TºÇŒ!µ7aH‹9¬¿Z3Òûtz ’æ5ú³(`‡±ÅòÓ¹£4œû]Åq (ÞÙ^P„ð{O“†Ëæýõ0š÷ºÒ=¶’EԮΥ!¡ÅßUW¿µ"‰ó§E†ºêk\«Ùd‡uyc:%˜íê|™,äAA{ @˧õ—) ¥áLºl¨™ë‹ä@Võ7æ¨O0q™çAl7ß 2Ð`Þæ·Â0_$³a®­¥`àgqX6ïJ=†Å‹“.RŒöÀºŸt™ªEÅiW¿­Lþn²ˆÚ—/G)ªúk›?ËãµR0™,¤Ö…!3檇±_q8D(Þ“î¿›0¤—q­f¼dçKU -F.$—wd_ÎÝd!’ËçÏ¢pÐ7_I4ï/WÍTýìQÒj‡å˘Jˆ†Q¹Ìe?wØ@Í=SÈò]þ­b¸Ì3'YÌÓû«4äݹVÝ„­úûjÃß 2ðiÝaÄþ_$3¡¿Ÿ‹ ¶›?Máp0éô¾Ùc{AÌá¡a®»k2ð½Ì!`5úøK§„¡òqþUŽÅÁ"B¢ùfÏ¢p`æÕmþÛc ó ÙåÛ›4‘ĨÑBˆ¨Œñ‚ã(5 à8†‚€€n†àé$~¨¼vÇmv78ïŒñãß—jFTcyÇC{<×7ÊàŠJfn`hu,oÆCdZÅ›0‰ç3µˆÈWX" âaÔ"Â;DFq¢‘ÐÃé'‰Ôª/ß ‘¢žð‚ã6Ùc“ƒ@ÍÔÜ`PÀHósk†!E,¡s¼ºàBÙñòÃz^B6¥:4Kzn…eYÌ·£ó™ò¶ÐDÁô‡ú0x.Õì¡ÂÖ—Ø^“l¤H¶l…Úˆ„S¥ È?Áz,³¡ »¥,³ÒÂE_0’%.Ýrr,ª áf)Z¸FCf›m¾Ke†Tà$Z¸B€¸zf†JEÕœ½ðt£`Ü9œ²'²a»h,?èqMë³8«¨ìçÄ_¸Ä:Ì.ëÈ[×TÛ¥ˆ+E'gÄ—.W9Q÷ŽÙ»>‹¥uJȵÄ> Tà85.J©#3Á…4j³$75{&B$–ÄqÚ,‡1†GÈ>_W9nÒrQÁú Â9w5‘Îî…íîsâ“eý´rëšó‹Ø¯ªP뻲ï-kš”¢cy) 0QöAÃÎu÷{L(ØÅÀÐ÷»ÙŸjû·myÓ$ACÛ -žê¯¬Îèÿ(вí"t#Paâ’PÐß±”’ЀæuhG¼£z¡‡œ‚YˆˆàùÌääé²Itœ€NÆ7Kƒ'¸,D z³+R§®1|ûX!UÃhEG•×Ë)b¦ZõË„¨æ”WHÓë§gùRêhlJ±ø±JÂdØŸ&z‰’‘š”ð¥Œ?•,¸\L(#á ãÚ¤•þA«¹åu÷Á=O±ß¼ûŽŽÌ*ZÛ©‡)TíëÔbKÇg,ˆìS-õDLce¸ÿÌ'jÕeÔ­Ú)ÖÉp+rPmÍBc,fÚ-\1¿#ñcîklçt®}^i´•ÍYx Ãù±*œ6›¼/2Á´ÌÊ¢±üÒ% -tô&vnŽ€Ì¥=‘¥À( ’q:«C¨(`Ç­Î#в]Ά††]ÅØìõ®ÆœŒÊ³U“Å×^ÏbÈ›+% -ø²Ý$„l,|`î$2çïjH¬+âªz×…gR8ðu¹G#!ìþÿ¥@Ò¡:Ý·GuÇ4cÄÿ{fÈ©·»î Íí=kÑ»Ï/šœù'ˆúÁÊÔÌË~7ìòM+°½d óàt¸)åÄD„òpwƒ3Ü;ÆÙ8Ûƒ4”†¤Ü§;X‘fª€¿=ˆÃ÷7QDÅ„n~±g‚ûb´;s¦j\™ƒuá‘•›éÕŒ©¡Ø2LM´˜^ ‰éÕݺIˆš}Ö³²^ÏjÈIg?MBx×nSc¶YL­†Œ‘³Ÿ¦€¸<üÙšcBòÁðnàÞƒát×Ü´ä0¼AUù_ì‘NäûÍ€iù·G9ÝðßgÍ1¯ÛÜEó¡àçµRt<äÕé®9iअ‘*ºïâäþµZ,&•?Æ ÙÁͰåß”JðO’ˆ1Æý8‹æÇ{Ö¢ùœFÓÁvN#N7Ç!Xö㌲Üß¼êªÈbÙümµˆQëo¢È$c¼ä&¦’ùÍ )¡{×ÉBÖ¢‰¹æ¦åw÷`â2qšã ’õßZ‹Èk¥èv×݃‘‘–;§‘ ’ «~ûæ¦åÁrØ;E)‡rpöH -þ¯•ñèx¸»³HY»µÿ{$õ}nŽCßåèð?I‚ò¨ÐF¤¸@(&×Àp0 - @@‚ hšÍÀÐræîáúIÂ^\ö¹}ÄxD.ûZ^?tƒ&œ4Ãã}î˜/®±S· ´×t º„Ý·¸n{nq™U—˜r‹ëBžŽË€#·K^Â^Ó²gŽŽÅ(PZWB•"Mî½nn€4q›œèÇ´ef‹·7%²efçò’üÞ&" 5+õ·‰Hê£j¸Ó W~c¼=6Ô½5"D>¹%¢ü^ڔɈ´ÕD"‹&:Q²àðå¿Ö؈p)y›ÙÐXç[#%5'£H×eù1ìù.ó·iÒL‰€@¶QRóá˜í±ä¥Þ'Á2Òaá–çš[gü«bhœ 0—©í„VWãÁ³)A 3Ë&?çöÈ«f³¥Ñ“ó¼\øG$’™Ìé ‹¡ € •O†ÖlAÔ;yÅ_f ªe’‚€r‡Ú·SåéDUÉHO.œ$ñ‹}YU -Õ§[¡1pf×–&ƒÐ§NélÛðŒîöà=‰¥7LËûˆPÙÆR+<ˆ‚Êë¯8WË$q+#ÓØ ñŸ’ÆËÅ)êŒôîk´Ž”2vJJ™¡ûš»îiì0Nãc.xÂXýÂÝæêqn»ž&b?»¢¸hd IøcáT¼é -ᛲôd± èKÑ™ŒÆ:“Ñ&R›hYCC&9ßu_1_㻕oã¼:•EÛ|’}á‘PøýÄOSÖWbTÚ¾Ô¡äS<×Þ0 €¼¨Ðl„H1†w€ÈIà° `„@€à ÃXŠ!†$‚ snWˆˆ9o?§6ëŽW[¹+G9'~Ltgã¦vy~@-69Áü¨½ -‹$ÂÕ‡ëc‚>&%˜H•€¾d7³•ä;CÐdEÙ_6u¿pE%è7W‹±w¢Êá‡P‚ÎêæÂ/\Úÿ;ÒPl’ €“ˆË©NÍÑUˆ! Ökl^ÿ›Bö{ s0Áã²ÊÅ úQÒØæ¼ñ\ÍNã$(öÑ!·¸Ð«[®^LtÀhH˪æ9§:½‘j @½1b–F¦w+7Z/Ò_+Þ„ñ‡!¿mÂõüĈŠ+"Ï{M€_´S¨aM*"=láPû-±H_“ܪwèX2úÄŸ‡Gtl -ÜVCh7̱s Ú†Ež_o?ÚOÅÞ.¼Ö8—¦ 1"¹ÚCÌàGÔŠ GКBªà{W8‚ÎÐyð»áz–ª -Úˆf8‚>É»Ê>&`8‚V$Á#zb‚ÅÞÉmBcvsåw8«ÚŒ¬–S²*xÝ{3‘trÉ |mdòŠ-”—¡(Áà}Õ¨÷]]ÜENæƒÙíWuå/ÄXÛâc$ ½tou5‡kŽF6¸R¾¯\‡É2ŒIḬ̈“‡SÙ,Ô×^l_aª —ËjWLüÿ9Lüÿ9Lüÿ9Lüÿ9Lüÿ9Lüÿ9Lüÿ9Lüÿ9Lüÿ9Lüÿ9Lüÿ9Lüÿ9l^`/Ø2WŒ&CШ԰4æ0nŽÊ"ªQÄF©èQUÞ“E0sx‡ˆ:::?‘ÇÈgN¤hþZBÀ°ú‡Â¾Û!±Ú)»æd¦ú ‘ÏL¥% /ÆtÂÙTïm.蔀ð›.6@"R ÅÙ«äÎU -˜ ›-ãP¸ürPÂYüÀžÅwM ·«¸G-Ž*>µe–„£…áʼn}$|¬ù\GÅΊx+Å\}J hɮӼš~®@™xÛlÚÞñ`_¾‘R+–Œøëü³dç_q¥âvŒ»[íÁ„!÷»A bf~7(¹!K€lß&FQª_¬a°¬[ z7_ÆÃ®oÔBà€Ë=qÀ n*)Êv?#D÷„$º¼I ‰ºkÑ’;+aʾËB Ä}Œ5 ýœ½ëv.Г,IÍúÙRNgJÇðWÊLw*)¶œ·I²½k"waÖÝE`¥óE€Þu³O"DDšgkàÐ-ÿŒí³5p®›{aw÷‚žì·”ãعRŽ‚³'/£a·Õó,.»,8Ìî)1Û?Eñ›ÅÃÁ!û9ëÀ M§¦e´(41–eà 6—Ð0dø¹ *p]«ç5š÷ IÐÆ2Z*õž -Þ†û&Y8ÚŒ($Å· …ëñ±¬3‘ÙáukAìVÖqæÐ0Ö"ŒS©©j_,BkAïz­ž÷7‹PQ"ÌD/µz¬ÔDgŽC<\ŒW%‹î'$ñÜÅ(üý–9oSó¿MMîz húWÊyZ¨A²ª¡ Ä$í`Ð8ˆ€€` ` ŽÂ@Ž)$Bà'®ï)  غ28ÐÆ“.æ·+®Û -šá<–¼¬l0í..íÒo롆ÝåÞz¸~wqI*$[ÔÇ+âr{Zu÷¸’BQ\ -+g8 ³¿iÍ.–†kEu¹&Ÿå­x+ËkŠöÈ$¿DW*w+é…‰àÖ;Ÿ  ˜wìzˆ¦{3šÞegK‹wƒèjí(ùõ­,K¨»Ârw$°÷FrÇ­p"¬8™rg}3ÛiÓÙîÍR 0`§=)iÁîe–§Öll@>¢Ž9޽gRƒçŸÒ·Õþ_'#‰›¾ƒ€TkKbÐ×½BXÄJ‰/jÖ ;é]Äv¾ ØLDƒÎ@‘lT‘ŒPéò~ÖßEݕΒÃQös”,¥IÇÎäoC2Ñᥠ´Š_šæë»Ÿö[²4dˆ‘.yÁ-…¤~øFÁJ ˜² ¢7Fnf±¶X54µfŸ½ëˆhû;P ?LbH'Úü}‰‰ƒU -¼ì\5€æø`§@F»ÙÌ.óZ·;§B?n® ÇkPƒ®„Y¼µj§ÄyødgWƺhZàj¶ç#B7‘ò3û ÌÞ/%YÎF -yHÁ\®ŸÁäˆ<·¸NDÿBô -ý&´]–ý”Dܹ1C -jI0¼¡çˆˆ&^£ø›'ªÂm7VbÀ­¹çv°Z’‚d ®ù m4¥òƒÁjÆ}>„à…0ôC;8¹M-\/CÛçð¾<„#.oõ\ÜÞì"­¯¸qÕ'· û<¼ñ%äø³‰È„˨ØuN“±¢›“JÝO€Axri–ˆÝe‡U×±ê¥ãÖ¡±t—\¾w¾&5₞,E[äšïK‡v«é‡ÜyKÁ}Ñ£OHºÄ’4 áªJj_ÓpÍ Pî¢nˆD%V¥q N¥cmJd³b çî"q¤g!ª?Lå£-À”jfgÙãÀ9ç0¼udá9”Ñ) ªâŸLŠLÀ`un JüæW”ÀÚ–ëÃ2 Z~‰ŒŒÄ~»‘>p{I#f˳[Pbó J`;å5”Í8› °S¡çÝìþÉdàtRd8ñ˜Ca¿£ç\dq_Q¹ sãål©…²=•Ñs[ÙV΃δ7•[H¿ŒW¿/ii¨úMe¤×³é<碫ßB¯²Þ—ŒÙ;æP`ŽítÈjÜÁ%- -ãJ5ʬW§RüŒ³ÓÈ7ò@¦!ËY«š÷4Jü–´q¥œ‡óÕøBD‹Õ¹¾cå%L“·G@`!¢QÉ4 ¤º¾#1^§óKeœ™ßKFF¢÷ëtž»®×é¼È@Úo+ç1% FâY‹<ðf§2V”l.‘±Ò¶ÍÎF‰x*£oNeÜ´Z„ 4׬h‘“nÌa¡Lj]–Y7•Ì3³¾Ô $<0[=½Í'``R¿%åÁúµ¤xÝ×  eâžQÍ£ªF5OZ÷%£‚måxöKZ0®³y9k•ó<÷%Åí¨"¢©â á…Á1ˆAÙ€À8† € €!‚‡¡F>äS NAmUE"¶Êƒ—üº rýY被ßܪêã`M+†¥X}(©[ÝÇHêYªN¬ïcÂEî°&ôâ<àW߸7° zr㽂ZzÆ4jV:ÉÆ«á̹Vœ­'®äpìÁDò À8£¿›Š\£ ½ FÁ2à§ðV@¶MÓÖˆס1í@ ÄõáýdA—èºt ÝN zÐuõ˜aC -úüu¹„Ž¡³‚N5KÌž‹îNp߉—56©$ñâë@IèÐPCÎô &À€UF‚0Óܪˆóã„Ä ïŸ•rXɳܜ7tÏþpšpHzµDüö¼¬[½K×ýÞG{wt•‘>öWT2& 5 -DÈìÊR¸„¤PÊ~FÉ›f£©îA,»² ,c>”ÿ(EUHãÀm– E„‹÷ôÇýysé#\Àn6¡Ag‘‚leMéCÝØçcê¿·*YéYh±TùYnïô¼=\xh›¥ UB× ZŠË< BŸÜZŒªþ…/÷~æ_.Ð|)#q}æTXƒvD‰ÛÚþ;N—a³z™gD®D<XKs ®+V+NíUJ‹·÷¹Œ¯}m¤D¤ëm#‘Às)”i›#2\Œ#KÛH$BÊÆ+ÔÓM‰ˆm«P"¾¼s½EÊÛ¦îúŽ´ÛÐZ°óŒÈL\ÈáF-¢·ž”…zhQü`\þ›œHŸ˜­oeW\%"俏ÅeQ…2?Ëp Œ…x ¬< -xÈ5B¨ØÜÒH²ÏwEK%ñj"Ö‘Xô0Kœx¸¨‚6ö&f·8;?.(58ˆ(ö¯­… ØÜì¨[¸0ra€j¼P‡‹vwâÝé“j¢¾ Ì ,*ÊNwqÑ$©ÅÕç­î• D,¦6§€èÖ05ñ5;@ ÂÿAç;!|º[²Q’ ‡ažž¡%¹ËÍ@õÙ§Üf޾-#itsüA´ù?N²»Ü»ØzD˜y«cQ›šÍ-çp®ð³íϵ˜EÞÿA -Í™Rr«Zׂx ßÝÞÕybQCõ¶\ÃÙìólVϲU­édQØûvŽÃÄÞóMµˆ1¨X'1ظ;þI³®[ÃùÎ+eQð®~0òXS÷FžI²(,4ëëA]>hA¨û¦ʹ‹Ùd˜ÐÝõÄ¢¦«9SJÃá,ïøsg[9@|çÖwñý,E“ûæ(¾a&I ݃ڼ/NΠ»œöiwÈo? j -÷N Cv–oK¹G@Á6ÞúY -æƒ$œ)£¤ˆ Æ[¿JÁŒšc0òHJ ­ÚÂ`ù¾ŠÊ«wä 0×£&mã­^¥`²Qw RÙ¼wûÁ b0툽¯wÐÄÇÕ‹ 0ˆù®À²,Nt…[Њ 3sM' g‘PõÙ|CL’tw-j“D¨ÔŒÇIÃpt–÷^Pƒxt5çÚ=ß÷Ž?„gÌúz•‚¹&îürWdÐDà’z·ÞRFÉ\±[×ÍápüEž…êÛLš˜7/¨©J‚¿³¨M2AÏ *T¬ÖukzÇ Âs`Prf“aùÍ?Ä&9sï´ Bg%™;!1q¾à5É]9Çá°,•Wß‚—$Å̳¨Qβ,R©Ð· 6É ÕÏlr–Å0€ÐÑ¿SÂp8»71ÉéÆÿq{ì½ÿ´` ¼{ß -$!™÷«WAƒ„ÿÕ³"‰…¯±˜Q‡ë³o¿K’Yøúg6ÉÈò*¾a69T&býá%ÉH¥â­ê ¨á‘2fŠÌ6‚”ë 0b€"@!€À!á(C?gA=Õv-1Еùrµ<Ì¿CäÍC­ãÓÒÅù!kùa‰¥˜T²èšzN0´È³&С$YtØòôéºv‹UÝýšÝÍzvÉiù©Ë¦œÌ¸8`D?³¡z/µU -6Å?8-½/zÒïmw<ИÝÊŠq@Qx!¢ÄÜo¯åˆØîC)ù ˵®„oi0±T»Ç<C§(Ú›Y ®ÔDžwv¯ 3M5•àjåü³ã¡æ¤Ó‰“1”KÕÏþ±:+ømëMy'¯ xq $ -‡Ыñ$Þ‰ù„9‘•O¿ToW CAf4EõÈhÂ6¸*<4 DÈZšôh|3kŒÐÅžM±@om~ЭúF±³èæéé» IÐPúM”YäE4‚æÊ‰0pHß0Î ŸÍ²1;S—ÅéN‰ O˜‡ÉîŒÐT–n4fŸá©nBGjRÃIO°Ýg<ñǰ}桘<õÞ¤ãT…ë çAÅqÙƒO…>†Ø2ú犋‘„spÕùP ËH6W™IT¸d°i. Äb¡Â]莡ÂU´L`pcdT¸ü =*¨p¤•Eì$Ÿhã -0ƒ‰óž‰kûsŠšs¦ô 1 . I‘«À¦p•Òhã -ÆUôÑV^ã› qYÌ(g›¯±¨Q‡eÁ&çõç³ÉѰ酯«ÞŽ'60ÞñÌ(‰9ïxb“ƒ…˜ó/ɰWïšš>¾cWEÎÖÓåUŒm8y( dóÞ7Ì('€‘}ã -b #™¯÷ ³F ` -†lÓþ»H$+÷m8y ´£ˆtãý2‚9DU…þWïš<µãòè?õ,É ïÞXœ<…ƒIXÿŽ•*’róL9È`uâ};·$½ª¹¶ž%9ŸÅØ‚’Ç@£™ï³É‚#€)$1sŽÃ½ïwMÎÌý^“ä_ÅøŠÅ`X…~Æöæ|ÃÉ$‹u¶_ÆH4h³Ö@+9áE|­_¤(ä¤*k ­1­\Ó‘V;:[Ps$ñ·Æ”ùZ‡Z#Ñ42Ðæ«gMðêóÖÔF -<(ó÷Æò`±ÖwN !t#Þú2‡Þ¬1­X“³,5ë\½‹r*ë|AŒ:,®¯f¹Jc …6ç jD“Íß;ÛBFN¼NÄ›ogÚ+vÑ|5sžë}HB(óê­m89ˆœéRp™˜EʼnŸóÓ -ÖH0™Å@4†§‘yô¨jó´‡BB(¡ÍSc ˜e0мÑRæòÆÏÙ†’È¡"\X¯?Í@!ïXÁ íï­“« V¡7cR Çâ¦ýK?Í@a8 •‹` $½o'gQ¦2~Æ5”< éÄ‹Ÿ~’‡B†ç+ÖtX– &¨áBffFf±@…“<€IÀ!‚€ `pºñ ˜µ \ªu@0 ™Ä °&ÖÐŒ¿OÚzƒK¤0“[åžÚäl@Ï3(伅A‡áÙ 3â1 A#(…™@…dEö t’©H–¸ï™— âyVQ¤·H–†‡j nï)ùÏñ §ßÏ×"Ù þ­ Ë1º¶3¥X¦/.A<µ^pB®À•bx -oÏl¿Ê]㊊n%x‘¬Àµñ·½Èu6²5Úæ_‘\WIˆó?ƒÊI\YB\†r‘+{+&ÁÈ‹]‰<‡=¡ÑRäš‹\bLᕺè#EœÀxq…³Û?5ÀÕdqQ8»ª]DIÓŸËàK“g‚’(9Yµ+Ð?ü_·ÑAZ^v@œ:KíFÿÆ…€ÑíÆé;†h(Ñé]$’ÈOX&2 -‡‰Èåô2‘r'ì€pbWUÞDª<ú%5=†~¥ka)DüF‘ † -Q‹`XŸ -ºfÃè“iôzêúJh'Çu<ÛÃ.ˆ•w’!‚Ï/¦ëòëYZ ‚Bø¡ðóWÓÿôÐ;Èþ0ü¤€ˆû‡‰¨À©¨õü›éw!Õ3A¶gÝ‘ìåUeè9¿f{è–—)á¤Ð`Öcð7ëpË£sÄ>úAÞw öI-ëXðõ*å#)MpõÓ©)~cè+–uÏŒµ«î϶ %!‚?ú(éŽ8!ŽŸ -pJ¸ø‡¡íy’¯QzlCK% efÙÐx¸q=¹ÐË‚:qãz,:_ †Ÿn"ºÁÁF1†õ`ñÐf?r í^).4ý×<4lÇs%<´ö{èàÈ`Ù&DžØ»¼›jC¬¶~,x›}J–?ŸJŽÃÆ›XµÔ‚‹7½Ò”ÔWz‚ä%`ÊPíq’$m†a&cÕFqÜ™ =?ª$2—Ïúàx€|½ólégEŒRyòâŒ+â*jSƒQÙ©c“¹)á Q‘à%)I‚x ‰{Tó^KŠ›#aQ ë£Vs®/ý,¨1àDÒbl룣KY ½t«½ø–Ž‚ƒÄ»wÍ(Ó&’7klŽŸ1 -&? j÷¸Ô« Fñèåþ3 -å‘_¥#iûB6©Q"ìanÿ½c@y~©G)@ÐÑËÿù·}`R£(KÂÔVs¾/­>÷z]†Ô0uÔ«ŒY`Íýæ@‚½µ½ -Zÿ?Ǥ7%@{˜™ó}ɯj, &šÛŸŸ_È&1J£+æçò‘IŒbà(pãåþ÷\¿ -ZÞÝ{‚èåÞoL?JˆÝ½ïK=*a9P}$æ¾ï$WЂ–Ä -uZe»»ß -Änÿ;¦œ‚cP}dæcêM xdîÿs+bÐ’ ,p«;Ï5´ åÀ%Úý¿ÏWXóæÚB4©Q”F£¸ÿÏï¸)0 ÛhõÞ˜ü(—£ñ$’ ãD:eàXbÍ{çùV¸YhÁfM8Ö›ù—MÐ-!_6A -æ8.Nû2ä ’äÀ,"»!JGó‰¢'‘@SŽ%×»{ßy6)˜M‘"¡€ÔÄ›÷Þ!ßw6i¸Q ÆÀwžy÷ÞólÒÏRX$ åfZHÍÌýÿ¾QF3w¢´ZÝÿyú})hI‹„â¡‘<µ‰5÷EæY!]§ß–~—Â"‘àÐBß7®!æ¿|pÄ(KcêF3óÿ=ÏæøY’"‘X µÚŸ‘ÓïF¡¼ñîþCmj0Ô&–¹Ÿ‘È︂WÔ(QåQ»ý÷]Ûñ³¤'‘$’wûóüz1 Z£ÜúÖ,+}|Ü–]“´p†Y Ó8 -iº2óDZKóR‘Ë,´h -…qáXÍ«ûï\ckÖ1ì4ì²& Aá4Ë!iœ‡9ª+Û:q¬¥½šwžç -T'’æÕüü}g[R±Ó0Ë-œ†YÊÓ<ŒÈaaZ'öd4 ¥±pm ¤šxwßv9"†Ã’ÆaDÓ¥u"--Þ<£$sH ÕæþklKúð´k’²N¤Õb½»÷ÿ[Rä²BšXûÎõ5©Øi×1‘$VÖ‰cµ™ûF"çï—4ܪhÁ’'aÁÚøÖ׬cÈaSÄpD¢‡9®-¤¥ÍÛÿó<¿¿EÃ}jsÈe–#Z0ˆD9.Í{ïîÿÿžë[Òp£¤sHT™©W›5Z8Ë!Y†DeHšXsï¿Jæ=hyóî½+D2aHÚÌûÿ¿ólëjô$GŽÕb­÷ÞÛ:2‡DA4‹òj¾±9fàhb½9ßùš$Ü,Œó?¯ã²jI8`ªªÊ¸šßÛ2쪞ÇY4,¬óD¥$ÙÏ`À†Ïóøø¼®ã¸MÃ(„Çi¢ª².,Û@Zæœyÿ'ƒ € ,°`Á,X°À -$€À ‘±­oËŽÓ,EÉ´­óÄ‘’µ–æÕÜŸ†­µÖ{ó~FNÎ÷曡¡¡¡¡áô¼c4#Z¨.­ËYï½9ç‘Ós}ͲV’Žâ÷}`‚ ~ßçyž>(Yk­•$I’¬µ–¥y3÷'CCCCäüß{Ÿ¯j!b<ÍrP¬lë‘,9ç|o1Æ_[Ò˪(G„ P<Š…âyB䨬뺰ló¤ysÖZkÍûyž‘ÈYÖQô¶ -û‘HÄše%)Dô¸mÛ4†a–åà, Ó8‚D]Ú¶q×}ZKÓZ¹ìª ÈQMÛ3Æ.‹Zˆã8MÃ’¥iÇyÒT]X¦q߃4íÅz÷ôámØ$1šå4 Èaa\—¨Q¡BÈ™ Ñ „9‹é`pq’„ˆ‚! B €AIz~êêÆZgD™´÷OYÂa䨖o‚´¹]m8·$^Ø‘ÉR?àluP8®â|9à$†N‰²u1wŽ»ûVVq­,òIì±ì2cé -¼<ÄÏÂ%D„…¯2³@cÃ{sc“žh¨¨ñ‘4 )Ï1½±Ü²¿ÑùȶÊòægÏ›/© ò¥#±Ã(•û—mzÖàÚTƒtVèð³kC -ï¡và: ‡”P„þçßÀü?"½bÓ -BQÇ×"y -(KžGèái@D}ìéáò.X€˜•ƧTÎÙAi{í±”[ß -¯Xœ`Hb‰zÈ>W‡g2«ºt*gkkÛpÓªÑÀïž{ôÕ”¢ÇÍ$ev›JzÛ*ζzÐV–­Y ÈXoîgÈô™‰Öc‰q“!Çå¶L<$* ú%i]?4QKJ§áG°£r/‹xY¬n£âpìyèB’ È›áÑ4Ú?£Ë),¨j¾åî€z~8Œ1\¨Oéã“—¯hɬtÐË%k¥wÏ0äуô<¼Œþ±ˆ‘’\Æéˆl’vZÍ:@\õ‰+’¤l3ZocJï÷%P—ÝÊ‘Ÿ”KRïÂKY ”5j·nkÊE×”ñ¦Þwt•…kÛ »‡Í‚t´¥ÜÈŸy©ºÚ’9-àsáX4 €k}VfQDÓð@îu»k¢m#<é¾A:w&:8ÇŸ¹CÐ¥ÍÅ©ÚDg@`wzüyÓ|ñ”,šífèÓ&A£“UGðÍ0cwûë³4Lr&ú¶žKbjÓ¯CŽ"h‰t>E«¡Ÿã­1nÐæSÏ¢¹‘e½Ù{ü¬möó$è¼gѰEt y×wØ[zöóLÐ!Ã}âwŸü÷–öóU†¹\õ@«‚óï ôsh Rô "šÅ·«uÁD¶·À~aD=¶¹*.ˆ„Fu‰"úâIpöàzü<â.¢"­¿Ÿ¦ÔŸ)‚ÒÊÍY<ç!½ùùÊeßý¾”%& h4ŸüŒlÓ¾•€šNM¥ï¶€Ê$›¨äJlÞ¦ßëy?3Š; R¦AP$0ÚëÕ`Úåäºáq[ÑXfŠl{ Í´ª®Nnˆå£/M19î²Ívkh6°Oô±ó¸v‚#bë’Rñ«3‹Ür \Q)´µPRëý!Þ -U¢;6óÊC…w}^ªMPr?$ôC -ßU‰ž×G5‹™¡AÜ#æ˜|ò!¤æÙLtLňø»ßlZ(ÉufßÌË™ @VrÂül/PËm¹'[¨Ùs¢P‡¶dA8ñ߆É*´1˜- ¹¹þ ¬¯; ¿‚‹rÀÌÑ•}¼ D›S×3ê´Ü°î:ûPKa¹˜ÆT‰_#×:*„èæ_[ÁôWOÝY…¹,Ï`ËEýjùÚ¦ØúƒëŒ†ah„æï?sÔb,´2MÊk M¢<zLÀ¥÷ŸÙäXá{M0 Ýgðþ|9úhd7pKüÿÿÿÿÿÿÿ „H -µŠI$É$¿t«ÚˆPÓX6Ô´P¨&½÷ÿÿïÝ來Ñýuà (6‹Q*© JµP!¤nnȆëP\××œÍ ©© u±ŒJnjjnêb‘ -»?m{×=·£ÙÚ=¸n[suêh>çç¦ýÐU}ÍvðÕßùkª¿Ž&„ÜÎùƒÝ>vt1JêSQG˜PÉGþÓXLâi,ö4a¢%Bbâ$]$ÊAVT$‰‰å‘pÅpdò'Gb2É#wÂãBŠh¡˜ˆQӚśfa×P4Åk,Äq‚" -Ȉ‰„D¬"ĆH‰0‘è-&éxqäe’¨*Be,Ò$ñÈŠ¹9Eäˆ?6/R×LÀþ¶è¸-êx‹A2ƒŠSFª,DEEOc±Oc1*ª."š Ãm°¹Ý{ÿ6פóÓ×ÚokÜñÓïæ°ák‡ÏßÏÿ­ý ›º×ÿÿ{îp7¯ ásËÍ9;÷ûZŸƒÛýø÷_ÀbIêb°Û>gøÝÍQ×HܲseÞv§-7ÙV-’ì§Î?¿s6_çûÿöëM²¨Q½Ah@Dˆáé(dç`,Iqƒ@ÈA‡À @@€I4$bFyPrÂðÀ˜i­rÖ…$¹#é”4öÝ£Zl &VYV’K3+3¼ŒÆ´qǤ4X>ïæfìžòïE :ÜV¾áŸy 'h…šèÍö«™c§>6£;tIyÉòœ ÞÐr:LV¢3bPÔy ©[ ð -.y‚¤ šh¥’õñP‰®N#ðØo€ûã‹Gþø¾P‡„7¤žË -~›Ÿbh*,Pè&¹×ÛõaæDüÔe=ÕÒ¢I®‚ÄÔ4ïMr®°ï5æüj8à LzËÏL²JáM·H»"_G.•ýý>J@KUêtK‚Ú G „\Àyç¹{G±Ù„8É¡îôVV% -:h‡t‚ƒê«7ré7k‘i°gåÕ×Xn]vÜ®5ö[ìŤÿzê㮓B`Ê%†Vúì¿ ¿’g»ÅOªìÞ‚X ÊçTö¤8‹Š†åìT(1£)ɱR)7ÊWò¨¯scÉi US k5—Ñ?<ÃF„åîÌKoó’ÖØqX†Av¦¿4b¬³’fãÏ&¥“¦xQ±êËþíPÄ6ܘpîùEƯ*Û·dؤ;jí&oµ¥‘z‡Ž.À?â²zM|'ŽÓ¿šì-¹*.±)VÕ:MBÖºû”ð×áã ÁKøªÛ@Õ’¿‘ÄÀIà %;NZrÀn´æpšBÄœk¼"ŸÕ¼YÜg6á¹ìjIË%"s€à ’ºSO¸°®2u¸\!Kýœ¾¿ŸÒñ,c™+ʆ P÷±ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¤Pÿvÿ©:XìãÿÒT׊}¤À‡Õ©bVðABuªØG"|øVû†¦ê‘bþðAM½Mìã)>d¨7ˆ}(ÇuH] xÿ,Ó? ð_.öQåüg‹}´ùÃþêf±D_-ö1êÅ«³Å>vý¡uu³Ø‡µ?H®Îûˆ÷‡»ÕÍbÿµºYì£åvV7‹},ýCÇê`±·ÈWÝ,öÑøÛªƒÅ>bÿáVu­Ø‡OW\€ÿ.üÑWý—‹}ŒôCQÿåb5ý0Ó¹ØÇQ?„ô_.ö‘Õý—‹}¬õC?ÿåb}ý°Î¶Ø‡d?Xó_.öqÚÁüg‹}ðö+ÿåbÑýpɶ؇y?ò_.ö±ßmüg‹}LøCÿÙb(þÄ#ýlxÿ+¶×ƒ -?øø/ö‘Ã/þ—‹} ñˆÿñbWüá¹ØG?ü÷_.öÇðýÇ‹}òCxÿåb™üðܹØ*?÷_.ö¡Ë®ýÇ‹}$óÃgÿåbÛüÐØ¹ØG;?ìõ_.öñÏiý—I=T€ÿ.ðak ÿÇ‹}œ­ àÿx±¹Ôû_.ö!¸sÿãÅ>W í¼ØGç -–ýûH]Á¯ÿåb¸+€õ?^ìƒx¤þÇ‹}L¯ Òÿr±ñú/ö¿‚;ÿËÅ>øÍÿx±~àò?^ìcƒšüïO±,€ÿ,Ò*áÅZU°û¼ØG® -^ÿû(VÁèÿñbÑ*¸ü?^ì£[‹ÿÇ‹}¤«àïÿx±zÌý/ö°‚³ÿãÅ>V°õ¹ØÇ -˜þû@YÐÿñb4+ ù?^ìh(ÿÇ‹}0­€ãÿJ¡g<x-Úó¡@cðûˆPÁüãÅ>:T°ÿx±Á?^ìCF6ðïûØQA üãÅ>ŽTÿx±)TÀ?^ìãK ðû@SüãÅ>èT@ÿ¼Ø  -Ðÿû`T÷ÿñb˜*€þ¿_ì#TñüW,€ÿ,‡þ‹=à©ÿ~±@Îá/öѨÂ6üãÅ>,U†¿ØÇ§ -ÉðûXU¡þñb´*п_ì£W…UøÇ‹}$«ð ÿx±i,á/öá­‚"üûÅ>ÎU„¼Ø¼ -xðûàW þ…Óg4x-€÷ÁM^üûÅ>îÄÅ?^ì@´ø÷‹}$¨ðÿx± ¬âß/ö±¡BSüãÅ>HT Š¿ØG‹ -;ñû°QA&þýb?*¤Ä?^ìIø÷‹}D©pÿx±.â/öa¦‚@üûÅ>ÞTpS]$€ÿ- Ø¿ØÇL¡>þñb<öø÷‹}(¼Ø‡ƒíø÷‹}\(ˆŽ¿ØG‡‚åøÇ‹}˜(Ž¿ØÇ‹‚ÜøÇ‹}à(€¿ØG‚ÓøÇ‹}()ðŒ¿ØÇ”‚ÊøÇ‹}p)`Œ¿ØG™‚Áø‡Ÿ Ä€ÿÿ+ÓK›üãÅ.É¿_ìã/ù÷‹}(P%ÿx±˜äß/öá#ù÷‹}lBüãÅ>xüûÅ>$‹üûÅ>…ùÇ‹}0 -òïû ,äß/ö±4È?^샤@ ÿ~±A¯ì<`àôЪ5ù/-“Ï^ßM¾IËä××_S¤eò÷ë¯É×IL>ý5ù1•©¯`ßM>¢eò'ì¯É´L~†ý5õ)•Éÿ°¿&ß§˜|ûnò5ËÔ±¿&_Y&ÿÆþšüQL>ý5õÁ2ùFöÝäweòŸ,ý5õ=3v­´þ>¼ÿ:Bða°>¬É)eò!±>¬É&bòA²>¬É‡!eò³>¬É‡eòÁ³>¸Éeòá´>¬Éeò¡µ>¬Éeòa¶>¬Ébò·>¬É‡ eòA¸>¬É‡ eò¹>¸Éeò!º>¬Éeòáº>¬ÉŸ‚˜|¯kò¡¦P&$æ_ìÿ<‰ý°&jT(“&õaM>¼¨P&XêÚ|HQ¡L>ÈÔ‡5ù0¢B™|À©nòAC…2ùTÖä… -eòá¨>¬ÉÊäCS}X“*”ɇ©ú°&T“\õaM>ä)(“bõaM>Ì)(“hõaM>´)(“nõaM>œ)(“tõÁM>x)(“}õaM>`)øP]Üÿ;S*”ɇdú°&U(“ÏôaM>ªP&ªéÚ|T¡L>lÓ‡5ù §B™|§kòN…2ùpNÖ䃛 -eò¡>¬É4ÊäÃ<}X“b*”ɇ|ú°&¸T(“ÿôaM>X©P& -êÚ|€R¡L>,Ô‡5ù ¤B™|ˆ¨kòH1ù QÖäÃŽ -eòaòÿ -Ô;NðaM>˜«P&êèÚ|W¡L>ìч5ù ­B™|¤kòZ…2ùpHÖ䃳 -eò¡‘>¬ÉdÊäÃ$}X“Â*”ɇLú°&xU(“ŸôaM>تP&JéÚ|€U¡L>¬Ò‡5ù ªB™|ˆ¥kòT…2ùpKÖ䃧 -eò¡—>¬ÉLÊäÃ0}X““®üÿ<†*¸QA™| ¡kò!FeòA…>¬É‡”Éú°&JT€&fèÚ|QA™|È¡kòCeòá‡>¬É ”ɇ"ú°& TP&–èš|hPA™|p¢kòá@eòŠ>¬É‡”É-ú°&öU(“`ôaM>Ô«P&ÌèÚ|xW¡L>°Ñ‡5ù®š|èà¿Ô:óaM>ü© L>pχ5ù§4ùð=Öäƒ -ÊäCù|X“p*(“ëóM>´© L>¸Ï‡5ùp¦‚2ù@?ÖäC˜ -Êäƒþ|X“[*(“ôaM>T©M> Ї5ù ¥‚2ù@Öä“ -ÊäÃ}X“F*(“ôM> © L>`Ї5ùУ‚2ùàAÂÿ¯üÿ<Zý ¬‚2ù9Ðäñ -Êäå|X“Á*(“šóaM>쪠L>€Î‡5ùP«4ù0:Ö䃬 -ÊäCê|X“¬*(“¯óM>¤ª L>È·5ù0ª‚2ù€;ÖäC§ -Êäƒï|X“—*@“ÁóaM>Pª L>χ5ùਂ2ùÐ<Ðäâ -Êäô|X“…*(“6ê -ì;§*Hškòaeòái> É‡„”É©ù°&VP&°æÃš|èWš|ØškòA_eò!l>¬Éz”ɇ³ù€&âUP&ÔæÃš|XWA™|€›kò¡\hòan>¬Éq”ɇ¼ù€&¾UP&øæÃš|ÈVA™|œkòaZeòq>¬É‡f É‡ÅùÐÐìÿ;1ð!jeòAa>¬É‡¥”Ɉù°&ŠV€&&æÃš|ZA™|Șhòágeòc>¬É‡œ”É‘ù°&fV€&JæÃš|€YA™|X™hò¡eeòÁe>¬É‡“”Éšù°&BV€&næÃš|ðXA™|è™hòaceòh>¬É‡Š”É£ù°&VÐûì;þ°,Öäƒâ -ÊäC´|@“‡+(“ÔòaM>®M>\ˇ5ùà·‚2ùÐ-ÐäÃÞ -Êä¸|X“u+(“æòaM>¼­M>¤Ë4ùð¶‚2ùÀ.ÖäCÚ -Ê䃼|X“c+@“õòaM>€­ L>ìË4ùе‚2ùà/ÖäÃÕ -ÊäÁ|X“Q+@“óaFuüÿ<& -ÐäCò -Ê䃤|X“Ã+(“˜òaM>ô®M>lÊ4ùл‚2ùà)ÖäÃí -Êä©|X“±+@“§òM>Ä® L>¨Ê‡5ù°º‚2ù+ÖäCé -Ðäì|@“¥+(“¶òaM>|® L>ðʇ5ù¹4ùð+ÐäCæ -Ê䃰|X““+(“ÈòaM>4®@Œÿ -Üÿ:Wñ!K>¬Éþ”ɇ/ù€&òWP&ÄäÚ|˜_š|(“hòa~eòM>¬É‡ö”É7ù°&ÎW€&âäš|8_A™| “kò!|hòáN>¬Éï”ɇ>ù€&¶WP&åÚ|¨^š|”hò¡zeòÁP>¬É‡ç”ÉFù°&’W€&Êã_ ÿ<Œ+@“5üP&LäÚ|xá4ù"Öä ?”ɇù€&Rø¡L>Èȇ5ù0Âhò¡F> É‡~(“8òaM>tðš|Ø‘kòAƒÊäC|@“üP&ˆäÚ|ˆà4ùp$ÐäC?”É%ù°&ø¡L>@ɇ5ùPÀhòaJ> É‡~(“VòaM>ü¯ A½üÿ;;*@“óñM>”ñC™|°kòá‹ÐäC~|@“_üP&øãÚ|Èâ‡2ù ÖäÃ? É‡ù€&¦ø¡L> ȇ5ùÐÄhòaA> É‡&~(“òaM>ñš|ˆhòáˆÊä…|X“AüP&4äÚ|Øá4ùÐ!ÐäÃ?”Éù°&jøM>Lú_ü;xþ€&*ù¡L>LJ5ùðÈhò!9> É‡G~(“ÌñaM>$òš|xŽhò!‘Êäƒt|X“ƒü€&ªãš|ä‡2ù€ÖäC? É‡íø€&úø¡L>xLJ5ùpÇeò<>¬É‡8~@“çñM>ÄñC™|PkòaÐäC{|@“küP&àãÚ|0Q] ÿ<B -~ùM>dÆ4ùðËeò3>¬É‡\~@“ŸñM>äòC™|kòa–ÐäCi|@“³üP&PãÚ|hå4ù°ÐäC+?”É×ø°&NùM>ÄÆ4ùpÊeò6>¬É‡P~@“·ñM>„òC™|Ðkòa“ÐäCo|@“›üP&€ãÚ|¨ä4ùp´ºä:gñaM>¤óš|x‹hò!Êäƒ\|X“ãü€&êâš|ç‡2ù€ÖäC7? É‡½ø€&ºù¡L>øÅ‡5ùpÍhò!0> É‡k~(“„ñaM>Dóš|8Œhò!šÊäƒb|X“Ëü€&ãš|Xæ‡2ùÖäC1? É‡Éø€&Šù¡L>XÆ‡ÒøWÿ<´+˜è4ùPÐäÃD? É‡¢ø€&&ú¡L> Ň5ùÐÐhòa)> É‡†~(“NñaM>ôš|ˆŠhòá ÊäU|X“ý€&®âš|è‡2ù ÖäÃ>? É‡®ø€&öù¡L>€Å‡5ùPÏhòa,> É‡z~(“fñaM>¼óš|H‹hòáÊäÀ^ü;>+؈hò¡§ÊäƒG|X“7ý€&Bâš|¸é‡2ù@ÖäCL? É‡“ø€&bú¡L>¨Ä4ùàÒhòA%>¬É‡•~@“-ñM>¬ôC™|€‰kò¡¤ÐäÃL|@“%ýP&lâÚ|øè4ùÐäÃG?”Éžø°&2úM>üÄ4ùÑeòA(>Ìú_üÿ;©þÖeòA>¬É‡­~@“ýðM>lõš|è‡hòa«Êä@|X“Uý€&âš|¨ê‡2ù`ÖäÃS? É‡„ø€&žúM>$Ä4ùðÔeò!>¬É‡¤~@“ñM>$õC™|ˆkòa¨ÐäCE|@“CýP&0âš|ê4ù€ÖäCO?˜ü_ü;{þ` ÖäÃ_? É‡lø€&þúM>dÃ4ùð×eò>¬É‡¼~@“ßðM>äõC™|‡kòa®ÐäC9|@“sý€&Êáš|˜ë‡2ù€ÖäC[? É‡uø€&Úú¡L>¸Ã‡5ùpÖhò!> É‡³~@“ñðM>œõC™| ‡kò!¬ÐäÃ=|Ø]]üÿ;¤ña´Êä.|@“ ý€&páÚ|èì4ù° ÐäCg?”É_ø°&.ûM>Ã4ùpÙhò!> É‡Ë~(“ÄðaM>Döš|8†hò!²ÐäÃ1|@“‘ýP&”áÚ|Xì4ùÐ ÐäÃb?”Éhø€&ûM>@Ç5ùPØhòa> É‡Â~0_]ô;µñA> Éß~@“šðaM>ìöš|è„hòa·Êä(|@“¸ý€&@áÚ|¨í4ù0 -ÐäCm?”ÉSø€&dûM>˜Â‡5ùðÚhò!> É‡×~(“¬ðM>°öš|`…kò!µÐäÃ+|@“©ýP&dáš|0í4ù ÖäÃh? É‡Zø¤® ÿ<7*@“Üý€&øàÚ|Èî4ùðÐäCv?”ÉAø€&¬ûM>‡5ù0Ýhò¡> É‡é~(“ˆðM>@÷š|@„kò¡¹ÐäÃ"|@“ÍýP&áš|Pî4ùàÖäÃq? É‡Hø€&Žû¡L>PÂ4ù@Ühò>¬É‡à~@“—ðM>÷‹ºüÿ;„*(“dðM>Ð÷š| ƒkò!¾ÐäÃ|@“ñý€&Îàš|ˆï‡2ù ÖäÃz? É‡6ø€&ÖûM>´Á4ù°Þeò> Éô~@“pðaM>”÷š|˜ƒhò¡¼ÐäÃ|@“åýP&ìàÚ|øî4ùÐäÃw? É‡<ø€&¾û¡L>ù_ü;;ý€&üM>0Á‡5ùàhòá > É‡@“OðM>$øC™|‚hòÁÀÐäƒ|X“þ€&ªàš|ð4ùPÐäÀ?”É,ø€&üM>`Á‡5ùÐßhòa > É‡þ~@“[ðM>ô÷C™|ð‚kòá¾ÐäC|@“÷ý€&Âàš|x[]üÿ;µý€&hàÚ|ñ4ùpÐäCˆ? É‡ø€&Bü¡L>èÀ4ùàáhòA>¬É‡ @“=ðM>løš|èhòaÃÊä|@“þ€&€àÚ|¨ð4ù0ÐäC…? É‡!ø€&*ü¡L>Á‡5ùðàhò! > É‡@“IðM><øC™|hX]ü<8ˆÀ4ù`ãhòA> É@“"ðaM>Ìøš|(hòaÆÐäC |@“3þP&Pàš|€ñ4ù€ÖäC‹? É‡ø€&ZüM>¬À4ùÐâeòÁ> É@“.ðaM>œøš|ˆhòáÄÐäC |@“'þ€&bàš|8ñ‡2ù@ÐäÃJ¯üÿ;˜*Xò‡2ùÐä’? Éø°&ŠüM>LÀ4ùPähòa> É‡"@“ðM>ùC™|°€hòAÈÐäƒ|X“?þ€&2àš|øñ4ùÐäÃ? É‡ ø€&~ü¡L>pÀ4ùÀãhò>¬É‡@“ðM>äøš|ø€hò!Ljä_ô;K+ðÿ‡5ùpåhò!> É‡+@“ðM>\ùš|€hòáÊÊä|@“Tþ€&àš| ò4ù@ÖäC”? É‡ø€&¢üM>À4ùåhòá> É‡((“ -ðM>8ùš|P€kòaÉÐäC|@“Kþ€&àš|Xò4ùИÿ¯ìÿ;¥ýæeòAþÐ䃙? Éù@“fþ€&äÿaM>Œùš|¨ÿ4ù0æhò¡þÐäØ? É‡ú@“cþ€&êÿM>ŒùC™|Àÿ4ùæhòÿÖäC—? É‡ý@“]þ€&öÿM>tùš|Øÿ4ùÐåhòaÿÐäC—?”Éÿ@“Zþñì;vþ0þhò¡ÎÐäÃø? É‡:(“æÿ€&äüM>˜ÿš|ó4ù`þkòáÍÐäCú? É‡7@“éÿ€&ÞüM>¤ÿš|xó4ùþhòáÍÊäû? É6@“ìÿ€&ØüM>°ÿÚ|Hó4ùðþhò!ÍÐäÃû? É‡4@“ïÿðËìÿ;µð!ÐÊäƒö? É?@“Úÿ€&üüM>hÿš|ðó4ù ýkòaÏÐäC÷? É‡=@“Ýÿ€&öüM>tÿš|Øó4ùÐýhòaÏÊäø? É<@“àÿ€&ðüM>€ÿš|Àó4ùþkò¡ÎÐäÃø? É‡:@“ãÿ€&êüÁ}uì;›ñÁùÖäá? É‡è@“‡þ€&¢ÿM>úš|ˆþ4ùpèhò!úÐäá? É‡è@“‡þP&¨ÿM>úš| þ4ù@èhòúÐä¡? ÉêX“þ€&®ÿM>úš|¸þ4ùèhòáúÐäC ? É‡ë@“þ€&®ÿáU½üÿ<]* ÉH@“Èÿ€& ýM> ÿš|€ô4ù€ükò¡ÑÐäÃò? É‡F@“Ëÿ€&ýM>,ÿš|hô4ù°ühò¡ÑÐäÃò? É‡F@“Ëÿ€&ýM>,ÿš|hô‡2ùàühòAÑÐäƒó? ÉE@“Îÿ€&ýM>8ÿš|Pô‡$uìÿ;R*@“Âÿ€&,ýM>ÿš|°ô4ù ükòaÒÐäCñ? É‡I@“Åÿ€&&ýM>ÿš|˜ô4ùPühòaÒÐäCñ? É‡I@“Åÿ€&&ýM>ÿš|˜ô4ùPühòaÒÐäCñ? É‡I(“Èÿ€& ýM> ÿš|€ô4ùpæì;vü€&2ýM>üþš|Èô4ùðûhò!ÓÐäÃï? É‡L@“¿ÿ€&2ýM>üþš|Èô4ùðûhò!ÓÊäƒð? ÉK@“Âÿ€&,ýM>ÿš|°ô4ù ühòÁÒÐäƒð? ÉK@“Âÿ€&,ýM>ÿš|°ô4ù ühòˆÿ -ìÿ;qý€&xÿM>púš|àý4ùÀéhò÷Ðä§? ÉÞX“™þ€&~ÿM>dúš|øý4ùéhòá÷ÐäC¦? É‡ß@“™þ€&~ÿM>dúš|øý4ùéhòá÷ÐäC¦? É‡ß@“™þ€&~ÿM>dúš|øý4ùéhò¡huì;ÿ€&8ýM>ðþš|àô4ùÀûhòÓÐäï? ÉN@“¼ÿ€&8ýM>ðþš|àô4ùÀûhòÓÐäï? ÉN@“¼ÿ€&8ýM>ðþš|àô4ùÀûhòÓÐäï? ÉN@“¼ÿ€&8ýM>ðþš|àô4ùÀûhòáD½ôÿ<ñ*dúš|øý4ùéhòá÷ÐäC¦? É‡ß@“™þ€&~ÿM>dúš|øý4ùéhòá÷Êä§? ÉÞ@“œþ€&xÿM>púš|àý4ùÀéhò÷Ðä§? ÉÞ@“œþ€&xÿM>púš|àý4ùÀéhò÷Ðä§? É‡Ì+ì;é*þ4ù`éhòAøÐ䃥? Éá@“–þ€&„ÿM>XúÚ|øý4ùéhòá÷ÐäC¦? É‡ß@“™þ€&~ÿM>dúš|øý4ùéhòá÷ÐäC¦? É‡ß@“™þ€&~ÿM>dúš|øý4ùéhòá÷ÐäC¦? É‡ß˜ƒìÿ;ý0éhò¡øÐää? É‡â@““þ€&ŠÿM>Lúš|(þ4ù0éhò¡øÐää? É‡â@““þ€&Šÿ¡L>Xúš|þ4ù`éhòAøÐ䃥? Éá@“–þ€&„ÿM>Xúš|þ4ù`éhòAøÐ䃥? Éá@“–þ°÷ì;ÿýàühòAÑÖäÃò? É‡F@“Ëÿ€&ýM>,ÿš|hô4ù°ühò¡ÑÐäÃò? É‡F@“ËÿP& ýM> ÿš|€ô4ù€ühòÒÐäò? ÉH@“Èÿ€& ýM> ÿš|€ô4ù€ühòÒÐäò? ÉHX“Åÿ@Õìÿ;2ðÐÐäõ? ÉB@“Ôÿ€&ýM>Pÿš| ô4ù@ýhòÐÐäõ? ÉBX“Ñÿ€&ýM>Dÿš|8ô4ùýhòáÐÐäCô? É‡C@“ÑÿP&ýM>8ÿš|Pô4ùàühòAÑÐäƒó? ÉE@“Îÿ€&ý¡Œÿ -ì;ñüÐäž? Éð@“xþ°&ºÿM>ìùš|èþ4ù°çhò¡ûÐäÞ? É‡î(“~þ€&´ÿM>øùš|Ðþ4ùàçhòAûÐ䃟? Éí@“~þ€&´ÿM>øùÚ|¸þ4ùèhòáúÐäC ? É‡ë@“þ€&®ÿáEuüÿ<o -Ðä›? Éö@“lþ€&ØÿM>°ùÚ|Hÿ4ùðæhò!ýÐäÛ? É‡ô(“rþ€&ÌÿM>Èùš|0ÿ4ù çhòÁüÐ䃜? Éó@“rþ°&ÆÿM>Ôùš|ÿ4ùPçhòaüÊäž? Éð@“xþ€&ÀÿM>àùƒ”zìÿ;·* É‡ý(“`þ€&ðÿM>€ùš|Àÿ4ùæhòÿÐä˜?¬É‡ú@“cþ€&êÿM>Œùš|¨ÿ‡2ù`æhòAþÐ䃙? Éù@“fþ€&äÿM>˜ùÚ|xÿ4ùæhòáýÐäCš? É‡÷(“lþ€&ØÿM>°ùš|È÷¿ô;ü€&œüM>(À4ùàäkòá> É‡(@“ðM>Dùš|8€eòÊÐä|@“Tþ€&àš| ò‡5ùÐäÕ? É‡ø€&®üM>À‡2ù åhòÁÿÐ䃖? Éÿ@“Zþ€&üÿM>hùÚ|Øÿ4ùÐåhòaÿÐäƒ(ÿüÿ;Áü€&8àš|àñ‡5ùÐäÃ? É‡ øP&„üM>XÀ4ù ähòÁ> É!@“ðM>ùÚ|˜€hò¡ÈÐäÃ|(“Hþ€& àš|@ò4ùÐä’? Éø€&üaM>4À4ù°ähò¡>”É'@“ -ðM>8ùš|`_]ô;Hÿ€&TüM>¸À4ù âkòa> É‡@“+ð¡L>Àøš|@hòÆÐä -|@“0þ€&Pàš|€ñ‡5ùPÐäÃŒ? É‡øP&lüM>ˆÀ4ù`ãhòA> ÉX“ðM>äøš|ø€eòÇÐä|@“<þ€&8àš|¸S¯ ÿ<³*HøÃš|‚hò¡ÂÐäÃ|(“þ€&€àš|Àð4ùÐä†?¬É‡ø€&6üM>ôÀ‡2ùàáhòA> É@“:ðM>xøÃš|¸hò!ÄÐäà |(“$þ€&hàš| ñ4ù@Ðä‰?¬É‡ø€&NüM>ÄÀ‡2ù âhòAL]ü;*Ø‚hò¡¿ÐäÃ|(“þ€&°àš|ð4ù€Ðä€?¬É‡*øP& üM>HÁ4ù`àhòA -> ÉX“OðM>$øš|x‚eòÁÐä|@“ þ€&˜àš|`ð‡5ùÐäÃ? É‡$øP&$üM>Á4ù áhòÁ>Ä¿üÿ;çü Þkòa> É‡ò~@“sð¡L> ÷š|€ƒhò½ÖäC|@“ëý€&ÚàC™|pï4ù Ðäƒ{? É5ø€&ÜûaM>œÁ4ùßhòá >”Éú~@“dðM>Ð÷Ú|ƒhòá¾ÐäC|(“úý€&¼àš|Ðï4ùàÐäƒ~?$Á¿ü;ý Êäƒr? ÉGø€&”ûaM>,Â4ùÐÜhòa>”Éè~@“ˆðM>@÷Ú|(„hòaºÐäC!|(“Öý€&áš|°î‡5ùðÐäCv? É‡?øP&¸ûM>ðÁ4ùÀÝhò> Éî~X“yð¡L>ˆ÷š|°ƒhòA¼Ðäƒ|èë¿üÿ;ðµÐä+|@“¬ý°&Ráš|xí4ù -Êäƒl? ÉSø€&dûaM>ŒÂ4ùPÛhòa>”ÉÜ~@“ ðM>àöÚ|è„hòa·ÐäC'|(“¾ý€&4áš|ðí‡5ùp ÐäCp? É‡KøP&ˆûM>PÂ4ù@Ükò!> É‡ã~(ê¿ü;ð¡>”ÉÇ~@“ÊðM>8öÚ|8†eò²Ðä1|@“”ý€&ˆáš| ì‡5ù Êäƒf? É_ø€&4ûM>øÂ4ù Ùkòa>”ÉÐ~@“¸ðM>€öÚ|¨…hòa´ÐäC-|(“¦ý€&dáš|0í‡5ùð -ÐäCj? É‡Wø0¤º ÿ<p -ÐäƒZ?¬É‡uø€&ÚúM>¬Ã‡2ù×hò> É¸~X“åð¡L>Øõš|‡hòÁ®ÖäÃ7|@“yý€&¾áC™|àë4ùÀ Ðä_?¬É‡løP&ûM>XÃ4ù ØhòÁ> ÉÁ~X“Óð¡L> öš|€†hò±ÖäC3|@“‹ýp¤ºôÿ;* -ÖäÃC|@“Iý€&âC™|`ê4ùÀÐäS?¬É‡„øP&¤úM>Ä4ù Õkòa > É‡ª~@“ñ¡L>`õš|ˆhò«ÖäC?|(“^ý€&ôáš|ðê‡5ùpÐäCX? É‡{øP&ÈúM>ÐÃ4ù@Ökò!>”ɵ~@“úÿWü;0ü€&DúM>ØÄ4ù Òkòa&>”É”~@“0ñM> ôÚ|h‰eòÁ¥ÐäƒJ|@“.ý°&NâC™| é4ù@ÐäM?¬É‡ø€&núM>„ć2ù ÓhòÁ#> É~X“ñ¡L>õš|Àˆhò¨ÖäCE|(“Fý€&$âš|Àä¿üÿ;Ÿ+X“]ñ¡L>øóš|ЊhòÁŸÖäÃU|@“ý€&®âC™| è4ù@ÐäA?¬É‡¨øP&úM>8Å4ù Ðkòa)>”Ɉ~@“HñM>@ôÚ|(ŠeòÁ¢ÐäƒP|@“ý°&~âC™|àè4ùÀÐäG?¬É‡œøP&DúM>ô_ô;vÿ€&œùaM>Ƈ2ù@Íhò0> Éj~X“ñ¡L>hóš|ð‹hòA›ÖäÃ^|(“àü€&ðâš|ç‡5ùPÊäƒ9? É¹ø€&ÌùaM>¼Å‡2ùÀÎhò-> Év~X“iñ¡L>Èóš|0‹hòAžÖäÃX|(“øü€&Àâš|¨R¯ ÿ<ê*òš| hò”ÖäCl|(“ªü€&\ãš|På‡5ù°Êä,? ÉÔø€&`ùaM>”Ƈ2ù`ËhòA4> É[~X“Ÿñ¡L>ðòš|àŒhò—ÖäCf|(“Âü€&,ãš|æ‡5ù0Êä2? ÉÈø€&ùaM>4Ƈ2ùàÌhòBuô;X -Èãš| ã‡5ùÊäƒ? Éïø€&ôøaM>lLJ2ùÈhò;> É@~X“Õñ¡L>òš|ŽhòÁÖäÃs|(“Œü°&’ãC™|ä4ù`Ðäƒ$?¬É‡áøP&0ùM>Ç4ù€Ékò¡7>”ÉO~@“ºñM>xòÚ|¸wð¯\%`po€q3|>Ú×ÚÏ£ëk]šòíhý®uFŽú`óÛ(ú`»¾ííŸÑþØ>í›]?ŒhÆ~Ù>¹>Ú°¾`ûc;¶áCÛfô±íæ—¶c«í÷¥ÿjß±ØöõòK;ü!¸1õ}¤>üYgT^ ô hàC* -íf0L ô°hàÃ(]š2@ ôiQ}Ð$ÐÃ¥—z¸´›Á| $ÐC§‘zètiÊ|p$ÐèuFõa‘@¦>è!ÕÀA=¼øðG ‡•~p¤ÿi>”è!É¥)óAœ@OÖÕ‡o=HøM ‡*»Ìk=lø0M ‡-  ôfàƒ2Î |8&ÐÙKSæ1Ú¬3ªÁz€3ða—@sv3˜¸zÈ3ð¡–@y.M™ þà -´cÑCƒ}ð¨&ìFõa*ª‡ û Q=|؆ê¡Ä>$T%öÁ zX±ÕCŒ}è§bìƒ>õpcî©ûO=ôØwêaÈ>¬SÙêtÿu@…èº -ô@]àÃU®ËÍ>Pè¡»:£úàT ‡ñ– -ô`^àCQÒ |*ÐÃ{?z/ð!§@õ>Øèa¿À‡™=øøÐR ‡T -ôp`àI |Ð]+Tÿ¾z,ð!³@•>Xèa³ÀÈ=„øÐX Ò ôpZàaZ |ð+ÐÃl{z°-ð¡®@¹åf ä -ôð[Q}`+ÐCqiz@.ða¬@Ë-M™çÓƒ+dÿÓ€šª3ªÞz˜*ð»@Y>Tè«À‡ç=|øÀ\ ‡²Œ ô°VàÃpÜ -|è-ÐC\ºz¸+ð¶@}>Äè°À‡Õ= ø€Z ‡ÄD ôðXàC—Wlÿó@…= ø0b ‡: ôQ¥éðAÃ@ÕÕ -=tøà` ‡‘ ô`RàCX -|ø/ÐÃKüz¨)ðÁ¾@;>Àè!¨À‡ö=øp^ ‡£NÀ† у+´7ð¡—>¸YÃôaÍz0¦eÖ3}ø²¤éC–õPM¬¬‡múe=„Ó%ëáœ>Yêô!Èz€§;ÖÃ<}À±ò郌õðOX¬‡ùW|ÿÄ€~ ô GàC®êh¦}°5Ððz¤Î¨>¨èáÀR=4øài ‡I6 ô`IàC¥8 |x4Ѓ(‰z@%ðaÐ@«ÄÍÐ>è!–À==ÜRgTrìƒ+T¤>løq ‡ôpBàÁZ|ð7Ðà øzÈ!ðAÞ@?ÔÕv=ø`n ‡%À ôEàƒ¶®|¸6ЃÑz#ðaÙ@f>èô\´ÿ‰ÿ v=ϲë¡y>x]ÓóëzÈžR×Ã÷|`ºÊçƒÑõ°>€®‡øù s=ÜÏšë¡>¸\ôåzH "×Ã}à¸*èƒÛü+4+ q‡å[X-÷!é$ø¡ðŠ`Iÿ€Á…ÿðzHú~(üèi?ðCá?À@Iÿ¡… -ÿAzHúü0C[Íÿôê=\q€¸³®<Ô@óz¸œ”×Cçøàx=ŒÎÄë!u>ž^‡|໘уìø`w=ìθ놾ìÿ<þºÄX…Œþ¡v…ÿP -=ýÃî - -ÿáz0ú‡àþƒ%ôôÇ+@ü‡Fè!éšW€ø‡ÐCÒ?X¯ ð¡‡¤à^Aá?ìAIÿ ¾‚¨ƒŒþa}…ÿÀ=$ýCü - -ÿÁ zHú‡ûþôôý+(ü-è!é ø¡ð¢ ‡¤`à‡ÂPQ¯Ü;…*\DFÿ`´ÄˆˆŒþáiˆÿ€=ýCÕ -ÿáz0ú¯ þC>ô`ôd+@ü‡yèÁèÚVPøíЃÑ?Ì­ñ¡‡¤È[â?lCIÿð·Ä¨†Œþqˆÿð =ýCä - -ÿ!z0ú‡Ë þC/ôô+@ü‡[è!éFW€ø±ÐCºìÿ<Ï*új,þ`ô`ôÚ*Xü½èaèÆU°øtÑÃÐ?°«`ñТ£WÁâ?ˆECÿ°¯‚ÅàŠ†þ`ˆÿ0=ýƒÂ -ÿA)z0úˆ,þQô0ô+@üŸèaèDV€ø5уÑ? ¬`ñX¢£ˆYâ?˜DCÿ ³Ä舌þhÿýWÌÿ:/üà= ý× -ÿ¡>zú‡5,þÃ{ôôq*pü‡ñèaèîTàøÝÑÐ? ª`ñ¨£‡¡HTã?,G@ÿP©‚ÅŽ†þaS‹ÿÀ= ýC¨ -ÿa6zú‡V,þƒjô0ô³*XüÒèaèxU°ø›ÑÐ?«`ñ$£‡¡XVÁâ?äÚ¿ìÿ<iþÐóÛ*DþŸôÐóä*DþœôÐóí*DþÙôôö*Dþƒ—ôÐó*pü‡*éèTùLÒCÏ?P¨Àñ†¤ ÐPAä?èH@ÿ0¢Çˆ‘€þEŽÿ°"=ýC -ÿáCzú8þC†ôôG*pü‡éè TàøÒÐ?d©ku¼ÿ:Êþ0=èü• -”ÿ0=ôüC— -”ÿp/=èüCš -”ÿ°.=èüƒœ -”ÿ .=ôüÞ -”ÿ-=èüá -‘ÿ-=ôüC£ -”ÿ@,=ôüC¦ -‘ÿà+=èüC© -‘ÿ +=ôüê -”ÿ*=èüí -‘ÿ*=ôü° -‘ÿ@)=ôüC² -‘ÿà(=ôüƒ´ -‘ÿPAÿ -Ôÿ<òáæjhþçôpóA -4ÿrz¸ù‡&—ÿ 8=ÐüC–‚Ëð›nþALÁå?ÈM7ÿà¦àò̦‡›¸Spù]ÓÃÍ? ¨pùQÓƒÎ?0¨pùHÓÃÍ?`¨@ù?ÓÃÍ?¨@ù3ÓƒÎ?¨¨pù'ÓƒÎ?ب@ù!ÓÃÍ?©@ùÓƒÎ?,©`¤®¤ÿ< -`èü‡&ê!æèü‡ ê!æèü‡ê!æ6¡óR¨‡˜ø ÿÐA=ÄüàÐùÔCÌ?< -ÿP@=ÄüÃNÐùùÓCÌ?œ:ÿ¡}z ù˜Bç?„O4ÿÀSèü‡êéætþCòô@ó -4ÿxz ùšÿ@;=Ðü‹ÍHŒÌ: à÷ îõ¡S…p~HUa_{èT¡XU`×4Uøç‡Tºµ‡NúUgí¡S~HUAX{èTÁ¤RU°Õ4U¨é‡TNµ‡N‚òCª -›ÚC§ -MýÀª£öЩW?¤ª¨=tª€Ö©*Ðiš*ÜõCª -eÚC§ -ƒýªB–öÐiUx,2ü¡ó²¨È~q´ÿ;ñ+`Uá{{èT!XU€Þ4UØàV|·MZø!U…×í¡S…~`Ut{ÐTa‰XUpÜ4Uèâ‡Tþ¶‡NÒøU¸íAS…=~HU!l{èTáXUÚ4UÈä‡T†¶‡NJùUšíAS…[~HU¡d{èTa˜XU°Ø4U¨æ‡T*ê_œ;Òƒ¦ -ò*xUœ{¸TAa¬*¼‡KžUUÀ{ T¡]…WÒ»‡K -T «‚s÷@©Âˆ -^U˜í.UØQÁ« -›ÝÃ¥ -S*U°{¸TÁM¯* u—*ª€U…©îASL¼ªàÓ=\ª«‚WLº‡KUðª‚C÷p©¸ -XU— ÿ2 ðõ‘‘š Àƒº -F€$* S<Gü*Q *«ðÿ=*¬¬Âð÷°¨ÂOðUò{XTA¥°«Ø÷°X ¸*Ì|Ž*)ÀU!á{ˆTaMA­ -åÞC¤ -*ÔªìzˆTaF…Z:½J¨T¨UÁw{wÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDýÿÍ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿlÿýܸ\ö®ÄT%P,òí$)4IlxùwíÈúö—?Ž!||˜ÿyô2ÿhiD3ߦLówj›¯Ód4ufö« ÔÊ @€2jBB8Ó‰¢("’§­€ƒ!³,Ëú¾ó­3ÆYoÞýŸ¨Êº°L#l…-›¾ï|ëŒ/ÎzóîÿDUÖ…eA˰˪¨éûÎ·Îøâ¬7ïþOTe]X†]VEMßw¾uÆg½y÷¢*ë²*jú¾ó­3¾8ëÍ»ÿUQÓ÷oñÅYoÞýŸ¾ï|ëŒ/Îzóî¿ï|ëŒ/Îzóî;ß:㋳Þ|ëŒošûÅâ‚Éh6œÎ¦êYmëJË“Ñd0$I’[k€ …¬”–‹¥¤xÆÜ1J&²BRÆ0 ¶5Îûû>H(FFÉD2>‚žçi¿˜j8PŒˆ¡Þd4ÈÃÑu]×ùÖïJñ-@Fƒ*úÖ:ãË»ïžâ[| -Žã8½y÷€Ct /qàkÿ+° Ñ!¸‚æ;Ç8ëí+ëÂ2° %Ô‘L}_œû¦;³t¢©º²§(j\g„d–N4U×qýÔ‘ÌÒ‰¦jšž¤Çáø¾ÄïçN1D#’Y:Ñ5E›r2ATÓÅ™ÿ$E#’Y:E–Ž}ˆ@4"™%3Tzǹ— hD…0’m»¸ô|@!ÁÆWWXÇó…@ÃôÅÙÊ qät<Ÿg†”ÎýWWF³át4—Ëå²/ÎÛ"8.kA{r8e9AÜŒQ–$vUÑŽd~ëëq®lË®*:’H’< ØU¤‰DÄЀ]Q$©+Û´l!D",»‚`feF¥²­ìªZ,”ï»f2MH´²­úÁ`"¢èy–…«ïGKMÕ•m B“‰Øußó<¡65AŸR下óï&•ω¦êʶ­š–e¥†‹…Á@íë·­K$<féDSue[õ †z¨ƒXgÀ†Ýç€ÆF³™DžASFc€@€„Gý ëÂcxGð4©Ð‡×M4Ä o#^PŒFëY¼µ±…ŠÀQô `÷l¥Œ«._¤>„–ž°rÜÛiå•ë$åHw“žˆÆ»·¡ZàÒ²;piè~%<š~u²¼È ëÙ°–‡‡£Cx‹G£'ÅsàžÜ1Hu¡mµIP·ë|“šâŠ9tBŪÜi¯æn¿©Y²ç@*ÒÝÉSã y—î_» é³Ýá‘ñ#•’ƒÐ :$Ý  -3ixÓtŒ—Ÿ¹òÓû-{cиË&¿à¯Xt§ýìîI— -0wCÆ”±À2ÂW”–1kîTIîZAõVÉ~Õ½w‡>gVáQÐ xr¡DÐà~ýá9žƒ4g"¼Uñ¤8 .»äfk°¾X~. fxFãÎÐW›¾én€$=ÈžìNÜÔ¸#Êèºì€>6u!qç]Gw†´®ðJ‚FHðFÁڊР¶Oyx(ïâ¹’†—)GÔ*ÞŠ—^0¼×,Yµ<’»€î¶Påkº;'§–c-L·VÆt Þ½ºÛXáɼ¡! -<¥wÐH^› ÏPxv…‡sxËѺÎx^!òL¦GQÒݺEÇYÏÆÀåvØ·£»îVS†8Ü f긻ܦÆ3-H$twÜʈîÆ;ÍcS—ð2–ÝyÐ#<Sð¨ÁÚj5$B,H†ˆ$é|ì&4;|j»B³óáN=d}»WtW&wqŠ©‰VÆ4˘Jwwš;~ÊÙÃ5óoª‹£‡—ðE#̈çÃÓ‹$žïiÜD ƒ÷QD¬3‰ã|¡‡Îœ}pvq=¼ÝwÉ>w§&£¨;ó£ ®’Û½äI¼;”>È;–€åƒM‚W,øÃkž³h`$ñ² ϾxO\ñPÇC ïÈílk©qP"ÀR—Ç­¿ÏYmWv»›A±Üu‚[2¦'cw÷–:m“Q³í.%t§Õ©Á¼ë!¨‹Ÿ}GÚ0‡÷&±íÉìJµÓÛŽ¶v…í «fîüêŽwÉдÔ1'§Ý_Ä=ˆkQʘ™)’$¤=ˆ½ð(‹×2Þy<-Ç»'OS^μ|Ò½oÊ >¬º:Nc­]êìÄ·Ã~v i;Q·Ã}»OwÙ;¿MF¦ž6wÅ-Ý mDC¢‘sm·Äë]xÞâÑâ©:ñx2ªµµäåËÛ™·¹´}8éD¿:žØíh®]g;ævèµs¶bE]øv~4º1w¥.z‘Ðpö}Þ Ñ Eâ] Ò¯Å³ÂÆ‹>ž'yå7/ù¦+Î J…è¢Á5§×a³#×f;Öí`Ð2â5HQ_¿Ý¨ÉàöÊ:m©²Üýÿue¬rÇóHƒ‡ˆD’ˆÈz½ðXŽÆ½Y«Šçà·p÷ãq§†òx§ò’Ë™Gf“%OðRGEºêê²b‡ ;ë²³lG"íøíPÜ C†¸9Ægd°KÆ|Û5å ƒîÜYZ Ïd£ ðÎÏOé4$ÏÌ&o°¼¹yGŽ5[ÔéIgŽ[Øuh§l»Îí*ÜE¦³O¹K wi(ƒ'w‡®ŒÐ”T - xº|º¯Ùð,‹D<×xxNóx¤ãiŽ<¤òðæ%a·±M*òðJ—ð[?¹Ž£;;ÀÅÙiowÃϺc4e»õpwˆ; Ýîê-ÅŒ$îX‰—çÏ Óà6Þîñô/yXåáÌ[£~%Ì>\•.ź(vi_gÖ.vvfhg»„;q‘ÁÿíxÝÅL”»å¾ªŒÏÜñF)x‹V4¬‡¨’ÄŠW1ÞƒâíŽws¯ò¬æ éY4<µð b:oHáuóìrµKm‡¾ 2Pª]ôۭȘXçF@[<¢”Ç+ ÈÃBG6 -Yž‰Iè¸È¶t¬ ²«mç°1$q'Iw#ª¼Å!ËÔåÔŸÍòGY…x™VÆ»as²…¶zÒ>„Óet ÇN?4h‡7íÁ%$UšÉ·é;4±êê¼YÄ> ‡"©vp'ÇÒñÖqÉî¤vGë›Ò³B˸¨tСÓEVAdèÚb[u$K'ŒQka§Á®ŠRºÅ݉»h› Y#\©¤ª7‹Ì'+O鶪*ïÊ$؄ġ©µÉ{@޵DU¯›{ô´Â d䬩üéʪ$è…˜U}EñÄDÒäöÉ ÑÆo50I_Ñ‘€Á‚帄mp ¡­díÆ¯t$͉RD½Hu³¸Z/úù0== -KŸ+2cÌVg]a___…mË™{Šž+Ë~> -˪‹5{PÀ–4ËØUžç›·B@`PÐ0êbˆ¥Ó!@Ù•Dm6ùr\È{-ƒ¡!z<%”5(:Ãa_ Ð阧AA[u…o“ÀkPЦÊ„ÀÎA›Š¡ÖtÚƒöšz¿6¬AA+ñÕ eEbáâ=­mAA«M=ß^®¬gŽalkP ÁÛÀ¡l[ ÐóÕl6êA!»™SY{†&Ç¡cC(^dˆû#=$jPК ñê{SÚÂóàú®)Iy|Š¿ó]„¢ -u,ñ.Ķ`’U¸ñ!HÛlÒ¼ª FW¦: ‚ƒ‚ÿ×u°’Œ¬kd¥hVP‡qM\_Ü #2°lÜ© -Ц,g2]þɵ-0(¸x½!å¦ÀàÀÄdFAA{Ž>™È¢=0¨$z&3¬AAË/Ft /RÑl¨½(9Lø’É¥`j -Z2 ÑÎA$Û„p¨3Zçs ‰**ØE‡¤áá@EA £(Æ d @@ÀdÀD±¸Ô€ßɼÂþŸhÍu(ÂŒuYâ½ëEåå”Î’g TP™Ÿ#’"œæäz×8$‚çÅ3VÒwsbpËÉÏÅ÷Õ`ÿ¸Ëazï† B×å=L1xHåZsìΞ¬˜Zÿ¢Z—z—P’ßàµÎ¦ŸARϸ’&`Çz‹ÚNmwÒ•¥á´aòuÏ¦Ž‹i3†T°»ƒ"ÕßÕIð0úî žq×Õ/ó ]i•&`¢ŸQ.o“!]Ãi{z×·!$°ÒýwNúŽUWó컋]} ÞuàtwLIjw¾…9)°êACvÕtµh`<6] õ^ÊÛjòÚ“ZÞO:$=ªÏª;¼²wëõŽæ öóûn¯~ã¼lº0xEežxK -]¶ÝÝÒQÜQ ¥îdþ>ŒÞõ®d¥$<¡åÃïtßHó©vèg\ÙÕpS¹ÐÊÀ0FvgÔWNªI’î’í 'ÞwFO<]¥ßñ;IxŒ¾x¤”±zxGMw Ï3\(¦9RÔÂÞíêIðBù]>û®ð8¨ðR°,­»w‘—± þZ„™á0Q-¯û€÷NN‚½¾Sbú æÀ#<w·Å¤yÐî¸iÜÐت»6ØÔ^FÇü½CËIð\àwÀ•>C%à5œ»zpá±è¶Ò†2 %Ï˰#ªSqù¨æ†î=Šì]\ÝùàÝUJ‚ç:o#ª}ÆÀcj¯F£%ÒMêR(=:,x†9»-ã3Ý…GµŽ:T‹vìS½ t§d^wXõ¥Þ}†É![Ã,] ¼wõEÀ;ãÕwáýÑïà=yå]ú2RAǹ öæ+˜a†zïÿèÝ@JÜ…g`©ÀÜyF3ŽÔÑÕ5©v¯ÖÿÓ -¯Ø”w -ö—ax³cîawäîn+†t¡%_ÐÕâL÷K&G’òj|ÏØ©W ¾z–ú Kùb8òŽ5îPS:ö³;6wŽÇ_cèÝ]L¬[WÓ’€§ß3pþ®áU‰½iˆJèoÕêç¦~`¯?­7C˜>)³AÐËàã±;ÌØ‘Ùè]›Üjkóõ6ÏÐt#õ™€—Ú3L½Wxè’ÀãôGx#ʾcë€ Y6÷W÷Æ.xÅj85›¼;Fw¶’Ž>À§é2¾zz7·*÷Ž¢}'G¢x?C—›>È«¯oô«1žè]|¥<ŸÁë8ÒÐúõELx©vϾm§ÎÄ…Ù°» ¨»jg˜:"†ê¶,#(Ĩ¶‚ã0]J+>ãw5í}g§8ðþAÃëübÞwxð&¢ü^æ]a¹+ê©}|óeHž;ÓQHžz×–mŸñ¤gàÝîjq_áUäS¼‹)-(ï8 š‘¬As7‘Ý¡(d½»0 ¿ã,.€'ógä:ö‚†9𠼟WĪå}R jîÆl˜¹Ó„TxîæzjÀÞ ͽÓÈ•ßEµgI¯ €G¡ -¯ÁKhìî°@kÈëNþ’ßé©ý;.ƒË2p{êH»CÓ]y˜‘p ÚW´ñ#<ûjžü®Ÿ1Ûž—µùi²°Ùc¨Q±»œÉ¤3tÖþ G¯ŽäÕáÿÕp 1ù¦÷Àúhh ‘Ãã^ZBÖÝ6dhÈðö"®ˆ ·»)ˈÒrêÂlÖ_Ū¹ïyw‡©1ñ3¤U¯^*<ÃdÐè^¼ÀÀ44‹a¢u=ÕØ&¯"¢Y›¬þ_»c_Øè´etæÎÓLÁ;ˆ¨æw¦hcº›Ÿ!”ψôÕ|ú»X×ï¯ ò!)"ÖàɈFåƒx°ðþ­ÂŽý„´¯5w°º­£)µöÃwrý”¡Dr7(wùL޹“±îFRÝÝÙÝx=áÅÏøŠWµþ»òW;ý»9?1h ј7â͹ïg•ìê?AMéHXÓãÖr†¹;Bº‹bÜ¡¤¤òî.°`Ìîf¥)‚æ«ðlsÓöHÿ®ÝÏøò‘Þ#‚'B# ¬t` Ï6<×{­/…|D0vP)ê.ZªÎnê)‰îX¹ |î§ÞŸ»¬„D‰î†„ݹwg}3w?C¯¶øý;—]Lðì qax¡/ؒ䉑Ä+Ox?I#Î~ -Æ5…i­0âtˆ.8ÝYjíí‚Ý!䎤©íËsËðbç¿Æðnš1äûpÄ>ÖGGGEéf>8D)(`G^¢ÃÛ-*Y諈œa¢Cp‡‰gÄ£M=sT -endstream endobj 24 0 obj <>stream -Pàù -X$ê6Jûƒ¶gÝ ž1"Þoâzo‘ª&4ÍèŒ :âßùìD☸€Ábk²À>&\‰CgH%ò鶸AŒFGcâù¾1’t`Éû³¨¾xëlùæý[Vßi%hÙß™Ðz©T°ŽF¬gºy“Lƒ§T]þÍ£æâqçÓ\Ï-^0!‘h%‘Ùg-zr |<ÍòV´’‘s}ñB¢ì‡TlÛr¬ °P$‘VOkŒ='\.H;g‚¶ /Ö„‚û¨âÄ+ò - €€F¹`@ÁPG9ŽB!C1€ !€Ã¿ëse~$#ÕÝjš<#‹×tz“õþåxå8$%5ðNìïÖ"äwUkº'#IÈÚŠžx† ð¸ø'™ÑŠ'̘ðAðnøŽ(©ùAk*2gè½Õï:C²àªØîBªK×^9d¼Kö0¶„ ÇèA¶ -ûÃZíyFÚï -’~-Åá 3dÓ©†cOó¶†ÄÏeÇ·‚ï²p_”ï ¦5é»Õ¿ÿMðŽ³€/Êîd•tªdØ‹wBsÂïv–5à¯ÎãxðhèwXP\™ßXù=¦ùTrH$ˆÈtSÌPʆdÞƒiüîfæ­ÆÏ0„«£Å 9äõ ™ºYw±Hð.Ãw4pÂïxøNÂx¯—àUe$Kì®B©þ@¦Þ§ï3¼Ë×; C$ù‘ ¹Õ…®©‘¾ã,ów àÞ0ãý”̘`Nµx‡ß ‡pËw˜e$9% þœa]g¨L1Z®æ†!ÜG•Þ]ÉÐÀË(*N52 ‡¤ôn DÚ2Œ<Ý­¦í½kd«3}軎ÇÈI4¬)3ó0‘Ü|¼‹£|gDÍ7gðVÅHÍÉyW àk0xb¸& »sö˜â>ª qaüS ïì÷ÞÙ(1€¸Õ¾”€ yÆ‘¾³”¼—õ9#I»ÃBˆ´öbuª×á]‚á;Rv‰[­(å3Râ¡ïÖig”ýø¿Pâ5ÕòÕÝe_F.3"„â]¦ê#1 ¾ãvMç;Ÿé;›©gl‡Z11}¤¿&Ù¦:ên¾ÌØ[w0zå´ï!±ã­f<º¦q}Gißxdð îôŽ©©¶Ê·S’y*+Ó»“Ÿø€¹á;9ç %Ï8Ôw*Ùggù»ŒszÇÊToª;˜2‚gHG¼ûлÈwAáwt2|‡há\ßáW5p«Õ4cÍÝÁÁŒ.%) -™Ê·¡í߇CRê[VbJSg$ÎHR[ ã¸.xÕ˜zÆ¢œÞkHÅï&QÝ}”33Ä»"'³k¤XfÀ{÷°dLjwü´pÃwsÐ'¬ë»º‡§åà'û»é2aîîžQw7ìîrÉŒG üÂ;€\ô<£<:=‡ž·£%0 .'~'ÿ¦wÂ’”Ý1½›62cŸ<4¦/€«)` Ç”Mð´Òw e/xá)“P1ô<ªñ êî'ŒÝ½®ïMï ±8gìf ®^j«ÑófßïÃ3ª-%{ïÐ ©f™ØÝÃ`ïhÊà:úÎW‡ßUƒ÷mÝß™¼+w׈öRiHÓ#vW%3ž¹xwºϨƒ«íÛOþß<¦wbÒfª·®îtxˆ žÁW##Ó…ŸÿpþÖòþ ->U)¹[ÒpG5×èŽ2Ã5 ˜amHf$Šñ¦ïhpu64Òáéà•ßí–ß»¯_¢!™2û PÔ;Ìoú®É3Ê驿 ž±ŸßÁcïQP ðîôå[ǧ‰ìá³wGp)y3ÝAxñÀôdœOð|¡ÀÀ6øÝ•Þ½• Ò Õ…`{ïd”ÀŸñ¡ïbº¦=^S\©à4®&r.m.8ÚÝ• ÆtîËÐÈ`ºŽ^ÇTfœ>!wï˜Ë¸CßU¬íRÊ<Ù…9`Ö;eØ]A¼›°q4 Tk\O¿8;¥ O{wì::J{×`w²ÙЦ}Ujõ>f!ÞŒÝà}hSMøØ;x5Þ¯•Fšòš®a.4¢<±Ñ /9NìÞÉÌ¡ïÚvÆ'*Fþ(ñàiš6Óï.ï¸íõ—¥‘ÝÝxçÏ?pF…/ðßéŽ O`¡ºƒüb†ÒÞÉgLçqµ«Óš­3–ù!ƒwÞ‰¯:RݸZz)ïú‡àwq‚WöÏ‘ì‡~wÜÑBr!¡X!‰œ@€¨Ø»æÅ;CðÛEAãÇò÷˜z¬²-õ'j¿”´5 / #bˆà.£Qp@‚Ú¨²´m" D -â@áXGI DÈcˆ!@€ˆ0”3£Â’C ä_y(H¾#À€³:¹ˆ3(ñ]%F²î ˜€'H_ꋜʙVU¦ÉtoõÜwÐBµ½îäŸù¤µz㻪`¤—v¿cÝZ(ÌXE;²8ÕMC%$Ä œô]ºÒä–øn #±lÀ”MÈŠ ‰wÎà ìRû%@b8CßYßu…‘lØäÏ鲌3Cd{±<ÿÊ{H~+»ãHÕã]D;â»@jg¤ÍÍ´z8¿k;ECØTgfxˆ‡ôÌîœÉSµ_íðd #iÆK“ö»Œx—w©fHŽL7î’Ýõjò-–8cŠÂwÃdgl·¼S(Cnf¼3V.pßU(¸Z=µšÒ&K÷®ÜVsYÓœæ|÷íñP_»³ðhf‘÷û. ÞõfwÆÈöçÙÛêélÒ XçUÛBÆ!¥GÕìN!0ŽCbn©ªÄ»| ¦ÙPŒc«ÅÅH´55¼}uxWNÑ!‰Ÿ‰áÌŒbð°3ÎC1@¶úOûÝU{x§@Õ)°»–ŽÜwdC¸ïŒ¶{gf«Ñ'¾^ýD‘>ÓÆÚQtH° 3ÃÒ«){ŠYf« ŠYb;ƒ¼-rx×D0ã\ ê(±;=¾“%ag°KØÈJŒtηw#‰ñ;Ñ´ãÀ»ÇU—'83n:èx•î]¡b«—“ÀÜú4|wjé«Ô]ÊÇtÀ†€wRÕTïšìXØD|çAîaâ*mµ¤:`0RT¿+RÌ™Á[Œ ïâãÁŒ:$n`vHÞsSÍÝñnuce«gŠy\ZΠFªÃ3.ŠÃ»JõºJ2í·¨š¾3ø„a~³Õ˜GÓö.µüµaÎNJàͺñŽA2}êÏ 6è»+"jÒ8Ùê]Ö”ü_ˆ½V®eÓîtŽJõêÌh—Õ8¼S<([­¦Û;ó»¶ž7[&Þ醺#™Šù0¡˜g†<.ì ­~Gãð»<¼¯ŠÁ[9‡w Óσ€jSM÷û®Â„¯‰ƒ% ºOÐûÝé†SŒ$¿+ºœ›8¶»UZÝåâ -ª6 Ì Å+ü× úq†®¨½›¡ô|ÇÏè„Nr…ç8¤æ²ä7ùºÓ¬îösJžfY2ØêçÜ9üî¹{‡K¤x<ϬÉùE¦°iЮÚa¥~Ž8ünÝÝÔóɺK¼þ)™:*C¼ã¿€2óMp¿›ù€%6M (HYUO5.0ÃpC -ï’fÇèyµÔÀîÈäw-; ž°Šò¼K‹ª5ßÑÖp1—ßÁ͈\«{Æ3âŽ,™ñÑïl‰“eG“d»wlȃ~÷"Å+ÀÃ>Õf?¤×|§(¹|‘Ðkµ±õ‰ x -ìiv÷ýTê_³Þ ™ïÒì‘PIßµÚ_5Õz€Gf SÝ]¢ÿX*µþÕÔªúŽ8ÿi¡}WtV“‰3Tåwݵ=5U7Ÿê󇤛øŸÓr gžÕìµÚRÑΰ`ÌÒ1•^é_OõgÄÉw·}Ÿp†¿†ï¥­~x¹–ËÀ§ôÃH,UÿŸj“ÿ#¾ÓkxráŒ9㞇ï\ÈïZ{¬Yåîæ4Uÿ׿v¶t¢7¾[ÉOgçLÒ$ @_«MÔÉÆ'„‘òÍê”ÕÓfBÀ†ŸS5¾“Ì Ð¼«œõÓÈåäó0{ø"£ÏC³3€Ç½¤î®ˆ©“Ì kwÄýRΙ¡öŽÕÀ+I`]êK&$f쑪¡×¿vR¨3ôžÕI–8Cß쌥àÓÍ1ã$»û»IÕ*d†¡ïàþU‘Z]1ÒÞ'õ Lu[bÆ”2=?Õƒ ßáêïgX«=søN˜ ¼Ñ­ðœÙ]D Bªn úÎ~¿;¦µšœhït+wÆ-x|¢Û”vw£ó€¯ðMÿ0T@¨ÕËÚ»?ð8<½f+gÜej–¢&OÃwÌ04>¤#S*wqÀŠ|çVó ¯iöîÀ­F+¸A5Ü9Óôf¬»´H=`ÍlØ+š,ëx>x‹F¤Õ`à.$+[2I¢ñ#h*²QAâ9RY²c©8´¤‡"€Šd¡À¾Ih€=ïH¦‰"ë‚ÖM&¼<–̆S: ìªöƨ {YüR¼Ž;PÚšhYòýØIû 3b[EÆ»zB"SS¼¨qr!QÖ‘@ŒA£(!b€!°øqØ"ù²Õ;Ÿ§)1ðn¬3»=Öpw!1#©%ðî·zQ°˜z×eENS}-çŽçî”+Ó«R3²Uýb½òŠG½{@V»ÅQø£ç=ÂÝéÈòӺቩz;McÉê<ðtƒ;OC€->xœ»+‘HõUý½^H½C;M áÀkܦØ1 Äd¹»š‰šï¬¨Þ•;M™d5.M•rn†ú´”Þè'· õîe -!DzÒª^iýxý4ý[xÍÙ@wC€©úƒ"™|w‹[½3=Mn!î0ðžÖÞ‘,5MC$¤™ñˆ­¨ÞmNÓY=™=iàáÝ&Ô1tÛ¨HÕmf‘¾û|ýmGßY Æ›ÏÜŒZí´'6 p¿ò‚ÌP¤êóf¢¶U½[FV'~ÀÃ×ýÛ÷E¨dF»;Öwsl$*—¬6=^cl&uß:ˆ™^úîF¶*NSûA :ðjÇd»SÓáCŠ»LÞ­yï’Õ0±H¡5*f[~¼ò!}3/ÓïHú>Mí`‘6I\^!¾#¥j_3¦ÌŒî6UOVë©€ÝmÙbµ8yúÎgÜBÏC,ëÁ3ˆ´»–T‘’’d -áµÿ.ô®J¥)˜kPtηf#+|'Ú®– -Éj.àÍÒÇ'rƒÌá;Ðí fbhàoXçGw%3¾+©x¢ús™„(LpóûàÙì/Üðà²cÊã^a½>Æô!‘ìÄ×€gBºï€SU°!U³4qP]€wëØÚ¶©:ï|“ó¡ÝÙ°f†ðÓÔÑÒtXA;3ƒÀK ‹ßƒªïÔÝ·[{=Ðÿ¸ÞÃàuäã»ï†š¥xøïåã;Ã¥w½úkÏÉóP <¸øFäÞüÞw}“gC¤\¸…º…Þ<7!-Õ £cÆ:r=ÄkΕòQ`}'=ÿ.á‹HÀ#jCÌw,/O ÄÝq7MLiR8a _aŠ:!‘vó -<¿xÅò᪮Æëâ^]øKçèá8ȹðÈgW=Ø\«9©rßµS^NnC1÷nÔ_mÁÅ©n FTÛ1ÂTõ±;4—}hx j¡û…<-¶Ÿ­ºvÉ>÷XFîÍn‰v#ßaðª†ËÁ»F™q%½£˜ <‡©Í('’¦¨Y½»Kß1n snÿÁ»€ˆTð˜JÍÍ0i5M¯O°ê¦êkû¯À»¦ïr&†ì]äí<IέªÖﲚ!š™›1MašÇjÍÀs¬Ñäu“û¯ ˜{#ûid‹Ê¦)"Ŭ†ˆKµ%9 (Ä(víCv!îlïÔ¬Hˆ³úèžÅøtœª—˜)@ï¾CSÙ—‰É#¬®޵pV/oü® «ú|ÿ¥Îa»ÈôŽ^³Ò4= 5HÕø9gœ6cñT=¹ÿŠ1ˆ™¼+ïlï²aµ -ßÖ1çé»[A@|Ù2U£WàßùB›¦å ØF@¢½«V߀ie1U? æ±C÷}Ñ™Š9«Cnàí^÷ªFª­1S+ô.Ã37#gæÏjHÀÀ{ÉǽçuîtSuî9|*"¼c\^›Õç{$ƒÒj{wðBYÕTûn†«±Yí¤›µß@P­j²ùއ*’<è]@pà3ÊŸ‹àãÀô†jvÍ8¶6«/p†ùð - ÐçÞžU Ãï¡s†ÒX]¢WÀKlÀ³éŠZÕá˜)íg{W5Vc@88#1à™ ú×VuÝw?ç Ÿ °WšZàŒ%³šžfF¿ª¶;VÍ( ýY³ÑåÁö˜®{HT¨L¿æDß}¢¦gõÈ“lá*Rx&Ë03ø$3~«ºaÿ¥Ö ¬èY­PiŠœq>ðdjN`f$‰«:œïf¡£bË„3³Ú¤ç‘j%õÁ5ä¢êϪ6ƒw4ÐBœÝ $8ƒàe)…÷•ÉiËÌ0á`ûn Úó_øäž1œQéþC$`=ÍŒ·ªðî&´ó>8þ"]Õ»9ðœ)©´>AŒˆØÌ¨YÕ¶éØhžÕ-û 5Õ»Ð"‰‰sב ©Ý Ĉ“{}GÂÚÎx±Y¨AàÉZƒì«éB¤™a™Ì`„w‘k8#ñ~´Ej*ðXöAEÔPÉÜRÔYÕßH?YÖÔ"ñ,´úÃw‡*Ò13ðŽd g˜öµH‡è]’@{cà Ñ]|†Hšf†eWµuŒ>øFÒµH4JϼB~?äîÀ -‘É òÝŽN¾c^ÝͨµH”¨wóÝîÎY™Æè¿†S¦ŒàC=I3õ.Å$€99hç}šî>ìÇSb± Gƒ±Î MÕ‚ŸUǨäÛz—˜œñ[¾[YGfªÀªI^÷&5Ã~»„ÞÑ NÎ~Òy&½Ïbá;ŒbQá’ÞÝIÍx¾•Õ€¢wkÀ™²ú‘¥©vfŸHŸ(k2ƒëݽ„uòf€ô¢wÃÓ_¦!güR3\ -‘&bÕ±tÑ»ÀêÃÙŒ‰µøúÒôéïÀšá«†”kÜÏÏ´o)¤f@½»èµ›Â€ÐœA‡ï¼9jÆD˜=d1ÜT]RîîT.ßKQAÊ´‘¥…ã28 ’ìbA쉚¡åUÎôn\ÎPt ;lIÃ5L iªY†NªµÇWãF¹ !,X©È§ª ùîeØ%‹”a†5¸™…ÕMµwl¾Ê…´ÛNþWÙЬ¿2‹$TFõ:´wÿú®*Þy­ˆñtÍÐ'ÞX$ÚƒÂjdò¼ë¹½cóJ <\R»CèC@þšQ {É aõçôî!ßE6ð»-©:çC »fèÄ|oö³wðëÒ»æ¯]=tw^’‘*aBÖ ü'Ó -#+ˆIu]/Á±$¶¤a—B„(…b&í$U×õ¬”ó@$¦!±ýGkPп£”,j¢ 6+ÀçÁÅDÚƒŠQ@gAˆœDÆíj®ó®rA]2›Q RDÅž é“XƒMfÁhôÊ^{~ö,/™vC9 ìÉT,R»P$V -DÀ6-CYLsݨÁnq0´ qP…Q ä0dˆ1@@qÂ{ð]=ҔתÔ ½cZ= ]Zb´7KT4ÓGˆþëÝ_•ÿkŠ”vôünöX4Ó"†‰Þ廲Yb"ôªS–œž7ÊwNÓŠ™Š1ÏõŽ–ï‚ÖØîwó*奪‹@"Ž„ªéÝSknzC¾STº^À›`¸ Ú)MD@‰Þ}°Æ,U¾Ó¬ŠfJF»¡t¤w…_ù®ÐØ@ß0ãá1"ßÕŸÐ /¦™ºFØé] Ë$5˜ÅJ¾éøîO¢&#RŸ Y‚îÎz÷[4,5˜ÑtwŠÄ³V¤|}¼JÂî¥Y5ÓÔé])K$MyŽïh¼™l²¶fŠxâÈâå@“8È#aQôNÕú5r¤©¨ÓfÔör5²jˆ´uQïò»Žó¯Ãw€‘‡$"¡#0¸"øK+fE¢ŠÕAc¤é‡‘æôQ3_¤wŠÍ˜I<øî;y·;…ˆÑÿEB ‘”D^ÁòzsžâŠôíÐfàsdµm9þ—03 #ÒÔIœ!&AïÊbùî…ʉÿ«–<óâ™!±{_4Stz·þJŠÄ×f¼ð]­˜BH0"‘Ù½:ÍtJïHŽ]‘DmF³×T$ÁUŠ‚ÆôˆDÞ´]‘Ê‘ÕwÀ[@‡¬òˆÄ¾ÞÑ4»"•¤ÍàÌ­É)%zϺB<5§ê -3w­w­fµ*ËjÑÀ­Ën(R‹jRê)mW¤Ë¯š"ߥ°ê黓Ý@qª†¦wGmµq|Õ!auv*Æ -êL"¤•U³\¤:Ê`:,ßLv€ `p²š©ô u€ç™ «¦OÕ¬G¤NÍ8z¶ÞÉÁsÕ¬øW&¬ÔŽHNkW¤ïPß@„hÞyõº¬ÚwËÌPEïBµ+ÒPY½Ã§áßx*!ÂJ™±ø¿¨Ýõ.^í9dµ5#Z'~@Uí8"½Èþ« ¦w5µ¬Êjè%åÊw9~#ÎÝàÄìZo¨Õ»œ¶ŸV[ ½{òÝ}d®ª³±j¹šŽV1YmiÞy¾ö×›‘sê,ˆ@VU=€UGÖŒ@×£’Ä/1™Í; 4|‡šaSX÷f\¬:ðÒžµ´|W¡¬–\bw£w˜ƒ#à!ÉÊŠªÞº•Õí#ônLÁQÁ>Ä °êT½#Q+«¥|vt‰#Ymô.´!g°¬XˆwÇ9ÄHUÕ“5#r]Y½Ãï͘ÀY‘U[Ôbö¢šÑbk¢0zG»§øDêÜywL‡¹#Ò,®¬Nàè=@E23Ä&âÝý)3hèÝ˸²šôî™3æ‡Ï“TA V‡)½û´å;"ß¼CòvhñÓ?eu+ºB¤"×72£ -½;ž{‰‰ë„Ç¢"…ìr†Ê6'ÝÑubõ®Æ-ßeåöš £"¹¼˜o Qsƒ\È,ˆd²€Ô’pÞ&ÀSðµ$Ƀ†ÃjØ• ö¬‚ä˜l$t€ŠÇzÝã:7àÿàÆëªKù„,ú`³AÜãÄ£±_^˜¶yŸI$aØh|_×mÄÏG\ŒDŽˆ ÁI#¿{ÜE¨ÁnAÁ@„-iÈÒ pHÊ8AŒ!†ˆF€‚øFSßJŒÅßå^Mk%‡ë[ÓÑth°â/Àwÿ4l>S ³ÞÙrX‘5Wä»ÏàeEC½«;å¨aøÎ>ÖåþT-ºwÇ'%Z$‘­\ÄDÚU%íïÖ43”Ç]õ±Bñƒ›Qšï>wq81ie»£XU{‚wP6c›9Z‰¨]µ¢¯ºšªw$™éªUc1¯ÍðØÌ²«^ö«®ŠÕŒüMv:w^Õù‘Êó*bz6`³îqCñCŠ_uÎLx®j~슙GG3mlÕdÍP»êQ±úæ9O´`½;6ƒ»`_U—Ñ»ŸÏ˜¤I:ZJ&[5åHZ¬^?åãÄ f—ªÖ‘™¶6ã^çFàÑÁŽÍXËt:J«n½¹~Õ¿7hn#]à1ÿ´jÓUݼ»v6ÀB«¡£H§øóO«6)"0£Þ)ŒÆjvÀwÊ7"ˆ ºkP­:Þæ;b$5‰)®Žo@Ø<šœC$²Sm†ç !V[ñU7ÁwH88hÕñ?dµ €ÕmÔÿ½5¥å;µ—È)"?ÿ¯Â·êÿ›‹MbÐçû½˜ŽVi¬ÅwÜWé°6jÕÐ1"6«•،㿂ŠäTÉ:E¤`gF…«šˆ“† ÏžfÐ4H~Žø7­Z­“&xªH~ šÊÀýnv$‘üqëéÏnEŠz¹#þ­UNààÙÝU$¤Ñ´_72œšQP©ènÈêÌlÆ®Ðy¬ÞÂE•"ÀCp†Ç×ä1³k]¸ßË„ùÏê‚D¢y¢²¥ü*’‹|§r3ÿÊÒì–3SÕ"Oz—ÝÏ MiK*y‹êfŽ9É!(X?GKYy''N¾Ñ€F"‘‡´‹H¦õ.&ºÜyÕèn·­ÇE"ÑyÊQÞñw†¦»Ëwí™Ó›DšlÕ:›!ª¼;¢”«hçhÚ¢ŒšDL„hY©(ÌL¹ïae("£RT¤’Ñôg04>³/ð‡O¶™N$y«^EM BZ¡™ÍˆÕ3wÇ]I¤\dfjNïnг05H©X½Ýël¦Tõ­zô .ý£©S^Vn1FB›/TEbä×à­Äh㌠2ÝHà‡È¤éÖ-ˆÅ›i„sWŒSzQÓÍ…ÇÁÙùᦄ>…KLÅRÙÛ |åhI5‡é8»²Ù¡$(wQ=Hæì„£ö§Ô\Ñ….PsÄ` õÈzrÄà¤pWZ”‰1%¨ìƒUCPîPxœ -V€A Œ’ÑiÑö V¨vFø¤º3 ‘8 -9Ž‚(Š‚ŒA†`" ü€å|PxÕ¾l´*mÔhc«Vvðw¿•)Rî@A ‹3¢ÑB°êò„ÍCZÁÁã )ä¿+•÷X‰ È¢Gä]ídã–pÕ|0N$ä6ƒt¡Šö$,­ª/‘–È;Ûéì^`œ0òpJ›¡Eº¼«ßfeᜠÎŒì;;ÐÛÌ.U¬ú£ìÂíìá” ›!k²ßë¢Ó&#Œœ’*mF’èŒ"¦®ÍˆWÈ;bé8Áñˆ¦ÄÚµ™Ñâ™œøE áRf$Î`ˆBÎ<ˆ Ñ"ÚT½»”6#ÅgŒ;‚^#вÍHôàqx÷Ž.‡pêDÕï¸ÊfD¾T´Ày´)‘«ªLØŒäUugD‘ÄÈ×v„V5‘ɦeÌ jy‡MFYãœ'Í çÔáŒR´Šfµõ^?ÝD6 àbª^¼I{)!hp†/ -3ãˆb3˜Þpi(’ÑêÙâ]ãmÝ^¦™ÔÆšýÊ‘¼|zg»±j!:pf¯l¦ÏüΊLkݦibs\ÞUø¢&gÆ)³6cH®„cPÍÈL$@ï‚E±gž”‡SºÉéÁ7OÆdŠ„gô‰â½JÀG¤5œÍ@…4ù‰¤6E¢Å`K(Bvf¯‘œqþŽŸLðS¤ !½Ó!툴1°Õ#ÓÔú(üL™ ôŽ¥"%éK$l#"å$¢E—w•)R°@¯“ßeH[Lï6‰–w¡—)Ò´µW=NÄZÕà üX™§^ÞW¦Héõª)•HCýoéÒHûJa"1Þ0)ß½DQ·‡ŠDøû,ï‚P>‘ÞˆÄ8à ó¡—¦ÌT>6J$ªI–ðp,*N'‰[Dz‡õ_"ÅlFˆ’Þ·W=ߎ,AFi†ÉÌŠó˜K$¤½G{ƒêµ7”éwfùwv¡Ä°ê´ï>¢H›BÍ{{T³…:'²‹;¸L8Éù‡r²ÜY9‘±=yšÍÏEñ,™Ä´-N‰¬0µÏv€TL@–‘¢pYqÿèàQQ!ÂJƒP¨{‘ÊäU@Œæ8¥ BŒACB€ðü‚ÀfÜ,Z©×ù]QÕ'>U§RI$y_ÜRÞ”¸«}28u jFk‘Íæð"àÒ»ÿ,5£™ñ$üRÝÉ€ž+¤rjvP3žrYãk6C~¤ä°™¢=®Zz±‰2#À¥w#J6yGyE ‹Ûaï&úÝŒ5×U‹?wbaµéÓS÷L5Cxq­º²†¶ õlRÐåÁ#3WJ!€Š€“O6ή'¤ôŠ‹«hÌÜ"ÀÎ ©‡3~Û;JÚgŽ`ÈŠ@î¿ 4f^~SN€%GåïV”¦$*±Æ]u[£ñN)ð(¼{™ÞuQczGÖ®š#HŒèm}ÿ­: «)ü.³ÉU«œA®°J¤À»„®š»h¼S{«^hø;%Jôàej¸j8ÉJÂ**`˜…3¬$CêU­¦U‚:²U€åçïžOìjÆ$}ô¬^KeÕ€*› -°õ2ZÚºj±÷ÎÛäªç½$€Aö’]u6&*ÌÙâwŽ!»êÖ‰ôDïÄP®Z±‹¸Ôz¯ê¬¼£àØUOï{KÔ(aÆUƒÿ®ªÚž©z·§rÕòòN «•+Yú™Â3u¦íâZÅ`¹¦:̉GÑSšÒî¹jÔÂê:˜×Dš÷A‹fG3ï.uÕàþ®î(š‰^BPH¤üžÉry·wdo¸ˆX„¦¿ó:lÓÍô´H¤‡G'R¢ehÚõ;¯ùž„ÜLÉ €¦‘¼4:‘®è{ïþùÇ$1i8ƒYZÀ[]5P¼ë<þL-ŒBÓ‹—‚rÕ -m&Ï©fô»ÇE¡è0´ôcjùfê´¼cRLÀkJ¸¡–ôîÙ´Ú™Vçϸê§Èд•_ͽ[z¦#Ù!Qñ?`DŽA³¿KG†¦Ø’˜•Å;qœ±åĈyRæŠpÀòê(‰©ìh0 -½Ûo’wЇ­îw²Íßå%ÕBÓX­a%ˆY%&©„Í=Ê„¦ÃïBaõâa›öŽŸ›ÙGrÕ™ÇitvjM¤¨ñøÀ”ˈ!ËåªËƲñ™«¿gö^+l#‡ª¨R0)4–)#Aèw (pD*¡íN½€É·¸KJ¿]î7LÒ©0Â]R2ðL“ÊŸÀÒ‘ôÊ›&àìE—ÉpÉ +‹)uöåw`麈” ÌÊ»û?Ü g¨Ñr±@„9@(»à8’ãP…0È(@@€ @@„ ‚@ð½Ð\õwùwÈhj@ê­šWâ(*ñý³Ø¿«9•3¥#«VMHD«ö;h›òL#,gz›DÝŒZÉ™–ÑüÎ1±gê—MÛýîžÊ3ÝDD“i!á<ƒšžùu -é™þƒ0b¶&’Æ0&H†M}„”ažéé¿ÓE <úbü,RÅ;[”<Ó¶>ä¤iŽß\½=Ó3i˜š†±­žÃîwD›©°Vx¦!Ц±&¯“wú E•ž©ü‹`päæZKÒìXZµD‹pô¤)‰¢µâXi~—¬{ש*x‡HÍú âX’äÏïÆQ?×Јw¤À0¢OåW³ÌϽµªEùÌ£ÆÍ¤fð c3$ÀrV£±Ä»"y—DƒßFöË”¥x'íwQDònÉiÕ6#Ôߥ±Ä»1)‚ÈYùg…BÌT*½Ái@çïŒ -“¤§WHbHâ¤É]{-Ú’ÕÝqç Ù—x×LQYŸ ïÞÜK¼ý]ÂDj¤äP¡EÑï¦)ÁâÝ$üï`b” –VãE™HiàLb¨DCð(ÒÔ½¸‰®–x/æ,g—>ø¡£ß%û0ù‰oRgÎ;³‰tøÝ‡ú4udEâTÍàÎØœã|h›a˜êq.FÉR–U -C&’&1;©ýï.©Gˆ·Á·%‘Œ~×F|EgXí ÀoȪÓÿ]îáˆ"d^ëlè{ùOJL¤®73^Ÿ‡¡Hæ#Uµ™FþŽz89“gZ¥Wñw´Ø'5§„d¢6ïCÝHø¿£YD‘õ½ï¿ûŽÞ9Oˆ£ôÞrÕLE(}¯PØiFyÇFÕˆÍD2Ô‰!tM¦»KuEï=þîõb$ÆËÓ óôT:9]p>3lÄj¢¿ÃMœóÅ¥ä4c -C'5¦1šäªŽ„«VA¿¼–ÂfÈïÅþwë•”Õ±sû»qO€Ï4ç¿d`5ˆT4ãEhJq7Û“ßö𽈣¢²ñ»dw½ÔËlÊyÄŸŒL¤îFŸ©&ä‰ü¿Ëç¦p¦¶0B=3C7<;K6,/ -"2%(E+:9*D'$ !1C.5JJ%K;"B62EqçGA3€P -Ä Šb(B†€!ˆN‚ÿì>õÔWEïu½˜¢-Ÿ]BW¹ã‘Znq!@¾:¤ñ,üNVX»·QËó®NžŸÁñD…Ï5^ç_V2î˜5¦ãK±]¯¼]ð[ç·¬s2¡;çâÖ ñXîæ±¼Øÿ:'¶óµÂæFèõ¢9!+-¸ØÇØtxæ²ê0b‚²Ç˜¦V•ÝÎY•èì‘¿-9õR -8ú ËÓo"€ÜÐ`v O fôn–õ9nö•ˆÙ¬,G–8Óiü;áCeÕl ZQð½¸8dƇTq;”Äý - -]Ý…=‹^GD4¶r¥g§;ˆ4ÿ" Q0À•¦3ÝàÎH$€PYðLö$¤¥¿:’„ÞŒ9:¢ üŸ¶”9œ‡;7ø4H¢FDÞ¨~‘ÆÏD€c7Q8Œ1#ˆ!Æ`@ø€€Ð#c²_Âîr+Œ@1(ŒKbÛl‘H瑆4CZöwD$fíʈscØ3hgˆ (¨UÿŒ -4ý3©Ö¾Ås,ÀÛTÂ#"Pöd§ÆÎDZ—‹)02:ùЉTopâýZdi¶+HŒ]¶ŠÅ!ˆZ‡¹:¿CAô;Z«ñe:žé,؇_åò@á<Õ`"åôˆwïa’tm3¸xdžCx¼¢ŽÛÕ׊ÒLq‘Ešßá«$üæ Q@œú)äeÅ#<Í3UùB;’ßñF¡äÀÈ“èXèˆÑL¦)'Œ¶7áßõ…±ãëL+®‰ªT…ïýÈ™vîïðªÕ¼=}nün9S‰dÑ,$Þ=zè{fÜ슩ÆÔ8Å8âîœøÇ Äå©(Ö6¾à‡ P#¦×éïÕwÏ+„2Á÷ž‘µÈ¬‰JÀ§F8&‚f`‹O½49æGŒa@ƒK²"«. -ô*ÁWCaÄ4ˆaSzv‘X@ƒïÎC£@¸‘+Ž\7":NÁê1DØ]Ò ¿Ê°º‰Òþn$ã¯>xÔ¢²vü¡¬>ï@|b¶XAIir&.Ïæ)FØžûÖƒ¥;DÃEßEe"ü¯!°¸ÀÂ"m*·'füeÂo%¹tèXA@"2&’i;€óXÂâ-vU0^~ë;÷»™·ÌÕ]<>0-áT¨Á@øŒÊŠzaHŒä@”C9B!€!B ü€À³€'F Õ÷ô"v‚2x—¿©NQ¤!ÑM$™-Åò§Ò:¼‹6½ë!žÃDºb)k£H"ßh"ù‹TÜ~ 0FôãÌŸH~7{²¥Þdy„þ¿#"Q…Ol·„R‰«^H5‘d”¼É» qVs¬a"™Vý.[äá_q£ß§‚u-ÞåŸ|Déïøá˜áŽá”ô\uuªâÝy6ƒâ®È†±Ësjwg),xøËh …èwÉѿø"¶JXñ»5iÜ<üˆTÇfÅ;>:9+5Ú*V­®PÖoˆe.bj”y÷ê&öóùÏ{·GÙNçª,äÝRïŒrówIÊ >ƒBfèÿþðlñ®ñ®º5Éš@Þ!Ÿ‡„‰w7Pሑ9 šnÝ¡ƒ8 ‘GN!¡é™f fï@s¦lñ.ÊDŠ–²D²þÍI¬uÎÁÁýîq?ì«z˜Ò×Dx'Í(8Þ‰•: 4:'IL/H19)7D9, 6//I 16% - 8I9O¨1?@x@ªœ‘ à`( EY¤0Ê‚Œ  @ø|Ï `¾Ë»Ô­šÙU³Ó»Ô¸øUs¹j¹‘É -°€‘/lsèD¿ëO)Àò™³Š!®ÚJ‘Šu›!ɶü@bÄÂj°QÔ%ÈUWQT]5·ß!Áøöºjîò.k -v0ÜUëpÆ{ÒUoý™Pøm„ÓUW0~:JVÍ”wq+XÝ6ŽX³—Ì*V°:Y´ž ®üã¼W¡à¿k:Áê “ñ.#Åk]zGQ¤wÕ« WÍlŠ -V7ᣌj¹j¿›ÃÂDòÁ*âîDÀf£8‚Õ?ENÜt¥~—^žÁ\Æ;ßß!]uÒz€ÀZøÊ»»§q`u[tß¹jMÿNn1U£vìdRÜ!ÀêqÆiÑUÇsÃÕìhïÌÀüçTßô–¨ÙŒã¢«.2›©<®1Ìå$ -««â{u¹ÈŠÀÄï¢ð“Ìg pÕO-ô.Íå4Cw$æÉF%(ï5í$*¤6ÓÀLŠHUͳå?ͨXÍð:gJP&‘+¿¿cPëõ¨g3q¦tøÌ(w×Q꼚—x®¿Š~wÆ…&—»êGQ+‘®Îk’V+ÌFÍ€#<ÊïZ((GQIÕÊGÞI¹jŒ¼›E\…Õ ¹ïˆÞ&‘Q G“W+ç±%š1 UÍpù#fëHÌÃ:…–:«f/tèÅßuPøH©Mf‘Œß͆T3¾®:ü)’Í`tâïþ‘‰½«ç!‚䜕þhþïnŸ>bta3Fà:Zí9ƒêþ¿3Š‚ÕĸÛ<œ¿h5ƒ$ï²Oú^Vq²y¤¶j„ßý_,HÍ`HHN{c^–¢ˆ/ †¦áyqFU3z~§ŠÄÐ,gwòÞ…&ºÀP3~Wä”™Áæåìï\âÑì·GÕú€+5E%7 ¢eNÉjiÿw*‡bE€Í˜D2»Duãìª]¦Œ. -žUðCs@<kQ\͘ ŒÈèJ'Šd+<A›Hg¿Û¦ú5‘†¡HL$ÂU×NDp0g¯bc7ûñ†^^¾gÔǺ;÷C€j *xéú ²È"¨ù^ž -xJ,–j"˜Tf' ­–ªäŠG<06‹ŒPT ¦Äø7ª•=€5H³‡ðºãmŽkvraÒ_aÀ>ø›7q¨á~±O‰ª -=¡(‡QŽÂ(ÈCŒD@àÁ¤H™Äæé½CŠÌªÞ©Dêµ¼DbÂL­a“È ‡oà Üú¨yE¶Á•R¤þø½žþ.9yY%RÁf0$¥H÷`ùL7­7ËHvÛRK¤ý(ÍÂCñ{¹èøy†tU/é޻͕”"uHsèj.šH¥:Ž -N+JîØ÷wå¢3ò{Ã*Ò»°Fd\‰cD‚ì»fºfåÕfˆ%ElzñŒÔŒœÏ§¼Š„'ŠýF˜‡ z·—’•$˜w¬n3V£ùQ=ÝÉ ws…NÂwª°ã¿Ö1,] œI¶W(¥H¹|Ù]²¢B‡ÁÈðÆ[ÃG½0GA ËvAÓšñ´ÂJZ¸ã7 -Xã®›Áu›qJIòz‘pÕÎý4Ž(/^Ifœâ¸Gýîl´ -y¼ipÕ¿þ.šLcõ•cL` rí†%'H—X*9ÿ€™ÚÒ¿d¦C¥2ß“¥wã•òŽÛfˆI Oï&Ê¥¼“¢èÝæß%\Ê;n)Ã0ÁEÒ_€€˜>š ¼k*ÍãçÀ¶IL^Ùït"£onà„w8þªÎÙL’~èO )޼Ûþ]‹t„oˆ$FüÎGyÇï –¯ð²×—9®€Ð à‘wáâ Ç«½Ó=â)︥ 0ez÷öðåÝ3.Ög{@ö†!ud_rQÞ÷T)4ÅßËK^ÝÈ¢w°×o£X3==,-uX¿ŒXh%ïZIl¶\.i‚iÁ` ¿Ó’ìL'pÕñÝm%‘êgê½×Z -Íwœð;T‡â¤Ç:SL'^DW&ýžlJÅžæTÞ &6X‚½¤ÉaøÀêeÏyŒˆ˜ß‰hU™NÁ ñ;Y&zGg MåDÊ~cgÚ+x8¸°UÝl3ÌIq¬P3ò¿c<‡¢ÏäX:SÌß1N£ŸeQœÞ?ºjw¦=›!”Bü$Ž™Î—@üqpx·óŒ;.t¦ÿަɉ”|ØÄEï¶~—DNŒ¯ê˜ƒ;Ó 6ƒRJ- &A%n(À"}øA¼3üÃ4¿Rã²…Õ` B|œV‰"×D@"q6Cöpù"Áê‘@1‰5V¿SáDV¯¬Ï¬ò»êi8ø@“†ì©:­QOÏ&QƒJÁg®ÖàSÒmfoFôT)tÁÉ_iÀJ6¥¨<²j–بgi$¬€oj¯œ4± ƒCEŠŽ­OvKhe T¨á~©ˆD8à€ -¥Iã(Æd 0B ÂÄ|Ì¿Ì 8€vv“Ð-"Dó²Ô²àƒo¸jÔpFß&«Ùf 2&ªI;;ˆ2Ô{Ðy•mFÐ%FƒGþÇ™ˆ°• Ñt„4ZiVXÃ8§e3¦ÛÙQ5»R›¡(ÒgÜç; 'ÇŸ/jìßgøô”g×(ϟÔèèÿÁ™° •…–Lαy3µ÷—Бå8ðÓfܬwz!Ií¥À …ÌVÚ sH¶¦h+È;ư™xkÂLJãìŸÍ°­Þ™@ÞUé"@ ¡# M6·mF1 RF¹ú±M°‹a¾‚mÆ¿[…¦×߆óužÄ”Ú NN›!z½“ˆØ€w6£`Ä{äP‘Š*g´h–HŽ6 ïÅå"EbtÈ¿#oÉ)_Ö÷ 1D6ò®‹ãʼn\*.Fï Èì6^ÄÑ -”wšG÷õ½†Ç†ô¼öT’A+‘òù» =O$ó•Pà õ(…“G‰dm3„²ýøü$s†&vUSWp9d÷±ïô*°R ¦4•@‰µäŸåÖ9T{e'Š–8`¢ `½q*ÁzZ;¹ÄŠ-Q+&ÙÓ“ ¦Òz^².§qí0¨û1a 9æ àP(Ã,bF!0@±AqðÙH¤E8P)có<òœ“1e¨“3£OïZ¿S^£n‹jqnx”ÔsÃS¾Ã¡%‘Rå9çß]õÀR‘€QY5µU•¼§ŠáÒª©ÿîçf4¤á±uR|cœ&…ÏÙI¤mß±ñL ,§"í|z+ÁÑNèÀĬù~1> ‚øª¹+^çYÀ»çšŠ.1£DïFëü[aj?STìF¾ƒÅ¢¥Š‚ŠHR=†Çˆ˜˜è*óî®-:X;T•ªw͸Øk<™ˆ‹J"AÀwס:\‰¬"‘"u°iÄjO¡)Ï?D·Y'K’ßnôìi%y&Ÿ}Ä€3j¡'ÍÔ.‘ ÃDkJd¾[ó€ÿª'œC˜wÚóªNèÎ#ÈÏ<ø»‰ uW´úZ$(ÝMT±š–€ Š´²¼3¶jYlŒ3£QïšðÐsš øƒú8#M$]I¯ŒªæÃ€Ðg†ŸÔWfœ!݉ժ½àÎ%‹Þeã4I¬öhl¹853HH3- ‘<|¶‰g°ÔW}Y{¶µêzŒÑ> -þNOÌ{¼“«8MÂyH>·jrÌßwd##|-“/ÓÕ»xßA§Á|Ý­¨w_l*œ½Û÷;µÍîøo ßͧþ¨wßÕÕ8ÀpWbòH½kîBPêVCvµ{ó$©ß%Óˆ˜Û‡ï,%‚¤3Sê>¸À@}W©éY‰ùVà&^†´Þ…ÿÄÌmÔVNï®Å"ŠfE"@öä;ðÍQ|g·Øs’Œù™D%—ˆÉð»2EÉBEŠ/F¡XdkélG€Èhê0œÑ´¨³_‰€>0„¾3miwiMq/%ÐC$l>½b$ÍÍ­DJù¤ÙSÞuDCëÝeý¿ÂÓÝñf QvÙbÜÁÙß­¯V(¶ WN€¶tVïÌa Ä8Ý¢ùµÔ¦(#C·ÊwÂÍùxª£BÂ4,7m©ãÀw÷£Ìt35¡ÞmüŽÈ«ö•ª¯Î‘×F¾»!2žrfv@‚¨î ßIW4òE;šŠ¿iá ©ÈwJ((ßÌ^Iï–¿“HÃw‚ñ aÊ»ìÈU¤ñ5 Ë)ȃóî`ß•³á;žO$Ôk±ožpFvÖ41DµU»€›)ÊßåÑZÈNü8°×ïìl†³‡xò Õ!­ò¬’«U¾ûÛ(ïd z£HT±C&KãrU11R¿û¨M±Nü®škU$wJQ“ª "@‚ÆUõËÀý =$à»ÝB§WNG) ²¡€÷w”DÂG™HVÂÍtøw²7^97xäLErÊwâ“’H„•Ù×;Žò® *’${±º]1¤ ˆ‰Ž2‘–æ -'¡AÓ…U(ºSÒWÍ$o!šÛ-54*3 $™b3RYHUZ3ØZ4 •Π !8&»Ž6®´N4Ì¢Jí:I ªª=˜’“½äÒšj´R[øx#¨Î@è#à¦ÇdG]5ZÓVm3@ŒÖî·+UUx* tUwðXeÇ‘W -ë^ä’k±û“úHHRä ¡Ž¢s2VdE$“ã&Õêz⨱rQF†œb°L±PŠZ rȃ0@@ADAðõ¡YºãPsèݦÊj:…J X¯…s -Wv—Ýû­;þi[3Þ?Þ «»Tb@{v‚rF=¬1‹UâŠîè­;æö–•Dßw¸Û:¬fœ¥…²Ôê]ˆB"Æt ¼ªfû¿Æé]ï‡b#e5dúƒ|7Ý:[q)úÊÔ»|UÇŤÍ@§ÞYŠÕìˆÄÔn€wXré]ž%²zÊk3¦ð]ª}4Uâ³· T3ª“Õ+RÈqŒv®8¬zë»V#Êê!Õ6"r!T \§œÑ¥KKy[Yu­Þù‘¼ú?MQ–Õ–Ä2Vw‡ëš¡ ½Ù®•P[ô.‰¬N{š*ñICJš²¦J×twí†Í<™Þ9 ‘ÕTUÆ©!Ñ|—G‰jN©ÛéîžQ%|¢šA@be¶"u«× <ݾ6ÜvDâ‡HC™™¾CE¢ÍÖß+jEr^øn®ø˜·#™™1\6cBåŠoÏnŽï"YQaÝÝ’ñл ÉAó.Ù>KVÄ­fÊÕÝ­ÁL½Ka$g<¼Á¼Ó?(hòÌw©ûH«™ -º0.ÙQ%ÁÂ5c:eEº¨ð8Ð ÁfÔ»{ZÍ”U¬zã»ÎTV$ºÁBØd¥Ëj@ÄøÀdÍ4¸Ù¥ÌÔ»)’{¯HŒö€ÀdäÝ¼Ž "óíL¥ùòªeF‡î.4Ö;âNV¤ -ZÀIñ]†¬gÓ2£¼À×»x'+Ò5jF‡±&¨gXbpèÎëzy¶9ˆ¢–U׎œ™ór¶,‰P¾ó¬ôµ×¶k4S~ßHÒ½¬®PGÀŒŽïT6` eJ3eÈû39‘¿kÐxÖäÚxïÞÉë¬)š©ß¡u"«—þSÜ耎¹ñ] Ù}† -ò²ò´;&×LþÔmônÞÄ'iz =[3°å»!Öé|î#°P½#E!Mn‰Éè]Š:psønhýÿ!U·]»{(ã^Vzç¦ iÊ6Ò -vÉšä 6¡œ¦}«®äA«ðå §ý¯‰1tŽHS,1‚žýµ‹`=“6ÌÝ™ùÛ4¡±,." ÝwP)¹å<Ö²|ç3‘8$à¥sa vyŽ)ŠÿŽŠâÙ|áûá;Ó4i—Iþ¯:¥šˆb$|'=¥# ¹à“Åw¦­zG(uÇí×°æ!"@ü;()aõ$»°á;_±ZÕòòˆ.e.ƒf|禸jMŽôÐ19¥õ¸ø®~wL']¸òÄ; U­_©­&¾Ó¹¾Có4^KïfY‘crÄÈBSH °b¥HA,õÅ«wfR,1ŒÜ 0ñ¯ñ<õžfÀ˜¥fJRü¾›‚ýUï¦ø Çu·V,‚uôª"¦5¾ëuõ]½Ëø®-ÿÞrzÕ©òìÖÑô^EÔ‡@(hóÿ5ü;e‹»ÿ•ïÒ^Héî¸!³Ë.ƒ˜º˜^BÝÑïp#–ç¨j#`¸›Ñ–:§-"’&îdÂPˆTúwz´æ®œ'“Š"›‹Æ@$>°&•*ŒÏR[„éöC±êèKੱP€ Ç‘¤h-83"d@ÍvB02 Vó˜UG:`‹H:@Ûg‹óÇ +¨F—:ôÓ¹1@¥ "!H[w2œM~d̵4Ð@(«Ù˜ÍZú@çÀ!mEœ+`-eš‚¥Õ°i-@˜-¦Ð¨ÿͨÁòa!€!Ó‘0ЧI’‚(ƒ"„@|ÁxÍ ªObÂÂQj†ÉáºB¿$/V7cZiÎfÐm3ô|fÔá¡¢ªEâ—-A$xßY9À7©0ªÎlï7CL¥(nB:™ñAUSD‚× ˜OI$VŸøæÙ³Ó xpáš1 ÌžÚÃ'."µö ³`5´X-laZQÌf¤bTiÿ®Z׌pD$KÍ LaïL±zdÎPZz¢cï°× Õ©deI©^‰Ôf™3‚¼Ž¨“wáe -ehU8•Ð%Öà]p°Ž@*•õÛ ¼¬®UB{— …crÄdF*Ô½ xW{‚Eb¥#0gMJ9þ |g†æp¹£T 1 Ò½”mÔñ…Äãô`u–ÎCºÍxð8–¸f̨˜§Nͨ¡øZ_V6ºFb¯PV[3ð%ÖÙ™0sÆ Nì>åkFÀ ‚/4òœáAËè.´MÕHÕíŽ ˆ„× )‰‹VwÎHRšÊ‡ÏHƒá¶=ƒÄÔ…”—T/S\·;6ï&®“œ>{sߌ«YöÏ áé^\ª€Û]¼»(ìݬúòKÓU)fŽ@b){­}fó ö]ª‚Ú£ZÆeÌDÍxP°#¦d¯Éƒg˜üäØ;œªšQ`ÁÝœ‘läcÉËañ5C<Å#ä ‹ß æ²§Ñ ¼xfƒY¼B“3üÁËèÇd)’5#˜Ç›q¾yÇ <½<µ†böF[3¤%Ñ»‹É_5£nÆÉœÙ#€ÉêÚß%ï*¬xßšó‘3”¬•˜éú޵›œ»ë/;©¡gpΈ5ï,¡w7¥@×6ˆÀÃ>ÛÀ´ m5HÎHüwØ\VýêÂ(£fx䌹•˜æ$x$ºpA$5kFMGÎðÄ#pM Î|‰yö;‚«'ï 5ãt -rF,ôî6ðR¼ºŒw—«f`ò˜s† FS4á|‡‚›¶=ƒ×vÍ ´±ÛŒÕ^ãBï¸Vû¸5ƒÂ¼;ˆ€E5ƒÊÑìÀƒÞI‡€ÁÉêúä[fÆÿCÜ^3‚…-è]ÌLøŽ[ -n=ªDåzwÚÔ &Ž(—è]—å݇¬®ŸTÛ‰˜U“N½;Íø~Í}0ÌC·’²ºJ&Òë—i”p¹wJïŽuO%™L5ƒ‡#²1ˆÞõ’ÕÔ'm;"AywȨÀÖPDV =¡ðšrYuÂ1Ïœ›š¡C4ô®^aµM.«&Y†©wwÐáÐK Š£B‘3¬KÚ[fqÿ´úõša¯Þ1AïXåß[ÈjõÿœamBl™ «êóÞÚµÞQëHäVr“ÀF Èj«WümÆ«¹jYµû Ò¡ª¾öœ;æ5cÁ#oÜØ93CÀȘé\Èw<$–™AÀ¯îø¬î]óîDø.›¿ûWÝ€¬ö[œï@~gSü+ *‹OÁJb -£ 0PI‰øX Z æ¦%(¼êüu:›LÅ€=(N…·E)0C*奨…ú€VƒÊDá]N_8-¡‚ÕìPÙ„R¾ÁjɬW.ÀûÃ~:ši%(G  c­% -V³cí«b:k‚›0-iámlI Dƒ,XMëgž§Äv8Œå5e®Û@”9fžJlÁéÁ˜kb€¶1IL±§gáÝ‚¨BÍ  ( Xe àäÀÐPi¢”RÈ%ÄÄ|¾°[$.ôÎgV+<ð~¥½Ìª&^ö±0ùUûŠÇÚy¼rÀϬֳwöê>ÅnfÉ «øŽ©œ‘€å¬–|˜¥§jä¨Z8DB³ªýÔ¯ºg€šIö}†™Õ2ÀC&ˆÏ˜)©Ú¡Ú]Ã!@Ÿ!€ÃwZ$i01Ú°:ªmßüÁÞµ6§ñs¯pd'"‡¤†ï*̯Ø&ƪž€½Íj!ÀCœžµøð+“CÅÎß…\™RyÙGøn÷œQ |¬¶wÊË.üϳzg:ƒÝ,4Vµpx·°$p¼Îê…r%õ€'Λ 1®-Óƒ©Zt¾K@˜¥YÝ™8Yü³÷ˆï~âg ŠqUÏò”œaS˜ÕÓôùÏ.?½ËwkF}“;Nn™Ê[ï¾f5Ó4C{‡;Äe¨ù‡åª÷_œø.΀ÇʬÞ7MÛöÎRàÉ@Ã;¸UÈÝwppfu{Ó” -«í¤wqV“2áÓ…˜-¼°¥xÓ´6*’É7ã‡*?؇y`b`(L%ož¾#6=«»yPk¾+CkïÂÏùÎEx÷í0)ĵªC}ç0«Cº™¨°ú%à!~ÐËÊ üI!fkUs5£:aVÿš˜¦¯‚Ö¾µšB¹(TfD‰;êsûα`É–ÃL̔ڌ9ÓÞmܽ$UÓà&î]›qŒY=›ððáÝÚíŽ,¢öC‚i•‰ÁVØ»†žHCÃ;„ûö!•Võ ß +˜¦pžw–°éxh™áÝž2ƒÕ -ö!i—w÷ðŒÆx̽ÎCåfÌ| òÝäÈäÁ»ôªÔw¢ï.ø Û»ÆÀø­ÖÝ ­ÌHHÕPnßQ›LÓ {7B’,ULÞMØÝá0S³³f 0LÚ;'‹j|'"KvvâÜðîžTmâ»u {wû ŠT %Ňòº¼»#¶n˜l…ŸYŸÕÞýq„wíßѾùìÊÞ1¯"Ißá‰.8!æi¹LU¥ ¼[ˉɇߠÀ$`uÎ,R­PŒE$<á2ÅcœzßÙK8´¯½Cs'¼‹¡ç¹§ð.8á_æúx¨"Å9à ðÄX¾‘ Ù.S©ßîÀ -f`âƒEZ•ÕG¶ãíÁPxw8¾£7 ¼nÚ»“+†ö"æÌá]›ˆÔŒe0òÃG` Xíx°ÄwD$¨ðŽóݬ…ÉÏþ¥,RÀ7YDbÓáݽfüàùØg‘"b5ö7ã½Ãu¬"6º÷ÀiûN’†G¹ÿ4V‘BÅêíͳ´ïœTq̽µf˜EØ;(¹N V“/M[s…,"ñîe|ìûnA §¢™<‘Là; äÀ«b‘B‡-Ò¸„²›¶Gfä¿Ùw¨åÀ«º‰QDLJxG„1øá´úêã­—Ývµ,ÄY’¦õ§’zHÙ$í®€/Jc¡ËÃô£ü?ΜñÚAàÅ-’{Óã;»t*#À[ŠNºMoˆÍüW†ïüåyx!`°pïyÙ0¾ËfWúÕEAzgŽE²´»,M…¼z‡„|•û.•üª{ÇO£á›í!Èø´‡¼•xwC`q<øŽdŸ[NSæ à9¯LûÜ‹®’fñÚ;ð¾µBJV§ùT7«éFÜv—)5lÔAô0Eç.:ÝÐ0gÒw_÷J?€tAÑVÈRµåƒ¬4"߉àƒ›˜j21t’¦ Ñ;ÙŸÕLÝ|1h@ÊwÚpU? 1B§éáJÓ$nU.SÕ“×ã»X¾ŸGÚ«w¤è»n±ƒ­ŠË´?Ý seúª¶¸ìÜ]ûø_ÐN˜Ö>M Šàg»#œ¼µï‚äjø$«» ¾ôù ›½ÛÄmÁ¸°!Ð`t¿žq¯Üný˜qiµ»i˜ú΃¿r<÷iLÀS´Û!’îμL­g“RµäùÃßYW’½{WïFЕÐ<«êÛzˆÔ§öƒ_óõÝÝ*§)·z—_<;3—Öè‡Î½`õ_ZùN>]ø4­¨w¦„Õªà Â³šŽ‰»óXªö_ššªw–+RIÎЯ–±Þ‘°Ü]žþK!†@Dä»ï»9²šºÔ»iìl÷÷Y}§¨­µ‡HsLÜØĬˆï8߯þÐ@{µ‹GBÑÄt^­#M­0™11Ý€"žâ»þ"Õ˜åÎÓžÖ"‰Â¬¾¤Ño; -%aˆ„Oä;w°í|íAoŠZ™eŠ"=~Hødekß!ñ¿¦€‰¼Í€4r{Ǽã`yþZ–Ë”¿€»åGÏ~P‹T©L®1°Nf`ȇDÙÙ>6¸»¾3™¿]SÀÚ@cgÄ·fõ½ã;í@dC%í®9]ßýîMl‘˜àŒúCàÙ:µv3£%C@‰ÉY5¨EªRš†í›+™ÓÞQø®—n÷|H„½™‘"eë;äù¬²EJS8cxu£KÛÌ@£n¸bó]Éo¨E"{}Z¡€3¢¡w:gõÝôYh‡ xÙåg ’ îð'ßÞ‰¦GåñY ¬¡|hÌŒºÿÅ#w§›fñH †YM;µïîGÕ•^vg2Ã3Dšî»4ráŒð±ZÿwU•†wßû/`3ƒB†Í)’qͦÜ)SÎ.¢=K$äuÜÁâ›.ë«dF-é0][°ñ7UÎA€³êJÊt'­é¦7/LÈÒd TÑá’!• ÔKIrªA€H]Ík¥Œk nUtÀ¹Àiœ@¢PIN"ºÀÔX¬G€s¶#®¡*§T,"CEà:ïûˆˆîÁ©+æ}`ÃÀ$Pž›v²ˆT@ò„.™õ“ÁyÐù˜%V“¹T -)e`À‘ºÆÕIk¤£Š²lÝð¨‘r‘0i„6à°H%9Ã(ˆ c ˆ€=â^Ó½ ™aOÕ÷ÝÈÌð]ƒ§Ì³3tI -ÊjLrÆ:ÀûØ=q_»kH/T¾7™bÂî\¾ûï¦ASPøZ-8!lÏfùCrgŸØwXw÷Ò03Ì”â;¹juÞ¡]Ü8ð®ó9zßIä³Wv¿§Öî;–§æœÁ‡Lˆy‘–RSŒ€WÄï;ÒXvȬN”1f¦êw2ÞqúÄB‹„$ œ7àErMMo^ò¾ï"œHˆ9õdtw¤§øî­T9ÃÀÞ]é•„\¤\;CŒô¶}eº0Dtª¥ ÅŒ}w'ÅwÝPâ;k9ÃÏÞmkGoà}ã§Žð¡j í.ð ð¼T µšp‹T…½ãèB‹¥èÊÕçOí{2#眪â]Àê–œA¤{‘p5žWö¯zc|!`¢ÝñÈ ‡©úèÌ_­Õáf£Ò™œQUäxR~QîÒ5T¡¾3´Z¡ïà -à!=ò§÷PµøC -¶îî TÞ;Câ”3/vö.É)àyþ½¾z(YºÆv÷+µ„Ý -Û¿¦‘¾[Né>±wYg€xjôMCTßùIÕLßmUy€H/R·©z§ïøš¢À;§Oá;$Ò¸'UóÎŒ÷«]9ÃÖŸšâ¯€Ô"Yß¡ìæ!Åë°O¾Ó4 ¼»{Çïœ1 ç}·2=Í8Ú©¦EüAo¨zv2uvêîlÊâ;m ˜¦41ºpoÆ<ƒv¶À[~ï;Bï_@ÚÝèÉTwá;òUúÓoVÏcákåJgØ—>ï€Få¤M!°q!à!îÕ'3ê}×ÊÓq¤¦‚}Ï“¬oÈï)yyD=¥± î˜ü¬ÆŒÚ™Qòo<æÂ±úìéZÅÞ½·Æ½ã¨kQÌ(æ!ùÐwè¸/ÒURÓ— XåùÚhA»l}7b7#_$°(=Í—·Ž]ži±°Á18%USÆ}‘>4öî­´§8`Þ:Ÿª¶ôÃM¥ƒä¿ÿËwªÛq{‡ 4_CxóæIyyHÚPµ7NöäíE@ày±ïŠc×;²ó¡}‡vÿê ¨L3ãð·ÊH`‡mÀímÈ Kß•éNÓé‡0ÀC‚>{·L+F%‰<ÈîÌç<™0¾žW2ýwž²qà­mæ}G{ìN(„ïÆ¿HU(b<øòwbñ{Äwxošyr3J•çaØNùèD} ´¸ðÜb½ è;Àì¼CÀCÕ|Þíæö¯ OXùõãéï*͆xC€yßÑ•wX\¨›üI¨À#ßMî–e;NùNŒ2ðBGöA^7ù#FTM‹‡4ÝŽ†*¼ff ï])1\MÄÃwÞárÄwˆõ¯³ÓÝi¦]oðîï: 'ÀÃ/ÀHQ”GÅá;n­fÈ)` Ð"eJÒ§è»C1®ßÙ!F"åð•\Ôê»ú? UÿV¨Ävw!µ£ÏC*3›ÞùkÜ -ß}9k!ÒÞÍã"‘³Ú§ð4[úo#í–2ݰòyH¾XßM$¦ña¤±8ƒ“‹$ªÕõÏ|~ù¦E+ÜîB̰aföN£rgð‚Ïsp†"@´s±€g[>üϤjöŸÂÝ•b†–™Qô©‘Á« ß½juUjg¤ØeT}Xvw'¯; -¼Ãg}Wx²l‹ï8©ÕðxŠ2Ÿ©ºÀS­fwÇ13$zçP&ĬæðÝÀEªV7#gH\wüÿDHªæD¨dçî6J¦ˆžÙùU3h1ªéÑ VÃ<§Z޵¿Cjç©ÚÁš2M¾î 6ß-!…á;‚¥êx|‹´úÞÉ(—®õ©š¡þ• dêÐ;K›%Ë:1¸M‘Z]d¼ÝÞQ̯Ý!3LÅ *7Ü]*ß¡Ï Þ¦½ãÊEr§Vwº<Ëé àCZ\Ù‘<ÕÃõ/Òwc7•Íjµ¬EÉïŽ;}ôúú¢í_¼T–ÆÝõzgüYH«¦P’G)ž½#§¦Fâõ+Óûû/TÎ&SÓÂøo§ßùÏòÕ äŒ^ˆ¼ò.‹n8Œ>‡TCBCAš¨À3м -<úµ$AÃyc([ÀÙd4¡MMœ=™“P±_X0iÁ'Ó?K´iˆ“÷b„e^êèéD •³0`Í®›0G$[`P@ÀÚT èjÀ–6ͯQkð1`¹phWHc|(d®ÀÃ0ö œl'ອÁ:"á;R®˜S vÆ£ÁXöÖ)¹&e.ØÎ€aÁxH Δ Ó䔚Ocj²O(m8?ÂwÀšOŠþqB xwcim PŠgœù/|ª;™‰Õ  ]ÏÇö‡Eh`©05}½³¬D&ƒWpµ‡¾Ó‘ØyÆ ¬ žã¸]Xwñ±#´R=Kxšj ¤zÒÑ1]…!eæš–àA;#ß!ÎHwgˆ0~÷ ÿ¶ s´îj ²»¥³3½¾%x¨@&Nâj½¾ó#Ù[-‘ïJ. C2ÙV˜ì®õ˜F±°wÚY‚§¶3|k_ßu\SÈhF»öü®-2Áb’»3šjyS.D½+Õ%xW\Ðw+yüoua‘âx×Ê ˜‚À»ƒÑTÃÛÔ;á+±)Aª“•€ŠøÎªï†’gÀâ2ƒWÝ]†ÌìŽ -*ÞÞE³ žW*ž±MáV›>y‡yXÿ’Ǻs†–•jkÇ´Ø{gJLð¸:$œG´YÓg¤Ôž¤õÁÝÓšr|ï–e]”БCyë.­ÉŽFvW~ï.ÌO«3¡øŽÂŒthž!ÜœáCñÍI¿3ËŒKL…ò²D™±gwÁS½£½š¿Ó»Ñ%3RÀ9UgŒ±Vã,å»èQw³Ah©öU¾¿¿ 4Vy¨¤¥Þ‘é ^Iú.Wñ V£½üxÝÚ_R…Þ`Æ{dº´TÛ“ü›j17w¶ê»b<#m£òd¨°÷ÆBòäÿ¦? ª•”ï}–@[ã*ù›#"‘Íù~ªd—Æy7(p`œ‚ߢm’æ’%Ù.¡~o6QÕ{_+2y/¬¨?£!h‘…î¯y:y’ ·!½óXQÐ ‹R - ‡@ŸÂU’TvÙ½I€…"QâïSÃÆ°õ `Ì÷ ±*¶;Ÿ%ˆÜ×ä@ÿ¿&—À*­,häÎ*äŸ4ÅýÓjBrfh6bÄ&:ÑúxBD´V6ctÚß¹Üt—EQÚ8ðB¢ˆ½¯È¹82[Uj–ûÙ¢ÕÁ^¦¢ ¡çs¿?«ÖÆ7#uXŒ$Iòæ ¨Y÷ ÐjÛù -„¨czçÖÀ€ ÀgÒú®€„ÆÂÁPÎ Qƒ1Æ  €òûÀU.Þ…aîÞË\¢e¨”»”e;_´ˆ»@|°e6HQ o:àуFðb~FüÂ÷Öƒ÷Öx.Þ¨Ž -—!Õ20Þ‘€eª–á\î:8í®²EÂ~?¸r²N¾Ô,Òð í a§ñ;Xý”l…§\µ`aÊ®8LôŒ|>´ ¥”ºÓ-Ý™±2æ®™áëŽÊx»Ý@»ÉŸ^g°vƒÆ$oª®Wk8t©- qòwslSé+9qW³ÙRvpKÚCºcTHéÀò(ö€ä-×»”ïn« -ðC”d že¾:¼û«{!x©=R0Hx¤=ÃÁ6%ìwÁaòŒæ;‰ÎîB’æßeDŒåŽÖÜ?ÞÝÜ€­Qh€íð*_ -<áA#Ú#ñ…'h°© Pó ìýŒ*mƒÐeÕOiî:»óWêeàŠw‹ænÖS̾2ˆÛIèˆjƒÏ„¡+¤Sðâë¦~OßßáwÙ#0ÏÊSFWe—D=vgõÜù$¤¦§¶»»î,IÄcY”‚áÍ!ýNƲÏp³eÍôîÉî®ýtW[Ùë±¼ÛAu¥„T6BâFwiçΆj / ÷ãë8À›žÎ~.<ég„º>à•]ÍÎï*ÿŽ5,–m -¾vçOÞQÔWËð>w„„©ÝHH†–qö/wsÐSXÖŸµ³O¡é hüøŒeÝ`ñÐãx Ý o˜±¡±Ý­°²°8MáÝO)ÒÓ-%h$!Òì…7ðL޹Úý¯žßáö]\z÷b—¤Ý¥¨èŽêï"Ÿî3wê:´îXxs¼:Bîj˜n$T¶ x!Þ*,êN}1²íά½ø)À»wå.~*£ì-ÑšGªq…÷Ë«½û®×ï4´)KËïðO>b{¦5ê4_ïÕÄ.C5ë—Ëèûe´¯Qw›ºóîXǵ¾Ú$ÆÞ¦W}×sÀ«|ß}û;s [•_ex²±—!ftØBr¢ìíGtaG=Þ=sw~Š'@‘{t2ðbvµM€ãÕOï}Wð;=;CÚÈ’iÏ0õ•ÞuÃŒD’ì[F‡ü…ésW‚îîfþß/¨þ9€k¹VÇcº»fMÔ.Ox7?c€ àÍBq¨àuëf)Oª»Bv÷Kw 4æ]/Ò2‡b»!Ðù;{á¹éw ‘ÄòŒ:¿ãá¯Üj~Ϙ)ד,zÿ£;Ê ÝýÒÝ>ÒËàË;haj„ÔQž­»ë³‰`a ¯¿g˜ô» b&~gÓ•He]ðÄBÙ½ìBfÄFµ*FRTsDwiƒ.C(won-bL,÷3~¯GJ MÅùÝiÁþîP/¡w5˜ÑÑeÔbáÂ/c™y®»±º\3 -ÏâgüÆ‘úZÚ´ÈWÓÕ:âýݤUas$ à8G{ƒi)ɽJv&ýaº‹¯´Ð PMý¹£Ôš©ð?Cnß O|Æ®®[Ï K -.Gï.º ›hwWs/ƒœygÏ]£QáÕGAr$yû$WùŒ¿«ºWðtFîRîNCr `†);ªž;×|¼Ã(³-‘kDúg ô 3Ù”úó]_äw¯®vTˆø»@u(w×4]†£fpüèåDN.ãþ2ªÔ]N—ñàS÷(ôwQ)ëAOÇ]zŒ>ãèò;Û®†Û÷w @ñz—0Rw3Ì Õ»#Àð¤ãYwY¡Ix•œ^Þgø2‚·é­6Pg$ZïUAì0·½ŽiÄ–Q]°˜R^HºiwÕ¡;¬Z:sS#¬Çô’Ç«õÀ»|†‘‘ß‘Äà=ŒMéÝ»º›áöÝîžémóŽS±$¡7ÿØxØ»:^ßÑ º$›%ż£ôŽÔËø¨»2ºóNn¹yGÕ¹3ÿ-v: .Ûð0ŸáWèê#·Z!CVÇW–æà ¥w¢_.¤žºC‹î†GuËBråä^Æ'{[gfî»À›º‘^~÷>ÒÕ QÇ—’ƒàéÞIïÔEõ¹tÇCÝ-oFu·‘wúKÍÆEågø}ÚÔPß%cºšæ­Š áêýþlMz‡uÙ®t§ª»ì.f {ºîåRØE¦ÞãÒÕp¦3œ†,IgÊwòäêÁ»ìº;Ù%€™áQwÔ†žŒê8âgÖ¯|eÞð¨ŽxF@²„•ƒ÷ž Š{§ŽÝÝHwd+¨Á •°;Mwô¶KÂKÝ>£žQ±3Ø1Á“&‹ \XïÔ¥»è0C7Ý ºÛ˜Ê‚×=›À3¬Ð@ Þ«˜ôÎV2º+–ÈÞˆ+±»z#¢F¶Í±ï¾ùz®¢dð̉Àê÷;6“ô.@kdO!,ª‰ºŒž\2‹8ŒnݪêSŸ‘×Õ5%ˆ n§ Íf@Í@ÄHÿOdT.˜ŽgC1\„)ëí£ $ÕϺv*fõ»–ÊSe?Í¢$)ÏuÖÑÆuhÇó±M€‚ßï[_Z爴võºG¡¨PŒäC¢Ù¬ì'ú°«õ5$­¬!÷mAzž Ód,ò¾6pbé„Z×ÕXÑþ„Îû>0)—ÖuSIàçñÍ;¥Ë9Žã¨(d;ëÍû€ ‘%Ãlœ¨©ñ½ùta!ÃlœhôªÜœ7: iäá8áv þöÖ¶ˆHÒ ¥bI#QoNaéDyˆƒÎ†R*– &£ž ’%yu¦“ †ÒYÿPt¤–‹ªH|×y£LæQnš–0蜽4ysª¢&)ú¾ó­3@Ö›wÿ#i¢¤ïóîR%õ½4Q•5 \XvY“ô·ÞRe –eQç:wÿ£ Ë -†€ù¾³ÿ‘58þÖYwÿ/ì€Hh×y7°~ß¼ÿ¬ m\ç}`(~ƒç[oÞ½¡óBQ‚·M\sŸDE†Õ¨Ó:W#@! -@ äǺ@‡§²ÙDŒ’¦2B @<Œp容îw»*µ{)»;¥¥Óigýz{‡Íiõg5*î-b5‹MÓ„@˜ñ¿®Ü•“ zTå ™‡ß>žÁN爷pVõÓªi(Ðâ?úÛ¡?µó²3™yÑ?Y*“ -zØyó,”@¦xÝ^¼ê°$;¡ö‰Ò]h—ºŒ·KæŸíÖ”íÖ’(†«îƒç=ó”&åQc‚ü7ì1Þ=ϸUŽ‹/0Fš[IÊÐíÎ wýÆí\Û ¹À3ÖáË;›ŠMb”®ûûç»M¼lË^czz:–÷ÏgyD"yH¨ñxâEŠw„mxÅÞˆô¢A&o}º*x#o§-î´bȰHíŽ &&%µ÷lø2MïÜž÷ÈkygÊ’wkïWgI#çJ¼Vç.þ¥Ý9Ú^JÛ¥úæÜ¥¸ûµ]³]e»kÚ%Õ.cð¥»<™RHþéåÛó.YãYÞQžññæäIe⑎gOJrKª„ç'^£ðZÅÒð*á4‚)$–Q_ÄnãÎåŽîÛu¸Ûo7$ê-®ž“c2l>8'‘{‘yÝËC0Í›*$¯‡¼¿¦Œ·Åð¨Åsn†gaâõ † …ÉVQ•¡‹k/ÝæN$uÎí×ÎõNí.íÄc´Øƒ]¶nÎp¡×œ$á©£§xžÝ¼À¼ƒU î´p‡S2<¸«g»ÓÚ%Ûŵ³í³•‰Ý »n׉‹Wµ†ÓÔž|¼c>/Zy2óXXy÷€<ëxSâeúU¼Å>O@x˜Ä:ÆÁC2X“Ó¨¤7@s4$ Á‹7%ïÁtÓøú¤ÀWü°ÝI:úÕîŒË ÝçN²d‡ÛíºÝô1’"ŽvC™ÜuÒ¯_*Ï}^É<5S^®CêxaÆ#±âAË&^Lxu¯g[5ß4<Y‹ˇwº• °eü9° ÙÜáW3îÒ«ŒÆÈÑÝär·fÄÛ lg+ÓXo=«ã­C/=Ãæm<å9ï·:h¼~ñvÃ;?0ñÔc=' ±Ž¨Ž5<ÖÍX -0{x÷BŸ:t_‚§æ³ŒØîøªŒCî~+Ý©ä.öíîÄÑv‡µ³U»”®Ý¯1v35˜Î“]@èZ ½W@ÔhÖäÙïOa–Æ× ^4˜ˆÇS4¼„×8ëÃ3<´à)ØIቚ‡wÔ~êþ‚îÔ x0w†‰‚Û•´ŒŒ£í­5Ï„›= ­eÐyê"îŽü^z¬Â¸Ã“»Ž;àʺB›•Bʯ -zDy-ÈkAsãq^4º$ž‰X?rxÿ€— I½:š{† ÷w…xµTáÐ¥`ï|eÜ·ŒÕS¯XÆ|ƒÜ 7õª¸ë¬;òÜ Â]F,ósIl´\O“y°é„¥âI6¼jŠ"Þ£pZðv ÖAhˆ ºÂSúî¸à审î€?u*ÝÁšóîªMÝ¿ÜAàNÏ@:ç.R&£bèÛŽ£Þ0;¿Áßm‘­å?^u(LÃãû‰W,NÏ2<ˆÐ â#yï¦ó²«+ <úÞ¢ÜqxÇúÔ¸ç•Ñ!¡»ú“Ü%Q¡‡ÝÕRïqc2þµ ¸kU3TöDF¤•ð!Ïrh „x¡CÃË+<¨ohÈ`ð\¡x€G»›ž#<õ »õÒ’|wr·Œ»áçRoE’þHvÖÎ"Å£ýâeyik†7ú¿Ó!xjòw!« àµ¤¼»ö@‹eÀ-ã -„„±»‹~¬ CeügêŸkÍ]ÛyÖö‡guh¸NÉ7DC8¬?MRh|^6h,öH }Ær÷³Wo9[ÞeÀ;§×Z+íõeCuªîÐ/wBzj^Ó2º Ìv7“q§ïgmQ˜4Ò†¬ êM 4Âñ3TÔ3”îêj›Y&áýYcÞÌ[r7¥;{”Ý-èN^þز-NãiÓ9exj°~¼rа†ŸKxvu ›åOØúމ]Íd -@€Ÿ¨ð à‚‰@¢Ü`@PDÄHcÀŒf„„c`` ÞôdwâP•ÆAbQe@êœZ¨p8¡~­ &¾E89 šü÷_ä!þ_æá´©ª!¾±!kýT5E_òœE7K½çÛ: M¿Ì~É! YˆI©ÿU?˜|81öZ¹LdòÕX|”Š‚ÜýÑvh'»×ÝKŸqÈ£¼z´.é)ÛUÜëÄvƒy^×ÁÛ-µ†ÕÃgéÜNËÞ_NØ>ÿÿÏ8N¬iL¬IŽåÉ‚µ’m0V²I–—Y«ðöòe9&Üc lc'›*ª–ˆ EeAÛ°ˆÄÉ#ÁÚdÁéR¡ˆ½TjªL–ƒ½,Ç2öR%ˆge;½œ¨J»'SI]¥ºÝÄ‹d÷Û€D$$êU!› -Q-‡T©˜ÈB8[¡&늢 -š(‰g³2Ô’Rþgä ÷¨k§ÐAçv\ÿÉ7)ŒÉ‚µ†­°*UM4A.ËñL¬5`Í’®L…ˆ(‡IŒ8¬%°V¯ -‰(‡Å@Ñ#}››)7;¼¼îè{QÒU«²‘„©%ÁØfÍòX^¦àzìŒNÝJ¦MRéï›®sÄH tnãŒ/ŸJÞλïÏ8úÃÈîH÷…Íó¯óko*ç|ºH)Ó)uß|燎5hòC‡ORØ?cóë(ŸüùðÉÉ?!}‡ÿ%uùdoSøfóœ’å-S˜° –{7Û[ayl$ˬ9|R!-è€Ñ¨Q-QÆ™ÀÀ` * @0‰(K‘`¨cˆ H0@€ƒ´†Bº9sÿ6%GˆL[«e„+àJð2A½zÜÁ ŽY„#†Ùšd3Þ˰ïq`@ “_9nëWï†SÕ`åƒÿxÙ¸øD|á~"Gñ2«ª‘ù<3V 8ÍlЋ}lÕ7iÊÉk½Š¿IàŠA(¡ü!úȰàMü‡ØýXíÑØþ˜Ãº(BÛJFsˆÞ'(í¥UÆ @#’ýˆ¥ñ_Ú$Œ·›ÿYb`_s¢¯˜o¿‚hDÀŠÿP`¸¤ã *O–Ê8^ -2–4¨5(â?p,Äh4Ð<…_µÓˆÀ" ó@råµRP‡`Pd2Ý)K4O ¶Ð%1ã[]XŸ#(ãðóƒ…H€éÅ ‰‹Ú‹þßÌ_dtí6V…Ó¥ ïgPœWG`ñЇ³µCì‚L‘õä†A2èÈ.‚„Ÿ ÁœXÐë~#Oˆ‡Ü#„ÓëpÁ7qv¢I§>I—ÜkF þVòå“ ­Hä-“fù‰ýO!Kå¬KqñC6ÁÜ»F”(ì» æþv«¯(r¿ßèK*”›]H+ýªü·H§¥%üœ=3J |`MŒ•±ƒÊ¨T¶0èÌ»öh"KÁ¨zp,À¨-Ö3š@ÅØ¼éöõ»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDýÿÍ ÿÿÿÿÿÿÿÿÿ¤ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@+@M?艂*þAoTðAOTTðÀ@…Ï TŸðu@5 ïTðð!@ÕT¨ø] &Àÿu9þ¨ðTA=ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPÐËòzßÉ/é="¿ª÷sü¿ÞoñS{oÄÏî½ ?Á÷üßðÇ|o¾búÞyuöýìêï{ÌUç÷}+ÜïaUðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿP§ýiÝÓöïu/Úߨýd?g÷ý®Ý¿õwßÕ/ÝýR?y÷9ýöÝŸô#x_ѯá=@ÿ‹÷îüDÞgó[yÌ¿d?ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPóÒWú_rŸè?ʽž-÷kþÁÜsùOsßäÿÍ}ÿ:÷2þýÜø3tá¿Ñ½€K÷óý9Ý“÷/u/ÝßÕ}4øÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPÞ*¬êí™þÁ·úgßžæ{”ÿî3þ'¸oøÿà>à…ûzÿîÍý¸×ö¯â~Ù?Œû_ÿ6îaýù¸'õ§ŒèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿP ÖëÿËlÿ¿³}ùÿÑöÙÿSÛ7ÿsmOü¶=î?Ýö¬ÿ€Ûƒþ3nOù¹=â?éöÿ­ÛÏýçnOöoŽ}DøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿP þ™ð!µ‡„Ï©=!|Tí÷àÇjÿ_W{3øÆÚwÁÖ> ->¶öHðɵç¯= |~íOàl¿ßa{ øÛÀÏèèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿP@ÙƒÄgÐþ"~…ö ñ=´ˆ¯¢}>|íááóh_H{oøNÚKÃ×Ò>>˜öÀðÙ´¿…_§ý*|?íEá÷QDøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPLñIã#f¿ß1{ÉøšÙ'ÆÍ0>köwñe³‹›=Z|âì¿â+goß:û¦øÜÙÅGÏ~'¾{ö2ñõ³O‰Ï£lÄÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,P~+ˆìøõU~‹ì-ø¡Õ~ŽìQøGÕ~”ìuøáÔ$~—ìŸøoÔ3~šìÛøÙÔ"?Pö—ü(åæ7ʾ;>SöÔñ±²_Žï•}q|²ìyãÃe?ß.{Õø/ÐÔÄÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì]ø…T.ü†Ø£ð ©Vø±/áR¡ðKb/Â/¤៟´¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ:PÐSòŸ¨"ù«¯ä?Q9ò{_ȯ¢Zä'¿¾¿EUȯ~½ ‹Jþz>~Õ¿ýõyü0ª<þÿëíøgTsüØÏñϨàø°Wã·QµñS`Æo£Rã×ÀžŒ?GEÆ‚}Ž*Œß{/þÕÿ ö<«ôÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ=P™Óü*k~¼ë¡ùTÐü~×+ó¨šù ¯?æOPó+^ÌÏ "懼ޗÿAåËoy=.¿„j—ŸóúZþ -U-¿èõ¯ü*Y~ÔëYù1T¯ü®×§òo¨Lùo¯å÷Pò÷^Ê¢êä¾¾“?D¥ÉŸ|ý%?‰ê’ø?””ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ9P{Ócô7«ý$×KôC«ý*×?ôO«ý0×'ôg« ý6×ôs«ý<×ô«ýB×ëó—«úüH×Óó£«÷üN×Çó¯«ñüTׯóÇ«ëüZ×—óÓ«èü`׋óß«âüf×sóë«ßül×gó÷«ÙüE×ìÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ=PŸ+¶~;õ­¿Ùú´~>5­Úú±~Au¬?Ûú®~Dµ«ÿÛú«~Gõª¿Üú¨~J5ªÝú¥~Mu©?Þú¢~Pµ¨ÿÞúŸ~SU¨_ßúœ~V•§àú™~YÕ¦ßàú–~\¦Ÿáú“~_U¥_âz’þ`•¤ãzþcÕ£ÿsÜÒ…àBüªªªªªªªªVUU5_˜~@ $D‚ˆ !H"‚„ !ˆ „`Aª¹à¶ËQG-ûG{ºXh‚± Á z]¾hÀí„;ƒ`âhÆPjŽcM¥Æ@iŽ)”©/+c¦iÍœYÞË3ê´i̦ÜM“n3Zi’‘ÒH(ÍRíHsÿ€ƒ,‰ŽiüjkÌRj¬µÆÃ¼%‡kØÂ|{áÌ{Ø*àV—O¦¥”ÆUUUUUUUUUUUUUlXøÿÿ- -Dz‰ÀCÁC>—“#‘ŽA²”;G‚³„l(¿ŒCf ÍP~ ’Œê¤< “0'«Cùš“H'{B¯Ú °lŽQÎc¦Q°e©° ¾Ä€¢$ÌPÙ{·=ï–Eù™M%ЭÁ¸-H¥mæÊÒ²%¬¬¨+‡³Wäõ(®U¯ØÎÔRb•Á¬ºÔâ<Û…§©±CåMË/´ƒªªªªªªªªªªªXXøÿÿߌ4°ªù³®˜qùʆ\î‡6¨¯r€ÑËc`ƒû5Ǻü‰6`ç ÁËi ‡v x9rüÀüPÿrÌ¡ó£Ú˧óÀ„õÛ˹ó(ÃüõåÓ~Ãü`äòÆ?öaŠh}¹!/1‹€zyh!¯ØE,ºü‚ÆØ"]^¡ˆ)qo¼ƒUUUUUUUUUUUXXøÿÿX+k>£êD!)WŒfë Sž°Ú'òDy?'œ[Uœ;åxœè·R±-ÊÏ9ñâ²(oKK Z£Ü -W0VEù0*]ÂpåUµÀui—##í -Æ¡.?Æ»Ë<¸¼'/3Øìr`”^ÍÓåcÌ8{iƒà¼ƒªªªªªªªªªªªXXøÿÿZ«j>wÅ[¸ƒu¯Cèj åZ¼< ¼«f×ño1ÐWl0ã±aÈ`íáXŽO·†ÕÃà:Þì‹vq¼± y¬CÔ*òÝ©È##Á,äƒUUUUUUUUUUUXXøÿÿ#W5.þà’ý Š«© âß—œàâ ¾ âS”1ÁÿÈ€AUB<Ž vT%4ѵø@Jµ„,Ü ÔTW¸¡Â…ðÁSµTø†$ܪJààˆ¯P³j…Šx%ì«V( ˆKP‚Êê -åqíW!eCì³¸í­°µŠðBX죪ªªªªªªªªªªZXøÿÿ_A€ØyEp‹%òéJ w¬ûóOüäÜHí_A1Óçþ€$9wLp¡4pvO€"ª‡j7#4¢ˆ¼2`µ=Í[Ï®Q¨“¼éh 5Á7äý ©ˆ)ßhNp“2A—ð-ÆM© ^áï]ØKÍJÿ¶r‚÷‹dcÅUUUUUUUUUUUVXøÿÿÿªÃ ->Âq¿ð­#Ž/™ÞÿÕë…ôK&ý|ûýžé>ßaçK_5½ÏkØóîWMúç@¶ûm“~¸Én÷¾mÚßÖ³ÃÝ/œú«áì6÷;§þgŸ]­~ç´Ÿ¬j?Ó_;õCÛaúOý½n»×þæ)`«¶mí'Ÿ\Z”³UUUUUUUUUUU [Xøÿÿÿ°Â ->õîj.z&©û+®þLZÿjÒ_¯ŸIÜY4Öu’ûT%Íj½OT¦¥®§”ƃòéQî/¥x < Ô]«$^“Rwv,Å¿L՚ܥô(­ú¥{n }d«¦[¢çÖ"ãÕKè¹õâø}ÄlˆþѯdcŪªªªªªªªªªjVXøÿÿÕ@|uÆhùwW&.Î1*÷•¿‹›FÊq»òoq§tkÇœ]|oTÞº1[/ÿ O;fÓ媣èÍ»º8÷²7kVÎAWöÍ”ËHщ§³òrÒº`{F¬œC²î랣ë®ïhßèl¤u¸ ×:”¢ Ô£UUUUUUUUUUUZXøÿÿÃÊ ->’qO‚NBîÌo<è`J­ú}‚4¹Ë¡ßL †I;?ô˜˜rû‡ˆ c@n‹È70±ø>ù¦OÆûqs‰Š»/cú¸E¿Óc÷¾"ââñqúÜ\QqîþXüï^ñu–lÝ÷ºˆxtKŽN¼]¤\9%G›ÜƒªªªªªªªªªªªXXøÿÿ«U5LEž&´öã&äièì<6®?Lï¶žƒéš£5hv6š®O§‚fÃwŸ‘uDö0zw¬¹AeSzoÁ÷­· -­B²%|8;!”ûî;‰¬;!¸÷о‡ÍŠÛüÙh!¸chÀ7˜Ýò­„¬ÂÙi§c̃UUUUUUUUUUUXXøÿÿÿX+k>2 ú›çZÍýм1×ÞØ|ù-M~f•éÍì×ihîú€fŒÅfÆæ×‡i`Rlc4+~@ßeËîtãÇ4Z\¶.6?L£’h»Z÷cz*‹öšÛ?¦qâµEúþaš“\›Ð Ó#™¶ÝbM» ‰Ð'ÓŠ¤ÁZÔƒªªªªªªªªªªªXXøÿÿÿZ«j>iD5q»“òOKTQŽ»;•ù„D‹Š8ÁS™L? -'”[R¥Xz,âÑܤVÊÒÇ:ÊArS ©üñм‘6Òc5æ5TŠVVóhî¡¢È㧇æt*„*kz4¨§ -´²²Gs{l?*Ÿ=@Ç£VÙSYܺ:ž•ÅTÅ̃UUUUUUUUUUUXXøÿÿÿV­j>ØŒXµA¹ÚÁ¹œÄKsJªÌåpŒY³äÙ`uŽÄ˜1KÏ -nç8Ƙ_’ì`FbÃZ&Ækt<ŒeqGÇ1½\“^“:ÓU7Ñ•X©ã±[ŒÓ­ˆû:މåК˜×áX¬ÞI¬Ä’•­bŸ\EÜÚ¡L)ÕÇÔÊJeaÔ“UUUUUUUUUUUYXøÿÿÿX+,øåD˜Ã»œ›¾-l„²‹ÝLÁ.¡]ç ß®Có5o -–ß#úï.þ_ü÷ ?gи©wû”t|Ž›ª¹ëNªkg\lM»jb;qÆõÖÜEfÂ+s\½f_,}^/á2lìÊêIÙ.a³/“nÏ”pG6|éùš÷³ÙWGç'H»;¾kô;‚{Ûìë¢ÿS£Ýµ ß)ºÀÙ½möÑ Ñîæ†ï"Ÿô³UUUUUUUUUUU [Xøÿÿ+—|@µôůû’õÍTKï{·Úß \é^±t“­g¬5nw-zF\k9·Ö¢gàŠö™]›lCc­eû¬²k14âúÊÒˆµCW®_-×jKqÍške]‹¤—UÒfª¸H»Bým§VÛÓˆkÓz êZ<»Žr8JÅÅÓØ•è“{´ÚМ¬cŪªªªªªªªªªjVXøÿÿÿX++ød̲rW¥¶}…cªuö0=Û+?Y°mØ¿ú1ËÒ:žRýu"S­Óêi^+™e ÝR….»’©ÖfFÕ3²•̵`îª6ÝÊ$«2»ZÙVæZ7V’ËneªÅ˜ieŒl1s-‰c«Äe3Õ2L¹F¶˜¹–Ááಛ“Vì£UUUUUUUUUUUZXøÿÿ*—|o|eÿÁìkÆ×øÌý¥š`¾^Ÿf¬/kÓë÷¶†÷Yu0¾Jo°ÕãUó–£ù¬P˜dÏ:ÇÏŠ†ùzwÇ£û¯7Œ²]_®g5Ä,+zB]ÖOŒWœ›Îyub–µÜë'¦ìÅ]䳞1¾&üþÕ³,Þ Éoó´sÅUUUUUUUUUUÕWXøÿÿÿVÃo>E¥6]d5Ä'!Õé2ël±©gXé0 :Hý»ÀІg¸AêßV.œƒ R//°ZaVúzU ÿ€‚Ô× ¬>¸ˆ°¾^`ÅÁHp õøÂ+ ^"©ßXAp`ý¾ðJ©hë÷…W|…Rï/¼" .Àz:ÚÜ“UUUUUUUUUUUYXøÿÿÿXIN>!(õ%#|'GO-¥¢Ä—£$S¯¥T‹ìõišk‘z!5"Lq-¥ÄÓ$Sµ¥T|lýùhšn‘ú`GÓwK©àp@8Lu·H¥FP£iÀ%VdÈà›6.¥òb ½0Uã25»` ©YKáU`*sÁê‰zðÄÔ¤K©’D€|܃ªªªªªªªªªªªXXøÿÿÿZÕ:SLóh¿’éi„öi‚ZX˜6 ц¦Q‹Ñ y­Ð8J±`º™¬ š£*¦5õ›ÉÔÅ´f^k3Ž‚,¤>&qS樖…iÄðîcõ²0Í—Œ¦, ¦q ãv9*g‘š,¬¼–F-Lcåв¢)Ñ‚iSÒ:Sš*Z¤Ö s%S“U±ÜƒUUUUUUUUUUUXXøÿÿÿZÕ:ÙkÔ7@‹›FÓ*GùF´qè°Âèo‚6n‚jVŒÆ Ñæ&PϊѸ­Ù8ʬ0š› -›£š£qC´³ Զ´lFk6‚’+ŒÎ&h³æ¨rÅhÙmku®-›Ñj£ä -¦­ Ú¬ *^aš5D{šFý+F³f´Nã(¿‚éiŠHä“UUUUUUUUUUUYXøÿÿÿV–|´, ::í)ŽZe¡Sç¡hëP¶r€>TµÎÊ.P‡ -PÖ±,åU¨8 -–UŽ$•££cYÊÙ)Rq:,KAy*AGDzˆT§"(tX–8‚òTŽ^Že'¨NÅQå°¬o¥ª½ËòMPµŠ ÊaYßÊV9º8–å› Bë -ÌsÅUUUUUUUUUUÕWXøÿÿÿX—:”ô=;ž:ù(A¿'±»c'’¨{.VwtJR€~ÏÄrÇNWŠNîIìîØI¥Šž‹Õª Ó3±Ü±Ó•zû:v‚)€¢çb]G§0èôL¬uìô¦%žÄ¾Žl - â¹X×Ñ©Mz< A½)@q§²£c'ž¨6Ô죪ªªªªªªªªªªZXøÿÿÿTX|}ÊW÷ÐÉ Üé@|åž:¤¯î©³ƒ¢Óüê=5o(€H_Ý“f ¨ùUzv>Qè ¾¢§Î&ŠNò«ôì|¢Ð }EOMäWé©yFt?úŠž4Ë(@ÕG±Æ³óŒh}$VQCàz?5Û'vJ\ï§fûÄN ëúìlŸØ)!p]Ÿí;„¯ëS³€b'ƒðu}jPìd¾®OÍŠÂ×õ©ÙA±Ó@øú=;;(* <ƒUUUUUUUUUUUUUUUxXøÿÿ/ŒÁÁÓ¬".© 6š'kV—TPMŒ“5«ˆK*¨ „&ÆÉšUÄ%ÔBãdÍ*â’ -j¡‰q²fqIµÐÄ8Y³Š¸¤‚Ú@\"ÜÙCtRA 4‘Nîì!:© šH'wöTPM¤“;{ˆN*¨„&ÞÉš=D'ÔBïdÍ¢“ -j¡‰w²fÑI5€ÐÄ;¹3†è¤‚Z?‚3ÇUUUUUUUUUUUUUU sXøÿÿ ¤½ò _MÔÌ##JB^MhÞ£ ¡BÕ 5·&\æÑ‘T§fšZ“5ÙHH(S1(ͬIšn$Ó©”¦×dÍ0Ò’¨T Zk’æu‰4ê¥é5QŒ¶•ÕÜš¬)F_b uƒhvMÔ #/ŠA^ÚMh£,¡BÕ /ç&h†Ñ—T§f—r“;©HK(S(͸IV”%Ó© ”¦ ÚÐ$sÇUUUUUUUUUUUUUUÕwXøÿÿ/LdÁÁ^×D¢^±B%C/©L^¾¢P©@!—[&/Q¢T ÎË-“—ß(N*POˆæ–ÉË{”%¨'Dsˤæ= -’ -Ô¢¹eRóIê ÑÜ2©y‚¤õ„hn™Ô¼GARzB4·LjÞ£ ©@=!š[&5ïQT žËE“š÷(H*POÈå¢IÍ{$¨'ärѤæ= -’ -Ôr¹hRóIê||$cǪªªªªªªªªªªªªªjvXøÿÿ/Ld½ò» Ô¢¹_òòë$%j ­é/ñRwà§u†ÒÜ—py<ÞC:CiîK¸œã¡N¡4÷%hNëP§ÎPšû4¿Çr¨Sg¨Ë‰ šëã7Ô©3ÔåÄÍû1êÔêrb‚æ9 uê u91Aól†:u†ºœ˜ ¹AC:C]NLÐPÍu“5U Y+P¨æºÉš*¬¨TsÝdMHÖ -Ô z¹n²¦„kê½\7YÓµuƒjéáZºA5wMÖô€p­@Ý š»&_Ú@²V nPÍ]“/m Y+P7¨æ®É—6¬¨Ts×äKHÖ -Ô ª¹h²¦ÄjêÕ\4YSbµuƒí$ €¤h €@Æ8@àþÁ\Pêzy>(3;h‹Q‰ö¹âWÆ6­mÍïqrÁÔäa${øU-ó\69(íz– šî6‡Æ±*¢‹šTµð)¥]ÅòCÓå&Ð…"]EnqÓª£Z~ÊAi׳LÐtß4šˆXXÔÄê¨[ù´Üä iW§Tè»ôt”hZ‘,âDuTƒO3hÌõ)sún73#úV‹8Qµði¹:åOßå&¦CDëŠd'ª£|šAc®O™Ów»™iѽ"XĉꨅO3hÌÕ)ú.71X$‹8QÕàÓ pýË„¦ÛÍ@ÇÁ"NTM-ˆjA£­~ùÐt¹ èøÐÃ"Yĉª©¢ZÐhë_&4Ýn;´±q¢jjAT mõˇ¦ËM@‡NÉ"NTM5Õ‚F]ÿ1±ùv3Ø€¡£%0ˆUOA§É(é·^š\ -ÿÿ€”¨à0ˆ™0øÿÿO …u*…8Õ+3ú& -9b7YAÓý&ÐÑï¡ÐQö¨vÚ¶lÏn¢"V“54Ý7 Ý;` ˆ‹µ_µÓ—ätl¢P ö‘è»÷:t`B.ÊÕN/É鸉B‰ØGbè»÷tqÀC‘/þÞÕN‹êãnšPÒ`ûèÏZÅÙd8 IÂxއNªAÄÏ}ûÖ’˜Ñ7EHüµ”šn6……ŽÄñ¹ -j“?HömS„诤¬ éfè”YŠpQö¨‚Úq*Bü¯OY¡éj34Å|™"Z„ý« Ž’ÓqS„ò¯›ÄÐwï è¾€œ"_ü½« ¥ÓaS„Î_1‰BßÍÐáа¸{VA-púAÄ×™,§ïºÉ´²<¢"]Ü^UPûœ~ðu&ëé»n6M+©µ*¨ƒ¢æÜ -ÿ€–¨àQA`;øþ€àasy²¾ÕKÑIo¨:+¹™î=×üPÙ ¹­zéqҚΒn¦[Ï5ïɈBGØ©^ªOJCQ³î¡ïÆ3è³)P¡È6«—Þ'¥¡¬Y:’Ðwçyh0W(丽ÕKÕIi¨4«Žúî=ýJY ¹­zéqRÍÖ‘†¾[žƒ^’&‹°S½Ô"…¦6iÈ/û‘µ™î<߬$ Åa§ª©ni EÊzdl¦ÏšïQC‘#lV5=Ü~Ùt!ÙFÖÐt»èYf(t¬ÝUM%K]¨"+úî=ýD9 ¹­ªéñZœ,”x,m\ -ë)ONMÑg,6A¢ï¬j -ÿç³]m*n¹^šL©ÂÈg›ô{桘Õ[gRfŸféä>eÕΦËÀ)ÆÒ®Sˆ1“µ‚t €¡¨àADìpøÿÿo—ÊìÑ ¼‹c(žÜ…†à9¾ 3}g@ªq;¨ÆãÛPƒä(,|Õ õH{Õ¨"Ø£ÚtÂEÌà=‡H¿ö±™.<ß^¡Š‹"£uT[Ô,;ì¯ÍsˆäµÑšéÂ3ÍÉ‚A‘CGT#]Æ MÏ!‚×ö"l¾ëКo+šAAGލFÚŒC[Ï!Ò¯ÝEÔ|—Ð7V`ƒâ¦iÒ(5Öæ¢€¾«ç kÏAaGG«Fš4 -D-µé(šéê¹æÁÚs\8²î¢º*¥fÞdW={™¶¡™®<×üV‘8|Ô*¥)¤=4MÛŽÒLWžk¾ªMµJé8‚¶<{H›ö±ù.BßœSaŠ4j•ÒRš£­F}Wžƒ>© µJi -©ÍÑV£@ß•ç OjCBÃG­RšBªC´)Ít广“ZZR’Æÿõ| ÿ€ª¨à0c)Cøÿÿ¯Ì…µ®q¯AŠ;™W%‡ýå‡bÑoî¹2]…R–9úþ¢È¬"J'‹ds±•é>å‡úˆèâ*¢…hs -Å"¡¹wØÊwGŠòÀáþ El±ŠhÐ*šÊÃm¾ëК»[pA.T­ZEyÜPÊtºò»U¥˜c)©ê¢¤ã,ÙýP)úÄ"W¦«PÊÒF¸òí/6eº EyÎp…‹GlQÕÑŽ¢L”»ÍÅ¡L—¡+YÅpÑ.­:º°˜7óø<“èà–‹L3])~Üÿf¨àÆ PøÿÿYIEš{Cp4ÜžÃIЦ˜áÒ×O5²ñ2ú©l«9æqdÒÙO5"º"ú¼.—b#r,ºÚ¿ÿZÏ?t·;Ðfk͉3Ô¤‚Ö »¡6û1ê2Ž OÆ´wè‘‘ß¿6’÷…©_öÍt“ ÖЃY˜ôbõ"´îÚ”é"´2ÊSÊ5OQ§ÕBõ»ñeô¡^ôÖ‡keº„¢ìïôõKE6šj¡ÙÐfêEb]XH)ßiådǸ_<"‡¨ÚÝ"Ÿ®/$šï*Ts¤cã/ñ†®ZÝ"…®F$•é:4å”û¼ÿA¨à ãØDð7ÿÏÌ qf²ÇÜ,¶r‹œ4ÓƒâygKO§ø ãËê´1Uc­h9º j…f8/ÇΟ ]³`!3/[¾ÕA ØÍ`~bFL¸s1“'uÏ¥˜°SŸ£û Í \ö™O“nažpG1誋f>1ãýÛÈÔÉ“ºŒ#Ó!ìÔÛ¨ÎÐÛG#&ÑÐ UOqn‚UK=úÁ×XigO82Œ€…?¤ €ª¨à 1\øÿÿ¯Œ%Öé¾}^ -¦kÕƒ=Å?&ËUÕ䙩I´Å†'Äw­*qUi ÓÌ´ªšvfjRmñáñÝ«NÌVšAÇ.3MUÍ×+±žjQ1íi0]ªÜYÒ¨5ÏÜjWm“Ü/¾ŒvJIı‰é~±Ø@Ô¤‰j›½4)é‘Xóžø®UEܹԀÎ/{ªÚ&ÔóxN)©’ó.ñ]U!^@§—4QmÓ.ÍHz^¾$¦ûÓ‰Y˜êƒPó ­Ä*œ„…ñeôNiløù‚˜îO'f1­ßá%NTá ¾Ë©#‰ ËžßµªÄLï;y¹É*œÆl.ÒÇpìÅ㻟v,Ë}‡/5¹ -gËæ"í -›ß#¦ë)ÄMÜA­¹&VëꜤÅ3ºSDº>¿ ¦ûÓ‰IM»wx‰Õ9‹ÇÒV:H1c½…=YcCsj/Y#°`1'}6Ãq_ŽZ¨8,‚ùŒç –pä?„ ÿ€«¨à¡ÆZ`®øÿÿ\T¬>àK×­øâ†Ë1ZǦ«z™Ô²–•“ƒï¢upãÜ6FêÌrU/CZÖRRrrð]·.{Æ([¶êeJËZÚQ^èK—V}§ç‚1ºS¿Ä"ªaF‹/ãW}%¸äêÀ`ºQÌ>w‹‘:³\5ÌP—¯”Kæœ|×­ƒ èn -Í-[ ³tOÕWK~n ¾‹ÖÁt«I3ËUà uÉJYdÚÉÁt­:¸‰n£tj,j•̨³$ zª©„„\;(˜nT–ÑMTM-U%v ÕT²BNÝ ¾‹Öƒt‡USKUÉ €iJõÇÕ‰Äw¡š¸’n if9U2C`šRòxr0]«.¦{(š[¶zf:æ(íO ¦‹ªÁÛta­ùKªgÆ¥gãÚ â»V…øžî - hê’ê™Ñ1A©Îø<1˜.T—Ô-$Í,WU3df'å8÷_~ü -ÿ€£¨à@c)ÃøÿÿÌEµª:­iý6l—®°í‚È¡b(LV¥¬;9MÁÏÚö»t›]DN*&€À†ª”T'¡Éö lÒ÷n`ó•ÈIÅDÙ°*%ÃIhB<Û›Ú¥;ìvQrD1biÅj•ÖCY²?­Ê´rÆêK­|Ùä:1%¨&V«lD©L)go{¾w‡/šNLÀÆj•ô(• ÈYÛÔ÷n`ã Êéd„ØP­’å1›NúÒMk¾Z9‘˜¢ «X2¨$&L³½)ß»ƒ/Y$£:`cKÁ5xn%¦NóÞ0ß»Âæ‹,Éh0YŲNe0…1‹ÜûÒMk|}9…˜bf…ê–Vâdÿ­¾ôÁ 9Ô—.­úJÌ2jgOW·Ì¸ƒýV_Z0ó½+l¾(s~ŒÖ “Õ-ëWîRè²Â}ðÝ´&4':`CuKê•»dZ†‘ž‰t ÿ€«¨à¡ÆZ`®øÿÿÌ%Åê-2ûpé:.qP')mÐê/s7ž¥'v5É Ü»³«G”Ô£¾´:düÇxz¨î™Ä¥‹Yp‹ã:a©`ÈETŒ”é;ëN\jŸÁ¸t›×5.*)FqIÕÈ€ëôD3¹{³ì¶Æ¥’ú(,©rê§KpébÜà8©¤6Ú%«I&ŠD§ä4Ò$\ºš;•Ô£¾´šd¼Èrz™î™Ü½‹Yv‹ãRI}–T“ŒYNÕÒ« pébnpœWRU—[Ä*“QT²ýå`¿ÉBújÀ.ÝaÛŽëJŠQ\Re2€ä7=H'MîÞÅ,»Åqµ˜ -KªLŠ|ö›¤“6wïb–Ýî¸WL…%U&£HrSUtlÂ.]ÀÚ“Jj£]²údbÉlÊCSMÚ½«Ù»óq¸bÔ—VŸŒ/iMOÐe“¼u oÜ*¨‹Â’j”º†$ü< ÿ€¡¨à c)CøÿÿÌ%•²61+jz»º²önrY›&žÄ )8S¥±cEÕ¶,ÉÒ]®²mâN¼(%-½¢êô€LÏö¡VµlÔÒ­mµV‚Sñz -To,ÌøPUí÷Jµw—km8,2Ѭê…*Ÿýa©–n¶¬í ãå”|ã«:Zïdjmª™ýaS-ÝØZK"¨ ÖM|°ªcÝFƒªdX½;[qÄå`‘‰fUu,ØhPiìKµt³emƒX,›ølµÇzŽUÃ>c©–îl­­÷ƒE&šUí±#@%°?,áÞÍ–¸Ýa…°lâ³Õë9TõúÉR-ÝÙZÛ®‹LÒ¨+ªi!éÍêÓºõ’ \º ×;ð"¬›à@ÈúT·¾±„{w¶â‡[’¢ͪYàñž2Ög–pé6KÜâ°KXf’sbuHë‰@¦w–žšôqw$ €§¨à‘Æžà,\øÿøasY­ë<â -¼ÒïW¬Áñ5~mÒj‰ØsêGœUÑë]{¸—! &TKD ѦráÄŠ^é’×+ÑÀû_‚5XªŠâéep²¼3E'–ôJ—¼^YöËÈ‚‰UÑI„©Yð\Ù»æEVb™Y8¡Š"‰05­ðJ×¼¼J 0@fN¨®ˆp¢JM~+ÈÞ5/²ú ÈÌ ÕNT©ÉïbÙ»æEV\ƒ—S8¡º"‰'5íÝ­ K×¹À@fN¨ºˆ "IÍyG+ÈÞ5/²Ê$¼œÂ UT © ïh…ڻΥVV@…—S8¡ê"‚Š!5Û®@–®s‘•€áåN¨Æˆ\Ö¹¥êö–,{Þd1ox!å«1¢·¸Q“Üõ -²t‹¬¦/§p‚*0bÔ w½‚,]ç"+( ÄË)Œúg? ÿ€£¨àqÆžÀ.tøÿÿ fv±y ÆAv;«Š+RúgjÖ»†Õƒ81n2[0ô XÑÑÿS§Ò0©Äq“ÑØª…! µŠ‚þœšõnÃj@\7­Z’P«Èç/ªSéF˜Tâ͸É@s1ZÍp§)Þ_ï—ª2Îõ°Òõ7«õhÜÈfY5çBªrp®O†õî²N³®Í+ãU3L*Œ*'ó•*¬tÿ•uz˜5nd¯Êa‚¡S¹—OTa½»°¬»Ã¸kóÊxª&.•KùPVºÿʺ;Œ72d"ÆU?Ü“Å_†ÿ‹Tcr¡ú¬tùÕt„xm¯ºPýð³aQáÈ­”½ÞýׯÇá”×öº1Õ3‚üV+ÝÍz½¶×©Š˜ñð§P㇪^ïþë×Ýpëµ½nLUÄŒ‡?…?Tõz÷_{} /ëÆTEÌxÈSh¨±»~l ÿ€ª¨àPƒd(ˆá¸Aàÿ ‚wX @PqÅú”ú|÷ãåE£r»¯¯—2ˆ‹Ñÿ4Ù/¸\”4Øtã‡b®Z×°ÊŒ6è³6¿Œ(SbéÓÖ‚Ö¸Uó°†U5š×“¿#ŒªÒÖˆzë -%3[¥pXÖÆ7yÚß?†…ZºRC­Eg«ÿ–½ñÝ {ÙpÓVêFw×øŒêÆ÷* Ûã`ÐᘾR1Ý­Fæ« -𠬫Tf‚A —:Ieêîš3£ª ÑÀº:e¿%Ú”®Š›ª$źcí²$[ª $âýõ„ßjÝ–¨Tº–êôëNµ°¢Ú`™à[¯ÿ¤2õ®Š§*FªGYY©6XL­2ë•©œJWáS‘‘Ôî¬VÖ«V ¦Õ²zZ*Rï¢x*&Ò»8“íÚ*„ƒf5¡¾œŠTº$<•ÉÝk¿õØ¢:!¡ò¯/?LÁ¡ÐKVm«5XéP#—¬¶@Gp¢}êçh°úWÔ ®ûWEH \¾¸‚ŸÂñ4 f¸zYïÀ¸C×CÝÿµ]½÷ZüY!Ý\Ó‡ŸWE‰;¸€’L¥¾¤µ¤rpUûÙU .αHZPÂë"=Ž/BAˆ÷ê*V9,gŽ­ €³qb ŠC…ÀÁy¥ -WA¢Á‹LD[ B îG±EƒUÄ¢ eÝ¿!Bø/æêÕý§Ç°¡UÐÞâιRä7yÞÍ8Ü‘+¤™ë;}¨³Õœ v ©A}5è›$^YãnûêjT™çÔm  ²¥úH'Á äÕÕ´’hΑ/Z l‰& BtA1V ¬_8é‚QM!Wü¤.Èâùl0PÍ,½0ë[¨Pê>|·Â±Ñ¯‰X¼Ž¨ÂVeÞõ¨CЕ•ø¤ €º¨àP(8@à?@ ø€Å¡u]â?^Lö9¿4( ž«Uù›N%­;°±4Eà_thPU­ ¿.ßÍ/°´||8޳Êd ê_+ÀéNö½#è¶Ó޲†>D»þÓ‡9R… ÓšÂ,¼”ÌVE…ƒ@îÑ7«%p1Öù„ÁR7ІìuÑEðÀ›U -¤ŒK©„áº,-%Ë^ä0=¢›Õ§ÊìŒ'‘„Ð`Å4ÙN6@éâ!8°J–,¨3žÊøYz ~Àë5…4¨šW9Ðb—ŒŒ&H[2Ä^ã¬b2PÕ±àt'ï‰ÄܹN7Zá "]ÿééf„"ø ¦, RÕ“ÿbÁrÈHÄþfÕ¥Bc:VBz0[ê‘‘/Æð½YªP€ÉEIH öKÔLбõÅÐC»YŪ\ÎxòGH ¶ÌÉîÖ~ä ÿ€Ã¨àP 8@à `h¡áb÷+ÿ±›äÇ¡Órµª„-ò¥’‡…ü¾‡µå¿?0c - U²Fž» I`šü¼³KÀ·(/¯ïéoVë!y"¤Ⓠ)„Þ†‡oVêy/b = yÐæyÑÍ4¼OV3ªz™Ä±oÚ ÒÑ$+D@védu¥ª'þ4“@µî‡8‰Øõ0á³GNV{j{b. XíBè¨ K8í«O¾V1Þ”Ø&¸{XMàûy0Ñ´\ +ðG‹|‘ä !Èïmù7¿# Õ¹6Ÿ»ýG(.=6¸+ÌÏlQ&¯ïômUý‘}ýáÕxJà0ÌUûw‹ª÷$ó›Uˆj߈xøM‚3(t‡Œ(ÉxØ®'«"5¿ 1M™„-HuiIÇœ‡‡½¬ÒTþ¾Ä"\¡`Úñ¥>dÈl<­jÔùLL‰Ñf~ ÿ€µ¨àP 0øþ>„#“Öé4ïÔž¢Õsd=zÌÄè½ìƒá½@± ˜GÇ|‰ ¡y}; -Ѹ;P)¡f%Ú%v"l†…¾£Œ”üÄ¢O•ÿ$KG³ð7{ Ê[LH,JJލ@'&ˆ’¢©)èœÝ×zh‡ªÞ$æÄàîlŠzXWtËþÝÙ»ùR5 -ÏwyÇtàP¶èíö»ì¹q¹1¶Z•Ò×pIÎP¿=²²Z€9Úóõ™>°yÕt$‡äR{>Ô'=Ùcpˆü-U|V øP,‡$`24K#äñ-U…;)d¬Ÿ¸!žI±RF#l¶ÌSo©f4ìà¥uâ}ø'•ÂY‰¿Ù <[m¬¢Ôv‰ˆnZ:4ªX$Z†œ3 ÁáÕ›ì}(X¡LH kÅPi ;ã]ÅU5JÞ}ÁÝ»”b¬Ø¨| ÿ€£¨à€ó0øÿÿPð†üä¬ALcõ•dˆ z ¥^|Fn)™ÇBV_}"(.½Hm—gþˆh_ÁU­ÞŠ QÏJì<HHvºÓj­ó…U «K“2ÀÅ„ ÈHÃê -TŽ«”&´åô‘£š êz©_\—”¥¥Åƒ¦ïüR@ÔQŸ”‘±#™…¦cªF í(Y¤Pÿ´·Š%‚c­!°UèpTž¾3)h÷,ü½²!Øù©ÛÙ‘lÓ3ŸÅíÎÎV4@;¼ù6›’dzø¿Ð]¾œ» -8n?‡ŸÌ¾$–„eê‚ÞFþ‹ëºµÀ–XÓ'½×Ð{"* è]ZDO~§Fú4Æx5”Ѧ,,XãÙ ôèysy4Œ ÿ€Ÿ¨à³RøÿÿP§éæ€ÜÞ/Œ+,i²`þ]X›ç¦™Y¹Þ㻿‰&íeä…y^ªÌþ1ž°2Ç¶ÏØ¹D-Žœ#„ÌšH÷0'§5Î[^«C6‹³½Û=Ìí9-3O–§wjÐ]£ÄlùŠEœž\FÀ²¼žŒ(ñ}d˜ÝkOcqÊi`3Ú/ž¯;ѪcZæÑª93zÒ:´×“ïy{F52Yÿ¬9ÐÌ6½¦õx{jò§AÅX[ò]{–±Üì÷³Ý»^Æ–f¦Ü52¬Hžeqè”Û?< ÿ€¡¨à€ó0øÿÿ¿Aà†.pn›s -§ZMBÖn&åØä¸çܦ6ãÔŽ´¤˜€lÎÇ¿éqÏéÍsÆ©WhI.ÁÙ.8/§Ç=g8ç§^›%§„h»p>¾N{Nrþ3N½*K6 Ñvᬼœ6÷™ä\h™zU–TPÛ%3ôo -Ýg’s¡eêõX2H¸¶KfèåºÏ<çEËÔ+±$Ž m—ÌÐ×)tŸ©Î‘–©!Ã’2¸E2C§Í=g;G§F€%S„q‹d†~O›{Nx¾4N]ôJ‚é¶àÜ| *÷ŸöœÓ>µ +y!¼[só„ªÜæó¨}jáVÒA·çæU¹ÿäçTûÔök2|‰çܼ¢PîþóÕ?|Y™’ùÅüÿ€ ¨à€ó0øÿÿ_ ÀÅ+t«ôœå<ÄÂç3ìS¹ì¹X¹?9–)‹=Qi>¹¨HÍ fe³B¢|R#{Qix2¢Š‚k•fý©y£\öD¥éÉ¢JÔ.>Øz,ª3EÑì•VóÉKEG]*ËWè‡ -Ú­†*U1ºØ¦”+âOÓ e´'ZMUUârq¥ ×ãO¬ùIjO´šU.*:äI¯¸Ÿd‡§¯½h5T™¨rÂÅ%^á~Ö^'µ½ÏjÚò§‹ ¼sÚMNp{ŸÕÜòOÑñ Ê~ÅÅÉ÷7õí9«!Ì8UÌ-Ö'ýŠ8“x6 îqVS˜9•8[L'ö8qoÜãÄæ™sжÀMYÜLÄ7#üW?| ÿ€£¨à€ó0øÿÿ_ƒ¤{u7ÚûMhi O¶$1†Ì'æ˜Ì8“êÑ)d&³“g -‰³†Ù¦KdŠ\€z™Ép²L%qcà`¶©3å-£^f2;y¦ˆ1 ˜mºDf¦°…©—™ 'ËT +ðåPm˜Iªj=õ8™ÙÉ9ƒ3y©dÆêYªzœÌp2Neða€]&Õƒ™¼JÖV“™œSd˜™ËHÝ 3YÃÖãd'ãTÆåS ˜I­^õ8™ÙÉ9„Y·ìÔ2Ãu+m=Nf8§P0p-ŸjÀLvÅÊ\“™œSØ ÌDKªÞŽS^Wµë}>£“?uµáe±Õ¦qú‹ª|½Ïgtò§®Æ/\,¶Ú4N -‹ª`ïóü©«å Ó@ú?< €ž¨à€ó0øÿ?@àNd0 BA’Žk.NöBÈOªÐ¥‘Ú衽'C²{&{1ä“*i‚lôPÈëg¡ä½É^Y“Ò³hä5ºçdø¥øžI`$ù¤ÚšÀ }srÿG(oHvRnþŒ¤FCßœŒ ” g˜H6©mò ˜fCÛ˜T!T¡7 Ì$ŸT˜9“FC¢aXÒ0 -Òзf’YŠJ›ÉžáÑ*&±2Ñ·f’YŠÊ™É›áÑ*&áÉè[3É,E%ÌdÌðh“ˆL€|ô-‡™d–B²ere4 –”ü¯"ýLc ùLý¨2(™*õ±¥•ó¥'Ó˜I–)OF?æJy°ó¼ˆéYãÉ-Õ#ÉtƤR˜ðg?Œ ÿ€¦¨à€ó0øÿÿdcz\Ƚ±Dƒ^RØè -ר¹{óÓó—r(¶YÅô6ºÆ7j.ÞpóüÒÜŠB»£žÞFWÆ8j[7<‹ÉFc¤ÑQRoc,m|£ÎÄ ûÎ2 é´8zê…¤åƒT·ùÚyM0ƒm¶zAÒÒÆC*ÌÚðë\SØl+£³^HZÞ8H…A›O×£1Þ¾(¯·‘–<¾Q[ʆG§›¶†ô.úë…¼eƒTU°ùË™N* +.‹ -{'uÉã'õ´k8rÞéiHËMQdï¤.{ܤžjÍ/Îw:²èš¨³wR—<~RO¯† 瞆tݽöBêrÈA*)Õü߬'“iGDµ½“½ò“5œ7õièIàùPpïd/‡Ü¤†:Í aZüT ÿ€œ¨à€ó0øÿÿw@0$:åœóê&DÛ±s¯Y–yÅ¢”pju‚‡úØå…RLŸúE™aÕréä $KYç—¾ö5Š2†iTË¢“-d,Uäy.mèo†5ªËŸÓ"H—(ÚÌ,}ö+ŠÒÃ*JdÎyzd‘+Ö–6îo,…‡5ªE˜Ó -BI‹4šH+èkD…Ä6 -¡Êù¢I…5*ê)ê7¢¢Ä7j!É -Ê…*‚ØP -×oDE‰oÔB” U„ÛMŠÛWDÅŠWÔBŒú” U„ÞJŠÞWDÅŠWÔ?‰ñ“•û©È`’ ¯q•+¾QðNЧ,áѸáÄAÒ•+RåN‰\š«QÆiFO£+b|£Îõ›xo ‹T -€š¨à¡'¢Äõ8@ @ A7ACÀ0 DÀÅœx5ÿRrrè^ÓézôAòÍÇÏt>´ÏàáÁ=¨7ˆï=XÂ}¯z‰yÆ/ú `"¸×Ä®–½K€ÙÂC¦ %±¾?–ðèõOê4Î*BR?Àøúº‡‡£Ù ì· ÿÐcl4ÜÇãÞ8 û­±v-¯5R еQˆõ´mƒ´ý€ ´ç©Ò -)Gž¼6d&dt%òu?øÜÿ€…¨à ƒÊ.qøÿÿ@9.€¿º’ÖóGÄÁEIËÄuµçÊÕ´XC¼kFÖ®z~æ]ÙæuS*¢U<ÙñTóù’jéù¢w¢ƒ²øìè5]eAƒ¯Ýºv°“'²L^5=•Ûojëðm$uüŽ$cÙ•e1=1ÍÇ–"—‘Í0¸åz7};9K~h-Ȧ±1òµ‹e9eãÇi>*ÛcRûò*ó<öl†ÀzªcZØ*´ìOw³û‡7´Få6Û&/»î­ê ­ˆddF/_ cH(ÿi¾Ð>ÓŒØÄaŒæ5Ò,†õ¶ööaí‹ H‹‘º¦ -Á&AßÙšâ?²­#ïJ -×`“0úŸ›[`(ÿ ÿ€„¨à0Ênøÿ@à -•aðzè%$"Á¤fH#ö†7›œó EÅ*Ñ¢ç) ªÏë Ž©Ìs4îEzà±”è6ž–œ–ÈŸ‘H8 ¥*“ źâ$JúÒ0yiÈ !Pö¬ÓÕü‘\Á“„ÿi¨à ËcáøÿÿO00z›|‡¯*×E-®Ý¶Îyë·^±&6ìý¦èŵhxß0¿º;ô¼<# k«íª£ˆUL™< ±¨Å¨#L1±hùgÆšv.Y{p _ ‹,i£ä*•UÚ¡Tp¯²¢Õ‡ Xa}®B/ÄÙgA«ù6m#Z;’…‚ˆh©õì·Ñ kÕ/5k-gµÙ¢X°E‡ÆH?[Íê­•æÔÖÐØ; -lm1›¡–ªåV j“A8¿µ,8Úh+\ô ŒI‚ g²€g<ãÚß:æ”ËfœÈN«?¨Ê\ÿd¨àËN…øþ„Ìä‹>»+TDKÝ]‘¿"]´tºfkûäGljôOЉ›FWmáPéâîÐÎì°粘M¤4íSì–ãGÚ~Â\LJ çãú¯î¤(W€1ÔšŠé@¾fíÀT+¤XõY þåv€«—ñaV«h=€¦îZ!®Ìšúª®vÀ«>²7ŽPý¡•ÏÝ`›å2­¾mLEluQWЩ¨e·™€å‚ZAæ˜MæËzÛn?K+OD"{Cä[kûÑ׫ÈÕk“Âɲ…×Ù>îUa ðìÿQ¨àPeÉ8øÿÿ_ÔÒ‚s„5JÀk?¤°ŠÃž…¸ê¸Ükl°¾„ 9Ö®¹×õª:öZõ1ÖÓã°ÉÁZšÞ¨Æ_Ï%S¨áÂTø¸è=oG!ˆz®¢(uÞœ­fž<„¼@T£YO”í5C“Œˆw¸‡è|ëŽRa[šnXê¨w;ï êwRªL¦T5“6²Ý1:p}_=J+,«kRI²›$¬”ÒÜöB 7ŠÒê6†T?Äÿ:‹ý*=Týƒ´ -^ÿp)=`ý¶ -aÿà(=Tý¹ -^ÿP(=`ýƒº -aÿÀ'=Týƒ½ -^ÿ0'=`ý¿ -aÿ &=Tý‚ -¼þ!LzÀú„ý–ô€õ*ðú)é¡ê@TàõIÒÖ?˜¨ 쀤‡ªQ×?ÜHXÿ€£‚°p‘ªþH^ÿàZÿ -Üÿ<Äð¡ê„Tðú‡“éëTûé¡ê¨Tû‰é¡êÀTðú‡„éëÌTû€é¡êäTðú‡{é¡êöTû‡uéëUûqé¡ê Uðú‡léë,Uûhé¡êDUðú‡céëPUû_é¡êhUûYé¡ê€Uðú‡TéëŒUV¯Ôÿ<8 -F„ýÃðôPõ/ -ÂþávzÀúaÿà:=Tý‘‚°ªþJ×?dNUÿ¥ 짬Sö„ÓCÕ?¸)û¼é¡êôxýÃÛôPõ*„ýÃØô€õ *„ýƒÖôPõ*„ýƒÓôPõ$*xýCÑô€õ**„ýÏôPõ6*„ýšü+|:-õ¡êÂþ¡Œz¨úÂþ!‹z¨úÂþ¡‰z¨ú‡%„ýCõPõ9!ìj¨‡ª¨aÿB=TýC¢öÔCÕ?ÔaÿA=TýCH!ì -¨¬P)„ýÿôPõ6…°€ŸªþA@AØ?OUÿà  ì°§‡ªÐPàõÏÓC¦ÿŒÿ; ðõCw<°G=$À‡RXÈ£úÿ!Ö.äQîÿì y¤ñ`ö…<êaú¶}`!z8þ‡s?¸G=àþƒ½XÈ£XÿAàò¨Ðpø…<êò4~`!z(ü‡”=°G=äýCÍ,äQmÿô y${ûÖÿ‡¦g†Âþè\\;ÖðA>÷ÀBõ° ¦ûàBõ ÊûàBõ  è{`!zX…~p!zà„~p!zP„$>°G=ìÁ‡XÈ£ÞàÃ\È£Ààƒ“,äQQð¡Ë.äQBðÍò¨‡ø°çò¨ø è yÔ|ØP]dÿ<˜*˜å yÔƒy|@æƒ yÔu|Ðæƒ yÔÃo|xçƒ yÔCk|è yÔf|°èƒ yÔƒa|@éƒ yÔ]|Ðéƒ yÔƒX|`êƒ yÔT|ðêƒ yÔƒO|€ëƒ yÔK|ìƒ yÔƒF| ì…<êa!>ŒöÁ…<ê!>ÔöÁ…ÏùWDÿ:nóÁi>€­à€<êf>ø­°AõP12Wp@õ /hWØ zø–Ï+lG=ˇó6È£^åÃÿ -äQ—òá‚0äQòá…0äQgòáˆ0äQRò‹.äQ=ò!Ž0äQ%ò!‘0äQòÁ“.äQ_ÿWLÿ:'ñ!zÈ®U -6!zÈ«5*x zp©€*0G=ÈÓ^È£x郼 - -äQŒôAD äQbôI äQ8ôÁNäQô¡SäQíó!XäQÉó¡\äQ¨óÁ`äQ‡óádäQió¡hÄ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDýÿÍ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlÿEÇËlq®„²Ä 4C"!"#3C µ™ÙÝáÿç NffþÿïîH1f -)—ê -bC„r©®P.Õ¥R@¨ñiØ;pƒ"2`9.KR¥Æ(rÂL8;17Ý  /éÈc\^Ѽ LUáæg4Ñ©Nr]Bìj™] ˆ¼4Ì‹f\ÑÞû–ª‚¢ìœŠpÊYS*ÆT”Îâ.MDxøÊx#R4Õ%*vC#càŒåìM  !!!!"""""#""""!!!!  !!""#$$%%&''(())**+++,,,---.../....---,,,++**)))(''&&%%$##"!!    !&'())*+,-../00122344566778899::;;<<<===>===<<<;;;::9988776554432110/..-,++*)('&&%$#"  !"/0123456789:;<=>>?@ABBCDEEFGGHIIJJKKLLLMMNNNONNNMMMLLKKJJIIHHGFFEDDCBAA@ -endstream endobj 25 0 obj <>stream -?>=<;:99876543210/-, - -  *+,-/01345689:;=>?@ACDEFGHIJKLMNOPQRSTUUVWXXYZZ[\\]]^^__```aaaaba``__^^]]\\[[ZYYXWWVUTSRQQPONMLKJIGFEDCBA98764321/.-()*,-/0235679:<=?@BCEFHIJLMOPQSTUVXYZ[\]_`abcdeefghijkklmmnooppqqrssstttuuuuuvutttssrrqqpponnmllkjiihgfedcba`_^]\ZYXWVTSRPONLKJHGEDBA@><;:875421/.,+*('%$#! !"$%'(*+-.023578:<=?ABDFGIKLNPQSUVXY[\^_abdefhijlmnpqrstuvwxyz{|}~~€‚‚ƒ„„……††‡‡ˆˆˆ‰ˆˆˆ‡‡‡††……„ƒƒ‚‚€~}|{zzyxwvusrqponlkjhgfdca`^]\ZXWUTRPOMKJHFEC976421/-,*)'&$#!  &')+-.024579;=?ACDFHJLNPRSUWY[]^`bdegiklnpqstvwyz{}~‚ƒ„…‡ˆ‰Š‹ŒŽ‘’“””•––——˜˜™™šš››œœœœœœœœ›››šš™™˜˜—––••”“’’‘ŽŒ‹Š‰ˆ‡†…„‚€}|{yxvusrpomkjhfeca_]\ZXVTRQOMKIGECB@><:86431/-+*(&% "$%')+-/1246EGIKMPRTVXZ\^`bdfhjlnprtuwy{|~€‚ƒ…†ˆ‰‹ŒŽ‘’“”–—˜™š›œžŸ ¡¢£¤¤¥¦¦§¨¨©ªª««¬¬­­­®®®¯¯¯¯¯°¯®®®­­¬¬««ªª©©¨§§¦¥¥¤£¢¡¡ Ÿžœ›š™—–•”’‘ŽŒŠ‰‡†„‚}|zxvtsqomkig[YWUSQNLJHFDB@>;975320.,!"$&(*,.0BDFHKMORTVY[]kmoqsuxz|~€‚„…‡‰‹Ž’”•—˜š›ž ¡¢¤¥¦§©ª«¬­®¯°±²²³´µ¶¶·¸¸¹¹ºº»»¼¼½½¾¾¾¿¿¿À¿¿¿¿¾¾½½½¼¼»»ºº¹¸¸··¶µ´´³²±°¯®­¬«ª©¨¦¥¤£¢ Ÿžœ›™˜–”“‘ŽŒŠˆ†„ƒ}{ywtrpnljgeca^\ZWUSPNLIGEC5)'%#" /1368:=?ADFIKNPSUXZ]_bdgilnpsuwz|~ƒ‘“•—™›œž ¢£¥§¨ª«¬®¯°²³´¶·¸¹º»¼½¾¿ÀÁÁÂÃÄÄÅÆÆÇÈÈÈÉÉÊÊËËÌÌÍÍÍÎÎÎÎÏÎÎÎÎÍÍÍÌÌËËËÊÊÉÉÈÈÇÇÆÅÅÄÃÂÂÁÀ¿¾½¼»º¹¸·¶µ´²±°¯­¬ª©§¦¤¢¡Ÿœš˜–”’‚€}{yvtromjhec`^[YVTQOLJGE420.,)' ;=@BEHJMPRUXZ]`behkmpruxz}‚„†‰‹’”–˜›Ÿ¡£¤¦¨ª¬­¯°²´µ·¸º»¼¾¿ÀÁÂÃÅÆÇÈÉÊÊËÌÍÎÏÏÐÑÑÒÓÓÔÔÕÕÖÖÖ××ØØØÙÙÙÚÚÚÛÜÛÚÚÚÚÙÙÙØØØ××ÖÖÕÕÔÔÓÓÒÒÑÐÐÏÎÍÍÌËÊÉÈÇÆÅÄÃÂÁÀ¾½¼º¹·¶´³±°®¬«©§¥£¢ žœš˜•“‘ŒŠˆ…ƒ€~{yvtqnlifda^\YVSQNKIFDA><97520!!#%'),.1358;=@CEHKNPSVY\_behjmpsvy{~ƒ†‰‹Ž“•—šœž¡£¥§©«­¯±³´¶¸º»½¾ÀÁÃÄÅÇÈÉÊÌÍÎÏÐÑÒÓÔÕÕÖרØÙÚÚÛÜÜÝÞÞßßßààáááâââãããääääåååååæååååääääããããâââááàààßßÞÞÝÝÜÛÛÚÚÙØ×ÖÖÕÔÓÒÑÐÏÎÇÆÅÃÂÀ¿µ´²°®¬ª¨¦¤¢Ÿ›™–”‘ŒŠ‡…‚}zwtqolifc`]ZXUROLJG42/-+(&$" &(*-/247:;8630.+)'%&(+-0258;>ADGJMPSVYpsvy|ƒ†Ÿ¢¥§ª¬®±³µ·¹»½¿ÁÃÅÇÈÊÓÔÕרÙÚÛÜÝÞßàáâããäåææêïïïððððñññññòóôóòññññððððïïïîîîííêêæååäãâááàßÞÝÜÛÚØ×ÖÕÓÒÑÏÎÌËÉÈÆÄÂÀ¾¯­«¨¦£¡ž›˜–“Ї„~{xuqnkhTQNKHEB?<9641!#%(*HKNQUX[_beilosvy}€ƒ†Š“–™œŸ¢¤§ª¬¯²´¶ÉËÍÎÐÑÓÔÖ×ÙÚÛÜäååæçìôôôôõõõõö÷ø÷öõõõõôôôôóóóòòòïïççæÙØ×ÕÔÒÑÏÍÌÊ·µ³°®«¨¦£ š—”‘Ž‹ˆ…‚~{xtqnjgd`]ZVSPLIFC@=:7$"   "%'*,/EHKORVY]`dgknruy|”—𠣦©«®±³¶¹»½ÀÂÄÆÈÊÌÎÐÒÓÕ×ØÙæçèòòóóùúûúùööööññððïîîíììëêééèßÞÝÛÚÙ×ÕÔÒÐÏÍËÉÇÅÃÁ¿¼º·µ²¯­ª§¤¡ž›˜•’Ž‹ˆ…~zwsplieb^[WTPMJ+(&#!!$&),.147:>ADZ]adhlosw{~‚…‰Œ“–¬¯²µ·º¼¿ÁÔÖ×ìííîòòüýüûúùùùùôôïïîíìëëêØ×ÕÓÑÂÀ¾»¹¶¥¢ž›˜•‘ŽŠ‡ƒ€|yuqnjfc_\XTQMJFC?<9630-* -0369=@CGJNRUY]aeilptx{ƒ‡ŠŽ’•™œŸ¸»½ÀÂÅÇÉÌÎÐÒÔÖØÙÛÝÞàáâäåæçïððþýüûúññäãâàßÝÜÈÆÄÁ¿¼¹¶³±š—“Œˆ…}zvrnkgc_[WTPLIEB>;841.+)&#!  #&(+.148;>BEIMQTX\`dhlptx|€„‡‹“–𡤍«®±´·º½ÀÂÅÈÊÌÏÑÓÕ×ÙÚÜÞßèéêëìíîïðññòóó÷÷÷üÿþýüòòàßÝÛÚØÖÔÒÐÍËÉÆÄÁ¾¼¹¶³°­©¦£Ÿœ˜”‘‰†‚~zvrnjfb^ZVROKGD@=$"!#&),/269<@CGKOSW[_cgkosw{ƒ‡‹“—›ž¢¥©¬°³¶¹¼¿ÂÄÇÊÌÎÛÝÞàâãñíìëáßÞÜÏÍËÈÆÃÀ¾»¸´±®ª§£ œ™•‘‰…}yuqmiea]YUQM741-*(% 36:=AEIMPTX]aeimrvz~‚¦©­°ÃÆÉËÎÐÒßàâäåçèéþóòìëêéçæåãáàÑÏÍÊÇÅ¿¼¸µ²¯«¨¤ €|xtpVRNJGC?;851.+ ),037:RVZ^bgkotx|…‰’–šž¢¥»¾ÁÄÇÉÌÏÑÔÖØÚÜøøýþþôïîíìêéÝÛÙ×ÕÓÐÍËÈÅ¿¼¹¶²¯«§¤ œ˜”‹‡ƒzvrmie`\XTPKHD@<   36:>BFJNRW[_dhmqvz~ƒ‡‹”˜œ ¤¨¬°³·º¾ÁÄÇÊÍÏÒÔ×ÙÛÝßáãåæôýþøõõìëêèçåäâÕÓÐε²®ª¦¢žš–’މ…|xsojfb]YUPL41.*'$!"%(+/2SW[`dinrw{€„£§«®²¶¹½ÀÃÜÞéêôüüüü÷÷ÚØÖÓÑ»¸´°­©¥¡‚~yupkgb^0-*&#!!$'*.159=AEINRW[`einsw|…Š“´¸¼¿ÂÆÉÌæþúúúëêèæåÐÍÊÇÄÁ½º¶²®«¦¢žš•‘Œˆƒzuplgb^YTPKGC?;730,)&"  -048<@DIMRVsx|†‹”™¡¦ª®²¶º½ÁÄÈËÎÑÓÖÙÛÝëýþÿûùïîíãáßÜÚ×ÕÒÏÌÉÆ¬¨¤Ÿ›–’‰„]XTOKFB>:62.+($! ?CGLPUZ_dimrw|†‹”™ž¢¦«¯³·»ÕØÚúùøø÷ööðæäâàÞÛÙÖÔÑÎËÇÄÀ½¹µ±­©¤ œ—kfa\WSNJEA=851-*&#  FJOTX]bglq§«¯´¸¼¿ÃÇÊÍÑÓÖåçèûþÿúúùùïîìëéçæäÕÒÏÌÈÅÁ¾º¶²®©¥ˆƒ~ytoje`[VQMH/ -!$'+/37;?DHMRW\afkpuz…Š”™ÀÄÇËÎÑÔ×ÚÝßáäæèéëíîûöñðïíìêèçåâàÞÛØÖÓÐÌÉÆÂ¤ ›–‘Œ‡‚}xsmhc^YTOKFA=951-)&""%),048=AFKOTY_dinsy~ƒˆ“˜¡¦àâäæüÿéçåãáÞÜÙÖÓÐͱ­¨¤Ÿš•‹†{vqlfa\WRMHD?;62.+'$*.26:?C‡Œ‘–› ¥ª®³·ÒÕØÛÝàâåçéëìùÿøæäáßÜÙ×¹µ±¬§£ž™”‰„ytoid_YTOJFA<840,(%! -  @EJOTY^dioty„Š”šŸ¤©­²¶»¿ÃÇËÎÑãíîðñþÅÁ½¹´°«¦¡œ—’‡‚|wVQLGB>%"!$(PV[`fkqv|‚‡’—¢§¬°µ¹¾ÂÆÊÍùùÿóòñïîÏÌÈÄÀ¼·³®©¤Ÿš•Š„ytnic^XSNID?:62-*&!%(,059>]bhmsy~„Š•šŸ¤ª®³¸¼ÁÅÉÌÐþãáÞÛØÕÒÎËÇÿº¶±¬§¢—’Œ‡{vpje_ZTOJE@;72.*&#)-15:>CINSu{€†Œ‘—œ¢§¬±¶º¿ÃÇËÏÒÖÙÜßâäþåãàÞÛ×ÔÑÍÉÅÁ½¸³¯ª¤Ÿš”މƒ}xrlfa[VPKFA<73/ 6:?DIOTZ_eˆŽ“™ž¤©®³¸½ÁÅÉÍÑÔØÛÞáãæèêìÿýóëéçåâàÝÚÖÓϦ¡œ–‹…ysnhb\WQLFA<83/+'# ;?EJOUZ`flrx~„‰•› ¦«°µÓÖêìîïñòôóòðïíëéæä¼·²­¨£˜’Œ†€{uoic]WRLGB= - !%)-16:?EJPU[agmsy…‹‘–œ¢§­²·¼ÀÅÉÍÑÕØÛÞáäæóñðî¾¹´¯ª¤Ÿ™“Žˆ‚|voic]X - !$(,15:?DJO€†Œ’˜£¨®³¸½ÂÆÝàãåüüüòñÔÐÌÈÄ¿»¶±«¦ š”‰‚|vpjd^XRM.*&"   $(,0tzž¤ª¯´¹¾ÃÇÌÐÔ×úâßÜÙÕÒÎÊÅÁ¼·²¬§¡›•‰ƒ}LGA<7 #'+049?DItz€†“™Ÿ¥ª°µº¿ÄÈÍÑÕØÜßâåçþÿÆÂ½¸²­§¢œ–‰ƒ}wLFA<72-)%! "&*/38>CINTZ`gms«°¶»ÀÅÉÍÒÕôÿƒ¨²»)ƒŒ# ´M‚ 0€`dTö€0©,r”BÆd@@ƒ€%´pG×w;ž q­;fÁRwlYCïÀ”ƒ34ßuìŒ?~ç¼Á©vÛØˆp»üÓ¤>ޏÓ*wlºá»ÔÎÒÍž_¿Ûäq*K•;5&ƒc€»ØÅ‡îÆPnWK,·¹Ñh’Ö»Íï)üîM¹¹º À_Ý­€rž ¦eGÆcLFv;Ñݸ)Ã"ð–;j*èŒ=<¶ßEkòŒÇß­HRÊú·ãS) ¸K˜œ´L ð~×Sž±ýî>#rW|r§öH ŠÉàp÷¨»½zÁÕ9³:í8ÃëŒÇïœÊÀ ¶’[ɶÜM‘Û¿'#s¹ènêÝNœ‘?€wèpŸ¼ÛßÙi‚_ÓFó+WµlX2^8“ºk&Â!—êÜžzÕ¹¾³‚§Ùg…7gŠC³µÊñe»…¬Š¶C¹ã…“¡Œ»ÏM†±»Þâ‰3Ô.ïu‚çæÕƒ¿ã^fŽÁêƒA1wá·kÀm'ÃÝk燬¡ÿúÝ¿g¬¼äÏ0 -N:ߎ®,ŸöÒíÄÝÓ¹sª“«»å<´ºÑSM/R|—œàÕ€7c\xç_é?j;š¹Åí&ÿÛ™LFép'y2ÞNCw ¿‡ÝwìèñJð$þŒ<“ZA<_UŒ»U»‰dÀÊܵœ Ýåí:ŽÁÓžRð¤Ã3z|—†¬GÛÏ×NmsÇâd`èµïÊwÒ~÷ožñ¡à!äïN>hl<$Ô´¬™NK&»‚;'À]š;ÞdüáÎ HדQéî2ðud¤} ÞÀ˜ÂH¼/¼%è3MÔ_¦ô =lç«íwí®·s› \àn2”ÃÝ€ZÞ0øL‚‡¯€—ùA*4¬"3¼y;‰­8eÖ|i·ó} î^„;Ty»\™ L'µDþzÏ5ºIC~Wቅho•ÂÂHñ…k°„JízCù1Ê#îDÜv»·ëµÛźû$¡kýî¬ÓH !xç¼ó„—¼nà¡`ð’oÿ‡á#f¹è±Ó˜Ú]ò1>2îÁFp;õs‡j2bÏ莅îwTWCoðŠ Ï‹á™Ä Þi¼ Qš³G[£Eȱ´]ÞÓÈÎnéNkÇ’ÜÉiH§Q„ƒ·tðD‰Ç2<¹xÚL<«ù x[ö‡obËnî×®Ú°·+åÚé(îfB2\RÉPwžÏ8€‚ýϘlÂC{xî>ë«âÏì­ûUñyûí¹È3šÝ´v\ÂvãÝŽÇlWƸ“LtîÄÂ9ŠÔš_`cÞ‹ðÞ O‚ÂÛ xÍxàñŒ“gñzqç¹ ±ãvv“ÚAÛyOÚ¤n}»E‘ú0Ü Õ‘´<+¨/AÅCG×&/œ‘ÅêyEê gC8#Ùu@;<¶SMÛ)©cAò;u×ñ˜b¿£œÁk‚xgñ(*}<3yæŽÚïÄ>%Ñd 묲óqvv°ì¸Û1Ûíœgçî_>O ø <«¿Cáý'Þ±x2·y€ò€2O3.E…„Ï):¥oÝÖ)ì&ÄŽW°{ÐŽ«ÚÙ€íèïva‡;æ.ߤàõ}†x¹gÔQ -oŽ0(ç•ê%7ÏŒÄóƒ,:ëéöZ‡Äî*Ù!Á´SåíÊî\̽Lò|V^}ºŸñ¼ /ÃÅŽ·yByO˜'ô”i¨D2»tŽê‚ÖáƒÝae§Pkçv¸‹ä>¢QüèQ2⦒àIÔð3è á ‚€÷Þái.Åkw]¨gîÆªX-T¡#žÎìËI³sºíä}»În»1‚ €Ü\úèfâ3nž^óqxzy‡Ò<°@ÓÈþpùí:G±«àœêv&HF´1½ ß– -ï÷†È#œËs€îàk÷Û唜¯„§ªëàÕÏ‘Oðíb_»Ñ Ûuj;ZŒú¢Nu¼¼ 1&yYx"üã𨖳3Ýír‘™wg£„g*¬'bx‹…GD™áå§!D-íªo»ê·ÜIc>!#‘»æ”ª^~^Jˆ79¼ò`Zµóz»`ÚEánŠÔï¨à=ï§EãgŽx2×8†íðiW¥vŸk‡©Éâ3µ]ž ÞàxrÕ6–¦ìÎ~;RÜJá‘)N<ßœâyñw@#»¿œ9íµ#Y»fC xð¤¼àáÞ,i´;Ÿƒ¡ Žb]6vÆì\’˜0n;.{  u´“ÿûéçäáÞÛ×ÔÐËǽ¸³­¨vpjc]WQKF@;61-($  .27=BHMSZ`flsy€†ŒÊÎÒÖÚÝàãñóôõþóòðîìêçåâßÜØÔÐÌÇþ¹³®\VPJE?:50+'# -  $(-16;AFLRX_elry†Œ’Ó×ÚÞáäçéùùøêèÕÐÌȉ‚|uohb[UOIC>94/*&"5:?EKQW]djqx~…‹’˜ÓþÿúôóñïíëèæãàÜÙÕÑ­¨¢›•ˆ{tmg`ZTNHB!%*.OU\bipv}„Š‘˜ž¤ªò鸳­§¡›”އ€ysle_XRLF@;50, $(,16CJPW]dkszˆ–£ª°¶¼ÁÇÌÐÕÙÝàþúúåâßÛ×ÒÎÉľ¹³­¦ ™’aZSMGA;"&+05;AGMTZahpw~…Œ“𡍮´ºÀÅÊÏÔØÜàãæóáÞÚÖÑÍȽ·±«¤ž—‰‚zsle^8-28>DJPW^elt{‚‰¾ÄÉÎÓ×ÛßâæéëìêçäàÝÙÕµ¯¨¢›”†~wpib[TMG@! !&*/5:@GMT[bipx†Ž•œ£©°¶¼ÂÇÌÑÖÚÞáåèëíòðîìØÓÏÊÄ¿¹³¬¦Ÿ˜‘Šƒ{tmC=72-(# - #',17=Cmt{ƒŠ‘™ §­´ºÀÅËÐÔêìïñåâßÛÖÒÍȼ¶°ª£œ•ކxpibZSMF@:4/*% ).49?FLSZaª±·½ÃÈöûõóòïíêèäáÀº´­§ ™le^VPIB<61+'" +06ELS[cks{ƒ‹“›£ª±¸¿ÅËÑÖÚßãæêíïîëèåáÝØÓΟ—‡wog_WPHA;4.)$-29?FMU•¥¬³ºèëîðóôöõôñïìéæâÞÚÕÐÊľ·°©¡™‘‰yqh`YQIB<@GOV^fnv‡—Ÿ§®µ¼ÃÉÎÔÙÝâåéìôò𿹲ª£rjbZRKC=60#(.4:AHPW_gpx€‰‘™¡©°·¾ÄÊÐÕðÜØÓÍÇÁ»³¬¥•„|tkc[SL!$)/5;BIQX`iqy‚Š’›¢ª²¹¿ÆÌÑ×Ûõ÷öôòÙÔÏÉüµ®¦Ÿ–ކ}umd\TME>81,&!70*$ !'-3:AIQZclu~‡™¢ª²ÿûùøöõypg^UME=6/)$  &,29@HQYbkt}Áüûúø÷”‹‚yof]ULD<5/(#  %+18?GPXajs}†˜¡½¶®¥œ”Šxne\TKC<4.("å¨ñ¥‘€`Ð$Á@H!¨€qQ2Èca€"H„É5‘þö»pÌËîœú„?~Ç :b:¢†¿›„$S?(ê»ƒÇ 5¢fHŽ˜¢ºåïF¶¨è{wfN òPšÙ)èwÈr2í’¸ë@Hج±yfúÑß¹…uBSg”;gw@V½ò4õÈCfÕÅax×ï§~6ÕÛkJú»š(Ùøåݹ¸JšßN‘Êœ>‰-GÁÝpH~îlùÒ0°ˆxG}jJ¥ßâŒS*ñ¨35áî`­È€›Ð¾ØªÁäïŒòŽŽ3ê±XÄ],†HN²ÝAFò;ê»w…ÕûèFËÉ 2‚âî%4õïN‡ŒÐZ3ŽÇßÙé]TÄc:S´þâ¥f»Û-HQÖõ8˜ìFïdüN›è¥ËQ‰ÄÝÝÝ5e ¨ŒAV“ßÉ)ŒÞ%óÝTSÊÈ`£½wØîNe“ß}Äì Ò?•‘øx©fwj›š¤áäw¥wxœá.ñHID…G°TaReœFÜ}îîlîÂMÝÅ&Ô z yÇ+Îøä;yè{<¦Æ˜(ªŒ•»+áŸì]úd3^œá VŸù®« w=à*£lîЄ2(8)¿“½ãq†¿Ž¦¿ñ]GŒ×îXŠ]ê”q´»J¦†å((Ò^#4ņï¼û޹©˜*˜ânHʺ9V 50§°,ÇËwT/w"RFÍîtšÂfÄÃÐM±úA¾“Æå¼Ã] -n©¯2S܉v§ ”Q½HåwRÕ¼á»N X(°ÀV\ƒÊÊ?CÍWq'ÕÔ»S+°:ôî§z÷ËêÝœ1l)çr'¹p÷F*Þ»û«Ê, rqxÕæÓfHdõà‚õ,´µm7@…ÍÈ8U†L-±;óTÁ£èÿ‰©w?†‹ïUt~)à.èÉtr§PzeˆïN·Àò»lœñ,æ]8ëŸEò³w_íó‘3:_¼¯”RôɘsË$î„v'AV8éÝ:k3þœïâœ!Î,"Í#t^. õK©Ž©ñuq‡V›ºS¤íà –ç»­½{ xìÆºá E˜:I™‚¸“Ì–ËâŒB‰ïàÃÿ²ú¬ïš…uwpàŽ³Ë]Ä« Ep'KìÒf€ßy3gHŽë»D š}߀*)¸sÊ@€äŽ«2*vׯ…ÞÚq†È¬vIßõ…¯îî îHIî"*Cñ·TapÆá»&«wàyu -Ói©¹1ávUלñαzrðÝÊíÝóz×*ðdB­îF>e‚2Ò Aq§&Vc:ïtë¨e5)ëúÎý=Vw—ߢ2 -ƒÁèóÎ5ðÝiæŒWœÑ´¾ã»[X´†”¾ÝÖ#t»»D«©cEÚ£¬V±½sa`ÉïŒÚ¨º›Š&wRDÎð´NoQJ ö¥CwÿÀRÇ1õr72|‡w@Y 9<“±xÃBXÒRSÆaÈD3|—dY-59c¡À“™5í¥9‰ïzõ -H³ -ugbj»tÑL½“ã…’36­€·ï{eî·ÖíOƪROèNwß.ip·x2ÄJÿSêxiê5gL޽[rà ÷»¤^/”OÆæ¶›½e¥vƒqWPp§cêr·y4‹HÎXÕL€7[ÓüÎ?・TPêÂ_wm¦ å®§³É­ž_'¶ßÉ¿vFk\"“o˜Ô‘¤Ôó_w]êÀ“!Ow¯—3ÖϬ®çÀËòZϰlqÕä·TÈ7>FNW`ir|…Ž— ©±¹Ä½µ­¥œ“‰€wmd[RJB:3-'#)/6=EMV_hq{„— ¨±¹ÀÇÎÔÚßãÑËﵬ¤›’ˆvlcZQIA92,"(.56/(#@HQZcmwŠ”žÕÛàåéìðòõ÷øÿùøöóñîëçâÝØÑËļ´«¢™…|rh^ULD< "(/6>FOXakt~ˆ’ÆÍÔÚßäèìïòôêæáÜ×ÐÊ»²© —ƒyof\SJB:2+% !&-4;DLU_hr|†™£¬ïñôö÷õóðíéåáÛÖÏÈÁ¹°§ž”‹wmcZQH?80*$%+29AJS\foyƒ—¡ª³»ÃÊÑ×üüýìéäàÚÔÎÇ’E=5.("#)07?GPYcmw‹•žÐÖÜáöø÷õÙÓÌŽµ¬£™†KC;3!'.5FOYcmx‚—¡«´½ÅÌÓÚßäùüöôò×ÐÉÁ‡}rh^TKB92*$ %+2:CLU_it~‰“§ØÞãýüõóòóôúóñîêåàÛ¢˜Ž„yodZPG>  -HQ[epz…š¤­Üþóïíìíîîþìè䔊€uj`VLC;3+NWalv‹– ª³¼ü÷ñëêéèèèäçççèèèééêêëëìõïëçâÝÖÐÈÀ¸¯¥›‘†{q70)" - 8r|‡’œ¦°¹þ÷íãââáßßÞÞÞÞÝÝÝÝÝÜÜÝÝÝÞÞêëýŽ´«¡—Œ‚w<4-&   -5=ƒ˜¢¬µ¾ÇÎÿèçææåäãÛÚÙÙÔÓÓÓÒÒÒÒÑÑÑÐÐÐÐÏÏÐÐÑÑÒÙâìýþÞØÒʺ±§“ˆJA81*19BKT_is~‰”ž¨²»ÃËÓÙóíÙÆÆÆÅÅÄÄÄÃÃÃÂÂÂÂÁÁÁÀÀÀ½¼¼¼¼½½ÀÀÁÂÂÃÃÄÉÊËÌùâÜÖÏÇ¿¶­£™ŽƒyndYOF '.5>GPZdoz„𤮷ÀÈÐ×Ýâ翾½½¼¶¶µµ´´´³³³²²²±±±°°°¯¯¯®®­­­¬¬¬¬«¬¬¬­­®®¯°ÉÊÕרâãôôñíéåàÚÓÌÄ»²©Ÿ”Šti_UKB91*#$*2:BLU`ju€‹•ÍÔÚàåÿáàßÞÜÍ»º¹·¶µª£¢¢¢¡¡¡  ŸŸžžž™™™˜˜˜™™ž¥¦¹º¼¾¿ÁÃÄÆÈÚèéêëïìè㮥š…zoe'!!'.6>GQ[ep{†‘›¥¯ðóõâÙØÖÕÓÒо²°¯­¬«©¨§¦¤£¢˜—–•”ŽŽŽŒŒŒ‹‹ŠŠŠ‰‰‰†…‰Š‘’“œž§©«­®°²´¶ÇÉËÍÏÝÞàáãôñîêæáÛÔÍŽ´ª –‹€uk`VLC:2*$ $V`kvŒ—¡«µ¾ÆÎÕÜáæùøðïíæäãáàÒÐÎÌÊÉÇÅù·µ³²°®­«—•”“‘Žƒ‚€~~}}||{{zzyyyxxwwwvvrqrrrssttuv‚ƒ…†‡“•–˜šœž ¢¤¦¨ª­¹¼¾Ýßáâäæçèêëìóôþùø¹°¦œ[QH?HQ[fq|‡’œ§±ºÃËÒñóÿøìêéçåäâáÖÔ½»¹·µ³±¯­«©§¥£¡Ÿž‰‡†„ƒ‚€~|{zyxvutonmlkkjjihhhggffeeeddcccbbb_^___``ablmnoqrtuwxz|}–˜­¯±ÀÂÄÿõ¾µ¬¡—ŒvlaVMC:2+ MWalw‚—¢¬¶¿ÇÏÖÿÿíëèæäâ±®¬ª¨¥£¡Ÿ›ƒwutrqi[[ZYXXWWVVUUTTTSSRRRQQPPPLLLOOP^_`bcefhjwy{}€‚„‡˜š·¹¼¾ÁÃÆÈÊÍÏÑÓÕåç÷ùúûßÙÓËú±§’‡|qf\RH? R\§±»ÄÌÓÙ×ÈÅÃÁ¾¼¹·œš—•’ŽŒ‰‡…ub`_^\[YXWVUTRQPIHGGFFEEDDCCCBBBAAA@@@???<;<>>?MNOQRTUWY}‚Ÿ¢¥¨«­°³¶¸»¾ÀÃÅÈÊÍÐÒù÷õóïìçâÝÖÏÈ¿¶¬¢˜‚wlaWM #*˜£­¶ôñíêåáÝÙÕÑÍʵ³°­«¨¥£Ž‹‰†„|zxvQONMKJIHG@7665554443332221111000001GHJLMOQ^`qsv†•˜›ž¡¤§ª­°²µ¸»¾ÁÄÈËÏÓ×Ûßãèìïóöøúü¨“ˆ|qf\   &\fq|ˆ“¨²»ÄÌÔÚàæêîñôðìèãÝØÓÍÈÿ»·³°urpnkigdb`^CA@?((('''&&&&%%%%$$$$5678:;=?@B|‚…ˆ‹Ž‘¤§ª­±´¸¼ÁÆËÐÕÛàåêïòÿãÝ×ÐÈÀ·­£VLC:1*#1:BLV·ÞöÿüúøôñìçáÛÔÍÇÀº´¯|gdb_][XVTRP=;:8765.-,'&%$$##"""#+,-.01346Nnqtwz}„‡Š‘”—›Ÿ£§¬±·½ÃÊÑØÞäêïóöùûüýôòÌÄ»²¨ž[QG>5-& -5>G¼ÄÍÔÛáæëîöòíçáÚÒʺ²«¤ž˜“‹‡„€nkRA?=<-,! #*+-/PSUX[^adgjmpsˆŒ•› §®¶¾ÆÎÖÝäêðô÷èãÞØÐÉk`VLB91)" )19BKV`kv‚˜£­·ÀÉÑØÞäèíð÷óïéâÚÑÈ¿µ¬£š“Œ†€|wtA?=;975420( GILOgjmquy}ƒˆ–ž§°ºÄÍÖÞæìñõøûüë¼²¨“‡|qf[PF=4-% - %,4=FPZep|‡’ïûøõñëäÜÓɾ³¨“Šzsnida]ZW-+ 3579<>ACF^bfkpv}…Ž˜£®¹ÄÎØáèîóÿúéäÞØÑvk`UKA80("!(08AKU_jvŒ—¢ØÞäéíîèàÖÌÀ´§›„ypha\WROKHFC@ &()+-/@CFILPTY^elu‰•¡®ºÆÑÛäëñõùûü’‡{peZOE<3,$ - $+3;864$ +-/1469î.Ò®™’ÃWFÕ;ù/sTÆiºÃƒÇ]×2âîàÝõ½³â]~±]f0á••ºl©aÜd¯;?6}2"Ñòìœz¡e!ÈþÞèî‡Ð'7CW¡QnÑÁÖ€ÅÀGg+J»›Yî Â;*C“–»fOý?Ó"¦S瀞xx»ÔœÚ -]úÐeJãÆm£[!뎈Kß‚ß €/#*Ñç`)ŽÄC¾CïV]îQ\­²5ÂÐŽ%Ë¥7m…YëðénÑ–;ôIö$ìŽ%7Ó#ÿÇ»Œ^:WbKo©yË©x¡¸hô¸hæ'o,|q6uwàjÑ[Фâ\5wiÁ¥¹“ô@tp¹ñ¹<´blúVmõ¦‡ò)–0ínù qwr^Ü5Ó]ñðCJeö˨w¨$R[â1´ã³dU®[hµ’ñq™•œE@×ܘ¦©YqäÄŠ+÷*®}Ì-âÖ¬·±lÑV¿ªOÎ2áC‘üQÿb)Äî¦_ê~SgœeeÐ.`zÿ‡®¹Ý5Ñ;I$I«Fƒl IwòÐsKóªèh<3¶ã´¢)\®½÷¹…vhÎÍ;7í­AÖ[KgÊ2z‰ýÚQ1+ç,*fŸRÒÆ’®ÖÏš¼}’Óno>ôȈ ™îôb63(QïhWµ”k¦ì»ïÊÞx´e‘3—“YCµRþõ-¦¡[ Eó¾ K4›9-|gÙETÀ¾bËïmä½S‡ÛÊá—ÞˆÝøV5¾Å»9‰„lÕ£‡ÒŠ˜8Þh§sfþ‡ÄÂDQ-‹y.„tñˆÅt(c-W hæ -˜™kÚYí§´nN‹+ì'ª„Vaå]ÿ¾SSÍA2`éæ©0bD‚¿;'Þ9þnßî»:ã`ãïœs0™Çt)»~¶±¸Š-‚ç\ì ⊛˴¿[f8)CYº¾n2.œVçI($igw&:ã]ñ;µá·ÎJwÛ‡x[Õy ½[¶j`›a›qßÕy5CH¥ðÃõÿgÊ|1Ï]+åäDÉg„ŠHáŠù®>¨+-U - N¢ò ÑQZBL§3j¶cL‹{a€É»¿S›ä›Õ|€åÝÞKV•´ô &Áß6.¸åÁ'ŒBÔ\Ñ"ó†V¤ûoBHòÞhKmvÃ0h<\eBíâ/Û # ß§. ŒY®_žNÍt—1>¡wI@"9 -¼k™fÐ=u´N–Û¶¼ä!kñïÃ=ªDMù X$Ú6nyå!1ËŸìÚâÏÅ’<5¶gŽ…îLZd˜Næ*´¡™ $ûȇMÁ†¥èAÃö3¸°ŽbüRYÒ©¡g®x©&ªX6ÓwšqÉí»}å¶Í²}…vW »Oü»·M%'ý0LÐg†AÚ†n²~­í&Ê3LZwKþ‰¨„’Å G„„½‚ØZ -jgægóUEºÃ(ŠÍ´ò ‘ØaÕ[›‘ÿÝyÅßžx®†AÈÑFȱ¼Ì¨çÑÈ -ÈXpTÜ3Ïè`%zæ cOÞ‚$¯bФCÉ@bùÈfO›±ÝŽn×xg<¥Ê°ºƒ¿z‰ÔçV]ª”HfàžÉœ"^®;!þãðU“W"òÆ…ùß’XU@ô-œ¿¯UQrf#"™1–^‡ú X¸²/¾Gˆª vtjþÊ’–‚z[µÛf´–wÂ, é¾™ @„CÊ*µÐÀìc˜uJf"(b*êJ(åÛ£$¬"’Âù0ÎÇûuxcU" -Ãݳ¯ÝVí€e€êÔù¾©©&m‰.Á»õÞ*™Rr“7ñ›N"8``ØiM‘ˆ¯Hd®ŽH‡ŽÈu踅>Þú°ßÄYéø»‰€_çw• þ­`v&‰aPÜA",c}§nŸî†YA"%¸­úôm†íð.ô{×lyŸZnÛGºã &0É¥E ”ÜlÔz4Ë`–eÔ8YFŽÃo¢Öo§êøÝ¼Ùõƒˆ± ¯SëÚ§;DSAž[µËmF»¼{,œl2Ù¹ÐoÄwCž×ž<7D!@—œrýpJ℉'¸‡N×Ö± Àì|a ^àTܵ`–QYâŽVWœ…V s›‘gŒ˜¼¼#Ñå4Æ:ŽêRC XŽ„£Öq£¶ÆÚ ­ÚÐ9'¥Sd)ª+K¢5þ@î„ R⌻GÞ©§E¼û)x'B6Þi¾šgÅ«ïÜÅMf·äÜ/¤Ù}ðwÈ -®ûÜÒ}+Ò­E¿Á©-Eq—b§þªE¼sKÁ»œþÈ;øå,Ék‰â,>NtrQàofY ¿2çšIMM‹»YFüŸ2ÔèNÑ£Uóš6ö"Pñ»öªÈ-G¼K޼NBXʸ<¹£¿ArÜ/mëÔ¥´Åt…"ä6ƒ²jÃß) â<§è'K1µ@OT†¸‘; ’¼bbP†0(bF]6Ã)ïj†Ìf œ÷LiÿPEkr§Ä)C´Ãà)6£€òîÒUûW{çÈÄ©WÊ2ìÆÊî‹Á™Ž†U«¤DŠ^yw(Þɶü-O:Ä]Èœ:8‘;2YÆ>ÝéKÃfP¬Dz yçV3²÷n:¿@=T—8µç"wJUÍiØ ¾•H+ïn"Á¸ûýÙÝ0à1Ha&§>Ë2·6Cµ¼S?W]þïD~$æ-ñÄ5a)ÒÚzÄ ½¤˰B4#hF½+Ô •gî Äg¢2¶f‘@™•¤2´ãÔù[BÌŠf\ÿ&R¥½Âê@Š6»Ë>ƒtsj‹ä•8Š3‘âìwýßsM6u›ÜK!‡ÊøqjÇh>\5þÑ\\gxGî^SFüœ:>\5]6‘LùNÐ<5—Ý­©Œ N}Ü5C ‰wí=Š$« «Ìa˜2ˆâKÇpêähØ):”‹t¢'.6?IS^it€‹ÈÐ×þðéàÖ˽¯ ‘‚tg\QIB<73 .159>EMVan{Š™¨·ÄÑÜåíòûÌÄ»±§œ‘…zocXND;2Xcny…œ¦ÿÿÿþþüú÷óîæÝÒÅ·§—‡wh[OD<4/*&$! -  "%(,18@IUbpŸ¯¾ÌØâêñöùû×ÐÈ¿µ«¡–Šsh] - \gs~Š• «µãèíðüúöòìäÙÍÀ° ~n^PD90)$  "&-5>JWfv‡˜¨¸ÇÔßèïôøòïëæáÚÓÌú°¦›„xmbW "Valwƒš¥°ºÃËÓÚàþýüùöðêáÖÉ»«™ˆveUG:0'  $+5@N]m‘¢³ÃÐÜæíóÝ×ÏǾ´ªŸ”‰}r,% Zeq|ˆ“Ÿ©´¾ÇÏÖûùõïèßÓÆ¶¥“o]M?3(  - $-9FVfx‹®¾ÍÙäìîêåàÚÒ˹¯¤™Ž‚vk`UJA8/(! '.6@IT_ju˜£®¸ÂÊÒÙàåêôîæÜв¡Ž{iWG9,"  '2@O`r…˜ª»Ê×âêñöìèâÜÖÎÆ½³©ž’‡{pdYO  :CMXcnz†‘¨²¼ÅÎÕÜâíäÚÍ¿®œ‰vdRB4(  -"-;J[m€“¦·ÇÔàéðõúùßÙÒÊÁ·­¢—Œ€ti]SH>5-&%,4=GQ\gsŠ–¡¬¶ÀÉÑØßåÿòëãØË¼«˜…r_N>0$  *7FWi|¢´ÄÒÞçïùìçâÜÕÍ…y0!(/8AKU`lxƒš¦°ºçëïþýüúöñêáÖɹ¨•‚n\J:,!  &3BSexŒŸ±ÁÐÜæîôñ« •<3+$#*2;DOYep|ˆ“Ÿª´¾ÇþýüùõðéàÔÆ¶¥’~kXG7* - $0?Obuˆœ®¿ÎÚåíó÷õóÓÌù¯¥™Ž‚vj_TI?6.&%-5>HS^iu€ŒÞÒÄ´¢{hUD5(  "./#  )6FXk~’¥¶ÆÔàéðöùôñîêäߨÐȾµªŸ“‡{od -BLWbnz†’©³½ÇÏüú÷òìäÙ̽¬™†r_M<." '5DVi|£µÅÓßèðõùÚÓ˸®£—‹sh~Š–¡¬·ÁÊÒÙøëãØË»ª—„p]K;,  -&3CTgzŽ¡³ÄÒÞèïùöôñíèãÝÖÎż±§%,jv‚Žš¥°»ÄÍüú÷òëâ×ʺ©–‚n[I9+  %2ASeyŒ ²ÂÑÝçõòîêåߨÑÈ¿ '/8AKVž©´¾ÇÐØÞä§”mZH8*  %1@Qdw‹žóð˹g\P#)1:DOZeq~Š–¢­·ÁÊÓÚáæúÕȸ¦“€lYG7* $0?PcvаÀÏíéãÝÖÎÆ¼²-%$,4=GR]iuãèíñôöùÿöñêàÕÇ·¥’kXF7)#0>Obu‰œ¯ÀÏÛßÙÑÉcWLB8/' &.7@JUamy…‘ùöðéàÔ~jWF6)/>OatÛåíóçâÛÔrf[OE;2*"9CMYdp}‰•ýƶ¤‘~jWE6(  "/>Natˆ›Å¼±¦›‚vj^SH>4,$35,%]iu‚Žš¦±¼ÆþàÕÇ·¦“kXG?Pbv‰ÚÓÊÁ·¬ ”ˆ{ocWLA?IT`l¿ÈÑÙáÖȸ¦”€lYG8*$1@PcwŠž°ÜÕÍĺ¯£—‹rfZND:0(! ALWco|ˆËÓôëâRdx‹Ÿ±ÂÐÝçþäÞ×ÏÆ¼²¦›Ž‚ui]QF<!(0‹˜Ýãéûo\JBSey ²Ãùïëæà©ž’…$"*2›§²½ÆÏ×ßåêïòì4öôðìè·¬¡•ˆ|ocWK$,4>HT`lx…’žªµ¿ÉÒðÿL<.!hñîéãÝÖÍĺ¯¤˜‹rf' -6@KVbo{ÂËÔÛ‡t`)6FWjÏÆ½²§›Ž‚uh\PE;2)" '/8CMYer~‹—Ö݉vbP?0$YlþþýýëæàÙÒ‘…xk_SH=4+!)1:EP\htŽš¦²½ÆÐØÿçÝбŸŒxeRA2%  - ,:J[o‚–¨ºÉ ”ˆ{nbUJ?6-%3IUamz‡“ ßÓŵ¤}i#/>N`t‡š­¾ÍÚä¼±¦™€sg[OD90(Wcp}‰–¢®¹ÃÍÕÝãöñêáÕÇ $1@QcvŠåÑȾ´¨œƒvi]QF BMYfrŒ™¥°»ÆÏ×Þÿëâ×ɺ©–ƒo &3BSfyîþâÛÓÊÁ¶«Ÿ’…yl_SH=3+#1:DP[hu‚Ž›§³¾ðòìãÙ̼«M=."(6E´ÅÓÜÕÌø­¡•ˆ{nbVJ? - ")2i§!ÉjîLà]a5#ãžåÑ›¥Rpº[Ý!‹†+#i« ÆÜé$w«àð«[ï®1ðþËT¤TŸ8ZÆh»2v›»œÝÞÉU=ðÉ™ñ¢äõ™˜Ñþh™ÊA¦¹ÓoqDâˆ$[3Ü"AªÞá¶ð¶ŒòLO $ÞÁ²AB'"Ej†Í»¦ãb)GW“÷œ¢@îB¡e $xËÀ©À»éš!fÕM™FQ½ ßÈݰeðüÊ@H!s‡€ "IäÌPòî”05 c*P¹Ù<ûô—¾@îQ˰Ì]Í‚!¦Ç5C÷î -™*ʰT›½S®;S6²–ñ`îrªz–™¶£fˆ33êšQ@Ÿ Ø»’À†èræ®É©eÕ/Bjì$ˆHÛ¨5Cè„x#RdóÅÇô‘½ $c:^ s&èAeI×2RA@7U·™iº±Ô ÅÁÆÆ¢±w¼/"J,9õ¬+C¬~¹@Hš#PÕê¥Ì€®.'ÖkçÀ1]Sã®ÞµÞ SU†½ZFo•AÆ;[YÂË4šX3ЬšY3¥Z†óÇðHµŽ»ƒïÀ4±zj¢oÜͯ2V©uê]b2¼ÃÞ-¬«ð-6»Û¶7£ˆ˜š§v¶ŒP`ÚP VÍ(3V©Þ]  -½+Aí…¶Iíìe HìAZÛ2öV83F0ˆÀ)«Öp#Ò¾ðÜÀŒšÇ»–—±}òÃôxžÑ2V8/@<‡ˆ¹!"AD ?©>kó¹ŸÇçäkT˜Žo1-œîðî’«Î@3ehf^LÌ(¿íÎ -ïs@y/sKì‡|"Zug¨èbÕ«;"58Œw³­€ÿ˜’¨,‹Þ‰×ÍcŒÙ &þb:ao<ëKƒäµŒæ¼»Ü‘éï*ý›j\$žˆGµ‹ ÚšClîKªsº;5§– wh9ˆÀ»±ê¬éÝ=;Ð»Š†ÇZ'…’8;@ÌÏ#„EIµf”&ÍY8õ¨­wn†3C~Á̰^ï¤ÀõÏîä ï€xeÃûò -?äÁre/Í‚$åÏ zÊÙÝÁ( ;ˆ—ÊÐÀSŸk`Õ=‘äw—$((Œ#¿!u•‹Áã†~xj&¿…q-ÁºµãèKœž•³œÃÑA0™”•±O]ˆnj²e¨† 5ƒG$V‰ÀÁ õì®ox1ă"Ÿ-‹ó®Ü2¨Lµ ”uKí¤9Êu:^P,ƒ dt§H©e Bƒ«æG$ÅxÓ»º»ÑïŒxvWkÞe==XzÚœ¨ï^¢¾–™qýƱöÂŽJðýï#·öð¨¹íާ ݱ¦óù²j ìt#Ò¢Ô»«4Ó½¹—‚ž0êvªx.E¥GðˆÁÕ¶]èñç«:”ö¼UÖ¸kKrÓÞEåšÁ 1y´.Ýõ-N­ÑSïrçÒÁBD¦„¸ %2@Qdwªž’…xk^RF<2)!'/9CNZgsŽšìðôöùÊ»ª—„q^L (5DUg{Ž¡³ÃþéãÝ ”‡zm`TH=3*  (0:EP\ivƒ©µ¿ÉÒÚáçþ*8GYkßòïêäÞÖÎĺ¯£–‰|o!kx…’Ÿ«·ÁËÿyf-;K]pêïëåßØÏÆ¼±¥˜‹~qdWL@6-%"*3=”¡­¸ÃÍÕÓŵ¤‘$1?Patˆ›­¾ðìçàÙÑȽ²§Y - #+4?JU£¯ºÅÎýüù–‚o]K;-'4CTfy[OD9/'6@KW±¼ÆÐØßæëðóý½¬š‡taO+8GYk~‘¤µÜÔËÁ¶ªž‘„wj]QE:1 -%-7AMYer€š¦²½ÈÑÙþüúøóíæÜÏÁ±ŸŒ ".4 (0:EQ]jw…’Ÿ¬·ÂÌäÙ;®œŠwdRA3&!-:ÆÔßèïõðìæàÙÐÇcWK@5,$!)1;FR_ly†”¡­¹ÄÍÖþþüÝÑó¢|jW1?O`s†™«ùñíçáÚÑȾ³§šreXLA6-$GS`mzˆ•¢¯ºÅÏ×ðéàÕǸ§•‚o]L<.# (5DTfyŒž°ÀÎÛåŽtfZMB7. "*3>IUao|‰—¤°»ÆÐØàæãØÌ½­›‰vcQ ,:IZl’¤µÅÒÞúøƒuh[OC8/ - Vcp}‹˜¥±½Çñÿ|iWG8* -…˜ª»ÉÖáê·«Ÿ‘„wi\P#,5Œš¦³¾ÈÒÚáÿõïèßÔǸ§•ƒp^L=/# )6DUÚääÞÖÍø­ “…x0' - LXes€Ž›¨´¿ÉÓ' üù×Îĺ®¡”‡yl_RF;1( ftœ©µÀÊÑó¢}kYH9&2@Pbt‡þù÷ôðëæàØÏÆ»¯£S%.8BNZhuƒª¶ÁÌÕȹ©—„r`N?1% +8FWi{Ž ±ÁÏÛÐǼ°¤—‰|naTH=2)!&/8CO[iv„‘Ÿ«·ÂÌÖÝòëãÙÍ¿¯žŒygUE6$0=M^p‚•§·ÆÓü½±¥˜Š}obUI -/9DP\jw…“ ¬¸ÃÍÖÞîçÝÒŵ¥“€n\K< -)5DTewŠœ­½ÌØâëúÚÒȾ²¦™Œ~pcVJ>4 'kx†”¡®¹ÄÎ×üþêá×ʼ¬šˆ( #.;J[m‘£´ÃÑÜæíüõòîqdWJ?4+#  '0:FR^ly‡•¢®ºÅÏúåÛϲ¢}kZI:-"'4BQcu‡™ªºÉÖàéðúþãÜÓÊÀ´¨›Ž€reXK@5, (mzˆ–£¯»ÆÐÙàöïèßÕȹ©˜…saPA3'"-:IYk}¡±ÁöùÀµ©œseXL@6,${‰—¤°¼òòöñëãÙÍÀ°ŸŽ{iX'3APas…—üõäÝÕÌÁ¶ª‚tfYM )2IVcq~Œš§´¿äàÛÖÒÏÌÊÊËÍÑÕÚàåëïó÷òíåÜÑÄPA3' "-:®¾Ë×áýêåÍÍÍÏÒÖÚØÏź­¡“…wj"*3>JVcq›¨´ÀËÔÜäéîöÖÐËÆÂ¿¾¾ÀÃÈÍÔõðéá×˾®žŒ{iXI:.# (4APar„òÿþýüûøõÎÉÅÃÁÂÃÆÊÏÔðñìç஡”†xj]PD9/&4>JWdr€Ž›¨µÀËÔþò×ÑÊľ¹µ²±²´¹¾ÅÍÕÜäêðþŶ¦–„raQB4) $.;IYj{ž¯¾ÌüôÎÆÀ»·µµ¶¹½ÃÈÏþìçàÙÐÆ»¯¢”†xk"*4?œ©µÁËÕùåßÙÓÌĽ¶°ª¦¤£¥¨®µ½ÆÐ̾¯ŸŽ|kZJ2' ",8FUev‡˜©¸ÆÓþÜÒǼ±¦•ŒŒ‘–¥®ÜóõèáÚÑ–ˆzl^QEÖÞåÛÕ˜‡€|yy{€ˆ’ª·ÃÏÚäëþÞÓǹªš‰wfVG9-# 3@O^o€‘¢²ÁÎÙþÿÚÐĸ«Ÿ”‹„€~‚‡•ž§±ºÂòíèâKXesª·ÂóðíèÁ¸®¥›‘‡~wqmklpv‹—¥³ÁÎêãÙÎÁ³£“‚q`PB5) $/;IXiy‹›¬»ÈÔÞçþÎÁ´§™ƒztqpsw}…ŽâȽ°¤ÿ³©Ÿ”Š€vngb_^`fnx…“¢±îçßÕɼ­Œ{jZK=1&!+7DSbs„•¥µÃÏÚãÙÍÀ²£•‡{qjecdhmu}‡îèâÚÒȽ±ÃÍÖßæãÞ™Ž„yof^XTRSV]fr€ ¯¿ÌùõñëäÛÐͧ—†ueUF - ?M]m~Ÿ¯½ÙÍ¿°¡’ƒuja[XWY^emv´½ÆÎÕÜòîéâÛW}si_VOJGFINVan}Žž¯¿Íôïéá×Ì¿±¡‘€o_PA5)  $/;IWgx‰™©¸ÆÍ¿° €qdZRMLMPV]f¥¯¸ÁÊÒù !×ßÀ¶mbYPHB><=@GQ]k|ž¯¿ÍÚöòíæÝÓǺ«›‹z ",7DSbrƒ“¤³ÁÍØâéýÚÎ`TKEBACHNV_itŠ”ŸöþD 3>g\SJB;6335:BMZj{ŸðêãÚÏõ¦–†ueUG:.$ )4@N]m~Žž®¼ÉÕßçíóíåÛÏÁ²¡}m]PF>978;AHPYcny„𤝹ÂòPD9. dú÷¢laWMD<50,*+/5>JYÂèàÖ˾°¡‘p`QC6+"&1=JYhy‰™©¸ÅôîçÝ~l\NB93//15;BJT^hs~Š•ÏÖÝk^PD8)rïë?70*&$#%*2ûî( ñ[nÆ~Ǯޥlxí€+<äeÀŸèŽ¡ê¡»SIJDWO,\¢Häm_ÃZƒô¢ìð€wÇökù.Ç3 X -Q½s7d“¯wŽ-1%9þ#º»‡jƇdæîâ¨úrPyc¡Ë¾xl\“¶tglP‚ÞÇ»lÅ. þ+º4ro)¡Ä7ΚIô®ŽAcí"nÉAçk‡=2šÝ„Üô ÅXµ<©ôÅ%:‚î’*ñ~§.ÞìÝ^Àw––ñS½ßíÛ˜\Ædfб »ÑdÆ3ãfCê²¾FÒŸN)`ŒØ7vºƒå‡Š¦8¼KÁrðõ¾[ï»Ô†E3 - ´+ÎM„ޅlØ6Öp ïžÃf2…!Zò›U:ÌRiÒHð¼ïè>$ö8Ð ó™07É&Ùe«eИbpÄÑËÓ™6S½Ã{½Û^ -8AºÛߊHòNõI~Îw|š1ën¡çTüŽG½Åàs/ÃûB3ƒx¼óØ¡|#YÀY?£áB Áy‡Ç÷i®ï1θ¡Š˜v Ä”¿Y`Œ»ÕЗQ¢™1J»3iŽ)§ö§Ú7¾•¤mð‡äÎ9wõ%¤"žÚwt ½Í,H›)¨¦EÀv'Šêñ—!á|fôº£Jç®/$®bŒº^ù-/e€"nSÞu¯ãérLßi‚œ¶¹Ò–÷¿gå±à2À/£ÄE3c¿š ¹´ŸdÞ‹Q@Hvâ:S^WÉ|Gjðê(íWn~£8ìröÛcp¯à2ôvÒ©CbYCZ‹_ŠòQn¡!øô^Ì!û•¶¼ÃÂøÙ2gÓw±â -Г]…’±SFØÆ!ÓC!l}%ÉtF¼S<‰ÈÈaáÈôfXÞÕÐûNÕÀ6ˆç¢¶cmë£-¦Rg† -Ù"ªÇ UL`p*ð.nãm¿Ìn*%pt®Œ†Äy'À2ÿQ7ߨ¡weYÖ’(Ç)ìnáÝk”N)0ÈsH%·+‚ôÆŽ”[t{Bÿ fðzß_Ò õÖò]±qYnñô¹ÄÁ¼i(˜ng!¥»Ã«eˆDr­4(„wqB ¼ -³›'é. -ãZP@º2àÌ»ñ›Ï;hÑîDÓHÔ@œTTW])¯V³»tÍYHºÏÝ,»ÄŒëRM¶9sþ| Äè.þ°#êTä]ÁòªúJÐî`ÛˆæÉlÆÿ(Ò˜N{ªk®#%»qSÖu7¸ÏãÌ»ô|@òþòØ};=vv¼°‘¼«Ÿ¥÷ÝÜ€HÕLcDEˆK¦0¦v´ÆšUàš˜ -zî§»Ã;ÌS]îrŠ2z-¸—¶3œo#²éäˆÜ¥Ì;®è#é»çÚ]OÔ5(Ö4kÌ;ó. c`£šc»óÈ1¼ÊŒÍÍ!ÓÕ-Ñi+Jíañyê"¼ãx}Þ¥e³Nín¿ÈR:nnLàH£J”áͦd}v7èŠLçÇ!Ídòæ4CUËíæœR‡îîj"Æ2<5Û•!íÞµí}7"U+*•ü{œØí)@Ðéݹ1b[,Cw‘íÎ.^vœ˜¿ŒÛÌw׊m–F~³îmœuh‘ ¦)º2LÎ0(÷cð¼r!°‚\ö)ú¯µË…Ï®©5]óvËg!]ŒCŠBÝÚtUzÒoÍ‹{?ùQTS{žÄõ£¿T}¨—©ªÀl¡wöv>søÿ™oáZ#ØÝe…’{ªÙC¦asY…áÃãAá‘Qž …Â~5Ôê‹É;:C|ßáä3,AW_uŠÿç¼Ñ)\K³;ó¶êw&Øè…-+ty}ù'åÎÞ®ŒfÞ™ï^º!¤î®ÓwBÔ žLk[2XþRÕMÙ©6*ën“½ÔýŸheò3V”»~¼c\â#3ÚÒ-DjMz>c\ ÌPÕ@Nðҗµ¬ìÈ\¤Lqþ)‚w¬ÊGf4HÕU¹LŸpjnï(3ªí2B…jãìT#gtY™Ñ#;…ž”»TòÔòzE¿!àŒÐwó#! 3p`›Ê¯)¶È ² ü@ÈOÕªr\<5 ïJ}¸ãä^¦¤‘膉üÀ fÅ4zÚ~/ÃR¼ 0€¡–¤cŠÓ7õ7ëKÕ?»L‰!’z.•ðï^Bƒ•fu"RC—ÁCv|8у äÓX=`Ðè2ý…HD÷²ûNÛ_fbš fhÚ®)386¦.Ü;–ò³aªý†À*\¦!æœÌ0*ŒDr­%8Xy3 ÃfàÕ]޹s<ô±ie´±_å¼{›ˆ_ÔwÙ(ƒ}‚iúà‹}@ÓéÜ`™d?Eô«æú%¶d½\¦¡Xý—i«ú_¥÷CªÀäDÖ|¶ãmHv׌¬@î^x·1þ.;Žú!ùSõ}uP6ü€Ö¦ê¯JެÙË]ÉCÙ]ÊwKEŸš`XÇ#$ªr×É;€ôçîþ.D’¬jFwœÎùêŽdtGLÈn§+€Ý=ôšÎ§VÈt½9¥G„Äzÿ©vB$TÌŒ Su+k`àìMØxãf§¿BžÝ}z‡8GUe§æüÔò“b^\Õi:!;`Šj0ºëæ±;Ç=¦ “êœcü›žOm=,.0â`ðŸƒcf¨vUsOF RFTgêî}ÇîŠ6ÈÕ IéùÔݼSëËPÞõ>t„˜âdF¶fÆ«ãþ¨€‡TsÕz÷˜ÞÅ…öòô2(@¦€Î§~ΰ " Ä8c¦ÓîM#Õx)¦>uz)r à´©n¼;À |jzÁ2hDH4 DjZÍŒûíÎud¨"°’K4‡)úÔûì2ê™j¡¢»ä‹kïnays ¦’¼‹˜˜™aŠ«Ú~»K×½  td!Å~7ŠþŠ f>„fÒ?5>ïTÌxºªmðŽøØ/ÜCv0ïe°¤ú›òÓaüüdê )2=IVdr€ñîéäß‚vk2+&!!'0;IYk~‘øô¶§˜ˆwgXJ=1'  -",7CQ`p€ ¯½ÊÕÞçíÇ·¦“n\L>3*$! "%*08@IS^hsŠ• ªµ¾ÇÏ×Ý£–‡C8 -cr€Žœþż³¨žQ"%/;JZ÷óîèà×ÌÀ²£“ƒsdUG:/%!*4@N\l|Œœ«¹ÆÒ܃p^M>2(!!&,4KYhxˆ˜§µÃÏÙâ`N?1'"(07@JS^it‹–¡Ø¼xj\OB (1Oat‡›ïéáÙε§˜‰yj[M@4*!%/:FTbr‘ ¯¼ÉÔÝåìÏÀ°ž‹'JT_ju€ÁÉÑÙÑǼ¯¢”†wi[MA6,# 0;GTao~Œ›¨µÁǾµª •‰~rg - %æßÖÌÀ²¤•†vgYK>3) %.9ER`o~ެ¹ÆÑÛãïçÝÑò z %,43)$-8CP]lz‰—¥³¿ÊÞ×Ј|q!,:K]pƒ—øöòíçà×͵¨šŒ}n`SF: #+5@LYgv„“¡¯¼ÈÒÛãêïôš;DNXco{†’¨³½ÆÏ×ÝäúøõòíçàØÏĸ¬žsdV#,7BO\kyˆ—¥²¾ÊÔÜÕÍÄ»°¦›ƒxlaV†™æÞÖÌÁ´§™‹|n`RLYguƒ’ ®»ÆÑÚâéÿο®œˆuaO>0!'/7@JT_¤¯¹âÿñíçàØÎĸ«€(N[j±¾ÉÓÜþò¬h\0>Oau÷ôðëåÝÕËÀ³¦˜Š|n`S$,6A‘Ÿ­ºÅÐÙâèîþÐÁcQ@1% ,4JWetƒ‘ ®ºÆÑÚõò‘·é³¦™‹?iw„’ æûýý„œ§²ëåÞÕËÀ´§™Š{l^(1áÚο®=/ ïéãÛÑÇ»®¡’ƒtfWJ>2( 7CO]lz‰˜¦´ÀÌ÷ïë´©ž’†7°ùåÞ×ÎÅsg[PF<4,my…‘žÛÏÀ¯œ‰ub’žîéâÚÐÆº­Ÿ‘‚sdVI"+6AN\jyˆúäÞÖÎÆ¼±¦šŽ‚vi^RHð‚vkZep|ÂËÿž€qcU!*4¤±¾ÉÜÔÌÃ~rf'4CUg{Žðìç᪞’‡{odYNE<3,%)08@JT^iuŒ˜dDOªœŽpaSF:/ )3?KYgv…”¢°½ÈÓÚÒÊÀ¶«Ÿ“‡{nbWLA8(5Eé—@80)# &-45-)6FXj~’¥ãÝÖÍÅ»±ncXOE=5.T¡Ùü¾ñìæßÖÍÁµ¨0GPYd¥âèìèßÓÅ´¢|hUD\ht™¥ÞÖËÀ´¦˜‰zk\q€ãÜÔÌø­¢–‰}p•¨¹þðë繯¥š„zod[Q  DMV`jtŠ•Ÿª´¾éîñ£}iVE5NYeq}ŠÿÊ¿²¤–‡xiZ$œª·ÄÏØðìçáÚÓÊÀ¶ªŸ’†zmaU +»÷½´ªŸ•Š€ukaX% T]fp{…ÊKVanz‡“ «þëäÝÔɽ±£¨ÙÑȾ³¨œƒvj^RG=4;K]p„ì|rh_VME>70+%!BJR[Öé>HS^kw„©´çÜÒȼ¯¡’ -"+5ANêåÞ×ÏÆ»±¥óÎÆ½µ«¡˜ƒzpf^UME>7).4;BIQZblȸ¦“lY")2;¼ëéãÛÑÆº !)4?LZix‡–¥²¿ËÕÞÍù®¢–Šs†îéäßÙ¨ž•‹xof!&*06JXgv…”£±½ËÁ·« “‡ ‡óÈÀ -DKRZbjs|…˜¡ª³åÿâ &n{ˆ”¡­¸ÂÌÕÜÿò-$ HVdtƒ’Ü©‘„wk^SG=4/ôåàÚÓÍ’‰€xoC<72-($! - /kt|…Ž— ©±ºã$+4>HS_¶ÀÊ×ÍÂŽt1$ÜðìèãÞØÒËļ´¬£›’ŠyqiaZSLF@:51 38=CIOV^emu}†Ž—Ÿ¨°¸ÀÈ÷ œ¨´¾ÈÑþìæßÖÌÀ³¦—ˆ8D«¸ÅÐÙÅ»°¤˜‹~qeYû´¬¤skd]VPJD?:51-)&# !howéí» (09s€Œ™¦±¼ÇëåÞÕʾ(",6B›©·ÃÎØáäÝÖ•ˆ|obVK@ö»´…~voha[UOI/+(%# $'*-GLR‚¸èÊ»©—Xdp}Š—ü< !*5@N\jz‰˜§µÁÍ×ßÿãÜŸ“†yl`T%2ARdxŒŸ±ùõóð˜‰zsmf`ZUOJEA=952/, "47;]cjpw~…”›£ª²¹ÀÆÍÓØÞË»ª—ƒp 5?JUaïêãÛÒÇ»®TG:/hw‡–¥³ÀúÊjÃ÷ô¾·°©€ysmga\VQMIDA/," !"#%&()+.0258;?B^djpv¦­´Þâ#+3=GS_鬎o`RE=IWfu„”¢°¾ñȾ³§›Žtg[OÿøÀ¹³¬¦Ÿ™’Œ†_ZU@=;86+*))(('(()**DHKOSX\afkqw|‚‰–½¼;EQ]õÏ|m^PC6,";GUcr‚‘ ®¼ÈÒÐÆ¼±¥™Œr&fy ³Ãåáܘ’Œ‡|vqmhc_9867>@RVY]afjot›¡§®êîðÿ˜;Ú§˜‰zj\M@5$-8ERapž¬ºÆÑÚïÅpcWz¡æâÞÀ»µ°ª¥Ÿ™”Š…€{wrnjWKIHGFEEDEEFGHJKMOQSVhlpty}‚‡­³¸¾Ù ìæßÖËÀ³¥–‡wh,6CP^m}Œ›ª·ÄÏÙá¹­¡”‡zmaTI>4+TfüçãàÜ×ÓÎÊÅÀ¡˜“І~zvsolj[VVUUVVVWXYZ\]_acfhknqtx{ƒˆŒ‘•šŸÂÇ£¯»ÅÏëåÝÔʾ±£”„u…“¨Ó˜Z•bH!㣠 * Åb)Á€Á ˆ"²8R Ä @Œ–À@wl¸¥’ßuyϽYÉä,p¬äÞì;öxïZåîþÝ»SLSº£M±ÐâtH&+\§5ÅFšòSà¡Áf¼³ˆ](Š{wˆ‘¼O€è#u!íìëÊ]R± ?Î6™qðÅãÙä ¼Ïå_™DÍXÍ;è6H{§® 'e7r—VQÑhS–ïéÕ1⳨¡ þ§¹h¥[ŽöK`!‘(\Þ»ÓŒÛ}ĺ+Èy€Eü©{WÇø`‰‹h»r'ËèYl2ÃITÑòéÛn‚ÝÍ÷îCIíøCŠÛ3ê2탚ŒŒÞÅ*9ÊPr´)«àtHä.8w5ç¸¸Ž¯î §^–WºÅVFÊpùÝ¿[L¡ŽŸ•"i+[LÛNbäÉ:ü©moxg!˜»ÑÂãXËØÅ¬SÚØêã þÜ—7fº‰v.b¾»ãæÌÖî]<ßê5ØÊL…emŠ\CŸGô.œbP€Ïæ·_Ìô;HåˆSø¶_‚±ØÍdØc_×±Û(zÏÒãv´d€†fº –q±z4›µŒ¢¦¥ÈŒ„¾-çCz§ tº¦µ6»IDaßÈ.ýõèð ¨ü ßéêÁ$ÃE1Sli-Htwæ/¸6 vþV.ø%Ì}-å´_ƒ/ÛÎ3‘e\¢BHôÎeþ¿ƒèQ˜ªÒò"¸ öY⑦2B’O¨Ÿæo“-¾X™.õ•ɪn•ÿEZ3¦9&Ú;lšÇ¥)ó½ŸiÑy6*‰ÞnðTDËíaó²l82<8HFeJBòÃÜ»±cÜÜ‘0v¯­“w•Å*°7Š–6kÃYXÄ©¢õ¥oS=™JT¦óÚ"Ì@¿°x4Nä+o E>&í•v!=Ð.ý²f òÓtõ°ÉpÓ!µÇY¬d=ÐÍX¯Âuá/Ërö;HÛÁÃ2øhÈ—5ê<;D1<È'”KÃÁv-úÔ6ƒ‹€ é~B½­ ¦áÆ*Ú^Nßvì»i4œz÷E)õÎ7^½žf~aïãê²°[w4e¾¡Y¨N†Ëâ‚hþà_½r‹++Ñs…ëIÅÿ4ãÁƒ ù²Qê]ºÛƒŒÉ…dÜ»UáõNÑh˺Œ3i²® ìCØö»ú¶8¨iMëLÕtèPï¬\Gšy+71z|p[ÆÀU}_*é ˆŒÄ@KÁÌå–x¿&,èJû;¿„±‚:õPqõNV¹P2à{7V…Іƒ¡PÙµOÝ©½÷…é s=!´Œ–àNÕ&ôm©ÝL̨վƒòÏ/c¥ãD$âgŽZÚ‘CÖ;õNïˆm²œ-<Ï ðš3`f`5ýŒúRliiÚ-›};HWÇ:ð¦qŠÚ@¾üÃÔfĺu÷`‚D¨?À—“k+;`N´l–wmXË0xÍ÷H;£-/žn2CQ»{cÐwfL¯©úCxëbtð‰Aº³ôákCÔ¹ä¾Ô ilÒ:¢úómYqwEk÷ê*ɉÁ(DAßwˆQÞkÇr¿o†|yo•5aªÏ«Hî¡VÆèïÔ^ë™»fî`Ï»_·0=1!ÅxÍ‹g½³Ø>ÙŽucoLUÃ]3Z漂ïªÞ]W…®R;~¨0z÷¥6q òáûdt3©€Š:çàÍÛ©‡šöÚqÆ÷Kà¨JŽjÆ’æÖå©H~tè0ÓÈ1 lîÄ"¶·¼Ÿ¥dÖ|ÑÒR&·_Ðî{#³ï¨zJø¬,‡»§ªTc@ò··ÙU]sImÜê}©Æ¤±IŒ!á­£ÇÙ÷HÇɇîqйq0äóž*GV‰êëòÒÞ™ÄEÒÝTûYaæ»]0MÔ.#¬OÝã.¸äóÖÁívØGBÕå}£­uŒÿõŠê™±ƒÈ» 8Ò³€™–Þ¥¼‹–¬¨{_ªØ, -œÏßqÃ,m5!k\¢ ‡'P›ÊH•¼%½ÜŠ´dÙž<‘±lvHÇÌAš)ûd°2©ÅD*¶úÔ‡‹dæî{B’Ù} ö† ¬L ,…LTëV7»š!\·À¼c?õ‡ìUlA««‡?G„‹*¢Ôl‚‡mA¾¼·ÚCñÆì–©Í@ë2 õ¿!0þ 0U‚éýå$ÑáâÂ#m¼}gÇco  ðé\µ(p~weQZb5j„1 ¡7€©+‰qæ䃠±‰R¾TWºÅÑm ^òeO=™**²¨’C"V €×;ôòæRa ”ÒE9 sXÝá"—w$ó.°*Ó„˜^ ͯ9%€øÔc1Ü:Ê#T¼Pp1…Ä(Dö˯9ö’k òsÉÝ÷>æèqƒeC¾Ìé‰8‚•OsNEQS£: è˜%u¹2ÈOs£¥Äƒ{Éç³h–¡Ë{@S.›7jU™š5 êXÛ±xtÌ£=çK"(¸÷ª„d“Þó›¢\HÊÃpz£Å1ÈzåÜã~AîK-Ú(ᙋ˜8¯Ô~ 4ù2~®Ûâ"r.š›uTÜ£œ ‰X‰ruI£Üš€s7n˜ºvf¯O=w¸š¨âÍ_™žˆMEAàSÁ‡E‘í ¸½f4eŠ2/£I£LÖ>ÂËåÃ5[sëêá×{ÇäŸ^¡à®Yš$úNÄ:îÉ=vöÎh@w¯eÇÜí,ÒŠwþ¦7ܳ2ÍyHÕ²;<øU;lAbÊœOâjÆ;¡sf"F3í¯ònP¥ÌÜ—*nwÝ3ƒPòO ýme-§¤C.e¹uÌcLî Š$^Ó¶]UÿY¢êh6ñUf¸/ÄÈÔ–1ÛŠ{!$üeDáXïóCŸ Æ -¾ƒÍá]VË7ß׌†ú"Vs•j¢ÊQ@ Ç-´ÎµVG®qø}©°¸#ÑÓ£…¼kßÉŒL–• 0ö>iÒ<5aÍF"¥-C㵋·k¦—†QùÔ‹2¼ÈgÌXæó@Ôµ5E0ËR3PÚÑa(Mlêîïè…Ã;¸q¸önnZ~©YÄ›òÀºcÇöê»Øå ݱ g7ÞZ¤SÜúÑcå+Ò#ŒL’ix€qi#™—!»õÚŠç]ˆX5öÛ«Œgª‘‰x)öÊ"!MDÍ»èÊʺÆáÞEfÑ“dZȇÍ.è;vEF¯Ñp‰; çÓ>IyÛËbØ·Œ^]êí_Öþt&ÃwùÈÊï_óéƒ'EL–IÊU¿cþÉD¸¨Î* ¼m;X+ýiòîñ¯ÞÜ­KC§ÅwwØìÒü¾C“#”{®¦wO/![ð«%°[FÍ܃ ¼ƒßtë•bªW¯ï:óµ­‘j¸Ðò½ˆPb·¦!“˜p=™ò›â¦Â¨ïð••3!QÆÓB–ƒØ¥cîn(îVé?'á<°BÇb75>ƒÿÊø{Þ•?&ãQ¼+ú_ÎCr绥™!Aƒ1¦ŒÙ¥PŒ›º#¦ª9ï^t®Å訂·Å0î)æ8ÍøŽ™íÒ.ž½›ëršÄðqþúÆÁ@[FëòTA±Ù&»!Y¹§ZÕåó¾‹Óæ†s†ÈüÏ>$÷] ¨ÎKÝ1ÿ]‰P ǼC £Š¿°K7}…¨1çÌš<6ÿ`3ÜÅ>$eÖ2®ä9g†®Ád”;)•ûÎèñ‰°”és¢K}ÏûÒ;¸Á!Ê ÍüZ IA•s}7)Zè\[øìÒ‡y—‘ª Æ)ñˆò(äîþ vâœþàÕ2Ê>‚w½ðÔÿ¸éˆÖÀõUùDxï*˜ð@N¤éµYÿœ&§ZhLSMPDwk{ýî«ðÔwÃ’K/-Ħҩ! -Y:Œ¸l\†ˆR/¯ÿíêñXÐØé¥¨Ã ¬œ&»©3'’ïtEa ˆWOŸØïòÜü7Õ,/r;Pc­1’¸;÷ÊS ©«ïÓsF!…ãõ^CÞ}¸»¶¾“Î0õÏïÉ ÆHOÝUð®…)J¬>Ë‚¸ïúƒžÜ‘zWth̹0ñ÷K›AöJz a>à Ý­òn)}"ï$fFgk>IÆ‹©a`®jwBO͈LîÀL9Ϧ!>Ѻ⾋j»1ÙZÆíû^½sWk Í;`V €¡ÔïR5†ïŠq $"XƒCëŸRQS¹§^Iˆ•’g7y×s¡îtß A!9aoE¨ŒZ¥ìù¿Äþ |+T¬élfD"H¬Aj;ֳʿÇSÇ*zj¿fóΉá%ƒªÄ$ì;N¯ŸÛâ»fz§àý¶²jïQì¶ù€H¸’·çwá»XƳkif¤ø Ö @Ý–,ºã朾 Ù:Ýq ,ïòUõvä…—ïV½dñxhÎð6þÓIø2΄jŽõN¢¡ÈèÁ䦿Ûvx‰=/Æå¦¼ÃSCAïkË>ÓußÕÇ «ò]±¯cÃ&WXÖ:ô!ßt¾Œ3ïÏ€Akð ª–‡bÌ6jÌ ­TšŽ@CŒ¾ìÍ5a` SiÞ­÷ÏÕu£’^>Õå‘¿ð/ÆÅçùÉ÷¾þ’橞¨ó3•Èsyfd‰wÏßPŒ!c³Ê Á%†NÉ8þa§0óîCÑ©cĘÔjM\kz‰™§µÂÍØþŸG<3õóÖ³®ª¦¡Š†ƒ€}zxusqpnmhhhiijklmoprtw“—›Ÿ£¨¬±µº>®¹ÄÎÖäÜÓȼ® ‘‚ÌÖßæÜÔi\PE:1íêçäáÞ»·³š–“‘Ž‹‰‡…}}|}~€ƒ„†ˆŠ¢¥©­±µ¹ÕØÜR^kxïêD8-$&01rµÀËÀ³¥–†vgXI<1& )4@N\k±¤—‰{n`TH?š¨´°¢’ƒscTF:.'2=—–ˆzm_ ³¿ÊÓþëžo`QC7,/;GVet„”£±¿ËÕ•‡yl^ˆÛ}jWbp~‹™¦³¿ÉÓÛПª›Œ|l\N@4*#-8DRaq ®¼ÈÓ¢”E:=M_s‡|hVD5'!)3=‹˜¦²¾ýµ§˜ˆxhYK>2!*5AO^m}œ«ærèÞÓÄ´¢{gUC ßÖË¿²¤”„te (2>LZiy‰™¨¶ÃÏÙáߨÏK]q„˜«¼Ëò¾ÉÒ¼¯ ‘qa%0;H¥³ÀÌ’„vi[—ª»þýûùôï ŒyS`m{‰ôðêäÛÒÆ¹¬}m^OA5*!#-8ESbr‚’¡°½ÊÔ7+9I[n‚–¨º±ž‹wdQ;FR_±ûyiZL>2(BP^nÇø¬Ÿ‘ƒu¹ÉÖâþÏÀ°Š¤îçà×ÌÀ³¥•†vfWH;0?L[jzŠš©·ÄÐÚâéƒug)7GYl“¦¸ÈÕáý/'0:ER_lþ½°¡’‚rbSEIWfv†–¥´ÁÍØàÿtfYLAWš‡s`N=." &0:EQÒǺ¬žŽ~n^OB¢±¾Êö…r^L<-!&/zéâÚÐÄ·©šŠzj­»ÈÓÜXL@5+ à×ÍÁ´¥–/%ÅÐs+#þøöòí%/;H¦ñ?%1Aȹ§”€úøõñëåÜÓÇ»­A5*#,°¾ËÕßæß×Î?4+"ŠÛÿþã ÇÎøÚÔÆµ¤‘u'1>KZiyãž‚*r†ÓæßÕÊqaRD.:GVeu…•þí¬ž‚t!„Ѳ ÓÜëå}m]N"+7‘¡°ùÿñ¹¬Ÿ‚•ñ$ê÷ôïꨙ‰yhYJ)3@N]l}¬ºÇÒòíç8HÕ0möÍÀ³¤•„tdUF9 -JXhxˆ˜¨¶ÄÏÚ⺭Ÿ‘ƒufYK?5‘¤õͽ¬š†sR˜¦ìæÞÔɽ¯ €#-9FTdt„”¤²ÀÌ×àÓŠúøõƹ«œŒ{k\M?3_oŸ¯½ÉÔÞæìøÉº¨•0ÞÙÏõ§—‡wgWI2>L[j{‹›ª¹ÆÑÛäëðé%°ÁúòîçàÖÌ¿±£“ƒ -/:HVfv†—¦µÂΆwh ¶'0;åÝÔȼ®4 ‚’¢±¿ËÖȽ°£• ò³¡Ž{Í×êãÛÑŸ©šŠyiY3@N]m}­»ÈÓ¾±¤–‡xj\N ,:K\pƒ—1;GTbÿáØÎÁ´¥•…0„ß81!Õü Ìʪ÷¾ãBÈ«ü®§„Ä24þYT¥äùóÑÌ*·ÎŒïX!^bL9”áÓì}8³‰ï`çÝhÉ2.q>À)…¤y;u9”Ü„@Öë®=/¡ŠÓç­,[õЩ囯4*°)¦¢Ž©¶Ý„>Ó³:¼;>“à÷è3 -É@Éóanå†À„Búeå†[¢‘˜AÍ4õŸ–ë¦ï¼¯¾ "ª4Q¨V¿ÇÆ1¤åFN$«B\»ŸÊ_’¡K„ÜÝ3|×þ~Ѐ€g‚JüvmÞ.ÑÇÆ·܃êzžäÄ<§±—ÌæN6ìÅ„T‡@*Ä73»›7ˆïŠ57‚û‚$@€®ˆÙ,Îýƒò2ªÛa<”Ь;•íÄ4ê‹3¶EN¿Ms'ÌË/;.¯êjAPÉ=dwOË “«*ò¬­ç;B¤Ð‡¶ š³ð2Âîa–/ƒ+õ¬¼SRwtg÷mî.‚ß©*×ÅënêŸÊÚÿ0•<ú@Þýhï â;æO—±¨Å3ã@´Ã0`‰º“À´§À»¥Ýë%º¹ë ømZåÌMbF•î.û‡¡˜ŽÜûO¾cªgöé÷åE‡![cF‡#zNxõWñÞñWw"Ónu ÃèY–ñCwZ!¥R!NLÌ誻cÆéßSíùÝEk¾2VzaÄÓ ¥Ã„´m”-·¬•,„!U=BDÝ2¨fAü¾i˜¢ÝQùÔ_ç×Ý´twf,¾ƒZsEwÔ™…ôb/…ÊReýðê¸#Ÿ#¬¸P0ùç]ñ {ïÕt³c@ÐÝóåî¦Ìº;¨ýa–’ ñwWÂ,®ÑÑOÑ]Å&áÝ -¨;}¯îZ ¸ïø°X[H…ÂxK >—ñh)yŠàiab°¦%›¼¼¡šPýÔ8†)«îº«P—`Þ”ªãªïxkW…2²ôù]_è°Í]:¸ç0•°'xçŸ:$fE‘>wœÛ0ÿÝçÏRuàxòÅwΦNØ-¡š›–*ßS÷3iw‡C ªªNf(¡è'K¯ãž"9™úÓÜ¥ÃØs jY1=ýp;°6îÝžÒm¼¨Žï]8DYÞ éÉ›lD=ÀïŽõª¹‰š†)ßÒàÞÉ$ÓV1U‡É gpŒÌX(î_¹Ýg¾Ñw --6FÁûè]ÿëÇlu7ÒàñxÃãìݰªl}1RïÚ[yȉ¬÷:(KŒ‹¸Bõü=u…J]ÿbOÕïWÚwö Õ4¶FXY+R‡N%3¥”ç.ªo¢½ýÝŽ¤®hvÜ$ÃàÇ:”wŸn\Uçà¹ÀmµúpŽî`)£Á’# °SOØÕ§ÿ"Léª ‹ÔþQ[Ù¡RØ]ß©–6P2,¯3©ž§~§š îÞù‡0[Óœˆ»©?¹¡Ò‡¹öÒIt8ÁH×SK7x~gQ±W¾/¤H’¿ wOÐÑÞÆÛ8ï`ÎÈ\/E¨Ær¼¢°m»£™B:™¡r\ïAöàvº iè˜Vþ]ÇÉGwp½ËÒ1÷ÊlxU´èP/<]Eº_ãðÁóëå®ÃLk—Èz€—©Õ«ŸTs᩟”Õ2Bø€ÁPÝþ§Ëkˆ7`m8ë¶ú,2ãò`(u𘳨zƒÛû’²^H¯°úÚ -ö(lûxÚ-{‡åy³qys(ù™[Ò­ÒžøŽÉ¾ö£Zzï0h˜°Ð“-Õø¶§Ê¤C¯ÍñOîüй>µ‡jn§!ÒSõlõCAoä Èdcˆ‡ÌÎ…Ýþ+ôöÛ´w0ÿp ‚ÈE»e"µ]Æuj*Õ¬½¤(DE‚çENwðŒù]1ÞúmÉG`2)e®¯ª=®×ŽÿbÆÛ#3XèD$Âl!™¯eJåjÿïNøÓ×{©`’-×ÛÊ‘å^oÍŠçnµ&ÑYd;ƒß~hei!øîÃ:|)áb‘°ËhÜôØ0äû+î%f®oE˜Žª;o®×Žwlõéd†Ê…› –û¼zþ—tü?šª…,CÊú+õ\ ;éç@995í– ý\Woß´À2Xë-vÖ⾃¤Š3i]r´üл¤dEH¶^¶ºKöÝûÊóâ-cª¡º\e(mnµc°­þ&™±ûL8„˜œ:aÜ‹Å?n|÷¯z'x.ãÏ}0 ‚’¯5ò*ìÈà¿m ÷ö®#®kê—0T´²T4Ÿ”—O•½c;FOŒˆo¡üØTÞ5Ó i.»¼Â\ïŽ Î]+ d[ýÖ‡D¼ÝM&g! i<¥w–î®b}w'ï“¡j¥ØÒy†éNk[IjÐúíWµª†S¼Ò-,öK´’EUu\oÜ`ûësX§lš|ÑsW-ïõ+m°LæúÆJ¼*_mõ÷?¤ýÉ4erW]B˜Û«ú®ô@âsW´)Çg±¹!õH(n»o-ˆ‘prÐý. >‰{ç¾Éx~j˰Ѕ‡â’šX'$Ð õ;Cu@»˜AJfðåÒÄŸ\în ¡DÔB–7&Ű^ÕÑ; ñoàÉpA˜Ql©›óÒĵ@Á­”ß~­ZYr‹8…üw4o°Ó -þÞñ í§ž,ãʼ›ð„y4<™ë7´ŒÁøÚd†?vwŠÉN ÿ =‹ûç:Èwé wxɈ'(’™ŠÕѦxÙAI.²úÏݺþí—OŸzHô}-¥ÇïÞô½Û¤ùëÐO}_•€`²oâb­0·Õ½Ê3×Gj0¦ÓUT $†”YÿHÿÕʾ°PB6*",8ETcs„”¤³ÀÍ×¥—‰zlõÌ` (žî[L>2' )4AO^nŸ®½É¦˜Š{m^Q{Ò)s‚‘Ÿ­ºÆÐÚêvfWH:/$&1=KZjzŠæßRE9/eyŒŸ²ÂÐÝmZI9+XftÇ¿±¢’‚Ueu…–¥´íç?PcKYguÓÈ»­ž}m]M@ `p€‘¡°¾þçàœpaSç"*5@LZhw…”£ôˆxgXk{Œœ«qbUG;Á"+5èáØÍÁ³¤”ƒsc$.‡—§µÃÏÚâî謟rùBOæÞÕ~n^N@4)!+6CQÇ»® ‘ƒteWJWj}‘¤¶ÆÓßû… ]l{Š˜§ëä‰yiYJ<0?M\l|¬¯¡“„ufXñêâ×ɺ¨–‚$.ÿéâ„tcT$/;HWgwþ”…vhYL?4›èçßÕʽ¯ n^OA7DRbr‚“£²ÀÌåÝÔ[MA5ìV«óƹª›ŠziYJ=(3}Žž­¼ÉÔæÞÖÌB6Ø'1KXÜÒǹ]m}ŸT¹§!*4@¤¦–…udUéâÚ íP”ïêä/=M_s² lÎå'2?M\”…vgX‚úÛο`n~œª¸TF.:¸ÅÑìæÞÕË¿²¥*7GXì=/":FSbq€âO  *6CRarƒ“£ß×ÍÁ´§5Uh0;HUdsþ%'2>L\l}ž­¼Éö©š‹%2Afu„“¢ãÚtd#.:GVfwˆ˜¨·Å¸«œ~o`Rý3?LYhw†–¥³N *5BQaqãÛÒÇ»­ŸqbTù5AM[jyÒǹª›ŠyiXI;/$[k|­»äÝÓɽ¯¡’ƒtdVH<0'~’èâÙÏ´¥•„s"-9—§¶ÄФ•…(Õ[I9¬¹ÅçßÖʽ¯Ÿ~m]N?)4AP_p’¢±ÀÌ×íçß×ÌÁ´¦—ˆxiZL?4‰£|iWcüÜÒÆ¹ªš‰xgWH0>KÀÌÕʽ®žŽ}l\L>(3@N^n¡°¿Ë€qbEVi|–ƒ[jÎÑŸ¨˜ˆhyŠ›«ºÇÓÝdVH;0&Rex‹ž°ÀÏkXG8*Œ›ª¸ôïéáØÍÀ²£’p` *6DRbs„•¥´ÂÏÙÿ²#0>¬½Ìýópž­ºÇüÞÔÉ»2>M\ÊÖßû-;•¨:GUcsì! #-9GVfwˆÙÐĸFXj}£µÅÒþº©—„pWfvÖèá×Ì¿°¡)4BP`q‚ÛÒǺSexŒŸ°Áƶ¤’lYH8+óÿŠyhXI; -¯¡’ $0?OatÐD5AO]l´¥”„sb!+7ETdu†•…vf;ÈÙÌ ­Ê½¯Ÿ'2?±¿‰yiZL?]°½ÉÔÞûñìåÜÒŸ©˜ˆwfUF9-"#.:HWíé] '3BSv†•¤ôðéâ_OA4 *5CQarƒ”¥´ÂÏÚãêëäp`RD7,>¼ËÛÏÁ°Î÷󬜌&0ž®½ÊÖ!,:J[nØË¼0]m|Œœ«¹Å¦–…tcSD6+¨·ÅÑçà×ÍÁ)6³ÃÑ”n\J:DRap€Ÿà×̾° ~m]M>2ÀÍØâéïâÙÏ÷AR¿%/:GUdtƒ“£$.;IXhy‹›«íóº äÚÍ¿®'1=JXgw‡—¦´ÂÍýƒ³¨•L)"š ‚ ‚`˜©AW` a ‰9Š1   Òˆ~¡jÿ§rÓºãÓÒ0V”ž2õ1UGÈè0០IÍ÷¬ “®Šs´iövÕßE˜¿îÊi–âØ±wBwç³cw±äñIzQíß]T­öOå -v7V“w1&E»@QÔX¾“ó'x?w.1µíyvN:µ³³5ë¿27Ý‹D$šb!­·¿àÍ0ô_@ð†>>ÉÕÚ6ð¢j)v·X¤O?lKç&ÏÆ øÓ3bW=Õ 9íUÐ+F'ì z%n7Èa®#V|Åtœ»Äã“5¢šØoÆ-vG8·bÊkŠqcp7ä`Ï ï!_†lv§5 -ÕV7.ã©8r/}Å3w‰8vö#Õ©*Q¯Û»GìN¼ËåB†mÀG¢FªÊ Ýýƒ÷Õç䣺 8[·yÌÍÆî´š†(OFÓ 2½ZÒˆ‹jé>ðÖ]©°»ÝíÕ*´4þTO¹gçå¨öGwnʰ±¶ŒßLIu—QÀ§ž!{z:w€¨.u)9˜J¢s×µaèŒ4«þ©Ä<3(Îâ¢T}v\1X¾ãç î¢µDCõ»Ì=Rݲ»vöXìo4€¡˜öPÁd§8ãܽÊÛº³†Ø¹BÞ¶",¥!çØ(oýKhE¸©îœYG/RÝéŸW,â÷òÆ œç"8¦+ »ÄüÔ¢õºÇ'1S_ìn\•Ù<3ާLªÏ’¬8„(½9L:Dé›O »“?¦ †•رy¡:ŸJn£‡ é<ÎöY¯Ë»»òf53>†X×;žpç+Nþ`uš}5¥êN€å»«{LyÈÖ2>rÙÍë˜ÃP­ä¶΄tÃS™/vgE„@ó”ýßQ9iÐDK!É ¿Hc!o¶ºÓâgœªÙìÌûñ˜JP„û«$¡šKeh†’Û]dù†v!o³)û?†ëgŵ(-'6.Ãvªô[8gC¹“$ÝIñ˜vð%v éu|ÉbÕ—q­’Û¦;Äh,ämgÊù°¼â&3²‰ÀM-ô¢¥ªç®’n1½DqbÎ!áÿRùå' T!sAr"KSïÜ}¶\ûŽª2Ó˜ЃϷ…ÌpéCJ ˜H׿c•ªÛawÚmœö—œ¯ÇF˜îÁu—`Ö•8—Ê¡†j!²¾…»xä¡ën´„‚£ªÌ|²Ï Ý… -i2.º±ùÎÃyZæ¯|ŠÝÁ³ß*’$»À€@äæÒÂt'¤k-ãªsÉQòÚüÉnJnSí•” -ys(õRñÌ t4ÃP©ÏÒª:Œ5çf?à&ÖZˆDN¤æ<ü,¾“êþzGe¥–qm ñØê©=²½½Œ\ø6äŒk0ƒ<3.Èdzþ/ÎæµÍP,^{·21…Â~@ÅüõëIR]Óïܸ·*:ÕIËÀÒ¹ØÛüÉZ^FØÀh¤*3çÌ(D2ƒ_ѳ5AKé›(WT;óWW#‘©éî¦:Xt¸Uf´e¤]l -öAüh“©5g¤ç$%ø•)U ÝÜȱ%R!W  -¤º„š'èÄäŸÎÍ‘Ðêeø­PuRܽ%J3:/±Ð>6Ì£¼Œâ÷ë.â1£a õL`WvJ»a˳d¸ :Àú&O -¶‘‡‰W2.úBºÀ «ÐÖ¹÷zÞ}&¤TÕ/ãüOÀGS)'uj½uMÛÞ#ןòFP‰„Ç -›½¤º•'Œìlrú@õ1Ó¨õ R± Ia@5Z¿ãЗQ5Â}hft2Õ¿SÝWá^þëꊓ ¾ 2&ݘœø™Ë˜†]o4Ò5kÇkÿˆ掩3Ñ.LÙĢWe&Üõ2@H<3PÆÄ©6£F£Ì0þ6ß¿:¤én&T—Üø™D?Û0cÍÑu•»K73µ0<Éç—ÊB•™Ê~ô-¼ô3ƒ)~»SM,@²qÂß.À×ë\ÈÞô2†ÍŠfhÉm˜ý¿b¦NyN1êØ¾ 1[FP<3. f{fdOTÎÜ€:ËÁ€ª†Øó‘?`î^Æ}$´_'P MT€ñÞ%²ˆêQ‘Ú&ZB ª+·Ï˰Ká;™áëTïs?Å)2f쥈n'øóòxSpÉH+ŽÍaT"¾*ô œ>†T£7µµËù°™wÿ@öݱ:ÐëÍT†¨£åËàYÏ tª+IÙ´©ï׃æNÊvÌ63™þRK Ið=œ9ËEXĸ|î5$b‘œO“}SàÀ2ZøÔ+£¾1P}éˈø0]ql§º9.j—佇 -&‚¹? ´´³Ã½[HÞ*Ñn4иõ=„oz=y'KH¹TO½ ^רãìºF oUqŒ²ˆ>šŠ£Ü!ÚCªDÅï^r®1&oÓäx°Íä¦DÊðÆ{Kaªþ£X -T7¿ cfP=§Ò:ßoW'Ìr–xbÞ÷ŠhâÔ¼k †dE҂þE¯!Á¥;ƒÒ_õ`'²Õ⽡œDõ\òöQHcPBªål³ë˜Nµc©ÑCÚå.WQ|—tÝm•LáöûÛŽ’gòíÚëô®QSýtˆagÇäs_> -ËB÷G!­l¨ÞôbpªÕÕòÝlûû!ðs;ºµ U}G%æxüŸ.CÒ6JéN^¢éE¨çÜîøNíõþ ¶Lßñ€$«”B -ª…ÃXâTƒ)‡X‘w<è3Ðó–?“Ç.Ì8Œ°óÔÊS­’OT0†äGÑFÖC­Ã’jfhÆòZ -S_ -)L”þ±S-³ðüÔ¼BšãW¾CÌçv»[DµÉMsŒ!}+…hœ¨;LÁøWTa¼¸Ó2§P( “8jc²Sýòþ„ »Ë‡uî]˜ $Ä¥!©Ú¾½Ò]_Dš7åìhQÇS1uYÕDÀç9Ú~uǘÕ>q¼ã‘òt*Ä!ð„µY“8$ôŸ‚vωêG߯t~¡©ü‡d_Rþ+9IZl’¥¶ý_ )4@M\k{‹›ª¸ŽŸ¯çà”…z9+"+6CP_oõñìäÛÑͧ7!Î1@PbËØã5(ùÿ×Ì¿° '3@N^o€’ÙÑ|l]NAþëâIxg.:HXhy‹¼®üÆ·¦;ÙΠ)5BQarÖÌ¿²£”„tdœ®¾h -!+6YJ;/$%ŽÏ^q„—©ºÉÖáþ̽­›ˆucQA2&¢±ÿ‡˜¨¸Å\ +8HÄÒüþÈÂÎØ~m\L=1%&2?M]n‘¡±ÀÍØ7¯óîæÜ}j¸Åƹ©F8,!"-9GWgx‰›«º¤ $0>NþòìãB3_n~âÙÎÁ²£’o^N@3'(4A¤êâÚÏ͍9ü=/#crƒ“àçœ‹yhXHYi{Œ­¼ü|l´(5ŸH8+ ³ÀÍ¿±¡m\M>1&N^næÝÔȆÌ&0=JY",9GVgxŠèà×Ì¿±¢“‚üàÕǸ£’p_N OöÜÐÂXG,WH:-" #.:IXizàÿ?©ëâÏäÛÐõ¥”ƒr s„•¦¶Ä9IZl~‘£´ÄÑÔ{jYI;.$/N_q„–¨¹ÈÕàá×ʼ«š‡ubQA2…•¥áØÌ¿° }l[K=0%L\m~æÞÔOA9HXj}¢³ÂÐÜåôîçÞÒŶ¥“€n[J;-0&2?£³ÁÎ<0 #/N_qƒ–Öɺª™†taP@|Œ¶¦•„raQ —‡vf8GXj|¡²lZJ:-"  !*6CQ`qú|#}Ž1'3AQbu‡™«»ÊâØË½­œŠweTC5ú…sbRB5) CRct†˜¨p`QB .;K[m€í¦0$'1þK[lÙ—‡ve6{hWF5Bá†ucSTdv‡™©¹ÇÓÿ&†s#.9ÛêâÙÍÀ±¡~ %0=L\m±¢åÛÏÂ&­Ç¹©™‡vdTD 7ETewˆšªãÛ - &3APat†˜ªºÉÕàáÖSC²ÀÌØÙÎÁ²¢‘m\L%1>M]n€‘£³ÁÞÔÈ»¬Œ|;JZl~ĵ¤“€n\L˜¨·ÄßÔȺªšˆweTE7 fw‰šþØÍÀ²(5CSdv‰›¬¼Ê¾®‹yfçÚÏÁ³£‘€ÂÑÅ·¨˜ $/=L]o“¥¦•ƒq_N>ï»EFUfx‰›¬»ßÕɼ­ž|l *7EUgyâÙÍ¿°Ÿ{iWG:GWgõä€o ^o“¤´ÃÐÛâØÍaQ %1?ôîçÞÔǸ¨—…'2>Ÿ®ÕÉ»¬›‰xfUF8F¬¼ÉýåÜÒÆ¸©™ˆw# !,9GÀãÚÎÀ± }kYI:-"!*6CRbrƒ”¤´¤“o^&1?NòŽ~m\M©¹ÇÔßç˜†tcQB4(;HXhx‰šª¹ÆÒÝúøôïèàÖɼ¬›ŠxgVF8ƒž¨â”N©™¡¢ € hJ°=@°P$ÑrÄ0€p €´IŒRé„ ©ÐÎe33.›ì´ˆ{ßÇ‚;v‰õ,LpH°ñNϽ H{˜*ÁŸ SÇ )S»+ñ6ã_ÝáÆš"ç×3cË œî‘C×Bò× LìfØ tªu/ÿSˆ¶í·€rÃp’ ü…YA,Þµé7 .ˆ 3ãFÞ)Óí ^¶Œu«óI Ãû+^ÚÌ8ÞîeThÄ€Sv'2ÿâsò€œIk -æa™¬EËB*#%òü“ÁžàJ) x¼ ™…i¿Xª£fw ¯K¨Ê¤öÌHXÝàÃbÕ?vZ ©mÄû ÛdGÙŸŒª§Z¨6Ææe0 K¨å‚ù ñj&=ý\W*ôÅÆ–P•V>L1~“B”NZÛÌÀ¦B•zÞeðPç®0F5áª!úã¯8¼¦aÆMvDY¸Æqª³¸” xò-ƒöýb‰V S<7 JÂê6u€ø>öÿtf ‚ -¤-4aŸÍ";w¤7oP‡²¿"€SíUlBœ"c/ÃðK]ܶŒ8EK d |£}Ð såX> ÞR { |ßÛw1²fƸSÝgtGAw‰êÃWH™ ×pªÁb“ZÒmŸ—áÆTzú‚n ç0^d"ƒ*|ímo1!¥M5éd–7N§º)<“ȼ*Cµý¬âTg­»¥Ë²:¿¢ñ2æ€òŒNOŸ¸èºarv¸“PØð8èïcI¦Ä‡hDaj YbVWÜá¨FÂaT=Û0ëÊÖ1–µ–¢ŽÁ¼ xçúrBzúPô£dù)MÄ.Eh€¹˜H¦j$mY\°ò ¹+ú<XŒ²PÐ]Ò¨žvƒn_Qô k9+Ÿ -cÃP¶Œã„˜:^zúO±Ãy¦*Ú 4(û£϶8š¿“[­ïTćî´Gõå“¡ì¸Ei.º­?‰b9LvIØâxÒ|j;9ö^Ã4"=x94~/{<%Óܲ#ãȶXL`Aonè!)a_AЮŽk#¸‚îj/‘­ÖEuÂ;0àÎËâ]wÖȺCß ¹p-¸VðàðÙ¶$˜88×äqY‹¿‹µT õ€b líS…=§¨ãØ¿€ bš#=ýÖ‰;‚ÈYçá©‘©6Ñ'ÜL(mHuÅjI¨?0ẠEâ´—aèÈN~l¨7Ñ—1uöäØ#éé_ÉlN±îdöè1¤ì1}ÊÌò² -3–¼ ëoÒ ‡^d*äõ •š_a¿ !öC!%nZŽÅjüpq'¤ -Ä4ÅdóÄpÉÎò…§'¾æÜµ›c ËAÄzòž¿µ!ޖˇÉe9µa 0óãýsî+¨f*´  ?! FLM†i%Ój‡tyŽ|B‘-QV²5p2Cýay¯ä·I™ƒèû¾CÙª„*G‘<‹ˆ©3³+(;p‡ygh©è!…Zb¼T“8”Ä{?‘Üg(°o¾æzžT´³UŸk`øX7H¥Ú÷2ö©BjaÆÞ ;¡Z{tHùˆj…ÁC2¶sÅÿƒLaÕ|¦eë°nŠ°Ã‘^Õ0L Toˆ/ÿ‹+ùG:!µb¶æö†´·>ÎÂÑò'±=œ<¾ËìÀ ?ÅeY@¸FL«ÀÀn;=t)£qû©§Œù4Ç.RH[äΞª«ÏZñm±¾¸:/5`nŽÓ=έ_w@„`FT¡`ÂŒü…=Œãk¯.̨—¸Öv@Â|@ŒB¢!j<¬|掿v#­&âþ¥ú܆¬Î:ÿÏŽ°’ô ÷ÌM®+îÎëÀŒªì2.· ÍÇAŠäBä˜uÀ†3u¿såó§.i -ÿ”l´×;$,óljKµêOÿ[»;ÀK -ÌØÝet€l©; íTW+jµqO¬žßËVH’I½ {f—j -nSÞƒ˜AöÖáYÌHÊQ¦tÒ5K y•·®Óƒ=ŒóAw#»˜òŬû¶˜˜ - ˆiǃÀd/Õ+èÙ%œE¢üì.ÝÝÑ0-°ŽÉEiàÌ` -Ø3ÜKö~¤Ànîb ¤bR.û¶x_…„qrDQqÌ&ÿ"Òì°PE+( îÎ4K~ìcÃŒùj„­yH§bGa«³áu>€øk÷Ûâ¸Bª²‹Û¯1ŽI“”•˜‹,'pÃà_q+Æ Æ’Õ„ƒVq~sÈ ÖÛ~¥z)£dŠ=…´/Œõjà -cX!é2³ÖÇŒ¨¥¨â—)…aJTJY‹"¦‡×4³`FâlB¤p ö½†„Ç€6¬Bw((LsôC1Ѝ”À_bý§ÖUHÍo¾ì£ê˜ÐÅâ1,+dZÖ(S-á´X!‘M€þA0#‹sIŽDÚ?Šè¦èÜå„­d’¢;Ã}\jŠ'ªE+$Fô홾ÒD#T¨œÄ!ŒÍhàõÆÐüŽØ@T“æ§„4CÊu¸.5ýœÇn~5:[¢ÚX!Q“œjDg±!%U?‹ˆøŒ‚+ew§?<WHÔOÿ’¨&2E 1ý•()#eFѱJtwž… —‹¢wà¯\%¤ÜÛ’•‹ª;gÆŽþ­Íi”(HQCãBŠ'ª˜aDfH97¤«Ë?!Lô=Ýiè¸(ª¬ Ú÷§nüˆE§ò -U—™ÚqPùNÕë^Â9b£O·¿?_¼=ؘ¿:w¹!áBöàxËûæŽ;#ËøšŒ¨¶=WþEmQ5¹#gjGFÜŠÉS¦(iƒ¶ß@Ä…TK/áÏÛÈÞ,¢×1‚¬ß©˜~UˆfüAw© S{-ðWðsî’HT­#ýõŒÜ©ÏVªvg ÅWL*$ãRÃ5¼7¤k‚€RÍ~˜ªÁÑ¥9¢»ÅP>5NÕr€wQµ·u×4 n!´¹ -ç/ÍTm3Š ü¼^H0cÅè±!µ‹ @4Sb °6„ºäéñÄB_èÎûŸ”Ÿ-ªU­k -PõŠ–†Œ*¹ž©RõlŽ•ßW=)ü¹ú X©ggRIàew× ­c ˆa²>òs†¹3”¹[ºº(ª6ëõ]TmýŸJvg'ýÖoª†0 i8{!•\°éOòÈ·ïƒÍènãkCJRd©P“Oú@TÛë&4=Ts¤9!œD6+!²äÚ~l[J;.#3?N]n~ îN?p“¤µÃÐÝÓh(4BRcu‡™ªºÈÕßàÕÉ»«šˆvdSC57DSct…•¦àÖʼ­œ!y‹éþl‘¢³Â³£‘m\K1ÜåÜÑe¬ £³Ê>"-=0%n€’û5)»Š&2>M]m~ ø»úçWM^o’¤´ñäÚÏ´+6–§¶ÄÑ䣒€n\Ââ›èÕÉ»«›$/uy Ð{Åã ·Œc*~f°»¶ETÍÃ7;ÛŠûÍn6…•ß9„M4~˜º°^®NwÏþª±~e†à]) ÷e©&š¼¾^KT}À k…8Lg…ŸñlZl(;0ï ¾¢§›E+oÅææ–¹P–ÛBBãuåxÙøvùsûCL;ª[Ñðúö˜@/êÑÔþÌ‚£XeÅúÌàªGô_Aò­»îvJX -Z®¸ÖîÒy”˜ -DÚ`ú1í€R}'^j½z±T?í ðqtÒ`S\¨o|²,DT?3 —ûS0sRÚ–Ðq¿ Ç}ÀÇILYz°4I™ÔëŠ`ÂïŒýe ÒA`//ÀŽ+TøÓC_Iˆìç éÔZ¾ke¬ý1& -üOí̈‡KLk­.±s­+_XyzÅÝ%Zƒ×ͯ)Y25ûÄ%Þê²™5fà˜x!€«x|j|§ãë®Ù ì‡UÿØ®¡1† -ä« ,ˆu©À”>1zP#Sè4â/ÍXH§£ÓaÜÎL¶º~à Êß˸d؉U Àºk?‹(kAÓ‹SÞ‘£¬ŽbY©«ÿ0ÖiµSôjdê8Ë ¬Á»sñÑéno·íÆK‹Ç¿™À+Æ^ûiXwuŠª1‚æ)zs&Ò|tUÖ/ïáÒÈôZ©»=4 Ä=ñÑ =^ŸˆØÌŠÇ뾌ƒÆþ Zw5P›f®ŒA)"«Ž uå¤7&Eì¦"$¦þè42¥¾±7¯Y¢G!èèT·OÜŽ´ßŒI€ -ÙÆw2z­JJ¦EKAsš‹LKM‘î¥ÁìsTã1±›´HL]6½R :õ8ÅYPù“¸]!¨ŸQ£óÈYŒiÈ|4“"Š#`‚¦¦î•¡ò«ê}w8!᎘ªÂ•ð†‰ŠÄnºïTnÜtC…uìYü£˜‡bq{ö -e¸µt+ªÅDu_%«Ë"jFdA$ÑaÞ2Sv±?¦Cóª%¦æ.yœ,ðK૪JðqÇ;7PÇÜóuC;n‡øÎö,\†Ó"ªVö—ç$SЬñ‚”»>¤ÅÐ+({{ÃhóÓ{7'I§ð¯S¸†V¹L¨Ž†-«„TrÇ&_«œš=yÈJ=ƒ·ø­ò.ÊÁe$Šz¯"¦Ñ‡OÃÆ“ ÜýÔf›$؆Ò$¶ñ”Àc·Ã]ªA†w¶ã·” óË.Â,h"¶à/¢)À„½©0•«f`l¹ÇùpJÏ«MŽ -‡Ü&ªÖs¥”åµnÏäj¬I©F çã–²œM½­B°«@òÊŸ Öed#A”·ngD¯¿C™ãô8Ÿpöun¯s%ÿJU¿§ìö‘A’óî› z]ŒÙ ‰«ÂÀ;(éQCIaeDñå,Cn¿Èˆ¶ ¯=GÄ£ªEp`sö™oEWµŠ/ÿFÂ}6±­öèïqwzY¤õ} -4éW„`éRFžÅ_4øÐEG/œ z”ñΟÈ<ÈDÕ_ë=¯C Ã;Û{/ZµîÆdr¢É"§ãXTWզ؋1¢+5q‘-zÕ·YjO4)Ÿ 2 ¼¼­“•˜‰ïèªyHZ5³+zÿ,¼Û7¿ç½T BDT_»²ü‹´(.G*ìóg¨ç  Ý4¤Úc -éÐÝpTQuÇ%Á«Kzu@(¬îXsCïT¼9ÌÜíº¨†®É‚†éÐß\(DU½ ÚôýàËŠ™¸z& ØÝÔî„@ ìÝÜÖ3à»dæJ ]Œ‰j•ðù¼ž×šEº… -Ô‹î|j×3^„› Uó°»îÔxF:FÔ0dc3î„wd?o£$.à˜”Õ…ó~‘cƒ éî›ÅJJ)q®ÕÝùÚ˜ÍPuKØßP°»Ÿ(*±1îZ(Ôl@Rÿ¤3Ò øg&-t°ÔÁóßQm›Dù–Ý餧ûaü{PowT~d‚GçBHQ5QAP)¡ÝÕBõ«%0ÕÝÅ”$ ¸Vͱõ« 3 P~ˆèÀ¨NžÇõ È´ÁÆ [“§Aÿ3¼ÉŸcw)Ñ_c1Û]ÞV£ŒÔÕÑ£kMæÐì²µ`TVLz €—f—^5òq• ¿˜!ôÁª&4ú ?g±>ɺ¸•ž"Ád¾Á‘ì®a]ù¼cÑöJèÅ~CÑ‘)YÕ4 4ÙÈÚõ´E7‘ØLÞs+ æQpȹ»HCuÌÆîpåË÷—ïØÍ¿° ;/u†—ØÎÁ´¤E7+8õðêâùÒ…sbQBZjÿhÑJZl~Ì¿°ŸŽ )Õm]NšóÉ»ª™‡ucQAPasé·§–…s -#–bS%0ÏÁ± ¾¯Ÿ ‹Õÿ 0>N_pÒÅ·§–„ra)5AnÚygVE7áž{8•èïçàÖËevß“o]#'hy‰™©µ¦—†vfV$Úý›‰cu‡š@Nª›‹dvˆ™òíåÛÐkö üo_PB5*!L\m…â‡áTF*6DSÀ°ŸzhW)6¯¾Ì(2?ªX$/=K¦/$M^îÝÑÄ´£‘!}  -  (2=JWftƒ’螀q&àÖɺª0=M^qƒœŠxfYgv…“ïÐź­ŸÚÎÀ°Ÿ(4CSewŠ^M>0MZh® ’>2( ÀK;YÙÍ¿¯ž„ugXàtbQ@2&—ÛÒ…vhZL@".‘Ž{hW(HÜöÛÒȼ°£!-:Åö6í%1?Oas†™Ñô£’‹þ±\O -¯ƒ×¨R½Šˆ&â 0 @€Á8E‘è€ðHŒgIbˆ„ÓR  É qWå8/Í¿†ÔZfûN`ÓÁáH¯:\<\™£È;þ–wƒøËÙÀwÂ^éq1’‰/d¨p˜¡|Ý[$îª,ØÞ¹‚À ÿ Æj¥+?¤ÂrÒ2ýo\´*ïXÄAßézA0Ð÷×ð…PUqª›v-™Š×«7á])©‹e"­&dh©§³ Õ÷VýîŒøG§ÙÁswš]wŠ€jÔ:í®F&Üš‰˜Q}h.ךX©2"§ºk9ÚüÔf‚èeÛ[3Bo`f”¡Z+ñéWyUü µÀºî<6ºv…´;ãH×Q}oÐZNu`F6Žƒ¸±§ŸxU¦¢š#î˜EìamËP ­6uiöˆ¹~l¨%= ™sUËhßÜyªAÕ4F5ãC¿=ÕlãêJ Ìæ'PÏà]AR“VéD‡ÝÍŒòhÓ@K|ÅB.¢6Ô² ׸º¹âWÄ7¯•LÖù›»õ@uÅ&€Fukt?ÍËöÈÌÈ ˆ&ˆhý˜Yà]T’G„’iE¨ñåÄßÜ)©¬Ÿ¨¡–£§G( µÜ"† ‚˜.óŸ;Ù¦Âh-&8ããà·J™—©eQg3A}¼›»X*ÔЖ!°³Eja^Vª*Ð •ÎçÎh’燣Zá@qpò0¿¢î2c~|º7xç/ÿG]‘œèðÝAmum©‡Oˆb Œðù¢à2̬V!lŽŽj ¨.P²½‹Ýjû›4ø'¹ª9p¼óHÄ—üëúA·N+@t7È–¦Ç„F¶jfFØ]í¨Ž.'+ê¨î ôc›íÅÓÈ­Ôâð®x8±u·’~”99¦ÑÑrÈÜ í,0iò‚™sðÆîJ2~Y‹-c÷ׄbTgU÷­#QCŽ®%¼ë&¥Ââ ðånTJ1¹­Ð1Q»+S ’âèa;Ÿ -ÁòâFw »;³ËG5Û2@F5yu÷f)3!‹m"ÞÕBà—Ë3¡åÑÝZg[kçÛAvšLïÄVw°;¨m¦ñ©.Üç5Õ"u«-„C’uûÙ‡aK•‘¨³Ê¢@ŠTËÐ]û·&Ñû1Ma¥*`¦^a£Ã_³íOº»Ò¾ÂaÛø@é@¼Xº‰Õ,„;”²²«º•Ô\m±— ×-¶BwÁELGfs)ÙkÕ¼3ý33ôó?Zá û«±õdÖ¶ŒOéÞsXº‘rH—Þ]§êï²ñ’pÌÂUtתJ—akA2š \ÀL»­]ߪ@ø :’Þgk/¼À¸˜"‡Úh~¸AŒ±ú8$iæ_ÕMbÍÕÛ²Ø(FùٶÊA -ïSdöVŽ!zÙá b㕲u3.`NýhwÉ4°Iæµ!Õ1K£§Zo­!y0äàà˜d†‹yûøø0Zò:Y£ w•HQ ï8WpÊF™ e‡ðqüª”öÒûÈÇA×úÉvs]ÄeéL·Ú}=l=ôœ¨º-áu¼ß̇Caè$󢕪dfzΌևìÂmwY8à(³Rëû/…d¡S¢’°¨`ŽÌÁ»eš4;w¦KúÑ“¸mö £‹ãi’ ‰Òÿ ±í9ÃjÔê÷û4ÓîDwþ‡©ö”Ê}2)GÕª»‡drÐÀn û¼žQ”ù/ã”Þgs:÷±»d-eÇŠû'à ³JLºVk²TÝgzRH%…ͨî¨+ðbÐH™²é9ç2n c^L®óï&ær˜R¨Ô ,ä EUgzŸ°ÀÎ &/:FR`n}Óɾ±¤–ˆyk]PC8-$§¸§•ƒp^L=n€“¥¶ÅÓÞç·$ - '0;FSao}‹š²¥—ˆzl^PD8.%ÀñëãØÌ¾­œ‰vd2@Pbt‡™«¼Ê×âêÿÙÍ¿8+'0;GŒþþýÓɾ²¥—‰zl^QD9.% ÉÕýþþæÜÑÃG8VhzåÕȹ©—1;GTúÒ{l^QE9/&l‘£¹¨–„q^MK\ný³¢ (1<Üøâm_ (ŠweS&u‡š¬¼Ëö¬šˆÊýòîèâÛÒȽ±¥—‰{m_RE:çô£~kY)Ž ²ÁÏÛĵ¥“n\L ¿ÊÔÜãéîòâÚÒȽ±¤*7©.;K\o¾¯ž‹ygUE62‹™§³¿ÊÓñÑ0r…—äeSCQbËØâÔǸ ¦³¾ÉÓÛâèü÷õñíçáÚÑǼ°¤–ˆzlÝÒÄ´£‘*ÂÐÁ²¡1|Š˜¥²¾ÈÒÚâèíññìçàÙÐÆ¼°£–ˆzl^Q'4BRcvˆšùáÖɺ©—„rÇõš‡ucS`n±½ÈÑÚáçíñõ÷ùðìæàØÏÆ»¯¢•‡yk#//#'0;FR^ly‡•¢®ºÅÎ×ßåëïóöùóïêäÝÖÍø¬Ÿ’„wi\OC8+'0:EQ]kx†“ ­¹ÄÍÖÞòîéãÝÕÌÁ¶«ž‘ƒvh[NC8.%uêÑ8)6Eˆu'/9DP\jw…’Ÿ¬·ÂÌÕÝüù÷õòíèãÜÔÊÀµ©œ‚tgZNB7.%.¶ÅÒÝçàÖȹ !ÓÒŵ¥“€ -&/8CO[hvƒª¶ÁËÔÜãèñíèáÚÒÉ¿´¨›Ž€sfYMA7-$Ù;®œŠw1?UE%.7BNZgtœ¨´¿ÉÒôþûù÷ôðìçàÙÑȽ²¦™ŒrdXK@6,$*(5D±©%-7ALYer€š¦²½ÈÑÙëåßØÏÆ¼°¤˜Š}pcVJ?5+# 9Õȹ¨–ƒp^!,:I[mèýÐkYI9,! $,6@KWdq~‹˜¤°¼ÆÏØïêäÞÖÎĺ®¢–‰{naUI>4*" (4̾®œ‰$0?O`s†™«»ÊS #+4?JUbo|‰–¢®ºÄÍÖÝäêÜÕ̸¬ ”‡yl_SG<2)" #ÜÑó¡|i5C "*3=HT`mz‡“ ¬·ÂÌôþñíèâÛÓÊÁ¶ªž‘„wj^QF;1)!Ÿ±éàÔǸ§•‚o +9HYl’¤µÅÒ !)2N_r…—ªºÉõðêáÖÊ»«™‡tb (0:DP\hu‚›§³¾ÈÑØàæüþåß×ÏÆ¼±¦™€sfZNC8/&Òþ Ž{hVE6'4BSex‹¯¿Íç '/8BNYfrŒ™¥°»ÅÎ×ÞäéîòþôñíéãÝÕÍĺ¯£—Š}pdWLA7-%Æ·¦”n[J;+8GXj}£´Ä‹y%-6@KWcp}‰–¢®¹ÃÌÕÜâèíñô÷ôðìçâÛÓËÁ·¬ ”ˆ{naUJ?5,$ -q„â×˼«™‡ta#.»ÒÄ´£ ×˼¬šˆubQA3&+4=HR^jv‚Žš¦±»ÅÍÕÜãèíðôöóðìèâÜÕÍĺ°¥™th\QF<3* -€Þƒp]L<.",9IZl€“¥¶ïçn ")2;EO[fr~Š–¢­¸ÁÊÓÚàæëïõòïêæàÙÒÊÁ·¬¡•‰}q( -DãÙ̾­›2&˜ªz LWbnzÇÐ×Þäéíñô÷…ymaVK@7.& O`r…˜©ºÐ²¡Î»«™†taP@5?IT_¥°ºÄÌÔÛáçëïóõøøõóïëçáÛÔÌú¯¤™ui^RH>4,$!èßÔÇ:-ÞÓm#+359HçÞÒŵ¤8+ Ž¡²ÂÐÒŵ¤: EOZeq|ˆ“Ÿ©´½ÆÎÖþèâÝÖÏÆ½´©ž“ˆ|peYOD;2*#SdwŠœùÚÎÀ°(8AKValwƒŽš¥¯¹Âéíñ˹¯¥šŽƒwl`UKA8/'!#/=M¸ÇÕàáÖɺª˜…r`N?0 %-5>GQ\gr~‰• ª´¾úüþÝÖÏǾµ« •Š~rg\QG=4,%æþ³¡|iž°ÀÎ #*2:CMWbmy„äúøöôñíéåßÙÒ˺°¦›„ynbWMC:1)"ÌØãý¿¯ž‹xfTC  '.6?IS]htŠ• ª´½ÆÎÕÜáõòïëçâÜÖÎǾµ«¡–‹ti^SI?6.'  ]ýüú>$+3;DNYcny…𥝏ÁÊÑØÞäèìðóøöóðíéäߨÒʹ°¦›…zodYND;3+$² ƒN¨b¤N)33 ´áò €`Ę& € Y–ˆ1Ê@@„7™ ‡6$óÕZ$2cf—Æ{<&+ãíre YÆÁÉïHtw—PfjÒw~¡µÞfl{Ò HsCÚù¾Ä£»é€SýÕçššüYƦ…Dz£Võ¢fà»VG‰¶É ãfÿÆ…mæ†Sª%Ô•wŽ'ì&ֺâ‚@SÖ2¨ïNhI3ŠñÂëÝÝk¬=æyu¼`Ʋ·lƒ.¤=’.˜L2|#v|7˜c\âÀK¡y¾ù•ªw̲¡Br”»óÇÀ1[¦{ßÝèTï@Ý݃°~ˆJ0}ŠÍ¹SªKjû<†¹!ÜÀ;ÇB¾¨ã‰Yêñ0?¯Õ2¨ -ÝCç»Ë—èEoÍ€»—ZirªØ.}ä¿aª…êÿ…th¿"@à†R©MÀvAÀ7¶×Ú‘§’;ÞÑ]æ ¼yzïšQ†wV· Rö -†¯Â •VW‘mªk¾e¤úù=¨TOΉîÐå~Û ‘GAWêt•¹cˆ2ÌÐS÷ºó%ƒâ]ÞQÖað -T˜1$*Qý~!;òÍT¸Óš–CrÏ`¡ïЩ Ó[™»Cº#Ö!Ò;úT-Û2qÑ|]ˆêÝ…¤G¿ô Z#¨T7¹‘åviSeîtÐf!½Û¾«ê`à]»Jÿë¦Eà6P×¢‡¨F@þVæSK“šR]¬jªKìhìp¾Æ#æc†ð¨O†î¬ãшøš1ïÈ«:lLSоäe¯ƒžCTSïŽF矠ÎY”êf†ä¼HfT‘ü–!ß2>igºÃì)éÝú׌_„w«’¬êÚöi¼+5͆_)$Xs:Q-ÐÕ{î2”ò0EMIÃÐ\85ÙO˜<¸EH>uÑܦ;#Ū#V5-áum(„†WÕ\-ÜœJü #%=¢:ƒ¾ÌÃ0’!ad†¿fY€šìëî ‡õú)w?Œ˜îüõQzYÕ|¾J¡Ê¨à’øâ0„ˆê483EÝ¥©;H®Ëºwâ©øÔG¶ŒŒáª¤ˆU=vIÑbTèP#P,{™ [ò…”u‘¯F+Ëê Ø<ŒØ•0;õé8#, n5VÍà"pˆ4x4Ví…z‚ž*„ÌèãV - tμöZâþÅ¢i鈰€ {ƒ°>rVpê´00;^5afÔ‡H„j¥pYغž¹uÒyî2&ŠMº n—ëœp˜;Zª»…3˜†öSG§¹\uVA°føB$£ïLî‰MD! D2ÿ, !ªeYR(eÁÂ``Ü¡!Š}eñØœaΛr7{swjÚV†«, ïJú¢Äi)|¡»Å~† -?ÌèáÊ$ª?C"¾Q âˆÌhCà‡ÎÖèaJÊ —1-à aÊ Í¾Sw"œ‡7t—Ò=&Ï^í³~K0xÙËx$¸„áOq½|¢wÕÝfî~¹\%ÝÝ¢ïvLÜ+8ÌLˆªs}-cƒ«xÌ2·Á¯½Œ“Ýø¹3¶Áüýeñ.Eæ®DŒé -ï^‹"Í¡Ýs¢K@M²µ ÌŽtJ?³3Îd/<ƒâqÆÿ>¢FÒ꓎§· ÞQ¦LФ(­z˘՟>UêU)S•Gô#ƒ=¿9A`-3&0ö޹{%aÅ«z¬ï w‚Tέ,…0Æ >ö­­eˆ+LͽŒ°ìZÉŽ!:ÌÈ„-E K¿ ÉBLvŽû+u”«ÎAàÚ©öÎzx—ùÔŸU½šS¾cƒÏ'1ئfÉÃà@©¹Ó턵LUž¿a²ËŒóAZ»T(ÖíäÒS;}ê3ݪ†>fF+¾£¥°0 NG9YÑ­œe‚[†Så‰:sz“‘º¿ž_=Ì€ý{Ù¥šíTCäµõˆH¸4öª¹+v‹}Ø 㘡סϬŽMºÈoŠ[†_¨È0# M§»Ÿº¿¬2ã£C¨ žjy¶×µ¦>K‡žšûÔxÍž™Q뻺:ÇíþðIÅ´#&1aF”©Ê“ü2d¬@fT–®h:Árª§4JŒÏ»Þ»EÉÝâ;tþÌ…fšËâøKÕ]†šzÀ„øÓk^7Ê ì?è>Õh`Fè ï:%a:‰z_ˆT¹ó_îóÎgŽôù<ª)³œI—Áß2ä0ƒs™¦ ÓðÊ ×I'þL_§:tålÝíåå.?˜î©~Ü]  s/ùªÑ›ì­È¨¶Šéfh5u”ôˆqöµ¡®Xí^YñÅ=ïÄ•;’ÞïPßaݼB[tZ$E -f´SL¡*3¸ì˜íåw²—RÅ, »5Þ‘;¡ñÿàà±oP&íAÈÌ»SfÌÆŽQñVí׌²#‹wÖ\;í;Ö2qî?ý‚ñtf´Ë8ï2ã¼ÎXЬ–£4KÞ&ç®(Ú Š·¥è»ê—ÅþžÃþ23ÂíÁ ÆE§Ì¨øiÎXÚêÑÐ -æf]žK[Þ¡5" kù.„nã †¶jT¿L«J"{»ÂŒ' §Ì€cSBmÖ|{c^ÏÐÚ8%Ö@Íÿ˜ÕúλÔQË®]oŠô]ÅaúâG5dšhfÁŒ¹›+mJ–}¥Ò˜sTJKE’wá!$èN=HÐI ßïtm€n¯s!ñê¨kSfܱ#DCš¬ò<÷g éã¦ú¥Ÿyá]5¹Æ8±Zú.“©ÈEb!9 -Ìyé;æ?¸1zaÆÎ˜sìøÓ´æ(.RCú©,rÊÙªØýsøÔ{ …w’‘e·Åwàêžœ;ž@ gdÝû€Y0[š£U¤ú^å¸O£¹Äƾ áȪ1¼»›Œ3žç»h‰¹i•, ät‚THB`†ãÍ0ÃCk‡†Ô"á˜Y2ª•©#»ñ%¼£s'8*4$øîA¤às~l!‰”8®Ãµ=H¦Ù5Ûy @b/#váôЬA÷”Ø.ï@ÉHóno2µ&~,¤á4ép¾F p*$Y—qTÐICÂN@0Œí$aüfæ™zˆÀóv„$†¹ËKug§¨F¾;D>,$¡Ø"ù{k¡ü•½¯c Ö…¿ŒŽô %1@Pb½÷9,! !(/7@JT^itŠ•Ÿª³½ÅÍÔÛàöþîêæáÛÕÍÆ½´ª –‹€ui_TJ@7/(! &3AQcvˆG8+ø - %,4FOYcmw‹•Ÿ¨±ºÂÉÐ×ÜáæêîñôñîëçãÞØÒËļ³ª¡—ƒxndZPG>6/("æàÕǸ§ÞÓÆ$*19AJS\fpz„Ž˜¡«³¼ÄËÒØóöøöôòïìèäßÙÓÍÆ¾¶­¤š†|rg]TKB92+$3BRdvŠœ®`O>!ÿgU &-4FOXbku‰“œ¦®·¿ÆÍÓÙÞãèëïòåàÛÕÏÈÁ¹±¨Ÿ•‹wndZQH?70)# -8GXk7'4þþ$*19@IR[dnx‚‹•ž§°¸ÀÇÎÔÚßäñíêæáÜÖÐɺ²© —Ž„zpf]SJB:2+% eÕȹ¨k~‘¤µ -  &,3;CKT]fpzƒ– ¨±¹ÁÈÏïëçâÝ×ÑÊû³«¢™†|ri_VMD<4-'!#/>M_ëãÙ̽-;KÉÖáê"(.5=EMV_hr{…Ž˜¡©²ÝöñíéäßÙÓÌĽµ¬£š‘‡~tkaXOF>7/ $Ùã#)07>FOXajs}†™¢«´¼ÄÌÓÚàåÿÇ¿¶®¥œ’‰vlcZQH@81+$ÛåìóÝÑÄ%+18@HPYbkt~¶¿ÈÐ×ÞÚ§ž”‹wne\SJB:3,& êáÖɹ¨–ƒp]K;-"õÍ¿¯ &,3:AIQZclv€‰“ž¨²»ÅÎôæàÙÐȾµ«¡—ƒyof]TKC<4.'" ,:Jºª—…q_ "'-4;BJS[enxƒ˜£®¹ÃÍÖÿèáÙÐÆ†|rh^UME=5/(#)6EUhþüúøóíæÜÓ70)$2š¬7 û5( #)/6=ENXbmy†“ ®ºÆÑÛäëæÝÔɽ±¤—Š}qf[%ÕÿÈo!ÿ $*08@IS_kx†”£±¾ËÖðéáØÍÁ´¦˜Š|obWLC -0”n\J -  %,40\n‚•§¹ÈÕáêð #-9GWh{Ÿ Ž|jYI;.$RB3/¬¼ËØRdþ:J\n”Ä´¢|iWE3%0«þþþâØË%)6Ǹ¦”m[Vi|¢„—©ºÊ×âþvý« +9I[m€”¦7 ,:JÉÖâëñéàÕÇ·¦“lYH8üŠ .=M+9IZm•§ýüùõðéßÔÆ¶¤‘}j¶Å¡Ž{h%1@®¿ÎÚä*8HZm€”§¸ÈûùõðèßÓÅ´¢{hUD(5DT¥’+DUgzŽ ²ÂlZI9+ *7GYlïèÞÒó¡ŽzfTC3&ÌØp]L­½Ì]ÏÀ°ŠvbP?0$þ£‘ÁÏóíåÛο®œˆuaO>/#Õȹ§•ÿÚ;­›‡s`N=." ˼«™†üìäÙͽ¬š†r_M<.!ÛÎÀ¯ŠwcQ.ƒK¨ÂœL)4 ˜Â €àá@¤«=`q‡9ˆ"!@XÞUJÐ;CiEŸ[ÝÝDwˆd>ä/ë†i”»Û²2šö`Zäž-¨‰D¿‡ËòYòz·U¤ÈC™½†¼.)ç.d¤hôn* -@‚§†ÏÇt_‘ÑŸ2RXÏÄ0 .4ô.{§ýŠê XL·ap÷ÄÔð‰T%c{?¦ºûЧ«Ó´Ý {¹K ½ NEË~ϵáGí8q wl]PTQâwQÛ šG 7ô7'bô#e…‡2?Cïò†¶”˜F}É Èb*çŽMj¸¹äc:ñ0¨Ê ØH#¦©³¬'´˜?„Þ…¢vÄ£eBt,Lºôb:ÏÈáˆvà :âaXA l®å¹ITòBïSÖWbôqجcºJ{l1 ?“xÞ°cb‚Ž3*O -ÿÔ<ônô˜€cåe׿&LvnE—Ã’xš†à¥;®´T¼áçàÚ6jíÿ$…}ù{×äiKU¼=ú„ö~Öñ±Ž5ý±´âa: -Q*Š\y$4.u²¸±^âô®ÓŠÜ¹äLÍšÌï±s×Ï:’H’aGu,¹ÛS°§ò°¸d -•!¼õ?`÷_|nø}Ù2€?ö…ÕTH ìQJ‘Þ½yÊ é`^²0ü ÉaZ57¤ \¦jìŸJËß{‡—UJŸ¿¸‰ùÞ¤•*}¨Ò‡€ Ò…W3ñP~R{2‚‹í#Ÿ«ÿ»·‚Dµù£ª5Иո i>w]R]Rlòt—³;æ–œD,¥Ú>’sΠZÒ-½M½$~Î<Ã+Þ^îñ^ø®Z*¾±79¸Œ”ÏjEÒ~ø2´ØbGñj¬Wjûk‰ŒsQý ˆä­0e ̶hGˆÐNjYÞ…;ÉIÙu+ÔÝ ¡ZÃeèõW÷’”¡–çÜ`w%BFô¡™ .V˧ŽëSX¦9lšå]Â2ËÑ>$¸Ô=.Ã}“ÒÔT&»K®«Ògfæ¹e¥:8È2èƒÜY8œ»ì|ÈÆëCO»Úœ)L(ž\¦™³¸üDÔ4ºCÇeTR­ÎìÎE–œÐÇd»Ž9Ù_!½C YFýe%$ÌkmEùÍ–*®:!ï>mF²ÑÐçŽC kÔÊc\“Å¥bwù6ÑCº3©Ì ²ŒQÐ/í{/LÙ>gIè HãlF”!•ˆ¦!—³ºCn_«dw Dk¡'‰0x\Ÿdw;A ´6ÌÞ„ÿþeôÓ•>°Œ| ãàƒ’£Êh ß]⚺Lß©°±ed›÷Åaªîªò×w%G'ÙÃeŸ¹S:á0&ûîò3x@ÄdC¼S(þ‚|TÈa3Dê]»RpèêžirV´÷Ø—0%µL -/HU `2Ý9ØÝb°úïL¹,8H´'Ë"7qÃú‰É7$U5#Óªw×;Ð>»U…B³ ER"’QþJÔäGh[­aðÓ¨ggœÜV!Ðn©â*;JgÓ¯fL§Æ‘ØmÓû®ò»3gÕ˜z‡ôÅ–Í¡I¡NÙëŠ\7LY ð£=MV5¦¶3¢W1¼cÉ J&áщ À¿»VG3‘ -$Ò°ÞáÏn“³+xí1¼d²w‰3MVTš’7A )™9šÛõ9ʉ@e˜´.Ô¿»xõ.Øäk dËè÷¼IÉչ㓺©ÚËÎpN -˜¦3÷W„iÞFfl¹£;/•¡ÔÔ§$ò˜š¡«ÞÑOÌèÆ£¨]j-caˆ9mÖ¤Dv!±JR‚À -KxkÎ)#„@'vrèNÄïˆ~.ºêæwgL>80òW¹"¦ëZÆûˆ§fJSwœL¦­âs͉À€:f4̘z¤d¨Ë,•2¡áwv­wå#bÁä¯oÄôdŽNMS;6\‰)}¹²Jvç”’kÙ™€Ô›€iÿ –’ÕZF$Pº[»;3Âïá]5z·…V^ñ–¡:ðuã³³kÇVêxO“H®ùÆ’ý‰Sœ©C¸Qb!3<R™©~é÷»kÀ𻅼ЉÎÙ-Z<À{…´:Æ -¢,ƒínÞ’f)3P#Ö|]®§ÎÏ2Žw§ûw„͈ãõn!ß™h0co—Á(¹wí¿ -µ¼à'9ËRy`6¦±õ98™A -0‹UdeŸî"°Œ1"¿k -ZµmAï˜/ÌhAB ¢ÌÒT݉öÊ¢ÙèáYf|Ïd-#Q,C±„CH¤-ße - t˜A·ÖƒçÄ é#¥ZP”V$,ÿöñëâÖɹ¨•nZI9+ sa\ȸ§”€ŠìdR}jXF7*àÕÇ·¥’kXq¢|hVEvНþ±éà~jWE6(ûàÔÇ·¦“€lZDUgz?Óŵ£|iVUÊ’¤¶È¹¨–ÄgU‰ítaO>0$\o‚ÞÒÄBóíŸò yeSÿïçÞÒÄ´wÏubPбŸ‹xdQ@1%(mïɺ©—ƒp]LæÜÏÁ°žŠvcå»*åÛÏÀ¯œ‰ubOM_r…#ýѲ¡óíåÚο®›ˆt`N=/I[ÕÏÁ†™«¼ÌØãóíäÚο;­š‡s_M<."6EWþhVDª˜…qÙ̽¬™…r3BRøÔ'4CTgz ²òìãØË¼«˜„p]K; #ìê7FWðiVE6ëãØÊ»©—ƒo\J:,  -s`N[n•§åÛö¨•‚n[žŠwd` ¹§”mZH8*ó¡Ž{g?PbuˆÉº¨–ƒÕȸG1›®¾’~kXG7*èßÓ¥’~kXF6)„—ý(5à +9HZl™…Úο¯h®œ‰!,©ºÉ=´¢{gTC4&±ŸŒyN`s†þêáÕȸçÞÑó zfS£²Ÿ‚Õ&3 yf ¥è,6EWi}£ÚÍÏÀ¯†sÈÕà^Lc—©»È¸§+² yfT‡ä -endstream endobj 26 0 obj <>stream - -}Ïþ0Â,ðcv‰œYlù¯ŠvcP,:K\ñµ=M_äTðÞ| ?Pbv‰À¯‰gz¡ÉVh|£´º¨þ*7GYk“¥·ˆubOɳ5þ·ÆÁR!-ìþÏÁ°ž‹wýþUh{>Oatˆ›­¾Í¾þýýüüüûüüüýýþ %2ARd~dwâØÊ»ª—„-üüûûúúùùùùøùùùùúúûûü0 ‚بB­JÕÌ H -€à„1–Ó Y FAŒ B X¾pÕJsšE¥PHöÄà…ƒ©Ú}AùzGÞÙs;o1¹;)¿»»Èí"±Œ‡€+î}å)•øGàØÃ'=—ëø¥!(è}c*Sòë­û‚zø-8„ar»vÐKoÉÕ;º©âÑ52£èÎz¨Ü=‡ávíZÐ]ÆO^àö6¨’ ÕÕ/È›¢D|ì¾ æI2ª!i¹¶“YöŽÆ´Gràk@LÛto»yrg‡ž7@`û.o‘~2;¾¸WrˆÅâR]k÷“ asaìÐ;éÓPM©OqKî^<±@y˨‰濫‚4¦‰‹ÅäD—d„ì/ʾî úÂåNƒÞý(ŠRy (%ó™Ëب±¡ç[Æ{ˆ¢©¡jLïBºÒgcRýÚ}Á~w×2õ ÿ+Ä:›<½ %î»ä•P‹!qÔ˜¦!ý fL2]Ѐ¤8`1n÷'„u'ªš¿Däy?Õ" &Œ°À†1{åÒ¡VðU£/$µÞU0£r|¦úMÜî N z7E¸ÑøÀ›îÚ¬Ü öz#hŒ:Sf¸¢E8<œ}ÆØ™ëÝÔ-ôZÐE‹‡9šËcöf¥HG©Ïg¤˜?äÄJ eµû‚ ÁtÇ”-l‚)†"u«r —qŸ¤cIÿÅ-°ãbª££RШég÷ÿ„ÞÉ­’jœ¢š/nA‡^ÆÕHVÅÃS’«yTÙ}*¬“Xì¾ m¡wõXRíÏj‰Vó2З±»ð©ЂhæO¢©ÆØ}Ás†Þ!«æHµ{h¯ñ2Ø}3\wG9íÓä“qαû‚ŠBïgIu[­ËL¹ÆËÐú!ÍNÿ¼˜éIJù:©3PAA5 ‚°û‚ó ½»^!Õ1;Ùåe©kÖ$x\ûu~Ôn1Õ¤A»/x8èPjkå¡OóÞñ &¯®ÔOHL·^†y,Ò/G©(ç¾ËnÃÇB÷)“”Ý=Vͬû‚ÍÐþýA†d&…IÆBÊëcßvŠÃàÁµ9½ŒC<˔ݲâKè b+ƒ0+§î ªz·Õ³¬µh­ ”†‚“x?J"£ŒJ"í2º${weðMm| -VO8û‚*RfIpwWTP8Ž×3q“Àw#;Ì«‚öè2ÝU1XR'¥ð3`@P<ÞdFhÀо¯”¥›2‹Z&¦‡ç°÷2R&ñŸ‚${/ö|ï¦ã1$9§Jv9P‰à:Ö,ôÎÌôrÅ%©ÈS¤è™¿$ý'5HÓï?lxL ð0áó•‚DwÁƒÞQ2Ž:P ù'H'TþþbŽƒ?(P—¤‰Ñdñ(j!ì“­ß -©¾¦TSƒžeAwŠë¸ÝînÌ®‹)êÄ´è7™@·îºŸ¤ÉÔ¾ùÑ H„aª›‘€‡ÙŠ!}Ž^‚'F–YÐBÂt÷ól•Ã$ Ók^öº ÖQšcRHdN9¢U¦ä™,…Äòàš¡ïQ~þR”º#4è]¡NÍÏÈDÆFûP-¿ì5«ˆ2!n Ì?,ÇþbH“±d|ɇ‚äàÞSÑȇk– ½3OíY“Í“ÃpRpÊ6âà w4i•¤ŠJ‹¢JÀRËî˜hTt's ‚z×%uªF5áÿ毹‡jíÇîŽA>ª»S…ñ2 -WC1 -o±»€ÐýÝ}r™ ½P‚l À·‘J›¿ú‡j3épR:Íæ´“¥4­gzŒ -è€o‚fgDóW|¨öÉþ -CF4ÕÞ& Db¸­Òkì;²JEw…Þí£v¦kp¢ñLž~€,£ÐlÔ^ðwKš•Z^\1ãCò¾¤‹ù†ötg¢}*ºÓ›AÒäàî€RYRña½O«UݙՋ[†ÐüÕa ×bª -²‰É°F2ŸMTtwŸÈ\ƒéî/ê°å0a);TÁ ´™lööŸK[@2©6Ák½gçš•ñ©Ñëê­Bï†RŸ@ Õål m¬ÒÿÈèâŸ\ ÿǵšê1.ël8â9‚ÈXUÆÈÃÐ;0Ó U|ø7— ‘êôI É}S}±=ø2\æ\*ºë2ôPB‹¯äæö”Tï.ªOYÛT‡Íˆ¶'iqÅ^§È:ÒÀô´‹†–ôN§¨µ¸;?~Rn“'f0HõB"Mµ‡y÷ªºñÞoGÎðŠˆîêz—„Z&(‡$­©îušæIÛ€˜TÇiªûbÉr kÆîbÛ³.vˆVQtGùâz—aɵ^û+—Ò4ñœà/ê±µ IsØ]ù^Q•,¬‹¢;¼Âݲ*jì-PÉ>Õ&Sd‡2`W•!±!ìð°;Âö—EÚ;:wû£(º‹F¸»a)GÕ÷ø©–F&')CÚmªA%-L¯Åëà2­Ph6Ÿ.¤rÐ_^±“v3êΡ¡ÐoyuW7S'Ò…ðÚTE %R†Äýu|n ©?»k¢ Uöèл¤,Ÿå/L¨;ŠÜdŠéOt¶©{/7¦Š@@†ö?4Т#XÓhïtÕ…4Añ$4¦»eª§gRwž¬@Ü‚/Ë^ÑDá#7¦¤eOu€Ý9ü 鞬$gBËÈ6oü„h=Õûúùø÷ööõõõôõõõöö÷øùúû„˜ª»ÊØâ뻪EVð÷õôóòñðïïïïîïïïïðñòóôõ÷IZm”§¸ÈÕ8Dz¡zgúø÷õóñïíìêéèçççæçççèéêìíïñóõÿj}¿¯ëÛwdQ@2îëéæäâàßÞÝÝÜÝÝÞßàâäæéëîñÿ¡Â±™«¼ËÙtûúøäáÝÚ×ÕÓÒÑÐÑÒÓÕ×ÚÝáøwаÀÏÛæ®¿„-òîêæáÜ×ÓÏËÈÆÄÃÂÁÂÃÄÆÈËÏÓÿ­¾ÍÙþþüûùöóïêåßÙÓÍǽº·´³±±°±±³´·º½ÂÇÍÓÙßöñ”*ïðëåÞ×ÐÈÁº´®©¦£¡ŸžžžžŸ¡£¦©®´ºÁÈÐ×ÞåHº©–EVi|ïççàØÏƽ´¬¥ž˜”‘ŽŒ‹ŠŠŠ‰ŠŠŠ‹ŒŽ‘”˜ž¥¬´½ÆÏضÆÓÙ̽)7GXÐôðêãÛÑǽ²¨ž•އ‚~{ywvwy{~‚‡Ž•ž¨²½ÇúÖËÀ´§œ†}vpkhfdcbcdfhkpv}†œ§´ÀËÖ2ÏþÛÑŸ«ƒxnf_ZVSRQPPOPPQRSVZ_fnxƒ«¸ÅÑÿ#/>Nat‡ =M×n[âØÌ¿±¢”…wk`WPJFCA@???>???@ACFJPW`kw…”¢±¿;L^q„˜ª(Ç·¥“kYº«›‹|m`TJB<8521000/0001258,ºÅ¨®æÇ‹¿þÏ1MÓ¿û‚’½Ë •´’z%Z¬+t}!,Ð^H`š ÍÔ¥0/Ýe—·û‚)«¯.½ƒ³~Úo/`%¦§&­jâ®Ð&?ð¨k B°@ kFÓ_Øé0ƒ†x_0ˆÀÝuã/áq\E¢š™ÕU{!›i¶™–îîÜkdP§;ƒuw3¦=é^ðñÙ*ƒ‰ênwLhŒ²ê¶áPúcE..JwàU 0èí|Á -ƒÞ•ËÂü¬ 2¦Â["WoÞ4/}à{”«Ý'Òþ:ê€%¦›l²”Sç Z›a ÃZú.^¸&u‹¼MΘvºÕ¯6Mp¢åE£ÆÔž¢†àœL]†aC =¦¤ÃÔÝÔOèÝØØ¹ª©éy""Éû¼ NôŒé,~§¿ì¼ Y&þ¨Iîu¾ Tt—–i³n¯°Ìu,HˆªlæZïHRËñYOÍ,—¿vœ³X*–ØÒñ£5Îêq m{÷—lz'¹'ýaÏH[唄³wÇ@úË/Õ­<ÿdW¸éбüõôb鮯Û0BÝÙ•?«w˜•L+=t÷tzGô¿hØåiƒLE©»¢>.sn_Ú»ø[ É!\ó­tGý)¦sµQácë'Îë|¦·Ýp -[¶qDöŽ/¬òWFúß‚ò•ËJw½(7I¶ l¤î¼o>AÝ(0¶`^Ü}A·~KÈ­:é#î×Á~rWì8rA@L7ótÊ'n÷0„ûÔÒÙó!wÌDµÎ'ò±L¶Ú¸ßg$þÖù‚£Ú«I£\ÖŠÛÈoš»GUvóäÕót§Ó=i^ô.iÙ?Àg ùVо…‹!m͸âûƒACj$° -þ!˜T!Ú}Áëêl!$¯Ñú™È³ý9r¢ë]t*ÙRÑPMS²œ&ñ¸)%ÂÔŒ!1žÑQ “sÜH—„ÎlÙ=N'{v_ð6Ö¡ˆý˜qÄYëbíEïžç×€”ñtP½b¸ƒ(1½B(õ$-y‡n´ú« Sâ|6v_0°½I†ÈæÇ ZÖcöTg¦wfí? ‡)âìaO_CØÅÓu‡ÑÇ;^ˈFcuD6ÉŽ¸Ïî j\GKH5ûqÜbO2 Ãv@ïNÕ»‰²èäze)¬i^ÎaÈÝ °XTKfy 8ÉÓÈL¤µÆ -)6µ Ò›ˆta*ÕýÓ)ÖþÙÉ$1ÐÐ$ +9J±Ÿ‹wdR0?Obu‰œôp„åB«óò›:×Wp\ýcÉéexŒŸïÿ8¡³ÃGÕÇû -!'4DUhé€ <Ž n[I† jd÷òÏYþcÁ°+9IZn×u#ÂYI +9J[o‚tý§•„):—ÿŸ­‹ziYJ<0&BØÛÐô¥E9óÙ¼­žŽ#*Ë)ÚÐ͍˜‰yjåý9Ì¿²¤•†vhYL@ùö¤Ûº¼¯¡’ƒufXK?þ0>OaŸ‘‚teŠÜ7ÿʬž‚sÄþcvŠÿõòíçàØÎĸ«ždw‹ž±ÁÐÜçÿ¥ñìæß×Î÷«ïÑûÍeyŒÍ÷ªWbÏ–¢&J?œƒp{Ž>3'4Cüy -<rdWJ>3)!†i€rdVíߎ€rdVI=3)!¼ -6þcÖÍ·ªœŽ€rcVI=2) ËM -6¥þ1‚Þ¨’ÝHC€ ² -(!a! -‚K °HŒf)Œ¢ !@„ `rñaNëOO†Ô»UÚEü¨þxð£êF|,øç¦¿3øxWøjŠS߉èÝMz‡Ì*ø(bìÓÇ$´U"žè2€:ƺx24ÁžQƒ‚k´È¼£‹áîˆõAî¹æî“\Ɔ‹¿,ð -–H{ázgU®¾KWªzH”<¡Ó]ïKdÿ¾i–ƒ¬8d·Öºk'vÂ>|R¢Rß­ÞXw[€Õ^}@U°q*¦nÃ¥â!ÄÞ¨Æ4E6]jŽïD "ÕüDƒZ¤=¡JÊ(F½³sè‹s-¿3}.€h¥gH·ïP½“›Mñþ5ógbLqT@à÷‘ðÅŕ޹TÄ,;íî;Í wjµR€·5¨€E4º¸n'¼ºc÷I×Pr[ƳH¾óÆï- -cF)èÉwò†íö›æ$ÉýH\ônm?¡@ÁY¥›þ4¸Bø¸¼;Àð¬Bï|-v,´c}#‡Ö…µZ3ëõíõ§öX 8&}‡6pwôºPAq‹iQ­®N]dTƒº U©d=V/ Lr£•<|)|çtÐÀº£Zòß2l¸ŽõA„¶¶U/£ÑŒUm]‚¥ÔëØa”çYý¥ðåú.–œÑ%ƒÞ%¹TY É½ ‚´Wn¼»îê]lFi¯€÷«¿0³ËóK®ïv6OœÞ5m¯Gâr{¢ÇÀfÌΚkaÃfüžÍ +IüpH‡m±^âèä¡íeÞUaYÖw\Kµ6´š°3bèÓ¦»»¬è.5ðH<¥ÔòÜÖ;'.ã6e› -A‹› 7«ªt¼¬ï0¢n kç… wn¡üÏGâ„âL%¤Àa-‹7Bˆ«ô7*Ñ_eÀtÔQ/hP„‹­ïPqk_å‚3—ô>¦œPS[ØãAGš›Í*±‚þºo0¥D]T 9 6ôjKåÖã[ÏÆaƒ¥£mƒ0¶Ò„ªð>v’¨ôhPê]Sùrà\ …¨¦ìN†¹Q¤Xê:Qñ¿ÈŸóð(Ú ¤‘G ¥#E^Gs…¦9ÀÝ‘,M½kÊy1¦á ‘ŠhœˆzçtkX‡=jJçbŽ~ô`-ƒŽÎÑ¿ˆ„m…jküý¨Ææÿ¨Íé]S;“#\H®Á*t¾:Æ8*Ú4®ül]›?ñ±§‘—é%%ʇÙïL $­@ïȹÀGâ­Šî| -ˆOTl*Õ -~ýñ -Ùq<_sì(‚• ²ü~²Ä,· -jú·Y. Ð’ „b½‹ A*ºC>ŽVìr;LßOtq0.ŒY U±³þm¦‡Âµ÷AïÞØ4·j£ÃD ,V€¤3ÇdK —†å¯Ý—q­ut˜yï`~­)øBTpzkÁÜÙ–æ”ônfcé˜Ôµ?<2r cÿÉŒO×FŠ1••F‚.a:\ü\WŸF½`¿´:…1HYD\’‘¬;ò:èè/øÔ±«LJš&‚ö!Ùß6F½xy‘!„Þc¢‰E[LÑ_è¼Óm´É²qd;¡Ä˜Cä˜;?!CoÊíÝô.Ø&@ûûá?Ž7]¨ ëÐtÔìUð’–dÿ¸¦Çº”œ½LÄZy -ïá|л*‘ -*v$>ôU.8«7͇:ñzÕ„ÎE’-xàçA¼dž9ñ¡w“m úb†ó¶Üú’ qt3¬ N_#˜ð6«¶j´z@ &£š9«î3µDfE¾.$C *0k†`7-H«k8\Ñ]õÛêr)®¥Aïæ×å]IPg!{CÓÔ;§t¤î©Ì»Hˆ3ÄQ×°Üw°ùE½ éV:áú}YÄe Òa°²§!š¿Í²Çb,k±SHWf…R¬(Õ¨Vf(C¬àéÐ}å¡ùrœ¯GZ§ˆÒ…ØÖ×ñýÈÅÛ»Tæ:_ø•„ ô.XŒý¹3牳}  nÁÊQÍtÓ ,Ô ÿ¶qcU–ξ­›‡tcÖͶ©œŽqcUH=2( [n=/ÜvëåÞÖ̶©›pbUH<ºÉFXkÁµ©›~×tG¸ÎëåÞÕÌÁµ¨*ÈšŒ~pbTÿÕþ€ÖÝÕËÀ´*ä§ÕÍs`M -Ô€Öo°‰v¬!öa (ò^5ýÐÁ…µó†_‘íW¶ -_~þ ÕÛ"ôÛ*€ÖþF·ÿÁ¹NÐP@‘}ùd­"õy:;ð }iWÑOÕÇ·¦G<1?}¼¨Á>z'C*ב †1a„‚€ Œ€a€5œäÊßr˜<¸&å«÷¾K‰4ƒõÜc³”.ŸPË_ca”²v¥$¿ú®v™/c×òXÛ¤¯€¡3ò Û,-JïXs„¨J@hOÊÇepõõÝqÝ©…}.‡SüÅ6¼\P؆ÐÅN;áJSñmÃÒôÝÇ5(ìJ‰®úŸA×éc¬1åÄBÜ0ÙTÕ¬¬ ÏÆeèöÊà“Õ:Nc¬}|Ï!{VïRCirç )¢Ä~Û°À„h82œ¨Nõ]t'*p°L*i]­ |æ—‹¶Ð¤øì…wö® *ˆAPº›„™°ú‡5ƒ—Ř•܃¸¶RùS"KylŽhÞYÆÝE›jH¥…¢)+õ±<4Ü:¢š8MHм[ CÄì³wF†å±ÙÚ(Yké2YCœü¬ô B‘‚Hg´»´è_eˆn¦äfâ4C>5ö ºÊóו‰k¯¨ï¼D˜Òn烵Æï« óï ‡‰’´PÊÙ¨ BF}÷¡[òÐL‘¶WN9†Äƒ;‡À;”)Í`P_dÏ_OÚƒ¯mT˜Ž~’bЃ¤)þ ìí–©ïüò2ÛB"ÇÂ%”‡ˆ¢ªd aJä6„Nó.(Ž#E42"„Ìac`QïTNón-†D´” -V'¦3æRŒ)õUŒ.#¼; îÖá^?Þð -—L[ç’V2&žh-ZÝD`€—ûêÎIÁg5*­ÈÞM1¤wyÇ7õîc»L\~áÆ5¹5‹)„e²/%SŒFÚIYCq¡BúºiÖ*Ž4pÑ^]¼œz7°¥Ó”´F¤Tl:qTP1f¼¸!KA÷å0l:­è%cšÈÖulÀ»æ©wÝ­&ÅÏÙ&Ò#ÒÌ -Æ|œÊXzá¼:£Ri‹u+¾p1M#³–þŠ”š\Íתwæ«I±ÏjECá…ŸÐN7c:@Æè{¶¶ÆëoÖê0;ŪÛ|—!j°êˆ®/裸lßB_y£ã¢_—±Ù¤dT›÷+©ÞI¸H5Ü9Ñ‹ÞöæsdÙ2Ö§å‡\hµ!ºØpíFõ¬×˜§z7•ål×n°XŠ~oE±Ã\rPÍœ§qj™åFu–\†D:;í2È’RìVcøÓîØa`æÄEç$›Ž³ºh€æàJkSFõ„Wª©«bŸç/sKz! ›Â* -MU0ãߟOÒxö“¼R’Nkļ˜·êrKá¥D¸Á÷É!1‚¾º÷žÕ2‚­ØZïÌWF@e·DSÉ›ë1 i€ãaéô¦é5dÀç²àx+ì:°r•Ó˜Uï^‡++g·Js -¸búz¸FŒîÔcCDîBÂ&¸7ÐvkjµG+°e*Euw‘òÙÃc§Á÷9[n}+×;0‰£t¶ìÉM@ uaÕŠ÷„0Ë%‹Þ54[Ä}¼FØ…Uœˆ"ª+¯Ô5Npèh©<ÇXâ!´}zž2•#–0öä‘,¹Œ\2µK¸@Ô|a´¹æ2#;Õ» wª¹QôÛ…!mg©¿öå(*L‚•Äž)ëÊãetOmɧëÖ2å´]K&FúK(›!Ö°ƒß•[1³fø¹lš`à§Ê‘3V%,°ö·÷Odnlœwu9/alžx¡º»…UÝ.}'ï7&¯=yRÊ5²Q°9Ò]ôç(wÛΈs%f ÛÄÀ‚dÀˆôÚ³œB×>컆!wÒ_F©ô*׈³ Tqšž¹”1ûZ·|k•ëLõÒkíår«ÙVúN€n_`“ÃDîМå!{fóË@ÑžWgwm5µÌר˜¨jBp(Å4CQ“¤Pµ,•¡.¨)yç «Š”µ ¥ ½‘ë>Ò¥ð×±qè¯ï…ìC|HÉÏ; °ªRÚS·½­NûîjêÝ| CZf¬Ò}ÄB¢õ:*ôØG|«”ÌB“+óå Íq6ÍÓÐŒ.¦ÞÜ}Bœ· P_b˜ÞŠÖ:{³SûÑ2Od@dö#¾ƒPº;3¤Ly^扴׈ƒÂ;ÕËÙ¥%dT· cL"ãÀ2 hÆñaþx=9Q¾äZMPä(~aˆ8«¤ ïLí×fGðÝËQÌ &ÝstTÚŽ7L¬H­£ úKAyÑ]gvŽòñ³;Ÿ- -aþ² ­o˜QtÔY‰xþW9/¦×”\G2>߉tMóÔjß^ó„„|šV9§†Û€s…ËàV¹ŽUŸï”Pô˜Aótw(¹Ö÷*&è¿ ž˜Þ–zx´˜²‡nJ×}õŽ«=Q‡¤Ë@ý‘X£Mí‘…Ô#à³"O.ìò屎M¿;¡¨w*±²8‚£fÁXï _¤ Új -57× çO7@‡ï:wWó…EÜõJ¢¢JwÔÖOÃzµÁÖ‚k_#Јì7;œßuá§Ø«äEAPo¸‰|i£7''?¬]`‰ÛÀN Ãy vÆW/)¥‡ˆ\?§œ`Ûzèxe=€òÀ Û,€ð|²7 -Ý9ùyu,,%¥¹y ßÙõ.âb)±(yCø°*Ƙ ôY š^t‘RU.ïjÒ½Ôˆ4€z7€‹w.xþ´`O¨¨­ÂÚâaoKf%vŸ ÙMù0P¿¾;A‚ǹÇ’@Dp–½’”ô:ÆFìNø4•ï®Fùú.aéµÞk­cJ¢»‰È\~t±GŸ:™à1ÊJ9sž7 ¾»ÿÄžr/°ËrLd;4<&‹s;'?|¼ÝGñ]·GYT—Ã6mF…XoŒ´uUUÿÿÝÊ;A%ñ‰T0µ¾S¾4ãLs»®QC'ªúŠWµ,ƒoø[^£f~fÄPõg+ ôocÈ»fõ”f¨_º“ á9µ±>˵c'&ð‘.8è;Á)3ÀŸÝÁàWý µqbÑ=+!C%aCì= tåý}®¦^_”‡ë@å])Ò»Pjd  ¨ƒ[ŒŽêR|™´#ÙÌ5à‰jw‹FPAB—{FΓjœk¸Ãžð.é]|e¨£±¯lNŸ“£>ê($põ)•KÖ©K˜ âZGþË”(áÝFÒ»5ÑŒÉ #ÜF`i‘$áFDìù§qŒVù¡§áE–˜ÖQ~ -מ*ïÒ’ÞÅØ4½10=hÊ8…ÉOƒcH§¿†$í«žî$ãàyòDVëC+{Ö‘pö¦ò¸_˜&hBðYÝ"¼Èº.AÕùäÂ[{‹ïàÚ5òdוòCòúñ%bO#';ÅÛ4,2x\tG¤8K«ÂØþÁÕ»pÃz*Þ®ÓÆ$@úÊ{G éId”jî’¦ÕLÍ{¥”`Møå]Qé]¯ - B¦—Ó˜+«áú${¨ÚVƒ†ä¹å2äg¿‡” ð.¾Ò»4Õ˜KðTêzXp 9 f´ŸªYƒÄõh15–j¡±q˜Àà3ÚÌ;ÉÒ;±ufÿ“P îdb Xþâmè -²ºR¹ÄѽŒÅuÚw.£H(‚w¤¥wô+¥¦‡!6ÀjØŽ ERÇ@¦\}ÖJÈo†ÔâÑÒñ AHïL—Þ¹±`èB®ClÖ.)cjr?-ȼ ¿?ÁŸejÞM/½[¸i÷½Ãða؆š€}ÌìH'<£÷p†bµˆÞÄÔçA ZyyVj&yÁôއÁF~ÈvTÌŽ(ªÓ´Œ,1ÈJâ¼GD´á§j¦wö­£z²Ïï%Y„)éü´¨Rrzû†yW \Æ ‘³ä]Ó»fË›› ªÀǺ£°¥»R‘{ÐÝX…p¦¡Ý#8Ø™B‹â2‡).y'dzg©611¢Ú¿ ’wh½‡dò/\fJ• ÃyNb«äžéÝü -õÚ.9†ØpU?¾ä_ ¶”Xö| ‹è:)„¥ä§éÜbbc·üYÚÇJêNõëXͱóŸäyÇXd©ÞT“™·ªIÞÅšÞ!H«4Ù¹FtÂOÛ(v¨»Wbx~lËÃzliˆ‚ÚfIÞQ›Þ‘³Ï© 2j(`SwþaÅ€ù$[ÇôK oÙ©yâFònÜôn+7†¤€O’"¢ˆÓ2êŠ,TÂãª/)8ü}6HÞ œÞI¦ÑŽîöþÄ1Q¨„|ÉÿTå#Ë«ç}0Šñ°aH ’wìæÜÝÿz>‹©—n#`p3"fðÏFñéÕó°…¦uÕrý)úÀÜ#ï–@‰k@QÞñè¡hŽŸ/ÃŒéÇ@?ëôüÊè¼o%áÈ»m§w×Y\­ ÃÊæ)râp슩Üðš3AE´”0&Öó×—käÝáéÝÕºþJ•2Ñ&t›¨»ºoUM¨NÏÓ§7U1eÈ× ç¯ÁÈ»ÓÓ» „{DVõ^Á% “¦½Úi<5÷¾5ØÚOÍSo‘wÛ§wK®fDá6ÌüÎU@Ç”®>’à*—‘ö™XýJ‘wIPïvP ¸<ÐW,Ó§9¦Î”޽vÀ6}<JWП®Ñ¹9‹¼#twV†ú‰ô刓êƒÇ–’¡Žqw³{BÜ ˜_¤Éa"ÒÝÈ;<À|çO­Hªè¦+´+ñQ¨ &g%qF5.@×IþåÆ%ÛDu݆¿·­‘wQ¨wx,d¬Dƒ `—Ô(HO‡ÞåÊOý·¦Zz«äsÈ»:Ô»‚–Î^ç¯#i&"…^Ÿn&½P¾çÖ$%CÞuD½ Ü@c gÊhì òwµ»q{d†©ÿ¦{‡jžþn{3go*ä]PÔ;è,u‡A R×ܹêŒa!iÍÅuŒjêšýï-BéÎònÏy!ÉØ}²Ë˜&BöëuLOþŸ®t˜Á0Ž5îL+d½,Z¿Ë-… œ¿‘¿wÕQïº×D5:Ì/lÓÆS²L>Lïh¢7á uåÛ/`u!AE”EÅ;©w¤ÖEvÆB„0M>´ÂË'ÔPö`8È¢2xÓÊwÍG1U·XÝÃÉxâݘ§¤œ®VN­üDô®¥}àˆÜVU¥„`KÖÒ"s¶ ¥YÂÆ5?óîTêÝÅu4cƒš‚híʘ£o¤þ)TlEÔº:Ïã*=äßïÎ!–æh>ɺ2"/=N_ï;­›ÆºÊèÿ6›«˜:Üèÿ)»9I[r1‰‡ç–ŽÉv‰ta“Œ-;L?Ü ¨•‚n½¬™†*7FXwÏ-;ðm=ý÷r_7FçþwäÈ2ó¡ëåÞÕËÀö€+ÖhÎö©œýÀÚП«€qcÇåÜÓȼ® ‘‚sdâ©×ÌÀ³gXK 囋{k\NA5+ÝUDÀÁ²£“ƒr¼­|(ˆÔVG:.$JsudS˜ðîçßÔȺ¾þ˽×!?1êã„scTF9. ÝÓǺ¬OB6_q„—ªºÊ×{‚†¨2¦$€² €@ p†ã`’Rô €( -ÈIŠa@ø@„$2Ç¢¬:ò54˜è6ÁåÔvD¤q‘hcоõ3 /Õóô.¦Ø2y†(b–$/CšªBß%Œ—Á&×DYí!óæ®d}”¾gž'¾ÛØuh­z¿‰o¡*¹zW|¡.Mm~bUùè*¼Íº€6Ø„¯tÅ‘¯‹)S¥ÿ -[F´TwûiÎÃå„t¦£­n wržÈpŒ¯ÊGG°6+3)yRÒSð»Áÿ=¸bð¼ ‚JîÒ×ùú„Æ õWˆGè]ÖæYùèάâÑèjûÃÇÀ‹“|Þƒ,¬Bè#ÈßĶGá¬z]=ôN?i\A FWK¥ðÄÌÿÓÅ3 -¶R¥u1D:Àª<{LÙxÞ†ÿ׊çÄÿÆÄò›Òw <Bï$!66ÈÝõü™/# -'¡«^ýPÙ!hãBV¡ý%¿€EàÜCµoÉÅÕÐÜv[:u wþS壯Ø:ñ›â2%(úÇCõhk®Jx¸yÃ/üJñ4ª±¹pvÅ ìË3ˆ¤ô¡*½0¤»û+J$€c•L ’¾†Gu£CnA3¶ž®€ènüzL쯥UßòpZ× :½«&…’#ˆÝqR›\{j ¢äwþ u®O$3¹Á5üµµŠÜì÷ñÄ&! ÿÔÓÓ`˜ÓQ wöŸdUw•ùID*M¦njŠï,˜d³f×~bÒÖ(+unJàtbŠ »ªµÉìƒlÐ;¥ÒêFØá~vg"ÍšµJ80q½þýR)äš¾º»Œz nc„ÀD½ëWew& ;NY¡zµžQ’jpt#õKå˯Ã" §ºƒþ8Ñ­ÒPm­Ü[Âewam)9Õ¹-»˜òµfìlY›ìzï2³ÅddsTPØ‚²„_¶§ -FuéDÄê„ô.' -¹„cmÁr‹â5rƦA‰¤ X±¶/ìÚ¡wsÓ°ãi˜b©ä›á–¾7&+úé7З‰ÆÄSg¦=‘ÌÞ¬ wËÔ)–þÂÔ]…C©!Cí‰4Rmg:tŸ#ªbrg]½cGƒÞ]"êi/ ‚稞©ö¥lù¦Ï&ÅB\ry7zÇ¥Nlr“‡…c½s5B…e2÷˜g-üU쎎$ZG—qË»¡wVºª)¸çâls%q­§2ãŒÅtÐÆ?LL'[Þ- ½kÔ;)«õ“Ìs,ï0Wç]Õ°w$ÕŸhLŽS;=Ë¥]¸Ý\œ‹éWË;™Bï”X lb•TŠÆ$‘¾p$·õÞã” š%¸²‰©MË»n¡wl *]àœê´ƒ>ð&‰3]¥N l{PS\c¡´ì SË;ÉÐ;ìP52'2zÑÃyLád²¼¿Z`¥È©“¢“á0Ьr.íA%k~ï,ïò†ÞY§T-=è<š:):Ǹ֑$U°âm¹ÐÔÙÓYÞYëNªxLÕÕ7re=6 %²B Yï$ÅE4†ìZ’ëo*K,ï*DïØè ÕÞÞÅ‹lgçjÞ@À¹qÍuu³6Óx²ˆ;7³Dõ¸“|YÞõˆÞX]#jÉ”€îÑ’Ü©Òø.ãÞùâ‰Ù–ßpÞ? Ø2l’²?"屃å^"ýF^x.çàÖ¯[‚8’óy;(A2¦{qneÁø#Š2¸PW åX¢w¥Ò¤§»Ü~Æ£Ò'ay¼Þâ9L´(¤LàXŒF*¢Å4¸òŽŸè£µ¶\ ÀoV@c禊ˆ¢—Q™äºä©de–ÑR+j¸ÆHµoå]Eï©Jìo;­Õ¾€,Cºò†¼MSW ?d!ôLvÁÌ|…TOìoõäÊ;]Ñ;äTeoV°ž·0!'h0Cx )W=Š)%|î^æO¼ ’¸ÂCµÁÊ;œEïlU -eÊÎEØßLô2ìG¶Ÿ¡’àJó€8ŒŸ±Ê;ÿ¢w¨ûZ#Q˜›‚5Õ·ÛÏöwf”Â+q”ƒ'UÂV¦˜¿èª¼31z§5ulãU_&•ü¢ÌMý¨½´xô2RYsîQLÍ{Q4ŒT\î®­¦é­æÂÿ*¯ˆQ<3ÇlJ©e»sL0q%$97Y#Õ=)ï€G¦»hÓ(dE4ZHØÎÁ´¦–‡whYLþÖɺª—„qòìæÞÔɽ°¡’ƒteWJ÷òìüú÷ƺ¬ž(Õæùöó<×Íã18HYk~’çÿõå¨v‰ÒÔo-;K7a%7̽,ÞþzýJÎ+ -÷óìåÛÖ*‘cãÙ_Üë". ¾ó ôŽ‹,ÂϘµŽ©x€¯^Kíß•¬š]^2:5³ÍGÊ&ï¢â†¾«NzçTÈ<êŸâÙôz¢ð:CöØaî~ù!ÝHädä"=¤OD8€&Ï*é;Á¤w8Á”q¤§Ä”¬cÚÐG XqLõ–JfffWwÔVâf··Ç­!+}ì5ì½ ˆ¾“Jz·`$[ÔØ`8Cß1µIu/2ÖËUg[X4N.$¦—c…t¤lÜ-CI÷#Eß’Þ[%©‘(q™1ÒlHâ}—qšÙ IÓBMGÊF;…2§ìFB/úŽé1z¦(ÔÄqÚYdFü"E(¬ߨ»˜k:NÓùZßS))ž¶Ñw´HïÄ”S†äþ•k¬å%#+„ȵ¨+¦{'yÞ°…N…2#0ã8úNÒ»=’†—Å¿Œ6™A‰ÒèuÂ+E‚@rÌ/ã6 &gÙ·°‡ÆGßqÞ &Ý_¤²¿]&Ù{¬Œ$‹­˜¢3h¤ïžÞÅ–í¡ÓB™ŠR‰ñ}Ç«e|æ0áåH˜Ða†‘ôÕ£wòN™~^ -a˜;*†ÔWP}äÊ=rœ(¦!dP©eG -3 IßõŽÞ}IbftøÊ@a憞oCû vª‚IÅ^dö6Ëœ(ú¯ç*Ì€*}×9z7¿*3V:KDŒeu"þ|ZñZ1@mü“@w¡Çx˜‘¶ôßèÇg©2#³…Éér—y-q½sdö‰žu¤f¤Kß9½ƒœFebðBH"´é¼–Xè3êŸå•{= ¾¹Ï· »‰­`點ѻœÐÌM¤Ç|t9¦‘ð?³õ”—Qjé~šadŸÍt7™¦ïlŒÞ¡z!$^LÅTXÓ‘þðÄ:/#™úéÓ´rÇ9Ü¡!¦B„é¦ïÌEï-Ûð…,ïiJVÛ©ŸjÍ#¿L}ô3ÑuGÓlPfœNßé½_Î !qñ¦ÔJáÔ¿!ÕíkKž&ºXÕÙîYŽÝM¶0ãðôZÑ»Å2•G½˜ò‘êÞϽ¨‘î¾ý{át—ÓRjµêcìAº›„3ð§ïjŠÞ½@È…Šß2œ8Dð„ŒÿNðe`ç)s"«†A ºpaù¢eð * õ˜èÐKê…P‰%ä”ê"5%Bµ|kÅ뼸„Ê º«ß„J*þ:¬ ÕZÔwl‰Þ‰AçPÍÙ/„¤X -§žÇ—ÛFê\ÇSÂÞç.£ŸÎ„å–×E¨ïÒˆÞfÒ^ ±@43¸]Þ`›‘L7™ñBpÐ?eÙo0'œRßU½›kÊŒáaUeC -l¦¨@%;‰ÊŠÝü"5¸ +JˆjÅÔwå¡wL ”jƒÈ>°;¾0$·KJ™@gø¹óÉmÈx@TËSßU½³5ÅŽÈ&¥D8¡ -wÓ–â ]¼,ght÷-þVàšíǤúNnèXHZð2`p!;Õ 6 šßJ쎫–rÈÇöYÖ‘A›2ZUßu†Þ}Ãc²æèÍ.aÛe ~iÙÚ|Ÿe9[oXÈâjÕwËBïÒœc0×ZFGžœaØD:dwïÛˆÙÁ̱ý£&îøó[;Œ”Ÿµú­Ð;Cæôh!úCfÕ†1R,åØþ½6xÒî3®ÍOήBxën퀺å1ȨÕÝuwèÃz'¦DψM^¬ IÏ{>È •)=¯äCÖ5犅 ).÷ËŸDLÌZôƒÐ»®ü êáP6¤“È -ä2êðuˆ~¤S¦nµg^Lù§EWo.f°ïʃÞùU7$0Ò´îÛiÆ jí½>P©ä«êâ+TFý$ !ûßt–3ù1xá;nÐ;“ÎÂù&€:<ÆËYùÛ½K¬¼@ioI9Ì -ùë±LÊ –éƒÐÿ^ °zBŠ¡ŽûíÏ·ÜÙÔV¶‡5#„ç(½¬ -d=#ò:T䩹/$\@€rç¹¼TÐ;Úi6fÚàHùˆÀ”g›å&3U”©EŽcпõªPGO9ã­Œjµp8 îN§sXpw'cÓ q×é/ÊL}¯ÃÎ%üb0ÝÒC¡BnÀSþ…;è¿&`ÊÙ )O#SßqrB@ÔDbÚ;Ö¢mè uæßmVý©Æ?Ìä1TäAH`ŒÞpBˆšÛ_L:ïÒwpoë8Ò»ì³;÷x·Ù®½*p±ñ-@ª/òºhÐ;`Ì"¥ò×aî)vÙÒ-Ñ@ÙT|=´FÌð­eü_ÓûH‘hF˦õ0A$îFIaÓÝ–IÁ|L•m/2€ý%³ 8Ì€ÿ -!ªÁ¾o» †ycáæ/AÞAB”3Ï¥w”{0$¿S2§å:J³º<åLQ´½ùÞÒŵ¥xŠ‚×!,: s…˜ªºÉ<:ö¶¤ -ü{l^PC7-3AQbu‡š«¼ÜÔÊ¿²¥—ˆyj\NAWi|Óɾ±£•†wgYüãÛÒ4CSewŠœ­»ªîéâÚÐÅÃÑÜ>Àÿ¥•…tsœ<*6EVgzà×Ë]M>”#áØÍp_Ocvˆ ýÀ²NöžŒygV NÈýŶ¸šˆvcñìåÞÕʾ±¢’‚rbR€åÛÏæß×͵§˜‰yiZK=½¹¨—„ªœ~o_QÇÿ7rcUG;/%r„–n]áÙÏź­Ÿ‘ƒtf¼¬›Ðź­ ’„ug/‘9ô!® ’„vhZdvéŠ)O“6,#:MÕ=Nzö5 $0=M^ÓÞ)5CT½Ë×ÐJçüºª™‡tb".;J[m‘£ö¬ö ˽­œ‰$‚”kÐKDáP´-EÏÿ¿°Ÿ{iþüçÝÒÆò!,ÛáÙÐÆº®¡aÜÑĵ…€ø)‚Ô¨â­C€ â G()dü`0 ¨9Š‚@€€ €HjàðGàaêgK¬!ýÒûJF†÷Y‡~n—pëÄ•ÍÌ;õ¬0oô. Þ ¡_-òFZž!x(’vÏzrª4lˆÄn—0ŸášºZ°Ð0:íW°”éÈ×õ¬…¨´oâèÝá‹ä·R X±…5à|E bóHA³lC’/ëv 5}ÑcÒx—íè R°âa¶—3ÌeUkç‘ýåþYvcõiJ±B‚K†·Kø†Ó½èÇ;–Gï¢üVòÈÙÃT×Jö>[.OÖT„Ƙ^? Ù… Îã»gmùxçüè]Qó$ |ÏŠéØ×pï»í€R§:PТˆão„EJᬹ”'A¹ÒQÊ ÞÉö0o0·KXÑÇ»¤wó ª*áa bwÆ’zõ!˜ C»3Mˆ¯ -q†„ï°Ø·Kxb!¡{¼…ôNÚN®ãÒ½ÿJ¶ü=OWŒÿ첸I_éGa•[o,ôhŠ)È“h!]óx'—ôNø“Ò±ïr`ðr&+î—1«ò–-R7xB?“ÇÝf§Œ Èãõx×7éÝ0l¼¥9‡$ZÅ{%Ofô>£ÈJ´µŒ7Q!jæy¡-¤:ﬓÞUNxKsÔ][Qdõ"̰‹³u3¤€bwlf×Ap£Ëï|(½«* &Í«qŠàjþýôœGÇÉ Î>«´šÓ¼‘°çµƒê’ÌŠ¶ ¼ãRz'´¸!´.ÊvKs ½¿êH«)Š_½Cò¬ï¨Ñ`Bx4(±f8ÞêÞ!©ôNü›IeuKsÝ–j‡S{´—7ð,á¯,ÓÒs^œG‚ -Z³L3m:¡‰ …$C¥v°Ý¼;Vz7_;› kJ…de¬µÓøË„´A¦þeÉcŸ ï"…Tò¨™×$±ÎS*`J È;KïÄ#/ø;«‚Ͷ<Õ…5¼“ a\œºÌk2Â%£Ú3Ú­DjW~¨‰Õa¼Kjé·¨-b¬OH›ìGþÁL Ú52ƒ„În 0Éñ>ñ5¸ÑN°áúà Irjêæ¼[\ztH¥ÆirÀ/Äyµ~fp»âøá÷L¯[³ÝºŒÈ²m`FuÁ 1 OöÄàRÞ ^zgøïd–‡÷2­®ï)dx˜ñ‘–™&;«36ÆU-Ó’ZÔ0à ,»‹ò@–w4Lï”ù°5Zªú§F¸ø«Ò“ŒÌ@îLÎ#(ƒþ¤JŒ Õ›@€þ–7Å»˜˜ÞY˜¯H¼8Õ.$›•’cÏI;d†Ÿ“°€^ö‚ƒÇr,3ªíÝ쇥An!{þõÜl¼[dz—EgœÄ·8Ÿ/—`!MÂ;ùo†+QÔ4A0c(m3$N£Ú·hg×΃äÝ0Ó;TÓ¿@ÌðŒÚÓLÆsp£˜w^F¥³m†œ¾a¬“N+:®Q ù5®’ÝÊ’d¢›7"‰¤é4Ñ*Æ—!·j³åBB$Æ‘v/¦fè¢E d¤Tž*%¼»=ªíÔkG­pñÙBþjZr8XÓ;ƒ°ËCJ`ã<Š\Ó©©ü ’€|cªmŽ®…T˜AòæŸ×žÐ»ópÏ{ÍÝTŒ™®sG0p­©ûav›ÞÉuŸ„ Rbd뎢BBÑXNúís¿÷ûŒòÝÀ Ê j±^Y¿· âôŽXlÒ:H<«G^íC½:¡ðV“iĸlƒóÆŠ£]й­&FÓΧ+öBå¹eÓ;°¨Ö[ßéuÇÑàšw˃}ù{&Ì ]I¼lngÌ -ŸIi‚m Ñᤱâ!ï¸mÞMˆ½Ô}ëN&׌q)¾“ 3$qÖšµ-Mg {¡;‡eI¯OµÈTË]ñÊs·ˆJXMïÆ ;åcœ'©=kM‡gÐã¤HÐÈ·l/ÿŠöñîH·˜èvš£Åü’5{ƒW4½G*@c2Ùº{-L:4A#ÙÓÔÍÙ|72Ãän,¤aÐ5Åí†KN$tH#@*»B¾KœéÐù› ixûš]'}j¾A•êgب·Èp#güX´3O‰ÞóòÊsWŽ‚Åü}·Éô.tΓ7qHhÉ€¼€þvèñ@ßâ,GQ‡ Íè`TuGk¥f­(¯< ò"¦wîrž¤ÜÏãLd -Wmtíx3.fN]˜šûêø½Rõ˜ëä ­´Ù!zåYŠï˜ÞÉî·Šá•“@Ž©®Ú°­R-°¹Ýn ´%±?câ0h}ËÑ> Z¯<+ì÷-…ùŽ÷Ò»þ rLb¡¤Tó‘f™‰CAçŽQþ¬EÖPÝw˜O&7’Yc~s$¬ã;”Kï\'È1 €T(Q`ø?²ÏûRâ*֫Ά¬;\H+ˆ¨èìø!IbN‹€ áÓG¾#·ô.×yªwbßbfÛ|ì+Öå¹:-KDõÆT^Å_€”jûm_@R.C ßá²ôÎÏ9¦ùn& »ª¹Í^á`t-cá* -¼äì ÿþøŽ_é] qJTâP`€Uy$ËÒYhÇð6¤›Í\R¡M"¯#Íñü–'jõ¨©û0¿HÙWè ÿ>}ÇVé]êí¦M_qƒÒŶO?ãzk^¯¿ÍØö+8GXi÷á×˽l^P'åÜÑĶ¥”‚Q,9¯é­œ -&2@O_qƒDUfyhzŒ®¬]M>+8c‰w_1€“ýœü)6E^öþ1œ­½ÊÖá+™øÏ1,Ñï_G%ýŠ÷ôðëäÝÔÊl&2?OŽ2 -ÞÕËÀ³¦Q"‹­û% ©àÖʼ¬œŠygVF8,ÍÁµ§/'3@O`qƒ”¦¶¥“2&êâÚÐÄ·ª›Œ}n`-9HXé𭜋y枀paS(3AP`rK¥”ƒq`O@²Hž¯¾6*7EŒzhXHƸ©™‰xhY þîçO`ÜÑͦ•ƒrÀ±¡n^OA #.;IYj|Ÿ¯¾ÌØhVF8Áûøô¾¯ž{jYI:.#ɺª™ˆveUF8-#)5BRbt…“o$/M]n€¶¥”õ¢‘%›«»ÈÕyßÔȺ«š‰w¸'2@N_pq¨Úϳ?èÀ° Ž| G”{~k‚4$’²  ‚æ0Ž9¤ü€À@ŠIIŒ€ @x˜VpxrÄê‹æ@•ÇBHâ¤ÕÕ}€Yĵf5ƒÞ‹‘¬vŠ.ÓŽn{ù‘Èôá¹¢ÒÔ= -£wk¬µ#ü¨G‹A(:rÈ3gÔÿæ ÜõÉzÇùWkÞ5^Ú’V5ðÎb=nzQC:„G5ò\æR“eL,h×›:nòË%XÕ1ÅQ{Ç^lzWÚÀÔÍfÂX¥Þçmߊ¦èü:V=Šof$än½S·iÖÇãê,Ì„kM ;¦:RD½šBïLz\üëï.¯êG']f‚j ?Ñ~Ø#qtKE%R£á¯tt>˜CØAïdaãÃC2I䎥ÞA@{µpïðÚ({Q÷óT[oZYHdÛRrš«Sø+„®³E¶”æ6Ï[ô®Á”­Ôßû˾6ÍþÓ|F?Íçf!Žá³µÙ¿¹Hõ¬#l«½t#d„|¹Ud zǵAÙ™N,4ĬÏï7ê27Í{²#sMÛÂðTN!5!ŒÝé¤<ë½¿Ë -h©¾«ŒúúEåù.w¶WлìÞìæ¦éYótþ“ˆ®âøQ‹"ê®Äøw¹¹/£VÄî4‡¤<.‹F»âú«d“ja`ªc wR`³øy+§ÿÿw)úQ¿ ºà˜Q*Ót§lÚ¬c;~Tä&t–AΧ&Î tžÿPH.èè¼ÒÁ‡î ôŽåœã¯5úßåÞ¯@ÎK~ê”Máv7øÞ9° |—¥Ù#ðø*:›Íˆº’”Å Ww¾¸0G€ÞáÁÛ -Ü^©æB.DÂr½]ó Ý<¡ -¿¡ýAtþõ˨Qp˜†GÎ/ éh@ ûôô¡¶B†'»º»jé Ù2ruN™±%’Ñ8msWûD= ’T¡²iF‘ -Q{äö·f0ÂÕ¦Á'èÝ< ñÉêåü€á©`ÆŸƒØR5#€LâR º’DeÓ×·-›Ó%{c—{pQ nüåÚ@œ¡½ ¬‘h¿+«»ôKÎ!²Äc¡Á/ -XÅ’OÄ•"гe¨é\†ƒ,…ñæŽiÚð˜ÆÎ²bkú†Äay½KX¼þÙÜ·J5tëëb^ði5p½]"\– |×@ß½Ï=câÏÒìÊ`wö…DcwžÅ;Šê9¸éñ@ï¤äBÎ×q{Æ×¡þø­’E@$½—¬å%ÀA*qÔ›ýÜÈvw wiòêŽï"ÿp™è3·ºcNÜ@Óö¸&”yB3Î!I´áE× -’Œ «$aÜ£š*Óùˆ-Ó@!Q™8VWˆ Úûc@w<½S½9È´U²¼îêÆo$ÌÊXüÛÅ¥º¯4ñ)ªU£ÝÏñÅÚ}ˆß - Ý5 ôÎz0¾Ã–›Û]“Ÿ–øú“7à?Ñ'Í*)êBbíè“ÝÝŠöξÀ¥ wçz¨¼>¦Ê³Œ5u^ws²ŽvÁñÓª@Æt–jÓPXtê[û)ìî¤t·­Cþ#p+ù︽ÃÄ;ÇhH„S¸¶¥Zö©.=mÉÄ=ˆÜîN®ýrœT9 »lAï˜ìæŽwsœ½öÔÅðTã™æ¢mPÍ€c9½»S+òŽ5è®WY`$Tãݤì¾dsQs&S‡è¯Q=1þJàÀª€Ó]†.8 1—’¬„Ïæ'ôX݆v7¡$ë(±tª¿“FKáßuëåZlô…Ý-+ò®<èl>¼[Úb5¤!›XS­œêW”G¤];Wjˆ¸Qa| ´»'´BãÝ¡wV}xÇQ¨À«*œ³×âZoÙž£fàQš>‚HŸ ã3ÑîFäjÄ»±„ÞYíðŽ›’u´y…úrª2­cÀOvÉu=;ìN¢ é‹x'¤Ð»RùÂ*2#zž‡Ù’qIb6M/ÇüªLÅŠªmGêÏÒ¨6lˆå>—Ë—îbˆ¼“/ô®” ùd›’u”¬ÐŒ£¼æûT?‰6vºü>­;o޲Ru ƒÊwL†ÞA{”¬£Þ í"÷0ùõSÝðX°eÅOša|ƒCEÅÒ·ŸuÌ¿"ˆ¬‡_O-P±ý<‹­â]Ûл# Yh¹2zP÷ï~êaEti2úÒR×K˜QUYñí˜Ãx¢'¾ëâDƒ ñzžPy'vè]8&ë¨暴Fe:‹(§îäHc.„µp‚j޲d½er¬.NH‚w¼‡ÞÑ>)å*}DI3!IX¹ÅâЙ•1lÑÞ¿ «s7o -}Yý•s¤øki&Ÿ1\ã Ñ;ipxá§pBacAGŸŠN?ý$—&¡]j°Ìøˆ@4ã] ¤eN»8dÞÉ"zWèúáN(ýŒXñþJmV];»çrLò±&G«¡.—>7QÁröÂÕã2Àzj(ÒÉT ¤e+Ê;S¢w:j19‹L4CÍÄá],q’¡±½|¬»ÿѰœ«8ƒ?à)\ A3™ëÆò7̯ SÞAMô¬{ #} ”nñø–s€¦øJ†…FÛCnö׆n\Ê@¥ŸÎh×xGRÒ²ú)A”wBŠÞ•|ƒs‹7г ÿK¬;4³ŽûFóªìå´\±¢ –uÚ•Y\"¦¼›WôÎ€Éø1-0rBlÁG¦hgÝUWâ»Ð‚yc·ìµxÇAl ìs3[–7÷É;ߢw:eñ2Â"×A¬¬–2šƒk ”:Ì*mnajRzøåÝY†ûPsv Vátш³x'»è]! A€°â¦dÈ:ŒÜ¶&Ö]_ä×|0 9 -é °Ì8¹äÉUÃåîãiHAò@åÊ;ð¼“Çè]‹sù­,æ&åÕAl -òæÏXŽé¼0 p,.ª¨9åÖ†'¼+tîmnFï|k.`ÅL:·œv7Èïü×`Nt˜O$à[T <[€ØßŽÉÌì®-ÇW4ŽjÊ;iÞ…npf9”]ô$öŒCRbs…–§ÑŶlÌØ 0=L]nÿÌ¿°ŸŽ}l[K< -ä;7ETdv‡Ý éü¸©˜‡udTD"&1?üM^&,«ºÈâØ ¯«š‰xgV3AO`q‚㕃pÆÂ´¤“‚p_OAiâîèßÕʼ­Œzi *„–¦Ñͦ–„ÿ¾¯L+ÔÇb÷ÒveUE8+?ýÚÎÀ±"ÎÍÀ²¢‘€}j-‡t» #þüäÚÏÃþáÖÕÈʽ®ž|kZmZI³Â¨—†udTE7±±¡‘n^N¤åûöòíæÞÓǺq‚””ƒ ß[§äv$'2?N^^µš«º­œ/ÿe*5C&1=L[l}Žž®½ÊM>",9墲!ÿøôðé6jz‹œ¬»ÜÐÃ&‚ÐûÞÔɼ­Œ{jSct…–¦µÃÐú§3 °¾á×Ì¿±¡‘€o^O@$.;HXhy!Ý‹ziYIM\l}ŽŸ®½àÖÉ ¾¯ ~n] -#.:GVfwˆ™©¸ñõš‰xq‚“£³Áþßðê&1>L[k|­¼ÉÔÞ³ŸŽ}m\M#-9GßeÕÜÑŸ©™ˆw BQ`q’¢²ÀÌ÷³“‚raRC6+!{ŒˆwÞÕɼev‡—§¶ÄÐÛãëm¡øÛÑÅ·¨˜P`p’¢±¿Ì× duœ¬»ÈÓÝæìÕŒÚ0¼­o½´ÉÇ´Å/£ +ˆ/N¨kzçUR8\·7Ú`(¾oä/#Óæ‰wåkw~Ô1Ðô$93^Fç+Tƒ¯ê/Aï’ê6?]"ס€Äònšm>жV9Ìà&«»FâÝŠ”;IFµFçÁ}TÔË­ï1“õ^!¢­R}Õ!\T„ÞYF„åb ]Ït¿þ´²–¬˜6Oóƒ ¢&yÂ}Ø]eó§Eg†…0wQg–mt-í¤æŸ"z…ø¢#0WÏ »Õ ÒIãLq¼‚¨5: ¶–qí0 -é—{^F=U+]A>¬>†@è]Ã&й-á6ß*¹¿391mö°[úc‘gç®Ó-¾P}  q^Ö˸°ì0“뎘-ôNU`!þ²'܇yÁîúìåj0â†ûت²ûà[>?Í$ ñ‰¾†R13úŸ´è/BÀ»¥ÍãÌÙ…U(m{IE,ðnoluK›³»l=…™¹-JF÷Î]ÐeþH‰—~ÔIëQ¡wB¦)¿}˜]Ôïª9wbÀ†Yt_B<&@õe>”\ ” wî¨[ùꈙ?àc‡Èø-–½ó5îÔ±„Ë¢ð1{U»#F°íþ,ô¹SÚ2fÑ©_‚Õ_½[‚úèÃÐ ̱'˜CY$‚ñNßkÞ97­Ýõ7½ûó$¼\Cú2ôdÛ•/ÈEp‚ÞulawbàmÁQð yç¼õ{ë³7“ü€?•üvìÛ]ÂèoÞéØ;gøÎ@¦þ²ÙES¡wnˆ_Ì©îÂãc"fØ¿Ä5aMä¶jDM êÒ[álîk$.ëNY¹—[ S?BVzfþÈëÿ¡ z~8±Ø¬<äö¾Ã/—)áZØŽPnµ»Ú%ª•nPMôÕb!2&QNô®±½Ìƒ9 «d``yÙÊ"IÚ´¦&rabw†$=3æT翸/J - -­4¡w¢ÃY ßÇx -Ö±‘c3@Éâ~+N¬oVV¼Ý>BÙ(ȉj øëJl*²ù#ôÎr.C*ÖPH÷ -¯BÕÐðòjäXêz° -¿ŒM×`-Þ±‘cÌa»°¨Öiér×:л(-hn“}Ô'U¯¬ÅñkôYQã r“çÚ4Ĩªã§Ý¥æê´ ¤¾ß*ÃZì8Ë]ŸT§¤ -zg œS‚e=ÿF„®’›†˜N@xm“J'œ„kÞÏ$NÄÇkŠ¡€JGÒ2’á,‹Tþ²· RóG® z‡†kÖUWjl0MÁ5ú4ØXPªvï|fG &"6ñëo¯ð+ŠêÜÁ zÁ›®R]¤ÂhWÖèsבYðn*k<ÿª¼Ÿ)P[¥=);!†'¦giñ×Ô_™‚ÞYoY0¢jqv%R´Ž æÈÇ9Ñiuí+_~=ÇbÏ[›CËp'ª¡„FºûyECrл$ ²p%Î^š4ìê+ß2@ň¦åGÝ]£Öç)¸E´ÁÕÇ5œ‡Àzb¶ô®1RžTœû9úæ›H1ÁyyJulÖJÛÅxÃÅ_v˜ænü9˦eðh–û2òÿ=1‚Þ¹!?Lgï•ï–ÒZŽ|\B©¶4޼\z+Au_oÏz¸©G…j®b'iÐÀF1Ë;©gDô®Y—èHWXܪíK!Ÿ›„S‚ {Eû~¨Z¸£SYàÈÔ?¬"Ðø‘-¹æ[ úÿþ@ï*á¨ÂL0×R­~b‡*­‡kt•ì¼+ÙŽfºqÝé¡ÂÙÝÕ(Í­E…äè°h®n“¡¿"*í w‰CsëÇçNp‡„…©cÌÛtdªµki[¢`*ë­­m…”¥IÙo0æ§zg6»!¥¨é]2Ec1Öª#S/—òÊ/NÀº ªY…ÂU÷ÓUHÃ9K»ñþ¿‡=è]k>.žØÜm£öµu ¥¬È±!uØo»Ï£îw¼‚@’ÁÕ6¹ò†éÓžR7ž,/ˆmÃì wóÑÓ%eš[¨¼‰¥€'&†'´äƒ¤š&±èÃôS» ‰j15¤Bz{îÃÐSл¬CúO–jM‘›ÆóaŒÉeEBh+¥HÑç@É=Û? ½Ç}ÀZ•Ï• Bjk2O C‡BF”@ïüŸ…LSL§“¯µÍhÖëk22µ=H1¡üÝðŒöFæû_ëFÕ¼R¨Mª´"¨ü+¡ô®i·º¡­4V…] 8®õ¼#S鉫E‰æÀ×Ä#~ª 7Jd«û€’½¶*r!ˆz‡L6¸~QðaîÀdR³’‡bz˜bðA½Dàt¿cÙ¸…>7uâ…ËÂ>à+èSÙ -)È—»>AƒÞ)¤f–êa÷¡úÉÆLZUÜhøQ§€®ÙÅÄ“0¦O<*«cªmæ_V±_uè:ãUˆ½kþ¼à÷:6ˆt|¢=X¢¸(‘iË· ‹¤qd9Ò$fÄôþÿž:©!+6CQaqù„µÁL\l|èàÖʽ®ŒziXH:-Ž$w‡˜¨µ¥”‚'3ë+7DRbr‚“£²ÀÌ׊ygŠ›«»ÉéáØÎÁ³¤•„tcTE8-(3&€ o_OA5%0ƒ“£²¿Ùný¥–…ueV*5BP^n~ÔÝæ÷óÓßÕÊqaÅØÌ¿±¡¾øõñë|l]N%/;HVfv†–¥´ÁÎûìåÜÒÅ·¨—†…êâÚÏ͍˜ˆxhYJ=1",7DRaq’$þÛ)4AN]m}¬ºÇÓþraQB4´¯ €p`'1=KYiyÔøõ\M@:GVeu…•¤³ÀÍ3ðµ‘æ©,du†˜¨íçàÖÌ¿²£|œ«ºéá×̾° ~l\Ž'2>˜¨¶ÃϦ•¥µÃÐÚNéÌ×àçÕiYXçíÙÎYJ=6#,8‘ ¯½ÉÔþ³£“‚p'3çß/%!*5AO^ÆÒÛ!,8©¸ÆÔɼ®D7,(2>LZÌ¿° ~m%0Ÿï}m]OWfÛÐ+Ïö¨™‰yiZ$-9E¡°½Ê.;IXhy‹›«öîç…ufWI"+6CP_n~Žž(3¯¡‘‚rbš©·ÄÐÚæÝÒÆ¹ª™"ðëäŽ~n_QC'2=JXgw‡—¦´ÁÍ]&0ÚÐÄ·©š‹{k %/;GUdt„“£±¾ËÕßæíòöøþÐõ¦Qarƒ”¥àØhYK>2'#-8ERap€Ÿ®¼ÈÓÝ囿ßÕË¿±£”Bœ«¹éâ×÷þ qbSE?M[jzÎÙŸ©˜‡vf¶Ä¹«}n^PC =JXgv†Šzk\sƒ’¢°¾ÊÔÞåƒr)4BP`ðà×ÌÁ´ ­»XH“<0&¸Å&2>M\m}ŽŸ¯½ÊÖäÜTF9.!*á, *6DRbs„•¥´ÂÏÿƹ«Ž~o_QD7-#ƒk¨²}53$¢ @€¥Q’7Ì€àPŽGAŠ aA„ÀŒ–6çZrþdDM:UÙ'ŒñÖåp8Ø|ÙžZõ`Æ%(SFÇNc¦:Xš#—Ÿ:£e´~ü$uÐ;7…ÌxÔë_ÃT­u­"3H—3 |h1ã’²ZSˆÎO]”4ßõ$©Ò0µ Õ«¦]Æh{ü`zW„BfØRõ/]Su,‹û£L­úÑñ¹>Ìü“æ}ÂHüK3,ÃŒ$Çkö½2Àâ˜ÜÎI=Ãtª 맦Gwdÿ;z®Œû†H“AÔµ¬ŠµÈDN–—£Ü j V ’Ï^¸'¿Žs× &[•ô¡zTÆÈÔÿÿT½ 5¢Â&`ñ ej£j‘A¯>Ì¡ê)|A=¬º¢´Ì‘ÚZì…{iƹ6L”½¹A\¾²;¤ ðNÈU¡w@¯ì†LÿÓÄî.Jye9û°×åy;BÕ®ÚÈc_¶|ƒK¶”(io í4¦¡ZÔÈ@jAïŒÀšT½Ñ’3Ñ9º 2 E¤@4Çd¡ê^Ö‡n9?]¾Á-R£>¨ýz–_|jv S„ê¿ÿ'½›“ª¯QI¦aö¸žD#_ DÕ^¬—oðËß¾K_†Š¢†A Õ-!ÿÕ -½Íòm¸p¤Ìµ\ #Ü'^i“¡j W¦WT;ý¦š°I„ꙑÿ¡z纤ê¡@ÊônÙ}WA F[¡ÞÑ­ø•ÖRϨ3ˆ|ƒÓ–ß"´ÔfèoCukÈ@é…ÞiaöaÇjÇA«ÜPØÙ¬%Íy“2…ª;z*YRG#ßà,ð—Å]è.·8fÜ ÓP‘ÿ€j…Þi¤¡·snE„ÌXd“˜W!¨²’Æ?(CCÕç -ÒűC*\ü󼧦;IT»cõ²¼°¹“Dw#ÿZìë!,»™*"C˜#µîb:œ"ÓÈÝѦƒki•§ÑÇ]ä“y–êvHUkþ4=rY‰@ËX´¥ ½£¹ód ›-OŒª¿XeZMEé;mî¶'‡Ð¿õ.ªîî<²œ²F¾ÅD7ÖOÃx=qÏR%%Ÿõ„àRõTi£ OHTcäK‡ –û¿qÐ]ÓÜ‘_î.Aþ X þœõÕÚ¦½ƒ÷ÄÝéÏ!Ž'MQL‚ n­æŽ…EÝÔt÷~UBJ -ÑÝ,ƒ¥ä?À´wÐ2Р|¤zçAäî6ªÌNz¥­áÖJ·âk' ßÒ²âfÍ4CVrìÓ&êHâLoŽÝ-êƒÃ³£þ¢oné†D;Þé“ýKûœÔp¦„ewgÞ©vÂ˸A]’àokì8€L¢’Å«ã ÷ŒøŒ™ÉË%Ǭ ºÓþý…åpx#ù\Áff^“ºõ bÓ;u»ÝÒØcœ›õœw=q‡Ú!¥äKì|€¼˜©éð„4ŠPQGèN´ä? ‘–Óì¶Þ¹;ˆ‚i˜K‹’>ÀsÊÓ!Ó­8Uqá -+¯M~¾Î˦THÌ*êX)«ëW«÷ }ò0hLcQ©qõnüCÿÒ°ËJèI>%å±5 º§·-¬g¯ˆ­}°½Bº÷›ˆQHaèN3¯… Õ_ãjO$‘äÞ9¿Á—†{Hç!S97T5©€©Ù!íbüÖâxߎk…0¶Œ -)+Ðò¤M“ó(‰õ.ÝCfîãp€øaâ†V8Zò$S®u,f¬óX -l=”…èfªãèNå? š¥V‰Ñ.éVÇ[C¼õŠéà¶-Ë!º'¥ÙuS2µTV§ë,]Ê,„1‰ÈR±ˆ†Bú1ê8,ìíŒòàúJÕè<{×Px[s_ÎCʉ 'œÒºFÙA2-:CP%ôÁ‰÷mì5‡Gˆê¢_˜Æ -7ÒócT>+Iû¿7×l›¡jýÿ·½{žþû‡?öH>€êinìA šžBB‘4é‚*b(Žegõ Ê±Eƒè]f©(ªiA ;”BŸÆŒàa9ƒlË5<>Lr@>Ž8(°GSöÈÖ£¸TߢT)¿ÃRmÑß —½ó$òÞl4‘ý bŽÉ!…p ¡ŽÜÓ/:ÉŠ[ v2(°¡ûe¸_Gª"xw:LT¿tº "ª¿¶÷Yk:‡ÞÉ2Vy{G™’$OÛ—Ë,8þÅT²Êß.Y-aÀ>àŸ+¦qRÊÓ ³©E#Þe24èqòºw™?:Ò©±`ÏóŸ“©€EÜñtQÙå9=1‘±ºØ6R)XñsÈܽVœO+?.°Kd¹1,ÿ³ÌÙ|7Kïà‰¥ –ˆs‡m$#vf;ЬRÂva>þµí]Qñ^û„Ü0f²e´X¯ËP-M!–ÿѽ“ƒY`£¤kÐRcïoû ëU+ô`âÇŒUÐ/ûj›TâÈIõä°ŸÊØ1SÛˆŒ—Qm¸Ëõ)÷N[þøÆb9Ò Žz÷TÈ -Åm–úXćY’Ü׫¿U§€й¨c'ßÿ¯ö%£©sm8T0u!á·iAç(cÆÅÌÆ×;yAËÁ 8ÖGÌ6œb]Œ¥Ø™˜TbÒ  •ª£;æg …¿Åö2Æþm]üXƆiÒ5ß6ÿ4¡w¬JÅÖ~úC!LoP!\ÀÀ,þ•'&5=8©Ä*Ù^òòƒFR¤«€34ÑîPÃË ¼eHåaz¯¥±î=‹i½»îl­Ð»ì!ÿyKNî[Ì"” -ŠâHÝÆ&‘•mVdǷʰc9B -tì-Fø×Ú—aêòà#¡wWÔº¿¶õ.Æ Ãû¡eš¿¢ý%ê$‹&Ý{ô÷é+·ÛS¯Li%”ù½Åó2üüXƒ(£º ŠzÐ;¨TÍ›ý.c2љі8(þŠÐò ¸jáWÉz}¸Ô|´I(ÞÔÈ»ZJ$/Š›«Ãl]OKYhw†•¤²¿ËÕú~m]1­»ÉòîèáØÎö¨Õ'1L\l}žæteWI=àýz#-7CP_m}Œ›©·Ãþ  *6CRaH 3BO]k{Š™§µÂø›Šy$.:HWgwˆ™¬/´¢ixˆ—¥³ÀËÖ˾¯ '2?ž®}n`Qþ •!+6CRbrƒü(2=JWetƒ“úz -$.;HWgxþÀ´¦˜‰zk\NA6Ï'1JXftƒ’¡éðVfv†—§µzk1>KYhx‡–¥²¿Ïĸ(2=IVºÆÑþåÝÔÊ¿²¥–*5AN]kÝáÙÏŹ¬ŸrcT(1L[j{‹~p#,6AN[iw†”¢°¼îÖË¿±¢“‚r -!*5BP_oÞþ¨šŒ~MZhw…”¢¯¼òéwfWHTct„”¤ö´§š+5@MZhv…“èÜÒÆ¹«?hxˆ˜¨¶ÄLYgu„’ ®ºÆÐ)3@N]"ƒ’ ­ºÆÐÙæftƒ‘Ÿ­ºÅ¨=eu…•¥´ÁÍØÜ‰4?KXft‚‘Ÿ¬¹ÅÏÙáçý}yŠüÜmŸ¬¹Þ n~Žž­»ÇÓ0&#+5ž¬óî襕ƒ”¨µLÑF  F1ÏQ`ð`EIŒa@„? ^Á86Åq-¹-Ž\#È6wêzI±g¥éÃ;3»ïôºI_ ìÜ Æ¨»›¯~•ÌC‚ø^¡tZnO²±ËH'”;Óï²ê6ï€.¬X¶C· ¤ôh½WQèøÒèäb<$º’¥Y'í`/i5 ãŠI -xÑ\aŒmˆwÙþ©û}×½h% •ý—:u…Ÿ%SHÒî`N¹5ƒ=ý;çRN7ñNÞ×wDÑHú‚ÛX7‹O›ƒ´ÄCšrªáõ.qÓK÷m?¥Wwh™ D:€ª×Inmâûºaßu"é‹jE¡MÛÅm6U}.Ìb˜´MÀôB§º jR‚ƒ*‹BB†$Ö\!Ä»Ǿ"é övË63ZuÝŠÊýjx”~˜#Ç‹EÄ“A™ºä§ô¦Rw ÔWkL€æÁG~xWw™fpˆ +I_ÄÇ=cj¾«ŽHÓ¸+c§ªœ¤8TGˆK!‰à î xœïýiF|B&L Rà4}1‡¨œÔÍK †4ÓÔýÏóëЪ¬×jGÕ¶?ç~yöp‚eŽIû#1ñã‘ ³å;»Smp3ÓõÒ¼¸[ÄãÔžÿ¯…¼@u=t@X'ð&è2Ö«¤Ç`+¬}…2a8ë&ˆ5é™ÉZ\ -·{ ÜÕýZ?òúÙ³­ VV–m„~%c¿ <˜r -lÔŽwO/‹Sø‹‡´Æš)ßÁ‡¨P¿~p ¤¦öï•€6|7úx -+ê Å…ù¸óNrûNe”˜Ç+bH+´vF ßéþ~5üj»0IºË@¾KªÅ($Ôh"0ùÔPŒJà•w, ›w¨žÙ¸th #IŠG9ù¡)á1v¸ã°A á•Ôe¼w–G®§± -íhÃw÷l˜öœö; Z Çœá Ûµ•mF¥¼'˜wù-[vÕY€-ÚM\( -­¬4N¶ãH ŸÑ©>˜¸ô¢î!GshéT^…„¶Ù´"gøTÁÓW¾ƒÊ D§xç“ǶËJj9bW|1'/™²ÿà`O3ÞɩֵüRE¨ãxÙE~ Ó1bå:·B†äŸ>'Vî ö©õÛG-Å»Y,¤-—ííÞÉy^nãÒ0¬EPZßs‚rcra;±TÄÆ“¨Ò•¨ÖŽŠà^Іï¡À¨Îc9rÓðL£å]„(òõ7n%ïNî=Äç4½õ¤U´ðg,í'òNpêNà$w»8YÚ†™!”þ„:é#mø^“ ÃmÌÝ1Ø6° «ïìH÷òŒ[ið®f~©k`‹n>s3ùÅRÀ˜‘ØÒ~ìÔÔ˜ {n&sÝ\w~5|mþÅŒ?†•ÝSZ"Y¾?y…ÈTª?³/ðÎâ¥~¸…6ríy×j¸(a-êŠ×IL‡¥ý,jj¤±áTY=øGFÖWÃ;|Ž/;3n#÷»¤d/Wyür®ê̈ÌÝc¦òNÎþ Ä³FÖwÙ¼³¯þì§àÀ nÞ£,ÐÕ XÙ²}Š=;h^+2üÕ‡ÄÙüù0i£N÷S£X%0‡Ïå#‘€ÔÙ–FÃpÌâ~éäS+ º%û/$[=#'XÏ;CDÍZÔA&ü’Õ#¡C{š•ÇwI;¨ ž@&Sº€ÅhKý2ƒ«,ðZÍ:I¦®`:úFí̱¶àß v¼sÁ-þ¾~”A,9µðÌ“›·9âTÏbø f„Åé Â=´ë/‰S©+ûͱ¸`ÿ–¶’-<]¿.b£ -à29  3nGXEöXm!N…0Õê®*#é_]ö?¤ÙåXªÍŒ0~ýY†Ž;Í3ð¾)—¤Çœ= 0¾Ñܽˆw†r¢0S1ʼn±‘èÄ7O<:T»%ƒ*ÔSM¦ÿ$°Ò,½“) -fý¿ õSh*è -ĵ]+m¬‡^ ;寝kY`]žN°7òKmìóˆa‡TM 2 ¡ì_ž0XOÃm3¾âM¦ò3CÀ Ò@5VíËp]± îcB:´0eû ¬Ìè}¦N¹40ï ªGA/ž±-7Aú¨LI «&¡5X‚¿f+f@ 'ÓR03Ô¸ðËøo®eãh/Ç»f÷~?jË ÓÔµ¹¾'ëıÒaBŽj„"$Jp¾ùeü‡O˜ÈFšøY󇔲§¹òÌ8À¾"ä.Ž*án½Œ Ó&dôÉLç\vù2ï¬6–#ÑúÎ-˜ß´Îf¤ùc]ßÎ…\HF -jÃ8³Éùv»Ÿž©ïÒ -32g†cÒ¯aŒXíeÝ2<çm×4 E?2:ÄÜ FêX¯9¢{„…suW ³¢b8U¶”SŸT“{Á¼ÏìMø­ì*ròÌØuf¶ƒ~õ>Wý2ö¨óû·j_ €Éy$F{Ô… [TB‚ÀK:äv/ [ÜÅ×òÛáØ>×z¬ì@ÁÎ %„À/‹×[ì=‡é6¼ŒÍJË0°?jñ¨siÞE[»Œ ŽXú˜­;Šì$£ÃeFÔ;ÃyÿA«Õ¢®evf¤ 3c õê=ÝEî-ƒH`Ùc’6ŽÄ„Ä Šª)÷Nš0!á¡«a~1´‘@í1%WÚtÍ$Jܦð;3ÂÐ5m£_}À¯ßm£‘/#f -,´ ïÍ.ßGH¶G6ÚÁÍ&úK–Î8äªeè Ú„‰º’/²Yçd¥UÂ+« g†þNbغk;jñÂvsl2¾Œ•;J>鞺Þgü®çËŽNrŒþ’*¦ÿ’Ù+º)¢¤Þ0áCFƒov¢Ç œê½ -Þ%bôöݽHo[ -Ž÷1ô®ù99þœ%õö0Œ˜ìXbä3æ.…£þjÂø m' õN»IP˜`R1c™aë²Ái8¤Ïn/’ˆÔ‰Ÿ£ «„’S\S®Îùq/C&Å9mÈÏüò5àö€ æÓöIÌ%î³à†Þ¡Â$Ë5?_&ç× Rd U+÷òÜ&LLiÖgF<>‹â„Bc…<7Zíaº_† -Ë1…Ï€Ö=!Q˜Ç–ý4¡_j½C÷Eq¾jæ¨Ì€c$”^h pAV­»;ìN39ïǃÖhÆêbËØvïiîò(3´ ¼ÆÀìBï¬ñZf®ckgªv›Z}“lîÃPÁ§N´þ{&<ë´•NQ˜y_mc-c£„qòˆŽÐ; ßL?crv”ªýB€µAJÓU-òuîRÔ¯OßË(buPRkjÌÿ€“…Þ!øx­~d†#RÚd÷õ (vl ¤XS¼Ü?µÚÄ0%fîZ·[S;]$L¿Ç2¬mü zgòÌð‚DkF+Qeowç„8×½AoWépÿ箸´a–NÎèÞ‡ÇÔ‘ÑB_˼Ôw•Ã}&‘ ½ã*Y;‘8œ1V*íÑÃ}=kl6v—z±ØÖÕ6if˜žßJ´e §4AZlªþÒz—TÝÁPÆžpªi—©]"U/S›¯©“ðR­q ©%Á¨º±z‡+†¼¡¼ ªEuN^ËÃñ€kèB ~2Ì‚td8¢@«ìã©î LÃÎ×ÓÇ»¬Ž}mã{m_R #,5@LYûø’‚r!*5Bä¥ 6ôÿ–†v-Þ²`SG$,6AMYgŠzj%0;I×àü˜Š|n`S$-6AMZguƒ‘Ÿ¬ðB5*(2?L[jzÏöò¦˜Š|n)-7BNZhÄû-³¦™‹}oaTH= [hv„’Ÿ¬¹ÿ¥q‘¡ÜÓÊ¿~pbUI=3*!8CO[iw…’ ­¹ÄÎØ HÌcVI>3*"\iw…“ ­ºÅÏØà>KáóÔÊÀ´§šqcVJ>4+" &/9DP]jx†”¡®ç¯ ‘qaRD]m}Œœ«¹ÆÑóïêäÜÔËÀ´¨›rdWK^ky†”¢®ºÆõË¿²þµ©›Ž€reXK@5,$ (¯»ÆÐÙúÎÂK>2%/:¿õÕËÁ¶©œsfYLA6-$ (1;FR_lzˆ–£øÚПª›Œ|l\N@4Yh×àäÝÕ̶ª‚tgZMB7-% !)2IUbo}‹˜¥²½òý¥–†vgWI<1&$.9FTbr‚Ýåúåß×wj]PEb5?JVcq~ŒÒý™‰yj[L?3)ª·ÃÍ× [hu‚œ©´¿ÉÓÛ÷©›‹æìæàØÐƼ°¤—Š}pcWK@6-JWdr½„‘žªéãÚÑÆ¹¬Žo`4@M\jz‰ØÇeYMB8.*s"*3IUan¹ÄÎü¾°WI3(FTbqŸ­ºÆÑø­¡K@6-_")1;EP\htŽš§²ßÖÌÀ³¦—ˆyiHVdsƒ’¡¯¼òÎź¯eYMC9+4=GS^kw„‘©µ¿§™Š{(2>JXgv…”£±½ëæßŽth\PÁËÔÜöòí·©›Œ}n_Q)4ý©„wk^SH= ŠÍ«ŽpaS+5AN\·« “‡znaVJP[gs€™¥±¼ÆÏ×ÞrcUG ƒe¨Ò´J¡™™!ò  à”%!œÀàXAŠa„€ 5“q+”î;üMw’MêÎ0cScˆ63„tã–Þ|G° Ê ]/¼Cºª#̌۟ú™‘‘ûª^ÌPŠ…™²±Ýá†ziû­Œ*Ÿ²Ã>nºF”Ío-ƒ~á"ß}1ì"€H Wµ€™q®ÖàÙôU+Q“é&2ƒ­`[˘ áÖVwh¹Ø2ePaÛ]Ü ôž.U~ÊÊ(°ðΩà»!à]b9»XÕlþ¢–âþè·ê’ wº ›Æ@ ѻ»âU•ʼná]ýqË ˜;Ò¸òÎÔÁw}ð.Û‘¶8ÉW5f†,]lšI_Lo_5Ú²·–‘wBz6\¾G½°ŒÜö£·dÌ›wÝ ßå;À»ßÃLÙöª&ifB$É«'Ÿw}Cf¬tÿ6>ÄÕv„dr÷!þpW²¹Ë ð. y¼ðŽ^ÿÖ@Ÿ-ÎffT"@šöƒ'H"eQ³½B@ÙÄ™cRw¿ðZÆñ¥R!½ù:ÄG~jOêžèµðŽ0ß ƒã1E®¢Í .îî '—°êÖâÅ`Y -,2H‹+‘†pÍMyÆnô‚S¨°ÔåVŸ:[ûjBß=õsÏ•ŒKççg&xY™Ê°›ÅpÅd¯³‹„W}ñ…3­èI¯e¨+¾xV™FH&óÝt;+»^ûð.Hyó)â;.ƒÏ%ºº¬J(rÍÃ7’pŠ’F÷BÕÌàˆ2¨»_Íî¾AÌϬ2!YmKö¨ì$Ëø½w0ï‚Èãc‚ãúNdP¨Ï¹ÆÐÕï\‹Ur¢Ýå¹@b°–ÿãIÒùE@> Il«.ûM° ¼_¾ßneÔLK2¼ Þ…›ßáËç^bU«¥Ê3žuûàÔg„‚÷ƘkG÷\ÛÕ.4ƒErêD‰æHËxðb:‡rºé‘ B:85<®Ùð.ˆ>$Þµ |—¢s§šÕ/bU§ØÕ¢GàùçŠQžƒ³iF*¢B•foNiÂÕVÒ­˜-ãºbÇRÙßj„”ëS'Vï‚øšwøVöï`…Û6Luˆï¾ë; F -OÖ†ÁvžjírìDu`-;õ©¹dnÐì0Û˜ä>uâ‡wA Ê»8D‡û¶PÞh¹pé´Ì;«Z»óº·RRu…Ö†%Ù !ºÂ^ )fó¿<˜&Š–Á2ÌnxD>yWJ}NðʼÂÌHŽÌXxÑó‘ªf§j -j¡:À6XÕá÷V3Q+¶Û5!îÙ!‰°Œ´ -$ÞÑ’wƒ°ª!ß56ff$Aóú_¦"ü‘°õdw°¸'–çj©úÕmJ“ÆÓÐÌkÉϰx÷ÍFÿTö`õˆwA4æMbFm⻼~\×Sxð)^¡rC ß…0)ÕS^ª&£Ë:TsŽ™Éh:­¯Ìº!UåÂß¼2¦ß m`Þó®\eTâ»)…µ; °“ã]d_3.GêH™Ü0Tªf£LµvNÇ1Tc3¶ZºÚ43Àí¦¯dï¾aŸ©†üð.È„y×;¤{Ëw[Â%·ÝéqˆS”í”±VÙcjª–çä³åk”[Ó-T3kNš\ÿGOê¡ 5W‹\ôK¼ RœwT§ ü&¾ëgL)x¤¹j ù¿§£ñký‹°xª9)ÓïZýç+‚«+®ãÍ+ÚóŒ<‘¨›É»eNÏç'‘›Š™xdχ©æ¡Ÿùž'VpwM|‡FÖl;vÁ©šeÊц©¦Yùr5T÷+ˆ¸ Ô"Ìï²UåÀƒ©œiEêð.ÈÉýðîtÈ¿ßMkÛMÈä8ù׉Ü÷¨þËËE4e*å ã´Ù‚Éâ+vîÆ‰ª'l©‡ê.¨¦vwNÑèŽT Û´+h-re–qÕU’¼sÞI ú.¤¡!ðªóµwyçŒ`Έ‡%ϸ@ƒÎ44º“'¸²ñ&xÃ;ùPDÆ$ƒi)œwæ!ezŒDJÞ¸;¢™QÍ}t÷›;Ji+&|šw"óĶu ïNÑÛwÌúú3¾»o*S*øî¢o-÷îÎÞЇ¦ mÕ ª3û¥Ã;M[˜ãšGûñ]-Ið£$4¹»Rú8ÎmźãÉb6§¸Ö¼;îÁ±Admx7ôØõ]×>{«ÆÝEL ꘡òw-ºK‚pÕR‡¼Ó€«5-‡wBKßås`W3)  %/:FSbpŽ«¹ðëæàÙÑȾ³¨œ„wk_SH>!(09C‰–¢­¸ÃÌÕÜãèíñþLÐìçáÛÓÊÁ¶« “‡A7/' #*2IS_kw„ÇÐØßæëïûÍXgóê䦚Žui]RGALWbn{‡Ò¶LZhw†•£ýï´©‘…ylaUJ@6.&"*2;DOZfr~‹—£®¹ÏĸªœŽ[²¿ÊúúËÁ·¬¡•‰|pdXMC9,5>HR^iv‚Žš¦äêîò¬ž Àôûù÷ôñíĺ¯¤˜Œ€th\QF<37AKVamy…’ž©´¿ïÐsd^m|‹™¨µî½²§œ„xk`T2:DNYeq}‰•¡¬·ÁËÓÛéâÛ>2(n}Œ›©þëæàÙÒÉÀ¶«Ÿ”ˆ{o4>GR]iu™¥°ºÄÍÕÝý¢“œñþù÷ôñìèâÛÔ‹sg\QF‘¨³½ÇÐØßåþhZLUcq€õòîéäÝÖÎÆ¼²§›ƒwk`UJ@7.' #ÊÒÚôðꤖ‡xj[IVdsŸÑÉ¿µªŸ“‡{odXNC:1&-5>H¤¯ô÷åÝÔË¿³¥— )2>‘Ô˹®£—G=5!(08BLVbÏ×Þú!)3?KXfu„ÖÎż²§›„xlaUKA8$+3GQ\gr}‰”Ï×ÞãéíúvhZM1;GTªŸ”‰~rg\RH1:BLValw‚Ž™¤¯¹ÂËÒÚàæêïòõ…wh[MAbqõòïêæàÚÒ˹¯¤™Žƒxla‚ÄÎ×à &-5>GQ[fq|ˆ“ž©³½ÆÎÖþªöóðìèâÜÖÎÆ½³©ž“ˆ}9BLV`kv‚˜£­†xj\Nr·ôòîêåßÙÒÊÁ¸®£™Ž‚w¬¸'.p|‡’¨²¼ÅÍÕÜ=Íż³¨/'!+‘ê2:Œ—¢­·–‡yk]OC8-$Vÿù÷ôñîéäߨÑÉÀ·­£˜ƒÅäm‡’§±»ÄC*Íż²7 -‘Ÿ­$+2:C¬éízùøäÞmb’ý\æùõòïëæh]SI@8#„ÐÝ|;DMWalw‚QD9/%Ößæûúøö™ŽƒxmcXOE=4-& #ˆ’¨Úàæ -X峩Ÿ”‰~si^TKB91*,6A® =EO˜£­¶ÀÈÐ×ÝãèíòîèâÚÂÍÁ¸®¤š„yo.“};$*29BK“ÄÌÔÚáúóþÕÍŽ³ªŸ•LC6>GPZdoy„™¤®·ÀÉÐ×Þí¼°£WÊÁ¹¯¥›†{p#DMV`ju€Š•Ÿ©³¼ÅÍÔÛáæërœÕçáÜÕÎÆ¾´«¡–ŒwlbXNE=5. #R\fq{†›¥¯¸ÁÉÑØÞäéýñ•‡ykJW©¶ÁßÙÒ˺°§’ˆ}sh^TKN!'.5=FOXblw‚Œ—¡«´½ÆÎÕçáÙÐÆ»¯PDøâÜÖÏÇ¿¶¬£™Ž„yod[N %,3:CKU^is}ˆ’§±ºÂÊÒÙßýÐÆ»¯¢• ->JVdr›¨µÀËÔÜîêåàÚÓÌÄ»²©Ÿ•Š€=5.'!ƒ’¨²´J¡¡`² € é`œDèЀðX'Aˆ‚B @€ R ‚]ï.ψï>Û°ï¼ê²‚2·‰ÒÆ `.~¶Ÿ’e„ €—§æ -ËèQðnÕëh¨Z0høâL‰¨Ú ¢Þù@¼ÅÁÃøÀËJÞÇòî×làM½@=îåV;»_ŠI}âXäziï;D·iFëÈ2õAïÒcquêÛ)1¬;äÑTÑwTö`åw y¦@+Qî\-^¸;üÒUû+ ˜$ïà#Æwžß)ù2ܧYïÆ ->“€Ùw{¾4¼#Žb“¸•á7È©£ßЄ=g~ïhS?ä.È’y×iXÎâ¾;º_É¿×Áß1½Û¶e“ðê)ÉúYÎ`Íw#òuÇ 3Ç;NTÝ1>ÐûR,£j» æˆ%é;ÔúÐ ¯alRíwCïVÄô0‰îCÀ®Y±¥ô¼³+˜",ØÖtÇ©¤§óW`çÊwnÉzß‘‡ÏUïòõcê_Ô»@Ít J²ôë;™zIäßj.ƹ]†IÁT«Ý0¨2à\øZ÷/b@rD‚wàýúÍø.šLÖVwž^õn~…¬^ñÓ’neÔ\,×Û%+0E¯A - rwΫÜÞ¹S{BÈ]+xľË|ëÇÁTto3vÒ k&×;™JÆ1J–3èuZ}»[xû@Qe”Aènt¸ÕWÚ©9±É»¢ý¦ïBô<Ò0Ã;GõîÓ‡—3µM˨B%e„øå]¥k=Øhq‚< ½"Òž¶Ÿ_tÞr¤¼³ve3»»Ø%÷½¿™KyBYÕøc½S2"é_Ì«Pã;í®Ç¶š‹%y7çnè{êJÏÐûú^¾®¥Iw:$·ÜáÝ:=ßM¢ Æw¥zjT4¼ãû=½c<"QŠr ]ˆa I|÷k}]#´J¼+"´ŒÞœšè¤A¹#¶Bˆ§¿Ö›KèõË;|Iyðk¼üí»£ õŽ÷1Ñ/g8óÆö:hyç5ˆ‘æåÔ´~6›îø#ò½J3ÆåKLyÏå=rŒï–w 1Ý=õîËÞÕßžÌFËǸ^…w^ßµ/ -¥‹ŽµÏ JE¤­ôî -æ‹jd;O/‰#îS5/Iˆªh›º›ÞáÞ2Œç+ƒ?º{“ðîBí;›¿Ê2«n«f`Ù­My×yžs8a&/ÁžHÆË‰*žß÷’c£ÀÀÄߘ¡¤}Â;¾ïèúR6²j5C;çð}_€@ŒÁ2¹ÎªìáɳóÀÌ}è«âv9)žÓ2BÈzºSKx‡|G ÂÃØÕi"ÎRbÞ¾ 8Di¦_}Wø¢jT/؉ÓY#¹ÞT€wd8î£ãz<îÆ -CÇS¢ðŽdøŽÐ?‹"ué•ëÌ|”ƒw¥T}´÷«ãÛrCÀÊw¡Å¯QÖ®ÿ?£…s%¬b¨ã¼×,CjÁ%ëÇÝþøôZ:ÆDšðNW|§ AñþsÜ*íÚÝIñy·Hdà݉¡z8•¦÷.\·Dô€+L\LÞÉãæ. Yn-£2¯Œ²§>HáÉñÝó‰A Íuº»ÒS~==v.F4€•ñÝMm–†aoÑMÈ[_¨WÝx™"ü’»Œú–qrÂ;Sò]ƒ¡fø$¹ö…E¤QÌ4:Jv)TgçCpžÒJlv]'¡¹ïæ­QðÜÂþɾZÆg…w¼å»-Gí ó Q3ΪùöÇSàãÁLÛ3dOžÕå'3w}‹h†c(Íš{@|`îVU®S¦á5Þ)šïd‚ÉÔŒÙhº;ŒºåƨZßRÍŠÿ—;µ’¹«ü¿pÉl_Qá=&`~ÉÝÉZ¡Â»ç»1 -Ä-~¦jÆ£ww`çÉ]W²o8·2mBÌ`’‰,1{”\sIÑ\<øý×Ý_Ð;{2¹SÓ©ñÐe…w Ñw”BDÍpäï¾6ñD ïÀÍŒ(4žßá)%™Ñ z6ZвtBJ±Š3žeÞbit‚©þ4s÷á -ï4ßw -ÊŒ¦²»Ã]Õ¹f†ÑWqy Vþ’ˆbF ©ì— -(¨ôÀ´Í$HQ[eoy„Ž™£­¶¿ÇÏÖÜâçþçàØ”†xj3>JVcqš¨´øõóðìèãÝ×ÐÉÁ¸¯¥›‘†|rgoa"(.5=ENXakv€‹•Ÿ©²»ÄÌÓÚàåþñ®¡“†xj\PD8.!*3>IÜþîêÆ½µ«¢—ƒyndZQH?80*#þ CKU^hr}‡‘ìðóæßØÏi\OC8.%=IUbpöóðíèäÞØÒËú±¨ž”Š(" $*18@IR[eoyƒŽ˜¢¬µ¾ÆÍÕÛáæêþæ’„wi[)2=H™¦²üÈÀ·®¤h^UKC;3,& üýýý#)/6>v€Š•ž¨²»ÃËðóö×h|ŠñüåàÚÔÍŽ´«¡—ƒyoe[RIA91+%üüûú !'-470) ÷ùúûûúø:BJS\fpz„Ž˜¢«µ½ÅÍÔÚàåêîýÕÌ·ªž;ÐÙæáÜÖÏÇÀ·®¥›‘‡}si`VMô÷øùø÷õ %+18@HQZcmwÃËÒØÞþøÁ¶ª‚tfYL•£¯éåßÚÓ¢˜Ž„{qg]TKC;4-'!àçìðóõöõôòî#)07>FOXakt~ˆ’œ¦¯ôÜÔËÀµ©œŽseXL@5,#ly‡ÅÏØßû²©Ÿ–Œ‚xnd2ÏØàæëîñòñðí70)$ÖÝáåææãß  &,2:AIR[dnw‹•ž¨±¹ÂÉÐ×Ýô÷ÚÒȾ²*&/8CO[hv„ÖäÞÙÒËļ´«¢˜Ž…{qh^UMD=5/(#ÃÌÓÙÜÞÝÛÖÐȾ³§™ PYblu‰’œ¥¯·¿ÇÎþçáÚÑǽ"Zgu‚ªòîëçâÝ×Ñʺ²© –ƒyof]TKC<4.("Ÿ¬·ÀÈÎÒÔÔÑÌż± - $*W`js}‡š£¬µ½ÅÍÓÚÐǼ°¤—2)tœ©þÛÕ°§ž”‹wnd[RJB;4-'"M‘ž©´¼ÂÇÉÈÅÀ¸¯¤˜Š$)/6=EMV_hr{…˜ØÞãçìïòýØÏÅ»¯£$,6@LXer€Ž›¨´¿óðíéäßÚÔÍÆ¿¶®¥œ’‰vlcZQIA:3,gu‚›¦®µ¹»»¸²ª¡•‰|naTG#)/581 P…Ž— ©±¹ÁÈÏÕÛàåïëå—‰|obUI>4BüúùÒÌŽ¶®¥, $)/379::851,#(-4Ÿ¨°¸ÀÇÎÔÚßäÎzm`THLXer𦲽ÈÑÙþñîêæâÝ×ÑËĽµ­¥œ2,&! $(+-.-,)&".Q{„–¿ÇÍÔÙßãèëïò¸¬ “†yk_RF<5@KWcp¼Æðóðí“_VNG?92,'"  "#"! - $).4;B§°·¿ÆÍÓÙÞãžE:1( n|‰–£¯ºêéåÊWOG@93-'"  -  /5;BJ|¯·¿ÆÌí‚uh[OCS`mz‡”¡ø÷õòÖÑÊļ”h_WOH@:3-(# %*06ELT\dlt}†Ž—Ÿ¨°·¿Æí𺮢–‰|5,8CNZàæ•Œ„{rjbZRJC=60+28?FMU]emu~‡˜ ¨°¸”‡%.7ALX¤°¼Æ¶®¦ž–…|skc[SLE>82,:@GNV^fnwˆ™¡©±^ݶ¯§Ÿ–ކ}uld\UMF?93-(# %*/5;BIPW_gox€‰‘™¢ª±¹ÀÇÍÓøáÚÑÈ\P#+4=HÔž·¯¨ ˜‡~vnf^VOHA"&+17=CJRYaiqy‚Š’›£«²ºÁÇÍÓÙÞÐǼ²¦™C8")žÒÒÌÅ¿¸°©¡™‘ˆ€xph`XQJC<61+&"#(-28?ELS[cks{ƒŒ”œ¤¬³ºÁÈÎÔÙÞãçź¯£—Š}pdWLA7-§ðíéæáÝØÒÍÆÀ¹²ª¢š’Š‚zrjbZ)/}…•¥­´¼ÂÉÏÔÚßãçêîéaU¥°»õòðíêæâÝØÓÍÇÁº³«¤œ”Œ„|tld\UNG@:4/)% "'+16EKRZaiqy‰‘™¡¨°·¾ÄËÑÖÛàäèE;>I«ôîêçãßÚÕÏÉý¶¯§ ˜ˆ€xpiaYRKE>83.)$ !&+05;AGNU\‹“›£ª×ÜàåèìïïêåßsgZNC90'R^jw„©´¿ðýñîëçäßÛÖÑËž¸±©¢š’Šƒ{skc\UNGA;50+&"7=CJQW_fnv¬³ºÁÇÍÒØÝáåéìïòÍĹ®£–Š}p1:EP[¦²üûúù÷õóñîëèäàÜ×ÒÌÆÀ¹²«¤•…}unf_XQJD>82-( !&*/4:@FMSZbiqx€ˆ—Ÿ§®µ¼ÂÈÎÔÙÝâæéíðòôöø ”‡z q~‹—£¯ºÄÍÖöôñïìéåáÝØÓÎÈ»µ®¦Ÿ—ˆ€yqib[TMG@  $IPV^elt{ƒ‹’𢩰·¾ÄæêíðòõÉ¿´©‘=Vbn{ˆ”¡¬·ÂËÔûúù÷öôÞÚÕÏÊĽ·°©¢š“‹ƒ|tme^WPJC - "LSZahpw†Ž•¤«²¹ÀÆÌçëõ×ÏÆ¼4>HT_lx…‘žªµüøöÛÖÑË–Ž‡xpA;60+'#  $)OV]dksz‚‰‘˜ §®µ»ÂÈÍÓØÜáåøú£—‹~reYƒÌ¨rœ !dH@@d˜r 8 @2¨'Ê  0Y1 -B ! @R-Ó`ð©m9W¾™»?΃€K¤ŒkMî 2e”ç eï<9-ÒT%ÇwÁ=†Õ8úÎ’¼+pTú®õŠóyx?ï²€êí$ü¬:'ˆæÎ_$ jjô¡Üe©;¿u|IΨ•Ô»_c3–Ó» x‚wÉæ«Z¬˜ }´ÿRv½ L]s¦Ý .š•rCX.¦Üù¿‡| +’jø„ßµ¯ ÞÙÚŠ·¢ðlWD¸’ôSVîéï/¿aÏîz=²zŸ¿oÊ0Ûh…+|Ù}„ˆ’à§ì¿|˜€’.;¤™FV”õ?RZ.8-0hî¢vTeJ[˜^EÜI¦fáÎîô1ýÙæ&zå»ìØ;Žðù`ÄbéP’P ßfâíýJ Ö©±Œ—ÕšÌÜÅ´»R¢'î`×q¹#jq±‹á;„ß5ŠwÔÜ3]䏸’/°«gÉÌHÁí•7Æ%6¥™“ûï¡»r¹ V9ín˜2ê¥|GÞô®f¾­eW~W6=ØOD2ßò“̘Tßi×±÷f¡îXÆd*:W©²ØQ½”Y`wâ.ÏÔXMî *Êws~'µÌ'&J×Avˆð¦}…媎—ŽªÒ ° FEèìëÍêïÔ[kÚ]CS§w(P:;m¸CcvbËwN8cP w¥ü.#жïñZÎfF¹©‹žÞ_–"ï¿„>5ù²´;cpWe´…»¡4$P¾#çö­éà¿3þrxQþP@íÿ ‘~é[´†‘nÌl(qô§^€˜v×S³‹2È©îTà14¦~Š+ïô½ËòïF/Ô`M:su°C8Pm*÷ç¦y£ñXÆäS…(™ºÉF_D•aZ ÓÝ1¸+A‹G>«âŒW”ÞEH<¿›Gæ¯û¸G IÏX¾ó)°Ä„rõ„Bu|ÎÂñ#oEHiXÆ¿x>èSc%×î–RF€¸£2"¥ ;Äu­DÌgq†ÞÂêöüŽP#Æ=ª{qîb é”Ó~"qœ¡é»ŽI—Í›V„™‰’a vj'Pí®« 1Ä]wwˆ•ê°W´=g„Ó;ÍÆf4ûwüÑ 0ö.Á¢T­ÌŒ°¨Á -w'ÓÆùÆ›[ æðf—ÂðêÂË ó©+ó˜Áv7kê½Ê(ìôóà¯x,ž<½sYÛ÷;9]˜„ö˜P¸G‹õ2Å6C|µñMœ—’•ácz>uШÙ]ü(Hj•Á”v…ƒ…„Ù“¹ÔÂê›$FÃJýL D0ºD°ÏÅÝݲ=&ýÝrk­!±¸‡³¾²Þù ¡`%œºÔÔuûîzéDe0½~ ˜pÂ!RˆŽ|W¿Ò»B$&±¼«ß±àÓšzßêDÑ(Á>4ÂV·8œ±MÇD~#ˆ(YJ‹îÈŒØÃÜÚMýÊjLåÂçøN¸T·ö¥¨ü]v‰u>Á½…‹ààâÇTÝã»Ö §A'壸y¸Ö1ÇÿÒÎŽÎ];éK u*£#±;MM¼"üÜêRß]Ì.5±û;ý­×œ‹»j¶<–&´µip“Ö9F ØZy%B5(€gK¿€†¿2mî`é•8 g„ý½;ç[¨HÃc[‚‹‹ýÓŒ¸Þ½cíª¥“k[ƒ(®@¦~3¸¹Eå(ŸËN1Éy¬Ä\"úU#Òl8õÎît2NTFÅ7r¡³Ü©c -àh\jÆY"Ä)üN[©°„@Ç‹ïªVî®çt¾ÓÑþ³§MŸ€°~åNq¤ßD…îæëœ:Ôïvëf³»0ŒÝ(áÿ؆Wµì]ÎW38Ã;v:ÀM±4tÿYO-EÞ•E Ò uJqW2&¿»c¿¿Î= ·‚•ï²ß{‡Ê»Æi´ƧédÃ36"ì? íÄãW¶Jˆó¶¨ÛõŒ­ÀBîÊÜþ³=`‰¡TD¾Súïvy7[U‰UäÌ:pw,5Ê4¨¨ÚDBc{6w9Šˆz>,úŸy0­qS>UÏ´SÆå»³¯ywÊ ­õøNþÿqE±ÏÚ uoðxßÝBÉ}ÈÖh[êbžÛwt¿åà©maÛÒ)tôì— -×ïÎÿä®»ýúNþöÞ#&Òl›Á«Å¦ÕÀ®ðÉ!5Z¶6žg#jñ×…]ýOœl= ÌNi*NÛU‘;mItwÝ.zÝ•Q@ß):ïßmq ïú”fÀWÁ@}Q'#¾ø&ÑVbè;ˆè¾îòÇŽ‡Î‹­Í<8+Dîn‰~!tÄ1üRvÇ©‹»Ây§·Ô!"¾Ó> â™6 M$Á6Åã*P¾e‚ÌAÆÇ¾ëxÙB·P]º0Y.,Ûè„Á»C€qŸðKUNM`T†ùî•“–A§4¹Ã¦ï|ðß=¶Ôµm¶á~ô8ÞÁöJs·è$¡Ø@Ñ8 -oöñÂÜyJtêhÒ’¸ñЧp*c¨ç]ïÙfÆÜÁ|'?ÿ ¬šáâÓŒÅ!£qÿZq™Ì­‚é»`?d!æ;—d„Ò5îÓ·jCžÌËY $Ÿý¼³ñ³ %åÔ#¤mžwÕžwL -è»)ô«§³êá¼6,¼U«†à·ü+£ÜwØ2Ï»Œ¦ÍúÜÈ]G§b£ÜÑÅ£S+–¡,î‘)¶;UÏ;H_"Ÿ¾ VžÞ£«xy÷±%¶jðˆ:Ù×¾ díOáQ{O ³óËþ˜šr*¶Ž,ã=•1¼_wÈ#Vû<}§Uë® 6CV«ž‡pnß’oq3YÄ·Ìwen{Øqv[ wŠq`y‡Dèò:õ=ª2dw'#rPw¨ô]’îªM¥¼K”ÙOH$^(> `ò𺸫iߊx$¾ÓÉÀ¢[`ßÿ”'¾­|ÍÖBòz ±† ¤.ß·S/É]oN®˜,ƒá o“Áw‡fª¼»r›A[µQéÚÏ ¾c^ó!ßMgîGð„éëß©;°¦øµù“›VÂAÊ*.±ŒŒÝy,ø·®B}W{w¦¬Ky§‘ˆÁ®wl,ðßNƾ“žžw ÷q¶ßËå,KðL0±?ìN]$UF}É8ð.B|ÇVIå]{m¤UK¡w™[N¡'–Ù¶&ù»çÅ”wÞ·Jã´`[öf?caqw^r&·Äe¨ŽïÔ+ƒ¼»6ƒ}Ü =Ÿ½‘K§%ñ’ê}7úçI)?+Ý¢eT/"•qúK©i§–þ*£ÜMÌ?ï*Ïw㺼[ùœé’JÑîìNq.‡é)mn¤³ ­ev6é̳€äßd Ý‘»¦‚Mrºƒð…ñ%wÑt>…׫µÍ:lßyìòN…3-{m†0½£ÆwÄ¿–ü¦ïJ4ô¼›µÜÈ`ŽzQÞÕPqj3=Ë ¤3—mÃÇ’wêã»ìZp“ŽUçöî"Ô`ìüd293.*%!#'+05;ov~…”œ£ª±·¾ÄÊÏÔÙÞâæéìïñþ¡”ˆ{obVK@7 NZfr‹˜ÝûùïìéæâÞÙÔÏÊľ¸±ª£œ•ކNHB<71-($ &*.39>DJPW]dlsz‚‰˜Ÿ¦­´ºßþü¿7ALWco|ˆþçãßÛÖÑÌÇÁ»´®§ ™‘Šƒ{tmf_XRKE@:594/*&" #',05:@FLRX_fmt{‚‰‘˜Ÿ¦­³ºÀÆËÐÕÚñíèâ‹C#*3ÖþïìéæãßÚÖÑÌÆÁº’‹„}vohaZ2.)%! #'+/4V]cjqx†Ž•œ£©°¶½ÃÈÎÓ×Üàä÷ðëæáÚÒÊÀ¶« ”‡{obWKNûØÓÎÉþ·±«¤–ˆzsle_XRLFA;61-)%!8=Cv}„‹’™ Ååéìîñþù÷ØÐÇxk_TI>5,$KõþâÞ»µ¯¨¡›”†xqjd]WQ1,($!27ITõëçäàܸ²¬¦Ÿ˜‘ib\VPJD?:50%)-279 - "&EKPV\biov|ƒŠ—ž¤«±·½ÂÈÍÒÖÚßâæéëîð󿱦š‚vj^SlýþÛ×ÓÎÉľ¹³­§ š“†€yslf:51,*.Jhou{‚‰–œ£©ÔÙÝáäèêíïòóÔ˸®¢—‹rf[OüöôòðîëèåÍȽ·²¬¥Ÿ™’Œ†yr?:51-)%"  #'*.27ahnt{ˆŽ•›¢¨®´º¿ÅÊÏÓØÜßãÙÑÈcWLB8êçäáÝÙÕÐÌÇÁ¼¶°«¥ž˜’‹…xOID?;62.*&#  !$'+/38HS^jv‚Ž÷õÊÅÀ»µŒ…ysmga[VQKFB=840, 6:>CHMRX]ciou{ ¦¬±·¼ÂÇÌÐÕÙÝàäçê÷XM*2;EŠ•¡¬·ÀÊÒÙàåóòïíÞÚ×ÒÎÉÅÀºµ¯†€ztnhb]WRMHC?:62.* "%(,/37<@EJOTY_djpv|‚ˆ«±·¼ÁÆËÐÔüþèãÝÖÎÅ»`TJ?68BLWbnÆÏ×úþþûúù÷öÞÚÖÒÎÉÄ¿ºµ°ª¤Ÿ™“‡{uojd^YTOJE@< - !#'*-159>BGKPU[`fkqw}ƒ‰•›¡ÁÆËÏÔØÛßõüþõóï¢Q%-u™¤¯¹öôóñïì«¥Ÿš”Žˆ‚|wqkf`[VQLGB>:62.  37;@DINRX]bhmsy~„Š–œ¡§­²ÏÓ×ûþñîéäÞØÐǾ´ªž“‡{oc -q}‰• «òðîÝÊÅÀ»¶±¬¦¡›•Š„~ysnhc]XSNI-*&# "%(+.26:Z_djouz€†Œ‘—¢¨­³¸½ÂÇ÷ùúÄ»°¦š/8þìéÊÆÁ¼·²­§¢œ—‘Œ†{upjeHC?;730,)&#   !$'*.158<@EINSX]bglrw}‚ˆ“™ž¤©¯´¹¾ÃÇÌÐêïêåàÙÒÊÁ·­¢–Šsg[€Ëò×ÓÏËÆÂ½¸³®©¤ž™”މƒ~xsmhc^YTOKFB>:63/-048<@DHLQV[`ejouz…Š•› ¥«°µº¿ÃÈÌôÏÆ½³¨’†zncWMC90DOYíêçåâÞÛØÔÐÌÇÿºµ°«¦¡›–‘‹†€{vpkfa\WSNJEA=!"$'*-047;?CGKPUY^chmrx}‚ˆ’˜¢§­²·»ÀÅÉÍÑÕÙÜàãåèëþÛÓËù¯¤™‚vjAKUèåâßÜØÕÑÍÉÅÀ¼·²­¨£ž™“މƒ~ytoje`[WRNIEA>:630,)'$! "%(*.148OTqv{€…‹ª¯´¸½ÂÆÊÎÒÖÚÝàãæéûùÐÈ¿µ« •‰}qf[PE,4ñïíëèæãàÝÙÖÒÏËÆÂ¾¹´°«¦¡œ–‘Œ‡‚}xsnid_[VRNJFB>:730-*(%" #&(+afkpuz„‰Ž“˜£¨­±¶»¿ÄÈÌÐÓ×ÚÞáä±§œ„ymaVLB8"‘ÎùôóñïíëéæäáÞÛ×ÔÐÌÈÄÀ»·²®©¤Ÿš•‹†|wrnidJFB?;851.,)& - "%'*-/369PTX]afjoty~ƒˆ’—œ¡¦«¯´¹½ÁÆÊÎÑÕçêìîðòÙÑÉÁ·­¢—‹€th]RH>5 .6@IúõóåâßÜÙÕÒÎÊÆÂ¾ºµ±¬§£ž™”Še`\WSOKHD@=9630-+(%#! -"$&),.147;>AEIMQUY]bfkoty~‚‡Œ‘–› ¤©®²·»ÀÝàãåèôõöøù¨’‡{odYND;2*#q©´½ÇÏóþù÷öõôòðÍÉÅÁ½¸´°«§¢xsnjfa]YUQMI2/-*'%#!  (+.0369=@CGKNRVZ_cglpuy~ƒ‡Œ‘–šŸ¤¨­±¶º¾ÕØÜßáäç®k_UalwƒŽš¥¯¹ÃêýüüûúóñïîìéÖÓÏÌÈÄÀ¼¸´¯«¦¢™”‹†‚}ytpkgc_[A>:752/,* $&);8631.,* !"$&(*-/247ILOSVZ^beinrvz~‚‡‹”˜œ¡¥©ÈÌÏÓÖÙÜßáäæèëíîðòþôðíèãÞס•ŠsS^it€‹–¡ýöéçåâàÝÚÄÀ¼¹µ±­©¥¡œ˜”Œ‡ƒ{wsokgd`\YUROKHEB?=:7520!#$&(*,/1368;>@CFIMPSWZ^aeimquy}…‰’–šž¢¦ª®²¶º¾ÂÅÉÛÞáãæñóýáÛÔÌÄ»±§œ…zn2*#Ydo{†‘œüùø÷öôóòðîÒÏËÈÅÁ¾º¶²®«§£Ÿ›—“‹hda]ZVSPMJGDA?<:753%#!  - "$%')+-:=@BEHKNQTX[_bfimqtx|€„ˆŒ”˜œ ¤¨¬°´¸»¿ÂÆÉÍÐÓÖÙÜÞáðíé䶬¢—‹€ui^TI@7/'AJŒ—¢ûóñÛØÕÓÐÌÉÆÃ¿¼¸´žš–’ŽŠ‡ƒ{xtpmifb_MJGDB?=:8641/-"  -  ,.02479;=@CEHKNPSWZ]`dgjnruy}“—›Ÿ£§«®²¶¹½ÀÄÇÊÎÑÔ×ÙÜßíïñþ’†{odYO%,4=FPZe»ÄïþãáÞÜÙÖÔÑÎËÈÄÁ¾º·³°¬¨¥¡š–’‹‡„€|yurokheb_[XUSPMJHEC@>20.,+)! -  - (*+-/02468:=?ADFIKNQTVY\`cfilpswz~…‰Œ”—›Ÿ¢¦ª­±µÌÏÒÕ×ÚÝßâäôö÷øøÐÈÀ·­¢—Œvj_ ")09BKU`kvÀÉÐØÞäïíëêèæäáßÝÚØÕÒÐÍÊÇÃÀ½º¶³°¬©¥¢ž›—”‰†‚{xurn\YWTQOLJGECA><:875310.,+*('%$#"!  - &')*,579;HKMPRUXZ]vy}€ƒ‡ŠŽ‘•˜œŸ£¦ª­±´¸»¾ÁÄÈËÎÑàâäçéêìîîÍÄ»²¨’&“úõôìêèçåãàÞÜÙ×ÔÑÏÌÉÆÃÀ½º·´°­ª¦£ œ™–’Œˆ…oligda^[YVTQOMKHFDB@><;975421/.-+*)('& !"#$%&'(*+3568:;=?ACEGIKNPRUWZ]_behjm†Š”—šž¡¤¨«®±µÇÊÍÐÒÕØÚÝßáãîðüýþvk`VK ÀÈìèæäâàÝÛÙÖÄÁ¾»¸µ²®«¨¥¢Ÿœ™•’Œ‰†ƒ€}zwtqnlifda_\ZXUSQOMKIGECB@>=;98754310/.-,$#""! !"##$%&&'()*+,-./1234679:<=?ABDFHJLNPRTVY[]`rux{~„‡Š“—𠣦©­°³¶¹¼¿ÂÅ×ÚÜÞàãåôñîêæàÚÔÌqf[QG>5-& &.6>GQ\fq|ˆÌîìêéçåãáßÝÛÙ×ÔÒÏÍÊÇÅ¿¼º·´±–“‘Ž‹ˆ…‚}zwurpmkhfca_][YWJHFECB@?><;:976543210//.-,,+**)((''&&%%%$""""!!!!! !""""###$$$%%&&&''())*++,--./0123456789:<=>@ABDEGISUWY\^`bdgilnqsvx{~€ƒ†‰Œ’”¬¯²µ¸»¾ÀÃÆÈËÎÐÓâäæèýþÈÀ¶VLB:12:C˜¢­þþòñéçåãâàÞÜÚ×ÕÓÐÎÌÉÇÄ¿¼¹·´±®¬©¦£¡ž›˜–“Ž‹ˆ†ƒ~|ywurpnligeZXVUSQPNMKJIGFEDBA@?>=<;;:988765544322111....-----,,,,,-....12233445667889:;<=>?@ABCDEGHIKLMOPRTUWYZfhjloqsuxz}‚„‡‰Œ‘”—™œŸ¢¤§ª­¯²µ¸º½ÀÂÅÈÊÍÏÑÓÖØìîïðþ÷±§’‡|qf\QG>6. ÃêæäâàÞÐÎ˽º¸µ³°­«¨¦£¡žœ™—”’‹ˆ†„}{ywusqomkigfdba_^\[YXVUTRQPONMLKJIHGGFEDDCBBA===<<<<;<<<<==>>>??@@AABBCDDEFGHIIJKLMNPQRSTVWXZ[]^`acefhjlm|~€‚…‡‰ŒŽ“•˜šŸ¢¤§©¬®±³¶¹»¾ÀÂÅÇÊÌÎÑÓÕ×ÙÛóïìçâÝ¢—VLC:ŒîìëéèæØÖÔÒÐÎÌÊÇÅÃÁ¾¼º·µ³°®¬©§¥¢ žœ™—•“‘ŒŠˆ†„‚€vtrqonlkihfedca`_^]\[ZYXWWVUTTSRNNMMMLLLLKLMMMNNOOPPQQRRSTTUVWXXYZ[\]^`abcdfghjkmnpqsuvxz|}ƒ…‡‰‹‘”–˜šŸ¡£¦¨ª­¯±´¶¸»½¿ÁÄÆàâäåçèêëíøþßÙÓËú±§œ[QH>6.' !'.6>H‘œ¦°ºýóÛÙ×ÕÓÑÏÍËÉÇÅÃÁ¿½»¹¶´²°®¬ª¨¦¤¢ žœš˜–”’‹‰ˆ†„ƒ€~}{zywvutrqponmlkjiihgffeddcbbaa```___^^^^]]]]]^^^^^___``aabbccddeffghijklmnopqrstuwxy{|}€‚ƒ…‡ˆŠŒŽ‘“•—™›Ÿ¡£¤§©«­¯±³µ·¹¼¾ÀÂÄÆÈÊÌÎÐÒÔÖØéëìíýþÎǾµ«¡—Œvk`$*–¡«µ¾ÆëýßÝÜÚØ×ÕÓÑÐÎÌÊÈÆ·«©§¥¤¢ ž›š˜–•“’ŽŒ‹Š‰‡†…„ƒ‚€~}|{{zyxxwwvuuttsssrrrqrrrssttuuvvwwxyyz{||}~€‚ƒ„…‡ˆ‰ŠŒŽ‘“”–—™šœŸ¡¢¤¦¨ª´¶¸ºÅÇÉËÍÏÐÒÔÖ×ÙÛÜÞßáéëì÷øùýØÒʹ°¦œ‘†{pep¹ëêèçßÝÜÚÙ×ÖÔÓÑÏÎÌËÉÇÆÄÂÁ¿½¼º¹·µ´²±¯®¬«©¨¦¥¤¢¡ Ÿœ›š™˜—–”““’‘ŽŽŒŒ‹ŠŠ‰‰ˆˆ‡‡†††…………„„„„„…………†††‡‡‡ˆˆ‰‰Š‹‹ŒŒŽ‘’“”•–—˜™š›žŸ ¡£¤¦§¨ª«­®°±³´¶¸¹»½¾ÀÁÃÅÆÈÊÓÕרÚÛÝæçéêëìíîðöŽ´ª –‹€uk`VLB „Ö¨sÈJ”ã(…”1È!¡)s€€€-ΪJ%n@ Ȳ¡<‹QÄ Ã@€@„ƒ"êpƒîÆaÁoÜÉŠí˜ÕvV–¥vÞ'¼òð¶/”ð`óKfåïtéIÎr°öbˆîÎɪ‘“û‹WÙeþ@R] -ne¬‡4µ;uÐ }]9 -;®Ú.–²é\»žÔÎÕŠvö¯C¨ñjCñº^óÕéÂK$ð,•J`I$† Öîº!N3­|·åŒ2€)‡¡»¥‰¸),£+zîpßcÆÝ®exY”¿ÔÂã”<Ë/e‰tEБÄÌv4cjõN¥‘yHžRNÑNE訌çÁfVÛú<Ü!·›¿Fk7|$nÔTýåx“+xõ ïåÆ(3¦¬{æQ%¯=>^ÀxHñÆFcÓ‰w Ž‚—cŒÄº3–ø®cEÖUƇ¿C¯þË Ò_^˜»Ð˜•å© ö Éžî|îNÆ —²¶r×PÜÅ×®þ Û™Ò.×î§ÑŽ“ìzuKÁÚÙVé)ƒxF-Þ -ïÆ7‡§ ÞDøn} åaÙ§\ÓŸ¡6LÈ ˆEÞh¢ˆ[e¨Œx%O­ñ\4W@=uº©»Ú‚pgh¶kìÖíºÚÅ7;©“qä!yÎÆ°xQ„7ø‘x‹†7éÁ~÷ã»DßMËL¤„`nŽ–tÃe-©Ä±Ìh“±Û2áY—ÎõñÔ$H­€%óí+}c”v2Îû†»·p¸"ÃwíÎÌvÑN§›Ï !O4Ÿxâyá%þ¯._à}q¯ó;V±w´{7ðÝǦáÊ·cDÚÐWHJ×dì÷W!0K‚ øžšl¾¦¤ÜÞÔˆ¢îB¦Ô\÷vôs·wäµ[¡Ëí‚nMöjw”òÃ{…x¯8Ïv‹ðô¼ŽßõÆÎ¨Œq†øÒëhnDjü«¨þÀ]3¼ºuZ8 Âéøœ};×2b|Ûßd”Cw‰`pgáîx»ˆo»Èáò0¼iXÏ¿¨è#g¿à†…WZ/×^¤U=+Á”Šuh°%Æ|ˆ -|j†M_¸À ‹Q)l#)LÈÿÀôâ!u7½ɵíÔw¶ÜÛ5ÙÎvŠqÃs ^ôó’»,ð%œøï.a’<„YM®²«¶¾»k‰¨ݘƒxý— ÁÏÎ L×=µ'ÝÝ]V—òǹ|;+Ÿ$6w‰Üv¹D2¬m§ik'±]ž*1ÁsDx̹<#RàÁ÷Ýå'1TÛØV½Ó±ê5'}†ð™qX3*%DZ†¾ ¿t·×FÖ]´ÁÝW&#ýr—»Öàî¼›¡…GúƒlªMàÝxɶy8?–¨uÎŒ¡5CˆústÉ+£˜†=5Ý’•pPwéÚ®@ÜQ#³ù»® -àý÷ƒ©ïo†>ž *ÿ×€Ù€¨5ÃPD" ~I⺄{j}º“ìè®gd©×Ü9·]yGFÄíà‡;y'©à5Ÿ©‘1x4agè·w¢°.Z‡mGÛ«K-a„[P-\Áå½²Z‰·ºe¸à©{»”¡w# (#áÞÎúȸHwvYb,ì3øüß™rün£úΘÕ/«;¸ä™ 0¿^†õ|.£½!05iÑs~I¡¿HÌ^µÒ䦧¶` ‰ë«ºc¸+ÓÜiãN¦LX¼ÒÕZ}ðô†üªkÏfÃ+ŽRß®fD‘HEÓ´IŒîÅLx|C:n°É-“îé€îÉ0´p¬OÖÝÔwźÝÄdжæÎýÎ3zî üßy}çpùî§3Òx0YµÞ !ýºsúe5#†ˆd‰.gi¨¬'B:زe<SœµÊPég¶¦@±î -q'övúFb¨G*ƒW#ð»¶hï\Áû‘ÈÚ¤ƒ©ÿ…£Ï ‰¡f(㙑9 ËÃçÖ2l-)²jÑqEê—26 ܉º+¯Äˆóù· û™ÜÝNøíKÜN†îd¹»b -mÛ;Šà»hxt“Õ÷*åV&à3£Ãæ”wèQ‚w`$y`î†'åKØ2Œ^2¹ú)c¸&§;êɰîtv_U«kgPÞïáfäq¾,ÄG͈BR^ž*†8ðntˆsw•½²§­UËØ³v§†ê -Ó‰t·Ÿ Ïpã‹¢S«•?$ÐÐwoù|—|RŸ\0`ÿê1¡äÇ®Y‚8¼³á°ÅWJ¤ÖÓ]“»}¹Ð®Ó§‹ÑÀe•+É[PFp' ðˆ¥a ï4wžJ_0¹lä0EßZÁ3(…wH1¥ø®NÔx“» ¨[† JeDf¦6äáîUT¡»Ô"9CFÅÞx¶Ï:_ïÆbuþ;¯“J@ìƒå«& -à\–Q%‘Йlû|)€)!ts*¸KV› r—ªºkÀ]C=×§öÎÞ|—Bïš*™s!ú˜|6(xGmU÷(5É]BrËP„8Æ@HµOðMeÔ Pî8ž2²Ü9(ã¸Ðº¹²ÑkðzEÓ‚3öÑ;†êê‚]𒬬ý¼ñ¨„^Õ>-”àS·Qe_‚m ÞÍGš¥ó‰Ê 󔑃îl«kàQ,güV|èf¶Î‰ õ<© 6 ¾:œÁ»ÇSµ æ'<:½S]!”t{Χdƒ¾¥;@JS£ïTÆt×4¼dVKÓöræ;5½›©wQ~ÂÙcÃ><ú|#«: -ï Õq^††ÎT¸çAH‘³mw`JÜý1õΓÁ¾ºëNÓìf7g˜ôî„€Çfµ¾‡ÿ…tI8­Å3Ϊ†¹£Ûè‹â<-Úßy·§aLS·‘8T†3»TGtÇÃ<ÓÞQ¦èÝóŒïjÁf8Aê @lø› \c;g«ýþªŽEnx'äªç(‚¹KÇÊè”Ü]gÌ`hê®%wRFÐŽrÀÓRÊ.z·¡Ö úcM¼ÓGf?豪é)•g „wo#*19BKU_ju€Š• ª³¼ùø÷äâáàÞÝÜÚÙØÖÕÔÒÑÏÎÍËÊÈÇÆÄÃÁÀ¿½¼»¹¸·µ´³²±°¯®¬«ª©¨§¦¦¥¤£¢¢¡  Ÿžžœœ››ššš™™™˜™™™™šš››œœœžŸŸ  ¡¢££¤¥¦§¨©ª«¬­®¯°±²´µ¶·¹º»¼¾¿ÀÂÃÅÆÇÉÊÌÍÏÐÑÓÔÖàâãäåçèïýõóﮥš…zoeZPG>5FPZdoz„𤮷ÀÈÐÖÝöõôéãâáßÞÝÜÛÚØ×ÐÏÎÌËÊÉÈÇÆÅÄÃÂÁÀ¿¾½¼»º¹¸··¶µ´´³²²±±°°¯¯®®­­­¬¬¬«¬¬¬¬­­®®®¯¯°°±±²³³´µµ¶·¸¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉËÌÍÎÏÐÒÓÔÕÖØÙÚÛÜÞßàáòóôõõö÷ýþñí锊ti_U9A±õþüû÷öòñðïàÙØ××ÖÕÔÓÒÑÐÏÎÎÍÌËÊÉÉÈÇÇÆÅÅÄÃÃÂÂÂÁÁÀÀ¿¿¿¾¾½½½½¼½½½½¾¾¾¿¿¿ÀÀÁÁÂÂÃÃÄÄÅÅÆÇÇÈÉÊÊÐÑ×Ýåæþúø÷ôòïëæ­£™ŽƒyncYOF=5  &-4=EOYcmxƒÎúùôóïîíììëêééèçæâáàßßÞÝÝÜÛÚÚÙØØ×ÖÖÕÕÔÓÓÒÒÑÑÑÐÐÏÏÏÎÎÎÍÍÍÌËËËÌÍÍÍÎÎÎÏÏÏÐÐÑÑÑÒÒÓÔÔÕÕÖÖרØÙÚÛÛÜÝÞÞßààáâããäåæçëìíîîïððñòòóôüýrh^TJA81)|‡’œ¦üûûôóóòèççæååäááààßßÞÞÝÝÝÜÜÜÜÛÛÛÚÚÚÚÙÚÚÚÚÛÛÛÜÜÜÝÝÝÞÞÞßßààááââããääåææççèèéêêëëìíýþôñíꌂ<4,kv‹• ©³¼ÄÌø÷ñððïïîîííêêéééèèèççççææææååååäääääãääääåææææççççèèèééëìïïððññòòòóö÷üýçȆ{q70)" Q[eoz…ÕÜáöõõõôóòòòññññðððïïïïïîîîîïððññóôôôõõõöüýäÞÙ+%$+2:CLU_it~ˆ“§°¹ÂÊÑýúúùù÷öõôóòóôõö÷øùûêåàÛÔÍÆ¾µ¬¢˜Ž !'.5=FOYcmª´¼Å÷øùúûüýþÿÜÖÐÈÀ‡|#*18AIS𤮷¿ÇÏýüûúûüýþÿØÒË•‹€vkaWNE< 4t‰”ž§±¹ÂÊÑþüŽ„zoe - nx‚ÌÓÙßäý¥œ’‡}si_ULC:29AJS]g­¶¿ÆÎÔÛ౨lbXOF !&W`jt‰ÁÉÐÖùù÷õòðÌ@81*#")/7?GPZcmx‚Œ– ©²»ÃËÛÕÎÇ¿‡}L+29B…™Á¹°§ž”("V`jt~ˆ’ÇÎÕÝØÑÊûxnd[QH@8 )/7>GPYcmvŠ”ž§°¹ÁÈÏ™…{qg^TKC:3,R\eoyƒ—ìÎÆ¿·®¥›’ˆ~tj`W-4;CLU^hr|†™¢«´½ÄÌíéåÁŠ€wmcYPG?(/6=ENWajt~ˆ‘›¤­¶¾ÆÍñe\SJA9$*08?HPZcmv€Š”¦¯¸ÀÇÎÕÚàäéìðòL %+2:AJSŒ–Ÿ¨ÖíãÞµ=6/LU^gqz„Ž—¡ª²»ÂÊñïëÍÆ¾¶®¥œ0`is|†™¢«´¼ÃËÑ×Ýâæêí¯xI $*07?GP‘›¤¬µ½ÄËè䟖ƒypf9AIQ‰“œ¥®¶¾ÅÌÓØÞÏ—_V&-enx‹”¦¯ÐÉ»³ª`WOL‚Œ•ž§¯×ÑÊü´«8#^gqzƒþæËļ´¬¤›’ˆNW_ir{„ݽµ­¤œ“‰€wm:3 ?GOX`js|…æáÝ×ÒËŽŠxne\SKC;&+29akt}†™¡ª²ºÁÈÏxof]ULD< &,Y™¢¾¶®¦ž•Œ‚ypg^UME=6/"'RZclu~‡‘Ôþ>70*$ 4;BJR[dmvˆ‘šøþï%Sî÷ÑCKS\™ùûèË•`XO`òŸ­2Fñ•âäæ>ezi CbCúݾO’Ó½ëä%"튥ýhîÛ|´¸›RX…Œ¤Û‘œê'ùÝ+˜Ï~‡™H—*|» -„Ý} -DAÒM„Í@üª Húß mŠün—/#> õ€¿»ÛNù vçSìʳk,]AýŽ '‰‹5‘ÂU7éðn0º$J*ÓsÖ?ã— 2ý3hMÙ@AªÔà™ng¥o&÷.åwƒà¼c"î]í:›tÈ»*9PÙ+ô¹¹"àÝéž!\kê¸vŒ&ü®zL¤“\õО¶"¢Ú?w-íÍÓc¨ªÆ´üŽis*oy7å .Ícâ†;@-ÕMO6üÇ»#=µL ÛzŠ2àáw<P'‡é{¦uãõw‹H -Fðþò»¦ ×ãë.r6~ç=â4w.†®¾˜ô`Ú]¥a~ç"¸1éÌÈ:‘Ù ”°1.HëüÑéqœ®˜ŠÙîôæf€ø—‹ÕÕ²Þ ï6@+ø¥†Kî²;"Ù»gF¤¡O›)rp)יּ>Ñ«HWŒ2ÿ€ -)cw>•™wïE±þÝç)ïØ—¼þË?ëÝÞ¤’4£+z%h(e8èÂìîNRø¸‘‚ƒ|zW­%ï.ÙŒÒmDî¶i8š¤ÇBqi‚;OîhdnÒ0щ_‡kfž6cN`òküŒèÈE>Ò?Ξ$-pì¹sâ„¶Šåݱ6£ÀrÓ¨2¤Ô2—¶E¡:*£D9ÖÜù].‘Uwö{'ÛŒÃ5£ÊH#+]¶8[ÄLˆLÿ«Ý]°]ÂFµy‘œIñ%F›Wl4’lbýtw–.÷èhfÅEY9çç@rО¢ú„îNÛšK³ˆ/¬I›Á‰7à”Kµñø¥ýêŒÆ>Ÿ¶»ðâ›Tëæ†«†„Í(o„˘Xé¢Dy¡ˆãÝñI …ojf *cÍo‘úD›ðNïJÏ©Á2О2@Œ—-pwÔÝyf?]…ùÇì]Ûš9¼kMy‡ó4ãîm¶/wø›X „·wwå;å":ÓÖ“¼ƒ†üU]ÅèÓèw #ŠæÙÂbq×aúÑMÞ¡Çáü6ã|LEÐ —ŠdiuÒN]d/á¦Kˆ;çÉ8uᙄqš¤"Ò(ònZte3 ^ÕFZµÔ™O÷ƒ¥³»¢79þã@îH|AÚ¢ˆó• Ë#Ù@­DzÚªoø õëÔÒØ E¬áKÖáîªcgw•m‰d%Ó ¶ÏŒá¿™¾óø 5­_óLOE±Œš^ÿA R7rdõîØˆ÷ª/@Žg•ù̓ƒÍèÜ\¢À®Uã6t7 -:µ6ŽPó…Áí«8Ô ·ñ/9*^)XE"èÆ;0qd¦Û£>7±¸CPä"ab7bÿçî6µdAADžQ>Oäz)_æ4–ßÈæÉZzEÁ‰5]óã¾¾— - -½Kvm¡pÔ¢ühêT4 wCZ - qœO2*Ygõh¬ í{ Ñm£#þ9’¼4ZÛîEŸðV.§0ÄUÝ­û>R3ÃW½³ Õ¡ºÓ‚Š ŒìüQ>øN- ÷2êw¶#’vËV»¨ÕÙmºÎôÅ›÷à (<Ý¡1@á]¨ÜÉiÆx%ùT€¶Þ™éééèÿ¡ÀîÐms úú¥£å<·ÓÿŒÇØO;gíºòìºÎŽNvùŽ]"ôº¡º±x<¶Æ3`ÃkK…'C‰4.4:AHOˆþëèåÇÁº³¬¥•„D=739vµ¼ÃÉåéþÆ¿¹²ª£›“‹ƒz'\dluâÞ‰y$  S[ÅËÑÖÚßãæõøöôó🗇wog_WOHA:6¯¶½ÃÉÏÔÙÝïÀº³¬me]UNž¦­´»ÁÇÍÒå·±©¢›“‹[TLE?82Œ¸¿ÅûúðíêçäàÜ×Òͧ ˜‰yq ELT[cjrz‚мÂÈÎÓØÜàäçëÚÕÐËÅ¿•g_50+17=DKRY`hpw‡–ž¥¬³ºÀÆËÑÖÓÎÉý¶°©¡š’‹ƒ{tld%*05;BHOV^emu|„Œ“ÌÆÀº´­¦Ÿ—ˆ€xqia$).49@FMyÁÚÞâåéëî·°ª£›”WPJC=',28>gov~†•ûþÕ§Ÿ˜‘‰‚zr!&+06CJPW]dkrœ£ª°¶õøëèåâßÛ×Ò¦SM&+SY`gnu|ƒŠ‘˜ž¥ÑÕÚÝáäçêìîñíëèæÏÊÅkd]VPIC=82-OU\Œ“š §­ÍÒÖÚÞïùîëéæãßÜØÔ¶°ª£–‰‚YRLF*/4:?EKQX^elsy€‡ÄÉÎÒ×ÚÞáåõàÌǼ·±«¥ž˜‘Š[ #(,16CIOU[agmsz¤ª°µº¿ÄÈÍñÝÚÖÓÏÊÆÁ½d^ $(,05:?DJ’˜Ó×Ûþ±¬§¡›•G.!$(,1y…‹‘—£¨®³ÙÝàâåþòðØ MGB<83.*&"!%(-16:?EJOU[`flrx¢§¬ÔØþüǯic]XRLGB=83/*& -!%)DJOTZ`flš¾ÃÇËÏÓÖÚÝàâåçéì÷Ôoic]W+' 5:?DINTY_ek®³¸¼ÁþéçäÒÏËÇþŠhb\WQLFA<,15SX^z€†‹‘—œ¡§¬±µº¿ÃÇËÏÒéúýþñåãàÝÚ×ÔÐÍÉÅÁ¼Ÿ}wrlfa[VPKFA<7$(,049>BGLRW\bgmsx~„‰”šŸ¤©®³·¼ùüþñïíѰ«§¡_ZTOJE@;7 +/4v|‡Œ°âóùûý÷æÈÄ¿”‰1-)&"+/3JNTY^cinty„‰”™ž£¨­²¶º¿ÃÇòøüþèæãᯪ¦‡|v=950#&*-16QW\aflqv|†¥ª®³·»¿ÃÇËÎÒÓÐÌÉÅÁ½¹µ°¬§¢˜“Žic3/+%),048=AFJOsx³¸¼ÀÄÇËÎÑþùò¾¹µ±­¨£Ÿš•Š…VQ# ‚ä¨R¼Ž!43ƒA² (€Ÿƒ)0~ ðh–'A’b ‚ ÄA€2è díªÔ+õ£Ó–ýE…‘ñ޹;ù¡a›àî=]x%?£Gr Ĩ‚ùn6[~¿»¶ÄŽ ¼ùcb3à£Ê<[ÀJJt)ö wâ»vÌtŸÄÝ”¿à)À£Â±ƒþ‘0fß%h7±°}ÑÜwFÑç£; -»WÅEKwb­•Ž[Cq `wkç -o= 0&8CjUÎpETF󳦂 -ÝþÍK§2^ÐÒ‰t-è(ð†òýð(–ÆÛA@Û¼$û~cÞ»/x‘õ=n¹Ã'ÀžÕºíÝ*¶À± ¿vs´£r*Q†RåBSk«ÜIý*IÓLÈ÷IpfyGFfGL¡è¡„—tNDÝÝ ·PeE¹$¦–c²8£+¹£Ú2Tðbš¨Wýnj7“_µüxðrû>u>m¤îŠøÏÓŒŃmQHca8·{m;*BÁ«èò §™-¾TN¼O\ý^5/g(òÿÜQ: 8`«¹a€u)b<Ü5öÈÝÄ<#XÅbˆúÝyO~As3,=eöW$}ÃÆAÊ(‘dâîjQLb‰êêt9Ž?Ÿ;BÕ+~”àÔE(§ÀF¿C&à‘¦ %Äw+_“2P›Ôvõ+©;ßêG¢?Düca§)ò“aþés:#±’¤”{òaïœ ….güCM)CÃܩꄥ»Â\,Ñéí*C6¹KÆ3¦¢%ì0ð ìÝíä ©ÀcZ£»èÐCé™w•÷N‘>”3ôɘAö=|¦yYü«ÕpjSÒÞ×¶’hžœ‘רc -b€»Ž`ZÂe2j ;’ÑË(F!îøÊ`#˜ˆ…³ù1‘ÄøüeYH94h ª±—1a©ºMl—H.ý¼Òþ{'ƒN#ÇÞ¯5Oòóf[Ämñ ù9aõ#Í|76º²0¦Eº+†ì¢ ÐrÓ­;Ä ‡>-ü“q°V‹Nï^óˆr0s†¸,”~¦lè|—@´™‘»=Ü™øÔA˜t2$í9mË‹À{Zg3ö†ïè¡ö¹³[v¡öøÐ1¢Ðâuwïí4þ+<ðÙ|ב¹ë’ åÀG¤2»zjNÐ]ÃÈÕx>^~àaaµžÌô…5Eò]…ö€w9 Hå[¤tpÀ])ŒîðUð|2ÏÖ!ÿ6I¦¾ÈÒ;ÅÛ¨ ŽªA[¤z«b`EG¸3,3†ÿÿ\½:PŠOàyºq3ÄAÕ“îöä4±Ë -ÿÝUÈôi/t8¹:1¢Q «"ê®§xŽÐ›…Å=Q&Æ>aËÿ†mŸ•XqFH½ñŽë™tæ‹ÙêZTÑHºæBâÌAPÝE¬øíCÊï4ÙDÀÛĬÍ0„3Ð ô»ÑJ 3!mZrÅïJ…onìe -F›"Huç •°‹fÁ«Cèn©x¹þ,9ãÚÚ@µX‚3ÚCïP™·c¸%ÑÄ -B¯®Æ‚x ŒpÅ7 ô¢uw;Ò̱dzGªä–CS¬ßeIqÞJ1_ÄÀ«|8/"›¿ŽRoÁ ÜTdQ=ùVó$ ÙÜp†ÛôNñ+Ëî¤/U]# .DK@`D< ï¨;À‡³–¿òÓ_êywœ%Ø=ªüBMµH¶¸ï4‹±èð|òx©?´è¸@î¾ì,ÌèΓO;+V)/Ygá¨bpÆrŠyð﮺YT¤Œ^T/ê6P4«á…æ«,wÎÔÀ[DÁjP:K¢K8£w-ËÐöw#[Û(Â#Š&d±(÷Uà`ÿ…@ñ¯ÇPv©w€5ÔR§^7£ó1àdï¨ÀDIšZ‡wx\ðÁWã׎Ýn†ÕƪåÃ7¶‰ñwqlʃîìÁž,Q„yé²É)š§È¹Ü·ÜáƒËêªn£&ªdpú¥>êø,Ì»ÀŸÓ¤R“2HÕÎ¥¢K-yûrgÙ4UÅv¾3fŒ Å7À?6Ïû ¬:¡¬×èñ;èΞ4‰Òí®×é3Q†ø·€Õ »aâùNêÞiè‹Á|Ôà¡Vc«ÎÀò–²ö¼$GrzéÛòŠ„Re  -“_#w¶¥AÍåz³ÉcªØì±a'ªüŒúwÞXC¸Ò»p$ÖÀð›ÃrÖÉdJ!~½u`€dG%a2ø ;+õï ÅZRvç3éqB³ç¢Šâ.­€°ÜYD]Ô@ -¯Ûfä_Þ-÷eà¥ät2¡ -endstream endobj 27 0 obj <>stream -GèzÜ*µáèD¦¤$,ŒÄkaÖTeËIj韆ÜåîKMIÆ4ƒ†W©x®¦+Ä\P*‹-¦¾H Šþ<¯ìî­`BW Ò1±˜ì¡so-xšjÖªgJÁwy²Ñ¾hÝÊF9ÔãŠp­ o¢Êp-wiˆê'‘¾S¨ö Ÿ—ßÍÚ"ÀxTÐÕ¥SÄ-†œ1è_É–8XÇ•qªY•ANèÞ Ö>LJr67àµý‰Ð:î×òè«êÒmÔݪ /v¢‚@\‹wV¦ÁÂÞ8$ÐLï]þKvg]|¡)ÃVøÉH=’;õéú¼1†+«xÏZ‹•½ƒÀ3Å©”4T” - !$'+/26;?CHM¢§«¯´¸¼ÀÃÇËÎÑÔ×ÚÜûýþçäâàÞÛØÖÓÏÌɱ­¨¤ŸšwrJFA#&)-149=AEJOSŠ”™ž¢§«¯³¸»¿ÃÆÊÛ÷îìëÚ×ÕÒÏÌȱ­©¤Ÿ›–‘Œˆid_Z:62$(+/GLPUZw|†‹”™¢¦«¯³·»ýïîâàÞÛÊÇÄÀ½¹µ±¬¨jfa\-)& #&<@DHMQVZ_dinŠ”˜¡¥ªÁÓÖÙÛÝàâäæçö÷ýÉÆÂ¿»¸´°¬¨£Ÿšupkfa]XSOJFB>95 - 9=AEIMRV[€…ŠŽ“—ÌÏÑÔ×þúÓÄÁ½º¶²®ª¦‡ƒ~ytpkfb]XTOKG/,( +.26Nmrv{€„‰‘¹½ÀÃÇÊÌÏÒãúáßÜÚØÖÓÑÎËÈž©¥ œ˜”oP "%),/26:chlquz~ƒ‡‹³·º½ÁÄýðïîåäÕÓп¼¸µ±š€ea841-*/3MQUZ^bgkotx|…¡¥©­°´·º¾ÁÄÆÉÌãýóíëêéçæäÕÒÐÍËȹµ‡ƒ~dGC?;841.*'$" \vz~‚†Š½ÒùîíìÞÏÌÊǤ œ˜”ˆ„€|xtokgc_Z?;759<@CGKOSVw{ƒ‡‹“—šž¢¥©¬¯ÄÇÉÞàâãýëéèçåäâÔÒÏÍËÈű®ª§•‘‰…}yuqQM %(+Bhlptx|€ƒ‡‹’–𡤧«®±´·ÚæüùîíÛÙÆÃÁ¾»¸¶³¯¬©¦¢Ÿ›˜”~zvrnjfb^ZVROKG/0CGJNRUY]aehlptw{ƒ†¢ÉæçèéîèçåäÏÍʼ¹¶³°­ª§¤¡š–“Œˆ…}yPLIEB>+!147:>ADHKORVY]adhlo“–´·º¼ÚÜúÛÚØÖÂÀ¾»¹¶³°®«¨¤¡ž›˜”‘ŽŠ‡ƒ€|xuqmjfb_[WTPMIFC?<*'%" ,/258;>AEHKORUY\`cgjnqux|«®±³¶¸»½ÑÓÕÖØÙÛÜÝæòññðÛÚÙ×ÕÔÒв¯ž›˜•’Ž‹ˆ„~zwsplieb^@=:741.+(&#! !#%(*-0DG^beilo†‰“–¬ÃÅÇÉËÌÎéïðöììëêêéÐÏÍËÊÈÆÄÂÀ¾¼¹·µ²°®«¨¦£ š—”~{xtqmjgc`]YVSPL,)'$" !#&(+:=vy|‚†‰ŒŽ‘”—šœµ·¹»½¿ÑÓÔÕãèèéìíñðííìääãâáÓÒÀ¾¼º¸¶´±¯­ª¨¥£ Š‡„~{wtqnkWTQN<96%(*,/247:KNPSVYo†ž¡£¥¨ª¬®°²ÒÓÕÖרÙÚßàáäåêëëëëëëëààÙÓÒÐÅı¯­«©§¤¢Ÿš˜•“|yvspmjXURO;8530.+ '),.0358;PSVY\_begx{~ƒ†ˆ‹Ž“•—šœž £¥ÄÅÇÎÏÔÕÚÛÜÜÝÝáâââããããåãããââââááàÜÜÛÛÚÙÙÇÆÅÃÂÀŸ›˜–”‘ŒŠ‡„‚|c`]ZWGDA>/- JM`ruwz|„†‰‹’”–˜šœž¬­¯°²´µ·¸º»¼½ÇÈÈÉÎÏÐÐÖ××ØØØÛÛØØØ××ÐÏÏÎÍÌÀ¿¾½»º¹·¶´³±£ŽŒŠ‡…ƒ€~{yvsqnkifSQNKIFCA><97420-+),/1358:;9642.0246OQ_bdfhjwŽ’”•—˜š›ž ¡¢£«¬­®·¸¹¹ºº»»¼¼¿À¾»»ºº¹¸¸·¶±°¯®­¦¥¤£š™—–”“‘ƒvt`^\ZWUSPNLI<97531/- 8:<>MOQSUXnprtuwy{†ˆ‰‹ŒŽ’“”•œ¦§¨¨©©ªª««¯¯¯¯°¯®««ªª©©¨§§¦¥¥¤£¢¡¡ Ÿžœ›™˜—–•“’‘Ž‹Šˆ‡…zxvtYWTRPNLJHFDB?=;*(&$#!,.023@QSUWY[]^`bdegiklnpqstvwxz{}~€‚ƒ„…†‡ˆ‰‹ŒŽŽ“”••––—˜˜›œœœ™™˜˜——––•””“’‘‘ŽŒ‹Š‰ˆ‡†…„‚€}|zyxvusrpnmkjhfdca_]\ZXVTRA?><:86421/-+ "#%&()+-.01GIKLNPQSUVXY[\^_abdefhijstuvwxyz{|}}~€€‚‚ƒƒ„……ˆ‰ˆ……„„ƒƒ‚€zzyxwutsrqpomlkjhg^][ZXWUSRPA6420/-,*)'%$"!!"#35@BCEFHIJLMOPQRTUVW_ejklmmnooppqqtuvutqppoonnmledcbUTSRPONLKIHGEDBA8"!  1345689:;OZ[[\aaabaa^^]]\\[ZZYYXWVVUTSRQHGFED=<;98764320#%;EFGGHHIJJKKKNONKKJJIA@:98776542 -$))*+,,-.//012278899::;;;<<====>;;::996554332110/. !""#'(())***++,,,+++**)$##"!!  "  -   -ƒ¥¨òËN1ƒFf@ Ø2 0 h:Žþ`à˜4OƒC € "€Ààdê¨o¯™†×ñ¼V Í´ßMRÑ»ÞQwnoe¦z¾êdû¨Q‰÷ ÞüÃ<]“GI¼MÙœtÓÚ J“iÈî_ì$€5 ]ëF]Ýåå’Fo:…½1õ¬ÐÛhþßUƒä-¯âafÌŒóËv‹ Œ³#f!¤§tº[a§;‹Ý2ÊDçÒDg—¹#R=¶ò@äÿ´)^Ä‚(¼9%ºlj'¿èe¾âÕN2ºç®îÚqq–ÆÅ³ç†EêonQõævþ¡[þб¡r·¦rÇ x=¡ú,Gˆgàeå_+èäÀâ‡DÊe×c£[Ô‹kCtã<ž)ך<ÑÂW^’hî%ѤÆ[CssÒ—è#wûçÊÐÿNvÅ•B´U@¦/…ZIÔ—¤.`œRfWP;×rømÙ,ϳՊ‚­Ø¡p–ÕÜšÛ(®T†Žñô†Äó6wxó“hb©µb@ªÝÜŽ¿ÃŽûèÚM !‹V¾€ËЩý…"çÂA)˜¶ï×'?´8ò’V¹•·Ð9 ôÿ•ˆ‡GÊti‘d´twtîjwóLkw¶Ï..Z‰ªZì•ëÒýYŒØŸïàJ÷~jßʽÌŻ̅Äö«4¡b_<4Qgq—»€PÃ;wJ -Ó¬£Æ¥—ÞíˆíîZ×ÂËenm1~²-fþð¹ê*Š«â©D©pyD]òµ& êt·Br·jÝ­ &;kpSŒûâ94a£(q·3,ÐøžÐÁ‡â2¹a»ù PÅÐÅÝ]Jõ%¤{Œãzd\ò·X”÷¯îÌ µ¹‰ÚÚM”á9]5-a#`º cAKä'NžQ**"j´¾\7ÛRL”xDuð¼€ÂsCÚ¬]±‰xLU}(UÆ=j×D„R7g.~¹ò;™œ®µR<¸"Õ `“ÈŠB4K­ÍY <— î¯ì©@c†;„Mÿ¥XªR@L·‹ØeÓ¿—\é6ùƒ³D>ü٦ßî6¡ÆÜVNZË5UÝ+ãQ‚gcáyÐOïšfKüŒDÙñ£0mq;“c»,§!œ-÷ëX²Ía‚¢¯TsÈ<)õ~Ø’Þè@^~pê!¶U‡x-Љ^‰”ðT‚§;’N2«¨íò\ÝÆÈ팷íî¿¶t°‡G³{a-Ï. ç¬ú³M5öL"{F‘0«yfŸµIú#Ø™:ê/mºµÀ©­ˆÏ@ M;·i6á1zRà "cIñb»ˆ®j3È0ÇPQ<…ôAëæ3·]æ‹ ˆ| 8Å·¤o ch^7ž©¶ýìË,¡Þ’|*…búþÝ—ü×>Ag/à·F¸#ÏêRbÍ, ÞiÔh×†Ì ?ö'º€Î‘Î}˜pÅ -JV¬4(e–Ì8(Ì7áù*°·8g˜õ2§e’NÌn–•«_oe¤Âs=ÏÐ*­}ƒÇãWTºp’Áʃ»îN´€‡ífâv¨âi›:ç ægX+M•œ`AÑÉ8%ƒ„D†¡ÉFdÞ9Jb2@™6¼Šœ‘‡9;“®/æHÛÅ’W,[Ñ…·”›•Œß9xÁ³?lƤ·!@2 -ÀêÀ_Û $¶»–Û9U¡=ßÏp‰… 9É -¤A%º'ÇÖ‡–o}Ø(ã hîD³8¬e‹ãÿó¡ÖÏP”°¤ÿ­uKÈxÚÝuF0Ø™NÑr(–ÖV”‹›Dù¡ðŒ¼U'º<½JIÆë¸Ý p'~MTG¨³(4ó辆KƒRˆ³$û KŽ£Ï/ãè—¢ÅBKŸÅ?ž±Œ~o> -³åæãÿ %ÝÒösb"–ì{ -ÂûZÛ{9xýýïR·ym ]8;î”vÐ<Ë{P -\"7Èã`fG¯]LÑh%ŒÍÊŽîC?È!AÔbú…ˆ»iù (”V@]‡r¹u ëv§ù  hƒ¸ÝÄVÌb½‡"ñeÜ26.-H¨z*6X™€à±ä½„Î] Œ-mg<‹"¤qGðÛ)Œ¬’Jƒnj B&®À»·À‚#¼9øó¼‘‘'ª¼®g6üße/ X~¿ô“ððtÎð327ŽÔ,SðäâjQð DHm'ï2±¨ê`e(]ŠšEõõqÑí(|ª´ÝbÕÂíÉ÷ŸìH'Æë«øcàú¢µUøÿ-lº;žMãM³, -–ábiL«T<À-èâ›PÀ‚yÊvð­3œ FòB¡H¸c·˜;ÛÒ•÷:ZꬩÂÁM»ÝèïÃ>íÚk·X(8;ŠªÇÄê²o Ô{™@²Á¿Êbs/d1~²’Taöˆ‰wðÎðŒ¼õ;£¯¡iáÎ>{M·ã«·cé]T¦!ãÂ%d@îv=Æ{Ǩ†vù—=Si!oÛ´-›˜aápÂ@ĪY'¼ŽÔ ôãÓ†ºîxoÓ÷.Èünÿ.àöÄ¥¸°#ÅÎ_Ö)rižÂBÙÜîç|,ãŒT¡(·#TCheø8¶1œV±?OÇ^ðàÉ ÃàI˜aÀóBð\ôÝÛªlE¿Q ñ C_p³?À°7w]´E<ËyøÛµ -wûarÐzC B}¡~Å¢Å)Æ‹ëá©L}Y/ÚõÙÜèàB[ü¼¦^Ñ[Ša¼ìl2–\xT±gãÕñà±LÌ„÷u¹ã¨-O²í† 4]ɾŒÊûôsÐ(Ê…"Œ»>F ÙÜ΢ÝCe[øx\<Èú3rž0ã¼þï”ý®x~7ɱŸ'ÆÈ0ÓÍ£¹†»Òpu5÷sªÛAe»îr,XºA<÷CHðòKïBÙ‘ffw~—Ò«Lïàí|÷B{·ˆáÆ}Ô4¼zîIùš@ýḏ®ÂÄ[¢¾Ü92®dã@‘©,Ð*²<~¸Û¼OeŸ^…G,áƒD±¶ôq( -¹€Nµ¢¹œ‘<"”?ºv`¦¸œ®-t.i¼³P|/Š[lQNÊ\ññO1êÀÞß ô=fK†ù¨‰-ô|â£y½Ä —3™ÎN“êùÚ5⺢pÑãyÒ~]IÉГ¡üwÊ={5ÞÈF%ã~‰'R½ ­àsë/<)JRT 3`k#0 Ã0 Ã0 Ã0¬›Q‹¡-ƒD”xË'›Œ`Œ–’’’’Ò4…€Ew#´¨Gã\ ^î73F»B>²Õð Ý@âh˃Lâhœ:‰ãÈ2‰Å‚P„%0T&.$,M„£‚ADâA„" ˆ§!#,#kŒÆ‘8g€EcB¹ æBá²á€2‚ ‰ÅB‚øÊZ{×'ÝË?9a6MŸJú?÷¨]Ñ@ - ŒIfé0±˜TÈ ñ°P˜\  EŠQÀ\62– -ʃ!Aîn©dÆOx~®¢½EŸ6Ã'ƒ²ÿ•<‰£q&ÈÃÆƒá’¡\ ™‡„ÄÑ8 gÃ’Ñ0±¨`H–âáh‘Æ™d& -æ€Ã Ö†Èßå™o¬ý‰nezé—Üú\Íä×ou~¨˜è©ÕlÀÕ²ýüªyëøØ›ùçzYø,^®êùïb±>}î¼û^[ÑìžYý®•r»ÿ¶UªÀóÞæ>ÞÂ|T>çĵ,ÌûeÛÅ2ÝN;«C7ÍWíú¥ÇËŠHãð2¢5ML2ˆÃÑ8FFJÚGGInd"d¤¹GŒ{$nëù¨sswÏTÛ -û!¾¢Ó BXX(ˆDã$ˆÐQæBÁR`¢qAp«et³áPT³Ññz í±µò!=½GG.U4³¿j¼Å.ÿÛÞÏ×úÿë;ëÔCæ´íúïõܯö -ÿì.Ý -<ÌoÞú4ÞÌ«u=Õn?VsEµËÒËwS³2¯8ì÷ÅÒem4+ëÌ~u¬ëôtÖ¯€º¨%!€Ahff´!ˆ%@ BEÙ±±ƒ(#4iÆ €¤€ÄDBËŽ)mHïd²<¬Ìy Ì(ÅÀr’eóRw”.u¦QΧ‰í-‘U‰úÅ>] ôJzÝØ_&ÜÄÏgbõZšûéå`r‡÷©›¯‹>Œ5iÕÈ8L[õX€9ŽTŽž%K ㈄ԠÏïVãÉãUÄÝÆ -%aEïÝ>" ˆ3ˆÂv=-Ü‘1 Sc!¨Y±½@M¨¸-¬(yÖSXQ˜J3ŒÌ*6Ol)r&`†…x±Ö9ÉDkº,pÍÖ1­¬˜;@ßh2X "·8cc"[ùäzw¥ª¶ôZjœ°äÏ=ïf |Ût¬Ê+‡ó¥¤Ÿ›pø+âm÷œ×ë¤DÄvgµ,•ÚD‹„úÚ¥MŸ–5’k¥·„Y:Kž&¸YOfœà¥iù=]2ü?iùX]9f:BÎ i.%? ªú1l‚³Žb“ þ¾Bd. Ü˜˜¬¹`–t˜à{ $érs"¢nä¹¥.ê”É«GŠêx²–àq/›¸Ï‚í³z¤ïDúê¥m+-ÇMÅØ°»SÓ; Dÿ((ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ6qüRÈ^õ¿ØÕ?,~æX_€øÏ´>Cá—àú×Àϲë‹üêèë3í•<Ø?Þk±/ž«[²ÏW’fÿÄVìо­Õ>Y‰±ýX1uûâ­:‡ûLW%5÷Ržêï3•ØÞ?K¿/Öê}@Ï@Uñ‚þ°Tö -½ø©£†>uí™gĤÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(:Ph«¥ù†þZóõüÓæ£ùïÍ·òWœ¯äŸ9Çu¾‰¿î| ÿäùþÛóíûÛç“÷ÿÏ—î Ü?B?¶_†þg?ýÆ~+ú{ýhôÍúûèSõ?Òê'¥ßÒoK£™¾A?8}wþzúÜü -õ‰ù?êËòÓÔ×俆Ĥ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ:PWÿðãÀ׎¯ÿoßý_>¾ø¿|ëùÊÿòqÿQä³þÓÈý’OùÏ$ñK>ßÿ™|µ;ù^ÿ‚ò¥þåýwʧùg•ò+ŸãÿX¾Â¿µ|qùòþñòÁýæSû?Ìö÷˜oëß2ŸÔŸg>Ë*ì´ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ;P!ŸøŸðqâ£Âg‰O $~/|øÆðâKÈ¿ Ÿ>9|xøððÉáçÃ÷†/_¾C|cøñ{áƒÄ§…Ï>N|NøDñ!á7ÅW„oß¾X|9ønñÍàëÅ ->c|$ø˜ñyà“Æ‡Ÿ>o| øjªÔ¤ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(:PS+Íù£ÿ4òSÿ]äËþ‹ÈßýçOü!¿ù_A¾õ¿üïüøèÿìñãÿÍãëÿwÇ€OŸþr| øÂñ=àçÆ'þi|øžñ…àKÆ_‚ÏŸ ->`ü.øzñÍà»Åƒ>W|BøPñá+Å_ƒÄ¤(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ:Pâ+’ù¹þó…ý%æ/û3Ìö7˜í0ÜŸ^~º¿»üwtùõþâòýý­åüCËoøW–oñï+ÿãW~É¿¬|—ÿTù4ÿ ò{þ5åý;ÊúG”_õ/(ßëßNþÙ?œ|¸2ùyÿ^òÿþ±ä#þ3Éü÷Ĥÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(:PÖðÛûÕçÏ÷“ÏçïÇž_à/=ÁŸy~„¿ñü àùþºóGüiç³ø¯Î—ñ¿ãÏ9?Èßrþ‘?äü&ÅùSþ„ó¹üñæ—ùËÍ_óg›ço6ÿÎl> ?ÕüD§ùþHó+ý…æoúóÌ'õ‡™ßê¯2¿Yd¤(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(L˜~øÿþ׺?–ä4\AîO€3ॷhÎRzûàD¥·ÎUz{øÃu¸ÉnÜX{mó‡0íI 7z+Õ•íÆŠŠS‰“MÄ™íßÃÒ!×J!ÚaohÐp¡ ätàs Pu Ðvò/<ìç¼Àb—Œ t(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿÿ(ÿÿ(ÿÿ(ÿÿ(ÿÿ(ÿÿ(ÿÿ(ÿÿ(ÿÿ(ÿÿ(ÿÿ(ÿ}˜p>XAàO8Aà -ÂPLÁ?èP;!÷ˆBt=âûÂedkN¥ýÅA~ùJhC˜¶r-ˆ>Ф]Ô@$ž‘ÈÁ A. FƒñƒŽ iǬ„¯ Ë¢f ¡˜Ù4qWX9Âfã…A^Ø7#ÔY„åX0¨ ^gÒ.0ÿ ø¿î™ŸæòëÇ|a›ï@Û³<|¡^ðê•Pòô'ÏC¼K‚½«èv‹ÀvUÝ)¨.¤¤;Ò=)ss-Mî@Hn¦Æ)Ë Ä¤ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(:PÚÿ üÊõ'ø‰ëgðûÖçà÷­ÿÁ[¿„_¶þ -?ký~Óú4ü¦õoøAë÷ðkÖ⧬ŸÄïXÿ‰±þ?bý*~Áú[ü|õÃøíêŸñÃÕoão«ßƯVŽŸ¬~¿Wý?~¬ú…üRõù™êGò'Õä7ª¿º -Ä´(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(;P‚jâÊÉþã -ɾä -É~åJÈþæŠÇ~è*Ç~èÊÆþé -Æ~ëJÅþìêÄþìŠÄ~îÊÃþï -þð -Ã~ñJÂþòŠÁ~ôÊÀþõjÀþõ -À~÷J¿þøŠ¾~úʽ>ûʽþû -½~ýJ¼þþŠ»~¿u}~ëúüòý””(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(9Põ/VÀö5VÀö;VºöGV´öMV´öSV®ö_V¨öeV¨ökV¢öwVœö}VœöƒV–öVö•Vö›VŠö§V„ö­V„ö³V~ö¿VxöËVuöËVrö×VlöãVföéVföïV`öûVZöWWöWÎô,T(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿY˜€>h¸Apƒà† !h‚ˆ !xžÁv~•„hg¨@ DѠߊÇΫæÈwQãßÝ -ÁᆨÓêòßQLd'Z&èÅöïLW”[¦0mL#J×@®—ÿ0—±).ÙžÙÿÙ_5ÛnÛü>ÜöŽÜöþðVÝð¶ÝênÞänoä>oûߨFàØ^pÒ¾pfß!f+âõkXD(ÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(€æ˜?øÿƒA!±TP€ì°ˆ³‡DhcŠD²µ"g° @óK|‘KžVêî¿3üâNœö°»ÿ+P£Qm­zâ–ºOåf-ä:þÎ¥ÛÑ+*t´ë'±ÛŽwé±:‹,ÿ¢ÑvL•šã÷—Îäc,@¿¿z« 7Ó`R˜ýCiš}™!áéÏPñHÙè+Rû5Œ„MúÆ]ÁïøÃŒmr9ã"ÙlÇŸgé”×¹Õ6 þH3§|ϲ7Øî§Ú8å~–E»õk/Ø€,ôWð@ùúóMgYB³2‚#¿>åúòC§J}ýÒF7 -ÄýPøÒ6ucí<(8Wæ“urùk$S¦-=J&¯2ò2µ5ÍÄN”ìÈ“Å&Öü“šŠCc‹ í×T”šâ³ -oˆÄi©SºÄŸÒad„(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿÿÿ(ÿ(ÿÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(€Î˜°>ph A@ A@À@ ¤†ºóF¾éþ¿Óù¤óÛâý÷¸hzù}ÿ§0Ïo»÷_àV àù¡ú \ û¿Ýo]‹hˆö/xjl€kÿ À£ïQ Ô€í”E (èRCÀÒ‚HÀ@yÅ!‘ìÍ\ˆ€¾„? 9?ùvÅTáúú;pê·à1DŸìsÀæ ¿W 6Ìôs ¤îÉvf- Ü™qñi ÆBIL¼Â«h muˆ»‹ø“N@¸V ©"wÑ?Iÿd‡Zº€ 쉄Ãa :Bé¹ì؈Íh¹uà -H.žEÜFåæS˜R”ã¾I½¤€ß*)þ¸ Ç€ãK^ܹ w>¶-ÓD ô -(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(€¯Xøÿÿ@ „nÕ˜† Ê9F‚¦áŒF®‘§oD8¦$ë InªsôÄúCÉ™úœžÈ^rXQ÷¦Ü£óœ×Ô¥ñ÷o G6ub$>Ï­¥—ˆ?æ9q·³å[¡Î.í–}Vª³[»%^ êøχÜ'b»ÁàÁ÷l'qx8"~Ú9^‹ÒOÆv”›wÂô·žææÐý „Ú<¢ˆðœ>Bè¯<ÖØ{Ðþ98Ovöx$h¯löt$`nùΟ@þìù&_àÁºßñùa  øó)?Ö!Zßôùá òóYŸ²þ¼ Ä -(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ€¬Xøÿÿ¿àú~6OýìÒŒ^p¦ŸñZÚQ -?ʳaIÛ â@y–L5š[|'Ïž•æòŽ×,íÕP>r—ŸQ»ÚH(O‰´mUëÈå‘6ˆÓ¼#ÒÂÅñG\íØt…«±F/Hµyaˇéþ¨–Ï6yK=ÕòÝÆî¬Ï‹íÛÌýus±ÜÛ6d?¶…mÛFíÚÀ‘7gýÛ.ö†ì¸W»í"Þ}wd·q<\/|†·‘yëEð¼Ø–R8X#þÞ^§êǯî%áH]yU½ÑœÜ'”/E¸‘Ëı¼ Ä -ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(€¬XøÿÿÿzñSy W†MÐŒ%˜Ã Ç'Ø«HÃØÇŒHcûW2[bX}¡¼`Psï•ëf…aé3zìh¬;4KX—Ætÿfî Ãôõl=`iS^ ¡–ÆdÅ=4ñÆÜlÌwFoXÉp3éÜ«#™l?-›±{$3-©[7èd¦SµéÆÍLsXƒ.Ù!Ì(sëÍk„™c‡íX²“0,²O&if‚s¶àÉ0ýÌnj .Ù'Ìì²í»%+å™Zà ³¥HHHÁÿ/XŒpðÜ:^mQy;‚Ã¥1œ[jÛ;ØÛ)m^TªBl~‰tæ¡R VcšHØO)iÙai×Dõ~¢b–3{'ê!„j2SœÌ:ÁЪÃüâa÷‹£ö+5$«tyǽJy•[ò-TDZ•VŽL —V¹Š&»BE§U«Ê®PÑÉU©XÙ*TŒZU*Y^ -©\}Ê—EAE*WœRfNW‘ÊU¦¬9Ó*ºr5)qž´Šµ\A -'­¢–XrgH«ØÕ•¢ôYÑ*‚ÅB(ƒ>´Š`±J¢¹"X,?Áè@®8 OJz+šÅ“J[üø# (ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(€Ê˜ >ø_A @ A4` pàþzРÐì1§bë'b £ô%rúEýº0H+‘“¬â® Ú’?™š«NÕé¬È Té -Ô çÊœ4ÍX›êŒbü„¨°åèÔ„0æO‚¦®A¥F -1~âSöâsmÆÍŸâ¬Àà Žªóü‰LQlÍà|:ÏŸ¼”ɾ Χó,JJÉlÊì|ÝПš¬Ï˜ÌŽ*‘üt$”fdvT‰¤¨a5Ë£J$E½´Ñµú)EÑÍEñ‘ø§¢:”á8ÔIªe¡’³pp©º”‚zÂýÁ¥êRª:W§[‹ú¯¶ó¯BªƒYj¾ /ß)f©öæ<{C¤8˜¥Î›öæm‘ÒÏ.U]Ù§]ŽÔb³ÔsÀ_u9Š‹M C´  (ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿ€Ê˜ >øÿÿ—8”pœŸ7iö&có܈58K›·çF¬ÁYz¼Ûx<:â qÒà=ÇàÑS “îî<ÖN˜µôuÿñuzĨ¥©»©Ó#¦@-Ý‹1jiçŽäå ‰#\K#÷%#gHô¤Y²¸;Yøÿÿ¿…èýfzlêÒÀO [€l¦‘è‰ •Î6r<Á`¥ØFnÀ'î?*T~BÿÈPy,$+ÀúG•aBêH±pè ¹ÑP -÷ãcJ€R¸? ©,Åûñ¡,pH'@)ÜdŒA*Jáþ|@6¤°㇈²À'=¥?J0±©(…øSÍH )Äj"BbKq} @#aÒþ—Âú@¡&â$÷[ÅõƒBMÄIî·Šëg…Ž”ÜoË A'‰ß*– -‚N¿U,?.d}±X~\(:ÉúbñûÄPÔ’ïõbö¡!;‹I¾ß ÙƒÆV8“d§WRþ9D ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(ÿ(ÿÿ(€Ë˜ >øÿ‡À(¥CPÙ/ÍVä˜n?Uh_ÑÀDFû¬¢ÙŠ|Ðù§ -í+ú˜ØÀÈŸU4[‘`b <@\`â,@$8]`â,@$8]`â,@$8]`â,@$8]`bŒ@$8]`bŒ@$8½‘ `bŒ@$8½‘ `bŒ@$8½‘ `bì@ ø]‘ `bì@ê§Wt0á€R zT*šAL8€Œ¾ÔZ` -X?}£-€ ”Ñ£²Ñ z¤`ô¥nt‚žðSÀúé=O   ˆ›ŠNÐ #®ÐF È ((NàF!à‰„?`£ð„o¸ÑðD ˆ°Qx‚nB‰7 ifaD!hÚ8@@A@@à H@â`[ücÇ-D¸öö­‚ºFqRœ57Á^T´ -õâfÙj0n@´ex‘hÔ5ÄýÒÔhÜ„ˆ«ñúÐ*¨kGæPƒq¬äC«P¯!n™¡ãD[’†VA]ãÛ85ÆMˆ¸2¯ ­‚ºÆopÞ47Áb^$´ -õßÞYi0n@´åy1hÔ5¾½“ÒhÜ„ˆëójÐ*¨küÆçGƒq,éÅ@«PÇÁmŸã†EC¤—VAƒÛAÆM‹ˆV¯§jGn‚N4p6ª^ œÚtÜ&Úg Ù@„{8UÓ8sK4Ÿi²èöà”¦ãȆR;«É"ÄÛK¿©šÆ9[¥íL“ D‡¶ý¦4G6”ÚYM6!Þ^úMÕôÎÖ*mgšl,º²½è7¥é;¬¡ÔÎj²±ëöÒoª¦w¶Vi;ÓdcÑ•íE¿)Mßa ¥vV“EX·—~S5½³µJÛ™&‹®l/BQúk(µ³Jk º½„Jé§mÚΔÖ@t¥ÙƒhÍa¶ë˜ðÁT=ŒDsí‡p½Ð´jPûSüÔ`§~*ëEÇÿ«ÐmдN‚טÿ¤OtY)uƒþÖü¯B~”(¨áQç¹øþ8ޤõØ,«¼t—ÌÚŠwDÒr³\Yõr“6{VˆTd[c¹nåå:¶ -öXq êø¶‚åÚŠ—ë ÖÖ³âŒ(‚ÜÞ•+«^®sÛTÏŠ‘ŠuK+×­¼\Çz+DñÖ«\[áå:–ô¬8#а·_Íjª—ë¹Ð3üÆBýVªYOñr9ëy–ßXˆcà5ë)^®3j1Ï}£Ð„ÛiÖ§|±´«<÷ÍB"®¥YŸòr 'yì› -eT\‘f=ÅËuf®Çsß(tcã.šõ)_¬öÏ}³ˆKhÖ§ÈDÇæ%û&Dé&—ŸYO)âcx蛈ž·Ü<³>Eftððß7!J—¹äÌzJ™è ðÝ7#zϹÚÌj -™è, ïÓ7#zþs™Õ2щ€Þ§oFô^t…™Õ2ѹÀݧoFô¾tm™Õ2ËݧoFôuU™Õ2ËIAܧoFô~u=™Õ2ËyÛ§oFôÞu%™Õ2Ë©ÁÚ§oFô>v ™•)d–³´Oߌè=íÒ*(d–„²ÏÀM…ØÝ.­†Rf9Œ{ÜTˆî²Ñj(kŠƒÉ°¥÷üÿ¨áQç¹øÿÿkךÒWûlq#ª€ñÝæÚŠÜ%ý¶ÅETÁF Íe+^¸ËØâBôÁ#Åæº/ÜIÿwq J²]sÝêîäÀþU9’¬Õ\·â…;¡ÿ-DO6j®YùÂ*Â?(DŽ' j®¬~Á4®¿‹Ñ•UšëV¼p'!äßÅ(QËÍu«_¸“ ïWqDä³>sÝŠî„ö·8IœÙœ¹få w˜)ýPˆm–Ì\Yý‚;ál~¢r–e®[ñÂü¢D<{2×­~áND€_Å‘ãÏ‚Ìu+^¸%ºßâ@$Qh7æš•/Ü!*íCq r,Zseõ îdõõ]ˆ> ­Ã\·â…;éBý.D‰–6a®[í…;‰}GDŽN+0×­xáNÐp~‹‘Ĩí—kV¾p‡·–ÅÈ‘jÙË•Õ/¸ÝÈwq úpµðrÝŠîdOñ»8%ÒÚu¹nõ wDø*Žˆ»–\®[ñÂâ÷-DÁö[®YùÂã="DZ…-WV¿àN’çÞÅèƒÙJËu+^¸“L¶ïâ@”(Ìúèþ$ÿ¨áQç¹øÿÿ;† A‚Ú}¿_Gç³2¥ŒrJb<ö D9¿®ÎgeJ蔸xìˆrÞ]‘ÏÊ”/Ö)qñØ7 -%¸kòYêËu&.nûf¡wM>«S}¹ÎgÅmß,ô¯Ãguª/×ù¬¸í›…âµðYêËu>+nûf¡‡x>«S}¹Î -Åmß,ô@¯½guª/×Y¡¸í›…èµ÷¬Nõå:··}³Ðýޞթ¾\çVâ¶oz¸×Û³:Õ—ëÜJÜöÍB÷z{V§úÒ:–øÂozÐ×չʊ—ë Xâ´8ˆôUu®²úÅ:?Š8-"…~%«¬~±Î›N‹ƒH`=ç*«_¬óæ‡Óâ RXϹÊêë|Êá´8ˆs®²úÅ:Ÿr8UD -‹9WYýbg3œ‘‚ÁJÎUV¿Xç_ §ÅA¤°Œs•Õ/ÜyÖÂiq)$,ã\eõ wþpZD - k8WYý—!œ‘ÂÃÎUV¿pçe§ÅA¤àaç*«_¸óuƒÓâ RX½¹Êêî<®à´8ˆ*–n®²ú…;¿8-"Œu›«¬~!†¿û<( ¨áQç¹øÿÿ‡p($HÐö’S6…c6£1ö&DAÊÁü)ig¶hp%[ˆ†Ä‘ý©5G6i|%›ˆŒÅÕþT7‰3‰4~“ DAâÊþÔ4‰3›4¾’ DCâÊþÔšŠ#›ˆ4¾’MDÆâjª›Ä)‰4~“ DAâÊþÔ4Yó›:—Éf!oqoÕPÖüFþÆiÜD´-®æ[=T5¾¹¿q7e‹«ùVƒRÍoænÇMDØâj¾U¡Xó›Ýßq—¸šou¨k~wãø¨K\Í·:T5¾‘¿q7m‹«ùVUoîoÜÆ DÙâj¾Õ Tó› 4¾ã¢îrß* ªñÍEqÑv¹‚oõPÕçžÆmÜ@”]®à[ J2Ë™£q7 Á+Wð­ -E™åìhüŽ›…èÊ|«C-³œ8ãF¡ºrßêPÉ(GcŒßq£Pºjou¨d”£‘Æ/¸Q¨]©ÏúT2ÊÑHãWß ªC×ê³v -åP qÜ7Á¡kõYŸ -åX ñÕ7Á¡kõYŸŠŒrŒÄøê›ˆàÖõù¬OEF9Fb|õMDpëú|Ö§"£#1¾úfâ¡ øD(¨áQøÿÿ÷à(ŠBô¨ÀÖ°gX„éÒâ$‘mSY<øýl¾gXäiÍú$ÑmSY  ŸíeÚ1EId[UAÅ{†E™n QÙ6•• ðÿñ=âO F©HSªî~¶oØu§E´Ôl,»€ M«L& ÈÃ#¢‰¾ŒQöšÍ2(FU†EFLS™–šÍR*&UÆE‰^ S™ÖšmR6&UÆE‰þ‹T™ÖšmR6&UÆE‰þ‹T™ÖšmR6&UÆE‰þ‹T™Öš ßRB&UÆE‰ž‹W!­;[½¥„LªŒˆB=¯"­;[½¥„LªŒˆB=¯"¢O)É*ÖEIkÊ4Y®ËáC¡äûL«™P ¹5E¬ËàC¥äøL»Q`Þ‹$Öeð¡Vr}¦Ý,€(pÞš‹*Öeð¡Vòh[·âôÖ"0*%vNëÕŠë·‘tÀ|¨•¼cÚ¦WœÞZD¢¢æC¥ÄÎi½ZqýÖ"Ò‚˜µ’wLÛôŠÓ[‹HTtÀ|¨”Ø9­?.®ßZDZÊö¡VòŽiÛqJk µ0ª&vNëOŒëÉv‘–rÀü©›Œ#ÛFcœ&[D—æOÕÎl=‰q=Ù"RTޝË.ø<ÿ¨áM%xøÿ@ @ÂÀ8ÑD9AÒ|®»PGpúÇDºÙgT<2ߥ×ÞNý8ƒH7ãìŠGæ»ôÄÑ>Î ÒÍ2Óâ‘ù.½–fq–3ˆt3˺Ô#G§ùÑ£ïHŸÕÀ„£ƒ’oéÒ< $]¨ËîAŽn6Ùœ·]‹²Úg©æ!3óóЮtÆ«}‘j¾±41¯EÀÑgŒôæ{ƒQxLXNF>CGC˜Œ„g‚r2`”è3::ô‡ÉF‘J9÷sGÏjXp$;øò!Hn'†T„ Ín2p¤æ«ó‘êzPB$$ÓwG….°=U'‰Å£"ß¾3p$t~ùÉHuI¨ -åÎàhÐï(#ê$±r`ó£¡Û;PFÔ!¡ml¶ø;££C‹×!LD©uÿrëÌC†EhLÁ:G1cr²‘TtË‘Á¢ ¯KQFkC©8q`⌎MÝŠ2JNû„zÄgè(häj„äÚP-{¨8ƒ£Bûö¤‰†CÈÑÊ1Ä.bº·&I$!Úl+.θèÓ³e ]*Ýï[9+´aF ; ͉¼‘$c°:A†‹€†mKé-]w–ÖžÑÑ¡K+F·Ø´¾ü|ÿ€ð¨àðˆ!.@ @ @ ø€àÿa ž?v>I5òäu8ÃK;ö^‰O£Ú‡Eîx½¨Bt¯r–œ^´{uÊY¦ÎR_`S_«¦xþIN‡«[휌¸i6ÿÏÄËXX¾<¹¥9M6çä 59±ÏÀ˜ìL?‹›Í2™‘5 äÌ»ŠkX „yÛ6ÌÀgédA8 7å9ÁÎZ½&˜£q†š€˜Ï1 Lyf¤…J˜µq5ØÏ Ly¤…J˜]ã 59±Ò`Lyšl¿éëRËÙ8ƒKpìÒp¥<ÓÒâd˲A†—LLl L|š¨%I•åá 51Øà˜ø´Q ’*Ûá 4q±À•ø´TË'ÛÃ^Òq°€Ø&Êûd('¨á%™àøøGˆœ hD€@€ Zæ;@À¤­5„³€N{ëÜb…õ¹Q ”†Í¢»XP§êæ ¬(—ç}Û8¡SÞ­†%D‹Õ–X³¢…›î¸¸ühÈT¿ ¬]n¥Òú ù ÂyÁà¨aܾ˜Uͬ–èþÑ!Ú(H}ˆ¥ -ª*+AôÓU)Aá°uäÔ…âçu+•ÚÇÉ2HÖˆ -øÆa@5ªÜ6¦‚ì>ò#К³oU§F´U[_êzº2¥¯|o0gÎÝ'ÜHj·R}¨Äƒ„aµÂàqÄ–É/TÕ.³©åÞ·@¨»ë$܇bµ†)R¥Á¤.ŠX[€VªJ›*ç‚·Rå}À\ƒbi¢ pDT—¦©Ïl?ƒm:vŠ®ˆÊêɪM}"QW‘<+i-E%'~TpÍ[¦Þ>rB¶°Tg:¢Šó U=aj¶L&À 2>û›l‘n:—¯/tÊÔ Wuù†û€‡ód›ž½ôÆ(ÇÏŸk@#¶Ã ,¾è°„2R¡j6Ux‹ö¯/в‹yRÒˆ2OS™Ú£§.ó–EJNÚ*踽·Fù}%„„a…ÈàtÄÿ¤zæ…)žUSXÊ^ÞWAî«ZˆÉ( ÖÅ ­3‚]ªŽ­ç cõ‰QŸK×€Iìˆ|±à e¡BÕ0Šòù7_€[÷Ç6ï!Q¯oŽb”guíÅüÐ0ʲ‰ÅàÎÕ~c”âgÔC {C`ŸØˆ”çXü” ÿÿÿÿ¨áa€ÀÚÁA@<@ 1òên(`g€vU¿þ×—à,¼¢>=¼ï‹)™üyµ°»r«@«¥L\ÉÀŸ:'êo¶ \Š>+¤{÷î4ûŒëè&É´‹ËêmÏ·Èý®çà~äHø‰ƒ£Øõèt]=Y¹a'Ü8Zq-B%áòKÌGïî&œ³ hú•ópZH - æjeDò?8\ý'ÅÃI¡)„Ú†I”Éÿàqµÿ-ÇÚÂYpK^ yQD ¨p ÝІ‚\¯)¼G%?—†jëå«i¼Ê®FAbõkT,^`瀜¥ µH¨ß® ߟÁ{¼Ž¯|8¹éÉ• K}äöJµ;5éuÖ¯xÙ…ëgTE˜¼GBß0aäòÓ‰Y1´Œ -©@Fúž¬Ë ç+'½Ã%Û›7îÙñBéÄÙZ^5#ŽšaX²ü ã]._--©h†ÐBÛ¶ÐÝØÔÞ·uÚx%Fð¾·¤ƒzàÍz‘>øH`…%+YV¨†¸?t ÿÿÿÿ¨áa Îx€ 8 X `Žc3å¥bŠ”ÖÍ!Ž$ žø@‰¤»Pé¦0Åð'WUò>_ >Ø1ý±×±ìO ×¼× >V%Z -ú°/ô}0ŽxãAqÝ ‰F},£_Œðýí#Z$µZ"«Ç,á5-ç.B²æc€°ùÅDãÙcü)XûÈZô,ðÅ8;ÅÁ±IÏ÷ðäÈd„¢a‚žY“úÆ1 •k½ü=¡åäy¸É°¦÷SÇìS¡¦ß>g¡=Ã0ÌH*ý,1¥WD»I„: ‰ÉàÄáÎ1xIoùç¯g ôƒ­§É{Ï$[¥‰Iÿ¥²3Lê†$‰å'%B–˜ÃëâßtCFàXàÁî ‹p†»¼þìWV Âû,¢;Ùäi ô“»på`Rà%••”gØ`òn †`o OâÞ›ÏLü01bˆ#ŠêÂ8Î@• -#¼U°}Ÿ^ûø?èšh h»çÐê@#Á,h¨½-4‡J‘ c^6!cƒ!ü2þD¤€¥\øónƒ‘Œûå´ëëe;ŒX½“—Ž7ì+¨dj‡ÒJ—‡;´µZƒ· -6 2ŸÜfȨ…nkÎÝUÒξäÌõÊ‹žuŸ3÷˜¥È^›ì)‹/=׊ÍQÑa&°‚eîvvHߎ¯£ØàÃîe Åÿ#/éØ]úÚFu¦äˆõ$/mÏúz^]G4î%0wt}’Þ³î(,¨áq$¤È{ø   xRú¬Lˆ¡‘Š·¤{*t‚¸)Ó;ÚX à«$Ö¤È T‚¸(Õ=šZ`¯‰èÃ¥¨ì3‚¸Ù'×Bš_ `³‹øÃ¦(üC‚¸ù'ÓAša `«™hÄP8ÝIŒPP6Œ‚¹G£«œó”š -jj€6½ llJqŽVÖ -<ðã.\±vÖ]½ÊAÙ¸ -Ü ©dpºm:+dØŸ“l’õj‰(JJQkc‹ÚÄtkVàî Y¢ ÔI+åM(¬°;=¶¶Mâžý`ñ½ Jå0»tî‰5¼{x16­»pf*;që!å '†×Æ.üi⎇[z’ò*æ)"Cð•”ÈÂãý<­Ó££Û®3ÂEÑy1ÒÖs$Á’i¨<Ôö­ó_í½fçÃCÊ4ˆ™&–A(š£ -aŽ7VF.¡=ãm–R `mÜ(Îc09á? ZÖ£Zéý—ˆ,û¡Oú&äfhœ½C/4½ƒS«Ð‹ñ·¸E³™*JB#J°íÔg˜×Ú ¯êl†È¥ U™B¯¤cŠ$/G0=ð0%âã€&´y—sñªø¼K5Ô{5$2?¢™§£µ5+$´õ&έÕCLú.šrØØ,Uøv…|{{£V9ö¼‰¥j-ù*ÂÆDÅ »±ÒOÊd ³\¬TbIœDßdÝÜ )5O -‰Ý+£®ë‰;ŽÊ¡o¢.±‰ Y„ñ“I×8S5QR }›t“]$!½8"–•$’ДªŠŽXˆÛ£ë<£zÙÉ?¤ (X˜áøÿÿ ¢þm’ •·«rãcÒÅD I}•»«rücÒÅD -Iz•»«rüoÆÅDIz•»«²Àf&N¼ûxQ™»* lºaÉ»*sW%‚M7Ìã%ÓIjÄ4®J ›k1Å–¤#ÙI¸*9`ºaL’îÑHeઌÀ¼†)«dºG•ÃU)bs-¦’qS* W%›h˜ç‘Œ{ÄR¸*/6£aJ&ÙM’EåpUÒØ,‹)’¤É—JÂU© ó’nd*W%æ2L9$»=Ö¨®J ›ea - ¹æ§’pUÙÃ<»äš$œÊÂUi²Y SVI´’;•‰«R -¦æy%×ùT®JÌb˜2I¢} ªL\•X6¿0ÏX©ìfÕª|Ùü…)»d™d"̬U)ƒù SvI1ÉJ•Y«²óW¥¼’e›*³VeÍf.L%ÅCUf­JœÍY˜rIŠI†R™µ*w0saÊ"ù%yª2kUú`Δ¤Ø#«Ê¬UéƒÜþÌ (Y˜áxÿÿ÷SƘ­lVÂNró#ºÊÇ…i×&ÉMÔ$7?Ö[‰]+‹Ù”Œ‰úñæc€•¼«2šMɘ‘KbzlXI»VvÛüˆI˜dÌÇŒ*½Kåº6aê•\ùèd%窱g“1fÛ’•cVÒ®•73b‚õ¸ò±§JïRùðf¢M¥’%-­ä]•m&ÆìYRÒcÕJÚµ²äæDL0I~| «Ò»TμiÓ¤äÇGo+yWeO›†13–dô˜·’v­Lºy“!ÉŒ…Uz—Ê«7a -”œøhr%ïª kðfº’‰%= -¨Ô]•ÃoÞÅ„S²ÏcÁJïRù¼M:›Z$÷=BXÙ]*·o¦ÃŒåQŸd„JßUéü&:L $QÜÿÄ (Y˜áøÿÿßC¤þ3‹¤°G~’ß 3͹˜¬…?®$™N0ÇØ´Ý%é÷ñÈÊUYé¦-̦’¿°JÖ(Ì”6ÛbR’äý¸˜dFÁfsÓI¼W®©Êz=aa}äe„¾²LU&é¹u“dnÆ*×T%›­0wHÚ>Ž@Sa¾Ù -ç£í#$%f훪6eJÎ>ÂA¥°ª,SæKÉÙG(T -«Ê6«bf‘û¨Fe±ªÁæ)Ì”’°†¨V˜%l>ÅlòöQÉz…©ƒMR› %[m!)²TV±™s‡¤ÖGY*KV¥6Iaj”T}tF¥Èª,ds(æ IªâT–¬JMl†Â¤ø¨úèJ‘…ÙÉfÏÍ’N%ª,Y˜²Øä s¡äé£K*¥Ve3›=1#H"}ª²jUŠcsfAIÒG¯TJ­Ê~6obxDú(—d᪔È&¦Íð%‡>:&Y¸*U²‰ 3y’C«,\•BÙÄ„»dÏGÓ* W¥V6+af.ÙóÑ·ÊrnùÜ (Y˜áøÿ_@@¢( þŒ©9ɦ­gúMä’ò I2“M[›é1‹KÊg$( )15zšÇö(Ÿ‘ì#°ÄÔè9~“—$ûG²’ÀrSÓæxÌ\’쉓„—˜{‚ôõÈž‘Ä#ÉÀ´Ø³Û&,Ió$$IƦ¥Ín˜­$Í3’¤˜=µcª>6gÄ.Ym0OxºÞD*üñ$ÁÁ´|ófhIðŒ¢ÛfbOÔ˜<ƒ3¾");6‹{FßÄ”¬ýˆk¥óÀ,´³R²ö#Å’þ³ÐftLÉÇÚŒÔKúÌržËm2J¾f¤^Ò…Tñ¼Œ9Q’ú£I-„ êæ2fÃÇÔ(*©&Æ›È6KF?V"ÉE0=nFÆÜ'Ñ«¤.ÂÛ³³ÞcÑŒH+ÉQ%öžÂ6éJ.?Ö&ÉH0}l -ÇŒ+¹ì±IŽ„ ɦpL·Ë.¨ J•à6ýnB“ŒüÈGÉ_Š©oó7fYIdŒ-‘äK˜PyòÆûˆÌè¦ÊÐT ÚSî&.Éœ­¼¦•zlâ€B,(J¨áfyP€ ‚ `„ @„à€ñÙ1Z"ÇjéðèQ«.@ïE¬5¡Eò]/í–¾êà½-ÿ2¥òx±˜Î®dõó¿F…ެ8¤tãÏfZ}=¤ÕQóêbi›¡ÕÏVSÑìÁ­><¼®ÇÜöò…-wÓÍÚÃ\=qÇ.ž{ -µšø<žb^{õaâ§]¼’o"ñ{>…üúêCcÞ†õ ä=< PÃÁº,2ê:G>exD¡vŠõ¡díu¤¸Š‡žðGõûëÃÉ ìè1ûà$“Ê.ø ¬W/÷°cÊ.¤ì‚£\ª[ôaY¯n~cÇÃ|Š' À‚Ç,dlùx€›¡ž°™‚µ€‘ôño†<9`sJ -#™d -lx–@ÌÂŒ!É@°ÙÀS1û÷XƒŒ³S׳›ø%Q€qÎcbêöìoS¾d`Ì?ö¡ÍNOû0ËäÆüÇJØìôl&ûGĘ'9ŠÍð<×Û4_’É$ïæ¹>æq’ý›yŒLÍ›õ1ƒìÑþè7»=ßo®]r£½¤ulv{~¿™º$~vIÁÜÙôuñ12úx#1§žÙcrö¨ÉRˆüÿ=¨áñ—½øÿÿ0Œcþˆ°ÖNŸìvnmí/Í›i;§{Ç’{^¦ùc@ŽÇÔ -ãéH¹'1“;ÒQò´çbNó8dÝ3™I=i*YMzò §Ïzü±íÍ¢ô•„F]xŒÓ«>úXöÌf²RZK.e­÷ŽwS.?ê˜öôf’ZºK&½~{I¶iØml{Ž391 &c“½eØÔ 2Æ=Ñ™”š“E´³^ÓjºHëžíLFN›ÉaÛQ×¹4¤ŠmÏz&]çi W·Ñ Íñabî]Ÿ1ìS6†Ó{çGpæ}„q÷þϘ -õÑþ†ù“–Y@¡=Ì{d…F-QJòZdrÀúž 7¥×6Áùr1ap¨…o‡ ‘Sñê`‰a˜P@T¼·E†ÿô{ô·àÁÓÌÍÁ¾çFV=µ~¼ÛŸãò¥¡ à ’µ½z ±ƒOùXø(É@n•ÐNJ4GsI F -¨|ždü¾zh'†ÃÀ¶¤E#ý;>_²°UäÒ‹Ö\hZ&ÃQý’ošlì)LÃeMŒ,»ñHûËgNvm!Ñ6`lØ+ñ€¤üÍ·O6‘­“^æ\€”•‰„ûäÓ(ãÞö–ª3²*VʘNº½âã”rûL•,Y0>eN)^óÊFÈ=§ - | ”²©•.ïùTecíþS`¾øô ÿ(ÿÿ%¨á¡Hp @ @,@0 E±ˆ×g…útðøå0:¢T÷Ž(Í‘–Á¤\P¢édðF­Y!Ïš(.»è¶ä -[ºd—ÙØŸV£ ²æ®`æÐõ×a3ÑPwtQ¦òÇš™'Ø:ïÚ…@¡é"5å¦e“Û Â ¡ƒø²®Ži*C‚þå*áÜ™K€Õ-©&·XQF1 K;ç–Æbô¶t˜¬•Ee$ñs. œ›ˆÛÒX²6.bý ,6ã¥~rõ¢d”¶H”¬Ý2â{p ˜6{r'÷`4¶’L2b<ø• åxrQ'`ÔµûzÊœQ×ˉo@úòíàüÌÌû/ϋй‡¢Ðc N–ñG΄¨ÿ²<ˆ†Zì»hÕ M ú/Ï{à!‰žÅÿ‰Ö'q$ÒŒÏÍÿM–COâ¤é ’Û‡c¢fx~þ¿²|¬’&Wçt0QkFçâÿ6[ÉÇ-UÒ6 -IN„'ßæsþè³} $}wø.x„nö†½?CæðÇ39f¸'7ñM×Ô÷·ÈÙ&ÆG€°ùÿ‘pz¦º¿I¦0È9)6¹}ã›ÿ-ãtLy˜ ¡yB sëýÙ”ó/ñýu2ƒCþɰÎÁ¯ö3:ç[¢û+e‰,a¥W·ñço•N®xûkeú½(­*Wôã¶N¦˜û“eê)}²þVøFæø, (€ ¨à`a x?@ @ ApâCqIÔ}Õ‰ ûot0:‚ï+F%wICp4.: âG+Ø"ýª…bYt¡é©hhXÒ”´G¢"ø bŒX²“4Gk¢“"ø—b°X"%i/ŽŽDGFðŨ±ä"i8ŽhD¹‘„îõ)¯lHDŒßÝ>XÛд â!K›H„—Ãtwé”ÕsŽê ‘çs®îãí8Já’šøXæ–•–Ç«v…èÆEuª …$ -²,ÁÈÛMNŠÖ] ¤Â]”G6h} Ѷ³ÔÝ- Ô¡Qô5~â´ ,IŽšŒêñ‹Ôã$éÞSJ‚ -'*pì Î|1oÐÃOþÈ—áAá?l(s˜àøÿ œP°BøYga’¹AãzJ›o”P c¬¬6­¸¸”èZ6.Ãá¶ñ„’naƒ•Þ¦à€…áäýã€úü*ÇH/{NO#]Ü]T]x„<ºl;y9Í»¸¸(¼ð7üå¹³ê Z‹µ'Ÿ¦Á‡ÍnÙ'¯,ËO~LÓµ~dÿs˜àøÿ˜€Qð…?´/3o61ÿñ$&\ù)ÊÓ7© ^ÚRy]§àr·¥ê²Å®¦=h7;tÅ;1Ö¼«Ä¬¨V$-É«¹m5£ÒäÊê‚/Ýð"ýçË-´Xô'B˜”gì°xNƒbp›ÛŽuab“[,ƒ«2ƒ©<Ãl(s˜àøÿ’Pðy?îµPæâ. â‹\€¤0\þÆ1ƒùùË|çÐ ÂçS³«ÞÈfð<¿›oxCœAï|s¾Øu«óßù>7èd΋Ï׸ÑÏàp - PàM‚¸º„oóúÆ6$tMUºº2#niãAÑ|‘¾œ“3S*…Znh)«lÿu˜àøÿ-J(8Aúçw›[‰úûÈŠg¢ChÈî J¯Ç”ÄÆŽí 0t -~ ‹çŒÍ P T ž‹oÅ¡y -onöö3> ®V!Û"` è#ü %# sLX0"œQæÔSþ ¬€\XþoW4?”ÿs˜àøÿÿš€!€S+d? ŽÈoÛ(Þ/¨ /ù&rcfLídïJýÌÏ’*…þ"G¨¨Ûñ®ñ½iwºë~Ô÷úÓò%×C~Î|§­î™Nûsœvø¶›ÿy÷5ÝöþhÎùýe ‡ßw á¿, *>//\[nÞ°üðªè–ϔ⃘báð¤(s˜àøÿ?A K˜\ÁSþ0\¤ÆÀÒÕ•OS=TPM­P‰5•AE×Ô•aSõS˜ŸRm*zŠ·©ßi—CÀ®î&t”=«Çÿ®ú¦má¶Ú‡0_£.Z5­Û#MÐ(“V/ën‰YÝ&LÄhy. -ê3/²KÈ…Rõ©­ÖdQb­nÕ–fU”Vcþ<ÿu˜àøOHhDJ%AGpÐ3 -Òó7 -€s:,w6sÈr\çÐŽX:œ±Küßå‚ðÒ¯¯’ûT¼Z·òo“•÷GÛ«á®&„¡b©¬"ÚgJèbm£å¨H(ëöxÅ ä7}±¼ÓŘ©Zž·Iïd0x,y\ ¨¶(Ë|I1—6€' - 0À 0À̈ÀEƒ-hÁ-›¶ÜRnÙÚݤÝ%¥„ì”RJ?ýÿÿÿÞ{ïžk~”ð¹öÞ¼ªËíß܃QJsJ>×Þ›Wu¹ý›{0Êø¾ºÜþÍ=cŒð¹öÞ¼šÐåöoî¹öÞ¼šÐåöo®½7¯êrû·÷æU]no^Õåö÷æU]no^ÕåæU]n^ÕåU]^ÕU]ÕU]UUMLÖ¥X`Œc¡¸¬Šš¦$#|®½7¯êrû7÷`”Òœ¨Êº l¡¸¬Šš¦$#|®½7¯êrû7÷`”Òœ¨ÊºWEMS’>×Þ›Wu¹ý›{0JiNTeUÓ”d„ϵ÷æU]nÿæŒRšUUUEMIFø\{o^ÕåöoîÁ(¥9M‚Éh 6YD¶¹\.‡ÃAÍǺýÍY.˜ŒB“yïmÇÐàP±\0‰D"y¾ ™P*–ŠÃsÌ= …É„ÂÐÀ@‘ðW?Ê s< …ÉD² ˜$çͺåt)£áx@" -‘Æ¢’>·ÚÿæDUÖ¥X`Œ†ãy8°Ëšd„ϵ÷æU]nÿæŒRšUËí_]Ï$D€ð`4""²¬ÑÀ¸“`0™ D' -‰D"Ñ Œ4`й(*ï„.÷´K!ÑQHÁçóáp8Ídò¨ÚërÅxl6‡SÀÀ 00IÍí)€@ P 0@@¥Riˆ8¤{Oè¬T*N§ãð}²,£P(®9¡+),˲,‚Óñðt8±½7„•¨3†¯ƒ`7Èà3†FÆ¢¡4’e9Ž£ „!Ä0̈ ,œçg©ºë×Ôdú~D.>¼gšÀõç?^€þˆwÀÝ÷¬388a¸&ÃöD,“çHO½±{AïÍëÞyÄ÷ø 舞ï•|»µ«C›ê:˜’Oÿ|Ƚ|¨yô•ó`ü;lB–¿|ø~² -͇­Ã¿¼ðÿ£‚E„€¦yJ`ËÀéÀeS‚ò6uf½oÞ}ÏsTOgoÄÔ˾÷«z¯Ÿ“.Ÿ!ãJ_vë€Ò|ÏÍ:îðv9z[i‡·#%#€ìxXú«¡Ü©¾9þ}”îoKôC—¤èêöqäèŠ@hÏz Nz0yoþUvÇìÝ©yõ<žBQÏ8={áß½|#AGsãcŒ„ôån·ïÀ>Õ)|­`¿ Xu¿Lð‡ûäCÍè_yÿý”Ûßµ·Ë€Àç¹'¸:Ë F-'‰» y“ôtß9Ø;ñ{‚מ¶|# £Tk“šááKFß§òÍõíPhú&¾°q ÿoÆ„ß -æã£xÁàÍ?=ñ_[X¼¿a(%@Ñ€$ -¬¸M)HH+‹3{B¼gô¤ë¹¶7{/8î Ý›Rù\P›óÚ|Zé{º/ßûï2 }IÚ ƒð~Hýù`ÿ^Æß ï-ËþÌ7\üÅö€²yà^Oß •7²²Ë·½§‡=Ð=þï‘á;Öi/oð_õ×®7ùÖ¶°æ33vð‘dG€m5ß½˜,bõ·a3Âþéù_'øQÀè€[ -’ -Z\9§ÁönÏtdú°Ô<õb²ÿ´?äÍ> ê€s T#8Þ·ºH¥$±“EÞsKï±=–÷o/4>X-sÔŸÌÖ…í_ècõ€]_±kà/ "÷ {Ž£ôgóÿªÿ_·, -¸mÀyQ'iŒÞîq̬;§gž¡z§â½'|ã‘£sæà?|)ÍGŒ>ŒoáS‡œñðèóžøS.¤!‘2#ü5÷ë£]ì£3ïCM~ ›þÕH‘jE`o`Æ|÷‘¯¤¯ JÞˆôhƒ½¡ïñç^3¾·¸·Ñ´“0_NÙFÒaT_ûC_,öÑŸrÙIÁæ{?Ô&ÖGÛlÛŸÙûQýþr *ð#7Ó×wM0!´N˜qók q`ï{aÏ3i¯Jí\­~:Ú7ÛÐ#Ð|7jèƒ÷ÅxLØo¸T)E¬õäßþ» @€¡@í÷ð™I@`©Ë†;ÿò¼›í¶×¯×ò=|øF—#k³‚ŒR¾6èãaH»°VB?²þ ‚ˆã/ ¶P¡9+xð¾c€¶ÊÞLï[|Àh¾ßÔaD*¦é‘óa© l„v"Í6÷&ÙŽ0Å>íø’&@R³“¼[È>»<Û¸Ñ^7Õ/£¡ÜÓGþ‰Ä)µIbÓáiGðoo„})µ«ø=:É\¥4ˆ¬“%?ÓòÄù7qùü)ø‰Ñûª6ÝÂr‘V£Q¢O½ªö©k$Òq-Ñâ_1šžÅ/Ó -4H“P‘dY†$0ÒL‡HI ‹è©I&&tñoÇJt¦Èè+µí´itáJ±ó:ºÆ[x’—9Ù~wÑ`-–²QÌ7‡ ‡è(Â0k¥ð· Å{a*°JðçÁ¾Ö§ØÇ½•®ôÕe±EX§9ªÁYú-]ƒNù}€yÛÖI®Uj½è^@g M³,iýÀT†³‚½ÐK.7 ¥TSð2F/Ñ›=¯!êO® go/QÃõÿ¶™@˹í¶Ï tyßÏ|¢Éh^Ï ú`/·ŸP!Bï“yA—,Ðk9áÒv.sâF B@Çï¢JÞE—#ºs‚hϺ óDÓ"¬Tç²¢¸,¦jÏå‚HQDa‹®u‹ hº±Å‚seõ -ç4åÇâ„Æ<ÓÈíY̹îÁ)Œ:È­Ì­«wæÄŸ®9×u7·¯ô‚"„äü !!""<<<''&??PPPPPQRSRQPDD))SSSSTTTTUVWXWVUTTTTMMMLL)))**2IIJJYYYYZ[\]\[ZYYYYJJII!+.1123399NNRRRUU^^^^^_____`a`_^PP==<<;::9944,, 44;;CCSS[[[bbbbcccccdddddefedcbbbb[[[SSCC5(%%%55==DDIIZZfffggggghhhhijkjihhhhgZZUUDDCBB ::@@GJJKLLMNN]]llllmmmmmnnnnnoponmllllkkkk]]QNNMLLKJJIHH--,++%--8ABBQQRSS[[\\]]ccffggppppqqqqrrrrrstutsrqqqqppppooohhggVVUUTSSRQQ/ - ',,-445>>?DDRRWW\\jjkkuuuuvvvvwwwwwxyzyxwvvvvuuuutttssskkjj__^^]\\WWVUTTNNF443))**334::FFGHHZ[[bbffnnooppzzzz{{{{|||||}~~}|{{{{zzzzyyyxxxppoonncbba``[ZZHHGFEED66** 112QQRSTT__`aabccssttww€€€€‚ƒ„ƒ‚€€€€~~~}}}ttsshhgffaa`SSMMLFF988110 .2JKKLMWWX]]^_``gghiijkklmmnn||„„„„…………†††††‡ˆ‰ˆ‡†…………„„„„ƒƒƒ‚‚‚kkjiihggfee@!! &&38AOVV^^ddlluuvvww‰‰‰ŠŠŠŠŠ‹‹‹‹‹ŒŽŒ‹Š‡‡‡zzyyssrqqlldd433&&%$## )?Feerrsttuvvwxx‘’“’‘ŒŒŒ~~xxwvvuttsrrhhUE>=<)%%$$%&DEiijuu{{|}}††““““”””””•••••–—˜—–•”““““††}}|{{uummJ:-(';IJTUhijjqqww||}~~€€’’’™™™™ššššš›œœ›š™™™™–––€€zztt_^]\[[ZYL; -;rrsyy€––žžžžŸŸŸŸŸ ¡¢¡ Ÿžžžžˆ……yy  -{{††£££££¤¤¤¤¤¥¦¥¤£¢’’‘‘ŽŽŒ‹‹Š‰‰ˆˆ‡††qlkjicb\:  I€ŒŒ’’““”˜˜œœ¡¡¡¦¦¦¦§§§§¨©ª«ª©¨§§§§ŒŒ‚‚xhgJlmƒ„„…†‡‡ŒŽ‘‘œœ ¥¥¬­®¯®­¬¥¥œœ‘‘ŠŠzg  !I„……†‡ˆ‰‰””›°°°°°±²³´³²±°¤¤œœ››š™™””ŒŒ‹„„ƒ‚ !%IabcŽšš¥¥¦¦©©´´´´µµµµµ¶·¸·¶µ¥¥šš™˜˜““Œ‡†J,!! - -"<=>?JKh…’’  ¡¢¢§¹¹¹¹¹º»¼»º¹¸³³³§¢¢¡  ••ˆ‡K! LM––—œœžŸŸ ¡¡½½½½½¾¿À¿¾½¼»»»»±±±¬¬¡¡™™THG "eŠ‹Œ“¥¥©ªª°°´¼¼¼ÁÁÁÁÁÂÃÄÃÂÁÀ¿¿¿¿²²¨¨§§ŒUk‘žž··ÅÅÅÅÅÆÇÈÇÆÅÄÃÃÃ襤”e]QPON87 !3UVWXZ[\]^k—¥¥¦³³´´ÉÊËÌËÊÉÈÇÇÇǧ§œwvutsrd^]\[Nw««¬­­³³ÍÎÏÎÍÌËʯ¯®­­¬«« ŸŸž˜——–edcb`_^][ZYX: 2@ABCNcdewš««²²ÁÁÐÑÒÓÒÑÐÏÎÃÁÁ´´³²²§”“’ƒkjihfedcNML?3?@AB`abdefgijkƒŸ··ÄÄÔÕÖÕÔÓÒÑÆÆÆ··°°ª©©£qponlkji^]\HGFE ^_`jklmopq©¶¶·¸¸¹ºº¿¿ÀÀÎÎ×ØÙØ×ÖÕÔÎκºƒ|mlk`_^\[Z22TUVpqrtuvw²²¾¾ÇÇÕÕÕÕÚÛÜÛÚÙØ×Á¾¾wvusrqpfedKJI2OPQvwxŽ«¬··½ÂÅÅÆÆÍÏÝÞßÞÝÜÛÚÙÏÍÃ÷·¶®xwvlkjhgf93Z[wxy{|}”µµ¶¼¼ÁÄÄÈÈÍÍàáàßÞÝÈ»»´´~}|{yxwutYXW>4. 12346789VWYZ[]^‚ƒ”®¶ÑÙÙÙâãäãâáàßÞÕÕÎÎÉÆ»º¹¹¨§ˆ‡†…ƒ‚~}baO/789:\]_‚ƒ„†‡ˆ‰‹Œ¢£¤µ»»ËËÌÛÛÛÛßßßßåæåäãâáÅÅÄÃÃÂÁÁÀº´§¦¥¤ŽŒ‹‰ˆ‡…„ƒ‚onmkjhgWV:98+ !""89:;DEFRS\]_`yz|}~ˆ‰ŠŒŽ´º¿¿ÅÅÆÇÇÕÕâçèçæåäãâ×ÊÄľ¹”“’‘ŽŒŠ‰ˆ†…„‚€ts\;:9 $%&CJThituvxy‰Š‹ŽÖÚááááæéêéèçæåäÝÝÝËš™˜—Œ‹Šˆ‡†srpomljiG@?>)*BCDFGQwxz{}~‚„…“”•–˜™šªÐÐÑÑëìëêéèçæÜÊÊÉÈȼ¼»¡›š™˜–•”“~GFDCA@?* #$CDFGHJKMNgh™š›œžŸ ¡·íîíìëêéèËËÄÀ¢œ›š™Ž‹Š /9DE‚ƒ…†Ÿ ¡¢ÄÄÅÛÛéïðïîíìëêéßÝÛÛÃ÷¶¬£¢¡ Š‰XWUTRQONLK>?@KLNOQRTUWXrsŠ‹ŒŽ‘’¡¢£¤ÉÊÊéìñðïîíìëàààÔÉÉÈÇÆ«¤£¢¡Žƒ‚m[M+,-.[]^f‘“”•—˜¢´ÌÌ×ÜßßòóòñðïîíÑѹ¸·¦¥¤£¡ ŸmXVUSR#RSUVXYefhi}~Œ™š›ž ¡¢£¥¦§©µÄÎÎîôóòñðïîíêåÒÒ¹¸¶¨§¦¥˜—–”“‘‡†ld\[YXBA' [\^_acdqˆ‰“›œ·ßåñõöõôóòñðïîÔÔËg_^CB@?# YZ\^_abdfgikl…»ÅÌÐÐñ÷÷ï×ײ±°¯¤£¢–onljigedba- -QZ[]_`bdegijlnoqst¬­®¯ÑÑ××ìðó÷ø÷öõôóòñðïääÚÚ«ª©‹wvtrqomljhgQPNM345`aceghjlmoqrtvwy{|™šª«¬­ÕÛÛåçôùùòñì©¡ zywutrpomkjhfeWV GOPRSoprtuwyz|~©ª«¶ÕÕÖרØÞóôùø÷öõôóòñÕÕµ´³²°¯®¡xwusrdcSR76"4;<>?STklwxz|}‚„†‡¢£êòóö÷úùø÷öõôóòÞÞŠvugedb`^]B$/YZz{}€¨©³´µ¶ßóôõøûúùø÷öõô…„‚€}{zfeUT %&'(<=GIJLNOabop}~€‚„…‡‰Š¡¢¤¥§¨©«¬®¯°ÁßßõøõôŒŠˆ‡…ƒ‚€~}podEHIKMN[\yz‡ˆŠŒšÉäõøùüûúùø÷öõôóéÔÃÂÁ‹Šˆ†…ƒ€jigZYIHGHJLMZ[]suvƒ„†ˆŠ‹’”•ªÎÏ××ë÷÷öìÚÚ˜—•“’Ž‹‰ˆ†„ƒkjhfMLJHG2FGIKLNmnŽ’“•—˜£½Îö÷ùýüûúùø÷öõôì¾›š˜–•“‘ŽŒ‹utrLK10 ./023@AQR‘“•–ÙÙëõö÷øøíëÏι™˜–”“‘Ž~YX0/12NPQ‘’”ž ¡£¤¸ÛÛÜìî÷øùõàà×ÖÖÆÅÄ禤£¡Ÿžœ›™—–”’‘‚yxv_^\,+*('& -žŸ¡¬­¯°ÁÑÝÝæö÷øùúúùö쪩§¥¤¢š™ƒ‚@?% )*+HIZ\]_a…†ˆœÆÏááùúüþýüûúùø÷öõããÛ«ª¨§¥¤†…j - $,qs€‚ž­®°±³´ÆÔò÷úûüø÷öÜܸ±°®­«ªž‡†„xFE$ Ijlx™š¥¸Íçëùø÷öòëëëµ´²±¯®¬«©¨‘Ž(:;=?@‡“”¦§´µ·¸Íßßô÷øýúùø÷êç¼»¹ª©§¦¤¢¡|zxGED ?@BS^¸¹ÅÜààçöøùûø¹¸¶µª¨§œ›ŠGF4…¼½ááôøüýùöÆÅÄÃÁÀ¾½¼œSBAY[wy¤¥§©ª¬®¯ÀÁÂÄÅÆâïôúûüñïääÍÇÆÅÄWU?=<E£¥¦¨ª«­¯°ââøüø÷êçâÎÈÇÆÅü><:9 -@A¸¹»¼½ðùûüýêÏÉÈÇÆ½¼»œVGE -’¬­¯±¼½¾ÌÍÎÏãèùûüùõÐÁÀµ´¤›ŽI B“«¬»¼¾¿ÍÝæ÷üöé±° -›±¹ºêñúúùøÜº¹¢'˜½ÇÈÉØòúùøóñ -$¨©ÍÎÏÐìýþüûúùò©§¦‹‰‡…nlj$ ›ÇÈáóùúüýá´³±¦¥£3 !23¢êðóöøûüó³²£¡.- %8^±²´¶·ççñùúûþÿþýþÿþýüûúùöÔÓÊ·¶©†„‚sq`8% -'()56Amµ¶¸º»ÐÖææçñúûýÿûæâ`^A()+,?kxáýÿüìÛÚÑ‹‰‡zk?43)(+,./134vƒÃÄøûüþêä¼»¹¸š˜–xv=;' 124689tìïýþõê껺”’ƒ986421 67DFH¨ª³ÆÖìóüýþÿþÿó±°‰‡…ƒ97645JLN”§©«­®°ÀÁÃÄÆÈÉÊäèèúþÿÒÑзŸ›™‡]%$-7PR_ÇÈÉËÌîùþÿúÉÈRP310 -TV†‘¼½ÕïùýþôåÀ¿­—•“ˆ†ƒ}FD/.,+)*,-GX† ØôøûþÿÿþX-,*) 8Z]_acsž°²ÃÅÆÖééóûýÿý÷óììÞÝÍÁÀ¾¢ ž+ -”ߨÔrtÊhF £ À`Çym,€LfvZ<‰³$Èq…BÈb€ÀˆÈ€ä€DNsXàXñ«;Úí¼äT<ø9=šj¿wÃdV_²Ç‘'3ú²A‘ÌÖ£ß/ª°Ç€øù×;@<éüôcXœƒ¯xÀU}TÜööMÖSÞý—Ùº=4ý†DN|U7‰œð¯æùž Ú\M,…õ‡·#›F¬pÊü> l"Jä&§¾¡À#ÂöÙÉkH+ýŒ!ðåBpMN·sní*=t?›u~¥ûÝ|kpêÀäGΊî>¢_Ü»)Å™?0°N¹$Ïj, -,𔬂œÔßÐÞÚµ -ïB ůZ¹8Î$?•2Ýí›ÙõQÓzG"w„ZS¾`[ßG>øŽoÿz¬¬%–ÕRñŽDãÎêîà¡xìsL/Ÿ¯¨OüF„zxÅnÌ¿¨rŠCÉ©hðsH+æÂÿ=óã¿9MØww¹¿¥²=ôHåïôðV €…ü% -ÂÓWê h”³\ʵ7ù0ÊføMµ­°ý×e¡CFتÌÓƒ¾T59#«}J¶w,!wxÒç -}»[þ4ß›&ÈÍE}ÝØô˜Uíì³SØb³à·Õ~ßü¥(~Y»¥õJhö‡Ýù)¿çÞª!?SW/Üíõ9 ·‡XìAŸ¿ûäíÇwÈ|,â‘ÞrÄïòö¨›hÜïÚÃÿÈÚÆ#G)§ÍÛ‡ ]° ìúènjîȶ¦6Awˆ{{_ÌpÜ<² Ö°O aúÒzÜέ§Ê©=ЯÅú³ÉÔ~ô#Μ¤Í©…=’ÀÝvùéÓwÞ ¸‹«Æq {ÔGšAð,°<«'uÛqÅ^hV™†p˜¤}ò¨ ÑÃdÈü6u‰bÇòUC oÈá6ðSG}¹•Ü!·ñŸêÉZ]Ÿò5=Ä¿@ØÊ:æ>'ÞA@ `þ±O]ÈLË¿ëÀ‘‘œœYZbµûÇ*fÔ¿"ÏOÀs·p7 ò+—9ñ:§tѯ1?²€1£NÉßYØÜ¦¿V€áÀŸð(-^ýÚg¤•M/sÉ>aEøÏûJZvÇ:Ž;n¹ùÞRw[D8÷%0+ŠÜ#_×äHé"x˜õ± .U¥µ»F¯dLyçûáMõØ»XõÀ£_©5?q=¸Ç®‡~è¤ßƒÍ«¯ 1z”ÃÿJÌ:æ¢)r -^-ÿãÑyÅ*eß숀¾»€S}bô>ßïÛ ˜Y¾`q–ây<Þ1¤>Ø"xˆp÷¶:³ëü>3¼ëÎAô¸(¹}HPV•°¬¸½×àLö0³9‘–s{”ú€ÌáŸ??cȼû!2ùý60¯jâ„?Ú}Aê¹íïú~öa£&\ý)ÏîÑwwñá®ö´ôQŒî;,«nëK&úDÁ&¢¨Ïü¿&*H_ª²ï8õàJü< -ü®QNz½»l ˜ï÷UƒÎ©D¿)ïFËXR£S¤¥ÿù;SÅ&9 ÝÄýÈoÊmÕ½£¼Èmå&NÂÚ±¬©±â°–t‡òêÓ|¾7k2æ}q+ãÿÀ}ÞÁ×ÀÀQú2“Þ•i~³Ü”Jü"¸Ä¬»Zì`ì>ZÌ@žÞͤv·ZütÕ#Ðøî¶¿Ÿçdôn[yøCŽý€Åô³æ‘êàànVœy­5v_¡DIg–sQ‹ì£ÓGÀÍH«y˜—ÔÇ«w„XMú•5ÅȈûêM)›—IÐ÷áaüjûÄ¿F=ýA ¥|ŠÎþgÑûqôíî x$ôã :}¥“G÷Ù¨ÛË¿^æT¾”ìDz¿s{–ª™†TL¥…%)NoÇÛùì“h’.ˆˆvu;ˆê[ÜòŽXîˆdÜÐKÃUåmN}¸ïÙW&]ˆŸ,íÎ%ÁO+öÊ+ìç˜9AîögÍ+»[š~ºàú·GÐÐÉaåw[~Žxü=/ÞŠÅÇ„$âí€QŸ¼ ÔÁØ_Òd>Ô§z>•f¾ŸTj¾Ò盪êt+5%º5ê[?ÊïT­ 5nsâ¾ë§ïòSæ²ëŽh!÷̦¾hÙ›}±}¿Í‰ßb±ûÜ&f]Q túßoo%‘ßܳÇMq7Œ~–ùbm{<ÒLþ‚žþ,¤è•#ñŽLá(I!Ïã_$„ó™-ëÙ“jºò|üÂü|I¬©*éóTÖ[÷Õ”wtάÁˆ¾é2‘ˆøm•#=´ÙÈöËI›ÓËîîŽò½»¦=àè”È)X¿>ïTòU2ñ¶âµOÓ4Þ%Ö÷EÖdßT5×wYY@OgJ°XûÀ¸á¦ÝŽ~õm‚;0Å÷Žv¡o'‡~¥ -¥çß9ǹLM”O—H?ôHÖýÜ.~ž²‡ îfY˜~bï6C§ÉüÀ¯RØC±úá -ˆ1·þ€ÅɰžÂ?”`-×#Ð|0‘5h†|>%¡‘zÏwvV×WêÚñüØwÏ|Â}KO&ÀÐ'¯>†;,}Þ}_G•µ|ès‘¾Ì¹çOföiöÑ¢Oü¤)§8›8Y½¨Ç‡¿»û)w7ê)è—: ó3öz`õåïµ=”k7sÕe;IDnþ‘ï#îóœÇøkb?l=OÍh& 3ß2˜õÜ%öA÷Äu‡Ê}"Ëv¸n)ï0³q+ÞGNôÿZ‡¾±`B}3àìãi:u´qkíÜï•ð»\ð[·Ñƒëz€:f(êÁ5?½øb_ç4M™Õýô×ãÚ¹è‰ú¥øú#ÞƒoXýe Æ{< _Ð΃CäÕJ -Ÿ[û•4 |ðßÅŽõ\hzñÛFb¬ö ôÙ#î*ú6ÊvÞá’>}kÒ莺ú ³HßÂûl'~„}HÊ£ƒÿïë´´XúÑ‘ü@£$ñ¥ý*ïæ>ÞôÀcAӆמ«\ÜgX\“Þ'½YðfËœ¯X;Xm‡ðAHßá@Ÿ¤ºúhâPÚŽWºÃüÕuSŸ|f:vËig?öpÇŽßE?~=àÂîf;Þ­þ™¿ou²¶ßóíUð÷m¼ÈÉóeýbá b–éÈTÀW%ØëãÚ>–¨‰|i†áFnGŒ¸#êÓÿ|¨wÜsÇéÃ’îij()÷…ë3F޽ÄO¦œ55¨ Wÿì2»ägŽ=Øëôû®ÜzÕ÷ÕÛ>à˜nCëý\‹ÿŽê¦{øÑŸ÷Šá)2OùŸ½éê§+¼Lj—ê„&~¬ÃŠ·ƒdG–KSÜî>Ÿ¸µ¶#}aôUqljáf%YCïù&zãÖG[Y]H_r›®ñãöøºðƒûá˜9=4=„é³™+{¬åW÷n: æ§÷%óz¨ -ùú ¬ÓÐÐÑÖÅþúsäxöÃ{N«óBy¿™}Þú%*§•${e¡ú€rùöØèû?uØ>0÷pwÔgE›š(ê]æŽtèÒ;ÄÄîÃêsó_·>°_ô©G{ñ‹ß[ûì¡ÝÇI?}{Hó+V~±{XkÓ½Gj?-vzˆûiõñ·)PÐÜ„:EQ.G&%³áåf°¤ê×¶ôí`‹Ï~— BŸ¤‰avä¾É«f­Fv‡I5=٫Ϥw$)k â&éãlɺäÂ#ªûÆúøv÷Êží~ôp÷Öœþcwî´y·Ñí¡FÃU3ìaÃ÷Õ×Éõî_Êôg“ZøÊÞxƒyÅ •”Ø‹å²â|=$ñ>¾}Îꃴ#û€æÛWÙ§}"胻Ã.²æ¢Ï¸Å ß(}*ݬ/òúòÞ,kê’¾ =ð GÀ¥òTÑáÂo„æGÅ1³¨G`)~¹‘Ù,{Ì+î–ŸS¦wç}{„…¿²{ jL¼ÇØ=|šúc“ <Í·âÕ üÙÀ‹GõJc -Ø4–Í÷Ìh7°“j¿ õ½kGŸ¿ýߎ2vúÌéæ«2Üv8W}’¼Ð·z;lžOä8îˆn; -ïвIßø«t_«_ÜQ©¾$ñÕ‹À—ûew zzì`î6Þ~ʳíñü×cÛ=µGÖ}>šÕOn ûQ¼ßWå&ñ?¨älZiqÖ±>C(/¥ÆoS—˜Ì¥ÈâõI„µVô Z>¼Ùq#Ó÷ çÉ‚n±;lý.X^@ñùïø¾-é³d‰ñ}P\h¸A±lûÚÂÝpÍ)){èô»ìÝ|ètÀ3¿HÔO~ê{µŸú£™ÞmÞ¯¢CÄÛ¥”1s‚R\­Œ® A½e@ßëÛ­ÐD¾ÒÄ·¥}h¤¦³;B®šâÕ—ŽâeÞa¤¬§ôÀ¸í±¦ÕÜÈ=}ú"Ø'ÔÇóCõšcN`¿]šfIwG_°üNöî¶=$˜_IÓ\þPƉ’ña»~ÿñ¢F9÷W(D'ðݪRá8éÁņê>{úÈ7bÖDÕûþ´ƒ5Ÿpk -újwÔ·ãšp¢Ïý|qïÞ–;Hï;u‡ÿdëÞúªú®3Ù û…T³[s’ÀRŠ»™)ýDïœö8à8Þ›ý Ô{Pßß<©”¿ˆÚÿ{-\2€fV ýׄÂ(Ê7 ©PÊéû„ȯ[>’%¬µvøµÔsŽ}x{v$»Cp;õ%âŸ}>•wв¢Æí¤;î\_ý…“);™¸åTg_‰Ýû©‚»ÝbØ?´ülïèw™¶ü<îø;ø=Øízò| ?þ¶3žùGë?¦%À‹¹G c£K+‘W&ÐdÇÇIu¥tˆX“>4ËW1_ƒÁ¾ÙqIhBI;"fGšô ÕŽÎp¬*ô‰t>úv¤‘5}àŽ ‹tÏFûÚûÞú"E9½ûAä×1'…Ëáèg¼w£Ú#̘_,ó·Ðý2¼‡&û»ñ÷žüüíæ¥íÚ@2JÜ—¿aXÌšê}âwç:Ñ×wó­Pߢ°2 klÒ„§Õ[Û'>>ÝaU_}Œ îøzGVúlWÖâqªý½}?ö †ã¨ #~j=Óné¨GùÝî/{üå—ï_ÊG{(É_5r5Å=@ø@{è}ºû¢Õ¿fÿÉg`|FðÈpE"¥È+S4¯ñQ]MM9TŽŽgø˜Èti—Ô—¼·I4ù -b‡¾:çû6ÓG„S;Ð}ÑÛÈšQ¢ï»íøä½À"}^ݱ(·¬–;ذϯÏ&DÜgÙù½üܰGHlN•ßaÞÝnûîžùk½‡M¹‘?iªþò¡ü“mç*ñ½ªà>»`m¼_Äšëß1¨Cƒ|‡zãÛ*ô™¬õ™eü:Âè+54ßÛŽ u”}`†¶;:n¬T}©¸i䎇ôE÷éÔÝ”õ1õµIQ7¶ûä×g¨»môûðnÜ„kBöÝÓü1¶ôóö«±ä}_Îñãɽ]öÃ?ê:@Æ i cý!I±àµÿšbatòA«ˆï`: ´ÝU&ܨ£np>„×á™|æ}Òˇ™¾’,à&}:SMΛ¸ Þ(£>¸{?w$÷F¼í³—ÒýñÛr·gÆz¶9űǩ»Ëý -¹ ùi•ŸAü½í!ê=û]ðÑ“wR÷Ó•3û—ÿ›¾ù—盳æ`8¯ãÑœ¿èçÞ!…Zb>ù èk›ïq§úL ÏÜv°}{|Óí;BŸ“»£y¾CôMóŽŠÜAaLV÷Qõ©ŒºŸœkà’Ÿ{0»;Ó°øz4h¸z/ó÷ù ÐÏÉ\…É;cõgû7?ŸxEï½½‡ùĿ湼¶Ú2>šs^ì̈_*ñ‰ó™/¶£Ææ‹ë£ÈУÆ3ùBè³|%·ÃïÛ_mû*µíî0îvÜ=‹®¦ÖìSº«ðuG˜ÜçY_ 9çWwæ4Ç5ˆhØãEîòcìÝ¥´‡<Ž=¤tÊÅŸe‡òs‚(ú[Á~ñ'L¾<-µÿ±Þv—e¨´öz]:näך0óºõFúäÛ3_ùЖϖD›ï”evØÚ“Hô­¥é¾ÆóUÐ'%TQR}¼£'´p²>zæh÷ë`,©‡Ðò»yw Ð)çc~ÞùëÐö .Û@é—~±Ù ¼¿¿|Ì㯘¿Vüµ€ùȲJÀ8/€$ÈUðõKå{MÚ¡³A`‚…ø@çÀ#>tøñ|úd¿íØXß©uÈË÷ÕŽz>XmGŸÖÂ>¼;¨nGW}+F_uï(HŸ]è+FÖ@ó¾æûeÓ“ú;Æ÷üô%?ÅHwËOF{÷e~Ñf凭ùc!Þc!ÔÐ~Å÷«#6ã#Ýù௄õáþÀãƒîù‹=¢E+í‡}l°Í؈Íêâä^€È+x¾(ÍáËDGEŸ¥|ÅíXæóë£Ê*W;,ͧoG]±6ö ærÇÌÓhõ ¢¯…;¬·Ú5uÀ;,ëc?ºààì‡!¦õîl{<ì¾;4þœ‰i±Ÿ>;}ì¯þ•@ý[øo´o}ÿ¹ýr$ ½CÐ|½‰<¾ƒ;Å¡DÛÑÍàøhò ÅWæ+>| úXܦZ3ä¯úðë£)Ð'læ®¶}øºFê·_îøÚ€ÿ¾ÐótÕ2¿(Ä>8«ÝG!?/¡òû»3ͯÔèÄJž?úÁ÷¨¦Ö~bäúû™Ï>hüÝþ-ê/êÿüïªÞÑKV×Ã.dᯚ5£2&ä=9@·švd¾¸3¾>Ò:F¸¹Ý_—•ïÐu€=j&í˜êoç -mÇnjÁ¾÷p«ÝÑáêäGúX#^¸0€î3~ß­m`žüŽ«Ç´5ôÛåõÀÌïT”ßf6Èó—©W'¶´ŸÈN§ÓŸhùÀàO¬z»ø—û¿ýøø~>˜S1+c_ä†×ÂÍæ¾½ñþñå">k¾Qò¥Ð×ÇñeÍ7iQë{¨Ì‡ò²#*ç;Óô‘¸ŽéŽkÕ´¬Éê 7Rä»á}©ú -Öí~ª»/£´=Tó+ÓèT”NÂkýôC|æÐ~1ß#Bë§(ñ7¯÷s꣠þˆÿøýåú'Öð„ 4Pï Mß"/dÍh÷6Ü{”#,Ÿ :"Ïþ¡Ó¨uŒÌ‡×í½º¾ˆ°žÇžv,l‡;Ðãö© /1¸cT9î$¥& ¬©úL[tßÓ‘šÍ™_:ÊÜ œüÖŒŸê·¦§ŸÝ»3G~žùiré·Ì ï±²áãóCmâòχÕ_­ôy?bÿ ¨¶pM{Q¡R/qÂÓæÆÅ^üÞ?1>~{¨ð‰ ¾®ñÅl—ŠÏ?ÊÇ_GÞfŠë{;߀¯ã&P;Êvà|¦é#ò„;¡Ð×RM(ª/(7ïp1nÛA/h…åìöÄ/Vï’\ é÷~=ù©Nü è7VïáÛhê].>îÒ{çø¥­|×?F% Àý? :ÀÃÒÛ‚Ëáq,^*ö&„%šðaâÓšcÍ{ÀZŽéÀ‘oË._zеÅèùVY¾íˆéo;žØ—ݺÝA4W¯¸¥ÜW{ãs,ûÊøé $¿½*ý@A§Îü<ï~^ùùƒ?ú±ïá’ôÓ™ú%bÛš(¬Ø>ÚíÏοÀ¤¿›4 -hh»¾üñÑù33ìÄ£^ã°7 Œ›½†8B|eÛóåë„ïu¾Õð…ô¹”ïu°õªåCk}‹4Á¶#µóõµ¯}€¦;$àxÇP’â¾VUA¡œ/,ONbíé×ÛC âÝIo`þ¾è·ý{Ðì‡a«ßhí/"¤1}Ô~}˜óWü׿Ûþue˜“ÆY•®D劧}e½}õúïeÆ7ȧ¾G ¾pø -HG£|ïø©¯~Üù|tíÀe#Ú‡†>ÀŸÝ¡ø|µ y¶>Fõ`ö&Ü(¿Pïn4?`ˆÞüEÔ È:Qûm8ç -ûóÜ‘O擟eø´Í¯v|H©ÛªúÚÈ’Ï¡ýí´·c~H5öÅAŸÃª&€WQ†1ïàºì÷qêÒknò»"‡~T{Tá»…TóWâ{¬ƒÚ­?µíUo'VÇ?7þï€.€–S€H@÷€HozÄ£¯|â‡^x›; ÎlQtï ¾¡÷8`ŽLøüÅײù: ßeˆ§/P·uXJË7¹Ú‘›oÛŽ˜Ç·Y.xéùŒ¯¥‰š"ÍîØ%´&Í’—ú\룻_ò{¦ÆUú‘®6?rÛ¬MŸt*‹?cçgóV'©ýÄ øàûÓ„|0rþÅÿQäßÿ}V Ø( <CßïdÔ$bƯ<"¨7¬¸Çç^_|ŒýÏw4òý7úÌÞº¾‹v¿]ÈŽ½ìí‹q‡™¡&ˆ84V}G¸ƒbMí*·>ÞŸQ}%BVîWbV{4ä& ú9ø#K\U„ù :îïÿ>Bý•ØO©©ˆ¿úüMBôþ·ü_›i D6`F‰ô±/íE8ñ†G݆«7oÖK…¯æ=ÖC¾:Žùfá£I¾± O;èçC¸·óÚq„¾Ô@vƒû.(}1о)Ï—¬pPï°J_'©ë³´sŒUÁ{ _Ó»éë±ÛñçoÒ;¿ì=ìé'±ßùþøí—YýãÔ>ÿÕóƒ ˆ @ 9nf¨qI×).ˆÝÕáüè1;ï¹7zJë 彃/’jÓÄ›¬áÛO×u@¤ú0UoSÚáFÿ²™oçdߥÙñ }nA}cŠ>ßm·CoùŽÏd»üV#>õïíîNúí»›³™%ýÒøèz¬~í'o©¼³þêò!;þ„`çÑŸ8ûp$@®PB T àq>¹‹ï -ëäˆ`¼Kšª·±—êž…Oo÷íø"°ó)o|ÇðqMÛ.ÖQV›Iø­ÚÞÆ1_Éè üå«{ pÓW=çXÏnÙeôUîQï‹«/8Xo±e(Òo©=°{„ŠúÁ'¼ «SÅ=ì:Þ’yoö×ÈGÇûG’¿<Ùð_ŸÀà@p¨‚¸Cpà Y÷’×°wñoä@o!z_õŠØ£‡#2ŽÎ½¾ - -óä9}4ìÊæy¾H;¨!ôáÛ±«Ö¾rè#¨šêˆÛ@õG},’¥?Pú]ÓàN~.ÙO²ü]â ¤Ó½‡ÝYé`üuó—¨#ýµ÷A„ôùQëÀI€‡TÄ€y!‚ÛLYç[œJãzW3Ro(Ù Þó„OíñÙ@Þ+KG*|Ö¡£Ò¶YùИϷ:på™—¯£ÚáØ|îv4Ï9û -Eý¶²f@}bïP{_ùÕ« Zô±uY~F9 íÁ‡=Îß=Ðo’{²ý¶ƒúõÜOÊz ào•¿ -¼ô¢ý•ÿÀ‹ H+àA ¥g‚ÖêÌ}yHÅ\<Û±Æm³éÑÙÝÓdõòø>߃\¾šø¾Ò -Ÿ òuŒÇ|LA}ß‹å“ }†n$¸îˆwgó²Ýñêâ—p´QõQ_1òê|ô+Ø ï~ïÝzRëò{X»€>–úËuEü õ×üãÏŸKù/¬ø° -p.t+â , ŒŒIJõD»NëƒÆý®,ÏOeï´§ä [k/•oŽÂç€ø:ãKË61J°ù2ìÈRÎg¯åëµÃ†ßèsØgÑ•¾?tA4Ý!RŸ´õ¹úp{ :ý8®Kù…²ðÇOïñ^¶)Æ[Åï¡ÞŸÙø¹ŸË¿ŠÛ[öÑØ—€û¯et0°G°Jp:B?„$ñ7ævÝ8Ó<^½{j÷Ú{|BïÁbŽü&|ö|³é ˆOD_j%æËCÕ‡{œv¬ûy;¢Á=pG0µƒ1ôYM}´ý>}Öµ—³—Ÿˆ3?ö=(ø“ñŽ<>œ°¥þðù ÷¯Ý>äJò_  î¿àÿ *}içjAÛ%`›fÉp|ÈwMyPz;Í{Ú»±†Ï |«>8±ñ)PòQ^>~óÅØ¡³Ö>­ÅæS¶£Œšißá]w¨÷!’}5)̤Ϫ»®WäÛ¢_GiUì±Ê§~Ä{Ti¶Ž{pùö“!›=¶î·À~ña¹ŸÙþ5RO@ÿ=Å¿½èþ³ $ThH!¸Ã­j |]NáÕç¡êÍÙ«›{z{™øÚï]òMŸËâ«óUó=è+ÊíÚ³úNÝV1ß"ô}¶£Ó;û®BŸ–êGÞ‡]ݲéwú»©fñ¾­~¾zýåÞ‰‹|dÙ?|3î?·þ!؆n@´@΀à·/(-ß…û”«TÑ O†çQ™j/0ì=Rãc©9ò¾-:úÁ|Б)¾Ñ:šO7ß»¾ äÛL¾<Ð×ì|wìeó™k5p¦«OÌÜ'S_ªÖôK×üîcø+i˵_Ì•“ncèof?ž|ÈG?ÿ¬ú;v!õß[ ÿö°èH“ÍNÐÍ¥:pÂËÎãêÙKíÉ®—ßkàÛã“T1‡Ž¡#›O›"Ògl¾³úrM$»B_d9rû¶1:ß­ïpg™Eæ~aú¥æGh7¹ÿå'u©ÑOB™ëüßß"¬ø“¨Åçÿæ_•ÀÎâ9†¾‚–ƒæb;{}ø6>x½y~zpö^÷ß‹ -ÝË—/6tç³Å6BôiÏæ³ëCZ–oúíRQ Á¿–D¼_ñ¤} éYÆ´[Æ&MÝMÐØð—œí1·ýýñ´_#ú×È}ÄlòÓYظ\@E“Ú6A±ƒD… §I³mŒ#È£ém×cpz)ß¾ÞÆ—åÓÁðEóµã[Ò·¶ŽÔÑRGg}†Kçs´ö˧¦/ä¥ çH×»ò¼c9G¯Ùëç~À(?é”{ôá]B?äö¸Gúós§øÈÞþ±èoºé©üã !ð…€ -.ða €àdЗÐTÐojWßìð@ó`õæìñöž÷lølÇ×ʧå„/c|0}&ÆÇ«èög¾¾?ôݳÒÄaˆNøZǾx|z¬Êö„¦¬¿=þNÕéNíWÄýJƒ?8¢Ö‰Èó/ðŸàiE)Žcठæàf¡àñÕÄ;©Bî$ä!DoeÏß½>«k|blø"àŸéã©>º²#úÛÑ5Åê"5]à?û®¤ î8×ç½f{_oýߌ?Ò=0µG:µò{L±_OúQf§@÷K—èþýÒŸf½?¸bó_ ¿ß€ ºî@œà¶A‘pvhe"¯þ°“ÇÇy´Í³,zyîõíå,_œOh|mCÛdúŒÄ|ßåKG¾¸ÐDM>iô lí|¡Ù rÒ¹;ÄÑ@Ù‡±µcm5»…IøÛöíxŸðQ…‚þ’ Ù›âÑÓ¾ÿ{òïâ©< $!\·ÚÿlÒ‘‹ sÞ¶z˜½›{|î ã+ȧHøbñáçSPú‚¦>iØ1EŸ±v«žóyÊãŽLwdÍú},úM/oÌù8?Å[k? >8ÎuJý—,ýõö‡æGxúØÉÿö‡€.ó -´œ4 ².âXo«9Æ`»Nóß–±íP~ö¡÷namëO³H›¿à÷ð±_†.œ+~Ë|à»ùÌÿ?5ý`åÿÏ `UÀNàŠìpAEM¨›'Rže·‰ô]Pž,éñš÷Ú¸Â÷•‘cqðA8|Å ¾0qäK\L<>¨›ëƒBÓŽSó1êÎçÒ¾š`>öÞ7AßÒ­¹9 GùÀ¸Ç˜ºŠ¬¿¿ûÚUGþä탎ï -? À?C2™ÿ= > ¥@é@• \ð4ÊÛ‘_¹õª/<NoÙ¼Ú»ïY|Ò|/—åÐAŸáø’Ù&Ò×NÜvÖçy¾ÍòI’°J>¥}ìà¸ÃêË·>ÚWª/?òņ?‚Tì÷OýPõôÕꊿ|´ÏßáÞõüÿ³"ÿÀýk£ú/\ “ $$ ÂqÁ×MhÍV»eÕCó])ϧGvÞôL÷æ{š> ø¢ðå{7ð…Æ×Tòi+p™‰H>ñ¡ú@Ñ>蜷Æ|ºçnß3Wîÿmôµá¯ WxûÒ¯…èØ{Tþþøû„§'}ôã{ïØå‡¦\ôÜL@€À‚ËUЖР†®/º…?^DORõhéîïÁ>¾Ÿä“,>Žæ+¾QlÖÏL¡™ë‹ Mh™ï¼G¸‹w¤ý™»ßQ>‚ñ'†§ãÜ¿¤{[óÚ_—uœþ¥ˆ ¨P¨¨!B)8×ó»+1€=BQõæÒÜ›Þ q¯úËÇüè@ŒOβ-WG“u˜¸]UÇïP_’˜fH$Ñ·WO_Jk=l­îˆÒçbðo(Û¨~©÷w\òºùX'ÿÈ|o:öÍ¿Nö¯ý¯× ¸È!øy*¨ôíŠ:É=^BOQõø*½ñ{#ð!Äø&áë&⋌1|}uë(p»gšé©¯ÖçÓÁúÑ ‚´ö OÚ«îaLþ`”+8†¾øèO>py>¢þÕ$î þgñrê_výƒ0 nø€Ð‚–‚‚H8û‹ŠQÇ«èaêm[ÐÛß»½Ö»—û¿†¯G|]f¾:ùÓ7•ãK¯ù¼ª]ƒ¾4¾­gÏgÈ«oFçÀß>÷ØU®¹JõGëxyé-G½3ûgÙ–ÙaE? -nÿÈt‚3rï4ñzƒ… €/¡§¨ÇoÐ߀ÊîµbŽDòuˆoôù.¾¡ø`T™ò…Ûšu}(;€Þƽ ú”7gNŸ¾æ¢‹Þü!ùÙØzÁúóãï“Þƒ°þ ùËÙŸ‘åÚþ¥PP(c -LÜ jƒª ¥ª_’É“ÐCÔ7çµµ,á=É{qs{¥á«‹/ié¨!_…¾ù)_“:hõ™½ÎçÂÛT½–¾0ÀÁI½”ëú…2N7ý{|°ˆþrùðᯊÿçƒ÷O“?ô^ÿ©~îOÀ‰@¡ù@3A± wé 'Ñp®)À9Áã̓ӛ®ØÛçž4|f|t(s,í&¾GÓ}æ{›úˆC_Áj_Y|~Ýøäí[ÎÛöò¼¿ÍeüåæßxTù¿Vûÿ”Œ 8P`µÍ˜à„AD„Õy¯´Œ¼„ž¦ÀÞÆöÄ÷ -ðI¼×s$Ὀ/›ãC§Ï²ˆÌvžù*v0p>\Ú¦ùÄöÝ©îøŒëo¿_xEíkïñw‹ù=nú³áÙýDdÚ?µ}TÛgþ ¶ªÿM¤[À™@Õ70'h1h³ à˜ŒT^jþé­ÙëÌ= |âøì7GÛ{UYÛ²Òa‘}Üž@êÃZ¾ ìXÅÛÇAÍü÷‚ûU°Ï~ý†“ëþÍéïr?Â?O}­>Èí#âøNiöWôp€zŠP+Pˆ!¸)¨r0gßXϸìBä)ô˜\ÞEJϧ{[à“ãsäãø9Zò:}„uppÛ»ŽþnûþL«ÎEßägî˜ -@‰ïÏèփȾǭ -€ß@Týb|$ìGÕýp‰Èô‡ú?Rÿ¬þËa$ð¨=0$hnPœÎõµâàý»¼<#=¾Þמúp¯ŸÄ÷zùªáÛåùÎSø$}¦òqÛªô|ÜâpǸëöÑ^|i]W×½çFÀtúIÿËù±Û?T(Ô Ð$ê ¢ .BSߎÛ]Ÿ -@òÚèQ–÷ÙãtoƒÏy|ºsԽ׉#/šmÊôU×áÙÞúØšo¬,ŸO|^î¿Ê*1ëï®< ½ÕûW ¿ë> þ¥óEÚ3 ¹Àú@5A›AƒB6Ò=Z–ÑZïJæ¡ô†ë¥öDÕ«ù½߃|š‡¯X Ï|^PŸñ Ùqz1Û·D;nà÷ü¥©êf­ïqͼmü¡sî÷ûø÷Ñß™æO7f€Ë^] ¯ Ì!H/¸!´¥ï©ò1ûÉ»âA6=ÌÞ€{ÈÀÁY=]|ŒÉwçjùªO5é|äó&ûÒaÐr&¶ô÷lI . -VXZ\_acehjl|œ½¾ÀÂÃÚïõ÷ûö¢ žœ|zxueca 79Z\^acegjlnqsuš¸¹ÄÐÑÒðôöþÿôããâÒš`^\ZM7 \^`psuwz|~òüþüüûæÑÊÉ…ƒpnligeb`^\YWUS-,* UWY[^`begi޳ÃËÚõúýÿ÷ýèÙØ×ÖÂÁ¿½¼º¸¶´²±¯­«©rpnkigJ0/-+* "#$iknpruwy§µ¾ûýþì¶«©§€~|ywtrpmkifdbGIprt…‡‰·ÍÎÏùûüþûøõùúõòÜÅ·{ywtrQ 1Jrtvy{}ÊËÍÎúüýþöôùþÿúòîéÀ}{y^\ZXUSQO-6tvx{}€‚„‡‰‹Ž’Ûïûüþúòññøùõíæ›™—•’Ž}{ NPRT‚„†‰‹Ôüýýðîñ÷þýûï¹:91giknp„†ˆ¨þÿýøûþÿýüõèÒ¨ˆ†„  - -†ˆŠ’”–ªÉÞñüþÿýüûðüüû𪃠-moƒ…ˆŠ‘”–˜›Ÿ¡îññýöêçöùüÞÉ¡Ÿ›˜–”…ƒ€~e…‡ŠŒ‘“–˜šŸ¡£¦´Üöûòìçéðýñ£¡Ÿ‚€n) -&MOQS}‚„‡‰˜šœž¡£¥¶ïûñæþÿ¥_]3„†šœž £¥§©âéíñýþâéýþÿÿþýñ©§¥£mk8#+|~ƒœž ¢ÁáêðóöñèßüöêáÁ¿”’‹omjhecTÅÇÈîò÷úýÿÿþèßûȽC}Ž«»ëüþÿÿþýûøâÚÞáãëûýþÿÿþüò뻨¦¤fd42$%\^ac“•˜šœÆÐñýýàáøýþûÐϬª¨¦£¡ŸH;0FHJL•ÄÆÈÊËÓ÷úþÿÿþÓÐêüøòIJ°®¬ª‹ljgE!CEGIikÂóüýþÿÿþòãÌ×ÛæíòÂÀ¾¼»RPNKIGB–˜ÂÄÆÇÉËÍÎóùûüýþÿÏÉÉÎù÷ÎÍ˶´²“‘ŽŒ‰‡VTwÄÅÇÉËÌÖ×óþÿÖËÅÅÅÅÆÇÎäððÿþýü÷ÎÌËZX’•—ÇÉÊÛüýÿþÜÅÆîîÿÛÏΊˆvHFDB &'TVY[ŠŒ‘”–¥§ÎÖרàöøûÿõõ˽½½¾¿ÍòóóôõõÿþýàØ×Ö‚o  >@BDGIK„¢¤§©«ÄÆÜõþÿÖÆ¼¹¹ÐèéþÿüÜÕÍÌÊÈÆÄ‹‰vt, -=?ACnp‹´ÆÈÉáýÿòǺ·µ·ëìíîïüþÿûøáÙØ×ËÉȳ±¯­žƒus<,<>@BXZmo—™÷ùÿüòÜ´°°°³ÁÐù÷âáàßÝÖÅtr %;=?A\^adfilnqtv‘ ëúþÿûØ­­«²»þü÷ëâáàÑд²°®Ÿ›{yvsqJHF* !hjmprux{}ÅÎÏúüþϯº»ÉèÿþýïëÏÎÌ‚€}zxurom„‡‰ÑûÌË·¥ª²Ñøÿþý÷ïêêéè˵³±¯¬ª¨Žfd=$Jkm†ˆ³µ·¹ñþÿÿèçæåÔº®¥ž£§âãäæçèöü÷ñÚÐϤ¢ŸecIGE)  -68:bdgjlort…‡¹ÞîýûúúòéèçæäãÚÙ± ˜™ž§§¨©±çèéðû”’ŒŠqo#Yy{ŒŽãûýþðîíìëéèçåäãáàÞÝͶ”’“”š¢ÞßáâüûíÓ¶“‘ ’•˜šíñðïâáßÞÜÚÙ½¢Ž”ž£×ØÚïô‡…‚}zwu<('%I—™¨ôûýìëêèçåäâáßÝÜÚØ×ÕÓÀ¬–ŽŠˆ‰Š‹‘‘–°±³ÓÕÖØÚÜÝêëìîùüÿþýü壡žœ†„fKMOmoruxz¶¸ÎÐðôþûø÷íÖÔÓѾ¼»¹«ªƒ„…ˆŒ“¥Ôíûê굂€bTR -.0=XtvŠŒ’”—šœŸ»ÌÍ×ÿëêéçæÖÔÒв–ƒ~€†ùïé«©™—q?MORT†ˆ‹Ž‘“îý÷îíìãˆ~yz{ÉËÍãûþøó˜–“Ždb_E$#9;=?BDFwy|Ÿ¢¤§ª¬®±³µÂÄÒÓýìëéèæåÃytuv‰ÉËÍÏåæèéüŒŠ]PNKIF&Yo~€ƒ†‰œž¡ÂÔãáàÞÜÚØÖÔÒtopqwƒŽ›ÂÄÆÞàáãåçèýüˆ†da@><9UX[]¥§ª¬ÖüýþåäâÐÍËɯı–”’ljklr½¿ÁÄÆÈÞàâäåçéêþÿõò§¥„‚USOQTWY\_a{}”¤¦©«®°åôÛÁ¿¥qhefghjns‚ƒž µ·º¼Ûÿöï  `ce„‡ÿèçÛÙ×ÕŸl`abcŒŽ­¯²´·¹×ÙÛÝßš˜sec`]ZXURP(&$"!ŸÕñøþÿøàÞÜÚ×ÕÓÐι·h{|~©¬¯±´·¹¼¾ÎÐÓÕ×øüûøÕÉÇÅzNL&$UWh’•­¯²äðýëÚØÖÓÑÎÌÉÇ®¬©lkjjXY_e©«®±´¶ÇÉÌÎÑÓÖØÚëÿ÷ﶪ¨pb_]ZWU,-©ÏÑÿøçÛÙ×ÔÒÏÌÊÇÄ«¨¦£ žyd[UVi«®¿ÂÄÇÊÌÏÒÔ×ÙÛÞàâäæçÿå !sÞìôùüýÿþÜÚØÕÓÐÍËÈÅ¿½º·´±®«„‚€pnWNOPYprŸ¢º½¿ÂÅÈËÍÐÓÕØÚÜþóëëêÓp&z”–§ÙãùñèÝÛÙÖÔÑÎÌÉÆÃÀŸœš—€~TLKLhjk„ÀÃÆÉÌÎÑÔÖÙÛÝñùôðÃÁ¿“fHFTV°¾ÀÂÄüýþøãáÒÏÍÊÇÄÁ¾»¸µ²¯¬¨¥¢ŸœJGFGHNcˆŠ“¬¯²µ¸»¾ÁÄÇÊÍÏÒáãýÿÕ¾»¹Œ~jgVTQNL0càýþÿîí¼¹¶³¯¬©¦HCBRceuw¦©¬¯²¶¹¼ýÖÕÊnkheb`ruxÅ×õðïîìêé×ÕÒϰ­ª¦£ `RLD?=>?@EPWŒ £¦ª­°³ßÿýüÉ—f  - be|‚…ˆ‹ž¡¤¦þÿÞÛÙÖÓб®«§¤ š†n\PGC?;:𠤧ª®±´¸»¾ÁÅÈËÎÐÓÖèÿø×½«? PRcf”—𠢝Øåüøëݼ¹¶¡žš—”H>7NV`bdg“—šž¡¥¨þþý§f$ DQSVYüýþýêèçåâàÞÜ·´°­©¦¢Ÿ›˜”‘dF933;Ny|€ƒ†Š‘”˜›Ÿ¢¦©­°´·ÑÔ×ÙÜÞàâúýư£¡[Y!&JZ§ÓÝäÿùðïíëßÝÛØ¼¹¶²œ™•’ŽŠ‡„€}zveWU?30017FT}€ƒ‡ŠŽ‘•™œ ¤§«®²µ¹¼ÀÃÆÊÛÝßòý\ZWTQO:8641/-+[°³µüÜÚ׬©¥¡žš–“‹ˆ„}zwPE7/-/1ACFH\ÓÞåüýþÞÜÙÖÓÐÍÊÇÃÀ¼¹µ±‘vsokhe/.""$6^adhkorvz}…‰±ÇÊáúþÿúîííìÙÇÅÃÁŸPGI]»½ÀýþñðåâàÞÛØÖÓ·´°¬¨¤ œ˜“‹‡plieb_[EGJLORUX[^beilƒ‡‹“˜œ ¤¨¿ÂÆÉÍÐÓÖØÿøÈ³±•’<:8531/  -Mx{~ÁÃÅÇåûÿòÚÈÅÁ¾º¶²®ª¦¢žš–’މ…}yuqnjfc_\YV5!#UX\_cfjmquy}…‰Ž’–šž¢¦ª®²¶º¾ÁùýÿïîØ§¤ZGE7KMPÏÐãüÿßݘ”Œˆƒ{wsokhd`]YVS. %*J]`dgkosw{ƒˆŒ”˜±µËÎÑÔ×ÚîïùýÿøõÐXVSPMK6 0LNýþÿøóòñãáßÜÙ×ÔÑÍÊÆÃ¿¼¸Š†‚}yuqmieb^[WTQMJHEJMPTWZ^bei‚†Š¸¼¿ÃÇÊÍßáãñòóýÅ©§¤¡žŠ‡KI" BDWx{Ÿ¸ÄÔÖ×öùüÿø÷÷³¯«§¢žš–‘‰„€|xsokgc`\XURNK*EHKNQUX\`cgkosx|€„‰‘–šžýúß×·µ²°Ž‹ˆWTR&HJ›³¶¹ÇïøýþÿØÖÒÏÌÉ¡™”Œ‡ƒzvrnieb^ZVSOLIFC'=@CFILOSVnrvz~ƒ‡Œ”™¡ÉÌÏûÖÄÂÀG¼¾ÁÃÅüýúâàËÈÄÁ œ}ytplhd`\XUQNJGDA>;9;>ADGJMdhlpty}œ ÁÅÈËúúúçÕ- -~ ¢¥¨«­ÂÑÓÔÖØÚÛøúüýþÿäâàÝÚØÕÑÎËÇÄÀ–’‰…€|wsojfb^ZWSOLHEB?<9742"+-/1469BEHLPTW[_dhlpuy~‚‡‹•™ž¢¦ÃÆÿþ¾¼ºj3 $T‡Ýûýáß®ª¦¡˜”xtokgb^ZVRNKGD@=: /14GKNRVZ^bgkotx}†‹”˜ÊÍÐÔ×ÚÜòýû㟚—/<>ŽÃÅÇÉý©¥¡œ˜“ŽŠnjMIF0. $&)+-0358:741/,* !#%'>AX\`einrw{€…‰ŽÅûùñÝÑžƒ€0 --E~¶¸ýþ¤ ›–’ˆ„zvqmSO $&(+-0369=@DGKOSmqv{„‰’—› ¤ÉÌú$8;=@Ci ¼ØÏÌȨ¤Ÿ›–‘ˆƒzuqlgc_ZVRNJFC?<852 "258;741.,"$&),.147;>VZ^cglpuz~ƒˆŒ‘–šŸ¤¨¬ÿþúò©HF ªÒû£Ÿš•‘Œ‡ƒ~ytpkfb^YU0.+(&#!!#%(+-047:>AE^bgkpuy~ƒ‡£ïÜœ™–“M{øþ‚}ytokfb]YTPLHDA-*'%" ADHLPUY]bfkpty~‚‡Œ‘•ÿö³±ROLJ hk˜¯²´×Ùùjfa]X@<962/,)'$" "$'),/269<@DHLPTY]afkoty}ÿþûØq:8&(=@B­°²õøxOKGC@<95&$!$&),/259<@DGLPTX]afjÞ²°­ªuƒ†‰³ÇÜóûþ‘\.+)&#!!#&)+.258<@CGK»¸¶|CçðÐÌÉ1#&(+.1GKO~­ëξ¼« -?A§µê󭇂~OKGC?;841.+(%#   #%Pkƒ›Íþö²¯wtRO>:<¤§úóâÍok< -ƒˆ‘–éëóûüú÷µ³‹GDB'%HÑãê‘5 - - - - z~ƒˆ¥©Ýßíûÿ–¬¨„ÔxR‡hF@À Âã(}°ú€F\N¢jT -ÄQ£ „ BƈˆŒÐéÏÂCcìS»›œooºÊÀ›}«ã±¯@~ù<Úéw+–ˆ_¤çyh9TÆcr &¿­7àÔj^T­¶ÌîiU(Ší¾ç—HŸ‰PJ)·Ý'}{ú-ÀoÖ¼­k‰K$â6à¡–žM‚,~Å}]¿­à}I;þËÊ-‚´Õj¤‚ñl-’29%¼¦_Y­  T‘fÚ«°Ì~/°9½È环%ågë‚‚õMÄZÌøÉЂò¬À©nnÌ Ö¾]~KˆîOo’R«ÞÊW>ï}õÈÛ t¯ÉŠ®“¢d2%qö~•ûbÔ§ý³½ãûhSý?bÌw˜ãQivy²É¤?Üß®ßVŠ“¼Ýwv¹­>m%D«‰èft¨š‡ž}JÙdã‚Ýt6…_ÉDË?|õõÃa€‡à ?x½Ì—Ngzp¬ŠqÁ"iâáìËì{ûõ¦¨seД³f?ÊȼU_uå( 5Ôg»w”_H-7XßD+ëk`gØIࡎӇW}XÆ‹ÿ½¿B5úur"Nr”‹ÓÞgÔ#ë¾rÓâB«×Ån•—Ÿ?# ݃*åíMìiò³„àxðîÒ÷ÕwߤÅ}!ÿ_þ?'Óû¤$¬¬ç¸PL®Gí˜xt­åiŸtƒžÊöe»ÒãxÜß~ßÎgµ8€»±.%K@³ì;bå~í„·:p\rÖ—ÄYß–»;ÛÁ]âëçUq’Ú}²ûuþpŠ9Áo¬»±1—ôxÒÊOÜ-ÀJ­hOenæ'ìæqKú€ìGiPê»:7$TBsŸwVüŽWH‚ñ`¦Ýç÷ý+°” ÊJ%Z™ ¿ôI¿’ǤBhgkSg—T–pr¯ÀÃQIvã÷}ùU7]+œ8;îŽ×=@[³ÌøÙX[xzJ@ž;N‚‡4‚EÅØ²w~Æàgпëï–5Õ - nÉ&ࣵTÞ†ÀÎ}„‘«ÈFæ7B—¿[`0TÀ¶5\‰}ù÷T•»F%vChÈ&Ò±w|m}R|G-/·V·–Eò¼T_ûÅï:‚¿¸Ñ! 'uRwÉâ<»•´¬à'mœjÎJz‚vÓì´&u~ϱQx‡6”<8Ïà7¼«—”a-a+ø |sG6?€)7¿Øwk>> -„ð0¾…ZØœSôòi}€Ëí4rÏÕ·øøÅþÞúõ‹â(•³¥­[ï—8]^ñ^3¼âÄ! ЭÛvEC®TöÐ6Ï×­MÈùÁ¸¯®ÌÃe²Š'3£{òº,¦>6`›PÊðtÇ÷®WÙØ–@ŽÇHö­ò³yÊc™´¸ºå¥ ûlA]©‚ $ ô@ú.ϦI‘{Ö)2¦³vѦ¡<õim—›.À£+d”$ _€§»×ç'F:q×ÔÛ—à§Íº_ §‡ vJƒ§êW~yoó[e囤ïá'égB¨›ó táªQ7£+ƒN‹¡-¼SÛ5>]a³¶¶lF¹ïXçÍ|Ê€Õ²O6UY‘û’{ƒ·>ê˜ñ8ÏðH[ðk{ï³èºcÚºPð¬›|ó¥‡Y¯'vråPâxP¢á Óóž` ñ|_PÄ7õüqŸnïí,Šñ+sñ@€nX‰ŒZVO" ]“ÁЃ®/2Ð\Ÿ:6ßñL,š£ã¾§“mBû–xSÍ˜ßøjW³of–‚ú.¿£ ÚÔwúÖÐ ½o¾–Š%#ðëÿnò̃>›ÜR¿Ãp6N7ÓÃ#®L»ØÚŠÏ7X[K¢z¸_KÑ ?`•Ècróð—¿ðgà…WÛ*4ÿ9³&ƒÑT¡-ÚélöNiÅkãPÂ÷'ü:q~Ó•Ç«[É>„_~V¹¨OaeN™€Üvp:W—{€Ù´…¸½ø%dþ¬t£®›&¿‚dS˜ÉµÕb²i[÷0vºNâe=ÐÞ¬Ÿ@jåñ¢Ze›×e0*ݹýæñ -¡áhùËá2û> MPí ¯ß€=« -O;0e ‚O‘ÞËv8Ï‘ÕNÝשäM´o4¬”_xyÓ?Düµœ™ÜÆ?ϲòôËlr'åþ£íï@¹-/ë£w¹eRô ?ë䯕΃u݉ÈfRðËÃûèæANØ÷m¸¦…Œ;ïòœ -¿+yÏ4ùÈ£Nº8üž™fßRDsCu‚n%™¬Ó™™.ð’Pè;Ö¾{Zñ²ýºÃ±ðÓ¤[_û`£ñ˜—}+(Xfæ ¬>Yi'ŸÍÔšôŽÃ¨¯`³ŽbN¹¹¥eë£/wÎlÂçXMüäÁy<%[Éþбì}N‡ÓÚJw§vË ½­H~ õf9'}ùù¦B"²È¤[ãÖ ,›¼þнŽyIHíA×ùèÖ[Ìúã’õÛ,*ó’#sie×{xgÜ6]ºi’}’_¯ûJ}æV -Ë*#G‰_³©ƒ‰ÜÜj«®„Ç„Óg`} Oß_@8á÷>çA÷uG»â ˜Áñ>ŽÍDO6ì°g['—ü^wkYÜ¢~"ïÊÞs÷MŸy@èsŸ—k¨&{ð¨³>¯oIËv±M -íä¯3Ða–~âÍÞîãfû…ÿ1½Âº:‘Õ}ÈJòÈOkc<˜¿¯Ò›30vfÙçÍYEGäÞuôð±¾1κ—гúUÁoÖW×Í*ø-ñ¾Ñ?t4?>ì– ë^òËŽœšª‡û>B̯µ*Ýæ>ý©IIþ@3¾¤®ŸCÿ¦§1ðÐF;ÝöÄfû•»ÇðÅ¢„H^_ûP#¿Xú‰CBAèð"ºy‡ Œc5rÛ" mÚo}É–{AÏÚ´F È E±ðÈæ§~9ãÄ”ô lÝ-v§§Ø~ŒòKU=ÒÝD†Aõh@ˆs–Oä1Q¥;²Ü·8˜Gú~ž¦JÊ3råPëït¯åé‹­PH_ì¥BÃxõ =tAúza9?5Õ™²8ˆLX˜<iíÓ-â±áM.ùU!ÝϯyVÍ“¾·gÒÓׯ©£8«¡È]„Gô½cI›Bëû[+‹ÇrsiLUŸ»ïÆò{¥ó` -]wF øå2 „u‡ª­%åÀìzc÷|ù~H¯û!U=Ò¹DüuÃxEƒ"Ý›÷Ü—ã?'’Ò$ì­6 òöòw'¶áÁ!c›_)ï{?ºGA–]t×Èr Tc<2Šð;öÚG|Zq'óí#XE½\вioÖ©Œ¾ãzÛV€r'ÏìXÃY™;ûf­­OV¶XnÑ«AðCÿ¯äºÛúÁ­°n!9=°Qœâ)v¯åÊÔ ©–Ÿ~­ì·`:~“v`÷uÐV ðCÊ8­3¬èyø('Šã$b–?C1‘Ý“ŸàŠD^)¹C¾ tWtÍC{ÓÍ­?ûsQ·ó¾ ¼çhKÇžAüèŠL¢|ú«îí䊞CÔZË´96¥uíÞòU±ç^*’Ǹ#e<ß7¦}‚q&â2û”óŽšfÕ\e®(÷Àʆ~‡«Þ;hÓÖúäµ²aDŽ_û"œ‡.%ø‰KoÆi‹ô`¨mKìÆ—+«­$è¡ÔˆõºÙX?¹ÊÏtÉ<M òLµÏXÉ£_fºEE®Ò¯1-kn =ÞÔ è›p95æ¬|³å­µèq×½n^ý©Ù¡hƒKçç‘æiÿÀ9]Bòà‚ÙM$èæ­üvÖÈ­ßUìѬ¥Æ)¡TîÁ¢³†³Óú²/·/à7u©¿R±îBpù<fb"NÙ˜vXôìèâ!¿Zü’µ|b©"Ý7îÕ—<¨áÉ«{#ùCJdêéYÈ™Ý9Âï^´¥_n%°øoñ˜Pï|­r‹4²˜&3ŒŒ5•½o:´ïø“üà -¦«¤‰\Ü fõ•ó޳ãÞ›MaŠd»³&ÉûP¡MÎZ_ïÓÀâgÝ”­é_ÚjF»~…Í£&=öË÷±ô8MkÉõ®ÛzÕ?|Ç É¼®’S0æBR²ÒÒ¹ÏÖ;ÝÆÿóëQÎuåQzJèÐrAl 'loø¦³õ“¹ŸzÇ›Þ/t]pp(̯6 -4NžydRv~\ÛìØã‘æ'•¢eE:÷à`:“P7)¾;~“›yö¹°Êòh7pÖ‰r+€w¸ÿòw¸Èe‘KnÁÖç|r Ìñ+уómÝ…8E1NÂÝÓƒrؽ, ª°½Oz›ä÷? zÚï€Adæ$D¦RJ÷¯ydòЛîx&üF1;6žÔy,l”˜ªùÛT|è jþõìKCZ[ë˜N[° M!+g™øÅѯd²4Ø%ÕFЀŸ¸ÆÃm™ûÔj_§÷¥ü] +º ¸ÕFÝô‰E`Pj5»³¯Þ•¢g“;­7kó×büHŠÑQºÅáBÍ¿ÍÙsß}nºi-ñ¾f)?]ÑFGÚ4+ïƾVß!Bn šf69ÿË_Px°±¾år÷¹}!‹à˜‚÷íB§T;Äéʺ?’ -vdX܃ì ä'€œž(þðÛ‚ù< Å~ìM€â¾œä!H~ -¬8öÝ'9Š› ý$·T•í‡Mv-x­Jÿ³© !<\·›Éú=kçá—"øIŽØÖÐÐ-=¤­»~œH^×”+¿5»]4 ²ÕC%•ƒw±6ÝÄB(Í£Nìí»—ß`_η=ø>ø'‰¤¢a°h“lÍ8!w‘Ö  ´_V³= îƒ®tYÈ Y*±òúã6Ù·dÈ#4æ§D¦W\JÀã`aÜ[³O'ÜJʽ¾ÏEVxð~G$•ä&a}–ÛhÆ/:‹<þu»rÓƒ¦|_v‹P}Ó9e?dxäÇg÷YVÔÒc Ôf•8‘æQðLwÉð‹œW´og+DNSEqÿÓÆ=˜$ÕÖŠ¬¢YW &y‡mñ˜ _ÖßA+‚Óäž÷$‰„¦²>½-î’9žÀÕ}?ñX+·Úü¶I±¥f“ûسOhé³9›f- VbÚô§ñC?øeNÛÓÃïû4Z·T±­†½ï‘”ü¯» ü¸bõˆU‘[—s‚“ßt‡°<(G³y¨·o¿uœóp1|mqZnÎð¶þŽ ÀОÔN©=µBîÚ˜F«nÄé5§¡¹†|I‚¢yRÊ¢L.“9ìà8ìkÝÕ})Ì]°Ý/ BGÜÀƒ>-“´-+wmefekxx¼ýލ¸¬ì×úªQZîÆV°Æ¡† gÆI]Çæ¡¥Ç|ßÝøq©Ò 7‡ÖÜõoÙ“Zê¶ÎýôF¼äwrŸUÍÀÚœò˜¦~ÒWäAñwØ¥Þ%ðl.Tè‰ÔZÖ)]ªÏtrªÄÉé¡îËð êfi‡!ÃPÆvZ¯zí,]ü¼ñH݈î{“Wû–’A6 ÏÜ}Ç]@:ô ¶†Ýx!·Õ7fµÿ»RbÕ‘{¶ü6<ˆÿê¿£~ÐÞ‡ÿK2Ò Ó'‘ŒÝS³ãtP[û*?¶µræ²{õ¨ÿºa§Ì_.·;ZB|²Öhóhª†YpWúeë†ÂuAv*'€9 LVzJÒ}ó„œgÈZc$È®o }®cïÔfåyE¹ñp@.¢¼zc±Ãìs!~X9mfö“Z6UHÈ‘AÎã@ã~ƒ±~wð‡ä6„cŸÄÌêô§Ü"šÕK¢_Ò;œAåZgýí%tÐÐúf}q»†Ÿ‚kè¿j›Guz |ÄnªÚzòV~áçÑÛ=!œÜGÌdc(í·<%”ÞWH—a#zà§©»K‡7ý¦s«ÞÇ:hC_,-3à}R’} ö{˜um›t»¾iÈΦÏàlÞ‹G¨E2~…±zŒpfDpì [ühúRK~Äx´ÎíÝ'€›ÊÈyUø5©¶È}$xi™ÜǾͪA¤Ü‡Ç¬/'Å !ú+-LúÃâ~€= Ão8TK5³dÿç•ääŽÝÌ~ùŽ_Ñq JGÄ@¸¶OÆnßZ„º¥ž~qå°Š'°%9¥9§{µÖcÆ;˜&ùx´®{;~‰gfù*ÌØ„*Mä‘䗧↱z—{ ÜÄBAU 8ÄxAÖ2Ï ;wúõ}G¦}iæ+®BsH` ]àaçMîò ©¾({fEÔlrƦA䎡>ãß‘YŸKìb\³ÿ5²pao«B«…ô¸éÖã8J\vb­+y%ùåÇ’~MƒŒYÌý"°ßcͦ¦fU_uêˆZÀ»²~ ¦Eȵ¤`š𯆰DŒaßËòæL„¤'ð±a£#ìÒ£°FŒÈzýH(ÅÍUwWC†ËìÒ[4ª‘±‚Ÿ“¼«šû6L…t_¾ôÅÁôÁ£€lzþ÷·5ò!·«>Â9›¦õŽ÷á¡ì¬Å›umÕ¬hË}Bá>q:3NKbzxU}ß(ç±uœþÕÖR±XRòƒv×é¸uD¢ÇñS¿_tçÇ»ÇöïÉév…Ó}Y¯_Ⱥþ_»a içòl"þ»›_S/›t°Ët6„­˜XÈIÀLòŽ2$ eZÓ`5¥>vKqPSb#ð…¬-ž0M¢RlP9û’ݦí¹{_rÑ}¤ÐµF¡@pð ܽÊ>#äVÒ¬pÎj›¶ã­“MØs´é¬ø‰`En¿ôàÄ•=v˧¡Ú*‹ L~+}ß[=¢ŒªU`õHð#¼Ø½µ_Îb)qx©7l¢u ~ 9~úÚ›6°«e¢®ÊnÄTbm#M—v ž°}땃Ð.¯”æ°Aõ¶ú† Z€ºlÂQÝ•žŠcf:6ÕÆÑ„ì ¾ÿܧIT -?£÷î³’ÇaÓÛZ‰™•ôÞÑ£Y9OdÓÂÀª¾1ä¾§Y+@¥2)÷¶ð¨Vë;¿$ -1N=¬»ÿ<ú¦GJìÖ¹mkQ ù9¥²[×ÉËfToñs½õh?¦ï'ŒËß_/~ýÔOñÁª÷»ÙòVD0ÆcâŒ|­ƒw1ÝKÏ>n.r" øTÞÖ§·Öì®™LSØ$ÜåVly¹q•;‚»ÈÒ²<‰’Š]X?6ëÜGu~Ž Ä½O¹emŒãHÍJ‚GVÆ>6«ÂwL#N‰Í¤Ü~GxXýñZ_ „ƒÃzI3 v§ü›‡Dm¥u§,áW¿­rjO®tœ!— »Ûƒ_5rÂ"È.`ó;#øu…óÄê—gú¥¼Œ Þáý§O 0r´â¸¸t©w¹‹W^»;¢»›ð¯Åia‹ƒ~†V,í‹IQðJ“&òÕqJ‘¨ôà°Hû~¹/>¿(~&ç/*¼$rß÷©ÏKðˆ†·áu³JÞ¡YYgS ·õ‘Tàwª&½7½l¶/-üήē)àGø5lÿ>OâÇH öý\Úzô·x -2nØÐÕ•Gu«jç1Ywƒ§ß]?1–ÓýxUò?³ÄSÐ:­t^c-G-WƒQsì­•ò‹ Œçf©[£n-kœØc.‹/¯)}ÑŽ“yX¸Á D5øû<¯¹—üZO¥üêÿ¾Á£§ºÇC›Õñ³ïŒfÎ&Æ òRn6†ÞúbøûbM#·ÆÉ©ËdSÀî¹ÒÀ¹÷-ÿ}[øùo+Fäôd·ÔÃ`±¾ßéÔtWÂsé›Ðok)ÎŒ¢ÃX$䎂Š7>W7OØeÓ¼V¢Ì¤J\³‚® wwÄÿÊÚ÷¸bõMn¦p k²å.ÜœÇ -¿n¾þŒñ³`nJsñè³Ï@iMú¾7÷]¿êm x Ï_ªì³-ØW§ù³ªb_TöFxh$÷”ñã!ÌܺÑô˜m[¯º÷»îU…Ÿ´#§%ð¥‚0›eî$¿ð§yHïÛNI·ø¥óå¾ýRQGO1hŸxày8•‹ŸEÿw\–%È “eŒ0$ËÄÄ/$r9,´âN<‚!jÒ"NÛ'rF'¤?Ðcü°ñè¡î‹sÂà|MIÖ§"÷qË’Öp)•ñð5k}C•MÙd³ºÚšŠÌq ²ᬔÙ4‡z‡Lx̘õ“$OBì&=|aÁb¨ÞG%ÊOº÷ÕùmMƒƒ6Ns‘“œÝþ{›¨+jPHün% ZÝ´{rjÇ߀¯}®~yù½Äþ{Z˜‡k‰ ɯ•=+Mô× -wYHåüò½ùñZre‰´zþŠ9”‰4åѸ€‚ClÞœ^ë cŸ¨î;ÌËE7ﰾϣîЙÒ÷>`ß»cí…Ë e_¡[ƒùÂοÌIÉ-=“bwÀäÊï_në®Ùͨ‡29UŠŸ˜U&üæÝîÀÖ5J½Ž>Å']å}2¨~qDûúI’Z«ñî s£MFˆ·ÅRö¹ÕÝ~Šf;+«£>Ô6ÍR—fÁƒZÕlBÑiÁf•|âØjq'ó×t¡»ú˜€¦ïùVÛã×ìg_Ðx¨ùãSùP(a£>k‘>¾QgÖ…à#›Ö¬*C‚}oŠØ¤o6C}Åðµ¾þ›û†ô¡ØÆ‰|é¬{³4€$¿Òÿ}òÛªb ‹ÀÏ~Ó`òqry“SNùÙ¾µ²ŽP½ $ƒÌ@* ºÙ«Û¹9ô;U*F¶ G‰œ•­pW̓өp"+Ÿ¢fާBfa§´¿N½âU¡J•`‘u¼GR¬I[8‚;„Ç6EñMÁtüÌ^î3﹫ŽÞ!:ŽÙ$Øc™¸;O}Qà^k–\YFrg6+Á¾žØ”¢¨Ì¦ÔTxÀC/~?I»±»DÁ Y›GùÑëFàg=9•?»w`k¿Þ®xGÃ/4GìOœõ3Ã2~"#¤ò­î±º 77xhxrz+ ±Þ›ráªí‘ÚºMêÏm=*Š="=‚Ëu§âêC+DbŠVº€Z%»'È$hÛÚ¾ÇmƃpâÑŸ¥ç¾¹y¹Ô·Í ÿŠÇ¡ehµ’wà&ö‘œ5 Üøéïpߣè&=jbw™— -hç5afÀ®å·e·ûç{ªÂAüܱße=Byânz®%î¾ x%åÔ¯U~ôè2(+dP_?ñ§á¦xøØí±I8…Ð[þéo¤ßà%>*>|¡ëKdø%âÈõɾʾÇ}|í FhGËÈv«‚‡N¤:Ž_K~ûÊ‚v_-„â:êa’/îçšu—ÜŒQ6õÖêËAîÑOsVO¹•‡ðèT)X'+îWþ:BäJ×]»^~D¿n"»õ€A ”ÁÏ ÝÏãÒu‘Ê;~ÿö0\ÌŠwÒ#\süÂt ’’t{!\2ZuªçßûÒ²O~b½?ËY`¡ϲ:X“;¤ BúXê›Ë¬b4ÉíɦœªŒÔûÊ @円‡—a°Çî›ÝÒC•‡ÝB¸ü6N®+rf÷†z„ß¶øÁÓnaªÁÎì^¾ÆVÄ'«L·;&øáìµ­úÞVãê3ð%¹B1Zïþ¾ vH-àÿ™` < |Ò㺆óz‡*ÑÏ5UÌ,ÔeȘMzSSÐAçÿ¢â»+%cüV¨¯»ïú}` ôޝy`ZÝaRß<" ÞQ›&Ë&·Ø÷…Ü+úñÙ¤ÅáÑh Ä–äàö}r^œÄÇÉ -Ëï{[Å<Í×m7à"§1¤²WÄÀ~4}|Ùœ4™çáÅV<»ïOõ3ÇEö³ý˜5µKTû“!ä‡n\$Ô‘TÒËÀ¼6PËxÇ)&^Ê-ã+û…Ï:%uõÈË·¥·CRâTúÚÖ™@ûè€}SöÉÞbö?5u…‘§EŸŸ:r+©/k࡚µOÉ­‘Me¤ì3û± ZúØW*·þ~,m¹v/¿©üÄÛZ,È©De·tõø¿vív’[s¥®}ã§m±9]IþCøaФߤy„ -å é¡m´M/Ƥ`9”ûzc6WHòKËÇÃLÞ[¿÷aö0æ)]sîx -•p“"¸_ø<ú<YêMÑŽðœÏáóQÆð«^`UÎJ\÷•C†79<@£Yu“äFaŸp«¯ªØ„2›Ì/¦ñK˜¯-½*ùM9AÍn{âVØ““1ñÓ\kö½Ûu¿Ü õxÕðî~ëÉÕèÖï¡#~0ÊI#!%"FCWðn?r3 pÅ\ô9'P¯¨´ž0zÖ´TíS"¸>ÅÛu`÷‘"§_½#@ïŸóyÊ‘"PÒ4áàbX,?Eå†6¡ìÓ2Éh~Cmþ>1rCÛÆ½ PØ;Œ’ÜšljGÂ>_¹K$C)&Pc÷¢¶î!I~I!§þg·ßœQòàw¥k7;W ΋ó+ÀÌÝ‘4+8T÷m—úiHÀ¡uåúLWýbñ}Az1 åaQCB+A’kT‚áD Ðú -÷$ú (ç#ZT¿@Rñýg‚ׯ­² ‰~_G‚(‰ú6¥s) ÀÄÞ×$ôeÔˆô•SŸr`ÐQúÀ#ÈôŽIr ˦aöíŸw ƒ]R¹‰˜5øMuŒ®»‹ lÜtC¿Ïe,‘St‚ºR‘äÔ?ÞH ÖÊéÝÏŽV|­ð㧃zðD’y˜*©Òõ+'¿ªqÀ퇧ìcƒ}„Á- ú=V‘¾ÇieR˃Ò'Øpù§àìwHàp»¢,op8Éô[Ø-0ÏÃ-fWöIÃÏûV¾äB ‡$1Âú¸-|`á¨&¢6}óÔÇóš^à‘† ³ÎdS(öA5䮣Y‡»5Œßå”áð£4»Óÿʯˆ˜Ý9Q=Xûσj÷+’ݵlØ -ú…Ìo<^ùí¨ÜÅüIªågðð}ño¯ØÁ&É2¶aÃH*ž -êÅÀÜ»k&ðà(Qx“„љٱ«b¡¬ ;T4$‡À+ 9D|šÇ7|kô \äšè!Ã>æïHWû -öq4pÛ¨ tß7@îÔ—§†ãÙ/›:µ5Cö¡›àM#<`U“šuV6ïµÒàì<Ɔ9-7ÙÔc'9±ƒß»ÿ´ôÐa -ÛCkWÐïèýš6¼™,6ÿ-¦Ð>¯F7†¤R׸d~’ðQ©`ú˜ŠDxHÜ`}Á—ЉCYËc5 -¾l_’Ä•Àc?ß¶ID¦±÷MЩ®xí1ëý>×0ñˆÕk’QÀˆô-Ý÷ÙצôåϲÒZ“ðȈœˆÆœÇ†o0îò»‘“ ª^~ÚÈJ=‚^ñƒhw¼à'±k±ˆß~°ZƒþÞº¦ŸºdG¢z25rô+‹Ÿžtm\=AJCFغ?¿¼ŸÍ¨oÕ®—qø§}x–=Ònú1÷Û—xA`Öt¶áг–™þcé(Îø²øýªn f#`tP‰I÷ÙÁ¦Ä)Dé”Eð˜GšõMnƒlÂRŸÒ+?}ÔW¹±^°û˜´S'¦Ê¢@Nø±|ÓXROðÇn9Ú혭~jön8ì7°G”|J˜~ÚôÀ—ø ì—[¿pþ~î–Ù£ÌS+é°A{Œniѯ&~ƒ”XU³+ùHÿ‡Ðr?tè4ïi0_îFÅ·œªô¸‰%Eû¶š.ã>6=Bv,'#§o$Œ”-nض ?âÛÌî”V£ºãáfý¾&ïS_0x½£HîÌã.جäžü}a–ø¾¥ä(VðTø‰¿­SÑ×-Ϊ Ìf.~FÀ¼ºŸÌõ؇z4‹_ñ²aƒ9"y÷±HÕÙ‰„éÑìêüSPÄHÖ<6™ä¢î?½¡§ìfKÑÊ%Âü -ý¼Ë. -;b¹lmÓÏkʃàƒÖ—šE¥#Òì€í§Ø7† ªt»Ò]æwŠ0Íûî`ÞQß/}gÇÝhÖBšÜjUÖîê³øèÆn`Éõ„h]7¨¢ÅOrÚ=¬[3Õ|b͉LæÓûõ(»?,寿x­zô‰ŸØd•?†O?tk½_ªwA«Hß4¼çAŸé…ÚóxŽÃÙkn]NCjp…ÒÈ•ìÐ E,ÜÜw¡Ã¦ä‘Û¬ôÝ펚ޱŸÜÙ4jömÂÒw-D„á)bC¨üªìæIÕC³YÅïÖn V/Ôl|Xýõ“æ~QµoØükÜ#§~õÕt…Ÿ›4ûŒò¤HD1r2äxn¾'z˱ƌPé‹Ð†Í§ÏKå_p`mCVÀNÇçÒ[Æ£­÷…‡û? ìZé:(W×T‹¸¯ -7}‹³f 0ÀÂ&?;£>¹ºLV˜îã“nÞ׺aÓ.õ¥¯w«ÉXöYàó}' J~Ÿy²›ô²)“ÓðÀlNcw¯ÝyáW²Ï=Í¥³‰¢6w+À¯a²K÷†e›éu'¯1Eå«9.ª£ G!e@séãŠr˜Q’Ìæ™vº[­Í<¡Þqô¾?ÐQ¸¨”ÏßX")j_öõ -°:ÁZ× ”´‹£M). -„>—ŠO¿/ŠeÜõuGQŸ4x°µf#Üõa±OØÀøu!”ü"@ÈI# šÕCONu˜Í0·zÑZ»ÝŠUÇnÛè±Ûn'o§Š»ŸÑyýT¾ñªG¼xG?Ý;gÀ4ÿ”ÓÂLp9¥Ø{ :nÞ‰²ËwG¥W™§\kvèõAeÅÎF¸ß°óYÝÄ#„•Yq&›&Á"ôÑ•Lµ(íÍô¥ì‚uMTÖÇöšR¨¬häQßR­©<&éšV…bßœQn*î[°¡oÔ~Çi·¾ª‡#b¶·k´›i=š³û&#“ýžÕãäv·¢Ÿš!=Î/ãry1¬5Bôh”uÔ˜7†ñ¿ È$‹ªÉ;´ÂÌË>Ÿ/À¼.+)î ~µ,õDö®h/ºâE ÄÌs¼a¢ÚpRpøÉQ¨¥Á‹¾¢ôQÑä>“ÐY#Ðy‡õ9€‡Ý;’HFrO‡}‹±á£OÉcÏì.§z˜?«Ý`!=–Çnd1#Øäû¡<›þÖ •øq –Œßj5ª2y± ‚tR»éä­FTNB1’*äÏ)™sÃ9T%!ÙlÚ!}|f/™E¿´aýšl©×É6h†¸0®xi]aÛQèénOÁfšÐQ Pßt.w<4€‰ûš³ÆFúÆ{N}ÙÒWE³æ9akSÜWÛ7°ä:»ÿ&êqIüžÚ ¤ÇÇŠ!qí÷w°Çн=lö û÷’Þc2`ÚÁü<Æ š¤g:^ã®Ú¨§HȉˆDÌ÷YÃ=ƒr¢M·;ÏÖ~ö…{]|°Ú·ÁÏllo¥Œ¼±UžO$çÑÕôQ¥1nÑ Gô}­=éS«;@êcÁÃé¤w\‘>¯öf%å‚ï~_'¬Âoq[[êÊozà39i¹5 ÝWé ¿øµ1K9¶_ƒzèä·P=¸„å.¹ì¢í/ï ¯nÑ/¶àXfý¥ È™ ü`©!”ñ(›íÈvÛ -ÛIVS¹§1-pÆ=Ã’¾Ÿ}åס,¤úô"‚†‹ ¬«©8kê}¼ô¡8ÆÝó÷¹¡³F­qaÓ.Eî)³r -KÉ/±[Ïî®Uõ€ÇàWiwVzt³b6× ~t Ö~õ€ân3hë²ÇÏd|ó—ä»"ýnì¹ÖÚ/jÿ¯SRæV 3,ÿ¡w¿Ð.åMñ5w.hV¶º÷öÐjÞ×D°VZ‚„,Mb4¡ø*v(q;€“U Ûñ§Ü'¹¦Ëš¾Ñ¦(r¨t„<*ÙWC¾à}ƉÉïU=8«ÅoRN+»Û0½ÂÝ)@~œýþ]±ôóàsªŠ]îjZ­§EìÑ­bÔrq‹ÌlÆ«¹R™A¬GÌiWem3Qùž’óŸ•ôQKðS D˲Xg6©°wÄø }*Òx߀ô‰ñ©Bîö$GÎäfŒlªÚ—«ä—Þ¯4Ô£†ÓàHN+‹Ÿˆˆô*U¶Ø;üþ%üí. ßŽñ»:~”™³nþŽÀ´DØ_·(>N`ÿ"ÑS$ÄR¿ïe|="‰<¸î.ϪcCuWrÖƒ„>!Ÿ©ð™hVÕØut9ØÏLVêóÇZý}BWú€îØA¹ï?nS|Y|èk`Ö=ïø5N}àÒ·òHnj³†ÿÀï[<.èÁ‘«LÔà%~JÚ½†J.ûý¦—z„É/ÕœöApwcIú}½›Ÿ™õC»ú)üž}Gv°ÁÇŸ»x?¤!‘gѹG 5’;«S¿@);9¦Yéž~×}ñõ×w§—²v•ðÊù—ï½#"ݧS_¸í(}{k}õÒñ¦ûÚ¾s‡L°IE}®‘ZsDÉ-’MMDšà×V¬ð£"ê¡xíJ®zdb÷¦Ý¼…ä4¬ ¿•—ý¹»µ4' »§gÐO†?om %Ä -½Ù‰<Øíи§sýè Ý54¬Å¡–?zhYwuk‰y¼!•Ûú†PTád.î ußB_ŽóT÷%w?CÜ75ñºAvŸ"ú^ƒpÿŒ ²Y©s_$ ¤_ÄÙD €)èA”¤½~5Xëqâ­y–Ô[=Ã5Ùƒé'·G×Üñ¿Ëì® ƒ½k,ÿڃ؈D]}@'Ö$›e Ú;¯KÄ5»3´ˆ¼ÿ®‹¤EïÈòxúùÔwšô|îØÑ;¶¤/4nu×”Ç0¼&‚{_›0¼ã‘ú¼± Ù×£¼ú¾øUÖK~}aÔƒ ~‘âgu™\-fVmí×ÁÝ#òÓ¸pìQ±ô#Îvü©îXÌäùµÏÈgC®Ü&::630,)&$!$'*-037:>BFJNSW[`einsx|†£§¬°´¹½ÁÄÈÌÏÒÖÙÛÞùþÿýúÈÆÄÁ¾>'.cfilÇÉËüÿxsoje`\WSOJFB>;730-*'$47;?CGKOSX\aejotxþ »½ÀÂëúýÿþòˆ;841  "14Ÿðþåä㺪ifc`"$%'*8:{~„ˆ‹Ž‘ùûþÿóëéæÍÊ œ—"  Qqޏat’•˜¶úýÿò_!rýýí¢ž›˜•’Ž‹ˆ…HEC0/·ºüûþÿ™EARW[`di†‹”™žþûþêÏ¢Ÿœ™{xu-èüûýþÛÙÖÒḬ̈¬a\XSOKFB?;74" '*-148;ÜýþûüÄC@>/4Šåðúûï̶k ¤úö[*+SVY\`qÎêþ¸´¯‡ƒ~zuqlhB)–šŸáëéïùüýÍËÉš‰…‚j*gx{³ËÎÐÒþìêêéæ—’މD 37:=sx|…ŠÅäøþýüô…tqmjc†‰ÉÌýúøæüùáз³®ª[äùýЂ>ACFIMux›íîúýþýín]ae¨¬°µ¸¼ýþþýþùðÎqnYVSP>DG—Ïþ狆‚}ytpk) "$'*”™ÂÅÉþàüýþýMkýüÝüùܧˆ„{a!aej„ñùüýßÝÝÇ‘d`]ZŽÜÜãûî_62/ #˜þýí½º·µ²k•˜›ÒúîáØÖÓÐÌÉÆÂ¾§£ž]XTP  58;þôØùüø½›˜urWœŸ¢¥©ÁÐëýüùÕøþüùÄ lgc-(:lqùÝÖÛîýþÍË•J)a¦öýþøõÕÔÒÖÿþýàÅ€{wrnjfMJFB!UY„šŸÌÏÓûýþåÛÕúýþãÙÁ¦¢Ÿœh„ÄÕýÐíÔ`[WS.;>BEIdhmquzþÿÖùýaJáýÐþÿþüùß¾º‰„C(+:sx–úüðÚÙßþßգދ‡rnkhîýçÛéýåãผ˜”‹‡‚~zuqmid`\XT8520-*( -¥ª®ÊýÿûÌýüÐÎÌɶ³°}yvro0ÂíþúÉÇÿëן|;#! - -%(*-ptx}…ŠŽ’—›þÿËËÊù+ª­ÎÑýùöÉÈ÷üï˜{vr% - =A{„ˆŒÖìóõüÆýþýÂI -WZ]y’ªÏ÷ýÄÉÊþÿó»›—“ŽŠ†}M @CFJN†¸ÿÊÅÄI+@C§ÅöýÖíþÿñˆ8630&F[_cgkpt½ÁüþéèÇÀÀÁÁÊ×ðôùþá=âøöÑ»äñþÿÉ~zvrnVROKHDnrv{¸ýúÌ¾ÅÆññŧ V½ÔþùÇŹ¸ùþü½¹]YURNJGDA2AD}‚†§«¯²¶ºùïçÏÐêþøÅLÍçïôýûøÇ¹îùýÿᔌˆ„€gc_JFC-/GJN¸¼¿Ãßþþƶ¶ÁÂýþô½`L`ÈÊýþýÄ»ºãåæèþû†‚[WT?<( -2IMPTW‡‹¯³ùüþ»Þý·´±L=::gäîÉ­­­®®¹ñ÷âmiea4 4FILPz~ò÷üÿú°þýôÔÒnO((On€š®ÃõøäÁ¿ªçèûáÞ|xa]Y1HLORVZûÿýß̬¬çýýÒnYY™ß°¯»ÑæèéÛØ¯—wsokgd`\YEY]x|€„¯³ëÿ÷ñ½±ªþýú®uuí¸ª£®ÀþÿÚÉÆÂ¿ŠKNR—›Ÿ¢¦ÿ÷ö°¦®ÎéöýüߡR4R‡×þô­¨Ìýê³°¬¨}yur[XT<+Aœóý·µŠ‹¦¨øá¿ª¦£Ÿœ˜” 9z~‚…‰‘”˜œ µ¸íøÿê“üýóóÅŠ‡ƒ|UQNK;6imqŠ÷ŽˆÐÒ¦¢Ÿ›—”Œˆ…}z+XvÁ݉‰³ýi;85Jp‘¦ª­°Åýþ”…ˆŠšøÀ½º·³°¬—“ŒvsˆŒ”—ºúЭª§¤‰ýŘ2mptx‘•˜úüž€€‡“àâÿýðb'h…ˆŒ¢¥©¬°³¶Ñ÷šŒùýýúŸ -=@Pl‘•˜œŸ÷~»øþùݵ²¯«¨¤¡š„ˆŒ¨ü†’ÒÕåþüúÔ³°­©‚i !F^aei©ãäþ ƒyyàÿýñÅ™VSQc¡¤¿»¸Ž‹€{|ŒŽÅÇôüýÔº¶”h4~‚†ŸÈÊüïÝ’¤¨þüñܧ«®±Ùíù‰|£²üô]ad¢ýýæ{rsÿ£spmFÄǽ¢tøÏ¬‰…‚Ysv—¬ÏçÝ—ov›ãåèûnÎÑÔýþý‚ž £ -endstream endobj 28 0 obj <>stream -ýýrL?BEHKorvÅÇ÷óÎouƒ†þúöñØÈD'ru­ÜüþóÅ{mnoŒªõÖ¯}zvrn630'>vy›¯Ö±ÇÀ#3lÕØñóýþặoml™ýþýÖž›—“g¨hiw—šž¢¦©­±Ùÿþ†ƒ@%!%8IK²‹‚„÷â€NQUX[Œµâsadnp¡¥ÿ÷"=ÛÝàýþßÜÙÖÔѵŸ¶ÃÑmj&»ôë³°vc`a·ºóÿõ±$*+6Š›Ïýþš–wur``bc|ÎéøþýâØPMJG€ƒØýàie—üA'%'AÖñþåÉÆÃ¬¨¤ êðüýâà™ZW=aeÚÝßàüóyÿ,2£…ikzÍZ]tÉýüá^\W¹½ûæÜ¥XVT70>ØÛï`WïÞRVYÄÆïdSTa}¹íûÿ/ÝþtqV•ìõýÃÁ¾Šwz¾ÎåúÜUTPQn¸ä„;4¦ðõvdfàùý”‘roN3Kû÷gD448äþ¡xu_\ZPR¶ýèÕÓÑÎËj&ùKLÿÑOFdgi¹ÏüÎËÈÄÀwULfiØýþóã2_b›ž¢ý\GqÒ¬rA@<<Oáõöé0#5ý>@B˜œ¡ÉWRRpr„¸ázIGDC‹¸þÖ…2/,z~˜KIIÿ¹·•“‘sqoUgû‹ÓÕþÉ}yv íøõµCEb{ìþ›_¨D5:JG£€ÁA˜d.U&?€ UdFpNœ dQÃ(!dŒ0€È€Èâ ô¢iÔŒX¥_zuÌä€LtšP²Ï¡M_Ü‘¿k®lÞ•2Ì#”®Yñ¹íï GR‘ºö[úþÛ‡ûiŽiÏÝoÂmˆŒ7«û„Ìûªú”á¬ØT\,™.t?FÞ;‚uM¦œÓ.…eèiƒÕzË$ŪúˆEMmAñëªMoNy/¡•¬(UümJ±–¯¹•¥Ã¾s3õû*<Íñ2“ÐâG޼Z#tÁ§±ˆú)eG.ý×3ƒýÙ§\Æ!qYkYßóOÍ´ƒ=ïÇïò @µý1gÈ¢ÎÏŸ I Ôà…ÀÿåaŸÜÔæ‡z ­Äï-x5•Í -©ï\ÚVN$ƒ•¡Ûø\ˆsÏ>>7¾³¤†¿ñ2µ/3õ°ö*2h˜}&S‚‹ñï²ö> [wåÇr‘j™ä‡=5à_*—Â%­îU£aB¦®7Ú%3†Ã `¹Û¢Z€ñK’G)òoàXî¿þB½Ý&ëÚT²wÍ X,~9“ñ2c£¬n½ «»Z£w¨Û®é7áuÑß?ºûd¾S•fE3 ~~¯oC,x±ßPjH ºqV)}¢ÏÄ9|¼¤Çü:Á¡Ò <:?Â}(ª rc„¾r]x(%†!ˆ}i¥?e-²ì´F=;=]+Ãý7ÞþøÁxÚ(Àˆö3ÐòÕ¹™nKöi7úqo4ú"¨ôi­ÂgÌã›yiG -½¼ã·ª&Ò"Yi/ÉEÒ¼ë‹ -oñcâ0pÎ rü)%Ñš°* ¿(P~Ú ®™¢e‘ÓP -¥&àÏ*ܦiæ)dY\é.Çñr?à„¬¡LÁ½Ö[}RæaäØjp¤üXz9`Ë?ÓïÇoœ¥Zz¥Q‘fƒšZDP\{²ÇzzŠÁð4ô_b™žA S乓ñœ;q0Ìryý6e?^ÖÄa€÷·›D6Å)^4@^·¥9,Ò8‰wu,§¨7³2ž"ÕÌHä|,c@¥€Ž‚ÈÝOÛçøÉ`žz¨ 2­ õQ–’,YÇ -“ºŒ•Š1[µ¿kë$B«×<…ph)"$DÂ'»úîÔ5®pNO¿Î­€³NMN Û`2®æïGÖ[Æ:¹ÈAUPö áœëàUæ„®>÷lwËyVá°”J±Y­;/jrÐ0ÈÒxBzvRâºÙú‡=8 Á3óçnyâHjÓJÙü¦{µFR©¶ÜTZÓ¬oä6‰Ù³â¾™ÍŸ¢Ý“yðøÃi#¶Zë8Óg -÷q·¨'I¿Ð|Š]g+†óÚ8Eiëòõƒ¼° ÒNåTEеœ^¾+p‚^IÚ—GðϖH™Ò$?Y;¿fáÃ1º8vÝððçÑö0KoõZL‡¥±ZÅjþQò:¥r…Iû3Îr­~¶ƒ ­˜±ôÀÁju2çÂíÔ¹¡XïŒ!ýNuòÉo,êPªÁhÔEÆ|‚è"s6Cxå„Ôé -ax@M -so©}PzáJ~ÖU3º`]—Õ -Êßxî:B«žõyn“bBB á‘onãJø¡ªî‰UyŒ[v5¨Ùö9Z"y!¶Î¨;Yÿ*ït_Jý²ÑÐtÍVPG¿x=ë¹qBíu…Ì€âtᢪðϬÐ8롦z¨i&^Ç› å9€ ª÷YØ|K‘«@ßÜ>öuo¯!8i–ámäµüÖûÑ—(ŒšAɸ -$[:“ +¨5êyfúu­[B ôȾå¶àP˰WŠe‘X‘ÛêŠô³ ¼®¡6‰øÝ©¥<„«žmB&™TŠBÏœD?F‚ÉY΢:úÕ"ú‡ÈKˆ)ö+RÓòX é2m -GQŠ:: Âò *Ü¿XŸŸ|#=4Ë ‰î6˜(v7ýüÝI$·^»1_7ˆ°a )¸ÍhA^‹·(ç·¤}È’Œ¥HâGÿ«O]§a\G -)Ä÷-@J±Oá‡nËN*ÊÄ¢™œ¾§1'Z½-DgE„Ìi…q¿ž%_&:pÓ¯[V°,ÎNNšŠƒ{?>”ìVÔnkÌVÌ ùLͨ0ã„ñÔ½.Á—÷qÓ\¹ÙDãÁuÃQ­Â½prYŽéÝ.É0såU$¢.öû@uéäNDC÷ð{W;IÙ„ÏëH¶:Ë­(ò³n ƒ~s··ï²û\ºÄ72H±Ðß;²]ìŒuà¨ûÛ¢³Ü˾Ý~ªJ?ºbŽ­uæáèä­FΠĜ O€œ«s› 9Ê3º(4ÎÁls=Òz¿±Ï÷í~nù€{œOJ2Ë×CA­$s|—Ö„Çû¬##·i±Ðà ˜„O†i…¤¶Ó¦{ &÷ ò[;R(ÆN®Œ(ù¸XMÉÍt9¹ÈÕ†‡×+Iǘ9~ÏÀæÏ£ÅÉW²®1ž(G#x&8º§t¾Ãt(OHq$SGß^ÖšÏA*ûpxÀ¶¾°ÜÔ•žì›(~„R.ûjq-²ÚÑÕ5Ë-‡V;nSH3xÓ5K‡é1ìj¨¿,Á¢ÅV—ù  lXéî©S1ŸNÈí–4“³Ìh3B… ˜öÆÑŒ2ÈD6E!ýa:»-?Ç_Àïõ™kÄo(6‚œ½“‘êà q-¿.T&8ÉP³ËQß8á•ÒYWr9â Ó -ôÈ8ŽëBÉÆO.žS²½¥O¬JóÃý¾T‘Ò£³1iÃÅâ°Äö¤ÄÝaªÉh]J#è¬-?_+ˆ"I“ã¥ëy Š¤Ò‹%½¥‘Ù~g6fœôd{Û‡¸ÄPnÒWø€År{zôC-„›ðû&á—Ö9Ìuäè¤ûìZ‰ÈYÛ -õ¿ÆõC“0ËV7_5ÜCñ¾õ)v¨: 3¸€.™8{Ò€Lä׬ƛ,¿ÎfK²X:/»p苃*·hÙÏ “Û–ÄÚñ˜’öº)óþWûí’5ZV®Ï¾žJç(ôÌðŽ¾‡ÍÜ·³‹4ºŒÔ¼&L;mújÔ³²wÇÐ0ó¹¡Ù€M!²^g&¿Ï9Éã`6Ÿ¤ß?7àQ%ãüõí£oU¦.Ó~2U8uZaÍ›‹u·¯FyXÓ"Za’hù183ÈúÌË ­GðxPµ©QÏoüVß±jæhMõ™-»ØË½Ñ‡àܦÿ×&÷±Ãï Z|cÛq8Ý7„ºí–G·—ÁÔ÷=pkãgv‡W8ÞíV6Õ)´pÎ -¹UÒs'êU™ø-¥BI ¹y“o/³€à$’?.”ŸÄ‡Ú á´,§\…™,Mû.KàTÊ Oã³›%B¯ã9Ä^ -äÈ7¹;Ïr½?==ÈûolIT$x´Ìª¨/ŒÃ^ƒÅÚiiј4~I3%¢ºÕ…SÇ~㌞Ls Á*Á¡1²NpXA·Ò—:M(qd¾%€6Ng)èÂPPåáã’}-}0ð½ž{Ju^ߘQsRžô‹ûåÑÂ[î„„çÏ -îm ˆ 'Ⱥoæ’emI54ûõýÏ@ã\y‘YÅáãš™kœ°>³¤8–«·jBùÉâƒóºîä„xl3|kJZ)Ä?ÀBj]¡£ 8)¿•æPßÉt¢ <ºÔ´ÌðZ{‹ÏîÃã9¼òÓm˜—°?åÜŒz)$'1”œ\S!‘Ël -”<ÊK0 äR¹“׫ðúÙm­|—¹Üç‘-H$¿WÃs×l¸›`Сݧë$èÇ :J6Ëfæ“6¶SxäwW©/ϳº/ú±—b¢ ]ü¦&®žÏ -áu c*A™ðë6µS€ùÝo0„ø"ôVO¶$sï¼3ÝËÕØ ű¼91­ôó€¾ÃwyÐF¨7íiNÆyè¹²‰©þxžós 6¨Zúþ7«2§ç¼ôp³a‘?·c[Æk"tGæË|_ùÏô‚ª=s~‡¹CíÃà'Èwfü3õÎÙÞÓ¨¸fщå\"k-f ÄŽË Q‹Çñù»ê±I+$ÜŒ0¥Âøw‡wŸ/fL?œ¬V·còP±f'¿Q¬4€ø¤ÄG¨@,5ä¼hØÓ*S}áH¬Nqy]¯§`&f}™ã¼CáµiõAglK†Âq‹b'w…}µiªi(wE]XîM¬Ï*XÖ÷ÑcûKì×Ë„}“ Ûågbmgµ'"ÿŽVb×/¡†B½4Ìï!Œ+‰Ghy”o„ÕNT9ÿ! í-O̯³5Ö[±¤å±ÁÖ"C ä7ÎÄxPa› -8"Të›vfƒÇGÓqª£ÜU¢ÐW27M€åÅ-¢ÔÖ‡x®)]àwNÌZ¿ÕL/ÿÈäѧ„þÓÝóú6ñ9üJ3Æ7Ã)­´ÇVmS{Zíeƒÿøk…]¬¨ßì¾Újæ[=‘«5IqeõS` ñcY!2…"à&ÊsÛ¤dq,zÁž“€»®`Dyä댇ˆ}¤}|ç'øÉ¼ÌÓPX®½s’X,g¬^3" èÒFżC‚PŒÒj¼ªG'Ûßd\Ä?€¨]Õ\¸(=^$`jí-ŒúÉEÅy_Óø<EÆÑÑÞw6s©Û¶.†„ûݧ³mù&Ü÷Ëq¶“é8v°ÈEǼ,&>Øž-Ô;Åÿç9?÷£fûÜ<›¾ìÙ¥Ú4d©k¸ÐjÄúÈ< Eöø}IŒ½‡vl—CÖlÿ›Íã"[ŠÞòÙëw°bÝÚˆ²ˆ “¹ kA(ÇÓñöóHCºÅDJlx"óLÌ9ußìÿ©ò≇ñÃ#ŽsµßüÆ`´{¨:}zçŒøSKL©öP´-:³OÊËDâíGârùÜ ²ɧqûÀ«¨ÛX¬É‘CÃH>­_Þ0p¿Ra€€ié}~Ý×…“éŠüª0Š:»0ì;p„hnÑ™® ÓµþaŸ2¬[ÚtšÂî`‘_Ö -$ø©øjâº`ùÊ*ý" Ðºè6Y­M™Yã6æanäèÖ}nŽ­b–¨oHÒu势Yç’ežDþzŸÁBI½%|¡mÅ{ -MÇ²Š™bTK¤@´ûÉ•{¸­ø‰Ì•Ÿ>oCËØNk¢€Ÿe¬}zI(,HÖŸZ8^>|b$1(ç:Ü1V†e«„9ù­­Ö*ºÚû#‰ÃÊdçrðüÃHîpn@×ß9ªy©÷9<~¤Ø óü”Á»" ¡Gš˜¢6̾ÍÓYú¹xø­eô¼ 'd‡Äµëô©‡–‚{úÏCÛ¹3‚Q9,ÈÚtâe‚øÅ”¬v*¿²]yÔÌTBê·é°~¯o‰žy@”4Ö©76ày!f±dÁê÷Èwab*j úLêv9R.ݵðRÛ"Öº«¨äÀƒ¥ìÌØ??YÏ/—äΟgKïëëŒ×ýøêÉΠbk(,†:2òŸSŸÝü1 õÒa‰“[7EꜴQŠûÄ#(DÂ=ÝÆâ®Ä²ÚŸH9ýN¹{ZটÍR¯ëö5œ­4DS u%ú©^oblýÇÁ£Ä“yážoyF&8kñ jäb»õÉÍ=¶¿$xJMLœF>£ú|eV[hœÐÜY¬Íj—Ì!ÄV¿ö$õ ‘ß 2!ØÌ0‘ÛÓMÆÆo¿Êš¡¢ÁLj5ÍÌJz‘¾tÊ$w¼‘ʶêIñƒVÙwLbÏxBjÝrö®ÿD+Žæ ÞànuëâÁpS³\_Ç€¨L˜'ŠžŠùøÉrPÍä1S}l_dääã9"Íu¨ÿ µÖçþ›¿º3u$ÜyUÂC“- ‰íOBSÿ'CeË}­5½ÕJ½|÷…VÝÜLÍáW11\‘ÂÃÿŠ-^™=Ù‘!šº-h]—ƒ0…‰ÅLJbI(Ôº‡‰ ÓônþÁoÿLlP–›mf}¢~ö¡“óºUŸA!÷áÐ5$#a€LªßBñë v{*‡¹¥ú18;üÍÌïGÈ4$ç’,FJq_]¥“u¤2>ì!sˆ^èΨe¢’ßv¸ Gë8nŠcëc éÂO‚è3“Å 2Áb)^žÒbaƒ18êw™ œœ€½ÿ†ÊIN¨ÃD\L{é\Ô$Ça²x„EìA¯5}ø¡ÇæÏñ¾/tw‡ÐIæÖ‹w6˜”=E÷st"ç¹Ï>ÉT>!ªõ`ÀVnS”,w:«xº„_Ôr UÿDXí°äW“Tˆeœ½ŽÒÄï©è¼Ýc¦ÚÓš˜ø#óŒÅñJ“pýš -kˆî¯+¯[²—ÍùT‹<á$5ƒâû`û‘pc1Ÿ$çvãXÃHÇ"‹ZÐŒ¹}ƒh÷¹rnÊv½ì€J1üö(úÌàŸZ< -/×ä@ }gD+ìÚ¤t|ðgCH«¦â zÓ3±ÛAçb¬c?Ç8Ñ“G¸mz03Èx˜°"K䣴>Õ­ à*:ꨊˆ?²O*Ì'<Šñà˃Åî¡r%óì}ëc}Uþ á×èYÐh]˜|5y„εZ‰Ä)ø…ÝpʵF×Ôê[sXîëúË3L¨êG-ËnÁtnz8a¥º†•9›¯ ylOäG%U&@adjC3ˆ+ÃÄú,NŒÓ’7Âò5}¨ÍÈY¨8I~µóã¡ËW>KïûÏÒC‚Ú?©(,ò“Úkßa2¬èüwx6l­澓õ¤ŒD#øó ›¹^ç˜Ò¹ ÃU?ÌÄâa'œ¶×jÞz„|ËØ ?ÐÅ`q2a n´ ó32!?J%}ú=|¹¿fä›i/¹ò¨`ž.x«©táÅ Fñ@â2ºb°Ì^ÉŠýc*~.Lí`A¹KêL%†ËlPáwÎ}Ìë '¹·ØÊJíIïe†MÈ0~Aó ]v4~ ®ß«[··r+lÈ¢XRy¶TíÙ\å„ð“EÊvi…~_$Í!ñÈ N›v÷íIö0p† åš!¶½ éï0Mê±îÃÔÍã|­üД¹”5t¸“e^:•Ð;¢C5ù’õ:ƒŽ®hVC°ÌŸŽ/—è1݉—8–ïÂo©çß“ÁhÕü{Ãld?K²ëGXˆp8yÿX#R˜+[¤±âABoâ¸ÕÇôø‘@@Õ{2üÞcFú˜õxˆQ§œ[5kO4°õÈÉ ãNŠúEƒ»+°3Ì{N#=bX–¶ %ãbÙ³¹ 4$~DEg™äpõ ~äyä{‰×Wª­e< xC˜$H¯C¢!kØH2.PAéulÿ&«Qõ|ª{À!µ~߃r’`øò»&â cÊ­êÌ&#äûº²¨]Ÿôà¥ÿ'6f%†ûêî(6Ήrž—Þt»œÄùQ{Ëñ`pSL©Ž¤•nYEÎ.á’ û…Uý"A%’¾@fq’´¾5[î(!ébXÃ1¸ÕºÀ³lûERS Fǹ²¿ôöXºã,#½Œæ$`f¨ßc2zŒH´IÃɉsóô¼nP¶ÏÙj«9Y~gõÐßßLëëž^ÑQéæ|üò &H~½=ò«vŸS¹)7Ñ€x2U“ÚNÌ¿¨écß8ÑÀCüÚUÐU{:Nn8¯ZRíß°¶"Z£+  ü÷ûQ!Et<²Ÿùzº#‡öÈÓÏ=ÑxáÕ÷>”óYPXÄ E÷jàž W&áî6ˆå•Æaƒ-Øi¹øL‰»BŒô8)¼0“Ê|¢Àùœe(õ…‚Û}ÁÐZ,ôºà×#ZªMÈÅ`ˆËðôó êF¬§©Âë-Dy–^ƒ ë÷¤kwkX­ðÛZZÝÈO~g¼•§A%‰ÕR¨²Ûm•¥-‡ë¥ícäG­Ù†L’e—‡¯ûÖåTûØ D” -v`@uü^|]âud¬ ³4ÌL0^¥Â£>æò¹ ›ýNÅéTb~?f¦½šËú #ÜvWÞЃÝçÁT¬œù ~Áx[,D^ÁD5>­zp¥ì‘÷:8S3¹òás2¥;‘eèǪ¯•V«íƒL.7C]`ÕQ -üÞ€;„‰9O¿à58¦óñûUwkkÉPoHðìØÂ¡w¢a7øÁ•æç!ñ ÂhSóIø7Ø¿™C/¸X=—½>c - !jýF¬öÝ]öÕðˆÝ@9h›ûÄpîgÇyê[-Ä>h\/´“ów˜T’GJ,™Merçq}p&f3>rm·«&_ÎuJ¬1s­00.ÿÕÀí ¼à$ ~+lAöüþÒÍÆKgÓ­‡3©¢—‘‰+ðw\ !]%2׉,š§Xî,;ß;¸§$¶¿ìZ£ @Bä8¾ñëÿ•mšoSòc¹­=œ¨Q·.¬­å08áD€ßI èè'%ô0DûñÈÑ3Nžü¤G"ãñåé8#šíåás]\úßà÷2eɨ*@‚*?©Ëbc´•`üN À§~Fë“îš;Áõ*‰Î}êÈX¥„ru(gr¦D€9öÚH…Ô -ýÞûU=Ô¨+ñé—F|ÎêÊêÎ-Ž.wY摈íÝ·‹¥˜Um9^ÑPšå<ÆARXT¢Âß8yk¤R>ºødRÖpõ’ÂadAêŸþ#<¹éúÉ^’Ê?Õ;µA¨ê‚ø8Y8ü‚èí‚ ýða+1u«¶\">Ê$ýìÏÛüÇ’A3­7W V†è˜ ¦§e'Ò—,X‚ç\=D$ãkü›ÒJx_r/VŽ"Ȇøò"ž#dÐ>öf[UëÏ‚ã4#§/p^Y]ÿX•• ß½ÉKz-h7˜&òAÄBi0,³£*\ÿmu«„S~ e#†)Rün¢ó {d®g°4V*` ÚœLù%„”Ïae l?è¬ò¨ž>ñ3·¾Ýûì0BD]ӄŇ_Cc+ÞÖžíõ?¯áÔ¬ÑïŽd8E³•ü‡À¬TeÉáˆ` -°¼°Ã–ýZ·l‹Xòñ@ÈæÄ ªÙûD´>ˆL·ù5¦4ˆ˜l%¹8ÁBr‹s…UzQìcøEÅÏ;cRã0ÃSxÓ|—¬Ô·XÃ’ŠùWó3þl/à­×©ò²<–™GåwZÝÜTï{ üÊbSq_5Ô‘!ŒPðþÒ¾¨­9`†Q„å€ÐZA‘•pr5»$²Ð&µõ  ÷%¼qä°¥ŸûÈ…ßàòï%yÔ\ðûp)è÷@W¡=¾oÕÑÊ¡ßdoÃ]\‹ŸVŸ\êzïë³1š:[ºiy[RÄ}„DUAN¢®25dŸjŠß¹üÚë pÑè9QzΨ¾Y[÷à6ûrh˜,|bj¬o3cbùƒ6ë ®Ûúæ°ìוÉþB¡dƒô¡Hý‡ÄDz~÷L.Bï ó<òÁ)….>±û8$c#À¼í0 -]u]lÈq7ҚįÏ©5ËL°¬çcتÈd’,C=Ñïø‰õÝ¢e†‚ú‰%CênÅ#’ÝÈ£d€Ÿ|A‰tcs”hóŠ&ñª4/4 Üú™Ò„®¢Í#Ï5˜‹ôê&¾ Sàa‹Âl-š×œOt ¸­•>}ʺÜðqŸS‘掦„Ç%ÆŸ.ÉoÝ[„G»ÛÚ¼Â>Xà£u×ÚvÆB¾ÃøÎ ßX†?k±.ÉK|0÷XGQ»—ÁfuÉp…‚™“_V)±ü<íîœP©ºûäSM½–(AäëÍ"̆_mÏÒÝ ±çåÔÙ¹„(‹ÝV æJ“ùû\<°ý5Ý”äJ¡öew¯ÊK¥ -ct®q3ìT䄦.Ù ?ðAÊM¸øPîBQú5òw‡¥ß¹ÃøüÌoŒd´½94PÝFnr¡õX0vá’`C-~}i%• Áãw<ÁGs4Fm‹Á}m\wQçf•à× R9U1ª -pٽƩÛo×:;iR" Ñzðeîæè÷+N,í¨øñæéVŒÙH'º9imÁÊKµ,)Ä‹U¡;eMúé §ëò÷wß]2×½±siÍmÿ"­£…Tâu¼MI¶ÚLn:Ë1»ˆbèmÎsœõÝ›o:;rH~ÌŽY¡U}ÉÍ}IA4‘tai‘--þüö-ó˜©Ûu!ìh™lÀÂS“ µ£IÜR(+4våºåYsxàÍjdú zWJ@ ¿’~ñÓÐ1rÙâÙ­TQcô{&Ñ&Ÿk»( <~§z¢’'òÛ[ ±(bÒ‚ -]T9ozb8HÒ•$d óÇÃuÃ@<’ô1’Ô¾¸$MÅä>ÜêОFk+ˤ‚ÈMÝÁ¾uäÆâ“qÙWû…n’ËœÓÁ˜  ÷íç¦fo¬“«~®îa¾{ü?ºIDßÏ*Ô/üVç°J˜®¡‰‰Q¤‡ßw¶;¦ -þø1[œ -õ{jbSf;¦d¬ø°ue‚}BÅ˸æUoÁ¢_/.š¼9üZŒdìÙ¿Ÿ¿˜~6ùÚf+Ïîd+Ù1 -¼X¼Š®¶\?.ã}âQ6<–<ëÕ*ÜpíÃ%OP‘À¡E¾p×дÝGCø•ÂM)œP±sïj<Ê ìs‘1‘HE‘šÅõÎɺf&DT€ÏÐý¦p¯åP™v1X·;çzç Ø=ZOxL§õofC…Ÿ†ÃHLs°ý×l Eðm(1hÔÉ *Mh ¡ÌYirZ†&T,ÂS¯‚pÚ“4üÎ7ªîë·¢vlù}F%áäÚ$TôŒÈ) Æø½ª§K†ÇšR¤›h¹«]®@„} mÊåᯞ:½„œÄ>ô -â‡Ü¤Bò,’Ô¥o3Ëh;´;;^¡MùûØoîKgz6“Ìm€©©_ÖÞo…ƒe!™#,3&ÍÁI§›Ï®Í¬×צ0áo\&ધûm[úe†%þ€¢Ü ®-œŠ8÷Ç.0'`ýË9‘‰ðØRÖOãÈ«ú°”{Ìžk~©y) MkÖ…9Û ¿g%ÕÀµ‡*h=0{lÅfú8å3ÕQ¿7QíR RÆÓ,‚˜/b»7€A s$l×—ía~´üûÐê˜-sšK<˜¹¾ hùr  ªv×,Ã}ªÓíÿý¬è\¨òÂ4ô–é“pºÓ*õ_3{qûLqñ÷ÃôÞå'úÁnË·0QzÜ]BóõèçE8Lß“QB}xO§KReñqlvcê¹ÆïêÊ•¤¶myÕÁ/.N¡}q%™+ÎŽ ˜”$úýNEo¿@'A^üÜš%= ÁVDéc’d´È~< '¶hsF¨Uˆ æåç!’5Àµ¼ê¨ÔMhë>l…æÎí=Â#ý2x>ü¦h&×3\PTÀÇ —î¢@ÇKa[ªÐãè’g¬6côÏÃcG«Ô&üZ{ké_Àµ‰E06Äæ0üáîè&«>¸‹ÂY»fíYŤ(6Ä5]y¦:ï¿ðg­]‚½Ã²~F_QöÏ-©’øåut¶ßÖ z™¨52ͭߌF( ¥L?')Ѻ/C0§4Å–›9Œ|$/T*úHBî e__Úüú+v’ë&ŒÜwŠŸ*›7çvI®‰J¿R¸S$ÙLã¼fc*ŠûdÛ–~Éê·¼ýfž…8Giý’¼ïëÁ®IpV™+ü0L±¤@FóÅÌYš«uÚ#QTøÑIÿÚ”ŒXÂMîШ&áõ‡]¬Ëû|½”%žM%6-˜•aš:Ôdü(©üF‰~‘bëN÷YǯPhãâ} Äï÷êæabÀ©V“  RñÝGë·$®Ç¿=Ø6¡nIÝn‰ -tŒ<$ãÀÚZ«,ãÏR7 å¾õÍœÂ1À»,¨sGAgÙXOú…ߊ -‚÷‘eöëb¸ëwÝdU+ç,…óXº«1«T<:½LXžæ•égqºaŠ=½›•ºfÇ…y ;¦7™.© -ù½#ÙBïþ'<œ/ OðärŽ,þw*·"µ.…_*$ñ°¨‹| +:Ô;Zã'‘T˜ú²ÌCàºaÎÃ6=¼.o‡Ç@ t°ç3©„3³‰'–ÖÔ¦‚t¤‡yÚk{ŽÔª|8 +pÚ;åB‘P|ÉÉ¢*ÃÜt÷‰Í’pÓEë+ûSδ/Êrò»Ý·§<\H;}¤]Raà2€gx=•¼`CÇ-K/ºž¢ý~ÈcÝ)=Ýò©»›ê°Ç-áëŸûM©Ž'QBA§Q(Ãr.•¨´¥È&ª¯%¶)WÍ1©x ¨ÑÜ¿c’¤¾•vRW@¢Q­Üeb-Ï?4[`àöE F]õò-uÑïAêÖpÝ$ #‘Jn8. Ÿ - R 7=òN’œ%êÑh³:À7 -D>sXµÑH€¸ÅjôŒƒJÿY—ê>úÏ2EV–xdõx0šâ; f(,:ðø‰ }‚[ðï'w(â§Æâ}ìëGè®>ˆÏm™Vó_€Ól²ûß±¯ ^Ì©¤vßa ÀFà/ËØ¢Be«fà~óéj"S\Š£ë÷*æ´ë%ŒQñ#Ï”º§v‚Å#%õY7¬ùRMUü*}T3.Ϭ¢ßƒñ+ h¹ @³uº8^*«~î0#3—BYnvSaºÍÔzNÆ>Ô&Äîq‡kÅ3>8]|}ä=šÄ9“ÌÏ=@Ýç©%•Á ~<á§'Àõ&Wª}‹švê/ªclЫ~•¼OK°ñNÝú /ïá~ºx#ÓjŒB¤`ví+yn’Ããr­Ÿ6KpôÑßxàááû¾½I\ïyú_ô '¼Õ¿ÿC°Q :3ö•ðMŒrl-%‘ûüÀ 9åÁ`)ˆ •7T y¬ "ý âíìPm xìÃSnúG’l_T*²V}ˆÛI¥v™k"Ë”(x⇨lÜ÷ôω~1új8…„«M…)D­~är0 äºïý<ô,Wý‘ppÃHgúOBñ(îÓP@ža>n0ïõx|¯oÊ__ò^³¯sk•`@[ße~¹û&AÙº_"n˜uC¨îp¯5É„dèÀ&BÑØîëS]Ó Ž6 MJ"àG¸·]`!N*Hplp„žÓŽiÀ-¦š*Â(S€ 2’˜ñgUßYñMG%©$øø5·&èQl8UC°Ù:ç}&œ„[Ò:ŽÀϧÊgS ·q“€„£² ¤è›_4AÓ¬ò6´h>~=»O–,~_Ì6znvÛ, Y¿Øáák”^É£ì1pinäöIGÔOþh{̯u0ôu¹ãG– -³Ýè–‡œ]B²f`ó?Ñ~Æý_%.`¶ÈO!én·µƒd«£5,þ6LæàŸœÜŸMtH/ös2^ðy)ý‡.1 xèŸMŒíá›ìsy§ÞøPŵ±õ+5÷d•ÆoÝ“rÚn6×ä§‚ɬå6îˆÇFØL÷0 @,ŽŒÀ} š[€¹òÇ?¯ÈðNÌ€%•›â_sòYÏwRV$ŒP Ç‚X¸(‚«}š…Ger—½ù…4î”@MpJI¨n -lÞvøaÕ%úÌ£W‰„×£Df÷©olŽ~õ\MÖôúxúÏîå$™G–4À?7Ü@õ9–ûaðË7ä.DÀuR}qâGjôÇX\'Hø¹V·¤Ä¯ßâ›xÞ@ÉWœfýË6ÜÊ6JÞá¶u£2ªý¹!2d}À²ŠV|ÈóW4zC˜|iò˜3?XFÊL‰ø)ý“aÀQs§,¡:âḧÜÕçL˜í;ìqt£p' I,?ü²eµÓݵݤ4ân=ï~xo‰ü*—§S®¹(‘Q/Kåí<û‹W†A"¿8©jò颢êd¢;M‘ñë¬oò^µ®_T>6#.è4[o(N¼#íoðüc2™Q/!IèwØþæÇ0xû­,0ìßö—àWDe$ J+Vò(™Væç¦õë;6×¼ªô®Òêº6‚åÎܰá¶¹£§ŸhhrÞ ò-¼8êU²4DújzUL`¿\øI­ˆÜ–bLÉ#™Ü'ñÛ!ˆ_™. ~­@xØ^ÒŸ ï†Å=™É¾‘‚áøÕ×w >k®*ø\ëÇOÝÜgW_hMª±'qýܰË#€÷%œ‡¦#úA™L (B»ã>ur# fÈ*I•¨Æÿ’Éù]Ú—²+€ß×HüA8Õ)5yü‹G ž»ð|÷Qd ç^GûÌoZn“ 'z^÷EL¿>ãç%Åoƒáw¦}7Óí$?RÄ<¤m=©LYÈ-i#²“ÝjÖŽ=«‹sÿÕÑ$”D6§f§,¢f då¾ -°>¬3àQßw,ŒŸx®©ø™­˜œ50!®Y—“*½KUEýÚUw¬Áûâû9*û±"‡Ýp›ãbñ‡Ùv°$QÉfëûçuüæ‡íÔ.ÚipNŽ-pÔw" y¥ÁPâùE‡´Î ùãç•'ƒÉëWÔ†çñ†…ÞHeàw2ÀLîx ÆJ„æ1H ×Ã;QK3¥X­ŽOÏ^NL;^®ë?CŹÒ ecÜVûŽšêó:;+º~llÐ]<È9hMU˜ššòi7å§ß^+6ªîÀ¼o^œ”Îà 4`”!²†X§OQ°«½ÁÎÓŠ|*„øæC7ë1/ß(Š€¡­¢ü*?Zls2.ª‡D~‘Htߢçõ ¹:¼M§öË®÷õ{Lƒ“*GWg -?CCÝ·Ìx<+gW¶køUss`⥅rõõòÕœ~Š ;MRmàsƒ‡Q”L‡KüºÔ²Fô?­Éö]Þ³‰åöOõ†%÷ï_ÊZ-âhiø>©3œÖ»V\³•"dìŒrŸæ¹~ÁÙØ¯ÞJÒÜ×d¤gÒ‡þŽÝÎP·"4úëÜ<Ñ?¾-{™áì&q"y€cœ²­¯9å&Œ5`½Òƒ5÷÷¨ÒÁ`Gó ŠE8÷L½¯Ü¡îNäá…@åL_¤ÁXؾäM‚j]J×6åЊžUæçuçu6k;wi¢'J¥™kÅuÞ•ûw2ò¬âR¼¬¶ž\3ÿ1¹ÿ–ÔvJÌ.ñ{ßW73-º~uPÕÍœ­Š3ì>Åuc?…5šù"²n˜ÉÓ?Zr» ¡ïy„Í!×ÈõÕrßÏù=ûÝ,è n,=È`¶Ã£Z‡¶È}ûuPÿð02¡dÿ0L§ó@=ªq•¬á‡m<ÄÓ”%e`?Ì2œ` à×"CAáä‚«#'‹%ùN ÞÜïó ¸áã·õˆ“>!““Ïš£Ò¢ß±ØÛ2?<йû=bµ -jP¶"S+-; ¯>RßéªîßÙ*¶8Ùí¾Îê67Á/,©žt?Oæ1I§GëqüÒ|òO‘d?(ŠøÑ¢gZY5òdasê¦=Äæ–šx &1ŽGD6ù:ÕIâ3tØðî>™ž[Z€£Û¢a57›Gíã¾}øá'~œš` ´@«´Ë“¦øœ#ê™ùìKZmj}XrÀÃÒÈä!êC”»nüÈ[}ÈòXöî…‹S-ë§N4Ø&Á8~&Ù ¢^Ê*Ÿn?ŠQ¼T «\ih¤ö!'zöL»itEâ3dyx» 5Í={ׇãFv -Æ¡œnUœñ>p­%7ÂïOÆäæü-€ç™‡ÅÃõò‹´¦é˜qÂÙ_|”œQzwÏž¾ÓÏ ’¼bÆÇ[¸‡ЂÒîE™Ÿ¶/žFRjçŸÕRi3ˆFñ äꆶŠô«[Ìã[9\+ñ‡S.è95óès^wX1LzÔëù6¥ÃvÎŽ‚–úÛ§Ëæ -9†7wQ,ø?‰9òHÍM‚·¹KY"<÷Zî5¶ã^(å(0•á…+o2÷ƒØ50ƒ²ožµDwf[›G_•ßµ‡›ãj¦ú‰Kµ¡àîVº i‡,V 'p¹íƒúâ@òrëjœ\Ór»4ÿYµ°9ªÇÊ?L^2µz™ú™¢æÙÊä}Ȧ¦ÔKì> -VµÆw¯yÈ«÷Á}ÀÐ~îbÙÓQ“\Üá*B!ÁüCT®®ê¾SŸ<¨Q¥õä¹¹Ib–}¥sn#B93¯ü¸[ò¦ÌU(ç¡VîHŒËèþ&[Ñ5)ãúŠ®¾ÎÙE°5rzÓü”½HÎQ-h] _ƒsÞ ï˧Yîy;¹³dàá1Q}š²9Eømõýqçú½[Õ.>óx_bo+mþ²CçëÆwÅN€²ÃyŽÅ=éÁGØ¢IRÉGªÊïCPgü6À$šv‘AÒ tŒ›»VzËO¼è>ñH“*›ž ÊýÚ¿)¯Ÿ üüdw‘ìOãlnA4z˜éF…Ÿxæ>•Ùr?™G~o¯$®öSN>Úq2_ßÞɉ\w«=órßÈ7à‘¨MÖà¬üg¬øõ¾b^µjõ!Ãõ‹LÕm›Ôï¼Ï‚â9W¯ûœÀ¥5º³väWœF´Œ$z†û³ -H“B'&â9ôæ}ÈO_ª}ÇÙ ›º»)—¥ÕÅ´šó5´ gsg@X+ýdPqs uó3Õ¼û Z¥…µÚݪPdL?ÅtS6÷µÎÒ-«ïHqN,r°aÑAsü£ Ì Šü}Ϥ_O~]nx?ð ú²èU}Gëü<ü<“ûØKÌþ6Н¸­1Uzõû„ ó`1BùêÙò>aÑyè^·~dc³¤ÇG–~ØÚVñeHÎ]I÷C·.iÜCòÇbÀqÔ·Ótì‹w“¥‘ãë[øÜ–{ºi$ijüF Ò]âÜ}Óý‹Yk æÝèÎmÂ}qCùe9,úm×{HF‡‚¨+[î8òÃØa-íû>ðb-£M4ËOnÀ£Ú®úx|V•r;N ^½›ø1η~v˜Ç]udzÕïÄ/d˜Æsï¯[Ø{‹ê7{?ɼiIë5M¨@J¢y7‚XúSçVçÕ{š»ßÔ?ÎM+YUbï!œ¾™¥ßn÷qùÏxuŠ dIHÊcp²ò*«¬êƒNn\&bÜI1Òd,)vËÌëw˜ »íGÅûʘq„ß ´îr‹£ˆ]/‘åžð? TæZngÄÀ¬Þ˜C áen±q4Ë&4²9oàÞ5û†“¾~=ußÃ/ãcp¶§Ìck]Ýô’½]·»¢> ù™`”©<¥@v=ìЬ -ÿa1¹¥+ô Hûн–¨ZU£“Gòû@¥•·ìSáÉ*|!8'ãf¶ÆgR•cß¾ÛÉFÇ–Zw¥›?”ÐúÁMê´VI Íj ¤O´£JÜ÷¤(wÒxkŠõU·—»,L|§Æ/qµõ ?6ÛÐÀ¢îÛyß`q’é<ìC[“𲧤ýjÂ?†L"(Yû68¿9Ïÿ¾oAž²8¡^G£ahF7á¡-‘‘Œ„èoégÓ*iq_\ °Ö=)–SMÏ34N°™Õ>#îó…é¼O—çD -q5ŠŒ™¤j |K¡èˆœž¼¼{Õìe„ݰ¦NÂd2P&Ÿò|„;¢Z:˜Lz -s´ñÀ³nê1Ý$ú5®:·á´F]•ˆjŸo<šÊÂk´¸$X­Èpž;t{|qãA¿ÝGéÞ_gá÷<ÎxéíÂF‹eê–×Òk,µó§ÍÊ -²êÖaPͧÏÿå.ø]›2þKÜš´¹š“â¸týtˆÌVµÔ €'–ÿ±©9?ÚªìŠzß8Áeœ¦‘òØR•ÞÊ?Û§éÆtªÅçdnÅÜdQ4¿"ÊK ¿5ÚMP¼ùÕHÆ}µ.ƒjãíÑI’nÕ÷ñ$“ @÷øø5]gŠJ»n>ÞýÜ·rÃcRé¬Ì–ŠõÉÃʈ,7œã"§¸™†Î a§¬7Â/qVP[éw,Nè2B4±ælrþ˜ˆƒß"§Gü¾7²r—ŸŒ?Ý|À°%Ó½ûÎm1Ñ!)]ã‘Û°ÏÉbµOZèîÍ›dh¼”u´>âQ»‰ÜGòà é>¸=È=Nœ% Oì[áŒóx©!ÁÈ/ë‚;¨ýÖœ-E+^9ݱbce'/œDSË<ŒW¼r+KâÀ1§¥úôÌSÏ’ÛqΘ¿ß±Z,ÿŒpqÀ«ìC ÇÆcìÅ‘ £ÐB­¾ÆDjf’‡¶Õ›XdŽÒM1¢x|{Ðyä|l™“% ?·µ[hg…¯g‡®ä[ Y´Ilë‹f}ˆûI6¹GÕÚ¤1Nšø þóîc>²­M²<ÑßÇû(AòçÎcv÷Ij¼Ñ¨qúÒCï¾/‰l÷Ö3‘Ï8ÍKûãuƒ*C -â$ýʼ©˜a•ˆ(¿_^ä1&Ý™¡V±!s˜=(_¡Â­` ÝÐá÷vÝ@þjXýkA‡F¤9·HÝxõ­8ö;bD›,©/ÚýÄõ’€P¸é›mç4®úÌ?k~ ¿šÚRX“{ß]Z?“ºOŸ÷å<ÒQ*îȆ2¿zÒƒëžJÆh©ù’œŽÐûôïHÆ¡|)´o\(ûþmKáMmž[pÕçfFá€\ñʯü¹ƒÜD#¨ošµFñÒÊôOñð6a~Ü~øa¿ã¹ß¨ßÛ’z6hµ4=2ÚôÏZlx„µ2)£Ë µ)r ʇŸŽ ÁpøIŽšø)ö47§ä„”ë¼}Mår8ï[EŽâ”¦ëE¿î–Lx+žÀø§š8½uozDœüVQ-‚ÿeŸÓÚ™Oû’JQôü~>Q 3@ö½„çöË{b< úž4÷ñÐ×Û‚ä´¿ObÉr=û»É Þh¤Ô€KÄè‘È«1~#ÄoXkýäþm…WÐνúRúô´¿mjÚ$ ‡D¾ƒ¹Ü2uŠPÏiD BצWeÓǤ®M$Ư‰nˆÕõS5Ýö½¡â[4À—­´ÕÎÔoÁv4&çf¾/ŸØ­?þ2÷!°À õÄõé|2›_+ž¦xPø‹júÇ9º~zï3¿ï»ÏÍèmÕºù׈ V¦Î¯fT±ŸMwýNëÈZc<óó¬R7<²Ô—ºÜˆ00þœ£Z›fçr¡Ü£¹TðK%6 Ñv:Nóà9[ gÌÌ÷/Û®nãÈfHCØeÝyHQëŽèNù}¤üì£ñ¶Ï˜<.©BY -ÿ×ÄøÛ¹õ½i¯CT÷¤æ‡ß¾‚Þ8K~÷=uÓú_c¹nÂ@2e…ê®kíô‰šä 4ô­žrd~GÌA¥a{Ç&ëƒ%,æ;ª-³ºx42É„ø‘A›"Ó^‚b5vï:Xœ&ç‘ñ—uQ¹na™±àfµU -쎈ü&ÔüÈb•]‹\šdµ’ßÇ“Á½s×+e•€wöMR~q}ˆ6$’“î>iôä§óÿ¹Å<«„¡E1ßÉqÉ/Ifyœ7¦±í®…Þ×#<ê´©$Ö×n¹¯‘MFkßá¨>!û$ƒY¹yÚì!ÂusÇV(ò¾y°nê¦_ÝnD7ï}ãçM°;Ô°X–zÕ>u+tPieMì‹Ó“Á€ƒ¢˜ØÀzeÀ›}.Ýß[³f——£øÖùw~«è¾ž›}•{ì@ùñÄôw…LP~KZ PÊÚÉépUd‰³i}k`lVð M¬ï÷]n$àaÕwÔØªÏ -ã—Y`òç˜G«º yÅá$Ë<Ø8£ùiÖ݇·÷¥ƒŸ¼qÊ—#'™òÄn×íi÷ú–Z_¢¤AÖq2~˜ßï4 ?«¤6@_@ãÞ|~¬ú€1uéƒlit=pôväZÞ·ÇÎ>ùâRìnbu~µ'ƒ(‰ù„­b˜º»]Ã]¨kxX·ÇN¨?mÚ7]_Âr1xIÞâé üÎ\Ò›4~dP©éMTqÂäŠ ìê¶\ÎL#Ç8©¯­v’ gxœæé—•ºñõ@÷v†òºNOæOë¨cßpñ0ÁÏ-fŸ‘㑜_Ͷ/ÔZŸ’2ò¡–2žLÒ'ðfñÀÛV~“böñ™Ê@²t7Q Å™Ÿ¦´“±6.6V(ýŸ°'¼¾@£wX—ýG¡Mㇼ%&ñr·ÀƒÌŒß͵É×0½ÒëGÌ "o³8—O…ˉ@»âÌNBÿiœ˜c@àKP »Vaòº¬VÔ‘ÿ®}x6>‰ýýöá°­ª“÷ÝÛBfù¥v_a«kgb9>@Rî³SiæâA1ÿ™ie¯í¶fA64hþ–ÀÃÅ|75431.:imqvÿ‚zhzÑàþn9X‹îå²5Y\™¡¤åà¹xH,vmo»âÿþùU:76.ps¹Éü \_™Êøüþí×G*Éxyz‰êý¤M4210µÏû²'ÔýÛɃj+Z_yÿþåÑ—•”yyÐýþ[/.N}®ôæc1)(CGJpšòµ‹òÿ±­©O-+îûH(*EHKˆþýC07:^¤ÿþ˜‡†ƒR313š“–·ÌáºO9)bÿþô¿«ˆ‹ûýšDFýáßk¯³¶¹þîá$&Aÿþýþµ•B?;,$FŠö&469<@þýî῞›31&PTs‹Ú¡Úèµ±­x]osÕ×ö™f¤îýäÕ`Q/SX\`ejnsx}‚†‹•šžÿþÏ¿–¶óÿ¬‹\A-#(¡ý8# mquýß§¤42/xÌÐÓÿþä˟ž¹†nje`#!a­57ýêßÝÛÚ89BZ_dh†ÿþÔŲ­Àö”.+)'ÁíÎý•Z+þ¹ËÖÞüþ´°¬.3¾ã¾7DY\þýÃŽÿð¶Ì!¢öîåÙ·´±XC69ºàâöý€69=ADHhl§«ÅÈÌÏéÔûøìϸ*'%#µÌÉÇÄ¡[Xý0€…Š”˜óÿþúßóýþ˜gc^YUQL'ÃõïÆE3AVi®¢¦ÿþôéüý{vþÚa]Z,㽺„‰¯ÿþõüýþÒC1ãý›#Y]þÖÒÏ˳¯«¦¡˜!Wãý ’»ë÷üš;Oœ³ËÿþÍÍÌøúÕfb;$¡ãS BW–Çïøè§S*'TX]aÕÿþÝÑÙà÷ýãáÇÄÀ¼pSõöîºK3k¡¥ª¯³·èÔüIØþG/)ÇÛþùÙýþû :)èüõƒ`( -Mûþý 36 àûÿþúô–~ytN:/™±ýöŒlV!36:>A\`–ÊÎÑíþý÷ÝßðóàÝÛØÔÑÎÊÆÃ¤ ›RNJEA=: ö÷Ì~zb"ýAE‚‡Œ®²¶ÎÑÔØÛÝþÿàêýùãÎnieCÕàÝ«&üþîå[=. -NRV²ÆþúåããåâÍšd`[52/ "åîùþûö®%£ûþùÎ^+.25šÍ÷üýùnQMIE7ÅﻸWhB 1þýøéêöüýþîž-þôº7á×vsT þðñûü™wrmhc_Z4JMÜçÌÊ&(FÑ×ÉW .14mÍñóôõìîc9TÆþêcÓ騾r-DHLPUY^ü÷ûüýúgb^YTPLA¤ÉØü" - -?CGLPT¸ú÷úûüòÌqlg1n¤ÉØöRUèý¡!$&;¢òüþÿúÿúg«ä#IÒýõ]þýõôüýþåÇÃÀ» 4øB?<9SËï÷Œ>1 ަ»ÀÃüøûüýþó#Vö÷¿ÎÐèöïáÉS6NSWüùùûõÇ963“¾ÁüÍÊÈV+üû;¶ðùüøöúýô›Ê÷û?BE\ºè÷ã;,›ôüûúýþòhøôô W¿åøûå3òýüúùûüýýh'$" —üþS"»¾þ‰.5üüüáñþQ¾ý“l#-ÿþüýþú½ÛÝöæä ?# /èM!Äûüý¡30-þ¼OLDÎçåÀwT8-ù’þùåä⻸Y#Yøûö¶{’Îåùþþ³Ñ÷¬}/* ·÷9 -²ù Tý«74üÌt[  øýÃÚîüù­çøýQ2`‘þâIw™úÓ*ÄøIiûòáϬ÷º À…ï'bf¨ø²®G!¦þûðé¿KùëêÎËÇÃGC?;N_üª FÙÛÝßµ“*?gÃàãåçêëÊp*<÷üØg>¾øûQ4pÝ F*QfÆ<:=îþ/R…ãôø÷uUQNpèùŸ µºÿð95ØæõüñçÝ=°ëüK9òûÌP(7±ðöó¯oWøûÌsI&Pùõ&-:Íýæåª)E®µ±FC$&Îðþ q¹øûû©–( .d½ÁòþþùÓI+‡ñý÷ÖûöØ¥Œu%'”êç+žüýößÓkV@nýî)ðøýþÕ))ÍüMuæ÷¦&)ÝûKíþûø:wÑàþþðâFA>ý÷Ô¡jR9¤öé,/2âòþýùïÈh2ñùB;ö¤¡•µýþüê -ì÷üþèæ: f€ÅøûžI7Çàôü˜g*'ƒäï÷ýÞnh&k`Ë´äÇXÍóºulîÁØGn[ÄMðèH;ÙòJ©ƒ%×g:ï»Ì}®p&ÀWJÝ ¯™xcEÒ=2òøõË…µŠ5 •„Åë÷¥ÎíÊi­F:9òµ_Íõ¼ìò å’û\Ø\X­’ü¼sqñ{Í5L ¡õðÓmÚó+¼§¹C{Gx?aÚ/dÊŽB™teÏä¬ZŸÎíÿ8åÛKéVê~ᾜAÂ.GŸ’ßóØ ñ5‘ÕùÊìì¬üÂ:±`(ùÐïë}n™Œæ´ŽAsšE!«mÐ/ñš_Jç¡oí+j‹‹ÇWeÿ{üÜ£“_hûdÑøyd‚Œ‹hâR™– ¹“ZÉ»÷pBØW2€ƒÒ¤”*G%yò!ëcr=•(yïY²¢nnÜ×ÑѸ.öS°ËñªÎ#4Bu@`÷*ïµ¾™G^W©A/»¥û@PýöZèµ"xK-7Õé&zt¼Œùô@ûÄ# ëÈ›õンÏI2$¯VHˆoˆõd*¶tO*¿Fx]ŸZµ\ÂErOÛ×=Ñ̾LÛB* ­.×.(CC¬Ëá1öº¤Ä/ôX qܦë#(8ÆÇ@s!Z¥Øœá4u#I]—pŸ£LKxÿþ&Ù=i€bî~˜(ÕÍnGHV§Â<óŸŒL&Ô }úñ% =ìG¢ÒjîFË” Ý„=_SG€ÕÈäÑÅ;À}OŠ'éMfîM'H7Y½¤ØÃ}·£É ¨å[”VÁ:ø O>V7ŒDpsˆÖ;~!ˆKnQ§aõ”ë¨Ò(µ/ŒàÚJÎ+: î08¢©:î+Øå&Äqæ=¨›!¢€ðËÇ^ílrã×Ö\êe ÃIQw¿X`½‰lÐß&á`÷±5P¦Uoµ,PÉŽVxГ4ò¥È@¯Ç¸©ûм;ö4 -~p;Zû^«ÐÊÂ×ô-‚tóûâÍr£ˆ„W}µµ) §¹Û.wÄ•û{îNòÎàD Ôí;xünõu%,0Iþ¬ô{ÁƒBfîŠXül"‚å&G“£_¢®JÒ )”?Äq@]tK  J?øÒnÑ'¶ÃQ=®¬}Ôx0Ñ?s]¿ë?ÐE‚äoé…­§õK´ªÚÇÆ9;~ïIíT°S!e°)Qñˆå{ªtŸn󫺧Á¯óC‚ÃÍ¢sˆ1šÏО©'‰Äš§¶da_(yÚx8ËqH$ùSq}šèÜÀùÙ¹§î;ÎÀ¦¨Ž<”ÝyÔ«%ø5ç­«{8Ä -zÛ×zÕZY† ý&{õ@wÏ:wÆÍÂhéã•Öæ§p´ïû¸Öîá¸ÞDð‘0€ËÖ›ç<é¶åÌ¥~ÀjStl>ÀŒód§‚U'ûž¢¾8aÙრ<ò>ï¦a)÷_ÑÛ°lMòiБÓ(TTáCBÅAüT#6ÉkæÁÊÀÃ.Wq—i.¹ò=i)ÒAØ<¾5ú%ç•ô:ð!ݱ]–ÙˆHlÕ›\!nÛÙ“}Ÿã¼ º³s˶ôÙïiUÓaò>|ÛWW€ì»'µæŸ•öEo“mgÄF0óf÷%ÏÁ|™Tîß67û8ó&o7Eßxܧaé -âÐÐÚ1`)8B\ Â27(ñûõšÅ—ØðÆ}\deDô’kÕ‡W±9(ŽôÊÅÜ|g©½Á¡KæqGp*ódŸö—Ç $ý&}Ÿ2'¾lUzGÆ©¬Z%çU½¹¹¯}Ùù쾬B¯VÜH Ñ¡[\׿;j<—î[^ûzÿ„¸@ïNÛÎL1z!;?õIÏÌ‚acÞ‹›îÆ£îË>F˜§3xñkð°lèƒ+v}¶0çÞÁå'üÚeN%Æ&/ÑE×eÄ…UÏÍ× -!ô„Sˆõ¹Ve¾ïéV‚§³zÇà97±ã[KSã¾ÜÔs²ò…Æ)è`L½áLØyðíx0 ÔíÕN´]ø)“ƒÃð¶g=åšq~ \úÁ@ÎpR&ƒ‘ -*8ê;A…£»ûF©–qtZ»øÅºŸû¨oÎâû*«t+>» ¤Ø8ØL ›¬ÐÃló@ã'Ÿ6Û†Ø5¿æf÷ÓÂJŸn¹ËÙ_!ŸèÀ7^ùý™‡’žÎÔ0 &óN¯]Îýrž_Àé³â>-K"`pcŸÐËC¯Ø¦ roWX€ >Ž-—±!pë8Bd¤ƒ‡•‡ÆObÊŠ tûcté­‹I›_mû û7ú¬¶tŸ ?°1GÈâž?Þ˜ Îg·èÐúg§yvOÿ`y û~Üþ§ÀÜ…ãA¥=<®†ÖÖìé Óõ½¼„s?ž -xTlkêÀý4Ve>ÌR`"ØúÞJK=3UªX‰ºûM8G¿õ§¡|n<²Ã1›ênTµÌµÑ¾¡üêÍ'X°n-ªP.äØäYTîCçøÙ€ÐSïÿ_Ù5EÒ  bÞ×F¢8½‹ÿö¬»šôŸß6q÷¬{æÐ)bHË"žÎ‚¥±K'ùóxaìÃuA&…û*ã½?}uœ‡$£7Œ^€ì._Û#›Ÿ-•\ D DÅêSÝȈA)jc°#œˆMw>áðëâÏ ½&ØgâA -ÍÐϾ…ìL¯žÛ#EVËàMù'ê9D6Ï¥û. ‹ÆC–y< h¶MA$-.q¡ Ÿq‚_ŽøS*IÐŒ¸Í®öaª¸‰9:íwñ­ÎÜ,ðPás;•Ã(ŸphŒ«§a{vó¦8u½/XVôçÁ4´g0bD‰iÁïºîëÄÖ» qÐΗJÑ?€ –gÏá1Ý”NoUéÆà¹Æ#ÅËžNâòó NÑ=ý²ÇðL,”\8 8“Tátp>ðƒ:ÝEXÌcd -Ž$ê Wû£okš â·>òOi–ÄÑ+HnîA1$s^L]kF¢ACTÓ}CžÎ„ŸT»‰O WßMš[|îA©•=sôó9¶Ïé¬ï¿9"Q Mû–úâ•õ…/6·Ž#nºŸ_›¬p<_^\‰Ú4šèE¹>< óûž£Hx&Ê„.`SÁÏ#Q±±êG'Ü2Üõ[‹‚ˆD9E]÷L¯JôO…05w«=oÑñCÇö™é£}õ?À¹ 7t·yÇdÀÿùÞÊï<À}¤©о«PyxÑøh°9ò}1 -~Ö‡‘™Xê·6j¢$3³¾¶ÊÛôdÅ„Ù6aù¾¥J†²pmýå¹+ìßóÿ e;oU$ÇACÇõéÌÞ~ÃzÓyò‘‡‚›zSñ“e°u¢ò™H ¼Åþƒs8ë.ýb+ó‡/’ zé¬oâí`o†î;hZ&ÿÜÔÈè ›÷5 “öõòãí9âNeYC.jRë3GNŸ»mÈ£…oŠòåêÅ.,ˆš•#ãOp›ˆ‘ >CáI7w_1s3B˜"ïÎ]a0•¦²þ–U>¼ 1ðV—”/¹M<ˆØøSïßjLи/‚~ÚÌróB–Èó7*%+‹„Óÿ«ÈPÑ3°;ÿä>*^;¨Q/Xå4AA.:ºò¸úòÈðÿ©zÞÆ¾¤Æb“qÞœw&?¦•}Ð}ÀÏæQËtƒ2Ú>L¶ý'Üþ±O»—xë›äéó?ð0t|¡¯Bù¸Ûã,|Ç!StàpaWØöüAi:„jî -*˜Ò ‰aÙÃàµ)(µÛdDæ×µû ²ÒkžíÏÃó•˨7g:-n(Ðpæ!N}øÃ,“¼æm«œæ]T¼¤>K6Uq"‚ßÌÜKþxSŽ,D¸ºñpwéyx[tH¦Î‡Ð½Ÿ¡}oü¾Ž›PÄæÕe`WâGeûY¥]yÓœçWq¾A<*ü ;n~¿² ƒïóª¦$ë þÙ=½ÿÀ#ßÜ!Ïs8nr6×t¡?õñø°M‡‡eº=`4.?ãm œ¥þ]VÛy˜X¹­e%eM÷¼ä½¯a™n\©ÚC7þÍ3²7j®`•“ÛbR?džŸb:¦F“ø¯PÕiA÷)?[0Ñèré6w[VôóÎU¤ï¼‰ Ò–GfxÔp‚N+ÓÌžãÇ‘,‡€ð0(§V!Ø7¸‡‰á&u²É=eÃQ¢a<2´øí—ÏIƒÚyÀ¦· œ~ê-¡‹ö.A»À°KQP°)¶ŠÆy=vø~B/¢ŒŠ_™R“Rë&›ŒD^#WhP¼Òx¨tƒ’ï¼¥/cW~X…—¼³^Hϱ¯&þiÁËÞ2yS;äÑÚ™¡+J;𓼙?¿3G¢õ¨ÝI¢ŒõO½¸íºòðæ&J­lÔ†›ÈÕ˜ûºC¸¸˜ñhÔ ,é­ -œÁ: ÅÆ³pºxY ¨·ûsv)̃ v‰õ=l#þGˆ)‡úQŠ­ÅÔEQE›_°n´–áæ©›ð]Z©Pèí0t'ãçù"çõBÓÅa´xüß$Í}¡y \¡yÄã"9¡Y0QŽp9¼(ÙDn“jm2c ¦e>Iïr@iHA㦯1Ìí§ãÁ ŸÒÌÜ3¿ÿé¹80tÖLß±FçA -(œ¦XÁû~<Ôp8½ú:sòi¹ÏüÝ'ÍÛ<ÁSõ,tü„—Q{ò[‡¬eDÑÃxôê¦$¡¸ÑûQžè A¶y“ -ÿ<ú-CóM° ý¬„ÚgGeáøJ‘Þ=¾#" –4$ˆ©ÜXÈìCÐÇM}~Q˼˜É’3:çÖ F¬5skUp—5r ›Ì¨˜ zb¾…Sù¾·÷qÅÆ‡3æl'å7‘Xw˃FÊ¿&K «~·aßüû匽˜ûC·TöYe *tÀ¯y¨nJ¹K½Éa@¿âãwÈTÓ›rçMÙ›¡B<¾éYyœñk¥ƒ -¥äÒH â±È·ag’õ:%ûŠ"c¾7j…ñ[îYCÑÊ_ÍN5JAF†D‹Ÿls“™Òþ˜JÞªNű˜Jà¼=‚Çýë¦)U~_HgL¸Iq{¿A]Ž˜ô£2XEßp&g!VöEä7× Bôö!0wâFŸ}§!btüºØàjÂŒ¬(ÚŠQö™.³ÊÁM<˜û[xÍwì0÷V%{ꎥÈôã<êþ›5Ñ CDg BÔï’ûD{_µÎ<˜»n8‰ìI]4«&µySÍ–ƒ ØŸ¿ =b¿¸}ga±,ºéoò¸÷ZF6<ÍXù¾zÌqo²‘b7?Pé(O·-åðM:°\$J3ü’(9‚yíJmºôÍSP(•J6€^0Áb îŸŽ‚›&¡z @Ç¡àΔ4‡øÐú<œRlÆZkžˆÍ0•©pjº{û /6äÏÂ4€™g‰zÒÏÀ¬¦w`þøØ¼+mÏ¿2_Sµçw}»xó&Q,…èÄC ÝCü:…´ÊÐEšÜàS º¦6¿U¢|€ùQîi‡1ñ(ÅçÏî€L<ã¬,J·}¡•„PÓ|*¹³~¿R©õ¥¾Òœ]ÄMm“ó>g<—SñξÍóP8µ¡BTB~?î–óòYbmQ¦îÓðµºÞÒd-P -ÜéQ%Î×ïÇÏïS“ŸÕeÕmþš*ÔZ³#ûÊ«¼i÷©öîxÓóC~̼/nÒ@ݬ¿çÁÍ4 x”öa×å%f¨u2rµ´ÐˆáYrMøYvÁш'ðÈçÛ:Óš €}…¯Ä²á"4Ÿ¦rÜ/çFtîå±eQÓQaõRF× ñd% -§á¿3ó«þ˜DEc+$ã¼E&H“èØÈ›~´ŽI‚æçfŽÌ%ù›VÀêªÄªŒã¦_óâè-ËúšJÿ÷ -/னžŽ¨³FJGG¨PJJîuq }—iùÂ*8ð+)ïÅò²¢_ÕßrÃþ¬œ…GKÞ…Ý£©O`iÎ'<ºþY·½7 c×lÇÜ¢áÁ;ÆÀ 7üˆ›ßóéM1Ñ>–[±9kÓ.œÝ>ˆÞ>Uæ ѦâRësÿ%°ŒEò—Qô*S Í‘rj³‹•gk±‹"Ð$ƒ¹7 -Ù7[XQèq$dÎoúHûT­o±ü~dI󀿣ú&yOk›Vû´ïdùígÁ$¤§™$šÜi:”JÿnÕE»tØÍr è;ütª°ªÄä|·³MÌû¼‚‡Gp"Zoÿöõ/biÙÂù{ÇYÏ” ð¶É¢D}$è'Sñp-Ä©Z #[?A›±Ì‡ ~gãhlÀêì+ûe¹çLOáÆ¾&À$*í£µi}£mÂÜñˆ”ãÇïx>T.M·:AMdÿV—Ò¢˜ë\ïK‹6”jx‡Ñ´#C›ÍOHE/€Ï¬øƒ´(Ÿdy£Ò¶E-\ã¹sýˆÇµ*¡›­ìû]:¿k$íóàø}º·Ô3r‘û hýð.ÌU³Ö¡!t×ïT­wÚ'r¯M)3—°ˆ I?3þ-àÈ¥+Ž…œÃBÆúæÓÁ#~Ã(ÊSæ?s{L‡É±,÷¯1à(ÖeÆÜgÉ ÷Åùá<¤WcºÝì|kÖnÊß "]Ëõƒo£s´ïy ;p-ƒã¯/•Ð7‰#ÖèRÔÊç,m<É}îvm|Ì´•ä' À…Ê̤ƒÄüKª—vañ-(bßÍüz‚Z<ÜÆM¿éòQÒx@Uþñ+ÖýåMws0”ìð2á}q¶Þ§ºÿ©çÿI¹Ø 2ymëç…ÄD½¤í­NÛ—1\.Ž3è’ÿ±HüÆ|cPžûOŒ÷k²nl§–qM‚8/ºÐ xŸ«¼ -kÏÆýÊZ=“U“ÿ­ã#õ¦~ë;nJÊ–Pµ^œaÇYð°mV@w¶ülñÀ¹É¯N\²¶„_s’ï2¹ -PK>Þì‘Z ˰ëïšÁÑÎúg½qSgÞ¹,{üñh‘wŸÇNœ·¡é^­Þ¨÷>#| î-Ì÷u¡M¯laó™Äa!n+ͦßJ‡…ô -‘î;GE”{JÒÚñÉ5åM~@^])¹”9jµñ ¤ßÇx¹Ú¾ÑZëú.2¯_÷{Ç4Q¶oTëåéG"—ªž9Õzp¢IË€Æ#Óso¨U+‘ûâ"öu­ŸÕ@˜øÄ…±èFØ÷‚‰Ð;ogó FïYÆ3é¶•ûÿ km£CN»úBPá¦<éùcü'H2B\8•Lj³Œ‡'Û)ìNsغhdÞ¦‚CÉ„ÈÖïRYÚšU=3j‰ëWTä"U†Í.O}ÔjëQ„(g…ü¾Qs¨5oZS5û¤3¾ºnaZ‡=@ð6ÃÊYWÒÊ`ÇŒu~ÝÚÁÐÌ@w-Ø,ƒªõ‹MÛ¡áÙ½|voóš$™ÖÜ>z÷OiÏá¡m «Ùú/þѨ¿ hg°Oqëû<Á‹e[Ûd’ñ oZãÀÚžœ°SpL‚èÛW<ïSÐßfâúÞY i €›Z?×Ô½ ægöñ?&‰E3‘”ºO&ïÆæ²Ú;¬x FÐ'¿†­§°¬ƒ‹O}ë«ÌnQ,7ÞФ‡™ìð—S×1\ƒ¯ì}\‚æóªãÿ°‚ Ù2p˜‘ÙRî%] -ÕÂç–à ƒ -ül<£ ªïÎÛy"믹/ ½QÑjv×L ›L“@ÀóbÀùx,­vŸ¼+6T¦›4JõÎ`Ìû.v§KÄÍDuÿaÍ9{%ø í%QD“¸ túyì“2Œòß<ØZT,+¤<·',`#_[ñÈ!ó j·/âð¾VÐÜñ -;öbŸ#¥ÝR*#¥KÆ¢ˆÉù³€ÜüªÍÚµk³ ¦´`ƒÙ¦o1Çäœ=Q‘`—éÞ:9ÿk½QãŸÙ1“›D©œâ7nI«¹ùî0[ßW¼À啊„¢7Ø€4ݹÖUL‚¥û¶÷Q¿$8°Upu×k*8S+i¤_ðÖ³æ}÷êD/ã‚”: ?Ž3°ÙPñ0'ù5Sžze·P;ôDú¤ìy£C -•9éÈ1¤ç·:4E‰jÜ€ÞKŠx‹ñø@_•¬ˆF{-¢{»\p`$üž>+ „צB EthEkhÒÎûÿ½s!žã›& Ü8I-T³h±tùõ¢Ñï ˆÉ2Èz˜nV°™ÚpDH8‘n’7TNÓ«Áös$-·—""~­!À*–ëW†3Z':c@_söSg vïOب`ß.–;@ Q)üß09H£ûªÃXÒmTʦ˜²¿—–ÞGXº÷qæ‘Åñƒ*¤H4_?“f^N|2Þ”1Tz€F‘=XË3"º©ŠGω-ÓÛM}*åç<¨«Ä*üœà2)¹|+ÎÜsé>P­j†ÜPÑíHt‚Ä”T²‚ûÍúFÁó“°æüFpË>,ƒû NÄòñ˜ûÈmüŒÆ¹êaÚÄ5Hü’6úµë³_¬dí#&ãæ$Znþè‘10a3大2&›Œà1›¦&‚À“&oýÇã)OL·…qؘ߾9®Ü—÷åawÞ°•õêV2Ô!é hœ8™z²R¹Ì5Q.ÃN•æÄφôd’?Á0<qÐOð¦¥Ò%¿1Š/“r”\R‰Gv“¹^~Pí“*p»„qIŒåÚ Á‡Ô,ž~d—N”â}­ýM£~BG›Æ¯oÂ%yþI!ûø¿µÂg¸c5rø(Ð>Á Öe/>®Öˆzù샱ùhÓ>G·o¿LLwbhÁ1$y€¬kâÉ/7È]*íaì+,£<XdâömÁ¥h„_çîe´pš/ÃËt¥»Dyd{_ U¼LÕ½ {!>ªyRi£û‚Yý^®Rµ’dR‘!‰'Ä®eœ`u‹U^¬›Ý$³ÓQIR*MaVƒ„†%¢\Jguš8_.Æ"|äŽpÜç“_ùKpò.‘}µÊMxîgæl²|îXr/f,¬gš­êÚhŠ™é ‡Ùu–ß?ü–Ä.Eåõ€7eLÛ»†©à‘mO!ð˜0÷•-;÷©Á±Âiôòö!šØûbû ß§›yˆSCú|ްŽIü&Ð µÝÀÀmf_”~‘U?¼áûÂS¨ÙÖ¨!yç’Ê<v%Š‘°ºÀù%ŽÝDI~5ûÌzòÙ:ò½¬@¬Î¬fÞ_}˜Ò‰–Ùe*Ò®fRû¦"Üõc’'˜0‡/z4 ‚ëf¦0"ûÐ'‰h!Ž2=ŸìKwŸÕ«Öyt³«¢öÑŠã‚@ó[P¨xè·Î)75Ôƒi~G‡®¯Â” ¨²öêï—}€H¾@ §^îVEk„­ïP -À(‚ºñø ­"¨ªÝ‡¸ ç‘^–}û¹ -l5‹(6Ä`O‘ã>dºëëw#²KdMŠ÷Ø,l¯ˆ“ sª÷ò+óbÅ{ÕYYB¶QmR<¸°ÊL¿Dâ5¿‹ÓŠó¡<üzf„ý"WýúÈ9«CÍ O2\•£lµ ¹°ãOÅ•Äuìמ0?V+ØŽEìH,1‘ÚóÛBT#Cr Ø;ã¸Èö¯pZð‹®!Ü&G€=ª%­i<öYúñ0 LgÐNÝx+lͳiðìt‹WZûÁ¡ymõ“º¶ìµ?Ä”ºð͆2Ùn¿Ùt!á ¬àZ‡þ’Jps$Žóã÷Bw¿£¬}2Ùà„THôÖÍ -mžÐŸ[÷åWþêƒßQy?ÏO2„cIÁŸâ1míXAË ”Æ€¦Žpþ§S¾Š@ï°ü^;ñ¿›tsJgs·\Ö5V1µE.~›UY冬–*f™#†eƒ†}iëã¸úRh 2ÁðWDn:ØÄ.„ÓûÚ«»³¦ßé†ú+h>)Xhy¸Ùþµtç(ëGGQ…i”%AœMD¨Y¸ \4Ä‚OI­À£û³òËÃxÐm'ô =j•GæÛ»mÿw8÷S‹†æ>)[¼«¸›;êчýÿ©S‘7Ж> êüPmö{~PAÕÄh¥+uC½ÁBKzm¸ÑÎO¥Æ‰÷ºŸßbò“’¡êà°·°U#“¼‚)5~­ý<æÑ‘a‡A)æ¿Q q$ XY7˜½>Ÿ“Yýo¾Å>YA•ËÒ}ÿ/¡»Œ„Þ׺T(§»:àX2¯„¨ßJÊKŒ’ÄÐ/h~CV‚Ô6‘i²5šª±z¸<Ô)r~}¦7t£nRQ„]5¿`%Ɇ,Y"iMê›êp*‹PÆ8ì‡Ô<^‘×2™ -èˉÙ\ÏêéRaŸ®€Mõdx:JhÇB×ò®tËf£ èw¤óA‘ìr/·®F4kÊB Ø@gI2Ií#ÊvÍâ%3u¹W }a_½à±TòmãúCbtsýžUKy¼BЇ IS±k!”Ù‚RVÅ3L7¥5ñ¤ænÍøA×kôûV,“9͇G~ ìVøŒ·Þ‹ª‹(ɬ€t໇³#?l²&Õ.ÑŸŸ+Q,±/íQN{©¶×k‚ª>2º6`F¶C*ϱêüBMô û‡‹É©O|À‰¡>®¶å—uMFÒH~†D—¾pÔæ›Ð§Q-ðsÀüÚ‰ÄYS¦%” J¹D^øùZGã "77£GŠð}M´:ëUUUf;º©5;~éVRóGbÐÃ/r_qÆ ZÝru8-2ÝvF5~&‰Œ­_F³^×Å¢™g›èëd#þ•Ÿ²ÅµB›Ä.h7’sCéj~€[ØðÐ÷FŽÕ$DEÔs¼usÓQ¯;éy0ŸŸÿþgƒ)R V©8ø¬Çí õ@~zìv¡f}ßç4ŒÂ†ÍÁÑBI N×v/u{ÈDÉ„ š_Ô¢Ãsaíì(òë&kÓ¼Ós›2 þ®`´Oîä…,ÀÉãmÓä[ö¿ln_£ò‹V]Ø7H,óä.ëj ýÛt¯³òëFQ‡_º€FWÐz?™]'ùEæ]/‹Öüs¶¤‹Ÿ¯Â‰ºd%­ ¿+³âdr8ö¾kH'c.(SGëþxÓ0ÒêÒ¢Ntx+’ÖùÍÄ{°`5så#Üâ—§¿MÇ€gjâ¢ÕR¢b ËÔ«%ͪªåDsôÎBSÇÅÆ#8öBö>Èy_ ØJÞûî«{)²©¦x “ú½¬ë>ñjÅ]q¯»bn›Ìû7=ï”ý ì–sHQ +RÄMl‘KÇr ÁˆÜÃFîZÕßgÛö0dVG3ç­ìòp‘÷@df=eP>·•~Eôèzø¹]¿Ã?>›ì£åôòùwNms‚†Ï°-ÝóƒüØyóè‡Âo9 jþ9ûˆ;¾UX!“Ù÷4|‚Èî"£Æ´=¯âÌXGï~Lhõ†Í±k“Ø -›rûüFü|Ác¤÷GÉ®éï $Ú<¢Å±k†H´w 5UsØW°Gµ‰åw ¹®©4\fÕ†ÆD¦¶ž÷a­¤Û'ÅÇ3à’yð §?îNCÓNæÇO¼ËÄ& ?[µÁc Ôº„€_bú‰œ¿JiÄ.Eì!rŽZ‘Ýçü¢P|²  ìóÈ.ýü›¾«òØÐX¤‘÷—©»Æ1”Ï Êò<ºô³Ý¶Ÿ«9¶K.¢@†°WxåÂÊ×ïc®àü\DO®‹Æâíþ—ôc;¬å©§eGwi˜ÑñJ‚áÑËÆcë/}¯}N¼>¤P$dgñ.áá «Àš@mB­&öUÉa¥}õ±…û\÷r\Áxß-¶NV·Œ,¥Äký¬ù¬þ¨0QŠuŸâ¨èñÌÃkÅÕí"¾!Ä/ -þÙÙDN?§±¨}2„ò:£$_€yHui'Ê6:šßüß'.É}5Ž=Ð+¡¾7[ªÝšÿvðŽ-XtV+ŒJ„ÞŸyFèÝÕµÿ¶ÕõH’ÈŽ—¡¿ç~¤ú],ÒÊã÷mãa>uU5(뙲iÜW~±ËAWÈb‹‹ŠÿÚ’`¥Ü=Eòà;ë³Sx@‡V´AàÑÜ jI¤õõÒdsN>ArßXŒì2yì Ná ê=ЋŸLT§ÁÁ Ù)ýÎçNˆ½‡üÐþ P`È©sgyÚ~n¦Ò$È¥±ø„¯S¶¡öùPÃÆ{ óV›]´}Š!#a¿«à¼ˆFÚoWÎRõ †™WéÃ[é~éK4|ˆ/lõÎÌ&Á‘AXƒ ‚[|~(¿Mðco{÷´ªéIÁ#?®<.2 $8g!eì¹W× ßÓžº~ÃùªY.z¼ # ô 6Xré›ZtÁ a°ÜÏT}Ë„ç´IÜÜ>›.NX6X¹¿°Oaë;0‹ ~­öÉ}ºÅ&Go˜Iußd)õ㬥':pk háˆ]6~dóß§÷<¾«ð˯!ÓïMiUJ ÞzªqiŸÍ¸/’‚dèyF:ä\ò›ðö3ÐÃWÆFÍñïäw}^Êæ’`EµÂ2´ë(kÝnÝi,µÏyt¬Äx6þ!‰vœàßvt#ýYBZŽYx 0h'.Eô «;ÌòZ3,Õè­S›ÖÏ ÀÔ¨»•‡>˜²§!¬Ë;ZéYºgi¸Ê.Õ›„N+ð+ ¾ã€ã­RIåA'¹ß,Ë#XDg½}RÏÊ¡,êÒc4ûû—Ç [φþRºîBó,àÌû„b=Àx’ñê§ÚO.kë7 ç¯~‹òë^˼ÚKÁ­4ô£:¤ -ÿïÞL‡A—B0ôª(… kgÀFýïŒ AË}Ÿ}Ö§ÇÏs ñ.o“®RùdmÊ5·‰b»(²«—…‰Dë[¼CÜt¿õ­ñ¾¾Î`ØÁc¢Šì%ðêB1¬cý$蟚žæa’r¶Ö½>OLœ±iÅÄ˰›Š—\êêÍÞæð÷ò÷Ùšú·ýFŠ·J‹ ðD~Ùû˜ ,¸Ö×Ùòû°“ãmÁK¯d¸€(ÏêžËjw›YÇB¡J¤ý7×ýõësOŸþ»è’ý­”NýꟌ_¬AïC–P‰y‰„Lþ·.¸åÌ9¤í'•‘Æúd(Ð>EuŽþ¼EV a¶<ø]Nãw&¥^ÙÉžDÖ´]ÖR*YñLÚ -~ü™¥³ýŠ89‰•›?°/£ã‘Ùï˃¡É 9½š3 ¾-Š!dbMêeØÎËÈkÑO5×å¢QþP‹<ó•2Jn4xØÅŠÁŒŸ€µäû\óxŸg¬½<–‘ðC¬›}¸¹ÏÕ¥WØb£YJ‰M[ß¹”.ºй-?ÎïcB*K¨&ã}ûíÀŽì ù¡¥GŒëÕô)‚½ü¶²× ™|̧+€U¶ÒÏÛ‘æ?c'¤ž·òVÐí«êªøäjÊEøM¨¡„„3~µê&8“ "ðx3ØÜR{Ñêª6Õ~4ûÉ}^2ÂÖ¾µºGÎÊùZ?:®ÏØ'Ý'û†¦'– -ß'ÿÈoÆïÓ-NœÈžl/áoiˆEB ê’Aóa’2ëŸø`IŽù}Öœ÷ö Š ·6»*»_ݧְô -²}Çïf«:"÷´H»…eÞ]_ˆ®‘" ô¡wÔ¢˜Á³üüñTmSãE¶*z„þƒð¤÷YTŽFz|But'œH[í·H 44ÎVÂ?¢Ÿª{ÑZrnzZ…‹ Õâ¥TüôòDm‚fôu¡RÓ€ƒæN]nvÁÊ\ìs|Ì}´Ëñ¾Òa+>˜ÇYJE盂•ÂH·Bû¢UìjUï*úqwCæ—GÙb[ì¯Ô±¿)²íÌþ²Ç̰Š]özÞ25.:É{P$÷žó hd.†Bcû^ÿ…„7´´ ¨Ö:3!\"ÅNå\$çÊ<6êµ” Up^íðìö£S‹P˜„ BL&ßmi/®„lø^ŠØ»:göåŠü̾šÃÒ1>7^´FôÙçöªŒ2¡¢À7‚Ñr£qÐêQ¿^«ÍñüûŒðã5òÌYn GÏœ¿Mœ¿O!Qp ¶Ÿs´°a›®€©­ÇãìÄ9`ëóLM´^8°õñZǘǘöð‚lnWÜ×ðS‹¨±p× ¿ РËûèç5;pÐú]¹Ë!²#cză®”à…ä\t³ºß>Ï`ÊÚ²6*âÑ?g'©ô"Ÿ79‚«R¬Ó†'6é¹ÌÅRºÎv~ÝùÎøýQ›S)îÑ¢µ†·äõ^—,S ÆÆ“Õô{ -*€ÊÀÚ"3”•†ú¶ÐÍ4ÚÆÇO€µ²Ä%‹Í®Ù ÅÞ+äÉÔÕì°0zŒ2ÌÆ~yª>ºA\á®WLÞOo_Åzz1PÙ3•¨úXjŽð@4'Ô\ž”}XQ=,Óg´•¶I{áÇ#÷UD¹LÃVÕD‰ürÈBQ­K/›!½~t_v‘f0š‡|Ð/ÛfYWݸŒy9dƒa™£D›žmì!‘…€1ã6ðýÁ+ÒC7〆ÈÏv•Ç ¥+u×gnŒjQ›.Ä"ägÃB8hýÃRŽú¾Lå\­£‰ëo ,}z)¿^:¹©¤S37¸Œt²ëêÒ`7åǽVM?Bš÷x%Y~,;‰|ìÛ0š\¸žƒ+mÔÙFûiˆá"õ{ª¿“ü‹¼”èÂ*æ–ÀÌU5Ù å‚_To„eY_$Âã/‰bs§­Ü…7's„S"3UÌ‚[ÝE×Q™Ç=ÃI+¶r56±óÍCï'dìèÁ€Û‚Ö_Þp°ã¿£ ©¯ãX!æbÌ£G.¹@°—/µžÌb–;Î ÑmFÂ~ÀíJÖ(ªÍägóÓÅI%ÈS[a)wðˬ>½þõâ„N(f³Éu4ubî_@ &#ý;T›ñSÜ#ÖÊÏûðœñ 2˜y6ÔtÇ謭Bž$ª&X¡ÝžÅKUŸ&e’ðKGò´ø­­Ðr«ùÌîì¥&n²¹;Í¡Ѻ¿îÖø¹ï÷q²·«›CŽÎtWLÆá«H/â¨{+N=Òæ‘=y½Ó’Ä@œµT†ÜdÀo" Zs*¤Òö—½æž±ƒÄà:QõaDáõVyô>kÉ¡¢;ä{p†MæÛódöÁæ‡ÈÈ©À…­’`bšd8v˜5OFô\æÙÁö 8el­K_ÎîÃÌý¿£D‹P¶ì·u?? ýcšѹ`®õËÞ)•;wÔÛB)?ߚå8,1 g]"ÝÙ§‚FЬçÁ-S!ÑðÃ}TB°ÈF‘oÉWWÎ%Âc4!¬ãÆì™ó¸ôQ+i7-ÿ…--”ª#î÷ûm8¶@Hyž’¤ßv/R]~x½iA¼Î5ûóÎ^.'Ã2mÒ^Y'¶/rVáKB•3¶Uâj£C/í”í+ú2VË-Ę&þphD­uÑÂå S«o‚h~n-6¨6y‘‘Ž8d ÓÆ<>'º¯Uí Žpx”ã·¡,‡.CN(ØÍPâõ*Ѐ³·ªŽ>ø9‘Í@uhø‚lßA:KªjûÞx°§ñyF¾¼èßo@”üàïÙ zžºµ@‡ì¶Ìe¾K::óÿU4P#§€’V ZOµ‘*^üÖ¬Š1˜BJ)ªÓå@k‚U;Ç;‡ /B?èT^ù½²oX -jÂ`‚iÕmÜA†Q]_xgì)›‘ -úBò{£aGQõÍwŒ¨}â·IÑ ·éµnP5'Ô$•û¾² -¤wÔ¶&j¹û¨Ç‘ÞbƒXÕ]¤Ö<&ñþp’Œ­lë<4Hk©ÚÕVNCInCLþ€yͱ¨JÉÒ?ómæ2EÈ@ù*’éç™óýyŽn|ßÛX'à—‰±öu— †Ûh -ës“BªGQ£r.q»Ó&órê0è­Ð¤dž­2[ùJ†¬²… ZƒDVínSòÕ8 ´`ÿÑâ‡P„á˜æâùEÐô†E¨’Œ JD(“E:ô6¬X=øº .8qÕ„;ëüûÎ.'¨LšL,n„„L=UR‰ –#Ãñ^*ÏšÙ¦Ô°O :¿ÃÇ)ÔÓ?+mÚZ‡°TéO´Ö}<ý”¢‡Ý›åæYPœš¢Ý y÷?W,ñʽ»œ­î ÖâmT¬úy¦€, -­|ðûÉ©¤lϳBª¦ÀŠ}Wàû¤"Ô -»ú»Æ¬Š<-'tÕ>žèõâŒn˜®F:©Yî×l1RסÆ2œTʦT GH]ò>ãU¹¦áãÜðøû”ž×vï @»šÇÒ¡ÔÆ !Ñ;KúF{GÛ3:ð;\`x- -Œfž…Dv\"dr§Tx袹3à@øiÖ'’9ÀÓ]=d‘­<Ô3åÈ1a8!gæMÅe¬'d°Ÿ¨P)Zä$N€ú2VdÈ‘¯š©óÀv Ò ˜]½¼‘'dÔ…NQ{—‘¶§(¿_”6%Ym4&Ix¨MŒË -I5DȬ¿ƒ¹­Í 4šÛùåŽUû~íó@_yö&ZĈæAÉ®¿Nú$*uS'ù$÷Á]ºë÷wФ èz×Á¢¥+ÆDQ“´Ø• ^ã>ÏRäËßü<ëá>âA.Nâc#(/am»Â!kåÞX½OŠÉ¾ýü·”®ÉTYRŸ1zìø­5¿°%¸’!ýOl -J¶ÜèõÖ¢%•‚š>ŸG_’òà;=QüLsPĹlpZp˜nL?×ý:(­¦;! õO¾’×§€Ç•µI®Ézmȃp•¯øCÄÌ–;¤tÈeçÁ²ÑœÀ!<¬Í]x¹!¶ú6qì—î3ø ÷®îqæê;9’•ÅÍfT*‰ügþ 0pÌ?§|…t2%øµü]ç¡X®û°Æ‹­V¤Ÿ’#Rt!ráƒ%}ÃKžfÊ|ÊÊEÑ -…ê•Á¯î°/3~ýÎjöœ¨¾Ü:ù›>µØ#™Äãý%t·nfިǂûx¢ÄçfÙß3=’xö­æ?F¬ß˜ƒ¶+†³”ø­".cïc^Õûb󤼬Òûç‹‹á¼Q̤AÖ‘ôÉŸûgj[_Bù-,y É2š&ü¼p -'ú I‚î÷¥„LEØþbEÖ5÷Ã>LrÒümu§W6»šK°R£YrŠ­Ô­fÄe?oT·¤îK,N»Tø’Åšû1 VÆ4Âi -LÕ„)tw-°E•Šs.³[tôÈ'}~È`°Zècýö}9°,èt°$gy¼¥×¾§€%òÞóѯ;˵ÇA@·XzØ ¹÷üwbíTÆg˜¬ÊcLóÝžï»õ'?[ÝÆr#UÃÇ|Duü!J´~×¥3Sýp€¡†a}#Ôié C(1ggÒààW^GäB°Ü?¬/ó$ÄP*ƒ`K1HÃææ¼¹ˆ´‰èV·â'QÌCel^‡Óï>žŠ­´¨Û†»’¨<ž±h€™~{,_>…BXœ\yÂÕ½o»D]´–„‚ îlÚ‰ÆÛ°ÒÃkʆrÝŸ]³[ êZà|Ý!d˜ ðqÆc5>˜‰–ŒµIùì!Ômí«×èU¨¿ôõ´¾Gm0ô}zÊ0ûÄ(Ó˜Ù'¸c±W¦Ó⿽»ŒÕRZ¢ Z˜ ­²xvrÊ®Vä}ÈEwyáoIXJ$WÇY6Ðù¥€rÑÏDÑ#˜óËú¦–›<1UmÊ«j‰_4ÒVƒ8xl,7ƒõ]$J­~~áѹ¹UX‘ ^Íñ;ÅN ¸åÀ‰»úœà”TŠj?KÔ]øÆfʰG)Õ} -a$)ˆÜ‡§ø­ë{9Ë‘â n¬IË‘¼QǬ ÅŽÎSErÊ©an=m˜‹–.Û7Ôöa¾¾\Œés`!]dr&óܬÕë‚<±É G‘Ù܃ü][ÐõY]_ê -8Ó¹É)ƒ:1LAkP¸ÈR8ðK žLãÎâKËã¯ë-1U·õ?vÔ–ûÜæcÞNQ%‰Ã¤¢'±xI^ðî1ÄtÎZœÓŒ¥ðcS×¼šòhѺBžþ“0ž)Ðqm"è•%™1˜ ËØÛçÒ}¬ëñ``[ºù˜GÉpBÅ}í¯5É«5¢ÒÌ)í‡ã_ é/Y!þáôw늓ò®[ê -#Œ Ñ™6çMÉŒuÜÕ6N -¡JÕJÌ£ï’ꣳ²ù˜Ý’ ½éëó~É<Ò*f 6èNÞ§”’ÌzpLÑ7òà;AëÈJÛ¼±¥ç9KIÖ¤4yG®?{ìo²¯o™RòÞ§ssr?šN)¯ê¢D‹‡šÜS”Ù[r|â!Ô´•„då’–—:—–Lzj£”e^˜8Û5wηFñ_RÜlòþeùÀ5ÀÝPP lU±iÅþËl¦…øª™d@ W@gêÕný×Þ±ÜsÀ³?Óqá5|Z¬š§š$£a)8‹ý—!¬:ÏËRD*¾›"åi¨`ERz@ù,pb¾˜[À’;¥+%<?¸&ÎÆšãE´eŒ[P 2õaV±ÿoX«—{`ÓnŸ^ áÈQ\, Má \ËÕµBcPK„œ¹ÃÏⱓj²ðSy²Çx¸û+îÍûòÃWªÿò›tuúzáõ É{âë‘©&ÊöF„Õ›un­™!ìmvÓTG>WƒhFl³`U>i1÷ª£Øº¨‘{Ÿ-¨fø¿îÃQÐ ªƒg0~!<#•Ï6OíBa)÷Ü^dŸ= kJ ‹ ·ËtB7F±Ër×]HàKI˜Ì™_#Ú|dš!Ð sbxüßøae×CÿÊ ½>ÈNš…°)]æ°AK¯-¡vIƒ®S†´/aàÈÔÇVZ©ƒ0Ò¤ÿ*—‘p¢°¬+6)Áü%mqËâ›mP%†T¡×º÷øåîn¿Î¸éäÄÜôP»Ü®-SàüáB|œ4e5þÄ -˜4ZÛlø—¦=óù±”ö3Î?·yÈnÌRc¡ˆ=·+øÈ‡½ñ|¸Éæ^À 3àü™öé¦C L…Où`X³Ô•Íܽe™»gvz±‡,ÏXV(¹œa¼&ºÊ?÷N.õ 00 òµ»]„WͿܟœÎÞOÖa©wR,Ï,N”à‘º#ÙoDKo¦°tÍ6ÒeÎMµÏLz·‰bÿ`²­rƒx]_™Z"öúüÚÈ/„§²Õjm‚€iØ‹çxÚFÂÓ&ã?ºð\ç°!CÍËÉgHbÅþ»X7kçeæ^®¡IêÝ>g˜0¼…îy0U-<ÕÒ.` -›õ}Ù2:Ø.lÆI# -Ã\—Q_,~X±;ìaUA†IÅÓ¼¯':X7#O-({8QÄØ“o/Ïíù¨u)ÝÍE­|ç81‚§æI-Šï7XüËŠ|¦·3‚‹ï'™ÅÑ, ÈÜ Æ3œ`äe9\ëf=l«î„æ2$õo­l̃nîµ`•¡5š½…+±;é}x‹¶:>žÚ˜F¯m†o~ü{Dˆ -.V˃ZŸÑª¶Æ²¥Òl¸z€G]ý˜ô;uÎŒÅ.¶W˜ÿ¿Y}ÒîåíAOñ{ø†ÖPøóÀ´WdHxÇW8°|øÉÙª£6ëe%ÿ±‚¤ 0ˆ Fÿ+—ïèÇ‹†éÌÕÐ<)Uà럑rÖ 6ÝðΈpvïåÆ?VºÙÅø®Œ_aMØ¢¥$Á¦ê«¾‹Oø•÷––äºÕûkcRÙKßꎮ æd5Ï®qm BÇqчsOß$ùºý‘>|\³Î;ÞË8š\®ËR·Íáã¨=š³p`J* -Êi àÆèÝÄ­fUªs¸FÔw ÁÐ:¼œ·?á@!öfëSW»Sˆï¯Þí>à곜nÆ)” °2!ëØÚ­“trþ'9ØwéŸÍ¾M_ WÍíRá FW#ýR¢.ã¹0hš2Ð0¸$6~ßùìõW¬dró§jùf~? ¯â³¦f¦‹_¶3KÛMWíS {Q·ØE,Húnåò,˜/ÞËR²-_¡¾XÄéÁ=)Äívâ¨R¥JíQþ<Í“M¾'F¹˜ ->X0–C¨D¿ó` -ƒEÃráXUü+80 zTH‰Ä¡ ÈaE1AÆ@!„CQñð㮆Ùs(!J™r層KzBÝR ¬™Zâc^Ç ÞjÁ ¡0gìªåŸ‡!›ÂGÎæv÷}×xh{Í4?ÞŠª´2Öž§ƒ¤mÇÅEIR» -PVÍ ÐËV€ß$³W¢6aW(^sy€ -œ8Ô—µ~þ‚éâð¼üëKÜ{–§ÔS½¸2›J €€tðîQöãÞ—œÇÃãj]H²ÈØB~q ‰Þwü1‚ë«4׿ÈëŒ -= x$Ç ‘ï%l÷ͲRhëñ¢h¾a ™tSn~Æ`€Óg­õÃí°™_ÀÓ%p²,tÝ·å,ÝJ„»V¶¯}'µ¤î'Ô"òÇO(â©î4ñ륃æÖˆ›pÉan¡mã‘^$è›ûÕzMÛ[÷ÑUÛw¶x?‚“õÒP÷¿˜½&B)i}ÑÅ ï{—¾äj…±ÂÊvÍ H—õçɤ¢ÍNûŠãð ÈžŠz0¶#%IÝã¨Ø gm’•¯ 5ú N–í5Þ é®ø£[:÷ 7’zf®–ðóEò<8kE‚Ä<&OéÞ–5Ÿ%¨µ£‡ŽVy²­ÅvpA_k¬Ú&ó ,Ÿ›Š?/ê?Ù'–Y–s¹”|–Γ@{HVZX7}3]˧µŽw—©ß÷¤±ùn-¬i¨¸f(kén½a{¤ -ÍrWÜÍŒE*ñºaä\Ä……Ü4³ª àR'?OS -˜R°{ÄÌÊopȾ§ž‡­ -ßÚ©XG´g«©ª á's~”%¯?ÓÀpÖwÍÜ´`ßú±Š«k{›òGC9ÜWf_½ov‚ Mœ·µPÝDñiÞdËԯЃÀ -çrq³kûy| ýÒ§B¶Àµg2ȶHó&0-/ü¸ðçÄæy|ÂCîýl"G -¹Þ¿Ŧz_ã¨ãÑ€øU,ö<6^ "°PŸQÝ„c‡í…t!Xý¦;Ã>su³ lI0õͲø6­èOöîÜ}¹ú\ÌZ-n–2¨›xÜóý…#á™.K?òh`åL¿Ô¶Ó¥Ä–j†ç±’þ 99uÿ‹û& úÕ! ýr…6i‹ÒÚü£Wª=΄ G «9S¿û ÝAúèw6ĨGÕþŽ ~ª›òSšOwî5×5½šh½'ìé–L‹KZœxñÓj{eBÓ9’9îP$¨ÈY3ˈŽ(­×.cùµi¨ÁÛZ¥Ñ-sб-ñE¾šºC·|@ÒM b2•1ÿÁ{­ÔíæNØy?H´Ná|œ!žÄŽwìêa -‚ˆµžg<ø0Ñâö‚‹ù©Ûú2IhÂæö~á€[µÚxg8w*enS)}p2sñOW•"¨Úˆs;í¹ºC¬-zD63®‡Š)…/;U -¶,™X;~ ŸC.€Ÿ€ŸïX× -ý›6<–óK~Á“vÔºë•8-ëµÒáü­¥T!e3ó"qîçybÔQ¹@ÂO𿏻¡Σœ4õL ->ÝkBM9Î.ÙÀÜ?!aí!ˆžøgöÄÔ@-‰b,¥c˜ýî‹hrfœ æ§ ŸV•̲ûrÝćÔób.õW)ÿ¦J–óUTD#]Ôžoò³ôµØ}’î1Vž%P•DÕ"OïâgÐÒ%g=¡ßZ:pއœ3‡9ƒ}ÿm¢†ò¦4ºöÈèI P‡ˆ©©õF0ægzÊEx"·¬!¨Z1þQ´ðe_ Ç`<†Vy:ŸrÉÜëäzCkç&8܇d²€m†9† \AgѦŠC2bN¹óšHŽK^ƒÕÃOâQå¶0FTi>öû<¡n#£òKÏIƒ?!>ñáÛRj¶Â4Ñ›¿k›êY `(䈃€ßm,uJ£hÎl‘½[IÞÙ”5aøéˆx]žpqœÈÄ—-`ˆ›ŽŽ¹¾ ”ñ¦ý(:dtCë»Hk¬ºû~^\ùº¦Giдg쳌ø «”ÿ"5‹~ºS ¾Ôp‡ÿeÏI‡^¹ñ{èö#Bex›’Ýã'û0uŸcÙ0KP}CøMÒN¹²š½¤wwoŸ‹¶¥/:û—$aUJê`¢õ7ÐÚ2ìõí¶¾Æ´<œâŒöÓûß ™,“#ƒo’Z˜”xÍs²·Sùý-µšîëRpˆ3èÜsZ N|]ÒÍzµšq´Cp:ïîß²¡GxøiÎFÜ_…^vç ö(¼BBÌ=-ßÄ`·„寞ó7[:˜.“ A÷Ü£9.ÕüÙª~ªµ>ßzךÌÕ© ß©»ä|æ…ÆÉJÃò8Ì£oöÔ×V5}öeÈ›ö¼ -ys_Ù¬q<,ª_ú½¾õ@% *“Â/3ŠÆ`óàx!ƒ•|ßÛÐÐÐïÀ½ ø%»}ï„Ý”¢*¸==T@F+pKÌp8B4Ô;#ÍÁ¸Nlw(tˆ2ÀçmšŸíb1J%‹óAÆMÏðsØ"~']¦WyX'¾¯§¸<îÚìR>UªLœ× N]q+enÔhÝ7•ñ¨ ú­¯ÑÖüP2&G“xd§¯Õ1‰tR ŽôÁÒ7­§ ¸fp*ÿ‘JÇãJx×ò<²úyc¬á‰FÑßP™Ûü®ÊIhd[3Þ௜*~FQ÷£TʹVõÞþ€ ó¥q;à7=jÛŒÇ﹀ˉEVü fW¸&Àí@(KøÕ[Zð KÅÀÖû®ÞOesÊÉDDF•t­¨!Œ„”2G9“Hý¦}ÉHt)ºsîSÂÏr¨œaêòòO“à>µžêœ8Ï©¬_nç0•ºC»b½?ŽrOnZ€Kú¤?÷×éÏ7L,Á–tøÜ>5Ð&…P×sŽýì+¿* Ž‹ãºM1&ãM‹è‰fz#5¡žTI²ÒGö¥ÃxfP䈊EIfýä网<ézÍ<'+üÎ -å0@y¼¯îè™MvmÚî½ÔÌÖËC¹Ùt‡ÎOÓ¤ý–7å>ªÕ_¼ŸÈ‰ã!Òbs„×4½p™‘ã¼të¾^¢ùR5 -v]òާºæZkö#Žf–BqnRÛÞ¨µhȺO–‡„wýÚ_FÉ)ƒEÇ5IœYwaƒäàg·îȵuŸ<›<Ýyi“µí®=m½ì -8€”¦nC: à8?3,ÏÃS‹Q¿˜ç‰AXËc«V6üÇ–7øœsC ?ôR±‰PÅúŽJÂúüDtÁ @¨âÇ# 1äE£¬oß¹õdʲºàsMžÅœè6BÝgõdIÒ¦™Ð K~©ï*¿¹Žhð/ƒêCÁÀ`^¬Iø8yø9~£ÞPGÝa6‡85ÓÜo—À =ëyàXµûN×ú¦èWÉaDhøÁ‘µ -£QÌwoÏóBvñkZ"~FÕI‰?a¹Ž7V6Ú–—@×Äãó­•×ô‘Ü)¼Ó§^/91âÏ2Z'£øi %]ãÓpPò˜ݼPLšxx)¶¼Ãf?™ÛÔÎõ½Ê*P…³C2…³œ’B Ñ}ïä';2ÜÀeGl¶ºAU襛›ä•†²£îo‘¤µ;õ¹Iu“ìò!t¹Òwk¬û|¹dˆ4i–…_mfbk®ûÌßHTß8mtÔWT0øµ ‹ÿúÌžëµ+òy—îî“5 _…öŠ>Ý}ÙL<Þ˜û3€þZ87"%hpü€ù›È”õ°á’}ҽ淊U[÷y̾û–J'œF_XÉÏ“LÀú¦Ë|à蚊4Š©} î3ÉïìrøÕJÆ| ³[eU#¦ûªÑØ -–e¡xT†b¥i%fà8UQŸ+ÍK { ´2 ÝG×u7ñÄÀp+Œ?j•><·œá&oÐ h#³¬?¿Gÿ•OìÀ¯GuÔŠU®öññd.zÞy`Aü¤ã¾¢ ïã”Fî/‚ë}Œ|;?÷›lÓôÙa¬äzfê>ÛáõÍúo"~Nýv«¶@øq7ú¢Ø7éedkùuL7µüXýñ=)'`ª‘#‹â®OT¡sƒµ»/ÖÙtO™\\öœ²lª ˜šÙ§¿c")ã­–‘O±#ü€ö™¾;‚Oð»`öóPìkAÜÇg:Yäò`PlZHW…Ÿ–ûÞsC+é¦@È~¸¼×Î}Ùùd-¿Do·)üïÀ>µVÁä5°¸©?Ý¿ÚÜ6ÌÝ[· Ø­³ÅåÞv}nbnL·”÷Ñà- ÑSK¸î[ÈQpPŠRf -ðC7º“WžéÔ­ø€å2Ýø¯5Š+6H½N¶„…5ðl.7†‰ -²™ÿAkké•§´2©è¹ÿôᶸ(~Ú¶Q]ï9­‡0—Mö­§µ¦Ø¤— œx+ —‰ó~ÕõÊž”ì”PɶéjóáD+}.¢ fÛlÓQôKÚÃa™T’ë»KøyO1[BìõÆÊƒÀmÓæäx Æ2iûÀ ,Ÿ{×¢$Þ ;¼‡{û€*§ïÜ E¥½îãBFrL«^߇%ëá*è)Ðo“¸‡*±}SÀ‚“‡sÇÞ7Œ`èõÈà4Ð…Í}‰—-Ãì‘1»ÞkÖCõ¤ðh¾Ìo5ì"ÁeÈRÓþV¢çáú7ßZ!>yl'¶ÖttÍÛH‰¯²©??kò­FÌÆVÆÃ´æwåTµ$w YˆÚ?ÖßÙ…ƒCx÷åƒ<Sâ‘%; YŒuËT¢&x¯Œó0:^ ªØN ¸j“³%±PÀ*BVòŒ<Ä•WGÛt¡N™Y™6•BªÕÓ=ì ¿É]=%+_dhcá41ŒºÏ©½y‚Ùåá›_[€@4b#¦&Pس¦* yxF·’˜C_ºHyƒX já5ÚwIcÀÆ?ƒš#d CþW¹~º>ºo)Ü7­?=“ÖdÝ7:J÷¨4¨eôõá&·ÑZ¢|«ÀÛwÕ1ݺ”Õ1ˆøÁBðÄïù$ø‡ƒ8¬kT®¨Ï,(X¼ãÏ}3hø=Ú?7ùA -ö)=s—IÃCí¦tÝ'#O „ä¿s€ÙÖúëÌf¤N_¸(Ñhr" ý™ûžé~rÐЃE¼Èö9 -!:¼Æøðx¤wÍ<2ŽeN?Q;rãN9@$€Õ„aÊ‚.Z‹äWô¾pÞà±=%ž&UB‘Àù1œ'?'7³^ûâ~ûÍP{ÝKè¬4Á¬UcOŸ­hC -b¸oÇêÚõ¬„S&‡! ?åU$¤®o™­Òz6‹˜#Ìw§TEé‘k‘å·ÿáó` âºÞúv7Å¢ýmbc.3}5å„7¦uV›‘í -x›hgK/ŽÇyQárµÅ2)dÚÿ”ñðKéàŠï#­“Ç@ã>åÕkZ¹o÷³§¶ºi~–œîãömÁêèèø¤<@l̬E`ìZ“1ò©(®¨e2É-™ª¢hø3­Gcô<ÊÄ~H'Q§‹.éç~üøB±Äá´a¥„!ûJ4~Ã]~÷}o­+_àÏeÕzŽšeeнc6†%v R8L§°Ù¾Ø·“‰k>ðc™A‹ûÆú¹/äß%­1=’æ ás¼ûž} -©Dk¥[pWÿè5îì¸v‰–Îß:ë6îjÞÊÍé |óÿÝ 5ø5Š.­…Oا¢É5¢'<p¤Pûã¨@—Ÿ–˜•îj”‚f>Tg"RPç€ÿAÖéÖh”Ôªµ-jU±–ßQ„},bÜ6Ù½¯BºñÆÈCë`?Þ´Aáý~3û˜=leúº6º`•›<ˆ)†8‚Ü‚Ÿ“j±A~ñáWpï1ºNZÔð{p¢õ‡\ƒ9?3ÄñWáDÿ,y$¢÷µ>Ú¨S kx4ïsÛú»ƒhÃ…† -ÛPò*Àï& 5¢+2ë ®£uhÌ'÷$pŠbµÂ”¡˜’±á—*nA±ùƒø¡y¼cöy€Ú8Ò6m $và5ž${Cæž’~W=aŒãž^‡Ìâ¾ä.t¬u;Še¿$EòpæK+ü°ØÖÕK·pUI”{ú­|®‡¡nwAö½tßeÚ9Êk:”̼/øàŽ È+N‚Á<ðþ5:ê‹VkƒÉlJ•nï¾É®½«&NÎvÐ0º'yÝéÒb_åYôâ]3ïXmÃ>è&yΡíXÈ+±ßÀè}³RÖ’h;ÔÒÛ´ ã¾ø€ÀÕ}Cý˹ÉžtRi>ÇàNI,×7]¢êÒ÷ߪJ"3Û'º‰º—à§Ž*^mòpàöÕ«Ë«¸$˜4:¡Õ-?¿ü€údBè7å`Ÿ‹þÿ]ÄXopJ•ÎÅkÜçììîÓ÷ácÎ`êkŒÜ<ªÕÙ—t—™A,ßÔžyKEBxW½Ïß–HòS¥{:¼¨rnbä{›à/YmýRšsByb7P¥½‰‡ üüÙƒ[sihõä´"Üæ¾iäZ³áœzžy˾´ç1Üßܵp¢ÞTåy(„à]ñȃ‹›ô‹ °y :z YQp‹ÍîaßĺÕg…Ú‘둊ËKÍ­÷>Tâ¸uë‹¢1è‘wØËñ˜däú¼ æ&’´ÊÖ²N˜'‘ûqvûþO1k@•žáð9­€“Í£dÔ¥u}¤G‡UÎÃ Ø 2Ýê$˜vÓ. ˰˜ïz‹Y’ Æ04Ù7µ½†Ï5ëñ5áAÿØYqE·ûÌ=X¹šw!XÎúVC%‘8®l0Åc§ÍXó@=µ²Î±o–9y‚ò)“äR Äž†íñw—ðëÞrµé´Æòˆç/±>º/TÏ+ŸØ¦°ù2Z„§_+ã¬E¨R`Ôf@׺ y,‡ÓT Ú`(?—Ö@|>MžåpCŸ-G¡uõÃÈãö…öEìÇ&T«ù ¤pèWÔ„ÇDªôšû’–~î€S๯¦M·ºí{Žmæ,aF—ÌCæMâZÍc낽985¨{—3Y„4ç -œTË#xŸâ<.=ÿåÔAP*½ð;¬Œ-|ͱß58¸Ï3óZ?Iì¬çédbºA㦊$6ù&pZ)—Aæq]Ø ÝL„°[»ddJT˜ÆßñˆZ›î³â¨k©­ªµóloÓíˆ)±ÜG  Ó}8[­7ðÃÝ­~¼‚9Õµ¦hµpŠÏOðÏ¡ -øE¿›Á9‚ ‚$Í­÷æÆ07‹v['EòOàð&ôÿD˶OAƒ"hͲØëÏݺ¤5V7mÍ}íaß'O §ÊÜÖ´'ˆcBzJô…Ѝˆ -ŠÉZÑm—$‰V™~p‡¾öieÉ?÷”|€ -+vÔð á¬X'ö¡'e:Ýß4=:e™C¯¾bbŽŸ7·™ðウ¦k}¢›Àÿ­$ÎÄÙ¡(ܾÙ#?1ͧúÅÉVïK%wºY‹ßÓôå•󰯹ü¡eã¤5šÊ@j°ÿTƒÊÆq_^æð[·§[z*WŒ$ÙbŠQ†ö™Gtõõuœ\[ÉjÊÖwÓö›­mõgá5X˃‡¶-~q’››äy«)NZ¥ö)!Ï -”*Ëœ¯d¾ÌϼVá»ðã?Ê8Á¯y†ñ«œÎ!§ù?a9ì7`GEyíJ•þ¬—*ÁËÊ·¯ ÷éW÷µ‹ƒ ¢Àñ1¦qªNšµ–¼UÚ ”ar†Š:èÆe÷¹ýœŠs<¨VƒyvÏ^u"€.¬y9ÝÙ~îK<֊Ÿ¡ð¤ϸD9ÒàÑíuŸ—…†首 f9HMIoÓÔÕ Ý¼”H–º^y•²Ü©ÆSüš!>ÅAÄÆ~3(÷M?hòœBn%:¦w‡ƒLÄTŸnX6 ™Áú }8û|é˜ÇÜ%ÌË«´©C€_o«ä¸@›Y²–|¾GFGãQs–i38=ÁÕßÄÖ§"y”Ë‚ºÅ»Ô]¶¤êâ¨jºóϳÎ` íõ´Ž÷QHÓ¯E¹äqEN©µÁDÞ—ôYšpÚ,öå«[Œcò;z¦aפ§}€NnWC@DœþFUy<Y‚濒ι¯Ø¦Ÿe °f›|Ã0 ©QÜäd–ŸŸ(ùÁï“ -:$®•Tž5 Nyš‰âå?‚©!ÊyRlA“Äà÷üö\Ħ²k}ýM¸‚“eMê6yƒß/ÑžêáNYýLd- J=ýë¶ÚÁ}ÈÃyàÌ@8Lb’´È£©óZK¥:<†Léóh³hì fº/ñ¸aS×öàôGN.÷q°vo3‡ßÔ×ïg ¬¹‰ «NbCÄK’à¦<8£#ǹa&/÷U3Ëkn’ø6)ÕPjŠ¥"½fݼ‚ˆ ‚dž<Ãòo\.T¼NŒ!>Ẏ‡œ¥ËÂbÖš+Q)¥¦â'7!!ï뇭ÕÝY‹vv£DêY*?ôìkõÃC )¹iÄÏû“:²*Ýà©<~ "^4júŽÌ ¿^êé´)`Ä>9n|sû„Ó'1{Í8‹#¨úT|㇈¤oÅÔRAxTYˆM<˜Júw­¯,x ¢+º×½—\kbX)Ç'¼MZ’<ÊœºÄ”î6ŒJ]Ô±÷_dºKÂI¯äakÆûÂUuëÅïÜᑇi¢à$L‰ôL+åð¨&­²ösSPäW»íãIÊS hæ!¿ÀdÅN«¤Q­ òëãeù2•ö=ÕúŠq“Ó)®pÇÃÿ¥ˆŠ†Ú^nqAÆOŽN¹ ïm - ­™¹o‡øU öQyœk y,mW„,8æ¨Û¯7‚¼œÁdòzÁß/Tçó+sò¾r¦'Ú º#¨ûÖ*ufÏ*ç@ÈÃÞÉ -bÚ,q˜¬'„„uß{×¹\’þaÿß2ó@0øxjú,ûC¥îMÃrÁ8²ñ`W˜§¬ÓϹ…dY_S)$<<(‚ߦÃS,×uŸí>?qþºïRÁcd®%‡™»Ô”mÓÕˆd_Ið$/‰G9‚vúÞ_r = >¤yéžæ lŠ~¯´ÜM/)׎iî&7Ñ8øߺV9i>á…òx•nþŠÖҞصD ñ%ö(­.­R¼Ø¨î_îñÍ üú£YÉ xŒ -B˹¡$x¤5þwn#i•ú ä×uûóðŸó¡í” µ °;8ûŒÀ..ó±À'™ñ¢b%¥}R’$jÇL-Z¢~ïäŽñ€ÌrÀ¹!/·°êºº_°ÜÄ$»ÏG/¿~÷³’GÉyVSó ‡‹fœ¨µ^L®‘³‚Ü×Ub(µ x‰ÃD¿>aŸ{A1ŸæúÝJÔœzgÐ`î‹%†áù {mò¸:ìîCp[¦áq~2óè.„æ{ÓÀ­2=4=ˆ]<~Ý–#gæi¢ƒÙ3nŒ­íƒñL7©‡P»½JR6X7®’¹wŠiç°ò¡s“ßÛdåsŸD¿¦Æ»ÿoJNZ£hÆÄ42sê'^Êy0¾3ù>Òª¶:2 ÿ»„^ýnY}šŠ¹¦Hs¿¨Y ô œcšó¢e{Ͻœ†Jó  ßÐA½Ü#e¿)„Žû\=W"<|³¶Ö) Ü£HãWëãîÍ­(°èy~£e ìè%Ãf²Ìy¹k•›Îdçþ"ȯlé¾IŠ d[ò0åé™à vÙÂÄX¼Äæ&šˆ¯Ô­£x#wDq Wר74»p󾀪G6§õÆ‘t„»Ù܃»éRYi¥˜87ïÈ£;”ÉÜüäŸÆ ÍãXèDë"Y4ZX¦€ð±ïœQk -cRr›æ…<Ó*Öž:öýsÃòØß¶)ûžŽA]?ç&ðË“,“p.7½ÌøMÆd~¼X˜ó±r•< 1µ0eKs<›Öš¹wñʇÉßyIUA¶ñXÁM¬6b=ƒ‘BÒ/þGC-änsÏ»i¦`×ç®sî -ð -k®ûXÙž<&yÄ«¼äF Ôy$þ\U*u}²õG23ðæn—µÅ6-+òh¸É¼†½.ÍÄÝ&÷·¤¬²ÔX§9PÊ€&û3 r“lPQ?­Œüž&Ÿ«§?;c%n»ÌæÔÝá Ü€:‹pJdÔøKÓ¿¾¡uàYÃ}»geþàÉçøUÜlxžd@ÃwJ"-›w„ÉÇ£a“ÉCA9 oü„'½C -¨cT»ªóAš ¬qxñ…9f`z¨Ìt•w‹ò@ψGƒ#,èÈ2êµ>Yn*!§à÷ÍÈÜ}нë%£~1˜Ò Ò+êîcJ¯œ)È ™Wð™ÂVÜ—|{Ÿ8u ZÝҘǙÃIzü&.´ïÒ@ÅÒ’ ¬mƒä&‹$:{ŽK¨aÈãêê¾M߬X´ÝMÿnœ|RºÀÊ®3Øw<’6ó?¸ -ëû3Í-N×°Ò.±M+cð«oœI+èÄÄ ”¿ÓR»â—‰RÂãĶ÷¢×TÙÏ/x$v ~'ø«ø•<<|â¦î„³,5UBE©ðY-_Wr¼Ðt澿6‚2”2{†½™G«ß½úZ”Ø÷rÑæ çÅ!ÏMwŸ|‘äÁº4äUÒ»¨Væì7ÅåþOñÓª*÷ÍÌ€¼ºÇÙ…Ç›@+ÁÑ"Ý'#ZgåY?ÉyÆk:q¿ú]çåõOð™{X„ÑìÂIÀSˆû ½ñyW©€Ï<À'C|½®¡}OÒ_³” FvdY¹¦<^½‹îËe7ªÓR€aÙ‡äorºAÅ@ µ¯ ÍÅþH`ÑçUWÖ7èjî—¬ÉCóå5zX võÍp™XmjTD†Ó¸+€_Û2÷MNò+_Ù1R÷y¡¢3g°¾6øÂy Ã4‚ï“[ïá¾/æè ­Ÿø £ÇâÓ¾¡“KlîÒвðÝ„:7éäñ¿uóð‹NÓ‹õöq -ÌÔÃ¥@s<ÖÇÑÿα¿ç,8ͽÀãH!$êØéY~Il‘šàÑl Ês ãa9íE¨Î,(ëc‚&gsîH‚ƒ-&?asß}¿J¯ڦäQð0©[ŒûDHwúçqð’öQXèÃË‚ÀÚ;êsªÑkww ;8Ý?‚~­}?"ÐÆ¸Á;¸Í½ÑðõL§"huN~ÂÜÊ“^*— ÃÊ•Zò?²`9 Y/„M ~WPD´H ~¤äEsK†#Á¾ÂšÇM’$à×¼Fúˆ×'rnE°ººd€&·ÍMLäüð¸‡Ýi‹|*u¯¼PF-‚X¥VÅçñÚŒ näva+»Ä§öSǺÏ[lj -a$‡Ç—Øwåõ]gŒË@˺çí››ø-÷±¦¸ùóñXÃeZÇ œ³¹¶õfÓûšžzDÆÜ§“ÚB‹Bk¨ð D ¼ËúFÁ¾þJÇqù­Ý‡G„¶I_xŸëó–1ð‹sÏëâXès BÎmò?áÓí.8½xØ5iûÈP·Î  qçó(š| 7¼–¥`;`ly9/ùÍb_ÅWSc‰‚JalêçQV:ÚÅd“…ŽdðHä‚<Èyð“4’ $˜¹'DuvýYK7]†_ ˜è¼47d;v…¯àl›ð¸Iô`ˆ²À¦ÒKÞ -R N_C9w Me’§Ò7’ßâ³!x‘v½4Z«ëpÛ÷øÅ 0£gÁŒ•,[ë nñ<"% (¯KŸÊ‰ö¨Uwd”¡Ó}plÅ3ì“á“iz¦nßì*=ñ¦ 6ÌOÕhBÛWeàþŽÃñ~±ˆsdÖȯZšú­CQ!Àì!±k;IMr¹‡u×X "u:·’¾ Ëúºï­¿ø³ÁIy3Q|Qñ%êJc=TÇÔ<¿dzIÈ2÷ű6._a§º£×Ú KÜ÷zý -*-ÁáaËÿbúi/×Ò¸F ~û—¾“‡ÅÅ}(÷ü›2ŽV G(we¦V:¥[1†©6ÅàY‘åÛH[>ð¬Ð3Q@!S mG9îí6¡Õ-ÉŒ›õi8·”¹ßÑÚpŸ¶Ç@Cù•î÷ò5Ü78uŒ<þ¦Zn_ªµ¸R/ç"ÛÙßKÓA=ïŽÛøžo…hSü§5]ýVôÄŽnÂàð(N”VÇi' ÍëüY»ãPâíÉcûßdȹs<ûéö°÷Åä­Ö)ÉϳîVÁ\Buvg¬€Ehîz+µ©"ßÔ£ÓíÝàÉxT°®/”"7çŽ3÷.î<÷ ¯M±tÄQÑ›º‹p_dÀ)Ï)Ž{OV¬ðãó¼ö¡<»Ö“XÏï&ÇÇB9ä‚¿&äWyÚÝ,˜cáÀg’“=­;<œ„õ+sv €nm7ÕüˆÏlJ~AÛw³¨ñ™ûF}´Mãd›ò3¶óð•ÿo™YG”ó6õòE,aדŸL7˜ºëT9 Ú1¦‰FسÂÎgG(;á:h©^o%­—áÕŠŸ¢É+E©û˜ØdþzÍ”EË{¯ÞZm^ë›yk:ßûN˜š´Ã¦? ó¨£Ë õëº_"ÒU‚Q¨}ÏÐwB©•ŠTc¨¤Ø·T»/é9ÑÓ¬›|íCia¹¢X2'ؼŒûÌ»ðƒëwЃe1„ÿ¬+@ë.ö™‚æc„ò×QǺ&ã%/èïúØÁÇ('±êêb6sFò;MS7éã>Õ@¼÷¶µó@ $ukÏÁæ‹C®Ó½c•wÀ<4U–Ãiì´²…íQþä´î X¿2Hû„¯¯”–u‰sâOÊ}@Â)+#8ÆYùje.¿8ÉoX‡KZN_$«¹iù¼70x쿵Œ¼I~ǽ6É<–µa›½U¡ñ¸fŽ–s%(Î}¾÷¤ll:œT §A•ÀŽõ4Á‰ t8îÝXq%ÒHý ”…vº‚ì<øm(øý²´fËÌ -ž¬Éüf,«*½lÝ]àH……êשœø—n*‹ŽsôìÀhX"jß;?„[7ò6õ9OëØ+ýk* -#jVN ÔÓfÿø% -ü§2à!~ˆ›mѹE1ÊîwÔxJ6l»rÛÅ>*YÔ“Õ†‰­†Ù1X a®o(äÜ -À±þ™n›Ø0:‹à÷YR_i€ s-ÎÂþ<†#ÍÕ† pª;C­½“yè'c«âg™º}`¬»ÜÜ´ÖëSŒÕ¦b,™é×YzÁ†ùuç¶‘3dØ*_ 6æ½»tW@,ÉÀ€Jâwò¿÷~µWãðŸ+”ô™šr€ôeµÍŽ¥4&xdòÞ÷Þ}XWZ\){?Zv¼CŽö Á$ïØ)Rc¤gã„o QØØ‹œ¹HÍ -ñ­­çÒU;¼ãןÁÝ2]Ý*=›ƒ;Z“û{l¶XmŽ‘¯9¨{îj¸Ë«m&ø¡,Xµ½é -û½– Ú†ÜËw\ýà­îoÚŸ‹—é> / [üü{9RÎÝt%ê&ŽÖ÷¾0%Ý ´Üo–G¬# s|Y¬ÅÇ)¹ëã=¦Î :¥}íƒØ0ÖwÃ(/:¾eä>|@Uÿ€ÀÄ!Y œ‘5²áws;™†DÞæ]ñ=¯zæ‹ GÔkñÒâ,'Ø;Zˆì¸¾Ø=cˆñHW•DØ>!ô¡E«5õZ­`ýÄÃÔ0_â–Úf“ˆ¡€Jû×Ö€r•èñ?ÇY½Q|{CŸüÀ½-\˸6É}!HÉ1`=B±}všíº¨Z;Pªvàâ,éï<Êêowþ<ä¯ÊÑû P’?䂞ÈÝoiVv„K¡-#|Lò 4£ï;# -®·rkÚáüž3^~Àá¼Ûn9V'Pÿs#RýâÝîPöjèý5¹5§¢ê(ÿ6¯Ó· ÜÕ±ß÷ÔC)G}æZ -µê‰ÉÝï(çæ;‡C‡±OÍb¾ùü¤XôÛäê˜ùaÎîò;­Õ,ã¢:ROÛ©¡‚ÜÛDÑh¦‡"?VÇ þúüêw©wcäU#?#¤©=ÃeÎ2¤!9/aÜx9¨'vyV_EG“æ¦ð`xÁÌ=½ -Ç_6˜×"°|·Õ“Îò0—¦âKGƒO*æu=øÀ)ˆ1XÙûý#éÚ¥Ø;Içè¿£7ç–_¼¯RútõFPFkàÕLlr‘~Î%*Wr>Š1ˆ -°cÙKûbbìÕû%°Âˆõ#ºQ&-¸W²ÐÌ´‹Žóäš}H=@Î1ŒŽ£®ä™¥}\°–¤xì©ñÒp#죒ë ,+ÞIÑ×-c9Û13–u¨´W¿ó€BaÁL,Rd}€ (6  ~`B6”‡ƒ‘$‡aDAƒŒ1c Æ£w+gä1Ø+ìË¿~½HzëúV,‘÷“G´¸Þ0ÎîÄN_«Ï÷ÒvQ~Û–³%O$³¤ÏM¬ðƒ3ß…Û)¤°ÝõÂfRøþÑ"É㿳4gúÅ΋¢‰¥Š—ö15¢*x›ŒnmŠÝw‰YÁu¥²Øm%«bî.,A„ßÓh[`‡R+Yï>uÓ ”$|G öçÞÿ”̓Gå¶sMMz7ìô‘J¥ºõ¬bQò«7¼ýç0ÎÕH¹«iW ŽiަbaóíÁ²BjgXYµ.ÀÎ/V³¾Ž¹y¸Ê^òè~TŽºÌ]Ø×]hi0ãà*ÐUïrt‘¼Ú¶çïTÍ™0—¿®»‘ú ;<÷|]β¸ÙQçöÝnBŽ¢ãIÉWò`ûc¹ö5¥Ðcã²›æ#fÓ…·œò»Ë¥ÂFBojr)î$õi‚˜N§7¥;Éoåñ‚дm=Ù*$mÿo V GîNœxˆZ‘æÇºÌÀ{0@ØÒ†041ºÎ¥%éÁlÜšð1tîFã´«hN,å—(( Ñ13ƒ.h‹]©¡úÝhlÑ‹¡ê–~(½@¬b0EÈM)qßCÓÈø³Ó"M¸¶5Þ¢f]íƒ|áæ}nfXÿ/.ö.º=XÙ\¿E3–pèó4wMV|0üç§Àæê.TNmÓ1Ë!e_fà){sL£lHºe©M# 2ùm^ünNä}%ÇÉœLùAikª]yZÐí´ -t©t¨ˆ™úa=ðVú E‰µ˜Ÿ&mšT½Íá¹[€Ž{ÎI‘ã¡ jÓ AYÑÓM}MRvS´pC&ºkJ™ƒ¡ÃÌx]üIý”buÍåiçj¤ä'ÛþƒC ( nKš¬'j~nºùÙ9¿Ñ[ÔDe­Á ȉÄzsÞMäÇL»S׈ÊWŒÛç¿ñà²÷(dÀØáWº,,ÝÃPVÃ^é^åÕ§›Ö-`ë\Ø;~Ÿ0pÝ5y-ÒPOá`3ðî¹øâã®èÚ­š,Xš|Ç^ûˆ ¾ -YY–6v+,â\Ì ¼è>JpÒ˜ßõ­¸IšÏÍ©'Úÿ·ÿgJò^³2 ²»){7Ë(­½ÅC×6ScÉc  ýU­Z“y|ò¥°Ù‡hj[D)H‹3Ðä²[€S‰¦ð‹r9$¿G¶Ë‹âÊýàŸçÒk˜}¦Â#²låC_èÓƒâ; p§b¹¥Ÿ˜)No¡£eÄOˆP‡yØŒ³ÇЮ9ÉîI™ÃÿÜÍ3Á‘ÁЬçÌæ°,=¼ð)5k -óc8ê\Hô„©½6éÅ¤ÂÆ>¥‚ ].KŽJŽ; ݤ¯½òVÐO•jº÷Zž$®«UKaý&´SAkâWÙWÂmÎ _êúqÚuFö¢9eyîë»­Ž}ç8„ºb¨^lœ¬Fß.ùKÅeúèžÀ·ï éwú„X2Z?pÉöÝ’7QE25Aú„™V±!vƒl2­“AvÖ](É'MûØP–ºsn©qÒN°åš„r™´CšÇ×ï–HšÁÂ'Ý~wX2¹¥ðû99î“#ÆZ¶E`üÈ¡^eÕ Ú]óo* á$iËD±•ðq¸6 €¯%÷’ ›“Ø·û¾¸À¾È"?º‚>14ñTQuÁæº0æl™y™·;¦v1ÔÒ«û–ô[îç OFj½¯@w«OYµ§Ú6ßê ¥ä1~«øúéÆr‡7üNíÛ™ØzæhƒJ¹ÕžmM—ë‚~+uùýƒN|ð“s¤¼¯‘Ú,šâó@égêou–¹1$6óûÏ ¹D@"˜ú&(ö¹?þч0KÉ}ø’üJÌü,bÕv2˜ -SD´}ÌN2“(—n<Ö¡÷k›Ç›šéSpõI…*lÿZËk×7%8…¾w W”³jn¿ªo~Ø ®´;xôÊz—ôŒÀ¨Ùy- óÓלŸƒÈ/ÕûÚ‚Ÿ/ˆñ\Á5ƒV¹RúMÈÅ1$æAˆÂûâ9ïuE …y@džû~þ$íÅØFwÄуRâkÉÕ.4æ<[ñJé¨}ÌÃÃLk¦YjM÷.¯¹¿f¿ùØy¦;¼­dR(œêÿýó7ºM³ÐÊß:í£Á Øm㚟õ™™êl3WâUøi3p+à™üì)=B¡‚˜)ã<Õ2zËvü$ÒhðÆVçÉCyú!®IÆ [ª:Ó€)YZwÙB”ÞS@V{Ï".#à5‡x¸ƒï¾<惮ÈË;ÔÓ>‘zff–a#5óHù(ŽvÅÈt§þ™éz¶68A$b8Q:t—ëøá°Lr%rˆO˜Ë$ðZùTºZ_‚}´Iu…™îãw`§“Ø—T¿ƒ¯[÷35”ìãúáŒL¹y,¦~£à÷tb«¦Î!ÈÜ®O»Dz”7QÜܪÈÉœO@Ù:þ…O<’ÇÇ[~=Ò?æQDÉ#ü%bêÜHËnòL±lŸ¬ùd¸´‹b;ùd ‰lÁÌ‹©³ø=fX† -‰[)ÍɭȺ[:ÎǹKä›¶ï3s†/ -x›˜–Iä‚ -˾`@B~Ÿ£ÿÏÀŒÙ繎ˆÜèú…¯€0û6o˜¬§ ̃ÂûŽ÷¹tŽÜkÆŽ¬A=špF(®û‹vÑ¥x¹O5qŽ >¸wœ°Õ‡¶3 ðZLŸgA~8}š0Å(#*Ó_ž§{í…/.€#=©Œíêæðc7?§ùîß]òà|¬HÇ®q1nøQmƒÈ^K9ÀB´á±âüï³pô°ÛÆ8åzÝY¼Kš]©d#†æYcáddÎô©[0'Ë âõ”:Šâ"¥›lf¸}À;²©ß&é:ý¹5äAÕRj‚A/‘ðó1ˆù%Èc - -ÁòyZùÿ‚ Ü€¬Faú× ŒÖgßP1qÃë)1kFÈðf£}DðáMÆ´Ÿð·…Mäfð{¨bi!­*ŒÁØ— ‡_0ÓdLjà“xWWÇË-š[+÷BuÊ_íqûä?þ«¦u{lŠ‹F2Cÿ¤òH;TÆk¬'¢‹y̘JjòyXØ -Œ{Í <´¿!Îû¯Ã²ª*ˆë™`º£sAÚîõò«õ\_3x‘–æìâWµ9“&z‘ðŒAw†ºmZ†p†èª™3¸€¢h˪əê pöáÅ1Gú=?÷×rH õ× 2).:„'~e,F6>ª2+<,J -I¥ß*)í«\³,— -t¾z6µ¡R´ÕÕ°X*»$ ‡f'-ñ6:A¥˜Ãî1Í£’æ‰üή¹<$Y! -P²"¡8©´V݇ ªj¨«Ÿà††…‘>–’¸®ë[ 4OX]Ÿ:‹Cf¥PÍÙU¹º5º,³sx\Ï&=GÈfJÐ pi™ú½#"nª“¿ß¶n‘¼ÒàéBcL;c¯þ}½v «³FBÈtsŒÛKXÃÃÔs¯ÈƒÖÈŒUù¢‰nMîsødeÍ7I™VN‘Á¾Î­Êƒ¬dÒ¹Žð{š°s3÷Ò**Xó…ìßäÓ a¥`) ­öÝmÀÔYÁïÖÝ0ÂB08¿&TäûTÓÖGExp!žânSÌ8çáqFÒáÖXzŒFÞ<W@Œ3XÌÇWp¤zXôþÆ4²$â®ÙnDÏ:&ÄFn#¬ÙkÚU€´–ÿm(÷¸‰²‘é1¾H25‘ˆƒÖ±5‹aÈÑ;ž¦šˆR<Óä±/G<š¸*Iø k»`†Õ -¹,þ~}O œ²HFmk¥ Ë´…_x?NŸ»¥OÒmdÍŸ[±­Jvž°3~u,‡ÃNW\Qü»h/=F27èýÎÐ’¶}0à•½°N<, <¨W’t4ËF¬øüÚt´V­3:úË|öðKF1¡ÕÅТ"ЇûÒùšøîpKÁE&u<3àûÿÖ ÛGÄ7¢.$i]É©sR™ÃTž-Œ -Hòœ¸á,_vʹ9wœfë œ¡2s†o9¤Å‚¢Ãµi <<æØgRJ£ û‚ƒ00™%™:ï·ÐѼÚUv»ô× úÓƒI´=ÓN¹,vSÝ—ûú!N° ? -ð.Gm€5&#^€û˜/5u}F¿m9o&}bâšQƒ ȃäèÉ£0—vÍiŸÁ¦Š*Ii§#«µÝ PqŒߌy -]öS~¤ØÒ¬+²Š#4 –²PáýQÓc оÊÒvQ‰$»…bYµCB0uüZ¯,¹Ã'Cðó³Ð‘‰@Äs’ø:U™ma=,®‹ ”‡êà<æL³¬@ œM˜3>r‚Õ.v"ál¹¡ó.¾†Ùõ«$»ý©ñiq9¯Äñß"GØe3•À½«°ßJ£e¼H vÖ+AêJØðÏ)¢Ø5þ:Ó½Hh›Nó ÔŽLþ0ÆF0þù OõRQé#XAð0—ö BËr:ø8öØÓÌ™ø¤«+eÕ&m’Ép$?а;Soqé–ÅŠ½e=ù¿Ô½˜œÀ€ÑU·/ëéÏå0öîËše2|V ×M) eM“$6<Ä#‘߇±,·ìàäùÄH›’Ǩƒæç(xXfpžö Œ‰ýYhÝ\Î½Š¬~sGGneŠ÷*2u½é®Â/éÃoFf]Bs–N_¼Ú)gí¼)>æjàÎð£ªM™Ö÷y-r·qÒï<ÄŠíÑ[ú|ø¿®aó 52è#ž÷6öµáàë<0Ã2 Žœps ¥P ‰ƒ"@Ö®Ã$6ÉhU"…ÓžJ1 -yÜ2EÕ›®ý5«ÀÉ3‹°Ô Œþägûsžð‚2µaeo‰f@+9沪ÌàlÌt=ûöapŠî×|è‹c—%á9/fμsD ?ð3ÓW¿œ#P|Ž>6j¬,bbu¯ì‚SN„T1v»L˜oLÚs.!Ï£¸<ø™F‘l¼øMgº” C“äÇaõ縤<Ê3YÊ|vÖÁCÒ§¥Ð¡ärR&ÀÉBuî3ƒ?­Cr°}ônQ@§Õ²+žš°t„ùêaóÈ>üêîû¹ïÚ©yÍêµéOëûO´ê8åܬJöÖÇùªyüàlSã”z?ëiflãÕuß…ô+nf„øYÑÁôdjz8‘¡ÛüDÖ…N8ËÝ'n.3HuT"ꀊ'ƒ XKk÷¿Ì•LË,çÞ¸È7b¼ú“ÆûTu}½¡™÷¬ƒfFó»—”•ÿ?¡ÔÁ(0}ÊC7&^4l´˜Ëºù…Y•(C†¯ ãð*(dÙ\m˜õ£G¶H‘O¦¾|ü ðÀ§ï£ŒSÎdš¡®(’öí„ñÝ¢æ‹d/ƒ‰ ™Ù‡wÎdVâW@Çõ+Uf+bâBF¯ÝÈJíÑû'’Òm÷>¸¬ì½Ýç£9‚GGpø–F‚Þ,›"Ak…ÒA¥ÕÕ,åôò¶3W±¬ÎáM‘°È -µµäu^%Ù@²–¦Ñ U¾C† Ýq‡p"cjSã[F°óµV»-ÒVyù|HzÑ="–[÷c_?z$:0¿öWô>Ή5Ox¿gñóZ_>õRÚÙÓµÑï:“Ô—AugÂk‹÷xŸ‡åÅŽ }cªè°°CÙÉÖ>c>ЇäMKÏ7NI8;=°oIt -Ѧ6 ï>qçÈCêIŒJÓ;˜ã!cÃÀ=‡¯œi@´U±“‘DÁÒéÆf€B‹D—ÚÅZ¸„Bi…ßJ>Õê4§ØÏ!Okîãû:™¡®Ñ3>™lG‡Éïãr@!3ˆ>tRK  Q¯ ›ŸM·ˆ¸ÍZ3FÖ ˆRcgî Ö9kø ï1G°†ÒÜŠðè¸Z~ç,k8í㑌rcï=2³ÛgŸMT°~×Ëh8õ¼šzuξ1iÐsR6MBjÕ®,û=ørä(4õÐE•Ä•µœã›u†=ÂÎ ¤L/GHL‰^‚ìÀ: «Reâ¾}§yøžö@g¡Ît'm_=ÆGq9ÑÝí#|@N,e‚Ÿ¯+¸¹ò¬ì(0 }14"ÜH¾6-ü x¬p5€=ÆZîsøJ²I?ü¼ö /Àt0æc©aéµ÷Ïå|¬-x¡(Z^5u¥–ÅÉú å· º Iö~–~d•’DÉ”Ed»TJ—›Œ[h#µüI¯¨‚ÆáȰIŽþ̣Γé†e{[ëÅÝ6+–B´E«~F~M˜ð#2EöÅïÍE>‚å0-fŽ »¬]¦9皥4Њˆ§P5HHîKÐn~QµÆ-Nbüg75:¨|+œyœ+ÕíÐ!¿@‚UÛ}»op".8©Ê|9ÂB'¶ü>WaÈH$À… €o»Ïñe7·¶[5 åÌ=ìb%þ6Z:å3ÖùCeïSl‰žµ;†.º0®½Jê^T:6Ü sæ!«^^Ç^?©·ágHT O uœ2r}0ñÖ-…Q-<¦ìë}œ‹-l.Ò„PøõNJÃÎ÷Ù>ËWÅß3õ¹QÈ#¥hgïŸz)i³2c* âµqê†À08Ö±·H»’Vy '¬S¯qíýáìá¹Õ¬zM䯂ÏçM:æìøq_$.´{,0éOHnÚ°ñ *A5ÝAV3Þ í\Â>æ ‹^âûÓžU»ÊÜð ®—‰ü`s;)z¬HE›¾ÿRéï`~w”Ò/úƒós…ªÊœ ù#EÑ.%{Ÿ´<zAÖ¾6 ž£5{ð Žu÷3ÑqÛ?º ¥m6<žÈòÖ@gD–ÙlRBå°B¶ë«r´Ò l™ähûfê0gÂmó´°lNÓDùr×ùÁ1º"&¥.†—s­¤=q‘džólCάIoZ7)Då]C¬«’Kž :â¾`ü¨ËTÅiM¶~eOµ¤GÕ16f²TÜf†ð[#á·ÈvŒLwí¾€Ý'Q–p¯%©8›š§öVN¯V¦ËãÆŒ·n¢ :˵½®Ç|ÛžñGÙŽ¯ Ø'jËo1gf°cnûn7lökÒCÉBPÇÑmK’yØ—+¦"T…æl Ex>in¨´ã‰¸!õ›zb«8¸Yw[tÊ©¦3HÏ®)S‚ûB&tEœ¹¥Ÿ¾Ï¥sëç¡Wspx°ë -o8ŸÝï(µßiN8ʳ+öç¾DOŠóÕÀ#[Û'ý•CB?ò¨Ã “ G |(ÜöÅ&¥ô C6È«^5y±û|z@¸?fï›5l&5&ŽA‡n8F7Æ…‹?en¶øR -yïý&T†ß€„Û×NåΉ|RO›ÀÿM[.óªOxlIÍÒü Á£ýßÁÖ~ (Ú›~£èFª|+x¦õb©¾Í#©é–’C~΃û¦B÷3º‘ÀÔ¸²Ó(›MƸvú†|XóIèQ$ÆÏ²`]&j€G–a=ÇätÈcISÓ¶/¹•ò5e³3LÁJ~9™~±íDLÍH@à7–]?–ÚðúÑ N7âÕr˜ÈÆ@D¸Q‚SÔ^Å££•qúiì@Èæp8y­Ï@ [´ä¾RÂÉ~»• lŸïª¿ÏÒ”ù'*½s÷Ö¡Ú“¾«‰Æî{$!tH{qþ{4 C±¾V[œÿœGä̲XÔËU ¬GMvÑ–©G7ÐPbBD,Y‚Š—(j¦©¤…ß*aI®hÑXéJV Ù·'ª«àA:ž±åªdQ/üü{™™~£ !¹>u=LŸ9T^&M7¨`ã<`Õ¬8Ð}ߪðÈfáGçŠCßÐs!Ð}Oí+'òcõm>ª~âtÒçÆz»*l©¼Ã>ºhσ_„“Kò©ñ)o&ú§Û1>EžcÕ>wÛ8F‰3ؤWX)=ÞþÙSƒ_%Ѿ$IqRÖ7™G¹Uªi1t¶I_|¯XÃ?*P?hê«™>Aåµ¶÷­MIƒ@ÉóÈÏ:+eppåC&Ö ÒQ%e?7Õª.ÂHÛÜWsû¸—^íž‹¨–Òù“äy&mvºáEÓÄÌF‡Õ¿©p[ÒΤs3tE‚èmHjª‡_ ûÊSËò¹ò¶©j±O;ü‚Pð&¦Ëû"A"›ºåÖÜ>qìû‚#Q-¯}CZ+œè?½Ö¯5=ve]W†))E”Ä<¨« €b0­Dš 0JPÝ$‹g#÷Ä3››y–áž¹7‚}zŽÒJ™Ÿ`P¯ÜRÃæ”¹l~Dn®L7Ï - -Ä54vÀ‰¹ íïî˜mt,ëáüéö·Ã %¢Mï¬Ùf8ý|½ú=¡ê™™øaë”ó˜ZHá§:Šúæ¦Ã¬Ëáá™öU¾dSÒ„ÄãW?ÿgýrñ~I[V+ÿ:xÏ|Xî‹Tt#†‡šŸûýYfŠ,诂ৼƒ7üfÙòOת’¬Ìe ?Ýrž¥Î<ޱ·ÂDÝ\ð •@úMÀo bCú…ŸÉæx„ü €6rÚrûp29Ê¢oTïÛýÈöàyÿ´4oR¶ö5‚¼õ¸ËRçñz¦Ô¥.¡ÏSß•é9ñ]£à¹¨SþhÕ²áQ뤧ºKõàNöq%'?ëH´N¿ô…¹žœöÞ˜‡üt—ç©7¹<Mñ ŸèB’æë?¿#1'ÏvƒE¥ú`uj/Éa‚‡Çâp­¾TüŠÊ½Œú‘ù»éò¨ òrÎl&U¤çQ]¬-Å0Oú’ -=½òäÅÅå§hR¬‰±–¸2 ʈ¥`$bx¬ä¹Cõ<ÔA—ýü0HúºûœÕeœiŠâF§Ó1±Ø;GûrȤ]'4 !’"c {ð3°!1ÑbŒÇÏMÁ€ˆaÇ èxÝ<Ò¬JvÚ@¶‰ŸJ<\t Xæ±¶1:ÏñyMÖZ†àî—%‹ íòMâñÝ ÆytvÑ•)m²oàÂcý׿Ÿ§—8RôÜ ÷ù¸Av®WÊdµwÛŠ ¾Æ>Zfà =ÏT|ë3¨þ8º¹ã' ·j£ -§X\n:5¡ÃOfà{ ¯ûäb)T$"ç(Rjý*æÅ޻ש™~ÆPÞÏæ¡€“Ø2v¿¾.€C =^>ži3ùÿ“ˆ±ÒÄ•üæ%ÎcÉÒ}>üs¥®?D0k9—×M®}œ'ðJcu–Qûìlʯ—Œå1)bšî¿A§:C@MùpͨšÚÃo¨p°£j&Öj!Ñg>8[ðxeÝ -¶¤CŸÆïÑjn˘FËý^!'éé5ºÒ†–’f¨§Íüüg’yn¯$äXÇŒUÝ·OCR䯓WÖ2Ù'&ÁÌ<—ÑÊùqCïÉäüÜ\_r%Û÷½ožÔà’Ç^“K ¶¢-çœpè˜tyÀëô¤N†éxDA "í£¥ð“_…ž”µ„Œ-+¾vQ}° ICâCÕãmÓýZx¿óǦ>±|†á4&g€¤ŠabmÉ=ŠLñø¹ÍyòE±‚U”_*ZÈ6üâ*!•}1["ì>GMuSé•”;Œ™\#äásQäeŠÛ}UÜLû>^EaS©ÀEJ.ëÈ/é±6+Kü§·³›ÎKâ0MM¨’ ̹ã{Ç7цª§~觘*˜¦'ÂCK™ZOæ¡>#=æ@ЙîIz´Vnø\aóu·ÖÑÆè×ãƒÐ†:bÀ<êMcknÒhEW}w6¦B{u»'¬tÆsCy‚}“ŒuÌΣÑé–×Ú/1ÂáòXPaÿåx\6j_ØÙ™«­îáç‡Ä¢ü†±ž‘²¸¼fX«úX*`uBÕ Zw¦–m’f¿:ŸF¬Jù6(.‚@ -õWÚÝ e&Iec®Ê­<üÁ %½±ÛîàÞ\6þ}øÜ I@ê~ZZEWKœH´Ö†GÌ›tü¹Uò[æ6l&F—b,ZhHCB'Çlt×+üf Òpo«JûN»¶\"Ÿ‰Õ|žã¹Ä‹C€t¸ÑÊû€·ªi©A×`YÚâG¦=,Æ"Gånt+3—ÃÑg³Úºg¾µL°>“· ²Â¿DcÛûÔ¬>LpŸë`­ÏsòØJ®£ô„·3ßçÖuŸÒVø0ºû`¥,Îóº¤Wæ?ÌЯãj¥]µ -üŽÍàÊ~™šŒ±´Ü|Å -Øù¿@™²iT=nÁ£rÊé´no“ WÃo-M+ï‚Ý«%‚Jñø=ðÛzÇrM‘µjëÐ ‰˜1¼f»¯" ,;ÿ£U~:¨ŸáQ|î¹@n:Tý³Ylxdº_å!¿NOÕGàTöxê8ÀFóEwúö%Qûâ¾]ã‰åПH¥žŸÈc!üÕ× Xî¯`û»òoæ‰ËFÂý@ž2ßË‚ø‰M£sÓë–¶Àü¾Ö\`ýr¥›~8X¢º'ι5ÂcDÌ}‘I/° ±ë ¹É²nWÐM3&РÊÇO”°¹½~–vÜWÛ’&î›/>å³ZMñB§/~’U»ÑErMwR -3Ò]ÿ`†yoÀp<í–µÖà^Î$ñ%EµÇ¨ß^Ũ¸”±J´:±£¹cgƒ:üÖbÖìÓÇ»A8}zT©ç1ûdÕ©¬Hp©H‰6ãÕÐßÿÇÀÖ\+Ëì¸}áfYpáA4¸â8÷%pÖ¾üáæÕR¢}¦4Y)pFÂc’‡èd³?¦ûeþ6Öé_+†£Ž5/yŽƒ@Ï]»Ï(Ç;ˆ Gp*í ‚‰ü©¡ì2_ÍÃ’VA6bÓZŸñ 2SÆš€5/Ë.¿úô©µ˜c4¦d£ãZ©®0J¸hùP÷ÕqKòÆ:Z7Ú/¨†Ã/ñq¢‘Uf™Kì«êLÍG#ÍÛu“–K¥·Ñ&p‰õ¹ÍÏ‚ °ÀJÒƒ0)h73àôBõ°ŒÖJÆ[§¿˜Ð5ðÞ¤º,©§Î›Á„<ëyBŒ¯B#²b,PmìÊÿ`¿}<ͶàÜ“ªW¾C¨Üý*( ãÕÄJ󹻸e-Þw`ûZç -ØmûE¥½!¿p74÷á)¿fPÔÊ×'ÝDº?%5þÿŒÃŸ[å>Á¹žIWvaÉXž89Cú—ËÔøl¬ºf ]~~d_ȸ‰ç—k%›FÏó,“T|DmMŒÀ¬Å¹e‰‘…ÙÁùt®–))ˆ¢õUà'“]ªr»Ø †Í ÂAö<ª)|ëòçJ G2© ¯¬·ÿQ17Ò”²¨ûŽGð«´NR^7O+ã{îËüz>‡˜vÑ[=pŠŠ[íµÊ$ÎT§¦Ë^”Ô½z_©Í-ݱ£½%ñó¥Àb0NÙ ”RÎîÜ*ÆÍ¿8ðÍ­güVŽ÷>èâžã—Œ ãíù•ìñÎ.Áx¨p”œP:0¹ï…H9»Ò×pŠËÖ,b -endstream endobj 29 0 obj <>stream -¶Üçª €òYA;쪅L7)©õ]{îÂ݇f1Ýö´„!܃uÀ©'ò­õŽe¿ãé„Ds7ð\kYøUŸ¤Üs6@ ëÛ:Ddèu» «bÜxô7Œ<íû¸Óû¢_ÁsM»ìû—9õ>ñ­‹`\)ÁÙévb²œÛIZUºl)Ö³• ã¿î;rWÈ`Vþi r}I¸Þ~ ¢Î:’¨“‡¨Ô&5;K&K+zÆ  6¦QWÊ%È?”]+8• ü>rä&QÎLõÃA6² byªƒGmcö]1X°!~κZÒò ™øÖËYɳיv~²oLìIçÆ¢£žÒOUJŠ.kû§ÁGôRµò@Dó Ue­Ó -ŸLb6Ü«¡ôÒ<7÷ÅÐóñ2ƒÞ7„Þ«œ‘íêXp^!ŠUîð$q­ÿ¡™Âž‚¢öè‰ÜZüå)à'_{¬¸÷Ÿ T Iý8µªëæÈC9»åCµ!Ã}ßêË[Ýw”GOXäÍXíyà1íRJ7¾pjŒÆÀïÙÀ¬”Ì£Ÿ?c¿°ýðø ³2=s\.Pî‘< ƒèUimY[®›øÆMXÃcßÏ)[5TÌðü»[RTË®Võ´µP#¹÷ÑyYTP¸ûé‡U¶SŽí•y¦®5¤ò֌ƒ¤ƒ‘çÍ bÄÃ?zèÐ'0TV‰/cy - -’Í^ÏÐ §(ùËCîTí‚\ÒµRt_•u¼¡¤øÜ$AZ…XæÝˆÇ jÇjT*ëA®´Fê&DÍùÅÐÊ T$Sµïïèºmìa·2Ú˜)*Jí³t¡=`Nã±1 Ó¡¶?Œƒ•HJb-a#Ö Us@ºÆ”3ÞÂ>$á6@ý¼ÍºM у,ÔÓT¢0Y#~JÂppp–§ê>]GEèñ5e¥DÞûE­*îC¸?jù—V_„öx:ˆŸYðZ­Ïà»ûHª¶¡óqð'€­ÖНºD$üÒ'Çg -ï‰íg,Ñq@D¡Î.ÑðùÑ‹ÍæsS{¤yÛ¯ º^3Þ>âÓ4D0½°éVîÎC¡8ÜÇ;ÛN åŽÐþM.M¬ø˜±W>¢æoÀÓ‰ ­ýbg(_'»ºûJZÜz¤´†¼Òz¨›®=wûÔû–Ôêá<í¬13ÍžvÇÛH³¤/ˆÚꮕt<5}§`UB`Oä‰>Îðûø÷2£2w@‘ñ‰×Ì~t†£¥Ì€¡€t¹U×ô.9ïSñó¶0¶h'KÚ«.‘ -uº¨@²ÆµŸ’z÷µ ÜjpÂÃ=ê„ÃÜÈ'òXFÊyICyà¸îLŠ{i ° ËÖO¶úß?¨Ã#Ã}ap ?:½‘éâl™íÞ½F¦ÅT¡¬C ¿g“äÙ„ö»7–ICª5׊¬(Ð,©ÿÎbädƒÑ¾ò_ž?zîÚ#@‹IèÃ(’Qü6Ky=ÂÜ Á¾Âû6vÃ$ Èø]j=Àâ .ºê‚¡î“2ÙbÛ?ç>“M@nnÂ"­Y5¥0¸Ü_×ùqlp¸/»uDSZ³‰B)z!n;s5÷¹é§é¾%(›¤T&™o­útãý5ÆöÛÛ‘ë&€Ÿ·…°Ým:ŽÿNFpjS·$%V|v’Ö‚è³µÇüF€¡*x ?ö ^18¥ó³¯ÿÅŸ£x¼QaÆæïZ€Š>‡#Ö«/^Ò/Ⱥ/¦mޝ‹,«áûçÇj -šîûn üÝýòÓœÉÒªq¯š;ÏwQŹ_'“p¯VàL Ý?ü„_h¿ë £Ò¡üÜ÷6žç£ªÅ@4«ˆ<¢ÄâýB ã¾…‹T¯#t\I@ ‰Ê,´ªþKõt<`òD¤NÊ“Gׯ¾œ¡Y ˜±YMePy(-ˆãyxί:ûBJ?–ÓäÊ›§lJž'í¼´>gJ7©z§<üŽ`/|£³æ\­Íˆ_¥…§ -®o PÅ–œ@4ÄdÚÇU £{û‰vO´„B$q6Ãbi.ôð@×íy™8iuVIõ['2`­Õ5yŽ„ááÜGòÆà®ËRô Ñ],W†¶}Œäãñµ)…Qe 1¿IÄFŠÇñ›¨enߢ«Žs˼s>c6Õœ1Ö*ïÕ}Úÿ -gó§eÆ!ƒ’v¥uàWYÆê ì;fÉƒŽ“¥&²k.‡Ö -E ÷x»Ï±éÑ\’«÷DK V:%¦ ÞÒ !{•¸ï9M¼úƒ§ãä©=¶?åŸ@:bž µè²èÜÇO‹/õ=^U¼ÂAëç¢ô Î †Ÿl€Bø4¹%á¿ã{–Pp6w(ûœÿfQeî}<͆%ÀQÃåiƒtu“, xDGÇ“*Tæó¥ ®Ew0ñ:`‚Ÿkz -ô\“<¦o¥òÄ&‹$‚ýgMí ˆ­öÈfØ«ºÞfGK°Ñc¼Îº`è;0æNÿÓNƒSZ´MÝ2 -㬙²Ûر{¸5†aa3§äÙ–½ý* Ì©C¢¶? ®´’ƲôSJ?g]Y]_¦›Qà§[À¾¤÷eÁç±M àÆB4ÖwżªNOn•^ †ã!Z6TÆ iºw‹` „௣·2ÀëëÍõÐz ‰YóåX<%›ps^’5|·Pö:-å=V‰ñ-Ò¿OÛÔ¼Üu£É¾':¢ä›ùvˆ¦Ö!YK&݉þñË¢# à¢þm•"ïʧä¼üö5¦µœÙ…Åq7OÖÅßÏ?š”RÙˆY°J¤p\+æ‘d`°Ù/3º†3f;—0²‘Âaʯsâj©*„¨A°LˆŒ²ß'â¯Óœ‹¡ë*tïì ø«‰1QÖãßâ¯3•DÍ[Zˆ²@Èpöè”e"þõŸµ¸5h•¸€é´à[cñO)Ñè<£®sÎOQRbˆÞQƒµ´¤RàGõO$d† ÐHÐxjœCuÁ°§<ýÝc†ÈÚ FdÈb)u°Ä“S‰dæn@p7«äëlU­„ ûNýrWŠ]¬XÐnÂÚ6Y0ëÊ©©€œ`ôS˜àHÈÚÐÉujÂõ?%t²¾ÎØÇÉ£Í"1¡¨‘¬ß¹”\6g“øp°Sß©mRº&[{($ë2p—E=Ô¹>/Ušš¦ÙÁÙt!¶qXgï‡ÝRò|œx£ o}øúÓŠä܉8cÝ7.ž:#‚VÔ aÑŸHI¨öR#/²Úý’izj‘àˆFµOÔÁ·ôOÈ£­êg¨(PùQØÛÃǃ2]Â…H­ÿ̈*ɺí)j™–„5šlråéô 3#[ƒõCÄ_Óín)ôIá¡dvÿ¥ˆzJHOÉõrEdh'¾>ˆã«YGÈ#|bùΗkËìg¾Ïì õƒ$AýO· ŒO@()ÞÝFIÉÁ;;º,•“$œ\¦—gtG»ñÄÐ:Ú1|—~߇ï4ºÝ̱<ÀÐÆ×€sÈwe¿Ë\еÐBÇFõ=Q+ -qO;5¯*¦5JKŽ&DÅ—Ä,lXt´ª -Ö9Û¯Àê•!&¤r›ÖnÑlªˆ¯ë>»÷Bkœ«Š–%¨twÀBÁ¡ H(¨Qä#. –tVH:˜Éƒ± ÉQÅ0cÆc0…{¥§Ñè´“ÝGÕ²Â3}=öç5ä)¡µ½Åßû/OAEŒ& »·µtÂ3È´5û¼_L®tó„4ÏVëÑ¡v~É G¨žIz hŽ]À†r~ë£ÿ%1¿¡°gBcùF»2ÉìÆçq¼Àpz#Ia¹yíÇ)Îû|™áªÅ–¸Q¯N?1o0# ÐmY.À^Ãx¼µ7ar°Øé\åÅA+Ü0Y/Àª/w›Uº9®‚ÞrÞ*«l01ûÄkÜå×ÑxnâÛ`Sk‰XIºü¬ -kÞÒŒãRœ% 1ÞCôǪù´7‡b,¬[UŽ2À,ò3t -0’EBܘNaÍïî=Õ t'…Ói).YÚëküIýóÑc;Œôèèáw<äRh#Їf#Õœšm¼/8åBâ¿hj…}´E\¨TdQgæ ]D?©*…M· «„šìßÐ(ÆûÃõñ­ù嚇 Ø5‹ÅÙx?†(,ç´fá5|-ÎS]·"Aåb~Ú{Õüüî9•“l…”´£›“TFE\´þ4C7ÇøwJØ>öJø§^R74`fÆÇ¶ñø¬&ðü*Jô[ÐÒ‰û}½o™å¢nä§õÞ2žYŽá8:—ÖJì&a̰È@;t»›n5õvó¨P<£–Øv'Uò^Ï-[ Š˜NĪö+ 'þo“tɃéIÛðbT2ߨ±ìa)׿›óŽoÔü`:A¡ê´ŽðK~…Êì*‚âA—”Çef´lÿ¡R03QZ›‰%@ãÀ¯€„P‰ájU…=¨?vÛ3Wyõ­T>ê?‡ÉVÓ'`"üì*-šì€VZ:¦ŒÕÔèOÉ]¿a渫æÇ°d_8 H˜Òç5‹åùÚ1-S˜FÙbWæõw”é…fWú÷crÔ&Û>¼)«°ÿ•áŒ,¡÷ò¡Z7Ïcæ0C7Ð]1gå÷6·½œã1’vó1¼ -”Ž"Áæ_I­åæÕÌì¶$'Fè@ªn[DÌZ¡y¾\fž”ÒAAU´¡^ÃjÀM¼ü–½œù‰AxÌãÊëó z?ËD˜‰‡ðžÝˆëd§Tà–ëáõV]õåÖÜü$ åÊZvsúV›4£”…ùüÄÔ›Õö6FUzÀ>‹†«Ô”ViÙ°Äq(Ï7 c -+@!$í«¾K:^,æñé§6r::S©bC°kêðª€kª OÒkxö*ÌEèékió¾8oúaòûªs€w¡®ê&ϱn¹Êi~£\Ò9дUJ2’¾o6äd PPÊþ/Œ¦àt!;ÝÛO¦ï\~¸CÄ£$,UPŽ—Õ•á' Î/ÂQ—9÷%–Ù¹ i摤{b{^†®±voŽEËʘENókWòtw\Œ‡1¥iåy‡'qä~0އɑhÄïñ´ï‹&B.üÏøË,‚í -ýÌùHÖîvø„Èï”YH9¿R/8iVD—"ÚRóè&ÿ·¤k‡h$u4T/“xH»¥ñþêRe‚‘#Û¬#…n2h€¤Pz›±A6«µ*•‚ëªyn¦y, ¯òET•|QF‡|²¥O¾ZÏÏóóë“d?¿mÜ“ƒ»üŠÔ¯½bvÓ…bV@^ôtygè(Š¥e@Æ`>kNSœÆ37D~{ДiÀÆP`rÓÔb$°ÅáÓê8°7Úó rƒ¸Fô¦wÆÈ;*¡‰„rh<ªcøn1ûÚM+sOík9H"H·Ë©@ ‹€Š¬S«yQ??(>ÊbFkR¾i¥/û7q<‘ç^ÊÙV<Ð]‚‰£ªú]åÀònc€R-c›·d,j -X¬ëêd#hŽé,®à!êvø5Õ±`ÆcÇ’ÚÆ*ÓqQ²2#·µ`¥îô”ç¥ñm혼æÍˆ0Þ¬¦gòè&Á>»Ç¸øœäN J~h#Ec4ßòöRá²û_5X‘¡(:¶Z‹‚”€î÷øàs.d¨Ë✷jÅZzÕ¢áõéüö‡¤ðÓ¼ðç™î¦k啨òú¸·«q@ÞRvnÜíp`¦ÛE£¨/߸\áß»¢-Œ9à´.3B÷<¬ÜÞ\ƒáC1üg—üpùÙ×E#÷Q<±ð¢äHÞö¤86U奾jÜgkz[¼Záx“ ºh‘ô/–2û}§xrpN@€»HG«íéo®F’fÕ­ïâ¥Wˆ¢½Ÿºþø(¬AÉA3Ö´+Ê œV'7ÇM4ŸVÄH±‘KÌA·^‡ö÷ *v£eÄP†GOù •ñ¸R±ºeÞ+hýs#æ¿ù¼™$òQnÎÕ*G&¬ -šˆ1ÐÝâʳõ(¥ÞvCLú²Üçúx½ç†—¤‰üÀ½Sˆê"ª4t9}¥Ê•kb3½&µwlñ%s¼Cäð¬ôqBE-´×ð@ô7˜~ ØÅ>ÚC·ýAx)g—y:ÀšaÑ -š¶Ž[¤t‹ÑœLñXTºKE6çM‹Ö\ÝUúNîsK¾q@åöÊ$±ðOnŒ’¾,2°–êù¥˜÷“º´FXñØQKÓU®âm• è,¿Ê9ÂÊdCæ°Š™n_ùß±°<…&"ÄÔ­žú·së5’ÓHß0̪¸‰h¿ AEPDjÀ:÷ž`ª}5ö7"£4Ȍϥ;´Z•HÏß8ì'©3Ï/ä¢Áš€ûbôž”­¦`çØ—W–û‚ªy“LöImgŒ åGÁtWëï¹&꟤_òƒ£ý¨ŠÅ½¬dJaLù(OJú Œ³Ú`ÅEYba©Ï™öììlÓ€ž¢â1À¾p>™×Ìßœ¥à¦®YŬô½lU -BìD½ÿX«ó&bAÉ^Ý ÿÛ~SÓüÜÐñðØƒ‡&÷ÙbSH"þðÞ^Åyú²x2™a6òËx_Èè$AˆVBêw(s*  ÎÖã6S܉ #~œ)G~‡g¦s2è5Uöaâ 8 ˆåÊ?záÐÓáA¿†nËŸx´Ús­ Ê÷삨3‹¢EÚåZ‘cä8ä‡u»zKôçc¸sŸ[yÍàà>—P ·å[‹•fösPLõ©Ó—Ïž›+u¿Þ jÍŽŠ ¤LnQH”TÜí0‚ÆkÁ¶arú -HÜ ;…±Nbêî)§)¬«´‹TP>äÝÉþöQH§‡€ bqÞÅpsï£ 4\&¦¡;Dº•Öצ'Щ -ty¾Ûz¤ µyˆûFÔc†4¨±×âìWÆ`V„²Ë'©U¥È>¡‹ÆA ¯=ùU/¢"giœ{J‰}T îåÇ(LIYššIšFmÉIâáºÍLLðˆé*=ÔtJ›#Æ)Ÿªe4èÖ³ö.Ð]>>+ݨ: qj=*áÌ^"ç5–êÓÂ}ë¸ìæõ\š?ªá„näRlpô_agþZ‘?Õ§ ÅØµu$8WÇûæ=Úé¿,þ£˜ü' RþŒÕyê&2`ä§¡Ÿn•þ¤‰›¦Ýå -áòòt<îÔU½¿Ð-º8 M  -¡»`ƘŒm}0ÆEFÄ™…»ÊñšË£³¡eàgðÓ©}—Dµ„ƒ¥Ûåmºe'HÉ›”ü¯€ÌO²±ýö7®ƒQsR—?ÍuNC~z›¢£V »BP“Às ~ר{ª -ùú}Þ2òÙs|ã3X¨Æ^¤Ï·ÝBæçަ“n1ðÌÜô2>HÇ}œ©®?á—ÅItæÂu`Åÿ9Aûf7÷âÙw´|]äÇõjZÏï¬üøÍYÚ‚n¥³p8>æƒØ-4ö0}\zgˆÑ¯‡Ê{˜‘Ù®~þ°„\•ü8ÛÜt+%1‡ÜA¾MWÚÎí8<òNžzÖæX¡W‘nÁ/[õM娒3ZÝùS¡!÷e9–2컟­å÷©ß¤kIŠ<|âoʚ¿ 1›NiƒDs?ÿZ'táÌl2~¤GŒPñû¢OÃay‚àŸà§™f脼ĹP †©1”#i_U#ñ›Q Í -zv/9ùìDëàâûGˆ«S[HÞ "ö±ئªO‚„ŒRë©(vðc8ÔP~DÆ%´ôð¹yL[µ~lÕÌ% NMÑL´ßI¿Xõã­nä¡íË^OñIÁ¢>_Ò>"mGˆ LÕ Û¥=]@éõN“ÒÍ#Ë›XÄO­$Ô+’K0]"÷ñ2.{ gyC;[uãžÔ0ßá9îVt÷‘0R)ûJÏDª–„;ä-íÓQƒÀ&DЍå¯EšïUØ?~¨xg¯ c\ð‹‰~¦¸¹íœ÷· -¶(¢ùßÑü’,Ü9‹Šb!8míÀ#`i—ÌAéÞè£\¬:¦Ö²ÊÜ¡ÁH’ðÓpD~ø:0RÕüü ´Æ³8Àj¿Ô\ÉjYÜDâ·ÇÔÓ0@骤Vb#ïülªdÝù â²ÁTâÈ5Sd~Â!lÞ {5+jþ>µÆÅ&hWÿ¿öY -Ö‹:Bl3q6ÁØŒzZ+“c妙%J”Ù*+4Íqj}»îHMw„¹ûHéðeÁñÓvM1gšŸÙWÈ ÷9ž¡!õâa=Gøågª5Ùg)Å0ÇMwáñâƒC’p̯Á‚Ãx, hå{éÿS{+w[›hKÉA?æøùý¹Ÿ(ˆªD¤Ø_ÿi´Ïšyh2Û Nuºé$ UÆP½•îÖÜ’¦VXé,)Øà-á‹¡m5Î#‰­¡ÿ &Gˆ ˜Áïí•´u€GËVá¼#6 e–&mi½½ÀÐm¬VÂ^H•}¢JÂw¦òßÂ$#ÒÈÂÈéyÈ¢ˆ^*QI§öø9"{ç]ÚQ¡À´ÏÍ‘LÃcôÅû5šÉ1Àg»×ÌC Áî·=o~\òÒ ,öÔŠÓ¶­b ‘äùÁ(öIéWó3Õz”ê¾n®&ÍX/*üÞÆƒADÒ¸÷wt²W'9v;7ëòkÅ/›;(æ:yr"-›±'¨~~Å*ð1p?Ð]·Ä/H¹©Üâ¢äš´yÕä3™4ýu…¯©‘ÊÀ|¡*Ì`‹ãƒæz÷«ÕBá9SMùô<@K@T:3ôQ"ù {îoz± €ŒˆŒŸN¹÷…$VC1%ý©™¼[ œ]î2Föû -·íèǹ’Ñiø¿‹ÕƤPxÀ íÄ› ý°hôÙ†ôæ ˆ>ôB -F•™R Ÿ_Z¬tï!ŒMxsL\å4»´fdÐMNû:p`~FÀZ&Á,ÝÖ®Ú«µ¨X´-àá¿¿-Ù¤`’Qdó«U‚•½:ãñ|²Äï©Ø)Àå‚_*DfÙ)žã™U‹ 3tÇñ&ñòï!ݨöÐ< _/)K¿F Â$‡pùÙ¢½Olï#‘Ÿz~¸ %œÏlÉ@g"€¯Ü¾.4-s¿Öº*ÜØ3UŸÖ’¯ÁÓçk\@YiP§´/´ó»³gÈŸ€÷Úª³Gá¬#⽨pøÄ}9möM_î€ þM‘x°a‰~  wN™à—ÿ€7æ?¦“¡RR¿`ñ*Y÷\‚6øá­{ò3ÂÖâcœQaäM4ÀP¨ßPÿÛÊ(–6Ä#|áZ#R–{˜&ô”ûßFxZ[ §I™öa‡Êø;`Êà ]oØ(ç»ëyZùºΡRBo2V«•BØÜ’°ÈÂì:ÆëßP¨L]žäó;jg˜·”µÏfÈÙ}7$ ¯^‰]L; ‘ .Höa/K:xœ¦2"Àüöl­ÊÎ}+ Gæ“;¨–)ï>!•Tet¯luÌ\ä·ÙVˆzø.Ü’e„?ƒ¥%ЦyªJ6mV_nSQH§ÅÝii‰Tøao½ðÁ«Uš]eUºÐ¶r°»s2 -Î%EÙ³•½ü«Îš0”ü˜ê¥}ÒgÄ­ù;/«çmev ÆTÚÕ¾[žü>3øh‰¸–)ާÌìog]À]ÝJN¼€—úÁˆX"à/+=’Á+4(*°{MÇÙf¼4“Þ‘^sá4È}}º)¢T3M.«UeHZçr€s–©¯síËù¾“ Ñ !ã±€¤ß¤Lt—_µA‰ó=ê£5‡î)Æ@)ôÇ€ Xý‡´& Ì·„’ï¡R…ô{ ü›Ud“"é=QMÌêwJ.d‚£¡µ…˜1ºÞQd#ì~×Xô)Cršù9]u&Òsè,ƒœ£ñu¯¢™x·¬‰¬ŠAÑ“Ê -| j˜c3O  ë"Jé¨ÉàvÀM¿Ã€Í.ÖÅ>C` Ÿ³©Ê„GÚò›z Þ2óŠ:³C?¿íÞ˜zi¥>•¢w0¬ÚÌᢾQ+`!È´zmC0Ë8K=zê¼ „"¾&÷•eöh“MHé;:ùÓ¿«ô`¤sl¿pÛM!\t;¡u×QAGIkXºVôºsN¬!)à&írÄPx$tÚlé^ÌÀH9oQñ•3èÆôŽÈ„ÀGu0ˆÝ h6ϳɫ@öÓU*Í5£Ø£œK{<9ŠöáQ‹ürmôä>ûhŠï_ŸƒÑ?ШŒiNT´^IÖTztÃF”d†<¤sÑKÿ²!¢ŸŒôŸ·æ%ZzÌöqô¢¿ÞÞ¾?S¿JõŠô-‰¡&ÍœÖ;1a£ÿÿ‡€-¬Šdmn\Qd\ðoŠã3o[plLA¸›#’èn7l1ˆÁ½gSös} ä»#Τq c6· ¶D¼è™û4é!Ê-¬†_æ0¶*ÄèþZ…)<˜èÞ€#¦ª‰´…è1á<˜—P¿ç¸Ô—}7yö.‡Îäà©"¾”!+·X¡§H‘=a8ÛÖJ¸"±)~€NÔs0â%ÏÀÔúfˆVÄÊ -îJfc«}«‹È¿‘|úM3eQž~aC¿tb, {}÷Híw<޵†1ü\l1QÛMœ¡Ðàÿ­Gâ´`C'A 4 û¢m¢BWgàZ%75Z:DÈ\­8~×2“måçÆØºå'Ÿð_'‘®¬ÀÔÜ›ÓÜ´ÐâO+ˆ<«}hÀÄä¬w21!·ôP.›YÔ›2YãD¸´â¾„ E8]}FPç_=·Gýþq5ù…ºïÒ  îE¹±Vp-HÐðƒg=„>®Póǧ§‚v,)¯æ‡t_ó_MÒÉÂ%oÚ¹q*¬*òÊVõ^Þܶ.HÑZ[ÓBÈ·¬n<%þ\^ŸldðnbãO¸xW¸ÐTùª__Ùæ¾·†”Ü×ÔkŸ>< -= ¢lz{˜ qýÇ(Œ× çÚ' rE]TÊ–`Ñ{“¼­-,ULæ1(?S4²E+ˆw OyÓ4±W˜3Ù§Øô½ÞŠJÕ‡Ù*¦"¢S)¨Vø#LQò`’Ó¾¯qÐ}9bt~OE}_Ty¾C¾HÊ ŠÎÅî“2è—¨HYâÃ¥èø½Czïi¯‚Pv‡5ÿœÖËåíÔsPŒ}Ʀʆs2*fŠ|3=/YØ1â´²EXØŒ¼ðus1Ã}A&‹®ÁG͘V«ì ¥¬„uuKÙ8DðKsxßb"KCWsg,ÇLEÈ"'÷Q¤½ïu•Êá×SPð÷ª ðµYS~„'ƒ§_î+æ!v×Bì§ (䆸hy91aG†;W2s¦²o2µAÄjs¿´$ 5A±€‹* C(@]Û’šq`”ç϶ÏL¥¸³‹KÓHe²#‘läÖ™\mÏ9ψ`âh,ùS¹Ó‚Ê¢F9¤2ã–Òñ²)üS€g%¡O )—_V¸ ÍÕЫàë«ÿCh¦¢© Á·÷Éò1ㇻ A¦RöKP¼CX¡ñ‘ÑrnÑÅ{ÜMOûÃ/y ÝR`|- )¨ŸvЦFºÅùÌt ÷å^+† ¸Âß´Ý¿¦ -Ì#®4Șcrö‚Ц-åì«,1FZdaxØ;~ ™GpÿÖŠó”(Œ+Y0¥b*ð,u„î»Ì6Ð`¼ðV©ù Ü÷ÌCÛ…ŸxÒ– >5v/T?<¼ÁÄüHgù·…&‡ð³Ú¦ù ø²›âRj›NåÍp‚w|‰¸A³d¥§‰Ú䦎‘¾E¿¦\-ʯgƒî¥䪀¥„ ÛéîVB…ùTJ[Ôí1áO;#J® ¥(ÞߎxÍ9?¶Í -¤Ó¦º½ÁoJ‚´«ÞŒõãV6“v÷™;x] –˜’qÎØ—Ÿ¼Btß Ÿ(æC¹×ª!‡8ÏCèeŸX1äTýJ§¡óh+s'˽LäÑ}ÖŒäæqµ­C 99¼ 1Õ GÎM¹»‰Ѿ² -é6 Ýß.¿£6·˜ -tÐ0)ñØ\é@wpmÇCÅ`H að›´ti¾¿V„¯×7ä6üÖÏz×fàK~’>5Î' ‚HÐ r&¯÷Äœk$ZÌZ;Ëñ…õáñá»r››¾x¹.ëÝѨ®³øy¿D—íuŠlޞ㬙°¼ˆÐ¾¤cH÷½àM¾ CB¸Öuš'»N ˜dÃ'ši`Ø®ô l?(hSqcİ÷¯(Ø'j^ì!„h#ýùh‘5yL»Æ>õb\åVäeÕÓéJ¹¯Þ%âçþVò=ÔÌD*¬€æÑ«÷õÿa}X†rëÜîxäúª.+lñ Buáõò3³Êj.gh¸íý0ç'R"l6Ý/Œˆ$O–Zk€²VBõˆné ¥M!ÛA¿§HÕ™ƒŸ|Ãë(C)ϤU[wªÜú•ü½¾äh¬ú—‡u–·ö)mˆ}\_ŸÙ¿&$sƒÁ&S{ -Žjy˜é¶‚ènŸ¡#ì%¹ôN"ü<>à‹ß•EÜõ«¬š’ó54ûP{lV9<©€Æ/óòëP7f¸¹/òÔÎk`í ~Ÿs>¬‘ŽöÍ_ÑTo§ºœ†‘êÞ’§ÙY=Úz ‡Ýc#Î7lQ¦SÛ/A—<zð:õ–ëÛj‹;Åxú8ò°ð½S!®Wuk/›y4þ™¸584÷…¸b¼Kt+Ò–œ!eMƒRÓ<@GÓÆ~,w ®)ÕY©ÅVf”¹4ö)BF¼^Ã!°‘øðÙ³$’ª+m ¿Œi˜m)Všÿ æì¡³c‚ý+n£­wn2k£ ô¸ èw_°p˜Ö§¯Y9ì –[ž˜ß–»ÉO_íÛwЭ6~pÊ*„ï¸/E¹ypë-m†ú·Û$GnSLLVÝpOƒ0‰õ­Ze>T:ûgÏbL40} v]Ú¬ }8 qÆ^Ð -f»li•Ãtþ‚ýB,dÄÝvÌjsìørŶ'‰ ª+—¯Öl…xÓì…-Яò|‰í†wz@%Od Þ¬„мӜۯY$ƒj­ÄMi´¯‡¯QGûxà>áîëöqåZ8³¤³KWX~Ì1+þã "1Íæbü:RŸfÃc¢¾er7V&O<Ð>‘Î¥*ÔïMš{1-§/!üøi1í䔃Œ2O–`wßîô=Nò°[!=j¾ÕnCê÷D„ +Ö[e6=5ø6˾좠Í/Š ,æ ‘ŠZ­ö%‘¸1ìxd*ØÀ|ÖÑb›$¢ÒöMx&„! È…µ·±ÀªUè,ɃýÚhÁX鳚•áÁIÙSNšr2ödv4JÛ¬iÒå,aàœxLd‰Ý%anEöpwD–ª±Ä°¼‹T˜’÷¡$Ó¤Ÿ=¥ÿÐò‚Ùî8)L9é ëVýá•€±žs—¤  -â§Äb×\WñÛ) -Œ›2ÞiYŸØ·6FÛüäйïØ`3. ‡]#¥äMqÛ˜sR´'þ$—Ñþ2]43Š˜ õr³ÖbSü' >ƯàðˆùªŠG³‰+ó´YуáPü^Ÿ*ÓŸÛä0óËùô+"”ð̦ï£}(ó;Àçˆ+:a“f`h5NòqmßGCHZg¤2!ÙX0ž/P$—e%8HZ•°Gøi#þ(ÕTO}p.Å‹¦]¬¬6zgÒ¢µ9“³´ë©ôôf¬!ûàwÈ‘N@³ü¿–µÛšjàv+³Z+“Ÿ¨tè—Œ»Á•ÀË7û†žý¡#x’š ¶êŽ×·,?P¤ÈÌ(¶{ç?“@…†¤ -KMÀÑ!ŒüXæ‘øµŽDW¹BÀ›O18ãò”رWï§Ügä‘3[Dú¾â›¸‚«}­J ˜Gaeø¶æÏo<ÆãÒÌÀŒÝßÄ+ ^ÕòzêzWµúî ktË醖ü(Rþ³µ‰~¹»Q¹î ×^[ÑÁ ‰k¬, MûØÛ¶ääÜfhò˜ÀÏ®šò˜gþ þ´$ 2ªË¬·\˜Û‰™åŽ“„lɈ"Ý’fÃu‹=¼OÄí÷­ à?[>#5òð¿ôÇV6ÕB€d`BCO‡Apá;‰ŸöѲ¹ïœ'n( -RGçÔ–ÈÛS@Ú›^òI©Ž$u+‡ ä2S§”­1nãÝüؼBfT]"wE[þÒ<›d„‡@Ÿ=%0öÚ‚U[Æ9ˆ*=¿|ŠðÛ Ôô¦ôqçþ{Ü“ã´j»aÐÍ,ê0¦‡˜ó°z%éÇZ÷þ,€OŒW#ui{BòûÁIb褉˪øÁË¢Õ¨êąǺ­#Ò„¨}&Sç¨gÒp'óaØç¬)ÕØZ } J”…ðóKÎï|ò÷צ‡½ìIÍKò˜È J®‡®²`[ƒ6õ –jç¡ ¹|„a-Ûdå–|ÖJ×.—Äð÷ùÝwöcŽ„_8éÚ¨¾,R¿¿Ÿô>9¥›ã$U{Ñ”í¨ ‚aàÏÁý@«ÙQä®Ãf&ôÒþ»9Šå :¶|f‹$­ãyÜ6?ù&…œ`¹;@î›ÚG…ü.»ºif4Âfx”¡iÁ`TèÏ}Êuô®‹ÓšýÇØJw•< {àyJ7Œ¿¹^ãí››Üç×´IÙsÝÜ“b+K. †ËÖ¹¿g ¦ªûüï•u…8»¦n¿¬›ƒÈšSOÂãqÚ¸â-d§¨è/ ‡—FV®øŽºÓ…¿o$4iºî½$è‘l@âÜBÁÀñîWÊ«ô KÊGO|¶ûUbKÜî  ÁcNN÷ 2;"ïB'&‘@l´±Ž4œ§ýþ¦þ×"C6Ѐ&‡ÏÙ<ºknç¡t8­SCÿ¯Ö&CF`-Ó1˜”\§mÅ+K”ÏçõTü¾Ð%³•¶45<¤Þðû©?\ç4óJ¤sp˜ÏX^Ý…8N$1_êÿ¥¸fÝÔ ÊÑš]?Ø‘Gš›…‚5Ë û¹8dÜàq—@eÊå‡Z2N×>$}íÛÛ9fpù¦G×*¶-ǸZf$­gÚ &¥Ç<ä‹ü’Ë·nÙ×¾‚ÞwÀOì%‡I“j‹p¤±fSo&†Òþºá í"©/»èðÿ¦Uàä^d°A¹É#þâq>æ™”¥‹ÍÉBŒcóS‰²9LÛ“SRÃ6ÙÛWJ¬f9^½ê.hÑn ÛIâ®_r3óà/w•ÆÍ£WlþÂ8bÆ·0Ü3ŽY=DÐoóG„ ÷Î/]$ôÖŒÄ"nM‚„G»ü0fœÝÞ7gŽ)eSm¹»ÁÂÅ&WVr'Ò W—b>N”fd>6%vßô²•‡}›ÑÉëâ;4bi!:ÔaÆÃHÞWfü’ÔOe<~D™µáÀ´IƒzS -¸¨¢˜R¨AyX·wË “=…Ô`ùB”šf]Ù‚¡'01S3Gý($F¾ùš÷°ëÓs\²è­p³+DÉcõèŽJÿÇ‘óN3’Ý$£ãNýNÂMy~ýžüea7_i×WÂLe~SQè-.Cv„poÐ9ó†€é¼F猧ü•Ù0¥ç—Ä+ê‹IË,áO÷ˆøíw]é< oDY—³œ‘­YÌ(Èôº‹ß–ÅÈššÌV¶É¦BÂgy’§TÍ2êû}FœÛ½fàR0ßq[Zùà£"äͪ=ª}½võïý0Ùã$HáÂïÂa¿0µ‰ÃÉ'øhÞÕ9ݎѤy?9õꃱ(É„°Iô$úwPŸw˜WˆÎ›¡¿â—¿ª~Ø6BÆl«âa‡i²‘bÏጠSG"€_6Ö b\íJ•ß'ò>”nò¨æáÿ¦h Uç}#6¿Í÷ʾF€s.ß^§éÙM%f‹; ºÓ~!Hך?:k…c ÷.…xKúš¹:Ƕ’Ç8hK’¶“oŸ_¯¬Gã TM¨ý@1//¤rB”º°šMíï°›ð PÍ<}Õ~Nœ›¶²È`q*ÄD¯¨!TÈÉR~ò×û[/ÑßèW©$o†J?M>`Ÿ«…“áó?‹eq'8«dbœ»½›Ì©ÊÈkLzó!¸ú·Î}E›ÿ“ãç~Pý B0TïƒX©èH2³ §g4lj 7 Ù:ÇüGàÇò¦ìo.‰œ˜^ì BSԶ̾áq1~òw6ÈÄõSÀ\†~0΃Q.!çÇšJSGªKè¦æªèˆHÚÐrÁ5|à™»_<NÑ ù%–SQiïÅú¥ž’ˆc¾=1—ç™åÔm}—‡N;»'ãó˜†)F13‚~hæ40ô]h¨ Þìóðê[æmQ#ãê*¿D3ð”À¬œ2…ÎĈ†yU9ÓGéÅ%ЇþŸ‘N”èÊF:m­i[=z-§Žpo…‡oS­õ³ÿp¿£ºojä·–NϸLŒ4[•ãþÿúËœ °þ•Va®òìåõ63þʃãÌâêÿf<ô³~øÏãäéáþú僶ïùì¸@æçèßüÿú‘©ïÌh ó3§Ã׿æÜøÿ±û* `Ö‘‹ÆêþŸ†žù‹M îï åóûþùâÍ" þÝ@Ñáóÿ4÷ý²6øÙáóÿùa­üùfÎ7?<dâóúúÜË#|¾ÐÒÕßÏÚþHIdð ±áÌ.ÚÈ×Ùöþ¢gc”ùþüóßòžQwÑÎÐþí¹¥þÉaïù8ZÛÓÁÁÁO7Œñùô®HªÛ¿F/±ñÑ®yôùþý﮺ÅËsg'úm¹Ô¸ýÿúäú̧Ì@mÂÁ¿´üÿ,8ÈþþÈ´níý4h˜ÁíÎþ8 ù´hÇÀïüþ. -6–•ˆïþ Š¥Ô²±ÿIýÿ¿ºËýѰ¨ÅóÿŸ1 [ù³úîäÍŠ¡¡¢¢±ùðš[úû“b 4´úÍŸ´ÊžŸüþúÛ˦31Ðóüû.ÌΚšùþ3¯ü«8âó8͢6ýâòùΠÎÌËÊéýùÓ/ûßð³ÌÌͦ”‘ £ÿî7&A¾ÁìþÍý…ÌŒ’¥ñæKLþã‘/¯Ê˶œš˜þ˜ãù˜޶‰êÿ¦ùþ“/ °ÌäЬÇÈÉÊ’‚Ðùýú!µÉ€ÂÉÊ’~‰ýÿ(ÏϘh½À¨øüþÿú–àâ^ ­ ÃxˆŠ°ûÿØ -¬5"Md›º½¿Ç¤ðþáóü1ÚÂzzÿ³/7ù¤a¹{tuùý-gñ³›  ኟČyvllþþ\ÒG´üÁÃĽº~jj³øóçNaØóüû´¹¿¾jiýÿù -‰ 4Ðó’¾fp‡Íéö_ú7&^ÍÐÓÖÚíùóÑ)¶À¿cpÍšD!._Ùý Åð Á½ºÏóúþQ«ôùšd»§ˆloþ4ã¤A ýò£¸Â¦roljh\`bôþõ›1 Õñú™Áf[bd³óõèôúÐÀÀÙùým‘¶à²›e ·üò!–µÁµxecXaiÿå® Füúv½ÁlX[]éùðQ¤üa Þú&v½eb`^lïÿíúÒGCÐóÊev¾¼ºXWW…ýs21H3HùãÀRRQVýÿ¸¼ú71»À»œQûÿN,üý±ïþ¤* ­ªgdaWæôdñ²¿²¯O[áó )¡õÉHeãè8½UNRSc 3 —¶Ô@úþý4¶oYMÎW ò¿rMX€„%D–úô Ï7´·ãúþLïöà f]ü¯»ZOJK{  ¡äú acPÉâßûóc°b_[YJ‡á!ð¡k^™ùð_b‡´úæ´™gûó8¾¤hIIJ™ÎÈë'Z±à£mH£{XKJIÎ͵áýæ7&_ùþ™cº¼·ÿu -+`úýù0ÆÉåþº¾HHHhýÇñþïQ뾌OMLZî³1ÎêMdû&õÊŒ2eú¾þÿM( -¬ÆàïþãÎ íúSHHôƤ3I—Âmúüæ fB>GGK«4Lž›,Ïý²~‰þúH“þ¡ˆPFg¯ßû¦ˆ2Ëßóûó­1üäúÜÙ—%lùðš+[‰þ 51\’ûPÁ_ýùª¯íù£‚²í³ýÀµù‚[P²¼là˜]H£ùGÿÛ5çñæ '8;¨þýî7&òœ-1 î°_šõñc!GÿþþïÝdÆøáú‚@þï^’š¨äÖÞ³€À’X@*©Yà€6B.”VB6,Éb‘H†QÄPÃ0 ‚@ Ä ¦s„Æ«e ã´:ò†~À;Ž)¢RGG"ô¾ŠjÄ>¼©xù½})~ù3IûøÛ{ï=ùëo&ûÄr -nUV¬B=Q^û‘јÿDÑ,†[ªq†3£ÇÉ&jGâ¯S} ¦J~#†Ë6NÏs1’â”—è›Äx°¡õ}ƒB("åÜ\4΃œˆ -ý”q]±yÈ,uÅ¿¾/NôVq‰e]’˜&W|“[ý[á¯i9X¥Ù×™Ÿ@Åi½¨üü¿ˆ—›8¢{Ñq– Ó-lš}Ú“©grÓÑVU4¿Ê€ÞƒÛ:ü^}Vê¦d ºyuäà„z>ÞHZ8™e:ñNFMÜD~^¥Ÿï[¢Ð_¸À¾9fB‡ýåçÂÍj«D\˜üêZZå¨qiäa<…O·Œ­ç‡c¥@ŽiJ­ * %N Cô¶›ºŠåäýšà–[Þç©,i÷¦ªëX9,G°ßò+6½$+î/™éö·â¶›šD÷¦ xÒ +ÃrhäIj¤Ü284èÒoò`¨÷ñ“:†ŽzTháQÛÔ†ës íþg—Ë^~ÄH¢ÉŸîû‹þÄíòO½ïae(¶°äoíoNŒÀºŽÆà9“†Z¥>Ù×ÚnÒ\½¸eøŸŸÀeÊû\ÑÙ 6©S@t”õi†#w6Ñ=ßDŒý"4É~®‡%‡Haw~$‡°R¬•=­°áÀFõÔsÛÀÏû*¥n“dˆ›žÎLÓ¸e%ØášÆÀ÷}ÙÕd¥÷G凙Ñ7?`KñTbl¥#E½‡ä ç‰eNªæùW\Ôdün–Œ'[éî!Èâ¿ÝHŠ2èoßš$£¹õQcMÈï’þör5]:ÙM¬ÊøäÉv'®ÚDnhF‘1vËì¬A~çk”Ђ'è0uÓ–}²ŒòÛ† T©æ¾@‘eUtMGà§Ý¥À¶x -#‡ ÷Ûæý½Ï_žg¯–ŸÔCyØ‘ ˆòRŽ!y9,3»©:ÙßQSga˸Š}÷á!qÂ~`þ8¼™óC4X|$Ûû81nZD‹ù@q(4Ж,Ø’Qv¥ºgÏ£e³«2ñ–=ˆÙiå>75ƒþ¸hµùá¾Rê5E©ÑªÇbó°eÙ"?i>­Áro„€ -ž<ï³O8[Ûó…îÂÙÅŸœEÃüøOÓf5LÞw3ÓÍ¥£#HߺQ¾BYEÄ!™Çå“pŸ€ËG—X0M;ÃvòVIÍ’þeœfY²=UW»NpËøÍ‹7ñs~ÕjW<cTŠU€*òs*èó8ò%$ ’‰„{—;ħ[vý I’VP`Úíó>YF­xæ©„MÆùÙTyèX\°ðÍùW%®Íï(w‚!§ñ¼ûý«è4ÒvêlÇ”Ðs#¿EØ\íÌ0 ŠPà íÇðKÁt²¿’KÈ9 È~¹ÕÉ‘OÄ#=½WÚ¹~ýhÃHuaûÎk7)ý¢e9U+û @y~ÈLFîŠyÙ‘ûôž¸M_¥ž¢û'xW~ÏÈœúÃ҈ƨ¿ôì}}]½kõ¤üüP}H<Ï £ä™fB~„þ¡ìªˆüæVMÌtAr ü*©(DÌûšª‡æc¦$f2i|'£è9‰˜-DyÂãù¿2½LÚ‚ËÌO‘úYº`í—~–”Í/õ¨dmJ\ݵi ¿÷¿n‘ËK‘þ_2KŠ`uz0„ó»K¿ˆî‹p6ºD¨H¨o>ÆþÒV×¾P¾» sç»Õãxù«ô›x€¤ù e1ô|ÀNžÙÆÑ [º*›òSP—ÍT:IÈfÚÙôWã–úy·¾àáMJæ¼Üà¹VñRÁg­«fëw -¶;DpA%ˆÐñ¤>)Þ‰2|2ï«@©aì–•wøtCM ±Ž0,ºÑõY­nïrÈÈo”†™–¦Ö‘UŽÝæZŸúUI  OeÍHÕllR~•å ‰Nñøi¤€z7”ËöqŠE=¬~1GÎö ’Rƒ5ó¯)õov~ÆCm8E”<ó;X~ª%Í‹Wñ % R.+HAPpc%eÙ¾=€ÆeÉC–¦À€×³3¿µ‘<Ô…eÁøÈÊýZŒf£4êtc¦U+yÈ©q ~w‘JÔ39g$–a?gJÇ 7¿‚Ïâ Ô!Ÿas5¶ ^5}BÕËGýP>?™€³µ8ôUeë7¢k ÿ”ÁóZHžâYÞÅ+T˜ÞŠ|tÐrÝï‰ÕZ^ºƒº6=¦*O~ïVÍ^ñb~Éóü`¯ 19Ø£Ò9ƒrë‡xwMäl+؈Yöújƒ2äùáÿI—Ý”‡I"ÒÕÔ_†ñóUB<7^&¿–Kþ·¼™SÉi R!ÄwxÝ”wh¹0ûTV(8UF¾ëqÏ/ÜÞHÄ:Š8F’ßž˜EàpPÈŽQ«D°galð[=yp°—¾õüh7–˜K’7Ñû°·›i,˜9ÒdÀÔ˜…͹ÁáSg¨¦zʾªÖŒ³¹, žü'T<.ƒÐ.éä7ƒpØÀ‚3?5úKªL¾J"˜8š_vßñ”=öýP0—,»%7k ~Np_ìâPDhꩇ–8ïuœÎ@Ÿäeñ¾åzÑn¥4@¢|ônîËF#£cû!|ÙÇ6húCÇ|-?Öu$á(ZE›³…¤yïÅÃx‘‘}„ÚÇvm ¯\WôsPFÆ5•ªÔ—é_M%x:‡¾ÐüÁm~%7,X¦­’ïóüÄjÉ8U¥/¸úÿ¾¯ˆ<uJó3‚$<›÷s²ˆ ¦Ý¾&wÏh/·œ£¦ 2Û2U¡$û²—_ÿVKòûÜt$rP”‰-]9 -~¹Ýd˜Ü Ö/µl»â‘î2Ž;<¨£x~¥'i Pø)ï›*xÊxßòèÁFšAQ+ cðcAÍ@VUIö»–aw†ñv@Xÿ¼ü&Sƒj©6 -QC¯ù{IF½ˆ“WÜ·¿UÇô¬ƒå'—m¦ãÎqˆ[áômûöµjŒöNÎ1+mˆçþl–ÊâÊcD¸}.Ñ »¥ÃͯÚ2ËM8¨š«>ØôÆí¯Pp>°í‘Û.›w¡8lX%~ïýS°«Ç8a1r„fž{ ;:—‡âº»qvN‚tç+ -˜L}.†uÁµ^)™[ް2&;CÉÏBIñ41üQª -±‘‰é÷Qõ¨e/œÅ‹QÑw¤­ÆØ’¹ÆþW7¢”² ¦?-ÛÈÀ^I4¢e[뺋šVúfäz#CÔ9í™…›a“eÙþà}N S¤Ë¯ I*½—>*“„ÐÊ{æUPßí(À`ŘAð&-.»ÃÈÏ6º•½iRÇG-z@" †4CÑëñ7 -Eí6QòCws÷}È;{Œ£î|k.$éñ æçç4{mræÝ¾Ú;yÍEÀM”}TöÖ; ¬JäÏêü–84¢ ¬ïÜWgV5À0ò]\6Å4Êç…ã“Ç5Þù‰¨2eûùEГ%~]ZëF_‚´ŸP©†ö@øæ¹f~»ÿÇ8†À¹è¥%"—ëHŒ‡aVAdýx&ÅÝl'?a^š^h~Š?K€n®/éÂëWnóÓ“ŽðMGÞ-UoïzQ£§…!øtùl'±®¯1” Î(Œ*E߬xIИåw€ ÷ܨ5 ‚r QýÕsgëÒZþÇl j·/½ þ}(•"9Š#*íxµ;IÑR"iÕªG(8 -’-gŒù)l)nÕiýíU.ýaÄ<\" y~,0Å-ÁÇvRs]{™9„ ŽXN‘2c±þ«Yk\ahY$§Y¾ù¡Ü|hJ-°A¶±(b†Z÷xî²Uä-•‘9·q<ì#’&D­å'ËàÙgœ¤Í¨çnþÌOY®®¢ù;#¨ÖÆk>þälp¡îkí òæÖ_ #.°œÅßîÓD¯…x¨lÙ<0ÝÃY× øùÁäÆ>9*–û¬ªß\¾™â…¥uS4KM+ª5~¦<ˆ) - €¨ÓðZevr¼èäSüÙ¢Ó÷FÀÞ Ñ ð.Kö¯iúÞÐwéM'ùùQ´ï³{ì#‚£]*‘2:â¾,ÓbºY\°² Ã‰ 'ò^—ÆeOòEÈ®ºŸ{7ç77‡©e&0R€½aܱ_ïĆxAü0Ï=@‹–3J¨<ˆ+eÐ7¼ñsö¢Ï_k£v’”ïsï#ko@gþ¶ÿªK‡›Ÿ¢It{_v¸}äNH]@"=”3Io:Â9d;ê!(ªY,fò¶[¯t>M€A?”ñ]8ÀÃïi,ˆ‚±‘íW5–ä“”~—…2.ÅÜ'Œß¿™ªü,´˜•‡†ñ œôùª)PN÷+èk?°é#¯T"¡¹™‡æò¾Ý̃îÁp[ãÑΖ-Ù±3ÂÈV Ëج(Ù|dŸ–lÏ7• p»åËf¾O#ž¼öסÙ-7»cl„r Åz,¦Q‡øƒµÒgQ‡Þ|Äe…‡.Q'"ÿéñó®¯ìå·£6ÄãtÁ}‡ÆGøõw$EATÖTÏ›B­FñÐßMòSØ ñ ¿×° ]T«ŒyŠh‚4 -}S×L¡Ü.ŠÞÀÞƒšÝ:·¹’ʱ¾ô>0,­ r†çÒm§ŽNe+‚fÁÆÏì?”=ÁZ1ã–P™ÏÍ­Kp#ÝúA•ü¬¬½Y7]æ‘”$¤ìcþì½ ú¨u{°Ó`Ë>\õKt)ŒjÍIâjA ;'çõ}ÓÐÍ(Ô,á© ,Ýë_ÅædZ,—†ÏOißí=ÌñË?ºÎÀ¡8`ŠÌyb¥·Ý¢;X+ב5—ï1¨x»>÷ÊÛ2ràDÊ#å0%Së‘Û®’<.07šÊ‡–üÆÙé¯n‘ô6vB®ûÀTXt>—~PˆÀºRéÆ)3”êI(w/3É!L5ŸÄз!X— EÐóc»Û¨èUÊE>?”R:h5Ÿ×€`½ÃYMÿWxäîýÚk¥œ7‹Ó° îˆú­=DiqšŸq2Þ$kÚ׸›ìó)$ž|=Ô’&r°bâø¨•¤™ŸG¶J`›"¥; -Ÿf³àMCŒÏíö)ß䯄†$@îQh$†Wƒ\Åù) wQC"Üg@NG®¼1¸.â(,,¬®Ð¬•=Ø€îk-¡ª`´X%‚~_‘cTÝïR‹lCõ 9ì*R‡Y±+ðÍ8±Kcl¬Íï‡áñh«MO'"¡Ç,—ü6à9àš¶Xž‰•½#{eßÏgƒp÷Óæ¦u·ÑÎ5ùî5^¥}/s_«–ª£*ÈpË^ƒMr/CíÞ2Öðƒt†FX¥c>_ç°ˆ}Á Zl³¾¥o×oÍš5Ð~Ïoˆ¦,ã!ÉDÑdª ´÷lø1f›÷¸î—[,Cp'ï;˜—”7 –'.G}6–®Ø×¨÷ýãPO{/†T¸d ‡OÒåÄë¦2¿ì«2uÿi¹ŸºM#ê–Zwù×–³ÞnÚ·Åòï¡Ö§nxýãOú¦c¦Ñ«7Õ——ºi_$ûà¼À uG‡›…Ÿ|ˆÂ„ùÕœn) »´ïÿh#Ùôù9ŒËZ*zäæ%I—Z5§-ò°JC_Ã{j“ 1Œòò‹=æ ¢;Y¢oc. ¹r`Z¸Þk{¼v^£-E©(vñ®ÚoÔÅ|©ÕÉÙyÝpÕ®m ´óS§ˆY%+ÅÝç?oÚm¾ÑÇK[É[Ãp,è$À¼eŸÍ4y¥O:uïüPŽd/Ê -í)ò û3þž¤»m«… ¹eê5!Ú·þÄ‹ƒŠ‘b•L—_e»Ç} -É—‹7?Ø–¡QØò·L•æIx„­á9=ùH"³N{êëôwµNÏÂqå})qþ5¹R¾³C߸ÁÙ·yŒNá|ík†’â #ò¤Ó©X-#ø¡°±›ETT:Ìõ:Æ,òè̯±+JXe·DŒ³·^TJËrà>û+}=C öOÓ)ØUؘ©29wº™¡è.ÈŠ;˜æóŠx ê•θa^…zÔÞ¤‹Óº¶” 7´v¹är%ïIàQ†W8ÖS ßçNñ˜·Hû2—y¨ìŸ }Óµ¾ÄØRÈõÄVI™Xe¹ókõ¼Jž[8b³~R°«X6SÅËâíKy&nͪ@ªþH(nØ"ì}_¿8†ÎÍ›ìŒæ¾t+Ǥç˜y/o2È×nf û–=Ž…(€“’òÚ8ºµTÅ¥}Þ¼X›ßx¸ÃOù5Ñ^jYF”n“¤½êÊ…ŒO ¸a¬ò>—_ •bƒõI+pÃ__¦À€‰Ê#ió!ýu•*gªt…§GµâÝX§–u0ÄSÃ?k÷!#!ÊÇæ ô@'ØçìñèŸç$o™˜ß,÷Ÿ* -.ªºžú( ô1Mâi½_qìËs ôHÑô‚ÆÔ$ù ìJwÎM ¬rnUݪܙimÿÍ‚k‰sw¸ÿÜ%ùÙëê>؇+öMÐü( -2tƒãjýËÙ;ü¯’®]↓Ä?¯Ü -½-*f¶ƒè#Ø *¦ ˆ±3 ¸G¾©dô}û:_G§ñ˜&F`€‡ï°×šü×Éù ¸Ä>ù''/®¹V³;ºîFžA1Š7ç£ p]({yU¨2r‰ qÆd—šfÈM° „G¾*ÍäkÚÆäŠ\²¢ ¼ vqӌݠª8ÑH±ÛƒFîÆ¾žÍæ–uîøAïE’ãÿðÐð°þ•6ŽÏIF7rŠä'¹§5ÎQ'ƒ¸ÏSgÕª‰å”/n¬ÄœŸ áPˆQY¼)EÐauÉø­ÕL[ôÍ©fŒ¦xäQšq‡yF_ K_/Ç]wxæ‘®LOâÂa -Gs±^æçÉdø¡Í3¥G¥Sd]Hu…p¤÷pBÒ!ûÎÑÞþ÷¼buÔTB÷àM§=Aæ‚xUoRSý¤p…(V`ßÚç©\û<‡Z%`¼ÄûTŸJaáÈOí¸‘ÌW •GÿH¦_ª®Ç7I_±×ôW”ˆ*¤Îm4éDºCw‰_ë#ö±ÔÙt -ôtó0+¼A“Æâ”ËÕyê*xמ¦ -A•xnà5þcÜØ¯w*AÂ%×LVÍ'#Y­\ù…ÖèK /}fu÷ó9Ë-#ej/Õx˜÷‚iËr¦iJ›3Æõ *"ë–ˆã›Iêû¦‘ï¥ÏQj­…<’êìË@“ÇRÁ’}þ=¸¥YºmjúÇ£ [Vc–ÕbüìîzŸÇ-_†VÒ8¯ Ę̀®lû—j‚0|΃"¥èNûÙX¯"?¬ù8­*SõÓ^vs/Ç'ËÖh¦§t`ªÇUœÐO;–s•O¨Ú< -Uj,¤ÇòÕ$H¤â…臛Ÿ*‡·[Æ¥KÍǹ×Ë€,>–ä±e–­fL|ÀÄ>jÎÏKl5Õš~Ü1¹†Œû8ªÕ•©Ü§pBŽÒ ó5Ì1QÒ§:àâìÀNÿ¡÷¹X#Œ˜ÁK²Ÿ%³LÕõdf×­hÆ#Ç©{R÷z»ïɆ°²›™P/OcÇ»ú͵“añÀ{H­“:Ëï¾ú¤JÃãehú³N>ñ(\E¥;þù‰²ªŒ `:<€‡gaËô‹}ýóƒ²eïP«ã>gȨ¯é·}þë¹U:0¹Ôö÷l)lÝ5òvÉì5Í…tù<JÉH6ùÍÓÐ…”Š,þ×7’ã&ƒª<¡×â0t*_x¬¯"Öõ€GmÚ¬Hi…åap¯T„„‹/Îjî´jŸÄŒè§í¶Ĉa]Ö|¸ío¥7#c);`S«½Ý” -8;8ÅþL·.9îý˜ß£‹Úwqg⌚ª„¥É6(É›”ßÞè!µòo@Ú 8KI{rvpÁΛPÒ­ª<0P _úÉå±eë)rýš3šßYÙó(¬Â(kE;Ù¨Y¾cšùübRÎi‘é:ççЃ#’<º1\°VD!šÖŸñ˜¸$irþUú¼Î{Th‹gmVæqK~ôOI"$DÀƒ¾Þå¹®‰—ã0&2¼t7€lV‹ÜZ'uI¦tÏ™’uï‹Gx×Ù™‰ÀÔÇ7·gÌÅÏÍÏÛãfß †÷äsùAÔ¥“?Ë{Ÿ´ô­§±µaqБCcu­Ó8 ¶—kxñ6b^B4!?4ôŠ¥¨sëw«0¶ -ˆðnn£tº‰l™Îbÿnúp…Zœñð -¹e#.{‘ù'¾ W™âé/CÚóÑÉ‘nX(ÿ©É¯ùû<£)vD»‰—@—²,]×¹w”RtÝC~ŠÏûþ‘õb?ö•µ2xq/kåj¦ðmœêªþôz\Œ†–ÿùB‹üdFÃLÉŠ çC<(ëÜMËÍ«ÍõÒP cÈ[Ü /ã(òIüßÄ>]8—‚½fsd€ÆK÷U+!ý… ÊÇÀö¾`û#Q"¶û~çJÓvóËü,TeЭ¾–]‚€¥.….JY+K#zí.ÜT‡¾Ná3å½’¶ûšT©³òkÕ._åg‹•n 5(*Øir¦œDxH­Œ«‘p0ñ0 -Pü@DrçªÊ«“9ÔU†}ßêWQ°Î‹l ~P¥Ú~Y_Z˜¥û¤ì´¬LñHqV*fÍ—¤l¶‹ldÏMÍ^OÔw:3äN]1±Óö¿ËuÝ:ÑHÃú”ô†,ñ$Eþˆ¢ÛÊpIþÇRÿ&Š{¢ pU‹d76HbÆcõ†j Ó -zù©v|!ds1 ó´YgQ=(ìyA$Ý«½7äünkß2Ïú¢WyId-‚é³ÙNYÕ†æg´£_ÄÛ0XÊËKZ{ýŸ5ÕÑGÙ²4æ»yõŸõóÛ:Ãe UOåö^¦ϵ‘Y*+jë uÈf´¸ÛiÜiÞ`6c²%ôdè”ÁBÂ-’¥¨êYn…o²OûÆûòëY•ëGp?9þ´sµÙ”çÍzMZúõ™b—z¾´Á ÉüŽfx>SÓGÿ´à6þþUZÆG#Þ¡fÿúå\ -^™›J -ýô eùÿúîþþNÿTÿúñŸdÿ\ -\ `Eo ]˜Èáäæî·Sœÿ©b>Ž¥a¡ýÊÇ[:l¢ÁúI:=kÊÿÑ >XÈÙî®ÿÁ,O­dŠ2³3˜þ_G£3˜ûW=]ýó"—NHÿþR+ÖO,¢ýÏ6k·\Êsù'FÈû3úõýû Ee® -ÏâÍÿùõ< `¹£cý£ ¢TÉÿþüÛØRbõèIgÿþ½˜alžäp§ÿ©‚úžü)Ì”ÿT8)™^þþÑ0 ›£ÿß}õ²!$'åk¢+]ýÿØyV]¢öì§L¸˜ÿøá׋`& - œ“Föá×À; -¦ŽÿÙ€nO:¯ÿþß·’YûS øf¤dÿõ‡I¡ ÿä|SÍj/Sg¢õäŽB¡fyLa œK1F—ÿÕkȘúdÅŠmQ6'>X¥F2—¤jO+N·ú‘iT=WÇúÿþÔG›EeúÔÂmKÿþʹP ¢¡aFÿþÏ5®je¦¬o]à û2ÿþçÖǬ7“ñ›1ÿþôKùðä ÿþâ“ b´ùðêÿþ¹f£òõidMôâ¿F'ù¬cÐe0ôÅ^dâÉKGÿþŠHšô”ýîÿþå~dþDZÿþjGlÜÿþðˆÈGg¢æñÑ­×È›Z ÚȤÿþ®Æóþ¢ -]΂GÊÒ¡k e(%ˆ@R›ï ú¶ú“²àº ,¯fÄ®ÿþõQ"&] ü#ûïå(gûîúòKÿûð O߯¤[íþûäÌkGÿÚ¸ úñd1“ÿöíÚI(•D*ÎëžcLþâ¶z'5ZõâüæôþôdMÐÍû÷þ0ÓþïÍËÇr 1çZùõôóç­ÈbãÎeæ“[ÝÄî:ú³œÿûïÑ´I\˜³Ë¯ÿjœ¦‹¨„–c€ $H‚4RÔÜ€0*€F>B$(’ÆB‘0 ˆB`( ‚‚ -¢0ŠÃHÊ9ÛE¡ÒtøfãS¼H>r[C x(ºF£‹ËÀ )$b!Ó?‡êôðØ<ɯ#n ŽJ\ŠÀZ}­õ<ïVã¶ Zb)þ³Îô-É!¿¾2Û«ôQƒƒ?AºÜ‹ÇC­ïW€©Ð -_~=Ï%s…êþmÙÞHWñx|-ã`"ó¬bb©§Üê%ç°+ÞtÅU¥é>ûyœAç}„@1ClŸ‚DȵËѵ(0´H…PVæâ#h?ú²SšêÞ'Kž».í§[†fRë àjýZO°yÏx”`± ðÍÍáM×Þ°/À©/kQ~S·Xz^w“÷òØ.:âÒÎ)|’ Æéù‘Ì¥B«•ެDz_càuÄcqVÜPa0‰ù–G‡g°8ý€›ß×­Øž³ðwƒ -v[¦»CªPkÑpÁ‰ ºVª'-yH7RgËnŠ‹ù-Gón¸ì’™äÌa¡BR@ðÙ ¦»7à u !êñ8Õ:+ã¸õóŠNÂjYô@¶µ] 8™¾FVÚÏó#GÈʵyC¨§-ÉxL&ÏÛöÐÓ ± NøP5ÀÊJâf¨3ÖCYð¸`ŠpŸh˜6¨-%ÙÙ_p [z•”áSfsËËáÄÞ*zì»Õ<Äcšj™ŒžMG´Ê!‰&¢–U¤Mç^Í^É0 ŇEGˆx)¿Ñ”Œ–RX˜6‚¾øÒ1¾@žûX½Ðsú§à;>Í?5C6”«Zãá–‘$K€ua?aA„S‚Z}LÝÇš"r‚?zˆ*0ei+:RR»…!¬–Ÿ^"„#ñ þ nEîs:MkÏ“õOE>é÷ñ7“ŸŽ‚T+–̪(¿¤ ÔÝzoýÓ½Ù,'d¤ü$_Ÿ‡Àú䊱á-+;S@ÍYê €“/?„زj[üRrl—è³ 3Ý—ÚúM dò3p:Åx¼Ï‘þð^’y£xv†H~ªWyîè×~½Ó¸L/ŸºCpdê- &‹Ó-Ñ r¾i¡Ëav䄚Ÿû"eò%y@üo¡MwÒjú˜c%Ιó¸ÎfJäÚ¡~çeüº1ù1¸# 7ƒ=îoc ߈j?N².­ºŽj!FÔQt懱l´Â -ѹ…eQË +­Å<£ÃÄvµFò˜šÙ§¿:WTM/ ÃÖN]òFòÊÎg õóÌ¥<ì ÃJ‰OK«i|Zê„Øt¾Ñcÿj•láê`z HûÄå§²ˆ#œ8h0޳Å9 ÛÂǹa`»O$Ó­Ö:ö~þ=Q*K ¾°}XÇ,'««Ë,Ûl¢c#³L~FƒÉÁ.+±¯ÏFñt5xZž[¶ØìéÏw“Azæ× -_áóÄdP:dSlñß×é^íÝOá:OjCÝ¥õ¨[‰âˆø~ø€VÚù>Êàßó¾oè”Mt‚½0Š˜ UÚ qgÔ(&-Ó¿eø%†‡±©B¬Ôö<í©A¸c˜£ójÈ}T 6»Znœ‹°ú·X`X”à͇öX1íí›4àÂV[Ô='î+Ôlbq]~ä¶eDùŒn@”=‡6ÄI˜;èXiÖZÓ¾»¥Ç`à}™NŽØ~¥VIc` t€"ûåSO¼¦‘ÉÔÇý‘«ŽéÄ6 - -B…ï³= Ó}wÁ¯r¶vèÞw@ãuBgÛX?-åÚ¦ÌxŒE·Î!uxÛõÓ™ŸN0ž[ÄV€¥Giiçg?skˆÐxëuUÇ–7–”ÉR™ë§'¯í«~0e_(H~gÜC*~ñ=WàÑlô &ùø÷rÀƒ©VÉ`r¼¿æØ³n)Ú -´o®ÚKl«Üû¦ðâãúˆ}Qîî°Œîªh„ê‡ô"³££øñtQeòÓ6)ó¶£›h¥ªws½¬¾{Á+Ò À¤™=¿Á4Íä°–!¥a@Î_±9m »ÉG€K~ -³¯aU‘œðÅÂ,rϸ™GǰYù¨ðƒ(îã`ëpÒQTä+HMÐD°úJŒS¨÷=â÷Œ->Ž{›_·ÓçØè¨T¯ÍQ -— ›|THø–¸W.BÕW° -ÛŒ‘Ô5¶ÆŒ®h’tÚ¶ëæ×6¢¬õëveÜt|ÌOš}Îvæõ}tÆ ¼ôÆ(â!)ˆ´ùyq'¯pµe®èÉO¥MØ~?¡¤µ¸¢VáZf4•åТ+?rŒØªL~Í*r‡£²G\!Íò13P7ø¾å·eÜüüS›àoò¹F4R4ã«jJÓj$aNdÿKçxœÖq8ãëP(y•_PW¼%¢p‚ð±ÃNóÖGe~¾¼Äñ##«ÊÑV~Ã|Ào>NÅ(CÀBlj yBœ]öÆkÎ&ZßÉJ†v=?Ù©òãÞ²GEÙ.ý8Ý(~òŠÝ¬¥ñ–ߤ®xh¼Ç5i–ÊúêJUë ]»DNß-/ñUíW\f‘RÜ7¶‰3Øby$VTâŠ;ʰåUg¯¦55qŸœÔï1‘F›¹LƒCte2ÝaW–<%û>¹OA*ˆDßœÇN+ÛÖUÖq0y5ñ`[wq ¾lWô¿o’£¤Õ²Œ£H¿o&%ÐÈ<ôaHtµL q^ãZ¨ˆÄ]%hø$¶œ6E -Öç4fùi[xJ°<4!En´ÁQ8EÑ0ãíÌãMÜgýxά_G%?=UqÕa¯ý+@ˆI3ŠGHЦo$T2øe~ bp7”¶žø©{D ‚óܦ$“NùùægõJC|ý³~]S–”ütþÔ€ý¢,—â#KËÍt ï8¢Ázú5äöÇ\±Ó!°ê×øÑ£:'ùAO»h™þ—;ž,Í—T}(³ÕdÊ0ÚÃüÆ;~g ¨6Á~Pmª±uãðh5™z³dà…Ò‚±TùõõqHV9RT³1’¯ -‘~ôlmD¥€T§jñ}éiÙ²ÇêØ\2°ÛS¢FRÅtÄ•$ò¾ÖÊM™ŒiYäh§ZŒJ€#$®|Y#xÄÀ¥ÐVCU aQ¤ï3Œ¶ÚA ¿7†ÞW£}–#£îãt¨¿µ—Ì‹væ¹¶7Þ((£>/¬ëeë{A‡«m« M 0ù&mò6?lô¾Žo1fv„Oßg a³(4º¯vÐoûÇ3d'îˉ½ñ¬›Yü‚†t;Ë]­¹µoÈA¹4ÏÌ£Ûß“^CrM§&¿Ôj8lñ5^V÷L÷¤5’Öqèe^'­8~]t<·£^í}¬×ð1” êsƒ å’–›FŸ =èoX„8PóŠ1Yñ·:_žD!Gfpã(fcË&kÑÆæ§u? YðsVPÑ÷]gYDÖ„›²>4G¤öÈŸ;Ô4Vª?»@B~ õvFV Å»´ú·iýV‰¤xߤ†,m×qàx0àègÜLB–æÜzÕ£/ŽJ~‚ë|!õ Òrùµ›SžCñÿÛ‡_k'P)Ocx~§1màP ‹Ö„5žÁÜêi^{ãõ³¿«YºaŇ?¹Å´JŒEêŒuºioZ½<³pò{VÅfÜýh÷¯JX>×òœ'ï[¢r¸ñä²jIýñ^\–…9Óô@F›Vä êeÜÆ—1©Ñ­A‹ æ§t|s‰ ¹«’½*׫åaì4¬7j˜L òcÀI&ßÔñIÜ—íÌÓ5Ñ#ú¯DåÑÕj¤W¥ã H79FÈïWP aW|¨þ†·Ü°ï½Ïò‹£Ê°pV.á{Ÿ7måK&ë8ú÷¢ Ÿ—œ4¸†}¨ä\y f²½ïJÐn»ý}Fë¦!,;¿ô©xßÏà*•‡yÇPœÙØßàÜÿÇ,›ú­%³D­Ä»î3+/Z¬ê_×2+ˆY.›úGxÝ$Eå—68by`Õ­çGïZhÚ±Ê&F†~×µ¤ï[ýpÒØ“KÔº {V²yî êwÀ”þ5œO©#QGL4ºB¢0ý”OÏÓ¿æ­ÿæ1‚3n£Öh¹oã Ö$¦÷ÖüüiC¯½ñÄ@rýŒtNÓí$ tð‰Çó0Kv{ áˆlß§øqMwAùu¾#’ªÌtnßÿjyõ¦‰ÌO!‚JI¹þÖ¦®G–lõÔ"¿Í%ñ1•Žçö‚Z7>ãí±—OóèÄgüµVÔµ¿rÍ\½õâ[Gußíé¾I6 ”å¡êÇÉ’-ÃSa\tC:7Ø«ŸÉ`BlÞ¢£àyîyo£éò;u(KLÄYABcÙˆ»R~¸.}Ÿ+fÈBX(Dú*8Ž}ìü•†Ä”‡¦v2‹ÎÉ@¤˜tž>"ðß¾{yÐoÎ X¿h<8=&ÆbP¡ 3ƒfb2x­ÒV=?@¸¼ÿQW¦ì(j&æX6žq"Lìi~dátx söéÙ…j!ÿ/,³]„áìÕ’cÎïÈmM7ȹª ?< Ã;ã‘é[mzŸÄ÷<~îÿìŽÄþüºàMbçR  òg篆£›9æ6M L>»½$›<òþÑmW“’n=Û÷å§>áq—¢”ü<Ïã}<€ÇX&ıìy¨{©›ëw–I r'“)‚üöú¾àŠ%9Ri†T?›L -Ì'…õäR¹Þñ5€,ëzjÝä1ñCüï›"ƒš>ã'È<ýá‘›K j“”ôO  € -Ìüz3€†'L -±:D2pCIâ`lêÞWÐ l½â§Xδ8MZu‚uΧpÆaž~!ÀØ<ˆ øû€è^Ã)«üV4Tas'Û=ó@£>‰ÅWr·gŒ(nÖ$ÌïXàLá>…êŽçö‰\úK±Lʇ(=ºˆ&6u%Ž.7ù¥—Påòñ -*p¸¬,”¦ÿl`†ºDÁ¶J~ûš½:ä§+jMr3iê`Án8¿ž`ýîR¥›ÅL!èÞçü_œes]0%ô£FsÆ%“}«£[^~/é¾=”— Ï?û² _ 2%²æ=¾“©“•À»A~{• J9ž,Õú}&Òû¹Þ:(x%À‡ñr[¼ï[ïŽiÅIôò“%‘¿)ô@hyDPÁ‰†Œˆ4qrá5Å:'”¸©Lú\Ô7’ÖýüÀùvÇFN À^ -)àü’ˆ¿Y*ñ‰ëµ0›«Q.E3ͤVyMò«µDÁŽºÎ[!ÞDÛˆ4ˆé'g8-5›zDVh~ :–|Dvä]¡ÏÄ|–Èæ!JE~Jô‰êM~V+¡Šœ 'B9DùPu µÛ‡¤ máŽB¬†ÞßbÎ׿),g¹vËN“Øb”ô[´*[4³ý ”ðsn¥£¹P-p@·V…’åè5-›‡Ð#Oõû£Ø®*müû–8Ó÷ÐI‘ëäÄ>e¬.€pŒ :E¼C@"rþ""FÚ(BÍV3î³¥FÐýšËóÂ9_ÒåˬÂOˆ÷´—±’]H#÷5‹\ „m‹×…Õ*¤$ù2ÿøùAM5FTJ·=4×rÛöÐT£ ÎÈJ#%µ:¾©Ö …\ÿ£eãzyµæNÚ“:küöâ°*’uGmr›gù½É±¨”¬ ªKƒê.Q Ô- -Öò;†Ö9òôU-oQ“‡f·|ýÑèP0Ñ¢ÆY¿ RÅûã5@jÅó¾÷ÀàhXà3ÏA‚ÆHgÌ•p@Ô[fñÏ:`µkg]Nüý}i‘NiÄØbmüƒFé}~lå‰÷áTYì¾ýèÚýƒøS‘(OJ×öÕ3Ê$A' Ö–¯¼(™ª¸²°ÅÕL3LÁv Úñu®¡ v5x¥åmøARa÷/+?Ïaùý†3–/PVa|ßDnÙï’Hx‰¿xÉßûkÚf'¾ú!¯Ô¦ŒZÌæé¹ÏU3Å3£ - |É6a -ŒmÉW>¼À‘hÚÁ'Äé©÷¸‹ÄVìtæ}ƒ€U¾êXöçCoww<üiÍݶs“¥­{DÕVGÉðôdév½ßæUþ¼lÌÓòËVF"uxž|_–tÖ_áWâ¨4ݼ¢Î5-uŽë§I Btù"í?GÈUB2™XGe.Nbˆ‰BéOŒòaú©³Ð‹ ýyÚXð)ù´<܊¯”Èòûl;3F&$Ãçþœ¿ ¸ÍçXÍH‘Iœ­þÚN^²•AB£óè\uWZã7ã(T­8¤ÐÆžóøäN2ZuÙ6 -#Wù’Õµ©îuoÎŽ¤?CN4šž‹Ô ½@ W¿Oe)w‰s!“X˜²v5Z¢÷lÔ½–$ê-)ãô½³‰hÁ™­åáà‰i¡º×©ñ¨}¨/!ü ÄÅÒ{z ב¯C5¾þ·¥ª^"A p—€2¿Üá‡) À½Ær÷­¶Cj\ÛÁu ¡öÛ”£"$bzdQEÙc¡Ñ“ד‚»Šä=ð&¨UŸxÚÓ -Üê!X°gó4À“8€˜ú¤JüæÃ;úgY4aï¡X5tèc‹¸š,óèÌé‡np1ý! ±Ü‚…’‘§þN?ÝéKvcu¾¶POŽ¬Ê„%šÞ*‹´D *°Ù±á⪈úù;ôæ;]aÊÚœüô›1WõãéÇ)üÚñuh]°[ël{ð1SââpÁSdšý›{v_A«~n2(…÷•ò|˜È¡Ïæ+ Õ:ÊÅó”ƒ OÅÈ0Ù Œ[ufÀ˜ü »Û ¬-O®ˆ”Êß `JȪ^Ë1Y‡ØøNÏø+‡ŽÐ牞dŒA!y -«H¶ò‹(¼÷rØ ß¿Q޽än½fœ«ŽC¨d–£`ÀqpD‘äHÓC/%ÉÄPC!ˆ‚(b‚  §ÄÚÇ8Ö}Lx8÷41Áñª†Po¾¡.G@ŒÝ¿Ñ¾HïƒkЖ5À1}¹O %¹‹°äCá7êÓ…¸qnÓÛ“d#쬰¢• à=»oN:i™ËjJ¶Œ  ñ0XGoá¡;üœkþ´*ëÕiíÎ÷Ýä6‰š5¹-ñë/ŒC¢îy&VÑM É#ž¾"¿èU‘¸°_>ë@Ùû=ê˯r.xÍj]1Q¨ÖD‹Wü[{+—BiUDAš.$óß³¡æ× Ø×œô»C—}Æ8žºè¥·Õ>éÞglžöÙœýR)ÿYiië šBµ¶íHPuyq…ü®½p/@3¹{Ã6’>ˆ­²zÁØ6N(G$«’¼tclÎI‚+f[‰¹tº¢㢲OUªº…Êt½S Çòƒ=Œ/¶-<#ñ2ÇlÜ+ÅÈà­`t“²Óúa›EF¢ Û*ë"{AIy¡@›(ê᨜Úä^Š £ìÊ\É óÇAËÞ -ÅÔ¸¯±2!¿|&P™†Wæ„[E‰£}j•XNâ±ø} …n »¸i§š àÁ°ýÙäi2~b|ÉÀCí0#p —×ÚëÇ­ªwhm9H®õ¿'ÉïiEè#¨£’ƒ…]8.?Mœƒðxï`º™ò^ÚÚgR\ع秥“2XÎ/úB§ãcnÍ…÷AÑâÖ>'Ȥþôô&s܈ÏR¥µ4ñ$^°`… yÜa0-_ùvË{-S?÷ùöß%‡‹4Bm ójÐü+¤3³Z;±Î6 Êw ¿:žÔ÷qô ÚͲ« 5º„6²‘­^– É$üÎîÈO bU PˆÏG˜ï“’LÕ<Óè{Ór1Ió\¥à¥ï{Õ NyË9é¼Ñ»Mþç\¼GßaDEðõí$’o4‚ÌIÓÊÕ¶û4Sì+a8|{Ì@›NGú ÑB rZ<¥ KЫ•]Ý—4"¿™‡ÁBdà|Tys°a´*‚½ÒM 9§ðK¼2}™ÇŸé¬ÂR“Á½ºmXæxà7÷UÄÓÊ\äO¤rhUÖÒ—‹1®ò†âK7å-SgFû VÙþøã&FztôlA~Yb˜š­VÕ(Ožx•},mÆ6&Þ!8wË„rqÎ2•Þr”7†Ò7Ûr¾3rÍ…zZÇe¹äLÄßyZ*Þ™AP ¸ —Íœªts¥}k¶Oø­•0ÛЊA«Å×:X¿¼ÃˆÐƒñ»ÉZSó]ïC~œc@¥[­t»P¼ê/±-á–Îqj¨+fFœ„Ÿ`Ž?–Ô’µSÃ]¥ów6ˆT4gNwT@V,aã´òk_Ê@fæp†ä‚¢·f—F¢=Á O•ȯ@ h„Üæ›üS·ôaüÙ©€|GÚÚ„§œ'E©óò˜y´Ñz\¹ÈÃÆåÚ•¥'„u÷FÜÖ©1.ÄxÇÎ fG¼^YaíÓÅ›V]‚G–²S ïÔbW. -ÁÀέ_pÇ0-Djêu÷u4(f1ŽÃô™Coê—\8T`ÒÝÇ7™©2Âês*ÃÿA6–ë¢äçÏ(¾>sØEÞß0)ÏKÎvdL,û!(–!ÁòÊ'yÄÜqS¨€’¶‰ò#}sÍ Ý׿‘_ #¿[| µb3XcS©Dº‘š\­ÞÒ¸žÀ ú©Ôz&Ý/åÙ’MnÝßÏdr ’—Å>6×j€€:¨:¤*ɹÀ}V!ãuå´"&†q~Ì™Ds­þ ²I„ -±U™¹)Îîë Zña.éfm@Ô»êçVAB1éV™³›ð Ù 닊¤]6*ºíºKòHàÅ ûír’<ÿçPP'öÐì##öq«ç ÛCÂt#}r—AGÃÀ)N:*¡L"¸Œ 0 ¦»‡¢8Æ&"¿ e( %¯|——=@¯Fog§xïÕqWƒh°‚•›yî¢oô³ ÈÊ5B¨ÝH-â›áDâam<¨ùt¡»!£>êüp‚>—3'K–öAÚ'žö1‡¢ñò©Í„qW´\•’ýÚúîn÷u#ä—W†…aM­–ÑX¸Œ9g‡Yé¶=©Õ¸-Aï7‡WåØb§½Tª«/ÿÑ®ÞF@jAeX~Þ,1¬ïúû¬‚îFòi±²;:ÄÏ÷š$d º²*Ö—+ç'_rˆì¾•OùÑË€k†Þ˜‚Ç —¸#aE¢ÒÍs•ÛzT¯t7ÊVî—"ªÏÆcFž—”b#t‚îÎìÜdtÃñ6áÄÕguÅr“ôv—‚³ÌÏò`Þ8:"ëØ·¿ûºk%¼o¬ KAÙÔjq9FÖ -íÉ|þx‹Ècê`Y©:Bø–ÀPî:¸Üxù&ßüþ¢?ˆqb‹-Îî& @”³9‘ GŒ*†Çð~m goéwç'ŒšÌø%wT>’ú„G¦™#¿Å`ÉxŠ€­àN‘de÷z-æ`Šmá¹çù&¨qÁÆa«“Q„”Mƒ8‹›ÆŒÇ˜´¹½UÖèð±·Dò\CœðûÓEûÔ«àw´pûá„$Éëc–‡„`qv ÌÏ$Úæêóð“˜}MÊŒ³¤{—«¼nÜ DpŽ”7J&ˆ®|(µ_‡E~¯yÓš aÆT~j×i2Ú¦•d‘[†ûð´*Áƒ}Æ:w*~È ïñS×éàW‚üßOóPé•N¶å*ß-®VQ$?ò|ok˜íÆ~?éÞй¤ä›f7{;tëRé&Hh€ 2';L+åü¡$HdN€+£P-c‹€A¨”n©4_Rˆü>h l I]­ ŽüäèÖäõIvMEM#kF%²íû&¨–܆oqÃU üúšiƒÉ¥_9n}è!ñ8…ÀWNê&ƒCãÁ©ñ0…7 ÕæaEßÀïF~‚·„<ô;{ã¡9[=ªL¼–ËBçäu¤ªåÎ4À€¾ “†(Otõ`Db8Ñ4ŸN.û·´äÜ,:Úå¤t“¿É]_å(´øI}³$„`ŸÔéXD̾[B Ž.i¯Ÿ>^jõ‘ΠÓ@¢.‡/É-1´<㽚os¤ù·P£y¾s+iݤ 4Z#Žj}”’Í,}㇇c Æ>3vî;žAÍ„ý“·)ª¡r˜ûÿj—ÀLÁ0,ã«t&QìF#?‡Ê”6 Ñ×µÔê#¡ ¼ñp¼2ûxç´0ôM”ßÃà/«¥oB÷L©‡70wP8º–JD",ç0¡ªÑè¦ wh™‡#’&©¾…Ô>ѬúeÇ/ã}À.ƒÉ”²tX¤R«,nay˜‹P¤6R8®)KLÊ@â@nѬäKÂ;pg¹5<¥æ¹˜ë&ãøJyÆãf¡‚Âói<û¹í€iÍkº…¤äG:•F&~ózÖ X~©3·&á±çyƒ–²[>£ç«¤oôø¦K³^4Ž¥íÒf¤¶Ã.CÅÛ6ñÏø5'¾v„ãA?‰Çížžz0(”|2€ñ¾Õ”H}‡,ÿI<¾¿ø }äç¡c²f§ñè†<Œ=ÊöM[ü;FËȘ]UŽoÂ1À|€1<ƒñ0'{oßËíÉ€)± n’åa€MÐÛ$£}¿T)1òÓã4{#ÐÜÆ¤ÿw>¨Ø(§=Qt€²*ð×f°‹éÙìˆw[]Ÿ©“ ðæµŸÝ*ˆÒð¦±(@ÚxHZ–x4<°úëÒ;DS£¿~üù]5k;?ö„<œi¯@¯êò`RVÙ'Ø•ËèJ~å–ô|•7ñ`¯èI“à¿æ»¯•Á‚²„h$ÐRb«ü -ÖH=Ú6=H²Õ`ùárƒˆ–¹X6ÄóeÍ Mã•] WÔØ¾k“4.§Sæ ò QR§· \*4a' -Tñ’kN)U¥¿!n& å§u`à'û‹Z 7Ù±ó•2 ¨¬[_Äà6WãÇÄ#¿‹+u…I­_#Ÿ`Ó½_lðau¾{°YíÚ–µOÚ[VÓìŒC3ɉã*¹ÖåGÛF§þ[žÛªÖž»½–xs,»û׬ môÿZA -WÃ6 ¥'¿™ä‚e,4ƒÁ<£xBÓ üŸ¸Ä=eŠ BOœ¾€92©böž£eYK±d”u€cCšk¸‚2‹fåáÜ%9ÈI÷Ô£>'rPÒ`X>½ûâéQ/L1jG‹ƒÍQ¡ò¶sPE½ÇQ0êoíñ'#í‹Ã¸¦5<ík’À—pnšA(T1™˜†DÆTý¥nVá -R3˜ß¾GQhøùÎÕ>t—† -`Hqå8¦ ÀÜ>ܦù‰·¡àÁS¶Às°-㦷&#_ŒKã%êÒ´Ï/qZÇÆ£Ì²/8Dä²ÛÞ¢ïÌ€U7œP†hK±^<4c<œ#¥›žS8­OQA}2\÷âMý€_‘ÑÝhã<|òRDáe)Éq*†‹çæÁk/ú•ƒö%¥PAÜZ“nƒ[XEa<–÷Al «ŒL²û&xiýf=87¤Ü¡„ý.}Á–k<(¿/£Q¢63¦²¹YËûr`}T?zBÞ§Í7‡<Ä,g•âÚ“F%$±¯^ýS¬öMïSJ¨\Ü5ëxÄdåD¤ØÖÿ#‹.|†UCøl_F«‡%sëoJ…ñ”ÂEç©jÜM ¢VÚµóð˜AÌÊpâM¾¿¾ôfåæîÛcã‘ötÞ2ò0 msË1aØÍR[<¿“_YJ~èù“1£‰Ú´d#%uCØË\eµ¸Ðx5Ð+J8QW%ƒàô;U)´—XË6€,ÛRõ‚™ñ:?JfB×H†XÜ:ŸÞ4¨ÄL*z²}ÿœÐ"ùý߸B[žø\ñî—0Ã.•sªÔšñyU¥½± ƒ‘aW-¾s&Á@š†ÆXožA©Õð‰ }ì‘ Im~uo±HVÞëÌ‘84?­ê/ü\”³oKtÀ˜ò¦K½D”ľç[—†Ü¶^Djk*Ÿ ”´$W\E›ÖnW>¼¬õ 2*¾å»ÄÌ"¼  š†ÓßpšRÝäk¬2*Îâ;w‡–D ª#qaqü0Š,\ŸÍÚòI~šo¢·^";¼F9ç[©óþ]”œåá‚n¹·?þûf²Nqé»IÇ{T¢iµÇ2ò z4Þ{;XÙùkKÑf¿ÔTÔ4X—î#9Db¯½yäœsY+ð‰ð‹„ò>]0f~1¾‰ºioÓê£}v1Ë:{F%ªÖUó[PüJ@­ù©Ò¬…öà}~ì£U£s9+àM‹Ó–*?ª›¾‹ß)ÜÇÜÛ'6aË;ü¤Mzß ËÝ´ øã•Ý‹3JŽ<Ҿ訢ˆAYbÓ…‚Í®¾øhã¹oN­šÅºAÆtêRƒ -1LÄñp󨤑ܴU1(¥÷Ù§“‘¼—sʼnŽMÐðÓ7‘¿•í[ŒÎ¥é› -ó¶hR_h_jèJÜ„NkDÔõ¥¶¼Hw1—s× C1ˉM·5éYÀ ~ºBöÙ9 D'ƒDyN3ûÁ;†^\’káAO"Ûlpˆ_߇ &¿…qôª~¼¢Ï‚PPV‹0øUØ${é ŠŒÀ$çh^O¯â©ì‚7ü¿öŨZÏè(Ño¾Õ¦CK½´ªñT„–8-K<ÇhØWPφ é)ÁÏD“_‘µ%¦ÓœÄGÚ¿”[-ÙFk]hF…_Ѻ`ÿÙî…nàaq-¦ˆõÑ æW×3eã%<œ»Ìœ  @ø;èc®]’^àôh€ÜœL~KÈÞ²¯[B8ÿ™îñá*.Y!L¶Jos@YµÇ‰ñë!µ«Ý”Ç<Ùs÷¼_ží=8 ¯ÅgšeߨVfÉ6ÔšKÝUÆm:Ìs‡ô„ú@‰ùˆ­Äª(Ôª3êjírmi„2§‡ù›j¿¢P” ¶€(/Lmusšl°]Þ„<5 !‘\,í‡6öð"N¥•@ÑÞñPH‘7¼%rnÂbé3&?%s™à´¯À®Š4!ÞœïÝΩe'qVó/l#Ïíe°ÓpyhQå »õFqÐèä}mϯœ¦:{ĪU«ñ¿ÂÞu™l0‰+Þ°>´üBÉ6Ÿ”í“jBK-\VùÛâÇ;Ðm"b -ˆ¾z÷1€™P 2ÀBþ‰N£Ô -|W%— ù»º_3ÞYR5(rFžŽƒF.·–,й4Âcµð[ó¾D8žÜ¨÷¯)ýÉCž>(ü©V™£Py˜»oP9ÐåNËþM;pÔªM,[À˜ìÃÔ´v¥q€¥€ÐƒÎ Rýþ¿AAuŸIoG’/ŸÞ? ünÊ£N÷įcmÙdÄo¡PÔi Þ=t"ƒíÕGà,BÌèl'N°Qr‰>Lÿy¶4e *M+qCñÐj•pVöÖ[÷fèŸÞ×û%r!ºbÝÇ@Šcàü .“_¡“ ì¢ÖW5´T -cxü> -ÿºÎÂóF~W1>Ê Î ÍKŠ¢VÇ!/»µM`ßk{M+€‘ç·§yé=¤€@;eãÝM‹l™ gqsïðËbæ}€NR=H4Ū¨³tG…JØRBƒß÷”4Ë@·Ãi¹(™Ô36Ô…Ìè"t Å´¦ê†=’úܤZø ,¨Z)çp’*ìûÈjŸGñD¿žl.dÕTx~çúoèmÖ…_^îƒjØ>“Zi %ÃÒ0õX¥· ÔÈ‘]“û<ÖÌe *àxÅcëà¹Uø `U”ÒN ÖéjY:Ì×7á ß½ÀÓ³ïµ$p¹+ömåWD¨¼jë¥E-ƒÐRć@âO‰µØ¼4Ú()‚BF­_}Ÿ~5“21=BD8˜`0S¨­TИy;â„7Y{}úñ¬Ù>µ9V­åGN’ø¥š§Ì±ÐÒ£°®;luɯ˜ªz8™ß•ÄË °©îm¼ `h’z”kÆ’i\0ÉÒ—fEì¡4Ø*|q~·ƒ0}é‘7ûkÝ2*J]3:wë«ÔkWùH8&÷mvNf¿4ñ¨6†¹•¶U|ý¼yàùí'ùÅf”÷wófYK÷dè>çï‘{†Fh‡âØÌüþ¹’ðÙ+¤+†Ô]ä3–Z/áÉfî1"‘Ï!;Cܧ~C”G'Éß„Y•ÖQœ<}$4¶P&„vUcËÎOËÒÜôaQÚÉöGãCÍÎÀscuÞy Š,¯9Ë:iËÊf8FˆÂ›'£fš¾\K™°ß¹m ß™§ó´&Ö”Ù9ݱzÃM¶QzŒD¨[˜Kê°Ž À  2ø5çÎRoU<0-J)0¿·”P`Cø à’pA!S<è gù…ŸlœòPÏq)÷,ÍôŒ__.@ -Ë‚:çiUÚØ8é¼—.iÄáéc—(Ò%mÊy¹æ‡ç$¹»2pæÌËiòð³p<Þ@ËíeV­&ïˆÛtÐ<ùz¤ª ˜ ‰ ÈHÔzS©Þd3@+åçžI%PË’£nh>p•møtñw*£eÜë'ˆóëÑÏŒéf>Ð÷(eÎO· ûn5Þ€£¢;@ØÅ8[Õº)ß²®³}‡˜„*RˆÓœoó`á«OßʇÍqW•8 I~¹â.‹/†2ã‘£ J,ýAØÜ[…E<7c¨+~˜ð¥'¿/:Ðm×=›Ó×¶ ªié¥]â"@Ý&ÈmH ¶?"¥P°qÀ®b}x ÎL˜ ›[2YˆÇ ÇüàñÕ{ÊCÖ·N±rœŸ-bÌþúŠÒ"FâÚ»tI»bÍ7¤óK@òOOòk"lp8€¡½…VãÔÏ~Fùm=ac8Œ¢NÐ$¿#Éã“ìS+Ü£›ÅÛªX•Ë=ûE„l¦ÓàM…&ç#<'KÓñ²æPoðÄx"À†0øŠ•–†à‹¸gÊàù7ÕϵVÜwå49óÃÆÓ‡¸J¦v=|#ð"U/9¡^Ãmo‡_ñƒÎû ÖaϤªVÒƒÓlÌ÷jnÎaÔy=²¤‡pÓ$[FoJ:_”©’(þ¥Yð®¶´òt˜ÆTûÖ¢ôXÈËO?ðPºÒ¼[³¢ÂNB÷jŒû'ƒþ”>$ÒûŠ™ýËÌæuµÊ„&ÈN«rjƒÌ -Æ$>Ä ¿l\_ Ї_ò“TgùJz˜™•øŽ&ˆ± PýVOå3äõíZ¿ÒÝå¼Ï fbY^[7¾=CsPf ŒhZ´ô @°³&¹Q…QÐ'û ’ûèPÜRšOTLFxAP¦Þ¿ô’G¦Î/%Ãõ¨ô=>ÑK°Âä ‰t¥nÀZ…>’J£ÜÄuj7 Wµ¢b!A£[–†ª$Úÿïÿûóðš'º£b²tÕ®TŒa~žÆß*lò°_£a]ÈKxÞm!;êèJð?$×:j©ç­Ï C0Ó†bó ؤ'×]Æ„Ož·ô´ÛŸHhŽ”ZÅ26‚! q¶nrŠÆ\¬åg­ ~¯>ö••æ¬,ÍÝó–ŸÈÎÅšXVŸª>Œ%xsõ<ÉQ5ünš¹îÝóU^Ô¼:Çâ¡ØÉÊ fÏb="îé£;v‚²+ı‚ÊÐô'ŒÈ³Ö•´’`]åÜ׌¤nÖK?m."* ÑZhI4¤s†ñ×Ò§íT¹mÞ¢ëPÄg1€öÄV»Ëß­LR_NuΥŧÃýL# ãÊÊ4*¦$`žü%dõi7ÈŠ£äÖ>Ò‰vãƒ[âð«‘ä³Qvñ¡¯ ¿©:§ó2ðÓêÓç&07v,žˆcà&dÞ^1UÊ kwž&BUËš;0ñùþ‘©y×PFæšç&îæ\‚§ôëØÎùž^åóqjéjU¿9¢­Ï-SÌ/´úüUfçz/’ d²cµvO–Ö\ƒïÚÎ4¨Þ}?)Ñ]2(&¢€Lk}ÎéÑÔÏ'¼ôD?RFÛ/“QÀŒþèl» ÅuSliýµõ}Jñ¢mÜ÷·¸«›?ÌÙE¢Þò]ƒz×@U kEÖ?‚Êr£|S:| t„ÀϽT±‘9‰3SaÇ«”k% }•6o ñ ³¹«ÑÇJEï¾AØË曽ˆ´äÿ<%vÆîmÙi±F(´æÌ59…ñFõ4²0.#ú¸Ø¥†Åêrˆ¥É`¡Ÿ×Ñs2:Iæ°ÐôŸªlZ«­&^XîOîññýã›ý\z&2îkîÜT¾Ð!å­}~_ç3fàñ«\ÑTþs8•ˆ„‘@‡QA Ã0‚ Ä0£”SFñ50Í~R7߃q_½ÂV,ÉÖzä§Ï`wIʹ'÷*W­T×pçLŠ‹:ëyt8¦™L=¾Èã5½>¯%¾C3×·›"©¼ëøÜ - ’QžÃ*VãÆÎ¢}N7ŒŽÉó3$ø¡&ˆN<ÕMD7Zù55°n¸º~Ò¬6<ü›ØÙP) ….£’öù–“B6{RÐR#kK~õc«#6›éН°ŽYE|öB[jd‰y,O -Tx_¨¤µ~n«$÷qÁ,’¶¬Þ(¦Ÿ“ÄŠÚ9ZÎ.Ú6õ“Aý¬ýñ#¿PpuáMOø~ë4Ý&œo]Á ë ¢VÍБ=—‰&‹yäàÍO±Ë'Ç;žÞ?GàŒSµùrò$¹"¤ØØu2n|ÍÉ.ùWù³dct“×üˆ©Ù_{Wïå+¸0òí$ˆ–}Î=·±»i°U2e0ÄÈOECê¡Ýõ ›2¬§;0OyPÃF@P€-ÒéiéjÕ<ê—Û"­·)z¥F¥ öi6Œ@äLÕ -õvWö€äñÏIÉ#"Ý—Ù¨ š^?L©G1P‘öGdJÅÀ…pñ'3W™ÚP›*4ÆÎݶcZèÖæ²Ö­ÖpƭĨ÷wµšõÃW¦Ì0—JŽC•1‰º| -¯D/û¢£mAl»¯aôÓësG…ŽÊâñPé õwý¨òx¬«1=XΦYH«m$á%¦&¤*ÔðD$à¬;e.¯×¯‘¢F¬ès‡Ï¿/—U+Õ æa·ÊÂø²6l¸o$¼—`ëxp§ø´óðÅ£-ûmrŠÞ¾?Yªê,ƒ×sÿ;Ëà&þ÷ÙI_oZ !Ýøî, IÚ2 f*!Á¥;$î’üŽn0c®a˜ç Ípù€a¡-T ne\zxåù†¢xJ‚œ J™j Íj -’iŒP1½Xùyæ@-™-‡îkâšæ­u?ø9 ñ¾¼´Cß›îOšÛ>™ ¾‰3Ù:B…Í{üËs•º÷i±ßŸ´îŸs}'QO&íÜ%o¥©þK_14JÊ©ð—" }gã墬@Zc¸o1Áº$ Å ƒöÁ§·ü¶ |$±¼¸÷UÒÜ= Û—¹Ïœ*Ï;ÂÒ}0mÛ§ ¥&R n¯æ«Œ•yx^¢},6ŸiÛve¿)qyÄoÊ€ŒÜ!D!~ôB‚Âd9„Å2Êyº#PNM¤dàSês?ppã½ãƒOÿ$G¯ñIÍߨxYYuá8«ãú%nÆû²<€Ü0²ðµžH1«qˆÅ9º- ›çe2…C4d´ÿ–2„êƒ㾡wÁõ+lˆfŒ³‡‹ß -¡@¹ÀǽK4 Œ Z¦p2˜°OÚ‹º/Èmký:ÖãÎ߆MôƒO+’$ƒ„:\6ðça@F»˜}•·çˆ2÷‚šWZ¸CVùO, ë7 *³+!¡¸Ï¹39²¹Sã;CUÎEG“‡©ÓÿÍ]›å#ó§±(ƒzîÔ+?A¨¡ÿ$uF4…Mî~Ç“±fîÅìÍ¿Cä§ö[Œ-‡Ó  Ô>xØœåÂæº… 5Ý@b6_ì7…ð¤]vÃ~‘HŠš|7nzB›aBgÈzÊ´ì >çq2³•_3 ÷gÈ7²¹Ï¹ë÷˜”¤Ò²sðiÏgú`v1YPÿ„ÄN#ÉÚ¾ñkû›TçI«ÞD&æÍ¬/l8—êï‡ÖATNfĸŒE'ž0ú9,Q½Ç«{Îs!gUÔzòÃ=Ž -»›Ð°Œ÷/†y¬+(5Ïý‚Eé"Ý‘S=†î§üƒóƒ•¤±¬ó -äðãííKÈܽÈëȲ"U¼î&(½‰ž,˜Ôˆð -.GFbKÂYËÚ"Z´5MÇ/Ù·;w†ÇnêN(q­cvtÓã)í|.kCuXiO©…[+ñb¸ÈÖ³-Aä‘Ri_e€ÅîD&m°…¡ì|Ê@@+¡-l®ÕçíÃa±©T$?üšÑEbûXæM4ðôgK‘Ï}ÍCÚŽˆÀeGå3‰7 k< ¡×_Ù*-ìoʸ/Ù! ·¹ÉèVíל{ÏS ; X¤2pÏ6Ø£‰N•6ûœ{o´ÑYÀ³Ä²vH´öm²ÿe#‚EÈôV ,ôý6 t±Á®ß ‹ü°.Y&„ëÑDó@Ň#ÃC1 ŠäJm†bóx ñ¶y•núÊÐoÄ Èò‰ìW G2Ë¥ñPiw’Æ}­Œ©ÏZ›Žðgœ*7EKªD…RNÿŽåI¡nC>qhïÊ!Ž,ž‘)cêËZ³£¸’úþ³"?ˆ¸Ä{±~™Ø#Ê.² Æ÷ù€ïÂEE·gJcî×E,(+öS¾_¾Sæî1À¢bßwÝ­êüÝ;n"$ëáƒÇú:Æ:MmÛR„ì[E²û(ÐãìÍ4÷é3’AÜ`gYgû×8{ü,{…æ êÃ{_Òé×qÅû¬ ŠŒ\ùÿ‹)P°öd¯&ÙØEƒ?Ð<ÃdsÙ†u¡±íO¢Á©&ûˆÂzåoâhú·üäYvÓiZÔà´ ‚oA¨€I'Œ«Dd8ì#‘%Pxô›r3¡ˆºåZ…’ÂÁõ«Ønt’ên½Êo«bÚ²«Œ0Œè`,Ä< ¹"r85œ‚æü…òZ¢Æÿ¦ìª³GœÜ÷®ý„4´uâæ¦¸Û×;ù¹û®}kdiHB—;3ªçs|fYi¿l€ ÒÅ+üìºÎ>ölðÜCXÝC×oýØD~~I…ÓhîtªÁsF¥©GcÍxC׿1WâéëMHÐKŒáo:u…JVE ÈZA™&˜º1[æÜjòO¸§4â³UtÂD¼›æfÞŒ#0«›V;܈>~ß¶žë`ÚÇáÅIb\_©ËÓ¯áŸD~*’ž<µ™âË\a;­•'ZfF>s[/Á'–úMÌÞ„VªøªÜ·C¿›xUZÑÎMu.DF3U lTÿªEöQ*õÃm,BRÈMáº`ßZ€Ê©*Øée2`ù§DhÔöùËìÚ]9Ù²rhE™ûóøÖ‘ßQxÇÙ9vƒÿo–jÜ€X¯C¹Ì?yK1¯ÒÏŽÂrÕßdÏÇäSQã·ÄàÎ!csÝÞFYñŒÏcÞW~,RI €¹—ú+ò¨§%_BÐÆoaÓÄwÆßi5¾+m=*œ´Ü3]&ƒ5OŽ~˜?ò DtcP ýGdrÛÍðc`s%%Z¬;ý¢½;äc¥wŽ -yÊ¡Ï>®Vpà ’Cgàv!SÔö›ÇG\´º# -'Ç_&Ó¾ó²j­KóP˜è^þÖfU¢`Ù%‹š¡ˆ!h_Ì#šËµ@È›%ŠâJtÂFÏ iýƒùŒ8IϦ~nZ/–m pâ=FI˜é¼:ë{51Pú)z¸Æ!ôÓVòßñQ³7I¢¶±ˆ¦ÁTð(—Ùc-`ÔäñP›PËuóËÌ…0NÍS›û -æDÅ}þEB»÷Q¼ån’Aɉú•~‚Gik|åéhÎ̃üMXé<á”r -ƒµ&È5KN]»} krl¨¸à­ï4Ulžn~'‹«wÍÂßÓ«j‡üNEØÊ úôö†KD³H œÁé"ïŠÏ‹ÓYd¶û˜‰yÐ’®E¦bŒYe`£2–QµnÌç%05¿æ-HÈ >”…f™I­ðë Ôãº$Ž\"6nK4µÎoàWx£[³<+‡~ô(ÇëÜ÷Uø)rkx¿ÑaÀÅp”¹Á ‚áï*´ N±¹ï":¡€S#ruA2(ÎnjÄu`®¹"d¸äQz$u'^(¶C8©B„”æ>”ŠûÌSh”xéb‹¯æ‰ü‚F€Dî2x5Öšn˜Lkã‘Ùþ­ -ÐGåþÿ7%ÕmNríÝý&ÅZå°ù:€1’¨{NÈf÷·N›Û -þw…’ÁåoÓÛMŸÊ2öÁ«1œÂ3¶:ûŒ¥ÈFØt¼¡—N˜íù~)¢?à€(v“º5mîxZ-„Ïö'‹$¬E+g.œÅÌw¥ þü–¬w¯¦Gþó6”Å}»×Ü;îÏ#haû ÒÌC~÷ÈË`·Ðy…Æþ&¼•ÀfÏÐ¦Š ¹d÷æ÷[­1˜QTm÷ˆëEíŸn\' [9£ÐÕÉ­¯ÂÈ›/’ز6[íÌH‚¢(hñÈŠÍš›"AÊm¦’EÁ‚¿éQ€*ˆ9ƒÊ7ײæ‚'1(Wô{eÊIn'~7mèíq en>c$ì÷4£Éã4óàUtÛ p9ÂIœtFŽé–û°8ø:òíž~G2ìëõëßXKšº MU -§{‚œÅƒd'6'­à½ÏYî*‰ŠP‘/´§½ïÀPñ˜×6T€ßA!B~m%XÇ JÐ ¶Òg>­C2„g9WYý‘2¶Œò7¨CÉg<ÊLph«}{‰%À¼ •÷sFà -C+!7q¯û€xèvy!sü‡l¹^ÿ@í'QH#Q¶LϽÐ5Å(ìµ -ŸäÁó=ñYS@rBÖM™(B•|qðXNÅ/YE¡ÏHå w:s³ícIùÄ›¤)ºWÎÉÝ7)ˆÓ´‡þ@“j%"}óÍ̇f‰s>®Tb4jd¿ŽºŽarØ“šØ¼À” ìK‘«ÒJï%lïÖÜ8•<ž‰êÚc4û4+‰©ú˃Œ©‰Ð¿3®\ƒžÅã7«w4‹tÛ&'| -ù½;™õKñ*.“Û†Ó‡,ñ›þZˆ -ÚÆ˜—À%Q98øÔEnuÐò<ÇùųKM¥}"ƒtÔŠ.E§…κ鶆R—¦5ÉBS,Kv‚ò€J;^Y  Íü1Ö’Ó­Ÿâ1Ù÷Ën¼ëCmñÈËÊ‚G‚S÷ýÅ"¿o°¾&"ņÙDÿt—+icâo‚ƒÎ,q™i2K3"^¸s¸OÛV•í㪀~pòæZ!;eõoA±•äÑ¿k ŠpúÓ*ûwœy¥›&á ‰/ü}ö ùýÆÉ¸²æ1¾Œ)‘ç‘i ­Ðb‡žª| q\ÖÕUe_w´f7\Þ´Ø·¹Iƒ»Ç\Bé?5yÔ7­›»\Ö«f°Ó­¼ºgÃrϦÐÎàT ߯AƒªÈ/ÿïÉ<šÌ'9Šîí~S^oTëRÞÛ §ˆ+÷½Rf*ô@UåÄãOaö¢×Ê¡á„|N.!BeMç -* pòX?a-n^ó‰ËaÓ›]êÝÀ®nÊ ½ÁfH$rº;óìhÞçIðe°Ì'ù û/Ñ‘Gá#¯ —Î']!å>É0{µÂ*Žç×øíÐû“¿A‹>ø‚™›†8wšäª $œ Z<’y:T¶â+IG}DÅ{@† -ŒéËÙÆùæpÓG—,N·8…‚÷AžH]°øºÕq[HKÝc–!*%@ì爃uQP™'£wí*—G|XÝUsoYmÌÆGn+ö1}}˜ Çÿ3i"Þᄹ¾ùÓ¢qÓµ¾&òøJƒ=ã_™Žmzózì”}³Jò*w7/ð*áJ·x©Õ½eÝÿCöª}\¯ü7¡sñ ÖÌÅc¢ÕyÁ^K+r2,O ›ð߈„¢zñtY2¬*Õž—%PünJm†¿Î÷5mèZ ©1!F¯7\´žê¾6ÀïVºxû×GMVC[§1¸^Û¤0*ßr B~íŸÄÂG ˆ•oº¤ñðÕng™Z¯ZY˜aqt6Z[]îKqQ‘ÈÚð (DÜÂ|ù·‰`27UŸÇÌp¯zh¦âÊA¸¾&¶8 {q¿(6¾ªq&½ôþþ¡Áæ°2—þâ|éÇ •U -$ŒzòP "¿32sÓU£2Ÿ$݈+]V=ñª¿é&ÞÒzîC%R÷©u{rj"W4ú,²U:NÛLšÂ®”¦>³ô>ÇM§´¤mZÁÉ:4\Îp&[Q -½X)áÆX@Š‹§a?­ øýÇb1f–%IqÎ-Œ ¿S(Ø gƒËäP*i#{¢o9,«CN]á>»!¾|c†Öòü“<¿fJu‚ {¦ÿr‹x'÷5Ç*¢fÅÙ¸IüÈãÚW›Ê•Ó܇s)úëãæ49žbqºM®:ÕbodC~(xž^‚nY1D·Þ ×…&Ò -©lß -Û™´}×Ã}»#l”q£+siµN‰Tjß­ »¤ÜokêÑÚÛ« NíçÒWE¼S€„›ª¤B|P‚Ttò5ñ&÷}´ï¾ñ:óyˆ¶im¿0çî¶â†ºyä)û*»-‘œúp žÙÝ@­ÕØgÂP­ð²ÆÐ‚‘UOPl¢½ñO =Üp±Vްé|’«UY}âøOní×t»¢lÁúbcß%óÐ.IÃú?üJþ‡çŸ7b\‡ÜiÉ#úÄ—ô ÓÝ~KæQçóJ›*´ÌÄ2üj7ù_•p_ôùa¥P8SÚ¦½f$‚æMšÝô ït2ì'<qQ/µâÞÅ|âëz]ô&a½,Ÿ^%’¡8fÜ!&e'œÒþBEÌ¹É K´(i²ûš:óÃý%¦y%œò–@äA¤nab€:%Ù¥D ÜÈ 0H͸lÀ` ?O)|(«ö‰ÞjˆÐ2B ÐÚñ™„m‘‘iŒVÚîå‹v -²­@-eã—Ë×wlS+šš†&w[ø"aÃofªý g‘%‹qQ¥UáLŠûF.Ä'ã¯UûÓúS5Øõ± -ØtŽËN\\%÷Ä$÷¥V¨ÀÊã5ëB”(“3L”Å2ßÈ$ [Øâ`f3H·– Û&ÃExZ­§EŒ‡2..0ˆ[ø#o¹s-ËHí{ä©òîN ˜Bq~C‘EVA³ó -_ãK«,åqæ›b1ý|g‹ŠÚµB\ÈGú9.5¹ðƒH 0ÿš›lÄXRGZ:=Ž«`öÒ^ñÍ#ºù8°‹=þ;àË´ƒãõÞsYáÛŒûúÐ0ë-ì‘_sô£àcŶI|ûj_ÔÝ;lkh_ÓÝ¡†ñ½y° 2lzC¿S#=45ƒ"(ÈEíŤ#¢ÀpÃV•,òóTaŽéñè K£ŠÄ þÊÄð—©rTè™(#\Í ²°BX‘žVBQ\ðÚKZÒMèÞšãÁÓÀd'J÷£ÕØ5Øå™ÿêÖà $"!À”öÁ+{<¦²£° ow_öBúÉ‘X˜G]›CФ{ñ؉üö*‰ý¦U½i…j=ÔK¸ŽÅe•!÷Én=VòWõKŸ5mÚà´šÈ2”&‹ïú¢„¹Ê -2¡IÚ#7Õ!·'ów§ øÝô«GH?¢˜AÏs`;­ç/vù5©`ÅŒâ™È«X’nJ àW5ŽÐѱМ´Ý’sÿÚçE‘u8hYu Zp’¢DÕQ(FßÚÌJÑÁ‰¶µ•Ç×$•›^''ñP̰E]R2(úƒZ’Ýd”<œÁútNwÄýÜs“ÒFâÖ§“ G…ÝVäGvçØoúòà¿å8†‚€àN,t›>ç¢2¶°¨»5íÕÊ?é^ÑO‹rÀp“PºÆÒ¾^ÚÜK™9ÁÛG¥(ÙñÉlíIg'ØCgÔ–:ÌCGL$Ç>½ùù®pA£br’à8Æèž¨]ú²Ìè”U6‹û´…¬VëÀË{‰ÄG物¬*-Kiák¿†2¿fµW™Íí••7ž>~‹”_tÖnB:*-yø›÷Â…tïFÒÝ„8n©h7òóX!¤Rw3À[üûùËÆí|¨Ó5J¹ÏhµþǶl5ož'Ú%š”¿1DË´ãòD6‰™J·Áΰܬ@áÎbgV XØEbi¶“<Ì/„a?o¸/§µ¨/µòÃû}ÜʃqEwª×&fÀåí½Â+©ÄÀ}7Q¾ZñȤ»HŠ ݼ•È(³³õÎzŸ¿ÀmU}ê8yD -Êq)Èìc0FÆŠËÅPIdRÒŽÌ—0ƌ䇳Ž`Eð]ÚÿôŽçÈñkáxŒVû2ÂǶñÝAžW×Ô*VPS7€¤åúèû9œZVX7·K‘{4D÷ÒpC¶v"€“b碹ª1¹i§mø[ƒÑ2$ÐMúTÙA;!¸—|ž,Ñß烔ˆS«ý3òÛµ†Åïk¸³@"ÄÇÚG/dÖz“›r ¸ Þ’•pJIî íOÈm³j:&ÁÑͽÛa^æPdЦª¤}ƒŠñ40~,£1Kr\'‰uþ -R’›àl”*¬!“ ï³l‘Sê³Qc@=Tþò¹µ‘?‹•û6•ÊòE¡x„5·i÷Ù=\–ºŸ˜rûlˆ“¹B7–ÌÃä…C7QŽ0Õ>aÔ_AA<ªyj-íc-–FCÞ¤ò¦míwpØ´³Øx£V>º9L~ΣÆÀÅgÐéê–º|70kÏþ7­Ng¸3) lOcQ5³‚u/îί I·Q+Ë´Á|ìÑÓ¶†;¶Wj-qÓ+éá6 ThßtËœB›Ì^!E´ê³8̹‘økXú³Çј P KD‚º‘¿Q¼/ ¦ƒÜw,Õ€±ˆ•­Þ2'÷éÌ2Pl¿ @ -ç@ÓQÌÿ>΂˔î{$Aw±Zö,"Ü;2RŒyÑ>ÅÙ¬ži³Ð}<ÜÓ˜ûrž2›H›CWª|VÇÛ›s8戢_~WÛ×à€à^–‹Qá¾·wƒRØžîýrž­=pIwe_`º1Ð-'®vF8vºÑf²è:°ÇƒXí{&Úô{û‚[¤wî,6Æ@4(\“Xæ3¡ÇúÀ+‰΂¸öÑ…Á ®Èo·‹á¥¦#õfäÈ-Ü$~#Õ 8Ç -…Ž• -á‡üø¿rÒÝHÕ…›í |Ðð ’<AJ±Z¨¶„d|™Õî -!Âzíë36¼°ˆÍ´ï;²õ:v„á_”€#Ô(¯F7cõ§TÕSä·ÉÅŽX÷õ×¾]Y¶ ¿Hâ˜K˜)t-Ù8a3Ð kyxë|)ùóººu;]æo²tÙ”¼Cc+|È}0o‘ÀX> ÃNBzî³zÁ×åÞúÁG*û -ÄÓKÚ€.}ð¾Ìlg~§¶o¬¦»ô¥ÈÕ><¾v•ù„MÑ©UðZ\­ý÷ÒªÂzÎy4¡Sy Û ›c†Ÿ4á+d~í¼8Këi$°K‚›®*c™TÙRjû˜ŒOnWÕ9UòãÙ¹Ïé.axñ\8Å¿iß"tsø´®æŒûp $Z½h„Ü» \[2uñ’pfdòXºãy„vЧìk„¯N/¤€¨».`pX²C§Åó™> en ÁýZ‰tšq8ˆÓŠúúšvÓ,èPüd:€°‚ÂâÊKèe˜gJ ¸Åí#?­'–éÜ×çH^ðmÆ«r…¹= «ý§"(”k}R;°ËDŒF·ÒAKˆ¼Lо¶5ŒÐpC·É5sH2BŸ¤¸h“_þõ¹þ‰-N‰C4hŠF¨=0¤ý¿_ªêrlç%í##ù¹ VcÃ痣㰱¶ü‰åÏCôÅð¶3± 28¬ê©‡2KLy£ÈÒûþüùø¼b9¯vëAäJ_Ka0ÞxgÎ’>pÒG¼=ï•fèÙW|bª´C½Ø<"’ú?gÇè¥h™Á ½²ß*Ã'i–q—Û¦?ì+X†VÎ x ³®ìz¸´Y¹7à͈)ÀºO//mvÜUƒÊ?¬û ÒÙàúUý¤juÙæÝ¾$Xxxí’Ä¢ØòÆ¯Ž’±HÇÈÓe8OZ®¹ûuã®ÒeA7iÉí)þ¿áJ¶šµ;Ôc£ßõèR2›^ÿ@«ß \_('ó¼k|ÙB6¸Ù l­$Þ^ž0rÝ^ÿ,KÊ -ÇŽ»î—P’ ë>.ËšÒY#AŒã²‚h,H"ó»[œwíø0œÕL°=„Ûõ…Â;Ux€^B_ìêÜÎ2PÆû]«z^R4‘ΤïÊÊð%–ÐNW;6´ss#ÒÒÉj;Ó i^:-ÈûíV-8eA7ÌfŒCkÿa›„¦y ËrÓ - Õ™Èþ­ÛºJ ô„S¥ñ‰å·#ˆ²€mº³4¹ÙŒ˜ûCDx®Vw#9Ø~ûóÊ…j!§¶˜Ô‰ÝÉäï«;ÜJmÓ¾Ûº ŽÅÂ5Î[Ð=†8Œ.‰ÒZF¤C"müRe={VîÄ>]\¦Ï‹²²]3Ãàü}±ºù7ËN-·­ÁŽébjˆðG1ù:°ÙLÜ+Ô -É©“!öï.rŘ’†ïåu€@1¦NÓ²Ó‘½‡™ñõQ…@Ô‡ód ¢Yý”„Í -^ÏF*#±œ‡åU߇»ºøùÿÓr¤€ÞqÚ -­$Sƒ¦äò ®Œ{¸:(O 'Ô8¥Câ±ÈfWçu$hÆÛ÷˜Ü-«|vgåâÿbmD$öKz‚í<Ìü½Q$Ð:xYxÝ™ÅíRTCÞJ¥Ózn{ãç?ŠP’Lù‘¢¬Íîø‘¡ò”M ý†ý´h£¯’âHlÏǤ¡N_*ŒáÞxOÙw]éçàcðW£>T,=žrvÈ{3o*à7äû*VÛ†æéíKBfõA `:2ÊÝ'…~Ñ—\I ‰%ή$jÜ1˜”»þϘ(IvN7Mõ=\ØÇ|Bä˜Û·XsçUoçîÞ³êͱí8Ñ Y/â­F9™UÏû’A…þ ÙYÓ‡ªRÜ š¨IÚf£ú#‚:Õ×[Ò·’6qơ͞ŸHÒ.søíÉ¢ØÛó³­QÖGȹ‘Ye¯9Ò´ê­Øšg‰&Ö¨Ð.á˜&á]BŒs­7‡a°Öܫܸô°˜Ôu ‚–—=®XÉ[“Çç8Á7Dk=›ÙeÏÆq”Âæ -‘ ¨Ô·ƒ`†™¢'9û€&" ¬pL>8£‘@£(Ša †aˆA„c&?h–?Ñh$(eë=ùùv8àÍù•ZíCÓÛ¢‚XOÝÈtßkqý­(1º û¢¤Ü§è•†] ?:ö‰<˜ÊÜ?fÇ¡û¦xÂú}<“Â@çš`ÐÖcÐ?ìË»Hz Êý’A˜Ç¿7aóy½æ·'º-D”­‹Pã}{ÇñÑzúq3)óÁã‡Æ¥ÚXŒzúvÕ\a×ó©0ütÜqÈ0RîŠÐž;Ĥz·;ÿf£5«Ìô¾1°où=6`YìÆ¦Oœ\J÷!, SUÍõ‘ï9ÔòËR‘Ú+O¤nËyÈÄÈÏlƒó(VŒqÃ:&Ø.¸w›'Ô ¶%Ç<;µÅ ¶~ÃÉ‚=Y{ò^sì(di–±ö‹÷¹¢»<ÎM‘#¤OJx(ºõøNßX6ZG`².®¤ºrÕTX¾BÙGÝân ͯ÷Ý/þ_Ôåæ·Á×îK€D£S€ytÏê±¾¥í –'ɯVáNc÷ÕþèbsŠ!ŠyJi&¦| ?‹/i=Ðk0u"º°¯yÒ(•}pÃPxðöâʾ¨ù+Ó½M {Ú®Ì}x¹a”7X­¦öùaÙÔ.÷ó\ÑóNóa¨­´ÏÏ×~ØïÏûKÁ( q¬¯É´ï¸Õ_Bpò_ö]œðÀ¤¨§ýÐ2Þ?Â/šéž°í©½•œ^C9WÌ}zÛkî‰Ûv$Ü‘çë¾x {6k5‚ª:x»û!¹æx¦wŠ…5Ù*“oqZüü~¬`«´Cxû·0YÎƒÆæxL ³ ºÔŸb0híIÝ€CëJY9\äÞ1=}{å|ˆÁÛ÷;¥0ÈZë;Ýe~Ë.¤%®7WøS 4sBÑ}BYž„â: - ë°=¾wÏñ=&QE´î¸¾!™1ݪ€Ö £Ìkê¤Ç›GˆAŒù)¯'"JG@c;/‰;þغ÷)‡åÈÊ'„=\I}%Wv„„—î:QÎÈ{z·bŸebà (Óž¥4üvás -9lDôGë­õ”ytÀ¨k¯æŒªçÏŠ˜¡+Ýçâ|<ÔÆ2EëˆM§tî0°¦º›Jo·éǦ?uàz8z^ÉxÑ(Kù_‡È´é‹²‹Ÿ‚\IÚ6€¼ ‡_§žef…X"ÊaC·äx›œu„õMZÀ/ (wçûÖ ©ìåc‹e6k¯Yö%¤NµOZArH¯©Õ¼sÛ:âW~< 4O\!/Ö <’Æ2¼0a[U,h‚ö¬i@T"¿Dm_H£M±I7@Ý$VýÏZUÆùþÆ…_#q•4ˆSDóÐ ÉeŽaÆ¡µ6ìà‡†ãl×÷9–ÍÕdMÜwNŒænâÄÿ þ1øIktw?×Þêy}æ&s_/ãQœ öF¬N‚f dlB‹i—jÈš¸–âæÏˆèïã‚?«2‡˜%m&`‹‚¦±MœÈ©Æ"¸Öêº ­0èIÂÜ -{h-#Ñó˜V î¨X²-¬vß«¿Ž‰_ìêÆÖ^i\aÑ&͉xŒ¸ è^ôn€X‰ñTŠ}oòèÖ› -ŒÂÀl#?ū׎ӛä§w)ùÉ Û;gÛ[p¿(U›C®=åŸ#™]~ÓÇ>+&¡/ZV¬5‚_áÇÍa#ƒ‘j­uðà§{\à…ß[Ë+­öL¾[4)o%ìÝ7™}‡t‘8® ¶ðj=sÓäâÈhá)ؤ˜mÚàäL –sÁA~ªŠòOù;¨hT4ñÁÆsÚÊ%c•µò{ômÚp«Q§¿©œ @Á k|µÈ%ï\O°¹˜9Œ®¶Áâì³-~ú?‰€vÓqwâe\§G„ ÑXQš©Ü101÷MÛ@`¼Ðœ‘¯´¾úÕkJÂ]“†ûØýrá-S‘uÈi!Ô€Ÿ—2^@aNÛDŸJÿ}èÍ:è›Sö–K)‚× --áú¥èÏa42ºì3ŠfpqÂh+õø:‘¶AÇ3ýWÏÛ½€ò%Wê,“Þ5û(Ï3u‰ Ö(ZÛîÇAx5¼Æ§ëƒ$ÒŸ#Þâ{Ò‡ø0÷=+j Àd_àü>ÛW^xòì}óbáG¢ÝÐ%öú_#B!`lÕ›ÓýrWÿöë2†£ðó r¡£Öƒb>ª{&ÑZ à´ÿ˜n¦ù³úè&"Jï~Öqé>m¨†÷iîºÛׯ£Ÿt¢\ë)ùå¢ñåÜVÇ£Õ½Š;Üà?éó¥ñ}A£éÄ?{^Q›ùÉé*xú“ϲÌë•`7z-ñGèœU8ž^¿Dw¯e}ëŒ2 ì>*0¬|÷/ùY½MŽÖ:Uû á×4àô^>?jlèdS…¿ï &źA´×ñM|})îS8hÖú1iņš|6y™››+[ƒÚœ}ÍuøO0Ê~è<oj£‘Åç‡oò«“Ò*Êf@œ¿IZ™Ú]Å›©«·+<ý†‚ŸUÀ Òè¥\d­4ü· àÞØéà -¹˜/„Fß¾´6‘ZO?~\nhC>-08áÆpíA¤5ÁµÏÙ:7„1Ñ¡,šAGÑ¿‘_å);ºå®ÞÆû>yS¦´Ÿëùm]|˜.YCçß½r´8è·“®@jÆ‹-8-­k$3è0‘×9gðH5Ý}ñ•'ãøÈˆqÁ;NRÁJû:e·_{¡I"ÔàÊA7]O,oöKJ è¾óÍ3XötŽl—FZ—Šðé. QHÅQÖÎ-È̽[©&Þ~q°n3¶tëloùDvîCt\È,s*jWqùœz_Î][F}o!¶ì‹Ã1d”cÃoíg²¶`Z++pòO7íÛM&Ýtô -„jx:,}«œrDÄ4ØEì1c2x;7–U,!!— -s‹È[ kN´ë³?ê1ëŸÏ0hIüH›‡¬ ‚[‚‘_æ"|ölçenß nŒÛ.a¼p>ûtÃ÷úöN -? ˜œj”×ÛŒ£ZE€r­9œW-¦ÜTÙn×G¡§d¯ ¶•áClèÕÕŸJ²¥ã`_H~¥ÁŃQam|ÉãemŽƒÓuŠŒ×U—mRe×~MTŸ/§_»µ8½ÄsD|w•¶xnåøh!¹ƒóÒúätwlÕv¸ŽÁÃÀ‡õ~ -Xŵ¤ñÎMÊÌmFé@<úç‡ -G°õ‚%\ß Ü{eQQA]Þ ??¥+¤N“ÏQcéaü+)°WvkU>䥱3Á…r]÷DíkMž¸þJ¹‰ð› 0 8á1˜By]­]ˆ”–ºW„ L[d±A"V…Çšv)ךkëžbž("3:èšÝDk_¯4˜@ðåE¢ÈärÛ´s4òó¯~ŸÚWÔëÂ1œ[ÍFèðÌv.Qt ÅwZ¶²„aùü(wïätkæ×eDs;-Uº÷es‘‚xK¥Ëz“† &ó`·#±$`}è¬rótnÓ^cÑ„T¼xç–õßj[@¹óæÜ‚ãèÙeñÀí§õbÿ¼¼íägfQ‡ouµkVŠíÀÏ„¤ù¡'ÔFŠŠ_E6ïÃB'¡éF]~cÓùÄú#@779Xaˆ9p— <ÿ|]©4àùØÄVa±X€Þfù—i•ëíÜ(Á¨[Ñ— ®\d$jEŠV«0 hhÛÐ@~l¬Qgœ¬ØãEžÑ\ÿæÓ„¸?€€’—þÑ:ÚÀÉ -V"'*ºº)8w¬Ölï}ÂõªÎ¹Jè¡Ô0û‘Î,30«QEÌ¥j@¹Ö!¿Ü$iÖÒI([€/âà:£Eg>JÞSIÍÝ9çÆ\AÀZ|Î…é1ŠDHæ;¹z‰WYB~8h+¡*m*^žÆzºâføŸVKú9•6ýrêÚU))^çYué¾i>ø¼L³™ý ytu~ˆv‰àS'¥›ª#³0,ôöLóNÛÚÉ=¶ëcnaRL¸£š$¾¶ný¤uJë³:÷Àümרq_Šƒ¹¨LìÏØs\ÇEabaD¼·ýõªHÕ› ˆœÝZê Ù_H÷×Ð6ô£P3hOÛZùî૘fm<Ùwí³½ÿ@÷Áj$é¤3%ùƞÁ¥(\Á#6c¼¹ü4Ù7ìè¨Â¾ð®+êfBhÚ„¦ë¹ÇŒÆ hŸ`~ËÑMÎÊÞ¿Àþ¥[´içñ-›j}Ôø€’ó æÏwøÍ”žü;ÑMr$íµ¨²«$mª¶²aäh’À¢=<òg™®A´5>·uÓßÝõç8÷±ó–¦ØSQ‡&µ§ôªË¦û’‘–@Ð÷”)‹ƒü; S%ºOvÍzP³?q¨‰%Ï ÝKçî`û˜üÓQ¬O¼!6lp}F\Vóx( MÁïÝÊ#„rÙ?£uÒµ{,_°RþÓmoZÆBSgYX^]°hðh¿Ìr}Kî ù~HÍs¯#)ô€Ñš·¿1twJHg[2Mâ@wv¦æ~&.ÁömJ•`@;o©*,“jçV¢è¶–ð…_kqŠ¿>æ¶ÓÞ> -ö7÷ä´¼yŸáÑ(ª>9ã¦_i•Sù›’îˆ(´œ¹Ï-­NT<:·Pùä¦s¦=ð+‡Ö4ìsv¿•Ùëñ -ùȦ ?·Õ²ì{‹®ù=E\Æã˜@ýS,k·’"bÎθ -,6Xk^(¡s†=€âj騳8üÒƒŠ*£›Ál[Ææç°TdàO øÖ,ŒªFCÜwÓ÷ˆB‘mŽz –.7™§XàG;[¾zÜúëWÝ䈡¡¶q˜Ü2<áÄA‹ÿ%òK¹ÿ°$bS"Ø¥Ò¶ÖØ¨R–ß„øH)£% æ?Þ)h7ÅÈ#%¹8¦›ÇÜð»§SÙuì¡¥z’*—úC:sWÀ LÖ­.Y±ûˆ.s^ý?Éâ3uJQ$ß¹ 8¢}ùö³ä) -áZŸÕ7-Šsû^Þx’%wÃåþïJ:íÒ·/sÍŠÂÅžîÑM]f⚘à®}RÐ3_—HµÄƒrƒ+à )ët÷BVLªý -ú|Õ€Ú/Šn㎿»Ôrn½ã@zc’Wqøâ:6´$OŇ©Êáû2G"?Z5J*ÛYŸ¡>äA Ëö¦˜•ÆÆ‘jP¤m®güók4è‰7þ¬â¶øOïˆ!×èž· -6îL·K¨!]DŒÎ鶾Ѹiz’ß}æ½¾ÔheÀQ}{…ÝǹÉ;D ñ÷âN ”½²°ßÊèjè—ŸaCi®ÞRo¿SbŸë€Þ´6¿¤‡aKòäÛðkËlCÃA€“1ß(+± ¿±Ð¸zý })l³gÌ -'¶P©>#¿ªÌ\ÿèw$qß+Áæ´™ÊMÊCüØÏùͶ‚vÔKõZ‚"Âlrßßp­,ý[A‘Þ?¶DJtù“íÜýº7ÞÀ®†ì¯ðÛüêÔpŽ,{Ó2ét31m3ã¹;b™,ê¦Õ$í§¸é·Æ}G€éŸ€›äSB%ôíÑ>oˆ3g)IWöYh<¨œaÀ ñbub1çZ誘è×p(¬ñ°2ž_³ßºùŽsQNòp#Юõ¶.óÿ®'t)á§CýÿcaÙ¶ƒ˜YëqáÐmDÓ=3ª-A“ -u<÷šõ -‘%õD¡„Ô>W0(n -“ îë×Ö-Ç/ùv@2<¨]›ŽÄcÂÒ&15!jˆüD‚Õ@CñôHfXtcã &Là÷ym°€S€ò˜EÁaÀ¼YT½ùÜŒüQ¾ã›[̵ KvÃÃï!0Â÷ƒH!Gñ÷G<˜eZÇ&Nï`D¤›øúU0îFý€‡“>æ!՛̚7C ÚÍ:ªFsÜi%§ÈÃ>dÿ}D úˆzáb.ë›ìÝ~hàÕªŠÁ/ÜÇjµCåŠÓf@¾CÇ`ðyU·|ºuó·GWã“®ÈAßéÌ[êøÔí>ùpHD•Þ%™ª¥²ïN¡Ùl R €mö5ðD^b–Œ3§¯`¼ˆ¾Ìû·,1ÇǾƒM„ÇuÓ½4ü‚üØÂ¸Ö?jþšM“šXÜð«vEÜ!ƒ&?T¡œ<ê›’m\:•j´™bØÊÚ§¬éñÙø:×Á¬pAíþ!âyé p‡A†G4r_΂ÝûÎD7YÆ?)¡ã]~¨¹ö$mÀ f_¤gŸ,ñ;Üþ”7Q&?ÂWÜ×s²KkÞ»ÞZ­E£uYmñ=?æ~gŽR{à¥Ð¾÷y÷|4ÝÕœÞò·‡ÖÉd×/Kwê A§gä!þ1 ÿ{WaµûØ´øFð5A…¸SÕ`°é§}4Y&ì»G‘ä!7€ÁûÖÀakÊ$ÃõÚ“SýKNn ¥ÂÞªÓM%ó‚õÍ·’ñÜ»¥s 4!rDN ÁðÜ ÙžŒ¼S¬Ñ)Wb Ÿáõ˜{ê ‘x÷_[Àû¦m άHk­ñÕ„]†‚¦€À‰ê~:šÁ¤éi³y¸Ä`ÓÈ@í&Ò`aØÿõšÞ ·ÒKäê1z¸OTR¬—Ä囼>I-?¦sö!(B¢§mbsDÞu½R¦ëËßܘ‹ -NÑê Nâ?w|‰ü¦VB>k ¿ ”7r4Éо‹£–ë*q3I4òýŒNw÷—Ê忈<’ó5="VÂ…ùÏÐ:/ `ÒâÆ+5ÁŒN¥_,Ã+÷•åï9™È&âI.an¥÷×K#ä9aZ;‚ÔâõA~ÑC™ÿ¢;ì­xŠáwík×UØ—I£.F+†MÆöì\ê0üÁP­çˆÏyŸ xæO¤3cxʺç>Kš;ss;xt#6€*ø¯ïv›âuÃruiI¾ñ‰;öËGCົÒùŸªð ”‡ÎM”‚…ÒsöþiM+æŠz 8ŠiÎeìþZ­ì,nNOŸÜ¬ŽP-Fk˜.Gð {Ø÷¶ÕËc]°‡¥HàÏÔbv÷qÈb¬DÛ+0@ÊÇ–˜‚Ø”§'›|PðNkZ.`4Z’˜~ªH €ë$/¿>0ùá>¶ñ§+ÖB¶Ä­ÕYœVöj€øàVvhûÃ1ך;Ø>62©·kõ/·æKéñ5V1Ë ë—|S¬Y¥Ñ.»ÕÐî)7ÑèE˜Ï'ju_Vq†Rø×;î“ñÇšTïvp1º·ƒ"ÓõY8¯Í¸÷ôÀ÷å¥ùÉñ-¸È£MªhÓØÉNI¾k¢:0—ÃiN¦»8Ú“™‰ÚÄ‘‹©ŠEJl­ õ¦Œ6Ÿ¹˜eU>7itsW—ï}äv¡àÉ4ÐÃòG{3yȹûBG˜_ÜN¡®%a³XPzŸ°FpNs¥ëºà¾Öò“¶Å0Ýá Î~ÁRù‹&ˆróN -‚ÎeÝÓ è_êÃâ bû^^ËÑ{„êÆ«Á ˆn¤?_ãê¹A5iü$¡7´l²Áºïg–Ý¡Ž‰(’2PˆÓ`»<¯}}Ä¡¼JØ* O´5M/Uçp뇛à9¿¨T-±nè4û@iÙò;»èIÌððûÎ5æå#ªzmÖtÊ#Ì¹Ž–3Q›“ÙlL[êËÆ”¶H[-É«Âpå„€Ì4E3¯Q° éha ÆÍ¸Ô~áùUj}á0 6†ÚÌÃÓIžØ"ò°Ò ç¾?Aòãœ?¢àcpOuH–®80ˆÈMgÐAhÕ>-XÉñÚÆÎ2óú™LÔ(Â|Žä‚7æÁÀ=í¸ìýšU™ÀÆaÔÍ -·<Ë4tæuQϹª;þª=†[æ~ÙІO=ÒwÝ7ðÇï÷›’§Þ[üžòÌî²6;mÞ¡Ûª>ø¹‰ÂÞ¿ùÙªðàü´LÌYnU©ª$±¢m€BNw¨¹¼6 ~Ynû–•wpÈé]ûTºâ¡9Z܉w«ÎI[0Ëȃßáï¢øœ'nn¨¡Ê3ÜÇŒÊõEw ŠÀßÍ,8„?û¸âóónQÎMçTu¹5IàgQT؆¹ƒTåå¤MËÇãžî }Ï%&Cè·µ…q…”ü\©$sz#`}Óe‹¿3üOVÂèGÙßZÑÀ¿8¢ë´ÏÛ×£žhDmŠ}Ë‹ #ìKÅÕáèçî{y ™RXZ;])pSÝØZ¬ïŽTN÷•CðóO€í‘ ¼\Xi6'ú5i/…Ø Ÿ1ÂK7$„ÈÔ ȹ×ï£\5YofZ%&‚ Ó£É}U«Çhùbfˆ¿DeÃŒT#B -|£Ó[òá×Â~<(Ú9”›ÂéºaŸ]×´ô„z&ØóB‘+>qÐsÕ¿¥n]±3¥ûDÔQy övÑaÝŽ—KÊ͵"”¡µíÙ!¡DZãq:·Ë¥o!=xŸ÷ÇIw=¡B-oÎѶ~CQ“ä;Ý@ƒr%ûêlЉ~æ±Õ] 5a ýUUKkÚ }bË}T(x`ÔJlç7UŠR‘¾Ç¨þÁ)+ÑžphöQã‡è“ÏV™ éÏ[+Ó³Œ#5Uå¦g³P;ÆÅ>ôà NnR¸ <˜(f-ÊÔîòpE;:%'„:pº‘ Zëèl_K³Œ¼_¥:ÿŒ~\Oe‡ÃßLQžO\$_ãpþŽºÉ[ÞÆ;Ìôh­Ý«7wmPj–rßµnØ"Ìñ›vxdBM“ˆ—Ëcfà (ÄàÆö˜DË"*7˜q˜¹¯'BtŸ?:÷=lªóÞ{4‰µVTàÔ^âD‡œ3»Â㌠Lf°¾Ò<\°þ–&eÀ+²gB‡}K鯾æûR½[Ý*ªð+ÂJ$d ‰v[~¯1g–y†¢úPóÛÖ¯ÔÊ@º3`‚sLî俾¢G`=Ï>˸›k _ä—@G¬e‚«ÉV¨3ØÁ¼Çü‘6—WöWÈ:l¶éÃ!J?ùhG¿ q_ep‡ž]4+mu>stream -nŽá)°îŒ:T¼MOŒHBù JÈ,QµêzÄÜ¢€S(&èŠåÛ4cœ/=#kó¡A˜“zŽU X43ŧ¶n´­”OˆÎ¶z>t“ÄYš¡{«}; "þUï¾+l~ÇôÊñ.ˆç(äB¼Ò >c=3tr ©OèRòƒ3ÙÜÒñXèà}i0KÔ]F÷që üž5Ó þeðWLœ3Jq§È±dºUë©‹Œök‹‡ËM™5’Õ½ü~~¾lðÿÜÆïÖ,¾ð‹P‹ì‹â€0Ln[—ØgÀà,’º%:³ŒÃ¬;~­³‘š —[‡…¶¬?ux} 0Lg¿Ìª ø£Yঠ[Eéð1p"ÇÛ¾7¯wtžÐ=ªOµ'yœˆ…N§G±/AeÚ¤]ô;9‘’ DÀòÌ¢î[p¥ˆ·ï‰k*S†i0x÷9÷¹ÐM5YôÜ­G¯1`¸Ïóˆ…¶¹áKªvøø·Ê ¼/ã­Ë¹Š»L7`Ã6Õ•7ÝR9ÑZ¶ý2P’è~?b tëßµ˜‹óËÍ£SúÂÌø+e—ïýs댹72¯hÏÝÈ=éEt à5­„Ú.­úãÁÿ©~_ÁíÊmë4F/«Ö}{>Ë8Ÿ7Ý\ƒ ˜—`&g‚¢,°U.×M~nã¥÷[, -˜²ïc0?…¨^Rï#5J:ë b%ÚЮ]÷Q-Ñ/ÑÜö扟q‘òc§p¡ï¼œZ ‘Zó\£†(„ËÖc´}å©GÄè[LÎðÐ<.@¿‚@|~ޱd^omð’/¹)¯>)L˜/íŠÅzÓ¶‡õ¹¡™íVmè——Ýçáß&ýí“Ã÷Q1œ„ø;¨0jìKz%ÎZær4†ö&€!áQ×}KeÞ÷#ùšvî[qD­É…»®R8ž÷çÅJÚ¿JTJƒ„´­Z×()}Ö×›à±_þЕF¿D>÷Ï=&ã"Oºc å£] -&DÍ$÷0*¢s+<ÄeI °tÀTeÎ]Ìs<ó6Áçwô…V“…‡Íù…: )Yo-úÕt†X¥™¸³/ö¬AûƒÖÓ€yè(½šíµÍ(È$ -’®']8І]Ó,É£Zq€ƒé¢3÷W+…×ÒøÜÃ0¡ôÃÈ -û"=ñK;ÛÖ2$6–SÿÊ,ãÔÛ7ý…ü†U¨6¢õKÎJ\Îÿ NF|á÷»(Þú¾™| 3I'!ܳŸó²ØTéPQ›)Jç¡=0À/wöiæúÿtÝd¡â)‰„*-ñVæ>>ÿü°A¹mä‚Ñ<ÿù‘íÐÅ<¯ÛÙ‡z†÷[¡Á@†ZVºeÑÕ}Õü§6’éFD;@R›íóUxvJΕI^þ$r†„<®A[Ï2E;†Ab”Áw±áÍ{Ū Pa¥¬‚Òò-ØáHÐ9¼r¥š\Ñ/Ã]pË´á>»hpV­@Šy>~ÿj+ò ÙIV¨}9 œýÇb^š¾¹=ºŸ¼ý|SHŒœ5à`Û™.yH>j»mÁžFUNˆ‚OòêàtY€øa)çßU$‰i†Þ>7ï÷µqS” -lµTZ‘Ùç6‘ŸŒ ˜u9€­%Éý»_4 -¹œp¾".<¸þ£'~&ªÈoA ]Å êÃZÅÀyŠ䱞îD}¥`øù¡Ãû:kàø¸Ÿë!;(×8’0ËÍÄèÁhYší°‚Ÿ$|žà(ë¹ÉòMî(ÈJ± ªPÀÓÞ>¹Æ>ÚYO mW#i¿Ô¿Ü¶Ö=ÿÑM'>ârO‹Ö)}¦uxßi S…ð—0whAOK£±|µ#Áfùº®=½âÌCœyܳð@f»”?NóæA`ÿP¯IÖvǽ2.r±ˆ†àzZH^^2ð1rÛšLî»ä~úBŠ k‰¶,<˜¹È¯2Qµ,LöK¦ -tç Âá w‰¶F‚(8Æt¨œ< A~Þ‘ðÃ#¥ KZå*ýÜE4Ã0Y¡p¤¥—ÄÀ:Ëâ%ñGÇ9ª¤äÉøáǦŸ,?ÆFÀ,´å`Ýt“ûöÙâ}a´5ÕXâ4^²q+iÛbiëëŽZ½XÒ¸7¸+Ok³Ö]BkÇÙt; -4÷‹ -ò[±â,¡ep:·¸xr:o¸­þv·5ßjÙ0€NÑÉQOÈb…?Wì°©áÝr0º ­ù¾K ÂW«Å†–àôϰy°ÜΠÄí¦dXŸÃCž´Nú¼WŠptÍ­ñ…sóЋ>ÚàÖ{XEÝD›,ﱂÍ%µ—ÛÖÒPju½ùIOk! -+¹ð· Óëñ@/±}©`®ÏÙZYn4•:ç »ƒÆ;®46BÑ\E#jÎŒ¤Ò_0Êÿ+Ès»uÜ Aj¥øº©*qiÅ\‰ä'”ÛÖk”bô³åá3($à -(­gÃÏŸŠÏDÿÛûf¨;¿ñfòØ4ïÅ4—9Í*vW \ÂÁ ‰ˆú}sâñøGó`ö õºÄô¡2+ ÕƒJ<¤ú¯Á¿Ê~rä7¤K9[q³`+,á ’¯ÊÜ ÆDm+ÆßÖÑQœó"ïÙOMkÒ66Djû=w*»ó9Ð/ù4J1í7¹= -—d÷Aœß8²Ù¢ªR—«`ûRÝë³Æy-Þ§˜†É=öGƒýgõcm<ÝÇÞ6h°Á›õ€“˨Äåc‘™¹P -Mòð‘˜y @pÕÒ¯‘Їça€«ijís'ðèT#, -I4áSÝŽßíµIf½*W´>0àNé§”R]áÕ$`Ó'\*¢XD -õ…ÖbL€Â…\Ò«ÃÙ@Šz -¾œ”NõµÁ¢l¬\Q¬ìMû¿ß?89 öƒ+ gT…Zì閭_FdºÏvspGZxº™s¹]+y»a †ßb$q¸À7Ðb×Óå‘bIòâÞñ×Ù/A>.P+‡yí[Ç>¦v•FupWNù˜]‹–;ŽMý’€b8z˜Ë%ëç^çñœ9¥ÿÙ¨I¤Ñ‚{Ù„ÇÀ¨5ÿ¤©!1°Žq«†$Õ«cÇí%ý•-Ø‹9lŒF Ñ3{ A3ÍéÑÇÒ2—ª¦ç9³î!וÙïÝg´Ã`ã›5lC2ý«ã¬„3˜Ÿ¿ÃšM¶†|²“ôí-ÒÞqbUR6§sßx^¶(Y€·Ó=æ[™ç|2=]¡ÆÇ[žæacoÔ[â\Àtt—Ñ“sËÔ.GÊÒ…mzr[n´' ‰è–z¸áv¥å&A[oH§ÁèÑ£ìW0Ž7ù ->Â1B– ¬“õ›¹Ô·+MŸa7}.œ\|ȾŠ+¶Ã~p”ùÄ÷§ð÷ãšË»Ÿœ9r¤Gpº,Ù`©·§•úª«ã[cc1‰`Ö6wisù3˜«˜==Tqos'4Þ@ä|57×À?f–6ˆ -Ïð^ô­búÛà‘ßz‡Ã´ Ì±Ú±ÊÛÔùgµÃÅÉ¿;žØÏÜ}·쎌l6ÔìhdCSJ|ýT·jFgŸVÞ>3Ã<-i–µDÞ¸Ni¶s*Ò\GÿÙý¤;qK½¦È Å]ž#ãÑ÷qZ³Y.ɾRaâf2wÈaZ6ü*Ü#Y5}­aTC¶õúˆí¥6Ç-øÑ Ÿß  hÔÍs&þUHöÇy(^àÌ~Î䢥O½Î*âþj¿^$ ’ F].µüÒÑñ}Hë¸GÑ«ÄWX{{”l†DÕê’fÆ¢O¡ÃYË-“û¶7¢=(rˆêF¨g¶FŸK¦Kf²‘(^» Ì>‹QF¹ËZcœõ•’É7ïÇ+w ˆÊ÷G¡ë>|~;7oÐ¥“n¦5Ï»ÎÙ §xë‰ùˆvü^>=thÅèþ^T²¼5²Î¢âôú•4÷K6[=ŠVİ~÷u:¾ãœ@ðAVÛDÄCÃFLnOº©Q„tó¥l“p5M=ÀMþ{9âFw’%oãà3a3½èÎþ%‰cЦæN¨Æá.·Ø¡á÷U‡ÓlåsU¼WÉݲ“”ód쟉kò‚øœàÛb;n~/›A¬ô>¯*Û\:Ž)Ë‚ö´lçʯFX4—5[¥Ë–Wo{“âêƒçš~ «`A)Ÿ ¥"\„ëúÊjJÌqžbàD2!D>s‡6& ×ôŒõDÒ_ùŸo¬HWý·bç>lC À¹Õºî³¥X_*È^®çG Á£ Ûlíj!]7íÈŽäþ];Hå¿g(IŒÜz’þµ¦eG^e¦‡ QGŒžqî´d$¹ ö?è,˜±wJ›lÝ­ýëzj¡ÝõPFG¼ò”:;a©Ïrü§1«@üø¥ù›þZ²n}œöAzÒÐ -;íüÍÄG®:ÿ…Û¶î4žð™deò†‘rpÖ·ußjÚ<¤p¼Î‰\{šBú¹ú+L{¦ãÈA¡á„ëN{Añ¤àÝèzJ”PO”†¨´—_C@€Â ‘ˆ< LÃ8ß#2 ¢xTH8Hc‘GaÄ@ Ã0ÃbA¢7}Úu‡F(¯´ðœå¼Zó‘Ò Nבj=í¤€ú›d/g™ò+ÉðÁ=º³Û®)Åè/ [¯tAËèû¬»%x+AEZ$KìÂ9+2Lð ­ `G,×—.Z„óE?QËÆ y÷ÒŽx–ÒQ/£¦ÄýÜ 7Du¨-ÇÕ0Š+K+Q%1*]Ö - Q.Lâòêö­–^çÙ‘…ëP«“ÿ”þ—ÝPeµƒ4uL#»bðëÄMyØa?jòƒ½®õötYÎ’„ÍŒœU20a‹ †ô¯ -!ÕüþÎw\Hl‚[E«8šùUÒT>x¯Õ ~\󌴺ˆŽá©8£Û¦UHå¾ûž<Ìçˬ¼Œ3%¸/€ w¯ã1¹Kvï™òÝ,ùV"NbÀê¶œ?]Ï9è϶cYùµÇ¾öÚ!ŽÌbcn¬I䙸¨0õ™æõÛÖ~p´vtâŽ{'?¥ZL¿®‘È>4YÌÒ47­¶;—}íCe¸ù²Cå -cÜö¼"$3&K—Gëv,è1g©Þ4j…¶wI¿ Ü°ÆÆõJ,þó‰ÅÙN(³­n sŠ8áÜìðE†kk]бúb€çñX+ ù¾l&Úî¯DMÀÜT-¾A 1õ¯‚hw¬I~?¨mŸü\KèvÓ<Î  k~Öy"YHcŠ„dÂ@«=5 úøÔWáùéá·#g<º›o‰P¿àC… ÷]í¶2\™†¿Xý€GuJ˜š!†j¬É5Ì3@öô¼7Q¶ó]E‚$?dvfy$Y¼?O¬´FœýÞàWa€Îu¡ë«à™òLŽ YÇ1<¹zþVZ ×Ò"âøœ€Øšcr8œ„'7 -´u‡½ •ÁÏ×ö«Ï›— c™y|?íÖ“´ŒË}Ð1à"ø5«–úúÏÞS.˜‚ßÄm,õ²ˆY ìÒ>–us•?7¿eMŸDÛî<)“€WA€’;§p@“ÓÉ„ï DŒ¢Ë¥Ø[æ%p;…$ÜlƒTI[£ÇNAÍHOº.np÷Ç¢4ÎæÒú\Hµ.7,“Ã)ÈQ{ŽÕÏÏuo·çVª¿~0Ò»êA(Îæ¢3à™˜]ü­GΆŒ˜ƒ7Ût[–é+€vð,_—w¬QN¶¾ˆÖ8 §8£Õn¤ŒNtÝ8“*àŸœßÉÆG‘к“%6Ç‚_Þ[£UÝÿãÆO0hW è;׋ÖW0õêwãÍ( ê8ƒQù¨*Vé[¤_6 )ÍQ×÷cpÎ1¨ºMeÐÎ2ã†w­ÇhÕFÒã°od Õ$º îdr£@„h{to·íðëkI1¿sGº¸c_™x.ûcê²£Ì(Œá‰ï‘ûnG‹|ôè1‡n‘”‰eºÎãŸÁ_½(í¡ .šLâ®-DÞ¤X~zY) žFV÷MÞG—ž›g@£º|°µjÿZv𺇑Ê( fh&Ô\¢èV)Ûáû“ôMØ}Äéú˜Ô"¼I;‰š³ñx, -ù;Ábn­Ü½fRN²&4>ÛÎÙ†¨v5‚wÒøK¶ø2¿ \jÒ²‰QÛé”å‚¡È8í뤡àš[Áö݃­•OrõAWóåþGÀÖÀ/H®°q$ ò¡WƒäV©Oö7˺gòã[V†Ãu,H|»ßÒQ¢ùSÕ½žj -'Œ/™±ë×â$ÝIMXGr*¬­Ö…ž{ê¦{_`§Êõ© ¡a²ÿ -]¸°f›°DôN•Ëê‘x5ÒwÔžvMçY”Ž Êl¤¾èÛqߎñHznŸŸÁxgÆðóŒÆnâñ°`ç€nL?(”^Œ ×z¯UüaÜêkªŽªãùõ/¤¥cuÇe›È´*Tùq/ïÐõ[cŒ…Šý29؈umˆè>Ê«x¹£û¹5bÌ3‘ižŒÅZZ†„BÃË£#Û\P/@ª§8žßôJ»¬·òÿl~ËÇMåãÑÜ«ÕЧðPbÓœ]#:¤è¢~\»;óÕEñ‘çøðžÙBiHy}ö^à¾} lÅ·O¸ó(:“}ê3Ø‚|èèFA?PŽjô¶÷©v ú" €£Úeå_™Ÿ@(1X·µM7 -Ü¥ù5—ÔmïÇü§†ÖójÀs_YÉ-~U¸Q5ýc¶È£yÛGl5|ãR·¢÷Åa²ì=Ç#²¼’^´u›tNåÂbͯx ˜7uÉ@;D—6ìZnÓâÊϲôƒŸË^sž_Föi‰(Ü‚W/Ó-¾â©oŽa_ºÃ@ðᘼòÉ——ªaê«°³ŠQ ×^Žf;9dßT¥ò³®|„®âg‡ØiÙEéÖ‰,N9䵪ùýR‹<:Û>Þü貈äÇò¬Ø\hóo‚fÊê…¬–§ñC3 kûßèO~e‘­:ÁndhâÓß&LÇfCW m`lc8OzAúwÉü€ÇœÈc€ã¬÷'ˆÝ®‰Ø©p>ôe“öMs=@Ãè®?pï¡/­VÇXÆ<6¿+êsþ'oÊ›‘_:.òpRæ±Fý¡¼Oò®˜,s–"—ž<’BVB(Ê»ÌoJZ ߬•\êŽ6_¶vgn]Qb8Þú"QÐ*dÛ%£o,Up$s£7±ÒW:‹&þWGí!›LA³­‚®!ÒñÛxºê]S‘—‚¹¦Í€NŒ!Ë}ø,àXZ}Óõõñ«Âg¨žžîí®‘´“þO¥¨„ -#ó -…Zé0‘?:½÷Gä—S)[õ½Á–VM"½ŒxéLnKëcÁ¨‡qIi£ ÒŸs*r¦Îal„ø×ÛìÄÆæ¥°B(üÂĤۋ×Ñgèå$²¬Ïõ)¸ ìesÃOÍ34%Et¿û`gP¾PI»¤¹Ëм‰g¹Ò¦ì^~ -áÆéÏJ§6U¹Å1{­3?ï ø¢ ¥Òa*²aºtÚ­ÐçÞËŽß¿‡²äÌç®*´ß‹¼z¾æÇÖÅuÔEÈr-Œ„Õ€©O'¯T©&?{tS›$ü—×é|•Œ LJkzŸ[³Cu K½/Gö€-0ØFàËy¨ ôVQãÓ·ê2²ªÔý‚u]f€Æ!§RQkI#ú# -åa¸áо]€¿ãd,[ ¼\Ê^}êys_ï,òå‹á6]L/QO2ø‰Aƒ3ã2  ª‚ˆGSÀ™‰á´f†sŸîA$²=\ZÚ‹rÀo´j¥œbåÝD½rMz‰x$‰9”Òm¢Ç þëMè” Â.c!¶®çoSólc_™×wÃÆ3?¢ØmPÜv¡ 6ê&®/=DX¼öuàð¾ íiAI÷œ!oU¶]úð2“ñµ4c¼èK:F]•à[N@¤Âæ{~ °nXBÍhëeë)±)ÃРf ›•moÊéã:&<@€ßïÈ*“ÚššðuàJ§˜Ñ¨-ØÓÐnnbDA´ÎÖÏ’£Wbä_˜zUSI2¡¡Uø>ìSOX”C}m—ÿãx´£·ú¤3ÿùt£@|Ö¼Ã/-4«t _y/CÁYÕ…}Fî‘ü-àÇ<,ELÎøáÚ_K¿nœã<€7SéêòèâuÞB±'‡Fæ’Nu“A«(óìm…7‘À+„y¬Ã”šõå8‹™>Æ&±ò¾¿€r]éS mÄ‹Kjèˆt,uϳ.þå‰ íóÙšàF¡í·w0ysþÙ__€°MûÛùÉÀc@€õùâøõú8œ1ý.Évª‡c¸¡›VZ,<ô'Ûæp92‘s£}ŠwÝ’‰wÈ3ÛÝ„nÈüâ}F²«™›¸þaßÔÆ™U-ɽ›bæ‡ß/ªuËÁ¦©ÚÌŸÇd^æ\¿4‚å}zKA&ÀÉnb%§«¨ÀÒܾI¨;#øá—þ%S͇sƒÀKZªljy2™Ëæ~*Ùhn̺s˸Ü!ÏÆÉ"ÉʧÇï€!ò´úµ]8“ŒÉ¸bz„í;?h°OK<† )ûpoªKo3•–PÎTÔÍ@¥ ­î]­é²¶Un˜¾eµtpR\o²°ü Kõû4݇:1çcü6’XK7~®º'€ã÷ýnÒ÷Ò3÷ó»TE‡sÑØeYÆJ°Á©Žç6¸¸sëx ér²Ã aš_'Ø{…ŒPp¡3ÌÍìxJðJ‹ÖeåÁcÄj1´Y)úÄmªäð“@I_)@ùÁá<çMCMÊáŸù&SÖøÈìðs²Î=è9Ý,@›‹£Â[«äÆ òÓÃ*  I¦=ÊÆ€{ 4§"0óË4¶ŽÕ–1V\šêçìð‰/UÌí-Üêù«~i ò–Òô…õ ŸG“zÆž[gÂHÌw(ŠN ÕVÁèWê6Ž–îæÂ[Þsn┹UO Ãfòi¤`<ôJ¸ïŒO3:©£T 0ÈUßÁõÑpõ9v»£;ZT áÇf.´ d - Ȯɣl¿ÄMø¹$ÅšŒ*øFÌÙ›’£`ÃÜò«á¶H‹b`±'â€Ë%G‘·ühñQ±ûè%÷áä_~¸´gPêíuüì=ÅÅߦ)ëS¿’cá,Èm-«lvÒ—˜"„}vÀ¦i›Lž»ï›’Çt3“Õ®§Ðv=éeÜ«árr·5M®½C£é"ºb$¨ÎŸcÑÈ£û<Ã÷èuuK­½|v‚^“Ä@`‹œ7ì–D9²sèFé–9ðH;éߤoÿ;MÄhQÆÔÜo©ÛÄ6‚ð£A! ¦ESƒÓHZÒÌþc·ÉÁQV~sª°Ï­blPzé˜â”âéÝ:XB&+€ Tv„àpY¾üÿý†õ¶ÝL7;½KfAÀ=B­ù‚Fé•¶üâMYŒ…F£‚AYCZ­îÀ°µ««<TÞW«nñhÑ÷ !} -CÊŒÑ<|«Ë>’%·­Æ¤…性݇ԛoÓ L;iNœý|]ö}¢~įŸXIÅ¡äïê¾´<\»8iÃÎ’ }µ]GƒG!~Üõw4eü@6Âòýàþ.?o’Kq8.rTýqrÄzÛÜtW²>X5E#ñ«žûç´±ˆÚÅ¿¥Áù±3›×väѸb+ -m )”ñ¥¢Æ¼lDy&Î"ÚX˜ ð'ð¾†íO„'JjGÀ0ìYùâæ˜|^ Ènáʾ†ºƒ! w”¯„¹3äï>ÉÚ@²¬èìL±®öËxd¹MÌGk-ã×2«EÍz qq×pÛÜâ¢Ý—TAM·OþnªÎ‡Þ„UŠ×Uùñ¾Ñ†KK\Õpªëbƒ*ð•ZÜdÃQƒ{•ç¡SýV!-‹‘òí¸gSé ¯·W,ö êcËjÁŽ?ž=Çn)ÎÜ—p²gA€áâb—Q¡niµñx¾¨€ÞZ¬¥X“…1¢•šõ•ýÜà:à{™P¦ î_¢]ìD„¿*Ö*­s' â… ñA¨ž:¾[“l‹³$àu_;ažk¡´$ù`ÙsB&ø¯øKžêëe£èšj›3VìJ+ÛM¥ô&zØ fJ7œ&=ƒ’Ò1ªiuÞxûe -ðrc)Þ^EŒÀ5—Á+Ô¦yå„ÈצøÑcåTÏUÔ_Þç‘ ü€³gu¹mŒ@Å …Ègh Ê´. Ö'Ë$ ì+明‘ ¹½®Øå͘ðöÛ$ÖWvA€åäW»ÉîíËo¦"SþAÔ†y ‚q8––߯I)|»×ç(š L~óÞ÷'âÄšOŽÚ1ýeƒvÿAÅFÕk…¡y‰ÏÆÄ»í£WºU)è+€ Ìé[ƒ½ûQùâ Þ'Á·NŠ'‡8Ê‚A\þ&£ûÜ·h™Ûõ"5öŽ:ÓÉ3Ø¢<@’ò+8¼³ùöø6q™zH¡/þ4Z‹™ÆÑ:ˆ‡‰âªê…”%°o‘4°]Äœf.‚÷ êahkæ~q[ˆ.Q»á<§kôÛŸ{2Z׋™Ÿ×ñ’3¹”CT¤<3ƒíÌìA™µç÷NPÜQhS³sÈ/¯¹O.ŒŒÙâö š 4F—Õ.šDòŒDæF oU#rë­˜ Nxñ­îLjÃk‡^8uçeý?+Ò}>YÙ}I`®À[.$bQÅh€°ý9sæS—-7Þò¡m}±¤Eond¤"Ã1Ç©?Ög \CrË~~,Š¢ µLd³Ûî?'„ŠÔUKÀUt]É»cs¬_»ÒÇÀü>V¯y<¸Gw„Ý Mè#e*æÁýûF®ð¾ˆ:3Ó ŠÕ³î±Ù.OÆ}1pÈÓ+D¸Ó2eâ÷À)—#‘j+æ”꤄•X–¸Oa -nj^~·yY= åQW胳±óWF}?Ûèœ#QòS;®Bfî(’_’yÒÉÄ?Sc…,`~1-•*À¿2]NùñÏíë éðE¸Ï,Ã/Ú`Þ2Ož }ulÅbá¤X ¶¤Å*BVžä¼ô¢¢õð«X¿:ѽO^;нœ;×Ô”ÀU}n glq®YYÓ³C‹žD«a>l)<ìÖ­WüX·?@ã^f9:XFо3ޏAf%Qœðx0®Ñ§V(kãØy®aXz·ýìÃRX"¨žÝ…Ðóz2-ΤØ /æ·údgr‚_þJ÷¦üEh"pÈx^U¤ÉÊ×éÄ“½vêîYmG NýóúÅß)& ¯Ñ¬ùûc–ô/›â× 6ñÁ2°ÎjàA`‰B ?>g[ˆ†öE.®)ÚÚ¶ -+ýT`Á/”Æ`RpÀ}:"¯ç=”ü%̾q`ˆ¦²ìè„Ն؀ÊÅká=Ï"dÂ^>ú2b2÷7›²î{†ûÞ Õ-á—³‚nÚïË1º`ˆ¼#u,Ñö¹p_…W»ÜÁÉÞ"uó„óû‚BRr^zúnçÞ¶¬ú³Ìú~fXVE) à?œpÂÊ w×>x0´õ0k)¾/Þ’Nù"áLö«æó^ƒ*û%Â-j=spUDO~ú!ëwÃ}¶LˆF4&„‹•eÀ¢ÛÂþˆôœ|n•LwÙšBb#8%§¿™ -ư/ypQ5ª¨k*¹ÓÏOhüüo¼÷½ôñþk®Ozž"[2§Ð¿›t¹ºeo‹§ñZÿ*í³ëóZl/ÔxMuà ' Ÿ‡+ýó`¦ž~y<Œ³ú´ -¼ŒUžAÞ^‰ù\‚û6󲣪tÒšn>€1ÀÚ¹7Æ‹ÃCY é\ÌÍ K8”Z_Å›¸Ä9Ú%A¦7ì -üvœâç1n±’ÓBK F¬gT~üŠl…€Öý&”;k‚4š2¨õV¡˜¨Hh'ØWÀjÌOUúmÞW)µvÎþ²øûfªÛ—ê±p.bNSÛ{ÃåÿÁ9„z» }Ø”òÕé“[WÜußpU¿ÊÚùX"䨺ïÙÝ‘Ré8wŠŒ<1äÉ`úχq`éc`…â„’¹T¨×ø±ÆÕgQ"IV1£üŒ.nÕùE µU)lðWI -©2°üœî4ÄÊk8Xu£| ‹FlÒþî\•(äÿé[úBtkOÆ'Fn·œýM@4$'Ì tá÷&©'øÝ2åÒj²UnYºÀr¿hö½ -ToÈ`Dk Ðà?f«?°ïðÍþ-p£É‰ˆX!„Á¹¹§o(~ó®ÌškþɾìókcÌx*ÿÁÔÁÀJ›Ýƒ)$‚¯‡fޝ¶s„AI°Èo(¦7\Í÷ æ¨kÕ Wâû:8¨¹w¨f ï%ÏãÖY+ž„$DPŵš@0×)‰ÙÅmÎ}ƒ"¤Å~² ƒMxPun³íx¸µîd•­Sƒú‹…f&,aí7ðÇš -~Nu2 ’},çÇãu$©P¶^Ò}>qµW·ÃW­9ü¾ó—cAGH³ßN+!d‡LæAsB\!yˆpª(ËcÊçØú7+1zúïKMpR.;.I‘zÂßµ¶¿ë÷«Mæ 28iÝL~ä)8áed^en2 î8$8dv`¥YZàfT°oÖMÜð¦hí„ê¬û¶§LÌ÷9¿E[PQÑÛ£Z‹›P¦³e(G¸ØQ¢èAZÂÊÌâºe–lù+˯+bà´m0¾1F#W…áåVÁ…'Ãe­Oßµ¤'¹ÌGä6"JYˆø|W"ö•.,àO\p+Š}–_†£‚)ȃŸý¼éiÔ÷YØÈüœAšNÙ† ¡fKhÞo;…“_æ=™] -ã‡pÖðƒ–3 Éí÷V'…»:ø¥û`¿þ#û¬=pͪGÖ­üÈwÃ@øÓ®Dæº ØÃ#%gÖ/^cÍHP[cнçq(†9Ýôü:bH±Ïþ²ô ðꦊ[&á¾üF5htS³š‘A7î^> ¾ü2aƒj¢@8¸ËBŒ¾ÁAw”, K¶žøšÛw’óH²âŒ¯õ׃aK&w­ÕÁO B~1⬤À.=!jf4ù‘OÄòðÎÍ0‘ñ0ß¿#Ó…X€6^S7‰À¾®@ëcÅJ´ŠäůŽè¾-Õô±Ç¥.ççAñxkWX÷RL«5޳R‡ Cök9A9Û"•ßPˆ^>ë>é[»Õêò¼Ïï Ìɺ{¸gÀjheƒæ´MéG‰-Å2hyK?›xnûóù{’[æwÉüúðJÒTúÀº;αj%}-”4äwÉeD7t†Fp™ƒÌ[Àt¯ÈQѱ£¬l£n ¶}‘nR7µÎ0Ø·ÈáµÏí“™*ñá¯ÙšLï`?7ÇäÖ ›Õ™¿&èéC~äL“ÿËÂÏØŽì#(ëó,¹ æv"ì£;jnãøýÉ-[äÝ_%õ^×°d"ÃUå¥fy\ Ð]×aëÄœÞàóÌ7/W™@¦ uh܇—­%tMŸgYñAoÑ ÚÖ–uxÄ&÷w_WûçÚG<‚fAßÄ´4Ö““QÒÌm -ZZSfÒº.7@ã´pcD@żô§7"gþe»Fo컑Ÿ6ϧ~c†˜^·Ìò÷yÀ¾MûˆoË -Œà -âçìór|u·Xq  /CèÈd'œÂ*û*îyHp ÅKs³©4‹þl¤öÝO{€]#`sò¦u_Ç%?†›Ê™ÇJúx<É`Íf«OR^?‰/žmáðÀú`ö˜7%œ+öã_î.÷-÷·ÌÞlA‘‡˜<‹ÈœËˆ2ŽWo©ä·o3¶Ómk˜÷!W1Æ7C0¡é¥Ï#¡ísÃk/E—ëýÈ@Ž˜ñÿ‹ð;n¥û¼¾Üù°² hWîåÆàNsÓˆ¼ˆµlŽp—@˜û•a hû¢•ãL -UCà­Dš[F×ÖVß:.µ{ÂÚû& - º>Xy´9 ˜%l~.‰¨&Q˜r€ÁÜVXÑž,æ“óˆâ¾ hjxš‘/‰^&vûã$ P˜_ôîS÷ƒË]{}ºèÕ¯ÙßIJ/©¿½O%Z”þñœ¡Íx4‡‹¹ëqÓ,¯‡Þú@~Õ>CäfvÙÝImáÆ0ùPg&oSȪð>5i8¥ò*ÕœG[pš:=Ž&°}Þ¢ÎçõAÙ š -Q,uŽEl²€à7d§ß…’Î:±«xÎÊ‹V±ÁÁ5ù§ÁÿDVÜukÀXþb ˆ× ›xL/ÐÇ>•s'nZÄoÌZܲ+¿ÇqäAË>Ѫøí‹–3sß8ö¾TàÄmù¯ ¢jÒ)¼I³Q–óHþZ;Ï™ä2nòÃÐûÑ5…ÖÕ:Ð}чù±YéE §ÅKQëC¿QÊMÌ'Öül°]•·éöCwx¤•oÖ‘$€}³ ­°˜~OñZ6Q¼©û¿ 6-ƒgüH5 ‡r3 Ì>lßnþ3γŒ”èÞ·Ã)ÂQ8…0å_µÒ5×¢—‡8ü>íµŽ"Àó©š³Ó7D¼Ñ¨[ž0À¯z÷Jêˆé²ïä fZ¯‘ƒ«þñ¹É2ÅuF Ó"ƒÁƒDüùðë@ã¦Óól žiʬ¨ÇÃ(V˜]Ö©ÌÂá­ÀæZºO™éü\à°ò>hâØIŠûÁ>QKôõ’f¾òv;“Þç¤;†9? -lî;(‚$6À}€‘xßœåÝŠff^ƒOîëD8q ¶U‡•Q©ÄÎ<ünä@CrÃŒ÷KØfw~—Æù½r`âŒ9µÓŽ­óè{ÆÜ¡z\Ÿt³^ó!rkBŠW°/6¾ø ?¶ŒŽ2Œ7-Ï ²“üp‡Ó ¶nå7‘Žî¢b^ðÕ,‹ãB¨ÅOŽ¡¡[x¡a%挄ó(îül_²÷Å. ù1ãË?.ýÀ_œÎ‡»¯¡ß²$T"‘Tá¢åß<Òà“$Ø|×¶K-Ó“‰È‡aÊÜOp :¶Àwê—ÖÉŠ³„ãnZûâFmšô®Áás²Hmägümgx8PB3v)ºé»f†xn9¬·™›XOxÀkÅ‹ÆÅ28ŽÇ‰öîlÎÞ«Ù¹í‰ûšF½¹¦ÌÅ—mÔ˜“}S2øÈ×ÝTcò3Ï{Ò¿é‚§©úÒÂ-‰âOž>Š3Ì»/Ð_@qäQT´yŠŸ£~Fj#èºo–V…¬jn%ª]Z»V]@•]ôƇ:7\†û‚Ðy }ss;aôB¢9ÕþäÛö‘µÃ*’úebŸ(ÀÄŨ觛Q?öJyäáðkVlfò³8JMƒýèäm^žñÚ>j’F¸/5iÝ¿ÐÑ.’‚g\ƒ6¥ÙK•‡ôWKVþ^Ÿ:¢ÙŠ2 ¯%$ž³àáêHZÃè5ýJ4zÒ™Yß‚ÆbðɯYÛ²ÆÝ探¡2@e¯Zeµ‚•çF¨Z¹x×£Qy6˜*ýyI«(jÕV¡01ÖQõf¾#ÖÄ{þ™ãGÎc†c%]ºK´5¯ -p0㽪 w·XYÉÔÓñ< ~ø~™³úÔ}y€£EH´H­øQo˜)Í_\6~9?Ð0'V<~w ú·¢­KÜÛƒ ìøýäFjµ&Ó·êG19vµ/Ó?8ŽD¸~Øçöýeœ2ZáÂw€ãÍÛšòþðg@-&mÐ&i’b…ØØAÃgCÏrðÓtš[!´EÎÐK¯{ˆEö»Å¨' ;³ÑjïfxM·…ìX"pø=Qñ­ó`Óµœ.8§µŽûl`•QVÈ>TÛw ¿û_L¶>20ßöµdò6ßûšX8éöò (‚måq_Âh MŒyAµóÖ~n®´KÊ~“lð<æ )¦û0Ëš›,kQ½9 A”À'ß~äÐÒ•–"?)Ô£»Ñ-j`Gë¾u;¨NÖ\£yÎcÿƒÄYJ’çS¶:ôM†ÅJ~‘k”x·—ˆMDøþ§U¿ðLdÈ¥ÚémºO}8Èyt«BCSì§2„øÉSjÀµ¹w??‚çÜ[½&Y²„ƶ /p-R¯Û¥õÙFà5’vÌæbà³g²p¬k`×G¶·H‰ÛÝ ]+òƒ` }%Ѱ¾VDÙîi?Ÿ_ÄÓ:ÿ*Á ,p¸)íNlÔÏ•m3È ÙÃ/HtŸHKÁÜ·oá&_)æÅ?ü­ÏåP:1ë1 Éa´‡÷ðD! Õ"…þ—¥(Ù›[æX6÷à ½¸Iã㤠¹)ÿkF…iÈåº`‡+z±Šp=ÞZm0ìï#8^®AlÈþZ%ëùDí£NÔm™T¢ ; cºÌN÷äS2ln-ä’òÀVºÝtf¼ä L6&»o_·‰B7þ¦LPaÝwÁ>lM§ pG)Ó““º8ÇC›¥sßZB¸é†%ƒŸa.C•NðtàŠ+@ô4ŠM¼5#¿€`ºð‰+lòö‰²® DgÙÇñó±øõò§räNï¨9KipòÜÙ£æpù 8ÚÃçOð Ìå>äÎØìÖ÷ÛO™î;¿°­·(ÂÐ J{2\‡×î<þ·ª™*¬4=JwKž.ë2§53hw† üN€&±×ÜL›o;¶m²bÑ¥8ë» Ñ3íÇßC8·(¨ÆÁŒ#¯!-OÇ_Sòƒ{Å «}Ä…b~¸ýâŸj±4„Oƒì{µD·ˆVÍä~ß9ó)¸Ø/2À¶¶Öš¦…w€žÅ‰ˆÂXÅr>V’>Þh¥]¬ÌþYÄhƒä,üNI@×Ð};‚\áe’î1/fõÖoîC­ z ¡IzElßIÜÅ}ä5vj ƒP*íx0ÌÀ2P Øaö‡§ÍÏ7n÷É’ÂtU0CÎö¡×cªŽZ0fߢËáÖ ¦¥-ã¿cäpREØukòò4od?üHN~ñ¨Ôøi‘b÷m¶ î)Pjœ[‰KQ#NJ–i €|›k‘B˜€K‡ªõam «Ve~p;áÅÑD¤:™œ;*¯™Óz·Y $£¢ï«=Ÿ@Œç¶1ü)r†¤aK̼ĭ»bl¾"ƉšãÎ À*üjƒÀç´¤L}Ù§MÐR>Á«ðç¬Üöò@Þ aã¾,ŠåÜùº›pöì¬8úŒÁñíÓªYB8BÜ·7ƒØªK}vÀò^*µõdÙÈ·(dÕ“4ìdºxaúÙ:¦ˆî[^~GEÀósz¶œôR'‚®*G·V©›©¼—+ÝœÂoÍñÞuû¶íÑ -'{‚ 6?Tt_^ ÒˆwJk­b·¦•àègß*ƒ#ìÜi4%>\_lbÛK‡GP@íáèQ– m}4n[ã„UÛoä—äm#Dñ1Eä‡è†x}±?é^â yƆ¯—j•R»Ÿ½ò t -âJêÎÐu3žnŒŠÂÇ£|ßåå*˜ø€¸ñÌÊŦ-.ÌK¡™ußq …4XbºužJ~d‹ëˈ4?¦ÝÿhmÐËf–§Sµ/»]Þc߫ƀràxøÔ–Ò#½ócu„ßûBS¬™ÓnŽAºà<ÔÚ€> ?Rwéñp04^¨“~¶s Äð4fÇí'š(ÿ'cII­„‰Ø¿–Š|a²à q-.pï51žãt­èñô1„€ §35^ÜÕNzÊ܈Ïþù› ÄC$…èÈÕªž æÉï»&Š£ÏC»ÉV_$ÒFRêžò ?¿X–³ª¸1¨Fk÷^l£<Ò™'h« sëkʹÝeL'¢½5x‡(ªä4Ë6<àOªPn—Þ‹»Ä›ÿo`”ÂHêÖiï{¤Ð×ÈüÀ—‹rDé4»_*„Ò4ù±¶'-°ƒ^έè-?©› ­B¨yø]ÈòùõÛg‚•†N#kÉFÚ¡'Üg„¶%)„ð()Ê”Q2EçY ª,Ñ“„qçåçÆC£H‡7ô<¦šŸñ„ÿ ¢»Â·ü¼•lœÕ?f·/*ÄØ®àöé=i¸vî°ðºEß´F‹ã{ËOÕóÁÆ09y¨;¡ÄÓáòªŒßTùÙ4«K×"äÈìXâ1ãGpf©ÛG#xãÜ2­X{y‡ºœX 9ñü@`iRâÝjkÙ¥hKÓñKQ—jþ4cOä}g¹¯¶›_w¶Œ¿6ruqŸ W0…fBÝŽª$šLö“c©ÌeŸ¢ÛÏoRÚ©À¯êÌR˜í »oÓ×ÇfçÔsûj±¸Ïó†ø7`\êÌø—Z¤°O{šcˆ Æý 04îeqh½ m*lâüŠ"oÎcÂ;°ú~ÏýµVȸþ¿ÝÁ©Îºwʃá¿XŠî:ŒX¸Slµ9XLnsÐ×IVÃy´Àa<ðí{ép_0ÒJZy.™¢éÜ‚Èî9¥É‚b”`ªDDt_ïxôüÜV$è^¸xÔN?ƒvV Kù™3YÁï«>>ßÏ8èÆabЦnÍx.Yê N•k˜¼ð#±lƒJ ĽC¯Îêm~Ð à@l ,šT¼ŸI©1Ýç)泸E ÅDž›4ÒB÷àÛL ØžÙõÙq0ê5_ÅEÄ!ž½TLòÞM8 æ”_;2çx¼Tø*Ö—ÜÝoÐ -©ÇÃ@–mðJŒ™ŠµÙªþs¦¥4AVø´¥°‚&/÷Wà»Ï{®´Êù°9w¬mÂm,Ö%»¾ýñ››§f<´_Gyè½UÚAZä‘J÷؉J¦OfÏxùòlÒy@W3þåºiç„g»!Ýààè§€mðâxH¹‰š‘¡ÒÞDÔ˜<¬tƒqKÚ:jɲƓj'f÷hèe1y5ÉŽa7ÏÜ$tÞ±„{a\\ù­óôw(ÀKÊê§ŽeÓ,n`FLTÝšbà:dRÉÃ-!»ŸÙϾ±Ûn0f9HtXPrÂ\⊵è}rÌ >Â6…mXÞfÔn™RJÞ; acZJdŒ÷>Ö -Z˘†Lñ6nCm¨Øà­kg?2lq7ôfòJQv´Ý9óv„¤‘Ñ›(þ&¿P@!dŽáû#Ç zàÈ„t|^[ó§Öµÿ¡¼à$êvPBH  ©í²¡t¥÷CMââ·+¸í45ꟼú›²×š×âyÜ!Äôaéí ÅŸ·<¾ÿo眕2! ÎÕ»ÿ–÷nŒÖùtÅÄá7ÚÊ+P˳íØDqav{uãKõó‚ 9+KÊœh÷O2]]Û®€*’Ôý>8á -ýð—š”ˆ‹ùU›ÖÏÀè8Â^¾Ý,Ý·Rª¾ˆ–ë÷’ ­ÉL'°çC¦ñÝ^#2õ»yÀ;¹nh"?²yàƒGz`l7¾V-·¡ÄÞX;=° àW¡ù«µ$•z[”W\°Öµ¬kú 4ʽt­S"µƒ}m]DôÛ…¡'¬]K]bÆ‚AÜU¥;í"C“Ë÷Jzk×¾%Ý t§ ¹žÀ8›¿MjÌ‹vŒŠý„îÓ•W”+£-7B™tíö®CùkjNInø¿ù›t’ ÿyr¼ã³6½|¿Ý¢ ÝsæÜôζoÅ”õ¡.·ð· 3-FáP5ÕˆI¬b·)¢ 8uû?Óc÷£èàùu:ÑÍóÝ?u{"¡C÷ê{4ø»ûýȇÓOZ‰ØâAÁeö»þóäº/²ÓõnÔ DGnL®›Õí»g:!S¼yXçá­üuÇrÒ§OPQ’þŒJ ŸØæ¡Ú]ø±zYû¥ÑÿýfÕäX¥˜ÞýÕêÿŽÕÖûîµÒ©â–¨D·_#`€’D¢¦9ì ,&®zZB8–‡ƒ‘$ˆQÄ@ƒ Ä bˆ1 -1ù‚ 2LŒ¡õàf²;E.X~šÇ‰èr÷ âÑ+®¿]óãf!€ÀŠÖ^G2þú{Q¿‘埾)à÷á­2JÔ„£ ¿­<Ö“ÕÝ)àGaÏ$ÉŽòtÙô¤éf‹=×ü³º®f4g¹qH}9«‹ðh«Ü÷% ’|8ÚÒÔ®>…MZ¨ÏžJêõ¿ífà4*F+Ì–Û/‹Ÿ¦Ë°v'ò»EYlð~ 2¸böD[=2‹¡bV£W½²‹~MíxÝA÷¼?A†TsͶ¬±Y‰Î´úQ?>ÔQÀ‹'ßE²v“5Œý¯ és¶“®ÏgÙ.ýn_ ­¤'»M~kS¡ðäV3TaPÒ-¹r×¾éÛê…³¢åÎúIÝ,ÆfcÅC–²?øŸ)JŠœú³.Ü€Âs€¦O/î럎ïÇ+S°Í -í³ÒÉWÆ|¨ãn¦M%ǯf½P4¡©”P·YPø‚€í¨Ÿvu‹ý(Ž“tõ·“ÿˆòòSiÝd±›¾y¼àó½`Ñz öÜj-F.À¯ ~þ»ó†ÛË -Ëae“:ÊUÖ~BëXŸé÷TªY©Kx¸@ë—Ö•«4Nª))–"ècGÁ—­ï MEŸá!TnU óØÆ”ž+JèwrË™*U¶¾wÌ9¯¼Â×8ßkÕãW󄃳|Ÿ^„×Ëé7t3~t?â·pY 4JEI˜Œj«ðï#³ÕˆÛûP&ðÓ\ÝNAÆgØwôXÜ)êU{Ö)ýÎà -T»ÀÑ䥠ÜÇœÖYù„ªîhðÃÑœŽv­ÍŸõ»ÀÃçþç ù—€u-´ûÊc1~éÁäæ ððLé¬NÏÊטüø;äg(÷ŸH²¯—;rÌï¤N6'~ùë3ÊÄI”ÑÉÚRgø—:Q¾úyæ» ýÚªGì‡ÑcHvGÕVÚòÃtœhhãUuM½?=ŒŠY?¥fÿ|შתN©ÐO¶~À·XŠdþ{¢ùÒU¡^ŒÔD/‹E=‘Q (V÷§(×gasƒhår›, R -⬫ݓüö©8b˜±,¦Àäæ ð×wp˜ó|ãMdÿŠQ5îïJFŽÙ$û°²äÁ}€ÇÉãõ)ÔÇøô"ï-®×bƒ¸—¤–®k޼0\i[¯ ÁÕzlñHðÃ2r—¬“@ x݇J6¶îå·²©¡pøž¸ûl‹ö Öu%Àê_·¾óåk§8˜öĉ®>ØrâL¨ƒ©‚é2J”î”yÀ›‘~ò•òïèüŽámúÞ!5h´%vìæ‰é ¼-JÃ{‘ÉÙÐåÖ‹:~·ý_Í»„™5¿DõsÏkW™Irwªwì2^Æ/7yxZn/ß[óÞlTÌøí7ÑÛ¨$Ðn Ÿ G yõ˜Ü:ËOö—Ò!ò}8êyˆmÝ¥ sÁ1&{àh¾ Ù\¤Ÿ½î‹—*8<ÝkÁç%\±²é(骑7“×øõKà>ƒ¼TX% /z(NWê@„ïØžDP&Dsh¸üt}Ç“g½H¨r-›:ì_HçÃJÍ’K#ê9³ø!0È’z},©dȚ͠·VT1_¾†/Ê ÷qÅúeÞÕejFv·@~uFÐÎU/|¬d£mËcîÇIÌý:˜~§YaÅ3_*,&"‰‚ˆÂL„EÐ’ú9‘(¥kn.*¾÷#ÂÏú*²Ô«T(„¼àéåw,¯ª7´ðÐ+µÄ´.SnÌ>àéqWTgŸ—øõUX˜ËÜ5tÇ -‡î5~r‘É]¾ö¢6b'z™TWD€¡Ý„ÑcÇÍòÕõÞPQ~'ž&GEb7ô]¶…{ñ—ôxô>ÉôÂ÷ðÿPÇ*ÄcˆZK¿Ó¼Å©•—ÀÐw°[ -»NÏJÞ@ØšüÎdÓaÍývÉÀC8 øŽ+Ë%ˆ›š´I¦D±çGvà÷¢-ØwÙ€rǰál•ÍZ,Û¿‰äþ‚w­†y4<3ê3 d“a%gŽ)[?£ûÝàßÞézTŸ~{REúýÂ1«† zØ0N¶~ß]rhÓäîü:üZök‡„‡XޛĈ¦”ŸƒÎ*O -GÊ(Ñ&†žÈD9S—nv]pzÇjܱê0ÕæN’\—ÇŒ$ -ñ»2™Dª%à‘m -z®~3ó‰Ïº9ÉvLãÙ2WÅy²‰ÀNÀ§á»4<87IîÃ?÷±Gí}C/fln÷: Ò)€Ã¯æ%¯¡ˆ &»®£ßM›ÞÉ8'Èxøm~Õ8±+«sÂÜRüjrQ}S¹%MQ²ñôrbŠ=îeàjü’aÅÛÛõMÑK@ïyLbó; >ÎH¢…_›¢PYqeîÖ!˹j«Þ8åß“%׎ò-í*m›*ÃÔyz Å,*ò4¦aÈèŽöZ°¾RˆèŸî!8ƒÍzL ?Ô G«,”ôÊ6 T@sOOÛ3I`Ñ_ [ 6CJøÅBå×'{«E:Ò~¼ïýÇËîÏ Òálª\U'ªZv‹'á#z.|?oÏ-I¤×îAä T¹;î¸-àëÀ èÔ»ü\öðöpËR\«”ž/à'ðºucÐÁ²ò»~Šùäáð骕Ã0Ìcò.[R©º“ZPzç—ß~<Æ€_­6ÍHye¤‰çöšàP^W¼©CºÍ&¦};†ÄªÔ‹Vy¡ èf8¿ˆÓ%žóQnNœõМâ&¹£˜J¢Ãö6í«},‹} -9[&$šF¿Òáøk`°ü@ ¼R\k/V}ÜuϺ=ÌyjÇM8/òüKçÒ¼—976 ôoå×ö4(Ëtç26võü@q Öû8 ð æCѵQŸ„e²G´ -IÕð ´ê¹Ü'”ëšL}wäúè›Ã³ì¿ì„–1¯þ•ùñc;«_B¥;ð̳n±ëÔÀjîK0BÓ7hŸ¬r¨UDw¦Ø|°ŸâèWå¹üÄèd'ãüÖéѾ^í…ã'W꯸Êùc•-N+r -Ѓð[•¯e›® -BÁ9BÇúÛSMuOÅoKëøÒ”hå™@ÆW&¸¡À)Û WÊÆž—ðóÇMʆ«¼M+¼K À–ê3edßñ?暨Êí«ÁÂ÷³²°Œ¤~VÂÊ[ξ -8Ó…ƒÖ¿ ”E! Ä@>^¥å›Ï2¦ßªó"ä¤\~_!¾Íˆ¶ƒ™®ü·ÝŽtá7»ü±¾øíŸûá}n•çóÑÃTS/Ô `¢îë r”4ìŽbŸô½$Plm³½ÂRƒ€õ1·Ø-³à§84ª逦àÇ‹¶ˆq¨j³¨MpÇ p^œ··õøòˆí¦;XtÛ,g=Q|2gÙ&»…aݶïH[˜!í] Ý9¼¥ŠïB;©YpýÐX$`äè$ŒJC^‡w¢¬«Öä>¿þ`¡ á;Ró«ïusD‚\žVæè–çlcæXÀJÏ€"ðÕüpà‘ºææ¯l¼í~ )˜§õüãŠbÊ9çñúêcËA¥N Ü”t(˜˜'z³Û£ÑûŠbÜþGž÷ήd´›³j&‹M¾³I<~r*†Ÿý1‘åò‡çæUi£s¬x ³¤ß©œX žÕù©œll­ZC–l4{˜òIåû -ÏKöS´0¬a³Uƒ#;@ŠÈýø™cùQÅ}vº¯”±¹ý#w8/{ ºë…!~“GÖÜö°LXÕo‰C$8d;㤡6*h Âø3ègÍŒS„d'DV@µ&þ’]0¥JríµO±F}ŽÀ²úºµ®'yü^#p“gR-÷ÏŸêC± Xå'> L»VÏbgÍ¿¾k6m­þ -¹‚k°~ǤN0ó+ØŠ~«G©Riò¤ rC=ÁÓÅçU¿~’6¬¸Ü:ÉÄ <&¼M"/“Ê6?(84Ù·5 ~NyŽ…u·V##Á¶`å‡ÙíIÆÝVâ¹Ûö)ò.ꟊA“ÆÕÙ·SÃ7Sg% z Äi …ñ_äg!£³†|_€eœü)Ì÷®î‘É®³¾r–„õ{d ÎÂÁõxÖÍÙ«ÉE§ýXE0‰™²o<©^7x}˜©…õ9iüÄ»m7=Žñ€!-¿§©^´*Ù^ßëM½ˆ.­O+‘6°Y£R>ºx‘®Z}SCæzüxvh`}ö¹jJK‡®iü*™lÌ ç³¤æÁÙ¦ÀÊôü:”íZ²z^<±\ý¥Þ ÙÈ̸ÕïqBæT\÷øÝ‹ûöƒÓf8åø†—M»‚¶quÇqT .Sûá·,«ÌرÞÓùƒ%ÛÄa -CŲ'fsàŸÈ8®ú¶H4h?´^´‚×&4à‘ôÀV±Ìn/@1¹2BpN_¨ßíÇ$9_; Žn}]m‚TÞƒˆE.[—”pP7ìž;ó¨ÔóPØ»åTê¿,äêþãïmíõ3hRÜÎpO­ú-P´tU¨ä¤2ZÌÇ" ^g7ƒ²zß$b@ÀÜð¨D«Ÿ´z⢆]xì“=Áÿƒg} ‚C-hðøÍîàШÜT0ªúú…CËÿcÜÁ‹ð›£ŽÃMt’8ƾó±À ->GåhÄ;¢0)@BÕ ¤rÍ ááþe¤!êqV\ý`¾ -NdX~‚ë—,ÒéUö\âĸÑ*ú·×›v'OØ$In Îvü²…‡^÷¿¨ß*+‹1P·ɥ^}ì±ðÿõdrì°˜` „ Õg\Ý­)ÁÜâ×ïVšuÉuw†UZ>JHA77šÉ w• žúâGÕéIcqÊ,èf0OOYØÍ­\„U¯6è1‚Å`€-wtºd“ŸUÈ, ®Ûöó7\‚q%YÛZ÷U_£]|ä~hì;„Nnõ]¹Á¹áÓYSLèx®ÍšóŒ»}nÃ.˜ææÿgßɉ~›ð[\#7rüÓC¶’yçÒ¨»ëìzûòòN;”RRk5˜fè= ×Ñø›í<]˜”Ù‡;>]Í÷—90Á<”½áÜ2fHO´JYmbÁðc€µ¾%B`»?/ðcü°©Ä9ÙEÇzÑêÏhÕ%Y®ÃNny9ð$¥ 5ZÚã(Šèsx4—ááÇñÃWû—«1ƺƒ?ØÇJ~š¤míûáê.0Ùuï…;íÀVÕ™³µÄío3rª›o¯:Ùó¿¨ÁaÁ®‚ŒL¹}ÔEž•Þ´+8A­n\½/\Ì^ã{‡QŽÌÑ -cVO¨qˆÞÌï€MMÄçèÐÚb¹ 5€¨ôí…9Õ>Ö÷â;D‡Çךh峜d ³©~¼yˆÐ3èT\µú´fÍG½tî=öÏšGŠÒ"X¢œømËr5Òßãû< ²nf’¡ŸÆeê½§ÿý9M­ -àöb!p ·bS$“aVÒrë½JÌRöiJÍ\—9ý:x_ øð»?öÕcT_bÜÜßJ©tT7Oo‰p_›ÊNñ»ð¬Ý« pZöA@àúƒ›Ù—Ówõ¦ÛM;l¢ïuT<3~ úr=âú  l$n1X³ú @”ØØMœ˜ö ðË]°z훑ö¢6ï³&«ßýŠê>í˜Ìð\ëŒ]Îètï"Ý2›•aóÿïóø·2êŽàÑ»îÏwfæ[Nz¯+<Î)•Ó,›¬¤ms ÝÜ ›gŠ•³ÔÑ&ZZŠøfSÝ*¤*£InÉ|çywЪ -Û[pà·Ì¾ž„è‘´F’ÑÝ;=Šö8P悯•…öÁp~vÚzÈ©{ý˜©›îÓ]âˆßÅžr…º¯Ãpâ•—å¸Ì9½Êûþ„}öÉ`¦ưS‰zºñ,k½’¤^3u&Ò³F‹whÌÌIqSR æzbªïâ©%¦3¾íN®î˜ 5”çSneø9˜nÂ@uu37ü^rÙЯ‹úL0s…—l|«¿€“]ÇLå)Õ6ÃyŸ•€ºß„˜¼üúýŠTRù¨› ¸0ÌÂPö{K O:§¶Àn‚X+Zlúý>™áé«‚ÙŸX€LÆFlb7Ÿ1ÂXXÏxæ)¨Añ‹+pMÎ…£69iÖ$?yf^\vZéç%3Æe¾¿]„ÌãçAz†ý›ßždƒì>Ö?Yªß‘Ì}Y¹ÏRR;äÄá[‹ß_϶ê¾eÏ?qÝ_ƒjÁÞ^!ñ@ÐüqCU^œÐ/!d¢·Öç2rìŒÂ”!m '+ÂÔçºq½4ÛÞ¦ÍÆdúʶ&€Å(Ä­JT#Ä€TÇ¿©M$Xyåv”[фɨáGÐ ¨p*„ñŠŸ*Õb®CÒæ ÙûÜ·L.¢‰¯AÁ29ô#XeÌ0Ô˜§|å± §V¼tÄ FuÀû\jÍs®Bßòucó#9v@œšžÊŒà-\jÓ’Ê­ ?D'OFŠQ÷Øà:s ض=³[!­ò¹õU=<ÌÔøí’¬J³ñÛ)²n—$KÇB|¹ÐX8r}–?&þ+¿±Hë“=¢Ûè“Äpõm©Œ@¿Â1¶ò0ÝfmØ«©D÷ææÖµÖÁÖ&(ïóW­ß'–°OÝ&ý_x“d„&Ýo‰¼Aq«Šr­úD”JF*O+7ýäíð´>Å’µ¾3­LzÓÝG›1~ÃÛüÔõsr³àHH(¿ù¡ý¶öñ‘ â]«ÛøÃVë„Ò‹˜‹ô̦†ЄG“ÐÏáabë“ô2t=œvÙ'Z}gRý4`ºà)JÚ!hút ûŒ0•ë`" Àn¥ð ¯ìä›úCüŒr8ò@†÷°µé`ñÿ2øØŠíDx8’åKŒ†ýÑëC©}¡äìF0=–}éóSùÐ/g–‡ËVqR2šºnfƒ§ºçð¨Ópr|QjêûªçOuó5%èq¸ÃEndÛ6%&’ü¦Õ¿1DÜæ¾²lð“ ûˆ.Zë³Å¬¼oªØRao“Å>ü?&ìë«uœËñ¾8¹srÉìo>NérÈú$ -.æ†cf੼‡Rt“H¾²ßóTulŒ{§‡²Ñ  ‹øVw8@‘Ã5QøðI¢ŸµX:è2}óä­<Öcƒ&ÂU74²äQ[¼Âb¿†¥m¢›Yg O£‰œ@Ai±Ôc6ùÅk9Ï»ÎyÈγ”Ù&ÏΓ£»ÉÈÅš®UkhÝgûv•h–qÅ6sxè?W.)Âz¢YÏ|ëâï­ýÜv@s§@EÂéŸ[êhw)õï+ºIõY‚“Qz°òÁÛþºÁ{2y7xŠ,âœÞŸZ\€òXÉ>5Õfä$Ž“ºöD›èJH¡v/ƒ] ß#аO;Xæ<#]8*ˆkbAá1¬oT2Šø!d«#ûÜúô¯bd™ŠX§DýDŽgÈÆ®ùDŒ7/ní)øÁ=éî0e!ò7iêfž°¸‚ZÙüRƒ?š1·ég08­“•G[â´+ÈØ_¿-(±‘ªð¾,×O Ø<Ø—µE ÊÑXšóÆÁM“süú^¶ô´O±“» l îJ»bï™úbĺdCþH­ì…ßµ7[7=ƒ«Ò÷á@dÝÏO1ÇØøu¼Â[ð±ÓÃ/j{©4KwQt*‹R?˜=œ†ìµò8+û }äÉ6™^8ÌMŽ+®Õî<‚,Ôn-ãçói ìL_¢¶øÿn\˜ß+g -ä·Iù”ᇳ÷¦šà:³±EºOE³3>¢éøHwJÖ<¬X4á.‡ŸØ›°}……رöT”OšË!ýÛ`÷ô¬Ê?<.?‹Íc,Ë·.cθùÀRzx üþý7«ÝëuJCúg‘~)áä—X³«îo/]d¾ÿÏɬ÷)×O» ŠÐêý$Ii0HÖÝL³ÔÐY›É ~¿ˆrI±i–ˆ*ÁîÄSëqõî™C¹ò£;2õäO„t¦«¸8[üî¸Þª~ ¼ÒãHlú´µöC8’'l3.kØÅéi½?Õ¼GõÃ!m2{ Àªn|°5.Þ©ˆ÷a(Œ©údd •þÔˆJœ#˜¶Œ±„ÍíUkÓ58 œüÄP=±!?]vJk‚ëì%S0·I¨³)tÒÀÃŒ]‚çÀHL„ŸŽ:38¯Ÿ3Žix$eà\¹÷ÃGê["0i Ô~?œ¾@;À炤˜¸ äoûuy*— È·°SxýÀ6üX¾>÷Ž -:²\ÌnNÔÏæ¦Óú8H0]ÕûéYXà÷V·#¡®(kj),RÃÄ}—óðx‡Ã(#?þ+â' ¬4éG38饟éÃàǼMéüò1²Õë_s„"=)S?ɹûV{Vž½o]>­_öiWL„ïx¾Ä¿{ʼBx†^Ÿøù˜Š²H •ž–æâáTð€ ZKÚ‰“㬊Nê»é³Ú*zí2/¿aÛ„*ñ‘ò~„¼—³0»T¬yÃEÛe5nÏ<ùm¨­òüXέO ¿M,\ #~ÞV‡¿ä7üzãv§Æ´7 -4¶=ü'O²'® môc<¼Ã ¼§ ¯îfÅêæFH:¶>÷Eôû±ñ½M%ébS¢F/â©ÌPJ·ø©‹B±xp1ºVm~;%ò):·\éÐÔ§ÌÓ·&!Â¥‡²¾†EðSƒç=ý†XIX³æÑòþòÓÀéêÞsNÝ—„׈ôÕy÷=œ{±…oÅ,_QŸ÷1L²š0vZÌ^(@G†Hl`Xz6Ùîªõû”Ôä&Ùܵo¾À[*ed…b¿Áuö³[µ©¸Ü؉´ÔwMbq— ‰D>Mü²BÖl¿¹]¬—ħ.2î"ÿD‚ßç˜5øÁ÷ËsŸ…[Á³Z²Ö_42¸A?pD3í -¶¯î?‹ò3÷ ½·sˆFùÕÀ’“gRÜDî~™m}T³pa¯¾¬u—`bÖ»QõU&Íø 從h9—1QtÈ7íõ‰dRkZoÑE?“-7G¥øFêYÅ¡¨Ð}€Ã\~·`ø’Pvßû|¤GqR3Ô§¨ŒmO¿[úOÅiÆP‹W:vo<ÈŠ7 × -8±>ßmí“ïI”ŒHZÇ7ï¶©túFDjo.sàÄgxyE~ •c²l‘ŽÄ:Ö§èXmªWL¹(Óââ¢ó„Ÿ¼>ýÈ“Rvz÷ûEù6oL©0i:ŽU)ÿºõ9H…ühUïfmëÒ³{ª|V¿eëž=ƒj¿“ú§ûPæ{óy’S6Áð‡z£ä`½~g‡ÐØò{k*+C‘E¥|ì³ËTꈱÿÙö®›óm6Àû-ˆß…bc;[×|óÿˆ¬-ÇmžÕJøå-²¼Û$ Ðť€Ÿcnütw±bY! 1œ`̈WB ¬|ÙûÆjkàòU¤³Œ¨^j½›Iƒ‰Ü¢ßS”bœŸ¾åÈ -¥ËZ(¥» ÷5.½/q—"Tîs°ÏåpïÐ*ĦR»­D›[l”jÒý¹¤¾J`˜+ëÜ…bU²Å&xhη9L,…øíÄ ~îS³ ¾‹š{iú¼] \¿táûx³"bBo’t®¢!–º¶9‡%ûGiÅÅà·â<èz™‹L`hæá°K‡{0µ3ôÅZã ¥Œ4Dªú&zrº1þA&µ2÷!|Ž7bª‡1ˆá$§¤ “À¾"HÖýZK;,Ó`õiĽorqNY֟‡ æ®YÁCÑ3CŠ,ú»u7\Sß±²?ÉË )ªá®È›¢}ÛRã“öÃþªm¿]0ï§{ñÓš‰¥~4ö¦õ–ãÂK"PBé=ûó×lƒœÀ Áa§guù.¿ë×4Áý:n[½P°ÕÙ¯8Á×?7Û1ÂiÊÏCÄyÆàÍr¸I/­/päÍ}Ø$óùáç„‘‹õÄuÛ%/ºO=mòâ‡q±ÉýxO`½Þ&ÁP„3œð»4Ú}4=¬Ç¶ÁÔ–õºhb¸:h$¹.Üõµî»ÏÖ^½›½NT¶íärú¡R@Õ}²VÑlÃV@ÁPå¾vPLxI%Ø ýy°F b!Âß)Ø€‹è‚E½؉Ó@ì¥Z!Ž¢[hÝ®“^ 4÷Bz8|âÐ~¢‡„~Œ<ˆN°m£êM+!t¥Ì6X:«ù_(F9‰з…k[Øê'íºu¹T”bÅíbO¿È§¼âw[Û·¹Ü ~‰/äsݹâ$‡LxuÂRr!Æ@w¯ÂÆð€Y#j\G• ò ©&bkDC}ù¬HRÓŸYHƃ4æán ²ÂÁ‹ ÎQ$‹Øpà oX„³’¤ðãBò áIûÖF›˜|p#¨ú6»Üã+M÷ÃîÔs©éù޽…ÒñSÈ_D½>4d½.Lè\ùjG·g:J<µÌè–„¦$ôk·.p¨OÔ®Œ¯5bŠ_€VŽS?'-;CëhÑ /µÏ DU{Wí±'qmÄ‹$u’Oœ]Ø—ÚúH/*Á©TßZ0Ë|}Š@ê’ëƒV7e ”ÍÍ€À|¡‡1‰!>såÜm<4 Ôø¨ÕÙYše¦TüÖ1õTíÓ/»X—,ØåÂïàÏC5¾o0}¼n@ú+n!EúQX½½/à!; èQ•V¢‘ê°ÅÖ}‰&æ‘OVFIˆTó~o@‰÷mÒª·ì/PV¡óèœÇT| åìŒx1ØfŸ'oyF›ûÙ5?ŒyT·ËžuóÁ-CÙh¡øm|¿O¢FÛ×O³!ö $FÇ•îi¶o1øäX7•ßËzEÏ[˜Ye^u<²´wÐÔ1_œŠE‹†y(`'VŸ1¢øN<ÐÔ5Ûºò„Áãѧ?˜â ÀÊ=^/ÏógâWU Îu•¯9”ò¸H·ˆ»#Ã0o߇Ré>£»F¤ò"Ä/Bª«×K¾äãÇ2¡þö¨PÊvÏ"œkq1óÞðá^¿1VîSNg–ãÕ@1z9ðßk´"7£Ào(¦~Q©dgó×ÚƒNSÛƒ8,O W Ór­îó“ØÍgYîéÌw±Ä M¾ÏnNÃ?Šg÷=T@ËŸ¨å€0ãË¡xnÀ>ß ÿhë<ŠÂññWˆ7*’MÈ $ù¸ÝÜŒXFO›‡HF‰eûÏÀ\Y’˜¡þ øÝŸ¹lN0f~àá?INìàô±ä¦fG{›¥áO»ŽäÑЮî£Ëøárªß>O%»š3®3}eÕ /^â™òµõôê÷(oXœ:œ·f늘GABªùy13ãG@={|œdƒ­Ÿ?uÖ‹½iol£KEõiÚ$õánÔñ»¬UÛ—sHדÇ7Y¨bß.xø9jY·¹ë¿ÁÏêŒ_µ kŒ¹¯5AËäb9\L+k®Ö)t­@\Û]žË$ª¿¬^¡ðÃ¥¨_ÊÅ…!Ú°’(ëuÍ ~au[Ñ‘¿¡ƒÃ -Ö&?ªìovÖamâ‘Tk\MôXÆÐ uõuš:~Ç ç’á\Ÿ‡.d”=xñ®<²Rd¦ãrP ‰¡¦ò3³ÿk,(fOom2ÖÜâç^LÖ—îä/ð¿°ÀÚ7ÿ#=ËУ½›x•šÜö©‰Á?[™‹3÷]öd¥óx¦Îi»†À–S?®¥’]ÒSή°]ü®ð=Á'ÆÜbÈíS«¾¥êaÞ§E¬ídž]rº §s­HO ÕÍìZñþÆV¼Çä -Î%Õ„qL„Xs°üóp=aðPµ©tëSâ¦ÈÆ ³Øg‰"â]³˜èø…e{ê$wBÊ?TTøFÙš¯ºÂI¤»ô£þ-„8Šm;ê'“¦U1NêËz&°µ‡Û(ÞÌÈÁ6¯ýÕÕ'´b©ÐyäZQÈå"¦t×z9†eVâ×ܩطÀM|±ÌWð¬5÷âR…’õÙ„° 6~¥í£Öª&¹ØæÍ -üfÆäÈŸM1í¦Cúö‰ÜÕ=~°?鍸 w&%[þ…Kœ 2IóÎ8h0A~Ü'[Y;ºù˜6cÇ-~žüô1ª±SÞU5I_H©sý¸z_eãhð6ÕCØOj ý<èÒâÃfÂàѱg¦oÌM§xXà‡©CØ5aæÂßö.»NôîBFƒA(¨³ `¤_ Æ»¤0ÿÅF6ïÉðs R€œ0«pÌÃf5§&ŠüXã¡Çˆ©­"ëõ)ðGVZûKâ¬lÅrªÚx¨ûþ*aÐSá}ÔÃ)z¨îçä¤,Ïåy0²÷Na.ÑߺŒñµ¶e¬Hef¬áA1,Û2Õb3ú<Ÿ°¯„ÕçŸhÕ,1.‹ñ‡Åš“lŽ?Jâ—?Œ_BöaΈM\dÖ„)5Ò·O_Ãü–r汎FÏùðîâT²ï¶uÉÓžàÝžÈ4A^1ãõDòø¾Æý|mnm6Îññ£/C£î^¯é]¢.6­¦øl -™g4p -(œÞ‚C•åÑ´žzŽÌ=m½àôLáÅÖù7RQ#²]çŠûÆûýçÇÏ*DGéRe¨ñs¾ê“/]tßÐ þ.zÛ?8G ¨JÂpt„ôÀÂøU<}TÂbì±¾KZAòLR æº&Fž\<¼ÊñŠ`éÇr¯.¤Cý~"¿`¬µxߤ©FTœ±4PªŠlçÕ'¼7nŒÔÛø†>Ðvz•9‚XÜÂ<&¸© Š_rÜ 3:*Z鸢Ŭ¹Dh3 Á/ÆÑÓq¹Ë'y”Ý7 :!›U Gé4Ò_ðëåÕ‚V¨‰vÍ“·°Ç~tžžL¤Äòô-~Ñb UKã ¿ÆÝ±a£GŽ6îýî˜ÇÖPà³ -‚ý2Î !?äËõqã]{õþ.ÍÎÕ&Âe·õhJ‰Ó†ð³³*o©V°~åK…u^6³DŠÈ]…+‡ÀNy¾n¨—+ Õ-èyü“þDìcœ)•ìÌ`Ê!^ÀÞÓƒðÌCíºQ² Qh%Œ¹fp]¬2î]oº„%Ïž<ËzÁ¤mg¯gû”‰÷loÜ™¿™Hƒ`Íš@ѳ<åAø?Äb‰e "+Œg^ã oÌM¬þðÂÆ -ùÓ¢ð_xlîm" ­ãggjxm…Ÿ,Æ¿ÆÑj -©ÏWxåèD›ìܧlš2y\díÝ‚ñø ã&Í´cfÀ/Aš&~¥zûÒá U;eºa¨í¡8QØèžÇ–†á·rO×KxÞ—1!õ‹sØ«5m`ydãz5OQ EP^Þ'N¿÷í—ZÕÄl_¢®5ÿ%ºÇ‚…j[ç¡7E!ã79Â?£´Œ¤;eH÷ÍG¦ÁO†ö)è¿iP™Xp]”3*üQÏÅÒÇÉ}•îÀ.;Ü^öw7¦=W.º½ÇogI¿óÌ<Äo Ú×fð.êøk>LîâšÔ”V4ª²§_4Ø' ZBÌö5ŠÚèƒÑ/™=®pî³Ä´£Óài¼8×;,¶6k@¨¤òhÕÏäÌ}LóavÈXOº±+6Hê·ßò<¸Áá#˜’¬™9•öç—6_Ú2uœqNÚm Òx„¶K¢…›è!,›:15ñé_ cüÃòÞV™•ß>Iy0qyîÃÓS6¡ìPë¸÷/ÒE†ð#жttÁ”Ôt¸¤ã êb…M·æ‹&™™4ÁÇ{¨éf†Ò(:4Þp…þ9w0,õ-{ÿ"´ÜÛçÇØÈVQEô¨ø›`diÓûgl98£ØJÉ”?A™Qù­P‰–龞ŒÇQ—[c¶é1µÒIs|<¸ûè/L¦ÄÿEëS¿õC(»Æ‡_0S“˜?ð§N7ÅÈÅ8DÅõФö I5 ¢²o>Ò1zƒ= Õñ¸¢Wâã[Ø/Æ_dì}¼î;ƒêÙ£HO˜üžª¼„ 3°â-„á‡CßæQ3Y#8œO÷&¶ø­.I1_c[ÈñÆŠ‚vú!l*¨GiûuÙi¨O‹¤“è4¬)–ÇnŠÂ¡(0~ggìGz‚!0µ.²„KïÑd¸»Æ3(—Êâ–~—Sþ¬R‡ÔzÂo÷åW^ûV´ëi”y1CmÚ0 Ý ø%T £sÕ[îò*Þ -ìê…1Æ4Ç ú>˜¦_h­aήùað_±¯85*åfxåf\;Y§› ÞÌ«ÌÃ}Þ4#Þ÷ƹ'•2ØYi 2y(ØåÀ>†ZËÑêÝ©¾€<.Cë­p+NL™‡éö‘l—záH Á-ú"~v&:øX™›v à·XÍ_8= ¢ç¦øÿá©òC+dí#”ýa?ÐiÖ'àyˆGápB£<· ~ ÖAöl»ù´Áo«_iæïÖu£~Æýyú˜Çp'/ûc[› lT%3°øOj •ðß vx–K˜ùŠÕÃy|%ÐÏY=í÷¬6=ZŇ¥º @+ã¦}~^$%ð°%ˆº …•u™«áù”¸´»}ÛÔâçbÕRÊOûçv$²S/TþœÈfä]†‡$y˜o†?3_÷¨ A\fºx¯9xéÉÛ÷Ú‹[¬qf-C¢_V–g"QÎGA#Vf’D–°Å6ÝWÉõÇë¿Bܯ¾è' è;+3’>e©6$–Θ¸Rê³NøÀVNÙF}ÀÆÞƒí}TÏÙØU Š €r÷)ì:þ.¡{òršðs*{1ø!ÁOÊ ;ƒKN9`¶I—ØŒ×8ÄJÿ™pî[ÌÞè²[¯ÍÑìsÐUÉE`=ÑÔ†õ"Ô‡¶58«2âi-½sH,¼°†“Ÿ•‘ãWù?;Ù?èþ‡Æ-ؤì©)>ó Yî^7%.¦@ÏL±K‰Aå¿ÚÀ£ñ  £’…žk/)Œºtzí³eë¢Ä”‚(ºFþüŽ•iŽl“Çç‰]*Él¬O­w0t9ßûþÝæ> RvCyɦ NzfûŒL˜#}›+pæµý>4á´æ´šN‘éú[ÚÈ|ÆÜÃ1ëo ñÃLˆ¡Ø”Rÿ金^«a… À–8ÏzîcAƇZ{M–hM&ÙP&´Û¦I¡Båþ‚×°ÂM€taˆ•áŽJR:Ú®êˆR û¬$øž†évHV¢ü4³ u -rñèHZï8å„©%üÞ¸2uX}¤O¼‰J‚pIÐÒ½}üĦY(úúO‘¨—ŸÉŰ )a¤“Ù¼«‹‚ù3Ε@BÐÌÂ]Q0°^Î@,L™=±ÉnJî“÷¾×_êåØBo3Û—æ†JPÝHP¡õ.‚‚fÛ¤!³%‡k„‡¦%¾õÔ”n‘*ˆÂçfÌ[ó…k!ɑҰžÎŽT‘›¢µðÖ vP;\ -(‚q²GɈÿY 4ÖäLPÁ†Þœ8µC6„ R@åéPbõ_æáÆÁÉ ¾Ã3äïâ&¦Ô“Œw‹e€H\ s5º´fŽÁ›ážr4sôå[kÁ¡]2ŸÖ;9Fç¥8zpâ']oI„µ¹I½žŽ,%±ø< †pz¼µŽºº[]@ÊìÉz‡b(|ZQÈ(Qâ¦h+Éìaý?`ÄòÈ·_®( 7…:ðX? j¬X -_?߸²zùÖ`bØ9"ÔÚ¾ÜFÍœˆ8AÍ#ƒ85mª¾Õ‰s‡‚Û™¿¹GDiÙ“ý#Cg%-ßúIÕ–¥ (ä„.;'éÁYBíûÎÇò­ŸTtL~üùhÞ\”Þp’¼èïr£ÌŠ?½t‘aÉŽ-mµVÅú2jή2¿_©wbÞÆFl­á߯}*¤)áWêÖZ°0ÚÚ‰æ°QiEâ´õ}Çr!;ò­ÅÜå¡ ó…Í[¦ï÷ŒìÄ^Þˆ±Ku&Ž -tpÉMYmKš£å[ð… o‘RT±I7Ì0" l®8A{ê´ZXâêÄÖ --Jêݲù¾¤êyæó1…Nº¶nÝ!rh)ëFÊwMpÄËrB˜ºT€}} wg«$¤¾!L7ë+,K/éÀúÞ#§hI Ö‚ÄÙü‚ú} ^VŒ«…v&-Å(óç¯T½¸ G›‚è÷}‡2Hà׃æA¨²ÊpôæÂãÏHtxbb¿?²bX¬ 7‹›»A6¾»ß÷à$ÌjÐp1†"JóÖ -™íZÏ´˜Þ­õv7çÕI1aôsÁäqžïmÞ ¨Öm©Ú 33ÚÙ­_˜öß…˜c 4õn›¨R­°†Äõ] wœÅ0¡¤õn›dý‡—Pü’N[3|ü8Ó€/þ„àò}—­gZ[@}—ˤ ƒ ÈÝ9| âÆsÇ?(ȬlÙ›þ,´Ê/ªÿc´ôx¡‘jjEÐ6ÐûŽ* ¯ã  \¶Êl'o[ìà{”Ï(Å“*×ï»lå"ˆ %Iò!N­wÓE€,„v2Ð>W$aí˜ÖÜÕ›A.-h;¿™94ÍææÖd·@JoMÒ`}€ïlKŠ˜A0¥ä»Moþ3ÆæÃirâ¸x\à’F—?ÅÒœ0™ÒÜÍ«R@=xð}ŸõrbßälAöýhø§hX [¾H¢"»î±Ð¢ærþ›A€2vstÞ {{ß^p·J8N0³æÏ{a¸¬@Æäƒ|]—ÇØºÁ¯¿N-Ö»…—#Úæ¬%IÌàN+B"AöŠÿ^Öpòû>c­Uš˜‹Á·õqßgŒQ^(5(èËúªT‹ñu[Þlßa~Ò꧃ël@¼­hJÖ­íŽPïNnÁñº-QäíLãà÷m!£"ó¯Ñz]îùI«¶²ƒÌZàÊùË×>¾+qA€êGçåEÈÍ]fP@yö.¼;°Ö!Ϥë>Ü \ Â7{,µ‰DÂb¦Ú¿·a‡ÁMÄn¤ FÀ;ã»—5)Í™`xØ|vàw3)¹0VÖ=6 -Ä˾Ϻaã<$šŒ’Ew»PRÓÀų‚•ŽÝÏÒ3»ÔPØwNF«“aLõaóÖ}Z³þÍ—|@pS×DÈÐÑmùnc½y§'3ðÞÌ_Ù„†zýP„øuÛªª¢6oƒWßehJ^ødLX²âhHç¿î Þºo¥©`A¦³_–)þK¶|·Â¦«XYÜ û¥lh7™%Ùì<ÏóÜýRnÞçì%7"0 )HH†%lÑi÷¤Fi%w?ūÃëÊÄRPÓç¹%ê†ÃWkküWÓC,« ièƒX¶oµÂ|…JhäYªD j‡§§9”„Öå+t 5ØNæî …ÔÑÎÏ4ºï|ZNBÉa6³ÿ^ -‘2ZONgev`º‡âÈ"ÚZéå×±(<9+‘´ -‹úžåÓ8É\Ñe*b9I‘Uéâ;ToŠæ.,Çå÷®£"0wÑëÝêÀf{Ÿ­PiS€èˆTîl‰ùß©P|^†ä —9ie½ƒ¤\’Ãú/C33À˜Å*3i|ïJ¹âu™3‰DãÐxÌAB"Gåô¬}|ršþŽÃ”\"t†CbñhDÀŒ WîðôdË[‘#Õùû>_©.ˆEâÇÇ€ -¾„ÁáïÍÕKÇ€YcåšOÃ*iŒ‰Ì©ª#vX?åk*ãÍg˜ÿôÏŠ”S˸ —D ¡AþrµånŸFé!@Œ,Â̹/fØÈ€~aRX•$ÞüäùZ•Fa”eA‰±ðéIbþ¤ê‰dìÓi/ci¸Üø§ Kex÷w`ó±ã’Ò¾c5q¸>8—†Ý6GÕß© -²± §½\þÛïÛìåyãƒZ«ù*Hnwœì,«´­q©:~>ùøbaü>ã{¸[Ü<ùãL¡’îbP]ãpÝ™A†Tø¸Eý~EêøÿlÙ'¦{DdwDòHëgýo«×¸%ÍTœÑ܃™iáù+N.È ¹i¥âÖ\“×èîí1É;°’»åŸø“ -œc‡ÈžåG£àl¦ÛÈòíý½$¸vS\ÝÆ…3O÷ †ÅyˆûÍf´÷š&7 ŒämùU•:½Ò’RHÀGƒ*+£°þŽcŸ•øš~Öôj^»ºH7'0­á¦8ÖT™÷l¢Â{^ÂÕG:Ìßã'[/û¨¥ë!Ä\5v¼8FÓu®kš~¬ËˆÐ÷œº òÞðIª[Þ˯9X§ÞSÚÂhB¡(žyšÈ.ãŸ]÷ùÏt1ݼآ‡ì.¾'ÿ>Ñ÷·å…uÍjL£_Šþ‰øK„NÆ¡!ZċĶOu  =îÂëòî·_ÙÈu)?ʶ^2ð}ƒ+¸GIFSÓû›Óªÿ‚?qØÉÏï9UÌ% cΩ„ýéRaž¦Ã<ëß qƒ3éMÖ¤öQû pýuÁßV¯Æt—}Ð:úä'“¹ÇVsz·R1ƒ÷`¬ à -Ys:üoÚ}žáþs1骎³QÍðÝ?L«Ûð%pvÁì—“`U8¦Õh]駘Ðí×>¤åFúY–)° =VõýÂã–±ú•­ÞÇM¾n2x}¦Ê -ò,´fÄŒ…Œë¨hÖ¨¹×²—g‚t|NoGŠÊþ"ì·vW˜}v«´5%òòÅ“àEà[îœrã º'Œ½mJ*ÖÛgÏ·2¤ï€èXÏ4ãÍ6Ýäïù{ªÞ“•¢Ë>)s1Ì¡.ÚÏýÊýtÖÂßnòKW<ínÒ×HúQ»»,©_×v$œj>F?”q~Úw1·‹´<žæ- ·.u#Ís¬QÝx¹•%ø1õé~ÝʼnéèZDïþËœSϪÍál t‘c÷“–NŠYó{TØ%ìóïÖCÅŸÛwº0WQ±®ó”mæ 7çö-Zˆ6w•)`ÕVÙ|®ã!ëDkÞ´|ó™úÓg*Я?Å"Ò¿­Þ¨NEéæqŠ3½ü…'gßò¹â1ý¥`-MÕÝmIýžë˜Å°QPûš+ $§ Âöšë½võQ{vä« &pw! -(Ô§ŸI4´ýåê*]m›zBdŒ{ìò„ï7¿ú±»ÓFß‘#€÷CªÿØKíKX¥@ß¿§îáP>bã«~/ó« -E@8¶4xX!¸@Ûÿñø§éŒ¶Õúñþ¶Z¯Æ4·¤eï§3*:I¬8Yº,yïöŸ‡žýd…÷àtŒg|æÄ¹|ZÓøééÖýZ‹ÖúÓn+¨(ê‡Tßý#Lz„p€â«ÄáU)N¢×ªŸ‡õ®äm‡^®L&…Jc9’é­ï[»GœáÁ©Ÿ†v»Jø‰ì#uúö8­·Þò7,s¾*ºSu)fSDŸÈ<»Ó,X²Ï¦ãóÍäèGÛq€¾‹úì·ÖµV.9Á*mòÎWÞü;´¹'T‘šÁ( OGœ¾Yв «›8|•›z׫?Còwž¼ð—&Ôb«Ìo~¢ýöVúM篶âd<¥´Æ/Í8ù­¼Û;½:³ u7B_Yi§ª\s -«UPŽZjƒ·C -&GGÎ%›f¾7}˜pê¾2û.ýêÚ>‚“î ¿¢;¹#ÔÀCi€Ã7þ7ÿÎOŠ.;Ï´µu§²¨¹8£½æýtÖñWtYò5gÏ€V*&ÂUxÇÌ>³ð·b+œAëJÏýV&ø5ä°žþ4,vºaŠÿáþ«)àª,à·¸áŒÈ<è7DþƖaÆ%múŽ&™.Û±xë»ml‚QÚ4:rPe§\Çl¢ýÖÌ›Xè—Ù ¼„¢Êú,ˆ>ô.}ÇõŽ´Ô¯kF\Ø1ý¡ÆA¡ÏgŸéë^Ã,{S?Çè;—ÂPôÉÞ½¦Î „UÚס+ßò©°æý—q9öÑudXƒÔ rŸZƒÖ1Õê&þDîÑc¦# aMLwëýäþqƒ[Í)‰ûãÍí·¤!úwžÉÝeÉæìýV*NÂU¸£zô©è½—"CŸ¾Ô[Ô,òƒÉµUÀIpwöR@ÌH‡ Sæ1¯{¡|ÏûÆ¡ú~dú•ýHîL AÂÁÙ¤0p -ûx+›!gõ}úÆoüá-…ýG k Õ7¯«ìþXÞ%æÔŸï›ì=Fó ay÷ ;a+³C5#îHÀ±Ö¾.ÂÝi!Z?®e¾Ùq%êCH6ö§£·›¯µùwÄoqašâ?A4ÆÕ#œzR_†þ R‰Ó>@ó£§·CvÓƒò&y”àŸ’–mïý¾¬Æ4qöAËËŸÅü¨"¿Ê‹ÄG+Þƒ­GÛ#¿:‘¡k»…Ã-4ÂDŠndá1ùÐÆ“FcqàIŽyzŸÕÁŠø¿QXÝTçAJÞGwâG àG¦9þßw(ÏËä^Öñfï}¶/£ˆT§ÖÊØ×·¾°!Ä>}ÿy¦÷•·ùÃT¬äÞ¿êï¢yÛŒúГdãIn%w,éø à\ºšÏÓêˆÿÚ¼Ú§·ûçì³».³o­?„O¿ý#…õ½>—þ§ÕbATî»öJèd5~؈Ž8ÿ× n°¼7ØNv®¿ÆÕ$½ÛÚx5¦ÿìƒÖéßÙ8þâl̈…8‹ÕÕ’x–­å­årb; x$ëaØ[»çr{Èo&w_¿5ƒĮÄ -?艹-2M˜ŒF”°8éHý™úÅÃRv¿ä',Ÿ×%9Í&9+g¢Æh$\«ÄqÚvñxýú†vYÆõÍNßÙâF©ÓwZ¸ªÞy²Y[–>_DЭ+Ól'•¾tµ®ÂK{ùLåyU[Xû¸1Ÿ#@÷GŸŽÞ®|`¾®P¹r_óŠÄI`#_'õ›VIh8ÛK3›ÒNÝi -:gO¡ÐïHKàDƒ Cð]ïxK†pKZÑ¿3'ÇmϾXˆ{Mµ¸^š1’3 ¹E'°G;ù½ =nƒmëý6®*Ód + 0¾ã¤[x’ã—æ9ºþó³¥Pd—:ϯ{SŠ$íõÿàGörÀå¾#’¹ÂyÛõ=<|a&†P€+ƒ¸ïx‰§ç:r&›*pXIåÛÔw>·.hÈßUõùœîdº‘{ö»®½X;âæ¨Û1Kôñó´…|…UÚ×QÁ;7¦¡¦7ÿÖ‚iE†0¸úAà>)KA×ïÀépȤÒI@7¹úoóÚXûéfÑeGVfõÇ™}Ð:ñ7wY2A{¤šc7Uôsr ÎÙõ"KHææb?r~þ&¥‡Ç_Fw($ Œ$ƒïþ)=VèTÅ/¥º%“ ¢×ôºÝXœ²Býj¬:ª>1½¨¯•m¹-7|m}+´I9ëæÝúP]aßå͘mú‘[ÒË:\Ÿž[ºn™óœ†ü•áxq,‘ÁNEaaº‘»öŠž¹åöçß­‘ö5­ç?0¤–>åùÊ?˜ÊAˆª€}'ï@¿ŽÄŽçÛ°ùã6>ß»›GÔþ‘Âß2òóÖ^@^X«£ýÛìƒ~öÓ™·Ëß -óCò!uµRñz«­E‘¡ÛëÊì'”××·õÙ‚%ùAëûn¼Ïø‘ÌÙ'(!©’š³‚U:Û­Í‚«öž· ý9Mÿ¬Ë{Ü‹úb_ºhý 4¸LA»xØ£M6ÒPÆö*FcûâHÙW¿ÞòrÓã0Úû´zã3n…oxï玮ê+Y3⚿ǣª€:7“µ¢gŽãÝrKàˆ>ÙÆx„ì·nTןÿÀ„¾ïÜœ1öÂ$üQº yõ·+jNÝ pE¸?¯7o>WcÓ@7Ÿ÷B°ýÛ'z -¿m†½]_Fþâ'Gñx–NÂ1ãÇk›Â·¥¹…<õqñÜmÄDMœ‘!|u~á™ÜZfÊï>v[h &‚›‡Szx7NYà—×Ƀ)Ñ`Ày8Dq[?*N¹ia²š€ÞõÈßk‰¼ðøt$ -~"lù3 ¹7›*rê] LÙ'Ž_hA펥Á©c¶?Ü•[ºï@È–°µfÄin&÷*ܳÁ¾ÓÈ7¬¨cÔeV'öùÜæÓ?[NÝ¿^t“OÐøB˜>Úaù… -èÄîV‡#2ïµ2„ýïûäÕzÑkó:Bg‹µúÚ¿0g;Þow^X'íþæèàÏ~/â1m¥b/Ëâßh¬â,¶ñQûA×÷ZEÅ`(\÷øæ?= 3¿hËÉl.7L.Eƒºc˜ºÀ(cÔσéÞØûª¨M)ƒ‘ÜGï |ë;¡îA—íØ~¯•Æ96L†}&*ˉ÷Ýß\º>Ñ%Š!d^õœòØŠqK[ÓTÔ§w¹™|ó÷ûþ¤©Eá¯' ˆÊr]oÍ>›lËrÛtßkqÉÓ ŽaÛ€Õ£Ó<æ÷Ôpº]K°)[AÇ_üåvS÷(O€¿hþ2¯½Ð¿ ò!ܹ³.b?'¼¢~úwç´×]‰‰g~ŸqV—fl$ôrú}ì!‰Â ;Çì“ûY\ÕƒTq*?úU–U%˜é.`íR?ŽÇ-BŠÅ§ leOi¯ŸRÕq÷ú›Ïú~fì¤tŽ»áŒðß×Y+A݋㢵V9Ì-·/4sx¸ al°zåjß§ŠÑ&·"q?SŸ§Àš¼˜8 -}i¶^îëKì›ÿ¯G ¯>G}žp²‡/ìGúJç+_|E{¯Î w´ÉÚ nàzÓ|ìÓ­þi¿}:Vy¼˜n‚ô~@m`«¿s¨¸%}ëÝ,üQ­8™ûØà·R1Ó»¼Nª¯;'žÁÝ‘Yûö91’ï>5X„7a+$?ù¼K¤¥Š -®ü¡Ú,¥ìÿˆj‹€°úeC³Ux&CÉ忾ß:-m -­äö°š$½¡”Îßkœ“ÆÜú.lë¦ÈfëüPß÷qZ|ñ‹-b£pŸ`Lj«ýáþÿ·^ÛñKß!„úÞ˜P‡‡ñ$¿&fßgÁ -­½ îCÖT VF©²M–a@ƒw3&ÕUÚ'¥ÙÈ;¹"Z~ÐÈSaØýþ-ȇvàsX2©Ó/¥ù‰™–?³Ë’U­Cx‘xÂÇ`£»Û“ßò—år׳æPDëa­ÀjP»·£‡ "TÄ–c7ÜÓ¼îŠÕ  ®4vÃÙ¡× Oê¥~݋ޅǦ›>jš-¾ƒcŸ5õ•‡ -“RWðgŸ~=„‚6)¿ )Ù;ÂÁ>“jÏ7—H¾O´?\#°_ø3Â7¼Ä¼ãeôa2Þ5¾ªlsRôÌÅ™ Óò‹J?Ùo=5;ÄÐ4"ôÝóùð¦fxÏó‰K»?þ^w»Èª¢¨U~º¤¨1ïªh­Š²Lä%)¦iÀYú5æ‰Ö©‹Ñ×O0OìQî¥cËdûÝ­êQ>è×.(ÂÚ°zqÚoÛ›?u«íŽ==H³ ×Íåê6˜—‰íº’ d3£V<¥ 6ØÞÚ™Šò£$ÔqÎê5WAµÉÒ9Já;,g¸ZßiR á‘ Jȧ…}‰°¡¡ÅÔ'ä¤ï8¿¹q…µ—w!l}²{‡°ú»ub͈•ESãËÀ—Ó¾àc-ˆí8}) ÖWo¾0ôyÍ·§'õú -›€Acª™‚ƶçô™dˆŠN‘^çN£477è¡wý*mjö§$ýþàrÎPü6¿ÃæÒŒiJ³ -ú5lN9Q÷"³¥ªYðãÀ~œÌ½2¹ºÓÃuê²ä#ÿTËb‚càÄïM(—ÚFUX˜b²µ;£ÝÍóÝæVŠ«s‡Îdá¸ø¤t.ÕŽWSÞËÏ\âü_RópCõÞ–ŒÄ¬l2qÝå©Ô'Ü5Â;ž‡ûó›7&µÅARHß½x¶`»s¯&Š}òrÇq¸Í·ÿ¶_ØÐW*·€ cr¸Ih ‚ܧ«Þ¿’´í˦®«·~añqü»€>™dÿH×_ ÉÇ#÷ÃÇ{'Þè'×Yó7ôü8ƒö ­T¬tz Õã% ƒR>Ûo2¸ÄR»òìµ6+»‘âAš±x^?/UÐÁ­¬ðpÊΜðOË@§Ÿþý¥‹Dæ«’3pšE)Mýþ~+›“ú$“M|×!Ó|¸›Cš×iu>ÎY,ñrî ÔppŸð -kE1xâšÖ´<ögMŽ>kÏ+â†N2žkÕPˆ}GÑû”Ûu•ýù^ýÐ@Zæ3nùvî Nü2á…ä2üGƃ_"qÞíø«SêIz?×®ÊÝ`«ÏU’ú÷\Êß©yË¿ -ú…ð€FñÚèðáO­çdžڃÚJÅtÒLÐyßÔÖò6°[~çEe»1Ptø .lrŠâÓñDˆ¥³É­’ûÌò’>¢¥’D®ncûÕ=trB*dCœÆÈ•°BÕ¯pÏñ+2ëº&É$¤qKDµi¢3càa><ëêÔ·F›¶ô;vì[¶ä§S—i.­Öl<ó1Wxº‘ýá -.}É=[ðÔ»æï±´}héø\4ú¸€ú]ö[³‚}ˆ¶Íú‡ô“ò¶ã\Ú>r3Ù‡Š§öO¶Ûr¢YÜ9®/B±~ãÁÐè€ÃdQ¥%Ñßdû¹çû\uœž¿¨Ø£ÈüNS-^¦%Z!ý¦}ks*zï÷k˜ŸÜ˜51qb³½Øíò6 ›·è1]/!¿aùnrÕ€ßÀ}ºÉ®s§rýýº)KI­ÝUôkzý¤<¸¡D̳j'Iµ©Gó~š|`j.*š6rÿ{êc"}ï¸ÉÇq¹¥»ù¾üdª'ÙŽ’âÓÏ0–¥´Á -=Ù¸ëó˜oCÙÌ··g2BrÄ6üš‹üÓSßÙ…0ø¤‚ðyÂ…]ý¾7 -g’ý³ñ~:;e™ÀSêgdWúUœÑ¸9ãIZ—%û—f¼ÞnžÚ4¾ÑÔ›Ýñì§”u+N‘sì.(~'dqýöµ +‘Ú*¹ï"@ñ/Œ”=Í#,š8æùŸÔ#5”ðòÔØªŸÇ•¹õ¡*BýIÕð¾?r‚ú(>¥*î—„Øá1Qû¸ zÖ@Skʹ¯m÷œsÇÂVäsëòx=[0E¨Ã¸?êÙ>ÔÄUÛ÷dªìoö庖 újñÕ²×i¬ mG¸*ŒóqÌG\®ÁcɶkgúÒo_šâGnÙ©îX‹ÄüƒB>P;%íè`à^ÏF¶A.íúiæVœlx‘ø] WáDö@q÷㮎[Ûô ÉÞJTõ|HNÆþ8Œ¨Çþ Àƒbw}½çt‚m4®nC«›¬_HVBøÆV˜ÙúéèWFdù\ U§®Ý¯%H|aøÝa»Ç’ƒyRRòöŽMx„<7X#~#¦˜ÞΨï½÷Õ;x}‘¯¯}Ç)êˆ-×ãÞ=[ð+Ââg!c4¶î ýÕ7}¨¢÷Y´ýé’ÎúbúÁÐW#JE€H‰¹„ŸP™úÙ(ÚëÍU’RCè×k¯ŸoØK,­†Š±Øµ˜-Y纷úkÞösiž›Dë¾¥'Qîmâq’NÂÁé7 t…Ë$Ž=wWôk§rÎßQ¯[¹_!u†ÅnjÈ–#<ŒàщÝMt‚ÆA¦bÔ¥Qд!°A|vøq@‚ÑNׯêòøND¹Ò®l›~àNú-{“„O w@xH¼ ü€²ê Ç^U-¿ï% @ÄÞ}÷åR_BWàf+ÂÏõ’ñ$k| 3LÇgZZˆ^ Zë<­sôå$FT>ú<åO0¼åYó²ÃV(*|é\þ`-º§z3±5 r¬vaME·\’#h\[›ÄŸ=LyõÛäoÈßšv: ôñ‡ÄãÞý‡~EùÊ燲үï:9yÙ~ÖTÐnÿ9!"~6b‰tâÝvcÜKœŽZ溺¶‹HˆûØ¡Lvúý¹è€rÿ§§*ÓïÊÛøÁ¶Ñ¿ ºÎÊ(· Ÿ(þîxñºC$Ë(#r‡æC'ö™ê˜YŠ[ "7nš ÿ*àö¯a¸ÛùÐWz‡§úîÑçر°Û!9 ûB•N¿•úð†Ð'hË·, ê?q‘¼?̶¤ÈÞG[\ÞKžR²ƒkK‹(sÆI°3¿°ê®äG&/º½p´¥é¨„ýó÷÷Ð ÄãÓJÅ駯Þ"€OЈx:樚›ßöe°Ó±›FüXò¦*¯Y~Ãb»å–8ÊeN¿ºùÂ5Àÿ¹¶EÐ2éf»OOöôCZ’ƼPšÀ!Hð€Ì8kL¥©fä v¼çí]ôR]qØúáánå=Íýæ4")½ûsØ3&µXíòéauk*¶kFÌäï1¶ç’}/ oví¸ÈÓW£ªR`!cÒã'úÐ -½þ¿“(£L0Ñ5<5l;‚ÏXäH‚ü0ôƒ -ñS14 éžú TCû!‡÷6ø›\2§ùõ2룟é{?g[Ë;ZÞ–ÿ ŠV?’˜Ÿ!¸ÄšvÊT3zPðÝbÊnŽðFåô ø~œD“gg{·£ÙiFœ -8,‰ÄF°“å!¡~]ïr\Äï.¿Á#‘Ñ®b> ûŽ 2˜ÞXÐ&d¨´¸·x¤â µ8Lö쩚r`ý”$½cϾà ñŽ”òŽ”·TUç–nóûèJ_ÀÏkZ!cþ5#fjÌ»óíûn7_'¢/~Dg…‹¯MŸ‡A1ëRÔð’ Íw$E¸R¿.ƒ`b½4õÄù^r‰¥ŸÉãGVwV? y«Mì¿%|Ô"Š÷ Tïx‹ØcÈd­TLïÁ±µ¼¥äG Ü·=q~.±&X{uœáá~гE~zD+D\oÔÏj÷uÖññ¬âól¿/+åÔO4ˆú -¾:ûEM ëÝÓµ.I×Àº‡=é­O5ÑÆÃ@0ðZÖûÚÙñŽIbãQ_k9þ¡Z[Â}"·t«Ü'© ùû˜Þ!åè«XJ֜ٗôêóg ‚Ú´TI¼Äþqº¹ ÇæÞª?8õ¬< -sGû ‰0òyäzÕ¤Öì1HíOÉøoúâh›9¿‡Í·ùM¼H,>°{úýØC²·"’äxWྕó»+vK3kÊMüR¾‹ä§íþ÷±[(ƒ_¨_ìÆ«Û@®n¦®Û»Kè’lä²bià‘zµ‰~­SÝ>ƒD—gøª~)ÃNÑÀOÔE›vr‹“ú¤á¡ÆÈ¾]­/`ÓQA^8õO°‹×'.?ö¼}éSð·èÙ‚—kF|wwX¾|öó=À>Ûôc­ÿí$LþbZZCðª@óøÜ9Qs<’S›½t^%ÕsKaYÄ™N*‰C) ™oÑ”RƒKXýþ¼›Ðøñ%ØV*.Œïo#ù™ÅüÚÖÛoŸ,©áÈ6‹gÓ#ñsÝÕC -;$þ*ÛË|¯Šû”–ƒ{É3’¶c*xªnXJŒ¥®_½›ñ‹ªÒ†Ph/Æði7¯çáBJçì2vSªd$·}WÊݵ†É>âÃ/¸«‘ÜÂŒšÆG4Ns÷Æãˆvü -kÕÛ§‹ù†ƒØ»lXNÔçú|É# +Bú¤í]ßÌ|dB–´×ÑxØhŸv’G¯T´û-ÅõJ¨¦Q}agã!6Ôö)R?ÛªA\ Þ_itô[pø#¿;°A¿Â{0("Lov#CW‰}Á~0íè–ànpÙøâVѱ8Zòsz(›Y£A¯Â‚­ ]w¾ŠX®‰¢e +ra#’÷IÌ8ôÃzòÛaü+•ê%m¸ ¶h ¡€åÏúÎZî¹] ùùŽzƒ±‚û`Š~„WÅ‹3dÒ7Ü‚jöbÓ]Ÿûkj~nlÜ  ùÛ¡úÌA1Ï>`Zmƒ„¥´PØÎn7(I|k_s äC -yV§WüPMáo•-²òá¬PÎ%8Ø›`H]üYóW ä­ÒO£îÑÐÝ×CÝJÅyËûJôââ¨â>@Tu}V·ö;§H§°¿©Ñ§N!QU†@~z{4À;£ßÂΈ½ìÖ2ëïϽR?s6³LíNy‹iÒ$-CÖOæTU ‹»e7Öhï@ Vð+ôçJ£Ê8ÙÅï)<Âq¡õ'2TÎÉ2]Qª5P´w²ß`Éí .$ùà±V°ÎÔ—ìÔ€ »ä¾¿Ñç·OÇÛ¸/{GÎ68s©m¶à/ðýó98õkýœB˜|‡ï«V¿¯ü‰­¼]ÿ+ÈaÇ'8?0Í™ôJöÎÆRx¤°VWËñÓ¯é«4P±?t/ô{r÷Ћ¿wLÑŒϸS=2 ¡-¡•Ûã­fÃé4šŸ8ErÜÆ¥9†ë—œêœM ]q8&~ù)›ÆIuÝ'{4|¶ö§z7[–ÞÐ$D Ð¬Y‰æcfiŸÅöJî…´§–rK¿+DT}Ý-Hn<®'Nm}¬gUœg\²QEò‡PàÑlhqÜ™çûÕ”À5ÿÛ'ãž1©Õ”ç5MgпN«oFܳغ7¾ù”JèÏs—/m}ƒTǦ`Õiá{ôÈD Šutq)TÒrws–ií¤æg%™oÌ¢ÏõÌ169¤Ì‹üÀ0s8Êûƒß^Dˆ°”ñÆ.Ù×A2‹áhÉŒ—dš±QŸ`œâœçß,µÎq$a,ßäÄç~t+'ìß×1eé!àjRžáíéNÍ„UÓƒ*OGÁG 8‰EÃé1 (¿ìž9Ûa³ &ÀKŽ~°p@Žßl…<õ/Óò?+[ÞŽA]Ôí¡A¼@‚çsr|‹¡¶5~ÙįÓ;ryà ½¥ú•?Ê¿„MÉÈ}%ì8?ò÷aô]WÁ. ÛW™ú©€Ù:RNýÂO¼0i)ÁDh”k6¯ì»ËôˆØÕøŠ%kË'é‡ Yg‡?øÐ&à¯_w‡m˜NÂoöp“‰ Ý_y5˜k~Âïlôé™ôhCü\‹©*›Ž ³Ÿy1-e‚ßP綤EUGôäB¥Ö¯Lg½’Cy£>ܘ ðñ?ù øéÊ3lDàѵ)„êó¾O}$³¯ @¤Žn§Pzþªõ% ÞÇEßYZÊ›t‡Ùr%^{ ¿œöÐRÖ»m™]Ÿ 50½Ž-ý¥7¦…”sŸ"퓱ãÖHçk]C¯ÑMm£[¬Ö¥îWØËí,ò'ôûð±ŸÐ¥ð'øz„·RñJGÈ·?öð<‘¡{}Á~ë–Ç¡Iz»Òs—¤Ë<…D=üUU~H[ŒÄ¶Ýo€ŸluÏÈyL‹ÓØ·îcñ«‰±ËÏê·ŸXô×Z~VÝs&;cìt$5è]¬‘õeQ…Bµ5ïÙÐM…'®*ßM𘣾Êý úÈ;îªËŽF~w“ÚœòvË\•‹ð ¯£w\3æ÷ûù”ºcÊÒG °±9±7õ}^Ó×1Ðrå?ýÜ=°»sy½Êé—DZѓ7Ç˯ǣè ô(\ùUúí%Û„tªŸNSŸ­ñ·G{hÊï©¢—U=x5{Üe"ÚŒJYìÈfUŽK¬ÙÓ¿ÎF_vÿßÖT…BºÂ1z_!MvBêl«:Й³-·˜v¹Å†þVDçQN­8fô³ïvã§.Æ&àßðLØ9&r¬·mã¸ban.¬/hΊ~`!YõÝ ÓÐÂDÚ'p@¦·ugÔ”?µKVbDãÞç¤ ¹¥kj]ÝÉ—w0~¨q×Ï7Шµûš§ƒN£'ÌOê¼¾3âWàj÷Á°;Ï‚­ë=Áüä‘gß6dx‰ÒÄ“é‡`Ú' 2²±¾0܈øÝãQ»h¥âqMÚ†åfàßɌ®&'/iñÎü¢äCp‰fÖt§øE–#úD7 {®$&üæ ýPói–lusB!ù:Ñs ò`³n/ÄÓfi¾ Nµ¢Ód2íêXí» BK¤÷Rù‡&›ÎŸ/vTªï…u´~ßUTÒ–úFD=‘ߢú ~ž hk:ò6Å›½#Íô6Ã+8¬Ð.YÿjÏšöŒ›ëØ®)þܧÖtM}îpGDÜš}&ö e¼õ5„©u”|)mØ›š`š\ÀÙ™Ž¿~[Ì0îÊ.èyÞi,§2F:£9#êR«Z|Þ@?°$¼®¼Ýç¸ÖË@§¿Ñ©ÒóãÊ#Ì:•Ÿ.{ÐØã.À!ßíTïç$=8íæˆßê«ÑÁ_ºê¨Úò[8ÒÃZÈ€â‚Ð,æÅi - ]=oêü é‡R8á®.«k¥>ªHל…¡ãã¾…ð§^ˆaèñ…(äpºØ4¹O›ëØg¦|ãª:›~©O Ò'Và¿ây…è;\Ÿ2—[ºHGW`£E§ Ç¿LÛJØ*ç;šœ/TÊP?1wvEŸEN;R3`2=Ø’ø°¶¢V[¿†pìÞ,“b¡!áÞ(.ð)pðWúÅîîÈ3¾ë¸[›·~ææn¼Ç—Á~]zâJ‹_ãÏk¹ Kv¿#üÄlëhú¨m?ƒÆ»Fb]%…ÃI—ìA7cˆö¨(BQ Zô›ž籊°4~äâ- -¬Î>âo™fü¬"…«àAæ_îG±>‘ìó|g³Oef³MŸš¡B©·TwÑì’ÕœûVžáèÏ­k|Ã5q[Lä]ñŠ>\’}h· Äïù3!¾ò¾àî¿‚°^µð®ì -f¨ã™ÁïÆoT4HOЫ°hŠÃEý4LGÝØü•õ@h~³ŒÐïEu*z3à¾=¶Ýz$ý/ƒÝªPûê!~Gúúy]·u5å·lR£!ºïþ;O*~ÓÀxâ— WOc±¼7ì(@»õMjŸƒ)h”¯ïìãØ -G£o(eÇ{ù¬ Ú -Nf÷ÐËá©1õ}÷WÒϾäN. pàe¶+šUgœQS´SõBq¬…­¿ú -kó'îo]Ý øs›·äõ}Ä65aôÕˆ¡íG¥&7C]_pÔaž­üþ8mÍXÃP­gÃqÒ›å6Ò¦»O­ç5¤`™M:ylÜ/?ý¾{©2Õb”Wƒùmó1˜ ßmTÌú‡Íî“ÄJy^—³©ž =¸šTSü0³{2ëDø‰ -pc‹þ4G«ÝÖû 9­Cf-ÿ$ǰ„ÚrÅ5ƒúÙâTγñ#ö ZÏkPœ°“ö»IÕëpŒ«+÷ͳÒ÷•s/sÖw”­þBƒë7¹ÿZhQôA}óð”Û Åißwš>]ûÃ]¸&QÖ¤~OÔלÃíódäµ¥…Ÿð Eò„ÉÅzç5š&à+ /ã)SÙû÷ϧÏd8Û Éý°øµH7èøCÔ†aùòd¤Õ£Êw¿äÕBû,ΚĽé *¿ÍÕ¤òÒv9¯(Ùì]7.ÈrÒº;ŸOÒôF NGß•¡,NÂJ}žíQ1ëÇ-éÓ†ô+gRŸZã×*")Nšž®ý©çu}jaX_±Ùǘùé}ì3¯××ö -OY ç‚Ê&*¼P\]øWo©¶Ã"‹8wøŸ[—Ïà2çûëáÏ7jéÓê(Å{lC1ð—=r£¯ì&~FÓ›Ô—™K'hÀîœZÃ|ob ûó‰$5õÑø”™ëÀG¶A.¾›òîùðã ‘TskÚ†uky× ªKÙ/ó Éæ*§©Ø=:·¦u¹[ëvô³ãÔ¯ÊGvo ¡6¡6jMà4ß½!‚2²MŠ“5ï ØKÈÁ6!.ÜñÓ6Ñ©ñ3 æ3á 1× -žædÉ9=UjZBtëÿY½bðå²¾£ -Ͼ?hÆÔöT3jÚ’?uǯ0Å@¼lá_ý´€WX;s-Û¡uuÁCŸMqo# ûªŒÐ’EõÅÃN×Õ®è)V2¿CÃ޷ۄ·ì6°C½ uÀí%?ÇXžs&ú•4¡3Zßé5˜=À?IÌÉFoMCØa,‹K¬SC7¥ÅoÛ)SO|õˆÃÛóNïÁ"ô`r -%FýZAça6Ö%Öæ±(àSþhÖî9–°*q3éGcô#PyŠ—íÛ\¹ýC¦16!Tî]v ¾ á¸@|d¹uä©0ÚŠœMnúdè©mV½– -ÖŒšÆÛ1x²KVëZŸµ?\QµÒ×tÛ;rR_Z†Ëö©`*uÀ›\¸°Qx)ìµ -ðS>}²º{U­7›Ê•6蚪ް~ 5AãïÕÕúÙº³aá*ú½Êö°5øœ ª#ùb¿Ÿc¸ª©ç¸”ôö²;Õr[Ô?¢\Ågµ€ëŽ -?uÓby¢¯;)ÎC q:Z"B 4ËRU’œjê§úÎͤBq1üŒD,[¨¶HP_zZ›²+8¬<µgÝ©k#WX_Ü–Ï­;ûˆ{•õÓ±Áœ!=¬™Êe‹™¬jª¸ÍüDküeb"5¼×Å•œ•šƒ8’÷<édÓZx 훌F[‹°´4ýÈ"M¡¿GöA'-­ô›ùH²÷ H+~ŰgMâbƒšk>%\Mz‡üŸF|VS`ICù ÿÝ{wŸÇÀ¶0ÀølõG3Xnì@„$¢~½¹*”Ýä)Oð›´^<~ÂMRVÀzHÁ©)ºÌÜorã W•†²o›E'“Ò -r·7hoÈþp7,«d¼Ãuíí꫚¶î£Ÿ¨ˆâØ{ñZ²¨*%8[ºžNÑ;åØsÿÚTSk…Œ¤¬ßǪC>XùKM·BãWUå„âîW0üÐÎïVfƒà«¾$1¨?W“Jkb+ާÌnÞ”îÁq½Ãëó­3øI'é Û„BÅ #²u’³ñŸ5êT¡Rà±\îƒRbV±¯§õ[×`Q­;¨¯Wú\3«7ï0žþ¾Ò³¦2ã.ÃŽúœ‰¸”±’¢·ƒÁOèÒ~OAÞ÷ÓJygÆWtü_û—ÜÓ³Û„‰¯z„UN¡_™×pXõ»Œ°DAY¶›7¦“ð5ssù‚Ö…ÐV?ä `—X!r«]ñÛ¯úøºµs%)òü¯L»Úb˜S4xhá²€¢/§=*£/ûæ&äö?ÊÄ'¸âgv—ÂžÆØAŽ‹A?`F ŸÆ•þ,·¾Axþ…°•;‹¢Vrw?nïÞašQÓhò§ -jÜ)u}ŸÖÕ­ñŽ?RßU؇P¿Ã s+C2 C©¨äDØÄƒUY 0j!jÐ?=¾³5çÛý¤(Ê€ N†3 Ôl¤¡{”ïñlD(º[È3¾ÛÞ*ì÷Ö­<ÒcªÝl”B©å¶QuòÙf‚ ;6?üLûé‘eˆJ¬Ÿ-Ë{Q¸WaÍ…~“~I˜")B%·)dê>†__!ùVpW°…%>]­5®y¼ÛY1}¨†ŒÑÀ†Þ L»€”0mivp ð´®nðŒšV;GiѰÈö`YËáÙ±IûÖiQŸlzû44 °Ã¹¾üŸç3RGÿ§•BC´ T}¹2`+;õí={¡È­\Õ»6ìá»” gý/q®_µ¯1¸ôÓïÞ5€:wƒÖÁL2~<öGîT•ÔDÝŽ²_#”U-ÄŠ•üz¡e‘éÔ† -ôºÕ;$z†õûNª‘2KH åÎ-z,ÿЪܷóIáÐTÜ¿6 ­?¿§ªYúøUͧŽ)‰Ê áƒ* 1Ï·¦Lɲ ÑYãwm¡)À#µƒ·e—¬0î#‡@+ŒI-•¹cCô€ @Öœ_ʶÒ>jp¶ŒÛGþLLZÿ•¹[ŽÃ¹×"8q@éôBÒ&ðdyj†ybÇ:ú¬g„C;—Š+^×ý¦al5Çp8ª)]¿¿Fh³:n+Àåç·m»Å±ÁëTœ.Bó“_E¶pî™öãwÓHaÔÞ9CøÅü ¬èÕ]Ï8å~UŸ]Â_f¯$ì{ÿ'OŸ³vö–¾é[׸àŒ(B?L{ò§BöF³¾Ls‰ˆ½û)ymŒwøºèS7¦ÀÍñH­®}ÆÍœ¿b6ðñì÷ÖN„à qþÞ„Ô:Á‘°3)Õo’æöˆÛNƒü3'›æçýmò»Å±øÉ3kêÈÿ)Žka8ëÇÐ$ªSNDc÷Ez„àüª1$5»s'NÛX"erÆð¾ë÷ú÷yq8Y¦×öAÜœHÁ½ôå*Ž‹iL„ZÀ¾Uƒ¦L™å»ªNò­kÖ›ÿqXéݲ®ÄBnSˆ®iã>¼êËêÁçÀ9~..~¹žŒÅžœ™ráS.5RâÈˆê´ -Ž,M›ÜJLÁô[E5Ä)N¾y­àC¿•0wKƒœöë÷š55#§ƒjÃénÿ¡b:cà¥7É´òƒ¯ˆX¤àÂÃØî~Ý‹è 3ÕMC{T8{ö~¤ßù?ÊÓ¹õ*Ƽ‹ÃáãÿÆ7PÆOÂÀÇâ9¿ôClEØ7+Å0µ’|rÆï˜Wn?ÒdY½œ™#’{ê˜O_\LJ‹Læs k_øWdÏhO«7®$ïHYܬçH#‰\sÃÆ^¢7ŒÂ(—eÔ‚ºq‘‘‰ñ“ˆ*cÄi ¼ÖånJg7p±ÝMç,,­´ÍüQŸÅ?Cõx¸‡=bÜ/ЃÐXeåÃMuÔî$—ÑéF#ÿ'|ŽkÑ`W 帿b2H¬EµR÷)ûýv´GÅDnÃþécÄ—œåéçE³¹=GÃIí>H T V¢‚Ѱ¶Y‚Š4õø˜ ¤l· ~ Xx °Åg8gÍÐËÀ­-t -PxF·YðØ™¬òw)åxÃNɘ é z訳þ¢-}ÇèS ã]—B"~žØAœ@0˧\0`;ùΣ+`Ö$t¸ØÍSެ×!R4¿ÞàV¸Ÿoä÷z.f¾ùµØk[k6³K¬9é ªXØP=#¬pÀ:I¯µaÙ­Yzîf†]7ÊülljáUšdÕ]æ€?„¼ÍÊM¿S¿åÉõv>žÞÇ*Å«BçÂOaZÝNnRí*«'">×8ø¬úËc>08†¹röþ¨­YyŒ" é 'üãöÿ±ØòÔÇϬö°©½È×ãéC,n]6eË;ä‹« !#ísüjÕ¸>õ²øc§“†7"—öa–M'¼JEóø ÑÍv±0ÖÉÆè..óöS’-fáeD1»Ó®’]k‡¡øyGØ)—¨ÇÔ'—ó×>bÓ°4@Pÿ>H¼Âqñeõ¡'à`õƒdUÝÆ›Ó‚úøùU<Í–ÅÕ©_%éɺ™l_©=ý¬°Ï™e!‡¬S$Sû:¬…‡NÃ¥éñµØEN*³•%4›æç“ˆ®ÁšÒb€å¡Ø7FyÏSú‹AÐEt‘iŸ£2`üÄøô‹¤µÙ屮­M½ÙôðLúGÌů¢`Ǧƒcæ±Æ”ù’Ñi!Å žð˜”æ ÉŸš›t×âŽMa¬1¶:’,’àWœKš“±Éö RÛÔ!p˜;ÎÞº jU£MɶjÍ6×ïCбd< öxíÓ:{\b…×î+W“æ}êÖÈf€‰Ø4×äw7HaÒꎈ\»¢Ë) wµHdy@c¿à£ñ:'¸jåŽmë‡pAeÞŽéÑ7‹Hæ;ºæ&×ëô;pœðøõ´è¡¾JgS`†,WÙË™™—Ü -ÞpeŠIéúГ?uTsÒ$Jï›%¯«OÄ [ÜxYHD5ÑkÉRSoém¸&Dº}p¥Î$`ÛIŽÄ¸[äîð6Ô,ɨ¸ -«EÒýØíœr5©$j!òJ5²™ŠØ4µüŒÞ]2{ÁÕ÷ÑV[a‡®žW*m¦ÆÕ(H?@:iF·~Ó‘ÆæãË©—ûMö¿¯e|a‹5Iê"«ì#“…Þpâg±Á€‡=^iYPÝÖr.K‡Õjx}Þ‰ÒÑi˜P’•Š‰É -Hƒäí©3*ãc(ÚüìíÞ{Xǵ‡¹n[Ù¦´-îéuÇ\ý‚J‡ìikûmÇÏEËê鮼rŠ×TØóaù•ªÇ üpÙý +sN“_-?ijÇD­‡±ô€ʳÔòf%ÐC|î“¡â+7üh1úg=àw?\ë‘Æ¿37³Á^ý°us šê»Flàó˜ùnH³Ê!„–Rì òtF§ RM_[¨VZµ¸Ž‡•gÞ9×*þÜc\“Ђh$8ül“ˆE𳼬Kq}°g·‰ÔÎqêÔÇ„=S-ºä ¬®¯;ÐOO&oo!ÀÕ âù!¶gpFî‰Ydä"¼=IßÄÍïù.1'Ô;Ýñ}é‚Ài¬ ~lÚœ¢ C ìãZ?[üs;iQ ½(“ø…!%WâlbÚ’­0ÕQR'<ªT‚tÀ¾˜BÜMÀ­åÌ&w<àÜ‚ú3³â4~ –YFæ×ò{©ÏšL†+RÄ# "ã O/p~lcm4Âïz­{Zä`}±b}wÎ)FÆìˆÅBߣ~·Æ„ûÀöÄös;eªÊ×k„¦\ÈI»¾6µüt\ÝûŽ“»á Dµ•½‹)‚š9ìüX‡Ô§û¼ *•ïÐËc_—EˆŠHø”Ï\êu¦Tëü ,‘á·ñë#±ïñ{è¶å*ÂÿH“Ðrf>½át’Ü×à&6íÈ}×Å‹ñ>"ë;qºÃk4Iø¡¢1#ñgÞè¯(§-R2çkÎ`ÂK§VHV/ƒ‚®W¿&½kÕy€Ðí^ _Køõ%Ð=N;S6Ñ´êAÌî 1¿ò,P.¿õSrÌ“]Ǧ‡m¯I?ÁúÔOš V­ŒDþà` õ³‘ŒÅÕÄÜ Ê©M ±´oº/vAÅ»3*]–Zª¯S Aáÿ;Ö.k]›éEƒ)aen93£R”ìɦÙØ¶¹˜-Õ­Ö®u}#¹>)IÇcÄ£ œW–é¤BÀ–êBŸÉv¡ì.ˆÉœõ­Øöxê­DHÆï!±®ß‡ÄƒÕØ£r¹)A–ô¢²þŸµ™V«?P mMkbË9eò‹2cù=|éU­ÙlÓ|¼þ—Ðþ—€zLDԓʤe•ù"æâ&Ì*¥b%Xýà”7c!v,“¢ƒMüªIMMydU¼+à&׳¡ý|šhÞØT`¾ð ¸ã 0©ƒ³OÑ=À"jÙØÂˆIiKþÔR쪺˜Ö\´YEý§ÌïïÕxr³úœá 64xò²žxÙ¼ä`yË4™óf¶Zwò‹[¸­¾0¿‚é§Ò†@•´_°P¼¦º%§ç5B/²ûÿE™ ‡˜•Ô)ûÕóÕ8@r÷K¯g=S ¯w«¡¡º VpÁ›ÏŽÄïeXcƒeï3…yänY>ÖƒŸ• ‚Á# ­TÒ¦³¶ÑÕ -4Ø•}È‚ß=!ÀÅ)<öXŠ+pžû NέмÍ3ð‚ê¶› -Žômc6‰2˜œF7à¨Iá7í‘NëubŒF@ÔpOÆnþdøoÃlM¿s!vJK:7[O»­ŸƒîûÐý >õÐËEØ)ÓYõؽÖf-@'[.‰‹4!¿%Hã€kî¤Ú'#–dh\Óêùå-©«_'Î\´NéÓI¦FdÈ‘ê¾{Tßk~2Z劉6êv§û¿8 4ÖgÑ–ÜmSõ¨ÜÉÙ$Oe’.g¦a‘3ÙØòEêhÚZ¿’ñBpŸÆ÷P®q½Ó0|x¬Ûª>8%\ÍAVÂèІ٩;7W@”œ¬šR,]wr¦5ú!l=6‘9Qå Ô­¨=5é©&~é\Mv:-“ƒ4*¿Ñr©6}Æ#ìVH­çA)AðkÇËù®éåѱ§@cm9ÄA™Èx0ýšº^º+¤qÐOÎnÏR˜ŒYk{ÐøA›ºÇZŸc} eL±LfªQ‚úˆÜÖ#MÆö™›H5¦c>qäƒH557&M5ôê÷¬/@³Ttï–˜ðcêVò·b¥Ç ø S]ÆârñÜ6Yú׸U¦«c¨búÍd!ž»£\õ8g¸¶vSs5i]j0Ig:­ý$œv)Ì$?W‹vOó}´zzõÅ‚–ô’§àÏÔ…Aî~Bš7º¯-ê79ïyÝÚd—†Vê hð_H¢‚²Ô%Ø(bl¹õðX°wVcÊ}ûÖÔ¦þ­„•ÕrfªzÃÚò[{žfE‹M@q½¯ÔagNøéú*<üÁÂtF&:›r,œf5˱brŠ=pðûì»?iT†®~®GÙo · »Q¢ÞžjdÓ=h³Qrð¿–?UÄ¥‡â£:‡ªçfkZünt^ŠáSX)¸=—·FJô+ ϘD%Ž Œèön*(~:\y’»Vh)lо¶¸óVËu“ø% ?Ò…­MÓ}àu O!œ—«@­ø=üUîíg„ ¨V_åª:ƒ’Ûp¨‹ÀxퟩÒ}ÝÂ!L@<µ‘q¿ö¨yT'{8ÏÌ*/l:”†ªŸ%1|âõ Ý’ šûA>­°^×w¶_áÙ á3~µ«… -˜Ò2¦ÌƒHCp0€ß›À™]Bp5ŒF‘K4 E…êW®ÚJð6ñM©T"å®õY§¾J<ï¬ÁÏRr5«õA%<p~0Âf0„])a%Ë¡-Í@r÷ö·»ƒ¶¶PîÂõ¡`ǽ¿&çP¯k6ðë:Y4ÝÖ‚q` ¦ôN¿ƒäc™&¥Ø ?Ì_Ón5QÃÛ×]£ -fäðc²D›þÃ;€`%T@ÔŠ,=óæ ÝЫŸTAŒÃÝOoçEÂ~Ü|Õï#Ü”©—Ò‹•y:‚çèÅÁ¸ +=51~¢ã¢[øX’3á¿>Ûè,HÈ*È€Š1ÌLð€2ãôA½á´ì<"ÈÍ(;ÅP_íƒÍ)ŒnÀh8ìy´U¥}:ÐÐ’GkµFŠ…¯ú-KªTüdÍò^™ŸR$ß ¿7 -áçš Äa W)þÇéñebðs¬°þC#‹'JF«çÇ$é­Ú¼l`ìÔ¾èä«õ@¿×û,’mJŽ̸,…1 -þ~âMpþãg‰@"ϧM\Õ½öñʉÃGšDLߦ§Þpb{‡Ê}ÈÆýþïNɯ‚Ÿ«ò^ޙŤø]©õÄ„GÀ²~œ‰»sÛruv[ ï^Â)¢Õå; Ò¯#Š–®•>¿“[üà=Ä€é¥7 ðe2‡š¬õØÖ!EƒoÀéS“óë°‚åœ/6y’ƒÕš~tùåeÓ\Ô+}z›ÑAã¥rp‚f3ÍMù!pЫ1ÜÁÔë“xðÃ;sûÉ5îð+ÐÁYœnj´!@õ3ç1†küÖ óˆŸ³£i4•wø-}ƒ€/á©£* äþ2îhB0H·à—£Ñ˜ság…DK¢9ï鵃 1‡¦IÉ®Þdå6¤™¶°3‘D(úq>ÑR¶aÛ-dH­ -I ªu©ÚƧãñQ2žü;9+õ}‰¤höŽ >{Hèà-*;|Z\~ôËH^Åý$/Û× Xrýõk­lÑI•*Xmi’:‘º†OÕÉáG¶ ,÷3드úÆØ!•~Þ®d|Z¤Ž‚}HÕÒgõÁ}¾¸8qY}m*éÊÝ:h¥âŽÆè_Á”KqÐyžÛ)¹p^T>î;m iW7`ˆTúÑC#¬í§5`½êñ´P~ÅÉZÁì§êî‰ÈE(Hkœ0NÎt{ ÄÂO·#Î #">"ËÈ(ÑRѯÉÕ·¾ÛÄg} ðãØœáS)sm<×ßÛßÅϯN€¡§·&@ Šõ=útbôýÃÑoWÚ0‹7oé9™sØ×›Wr«àñ–Æ*H_C*ü€øÕa#ï¤“Ñ FËhþrš@°“~~²šØÔ˜ø) oÏ-ʉۘ)/w;Í:jæþaßç±Mà@à'ûuC>_`û5ô+w äù0?k—FÓ¹à°É¢üΰ£a¹6=ñˆÛ®€Ëˆüø ôÔãe+ñà,áA­²eû†9 -Wõåzýªvë´6#uÔ-Ëë÷1ÅJó‡ßNî´îAkÕ¸E®ú+‹…4ï]õµØÂ O+?/Š~’XK€Å%ÎVN'‰rõhŽYÌ¥Âió(‹ü´tü6Å>Ås"(fq kr¬‚ŸÒÇ,4Pë—2±´ë¢éAYøŠ­Tlª‡Ó@ïÛfÙˤsë»ÆhÐ’ÕV+’èNûøU¹Èúúø -“ñY_ê‚;áE8ô01]y.Œ)7¾~¥R”\IîD6¶«3w‡¿fo1‡eŸÃ¯¬±*B+…Öó[>ô­Gï²Ûûd¨¼‡îÞõéÐίL?âGŠI˜ÿ]^–9âg…zÄ@ÓÒª/êNŸ)Z7vlf´ô€XXFÒÿNn³WÃPÃj(Ñ…Ã$]ÅÆ‚¹Àa¡ÔÖp -óZ=‡_ß?]€x((67Jw©ê â}gX†lcu¦úµòe¿]̹ø]Ð)B>½Ð’Då>“÷ô¶¯_*ÚÒÌNnœÒ‡Ëd¬ë¾ ,hì -]_èmÂÇÀRwJÿФ®)ë!t©ÿOgª«xÚe¦¸ÖÒbkôb-ë7`.Ð"öËÍûjT3»›r#ò»ç<àO6¼Dz°z¯…ë&-L?$owå"––s8Ù+΂GU‚¾´íš è)‚-'žÁ‹Bàó?utí³l}ÍEêÿ;<ÎtV@q~OÏSæ¨üàË -É­àº6€Ìëb[þíùo»Ã_üê6MÍ·ÆÉHá=Çø—¤úBª’æ%–Ä€Bÿ}h"˜·jç¢LÛZCÏ?‘ìV®l~Éï,v;*ÌÃûú'ø­]Pµe&ýö¾>³3ð,¦­ÃdG÷MN836m·$vf+ â—Ô¯hÔ¶œò´bÕ~Åø - ä‚ÓäGÕ`B "UÿàœÁ -< ´ø -¬#MfHpdcY¹¥AÅ€œÓ(:…~Bh„³7œ—¥}ë´¸Žk[eª×ï.»…­ìœô¢Ë‘# -u6¨÷Þ½wWª‹¨ªH7U†+­Ð‰  'hÄUiª¿výÿíüeůŸ(CI™¼Ë¸¥Ž†^^_ZÊ”1ã¦ïŸ[`³ÀÞº6¼3ćL/%Mê_‡kÅÕ! ÐæÒP~”xy«ätÿ:–&»ïÏwl•::‚dMÔûÏ7\ý3!K 3úZˆ™µ7þ|'!‰È,š:zPªõwTÎÌG9Ì!Z -F;î±Á:ZYá '‚cÂCGW@.¬_H‘Þþfºí!##‰1’A²Ä×|ø„Ä,ÅŽß¿szž|uÁxá¢Å‹Ð÷ûïr.Nûó­])tpJòXrõó÷)èGg$ËH]§ž•9Bã¢7¸DŠK°Uƒ/“8g”tÅ@¢‰"BœPbèŽgßžoæ¦I… J“òÁ/jZ=÷}¾©—ÊJtà°kƒˆ'€°qóéùÎE«5 “emb˜ØÀeƒôŸFzëIܘÇ“óZ±‚Ä !pxqÖ†×RB:ÀoQYŠ .иádì®åß7l¥þ¸@…IÞw·7bn¾¸*hQÐÃ+‹š8‡üûóø²evÁØšÿ·eÒµÁ!SÂć \.ÿn5l2“›æ Aº“~w’V‚«b–:ÐâÉø¹žF%ÉÑšr~èéPˆUÆ"“ç;:)nÒ»?~ ýÔ˜tMAXá#L}kW -çöH¬Ÿo è«ÊJÁ\²°ú¼//¹é‘£Epq¤]·žlla0+¬êvº'HÑ%MÉêËwµP6Ow×u„j“«ƒ¿ï¶pÌ +¼ëAf£CmkjjzÖØð>òïÐfÜ‘-"+ð>Ȕ룆¦ÆælûJŸƒ¡@Ù$eøó=J°LÐ[¥v¿sSœ-.Qës ûA;;‹³ùw 8¨Ï·†Ú©SgLÏ·H’’ÜQ¶2qö›m›FO÷ù® -RH`Ŷ sÇŒ?wÖµ•¡9£†¬SúÆ›ómà*çª&`I>þ}kë [Ú0iI?çKwd¶˜ ?ßnU¹‡† XØ™6bhQ7þç»O,E¾o·jéÎ-hÖ‡£iYŒlö‚ééòçÑPÆÄÀº`¹b¥ -2üº4†Ê6o­¨’h¿””(PžPQ.¥¼WÕÄ2[4Q Œ™È5bû|ë×Zucݯ|k¾0­G±7p6õçï!•zh}÷.ûLi`ÌD z@Ù–tuØÚº°Þý¹´Ï‘ªËF—e!ÿ¾_×ÚR§†Óª5ÖûùtNŽQ*MTûýºu•…N­îËûóñ!Á1³E*;Ôï{h(Z]þ×ßRh_Y$Œ™¨ Ä’AuÐþ|ÇTÂæ¡Õ}áXïþ<ï+똉²ð­á×µ¶MÁABhûÂq¿~+M6Â`ÌDwø”šo ?›‚Ìë·Œ41sŸÃKQÌWów©Ï¿2¤QªYª~WPùuãßœ(±aµfɲì|Ç0 }þõùýýnž…d‹G3kÿíÜÓÛSŠrnÞ]NCŽ™¨ÖÏuÜiï¹ùw¾[»4H£”:Ÿú -¿?_¼j¼ùëB=Dg0d–jÿë¶Ï¥ž'N™D >«¼Ç}ekld WžïhÓïS¦L—èê.aJî5¡îÞzɆȃLÌ/¬€)_ý\;ñì,%õ”†R—Ãp^™ER¹€ÂÅ0lkkÔ«·~Ý*¡ß¤4[l–ª@‡æüµsk ‘Ë¡Òaü:~ÿì( Èlñˆn9Õ›oØÈéRƒœ\Æ[ÇNU&j”­yj>c½µŽ[¥"4ÈÌ ìØØnηžB íÎ"\e¶X¥‡Ê_yÆ­Þ:†óÈ™5ŽÈ¿‡š -hiÑ™=~!Ä·†Ý倲­BÎóŠÞ'ß„“ݱAY.öé° ¾cëb>ƒædP´¦VZOÁû0„‚€.dÏßSž¬çPùØýÈ-Õ‘RÞcÇ´ñWÙÓÕƒrzïöyn¾µÅp•jÕ0!ÎñmÔóíŽj?””ÓvO£YWøò›®³žûàƒëùIfô6sÇ ô9‘ÑsNç w7Ø'Bgºc;Bs:L]ñ|üš§ï¢¯¯.fs}ÏþS—¾³‚½Bœ ¦.b×ï¡{ ´ª:¥þêÉ¢ËïæµæÛÊb á ‚³™¨9iúm4^¹òéZ\6åD Å&!“±Ûéiw+ªÇì§ß·‰KÑGØ%¼I <ðfÍ`œ£ Û]QV³u£ªï˜º|Ý +¤QëïÙ/Úòš?I¸´ÃeÐôàÝ墙×Á<>­` ->a‘ ÔH±n!bÿ«ýþÌåhûn*žì"ÚcQïGßòã^9ó‹h-”Ñw•žo'WpÌç¸ÊÄý¤ª.òã·•ÚFÜ#÷Ûyq® ¢ËÕ¹¦’÷IÜøÜjWŸî×ùÐåŸOìÐmi‹W˜‡¯ÏÜ.Jß6¶mšVÝ‚.z”îhÁ?2à?m¸þà±”!c.º¼€‰ò‘™ÍäÃäO¿3Š<°&(³T˜ònàÜj+у‡ßç—x.qWet‘9v€y|UU²ö÷ɾ³”6n¼B_i#C£!|oóy9å‘(?Á„Ø×À€6Sïã,3`©úÂZE_i7´ðÉ{Û«Fâ€áÿö¢\“Ý_aöCÌ9™Cëå¡lgÆC“s qûÍ’cšÓgfšdlÛ_ÍvùTç«z”ỹ†$aF0EE‚æ«æõÍ·se%  «OšÁÌï¦È«mûÏ“ÛbØã¦{­^z߆ª‡ÍGàÖá‹|üàþ|ï•þgûÛßLæCZ¸’#™µê€1ª(¥Q¿vÎþú0C—/¿¹Ùݯ¼°ï?ÔɿªÊqa4û=#ï›Ì®eŸ<6ñ†vÇ2°Õs·¾LT®£.ëÛ:õå£ïÐjññ»*E4ݨ>ß…Õâëc†¢¬orï:vX¸Íš;›FSY9 }\býu|ª¡?ØôÓÍ’ -ð×½;ʼnroa…°=¼£9Æ‘LÝÒ®ŽŸ?aT('(‹ÃÌ5ìžõ4Ðì;^©¿¨#ó;î|¦Mº¯`ljÃo®&¨¬Å«Þ‘šÎN\ÅĘô8·¼£ó!Àiûê d¤DXŠ{ס >„xŽè²ËÐW¤ý>xË'lPAœã'ó¸½=0mJy˸w™ƒÜP{˜mÿWû.C8ó7‚&\… Ç[=…ì¿Ç‰í2NCÜ@,f¿ø„t&Bâwÿy Üi `®ÄH(aKcÓz_œ@ÞÁæ¾ÑüŽ`õ?ºÓZüˆ¡Mà œ©ìKë‰;€ìÓúH[¹¾rù0b»o¦¡÷ƒ‘²nZ£W2í/qÉ:Y(ûù¾©\-¾ýÿÝKéÇ€'‚°þ.mA ¶¯x?ˆì¬rª„ø‹zDðUüÏG¸Eú‚eä4ú}í·©ž/Ýœòåò±Å¢9w|¨>ù¶ñ†ÕÔBŸÕ>W].>Oà§÷ãêÃq-pê®iv˜"†¿V­Xú;Ȩå|OLŸ˜¾ÙººË_ïHu Šoùà1ò+Yœ$} tnšñÝëáݪØ´¸Ô,vBÕ£ÏY=¼#ŽÇý-Fº5oê[mܳV¤òäIØÿçé.R¬Ø_,,Žw̽Ÿù]7•¸Ã ÜJ”ÿѺUß°õ‘Êš,XôN ðÿ\†‚©4ð—lW#Ãêq(×1ólïÁÏ|Z¹X@Q&µóì£Õ*ãaç7ËË;¹ÕëÐ   yû•àŸÅÁÃlJáÝqsæªi Ü4! „h0àX+ ªpàyGo¹±Në€3ĽóÛ·úÒ˷ãd ž+7ì–ˆF‰³Þ;Â]þú×±~†ß-ÍÝRüÀzz…Ö_4ùkËoÖð×Þ9£Eµ:«øuø• …AnÁmåRÚȽCÛ[[ÎX˜i+0ÐKúj·ˆaÛ<% -½Þد׃ï›þ,,ýBé¥5Á£êP1ëŽ`²3PiýOÿýQÚ_Òm­š»abZ„¿{‡pzßÕcŽÝª ƒ`RÎÝm»¼« -ëñ Ç¿rêÒn»â—mõ`¶ßYö+b<¼ªYKÅhâž„¤‡[×meÏî«•/ËäŠö&‘VÑ>?Ów‚.ˆü“Ý@>eÛaŒƒµJÌh GiM×aôwü:\–Ò:ÛŒ¿Ú”¢ªŠ~~Róï.gCÓyþJC0ëq øál‰œåVGÕÆ®ß¿ç: <ŽÄËâöω³Uú„ ÞVÌŰ÷ý'¿´šfÇŸî0—{UåQgû¨í¢¡o>¤™\@#Ùÿ ¾ès§T*üH+ñG@hâ€?ÔwÿÌß`ÉFÅ„g“þt³uŒäîoÎý‰ÃìfÚàl1ŠNëÉV?¿Gë–‹ÎE€Ç,‰ÖëõhérjT;Äúdq§oàuÆýÍwë³›õA¾±Z}ÐSâʤ{öù/Dkå¾5[ß‹^ßÀZ\›"î¯àÊŠÿÌL²I){1{þ"™Ÿ›L÷ Žñû1Á³§vçÞ/Ì’@¨¹@këQ\Wb·A…Áh—§íú¡5bÈnÇW?lÌ,t¬fžŒ“€úÜðG¼£Øö®Ax»vÃ'H“O °7^ÙŽÕ‚`{‡"uØzÇÙX{ÒvŒynz‘ñƉIÖ¼§™ÅzüÂ0ÕHá€]ð·'ô¬ yL§o·™“PÂãâA=RZÇDÃÄ߯CzØUü¤„ø?8?á(ЧžN6‰>îã ÃÏ–JßaTqdȵZßa.xT;º'…g±½r,qC^½(”<;¶í7¶ce؇РøÀ™€GíÝg¯¥±ÉWàþ?œ¸oÄSºÁ=¢Ávð­ûÐ_Åòb$ÝÉò e$`ç1ÿþHûýË2õ¨Ýñ3rõˆ -ùqï­ÖŠ[ò˜öTÃ\Qß`¹™Èî¶ŠqÁ# üÉd«;ÕŒ -‹›/¶…£KÎsúÐÒj±*±Ü­‡¸ ì"‰­+¸d,O:ý÷Ðb  ü'Ðç˜öF[Q?9ŸcǦDÚ:ŠÉ 7ûY"n8ä_s­zP^]6Êü)]G&F´gî=¡Ûò«À‚p*7Jno´,h9r®6¸^€g”ƶEH\À<š€>¥Åvoˆ,•7)kn¸ë”}~ذñL¥_Ù`M<«õ„«õl_™¸K¾÷ˆ?1åÕÞ ³Ÿ—S»£Ê›®ìûð)UÔ0ñ˜Y2ÓSÄïe$êq+ ütö›]iõ%ã ƒ‡¾„ú<­;`ô&…ø/uÖGÈÄe¾5]©;xÒw)©vxc„Ô§^`dp‹É“[”¦a„1’î€\ȶ\èn²€ÛÖ£îƒtZʼ¦SFŸ¡2? )ÀÁå »§b:þЧÓï:>*`õ`[% ¤Ñœ´al¤2µï‡š—Aì¶²k»Â/ýý>Îë·žz*>7-M}W:ÆÞÃ&sÃ}bŒz}Áv_qÌFœ{ei…ÿºC9H#}§xi}}š¾ZÒóÐ*É­Ájë­dè/¸º¨‘0Îû—ºý}Ôø+2öÓÝý¦ýMßýœåD¸rS§Ç]ukÅ4ô¾0§Sÿ~…çff~„}a“RÅï:YÌ©'»o1%rÒ1ô+ùŽ•\–ÝõNÛ´yÃQAê5`He£T{qÛþÏ -Ó¬r’Ž÷JJQ7 _“±öõéir&™2ãÖlÑrÁbdϺ@mƒ2öò`;ØøiR1阦*‡Ê×,Eìz¸ª€Û.ˆ:¿b?õØü™Mbҵ߀ `' Á‘µáÕ£šB0äßH¿>W…Mè{üÄ“{/ѬŸbSÿ¾éŠ7Ÿ,ØÔ¹ûV ²ÏwOþÄTêuÂP}pr}1ëO0Êñ8sIèÍ5m…ºA–½“£3É;… Pk˜ZåT/gúÖüý»—ˆ ü?’–¹¢uÆcíåÒêî‡ij«%]äVLª¢Ãý?)ˆ4?lùq¼î˜ù%ªKt¯ ¯#CÔ>I’ØT­|,YƒÍ Mö> Nc0W7®¢³—éÍ£ÕçñmìÛ®fdâ9>œÛ"A¦£‘–Œð=1ˆÂQÍCHÅ<)Ð6"Fè&ý%‰aU•º( þ´q€ «»_?:ò£nÛ¹ø™Úמg?)Ñ4o¿OGˆVJ¡Ê•š&XÛ²è‘e›xYåxÍ‚$7Ù=5ÄØ‡Ÿ¢(g¦ÎugOʰ¹eVÅÍälž-¢{ßËîšðÑ4lÚÊjw#-ú‘2$ wˆ¦Ü¸üöX”ë¸#Bêl½ÉÑÊ4â Pð ¨Æ€®û±,ü¥ß‡úG im1 î?Ãdb®š&S=~TvwêI¡´¾YJ!~ý|k¿%á+„ªŽi²4)qåûôRdõ˜3:hÎSÀð~G-ßÀ•º>ìJn¦ÐOhiŸŠ -õ>TNF‡3ÁuÆ="•º1w4,e””27\ÀªôÙ ŠET7îR>Y@ùÊá Û»tn.z%veˆ ,pQø¯o}ì‚?˜)¼5àïƒ#)¾õ©×^D»°÷é~~orþ˜)Gðuh)øÕÙ\hôPâ«ãKù>ɦWŸœ‚;šM.ôa[egõ¬Å}ù)/žwu§ØEëSìDm. Ý}¿?N§±X{`=ÛRî(ú[À>ÊrÎ"ú^—O|ÂØ‚ ”é™^­Ð6î¶ðV@Þƒ€X[¬YþXH÷k$"LÒú‘qš*‹MaÝö‹Õ]‹Ç,ßN!ïÓÔBNÚ¼N=öj»¢(?^°ýĨùBë>„™~<§1 »ïVŒ?x+õ 㤉Üo"³0)©¸§ð/ ÄVªÈw Ru¯| ±³s™a`ðÔ¹»F4LñY‹á; ‚ÀÈ ¼Øþ•Пv]ôF©…Aa¢œ\w¢`¨ò)X 'j÷ýÄÉP*;ãZ $¨’0™ÌáÝV fZzäw~ë‡5±ÃV ÏqÒx ¤ÚÎÄÔášpç}ÔÍHWñ76–DãCb2\ûp—Õ?àXDEž¯r:¤ÂøÊ}Ϫ%à]3¬éHoK -¤AG…gNyúû‹¸ñ¯ÂI§Îd»Úòcv·aöˆàîPÕÏ$Þ›D¡œ$P1pÚ:{…V“.%w÷¾“/ô}âŒSY|áð Z…Ÿ===¿•áТ!jkÃq¤ l€¾+À³DÂoÍy¿>€½™?àºå¯®ö0 PYqJè“ï¸U6º%ôÐe¾7Ó¾L³J”r¬òÃ’òÈO±ªVÌPûÜM¬–+BÍtYZ‘½G™I4KNLïÌÚÏ;æ«8,®¯-õd5oŒsM„Óòeô­Àˆ³ou#õJõ5_å#`7mKfÅã$¢˜/|wéu3 8p@zÚþÂ'¢Ž 2¤ÔVM-ÒöÒ] )Ú]ÿßÞE¬àTãg쯕8x4ý‚ܾ½bšI!ܽ·Âö°zMû%&SÑ›ëQªA½‡øéÙ­EÓ`;ù‘ç©_²§Ê“|‡y‡«ÈNêak4ë€úF ­Ät+*Â=¥û Ýa*ƒ.žÇÂ\}›< -ɤúÖ®ôQ>ÅÒ¯>Ì&ê”Î Õ 5ö–{½©7  ^H)¼'çá N‡0TÂÇi][`5!¬³™Ÿ­û÷Ñ;>€è5a „èÐ#Íösdÿ$é2)’ ”¹³°Þ×g<ò1G¾P -£äœ¼¨”ßlq?a3Ñ#úÇ'F©>Ÿ1(o毖{ªxj8ÀÚžå:Ín@nd¦åñ8,úü»cüt˜ª,&r©>(HLr"f>/V·¹òè†&çÛùHa;îOp‘ë¡€c*ü!Òˆ@ó n\Ñ|ÆùuëœÔ±'‚"åЃ”ƒ$þy|±_h6+|,.yL(V¦,¿ï?×`=Ì»Yî×"ÏìžË¡4*ˆß:?-Ììð('WùiýúBWuCrë}¢üæ£réñ·†"¡”_eÍö¼jŸOúXë…úZ‚ÿ 4Ž香fúþBuÛ»®mœø×x/E',t(pOˆ¹U…míQî¬7ÔHÇ_ú&ÂЩ8}:{P…ºf€Ü ‚b¢~Ö“mî{yâ›ô72ÝÇ9ú°Ä”…bîhé]ºýúÆE–óPjÀi‘üæ[ûÌõÜÖËʆíçÜT³ÕJušHg 8²9ïÀm’çô}éIÙ–;ºŽ.ÊNÜdgslu¶T@evÀdÉŒa¾í‰Yfo¾’|¡”šfuš+nOöh‹zÞðÓê0œf‹ƒl3£êôÕ¹ûfÉä©X¦´l¢>Pïç<4°þðÎ{ìYÙ¥'` c=×´@x1»¤È©¸ -J3›/Ÿ5ffüêl¼Oå¨F~|»1³Uæ®X.å=æõ¹êY› ‚ ç®ïô_ŽqCÔ‡|F_V¦] u;þ£¤ÒWÝ|Yò}Ê çMâ©×ªBN'擤™6Dö¾Ù ‘°œ÷9P[3ì/rÚ -({^® C¨ÿ'¬ý;£| R?#WRã¸`¶»wãGn9-C¨G¦îø%ÿÉvmæ.έs²î1Ó¥Ö¾­ã_-?ø™§GäúB‘rß‹*Šëoäîmµ Ðø¶™­wnðbê(Ö}¨„ hŽ!’[®úÞ#äþЬú÷¶)Rï/Ë:²ç‹·ª3ôòé"~zè¡•ÞehË÷Ú©poPÁ’'Nù»Ë‰~5ÜHf×òŒ„]ù×þ¿Ãz/Û?‰"à’¥¯û+]ñCõ?™ÄÌFwêù=47kOø§ø¿¥‘©^´È²8 W8åG4Üî~éhÄ>ºžïpj¨âFçŸ2Ê,CÝzG‘U‰\ ôwp¯V bªï]­Ìç帩kbÒW¯ïOcå<툖ªÑËÀ|†æ8ÅÂÆ›¯œc´E»fJ…Bæ´q—?žôù[³äµmåÿÞSy¥ªp®eh„äܘr-3ù'ÐÁÔBt³¿¬kQô´Ù<÷ÃÆü®L"Ȉ¿2/2¯å`Ö7¬üÐIN¿Ä‘bH,C6ëHdÖ“!ËÀ"ër|*ûgL­€§ßòCŽoòÚÜÁE³§bÕ êX£C‡3&çé0/këH›S·L|‚}/³L”2øŠ<+ ÏŽxùÑ>Ê£"…-¤OeŽ®Àd'÷QÆP®9£•ÞïÓ¿;þ^Ê{ãßý «Z-ÞÔ(ü‚Ë/Ñ ë{ÈïÁBsîg{[c|0zŒsœ_=&EµðSïýûµMlü=¦\$PÊR£™ýŽ&Ãh ÁBÓj‘"×Ĥi¹ ó†ü¢dô£šu0íBô! ·›õ0rCkÇ—ë‰õ)¬5A:£út‘wоüÑåËi õ:œ`>˜8EBÊ·ô„³}O%ÂÈ“`E#D[8O´–| }7XrŒÀÈœ¼¿pÙ#›¤½;8<þ‰Ñh™ìÊ?eÜYÞ Pý÷N5a Õ´*$ý^ô24¾¶='jð<Y·þ×É¡[™¬ÌrÝÙ_~²ô[ŸnJê²OésUõã[ðh·£ä›»à£lâ}ÿX ºã«ÊÚþ¦¿~·>Ìup•8¥öÅ^›bᬹ[ü¥½< ?aÅ„ª9uAz<‹ûÑc@u/ ÀlzOlFËÀôÁSè2Väâ,ÜEcfbìŒBc†4³6ê<ôBÇR0äÌJhߘÛp* ׯ­¶ß~ý4øjÀZ¤ü–âK¼Õ–Ôìô@'•Jã’ܯ.~ªOµ\SfÛ`Ò%*ò«œxõ¯»Ë¸l0ybCé#71öálÙLúòg8.vÞ/BqYM}}–Ñ?«£Aôl}¤¾Ð‡M¾ãg)ÞÏq1“NŒK°9Nà+òOkÉ],ÀwÒLzÆ=+ΩgÅ^ÝÄ!ÚFöñîà]ê¿2þ5Ñ“èøÒýÂ#-è7üùß[”õ—Ùׇ#úÓjäVoåÆÅ>5‹Œ¤™ôúe÷{…Ƈ›mL÷<L6ùâ5LB®B8»ìã¢ãÖ— „PŒøš°Ø*ÌǑ~Ä.pZßÇ™UýÙWºB}çòEåퟷ,|À©» íÁ1 ~׫‡j_ÏÝâóÝÓ óÇO´–¼…&¡+°–þNÔTò>Ž¯Ë¸,ŠQzPL Àü>” Àš{¡2Y$X-ù@Š>zk _ž´Èêý¾´ÇKhVèÌÄ;SÄ÷; ahÔ¿L.7 -EŸàóuKÉÖBó•ßÅ­úQ]™Á»ce¨¦¯mÙ¤ËÂÛ²z -Æ$â· QpÙV%Œþšjlï@ó;ô­;|>Ó¹Ó4Õ¨×Wo‹ú|úÌ—t>ßã“i*q¢¤°IÄHŽgœÿ‹ÔÖ¸ÅÖ’SßȶåÌÀKΖ÷q'êÃlF"F<ŽDì +ÿL§ÿÛoÿNú»õ¸ý:†¿£¼„Fvˆ.¦æø! ”Б½ Üž{UqTªp¾(!4úÞÄï¼ðs´¨¥Ö÷QÆÝ¡y9LÜÊ­_äÎ,¿7‰˜ŠT|R4RÒý6ðp¼©õlù†(|Å÷•·RønSD_teÑçØC}ué#Ô+¸D>ôÆÕ›S!x0  _q¸š8gä+ò®%_¬©âà"® ï¼å}²A"ƒ'|Þœ†9 /1è¸_êô 0>X\§O¤;ëðÖmøÃ‰ -ÿIž;@^ëvU††Ýî™Ñkœ†,þþqc‰¦ü‘L§ðÿãÄ·Á‡$0[+ýîÊ^”Þ\ åf1æ­.†—;ˆxŠT]G=N¶¯1`ªŽKGêšê™FWPi%¶%å[Ô§·“îsl }$ÎGgõ…7WÚÁfì*ƒÚê€>1&"ÃÝâ×íñ³ðÅkÂÅòäãþKXò6³ “â ¬°Ë8¦AÂç¶,¬–Ê0‡ÿyŽãºà@@JžychÑoE¥‹¾Æ_ñÉ<Úlü^…©Ø-,|Æ£ -×`Ù=:ÅáùÄÚzI›“çEz R¿*½OÄЭ‡Y¸éQ!^Ô œÜíTÑÚªôìMoÑ1ºÿ‘š@×GÂÒ€FÒãˆÔ%c¨{Ïè®õ¹ãÚÖwœñ©> ØìÁŒ{V2X¬ÕaŒ†Ü-(ÓÎ|ZŸ£ë0ó©jCåkø …BÊ÷=ä ˜ûÌ©X¸;|,¼÷›ã:¾"§1/´²äK¤˜" Œ7G`9`0Àx.ê >ì§æ† àô‡ïÙ:â%ówˆ?f‡Ãð6 ˜} Øÿ©þ@Z÷õ-ßïîî­?8¼ì²ÇÂ*ÍF-¢ÒÊ{Eœ”=C. ¼XàLdÞX®Þ`ºÌ zqRƒ¯9bm…R?\.Z~G‰{Çv죳 4à‘Z8 ‡\?wêH¤¸76q¹Ÿ.4%ýö]tšÖLÓwóíŸHžïÇ`¶éÃxl>¥ö`ž(θ[¹=äõN[K~¾¾¦¿Ëò”ã~y÷ëŽML]íéÜÿ_œCvOt?øõnfõWNý4c¿‡J©ßL³ÏÙßï|å”'e#u‘õûÀÁà4RÇ|YŠ#…ј¿ÖË©`ÀnpÒ£À]¢ßkT$üÉÎjûŠ tö¡5§É”J6É<™$е±BfIk†îíSWæÍ³}™Ïgä#Eˆ&pÿÔL­¯;„¯còîÜ38uWÎ'÷"p&÷«Š?q ›ãàÿòÇÓN/s-9¼dÉ%Kä" ÷‚%'â·TBØB1p†¿‰ñk1?Àð£G`½ÝÙ-Nƒ“ &„¦ïç­Üg¢ó÷£_^î1Ç"H~-Ç ëqjRj÷­øÉ$§£GŒ}]jvs¿­3­+&òk@LŠÿE^Kwàú¥´]šºU“eòƒ  „›¾ÚµñpÅE®®ÞǾG-s)[äÊæ¡qÊ—%mé¾X`“tÓW&¼¿ˆyji?·¡¿s‡^Ipò¾òëKèaÅŸ}6£OÓLXó.!åñ"põ}ð'ÎÏ8ßöÜE[˜¢HƵäq¿…ô½?‘›æ9¥|y•òµËè’w)_êÿ‹'¿;8„ÿîìü+פ6ÑíE°9™ôAFÌ qR?o®ô Vå{*I·¼Q!$èTß#Ø#~¹pT3ÖÑh—»sÈ—‘Ó…Û’ ä§Á¶ŽpW5ø>‹ÖVDkÅ‹ ñ£’Oý®æ…ÝÅmôô•QãD¸ëžlïè-‚Âý­]ÒÁ꾈á¥{wŒôñ9ôHóuÖ7ç?0U3Ànr]óéÓƒSwì|q¯ -ÝÂç!ˆH>6ÇCPÙ[ï+r*×’_ä}5$aÉ‹8ÖôÒ幄°…üºŒó -¨Vñx„òž¿iú¯ î„ü.ºì¡û)¡ ?ºò=°aþBR-/è1÷««–|Üë1X££™°´û.¼|S¹ðVy^z„È:Ó‘uÿ–ŸY~ZH*Öæ7é—¯‡ü9Y™3Ã@0›†ÌØ—˜'‚ÃeCæ±Å¥×_¶Æ)¬_œLÀIPÕzMÞ1í÷UGLéÌaú·í"5<àÕflif:sæã^Ç<µ¾µa¸«ç«¦ÓeK±pˆsz¯›ã•¯ÈÅ[KNÎûB4Üñ¦h&\;ÞZØ/xku/­šÆÓNá6ã.ýAò½à:ÿž†œùèö;Ô¹ŸÉs€C«1]æJ¿+êÇgèÔðrÞ¯ì]ÚƒÈ\OŸ`²­»+aÄZ¸-gøí†üñ—J+ì¾ëf®ôp+S¿tJ¶%<úÐì{¨-eõÃÄËFa äDY@mãõrÙѯÓ'% è¨/Þ÷iC¾;l9í-`…†X&G´Cœùöì Î|™ë˜­Ý¼û~Á{±áKÜ*ãOœíxÆIÌW‹Û]>×’Óú„†‘‚%·ebøKþíîå·».ÕAx„¦0„ÍåM+|7fÞ?Aóî¡[ -y§²k ‰©¢Oõ×`dù{6{@ìðÇ$é‘ÅÄßçÇJN@…ÛÆŠå,¬£ËÔVó¾I¬Ý*c -vOÕC€`ë!ùýßP¬ïéuVêçûåß+ìT°”ßãªïhñ¾Ås–“{´Ô¬Gæƒ45 -Ó¸]7O¦ÉÝñÊvPk‡—áۚ؀W3è½í ×Ñ]atŠÅ1RÚƒöæß ä³…S,\[¬].Å×=(ŒÃ˜?^®•kÉ·F}Œ†¡òumÔ@Ñ\íî8žÌºŒÏê ¾ºJ÷ åzЊâ݉§y[éŒöGvúìïð`hú-lâózeªœ[®ŸÁ0Ý»™ý@Ñ“ÍiòŸf Öv®prª„KJ¸aJ2àZ/1’IP;„ÑcùI[ÝíqÃ)Nl ZzL?“ļÏÓêÝ7ÛÜUö"D}sðDÔ#Ù7} !Tµû0P'ï ðxÜî¸×2t„²åç|OMwÇÙPû6ÕŽÒì™d½1³cw8 ’Ëu]0ß\{ eð:”ù2¬¨çS,|O âuÏðÝÉö¸ © ê+r×’·ä>ÆÃ>„Á’C>‘+ä}¾.ãÜÈÔ}%SWN/àXx§û/8d÷ÿØ?Þ¤iâå|oªŽ9Ô¯/8·øÓ3¸+~ë;L¿<#úv/v@KC˜N8ƒƒÛNÉÓh’~p1˜iWKª?z÷'åÏš[{ýJœ‹ðØ+€„ÐNVfª°f2*Ÿ©[ÈG|ØÎ¥Ö¡‡9<œ¢©oïôf…–¡(Š@Ww8}¾×Mýj3 ïY;Vަ.Çéõ#Ͳ°|éÖñ«½Áõñ¡ËBvtWñ'^Ïøf´…ûê!¸–|Ô×ñàË ,¹iÙ¹ÄÈû8]Å]2ùs¸ÂÑH Ö»EV»¢>ÐŒïÎæº‰å5I®¾Ïï¡Ð¿³Ž<Z"ú]×8|‹Ô -¨¡ø±)ÈÁ•áÒŠ´'Ò~¿-¯Êo=ÎÄüw=yñ}WÏ£{p~ÉÙT¦À só¼·™˜‹¦.‚«Ý;•ùÏ0E³†ø_B§ôÁï ù—å¯êË[Me_­‘PÉVÃøÖw»Ù‰„õ%…¾›X{ƒ¼EÅZ’;˜„l×q#·GŽÜ~õd\K>!÷!ì" {Hƒ%'ó‰\Èû8b]Æ©tçÞ»ƒßyH2YønçcM½>6óo¨ø¨bµ-™Ô‘+ýx{7óü½0íñ?Þ«üîhü) -Ãü!µ„#÷mÉY„Xí\mbLKX@ØÝ߀X9™Ó!>P~ªù?FܬOáðXÿ3ãP³äÖ™MÅ…žôGîaÓiÂè#6váz¥È Y§¾›ûêkSD¥”=kê¯;Ì9öeÂm<º ØŽ@´#R}1*Ÿ3}7&úËÚ\ÈÀà­›œ;íÅEì´ ·å.\ê•rÆ+Aq%ÂðCþ·D>‘Oò>n\—qÂt -endstream endobj 78 0 obj [/ICCBased 120 0 R] endobj 37 0 obj [36 0 R 35 0 R 34 0 R 33 0 R 32 0 R] endobj 262 0 obj <> endobj xref -0 263 -0000000004 65535 f -0000000016 00000 n -0000000203 00000 n -0000019585 00000 n -0000000000 00000 f -0000019636 00000 n -0000000000 00000 f -0000000000 00000 f -0001240583 00000 n -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0001240656 00000 n -0001241031 00000 n -0001242638 00000 n -0001308227 00000 n -0001373816 00000 n -0001395773 00000 n -0001461362 00000 n -0001526951 00000 n -0001592540 00000 n -0001658129 00000 n -0001723718 00000 n -0001789307 00000 n -0001854896 00000 n -0000000000 00000 f -0001235820 00000 n -0001235896 00000 n -0001235971 00000 n -0001236040 00000 n -0001236117 00000 n -0001920521 00000 n -0000020534 00000 n -0000021901 00000 n -0000090522 00000 n -0000152083 00000 n -0001204796 00000 n -0000334688 00000 n -0001236790 00000 n -0001236915 00000 n -0001237031 00000 n -0001237154 00000 n -0001237281 00000 n -0001237395 00000 n -0001237511 00000 n -0001237627 00000 n -0001237751 00000 n -0001237874 00000 n -0001237987 00000 n -0001238112 00000 n -0001232942 00000 n -0001233086 00000 n -0001233230 00000 n -0001233382 00000 n -0001233534 00000 n -0001233678 00000 n -0001233822 00000 n -0000023166 00000 n -0000023425 00000 n -0000023760 00000 n -0000024508 00000 n -0000024892 00000 n -0000026053 00000 n -0000026791 00000 n -0000027530 00000 n -0000028287 00000 n -0000029431 00000 n -0000029834 00000 n -0000030583 00000 n -0000053744 00000 n -0000072433 00000 n -0000021963 00000 n -0001920485 00000 n -0000022604 00000 n -0000022652 00000 n -0001204908 00000 n -0001205588 00000 n -0001204971 00000 n -0000347457 00000 n -0000366995 00000 n -0000785650 00000 n -0000347520 00000 n -0000346603 00000 n -0000346907 00000 n -0000346666 00000 n -0000342309 00000 n -0000346488 00000 n -0000342372 00000 n -0000343012 00000 n -0000343523 00000 n -0000341698 00000 n -0000341761 00000 n -0000337855 00000 n -0000340266 00000 n -0000340799 00000 n -0000340329 00000 n -0000339115 00000 n -0000339445 00000 n -0000339179 00000 n -0000337791 00000 n -0000338215 00000 n -0000336066 00000 n -0000336794 00000 n -0000336130 00000 n -0000334801 00000 n -0000335198 00000 n -0000334865 00000 n -0000332941 00000 n -0000333609 00000 n -0000333005 00000 n -0000259673 00000 n -0000154825 00000 n -0000090566 00000 n -0000152119 00000 n -0000152175 00000 n -0000333158 00000 n -0000333306 00000 n -0000333397 00000 n -0000333503 00000 n -0000333726 00000 n -0000333781 00000 n -0000334080 00000 n -0000334158 00000 n -0000334315 00000 n -0000334463 00000 n -0000334538 00000 n -0000334613 00000 n -0000335010 00000 n -0000335107 00000 n -0000335315 00000 n -0000335370 00000 n -0000335667 00000 n -0000335745 00000 n -0000335894 00000 n -0000335991 00000 n -0000336275 00000 n -0000336422 00000 n -0000336543 00000 n -0000336667 00000 n -0000336911 00000 n -0000336966 00000 n -0000337267 00000 n -0000337345 00000 n -0000337494 00000 n -0000337641 00000 n -0000337716 00000 n -0000337999 00000 n -0000338120 00000 n -0000338332 00000 n -0000338387 00000 n -0000338688 00000 n -0000338766 00000 n -0000338915 00000 n -0000339036 00000 n -0000339324 00000 n -0000339562 00000 n -0000339617 00000 n -0000339918 00000 n -0000339996 00000 n -0000340145 00000 n -0000340474 00000 n -0000340595 00000 n -0000340698 00000 n -0000340916 00000 n -0000340971 00000 n -0000341271 00000 n -0000341349 00000 n -0000341498 00000 n -0000341619 00000 n -0000341877 00000 n -0000341932 00000 n -0000342231 00000 n -0000345876 00000 n -0000345940 00000 n -0000343988 00000 n -0000345263 00000 n -0000345327 00000 n -0000343924 00000 n -0000344357 00000 n -0000344141 00000 n -0000344262 00000 n -0000344474 00000 n -0000344529 00000 n -0000344828 00000 n -0000344906 00000 n -0000345063 00000 n -0000345184 00000 n -0000345444 00000 n -0000345499 00000 n -0000345798 00000 n -0000346057 00000 n -0000346112 00000 n -0000346410 00000 n -0000346810 00000 n -0000347023 00000 n -0000347078 00000 n -0000347379 00000 n -0000367039 00000 n -0000785594 00000 n -0000785765 00000 n -0000785831 00000 n -0000785862 00000 n -0000786167 00000 n -0000786241 00000 n -0001205524 00000 n -0001205703 00000 n -0001205769 00000 n -0001205792 00000 n -0001206054 00000 n -0001206132 00000 n -0001206437 00000 n -0001206510 00000 n -0001235617 00000 n -0001235251 00000 n -0001234884 00000 n -0001234671 00000 n -0001234454 00000 n -0001234087 00000 n -0001233966 00000 n -0001234208 00000 n -0001234329 00000 n -0001234551 00000 n -0001234789 00000 n -0001235005 00000 n -0001235126 00000 n -0001235372 00000 n -0001235496 00000 n -0001235714 00000 n -0001236672 00000 n -0001236704 00000 n -0001236554 00000 n -0001236586 00000 n -0001236436 00000 n -0001236468 00000 n -0001236318 00000 n -0001236350 00000 n -0001236200 00000 n -0001236232 00000 n -0001239883 00000 n -0001239021 00000 n -0001238235 00000 n -0001238290 00000 n -0001238589 00000 n -0001238667 00000 n -0001238824 00000 n -0001238942 00000 n -0001239076 00000 n -0001239370 00000 n -0001239448 00000 n -0001239605 00000 n -0001239726 00000 n -0001239803 00000 n -0001239938 00000 n -0001240235 00000 n -0001240313 00000 n -0001240462 00000 n -0001920574 00000 n -trailer -<<50D55593E899F2408A07A2263CE1780D>]>> -startxref -1920762 -%%EOF diff --git a/share/macosx/keepassxc.icns b/share/macosx/keepassxc.icns index c5125d782..927efd5c0 100644 Binary files a/share/macosx/keepassxc.icns and b/share/macosx/keepassxc.icns differ diff --git a/share/macosx/keepassxc.iconset/icon_128x128.png b/share/macosx/keepassxc.iconset/icon_128x128.png index 7512796d4..0b36d35d1 100755 Binary files a/share/macosx/keepassxc.iconset/icon_128x128.png and b/share/macosx/keepassxc.iconset/icon_128x128.png differ diff --git a/share/macosx/keepassxc.iconset/icon_128x128@2x.png b/share/macosx/keepassxc.iconset/icon_128x128@2x.png index 3c00e0e8c..71c955e2a 100755 Binary files a/share/macosx/keepassxc.iconset/icon_128x128@2x.png and b/share/macosx/keepassxc.iconset/icon_128x128@2x.png differ diff --git a/share/macosx/keepassxc.iconset/icon_16x16.png b/share/macosx/keepassxc.iconset/icon_16x16.png index ca6823954..5b2799217 100755 Binary files a/share/macosx/keepassxc.iconset/icon_16x16.png and b/share/macosx/keepassxc.iconset/icon_16x16.png differ diff --git a/share/macosx/keepassxc.iconset/icon_16x16@2x.png b/share/macosx/keepassxc.iconset/icon_16x16@2x.png index 47af8eb1b..62c6bbb9b 100755 Binary files a/share/macosx/keepassxc.iconset/icon_16x16@2x.png and b/share/macosx/keepassxc.iconset/icon_16x16@2x.png differ diff --git a/share/macosx/keepassxc.iconset/icon_256x256.png b/share/macosx/keepassxc.iconset/icon_256x256.png index 3c00e0e8c..71c955e2a 100755 Binary files a/share/macosx/keepassxc.iconset/icon_256x256.png and b/share/macosx/keepassxc.iconset/icon_256x256.png differ diff --git a/share/macosx/keepassxc.iconset/icon_256x256@2x.png b/share/macosx/keepassxc.iconset/icon_256x256@2x.png index 1c6e2a094..e846e3090 100755 Binary files a/share/macosx/keepassxc.iconset/icon_256x256@2x.png and b/share/macosx/keepassxc.iconset/icon_256x256@2x.png differ diff --git a/share/macosx/keepassxc.iconset/icon_32x32.png b/share/macosx/keepassxc.iconset/icon_32x32.png index 47af8eb1b..62c6bbb9b 100755 Binary files a/share/macosx/keepassxc.iconset/icon_32x32.png and b/share/macosx/keepassxc.iconset/icon_32x32.png differ diff --git a/share/macosx/keepassxc.iconset/icon_32x32@2x.png b/share/macosx/keepassxc.iconset/icon_32x32@2x.png index 63c9847c4..fd1bdb037 100755 Binary files a/share/macosx/keepassxc.iconset/icon_32x32@2x.png and b/share/macosx/keepassxc.iconset/icon_32x32@2x.png differ diff --git a/share/macosx/keepassxc.iconset/icon_512x512.png b/share/macosx/keepassxc.iconset/icon_512x512.png index 1c6e2a094..e846e3090 100755 Binary files a/share/macosx/keepassxc.iconset/icon_512x512.png and b/share/macosx/keepassxc.iconset/icon_512x512.png differ diff --git a/share/macosx/keepassxc.iconset/icon_512x512@2x.png b/share/macosx/keepassxc.iconset/icon_512x512@2x.png index 68e4a3dce..56bdc6726 100755 Binary files a/share/macosx/keepassxc.iconset/icon_512x512@2x.png and b/share/macosx/keepassxc.iconset/icon_512x512@2x.png differ diff --git a/share/translations/keepassxc_ar.ts b/share/translations/keepassxc_ar.ts index 1bd56f500..b21c5d89b 100644 --- a/share/translations/keepassxc_ar.ts +++ b/share/translations/keepassxc_ar.ts @@ -58,7 +58,7 @@ <html><head/><body><p><span style=" font-weight:600;">%1 </span>is requesting access to the following entries:</p></body></html> - + <html><head/><body><p><span style=" font-weight:600;">Ùª 1 </span>يطلب الوصول إلى الإدخالات التالية:</p></body></html> Name @@ -66,7 +66,7 @@ PID - + هوية العملية Executable @@ -76,14 +76,14 @@ Command Line سطر الأوامر - - Your decision for above entries will be remembered for the duration the requesting client is running. - سيتم تذكر قرارك للإدخالات أعلاه طوال مدة تشغيل البرنمج الطالب. - Details ØªÙØ§ØµÙŠÙ„ + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + سيتم Ø­ÙØ¸ خيارك طيلة مدة عمل الكلينت Ùˆ + Remember تذكر @@ -93,8 +93,12 @@ السماح Ø¨Ø§Ù„Ù…ÙØ­Ø¯Ø¯ - Deny All - منع الكل + Deny All && Future + Ø±ÙØ¶ جميع الخيارات لان Ùˆ مستقبل + + + Allow All && &Future + قبول جميع الخيارات لان Ùˆ مستقبلا @@ -112,12 +116,16 @@ Use Pageant - + استخدم Ø§Ù„ÝØ§Ø¬Ø§Ù†Øª Use OpenSSH استخدم OpenSSH + + Use both agents + استخدم العميلين معا + SSH_AUTH_SOCK override تجاوز SSH_AUTH_SOCK @@ -136,7 +144,7 @@ SSH_SK_PROVIDER override - + تجاوز SSH_SK_PROVIDER No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. @@ -161,6 +169,10 @@ Security الأمان + + This setting cannot be enabled when minimize on unlock is enabled. + لا يمكن تمكين هذا الإعداد عندما يكون التصغير عند إلغاء القÙÙ„ Ù…ÙØ¹Ù„ا. + Access error for config file %1 خطأ ÙÙŠ الوصول إلى مل٠الإعداد %1 @@ -248,6 +260,10 @@ Remember previously used databases ØªØ°ÙƒÙØ± قاعدة البيانات المستخدمة أخيراً + + recent files + أحدث Ø§Ù„Ù…Ù„ÙØ§Øª: + Load previously open databases on startup عند بدء التشغيل إعادة ÙØªØ­ قواعد البيانات التي Ù…ÙØªÙˆØ­Ø© سابقاً @@ -266,22 +282,22 @@ On database unlock, show entries that - + عند إلغاء Ù‚ÙÙ„ قاعدة البيانات، أظهر الإدخالات التي have expired On database unlock, show entries that... - + انتهت الصلاحية days On database unlock, show entries that will expire within %1 days - + لأيام will expire within On database unlock, show entries that... - + ستنتهي صلاحيتها ÙÙŠ غضون File Management @@ -293,11 +309,11 @@ Automatically save when locking database - + Ø§Ù„Ø­ÙØ¸ تلقائيا عند Ù‚ÙÙ„ قاعدة البيانات Automatically save non-data changes when locking database - + Ø­ÙØ¸ التغييرات غير البيانيا تلقائيا عند Ù‚ÙÙ„ قاعدة البيانات Automatically reload the database when modified externally @@ -309,15 +325,15 @@ Backup destination - + وجهة الدعم الاحتياطي Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". - + تحديد موقع مل٠النسخ الاحتياطي لقاعدة البيانات. يتم استبدال تكرارات "{DB_FILENAME}" باسم مل٠قاعدة البيانات المحÙوظة بدون امتداد. يتم استبدال {TIME:<format>} بوقت النسخ الاحتياطي، راجع https://doc.qt.io/qt-5/qdatetime.html#toString. <format> الإعدادات Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠØ© لتنسيق السلسلة "dd_MM_yyyy_hh-mm-ss".</format></format> {DB_FILENAME}.old.kdbx - + {DB_FILENAME}.old.kdbx Choose... @@ -325,15 +341,15 @@ Use alternative saving method (may solve problems with Dropbox, Google Drive, GVFS, etc.) - + استخدم طريقة Ø­ÙØ¸ بديلة (قد تحل مشاكل Dropbox Ùˆ Google Drive Ùˆ GVFS وما إلى ذلك) Temporary file moved into place - + تم نقل المل٠المؤقت إلى مكانه Directly write to database file (dangerous) - + الكتابة مباشرة إلى مل٠قاعدة البيانات (خطير) Entry Management @@ -400,9 +416,13 @@ Toolbar button style: نمط أزرار شريط الأدوات + + Show passwords in color + إظهار كلمات المرور بالألوان + Use monospaced font for notes - + استخدام خط أحادي Ø§Ù„Ù…Ø³Ø§ÙØ© للملاحظات Minimize instead of app exit @@ -414,11 +434,11 @@ Tray icon type - + نوع أيقونة الدرج Tray icon type: - + نوع أيقونة الدرج: Hide window to system tray when minimized @@ -426,7 +446,7 @@ Reset settings to default… - + إعادة تعيين الإعدادات إلى الوضع Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠ ... Auto-Type @@ -446,7 +466,7 @@ Hide expired entries from Auto-Type - + Ø¥Ø®ÙØ§Ø¡ الإدخالات منتهية الصلاحية من الكتابة التلقائية Re-lock previously locked database after performing Auto-Type @@ -454,11 +474,11 @@ Auto-Type start delay: - + تأخير بدء الكتابة التلقائية: Global Auto-Type shortcut: - + اختصار الكتابة التلقائية: Auto-type start delay milliseconds @@ -471,7 +491,7 @@ Auto-Type typing delay: - + تأخير الكتابة التلقائية: Global auto-type shortcut @@ -529,7 +549,7 @@ Enable database quick unlock (Touch ID / Windows Hello) - + تمكين إلغاء القÙÙ„ السريع لقاعدة البيانات (Touch ID / Windows Hello) Lock databases when session is locked or lid is closed @@ -549,7 +569,7 @@ Use placeholder for empty password fields - + استخدام عنصر نيابة لحقول كلمة المرور Ø§Ù„ÙØ§Ø±ØºØ© Hide passwords in the entry preview panel @@ -561,11 +581,11 @@ Move entries to recycle bin without confirmation - + نقل الإدخالات إلى سلة Ø§Ù„Ù…Ø­Ø°ÙˆÙØ§Øª دون تأكيد Enable double click to copy the username/password entry columns - + قم بتمكين النقر المزدوج لنسخ اسم المستخدم / كلمة المرور Privacy @@ -575,16 +595,20 @@ Use DuckDuckGo service to download website icons استعمل خدمة DuckDuckGo لتنزيل أيقونات مواقع الإنترنت + + Hide TOTP in the entry preview panel + Ø¥Ø®ÙØ§Ø¡ TOTP ÙÙŠ لوحة المعاينة + AutoType The requested Auto-Type sequence cannot be used due to an error: - + لا يمكن استخدام تسلسل الكتابة التلقائية المطلوب بسبب خطأ: Auto-Type Error - + خطأ ÙÙŠ الكتابة التلقائية Permission Required @@ -597,44 +621,49 @@ KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. - + KEEPASSXC يتطلب إذن إمكانية الوصول ومسجل الشاشة من أجل إجراء الكتابة التلقائية العالمية. تسجيل الشاشة ضروري لاستخدام عنوان Ø§Ù„Ù†Ø§ÙØ°Ø© للعثور على الإدخالات. إذا كنت قد منحت الإذن Ø¨Ø§Ù„ÙØ¹Ù„ØŒ Ùقد تضطر إلى إعادة تشغيل KeePassXC. Invalid entry provided - + إدخال غير صالح Bracket imbalance detected, found extra { or } - + تم اكتشا٠اختلال توازن القوس ØŒ تم العثور على { أو } إضاÙÙŠ Too many repetitions detected, max is %1: %2 - + تم اكتشا٠عدد كبير جدا من التكرارات ØŒ والحد الأقصى هو Ùª1: Ùª2 Very slow key press detected, max is %1: %2 - + تم اكتشا٠ضغط بطيء جدا على Ø§Ù„Ù…ÙØªØ§Ø­ ØŒ والحد الأقصى هو Ùª1: Ùª2 Very long delay detected, max is %1: %2 - + تم اكتشا٠تأخير طويل جدا ØŒ والحد الأقصى هو Ùª1: Ùª2 + + + Entry does not have attribute for PICKCHARS: %1 + لا يحتوي الإدخال على سمة Ù„ PICKCHARS: Ùª1 Invalid conversion type: %1 - + نوع التحويل غير صالح: Ùª1 Invalid conversion syntax: %1 - + هيئة التحويل غير صالحة: Ùª1 Invalid regular expression syntax %1 %2 - + هيئة التعبير غير صالحة Ùª1 +%2 Invalid placeholder: %1 - + عنصر النيابة غير صالح: Ùª1 @@ -679,19 +708,19 @@ AutoTypePlatformX11 Trying to send invalid keysym. - + محاولة إرسال رمز غير صالح. Sequence aborted: Caps Lock is on - + تم إحباط التسلسل: Caps Lock قيد التشغيل Sequence aborted: Modifier keys held by user - + تم إحباط السلسلة: Ù…ÙØ§ØªÙŠØ­ التعديل ÙŠØ­ØªÙØ¸ بها المستخدم Unable to get valid keycode for key: - + غير قادر على الحصول على رمز Ù…ÙØªØ§Ø­ صالح Ù„Ù„Ù…ÙØªØ§Ø­: @@ -702,7 +731,7 @@ Double click a row to perform Auto-Type or find an entry using the search: - + انقر نقرا مزدوجا Ùوق صَÙ٠لإجراء الكتابة التلقائية أو البحث عن إدخال باستخدام البحث: <p>You can use advanced search queries to find any entry in your open databases. The following shortcuts are useful:<br/> @@ -711,11 +740,11 @@ Ctrl+1 - Type username<br/> Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> - + <p>يمكنك استخدام استعلامات البحث المتقدم للعثور على أي إدخال ÙÙŠ قواعد البيانات Ø§Ù„Ù…ÙØªÙˆØ­Ø©. الاختصارات التالية Ù…Ùيدة:<br/>Ctrl + F - تبديل البحث ÙÙŠ قاعدة البيانات<br/>Ctrl+1 - اكتب اسم المستخدم<br/>Ctrl+2 - اكتب كلمة المرور<br/>Ctrl+3 - اكتب TOTP<br/>Ctrl+4 - استخدام لوحة Ø§Ù„Ù…ÙØ§ØªÙŠØ­ Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠØ© (Windows Ùقط)</p> Search all open databases - + بحث جميع قواعد البيانات Ø§Ù„Ù…ÙØªÙˆØ­Ø© Search… @@ -723,7 +752,7 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Type Sequence - + سلسلة النوع Cancel @@ -731,46 +760,46 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Type {USERNAME} - + كتابة {USERNAME} Type {PASSWORD} - + كتابة {PASSWORD} Type {TOTP} - + كتابة {TOTP} Copy Username - + نسخ اسم المستخدم Copy Password - + نسخ كلمة المرور Copy TOTP - + نسخ TOTP Use Virtual Keyboard - + استخدام لوحة Ø§Ù„Ù…ÙØ§ØªÙŠØ­ Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠØ© BrowserAccessControlDialog KeePassXC - Browser Access Request - + KEEPASSXC - طلب الوصول إلى Ø§Ù„Ù…ØªØµÙØ­ %1 is requesting access to the following entries: - + Ùª 1 يطلب الوصول إلى الإدخالات التالية: Remember access to checked entries - + تذكر الوصول إلى الإدخالات المحددة Remember @@ -778,7 +807,7 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Allow access to entries - + السماح بالوصول إلى الإدخالات Allow Selected @@ -790,15 +819,15 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Disable for this site + تعطيل لهذا الموقع + + + Undo BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - Ù…ØªØµÙØ­ KeePassXC Ø¥Ø­ÙØ¸ المدخلات - Ok تمام @@ -813,22 +842,75 @@ Please select the correct database for saving credentials. لديك العديد من قواعد البيانات Ù…ÙØªÙˆØ­Ø© الرجاء إختيار قاعدة البيانات الصحيحة Ù„Ø­ÙØ¸ المسوغات + + KeePassXC - Select Database + + + + + BrowserPasskeysConfirmationDialog + + Cancel + ألغأ + + + Update + + + + Authenticate + + + + Register new + + + + Register + + + + Timeout in <b>%n</b> seconds... + + + + Do you want to register Passkey for: + + + + Existing Passkey found. +Do you want to register a new Passkey for: + + + + Select the existing Passkey and press Update to replace it. + + + + Authenticate Passkey credentials for: + + + + Relying Party: %1 + + + + Username: %1 + + + + KeePassXC - Passkey credentials + + BrowserService - - KeePassXC: Create a new group - - A request for creating a new group "%1" has been received. Do you want to create this group? - - - - KeePassXC: New key association request - KeePassXC: طلب مصادقة Ù…ÙØªØ§Ø­ جديد + تم استلام طلب لإنشاء مجموعة جديدة "Ùª 1". +هل تريد إنشاء هذه المجموعة؟ You have received an association request for the following database: @@ -836,81 +918,72 @@ Do you want to create this group? Give the connection a unique name or ID, for example: chrome-laptop. - + لقد تلقيت طلب اقتران لقاعدة البيانات التالية: +%1 + +أدخل اسما ÙØ±ÙŠØ¯Ø§ أو Ù…Ø¹Ø±ÙØ§ ÙØ±ÙŠØ¯Ø§ للاتصال، على سبيل المثال: +كروم لابتوب. Save and allow access Ø­ÙØ¸ والسماح بالوصول - - KeePassXC: Overwrite existing key? - KeePassXC: الكتابة على Ø§Ù„Ù…ÙØªØ§Ø­ الحالي؟ - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? Ù…ÙØªØ§Ø­ التشÙير المشترك مع إسم "%1" موجود Ø¨Ø§Ù„ÙØ¹Ù„. هل تريد الكتابة عليه؟ - - KeePassXC: Update Entry - KeePassXC: تحديث Ø§Ù„Ù…ÙØ¯Ø®Ù„ - Do you want to update the information in %1 - %2? هل تريد تحديث المعلومات ÙÙŠ %1 - %2ØŸ - - KeePassXC: Delete entry - - A request for deleting entry "%1" has been received. Do you want to delete the entry? + تم استلام طلب حذ٠الإدخال "Ùª1". +هل تريد حذ٠الإدخال؟ + + + %1 (Passkey) - Converting attributes to custom data… + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? - Abort - إجهاض - - - KeePassXC: Converted KeePassHTTP attributes + KeePassXC - Create a new group - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - - - - Successfully moved %n keys to custom data. - + Disable + تعطيل - KeePassXC: No entry with KeePassHTTP attributes found! + KeePassXC - Overwrite existing key? - The active database does not contain an entry with KeePassHTTP attributes. + KeePassXC - Update Passkey - Don't show this warning again - لا ØªÙØ¸Ù‡Ø± هذا التحذير مرة أخرى - - - KeePassXC: Legacy browser integration settings detected + KeePassXC - Update Entry - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? + KeePassXC - Delete entry + + + + KeePassXC - New key association request + + + + Passkey @@ -926,7 +999,7 @@ Would you like to migrate your existing settings now? Enable browser integration - + ØªÙØ¹ÙŠÙ„ تكامل Ø§Ù„Ù…ØªØµÙØ­ General @@ -934,7 +1007,7 @@ Would you like to migrate your existing settings now? Browsers installed as snaps are currently not supported. - + Ø§Ù„Ù…ØªØµÙØ­Ø§Øª المثبتة Ùƒsnaps غير مدعومة حاليا. Enable integration for these browsers: @@ -942,48 +1015,48 @@ Would you like to migrate your existing settings now? Vivaldi - + Vivaldi &Edge - + Ùˆ Edge Firefox - + Firefox Tor Browser - + Ù…ØªØµÙØ­ Tor Brave - + Brave Google Chrome - + Google Chrome Chromium - + Chromium Show a notification when credentials are requested Credentials mean login data requested via browser extension - + إظهار لإشعار عند طلب بيانات الاعتماد Request to unlock the database if it is locked - + طلب إلغاء Ù‚ÙÙ„ قاعدة البيانات إذا كانت مقÙلة Only entries with the same scheme (http://, https://, …) are returned. - + يتم إرجاع الإدخالات التي لها Ù†ÙØ³ المخطط Ùقط (//:http:// ØŒ https ØŒ ...). Match URL scheme (e.g., https://example.com) - + طابق مخطط العنوان URL (على سبيل المثال، https://example.com) Only returns the best matches for a specific URL instead of all entries for the whole domain. @@ -991,24 +1064,24 @@ Would you like to migrate your existing settings now? Return only best-matching credentials - + إرجاع بيانات الاعتماد Ø§Ù„Ø£ÙØ¶Ù„ تطابقً Ùقط Returns expired credentials. String [expired] is added to the title. - + إرجاع بيانات الاعتماد منتهية الصلاحية. Ø¥Ø¶Ø§ÙØ© [منتهية الصلاحية] إلى العنوان. Allow returning expired credentials - + السماح بإرجاع بيانات الاعتماد منتهية الصلاحية All databases connected to the extension will return matching credentials. - + ستعرض جميع قواعد البيانات المتصلة بالملحق بيانات اعتماد مطابقة. Search in all opened databases for matching credentials Credentials mean login data requested via browser extension - + البحث ÙÙŠ جميع قواعد البيانات Ø§Ù„Ù…ÙØªÙˆØ­Ø© عن بيانات الاعتماد المطابقة Advanced @@ -1017,17 +1090,17 @@ Would you like to migrate your existing settings now? Never ask before accessing credentials Credentials mean login data requested via browser extension - + لا تسأل أبدا قبل الوصول إلى بيانات الاعتماد Never ask before updating credentials Credentials mean login data requested via browser extension - + لا تسأل أبدا قبل تحديث بيانات الاعتماد Do not ask permission for HTTP Basic Auth An extra HTTP Basic Auth setting - + لا تطلب الإذن عندما تكون المصادقة HTTP Basic Auth Automatically creating or updating string fields is not supported. @@ -1035,15 +1108,15 @@ Would you like to migrate your existing settings now? Return advanced string fields which start with "KPH: " - + إرجاع حقول السلسلة المتقدمة التي تبدأ ب "KPH:" Don't display the popup suggesting migration of legacy KeePassHTTP settings. - + لا تعرض Ø§Ù„Ù†Ø§ÙØ°Ø© المنبثقة التي تقترح ترحيل إعدادات KeePassHTTP القديمة. Do not prompt for KeePassHTTP settings migration. - + لا تطالب بترحيل إعدادات KeePassHTTP. Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup. @@ -1051,7 +1124,7 @@ Would you like to migrate your existing settings now? Update native messaging manifest files at startup - + تحديث Ù…Ù„ÙØ§Øª بيان المراسلة الأصلية عند بدء التشغيل Use a custom proxy location if you installed a proxy manually. @@ -1060,24 +1133,24 @@ Would you like to migrate your existing settings now? Use a custom proxy location: Meant is the proxy for KeePassXC-Browser - + استخدام موقع وكيل مخصص: Custom proxy location field - + حقل موقع الوكيل المخصص Browser for custom proxy file - + Ù…ØªØµÙØ­ لمل٠الوكيل المخصص Browse… Button for opening file dialog - + ØªØµÙØ­... Use a custom browser configuration location: - + استخدم موقع تكوين مخصص Ù„Ù„Ù…ØªØµÙØ­: Browser type: @@ -1089,43 +1162,35 @@ Would you like to migrate your existing settings now? Config Location: - + موقع التكوين: Custom browser location field - + حقل موقع المستعرض المخصص Browse for custom browser path - + استعرض بحثا عن مسار مستعرض مخصص Custom extension ID: - + هوية امتداد خاصة: Custom extension ID - + هوية امتداد خاصة Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 - + نظرا Ù„ Snap sandboxing ØŒ يجب عليك تشغيل برنامج نصي لتمكين تكامل Ø§Ù„Ù…ØªØµÙØ­.<br />يمكنك الحصول على هذا البرنامج النصي من Ùª1 KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2 and %3. %4 - + هناك حاجة إلى KeePassXC-Browser حتى يعمل تكامل Ø§Ù„Ù…ØªØµÙØ­. <br />قم بتنزيله Ù„ Ùª1 و٪2 و٪3. %4 Please see special instructions for browser extension use below - - - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - - - - <b>Warning:</b> The following options can be dangerous! - <b>تحذير:</b> قد تكون الخيارات التالية خطيرة! + يرجى الاطلاع على التعليمات الخاصة لاستخدام ملحق Ø§Ù„Ù…ØªØµÙØ­ أدناه Executable Files @@ -1141,6 +1206,38 @@ Would you like to migrate your existing settings now? Select native messaging host folder location + حدد موقع مجلد Ù„Ø¥Ø³ØªØ§Ø¶ÙØ© الأصلي للمراسلة + + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>تحذير:</b> اضبط هذه الإعدادات Ùقط إذا لزم الأمر. + + + The custom proxy location does not exist. + موقع الوكيل المخصص غير موجود. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>خطأ:</b> موقع الوكيل المخصص غير موجود. قم بتصحيح ذلك ÙÙŠ خانة الإعدادات المتقدمة. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>خطأ:</b> المل٠التنÙيذي للپروكسي المثبت Ù…Ùقود من الموقع المتوقع: Ùª1<br/>يرجى تعيين موقع پروكسي مخصص ÙÙŠ الإعدادات المتقدمة أو إعادة تثبيت التطبيق. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys @@ -1148,7 +1245,7 @@ Would you like to migrate your existing settings now? CloneDialog Clone Entry Options - + خيارات إستنساخ Ø§Ù„Ù…ÙØ¯Ø®Ù„ Append ' - Clone' to title @@ -1165,21 +1262,13 @@ Would you like to migrate your existing settings now? CsvImportWidget - - Import CSV fields - إستيراد Ù…ÙØ¯Ø®Ù„ات CSV - - - filename - اسم المل٠- size, rows, columns الحجم، الصÙÙˆÙØŒ الأعمدة Column Association - + اقتران العمود Password @@ -1207,7 +1296,7 @@ Would you like to migrate your existing settings now? TOTP - + باسورد مؤقت Created @@ -1235,7 +1324,7 @@ Would you like to migrate your existing settings now? Text qualification - + مأهيلاة النص Fields are separated by @@ -1243,7 +1332,7 @@ Would you like to migrate your existing settings now? Field separation - + ÙØ§ØµÙ„اة الحقل Comments start with @@ -1251,15 +1340,15 @@ Would you like to migrate your existing settings now? Header lines skipped - + تم تخطي خطوط الأولية Number of header lines to discard - + عدد أسطر الأولية المراد تجاهلها First line has field names - + يحتوي السطر الأول على أسماء الحقول Consider '\' an escape character @@ -1271,59 +1360,39 @@ Would you like to migrate your existing settings now? CSV import preview - + معاينة استيراد CSV Not Present - + غير موجود Column %1 - - - - Imported from CSV file - Ù…ÙØ³ØªÙˆØ±Ø¯ من مل٠CSV - - - Original data: - البيانات الأصلية: - - - Error(s) detected in CSV file! - + العمود Ùª1 [%n more message(s) skipped] - + [تم تخطي المزيد من الرسائل Ùªn][تم تخطي المزيد من الرسائل Ùªn][تم تخطي المزيد من الرسائل Ùªn][تم تخطي المزيد من الرسائل Ùªn][تم تخطي المزيد من الرسائل Ùªn][تم تخطي المزيد من الرسائل Ùªn] - Error - خطأ + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 + Imported from CSV file: %1 CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - - - - %n byte(s) - - %n row(s) - + CSV row count + Ùªn ص٠(صÙ)Ùªn ص٠(صÙ)Ùªn ص٠(صÙ)Ùªn ص٠(صÙ)Ùªn ص٠(صÙ)Ùªn ص٠(صÙÙˆÙ) %n column(s) + CSV column count %n عمود%n عمود%n عمود%n عمود%n عمود%n عمود @@ -1336,40 +1405,41 @@ Would you like to migrate your existing settings now? File %1 does not exist. - + المل٠٪1 غير موجود. Unable to open file %1. - + غير قادر على ÙØªØ­ المل٠٪1. Error while reading the database: %1 - + خطأ أثناء قراءة قاعدة البيانات: Ùª1 Could not save, database does not point to a valid file. - + تعذر Ø§Ù„Ø­ÙØ¸ ØŒ لا تشير قاعدة البيانات إلى مل٠صالح. Database save is already in progress. - + Ø­ÙØ¸ قاعدة البيانات قيد التقدم Ø¨Ø§Ù„ÙØ¹Ù„. Could not save, database has not been initialized! - + تعذر Ø§Ù„Ø­ÙØ¸ ØŒ لم تتم تهيئة قاعدة البيانات! Database file has unmerged changes. - + يحتوي مل٠قاعدة البيانات على تغييرات غير مدمجة. %1 Backup database located at %2 - + %1 +قاعدة البيانات الاحتياطية موجودة ÙÙŠ Ùª 2 Key not transformed. This is a bug, please report it to the developers. - + لم يتم تحويل Ø§Ù„Ù…ÙØªØ§Ø­. هذا خطأ ØŒ يرجى إبلاغ المطورين به. Recycle Bin @@ -1380,14 +1450,14 @@ Backup database located at %2 DatabaseOpenDialog Unlock Database - KeePassXC - + ÙØªØ­ قاعدة البيانات - KEEPASSXC DatabaseOpenWidget Unlock KeePassXC Database - + ÙØªØ­ قاعدة بيانات KEEPASSXC Enter Password: @@ -1395,64 +1465,27 @@ Backup database located at %2 Password field - - - - Enter Additional Credentials (if any): - - - - Key File: - Ù…Ù„Ù Ø§Ù„Ù…ÙØªØ§Ø­: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - - - - Key file help - + حقل كلمة المرور Hardware key slot selection - - - - Hardware Key: - - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - - - - Hardware key help - + اختيار ÙØªØ­Ø© Ù…ÙØªØ§Ø­ الأجهزة Key file to unlock the database - + Ù…Ù„Ù Ø§Ù„Ù…ÙØªØ§Ø­ Ù„ÙØªØ­ قاعدة البيانات Browse for key file - + استعرض بحثا عن Ù…Ù„Ù Ø§Ù„Ù…ÙØªØ§Ø­ Browse… - - - - Refresh hardware tokens - - - - Refresh - تحديث + ØªØµÙØ­... Unlock Database - + ÙØªØ­ قاعدة البيانات Cancel @@ -1460,15 +1493,15 @@ Backup database located at %2 Unlock - + ÙØªØ­ Please present or touch your YubiKey to continue… - + يرجى تقديم أو لمس YubiKey الخاص بك للمتابعة ... Database Version Mismatch - + عدم تطابق إصدار قاعدة البيانات The database you are trying to open was most likely @@ -1478,50 +1511,51 @@ You can try to open it anyway, but it may be incomplete and saving any changes may incur data loss. We recommend you update your KeePassXC installation. - + كانت قاعدة البيانات التي تحاول ÙØªØ­Ù‡Ø§ على الأرجح +تم إنشاؤه بواسطة إصدار أحدث من KeePassXC. + +يمكنك محاولة ÙØªØ­Ù‡ على أي حال ØŒ لكنه قد يكون غير مكتمل +ÙˆØ­ÙØ¸ أي تغييرات قد يؤدي إلى Ùقدان البيانات. + +نوصيك بتحديث تثبيت KeePassXC الخاص بك. Open database anyway - + ÙØªØ­ قاعدة البيانات على أي حال Database unlock canceled. - + تم إلغاء إلغاء Ù‚ÙÙ„ قاعدة البيانات. Unlock failed and no password given - + ÙØ´Ù„ إلغاء القÙÙ„ ولم يتم إعطاء كلمة مرور Unlocking the database failed and you did not enter a password. Do you want to retry with an "empty" password instead? To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. - + ÙØ´Ù„ إلغاء تأمين قاعدة البيانات ولم تقم بإدخال كلمة مرور. +هل تريد إعادة المحاولة باستخدام كلمة مرور "ÙØ§Ø±ØºØ©" بدلا من ذلك؟ + +لمنع ظهور هذا الخطأ ØŒ يجب عليك الانتقال إلى "إعدادات قاعدة البيانات / الأمان" وإعادة تعيين كلمة المرور الخاصة بك. Retry with empty password - - - - Failed to authenticate with Windows Hello - - - - Failed to authenticate with Touch ID - + أعد المحاولة بكلمة مرور ÙØ§Ø±ØºØ© Failed to open key file: %1 - + ÙØ´Ù„ ÙØªØ­ Ù…Ù„Ù Ù…ÙØªØ§Ø­: Ùª1 Old key file format - + تنسيق Ù…Ù„Ù Ø§Ù„Ù…ÙØªØ§Ø­ قديم You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> - + أنت تستخدم تنسيق Ù…Ù„Ù Ù…ÙØªØ§Ø­ قديم قد يقوم به KEEPASSXC<br>توق٠عن الدعم ÙÙŠ المستقبل.<br><br>يرجى التÙكير ÙÙŠ إنشاء Ù…Ù„Ù Ù…ÙØªØ§Ø­ جديد بالانتقال إلى:<br><strong>قاعدة البيانات &gt; أمان قاعدة البيانات &gt; تغيير Ù…Ù„Ù Ø§Ù„Ù…ÙØªØ§Ø­.</strong><br> Don't show this warning again @@ -1541,23 +1575,62 @@ To prevent this error from appearing, you must go to "Database Settings / S Cannot use database file as key file + لا يمكن استخدام مل٠قاعدة البيانات ÙƒÙ…Ù„Ù Ù…ÙØªØ§Ø­ + + + authenticate to access the database + المصادقة للوصول إلى قاعدة البيانات + + + Failed to authenticate with Quick Unlock: %1 - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. + Select Key File: - Detecting hardware keys… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> - No hardware keys detected + Click to add a key file. - Select hardware key… + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys @@ -1570,10 +1643,6 @@ If you do not have a key file, please leave the field empty. DatabaseSettingsDialog - - Advanced Settings - - General العام @@ -1584,11 +1653,11 @@ If you do not have a key file, please leave the field empty. Database Credentials - + بيانات اعتماد قاعدة البيانات Encryption Settings - + إعدادات التشÙير Browser Integration @@ -1596,46 +1665,38 @@ If you do not have a key file, please leave the field empty. Maintenance - + صيانة DatabaseSettingsWidgetBrowser KeePassXC-Browser settings - - - - Convert KeePassHTTP data - - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - - - - Refresh database root group ID - + إعدادات Ù…ØªØµÙØ­ KEEPASSXC Disconnect all browsers - + Ø§ÙØµÙ„ جميع Ø§Ù„Ù…ØªØµÙØ­Ø§Øª Forget all site-specific settings on entries - + نسيان جميع الإعدادات الخاصة بالموقع على الإدخالات + + + Refresh database root group ID + تحديث المجموعة الجذر لقاعدة البيانات Stored keys - + Ø§Ù„Ù…ÙØ§ØªÙŠØ­ المخزنة Stored browser keys - + Ù…ÙØ§ØªÙŠØ­ Ø§Ù„Ù…ØªØµÙØ­ المخزنة Remove selected key - + إزالة Ø§Ù„Ù…ÙØªØ§Ø­ المحدد Remove @@ -1643,12 +1704,13 @@ If you do not have a key file, please leave the field empty. Delete the selected key? - + Ø­Ø°Ù Ø§Ù„Ù…ÙØªØ§Ø­ المحدد؟ Do you really want to delete the selected key? This may prevent connection to the browser plugin. - + هل تريد حقا Ø­Ø°Ù Ø§Ù„Ù…ÙØªØ§Ø­ المحدد؟ +قد يمنع هذا الاتصال بالمكون الإضاÙÙŠ Ù„Ù„Ù…ØªØµÙØ­. Key @@ -1664,33 +1726,27 @@ This may prevent connection to the browser plugin. Enable Browser Integration to access these settings. - + قم بتمكين تكامل Ø§Ù„Ù…ØªØµÙØ­ للوصول إلى هذه الإعدادات. Do you really want to disconnect all browsers? This may prevent connection to the browser plugin. - - - - KeePassXC: No keys found - KeePassXC: لم ÙŠÙØ¹Ø«Ø± على أية Ù…ÙØ§ØªÙŠØ­ + هل تريد حقا ÙØµÙ„ جميع Ø§Ù„Ù…ØªØµÙØ­Ø§ØªØŸ +قد يمنع هذا الاتصال بالمكون الإضاÙÙŠ Ù„Ù„Ù…ØªØµÙØ­. No shared encryption keys found in KeePassXC settings. - - - - KeePassXC: Removed keys from database - KeePassXC: Ø­ÙØ°ÙÙØª Ø§Ù„Ù…ÙØ§ØªÙŠØ­ من قاعدة البيانات + لم يتم العثور على Ù…ÙØ§ØªÙŠØ­ تشÙير مشتركة ÙÙŠ إعدادات KeePassXC. Successfully removed %n encryption key(s) from KeePassXC settings. - + تمت إزالة Ù…ÙØªØ§Ø­ (Ù…ÙØ§ØªÙŠØ­) التشÙير Ùªn بنجاح من إعدادات كي باس إكس سي.تمت إزالة Ù…ÙØªØ§Ø­ (Ù…ÙØ§ØªÙŠØ­) التشÙير Ùªn بنجاح من إعدادات كي باس إكس سي.تمت إزالة Ù…ÙØªØ§Ø­ (Ù…ÙØ§ØªÙŠØ­) التشÙير Ùªn بنجاح من إعدادات كي باس إكس سي.تمت إزالة Ù…ÙØªØ§Ø­ (Ù…ÙØ§ØªÙŠØ­) التشÙير Ùªn بنجاح من إعدادات كي باس إكس سي.تمت إزالة Ù…ÙØªØ§Ø­ (Ù…ÙØ§ØªÙŠØ­) التشÙير Ùªn بنجاح من إعدادات كي باس إكس سي.تمت إزالة Ù…ÙØªØ§Ø­ (Ù…ÙØ§ØªÙŠØ­) التشÙير Ùªn بنجاح من إعدادات KeePassXC. Do you really want forget all site-specific settings on every entry? Permissions to access entries will be revoked. - + هل تريد حقا نسيان جميع الإعدادات الخاصة بالموقع ÙÙŠ كل إدخال؟ +سيتم إبطال إذن الوصول إلى الإدخالات. Removing stored permissions… @@ -1700,38 +1756,42 @@ Permissions to access entries will be revoked. Abort إجهاض - - KeePassXC: Removed permissions - KeePassXC: Ø­ÙØ°Ùت الصلاحيات - Successfully removed permissions from %n entry(s). - - - - KeePassXC: No entry with permissions found! - KeePassXC: لا يوجد Ù…ÙØ¯Ø®Ù„ مع الصلاحيات الموجودة! + تمت إزالة الأذونات بنجاح من إدخال/إدخالات٪ n.تمت إزالة الأذونات بنجاح من إدخال/إدخالات٪ n.تمت إزالة الأذونات بنجاح من إدخال/إدخالات٪ n.تمت إزالة الأذونات بنجاح من إدخال/إدخالات٪ n.تمت إزالة الأذونات بنجاح من إدخال/إدخالات٪ n.تمت إزالة لإذن بنجاح من إدخال/إدخالات٪ n. The active database does not contain an entry with permissions. لا تحتوي قاعدة البيانات النشطة على إدخال مع صلاحيات. - - Move KeePassHTTP attributes to custom data - - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - - Refresh database ID - + تحديث معر٠قاعدة البيانات Do you really want refresh the database ID? This is only necessary if your database is a copy of another and the browser extension cannot connect. + هل تريد حقًا تحديث معرّ٠قاعدة البيانات؟ +يعد هذا ضروريًا Ùقط إذا كانت قاعدة بياناتك نسخة من أخرى ولا يمكن توصيل ملحق Ø§Ù„Ù…ØªØµÙØ­. + + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + تحويل سمات KeePassHTTP القديمة إلى بيانات مخصصة متواÙقة مع KeePassXC-Browser + + + No keys found + + + + Removed keys from database + + + + Removed permissions + + + + No entry with permissions found! @@ -1739,29 +1799,31 @@ This is only necessary if your database is a copy of another and the browser ext DatabaseSettingsWidgetDatabaseKey Add additional protection… - + Ø¥Ø¶Ø§ÙØ© حماية إضاÙية... No password set - + لم يتم تعيين كلمة مرور WARNING! You have not set a password. Using a database without a password is strongly discouraged! Are you sure you want to continue without a password? - + تحذير! لم تقم بتعيين كلمة مرور. لا ينصح بشدة استخدام قاعدة بيانات بدون كلمة مرور! + +هل أنت متأكد من أنك تريد المتابعة بدون كلمة مرور؟ Continue without password - + المتابعة بدون كلمة مرور No encryption key added - + لم تتم Ø¥Ø¶Ø§ÙØ© Ù…ÙØªØ§Ø­ تشÙير You must add at least one encryption key to secure your database! - + يجب عليك Ø¥Ø¶Ø§ÙØ© Ù…ÙØªØ§Ø­ تشÙير واحد على الأقل لتأمين قاعدة البيانات الخاصة بك! Unknown error @@ -1769,6 +1831,18 @@ Are you sure you want to continue without a password? Failed to change database credentials + ÙØ´Ù„ تغيير بيانات اعتماد قاعدة البيانات + + + Weak password + + + + You must enter a stronger password to protect your database. + + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. @@ -1776,39 +1850,31 @@ Are you sure you want to continue without a password? DatabaseSettingsWidgetEncryption Decryption Time: - - - - Change existing decryption time - - - - Change - + وقت ÙÙƒ التشÙير: Decryption time in seconds - + وقت ÙÙƒ التشÙير بالثواني Higher values offer more protection, but opening the database will take longer. - + ØªÙˆÙØ± القيم الأعلى مزيدا من الحماية ØŒ لكن ÙØªØ­ قاعدة البيانات سيستغرق وقتا أطول. Database format: - + صيغة قاعدة البيانات: Database format - + تنسيق قاعدة البيانات Format cannot be changed: Your database uses KDBX 4 features - + لا يمكن تغيير التنسيق: تستخدم قاعدة البيانات ميزات KDBX 4 Unless you need to open your database with other programs, always use the latest format. - + ما لم تكن بحاجة إلى ÙØªØ­ قاعدة البيانات الخاصة بك مع برامج أخرى ØŒ استخدم دائما أحدث تنسيق. Encryption Algorithm: @@ -1816,7 +1882,7 @@ Are you sure you want to continue without a password? Encryption algorithm - + خوارزمية التشÙير AES: 256 Bit (default) @@ -1832,7 +1898,7 @@ Are you sure you want to continue without a password? Key derivation function - + دالة اشتقاق Ø§Ù„Ù…ÙØªØ§Ø­ Transform rounds: @@ -1840,7 +1906,7 @@ Are you sure you want to continue without a password? Transform rounds - + تحويل الجولات Memory Usage: @@ -1848,7 +1914,7 @@ Are you sure you want to continue without a password? Memory usage - + إستعمال الذاكرة Ù„Ø¥ÙØªØ±Ø§Ø¶ÙŠØ© Parallelism: @@ -1856,20 +1922,15 @@ Are you sure you want to continue without a password? Parallelism - + التوازي KDBX 4 (recommended) - + KDBX 4 (مستحسن) KDBX 3 - - - - unchanged - Database decryption time is unchanged - + KDBX 3 Number of rounds too high @@ -1880,7 +1941,9 @@ Are you sure you want to continue without a password? You are using a very high number of key transform rounds with Argon2. If you keep this number, your database may take hours, days, or even longer to open. - + أنت تستخدم عددا كبيرا جدا من جولات تحويل Ø§Ù„Ù…ÙØ§ØªÙŠØ­ مع Argon2. + +إذا Ø§Ø­ØªÙØ¸Øª بهذا الرقم ØŒ Ùقد يستغرق ÙØªØ­ قاعدة البيانات ساعات أو أياما أو حتى وقتا أطول. Understood, keep number @@ -1899,7 +1962,9 @@ If you keep this number, your database may take hours, days, or even longer to o You are using a very low number of key transform rounds with AES-KDF. If you keep this number, your database will not be protected from brute force attacks. - + أنت تستخدم عددا Ù…Ù†Ø®ÙØ¶Ø§ جدا من جولات تحويل Ø§Ù„Ù…ÙØ§ØªÙŠØ­ مع AES-KDF. + +إذا Ø§Ø­ØªÙØ¸Øª بهذا الرقم ØŒ Ùلن تكون قاعدة البيانات الخاصة بك محمية من هجمات القوة الغاشمة. KDF unchanged @@ -1912,38 +1977,50 @@ If you keep this number, your database will not be protected from brute force at MiB Abbreviation for Mebibytes (KDF settings) - + مبيبايتمبيبايتمبيبايتمبيبايتمبيبايتمبيبايت thread(s) Threads for parallel execution (KDF settings) - + مؤشر الترابط مؤشر ترابط مؤشرات ترابط مؤشرات ترابط مؤشر الترابط مؤشرات الترابط + + + Encryption Settings: + + + + Basic + + + + Advanced + متقدم DatabaseSettingsWidgetFdoSecrets Exposed Entries - + الإدخالات Ø§Ù„Ù…ÙƒØ´ÙˆÙØ© Don't expose this database - + لا تكش٠قاعدة البيانات هذه Expose entries under this group: - + إعرض الإدخالات ضمن هذه المجموعة: Enable Secret Service to access these settings. - + قم بتمكين الخدمة السرية للوصول إلى هذه الإعدادات. DatabaseSettingsWidgetGeneral Database Metadata - + البيانات الوصÙية لقاعدة البيانات Database name: @@ -1951,7 +2028,7 @@ If you keep this number, your database will not be protected from brute force at Database name field - + حقل اسم قاعدة البيانات Database description: @@ -1959,7 +2036,7 @@ If you keep this number, your database will not be protected from brute force at Database description field - + حقل الوص٠ÙÙŠ قاعدة البيانات Default username: @@ -1967,7 +2044,7 @@ If you keep this number, your database will not be protected from brute force at Default username field - + حقل اسم المستخدم Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠ History Settings @@ -1975,19 +2052,11 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry - - - - Max. history items: - أقصى عدد للسجلات: + الحد الأقصى لعدد عناصر المحÙوظات لكل إدخال Maximum size of history per entry - - - - Max. history size: - أقصى حجم للسجلات: + الحد الأقصى لحجم السجل لكل إدخال MiB @@ -2003,7 +2072,7 @@ If you keep this number, your database will not be protected from brute force at Enable compression (recommended) - + تمكين الضغط (مستحسن) Delete Recycle Bin @@ -2012,10 +2081,69 @@ If you keep this number, your database will not be protected from brute force at Do you want to delete the current recycle bin and all its contents? This action is not reversible. - + هل تريد حذ٠سلة Ø§Ù„Ù…Ø­Ø°ÙˆÙØ§Øª الحالية وجميع محتوياتها؟ +هذا الإجراء لا يمكن عكسه. (old) + (قديم) + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + عند Ø­ÙØ¸ هذا الإعداد أو تحرير إدخال +ستكون أقدم عناصر التاريخ ÙÙŠ الإدخال +تمت إزالته بحيث يكون الحجم المحدد Ùقط +من الإدخالات تبقى على الأكثر. + + + Limit the amount of history items per entry to: + حدد مقدار عناصر المحÙوظات لكل إدخال بما يلي: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + عند Ø­ÙØ¸ هذا الإعداد أو تحرير إدخال +ستكون أقدم عناصر التاريخ ÙÙŠ الإدخال +تمت إزالته بحيث تكون عناصر المحÙوظات المتبقية +أض٠ما يصل إلى الحجم المحدد على الأكثر. + + + Limit the total size of history items per entry to: + حدد الحجم الإجمالي لعناصر المحÙوظات لكل إدخال إلى: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + نقل الإدخالات إلى مجموعة سلة Ø§Ù„Ù…Ø­Ø°ÙˆÙØ§Øª +بدلا من حذÙها من قاعدة البيانات. +الإدخالات Ø§Ù„Ù…Ø­Ø°ÙˆÙØ© من سلة Ø§Ù„Ù…Ø­Ø°ÙˆÙØ§Øª هي +تمت إزالته من قاعدة البيانات. + + + Autosave delay since last change + + + + Autosave delay + + + + Autosave delay since last change in minutes + + + + min + دقيقة + + + Autosave delay since last change checkbox @@ -2023,7 +2151,7 @@ This action is not reversible. DatabaseSettingsWidgetKeeShare Sharing - + المشاركة Breadcrumb @@ -2031,15 +2159,15 @@ This action is not reversible. Type - + نوع Path - + مسار Last Signer - + آخر Ù…Ùوَقّع Certificates @@ -2048,26 +2176,26 @@ This action is not reversible. > Breadcrumb separator - + > DatabaseSettingsWidgetMaintenance Manage Custom Icons - + إدارة الأيقونات المخصصة Delete selected icon(s) - + حذ٠الرمز (الرموز) المحددة Delete all custom icons not in use by any entry or group - + حذ٠جميع الأيقونات المخصصة غير المستخدمة من قبل أي Ù…ÙØ¯Ø®Ù„ أو مجموعة Purge unused icons - + إزالة الأيقونات غير المستخدمة Confirm Deletion @@ -2075,54 +2203,55 @@ This action is not reversible. At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? - + واحد على الأقل من الرموز المحددة قيد الاستخدام حاليا بواسطة إدخال أو مجموعة واحدة على الأقل. سيتم استبدال أيقونات جميع الإدخالات والمجموعات المتأثرة بالرمز Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠ. هل تريد بالتأكيد حذ٠الرموز المستخدمة حاليا؟ Custom Icons Are In Use - + الرموز المخصصة قيد الاستخدام All custom icons are in use by at least one entry or group. - + جميع الرموز المخصصة قيد الاستخدام بواسطة إدخال أو مجموعة واحدة على الأقل. Purged Unused Icons - + إزالة الأيقونات غير المستخدمة Purged %n icon(s) from the database. - + إزالة Ùªn رمز (رموز) من قاعدة البيانات.إزالة Ùªn رمز (رموز) من قاعدة البيانات.إزالة Ùªn رمز (رموز) من قاعدة البيانات.إزالة Ùªn رمز (رموز) من قاعدة البيانات.إزالة Ùªn رمز (رموز) من قاعدة البيانات.إزالة Ùªn رمز (رموز) من قاعدة البيانات. DatabaseSettingsWidgetMetaDataSimple Database Name: - + اسم قاعدة البيانات: Database name field - + حقل اسم قاعدة البيانات Description: - + الوصÙ: Database description field - + حقل الوص٠ÙÙŠ قاعدة البيانات DatabaseTabWidget Database creation error - + خطأ ÙÙŠ إنشاء قاعدة البيانات The created database has no key or KDF, refusing to save it. This is definitely a bug, please report it to the developers. - + قاعدة البيانات التي تم إنشاؤها لا تحتوي على Ù…ÙØªØ§Ø­ أو KDFØŒ ØªØ±ÙØ¶ Ø­ÙØ¸Ù‡Ø§. +هذا خطأ بالتأكيد، يرجى إبلاغ المطورين. KeePass 2 Database @@ -2138,32 +2267,16 @@ This is definitely a bug, please report it to the developers. Failed to open %1. It either does not exist or is not accessible. - + ÙØ´Ù„ ÙÙŠ ÙØªØ­ %1. إما أنه غير موجود أو لا يمكن الوصول إليه. CSV file مل٠CSV - - Select CSV file - - Merge database دمج قاعدة بيانات - - KeePass 1 database - قاعدة بيانات KeePass 1 - - - Open KeePass 1 database - ÙØªØ­ قاعدة بيانات KeePass 1 - - - Open OPVault - - Export database to CSV file تصدير قاعدة البيانات إلى مل٠CSV @@ -2174,52 +2287,55 @@ This is definitely a bug, please report it to the developers. Writing the HTML file failed. - + ÙØ´Ù„ت كتابة مل٠HTML. + + + Export database to XML file + تصدير قاعدة البيانات إلى مل٠XML + + + XML file + مل٠XML + + + Writing the XML file failed + ÙØ´Ù„ت كتابة مل٠XML Export Confirmation - + تأكيد التصدير You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - - - - New Database - - - - %1 [New Database] - Database tab name modifier - + أنت على وشك تصدير قاعدة بياناتك إلى مل٠غير Ù…Ø´ÙØ±. سيؤدي ذلك إلى ترك كلمات مرورك ومعلوماتك الحساسة عرضة للخطر! هل أنت متأكد أنك تريد الاستمرار؟ %1 [Locked] Database tab name modifier - + %1 [Locked] DatabaseWidget - Database Tags - + Searches and Tags + البحوث Ùˆ الوسوم Searching… - + جاري البحث... Shared group… - + مجموعة مشتركة… Confirm Auto-Type - + تأكيد النوع التلقائي Perform Auto-Type into the previously active window? - + إجراء الكتابة التلقائية ÙÙŠ Ø§Ù„Ù†Ø§ÙØ°Ø© النشطة سابقا؟ Execute command? @@ -2235,7 +2351,7 @@ This is definitely a bug, please report it to the developers. Delete group - + حذ٠المجموعة Do you really want to delete the group "%1" for good? @@ -2243,15 +2359,19 @@ This is definitely a bug, please report it to the developers. Move group to recycle bin? - + هل تريد نقل المجموعة إلى سلة Ø§Ù„Ù…Ø­Ø°ÙˆÙØ§ØªØŸ Do you really want to move the group "%1" to the recycle bin? - + هل تريد حقًا نقل المجموعة "%1" إلى سلة Ø§Ù„Ù…Ø­Ø°ÙˆÙØ§ØªØŸ Expired entries - + إدخالات منتهية الصلاحية + + + Entries expiring within %1 day(s) + Ø§Ù„Ù…ÙØ¯Ø®Ù„ات التي ستنتهي صلاحيتها ÙÙŠ %1 Ø£ÙŠØ§Ù…Ø§Ù„Ù…ÙØ¯Ø®Ù„ات التي ستنتهي صلاحيتها ÙÙŠ %1 ÙŠÙˆÙ…Ø§Ù„Ù…ÙØ¯Ø®Ù„ات التي ستنتهي صلاحيتها ÙÙŠ %1 Ø£ÙŠØ§Ù…Ø§Ù„Ù…ÙØ¯Ø®Ù„ات التي ستنتهي صلاحيتها ÙÙŠ %1 Ø£ÙŠØ§Ù…Ø§Ù„Ù…ÙØ¯Ø®Ù„ات التي ستنتهي صلاحيتها ÙÙŠ %1 ÙŠÙˆÙ…Ø§Ù„Ù…ÙØ¯Ø®Ù„ات التي ستنتهي صلاحيتها ÙÙŠ %1 يوم No current database. @@ -2263,11 +2383,11 @@ This is definitely a bug, please report it to the developers. Successfully merged the database files. - + تم دمج Ù…Ù„ÙØ§Øª قاعدة البيانات بنجاح. Database was not modified by merge operation. - + لم يتم تعديل قاعدة البيانات من خلال عملية الدمج. Search Results (%1) @@ -2277,13 +2397,25 @@ This is definitely a bug, please report it to the developers. No Results لا يوجد نتائج + + Save + Ø§Ø­ÙØ¸ + + + Enter a unique name or overwrite an existing search from the list: + أدخل اسما ÙØ±ÙŠØ¯Ø§ أو اكتب Ùوق بحثا موجودا مسبقا من القائمة: + + + Save Search + Ø­ÙØ¸ البحث + Lock Database? - + تأمين قاعدة البيانات؟ You are editing an entry. Discard changes and lock anyway? - + أنت تقوم بتحرير إدخال. تجاهل التغييرات وقÙÙ„ على أي حال؟ "%1" was modified. @@ -2294,7 +2426,8 @@ Save changes? Database was modified. Save changes? - + تم تعديل قاعدة البيانات. +Ø­ÙØ¸ التغييرات؟ Save changes? @@ -2321,7 +2454,8 @@ Do you want to merge your changes? Could not open the new database file while attempting to autoreload. Error: %1 - + تعذر ÙØªØ­ مل٠قاعدة البيانات الجديد أثناء محاولة التحميل التلقائي. +الخطأ: %1 Disable safe saves? @@ -2335,7 +2469,7 @@ Disable safe saves and try again? Writing the database failed: %1 - + ÙØ´Ù„ت كتابة قاعدة البيانات: %1 Passwords @@ -2351,7 +2485,7 @@ Disable safe saves and try again? Save database backup - + Ø­ÙØ¸ النسخة الاحتياطية لقاعدة البيانات Empty recycle bin? @@ -2363,11 +2497,16 @@ Disable safe saves and try again? Could not find database file: %1 - + تعذر العثور على مل٠قاعدة البيانات: %1 - - Entries expiring within %1 day(s) - + + New Database + قاعدة بيانات جديدة + + + %1 [New Database] + Database tab name modifier + %1 [قاعدة بيانات جديدة] @@ -2394,15 +2533,15 @@ Disable safe saves and try again? <empty URL> - + <empty URL> Confirm Removal - + تأكيد الإزالة Are you sure you want to remove this URL? - + هل أنت متاكد من إزالة هذا الرابط؟ Properties @@ -2442,32 +2581,37 @@ Disable safe saves and try again? Some Browser Integration settings are overridden by group settings. - + يتم تجاوز بعض إعدادات تكامل Ø§Ù„Ù…ØªØµÙØ­ بواسطة إعدادات المجموعة. Invalid Entry - + إدخال غير صالح An external merge operation has invalidated this entry. Unfortunately, any changes made have been lost. - + لقد أبطلت عملية دمج خارجية هذا الإدخال. +لسوء الحظ، تم Ùقدان أي تغييرات تم إجراؤها. Auto-Type Validation Error - + خطأ ÙÙŠ التحقق من النوع التلقائي An error occurred while validating the custom Auto-Type sequence: %1 Would you like to correct it? - + حدث خطأ أثناء التحقق من صحة تسلسل الكتابة التلقائية المخصص: +%1 +هل ترغب ÙÙŠ تصحيح ذلك؟ An error occurred while validating the Auto-Type sequence for "%1": %2 Would you like to correct it? - + حدث خطأ أثناء التحقق من صحة تسلسل الكتابة التلقائية المخصص: +%2 +هل ترغب ÙÙŠ تصحيح ذلك؟ Entry updated successfully. @@ -2475,11 +2619,11 @@ Would you like to correct it? Unsaved Changes - + التغييرات غير المحÙوظة Would you like to save changes to this entry? - + هل ترغب ÙÙŠ Ø­ÙØ¸ التغييرات على هذا الإدخال؟ New attribute @@ -2487,7 +2631,7 @@ Would you like to correct it? New attribute %1 - + خاصية جديدة Ùª1 Are you sure you want to remove this attribute? @@ -2499,15 +2643,15 @@ Would you like to correct it? [PROTECTED] Press Reveal to view or edit - + [محمية] اضغط على كش٠للعرض أو التحرير Hide - + Ø¥Ø®ÙØ§Ø¡ - - Tomorrow - غدا + + %n hour(s) + Ùª1 ساعةساعةساعتين٪1 ساعات٪1 ساعة٪1 ساعة %n week(s) @@ -2519,7 +2663,7 @@ Would you like to correct it? %n year(s) - + Ùªn سنةسنةسنتين٪n سنوات٪n سنة٪n سنة @@ -2530,15 +2674,15 @@ Would you like to correct it? Attribute selection - + اختيار Ø§Ù„ØµÙØ§Øª Attribute value - + قيمة Ø§Ù„ØµÙØ§Øª Add a new attribute - + Ø¥Ø¶Ø§ÙØ© ØµÙØ© جديدة Add @@ -2546,7 +2690,7 @@ Would you like to correct it? Remove selected attribute - + Ø­Ø°Ù Ø§Ù„ØµÙØ© Ø§Ù„Ù…ÙØ­Ø¯Ø¯Ø© Remove @@ -2554,7 +2698,7 @@ Would you like to correct it? Edit attribute name - + تحرير اسم Ø§Ù„ØµÙØ© Edit Name @@ -2562,7 +2706,7 @@ Would you like to correct it? Toggle attribute protection - + تبديل حماية Ø§Ù„ØµÙØ© Protect @@ -2570,7 +2714,7 @@ Would you like to correct it? Show a protected attribute - + إظهار ØµÙØ© محمية Reveal @@ -2582,11 +2726,11 @@ Would you like to correct it? If checked, the entry will not appear in reports like Health Check and HIBP even if it doesn't match the quality requirements. - + إذا تم تحديده، Ùلن يظهر الإدخال ÙÙŠ تقارير مثل Health Check ÙˆHIBP حتى لو لم يكن مطابقًا لمتطلبات الجودة. Exclude from database reports - + استبعاد من تقارير قاعدة البيانات Foreground Color: @@ -2594,7 +2738,7 @@ Would you like to correct it? Foreground color selection - + اختيار اللون الأمامي Background Color: @@ -2602,7 +2746,7 @@ Would you like to correct it? Background color selection - + اختيار لون الخلÙية @@ -2613,19 +2757,19 @@ Would you like to correct it? Inherit default Auto-Type sequence from the group - + ورث تسلسل الطباعة التلقائية Ø§Ù„Ø¥ÙØªØ±Ø§Ø¶ÙŠ Ù…Ù† &المجموعة Use custom Auto-Type sequence: - + استخدم تسلسل الكتابة التلقائية المخصص: Custom Auto-Type sequence - + تسلسل الكتابة التلقائية المخصص: Open Auto-Type help webpage - + Ø§ÙØªØ­ ØµÙØ­Ø© ويب تعليمات الكتابة التلقائية Window Associations @@ -2633,56 +2777,56 @@ Would you like to correct it? Existing window associations - + جمعيات Ø§Ù„Ù†Ø§ÙØ°Ø© الموجودة Add new window association - - - - Remove selected window association - - - - Window title: - عنوان Ø§Ù„Ù†Ø§ÙØ°Ø©: - - - You can use an asterisk (*) to match everything - - - - Set the window association title - - - - You can use an asterisk to match everything - - - - Use a specific sequence for this association: - إستخدم تسلسل محدد لهذا الإرتباط: - - - Custom Auto-Type sequence for this window - + Ø¥Ø¶Ø§ÙØ© ارتباط Ù†Ø§ÙØ°Ø© جديدة + Add item + + + Remove selected window association + إزالة ارتباط Ø§Ù„Ù†Ø§ÙØ°Ø© المحددة + - Remove item - + + Window title: + عنوان Ø§Ù„Ù†Ø§ÙØ°Ø©: + + + You can use an asterisk (*) to match everything + يمكنك استخدام علامة النجمة (*) لمطابقة كل شيء + + + Set the window association title + تعيين عنوان ارتباط Ø§Ù„Ù†Ø§ÙØ°Ø© + + + You can use an asterisk to match everything + يمكنك استخدام العلامة النجمية لمطابقة كل شيء + + + Use a specific sequence for this association: + إستخدم تسلسل محدد لهذا الإرتباط: + + + Custom Auto-Type sequence for this window + تسلسل الكتابة التلقائية المخصص لهذه Ø§Ù„Ù†Ø§ÙØ°Ø© + EditEntryWidgetBrowser These settings affect to the entry's behaviour with the browser extension. - + تؤثر هذه الإعدادات على سلوك الإدخال مع امتداد Ø§Ù„Ù…ØªØµÙØ­. General @@ -2690,31 +2834,31 @@ Would you like to correct it? Hide this entry from the browser extension - + Ø¥Ø®ÙØ§Ø¡ هذا الإدخال من امتداد Ø§Ù„Ù…ØªØµÙØ­ Skip Auto-Submit for this entry - + تخطي الإرسال التلقائي لهذا الإدخال Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. - + أرسل هذا الإعداد إلى Ø§Ù„Ù…ØªØµÙØ­ Ùقط لمربع حوار مصادقة HTTP. ÙÙŠ حالة Ø§Ù„ØªÙØ¹ÙŠÙ„ ØŒ لن تعرض نماذج تسجيل الدخول العادية هذا المٌدخل للاختيار. Use this entry only with HTTP Basic Auth - + استخدم هذا الإدخال Ùقط مع مصادقة HTTP البدائية Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. - + لا ترسل هذا الإعداد إلى Ø§Ù„Ù…ØªØµÙØ­ لمربعات حوار مصادقة HTTP. ÙÙŠ حالة التمكين، لن تعرض مربعات حوار مصادقة HTTP هذا Ø§Ù„Ù…ÙØ¯Ø®Ù„ للاختيار. Do not use this entry with HTTP Basic Auth - + لا تستخدم هذا الإدخال مع مصادقة HTTP البدائية Additional URL's - + روابط URL إضاÙية Add @@ -2726,18 +2870,18 @@ Would you like to correct it? Edit - + تعديل EditEntryWidgetHistory Entry history selection - + اختيار سجل الإدخال Show entry at selected history state - + إظهار الإدخال ÙÙŠ حالة السجل المحددة Show @@ -2745,7 +2889,7 @@ Would you like to correct it? Restore entry to selected history state - + استعادة الإدخال إلى حالة السجل المحددة Restore @@ -2753,7 +2897,7 @@ Would you like to correct it? Delete selected history state - + حذ٠حالة السجل المحددة Delete @@ -2761,7 +2905,7 @@ Would you like to correct it? Delete all history - + حذ٠كل السجل Delete all @@ -2772,91 +2916,87 @@ Would you like to correct it? EditEntryWidgetMain Edit Entry - + تعديل الإدخالالة Notes field - - - - Toggle the checkbox to reveal the notes section. - إختر مربع الإختيار لإستكشا٠قسم الملاحظات. + حقل الملاحظات Username field - - - - Toggle notes visible - - - - Notes: - ملاحظات: + حقل اسم المستخدم Expiration field - + حقل انتهاء الصلاحية Expiration Presets - + خيارات انتهاء الصلاحية Ù…ÙØ¹Ø¯Ø© مسبقا Expiration presets - + خيارات انتهاء الصلاحية Ù…ÙØ¹Ø¯Ø© مسبقا Presets المسبقة - - Password: - كلمه السر: - - - URL: - رابط: - Url field - + حقل Url Download favicon for URL - - - - Title: - العنوان: + تحميل رمز Ø§Ù„Ù…ÙØ¶Ù„Ø© للرابط Title field - - - - Username: - اسم المستخدم: + حقل العنوان Password field - + حقل كلمة المرور Toggle expiration - - - - Expires: - - - - Tags: - + ØªÙØ¹ÙŠÙ„ انتهاء الصلاحية Tags list - + قائمة الوسوم + + + &Username: + &اسم المستخدم: + + + &Title: + &العنوان: + + + &Password: + &كلمة المرور + + + UR&L: + UR&L: + + + &Notes: + &ملاحظات: + + + Toggle notes visibility + تبديل رؤية الملاحظات + + + T&ags: + الو&سوم: + + + &Expires: + تنتهي الصلاحية: @@ -2897,26 +3037,13 @@ Would you like to correct it? Private key Ø§Ù„Ù…ÙØªØ§Ø­ السري - - External file - مل٠خارجي - - - Browser for key file - - - - Browse… - Button for opening file dialog - - Attachment Ø¥Ø±ÙØ§Ù‚ External key file - + Ù…Ù„Ù Ø§Ù„Ù…ÙØªØ§Ø­ الخارجي Add to agent @@ -2926,9 +3053,26 @@ Would you like to correct it? Remove from agent حذ٠من الوكيل + + External file + مل٠خارجي + + + Browser for key file + Ù…ØªØµÙØ­ للمل٠الرئيسي + + + Browse… + Button for opening file dialog + ØªØµÙØ­... + + + Generate + توليد + Select attachment file - + حدد المل٠المرÙÙ‚ Require user confirmation when this key is used @@ -2944,7 +3088,7 @@ Would you like to correct it? Remove key from agent after specified seconds - + قم بإزالة Ø§Ù„Ù…ÙØªØ§Ø­ من الوكيل بعد ثوان٠محددة seconds @@ -2961,10 +3105,6 @@ Would you like to correct it? Icon أيقونة - - Browser Integration - تكامل Ø§Ù„Ù…ØªØµÙØ­ - Properties خصائص @@ -2979,7 +3119,11 @@ Would you like to correct it? Group has unsaved changes - + تحتوي المجموعة على تغييرات غير محÙوظة + + + Browser Integration + تكامل Ø§Ù„Ù…ØªØµÙØ­ Enable @@ -2996,44 +3140,56 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - - These settings affect to the group's behaviour with the browser extension. - + تؤثر هذه الإعدادات على سلوك المجموعة مع امتداد Ø§Ù„Ù…ØªØµÙØ­. Hide entries from browser extension: - + Ø¥Ø®ÙØ§Ø¡ الإدخالات من ملحق Ø§Ù„Ù…ØªØµÙØ­: Hide entries from browser extension toggle for this and sub groups - + Ø¥Ø®ÙØ§Ø¡ الإدخالات من تبديل ملحق Ø§Ù„Ù…ØªØµÙØ­ لهذه المجموعات Ø§Ù„ÙØ±Ø¹ÙŠØ© Skip Auto-Submit for entries: - + تخطي الإرسال التلقائي للإدخالات: Skip Auto-Submit toggle for this and sub groups - + تخطي تبديل الإرسال التلقائي لهذه المجموعة والمجموعات Ø§Ù„ÙØ±Ø¹ÙŠØ© Use entries only with HTTP Basic Auth: - + استخدم المٌدخلات Ùقط مع مصادقة HTTP البدائية: Only HTTP Auth toggle for this and sub groups - + Ùقط تبديل استيثاق HTTP لهذه المجموعة والمجموعات Ø§Ù„ÙØ±Ø¹ÙŠØ© Do not use entries with HTTP Basic Auth: - + لا تستخدم Ø§Ù„Ù…ÙØ¯Ø®Ù„ات مع مصادقة HTTP البدائية: Do not use HTTP Auth toggle for this and sub groups + لا تستخدم تبديل استيثاق HTTP لهذه والمجموعات Ø§Ù„ÙØ±Ø¹ÙŠØ© + + + Omit WWW subdomain from matching: + حذ٠المجال Ø§Ù„ÙØ±Ø¹ÙŠ WWW من المطابقة: + + + Omit WWW subdomain from matching toggle for this and sub groups + إستبعد الجزء Ø§Ù„ÙØ±Ø¹ÙŠ WWW من تبديل التطابق لهذه والمجموعات Ø§Ù„ÙØ±Ø¹ÙŠØ© + + + Restrict matching to given browser key: + + + + Restrict matching to given browser key toggle for this and sub groups @@ -3041,11 +3197,11 @@ Would you like to correct it? EditGroupWidgetKeeShare Sharing mode field - + مجال وضع المشاركة Password field - + حقل كلمة المرور Type: @@ -3057,23 +3213,23 @@ Would you like to correct it? Path: - + مسار: Path to share file field - + مسار لمشاركة حقل المل٠Browse for share file - + ØªØµÙØ­ بحثًا عن مل٠المشاركة Browse… - + ØªØµÙØ­... Clear fields - + مسح الحقول Clear @@ -3089,100 +3245,101 @@ Would you like to correct it? Export - + تصدير Synchronize - + مزامنة Your KeePassXC version does not support sharing this container type. Supported extensions are: %1. - + إصدار KeePassXC الخاص بك لا يدعم مشاركة هذا النوع من الحاوية. +الامتداد المدعومة هي: %1. %1 is already being exported by this database. - + يتم تصدير %1 Ø¨Ø§Ù„ÙØ¹Ù„ بواسطة قاعدة البيانات هذه. %1 is already being imported by this database. - + يتم Ø¨Ø§Ù„ÙØ¹Ù„ استيراد %1 بواسطة قاعدة البيانات هذه. %1 is being imported and exported by different groups in this database. - + يتم استيراد %1 وتصديره بواسطة مجموعات Ù…Ø®ØªÙ„ÙØ© ÙÙŠ قاعدة البيانات هذه. KeeShare is currently disabled. You can enable import/export in the application settings. KeeShare is a proper noun - + KeeShare معطل حاليا. يمكنك ØªÙØ¹ÙŠÙ„ الاستيراد/التصدير ÙÙŠ إعدادات التطبيق. Database export is currently disabled by application settings. - + تصدير قاعدة البيانات حاليًا مٌعطل من خلال إعدادات التطبيق. Database import is currently disabled by application settings. - + استيراد قاعدة البيانات حاليًا مٌعطل من خلال إعدادات التطبيق. KeeShare container - + حاوية KeeShare KeeShare signed container - + حاوية موقعة من KeeShare Select import source - + حدد مصدر الاستيراد Select export target - + حدد هد٠التصدير Select import/export file - + حدد مل٠الاستيراد/التصدير EditGroupWidgetMain Edit Group - + تحرير المجموعة Toggle expiration - + ØªÙØ¹ÙŠÙ„ انتهاء الصلاحية Expires: - + انتهاء الصلاحية Name field - + اسم الحقل Expiration field - + حقل انتهاء الصلاحية Use default Auto-Type sequence of parent group - + استخدم تسلسل الكتابة التلقائية Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠ Ù„Ù„Ù…Ø¬Ù…ÙˆØ¹Ø© الأصلية Auto-Type: - + الكتابة التلقائية Search: - + بحث: Auto-Type toggle for this and sub groups - + تبديل النوع التلقائي لهذه المجموعات والمجموعات Ø§Ù„ÙØ±Ø¹ÙŠØ© Notes: @@ -3190,50 +3347,50 @@ Supported extensions are: %1. Default auto-type sequence field - + حقل تسلسل الكتابة التلقائية Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠ Notes field - + حقل الملاحظات Name: - + الاسم: Set default Auto-Type sequence - + تعيين تسلسل الكتابة التلقائية Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠ Search toggle for this and sub groups - + تبديل البحث عن هذه والمجموعات Ø§Ù„ÙØ±Ø¹ÙŠØ© EditWidgetIcons Use default icon - + استخدام الأيقونة Ø§Ù„Ø¥ÙØªØ±Ø§Ø¶ÙŠØ© Use custom icon - + استخدام أيقونة خاصة Choose icon… - + اختر أيقونة... Set the URL to use to search for a favicon - + تعيين رابط لاستخدامه للبحث عن رمز Ø§Ù„Ù…ÙØ¶Ù„Ø© Favicon URL - + رابط رمز Ø§Ù„Ù…ÙØ¶Ù„Ø© Download favicon for URL - + تحميل رمز Ø§Ù„Ù…ÙØ¶Ù„Ø© للرابط Download favicon @@ -3241,39 +3398,35 @@ Supported extensions are: %1. Apply selected icon to subgroups and entries - + تطبيق الأيقونة المحدد على المجموعات Ø§Ù„ÙØ±Ø¹ÙŠØ© والإدخالات Apply icon to… - + تطبيق الأيقونة على... Apply to this group only - + طبّÙق على هذه المجموعة Ùقط Also apply to child groups - + تنطبق أيضًا على المجموعات Ø§Ù„ÙØ±Ø¹ÙŠØ© Also apply to child entries - + تنطبق أيضًا على الإدخالات Ø§Ù„ÙØ±Ø¹ÙŠØ© Also apply to all children - + تنطبق أيضًا على جميع Ø§Ù„ÙØ±ÙˆØ¹ Unable to fetch favicon. تعذر جلب رمز Ø§Ù„Ù…ÙØ¶Ù„Ø©. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - - Existing icon selected. - + تم تحديد أيقونة موجودة. Images @@ -3285,23 +3438,27 @@ Supported extensions are: %1. Select Image(s) - + حدد صورة Successfully loaded %1 of %n icon(s) - + تم تحميل Ùª1 أيقونة من Ùªn أيقونات بنجاحتم تحميل أيقونة من Ùªn أيقونات بنجاحتم تحميل أيقونتين من Ùªn أيقونات بنجاحتم تحميل %1 أيقونات من Ùªn أيقونات بنجاحتم تحميل Ùª1 أيقونة من Ùªn أيقونات بنجاحتم تحميل Ùª1 أيقونة من Ùªn أيقونات بنجاح No icons were loaded - + لم يتم تحميل أي أيقونة %n icon(s) already exist in the database - + Ùª n أيقونة موجودة Ø¨Ø§Ù„ÙØ¹Ù„ ÙÙŠ قاعدة البياناتأيقونة موجودة Ø¨Ø§Ù„ÙØ¹Ù„ ÙÙŠ قاعدة البياناتأيقونتين موجودة Ø¨Ø§Ù„ÙØ¹Ù„ ÙÙŠ قاعدة البيانات٪ n أيقونات موجودة Ø¨Ø§Ù„ÙØ¹Ù„ ÙÙŠ قاعدة البيانات٪ n أيقونة موجودة Ø¨Ø§Ù„ÙØ¹Ù„ ÙÙŠ قاعدة البيانات٪ n أيقونات موجودة Ø¨Ø§Ù„ÙØ¹Ù„ ÙÙŠ قاعدة البيانات The following icon(s) failed: - + ÙØ´Ù„ت الأيقونات التالية:ÙØ´Ù„ت الأيقونة التالية:ÙØ´Ù„ت الأيقونات التالية:ÙØ´Ù„ت الأيقونات التالية:ÙØ´Ù„ت الأيقونات التالية:ÙØ´Ù„ت الأيقونات التالية: + + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + @@ -3312,7 +3469,7 @@ Supported extensions are: %1. Datetime created - + تاريخ الإنشاء Modified: @@ -3320,7 +3477,7 @@ Supported extensions are: %1. Datetime modified - + عدلت التاريخ والوقت Accessed: @@ -3328,7 +3485,7 @@ Supported extensions are: %1. Datetime accessed - + تاريخ الوصول Uuid: @@ -3336,7 +3493,7 @@ Supported extensions are: %1. Unique ID - + Ù…Ø¹Ø±Ù ÙØ±ÙŠØ¯ Plugin Data @@ -3344,11 +3501,11 @@ Supported extensions are: %1. Plugin data - + بيانات الملحق Remove selected plugin data - + إزالة بيانات الملحق المختار Remove @@ -3377,14 +3534,14 @@ This may cause the affected plugins to malfunction. Entry %1 - Clone - + %1 - استنساخ EntryAttachments Cannot open file "%1" - + لا يمكن ÙØªØ­ المل٠"%1" @@ -3410,7 +3567,7 @@ This may cause the affected plugins to malfunction. Add new attachment - + Ø¥Ø¶Ø§ÙØ© مرÙÙ‚ جديد Add @@ -3418,7 +3575,7 @@ This may cause the affected plugins to malfunction. Remove selected attachment - + إزالة المرÙÙ‚ المحدد Remove @@ -3426,15 +3583,15 @@ This may cause the affected plugins to malfunction. Rename selected attachment - + إعادة تسمية المرÙÙ‚ المحدد Rename - + اعادة تسمية Open selected attachment - + ÙØªØ­ المرÙÙ‚ المحدد Open @@ -3442,7 +3599,7 @@ This may cause the affected plugins to malfunction. Save selected attachment to disk - + Ø­ÙØ¸ المرÙÙ‚ المحدد على القرص Save @@ -3454,7 +3611,7 @@ This may cause the affected plugins to malfunction. Confirm remove - + تأكيد الإزالة Are you sure you want to remove %n attachment(s)? @@ -3499,45 +3656,57 @@ This may cause the affected plugins to malfunction. Unable to open file(s): %1 - + تعذر ÙØªØ­ Ø§Ù„Ù…Ù„ÙØ§Øª: +%1تعذر ÙØªØ­ Ø§Ù„Ù…Ù„ÙØ§Øª: +%1تعذر ÙØªØ­ Ø§Ù„Ù…Ù„ÙØ§Øª: +%1تعذر ÙØªØ­ Ø§Ù„Ù…Ù„ÙØ§Øª: +%1تعذر ÙØªØ­ Ø§Ù„Ù…Ù„ÙØ§Øª: +%1تعذر ÙØªØ­ Ø§Ù„Ù…Ù„ÙØ§Øª: +%1 Confirm Overwrite Attachment - + تأكيد الكتابة Ùوق المرÙÙ‚ Attachment "%1" already exists. Would you like to overwrite the existing attachment? - + المرÙÙ‚ "%1" موجود Ø¨Ø§Ù„ÙØ¹Ù„. +هل ترغب ÙÙŠ الكتابة Ùوق المرÙÙ‚ الموجود؟ Confirm Attachment - + تأكيد المرÙÙ‚ %1 is a big file (%2 MB). Your database may get very large and reduce performance. Are you sure to add this file? - + %1 هو مل٠كبير الحجم (%2 ميجابايت). +قد تصبح قاعدة البيانات الخاصة بك كبيرة جدًا وتقلل من الأداء. + +هل أنت متأكد من Ø¥Ø¶Ø§ÙØ© هذا Ø§Ù„Ù…Ù„ÙØŸ Attachment modified - + عدّلت المرÙÙ‚ The attachment '%1' was modified. Do you want to save the changes to your database? - + تم تعديل المرÙÙ‚ '%1'. +هل تريد Ø­ÙØ¸ التغييرات ÙÙŠ قاعدة بياناتك؟ Saving attachment failed - + ÙØ´Ù„ Ø­ÙØ¸ المرÙÙ‚ Saving updated attachment failed. Error: %1 - + ÙØ´Ù„ Ø­ÙØ¸ المرÙÙ‚ المحدث. +الخطأ: %1 @@ -3551,7 +3720,7 @@ Error: %1 EntryHistoryModel Current (%1) - + الحالي (%1) Last modified @@ -3559,11 +3728,11 @@ Error: %1 Age - + العمر Difference - + Ø§Ù„ÙØ±Ù‚ Size @@ -3591,7 +3760,7 @@ Error: %1 Custom Attributes - + سمات خاصة Icon @@ -3599,7 +3768,7 @@ Error: %1 Color - + اللون Expiration @@ -3607,11 +3776,11 @@ Error: %1 TOTP - + باسورد مؤقت Custom Data - + البيانات المخصصة Attachments @@ -3621,6 +3790,10 @@ Error: %1 Auto-Type نمط تلقائي + + Tags + وسوم + EntryModel @@ -3683,50 +3856,54 @@ Error: %1 Group name - + اسم المجموعة Entry title - + عنوان الإدخال Password Strength - + قوة كلمة المرور Entry notes - + ملاحظات الإدخال Entry expires at - + تنتهي صلاحية الإدخال ÙÙŠ Creation date - + تاريخ الإنشاء Last modification date - + تاريخ آخر تعديل Last access date - + تاريخ الوصول الأخير Attached files - + Ø§Ù„Ù…Ù„ÙØ§Øª المرÙقة Entry size - + حجم الإدخال Has attachments - + لديه مرÙقات Has TOTP + لديه TOTP + + + Background Color @@ -3734,7 +3911,7 @@ Error: %1 EntryPreviewWidget Display current TOTP value - + اظهر قيمة TOTP الحالية Close @@ -3749,8 +3926,8 @@ Error: %1 كلمه السر - Notes - ملاحظات + URL + رابط Expiration @@ -3758,19 +3935,19 @@ Error: %1 Tags - + وسوم Tags list - + قائمة الوسوم Username اسم المستخدم - URL - رابط + Notes + ملاحظات Advanced @@ -3790,7 +3967,7 @@ Error: %1 Default Sequence - + التسلسل Ø§Ù„Ø¥ÙØªØ±Ø§Ø¶ÙŠ Window @@ -3806,7 +3983,7 @@ Error: %1 Share - + مشاركة Search @@ -3820,6 +3997,10 @@ Error: %1 Never أبدًا + + Double click to copy value + انقر نقرا مزدوجا لنسخ القيمة + Enabled Ù…ÙÙØ¹Ù„ @@ -3828,12 +4009,20 @@ Error: %1 Disabled Ù…ÙØ¹Ø·Ù„ + + Double click to copy to clipboard + انقر نقرا مزدوجا للنسخ إلى Ø§Ù„Ø­Ø§ÙØ¸Ø© + EntryURLModel Invalid URL - + URL غير صالح + + + Duplicate URL + URL مكرر @@ -3850,107 +4039,112 @@ Error: %1 Reset to defaults إعادة التعيين إلى الإعدادات Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠØ© + + + %1 entry(s)... + + %1 Ù…ÙØ¯Ø®Ù„+ %1 Ù…ÙØ¯Ø®Ù„+ %1 Ù…ÙØ¯Ø®Ù„ات+ %1 Ù…ÙØ¯Ø®Ù„ات+ %1 Ù…ÙØ¯Ø®Ù„+ %1 Ù…ÙØ¯Ø®Ù„ + ExportDialog Export options - + خيارات التصدير Sort entries by... - + ÙØ±Ø² الإدخالات حسب... You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! - + أنت على وشك تصدير قاعدة بياناتك إلى مل٠غير Ù…Ø´ÙØ±. +سيؤدي هذا إلى ترك كلمات المرور ومعلوماتك الحساسة عرضة للخطر! database order - + ترتيب قاعدة البيانات name (ascending) - + الاسم (تصاعدياً) name (descending) - + الاسم (تنازلياً) unknown - + غير معلوم Export database to HTML file - + تصدير قاعدة البيانات إلى مل٠HTML HTML file - + مل٠HTML FdoSecrets::DBusMgr Failed to deliver message - + ÙØ´Ù„ تسليم الرسالة Failed to send reply on DBus - + ÙØ´Ù„ إرسال الرد على DBus Unknown Unknown PID - + مجهول Unknown Unknown executable path - + مجهول <i>PID: %1, Executable: %2</i> <i>PID: 1234, Executable: /path/to/exe</i> - + <i>PID: %1, Executable: %2</i> Another secret service is running (%1).<br/>Please stop/remove it before re-enabling the Secret Service Integration. - + خدمة سرية أخرى قيد التشغيل (%1).<br/>يرجى إيقاÙها / إزالتها قبل إعادة تمكين تكامل الخدمة السرية. Failed to register DBus service at %1.<br/> - + ÙØ´Ù„ تسجيل خدمة DBus ÙÙŠ %1.<br/> Failed to register service on DBus at path '%1' - + ÙØ´Ù„ تسجيل الخدمة على DBus ÙÙŠ المسار '%1' Failed to register database on DBus under the name '%1' - + ÙØ´Ù„ تسجيل قاعدة البيانات على DBus تحت اسم '%1' Failed to register session on DBus at path '%1' - + ÙØ´Ù„ تسجيل الجلسة على DBus ÙÙŠ المسار '%1' Failed to register item on DBus at path '%1' - + ÙØ´Ù„ تسجيل العنصر على DBus ÙÙŠ المسار '%1' Failed to register prompt object on DBus at path '%1' - + ÙØ´Ù„ تسجيل كائن الإشعار على DBus ÙÙŠ المسار '%1' FdoSecrets::Item Entry "%1" from database "%2" was used by %3 - + تم استخدام الإدخال "%1" من قاعدة البيانات "%2" بواسطة %3 @@ -3958,14 +4152,14 @@ This will leave your passwords and sensitive information vulnerable! %n Entry(s) was used by %1 %1 is the name of an application - + Ùªn Ù…ÙØ¯Ø®Ù„ تم استخدامه من قبل Ùª1Ùªn Ù…ÙØ¯Ø®Ù„ تم استخدامه من قبل Ùª1Ùªn Ù…ÙØ¯Ø®Ù„ تم استخدامه من قبل Ùª1Ùªn Ù…ÙØ¯Ø®Ù„ات تم استخدامها من قبل Ùª1Ùªn Ù…ÙØ¯Ø®Ù„ تم استخدامه من قبل Ùª1Ùªn Ù…ÙØ¯Ø®Ù„ تم استخدامه من قبل Ùª1 FdoSecrets::SettingsClientModel Unknown - + مجهول Non-existing/inaccessible executable path. Please double-check the client is legit. @@ -3976,18 +4170,18 @@ This will leave your passwords and sensitive information vulnerable! FdoSecrets::SettingsDatabaseModel Unlock to show - + Ø§ÙØªØ­ للعرض None - + لا شيء FdoSecrets::UnlockPrompt %1 (PID: %2) - + رقم(هوية) العملية @@ -4002,25 +4196,25 @@ This will leave your passwords and sensitive information vulnerable! [empty] group has no children - + [ÙØ§Ø±Øº] %1 - Clone - + %1 - استنساخ HibpDownloader Online password validation failed - + ÙØ´Ù„ التحقق من صحة كلمة المرور عبر الإنترنت IconDownloaderDialog Download Favicons - + تنزيل Favicons Cancel @@ -4029,7 +4223,8 @@ This will leave your passwords and sensitive information vulnerable! Having trouble downloading icons? You can enable the DuckDuckGo website icon service in the security section of the application settings. - + تواجه مشكلة ÙÙŠ تنزيل الأيقونات؟ +يمكنك ØªÙØ¹ÙŠÙ„ خدمة أيقونة موقع DuckDuckGo ÙÙŠ قسم الأمان ÙÙŠ إعدادات التطبيق. Close @@ -4041,15 +4236,15 @@ You can enable the DuckDuckGo website icon service in the security section of th Status - + الحالة Please wait, processing entry list… - + يرجى الانتظار ØŒ معالجة قائمة الإدخالات ... Downloading… - + يتم التحميل... Ok @@ -4057,14 +4252,155 @@ You can enable the DuckDuckGo website icon service in the security section of th Already Exists - + موجود Ø¨Ø§Ù„ÙØ¹Ù„ Download Failed - + ÙØ´Ù„ التنزيل Downloading favicons (%1/%2)… + جار٠تنزيل favicons (%1/%2)… + + + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + + + + Entry count: %1 + + + + Group + المجموعة + + + Title + العنوان + + + Username + اسم المستخدم + + + Password + كلمة المرور + + + Url + + + + + ImportWizardPageSelect + + Form + النموذج + + + Import File Selection + + + + Password: + كلمة المرور: + + + Key File: + Ù…Ù„Ù Ù…ÙØªØ§Ø­: + + + Browse… + ØªØµÙØ­... + + + Import Into: + + + + New Database + قاعدة بيانات جديدة + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + ÙØªØ­ OPVault + + + Select import file + + + + All files + كل Ø§Ù„Ù…Ù„ÙØ§Øª + + + Key files + Ù…Ù„ÙØ§Øª Ø§Ù„Ù…ÙØªØ§Ø­ + + + Select key file + إختر Ù…Ù„Ù Ø§Ù„Ù…ÙØªØ§Ø­ + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database @@ -4083,24 +4419,25 @@ You can enable the DuckDuckGo website icon service in the security section of th Kdbx3Reader Missing database headers - + رؤوس قاعدة البيانات Ù…Ùقودة Unable to calculate database key - + غير قادر على حساب Ù…ÙØªØ§Ø­ قاعدة البيانات Unable to issue challenge-response: %1 - + غير قادر على إصدار استجابة الارتياب: %1 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + تم تقديم بيانات اعتماد غير صالحة، يرجى المحاولة مرة أخرى. +ÙÙŠ حالة تكرار ذلك، قد يكون مل٠قاعدة البيانات الخاص بك ØªØ§Ù„ÙØ§. Header doesn't match hash - + الرأس لا يتطابق مع التجزئة Invalid header id size @@ -4108,11 +4445,11 @@ If this reoccurs, then your database file may be corrupt. Invalid header field length: field %1 - + طول حقل الترويسة غير صالحة: الحقل %1 Invalid header data length: field %1, %2 expected, %3 found - + طول بيانات الترويسة غير صالحة: الحقل %1ØŒ %2 متوقع، تم العثور على %3 @@ -4124,11 +4461,11 @@ If this reoccurs, then your database file may be corrupt. Unable to issue challenge-response: %1 - + غير قادر على إصدار استجابة الارتياب: %1 Unable to calculate database key - + غير قادر على حساب Ù…ÙØªØ§Ø­ قاعدة البيانات @@ -4139,7 +4476,7 @@ If this reoccurs, then your database file may be corrupt. Unable to calculate database key: %1 - + غير قادر على حساب Ù…ÙØªØ§Ø­ قاعدة البيانات: %1 Invalid header checksum size @@ -4152,11 +4489,12 @@ If this reoccurs, then your database file may be corrupt. Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + تم تقديم بيانات اعتماد غير صالحة، يرجى المحاولة مرة أخرى. +ÙÙŠ حالة تكرار ذلك، قد يكون مل٠قاعدة البيانات الخاص بك ØªØ§Ù„ÙØ§. (HMAC mismatch) - + (عدم تطابق HMAC) Unknown cipher @@ -4168,11 +4506,11 @@ If this reoccurs, then your database file may be corrupt. Invalid header field length: field %1 - + طول حقل الترويسة غير صالحة: الحقل %1 Invalid header data length: field %1, %2 expected, %3 found - + طول بيانات الترويسة غير صالحة: الحقل %1ØŒ %2 متوقع، تم العثور على %3 Failed to open buffer for KDF parameters in header @@ -4192,11 +4530,11 @@ If this reoccurs, then your database file may be corrupt. Invalid inner header field length: field %1 - + طول حقل الترويسة الداخلي غير صالح: الحقل %1 Invalid inner header data length: field %1, %2 expected, %3 found - + طول بيانات الترويسة الداخلي غير صالحة: الحقل %1ØŒ %2 متوقع، تم العثور على %3 Invalid inner header binary size @@ -4276,7 +4614,7 @@ If this reoccurs, then your database file may be corrupt. Unable to calculate database key: %1 - + غير قادر على حساب Ù…ÙØªØ§Ø­ قاعدة البيانات: %1 Failed to serialize KDF parameters variant map @@ -4288,11 +4626,11 @@ If this reoccurs, then your database file may be corrupt. KdbxReader Invalid cipher uuid length: %1 (length=%2) - + طول معر٠التشÙير غير صالح: %1 (length=%2) Unable to parse UUID: %1 - + غير قادر على تحليل UUID: %1 Unsupported cipher @@ -4332,7 +4670,7 @@ If this reoccurs, then your database file may be corrupt. Failed to read database file. - + ÙØ´Ù„ ÙÙŠ قراءة مل٠قاعدة البيانات. The selected file is an old KeePass 1 database (.kdb). @@ -4480,11 +4818,11 @@ Line %2, column %3 Private key is an attachment but no attachments provided. - + Ø§Ù„Ù…ÙØªØ§Ø­ الخاص هو مرÙÙ‚ ولكن لم يتم توÙير أي مرÙقات. Private key is empty - + Ø§Ù„Ù…ÙØªØ§Ø­ الخاص ÙØ§Ø±Øº File too large to be a private key @@ -4495,17 +4833,6 @@ Line %2, column %3 تعذر ÙØªØ­ Ø§Ù„Ù…ÙØªØ§Ø­ السري - - KeePass1OpenWidget - - Import KeePass1 Database - - - - Unable to open the database. - ÙØªØ­ قاعدة البيانات غير ممكن. - - KeePass1Reader @@ -4559,16 +4886,17 @@ Line %2, column %3 Unable to calculate database key - + غير قادر على حساب Ù…ÙØªØ§Ø­ قاعدة البيانات unable to seek to content position - + غير قادر على البحث عن موضع المحتوى Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + تم تقديم بيانات اعتماد غير صالحة، يرجى المحاولة مرة أخرى. +ÙÙŠ حالة تكرار ذلك، قد يكون مل٠قاعدة البيانات الخاص بك ØªØ§Ù„ÙØ§. Key transformation failed @@ -4671,43 +4999,43 @@ If this reoccurs, then your database file may be corrupt. Inactive share %1 - + المشاركة غير نشطة %1 Imported from %1 - + تم الاستيراد من Ùª1 Exported to %1 - + تم التصدير إلى Ùª1 Synchronized with %1 - + متزامن مع Ùª1 Import is disabled in settings - + الاستيراد معطل ÙÙŠ الإعدادات Export is disabled in settings - + التصدير معطل ÙÙŠ الإعدادات Inactive share - + المشاركة غير نشطة Imported from - + مستورد من Exported to - + تصدير إلى Synchronized with - + متزامن مع @@ -4733,7 +5061,7 @@ If this reoccurs, then your database file may be corrupt. KeyFileEditWidget Generate a new key file - + توليد Ù…Ù„Ù Ù…ÙØªØ§Ø­ جديد Generate @@ -4741,23 +5069,23 @@ If this reoccurs, then your database file may be corrupt. Generate a new key file or choose an existing one to protect your database. - + ولّد Ù…Ù„Ù Ù…ÙØªØ§Ø­ جديد أو اختيار مل٠موجود لحماية قاعدة بياناتك. Note: Do NOT use a file that may change as that will prevent you from unlocking your database. - + ملاحظة: لا تستخدم ملÙًا قد يتغير، حيث سيمنعك ذلك من ÙØªØ­ قاعدة بياناتك. Browse for key file - + استعرض بحثا عن Ù…Ù„Ù Ø§Ù„Ù…ÙØªØ§Ø­ Browse… - + ØªØµÙØ­... Old key file format - + تنسيق Ù…Ù„Ù Ø§Ù„Ù…ÙØªØ§Ø­ قديم You selected a key file in an old format which KeePassXC<br>may stop supporting in the future.<br><br>Please consider generating a new key file instead. @@ -4766,23 +5094,24 @@ If this reoccurs, then your database file may be corrupt. Error loading the key file '%1' Message: %2 - + خطأ ÙÙŠ تحميل Ù…Ù„Ù Ø§Ù„Ù…ÙØªØ§Ø­ '%1' +الرسالة: %2 Key File - + Ù…Ù„Ù Ù…ÙØªØ§Ø­ Add Key File - + Ø¥Ø¶Ø§ÙØ© Ù…Ù„Ù Ù…ÙØªØ§Ø­ Change Key File - + تغيير Ù…Ù„Ù Ø§Ù„Ù…ÙØªØ§Ø­ Remove Key File - + إزالة Ù…Ù„Ù Ø§Ù„Ù…ÙØªØ§Ø­ Key File set, click to change or remove @@ -4790,7 +5119,7 @@ Message: %2 <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out.</p> - + <p>يمكنك Ø¥Ø¶Ø§ÙØ© Ù…Ù„Ù Ù…ÙØªØ§Ø­ يحتوي على بايت عشوائي لمزيد من الأمان.</p><p>يجب أن تبقيه سرا ولا تÙقده أبدا وإلا ÙØ³ØªØ­Ø¸Ø± Ù†ÙØ³Ùƒ.</p> Key files @@ -4802,15 +5131,15 @@ Message: %2 Create Key File… - + أنشئ Ù…Ù„Ù Ø§Ù„Ù…ÙØªØ§Ø­... Error creating key file - + خطأ ÙÙŠ إنشاء Ù…Ù„Ù Ø§Ù„Ù…ÙØªØ§Ø­ Unable to create key file: %1 - + غير قادر على إنشاء Ù…Ù„Ù Ø§Ù„Ù…ÙØªØ§Ø­: %1 Select a key file @@ -4818,7 +5147,7 @@ Message: %2 Invalid Key File - + Ù…Ù„Ù Ø§Ù„Ù…ÙØªØ§Ø­ غير صالح You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. @@ -4826,7 +5155,7 @@ Message: %2 Suspicious Key File - + Ù…Ù„Ù Ù…ÙØªØ§Ø­ مشبوه The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. @@ -4838,7 +5167,7 @@ Are you sure you want to continue with this file? MacUtils Invalid key code - + رمز Ø§Ù„Ù…ÙØªØ§Ø­ غير صالح Global shortcut already registered to %1 @@ -4857,15 +5186,11 @@ Are you sure you want to continue with this file? &Recent Databases - - - - &Import - + قواعد البيانات Ø§Ù„Ù…ÙØªÙˆØ­Ø© مؤخرًا &Export - + &تصدير &Help @@ -4873,15 +5198,19 @@ Are you sure you want to continue with this file? &Entries - + &الإدخالات Copy Att&ribute - + نسخ الصÙ&Ø© TOTP - + باسورد مؤقت + + + Tags + وسوم &Groups @@ -4893,11 +5222,11 @@ Are you sure you want to continue with this file? View - + عرض Theme - + السÙمة &Quit @@ -4909,67 +5238,47 @@ Are you sure you want to continue with this file? &Check for Updates - + &تحقق من وجود تحديثات &Open Database… - + &ÙØªØ­ قاعدة بيانات… &Save Database - + &Ø­ÙØ¸ قاعدة البيانات &Close Database - + إغلاق قاعدة البيانات &New Database… - - - - Create a new database - + &قاعدة بيانات جديدة… &Merge From Database… - - - - Merge from another KDBX database - + دمج من قاعدة بيانات ... &New Entry… - - - - Add a new entry - + Ù…ÙØ¯Ø®Ù„ جديد... &Edit Entry… - - - - View or edit entry - + &تعديل الإدخالالة… &Delete Entry… - + &Ø­Ø°Ù Ø§Ù„Ù…ÙØ¯Ø®Ù„... &New Group… - - Add a new group - - &Edit Group… - + &تعديل المجموعة... &Delete Group… @@ -4977,15 +5286,15 @@ Are you sure you want to continue with this file? Download All &Favicons… - + تحميل جميع أيقونات المواقع… Sort &A-Z - + ÙØ±Ø² من الأل٠إلى الياء Sort &Z-A - + ÙØ±Ø² من الياء إلى الأل٠Sa&ve Database As… @@ -4993,59 +5302,35 @@ Are you sure you want to continue with this file? Database &Security… - + أمن &قاعدة البيانات… Database &Reports… - - Statistics, health check, etc. - - &Database Settings… - - - - Database settings - إعدادات قاعدة البيانات + &إعدادات قاعدة البيانات… &Clone Entry… - + &إستنساخ Ø§Ù„Ù…ÙØ¯Ø®Ù„... Move u&p - - Move entry one step up - - Move do&wn - - Move entry one step down - - Copy &Username - - - - Copy username to clipboard - نسخ اسم المستخدم إلى Ø§Ù„Ø­Ø§ÙØ¸Ø© + نسخ &اسم المستخدم Copy &Password - - - - Copy password to clipboard - نسخ كلمة المرور إلى Ø§Ù„Ø­Ø§ÙØ¸Ø© + نسخ كلمة المرور &Settings @@ -5053,11 +5338,11 @@ Are you sure you want to continue with this file? &Password Generator - + &مولد كلمات السر Perform &Auto-Type - + الأداء والكتابة التلقائية Download &Favicon @@ -5065,43 +5350,31 @@ Are you sure you want to continue with this file? Open &URL - + Ø§ÙØªØ­ &الرابط &Lock Database - + &Ù‚ÙÙ„ قاعدة البيانات Lock &All Databases - + Ù‚ÙÙ„ جميع قواعد البيانات &Title &العنوان - Copy title to clipboard - نسخ العنوان إلى Ø§Ù„Ø­Ø§ÙØ¸Ø© - - - &URL - &رابط - - - Copy URL to clipboard - نسخ الرابط إلى Ø§Ù„Ø­Ø§ÙØ¸Ø© + Copy &URL + نسخ الرابط &Notes &الملاحظات - - Copy notes to clipboard - نسخ الملاحظات إلى Ø§Ù„Ø­Ø§ÙØ¸Ø© - &CSV File… - + مل٠CSV… &HTML File… @@ -5111,25 +5384,13 @@ Are you sure you want to continue with this file? KeePass 1 Database… - - Import a KeePass 1 database - - 1Password Vault… - - Import a 1Password Vault - - CSV File… - - - - Import a CSV file - + مل٠CSV… Show TOTP @@ -5141,19 +5402,23 @@ Are you sure you want to continue with this file? Set up TOTP… - + نصب TOTP… Copy &TOTP نسخ &TOTP + + Copy Password and TOTP + نسخ كلمة المرور Ùˆ TOTP + E&mpty recycle bin Ø¥ÙØ±Ø§Øº سلة المهملات &Donate - + &تبرَّع Report a &Bug @@ -5169,23 +5434,19 @@ Are you sure you want to continue with this file? &Online Help - - - - Go to online documentation - + &مساعدة عبر الإنترنت &User Guide - + &دليل المستخدم Open User Guide - + Ø§ÙØªØ­ دليل المستخدم &Keyboard Shortcuts - + &إختصارات لوحة Ø§Ù„Ù…ÙØ§ØªÙŠØ­ Save Database Backup… @@ -5205,15 +5466,15 @@ Are you sure you want to continue with this file? Automatic - + تلقائي Light - + ÙØ§ØªØ­Ø© Dark - + داكنة Classic (Platform-native) @@ -5221,7 +5482,7 @@ Are you sure you want to continue with this file? Show Toolbar - + Ø£Ø¸Ù‡ÙØ± شريط الأدوات Show Preview Panel @@ -5229,7 +5490,7 @@ Are you sure you want to continue with this file? Always on Top - + دائما ÙÙŠ الأعلى Hide Usernames @@ -5241,7 +5502,11 @@ Are you sure you want to continue with this file? Clone Group... - + &إستنساخ المجموعة... + + + &XML File… + &مل٠XML... Clear history @@ -5271,6 +5536,10 @@ Expect some bugs and minor issues, this version is meant for testing purposes. + + No Tags + + Restore Entry(s) @@ -5299,9 +5568,13 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC إغلاق KeePassXC + + %1 Entry(s) + %1 إدخالإدخالإدخالين%1 إدخالات%1 إدخال%1 إدخال + Please present or touch your YubiKey to continue… - + يرجى تقديم أو لمس YubiKey الخاص بك للمتابعة ... Restart Application? @@ -5311,6 +5584,274 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? + + Allow Screen Capture + + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + + + + Import Passkey + + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + تعديل الإدخال + + + Delete Entry + + + + Create Group + + + + Edit Group + تحرير المجموعة + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + نسخ اسم المستخدم + + + Copy Password + نسخ كلمة المرور + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + استيراد قاعدة بيانات KeePass1 + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + ManageDatabase @@ -5320,7 +5861,7 @@ We recommend you use the AppImage available on our downloads page. Edit database settings - + تعديل إعدادات قاعدة البيانات Unlock database @@ -5345,6 +5886,14 @@ We recommend you use the AppImage available on our downloads page. Disconnect this application + + Reset + + + + Reset any remembered decisions for this application + + Merger @@ -5360,26 +5909,6 @@ We recommend you use the AppImage available on our downloads page. Overwriting %1 [%2] - - older entry merged from database "%1" - - - - Adding backup for older target %1 [%2] - - - - Adding backup for older source %1 [%2] - - - - Reapplying older target entry on top of newer source %1 [%2] - - - - Reapplying older source entry on top of newer target %1 [%2] - - Synchronizing from newer source %1 [%2] @@ -5390,7 +5919,7 @@ We recommend you use the AppImage available on our downloads page. Deleting child %1 [%2] - + Ø¬Ø§Ø±Ù Ø­Ø°Ù ÙØ±Ø¹ %1 [%2] Deleting orphan %1 [%2] @@ -5402,7 +5931,7 @@ We recommend you use the AppImage available on our downloads page. Adding missing icon %1 - + Ø¥Ø¶Ø§ÙØ© أيقونة Ù…Ùقودة Ùª1 Removed custom data %1 [%2] @@ -5433,26 +5962,18 @@ We recommend you use the AppImage available on our downloads page. Encryption Settings - + إعدادات التشÙير Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - - Advanced Settings - - - - Simple Settings - - NewDatabaseWizardPageDatabaseKey Database Credentials - + بيانات اعتماد قاعدة البيانات A set of credentials known only to you that protects your database. @@ -5463,7 +5984,7 @@ We recommend you use the AppImage available on our downloads page. NewDatabaseWizardPageEncryption Encryption Settings - + إعدادات التشÙير Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. @@ -5500,7 +6021,7 @@ We recommend you use the AppImage available on our downloads page. OpData01 Invalid OpData01, does not contain header - + OpData01 غير صالح، ولا يحتوي على ترويسة Unable to read all IV bytes, wanted 16 but got %1 @@ -5527,31 +6048,23 @@ We recommend you use the AppImage available on our downloads page. - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - - - OpVaultReader Directory .opvault must exist - + يجب أن يكون المجلد .opvault موجودا Directory .opvault must be readable - + يجب أن يكون المجلد .opvault قابل للقراءة Directory .opvault/default must exist - + يجب أن يكون المجلد .opvault/default موجودا Directory .opvault/default must be readable - + يجب أن يكون المجلد opvault/default. قابل للقراءة Unable to decode masterKey: %1 @@ -5608,6 +6121,10 @@ We recommend you use the AppImage available on our downloads page. Unknown cipher: %1 تشÙير غير معروÙ: %1 + + AES-256/GCM is currently not supported + + Passphrase is required to decrypt this key عبارة المرور مطلوبة Ù„ÙÙƒ تشÙير Ø§Ù„Ù…ÙØªØ§Ø­ @@ -5674,25 +6191,173 @@ We recommend you use the AppImage available on our downloads page. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match + SSH Key Generator - Passwords match so far + Type + نوع + + + Bits - Toggle Password (%1) + Comment + تعليق + + + + PasskeyExportDialog + + KeePassXC - Passkey Export - Generate Password (%1) + Export the following Passkey entries. - Warning: Caps Lock enabled! + Filenames will be generated with title and .passkey file extension. + + + + Export entries + + + + Export Selected + + + + Cancel + ألغأ + + + Export to folder + + + + + PasskeyExporter + + KeePassXC: Passkey Export + + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + + Cannot open file + + + + Cannot open file "%1" for writing. + + + + Cannot write to file + + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + + + + Username: %1 + + + + Group + المجموعة + + + Database + + + + Import Passkey + + + + Import + إستيراد + + + Cancel + ألغأ + + + Import the following Passkey: + + + + Entry + Ù…ÙØ¯Ø®Ù„Ø© + + + Import the following Passkey to this entry: + + + + Create new entry + + + + Default Passkeys group (Imported Passkeys) + + + + Relying Party: %1 + + + + + PasskeyImporter + + Passkey file + + + + All files + كل Ø§Ù„Ù…Ù„ÙØ§Øª + + + Open Passkey file + + + + Cannot open file + + + + Cannot open file "%1" for reading. + + + + Cannot import Passkey + + + + Cannot import Passkey file "%1". Data is missing. + + + + Cannot import Passkey file "%1". Private key is missing or malformed. + + + + Cannot import Passkey file "%1". +The following data is missing: +%2 @@ -5704,7 +6369,7 @@ We recommend you use the AppImage available on our downloads page. Password field - + حقل كلمة المرور Confirm password: @@ -5724,15 +6389,15 @@ We recommend you use the AppImage available on our downloads page. Change Password - + تغيير كلمة المرور Remove Password - + إزالة كلمة المرور Password set, click to change or remove - + تم تعيين كلمة المرور، انقر للتغيير أو الإزالة <p>A password is the primary method for securing your database.</p><p>Good passwords are long and unique. KeePassXC can generate one for you.</p> @@ -5768,7 +6433,7 @@ We recommend you use the AppImage available on our downloads page. Regenerate password - + إعادة توليد كلمة المرور Copy password @@ -5804,19 +6469,19 @@ We recommend you use the AppImage available on our downloads page. Quotes - + علامات اقتباس Punctuation - + علامات الترقيم Dashes and Slashes - + الشرطات والشرطة المائلة Upper-case letters - + أحر٠الكبيرة Numbers @@ -5824,11 +6489,11 @@ We recommend you use the AppImage available on our downloads page. Lower-case letters - + أحر٠صغيرة Math Symbols - + رموز الرياضيات Extended ASCII @@ -5836,15 +6501,15 @@ We recommend you use the AppImage available on our downloads page. Braces - + أقواس Do not include: - + لا تشمل: Additional characters to use for the generated password - + Ù…ÙØ­Ø±ÙŽÙات إضاÙية لاستخدامها لكلمة المرور الموَلّدة Additional characters @@ -5852,7 +6517,7 @@ We recommend you use the AppImage available on our downloads page. Add non-hex letters to "do not include" list - + Ø¥Ø¶Ø§ÙØ© الأحر٠الغير سداسية عشرية إلى قائمة "لا تشمل" Hex Passwords @@ -5860,11 +6525,11 @@ We recommend you use the AppImage available on our downloads page. Hex - + أحر٠سداسية عشرية Character set to exclude from generated password - + مجموعة Ù…ÙØ­Ø±ÙŽÙات لاستبعادها من كلمة المرور الموَلّدة Excluded characters @@ -5872,11 +6537,11 @@ We recommend you use the AppImage available on our downloads page. Also choose from: - + اختر أيضا من: Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" - + استبعاد Ø§Ù„Ù…ÙØ­Ø±ÙŽÙات: "0", "1", "l", "I", "O", "|", "ï¹’" Exclude look-alike characters @@ -5904,11 +6569,11 @@ We recommend you use the AppImage available on our downloads page. Character Count: - + عدد Ø§Ù„Ù…ÙØ­Ø±ÙŽÙات: Word Case: - + حالة أحر٠الكلمات: Delete selected wordlist @@ -5916,7 +6581,7 @@ We recommend you use the AppImage available on our downloads page. Add custom wordlist - + Ø¥Ø¶Ø§ÙØ© قائمة كلمات مخصصة character @@ -5936,19 +6601,19 @@ We recommend you use the AppImage available on our downloads page. Regenerate password (%1) - + إعادة توليد كلمة المرور (%1) lower case - + صغيرة UPPER CASE - + كبيرة Title Case - + تكبير الحر٠الأول (SYSTEM) @@ -5958,6 +6623,30 @@ We recommend you use the AppImage available on our downloads page. Entropy: %1 bit Entropy: %1 bit + + Password Quality: %1 + جودة كلمة المرور: %1 + + + Poor + Password quality + ضعي٠جدا + + + Weak + Password quality + Ø¶Ø¹ÙŠÙØ© + + + Good + Password quality + جيدة + + + Excellent + Password quality + ممتازة + Confirm Delete Wordlist @@ -6003,9 +6692,32 @@ Do you want to overwrite it? Special Characters محار٠خاصة + + + PasswordWidget - Password Quality: %1 - جودة كلمة المرور: %1 + Passwords do not match + + + + Passwords match so far + + + + Toggle Password (%1) + عرض كلمة المرور (Ùª1) + + + Generate Password (%1) + + + + Warning: Caps Lock enabled! + + + + Quality: %1 + Poor @@ -6027,6 +6739,10 @@ Do you want to overwrite it? Password quality ممتازة + + Toggle password visibility using Control + H. Open the password generator using Control + G. + + PickcharsDialog @@ -6047,7 +6763,7 @@ Do you want to overwrite it? QMessageBox Overwrite - + الكتابة Ùوقه Delete @@ -6055,11 +6771,11 @@ Do you want to overwrite it? Move - + تحريك Empty - + ØªÙØ±ÙŠØº Remove @@ -6067,7 +6783,7 @@ Do you want to overwrite it? Skip - + تخطي Disable @@ -6075,10 +6791,14 @@ Do you want to overwrite it? Merge - + دمج Continue + استمرار + + + Continue with weak password @@ -6178,7 +6898,7 @@ Do you want to overwrite it? Notes for the entry. - + ملاحظات للإدخال. Notes @@ -6210,7 +6930,7 @@ Do you want to overwrite it? Enter password for new entry: - + أدخل كلمة المرور Ù„Ù„Ù…ÙØ¯Ø®Ù„ الجديد: Writing the database failed %1. @@ -6218,7 +6938,7 @@ Do you want to overwrite it? Successfully added entry %1. - + تمت Ø¥Ø¶Ø§ÙØ© الإدخال Ùª1 بنجاح. Adds a new group to a database. @@ -6230,11 +6950,11 @@ Do you want to overwrite it? Group %1 already exists! - + المجموعة Ùª1 موجودة Ø¨Ø§Ù„ÙØ¹Ù„! Group %1 not found. - + لم يتم العثور على المجموعة Ùª1. Successfully added group %1. @@ -6254,23 +6974,23 @@ Do you want to overwrite it? okon-cli - + okon-cli Analyze passwords for weaknesses and problems. - + تحليل كلمات المرور بحثا عن نقاط الضع٠والمشاكل. Cannot find HIBP file: %1 - + لا يمكن العثور على مل٠HIBPØœ: Ùª1 Evaluating database entries using okon… - + تقييم إدخالات قاعدة البيانات باستخدام okon ... Failed to open HIBP file %1: %2 - + ÙØ´Ù„ ÙØªØ­ مل٠HIBPØœ Ùª1: Ùª2 Evaluating database entries against HIBP file, this will take a while… @@ -6278,15 +6998,15 @@ Do you want to overwrite it? Password for '%1' has been leaked %2 time(s)! - + تم تسريب كلمة مرور لـ'%1' Ùª2 مرة!تم تسريب كلمة مرور لـ'%1' مرة واحدة!تم تسريب كلمة مرور لـ'%1' مرتين!تم تسريب كلمة مرور لـ'%1' Ùª2 مرات!تم تسريب كلمة مرور لـ'%1' Ùª2 مرة!تم تسريب كلمة مرور لـ'%1' Ùª2 مرة! Password for '%1' has been leaked! - + تم تسريب كلمة مرور لـ'%1'! Export an attachment of an entry. - + تصدير مرÙÙ‚ إدخال. Path of the entry with the target attachment. @@ -6294,31 +7014,31 @@ Do you want to overwrite it? Name of the attachment to be exported. - + اسم المرÙÙ‚ المراد تصديره. Path to which the attachment should be exported. - + المسار الذي يجب تصدير المرÙÙ‚ إليه. Could not find entry with path %1. - + تعذر العثور على إدخال مع المسار Ùª1. Could not find attachment with name %1. - + تعذر العثور على مرÙÙ‚ بالاسم Ùª1. No export target given. Please use '--stdout' or specify an 'export-file'. - + لم يتم إعطاء هد٠للتصدير. الرجاء استخدام '--stdout' أو تحديد 'export-file'. Could not open output file %1. - + تعذر ÙØªØ­ مل٠الإخراج Ùª 1. Successfully exported attachment %1 of entry %2 to %3. - + تم تصدير المرÙÙ‚ Ùª1 من الإدخال Ùª2 إلى Ùª3 بنجاح. Overwrite existing attachments. @@ -6326,39 +7046,39 @@ Do you want to overwrite it? Imports an attachment to an entry. - + يستورد مرÙÙ‚ إلى إدخال. Path of the entry. - + مسار الإدخال. Name of the attachment to be added. - + اسم المرÙÙ‚ المراد Ø¥Ø¶Ø§ÙØªÙ‡. Path of the attachment to be imported. - + مسار المرÙÙ‚ المراد استيراده. Attachment %1 already exists for entry %2. - + المرÙÙ‚ Ùª1 موجود Ø¨Ø§Ù„ÙØ¹Ù„ للإدخال Ùª2. Could not open attachment file %1. - + تعذر ÙØªØ­ مل٠المرÙÙ‚ Ùª 1. Successfully imported attachment %1 as %2 to entry %3. - + تم استيراد المرÙÙ‚ Ùª1 كـ Ùª2 إلى الإدخال Ùª3 بنجاح. Remove an attachment of an entry. - + إزالة مرÙÙ‚ إدخال. Name of the attachment to be removed. - + اسم المرÙÙ‚ المراد إزالته. Successfully removed attachment %1 from entry %2. @@ -6428,15 +7148,15 @@ Do you want to overwrite it? Clearing the clipboard in %1 second(s)... - + مسح Ø§Ù„Ø­Ø§ÙØ¸Ø© ÙÙŠ Ùª1 ثانية...مسح Ø§Ù„Ø­Ø§ÙØ¸Ø© ÙÙŠ Ùª1 ثانية...مسح Ø§Ù„Ø­Ø§ÙØ¸Ø© ÙÙŠ Ùª1 ثانيتين...مسح Ø§Ù„Ø­Ø§ÙØ¸Ø© ÙÙŠ Ùª1 ثوان...مسح Ø§Ù„Ø­Ø§ÙØ¸Ø© ÙÙŠ Ùª1 ثانية...مسح Ø§Ù„Ø­Ø§ÙØ¸Ø© ÙÙŠ Ùª1 ثانية... Clipboard cleared! - + تم مسح Ø§Ù„Ø­Ø§ÙØ¸Ø©! Close the currently opened database. - + أغلق قاعدة البيانات Ø§Ù„Ù…ÙØªÙˆØ­Ø© حاليا. Display this help. @@ -6474,6 +7194,10 @@ Do you want to overwrite it? Too many arguments provided. + + Path of the database. + مسار قاعدة البيانات. + Target decryption time in MS for the database. @@ -6482,6 +7206,11 @@ Do you want to overwrite it? time + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + + Set the key file for the database. @@ -6492,11 +7221,7 @@ Do you want to overwrite it? Create a new database. - - - - Path of the database. - مسار قاعدة البيانات. + إنشاء قاعدة بيانات جديدة. Invalid decryption time %1. @@ -6540,6 +7265,158 @@ Do you want to overwrite it? Successfully created new database. + تم إنشاء قاعدة بيانات جديدة بنجاح. + + + Unset the password for the database. + + + + Unset the key file for the database. + + + + Edit a database. + حرّر قاعدة بيانات. + + + Cannot use %1 and %2 at the same time. + + + + Could not change the database key. + تعذر تغيير Ù…ÙØªØ§Ø­ قاعدة البيانات. + + + Database was not modified. + لم يتم تعديل قاعدة البيانات. + + + Writing the database failed: %1 + ÙØ´Ù„ت كتابة قاعدة البيانات: %1 + + + Successfully edited the database. + تم تحرير قاعدة البيانات بنجاح. + + + Cannot remove password: The database does not have a password. + لا يمكن إزالة كلمة المرور: لا تحتوي قاعدة البيانات على كلمة مرور. + + + Cannot remove file key: The database does not have a file key. + + + + Loading the new key file failed: %1 + + + + Found unexpected Key type %1 + + + + Cannot remove all the keys from a database. + + + + Show a database's information. + + + + UUID: + + + + Name: + الاسم: + + + Description: + الوصÙ: + + + Cipher: + + + + KDF: + + + + Recycle bin is enabled. + + + + Recycle bin is not enabled. + + + + Location + + + + Database created + + + + Last saved + + + + Unsaved changes + + + + yes + نعم + + + no + + + + Number of groups + + + + Number of entries + عدد الإدخالات + + + Number of expired entries + عدد المدخلات منتهية الصلاحية + + + Unique passwords + + + + Non-unique passwords + + + + Maximum password reuse + + + + Number of short passwords + + + + Number of weak passwords + عدد كلمات المرور Ø§Ù„Ø¶Ø¹ÙŠÙØ© + + + Entries excluded from reports + + + + Average password length + + + + %1 characters @@ -6563,7 +7440,7 @@ Do you want to overwrite it? Invalid word count %1 - + عدد كلمات غير صالح Ùª1 The word list is too small (< 1000 items) @@ -6591,15 +7468,11 @@ Do you want to overwrite it? Enter new password for entry: - - - - Writing the database failed: %1 - + أدخل كلمة مرور جديدة Ù„Ù„Ù…ÙØ¯Ø®Ù„: Successfully edited entry %1. - + تم حذ٠تعديل الإدخالة Ùª1 بنجاح. Perform advanced analysis on the password. @@ -6747,7 +7620,7 @@ Do you want to overwrite it? Use uppercase characters - + استخدام الأحر٠الكبيرة Use numbers @@ -6811,7 +7684,7 @@ Do you want to overwrite it? Path of the new database. - + مسار قاعدة البيانات الجديدة. Unable to import XML database: %1 @@ -6821,106 +7694,6 @@ Do you want to overwrite it? Successfully imported database. - - Show a database's information. - - - - UUID: - - - - Name: - الاسم: - - - Description: - الوصÙ: - - - Cipher: - - - - KDF: - - - - Recycle bin is enabled. - - - - Recycle bin is not enabled. - - - - Location - - - - Database created - - - - Last saved - - - - Unsaved changes - - - - yes - - - - no - - - - Number of groups - - - - Number of entries - - - - Number of expired entries - - - - Unique passwords - - - - Non-unique passwords - - - - Maximum password reuse - - - - Number of short passwords - - - - Number of weak passwords - - - - Entries excluded from reports - - - - Average password length - - - - %1 characters - - Unknown command %1 @@ -7014,11 +7787,11 @@ Available commands: Database was not modified by merge operation. - + لم يتم تعديل قاعدة البيانات من خلال عملية الدمج. Moves an entry to a new group. - + ينقل Ù…ÙØ¯Ø®Ù„ إلى مجموعة جديدة. Path of the entry to move. @@ -7058,7 +7831,7 @@ Available commands: Successfully deleted entry %1. - + تم Ø­Ø°Ù Ø§Ù„Ù…ÙØ¯Ø®Ù„ Ùª1 بنجاح. Path of the group to remove. @@ -7092,6 +7865,10 @@ Available commands: Show the protected attributes in clear text. + + Show all the attributes of the entry. + إظهار جميع سمات الإدخال. + Show the attachments of the entry. @@ -7138,7 +7915,7 @@ Available commands: Enter password to unlock %1: - + أدخل كلمة المرور لإلغاء Ù‚ÙÙ„ Ùª1: Failed to load key file %1: %2 @@ -7160,8 +7937,8 @@ Please consider generating a new key file. - Please present or touch your YubiKey to continue… - + Please present or touch your YubiKey to continue. + يرجى تقديم أو لمس YubiKey الخاص بك للمتابعة Enter password to encrypt database (optional): @@ -7238,7 +8015,7 @@ Please consider generating a new key file. Password has expired - + انتهت صلاحية كلمة المرور Password expiry was %1 @@ -7246,11 +8023,11 @@ Please consider generating a new key file. Password expires on %1 - + تنتهي صلاحية كلمة المرور ÙÙŠ Ùª1 Password is about to expire - + ستنتهي صلاحية كلمة المرور Password expires in %1 day(s) @@ -7258,7 +8035,7 @@ Please consider generating a new key file. Password will expire soon - + ستنتهي صلاحية كلمة المرور قريبا Version %1 @@ -7306,11 +8083,11 @@ Kernel: %3 %4 YubiKey - + YubiKey Quick Unlock - + ÙØªØ­ سريع Secret Service Integration @@ -7318,7 +8095,7 @@ Kernel: %3 %4 None - + لا شيء Enabled extensions: @@ -7330,7 +8107,7 @@ Kernel: %3 %4 about %1 month(s) - + حوالي Ùª1 شهرحوالي Ùª1 شهر (أشهر)حوالي شهرينحوالي Ùª1 أشهرحوالي Ùª1 شهرحوالي Ùª1 شهر %1 week(s) @@ -7342,14 +8119,14 @@ Kernel: %3 %4 %1 hour(s) - + Ùª1 ساعةساعةساعتين٪1 ساعات٪1 ساعة٪1 ساعة %1 minute(s) - Botan library must be at least 2.11.x, found %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 @@ -7450,7 +8227,7 @@ Kernel: %3 %4 Clearing the clipboard in %1 second(s)… - + مسح Ø§Ù„Ø­Ø§ÙØ¸Ø© ÙÙŠ Ùª1 ثانية…مسح Ø§Ù„Ø­Ø§ÙØ¸Ø© ÙÙŠ Ùª1 ثانية…مسح Ø§Ù„Ø­Ø§ÙØ¸Ø© ÙÙŠ Ùª1 ثانيتين…مسح Ø§Ù„Ø­Ø§ÙØ¸Ø© ÙÙŠ Ùª1 ثوان…مسح Ø§Ù„Ø­Ø§ÙØ¸Ø© ÙÙŠ Ùª1 ثانية…مسح Ø§Ù„Ø­Ø§ÙØ¸Ø© ÙÙŠ Ùª1 ثانية… Group @@ -7470,7 +8247,7 @@ Kernel: %3 %4 TOTP - + باسورد مؤقت Icon @@ -7491,16 +8268,16 @@ Kernel: %3 %4 %1 ms milliseconds - + %1 مل.ثانية%1 مل.ثانية%1 مل.ثانية%1 مل.ثانية%1 مل.ثانية%1 مل.ثانية %1 s seconds - + %1 ثانيةثانية واحدةثانيتان%1 ثواني%1 ثانية%1 ثانية Do you really want to delete the entry "%1" for good? - + هل تريد حقًا حذ٠الإدخال "%1" بشكل دائم؟ Do you really want to delete %n entry(s) for good? @@ -7532,7 +8309,7 @@ Kernel: %3 %4 User name - + اسم المستخدم Browser Statistics @@ -7580,7 +8357,7 @@ Kernel: %3 %4 lock all open databases - + Ù‚ÙÙ„ جميع قواعد البيانات Ø§Ù„Ù…ÙØªÙˆØ­Ø© key file of the database @@ -7590,22 +8367,22 @@ Kernel: %3 %4 read password of the database from stdin قراءة كلمة سر قاعدة البيانات من الدخل القياسي "stdin" - - allow app screen recordering and screenshots - - Locked databases. Database failed to lock. - + ÙØ´Ù„ Ù‚ÙÙ„ قاعدة البيانات. Another instance of KeePassXC is already running. نسخة أخرى من KeePassXC قيد التشغيل. + + KeePassXC is not running. No open database to lock + KeePassXC لا يعمل. لا توجد قاعدة بيانات Ù…ÙØªÙˆØ­Ø© لقÙلها + Fatal error while testing the cryptographic functions. خطأ ÙØ§Ø¯Ø­ أثناء اختبار وظائ٠التشÙير. @@ -7614,18 +8391,14 @@ Kernel: %3 %4 KeePassXC - Error KeePassXC - خطأ - - Warning: Failed to prevent screenshots on a top level window! - - Database password: - + كلمة مرور قاعدة البيانات: Invalid Settings TOTP - + إعدادات غير صالحة Invalid Key @@ -7640,6 +8413,224 @@ Kernel: %3 %4 Failed to sign challenge using Windows Hello. + + Warning: Failed to block screenshot capture on a top-level window. + تحذير: ÙØ´Ù„ حظر التقاط لقطة الشاشة ÙÙŠ Ù†Ø§ÙØ°Ø© المستوى الأعلى. + + + Invalid Cipher + + + + Invalid KDF + KDF غير صالح + + + Access to all entries is denied + + + + allow screenshots and app recording (Windows/macOS) + السماح بلقطات الشاشة وتسجيل التطبيق (Windows/macOS) + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + + + + Credential is excluded + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Passkeys + + + + AES initialization failed + + + + AES encrypt failed + + + + Failed to store in Linux Keyring + + + + Polkit returned an error: %1 + + + + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + + + + Failed to init KeePassXC crypto. + + + + Failed to encrypt key data. + + + + Failed to get Windows Hello credential. + + + + Failed to decrypt key data. + + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length + + QtIOCompressor @@ -7677,33 +8668,21 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - - - - Show only entries which have URL set - - - - Show only entries which have browser settings in custom data - - Double-click entries to edit. - + انقر الإدخالات نقرا مزدوجا لتحريرها. List of entry URLs - + قائمة روابط URL الإدخالات Entry has no URLs set - + لم يتم تعيين روابط URL للإدخال Allowed URLs - + روابط URL المسموح بها Entry has no Browser Integration settings @@ -7711,7 +8690,7 @@ Kernel: %3 %4 Denied URLs - + روابط URL المرÙوضة (Excluded) @@ -7727,7 +8706,7 @@ Kernel: %3 %4 No entries with a URL, or none has browser extension settings saved. - + لا توجد إدخالات تحتوي على عنوان URLØŒ أو لم ÙŠÙØ­Ùظ إعدادات امتداد Ø§Ù„Ù…ØªØµÙØ­. Title @@ -7735,38 +8714,46 @@ Kernel: %3 %4 Path - + مسار URLs - + روابط URL Edit Entry… - + تعديل الإدخالة… Delete Entry(s)… - + حذ٠الإدخال…حذ٠الإدخال…حذ٠الإدخالان…حذ٠الإدخالات…حذ٠الإدخالات…حذ٠الإدخالات… Exclude from reports + + Only show entries that have a URL + + + + Only show entries that have been explicitly allowed or denied + + + + Show expired entries + + + + (Expired) + + ReportsWidgetHealthcheck - - Exclude expired entries from the report - - - - Also show entries that have been excluded from reports - - Hover over reason to show additional details. Double-click entries to edit. - + تحوم Ùوق السبب لعرض ØªÙØ§ØµÙŠÙ„ إضاÙية. قم بالنقر المزدوج على الإدخالات للتعديل. Bad @@ -7775,7 +8762,7 @@ Kernel: %3 %4 Bad — password must be changed - + سيئ - يجب تغيير كلمة المرور Poor @@ -7784,7 +8771,7 @@ Kernel: %3 %4 Poor — password should be changed - + ضعي٠- يجب تغيير كلمة المرور Weak @@ -7817,7 +8804,7 @@ Kernel: %3 %4 Path - + مسار Score @@ -7829,16 +8816,28 @@ Kernel: %3 %4 Edit Entry… - + تعديل الإدخالة… Delete Entry(s)… - + حذ٠الإدخال…حذ٠الإدخال…حذ٠الإدخالان…حذ٠الإدخالات…حذ٠الإدخالات…حذ٠الإدخالات… Exclude from reports + + Show expired entries + + + + Show entries that have been excluded from reports + + + + (Expired) + + ReportsWidgetHibp @@ -7868,7 +8867,7 @@ Kernel: %3 %4 Path - + مسار Password exposed… @@ -7885,37 +8884,37 @@ Kernel: %3 %4 once Password exposure amount - + مرة up to 10 times Password exposure amount - + حتى 10 مرات up to 100 times Password exposure amount - + حتى 100 مرة up to 1000 times Password exposure amount - + حتى 1000 مرة up to 10,000 times Password exposure amount - + حتى 10,000 مرة up to 100,000 times Password exposure amount - + حتى 100,000 مرة up to a million times Password exposure amount - + حتى مليون مرة millions of times @@ -7924,17 +8923,76 @@ Kernel: %3 %4 Edit Entry… - + تعديل الإدخالة… Delete Entry(s)… - + حذ٠الإدخال…حذ٠الإدخال…حذ٠الإدخالان…حذ٠الإدخالات…حذ٠الإدخالات…حذ٠الإدخالات… Exclude from reports + + ReportsWidgetPasskeys + + Export + تصدير + + + Import + إستيراد + + + List of entry URLs + قائمة روابط URL الإدخالات + + + Please wait, list of entries with Passkeys is being updated… + + + + No entries with Passkeys. + + + + Title + العنوان + + + Path + مسار + + + Username + اسم المستخدم + + + URLs + روابط URL + + + Edit Entry… + تعديل الإدخال… + + + Delete Entry(s)… + حذ٠الإدخال…حذ٠الإدخال…حذ٠الإدخالان…حذ٠الإدخالات…حذ٠الإدخالات…حذ٠الإدخالات… + + + Relying Party + + + + Show expired entries + + + + (Expired) + + + ReportsWidgetStatistics @@ -7979,7 +9037,7 @@ Kernel: %3 %4 yes - + نعم no @@ -7995,11 +9053,11 @@ Kernel: %3 %4 Number of entries - + عدد الإدخالات Number of expired entries - + عدد المدخلات منتهية الصلاحية The database contains entries that have expired. @@ -8035,7 +9093,7 @@ Kernel: %3 %4 Number of weak passwords - + عدد كلمات المرور Ø§Ù„Ø¶Ø¹ÙŠÙØ© Recommend using long, randomized passwords with a rating of 'good' or 'excellent'. @@ -8113,55 +9171,55 @@ Kernel: %3 %4 SearchHelpWidget Search Help - + تعليمات البحث Search terms are as follows: [modifiers][field:]["]term["] - + مصطلحات البحث هي كما يلي: [المتغيرات] [الحقل: ] ["] مصطلح ["] Every search term must match (ie, logical AND) - + يجب أن يتطابق كل مصطلح بحث (أي، AND منطقية) Modifiers - + المعدّلات exclude term from results - + استبعاد مصطلح من النتائج match term exactly - + طابق مصطلح بالضبط use regex in term - + استخدم تعبير نمطي ÙÙŠ المصطلح Fields - + الحقول Term Wildcards - + أحر٠بدل المصطلح match anything - + طابق أي شيء match one - + طابق واحد logical OR - + OR المنطقية Examples - + أمثلة @@ -8172,12 +9230,16 @@ Kernel: %3 %4 Search Help - + تعليمات البحث + + + Save Search + Ø­ÙØ¸ البحث Search (%1)… Search placeholder text, %1 is the keyboard shortcut - + بحث (%1)... Case sensitive @@ -8196,7 +9258,7 @@ Kernel: %3 %4 PID - + هوية العملية DBus Address @@ -8211,7 +9273,7 @@ Kernel: %3 %4 SettingsDatabaseModel File Name - + اسم المل٠Group @@ -8226,7 +9288,7 @@ Kernel: %3 %4 SettingsWidgetFdoSecrets Options - + خيارات Enable KeepassXC Freedesktop.org Secret Service integration @@ -8290,7 +9352,7 @@ Kernel: %3 %4 Save current changes to activate the plugin and enable editing of this section. - + Ø­ÙØ¸ التغييرات الحالية Ù„ØªÙØ¹ÙŠÙ„ المكوّن الإضاÙÙŠ ÙˆØªÙØ¹ÙŠÙ„ تعديل هذا القسم. @@ -8305,7 +9367,7 @@ Kernel: %3 %4 Allow import - + السماح بالاستيراد Allow KeeShare exports @@ -8313,11 +9375,11 @@ Kernel: %3 %4 Allow export - + السماح بالتصدير Only show warnings and errors - + إظهار التحذيرات والأخطاء Ùقط Own certificate @@ -8374,7 +9436,7 @@ Kernel: %3 %4 Imported from %1 - + تم الاستيراد من Ùª1 Multiple import source path to %1 in %2 @@ -8397,18 +9459,64 @@ Kernel: %3 %4 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All - + Clear Search + إمسح البحث + + + All Entries + كل الإدخالات Expired - + منتهية الصلاحية Weak Passwords + كلمات مرور Ø¶Ø¹ÙŠÙØ© + + + + TagView + + Remove Search + + + + Remove Tag + + + + Confirm Remove Tag + + + + Remove tag "%1" from all entries in this database? @@ -8444,7 +9552,7 @@ Kernel: %3 %4 Closing in %1 seconds. - + الاغلاق ÙÙŠ Ùª1 ثواني. @@ -8528,7 +9636,7 @@ Example: JBSWY3DPEHPK3PXP URLEdit Invalid URL - + URL غير صالح @@ -8568,44 +9676,36 @@ Example: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database إبدأ بتخزين كلمات مرورك بأمان ÙÙŠ قاعدة بيانات KeePassXC - - Create new database - أنشىء قاعدة بيانات جديدة - - - Open existing database - ÙØªØ­ قاعدة بيانات حالية - - - Import from KeePass 1 - استيراد من KeePass 1 - - - Import from 1Password - - - - Import from CSV - استيراد من CSV - Recent databases Ø§Ù„Ù…ÙØªÙˆØ­Ø© مؤخرًا Open a recent database - + ÙØªØ­ قاعدة بيانات Ù…ÙØªÙˆØ­Ø© مؤخرًا Welcome to KeePassXC %1 مرحبا بك ÙÙŠ KeePassXC %1 + + Create Database + + + + Open Database + + + + Import File + + WinUtils Invalid key code - + رمز Ø§Ù„Ù…ÙØªØ§Ø­ غير صالح Global shortcut already registered to %1 @@ -8616,34 +9716,11 @@ Example: JBSWY3DPEHPK3PXP - - WindowsHello - - Failed to init KeePassXC crypto. - - - - Failed to encrypt key data. - - - - Failed to get Windows Hello credential. - - - - Failed to decrypt key data. - - - YubiKey - - %1 No interface, slot %2 - - General: - + عام: Could not find interface for hardware key with serial number %1. Please connect it to continue. @@ -8652,21 +9729,13 @@ Example: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - - - - Refresh - تحديث - Hardware key slot selection - + اختيار ÙØªØ­Ø© Ù…ÙØªØ§Ø­ الأجهزة Could not find any hardware keys! - + تعذر العثور على أي Ù…ÙØ§ØªÙŠØ­ الأجهزة! Selected hardware key slot does not support challenge-response! @@ -8692,40 +9761,29 @@ Example: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - - Detecting hardware keys… - + الكش٠عن Ù…ÙØ§ØªÙŠØ­ الأجهزة... No hardware keys detected + يم يتم الكش٠عن أي Ù…ÙØªØ§Ø­ الأجهزة + + + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> - - - YubiKeyInterface - %1 Invalid slot specified - %2 + Refresh hardware keys YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - - The YubiKey PCSC interface has not been initialized. - - Hardware key is currently in use. - - Could not find or access hardware key with serial number %1. Please present it to continue. @@ -8742,20 +9800,27 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + اضغط + + + Passive + USB Challenge-Response Key no interaction required + سلبي + YubiKeyInterfaceUSB Unknown - - - - (USB) %1 [%2] Configured Slot - %3 - - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - + مجهول Press @@ -8771,10 +9836,6 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. - - Hardware key is currently in use. - - Could not find hardware key with serial number %1. Please plug it in to continue. @@ -8791,5 +9852,15 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_bg.ts b/share/translations/keepassxc_bg.ts index 0575461b9..864a9fee5 100644 --- a/share/translations/keepassxc_bg.ts +++ b/share/translations/keepassxc_bg.ts @@ -11,7 +11,7 @@ Report bugs at: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> - Съобщаване за грешки: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> + Съобщаване на дефекти: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> KeePassXC is distributed under the terms of the GNU General Public License (GPL) version 2 or (at your option) version 3. @@ -23,11 +23,11 @@ Special thanks from the KeePassXC team go to debfx for creating the original KeePassX. - Специални благодарноÑти от екипа на KeePassXC отидете на debfx за Ñъздаването на Ð¾Ñ€Ð¸Ð³Ð¸Ð½Ð°Ð»Ð½Ð¸Ñ KeePassX. + Специални благодарноÑти от екипа на KeePassXC към debfx за Ñъздаването на Ð¾Ñ€Ð¸Ð³Ð¸Ð½Ð°Ð»Ð½Ð¸Ñ KeePassX. Contributors - Контрибутури + Сътрудници <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">See Contributions on GitHub</a> @@ -35,15 +35,15 @@ Debug Info - Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° отÑтранÑване на грешки + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° отÑтранÑване на дефекти Include the following information whenever you report a bug: - Включвайте Ñледната информациÑ, когато Ñъобщавате за грешка: + Когато Ñъобщавате за дефект включвайте Ñледната информациÑ: Copy to clipboard - Копиране в клипборда + Копиране в междинната памет @@ -54,7 +54,7 @@ Non-existing/inaccessible executable path. Please double-check the client is legit. - + ÐеÑъщеÑтвуващ/недоÑтъпен път към Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼Ð¸Ñ Ñ„Ð°Ð¹Ð». Уверете Ñе, че клиентът е доÑтоверен. <html><head/><body><p><span style=" font-weight:600;">%1 </span>is requesting access to the following entries:</p></body></html> @@ -66,7 +66,7 @@ PID - + PID Executable @@ -78,41 +78,41 @@ Details - - - - Remember - Запомни - - - Allow Selected - Разреши избраните + ПодробноÑти Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - + Решението ви ще бъде запомнено докато изиÑкващиÑÑ‚ клиент и KeePassXC работÑÑ‚. + + + Remember + ЗапомнÑне + + + Allow Selected + Разрешаване избраните Deny All && Future - + &ЗабранÑване на вÑички и за в бъдеще Allow All && &Future - + &Разрешаване на вÑички и за в бъдеще AccessControlDialog::DenyButton Deny for this program - + ЗабранÑване за приложението AgentSettingsWidget Enable SSH Agent integration - Включване на Ð¸Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð° SSH Agent + Включване на Ñъчетаване Ñ Ð°Ð³ÐµÐ½Ñ‚ на SSH Use Pageant @@ -122,13 +122,17 @@ Use OpenSSH Използване на OpenSSH + + Use both agents + Използване и на двата агента + SSH_AUTH_SOCK override - SSH_AUTH_SOCK презапиÑване + ПрезапиÑване на SSH_AUTH_SOCK SSH_AUTH_SOCK value - SSH_AUTH_SOCK ÑтойноÑÑ‚ + СтойноÑÑ‚ на SSH_AUTH_SOCK (empty) @@ -140,19 +144,15 @@ SSH_SK_PROVIDER override - + ПрезапиÑване на SSH_SK_PROVIDER No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. - ÐÑма SSH Agent Ñокет. Уверете, че ÑъщеÑтвува променлива на Ñредата SSH_AUTH_SOCK или Ñ Ð¿Ñ€ÐµÐ·Ð°Ð¿Ð¸ÑˆÐµÑ‚Ðµ. + Ðе е доÑтъпен Ñокет на агент на SSH. Уверете, че ÑъщеÑтвува променлива на Ñредата SSH_AUTH_SOCK или Ñ Ð¿Ñ€ÐµÐ·Ð°Ð¿Ð¸ÑˆÐµÑ‚Ðµ. SSH Agent connection is working! - SSH Agent връзката работи! - - - Use both agents - + Има връзка Ñ Ð°Ð³ÐµÐ½Ñ‚Ð° на SSH! @@ -169,13 +169,17 @@ Security СигурноÑÑ‚ + + This setting cannot be enabled when minimize on unlock is enabled. + ÐаÑтройката не може да бъде включена докато друга наÑтройка - Ñкриване на прозореца при отключване е включена. + Access error for config file %1 - Грешка при доÑтъп на ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» %1 + Грешка при доÑтъп до файла Ñ Ð½Ð°Ñтройките %1 Icon only - Само икона + Само пиктограма Text only @@ -183,11 +187,11 @@ Text beside icon - ТекÑÑ‚ до иконата + ТекÑÑ‚ до пиктограмите Text under icon - ТекÑÑ‚ под икона + ТекÑÑ‚ под пиктограмите Follow style @@ -199,31 +203,31 @@ Monochrome (light) - Монохромен(Ñветлъл) + Едноцветен (Ñветлъл) Monochrome (dark) - Монохромен(тъмен) + Едноцветен (тъмен) Colorful - Цветни + Цветен You must restart the application to set the new language. Would you like to restart now? - ТрÑбва да реÑтартирате приложението, за да наÑтроите нов език. Желаете ли да реÑтартирате Ñега? + За да наÑтроите нов език, приложението трÑбва да реÑтартира. Желаете ли приложението да реÑтартира Ñега? Reset Settings? - Да Ñе нулират наÑтройките? + Да бъдат ли нулирани наÑтройките? Are you sure you want to reset all general and security settings to default? - ÐаиÑтина ли иÑкате да нулирате ÑтойноÑтите по подразбиране на вÑички общи наÑтройки и наÑтройки за защита? + Желаете ли оÑновните наÑтройки и наÑтройките на ÑигурноÑтта да бъдат нулирани? Select backup storage directory - + Изберете папка, в коÑто да бъдат за запазвани резервните ÐºÐ¾Ð¿Ð¸Ñ @@ -238,58 +242,62 @@ Start only a single instance of KeePassXC - Започнете Ñамо една инÑÑ‚Ð°Ð½Ñ†Ð¸Ñ Ð½Ð° KeePassXC + Поддържане на един екземплÑÑ€ на KeePassXC Automatically launch KeePassXC at system startup - Ðвтоматично Ñтартиране на KeePassXC при Ñтартиране на ÑиÑтемата + Стартиране на KeePassXC заедно ÑÑŠÑ ÑиÑтемата Minimize window at application startup - Минимизиране на прозореца при Ñтартиране на приложението + Скриване на прозореца при отварÑне на приложението Minimize window after unlocking database - ÐамалÑване на прозореца Ñлед отключване на базата данни + Скриване на прозореца при отключване на хранилище Remember previously used databases - ЗапаметÑване на предишни използвани бази данни + ЗапомнÑне на поÑледно използваните + + + recent files + хранилища Load previously open databases on startup - Зареждане на поÑледно отворената бази данни при Ñтартиране + Зареждане на отворените хранилища при Ñтартиране Remember database key files and security dongles - Запомни файл-ключовете и защитните уÑтройÑтва + ЗапомнÑне на файловете-ключ и преноÑимите защитни уÑтройÑтва за хранилищата Check for updates at application startup once per week - Проверка за актуализации при Ñтартиране на приложението веднъж Ñедмично + Седмична проверка за обновÑване при Ñтартиране на приложението Include beta releases when checking for updates - Включване на бета верÑии при проверка за актуализации + При проверка за обновÑване да Ñе проверÑват и бета изданиÑта On database unlock, show entries that - + При отключване на хранилище Ñе показват запиÑите have expired On database unlock, show entries that... - + Ñ Ð¸Ð·Ñ‚ÐµÐºÐ»Ð° давноÑÑ‚ days On database unlock, show entries that will expire within %1 days - + дни will expire within On database unlock, show entries that... - + Ñ Ð´Ð°Ð²Ð½Ð¾ÑÑ‚ до File Management @@ -297,51 +305,51 @@ Automatically save after every change - Ðвтоматично запиÑване Ñлед вÑÑка промÑна + Ðвтоматично запазване Ñлед вÑÑка промÑна Automatically save when locking database - Запази автоматично при заключване на базата данни + Ðвтоматично запазване при заключване на хранилището Automatically save non-data changes when locking database - При заключване на базата данни, запази автоматично промените, които не заÑÑгат данните. + Ðвтоматично запазване на промени, които не Ñа Ñвързани Ñ Ð´Ð°Ð½Ð½Ð¸, при заключване на хранилището Automatically reload the database when modified externally - Ðвтоматично презареждане на базата данни при външно модифициране + Ðвтоматично презареждане на хранилището, ако е променено от друго приложение Backup database file before saving - Ðрхивиране на файла Ñ Ð±Ð°Ð·Ð°Ñ‚Ð° данни преди запиÑване + Резервно копие на хранилището преди запазване Backup destination - + Път към резервно копие Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". - + Указва меÑтонахождението на файла, Ñъдържащ резервното копие на хранилището. Където Ñе Ñреща низът „{DB_FILENAME}“ Ñе Ð·Ð°Ð¼ÐµÐ½Ñ Ñ Ð¸Ð¼ÐµÑ‚Ð¾ на файла на запазеното хранилище без разширението. {TIME:<format>} Ñе Ð·Ð°Ð¼ÐµÐ½Ñ Ñ Ð²Ñ€ÐµÐ¼ÐµÑ‚Ð¾ на Ñъздаване на резервното копие, повече на https://doc.qt.io/qt-5/qdatetime.html#toString. <format> връща формата на низа по подразбиране: „dd_MM_yyyy_hh-mm-ss“. {DB_FILENAME}.old.kdbx - + {DB_FILENAME}.old.kdbx Choose... - + Избиране… Use alternative saving method (may solve problems with Dropbox, Google Drive, GVFS, etc.) - + Използване на алтернативен метод за запазване (при проблеми Ñ Dropbox, Google Drive, GVFS, и Ñ‚.н.) Temporary file moved into place - + ВременниÑÑ‚ файл е премеÑтен на мÑÑтото Ñи Directly write to database file (dangerous) - + Директно пиÑане във файла на хранилището (опаÑно) Entry Management @@ -349,7 +357,7 @@ Use group icon on entry creation - Използване на груповата икона при Ñъздаване на Ð·Ð°Ð¿Ð¸Ñ + Ðовите запиÑи получават пиктограмата на групата Minimize when opening a URL @@ -357,7 +365,7 @@ Hide window when copying to clipboard - Скриване на прозореца при копиране в клипборда + Скриване на прозореца при копиране Minimize @@ -369,11 +377,11 @@ Favicon download timeout: - Таймаут за изтеглÑне на фавикон: + Изчакване при изтеглÑне на пиктограми: Website icon download timeout in seconds - Таймаут на изтеглÑнето на иконата на уеб Ñайта в Ñекунди + Изчакване при изтеглÑне на пиктограмата на Ñтраницата, в Ñекунди sec @@ -390,7 +398,7 @@ Movable toolbar - ПремеÑтваща Ñе лента Ñ Ð¸Ð½Ñтрументи + ПремеÑтваема лента Ñ Ð¸Ð½Ñтрументи Language selection @@ -402,15 +410,19 @@ (restart program to activate) - (реÑтартиране програма за активиране) + (необходим реÑтарт) Toolbar button style: Стил на бутоните от лентата Ñ Ð¸Ð½Ñтрументи: + + Show passwords in color + Показване на паролите в цвÑÑ‚ + Use monospaced font for notes - Използване на еднопроÑтранÑтвен шрифт за бележките + Използване на равноширок шрифт за бележките Minimize instead of app exit @@ -418,15 +430,15 @@ Show a system tray icon - Показване на икона в ÑиÑÑ‚ÐµÐ¼Ð½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ» + Показване на пиктограма в ÑиÑÑ‚ÐµÐ¼Ð½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ» Tray icon type - Тип иконата в ÑиÑтемната лента + Вид на пиктограмата в ÑиÑÑ‚ÐµÐ¼Ð½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ» Tray icon type: - Тип иконата в ÑиÑтемната лента: + Вид на пиктограмата в ÑиÑÑ‚ÐµÐ¼Ð½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ»: Hide window to system tray when minimized @@ -434,75 +446,75 @@ Reset settings to default… - Ðулиране на наÑтройките по подразбиране... + Ðулиране на наÑтройките... Auto-Type - Auto-Type + Ðвтоматично въвеждане Use entry title to match windows for global Auto-Type - Използвайте заглавието на запиÑа, за да ÑъответÑтвате на прозорците за Ð³Ð»Ð¾Ð±Ð°Ð»Ð½Ð¸Ñ Auto-Type + Заглавието на запиÑа да Ñъвпада Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†Ð° при автоматично въвеждане Use entry URL to match windows for global Auto-Type - Използвайте URL на запиÑа, за да ÑъответÑтвате на прозорците за Ð³Ð»Ð¾Ð±Ð°Ð»Ð½Ð¸Ñ Auto-Type + ÐдреÑÑŠÑ‚ на запиÑа да Ñъвпада Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†Ð° при автоматично въвеждане Always ask before performing Auto-Type - Винаги питай преди да извършиш Auto-Type + Винаги да пита преди автоматично въвеждане Hide expired entries from Auto-Type - Скрий изтекли запиÑи от автоматично попълване + Скриване на запиÑите Ñ Ð¸Ð·Ñ‚ÐµÐºÐ»Ð° давноÑÑ‚ при автоматично въвеждане Re-lock previously locked database after performing Auto-Type - Повторно заключване на предварително заключена база данни Ñлед извършване на Auto-Type + Повторно заключване на преди това заключено хранилище Ñлед автоматично въвеждане Auto-Type start delay: - ЗабавÑне на Auto-Type включването: + Изчакване преди автоматично въвеждане: Global Auto-Type shortcut: - Глобален Auto-Type прÑк път: + Клавишна ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ð·Ð° автоматично въвеждане: Auto-type start delay milliseconds - ЗабавÑне на auto-type Ñтарта милиÑекунди + Изчакване преди автоматично въвеждане, милиÑекунди ms Milliseconds - ms + Ð¼Ñ Auto-Type typing delay: - ЗабавÑне на auto-type въвеждането: + Изчакване преди автоматично въвеждане: Global auto-type shortcut - Глобален прÑк път за auto-type + Клавишна ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ð·Ð° автоматично въвеждане Auto-type character typing delay milliseconds - ЗабавÑне на auto-type въвеждане на знаци милиÑекунди + Изчакване преди въвеждане на знак, милиÑекунди Remember last typed entry for: - + ЗапомнÑне на поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÐ½ Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°: ApplicationSettingsWidgetSecurity Timeouts - Таймаути + Времена на изчакване Database lock timeout seconds - Секунди за заключване на базата данни + Изчакване преди заключване на хранилище, Ñекунди sec @@ -511,7 +523,7 @@ Clear clipboard after - ИзчиÑтване на клипборда Ñлед + ИзчиÑтване междинна памет Ñлед Clear search query after @@ -524,11 +536,11 @@ Clipboard clear seconds - ИзчиÑтване на клипборда Ñекунди + ИзчиÑтване на междинна памет, Ñекунди Lock databases after inactivity of - Заключване на бази данни Ñлед бездейÑтвие от + Заключване на хранилищата Ñлед бездейÑтвие от Convenience @@ -536,15 +548,15 @@ Enable database quick unlock (Touch ID / Windows Hello) - + Бързо отключване на хранилище (Touch ID / Windows Hello) Lock databases when session is locked or lid is closed - Заключване на базите данни при заключена ÑеÑÐ¸Ñ Ð¸Ð»Ð¸ затварÑне на капака + Заключване на хранилищата при заключена ÑеÑÐ¸Ñ Ð¸Ð»Ð¸ затварÑне на капака Lock databases after minimizing the window - Заключи базите данни Ñлед минимизиране на прозореца + Заключи на хранилищата Ñлед минимизиране на прозореца Require password repeat when it is visible @@ -552,19 +564,19 @@ Hide passwords when editing them - Скриване на пароли при редактирането им + Скриване на паролите при променÑнето им Use placeholder for empty password fields - Използване на контейнер за празни полета за парола + Използване на замеÑтител за празните полета за парола Hide passwords in the entry preview panel - Скриване на паролите в панела за преглед на запиÑи + Премахване на паролите от панела за преглед на запиÑи Hide entry notes by default - Скриване на бележките по подразбиране + Бележките Ñа Ñкрити по подразбиране Move entries to recycle bin without confirmation @@ -572,7 +584,7 @@ Enable double click to copy the username/password entry columns - + Двукратното щракване копира потребителÑко име/парола Privacy @@ -580,67 +592,76 @@ Use DuckDuckGo service to download website icons - Използвайте DuckDuckGo за изтеглÑне на иконите на уебÑайта + Иконите да Ñе изтеглÑÑ‚ през DuckDuckGo + + + Hide TOTP in the entry preview panel + Премахване на TOTP от панела за преглед на запиÑи AutoType The requested Auto-Type sequence cannot be used due to an error: - + ЗаÑвената поÑледователноÑÑ‚ за автоматично въвеждане не може да бъде използвана поради грешка: Auto-Type Error - + Грешка при автоматично въвеждане Permission Required - Ðужно е разрешение + Ðеобходими Ñа права за доÑтъп KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. - KeePassXC изиÑква разрешение за доÑтъпноÑÑ‚, за да Ñе извърши базово ниво на Auto-Type. Ðко вече Ñте дали разрешение, може да Ñе наложи да реÑтартирате KeePassXC. + За да извършва оÑновно ниво на автоматично въвеждане KeePassXC изиÑква разрешението за доÑтъпноÑÑ‚. Ðко вече Ñте го дали, може да Ñе наложи да реÑтартирате KeePassXC. KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. - KeePassXC изиÑква разрешението Accessibility and Screen Recorder, за да Ñе извърши глобален Auto-Type. За да намерите запиÑи, е необходимо да използвате заглавието на прозореца. Ðко вече Ñте дали разрешение, може да Ñе наложи да реÑтартирате KeePassXC. + За да извършва глобално автоматично въвеждане KeePassXC изиÑква разрешението за доÑтъпноÑÑ‚ и запиÑване на екрана. За да Ñе намират запиÑи като Ñе използва заглавието на прозореца е необходимо запиÑване на екрана. Ðко вече Ñте го дали, може да Ñе наложи да реÑтартирате KeePassXC. Invalid entry provided - + ÐедопуÑтим Ð·Ð°Ð¿Ð¸Ñ Bracket imbalance detected, found extra { or } - + ÐеÑъответÑтващ брой фигурни Ñкоби, има излишни { или } Too many repetitions detected, max is %1: %2 - + Открито е неÑъответÑтващо количеÑтво повторениÑ, допуÑкат Ñе %1: %2 Very slow key press detected, max is %1: %2 - + Открито е твърде бавно натиÑкане на клавиш, макÑимум %1: %2 Very long delay detected, max is %1: %2 - + Открито е продължително изчакване, макÑимум %1: %2 + + + Entry does not have attribute for PICKCHARS: %1 + ЗапиÑÑŠÑ‚ нÑма атрибут за PICKCHARS: %1 Invalid conversion type: %1 - + Ðеправилен тип на преобразуване: %1 Invalid conversion syntax: %1 - + Ðеправилен ÑинтакÑÐ¸Ñ Ð½Ð° преобразуване: %1 Invalid regular expression syntax %1 %2 - + Ðеправилен ÑинтакÑÐ¸Ñ Ð½Ð° регулÑрен израз %1 +%2 Invalid placeholder: %1 - + Ðеправилен замеÑтител: %1 @@ -674,7 +695,7 @@ Username - Портебител + Потребител Sequence @@ -685,30 +706,30 @@ AutoTypePlatformX11 Trying to send invalid keysym. - + Опит за изпращане на неправилен Ñимвол Sequence aborted: Caps Lock is on - + ПрекъÑната поредица: режим Caps Lock е включен Sequence aborted: Modifier keys held by user - + Поредицата е прекъÑната: задържани клавиши-модификатори от Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Unable to get valid keycode for key: - + ÐеуÑпешно получаване на правилен код за клавишите: AutoTypeSelectDialog Auto-Type - KeePassXC - Auto-Type - KeePassXC + Ðвтоматично въвеждане - KeePassXC Double click a row to perform Auto-Type or find an entry using the search: - + Щракнете двукратно върху ред, за автоматично въвеждане или намерете запиÑ, като използвате търÑачката: <p>You can use advanced search queries to find any entry in your open databases. The following shortcuts are useful:<br/> @@ -717,19 +738,24 @@ Ctrl+1 - Type username<br/> Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> - + <p>За да намерите определен Ð·Ð°Ð¿Ð¸Ñ Ð² отворените хранилища, може да използвате разширени заÑвки за търÑене. Следните клавишни комбинации ще ви бъдат полезни:<br/> +Ctrl+F - Превключва търÑенето<br/> +Ctrl+1 - Въвеждане на потребителÑко име<br/> +Ctrl+2 - Въвеждане на парола<br/> +Ctrl+3 - Въвеждане на TOTP<br/> +Ctrl+4 - Използване на виртуална клавиатура (Ñамо за Windows)</p> Search all open databases - + ТърÑене във вÑички отворени хранилища Search… - + ТърÑене… Type Sequence - + Въведете поÑледователноÑÑ‚ Cancel @@ -737,38 +763,38 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Type {USERNAME} - + Въведете {USERNAME} Type {PASSWORD} - + Въведете {PASSWORD} Type {TOTP} - + Въведете {TOTP} Copy Username - + Копиране на потребителÑко име Copy Password - + Копиране на парола Copy TOTP - + Копиране на TOTP Use Virtual Keyboard - + Използване на виртуална клавиатура BrowserAccessControlDialog KeePassXC - Browser Access Request - KeePassXC - заÑвка за доÑтъп до браузъра + KeePassXC - заÑвка за доÑтъп от мрежов четец %1 is requesting access to the following entries: @@ -776,38 +802,38 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Remember access to checked entries - Запомни доÑтъпа до избраните запиÑи + ЗапомнÑне на доÑтъпа до избраните запиÑи Remember - Запомни + ЗапомнÑне Allow access to entries - Разреши доÑтъп до запиÑите + Разрешаване на доÑтъп до запиÑите Allow Selected - Разреши избраните + Разрешаване избраните Deny All - Забрани вÑички + ЗабранÑване вÑички Disable for this site - Изключи за този Ñайт + Изключване за тази Ñтраница + + + Undo + ОтменÑне BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser запази Ð·Ð°Ð¿Ð¸Ñ - Ok - OK + Добре Cancel @@ -816,117 +842,156 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> You have multiple databases open. Please select the correct database for saving credentials. - Имате отворени нÑколко бази данни. -Изберете правилната база данни за запиÑване на идентификационни данни. + Отворени Ñа нÑколко хранилища. +Изберете в кое от Ñ‚ÑÑ… да бъде запазена тази ÑамоличноÑÑ‚. + + + KeePassXC - Select Database + KeePassXC - Избиране на хранилище + + + + BrowserPasskeysConfirmationDialog + + Cancel + Отказ + + + Update + ОбновÑване + + + Authenticate + УдоÑтоверÑване + + + Register new + РегиÑтриране на нов + + + Register + РегиÑтриране + + + Timeout in <b>%n</b> seconds... + Времето изтича Ñлед <b>%n</b> Ñекунда…Времето изтича Ñлед <b>%n</b> Ñекунди… + + + Do you want to register Passkey for: + Желаете ли да региÑтрирате Passkey за: + + + Existing Passkey found. +Do you want to register a new Passkey for: + СъщеÑтвува друг Passkey. +Желаете ли да региÑтрирате нов Passkey за: + + + Select the existing Passkey and press Update to replace it. + Изберете ÑъщеÑтвуващ Passkey и изберете „ОбновÑване“, за да бъде заменен. + + + Authenticate Passkey credentials for: + УдоÑтоверÑване на ÑамоличноÑтта на Passkey за: + + + Relying Party: %1 + ЗавиÑеща Ñтрана: %1 + + + Username: %1 + ПотребителÑко име: %1 + + + KeePassXC - Passkey credentials + KeePassXC - СамоличноÑÑ‚ на Passkey BrowserService - - KeePassXC: Create a new group - KeePassXC: Създаване на нова група - A request for creating a new group "%1" has been received. Do you want to create this group? - ЗаÑвка за Ñъздаване на нова група "%1" е получена. -Желаете ли да Ñъздадете тази група? + Получена е заÑвка за Ñъздаване на групата „%1“. +Желаете ли групата да бъде Ñъздадена? - - KeePassXC: New key association request - KeePassXC: ИÑкане за нова аÑÐ¾Ñ†Ð¸Ð°Ñ†Ð¸Ñ Ð½Ð° ключове - You have received an association request for the following database: %1 Give the connection a unique name or ID, for example: chrome-laptop. - Получили Ñте заÑвка за аÑоцииране за Ñледната база данни: + Получили Ñте заÑвка за Ñвързване ÑÑŠÑ Ñледното хранилище: %1 -Дайте на връзката уникално име или ID, например: +Дайте на връзката уникално име или идентификатор, например: chrome-laptop. Save and allow access - ЗапиÑване и разрешаване на доÑтъп - - - KeePassXC: Overwrite existing key? - KeePassXC: ПрезапиÑване на ÑъщеÑтвуващ ключ? + Запазване и разрешаване на доÑтъп A shared encryption key with the name "%1" already exists. Do you want to overwrite it? - Вече ÑъщеÑтвува Ñподелен шифроващ ключ Ñ Ð¸Ð¼Ðµ "%1". -ИÑкате ли да го презапишете? - - - KeePassXC: Update Entry - KeePassXC: ÐÐºÑ‚ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° запиÑа + СъщеÑтвува Ñподелен ключ за шифроване Ñ Ð¸Ð¼Ðµ „%1“. +Желаете ли да бъде презапиÑан? Do you want to update the information in %1 - %2? - Желаете ли да актуализирате информациÑта в %1 -%2? - - - KeePassXC: Delete entry - + Желаете ли да информациÑта в %1 - %2 да бъде обновена? A request for deleting entry "%1" has been received. Do you want to delete the entry? - + Получена е заÑвка за премахване на запиÑа „%1“. +Желаете ли запиÑÑŠÑ‚ да бъде премахнат? + - Converting attributes to custom data… - Конвертиране на атрибути към потребителÑки данни... + %1 (Passkey) + %1 (Passkey) - Abort - Отказ + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + ЗапиÑÑŠÑ‚ има Passkey. +Желаете ли този Passkey да бъде презапиÑан в %1 - %2? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Конвертиране на KeePassHTTP атрибути + KeePassXC - Create a new group + KeePassXC - Създаване на група - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - УÑпешно преобразувани атрибути от %1 запиÑ(и). -ПремеÑтени Ñа %2 ключа в перÑонализираните данни. - - - Successfully moved %n keys to custom data. - УÑпешно премеÑтени %n ключове в потребителÑки данни.УÑпешно премеÑтени %n ключове в перÑонализираните данни. + Disable + Изключване - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: ÐÑма запиÑи Ñ Ð½Ð°Ð¼ÐµÑ€ÐµÐ½Ð¸ KeePassHTTP атрибути! + KeePassXC - Overwrite existing key? + KeePassXC - ПрезапиÑване на ключ? - The active database does not contain an entry with KeePassHTTP attributes. - Ðктивната база данни не Ñъдържа Ð·Ð°Ð¿Ð¸Ñ Ñ KeePassHTTP атрибути. + KeePassXC - Update Passkey + KeePassXC - ОбновÑване на Passkey - Don't show this warning again - Ðе показвай това предупреждение отново + KeePassXC - Update Entry + KeePassXC - ОбновÑване на Ð·Ð°Ð¿Ð¸Ñ - KeePassXC: Legacy browser integration settings detected - KeePassXC: Открити Ñа оÑтарели интеграционни наÑтройки на браузъра + KeePassXC - Delete entry + KeePassXC - Премахване на Ð·Ð°Ð¿Ð¸Ñ - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Вашите наÑтройки за KeePassXC-Browser трÑбва да бъдат премеÑтени в наÑтройките на базата данни. -Това е необходимо, за да Ñе поддържа текущите връзки на браузъра. -ИÑкате ли да мигрирате ÑъщеÑтвуващите наÑтройки Ñега? + KeePassXC - New key association request + KeePassXC - ЗаÑвка за обвързване Ñ Ð½Ð¾Ð² ключ + + + Passkey + Passkey @@ -937,11 +1002,11 @@ Would you like to migrate your existing settings now? This is required for accessing your databases with KeePassXC-Browser - Това е необходимо за доÑтъп до вашите бази данни Ñ KeePassXC-Browser + Това е необходимо за доÑтъп до хранилищата от KeePassXC-Browser Enable browser integration - Разрешаване на интеграциÑта на браузъра + Разрешаване на Ñъчетаването Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ† General @@ -949,11 +1014,11 @@ Would you like to migrate your existing settings now? Browsers installed as snaps are currently not supported. - Браузъри инÑталирани като snap пакети не Ñа поддържани + Мрежови четци, инÑталирани от пакети на Snap не Ñе поддържат. Enable integration for these browsers: - Включване на интегрирането на тези браузъри: + Съчетаване Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸ четци: Vivaldi @@ -969,7 +1034,7 @@ Would you like to migrate your existing settings now? Tor Browser - Tor Browser + Четецът Тор Brave @@ -986,161 +1051,153 @@ Would you like to migrate your existing settings now? Show a notification when credentials are requested Credentials mean login data requested via browser extension - Показвай извеÑтие при поиÑкване на идентификационни данни + ИзвеÑтие при заÑвка за ÑамоличноÑÑ‚ Request to unlock the database if it is locked - ИÑкане за отключване на базата данни, ако е заключена + ИÑкане за отключване на хранилището, ако е заключено Only entries with the same scheme (http://, https://, …) are returned. - + Ще бъдат върнати Ñамо запиÑи ÑÑŠÑ Ñъвпадащи протоколи (http://, https://, …) Match URL scheme (e.g., https://example.com) - + ПроверÑване за Ñъвпадение на протоколи за адреÑа (https://example.com) Only returns the best matches for a specific URL instead of all entries for the whole domain. - Връща Ñамо най-добрите ÑÑŠÐ²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ð·Ð° конкретен URL Ð°Ð´Ñ€ÐµÑ Ð²Ð¼ÐµÑто вÑички запиÑи за Ñ†ÐµÐ»Ð¸Ñ Ð´Ð¾Ð¼ÐµÐ¹Ð½. + Връща най-добрите ÑÑŠÐ²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ð·Ð° Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ð°Ð´Ñ€ÐµÑ Ð²Ð¼ÐµÑто вÑички запиÑи за Ñ†ÐµÐ»Ð¸Ñ Ð´Ð¾Ð¼ÐµÐ¹Ð½. Return only best-matching credentials - Връща Ñамо идентификационните данни Ñ Ð½Ð°Ð¹-добро Ñъвпадение + Връща ÑамоличноÑтта Ñ Ð½Ð°Ð¹-доброто Ñъвпадение Returns expired credentials. String [expired] is added to the title. - Връща невалидни идентификационни данни. Ðиз [изтекъл] Ñе Ð´Ð¾Ð±Ð°Ð²Ñ ÐºÑŠÐ¼ заглавието. + Връща ÑамоличноÑÑ‚ Ñ Ð¸Ð·Ñ‚ÐµÐºÐ»Ð° давноÑÑ‚. Към заглавието е добавен низът „[изтекъл]“. Allow returning expired credentials - ПозволÑване на връщане на изтекли идентификационни данни + ПозволÑване на връщане на ÑамоличноÑти Ñ Ð¸Ð·Ñ‚ÐµÐºÐ»Ð° давноÑÑ‚ All databases connected to the extension will return matching credentials. - Ð’Ñички бази данни, Ñвързани Ñ Ñ€Ð°Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸ÐµÑ‚Ð¾, ще върнат Ñъвпадащи идентификационни данни. + Ð’Ñички хранилища, Ñвързани към разширението, ще връщат Ñъвпадащи ÑамоличноÑти. Search in all opened databases for matching credentials Credentials mean login data requested via browser extension - ТърÑене във вÑички отворени бази данни за Ñъвпадащи идентификационни данни + ТърÑене на Ñъвпадащи ÑамоличноÑти във вÑички отворени хранилища Advanced - Допълнителни + Разширени Never ask before accessing credentials Credentials mean login data requested via browser extension - Ðикога не питай преди доÑтъпване на идентификационни данни + Без питане преди доÑтъп до ÑамоличноÑти Never ask before updating credentials Credentials mean login data requested via browser extension - Ðикога не питай преди актуализиране на идентификационни данни + Без питане преди променÑне на ÑамоличноÑти Do not ask permission for HTTP Basic Auth An extra HTTP Basic Auth setting - Ðе иÑкай разрешение за HTTP Basic Auth + Без питане за разрешение за HTTP Basic Auth Automatically creating or updating string fields is not supported. - Ðвтоматично Ñъздаване или актуализиране на низови полета не Ñе поддържа. + Ðвтоматичното Ñъздаване или обновÑване на низови полета не Ñе поддържа. Return advanced string fields which start with "KPH: " - + Връщане на допълнителни низови полета, започващи Ñ "KPH:" Don't display the popup suggesting migration of legacy KeePassHTTP settings. - Ðе показвайте изÑкачащ прозорец, който предполага Ð¼Ð¸Ð³Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð° оÑтарели наÑтройки на KeePassHTTP. + Без изÑкачащ прозорец, предполагащ Ð¼Ð¸Ð³Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð° оÑтарели наÑтройки на KeePassHTTP. Do not prompt for KeePassHTTP settings migration. - Ðе питай за Ð¼Ð¸Ð³Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð° KeePassHTTP наÑтройки. + Без Ð¼Ð¸Ð³Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð° наÑтройки на KeePassHTTP. Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup. - + При Ñтартиране обновÑва Ð¿ÑŠÑ‚Ñ Ð´Ð¾ Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼Ð¸Ñ Ñ„Ð°Ð¹Ð» на KeePassXC или keepassxc-proxy Ñ Ð¿ÑŠÑ‚Ñ Ð´Ð¾ Ñкриптовете за приÑъщи ÑъобщениÑ. Update native messaging manifest files at startup - + При Ñтартиране обновÑва файловете Ñ Ð¼Ð°Ð½Ð¸Ñ„ÐµÑта за приÑъщи ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Use a custom proxy location if you installed a proxy manually. - Използвайте на перÑоналзирана Ð»Ð¾ÐºÐ°Ñ†Ð¸Ñ Ð½Ð° прокÑито, ако Ñте инÑталирали прокÑито ръчно. + Задайте меÑтоположение на прокÑи Ñървър по избор, ако Ñте го инÑталирали ръчно. Use a custom proxy location: Meant is the proxy for KeePassXC-Browser - Използване на друго прокÑи меÑтоположение: + МеÑтоположение на прокÑи Ñървър по избор: Custom proxy location field - Поле за перÑонализирано прокÑи меÑтоположение + Поле за меÑтоположение на прокÑи Ñървър по избор Browser for custom proxy file - Избор на файл Ñ Ð¿ÐµÑ€Ñонализиран прокÑи + Избор на файл за прокÑи Ñървър Browse… Button for opening file dialog - + Избор… Use a custom browser configuration location: - Използване на перÑонализирано меÑтоположение за конфигуриране на браузъра: + МеÑтоположение на наÑтройките на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ†: Browser type: - Тип на браузъра: + Вид мрежов четец: Toolbar button style - Стил на бутоните от лентата Ñ Ð¸Ð½Ñтрументи + Стил на бутоните в лентата Ñ Ð¸Ð½Ñтрументи Config Location: - МеÑтоположение на конфигурациÑта: + МеÑтоположение на наÑтройките: Custom browser location field - Поле за перÑонализирано меÑтоположение на браузъра + Поле за меÑтоположение на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ†: Browse for custom browser path - Избор на перÑонализиран път към браузъра + Избор на меÑтоположение на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ† Custom extension ID: - ПерÑонализирано ID номер на разширение: + Идентификатор на разширение: Custom extension ID - ПерÑонализирано ID номер на разширение: + Идентификатор на разширение Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 - Поради изолирането при snap пакетите, трÑбва да изпълните Ñкрипт, за да разрешите интеграциÑта на браузъра.<br />Можете да получите този Ñкрипт от %1 + Поради изолирането при пакетите от Snap, трÑбва да изпълните Ñкрипт, който да разреши Ñъчетаване Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ†.<br />Можете да получите Ñкрипта от %1 KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2 and %3. %4 - KeePassXC-Browser е необходим, за да работи интеграциÑта Ñ Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€Ð°.<br />Изтеглете го тук за %1 и %2 и %3. %4 + Разширението KeePassXC-Browser е необходимо, за да работи Ñъчетаването Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ†.<br />Изтеглете за %1 и %2 и %3. %4 Please see special instructions for browser extension use below - МолÑ, вижте Ñпециалните инÑтрукции за използване на разширението на браузъра по-долу - - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Грешка:</b> Ðе може да бъде намерено потребителÑкото меÑтоположението на прокÑи Ñървъра!<br/>ИнтеграциÑта Ñ Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€Ð° ÐЯМРДРРÐБОТИ без прокÑи приложението. - - - <b>Warning:</b> The following options can be dangerous! - <b>Предупреждение:</b> Следните опции могат да бъдат опаÑни! + Вижте Ñпециалните инÑтрукции за използване на разширението на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ† Executable Files @@ -1152,22 +1209,54 @@ Would you like to migrate your existing settings now? Select custom proxy location - Избор на потребитерÑко меÑтоположение на прокÑи Ñървър + Избор на меÑтоположение на прокÑи Ñървър по избор Select native messaging host folder location - + Избиране на папката на домакина на приÑъщите ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ + + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + Разрешаване на keepassxc-proxy доÑтъп до ÑпиÑъка на вÑички запиÑи Ñ Ñ‚Ñхното заглавие, Ð°Ð´Ñ€ÐµÑ Ð¸ идентификатор от Ñвързаните хранилища. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + Разрешаване на ограничен доÑтъп до вÑички запиÑи от Ñвързаните хранилища (пренебрегва ограничениÑта за доÑтъп до Ñтраниците) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Внимание:</b> ПроменÑйте тези наÑтройки Ñамо при необходимоÑÑ‚. + + + The custom proxy location does not exist. + МеÑтоположението на прокÑи Ñървъра по избор не ÑъщеÑтвува. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Грешка:</b> МеÑтоположението на прокÑи Ñървъра по избор не ÑъщеÑтвува. Ðаправете промени в раздела за разширени наÑтройки. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Грешка:</b> ИнÑталираниÑÑ‚ изпълним файл на прокÑи Ñървъра липÑва на очакваното меÑтоположение: %1<br/>Задайте меÑтоположение на прокÑи Ñървъра по избор в разширените наÑтройки или преинÑталирайте приложението. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + ПозволÑва използване на Ð½ÐµÐ·Ð°Ñ‰Ð¸Ñ‚ÐµÐ½Ð¸Ñ Ð°Ð´Ñ€ÐµÑ http://localhost Ñ Passkeys Ñ Ñ†ÐµÐ» изпитване + + + Allow using localhost with Passkeys + Използване на Passkeys през localhost CloneDialog Clone Entry Options - + ÐаÑтройки за дублиране на Ð·Ð°Ð¿Ð¸Ñ Append ' - Clone' to title - ДобавÑне на ' - Clone' към заглавието + ДобавÑне на „ - копие“ към заглавието Replace username and password with references @@ -1180,21 +1269,13 @@ Would you like to migrate your existing settings now? CsvImportWidget - - Import CSV fields - Импортиране на полета в CSV - - - filename - име - size, rows, columns размер, редове, колони Column Association - ÐÑÐ¾Ñ†Ð¸Ð°Ñ†Ð¸Ñ Ð½Ð° колоната + Свързани колони Password @@ -1202,7 +1283,7 @@ Would you like to migrate your existing settings now? Username - Портебител + Потребител Title @@ -1214,11 +1295,11 @@ Would you like to migrate your existing settings now? URL - Url + ÐÐ´Ñ€ÐµÑ Notes - Бележки + Бележка TOTP @@ -1226,15 +1307,15 @@ Would you like to migrate your existing settings now? Created - Създаден + Създадено Last Modified - ПоÑледно променена + ПоÑледна промÑна Icon - Икона + Пиктограма Encoding @@ -1246,11 +1327,11 @@ Would you like to migrate your existing settings now? Text is qualified by - + ТекÑтът е клаÑиран от Text qualification - + КлаÑиране на текÑта Fields are separated by @@ -1266,11 +1347,11 @@ Would you like to migrate your existing settings now? Header lines skipped - ПреÑкочени хедър редове + ПреÑкочени Ñа редове на заглавката Number of header lines to discard - Брой на редовете Ñ Ñ…ÐµÐ´ÑŠÑ€Ð¸ за отхвърлÑне + Брой на редовете в заглавката, които да бъдат отхвърлени First line has field names @@ -1278,7 +1359,7 @@ Would you like to migrate your existing settings now? Consider '\' an escape character - Приеми за '\' Ñимвол за край + Символът „\“ е изключваща поÑледователноÑÑ‚ Preview @@ -1286,7 +1367,7 @@ Would you like to migrate your existing settings now? CSV import preview - Ð’Ð¸Ð·ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° импортирането от CSV + Преглед на внеÑеното от файл Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»Ð¸ Not Present @@ -1296,50 +1377,29 @@ Would you like to migrate your existing settings now? Column %1 Колона %1 - - Imported from CSV file - Импортиран от CSV файл - - - Original data: - Оригинални данни: - - - Error(s) detected in CSV file! - Грешки, открити в CSV файл! - [%n more message(s) skipped] - [%n повече ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑнати][още %n ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñа пропуÑнати] + [%n повече ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑнати][пропуÑнати %n ÑъобщениÑ] - Error - Грешка + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - CSV импортиране: при пиÑане изникна грешка грешки: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n байта(ите)%n байт(а) - %n row(s) + CSV row count %n ред(а)%n ред(а) %n column(s) + CSV column count %n колона(и)%n колона(и) @@ -1360,33 +1420,33 @@ Would you like to migrate your existing settings now? Error while reading the database: %1 - Грешка при четене на базата данни: %1 + Грешка при четене на хранилището: %1 Could not save, database does not point to a valid file. - Ðе може да Ñе запише, базата данни не Ñочи към валиден файл. + Хранилището не може да бъде запазено. Ðе Ñочи към дейÑтвителен файл. Database save is already in progress. - ЗапиÑването на базата данни вече е в ход. + Хранилището в момента Ñе запазва. Could not save, database has not been initialized! - Ðе може да Ñе запише, базата данни не е инициализирана! + Хранилището не може да бъде запазено. Ðе е подготвено! Database file has unmerged changes. - Файлът Ñ Ð±Ð°Ð·Ð°Ñ‚Ð° данни има неÑлети промени + Файлът на хранилището има неÑлети промени. %1 Backup database located at %2 %1 -Резервана база данни Ñе намира на %2 +Резервно копие на хранилището Ñе намира на %2 Key not transformed. This is a bug, please report it to the developers. - + Ключът не е транÑформиран. Това е дефект, докладвайте го на разработчиците. Recycle Bin @@ -1397,14 +1457,14 @@ Backup database located at %2 DatabaseOpenDialog Unlock Database - KeePassXC - Отключване на база данни - KeePassXC + Отключване на хранилище - KeePassXC DatabaseOpenWidget Unlock KeePassXC Database - Отключване на KeePassXC базата данни + Отключване на хранилище на KeePassXC Enter Password: @@ -1414,42 +1474,13 @@ Backup database located at %2 Password field Поле за парола - - Enter Additional Credentials (if any): - Въведете допълнителни идентификационни данни (ако има такива): - - - Key File: - Файл-ключ: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - - - - Key file help - Помощ за файл-ключове - Hardware key slot selection - Избор на Ñлот на хардуерен ключ - - - Hardware Key: - Хардуерен ключ: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - - - - Hardware key help - Помощ за хардуерен ключ + Избор на Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ð·Ð° хардуерен ключ Key file to unlock the database - Файл-ключ за отключване на базата данни + Файл-ключ за отключване на хранилището Browse for key file @@ -1457,19 +1488,11 @@ Backup database located at %2 Browse… - - - - Refresh hardware tokens - ОбновÑване на хардуерни токени - - - Refresh - ОбновÑване + Избор… Unlock Database - + Отключване на хранилище Cancel @@ -1477,15 +1500,15 @@ Backup database located at %2 Unlock - + Отключване Please present or touch your YubiKey to continue… - + За да продължите добавете или докоÑнете ÑÐ²Ð¾Ñ YubiKey… Database Version Mismatch - + ÐеÑъответÑтвие в изданието на хранилището The database you are trying to open was most likely @@ -1495,41 +1518,37 @@ You can try to open it anyway, but it may be incomplete and saving any changes may incur data loss. We recommend you update your KeePassXC installation. - + Хранилището, което Ñе опитвате да отворите, най-вероÑтно е Ñъздадено Ñ Ð¿Ð¾-ново издание на KeePassXC. + +Може вÑе пак да опитате да го отворите, но е възможно да бъде непълно и запазването на направените промени може да доведе до загуба на данни. + +Препоръчително е да обновите KeePassXC. Open database anyway - + ОтварÑне въпреки това Database unlock canceled. - + Отключването на хранилището е прекъÑнато. Unlock failed and no password given - Грешка при отключване и не е върната парола + Грешка при отключване и не дадена парола Unlocking the database failed and you did not enter a password. Do you want to retry with an "empty" password instead? To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. - Отключването на базата данни е неуÑпешно и не Ñте въвели парола. -ИÑкате ли вмеÑто това да опитате отново Ñ "празна" парола? + Отключването на хранилището е неуÑпешно и не Ñте въвели парола. +ИÑкате ли повторен опит Ñ â€žÐ¿Ñ€Ð°Ð·Ð½Ð°â€œ парола? -За да предотвратите поÑвата на тази грешка, трÑбва да отидете на "ÐаÑтройки на базата данни / ÑигурноÑÑ‚" и да нулирате паролата Ñи. +За да предотвратите поÑвата на тази грешка, отворете „ÐаÑтройки на хранилище / СигурноÑт“ и нулирате паролата. Retry with empty password - Опитай отново Ñ Ð¿Ñ€Ð°Ð·Ð½Ð° парола - - - Failed to authenticate with Windows Hello - - - - Failed to authenticate with Touch ID - + Ðов опит Ñ Ð¿Ñ€Ð°Ð·Ð½Ð° парола Failed to open key file: %1 @@ -1537,15 +1556,15 @@ To prevent this error from appearing, you must go to "Database Settings / S Old key file format - Стар файлов формат на ключа + Стар формат на файла Ñ ÐºÐ»ÑŽÑ‡ You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> - + Използвате Ñтар формат на файла Ñ ÐºÐ»ÑŽÑ‡, който KeePassXC може <br>да Ñпре да поддържа в бъдеще.<br><br>Вземете предвид възможноÑтта да Ñъздадете нов файл Ñ ÐºÐ»ÑŽÑ‡ от:<br><strong>Хранилище &gt; Защита на данните &gt; ПромÑна на файл Ñ ÐºÐ»ÑŽÑ‡.</strong><br> Don't show this warning again - Ðе показвай това предупреждение отново + Спиране на това предупреждение All files @@ -1561,25 +1580,63 @@ To prevent this error from appearing, you must go to "Database Settings / S Cannot use database file as key file - Ðе може да Ñе използва файлът Ñ Ð±Ð°Ð·Ð°Ñ‚Ð° данни като файл-ключ + Файл на хранилище не може да бъде използван като файл-ключ. - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Ðе можете да използвате файла Ñ Ð±Ð°Ð·Ð°Ñ‚Ð° данни като файл-ключ. -Ðко нÑмате файл-ключ, оÑтавете полето празно. + authenticate to access the database + удоÑтоверÑване за получаване доÑтъп до хранилището - Detecting hardware keys… - Откриване на хардуерни ключове... + Failed to authenticate with Quick Unlock: %1 + ÐеуÑпешно удоÑтоверÑване чрез Quick Unlock: %1 - No hardware keys detected - Ðе Ñа открити хардуерни ключове + Select Key File: + - Select hardware key… - Избор на хардуерен ключ... + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1591,10 +1648,6 @@ If you do not have a key file, please leave the field empty. DatabaseSettingsDialog - - Advanced Settings - Разширени наÑтройки - General ОÑновни @@ -1605,7 +1658,7 @@ If you do not have a key file, please leave the field empty. Database Credentials - Идентификационни данни на база данни + ДоÑтъп до хранилището Encryption Settings @@ -1613,38 +1666,30 @@ If you do not have a key file, please leave the field empty. Browser Integration - Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð° браузъра + Съчетаване Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ† Maintenance - + Профилактика DatabaseSettingsWidgetBrowser KeePassXC-Browser settings - KeePassXC-Browser наÑтройки - - - Convert KeePassHTTP data - - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - - - - Refresh database root group ID - ОбновÑване на IDна главната група на базата данни + ÐаÑтройки на KeePassXC-Browser Disconnect all browsers - Разедини вÑички браузъри + Изключване от вÑички мрежови четци Forget all site-specific settings on entries - Забравете вÑички наÑтройки за конкретни Ñайтове на запиÑите + Премахване на вÑички Ñпецифични за Ñтраниците наÑтройки на запиÑите + + + Refresh database root group ID + Ðов идентификатор на кореновата група Stored keys @@ -1652,7 +1697,7 @@ If you do not have a key file, please leave the field empty. Stored browser keys - Съхранените ключове на браузъра + Запазени ключове на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ† Remove selected key @@ -1669,8 +1714,8 @@ If you do not have a key file, please leave the field empty. Do you really want to delete the selected key? This may prevent connection to the browser plugin. - ÐаиÑтина ли иÑкате да изтриете Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡? -Това може да попречи на Ñвързването Ñ Ð¿Ñ€Ð¸Ñтавката на браузъра. + Желаете ли избраниÑÑ‚ ключ да бъде премахнат? +Може да попречи на Ñвързването Ñ Ñ€Ð°Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸ÐµÑ‚Ð¾ на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ†. Key @@ -1686,26 +1731,18 @@ This may prevent connection to the browser plugin. Enable Browser Integration to access these settings. - Разрешаване на Ð¸Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ñ Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€Ð¸ за доÑтъп до тези наÑтройки. + Съчетаване Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸ четци за доÑтъп до наÑтройките. Do you really want to disconnect all browsers? This may prevent connection to the browser plugin. - ÐаиÑтина ли иÑкате да разедините вÑички браузъри? -Това може да попречи на Ñвързването Ñ Ð¿Ñ€Ð¸Ñтавката в браузъра. - - - KeePassXC: No keys found - KeePassXC: Ðе Ñа намерени ключове + Желаете ли да изключите от вÑички мрежови четци? +Може да попречи на Ñвързване Ñ Ñ€Ð°Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸ÐµÑ‚Ð¾ на четеца. No shared encryption keys found in KeePassXC settings. Ðе Ñа намерени Ñподелени ключове за криптиране в наÑтройките на KeePassXC. - - KeePassXC: Removed keys from database - KeePassXC: Премахнати ключове от базата данни - Successfully removed %n encryption key(s) from KeePassXC settings. УÑпешно отÑтранен %n шифроващ ключ от наÑтройките на KeePassXC.УÑпешно отÑтранен %n ключ(а) за шифроване от наÑтройките на KeePassXC. @@ -1713,74 +1750,77 @@ This may prevent connection to the browser plugin. Do you really want forget all site-specific settings on every entry? Permissions to access entries will be revoked. - ÐаиÑтина ли иÑкате да Ñе забравÑÑ‚ вÑички наÑтройки за ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ð¸Ñ Ñайт за вÑеки запиÑ? -РазрешениÑта за доÑтъп до запиÑите ще бъдат отменени. + ÐаиÑтина ли иÑкате да бъдат забравени вÑички Ñпецифични наÑтройки за Ñайтовете за вÑички запиÑи? +Правата за доÑтъп до запиÑите ще бъдат отнети. Removing stored permissions… - Премахване на Ñъхранените разрешениÑ... + Премахване на запазените права за доÑтъп… Abort Отказ - - KeePassXC: Removed permissions - KeePassXC: Премахнати Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ - Successfully removed permissions from %n entry(s). - УÑпешно премахнали Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¾Ñ‚ %n запиÑа.УÑпешно премахнали Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¾Ñ‚ %n запиÑа. - - - KeePassXC: No entry with permissions found! - KeePassXC: ÐÑма намерени запиÑи Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ! + Премахнати Ñа правата за доÑтъп от %n запиÑ.Премахнати Ñа правата за доÑтъп от %n запиÑа. The active database does not contain an entry with permissions. - Ðктивната база данни не Ñъдържа Ð·Ð°Ð¿Ð¸Ñ Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ. - - - Move KeePassHTTP attributes to custom data - ПремеÑтване на KeePassHTTP атрибутите към перÑонализирани данни - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - + Текущото хранилище не Ñъдържа Ð·Ð°Ð¿Ð¸Ñ Ñ Ð¿Ñ€Ð°Ð²Ð°. Refresh database ID - ОбновÑване на ID на база данни + ОбновÑване на идентификатора на хранилището Do you really want refresh the database ID? This is only necessary if your database is a copy of another and the browser extension cannot connect. - ÐаиÑтина ли иÑкате да обновите ID-то на базата данни? -Това е необходимо Ñамо, ако вашата база данни е копие на друга и разширението на браузъра не може да Ñе Ñвърже. + Желаете ли идентификаторът на хранилището да бъде обновен? +Това е необходимо Ñамо, ако хранилището е копие разширението на браузъра не може да Ñе Ñвърже. + + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Преобразуване на Ñтари KeePassHTTP ÑвойÑтвa в ÑъвмеÑтими Ñ KeePassXC-Browser такива + + + No keys found + Ðе Ñа намерени ключове + + + Removed keys from database + Премахнати ключове от хранилището + + + Removed permissions + Оттеглени права + + + No entry with permissions found! + Ðе е намерен Ð·Ð°Ð¿Ð¸Ñ Ñ Ð¿Ñ€Ð°Ð²Ð°! DatabaseSettingsWidgetDatabaseKey Add additional protection… - + ДобавÑне на допълнителна защита… No password set - ÐÑма зададена парола + Ðе е зададена парола WARNING! You have not set a password. Using a database without a password is strongly discouraged! Are you sure you want to continue without a password? - Предупреждение! Ðе Ñте задали парола. Използването на база данни без парола е Ñилно обезÑърчено! + Ð’ÐИМÐÐИЕ! Ðе Ñте задали парола. Използването на хранилище без парола е Ñилно непрепоръчително! -ÐаиÑтина ли иÑкате да продължите без парола? +Желаете ли да продължите без парола? Continue without password - Продължи без парола + Продължаване без парола No encryption key added @@ -1788,54 +1828,58 @@ Are you sure you want to continue without a password? You must add at least one encryption key to secure your database! - ТрÑбва да добавите поне един шифроващ ключ, за да защитите вашата база данни! + За да защитите хранилището, трÑбва да добавите най-малко един шифроващ ключ! Unknown error - ÐеизвеÑтна грешка + Ðеочаквана грешка Failed to change database credentials - ÐеуÑпешна промÑна на идентификационните данни на базата данни + Грешка при промÑна на данните за удоÑтоверÑване на доÑтъп до хранилището + + + Weak password + Слаба парола + + + You must enter a stronger password to protect your database. + За да защитите хранилището трÑбва по-добра парола. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + Това е Ñлаба парола! За по-добра защита на вашите тайни, трÑбва да изберете по-Ñилна парола. DatabaseSettingsWidgetEncryption Decryption Time: - Време за дешифриране: - - - Change existing decryption time - ПромÑна на времето за дешифриране - - - Change - ПромÑна + Време за разшифроване: Decryption time in seconds - Време за дешифриране в Ñекунди + Време за разшифроване в Ñекунди Higher values offer more protection, but opening the database will take longer. - По-виÑоките ÑтойноÑти предлагат по-голÑма защита, но отварÑнето на базата данни ще отнеме повече време. + По-големите ÑтойноÑти предлагат по-добра защита, но отварÑнето на хранилището отнема повече време. Database format: - Формат на базата данни: + Формат на хранилището: Database format - Формат на базата данни + Формат на хранилището Format cannot be changed: Your database uses KDBX 4 features - + Форматът не може да бъде променен: хранилището използва възможноÑтите на KDBX 4 Unless you need to open your database with other programs, always use the latest format. - + ОÑвен ако не е необходимо да отварÑте хранилището Ñ Ð´Ñ€ÑƒÐ³Ð¸ приложениÑ, винаги използвайте най-Ð½Ð¾Ð²Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚. Encryption Algorithm: @@ -1855,7 +1899,7 @@ Are you sure you want to continue without a password? Key Derivation Function: - Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð° формиране на ключа + Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð° извличане на ключ: Key derivation function @@ -1863,55 +1907,52 @@ Are you sure you want to continue without a password? Transform rounds: - Рунда за транÑформиране: + Брой преобразуваниÑ: Transform rounds - ТранÑформиционни рунда + Брой Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·ÑƒÐ²Ð°Ð½Ð¸Ñ Memory Usage: - Използване на паметта: + Използвана памет: Memory usage - Използване на паметта + Използвана памет Parallelism: - Паралелизъм: + Паралелно изпълнÑване: Parallelism - Паралелизъм + Паралелно изпълнÑване KDBX 4 (recommended) - + KDBX 4 (препоръчително) KDBX 3 - - - - unchanged - Database decryption time is unchanged - Ðепроменени + KDBX 3 Number of rounds too high Key transformation rounds - БроÑÑ‚ на рудновете е твърде виÑок + Твърде голÑм брой Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·ÑƒÐ²Ð°Ð½Ð¸Ñ You are using a very high number of key transform rounds with Argon2. If you keep this number, your database may take hours, days, or even longer to open. - + Използвате твърде много Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·ÑƒÐ²Ð°Ð½Ð¸Ñ Ð½Ð° ключове Ñ Argon2. + +Ðко запазите този брой, отварÑнето на хранилището може да отнеме чаÑове, дни или дори по-дълго. Understood, keep number - Разбирам, оÑтави ÑтойнÑтта + Разбирам, без промÑна на ÑтойнÑтта Cancel @@ -1920,73 +1961,87 @@ If you keep this number, your database may take hours, days, or even longer to o Number of rounds too low Key transformation rounds - Твърде ниÑък брой рундове + Твърде малък брой Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·ÑƒÐ²Ð°Ð½Ð¸Ñ You are using a very low number of key transform rounds with AES-KDF. If you keep this number, your database will not be protected from brute force attacks. - + Използвате твърде малко Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·ÑƒÐ²Ð°Ð½Ð¸Ñ Ð½Ð° ключове Ñ AES-KDF. + +Ðко оÑтавите този брой, хранилището нÑма да бъде защитено от атаки Ñ Ð³Ñ€ÑƒÐ±Ð° Ñила. KDF unchanged - KDF непромен + ФИК е непроменена Failed to transform key with new KDF parameters; KDF unchanged. - ÐеуÑпешно преобразуване на ключа Ñ Ð½Ð¾Ð²Ð¸Ñ‚Ðµ параметри на KDF; KDF непроменен. + ÐеуÑпешно преобразуване на ключа Ñ Ð½Ð¾Ð²Ð¸Ñ‚Ðµ параметри на ФИК; ФИК е непроменена. MiB Abbreviation for Mebibytes (KDF settings) - МбМб + МБ МБ thread(s) Threads for parallel execution (KDF settings) - резба(и)нишка(и) + резба(и) нишка(и) + + + Encryption Settings: + ÐаÑтройки на шифроване: + + + Basic + ОÑновни + + + Advanced + Разширени DatabaseSettingsWidgetFdoSecrets Exposed Entries - Разкрити запиÑи + Изложени запиÑи Don't expose this database - Ðе разкривай тази база данни + Това хранилище да не бъде излагано Expose entries under this group: - Разкрий запиÑите в тази група: + Излагане на запиÑите от тази група: Enable Secret Service to access these settings. - За получаване доÑтъп до тези наÑтройки включвете Secret Service. + За да получите доÑтъп до тези наÑтройки включете УÑлугата за тайни. DatabaseSettingsWidgetGeneral Database Metadata - + ОпиÑателни данни на хранилището Database name: - Име на базата данни: + Име на хранилището: Database name field - Поле за име на база данни + Поле за име на хранилището Database description: - ОпиÑание на базата данни: + ОпиÑание на хранилището: Database description field - Поле за опиÑание на базата данни + Поле за опиÑание на хранилището Default username: @@ -2002,19 +2057,11 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry - МакÑимален брой елементи от иÑториÑта за Ð·Ð°Ð¿Ð¸Ñ - - - Max. history items: - МакÑ. елементи от хронологиÑта: + МакÑимален брой елементи в хронологиÑта на Ð·Ð°Ð¿Ð¸Ñ Maximum size of history per entry - МакÑимален размер на иÑториÑта за Ð·Ð°Ð¿Ð¸Ñ - - - Max. history size: - МакÑ. размер на хронологиÑта: + МакÑимален размер на хронологиÑта на Ð·Ð°Ð¿Ð¸Ñ MiB @@ -2026,11 +2073,11 @@ If you keep this number, your database will not be protected from brute force at Additional Database Settings - Допълнителни наÑтройки на базата данни + Разширени наÑтройки на хранилището Enable compression (recommended) - Разрешаване на компреÑирането (препоръчително) + КомпреÑиране (препоръчително) Delete Recycle Bin @@ -2039,13 +2086,69 @@ If you keep this number, your database will not be protected from brute force at Do you want to delete the current recycle bin and all its contents? This action is not reversible. - ИÑкате ли да изтриете текущото кошче и цÑлото му Ñъдържание? -Това дейÑтвие е необратимо. + Желаете ли кошчето и цÑлото му Ñъдържание да бъде премахнато? +ДейÑтвието е необратимо. (old) (Ñтар) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + При запазване на наÑтройката или при промÑна на Ð·Ð°Ð¿Ð¸Ñ +най-Ñтарите елементи от хронологиÑта на запиÑа ще бъдат +премахнати така, че да оÑтанат Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð±Ñ€Ð¾Ð¹ запиÑи. + + + Limit the amount of history items per entry to: + Ограничаване на елементите от хронологиÑта на вÑеки Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + При запазване на наÑтройката или при промÑна на Ð·Ð°Ð¿Ð¸Ñ +най-Ñтарите елементи от хронологиÑта на запиÑа ще бъдат +премахнати така, че да оÑтанат Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð±Ñ€Ð¾Ð¹ запиÑи. + + + Limit the total size of history items per entry to: + Ограничаване на елементите от хронологиÑта на вÑеки Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + ПремеÑтване на запиÑите в групата +на кошчето вмеÑто да бъдат премахвани +от хранилището. ЗапиÑите, премахнати от +кошчето, биват премахнати от хранилището. + + + Autosave delay since last change + Изчакване на автоматично запазване Ñлед промÑна + + + Autosave delay + Изчакване на автоматично запазване + + + Autosave delay since last change in minutes + Изчакване на автоматично запазване Ñлед промÑна в минути + + + min + мин + + + Autosave delay since last change checkbox + Отметка на изчакването на автоматичното запазване Ñлед промÑна + DatabaseSettingsWidgetKeeShare @@ -2055,11 +2158,11 @@ This action is not reversible. Breadcrumb - + Пътека Type - Тип + Вид Path @@ -2083,54 +2186,54 @@ This action is not reversible. DatabaseSettingsWidgetMaintenance Manage Custom Icons - + Управление на потребителÑки икони Delete selected icon(s) - + Премахване на избраните(та) икони(а) Delete all custom icons not in use by any entry or group - + Премахва вÑички неизползвани потребителÑки икони Purge unused icons - + ИзчиÑтване на неизползвани икони Confirm Deletion - + Потвърждаване на изтриване At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? - + Ðай-малко една от избраните икони Ñе използва от най-малко един Ð·Ð°Ð¿Ð¸Ñ Ð¸Ð»Ð¸ група. Иконите на вÑички заÑегнати запиÑи или групи ще бъдат заменени Ñ Ñ‚Ð°Ð·Ð¸ по подразбиране. Сигурни ли Ñте, че желаете иконите, които в момента Ñе използват да бъдат премахнати? Custom Icons Are In Use - + Използват Ñе потребителÑки икони All custom icons are in use by at least one entry or group. - + Ð’Ñички потребителÑки икони Ñе използват от най-малко един Ð·Ð°Ð¿Ð¸Ñ Ð¸Ð»Ð¸ група. Purged Unused Icons - + ИзчиÑтени неизползвани икони Purged %n icon(s) from the database. - + От хранилището е изчиÑтена %n пиктограма.От хранилището Ñа изчиÑтени %n пиктограми. DatabaseSettingsWidgetMetaDataSimple Database Name: - Име на базата данни: + Име на хранилището: Database name field - Поле за име на база данни + Поле за име на хранилището Description: @@ -2138,23 +2241,24 @@ This action is not reversible. Database description field - Поле за опиÑание на базата данни + Поле за опиÑание на хранилището DatabaseTabWidget Database creation error - Грешка при Ñъздаване на база данни + Грешка при Ñъздаване на хранилище The created database has no key or KDF, refusing to save it. This is definitely a bug, please report it to the developers. - + Създаденото хранилище нÑма ключ или ФИК и нÑма да бъде запазено. +Това определено е дефект, Ñъобщете на разработчиците. KeePass 2 Database - KeePass 2 база данни + Хранилище на KeePass 2 All files @@ -2162,7 +2266,7 @@ This is definitely a bug, please report it to the developers. Open database - ОтварÑне на база данни + ОтварÑне на хранилище Failed to open %1. It either does not exist or is not accessible. @@ -2170,96 +2274,83 @@ This is definitely a bug, please report it to the developers. CSV file - CSV файл - - - Select CSV file - Изберете CSV файл + Файл Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»Ð¸ Merge database - Сливане на база данни - - - KeePass 1 database - KeePass 1 база данни - - - Open KeePass 1 database - ОтворарÑне на KeePass 1 база данни - - - Open OPVault - Отвори OPVault + Сливане на хранилище Export database to CSV file - ЕкÑпортиране на база данни в CSV файл + ИзнаÑÑне на хранилището във файл Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»Ð¸ Writing the CSV file failed. - ЗапиÑÑŠÑ‚ на CSV файла е неуÑпешен. + Грешка при запиÑване на файла Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»Ð¸. Writing the HTML file failed. - ЗапиÑÑŠÑ‚ на HTML файл е неуÑпешен. + Грешка при запиÑване на HTML файла. + + + Export database to XML file + ИзнаÑÑне на хранилището в XML файл + + + XML file + XML файл + + + Writing the XML file failed + Грешка при запиÑване на XML файла Export Confirmation - Потвърждение на екÑпортирането + Потвърждаване You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - Ще екÑпортирате вашата база данни в нешифрован файл. Това ще направи вашите пароли и чувÑтвителна Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÑƒÑзвими! ÐаиÑтина ли иÑкате да продължите? - - - New Database - Ðова база данни - - - %1 [New Database] - Database tab name modifier - %1 [Ðова база данни] + Ðа път Ñте да изнеÑете хранилището в нешифрован файл. Това ще направи вашите пароли и чувÑтвителна Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÑƒÑзвими! Желаете ли да продължите? %1 [Locked] Database tab name modifier - %1 [Заключен] + %1 [Заключено] DatabaseWidget - Database Tags - + Searches and Tags + ТърÑене и етикети Searching… - + ТърÑене… Shared group… - + Споделена група… Confirm Auto-Type - + Потвърждаване на автоматично въвеждане Perform Auto-Type into the previously active window? - + Да бъде ли изпълнено автоматично въвеждане в Ð¿Ñ€ÐµÐ´Ð¸ÑˆÐ½Ð¸Ñ Ð°ÐºÑ‚Ð¸Ð²ÐµÐ½ прозорец? Execute command? - Да Ñе изпълни командата? + ИзпълнÑване на командата? Do you really want to execute the following command?<br><br>%1<br> - ÐаиÑтина ли иÑкате да изпълните Ñледната команда?<br><br>%1<br> + Желаете ли Ñледната команда да бъде изпълнена?<br><br>%1<br> Remember my choice - Запомни Ð¼Ð¾Ñ Ð¸Ð·Ð±Ð¾Ñ€ + ЗапомнÑне на избора Delete group @@ -2267,7 +2358,7 @@ This is definitely a bug, please report it to the developers. Do you really want to delete the group "%1" for good? - ÐаиÑтина ли иÑкате да изтриете групата "%1" за добро? + Желаете ли групата „%1“ да бъде безвъзвратно премахната? Move group to recycle bin? @@ -2275,27 +2366,31 @@ This is definitely a bug, please report it to the developers. Do you really want to move the group "%1" to the recycle bin? - ÐаиÑтина ли иÑкате да премеÑтите групата "%1" в кошчето? + Желаете ли групата „%1“ да бъде премеÑтена в кошчето? Expired entries - + ЗапиÑи Ñ Ð¸Ð·Ñ‚Ð¸Ñ‡Ð°Ñ‰Ð° давноÑÑ‚ + + + Entries expiring within %1 day(s) + ЗапиÑи Ñ Ð¸Ð·Ñ‚Ð¸Ñ‡Ð°Ñ‰Ð° давноÑÑ‚ Ñлед %1 денЗапиÑи Ñ Ð¸Ð·Ñ‚Ð¸Ñ‡Ð°Ñ‰Ð° давноÑÑ‚ Ñлед %1 дни No current database. - ÐÑма текуща база данни. + ÐÑма текущо хранилище. No source database, nothing to do. - ÐÑма база данни източник, нищо за правене. + ÐÑма изходно хранилище. Successfully merged the database files. - УÑпешно Ñлети файловете на базата данни. + Файловете на хранилището Ñа уÑпешно ÑлÑти. Database was not modified by merge operation. - Базата данни не е модифицирана от Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾ Ñливане. + Хранилището не е променÑно от Ñливане. Search Results (%1) @@ -2305,29 +2400,41 @@ This is definitely a bug, please report it to the developers. No Results ÐÑма резултати + + Save + Запазване + + + Enter a unique name or overwrite an existing search from the list: + Въведете друго име или презапишете ÑъщеÑтвуващо търÑене от ÑпиÑъка: + + + Save Search + Запазване на търÑенето + Lock Database? - Заключване на базата данни? + Заключване на хранилището? You are editing an entry. Discard changes and lock anyway? - Редактирате запиÑ. ОтхвърлÑне на промените и заключване въпреки това? + ПроменÑте запиÑ. ОтхвърлÑне на промените и заключване въпреки това? "%1" was modified. Save changes? - "%1" е променен. -Да Ñе запишат ли промените? + Хранилището „%1“ е променено. +Да бъдат ли запазени промените? Database was modified. Save changes? - Базата данни е променена. -Да Ñе запишат ли промените? + Хранилището е променено. +Да бъдат ли запазени промените? Save changes? - Да Ñе запишат ли промените? + Да бъдат ли запазени промените? File has changed @@ -2335,7 +2442,7 @@ Save changes? The database file has changed. Do you want to load the changes? - Файлът Ñ Ð±Ð°Ð·Ð°Ñ‚Ð° данни е променен. ИÑкате ли да заредите промените? + Файлът Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ÐµÑ‚Ð¾ е променен. Желаете ли промените да бъдат заредени? Merge Request @@ -2344,13 +2451,13 @@ Save changes? The database file has changed and you have unsaved changes. Do you want to merge your changes? - Файлът Ñ Ð±Ð°Ð·Ð°Ñ‚Ð° данни е променен и имате незапиÑани промени. -ИÑкате ли да обедините вашите промени? + Файлът Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ÐµÑ‚Ð¾ е променен, а имате незапиÑани промени. +Желаете ли да промените да бъдат ÑлÑти? Could not open the new database file while attempting to autoreload. Error: %1 - Ðе можа да Ñе отвори Ð½Ð¾Ð²Ð¸Ñ Ñ„Ð°Ð¹Ð» Ñ Ð±Ð°Ð·Ð°Ñ‚Ð° данни при опит за автоматично презареждане. + При опит за автоматично презареждане новиÑÑ‚ файл на хранилището не е отворен. Грешка: %1 @@ -2360,12 +2467,12 @@ Error: %1 KeePassXC has failed to save the database multiple times. This is likely caused by file sync services holding a lock on the save file. Disable safe saves and try again? - KeePassXC не уÑÐ¿Ñ Ð´Ð° запази базата данни нÑколко пъти. Това вероÑтно Ñе дължи на уÑлугите за ÑÐ¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° файлове, които заключват запиÑа на файла. -ЗабранÑване на безопаÑното запазване и опитайте отново? + KeePassXC нÑколко пъти не уÑÐ¿Ñ Ð´Ð° запази хранилището. ВероÑтна причина е уÑлугата за Ñинхронизиране на файлове, коÑто е заключила файла за пиÑане. +ЗабранÑване на безопаÑното запазване и повторен опит? Writing the database failed: %1 - Грешка при Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° базата данни: %1 + Грешка при пиÑане в хранилището: %1 Passwords @@ -2373,15 +2480,15 @@ Disable safe saves and try again? Save database as - ЗапиÑване на база данни като + Запазване на данните като KeePass 2 Database - KeePass 2 база данни + Хранилище на KeePass 2 Save database backup - ЗапиÑване на резервно копие на базата данни + Запазване на резервно копие на данните Empty recycle bin? @@ -2389,15 +2496,20 @@ Disable safe saves and try again? Are you sure you want to permanently delete everything from your recycle bin? - ÐаиÑтина ли иÑкате да изтриете завинаги вÑичко от кошчето? + Желаете ли вÑичко от кошчето да бъде безвъзвратно премахнато? Could not find database file: %1 - Файлът Ñ Ð±Ð°Ð·Ð°Ñ‚Ð° данни не може да бъде намерен: %1 + Файлът Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ÐµÑ‚Ð¾ не може да бъде намерен: %1 - - Entries expiring within %1 day(s) - + + New Database + Ðово хранилище + + + %1 [New Database] + Database tab name modifier + %1 [Ðово хранилище] @@ -2408,19 +2520,19 @@ Disable safe saves and try again? Advanced - Допълнителни + Разширени Icon - Икона + Пиктограма Auto-Type - Auto-Type + Ðвтоматично въвеждане Browser Integration - Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð° браузъра + Съчетаване Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸ четци <empty URL> @@ -2432,7 +2544,7 @@ Disable safe saves and try again? Are you sure you want to remove this URL? - ÐаиÑтина ли иÑкате да премахнете този URL? + Желаете ли адреÑÑŠÑ‚ да бъде премахнат? Properties @@ -2440,15 +2552,15 @@ Disable safe saves and try again? History - ИÑÑ‚Ð¾Ñ€Ð¸Ñ + Ð¥Ñ€Ð¾Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñ SSH Agent - SSH Agent + Ðгент на SSH n/a - n/a + липÑва (encrypted) @@ -2460,7 +2572,7 @@ Disable safe saves and try again? Entry history - ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° запиÑа + Ð¥Ñ€Ð¾Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñ Ð½Ð° запиÑа Add entry @@ -2468,49 +2580,53 @@ Disable safe saves and try again? Edit entry - Редактиране на Ð·Ð°Ð¿Ð¸Ñ + ПроменÑне на Ð·Ð°Ð¿Ð¸Ñ Some Browser Integration settings are overridden by group settings. - + ÐÑкои наÑтройки на Ñъчетаването Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ† Ñа презапиÑани от наÑтройки на групата. Invalid Entry - Ðевалиден Ð·Ð°Ð¿Ð¸Ñ + Ðеприемлив Ð·Ð°Ð¿Ð¸Ñ An external merge operation has invalidated this entry. Unfortunately, any changes made have been lost. - Външна Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð·Ð° обединÑване е анулирала този запиÑ. -За Ñъжаление, вÑички направени промени Ñа загубени. + Външна Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ð° Ñливане е анулирала запиÑа. +За Ñъжаление, вÑички промени Ñа загубени. Auto-Type Validation Error - + Грешка при потвърждаване на автоматично въвеждане An error occurred while validating the custom Auto-Type sequence: %1 Would you like to correct it? - + Грешка при потвърждаване на потребителÑката поÑледователноÑÑ‚ за автоматично въвеждане: +%1 +Желаете ли грешката да бъде отÑтранена? An error occurred while validating the Auto-Type sequence for "%1": %2 Would you like to correct it? - + Грешка при потвърждаване на поÑледователноÑтта за автоматично въвеждане на „%1“: +%2 +Желаете ли грешката да бъде отÑтранена? Entry updated successfully. - ЗапиÑÑŠÑ‚ е актуализиран уÑпешно. + ЗапиÑÑŠÑ‚ е обновен. Unsaved Changes - ÐезапиÑани промени + Ðезапазени промени Would you like to save changes to this entry? - Желаете ли да запишете промените в този запиÑ? + Желаете ли промените в запиÑа да бъдат запазени? New attribute @@ -2522,7 +2638,7 @@ Would you like to correct it? Are you sure you want to remove this attribute? - ÐаиÑтина ли иÑкате да премахнете този атрибут? + Желаете ли атрибутът да бъде премахнат? Reveal @@ -2530,27 +2646,27 @@ Would you like to correct it? [PROTECTED] Press Reveal to view or edit - [ЗÐЩИТЕÐО] ÐатиÑнете "Показане", за да видите или редактирате + [ЗÐЩИТЕÐО] ÐатиÑнете „Показване“, за да видите или промените Hide Скриване + + %n hour(s) + %n чаÑ%n чаÑа + %n week(s) - %n Ñедмица(а)%n Ñедмица(и) + %n Ñедмица%n Ñедмици %n month(s) - %n меÑец(а)%n меÑец(а) + %n меÑец%n меÑеца %n year(s) - %n година(а)%n година(е) - - - %n hour(s) - + %n година%n години @@ -2569,15 +2685,15 @@ Would you like to correct it? Add a new attribute - ДобавÑне на нов атрибут + ДобавÑне на атрибут Add - Добавите + ДобавÑне Remove selected attribute - Премахни Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ + Премахване на Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ Remove @@ -2585,19 +2701,19 @@ Would you like to correct it? Edit attribute name - Редактиране на име на атрибут + ПромÑна на името на атрибут Edit Name - Редактиране на името + ПроменÑне на името Toggle attribute protection - Превключване на защита на атрибути + Превключване на защитата на атрибут Protect - Защити + Защитен атрибут Show a protected attribute @@ -2609,27 +2725,27 @@ Would you like to correct it? Attachments - ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ + Прикачени файлове If checked, the entry will not appear in reports like Health Check and HIBP even if it doesn't match the quality requirements. - + Ðко е отметнато, запиÑÑŠÑ‚ нÑма да приÑÑŠÑтва в отчети като Проверка на ÑÑŠÑтоÑнието и HIBP, дори и да не Ð¾Ñ‚Ð³Ð¾Ð²Ð°Ñ€Ñ Ð½Ð° изиÑкваниÑта за качеÑтво. Exclude from database reports - Изключване от отчетите на базата данни + Изключване от отчетите на хранилището Foreground Color: - ЦвÑÑ‚ преден план: + ЦвÑÑ‚ текÑта: Foreground color selection - Избор на цвÑÑ‚ за преден план + Избор на цвÑÑ‚ за текÑта Background Color: - ЦвÑÑ‚ заден план: + ЦвÑÑ‚ на фона: Background color selection @@ -2640,80 +2756,80 @@ Would you like to correct it? EditEntryWidgetAutoType Enable Auto-Type for this entry - Разреши Auto-Type за този Ð·Ð°Ð¿Ð¸Ñ + Включване на автоматичното въвеждане за запиÑа Inherit default Auto-Type sequence from the group - ÐаÑледена поÑледователноÑÑ‚ Auto-Type по подразбиране от групата + ÐаÑледÑване на подразбираната поÑледователноÑÑ‚ за автоматично въвеждане от групата Use custom Auto-Type sequence: - Използвана перÑонализирана Auto-Type поÑледователноÑÑ‚ + Използване на Ñледната поÑледователноÑÑ‚ за автоматично въвеждане: Custom Auto-Type sequence - ПерÑонализирана Auto-Type поÑледователноÑÑ‚ + ПотребителÑка поÑледователноÑÑ‚ за автоматично въвеждане Open Auto-Type help webpage - ОтварÑне на уеб Ñтраницата за помощ за Auto-Type + ÐžÑ‚Ð²Ð°Ñ€Ñ Ñтраницата Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ за автоматично въвеждане Window Associations - ÐÑÐ¾Ñ†Ð¸Ð°Ñ†Ð¸Ñ Ð½Ð° прозореца + Обвързване Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€Ñ†Ð¸ Existing window associations - СъщеÑтвуващи аÑоциации Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€Ñ†Ð¸ + СъщеÑтвуващи връзки Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€Ñ†Ð¸ Add new window association - ДобавÑне на нова аÑÐ¾Ñ†Ð¸Ð°Ñ†Ð¸Ñ Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ† - - - Remove selected window association - Премахване на избраната аÑÐ¾Ñ†Ð¸Ð°Ñ†Ð¸Ñ Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ† - - - Window title: - Заглавие на прозорец: - - - You can use an asterisk (*) to match everything - Можете да използвате звездичка (*), за да ÑъответÑтва на вÑичко - - - Set the window association title - Задаване на заглавието на аÑоциациÑта Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ† - - - You can use an asterisk to match everything - Можете да използвате звездичка, за да ÑъответÑтва на вÑичко - - - Use a specific sequence for this association: - Използвайте конкретна поÑледователноÑÑ‚ за тази аÑоциациÑ: - - - Custom Auto-Type sequence for this window - ПерÑонализирана Auto-Type поÑледователноÑÑ‚ + Ð”Ð¾Ð±Ð°Ð²Ñ Ð²Ñ€ÑŠÐ·ÐºÐ° Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ† + Add item + + + Remove selected window association + Премахва избраната връзка Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ† + - Remove item - + + Window title: + Заглавие на прозорец: + + + You can use an asterisk (*) to match everything + Звездичката (*) Ñъвпада ÑÑŠÑ Ð·Ð°Ð³Ð»Ð°Ð²Ð¸Ñта на вÑички прозорци + + + Set the window association title + Задава заглавието на връзката Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ† + + + You can use an asterisk to match everything + Звездичката Ñъвпада ÑÑŠÑ Ð·Ð°Ð³Ð»Ð°Ð²Ð¸Ñта на вÑички прозорци + + + Use a specific sequence for this association: + Използване на Ñледната поÑледователноÑÑ‚ за тази връзка: + + + Custom Auto-Type sequence for this window + ПотребителÑка поÑледователноÑÑ‚ за автоматично въвеждане за този прозорец + EditEntryWidgetBrowser These settings affect to the entry's behaviour with the browser extension. - Тези наÑтройки порменÑÑ‚ поведението на запиÑа Ñ Ñ€Ð°Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸ÐµÑ‚Ð¾ за браузър. + Тези наÑтройки променÑÑ‚ поведението на запиÑа ÑпрÑмо разширението на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ†. General @@ -2721,35 +2837,35 @@ Would you like to correct it? Hide this entry from the browser extension - Скриване на този елемент от разширението на браузъра + Скриване на елемента от разширението на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ† Skip Auto-Submit for this entry - ПропуÑкане на автоматично подаване за този Ð·Ð°Ð¿Ð¸Ñ + Без автоматично изпращане на формулÑÑ€ Ñ Ñ‚Ð¾Ð·Ð¸ Ð·Ð°Ð¿Ð¸Ñ Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. - Изпращане Ñамо на тази наÑтройка към браузъра за HTTP Auth диалози. Ðко е включено, нормалните форми за влизане нÑма да покажат този Ð·Ð°Ð¿Ð¸Ñ Ð·Ð° ÑелекциÑ. + Изпраща към Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ† този Ð·Ð°Ð¿Ð¸Ñ Ñамо при диалози за HTTP Auth. Ðко е отметнато, този Ð·Ð°Ð¿Ð¸Ñ Ð½Ñма да е доÑтъпен за обикновените формулÑри за вход. Use this entry only with HTTP Basic Auth - Използвай този Ð·Ð°Ð¿Ð¸Ñ Ñамо Ñ HTTP Basic Auth + Използване на запиÑа Ñамо Ñ HTTP Basic Auth Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. - Ðе изпращай тази наÑтройка към браузъра за HTTP Auth прозорци. При активиране, HTTP Auth прозорците нÑма да покажат този Ð·Ð°Ð¿Ð¸Ñ Ð·Ð° избор. + Ðе изпраща към Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ† този Ð·Ð°Ð¿Ð¸Ñ Ð¿Ñ€Ð¸ диалози за HTTP Auth. Ðко е отметнато, този Ð·Ð°Ð¿Ð¸Ñ Ð½Ñма да е доÑтъпен за диалозите за HTTP Auth. Do not use this entry with HTTP Basic Auth - Ðе използвай този Ð·Ð°Ð¿Ð¸Ñ Ñ HTTP Basic Auth + Без използване на запиÑа Ñ HTTP Basic Auth Additional URL's - Допълнителни URL-и + Допълнителни адреÑи Add - Добавите + ДобавÑне Remove @@ -2757,18 +2873,18 @@ Would you like to correct it? Edit - Редактиране + ПроменÑне EditEntryWidgetHistory Entry history selection - Избор на запиÑи от хронологиÑта + Избиране на предишно ÑÑŠÑтоÑние на Ð·Ð°Ð¿Ð¸Ñ Show entry at selected history state - Показване на Ð·Ð°Ð¿Ð¸Ñ Ð² избраното ÑÑŠÑтоÑние от хронологиÑта + Показва запиÑа в избраното ÑÑŠÑтоÑние Show @@ -2776,7 +2892,7 @@ Would you like to correct it? Restore entry to selected history state - ВъзÑтановÑване на запиÑа в избраното ÑÑŠÑтоÑние от хронологиÑта + ВъзÑтановÑва запиÑа в избраното ÑÑŠÑтоÑние Restore @@ -2784,121 +2900,117 @@ Would you like to correct it? Delete selected history state - Изтриване на избраното ÑÑŠÑтоÑние от хронологиÑта + Премахва избраното ÑÑŠÑтоÑние Delete - Триене + Премахване Delete all history - Изтриване на цÑлата Ñ…Ñ€Ð¾Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñ + Премахва цÑлата Ñ…Ñ€Ð¾Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñ Delete all - Триене на вÑичко + Премахване на вÑичко EditEntryWidgetMain Edit Entry - Редактиране на Ð·Ð°Ð¿Ð¸Ñ + ПроменÑне на Ð·Ð°Ð¿Ð¸Ñ Notes field - Поле за бележки - - - Toggle the checkbox to reveal the notes section. - ПоÑтавете отметка в квадратчето, за да разкриете раздела за бележки. + Поле за бележка Username field Поле за потребителÑко име - - Toggle notes visible - Превключване на видимоÑтта на бележките - - - Notes: - Бележки: - Expiration field - Поле за изтичане на Ñрока + Поле за давноÑÑ‚ Expiration Presets - Предварителни наÑтройки за изтичане на Ñрока + Предварителни наÑтройки за давноÑÑ‚ Expiration presets - Предварителни наÑтройки за изтичане на Ñрока + Предварителни наÑтройки за давноÑÑ‚ Presets Предваритерни наÑтройки - - Password: - Парола: - - - URL: - URL: - Url field - Поле за URL + Поле за Ð°Ð´Ñ€ÐµÑ Download favicon for URL - ИзтеглÑне на favicon за URL - - - Title: - Заглавие: + Ð˜Ð·Ñ‚ÐµÐ³Ð»Ñ Ð¿Ð¸ÐºÑ‚Ð¾Ð³Ñ€Ð°Ð¼Ð° за адреÑа Title field Поле за заглавие - - Username: - ПотребителÑко име: - Password field Поле за парола Toggle expiration - Превключване на изтичането на Ñрока - - - Expires: - Изтича: - - - Tags: - + Превключва давноÑтта Tags list - + СпиÑък Ñ ÐµÑ‚Ð¸ÐºÐµÑ‚Ð¸ + + + &Username: + &Потребител: + + + &Title: + &Заглавие: + + + &Password: + &Парола: + + + UR&L: + &ÐдреÑ: + + + &Notes: + &Бележка: + + + Toggle notes visibility + Превключва видимоÑтта на бележката + + + T&ags: + &Етикети: + + + &Expires: + &Изтичаща давноÑÑ‚: EditEntryWidgetSSHAgent Form - Форма + ФормулÑÑ€ Remove key from agent when database is closed/locked - Премахване на ключа от агента при затварÑне/заключване на базата данни + Премахване на ключа от агента при затварÑне/заключване на хранилището Comment @@ -2906,11 +3018,11 @@ Would you like to correct it? Add key to agent when database is opened/unlocked - ДобавÑне на ключ към агента при отварÑне/отключване на базата данни + ДобавÑне на ключ към агента при отварÑне/отключване на хранилището Decrypt - ЗаклеймÑвам + Разшифроване Fingerprint @@ -2918,7 +3030,7 @@ Would you like to correct it? Copy to clipboard - Копиране в клипборда + Копиране Public key @@ -2928,23 +3040,9 @@ Would you like to correct it? Private key ЧаÑтен ключ - - External file - Външен файл - - - Browser for key file - Избор на файл-ключ - - - - Browse… - Button for opening file dialog - - Attachment - Приложение + Прикачен файл External key file @@ -2958,29 +3056,46 @@ Would you like to correct it? Remove from agent Премахване от агента + + External file + Външен файл + + + Browser for key file + Избор на файл-ключ + + + Browse… + Button for opening file dialog + Избор… + + + Generate + Създаване + Select attachment file - Избор на прикачен файл + Избиране на прикачен файл Require user confirmation when this key is used - ИзиÑкване на потвърждение от Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ð¿Ñ€Ð¸ използване на този ключ + Потвърждаване от Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ð¿Ñ€Ð¸ използване на ключа n/a - n/a + липÑва Remove key from agent after - Премахване на ключ Ñлед + Премахване на ключа от агента Ñлед Remove key from agent after specified seconds - Премахване на ключа от агента Ñлед указани Ñекунди + Премахване на ключа от агента Ñлед ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð±Ñ€Ð¾Ð¹ Ñекунди seconds - Ñекунди + Ñекунди @@ -2991,11 +3106,7 @@ Would you like to correct it? Icon - Икона - - - Browser Integration - Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð° браузъра + Пиктограма Properties @@ -3007,73 +3118,89 @@ Would you like to correct it? Edit group - Редактиране на група + ПроменÑне на група Group has unsaved changes - + Групата има незапазени промени + + + Browser Integration + Съчетаване Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð² четец Enable - Включване + Включено Disable - Изключване + Изключено Inherit from parent group (%1) - ÐаÑледÑване от родителÑката група (% 1) + ÐаÑледÑва Ñе от родителÑката група (%1) EditGroupWidgetBrowser - - Edit Group - Редактиране на група - These settings affect to the group's behaviour with the browser extension. - + Тези наÑтройки променÑÑ‚ поведението на групата ÑпрÑмо разширението на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ†. Hide entries from browser extension: - + Скриване на запиÑи от разширението на четеца: Hide entries from browser extension toggle for this and sub groups - + Превключвател за Ñкриване на запиÑи от разширението на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ† за групата и нейните подгрупи Skip Auto-Submit for entries: - + Без автоматично изпращане на формулÑри: Skip Auto-Submit toggle for this and sub groups - + Превключвател за изключване на автоматичното изпращане на формулÑри за групата и нейните подгрупи Use entries only with HTTP Basic Auth: - + Използване на запиÑите Ñамо Ñ HTTP Basic Auth: Only HTTP Auth toggle for this and sub groups - + Превключвател за използване на запиÑите Ñамо при HTTP Auth за групата и нейните подгрупи Do not use entries with HTTP Basic Auth: - + Без използване на запиÑите Ñ HTTP Basic Auth: Do not use HTTP Auth toggle for this and sub groups - + Превключвател за изключване на използването на запиÑите Ñамо при HTTP Auth за групата и нейните подгрупи + + + Omit WWW subdomain from matching: + ПропуÑкане на WWW при търÑене на Ñъвпадение: + + + Omit WWW subdomain from matching toggle for this and sub groups + Превключвател за пропуÑкане на поддомейна WWW при търÑене на ÑÑŠÐ²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ð² групата и нейните подгрупи + + + Restrict matching to given browser key: + Огранич. на Ñъвпаден. до определен ключ на четец: + + + Restrict matching to given browser key toggle for this and sub groups + Превключвател за ограничаване на ÑъвпадениÑта до определен ключ на мрежов четец в групата и нейните подгрупи EditGroupWidgetKeeShare Sharing mode field - Споделне на поле за режим + Поле за вида на ÑподелÑнето Password field @@ -3081,7 +3208,7 @@ Would you like to correct it? Type: - Тип: + Вид: Password: @@ -3093,35 +3220,35 @@ Would you like to correct it? Path to share file field - Път до ÑподелÑне на общи реÑурÑи + Поле за път за ÑподелÑне на файл Browse for share file - Избор на Ñподелен файл + Избор на файл, който да бъде Ñподелен Browse… - + Избор… Clear fields - ИзчиÑти полетата + ИзчиÑтване на полетата Clear - ПочиÑти + ИзчиÑтване Inactive - Ðеактивен + Изключен Import - Импортиране + ВнаÑÑне Export - ЕкÑпортиране + ИзнаÑÑне Synchronize @@ -3130,68 +3257,68 @@ Would you like to correct it? Your KeePassXC version does not support sharing this container type. Supported extensions are: %1. - Вашата KeePassXC верÑÐ¸Ñ Ð½Ðµ поддържа ÑподелÑнето на този тип контейнер. + Това издание на KeePassXC не поддържа ÑподелÑне на този вид контейнери. Поддържаните Ñ€Ð°Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ñа: %1. %1 is already being exported by this database. - %1 вече Ñе екÑпортира от тази база данни. + ПътÑÑ‚ „%1“ вече е изнеÑен от това хранилище. %1 is already being imported by this database. - %1 вече е импортиран от тази база данни. + ПътÑÑ‚ „%1“ вече е внеÑен в това хранилище. %1 is being imported and exported by different groups in this database. - %1 Ñе импортира и екÑпортира от различни групи в тази база данни. + ПътÑÑ‚ „%1“ Ñе внаÑÑ Ð¸ изнаÑÑ Ð¾Ñ‚ различни групи в това хранилище. KeeShare is currently disabled. You can enable import/export in the application settings. KeeShare is a proper noun - KeeShare е изключено в момента. Можете да разрешите импортиране/екÑпортиране в наÑтройките на приложението. + Работата на KeeShare в момента е изключена. Можете да включите внаÑÑне/изнаÑÑне от наÑтройките на приложението. Database export is currently disabled by application settings. - ЕкÑпортирането на база данни в момента е изключено от наÑтройките на приложението. + ИзнаÑÑнето на данни в момента е изключено от наÑтройките на приложението. Database import is currently disabled by application settings. - Импортирането на база данни в момента е изключено от наÑтройките на приложението. + ИзнаÑÑнето на данни в момента е изключено от наÑтройките на приложението. KeeShare container - + Контейнер на KeeShare KeeShare signed container - KeeShare подпиÑан контейнер + ПодпиÑан контейнер от KeeShare Select import source - Избор на източник за импортиране + Избор на източник при внаÑÑне Select export target - Изберете целта за екÑпортиране + Избор на цел при изнаÑÑне Select import/export file - Изберете файл за импортиране/екÑпортиране + Избор на файл за внаÑÑне/изнаÑÑне EditGroupWidgetMain Edit Group - Редактиране на група + ПроменÑне на група Toggle expiration - Превключване на изтичането на Ñрока + Превключване на давноÑтта Expires: - Изтича: + Изтичаща давноÑÑ‚: Name field @@ -3199,15 +3326,15 @@ Supported extensions are: %1. Expiration field - Поле за изтичане на Ñрока + Поле за давноÑÑ‚ Use default Auto-Type sequence of parent group - Използвай Auto-Type поÑледователноÑтта по подразбиране на родителÑката група + Използване на поÑледователноÑтта за автоматично въвеждане по подразбиране от родителÑката група Auto-Type: - Auto-Type: + Ðвтоматично въвеждане: Search: @@ -3215,19 +3342,19 @@ Supported extensions are: %1. Auto-Type toggle for this and sub groups - Превключване на Auto-Type за тази и подгрупите Ñ + Превключвател за автоматичното въвеждане за групата и нейните подгрупи Notes: - Бележки: + Бележка: Default auto-type sequence field - Поле за auto-type поÑледователноÑÑ‚ по подразбиране + Поле за поÑледователноÑтта за автоматично въвеждане Notes field - Поле бележки + Поле бележка Name: @@ -3235,78 +3362,74 @@ Supported extensions are: %1. Set default Auto-Type sequence - Задаване на Auto-Type поÑледователноÑÑ‚ по подразбиране + Задаване на подразбирана поÑледователноÑÑ‚ за автоматично въвеждане Search toggle for this and sub groups - Превключване на търÑенето за тази група и подгрупите Ñ + Превключвател за търÑенето за групата и нейните подгрупи EditWidgetIcons Use default icon - Използване на иконата по подразбиране + Използване на подразбирана пиктограма Use custom icon - Използване на икона по избор + Използване на пиктограма по избор Choose icon… - + Избиране на пиктограма… Set the URL to use to search for a favicon - + Задава адреÑа, на който да бъде търÑена пиктограма. Favicon URL - + ÐÐ´Ñ€ÐµÑ Ð½Ð° пиктограма Download favicon for URL - ИзтеглÑне на фавикон за URL + ИзтеглÑне на пиктограма за Ð°Ð´Ñ€ÐµÑ Download favicon - ИзтеглÑне на favicon + ИзтеглÑне на пиктограма Apply selected icon to subgroups and entries - Прилагане на избраната икона към подгрупи и запиÑи + Прилагане на избраната пиктограма към подгрупи и запиÑи Apply icon to… - + Прилагане на пиктограма към… Apply to this group only - Приложи Ñамо към тази група + Прилагане Ñамо към тази група Also apply to child groups - Прилага Ñе и за подгрупи + Прилагане и към подгрупите Also apply to child entries - + Прилагане и към дъщерните запиÑи Also apply to all children - Прилага Ñе и за вÑички деца + Прилагане и към дъщерни елементи Unable to fetch favicon. - Ðе може да Ñе изтегли favicon. - - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Можете да активирате уÑлугата за икона на DuckDuckGo в ИнÑтрументи -> ÐаÑтройки -> СигурноÑÑ‚ + Грешка при изтеглÑне на пиктограмата. Existing icon selected. - Избрана е ÑъщеÑтвуваща икона. + Избрана е ÑъщеÑтвуваща пиктограма. Images @@ -3322,26 +3445,30 @@ Supported extensions are: %1. Successfully loaded %1 of %n icon(s) - %1 от %n иконата(ите) е уÑпешно заредена%1 от %n иконата(ите) е уÑпешно заредена + %1 от %n пиктограма е уÑпешно заредена%1 от %n пиктограми Ñа уÑпешно заредени No icons were loaded - Ðе Ñа заредени икони + Ðе Ñа заредени пиктограми %n icon(s) already exist in the database - %n иконата(ите) вече ÑъщеÑтвува в базата данни%n иконата(и) вече ÑъщеÑтвува в базата данни + %n пиктограма вече ÑъщеÑтвува в хранилището%n пиктограми вече ÑъщеÑтвуват в хранилището The following icon(s) failed: - Следната икона е проблемна:Следните икони Ñа проблемни: + Грешка ÑÑŠÑ Ñледната пиктограма:Грешка ÑÑŠÑ Ñледните пиктограми: + + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + Можете да включите уÑлугата за пиктограми на DuckDuckGo от наÑтройки на приложението -> СигурноÑÑ‚ EditWidgetProperties Created: - Създаден: + Създаване: Datetime created @@ -3349,39 +3476,39 @@ Supported extensions are: %1. Modified: - Модифициран: + ПромÑна: Datetime modified - Дата и Ñ‡Ð°Ñ Ð½Ð° промÑна + Дата и Ñ‡Ð°Ñ Ð½Ð° поÑледна промÑна Accessed: - ДоÑтъпeн: + ДоÑтъп: Datetime accessed - Дата и Ñ‡Ð°Ñ Ð½Ð° доÑтъп + Дата и Ñ‡Ð°Ñ Ð½Ð° поÑледен доÑтъп Uuid: - Uuid: + Идентификатор: Unique ID - Уникален ID + Уникален идентификатор Plugin Data - Данни за приÑтавката + Данни от разширението Plugin data - Данни за приÑтавката + Данни от разширението Remove selected plugin data - Премахване на избраните данни за приÑтавката + Премахване на избраните данни от разширението Remove @@ -3389,13 +3516,13 @@ Supported extensions are: %1. Delete plugin data? - Изтриване на данни от приÑтавката? + Изтриване на данни от разширението? Do you really want to delete the selected plugin data? This may cause the affected plugins to malfunction. - ÐаиÑтина ли иÑкате да изтриете избраните данни за приÑтавката? -Това може да доведе до неизправноÑÑ‚ на заÑегнатите приÑтавки. + Желаете ли избраните данни от разширението да бъдат премахнати? +Може да доведе до неизправноÑÑ‚ на заÑегнатите разширениÑ. Key @@ -3410,14 +3537,14 @@ This may cause the affected plugins to malfunction. Entry %1 - Clone - %1 - Клониране + %1 - копие EntryAttachments Cannot open file "%1" - + Файлът „%1“ не може да бъде отворен @@ -3435,19 +3562,19 @@ This may cause the affected plugins to malfunction. EntryAttachmentsWidget Form - Форма + ФормулÑÑ€ Attachments - ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ + Прикачени файлове Add new attachment - ДобавÑне на нов прикачен файл + ДобавÑне на прикачен файл Add - Добавите + ДобавÑне Remove selected attachment @@ -3471,15 +3598,15 @@ This may cause the affected plugins to malfunction. Open - Отвори + ОтварÑне Save selected attachment to disk - ЗапиÑване на Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸ÐºÐ°Ñ‡ÐµÐ½ файл на диÑка + Запазване на Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸ÐºÐ°Ñ‡ÐµÐ½ файл Save - Запази + Запазване Select files @@ -3487,63 +3614,65 @@ This may cause the affected plugins to malfunction. Confirm remove - Потвърдете премахването + Потвърждаване на премахване Are you sure you want to remove %n attachment(s)? - ÐаиÑтина ли иÑкате да премахнете %n прикачени файлове?ÐаиÑтина ли иÑкате да премахнете %n прикачени файлове? + Желаете ли %n прикачен фай да бъде премахнат?Желаете ли %n прикачени файла да бъдат премахнати? Save attachments - Ð—Ð°Ð¿Ð¸Ñ Ð½Ð° прикачени файлове + Запазване на прикачени файлове Unable to create directory: %1 - ДиректориÑта не може да бъде Ñъздадена: + Папката не може да бъде Ñъздадена: %1 Are you sure you want to overwrite the existing file "%1" with the attachment? - ÐаиÑтина ли иÑкате да замеÑтите ÑъщеÑÑ‚Ð²ÑƒÐ²Ð°Ñ‰Ð¸Ñ Ñ„Ð°Ð¹Ð» "%1" Ñ Ð¿Ñ€Ð¸ÐºÐ°Ñ‡ÐµÐ½Ð¸Ñ? + Желаете ли ÑъщеÑÑ‚Ð²ÑƒÐ²Ð°Ñ‰Ð¸Ñ Ñ„Ð°Ð¹Ð» „%1“ да бъде презапиÑан Ñ Ð¿Ñ€Ð¸ÐºÐ°Ñ‡ÐµÐ½Ð¸Ñ? Confirm overwrite - Потвърждаване на презапиÑването + Потвърждаване на презапиÑване Unable to save attachments: %1 - Ðе може да Ñе запишат прикачените файлове: + Прикачените файлове не могат да бъдат запазени: %1 Unable to open attachment: %1 - Ðе може да Ñе отворÑÑ‚ прикаченте файл: + ПрикачениÑÑ‚ файл не може да бъде отворен: %1 Unable to open attachments: %1 - Ðе може да Ñе отворÑÑ‚ прикачените файлове: + Прикачените файлове не могат да бъдат отворени: %1 Unable to open file(s): %1 - Ðе може да Ñе отворÑÑ‚ файлове: -%1Ðе може да Ñе отворÑÑ‚ файлове: + Файл не може да бъде отворен: +%1Файлове не могат да бъдат отворени: %1 Confirm Overwrite Attachment - + Потвърждаване на презапиÑване на прикачен файл Attachment "%1" already exists. Would you like to overwrite the existing attachment? - + ПрикачениÑÑ‚ файл „%1“ вече ÑъщеÑтвува. +Желаете ли +Желаете ли ÑъщеÑтвуващиÑÑ‚ прикачен файл да бъде презапиÑан? Confirm Attachment @@ -3554,28 +3683,30 @@ Would you like to overwrite the existing attachment? Your database may get very large and reduce performance. Are you sure to add this file? - %1 е голÑм файл (%2 МБ). -Вашата база данни може да Ñтане много голÑма и да Ñе намали производителноÑтта. + Файлът %1 е голÑм (%2 МБ). +Хранилището може да Ñтане твърде голÑмо и това да повлиÑе неблагоприÑтно върху бързодейÑтвието. -ÐаиÑтина ли иÑкате да добавите файла? +Желаете ли да файлът да бъде добавен? Attachment modified - + Променен прикачен файл The attachment '%1' was modified. Do you want to save the changes to your database? - + ПрикачениÑÑ‚ файл „%1“ е променен. +Желаете ли промените да бъдат запазени в хранилището? Saving attachment failed - + Грешка при запазване на прикачен файл Saving updated attachment failed. Error: %1 - + Грешка при запазване на Ð¾Ð±Ð½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ÐºÐ°Ñ‡ÐµÐ½ файл. +%1 @@ -3589,7 +3720,7 @@ Error: %1 EntryHistoryModel Current (%1) - + Ð’ момента (%1) Last modified @@ -3597,11 +3728,11 @@ Error: %1 Age - + ВъзраÑÑ‚ Difference - + Ð Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Size @@ -3613,7 +3744,7 @@ Error: %1 Username - Портебител + Потребител Password @@ -3621,27 +3752,27 @@ Error: %1 URL - Url + ÐÐ´Ñ€ÐµÑ Notes - Бележки + Бележка Custom Attributes - + ПотребителÑки атрибути Icon - Икона + Пиктограма Color - + ЦвÑÑ‚ Expiration - Изтичане + ДавноÑÑ‚ TOTP @@ -3649,19 +3780,19 @@ Error: %1 Custom Data - + ПотребителÑки данни Attachments - ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ + Прикачени файлове Auto-Type - Auto-Type + Ðвтоматично въвеждане Tags - + Етикети @@ -3685,7 +3816,7 @@ Error: %1 Username - Портебител + Потребител Password @@ -3693,31 +3824,31 @@ Error: %1 URL - Url + ÐÐ´Ñ€ÐµÑ Notes - Бележки + Бележка Expires - Изтича + Изтичаща давноÑÑ‚ Created - Създаден + Създаване Modified - Променен + ПромÑна Accessed - ДоÑтъпен + ДоÑтъп Attachments - ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ + Прикачени файлове Size @@ -3733,15 +3864,15 @@ Error: %1 Password Strength - + Сила на паролата Entry notes - Бележки на запиÑа + Бележка на запиÑа Entry expires at - ЗапиÑа изтича на + ЗапиÑÑŠÑ‚ е Ñ Ð´Ð°Ð²Ð½Ð¾ÑÑ‚ до Creation date @@ -3771,12 +3902,16 @@ Error: %1 Has TOTP Има TOTP + + Background Color + ЦвÑÑ‚ на фона + EntryPreviewWidget Display current TOTP value - Показване на текущата ÑтойноÑÑ‚ на TOTP + Показва текущата ÑтойноÑÑ‚ на TOTP Close @@ -3791,36 +3926,36 @@ Error: %1 Парола - Notes - Бележки + URL + ÐÐ´Ñ€ÐµÑ Expiration - Изтичане + ДавноÑÑ‚ Tags - + Етикети Tags list - + СпиÑък Ñ ÐµÑ‚Ð¸ÐºÐµÑ‚Ð¸ Username - Портебител + Потребител - URL - Url + Notes + Бележка Advanced - Допълнителни + Разширени Attachments - ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ + Прикачени файлове Attributes @@ -3848,20 +3983,24 @@ Error: %1 Share - Сподели + СподелÑне Search - ТърÑи + ТърÑене Clear - ПочиÑти + ИзчиÑтване Never Ðикога + + Double click to copy value + За да копирате ÑтойноÑтта, щракнете два пъти + Enabled Включено @@ -3870,12 +4009,20 @@ Error: %1 Disabled Изключено + + Double click to copy to clipboard + За да копирате ÑтойноÑтта, щракнете два пъти + EntryURLModel Invalid URL - Ðевалиден URL + ÐедейÑтвителен Ð°Ð´Ñ€ÐµÑ + + + Duplicate URL + Дублиран Ð°Ð´Ñ€ÐµÑ @@ -3892,57 +4039,62 @@ Error: %1 Reset to defaults Ðулиране на наÑтройките към подразбиращите Ñе + + + %1 entry(s)... + + %1 запиÑ…+ %1 запиÑа… + ExportDialog Export options - + ÐаÑтройки за изнаÑÑне Sort entries by... - + Подреждане на запиÑите по… You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! - + Ðа път Ñте да изнеÑете хранилището в нешифрован файл. Това ще направи вашите пароли и чувÑтвителна Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÑƒÑзвими! + database order - + реда в базата данни name (ascending) - + име (възходÑщ ред) name (descending) - + име (низходÑщ ред) unknown - + неизвеÑтно Export database to HTML file - ЕкÑпортиране на база данни в HTML файл + ИзнаÑÑне на данни в HTML HTML file - HTML файл + Файл на HTML FdoSecrets::DBusMgr Failed to deliver message - + Съобщението не е доÑтавено Failed to send reply on DBus - + Отговорът по DBus не е изпратен Unknown @@ -3961,38 +4113,38 @@ This will leave your passwords and sensitive information vulnerable! Another secret service is running (%1).<br/>Please stop/remove it before re-enabling the Secret Service Integration. - ИзпълнÑва Ñе друг Secret Service (%1).<br/>Спрете или премахнете, преди да активирате повторно интегрирането на Secret Service. + Ð’ момента работи друга уÑлуга за тайни (%1).<br/>Спрете Ñ Ð¸Ð»Ð¸ Ñ Ð¿Ñ€ÐµÐ¼Ð°Ñ…Ð½ÐµÑ‚Ðµ преди да включите отново Ñъчетаването Ñ Ð£Ñлуга за тайни. Failed to register DBus service at %1.<br/> - ÐеуÑпешно региÑтриране на уÑлугата DBus на % 1.<br/> + Грешка при региÑтриране на уÑлугата DBus за %1.<br/> Failed to register service on DBus at path '%1' - + Грешка при региÑтриране на уÑлуга в DBus на Ð¿ÑŠÑ‚Ñ â€ž%1“ Failed to register database on DBus under the name '%1' - + Грешка при региÑтриране на хранилище на DBus под името „%1“ Failed to register session on DBus at path '%1' - + Грешка при региÑтриране на ÑеанÑа в DBus на Ð¿ÑŠÑ‚Ñ â€ž%1“ Failed to register item on DBus at path '%1' - + Грешка при региÑтриране на елемента в DBus на Ð¿ÑŠÑ‚Ñ â€ž%1“ Failed to register prompt object on DBus at path '%1' - + Грешка при региÑтриране на обекта за запитване в DBus на Ð¿ÑŠÑ‚Ñ â€ž%1“ FdoSecrets::Item Entry "%1" from database "%2" was used by %3 - Ð—Ð°Ð¿Ð¸Ñ "%1" от база данни "%2" е използван от %3 + ЗапиÑÑŠÑ‚ „%1“ от хранилището „%2“ е използван от %3 @@ -4000,7 +4152,7 @@ This will leave your passwords and sensitive information vulnerable! %n Entry(s) was used by %1 %1 is the name of an application - %n ЗапиÑ(и) е(Ñа) използван(и) от %1%n ЗапиÑ(а) е(Ñа) използван(и) от %1 + %n Ð·Ð°Ð¿Ð¸Ñ Ðµ използван от %1%n запиÑа Ñа използвани от %1 @@ -4011,14 +4163,14 @@ This will leave your passwords and sensitive information vulnerable! Non-existing/inaccessible executable path. Please double-check the client is legit. - + ÐеÑъщеÑтвуващ/недоÑтъпен път към Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼Ð¸Ñ Ñ„Ð°Ð¹Ð». Уверете Ñе, че клиентът е доÑтоверен. FdoSecrets::SettingsDatabaseModel Unlock to show - Отключване за показване + За да видите Ñъдържанието отключете хранилището None @@ -4029,14 +4181,14 @@ This will leave your passwords and sensitive information vulnerable! FdoSecrets::UnlockPrompt %1 (PID: %2) - + %1 (PID: %2) FdoSecretsPlugin <b>Fdo Secret Service:</b> %1 - <b>Fdo Secret Service:</b> %1 + <b>УÑлуга за тайни на Fdo:</b> %1 @@ -4048,21 +4200,21 @@ This will leave your passwords and sensitive information vulnerable! %1 - Clone - %1 - Клониране + %1 - копие HibpDownloader Online password validation failed - ÐеуÑпешна онлайн проверка паролата + Грешка при отдалечено потвърждаване на паролата IconDownloaderDialog Download Favicons - ИзтеглÑне на Favicons + ИзтеглÑне на пиктограми Cancel @@ -4072,7 +4224,7 @@ This will leave your passwords and sensitive information vulnerable! Having trouble downloading icons? You can enable the DuckDuckGo website icon service in the security section of the application settings. Имате проблеми Ñ Ð¸Ð·Ñ‚ÐµÐ³Ð»Ñнето на икони? -Можете да активирате уÑлугата за икони на duckDuckGo в раздела за защита на наÑтройките на приложението. +Можете да включите уÑлугата за пиктограми на DuckDuckGo от наÑтройки на приложението -> СигурноÑÑ‚. Close @@ -4080,23 +4232,23 @@ You can enable the DuckDuckGo website icon service in the security section of th URL - Url + ÐÐ´Ñ€ÐµÑ Status - Статут + СъÑтоÑние Please wait, processing entry list… - + Изчакайте, запиÑите Ñе обработват… Downloading… - + ИзтеглÑне… Ok - OK + Добре Already Exists @@ -4104,10 +4256,151 @@ You can enable the DuckDuckGo website icon service in the security section of th Download Failed - ÐеуÑпешно изтеглÑне + Грешка при изтеглÑне Downloading favicons (%1/%2)… + ИзтеглÑне на пиктограми (%1/%2)… + + + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + СтраницаОтПомощника + + + Entry count: %1 + + + + Group + Група + + + Title + Заглавие + + + Username + Потребител + + + Password + Парола + + + Url + + + + + ImportWizardPageSelect + + Form + ФормулÑÑ€ + + + Import File Selection + + + + Password: + Парола: + + + Key File: + Файл-ключ: + + + Browse… + Избор… + + + Import Into: + + + + New Database + Ðово хранилище + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + ОтварÑне на OPVault + + + Select import file + + + + All files + Ð’Ñички файлове + + + Key files + Файлове Ñ ÐºÐ»ÑŽÑ‡ + + + Select key file + Избор на файл-ключ + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database @@ -4119,44 +4412,44 @@ You can enable the DuckDuckGo website icon service in the security section of th Close message - Съобщение при затарÑне + Ð—Ð°Ñ‚Ð²Ð°Ñ€Ñ Ñъобщението Kdbx3Reader Missing database headers - + ЛипÑващи заглавки на хранилище Unable to calculate database key - Ðе може да Ñе изчиÑли ключът на базата данни + Ключът на хранилището не може да бъде изчиÑлен Unable to issue challenge-response: %1 - Грешка при издаването на challenge-response: %1 + Грешка при Ñъздаване на предизвикване-отговор: %1 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - ПредоÑтавени Ñа невалидни идентификационни данни, опитайте отново. -Ðко това Ñе повтори вероÑтно базата данни е повредена. + ПредоÑтавени Ñа неприемливи данни за удоÑтоверÑване на доÑтъп, опитайте отново. +Ðко Ñе повтори хранилището може да е повредено. Header doesn't match hash - Хедърът не Ñъвпада Ñ Ñ…ÐµÑˆÐ° + Заглавката не Ñъвпада Ñ Ð¾Ñ‚Ð¿ÐµÑ‡Ð°Ñ‚ÑŠÐºÐ° Invalid header id size - Ðевалиден размер на id хедъра + Ðеприемлив размер на заглавката за идентификатор Invalid header field length: field %1 - + Ðеприемлива дължина на полето за заглавка: поле %1 Invalid header data length: field %1, %2 expected, %3 found - + Ðеприемлива дължина на полето за заглавка: поле %1, очаквано %2, намерено %3 @@ -4164,180 +4457,180 @@ If this reoccurs, then your database file may be corrupt. Invalid symmetric cipher IV size. IV = Initialization Vector for symmetric cipher - Ðевалиден размер на IV за ÑÐ¸Ð¼ÐµÑ‚Ñ€Ð¸Ñ‡Ð½Ð¸Ñ ÑˆÐ¸Ñ„ÑŠÑ€. + Ðеприемлив размер на ИВ на ÑÐ¸Ð¼ÐµÑ‚Ñ€Ð¸Ñ‡Ð½Ð¸Ñ ÑˆÐ¸Ñ„ÑŠÑ€. Unable to issue challenge-response: %1 - Грешка при издаването на challenge-response: %1 + Грешка при Ñъздаване на предизвикване-отговор: %1 Unable to calculate database key - Ðе може да Ñе изчиÑли ключът на базата данни + Ключът на хранилището не може да бъде изчиÑлен Kdbx4Reader missing database headers - липÑващи хедъри на базата данни + липÑващи заглавки на хранилище Unable to calculate database key: %1 - Грешка при изчиÑлÑване на ключа на базата данни: %1 + Ключът на хранилището не може да бъде изчиÑлен: %1 Invalid header checksum size - Ðевалиден размер на контролната Ñума на хедъра + Ðеприемлив размер на контролна Ñума на заглавка Header SHA256 mismatch - Sha256 неÑъответÑтвие на хедъра + Разлики в отпечатък Ñ SHA256 на заглавка Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - ПредоÑтавени Ñа невалидни идентификационни данни, опитайте отново. -Ðко това Ñе повтори вероÑтно базата данни е повредена. + ПредоÑтавени Ñа неприемливи данни за удоÑтоверÑване на доÑтъп, опитайте отново. +Ðко Ñе повтори хранилището може да е повредено. (HMAC mismatch) - (HMAC неÑъответÑтвие) + (разлики в HMAC) Unknown cipher - ÐеизвеÑтно шифър + ÐеизвеÑтен шифър Invalid header id size - Ðевалиден размер на id хедъра + Ðеприемлив размер на заглавката за идентификатор Invalid header field length: field %1 - + Ðеприемлива дължина на поле на заглавка: поле %1 Invalid header data length: field %1, %2 expected, %3 found - + Ðеприемлива дължина на полето за заглавка: поле %1, очаквано %2, намерено %3 Failed to open buffer for KDF parameters in header - ÐеуÑпешно отварÑне на буфер за KDF параметрите в хедъра + ÐеуÑпешно отварÑне на буфер за параметри на ФИК в заглавка Unsupported key derivation function (KDF) or invalid parameters - Ðеподдържана Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð° извличане на ключове (KDF) или невалидни параметри + Ðеподдържана Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð° извличане на ключ (ФИК) или неприемливи параметри Legacy header fields found in KDBX4 file. - ОÑтарели полета на хедъри намерени в KDBX4 файл. + Ðамерени Ñа изведени от употреба полета в заглавка на KDBX4 файл. Invalid inner header id size - Ðевалиден размер на Ð²ÑŠÑ‚Ñ€ÐµÑˆÐ½Ð¸Ñ id хедъра + Ðеприемлив размер на идентификатор на вътрешна заглавка Invalid inner header field length: field %1 - + Ðеприемлива дължина на полето на вътрешна заглавка: поле %1 Invalid inner header data length: field %1, %2 expected, %3 found - + Ðеприемлива дължина на полето на вътрешна заглавка: поле %1, очаквано %2, намерено %3 Invalid inner header binary size - Ðевалиден размер на binary хедъра + Ðеприемлив двоичен размер на вътрешна заглавка Unsupported KeePass variant map version. Translation: variant map = data structure for storing meta data - Ðеподдържана верÑÐ¸Ñ Ð½Ð° KeePass Ñтруктурата Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ð¸. + Ðеподдържано издание на ÑпиÑък Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð¸ на KeePass. Invalid variant map entry name length Translation: variant map = data structure for storing meta data - Ðевалидна дължина на името в Ñтруктурата Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ð¸ + Ðеприемлива дължина на името на Ð·Ð°Ð¿Ð¸Ñ Ð¾Ñ‚ ÑпиÑък Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð¸ Invalid variant map entry name data Translation: variant map = data structure for storing meta data - Ðевалидна ÑтойноÑÑ‚ на името в Ñтруктурата Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ð¸ + Ðеприемлива ÑтойноÑÑ‚ на името на Ð·Ð°Ð¿Ð¸Ñ Ð¾Ñ‚ ÑпиÑък Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð¸ Invalid variant map entry value length Translation: variant map = data structure for storing meta data - Ðевалидна дължина на ÑтойноÑтта в Ñтруктурата Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ð¸ + Ðеприемлива дължина на ÑтойноÑтта на Ð·Ð°Ð¿Ð¸Ñ Ð¾Ñ‚ ÑпиÑък Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð¸ Invalid variant map entry value data Translation comment: variant map = data structure for storing meta data - Ðевалидна ÑтойноÑÑ‚ на ÑтойноÑтта в Ñтруктурата Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ð¸ + Ðеприемлива ÑтойноÑÑ‚ на Ð·Ð°Ð¿Ð¸Ñ Ð¾Ñ‚ ÑпиÑък Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð¸ Invalid variant map Bool entry value length Translation: variant map = data structure for storing meta data - Ðевалидна дължина на Bool ÑтойноÑтта в Ñтруктурата Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ð¸ + Ðеприемлива дължина на булева ÑтойноÑÑ‚ на Ð·Ð°Ð¿Ð¸Ñ Ð¾Ñ‚ ÑпиÑък Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð¸ Invalid variant map Int32 entry value length Translation: variant map = data structure for storing meta data - Ðевалидна дължина на Int32 в Ñтруктурата Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ð¸ + Ðеприемлива дължина на ÑтойноÑÑ‚ от вид Int32 на Ð·Ð°Ð¿Ð¸Ñ Ð¾Ñ‚ ÑпиÑък Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð¸ Invalid variant map UInt32 entry value length Translation: variant map = data structure for storing meta data - Ðевалидна дължина на UInt32 в Ñтруктурата Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ð¸ + Ðеприемлива дължина на ÑтойноÑÑ‚ от вид UInt32 на Ð·Ð°Ð¿Ð¸Ñ Ð¾Ñ‚ ÑпиÑък Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð¸ Invalid variant map Int64 entry value length Translation: variant map = data structure for storing meta data - Ðевалидна дължина на Int64 в Ñтруктурата Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ð¸ + Ðеприемлива дължина на ÑтойноÑÑ‚ от вид Int64 на Ð·Ð°Ð¿Ð¸Ñ Ð¾Ñ‚ ÑпиÑък Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð¸ Invalid variant map UInt64 entry value length Translation: variant map = data structure for storing meta data - Ðевалидна дължина на UInt64 в Ñтруктурата Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ð¸ + Ðеприемлива дължина на ÑтойноÑÑ‚ от вид UInt64 на Ð·Ð°Ð¿Ð¸Ñ Ð¾Ñ‚ ÑпиÑък Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð¸ Invalid variant map entry type Translation: variant map = data structure for storing meta data - Ðевалиден типа Ð·Ð°Ð¿Ð¸Ñ Ð² Ñтруктурата Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ð¸ + Ðеприемлив вид на Ð·Ð°Ð¿Ð¸Ñ Ð¾Ñ‚ ÑпиÑък Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð¸ Invalid variant map field type size Translation: variant map = data structure for storing meta data - Ðевалиден размер на типа Ð·Ð°Ð¿Ð¸Ñ Ð² Ñтруктурата Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ð¸ + Ðеприемлив размер на полето за вид на Ð·Ð°Ð¿Ð¸Ñ Ð¾Ñ‚ ÑпиÑък Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð¸ Kdbx4Writer Invalid symmetric cipher algorithm. - Ðевалиден алгоритъм за Ñиметричено шифриране. + Ðеприемлив алгоритъм на Ñиметричен шифър. Invalid symmetric cipher IV size. IV = Initialization Vector for symmetric cipher - Ðевалиден размер на IV за ÑÐ¸Ð¼ÐµÑ‚Ñ€Ð¸Ñ‡Ð½Ð¸Ñ ÑˆÐ¸Ñ„ÑŠÑ€. + Ðеприемлив размер на ИВ на Ñиметричен шифър. Unable to calculate database key: %1 - Грешка при изчиÑлÑване на ключа на базата данни: %1 + Ключът на хранилището не може да бъде изчиÑлен: %1 Failed to serialize KDF parameters variant map Translation comment: variant map = data structure for storing meta data - ÐеуÑпешно Ñериализиране на KDF параметърите в Ñтруктурата Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ð¸ + ÐеуÑпешно предÑтавÑне на ÑпиÑък Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð¸ на параметри на ФИК KdbxReader Invalid cipher uuid length: %1 (length=%2) - Ðевалидна дължина на uuid не шифъра: %1 (дължина=%2) + Ðеприемлива дължина на идентификатор на шифър: %1 (дължина=%2) Unable to parse UUID: %1 - Грешка при анализ на UUID: %1 + Грешка при разбор на идентификатор: %1 Unsupported cipher @@ -4345,7 +4638,7 @@ If this reoccurs, then your database file may be corrupt. Invalid compression flags length - Ðевалидна дължина на флаговете за компреÑиране + Ðеприемлива дължина на флагове за компреÑиране Unsupported compression algorithm @@ -4353,185 +4646,188 @@ If this reoccurs, then your database file may be corrupt. Invalid master seed size - Ðевалиден размер на Ð³Ð»Ð°Ð²Ð½Ð¸Ñ seed + Ðеприемлив размер на оÑновно Ñеме Invalid transform seed size - Ðевалиден размер на seed за транÑформиране + Ðеприемлив размер на транÑформиращото Ñеме Invalid transform rounds size - Ðевалиден размер на рундовете за преобразуване + Ðеприемлив брой Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·ÑƒÐ²Ð°Ð½Ð¸Ñ Invalid start bytes size - Ðевалиден размер на Ñтартовите байтове + Ðеприемлив брой на началните байтове Invalid random stream id size - Ðевалиден произволен размер на идентификатора на ÑÐ»ÑƒÑ‡Ð°Ð¹Ð½Ð¸Ñ Ð¿Ð¾Ñ‚Ð¾Ðº + Ðеприемлив размер на идентификатор на Ñлучаен поток Invalid inner random stream cipher - + Ðевалиден шифър на Ñлучаен вътрешен поток Failed to read database file. - Грешка при четене на файл Ñ Ð±Ð°Ð·Ð° данни. + Грешка при четене на файл Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ðµ. The selected file is an old KeePass 1 database (.kdb). You can import it by clicking on Database > 'Import KeePass 1 database…'. This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. - + ИзбраниÑÑ‚ файл е Ñтаро хранилище на KeePass 1 (.kdb). + +Можете да го внеÑете, като изберете Хранилище > „ВнаÑÑне на хранилище от KeePass 1...“. +Това е необратим процеÑ. ÐÑма да можете да отворите внеÑеното хранилище ÑÑŠÑ Ñтарото издание на KeePassX 0.4. Not a KeePass database. - Ðе е KeePass база данни. + Ðе е хранилище на KeePass. Unsupported KeePass 2 database version. - Ðеподдържана верÑÐ¸Ñ Ð½Ð° KeePass 2 базата данни. + Ðеподдържано издание на хранилище на KeePass 2. KdbxXmlReader XML parsing failure: %1 - Грешка при xml анализ: %1 + Грешка при разбор на XML: %1 No root group - Без коренова група + ЛипÑва коренова група XML error: %1 Line %2, column %3 - XML грешка: + Грешка в XML: %1 Ред %2, колона %3 Missing icon uuid or data - ЛипÑа на uuid или данни за иконата + ЛипÑва идентификатор или данни за пиктограмата Missing custom data key or value - ЛипÑващ перÑонализиран ключ за данни или ÑтойноÑÑ‚ + ЛипÑва потребителÑки ключ за данни или ÑтойноÑÑ‚ Multiple group elements - МножеÑтво елементи на група + МножеÑтво елементи за група Null group uuid - + Идентификатор на група е Null Invalid group icon number - + Ðеприемлив идентификатор на пиктограма на групата Invalid EnableAutoType value - Ðевалидна EnableAutoType ÑтойноÑÑ‚ + Ðеприемлива ÑтойноÑÑ‚ на полето EnableAutoType Invalid EnableSearching value - Ðевалидна EnableSearching ÑтойноÑÑ‚ + Ðеприемлива ÑтойноÑÑ‚ на полето EnableSearching No group uuid found - Ðе е намерен uuid на групата + Ðе е намерен идентификатор на група Null DeleteObject uuid - + Идентификатор на DeleteObject е Null Missing DeletedObject uuid or time - ЛипÑва DeletedObject uuid или време + Идентификатор или време на DeleteObject е Null Null entry uuid - + Идентификатор на Ð·Ð°Ð¿Ð¸Ñ Ðµ Null Invalid entry icon number - + Ðевалиден номер на пиктограма на Ð·Ð°Ð¿Ð¸Ñ History element in history entry - Елемент от хронологиÑта в хронологичеÑки Ð·Ð°Ð¿Ð¸Ñ + Елемент за Ñ…Ñ€Ð¾Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñ Ð² Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° Ñ…Ñ€Ð¾Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñ No entry uuid found - Ðе е намерен uuid на запиÑа + ЗапиÑÑŠÑ‚ нÑма идентификатор History element with different uuid - ХронологичеÑки елемент Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡ÐµÐ½ uuid + Елемент от хронологиÑта Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡ÐµÐ½ идентификатор Duplicate custom attribute found - Ðамерени повтарÑщи Ñе перÑонализирани атрибути + Ðамерени повтарÑщи Ñе потребителÑки атрибути Entry string key or value missing - ЛипÑващ низов ключ или ÑтойноÑÑ‚ на запиÑа + ЛипÑват ключ или ÑтойноÑÑ‚ на запиÑа като низове. Entry binary key or value missing - ЛипÑващ двоичен ключ или ÑтойноÑÑ‚ на Ð·Ð°Ð¿Ð¸Ñ + ЛипÑват ключ или ÑтойноÑÑ‚ на запиÑа като двоични ÑтойноÑти. Auto-type association window or sequence missing - ЛипÑва аÑÐ¾Ñ†Ð¸Ð°Ð·Ð¸Ñ Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ† или поÑледователноÑÑ‚ за Auto-Type + ЛипÑва връзка Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ† или поÑледователноÑÑ‚ за автоматично въвеждане Invalid bool value - Ðевалидна бинарна ÑтойноÑÑ‚ + Ðеприемлива булева ÑтойноÑÑ‚ Invalid date time value - Ðевалидна ÑтойноÑÑ‚ за дата и Ñ‡Ð°Ñ + Ðеприемлива ÑтойноÑÑ‚ за дата и Ñ‡Ð°Ñ Invalid color value - Ðевалидна ÑтойноÑÑ‚ за цвета + Ðеприемлива ÑтойноÑÑ‚ на цвÑÑ‚ Invalid color rgb part - Ðевалидна rgb чаÑÑ‚ за цвÑÑ‚ + RGB чаÑтта от цвета е неприемлива Invalid number value - Ðевалидна чиÑлова ÑтойноÑÑ‚ + Ðеприемлива чиÑлова ÑтойноÑÑ‚ Invalid uuid value - Ðевалидна uuid ÑтойноÑÑ‚ + Ðеприемлива ÑтойноÑÑ‚ на идентификатор Unable to decompress binary Translator meant is a binary data inside an entry - Ðе може да Ñе декомпреÑира двоичените данни + Двоичната ÑтойноÑÑ‚ не може да бъде разкомпреÑирана KeeAgentSettings Invalid KeeAgent settings file structure. - Ðевалидна Ñтруктура на файла Ñ KeeAgent наÑтройки. + Ðеприемлива Ñтруктура на файла Ñ Ð½Ð°Ñтройки на KeeAgent. Private key is an attachment but no attachments provided. - ЛичниÑÑ‚ ключ е прикачен, но нÑма прикачени файлове. + ЧаÑтниÑÑ‚ ключ трÑбва да е прикачен, но прикачени файлове нÑма. Private key is empty - ЛичниÑÑ‚ ключ е празен + ЧаÑтниÑÑ‚ ключ е празен File too large to be a private key @@ -4539,29 +4835,18 @@ Line %2, column %3 Failed to open private key - ÐеуÑпешно отварÑне на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ - - - - KeePass1OpenWidget - - Import KeePass1 Database - Импортиране на KeePass1 база данни - - - Unable to open the database. - Базата данни не може да Ñе отвори. + Грешка при отварÑне на чаÑтен ключ KeePass1Reader Unable to read keyfile. - Файл-ключа не може да бъде прочетен. + Файлът-ключ не може да бъде прочетен. Not a KeePass database. - Ðе е KeePass база данни. + Ðе е хранилище на KeePass. Unsupported encryption algorithm. @@ -4569,36 +4854,36 @@ Line %2, column %3 Unsupported KeePass database version. - Ðеподдържана верÑÐ¸Ñ Ð½Ð° KeePass базата данни. + Ðеподдържано издание на хранилище на KeePass. Unable to read encryption IV IV = Initialization Vector for symmetric cipher - Ðе може да бъде прочетено шифровъчното IV + Грешка при четене на ИВ на шифър Invalid number of groups - Ðевалиден брой групи + Ðеприемлив брой групи Invalid number of entries - Ðевалиден брой запиÑи + Ðеприемлив брой запиÑи Invalid content hash size - Ðевалиден размер на хеш на Ñъдържанието + Ðеприемлив размер на отпечатък от Ñъдържание Invalid transform seed size - Ðевалиден размер на seed за транÑформиране + Ðеприемлив размер на транÑформиращото Ñеме Invalid number of transform rounds - Ðевалиден брой преобразуващи рундове + Ðеприемлив брой Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·ÑƒÐ²Ð°Ð½Ð¸Ñ Unable to construct group tree - Ðе може да Ñе изгради дърво на групите + Ðе може да бъде изградена дървовидна Ñтруктура на групите Root @@ -4606,167 +4891,167 @@ Line %2, column %3 Unable to calculate database key - Ðе може да Ñе изчиÑли ключът на базата данни + Ключът на хранилището не може да бъде изчиÑлен unable to seek to content position - не може да Ñе намери Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ð·Ð° Ñъдържанието + не може да бъде намерена определена Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ð² Ñъдържание Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - ПредоÑтавени Ñа невалидни идентификационни данни, опитайте отново. -Ðко това Ñе повтори вероÑтно базата данни е повредена. + ПредоÑтавени Ñа неприемливи данни за удоÑтоверÑване на доÑтъп, опитайте отново. +Ðко Ñе повтори хранилището може да е повредено. Key transformation failed - ÐеуÑпешно преобразуване на ключа + ÐеуÑпешно преобразуване на ключ Invalid group field type number - Ðевалиден брой на поле за групата + Ðеприемлив номер на вида на поле на група Invalid group field size - Ðевалиден размер на поле за групата + Ðеприемлив размер на поле на група Read group field data doesn't match size - + Дължината на получените данни от полето на група не Ñъвпада Incorrect group id field size - + Ðеприемлив размер на полето за идентификатор на група Incorrect group creation time field size - + Ðеприемлив размер на полето за време на Ñъздаване на група Incorrect group modification time field size - + Ðеприемлив размер на полето за време на променÑне на група Incorrect group access time field size - + Ðеприемлив размер на полето за време на поÑледен доÑтъп до група Incorrect group expiry time field size - Ðеправилен размер на полето за изтичане на времето на група + Ðеприемлив размер на полето за давноÑÑ‚ на група Incorrect group icon field size - Ðеправилен размер на поле за икона на група + Ðеприемлив размер на полето за пиктограма на група Incorrect group level field size - + Ðеприемлив размер на полето за ниво на група Invalid group field type - + Ðеприемлив вид на поле на група Missing group id or level - + ЛипÑващ идентификатор или ниво на група Missing entry field type number - + ЛипÑващ номер на вида на поле на Ð·Ð°Ð¿Ð¸Ñ Invalid entry field size - Ðевалиден размер на поле за въвеждане + Ðеприемлив размер на поле на Ð·Ð°Ð¿Ð¸Ñ Read entry field data doesn't match size - + Дължината на получените данни от полето не Ñъвпада Invalid entry UUID field size - + Ðеприемлив размер на поле за идентификатор на Ð·Ð°Ð¿Ð¸Ñ Invalid entry group id field size - + Ðеприемлив размер на поле за идентификатор на Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° група Invalid entry icon field size - + Ðеприемлив размер на поле за пиктограма на Ð·Ð°Ð¿Ð¸Ñ Invalid entry creation time field size - + Ðеприемлив размер на поле за време на Ñъздаване на Ð·Ð°Ð¿Ð¸Ñ Invalid entry modification time field size - + Ðеприемлив размер на поле за време на поÑледна промÑна на Ð·Ð°Ð¿Ð¸Ñ Invalid entry expiry time field size - + Ðеприемлив размер на поле за давноÑÑ‚ на Ð·Ð°Ð¿Ð¸Ñ Invalid entry field type - + Ðеприемливо поле за вид на Ð·Ð°Ð¿Ð¸Ñ KeeShare Invalid sharing reference - Ðевалидна препратка за ÑподелÑне + Ðеприемливо ÑподелÑне на Ñ€ÐµÑ„ÐµÑ€ÐµÐ½Ñ†Ð¸Ñ Inactive share %1 - Ðеактивено ÑподелÑне %1 + Ðеактивно ÑподелÑне %1 Imported from %1 - Импортиран от %1 + ВнеÑено от „%1“ Exported to %1 - ЕкÑпортиран в %1 + ИзнеÑено в „%1“ Synchronized with %1 - Синхронизирано Ñ %1 + Синхронизирано Ñ â€ž%1“ Import is disabled in settings - Импортирането е забранено в наÑтройките + ВнаÑÑнето е забранено от наÑтройките Export is disabled in settings - ЕкÑпортирането е забранено в наÑтройките + ИзнаÑÑнето е забранено от наÑтройките Inactive share - Ðеактивено ÑподелÑне + Ðеактивно ÑподелÑне Imported from - Импортирани от + ВнеÑено от Exported to - ЕкÑпортирани в + ИзнеÑено в Synchronized with - Синхронизирани Ñ + Синхронизирано Ñ KeyComponentWidget Key Component - Компонент на ключа + Компонент към ключа Key Component Description - ОпиÑание на компонента към ключа + ОпиÑание на компонент към ключа Cancel @@ -4781,71 +5066,69 @@ If this reoccurs, then your database file may be corrupt. KeyFileEditWidget Generate a new key file - Генериране на нов файл-ключ + Създаване на файл Ñ ÐºÐ»ÑŽÑ‡ Generate - Генериране + Създаване Generate a new key file or choose an existing one to protect your database. - + Създайте нов или изберете ÑъщеÑтвуващ файл Ñ ÐºÐ»ÑŽÑ‡, който да защити хранилището. Note: Do NOT use a file that may change as that will prevent you from unlocking your database. - + Забележка: ÐЕ използвайте файл, който може да бъде променен, защото ще бъде невъзможно да отключите хранилището! Browse for key file - Избор на файл-ключ + Избиране на файл Ñ ÐºÐ»ÑŽÑ‡ Browse… - + Избор… Old key file format - Стар файлов формат на ключа + Стар формат на файл Ñ ÐºÐ»ÑŽÑ‡ You selected a key file in an old format which KeePassXC<br>may stop supporting in the future.<br><br>Please consider generating a new key file instead. - Използвате оÑтарÑл файлов формат на ключа, който KeePass XC може да Ñпре да поддържа в бъдеще. - -ПомиÑлете за генериране на нов ключ файл. + Избрали Ñте файл Ñ ÐºÐ»ÑŽÑ‡ в оÑтарÑл формат, който KeePass XC <br>може да Ñпре да поддържа в бъдеще.<br><br>Вземете предвид възможноÑтта да Ñъздадете нов файл Ñ ÐºÐ»ÑŽÑ‡. Error loading the key file '%1' Message: %2 - Грешка при зареждане на файл-ключа "%1" + Грешка при зареждане на файла Ñ ÐºÐ»ÑŽÑ‡Ð° „%1“ Съобщение: %2 Key File - Файл-ключ + Файл Ñ ÐºÐ»ÑŽÑ‡ Add Key File - + ДобавÑне на файл Ñ ÐºÐ»ÑŽÑ‡ Change Key File - + ПроменÑне на файл Ñ ÐºÐ»ÑŽÑ‡ Remove Key File - + Премахване на файл Ñ ÐºÐ»ÑŽÑ‡ Key File set, click to change or remove - + Зададен е файл Ñ ÐºÐ»ÑŽÑ‡, щракнете за да го промените или премахнете <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out.</p> - + <p>Можете да добавите файл Ñ ÐºÐ»ÑŽÑ‡, Ñъдържащ Ñлучайни байтове за допълнителна ÑигурноÑÑ‚.</p><p>Пазете го в тайна и не го губете или ще изгубите доÑтъпа.</p> Key files - Файл-ключове + Файлове Ñ ÐºÐ»ÑŽÑ‡ All files @@ -4853,71 +5136,68 @@ Message: %2 Create Key File… - + Създаване на файл Ñ ÐºÐ»ÑŽÑ‡â€¦ Error creating key file - Грешка при Ñъздаване на файл-ключ + Грешка при Ñъздаване на файл Ñ ÐºÐ»ÑŽÑ‡ Unable to create key file: %1 - Ðе може да Ñе Ñъздаде ключ-файл: %1 + Ðе може да бъде Ñъздаден файл Ñ ÐºÐ»ÑŽÑ‡: %1 Select a key file - Избор на файл-ключ + Избиране на файл Ñ ÐºÐ»ÑŽÑ‡ Invalid Key File - Ðевалиден файл-ключ + Ðеприемлив файл Ñ ÐºÐ»ÑŽÑ‡ You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. - Ðе можете да използвате текущата база данни като ÑобÑтвен файл-ключ. Изберете друг файл или Ñъздайте нов файл-ключ. + Файлът на текущото хранилище не може да бъде използван за файл Ñ ÐºÐ»ÑŽÑ‡. +Изберете друг файл или Ñъздайте файл Ñ ÐºÐ»ÑŽÑ‡. Suspicious Key File - Подозрителен файл-ключ + Подозрителен файл Ñ ÐºÐ»ÑŽÑ‡ The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. Are you sure you want to continue with this file? - ИзбраниÑÑ‚ файл-ключ изглежда като файл Ñ Ð±Ð°Ð·Ð° данни. Файл-ключът трÑбва да е Ñтатичен файл, който никога не Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ð¸Ð»Ð¸ ще загубите доÑтъпа до вашата база данни завинаги. -ÐаиÑтина ли иÑкате да продължите Ñ Ñ‚Ð¾Ð·Ð¸ файл? + ИзбраниÑÑ‚ файл прилича на хранилище. Файлът Ñ ÐºÐ»ÑŽÑ‡ трÑбва да бъде Ñтатичен файл, който никога не Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ð² противен Ñлучай ще загубите доÑтъп до хранилището. +Желаете ли да използвате този файл? MacUtils Invalid key code - + Ðеприемлив код на клавиш Global shortcut already registered to %1 - + Тази клавишна ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ñе използва за %1 Could not register global shortcut - + Грешка при задаване на клавишна ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ MainWindow &Database - & База данни + &Хранилище &Recent Databases - &Скорошни бази данни - - - &Import - &Импортиране + &ПоÑледно използвани хранилища &Export - &ЕкÑпортиране + &ИзнаÑÑне &Help @@ -4929,12 +5209,16 @@ Are you sure you want to continue with this file? Copy Att&ribute - Копиране на атрибута + Копиране на атрибут TOTP TOTP + + Tags + Етикети + &Groups &Групи @@ -4961,75 +5245,55 @@ Are you sure you want to continue with this file? &Check for Updates - &Проверка за актуализации + П&роверка за обновÑване &Open Database… - &ОтварÑне на база данни + &ОтварÑне на хранилище &Save Database - &ЗапиÑване на базата данни + &Запазване на хранилището &Close Database - &Затвори базата данни + За&тварÑне на хранилището &New Database… - &Ðова база данни... - - - Create a new database - Създаване на нова база данни + Ðово &хранилище… &Merge From Database… - &Сливане от база данни... - - - Merge from another KDBX database - Сливане от друга KDBX база данни + &Сливане от хранилище… &New Entry… - &Ðов запиÑ... - - - Add a new entry - ДобавÑне на нов Ð·Ð°Ð¿Ð¸Ñ + Ðов &запиÑ… &Edit Entry… - &Редактиране на запиÑ... - - - View or edit entry - Преглед или редактиране на Ð·Ð°Ð¿Ð¸Ñ + П&роменÑне на запиÑ… &Delete Entry… - &Изтриване на запиÑ... + &Премахване на запиÑ… &New Group… - &Ðова група... - - - Add a new group - ДобавÑне на нова група + &Ðова група… &Edit Group… - &Редактиране на група... + П&роменÑне на група… &Delete Group… - &Изтриване на група... + &Премахване на група… Download All &Favicons… - ИзтеглÑне на вÑички &favicons... + ИзтеглÑне на вÑички &пиктограми… Sort &A-Z @@ -5041,63 +5305,39 @@ Are you sure you want to continue with this file? Sa&ve Database As… - Запазване на база данни като... + З&апазване на хранилище като… Database &Security… - База данни &Защита... + &СигурноÑÑ‚ на хранилището… Database &Reports… - - - - Statistics, health check, etc. - СтатиÑтика, проверка на здравето и др. + &Отчети за хранилището… &Database Settings… - &ÐаÑтройки на базата данни... - - - Database settings - ÐаÑтройки на базата данни + &ÐаÑтройки на хранилището… &Clone Entry… - &Клониране на запиÑ... + &Дублиране на запиÑа… Move u&p ПремеÑтване нагоре - - Move entry one step up - ПремеÑтване на запиÑа една Ñтъпка нагоре - Move do&wn ПремеÑтване надолу - - Move entry one step down - ПремеÑтване на Ð·Ð°Ð¿Ð¸Ñ Ñ ÐµÐ´Ð½Ð° Ñтъпка надолу - Copy &Username - Копиране на &Username - - - Copy username to clipboard - Копиране на потребителÑко име в клипборда + Копиране на п&Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Copy &Password - Копиране на &Паролата - - - Copy password to clipboard - Копиране на парола в клипборда + Копиране на &паролата &Settings @@ -5105,83 +5345,59 @@ Are you sure you want to continue with this file? &Password Generator - &Генератор на парола + &Създаване на парола Perform &Auto-Type - Изпълнение на &Auto-Type + Извършване на &автом. въвеждане Download &Favicon - ИзтеглÑне &Фавикон + ИзтеглÑне на &пиктограма Open &URL - ОтварÑне на &URL + ОтварÑне на &Ð°Ð´Ñ€ÐµÑ &Lock Database - + &Заключване на хранилището Lock &All Databases - + Заключване на &вÑички хранилища &Title &Заглавие - Copy title to clipboard - Копиране на заглавие в клипборда - - - &URL - &URL - - - Copy URL to clipboard - Копиране на URL в клипборда + Copy &URL + Копиране на &адреÑа &Notes - &Бележки - - - Copy notes to clipboard - Копиране на бележки в клипборда + &Бележка &CSV File… - &CSV файл... + &Файл Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»Ð¸â€¦ &HTML File… - &HTML файл... + &HTML файл… KeePass 1 Database… - KeePass 1 база данни... - - - Import a KeePass 1 database - Импортиране на KeePass 1 база данни + Хранилище на KeePass 1… 1Password Vault… - 1Password Vault… - - - Import a 1Password Vault - Импортиране на 1Password Vault + Хранилище на 1Password… CSV File… - CSV файл... - - - Import a CSV file - Импортиране на CSV файл + Файл Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»Ð¸â€¦ Show TOTP @@ -5189,27 +5405,31 @@ Are you sure you want to continue with this file? Show QR Code - Показване на QR код + Показване на код за QR Set up TOTP… - ÐаÑтройване на TOTP... + ÐаÑтройване на TOTP… Copy &TOTP Копиране на &TOTP + + Copy Password and TOTP + Копиране на паролата и TOTP + E&mpty recycle bin Изпразване на кошчето &Donate - &Дарете + &ДарÑване Report a &Bug - Съобщаване на грешка + Съобщаване за &дефект &Getting Started @@ -5217,15 +5437,11 @@ Are you sure you want to continue with this file? Open Getting Started Guide - ОтварÑне на ръководÑтвото "Първи Ñтъпки" + ÐžÑ‚Ð²Ð°Ñ€Ñ Ñ€ÑŠÐºÐ¾Ð²Ð¾Ð´Ñтвото „Първи Ñтъпки“ &Online Help - &Онлайн помощ - - - Go to online documentation - Към онлайн документациÑта + &Помощ &User Guide @@ -5233,7 +5449,7 @@ Are you sure you want to continue with this file? Open User Guide - ОтварÑне на ръководÑтвото за Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ + ÐžÑ‚Ð²Ð°Ñ€Ñ Ñ€ÑŠÐºÐ¾Ð²Ð¾Ð´Ñтвото за Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ &Keyboard Shortcuts @@ -5241,15 +5457,15 @@ Are you sure you want to continue with this file? Save Database Backup… - + Резервно копие на хранилището… Add key to SSH Agent - ДобавÑне на ключ към SSH Agent + ДобавÑне на ключ към агент на SSH Remove key from SSH Agent - Премахване на ключ от SSH Agent + Премахване на ключ от агент на SSH Compact Mode @@ -5257,7 +5473,7 @@ Are you sure you want to continue with this file? Automatic - Ðвтоматично + Ðвтоматична Light @@ -5269,19 +5485,19 @@ Are you sure you want to continue with this file? Classic (Platform-native) - КлаÑичеÑки (от платформата) + КлаÑичеÑка (от платформата) Show Toolbar - Покажи лентата Ñ Ð¸Ð½Ñтрументи + Лентата Ñ Ð¸Ð½Ñтрументи Show Preview Panel - Показване на панела за Ð²Ð¸Ð·ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ + Панел за преглед Always on Top - Винаги отгоре + Винаги най-отгоре Hide Usernames @@ -5293,39 +5509,51 @@ Are you sure you want to continue with this file? Clone Group... - + Дублиране на групата… + + + &XML File… + &Файл Ñ XML… Clear history - ИзчиÑтване на иÑториÑта + ИзчиÑтване на Ñ…Ñ€Ð¾Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñ Access error for config file %1 - Грешка при доÑтъп на ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» %1 + Грешка при доÑтъп до файла Ñ Ð½Ð°Ñтройките %1 Don't show again for this version - Ðе показвай повече за тази верÑÐ¸Ñ + ПропуÑкане на това издание WARNING: You are using an unstable build of KeePassXC. There is a high risk of corruption, maintain a backup of your databases. This version is not meant for production use. - + Ð’ÐИМÐÐИЕ: Използвате неÑтабилно издание на KeePassXC. +СъщеÑтвува виÑок риÑк от загуба на информациÑ, поддържайте резервни ÐºÐ¾Ð¿Ð¸Ñ Ð½Ð° хранилищата. +Изданието не е предназначено за ежедневна употреба. NOTE: You are using a pre-release version of KeePassXC. Expect some bugs and minor issues, this version is meant for testing purposes. - + ЗÐБЕЛЕЖКÐ: Използвате предварително издание на KeePassXC! +Очаквайте дефекти и неÑъщеÑтвени проблеми, изданието е предназначено за изпитателни цели. WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard. We recommend you use the AppImage available on our downloads page. - + Ð’ÐИМÐÐИЕ: Използваното издание на Qt може да доведе до Ñрив на KeePassXC при работа Ñ ÐµÐºÑ€Ð°Ð½Ð½Ð° клавиатура! +Препоръчваме да използвате AppImage, доÑтъпен от Ñтраницата за изтеглÑне. + + + No Tags + ЛипÑват етикети Restore Entry(s) - + ВъзÑтановÑване на запиÑВъзÑтановÑване на запиÑи Settings @@ -5333,15 +5561,15 @@ We recommend you use the AppImage available on our downloads page. Check for updates on startup? - Проверка за актуализации при Ñтартиране? + Проверка за обновÑване при Ñтартиране? Would you like KeePassXC to check for updates on startup? - ИÑкате ли KeePassXC да проверите за актуализации при Ñтартиране? + Желаете ли KeePassXC да проверÑва за обновÑване при Ñтартиране? You can always check for updates manually from the application menu. - Винаги можете да проверите за актуализации ръчно от менюто на приложението. + Винаги можете да направите ръчна проверка за обновÑване от менюто на приложението. Toggle window @@ -5351,9 +5579,13 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC Изход от KeePassXC + + %1 Entry(s) + %1 запиÑ%1 запиÑа + Please present or touch your YubiKey to continue… - + За да продължите, поÑтавете или докоÑнете хардуерниÑÑ‚ ключ… Restart Application? @@ -5361,49 +5593,317 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? - ТрÑбва да реÑтартирате приложението, за да приложите тази наÑтройка. Желаете ли да реÑтартирате Ñега? + За да бъдат приложени наÑтройките, приложението трÑбва да реÑтартира. Желаете ли да реÑтартира Ñега? + + + Allow Screen Capture + Разрешаване на екранни Ñнимки + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Passkeys… + + + Import Passkey + ВнаÑÑне на Passkey + + + Quit Application + Излиза от приложението + + + Open About Dialog + ÐžÑ‚Ð²Ð°Ñ€Ñ Ð´Ð¸Ð°Ð»Ð¾Ð³ÑŠÑ‚ „ОтноÑно“ + + + Open Database + ÐžÑ‚Ð²Ð°Ñ€Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ðµ + + + Create Database + Създава хранилище + + + Merge From Database + Слива от хранилище + + + Create Entry + Създава Ð·Ð°Ð¿Ð¸Ñ + + + Edit Entry + ÐŸÑ€Ð¾Ð¼ÐµÐ½Ñ Ð·Ð°Ð¿Ð¸Ñ + + + Delete Entry + Премахва Ð·Ð°Ð¿Ð¸Ñ + + + Create Group + Създава група + + + Edit Group + ÐŸÑ€Ð¾Ð¼ÐµÐ½Ñ Ð³Ñ€ÑƒÐ¿Ð° + + + Delete Group + Премахва група + + + Download All Favicons + Ð˜Ð·Ñ‚ÐµÐ³Ð»Ñ Ð²Ñички пиктограми + + + Sort Groups A-Z + Сортира групите Ð–Я + + + Sort Groups Z-A + Сортира групите Я–Р+ + + Save Database As + Запазва хранилището като + + + Show Database Security + Показва наÑтройките за ÑигурноÑÑ‚ на хранилището + + + Show Database Reports + Показва отчети за хранилището + + + Show Database Settings + Показва наÑтройките на хранилището + + + Show Passkeys + Показва ключове за доÑтъп + + + Clone Entry + Дублира Ð·Ð°Ð¿Ð¸Ñ + + + Move Entry Up + ПремеÑтва Ð·Ð°Ð¿Ð¸Ñ Ð½Ð°Ð³Ð¾Ñ€Ðµ + + + Move Entry Down + ПремеÑтва Ð·Ð°Ð¿Ð¸Ñ Ð½Ð°Ð´Ð¾Ð»Ñƒ + + + Copy Username + Копира потребителÑкото име + + + Copy Password + Копира паролата + + + Show Application Settings + Показва наÑтройките на приложението + + + Show Password Generator + Показва екрана за Ñъздаване на пароли + + + Perform Auto-Type: {USERNAME} + Извършва автоматично въвеждане: {USERNAME} + + + Perform Auto-Type: {USERNAME}{ENTER} + Извършва автоматично въвеждане: {USERNAME}{ENTER} + + + Perform Auto-Type: {PASSWORD} + Извършва автоматично въвеждане: {PASSWORD} + + + Perform Auto-Type: {PASSWORD}{ENTER} + Извършва автоматично въвеждане: {PASSWORD}{ENTER} + + + Perform Auto-Type: {TOTP} + Извършва автоматично въвеждане: {TOTP} + + + Copy Title + Копира заглавието + + + Copy URL + Копира адреÑа + + + Copy Notes + Копира бележката + + + Export to CSV + ИзнаÑÑ Ð²ÑŠÐ² файл Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»Ð¸ + + + Export to HTML + ИзнаÑÑ Ð²ÑŠÐ² файл Ñ HTML + + + Import KeePass1 Database + ВнаÑÑ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ðµ на KeePass1. + + + Import 1Password Vault + ВнаÑÑ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ðµ на 1Password + + + Import CSV File + ВнаÑÑ Ð¾Ñ‚ файл Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»Ð¸ + + + Show TOTP QR Code + Показва кода за QR + + + Set up TOTP + ÐаÑтройва TOTP + + + Empty Recycle Bin + Изпразва кошчето + + + Open Donation Website + ÐžÑ‚Ð²Ð°Ñ€Ñ Ñтраницата за дарÑване + + + Open Bug Report + ÐžÑ‚Ð²Ð°Ñ€Ñ Ñ„Ð¾Ñ€Ð¼ÑƒÐ»Ñра за Ñъобщаване на дефект + + + Open Online Documentation + ÐžÑ‚Ð²Ð°Ñ€Ñ Ñтраницата Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñта + + + Open Keyboard Shortcuts Guide + ÐžÑ‚Ð²Ð°Ñ€Ñ Ñ€ÑŠÐºÐ¾Ð²Ð¾Ð´Ñтвото за клавишни комбинации + + + Save Database Backup + Запазва резервно копие на хранилището + + + SSH Agent: Add Key + Ðгент на SSH: Ð´Ð¾Ð±Ð°Ð²Ñ ÐºÐ»ÑŽÑ‡ + + + SSH Agent: Remove Key + Ðгент на SSH: премахва ключ + + + Toggle Compact Mode + Превключва ÐºÐ¾Ð¼Ð¿Ð°ÐºÑ‚Ð½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼ + + + Set Theme: Automatic + Задава тема: автоматична + + + Set Theme: Light + Задава тема: Ñветла + + + Set Theme: Dark + Задава тема: тъмна + + + Set Theme: Classic + Задава тема: клаÑичеÑка + + + Toggle Show Toolbar + Превключва лентата Ñ Ð¸Ð½Ñтрументи + + + Toggle Show Preview Panel + Превключва панела за преглед + + + Toggle Always on Top + Превключва ÑÑŠÑтоÑнието "най-отгоре“ на приложението + + + Toggle Hide Usernames + Превключва Ñкриването на потребителÑките имена + + + Toggle Hide Passwords + Превключва Ñкриването на паролите + + + Export to XML + ИзнаÑÑ Ð²ÑŠÐ² файл Ñ XML + + + Toggle Allow Screen Capture + Превключва разрешението за правене на екранни Ñнимки ManageDatabase Database settings - ÐаÑтройки на базата данни + ÐаÑтройки на хранилището Edit database settings - Редактиране на наÑтройките на базата данни + ÐŸÑ€Ð¾Ð¼ÐµÐ½Ñ Ð½Ð°Ñтройките на хранилището Unlock database - Отключване на базата данни + Отключване на хранилище Unlock database to show more information - Отключване на базата данни за показване на повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ + За подробноÑти отключете хранилището Lock database - Заключване на базата данни + Заключване на хранилището ManageSession Disconnect - Разедини + ПрекъÑване на връзката Disconnect this application - Разедини това приложение + ПрекъÑва връзката Ñ Ñ‚Ð¾Ð²Ð° приложение Reset - + Ðулиране Reset any remembered decisions for this application - + Ðулира запазените Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð² това приложение @@ -5414,55 +5914,35 @@ We recommend you use the AppImage available on our downloads page. Relocating %1 [%2] - ПремеÑтване на % 1 [%2] + ПремеÑтване на %1 [%2] Overwriting %1 [%2] ПрезапиÑване %1 [%2] - - older entry merged from database "%1" - по-Ñтари запиÑи, обединени от база данни "%1" - - - Adding backup for older target %1 [%2] - - - - Adding backup for older source %1 [%2] - - - - Reapplying older target entry on top of newer source %1 [%2] - - - - Reapplying older source entry on top of newer target %1 [%2] - - Synchronizing from newer source %1 [%2] Синхронизиране от по-Ð½Ð¾Ð²Ð¸Ñ Ð¸Ð·Ñ‚Ð¾Ñ‡Ð½Ð¸Ðº %1 [%2] Synchronizing from older source %1 [%2] - Синхронизиране от по-ÑÑ‚Ð°Ñ€Ð¸Ñ Ð¸Ð·Ñ‚Ð¾Ñ‡Ð½Ð¸Ðº %1 [% 2] + Синхронизиране от по-ÑÑ‚Ð°Ñ€Ð¸Ñ Ð¸Ð·Ñ‚Ð¾Ñ‡Ð½Ð¸Ðº %1 [%2] Deleting child %1 [%2] - + Премахване на наÑледник %1 [%2] Deleting orphan %1 [%2] - + Премахване на Ñирак %1 [%2] Changed deleted objects - + ПромÑна на премахнати обекти Adding missing icon %1 - ДобавÑне на липÑваща икона %1 + ДобавÑне на липÑваща пиктограма %1 Removed custom data %1 [%2] @@ -5477,7 +5957,7 @@ We recommend you use the AppImage available on our downloads page. NewDatabaseWizard Create a new KeePassXC database… - + Създаване на хранилище на KeePassXC… Root @@ -5489,34 +5969,26 @@ We recommend you use the AppImage available on our downloads page. NewDatabaseWizardPage WizardPage - + СтраницаОтПомощника Encryption Settings - ÐаÑтройки на шифроване + ÐаÑтройки на шифроването Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - Тук можете да коригирате наÑтройките за шифроване на база данни. Ðе Ñе притеÑнÑвайте, можете да ги промените по-къÑно в наÑтройките на базата данни. - - - Advanced Settings - Разширени наÑтройки - - - Simple Settings - ОпроÑтени наÑтройки + Тук можете да наÑтроите шифроването на хранилището. Ðо не Ñе притеÑнÑвайте, можете да направите промени и по-къÑно в наÑтройките на хранилището. NewDatabaseWizardPageDatabaseKey Database Credentials - Идентификационни данни на база данни + ДоÑтъп до хранилището A set of credentials known only to you that protects your database. - Ðабор от идентификационни данни, извеÑтни Ñамо за ваÑ, които защитават вашата база данни. + Ðабор от данни за Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¸Ð·Ð²ÐµÑтни Ñамо на ваÑ, Ñлужещи за защита на хранилището. @@ -5527,92 +5999,83 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - Тук можете да коригирате наÑтройките за шифроване на база данни. Ðе Ñе притеÑнÑвайте, можете да ги промените по-къÑно в наÑтройките на базата данни. + Тук можете да наÑтроите шифроването на хранилището. Ðо не Ñе притеÑнÑвайте, можете да направите промени и по-къÑно в наÑтройките на хранилището. NewDatabaseWizardPageMetaData General Database Information - Обща Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° база данни + Обща Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° хранилището Please fill in the display name and an optional description for your new database: - МолÑ, попълнете име и незадължително опиÑание за новата Ñи база данни: + Въведете име и незадължително опиÑание на новото хранилище: NixUtils Password Manager - Мениджър на пароли + Управление на пароли Global shortcut already registered to %1 - + Тази клавишна ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ñе използва за %1 Could not register global shortcut - + Грешка при задаване на клавишна ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ OpData01 Invalid OpData01, does not contain header - Ðевалиден OpData01, не Ñъдържа хедър + Ðеприемлив OpData01, не Ñъдържа заглавка Unable to read all IV bytes, wanted 16 but got %1 - Ðе може да Ñе прочетат вÑички IV байта, нужни Ñа 16, но имам %1 + Грешка при прочитане на ИВ, необходими Ñа 16 байта, получени %1 Unable to init cipher for opdata01: %1 - Ðе може да Ñе инициализира шифъра за opdata01: %1 + Грешка при подготвÑне на шифъра за opdata01: %1 Unable to read all HMAC signature bytes - Ðе може да Ñе прочетат вÑички байтове на HMAC подпиÑа + Грешка при прочитане на Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ñ HMAC Malformed OpData01 due to a failed HMAC - Ðеправилно оформен OpData01 поради грешен HMAC + Ðеправилен OpData01 поради грешен HMAC Unable to process clearText in place - Ðе може да Ñе извърши обработката на текÑта на мÑÑто + Съдържанието на clearText не може да бъде обработено на мÑÑто. Expected %1 bytes of clear-text, found %2 - Очаквано %1 байта текÑÑ‚, намерени %2 - - - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Четене на база данни не е генерирана инÑÑ‚Ð°Ð½Ñ†Ð¸Ñ -%1 + Очаквани %1 байта чиÑÑ‚ текÑÑ‚, получени %2 OpVaultReader Directory .opvault must exist - ДиректориÑта .opvault трÑбва да ÑъщеÑтвува + Папката „.opvault“ трÑбва да ÑъщеÑтвува Directory .opvault must be readable - ДиректориÑта .opvault трÑбва да бъде четима + Папката „.opvault“ трÑбва да е четима Directory .opvault/default must exist - Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ .opvault/default трÑбва да ÑъщеÑтвува + Папката „.opvault/default“ трÑбва да ÑъщеÑтвува Directory .opvault/default must be readable - Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ .opvault/default трÑбва да е четима + Папката „.opvault/default“ трÑбва да е четима Unable to decode masterKey: %1 @@ -5620,14 +6083,14 @@ We recommend you use the AppImage available on our downloads page. Unable to derive master key: %1 - + Грешка при извличане на оÑновен ключ: %1 OpenSSHKey Invalid key file, expecting an OpenSSH key - Ðевалиден файл Ñ ÐºÐ»ÑŽÑ‡Ð°, очаква Ñе openSSH ключ + ÐедейÑтвителен файл Ñ ÐºÐ»ÑŽÑ‡, очакван е ключ на OpenSSH PEM boundary mismatch @@ -5635,39 +6098,43 @@ We recommend you use the AppImage available on our downloads page. Base64 decoding failed - Base64 декодирането е неуÑпешно + Грешка при декодиране на Base64 Key file way too small. - Файлът Ñ ÐºÐ»ÑŽÑ‡Ð° е твърде малък. + Файлът Ñ ÐºÐ»ÑŽÑ‡ е твърде малък. Key file magic header id invalid - ID-то на магичеÑÐºÐ¸Ñ Ñ…ÐµÐ´ÑŠÑ€ на файла-ключ е невалиден + Ðеприемлив идентификатор на магичеÑка заглавка на файл Ñ ÐºÐ»ÑŽÑ‡ Found zero keys - Ðамерени нула ключа + Ðамерени Ñа нула ключа Failed to read public key. - Ðе може да Ñе прочете Ð¿ÑƒÐ±Ð»Ð¸Ñ‡ÐµÐ½Ð¸Ñ ÐºÐ»ÑŽÑ‡. + Публичен ключ не може да бъде прочетен. Corrupted key file, reading private key failed - Повреден файл Ñ ÐºÐ»ÑŽÑ‡Ð°, четенето на чаÑтен ключ е неуÑпешно + Файл Ñ ÐºÐ»ÑŽÑ‡ е повреден, грешка при прочитане на чаÑтен ключ Unsupported key type: %1 - Ðеподдържан тип ключ: %1 + Ðеподдържан вид на ключ: %1 No private key payload to decrypt - + ÐÑма данни, които да бъдат разшифровани Ñ Ñ‡Ð°Ñтен ключ Unknown cipher: %1 - ÐеизвеÑтно шифър: %1 + ÐеизвеÑтен шифър: %1 + + + AES-256/GCM is currently not supported + Стандартът AES-256/GCM в момента не Ñе поддържа Passphrase is required to decrypt this key @@ -5675,86 +6142,238 @@ We recommend you use the AppImage available on our downloads page. Key derivation failed: %1 - + Грешка при извличане на ключ: %1 Cipher IV is too short for MD5 kdf - Шифъровачното IV е твърде кратък за MD5 kdf + ИВ на шифъра е твърде кратък за ФИК Ñ MD5 Unknown KDF: %1 - ÐеизвеÑтен KDF: %1 + ÐеизвеÑтна ФИК: %1 Failed to initialize cipher: %1 - + Грешка при подготовка на шифър: %1 Decryption failed: %1 - + Грешка при разшифроване: %1 Decryption failed, wrong passphrase? - ÐеуÑпешено дешифриране, грешна фраза за доÑтъп? + Грешка при разшифроване, грешна фраза за доÑтъп? Unexpected EOF while reading key - + Ðеочакван край на файл при четене на ключ Unsupported key part - + Ðеподдържана чаÑÑ‚ Ñ ÐºÐ»ÑŽÑ‡ Unexpected EOF while reading public key - Ðеочакван EOF при четене на Ð¿ÑƒÐ±Ð»Ð¸Ñ‡ÐµÐ½Ð¸Ñ ÐºÐ»ÑŽÑ‡ + Ðеочакван край на файл при четене на публичен ключ Unknown key type: %1 - ÐеизвеÑтен тип ключ: %1 + ÐеизвеÑтен вид ключ: %1 Unexpected EOF while reading private key - Ðеочакван EOF при четене на чаÑтен ключ + Ðеочакван край на файла при четене на чаÑтен ключ Can't write public key as it is empty - Ðе може да Ñе запише Ð¿ÑƒÐ±Ð»Ð¸Ñ‡ÐµÐ½Ð¸Ñ ÐºÐ»ÑŽÑ‡, тъй като е празен + Публичен ключ не може да бъде запиÑан, защото е празен Unexpected EOF when writing public key - Ðеочаквано EOF при пиÑане на Ð¿ÑƒÐ±Ð»Ð¸Ñ‡ÐµÐ½Ð¸Ñ ÐºÐ»ÑŽÑ‡ + Ðеочакван край на файла при запиÑване на публичен ключ Can't write private key as it is empty - Ðе може да Ñе запише чаÑÑ‚ÐµÐ½Ð¸Ñ ÐºÐ»ÑŽÑ‡, тъй като е празен + ЧаÑтен ключ не може да бъде запиÑан, защото е празен Unexpected EOF when writing private key - Ðеочаквано EOF при Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ + Ðеочакван край на файла при запиÑване на чаÑтен ключ - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Паролите не Ñъвпадат + SSH Key Generator + Създаване на ключове за SSH - Passwords match so far - Паролите Ñъвпадат доÑега + Type + Вид - Toggle Password (%1) - Превключване на парола (%1) + Bits + Битове - Generate Password (%1) - Генериране на парола (%1) + Comment + Коментар + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - ИзнаÑÑне на Passkey - Warning: Caps Lock enabled! - Предупреждение: Caps Lock активиран! + Export the following Passkey entries. + ИзнаÑÑне на Ñледните запиÑи на Passkey. + + + Filenames will be generated with title and .passkey file extension. + Имената на файловете ще бъдат Ñъздадени от заглавието и .passkey като разширение. + + + Export entries + ИзнаÑÑне на запиÑи + + + Export Selected + ИзнаÑÑне на избраните + + + Cancel + Отказ + + + Export to folder + ИзнаÑÑне в папка + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: ИзнаÑÑне на Passkey + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + Файлът „%1.passkey“ ÑъщеÑтвува. +Желаете ли да бъде презапиÑан? + + + + Cannot open file + Файлът не може да бъде отворен + + + Cannot open file "%1" for writing. + Файлът „%1“ не може да бъде отворен за запиÑ. + + + Cannot write to file + Грешка при Ð·Ð°Ð¿Ð¸Ñ Ð²ÑŠÐ² файл + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - ВнаÑÑне на Passkey + + + Username: %1 + ПотребителÑко име: %1 + + + Group + Група + + + Database + Хранилище + + + Import Passkey + ВнаÑÑне на Passkey + + + Import + ВнаÑÑне + + + Cancel + Отказ + + + Import the following Passkey: + ВнаÑÑне на ÑÐ»ÐµÐ´Ð½Ð¸Ñ Passkey: + + + Entry + Ð—Ð°Ð¿Ð¸Ñ + + + Import the following Passkey to this entry: + ВнаÑÑне на ÑÐ»ÐµÐ´Ð½Ð¸Ñ Passkey в този запиÑ: + + + Create new entry + Създаване на Ð·Ð°Ð¿Ð¸Ñ + + + Default Passkeys group (Imported Passkeys) + Подразбирана група за Passkeys (ВнеÑени Passkeys) + + + Relying Party: %1 + ЗавиÑеща Ñтрана: %1 + + + + PasskeyImporter + + Passkey file + Файл Ñ Passkey + + + All files + Ð’Ñички файлове + + + Open Passkey file + ОтварÑне на файл Ñ Passkey + + + Cannot open file + Файлът не може да бъде отворен + + + Cannot open file "%1" for reading. + Файлът „%1“ не може да бъде отворен за четене. + + + Cannot import Passkey + Грешка при внаÑÑне на Passkey + + + Cannot import Passkey file "%1". Data is missing. + Грешка при внаÑÑне на файл Ñ Passkey „%1“. ЛипÑват данни. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + Грешка при внаÑÑне на файл Ñ Passkey „%1“. ЛипÑва / повреден чаÑтен ключ + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + Грешка при внаÑÑне на файл Ñ Passkey „%1“. +Следните данни липÑват: +%2 @@ -5773,7 +6392,7 @@ We recommend you use the AppImage available on our downloads page. Repeat password field - Поле повтарÑне на парола + Поле повтарÑне на паролата Password @@ -5781,23 +6400,23 @@ We recommend you use the AppImage available on our downloads page. Add Password - + ДобавÑне на парола Change Password - + ПромÑна на паролата Remove Password - + Премахване на паролата Password set, click to change or remove - + Зададена е парола, щракнете, за да Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸Ñ‚Ðµ или премахнете <p>A password is the primary method for securing your database.</p><p>Good passwords are long and unique. KeePassXC can generate one for you.</p> - <p>Паролата е оÑновниÑÑ‚ метод за защита на вашата база данни.</p><p>Добрите пароли Ñа дълги и уникални. KeePassXC може да генерира такава за ваÑ.</p> + <p>ОÑновниÑÑ‚ метод за защита на хранилището е паролата.</p><p>Добрите пароли Ñа дълги и уникални. KeePassXC може да Ñъздава такива пароли.</p> Passwords do not match. @@ -5808,7 +6427,7 @@ We recommend you use the AppImage available on our downloads page. PasswordGeneratorWidget Generate Password - Генериране на парола + Създаване на парола strength @@ -5821,7 +6440,7 @@ We recommend you use the AppImage available on our downloads page. Generated password - Генерирана парола + Създадена парола %p% @@ -5829,7 +6448,7 @@ We recommend you use the AppImage available on our downloads page. Regenerate password - Регенериране на парола + Повторно Ñъздаване на парола Copy password @@ -5853,11 +6472,11 @@ We recommend you use the AppImage available on our downloads page. Advanced - Допълнителни + Разширени Character Types - Типове знаци + Групи знаци Special characters @@ -5881,7 +6500,7 @@ We recommend you use the AppImage available on our downloads page. Numbers - ЧиÑла + Цифри Lower-case letters @@ -5901,11 +6520,11 @@ We recommend you use the AppImage available on our downloads page. Do not include: - Ðе включвайте: + Да не Ñе включват: Additional characters to use for the generated password - Допълнителни знаци за използване за генерираната парола + Допълнителни знаци, които да бъдат използвани при Ñъздаване на паролата Additional characters @@ -5913,19 +6532,19 @@ We recommend you use the AppImage available on our downloads page. Add non-hex letters to "do not include" list - ДобавÑне на не-шеÑтнадеÑетични букви към ÑпиÑъка "не включвай" + ДобавÑне на не-шеÑтнадеÑетични знаци към ÑпиÑъка "да не не включват" Hex Passwords - ШеÑнайÑетична парола + ШеÑтнадеÑетична парола Hex - ШеÑтнадеÑетичен + ШеÑтнадеÑетичени Character set to exclude from generated password - Ðабор от знаци за изключване от генерираната парола + Ðабор от знаци, които да не приÑÑŠÑтват в паролата Excluded characters @@ -5933,7 +6552,7 @@ We recommend you use the AppImage available on our downloads page. Also choose from: - Също изберете от: + Допълнителни знаци: Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" @@ -5941,11 +6560,11 @@ We recommend you use the AppImage available on our downloads page. Exclude look-alike characters - Изключване на подобни знаци + Изключване на еднакво изглеждащите знаци Pick characters from every group - Избиране на Ñимволи от вÑÑка група + Ðай-малко по един Ñимвол от вÑÑка група Passphrase @@ -5973,15 +6592,15 @@ We recommend you use the AppImage available on our downloads page. Delete selected wordlist - + Премахване на ÑпиÑъка Ñ Ð´ÑƒÐ¼Ð¸ Add custom wordlist - + ДобавÑне на потребителÑки ÑпиÑък Ñ Ð´ÑƒÐ¼Ð¸ character - Знак + знак Close @@ -5997,81 +6616,36 @@ We recommend you use the AppImage available on our downloads page. Regenerate password (%1) - Регенериране на паролата (%1) + Повторно Ñъздаване на парола (%1) lower case - мали букви + долен региÑтър UPPER CASE - ГЛÐÐ’ÐИ БУКВИ + ГОРЕРРЕГИСТЪР Title Case - Title Case + Ð’ÑÑка Дума (SYSTEM) - + (СИСТЕМЕÐ) Entropy: %1 bit ЕнтропиÑ: %1 бита - - Confirm Delete Wordlist - - - - Do you really want to delete the wordlist "%1"? - - - - Failed to delete wordlist - - - - Wordlists - - - - All files - Ð’Ñички файлове - - - Select Custom Wordlist - - - - Overwrite Wordlist? - - - - Wordlist "%1" already exists as a custom wordlist. -Do you want to overwrite it? - - - - Failed to add wordlist - - - - Logograms - Логограми - - - Special Characters - Специални знаци - Password Quality: %1 - КачеÑтво на паролата : %1 + КачеÑтво на паролата: %1 Poor Password quality - Слабо + Лошо Weak @@ -6088,39 +6662,136 @@ Do you want to overwrite it? Password quality Отлично + + Confirm Delete Wordlist + Потвърждаване на премахване на ÑпиÑък Ñ Ð´ÑƒÐ¼Ð¸ + + + Do you really want to delete the wordlist "%1"? + Желаете ли ÑпиÑъкът Ñ Ð´ÑƒÐ¼Ð¸ „%1“ да бъде премахнат? + + + Failed to delete wordlist + Грешка при премахване на ÑпиÑък Ñ Ð´ÑƒÐ¼Ð¸ + + + Wordlists + СпиÑъци Ñ Ð´ÑƒÐ¼Ð¸ + + + All files + Ð’Ñички файлове + + + Select Custom Wordlist + Избор на потребителÑки ÑпиÑък Ñ Ð´ÑƒÐ¼Ð¸ + + + Overwrite Wordlist? + ПрезапиÑване на ÑпиÑъка Ñ Ð´ÑƒÐ¼Ð¸? + + + Wordlist "%1" already exists as a custom wordlist. +Do you want to overwrite it? + СпиÑъкът Ñ Ð´ÑƒÐ¼Ð¸ „%1“ ÑъщеÑтвува като потребителÑки ÑпиÑък. +Желаете ли да бъде презапиÑан? + + + Failed to add wordlist + Грешка при добавÑне на ÑпиÑък Ñ Ð´ÑƒÐ¼Ð¸ + + + Logograms + Логограми + + + Special Characters + Специални знаци + + + + PasswordWidget + + Passwords do not match + Паролите не Ñъвпадат + + + Passwords match so far + Паролите за момента Ñъвпадат + + + Toggle Password (%1) + Превключване видимоÑтта на паролата (%1) + + + Generate Password (%1) + Създаване на парола (%1) + + + Warning: Caps Lock enabled! + Внимание: Caps Lock е включен! + + + Quality: %1 + КачеÑтво: %1 + + + Poor + Password quality + Лошо + + + Weak + Password quality + Слабо + + + Good + Password quality + Добро + + + Excellent + Password quality + Отлично + + + Toggle password visibility using Control + H. Open the password generator using Control + G. + Превключете видимоÑтта на паролата Ñ Control + H. Създавайте пароли Ñ Control + G. + PickcharsDialog KeePassXC - Pick Characters - + KeePassXC - Избор на знаци Select characters to type, navigate with arrow keys, Ctrl + S submits. - + Изберете знаци, които да бъдат въведени, придвижвайте Ñе ÑÑŠÑ Ñтрелките, Ctrl+S изпраща. Press &Tab between characters - + ÐатиÑнете &Табулатор между знаците QMessageBox Overwrite - Презапиши + ПрезапиÑване Delete - Триене + Премахване Move - ПремеÑти + ПремеÑтване Empty - Изпразни + Изпразване Remove @@ -6136,22 +6807,26 @@ Do you want to overwrite it? Merge - Слей + Сливане Continue - Продължи + Продължаване + + + Continue with weak password + Продължаване ÑÑŠÑ Ñлаба парола QObject Database not opened - Базата данни не е отворена + Хранилището не е отворено Database hash not available - ÐÑма хеш на база данни + Ðе е наличен отпечатък от хранилището Client public key not received @@ -6159,7 +6834,7 @@ Do you want to overwrite it? Cannot decrypt message - Съобщението не може да Ñе дешифрира + Съобщението не може да бъде разшифровано Action cancelled or denied @@ -6171,7 +6846,7 @@ Do you want to overwrite it? KeePassXC association failed, try again - KeePassXC аÑоциациÑта е неуÑпешна, опитайте отново + KeePassXC не Ñе Ñвърза, опитайте отново. Encryption key is not recognized @@ -6187,7 +6862,7 @@ Do you want to overwrite it? No URL provided - Ðе е предоÑтавен URL + Ðе е предоÑтавен Ð°Ð´Ñ€ÐµÑ No logins found @@ -6199,51 +6874,51 @@ Do you want to overwrite it? Cannot create new group - Ðе може да Ñе Ñъздаде нова група + Ðова група не може да бъде Ñъздадена No valid UUID provided - + Ðе е предоÑтавен дейÑтвителен идентификатор Unknown error - ÐеизвеÑтна грешка + Ðеочаквана грешка Browser Integration - Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð° браузъра + Съчетаване Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð² четец Browser Plugin Failure - ÐеуÑпех в Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€Ð½Ð¸Ñ Ð¿Ð»ÑŠÐ³Ð¸Ð½ + Грешка в разширение на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ† Could not save the native messaging script file for %1. - + Файла ÑÑŠÑ Ñкрипта за приÑъщите ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð° %1 не е запазен. Username for the entry. - ПотребителÑко име за запиÑа. + ПотребителÑко име на запиÑа. username - потребитерÑко име + потребителÑко име URL for the entry. - URL за запиÑа. + ÐÐ´Ñ€ÐµÑ Ð½Ð° запиÑа. URL - Url + ÐÐ´Ñ€ÐµÑ Notes for the entry. - Бележки за запиÑа. + Бележка към запиÑа. Notes - Бележки + Бележка Prompt for the entry's password. @@ -6251,23 +6926,23 @@ Do you want to overwrite it? Generate a password for the entry. - Генериране на парола за запиÑа. + Създаване на парола за запиÑа. Add a new entry to a database. - ДобавÑне на нов Ð·Ð°Ð¿Ð¸Ñ ÐºÑŠÐ¼ база данни. + ДобавÑне на Ð·Ð°Ð¿Ð¸Ñ ÐºÑŠÐ¼ хранилище. Path of the entry to add. - Път на запиÑа за добавÑне. + Път на запиÑа, който да бъде добавен. Cannot generate a password and prompt at the same time. - + Ðе може да бъде Ñъздавана парола и да бъде извеждано запитване за парола едновременно. Could not create entry with path %1. - Ðе може да Ñе Ñъздаде Ð·Ð°Ð¿Ð¸Ñ Ñ Ð¿ÑŠÑ‚ %1. + Ð—Ð°Ð¿Ð¸Ñ Ñ Ð¿ÑŠÑ‚ %1 не може да бъде Ñъздаден. Enter password for new entry: @@ -6275,23 +6950,23 @@ Do you want to overwrite it? Writing the database failed %1. - Грешка при Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° базата данни: %1 + Грешка при Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° хранилището: %1 Successfully added entry %1. - УÑпешно добавен Ð·Ð°Ð¿Ð¸Ñ %1. + ЗапиÑÑŠÑ‚ %1 е добавен. Adds a new group to a database. - Ð”Ð¾Ð±Ð°Ð²Ñ Ð½Ð¾Ð²Ð° група към база данни. + Ð”Ð¾Ð±Ð°Ð²Ñ Ð½Ð¾Ð²Ð° група към хранилище. Path of the group to add. - ПътÑÑ‚ на групата за добавÑне. + Път, където да бъде добавена групата. Group %1 already exists! - Групата %1 вече ÑъщеÑтвува! + Групата %1 ÑъщеÑтвува! Group %1 not found. @@ -6299,11 +6974,11 @@ Do you want to overwrite it? Successfully added group %1. - УÑпешно добавена група %1. + Групата %1 е добавена. Check if any passwords have been publicly leaked. FILENAME must be the path of a file listing SHA-1 hashes of leaked passwords in HIBP format, as available from https://haveibeenpwned.com/Passwords. - Проверете дали има публичен доÑтъп до пароли. FILENAME трÑбва да бъде Ð¿ÑŠÑ‚Ñ Ð½Ð° файл, който включва SHA-1 хешове на пароли, пропуÑкани в HIBP формат, както е налично от https://haveibeenpwned.com/Passwords. + Проверете дали има пароли, които Ñа публично разкрити. FILENAME трÑбва да бъде пътÑÑ‚ към файл, който Ñъдържа отпечатъци Ñ SHA-1 на разкритите пароли във формата на HIBP, както е наличен на https://haveibeenpwned.com/Passwords. FILENAME @@ -6311,157 +6986,157 @@ Do you want to overwrite it? Path to okon-cli to search a formatted HIBP file - + Път, в който okon-cli да търÑи за файл във формата на HIBP okon-cli - + okon-cli Analyze passwords for weaknesses and problems. - Ðнализирай паролите за ÑлабоÑти и проблеми. + ПроверÑва пароли за ÑлабоÑти и проблеми. Cannot find HIBP file: %1 - + Файлът на HIBP не може да бъде намерен: %1 Evaluating database entries using okon… - + ОценÑване на запиÑите в хранилището поÑредÑтвом okon… Failed to open HIBP file %1: %2 - Грешка при отварÑне на ФÐЙЛР%1: %2 + Грешка при отварÑне на файла на HIBP %1: %2 Evaluating database entries against HIBP file, this will take a while… - + ОценÑване на запиÑите в хранилището ÑпрÑмо файл на HIBP. Ще отнеме извеÑтно време… Password for '%1' has been leaked %2 time(s)! - Паролата за '%1' е изтекла %2 път!Паролата за '%1' е изтекла %2 пъти! + Паролата за „%1“ е разкрита %2 път!Паролата за „%1“ е разкрита %2 пъти! Password for '%1' has been leaked! - Паролата за '%1' е изтекла! + Паролата за „%1“ е разкрита! Export an attachment of an entry. - + ИзнаÑÑне на прикачен файл към запиÑ. Path of the entry with the target attachment. - + Път към запиÑа Ñ Ð¿Ñ€Ð¸ÐºÐ°Ñ‡ÐµÐ½ файл. Name of the attachment to be exported. - + Име на прикачениÑÑ‚ файл, който да бъде изнеÑен. Path to which the attachment should be exported. - + ПътÑÑ‚, където прикачениÑÑ‚ файл да бъде изнеÑен. Could not find entry with path %1. - Ðе може да Ñе намери Ð·Ð°Ð¿Ð¸Ñ Ñ Ð¿ÑŠÑ‚ %1. + Ð—Ð°Ð¿Ð¸Ñ Ñ Ð¿ÑŠÑ‚ %1 не може да бъде намерен. Could not find attachment with name %1. - + Прикачен файл Ñ Ð¸Ð¼Ðµ %1 не може да бъде намерен. No export target given. Please use '--stdout' or specify an 'export-file'. - + Ðе е указана цел за изнаÑÑн. Използвайте '--stdout' или поÑочете 'export-file'. Could not open output file %1. - + Файлът %1 не може да бъде отворен за запиÑ. Successfully exported attachment %1 of entry %2 to %3. - + ПрикачениÑÑ‚ файл %1 е изнеÑен от Ð·Ð°Ð¿Ð¸Ñ %2 в %3 Overwrite existing attachments. - + ПрезапиÑване на ÑъщеÑтвуващите прикачени файлове. Imports an attachment to an entry. - + ВнаÑÑ Ð¿Ñ€Ð¸ÐºÐ°Ñ‡ÐµÐ½ файл в избран запиÑ. Path of the entry. - + Път към запиÑа. Name of the attachment to be added. - + Име на прикачен файл, който да бъде добавен. Path of the attachment to be imported. - + Път към прикачен файл, който да бъде внеÑен. Attachment %1 already exists for entry %2. - + ПрикачениÑÑ‚ файл %1 вече е добавен в Ð·Ð°Ð¿Ð¸Ñ %2. Could not open attachment file %1. - + ПрикачениÑÑ‚ файлът %1 не може да бъде отворен. Successfully imported attachment %1 as %2 to entry %3. - + ПрикачениÑÑ‚ файл %1 е добавен уÑпешно като %2 в Ð·Ð°Ð¿Ð¸Ñ %3. Remove an attachment of an entry. - + Премахване на прикачен файл от избран запиÑ. Name of the attachment to be removed. - + Име на прикачен файл, който да бъде премахнат. Successfully removed attachment %1 from entry %2. - + ПрикачениÑÑ‚ файл %1 от Ð·Ð°Ð¿Ð¸Ñ %2 е премахнат уÑпешно. Copy the given attribute to the clipboard. Defaults to "password" if not specified. Don't translate "password", it refers to the attribute. - Копирайте Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ в клипборда. По подразбиране е "password", ако не е зададен. + Копиране на даден атрибут в междинната памет. Ðко не е зададен използва "password". Copy the current TOTP to the clipboard (equivalent to "-a totp"). - Копирай Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ TOTP в клипборда (еквивалентно на "-a totp"). + Копиране на Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ ÐºÐ¾Ð´ за TOTP в междинната памет (Ñъщото като "-a totp"). Must match only one entry, otherwise a list of possible matches is shown. - + ТрÑбва да Ñъвпада Ñамо Ñ ÐµÐ´Ð¸Ð½ запиÑ, в противен Ñлучай Ñе показва ÑпиÑък ÑÑŠÑ ÑъвпадениÑта. Copy an entry's attribute to the clipboard. - Копиране на атрибут на запиÑа в клипборда. + Копиране на атрибут на запиÑа. Path of the entry to clip. clip = copy to clipboard - + Път към запиÑа, който да бъде копиран. Timeout before clearing the clipboard (default is %1 seconds, set to 0 for unlimited). - + Изчакване преди междинната памет да бъде изчиÑтена (по подразбиране - %1 Ñекунди, 0 премахва ограничението). Invalid timeout value %1. - Ðевалидна ÑтойноÑÑ‚ на таймаут %1. + Ðеприемлива ÑтойноÑÑ‚ на изчакване %1. Multiple entries matching: - ÐÑколко запиÑа, които Ñъвпадат: + Съвпада повече от един запиÑ: Using matching entry: %1 - + Съвпадащ запиÑ: %1 Entry %1 not found. @@ -6469,7 +7144,7 @@ Do you want to overwrite it? ERROR: Please specify one of --attribute or --totp, not both. - ГРЕШКÐ: МолÑ, поÑочете --attribute, --totp или и двете. + ГРЕШКÐ: ПоÑочете --attribute, --totp или и двете. Entry with path %1 has no TOTP set up. @@ -6477,39 +7152,39 @@ Do you want to overwrite it? ERROR: attribute %1 is ambiguous, it matches %2. - Грешка: атрибут %1 е двуÑмиÑлен, Ñъвпада Ñ %2. + Грешка: атрибутът %1 е двуÑмиÑлен, Ñъвпада Ñ %2. Attribute "%1" not found. - Ðе е намерен атрибут "%1". + Ðтрибутът „%1“ не е намерен. Entry's "%1" attribute copied to the clipboard! - Ðтрибутът на запиÑа "%1" е копиран в клипборда! + Ðтрибутът на запиÑа „%1“ е копиран! Clearing the clipboard in %1 second(s)... - ИзчиÑтване на клипборда Ñлед %1 Ñекунда...ИзчиÑтване на клипборда Ñлед %1 Ñекунди... + ИзчиÑтване на междинната памет Ñлед %1 Ñекунда…ИзчиÑтване на междинната памет Ñлед %1 Ñекунди… Clipboard cleared! - Клипборда е изчиÑтен! + Междинната памет е изчиÑтена! Close the currently opened database. - ЗатворÑне на текущо отворената база данни. + ЗатварÑне на отвореното хранилище. Display this help. - Покажи тази помощ. + Показване на помощта. Silence password prompt and other secondary outputs. - Заглуши промпта за паролата и други вотороÑтепенни изходи. + Без запитване за парола и други Ð¸Ð·Ð²ÐµÐ¶Ð´Ð°Ð½Ð¸Ñ Ñ Ð½Ð¸Ñък приоритет. Key file of the database. - Файл-ключа на базата данни. + Файлът Ñ ÐºÐ»ÑŽÑ‡ на хранилището. path @@ -6517,79 +7192,85 @@ Do you want to overwrite it? Deactivate password key for the database. - Деактивиране на парола за базата данни. + Без използване на парола за хранилището. Yubikey slot and optional serial used to access the database (e.g., 1:7370001). - + ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð½Ð° YubiKey и по желание Ñериен номер за доÑтъп до хранилището (напр. 1:7370001). slot[:serial] - + позициÑ[:Ñериен-номер] Missing positional argument(s). - + ЛипÑват подредени аргументи. Too many arguments provided. - - - - Target decryption time in MS for the database. - Целево време за дешифриране на базата в MS. - - - time - Време - - - Set the key file for the database. - Задаване на файл-ключа за базата данни. - - - Set a password for the database. - Задайте парола за базата данни. - - - Create a new database. - Създаване на нова база данни. + Подадени Ñа твърде много аргументи. Path of the database. - Път на базата данни. + Път до хранилището. + + + Target decryption time in MS for the database. + Целево време за разшифроване на хранилището в милиÑекунди. + + + time + време + + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Задава файл Ñ ÐºÐ»ÑŽÑ‡ за хранилището. +Тази наÑтройка е изведена от употреба, вмеÑто Ð½ÐµÑ Ð¸Ð·Ð¿Ð¾Ð»Ð·Ð²Ð°Ð¹Ñ‚Ðµ „--set-key-file“. + + + Set the key file for the database. + Задаване на файл Ñ ÐºÐ»ÑŽÑ‡ за хранилището. + + + Set a password for the database. + Задаване на парола за хранилището. + + + Create a new database. + Създаване на ново хранилище. Invalid decryption time %1. - Ðевалидно време за дешифриране %1. + Ðеприемливо време за разшифроване %1. Target decryption time must be between %1 and %2. - Целевото реме за дешифриране трÑбва да бъде между %1 и %2. + Целевото време за разшифроване трÑбва да бъде между %1 и %2. Failed to set database password. - ÐеуÑпешно задаване на парола за базата данни. + Грешка при задаване на парола за хранилището. Loading the key file failed - Зареждането на файл-ключа е неуÑпешно + Грешка при зареждане на файл Ñ ÐºÐ»ÑŽÑ‡ No key is set. Aborting database creation. - Ðе е зададен ключ. ПрекратÑване на Ñъздаването на база данни. + Ðе е зададен ключ. ПрекратÑване на Ñъздаването на хранилище. Benchmarking key derivation function for %1ms delay. - + Измерване на производителноÑтта на функциÑта за извличане на ключове при закъÑнение от %1 мÑ. Setting %1 rounds for key derivation function. - + Задаване на %1 Ð¸Ð·Ð²Ð¸ÐºÐ²Ð°Ð½Ð¸Ñ Ð·Ð° функциÑта за извличане на ключове. error while setting database key derivation settings. - + грешка при задаване на наÑтройки за извличане на ключ на хранилище. File %1 already exists. @@ -6597,297 +7278,71 @@ Do you want to overwrite it? Failed to save the database: %1. - Грешка при запиÑване на базата данни: %1. + Грешка при запазване на хранилището: %1. Successfully created new database. - УÑпешно Ñъздадена нова база данни. + Създадено е ново хранилище. - Word count for the diceware passphrase. - + Unset the password for the database. + Премахване на парола от хранилище. - count - CLI parameter - брой + Unset the key file for the database. + Премахване на файл Ñ ÐºÐ»ÑŽÑ‡ от хранилище. - Wordlist for the diceware generator. -[Default: EFF English] - + Edit a database. + ПроменÑне на хранилище. - Generate a new random diceware passphrase. - + Cannot use %1 and %2 at the same time. + „%1“ и „%2“ не могат да бъдат използвани едновременно. - Invalid word count %1 - Ðевалиден брой думи %1 + Could not change the database key. + Ключът за хранилището не може да бъде Ñменен. - The word list is too small (< 1000 items) - СпиÑъкът Ñ Ð´ÑƒÐ¼Ð¸ е твърде малък (< 1000 елемента) - - - Title for the entry. - Заглавие на запиÑа. - - - title - заглавие - - - Edit an entry. - Редактиране на запиÑ. - - - Path of the entry to edit. - Път към запиÑа за редактиране. - - - Not changing any field for entry %1. - Без провени в полетата за запиÑа %1. - - - Enter new password for entry: - Въведете нова парола за запиÑа: + Database was not modified. + Хранилището не е променено. Writing the database failed: %1 - Грешка при Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° базата данни: %1 + Грешка при запиÑване на хранилището: %1 - Successfully edited entry %1. - УÑпешно редактиран Ð·Ð°Ð¿Ð¸Ñ %1. + Successfully edited the database. + Хранилището е променено. - Perform advanced analysis on the password. - Извършване на разширен анализ на паролата. + Cannot remove password: The database does not have a password. + Паролата не може да бъде премахната: хранилището нÑма парола. - Password for which to estimate the entropy. - Парола за коÑто да Ñе оцени ентропиÑта. + Cannot remove file key: The database does not have a file key. + Файлът Ñ ÐºÐ»ÑŽÑ‡ не може да бъде премахнат: хранилището нÑма файл Ñ ÐºÐ»ÑŽÑ‡. - Estimate the entropy of a password. - Оцени ентропиÑта на паролата. + Loading the new key file failed: %1 + Грешка при зареждане на Ð½Ð¾Ð²Ð¸Ñ Ñ„Ð°Ð¹Ð» Ñ ÐºÐ»ÑŽÑ‡: %1 - Length %1 - Дължина %1 + Found unexpected Key type %1 + Ðамерен е неочакван вид на ключа %1 - Entropy %1 - Ð•Ð½Ñ‚Ñ€Ð¾Ð¿Ð¸Ñ %1 - - - Log10 %1 - Логаритъм10 %1 - - - Multi-word extra bits %1 - - - - Type: Bruteforce - Тип: Ð‘Ñ€ÑƒÑ‚Ñ„Ð¾Ñ€Ñ - - - Type: Dictionary - Тип: Речник - - - Type: Dict+Leet - Тип: Речник+Leet - - - Type: User Words - Тип: Уличен жаргон - - - Type: User+Leet - Тип: ПотребителÑки+Leet - - - Type: Repeated - Тип: ПовтарÑщи Ñе - - - Type: Sequence - Тип: ПоÑледователноÑÑ‚ - - - Type: Spatial - Тип: ПроÑтранÑтвен - - - Type: Date - Тип: Дата - - - Type: Bruteforce(Rep) - Тип: БрутафорÑ(повтарÑеми) - - - Type: Dictionary(Rep) - Тип: Речник (повт.) - - - Type: Dict+Leet(Rep) - Тип: Речник+Leet(повт.) - - - Type: User Words(Rep) - Тип: ПотребителÑки думи(повт.) - - - Type: User+Leet(Rep) - Тип: ПотребителÑки+Leet(повт.) - - - Type: Repeated(Rep) - Тип: ПовтарÑщи Ñе(повт.) - - - Type: Sequence(Rep) - Тип: ПоÑледователноÑÑ‚(повт.) - - - Type: Spatial(Rep) - Тип: ПроÑтранÑтвено(повт.) - - - Type: Date(Rep) - Тип: Дата(повт.) - - - Type: Unknown (%1) - - - - Entropy %1 (%2) - Ð•Ð½Ñ‚Ñ€Ð¾Ð¿Ð¸Ñ %1 (%2) - - - *** Password length (%1) != sum of length of parts (%2) *** - Дължина на паролата (%1) != Ñума от дължината на чаÑтите (%2) *** - - - Exit interactive mode. - Излизане от Ð¸Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼. - - - Format to use when exporting. Available choices are 'xml' or 'csv'. Defaults to 'xml'. - Формат при екÑпортиране. Ðаличните възможноÑти Ñа "xml" и "csv". По подразбиране е "xml". - - - Exports the content of a database to standard output in the specified format. - ЕкÑпортира Ñъдържанието на база данни в Ñтандартен изход в ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚. - - - Unable to export database to XML: %1 - Ðе може да Ñе екÑпортира база данни в XML: %1 - - - Unsupported format %1 - Ðеподдържан формат %1 - - - Length of the generated password - Дължина на генерираната парола - - - length - Дължина - - - Use lowercase characters - Използване на малки букви - - - Use uppercase characters - Използване на главни букви - - - Use numbers - Използване на номера - - - Use special characters - Използване на Ñпециални знаци - - - Use extended ASCII - Използвай разширен ASCII - - - Exclude character set - Изключване на набор от знаци - - - chars - Символи - - - Use custom character set - - - - Exclude similar looking characters - Изключване на подобни знаци - - - Include characters from every selected group - Включване на знаци от вÑÑка избрана група - - - Generate a new random password. - Генерирайте нова Ñлучайна парола. - - - Invalid password length %1 - Ðевалидна дължина на паролата %1 - - - Invalid password generator after applying all options - Ðевалиден генератор на пароли Ñлед прилагане на вÑички опции - - - Display command help. - Показване на помощ за командна. - - - Available commands: - Ðалични команди: - - - Import the contents of an XML database. - Импортиране на Ñъдържанието на XML база данни. - - - Path of the XML database export. - Път на екÑпортирането на XML база данни. - - - Path of the new database. - Път към новата база данни. - - - Unable to import XML database: %1 - Ðе може да Ñе импортира XML база данни:% 1 - - - Successfully imported database. - УÑпешно импортирана база данни. + Cannot remove all the keys from a database. + Ðе трÑбва да бъдат премахвани вÑички ключове от хранилище. Show a database's information. - Показване на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° базата данни. + Показване на подробноÑти за хранилище. UUID: - UUID: + Идентификатор: Name: @@ -6903,11 +7358,11 @@ Do you want to overwrite it? KDF: - KDF: + ФИК: Recycle bin is enabled. - Кошчето е включено(. + Кошчето е включено. Recycle bin is not enabled. @@ -6919,19 +7374,19 @@ Do you want to overwrite it? Database created - + Хранилището е Ñъздадено Last saved - ПоÑледно запиÑан + ПоÑледно запазване Unsaved changes - ÐезапиÑани промени + Ðезапазени промени yes - Да + да no @@ -6947,7 +7402,7 @@ Do you want to overwrite it? Number of expired entries - Брой изтекли запиÑи + Брой запиÑи Ñ Ð¸Ð·Ñ‚ÐµÐºÐ»Ð° давноÑÑ‚ Unique passwords @@ -6959,7 +7414,7 @@ Do you want to overwrite it? Maximum password reuse - МакÑимална преизползване на парола + Ðай-преизползвана парола Number of short passwords @@ -6967,7 +7422,7 @@ Do you want to overwrite it? Number of weak passwords - Брой на Ñлабите пароли + Брой Ñлаби пароли Entries excluded from reports @@ -6981,6 +7436,281 @@ Do you want to overwrite it? %1 characters %1 знака + + Word count for the diceware passphrase. + Брой думи при Ñъздаване на фраза за доÑтъп + + + count + CLI parameter + брой + + + Wordlist for the diceware generator. +[Default: EFF English] + СпиÑък Ñ Ð´ÑƒÐ¼Ð¸ при Ñъздаване на фраза за доÑтъп +[Подразбиран: EFF English] + + + Generate a new random diceware passphrase. + Създаване на произволна фраза за доÑтъп. + + + Invalid word count %1 + Ðеприемлив брой думи %1 + + + The word list is too small (< 1000 items) + СпиÑъкът Ñ Ð´ÑƒÐ¼Ð¸ е твърде ÐºÑŠÑ (< 1000 елемента) + + + Title for the entry. + Заглавие на запиÑа. + + + title + заглавие + + + Edit an entry. + ПроменÑне на запиÑ. + + + Path of the entry to edit. + Път към запиÑа, който да бъде променÑн. + + + Not changing any field for entry %1. + Без променÑне на полетата на запиÑа %1. + + + Enter new password for entry: + Въведете нова парола за запиÑа: + + + Successfully edited entry %1. + ЗапиÑÑŠÑ‚ %1 е променен. + + + Perform advanced analysis on the password. + Извършване на разширен анализ на паролата. + + + Password for which to estimate the entropy. + Паролата, на коÑто да бъде оценена ентропиÑта. + + + Estimate the entropy of a password. + ОценÑване на ентропиÑта на паролата. + + + Length %1 + Дължина %1 + + + Entropy %1 + Ð•Ð½Ñ‚Ñ€Ð¾Ð¿Ð¸Ñ %1 + + + Log10 %1 + Log10 %1 + + + Multi-word extra bits %1 + Допълнителни битове от повече думи %1 + + + Type: Bruteforce + Вид: изчерпателно изброÑване + + + Type: Dictionary + Вид: речник + + + Type: Dict+Leet + Вид: речник + leet + + + Type: User Words + Вид: потребителÑки думи + + + Type: User+Leet + Вид: потребителÑки + leet + + + Type: Repeated + Вид: повторени + + + Type: Sequence + Вид: поÑледователен + + + Type: Spatial + Вид: проÑтранÑтвен + + + Type: Date + Вид: дата + + + Type: Bruteforce(Rep) + Вид: изчерп. изброÑване (повторениÑ) + + + Type: Dictionary(Rep) + Вид: речник (повторениÑ) + + + Type: Dict+Leet(Rep) + Вид: речник + leet (повторениÑ) + + + Type: User Words(Rep) + Вид: потребителÑки думи (повторениÑ) + + + Type: User+Leet(Rep) + Вид: потребителÑки думи + leet (повторениÑ) + + + Type: Repeated(Rep) + Вид: повторени (повторениÑ) + + + Type: Sequence(Rep) + Вид: поÑледователен (повторениÑ) + + + Type: Spatial(Rep) + Вид: проÑтранÑтвен (повторениÑ) + + + Type: Date(Rep) + Вид: дата (повторениÑ) + + + Type: Unknown (%1) + Вид: неизвеÑтен (%1) + + + Entropy %1 (%2) + Ð•Ð½Ñ‚Ñ€Ð¾Ð¿Ð¸Ñ %1 (%2) + + + *** Password length (%1) != sum of length of parts (%2) *** + *** Дължината на паролата (%1) != Ñумата от дължините на чаÑтите (%2) *** + + + Exit interactive mode. + Излизане от интерактивен режим. + + + Format to use when exporting. Available choices are 'xml' or 'csv'. Defaults to 'xml'. + Формат при изнаÑÑне. ВъзможноÑтите Ñа „xml“ и „csv“. По подразбиране е „xml“. + + + Exports the content of a database to standard output in the specified format. + ИзнаÑÑ Ñъдържанието на хранилището към ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´ в ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚. + + + Unable to export database to XML: %1 + Грешка при изнаÑÑне на хранилище в XML: %1 + + + Unsupported format %1 + Ðеподдържан формат %1 + + + Length of the generated password + Дължина на Ñъздаваната парола + + + length + дължина + + + Use lowercase characters + Използване на букви от долен региÑтър + + + Use uppercase characters + Използване на букви от горен региÑтър + + + Use numbers + Използване на цифри + + + Use special characters + Използване на Ñпециални знаци + + + Use extended ASCII + Използване на разширен ASCII + + + Exclude character set + Изключване на набор от знаци + + + chars + Ñимволи + + + Use custom character set + Използване на потребителÑки набор от Ñимволи + + + Exclude similar looking characters + Изключване на знаците, които изглеждат еднакво + + + Include characters from every selected group + Използване на Ñимволи от вÑÑка избрана група + + + Generate a new random password. + Създаване на Ñлучайна парола. + + + Invalid password length %1 + Ðеприемлива дължина на паролата %1 + + + Invalid password generator after applying all options + Ðе може да бъде Ñъздадена парола Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ‚Ðµ ÑтойноÑти. + + + Display command help. + Показване на помощ за команда. + + + Available commands: + Ðалични команди: + + + Import the contents of an XML database. + ВнаÑÑне на Ñъдържание от хранилище в XML. + + + Path of the XML database export. + Път, в който да бъде изнеÑено хранилище в XML. + + + Path of the new database. + Път към новото хранилище. + + + Unable to import XML database: %1 + Грешка при внаÑÑне на хранилище в XML формат: %1 + + + Successfully imported database. + Хранилището е внеÑено. + Unknown command %1 ÐеизвеÑтна команда %1 @@ -6990,7 +7720,10 @@ Do you want to overwrite it? Available commands: - Ðалични команди: + + +Ðалични команди: + Name of the command to execute. @@ -7002,7 +7735,7 @@ Available commands: Invalid command %1. - Ðевалидна команда %1. + ÐедейÑтвителна команда %1. Recursively list the elements of the group. @@ -7010,51 +7743,51 @@ Available commands: Flattens the output to single lines. - ИзравнÑва изхода към единични редове. + Съкращава изхода до единични редове. List database entries. - СпиÑък на запиÑите в базата данни. + ИзброÑва запиÑите в хранилището. Path of the group to list. Default is / - Път на групата за показване. По подразбиране е / + Път до групата, коÑто да бъде изброена. По подразбиране е / Cannot find group %1. - Ðе може да Ñе намери групата %1. + Групата %1 не може да бъде намерена. Use the same credentials for both database files. - Използвайте едни и Ñъщи идентификационни данни за двата файла Ñ Ð±Ð°Ð·Ð¸ данни. + Използване на едно удоÑтоверÑване на доÑтъпа за двете хранилища. Key file of the database to merge from. - Файл-ключа на базата данни за Ñливане. + Файлът Ñ ÐºÐ»ÑŽÑ‡ на хранилището, от което да бъде Ñливано. Deactivate password key for the database to merge from. - + Без използване на парола за хранилището, от което да бъде Ñливано. Only print the changes detected by the merge operation. - Изкарай Ñамо промените, открити от операциÑта за Ñливане. + Отпечатване Ñамо на промените, открити от дейÑтвието Ñливане. Yubikey slot for the second database. - Yubikey Ñлот за втората база данни. + ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð½Ð° YubiKey за второто хранилище. slot - Ñлот + Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Merge two databases. - Сливане на две бази данни. + Сливане на две хранилища. Path of the database to merge from. - Път до базата данни, от коÑто да Ñе Ñлее. + Път до хранилището, от което да бъде Ñливано. Error reading merge file: @@ -7064,7 +7797,7 @@ Available commands: Unable to save database to file : %1 - Базата данни не може да бъде запиÑана във файл: %1 + Хранилището не може да бъде запазено във файл: %1 Successfully merged %1 into %2. @@ -7072,7 +7805,7 @@ Available commands: Database was not modified by merge operation. - Базата данни не е модифицирана от Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾ Ñливане. + Хранилище не е променÑно при Ñливането. Moves an entry to a new group. @@ -7080,11 +7813,11 @@ Available commands: Path of the entry to move. - Път на запиÑа за меÑтене. + Път към запиÑа, който да бъде премеÑтен. Path of the destination group. - Път на целевата група. + Път към целевата група. Could not find group with path %1. @@ -7100,39 +7833,39 @@ Available commands: Open a database. - Отворете база данни. + ОтварÑне на хранилище. Path of the entry to remove. - Път на запиÑа за премахване. + Път към запиÑа, който да бъде премахнат. Unable to save database to file: %1 - Базата данни не може да бъде запиÑана във файл: % 1 + Хранилището не може да бъде запазено във файл: %1 Successfully recycled entry %1. - УÑпешно изтриване на запиÑ%1. + ЗапиÑÑŠÑ‚ %1 е премеÑтен в кошчето. Successfully deleted entry %1. - УÑпешно изтрит елемент %1. + ЗапиÑÑŠÑ‚ %1 е премахнат. Path of the group to remove. - ПътÑÑ‚ на групата за премахване. + Път към групата, коÑто да бъде премахната. Cannot remove root group from database. - Ðе може да Ñе премахне главната група от базата данни. + Кореновата група на хранилището не може да бъде премахната. Successfully recycled group %1. - УÑпешно изтрита група% 1. + Групата %1 е премеÑтена в кошчето. Successfully deleted group %1. - УÑпешно изтрита група %1. + Групата %1 е премахната. Find entries quickly. @@ -7150,13 +7883,17 @@ Available commands: Show the protected attributes in clear text. Показване на защитените атрибути в чиÑÑ‚ текÑÑ‚. + + Show all the attributes of the entry. + Показване на вÑички атрибути на запиÑа. + Show the attachments of the entry. - + Показване на прикачените файлове към запиÑа. Names of the attributes to show. This option can be specified more than once, with each attribute shown one-per-line in the given order. If no attributes are specified, a summary of the default attributes is given. - Имената на показваните атрибути. Тази Ð¾Ð¿Ñ†Ð¸Ñ Ð¼Ð¾Ð¶Ðµ да бъде зададена повече от веднъж, като вÑеки атрибут Ñе показва по един на ред в Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ñ€ÐµÐ´. Ðко не Ñа зададени атрибути, Ñе дава обобщение на атрибутите по подразбиране. + Имената на атрибутите, които да бъдат изведени на екрана. Тази наÑтройка може да бъде зададена повече от веднъж, като вÑеки атрибут Ñе извежда на отделен ред в поредноÑтта, в който е зададен. Ðко не Ñа зададени атрибути, Ñе дава обобщение на атрибутите по подразбиране. attribute @@ -7168,7 +7905,7 @@ Available commands: Name of the entry to show. - Име на запиÑа за показване. + Име на запиÑа, който да бъде показан. ERROR: unknown attribute %1. @@ -7176,23 +7913,23 @@ Available commands: No attachments present. - + ÐÑма прикачени файлове. Attachments: - + Прикачени файлове: Failed to open database file %1: not found - Грешка при отварÑне на файла %1: не е намерен + Грешка при отварÑне на хранилището %1: не е намерено Failed to open database file %1: not a plain file - Грешка при отварÑне на файла %1 на база данни: не е текÑтов файл + Грешка при отварÑне на хранилището %1: не е текÑтов файл Failed to open database file %1: not readable - Грешка при отварÑне на файла %1: не е четим + Грешка при отварÑне на хранилището %1: нÑма права за четене Enter password to unlock %1: @@ -7200,32 +7937,36 @@ Available commands: Failed to load key file %1: %2 - Грешка при зареждане на файла-ключ %1: %2 + Грешка при зареждане на файл Ñ ÐºÐ»ÑŽÑ‡ %1: %2 WARNING: You are using an old key file format which KeePassXC may stop supporting in the future. Please consider generating a new key file. - Използвате оÑтарÑл файлов формат на ключа, който KeePass XC може да Ñпре да поддържа в бъдеще. + Ð’ÐИМÐÐИЕ: Използвате Ñтар формат на файла Ñ ÐºÐ»ÑŽÑ‡, който KeePassXC може да Ñпре да поддържа в бъдеще. -ПомиÑлете за генериране на нов ключ файл. +Вземете предвид възможноÑтта да Ñъздадете нов файл Ñ ÐºÐ»ÑŽÑ‡. Invalid YubiKey slot %1 - Ðевалиден YubiKey Ñлот %1 + Ðеприемлива Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ %1 на YubiKey Invalid YubiKey serial %1 - Ðевалиден YubiKey Ñериен номер %1 + Ðеприемлив Ñериен номер на YubiKey %1 + + + Please present or touch your YubiKey to continue. + За да продължите, добавете или докоÑнете ÑÐ²Ð¾Ñ YubiKey. Enter password to encrypt database (optional): - Въведете парола за шифроване на база данни (незадължително): + Въведете парола, коÑто да шифрова хранилището (по желание): Do you want to create a database with an empty password? [y/N]: - ИÑкате ли да Ñъздадете база данни Ñ Ð¿Ñ€Ð°Ð·Ð½Ð° парола? [y/N]: + Желаете ли хранилището да бъде Ñъздадено Ñ Ð¿Ñ€Ð°Ð·Ð½Ð° парола? [y/N]: Repeat password: @@ -7237,40 +7978,41 @@ Please consider generating a new key file. No program defined for clipboard manipulation - ÐÑма програма, дефинирана за Ð¼Ð°Ð½Ð¸Ð¿ÑƒÐ»Ð°Ñ†Ð¸Ñ Ð½Ð° клипборда + Ðе е избрано приложение, което да управлÑва междинната памет All clipping programs failed. Tried %1 - + Грешка Ñ Ð²Ñички Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð·Ð° междинна памет. Използвани Ñа %1 + Creating KeyFile %1 failed: %2 - Грешка при Ñъздаване на KeyFile %1: %2 + Грешка при Ñъздаване на файл Ñ ÐºÐ»ÑŽÑ‡ %1: %2 Loading KeyFile %1 failed: %2 - Грешка при зареждане на KeyFile %1: %2 + Грешка при зареждане на файл Ñ ÐºÐ»ÑŽÑ‡ %1: %2 HIBP file, line %1: parse error - Файл HIBP, ред %1: грешка при парÑване + Файл HIBP, ред %1: грешка при разбор To use okon, you must provide a post-processed file (e.g. file.okon) - + За да използвате okon, трÑбва да заредите ÑÑŠÐ¾Ñ‚Ð²ÐµÑ‚Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» (например, file.okon) Could not start okon process: %1 - + Ðевъзможно Ñтартиране на Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð° търÑене чрез okon: %1 Error: okon process did not finish - + Грешка: търÑенето чрез okon не е завършило Failed to load okon processed database: %1 - + Грешка при зареждане на обработеното Ñ okon хранилище: %1 Very weak password @@ -7286,43 +8028,43 @@ Please consider generating a new key file. Used in %1/%2 - Използвани в %1/%2 + Използвана в %1/%2 Password is used %1 time(s) - + Паролата е преизползвана %1 пътПаролата е преизползвана %1 пъти Password has expired - Паролата е изтекъла + Паролата е Ñ Ð¸Ð·Ñ‚ÐµÐºÐ»Ð° давноÑÑ‚ Password expiry was %1 - Изтичането на паролата беше на %1 + ДавноÑтта на паролата е до %1 Password expires on %1 - Паролата изтича на %1 + ДавноÑтта на паролата изтича на %1 Password is about to expire - Паролата Ñкоро ще изтече + ДавноÑтта на паролата Ñкоро ще изтече Password expires in %1 day(s) - + ДавноÑтта на паролата изтича Ñлед %1 денДавноÑтта на паролата изтича Ñлед %1 дена Password will expire soon - Паролата ще изтече Ñкоро + ДавноÑтта на паролата ще изтече Ñкоро Version %1 - ВерÑÐ¸Ñ %1 + Издание %1 Build Type: %1 - Тип на компилациÑта: %1 + Вид на компилациÑта: %1 Revision: %1 @@ -7350,11 +8092,11 @@ Kernel: %3 %4 Auto-Type - Auto-Type + Ðвтоматично въвеждане SSH Agent - SSH Agent + Ðгент на SSH KeeShare @@ -7366,11 +8108,11 @@ Kernel: %3 %4 Quick Unlock - + Бързо отключване Secret Service Integration - Secret Service Ð¸Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ + Съчетаване Ñ Ð£Ñлуга за тайни None @@ -7382,31 +8124,31 @@ Kernel: %3 %4 over %1 year(s) - + повече от %1 годинаповече от %1 години about %1 month(s) - + около %1 меÑецоколо %1 меÑеца %1 week(s) - + %1 Ñедмица%1 Ñедмици %1 day(s) - + %1 ден%1 дена %1 hour(s) - + %1 чаÑ%1 чаÑа %1 minute(s) - + %1 минута%1 минути - Botan library must be at least 2.11.x, found %1.%2.%3 - + Botan library must be at least %1, found %2.%3.%4 + Библиотеката Botan трÑбва да е най-малко %1, но е намерено %2.%3.%4 Cryptographic libraries: @@ -7414,35 +8156,35 @@ Kernel: %3 %4 AES (%1 rounds) - AES (% 1 рунда) + AES (%1 преобразуваниÑ) Argon2%1 (%2 rounds, %3 KB) - + Argon2%1 (%2 преобразуваниÑ, %3 КБ) SymmetricCipher::init: Invalid cipher mode. - + SymmetricCipher::init: Ðеприемлив режим на шифър. SymmetricCipher::init: Invalid IV size of %1 for %2. - + SymmetricCipher::init: Ðеприемлив размер на ИВ от %1 за %2. Cipher not initialized prior to use. - + Шифър не е подготвен преди използване. Cannot process 0 length data. - + Данни Ñ Ð´ÑŠÐ»Ð¶Ð¸Ð½Ð° 0 не могат да бъдат обработвани. unknown executable (DBus address %1) - + неизвеÑтен изпълним файл (Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾ DBus %1) %1 (invalid executable path) - + %1 (неприемлив път към изпълним файл) NULL device @@ -7450,7 +8192,7 @@ Kernel: %3 %4 error reading from device - грешка при четене от уÑтройÑтвото + грешка при четене от уÑтройÑтво file empty @@ -7458,7 +8200,7 @@ Kernel: %3 %4 malformed string - неправилен низ + повреден низ missing closing quote @@ -7470,23 +8212,23 @@ Kernel: %3 %4 AES 256-bit - AES 256-битов + AES 256 разрÑден Twofish 256-bit - Twofish 256-битов + Twofish 256 разрÑден ChaCha20 256-bit - + ChaCha20 256 разрÑден Argon2d (KDBX 4 – recommended) - + Argon2d (KDBX 4 – препоръчано) Argon2id (KDBX 4) - + Argon2id (KDBX 4) AES-KDF (KDBX 4) @@ -7494,19 +8236,19 @@ Kernel: %3 %4 AES-KDF (KDBX 3) - + AES-KDF (KDBX 3) Existing single-instance lock file is invalid. Launching new instance. - + СъщеÑтвуващиÑÑ‚ заключващ файл за единичен екземплÑÑ€ е недейÑтвителен. Стартиране на нов екземплÑÑ€. The lock file could not be created. Single-instance mode disabled. - + Грешка при Ñъздаване на файл за заключване. Режимът на единичен екземплÑÑ€ е изключен. Clearing the clipboard in %1 second(s)… - + ИзчиÑтване на междинната памет Ñлед %1 Ñекунда…ИзчиÑтване на междинната памет Ñлед %1 Ñекунди… Group @@ -7518,7 +8260,7 @@ Kernel: %3 %4 Username - Портебител + Потребител Password @@ -7530,24 +8272,24 @@ Kernel: %3 %4 Icon - Икона + Пиктограма Last Modified - ПоÑледно променена + ПоÑледна промÑна Created - Създаден + Създаване Benchmark %1 delay - Бенчмарк %1 закъÑнение + ПроизводителноÑÑ‚ при забавÑне от %1 %1 ms milliseconds - % 1 ms%1 ms + %1 мÑ%1 Ð¼Ñ %1 s @@ -7556,35 +8298,35 @@ Kernel: %3 %4 Do you really want to delete the entry "%1" for good? - ÐаиÑтина ли иÑкате да изтриете запиÑа "%1" за добро? + Желаете ли запиÑÑŠÑ‚ „%1“ да бъде премахнат завинаги? Do you really want to delete %n entry(s) for good? - + Желаете ли %n Ð·Ð°Ð¿Ð¸Ñ Ð´Ð° бъде премахнат завинаги?Желаете ли %n запиÑа да бъдат премахнати завинаги? Delete entry(s)? - + Премахване на запиÑ?Премахване на запиÑи? Do you really want to move entry "%1" to the recycle bin? - ÐаиÑтина ли иÑкате да премеÑтите Ð·Ð°Ð¿Ð¸Ñ "%1" в кошчето? + Желаете ли запиÑÑŠÑ‚ „%1“ да бъде премеÑтен в кошчето? Do you really want to move %n entry(s) to the recycle bin? - + Желаете ли %n Ð·Ð°Ð¿Ð¸Ñ Ð´Ð° бъде премеÑтен в кошчето?Желаете ли %n запиÑа да бъдат премеÑтени в кошчето? Move entry(s) to recycle bin? - + ПремеÑтване на Ð·Ð°Ð¿Ð¸Ñ Ð² кошчето?ПремеÑтване на запиÑи в кошчето? Replace references to entry? - Да Ñе заменÑÑ‚ ли препратките към запиÑа? + Да бъде ли заменена Ñ€ÐµÑ„ÐµÑ€ÐµÐ½Ñ†Ð¸Ñ ÐºÑŠÐ¼ запиÑ? Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? - + ЗапиÑÑŠÑ‚ „%1“ има %2 референциÑ. Желаете ли тази Ñ€ÐµÑ„ÐµÑ€ÐµÐ½Ñ†Ð¸Ñ Ð´Ð° бъде заменена ÑÑŠÑ ÑтойноÑÑ‚, запиÑÑŠÑ‚ да бъде пропуÑнат или въпреки това да бъде премахнат?ЗапиÑÑŠÑ‚ „%1“ има %2 референции. Желаете ли тези референции да бъдат заменени ÑÑŠÑ ÑтойноÑти, запиÑÑŠÑ‚ да бъде пропуÑнат или въпреки това да бъде премахнат? User name @@ -7592,7 +8334,7 @@ Kernel: %3 %4 Browser Statistics - + СтатиÑтика от Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ† Health Check @@ -7608,127 +8350,337 @@ Kernel: %3 %4 Unsupported key file version: %1 - Ðеподдържан тип ключ: %1 + Ðеподдържано издание на файл Ñ ÐºÐ»ÑŽÑ‡: %1 Checksum mismatch! Key file may be corrupt. - + ÐеÑъвпадаща контролна Ñума! Файлът Ñ ÐºÐ»ÑŽÑ‡Ð° навÑрно е повреден. Unexpected key file data! Key file may be corrupt. - + Ðеочаквани данни от файл Ñ ÐºÐ»ÑŽÑ‡! Файлът Ñ ÐºÐ»ÑŽÑ‡Ð° навÑрно е повреден. KeePassXC - cross-platform password manager - KeePassXC - кроÑ-платформен мениджър на пароли + KeePassXC - Управление на пароли filenames of the password databases to open (*.kdbx) - файловите имена на базите данни Ñ Ð¿Ð°Ñ€Ð¾Ð»Ð¸ за отварÑне (*.kdbx) + файлове или хранилища за пароли (*.kdbx) path to a custom config file - път към потребителÑÐºÐ¸Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¾Ð½ÐµÐ½ файл + път към потребителÑки файл Ñ Ð½Ð°Ñтройки path to a custom local config file - + път към меÑтен потребителÑки файл Ñ Ð½Ð°Ñтройки lock all open databases - + заключване на вÑички хранилища key file of the database - файл-ключа на базата данни + файл Ñ ÐºÐ»ÑŽÑ‡ на хранилище read password of the database from stdin - прочетете паролата на базата данни от stdin - - - allow app screen recordering and screenshots - + вземане на паролата за хранилището от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´ Locked databases. - + Хранилищата Ñа заключени. Database failed to lock. - + ÐеуÑпешно заключване на хранилище. Another instance of KeePassXC is already running. - Друга инÑÑ‚Ð°Ð½Ñ†Ð¸Ñ Ð½Ð° KeePassXC вече работи. + Друга екземплÑÑ€ на KeePassXC вече работи. + + + KeePassXC is not running. No open database to lock + KeePassXC не работи. ÐÑма отворено хранилище, което да бъде зключено Fatal error while testing the cryptographic functions. - Фатална грешка при теÑтване на криптографÑките функции. + Фатална грешка при изпитване на криптографÑките функции. KeePassXC - Error KeePassXC - Грешка - - Warning: Failed to prevent screenshots on a top level window! - - Database password: - Парола за базата данни: + Парола за хранилище: Invalid Settings TOTP - Ðевалидни наÑтройки + Ðеприемливи наÑтройки Invalid Key TOTP - Ðевалиден ключ + Ðеприемлив ключ Failed to create Windows Hello credential. - + Грешка при Ñъздаване на ÑамоличноÑÑ‚ Ñ Windows Hello. Failed to sign challenge using Windows Hello. + Грешка при подпиÑване на предизвикателÑтво, чрез Windows Hello. + + + Warning: Failed to block screenshot capture on a top-level window. + Внимание: Ðе може да бъде ÑпрÑно Ñъздаването на екранна Ñнимка в прозореца от най-виÑоко ниво. + + + Invalid Cipher + ÐедейÑтвителен шифър + + + Invalid KDF + ÐедейÑтвителна ФИК + + + Access to all entries is denied + ДоÑтъпът до вÑички запиÑи е отказан + + + allow screenshots and app recording (Windows/macOS) + разрешаване на екранни Ñнимки и Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ (Windows/macOS) + + + Enter Shortcut + Въведете клавишна ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ + + + Action + ДейÑтвие + + + Shortcuts + Клавишни комбинации + + + Attestation not supported + Ðе Ñе поддържа атеÑÑ‚Ð°Ñ†Ð¸Ñ + + + Credential is excluded + СамоличноÑтта е пропуÑната + + + Passkeys request canceled + ЗаÑвката за Passkey е отказана + + + Invalid user verification + Ðеприемливо потвърждаване на потребител + + + Empty public key + Празен публичен ключ + + + Invalid URL provided + ПредоÑтавен е неприемлив Ð°Ð´Ñ€ÐµÑ + + + Passkeys + Passkeys + + + AES initialization failed + Грешка при подготвÑне на AES + + + AES encrypt failed + Грешка при шифроване Ñ AES + + + Failed to store in Linux Keyring + Грешка при запазване в ключодържател на Ð›Ð¸Ð½ÑƒÐºÑ + + + Polkit returned an error: %1 + Polkit върна грешка: %1 + + + Could not locate key in keyring + Ключ не може да бъде намерен в ключодържател + + + Could not read key in keyring + Ключ не може да бъде прочетен от ключодържател + + + AES decrypt failed + Грешка при разшифроване Ñ AES + + + No Polkit authentication agent was available + Ðе е наличен удоÑтоверÑващ агент на Polkit + + + Polkit authorization failed + Грешка при удоÑтоверÑване Ñ Polkit + + + No Quick Unlock provider is available + Ðе е наличен доÑтавчик на бързо отключване + + + Failed to init KeePassXC crypto. + Грешка при подготвÑне на шифър на KeePassXC. + + + Failed to encrypt key data. + Грешка при шифроване на данните на ключа. + + + Failed to get Windows Hello credential. + Грешка при получаване на ÑамоличноÑÑ‚ от Windows Hello. + + + Failed to decrypt key data. + ÐеуÑпешно дешифриране на данните на ключа. + + + Favorite + Tag for favorite entries - Please present or touch your YubiKey to continue. + File does not exist. + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + Източникът е празен или забранен + + + Effective domain is not a valid domain + ЕфективниÑÑ‚ домейн не е приемлив домейн + + + Origin and RP ID do not match + Източникът и RP ID не Ñъвпадат + + + No supported algorithms were provided + Ðе Ñа предоÑтавени поддържани алгоритми + + + Wait for timer to expire + Изчакайте отброÑването да приключи + + + Unknown Passkeys error + Ðеочаквана грешка на Passkey + + + Challenge is shorter than required minimum length + Предизвикването е по-къÑо от изиÑкваната минимална дължина + + + user.id does not match the required length + user.id не Ð¾Ñ‚Ð³Ð¾Ð²Ð°Ñ€Ñ Ð½Ð° изиÑкваната дължина + QtIOCompressor Internal zlib error when compressing: - Вътрешна zlib грешка при компреÑиране: + Вътрешна грешка на zlib при компреÑиране: Error writing to underlying device: - + Грешка при запиÑване на оÑновното уÑтройÑтво: Error opening underlying device: - + Грешка при отварÑне на оÑновното уÑтройÑтво: Error reading data from underlying device: - + Грешка при прочитане на данни от оÑновното уÑтройÑтво: Internal zlib error when decompressing: - Вътрешна zlib грешка при декомпреÑиране: + Вътрешна zlib грешка при разкомпреÑиране: QtIOCompressor::open The gzip format not supported in this version of zlib. - Форматът gzip не Ñе поддържа в тази верÑÐ¸Ñ Ð½Ð° zlib. + Форматът gzip не Ñе поддържа това издание на zlib. Internal zlib error: @@ -7737,41 +8689,29 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - - - - Show only entries which have URL set - - - - Show only entries which have browser settings in custom data - - Double-click entries to edit. - + За да промените запиÑ, щракнете двукратно върху него. List of entry URLs - + СпиÑък Ñ Ð°Ð´Ñ€ÐµÑите от вÑички запиÑи Entry has no URLs set - + ЗапиÑÑŠÑ‚ нÑма въведени адреÑи Allowed URLs - + Разрешени адреÑи Entry has no Browser Integration settings - + ЗапиÑÑŠÑ‚ нÑма наÑтройка за Ñъчетаване Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð² четец Denied URLs - + Забранени адреÑи (Excluded) @@ -7779,15 +8719,15 @@ Kernel: %3 %4 This entry is being excluded from reports - Това впиÑване е изключено от отчетите + ЗапиÑÑŠÑ‚ е изключен от отчетите Please wait, browser statistics is being calculated… - + Изчакайте, изчиÑлÑва Ñе ÑтатиÑтиката от Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ†â€¦ No entries with a URL, or none has browser extension settings saved. - + ЛипÑват запиÑи Ñ Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ нÑма такива ÑÑŠÑ Ð·Ð°Ð¿Ð°Ð·ÐµÐ½Ð¸ наÑтройки за разширението на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñ‡ÐµÑ‚ÐµÑ†. Title @@ -7799,57 +8739,65 @@ Kernel: %3 %4 URLs - + ÐдреÑи Edit Entry… - + ПроменÑне на запиÑ… Delete Entry(s)… - + Премахване на запиÑ?Премахване на запиÑи? Exclude from reports Изключване от отчети + + Only show entries that have a URL + Показване Ñамо на запиÑи Ñ Ð°Ð´Ñ€ÐµÑи + + + Only show entries that have been explicitly allowed or denied + Показване Ñамо на запиÑи, които изрично Ñа разрешени или забранени + + + Show expired entries + Показване на запиÑи Ñ Ð¸Ð·Ñ‚ÐµÐºÐ»Ð° давноÑÑ‚ + + + (Expired) + (Изтекла давноÑÑ‚) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - - - - Also show entries that have been excluded from reports - Показване и на изключените от отетите запиÑи - Hover over reason to show additional details. Double-click entries to edit. - Задръжте курÑора на мишката върху причината, за да Ñе покажат допълнителни подробноÑти. Щракнете двукратно върху запиÑите, за да редактирате. + За подробноÑти, задръжте показалеца на мишката върху причината. За да промените запиÑ, щракнете двукратно върху него. Bad Password quality - Лош + Много лоша Bad — password must be changed - Лош — паролата трÑбва да бъде променена + Много лоша — паролата трÑбва да бъде променена Poor Password quality - Слабо + Лоша Poor — password should be changed - Лошо — паролата добре да Ñе Ñмени + Лоша — добре е паролата да бъде променена Weak Password quality - Слабо + Слаба Weak — consider changing the password @@ -7861,15 +8809,15 @@ Kernel: %3 %4 This entry is being excluded from reports - Това впиÑване е изключено от отчетите + Този Ð·Ð°Ð¿Ð¸Ñ Ðµ изключен от отчетите Please wait, health data is being calculated… - + Изчакайте, извършва Ñе проверка на ÑÑŠÑтоÑнието… Congratulations, everything is healthy! - ПоздравлениÑ, вÑичко е зраво! + ПоздравлениÑ, вÑичко е наред! Title @@ -7889,38 +8837,50 @@ Kernel: %3 %4 Edit Entry… - + ПроменÑне на запиÑ… Delete Entry(s)… - + Премахване на запиÑ?Премахване на запиÑи? Exclude from reports Изключване от отчети + + Show expired entries + Показване на запиÑи Ñ Ð¸Ð·Ñ‚ÐµÐºÐ»Ð° давноÑÑ‚ + + + Show entries that have been excluded from reports + Показване и на изключените от отчети запиÑи + + + (Expired) + (Изтекла давноÑÑ‚) + ReportsWidgetHibp CAUTION: This report requires sending information to the Have I Been Pwned online service (https://haveibeenpwned.com). If you proceed, your database passwords will be cryptographically hashed and the first five characters of those hashes will be sent securely to this service. Your database remains secure and cannot be reconstituted from this information. However, the number of passwords you send and your IP address will be exposed to this service. - Ð’ÐИМÐÐИЕ: Този доклад изиÑква изпращане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð´Ð¾ уÑлугата Have I Been Pwned (https://haveibeenpwned.com). Ðко продължите, паролите от базата данни ще бъдат хеширани по криптографÑки начин и първите пет знака от тези хешове ще бъдат изпратени защитено на тази уÑлуга. Вашата база данни оÑтава защитена и не може да бъде възÑтановена от тази информациÑ. Въпреки това, броÑÑ‚ на паролите, които изпращате, и вашиÑÑ‚ IP Ð°Ð´Ñ€ÐµÑ Ñ‰Ðµ бъдат пратени на тази уÑлуга. + Ð’ÐИМÐÐИЕ: Докладът изиÑква изпращане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð´Ð¾ уÑлугата Have I Been Pwned (https://haveibeenpwned.com). Ðко продължите, от криптографÑките отпечатъци на паролите в хранилището ще бъдат взети първите пет знака и ще бъдат изпратени защитено към уÑлугата. Хранилището оÑтава защитено и информациÑта в него не може да бъде възÑтановена от отпечатъците. Въпреки това, Ð±Ñ€Ð¾Ñ Ð½Ð° паролите, които изпращате, и вашиÑÑ‚ Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾ IP ще бъдат изпратени към уÑлугата. Perform Online Analysis - Извършване на онлайн анализ + Извършване на отдалечен анализ Also show entries that have been excluded from reports - Показване и на изключените от отетите запиÑи + Показване и на изключените от отчети запиÑи This build of KeePassXC does not have network functions. Networking is required to check your passwords against Have I Been Pwned databases. - Тази ÐºÐ¾Ð¼Ð¿Ð¸Ð»Ð°Ñ†Ð¸Ñ Ð½Ð° KeePassXC не разполага Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸ функции. Те Ñа необходими за проверка на паролите в Have I Been Pwned базата данни. + Тази ÐºÐ¾Ð¼Ð¿Ð¸Ð»Ð°Ñ†Ð¸Ñ Ð½Ð° KeePassXC не разполага Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð² доÑтъп. Той е необходим за проверка на паролите в хранилището на Have I Been Pwned. Congratulations, no exposed passwords! - ПоздравлениÑ, нÑма разкрити пароли! + ПоздравлениÑ, нÑма изложени пароли! Title @@ -7932,7 +8892,7 @@ Kernel: %3 %4 Password exposed… - Парола е разкрита... + Парола е изложена… (Excluded) @@ -7940,7 +8900,7 @@ Kernel: %3 %4 This entry is being excluded from reports - Това впиÑване е изключено от отчетите + Този Ð·Ð°Ð¿Ð¸Ñ Ðµ изключен от отчетите once @@ -7984,22 +8944,81 @@ Kernel: %3 %4 Edit Entry… - + ПроменÑне на запиÑ… Delete Entry(s)… - + Премахване на запиÑ?Премахване на запиÑи? Exclude from reports Изключване от отчети + + ReportsWidgetPasskeys + + Export + ИзнаÑÑне + + + Import + ВнаÑÑне + + + List of entry URLs + СпиÑък Ñ Ð°Ð´Ñ€ÐµÑите от вÑички запиÑи + + + Please wait, list of entries with Passkeys is being updated… + Изчакайте, обновÑва Ñе ÑпиÑъкът ÑÑŠÑ Ð·Ð°Ð¿Ð¸Ñи Ñ Passkeys… + + + No entries with Passkeys. + ЛипÑват запиÑи Ñ Passkeys. + + + Title + Заглавие + + + Path + Път + + + Username + Потребител + + + URLs + ÐдреÑи + + + Edit Entry… + ПроменÑне на запиÑ… + + + Delete Entry(s)… + Премахване на запиÑ?Премахване на запиÑи? + + + Relying Party + ЗавиÑеща Ñтрана + + + Show expired entries + Показване на запиÑи Ñ Ð¸Ð·Ñ‚ÐµÐºÐ»Ð° давноÑÑ‚ + + + (Expired) + (Изтекла давноÑÑ‚) + + ReportsWidgetStatistics Hover over lines with error icons for further information. - Задръжте курÑора на мишката върху редове Ñ Ð¸ÐºÐ¾Ð½Ð¸ за грешки за допълнителна информациÑ. + За подробноÑти, задръжте показалеца на мишката върху редовете Ñ Ð¿Ð¸ÐºÑ‚Ð¾Ð³Ñ€Ð°Ð¼Ð¸ за грешка. Name @@ -8011,11 +9030,11 @@ Kernel: %3 %4 Please wait, database statistics are being calculated… - + Изчакайте, изчиÑлÑва Ñе ÑтатиÑтиката на хранилището… Database name - Име на базата данни + Име на хранилището Description @@ -8027,19 +9046,19 @@ Kernel: %3 %4 Database created - + Дата на Ñъздаване Last saved - ПоÑледно запиÑан + ПоÑледно запазване Unsaved changes - ÐезапиÑани промени + Ðезапазени промени yes - Да + да no @@ -8047,7 +9066,7 @@ Kernel: %3 %4 The database was modified, but the changes have not yet been saved to disk. - Базата данни е променена, но промените още не Ñа запиÑани на диÑка. + Хранилището е променено, но промените още не Ñа запиÑани на диÑка. Number of groups @@ -8059,11 +9078,11 @@ Kernel: %3 %4 Number of expired entries - Брой изтекли запиÑи + Брой запиÑи Ñ Ð¸Ð·Ñ‚ÐµÐºÐ»Ð° давноÑÑ‚ The database contains entries that have expired. - Базата данни Ñъдържа изтекли запиÑи. + Хранилището има запиÑи Ñ Ð¸Ð·Ñ‚ÐµÐºÐ»Ð° давноÑÑ‚. Unique passwords @@ -8071,11 +9090,11 @@ Kernel: %3 %4 Non-unique passwords - Ðеуникални пароли + Преизползвани пароли More than 10% of passwords are reused. Use unique passwords when possible. - Повече от 10% от паролите Ñе преизползват. Използвайте уникални пароли, когато е възможно. + Повече от 10% от паролите Ñа преизползвани. По възможноÑÑ‚, използвайте уникални пароли. Maximum password reuse @@ -8083,7 +9102,7 @@ Kernel: %3 %4 Some passwords are used more than three times. Use unique passwords when possible. - ÐÑкои пароли Ñе преизползват от три пъти. Използвайте уникални пароли, когато е възможно. + ÐÑкои пароли Ñе преизползват повече от три пъти. По възможноÑÑ‚, използвайте уникални пароли. Number of short passwords @@ -8095,11 +9114,11 @@ Kernel: %3 %4 Number of weak passwords - Брой на Ñлабите пароли + Брой Ñлаби пароли Recommend using long, randomized passwords with a rating of 'good' or 'excellent'. - Препоръчваме използването на дълги, произволни пароли Ñ Ð¾Ñ†ÐµÐ½ÐºÐ° на "добро" или "отлично". + Препоръчваме ви да използвате дълги, произволни пароли Ñ Ð¾Ñ†ÐµÐ½ÐºÐ° „добра“ или „отлична“. Entries excluded from reports @@ -8134,11 +9153,11 @@ Kernel: %3 %4 No agent running, cannot add identity. - Ðе Ñе изпълнÑва агент, не може да добави ÑамоличноÑÑ‚. + ÐÑма работещ агент, ÑамоличноÑтта не може да бъде добавена. Key identity ownership conflict. Refusing to add. - + Конфликт на ÑобÑтвеноÑтта на идентичноÑÑ‚ на ключа. Отказ за добавÑне. Agent refused this identity. Possible reasons include: @@ -8158,30 +9177,30 @@ Kernel: %3 %4 Security keys are not supported by the agent or the security key provider is unavailable. - + Ðгентът не поддържа ключове за ÑигурноÑÑ‚ или доÑтавчикът на ключове за ÑигурноÑÑ‚ е недоÑтъпен. No agent running, cannot remove identity. - ÐÑма работещ агент, не може да премахне ÑамоличноÑтта. + ÐÑма работещ агент, ÑамоличноÑтта не може да бъде премахната. No agent running, cannot list identities. - ÐÑма изпълнÑващ Ñе агент, не може да Ñе покажат ÑамоличноÑтите. + ÐÑма работещ агент, ÑамоличноÑтите не могат да бъдат изброени. SearchHelpWidget Search Help - ТърÑенете помощ + Помощ при търÑене Search terms are as follows: [modifiers][field:]["]term["] - Думи за търÑене Ñа Ñледните: [modifiers][field:]["]term["] + ЗаÑвката при търÑене има Ñледните елементи: [модификатор][поле:]["]уÑловие["] Every search term must match (ie, logical AND) - Ð’Ñеки дума за търÑене трÑбва да ÑъответÑтва (Ñ‚.е. логичеÑко И) + Ð’Ñички елементи трÑбва да Ñъвпадат (Ñ‚.е. логичеÑко И) Modifiers @@ -8189,15 +9208,15 @@ Kernel: %3 %4 exclude term from results - изключване на термин от резултатите + изключва уÑловието от резултатите match term exactly - точен Ñъвпадение на думата + точно Ñъвпадение на уÑловието use regex in term - използвайте регулÑрен израз за търÑене + уÑловието е регулÑрен израз Fields @@ -8205,15 +9224,15 @@ Kernel: %3 %4 Term Wildcards - Шаблон + Шаблони match anything - Ñъвпадение на вÑичко + Ñъвпада Ñ Ð²Ñичко match one - Ñъвпадение един + Ñъвпада Ñ ÐµÐ´Ð½Ð¾ logical OR @@ -8232,20 +9251,24 @@ Kernel: %3 %4 Search Help - ТърÑенете помощ + Помощ при търÑене + + + Save Search + Запазване на търÑенето Search (%1)… Search placeholder text, %1 is the keyboard shortcut - + ТърÑене (%1)… Case sensitive - ЧувÑтвитерен региÑтър + Съвпадение на региÑтъра Limit search to selected group - Ограничаване на търÑенето до избрана група + ТърÑене Ñамо в избраната група @@ -8256,11 +9279,11 @@ Kernel: %3 %4 PID - + PID DBus Address - + ÐÐ´Ñ€ÐµÑ Ð½Ð° DBus Manage @@ -8286,11 +9309,11 @@ Kernel: %3 %4 SettingsWidgetFdoSecrets Options - Опции + ÐаÑтройки Enable KeepassXC Freedesktop.org Secret Service integration - Включване на Freedesktop.org Secret Service Ð¸Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ + Съчетаване Ñ Ð£Ñлугата за тайни на Freedesktop.org General @@ -8298,15 +9321,15 @@ Kernel: %3 %4 Show notification when passwords are retrieved by clients - + Показване на извеÑтие при доÑтъп на клиенти до паролите <html><head/><body><p>If enabled, any attempt to read a password must be confirmed. Otherwise, clients can read passwords without confirmation when the database is unlocked.</p><p>This option only covers the access to the password of an entry. Clients can always enumerate the items of exposed databases and query their attributes.</p></body></html> - + <html><head/><body><p>Ðко е отметнато, вÑеки опит за четене на парола трÑбва да бъде потвърден. Ð’ противен Ñлучай, при отключено хранилище, клиентите могат да четат паролите без потвърждение.</p><p>Тази възможноÑÑ‚ включва Ñамо доÑтъпа до паролата на запиÑите. Клиентите винаги могат да правÑÑ‚ заÑвки към доÑтъпните хранилища и техните атрибути.</p></body></html> Confirm when passwords are retrieved by clients - + Потвърждаване при доÑтъп на клиенти до паролите <html><head/><body><p><span style=" @@ -8314,11 +9337,13 @@ Kernel: %3 %4 Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">This setting does not override disabling recycle bin prompts</span></p></body></html> - + <html><head/><body><p><span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">Тази наÑтройка не Ð¾Ñ‚Ð¼ÐµÐ½Ñ Ð¸Ð·ÐºÐ»ÑŽÑ‡Ð²Ð°Ð½ÐµÑ‚Ð¾ на въпроÑа за премеÑтване в кошчето</span></p></body></html> Confirm when clients request entry deletion - + Потвърждаване при заÑвено от клиенти премахване на Ð·Ð°Ð¿Ð¸Ñ <html><head/><body><p>This improves compatibility with certain applications @@ -8326,31 +9351,31 @@ Kernel: %3 %4 crash the client if the database can not be unlocked within a certain timeout. (Usually 25s, but may be a different value set in applications.)</p></body></html> - + <html><head/><body><p>ПодобрÑва ÑъвмеÑтимоÑтта Ñ Ð½Ñкои приложениÑ, които търÑÑÑ‚ парола без предварително отключване на хранилището.</p><p>Ðко е отметнато обаче може да причини Ñрив на клиента, ако хранилището не може да бъде отключено в определен интервал от време (обикновено 25 Ñекунди, но ÑтойноÑтта може да е различна за различните приложениÑ).</p></body></html> Prompt to unlock database before searching - + ИÑкане за отключване на хранилище преди търÑене Exposed database groups: - + Изложени групи: Authorization - Разрешение + Упълномощаване These applications are currently connected: - Тези Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñа Ñвързани в момента: + Следните Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñа Ñвързани в момента: <b>Warning:</b> - <b>Предупреждение:</b> + <b>Внимание:</b> Save current changes to activate the plugin and enable editing of this section. - Запишете текущите промени, за да активирате приÑтавката и да разрешите редактирането на тази ÑекциÑ. + За да включите разширението и да можете да променÑте тази ÑекциÑ, запазете текущите промени. @@ -8361,23 +9386,23 @@ Kernel: %3 %4 Allow KeeShare imports - Разреши KeeShare импортирането + Разрешаване на внаÑÑне Ñ KeeShare Allow import - Разреши импортиране + Разрешаване на внаÑÑне Allow KeeShare exports - Разреши KeeShare екÑпортирането + Разрешаване на изнаÑÑне Ñ KeeShare Allow export - Разреши екÑпортиране + Разрешаване на изнаÑÑне Only show warnings and errors - Показвай Ñамо Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¸ грешки + Показване Ñамо на Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¸ грешки Own certificate @@ -8389,15 +9414,15 @@ Kernel: %3 %4 Generate new certificate - Генериране на нов Ñертификат + Създаване на нов Ñертификат Generate - Генериране + Създаване Fingerprint: - ПръÑтов отпечатък: + Отпечатък: Signer name field @@ -8412,64 +9437,110 @@ Kernel: %3 %4 ShareExport Could not write export container. - + Грешка при пиÑане в контейнер за изнаÑÑне. ShareImport Successful import - + ВнаÑÑнето е уÑпешно ShareObserver Import from %1 failed (%2) - Импортирането от %1 е неуÑпешно (%2) + ВнаÑÑнето в %1 е неуÑпешно (%2) Import from %1 successful (%2) - Импортиране от %1 уÑпешно (%2) + ВнаÑÑнето в %1 е уÑпешно (%2) Imported from %1 - Импортиран от %1 + ВнеÑено от %1 Multiple import source path to %1 in %2 - + Много пътища за внаÑÑне на %1 в %2 Conflicting export target path %1 in %2 - + Конфликтна цел на пътища за изнаÑÑне на %1 в %2 Export to %1 failed (%2) - ЕкÑпортирането в %1 е неуÑпешно (%2) + ИзнаÑÑнето в %1 е неуÑпешно (%2) Export to %1 successful (%2) - ЕкÑпортиране в %1 уÑпешно (%2) + ИзнаÑÑнето в %1 е уÑпешно (%2) Export to %1 - ЕкÑпортиране в %1 + ИзнаÑÑне в %1 + + + + ShortcutSettingsWidget + + Double click an action to change its shortcut + За да промените клавишната ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ñ‰Ñ€Ð°ÐºÐ½ÐµÑ‚Ðµ двукратно върху желаното дейÑтвие. + + + Shortcut Conflict + Конфликт на клавишни комбинации + + + Filter... + Филтър… + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + КомбинациÑта %1 е в конфликт Ñ â€ž%2“. ПрезапиÑване на клавишната комбинациÑ? + + + Reset Shortcuts + Ðулиране на клавишни комбинации TagModel - All - + Clear Search + ИзчиÑтване на търÑенето + + + All Entries + Ð’Ñички запиÑи Expired - + Изтекла давноÑÑ‚ Weak Passwords - + Слаби пароли + + + + TagView + + Remove Search + Премахване на търÑенето + + + Remove Tag + Премахване на етикета + + + Confirm Remove Tag + Потвърждаване на премахване на етикет + + + Remove tag "%1" from all entries in this database? + Премахване на етикета „%1“ от вÑички запиÑи в хранилището? @@ -8484,7 +9555,7 @@ Kernel: %3 %4 Expires in <b>%n</b> second(s) - Изтича Ñлед <b>%n</b> ÑекундаИзтича Ñлед <b>%n</b> Ñекунди + ДавноÑтта изтича Ñлед <b>%n</b> ÑекундаДавноÑтта изтича Ñлед <b>%n</b> Ñекунди @@ -8496,11 +9567,11 @@ Kernel: %3 %4 NOTE: These TOTP settings are custom and may not work with other authenticators. TOTP QR code dialog warning - Забележка: тези TOTP наÑтройки Ñа по избор и може да не работи Ñ Ð´Ñ€ÑƒÐ³Ð¸ удоÑтоверители. + Забележка: тези наÑтройки на TOTP Ñа потребителÑки и може да не работÑÑ‚ Ñ Ð´Ñ€ÑƒÐ³Ð¸ удоÑтоверители. There was an error creating the QR code. - Възникна грешка при Ñъздаването на QR кода. + Грешка при Ñъздаване на кода за QR. Closing in %1 seconds. @@ -8519,23 +9590,23 @@ Kernel: %3 %4 Secret key must be in Base32 format - Таен ключ трÑбва да е в Base32 + ТайниÑÑ‚ ключ трÑбва да бъде във формат Base32 Secret key field - Поле на Ñекретен ключ + Поле на таен ключ Default settings (RFC 6238) - + ÐаÑтройки по подразбиране (RFC 6238) Steam® settings - + ÐаÑтройки на Steam® Custom settings: - + ПотребителÑки наÑтройки: Custom Settings @@ -8547,16 +9618,16 @@ Kernel: %3 %4 Time step: - Времва Ñтъпка: + Стъпка: Time step field - Поле за времева Ñтъпка + Поле за Ñтъпка в Ñекунди sec Seconds - Ñек + Ñек Code size: @@ -8564,7 +9635,7 @@ Kernel: %3 %4 digits - цифри + цифри Invalid TOTP Secret @@ -8573,34 +9644,34 @@ Kernel: %3 %4 You have entered an invalid secret key. The key must be in Base32 format. Example: JBSWY3DPEHPK3PXP - Въвели Ñте невалиден Ñекретен ключ. Ключът трÑбва да е във формат Base32. + Въвели Ñте неприемлив таен ключ. Ключът трÑбва да е във формат Base32. Пример: JBSWY3DPEHPK3PXP Confirm Remove TOTP Settings - Потвърдете премахването на TOTP наÑтройките + Потвърдете премахването на наÑтройки за TOTP Are you sure you want to delete TOTP settings for this entry? - ÐаиÑтина ли иÑкате да изтриете наÑтройките на TOTP за този запиÑ? + Желаете ли наÑтройките за TOTP за този Ð·Ð°Ð¿Ð¸Ñ Ð´Ð° бъдат премахнати? URLEdit Invalid URL - Ðевалиден URL + ÐедейÑтвителен Ð°Ð´Ñ€ÐµÑ UpdateCheckDialog Checking for updates - Проверка за актуализации + Проверка за обновÑване Checking for updates… - + Проверка за обновÑване… Close @@ -8608,119 +9679,80 @@ Example: JBSWY3DPEHPK3PXP Software Update - Софтуерно актуализиране + ОбновÑване на Ñофтуер An error occurred when trying to retrieve update information, please try again later. - + Възникна грешка при получаване на информациÑта за обновÑване, опитайте отново по-къÑно. <strong>A new version is available.</strong><br/>KeePassXC %1 can be <a href="https://keepassxc.org/download/">downloaded here</a>. - + <strong>Ðалично е ново издание.</strong><br/>KeePassXC %1 може да бъде <a href="https://keepassxc.org/download/">изтеглен от тук</a>. You have the latest version of KeePassXC - + Използвате поÑледното издание на KeePassXC WelcomeWidget Start storing your passwords securely in a KeePassXC database - Започнете да ÑъхранÑвате паролите Ñи Ñигурно в KeePassXC базата данни - - - Create new database - Създаване на нова база данни - - - Open existing database - ОтварÑне на ÑъщеÑтвуващата база данни - - - Import from KeePass 1 - Ð’Ð½Ð¾Ñ Ð¾Ñ‚ KeePass 1 - - - Import from 1Password - Импортиране от 1Password - - - Import from CSV - Импортиране от CSV + Дръжте паролите Ñи защитени в хранилище на KeePassXC Recent databases - Скорошни бази данни + ПоÑледно използвани хранилища Open a recent database - ОтварÑне на Ñкорошна база данни + ОтварÑне на поÑледно използвано хранилище Welcome to KeePassXC %1 Добре дошли в KeePassXC %1 + + Create Database + Създава хранилище + + + Open Database + ÐžÑ‚Ð²Ð°Ñ€Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ðµ + + + Import File + + WinUtils Invalid key code - + Ðеприемлив код на клавиш Global shortcut already registered to %1 - + Тази клавишна ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ñе използва за %1 Could not register global shortcut - - - - - WindowsHello - - Failed to init KeePassXC crypto. - - - - Failed to encrypt key data. - - - - Failed to get Windows Hello credential. - - - - Failed to decrypt key data. - + Грешка при задаване на клавишна ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ YubiKey - - %1 No interface, slot %2 - - General: - + ОÑновни: Could not find interface for hardware key with serial number %1. Please connect it to continue. - + Ðе е намерен Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð·Ð° хардуерен ключ ÑÑŠÑ Ñериен номер %1. За да продължите го вържете. YubiKeyEditWidget - - Refresh hardware tokens - ОбновÑване на хардуерни токени - - - Refresh - ОбновÑване - Hardware key slot selection Избор на Ñлот на хардуерен ключ @@ -8731,31 +9763,27 @@ Example: JBSWY3DPEHPK3PXP Selected hardware key slot does not support challenge-response! - ИзбраниÑÑ‚ Ñлот на Ñ…Ð°Ñ€Ð´ÑƒÐµÑ€Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ не поддържа challenge-response! + Избраната Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ð·Ð° хардуерен ключ не поддържа предизвикване-отговор! Challenge-Response - + Предизвикване-отговор Add Challenge-Response - + ДобавÑне на предизвикване-отговор Change Challenge-Response - + ПроменÑне на предизвикване-отговор Remove Challenge-Response - + Премахване на предизвикване-отговор Challenge-Response set, click to change or remove - - - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - + Зададено е предизвикване-отговор, щракнете за промÑна или премахване Detecting hardware keys… @@ -8765,57 +9793,40 @@ Example: JBSWY3DPEHPK3PXP No hardware keys detected Ðе Ñа открити хардуерни ключове - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 Ðевалиден Ñлот -% 2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + <p>Ðко разполагате Ñ ÐºÐ»ÑŽÑ‡ като <a href="https://www.yubico.com/">YubiKey</a> или <a href="https://onlykey.io">OnlyKey</a>, можете да го използвате като допълнителна защита.</p><p> За целта, една от позициите на ключа трÑбва да е наÑтроена като <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">Предизвикване-отговор HMAC-SHA1</a>.</p> + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - - The YubiKey PCSC interface has not been initialized. - - - - Hardware key is currently in use. - ХардуерниÑÑ‚ ключ в момента Ñе използва. + ИнтерфейÑÑŠÑ‚ за PCSC на YubiKey не е подготвен. Could not find or access hardware key with serial number %1. Please present it to continue. - + Ðе е намерен хардуерен или нÑма доÑтъп до ключ ÑÑŠÑ Ñериен â„– %1. За да продължите добавете ключа. Hardware key is locked or timed out. Unlock or re-present it to continue. - + ХардуерниÑÑ‚ ключ е заключен или времето за изчакване е изтекло. За да продължите го отключете или го добавете повторно. Hardware key was not found or is not configured. - + ХардуерниÑÑ‚ ключ не е намерен или не е наÑтроен. Failed to complete a challenge-response, the PCSC error code was: %1 - - - - - YubiKeyInterfaceUSB - - Unknown - ÐеизвеÑтен + Грешка при завършване на предизвикване-отговор, кодът за грешка на PCSC е: %1 - (USB) %1 [%2] Configured Slot - %3 - - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields @@ -8826,30 +9837,53 @@ Example: JBSWY3DPEHPK3PXP Passive USB Challenge-Response Key no interaction required - ПаÑивни + ПаÑивно + + + + YubiKeyInterfaceUSB + + Unknown + ÐеизвеÑтен + + + Press + USB Challenge-Response Key interaction request + ÐатиÑнете + + + Passive + USB Challenge-Response Key no interaction required + ПаÑивно The YubiKey USB interface has not been initialized. - - - - Hardware key is currently in use. - ХардуерниÑÑ‚ ключ в момента Ñе използва. + ИнтерфейÑÑŠÑ‚ за USB на YubiKey не е подготвен. Could not find hardware key with serial number %1. Please plug it in to continue. - Ðе може да Ñе намери хардуерен ключ ÑÑŠÑ Ñериен номер %1. Включете го, за да продължите. + Хардуерен ключ ÑÑŠÑ Ñериен â„– %1 не е намерен. За да продължите добавете ключа. Hardware key timed out waiting for user interaction. - Времето за изчакване на Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ñ Ñ…Ð°Ñ€Ð´ÑƒÐµÑ€Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ изтече. + Времето за изчакване на потребителÑко дейÑтвие Ñ Ñ…Ð°Ñ€Ð´ÑƒÐµÑ€ÐµÐ½ ключ е изтекло. A USB error occurred when accessing the hardware key: %1 - + Грешка Ñ USB при доÑтъпване на хардуерен ключ: %1 Failed to complete a challenge-response, the specific error was: %1 + Грешка при завършване на предизвикване-отговор, точната грешка е: %1 + + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields diff --git a/share/translations/keepassxc_ca.ts b/share/translations/keepassxc_ca.ts index 8d2a094c2..99519a99e 100644 --- a/share/translations/keepassxc_ca.ts +++ b/share/translations/keepassxc_ca.ts @@ -11,7 +11,7 @@ Report bugs at: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> - Reporteu errors a: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> + Informeu d'errors a: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> KeePassXC is distributed under the terms of the GNU General Public License (GPL) version 2 or (at your option) version 3. @@ -50,7 +50,7 @@ AccessControlDialog KeePassXC - Access Request - + KeePassXC - Sol·licitud d'accés Non-existing/inaccessible executable path. Please double-check the client is legit. @@ -78,7 +78,7 @@ Details - + Detalls Remember @@ -94,18 +94,18 @@ Deny All && Future - + Denegar-ho tot & Futur Allow All && &Future - + Permet-ho tot & Futur AccessControlDialog::DenyButton Deny for this program - + Denega per a aquest programa @@ -116,7 +116,7 @@ Use Pageant - + Usa Pageant Use OpenSSH @@ -124,7 +124,7 @@ SSH_AUTH_SOCK override - + SSH_AUTH_SOCK override SSH_AUTH_SOCK value @@ -140,7 +140,7 @@ SSH_SK_PROVIDER override - + SSH_SK_PROVIDER override No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. @@ -150,12 +150,16 @@ SSH Agent connection is working! + + Use both agents + Usa ambdós agents + ApplicationSettingsWidget Application Settings - Configuració de l'aplicació + Paràmetres de l'aplicació General @@ -221,6 +225,10 @@ Select backup storage directory + + This setting cannot be enabled when minimize on unlock is enabled. + + ApplicationSettingsWidgetGeneral @@ -270,12 +278,12 @@ On database unlock, show entries that - + Al desbloquejar la base de dades, mostra les entrades que have expired On database unlock, show entries that... - + ha caducat days @@ -406,7 +414,7 @@ Use monospaced font for notes - Usa lletra monoespaiada per a les notes + Fer servir fonts monoespaiada per les notes Minimize instead of app exit @@ -489,6 +497,14 @@ Remember last typed entry for: + + recent files + fitxers recents + + + Show passwords in color + + ApplicationSettingsWidgetSecurity @@ -587,7 +603,7 @@ Auto-Type Error - + Error de tecleig automàtic Permission Required @@ -603,7 +619,7 @@ Invalid entry provided - + Entrada proporcionada no vàlida Bracket imbalance detected, found extra { or } @@ -638,6 +654,10 @@ Invalid placeholder: %1 + + Entry does not have attribute for PICKCHARS: %1 + + AutoTypeAssociationsModel @@ -685,7 +705,7 @@ Sequence aborted: Caps Lock is on - + Seqüència avortada: el bloqueig de majúscules està activat Sequence aborted: Modifier keys held by user @@ -717,11 +737,11 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Search all open databases - + Cerca totes les bases de dades obertes Search… - + Cerca... Type Sequence @@ -745,19 +765,19 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Copy Username - + Copia el nom d'usuari Copy Password - + Copia la contrasenya Copy TOTP - + Copia TOTP Use Virtual Keyboard - + Utilitza el teclat virtual @@ -784,11 +804,11 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Allow Selected - Permet els seleccionats + Permet la selecció Deny All - Denega-ho tot + Denegar tot Disable for this site @@ -1075,7 +1095,7 @@ Would you like to migrate your existing settings now? Browse… Button for opening file dialog - + Explora... Use a custom browser configuration location: @@ -1409,10 +1429,6 @@ Còpia de seguretat de la base de dades situada a %2 Key File: Fitxer clau: - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - - Key file help @@ -1425,18 +1441,13 @@ Còpia de seguretat de la base de dades situada a %2 Hardware Key: Motxilla: - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - - Hardware key help Ajuda de la motxilla Key file to unlock the database - + Fitxer clau per desbloquejar la base de dades Browse for key file @@ -1444,7 +1455,7 @@ Còpia de seguretat de la base de dades situada a %2 Browse… - + Explora... Refresh hardware tokens @@ -1456,7 +1467,7 @@ Còpia de seguretat de la base de dades situada a %2 Unlock Database - + Desbloqueja la base de dades Cancel @@ -1464,7 +1475,7 @@ Còpia de seguretat de la base de dades situada a %2 Unlock - + Desbloqueja Please present or touch your YubiKey to continue… @@ -1490,7 +1501,7 @@ We recommend you update your KeePassXC installation. Database unlock canceled. - + Desbloqueig de la base de dades cancel·lat. Unlock failed and no password given @@ -1564,6 +1575,15 @@ If you do not have a key file, please leave the field empty. Select hardware key… + + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> + + + + <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> +<p>Click for more information…</p> + + DatabaseSettingWidgetMetaData @@ -1588,7 +1608,7 @@ If you do not have a key file, please leave the field empty. Database Credentials - + Credencials de la base de dades Encryption Settings @@ -1643,7 +1663,7 @@ If you do not have a key file, please leave the field empty. Remove - Suprimeix + Suprimiu Delete the selected key? @@ -2203,13 +2223,21 @@ This is definitely a bug, please report it to the developers. Database tab name modifier %1 [bloquejat] + + Export database to XML file + + + + XML file + + + + Writing the XML file failed + + DatabaseWidget - - Database Tags - - Searching… @@ -2256,7 +2284,7 @@ This is definitely a bug, please report it to the developers. Expired entries - + Entrades caducades No current database. @@ -2376,6 +2404,22 @@ Voleu deshabilitar el desat segur i provar-ho un altre cop? Entries expiring within %1 day(s) + + Searches and Tags + + + + Enter a unique name or overwrite an existing search from the list: + + + + Save + Desa + + + Save Search + + EditEntryWidget @@ -2512,10 +2556,6 @@ Would you like to correct it? Hide Oculta - - Tomorrow - Demà - %n week(s) % n setmana/es%n setmana/es @@ -2528,6 +2568,10 @@ Would you like to correct it? %n year(s) % n any/s%n any/s + + %n hour(s) + + EditEntryWidgetAdvanced @@ -2915,7 +2959,7 @@ Would you like to correct it? Browse… Button for opening file dialog - + Explora... Attachment @@ -3043,6 +3087,14 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups + + Omit WWW subdomain from matching: + + + + Omit WWW subdomain from matching toggle for this and sub groups + + EditGroupWidgetKeeShare @@ -3076,7 +3128,7 @@ Would you like to correct it? Browse… - + Explora... Clear fields @@ -3624,6 +3676,10 @@ Error: %1 Auto-Type Compleció automàtica + + Tags + + EntryModel @@ -3730,14 +3786,14 @@ Error: %1 Has TOTP - + Disposa de TOTP EntryPreviewWidget Display current TOTP value - + Mostra el valor actual de TOTP Close @@ -3831,6 +3887,10 @@ Error: %1 Disabled Inhabilitat + + Double click to copy value + + EntryURLModel @@ -4748,7 +4808,7 @@ If this reoccurs, then your database file may be corrupt. Note: Do NOT use a file that may change as that will prevent you from unlocking your database. - + Nota: NO utilitzeu un fitxer que pugui canviar, ja que us impedirà desbloquejar la base de dades. Browse for key file @@ -4756,7 +4816,7 @@ If this reoccurs, then your database file may be corrupt. Browse… - + Explora... Old key file format @@ -5000,7 +5060,7 @@ Are you sure you want to continue with this file? Database &Reports… - + Informes de la base de dades Statistics, health check, etc. @@ -5072,11 +5132,11 @@ Are you sure you want to continue with this file? &Lock Database - + B&loqueja la base de dades Lock &All Databases - + Bloqueja totes les bases de dades &Title @@ -5140,11 +5200,11 @@ Are you sure you want to continue with this file? Show QR Code - + Mostra el codi QR Set up TOTP… - + Configura el TOTP... Copy &TOTP @@ -5192,7 +5252,7 @@ Are you sure you want to continue with this file? Save Database Backup… - + Desa una còpia de seguretat... Add key to SSH Agent @@ -5216,11 +5276,11 @@ Are you sure you want to continue with this file? Dark - + Fosc Classic (Platform-native) - + Clàssic (natiu de la plataforma) Show Toolbar @@ -5314,6 +5374,30 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? + + Tags + + + + No Tags + + + + %1 Entry(s) + + + + Copy Password and TOTP + Copia la contrasenya i el TOTP + + + &XML File… + + + + XML File… + + ManageDatabase @@ -5463,7 +5547,7 @@ We recommend you use the AppImage available on our downloads page. NewDatabaseWizardPageDatabaseKey Database Credentials - + Credencials de la base de dades A set of credentials known only to you that protects your database. @@ -5684,29 +5768,6 @@ We recommend you use the AppImage available on our downloads page. - - PasswordEdit - - Passwords do not match - - - - Passwords match so far - - - - Toggle Password (%1) - - - - Generate Password (%1) - - - - Warning: Caps Lock enabled! - - - PasswordEditWidget @@ -5885,10 +5946,6 @@ We recommend you use the AppImage available on our downloads page. Also choose from: - - Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" - - Exclude look-alike characters Excloure caràcters d'aspecte semblant @@ -6038,6 +6095,57 @@ Do you want to overwrite it? Password quality Excel·lent + + Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" + + + + + PasswordWidget + + Passwords do not match + + + + Passwords match so far + + + + Toggle Password (%1) + + + + Generate Password (%1) + + + + Warning: Caps Lock enabled! + + + + Quality: %1 + + + + Poor + Password quality + Pobre + + + Weak + Password quality + Feble + + + Good + Password quality + Bona + + + Excellent + Password quality + Excel·lent + PickcharsDialog @@ -6382,7 +6490,7 @@ Do you want to overwrite it? Copy the current TOTP to the clipboard (equivalent to "-a totp"). - + Copia el TOTP actual al porta-retalls (equivalent a "-a totp"). Must match only one entry, otherwise a list of possible matches is shown. @@ -6419,11 +6527,11 @@ Do you want to overwrite it? ERROR: Please specify one of --attribute or --totp, not both. - + ERROR: Especifiqueu un, --atribut o --totp, no tots dos. Entry with path %1 has no TOTP set up. - + L'entrada amb la ruta %1 no té configurat TOTP. ERROR: attribute %1 is ambiguous, it matches %2. @@ -7095,7 +7203,7 @@ Available commands: Show the entry's current TOTP. - + Mostra el TOTP actual de l'entrada. Show the protected attributes in clear text. @@ -7168,10 +7276,6 @@ Please consider generating a new key file. Invalid YubiKey serial %1 - - Please present or touch your YubiKey to continue… - - Enter password to encrypt database (optional): @@ -7319,7 +7423,7 @@ Nucli: %3 %4 Quick Unlock - + Desbloqueig ràpid Secret Service Integration @@ -7545,11 +7649,11 @@ Nucli: %3 %4 Browser Statistics - + Estadístiques del navegador Health Check - + Informe de salut HIBP @@ -7557,7 +7661,7 @@ Nucli: %3 %4 Statistics - + Estadístiques Unsupported key file version: %1 @@ -7589,7 +7693,7 @@ Nucli: %3 %4 lock all open databases - + bloqueja totes les bases de dades obertes key file of the database @@ -7605,11 +7709,11 @@ Nucli: %3 %4 Locked databases. - + Bases de dades bloquejades. Database failed to lock. - + La base de dades no s'ha pogut bloquejar. Another instance of KeePassXC is already running. @@ -7649,6 +7753,67 @@ Nucli: %3 %4 Failed to sign challenge using Windows Hello. + + Please present or touch your YubiKey to continue. + + + + Show all the attributes of the entry. + + + + Edit a database. + + + + Could not change the database key. + + + + Database was not modified. + + + + Successfully edited the database. + + + + Loading the new key file failed: %1 + + + + Unset the password for the database. + + + + Unset the key file for the database. + + + + Cannot use %1 and %2 at the same time. + + + + Cannot remove all the keys from a database. + + + + Cannot remove password: The database does not have a password. + + + + Cannot remove file key: The database does not have a file key. + + + + Found unexpected Key type %1 + + + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + + QtIOCompressor @@ -8196,6 +8361,10 @@ Nucli: %3 %4 Limit search to selected group Limitar la cerca al grup seleccionat + + Save Search + + SettingsClientModel @@ -8408,16 +8577,39 @@ Nucli: %3 %4 TagModel - - All - - Expired - + Caducades Weak Passwords + Contrasenyes febles + + + All Entries + + + + Clear Search + + + + + TagView + + Remove Search + + + + Remove Tag + + + + Confirm Remove Tag + + + + Remove tag "%1" from all entries in this database? @@ -8449,7 +8641,7 @@ Nucli: %3 %4 There was an error creating the QR code. - + Hi hagut un error creant el codi QR Closing in %1 seconds. @@ -8517,7 +8709,7 @@ Nucli: %3 %4 Invalid TOTP Secret - + Secret de TOTP no vàlid You have entered an invalid secret key. The key must be in Base32 format. @@ -8526,7 +8718,7 @@ Example: JBSWY3DPEHPK3PXP Confirm Remove TOTP Settings - + Confirma l'eliminació de la configuració de TOTP Are you sure you want to delete TOTP settings for this entry? diff --git a/share/translations/keepassxc_cs.ts b/share/translations/keepassxc_cs.ts index 059e43dc9..c9e97c254 100644 --- a/share/translations/keepassxc_cs.ts +++ b/share/translations/keepassxc_cs.ts @@ -80,6 +80,10 @@ Details Podrobnosti + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + VaÅ¡e rozhodnutí bude zapamatováno po dobu chodu jak požadujícího klienta A KeePassXC. + Remember Zapamatovat @@ -88,10 +92,6 @@ Allow Selected Povolit vybrané - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - VaÅ¡e rozhodnutí bude zapamatováno po dobu chodu jak požadujícího klienta A KeePassXC. - Deny All && Future Zamítnout vÅ¡e a jakékoli budoucí @@ -122,6 +122,10 @@ Use OpenSSH Použít OpenSSH + + Use both agents + Použít oba agenty + SSH_AUTH_SOCK override pÅ™epsání SSH_AUTH_SOCK @@ -150,10 +154,6 @@ SSH Agent connection is working! Spojení s SSH agentem funguje! - - Use both agents - Použít oba agenty - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security ZabezpeÄení + + This setting cannot be enabled when minimize on unlock is enabled. + Nastavení nemůže být povoleno, pokud je povoleno minimalizování okna pÅ™i odemÄení databáze. + Access error for config file %1 Chyba přístupu k souboru s nastaveními %1 @@ -256,6 +260,10 @@ Remember previously used databases Pamatovat si minule použité databáze + + recent files + nedávné soubory + Load previously open databases on startup PÅ™i spuÅ¡tÄ›ní naÄíst minule otevÅ™ené databáze @@ -333,7 +341,7 @@ Use alternative saving method (may solve problems with Dropbox, Google Drive, GVFS, etc.) - + Použít alternativní metodu ukládání (může vyÅ™eÅ¡it problémy s se službami Dropbox, Google Drive, vrstvami typu GVFS, atp.) Temporary file moved into place @@ -408,6 +416,10 @@ Toolbar button style: Styl tlaÄítek na liÅ¡tÄ› nástrojů: + + Show passwords in color + Zobrazit hesla barevnÄ› + Use monospaced font for notes Pro poznámky použít písmo se vÅ¡emi znaky stejnÄ› Å¡irokými @@ -491,7 +503,7 @@ Remember last typed entry for: - + Pamatovat si naposledy zadanou položku po dobu: @@ -536,7 +548,7 @@ Enable database quick unlock (Touch ID / Windows Hello) - + Zapnout rychlé odemykání (Touch ID / Windows Hello) Lock databases when session is locked or lid is closed @@ -572,7 +584,7 @@ Enable double click to copy the username/password entry columns - + Zapnout kopírování dvojklikem na sloupce s uživatelským jménem / heslem Privacy @@ -582,12 +594,16 @@ Use DuckDuckGo service to download website icons Pro stahování ikon webů použít službu DuckDuckGo + + Hide TOTP in the entry preview panel + Skrýt TOTP v panelu náhledu položky + AutoType The requested Auto-Type sequence cannot be used due to an error: - + Požadovanou posloupnost automatického vyplňování není možné použít kvůli chybÄ›: Auto-Type Error @@ -611,7 +627,7 @@ Bracket imbalance detected, found extra { or } - + ZjiÅ¡tÄ›na neuzavÅ™ená složená závorka – nalezen znak „{ “nebo „} navíc Too many repetitions detected, max is %1: %2 @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 ZjiÅ¡tÄ›na velmi dlouhá prodleva, nejdelší umožnÄ›ná je %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + Záznam nemá atribut pro PICKCHARS: %1 + Invalid conversion type: %1 Neplatný typ pÅ™evodu: %1 @@ -799,13 +819,13 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Disable for this site Vypnout pro tuto stránku + + Undo + + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser Uložit položku - Ok Ok @@ -820,13 +840,69 @@ Please select the correct database for saving credentials. Máte otevÅ™eno vícero databází. Vyberte databázi, do které chcete pÅ™ihlaÅ¡ovací údaje uložit. + + KeePassXC - Select Database + + + + + BrowserPasskeysConfirmationDialog + + Cancel + ZruÅ¡it + + + Update + + + + Authenticate + + + + Register new + + + + Register + + + + Timeout in <b>%n</b> seconds... + + + + Do you want to register Passkey for: + + + + Existing Passkey found. +Do you want to register a new Passkey for: + + + + Select the existing Passkey and press Update to replace it. + + + + Authenticate Passkey credentials for: + + + + Relying Party: %1 + + + + Username: %1 + + + + KeePassXC - Passkey credentials + + BrowserService - - KeePassXC: Create a new group - KeePassXC: vytvoÅ™it novou skupinu - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -835,10 +911,6 @@ Do you want to create this group? Chcete tuto skupinu vytvoÅ™it? - - KeePassXC: New key association request - KeePassXC: Nový požadavek na pÅ™iÅ™azení klíÄe - You have received an association request for the following database: %1 @@ -855,28 +927,16 @@ chrome-laptop. Save and allow access Uložit a umožnit přístup - - KeePassXC: Overwrite existing key? - KeePassXC: PÅ™epsat stávající klíÄ? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? Sdílený Å¡ifrovací klÃ­Ä nazvaný „%1“ už existuje. PÅ™ejete si ho pÅ™epsat? - - KeePassXC: Update Entry - KeePassXC: Aktualizovat záznam - Do you want to update the information in %1 - %2? Chcete aktualizovat údaj v %1 – %2? - - KeePassXC: Delete entry - KeePassXC: Smazat položku - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -886,50 +946,45 @@ Opravdu chcete tuto položku smazat? - Converting attributes to custom data… - PÅ™evádÄ›ní atributů na uživatelsky urÄená data… + %1 (Passkey) + - Abort - PÅ™eruÅ¡it + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: PÅ™evedené KeePassHTTP atributy + KeePassXC - Create a new group + - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - ÚspěšnÄ› pÅ™evedeny atributy z %1 položek. -PÅ™esunuto %2 klíÄů do uživatelsky urÄených dat. - - - Successfully moved %n keys to custom data. - %n klÃ­Ä ÃºspěšnÄ› pÅ™esunut do uživatelsky urÄených dat.%n klíÄe úspěšnÄ› pÅ™esunuty do uživatelsky urÄených dat.%n klíÄů úspěšnÄ› pÅ™esunuto do uživatelsky urÄených dat.%n klíÄy úspěšnÄ› pÅ™esunuty do uživatelsky urÄených dat. + Disable + Vypnout - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Nenalezena žádná položka, která má KeePassHTTP atributy! + KeePassXC - Overwrite existing key? + - The active database does not contain an entry with KeePassHTTP attributes. - PrávÄ› otevÅ™ená databáze neobsahuje žádnou položku s atributy KeePassHTTP. + KeePassXC - Update Passkey + - Don't show this warning again - Toto varování znovu nezobrazovat + KeePassXC - Update Entry + - KeePassXC: Legacy browser integration settings detected - KeePassXC: zjiÅ¡tÄ›na nastavení starého napojení na webový prohlížeÄ + KeePassXC - Delete entry + - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - VaÅ¡e nastavení KeePassXC-Browser je tÅ™eba pÅ™esunout do nastavení databáze. -Toto je nezbytné pro zachování vaÅ¡ich stávajících spojení prohlížeÄe. -Chcete pÅ™enést vaÅ¡e stávající nastavení nyní? + KeePassXC - New key association request + + + + Passkey + @@ -997,11 +1052,11 @@ Chcete pÅ™enést vaÅ¡e stávající nastavení nyní? Only entries with the same scheme (http://, https://, …) are returned. - + Je odpovÄ›zeno pouze položkami stejného schématu (http://, https://, …). Match URL scheme (e.g., https://example.com) - + Hledat shodu ve schématu URL (napÅ™., https://example.com) Only returns the best matches for a specific URL instead of all entries for the whole domain. @@ -1137,14 +1192,6 @@ Chcete pÅ™enést vaÅ¡e stávající nastavení nyní? Please see special instructions for browser extension use below Níže si pÅ™eÄtÄ›te konkrétní pokyny pro rozšíření do webového prohlížeÄe - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Chyba:</b> Uživatelsky urÄené umístÄ›ní proxy nenalezeno! <br/>Napojení na prohlížeÄ NEBUDE bez proxy FUNGOVAT. - - - <b>Warning:</b> The following options can be dangerous! - <b>Varování:</b> Následující pÅ™edvolby mohou být nebezpeÄné! - Executable Files Spustitelné soubory @@ -1161,6 +1208,38 @@ Chcete pÅ™enést vaÅ¡e stávající nastavení nyní? Select native messaging host folder location Vyberte umístÄ›ní složky hostitele nativních zpráv + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + + + + <b>Warning:</b> Only adjust these settings if necessary. + + + + The custom proxy location does not exist. + + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1183,14 +1262,6 @@ Chcete pÅ™enést vaÅ¡e stávající nastavení nyní? CsvImportWidget - - Import CSV fields - Importovat CSV kolonky - - - filename - název souboru - size, rows, columns velikost, řádky, sloupce @@ -1299,50 +1370,29 @@ Chcete pÅ™enést vaÅ¡e stávající nastavení nyní? Column %1 Sloupec %1 - - Imported from CSV file - Importováno z CSV souboru - - - Original data: - Původní data: - - - Error(s) detected in CSV file! - V CSV soubory byly zjiÅ¡tÄ›ny chyby! - [%n more message(s) skipped] [%n další zpráva pÅ™eskoÄena][%n další zprávy pÅ™eskoÄeny][%n dalších zpráv pÅ™eskoÄeno][%n další zprávy pÅ™eskoÄeny] - Error - Chyba + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - CSV import: chyby zápisu: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n bajt%n bajty%n bajtů%n bajty - %n row(s) + CSV row count %n řádek%n řádky%n řádků%n řádky %n column(s) + CSV column count %n sloupec%n sloupce%n sloupců%n sloupce @@ -1389,7 +1439,7 @@ Záložní databáze se nachází v %2 Key not transformed. This is a bug, please report it to the developers. - + KlÃ­Ä nebyl pÅ™emÄ›nÄ›n. Toto je chyba – prosím nahlaste to vývojářům. Recycle Bin @@ -1417,39 +1467,10 @@ Záložní databáze se nachází v %2 Password field Kolonka pro heslo - - Enter Additional Credentials (if any): - Zadejte další pÅ™ihlaÅ¡ovací údaje (pokud jsou): - - - Key File: - Soubor s klíÄem: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - - - - Key file help - NápovÄ›da k souboru s klíÄem - Hardware key slot selection VýbÄ›r slotu v hardwarovém klíÄi - - Hardware Key: - Hardwarový klíÄ: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - - - - Hardware key help - NápovÄ›da k hardwarovému klíÄi - Key file to unlock the database Soubor s klíÄem k odemknutí databáze @@ -1462,14 +1483,6 @@ Záložní databáze se nachází v %2 Browse… Procházet… - - Refresh hardware tokens - Znovu naÄíst hardwarová bezpeÄnostní zařízení - - - Refresh - NaÄíst znovu - Unlock Database Odemknout databázi @@ -1498,7 +1511,11 @@ You can try to open it anyway, but it may be incomplete and saving any changes may incur data loss. We recommend you update your KeePassXC installation. - + Databáze kterou se pokoušíte otevřít byla nejspíš vytvoÅ™ena v novÄ›jší verzi KeePassXC. + +Je možné se pokusit se ji otevřít i tak, ale může být neúplná a uložení jakýchkoli zmÄ›n může vést ke ztrátÄ› dat. + +DoporuÄujeme aktualizovat vaÅ¡i instalaci KeePassXC. Open database anyway @@ -1526,14 +1543,6 @@ Abyste tomu, aby se tato chyba objevovala, je tÅ™eba pÅ™ejít do „Nastavení d Retry with empty password Zkusit znovu bez hesla - - Failed to authenticate with Windows Hello - NepodaÅ™ilo se ověřit se prostÅ™ednictvím Windows Hello - - - Failed to authenticate with Touch ID - NepodaÅ™ilo se ověřit se prostÅ™ednictvím Touch ID - Failed to open key file: %1 NepodaÅ™ilo se otevřít soubor s klíÄem: %1 @@ -1544,7 +1553,7 @@ Abyste tomu, aby se tato chyba objevovala, je tÅ™eba pÅ™ejít do „Nastavení d You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> - + Používáte starý formát souboru s klíÄem, který může KeePassXC<br>pÅ™estat v budoucnu podporovat.<br><br>Zvažte prosím vytvoÅ™ení nového souboru s klíÄem v nabídce:<br><strong>Databáze &gt; ZabezpeÄení databáze &gt; ZmÄ›nit soubor s klíÄem.</strong><br> Don't show this warning again @@ -1567,22 +1576,60 @@ Abyste tomu, aby se tato chyba objevovala, je tÅ™eba pÅ™ejít do „Nastavení d Soubor s databází není možné použít pro úÄely souboru s klíÄem (mÄ›ní se) - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Soubor s databází není možné použít pro úÄely souboru s klíÄem (bude se mÄ›nit). -Pokud nemáte žádný soubor, který by se zaruÄenÄ› nemÄ›nil (a byl tedy vhodný jako klíÄ), tuto kolonku nevyplňujte. + authenticate to access the database + pro přístup k databázi se autentizujte - Detecting hardware keys… - Zjišťování hardwarových klíÄů… + Failed to authenticate with Quick Unlock: %1 + - No hardware keys detected - Nenalezeny žádné hardwarové klíÄe + Select Key File: + - Select hardware key… - Vyberte hardwarový klíÄ… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1594,10 +1641,6 @@ Pokud nemáte žádný soubor, který by se zaruÄenÄ› nemÄ›nil (a byl tedy vhod DatabaseSettingsDialog - - Advanced Settings - PokroÄilá nastavení - General Obecné @@ -1629,18 +1672,6 @@ Pokud nemáte žádný soubor, který by se zaruÄenÄ› nemÄ›nil (a byl tedy vhod KeePassXC-Browser settings Nastavení pro KeePassXC-Browser - - Convert KeePassHTTP data - PÅ™evést KeePassHTTP data - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - - - - Refresh database root group ID - Znovu vytvoÅ™it identifikátor koÅ™enové skupiny databáze - Disconnect all browsers Odpojit veÅ¡keré prohlížeÄe @@ -1649,6 +1680,10 @@ Pokud nemáte žádný soubor, který by se zaruÄenÄ› nemÄ›nil (a byl tedy vhod Forget all site-specific settings on entries Zapomenout v položkách veÅ¡kerá nastavení specifická pro daný web + + Refresh database root group ID + Znovu vytvoÅ™it identifikátor koÅ™enové skupiny databáze + Stored keys Uložené klíÄe @@ -1697,18 +1732,10 @@ This may prevent connection to the browser plugin. Opravdu chcete odpojit vÅ¡echny prohlížeÄe? To může zabránit spojení se zásuvným modulem prohlížeÄe. - - KeePassXC: No keys found - KeePassXC: Nebyly nalezeny žádné klíÄe - No shared encryption keys found in KeePassXC settings. V nastavení KeePassXC nenalezeny žádné sdílené Å¡ifrovací klíÄe. - - KeePassXC: Removed keys from database - KeePassXC: KlíÄe odebrány z databáze - Successfully removed %n encryption key(s) from KeePassXC settings. Z nastavení KeePassXC úspěšnÄ› odebrán %n Å¡ifrovací klíÄ.Z nastavení KeePassXC úspěšnÄ› odebrány %n Å¡ifrovací klíÄe.Z nastavení KeePassXC úspěšnÄ› odebráno %n Å¡ifrovacích klíÄů.Z nastavení KeePassXC úspěšnÄ› odebrány %n Å¡ifrovací klíÄe. @@ -1727,31 +1754,14 @@ OprávnÄ›ní pro přístup k položkám budou odvolána. Abort PÅ™eruÅ¡it - - KeePassXC: Removed permissions - KeePassXC: Odebraná oprávnÄ›ní - Successfully removed permissions from %n entry(s). Z %n položky úspěšnÄ› odebrána oprávnÄ›ní.Ze %n položek úspěšnÄ› odebrána oprávnÄ›ní.Z %n položek úspěšnÄ› odebrána oprávnÄ›ní.Ze %n položek úspěšnÄ› odebrána oprávnÄ›ní. - - KeePassXC: No entry with permissions found! - KeePassXC: Nebyl nalezen žádný záznam s oprávnÄ›ními! - The active database does not contain an entry with permissions. PrávÄ› otevÅ™ená databáze neobsahuje záznam s oprávnÄ›ními. - - Move KeePassHTTP attributes to custom data - PÅ™esunout KeePassHTTP atributy do uživatelsky urÄených dat - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - - Refresh database ID Znovu vytvoÅ™it identifikátor databáze @@ -1762,6 +1772,26 @@ This is only necessary if your database is a copy of another and the browser ext Opravdu chcete znovu vytvoÅ™it identifikátor databáze? Toto je nutné pouze v případÄ›, že vaÅ¡e databáze je kopií jiné a nefunguje propojení s rozšířením prohlížeÄe. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + PÅ™evést původní KeePassHTTP atributy do kompatibilních uživatelsky urÄených dat v KeePassXC-Browser + + + No keys found + + + + Removed keys from database + + + + Removed permissions + + + + No entry with permissions found! + + DatabaseSettingsWidgetDatabaseKey @@ -1801,6 +1831,18 @@ Opravdu chcete pokraÄovat bez hesla? Failed to change database credentials NepodaÅ™ilo se zmÄ›nit pÅ™ihlaÅ¡ovací údaje do databáze + + Weak password + Slabé heslo + + + You must enter a stronger password to protect your database. + + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + + DatabaseSettingsWidgetEncryption @@ -1808,14 +1850,6 @@ Opravdu chcete pokraÄovat bez hesla? Decryption Time: Doba, kterou rozÅ¡ifrování trvalo: - - Change existing decryption time - ZmÄ›nit existující Äas rozÅ¡ifrování - - - Change - ZmÄ›nit - Decryption time in seconds Doba rozÅ¡ifrování (v sekundách) @@ -1834,11 +1868,11 @@ Opravdu chcete pokraÄovat bez hesla? Format cannot be changed: Your database uses KDBX 4 features - + Formát není možné zmÄ›nit: VaÅ¡e databáze používá funkce KDBX 4 Unless you need to open your database with other programs, always use the latest format. - + Pokud neplánujete otevírat svou databázi i jinými programy, vždy používejte nejnovÄ›jší formát. Encryption Algorithm: @@ -1896,11 +1930,6 @@ Opravdu chcete pokraÄovat bez hesla? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - nezmÄ›nÄ›no - Number of rounds too high Key transformation rounds @@ -1910,7 +1939,9 @@ Opravdu chcete pokraÄovat bez hesla? You are using a very high number of key transform rounds with Argon2. If you keep this number, your database may take hours, days, or even longer to open. - + Používáte velmi vysoký poÄet průchodů transformace klíÄe s Argnon2. + +Pokud tento poÄet ponecháte, otevírání databáze může trvat hodiny, dny, nebo dokonce déle! Understood, keep number @@ -1929,7 +1960,9 @@ If you keep this number, your database may take hours, days, or even longer to o You are using a very low number of key transform rounds with AES-KDF. If you keep this number, your database will not be protected from brute force attacks. - + Používáte velmi nízký poÄet průchodů transformace funkcí pro odvození klíÄe (KDF) a Å¡ifrou AES. + +Pokud tento poÄet ponecháte, vaÅ¡e databáze nebude chránÄ›na pÅ™ed útoky zkouÅ¡ením hesel. KDF unchanged @@ -1949,6 +1982,18 @@ If you keep this number, your database will not be protected from brute force at Threads for parallel execution (KDF settings) vláknovláknavlákenvlákna + + Encryption Settings: + + + + Basic + + + + Advanced + PokroÄilé + DatabaseSettingsWidgetFdoSecrets @@ -2005,20 +2050,12 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry - Nejvyšší umožnÄ›ný poÄet historických záznamů pro jednotlivé záznamy - - - Max. history items: - Omezit poÄet uchovávaných pÅ™edchozích verzí záznamů na: + Nejvyšší umožnÄ›ný poÄet položek historie pro jednotlivé záznamy Maximum size of history per entry Nejvyšší umožnÄ›ná velikost historických záznamů pro jednotlivé záznamy - - Max. history size: - Omezit datový objem uchovávaných pÅ™edchozích verzí záznamů na: - MiB MiB @@ -2049,6 +2086,55 @@ Tuto akci nelze vzít zpÄ›t. (old) (staré) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + + + + Limit the amount of history items per entry to: + Omezit poÄet historických položek záznamu na: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + + + + Limit the total size of history items per entry to: + Omezit celkovou velikost historických položek záznamu na: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + + + + Autosave delay since last change + + + + Autosave delay + + + + Autosave delay since last change in minutes + + + + min + min + + + Autosave delay since last change checkbox + + DatabaseSettingsWidgetKeeShare @@ -2094,7 +2180,7 @@ Tuto akci nelze vzít zpÄ›t. Delete all custom icons not in use by any entry or group - + Smazat veÅ¡keré uživatelsky urÄené ikony nepoužívané pro žádnou položku Äi skupinu Purge unused icons @@ -2106,7 +2192,7 @@ Tuto akci nelze vzít zpÄ›t. At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? - + PÅ™inejmenším jedna z vybraných ikon je v tuto chvíli používána pÅ™inejmenším jedním záznamem nebo skupinou. Ikony vÅ¡ech dotÄených záznamů a skupin budou nahrazeny výchozí ikonou. Opravdu chcete smazat ikony, kterou jsou používány? Custom Icons Are In Use @@ -2176,26 +2262,10 @@ Toto je nepochybnÄ› chyba, nahlaste ji prosím vývojářům. CSV file CSV soubor - - Select CSV file - Vyberte CSV soubor - Merge database SlouÄit databáze - - KeePass 1 database - Databáze ve formátu KeePass verze 1 - - - Open KeePass 1 database - Otevřít databázi ve formátu KeePass verze 1 - - - Open OPVault - Otevřít OPVault - Export database to CSV file Exportovat databázi do CSV souboru @@ -2208,6 +2278,18 @@ Toto je nepochybnÄ› chyba, nahlaste ji prosím vývojářům. Writing the HTML file failed. Zápis do HTML souboru se nezdaÅ™il. + + Export database to XML file + Exportovat databázi do XML souboru + + + XML file + XML soubor + + + Writing the XML file failed + Zápis do XML souboru se nezdaÅ™il. + Export Confirmation Potvrzení exportu @@ -2216,15 +2298,6 @@ Toto je nepochybnÄ› chyba, nahlaste ji prosím vývojářům. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? Chystáte se exportovat svou databázi do neÅ¡ifrovaného souboru. To zanechá vaÅ¡e hesla a citlivé informace zranitelné. Opravdu to chcete? - - New Database - Nová databáze - - - %1 [New Database] - Database tab name modifier - %1 [nová databáze] - %1 [Locked] Database tab name modifier @@ -2234,8 +2307,8 @@ Toto je nepochybnÄ› chyba, nahlaste ji prosím vývojářům. DatabaseWidget - Database Tags - Å títky databáze + Searches and Tags + Hledání a Å¡títky Searching… @@ -2285,6 +2358,10 @@ Toto je nepochybnÄ› chyba, nahlaste ji prosím vývojářům. Expired entries Položky kterým skonÄila platnost + + Entries expiring within %1 day(s) + Záznamy, kterým platnost skonÄí v rámci %1 dneZáznamy, kterým platnost skonÄí v rámci %1 dnůZáznamy, kterým platnost skonÄí v rámci %1 dníZáznamy, kterým platnost skonÄí v rámci %1 dne/í + No current database. Žádná nedávná databáze. @@ -2309,6 +2386,18 @@ Toto je nepochybnÄ› chyba, nahlaste ji prosím vývojářům. No Results Nic nenalezeno + + Save + Uložit + + + Enter a unique name or overwrite an existing search from the list: + + + + Save Search + Uložit hledání + Lock Database? Uzamknout databázi? @@ -2399,9 +2488,14 @@ Vypnout bezpeÄné ukládání a zkusit to znovu? Could not find database file: %1 Nedaří se nalézt soubor s databází: %1 - - Entries expiring within %1 day(s) - + + New Database + Nová databáze + + + %1 [New Database] + Database tab name modifier + %1 [nová databáze] @@ -2476,7 +2570,7 @@ Vypnout bezpeÄné ukládání a zkusit to znovu? Some Browser Integration settings are overridden by group settings. - + NÄ›která z nastavení napojení na prohlížeÄ jsou pÅ™ebita nastavením skupiny. Invalid Entry @@ -2496,13 +2590,17 @@ VÅ¡echny provedené zmÄ›ny byly bohužel ztraceny. An error occurred while validating the custom Auto-Type sequence: %1 Would you like to correct it? - + DoÅ¡lo k chybÄ› pÅ™i ověřování uživatelsky urÄené posloupnosti automatického vyplňování: +%1 +Chcete to opravit? An error occurred while validating the Auto-Type sequence for "%1": %2 Would you like to correct it? - + DoÅ¡lo k chybÄ› pÅ™i ověřování posloupnosti automatického vyplňování pro "%1": +%2 +Chcete ji opravit? Entry updated successfully. @@ -2540,6 +2638,10 @@ Would you like to correct it? Hide Skrýt + + %n hour(s) + %n hodina%n hodiny%n hodin%n hodiny + %n week(s) %n týden%n týdny%n týdnů%n týdny @@ -2552,10 +2654,6 @@ Would you like to correct it? %n year(s) %n rok%n roky%n let%n roky - - %n hour(s) - %n hodina%n hodiny%n hodin%n hodiny - EditEntryWidgetAdvanced @@ -2617,7 +2715,7 @@ Would you like to correct it? If checked, the entry will not appear in reports like Health Check and HIBP even if it doesn't match the quality requirements. - + Pokud zaÅ¡krtnuto, záznam se neobjeví ve výkazech jako jsou Kontrola zdraví a HIBP, i když nesplňují požadavky na kvalitu. Exclude from database reports @@ -2674,10 +2772,20 @@ Would you like to correct it? Add new window association PÅ™idat nové pÅ™iÅ™azení k oknu + + + + Add item + + + Remove selected window association Odebrat oznaÄené pÅ™iÅ™azení k oknu + + - + Remove item + - + Window title: Titulek okna: @@ -2702,16 +2810,6 @@ Would you like to correct it? Custom Auto-Type sequence for this window Uživatelsky urÄená posloupnost automatického vyplňování pro toto okno - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2813,22 +2911,10 @@ Would you like to correct it? Notes field Kolonka pro poznámky - - Toggle the checkbox to reveal the notes section. - Od/zaÅ¡krtnutím této kolonky odkryjete sekci poznámek. - Username field Kolonka pro uživatelské jméno - - Toggle notes visible - Zobraz./nezobrazovat poznámky - - - Notes: - Poznámky: - Expiration field Kolonka data a Äasu konce platnosti @@ -2845,14 +2931,6 @@ Would you like to correct it? Presets PÅ™edpÅ™ipravené - - Password: - Heslo: - - - URL: - URL adresa: - Url field Kolonka pro URL @@ -2861,18 +2939,10 @@ Would you like to correct it? Download favicon for URL Stáhnout ikonu webu pro URL - - Title: - Titulek: - Title field Kolonka pro název - - Username: - Uživatelské jméno: - Password field Kolonka pro heslo @@ -2881,18 +2951,42 @@ Would you like to correct it? Toggle expiration Vyp/zap. skonÄení platnosti - - Expires: - Platnost skonÄí: - - - Tags: - Å títky: - Tags list Seznam Å¡títků + + &Username: + &Uživatelské jméno: + + + &Title: + &Titulek: + + + &Password: + &Heslo: + + + UR&L: + UR&L adresa: + + + &Notes: + &Poznámky: + + + Toggle notes visibility + Zobraz./nezobrazovat poznámky + + + T&ags: + Å &títky: + + + &Expires: + &Platnost skonÄí: + EditEntryWidgetSSHAgent @@ -2932,19 +3026,6 @@ Would you like to correct it? Private key Soukromá Äást klíÄe - - External file - VnÄ›jší soubor - - - Browser for key file - Nalistovat soubor s klíÄem - - - Browse… - Button for opening file dialog - Procházet… - Attachment Příloha @@ -2961,6 +3042,23 @@ Would you like to correct it? Remove from agent Odebrat z agenta + + External file + VnÄ›jší soubor + + + Browser for key file + Nalistovat soubor s klíÄem + + + Browse… + Button for opening file dialog + Procházet… + + + Generate + TvoÅ™ + Select attachment file Vybrat soubor, který pÅ™iložit @@ -2996,10 +3094,6 @@ Would you like to correct it? Icon Ikona - - Browser Integration - Napojení na webový prohlížeÄ - Properties Vlastnosti @@ -3016,6 +3110,10 @@ Would you like to correct it? Group has unsaved changes Ve skupinÄ› jsou neuložené zmÄ›ny + + Browser Integration + Napojení na webový prohlížeÄ + Enable Zapnout @@ -3031,13 +3129,9 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - Upravit skupinu - These settings affect to the group's behaviour with the browser extension. - + Tato nastavení ovlivní chování skupiny pro rozšíření pro webový prohlížeÄ. Hide entries from browser extension: @@ -3045,7 +3139,7 @@ Would you like to correct it? Hide entries from browser extension toggle for this and sub groups - + Vyp/zap. „Skrýt položky z rozšíření pro prohlížeÄ“ pro tuto a podřízené skupiny Skip Auto-Submit for entries: @@ -3057,7 +3151,7 @@ Would you like to correct it? Use entries only with HTTP Basic Auth: - + Používat položky pouze se základním HTTP ověřováním se: Only HTTP Auth toggle for this and sub groups @@ -3065,12 +3159,28 @@ Would you like to correct it? Do not use entries with HTTP Basic Auth: - + Nepoužívat položky se základním HTTP ověřováním se: Do not use HTTP Auth toggle for this and sub groups + + Omit WWW subdomain from matching: + PÅ™i hledání shody vynechat dílÄí doménu WWW: + + + Omit WWW subdomain from matching toggle for this and sub groups + + + + Restrict matching to given browser key: + + + + Restrict matching to given browser key toggle for this and sub groups + + EditGroupWidgetKeeShare @@ -3303,10 +3413,6 @@ Podporovaná rozšíření jsou: %1. Unable to fetch favicon. Ikonu webu (favicon) se nedaří stáhnout. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Používání služby DuckDuckGo pro stahování ikon webových stránek je možné zapnout v Nástroje → Nastavení → ZabezpeÄení - Existing icon selected. Vybrána existující ikona. @@ -3339,6 +3445,10 @@ Podporovaná rozšíření jsou: %1. The following icon(s) failed: Následující ikona se nezdaÅ™ila:Následující ikony se nezdaÅ™ily:Následující ikony se nezdaÅ™ily:Následující ikony se nezdaÅ™ily: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + + EditWidgetProperties @@ -3572,7 +3682,8 @@ Opravdu chcete tento soubor pÅ™idat? The attachment '%1' was modified. Do you want to save the changes to your database? - + Příloha „%1“ byla zmÄ›nÄ›na. +Opravdu chcete zmÄ›ny ve své databázi uložit? Saving attachment failed @@ -3581,7 +3692,8 @@ Do you want to save the changes to your database? Saving updated attachment failed. Error: %1 - + Ukládání aktualizované přílohy se nezdaÅ™ilo. +Chyba: %1 @@ -3777,6 +3889,10 @@ Error: %1 Has TOTP Má TOTP heslo + + Background Color + + EntryPreviewWidget @@ -3797,8 +3913,8 @@ Error: %1 Heslo - Notes - Poznámky + URL + URL adresa Expiration @@ -3817,8 +3933,8 @@ Error: %1 Uživatelské jméno - URL - URL adresa + Notes + Poznámky Advanced @@ -3868,6 +3984,10 @@ Error: %1 Never Nikdy + + Double click to copy value + Hodnotu zkopírujete dvojklikem + Enabled Zapnuto @@ -3876,6 +3996,10 @@ Error: %1 Disabled Vypnuto + + Double click to copy to clipboard + + EntryURLModel @@ -3883,6 +4007,10 @@ Error: %1 Invalid URL Neplatné URL + + Duplicate URL + + EntryView @@ -3898,6 +4026,10 @@ Error: %1 Reset to defaults Vrátit na výchozí + + + %1 entry(s)... + + ExportDialog @@ -3913,7 +4045,9 @@ Error: %1 You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! - + Chystáte se exportovat vaÅ¡i databázi do neÅ¡ifrovaného souboru. +VaÅ¡e hesla a citlivé údaje tak budou zranitelné! + database order @@ -3983,15 +4117,15 @@ This will leave your passwords and sensitive information vulnerable! Failed to register session on DBus at path '%1' - + NepodaÅ™ilo se zaregistrovat relaci na DBus v umístÄ›ní „%1 Failed to register item on DBus at path '%1' - + NepodaÅ™ilo se zaregistrovat položku na DBus v umístÄ›ní „%1 Failed to register prompt object on DBus at path '%1' - + NepodaÅ™ilo se zaregistrovat objekt výzvy na DBus v umístÄ›ní „%1“ @@ -4094,7 +4228,7 @@ Můžete zapnout službu pro stahování ikon z DuckDuckGo v sekci zabezpeÄení Please wait, processing entry list… - + ÄŒekejte, zpracovává se seznam položek… Downloading… @@ -4117,6 +4251,147 @@ Můžete zapnout službu pro stahování ikon z DuckDuckGo v sekci zabezpeÄení Stahování ikon webů (%1/%2)… + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Stránka průvodce + + + Entry count: %1 + + + + Group + Skupina + + + Title + Titulek + + + Username + Uživatelské jméno + + + Password + Heslo + + + Url + + + + + ImportWizardPageSelect + + Form + Formulář + + + Import File Selection + + + + Password: + Heslo: + + + Key File: + Soubor s klíÄem: + + + Browse… + Procházet… + + + Import Into: + + + + New Database + Nová databáze + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Otevřít OPVault + + + Select import file + + + + All files + VeÅ¡keré soubory + + + Key files + Soubory s klíÄi + + + Select key file + Vyberte soubor s klíÄem + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4132,7 +4407,7 @@ Můžete zapnout službu pro stahování ikon z DuckDuckGo v sekci zabezpeÄení Kdbx3Reader Missing database headers - + Chybí databázové hlaviÄky Unable to calculate database key @@ -4158,7 +4433,7 @@ Pokud se toto opakuje, pak je možné, že je váš soubor s databází poÅ¡koze Invalid header field length: field %1 - + Neplatná délka kolonky hlaviÄky: kolonka %1 Invalid header data length: field %1, %2 expected, %3 found @@ -4219,7 +4494,7 @@ Pokud se toto opakuje, pak je možné, že je váš soubor s databází poÅ¡koze Invalid header field length: field %1 - + Neplatná délka kolonky hlaviÄky: kolonka %1 Invalid header data length: field %1, %2 expected, %3 found @@ -4261,17 +4536,17 @@ Pokud se toto opakuje, pak je možné, že je váš soubor s databází poÅ¡koze Invalid variant map entry name length Translation: variant map = data structure for storing meta data - Neplatná délka názvu položky mapy varianty + Neplatná délka názvu záznamu mapy varianty Invalid variant map entry name data Translation: variant map = data structure for storing meta data - Neplatná data názvu položky mapy varianty + Neplatná data názvu záznamu mapy varianty Invalid variant map entry value length Translation: variant map = data structure for storing meta data - Neplatná délka hodnoty položky mapy varianty + Neplatná délka hodnoty záznamu mapy varianty Invalid variant map entry value data @@ -4291,22 +4566,22 @@ Pokud se toto opakuje, pak je možné, že je váš soubor s databází poÅ¡koze Invalid variant map UInt32 entry value length Translation: variant map = data structure for storing meta data - Neplatná délka 32 bitové kladné celoÄíselné hodnoty položky varianty + Neplatná délka 32 bitové kladné celoÄíselné hodnoty záznamu varianty Invalid variant map Int64 entry value length Translation: variant map = data structure for storing meta data - Neplatná délka 64 bitové celoÄíselné hodnoty položky varianty + Neplatná délka 64 bitové celoÄíselné hodnoty záznamu varianty Invalid variant map UInt64 entry value length Translation: variant map = data structure for storing meta data - Neplatná délka 64 bitové kladné celoÄíselné hodnoty položky varianty + Neplatná délka 64 bitové kladné celoÄíselné hodnoty záznamu varianty Invalid variant map entry type Translation: variant map = data structure for storing meta data - Neplatný typ položky mapy varianty + Neplatný typ záznamu mapy varianty Invalid variant map field type size @@ -4390,7 +4665,10 @@ Pokud se toto opakuje, pak je možné, že je váš soubor s databází poÅ¡koze You can import it by clicking on Database > 'Import KeePass 1 database…'. This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. - + Zvolený soubor je databáze ve starém formátu KeePass 1 (.kdb). + +Můžete ho importovat kliknutím na Databáze > 'Importovat databázi ve formátu KeePass 1…'. +Jedná se o jednosmÄ›rný pÅ™evod. Databázi, vzniklou z importu, nepůjde otevřít ve staré verzi KeePassX 0.4. Not a KeePass database. @@ -4461,7 +4739,7 @@ Line %2, column %3 Null entry uuid - Prázdný neopakující se identifikátor + Prázdný neopakující se identifikátor záznamu Invalid entry icon number @@ -4473,7 +4751,7 @@ Line %2, column %3 No entry uuid found - Nebyl nalezen žádný neopakující se identifikátor položky + Nenalezen žádný neopakující se identifikátor záznamu History element with different uuid @@ -4485,11 +4763,11 @@ Line %2, column %3 Entry string key or value missing - Chybí klÃ­Ä nebo hodnota Å™etÄ›zce položky + Chybí klÃ­Ä nebo hodnota Å™etÄ›zce záznamu Entry binary key or value missing - Chybí binární klÃ­Ä nebo hodnota položky + Chybí binární klÃ­Ä nebo hodnota daného záznamu Auto-type association window or sequence missing @@ -4548,17 +4826,6 @@ Line %2, column %3 NepodaÅ™ilo se otevřít soukromou Äást klíÄe - - KeePass1OpenWidget - - Import KeePass1 Database - Importovat databázi ve formátu KeePass1 - - - Unable to open the database. - Databázi se nedaří otevřít. - - KeePass1Reader @@ -4690,7 +4957,7 @@ Pokud se toto opakuje, pak je možné, že je váš soubor s databází poÅ¡koze Invalid entry UUID field size - + Neplatná velikost kolonky UUID položky Invalid entry group id field size @@ -4795,11 +5062,11 @@ Pokud se toto opakuje, pak je možné, že je váš soubor s databází poÅ¡koze Generate a new key file or choose an existing one to protect your database. - + VytvoÅ™te nový klÃ­Ä nebo zvolte existující pro ochranu databáze. Note: Do NOT use a file that may change as that will prevent you from unlocking your database. - + Pozn.: NEpoužívejte soubor, který se může zmÄ›nit, protože by to znemožnilo odemÄení databáze! Browse for key file @@ -4845,7 +5112,7 @@ Zpráva: %2 <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out.</p> - + <p>Jako další úroveň zabezpeÄení je možné pÅ™idat soubor s klíÄem obsahujícím náhodné bajty.</p><p>Je tÅ™eba ho uchovávat v bezpeÄí a nikdy ho neztratit, jinak budete uzamÄeni.</p> Key files @@ -4915,10 +5182,6 @@ Opravdu chcete tento soubor použít? &Recent Databases &Nedávno otevÅ™ené databáze - - &Import - &Importovat - &Export &Export @@ -4939,6 +5202,10 @@ Opravdu chcete tento soubor použít? TOTP TOTP + + Tags + Å títky + &Groups Skupiny @@ -4983,34 +5250,18 @@ Opravdu chcete tento soubor použít? &New Database… &Nová databáze… - - Create a new database - VytvoÅ™it novou databázi - &Merge From Database… &SlouÄit z databáze… - - Merge from another KDBX database - SlouÄit z jiné KDBX databáze - &New Entry… &Nový záznam… - - Add a new entry - PÅ™idat nový záznam - &Edit Entry… &Upravit záznam… - - View or edit entry - Zobrazit nebo upravit položku - &Delete Entry… Smazat záznam… @@ -5019,10 +5270,6 @@ Opravdu chcete tento soubor použít? &New Group… &Nová skupina… - - Add a new group - PÅ™idat novou skupinu - &Edit Group… Upravit skupinu… @@ -5055,18 +5302,10 @@ Opravdu chcete tento soubor použít? Database &Reports… Hlášení o &databázi… - - Statistics, health check, etc. - Statistiky, kontrola stavu atd. - &Database Settings… Nastavení &databáze… - - Database settings - Nastavení databáze - &Clone Entry… Klonovat záznam… @@ -5075,34 +5314,18 @@ Opravdu chcete tento soubor použít? Move u&p &PÅ™esunout nahoru - - Move entry one step up - PÅ™esunout položku o pozici výše - Move do&wn PÅ™esunout dolů - - Move entry one step down - PÅ™esunout položku o pozici níže - Copy &Username Zkopírovat &uživatelské jméno - - Copy username to clipboard - Zkopírovat uživatelské jméno do schránky - Copy &Password Zko&pírovat heslo - - Copy password to clipboard - Zkopírovat heslo do schránky - &Settings Na&stavení @@ -5136,25 +5359,13 @@ Opravdu chcete tento soubor použít? &Titulek - Copy title to clipboard - Zkopírovat titulek do schránky - - - &URL - &URL adresa - - - Copy URL to clipboard - Zkopírovat URL adresu do schránky + Copy &URL + Zkopírovat &URL adresu &Notes Poz&námky - - Copy notes to clipboard - Zkopírovat poznámky do schránky - &CSV File… &CSV soubor… @@ -5167,26 +5378,14 @@ Opravdu chcete tento soubor použít? KeePass 1 Database… Databáze ve formátu KeePass verze 1… - - Import a KeePass 1 database - Importovat databázi aplikace KeePass verze 1 - 1Password Vault… 1Password trezor… - - Import a 1Password Vault - Importovat 1Password trezor - CSV File… CSV soubor… - - Import a CSV file - Importovat CSV soubor - Show TOTP Zobrazit na Äasu založené jednorázové heslo (TOTP) @@ -5203,6 +5402,10 @@ Opravdu chcete tento soubor použít? Copy &TOTP Zkopírovat &TOTP + + Copy Password and TOTP + Zkopírovat heslo a TOTP + E&mpty recycle bin &Vysypat koÅ¡ @@ -5227,10 +5430,6 @@ Opravdu chcete tento soubor použít? &Online Help Náp&ovÄ›da na webu - - Go to online documentation - PÅ™ejít na dokumentaci na webu - &User Guide &Uživatelská příruÄka @@ -5299,6 +5498,10 @@ Opravdu chcete tento soubor použít? Clone Group... Klonovat skupinu + + &XML File… + &XML soubor… + Clear history VyÄistit historii @@ -5315,21 +5518,29 @@ Opravdu chcete tento soubor použít? WARNING: You are using an unstable build of KeePassXC. There is a high risk of corruption, maintain a backup of your databases. This version is not meant for production use. - + VAROVÃNÃ: Používáte vývojové sestavení KeePassXC. +Je zde vysoké riziko poÅ¡kození dat, proto udržujte zálohu svých databází. +Tato verze není urÄena pro produkÄní použití. NOTE: You are using a pre-release version of KeePassXC. Expect some bugs and minor issues, this version is meant for testing purposes. - + UPOZORNÄšNÃ: Používáte vývojové sestavení KeePassXC.0 +OÄekávejte chyby a drobné problémy, tato verze je urÄena pouze pro úÄely testování. WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard. We recommend you use the AppImage available on our downloads page. - + VAROVÃNÃ: Vámi používaná verze Qt může způsobovat, že pÅ™i použití klávesnice na obrazovce KeePassXC zhavaruje. +DoporuÄujeme použít AppImage, které je k dispozici v sekci stahování naÅ¡ich stránek. + + + No Tags + Bez Å¡títků Restore Entry(s) - + Obnovit záznamObnovit záznamyObnovit záznamyObnovit záznamy Settings @@ -5355,6 +5566,10 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC UkonÄit KeePassXC + + %1 Entry(s) + %1 záznam%1 záznamy%1 záznamů%1 záznam(ů) + Please present or touch your YubiKey to continue… Pokud chcete pokraÄovat, pÅ™ipojte váš YubiKey nebo dotknÄ›te se tlaÄítka na nÄ›m… @@ -5367,6 +5582,274 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? Chcete-li toto nastavení použít, musíte restartovat aplikaci. Chcete nyní restartovat? + + Allow Screen Capture + Povolit snímky obrazovky + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + + + + Import Passkey + + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + Upravit položku + + + Delete Entry + + + + Create Group + + + + Edit Group + Upravit skupinu + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + Zkopírovat uživatelské jméno + + + Copy Password + Zkopírovat heslo + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + Importovat databázi ve formátu KeePass1 + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + Nastavit TOTP + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + ManageDatabase @@ -5403,11 +5886,11 @@ We recommend you use the AppImage available on our downloads page. Reset - + Reset Reset any remembered decisions for this application - + Vrátit jakákoli zapamatovaná rozhodnutí pro tuto aplikaci na výchozí hodnoty @@ -5424,26 +5907,6 @@ We recommend you use the AppImage available on our downloads page. Overwriting %1 [%2] PÅ™episování %1 [%2] - - older entry merged from database "%1" - starší položka slouÄena z databáze „%1“ - - - Adding backup for older target %1 [%2] - PÅ™idávání zálohy pro starší cíl %1 [%2] - - - Adding backup for older source %1 [%2] - PÅ™idávání zálohy pro starší zdroj %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Znovu se uplatňují původní zdrojové položky nad novÄ›jším zdrojem %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Znovu se uplatňují původní zdrojové položky nad novÄ›jším cílem %1 [%2] - Synchronizing from newer source %1 [%2] Synchronizace z novÄ›jšího zdroje %1 [%2] @@ -5503,14 +5966,6 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Zde je možné pÅ™izpůsobit nastavení Å¡ifrování databáze. NemÄ›jte obavy, kdykoli je možné je pozdÄ›ji zmÄ›nit v nastavení databáze. - - Advanced Settings - PokroÄilá nastavení - - - Simple Settings - Základní nastavení - NewDatabaseWizardPageDatabaseKey @@ -5591,15 +6046,6 @@ We recommend you use the AppImage available on our downloads page. OÄekáváno %1 bajtů v neformátovaném textu, nalezeno %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - ÄŒtení databáze nevytvoÅ™ilo instanci -%1 - - OpVaultReader @@ -5673,6 +6119,10 @@ We recommend you use the AppImage available on our downloads page. Unknown cipher: %1 Neznámá Å¡ifra: %1 + + AES-256/GCM is currently not supported + AES-256/GCM není v souÄasné dobÄ› podporován + Passphrase is required to decrypt this key Pro rozÅ¡ifrování tohoto klíÄe je tÅ™eba zadat heslovou frázi @@ -5739,26 +6189,174 @@ We recommend you use the AppImage available on our downloads page. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Zadání hesla se neshodují + SSH Key Generator + Generátor SSH klíÄe - Passwords match so far - Zadání hesla jsou zatím shodná + Type + Typ - Toggle Password (%1) - Zobrazit/skrýt heslo (%1) + Bits + - Generate Password (%1) - VytvoÅ™it heslo (%1) + Comment + Komentář + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + - Warning: Caps Lock enabled! - Varování: je zapnutý Caps Lock! + Export the following Passkey entries. + + + + Filenames will be generated with title and .passkey file extension. + + + + Export entries + + + + Export Selected + + + + Cancel + ZruÅ¡it + + + Export to folder + + + + + PasskeyExporter + + KeePassXC: Passkey Export + + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + + Cannot open file + + + + Cannot open file "%1" for writing. + + + + Cannot write to file + + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + + + + Username: %1 + + + + Group + Skupina + + + Database + Databáze + + + Import Passkey + + + + Import + Importovat + + + Cancel + ZruÅ¡it + + + Import the following Passkey: + + + + Entry + Záznam + + + Import the following Passkey to this entry: + + + + Create new entry + + + + Default Passkeys group (Imported Passkeys) + + + + Relying Party: %1 + + + + + PasskeyImporter + + Passkey file + + + + All files + VeÅ¡keré soubory + + + Open Passkey file + + + + Cannot open file + + + + Cannot open file "%1" for reading. + + + + Cannot import Passkey + + + + Cannot import Passkey file "%1". Data is missing. + + + + Cannot import Passkey file "%1". Private key is missing or malformed. + + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + @@ -6023,6 +6621,30 @@ We recommend you use the AppImage available on our downloads page. Entropy: %1 bit Nahodilost: %1 bitů + + Password Quality: %1 + Kvalita hesla: %1 + + + Poor + Password quality + Velmi slabá + + + Weak + Password quality + Slabá + + + Good + Password quality + Dobrá + + + Excellent + Password quality + Výborná + Confirm Delete Wordlist Potvrdit smazání seznamu slov @@ -6054,7 +6676,8 @@ We recommend you use the AppImage available on our downloads page. Wordlist "%1" already exists as a custom wordlist. Do you want to overwrite it? - + Slovník „%1“ už existuje jako uživatelsky urÄený. +Chcete ho pÅ™epsat? Failed to add wordlist @@ -6068,9 +6691,32 @@ Do you want to overwrite it? Special Characters Zvláštní znaky + + + PasswordWidget - Password Quality: %1 - Kvalita hesla: %1 + Passwords do not match + Zadání hesla se neshodují + + + Passwords match so far + Zadání hesla jsou zatím shodná + + + Toggle Password (%1) + Zobrazit/skrýt heslo (%1) + + + Generate Password (%1) + VytvoÅ™it heslo (%1) + + + Warning: Caps Lock enabled! + Varování: je zapnutý Caps Lock! + + + Quality: %1 + Kvalita: %1 Poor @@ -6092,6 +6738,10 @@ Do you want to overwrite it? Password quality Výborná + + Toggle password visibility using Control + H. Open the password generator using Control + G. + + PickcharsDialog @@ -6101,7 +6751,7 @@ Do you want to overwrite it? Select characters to type, navigate with arrow keys, Ctrl + S submits. - + Vyberte znaky, které napsat, pro pohyb použijte Å¡ipky na klávesnici, Ctrl+S odeÅ¡lete. Press &Tab between characters @@ -6146,6 +6796,10 @@ Do you want to overwrite it? Continue PokraÄovat + + Continue with weak password + + QObject @@ -6235,7 +6889,7 @@ Do you want to overwrite it? URL for the entry. - URL adresa pro položku. + URL adresa pro záznam. URL @@ -6267,7 +6921,7 @@ Do you want to overwrite it? Cannot generate a password and prompt at the same time. - + Není možné vytvoÅ™it a dotázat se na heslo naráz. Could not create entry with path %1. @@ -6315,7 +6969,7 @@ Do you want to overwrite it? Path to okon-cli to search a formatted HIBP file - + Popis umístÄ›ní nástroje okon-cli pro prohledávání formátovaného HIBP souboru okon-cli @@ -6339,7 +6993,7 @@ Do you want to overwrite it? Evaluating database entries against HIBP file, this will take a while… - + Vyhodnocování databázových záznamů vůÄi HIBP souboru – chvíli potrvá… Password for '%1' has been leaked %2 time(s)! @@ -6347,7 +7001,7 @@ Do you want to overwrite it? Password for '%1' has been leaked! - + Otisk z hesla pro „%1“ je znám! Export an attachment of an entry. @@ -6375,7 +7029,7 @@ Do you want to overwrite it? No export target given. Please use '--stdout' or specify an 'export-file'. - + Nezadán žádný cíl pro export. BuÄ použijte „--stdout“ nebo zadejte „export-file“. Could not open output file %1. @@ -6440,7 +7094,7 @@ Do you want to overwrite it? Must match only one entry, otherwise a list of possible matches is shown. - + Je tÅ™eba, aby se shodovalo pouze s jedním záznamem – jinak je zobrazen seznam možných shod. Copy an entry's attribute to the clipboard. @@ -6453,7 +7107,7 @@ Do you want to overwrite it? Timeout before clearing the clipboard (default is %1 seconds, set to 0 for unlimited). - + ÄŒasový limit, po kterém dojde k vyÄiÅ¡tÄ›ní schránky (výchozí je %1 sekund, pokud nemá být mazáno, nastavte na 0 (nula)). Invalid timeout value %1. @@ -6539,6 +7193,10 @@ Do you want to overwrite it? Too many arguments provided. Zadáno příliÅ¡ mnoho argumentů. + + Path of the database. + UmístÄ›ní databáze. + Target decryption time in MS for the database. Cílový Äas rozÅ¡ifrování (v ms) pro databázi. @@ -6547,6 +7205,12 @@ Do you want to overwrite it? time Äas + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Nastavit k databázi soubor s klíÄem. +Tato možnost je pÅ™ekonaná, použijte místo toho --set-key-file. + Set the key file for the database. Nastavit soubor s klíÄem pro databázi. @@ -6559,10 +7223,6 @@ Do you want to overwrite it? Create a new database. VytvoÅ™it novou databázi. - - Path of the database. - UmístÄ›ní databáze. - Invalid decryption time %1. Neplatný Äas rozÅ¡ifrování %1. @@ -6607,6 +7267,158 @@ Do you want to overwrite it? Successfully created new database. Nová databáze úspěšnÄ› vytvoÅ™ena. + + Unset the password for the database. + ZruÅ¡it heslo databáze. + + + Unset the key file for the database. + ZruÅ¡it soubor s klíÄem pro databázi. + + + Edit a database. + Upravit databázi. + + + Cannot use %1 and %2 at the same time. + Není možné použít %1 a %2 najednou. + + + Could not change the database key. + NepodaÅ™ilo se zmÄ›nit klÃ­Ä databáze. + + + Database was not modified. + Databáze nebyla upravena. + + + Writing the database failed: %1 + Zápis do databáze se nezdaÅ™il: %1 + + + Successfully edited the database. + Databáze úspěšnÄ› upravena. + + + Cannot remove password: The database does not have a password. + Není možné odstranit heslo: databáze nemá heslo nastaveno. + + + Cannot remove file key: The database does not have a file key. + Není možné odstranit soubor s klíÄem: databáze nemá soubor s klíÄem nastaven. + + + Loading the new key file failed: %1 + NaÄítání nového souboru s klíÄem se nezdaÅ™ilo: %1 + + + Found unexpected Key type %1 + + + + Cannot remove all the keys from a database. + Z databáze není možné odebrat vÅ¡echny klíÄe. + + + Show a database's information. + Zobrazit informace o databázi. + + + UUID: + UUID: + + + Name: + Název: + + + Description: + Popis: + + + Cipher: + Å ifra: + + + KDF: + KDF: + + + Recycle bin is enabled. + KoÅ¡ je zapnutý. + + + Recycle bin is not enabled. + KoÅ¡ není zapnut. + + + Location + UmístÄ›ní + + + Database created + Databáze vytvoÅ™ena + + + Last saved + Naposledy uloženo + + + Unsaved changes + Neuložené zmÄ›ny + + + yes + ano + + + no + ne + + + Number of groups + PoÄet skupin + + + Number of entries + PoÄet položek + + + Number of expired entries + PoÄet záznamů, kterým skonÄila platnost + + + Unique passwords + Hesel, která se neopakují + + + Non-unique passwords + Hesel, které se opakují + + + Maximum password reuse + Kolikrát nejvýše je možné opakovat použití hesla + + + Number of short passwords + PoÄet krátkých hesel + + + Number of weak passwords + PoÄet slabých hesel + + + Entries excluded from reports + Položky vynechané z pÅ™ehledů + + + Average password length + PrůmÄ›rná délka hesla + + + %1 characters + %1 znaků + Word count for the diceware passphrase. PoÄet slov pro diceware heslovou frázi. @@ -6632,11 +7444,11 @@ Do you want to overwrite it? The word list is too small (< 1000 items) - Seznam slov je příliÅ¡ malý (< 1000 položek) + Seznam slov je příliÅ¡ krátký (< 1000 položek) Title for the entry. - Titulek pro položku. + Titulek pro záznam. title @@ -6644,11 +7456,11 @@ Do you want to overwrite it? Edit an entry. - Upravit položku. + Upravit záznam. Path of the entry to edit. - Popis umístÄ›ní položky kterou upravit. + Popis umístÄ›ní záznamu, který upravit. Not changing any field for entry %1. @@ -6658,10 +7470,6 @@ Do you want to overwrite it? Enter new password for entry: Zadejte nové heslo pro položku: - - Writing the database failed: %1 - Zápis do databáze se nezdaÅ™il: %1 - Successfully edited entry %1. Položka %1 úspěšnÄ› upravena. @@ -6886,106 +7694,6 @@ Do you want to overwrite it? Successfully imported database. ÚspěšnÄ› naimportovaná databáze. - - Show a database's information. - Zobrazit informace o databázi. - - - UUID: - UUID: - - - Name: - Název: - - - Description: - Popis: - - - Cipher: - Å ifra: - - - KDF: - KDF: - - - Recycle bin is enabled. - KoÅ¡ je zapnutý. - - - Recycle bin is not enabled. - KoÅ¡ není zapnut. - - - Location - UmístÄ›ní - - - Database created - Databáze vytvoÅ™ena - - - Last saved - Naposledy uloženo - - - Unsaved changes - Neuložené zmÄ›ny - - - yes - ano - - - no - ne - - - Number of groups - PoÄet skupin - - - Number of entries - PoÄet položek - - - Number of expired entries - PoÄet záznamů, kterým skonÄila platnost - - - Unique passwords - Hesel, která se neopakují - - - Non-unique passwords - Hesel, které se opakují - - - Maximum password reuse - Kolikrát nejvýše je možné opakovat použití hesla - - - Number of short passwords - PoÄet krátkých hesel - - - Number of weak passwords - PoÄet slabých hesel - - - Entries excluded from reports - Položky vynechané z pÅ™ehledů - - - Average password length - PrůmÄ›rná délka hesla - - - %1 characters - %1 znaků - Unknown command %1 Neznámý příkaz %1 @@ -7158,6 +7866,10 @@ Příkazy k dispozici: Show the protected attributes in clear text. Zobrazit chránÄ›né atributy v Äitelném textu. + + Show all the attributes of the entry. + Zobrazit vÅ¡echny atributy záznamu. + Show the attachments of the entry. Zobrazit přílohy položky. @@ -7172,7 +7884,7 @@ Příkazy k dispozici: Show an entry's information. - Zobrazit informace o položce. + Zobrazit informace o záznamu. Name of the entry to show. @@ -7228,6 +7940,10 @@ Zvažte prosím vytvoÅ™ení nového souboru s klíÄem. Invalid YubiKey serial %1 Neplatné sériové Äíslo %1 YubiKey + + Please present or touch your YubiKey to continue. + Pokud chcete pokraÄovat, pÅ™ipojte váš YubiKey nebo dotknÄ›te se tlaÄítka na nÄ›m. + Enter password to encrypt database (optional): Zadejte heslo pro zaÅ¡ifrování databáze (volitelné): @@ -7267,19 +7983,19 @@ Zvažte prosím vytvoÅ™ení nového souboru s klíÄem. To use okon, you must provide a post-processed file (e.g. file.okon) - + Aby bylo možné použít okon, je tÅ™eba poskytnout poté zpracovaný soubor (napÅ™. soubor.okon) Could not start okon process: %1 - + NepodaÅ™ilo se spustit okon proces: %1 Error: okon process did not finish - + Chyba: proces okon nedokonÄen Failed to load okon processed database: %1 - + NepodaÅ™ilo se naÄíst okon zpracovanou databázi: %1 Very weak password @@ -7299,7 +8015,7 @@ Zvažte prosím vytvoÅ™ení nového souboru s klíÄem. Password is used %1 time(s) - + Heslo je použito %1 krátHeslo je použito %1 krátHeslo je použito %1 krátHeslo je použito %1 krát Password has expired @@ -7319,7 +8035,7 @@ Zvažte prosím vytvoÅ™ení nového souboru s klíÄem. Password expires in %1 day(s) - + Platnost hesla skonÄí za %1 denPlatnost hesla skonÄí za %1 dnyPlatnost hesla skonÄí za %1 dníPlatnost hesla skonÄí za %1 den/dní Password will expire soon @@ -7377,7 +8093,7 @@ Jádro systému: %3 %4 Quick Unlock - + Rychlé odemykání Secret Service Integration @@ -7393,31 +8109,31 @@ Jádro systému: %3 %4 over %1 year(s) - + pÅ™es %1 rokpÅ™es %1 rokypÅ™es %1 letpÅ™es %1 roky/let about %1 month(s) - + pÅ™ibližnÄ› %1 mÄ›sícpÅ™ibližnÄ› %1 mÄ›sícepÅ™ibližnÄ› %1 mÄ›sícůpÅ™ibližnÄ› %1 mÄ›síce/ů %1 week(s) - + %1 týden%1 týdny%n týdnů%1 týdny %1 day(s) - + %1 den%1 dny%1 dnů%1 dny %1 hour(s) - + %1 hodina%1 hodiny%1 hodin%1 hodiny %1 minute(s) - + %1 minuta%1 minuty%1 minut%1 minuty - Botan library must be at least 2.11.x, found %1.%2.%3 - + Botan library must be at least %1, found %2.%3.%4 + Je tÅ™eba, aby knihovna botan byla alespoň ve verzi %1, byla nalezena verze %2.%3.%4 Cryptographic libraries: @@ -7433,11 +8149,11 @@ Jádro systému: %3 %4 SymmetricCipher::init: Invalid cipher mode. - + SymmetricCipher::init: Neplatný režim Å¡ifry. SymmetricCipher::init: Invalid IV size of %1 for %2. - + SymmetricCipher::init: Neplatná IV velikost %1 pro %2. Cipher not initialized prior to use. @@ -7449,7 +8165,7 @@ Jádro systému: %3 %4 unknown executable (DBus address %1) - + neznámý spustitelný soubor (DBus adresa %1) %1 (invalid executable path) @@ -7489,7 +8205,7 @@ Jádro systému: %3 %4 ChaCha20 256-bit - + ChaCha20 256-bit Argon2d (KDBX 4 – recommended) @@ -7505,7 +8221,7 @@ Jádro systému: %3 %4 AES-KDF (KDBX 3) - + AES-KDF (KDBX 3) Existing single-instance lock file is invalid. Launching new instance. @@ -7517,7 +8233,7 @@ Jádro systému: %3 %4 Clearing the clipboard in %1 second(s)… - + VyÄiÅ¡tÄ›ní schránky za %1 sekundu...VyÄiÅ¡tÄ›ní schránky za %1 sekundy...VyÄiÅ¡tÄ›ní schránky za %1 sekund...VyÄiÅ¡tÄ›ní schránky za %1 sekund(u/y)… Group @@ -7571,7 +8287,7 @@ Jádro systému: %3 %4 Do you really want to delete %n entry(s) for good? - + Opravdu chcete %n položku nevratnÄ› smazat?Opravdu chcete %n položky nevratnÄ› smazat?Opravdu chcete %n položek nevratnÄ› smazat?Opravdu chcete %n položek nevratnÄ› smazat? Delete entry(s)? @@ -7583,11 +8299,11 @@ Jádro systému: %3 %4 Do you really want to move %n entry(s) to the recycle bin? - + Opravdu chcete pÅ™esunout %n záznam do KoÅ¡e?Opravdu chcete pÅ™esunout %n záznamy do KoÅ¡e?Opravdu chcete pÅ™esunout %n záznamů do KoÅ¡e?Opravdu chcete pÅ™esunout %n záznam(y) do KoÅ¡e? Move entry(s) to recycle bin? - + PÅ™esunout záznam do KoÅ¡e?PÅ™esunout záznamy do KoÅ¡e?PÅ™esunout záznamy do KoÅ¡e?PÅ™esunout záznamy do KoÅ¡e? Replace references to entry? @@ -7595,7 +8311,7 @@ Jádro systému: %3 %4 Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? - + Záznam "%1" má %2 odkaz. Chcete odkaz pÅ™epsat, pÅ™eskoÄit záznam, nebo smazat i tak?Záznam "%1" má %2 odkazy. Chcete odkazy pÅ™epsat, pÅ™eskoÄit záznam, nebo smazat i tak?Záznam "%1" má %2 odkazů. Chcete odkazy pÅ™epsat, pÅ™eskoÄit záznam, nebo smazat i tak?Záznam "%1" má %2 odkaz(y). Chcete odkaz(y) pÅ™epsat, pÅ™eskoÄit záznam, nebo smazat i tak? User name @@ -7657,10 +8373,6 @@ Jádro systému: %3 %4 read password of the database from stdin naÄíst heslo k databázi ze standardního vstupu - - allow app screen recordering and screenshots - umožnit pÅ™eskupování obrazovky aplikace a poÅ™izování snímků obrazovky - Locked databases. UzamÄené databáze. @@ -7673,6 +8385,10 @@ Jádro systému: %3 %4 Another instance of KeePassXC is already running. Již je spuÅ¡tÄ›ná jiná instance KeePassXC. + + KeePassXC is not running. No open database to lock + KeePassXC není spuÅ¡tÄ›n. Není k dispozici otevÅ™ená databáze k uzamÄení + Fatal error while testing the cryptographic functions. PÅ™i zkouÅ¡ení Å¡ifrovacích funkcí byl zjiÅ¡tÄ›n fatální nedostatek. @@ -7681,10 +8397,6 @@ Jádro systému: %3 %4 KeePassXC - Error KeePassXC – chyba - - Warning: Failed to prevent screenshots on a top level window! - - Database password: Heslo databáze: @@ -7701,14 +8413,228 @@ Jádro systému: %3 %4 Failed to create Windows Hello credential. - + NepodaÅ™ilo se vytvoÅ™it Windows Hello pÅ™ihlaÅ¡ovací údaje Failed to sign challenge using Windows Hello. + NepodaÅ™ilo se podepsat výzvu prostÅ™ednictvím Windows Hello. + + + Warning: Failed to block screenshot capture on a top-level window. + Varování: NepodaÅ™ilo se zablokovat snímky obrazovky na nejvrchnÄ›jším oknÄ›. + + + Invalid Cipher + Neplatná Å¡ifra + + + Invalid KDF + Neplatná funkce pro odvození klíÄe + + + Access to all entries is denied - Please present or touch your YubiKey to continue. + allow screenshots and app recording (Windows/macOS) + + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + + + + Credential is excluded + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Passkeys + + + + AES initialization failed + + + + AES encrypt failed + + + + Failed to store in Linux Keyring + + + + Polkit returned an error: %1 + + + + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + + + + Failed to init KeePassXC crypto. + NepodaÅ™ilo se inicializovat KeePassXC kryptografii + + + Failed to encrypt key data. + NepodaÅ™ilo se zaÅ¡ifrovat data klíÄe. + + + Failed to get Windows Hello credential. + NepodaÅ™ilo se získat Windows Hello pÅ™ihlaÅ¡ovací údaje. + + + Failed to decrypt key data. + NepodaÅ™ilo se rozÅ¡ifrovat data klíÄe. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7748,18 +8674,6 @@ Jádro systému: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - Vynechat z výkazu položky, kterým skonÄila platnost - - - Show only entries which have URL set - Zobrazit pouze položky, které mají vyplnÄ›nou URL - - - Show only entries which have browser settings in custom data - - Double-click entries to edit. Položky upravíte dvojklikem na nÄ›. @@ -7794,7 +8708,7 @@ Jádro systému: %3 %4 Please wait, browser statistics is being calculated… - + ÄŒekejte, probíhá výpoÄet statistik o prohlížeÄi… No entries with a URL, or none has browser extension settings saved. @@ -7818,23 +8732,31 @@ Jádro systému: %3 %4 Delete Entry(s)… - + Smazat záznam…Smazat záznamy…Smazat záznamy…Smazat záznamy… Exclude from reports Vynechat z pÅ™ehledů + + Only show entries that have a URL + + + + Only show entries that have been explicitly allowed or denied + + + + Show expired entries + + + + (Expired) + + ReportsWidgetHealthcheck - - Exclude expired entries from the report - Vynechat z výkazu položky, kterým skonÄila platnost - - - Also show entries that have been excluded from reports - Také zobrazit položky, které byly vynechány z pÅ™ehledů - Hover over reason to show additional details. Double-click entries to edit. NajeÄte ukazatelem myÅ¡i a zobrazí se další podrobnosti. Položky upravíte dvojklikem. @@ -7876,7 +8798,7 @@ Jádro systému: %3 %4 Please wait, health data is being calculated… - + ÄŒekejte, probíhá výpoÄet pro kontrolu stavu… Congratulations, everything is healthy! @@ -7900,16 +8822,28 @@ Jádro systému: %3 %4 Edit Entry… - Upravit položku… + Upravit záznam… Delete Entry(s)… - + Smazat záznam…Smazat záznamy…Smazat záznamy…Smazat záznamy… Exclude from reports Vynechat z pÅ™ehledů + + Show expired entries + + + + Show entries that have been excluded from reports + + + + (Expired) + + ReportsWidgetHibp @@ -7995,17 +8929,76 @@ Jádro systému: %3 %4 Edit Entry… - Upravit položku… + Upravit záznam… Delete Entry(s)… - + Smazat záznam…Smazat záznamy…Smazat záznamy…Smazat záznamy… Exclude from reports Vynechat z pÅ™ehledů + + ReportsWidgetPasskeys + + Export + Export + + + Import + Importovat + + + List of entry URLs + Seznam URL adres položky + + + Please wait, list of entries with Passkeys is being updated… + + + + No entries with Passkeys. + + + + Title + Titulek + + + Path + Popis umístÄ›ní + + + Username + Uživatelské jméno + + + URLs + URL adresy + + + Edit Entry… + Upravit záznam… + + + Delete Entry(s)… + Smazat záznam…Smazat záznamy…Smazat záznamy…Smazat záznamy… + + + Relying Party + + + + Show expired entries + + + + (Expired) + + + ReportsWidgetStatistics @@ -8022,7 +9015,7 @@ Jádro systému: %3 %4 Please wait, database statistics are being calculated… - + ÄŒekejte, probíhá výpoÄet statistik o databázi… Database name @@ -8169,7 +9162,7 @@ Jádro systému: %3 %4 Security keys are not supported by the agent or the security key provider is unavailable. - + KlíÄe zabezpeÄení nejsou podporovány agentem nebo není poskytovatel klíÄů zabezpeÄení k dispozici. No agent running, cannot remove identity. @@ -8245,6 +9238,10 @@ Jádro systému: %3 %4 Search Help NápovÄ›da ke hledání + + Save Search + Uložit hledání + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8309,15 +9306,15 @@ Jádro systému: %3 %4 Show notification when passwords are retrieved by clients - + Když jsou hesla použita klienty, zobrazit upozornÄ›ní <html><head/><body><p>If enabled, any attempt to read a password must be confirmed. Otherwise, clients can read passwords without confirmation when the database is unlocked.</p><p>This option only covers the access to the password of an entry. Clients can always enumerate the items of exposed databases and query their attributes.</p></body></html> - + <html><head/><body><p>Pokud zapnuto, jakýkoli pokus o Ätení hesla je tÅ™eba potvrdit. V opaÄném případÄ›, když je databáze odemÄená, klienti mohou hesla Äíst bez potvrzování.</p><p>Tato volba pokrývá pouze přístup heslu záznamu. Klienti vždy mohou vyÄíslit položky vystavené databáze a dotazovat se na jejich atributy.</p></body></html> Confirm when passwords are retrieved by clients - + Potvrzovat když mají být hesla použita klienty <html><head/><body><p><span style=" @@ -8325,11 +9322,15 @@ Jádro systému: %3 %4 Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">This setting does not override disabling recycle bin prompts</span></p></body></html> - + <html><head/><body><p><span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">Toto nastavení nepÅ™ebije + vypnutí výzev ohlednÄ› koÅ¡e</span></p></body></html> + Confirm when clients request entry deletion - + Potvrzovat, když si klienti vyžádají smazání položky <html><head/><body><p>This improves compatibility with certain applications @@ -8341,7 +9342,7 @@ Jádro systému: %3 %4 Prompt to unlock database before searching - + PÅ™ed zahájením hledání se dotázat na odemknutí databáze Exposed database groups: @@ -8423,14 +9424,14 @@ Jádro systému: %3 %4 ShareExport Could not write export container. - + Nedaří se zapsat do exportního kontejneru. ShareImport Successful import - + Import úspěšný @@ -8468,11 +9469,38 @@ Jádro systému: %3 %4 Exportovat do %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All - VÅ¡e + Clear Search + VyÄistit hledání + + + All Entries + VÅ¡echny záznamy Expired @@ -8483,6 +9511,25 @@ Jádro systému: %3 %4 Slabá hesla + + TagView + + Remove Search + Odebrat hledání + + + Remove Tag + Smazat Å¡títek + + + Confirm Remove Tag + Potvrdit odebrání Å¡títku + + + Remove tag "%1" from all entries in this database? + Smazat Å¡títek "%1" ze vÅ¡ech záznamů v databázi? + + TotpDialog @@ -8538,7 +9585,7 @@ Jádro systému: %3 %4 Default settings (RFC 6238) - + Výchozí nastavení (norma RFC 6238) Steam® settings @@ -8623,11 +9670,11 @@ Příklad: JBSWY3DPEHPK3PXP An error occurred when trying to retrieve update information, please try again later. - + PÅ™i pokusu o získání informací o aktualizaci doÅ¡lo k chybÄ› – zkuste to znovu pozdÄ›ji. <strong>A new version is available.</strong><br/>KeePassXC %1 can be <a href="https://keepassxc.org/download/">downloaded here</a>. - + <strong>Je k dispozici nová verze.</strong><br/>KeePassXC %1 je možné si <a href="https://keepassxc.org/download/">stáhnout zde</a>. You have the latest version of KeePassXC @@ -8640,26 +9687,6 @@ Příklad: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database ZaÄnÄ›te uchovávat svá hesla bezpeÄnÄ› v KeePassXC databázi - - Create new database - VytvoÅ™it novou databázi - - - Open existing database - Otevřít existující databázi - - - Import from KeePass 1 - Importovat z KeePass 1 - - - Import from 1Password - Importovat z 1Password - - - Import from CSV - Importovat z CSV - Recent databases Nedávno otevÅ™ené databáze @@ -8672,6 +9699,18 @@ Příklad: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Vítejte v KeePassXC %1 + + Create Database + + + + Open Database + + + + Import File + + WinUtils @@ -8688,31 +9727,8 @@ Příklad: JBSWY3DPEHPK3PXP Nedaří se zaregistrovat globální zkratku - - WindowsHello - - Failed to init KeePassXC crypto. - - - - Failed to encrypt key data. - - - - Failed to get Windows Hello credential. - - - - Failed to decrypt key data. - - - YubiKey - - %1 No interface, slot %2 - %1 žádné rozhraní, slot %2 - General: Obecné: @@ -8724,14 +9740,6 @@ Příklad: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - Znovu naÄíst hardwarová bezpeÄnostní zařízení - - - Refresh - NaÄíst znovu - Hardware key slot selection VýbÄ›r slotu v hardwarovém klíÄi @@ -8764,10 +9772,6 @@ Příklad: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove Výzva-odpovÄ›Ä nastavena, kliknutím zmÄ›níte Äi odeberete - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - - Detecting hardware keys… Zjišťování hardwarových klíÄů… @@ -8776,31 +9780,24 @@ Příklad: JBSWY3DPEHPK3PXP No hardware keys detected Nenalezeny žádné hardwarové klíÄe - - - YubiKeyInterface - %1 Invalid slot specified - %2 - zadán neplatný %1 slot – %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - - The YubiKey PCSC interface has not been initialized. - - - - Hardware key is currently in use. - Hardwarový klÃ­Ä je nyní využíván nÄ›Äím jiným. + PSCS rozhraní YubiKey nebylo inicializováno. Could not find or access hardware key with serial number %1. Please present it to continue. - + NepodaÅ™ilo se nalézt nebo pÅ™istoupit k hardwarovému klíÄi se sériovým Äíslem %1. PÅ™ipojte ho, aby bylo možné pokraÄovat. Hardware key is locked or timed out. Unlock or re-present it to continue. @@ -8814,6 +9811,21 @@ Příklad: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 NepodaÅ™ilo se dokonÄit výzvu-odpovÄ›Ä â€“ PCSC chyba byla: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + Stisknout + + + Passive + USB Challenge-Response Key no interaction required + Pasivní + YubiKeyInterfaceUSB @@ -8821,14 +9833,6 @@ Příklad: JBSWY3DPEHPK3PXP Unknown Neznámý - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] Nastavených slotů – %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] Výzva-odpovÄ›Ä â€“ Slot %3 – %4 - Press USB Challenge-Response Key interaction request @@ -8843,10 +9847,6 @@ Příklad: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. USB rozhraní YubiKey nebylo inicializováno. - - Hardware key is currently in use. - Hardwarový klÃ­Ä je nyní využíván nÄ›Äím jiným. - Could not find hardware key with serial number %1. Please plug it in to continue. NepodaÅ™ilo se nalézt hardwarový klÃ­Ä se sériovým Äíslem %1. PÅ™ipojte ho, aby bylo možné pokraÄovat. @@ -8863,5 +9863,15 @@ Příklad: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 NepodaÅ™ilo se dokonÄit výzvu-odpovÄ›Ä â€“ konkrétní chyba byla: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_da.ts b/share/translations/keepassxc_da.ts index c0def1094..585e7f16c 100644 --- a/share/translations/keepassxc_da.ts +++ b/share/translations/keepassxc_da.ts @@ -80,6 +80,10 @@ Details Detaljer + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Din beslutning vil blive husket, sÃ¥ længe bÃ¥de den anmodende klient OG KeePassXC kører. + Remember Husk @@ -88,17 +92,13 @@ Allow Selected Tillad valgte - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - - Deny All && Future - + Afvis alle && Fremtid Allow All && &Future - + Tillad Alle && &Fremtid @@ -122,6 +122,10 @@ Use OpenSSH Brug OpenSSH + + Use both agents + Brug begge agenter + SSH_AUTH_SOCK override SSH_AUTH_SOCK-overstyring @@ -150,10 +154,6 @@ SSH Agent connection is working! SSH-agent-forbindelsen virker! - - Use both agents - - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security Sikkerhed + + This setting cannot be enabled when minimize on unlock is enabled. + Denne indstilling kan ikke aktiveres, nÃ¥r minimere ved oplÃ¥sning er aktiveret. + Access error for config file %1 Adgangsfejl for konfigurationsfil %1 @@ -256,6 +260,10 @@ Remember previously used databases Husk tidligere anvendte databaser + + recent files + seneste filer + Load previously open databases on startup Indlæs tidligere anvendte databaser ved opstart @@ -274,22 +282,22 @@ On database unlock, show entries that - + Ved Ã¥bning af database, vis punkter der have expired On database unlock, show entries that... - + er udløbet days On database unlock, show entries that will expire within %1 days - + dage will expire within On database unlock, show entries that... - + vil udløbe inden for File Management @@ -321,7 +329,7 @@ Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". - + Angiver placeringen af databasens sikkerhedskopi. Forekomster af "{DB_FILENAME}"  erstattes med filnavnet pÃ¥ den gemte database uden udvidelse. {TIME:<format>} erstattes med backuptidspunktet, se https://doc.qt.io/qt-5/qdatetime.html#toString.<format> angives til formatstrengen "dd_MM_yyyy_hh-mm-ss". {DB_FILENAME}.old.kdbx @@ -408,6 +416,10 @@ Toolbar button style: Knapstil pÃ¥ værktøjslinje: + + Show passwords in color + Vis farvede adgangskoder + Use monospaced font for notes Brug monospatieret skrifttype til noter @@ -491,7 +503,7 @@ Remember last typed entry for: - + Gem sidste indtastede post for: @@ -536,7 +548,7 @@ Enable database quick unlock (Touch ID / Windows Hello) - + Aktiver hurtigoplÃ¥sning af database (Touch ID / Windows Hello) Lock databases when session is locked or lid is closed @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons Brug DuckDuckGo til download af webstedsikoner + + Hide TOTP in the entry preview panel + Skjul TOTP forhÃ¥ndsvisningspanelet + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 Meget lang forsinkelse registreret, maks. er %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + + Invalid conversion type: %1 Ugyldig konverteringstype: %1 @@ -636,11 +656,12 @@ Invalid regular expression syntax %1 %2 - + Ugyldig syntaks for regulært udtryk %1 +%2 Invalid placeholder: %1 - + Ugyldig pladsholder: %1 @@ -717,7 +738,12 @@ Ctrl+1 - Type username<br/> Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> - + <p>Du kan bruge avancerede søgeforespørgsler til at finde en hvilken som helst post i dine Ã¥bne databaser. Følgende genveje er nyttige:<br/> +Ctrl+F - Skift søgning i databasen<br/> +Ctrl+1 - Indtast brugernavn<br/> +Ctrl+2 - Indtast adgangskode<br/> +Ctrl+3 - Indtast TOTP<br/> +Ctrl+4 - Brug virtuelt tastatur (kun Windows)</p> Search all open databases @@ -745,7 +771,7 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Type {TOTP} - + Indtast {TOTP} Copy Username @@ -761,7 +787,7 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Use Virtual Keyboard - + Brug virtuelt tastatur @@ -798,13 +824,13 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Disable for this site Deaktiver for dette websted + + Undo + + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser gem post - Ok Ok @@ -819,13 +845,69 @@ Please select the correct database for saving credentials. Du har flere databaser Ã¥bne. Venligst vælg den korrekte database for at gemme loginoplysninger. + + KeePassXC - Select Database + + + + + BrowserPasskeysConfirmationDialog + + Cancel + Annuller + + + Update + + + + Authenticate + + + + Register new + + + + Register + + + + Timeout in <b>%n</b> seconds... + + + + Do you want to register Passkey for: + + + + Existing Passkey found. +Do you want to register a new Passkey for: + + + + Select the existing Passkey and press Update to replace it. + + + + Authenticate Passkey credentials for: + + + + Relying Party: %1 + + + + Username: %1 + + + + KeePassXC - Passkey credentials + + BrowserService - - KeePassXC: Create a new group - KeePassXC: Opret en ny gruppe - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -834,10 +916,6 @@ Do you want to create this group? Vil du oprette gruppen? - - KeePassXC: New key association request - KeePassXC: Ny anmodning om nøgletilknytning - You have received an association request for the following database: %1 @@ -854,28 +932,16 @@ chrome-laptop. Save and allow access Gem og tillad adgang - - KeePassXC: Overwrite existing key? - KeePassXC: Overskriv eksisterende nøgle? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? En delt krypteringsnøgle med navnet "%1" eksisterer allerede. Vil du overskrive den? - - KeePassXC: Update Entry - KeePassXC: Opdater post - Do you want to update the information in %1 - %2? Vil du opdatere oplysningerne i %1 - %2? - - KeePassXC: Delete entry - KeePassXC: Slet post - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -883,50 +949,45 @@ Do you want to delete the entry? - Converting attributes to custom data… - Konverterer attributter til tilpasset data … + %1 (Passkey) + - Abort - Afbryd + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Konverterede KeePassHTTP-attributter + KeePassXC - Create a new group + - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Det lykkedes at konvertere attributter fra %1 post(er). -Flyttede %2 nøgler til tilpasset data. - - - Successfully moved %n keys to custom data. - Det lykkedes at flytte %n nøgle til tilpasset data.Det lykkedes at flytte %n nøgler til tilpasset data. + Disable + Deaktivér - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Fandt ingen post med KeePassHTTP-attributter! + KeePassXC - Overwrite existing key? + - The active database does not contain an entry with KeePassHTTP attributes. - Den aktive database indeholder ikke en post med KeePassHTTP-attributter. + KeePassXC - Update Passkey + - Don't show this warning again - Vis ikke denne advarsel igen + KeePassXC - Update Entry + - KeePassXC: Legacy browser integration settings detected - KeePassXC: Registreret udgÃ¥et browserintegritetindstillinger + KeePassXC - Delete entry + - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Dine indstillinger for KeePassXC-Browser skal flyttes ind i databaseindstillingerne. -Det er nødvendigt for at vedligeholde dine nuværende browserforbindelser. -Vil du migrere dine eksisterende indstillinger nu? + KeePassXC - New key association request + + + + Passkey + @@ -986,7 +1047,7 @@ Vil du migrere dine eksisterende indstillinger nu? Show a notification when credentials are requested Credentials mean login data requested via browser extension - Vis en notifikation nÃ¥r der anmodes om legitimationsoplysninger + Vis en notifikation nÃ¥r der anmodes om loginoplysninger Request to unlock the database if it is locked @@ -1006,15 +1067,15 @@ Vil du migrere dine eksisterende indstillinger nu? Return only best-matching credentials - Returnér kun de bedst matchende legitimationsoplysninger + Returnér kun de bedst matchende loginoplysninger Returns expired credentials. String [expired] is added to the title. - Returnerer udløbne legitimationsoplysninger. Strengen [expired] tilføjes til titlen. + Returnerer udløbne loginoplysninger. Strengen [expired] tilføjes til titlen. Allow returning expired credentials - Tillad returnering af udløbne legitimationsoplysninger + Tillad returnering af udløbne loginoplysninger All databases connected to the extension will return matching credentials. @@ -1023,7 +1084,7 @@ Vil du migrere dine eksisterende indstillinger nu? Search in all opened databases for matching credentials Credentials mean login data requested via browser extension - + Søg i alle Ã¥bne databaser for matchende loginoplysninger Advanced @@ -1042,7 +1103,7 @@ Vil du migrere dine eksisterende indstillinger nu? Do not ask permission for HTTP Basic Auth An extra HTTP Basic Auth setting - + Spørg ikke om tilladelse til HTTP Basic Auth Automatically creating or updating string fields is not supported. @@ -1050,7 +1111,7 @@ Vil du migrere dine eksisterende indstillinger nu? Return advanced string fields which start with "KPH: " - + Returnér avancerede string-felter, som begynder med "KPH: " Don't display the popup suggesting migration of legacy KeePassHTTP settings. @@ -1058,7 +1119,7 @@ Vil du migrere dine eksisterende indstillinger nu? Do not prompt for KeePassHTTP settings migration. - + Anmod ikke om migrering af KeePassHTTP-indstillinger. Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup. @@ -1088,7 +1149,7 @@ Vil du migrere dine eksisterende indstillinger nu? Browse… Button for opening file dialog - + Gennemse… Use a custom browser configuration location: @@ -1124,24 +1185,16 @@ Vil du migrere dine eksisterende indstillinger nu? Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 - Grundet Snap-sandkasse, er du nødsaget til at køre et script for at aktivere browserintegritet.<br />Du kan hente scriptet fra %1 + Grundet Snap-sandkasse, er du nødsaget til at køre et script for at aktivere browser-integration.<br />Du kan hente scriptet fra %1 KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2 and %3. %4 - + KeePassXC-Browser er nødvendig for at browser-integrationen kan fungere. <br />Download den til %1 og %2 og %3. %4 Please see special instructions for browser extension use below Venligst se vigtige instruktioner for brug af browser tilføjelsen nedenfor - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - - - - <b>Warning:</b> The following options can be dangerous! - <b>Advarsel:</b> Følgende indstillinger kan være farlige! - Executable Files Eksekverbare filer @@ -1158,6 +1211,38 @@ Vil du migrere dine eksisterende indstillinger nu? Select native messaging host folder location + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + + + + <b>Warning:</b> Only adjust these settings if necessary. + + + + The custom proxy location does not exist. + + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1180,14 +1265,6 @@ Vil du migrere dine eksisterende indstillinger nu? CsvImportWidget - - Import CSV fields - Importér CSV-felter - - - filename - filnavn - size, rows, columns størrelse, rækker, kolonner @@ -1296,50 +1373,29 @@ Vil du migrere dine eksisterende indstillinger nu? Column %1 - - Imported from CSV file - Importeret fra CSV-fil - - - Original data: - Original data: - - - Error(s) detected in CSV file! - Fejl registreret i CSV-fil! - [%n more message(s) skipped] [%n yderligere meddelelse sprunget over][%n yderligere meddelelser sprunget over] - Error - Fejl + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - CSV-import: skriver har fejl: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n byte%n bytes - %n row(s) + CSV row count %n række%n rækker %n column(s) + CSV column count %n kolonne%n kolonner @@ -1413,38 +1469,9 @@ Backup database located at %2 Password field Adgangskodefelt - - Enter Additional Credentials (if any): - Indtast yderligere legitimationsoplysninger (hvis nogen): - - - Key File: - Nøglefil: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - - - - Key file help - - Hardware key slot selection - - - - Hardware Key: - Sikkerhedsnøgle: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - - - - Hardware key help - Hjælp til sikkerhedsnøgle + Valg af slot til sikkerhedsnøgle Key file to unlock the database @@ -1452,23 +1479,15 @@ Backup database located at %2 Browse for key file - + Find nøglefil Browse… - - - - Refresh hardware tokens - - - - Refresh - Genopfrisk + Gennemse… Unlock Database - + LÃ¥s database op Cancel @@ -1476,7 +1495,7 @@ Backup database located at %2 Unlock - + LÃ¥s op Please present or touch your YubiKey to continue… @@ -1502,7 +1521,7 @@ We recommend you update your KeePassXC installation. Database unlock canceled. - + OplÃ¥sning af database annulleret Unlock failed and no password given @@ -1522,14 +1541,6 @@ For at forhindre, at denne fejl vises, skal du gÃ¥ til "Databaseindstilling Retry with empty password Prøv igen med tom adgangskode - - Failed to authenticate with Windows Hello - - - - Failed to authenticate with Touch ID - - Failed to open key file: %1 Kunne ikke Ã¥bne nøglefil: %1 @@ -1563,22 +1574,60 @@ For at forhindre, at denne fejl vises, skal du gÃ¥ til "Databaseindstilling Kan ikke Ã¥bne databasefil som nøglefil - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Du kan ikke bruge din database som nøglefil. -Hvis du ikke har en nøglefil, bedes du lade feltet være tomt. + authenticate to access the database + - Detecting hardware keys… - Registrerer sikkerhedsnøgler... + Failed to authenticate with Quick Unlock: %1 + - No hardware keys detected - Ingen sikkerhedsnøgle registreret + Select Key File: + - Select hardware key… - Vælg sikkerhedsnøgle... + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1590,10 +1639,6 @@ Hvis du ikke har en nøglefil, bedes du lade feltet være tomt. DatabaseSettingsDialog - - Advanced Settings - Avancerede indstillinger - General Generelt @@ -1612,7 +1657,7 @@ Hvis du ikke har en nøglefil, bedes du lade feltet være tomt. Browser Integration - Browserintegritet + Browser-integration Maintenance @@ -1625,18 +1670,6 @@ Hvis du ikke har en nøglefil, bedes du lade feltet være tomt. KeePassXC-Browser settings KeePassXC-Browserindstillinger - - Convert KeePassHTTP data - - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - - - - Refresh database root group ID - - Disconnect all browsers Afbryd forbindelse til alle browsere @@ -1645,6 +1678,10 @@ Hvis du ikke har en nøglefil, bedes du lade feltet være tomt. Forget all site-specific settings on entries Glem alle stedspecifikke indstillinger pÃ¥ posterne + + Refresh database root group ID + + Stored keys Gemte nøgler @@ -1685,7 +1722,7 @@ Det kan forhindre forbindelse til browserpluginet. Enable Browser Integration to access these settings. - Aktivér browserintegritet for at tilgÃ¥ indstillingerne. + Aktivér Browser-integration for at tilgÃ¥ disse indstillinger. Do you really want to disconnect all browsers? @@ -1693,18 +1730,10 @@ This may prevent connection to the browser plugin. Vil du virkelig afbryde forbindelsen til alle browsere? Det kan forhindre forbindelse til browserpluginet. - - KeePassXC: No keys found - KeePassXC: Ingen nøgler fundet - No shared encryption keys found in KeePassXC settings. Fandt ingen delte krypteringsnøgler i KeePassXC-indstillinger. - - KeePassXC: Removed keys from database - KeePassXC: Fjernede nøgler fra database - Successfully removed %n encryption key(s) from KeePassXC settings. Det lykkedes at fjerne %n krypteret nøgle fra KeePassXC-indstillingerne.Det lykkedes at fjerne %n krypteret nøgler fra KeePassXC-indstillingerne. @@ -1723,40 +1752,43 @@ Tilladelser til at tilgÃ¥ poster tilbagekaldes. Abort Afbryd - - KeePassXC: Removed permissions - KeePassXC: Fjernede tilladelser - Successfully removed permissions from %n entry(s). Det lykkedes at fjerne tilladelser fra %n post.Det lykkedes at fjerne tilladelser fra %n poster. - - KeePassXC: No entry with permissions found! - KeePassXC: Ingen nøgler fundet! - The active database does not contain an entry with permissions. Den aktive database indholder ikke en post med tilladelser. - - Move KeePassHTTP attributes to custom data - Flyt KeePassHTTP-attributter til tilpasset data - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - - Refresh database ID - + Genopfrisk database-ID Do you really want refresh the database ID? This is only necessary if your database is a copy of another and the browser extension cannot connect. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + + + + No keys found + + + + Removed keys from database + + + + Removed permissions + + + + No entry with permissions found! + + DatabaseSettingsWidgetDatabaseKey @@ -1796,6 +1828,18 @@ Er du sikker pÃ¥, du vil fortsætte uden en adgangskode? Failed to change database credentials + + Weak password + Svag adgangskode + + + You must enter a stronger password to protect your database. + + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + + DatabaseSettingsWidgetEncryption @@ -1803,14 +1847,6 @@ Er du sikker pÃ¥, du vil fortsætte uden en adgangskode? Decryption Time: Krypteringstid: - - Change existing decryption time - - - - Change - Skift - Decryption time in seconds @@ -1829,7 +1865,7 @@ Er du sikker pÃ¥, du vil fortsætte uden en adgangskode? Format cannot be changed: Your database uses KDBX 4 features - + Formatet kan ikke ændres: Din database bruger KDBX 4-funktioner Unless you need to open your database with other programs, always use the latest format. @@ -1873,7 +1909,7 @@ Er du sikker pÃ¥, du vil fortsætte uden en adgangskode? Memory usage - + Hukommelsesforbrug Parallelism: @@ -1891,11 +1927,6 @@ Er du sikker pÃ¥, du vil fortsætte uden en adgangskode? KDBX 3 - - unchanged - Database decryption time is unchanged - uændret - Number of rounds too high Key transformation rounds @@ -1944,6 +1975,18 @@ If you keep this number, your database will not be protected from brute force at Threads for parallel execution (KDF settings) trÃ¥d trÃ¥de + + Encryption Settings: + + + + Basic + + + + Advanced + Avanceret + DatabaseSettingsWidgetFdoSecrets @@ -2002,18 +2045,10 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry - - Max. history items: - Maks. posthistorik: - Maximum size of history per entry - - Max. history size: - Maks. historikstørrelse: - MiB MiB @@ -2028,7 +2063,7 @@ If you keep this number, your database will not be protected from brute force at Enable compression (recommended) - + Aktiver komprimering (anbefales) Delete Recycle Bin @@ -2043,6 +2078,55 @@ This action is not reversible. (old) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + + + + Limit the amount of history items per entry to: + + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + + + + Limit the total size of history items per entry to: + + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + + + + Autosave delay since last change + + + + Autosave delay + + + + Autosave delay since last change in minutes + + + + min + min + + + Autosave delay since last change checkbox + + DatabaseSettingsWidgetKeeShare @@ -2170,26 +2254,10 @@ Det er helt sikkert en fejl. Rapportér det venligst til udviklerne.CSV file CSV-fil - - Select CSV file - Vælg CSV-fil - Merge database Sammenlæg database - - KeePass 1 database - KeePass 1-database - - - Open KeePass 1 database - Ã…bn KeePass 1-database - - - Open OPVault - - Export database to CSV file Eksportér database til CSV-fil @@ -2202,6 +2270,18 @@ Det er helt sikkert en fejl. Rapportér det venligst til udviklerne.Writing the HTML file failed. + + Export database to XML file + Eksporter database til XML-fil + + + XML file + XML-fil + + + Writing the XML file failed + Skrivning af XML-filen mislykkedes + Export Confirmation @@ -2210,15 +2290,6 @@ Det er helt sikkert en fejl. Rapportér det venligst til udviklerne.You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? Du er ved at eksportere din database til en ukrypteret fil. Dette vil gøre dine adgangskoder og følsomme oplysninger sÃ¥rbare! Er du sikker pÃ¥, at du vil fortsætte? - - New Database - Ny database - - - %1 [New Database] - Database tab name modifier - %1 [Ny database] - %1 [Locked] Database tab name modifier @@ -2228,12 +2299,12 @@ Det er helt sikkert en fejl. Rapportér det venligst til udviklerne. DatabaseWidget - Database Tags - + Searches and Tags + Søgninger og etiketter Searching… - + Søger… Shared group… @@ -2277,7 +2348,11 @@ Det er helt sikkert en fejl. Rapportér det venligst til udviklerne. Expired entries - + Udløbne poster + + + Entries expiring within %1 day(s) + No current database. @@ -2303,6 +2378,18 @@ Det er helt sikkert en fejl. Rapportér det venligst til udviklerne.No Results Ingen resultater + + Save + Gem + + + Enter a unique name or overwrite an existing search from the list: + + + + Save Search + Gem søgning + Lock Database? LÃ¥s database? @@ -2393,9 +2480,14 @@ SÃ¥ sikre gem fra og prøv igen? Could not find database file: %1 Kunne ikke finde databasefil: %1 - - Entries expiring within %1 day(s) - + + New Database + Ny database + + + %1 [New Database] + Database tab name modifier + %1 [Ny database] @@ -2418,7 +2510,7 @@ SÃ¥ sikre gem fra og prøv igen? Browser Integration - Browserintegritet + Browser-integration <empty URL> @@ -2533,6 +2625,10 @@ Would you like to correct it? Hide + + %n hour(s) + %n time%n timer + %n week(s) %n uge%n uger @@ -2545,10 +2641,6 @@ Would you like to correct it? %n year(s) %n Ã¥r%n Ã¥r - - %n hour(s) - - EditEntryWidgetAdvanced @@ -2667,17 +2759,27 @@ Would you like to correct it? Add new window association + + + + Add item + + + Remove selected window association + + - + Remove item + - + Window title: Vinduestitel: You can use an asterisk (*) to match everything - + Du kan bruge en asterisk (*) til at matche alt Set the window association title @@ -2685,7 +2787,7 @@ Would you like to correct it? You can use an asterisk to match everything - + Du kan bruge en asterisk til at matche alt Use a specific sequence for this association: @@ -2695,16 +2797,6 @@ Would you like to correct it? Custom Auto-Type sequence for this window - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2789,7 +2881,7 @@ Would you like to correct it? Delete all history - + Slet al historik Delete all @@ -2806,29 +2898,17 @@ Would you like to correct it? Notes field - - Toggle the checkbox to reveal the notes section. - Klik pÃ¥ afkrydsningsfeltet for at vise bemærkninger-afsnittet. - Username field Brugernavnfelt - - Toggle notes visible - - - - Notes: - Noter: - Expiration field - + Udløbsfelt Expiration Presets - + Forudindstillinger for udløb Expiration presets @@ -2838,33 +2918,17 @@ Would you like to correct it? Presets Forudindstillinger - - Password: - Adgangskode: - - - URL: - URL: - Url field Download favicon for URL - - - - Title: - Titel: + Download favicon for URL Title field - - - - Username: - Brugernavn: + Titelfelt Password field @@ -2875,15 +2939,39 @@ Would you like to correct it? - Expires: - Udløber: + Tags list + Etiketteliste - Tags: + &Username: - Tags list + &Title: + + + + &Password: + + + + UR&L: + + + + &Notes: + + + + Toggle notes visibility + + + + T&ags: + + + + &Expires: @@ -2925,26 +3013,13 @@ Would you like to correct it? Private key Privat nøgle - - External file - Ekstern fil - - - Browser for key file - - - - Browse… - Button for opening file dialog - - Attachment Vedhæftning External key file - + Ekstern nøglefil Add to agent @@ -2954,6 +3029,23 @@ Would you like to correct it? Remove from agent Fjern fra agent + + External file + Ekstern fil + + + Browser for key file + Find nøglefil + + + Browse… + Button for opening file dialog + Gennemse… + + + Generate + Generér + Select attachment file Vælg vedhæftningsfil @@ -2989,10 +3081,6 @@ Would you like to correct it? Icon Ikon - - Browser Integration - Browserintegritet - Properties Egenskaber @@ -3009,6 +3097,10 @@ Would you like to correct it? Group has unsaved changes Gruppe har ændringer, som ikke er gemt + + Browser Integration + Browser-integration + Enable Aktivér @@ -3024,10 +3116,6 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - Rediger gruppe - These settings affect to the group's behaviour with the browser extension. @@ -3064,6 +3152,22 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups + + Omit WWW subdomain from matching: + + + + Omit WWW subdomain from matching toggle for this and sub groups + + + + Restrict matching to given browser key: + + + + Restrict matching to given browser key toggle for this and sub groups + + EditGroupWidgetKeeShare @@ -3097,11 +3201,11 @@ Would you like to correct it? Browse… - + Gennemse… Clear fields - + Ryd felter Clear @@ -3194,7 +3298,7 @@ Supported extensions are: %1. Expiration field - + Udløbsfelt Use default Auto-Type sequence of parent group @@ -3249,19 +3353,19 @@ Supported extensions are: %1. Choose icon… - + Vælg ikon… Set the URL to use to search for a favicon - + Angiv den URL, der skal bruges til at søge efter et favicon Favicon URL - + Favicon-URL Download favicon for URL - + Download favicon for URL Download favicon @@ -3281,7 +3385,7 @@ Supported extensions are: %1. Also apply to child groups - + Anvend ogsÃ¥ pÃ¥ undergrupper Also apply to child entries @@ -3295,10 +3399,6 @@ Supported extensions are: %1. Unable to fetch favicon. Kan ikke hente favicon. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - - Existing icon selected. @@ -3331,6 +3431,10 @@ Supported extensions are: %1. The following icon(s) failed: Følgende ikon mislykkedes:Følgende ikoner mislykkedes: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + + EditWidgetProperties @@ -3368,7 +3472,7 @@ Supported extensions are: %1. Plugin Data - Plugindata + Plugin-data Plugin data @@ -3446,7 +3550,7 @@ Det kan fÃ¥ de pÃ¥virkede plugins til at svigte. Remove selected attachment - + Fjern valgte vedhæftning Remove @@ -3454,11 +3558,11 @@ Det kan fÃ¥ de pÃ¥virkede plugins til at svigte. Rename selected attachment - + Omdøb valgte vedhæftning Rename - + Omdøb Open selected attachment @@ -3590,11 +3694,11 @@ Error: %1 Age - + Alder Difference - + Forskel Size @@ -3654,7 +3758,7 @@ Error: %1 Tags - + Etiketter @@ -3762,6 +3866,10 @@ Error: %1 Has TOTP + Har TOTP + + + Background Color @@ -3769,7 +3877,7 @@ Error: %1 EntryPreviewWidget Display current TOTP value - + Vis nuværende TOTP-værdi Close @@ -3784,8 +3892,8 @@ Error: %1 Adgangskode - Notes - Bemærkninger + URL + URL Expiration @@ -3793,19 +3901,19 @@ Error: %1 Tags - + Etiketter Tags list - + Etiketteliste Username Brugernavn - URL - URL + Notes + Bemærkninger Advanced @@ -3825,7 +3933,7 @@ Error: %1 Default Sequence - + Standardsekvens Window @@ -3855,6 +3963,10 @@ Error: %1 Never Aldrig + + Double click to copy value + Dobbeltklik for at kopiere værdi + Enabled Aktiveret @@ -3863,6 +3975,10 @@ Error: %1 Disabled Deaktiveret + + Double click to copy to clipboard + + EntryURLModel @@ -3870,6 +3986,10 @@ Error: %1 Invalid URL + + Duplicate URL + + EntryView @@ -3885,6 +4005,10 @@ Error: %1 Reset to defaults Nulstil til standardindstillinger + + + %1 entry(s)... + + ExportDialog @@ -3924,7 +4048,7 @@ This will leave your passwords and sensitive information vulnerable! HTML file - + HTML-fil @@ -4103,6 +4227,147 @@ You can enable the DuckDuckGo website icon service in the security section of th Downloader faviconer (%1/%2)… + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Assistentside + + + Entry count: %1 + + + + Group + Gruppe + + + Title + Titel + + + Username + Brugernavn + + + Password + Adgangskode + + + Url + + + + + ImportWizardPageSelect + + Form + Formular + + + Import File Selection + + + + Password: + Adgangskode: + + + Key File: + Nøglefil: + + + Browse… + Gennemse… + + + Import Into: + + + + New Database + Ny database + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + + + + Select import file + + + + All files + Alle filer + + + Key files + Nøglefiler + + + Select key file + Vælg nøglefil + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4131,7 +4396,8 @@ You can enable the DuckDuckGo website icon service in the security section of th Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Der blev angivet ugyldige loginoplysninger, prøv igen. +Hvis dette gentager sig, kan din databasefil være beskadiget. Header doesn't match hash @@ -4187,7 +4453,8 @@ If this reoccurs, then your database file may be corrupt. Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Der blev angivet ugyldige loginoplysninger, prøv igen. +Hvis dette gentager sig, kan din databasefil være beskadiget. (HMAC mismatch) @@ -4524,7 +4791,7 @@ Linje %2, kolonne %3 Private key is empty - + Privat nøgle er tom File too large to be a private key @@ -4535,17 +4802,6 @@ Linje %2, kolonne %3 Kunne ikke Ã¥bne privat nøgle - - KeePass1OpenWidget - - Import KeePass1 Database - - - - Unable to open the database. - Kan ikke Ã¥bne databasen. - - KeePass1Reader @@ -4608,7 +4864,8 @@ Linje %2, kolonne %3 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Der blev angivet ugyldige loginoplysninger, prøv igen. +Hvis dette gentager sig, kan din databasefil være beskadiget. Key transformation failed @@ -4743,7 +5000,7 @@ If this reoccurs, then your database file may be corrupt. Exported to - + Eksporteret til Synchronized with @@ -4789,11 +5046,11 @@ If this reoccurs, then your database file may be corrupt. Browse for key file - + Find nøglefil Browse… - + Gennemse… Old key file format @@ -4819,11 +5076,11 @@ Meddelelse: %2 Change Key File - + Skift nøglefil Remove Key File - + Fjern nøglefil Key File set, click to change or remove @@ -4843,7 +5100,7 @@ Meddelelse: %2 Create Key File… - + Opret nøglefil… Error creating key file @@ -4859,15 +5116,15 @@ Meddelelse: %2 Invalid Key File - + Ugyldig nøglefil You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. - + Du kan ikke bruge den aktuelle database som sin egen nøglefil. Vælg venligst en anden fil eller generer en ny nøglefil. Suspicious Key File - + Mistænkelig nøglefil The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. @@ -4900,10 +5157,6 @@ Are you sure you want to continue with this file? &Recent Databases &Seneste databaser - - &Import - &Importér - &Export &Eksportér @@ -4918,12 +5171,16 @@ Are you sure you want to continue with this file? Copy Att&ribute - + Kopiér att&ribut TOTP TOTP + + Tags + Etiketter + &Groups &Grupper @@ -4968,34 +5225,18 @@ Are you sure you want to continue with this file? &New Database… &Ny database... - - Create a new database - Opret en ny database - &Merge From Database… &Flet fra database... - - Merge from another KDBX database - Sammenlæg fra en anden KDBX-database - &New Entry… &Ny post... - - Add a new entry - Tilføj en ny post - &Edit Entry… &Rediger post - - View or edit entry - Vis eller rediger post - &Delete Entry… &Slet post @@ -5004,10 +5245,6 @@ Are you sure you want to continue with this file? &New Group… &Ny gruppe... - - Add a new group - Tilføj en ny gruppe - &Edit Group… &Rediger gruppe... @@ -5018,7 +5255,7 @@ Are you sure you want to continue with this file? Download All &Favicons… - Download alle &Favicons... + Download alle &favicons... Sort &A-Z @@ -5030,7 +5267,7 @@ Are you sure you want to continue with this file? Sa&ve Database As… - + Gem database som... Database &Security… @@ -5040,18 +5277,10 @@ Are you sure you want to continue with this file? Database &Reports… Database&reporter… - - Statistics, health check, etc. - - &Database Settings… &Databaseindstillinger… - - Database settings - Databaseindstillinger - &Clone Entry… &Klon post @@ -5060,34 +5289,18 @@ Are you sure you want to continue with this file? Move u&p - - Move entry one step up - Ryk post et trin op - Move do&wn - - Move entry one step down - Ryk post et tin ned - Copy &Username Kopiér &brugernavn - - Copy username to clipboard - Kopiér brugernavn til udklipsholder - Copy &Password Kopiér &Adgangskode - - Copy password to clipboard - Kopiér adgangskode til udklipsholder - &Settings &Indstillinger @@ -5102,7 +5315,7 @@ Are you sure you want to continue with this file? Download &Favicon - + Download &favicon Open &URL @@ -5110,67 +5323,43 @@ Are you sure you want to continue with this file? &Lock Database - + &LÃ¥s database Lock &All Databases - + LÃ¥s &Alle databaser &Title &Titel - Copy title to clipboard - Kopiér titel til udklipsholder - - - &URL - &URL - - - Copy URL to clipboard - Kopiér URL til udklipsholder + Copy &URL + &Notes &Bemærkninger - - Copy notes to clipboard - Kopiér bemærkninger til udklipsholder - &CSV File… - + &CSV-fil… &HTML File… - + &HTML-fil… KeePass 1 Database… - - Import a KeePass 1 database - Importér en KeePass 1-database - 1Password Vault… - - Import a 1Password Vault - Importér en 1Password-boks - CSV File… - - - - Import a CSV file - Importér en CSV-fil + CSV-fil… Show TOTP @@ -5182,12 +5371,16 @@ Are you sure you want to continue with this file? Set up TOTP… - + Indstil TOTP… Copy &TOTP Kopiér &TOTP + + Copy Password and TOTP + Kopier adgangskode og TOTP + E&mpty recycle bin &Tøm papirkurven @@ -5212,10 +5405,6 @@ Are you sure you want to continue with this file? &Online Help Online hjælp - - Go to online documentation - - &User Guide &Brugerguide @@ -5282,7 +5471,11 @@ Are you sure you want to continue with this file? Clone Group... - + Klon gruppe... + + + &XML File… + &XML-fil… Clear history @@ -5312,6 +5505,10 @@ Expect some bugs and minor issues, this version is meant for testing purposes. + + No Tags + Ingen etiketter + Restore Entry(s) @@ -5340,6 +5537,10 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC Luk KeePassXC + + %1 Entry(s) + %1 post%1 poster + Please present or touch your YubiKey to continue… @@ -5352,6 +5553,274 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? + + Allow Screen Capture + + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + + + + Import Passkey + + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + Rediger post + + + Delete Entry + + + + Create Group + + + + Edit Group + Rediger gruppe + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + Kopiér brugernavn + + + Copy Password + Kopiér adgangskode + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + Importér KeePass1-database + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + ManageDatabase @@ -5388,11 +5857,11 @@ We recommend you use the AppImage available on our downloads page. Reset - + Nulstil Reset any remembered decisions for this application - + Nulstil alle huskede beslutninger vedrørende denne anmodning @@ -5409,26 +5878,6 @@ We recommend you use the AppImage available on our downloads page. Overwriting %1 [%2] Overskriver %1 [%2] - - older entry merged from database "%1" - gammel post sammenlagt fra databasen "%1" - - - Adding backup for older target %1 [%2] - Tilføjer sikkerhedskopi til ældre mÃ¥l %1 [%2] - - - Adding backup for older source %1 [%2] - Tilføjer sikkerhedskopi til ældre kilde %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Genanvender ældre mÃ¥lpost oven pÃ¥ nyere kilde %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Genanvender ældre kildepost oven pÃ¥ nyere mÃ¥l %1 [%2] - Synchronizing from newer source %1 [%2] Synkroniserer fra nyere kilde %1 [%2] @@ -5488,14 +5937,6 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Her kan du justere databasens krypteringsindstillinger. Bare rolig, du kan ændre dem senere i databaseindstillingerne. - - Advanced Settings - Avancerede indstillinger - - - Simple Settings - Simple indstillinger - NewDatabaseWizardPageDatabaseKey @@ -5576,14 +6017,6 @@ We recommend you use the AppImage available on our downloads page. - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - - - OpVaultReader @@ -5657,6 +6090,10 @@ We recommend you use the AppImage available on our downloads page. Unknown cipher: %1 Ukendt ciffer: %1 + + AES-256/GCM is currently not supported + + Passphrase is required to decrypt this key Adgangssætning er nødvendig for at dekryptere denne nøgle @@ -5723,26 +6160,174 @@ We recommend you use the AppImage available on our downloads page. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Adgangskoder matcher ikke - - - Passwords match so far - Adgangskoderne matcher indtil videre - - - Toggle Password (%1) + SSH Key Generator - Generate Password (%1) + Type + Type + + + Bits - Warning: Caps Lock enabled! - Advarsel: Caps Lock aktiveret! + Comment + Kommentar + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + + + + Export the following Passkey entries. + + + + Filenames will be generated with title and .passkey file extension. + + + + Export entries + + + + Export Selected + + + + Cancel + Annuller + + + Export to folder + + + + + PasskeyExporter + + KeePassXC: Passkey Export + + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + + Cannot open file + + + + Cannot open file "%1" for writing. + + + + Cannot write to file + + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + + + + Username: %1 + + + + Group + Gruppe + + + Database + Database + + + Import Passkey + + + + Import + Importér + + + Cancel + Annuller + + + Import the following Passkey: + + + + Entry + Post + + + Import the following Passkey to this entry: + + + + Create new entry + + + + Default Passkeys group (Imported Passkeys) + + + + Relying Party: %1 + + + + + PasskeyImporter + + Passkey file + + + + All files + Alle filer + + + Open Passkey file + + + + Cannot open file + + + + Cannot open file "%1" for reading. + + + + Cannot import Passkey + + + + Cannot import Passkey file "%1". Data is missing. + + + + Cannot import Passkey file "%1". Private key is missing or malformed. + + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + @@ -5865,7 +6450,7 @@ We recommend you use the AppImage available on our downloads page. Upper-case letters - + Store bogstaver Numbers @@ -5921,7 +6506,7 @@ We recommend you use the AppImage available on our downloads page. Also choose from: - + Vælg ogsÃ¥ fra: Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" @@ -5981,7 +6566,7 @@ We recommend you use the AppImage available on our downloads page. Apply Password - + Anvend adgangskode Regenerate password (%1) @@ -6007,6 +6592,30 @@ We recommend you use the AppImage available on our downloads page. Entropy: %1 bit Entropi: %1 bit + + Password Quality: %1 + Kvaliteten af adgangskoden: %1 + + + Poor + Password quality + DÃ¥rlig + + + Weak + Password quality + Svag + + + Good + Password quality + God + + + Excellent + Password quality + Fremragende + Confirm Delete Wordlist @@ -6052,9 +6661,32 @@ Do you want to overwrite it? Special Characters Specialtegn + + + PasswordWidget - Password Quality: %1 - Kvaliteten af adgangskoden: %1 + Passwords do not match + Adgangskoder matcher ikke + + + Passwords match so far + Adgangskoderne matcher indtil videre + + + Toggle Password (%1) + + + + Generate Password (%1) + Generer adgangskode (%1) + + + Warning: Caps Lock enabled! + Advarsel: Caps Lock aktiveret! + + + Quality: %1 + Kvalitet: %1 Poor @@ -6076,6 +6708,10 @@ Do you want to overwrite it? Password quality Fremragende + + Toggle password visibility using Control + H. Open the password generator using Control + G. + + PickcharsDialog @@ -6130,6 +6766,10 @@ Do you want to overwrite it? Continue + + Continue with weak password + + QObject @@ -6199,7 +6839,7 @@ Do you want to overwrite it? Browser Integration - Browserintegritet + Browser-integration Browser Plugin Failure @@ -6227,7 +6867,7 @@ Do you want to overwrite it? Notes for the entry. - + Noter til posten. Notes @@ -6307,7 +6947,7 @@ Do you want to overwrite it? Analyze passwords for weaknesses and problems. - + Analyser adgangskoder for svagheder og problemer. Cannot find HIBP file: %1 @@ -6416,11 +7056,11 @@ Do you want to overwrite it? Copy the given attribute to the clipboard. Defaults to "password" if not specified. Don't translate "password", it refers to the attribute. - + Kopierer den angivne attribut til udklipsholderen. Standardværdien er "adgangskode", hvis den ikke er angivet. Copy the current TOTP to the clipboard (equivalent to "-a totp"). - + Kopiér den aktuelle TOTP til udklipsholderen (svarende til "-a totp"). Must match only one entry, otherwise a list of possible matches is shown. @@ -6457,7 +7097,7 @@ Do you want to overwrite it? ERROR: Please specify one of --attribute or --totp, not both. - + FEJL: Angiv en af følgende --attribute eller --totp, ikke begge. Entry with path %1 has no TOTP set up. @@ -6505,7 +7145,7 @@ Do you want to overwrite it? Deactivate password key for the database. - + Deaktiver adgangsnøglen til databasen. Yubikey slot and optional serial used to access the database (e.g., 1:7370001). @@ -6523,6 +7163,10 @@ Do you want to overwrite it? Too many arguments provided. + + Path of the database. + Sti til databasen. + Target decryption time in MS for the database. @@ -6531,22 +7175,24 @@ Do you want to overwrite it? time + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Indstil nøglefilen for databasen. +Denne indstilling er forældet, brug i stedet --set-key-file. + Set the key file for the database. Set a password for the database. - + Angiv en adgangskode for databasen. Create a new database. Opret en ny database. - - Path of the database. - Sti til databasen. - Invalid decryption time %1. @@ -6591,6 +7237,158 @@ Do you want to overwrite it? Successfully created new database. Oprettelse af ny database lykkedes. + + Unset the password for the database. + Fjern adgangskoden til databasen. + + + Unset the key file for the database. + Fjern nøglefilen for databasen. + + + Edit a database. + Redigér en database. + + + Cannot use %1 and %2 at the same time. + Kan ikke bruge %1 og %2 pÃ¥ samme tid. + + + Could not change the database key. + Kunne ikke ændre databasenøglen. + + + Database was not modified. + Databasen blev ikke ændret. + + + Writing the database failed: %1 + Skrivning af databasen mislykkedes: %1 + + + Successfully edited the database. + Databasen blev redigeret. + + + Cannot remove password: The database does not have a password. + Kan ikke fjerne adgangskode: Databasen har ikke en adgangskode. + + + Cannot remove file key: The database does not have a file key. + Kan ikke fjerne filnøgle: Databasen har ikke en filnøgle. + + + Loading the new key file failed: %1 + Indlæsning af den nye nøglefil mislykkedes: %1 + + + Found unexpected Key type %1 + Der er fundet en uventet nøgletype %1 + + + Cannot remove all the keys from a database. + Kan ikke fjerne alle nøgler fra en database. + + + Show a database's information. + + + + UUID: + + + + Name: + + + + Description: + Beskrivelse: + + + Cipher: + + + + KDF: + + + + Recycle bin is enabled. + Papirkurv er aktiveret. + + + Recycle bin is not enabled. + + + + Location + + + + Database created + + + + Last saved + Sidst gemt + + + Unsaved changes + Ikke-gemte ændringer + + + yes + + + + no + nej + + + Number of groups + + + + Number of entries + + + + Number of expired entries + Antal udløbne poster + + + Unique passwords + + + + Non-unique passwords + + + + Maximum password reuse + Maksimalt genbrug af adgangskoder + + + Number of short passwords + + + + Number of weak passwords + Antal svage adgangskoder + + + Entries excluded from reports + + + + Average password length + + + + %1 characters + + Word count for the diceware passphrase. Ordtælling for diceware-adgangssætning. @@ -6642,10 +7440,6 @@ Do you want to overwrite it? Enter new password for entry: Indtast ny adgangskode for posten: - - Writing the database failed: %1 - Skrivning af databasen mislykkedes: %1 - Successfully edited entry %1. Det lykkedes at redigere posten %1. @@ -6780,7 +7574,7 @@ Do you want to overwrite it? Unsupported format %1 - + Ikke-understøttet format %1 Length of the generated password @@ -6860,7 +7654,7 @@ Do you want to overwrite it? Path of the new database. - + Sti til den nye database. Unable to import XML database: %1 @@ -6870,106 +7664,6 @@ Do you want to overwrite it? Successfully imported database. - - Show a database's information. - - - - UUID: - - - - Name: - - - - Description: - - - - Cipher: - - - - KDF: - - - - Recycle bin is enabled. - - - - Recycle bin is not enabled. - - - - Location - - - - Database created - - - - Last saved - Sidst gemt - - - Unsaved changes - Ikke-gemte ændringer - - - yes - - - - no - - - - Number of groups - - - - Number of entries - - - - Number of expired entries - - - - Unique passwords - - - - Non-unique passwords - - - - Maximum password reuse - - - - Number of short passwords - - - - Number of weak passwords - - - - Entries excluded from reports - - - - Average password length - - - - %1 characters - - Unknown command %1 @@ -7084,7 +7778,7 @@ Tilgængelige kommandoer: Entry is already in group %1. - + Posten er allerede i gruppe %1. Successfully moved entry %1 to group %2. @@ -7142,6 +7836,10 @@ Tilgængelige kommandoer: Show the protected attributes in clear text. + + Show all the attributes of the entry. + Vis alle attributterne for posten. + Show the attachments of the entry. @@ -7209,6 +7907,10 @@ Please consider generating a new key file. Invalid YubiKey serial %1 + + Please present or touch your YubiKey to continue. + Præsenter eller rør din YubiKey for at fortsætte. + Enter password to encrypt database (optional): Indtast adgangskode for at kryptere database (valgfrit): @@ -7264,7 +7966,7 @@ Please consider generating a new key file. Very weak password - + Meget svag adgangskode Password entropy is %1 bits @@ -7272,7 +7974,7 @@ Please consider generating a new key file. Weak password - + Svag adgangskode Used in %1/%2 @@ -7284,7 +7986,7 @@ Please consider generating a new key file. Password has expired - + Adgangskode er udløbet Password expiry was %1 @@ -7324,7 +8026,7 @@ Please consider generating a new key file. Debugging mode is disabled. - + Fejlsøgningstilstand er deaktiveret. Debugging mode is enabled. @@ -7356,7 +8058,7 @@ Kerne: %3 %4 Quick Unlock - + Hurtig oplÃ¥sning Secret Service Integration @@ -7395,7 +8097,7 @@ Kerne: %3 %4 - Botan library must be at least 2.11.x, found %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 @@ -7636,10 +8338,6 @@ Kerne: %3 %4 read password of the database from stdin læs adgangskode til databasen fra stdin - - allow app screen recordering and screenshots - - Locked databases. LÃ¥ste databaser. @@ -7652,6 +8350,10 @@ Kerne: %3 %4 Another instance of KeePassXC is already running. En anden instans af KeePassXC kører allerede. + + KeePassXC is not running. No open database to lock + + Fatal error while testing the cryptographic functions. Fatal fejl ved test af kryptografiske funktioner. @@ -7660,10 +8362,6 @@ Kerne: %3 %4 KeePassXC - Error KeePassXC - Fejl - - Warning: Failed to prevent screenshots on a top level window! - - Database password: Adgangskode for database: @@ -7687,7 +8385,221 @@ Kerne: %3 %4 - Please present or touch your YubiKey to continue. + Warning: Failed to block screenshot capture on a top-level window. + + + + Invalid Cipher + + + + Invalid KDF + + + + Access to all entries is denied + + + + allow screenshots and app recording (Windows/macOS) + + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + + + + Credential is excluded + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Passkeys + + + + AES initialization failed + + + + AES encrypt failed + + + + Failed to store in Linux Keyring + + + + Polkit returned an error: %1 + + + + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + + + + Failed to init KeePassXC crypto. + + + + Failed to encrypt key data. + + + + Failed to get Windows Hello credential. + + + + Failed to decrypt key data. + + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7727,18 +8639,6 @@ Kerne: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - - - - Show only entries which have URL set - - - - Show only entries which have browser settings in custom data - - Double-click entries to edit. @@ -7757,7 +8657,7 @@ Kerne: %3 %4 Entry has no Browser Integration settings - + Post har ingen indstillinger for browser-integration Denied URLs @@ -7793,7 +8693,7 @@ Kerne: %3 %4 Edit Entry… - + Rediger post… Delete Entry(s)… @@ -7803,17 +8703,25 @@ Kerne: %3 %4 Exclude from reports + + Only show entries that have a URL + + + + Only show entries that have been explicitly allowed or denied + + + + Show expired entries + + + + (Expired) + + ReportsWidgetHealthcheck - - Exclude expired entries from the report - - - - Also show entries that have been excluded from reports - - Hover over reason to show additional details. Double-click entries to edit. @@ -7843,7 +8751,7 @@ Kerne: %3 %4 Weak — consider changing the password - + Svag — overvej at ændre adgangskoden (Excluded) @@ -7879,7 +8787,7 @@ Kerne: %3 %4 Edit Entry… - + Rediger post… Delete Entry(s)… @@ -7889,6 +8797,18 @@ Kerne: %3 %4 Exclude from reports + + Show expired entries + + + + Show entries that have been excluded from reports + + + + (Expired) + + ReportsWidgetHibp @@ -7974,7 +8894,7 @@ Kerne: %3 %4 Edit Entry… - + Rediger post… Delete Entry(s)… @@ -7985,6 +8905,65 @@ Kerne: %3 %4 + + ReportsWidgetPasskeys + + Export + Eksportér + + + Import + Importér + + + List of entry URLs + + + + Please wait, list of entries with Passkeys is being updated… + + + + No entries with Passkeys. + + + + Title + Titel + + + Path + Sti + + + Username + Brugernavn + + + URLs + + + + Edit Entry… + Rediger post… + + + Delete Entry(s)… + Slet post…Slet poster… + + + Relying Party + + + + Show expired entries + + + + (Expired) + + + ReportsWidgetStatistics @@ -8033,7 +9012,7 @@ Kerne: %3 %4 no - + nej The database was modified, but the changes have not yet been saved to disk. @@ -8049,7 +9028,7 @@ Kerne: %3 %4 Number of expired entries - + Antal udløbne poster The database contains entries that have expired. @@ -8069,7 +9048,7 @@ Kerne: %3 %4 Maximum password reuse - + Maksimalt genbrug af adgangskoder Some passwords are used more than three times. Use unique passwords when possible. @@ -8085,7 +9064,7 @@ Kerne: %3 %4 Number of weak passwords - + Antal svage adgangskoder Recommend using long, randomized passwords with a rating of 'good' or 'excellent'. @@ -8224,10 +9203,14 @@ Kerne: %3 %4 Search Help Søg i hjælp + + Save Search + Gem søgning + Search (%1)… Search placeholder text, %1 is the keyboard shortcut - + Søg (%1)… Case sensitive @@ -8261,7 +9244,7 @@ Kerne: %3 %4 SettingsDatabaseModel File Name - + Filnavn Group @@ -8304,7 +9287,11 @@ Kerne: %3 %4 Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">This setting does not override disabling recycle bin prompts</span></p></body></html> - + <html><head/><body><p><span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">Denne indstilling + tilsidesætter ikke deaktivering af papirkurvs-prompter</span></p></body></html> + Confirm when clients request entry deletion @@ -8351,7 +9338,7 @@ Kerne: %3 %4 Allow KeeShare imports - + Tillad KeeShare-importer Allow import @@ -8367,7 +9354,7 @@ Kerne: %3 %4 Only show warnings and errors - + Vis kun advarsler og fejl Own certificate @@ -8447,19 +9434,65 @@ Kerne: %3 %4 Eksportér til %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All - + Clear Search + Ryd søgning + + + All Entries + Alle poster Expired - + Udløbet Weak Passwords - + Svage adgangskoder + + + + TagView + + Remove Search + Fjern søgning + + + Remove Tag + Fjern etikette + + + Confirm Remove Tag + Bekræft fjernelse af etikette + + + Remove tag "%1" from all entries in this database? + Fjern etiketten "%1" fra alle poster i denne database? @@ -8501,7 +9534,7 @@ Kerne: %3 %4 TotpSetupDialog Setup TOTP - Opsæt TOTP + Indstil TOTP Secret Key: @@ -8558,7 +9591,7 @@ Kerne: %3 %4 Invalid TOTP Secret - + Ugyldig TOTP-hemmelighed You have entered an invalid secret key. The key must be in Base32 format. @@ -8567,11 +9600,11 @@ Example: JBSWY3DPEHPK3PXP Confirm Remove TOTP Settings - + Bekræft fjernelse af TOTP-indstillinger Are you sure you want to delete TOTP settings for this entry? - + Er du sikker pÃ¥, at du vil slette TOTP-indstillingerne for denne post? @@ -8609,7 +9642,7 @@ Example: JBSWY3DPEHPK3PXP You have the latest version of KeePassXC - + Du har den seneste version af KeePassXC @@ -8618,26 +9651,6 @@ Example: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Gem dine adgangskoder sikkert i en KeePassXC-database - - Create new database - Opret en ny database - - - Open existing database - Ã…bn en eksisterende database - - - Import from KeePass 1 - Importér fra KeePass 1 - - - Import from 1Password - Importér fra 1Password - - - Import from CSV - Importér fra CSV - Recent databases Seneste databaser @@ -8650,6 +9663,18 @@ Example: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Velkommen til KeePassXC %1 + + Create Database + + + + Open Database + + + + Import File + + WinUtils @@ -8666,61 +9691,30 @@ Example: JBSWY3DPEHPK3PXP - - WindowsHello - - Failed to init KeePassXC crypto. - - - - Failed to encrypt key data. - - - - Failed to get Windows Hello credential. - - - - Failed to decrypt key data. - - - YubiKey - - %1 No interface, slot %2 - - General: Could not find interface for hardware key with serial number %1. Please connect it to continue. - + Kunne ikke finde kontaktflade til sikkerhedsnøglen med serienummer %1. Tilslut den for at fortsætte. YubiKeyEditWidget - - Refresh hardware tokens - - - - Refresh - Genopfrisk - Hardware key slot selection - + Valg af slot til sikkerhedsnøgle Could not find any hardware keys! - + Kunne ikke finde nogen sikkerhedsnøgler! Selected hardware key slot does not support challenge-response! - + Den valgte slot til sikkerhedsnøgle understøtter ikke udfordringssvar! Challenge-Response @@ -8742,56 +9736,60 @@ Example: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - - Detecting hardware keys… - Registrerer sikkerhedsnøgler... + Registrerer sikkerhedsnøgler… No hardware keys detected - Ingen sikkerhedsnøgle registreret + Ingen sikkerhedsnøgler registreret - - - YubiKeyInterface - %1 Invalid slot specified - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - - The YubiKey PCSC interface has not been initialized. - - Hardware key is currently in use. - Sikkerhedsnøgle er i øjeblikket i brug - Could not find or access hardware key with serial number %1. Please present it to continue. - + Kunne ikke finde eller fÃ¥ adgang til sikkerhedsnøglen med serienummer %1. Præsenter den for at fortsætte. Hardware key is locked or timed out. Unlock or re-present it to continue. - + Sikkerhedsnøglen er lÃ¥st eller er udløbet. LÃ¥s op eller præsentér den igen for at fortsætte. Hardware key was not found or is not configured. - + Sikkerhedsnøglen blev ikke fundet eller er ikke konfigureret. Failed to complete a challenge-response, the PCSC error code was: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + Tryk + + + Passive + USB Challenge-Response Key no interaction required + Passiv + YubiKeyInterfaceUSB @@ -8799,14 +9797,6 @@ Example: JBSWY3DPEHPK3PXP Unknown Ukendt - - (USB) %1 [%2] Configured Slot - %3 - - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - - Press USB Challenge-Response Key interaction request @@ -8821,25 +9811,31 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. - - Hardware key is currently in use. - Sikkerhedsnøgle er i øjeblikket i brug - Could not find hardware key with serial number %1. Please plug it in to continue. - + Kunne ikke finde sikkerhedsnøglen med serienummer %1. Sæt den i for at fortsætte. Hardware key timed out waiting for user interaction. - + Sikkerhedsnøglen er udløbet og venter pÃ¥ brugerinteraktion. A USB error occurred when accessing the hardware key: %1 - + Der opstod en USB-fejl ved adgang til sikkerhedsnøglen: %1 Failed to complete a challenge-response, the specific error was: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_de.ts b/share/translations/keepassxc_de.ts index 3cf2e5ea4..968470a88 100644 --- a/share/translations/keepassxc_de.ts +++ b/share/translations/keepassxc_de.ts @@ -82,6 +82,10 @@ Details Details + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Ihre Entscheidung wird so lange gespeichert, wie sowohl der anfragende Client als auch KeePassXC ausgeführt werden. + Remember Merken @@ -90,10 +94,6 @@ Allow Selected Auswahl erlauben - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - Ihre Entscheidung wird so lange gemerkt, wie sowohl der anfragende Client als auch KeePassXC laufen. - Deny All && Future Alle verweigern && Zukünftige @@ -124,6 +124,10 @@ Use OpenSSH OpenSSH verwenden + + Use both agents + Beide Agents verwenden + SSH_AUTH_SOCK override SSH_AUTH_SOCK-Überschreibung @@ -138,24 +142,20 @@ SSH_SK_PROVIDER value - SSH_SK_PROVIDER Wert + SSH_SK_PROVIDER-Wert SSH_SK_PROVIDER override - SSH_SK_PROVIDER Überschreibung + SSH_SK_PROVIDER-Überschreibung No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. - Kein SSH-Agent-Socket verfügbar. Stellen Sie sicher, dass die SSH_AUTH_SOCK-Umgebungsvariable existiert, oder setzen Sie einen Überschreibungswert. + Kein SSH-Agent-Socket verfügbar. Stellen Sie sicher, dass die Umgebungsvariable SSH_AUTH_SOCK existiert, oder setzen Sie einen Überschreibungswert. SSH Agent connection is working! SSH-Agent-Verbindung funktioniert! - - Use both agents - Beide Agents verwenden - ApplicationSettingsWidget @@ -171,6 +171,10 @@ Security Sicherheit + + This setting cannot be enabled when minimize on unlock is enabled. + Diese Einstellung kann nicht aktiviert werden, wenn Minimieren beim Entsperren aktiviert ist. + Access error for config file %1 Zugriffsfehler bei Konfigurationsdatei %1 @@ -252,12 +256,16 @@ Minimize window after unlocking database - Nach Entsperren der Datenbank Fenster minimieren + Fenster nach Entsperren der Datenbank minimieren Remember previously used databases Zuletzt verwendete Datenbanken merken + + recent files + aktuelle Dateien + Load previously open databases on startup Beim Start zuletzt verwendete Datenbanken öffnen @@ -268,15 +276,15 @@ Check for updates at application startup once per week - Bei Programmstart wöchentlich auf Updates prüfen + Beim Programmstart wöchentlich auf Updates prüfen Include beta releases when checking for updates - Bei Update-Prüfung Beta-Versionen einbeziehen + Betaversionen bei Update-Prüfung einbeziehen On database unlock, show entries that - Beim Entsperren der Datenbank Einträge anzeigen, die + Beim Entsperren der Datenbank Einträge anzeigen, die have expired @@ -286,12 +294,12 @@ days On database unlock, show entries that will expire within %1 days - Tage + Tagen will expire within On database unlock, show entries that... - werden innerhalb von + ablaufen innerhalb von File Management @@ -303,11 +311,11 @@ Automatically save when locking database - Automatisch speichern beim Sperren der Datenbank + Beim Sperren der Datenbank automatisch speichern Automatically save non-data changes when locking database - Metadaten automatisch speichern beim Sperren der Datenbank + Metadaten beim Sperren der Datenbank automatisch speichern Automatically reload the database when modified externally @@ -323,7 +331,7 @@ Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". - Gibt den Speicherort der Datenbank-Sicherungsdatei an. Das Vorkommen von "{DB_FILENAME}" wird durch den Dateinamen der gesicherten Datenbank ohne Erweiterung ersetzt. {TIME:<format>} wird durch die Sicherungszeit ersetzt, siehe https://doc.qt.io/qt-5/qdatetime.html#toString. <format>Standardmäßig wird die Formatzeichenfolge "dd_MM_yyyy_hh-mm-ss" verwendet. + Gibt den Speicherort der Datenbank-Sicherungsdatei an. Das Vorkommen von „{DB_FILENAME}“ wird durch den Dateinamen der gesicherten Datenbank ohne Erweiterung ersetzt. {TIME:<format>} wird durch die Sicherungszeit ersetzt, siehe https://doc.qt.io/qt-5/qdatetime.html#toString. <format>Standardmäßig wird die Formatzeichenfolge „dd_MM_yyyy_hh-mm-ss“ verwendet. {DB_FILENAME}.old.kdbx @@ -331,15 +339,15 @@ Choose... - Auswählen … + Auswählen… Use alternative saving method (may solve problems with Dropbox, Google Drive, GVFS, etc.) - Nutze eine andere Speichermethode (könnte Probleme von Dropbox, Google Drive, GVFS, etc. lösen) + Alternative Speichermethode verwenden (kann Probleme von Dropbox, Google Drive, GVFS usw. lösen) Temporary file moved into place - Temporäre Datei an den Ort bewegt + Temporäre Datei an ihren Platz verschieben Directly write to database file (dangerous) @@ -355,11 +363,11 @@ Minimize when opening a URL - Nach Öffnen einer URL Fenster minimieren + Fenster nach Öffnen einer URL minimieren Hide window when copying to clipboard - Nach Kopieren in Zwischenablage Fenster verstecken + Fenster nach Kopieren in Zwischenablage verstecken Minimize @@ -388,7 +396,7 @@ Toolbar button style - Schaltflächenstil der Werkzeugleiste + Design der Symbolleistenschaltflächen Movable toolbar @@ -408,11 +416,15 @@ Toolbar button style: - Design der Symbolleisten-Buttons: + Design der Symbolleistenschaltflächen: + + + Show passwords in color + Passwörter farbig anzeigen Use monospaced font for notes - Nutze eine monospaced Schriftart für Notizen + Monospace-Schriftart für Notizen verwenden Minimize instead of app exit @@ -424,11 +436,11 @@ Tray icon type - Trayicon-Typ + Taskleistensymbol-Typ Tray icon type: - Tray Icon Typ: + Taskleistensymbol-Typ: Hide window to system tray when minimized @@ -456,7 +468,7 @@ Hide expired entries from Auto-Type - Abgelaufene Einträge bei Auto-Type ausblenden + Abgelaufene Einträge bei Auto-Type verstecken Re-lock previously locked database after performing Auto-Type @@ -493,7 +505,7 @@ Remember last typed entry for: - Merke den zuletzt eingegebenen Eintrag für: + Zuletzt eingegebenen Eintrag merken für: @@ -526,7 +538,7 @@ Clipboard clear seconds - Zwischenablage löschen nach ... Sekunden + Zwischenablage löschen nach … Sekunden Lock databases after inactivity of @@ -550,7 +562,7 @@ Require password repeat when it is visible - Passwort-Wiederholung erfordern, wenn das Passwort sichtbar ist + Passwortwiederholung bei sichtbarem Passwort erforderlich Hide passwords when editing them @@ -574,7 +586,7 @@ Enable double click to copy the username/password entry columns - Benutzername/Passwort per Doppelklick kopieren + Benutzernamen/Passwort per Doppelklick kopieren Privacy @@ -582,7 +594,11 @@ Use DuckDuckGo service to download website icons - DuckDuckGo zum Herunterladen von Webseiten-Symbolen verwenden + DuckDuckGo zum Herunterladen von Webseitensymbolen verwenden + + + Hide TOTP in the entry preview panel + TOTP in der Eintragsvorschau verstecken @@ -605,7 +621,7 @@ KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. - KeePassXC benötigt die Berechtigungen für Barrierefreiheit und Bildschirmaufzeichnung, um globalen Auto-Type durchzuführen. Die Bildschirmaufzeichnung ist notwendig, um Einträge über den Fenstertitel zu finden. Falls Sie die Berechtigung bereits erteilt haben, starten Sie KeePasXC bitte neu. + KeePassXC benötigt die Berechtigungen für Barrierefreiheit und Bildschirmaufzeichnung, um globales Auto-Type durchzuführen. Die Bildschirmaufzeichnung ist notwendig, um Einträge über den Fenstertitel zu finden. Falls Sie die Berechtigung bereits erteilt haben, starten Sie KeePasXC bitte neu. Invalid entry provided @@ -627,13 +643,17 @@ Very long delay detected, max is %1: %2 Sehr lange Verzögerung, max. %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + Eintrag hat kein Attribut für PICKCHARS: %1 + Invalid conversion type: %1 Ungültiger Konvertierungstyp: %1 Invalid conversion syntax: %1 - Ungültige Konvertierungs-Syntax: %1 + Ungültige Konvertierungssyntax: %1 Invalid regular expression syntax %1 @@ -722,7 +742,7 @@ Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> <p>Sie können erweiterte Suchbegriffe verwenden, um Einträge in Ihrer Datenbank zu finden. Die folgenden Tastenkürzel können hilfreich sein:<br/> Strg+F - Datenbanksuche aktivieren/deaktivieren<br/> -Strg+1 - Benutzername tippen<br/> +Strg+1 - Benutzernamen tippen<br/> Strg+2 - Passwort tippen<br/> Strg+3 - TOTP tippen<br/> Strg+4 - Virtuelle Tastatur verwenden (nur Windows)</p> @@ -733,7 +753,7 @@ Strg+4 - Virtuelle Tastatur verwenden (nur Windows)</p> Search… - Suchen … + Suchen… Type Sequence @@ -745,19 +765,19 @@ Strg+4 - Virtuelle Tastatur verwenden (nur Windows)</p> Type {USERNAME} - Tippe {USERNAME} + {USERNAME} tippen Type {PASSWORD} - Tippe {PASSWORD} + {PASSWORD} tippen Type {TOTP} - Tippe {TOTP} + {TOTP} tippen Copy Username - Benutzername kopieren + Benutzernamen kopieren Copy Password @@ -806,13 +826,13 @@ Strg+4 - Virtuelle Tastatur verwenden (nur Windows)</p> Disable for this site Für diese Seite deaktivieren + + Undo + Rückgängig + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser Eintrag speichern - Ok Ok @@ -827,13 +847,70 @@ Please select the correct database for saving credentials. Sie haben mehrere Datenbanken geöffnet. Bitte wählen Sie die richtige Datenbank zum Speichern der Anmeldedaten. + + KeePassXC - Select Database + KeePassXC - Datenbank auswählen + + + + BrowserPasskeysConfirmationDialog + + Cancel + Abbrechen + + + Update + Update + + + Authenticate + Authentifizieren + + + Register new + Neu registrieren + + + Register + Registrieren + + + Timeout in <b>%n</b> seconds... + Timeout in <b>%n</b> Sekunde...Timeout in <b>%n</b> Sekunden... + + + Do you want to register Passkey for: + Möchten Sie den Passkey registrieren für: + + + Existing Passkey found. +Do you want to register a new Passkey for: + Vorhandenen Passkey gefunden. +Möchten Sie einen neuen Passkey registrieren für: + + + Select the existing Passkey and press Update to replace it. + Wählen Sie den vorhandenen Passkey aus und drücken Sie Update, um ihn zu ersetzen. + + + Authenticate Passkey credentials for: + Passkey-Anmeldedaten authentifizieren für: + + + Relying Party: %1 + Verlässliche Gegenseite: %1 + + + Username: %1 + Benutzername: %1 + + + KeePassXC - Passkey credentials + KeePassXC - Passkey-Anmeldedaten + BrowserService - - KeePassXC: Create a new group - KeePassXC: Neue Gruppe erstellen - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -842,10 +919,6 @@ Do you want to create this group? Möchten Sie diese Gruppe erstellen? - - KeePassXC: New key association request - KeePassXC: Neue Schlüsselverbindungsanfrage - You have received an association request for the following database: %1 @@ -855,87 +928,71 @@ chrome-laptop. Verbindungsanfrage erhalten für folgende Datenbank: %1 -Geben Sie der Verbindung einen eindeutigen Namen, z. B. "chrome-laptop". +Geben Sie der Verbindung einen eindeutigen Namen, z. B. „chrome-laptop“. Save and allow access Speichern und Zugriff erlauben - - KeePassXC: Overwrite existing key? - KeePassXC: Bestehenden Schlüssel überschreiben? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? Ein geteilter Schlüssel mit dem Namen „%1“ existiert bereits. Möchten Sie ihn überschreiben? - - KeePassXC: Update Entry - KeePassXC: Eintrag aktualisiert - Do you want to update the information in %1 - %2? Möchten Sie die Informationen in %1 - %2 aktualisieren? - - KeePassXC: Delete entry - KeePassXC: Eintrag löschen - A request for deleting entry "%1" has been received. Do you want to delete the entry? - Anfrage zum Löschen des Eintrags "%1" erhalten. + Anfrage zum Löschen des Eintrags „%1“ erhalten. Möchten Sie den Eintrag löschen? - Converting attributes to custom data… - Eigenschaften werden in Plugin-Daten umgewandelt ... + %1 (Passkey) + %1 (Passkey) - Abort - Abbrechen + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + Eintrag hat bereits einen Passkey. +Möchten Sie den Passkey in %1 - %2 überschreiben? - KeePassXC: Converted KeePassHTTP attributes - KeepassXC: KeePassHTTP-Eigenschaften wurden umgewandelt + KeePassXC - Create a new group + KeePassXC - Neue Gruppe erstellen - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Eigenschaften von %1 Einträgen wurden erfolgreich umgewandelt. -%2 Schlüssel in die Plugin-Daten verschoben. - - - Successfully moved %n keys to custom data. - %1 Einträge wurden erfolgreich umgewandelt%n Schlüssel wurden erfolgreich in die Plugin-Daten verschoben. + Disable + Deaktivieren - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Kein Eintrag mit KeePassHTTP-Eigenschaften gefunden! + KeePassXC - Overwrite existing key? + KeePassXC - Bestehenden Schlüssel überschreiben? - The active database does not contain an entry with KeePassHTTP attributes. - Die aktive Datenbank enthält keinen Eintrag mit KeePassHTTP-Eigenschaften. + KeePassXC - Update Passkey + KeePassXC - Passkey aktualisieren - Don't show this warning again - Diese Warnung nicht wieder anzeigen + KeePassXC - Update Entry + KeePassXC - Eintrag aktualisieren - KeePassXC: Legacy browser integration settings detected - KeePassXC: Veraltete Einstellungen für Browser-Integration gefunden + KeePassXC - Delete entry + KeePassXC - Eintrag löschen - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Ihre KeePassXC-Browser-Einstellungen müssen in die Datenbankeinstellungen verschoben werden. -Dies ist notwendig, um Ihre aktuellen Browserverbindungen aufrechtzuerhalten. -Möchten Sie Ihre bestehenden Einstellungen jetzt migrieren? + KeePassXC - New key association request + KeePassXC - Neue Anforderung einer Schlüsselzuordnung + + + Passkey + Passkey @@ -1003,7 +1060,7 @@ Möchten Sie Ihre bestehenden Einstellungen jetzt migrieren? Only entries with the same scheme (http://, https://, …) are returned. - Es werden nur Einträge mit dem gleichen Schema (http://, https://, …) zurückgegeben. + Es werden nur Einträge mit dem gleichen Schema (http://, https:// …) zurückgegeben. Match URL scheme (e.g., https://example.com) @@ -1011,7 +1068,7 @@ Möchten Sie Ihre bestehenden Einstellungen jetzt migrieren? Only returns the best matches for a specific URL instead of all entries for the whole domain. - Nur die am besten passenden Einträge für eine URL anzeigen statt aller Einträge der ganzen Domain + Nur die am besten passenden Einträge für eine URL anzeigen, statt alle Einträge der ganzen Domain. Return only best-matching credentials @@ -1019,7 +1076,7 @@ Möchten Sie Ihre bestehenden Einstellungen jetzt migrieren? Returns expired credentials. String [expired] is added to the title. - Abgelaufene Anmeldedaten zurückgeben. "Abgelaufen" wird an den Titel angehängt. + Abgelaufene Anmeldedaten zurückgeben. An den Titel wird [abgelaufen] angehängt. Allow returning expired credentials @@ -1051,7 +1108,7 @@ Möchten Sie Ihre bestehenden Einstellungen jetzt migrieren? Do not ask permission for HTTP Basic Auth An extra HTTP Basic Auth setting - Nicht nach Berechtigung für "HTTP Basic Auth" fragen + Nicht nach Berechtigung für HTTP-Basisauthentifizierung fragen Automatically creating or updating string fields is not supported. @@ -1059,11 +1116,11 @@ Möchten Sie Ihre bestehenden Einstellungen jetzt migrieren? Return advanced string fields which start with "KPH: " - Auch erweiterte Attribute anzeigen, die mit "KPH: " beginnen + Auch erweiterte Attribute anzeigen, die mit „KPH: “ beginnen Don't display the popup suggesting migration of legacy KeePassHTTP settings. - Kein Popup zeigen, das die Migration von älteren KeePassHTTP-Einstellungen vorschlägt. + Kein Pop-up-Fenster anzeigen, das die Migration der alten KeePassHTTP-Einstellungen vorschlägt. Do not prompt for KeePassHTTP settings migration. @@ -1088,7 +1145,7 @@ Möchten Sie Ihre bestehenden Einstellungen jetzt migrieren? Custom proxy location field - Benutzerdefiniertes Proxy-Pfad-Feld + Feld für benutzerdefinierten Proxy-Pfad Browser for custom proxy file @@ -1097,11 +1154,11 @@ Möchten Sie Ihre bestehenden Einstellungen jetzt migrieren? Browse… Button for opening file dialog - Durchsuchen ... + Durchsuchen… Use a custom browser configuration location: - Benutzerdefinierten Browser-Konfigurations-Pfad verwenden: + Benutzerdefinierten Browser-Konfigurationspfad verwenden: Browser type: @@ -1109,11 +1166,11 @@ Möchten Sie Ihre bestehenden Einstellungen jetzt migrieren? Toolbar button style - Schaltflächenstil der Werkzeugleiste + Design der Symbolleistenschaltflächen Config Location: - Konfigurations-Pfad. + Konfigurationspfad: Custom browser location field @@ -1143,14 +1200,6 @@ Möchten Sie Ihre bestehenden Einstellungen jetzt migrieren? Please see special instructions for browser extension use below Bitte beachten Sie die untenstehenden speziellen Anweisungen für die Verwendung der Browser-Erweiterung - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Fehler:</b> Der benutzerdefinierte Proxy-Pfad kann nicht gefunden werden!<br/>Browser-Integration WIRD NICHT FUNKTIONIEREN ohne die Proxy-Anwendung. - - - <b>Warning:</b> The following options can be dangerous! - <b>Warnung:</b> Die folgenden Einstellungen können gefährlich sein! - Executable Files Ausführbare Dateien @@ -1165,7 +1214,39 @@ Möchten Sie Ihre bestehenden Einstellungen jetzt migrieren? Select native messaging host folder location - Ordner-Pfad für Native-Messaging-Host auswählen + Ordnerpfad für Native-Messaging-Host auswählen + + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + Erlauben Sie KeePassXC-Proxy, alle Einträge mit Titel, URL und UUID in verbundenen Datenbanken aufzulisten. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + Eingeschränkten Zugriff auf alle Einträge in verbundenen Datenbanken zulassen (ignoriert Zugriffsbeschränkungen für Internetseiten) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Warnung:</b> Diese Einstellungen sollten nur bei Bedarf angepasst werden. + + + The custom proxy location does not exist. + Der benutzerdefinierte Proxy-Pfad ist nicht vorhanden. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Fehler:</b> Der benutzerdefinierte Proxy-Pfad ist nicht vorhanden. Korrigieren Sie dies auf dem Tab „Fortgeschritten“. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Fehler:</b> Die installierte ausführbare Proxy-Datei fehlt am erwarteten Speicherort: %1<br/>Bitte legen Sie in den erweiterten Einstellungen einen benutzerdefinierten Proxy-Pfad fest oder installieren Sie die Anwendung neu. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + Ermöglicht die Nutzung von unsicheren http://localhost mit Passkeys zu Testzwecken. + + + Allow using localhost with Passkeys + Nutzung von localhost mit Passkeys zulassen @@ -1189,21 +1270,13 @@ Möchten Sie Ihre bestehenden Einstellungen jetzt migrieren? CsvImportWidget - - Import CSV fields - CSV-Felder importieren - - - filename - Dateiname - size, rows, columns Größe, Zeilen, Spalten Column Association - Spalten-Zuordnung + Spaltenzuordnung Password @@ -1287,7 +1360,7 @@ Möchten Sie Ihre bestehenden Einstellungen jetzt migrieren? Consider '\' an escape character - „\“ als Maskierungs-Zeichen behandeln + „\“ als Maskierungszeichen behandeln Preview @@ -1305,49 +1378,29 @@ Möchten Sie Ihre bestehenden Einstellungen jetzt migrieren? Column %1 Spalte %1 - - Imported from CSV file - Aus CSV-Datei importiert - - - Original data: - Original-Daten: - - - Error(s) detected in CSV file! - Fehler in CSV-Datei gefunden! - [%n more message(s) skipped] [zusätzlich %n Nachricht(en) übersprungen][%n weitere Nachricht(en) übersprungen] - Error - Fehler + Failed to parse CSV file: %1 + CSV-Datei konnte nicht verarbeitet werden: %1 - CSV import: writer has errors: -%1 - CSV-Import: Fehler beim Schreiben: %1 + Imported from CSV file: %1 + Aus CSV-Datei: %1 importiert CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n Byte(s)%n Byte(s) - %n row(s) + CSV row count %n Zeile(n)%n Zeile(n) %n column(s) + CSV column count %n Spalte%n Spalte(n) @@ -1420,42 +1473,12 @@ Sicherungskopie der Datenbank ist in %2 Password field - Passwort-Feld - - - Enter Additional Credentials (if any): - Zusätzliche Anmeldedaten eingeben (falls vorhanden): - - - Key File: - Schlüsseldatei: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>Zusätzlich zu einem Passwort können Sie eine geheime Datei verwenden, um die Sicherheit Ihrer Datenbank zu erhöhen. Diese Datei kann in den Sicherheitseinstellungen Ihrer Datenbank erzeugt werden.</p></p>Dies ist <strong>nicht</strong> Ihre *.kdbx-Datenbankdatei!<br>Wenn Sie keine Schlüsseldatei haben, lassen Sie dieses Feld leer.</p><p>Klicken Sie für weitere Informationen…</p> - - - Key file help - Schlüsseldatei-Hilfe + Passwortfeld Hardware key slot selection Auswahl des Hardwareschlüssel-Slots - - Hardware Key: - Hardwareschlüssel: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>Sie können einen Hardware-Sicherheitsschlüssel wie z. B. einen <strong>YubiKey</strong> oder <strong>OnlyKey</strong> mit für HMAC-SHA1 konfigurierten Steckplätzen verwenden.</p> -<p>Klicken Sie für weitere Informationen...</p> - - - Hardware key help - Hilfe zu Hardwareschlüsseln - Key file to unlock the database Schlüsseldatei zum Entsperren der Datenbank @@ -1468,14 +1491,6 @@ Sicherungskopie der Datenbank ist in %2 Browse… Durchsuchen… - - Refresh hardware tokens - Hardware-Token aktualisieren - - - Refresh - Neu laden - Unlock Database Datenbank entsperren @@ -1529,23 +1544,15 @@ Wir empfehlen Ihnen, Ihre KeePassXC-Installation zu aktualisieren. Do you want to retry with an "empty" password instead? To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. - Das Entsperren der Datenbank ist fehlgeschlagen, und Sie haben kein Passwort eingegeben. -Möchten Sie es stattdessen mit einem "leeren" Passwort versuchen? + Das Entsperren der Datenbank ist fehlgeschlagen und Sie haben kein Passwort eingegeben. +Möchten Sie es stattdessen mit einem „leeren“ Passwort versuchen? -Um zu verhindern, dass dieser Fehler auftritt, müssen Sie zu "Datenbankeinstellungen -> Sicherheit" gehen und Ihr Passwort zurücksetzen. +Um diesen Fehler zu vermeiden, müssen Sie zu „Datenbankeinstellungen → Sicherheit“ gehen und Ihr Passwort zurücksetzen. Retry with empty password Mit leerem Passwort wiederholen - - Failed to authenticate with Windows Hello - Authentifizierung mit Windows Hello fehlgeschlagen - - - Failed to authenticate with Touch ID - Authentifizierung mit Touch ID fehlgeschlagen - Failed to open key file: %1 Fehler beim Öffnen der Schlüsseldatei: %1 @@ -1556,7 +1563,7 @@ Um zu verhindern, dass dieser Fehler auftritt, müssen Sie zu "Datenbankein You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> - Sie verwenden ein altes Schlüsseldateiformat, das KeePassXC in Zukunft möglicherweise<br> nicht mehr unterstützen wird.<br><br>Bitte überlegen Sie, eine neue Schlüsseldatei zu erzeugen, indem Sie zu:<br><strong>Datenbank &gt; Datenbank-Sicherheit &gt; Schlüsseldatei ändern gehen.</strong><br> + Sie verwenden ein altes Schlüsseldateiformat, das KeePassXC in Zukunft<br>möglicherweise nicht mehr unterstützen wird.<br><br>Bitte überlegen Sie, eine neue Schlüsseldatei zu erzeugen, indem Sie zu<br><strong>Datenbank &gt; Datenbanksicherheit &gt; Schlüsseldatei ändern</strong><br> gehen. Don't show this warning again @@ -1579,22 +1586,64 @@ Um zu verhindern, dass dieser Fehler auftritt, müssen Sie zu "Datenbankein Datenbankdatei kann nicht als Schlüsseldatei verwendet werden - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Sie können nicht Ihre Datenbank als Schlüsseldatei verwenden. -Wenn Sie keine Schlüsseldatei haben, lassen Sie das Feld bitte leer. + authenticate to access the database + zum Zugriff auf die Datenbank authentifizieren - Detecting hardware keys… - Hardwareschlüssel werden erkannt… + Failed to authenticate with Quick Unlock: %1 + Authentifizierung mit Quick Unlock fehlgeschlagen: %1 - No hardware keys detected - Keine Hardwareschlüssel erkannt + Select Key File: + Schlüsseldatei auswählen: - Select hardware key… - Hardwareschlüssel auswählen… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + <p>Zusätzlich zu einem Passwort können Sie eine geheime Datei verwenden, um die Sicherheit Ihrer Datenbank zu erhöhen. Diese Datei kann in den Sicherheitseinstellungen Ihrer Datenbank erzeugt werden.</p><p>Dies ist <strong>nicht</strong> Ihre *.kdbx-Datenbankdatei!</p> + + + Click to add a key file. + Durch Anklicken können Sie eine Schlüsseldatei hinzufügen. + + + <a href="#" style="text-decoration: underline">I have a key file</a> + <a href="#" style="text-decoration: underline">Ich habe eine Schlüsseldatei</a> + + + Use hardware key [Serial: %1] + Hardwareschlüssel verwenden [Seriennummer: %1] + + + Use hardware key + Hardwareschlüssel verwenden + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + Ihre Datenbankdatei ist KEINE Schlüsseldatei! +Wenn Sie keine Schlüsseldatei haben oder nicht wissen, was das ist, müssen Sie keine auswählen. + + + KeePassXC database file selected + KeePassXC-Datenbankdatei ausgewählt + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + Die von Ihnen ausgewählte Datei sieht aus wie eine Datenbankdatei. +Eine Datenbankdatei ist KEINE Schlüsseldatei! + +Sind Sie sicher, dass Sie mit dieser Datei fortfahren wollen? + + + No hardware keys found. + Keine Hardwareschlüssel gefunden. + + + Refresh Hardware Keys + Hardwareschlüssel aktualisieren @@ -1606,10 +1655,6 @@ Wenn Sie keine Schlüsseldatei haben, lassen Sie das Feld bitte leer. DatabaseSettingsDialog - - Advanced Settings - Fortgeschrittene Einstellungen - General Allgemein @@ -1641,18 +1686,6 @@ Wenn Sie keine Schlüsseldatei haben, lassen Sie das Feld bitte leer.KeePassXC-Browser settings KeePassXC-Browser-Einstellungen - - Convert KeePassHTTP data - KeePassHTTP-Daten konvertieren - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - Veraltete KeePassHTTP-Eigenschaften in KeePassXC-Browser-kompatible Plugin-Daten konvertieren - - - Refresh database root group ID - ID der Datenbank-Root-Gruppe erneuern - Disconnect all browsers Alle Browserverbindungen entfernen @@ -1661,13 +1694,17 @@ Wenn Sie keine Schlüsseldatei haben, lassen Sie das Feld bitte leer.Forget all site-specific settings on entries Alle auf Internetseiten bezogenen Einstellungen löschen + + Refresh database root group ID + ID der Datenbank-Root-Gruppe erneuern + Stored keys Gespeicherte Schlüssel Stored browser keys - Gespeicherte Browser-Schlüssel + Gespeicherte Browserschlüssel Remove selected key @@ -1709,18 +1746,10 @@ This may prevent connection to the browser plugin. Möchten Sie wirklich alle Browserverbindungen entfernen? Das wird die Verbindung zum Browser-Plugin verhindern. - - KeePassXC: No keys found - KeePassXC: Keine Schlüssel gefunden - No shared encryption keys found in KeePassXC settings. Keine geteilten Schlüssel in den KeePassXC-Einstellungen gefunden. - - KeePassXC: Removed keys from database - KeePassXC: Schlüssel aus der Datenbank entfernt - Successfully removed %n encryption key(s) from KeePassXC settings. %n Schlüssel erfolgreich aus KeePassXC-Einstellungen entfernt.%n Schlüssel erfolgreich aus KeePassXC-Einstellungen entfernt. @@ -1739,32 +1768,14 @@ Zugriffserlaubnisse zu allen Einträgen werden gelöscht. Abort Abbrechen - - KeePassXC: Removed permissions - KeePassXC: Zugangsdaten entfernt - Successfully removed permissions from %n entry(s). Zugriffsberechtigungen für %n Eintrag/Einträge erfolgreich gelöscht.Berechtigungen aus %n Einträgen erfolgreich entfernt. - - KeePassXC: No entry with permissions found! - KeePassXC: Kein Eintrag mit Zugangsdaten gefunden! - The active database does not contain an entry with permissions. Die aktive Datenbank enthält keinen Eintrag mit Zugangsdaten. - - Move KeePassHTTP attributes to custom data - KeePassHTTP-Eigenschaften in die Plugin-Daten verschieben - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Wollen Sie wirklich alle alten Daten der Browser-Integration auf den neuesten Standard umstellen? -Das ist notwendig, um die Kompatibilität mit dem Browser-Plugin zu erhalten. - Refresh database ID Datenbank-ID erneuern @@ -1775,12 +1786,32 @@ This is only necessary if your database is a copy of another and the browser ext Wollen Sie wirklich die Datenbank-ID erneuern? Dies ist nur nötig, wenn Ihre Datenbank eine Kopie einer anderen ist und die Browser-Erweiterung sich nicht verbinden kann. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Veraltete KeePassHTTP-Eigenschaften in KeePassXC-Browser-kompatible Plugin-Daten konvertieren + + + No keys found + Keine Schlüssel gefunden + + + Removed keys from database + Schlüssel aus der Datenbank entfernt + + + Removed permissions + Berechtigungen entfernt + + + No entry with permissions found! + Kein Eintrag mit Berechtigungen gefunden! + DatabaseSettingsWidgetDatabaseKey Add additional protection… - Zusätzlichen Schutz hinzufügen ... + Zusätzlichen Schutz hinzufügen… No password set @@ -1790,7 +1821,7 @@ Dies ist nur nötig, wenn Ihre Datenbank eine Kopie einer anderen ist und die Br WARNING! You have not set a password. Using a database without a password is strongly discouraged! Are you sure you want to continue without a password? - WARNUNG! Sie haben kein Passwort festgelegt. Es wird streng davon abgeraten, eine Datenbank ohne Passwort zu benutzen! + WARNUNG! Sie haben kein Passwort festgelegt. Es wird dringend davon abgeraten, eine Datenbank ohne Passwort zu benutzen! Wollen Sie wirklich ohne Passwort fortfahren? @@ -1814,6 +1845,18 @@ Wollen Sie wirklich ohne Passwort fortfahren? Failed to change database credentials Fehler beim Ändern der Datenbank-Anmeldedaten + + Weak password + Schwaches Passwort + + + You must enter a stronger password to protect your database. + Sie müssen ein stärkeres Passwort eingeben, um Ihre Datenbank zu schützen. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + Dies ist ein schwaches Passwort! Um Ihre Geheimnisse besser zu schützen, sollten Sie ein stärkeres Passwort wählen. + DatabaseSettingsWidgetEncryption @@ -1821,14 +1864,6 @@ Wollen Sie wirklich ohne Passwort fortfahren? Decryption Time: Zeit zum Entschlüsseln: - - Change existing decryption time - Vorhandene Entschlüsselungszeit ändern - - - Change - Ändern - Decryption time in seconds Entschlüsselungszeit in Sekunden @@ -1891,7 +1926,7 @@ Wollen Sie wirklich ohne Passwort fortfahren? Memory usage - Speicherbelegung + Speicherverbrauch Parallelism: @@ -1909,11 +1944,6 @@ Wollen Sie wirklich ohne Passwort fortfahren? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - unverändert - Number of rounds too high Key transformation rounds @@ -1966,6 +1996,18 @@ Wenn Sie diese Zahl beibehalten, ist Ihre Datenbank nicht vor Brute-Force-Angrif Threads for parallel execution (KDF settings) Thread(s)Thread(s) + + Encryption Settings: + Verschlüsselungseinstellungen: + + + Basic + Allgemein + + + Advanced + Fortgeschritten + DatabaseSettingsWidgetFdoSecrets @@ -2014,7 +2056,7 @@ Wenn Sie diese Zahl beibehalten, ist Ihre Datenbank nicht vor Brute-Force-Angrif Default username field - Standard-Benutzernamen-Feld + Standard-Benutzernamensfeld History Settings @@ -2022,20 +2064,12 @@ Wenn Sie diese Zahl beibehalten, ist Ihre Datenbank nicht vor Brute-Force-Angrif Maximum number of history items per entry - Maximale Anzahl von Verlaufs-Elementen pro Eintrag - - - Max. history items: - Max. Einträge im Verlauf: + Maximale Anzahl von Verlaufselementen pro Eintrag Maximum size of history per entry Maximale Größe des Verlaufs pro Eintrag - - Max. history size: - Max. Verlaufsgröße: - MiB MiB @@ -2064,7 +2098,65 @@ Das kann nicht rückgängig gemacht werden. (old) - (alt) + (alt) + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + Wenn Sie diese Einstellung speichern oder einen Eintrag bearbeiten, +werden die ältesten Elemente der Historie eines Eintrags +entfernt, sodass nur die angegebene Anzahl +von Einträgen übrig bleibt. + + + Limit the amount of history items per entry to: + Anzahl der Verlaufselemente pro Eintrag begrenzen auf: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + Wenn Sie diese Einstellung speichern oder einen Eintrag bearbeiten, +werden die ältesten Elemente des Verlaufs eines Eintrags +entfernt, sodass die verbleibenden Verlaufselemente +maximal der angegebenen Anzahl entspricht. + + + Limit the total size of history items per entry to: + Gesamtgröße der Verlaufselemente pro Eintrag begrenzen auf: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Verschieben Sie Einträge in den Papierkorb +anstatt sie aus der Datenbank zu löschen. +Aus dem Papierkorb gelöschte Einträge werden +aus der Datenbank entfernt. + + + Autosave delay since last change + Verzögerung beim automatischen Speichern seit der letzten Änderung + + + Autosave delay + Verzögerung beim automatischen Speichern + + + Autosave delay since last change in minutes + Verzögerung beim automatischen Speichern seit der letzten Änderung in Minuten + + + min + min + + + Autosave delay since last change checkbox + Verzögerung beim automatischen Speichern seit der letzten Änderung (Checkbox) @@ -2103,19 +2195,19 @@ Das kann nicht rückgängig gemacht werden. DatabaseSettingsWidgetMaintenance Manage Custom Icons - Benutzerdefinierte Icons verwalten + Benutzerdefinierte Symbole verwalten Delete selected icon(s) - Ausgewählte Icons löschen + Ausgewählte Symbole löschen Delete all custom icons not in use by any entry or group - Alle benutzerdefinierten Icons löschen, die nirgendwo verwendet werden + Alle benutzerdefinierten Symbole löschen, die nicht von einem Eintrag oder einer Gruppe verwendet werden Purge unused icons - Unbenutzte Icons löschen + Unbenutzte Symbole löschen Confirm Deletion @@ -2123,23 +2215,23 @@ Das kann nicht rückgängig gemacht werden. At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? - Mindestens eines der ausgewählten Icons wird derzeit von mindestens einem Eintrag oder einer Gruppe verwendet. Die Icons aller betroffenen Einträge und Gruppen werden durch das Standard-Icon ersetzt. Sind Sie sicher, dass Sie Icons löschen möchten, die noch in Verwendung sind? + Mindestens eines der ausgewählten Symbole wird derzeit von mindestens einem Eintrag oder einer Gruppe verwendet. Die Symbole aller betroffenen Einträge und Gruppen werden durch das Standardsymbol ersetzt. Sind Sie sicher, dass Sie die derzeit verwendeten Symbole löschen möchten? Custom Icons Are In Use - Benutzerdefinierte Icons sind in Verwendung + Benutzerdefinierte Symbole sind in Verwendung All custom icons are in use by at least one entry or group. - Alle benutzerdefinierten Icons werden von mindestens einem Eintrag oder einer Gruppe verwendet. + Alle benutzerdefinierten Symbole werden von mindestens einem Eintrag oder einer Gruppe verwendet. Purged Unused Icons - Unbenutzte Icons löschen + Unbenutzte Symbole löschen Purged %n icon(s) from the database. - Es wurde %n Symbol aus der Datenbank gelöscht.%n Icon(s) gelöscht. + Es wurde %n Symbol aus der Datenbank gelöscht.Es wurden %n Symbole aus der Datenbank gelöscht. @@ -2193,26 +2285,10 @@ Das ist definitiv ein Programmfehler, bitte benachrichtigen Sie die Entwickler.< CSV file CSV-Datei - - Select CSV file - CSV-Datei auswählen - Merge database Datenbank zusammenführen - - KeePass 1 database - KeePass 1-Datenbank - - - Open KeePass 1 database - KeePass 1-Datenbank öffnen - - - Open OPVault - OPVault öffnen - Export database to CSV file Datenbank als CSV-Datei exportieren @@ -2225,6 +2301,18 @@ Das ist definitiv ein Programmfehler, bitte benachrichtigen Sie die Entwickler.< Writing the HTML file failed. Fehler beim Schreiben der HTML-Datei. + + Export database to XML file + Datenbank als XML-Datei exportieren + + + XML file + XML-Datei + + + Writing the XML file failed + Fehler beim Schreiben der XML-Datei. + Export Confirmation Export bestätigen @@ -2233,15 +2321,6 @@ Das ist definitiv ein Programmfehler, bitte benachrichtigen Sie die Entwickler.< You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? Ihre Datenbank wird in eine unverschlüsselte Datei exportiert. Dadurch werden Ihre Passwörter und anderen Daten anfällig! Wollen Sie wirklich fortfahren? - - New Database - Neue Datenbank - - - %1 [New Database] - Database tab name modifier - %1 [Neue Datenbank] - %1 [Locked] Database tab name modifier @@ -2251,16 +2330,16 @@ Das ist definitiv ein Programmfehler, bitte benachrichtigen Sie die Entwickler.< DatabaseWidget - Database Tags - Datenbank-Tags + Searches and Tags + Suchen und Tags Searching… - Suche … + Suche… Shared group… - Gemeinsam genutzte Gruppe ... + Gemeinsam genutzte Gruppe… Confirm Auto-Type @@ -2302,6 +2381,10 @@ Das ist definitiv ein Programmfehler, bitte benachrichtigen Sie die Entwickler.< Expired entries Abgelaufene Einträge + + Entries expiring within %1 day(s) + Einträge, die innerhalb von %1 Tag ablaufenEinträge, die innerhalb von %1 Tagen ablaufen + No current database. Keine aktuelle Datenbank. @@ -2326,6 +2409,18 @@ Das ist definitiv ein Programmfehler, bitte benachrichtigen Sie die Entwickler.< No Results Keine Ergebnisse + + Save + Speichern + + + Enter a unique name or overwrite an existing search from the list: + Geben Sie einen eindeutigen Namen ein oder überschreiben Sie eine bestehende Suche aus der Liste: + + + Save Search + Suche speichern + Lock Database? Datenbank sperren? @@ -2415,11 +2510,16 @@ Sicheres Speichern deaktivieren und erneut versuchen? Could not find database file: %1 - Datenbank-Datei konnte nicht gefunden werden: %1 + Datenbankdatei konnte nicht gefunden werden: %1 - - Entries expiring within %1 day(s) - Einträge, die innerhalb von %1 Tag ablaufenEinträge, die innerhalb von %1 Tagen ablaufen + + New Database + Neue Datenbank + + + %1 [New Database] + Database tab name modifier + %1 [Neue Datenbank] @@ -2494,7 +2594,7 @@ Sicheres Speichern deaktivieren und erneut versuchen? Some Browser Integration settings are overridden by group settings. - Manche Browser-Integrations-Einstellungen werden von den Gruppen-Einstellungen überschrieben. + Einige Einstellungen der Browser-Integration werden von den Gruppeneinstellungen überschrieben. Invalid Entry @@ -2522,7 +2622,7 @@ Korrigieren? An error occurred while validating the Auto-Type sequence for "%1": %2 Would you like to correct it? - Bei der Validierung der Auto-Type-Sequenz für "%1" ist ein Fehler aufgetreten: + Bei der Validierung der Auto-Type-Sequenz für „%1“ ist ein Fehler aufgetreten: %2 Korrigieren? @@ -2562,6 +2662,10 @@ Korrigieren? Hide Verstecken + + %n hour(s) + %n Stunde%n Stunden + %n week(s) %n Woche%n Woche(n) @@ -2574,10 +2678,6 @@ Korrigieren? %n year(s) %n Jahre%n Jahr(e) - - %n hour(s) - %n Stunde%n Stunden - EditEntryWidgetAdvanced @@ -2643,7 +2743,7 @@ Korrigieren? Exclude from database reports - Von Datenbank-Berichten ausschließen + Von Datenbankberichten ausschließen Foreground Color: @@ -2690,15 +2790,25 @@ Korrigieren? Existing window associations - Bestehende Fenster-Zuordnungen + Bestehende Fensterzuordnungen Add new window association - Neue Fenster-Zuordnung hinzufügen + Neue Fensterzuordnung hinzufügen + + + + + Add item + + Remove selected window association - Ausgewählte Fenster-Zuordnung entfernen + Ausgewählte Fensterzuordnung entfernen + + + - + Remove item + - Window title: @@ -2710,7 +2820,7 @@ Korrigieren? Set the window association title - Titel der Fenster-Zuordnung festlegen + Titel der Fensterzuordnung festlegen You can use an asterisk to match everything @@ -2724,16 +2834,6 @@ Korrigieren? Custom Auto-Type sequence for this window Benutzerdefinierte Auto-Type-Sequenz für dieses Fenster - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2755,19 +2855,19 @@ Korrigieren? Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. - Diese Einstellung nur zum Browser für HTTP-Auth-Dialoge senden. Wenn aktiv, werden normale Login-Formulare diesen Eintrag nicht zur Auswahl anbieten. + Diese Einstellung wird nur bei HTTP-Authentifizierungsdialogen an den Browser gesendet. Wenn aktiviert, wird dieser Eintrag in normalen Anmeldeformularen nicht zur Auswahl angezeigt. Use this entry only with HTTP Basic Auth - Diesen Eintrag nur mit "HTTP Basic Auth" verwenden + Diesen Eintrag nur mit HTTP-Basisauthentifizierung verwenden Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. - Diese Einstellung nicht an den Browser für HTTP-Auth-Dialoge senden. Wenn aktiviert, wird dieser Eintrag in HTTP-Auth-Dialogen nicht zur Auswahl angezeigt. + Diese Einstellung nicht für HTTP-Authentifizierungsdialoge an den Browser senden. Wenn aktiviert, wird dieser Eintrag in HTTP-Authentifizierungsdialogen nicht zur Auswahl angezeigt. Do not use this entry with HTTP Basic Auth - Diesen Eintrag nicht mit HTTP-Basic-Auth verwenden + Diesen Eintrag nicht mit HTTP-Basisauthentifizierung verwenden Additional URL's @@ -2790,11 +2890,11 @@ Korrigieren? EditEntryWidgetHistory Entry history selection - Auswahl des Eintrags-Verlaufs + Auswahl des Eintragsverlaufs Show entry at selected history state - Eintrag zum ausgewählten Verlaufszustand anzeigen + Eintrag im ausgewählten Verlaufsstatus anzeigen Show @@ -2802,7 +2902,7 @@ Korrigieren? Restore entry to selected history state - Eintrag aus ausgewähltem Verlaufszustand wiederherstellen + Eintrag auf ausgewählten Verlaufsstatus zurücksetzen Restore @@ -2810,7 +2910,7 @@ Korrigieren? Delete selected history state - Ausgewählten Verlaufszustand löschen + Ausgewählten Verlaufsstatus löschen Delete @@ -2833,23 +2933,11 @@ Korrigieren? Notes field - Notizen-Feld - - - Toggle the checkbox to reveal the notes section. - Setzen Sie das Häkchen, um die Notizen anzuzeigen. + Notizfeld Username field - Benutzernamen-Feld - - - Toggle notes visible - Sichtbarkeit der Notizen umschalten - - - Notes: - Notizen: + Benutzernamensfeld Expiration field @@ -2867,14 +2955,6 @@ Korrigieren? Presets Vorgaben - - Password: - Passwort: - - - URL: - URL: - Url field URL-Feld @@ -2883,38 +2963,54 @@ Korrigieren? Download favicon for URL Favicon für URL herunterladen - - Title: - Titel: - Title field Titelfeld - - Username: - Benutzername: - Password field - Passwort-Feld + Passwortfeld Toggle expiration Ablaufdatum umschalten - - Expires: - Läuft ab: - - - Tags: - Tags: - Tags list Tag-Liste + + &Username: + &Benutzername: + + + &Title: + &Titel: + + + &Password: + &Passwort: + + + UR&L: + UR&L: + + + &Notes: + &Notizen: + + + Toggle notes visibility + Sichtbarkeit der Notizen umschalten + + + T&ags: + T&ags: + + + &Expires: + &Läuft ab: + EditEntryWidgetSSHAgent @@ -2954,19 +3050,6 @@ Korrigieren? Private key Privater Schlüssel - - External file - Externe Datei - - - Browser for key file - Browser für die Schlüsseldatei - - - Browse… - Button for opening file dialog - Durchsuchen ... - Attachment Anhang @@ -2983,6 +3066,23 @@ Korrigieren? Remove from agent Vom Agenten entfernen + + External file + Externe Datei + + + Browser for key file + Browser für die Schlüsseldatei + + + Browse… + Button for opening file dialog + Durchsuchen… + + + Generate + Erzeugen + Select attachment file Anhang auswählen @@ -3018,10 +3118,6 @@ Korrigieren? Icon Symbol - - Browser Integration - Browser-Integration - Properties Eigenschaften @@ -3038,6 +3134,10 @@ Korrigieren? Group has unsaved changes Gruppe enthält ungespeicherte Änderungen + + Browser Integration + Browser-Integration + Enable Aktivieren @@ -3053,21 +3153,17 @@ Korrigieren? EditGroupWidgetBrowser - - Edit Group - Gruppe bearbeiten - These settings affect to the group's behaviour with the browser extension. Diese Einstellungen beeinflussen das Verhalten der Gruppe in der Browser-Erweiterung. Hide entries from browser extension: - Einträge aus Browser-Erweiterung ausblenden: + Einträge der Browser-Erweiterung verstecken: Hide entries from browser extension toggle for this and sub groups - Einträge vor dem Browser-Erweiterungs-Schalter für diese und Untergruppen verstecken + Einträge der Browser-Erweiterung für diese und Untergruppen umschalten Skip Auto-Submit for entries: @@ -3075,11 +3171,11 @@ Korrigieren? Skip Auto-Submit toggle for this and sub groups - Auto-Submit-Schalter für diese und Untergruppen überspringen + Auto-Submit für diese Gruppe und Untergruppen überspringen Use entries only with HTTP Basic Auth: - Diese Einträge nur mit "HTTP Basic Auth" verwenden: + Diese Einträge nur mit HTTP-Basisauthentifizierung verwenden: Only HTTP Auth toggle for this and sub groups @@ -3087,22 +3183,38 @@ Korrigieren? Do not use entries with HTTP Basic Auth: - Diese Einträge nicht mit HTTP-Basic-Auth verwenden: + Diese Einträge nicht mit HTTP-Basisauthentifizierung verwenden: Do not use HTTP Auth toggle for this and sub groups - Den HTTP-Authentifizierungs-Schalter nicht für diese und Untergruppen verwenden + HTTP-Authentifizierungs-Schalter nicht für diese und Untergruppen verwenden + + + Omit WWW subdomain from matching: + WWW-Subdomain beim Abgleich weglassen: + + + Omit WWW subdomain from matching toggle for this and sub groups + WWW-Subdomain aus dem entsprechenden Abgleich für diese und die Untergruppen weglassen + + + Restrict matching to given browser key: + Einschränkung des Abgleichs auf den angegebenen Browserschlüssel: + + + Restrict matching to given browser key toggle for this and sub groups + Einschränkung des Abgleichs auf bestimmte Browserschlüssel-Schalter für diese und Untergruppen EditGroupWidgetKeeShare Sharing mode field - Freigabemodus-Feld + Feld für Freigabemodus Password field - Passwort-Feld + Passwortfeld Type: @@ -3118,15 +3230,15 @@ Korrigieren? Path to share file field - Feld für Pfad der Freigabe-Datei + Feld für Pfad der Freigabedatei Browse for share file - Nach Freigabe-Datei durchsuchen + Nach Freigabedatei durchsuchen Browse… - Durchsuchen ... + Durchsuchen… Clear fields @@ -3173,7 +3285,7 @@ Unterstützte Erweiterungen sind: %1. KeeShare is currently disabled. You can enable import/export in the application settings. KeeShare is a proper noun - KeeShare is derzeit deaktiviert. Sie können den Import/Export in den Anwendungseinstellungen aktivieren. + KeeShare ist derzeit deaktiviert. Sie können den Import/Export in den Anwendungseinstellungen aktivieren. Database export is currently disabled by application settings. @@ -3224,7 +3336,7 @@ Unterstützte Erweiterungen sind: %1. Expiration field - Ablaufdatums-Feld + Feld für Ablaufdatum Use default Auto-Type sequence of parent group @@ -3248,11 +3360,11 @@ Unterstützte Erweiterungen sind: %1. Default auto-type sequence field - Standard-Auto-Type-Sequenz-Feld + Feld für Standard-Auto-Type-Sequenz Notes field - Notizen-Feld + Notizfeld Name: @@ -3279,7 +3391,7 @@ Unterstützte Erweiterungen sind: %1. Choose icon… - Icon auswählen… + Symbol auswählen… Set the URL to use to search for a favicon @@ -3303,7 +3415,7 @@ Unterstützte Erweiterungen sind: %1. Apply icon to… - Icon verwenden für ... + Symbol verwenden für… Apply to this group only @@ -3325,10 +3437,6 @@ Unterstützte Erweiterungen sind: %1. Unable to fetch favicon. Kann Favicon nicht herunterladen. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Sie können den DuckDuckGo-Webseitensymbol-Dienst unter Werkzeuge -> Einstellungen -> Sicherheit aktivieren - Existing icon selected. Bestehendes Symbol ausgewählt. @@ -3361,6 +3469,10 @@ Unterstützte Erweiterungen sind: %1. The following icon(s) failed: Das Laden der folgenden Symbole ist fehlgeschlagen:Das Laden der folgenden Symbole ist fehlgeschlagen: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + Sie können den DuckDuckGo-Webseitensymbol-Dienst unter „Anwendungseinstellungen → Sicherheit“ aktivieren + EditWidgetProperties @@ -3370,7 +3482,7 @@ Unterstützte Erweiterungen sind: %1. Datetime created - Erstellungs-Zeitpunkt + Erstellungszeitpunkt Modified: @@ -3378,7 +3490,7 @@ Unterstützte Erweiterungen sind: %1. Datetime modified - Änderungs-Zeitpunkt + Änderungszeitpunkt Accessed: @@ -3386,7 +3498,7 @@ Unterstützte Erweiterungen sind: %1. Datetime accessed - Zugriffs-Zeitpunkt + Zugriffszeitpunkt Uuid: @@ -3442,7 +3554,7 @@ Das kann dazu führen, dass die betroffenen Plugins nicht mehr richtig funktioni EntryAttachments Cannot open file "%1" - Kann Datei "%1" nicht öffnen + Datei „%1“ kann nicht geöffnet werden @@ -3568,7 +3680,7 @@ Das kann dazu führen, dass die betroffenen Plugins nicht mehr richtig funktioni Attachment "%1" already exists. Would you like to overwrite the existing attachment? - Anhang "%1" existiert bereits. + Anhang „%1“ existiert bereits. Existierenden Anhang überschreiben? @@ -3799,6 +3911,10 @@ Fehler: %1 Has TOTP Hat TOTP + + Background Color + Hintergrundfarbe + EntryPreviewWidget @@ -3819,8 +3935,8 @@ Fehler: %1 Passwort - Notes - Notizen + URL + URL Expiration @@ -3839,8 +3955,8 @@ Fehler: %1 Benutzername - URL - URL + Notes + Notizen Advanced @@ -3890,6 +4006,10 @@ Fehler: %1 Never Nie + + Double click to copy value + Zum Kopieren des Wertes doppelklicken + Enabled Aktiviert @@ -3898,6 +4018,10 @@ Fehler: %1 Disabled Deaktiviert + + Double click to copy to clipboard + Zum Kopieren in die Zwischenablage doppelklicken + EntryURLModel @@ -3905,6 +4029,10 @@ Fehler: %1 Invalid URL Ungültige URL + + Duplicate URL + URL duplizieren + EntryView @@ -3920,6 +4048,10 @@ Fehler: %1 Reset to defaults Auf Voreinstellung zurücksetzen + + + %1 entry(s)... + + %1 Eintrag...+ %1 Einträge... + ExportDialog @@ -3929,7 +4061,7 @@ Fehler: %1 Sort entries by... - Einträge sortieren nach ... + Einträge sortieren nach… You are about to export your database to an unencrypted file. @@ -3956,7 +4088,7 @@ Dadurch sind Ihre Kennwörter und sensiblen Informationen ungeschützt! Export database to HTML file - Datenbank in HTML-Datei exportieren + Datenbank als HTML-Datei exportieren HTML file @@ -4021,7 +4153,7 @@ Dadurch sind Ihre Kennwörter und sensiblen Informationen ungeschützt!FdoSecrets::Item Entry "%1" from database "%2" was used by %3 - Eintrag "%1" aus Datenbank "%2" wurde von %3 verwendet + Eintrag „%1“ aus Datenbank „%2“ wurde von %3 verwendet @@ -4101,7 +4233,7 @@ Dadurch sind Ihre Kennwörter und sensiblen Informationen ungeschützt!Having trouble downloading icons? You can enable the DuckDuckGo website icon service in the security section of the application settings. Probleme beim Herunterladen der Symbole? -Sie können den DuckDuckGo-Dienst im Abschnitt "Sicherheit" der Anwendungseinstellungen aktivieren. +Sie können den DuckDuckGo-Dienst unter „Anwendungseinstellungen → Sicherheit“ aktivieren. Close @@ -4117,11 +4249,11 @@ Sie können den DuckDuckGo-Dienst im Abschnitt "Sicherheit" der Anwend Please wait, processing entry list… - Bitte warten, Eintragsliste wird verarbeitet ... + Bitte warten Sie, Eintragsliste wird verarbeitet… Downloading… - Herunterladen ... + Herunterladen… Ok @@ -4137,7 +4269,148 @@ Sie können den DuckDuckGo-Dienst im Abschnitt "Sicherheit" der Anwend Downloading favicons (%1/%2)… - Favicons (%1/%2) werden heruntergeladen ... + Favicons (%1/%2) werden heruntergeladen… + + + + ImportWizard + + Import Wizard + Assistent für den Import + + + + ImportWizardPageReview + + WizardPage + Assistent + + + Entry count: %1 + Anzahl der Einträge: %1 + + + Group + Gruppe + + + Title + Titel + + + Username + Benutzername + + + Password + Passwort + + + Url + URL + + + + ImportWizardPageSelect + + Form + Formular + + + Import File Selection + Auswahl der Importdatei + + + Password: + Passwort: + + + Key File: + Schlüsseldatei: + + + Browse… + Durchsuchen… + + + Import Into: + Importieren in: + + + New Database + Neue Datenbank + + + No unlocked databases available + Keine entsperrten Datenbanken verfügbar + + + Existing Database: + Existierende Datenbank: + + + Import File: + Importdatei: + + + Comma Separated Values (.csv) + Kommagetrennte Werte (.csv) + + + 1Password Export (.1pux) + 1Password (.1pux) exportieren + + + 1Password Vault (.opvault) + 1Password-Tresor (.opvault) + + + Bitwarden (.json) + Bitwarden (.json) + + + KeePass 1 Database (.kdb) + KeePass 1-Datenbank (.kdb) + + + Open OPVault + OPVault öffnen + + + Select import file + Importdatei auswählen + + + All files + Alle Dateien + + + Key files + Schlüsseldateien + + + Select key file + Schlüsseldatei auswählen + + + Comma Separated Values + Kommagetrennte Werte + + + 1Password Export + 1Password exportieren + + + Bitwarden JSON Export + Bitwarden JSON exportieren + + + 1Password Vault + 1Password-Tresor + + + KeePass1 Database + KeePass 1-Datenbank @@ -4155,7 +4428,7 @@ Sie können den DuckDuckGo-Dienst im Abschnitt "Sicherheit" der Anwend Kdbx3Reader Missing database headers - Fehlenden Datenbankheader + Fehlende Datenbankheader Unable to calculate database key @@ -4266,11 +4539,11 @@ Falls dies wiederholt passiert, dann könnte Ihre Datenbank beschädigt sein. Invalid inner header field length: field %1 - Ungültige Inner-Headerfeld-Länge: Feld %1 + Ungültige Inner-Headerfeldlänge: Feld %1 Invalid inner header data length: field %1, %2 expected, %3 found - Ungültige Inner-Headerfeld-Länge: Feld %1, %2 gefunden, %3 erwartet + Ungültige Inner-Headerfeldlänge: Feld %1, %2 gefunden, %3 erwartet Invalid inner header binary size @@ -4415,7 +4688,7 @@ You can import it by clicking on Database > 'Import KeePass 1 database…'. This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. Die ausgewählte Datei ist eine alte KeePass 1-Datenbank (.kdb). -Sie können sie importieren, indem Sie auf "Datenbank -> KeePass 1-Datenbank" klicken. +Sie können sie importieren, indem Sie auf „Datenbank → Importieren → KeePass 1-Datenbank“ klicken. Diese Migration ist nur in eine Richtung möglich. Sie werden die importierte Datenbank nicht mit der alten KeePassX 0.4-Version öffnen können. @@ -4555,7 +4828,7 @@ Zeile %2, Spalte %3 KeeAgentSettings Invalid KeeAgent settings file structure. - Ungültige KeeAgent-Einstellungs-Dateistruktur. + Ungültige Struktur der KeeAgent-Einstellungsdatei. Private key is an attachment but no attachments provided. @@ -4574,17 +4847,6 @@ Zeile %2, Spalte %3 Fehler beim Öffnen des privaten Schlüssels - - KeePass1OpenWidget - - Import KeePass1 Database - KeePass1-Datenbank importieren - - - Unable to open the database. - Fehler beim Öffnen der Datenbank. - - KeePass1Reader @@ -4747,7 +5009,7 @@ Falls dies wiederholt passiert, dann könnte Ihre Datenbank beschädigt sein.KeeShare Invalid sharing reference - Ungültige Freigabe-Referenz + Ungültige Freigabereferenz Inactive share %1 @@ -4825,7 +5087,7 @@ Falls dies wiederholt passiert, dann könnte Ihre Datenbank beschädigt sein. Note: Do NOT use a file that may change as that will prevent you from unlocking your database. - Hinweis: Verwenden Sie NICHT eine Datei, die sich ändern kann, da Sie dann Ihre Datenbank nicht mehr freischalten können. + Hinweis: Verwenden Sie KEINE Datei, die sich ändern kann, da Sie dann Ihre Datenbank nicht mehr freischalten können. Browse for key file @@ -4833,7 +5095,7 @@ Falls dies wiederholt passiert, dann könnte Ihre Datenbank beschädigt sein. Browse… - Durchsuchen... + Durchsuchen… Old key file format @@ -4859,7 +5121,7 @@ Message: %2 Change Key File - Schlüsseldatei bearbeiten + Schlüsseldatei ändern Remove Key File @@ -4867,7 +5129,7 @@ Message: %2 Key File set, click to change or remove - Schlüsseldatei festgelegt, klicken zum Ändern oder Entfernen + Schlüsseldatei festgelegt, zum Ändern oder Entfernen anklicken <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out.</p> @@ -4883,7 +5145,7 @@ Message: %2 Create Key File… - Schlüsseldatei erzeugen + Schlüsseldatei erzeugen… Error creating key file @@ -4912,7 +5174,7 @@ Message: %2 The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. Are you sure you want to continue with this file? - Die gewählte Schlüsseldatei sieht aus wie eine Passwort-Datenbank. Eine Schlüsseldatei darf sich niemals ändern, sonst verlieren Sie für immer den Zugriff auf Ihre Datenbank. + Die gewählte Schlüsseldatei sieht aus wie eine Passwortdatenbank. Eine Schlüsseldatei darf sich niemals ändern, sonst verlieren Sie für immer den Zugriff auf Ihre Datenbank. Wollen Sie wirklich mit dieser Datei fortfahren? @@ -4928,7 +5190,7 @@ Wollen Sie wirklich mit dieser Datei fortfahren? Could not register global shortcut - Globales Tastaturkürzel konnte nicht registriert werden + Globales Tastenkürzel konnte nicht registriert werden @@ -4941,13 +5203,9 @@ Wollen Sie wirklich mit dieser Datei fortfahren? &Recent Databases &Zuletzt verwendete Datenbanken - - &Import - Importieren - &Export - &Export + &Exportieren &Help @@ -4965,6 +5223,10 @@ Wollen Sie wirklich mit dieser Datei fortfahren? TOTP TOTP + + Tags + Tags + &Groups &Gruppen @@ -5009,34 +5271,18 @@ Wollen Sie wirklich mit dieser Datei fortfahren? &New Database… &Neue Datenbank… - - Create a new database - Neue Datenbank erstellen - &Merge From Database… Mit Datenbank &zusammenführen… - - Merge from another KDBX database - Mit einer anderen KDBX-Datenbank zusammenführen - &New Entry… &Neuer Eintrag… - - Add a new entry - Neuen Eintrag hinzufügen - &Edit Entry… Eintrag &bearbeiten… - - View or edit entry - Eintrag anzeigen oder bearbeiten - &Delete Entry… Eintrag &löschen… @@ -5045,10 +5291,6 @@ Wollen Sie wirklich mit dieser Datei fortfahren? &New Group… &Neue Gruppe… - - Add a new group - Neue Gruppe hinzufügen - &Edit Group… Gruppe &bearbeiten… @@ -5075,23 +5317,15 @@ Wollen Sie wirklich mit dieser Datei fortfahren? Database &Security… - Datenbank-&Sicherheit… + Datenbank&sicherheit… Database &Reports… - Datenbank-&Berichte … - - - Statistics, health check, etc. - Statistiken, Gesundheitscheck usw. + Datenbank&berichte… &Database Settings… - &Datenbank-Einstellungen… - - - Database settings - Datenbank-Einstellungen + &Datenbankeinstellungen… &Clone Entry… @@ -5101,34 +5335,18 @@ Wollen Sie wirklich mit dieser Datei fortfahren? Move u&p Nach &oben verschieben - - Move entry one step up - Eintrag einen Schritt nach oben verschieben - Move do&wn Nach &unten verschieben - - Move entry one step down - Eintrag einen Schritt nach unten verschieben - Copy &Username - &Benutzername kopieren - - - Copy username to clipboard - Benutzername in Zwischenablage kopieren + &Benutzernamen kopieren Copy &Password Passwort kopieren - - Copy password to clipboard - Passwort in die Zwischenablage kopieren - &Settings &Einstellungen @@ -5162,25 +5380,13 @@ Wollen Sie wirklich mit dieser Datei fortfahren? &Titel - Copy title to clipboard - Titel in Zwischenablage kopieren - - - &URL - &URL - - - Copy URL to clipboard - URL in Zwischenablage kopieren + Copy &URL + &URL kopieren &Notes &Notizen - - Copy notes to clipboard - Notizen in Zwischenablage kopieren - &CSV File… &CSV-Datei… @@ -5193,26 +5399,14 @@ Wollen Sie wirklich mit dieser Datei fortfahren? KeePass 1 Database… KeePass 1-Datenbank… - - Import a KeePass 1 database - KeePass 1-Datenbank importieren - 1Password Vault… 1Password-Tresor… - - Import a 1Password Vault - 1Password-Tresor importieren - CSV File… CSV-Datei… - - Import a CSV file - CSV-Datei importieren - Show TOTP TOTP anzeigen @@ -5229,6 +5423,10 @@ Wollen Sie wirklich mit dieser Datei fortfahren? Copy &TOTP &TOTP kopieren + + Copy Password and TOTP + Passwort und TOTP kopieren + E&mpty recycle bin Papierkorb l&eeren @@ -5253,10 +5451,6 @@ Wollen Sie wirklich mit dieser Datei fortfahren? &Online Help &Online-Hilfe - - Go to online documentation - Online-Dokumentation aufrufen - &User Guide &Benutzerhandbuch @@ -5267,11 +5461,11 @@ Wollen Sie wirklich mit dieser Datei fortfahren? &Keyboard Shortcuts - &Tastenkombinationen + &Tastenkürzel Save Database Backup… - Datenbank-Backup speichern + Datenbank-Backup speichern… Add key to SSH Agent @@ -5283,7 +5477,7 @@ Wollen Sie wirklich mit dieser Datei fortfahren? Compact Mode - Kompakter Modus + Kompaktmodus Automatic @@ -5315,15 +5509,19 @@ Wollen Sie wirklich mit dieser Datei fortfahren? Hide Usernames - Benutzernamen ausblenden + Benutzernamen verstecken Hide Passwords - Passwörter ausblenden + Passwörter verstecken Clone Group... - Gruppe klonen … + Gruppe klonen… + + + &XML File… + &XML-Datei… Clear history @@ -5357,6 +5555,10 @@ We recommend you use the AppImage available on our downloads page. WARNUNG: Ihre Qt-Version kann zum Absturz von KeePassXC mit einer Bildschirmtastatur führen. Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite verfügbar ist. + + No Tags + Keine Tags + Restore Entry(s) Eintrag wiederherstellenEinträge wiederherstellen @@ -5385,17 +5587,289 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v Quit KeePassXC KeePassXC beenden + + %1 Entry(s) + %1 Eintrag%1 Einträge + Please present or touch your YubiKey to continue… Bitte halten oder berühren Sie Ihren YubiKey, um fortzufahren… Restart Application? - Anwendung neustarten? + Anwendung neu starten? You must restart the application to apply this setting. Would you like to restart now? - Sie müssen die Anwendung neustarten, um diese Einstellung anzuwenden. Möchten Sie jetzt neustarten? + Sie müssen die Anwendung neu starten, um diese Einstellung anzuwenden. Möchten Sie jetzt neu starten? + + + Allow Screen Capture + Bildschirmaufnahmen erlauben + + + 1Password 1PUX... + 1Password 1PUX... + + + Import a 1Password 1PUX file + Importieren einer 1Password 1PUX-Datei + + + Import… + Importieren… + + + Passkeys… + Passkeys… + + + Import Passkey + Passkey importieren + + + Quit Application + Anwendung beenden + + + Open About Dialog + Öffne Über-Dialog + + + Open Database + Datenbank öffnen + + + Create Database + Datenbank erstellen + + + Merge From Database + Mit Datenbank zusammenführen + + + Create Entry + Eintrag erstellen + + + Edit Entry + Eintrag bearbeiten + + + Delete Entry + Eintrag löschen + + + Create Group + Gruppe erstellen + + + Edit Group + Gruppe bearbeiten + + + Delete Group + Gruppe löschen + + + Download All Favicons + Alle Favicons herunterladen + + + Sort Groups A-Z + Gruppen sortieren A-Z + + + Sort Groups Z-A + Gruppen sortieren Z-A + + + Save Database As + Datenbank speichern als + + + Show Database Security + Datenbanksicherheit anzeigen + + + Show Database Reports + Datenbankberichte anzeigen + + + Show Database Settings + Datenbankeinstellungen anzeigen + + + Show Passkeys + Passkeys anzeigen + + + Clone Entry + Eintrag klonen + + + Move Entry Up + Eintrag nach oben verschieben + + + Move Entry Down + Eintrag nach unten verschieben + + + Copy Username + Benutzernamen kopieren + + + Copy Password + Passwort kopieren + + + Show Application Settings + Anwendungseinstellungen anzeigen + + + Show Password Generator + Passwortgenerator anzeigen + + + Perform Auto-Type: {USERNAME} + Auto-Type ausführen: {BENUTZERNAME} + + + Perform Auto-Type: {USERNAME}{ENTER} + Auto-Type ausführen: {BENUTZERNAME}{ENTER} + + + Perform Auto-Type: {PASSWORD} + Auto-Type ausführen: {PASSWORT} + + + Perform Auto-Type: {PASSWORD}{ENTER} + Auto-Type ausführen: {PASSWORT}{ENTER} + + + Perform Auto-Type: {TOTP} + Auto-Type ausführen: {TOTP} + + + Copy Title + Titel kopieren + + + Copy URL + URL kopieren + + + Copy Notes + Notizen kopieren + + + Export to CSV + Als CSV exportieren + + + Export to HTML + Als HTML exportieren + + + Import KeePass1 Database + KeePass1-Datenbank importieren + + + Import 1Password Vault + 1Passwort-Tresor importieren + + + Import CSV File + CSV-Datei importieren + + + Show TOTP QR Code + TOTP-QR-Code anzeigen + + + Set up TOTP + TOTP einrichten + + + Empty Recycle Bin + Papierkorb leeren + + + Open Donation Website + Spenden-Webseite öffnen + + + Open Bug Report + Fehlerbericht erstellen + + + Open Online Documentation + Online-Dokumentation öffnen + + + Open Keyboard Shortcuts Guide + Anleitung für Tastaturkürzel öffnen + + + Save Database Backup + Datenbank-Backup speichern + + + SSH Agent: Add Key + SSH-Agent: Schlüssel hinzufügen + + + SSH Agent: Remove Key + SSH-Agent: Schlüssel entfernen + + + Toggle Compact Mode + Kompaktmodus umschalten + + + Set Theme: Automatic + Design festlegen: Automatisch + + + Set Theme: Light + Design festlegen: Hell + + + Set Theme: Dark + Design festlegen: Dunkel + + + Set Theme: Classic + Design festlegen: Klassisch + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + Als XML exportieren + + + Toggle Allow Screen Capture + @@ -5406,7 +5880,7 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v Edit database settings - Datenbank-Einstellungen bearbeiten + Datenbankeinstellungen bearbeiten Unlock database @@ -5454,26 +5928,6 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v Overwriting %1 [%2] Überschreibe %1 [%2] - - older entry merged from database "%1" - älterer Eintrag aus Datenbank "%1" zusammengeführt - - - Adding backup for older target %1 [%2] - Backup für älteres Ziel %1 wird hinzugefügt [%2] - - - Adding backup for older source %1 [%2] - Backup für ältere Quelle %1 wird hinzugefügt [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Älterer Zieleintrag wird auf neueren Quelleintrag angewendet %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Älterer Quelleintrag wird auf neueren Zieleintrag angewendet %1 [%2] - Synchronizing from newer source %1 [%2] Synchronisiere von neuerer Quelle %1 [%2] @@ -5511,7 +5965,7 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v NewDatabaseWizard Create a new KeePassXC database… - Neue KeePassXC-Datenbank erstellen … + Neue KeePassXC-Datenbank erstellen… Root @@ -5533,14 +5987,6 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Hier werden die Details der Verschlüsselung eingestellt. Sie können diese Details auch später in den Datenbank-Einstellungen ändern. - - Advanced Settings - Fortgeschrittene Einstellungen - - - Simple Settings - Grundeinstellungen - NewDatabaseWizardPageDatabaseKey @@ -5587,7 +6033,7 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v Could not register global shortcut - Globales Tastaturkürzel konnte nicht registriert werden + Globales Tastenkürzel konnte nicht registriert werden @@ -5602,7 +6048,7 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v Unable to init cipher for opdata01: %1 - Kann Cipher für opdata01 nicht initialisieren: %1 + Kann Verschlüsselung für opdata01 nicht initialisieren: %1 Unable to read all HMAC signature bytes @@ -5621,15 +6067,6 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v %1 Bytes Klartext erwartet, %2 gefunden - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Gelesene Datenbank ergab keine Instanz -%1 - - OpVaultReader @@ -5703,6 +6140,10 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v Unknown cipher: %1 Unbekannter Verschlüsselungsalgorithmus: %1 + + AES-256/GCM is currently not supported + AES-256/GCM wird momentan nicht unterstützt + Passphrase is required to decrypt this key Passphrase zum Entschlüsseln des Schlüssels benötigt @@ -5721,7 +6162,7 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v Failed to initialize cipher: %1 - Initialisierung der Chiffre fehlgeschlagen: %1 + Initialisierung der Verschlüsselung fehlgeschlagen: %1 Decryption failed: %1 @@ -5769,26 +6210,178 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Passwörter stimmen nicht überein + SSH Key Generator + SSH-Schlüsselgenerator - Passwords match so far - Passwörter stimmen überein + Type + Typ - Toggle Password (%1) - Passwort umschalten (%1) + Bits + Bits - Generate Password (%1) - Passwort erzeugen (%1) + Comment + Kommentar + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - Passkey-Export - Warning: Caps Lock enabled! - Warnung: Feststelltaste aktiviert! + Export the following Passkey entries. + Die folgenden Passkey-Einträge exportieren. + + + Filenames will be generated with title and .passkey file extension. + Dateinamen werden mit dem Titel und der Dateierweiterung .passkey generiert. + + + Export entries + Einträge exportieren + + + Export Selected + Auswahl exportieren + + + Cancel + Abbrechen + + + Export to folder + In Ordner exportieren + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: Passkey-Export + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + Datei „%1.passkey“ existiert bereits. +Möchten Sie sie überschreiben? + + + + Cannot open file + Datei kann nicht geöffnet werden + + + Cannot open file "%1" for writing. + Datei „%1“ kann nicht zum Schreiben geöffnet werden. + + + Cannot write to file + Datei kann nicht geschrieben werden + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - Passkey-Import + + + Username: %1 + Benutzername: %1 + + + Group + Gruppe + + + Database + Datenbank + + + Import Passkey + Passkey importieren + + + Import + Importieren + + + Cancel + Abbrechen + + + Import the following Passkey: + Den folgenden Passkey importieren: + + + Entry + Eintrag + + + Import the following Passkey to this entry: + Den folgenden Passkey in diesen Eintrag importieren: + + + Create new entry + Neuen Eintrag erstellen + + + Default Passkeys group (Imported Passkeys) + Standard-Passkeys-Gruppe (Importierte Passkeys) + + + Relying Party: %1 + Verlässliche Gegenseite: %1 + + + + PasskeyImporter + + Passkey file + Passkey-Datei + + + All files + Alle Dateien + + + Open Passkey file + Passkey-Datei öffnen + + + Cannot open file + Datei kann nicht geöffnet werden + + + Cannot open file "%1" for reading. + Datei „%1“ kann nicht zum Lesen geöffnet werden. + + + Cannot import Passkey + Passkey kann nicht importiert werden + + + Cannot import Passkey file "%1". Data is missing. + Passkey-Datei „%1“ kann nicht importiert werden. Es fehlen Daten. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + Passkey-Datei „%1“ kann nicht importiert werden. Privater Schlüssel fehlt oder ist beschädigt. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + Passkey-Datei „%1“ kann nicht importiert werden. +Die folgenden Daten fehlen: +%2 @@ -5799,7 +6392,7 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v Password field - Passwort-Feld + Passwortfeld Confirm password: @@ -5819,7 +6412,7 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v Change Password - Passwort bearbeiten + Passwort ändern Remove Password @@ -5907,7 +6500,7 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v Dashes and Slashes - Bindezeichen und Schrägstriche + Bindestriche und Schrägstriche Upper-case letters @@ -5971,7 +6564,7 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" - Ausgeschlossene Zeichen: "0", "1", "l", "I", "O", "|", "ï¹’" + Ausgeschlossene Zeichen: „0“, „1“, „l“, „I“, „O“, „|“, „﹒“ Exclude look-alike characters @@ -5995,7 +6588,7 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v Word Count: - Wort-Anzahl + Wortanzahl: Character Count: @@ -6053,13 +6646,37 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v Entropy: %1 bit Entropie: %1 bit + + Password Quality: %1 + Passwort-Qualität: %1 + + + Poor + Password quality + Schlecht + + + Weak + Password quality + Schwach + + + Good + Password quality + Gut + + + Excellent + Password quality + Ausgezeichnet + Confirm Delete Wordlist Löschen der Wortliste bestätigen Do you really want to delete the wordlist "%1"? - Wollen Sie die Wortliste "%1" wirklich löschen? + Wollen Sie die Wortliste „%1“ wirklich löschen? Failed to delete wordlist @@ -6084,7 +6701,7 @@ Wir empfehlen Ihnen, das AppImage zu verwenden, das auf unserer Download-Seite v Wordlist "%1" already exists as a custom wordlist. Do you want to overwrite it? - Die Wortliste "%1" existiert bereits als benutzerdefinierte Wortliste. + Die Wortliste „%1“ existiert bereits als benutzerdefinierte Wortliste. Möchten Sie diese überschreiben? @@ -6099,9 +6716,32 @@ Möchten Sie diese überschreiben? Special Characters Sonderzeichen + + + PasswordWidget - Password Quality: %1 - Passwort-Qualität: %1 + Passwords do not match + Passwörter stimmen nicht überein + + + Passwords match so far + Passwörter stimmen bisher überein + + + Toggle Password (%1) + Passwort umschalten (%1) + + + Generate Password (%1) + Passwort erzeugen (%1) + + + Warning: Caps Lock enabled! + Warnung: Feststelltaste aktiviert! + + + Quality: %1 + Qualität: %1 Poor @@ -6123,6 +6763,10 @@ Möchten Sie diese überschreiben? Password quality Ausgezeichnet + + Toggle password visibility using Control + H. Open the password generator using Control + G. + Sichtbarkeit des Passworts mit Strg+H umschalten. Passwortgenerator mit Strg+G öffnen. + PickcharsDialog @@ -6132,7 +6776,7 @@ Möchten Sie diese überschreiben? Select characters to type, navigate with arrow keys, Ctrl + S submits. - Zu tippende Zeichen auswählen, mit Pfeiltasten navigieren, Strg + S sendet. + Zu tippende Zeichen auswählen, mit Pfeiltasten navigieren, Strg+S bestätigt die Eingabe. Press &Tab between characters @@ -6177,6 +6821,10 @@ Möchten Sie diese überschreiben? Continue Fortsetzen + + Continue with weak password + Weiter mit schwachem Passwort + QObject @@ -6338,7 +6986,7 @@ Möchten Sie diese überschreiben? Check if any passwords have been publicly leaked. FILENAME must be the path of a file listing SHA-1 hashes of leaked passwords in HIBP format, as available from https://haveibeenpwned.com/Passwords. - Überprüfen, ob irgenwelche Passwörter in öffentlichen Datenlecks vorkommen. FILENAME muss der der Pfad der Datei sein, die SHA-1-Hashes der Passwörter im HIBP-Format enthält, wie zu finden unter https://haveibeenpwned.com/Passwords. + Überprüfen Sie, ob Passwörter öffentlich bekannt geworden sind. FILENAME muss der Pfad zu der Datei sein, die SHA-1-Hashes der Passwörter im HIBP-Format enthält, wie sie unter https://haveibeenpwned.com/Passwords zu finden sind. FILENAME @@ -6354,7 +7002,7 @@ Möchten Sie diese überschreiben? Analyze passwords for weaknesses and problems. - Passw‭örter auf Schwächen und Probleme prüfen. + Passwörter auf Schwächen und Probleme prüfen. Cannot find HIBP file: %1 @@ -6362,7 +7010,7 @@ Möchten Sie diese überschreiben? Evaluating database entries using okon… - Auswerten von Datenbankeinträgen mit okon ... + Auswerten von Datenbankeinträgen mit okon… Failed to open HIBP file %1: %2 @@ -6370,15 +7018,15 @@ Möchten Sie diese überschreiben? Evaluating database entries against HIBP file, this will take a while… - Datenbankeinträge gegen HIBP-Datei auswerten, das dauert eine Weile ... + Datenbankeinträge gegen HIBP-Datei auswerten, das dauert eine Weile… Password for '%1' has been leaked %2 time(s)! - Passwort für '%1' wurde %2 Mal in Datenlecks gefunden!Passwort für '%1' wurde %2 Mal in Datenlecks gefunden! + Passwort für '%1' wurde einmal in Datenlecks gefunden!Passwort für '%1' wurde %2-mal in Datenlecks gefunden! Password for '%1' has been leaked! - Passwörter für '%1' wurde in Datenlecks gefunden! + Passwort für '%1' wurde in Datenlecks gefunden! Export an attachment of an entry. @@ -6463,11 +7111,11 @@ Möchten Sie diese überschreiben? Copy the given attribute to the clipboard. Defaults to "password" if not specified. Don't translate "password", it refers to the attribute. - Angegebene Eigenschaft in die Zwischenablage kopieren. Voreinstellung ist "Passwort". + Angegebene Eigenschaft in die Zwischenablage kopieren. Voreinstellung ist „Passwort“. Copy the current TOTP to the clipboard (equivalent to "-a totp"). - Aktuelles TOTP in die Zwischenablage kopieren (äquivalent zu "-a totp"). + Aktuelles TOTP in die Zwischenablage kopieren (äquivalent zu „-a totp“). Must match only one entry, otherwise a list of possible matches is shown. @@ -6516,11 +7164,11 @@ Möchten Sie diese überschreiben? Attribute "%1" not found. - Eigenschaft "%1" nicht gefunden. + Eigenschaft „%1“ nicht gefunden. Entry's "%1" attribute copied to the clipboard! - Eigenschaft "%1" des Eintrags wurde in die Zwischenablage kopiert! + Eigenschaft „%1“ des Eintrags wurde in die Zwischenablage kopiert! Clearing the clipboard in %1 second(s)... @@ -6552,11 +7200,11 @@ Möchten Sie diese überschreiben? Deactivate password key for the database. - Passwort-Schlüssel für die Datenbank deaktivieren. + Passwortschlüssel für die Datenbank deaktivieren. Yubikey slot and optional serial used to access the database (e.g., 1:7370001). - Yubikey-Slot und optional Seriennummer zum Zugriff auf die Datenbank (z.B. 1:7370001). + YubiKey-Slot und optional Seriennummer zum Zugriff auf die Datenbank (z. B. 1:7370001). slot[:serial] @@ -6570,6 +7218,10 @@ Möchten Sie diese überschreiben? Too many arguments provided. Zu viele Argumente angegeben. + + Path of the database. + Pfad der Datenbank. + Target decryption time in MS for the database. Ziel-Entschlüsselungszeit in ms für die Datenbank. @@ -6578,6 +7230,12 @@ Möchten Sie diese überschreiben? time Zeit + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Legt die Schlüsseldatei für die Datenbank fest. +Diese Option ist veraltet, verwenden Sie stattdessen --set-key-file. + Set the key file for the database. Schlüsseldatei für die Datenbank festlegen. @@ -6590,10 +7248,6 @@ Möchten Sie diese überschreiben? Create a new database. Neue Datenbank erstellen. - - Path of the database. - Pfad der Datenbank. - Invalid decryption time %1. Ungültige Entschlüsselungszeit %1. @@ -6616,7 +7270,7 @@ Möchten Sie diese überschreiben? Benchmarking key derivation function for %1ms delay. - Messe Schlüssel-Ableitungsfunktion für %1ms Verzögerung. + Schlüssel-Ableitungsfunktion für %1 ms Verzögerung messen. Setting %1 rounds for key derivation function. @@ -6638,6 +7292,158 @@ Möchten Sie diese überschreiben? Successfully created new database. Datenbank erfolgreich erstellt. + + Unset the password for the database. + Löscht das Passwort für die Datenbank. + + + Unset the key file for the database. + Löscht die Schlüsseldatei für die Datenbank. + + + Edit a database. + Eine Datenbank bearbeiten. + + + Cannot use %1 and %2 at the same time. + %1 und %2 können nicht gleichzeitig verwendet werden. + + + Could not change the database key. + Datenbankschlüssel konnte nicht geändert werden. + + + Database was not modified. + Datenbank wurde nicht geändert. + + + Writing the database failed: %1 + Schreiben der Datenbank fehlgeschlagen: %1 + + + Successfully edited the database. + Datenbank wurde erfolgreich bearbeitet. + + + Cannot remove password: The database does not have a password. + Passwort kann nicht entfernt werden: Die Datenbank hat kein Passwort. + + + Cannot remove file key: The database does not have a file key. + Der Dateischlüssel kann nicht entfernt werden: Die Datenbank hat keinen Dateischlüssel. + + + Loading the new key file failed: %1 + Laden der neuen Schlüsseldatei fehlgeschlagen: %1 + + + Found unexpected Key type %1 + Unerwarteter Schlüsseltyp %1 gefunden + + + Cannot remove all the keys from a database. + Es können nicht alle Schlüssel aus einer Datenbank entfernt werden. + + + Show a database's information. + Datenbankinformationen anzeigen. + + + UUID: + UUID: + + + Name: + Name: + + + Description: + Beschreibung: + + + Cipher: + Verschlüsselungsalgorithmus: + + + KDF: + KDF: + + + Recycle bin is enabled. + Papierkorb ist aktiviert. + + + Recycle bin is not enabled. + Papierkorb ist nicht aktiviert. + + + Location + Speicherort + + + Database created + Datenbank erstellt + + + Last saved + Zuletzt gespeichert + + + Unsaved changes + Ungespeicherte Änderungen + + + yes + ja + + + no + nein + + + Number of groups + Anzahl der Gruppen + + + Number of entries + Anzahl der Einträge + + + Number of expired entries + Anzahl der abgelaufenen Einträge + + + Unique passwords + Eindeutige Passwörter + + + Non-unique passwords + Nicht eindeutige Passwörter + + + Maximum password reuse + Maximale Wiederverwendung eines Passworts + + + Number of short passwords + Anzahl der kurzen Passwörter + + + Number of weak passwords + Anzahl der schwachen Passwörter + + + Entries excluded from reports + Von Berichten ausgeschlossene Einträge + + + Average password length + Durchschnittliche Passwortlänge + + + %1 characters + %1 Zeichen + Word count for the diceware passphrase. Wortanzahl für die Diceware-Passphrase. @@ -6689,10 +7495,6 @@ Möchten Sie diese überschreiben? Enter new password for entry: Neues Passwort für Eintrag eingeben: - - Writing the database failed: %1 - Schreiben der Datenbank fehlgeschlagen: %1 - Successfully edited entry %1. Eintrag %1 erfolgreich bearbeitet. @@ -6811,7 +7613,7 @@ Möchten Sie diese überschreiben? Exit interactive mode. - Verlasse interaktiven Modus. + Interaktiven Modus beenden. Format to use when exporting. Available choices are 'xml' or 'csv'. Defaults to 'xml'. @@ -6823,7 +7625,7 @@ Möchten Sie diese überschreiben? Unable to export database to XML: %1 - Fehler beim Exportieren der Datenbank nach XML: %1 + Fehler beim Exportieren der Datenbank als XML: %1 Unsupported format %1 @@ -6903,7 +7705,7 @@ Möchten Sie diese überschreiben? Path of the XML database export. - Pfad des XML-Datenbank-Exports. + Pfad des XML-Datenbankexports. Path of the new database. @@ -6917,106 +7719,6 @@ Möchten Sie diese überschreiben? Successfully imported database. Datenbank erfolgreich importiert. - - Show a database's information. - Datenbankinformationen anzeigen. - - - UUID: - UUID: - - - Name: - Name: - - - Description: - Beschreibung: - - - Cipher: - Verschlüsselungsalgorithmus: - - - KDF: - KDF: - - - Recycle bin is enabled. - Papierkorb ist aktiviert. - - - Recycle bin is not enabled. - Papierkorb ist nicht aktiviert. - - - Location - Speicherort - - - Database created - Datenbank erstellt - - - Last saved - Zuletzt gespeichert - - - Unsaved changes - Ungespeicherte Änderungen - - - yes - ja - - - no - nein - - - Number of groups - Anzahl der Gruppen - - - Number of entries - Anzahl der Einträge - - - Number of expired entries - Anzahl der abgelaufenen Einträge - - - Unique passwords - Eindeutige Passwörter - - - Non-unique passwords - Nicht eindeutige Passwörter - - - Maximum password reuse - Maximale Wiederverwendung eines Passworts - - - Number of short passwords - Anzahl der kurzen Passwörter - - - Number of weak passwords - Anzahl der schwachen Passwörter - - - Entries excluded from reports - Von Berichten ausgeschlossene Einträge - - - Average password length - Durchschnittliche Passwortlänge - - - %1 characters - %1 Zeichen - Unknown command %1 Unbekannter Befehl %1 @@ -7073,7 +7775,7 @@ Verfügbare Kommandos: Deactivate password key for the database to merge from. - Passwort-Schlüssel für die Quell-Datenbank der Zusammenführung deaktivieren. + Passwortschlüssel für die Quelldatenbank der Zusammenführung deaktivieren. Only print the changes detected by the merge operation. @@ -7081,7 +7783,7 @@ Verfügbare Kommandos: Yubikey slot for the second database. - Yubikey-Slot für die zweite Datenbank. + YubiKey-Slot für die zweite Datenbank. slot @@ -7189,6 +7891,10 @@ Verfügbare Kommandos: Show the protected attributes in clear text. Geschützte Eigenschaften im Klartext anzeigen. + + Show all the attributes of the entry. + Alle Eigenschaften des Eintrags anzeigen. + Show the attachments of the entry. Anhänge des Eintrags anzeigen. @@ -7223,15 +7929,15 @@ Verfügbare Kommandos: Failed to open database file %1: not found - Fehler beim Öffnen der Datenbank-Datei %1: Nicht gefunden + Fehler beim Öffnen der Datenbankdatei %1: Nicht gefunden Failed to open database file %1: not a plain file - Fehler beim Öffnen der Datenbank-Datei %1: Keine normale Datei + Fehler beim Öffnen der Datenbankdatei %1: Keine normale Datei Failed to open database file %1: not readable - Fehler beim Öffnen der Datenbank-Datei %1: Nicht lesbar + Fehler beim Öffnen der Datenbankdatei %1: Nicht lesbar Enter password to unlock %1: @@ -7259,6 +7965,10 @@ Bitte erwägen Sie, eine neue Schlüsseldatei zu erzeugen. Invalid YubiKey serial %1 Ungültige YubiKey-Seriennummer %1 + + Please present or touch your YubiKey to continue. + Bitte halten oder berühren Sie Ihren YubiKey, um fortzufahren. + Enter password to encrypt database (optional): Passwort eingeben, um Datenbank zu verschlüsseln (optional): @@ -7339,7 +8049,7 @@ Bitte erwägen Sie, eine neue Schlüsseldatei zu erzeugen. Password expiry was %1 - Passwort-Ablauf war %1 + Passwortablauf war %1 Password expires on %1 @@ -7363,7 +8073,7 @@ Bitte erwägen Sie, eine neue Schlüsseldatei zu erzeugen. Build Type: %1 - Build Typ: %1 + Build-Typ: %1 Revision: %1 @@ -7443,11 +8153,11 @@ Kernel: %3 %4 %1 minute(s) - %1 Minute%1 Minute(n) + %1 Minute%1 Minuten - Botan library must be at least 2.11.x, found %1.%2.%3 - Botan-Bibliothek muss mindestens 2.11.x sein, es wurde %1.%2.%3 gefunden + Botan library must be at least %1, found %2.%3.%4 + Botan-Bibliothek muss mindestens %1 sein, gefunden %2.%3.%4 Cryptographic libraries: @@ -7511,15 +8221,15 @@ Kernel: %3 %4 AES 256-bit - AES 256-bit + AES 256-Bit Twofish 256-bit - Twofish 256-bit + Twofish 256-Bit ChaCha20 256-bit - ChaCha20 256-bit + ChaCha20 256-Bit Argon2d (KDBX 4 – recommended) @@ -7547,7 +8257,7 @@ Kernel: %3 %4 Clearing the clipboard in %1 second(s)… - Zwischenablage wird in %1 Sekunde(n) gelöscht...Zwischenablage wird in %1 Sekunde(n) gelöscht ... + Zwischenablage wird in %1 Sekunde gelöscht…Zwischenablage wird in %1 Sekunden gelöscht… Group @@ -7609,7 +8319,7 @@ Kernel: %3 %4 Do you really want to move entry "%1" to the recycle bin? - Wollen Sie den Eintrag "%1" wirklich in den Papierkorb verschieben? + Wollen Sie den Eintrag „%1“ wirklich in den Papierkorb verschieben? Do you really want to move %n entry(s) to the recycle bin? @@ -7625,7 +8335,7 @@ Kernel: %3 %4 Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? - Eintrag "%1" hat %2 Referenz. Möchten Sie die Referenz mit Werten überschreiben, diesen Eintrag überspringen oder trotzdem löschen?Eintrag "%1" hat %2 Referenzen. Möchten Sie die Referenzen mit Werten überschreiben, diesen Eintrag überspringen oder trotzdem löschen? + Eintrag „%1“ hat %2 Referenz. Möchten Sie die Referenz mit Werten überschreiben, diesen Eintrag überspringen oder trotzdem löschen?Eintrag „%1“ hat %2 Referenzen. Möchten Sie die Referenzen mit Werten überschreiben, diesen Eintrag überspringen oder trotzdem löschen? User name @@ -7687,10 +8397,6 @@ Kernel: %3 %4 read password of the database from stdin Passwort der Datenbank von stdin lesen - - allow app screen recordering and screenshots - Bildschirmaufnahmen und Screenshots zulassen. - Locked databases. Gesperrte Datenbanken. @@ -7703,6 +8409,10 @@ Kernel: %3 %4 Another instance of KeePassXC is already running. Eine andere KeePassXC-Instanz läuft bereits. + + KeePassXC is not running. No open database to lock + KeePassXC läuft im Moment nicht. Keine offene Datenbank zum Sperren + Fatal error while testing the cryptographic functions. Kritischer Fehler beim Testen der kryptografischen Funktionen. @@ -7711,10 +8421,6 @@ Kernel: %3 %4 KeePassXC - Error KeePassXC - Fehler - - Warning: Failed to prevent screenshots on a top level window! - Warnung: Es ist nicht gelungen, Screenshots auf einem Fenster der obersten Ebene zu verhindern! - Database password: Datenbank-Passwort: @@ -7738,8 +8444,222 @@ Kernel: %3 %4 Anmeldung mit Windows Hello fehlgeschlagen. - Please present or touch your YubiKey to continue. - Bitte halten oder berühren Sie Ihren YubiKey, um fortzufahren. + Warning: Failed to block screenshot capture on a top-level window. + Warnung: Die Bildschirmaufnahme in einem Fenster der obersten Ebene konnte nicht blockiert werden. + + + Invalid Cipher + Ungültige Verschlüsselung + + + Invalid KDF + Ungültige KDF + + + Access to all entries is denied + Zugriff auf alle Einträge wird verweigert + + + allow screenshots and app recording (Windows/macOS) + Bildschirmfotos und App-Aufnahmen erlauben (Windows/macOS) + + + Enter Shortcut + Tastenkürzel eingeben + + + Action + Aktion + + + Shortcuts + Tastenkürzel + + + Attestation not supported + Beglaubigung nicht unterstützt + + + Credential is excluded + Anmeldedaten sind ausgeschlossen + + + Passkeys request canceled + Anfrage für Passkeys abgebrochen + + + Invalid user verification + Ungültige Benutzerverifikation + + + Empty public key + Leerer öffentlicher Schlüssel + + + Invalid URL provided + Ungültige URL angegeben + + + Passkeys + Passkeys + + + AES initialization failed + AES-Initialisierung fehlgeschlagen + + + AES encrypt failed + AES-Verschlüsselung fehlgeschlagen + + + Failed to store in Linux Keyring + Speichern im Linux-Schlüsselbund fehlgeschlagen + + + Polkit returned an error: %1 + Polkit hat einen Fehler zurückgegeben: %1 + + + Could not locate key in keyring + Schlüssel im Schlüsselbund konnte nicht gefunden werden + + + Could not read key in keyring + Schlüssel im Schlüsselbund konnte nicht gelesen werden + + + AES decrypt failed + AES-Entschlüsselung fehlgeschlagen + + + No Polkit authentication agent was available + Es war kein Polkit-Authentifizierungsagent verfügbar + + + Polkit authorization failed + Polkit-Autorisierung fehlgeschlagen + + + No Quick Unlock provider is available + Es ist kein Quick Unlock-Anbieter verfügbar + + + Failed to init KeePassXC crypto. + KeePassXC-Krypto konnte nicht gestartet werden. + + + Failed to encrypt key data. + Verschlüsselung der Schlüsseldaten fehlgeschlagen. + + + Failed to get Windows Hello credential. + Windows Hello-Anmeldedaten konnten nicht abgerufen werden. + + + Failed to decrypt key data. + Entschlüsselung der Schlüsseldaten fehlgeschlagen. + + + Favorite + Tag for favorite entries + Favorit + + + File does not exist. + Datei existiert nicht. + + + Cannot open file: %1 + Datei kann nicht geöffnet werden: %1 + + + Cannot parse file: %1 at position %2 + Datei kann nicht verarbeitet werden: %1 an Position %2 + + + Failed to decrypt json file: %1 + JSON-Datei konnte nicht entschlüsselt werden: %1 + + + Invalid encKeyValidation field + Ungültiges encKeyValidation-Feld + + + Invalid cipher list within encKeyValidation field + Ungültige Verschlüsselungsliste im Feld encKeyValidation + + + Wrong password + Falsches Passwort + + + Invalid encrypted data field + Ungültiges verschlüsseltes Datenfeld + + + Invalid cipher list within encrypted data field + Ungültige Verschlüsselungsliste im verschlüsselten Datenfeld + + + Cannot initialize cipher + Kann Verschlüsselungsalgorithmus nicht initialisieren + + + Cannot decrypt data + Daten können nicht entschlüsselt werden + + + Bitwarden Import + Bitwarden importieren + + + Archived + Tag for archived entries + Archiviert + + + Invalid 1PUX file format: Not a valid ZIP file. + Ungültiges 1PUX-Dateiformat: Keine gültige ZIP-Datei. + + + Invalid 1PUX file format: Missing export.data + Ungültiges 1PUX-Dateiformat: Fehlende export.data + + + 1Password Import + 1Password importieren + + + Origin is empty or not allowed + Ursprung ist leer oder nicht erlaubt + + + Effective domain is not a valid domain + Tatsächliche Domain ist keine gültige Domain + + + Origin and RP ID do not match + Ursprung und RP-ID stimmen nicht überein + + + No supported algorithms were provided + Keine unterstützten Algorithmen wurden bereitgestellt + + + Wait for timer to expire + Warten, bis der Timer abgelaufen ist + + + Unknown Passkeys error + Unbekannter Passkey-Fehler + + + Challenge is shorter than required minimum length + Challenge ist kürzer als die erforderliche Mindestlänge + + + user.id does not match the required length + user.id entspricht nicht der erforderlichen Länge @@ -7778,18 +8698,6 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - Abgelaufene Einträge aus dem Bericht ausschließen - - - Show only entries which have URL set - Nur Einträge anzeigen, für die eine URL festgelegt wurde - - - Show only entries which have browser settings in custom data - Nur Einträge anzeigen, die Browsereinstellungen in den benutzerdefinierten Daten haben - Double-click entries to edit. Einträge zum Bearbeiten doppelklicken @@ -7824,7 +8732,7 @@ Kernel: %3 %4 Please wait, browser statistics is being calculated… - Bitte warten Sie, die Browser-Statistik wird gerade berechnet … + Bitte warten Sie, die Browserstatistik wird berechnet… No entries with a URL, or none has browser extension settings saved. @@ -7844,27 +8752,35 @@ Kernel: %3 %4 Edit Entry… - Eintrag bearbeiten ... + Eintrag bearbeiten… Delete Entry(s)… - Eintrag löschen...Einträge löschen ... + Eintrag löschen…Einträge löschen… Exclude from reports Von Berichten ausschließen + + Only show entries that have a URL + Nur Einträge anzeigen, die eine URL enthalten + + + Only show entries that have been explicitly allowed or denied + Nur Einträge anzeigen, die explizit erlaubt oder verweigert wurden + + + Show expired entries + Abgelaufene Einträge anzeigen + + + (Expired) + (abgelaufen) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - Abgelaufene Einträge aus dem Bericht ausschließen - - - Also show entries that have been excluded from reports - Auch Einträge zeigen, die von Berichten ausgeschlossen wurden - Hover over reason to show additional details. Double-click entries to edit. Für weitere Informationen mit der Maus über den Grund fahren. Doppelklick auf Einträge zum Bearbeiten. @@ -7876,7 +8792,7 @@ Kernel: %3 %4 Bad — password must be changed - Sehr schlecht —Passwort muss geändert werden + Sehr schlecht — Passwort muss geändert werden Poor @@ -7894,7 +8810,7 @@ Kernel: %3 %4 Weak — consider changing the password - Schwach — Passwortänderung sollte erwägt werden + Schwach — Passwortänderung sollte erwogen werden (Excluded) @@ -7906,7 +8822,7 @@ Kernel: %3 %4 Please wait, health data is being calculated… - Bitte warten, der Gesundheitszustand wird berechnet ... + Bitte warten Sie, der Gesundheitszustand wird berechnet… Congratulations, everything is healthy! @@ -7930,22 +8846,34 @@ Kernel: %3 %4 Edit Entry… - Eintrag bearbeiten ... + Eintrag bearbeiten… Delete Entry(s)… - Eintrag löschen...Einträge löschen ... + Eintrag löschen…Einträge löschen… Exclude from reports Von Berichten ausschließen + + Show expired entries + Abgelaufene Einträge anzeigen + + + Show entries that have been excluded from reports + Einträge anzeigen, die von Berichten ausgeschlossen wurden + + + (Expired) + (abgelaufen) + ReportsWidgetHibp CAUTION: This report requires sending information to the Have I Been Pwned online service (https://haveibeenpwned.com). If you proceed, your database passwords will be cryptographically hashed and the first five characters of those hashes will be sent securely to this service. Your database remains secure and cannot be reconstituted from this information. However, the number of passwords you send and your IP address will be exposed to this service. - ACHTUNG: Dieser Bericht erfordert, dass Informationen an den "Have I Been Pwned"-Onlinedienst (https://haveibeenpwned.com) gesendet werden. Wenn Sie fortfahren, werden Ihre Datenbank-Passwörter kryptografisch gehasht, und die ersten fünf Zeichen dieser Hashes werden sicher an diesen Dienst übertragen. Ihre Datenbank bleibt sicher und kann nicht aus diesen Informationen rekonstruiert werden. Jedoch werden die Anzahl der gesendeten Passwörter und Ihre IP-Adresse dem Dienst offengelegt. + ACHTUNG: Dieser Bericht erfordert das Senden von Informationen an den Onlinedienst „Have I Been Pwned“ (https://haveibeenpwned.com). Wenn Sie fortfahren, werden Ihre Datenbank-Passwörter kryptografisch gehasht, und die ersten fünf Zeichen dieser Hashes werden sicher an diesen Dienst gesendet. Ihre Datenbank bleibt sicher und kann nicht aus diesen Informationen rekonstruiert werden. Die Anzahl der von Ihnen gesendeten Passwörter und Ihre IP-Adresse werden jedoch an diesen Dienst weitergegeben. Perform Online Analysis @@ -8025,17 +8953,76 @@ Kernel: %3 %4 Edit Entry… - Eintrag bearbeiten ... + Eintrag bearbeiten… Delete Entry(s)… - Eintrag löschen...Einträge löschen ... + Eintrag löschen…Einträge löschen… Exclude from reports Von Berichten ausschließen + + ReportsWidgetPasskeys + + Export + Export + + + Import + Importieren + + + List of entry URLs + Liste der Eintrags-URLs + + + Please wait, list of entries with Passkeys is being updated… + Bitte warten Sie, die Liste der Einträge mit Passkeys wird gerade aktualisiert… + + + No entries with Passkeys. + Keine Einträge mit Passkeys. + + + Title + Titel + + + Path + Pfad + + + Username + Benutzername + + + URLs + URLs + + + Edit Entry… + Eintrag bearbeiten… + + + Delete Entry(s)… + Eintrag löschen…Einträge löschen… + + + Relying Party + Verlässliche Gegenseite + + + Show expired entries + Abgelaufene Einträge anzeigen + + + (Expired) + (abgelaufen) + + ReportsWidgetStatistics @@ -8052,7 +9039,7 @@ Kernel: %3 %4 Please wait, database statistics are being calculated… - Bitte warten Sie, die Datenbankstatistik wird berechnet ... + Bitte warten Sie, die Datenbankstatistik wird berechnet… Database name @@ -8140,7 +9127,7 @@ Kernel: %3 %4 Recommend using long, randomized passwords with a rating of 'good' or 'excellent'. - Die Verwendung langer, zufällig erzeugter Passwörter mit der Bewertung "gut" oder "hervorragend" wird empfohlen. + Die Verwendung langer, zufällig erzeugter Passwörter mit der Bewertung „gut“ oder „hervorragend“ wird empfohlen. Entries excluded from reports @@ -8148,7 +9135,7 @@ Kernel: %3 %4 Excluding entries from reports, e. g. because they are known to have a poor password, isn't necessarily a problem but you should keep an eye on them. - Das Ausschließen von Einträgen aus Berichten, z.B. weil sie bekannterweise schlechte Passwörter haben, ist nicht unbedingt ein Problem, aber Sie sollten ein Auge auf sie haben. + Das Ausschließen von Einträgen aus Berichten, z. B., weil sie bekannterweise schlechte Passwörter haben, ist nicht unbedingt ein Problem, aber Sie sollten ein Auge auf sie haben. Average password length @@ -8179,7 +9166,7 @@ Kernel: %3 %4 Key identity ownership conflict. Refusing to add. - Konflikt beim Schlüssel-Identitäts-Besitz. Füge nicht hinzu. + Konflikt bei der Schlüsselidentität. Hinzufügen verweigern. Agent refused this identity. Possible reasons include: @@ -8250,7 +9237,7 @@ Kernel: %3 %4 match anything - Entspreche irgendwas + zu allem passen match one @@ -8275,6 +9262,10 @@ Kernel: %3 %4 Search Help Hilfe durchsuchen + + Save Search + Suche speichern + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8343,7 +9334,7 @@ Kernel: %3 %4 <html><head/><body><p>If enabled, any attempt to read a password must be confirmed. Otherwise, clients can read passwords without confirmation when the database is unlocked.</p><p>This option only covers the access to the password of an entry. Clients can always enumerate the items of exposed databases and query their attributes.</p></body></html> - <html><head/><body><p>Wenn aktiviert, muss jeder Versuch, ein Passwort zu lesen, bestätigt werden. Andernfalls können Clients Passwörter ohne Bestätigung lesen, wenn die Datenbank entsperrt ist.</p><p>Diese Option deckt nur den Zugriff auf das Passwort eines Eintrags ab. Clients können immer die Einträge der freigegebenen Datenbanken und deren Attribute abfragen.</p></body></html> + <html><head/><body><p>Wenn aktiviert, muss jeder Versuch, ein Passwort zu lesen, bestätigt werden. Anderenfalls können Clients Passwörter ohne Bestätigung lesen, wenn die Datenbank entsperrt ist.</p><p>Diese Option deckt nur den Zugriff auf das Passwort eines Eintrags ab. Clients können immer die Einträge der freigegebenen Datenbanken und deren Attribute abfragen.</p></body></html> Confirm when passwords are retrieved by clients @@ -8371,8 +9362,8 @@ Kernel: %3 %4 crash the client if the database can not be unlocked within a certain timeout. (Usually 25s, but may be a different value set in applications.)</p></body></html> - <html><head/><body><p>Dies verbessert Kompatibilität mit bestimmten Anwendungen, - die nach einem Passwort suchen, ohne vorher die Datenbank zu entsperren.Dabei + <html><head/><body><p>Dies verbessert die Kompatibilität mit bestimmten Anwendungen, + die nach einem Passwort suchen, ohne vorher die Datenbank zu entsperren.</p><p>Dabei kann allerdings der Client abstürzen, wenn die Datenbank nach einer bestimmten Zeit nicht entsperrt wurde (normalerweise 25 Sekunden, aber ein anderer Wert kann in den Anwendungen gesetzt sein).</p></body></html> @@ -8450,7 +9441,7 @@ Kernel: %3 %4 Signer name field - Unterzeichner-Namensfeld + Feld für Unterzeichnernamen Fingerprint @@ -8506,11 +9497,38 @@ Kernel: %3 %4 Export in %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + Doppelklick auf eine Aktion, um das Tastenkürzel zu ändern + + + Shortcut Conflict + Tastenkürzelkonflickt + + + Filter... + Filtern... + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + Tastenkürzel %1 steht im Konflikt mit '%2'. Tastenkürzel überschreiben? + + + Reset Shortcuts + Tastenkürzel zurücksetzen + + TagModel - All - Alle + Clear Search + Suche löschen + + + All Entries + Alle Einträge Expired @@ -8521,6 +9539,25 @@ Kernel: %3 %4 Schwache Passwörter + + TagView + + Remove Search + Suche entfernen + + + Remove Tag + Tag entfernen + + + Confirm Remove Tag + Tag entfernen bestätigen + + + Remove tag "%1" from all entries in this database? + Tag „%1“ aus allen Einträgen in dieser Datenbank entfernen? + + TotpDialog @@ -8613,7 +9650,7 @@ Kernel: %3 %4 digits - Ziffern + Ziffern Invalid TOTP Secret @@ -8622,7 +9659,8 @@ Kernel: %3 %4 You have entered an invalid secret key. The key must be in Base32 format. Example: JBSWY3DPEHPK3PXP - Sie haben einen ungültigen geheimen Schlüssel angegeben. Der Schlüssel muss im Base32-Format sein. Beispiel: JBSWY3DPEHPK3PXP + Sie haben einen ungültigen geheimen Schlüssel angegeben. Der Schlüssel muss im Base32-Format sein. +Beispiel: JBSWY3DPEHPK3PXP Confirm Remove TOTP Settings @@ -8648,7 +9686,7 @@ Example: JBSWY3DPEHPK3PXP Checking for updates… - Nach Updates suchen ... + Nach Updates suchen… Close @@ -8664,11 +9702,11 @@ Example: JBSWY3DPEHPK3PXP <strong>A new version is available.</strong><br/>KeePassXC %1 can be <a href="https://keepassxc.org/download/">downloaded here</a>. - <strong>Eine neue Version ist verfügbar.</strong><br/>KeePassXC %1 kann <a href="https://keepassxc.org/download/">hier heruntergeladen werden</a>. + <strong>Eine neue Version ist verfügbar.</strong><br/>KeePassXC %1 kann <a href="https://keepassxc.org/download/">hier heruntergeladen</a> werden. You have the latest version of KeePassXC - Sie haben die neueste Version von KeePassXC + Sie haben die neueste Version von KeePassXC. @@ -8677,26 +9715,6 @@ Example: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Speichern Sie Ihre Passwörter sicher in einer KeePassXC-Datenbank - - Create new database - Neue Datenbank erstellen - - - Open existing database - Existierende Datenbank öffnen - - - Import from KeePass 1 - Aus KeePass 1 importieren - - - Import from 1Password - Von 1Password importieren - - - Import from CSV - Aus CSV importieren - Recent databases Zuletzt verwendete Datenbanken @@ -8709,6 +9727,18 @@ Example: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Willkommen bei KeePassXC %1 + + Create Database + Datenbank erstellen + + + Open Database + Datenbank öffnen + + + Import File + Datei importieren + WinUtils @@ -8722,34 +9752,11 @@ Example: JBSWY3DPEHPK3PXP Could not register global shortcut - Globales Tastaturkürzel konnte nicht registriert werden - - - - WindowsHello - - Failed to init KeePassXC crypto. - KeePassXC-Krypto konnte nicht gestartet werden. - - - Failed to encrypt key data. - Verschlüsselung der Schlüsseldaten fehlgeschlagen. - - - Failed to get Windows Hello credential. - Windows Hello-Anmeldedaten konnten nicht abgerufen werden. - - - Failed to decrypt key data. - Entschlüsselung der Schlüsseldaten fehlgeschlagen. + Globales Tastenkürzel konnte nicht registriert werden YubiKey - - %1 No interface, slot %2 - %1 Keine Schnitstelle, Slot %2 - General: Allgemein: @@ -8761,14 +9768,6 @@ Example: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - Hardware-Token aktualisieren - - - Refresh - Neu laden - Hardware key slot selection Auswahl des Hardwareschlüssel-Slots @@ -8799,11 +9798,7 @@ Example: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove - Challenge-Response eingestellt, zum Ändern oder Entfernen anklicken - - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>Wenn Sie einen <a href="https://www.yubico.com/">YubiKey</a> oder <a href="https://onlykey.io">OnlyKey</a> besitzen, können verwenden, um die Sicherheit zu verbessern.</p><p>Dazu muss einer seiner Slots als <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a> programmiert sein.</p> + Challenge-Response festgelegt, zum Ändern oder Entfernen anklicken Detecting hardware keys… @@ -8813,28 +9808,21 @@ Example: JBSWY3DPEHPK3PXP No hardware keys detected Keine Hardwareschlüssel erkannt - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 Ungültiger Slot angegeben - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + <p>Wenn Sie einen <a href="https://www.yubico.com/">YubiKey</a> oder <a href="https://onlykey.io">OnlyKey</a> besitzen, können Sie ihn für zusätzliche Sicherheit verwenden.</p><p>Für den Schlüssel muss einer seiner Steckplätze als <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a> programmiert werden.</p> + + + Refresh hardware keys + Hardwareschlüssel aktualisieren YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] Challenge-Response - Slot %3 - The YubiKey PCSC interface has not been initialized. Die YubiKey PCSC-Schnittstelle ist nicht initialisiert worden. - - Hardware key is currently in use. - Der Hardwareschlüssel wird gerade verwendet. - Could not find or access hardware key with serial number %1. Please present it to continue. Konnte den Hardwareschlüssel mit Seriennummer %1 nicht finden oder darauf zugreifen. Zum Fortfahren bitte vorzeigen. @@ -8851,6 +9839,21 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 Challenge-Response konnte nicht abgeschlossen werden, der PCSC-Fehlercode war: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + (NFC) %1 [%2] - Slot %3, %4 + + + Press + USB Challenge-Response Key interaction request + Drücken + + + Passive + USB Challenge-Response Key no interaction required + Passiv + YubiKeyInterfaceUSB @@ -8858,14 +9861,6 @@ Example: JBSWY3DPEHPK3PXP Unknown Unbekannt - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] Konfigurierter Slot - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8880,10 +9875,6 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. Die YubiKey USB-Schnittstelle ist nicht initialisiert worden. - - Hardware key is currently in use. - Der Hardwareschlüssel wird gerade verwendet. - Could not find hardware key with serial number %1. Please plug it in to continue. Hardwareschlüssel mit Seriennummer %1 konnte nicht gefunden werden. Bitte schließen Sie ihn an, um fortzufahren. @@ -8900,5 +9891,15 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 Abschluss von Challenge-Response ist fehlgeschlagen, der spezifische Fehler war: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + %1 [%2] - Slot %3 + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + %1 [%2] - Slot %3, %4 + \ No newline at end of file diff --git a/share/translations/keepassxc_el.ts b/share/translations/keepassxc_el.ts index a1c454e62..a84af5149 100644 --- a/share/translations/keepassxc_el.ts +++ b/share/translations/keepassxc_el.ts @@ -80,6 +80,10 @@ Details ΛεπτομέÏιες + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Η απόφασή σας θα απομνημονευθεί για όσο διάστημα εκτελείται ο αιτών πελάτης ΚΑΙ το KeePassXC. + Remember Θυμηθείτε @@ -88,10 +92,6 @@ Allow Selected ΕπιτÏέπονται τα Επιλεγμένα - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - Η απόφασή σας θα απομνημονευθεί για όσο διάστημα εκτελείται ο αιτών πελάτης ΚΑΙ το KeePassXC. - Deny All && Future ΆÏνηση Όλων && Μελλοντικά @@ -122,6 +122,10 @@ Use OpenSSH ΧÏησιμοποιήστε OpenSSH + + Use both agents + ΧÏησιμοποιήστε και τους δÏο agents + SSH_AUTH_SOCK override SSH_AUTH_SOCK υπεÏισχÏουσα @@ -150,10 +154,6 @@ SSH Agent connection is working! Η σÏνδεση SSH Agent λειτουÏγεί! - - Use both agents - ΧÏησιμοποιήστε και τους δÏο agents - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security Ασφάλεια + + This setting cannot be enabled when minimize on unlock is enabled. + Αυτή η ÏÏθμιση δεν μποÏεί να ενεÏγοποιηθεί όταν είναι ενεÏγοποιημένη η ελαχιστοποίηση κατά το ξεκλείδωμα + Access error for config file %1 Σφάλμα Ï€Ïόσβασης για το αÏχείο config %1 @@ -256,6 +260,10 @@ Remember previously used databases Θυμηθείτε Ï€ÏοηγοÏμενες χÏησιμοποιημένες βάσεις δεδομένων + + recent files + Ï€Ïόσφατα αÏχεία + Load previously open databases on startup ΦόÏτωση Ï€ÏοηγοÏμενων ανοιχτών βάσεων δεδομένων κατά την εκκίνηση @@ -408,6 +416,10 @@ Toolbar button style: Στυλ κουμπιών γÏαμμής εÏγαλείων: + + Show passwords in color + Εμφάνιση κωδικών Ï€Ïόσβασης με χÏώμα + Use monospaced font for notes ΧÏησιμοποιήστε τη monospaced γÏαμματοσειÏά για σημειώσεις @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons ΧÏησιμοποιήστε την υπηÏεσία DuckDuckGo για λήψη εικονιδίων ιστότοπων + + Hide TOTP in the entry preview panel + ΑπόκÏυψη TOTP στον πίνακα Ï€Ïοεπισκόπησης καταχώÏησης + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 Εντοπίστηκε Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î· καθυστέÏηση, το μέγιστο είναι %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + Η καταχώÏηση δεν έχει χαÏακτηÏιστικό για PICKCHARS: %1 + Invalid conversion type: %1 Μη έγκυÏος Ï„Ïπος μετατÏοπής: %1 @@ -804,13 +824,13 @@ Ctrl+4 - ΧÏήση ÎµÎ¹ÎºÎ¿Î½Î¹ÎºÎ¿Ï Ï€Î»Î·ÎºÏ„Ïολογίου (μόνο γι Disable for this site ΑπενεÏγοποίηση για αυτόν τον ιστότοπο + + Undo + ΑναίÏεση + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser Αποθήκευση ΚαταχώÏησης - Ok Ok @@ -825,13 +845,70 @@ Please select the correct database for saving credentials. Έχετε ανοιχτές πολλές βάσεις δεδομένων ΠαÏακαλώ επιλέξτε την σωστή βάση δεδομένων για την αποθήκευση διαπιστευτηÏίων. + + KeePassXC - Select Database + KeePassXC - Επιλέξτε Βάση δεδομένων + + + + BrowserPasskeysConfirmationDialog + + Cancel + ΆκυÏο + + + Update + ΕνημέÏωση + + + Authenticate + Επαλήθευση + + + Register new + ΚαταχώÏηση νέου + + + Register + ΚαταχώÏηση + + + Timeout in <b>%n</b> seconds... + Λήξη χÏÎ¿Î½Î¹ÎºÎ¿Ï Î¿Ïίου σε <b>%n</b> δευτεÏόλεπτο...Λήξη χÏÎ¿Î½Î¹ÎºÎ¿Ï Î¿Ïίου σε <b>%n</b> δευτεÏόλεπτα... + + + Do you want to register Passkey for: + Θέλετε να καταχωÏήσετε το Passkey για: + + + Existing Passkey found. +Do you want to register a new Passkey for: + Î’Ïέθηκε υπάÏχον Passkey. +Θέλετε να καταχωÏήσετε ένα νέο Passkey για: + + + Select the existing Passkey and press Update to replace it. + Επιλέξτε το υπάÏχον Passkey και πατήστε ΕνημέÏωση για να το αντικαταστήσετε. + + + Authenticate Passkey credentials for: + Επαλήθευση διαπιστευτηÏίων Passkey για: + + + Relying Party: %1 + ΣτηÏιζόμενο Party: %1 + + + Username: %1 + Όνομα χÏήστη: %1 + + + KeePassXC - Passkey credentials + KeePassXC - ΔιαπιστευτήÏια Passkey + BrowserService - - KeePassXC: Create a new group - KeePassXC: ΔημιουÏγήστε μια νέα ομάδα - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -840,10 +917,6 @@ Do you want to create this group? Θέλετε να δημιουÏγήσετε αυτήν την ομάδα; - - KeePassXC: New key association request - KeePassXC: Îέο αίτημα συσχέτισης ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï - You have received an association request for the following database: %1 @@ -860,28 +933,16 @@ chrome-laptop. Save and allow access Αποθήκευση και παÏαχώÏηση Ï€Ïόσβασης - - KeePassXC: Overwrite existing key? - KeePassXC: Αντικατάσταση υπάÏχοντος κλειδιοÏ; - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? ΥπάÏχει ήδη κοινόχÏηστο κλειδί κÏυπτογÏάφησης με το όνομα "% 1". Θέλετε να το αντικαταστήσετε; - - KeePassXC: Update Entry - KeePassXC: ΕνημέÏωση ΚαταχώÏησης - Do you want to update the information in %1 - %2? Θέλετε να ενημεÏώσετε τις πληÏοφοÏίες στο %1 - %2; - - KeePassXC: Delete entry - KeePassXC: ΔιαγÏαφή καταχώÏησης - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -891,50 +952,46 @@ Do you want to delete the entry? - Converting attributes to custom data… - ΜετατÏοπή χαÏακτηÏιστικών σε Ï€ÏοσαÏμοσμένα δεδομένα… + %1 (Passkey) + %1 (Passkey) - Abort - Ματαίωση + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + Η καταχώÏηση έχει ήδη Passkey. +Θέλετε να αντικαταστήσετε το Passkey στο %1 - %2; - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: ΜετατÏάπηκαν χαÏακτηÏηστηκά από το KeePassHTTP + KeePassXC - Create a new group + KeePassXC - ΔημιουÏγήστε μια νέα ομάδα - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Τα χαÏακτηÏιστικά μετατÏάπηκαν με επιτυχία από% 1 καταχώÏηση(εις). -Μετακινήθηκαν %2 πλήκτÏα στα Ï€ÏοσαÏμοσμένα δεδομένα. - - - Successfully moved %n keys to custom data. - Μετακινήθηκε με επιτυχία %n πλήκτÏο στα Ï€ÏοσαÏμοσμένα δεδομένα.Μετακινήθηκε με επιτυχία %n πλήκτÏα στα Ï€ÏοσαÏμοσμένα δεδομένα. + Disable + ΑπενεÏγοποίηση - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Δεν βÏέθηκε καταχώÏιση με χαÏακτηÏιστικά KeePassHTTP! + KeePassXC - Overwrite existing key? + KeePassXC - Αντικατάσταση υπάÏχοντος κλειδιοÏ; - The active database does not contain an entry with KeePassHTTP attributes. - Η ενεÏγή βάση δεδομένων δεν πεÏιέχει μια καταχώÏιση με χαÏακτηÏιστικά KeePassHTTP. + KeePassXC - Update Passkey + KeePassXC - ΕνημέÏωση Passkey - Don't show this warning again - Îα μην εμφανιστεί ξανά αυτή η Ï€Ïοειδοποίηση + KeePassXC - Update Entry + KeePassXC - ΕνημέÏωση ΚαταχώÏησης - KeePassXC: Legacy browser integration settings detected - KeePassXC: Εντοπίστηκαν Ïυθμίσεις ενσωμάτωσης Ï€Î±Î»Î±Î¹Î¿Ï Ï€ÏογÏάμματος πεÏιήγησης + KeePassXC - Delete entry + KeePassXC - ΔιαγÏαφή καταχώÏησης - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Οι Ïυθμίσεις του KeePassXC-Browser Ï€Ïέπει να μεταφεÏθοÏν στις Ïυθμίσεις της βάσης δεδομένων. -Αυτό είναι απαÏαίτητο για τη διατήÏηση των Ï„Ïεχουσών συνδέσεών σας στο Ï€ÏόγÏαμμα πεÏιήγησης. -Θέλετε να μετεγκαταστήσετε τις υπάÏχουσες Ïυθμίσεις σας τώÏα; + KeePassXC - New key association request + KeePassXC - Αίτημα συσχέτισης νέου ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï + + + Passkey + Passkey @@ -1142,14 +1199,6 @@ Would you like to migrate your existing settings now? Please see special instructions for browser extension use below Δείτε παÏακάτω ειδικές οδηγίες για τη χÏήση της επέκτασης Ï€ÏογÏάμματος πεÏιήγησης - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Σφάλμα:</b> Δεν είναι δυνατή η εÏÏεση της Ï€ÏοσαÏμοσμένης τοποθεσίας διακομιστή μεσολάβησης!<br/>Η ενσωμάτωση του Ï€ÏογÏάμματος πεÏιήγησης ΔΕΠθα λειτουÏγήσει χωÏίς την εφαÏμογή διακομιστή μεσολάβησης. - - - <b>Warning:</b> The following options can be dangerous! - <b>ΠÏοειδοποίηση:</b> Οι ακόλουθες επιλογές μποÏεί να είναι επικίνδυνες! - Executable Files Εκτελέσιμα ΑÏχεία @@ -1166,6 +1215,38 @@ Would you like to migrate your existing settings now? Select native messaging host folder location Επιλέξτε τοποθεσία φακέλου φιλοξενίας έμφυτων μηνυμάτων + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + ΕπιτÏέψτε στο keepassxc-proxy να παÏαθέτει όλες τις καταχωÏήσεις με τον τίτλο, τη διεÏθυνση URL και το UUID σε συνδεδεμένες βάσεις δεδομένων. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + Îα επιτÏέπεται πεÏιοÏισμένη Ï€Ïόσβαση σε όλες τις καταχωÏήσεις σε συνδεδεμένες βάσεις δεδομένων (αγνοεί τους πεÏιοÏισμοÏÏ‚ Ï€Ïόσβασης στον ιστότοπο) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>ΠÏοειδοποίηση:</b> ΠÏοσαÏμόστε αυτές τις Ïυθμίσεις μόνο εάν είναι απαÏαίτητο. + + + The custom proxy location does not exist. + Η Ï€ÏοσαÏμοσμένη τοποθεσία διακομιστή μεσολάβησης δεν υπάÏχει. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Σφάλμα:</b> Η Ï€ÏοσαÏμοσμένη τοποθεσία διακομιστή μεσολάβησης δεν υπάÏχει. ΔιοÏθώστε το στην καÏτέλα Ïυθμίσεων για Ï€ÏοχωÏημένους. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Σφάλμα:</b> Το εγκατεστημένο εκτελέσιμο αÏχείο διακομιστή μεσολάβησης λείπει από την αναμενόμενη τοποθεσία: %1<br/>ΟÏίστε μια Ï€ÏοσαÏμοσμένη τοποθεσία διακομιστή μεσολάβησης στις Ïυθμίσεις για Ï€ÏοχωÏημένους ή εγκαταστήστε ξανά την εφαÏμογή. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + ΕπιτÏέπει τη χÏήση μη ασφαλοÏÏ‚ http://localhost με Passkeys για δοκιμαστικοÏÏ‚ σκοποÏÏ‚. + + + Allow using localhost with Passkeys + ΕπιτÏέψτε τη χÏήση του localhost με τα Passkeys. + CloneDialog @@ -1188,14 +1269,6 @@ Would you like to migrate your existing settings now? CsvImportWidget - - Import CSV fields - Εισαγωγή πεδίων CSV - - - filename - όνομα αÏχείου - size, rows, columns μέγεθος, γÏαμμές, στήλες @@ -1304,51 +1377,30 @@ Would you like to migrate your existing settings now? Column %1 Στήλη %1 - - Imported from CSV file - Εισήχθη από αÏχείο CSV - - - Original data: - ΑÏχικά δεδομένα: - - - Error(s) detected in CSV file! - Εντοπίστηκαν σφάλμα(τα) στο αÏχείο CSV! - [%n more message(s) skipped] [%n ακόμη μήνυμα(τα) παÏαλείφθηκε][%n ακόμη μηνÏμα(τα) παÏαλείφθηκαν] - Error - Σφάλμα + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - Εισαγωγή CSV: ο γÏαφέας έχει λάθη: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n byte%n bytes - %n row(s) - %n γÏαμμή%n γÏαμμές + CSV row count + %n σειÏά(ες)%n σειÏά(ες) %n column(s) - %n στήλη%n στήλες + CSV column count + %n στήλη(ες)%n στήλη(ες) @@ -1422,40 +1474,10 @@ Backup database located at %2 Password field Πεδίο ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης - - Enter Additional Credentials (if any): - Εισαγάγετε ΠÏόσθετα ΔιαπιστευτήÏια (εάν υπάÏχουν): - - - Key File: - ΑÏχείο Κλειδί: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>Εκτός από έναν κωδικό Ï€Ïόσβασης, μποÏείτε να χÏησιμοποιήσετε ένα μυστικό αÏχείο για να βελτιώσετε την ασφάλεια της βάσης δεδομένων σας. Αυτό το αÏχείο μποÏεί να δημιουÏγηθεί στις Ïυθμίσεις ασφαλείας της βάσης δεδομένων σας.</p><p>Αυτό <strong>δεν</strong> είναι το αÏχείο βάσης δεδομένων σας *.kdbx!<br>Εάν δεν έχετε αÏχείο κλειδί, αφήστε αυτό το πεδίο κενό.</p><p>Κάντε κλικ για πεÏισσότεÏες πληÏοφοÏίες...</p> - - - Key file help - Βοήθεια για το αÏχείο κλειδί - Hardware key slot selection Επιλογή υποδοχής hardware ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï - - Hardware Key: - Hardware Κλειδί: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>ΜποÏείτε να χÏησιμοποιήσετε ένα hardware κλειδί ασφαλείας, όπως ένα <strong>YubiKey</strong> ή <strong>OnlyKey</strong> με υποδοχές που έχουν Ïυθμιστεί για HMAC-SHA1.</p> -<p>Κάντε κλικ για πεÏισσότεÏες πληÏοφοÏίες...</p> - - - Hardware key help - Βοήθεια hardware ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï - Key file to unlock the database ΑÏχείο κλειδί για ξεκλείδωμα της βάσης δεδομένων @@ -1468,14 +1490,6 @@ Backup database located at %2 Browse… Αναζήτηση... - - Refresh hardware tokens - Ανανέωση hardware tokens - - - Refresh - Ανανέωση - Unlock Database Ξεκλείδωμα Βάσης δεδομένων @@ -1538,14 +1552,6 @@ To prevent this error from appearing, you must go to "Database Settings / S Retry with empty password Ξαναδοκιμάστε με κενό κωδικό Ï€Ïόσβασης - - Failed to authenticate with Windows Hello - Απέτυχε ο έλεγχος ταυτότητας με το Windows Hello - - - Failed to authenticate with Touch ID - Απέτυχε ο έλεγχος ταυτότητας με το Touch ID - Failed to open key file: %1 Αποτυχία ανοίγματος αÏχείου κλειδιοÏ: %1 @@ -1579,22 +1585,60 @@ To prevent this error from appearing, you must go to "Database Settings / S Δεν είναι δυνατή η χÏήση του αÏχείου βάσης δεδομένων ως αÏχείο κλειδί - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Δεν μποÏείτε να χÏησιμοποιήσετε το αÏχείο βάσης δεδομένων ως αÏχείο κλειδί. -Εάν δεν έχετε ένα αÏχείο κλειδί, αφήστε το πεδίο κενό. + authenticate to access the database + έλεγχος ταυτότητας για Ï€Ïόσβαση στη βάση δεδομένων - Detecting hardware keys… - Εντοπισμός hardware κλειδιών... + Failed to authenticate with Quick Unlock: %1 + Αποτυχία ελέγχου ταυτότητας με το ΓÏήγοÏο Ξεκλείδωμα: %1 - No hardware keys detected - Δεν εντοπίστηκαν hardware κλειδιά + Select Key File: + - Select hardware key… - Επιλογή hardware κλειδιοÏ... + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1606,10 +1650,6 @@ If you do not have a key file, please leave the field empty. DatabaseSettingsDialog - - Advanced Settings - Ρυθμίσεις για ΠÏοχωÏημένους - General Γενικά @@ -1641,18 +1681,6 @@ If you do not have a key file, please leave the field empty. KeePassXC-Browser settings Ρυθμίσεις KeePassXC-Browser - - Convert KeePassHTTP data - ΜετατÏοπή δεδομένων KeePassHTTP - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - ΜετατÏοπή Ï€Î±Î»Î±Î¹Î¿Ï Ï„Ïπου χαÏακτηÏιστικά KeePassHTTP σε Ï€ÏοσαÏμοσμένα δεδομένα συμβατά με KeePassXC-Browser - - - Refresh database root group ID - Ανανέωση του ÏÎ¹Î¶Î¹ÎºÎ¿Ï ID ομάδας της βάσης δεδομένων - Disconnect all browsers ΑποσÏνδεση όλων των Ï€ÏογÏαμμάτων πεÏιήγησης @@ -1661,6 +1689,10 @@ If you do not have a key file, please leave the field empty. Forget all site-specific settings on entries Ξεχάστε όλες τις Ïυθμίσεις που αφοÏοÏν τον ιστότοπο στις καταχωÏήσεις + + Refresh database root group ID + Ανανέωση του ÏÎ¹Î¶Î¹ÎºÎ¿Ï ID ομάδας της βάσης δεδομένων + Stored keys Αποθηκευμένα κλειδιά @@ -1709,18 +1741,10 @@ This may prevent connection to the browser plugin. Θέλετε Ï€Ïαγματικά να αποσυνδέσετε όλα τα Ï€ÏογÏάμματα πεÏιήγησης; Αυτό μποÏεί να εμποδίσει τη σÏνδεση με το Ï€Ïόσθετο του Ï€ÏογÏάμματος πεÏιήγησης. - - KeePassXC: No keys found - KeePassXC: Δεν βÏέθηκαν κλειδιά - No shared encryption keys found in KeePassXC settings. Δεν βÏέθηκαν κοινόχÏηστα κλειδιά κÏυπτογÏάφησης στις Ïυθμίσεις KeePassXC. - - KeePassXC: Removed keys from database - KeePassXC: ΚαταÏγήθηκαν κλειδιά από τη βάση δεδομένων - Successfully removed %n encryption key(s) from KeePassXC settings. ΚαταÏγήθηκε με επιτυχία %n κλειδί κÏυπτογÏάφησης από τις Ïυθμίσεις KeePassXC.ΚαταÏγήθηκαν με επιτυχία %n κλειδιά κÏυπτογÏάφησης από τις Ïυθμίσεις KeePassXC. @@ -1739,32 +1763,14 @@ Permissions to access entries will be revoked. Abort Ματαίωση - - KeePassXC: Removed permissions - KeePassXC: ΚαταÏγήθηκαν τα δικαιώματα - Successfully removed permissions from %n entry(s). Επιτυχής κατάÏγηση δικαιωμάτων από %n καταχώÏηση.Επιτυχής κατάÏγηση δικαιωμάτων από %n καταχωÏήσεις. - - KeePassXC: No entry with permissions found! - KeePassXC: Δε βÏέθηκε καταχώÏηση με δικαιώματα! - The active database does not contain an entry with permissions. Η ενεÏγή βάση δεδομένων δεν πεÏιέχει καταχώÏηση με δικαιώματα. - - Move KeePassHTTP attributes to custom data - Μετακίνηση χαÏακτηÏιστικών KeePassHTTP σε Ï€ÏοσαÏμοσμένα δεδομένα - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Θέλετε Ï€Ïαγματικά να μετατÏέψετε όλα τα δεδομένα ενοποίησης του Ï€ÏογÏάμματος πεÏιήγησης Ï€Î±Î»Î±Î¹Î¿Ï Ï„Ïπου στα πιο Ï€Ïόσφατα Ï€Ïότυπα; -Αυτό είναι απαÏαίτητο για τη διατήÏηση της συμβατότητας με το Ï€Ïόσθετο του Ï€ÏογÏάμματος πεÏιήγησης. - Refresh database ID Ανανέωση ID βάσης δεδομένων @@ -1775,6 +1781,26 @@ This is only necessary if your database is a copy of another and the browser ext Θέλετε Ï€Ïαγματικά να ανανεώσετε το ID βάσης δεδομένων; Αυτό είναι απαÏαίτητο μόνο εάν η βάση δεδομένων σας είναι αντίγÏαφο ενός άλλου και το Ï€Ïόσθετο του Ï€ÏογÏάμματος πεÏιήγησης δεν μποÏεί να συνδεθεί. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + ΜετατÏοπή Ï€Î±Î»Î±Î¹Î¿Ï Ï„Ïπου χαÏακτηÏιστικά KeePassHTTP σε Ï€ÏοσαÏμοσμένα δεδομένα συμβατά με KeePassXC-Browser + + + No keys found + Δεν βÏέθηκαν κλειδιά + + + Removed keys from database + ΑφαιÏέθηκαν τα κλειδιά από τη βάση δεδομένων + + + Removed permissions + ΑφαιÏέθηκαν άδειες + + + No entry with permissions found! + Δεν βÏέθηκε καμία καταχώÏηση με δικαιώματα! + DatabaseSettingsWidgetDatabaseKey @@ -1814,6 +1840,18 @@ Are you sure you want to continue without a password? Failed to change database credentials Η αλλαγή των διαπιστευτηÏίων βάσης δεδομένων απέτυχε + + Weak password + ΑδÏναμος κωδικός Ï€Ïόσβασης + + + You must enter a stronger password to protect your database. + ΠÏέπει να εισάγετε έναν ισχυÏότεÏο κωδικό Ï€Ïόσβασης για να Ï€ÏοστατεÏσετε τη βάση δεδομένων σας. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + Αυτός είναι ένας αδÏναμος κωδικός Ï€Ïόσβασης! Για καλÏτεÏη Ï€Ïοστασία των μυστικών σας, θα Ï€Ïέπει να επιλέξετε έναν ισχυÏότεÏο κωδικό Ï€Ïόσβασης. + DatabaseSettingsWidgetEncryption @@ -1821,14 +1859,6 @@ Are you sure you want to continue without a password? Decryption Time: ΧÏόνος ΑποκÏυπτογÏάφησης: - - Change existing decryption time - Αλλαγή του υπάÏχοντος χÏόνου αποκÏυπτογÏάφησης - - - Change - Αλλαγή - Decryption time in seconds ΧÏόνος αποκÏυπτογÏάφησης σε δευτεÏόλεπτα @@ -1909,11 +1939,6 @@ Are you sure you want to continue without a password? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - Αμετάβλητο - Number of rounds too high Key transformation rounds @@ -1966,6 +1991,18 @@ If you keep this number, your database will not be protected from brute force at Threads for parallel execution (KDF settings) νήμα νήματα + + Encryption Settings: + Ρυθμίσεις ΚÏυπτογÏάφησης: + + + Basic + Βασικές + + + Advanced + Για Ï€ÏοχωÏημένους + DatabaseSettingsWidgetFdoSecrets @@ -2024,18 +2061,10 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry Μέγιστος αÏιθμός στοιχείων ιστοÏÎ¹ÎºÎ¿Ï Î±Î½Î¬ καταχώÏηση - - Max. history items: - Μέγιστος αÏιθμός στοιχείων ιστοÏικοÏ: - Maximum size of history per entry Μέγιστο μέγεθος ιστοÏÎ¹ÎºÎ¿Ï Î±Î½Î¬ καταχώÏηση - - Max. history size: - Μέγιστο μέγεθος ιστοÏικοÏ: - MiB MiB @@ -2066,6 +2095,64 @@ This action is not reversible. (old) (παλιό) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + Κατά την αποθήκευση αυτής της ÏÏθμισης ή την επεξεÏγασία μιας καταχώÏησης +τα παλαιότεÏα στοιχεία ιστοÏÎ¹ÎºÎ¿Ï Î¼Î¹Î±Ï‚ καταχώÏησης θα έχουν +αφαιÏεθεί έτσι ώστε μόνο το καθοÏισμένο ποσό +των καταχωÏήσεων να παÏαμείνει το πολÏ. + + + Limit the amount of history items per entry to: + ΠεÏιοÏίστε τον αÏιθμό των στοιχείων ιστοÏÎ¹ÎºÎ¿Ï Î±Î½Î¬ καταχώÏηση σε: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + Κατά την αποθήκευση αυτής της ÏÏθμισης ή την επεξεÏγασία μιας καταχώÏησης +τα παλαιότεÏα στοιχεία ιστοÏÎ¹ÎºÎ¿Ï Î¼Î¹Î±Ï‚ καταχώÏησης θα έχουν +καταÏγηθεί έτσι ώστε τα υπόλοιπα στοιχεία ιστοÏÎ¹ÎºÎ¿Ï +Ï€ÏοστεθοÏν στο καθοÏισμένο ποσό το πολÏ. + + + Limit the total size of history items per entry to: + ΠεÏιοÏίστε το συνολικό μέγεθος των στοιχείων ιστοÏÎ¹ÎºÎ¿Ï Î±Î½Î¬ καταχώÏηση σε: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Μετακινήστε τις καταχωÏήσεις σε μια ομάδα κάδου ανακÏκλωσης +αντί να τις διαγÏάψετε από τη βάση δεδομένων. +Οι καταχωÏήσεις που έχουν διαγÏαφεί από τον κάδο ανακÏκλωσης θα έχουν +αφαιÏεθεί από τη βάση δεδομένων. + + + Autosave delay since last change + ΚαθυστέÏηση αυτόματης αποθήκευσης από την τελευταία αλλαγή + + + Autosave delay + ΚαθυστέÏηση αυτόματης αποθήκευσης + + + Autosave delay since last change in minutes + ΚαθυστέÏηση αυτόματης αποθήκευσης από την τελευταία αλλαγή σε λεπτά + + + min + min + + + Autosave delay since last change checkbox + ΚαθυστέÏηση αυτόματης αποθήκευσης από την τελευταία αλλαγή του checkbox + DatabaseSettingsWidgetKeeShare @@ -2193,26 +2280,10 @@ This is definitely a bug, please report it to the developers. CSV file ΑÏχείο CSV - - Select CSV file - Επιλογή αÏχείου CSV - Merge database Συγχώνευση βάσης δεδομένων - - KeePass 1 database - Βάση δεδομένων KeePass 1 - - - Open KeePass 1 database - Άνοιγμα βάσης δεδομένων KeePass 1 - - - Open OPVault - Άνοιγμα OPVault - Export database to CSV file Εξαγωγή βάσης δεδομένων σε αÏχείο CSV @@ -2225,6 +2296,18 @@ This is definitely a bug, please report it to the developers. Writing the HTML file failed. Η εγγÏαφή του αÏχείου HTML απέτυχε. + + Export database to XML file + Εξαγωγή βάσης δεδομένων σε αÏχείο XML + + + XML file + ΑÏχείο XML + + + Writing the XML file failed + Η εγγÏαφή του αÏχείου XML απέτυχε + Export Confirmation Επιβεβαίωση Εξαγωγής @@ -2233,15 +2316,6 @@ This is definitely a bug, please report it to the developers. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? ΠÏόκειται να εξαγάγετε τη βάση δεδομένων σας σε ένα μη κÏυπτογÏαφημένο αÏχείο. Αυτό θα αφήσει τους κωδικοÏÏ‚ Ï€Ïόσβασης και τις ευαίσθητες πληÏοφοÏίες σας ευάλωτα! Είστε βέβαιοι ότι θέλετε να συνεχίσετε; - - New Database - Îέα Βάση Δεδομένων - - - %1 [New Database] - Database tab name modifier - %1 [Îέα Βάση Δεδομένων] - %1 [Locked] Database tab name modifier @@ -2251,8 +2325,8 @@ This is definitely a bug, please report it to the developers. DatabaseWidget - Database Tags - Ετικέτες Βάσης δεδομένων + Searches and Tags + Αναζητήσεις και Ετικέτες Searching… @@ -2302,6 +2376,10 @@ This is definitely a bug, please report it to the developers. Expired entries Ληγμένες καταχωÏήσεις + + Entries expiring within %1 day(s) + ΚαταχωÏήσεις που λήγουν εντός %1 ημεÏάς(ών)ΚαταχωÏήσεις που λήγουν εντός %1 ημεÏάς(ών) + No current database. Δεν υπάÏχει Ï„Ïέχουσα βάση δεδομένων. @@ -2326,6 +2404,18 @@ This is definitely a bug, please report it to the developers. No Results Δεν υπάÏχουν Αποτελέσματα + + Save + Αποθήκευση + + + Enter a unique name or overwrite an existing search from the list: + Εισαγάγετε ένα μοναδικό όνομα ή αντικαταστήστε μια υπάÏχουσα αναζήτηση από τη λίστα: + + + Save Search + Αποθήκευση Αναζήτησης + Lock Database? Κλείδωμα Βάσης Δεδομένων; @@ -2416,9 +2506,14 @@ Disable safe saves and try again? Could not find database file: %1 Δεν ήταν δυνατή η εÏÏεση του αÏχείου βάσης δεδομένων: %1 - - Entries expiring within %1 day(s) - ΚαταχωÏήσεις που λήγουν εντός %1 ημεÏάς(ών)ΚαταχωÏήσεις που λήγουν εντός %1 ημεÏάς(ών) + + New Database + Îέα Βάση Δεδομένων + + + %1 [New Database] + Database tab name modifier + %1 [Îέα Βάση Δεδομένων] @@ -2561,6 +2656,10 @@ Would you like to correct it? Hide ΑπόκÏυψη + + %n hour(s) + %n ÏŽÏα(-ες)%n ÏŽÏα(-ες) + %n week(s) %n εβδομάδα%n εβδομάδες @@ -2573,10 +2672,6 @@ Would you like to correct it? %n year(s) %n χÏόνος%n χÏόνια - - %n hour(s) - %n ÏŽÏα(-ες)%n ÏŽÏα(-ες) - EditEntryWidgetAdvanced @@ -2695,10 +2790,20 @@ Would you like to correct it? Add new window association ΠÏοσθήκη νέας συσχέτισης παÏαθÏÏου + + + + Add item + + + Remove selected window association ΚατάÏγηση επιλεγμένης συσχέτισης παÏαθÏÏου + + - + Remove item + - + Window title: Τίτλος ΠαÏαθÏÏου: @@ -2723,16 +2828,6 @@ Would you like to correct it? Custom Auto-Type sequence for this window ΠÏοσαÏμοσμένη ακολουθία Αυτόματης ΠληκτÏολόγησης για αυτό το παÏάθυÏο - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2834,22 +2929,10 @@ Would you like to correct it? Notes field Πεδίο σημειώσεων - - Toggle the checkbox to reveal the notes section. - Εναλλαγή του πλαισίου ελέγχου για να εμφανιστεί η ενότητα σημειώσεων. - Username field Πεδίο ονόματος χÏήστη - - Toggle notes visible - Εναλλαγή οÏατών σημειώσεων - - - Notes: - Σημειώσεις: - Expiration field Πεδίο λήξης @@ -2866,14 +2949,6 @@ Would you like to correct it? Presets ΠÏοεπιλογές - - Password: - Κωδικό Ï€Ïόσβασης: - - - URL: - URL: - Url field Πεδίο URL @@ -2882,18 +2957,10 @@ Would you like to correct it? Download favicon for URL Λήψη favicon για διεÏθυνση URL - - Title: - Τίτλος: - Title field Πεδίο τίτλου - - Username: - Όνομα χÏήστη: - Password field Πεδίο ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης @@ -2902,18 +2969,42 @@ Would you like to correct it? Toggle expiration Εναλλαγή λήξης - - Expires: - Λήγει: - - - Tags: - Ετικέτες: - Tags list Λίστα ετικετών + + &Username: + &Όνομα χÏήστη: + + + &Title: + &Τίτλος: + + + &Password: + &Κωδικός Ï€Ïόσβασης: + + + UR&L: + UR&L: + + + &Notes: + &Σημειώσεις: + + + Toggle notes visibility + Εναλλαγή οÏατότητας σημειώσεων + + + T&ags: + T &ags: + + + &Expires: + &Λήγει: + EditEntryWidgetSSHAgent @@ -2953,19 +3044,6 @@ Would you like to correct it? Private key Ιδιωτικό κλειδί - - External file - ΕξωτεÏικό αÏχείο - - - Browser for key file - ΠÏόγÏαμμα πεÏιήγησης για αÏχείο κλειδί - - - Browse… - Button for opening file dialog - Αναζήτηση... - Attachment Συνημμένο @@ -2982,6 +3060,23 @@ Would you like to correct it? Remove from agent ΚατάÏγηση από agent + + External file + ΕξωτεÏικό αÏχείο + + + Browser for key file + ΠÏόγÏαμμα πεÏιήγησης για αÏχείο κλειδί + + + Browse… + Button for opening file dialog + Αναζήτηση... + + + Generate + ΠαÏαγωγή + Select attachment file Επιλέξτε αÏχείο συνημμένου @@ -3017,10 +3112,6 @@ Would you like to correct it? Icon Εικονίδιο - - Browser Integration - Ενσωμάτωση ΠÏογÏάμματος ΠεÏιήγησης - Properties Ιδιότητες @@ -3037,6 +3128,10 @@ Would you like to correct it? Group has unsaved changes Η ομάδα έχει μη αποθηκευμένες αλλαγές + + Browser Integration + Ενσωμάτωση ΠÏογÏάμματος ΠεÏιήγησης + Enable ΕνεÏγοποίηση @@ -3052,10 +3147,6 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - ΕπεξεÏγασία Ομάδας - These settings affect to the group's behaviour with the browser extension. Αυτές οι Ïυθμίσεις επηÏεάζουν τη συμπεÏιφοÏά της ομάδας με την επέκταση του Ï€ÏογÏάμματος πεÏιήγησης. @@ -3092,6 +3183,22 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups Μην χÏησιμοποιείτε εναλλαγή HTTP Auth για αυτήν και υποομάδες + + Omit WWW subdomain from matching: + ΠαÏάλειψη του υποτομέα WWW από την αντιστοίχιση: + + + Omit WWW subdomain from matching toggle for this and sub groups + ΠαÏαλείψτε τον υποτομέα WWW από την αντιστοίχιση εναλλαγής για αυτήν και τις υποομάδες + + + Restrict matching to given browser key: + ΠεÏιοÏίστε την αντιστοίχιση στον δοσμένο κλειδί Ï€ÏογÏάμματος πεÏιήγησης. + + + Restrict matching to given browser key toggle for this and sub groups + ΠεÏιοÏίστε την αντιστοίχιση στην εναλλαγή του δοσμένου ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Ï€ÏογÏάμματος πεÏιήγησης για αυτό και τις υποομάδες. + EditGroupWidgetKeeShare @@ -3324,10 +3431,6 @@ Supported extensions are: %1. Unable to fetch favicon. Αδυναμία λήψης favicon. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - ΜποÏείτε να ενεÏγοποιήσετε την υπηÏεσία εικονιδίου ιστότοπου DuckDuckGo στην πεÏιοχή ΕÏγαλεία -> Ρυθμίσεις -> Ασφάλεια - Existing icon selected. Επιλέχθηκε το υπάÏχον εικονίδιο. @@ -3360,6 +3463,10 @@ Supported extensions are: %1. The following icon(s) failed: Το ακόλουθο εικονίδιο απέτυχε:Τα ακόλουθα εικονίδια απέτυχαν: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + ΜποÏείτε να ενεÏγοποιήσετε την υπηÏεσία εικονιδίων ιστότοπου DuckDuckGo στην πεÏιοχή Ρυθμίσεις εφαÏμογής -> Ασφάλεια + EditWidgetProperties @@ -3798,6 +3905,10 @@ Error: %1 Has TOTP Έχει TOTP + + Background Color + ΧÏώμα Φόντου + EntryPreviewWidget @@ -3818,8 +3929,8 @@ Error: %1 Κωδικό Ï€Ïόσβασης - Notes - Σημειώσεις + URL + URL Expiration @@ -3838,8 +3949,8 @@ Error: %1 Όνομα χÏήστη - URL - URL + Notes + Σημειώσεις Advanced @@ -3889,6 +4000,10 @@ Error: %1 Never Ποτέ + + Double click to copy value + Κάντε διπλό κλικ για να αντιγÏάψετε την τιμή + Enabled ΕνεÏγοποιημένη @@ -3897,6 +4012,10 @@ Error: %1 Disabled ΑπενεÏγοποιημένη + + Double click to copy to clipboard + Κάντε διπλό κλικ για αντιγÏαφή στο Ï€ÏόχειÏο + EntryURLModel @@ -3904,6 +4023,10 @@ Error: %1 Invalid URL Μη έγκυÏη διεÏθυνση URL + + Duplicate URL + Διπλότυπο URL + EntryView @@ -3919,6 +4042,10 @@ Error: %1 Reset to defaults ΕπαναφοÏά στις Ï€Ïοεπιλογές + + + %1 entry(s)... + + %1 καταχώÏιση(εις)...+ %1 καταχώÏιση(εις)... + ExportDialog @@ -4139,6 +4266,147 @@ You can enable the DuckDuckGo website icon service in the security section of th Λήψη favicons (%1/%2)... + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Οδηγός Σελίδας + + + Entry count: %1 + + + + Group + Όμαδα + + + Title + Τίτλος + + + Username + Όνομα χÏήστη + + + Password + Κωδικός + + + Url + + + + + ImportWizardPageSelect + + Form + ΜοÏφή + + + Import File Selection + + + + Password: + Κωδικός: + + + Key File: + ΑÏχείο κλειδί: + + + Browse… + Αναζήτηση... + + + Import Into: + + + + New Database + Îέα Βάση Δεδομένων + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Άνοιγμα OPVault + + + Select import file + + + + All files + Όλα τα αÏχεία + + + Key files + ΑÏχεία κλειδιά + + + Select key file + Επιλέξτε αÏχείο κλειδί + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4573,17 +4841,6 @@ Line %2, column %3 Απέτυχε το άνοιγμα Î¹Î´Î¹Ï‰Ï„Î¹ÎºÎ¿Ï ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï - - KeePass1OpenWidget - - Import KeePass1 Database - Εισαγωγή Βάσης Δεδομένων KeePass1 - - - Unable to open the database. - Δεν είναι δυνατό να ανοίξει τη βάση δεδομένων. - - KeePass1Reader @@ -4940,10 +5197,6 @@ Are you sure you want to continue with this file? &Recent Databases &ΠÏόσφατες Βάσεις Δεδομένων - - &Import - &Εισαγωγή - &Export &Εξαγωγή @@ -4964,6 +5217,10 @@ Are you sure you want to continue with this file? TOTP TOTP + + Tags + Ετικέτες + &Groups &Ομάδες @@ -5008,34 +5265,18 @@ Are you sure you want to continue with this file? &New Database… &Îέα Βάση Δεδομένων... - - Create a new database - ΔημιουÏγία νέας βάσης δεδομένων - &Merge From Database… &Συγχώνευση από Βάση Δεδομένων... - - Merge from another KDBX database - Συγχώνευση από άλλη βάση δεδομένων KDBX - &New Entry… &Îέα ΚαταχώÏηση... - - Add a new entry - ΠÏοσθήκη νέας καταχώÏησης - &Edit Entry… &ΕπεξεÏγασία ΚαταχώÏησης... - - View or edit entry - ΠÏοβολή ή επεξεÏγασία καταχώÏησης - &Delete Entry… &ΔιαγÏαφή ΚαταχώÏησης... @@ -5044,10 +5285,6 @@ Are you sure you want to continue with this file? &New Group… &Îέα Ομάδα... - - Add a new group - ΠÏοσθήκη νέας ομάδας - &Edit Group… &ΕπεξεÏγασία Ομάδας... @@ -5080,18 +5317,10 @@ Are you sure you want to continue with this file? Database &Reports… ΑναφοÏές Βάσης Δεδομένων... - - Statistics, health check, etc. - Στατιστικά, έλεγχος υγείας κ.λπ. - &Database Settings… &Ρυθμίσεις Βάσης Δεδομένων... - - Database settings - Ρυθμίσεις βάσης δεδομένων - &Clone Entry… &Κλωνοποίηση ΚαταχώÏησης... @@ -5100,34 +5329,18 @@ Are you sure you want to continue with this file? Move u&p Μετακίνηση επ&άνω - - Move entry one step up - Μετακίνηση καταχώÏησης ένα βήμα Ï€Ïος τα επάνω - Move do&wn Μετακίνηση κά&τω - - Move entry one step down - Μετακίνηση καταχώÏησης ένα βήμα Ï€Ïος τα κάτω - Copy &Username ΑντιγÏαφή &Ονόματος χÏήστη - - Copy username to clipboard - ΑντιγÏαφή ονόματος χÏήστη στο Ï€ÏόχειÏο - Copy &Password ΑντιγÏαφή &ÎšÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης - - Copy password to clipboard - ΑντιγÏαφή ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης στο Ï€ÏόχειÏο - &Settings &Ρυθμίσεις @@ -5161,25 +5374,13 @@ Are you sure you want to continue with this file? &Τίτλος - Copy title to clipboard - ΑντιγÏαφή τίτλου στο Ï€ÏόχειÏο - - - &URL - &URL - - - Copy URL to clipboard - ΑντιγÏαφή URL στο Ï€ÏόχειÏο + Copy &URL + ΑντιγÏαφή &URL &Notes &Σημειώσεις - - Copy notes to clipboard - ΑντιγÏαφή σημειώσεων στο Ï€ÏόχειÏο - &CSV File… &ΑÏχείο CSV... @@ -5192,26 +5393,14 @@ Are you sure you want to continue with this file? KeePass 1 Database… Βάση δεδομένων KeePass 1... - - Import a KeePass 1 database - Εισαγωγή βάσης δεδομένων KeePass 1 - 1Password Vault… ΚÏÏπτη 1Password... - - Import a 1Password Vault - Εισαγωγή ΚÏÏπτης 1Password - CSV File… ΑÏχείο CSV... - - Import a CSV file - Εισαγωγή αÏχείου CSV - Show TOTP Εμφάνιση TOTP @@ -5228,6 +5417,10 @@ Are you sure you want to continue with this file? Copy &TOTP ΑντιγÏαφή &TOTP + + Copy Password and TOTP + ΑντιγÏαφή ÎšÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης και TOTP + E&mpty recycle bin Ά&δειασμα κάδου ανακÏκλωσης @@ -5252,10 +5445,6 @@ Are you sure you want to continue with this file? &Online Help &Διαδικτυακή Βοήθεια - - Go to online documentation - Μεταβείτε στο διαδικτυακό εγχειÏίδιο - &User Guide &Οδηγός ΧÏήσης @@ -5324,6 +5513,10 @@ Are you sure you want to continue with this file? Clone Group... Κλωνοποίηση Ομάδας... + + &XML File… + &XML ΑÏχείο… + Clear history ΕκκαθάÏιση ιστοÏÎ¹ÎºÎ¿Ï @@ -5356,6 +5549,10 @@ We recommend you use the AppImage available on our downloads page. ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Η έκδοση Qt ενδέχεται να Ï€Ïοκαλέσει αιφνίδια διακοπή λειτουÏγίας του KeePassXC με ΠληκτÏολόγιο Οθόνης. Σας συνιστοÏμε να χÏησιμοποιήσετε το AppImage που είναι διαθέσιμο στη σελίδα λήψεων. + + No Tags + ΧωÏίς Ετικέτες + Restore Entry(s) ΕπαναφοÏά καταχώÏησης(-ων)ΕπαναφοÏά καταχώÏησης(-ων) @@ -5384,6 +5581,10 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC Κλείσιμο KeePassXC + + %1 Entry(s) + % 1 ΚαταχώÏηση(εις)% 1 ΚαταχώÏηση(εις) + Please present or touch your YubiKey to continue… ΠαÏακαλώ παÏουσιάστε ή αγγίξτε το YubiKey για να συνεχίσετε… @@ -5396,6 +5597,274 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? ΠÏέπει να επανεκκινήσετε την εφαÏμογή για να εφαÏμόσετε αυτήν τη ÏÏθμιση. Θέλετε να κάνετε επανεκκίνηση τώÏα; + + Allow Screen Capture + Îα επιτÏέπεται η ΚαταγÏαφή Οθόνης + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Passkeys… + + + Import Passkey + Εισαγωγή Passkey + + + Quit Application + Έξοδος ΕφαÏμογής + + + Open About Dialog + Ανοίξτε το πλαίσιο διαλόγου Σχετικά με + + + Open Database + Άνοιγμα Βάσης Δεδομένων + + + Create Database + ΔημιουÏγία Βάσης Δεδομένων + + + Merge From Database + Συγχώνευση από Βάση Δεδομένων + + + Create Entry + ΔημιουÏγία ΚαταχώÏησης + + + Edit Entry + ΕπεξεÏγασία καταχώÏησης + + + Delete Entry + ΔιαγÏαφή ΚαταχώÏησης + + + Create Group + ΔημιουÏγία Ομάδας + + + Edit Group + ΕπεξεÏγασία Ομάδας + + + Delete Group + ΔιαγÏαφή Ομάδας + + + Download All Favicons + Λήψη όλων των Favicons + + + Sort Groups A-Z + Ταξινόμηση Ομάδων Α-Ω + + + Sort Groups Z-A + Ταξινόμηση Ομάδων Ω-Α + + + Save Database As + Αποθήκευση Βάσης Δεδομένων ως + + + Show Database Security + Εμφάνιση Ασφάλειας Βάσης Δεδομένων + + + Show Database Reports + Εμφάνιση ΑναφοÏών Βάσης Δεδομένων + + + Show Database Settings + Εμφάνιση Ρυθμίσεων Βάσης Δεδομένων + + + Show Passkeys + Εμφάνιση Passkeys + + + Clone Entry + Κλωνοποίηση ΚαταχώÏησης + + + Move Entry Up + Μετακίνηση ΚαταχώÏησης Πάνω + + + Move Entry Down + Μετακίνηση ΚαταχώÏησης Κάτω + + + Copy Username + ΑντιγÏαφή Ονόματος χÏήστη + + + Copy Password + ΑντιγÏαφή ÎšÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης + + + Show Application Settings + Εμφάνιση Ρυθμίσεων ΕφαÏμογής + + + Show Password Generator + Εμφάνιση ΓεννήτÏιας Κωδικών ΠÏόσβασης + + + Perform Auto-Type: {USERNAME} + Εκτέλεση Αυτόματης-ΠληκτÏολόγησης: {USERNAME} + + + Perform Auto-Type: {USERNAME}{ENTER} + Εκτέλεση Αυτόματης-ΠληκτÏολόγησης: {USERNAME}{ENTER} + + + Perform Auto-Type: {PASSWORD} + Εκτέλεση Αυτόματης-ΠληκτÏολόγησης: {PASSWORD} + + + Perform Auto-Type: {PASSWORD}{ENTER} + Εκτέλεση Αυτόματης-ΠληκτÏολόγησης: {PASSWORD}{ENTER} + + + Perform Auto-Type: {TOTP} + Εκτέλεση Αυτόματης-ΠληκτÏολόγησης: {TOTP} + + + Copy Title + ΑντιγÏαφή Τίτλου + + + Copy URL + ΑντιγÏαφή URL + + + Copy Notes + ΑντιγÏαφή Σημειώσεων + + + Export to CSV + Εξαγωγή σε CSV + + + Export to HTML + Εξαγωγή σε HTML + + + Import KeePass1 Database + Εισαγωγή Βάσης Δεδομένων KeePass1 + + + Import 1Password Vault + Εισαγωγή ΚÏÏπτης 1Password + + + Import CSV File + Εισαγωγή ΑÏχείου CSV + + + Show TOTP QR Code + Εμφάνιση TOTP QR Code + + + Set up TOTP + ΡÏθμιση TOTP + + + Empty Recycle Bin + Άδειασμα Κάδου ΑνακÏκλωσης + + + Open Donation Website + Ανοίξτε την Ιστοσελίδα ΔωÏεάς. + + + Open Bug Report + Ανοίξτε την ΑναφοÏά Σφαλμάτων + + + Open Online Documentation + Ανοίξτε την Online ΤεκμηÏίωση. + + + Open Keyboard Shortcuts Guide + Ανοίξτε τον Οδηγό ΣυντομεÏσεων ΠληκτÏολογίου + + + Save Database Backup + Αποθήκευση ΑντιγÏάφου Ασφαλείας Βάσης Δεδομένων + + + SSH Agent: Add Key + SSH Agent: ΠÏοσθήκη ÎšÎ»ÎµÎ¹Î´Î¹Î¿Ï + + + SSH Agent: Remove Key + SSH Agent: ΑφαίÏεση ÎšÎ»ÎµÎ¹Î´Î¹Î¿Ï + + + Toggle Compact Mode + Εναλλαγή σε ΛειτουÏγία ΣυμπαγοÏÏ‚ ΠÏοβολής + + + Set Theme: Automatic + ΕφαÏμογή Θέματος: Αυτόματο + + + Set Theme: Light + ΟÏισμός Θέματος: Φωτεινό + + + Set Theme: Dark + ΟÏισμός Θέματος: Σκοτεινό + + + Set Theme: Classic + ΟÏίσμος Θέματος: Κλασικό + + + Toggle Show Toolbar + Εναλλαγή Εμφάνισης ΕÏγαλειοθήκης + + + Toggle Show Preview Panel + Εναλλαγή Εμφάνισης Πίνακα ΠÏοεπισκόπησης + + + Toggle Always on Top + Εναλλαγή Πάντα σε ΠÏώτο Πλάνο + + + Toggle Hide Usernames + Εναλλαγή ΑπόκÏυψη Ονομάτων ΧÏηστών + + + Toggle Hide Passwords + Εναλλαγή ΑπόκÏυψης Κωδικών + + + Export to XML + Εξαγωγή σε XML + + + Toggle Allow Screen Capture + Εναλλαγή ΕπιτÏεπόμενης ΚαταγÏαφής Οθόνης + ManageDatabase @@ -5453,26 +5922,6 @@ We recommend you use the AppImage available on our downloads page. Overwriting %1 [%2] Αντικατάσταση %1 [%2] - - older entry merged from database "%1" - η παλαιότεÏη καταχώÏηση συγχωνεÏτηκε από τη βάση δεδομένων "%1" - - - Adding backup for older target %1 [%2] - ΠÏοσθήκη αντιγÏάφου ασφαλείας για παλαιότεÏο Ï€ÏοοÏισμό %1 [%2] - - - Adding backup for older source %1 [%2] - ΠÏοσθήκη αντιγÏάφου ασφαλείας για παλαιότεÏη Ï€Ïοέλευση %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - ΕπανεφαÏμογή παλαιότεÏου Ï€ÏοοÏÎ¹ÏƒÎ¼Î¿Ï ÎºÎ±Ï„Î±Ï‡ÏŽÏησης πάνω από τη νεότεÏη Ï€Ïοέλευση %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - ΕπανεφαÏμογή παλαιότεÏου Ï€ÏοοÏÎ¹ÏƒÎ¼Î¿Ï ÎºÎ±Ï„Î±Ï‡ÏŽÏησης πάνω από τη νεότεÏη Ï€Ïοέλευση %1 [%2] - Synchronizing from newer source %1 [%2] ΣυγχÏονισμός από νεότεÏη Ï€Ïοέλευση %1 [%2] @@ -5532,14 +5981,6 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Εδώ μποÏείτε να Ï€ÏοσαÏμόσετε τις Ïυθμίσεις κÏυπτογÏάφησης βάσης δεδομένων. Μην ανησυχείτε, μποÏείτε να τις αλλάξετε αÏγότεÏα στις Ïυθμίσεις της βάσης δεδομένων. - - Advanced Settings - Ρυθμίσεις για ΠÏοχωÏημένους - - - Simple Settings - Απλές Ρυθμίσεις - NewDatabaseWizardPageDatabaseKey @@ -5620,15 +6061,6 @@ We recommend you use the AppImage available on our downloads page. Αναμενόταν %1 bytes καθαÏÎ¿Ï ÎºÎµÎ¹Î¼Î­Î½Î¿Ï…, βÏέθηκαν %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Η ανάγνωση της βάσης δεδομένων δεν παÏήγαγε μια διεÏγασία -%1 - - OpVaultReader @@ -5702,6 +6134,10 @@ We recommend you use the AppImage available on our downloads page. Unknown cipher: %1 Άγνωστο κÏυπτογÏάφημα: %1 + + AES-256/GCM is currently not supported + Το AES-256/GCM δεν υποστηÏίζεται αυτήν τη στιγμή + Passphrase is required to decrypt this key Απαιτείται φÏάση Ï€Ïόσβασης για την αποκÏυπτογÏάφηση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï @@ -5768,26 +6204,178 @@ We recommend you use the AppImage available on our downloads page. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Οι κωδικοί Ï€Ïόσβασης δεν ταιÏιάζουν + SSH Key Generator + ΓεννήτÏια Κλειδιών SSH - Passwords match so far - Οι κωδικοί Ï€Ïόσβασης ταιÏιάζουν μέχÏι στιγμής + Type + ΤÏπος - Toggle Password (%1) - Εναλλαγή ÎšÏ‰Î´Î¹ÎºÎ¿Ï Î Ïόσβασης (%1) + Bits + Bits - Generate Password (%1) - ΔημιουÏγία ÎšÏ‰Î´Î¹ÎºÎ¿Ï Î Ïόσβασης (%1) + Comment + Σχόλιο + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - Εξαγωγή Passkey - Warning: Caps Lock enabled! - ΠÏοειδοποίηση: Το Caps Lock είναι ενεÏγοποιημένο! + Export the following Passkey entries. + Εξαγάγετε τις ακόλουθες καταχωÏήσεις Passkey. + + + Filenames will be generated with title and .passkey file extension. + Τα ονόματα αÏχείων θα δημιουÏγηθοÏν με τίτλο και επέκταση αÏχείου .passkey. + + + Export entries + Εξαγωγή καταχωÏήσεων + + + Export Selected + Εξαγωγή Επιλεγμένων + + + Cancel + ΆκυÏο + + + Export to folder + Εξαγωγή σε φάκελο + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: Εξαγωγή Passkey + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + Το αÏχείο "%1.passkey" υπάÏχει ήδη. +Θέλετε να το αντικαταστήσετε; + + + + Cannot open file + Δεν είναι δυνατό το άνοιγμα του αÏχείου + + + Cannot open file "%1" for writing. + Δεν είναι δυνατό το άνοιγμα του αÏχείου "%1" για εγγÏαφή. + + + Cannot write to file + Δεν είναι δυνατή η εγγÏαφή στο αÏχείο + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - Εισαγωγή Passkey + + + Username: %1 + Όνομα χÏήστη: %1 + + + Group + Όμαδα + + + Database + Βάση Δεδομένων + + + Import Passkey + Εισαγωγή Passkey + + + Import + Εισαγωγή + + + Cancel + ΆκυÏο + + + Import the following Passkey: + Εισαγάγετε το ακόλουθο Passkey: + + + Entry + ΚαταχώÏηση + + + Import the following Passkey to this entry: + Εισαγάγετε το ακόλουθο Passkey σε αυτήν την καταχώÏηση: + + + Create new entry + ΔημιουÏγία νέας καταχώÏησης + + + Default Passkeys group (Imported Passkeys) + ΠÏοεπιλεγμένη ομάδα Passkeys (Εισαγόμενα Passkeys) + + + Relying Party: %1 + ΣτηÏιζόμενο Party: %1 + + + + PasskeyImporter + + Passkey file + ΑÏχείο Passkey + + + All files + Όλα τα αÏχεία + + + Open Passkey file + Άνοιγμα αÏχείου Passkey + + + Cannot open file + Δεν είναι δυνατό το άνοιγμα του αÏχείου + + + Cannot open file "%1" for reading. + Δεν είναι δυνατό το άνοιγμα του αÏχείου "%1" για ανάγνωση. + + + Cannot import Passkey + Δεν είναι δυνατή η εισαγωγή Passkey + + + Cannot import Passkey file "%1". Data is missing. + Δεν είναι δυνατή η εισαγωγή αÏχείου Passkey "%1". Λείπουν δεδομένα. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + Δεν είναι δυνατή η εισαγωγή αÏχείου Passkey "%1". Το ιδιωτικό κλειδί λείπει ή είναι σε λάθος μοÏφή. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + Δεν είναι δυνατή η εισαγωγή αÏχείου Passkey "%1". +Λείπουν τα ακόλουθα δεδομένα: +%2 @@ -6052,6 +6640,30 @@ We recommend you use the AppImage available on our downloads page. Entropy: %1 bit ΕντÏοπία: %1 bit + + Password Quality: %1 + Ποιότητα ÎšÏ‰Î´Î¹ÎºÎ¿Ï Î Ïόσβασης: %1 + + + Poor + Password quality + Φτωχός + + + Weak + Password quality + ΑδÏναμη + + + Good + Password quality + Καλή + + + Excellent + Password quality + ΕξαιÏετική + Confirm Delete Wordlist Επιβεβαίωση διαγÏαφής λίστας λέξεων @@ -6098,14 +6710,37 @@ Do you want to overwrite it? Special Characters Ειδικοί χαÏακτήÏες + + + PasswordWidget - Password Quality: %1 - Ποιότητα ÎšÏ‰Î´Î¹ÎºÎ¿Ï Î Ïόσβασης: %1 + Passwords do not match + Οι κωδικοί Ï€Ïόσβασης δεν ταιÏιάζουν + + + Passwords match so far + Οι κωδικοί Ï€Ïόσβασης ταιÏιάζουν μέχÏι στιγμής + + + Toggle Password (%1) + Εναλλαγή ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης (%1) + + + Generate Password (%1) + ΔημιουÏγία ÎšÏ‰Î´Î¹ÎºÎ¿Ï Î Ïόσβασης (%1) + + + Warning: Caps Lock enabled! + ΠÏοειδοποίηση: Το Caps Lock είναι ενεÏγοποιημένο! + + + Quality: %1 + Ποιότητα: %1 Poor Password quality - Φτωχός + Φτωχή Weak @@ -6122,6 +6757,10 @@ Do you want to overwrite it? Password quality ΕξαιÏετική + + Toggle password visibility using Control + H. Open the password generator using Control + G. + ΕνεÏγοποίηση οÏατότητας ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης χÏησιμοποιώντας τον συνδυασμό πλήκτÏων Control + H. Άνοιγμα της γεννήτÏιας κωδικών Ï€Ïόσβασης χÏησιμοποιώντας τον συνδυασμό πλήκτÏων Control + G. + PickcharsDialog @@ -6176,6 +6815,10 @@ Do you want to overwrite it? Continue Συνέχεια + + Continue with weak password + Συνέχεια με αδÏναμο κωδικό Ï€Ïόσβασης + QObject @@ -6569,6 +7212,10 @@ Do you want to overwrite it? Too many arguments provided. ΠαÏέχονται πάÏα πολλά επιχειÏήματα. + + Path of the database. + ΔιαδÏομή της βάσης δεδομένων. + Target decryption time in MS for the database. ΧÏόνος αποκÏυπτογÏάφησης Ï€ÏοοÏÎ¹ÏƒÎ¼Î¿Ï ÏƒÎµ MS για τη βάση δεδομένων. @@ -6577,6 +7224,12 @@ Do you want to overwrite it? time χÏόνος + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + ΟÏίστε το αÏχείο ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î³Î¹Î± τη βάση δεδομένων. +Αυτή η επιλογή έχει καταÏγηθεί, χÏησιμοποιήστε τον --οÏισμό-αÏχειοÏ-κλειδιοÏ. + Set the key file for the database. ΟÏίστε το αÏχείο κλειδί για τη βάση δεδομένων. @@ -6589,10 +7242,6 @@ Do you want to overwrite it? Create a new database. ΔημιουÏγία νέας βάσης δεδομένων. - - Path of the database. - ΔιαδÏομή της βάσης δεδομένων. - Invalid decryption time %1. Μη έγκυÏος χÏόνος αποκÏυπτογÏάφησης %1. @@ -6637,6 +7286,158 @@ Do you want to overwrite it? Successfully created new database. Επιτυχής δημιουÏγία βάσης δεδομένων. + + Unset the password for the database. + ΚαταÏγήστε τον κωδικό Ï€Ïόσβασης για τη βάση δεδομένων. + + + Unset the key file for the database. + ΚαταÏγήστε τη ÏÏθμιση του αÏχείου ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î³Î¹Î± τη βάση δεδομένων. + + + Edit a database. + ΕπεξεÏγαστείτε μια βάση δεδομένων. + + + Cannot use %1 and %2 at the same time. + Δεν είναι δυνατή η ταυτόχÏονη χÏήση %1 και %2. + + + Could not change the database key. + Δεν ήταν δυνατή η αλλαγή του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î²Î¬ÏƒÎ·Ï‚ δεδομένων. + + + Database was not modified. + Η βάση δεδομένων δεν Ï„Ïοποποιήθηκε. + + + Writing the database failed: %1 + Η εγγÏαφή της βάσης δεδομένων απέτυχε: %1 + + + Successfully edited the database. + Έγινε επιτυχής επεξεÏγασία της βάσης δεδομένων. + + + Cannot remove password: The database does not have a password. + Δεν είναι δυνατή η αφαίÏεση ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης: Η βάση δεδομένων δεν έχει κωδικό Ï€Ïόσβασης. + + + Cannot remove file key: The database does not have a file key. + Δεν είναι δυνατή η αφαίÏεση του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î±Ïχείου: Η βάση δεδομένων δεν διαθέτει κλειδί αÏχείου. + + + Loading the new key file failed: %1 + Η φόÏτωση του νέου αÏχείου ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î±Ï€Î­Ï„Ï…Ï‡Îµ: %1 + + + Found unexpected Key type %1 + Î’Ïέθηκε μη αναμενόμενος Ï„Ïπος ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï %1 + + + Cannot remove all the keys from a database. + Δεν είναι δυνατή η κατάÏγηση όλων των κλειδιών από μια βάση δεδομένων. + + + Show a database's information. + Εμφάνιση των πληÏοφοÏιών μιας βάσης δεδομένων. + + + UUID: + UUID: + + + Name: + Όνομα: + + + Description: + ΠεÏιγÏαφή: + + + Cipher: + ΚÏυπτογÏάφημα: + + + KDF: + KDF: + + + Recycle bin is enabled. + Ο Κάδος ΑνακÏκλωσης είναι ενεÏγοποιημένος. + + + Recycle bin is not enabled. + Ο Κάδος ΑνακÏκλωσης δεν είναι ενεÏγοποιημένος. + + + Location + Τοποθεσία + + + Database created + ΔημιουÏγήθηκε βάση δεδομένων + + + Last saved + Τελευταία αποθήκευση + + + Unsaved changes + Μη αποθηκευμένες αλλαγές + + + yes + ναι + + + no + όχι + + + Number of groups + ΑÏιθμός ομάδων + + + Number of entries + ΑÏιθμός καταχωÏήσεων + + + Number of expired entries + ΑÏιθμός καταχωÏήσεων που έχουν λήξει + + + Unique passwords + Μοναδικοί κωδικοί Ï€Ïόσβασης + + + Non-unique passwords + Μη μοναδικοί κωδικοί Ï€Ïόσβασης + + + Maximum password reuse + Μέγιστη επαναχÏησιμοποίηση ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης + + + Number of short passwords + ΑÏιθμός μικÏών κωδικών Ï€Ïόσβασης + + + Number of weak passwords + ΑÏιθμός αδÏναμων κωδικών Ï€Ïόσβασης + + + Entries excluded from reports + ΚαταχωÏήσεις που εξαιÏοÏνται από τις αναφοÏές + + + Average password length + Μέσο μήκος ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης + + + %1 characters + %1 χαÏακτήÏες + Word count for the diceware passphrase. Πλήθος λέξεων για τη φÏάση Ï€Ïόσβασης diceware. @@ -6688,10 +7489,6 @@ Do you want to overwrite it? Enter new password for entry: Εισαγάγετε νέο κωδικό Ï€Ïόσβασης για καταχώÏηση: - - Writing the database failed: %1 - Η εγγÏαφή της βάσης δεδομένων απέτυχε: %1 - Successfully edited entry %1. Η καταχώÏιση %1 επεξεÏγάστηκε με επιτυχία. @@ -6916,106 +7713,6 @@ Do you want to overwrite it? Successfully imported database. Επιτυχής εισαγωγή βάσης δεδομένων. - - Show a database's information. - Εμφάνιση των πληÏοφοÏιών μιας βάσης δεδομένων. - - - UUID: - UUID: - - - Name: - Όνομα: - - - Description: - ΠεÏιγÏαφή: - - - Cipher: - ΚÏυπτογÏάφημα: - - - KDF: - KDF: - - - Recycle bin is enabled. - Ο Κάδος ΑνακÏκλωσης είναι ενεÏγοποιημένος. - - - Recycle bin is not enabled. - Ο Κάδος ΑνακÏκλωσης δεν είναι ενεÏγοποιημένος. - - - Location - Τοποθεσία - - - Database created - ΔημιουÏγήθηκε βάση δεδομένων - - - Last saved - Τελευταία αποθήκευση - - - Unsaved changes - Μη αποθηκευμένες αλλαγές - - - yes - ναι - - - no - όχι - - - Number of groups - ΑÏιθμός ομάδων - - - Number of entries - ΑÏιθμός καταχωÏήσεων - - - Number of expired entries - ΑÏιθμός καταχωÏήσεων που έχουν λήξει - - - Unique passwords - Μοναδικοί κωδικοί Ï€Ïόσβασης - - - Non-unique passwords - Μη μοναδικοί κωδικοί Ï€Ïόσβασης - - - Maximum password reuse - Μέγιστη επαναχÏησιμοποίηση ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης - - - Number of short passwords - ΑÏιθμός μικÏών κωδικών Ï€Ïόσβασης - - - Number of weak passwords - ΑÏιθμός αδÏναμων κωδικών Ï€Ïόσβασης - - - Entries excluded from reports - ΚαταχωÏήσεις που εξαιÏοÏνται από τις αναφοÏές - - - Average password length - Μέσο μήκος ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης - - - %1 characters - %1 χαÏακτήÏες - Unknown command %1 Άγνωστη εντολή %1 @@ -7188,6 +7885,10 @@ Available commands: Show the protected attributes in clear text. Εμφάνιση των Ï€Ïοστατευμένων χαÏακτηÏιστικών σε καθαÏÏŒ κείμενο. + + Show all the attributes of the entry. + Εμφάνιση όλων των χαÏακτηÏιστικών της καταχώÏησης. + Show the attachments of the entry. Εμφάνιση των συνημμένων της καταχώÏησης. @@ -7258,6 +7959,10 @@ Please consider generating a new key file. Invalid YubiKey serial %1 Μη έγκυÏος σειÏιακός αÏιθμός YubiKey %1 + + Please present or touch your YubiKey to continue. + ΠαÏακαλώ παÏουσιάστε ή αγγίξτε το YubiKey για να συνεχίσετε. + Enter password to encrypt database (optional): Εισαγάγετε κωδικό Ï€Ïόσβασης για την κÏυπτογÏάφηση της βάσης δεδομένων (Ï€ÏοαιÏετικά): @@ -7445,8 +8150,8 @@ Kernel: %3 %4 %1 λεπτό%1 λεπτά - Botan library must be at least 2.11.x, found %1.%2.%3 - Η Botan βιβλιοθήκη Ï€Ïέπει να είναι τουλάχιστον 2.11.x, βÏέθηκε %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + Η βιβλιοθήκη Botan Ï€Ïέπει να είναι τουλάχιστον %1, βÏέθηκε %2.%3.%4 Cryptographic libraries: @@ -7686,10 +8391,6 @@ Kernel: %3 %4 read password of the database from stdin διαβάστε τον κωδικό Ï€Ïόσβασης της βάσης δεδομένων από το stdin - - allow app screen recordering and screenshots - Îα επιτÏέπεται η εγγÏαφή οθόνης εφαÏμογών και τα στιγμιότυπα οθόνης - Locked databases. Κλειδωμένες βάσεις δεδομένων. @@ -7702,6 +8403,10 @@ Kernel: %3 %4 Another instance of KeePassXC is already running. Μία άλλη διεÏγασία του KeePassXC εκτελείται ήδη. + + KeePassXC is not running. No open database to lock + Το KeePassXC δεν εκτελείται. Δεν υπάÏχει ανοιχτή βάση δεδομένων για κλείδωμα + Fatal error while testing the cryptographic functions. ΑνεπανόÏθωτο σφάλμα κατά τον έλεγχο των κÏυπτογÏαφικών συναÏτήσεων. @@ -7710,10 +8415,6 @@ Kernel: %3 %4 KeePassXC - Error KeePassXC - Σφάλμα - - Warning: Failed to prevent screenshots on a top level window! - ΠÏοειδοποίηση: Απέτυχε η αποτÏοπή στιγμιότυπων οθόνης σε ένα παÏάθυÏο ανώτατου επιπέδου! - Database password: Κωδικός Ï€Ïόσβασης βάσης δεδομένων: @@ -7737,8 +8438,222 @@ Kernel: %3 %4 Απέτυχε η υπογÏαφή Ï€Ïόκλησης χÏησιμοποιώντας το Windows Hello. - Please present or touch your YubiKey to continue. - ΠαÏακαλώ παÏουσιάστε ή αγγίξτε το YubiKey για να συνεχίσετε. + Warning: Failed to block screenshot capture on a top-level window. + ΠÏοειδοποίηση: Αποτυχία Î±Ï€Î¿ÎºÎ»ÎµÎ¹ÏƒÎ¼Î¿Ï Î»Î®ÏˆÎ·Ï‚ στιγμιότυπου οθόνης σε παÏάθυÏο ανώτατου επιπέδου. + + + Invalid Cipher + Μη έγκυÏη ΚÏυπτογÏάφηση + + + Invalid KDF + Μη έγκυÏο KDF + + + Access to all entries is denied + Η Ï€Ïόσβαση σε όλες τις καταχωÏήσεις απαγοÏεÏεται + + + allow screenshots and app recording (Windows/macOS) + να επιτÏέπονται στιγμιότυπα οθόνης και εφαÏμογές εγγÏαφής (Windows/macOS) + + + Enter Shortcut + Εισάγετε Συντόμευση + + + Action + ΕνέÏγεια + + + Shortcuts + ΣυντομεÏσεις + + + Attestation not supported + Η πιστοποίηση δεν υποστηÏίζεται + + + Credential is excluded + Τα διαπιστευτήÏια εξαιÏοÏνται + + + Passkeys request canceled + Το αίτημα Passkeys ακυÏώθηκε + + + Invalid user verification + Μη έγκυÏη επαλήθευση χÏήστη + + + Empty public key + Κενό δημόσιο κλειδί + + + Invalid URL provided + ΠαÏέχεται μη έγκυÏη διεÏθυνση URL + + + Passkeys + Passkeys + + + AES initialization failed + Η Ï€Ïοετοιμασία του AES απέτυχε + + + AES encrypt failed + Η κÏυπτογÏάφηση AES απέτυχε + + + Failed to store in Linux Keyring + Αποτυχία αποθήκευσης στο Linux Keyring + + + Polkit returned an error: %1 + Το Polkit επέστÏεψε σφάλμα: %1 + + + Could not locate key in keyring + Δεν ήταν δυνατός ο εντοπισμός ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï ÏƒÏ„Î¿ keyring + + + Could not read key in keyring + Δεν ήταν δυνατή η ανάγνωση του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï ÏƒÏ„Î¿ keyring + + + AES decrypt failed + Η αποκÏυπτογÏάφηση AES απέτυχε + + + No Polkit authentication agent was available + Δεν υπήÏχε διαθέσιμος παÏάγοντας ελέγχου ταυτότητας Polkit + + + Polkit authorization failed + Η εξουσιοδότηση Polkit απέτυχε + + + No Quick Unlock provider is available + Δεν υπάÏχει διαθέσιμη υπηÏεσία παÏοχής ΓÏήγοÏου Ξεκλειδώματος + + + Failed to init KeePassXC crypto. + Αποτυχία εκκίνησης κÏυπτογÏάφησης KeePassXC. + + + Failed to encrypt key data. + Αποτυχία κÏυπτογÏάφησης βασικών δεδομένων. + + + Failed to get Windows Hello credential. + Αποτυχία λήψης διαπιστευτηÏίων Windows Hello. + + + Failed to decrypt key data. + Αποτυχία αποκÏυπτογÏάφηση βασικών δεδομένων. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + Η Ï€Ïοέλευση είναι κενή ή δεν επιτÏέπεται + + + Effective domain is not a valid domain + Ο αποτελεσματικός τομέας δεν είναι έγκυÏος τομέας + + + Origin and RP ID do not match + Η Ï€Ïοέλευση και το RP ID δεν ταιÏιάζουν + + + No supported algorithms were provided + Δεν παÏέχονται υποστηÏιζόμενοι αλγόÏιθμοι + + + Wait for timer to expire + ΠεÏιμένετε να λήξει ο χÏονοδιακόπτης + + + Unknown Passkeys error + Άγνωστο σφάλμα Passkeys + + + Challenge is shorter than required minimum length + Η Ï€Ïόκληση είναι μικÏότεÏη από το απαιτοÏμενο ελάχιστο μήκος + + + user.id does not match the required length + ο αÏιθμός ταυτότητας του χÏήστη δεν αντιστοιχεί στο απαιτοÏμενο μήκος @@ -7777,18 +8692,6 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - ΕξαίÏεση ληγμένων καταχωÏήσεων από την αναφοÏά - - - Show only entries which have URL set - Εμφάνιση μόνο καταχωÏήσεων που έχουν οÏιστεί URL - - - Show only entries which have browser settings in custom data - Εμφάνιση μόνο καταχωÏήσεων που έχουν Ïυθμίσεις Ï€ÏογÏάμματος πεÏιήγησης σε Ï€ÏοσαÏμοσμένα δεδομένα - Double-click entries to edit. Κάντε διπλό κλικ στις καταχωÏήσεις για επεξεÏγασία. @@ -7853,17 +8756,25 @@ Kernel: %3 %4 Exclude from reports ΕξαίÏεση από αναφοÏές + + Only show entries that have a URL + Εμφάνιση μόνο καταχωÏίσεων που έχουν διεÏθυνση URL + + + Only show entries that have been explicitly allowed or denied + Εμφάνιση μόνο καταχωÏήσεων που έχουν επιτÏαπεί ή αποÏÏιφθεί Ïητά + + + Show expired entries + Εμφάνιση καταχωÏήσεων που έχουν λήξει + + + (Expired) + (Εχει λήξει) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - ΕξαίÏεση ληγμένων καταχωÏήσεων από την αναφοÏά - - - Also show entries that have been excluded from reports - Εμφάνιση επίσης καταχωÏήσεων που έχουν εξαιÏεθεί από αναφοÏές - Hover over reason to show additional details. Double-click entries to edit. Τοποθετήστε το δείκτη του Ï€Î¿Î½Ï„Î¹ÎºÎ¹Î¿Ï Î³Î¹Î± να εμφανίσετε επιπλέον λεπτομέÏειες. Κάντε διπλό κλικ στις καταχωÏήσεις για επεξεÏγασία. @@ -7939,6 +8850,18 @@ Kernel: %3 %4 Exclude from reports ΕξαίÏεση από αναφοÏές + + Show expired entries + Εμφάνιση καταχωÏήσεων που έχουν λήξει + + + Show entries that have been excluded from reports + Εμφάνιση καταχωÏήσεων που έχουν εξαιÏεθεί από τις αναφοÏές + + + (Expired) + (Εχει λήξει) + ReportsWidgetHibp @@ -8035,6 +8958,65 @@ Kernel: %3 %4 ΕξαίÏεση από αναφοÏές + + ReportsWidgetPasskeys + + Export + Εξαγωγή + + + Import + Εισαγωγή + + + List of entry URLs + Λίστα διευθÏνσεων URL καταχώÏησης + + + Please wait, list of entries with Passkeys is being updated… + ΠεÏιμένετε, η λίστα καταχωÏήσεων με Passkey ενημεÏώνεται… + + + No entries with Passkeys. + Δεν υπάÏχουν καταχωÏήσεις με Passkeys. + + + Title + Τίτλος + + + Path + ΔιαδÏομή + + + Username + Όνομα χÏήστη + + + URLs + ΔιευθÏνσεις URL + + + Edit Entry… + ΕπεξεÏγασία ΚαταχώÏησης... + + + Delete Entry(s)… + ΔιαγÏαφή καταχώÏησης;ΔιαγÏαφή καταχωÏήσεων; + + + Relying Party + ΣτηÏιζόμενο Party + + + Show expired entries + Εμφάνιση καταχωÏήσεων που έχουν λήξει + + + (Expired) + (Εχει λήξει) + + ReportsWidgetStatistics @@ -8274,6 +9256,10 @@ Kernel: %3 %4 Search Help Βοήθεια αναζήτησης + + Save Search + Αποθήκευση Αναζήτησης + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8505,11 +9491,38 @@ Kernel: %3 %4 Εξαγωγή σε %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + Κάντε διπλό κλικ σε μια ενέÏγεια για να αλλάξετε τη συντόμευσή της. + + + Shortcut Conflict + Διένεξη ΣυντομεÏσεων + + + Filter... + ΦίλτÏο... + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + Η συντόμευση %1 έÏχεται σε διένεξη με την '%2'. Îα αντικατασταθεί η συντόμευση; + + + Reset Shortcuts + ΕπαναφοÏά ΣυντομεÏσεων + + TagModel - All - Όλες + Clear Search + ΕκκαθάÏιση Αναζήτησης + + + All Entries + Όλες οι ΚαταχωÏήσεις Expired @@ -8520,6 +9533,25 @@ Kernel: %3 %4 ΑδÏναμοι Κωδικοί Ï€Ïόσβασης + + TagView + + Remove Search + ΚατάÏγηση Αναζήτησης + + + Remove Tag + ΚατάÏγηση Ετικέτας + + + Confirm Remove Tag + Επιβεβαιώστε την ΚατάÏγηση Ετικέτας + + + Remove tag "%1" from all entries in this database? + Îα καταÏγηθεί η ετικέτα "%1" από όλες τις καταχωÏήσεις σε αυτήν τη βάση δεδομένων; + + TotpDialog @@ -8677,26 +9709,6 @@ Example: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Ξεκινήστε να αποθηκεÏετε τους κωδικοÏÏ‚ σας με ασφάλεια σε μία βάση δεδομένων KeePassXC - - Create new database - ΔημιουÏγία νέας βάσης δεδομένων - - - Open existing database - Άνοιγμα υπάÏχουσας βάσης δεδομένων - - - Import from KeePass 1 - Εισαγωγή από KeePass 1 - - - Import from 1Password - Εισαγωγή από 1Password - - - Import from CSV - Εισαγωγή από CSV - Recent databases ΠÏόσφατες βάσεις δεδομένων @@ -8709,6 +9721,18 @@ Example: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Καλώς οÏίσατε στο KeePassXC %1 + + Create Database + ΔημιουÏγία Βάσης Δεδομένων + + + Open Database + Άνοιγμα Βάσης Δεδομένων + + + Import File + + WinUtils @@ -8725,31 +9749,8 @@ Example: JBSWY3DPEHPK3PXP Δεν ήταν δυνατή η καταχώÏηση καθολικής συντόμευσης - - WindowsHello - - Failed to init KeePassXC crypto. - Αποτυχία εκκίνησης κÏυπτογÏάφησης KeePassXC. - - - Failed to encrypt key data. - Αποτυχία κÏυπτογÏάφησης βασικών δεδομένων. - - - Failed to get Windows Hello credential. - Αποτυχία λήψης διαπιστευτηÏίων Windows Hello. - - - Failed to decrypt key data. - Αποτυχία αποκÏυπτογÏάφηση βασικών δεδομένων. - - YubiKey - - %1 No interface, slot %2 - %1 ΧωÏίς διεπαφή, υποδοχή %2 - General: Γενικά: @@ -8761,14 +9762,6 @@ Example: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - Ανανέωση hardware tokens - - - Refresh - Ανανέωση - Hardware key slot selection Επιλογή υποδοχής Ï…Î»Î¹ÎºÎ¿Ï ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï @@ -8801,10 +9794,6 @@ Example: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove Η ΠÏόκληση-ΑπόκÏιση οÏίστηκε, κάντε κλικ για να την αλλάξετε ή να την καταÏγήσετε - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>Εάν είστε ιδιοκτήτης ενός <a href="https://www.yubico.com/">YubiKey</a> ή <a href="https://onlykey.io">OnlyKey</a>, μποÏείτε να το χÏησιμοποιήσετε για Ï€Ïόσθετη ασφάλεια.</p><p>Το κλειδί απαιτεί μία από τις υποδοχές του να Ï€ÏογÏαμματιστεί ως <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 ΠÏόκληση-ΑπόκÏιση</a>.</p> - Detecting hardware keys… Εντοπισμός hardware κλειδιών... @@ -8813,28 +9802,21 @@ Example: JBSWY3DPEHPK3PXP No hardware keys detected Δεν εντοπίστηκαν hardware κλειδιά - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 ΚαθοÏίστηκε μη έγκυÏη υποδοχή - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + <p>Εάν είστε ιδιοκτήτης ενός <a href="https://www.yubico.com/">YubiKey</a> ή <a href="https://onlykey.io">OnlyKey</a>, μποÏείτε να το χÏησιμοποιήσετε για Ï€Ïόσθετη ασφάλεια.</p> <p>Το κλειδί απαιτεί μία από τις υποδοχές του να Ï€ÏογÏαμματιστεί ως <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 ΠÏόκληση-ΑπόκÏιση</a>.</p> + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] ΠÏόκληση-ΑπόκÏιση - Slot %3 - The YubiKey PCSC interface has not been initialized. Η διεπαφή YubiKey PCSC δεν έχει αÏχικοποιηθεί. - - Hardware key is currently in use. - Το hardware κλειδί χÏησιμοποιείται αυτήν τη στιγμή. - Could not find or access hardware key with serial number %1. Please present it to continue. Δεν ήταν δυνατή η εÏÏεση ή η Ï€Ïόσβαση στο κλειδί Ï…Î»Î¹ÎºÎ¿Ï Î¼Îµ τον σειÏιακό αÏιθμό %1. ΠαÏακαλώ παÏουσιάστε το για να συνεχίσετε. @@ -8851,6 +9833,21 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 Αποτυχία ολοκλήÏωσης μιας Ï€Ïόκλησης-απάντησης, ο κωδικός σφάλματος PCSC ήταν: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + Πατήστε + + + Passive + USB Challenge-Response Key no interaction required + Παθητικό + YubiKeyInterfaceUSB @@ -8858,14 +9855,6 @@ Example: JBSWY3DPEHPK3PXP Unknown Άγνωστο - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] ΔιαμοÏφωμένη Yποδοχή - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] ΠÏόκληση-ΑπόκÏιση - Slot %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8880,10 +9869,6 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. Η διεπαφή USB YubiKey δεν έχει αÏχικοποιηθεί. - - Hardware key is currently in use. - Το hardware κλειδί χÏησιμοποιείται αυτήν τη στιγμή. - Could not find hardware key with serial number %1. Please plug it in to continue. Δεν ήταν δυνατή η εÏÏεση hardware ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î¼Îµ σειÏιακό αÏιθμό %1. ΠαÏακαλώ συνδέστε το για να συνεχίσετε. @@ -8900,5 +9885,15 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 Απέτυχε η ολοκλήÏωση ενός challange-response, το συγκεκÏιμένο σφάλμα ήταν: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_en.ts b/share/translations/keepassxc_en.ts index 5fa8e7542..4f84ea6e8 100644 --- a/share/translations/keepassxc_en.ts +++ b/share/translations/keepassxc_en.ts @@ -227,6 +227,10 @@ Select backup storage directory + + This setting cannot be enabled when minimize on unlock is enabled. + + ApplicationSettingsWidgetGeneral @@ -495,6 +499,14 @@ Remember last typed entry for: + + recent files + + + + Show passwords in color + + ApplicationSettingsWidgetSecurity @@ -584,6 +596,10 @@ Use DuckDuckGo service to download website icons + + Hide TOTP in the entry preview panel + + AutoType @@ -644,6 +660,10 @@ Invalid placeholder: %1 + + Entry does not have attribute for PICKCHARS: %1 + + AutoTypeAssociationsModel @@ -803,10 +823,6 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - - Ok @@ -820,23 +836,78 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Please select the correct database for saving credentials. + + KeePassXC - Select Database + + + + + BrowserPasskeysConfirmationDialog + + Cancel + + + + Update + + + + Authenticate + + + + Register new + + + + Register + + + + Timeout in <b>%n</b> seconds... + + + + + + + Do you want to register Passkey for: + + + + Existing Passkey found. +Do you want to register a new Passkey for: + + + + Select the existing Passkey and press Update to replace it. + + + + Authenticate Passkey credentials for: + + + + Relying Party: %1 + + + + Username: %1 + + + + KeePassXC - Passkey credentials + + BrowserService - - KeePassXC: Create a new group - - A request for creating a new group "%1" has been received. Do you want to create this group? - - KeePassXC: New key association request - - You have received an association request for the following database: %1 @@ -849,37 +920,62 @@ chrome-laptop. Save and allow access - - KeePassXC: Overwrite existing key? - - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? - - KeePassXC: Update Entry - - Do you want to update the information in %1 - %2? - - KeePassXC: Delete entry - - A request for deleting entry "%1" has been received. Do you want to delete the entry? + + %1 (Passkey) + + + + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + + + + KeePassXC - Create a new group + + + + KeePassXC - New key association request + + + + KeePassXC - Overwrite existing key? + + + + KeePassXC - Update Passkey + + + + KeePassXC - Update Entry + + + + KeePassXC - Delete entry + + Converting attributes to custom data… + + Passkey + + Abort @@ -1128,14 +1224,6 @@ Would you like to migrate your existing settings now? Please see special instructions for browser extension use below - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - - - - <b>Warning:</b> The following options can be dangerous! - - Executable Files @@ -1152,6 +1240,30 @@ Would you like to migrate your existing settings now? Select native messaging host folder location + + <b>Warning:</b> Only adjust these settings if necessary. + + + + The custom proxy location does not exist. + + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1174,14 +1286,6 @@ Would you like to migrate your existing settings now? CsvImportWidget - - Import CSV fields - - - - filename - - size, rows, columns @@ -1290,18 +1394,6 @@ Would you like to migrate your existing settings now? Column %1 - - Imported from CSV file - - - - Original data: - - - - Error(s) detected in CSV file! - - [%n more message(s) skipped] @@ -1310,31 +1402,19 @@ Would you like to migrate your existing settings now? - Error + Failed to parse CSV file: %1 - CSV import: writer has errors: -%1 + Imported from CSV file: %1 CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - - - - %n byte(s) - - - - - %n row(s) + CSV row count @@ -1342,6 +1422,7 @@ Would you like to migrate your existing settings now? %n column(s) + CSV column count @@ -1418,39 +1499,10 @@ Backup database located at %2 Password field - - Enter Additional Credentials (if any): - - - - Key File: - - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - - - - Key file help - - Hardware key slot selection - - Hardware Key: - - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - - - - Hardware key help - - Key file to unlock the database @@ -1463,14 +1515,6 @@ Backup database located at %2 Browse… - - Refresh hardware tokens - - - - Refresh - - Unlock Database @@ -1524,10 +1568,6 @@ To prevent this error from appearing, you must go to "Database Settings / S Retry with empty password - - Failed to authenticate with Windows Hello - - Failed to authenticate with Touch ID @@ -1565,20 +1605,63 @@ To prevent this error from appearing, you must go to "Database Settings / S - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. + authenticate to access the database - Detecting hardware keys… + Select Key File: - No hardware keys detected + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> - Select hardware key… + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + + + + Windows Hello setup was canceled or failed. Quick unlock has not been enabled. + + + + Failed to authenticate with Windows Hello: %1 @@ -1692,18 +1775,10 @@ This may prevent connection to the browser plugin. This may prevent connection to the browser plugin. - - KeePassXC: No keys found - - No shared encryption keys found in KeePassXC settings. - - KeePassXC: Removed keys from database - - Successfully removed %n encryption key(s) from KeePassXC settings. @@ -1724,10 +1799,6 @@ Permissions to access entries will be revoked. Abort - - KeePassXC: Removed permissions - - Successfully removed permissions from %n entry(s). @@ -1735,10 +1806,6 @@ Permissions to access entries will be revoked. - - KeePassXC: No entry with permissions found! - - The active database does not contain an entry with permissions. @@ -1761,6 +1828,22 @@ This is necessary to maintain compatibility with the browser plugin. This is only necessary if your database is a copy of another and the browser extension cannot connect. + + No keys found + + + + Removed keys from database + + + + Removed permissions + + + + No entry with permissions found! + + DatabaseSettingsWidgetDatabaseKey @@ -2010,18 +2093,10 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry - - Max. history items: - - Maximum size of history per entry - - Max. history size: - - MiB @@ -2051,6 +2126,35 @@ This action is not reversible. (old) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + + + + Limit the amount of history items per entry to: + + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + + + + Limit the total size of history items per entry to: + + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + + DatabaseSettingsWidgetKeeShare @@ -2180,26 +2284,10 @@ This is definitely a bug, please report it to the developers. CSV file - - Select CSV file - - Merge database - - KeePass 1 database - - - - Open KeePass 1 database - - - - Open OPVault - - Export database to CSV file @@ -2220,27 +2308,26 @@ This is definitely a bug, please report it to the developers. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - - New Database - - - - %1 [New Database] - Database tab name modifier - - %1 [Locked] Database tab name modifier + + Export database to XML file + + + + XML file + + + + Writing the XML file failed + + DatabaseWidget - - Database Tags - - Searching… @@ -2398,6 +2485,19 @@ Disable safe saves and try again? Could not find database file: %1 + + New Database + + + + %1 [New Database] + Database tab name modifier + + + + Searches and Tags + + Entries expiring within %1 day(s) @@ -2405,6 +2505,18 @@ Disable safe saves and try again? + + Save + + + + Enter a unique name or overwrite an existing search from the list: + + + + Save Search + + EditEntryWidget @@ -2826,22 +2938,10 @@ Would you like to correct it? Notes field - - Toggle the checkbox to reveal the notes section. - - Username field - - Toggle notes visible - - - - Notes: - - Expiration field @@ -2858,14 +2958,6 @@ Would you like to correct it? Presets - - Password: - - - - URL: - - Url field @@ -2874,18 +2966,10 @@ Would you like to correct it? Download favicon for URL - - Title: - - Title field - - Username: - - Password field @@ -2894,18 +2978,42 @@ Would you like to correct it? Toggle expiration - - Expires: - - - - Tags: - - Tags list + + &Username: + + + + &Title: + + + + &Password: + + + + UR&L: + + + + &Notes: + + + + Toggle notes visibility + + + + T&ags: + + + + &Expires: + + EditEntryWidgetSSHAgent @@ -3044,10 +3152,6 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - - These settings affect to the group's behaviour with the browser extension. @@ -3084,6 +3188,14 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups + + Omit WWW subdomain from matching: + + + + Omit WWW subdomain from matching toggle for this and sub groups + + EditGroupWidgetKeeShare @@ -3315,10 +3427,6 @@ Supported extensions are: %1. Unable to fetch favicon. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - - Existing icon selected. @@ -3360,6 +3468,10 @@ Supported extensions are: %1. + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + + EditWidgetProperties @@ -3890,6 +4002,14 @@ Error: %1 Disabled + + Double click to copy value + + + + Double click to copy to clipboard + + EntryURLModel @@ -3897,6 +4017,10 @@ Error: %1 Invalid URL + + Duplicate URL + + EntryView @@ -3912,6 +4036,13 @@ Error: %1 Reset to defaults + + + %1 entry(s)... + + + + + ExportDialog @@ -4133,6 +4264,147 @@ You can enable the DuckDuckGo website icon service in the security section of th + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + + + + Entry count: %1 + + + + Group + + + + Title + + + + Username + + + + Password + + + + Url + + + + + ImportWizardPageSelect + + Form + + + + Import File Selection + + + + Password: + + + + Key File: + + + + Browse… + + + + Import Into: + + + + New Database + + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + + + + Select import file + + + + All files + + + + Key files + + + + Select key file + + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4560,17 +4832,6 @@ Line %2, column %3 - - KeePass1OpenWidget - - Import KeePass1 Database - - - - Unable to open the database. - - - KeePass1Reader @@ -4924,10 +5185,6 @@ Are you sure you want to continue with this file? &Recent Databases - - &Import - - &Export @@ -5148,10 +5405,6 @@ Are you sure you want to continue with this file? Copy title to clipboard - - &URL - - Copy URL to clipboard @@ -5379,6 +5632,65 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? + + Tags + + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + + + + %1 Entry(s) + + + + + + + Copy Password and TOTP + + + + &XML File… + + + + XML File… + + + + Copy &URL + + + + Allow Screen Capture + + + + Passkeys + + + + Import Passkey + + + + No Tags + + ManageDatabase @@ -5603,14 +5915,6 @@ We recommend you use the AppImage available on our downloads page. - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - - - OpVaultReader @@ -5748,27 +6052,160 @@ We recommend you use the AppImage available on our downloads page. Unexpected EOF when writing private key + + AES-256/GCM is currently not supported + + - PasswordEdit + PasskeyExportDialog - Passwords do not match + KeePassXC - Passkey Export - Passwords match so far + Export the following Passkey entries. - Toggle Password (%1) + Filenames will be generated with title and .passkey file extension. - Generate Password (%1) + Export entries - Warning: Caps Lock enabled! + Export Selected + + + + Cancel + + + + Export to folder + + + + + PasskeyExporter + + KeePassXC: Passkey Export + + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + + Cannot open file + + + + Cannot open file "%1" for writing. + + + + Cannot write to file + + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + + + + Username: %1 + + + + Group + + + + Database + + + + Import Passkey + + + + Import + + + + Cancel + + + + Import the following Passkey: + + + + Entry + + + + Import the following Passkey to this entry: + + + + Create new entry + + + + Default Passkeys group (Imported Passkeys) + + + + Relying Party: %1 + + + + + PasskeyImporter + + Passkey file + + + + All files + + + + Open Passkey file + + + + Cannot open file + + + + Cannot open file "%1" for reading. + + + + Cannot import Passkey + + + + Cannot import Passkey file "%1". Data is missing. + + + + Cannot import Passkey file "%1". Private key is missing or malformed. + + + + Cannot import Passkey file "%1". +The following data is missing: +%2 @@ -5950,10 +6387,6 @@ We recommend you use the AppImage available on our downloads page. Also choose from: - - Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" - - Exclude look-alike characters @@ -6103,6 +6536,61 @@ Do you want to overwrite it? Password quality + + Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" + + + + + PasswordWidget + + Passwords do not match + + + + Passwords match so far + + + + Toggle Password (%1) + + + + Generate Password (%1) + + + + Warning: Caps Lock enabled! + + + + Quality: %1 + + + + Poor + Password quality + + + + Weak + Password quality + + + + Good + Password quality + + + + Excellent + Password quality + + + + Toggle password visibilty using Control + H. Open the password generator using Control + G. + + PickcharsDialog @@ -7445,7 +7933,7 @@ Kernel: %3 %4 - Botan library must be at least 2.11.x, found %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 @@ -7710,10 +8198,6 @@ Kernel: %3 %4 read password of the database from stdin - - allow app screen recordering and screenshots - - Locked databases. @@ -7734,10 +8218,6 @@ Kernel: %3 %4 KeePassXC - Error - - Warning: Failed to prevent screenshots on a top level window! - - Database password: @@ -7760,10 +8240,221 @@ Kernel: %3 %4 Failed to sign challenge using Windows Hello. + + Warning: Failed to block screenshot capture on a top-level window. + + + + Invalid Cipher + + + + Invalid KDF + + Please present or touch your YubiKey to continue. + + Show all the attributes of the entry. + + + + Edit a database. + + + + Could not change the database key. + + + + Database was not modified. + + + + Successfully edited the database. + + + + Loading the new key file failed: %1 + + + + Unset the password for the database. + + + + Unset the key file for the database. + + + + Cannot use %1 and %2 at the same time. + + + + Cannot remove all the keys from a database. + + + + Passkeys + + + + Found unexpected Key type %1 + + + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + + + + KeePassXC is not running. No open database to lock + + + + allow screenshots and app recording (Windows/macOS) + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length + + + + Access to all entries is denied + + + + Attestation not supported + + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Cannot remove password: The database does not have a password. + + + + Cannot remove file key: The database does not have a file key. + + + + Credential is excluded + + QtIOCompressor @@ -7801,18 +8492,6 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - - - - Show only entries which have URL set - - - - Show only entries which have browser settings in custom data - - Double-click entries to edit. @@ -7880,17 +8559,25 @@ Kernel: %3 %4 Exclude from reports + + Only show entries that have a URL + + + + Only show entries that have been explicitly allowed or denied + + + + Show expired entries + + + + (Expired) + + ReportsWidgetHealthcheck - - Exclude expired entries from the report - - - - Also show entries that have been excluded from reports - - Hover over reason to show additional details. Double-click entries to edit. @@ -7969,6 +8656,18 @@ Kernel: %3 %4 Exclude from reports + + Show expired entries + + + + Show entries that have been excluded from reports + + + + (Expired) + + ReportsWidgetHibp @@ -8068,6 +8767,68 @@ Kernel: %3 %4 + + ReportsWidgetPasskeys + + Export + + + + Import + + + + List of entry URLs + + + + Please wait, list of entries with Passkeys is being updated… + + + + No entries with Passkeys. + + + + Title + + + + Path + + + + Username + + + + URLs + + + + Edit Entry… + + + + Delete Entry(s)… + + + + + + + Relying Party + + + + Show expired entries + + + + (Expired) + + + ReportsWidgetStatistics @@ -8320,6 +9081,10 @@ Kernel: %3 %4 Limit search to selected group + + Save Search + + SettingsClientModel @@ -8532,10 +9297,6 @@ Kernel: %3 %4 TagModel - - All - - Expired @@ -8544,6 +9305,33 @@ Kernel: %3 %4 Weak Passwords + + All Entries + + + + Clear Search + + + + + TagView + + Remove Search + + + + Remove Tag + + + + Confirm Remove Tag + + + + Remove tag "%1" from all entries in this database? + + TotpDialog @@ -8704,26 +9492,6 @@ Example: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database - - Create new database - - - - Open existing database - - - - Import from KeePass 1 - - - - Import from 1Password - - - - Import from CSV - - Recent databases @@ -8736,6 +9504,18 @@ Example: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 + + Create Database + + + + Open Database + + + + Import File + + WinUtils @@ -8773,10 +9553,6 @@ Example: JBSWY3DPEHPK3PXP YubiKey - - %1 No interface, slot %2 - - General: @@ -8788,14 +9564,6 @@ Example: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - - - - Refresh - - Hardware key slot selection @@ -8840,28 +9608,17 @@ Example: JBSWY3DPEHPK3PXP No hardware keys detected - - - YubiKeyInterface - %1 Invalid slot specified - %2 + Refresh hardware keys YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - - The YubiKey PCSC interface has not been initialized. - - Hardware key is currently in use. - - Could not find or access hardware key with serial number %1. Please present it to continue. @@ -8878,6 +9635,21 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + + + + Passive + USB Challenge-Response Key no interaction required + + YubiKeyInterfaceUSB @@ -8885,14 +9657,6 @@ Example: JBSWY3DPEHPK3PXP Unknown - - (USB) %1 [%2] Configured Slot - %3 - - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - - Press USB Challenge-Response Key interaction request @@ -8907,10 +9671,6 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. - - Hardware key is currently in use. - - Could not find hardware key with serial number %1. Please plug it in to continue. @@ -8927,5 +9687,15 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + diff --git a/share/translations/keepassxc_en_GB.ts b/share/translations/keepassxc_en_GB.ts index f9edf4585..7a356b2e1 100644 --- a/share/translations/keepassxc_en_GB.ts +++ b/share/translations/keepassxc_en_GB.ts @@ -80,6 +80,10 @@ Details Details + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Remember Remember @@ -88,10 +92,6 @@ Allow Selected Allow Selected - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - Deny All && Future Deny All && Future @@ -122,6 +122,10 @@ Use OpenSSH Use OpenSSH + + Use both agents + Use both agents + SSH_AUTH_SOCK override SSH_AUTH_SOCK override @@ -150,10 +154,6 @@ SSH Agent connection is working! SSH Agent connection is working! - - Use both agents - Use both agents - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security Security + + This setting cannot be enabled when minimize on unlock is enabled. + This setting cannot be enabled when minimise on unlock is enabled. + Access error for config file %1 Access error for config file %1 @@ -256,6 +260,10 @@ Remember previously used databases Remember previously used databases + + recent files + recent files + Load previously open databases on startup Load previously open databases on startup @@ -408,6 +416,10 @@ Toolbar button style: Toolbar button style: + + Show passwords in color + Show passwords in colour + Use monospaced font for notes Use monospaced font for notes @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons Use DuckDuckGo service to download website icons + + Hide TOTP in the entry preview panel + Hide TOTP in the entry preview panel + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 Very long delay detected, max is %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + Entry does not have attribute for PICKCHARS: %1 + Invalid conversion type: %1 Invalid conversion type: %1 @@ -804,13 +824,13 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Disable for this site Disable for this site + + Undo + Undo + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser Save Entry - Ok Ok @@ -825,13 +845,70 @@ Please select the correct database for saving credentials. You have multiple databases open. Please select the correct database for saving credentials. + + KeePassXC - Select Database + KeePassXC - Select Database + + + + BrowserPasskeysConfirmationDialog + + Cancel + Cancel + + + Update + Update + + + Authenticate + Authenticate + + + Register new + Register new + + + Register + Register + + + Timeout in <b>%n</b> seconds... + Timeout in <b>%n</b> seconds...Timeout in <b>%n</b> seconds... + + + Do you want to register Passkey for: + Do you want to register Passkey for: + + + Existing Passkey found. +Do you want to register a new Passkey for: + Existing Passkey found. +Do you want to register a new Passkey for: + + + Select the existing Passkey and press Update to replace it. + Select the existing Passkey and press Update to replace it. + + + Authenticate Passkey credentials for: + Authenticate Passkey credentials for: + + + Relying Party: %1 + Relying Party: %1 + + + Username: %1 + Username: %1 + + + KeePassXC - Passkey credentials + KeePassXC - Passkey credentials + BrowserService - - KeePassXC: Create a new group - KeePassXC: Create a new group - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -840,10 +917,6 @@ Do you want to create this group? Do you want to create this group? - - KeePassXC: New key association request - KeePassXC: New key association request - You have received an association request for the following database: %1 @@ -860,28 +933,16 @@ chrome-laptop. Save and allow access Save and allow access - - KeePassXC: Overwrite existing key? - KeePassXC: Overwrite existing key? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? A shared encryption key with the name "%1" already exists. Do you want to overwrite it? - - KeePassXC: Update Entry - KeePassXC: Update Entry - Do you want to update the information in %1 - %2? Do you want to update the information in %1 - %2? - - KeePassXC: Delete entry - KeePassXC: Delete entry - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -891,50 +952,46 @@ Do you want to delete the entry? - Converting attributes to custom data… - Converting attributes to custom data… + %1 (Passkey) + %1 (Passkey) - Abort - Abort + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Converted KeePassHTTP attributes + KeePassXC - Create a new group + KeePassXC - Create a new group - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - - - Successfully moved %n keys to custom data. - Successfully moved %n key to custom data.Successfully moved %n keys to custom data. + Disable + Disable - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: No entry with KeePassHTTP attributes found! + KeePassXC - Overwrite existing key? + KeePassXC - Overwrite existing key? - The active database does not contain an entry with KeePassHTTP attributes. - The active database does not contain an entry with KeePassHTTP attributes. + KeePassXC - Update Passkey + KeePassXC - Update Passkey - Don't show this warning again - Don't show this warning again + KeePassXC - Update Entry + KeePassXC - Update Entry - KeePassXC: Legacy browser integration settings detected - KeePassXC: Legacy browser integration settings detected + KeePassXC - Delete entry + KeePassXC - Delete entry - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? + KeePassXC - New key association request + KeePassXC - New key association request + + + Passkey + @@ -1142,14 +1199,6 @@ Would you like to migrate your existing settings now? Please see special instructions for browser extension use below Please see special instructions for browser extension use below - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - - - <b>Warning:</b> The following options can be dangerous! - <b>Warning:</b> The following options can be dangerous! - Executable Files Executable Files @@ -1166,6 +1215,38 @@ Would you like to migrate your existing settings now? Select native messaging host folder location Select native messaging host folder location + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + Allow limited access to all entries in connected databases (ignores site access restrictions) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Warning:</b> Only adjust these settings if necessary. + + + The custom proxy location does not exist. + The custom proxy location does not exist. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1188,14 +1269,6 @@ Would you like to migrate your existing settings now? CsvImportWidget - - Import CSV fields - Import CSV fields - - - filename - filename - size, rows, columns size, rows, columns @@ -1304,50 +1377,29 @@ Would you like to migrate your existing settings now? Column %1 Column %1 - - Imported from CSV file - Imported from CSV file - - - Original data: - Original data: - - - Error(s) detected in CSV file! - Error(s) detected in CSV file! - [%n more message(s) skipped] [%n more message skipped][%n more messages skipped] - Error - Error + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - CSV import: writer has errors: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n byte%n bytes - %n row(s) + CSV row count %n row%n rows %n column(s) + CSV column count %n column%n columns @@ -1422,40 +1474,10 @@ Backup database located at %2 Password field Password field - - Enter Additional Credentials (if any): - Enter Additional Credentials (if any): - - - Key File: - Key File: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - - - Key file help - Key file help - Hardware key slot selection Hardware key slot selection - - Hardware Key: - Hardware Key: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - - - Hardware key help - Hardware key help - Key file to unlock the database Key file to unlock the database @@ -1468,14 +1490,6 @@ Backup database located at %2 Browse… Browse… - - Refresh hardware tokens - Refresh hardware tokens - - - Refresh - Refresh - Unlock Database Unlock Database @@ -1538,14 +1552,6 @@ To prevent this error from appearing, you must go to "Database Settings / S Retry with empty password Retry with empty password - - Failed to authenticate with Windows Hello - Failed to authenticate with Windows Hello - - - Failed to authenticate with Touch ID - Failed to authenticate with Touch ID - Failed to open key file: %1 Failed to open key file: %1 @@ -1579,22 +1585,60 @@ To prevent this error from appearing, you must go to "Database Settings / S Cannot use database file as key file - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. + authenticate to access the database + authenticate to access the database - Detecting hardware keys… - Detecting hardware keys… + Failed to authenticate with Quick Unlock: %1 + Failed to authenticate with Quick Unlock: %1 - No hardware keys detected - No hardware keys detected + Select Key File: + - Select hardware key… - Select hardware key… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1606,10 +1650,6 @@ If you do not have a key file, please leave the field empty. DatabaseSettingsDialog - - Advanced Settings - Advanced Settings - General General @@ -1641,18 +1681,6 @@ If you do not have a key file, please leave the field empty. KeePassXC-Browser settings KeePassXC-Browser settings - - Convert KeePassHTTP data - Convert KeePassHTTP data - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - - - Refresh database root group ID - Refresh database root group ID - Disconnect all browsers Disconnect all browsers @@ -1661,6 +1689,10 @@ If you do not have a key file, please leave the field empty. Forget all site-specific settings on entries Forget all site-specific settings on entries + + Refresh database root group ID + Refresh database root group ID + Stored keys Stored keys @@ -1709,18 +1741,10 @@ This may prevent connection to the browser plugin. Do you really want to disconnect all browsers? This may prevent connection to the browser plugin. - - KeePassXC: No keys found - KeePassXC: No keys found - No shared encryption keys found in KeePassXC settings. No shared encryption keys found in KeePassXC settings. - - KeePassXC: Removed keys from database - KeePassXC: Removed keys from database - Successfully removed %n encryption key(s) from KeePassXC settings. Successfully removed %n encryption key from KeePassXC settings.Successfully removed %n encryption keys from KeePassXC settings. @@ -1739,32 +1763,14 @@ Permissions to access entries will be revoked. Abort Abort - - KeePassXC: Removed permissions - KeePassXC: Removed permissions - Successfully removed permissions from %n entry(s). Successfully removed permissions from %n entry.Successfully removed permissions from %n entries. - - KeePassXC: No entry with permissions found! - KeePassXC: No entry with permissions found! - The active database does not contain an entry with permissions. The active database does not contain an entry with permissions. - - Move KeePassHTTP attributes to custom data - Move KeePassHTTP attributes to custom data - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Refresh database ID Refresh database ID @@ -1775,6 +1781,26 @@ This is only necessary if your database is a copy of another and the browser ext Do you really want refresh the database ID? This is only necessary if your database is a copy of another and the browser extension cannot connect. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + + + No keys found + No keys found + + + Removed keys from database + Removed keys from database + + + Removed permissions + Removed permissions + + + No entry with permissions found! + No entry with permissions found! + DatabaseSettingsWidgetDatabaseKey @@ -1814,6 +1840,18 @@ Are you sure you want to continue without a password? Failed to change database credentials Failed to change database credentials + + Weak password + Weak password + + + You must enter a stronger password to protect your database. + You must enter a stronger password to protect your database. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + This is a weak password! For better protection of your secrets, you should choose a stronger password. + DatabaseSettingsWidgetEncryption @@ -1821,14 +1859,6 @@ Are you sure you want to continue without a password? Decryption Time: Decryption Time: - - Change existing decryption time - Change existing decryption time - - - Change - Change - Decryption time in seconds Decryption time in seconds @@ -1909,11 +1939,6 @@ Are you sure you want to continue without a password? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - unchanged - Number of rounds too high Key transformation rounds @@ -1966,6 +1991,18 @@ If you keep this number, your database will not be protected from brute force at Threads for parallel execution (KDF settings) thread threads + + Encryption Settings: + Encryption Settings: + + + Basic + Basic + + + Advanced + Advanced + DatabaseSettingsWidgetFdoSecrets @@ -2024,18 +2061,10 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry Maximum number of history items per entry - - Max. history items: - Max. history items: - Maximum size of history per entry Maximum size of history per entry - - Max. history size: - Max. history size: - MiB MiB @@ -2066,6 +2095,64 @@ This action is not reversible. (old) (old) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + + + Limit the amount of history items per entry to: + Limit the amount of history items per entry to: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + + + Limit the total size of history items per entry to: + Limit the total size of history items per entry to: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + + + Autosave delay since last change + Autosave delay since last change + + + Autosave delay + Autosave delay + + + Autosave delay since last change in minutes + Autosave delay since last change in minutes + + + min + min + + + Autosave delay since last change checkbox + Autosave delay since last change checkbox + DatabaseSettingsWidgetKeeShare @@ -2193,26 +2280,10 @@ This is definitely a bug, please report it to the developers. CSV file CSV file - - Select CSV file - Select CSV file - Merge database Merge database - - KeePass 1 database - KeePass 1 database - - - Open KeePass 1 database - Open KeePass 1 database - - - Open OPVault - Open OPVault - Export database to CSV file Export database to CSV file @@ -2225,6 +2296,18 @@ This is definitely a bug, please report it to the developers. Writing the HTML file failed. Writing the HTML file failed. + + Export database to XML file + Export database to XML file + + + XML file + XML file + + + Writing the XML file failed + Writing the XML file failed + Export Confirmation Export Confirmation @@ -2233,15 +2316,6 @@ This is definitely a bug, please report it to the developers. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - - New Database - New Database - - - %1 [New Database] - Database tab name modifier - %1 [New Database] - %1 [Locked] Database tab name modifier @@ -2251,8 +2325,8 @@ This is definitely a bug, please report it to the developers. DatabaseWidget - Database Tags - Database Tags + Searches and Tags + Searches and Tags Searching… @@ -2302,6 +2376,10 @@ This is definitely a bug, please report it to the developers. Expired entries Expired entries + + Entries expiring within %1 day(s) + Entries expiring within %1 dayEntries expiring within %1 days + No current database. No current database. @@ -2326,6 +2404,18 @@ This is definitely a bug, please report it to the developers. No Results No Results + + Save + Save + + + Enter a unique name or overwrite an existing search from the list: + Enter a unique name or overwrite an existing search from the list: + + + Save Search + Save Search + Lock Database? Lock Database? @@ -2416,9 +2506,14 @@ Disable safe saves and try again? Could not find database file: %1 Could not find database file: %1 - - Entries expiring within %1 day(s) - Entries expiring within %1 dayEntries expiring within %1 days + + New Database + New Database + + + %1 [New Database] + Database tab name modifier + %1 [New Database] @@ -2561,6 +2656,10 @@ Would you like to correct it? Hide Hide + + %n hour(s) + %n hour%n hours + %n week(s) %n week%n weeks @@ -2573,10 +2672,6 @@ Would you like to correct it? %n year(s) %n year%n years - - %n hour(s) - %n hour%n hours - EditEntryWidgetAdvanced @@ -2695,10 +2790,20 @@ Would you like to correct it? Add new window association Add new window association + + + + Add item + + + Remove selected window association Remove selected window association + + - + Remove item + - + Window title: Window title: @@ -2723,16 +2828,6 @@ Would you like to correct it? Custom Auto-Type sequence for this window Custom Auto-Type sequence for this window - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2834,22 +2929,10 @@ Would you like to correct it? Notes field Notes field - - Toggle the checkbox to reveal the notes section. - Toggle the checkbox to reveal the notes section. - Username field Username field - - Toggle notes visible - Toggle notes visible - - - Notes: - Notes: - Expiration field Expiry field @@ -2866,14 +2949,6 @@ Would you like to correct it? Presets Presets - - Password: - Password: - - - URL: - URL: - Url field URL field @@ -2882,18 +2957,10 @@ Would you like to correct it? Download favicon for URL Download favicon for URL - - Title: - Title: - Title field Title field - - Username: - Username: - Password field Password field @@ -2902,18 +2969,42 @@ Would you like to correct it? Toggle expiration Toggle expiry - - Expires: - Expires: - - - Tags: - Tags: - Tags list Tags list + + &Username: + &Username: + + + &Title: + &Title: + + + &Password: + &Password: + + + UR&L: + UR&L: + + + &Notes: + &Notes: + + + Toggle notes visibility + Toggle notes visibility + + + T&ags: + T&ags: + + + &Expires: + &Expires: + EditEntryWidgetSSHAgent @@ -2953,19 +3044,6 @@ Would you like to correct it? Private key Private key - - External file - External file - - - Browser for key file - Browser for key file - - - Browse… - Button for opening file dialog - Browse… - Attachment Attachment @@ -2982,6 +3060,23 @@ Would you like to correct it? Remove from agent Remove from agent + + External file + External file + + + Browser for key file + Browser for key file + + + Browse… + Button for opening file dialog + Browse… + + + Generate + Generate + Select attachment file Select attachment file @@ -3017,10 +3112,6 @@ Would you like to correct it? Icon Icon - - Browser Integration - Browser Integration - Properties Properties @@ -3037,6 +3128,10 @@ Would you like to correct it? Group has unsaved changes Group has unsaved changes + + Browser Integration + Browser Integration + Enable Enable @@ -3052,10 +3147,6 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - Edit Group - These settings affect to the group's behaviour with the browser extension. These settings affect the group's behaviour with the browser extension. @@ -3092,6 +3183,22 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups Do not use HTTP Auth toggle for this group and subgroups + + Omit WWW subdomain from matching: + Omit WWW subdomain from matching: + + + Omit WWW subdomain from matching toggle for this and sub groups + Omit WWW subdomain from matching toggle for this and sub groups + + + Restrict matching to given browser key: + Restrict matching to given browser key: + + + Restrict matching to given browser key toggle for this and sub groups + Restrict matching to given browser key toggle for this and sub groups + EditGroupWidgetKeeShare @@ -3324,10 +3431,6 @@ Supported extensions are: %1. Unable to fetch favicon. Unable to fetch favicon. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Existing icon selected. Existing icon selected. @@ -3360,6 +3463,10 @@ Supported extensions are: %1. The following icon(s) failed: The following icon failed:The following icons failed: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + You can enable the DuckDuckGo website icon service under Application Settings -> Security + EditWidgetProperties @@ -3798,6 +3905,10 @@ Error: %1 Has TOTP Has TOTP + + Background Color + Background Colour + EntryPreviewWidget @@ -3818,8 +3929,8 @@ Error: %1 Password - Notes - Notes + URL + URL Expiration @@ -3838,8 +3949,8 @@ Error: %1 Username - URL - URL + Notes + Notes Advanced @@ -3889,6 +4000,10 @@ Error: %1 Never Never + + Double click to copy value + Double click to copy value + Enabled Enabled @@ -3897,6 +4012,10 @@ Error: %1 Disabled Disabled + + Double click to copy to clipboard + Double click to copy to clipboard + EntryURLModel @@ -3904,6 +4023,10 @@ Error: %1 Invalid URL Invalid URL + + Duplicate URL + Duplicate URL + EntryView @@ -3919,6 +4042,10 @@ Error: %1 Reset to defaults Reset to defaults + + + %1 entry(s)... + + %1 entry...+ %1 entries... + ExportDialog @@ -4140,6 +4267,147 @@ You can enable the DuckDuckGo website icon service in the security section of th Downloading favicons (%1/%2)… + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + WizardPage + + + Entry count: %1 + + + + Group + Group + + + Title + Title + + + Username + Username + + + Password + Password + + + Url + + + + + ImportWizardPageSelect + + Form + Form + + + Import File Selection + + + + Password: + Password: + + + Key File: + Key File: + + + Browse… + Browse… + + + Import Into: + + + + New Database + New Database + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Open OPVault + + + Select import file + + + + All files + All files + + + Key files + Key files + + + Select key file + Select key file + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4574,17 +4842,6 @@ Line %2, column %3 Failed to open private key - - KeePass1OpenWidget - - Import KeePass1 Database - Import KeePass1 Database - - - Unable to open the database. - Unable to open the database. - - KeePass1Reader @@ -4941,10 +5198,6 @@ Are you sure you want to continue with this file? &Recent Databases &Recent Databases - - &Import - &Import - &Export &Export @@ -4965,6 +5218,10 @@ Are you sure you want to continue with this file? TOTP TOTP + + Tags + Tags + &Groups &Groups @@ -5009,34 +5266,18 @@ Are you sure you want to continue with this file? &New Database… &New Database… - - Create a new database - Create a new database - &Merge From Database… &Merge From Database… - - Merge from another KDBX database - Merge from another KDBX database - &New Entry… &New Entry… - - Add a new entry - Add a new entry - &Edit Entry… &Edit Entry… - - View or edit entry - View or edit entry - &Delete Entry… &Delete Entry… @@ -5045,10 +5286,6 @@ Are you sure you want to continue with this file? &New Group… &New Group… - - Add a new group - Add a new group - &Edit Group… &Edit Group… @@ -5081,18 +5318,10 @@ Are you sure you want to continue with this file? Database &Reports… Database &Reports… - - Statistics, health check, etc. - Statistics, health check, etc. - &Database Settings… &Database Settings… - - Database settings - Database settings - &Clone Entry… &Clone Entry… @@ -5101,34 +5330,18 @@ Are you sure you want to continue with this file? Move u&p Move u&p - - Move entry one step up - Move entry one step up - Move do&wn Move do&wn - - Move entry one step down - Move entry one step down - Copy &Username Copy &Username - - Copy username to clipboard - Copy username to clipboard - Copy &Password Copy &Password - - Copy password to clipboard - Copy password to clipboard - &Settings &Settings @@ -5162,25 +5375,13 @@ Are you sure you want to continue with this file? &Title - Copy title to clipboard - Copy title to clipboard - - - &URL - &URL - - - Copy URL to clipboard - Copy URL to clipboard + Copy &URL + Copy &URL &Notes &Notes - - Copy notes to clipboard - Copy notes to clipboard - &CSV File… &CSV File… @@ -5193,26 +5394,14 @@ Are you sure you want to continue with this file? KeePass 1 Database… KeePass 1 Database… - - Import a KeePass 1 database - Import a KeePass 1 database - 1Password Vault… 1Password Vault… - - Import a 1Password Vault - Import a 1Password Vault - CSV File… CSV File… - - Import a CSV file - Import a CSV file - Show TOTP Show TOTP @@ -5229,6 +5418,10 @@ Are you sure you want to continue with this file? Copy &TOTP Copy &TOTP + + Copy Password and TOTP + Copy Password and TOTP + E&mpty recycle bin E&mpty recycle bin @@ -5253,10 +5446,6 @@ Are you sure you want to continue with this file? &Online Help &Online Help - - Go to online documentation - Go to online documentation - &User Guide &User Guide @@ -5325,6 +5514,10 @@ Are you sure you want to continue with this file? Clone Group... Clone Group... + + &XML File… + &XML File… + Clear history Clear history @@ -5357,6 +5550,10 @@ We recommend you use the AppImage available on our downloads page. WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard. We recommend you use the AppImage available on our downloads page. + + No Tags + No Tags + Restore Entry(s) Restore EntryRestore Entries @@ -5385,6 +5582,10 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC Quit KeePassXC + + %1 Entry(s) + %1 Entry%1 Entries + Please present or touch your YubiKey to continue… Please present or touch your YubiKey to continue… @@ -5397,6 +5598,274 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? You must restart the application to apply this setting. Would you like to restart now? + + Allow Screen Capture + Allow Screen Capture + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Passkeys… + + + Import Passkey + Import Passkey + + + Quit Application + Quit Application + + + Open About Dialog + Open About Dialogue + + + Open Database + Open Database + + + Create Database + Create Database + + + Merge From Database + Merge From Database + + + Create Entry + Create Entry + + + Edit Entry + Edit Entry + + + Delete Entry + Delete Entry + + + Create Group + Create Group + + + Edit Group + Edit Group + + + Delete Group + Delete Group + + + Download All Favicons + Download All Favicons + + + Sort Groups A-Z + Sort Groups A-Z + + + Sort Groups Z-A + Sort Groups Z-A + + + Save Database As + Save Database As + + + Show Database Security + Show Database Security + + + Show Database Reports + Show Database Reports + + + Show Database Settings + Show Database Settings + + + Show Passkeys + Show Passkeys + + + Clone Entry + Clone Entry + + + Move Entry Up + Move Entry Up + + + Move Entry Down + Move Entry Down + + + Copy Username + Copy Username + + + Copy Password + Copy Password + + + Show Application Settings + Show Application Settings + + + Show Password Generator + Show Password Generator + + + Perform Auto-Type: {USERNAME} + Perform Auto-Type: {USERNAME} + + + Perform Auto-Type: {USERNAME}{ENTER} + Perform Auto-Type: {USERNAME}{ENTER} + + + Perform Auto-Type: {PASSWORD} + Perform Auto-Type: {PASSWORD} + + + Perform Auto-Type: {PASSWORD}{ENTER} + Perform Auto-Type: {PASSWORD}{ENTER} + + + Perform Auto-Type: {TOTP} + Perform Auto-Type: {TOTP} + + + Copy Title + Copy Title + + + Copy URL + Copy URL + + + Copy Notes + Copy Notes + + + Export to CSV + Export to CSV + + + Export to HTML + Export to HTML + + + Import KeePass1 Database + Import KeePass1 Database + + + Import 1Password Vault + Import 1Password Vault + + + Import CSV File + Import CSV File + + + Show TOTP QR Code + Show TOTP QR Code + + + Set up TOTP + Set up TOTP + + + Empty Recycle Bin + Empty Recycle Bin + + + Open Donation Website + Open Donation Website + + + Open Bug Report + Open Bug Report + + + Open Online Documentation + Open Online Documentation + + + Open Keyboard Shortcuts Guide + Open Keyboard Shortcuts Guide + + + Save Database Backup + Save Database Backup + + + SSH Agent: Add Key + SSH Agent: Add Key + + + SSH Agent: Remove Key + SSH Agent: Remove Key + + + Toggle Compact Mode + Toggle Compact Mode + + + Set Theme: Automatic + Set Theme: Automatic + + + Set Theme: Light + Set Theme: Light + + + Set Theme: Dark + Set Theme: Dark + + + Set Theme: Classic + Set Theme: Classic + + + Toggle Show Toolbar + Toggle Show Toolbar + + + Toggle Show Preview Panel + Toggle Show Preview Panel + + + Toggle Always on Top + Toggle Always on Top + + + Toggle Hide Usernames + Toggle Hide Usernames + + + Toggle Hide Passwords + Toggle Hide Passwords + + + Export to XML + Export to XML + + + Toggle Allow Screen Capture + Toggle Allow Screen Capture + ManageDatabase @@ -5454,26 +5923,6 @@ We recommend you use the AppImage available on our downloads page. Overwriting %1 [%2] Overwriting %1 [%2] - - older entry merged from database "%1" - older entry merged from database "%1" - - - Adding backup for older target %1 [%2] - Adding backup for older target %1 [%2] - - - Adding backup for older source %1 [%2] - Adding backup for older source %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Reapplying older target entry on top of newer source %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Reapplying older source entry on top of newer target %1 [%2] - Synchronizing from newer source %1 [%2] Synchronising from newer source %1 [%2] @@ -5533,14 +5982,6 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Here you can adjust the database encryption settings. Don't worry; you can change them later in the database settings. - - Advanced Settings - Advanced Settings - - - Simple Settings - Simple Settings - NewDatabaseWizardPageDatabaseKey @@ -5621,15 +6062,6 @@ We recommend you use the AppImage available on our downloads page. Expected %1 bytes of clear-text, found %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Read Database did not produce an instance -%1 - - OpVaultReader @@ -5703,6 +6135,10 @@ We recommend you use the AppImage available on our downloads page. Unknown cipher: %1 Unknown cipher: %1 + + AES-256/GCM is currently not supported + AES-256/GCM is currently not supported + Passphrase is required to decrypt this key Passphrase is required to decrypt this key @@ -5769,26 +6205,178 @@ We recommend you use the AppImage available on our downloads page. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Passwords do not match + SSH Key Generator + SSH Key Generator - Passwords match so far - Passwords match so far + Type + Type - Toggle Password (%1) - Toggle Password (%1) + Bits + Bits - Generate Password (%1) - Generate Password (%1) + Comment + Comment + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - Passkey Export - Warning: Caps Lock enabled! - Warning: Caps Lock enabled! + Export the following Passkey entries. + Export the following Passkey entries. + + + Filenames will be generated with title and .passkey file extension. + Filenames will be generated with title and .passkey file extension. + + + Export entries + Export entries + + + Export Selected + Export Selected + + + Cancel + Cancel + + + Export to folder + Export to folder + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: Passkey Export + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + Cannot open file + Cannot open file + + + Cannot open file "%1" for writing. + Cannot open file "%1" for writing. + + + Cannot write to file + Cannot write to file + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - Passkey Import + + + Username: %1 + Username: %1 + + + Group + Group + + + Database + Database + + + Import Passkey + Import Passkey + + + Import + Import + + + Cancel + Cancel + + + Import the following Passkey: + Import the following Passkey: + + + Entry + Entry + + + Import the following Passkey to this entry: + Import the following Passkey to this entry: + + + Create new entry + Create new entry + + + Default Passkeys group (Imported Passkeys) + Default Passkeys group (Imported Passkeys) + + + Relying Party: %1 + Relying Party: %1 + + + + PasskeyImporter + + Passkey file + Passkey file + + + All files + All files + + + Open Passkey file + Open Passkey file + + + Cannot open file + Cannot open file + + + Cannot open file "%1" for reading. + Cannot open file "%1" for reading. + + + Cannot import Passkey + Cannot import Passkey + + + Cannot import Passkey file "%1". Data is missing. + Cannot import Passkey file "%1". Data is missing. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + Cannot import Passkey file "%1". Private key is missing or malformed. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + Cannot import Passkey file "%1". +The following data is missing: +%2 @@ -6053,6 +6641,30 @@ We recommend you use the AppImage available on our downloads page. Entropy: %1 bit Entropy: %1 bit + + Password Quality: %1 + Password Quality: %1 + + + Poor + Password quality + Poor + + + Weak + Password quality + Weak + + + Good + Password quality + Good + + + Excellent + Password quality + Excellent + Confirm Delete Wordlist Confirm Delete Wordlist @@ -6099,9 +6711,32 @@ Do you want to overwrite it? Special Characters Special Characters + + + PasswordWidget - Password Quality: %1 - Password Quality: %1 + Passwords do not match + Passwords do not match + + + Passwords match so far + Passwords match so far + + + Toggle Password (%1) + Toggle Password (%1) + + + Generate Password (%1) + Generate Password (%1) + + + Warning: Caps Lock enabled! + Warning: Caps Lock enabled! + + + Quality: %1 + Quality: %1 Poor @@ -6123,6 +6758,10 @@ Do you want to overwrite it? Password quality Excellent + + Toggle password visibility using Control + H. Open the password generator using Control + G. + Toggle password visibility using Control + H. Open the password generator using Control + G. + PickcharsDialog @@ -6177,6 +6816,10 @@ Do you want to overwrite it? Continue Continue + + Continue with weak password + Continue with weak password + QObject @@ -6570,6 +7213,10 @@ Do you want to overwrite it? Too many arguments provided. Too many arguments provided. + + Path of the database. + Path of the database. + Target decryption time in MS for the database. Target decryption time in MS for the database. @@ -6578,6 +7225,12 @@ Do you want to overwrite it? time time + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Set the key file for the database. Set the key file for the database. @@ -6590,10 +7243,6 @@ Do you want to overwrite it? Create a new database. Create a new database. - - Path of the database. - Path of the database. - Invalid decryption time %1. Invalid decryption time %1. @@ -6638,6 +7287,158 @@ Do you want to overwrite it? Successfully created new database. Successfully created new database. + + Unset the password for the database. + Unset the password for the database. + + + Unset the key file for the database. + Unset the key file for the database. + + + Edit a database. + Edit a database. + + + Cannot use %1 and %2 at the same time. + Cannot use %1 and %2 at the same time. + + + Could not change the database key. + Could not change the database key. + + + Database was not modified. + Database was not modified. + + + Writing the database failed: %1 + Writing the database failed: %1 + + + Successfully edited the database. + Successfully edited the database. + + + Cannot remove password: The database does not have a password. + Cannot remove password: The database does not have a password. + + + Cannot remove file key: The database does not have a file key. + Cannot remove file key: The database does not have a file key. + + + Loading the new key file failed: %1 + Loading the new key file failed: %1 + + + Found unexpected Key type %1 + Found unexpected Key type %1 + + + Cannot remove all the keys from a database. + Cannot remove all the keys from a database. + + + Show a database's information. + Show a database's information. + + + UUID: + UUID: + + + Name: + Name: + + + Description: + Description: + + + Cipher: + Cipher: + + + KDF: + KDF: + + + Recycle bin is enabled. + Recycle bin is enabled. + + + Recycle bin is not enabled. + Recycle bin is not enabled. + + + Location + Location + + + Database created + Database created + + + Last saved + Last saved + + + Unsaved changes + Unsaved changes + + + yes + yes + + + no + no + + + Number of groups + Number of groups + + + Number of entries + Number of entries + + + Number of expired entries + Number of expired entries + + + Unique passwords + Unique passwords + + + Non-unique passwords + Non-unique passwords + + + Maximum password reuse + Maximum password reuse + + + Number of short passwords + Number of short passwords + + + Number of weak passwords + Number of weak passwords + + + Entries excluded from reports + Entries excluded from reports + + + Average password length + Average password length + + + %1 characters + %1 character(s) + Word count for the diceware passphrase. Word count for the diceware passphrase. @@ -6689,10 +7490,6 @@ Do you want to overwrite it? Enter new password for entry: Enter new password for entry: - - Writing the database failed: %1 - Writing the database failed: %1 - Successfully edited entry %1. Successfully edited entry %1. @@ -6917,106 +7714,6 @@ Do you want to overwrite it? Successfully imported database. Successfully imported database. - - Show a database's information. - Show a database's information. - - - UUID: - UUID: - - - Name: - Name: - - - Description: - Description: - - - Cipher: - Cipher: - - - KDF: - KDF: - - - Recycle bin is enabled. - Recycle bin is enabled. - - - Recycle bin is not enabled. - Recycle bin is not enabled. - - - Location - Location - - - Database created - Database created - - - Last saved - Last saved - - - Unsaved changes - Unsaved changes - - - yes - yes - - - no - no - - - Number of groups - Number of groups - - - Number of entries - Number of entries - - - Number of expired entries - Number of expired entries - - - Unique passwords - Unique passwords - - - Non-unique passwords - Non-unique passwords - - - Maximum password reuse - Maximum password reuse - - - Number of short passwords - Number of short passwords - - - Number of weak passwords - Number of weak passwords - - - Entries excluded from reports - Entries excluded from reports - - - Average password length - Average password length - - - %1 characters - %1 character(s) - Unknown command %1 Unknown command %1 @@ -7189,6 +7886,10 @@ Available commands: Show the protected attributes in clear text. Show the protected attributes in clear text. + + Show all the attributes of the entry. + Show all the attributes of the entry. + Show the attachments of the entry. Show the attachments of the entry. @@ -7259,6 +7960,10 @@ Please consider generating a new key file. Invalid YubiKey serial %1 Invalid YubiKey serial %1 + + Please present or touch your YubiKey to continue. + Please present or touch your YubiKey to continue. + Enter password to encrypt database (optional): Enter password to encrypt database (optional): @@ -7446,8 +8151,8 @@ Kernel: %3 %4 %1 minute%1 minutes - Botan library must be at least 2.11.x, found %1.%2.%3 - Botan library must be at least 2.11.x, found %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + Botan library must be at least %1, found %2.%3.%4 Cryptographic libraries: @@ -7687,10 +8392,6 @@ Kernel: %3 %4 read password of the database from stdin read password of the database from stdin - - allow app screen recordering and screenshots - allow app screen recordering and screenshots - Locked databases. Locked databases. @@ -7703,6 +8404,10 @@ Kernel: %3 %4 Another instance of KeePassXC is already running. Another instance of KeePassXC is already running. + + KeePassXC is not running. No open database to lock + KeePassXC is not running. No open database to lock + Fatal error while testing the cryptographic functions. Fatal error while testing the cryptographic functions. @@ -7711,10 +8416,6 @@ Kernel: %3 %4 KeePassXC - Error KeePassXC - Error - - Warning: Failed to prevent screenshots on a top level window! - Warning: Failed to prevent screenshots on a top level window! - Database password: Database password: @@ -7738,7 +8439,221 @@ Kernel: %3 %4 Failed to sign challenge using Windows Hello. - Please present or touch your YubiKey to continue. + Warning: Failed to block screenshot capture on a top-level window. + Warning: Failed to block screenshot capture on a top-level window. + + + Invalid Cipher + Invalid Cipher + + + Invalid KDF + Invalid KDF + + + Access to all entries is denied + Access to all entries is denied + + + allow screenshots and app recording (Windows/macOS) + allow screenshots and app recording (Windows/macOS) + + + Enter Shortcut + Enter Shortcut + + + Action + Action + + + Shortcuts + Shortcuts + + + Attestation not supported + Attestation not supported + + + Credential is excluded + Credential is excluded + + + Passkeys request canceled + Passkeys request canceled + + + Invalid user verification + Invalid user verification + + + Empty public key + Empty public key + + + Invalid URL provided + Invalid URL provided + + + Passkeys + Passkeys + + + AES initialization failed + AES initialisation failed + + + AES encrypt failed + AES encrypt failed + + + Failed to store in Linux Keyring + Failed to store in Linux Keyring + + + Polkit returned an error: %1 + Polkit returned an error: %1 + + + Could not locate key in keyring + Could not locate key in keyring + + + Could not read key in keyring + Could not read key in keyring + + + AES decrypt failed + AES decrypt failed + + + No Polkit authentication agent was available + No Polkit authentication agent was available + + + Polkit authorization failed + Polkit authorisation failed + + + No Quick Unlock provider is available + No Quick Unlock provider is available + + + Failed to init KeePassXC crypto. + Failed to init KeePassXC crypto. + + + Failed to encrypt key data. + Failed to encrypt key data. + + + Failed to get Windows Hello credential. + Failed to get Windows Hello credential. + + + Failed to decrypt key data. + Failed to decrypt key data. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7778,18 +8693,6 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - Exclude expired entries from the report - - - Show only entries which have URL set - Show only entries which have URL set - - - Show only entries which have browser settings in custom data - Show only entries which have browser settings in custom data - Double-click entries to edit. Double-click entries to edit. @@ -7854,17 +8757,25 @@ Kernel: %3 %4 Exclude from reports Exclude from reports + + Only show entries that have a URL + Only show entries that have a URL + + + Only show entries that have been explicitly allowed or denied + Only show entries that have been explicitly allowed or denied + + + Show expired entries + Show expired entries + + + (Expired) + (Expired) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - Exclude expired entries from the report - - - Also show entries that have been excluded from reports - Also show entries that have been excluded from reports - Hover over reason to show additional details. Double-click entries to edit. Hover over reason to show additional details. Double-click entries to edit. @@ -7940,6 +8851,18 @@ Kernel: %3 %4 Exclude from reports Exclude from reports + + Show expired entries + Show expired entries + + + Show entries that have been excluded from reports + Show entries that have been excluded from reports + + + (Expired) + (Expired) + ReportsWidgetHibp @@ -8036,6 +8959,65 @@ Kernel: %3 %4 Exclude from reports + + ReportsWidgetPasskeys + + Export + Export + + + Import + Import + + + List of entry URLs + List of entry URLs + + + Please wait, list of entries with Passkeys is being updated… + Please wait, list of entries with Passkeys is being updated… + + + No entries with Passkeys. + No entries with Passkeys. + + + Title + Title + + + Path + Path + + + Username + Username + + + URLs + URLs + + + Edit Entry… + Edit Entry… + + + Delete Entry(s)… + Delete Entry…Delete Entries… + + + Relying Party + Relying Party + + + Show expired entries + Show expired entries + + + (Expired) + (Expired) + + ReportsWidgetStatistics @@ -8275,6 +9257,10 @@ Kernel: %3 %4 Search Help Search Help + + Save Search + Save Search + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8506,11 +9492,38 @@ Kernel: %3 %4 Export to %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + Double click an action to change its shortcut + + + Shortcut Conflict + Shortcut Conflict + + + Filter... + Filter... + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + Reset Shortcuts + Reset Shortcuts + + TagModel - All - All + Clear Search + Clear Search + + + All Entries + All Entries Expired @@ -8521,6 +9534,25 @@ Kernel: %3 %4 Weak Passwords + + TagView + + Remove Search + Remove Search + + + Remove Tag + Remove Tag + + + Confirm Remove Tag + Confirm Remove Tag + + + Remove tag "%1" from all entries in this database? + Remove tag "%1" from all entries in this database? + + TotpDialog @@ -8678,26 +9710,6 @@ Example: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Start storing your passwords securely in a KeePassXC database - - Create new database - Create new database - - - Open existing database - Open existing database - - - Import from KeePass 1 - Import from KeePass 1 - - - Import from 1Password - Import from 1Password - - - Import from CSV - Import from CSV - Recent databases Recent databases @@ -8710,6 +9722,18 @@ Example: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Welcome to KeePassXC %1 + + Create Database + Create Database + + + Open Database + Open Database + + + Import File + + WinUtils @@ -8726,31 +9750,8 @@ Example: JBSWY3DPEHPK3PXP Could not register global shortcut - - WindowsHello - - Failed to init KeePassXC crypto. - Failed to init KeePassXC crypto. - - - Failed to encrypt key data. - Failed to encrypt key data. - - - Failed to get Windows Hello credential. - Failed to get Windows Hello credential. - - - Failed to decrypt key data. - Failed to decrypt key data. - - YubiKey - - %1 No interface, slot %2 - %1 No interface, slot %2 - General: General: @@ -8762,14 +9763,6 @@ Example: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - Refresh hardware tokens - - - Refresh - Refresh - Hardware key slot selection Hardware key slot selection @@ -8802,10 +9795,6 @@ Example: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove Challenge-Response set, click to change or remove - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - Detecting hardware keys… Detecting hardware keys… @@ -8814,28 +9803,21 @@ Example: JBSWY3DPEHPK3PXP No hardware keys detected No hardware keys detected - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 Invalid slot specified - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] Challenge-Response - Slot %3 - The YubiKey PCSC interface has not been initialized. The YubiKey PCSC interface has not been initialised. - - Hardware key is currently in use. - Hardware key is currently in use. - Could not find or access hardware key with serial number %1. Please present it to continue. Could not find or access hardware key with serial number %1. Please present it to continue. @@ -8852,6 +9834,21 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 Failed to complete a challenge-response. The PCSC error code was: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + Press + + + Passive + USB Challenge-Response Key no interaction required + Passive + YubiKeyInterfaceUSB @@ -8859,14 +9856,6 @@ Example: JBSWY3DPEHPK3PXP Unknown Unknown - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] Configured Slot - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8881,10 +9870,6 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. The YubiKey USB interface has not been initialised. - - Hardware key is currently in use. - Hardware key is currently in use. - Could not find hardware key with serial number %1. Please plug it in to continue. Could not find hardware key with serial number %1. Please plug it in to continue. @@ -8901,5 +9886,15 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 Failed to complete a challenge-response. The specific error was: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_en_US.ts b/share/translations/keepassxc_en_US.ts index 2d0919bf9..f0fc427e4 100644 --- a/share/translations/keepassxc_en_US.ts +++ b/share/translations/keepassxc_en_US.ts @@ -80,6 +80,10 @@ Details Details + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Remember Remember @@ -88,10 +92,6 @@ Allow Selected Allow Selected - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - Deny All && Future Deny All && Future @@ -122,6 +122,10 @@ Use OpenSSH Use OpenSSH + + Use both agents + Use both agents + SSH_AUTH_SOCK override SSH_AUTH_SOCK override @@ -150,10 +154,6 @@ SSH Agent connection is working! SSH Agent connection is working! - - Use both agents - Use both agents - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security Security + + This setting cannot be enabled when minimize on unlock is enabled. + This setting cannot be enabled when minimize on unlock is enabled. + Access error for config file %1 Access error for config file %1 @@ -256,6 +260,10 @@ Remember previously used databases Remember previously used databases + + recent files + recent files + Load previously open databases on startup Load previously open databases on startup @@ -408,6 +416,10 @@ Toolbar button style: Toolbar button style: + + Show passwords in color + Show passwords in color + Use monospaced font for notes Use monospaced font for notes @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons Use DuckDuckGo service to download website icons + + Hide TOTP in the entry preview panel + Hide TOTP in the entry preview panel + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 Very long delay detected, max is %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + Entry does not have attribute for PICKCHARS: %1 + Invalid conversion type: %1 Invalid conversion type: %1 @@ -804,13 +824,13 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Disable for this site Disable for this site + + Undo + + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser Save Entry - Ok Ok @@ -825,13 +845,70 @@ Please select the correct database for saving credentials. You have multiple databases open. Please select the correct database for saving credentials. + + KeePassXC - Select Database + KeePassXC - Select Database + + + + BrowserPasskeysConfirmationDialog + + Cancel + Cancel + + + Update + Update + + + Authenticate + Authenticate + + + Register new + Register new + + + Register + Register + + + Timeout in <b>%n</b> seconds... + Timeout in <b>%n</b> second...Timeout in <b>%n</b> seconds... + + + Do you want to register Passkey for: + Do you want to register Passkey for: + + + Existing Passkey found. +Do you want to register a new Passkey for: + Existing Passkey found. +Do you want to register a new Passkey for: + + + Select the existing Passkey and press Update to replace it. + Select the existing Passkey and press Update to replace it. + + + Authenticate Passkey credentials for: + Authenticate Passkey credentials for: + + + Relying Party: %1 + Relying Party: %1 + + + Username: %1 + Username: %1 + + + KeePassXC - Passkey credentials + KeePassXC - Passkey credentials + BrowserService - - KeePassXC: Create a new group - KeePassXC: Create a new group - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -840,10 +917,6 @@ Do you want to create this group? Do you want to create this group? - - KeePassXC: New key association request - KeePassXC: New key association request - You have received an association request for the following database: %1 @@ -860,28 +933,16 @@ chrome-laptop. Save and allow access Save and allow access - - KeePassXC: Overwrite existing key? - KeePassXC: Overwrite existing key? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? A shared encryption key with the name "%1" already exists. Do you want to overwrite it? - - KeePassXC: Update Entry - KeePassXC: Update Entry - Do you want to update the information in %1 - %2? Do you want to update the information in %1 - %2? - - KeePassXC: Delete entry - KeePassXC: Delete entry - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -891,50 +952,46 @@ Do you want to delete the entry? - Converting attributes to custom data… - Converting attributes to custom data… + %1 (Passkey) + %1 (Passkey) - Abort - Abort + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Converted KeePassHTTP attributes + KeePassXC - Create a new group + KeePassXC - Create a new group - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - - - Successfully moved %n keys to custom data. - Successfully moved %n keys to custom data.Successfully moved %n keys to custom data. + Disable + Disable - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: No entry with KeePassHTTP attributes found! + KeePassXC - Overwrite existing key? + KeePassXC - Overwrite existing key? - The active database does not contain an entry with KeePassHTTP attributes. - The active database does not contain an entry with KeePassHTTP attributes. + KeePassXC - Update Passkey + KeePassXC - Update Passkey - Don't show this warning again - Don't show this warning again + KeePassXC - Update Entry + KeePassXC - Update Entry - KeePassXC: Legacy browser integration settings detected - KeePassXC: Legacy browser integration settings detected + KeePassXC - Delete entry + KeePassXC - Delete entry - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? + KeePassXC - New key association request + KeePassXC - New key association request + + + Passkey + Passkey @@ -1142,14 +1199,6 @@ Would you like to migrate your existing settings now? Please see special instructions for browser extension use below Please see special instructions for browser extension use below - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - - - <b>Warning:</b> The following options can be dangerous! - <b>Warning:</b> The following options can be dangerous! - Executable Files Executable Files @@ -1166,6 +1215,38 @@ Would you like to migrate your existing settings now? Select native messaging host folder location Select native messaging host folder location + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Warning:</b> Only adjust these settings if necessary. + + + The custom proxy location does not exist. + The custom proxy location does not exist. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + Allows using insecure http://localhost with Passkeys for testing purposes. + + + Allow using localhost with Passkeys + Allow using localhost with Passkeys + CloneDialog @@ -1188,14 +1269,6 @@ Would you like to migrate your existing settings now? CsvImportWidget - - Import CSV fields - Import CSV fields - - - filename - filename - size, rows, columns size, rows, columns @@ -1304,50 +1377,29 @@ Would you like to migrate your existing settings now? Column %1 Column %1 - - Imported from CSV file - Imported from CSV file - - - Original data: - Original data: - - - Error(s) detected in CSV file! - Error(s) detected in CSV file! - [%n more message(s) skipped] [%n more message skipped][%n more messages skipped] - Error - Error + Failed to parse CSV file: %1 + Failed to parse CSV file: %1 - CSV import: writer has errors: -%1 - CSV import: writer has errors: -%1 + Imported from CSV file: %1 + Imported from CSV file: %1 CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n byte%n bytes - %n row(s) + CSV row count %n row%n rows %n column(s) + CSV column count %n column%n columns @@ -1422,40 +1474,10 @@ Backup database located at %2 Password field Password field - - Enter Additional Credentials (if any): - Enter Additional Credentials (if any): - - - Key File: - Key File: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - - - Key file help - Key file help - Hardware key slot selection Hardware key slot selection - - Hardware Key: - Hardware Key: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - - - Hardware key help - Hardware key help - Key file to unlock the database Key file to unlock the database @@ -1468,14 +1490,6 @@ Backup database located at %2 Browse… Browse… - - Refresh hardware tokens - Refresh hardware tokens - - - Refresh - Refresh - Unlock Database Unlock Database @@ -1538,14 +1552,6 @@ To prevent this error from appearing, you must go to "Database Settings / S Retry with empty password Retry with empty password - - Failed to authenticate with Windows Hello - Failed to authenticate with Windows Hello - - - Failed to authenticate with Touch ID - Failed to authenticate with Touch ID - Failed to open key file: %1 Failed to open key file: %1 @@ -1579,22 +1585,64 @@ To prevent this error from appearing, you must go to "Database Settings / S Cannot use database file as key file - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. + authenticate to access the database + authenticate to access the database - Detecting hardware keys… - Detecting hardware keys… + Failed to authenticate with Quick Unlock: %1 + - No hardware keys detected - No hardware keys detected + Select Key File: + Select Key File: - Select hardware key… - Select hardware key… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + Click to add a key file. + Click to add a key file. + + + <a href="#" style="text-decoration: underline">I have a key file</a> + <a href="#" style="text-decoration: underline">I have a key file</a> + + + Use hardware key [Serial: %1] + Use hardware key [Serial: %1] + + + Use hardware key + Use hardware key + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + KeePassXC database file selected + KeePassXC database file selected + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + No hardware keys found. + No hardware keys found. + + + Refresh Hardware Keys + Refresh Hardware Keys @@ -1606,10 +1654,6 @@ If you do not have a key file, please leave the field empty. DatabaseSettingsDialog - - Advanced Settings - Advanced Settings - General General @@ -1641,18 +1685,6 @@ If you do not have a key file, please leave the field empty. KeePassXC-Browser settings KeePassXC-Browser settings - - Convert KeePassHTTP data - Convert KeePassHTTP data - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - - - Refresh database root group ID - Refresh database root group ID - Disconnect all browsers Disconnect all browsers @@ -1661,6 +1693,10 @@ If you do not have a key file, please leave the field empty. Forget all site-specific settings on entries Forget all site-specific settings on entries + + Refresh database root group ID + Refresh database root group ID + Stored keys Stored keys @@ -1709,18 +1745,10 @@ This may prevent connection to the browser plugin. Do you really want to disconnect all browsers? This may prevent connection to the browser plugin. - - KeePassXC: No keys found - KeePassXC: No keys found - No shared encryption keys found in KeePassXC settings. No shared encryption keys found in KeePassXC settings. - - KeePassXC: Removed keys from database - KeePassXC: Removed keys from database - Successfully removed %n encryption key(s) from KeePassXC settings. Successfully removed %n encryption key from KeePassXC settings.Successfully removed %n encryption keys from KeePassXC settings. @@ -1739,32 +1767,14 @@ Permissions to access entries will be revoked. Abort Abort - - KeePassXC: Removed permissions - KeePassXC: Removed permissions - Successfully removed permissions from %n entry(s). Successfully removed permissions from %n entry.Successfully removed permissions from %n entries. - - KeePassXC: No entry with permissions found! - KeePassXC: No entry with permissions found! - The active database does not contain an entry with permissions. The active database does not contain an entry with permissions. - - Move KeePassHTTP attributes to custom data - Move KeePassHTTP attributes to custom data - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Refresh database ID Refresh database ID @@ -1775,6 +1785,26 @@ This is only necessary if your database is a copy of another and the browser ext Do you really want refresh the database ID? This is only necessary if your database is a copy of another and the browser extension cannot connect. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + + + No keys found + No keys found + + + Removed keys from database + Removed keys from database + + + Removed permissions + Removed permissions + + + No entry with permissions found! + No entry with permissions found! + DatabaseSettingsWidgetDatabaseKey @@ -1814,6 +1844,18 @@ Are you sure you want to continue without a password? Failed to change database credentials Failed to change database credentials + + Weak password + Weak password + + + You must enter a stronger password to protect your database. + + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + + DatabaseSettingsWidgetEncryption @@ -1821,14 +1863,6 @@ Are you sure you want to continue without a password? Decryption Time: Decryption Time: - - Change existing decryption time - Change existing decryption time - - - Change - Change - Decryption time in seconds Decryption time in seconds @@ -1909,11 +1943,6 @@ Are you sure you want to continue without a password? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - unchanged - Number of rounds too high Key transformation rounds @@ -1966,6 +1995,18 @@ If you keep this number, your database will not be protected from brute force at Threads for parallel execution (KDF settings) thread threads + + Encryption Settings: + + + + Basic + + + + Advanced + Advanced + DatabaseSettingsWidgetFdoSecrets @@ -2024,18 +2065,10 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry Maximum number of history items per entry - - Max. history items: - Max. history items: - Maximum size of history per entry Maximum size of history per entry - - Max. history size: - Max. history size: - MiB MiB @@ -2066,6 +2099,64 @@ This action is not reversible. (old) (old) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + + + Limit the amount of history items per entry to: + Limit the amount of history items per entry to: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + + + Limit the total size of history items per entry to: + Limit the total size of history items per entry to: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + + + Autosave delay since last change + + + + Autosave delay + + + + Autosave delay since last change in minutes + + + + min + min + + + Autosave delay since last change checkbox + + DatabaseSettingsWidgetKeeShare @@ -2193,26 +2284,10 @@ This is definitely a bug, please report it to the developers. CSV file CSV file - - Select CSV file - Select CSV file - Merge database Merge database - - KeePass 1 database - KeePass 1 database - - - Open KeePass 1 database - Open KeePass 1 database - - - Open OPVault - Open OPVault - Export database to CSV file Export database to CSV file @@ -2225,6 +2300,18 @@ This is definitely a bug, please report it to the developers. Writing the HTML file failed. Writing the HTML file failed. + + Export database to XML file + Export database to XML file + + + XML file + XML file + + + Writing the XML file failed + Writing the XML file failed + Export Confirmation Export Confirmation @@ -2233,15 +2320,6 @@ This is definitely a bug, please report it to the developers. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - - New Database - New Database - - - %1 [New Database] - Database tab name modifier - %1 [New Database] - %1 [Locked] Database tab name modifier @@ -2251,8 +2329,8 @@ This is definitely a bug, please report it to the developers. DatabaseWidget - Database Tags - Database Tags + Searches and Tags + Searches and Tags Searching… @@ -2302,6 +2380,10 @@ This is definitely a bug, please report it to the developers. Expired entries Expired entries + + Entries expiring within %1 day(s) + Entries expiring within %1 dayEntries expiring within %1 days + No current database. No current database. @@ -2326,6 +2408,18 @@ This is definitely a bug, please report it to the developers. No Results No Results + + Save + Save + + + Enter a unique name or overwrite an existing search from the list: + Enter a unique name or overwrite an existing search from the list: + + + Save Search + Save Search + Lock Database? Lock Database? @@ -2416,9 +2510,14 @@ Disable safe saves and try again? Could not find database file: %1 Could not find database file: %1 - - Entries expiring within %1 day(s) - Entries expiring within %1 dayEntries expiring within %1 days + + New Database + New Database + + + %1 [New Database] + Database tab name modifier + %1 [New Database] @@ -2561,6 +2660,10 @@ Would you like to correct it? Hide Hide + + %n hour(s) + %n hour%n hours + %n week(s) %n week%n weeks @@ -2573,10 +2676,6 @@ Would you like to correct it? %n year(s) %n year%n years - - %n hour(s) - %n hour%n hours - EditEntryWidgetAdvanced @@ -2695,10 +2794,20 @@ Would you like to correct it? Add new window association Add new window association + + + + Add item + + + Remove selected window association Remove selected window association + + - + Remove item + - + Window title: Window title: @@ -2723,16 +2832,6 @@ Would you like to correct it? Custom Auto-Type sequence for this window Custom Auto-Type sequence for this window - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2834,22 +2933,10 @@ Would you like to correct it? Notes field Notes field - - Toggle the checkbox to reveal the notes section. - Toggle the checkbox to reveal the notes section. - Username field Username field - - Toggle notes visible - Toggle notes visible - - - Notes: - Notes: - Expiration field Expiration field @@ -2866,14 +2953,6 @@ Would you like to correct it? Presets Presets - - Password: - Password: - - - URL: - URL: - Url field Url field @@ -2882,18 +2961,10 @@ Would you like to correct it? Download favicon for URL Download favicon for URL - - Title: - Title: - Title field Title field - - Username: - Username: - Password field Password field @@ -2902,18 +2973,42 @@ Would you like to correct it? Toggle expiration Toggle expiration - - Expires: - Expires: - - - Tags: - Tags: - Tags list Tags list + + &Username: + &Username: + + + &Title: + &Title: + + + &Password: + &Password: + + + UR&L: + UR&L: + + + &Notes: + &Notes: + + + Toggle notes visibility + Toggle notes visibility + + + T&ags: + T&ags: + + + &Expires: + &Expires: + EditEntryWidgetSSHAgent @@ -2953,19 +3048,6 @@ Would you like to correct it? Private key Private key - - External file - External file - - - Browser for key file - Browser for key file - - - Browse… - Button for opening file dialog - Browse… - Attachment Attachment @@ -2982,6 +3064,23 @@ Would you like to correct it? Remove from agent Remove from agent + + External file + External file + + + Browser for key file + Browser for key file + + + Browse… + Button for opening file dialog + Browse… + + + Generate + Generate + Select attachment file Select attachment file @@ -3017,10 +3116,6 @@ Would you like to correct it? Icon Icon - - Browser Integration - Browser Integration - Properties Properties @@ -3037,6 +3132,10 @@ Would you like to correct it? Group has unsaved changes Group has unsaved changes + + Browser Integration + Browser Integration + Enable Enable @@ -3052,10 +3151,6 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - Edit Group - These settings affect to the group's behaviour with the browser extension. These settings affect to the group's behaviour with the browser extension. @@ -3092,6 +3187,22 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups Do not use HTTP Auth toggle for this and sub groups + + Omit WWW subdomain from matching: + Omit WWW subdomain from matching: + + + Omit WWW subdomain from matching toggle for this and sub groups + Omit WWW subdomain from matching toggle for this and sub groups + + + Restrict matching to given browser key: + + + + Restrict matching to given browser key toggle for this and sub groups + + EditGroupWidgetKeeShare @@ -3324,10 +3435,6 @@ Supported extensions are: %1. Unable to fetch favicon. Unable to fetch favicon. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Existing icon selected. Existing icon selected. @@ -3360,6 +3467,10 @@ Supported extensions are: %1. The following icon(s) failed: The following icon failed:The following icons failed: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + You can enable the DuckDuckGo website icon service under Application Settings -> Security + EditWidgetProperties @@ -3798,6 +3909,10 @@ Error: %1 Has TOTP Has TOTP + + Background Color + + EntryPreviewWidget @@ -3818,8 +3933,8 @@ Error: %1 Password - Notes - Notes + URL + URL Expiration @@ -3838,8 +3953,8 @@ Error: %1 Username - URL - URL + Notes + Notes Advanced @@ -3889,6 +4004,10 @@ Error: %1 Never Never + + Double click to copy value + Double click to copy value + Enabled Enabled @@ -3897,6 +4016,10 @@ Error: %1 Disabled Disabled + + Double click to copy to clipboard + Double click to copy to clipboard + EntryURLModel @@ -3904,6 +4027,10 @@ Error: %1 Invalid URL Invalid URL + + Duplicate URL + Duplicate URL + EntryView @@ -3919,6 +4046,10 @@ Error: %1 Reset to defaults Reset to defaults + + + %1 entry(s)... + + %1 entry...+ %1 entries... + ExportDialog @@ -4140,6 +4271,147 @@ You can enable the DuckDuckGo website icon service in the security section of th Downloading favicons (%1/%2)… + + ImportWizard + + Import Wizard + Import Wizard + + + + ImportWizardPageReview + + WizardPage + WizardPage + + + Entry count: %1 + Entry count: %1 + + + Group + Group + + + Title + Title + + + Username + Username + + + Password + Password + + + Url + Url + + + + ImportWizardPageSelect + + Form + Form + + + Import File Selection + Import File Selection + + + Password: + Password: + + + Key File: + Key File: + + + Browse… + Browse… + + + Import Into: + + + + New Database + New Database + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Open OPVault + + + Select import file + + + + All files + All files + + + Key files + Key files + + + Select key file + Select key file + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4574,17 +4846,6 @@ Line %2, column %3 Failed to open private key - - KeePass1OpenWidget - - Import KeePass1 Database - Import KeePass1 Database - - - Unable to open the database. - Unable to open the database. - - KeePass1Reader @@ -4941,10 +5202,6 @@ Are you sure you want to continue with this file? &Recent Databases &Recent Databases - - &Import - &Import - &Export &Export @@ -4965,6 +5222,10 @@ Are you sure you want to continue with this file? TOTP TOTP + + Tags + Tags + &Groups &Groups @@ -5009,34 +5270,18 @@ Are you sure you want to continue with this file? &New Database… &New Database… - - Create a new database - Create a new database - &Merge From Database… &Merge From Database… - - Merge from another KDBX database - Merge from another KDBX database - &New Entry… &New Entry… - - Add a new entry - Add a new entry - &Edit Entry… &Edit Entry… - - View or edit entry - View or edit entry - &Delete Entry… &Delete Entry… @@ -5045,10 +5290,6 @@ Are you sure you want to continue with this file? &New Group… &New Group… - - Add a new group - Add a new group - &Edit Group… &Edit Group… @@ -5081,18 +5322,10 @@ Are you sure you want to continue with this file? Database &Reports… Database &Reports… - - Statistics, health check, etc. - Statistics, health check, etc. - &Database Settings… &Database Settings… - - Database settings - Database settings - &Clone Entry… &Clone Entry… @@ -5101,34 +5334,18 @@ Are you sure you want to continue with this file? Move u&p Move u&p - - Move entry one step up - Move entry one step up - Move do&wn Move do&wn - - Move entry one step down - Move entry one step down - Copy &Username Copy &Username - - Copy username to clipboard - Copy username to clipboard - Copy &Password Copy &Password - - Copy password to clipboard - Copy password to clipboard - &Settings &Settings @@ -5162,25 +5379,13 @@ Are you sure you want to continue with this file? &Title - Copy title to clipboard - Copy title to clipboard - - - &URL - &URL - - - Copy URL to clipboard - Copy URL to clipboard + Copy &URL + Copy &URL &Notes &Notes - - Copy notes to clipboard - Copy notes to clipboard - &CSV File… &CSV File… @@ -5193,26 +5398,14 @@ Are you sure you want to continue with this file? KeePass 1 Database… KeePass 1 Database… - - Import a KeePass 1 database - Import a KeePass 1 database - 1Password Vault… 1Password Vault… - - Import a 1Password Vault - Import a 1Password Vault - CSV File… CSV File… - - Import a CSV file - Import a CSV file - Show TOTP Show TOTP @@ -5229,6 +5422,10 @@ Are you sure you want to continue with this file? Copy &TOTP Copy &TOTP + + Copy Password and TOTP + Copy Password and TOTP + E&mpty recycle bin E&mpty recycle bin @@ -5253,10 +5450,6 @@ Are you sure you want to continue with this file? &Online Help &Online Help - - Go to online documentation - Go to online documentation - &User Guide &User Guide @@ -5325,6 +5518,10 @@ Are you sure you want to continue with this file? Clone Group... Clone Group... + + &XML File… + &XML File… + Clear history Clear history @@ -5357,6 +5554,10 @@ We recommend you use the AppImage available on our downloads page. WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard. We recommend you use the AppImage available on our downloads page. + + No Tags + No Tags + Restore Entry(s) Restore EntryRestore Entries @@ -5385,6 +5586,10 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC Quit KeePassXC + + %1 Entry(s) + %1 Entry%1 Entries + Please present or touch your YubiKey to continue… Please present or touch your YubiKey to continue… @@ -5397,6 +5602,274 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? You must restart the application to apply this setting. Would you like to restart now? + + Allow Screen Capture + Allow Screen Capture + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + + + + Import Passkey + + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + Edit Entry + + + Delete Entry + + + + Create Group + + + + Edit Group + Edit Group + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + Copy Username + + + Copy Password + Copy Password + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + Import KeePass1 Database + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + ManageDatabase @@ -5454,26 +5927,6 @@ We recommend you use the AppImage available on our downloads page. Overwriting %1 [%2] Overwriting %1 [%2] - - older entry merged from database "%1" - older entry merged from database "%1" - - - Adding backup for older target %1 [%2] - Adding backup for older target %1 [%2] - - - Adding backup for older source %1 [%2] - Adding backup for older source %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Reapplying older target entry on top of newer source %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Reapplying older source entry on top of newer target %1 [%2] - Synchronizing from newer source %1 [%2] Synchronizing from newer source %1 [%2] @@ -5533,14 +5986,6 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - - Advanced Settings - Advanced Settings - - - Simple Settings - Simple Settings - NewDatabaseWizardPageDatabaseKey @@ -5621,15 +6066,6 @@ We recommend you use the AppImage available on our downloads page. Expected %1 bytes of clear-text, found %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Read Database did not produce an instance -%1 - - OpVaultReader @@ -5703,6 +6139,10 @@ We recommend you use the AppImage available on our downloads page. Unknown cipher: %1 Unknown cipher: %1 + + AES-256/GCM is currently not supported + AES-256/GCM is currently not supported + Passphrase is required to decrypt this key Passphrase is required to decrypt this key @@ -5769,26 +6209,174 @@ We recommend you use the AppImage available on our downloads page. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Passwords do not match + SSH Key Generator + - Passwords match so far - Passwords match so far + Type + Type - Toggle Password (%1) - Toggle Password (%1) + Bits + - Generate Password (%1) - Generate Password (%1) + Comment + Comment + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + - Warning: Caps Lock enabled! - Warning: Caps Lock enabled! + Export the following Passkey entries. + + + + Filenames will be generated with title and .passkey file extension. + + + + Export entries + + + + Export Selected + + + + Cancel + Cancel + + + Export to folder + + + + + PasskeyExporter + + KeePassXC: Passkey Export + + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + + Cannot open file + + + + Cannot open file "%1" for writing. + + + + Cannot write to file + + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + + + + Username: %1 + Username: %1 + + + Group + Group + + + Database + + + + Import Passkey + + + + Import + Import + + + Cancel + Cancel + + + Import the following Passkey: + + + + Entry + Entry + + + Import the following Passkey to this entry: + + + + Create new entry + + + + Default Passkeys group (Imported Passkeys) + + + + Relying Party: %1 + Relying Party: %1 + + + + PasskeyImporter + + Passkey file + + + + All files + All files + + + Open Passkey file + + + + Cannot open file + + + + Cannot open file "%1" for reading. + + + + Cannot import Passkey + + + + Cannot import Passkey file "%1". Data is missing. + + + + Cannot import Passkey file "%1". Private key is missing or malformed. + + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + @@ -6053,6 +6641,30 @@ We recommend you use the AppImage available on our downloads page. Entropy: %1 bit Entropy: %1 bit + + Password Quality: %1 + Password Quality: %1 + + + Poor + Password quality + Poor + + + Weak + Password quality + Weak + + + Good + Password quality + Good + + + Excellent + Password quality + Excellent + Confirm Delete Wordlist Confirm Delete Wordlist @@ -6099,9 +6711,32 @@ Do you want to overwrite it? Special Characters Special Characters + + + PasswordWidget - Password Quality: %1 - Password Quality: %1 + Passwords do not match + Passwords do not match + + + Passwords match so far + Passwords match so far + + + Toggle Password (%1) + Toggle Password (%1) + + + Generate Password (%1) + Generate Password (%1) + + + Warning: Caps Lock enabled! + Warning: Caps Lock enabled! + + + Quality: %1 + Quality: %1 Poor @@ -6123,6 +6758,10 @@ Do you want to overwrite it? Password quality Excellent + + Toggle password visibility using Control + H. Open the password generator using Control + G. + + PickcharsDialog @@ -6177,6 +6816,10 @@ Do you want to overwrite it? Continue Continue + + Continue with weak password + + QObject @@ -6570,6 +7213,10 @@ Do you want to overwrite it? Too many arguments provided. Too many arguments provided. + + Path of the database. + Path of the database. + Target decryption time in MS for the database. Target decryption time in MS for the database. @@ -6578,6 +7225,12 @@ Do you want to overwrite it? time time + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Set the key file for the database. Set the key file for the database. @@ -6590,10 +7243,6 @@ Do you want to overwrite it? Create a new database. Create a new database. - - Path of the database. - Path of the database. - Invalid decryption time %1. Invalid decryption time %1. @@ -6638,6 +7287,158 @@ Do you want to overwrite it? Successfully created new database. Successfully created new database. + + Unset the password for the database. + Unset the password for the database. + + + Unset the key file for the database. + Unset the key file for the database. + + + Edit a database. + Edit a database. + + + Cannot use %1 and %2 at the same time. + Cannot use %1 and %2 at the same time. + + + Could not change the database key. + Could not change the database key. + + + Database was not modified. + Database was not modified. + + + Writing the database failed: %1 + Writing the database failed: %1 + + + Successfully edited the database. + Successfully edited the database. + + + Cannot remove password: The database does not have a password. + Cannot remove password: The database does not have a password. + + + Cannot remove file key: The database does not have a file key. + Cannot remove file key: The database does not have a file key. + + + Loading the new key file failed: %1 + Loading the new key file failed: %1 + + + Found unexpected Key type %1 + Found unexpected Key type %1 + + + Cannot remove all the keys from a database. + Cannot remove all the keys from a database. + + + Show a database's information. + Show a database's information. + + + UUID: + UUID: + + + Name: + Name: + + + Description: + Description: + + + Cipher: + Cipher: + + + KDF: + KDF: + + + Recycle bin is enabled. + Recycle bin is enabled. + + + Recycle bin is not enabled. + Recycle bin is not enabled. + + + Location + Location + + + Database created + Database created + + + Last saved + Last saved + + + Unsaved changes + Unsaved changes + + + yes + yes + + + no + no + + + Number of groups + Number of groups + + + Number of entries + Number of entries + + + Number of expired entries + Number of expired entries + + + Unique passwords + Unique passwords + + + Non-unique passwords + Non-unique passwords + + + Maximum password reuse + Maximum password reuse + + + Number of short passwords + Number of short passwords + + + Number of weak passwords + Number of weak passwords + + + Entries excluded from reports + Entries excluded from reports + + + Average password length + Average password length + + + %1 characters + %1 characters + Word count for the diceware passphrase. Word count for the diceware passphrase. @@ -6689,10 +7490,6 @@ Do you want to overwrite it? Enter new password for entry: Enter new password for entry: - - Writing the database failed: %1 - Writing the database failed: %1 - Successfully edited entry %1. Successfully edited entry %1. @@ -6917,106 +7714,6 @@ Do you want to overwrite it? Successfully imported database. Successfully imported database. - - Show a database's information. - Show a database's information. - - - UUID: - UUID: - - - Name: - Name: - - - Description: - Description: - - - Cipher: - Cipher: - - - KDF: - KDF: - - - Recycle bin is enabled. - Recycle bin is enabled. - - - Recycle bin is not enabled. - Recycle bin is not enabled. - - - Location - Location - - - Database created - Database created - - - Last saved - Last saved - - - Unsaved changes - Unsaved changes - - - yes - yes - - - no - no - - - Number of groups - Number of groups - - - Number of entries - Number of entries - - - Number of expired entries - Number of expired entries - - - Unique passwords - Unique passwords - - - Non-unique passwords - Non-unique passwords - - - Maximum password reuse - Maximum password reuse - - - Number of short passwords - Number of short passwords - - - Number of weak passwords - Number of weak passwords - - - Entries excluded from reports - Entries excluded from reports - - - Average password length - Average password length - - - %1 characters - %1 characters - Unknown command %1 Unknown command %1 @@ -7189,6 +7886,10 @@ Available commands: Show the protected attributes in clear text. Show the protected attributes in clear text. + + Show all the attributes of the entry. + Show all the attributes of the entry. + Show the attachments of the entry. Show the attachments of the entry. @@ -7259,6 +7960,10 @@ Please consider generating a new key file. Invalid YubiKey serial %1 Invalid YubiKey serial %1 + + Please present or touch your YubiKey to continue. + Please present or touch your YubiKey to continue. + Enter password to encrypt database (optional): Enter password to encrypt database (optional): @@ -7446,8 +8151,8 @@ Kernel: %3 %4 %1 minute%1 minutes - Botan library must be at least 2.11.x, found %1.%2.%3 - Botan library must be at least 2.11.x, found %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + Botan library must be at least %1, found %2.%3.%4 Cryptographic libraries: @@ -7687,10 +8392,6 @@ Kernel: %3 %4 read password of the database from stdin read password of the database from stdin - - allow app screen recordering and screenshots - allow app screen recordering and screenshots - Locked databases. Databases have been locked. @@ -7703,6 +8404,10 @@ Kernel: %3 %4 Another instance of KeePassXC is already running. Another instance of KeePassXC is already running. + + KeePassXC is not running. No open database to lock + KeePassXC is not running. No open database to lock + Fatal error while testing the cryptographic functions. Fatal error while testing the cryptographic functions. @@ -7711,10 +8416,6 @@ Kernel: %3 %4 KeePassXC - Error KeePassXC - Error - - Warning: Failed to prevent screenshots on a top level window! - Warning: Failed to prevent screenshots on a top level window! - Database password: Database password: @@ -7738,8 +8439,222 @@ Kernel: %3 %4 Failed to sign challenge using Windows Hello. - Please present or touch your YubiKey to continue. - Please present or touch your YubiKey to continue. + Warning: Failed to block screenshot capture on a top-level window. + Warning: Failed to block screenshot capture on a top-level window. + + + Invalid Cipher + Invalid Cipher + + + Invalid KDF + Invalid KDF + + + Access to all entries is denied + + + + allow screenshots and app recording (Windows/macOS) + + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + + + + Credential is excluded + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Passkeys + + + + AES initialization failed + + + + AES encrypt failed + + + + Failed to store in Linux Keyring + + + + Polkit returned an error: %1 + + + + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + + + + Failed to init KeePassXC crypto. + Failed to init KeePassXC crypto. + + + Failed to encrypt key data. + Failed to encrypt key data. + + + Failed to get Windows Hello credential. + Failed to get Windows Hello credential. + + + Failed to decrypt key data. + Failed to decrypt key data. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length + @@ -7778,18 +8693,6 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - Exclude expired entries from the report - - - Show only entries which have URL set - Show only entries which have URL set - - - Show only entries which have browser settings in custom data - Show only entries which have browser settings in custom data - Double-click entries to edit. Double-click entries to edit. @@ -7854,17 +8757,25 @@ Kernel: %3 %4 Exclude from reports Exclude from reports + + Only show entries that have a URL + + + + Only show entries that have been explicitly allowed or denied + + + + Show expired entries + + + + (Expired) + + ReportsWidgetHealthcheck - - Exclude expired entries from the report - Exclude expired entries from the report - - - Also show entries that have been excluded from reports - Also show entries that have been excluded from reports - Hover over reason to show additional details. Double-click entries to edit. Hover over reason to show additional details. Double-click entries to edit. @@ -7940,6 +8851,18 @@ Kernel: %3 %4 Exclude from reports Exclude from reports + + Show expired entries + + + + Show entries that have been excluded from reports + + + + (Expired) + + ReportsWidgetHibp @@ -8036,6 +8959,65 @@ Kernel: %3 %4 Exclude from reports + + ReportsWidgetPasskeys + + Export + Export + + + Import + Import + + + List of entry URLs + List of entry URLs + + + Please wait, list of entries with Passkeys is being updated… + + + + No entries with Passkeys. + + + + Title + Title + + + Path + Path + + + Username + Username + + + URLs + URLs + + + Edit Entry… + Edit Entry… + + + Delete Entry(s)… + Delete Entry…Delete Entries… + + + Relying Party + + + + Show expired entries + + + + (Expired) + + + ReportsWidgetStatistics @@ -8275,6 +9257,10 @@ Kernel: %3 %4 Search Help Search Help + + Save Search + Save Search + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8506,11 +9492,38 @@ Kernel: %3 %4 Export to %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All - All + Clear Search + Clear Search + + + All Entries + All Entries Expired @@ -8521,6 +9534,25 @@ Kernel: %3 %4 Weak Passwords + + TagView + + Remove Search + Remove Search + + + Remove Tag + Remove Tag + + + Confirm Remove Tag + Confirm Remove Tag + + + Remove tag "%1" from all entries in this database? + Remove tag "%1" from all entries in this database? + + TotpDialog @@ -8678,26 +9710,6 @@ Example: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Start storing your passwords securely in a KeePassXC database - - Create new database - Create new database - - - Open existing database - Open existing database - - - Import from KeePass 1 - Import from KeePass 1 - - - Import from 1Password - Import from 1Password - - - Import from CSV - Import from CSV - Recent databases Recent databases @@ -8710,6 +9722,18 @@ Example: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Welcome to KeePassXC %1 + + Create Database + + + + Open Database + + + + Import File + + WinUtils @@ -8726,31 +9750,8 @@ Example: JBSWY3DPEHPK3PXP Could not register global shortcut - - WindowsHello - - Failed to init KeePassXC crypto. - Failed to init KeePassXC crypto. - - - Failed to encrypt key data. - Failed to encrypt key data. - - - Failed to get Windows Hello credential. - Failed to get Windows Hello credential. - - - Failed to decrypt key data. - Failed to decrypt key data. - - YubiKey - - %1 No interface, slot %2 - %1 No interface, slot %2 - General: General: @@ -8762,14 +9763,6 @@ Example: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - Refresh hardware tokens - - - Refresh - Refresh - Hardware key slot selection Hardware key slot selection @@ -8802,10 +9795,6 @@ Example: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove Challenge-Response set, click to change or remove - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - Detecting hardware keys… Detecting hardware keys… @@ -8814,28 +9803,21 @@ Example: JBSWY3DPEHPK3PXP No hardware keys detected No hardware keys detected - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 Invalid slot specified - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] Challenge-Response - Slot %3 - The YubiKey PCSC interface has not been initialized. The YubiKey PCSC interface has not been initialized. - - Hardware key is currently in use. - Hardware key is currently in use. - Could not find or access hardware key with serial number %1. Please present it to continue. Could not find or access hardware key with serial number %1. Please present it to continue. @@ -8852,6 +9834,21 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 Failed to complete a challenge-response, the PCSC error code was: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + Press + + + Passive + USB Challenge-Response Key no interaction required + Passive + YubiKeyInterfaceUSB @@ -8859,14 +9856,6 @@ Example: JBSWY3DPEHPK3PXP Unknown Unknown - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] Configured Slot - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8881,10 +9870,6 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. The YubiKey USB interface has not been initialized. - - Hardware key is currently in use. - Hardware key is currently in use. - Could not find hardware key with serial number %1. Please plug it in to continue. Could not find hardware key with serial number %1. Please plug it in to continue. @@ -8901,5 +9886,15 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 Failed to complete a challenge-response, the specific error was: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_es.ts b/share/translations/keepassxc_es.ts index 7d3c2689f..21c847f7d 100644 --- a/share/translations/keepassxc_es.ts +++ b/share/translations/keepassxc_es.ts @@ -74,12 +74,16 @@ Command Line - Línea de comandos + Línea de órdenes Details Detalles + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Su decisión será recordada mientras el cliente solicitante y KeePassXC están en ejecución ambos. + Remember Recordar @@ -88,10 +92,6 @@ Allow Selected Permitir seleccionado - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - Su decisión será recordada mientras el cliente solicitante y KeePassXC están en ejecución ambos. - Deny All && Future Denegar todo y futuro @@ -122,6 +122,10 @@ Use OpenSSH Usar OpenSSH + + Use both agents + Usar ambos agentes + SSH_AUTH_SOCK override Anulación de SSH_AUTH_SOCK @@ -144,16 +148,12 @@ No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. - No hay ningún socket de agente SSH disponible. Asegúrese que exista la variable de entorno  SSH_AUTH_SOCK o fije una sustitución. + No hay ningún socket de agente SSH disponible. Asegúrese que exista la variable de entorno SSH_AUTH_SOCK o fije una sustitución. SSH Agent connection is working! ¡La conexión del agente de SSH está funcionando! - - Use both agents - - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security Seguridad + + This setting cannot be enabled when minimize on unlock is enabled. + Esta preferencia no puede ser habilitada cuando está habilitado minimizar al desbloquear. + Access error for config file %1 Error de acceso al archivo de configuración %1 @@ -219,7 +223,7 @@ Are you sure you want to reset all general and security settings to default? - ¿Desea restablecer los parámetros generales y seguridad a sus valores por defecto? + ¿Desea restablecer todos los parámetros generales y de seguridad a sus valores por defecto? Select backup storage directory @@ -256,6 +260,10 @@ Remember previously used databases Recordar bases de datos usadas anteriormente + + recent files + archivos recientes + Load previously open databases on startup Cargar bases de datos abiertas anteriormente al inicio @@ -297,7 +305,7 @@ Automatically save after every change - Guardar automáticamente después de cada cambio + Guardar automáticamente tras cada cambio Automatically save when locking database @@ -329,7 +337,7 @@ Choose... - Seleccionar... + Elegir... Use alternative saving method (may solve problems with Dropbox, Google Drive, GVFS, etc.) @@ -369,11 +377,11 @@ Favicon download timeout: - Tiempo de espera de descarga de icono: + Tiempo agotado en la espera de descarga del icono: Website icon download timeout in seconds - Tiempo de espera en segundos de descarga de icono de sitio web + Tiempo de espera en segundos para descarga del icono del sitio web sec @@ -408,9 +416,13 @@ Toolbar button style: Estilo de la barra de botones: + + Show passwords in color + Mostrar contraseñas en color + Use monospaced font for notes - Utilizar tipografía mono espaciadas para notas + Utilizar tipografía mono-espaciadas para notas Minimize instead of app exit @@ -458,15 +470,15 @@ Re-lock previously locked database after performing Auto-Type - Volver a bloquear la base de datos tras realizar una autoescritura + Volver a bloquear la base de datos tras realizar un auto-tecleo Auto-Type start delay: - Retardo del inicio del autoescritura: + Retardo del inicio del auto-tecleo: Global Auto-Type shortcut: - Atajo global de autoescritura: + Atajo global de auto-tecleo: Auto-type start delay milliseconds @@ -479,15 +491,15 @@ Auto-Type typing delay: - Retardo de tecleo del autoescritura: + Retardo de tecleo del auto-tecleo Global auto-type shortcut - Atajo global de autoescritura + Atajo global de auto-tecleo Auto-type character typing delay milliseconds - Retardo de autoescritura de caracteres + Retardo de auto-tecleo de caracteres Remember last typed entry for: @@ -502,7 +514,7 @@ Database lock timeout seconds - Tiempo de espera de bloqueo de base de datos en segundos + Segundos de espera de bloqueo de la base de datos sec @@ -524,7 +536,7 @@ Clipboard clear seconds - Segundos para purga del portapapeles + Segundos para purgar portapapeles Lock databases after inactivity of @@ -540,7 +552,7 @@ Lock databases when session is locked or lid is closed - Bloquear bases de datos cuando la sesión esté bloqueada o la pantalla cerrada + Bloquear bases de datos cuando la sesión se bloquee o se cierre el monitor Lock databases after minimizing the window @@ -564,7 +576,7 @@ Hide entry notes by default - Ocultar notas del apunte por defecto + Ocultar anotaciones del apunte por defecto Move entries to recycle bin without confirmation @@ -572,7 +584,7 @@ Enable double click to copy the username/password entry columns - Activar doble clic para copiar las columnas de apunte de usuario/contraseña + Activar pulsación doble para copiar las columnas de apunte de usuario/contraseña Privacy @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons Utilizar el servicio DuckDuckGo para descargar iconos de sitio web + + Hide TOTP in the entry preview panel + Ocultar TOTP en el panel de vista previa de apunte + AutoType @@ -591,7 +607,7 @@ Auto-Type Error - Error de Autoescritura + Error de Auto-tecleo Permission Required @@ -603,7 +619,7 @@ KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. - KeePassXC requiere el permiso accesibilidad y grabación de pantalla para realizar la autoescritura global. La grabación de pantalla es necesario para usar el título de la ventana al encontrar apuntes. Si ya ha concedido este permiso, quizá deba reiniciar KeePassXC. + KeePassXC requiere el permiso accesibilidad y grabación de pantalla para realizar la auto-tecleo global. La grabación de pantalla es necesario para usar el título de la ventana al encontrar apuntes. Si ya ha concedido este permiso, quizá deba reiniciar KeePassXC. Invalid entry provided @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 Retraso muy largo detectado, máx es %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + El apunte no tiene atributo para PICKCHARS: %1 + Invalid conversion type: %1 Tipo de conversión no válido: %1 @@ -719,7 +739,7 @@ Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> <p>Puede usar búsquedas de consultas avanzadas para encontrar cualquier apunte en su base de datos abierta. Los siguientes atajos de teclado son útiles:<br/> -Ctrl+F - Intercambiar búsqueda de base de datos<br/> +Ctrl+F - Conmutar búsqueda de base de datos<br/> Ctrl+1 - Escribir nombre de usuario<br/> Ctrl+2 - Escribir contraseña<br/> Ctrl+3 - Escribir TOTP<br/> @@ -804,13 +824,13 @@ Ctrl+4 - Usar teclado virtual (solo Windows)</p> Disable for this site Deshabilitar para este sitio + + Undo + Deshacer + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - Guardar apunte KeePassXC-Browser - Ok Aceptar @@ -825,13 +845,70 @@ Please select the correct database for saving credentials. Tiene múltiples bases de datos abiertas. Seleccione la base de datos correcta para guardar las credenciales. + + KeePassXC - Select Database + KeePassXC - Seleccionar base de datos + + + + BrowserPasskeysConfirmationDialog + + Cancel + Cancelar + + + Update + Actualizar + + + Authenticate + Autenticar + + + Register new + Registrar ahora + + + Register + Registrar + + + Timeout in <b>%n</b> seconds... + Caduca en <b>%n</b> segundo...Caduca en <b>%n</b> segundos...Caduca en <b>%n</b> segundos... + + + Do you want to register Passkey for: + Desea registrar passkey para: + + + Existing Passkey found. +Do you want to register a new Passkey for: + Passkey existente encontrado. +Desea registrar un nuevo Passkey para: + + + Select the existing Passkey and press Update to replace it. + Seleccionar el Passkey existente y presione Actualizar para reemplazarlo. + + + Authenticate Passkey credentials for: + Autenticar credenciales de Passkey para: + + + Relying Party: %1 + Parte que confía: %1 + + + Username: %1 + Usuario: %1 + + + KeePassXC - Passkey credentials + KeePassXC - Credenciales passkey + BrowserService - - KeePassXC: Create a new group - KeePassXC: crear un grupo nuevo - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -840,10 +917,6 @@ Do you want to create this group? ¿Desea crear este grupo? - - KeePassXC: New key association request - KeePassXC: solicitud de asociación de clave nueva - You have received an association request for the following database: %1 @@ -860,81 +933,65 @@ portatil-chrome. Save and allow access Guardar y permitir acceso - - KeePassXC: Overwrite existing key? - KeePassXC: ¿Sobrescribir clave existente? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? Ya existe una clave compartida con el nombre «%1». ¿Desea sobrescribirlo? - - KeePassXC: Update Entry - KeePassXC: actualizar apunte - Do you want to update the information in %1 - %2? ¿Desea actualizar la información en %1 - %2? - - KeePassXC: Delete entry - KeePassXC: Borrar apunte - A request for deleting entry "%1" has been received. Do you want to delete the entry? - Se ha recibido una solicitud para borrar el apunte "%1". + Se ha recibido una solicitud para borrar el apunte «%1». ¿Desea borrar este apunte? - Converting attributes to custom data… - Convirtiendo atributos a datos personalizados… + %1 (Passkey) + %1 (Passkey) - Abort - Abortar + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + El apunte tiene un Passkey. +¿Desea sobrescribir el PassKey en %1 - %2? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: atributos de KeePassHTTP convertidos + KeePassXC - Create a new group + KeePassXC - Crear un nuevo grupo - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Atributos correctamente convertidos desde %1 apunte(s). -Movidas %2 claves a datos personalizados. - - - Successfully moved %n keys to custom data. - %n claves(s) movida(s) a datos propios correctamente.%n clave(s) movida(s) a datos propios correctamente. + Disable + Deshabilitar - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: ¡No se encontró ningún apunte con los atributos KeePassHTTP! + KeePassXC - Overwrite existing key? + KeePassXC - ¿Sobreescribir clave existente? - The active database does not contain an entry with KeePassHTTP attributes. - La base de datos activa no contiene un apunte con atributos de KeePassHTTP. + KeePassXC - Update Passkey + KeePassXC - Actualizar passkey - Don't show this warning again - No mostrar esta advertencia de nuevo + KeePassXC - Update Entry + KeePassXC - Actualizar apunte - KeePassXC: Legacy browser integration settings detected - KeePassXC: parámetros heredados de integración detectados con el navegador + KeePassXC - Delete entry + KeePassXC - Eliminar apunte - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Sus configuraciones de KeePassXC-Browser necesitan moverse a los parámetros de la base de datos. -Esto es necesario para conservar sus conexiones presentes del navegador. -¿Desea migrar sus parámetros existentes ahora? + KeePassXC - New key association request + KeePassXC - Petición de nueva asociación de clave + + + Passkey + @@ -949,7 +1006,7 @@ Esto es necesario para conservar sus conexiones presentes del navegador. Enable browser integration - Habilitar integración con navegador + Activar integración con navegador General @@ -1006,7 +1063,7 @@ Esto es necesario para conservar sus conexiones presentes del navegador. Match URL scheme (e.g., https://example.com) - Coincidir con el esquema de URL (ej., https://example.com) + Coincidir con el esquema de URL (ej., https://ejemplo.es) Only returns the best matches for a specific URL instead of all entries for the whole domain. @@ -1054,11 +1111,11 @@ Esto es necesario para conservar sus conexiones presentes del navegador. Automatically creating or updating string fields is not supported. - No se permite crear o actualizar campos de caracteres automáticamente. + No se permite crear o actualizar automáticamente campos de caracteres. Return advanced string fields which start with "KPH: " - Devuelve campos de texto avanzados que comienzan por "KPH: " + Devuelve campos de texto avanzados que comienzan por «KPH: » Don't display the popup suggesting migration of legacy KeePassHTTP settings. @@ -1142,14 +1199,6 @@ Esto es necesario para conservar sus conexiones presentes del navegador. Please see special instructions for browser extension use below Vea las instrucciones especiales para el uso de extensión de navegador debajo. - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Error:</b> ¡No se puede encontrar la ubicación de proxy personalizada!<br/>La integración del navegador NO funcionará sin la aplicación proxy. - - - <b>Warning:</b> The following options can be dangerous! - <b>Advertencia:</b> las siguientes opciones pueden ser peligrosas. - Executable Files Ficheros ejecutables @@ -1166,6 +1215,38 @@ Esto es necesario para conservar sus conexiones presentes del navegador. Select native messaging host folder location Seleccione la ubicación de la carpeta de hospedaje de mensajería nativa + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + Permitir a keepassxc-proxy listar todos los apuntes con su título, URL y UUID en las bases de datos conectadas. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + Permitir acceso limitado a todos los apuntes en las bases de datos conectadas (ignorar restricciones de acceso de sitio) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Advertencia:</b> Solo ajustar estas configuraciones si es necesario. + + + The custom proxy location does not exist. + La localización de proxy personalizada no existe. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Error:</b> La localización de proxy personalizada no existe. Corrija esto en la pestaña de configuración avanzada. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Error:</b> El ejecutable de proxy instalado falta en la localización esperada: %1<br/> Establezca una localización de proxy personalizada en la configuración avanzada o reinstale la aplicación. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1175,7 +1256,7 @@ Esto es necesario para conservar sus conexiones presentes del navegador. Append ' - Clone' to title - Agregar «- Clon» al título + Agregar « - Clon» al título Replace username and password with references @@ -1188,14 +1269,6 @@ Esto es necesario para conservar sus conexiones presentes del navegador. CsvImportWidget - - Import CSV fields - Importar campos de CSV - - - filename - nombre del fichero - size, rows, columns tamaño, filas, columnas @@ -1304,51 +1377,30 @@ Esto es necesario para conservar sus conexiones presentes del navegador. Column %1 Columna %1 - - Imported from CSV file - Importado de un fichero CSV - - - Original data: - Datos originales: - - - Error(s) detected in CSV file! - ¡Error(es) detectado(s) en el fichero CSV! - [%n more message(s) skipped] - [%n más mensaje(s) omitidos][%n más mensaje(s) descartado(s)] + [%n mensaje omitido][%n mensajes omitidos][%n mensajes omitidos] - Error - Error + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - Importación CSV: la escritura tiene errores: -% 1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n byte(s)%n byte(s) - %n row(s) - %n fila(s)%n fila(s) + CSV row count + %n fila%n fila(s)%n filas %n column(s) - %n columna(s)%n columna(s) + CSV column count + %n columna%n columna(s) %n columnas @@ -1422,60 +1474,22 @@ Respaldo de base de datos ubicado en %2 Password field Campo de contraseña - - Enter Additional Credentials (if any): - Introducir credenciales adicionales (si hay alguna): - - - Key File: - Cerrojo: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>Adicionalmente a la contraseña, puede usar un archivo secreto para mejorar la seguridad de su base de datos. Este archivo puede ser generado en su configuración de base de datos.</p><p>¡Este <strong>no</strong> es su archivo de base de datos *.kdbx! <br>Si no tiene un fichero clave, deje este campo vacío.</p><p>Haga clic para más información...</p> - - - Key file help - Ayuda del cerrojo - Hardware key slot selection - Selección de ranura de llave por hardware - - - Hardware Key: - Llave por hardware: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>Puede usar una llave de seguridad por hardware como <strong>YubiKey</strong> o <strong>OnlyKey</strong> con ranuras configuradas para HMAC-SHA1.</p> -<p>Haga clic para más información...</p> - - - Hardware key help - Ayuda de la llave por hardware + Selección de ranura de clave hardware Key file to unlock the database - Cerrojo para desbloquear la base de datos + Fichero clave para desbloquear la base de datos Browse for key file - Solicitar cerrojo + Navegar para fichero clave Browse… Examinar... - - Refresh hardware tokens - Recargar billetes por hardware - - - Refresh - Recargar - Unlock Database Desbloquear base de datos @@ -1507,8 +1521,8 @@ We recommend you update your KeePassXC installation. La base de datos que está intentando abrir seguramente fue creada por una nueva versión de KeePassXC. -Puede intentar abrirla de todas formas, pero puede estar incompleta -y guardar cualquier cambio puede ocasionar pérdida de datos. +Puede intentar abrirla de todas formas, pero puede estar incompleta y +guardar cualquier cambio puede ocasionar pérdida de datos. Le recomendamos actualizar su instalación de KeePassXC. @@ -1538,25 +1552,17 @@ Para prevenir que aparezca este error, debe ir a «Parámetros de base de datos Retry with empty password Reintentar con contraseña vacía - - Failed to authenticate with Windows Hello - Fallo al autenticar con Windows Hello - - - Failed to authenticate with Touch ID - Fallo al autenticar con Touch ID - Failed to open key file: %1 - Apertura del cerrojo errónea: %1 + Fallo al abrir cerrojo: %1 Old key file format - Formato de fichero clave antiguo + Formato de cerrojo antiguo You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> - Está usando un fichero clave con un formato antiguo que KeePassXC puede<br>dejar de soportar en el futuro.<br><br>Considere generar un nuevo fichero clave yendo a:<br><strong>Base de Datos &gt; Seguridad de Base de Datos &gt; Cambiar Fichero Clave.</strong><br> + Está usando un cerrojo con un formato antiguo que KeePassXC puede<br>dejar de mantener en el futuro.<br><br>Considere generar un cerrojo nuevo yendo a:<br><strong>Base de Datos &gt; Seguridad de Base de Datos &gt; Cambiar Cerrojo.</strong><br> Don't show this warning again @@ -1579,22 +1585,60 @@ Para prevenir que aparezca este error, debe ir a «Parámetros de base de datos No se puede usar una base de datos como cerrojo - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - No puede usar una base de datos como cerrojo. -Si no tiene un cerrojo, deje el campo vacío. + authenticate to access the database + identifiquese para acceder a la base de datos - Detecting hardware keys… - Detectando llaves por hardware… + Failed to authenticate with Quick Unlock: %1 + Fallo al autenticar con Quick Unlock: %1 - No hardware keys detected - Ninguna llave por hardware detectada + Select Key File: + - Select hardware key… - Seleccione llave por hardware… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1606,10 +1650,6 @@ Si no tiene un cerrojo, deje el campo vacío. DatabaseSettingsDialog - - Advanced Settings - Parámetros avanzados - General General @@ -1624,7 +1664,7 @@ Si no tiene un cerrojo, deje el campo vacío. Encryption Settings - Configuraciones de cifrado + Parámetros de cifrado Browser Integration @@ -1641,25 +1681,17 @@ Si no tiene un cerrojo, deje el campo vacío. KeePassXC-Browser settings Configuraciones del KeePassXC-Browser - - Convert KeePassHTTP data - Convertir datos KeePassHTTP - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - Convertir atributos heredados KeePassHTTP a datos persalizados compatibles con KeePassXC-Browser - - - Refresh database root group ID - Recargar la ID del grupo raíz de la base de datos - Disconnect all browsers Desconectar todos los navegadores Forget all site-specific settings on entries - Olvidar todas las opciones del sitio específico en los apuntes + Olvidar todos los parámetros del sitio específico en los apuntes + + + Refresh database root group ID + Actualizar el ID del grupo raíz de la base de datos Stored keys @@ -1667,7 +1699,7 @@ Si no tiene un cerrojo, deje el campo vacío. Stored browser keys - Claves de navegador almacenadas + Claves del navegador almacenadas Remove selected key @@ -1701,29 +1733,21 @@ Esto puede impedir la conexión con el complemento del navegador. Enable Browser Integration to access these settings. - Habilitar la integración del navegador para acceder a estos parámetros. + Activar integración del navegador para acceder a estos parámetros. Do you really want to disconnect all browsers? This may prevent connection to the browser plugin. - ¿Desea desconectar todos los naveggadores? + ¿Desea desconectar todos los navegadores? Esto puede impedir la conexión con el complemento de navegador. - - KeePassXC: No keys found - KeePassXC: No se encontró ninguna clave - No shared encryption keys found in KeePassXC settings. No se encontraron claves de cifrado compartidas en la configuración de KeePassXC. - - KeePassXC: Removed keys from database - KeePassXC: Las claves se eliminaron de la base de datos - Successfully removed %n encryption key(s) from KeePassXC settings. - Correctamente borrada %n clave de cifrado de la configuración KeePassXC.Correctamente borrada %n claves de cifrado de los parámetros de KeePassXC. + Correctamente borrada %n clave de cifrado de la configuración KeePassXC.Correctamente borrada %n claves de cifrado de los parámetros de KeePassXC.Correctamente borrada %n claves de cifrado de los parámetros de KeePassXC. Do you really want forget all site-specific settings on every entry? @@ -1739,32 +1763,14 @@ Los permisos para acceder a los apunte serán revocados. Abort Abortar - - KeePassXC: Removed permissions - KeePassXC: permisos eliminados - Successfully removed permissions from %n entry(s). - Permisos eliminados correctamente desde %n apunte.Permisos eliminados correctamente desde %n apuntes. - - - KeePassXC: No entry with permissions found! - KeePassXC: ¡No se encontró ningún apunte con permisos! + Permisos eliminados correctamente desde %n apunte.Permisos eliminados correctamente desde %n apuntes.Permisos eliminados correctamente desde %n apuntes. The active database does not contain an entry with permissions. La base de datos activa no contiene un apunte con permisos. - - Move KeePassHTTP attributes to custom data - Mover los atributos KeePassHTTP a datos personalizados - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - ¿Realmente desea convertir todos los datos de integración del navegador heredado al último estándar? -Esto es necesario para mantener la compatibilidad con el complemento del navegador. - Refresh database ID Actualizar la ID de la base de datos @@ -1773,14 +1779,34 @@ Esto es necesario para mantener la compatibilidad con el complemento del navegad Do you really want refresh the database ID? This is only necessary if your database is a copy of another and the browser extension cannot connect. ¿Desea actualizar el ID de la base de datos? -Esto solo es necesario si su base de datos es una copia de otra y la extensión del navegador se no puede conectar. +Esto solo es necesario si su base de datos es una copia de otra y la extensión del navegador no se puede conectar. + + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Convertir atributos heredados KeePassHTTP a datos persalizados compatibles con KeePassXC-Browser + + + No keys found + No se han encontrado claves + + + Removed keys from database + Claves eliminadas de la base de datos + + + Removed permissions + Permisos eliminados + + + No entry with permissions found! + ¡No se ha encontrado apunte con permisos! DatabaseSettingsWidgetDatabaseKey Add additional protection… - Añadir protección adicional... + Añadir protección adicional… No password set @@ -1814,6 +1840,18 @@ Are you sure you want to continue without a password? Failed to change database credentials Cambio de credenciales de base de datos errónea + + Weak password + Contraseña débil + + + You must enter a stronger password to protect your database. + Debe introducir una contraseña más fuerte para proteger su base de datos. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + ¡Esta es una contraseña débil! Para una mejor protección de sus secretos, debe elegir una contraseña más fuerte. + DatabaseSettingsWidgetEncryption @@ -1821,14 +1859,6 @@ Are you sure you want to continue without a password? Decryption Time: Tiempo de descifrado: - - Change existing decryption time - Modificar el tiempo de descifrado - - - Change - Modificar - Decryption time in seconds Tiempo de descifrado en segundos @@ -1863,19 +1893,19 @@ Are you sure you want to continue without a password? AES: 256 Bit (default) - AES: 256-Bit (por defecto) + AES: 256-bit (por defecto) Twofish: 256 Bit - Twofish: 256 Bit + Twofish: 256-bit Key Derivation Function: - Función de derivación de clave: + Función de derivación de llave: Key derivation function - Función de derivación de la clave + Función de derivación de llave Transform rounds: @@ -1909,11 +1939,6 @@ Are you sure you want to continue without a password? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - sin cambios - Number of rounds too high Key transformation rounds @@ -1946,7 +1971,7 @@ Si guarda este número, su base de datos puede llevar horas, días o incluso má If you keep this number, your database will not be protected from brute force attacks. Está utilizando un número muy bajo de rondas de transformación de clave con AES-KDF. -Si mantiene este número, su base de datos no estará protegida de los ataques de fuerza bruta. +Si mantiene este número, su base de datos no estará protegida de los ataques por fuerza bruta. KDF unchanged @@ -1959,12 +1984,24 @@ Si mantiene este número, su base de datos no estará protegida de los ataques d MiB Abbreviation for Mebibytes (KDF settings) - MiB MiB + MiB MiB MiB thread(s) Threads for parallel execution (KDF settings) - hilohilo(s) + hilohilo(s)hilos + + + Encryption Settings: + Configuración de cifrado: + + + Basic + Básico + + + Advanced + Avanzado @@ -1983,14 +2020,14 @@ Si mantiene este número, su base de datos no estará protegida de los ataques d Enable Secret Service to access these settings. - Habilite el Servicio Secreto para acceder a estos parámetros. + Active el Servicio Secreto para acceder a estos parámetros. DatabaseSettingsWidgetGeneral Database Metadata - Metadatos de la Base de datos + Metadatos de la Base de Datos Database name: @@ -2024,18 +2061,10 @@ Si mantiene este número, su base de datos no estará protegida de los ataques d Maximum number of history items per entry Número máximo de elementos de historial por apunte - - Max. history items: - Elementos máximos del historial: - Maximum size of history per entry Tamaño máximo de historial por apunte - - Max. history size: - Tamaño máximo del historial: - MiB MiB @@ -2046,11 +2075,11 @@ Si mantiene este número, su base de datos no estará protegida de los ataques d Additional Database Settings - Parámetros adicionales de la base de datos + Parámetros adicionales de base de datos Enable compression (recommended) - Habilitar compresión (recomendado) + Activar compresión (recomendado) Delete Recycle Bin @@ -2066,6 +2095,64 @@ Esta acción no es reversible. (old) (anterior) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + Al guardar esta preferencia o editar una entrada +los elementos más anteriores del historial serán +eliminados de modo que solo se conserve la +cantidad especificada. + + + Limit the amount of history items per entry to: + Limitar la cantidad de elementos de historial por entrada a: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + Al guardar esta preferencia o editar un apunte los +elementos más viejos del historial serán eliminados +de modo que los elementos restantes del historial +se añadirán como mucho hasta la cantidad especificada. + + + Limit the total size of history items per entry to: + Limitar el número total de elementos del historial por entrada a: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Mover apuntes a un grupo de papeleras +en lugar de borrarlos desde la base de +datos. Los apuntes borrados desde la +papelera son eliminados de la BdD. + + + Autosave delay since last change + Retardo de autoguardado desde úlimo cambio + + + Autosave delay + Retardo de autoguardado + + + Autosave delay since last change in minutes + Retardo de autoguardado desde úlimo cambio en minutos + + + min + min + + + Autosave delay since last change checkbox + Retardo de autoguardado desde úlimo cambio de caja de seleección + DatabaseSettingsWidgetKeeShare @@ -2107,11 +2194,11 @@ Esta acción no es reversible. Delete selected icon(s) - Eliminar ícono(s) seleccionado(s) + Borra ícono(s) seleccionado(s) Delete all custom icons not in use by any entry or group - Eliminar todos los íconos personalizados que no están en uso por cualquier apunte o grupo + Borra todos los íconos personalizados que no están en uso por cualquier apunte o grupo Purge unused icons @@ -2123,11 +2210,11 @@ Esta acción no es reversible. At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? - Al menos uno de los íconos seleccionados está actualmente en uso por al menos un apunte o grupo. Los íconos de todas los apuntes y grupos afectados serán reemplazados por el ícono predeterminado. ¿Está seguro de que desea eliminar los íconos que están actualmente en uso? + Al menos uno de los íconos seleccionados está actualmente en uso por al menos un apunte o grupo. Los iconos de todos los apuntes y grupos afectados serán reemplazados por el icono predeterminado. ¿Está seguro que desea eliminar los iconos que están actualmente en uso? Custom Icons Are In Use - Los Ãconos Personalizados Están En Uso + Iconos Personalizados En Uso All custom icons are in use by at least one entry or group. @@ -2135,11 +2222,11 @@ Esta acción no es reversible. Purged Unused Icons - Purgar Ãconos no Utilizados + Iconos Purgados No Utilizados Purged %n icon(s) from the database. - Purgado %n icono de la base de datos.Purgados %n íconos de la base de datos. + Se ha purgado %n icono de la base de datos.Purgados %n íconos de la base de datos.Se han purgado %n iconos de la base de datos. @@ -2170,7 +2257,7 @@ Esta acción no es reversible. The created database has no key or KDF, refusing to save it. This is definitely a bug, please report it to the developers. - La base de datos creada no tiene clave o KDF, negándose a guardarla. + La base de datos creada no tiene clave o *.kdf, negándose a guardarla. Esto es definitivamente un error, por favor infórmeselo a los desarrolladores. @@ -2191,28 +2278,12 @@ Esto es definitivamente un error, por favor infórmeselo a los desarrolladores.< CSV file - Fichero CSV - - - Select CSV file - Seleccionar fichero CSV + Fichero *.csv Merge database Combinar base de datos - - KeePass 1 database - Base de datos KeePass 1 - - - Open KeePass 1 database - Abrir base de datos KeePass 1 - - - Open OPVault - Abrir OPVault - Export database to CSV file Exportar base de datos a un fichero CSV @@ -2225,22 +2296,25 @@ Esto es definitivamente un error, por favor infórmeselo a los desarrolladores.< Writing the HTML file failed. Escritura al fichero HTML errónea. + + Export database to XML file + Exportar base de datos a archivo XML + + + XML file + Archivo *.xml + + + Writing the XML file failed + Escritura de archivo XML ha fallado + Export Confirmation Confirmación de exportación You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - Está a punto de exportar su base de datos a un archivo sin cifrar. Esto dejará sus contraseñas e información sensible vulnerable. ¿Desea continuar? - - - New Database - Crear base de datos - - - %1 [New Database] - Database tab name modifier - %1 [Crear base de datos] + Está a punto de exportar su base de datos a un archivo sin cifrar. Esto dejará vulnerable a sus contraseñas e información sensible. ¿Desea continuar? %1 [Locked] @@ -2251,8 +2325,8 @@ Esto es definitivamente un error, por favor infórmeselo a los desarrolladores.< DatabaseWidget - Database Tags - Base de datos de etiquetas + Searches and Tags + Búsquedas y etiquetas Searching… @@ -2264,7 +2338,7 @@ Esto es definitivamente un error, por favor infórmeselo a los desarrolladores.< Confirm Auto-Type - Confirmar Autoescritura + Confirmar Auto-tecleo Perform Auto-Type into the previously active window? @@ -2272,11 +2346,11 @@ Esto es definitivamente un error, por favor infórmeselo a los desarrolladores.< Execute command? - ¿Ejecutar comando? + ¿Ejecutar instrucción? Do you really want to execute the following command?<br><br>%1<br> - ¿Desea ejecutar el siguiente mandato?<br><br>%1<br> + ¿Desea ejecutar la siguiente instrucción<br><br>%1<br> Remember my choice @@ -2300,7 +2374,11 @@ Esto es definitivamente un error, por favor infórmeselo a los desarrolladores.< Expired entries - Apuntes expirados + Apuntes caducados + + + Entries expiring within %1 day(s) + Apuntes caducando en %1 díaApuntes expirando en %1 díasApuntes caducando en %1 días No current database. @@ -2326,6 +2404,18 @@ Esto es definitivamente un error, por favor infórmeselo a los desarrolladores.< No Results No hay resultados + + Save + Guardar + + + Enter a unique name or overwrite an existing search from the list: + Introduzca un nombre único o sobrescriba una búsqueda existente de la lista: + + + Save Search + Guardar búsqueda + Lock Database? ¿Bloquear la base de datos? @@ -2370,7 +2460,7 @@ Do you want to merge your changes? Could not open the new database file while attempting to autoreload. Error: %1 - No se pudo abrir el nuevo fichero de base de datos al intentar cargar automáticamente. + No se pudo abrir el fichero nuevo de base de datos al intentar cargar automáticamente. Error: %1 @@ -2381,7 +2471,7 @@ Error: %1 KeePassXC has failed to save the database multiple times. This is likely caused by file sync services holding a lock on the save file. Disable safe saves and try again? KeePassXC no ha podido guardar la base de datos varias veces. Esto es probablemente causado por los servicios de sincronización de ficheros manteniendo un bloqueo del fichero. -¿Desactivar almacenaje seguro y volver a intentarlo? +¿Quiere desactivar el almacenaje seguro y volver a intentarlo? Writing the database failed: %1 @@ -2401,23 +2491,28 @@ Disable safe saves and try again? Save database backup - Guardar copia de seguridad de la base de datos + Guardar respaldo de la base de datos Empty recycle bin? - ¿Vaciar papelera de reciclaje? + ¿Vaciar papelera? Are you sure you want to permanently delete everything from your recycle bin? - ¿Desea eliminar permanentemente todo de su papelera de reciclaje? + ¿Desea eliminar permanentemente todo de su papelera? Could not find database file: %1 No se ha encontrado el archivo de base de datos: %1 - - Entries expiring within %1 day(s) - + + New Database + Nueva base de datos + + + %1 [New Database] + Database tab name modifier + %1 [Nueva base de datos] @@ -2436,7 +2531,7 @@ Disable safe saves and try again? Auto-Type - Autoescritura + Auto-Tecleo Browser Integration @@ -2448,7 +2543,7 @@ Disable safe saves and try again? Confirm Removal - Confirmar eliminación + Confirmar Eliminación Are you sure you want to remove this URL? @@ -2560,21 +2655,21 @@ Would you like to correct it? Hide Ocultar + + %n hour(s) + %n hora%n horas%n horas + %n week(s) - %n semana%n semanas + %n semana%n semanas%n semanas %n month(s) - %n mes%n meses + %n mes%n meses%n meses %n year(s) - %n año%n años - - - %n hour(s) - + %n año%n años%n años @@ -2593,7 +2688,7 @@ Would you like to correct it? Add a new attribute - Añadir nuevo atributo + Añadir un atributo nuevo Add @@ -2617,7 +2712,7 @@ Would you like to correct it? Toggle attribute protection - Intercambiar atributo protección + Conmutar atributo protección Protect @@ -2672,15 +2767,15 @@ Would you like to correct it? Use custom Auto-Type sequence: - Utilizar secuencia de autoescritura personalizada: + Utilizar secuencia de Auto-Tecleo personalizada: Custom Auto-Type sequence - Secuencia personalizada autoescritura + Secuencia personalizada Auto-Tecleo Open Auto-Type help webpage - Abrir página de ayuda autoescritura + Abrir página de ayuda Auto-Tecleo Window Associations @@ -2694,10 +2789,20 @@ Would you like to correct it? Add new window association Añadir nueva ventana asociada + + + + Add item + + + Remove selected window association Eliminar ventana asociada + + - + Remove item + – + Window title: Título de la ventana: @@ -2708,29 +2813,19 @@ Would you like to correct it? Set the window association title - Establecer título de ventana asociada + Fijar título de ventana asociada You can use an asterisk to match everything - Puede usar un asterisco par coincidir todo. + Puede usar un asterisco para coincidir todo. Use a specific sequence for this association: - Utilizar una secuencia específica para esta asociación: + Utilice una secuencia específica para esta asociación: Custom Auto-Type sequence for this window - Secuencia personalizada de autoescritura para esta ventana - - - + - Add item - + - - - - - Remove item - – + Secuencia personalizada de Auto-Tecleo para esta ventana @@ -2753,7 +2848,7 @@ Would you like to correct it? Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. - Solo enviar esta configuración al navegador para los diálogos de autenticación HTTP. Habilitada, los formularios de autenticación no mostrarán este apunte para su selección. + Solo enviar esta configuración al navegador para los diálogos de autenticación HTTP. Si se habilita, los formularios de autenticación no mostrarán este apunte para su selección. Use this entry only with HTTP Basic Auth @@ -2761,7 +2856,7 @@ Would you like to correct it? Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. - No enviar esta configuración al navegador para los diálogos de autenticación HTTP. Habilitada, los formularios de autenticación no mostrarán este apunte para su selección. + No enviar esta configuración al navegador para los diálogos de autenticación HTTP. Si se habilita, los formularios de autenticación no mostrarán este apunte para su selección. Do not use this entry with HTTP Basic Auth @@ -2833,45 +2928,25 @@ Would you like to correct it? Notes field Campo notas - - Toggle the checkbox to reveal the notes section. - Cambie la casilla de verificación para mostrar la sección de notas. - Username field Campo usuario - - Toggle notes visible - Intercambiar notas visibles - - - Notes: - Notas: - Expiration field - Campo expiración + Campo caducidad Expiration Presets - Predeterminados expiración + Caducidad predeterminada Expiration presets - Predeterminados expiración + Parámetros de caducidad Presets - Programar - - - Password: - Contraseña: - - - URL: - URL: + Preselección Url field @@ -2881,48 +2956,64 @@ Would you like to correct it? Download favicon for URL Descargar icono para la URL - - Title: - Título: - Title field Campo título - - Username: - Usuario: - Password field - Campo de contraseña + Campo contraseña Toggle expiration - Intercambiar expiración - - - Expires: - Expira: - - - Tags: - Etiquetas: + Conmutar caducidad Tags list Lista de etiquetas + + &Username: + &Usuario: + + + &Title: + &Título: + + + &Password: + &Contraseña: + + + UR&L: + UR&L: + + + &Notes: + &Notas: + + + Toggle notes visibility + Conmutar visibilidad de notas + + + T&ags: + Etiquet&as: + + + &Expires: + &Caducidad: + EditEntryWidgetSSHAgent Form - Forma + Formulario Remove key from agent when database is closed/locked - Eliminar clave del agente cuando la base de datos está cerrada/bloqueada + Quitar clave del agente cuando la base de datos está cerrada/bloqueada Comment @@ -2930,7 +3021,7 @@ Would you like to correct it? Add key to agent when database is opened/unlocked - Añadir clave al agente cuando la base de datos se abre/desbloquea + Añadir clave al agente cuando la base de datos se abra/desbloquea Decrypt @@ -2952,26 +3043,13 @@ Would you like to correct it? Private key Clave privada - - External file - Archivo externo - - - Browser for key file - Explorar para fichero clave - - - Browse… - Button for opening file dialog - Examinar... - Attachment Adjunto External key file - Fichero clave externo + Cerrojo externo Add to agent @@ -2979,7 +3057,24 @@ Would you like to correct it? Remove from agent - Eliminar del agente + Retirar del agente + + + External file + Archivo externo + + + Browser for key file + Buscar cerrojo + + + Browse… + Button for opening file dialog + Examinar... + + + Generate + Generar Select attachment file @@ -2995,11 +3090,11 @@ Would you like to correct it? Remove key from agent after - Eliminar clave del agente tras + Quitar clave del agente tras Remove key from agent after specified seconds - Eliminar clave del agente tras los segundos especificados + Quitar clave del agente tras los segundos especificados seconds @@ -3016,10 +3111,6 @@ Would you like to correct it? Icon Icono - - Browser Integration - Integración con navegadores - Properties Propiedades @@ -3036,6 +3127,10 @@ Would you like to correct it? Group has unsaved changes El grupo tiene cambios no guardados + + Browser Integration + Integración con navegadores + Enable Activar @@ -3051,13 +3146,9 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - Editar Grupo - These settings affect to the group's behaviour with the browser extension. - Estas configurciones afectan al comportamiento del grupo con la extensión del navegador. + Estas configuraciones afectan al comportamiento del grupo con la extensión del navegador. Hide entries from browser extension: @@ -3091,12 +3182,28 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups Interruptor para no usar Autenticación HTTP para éste y los subgrupos + + Omit WWW subdomain from matching: + Omitir el dominio www de la coincidencia: + + + Omit WWW subdomain from matching toggle for this and sub groups + Omitir el dominio www de la coincidencia conmutar para este y los subgrupos + + + Restrict matching to given browser key: + Restringir coincidiencia a la siguiente clave de navegador: + + + Restrict matching to given browser key toggle for this and sub groups + Restringir coincidiencia a la siguiente clave de navegador cambie para esto y subgrupos + EditGroupWidgetKeeShare Sharing mode field - Campo modo comapartir + Campo modo compartido Password field @@ -3116,7 +3223,7 @@ Would you like to correct it? Path to share file field - Ruta para campo de archivo compartir + Ruta para campo de archivo compartido Browse for share file @@ -3153,8 +3260,8 @@ Would you like to correct it? Your KeePassXC version does not support sharing this container type. Supported extensions are: %1. - Su versión de KeePassXC no soporta este tipo de contenedor de compartición. -Las extensiones soportadas son: %1. + Su versión de KeePassXC no mantiene este tipo de contenedor de compartición. +Las extensiones mantenidas son: %1. %1 is already being exported by this database. @@ -3171,15 +3278,15 @@ Las extensiones soportadas son: %1. KeeShare is currently disabled. You can enable import/export in the application settings. KeeShare is a proper noun - KeeShare actualmente está deshabilitada. Puede habilitar importar/exportar en la configuración de aplicación + KeeShare actualmente está desactivada. Puede activar importar/exportar en la configuración de aplicación Database export is currently disabled by application settings. - La exportación de la base de datos actualmente está deshabilitada en la configuración de aplicación. + La exportación de la base de datos actualmente está desactivada en la configuración de aplicación. Database import is currently disabled by application settings. - La importación de base de datos actualmente está deshabilitada por la configuración de aplicación + La importación de base de datos actualmente está desactivada por la configuración de aplicación KeeShare container @@ -3210,11 +3317,11 @@ Las extensiones soportadas son: %1. Toggle expiration - Intercambiar expiración + Conmutar caducidad Expires: - Expira: + Caducidad: Name field @@ -3222,15 +3329,15 @@ Las extensiones soportadas son: %1. Expiration field - Campo expiración + Campo caducidad Use default Auto-Type sequence of parent group - Usar secuencia de autoescritura por defecto del grupo padre + Emplear secuencia de Auto-Tecleo por defecto del grupo antecesor Auto-Type: - Autoescritura: + Auto-Tecleo: Search: @@ -3238,7 +3345,7 @@ Las extensiones soportadas son: %1. Auto-Type toggle for this and sub groups - Intercambiar autoescritura para este y subgrupos + Conmutar Auto-Tecleo para éste y subgrupos Notes: @@ -3246,7 +3353,7 @@ Las extensiones soportadas son: %1. Default auto-type sequence field - Campo por defecto de secuencia de autoescritura + Campo por defecto de secuencia de Auto-Tecleo Notes field @@ -3258,11 +3365,11 @@ Las extensiones soportadas son: %1. Set default Auto-Type sequence - Establecer secuencia de autoescritura por defecto + Fijar secuencia de Auto-Tecleo por defecto Search toggle for this and sub groups - Intercambiar de búsqueda para este y subgrupos + Conmutar búsqueda para éste y subgrupos @@ -3277,23 +3384,23 @@ Las extensiones soportadas son: %1. Choose icon… - Seleccionar ícono... + Elegir ícono... Set the URL to use to search for a favicon - Configurar la URL a usar para buscar un ícono + Fije la URL a usar para buscar un ícono Favicon URL - URL de ícono + URL de Favicon Download favicon for URL - Descargar icono para la URL + Descargar favicon para la URL Download favicon - Descargar icono + Descargar favicon Apply selected icon to subgroups and entries @@ -3309,23 +3416,19 @@ Las extensiones soportadas son: %1. Also apply to child groups - Aplicar a los grupos descendientes + Aplicar a los grupos herederos Also apply to child entries - Aplicar también a los apuntes hijos + Aplicar también a los apuntes heredados Also apply to all children - Aplicar a todos los descendientes + Aplicar a todos los herederos Unable to fetch favicon. - No se pudo descargar el icono. - - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Puede habilitar el servicio de icono del sitio web DuckDuckGo bajo «Herramientas -> Configuración -> Seguridad» + No se pudo descargar el favicon. Existing icon selected. @@ -3345,7 +3448,7 @@ Las extensiones soportadas son: %1. Successfully loaded %1 of %n icon(s) - Cargado %1 de %n icono correctamenteCargado %1 de %n iconos correctamente + Cargado %1 de %n icono correctamenteCargado %1 de %n iconos correctamenteCargado %1 de %n iconos correctamente No icons were loaded @@ -3353,11 +3456,15 @@ Las extensiones soportadas son: %1. %n icon(s) already exist in the database - %n icono ya existe en la base de datos%n iconos ya existen en la base de datos + Ya existe %n icono en la base de datos%n iconos ya existen en la base de datosYa existen %n iconos en la base de datos The following icon(s) failed: - El siguiente icono falló:Los siguientes iconos fallaron: + El siguiente icono falló:Los siguientes iconos fallaron:Los siguientes iconos fallaron: + + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + Puede habilitar el servicio de iconos de DuckDuckGo en Configuración de la aplicación -> Seguridad. @@ -3400,24 +3507,24 @@ Las extensiones soportadas son: %1. Plugin data - Complemente de datos + Datos del complemento Remove selected plugin data - Eliminar complemento de datos seleccionado + Quitar complemento de datos seleccionados Remove - Eliminar + Quitar Delete plugin data? - ¿Eliminar los datos del complemento? + ¿Borro los datos del complemento? Do you really want to delete the selected plugin data? This may cause the affected plugins to malfunction. - ¿Desea eliminar los datos del complemento seleccionado? + ¿Desea borrar los datos del complemento seleccionado? Esto puede causar un mal funcionamiento de los complementos afectados. @@ -3440,7 +3547,7 @@ Esto puede causar un mal funcionamiento de los complementos afectados.EntryAttachments Cannot open file "%1" - No se puede abrir el archivo "%1" + No se puede abrir el archivo «%1» @@ -3474,11 +3581,11 @@ Esto puede causar un mal funcionamiento de los complementos afectados. Remove selected attachment - Eliminar adjunto seleccionado + Quitar adjunto seleccionado Remove - Eliminar + Quitar Rename selected attachment @@ -3510,11 +3617,11 @@ Esto puede causar un mal funcionamiento de los complementos afectados. Confirm remove - Confirmar retirada + Confirmar quitar Are you sure you want to remove %n attachment(s)? - ¿Desea eliminar %n dato adjunto?¿Desea eliminar %n datos adjuntos? + ¿Desea eliminar %n dato adjunto?¿Desea eliminar %n datos adjuntos?¿Desea quitar %n datos adjuntos? Save attachments @@ -3557,6 +3664,7 @@ Esto puede causar un mal funcionamiento de los complementos afectados. No se puede abrir el fichero: %1No se pueden abrir los ficheros: +%1No se pueden abrir los ficheros: %1 @@ -3579,7 +3687,7 @@ Your database may get very large and reduce performance. Are you sure to add this file? %1 es un fichero grande (%2 MB). -Su base de datos puede vovlerse muy grande y reducir el rendimiento. +Su base de datos puede volverse muy grande y reducir el rendimiento. ¿Está seguro de añadir este fichero? @@ -3595,12 +3703,12 @@ Do you want to save the changes to your database? Saving attachment failed - Falló el guardado del adjunto + Guardado del adjunto erróneo Saving updated attachment failed. Error: %1 - Falló el guardado del adjunto + Guardado del adjunto erróneo Error: %1 @@ -3683,7 +3791,7 @@ Error: %1 Auto-Type - Autoescritura + Auto-Tecleo Tags @@ -3723,11 +3831,11 @@ Error: %1 Notes - Notas + Anotaciones Expires - Expira + Caducidad Created @@ -3759,7 +3867,7 @@ Error: %1 Password Strength - Fortaleza de la Contraseña + Fortaleza de Contraseña Entry notes @@ -3767,7 +3875,7 @@ Error: %1 Entry expires at - Apunte expira el + Apunte caduca el Creation date @@ -3797,6 +3905,10 @@ Error: %1 Has TOTP Tiene TOTP + + Background Color + Color del fondo + EntryPreviewWidget @@ -3817,8 +3929,8 @@ Error: %1 Contraseña - Notes - Notas + URL + URL Expiration @@ -3837,8 +3949,8 @@ Error: %1 Usuario - URL - URL + Notes + Notas Advanced @@ -3870,7 +3982,7 @@ Error: %1 Searching - Buscando… + Búsqueda Share @@ -3888,6 +4000,10 @@ Error: %1 Never Nunca + + Double click to copy value + Doble clic para copiar valor + Enabled Activado @@ -3896,6 +4012,10 @@ Error: %1 Disabled Desactivado + + Double click to copy to clipboard + Doble clic para copiar el portapapeles + EntryURLModel @@ -3903,6 +4023,10 @@ Error: %1 Invalid URL URL inválida + + Duplicate URL + Duplicar URL + EntryView @@ -3918,6 +4042,10 @@ Error: %1 Reset to defaults Restablecer ajustes por defecto + + + %1 entry(s)... + + %1 apunte...+ %1 apuntes...+ %1 apuntes... + ExportDialog @@ -3939,7 +4067,7 @@ This will leave your passwords and sensitive information vulnerable! database order - orden de base de datos + ordenación de base de datos name (ascending) @@ -3989,7 +4117,7 @@ This will leave your passwords and sensitive information vulnerable! Another secret service is running (%1).<br/>Please stop/remove it before re-enabling the Secret Service Integration. - Otro servicio de secretos está en ejecución (%1). <br/> Deténgalo o elimínelo rehabilitando la Integración del Servicio Secreto. + Otro servicio de secretos está en ejecución (%1). <br/> Deténgalo o retírelo antes de reactivar la Integración del Servicio Secreto. Failed to register DBus service at %1.<br/> @@ -4028,7 +4156,7 @@ This will leave your passwords and sensitive information vulnerable! %n Entry(s) was used by %1 %1 is the name of an application - %n apunte es usado por %1%n apuntes es usado por %1 + %n apunte es utilizado por %1%n apuntes es usado por %1%n apuntes son utilizados %1 @@ -4139,6 +4267,147 @@ Puede habilitar el servicio de iconos del sitio web DuckDuckGo en la sección se Descargando íconos (%1%2)... + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Asistente + + + Entry count: %1 + + + + Group + Grupo + + + Title + Título + + + Username + Usuario + + + Password + Contraseña + + + Url + + + + + ImportWizardPageSelect + + Form + Formulario + + + Import File Selection + + + + Password: + Contraseña: + + + Key File: + Archivo clave: + + + Browse… + Examinar... + + + Import Into: + + + + New Database + Nueva base de datos + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Abrir OPVault + + + Select import file + + + + All files + Todos los archivos + + + Key files + Cerrojos + + + Select key file + Seleccionar cerrojo + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4180,11 +4449,11 @@ Si ocurre nuevamente entonces su archivo de base de datos puede estar corrupto.< Invalid header field length: field %1 - Longitud de campo de cabecera inválido %1 + Longitud de campo de cabecera no válido %1 Invalid header data length: field %1, %2 expected, %3 found - Longitud de campo de cabecera inválido: campo %1, %2 experado, %3 encontrado + Longitud de campo de cabecera no válido: campo %1, %2 esperado, %3 encontrado @@ -4283,69 +4552,69 @@ Si ocurre nuevamente entonces su archivo de base de datos puede estar corrupto.< Invalid variant map entry name length Translation: variant map = data structure for storing meta data - Longitud del nombre del apunte de asociación variante inválida + Longitud del nombre del apunte de asociación variante no válida Invalid variant map entry name data Translation: variant map = data structure for storing meta data - Datos del nombre del apunte asociado variante inválido + Datos del nombre del apunte asociado variante no válido Invalid variant map entry value length Translation: variant map = data structure for storing meta data - Longitud del valor del apunte asociado variante inválido + Longitud del valor del apunte asociado variante no válido Invalid variant map entry value data Translation comment: variant map = data structure for storing meta data - Datos del valor de apunte asociado variante inválido + Datos del valor de apunte asociado variante no válido Invalid variant map Bool entry value length Translation: variant map = data structure for storing meta data - Longitud del valor del apunte asociado booleano de variante inválida + Longitud del valor del apunte asociado booleano de variante no válida Invalid variant map Int32 entry value length Translation: variant map = data structure for storing meta data - Longitud del valor del apunte asociado Int32 de variante inválida + Longitud del valor del apunte asociado Int32 de variante no válida Invalid variant map UInt32 entry value length Translation: variant map = data structure for storing meta data - Longitud del valor del apunte asociado UInt32 de variante inválida + Longitud del valor del apunte asociado UInt32 de variante no válida Invalid variant map Int64 entry value length Translation: variant map = data structure for storing meta data - Longitud del valor del apunte asociado Int64 de variante inválida + Longitud del valor del apunte asociado Int64 de variante no válida Invalid variant map UInt64 entry value length Translation: variant map = data structure for storing meta data - Longitud del valor de la entrada asociado UInt64 de variante inválida + Longitud del valor de la entrada asociado UInt64 de variante no válida Invalid variant map entry type Translation: variant map = data structure for storing meta data - Tipo de apunte asociado variante inválido + Tipo de apunte asociado variante no válido Invalid variant map field type size Translation: variant map = data structure for storing meta data - Tamaño de tipo de campo asociado variante inválido + Tamaño de tipo de campo asociado variante no válido Kdbx4Writer Invalid symmetric cipher algorithm. - Algoritmo de cifrado simétrico inválido. + Algoritmo de cifrado simétrico no válido. Invalid symmetric cipher IV size. IV = Initialization Vector for symmetric cipher - Tamaño de cifrado simétrico IV inválido + Tamaño de cifrado simétrico IV no válido Unable to calculate database key: %1 @@ -4361,7 +4630,7 @@ Si ocurre nuevamente entonces su archivo de base de datos puede estar corrupto.< KdbxReader Invalid cipher uuid length: %1 (length=%2) - Longitud de UUID de cifrado no válida: %1 (longitud =%2) + Longitud de UUID de cifrado no válida: %1 (longitud=%2) Unable to parse UUID: %1 @@ -4414,7 +4683,7 @@ You can import it by clicking on Database > 'Import KeePass 1 database…'. This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. El archivo seleccionado es una base de datos antigua de KeePass 1 (.kdb). -Puede importarla haciendo clic en 'Base de datos' > 'Importar base de datos de KeePass 1'. +Puede importarla pulsando en «Base de datos → Importar base de datos de KeePass 1». Esta migración es en un único sentido. No podrá abrir la base de datos importada con la versión antigua 0.4 de KeePassX. @@ -4442,7 +4711,7 @@ Esta migración es en un único sentido. No podrá abrir la base de datos import Line %2, column %3 Error XML: %1 -Linea %2, columna %3 +Línea %2, columna %3 Missing icon uuid or data @@ -4486,7 +4755,7 @@ Linea %2, columna %3 Null entry uuid - Uuid de apunte nulo + UUID de apunte nulo Invalid entry icon number @@ -4510,7 +4779,7 @@ Linea %2, columna %3 Entry string key or value missing - Falta clave de apunte de texto o valor + Falta clave de apunte textual o valor Entry binary key or value missing @@ -4554,7 +4823,7 @@ Linea %2, columna %3 KeeAgentSettings Invalid KeeAgent settings file structure. - Estructura de archivo de preferencias KeeAgent inválido. + Estructura de archivo de preferencias KeeAgent no válido. Private key is an attachment but no attachments provided. @@ -4573,17 +4842,6 @@ Linea %2, columna %3 Error al abrir la clave privada - - KeePass1OpenWidget - - Import KeePass1 Database - Importar base de datos KeePass1 - - - Unable to open the database. - No se pudo abrir la base de datos. - - KeePass1Reader @@ -4695,7 +4953,7 @@ Si ocurre nuevamente entonces su archivo de base de datos puede estar corrupto.< Invalid group field type - Tipo de campo de grupo inválido + Tipo de campo de grupo no válido Missing group id or level @@ -4703,11 +4961,11 @@ Si ocurre nuevamente entonces su archivo de base de datos puede estar corrupto.< Missing entry field type number - Entrada de tipo número en campo faltante + Apunte de tipo número en campo ausente Invalid entry field size - Tamaño del apunte para el campo inválido + Tamaño del apunte para el campo no válido Read entry field data doesn't match size @@ -4719,11 +4977,11 @@ Si ocurre nuevamente entonces su archivo de base de datos puede estar corrupto.< Invalid entry group id field size - Tamaño del apunte para el campo identificador de grupo inválido + Tamaño del apunte para el campo identificador de grupo no válido Invalid entry icon field size - Tamaño del apunte para el campo icono inválido + Tamaño del apunte para el campo icono no válido Invalid entry creation time field size @@ -4735,18 +4993,18 @@ Si ocurre nuevamente entonces su archivo de base de datos puede estar corrupto.< Invalid entry expiry time field size - Tamaño del apunte para el campo tiempo de expiración inválido + Tamaño del apunte para el campo tiempo de caducidad no válido Invalid entry field type - Tipo del apunte para el campo inválido + Tipo del apunte para el campo no válido KeeShare Invalid sharing reference - Referencia de compartición inválida + Referencia de compartición no válida Inactive share %1 @@ -4840,7 +5098,7 @@ Si ocurre nuevamente entonces su archivo de base de datos puede estar corrupto.< You selected a key file in an old format which KeePassXC<br>may stop supporting in the future.<br><br>Please consider generating a new key file instead. - Ha seleccionado un fichero clave con un formato que KeePassXC<br>puede dejar de soportar en el futuro.<br><br>Considere generar un nuevo fichero clave en su lugar. + Ha seleccionado un fichero clave con un formato que KeePassXC<br>puede dejar de mantener en el futuro.<br><br>Considere generar un nuevo fichero clave en su lugar. Error loading the key file '%1' @@ -4940,10 +5198,6 @@ Are you sure you want to continue with this file? &Recent Databases Bases de datos &recientes - - &Import - &Importar - &Export &Exportar @@ -4964,6 +5218,10 @@ Are you sure you want to continue with this file? TOTP TOTP + + Tags + Etiquetas + &Groups &Grupos @@ -4974,7 +5232,7 @@ Are you sure you want to continue with this file? View - Ver + Vista Theme @@ -5008,53 +5266,33 @@ Are you sure you want to continue with this file? &New Database… &Nueva base de datos - - Create a new database - Crear una base de datos nueva - &Merge From Database… - Com&binar desde base de datos... - - - Merge from another KDBX database - Combinar desde otra base de datos KDBX + Co&mbinar desde base de datos... &New Entry… - &Nuevo apunte... - - - Add a new entry - Añadir un nuevo apunte + &Nuevo apunte… &Edit Entry… - &Editar apunte... - - - View or edit entry - Ver o editar apunte + &Editar apunte… &Delete Entry… - E&liminar apunte + Eliminar &apunte &New Group… &Nuevo grupo... - - Add a new group - Añadir un nuevo grupo - &Edit Group… &Editar grupo... &Delete Group… - &E&liminar grupo + Eliminar &grupo Download All &Favicons… @@ -5070,67 +5308,43 @@ Are you sure you want to continue with this file? Sa&ve Database As… - Guar&dar base de datos como... + Guardar BdD &como... Database &Security… - &Seguridad de base de datos... + &Seguridad de BdD… Database &Reports… Info&rmes de Base de Datos... - - Statistics, health check, etc. - Estadísticas, salud, etc. - &Database Settings… - &Configuración de base de datos... - - - Database settings - Configuración de la base de datos + &Parámetros de base de datos… &Clone Entry… - &Duplicar apunte... + &Duplicar apunte… Move u&p - Mover &arriba - - - Move entry one step up - Mover el apunte una posición arriba + &Subir Move do&wn - Mover abajo - - - Move entry one step down - Mover el apunte una posición abajo + &Bajar Copy &Username Copiar &usuario - - Copy username to clipboard - Copiar usuario al portapapeles - Copy &Password Copiar &contraseña - - Copy password to clipboard - Copiar contraseña al portapapeles - &Settings - &Configuración + &Parámetros &Password Generator @@ -5161,57 +5375,33 @@ Are you sure you want to continue with this file? &Título - Copy title to clipboard - Copiar título al portapapeles - - - &URL - &URL - - - Copy URL to clipboard - Copiar URL al portapapeles + Copy &URL + Copiar &URL &Notes &Notas - - Copy notes to clipboard - Copiar notas al portapapeles - &CSV File… - Archivo &CSV... + Archivo &CSV… &HTML File… - Archivo &HTML... + Archivo &HTML… KeePass 1 Database… - Base de datos KeePass 1... - - - Import a KeePass 1 database - Importar una base de datos KeePass 1 + Base de datos KeePass 1… 1Password Vault… 1Password Vault… - - Import a 1Password Vault - Importar un 1Password Vault - CSV File… Archivo CSV... - - Import a CSV file - Importar un archivo CSV - Show TOTP Mostrar TOTP @@ -5222,15 +5412,19 @@ Are you sure you want to continue with this file? Set up TOTP… - Configurar TOTP... + Configurar TOTP… Copy &TOTP Copiar &TOTP + + Copy Password and TOTP + Copiar contraseña y TOTP + E&mpty recycle bin - &Vaciar papelera de reciclaje + &Vaciar papelera &Donate @@ -5252,10 +5446,6 @@ Are you sure you want to continue with this file? &Online Help Ayuda en &línea - - Go to online documentation - Ir a la documentación en línea - &User Guide Guía de &usuario @@ -5270,7 +5460,7 @@ Are you sure you want to continue with this file? Save Database Backup… - Guardar Copia de Seguridad de la Base de Datos... + Guardar copia de seguridad de la base de datos... Add key to SSH Agent @@ -5278,7 +5468,7 @@ Are you sure you want to continue with this file? Remove key from SSH Agent - Eliminar clave del agente SSH + Quitar clave del agente SSH Compact Mode @@ -5322,7 +5512,11 @@ Are you sure you want to continue with this file? Clone Group... - Clonar Grupo... + Clonar Grupo… + + + &XML File… + Archivo &XML… Clear history @@ -5356,9 +5550,13 @@ We recommend you use the AppImage available on our downloads page. ADVERTENCIA: Su versión de Qt puede hacer que KeePassXC se bloquee con un teclado virtual. Le recomendamos que utilice la AppImage disponible en nuestra página de descargas. + + No Tags + Sin etiquetas + Restore Entry(s) - + Restaurar apunteRestaurar apuntesRestaurar apuntes Settings @@ -5384,6 +5582,10 @@ Le recomendamos que utilice la AppImage disponible en nuestra página de descarg Quit KeePassXC Salir de KeePassXC + + %1 Entry(s) + %1 apunte%1 apuntes%1 apuntes + Please present or touch your YubiKey to continue… Presente o toque su YubiKey para continuar... @@ -5396,6 +5598,274 @@ Le recomendamos que utilice la AppImage disponible en nuestra página de descarg You must restart the application to apply this setting. Would you like to restart now? Debe reiniciar la aplicación para aplicar esta configuración. ¿Desea reiniciar ahora? + + Allow Screen Capture + Permitir captura de pantalla + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Passkeys... + + + Import Passkey + Importar passkey + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + Editar Apunte + + + Delete Entry + + + + Create Group + + + + Edit Group + Editar Grupo + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + Copiar Usuario + + + Copy Password + Copiar Contraseña + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + Importar base de datos KeePass1 + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + Configurar TOTP + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + ManageDatabase @@ -5453,37 +5923,17 @@ Le recomendamos que utilice la AppImage disponible en nuestra página de descarg Overwriting %1 [%2] Sobrescribiendo %1 [%2] - - older entry merged from database "%1" - el apunte más antiguo se combinó a la base de datos «%1» - - - Adding backup for older target %1 [%2] - Añadiendo copia de seguridad para el destino más antiguo %1 [%2] - - - Adding backup for older source %1 [%2] - Añadiendo copia de seguridad para la fuente mas antigua %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Volver a aplicar un apunte de destino más antiguo sobre la fuente más nueva %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Volver a aplicar un apunte de origen anterior sobre el objetivo más nuevo %1 [%2] - Synchronizing from newer source %1 [%2] - Sincronización desde una fuente más nueva %1 [%2] + Sincronización desde un origen más nuevo %1 [%2] Synchronizing from older source %1 [%2] - Sincronización desde una fuente anterior %1 [%2] + Sincronización desde un origen anterior %1 [%2] Deleting child %1 [%2] - Eliminando hijo %1[%2] + Eliminando heredero %1[%2] Deleting orphan %1 [%2] @@ -5491,11 +5941,11 @@ Le recomendamos que utilice la AppImage disponible en nuestra página de descarg Changed deleted objects - cambiado objetos eliminados + Objetos cambiados eliminados Adding missing icon %1 - Añadiendo el icono faltante %1 + Añadiendo el icono %1 ausente Removed custom data %1 [%2] @@ -5526,20 +5976,12 @@ Le recomendamos que utilice la AppImage disponible en nuestra página de descarg Encryption Settings - Configuraciones de cifrado + Parámetros de cifrado Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Aquí puede ajustar la configuración de cifrado de la base de datos. No se preocupe, puede cambiarlos más adelante en la configuración de la base de datos. - - Advanced Settings - Configuraciones avanzadas - - - Simple Settings - Ajustes simples - NewDatabaseWizardPageDatabaseKey @@ -5620,15 +6062,6 @@ Le recomendamos que utilice la AppImage disponible en nuestra página de descarg Se esperaban %1 bytes de texto plano, se encontraron %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Leer la base de datos no produce una instancia -%1 - - OpVaultReader @@ -5664,7 +6097,7 @@ Le recomendamos que utilice la AppImage disponible en nuestra página de descarg PEM boundary mismatch - Desajuste de límite PEM + Desajuste de acotación PEM Base64 decoding failed @@ -5672,11 +6105,11 @@ Le recomendamos que utilice la AppImage disponible en nuestra página de descarg Key file way too small. - Fichero clave demasiado pequeño. + Cerrojo demasiado pequeño. Key file magic header id invalid - Id de encabezado mágico del fichero clave inválido + Id de encabezado mágico del cerrojo no válido Found zero keys @@ -5702,6 +6135,10 @@ Le recomendamos que utilice la AppImage disponible en nuestra página de descarg Unknown cipher: %1 Cifrado desconocido: %1 + + AES-256/GCM is currently not supported + AES-256/GCM no está soportado actualmente + Passphrase is required to decrypt this key Frase de contraseña necesaria para descrifrar esta clave @@ -5736,7 +6173,7 @@ Le recomendamos que utilice la AppImage disponible en nuestra página de descarg Unsupported key part - Parte de llave no soportado + Parte de llave no mantenida Unexpected EOF while reading public key @@ -5768,26 +6205,177 @@ Le recomendamos que utilice la AppImage disponible en nuestra página de descarg - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Contraseñas que no coinciden + SSH Key Generator + Generador de clave SSH - Passwords match so far - Contraseñas coincidentes hasta el momento + Type + Tipo - Toggle Password (%1) - Intercambiar contraseña (%1) + Bits + Bits - Generate Password (%1) - Generar contraseña (%1) + Comment + Comentario + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - Exportar passkey - Warning: Caps Lock enabled! - Advertencia: ¡las mayúsculas están activadas! + Export the following Passkey entries. + Exportar los siguientes apuntes de passkeys. + + + Filenames will be generated with title and .passkey file extension. + Los nombres de archivos serán generados con título y extensión de archivo .passkey. + + + Export entries + Exportar apuntes + + + Export Selected + Exportar seleccionado + + + Cancel + Cancelar + + + Export to folder + Exportar a carpeta + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: Exportar passkey + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + El archivo «%1.passkey» ya existe. +¿Desea sobreescribirlo? + + + Cannot open file + No se puede abrir archivo + + + Cannot open file "%1" for writing. + No se puede abrir archivo «%1» para escritura. + + + Cannot write to file + No se puede escribir a archivo + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - Importar passkey + + + Username: %1 + Usuario: %1 + + + Group + Grupo + + + Database + Base de datos + + + Import Passkey + Importar Passkey + + + Import + Importar + + + Cancel + Cancelar + + + Import the following Passkey: + Importar la siguiente Passkey: + + + Entry + Apunte + + + Import the following Passkey to this entry: + Importar la siguiente Passkey para este apunte: + + + Create new entry + Crear nuevo apunte + + + Default Passkeys group (Imported Passkeys) + Grupo de Passkey por defecto (Passkeys importadas) + + + Relying Party: %1 + Parte que confía: %1 + + + + PasskeyImporter + + Passkey file + Archivo passkey + + + All files + Todos los archivos + + + Open Passkey file + Abrir archivo passkey + + + Cannot open file + No se puede abrir archivo + + + Cannot open file "%1" for reading. + No se puede abrir archivo «%1» para lectura. + + + Cannot import Passkey + No se puede importar passkey + + + Cannot import Passkey file "%1". Data is missing. + No se puede importar archivo de Passkey «%1». Datos ausentes. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + No se puede importar archivo de Passkey «%1». Clave privada ausente o mal formada. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + No se puede importar archivo de Passkey «%1». +Siguientes datos ausentes: +%2 @@ -5966,7 +6554,7 @@ Le recomendamos que utilice la AppImage disponible en nuestra página de descarg Also choose from: - También seleccionar de: + Seleccionar también de: Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" @@ -6052,6 +6640,30 @@ Le recomendamos que utilice la AppImage disponible en nuestra página de descarg Entropy: %1 bit Entropía: %1 bit + + Password Quality: %1 + Calidad de la contraseña: %1 + + + Poor + Password quality + Pobre + + + Weak + Password quality + Débil + + + Good + Password quality + Buena + + + Excellent + Password quality + Excelente + Confirm Delete Wordlist Confirmar eliminar lista de palabras @@ -6098,9 +6710,32 @@ Do you want to overwrite it? Special Characters Caracteres especiales + + + PasswordWidget - Password Quality: %1 - Calidad de la contraseña: %1 + Passwords do not match + Contraseñas que no coinciden + + + Passwords match so far + Contraseñas coincidentes hasta el momento + + + Toggle Password (%1) + Conmutar contraseña (%1) + + + Generate Password (%1) + Generar contraseña (%1) + + + Warning: Caps Lock enabled! + Advertencia: ¡las mayúsculas están activadas! + + + Quality: %1 + Calidad: %1 Poor @@ -6122,6 +6757,10 @@ Do you want to overwrite it? Password quality Excelente + + Toggle password visibility using Control + H. Open the password generator using Control + G. + Cambiar visibilidad de clave usando Control + H. Abrir el generador de contraseñas usando Control + G. + PickcharsDialog @@ -6176,6 +6815,10 @@ Do you want to overwrite it? Continue Continuar + + Continue with weak password + Continuar con una clave débil + QObject @@ -6373,7 +7016,7 @@ Do you want to overwrite it? Password for '%1' has been leaked %2 time(s)! - ¡Contraseña para «%1» ha sido filtrada %2 vez!¡Contraseña para «%1» ha sido filtrada %2 veces! + ¡Contraseña para «%1» ha sido filtrada %2 vez!¡Contraseña para «%1» ha sido filtrada %2 veces!¡Contraseña para «%1» ha sido filtrada %2 veces! Password for '%1' has been leaked! @@ -6523,7 +7166,7 @@ Do you want to overwrite it? Clearing the clipboard in %1 second(s)... - Limpiar el portapapeles en %1 segundo(s)...Limpiar el portapapeles en %1 segundo(s)... + Limpiar el portapapeles en %1 segundo(s)...Limpiar el portapapeles en %1 segundo(s)...Limpiar el portapapeles en %1 segundo(s)... Clipboard cleared! @@ -6569,6 +7212,10 @@ Do you want to overwrite it? Too many arguments provided. Demasiados argumentos proporcionados. + + Path of the database. + Ruta a la base de datos. + Target decryption time in MS for the database. Tiempo de descifrado objetivo en ms para la base de datos. @@ -6577,6 +7224,12 @@ Do you want to overwrite it? time tiempo + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Establece el archivo clave para la base de datos. +Estas opciones están obsoletas, use --set-key-file. + Set the key file for the database. Establecer el fichero clave para la base de datos. @@ -6589,10 +7242,6 @@ Do you want to overwrite it? Create a new database. Crear una base de datos nueva. - - Path of the database. - Ruta a la base de datos. - Invalid decryption time %1. Tiempo de descifrado inválido %1. @@ -6637,6 +7286,158 @@ Do you want to overwrite it? Successfully created new database. Nueva base de datos creada correctamente. + + Unset the password for the database. + Se ha quitado la contraseña de la base de datos. + + + Unset the key file for the database. + Se ha quitado el archivo clave de la base de datos. + + + Edit a database. + Editar una base de datos. + + + Cannot use %1 and %2 at the same time. + No se puede usar %1 y %2 al mismo tiempo. + + + Could not change the database key. + No se pudo cambiar la clave de la base de datos. + + + Database was not modified. + La base de datos no ha sido modificada. + + + Writing the database failed: %1 + Fallo al escribir la base de datos: %1 + + + Successfully edited the database. + Se ha editado correctamente la base de datos. + + + Cannot remove password: The database does not have a password. + No se puede eliminar la contraseña: la base de datos no tiene contraseña. + + + Cannot remove file key: The database does not have a file key. + No se puede eliminar el archivo clave: la base de datos no tiene archivo clave. + + + Loading the new key file failed: %1 + Carga de un nuevo archivo clave ha fallado: %1 + + + Found unexpected Key type %1 + Encontrado tipo de clave inesperado %1 + + + Cannot remove all the keys from a database. + No se puede eliminar todas las claves de la base de datos. + + + Show a database's information. + Mostrar información de una base de datos. + + + UUID: + UUID: + + + Name: + Nombre: + + + Description: + Descripción: + + + Cipher: + Cifrado: + + + KDF: + KDF: + + + Recycle bin is enabled. + La papelera de reciclaje está habilitada. + + + Recycle bin is not enabled. + La papelera de reciclaje no está habilitada. + + + Location + Localización + + + Database created + Base de datos creada + + + Last saved + Última guardada + + + Unsaved changes + Cambios no guardados + + + yes + sí + + + no + no + + + Number of groups + Número de grupos + + + Number of entries + Número de apuntes + + + Number of expired entries + Número de apuntes expirados + + + Unique passwords + Contraseñas únicas + + + Non-unique passwords + Contraseñas no únicas + + + Maximum password reuse + Reuso máximo de contraseña + + + Number of short passwords + Número de contraseñas cortas + + + Number of weak passwords + Número de contraseñas débiles + + + Entries excluded from reports + Apuntes excluidos de los informes + + + Average password length + Longitud media de contraseña + + + %1 characters + %1 caracteres + Word count for the diceware passphrase. Número de palabras para la frase de contraseña de diceware. @@ -6688,10 +7489,6 @@ Do you want to overwrite it? Enter new password for entry: Introduzca una nueva contraseña para el apunte: - - Writing the database failed: %1 - Fallo al escribir la base de datos: %1 - Successfully edited entry %1. Apunte %1 editado correctamente. @@ -6916,106 +7713,6 @@ Do you want to overwrite it? Successfully imported database. Base de datos importada correctamente. - - Show a database's information. - Mostrar información de una base de datos. - - - UUID: - UUID: - - - Name: - Nombre: - - - Description: - Descripción: - - - Cipher: - Cifrado: - - - KDF: - KDF: - - - Recycle bin is enabled. - La papelera de reciclaje está habilitada. - - - Recycle bin is not enabled. - La papelera de reciclaje no está habilitada. - - - Location - Localización - - - Database created - Base de datos creada - - - Last saved - Última guardada - - - Unsaved changes - Cambios no guardados - - - yes - sí - - - no - no - - - Number of groups - Número de grupos - - - Number of entries - Número de apuntes - - - Number of expired entries - Número de apuntes expirados - - - Unique passwords - Contraseñas únicas - - - Non-unique passwords - Contraseñas no únicas - - - Maximum password reuse - Reuso máximo de contraseña - - - Number of short passwords - Número de contraseñas cortas - - - Number of weak passwords - Número de contraseñas débiles - - - Entries excluded from reports - Apuntes excluidos de los informes - - - Average password length - Longitud media de contraseña - - - %1 characters - %1 caracteres - Unknown command %1 Mandato %1 desconocido @@ -7188,6 +7885,10 @@ Comandos disponibles: Show the protected attributes in clear text. Mostrar los atributos protegidos en texto legible + + Show all the attributes of the entry. + Mostrar todos los atributos del apunte. + Show the attachments of the entry. Mostrar los adjuntos del apunte. @@ -7258,6 +7959,10 @@ Considere generar un nuevo fichero clave. Invalid YubiKey serial %1 Serie de YubiKey inválido %1 + + Please present or touch your YubiKey to continue. + Conecte o toque su YubiKey para continuar. + Enter password to encrypt database (optional): Introduzca la contraseña para cifrar la base de datos (opcional): @@ -7330,7 +8035,7 @@ Considere generar un nuevo fichero clave. Password is used %1 time(s) - La contraseña es usada %1 vezLa contraseña es usada %1 veces + La contraseña es usada %1 vezLa contraseña es usada %1 vecesLa contraseña es usada %1 veces Password has expired @@ -7350,7 +8055,7 @@ Considere generar un nuevo fichero clave. Password expires in %1 day(s) - La contraseña expira en %1 díaLa contraseña expira en %1 días + La contraseña expira en %1 díaLa contraseña expira en %1 díasLa contraseña expira en %1 días Password will expire soon @@ -7422,31 +8127,31 @@ Núcleo: %3 %4 over %1 year(s) - más de %1 añomás de %1 años + más de %1 añomás de %1 añosmás de %1 años about %1 month(s) - casi %1 mescasi %1 meses + casi %1 mescasi %1 mesescasi %1 meses %1 week(s) - %1 semana%1 semanas + %1 semana%1 semanas%1 semanas %1 day(s) - %1 día%1 días + %1 día%1 días%1 días %1 hour(s) - %1 hora%1 horas + %1 hora%1 horas%1 horas %1 minute(s) - %1 minuto%1 minutos + %1 minuto%1 minutos%1 minutos - Botan library must be at least 2.11.x, found %1.%2.%3 - La biblioteca de Botan debe ser al menos 2.11.x, encontrada %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + Librería Botan debe ser al menos %1, encontrado %2.%3.%4 Cryptographic libraries: @@ -7546,7 +8251,7 @@ Núcleo: %3 %4 Clearing the clipboard in %1 second(s)… - Limpiando el portapapeles en %1 segundo...Limpiando el portapapeles en %1 segundos... + Limpiando el portapapeles en %1 segundo...Limpiando el portapapeles en %1 segundos...Limpiando el portapapeles en %1 segundos... Group @@ -7587,12 +8292,12 @@ Núcleo: %3 %4 %1 ms milliseconds - %1 ms%1 ms + %1 ms%1 ms%1 ms %1 s seconds - %1 s%1 s + %1 s%1 s%1 s Do you really want to delete the entry "%1" for good? @@ -7600,11 +8305,11 @@ Núcleo: %3 %4 Do you really want to delete %n entry(s) for good? - ¿Desea eliminar para siempre %n apunte?¿Desea eliminar para siempre %n apuntes? + ¿Desea eliminar para siempre %n apunte?¿Desea eliminar para siempre %n apuntes?¿Desea eliminar para siempre %n apuntes? Delete entry(s)? - ¿Eliminar apunte?¿Eliminar apuntes? + ¿Eliminar apunte?¿Eliminar apuntes?¿Eliminar apuntes? Do you really want to move entry "%1" to the recycle bin? @@ -7612,11 +8317,11 @@ Núcleo: %3 %4 Do you really want to move %n entry(s) to the recycle bin? - ¿Desea mover %n apunte a la papelera de reciclaje?¿Desea mover %n apuntes a la papelera de reciclaje? + ¿Desea mover %n apunte a la papelera de reciclaje?¿Desea mover %n apuntes a la papelera de reciclaje?¿Desea mover %n apuntes a la papelera de reciclaje? Move entry(s) to recycle bin? - ¿Mover el(los) apunte(s) a la papelera de reciclaje?¿Mover el(los) apunte(s) a la papelera de reciclaje? + ¿Mover el(los) apunte(s) a la papelera de reciclaje?¿Mover el(los) apunte(s) a la papelera de reciclaje?¿Mover el(los) apunte(s) a la papelera de reciclaje? Replace references to entry? @@ -7624,7 +8329,7 @@ Núcleo: %3 %4 Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? - El apunte «%1» tiene %2 referencia. ¿Desea sobreescribir las referencia con valores, omitir este apunte o eliminar de todos modos?El apunte «%1» tiene %2 referencias. ¿Desea sobreescribir las referencias con valores, omitir este apunte o eliminar de todos modos? + El apunte «%1» tiene %2 referencia. ¿Desea sobreescribir las referencia con valores, omitir este apunte o eliminar de todos modos?El apunte «%1» tiene %2 referencias. ¿Desea sobreescribir las referencias con valores, omitir este apunte o eliminar de todos modos?El apunte «%1» tiene %2 referencias. ¿Desea sobreescribir las referencias con valores, omitir este apunte o eliminar de todos modos? User name @@ -7686,10 +8391,6 @@ Núcleo: %3 %4 read password of the database from stdin leer contraseña de la base de datos desde la entrada estándar - - allow app screen recordering and screenshots - Permitir la grabación de la pantalla de la aplicación y las capturas de pantalla - Locked databases. Bases de datos bloqueadas. @@ -7702,6 +8403,10 @@ Núcleo: %3 %4 Another instance of KeePassXC is already running. Otra instancia de KeePassXC ya se está ejecutando. + + KeePassXC is not running. No open database to lock + KeePassXC no está en ejecución. No hay base de datos abierta a cerrar + Fatal error while testing the cryptographic functions. Error fatal comprobando las funciones criptográficas. @@ -7710,10 +8415,6 @@ Núcleo: %3 %4 KeePassXC - Error KeePassXC - Error - - Warning: Failed to prevent screenshots on a top level window! - Advertencia: ¡Error al prevenir las capturas de pantalla en una ventana de nivel superior! - Database password: Contraseña de la base de datos: @@ -7737,7 +8438,221 @@ Núcleo: %3 %4 Fallo al completar reto usando Windows Hello. - Please present or touch your YubiKey to continue. + Warning: Failed to block screenshot capture on a top-level window. + Advertencia: Fallo al bloquear la captura de pantalla en la ventana de nivel superior. + + + Invalid Cipher + Algoritmo de cifrado inválido + + + Invalid KDF + KDF inválido + + + Access to all entries is denied + acceso a todos los apuntes denegado + + + allow screenshots and app recording (Windows/macOS) + permitir aplicación de capturas de pantalla y granación (Windows/macOS) + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + Atestación no soportada + + + Credential is excluded + Credencia excluida + + + Passkeys request canceled + Petición passkey cancelada + + + Invalid user verification + Verificación de usuario inválido + + + Empty public key + Vaciar clave pública + + + Invalid URL provided + URL inválida proporcionada + + + Passkeys + Passkeys + + + AES initialization failed + Fallo inicialización AES + + + AES encrypt failed + Fallo cifrado AES + + + Failed to store in Linux Keyring + Fallo al almacenar en llavero de Linux + + + Polkit returned an error: %1 + Polkit devolvió un error: %1 + + + Could not locate key in keyring + No se puede localizar en llavero + + + Could not read key in keyring + No se puede leer clave en llavero + + + AES decrypt failed + Fallo descrifrado AES + + + No Polkit authentication agent was available + No hay agente de autenticación Polkit disponible + + + Polkit authorization failed + Fallo de autorización de Polkit + + + No Quick Unlock provider is available + No hay proveedor de Quick Unlock + + + Failed to init KeePassXC crypto. + Fallo al inicializar criptografía de KeePassXC. + + + Failed to encrypt key data. + Fallo al cifrar clave de datos. + + + Failed to get Windows Hello credential. + Fallo al obtener credencial Windows Hello. + + + Failed to decrypt key data. + Fallo al descifrar clave de datos. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7777,18 +8692,6 @@ Núcleo: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - Excluir apuntes caducados del informe - - - Show only entries which have URL set - Mostar solo apuntes con URL - - - Show only entries which have browser settings in custom data - Mostrar solo apuntes que tienen preferencias de navegador en datos personalizados - Double-click entries to edit. Doble clic para editar apuntes. @@ -7847,23 +8750,31 @@ Núcleo: %3 %4 Delete Entry(s)… - Eliminar apunte(s)...Eliminar apunte(s)... + Eliminar apunte(s)...Eliminar apunte(s)...Eliminar apunte(s)... Exclude from reports Excluir de los informes + + Only show entries that have a URL + Mostrar solo apuntes que tienen una URL + + + Only show entries that have been explicitly allowed or denied + Mostrar solo apuntes que han sido permitidos o denegados explícitamente + + + Show expired entries + Mostrar apuntes expirados + + + (Expired) + (Expirado) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - Excluir apuntes caducados del informe - - - Also show entries that have been excluded from reports - Mostrar también que ha sido excluido de los informes - Hover over reason to show additional details. Double-click entries to edit. Pasar por encima del motivo para mostrar detalles adicionales. Doble clic para editar. @@ -7933,12 +8844,24 @@ Núcleo: %3 %4 Delete Entry(s)… - Eliminar apunte(s)...Eliminar apunte(s)... + Eliminar apunte(s)...Eliminar apunte(s)...Eliminar apunte(s)... Exclude from reports Excluir de los informes + + Show expired entries + Mostrar apuntes expirados + + + Show entries that have been excluded from reports + Mostrar apuntes que han sido excluidos de los informes + + + (Expired) + (Expirado) + ReportsWidgetHibp @@ -8028,13 +8951,72 @@ Núcleo: %3 %4 Delete Entry(s)… - Eliminar apunte(s)...Eliminar apunte(s)... + Eliminar apunte(s)...Eliminar apunte(s)...Eliminar apunte(s)... Exclude from reports Excluir de los informes + + ReportsWidgetPasskeys + + Export + Exportar + + + Import + Importar + + + List of entry URLs + Lista de URLs de apuntes + + + Please wait, list of entries with Passkeys is being updated… + Espere, la lista de apuntes con Passkeys está siendo actualizada... + + + No entries with Passkeys. + No hay apuntes con Passkeys. + + + Title + Título + + + Path + Ruta + + + Username + Usuario + + + URLs + URLs + + + Edit Entry… + Editar Apunte... + + + Delete Entry(s)… + Eliminar apunte...Eliminar apunte(s)...Eliminar apuntes... + + + Relying Party + Parte que confía + + + Show expired entries + Mostrar apuntes expirados + + + (Expired) + (Expirado) + + ReportsWidgetStatistics @@ -8274,6 +9256,10 @@ Núcleo: %3 %4 Search Help Buscar Ayuda + + Save Search + Guardar búsqueda + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8505,11 +9491,38 @@ Núcleo: %3 %4 Exportar a %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All - Todos + Clear Search + Limpiar búsqueda + + + All Entries + Todos los apuntes Expired @@ -8520,6 +9533,25 @@ Núcleo: %3 %4 Contraseñas débiles + + TagView + + Remove Search + Eliminar búsqueda + + + Remove Tag + Eliminar etiqueta + + + Confirm Remove Tag + Confirmar eliminar etiqueta + + + Remove tag "%1" from all entries in this database? + ¿Eliminar etiqueta «%1» de todos los apuntes en esta base de datos? + + TotpDialog @@ -8532,7 +9564,7 @@ Núcleo: %3 %4 Expires in <b>%n</b> second(s) - Caduca en <b>%n</b> segundoCaduca en <b>%n</b> segundos + Caduca en <b>%n</b> segundoCaduca en <b>%n</b> segundosCaduca en <b>%n</b> segundos @@ -8677,26 +9709,6 @@ Ejemplo: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Empiece a guardar sus contraseñas con seguridad en una base de datos de KeePassXC - - Create new database - Crear una base de datos nueva - - - Open existing database - Abrir una base de datos existente - - - Import from KeePass 1 - Importar de KeePass 1 - - - Import from 1Password - Importar de 1Password - - - Import from CSV - Importar de CSV - Recent databases Bases de datos recientes @@ -8709,6 +9721,18 @@ Ejemplo: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Bienvenido a KeePassXC %1 + + Create Database + + + + Open Database + + + + Import File + + WinUtils @@ -8725,61 +9749,30 @@ Ejemplo: JBSWY3DPEHPK3PXP No se puedo registrar acceso directo global - - WindowsHello - - Failed to init KeePassXC crypto. - Fallo al inicializar criptografía de KeePassXC. - - - Failed to encrypt key data. - Fallo al cifrar clave de datos. - - - Failed to get Windows Hello credential. - Fallo al obtener credencial Windows Hello. - - - Failed to decrypt key data. - Fallo al descifrar clave de datos. - - YubiKey - - %1 No interface, slot %2 - %1 sin interfaz, ranura %2 - General: General: Could not find interface for hardware key with serial number %1. Please connect it to continue. - No se puede encontrar la interfaz para la llave hardware con número de serie %1. Conéctela para continuar. + No se puede encontrar la interfaz para la clave hardware con número de serie %1. Conéctela para continuar. YubiKeyEditWidget - - Refresh hardware tokens - Actualizar «tokens» hardware - - - Refresh - Actualizar - Hardware key slot selection - Selección de ranura de llave por hardware + Selección de ranura de clave hardware Could not find any hardware keys! - ¡No se puede encontrar ninguna llave por hardware! + ¡No se puede encontrar ninguna clave hardware! Selected hardware key slot does not support challenge-response! - ¡La ranura de la llave por hardware seleccionada no soporta reto-respuesta! + ¡La ranura de la clave hardware seleccionada no soporta reto-respuesta! Challenge-Response @@ -8801,56 +9794,60 @@ Ejemplo: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove Conjunto de Desafío/Respuesta, haga clic para cambiar o eliminar - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>Si posee una <a href="https://www.yubico.com/">YubiKey</a> u <a href="https://onlykey.io">OnlyKey</a>, puede usarla para seguridad adicional.</p><p>La llave requiere que una de sus ranuras esté programada como <a href="https://www.yubico.com/products/services-software/challenge-response/">Desafío/respuesta HMAC-SHA1</a>.</p> - Detecting hardware keys… - Detectando llaves por hardware... + Detectando claves hardware... No hardware keys detected - No se detectaron llaves por hardware + No se detectaron claves hardware - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 Especificado una ranura inválida - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] Desfío-Respuesta - Ranura %3 - The YubiKey PCSC interface has not been initialized. La interfaz YubiKey PCSC no ha sido inicializada. - - Hardware key is currently in use. - La llave por hardware está actualmente en uso. - Could not find or access hardware key with serial number %1. Please present it to continue. - No se puede encontrar la interfaz para la llave hardware con número de serie %1. Conéctela para continuar. + No se puede encontrar la interfaz para la clave hardware con número de serie %1. Conéctela para continuar. Hardware key is locked or timed out. Unlock or re-present it to continue. - La llave hardware está bloqueada o expiró. Desbloque o vuelva a presentar para continuar. + La clave hardware está bloqueada o expiró. Desbloque o vuelva a presentar para continuar. Hardware key was not found or is not configured. - Llave hardware no encontrada o no configurada. + Clave hardware no encontrada o no configurada. Failed to complete a challenge-response, the PCSC error code was: %1 Fallo al completar el desafio-respuesta, el error PCSC fue: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + Presione + + + Passive + USB Challenge-Response Key no interaction required + Pasivo + YubiKeyInterfaceUSB @@ -8858,14 +9855,6 @@ Ejemplo: JBSWY3DPEHPK3PXP Unknown Desconocido - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] Ranura configurada - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] Desafío-Respuesta - Ranura %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8880,25 +9869,31 @@ Ejemplo: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. La interfaz YubiKey USB no ha sido inicializada. - - Hardware key is currently in use. - La llave por hardware está actualmente en uso. - Could not find hardware key with serial number %1. Please plug it in to continue. - No se puede encontrar llave por hardware con número de serie %1. Conéctelo para continuar. + No se puede encontrar clave hardware con número de serie %1. Conéctelo para continuar. Hardware key timed out waiting for user interaction. - La llave por hardware expiró esperando interacción del usuario. + La clave hardware expiró esperando interacción del usuario. A USB error occurred when accessing the hardware key: %1 - Ha ocurrido un error USB al acceder a la llave por hardware: %1 + Ha ocurrido un error USB al acceder a la clave hardware: %1 Failed to complete a challenge-response, the specific error was: %1 Fallo al completar el reto-respuesta, el error fue: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_et.ts b/share/translations/keepassxc_et.ts index a151b4859..bf05ddd09 100644 --- a/share/translations/keepassxc_et.ts +++ b/share/translations/keepassxc_et.ts @@ -80,6 +80,10 @@ Details Üksikasjad + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Otsust mäletatakse seni, kuni nii taotluse esitanud klient kui ka KeePassXC töötavad. + Remember Jäetakse meelde @@ -88,10 +92,6 @@ Allow Selected Luba valituile - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - Otsust mäletatakse seni, kuni nii taotluse esitanud klient kui ka KeePassXC töötavad. - Deny All && Future Keela kõik ka edaspidi @@ -122,6 +122,10 @@ Use OpenSSH OpenSSH kasutamine + + Use both agents + Mõlema agendi kasutamine + SSH_AUTH_SOCK override SSH_AUTH_SOCK-i alistus: @@ -150,10 +154,6 @@ SSH Agent connection is working! SSH agendi ühendus toimib! - - Use both agents - Mõlema agendi kasutamine - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security Turvalisus + + This setting cannot be enabled when minimize on unlock is enabled. + Kuna valitud on luku avamise järel akna minimeerimine, ei saa seda valikut sisse lülitada. + Access error for config file %1 Juurdepääsuviga seadistusfailil „%1†@@ -256,6 +260,10 @@ Remember previously used databases Mäletatakse viimati kasutatud andmebaase + + recent files + hiljutise faili piires + Load previously open databases on startup Käivitumisel laaditakse viimati avatud olnud andmebaasid @@ -369,11 +377,11 @@ Favicon download timeout: - Saidiikoonide allalaadimise ajalõpp: + Saidiikoonide allalaadimise ajalimiit: Website icon download timeout in seconds - Saidiikoonide allalaadimiskatsete aegumine sekundites + Saidiikoonide allalaadimiskatsete ajalimiit sekundites sec @@ -408,6 +416,10 @@ Toolbar button style: Tööriistariba nuppude stiil: + + Show passwords in color + Paroole näidatakse värviliselt + Use monospaced font for notes Märkmete jaoks kasutatakse fikseeritud laiusega fonti @@ -498,11 +510,11 @@ ApplicationSettingsWidgetSecurity Timeouts - Aegumine + Ajalimiidid Database lock timeout seconds - Andmebaasi lukustamise ajalõpp sekundites + Andmebaasi lukustamise ajalimiit sekundites sec @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons Saidiikoonide allalaadimiseks kasutatakse DuckDuckGo teenust + + Hide TOTP in the entry preview panel + Kirjete eelvaatepaneelil varjatakse TOTP kood + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 Leiti väga pikk viivitus, lubatud maksimum on %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + PICKCHARS-automaatsisestuseks määratud atribuuti „%1†kirjes ei leidu. + Invalid conversion type: %1 Vigane teisendustüüp: %1 @@ -690,7 +710,7 @@ Sequence aborted: Caps Lock is on - Jada sisestamine katkestati: Caps Lock on sisse lülitatud + Jada sisestamine katkestati: suurtähelukk on sisse lülitatud Sequence aborted: Modifier keys held by user @@ -804,13 +824,13 @@ Ctrl+4 – lülitab sisse ekraaniklaviatuuri (ainult Windowsis)</p>Disable for this site Keela selle saidi jaoks + + Undo + Võta tagasi + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browseri kirje salvestamine - Ok OK @@ -825,13 +845,70 @@ Please select the correct database for saving credentials. Sul on avatud mitu andmebaasi. Vali, millisesse neist tunnused salvestada tuleks. + + KeePassXC - Select Database + Andmebaasi valimine – KeePassXC + + + + BrowserPasskeysConfirmationDialog + + Cancel + Loobu + + + Update + Uuenda + + + Authenticate + Autendi + + + Register new + Registreeri uus + + + Register + Registreeri + + + Timeout in <b>%n</b> seconds... + Oodatakse veel <b>%n</b> sekund...Oodatakse veel <b>%n</b> sekundit... + + + Do you want to register Passkey for: + Kirje, millele uus pääsuvõti registreerida: + + + Existing Passkey found. +Do you want to register a new Passkey for: + Leiti olemasolev pääsuvõti. +Vali kirje, millele uus pääsuvõti registreerida: + + + Select the existing Passkey and press Update to replace it. + Vali olemasolev pääsuvõti ja klõpsa selle asendamiseks „Uuendaâ€. + + + Authenticate Passkey credentials for: + Pääsuvõtme tunnuste autentimine: + + + Relying Party: %1 + Sõltlane: %1 + + + Username: %1 + Kasutajanimi: %1 + + + KeePassXC - Passkey credentials + Pääsuvõtme tunnused – KeePassXC + BrowserService - - KeePassXC: Create a new group - Uue grupi loomine – KeePassXC - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -840,10 +917,6 @@ Do you want to create this group? Kas lubad selle grupi luua? - - KeePassXC: New key association request - Uus ühendumistaotlus – KeePassXC - You have received an association request for the following database: %1 @@ -860,28 +933,16 @@ chrome-laptop. Save and allow access Salvesta ja luba juurdepääs - - KeePassXC: Overwrite existing key? - Kirje ülekirjutamise kinnitus – KeePassXC - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? Jagatud krüptimisvõti nimega „%1†on juba olemas. Kas soovid selle üle kirjutada? - - KeePassXC: Update Entry - Kirje uuendamine – KeePassXC - Do you want to update the information in %1 - %2? Kas soovid uuendada teavet kirjes %1 – %2? - - KeePassXC: Delete entry - Kirje kustutamine – KeePassXC - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -891,50 +952,46 @@ Kas lubad selle kirje kustutada? - Converting attributes to custom data… - Atribuutide teisendamine kohandatud andmeteks… + %1 (Passkey) + %1 (pääsuvõti) - Abort - Katkesta + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + Kirjel „%1†on juba pääsuvõti. +Kas soovid selle uue pääsuvõtmega (%2) üle kirjutada? - KeePassXC: Converted KeePassHTTP attributes - Teisendatud KeePassHTTP atribuudid – KeePassXC + KeePassXC - Create a new group + Uue grupi loomine – KeePassXC - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - %1 kirje atribuudid edukalt teisendatud. -Kohandatud andmetesse teisaldati %2 võtit. - - - Successfully moved %n keys to custom data. - %n võti edukalt kohandatud andmetesse teisaldatud.%n võtit edukalt kohandatud andmetesse teisaldatud. + Disable + keelatud - KeePassXC: No entry with KeePassHTTP attributes found! - Ühtegi KeePassHTTP atribuutidega kirjet ei leitud – KeePassXC + KeePassXC - Overwrite existing key? + Kirje ülekirjutamise kinnitus – KeePassXC - The active database does not contain an entry with KeePassHTTP attributes. - Aktiivne andmebaas ei sisalda ühtegi kirjet, millel oleks KeePassHTTP atribuute. + KeePassXC - Update Passkey + Pääsuvõtme uuendamine – KeePassXC - Don't show this warning again - Seda hoiatust rohkem ei näidata + KeePassXC - Update Entry + Kirje uuendamine – KeePassXC - KeePassXC: Legacy browser integration settings detected - Tuvastati brauserilõimingu pärandseadistus – KeePassXC + KeePassXC - Delete entry + Kirje kustutamine – KeePassXC - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Sinu KeePassXC-Browseri seadistus tuleb teisaldada andmebaasi seadistusse. -See on vajalik praeguste brauseriühenduste säilitamiseks. -Kas tahad oma olemasoleva seadistuse kohe üle kolida? + KeePassXC - New key association request + Uus ühendumistaotlus – KeePassXC + + + Passkey + @@ -1142,14 +1199,6 @@ Kas tahad oma olemasoleva seadistuse kohe üle kolida? Please see special instructions for browser extension use below Vaata allpool brauserilaienduse kasutamise erijuhiseid. - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Viga:</b> kohandatud puhverrakenduse asukohta ei leitud!<br/>Ilma puhverrakenduseta brauserilõiming EI TÖÖTA. - - - <b>Warning:</b> The following options can be dangerous! - <b>Hoiatus:</b> nende seadete muutmine võib olla ohtlik! - Executable Files Rakendusfailid @@ -1166,6 +1215,38 @@ Kas tahad oma olemasoleva seadistuse kohe üle kolida? Select native messaging host folder location Programmiomase teatevahetuse hosti kausta valimine + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + Märkimisel lubatakse keepassxc-proxy’l loetleda kirjeid koos pealkirja, URL-i ja ühendatud andmebaasides oleva UUID-ga. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + Lubatakse piiratud juurdepääs kõigile kirjetele ühendatud andmebaasides (eirates saitide juurdepääsupiiranguid) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Hoiatus:</b> neid seadeid ei tohiks muuta ilma otsese vajaduseta. + + + The custom proxy location does not exist. + Kohandatud puhverrakenduse asukohta pole olemas. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Viga:</b> kohandatud puhverrakenduse asukohta pole olemas. Vali lisaseadete kaardil õige asukoht. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Viga:</b> paigaldatud puhverrakendust ei leitud ootuspärasest asukohast: %1<br/>Palun määra lisaseadete all kohandatud puhverrakenduse asukoht või paigalda puhverrakendus uuesti. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1188,14 +1269,6 @@ Kas tahad oma olemasoleva seadistuse kohe üle kolida? CsvImportWidget - - Import CSV fields - CSV väljade importimine - - - filename - failinimi - size, rows, columns maht, ridade arv, veergude arv @@ -1304,50 +1377,29 @@ Kas tahad oma olemasoleva seadistuse kohe üle kolida? Column %1 %1. veerg - - Imported from CSV file - Imporditud CSV-failist - - - Original data: - Algsed andmed: - - - Error(s) detected in CSV file! - CSV-failis leiti vigu: - [%n more message(s) skipped] [ja veel %n teade, mis jäeti vahele][ja veel %n teadet, mis jäeti vahele] - Error - Viga + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - CSV importimine: kirjutamisel ilmnes vigu: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n bait%n baiti - %n row(s) + CSV row count %n rida%n rida %n column(s) + CSV column count %n veerg%n veergu @@ -1422,40 +1474,10 @@ Varuandmebaasi asukoht: %2 Password field Parooli väli - - Enter Additional Credentials (if any): - Lisatunnused (kui vaja): - - - Key File: - Võtmefail: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>Lisaks paroolile saab andmebaasi turvalisuse suurendamiseks kasutada võtmefaili. Selle saab genereerida andmebaasi turvaseadetes.</p><p>See <strong>ei ole</strong> sinu *.kdbx andmebaasifail!<br>Kui andmebaasi avamiseks pole võtmefaili vaja, jäta see väli tühjaks.</p><p>Lisateabe saamiseks klõpsa.</p> - - - Key file help - Abi võtmefailide kohta - Hardware key slot selection Riistvaralise võtme pesa valimine - - Hardware Key: - Riistvaraline võti: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>Kasutada saab riistvaralist võtit nagu <strong>YubiKey</strong> või <strong>OnlyKey</strong>, millel on HMAC-SHA1 jaoks seadistatud pesa.</p> -<p>Lisateabe saamiseks klõpsa.</p> - - - Hardware key help - Riistvaralise võtme abi - Key file to unlock the database Võtmefail andmebaasi luku avamiseks @@ -1468,14 +1490,6 @@ Varuandmebaasi asukoht: %2 Browse… Sirvi… - - Refresh hardware tokens - Värskenda riistvaraliste võtmete loendit - - - Refresh - Värskenda - Unlock Database Ava andmebaasi lukk @@ -1538,14 +1552,6 @@ Selle veateate ilmumise vältimiseks peaksid avama andmebaasi seadetes turvalisu Retry with empty password Proovi uuesti tühja parooliga - - Failed to authenticate with Windows Hello - Windows Helloga autentimine ebaõnnestus - - - Failed to authenticate with Touch ID - Touch ID-ga autentimine ebaõnnestus - Failed to open key file: %1 Võtmefaili avamine ebaõnnestus: %1 @@ -1579,22 +1585,60 @@ Selle veateate ilmumise vältimiseks peaksid avama andmebaasi seadetes turvalisu Andmebaasifail ei sobi võtmefailiks - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Andmebaasifaili ennast ei saa võtmefailina kasutada. -Kui andmebaasi avamiseks pole võtmefaili vaja, jäta see väli tühjaks. + authenticate to access the database + andmebaasi avamiseks on tarvis autentida - Detecting hardware keys… - riistvaraliste võtmete tuvastamine… + Failed to authenticate with Quick Unlock: %1 + Kiiresti luku avamise teenusega autentimine ebaõnnestus: %1 - No hardware keys detected - riistvaralisi võtmeid ei tuvastatud + Select Key File: + - Select hardware key… - vali riistvaraline võti… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1606,10 +1650,6 @@ Kui andmebaasi avamiseks pole võtmefaili vaja, jäta see väli tühjaks. DatabaseSettingsDialog - - Advanced Settings - Täpsemad seaded - General Üldine @@ -1641,18 +1681,6 @@ Kui andmebaasi avamiseks pole võtmefaili vaja, jäta see väli tühjaks.KeePassXC-Browser settings KeePassXC-Browseri seaded - - Convert KeePassHTTP data - Teisenda KeePassHTTP andmed - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - Teisenda KeePassHTTP pärandatribuudid KeePassXC-Browseriga ühilduvateks kohandatud andmeteks - - - Refresh database root group ID - Värskenda andmebaasi juurgrupi ID-d - Disconnect all browsers Kõigi brauseritega ühenduse katkestamise kinnitus @@ -1661,6 +1689,10 @@ Kui andmebaasi avamiseks pole võtmefaili vaja, jäta see väli tühjaks.Forget all site-specific settings on entries Kirjete kõigi saidiomaste seadete kustutamine + + Refresh database root group ID + Värskenda andmebaasi juurgrupi ID-d + Stored keys Salvestatud võtmed @@ -1709,18 +1741,10 @@ This may prevent connection to the browser plugin. Kas oled kindel, et soovid katkestada ühenduse kõigi brauseritega? See võib tõkestada ühendumise brauseripluginaga. - - KeePassXC: No keys found - Võtmeid ei leitud – KeePassXC - No shared encryption keys found in KeePassXC settings. KeePassXC seadetest ei leitud ühtki jagatud krüptimisvõtit. - - KeePassXC: Removed keys from database - Võtmed andmebaasist eemaldatud – KeePassXC - Successfully removed %n encryption key(s) from KeePassXC settings. %n krüptimisvõti edukalt KeePassXC seadetest eemaldatud.%n krüptimisvõtit edukalt KeePassXC seadetest eemaldatud. @@ -1739,32 +1763,14 @@ See tühistab ka juurdepääsuload kirjetele. Abort Katkesta - - KeePassXC: Removed permissions - Juurdepääsuload eemaldatud – KeePassXC - Successfully removed permissions from %n entry(s). %n kirje juurdepääsuload edukalt eemaldatud.%n kirje juurdepääsuload edukalt eemaldatud. - - KeePassXC: No entry with permissions found! - Juurdepääsulubadega kirjeid ei leitud – KeePassXC - The active database does not contain an entry with permissions. Aktiivne andmebaas ei sisalda ühtki juurdepääsulubadega kirjet. - - Move KeePassHTTP attributes to custom data - KeePassHTTP atribuutide kohandatud andmetesse teisaldamine - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Kas oled kindel, et tahad kõik brauserilõimingu pärandandmed uusimale standardile üle viia? -Need võivad olla vajalikud brauseripluginaga ühilduvuse säilitamiseks. - Refresh database ID Andmebaasi ID värskendamine @@ -1775,6 +1781,26 @@ This is only necessary if your database is a copy of another and the browser ext Kas oled kindel, et tahad andmebaasi ID-d värskendada? See on vajalik vaid juhul, kui sinu andmebaas on teise andmebaasi koopia ning brauserilaiendus ei saa sellega ühendust. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Teisenda KeePassHTTP pärandatribuudid KeePassXC-Browseriga ühilduvateks kohandatud andmeteks + + + No keys found + Võtmeid ei leitud + + + Removed keys from database + Võtmed andmebaasist eemaldatud + + + Removed permissions + Juurdepääsuload eemaldatud + + + No entry with permissions found! + Juurdepääsulubadega kirjeid ei leitud + DatabaseSettingsWidgetDatabaseKey @@ -1814,6 +1840,18 @@ Kas oled kindel, et soovid jätkata ilma paroolita? Failed to change database credentials Andmebaasi tunnuste vahetamine ebaõnnestus. + + Weak password + Nõrk parool + + + You must enter a stronger password to protect your database. + Andmebaasi kaitsmiseks tuleb kasutada tugevamat parooli. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + See on liiga nõrk parool! Oma saladuste paremaks kaitsmiseks peaksid valima tugevama parooli. + DatabaseSettingsWidgetEncryption @@ -1821,14 +1859,6 @@ Kas oled kindel, et soovid jätkata ilma paroolita? Decryption Time: Lahtikrüptimise aeg: - - Change existing decryption time - Muuda juba määratud lahtikrüptimise aega - - - Change - Muuda - Decryption time in seconds Lahtikrüptimise aeg sekundites @@ -1909,11 +1939,6 @@ Kas oled kindel, et soovid jätkata ilma paroolita? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - muutmata - Number of rounds too high Key transformation rounds @@ -1966,6 +1991,18 @@ Kui jätad selle suuremaks muutmata, on andmebaas jõhkra jõuga rünnete ees ka Threads for parallel execution (KDF settings) lõim lõime + + Encryption Settings: + Krüptimisseaded: + + + Basic + Põhiline + + + Advanced + Lisaseaded + DatabaseSettingsWidgetFdoSecrets @@ -2024,18 +2061,10 @@ Kui jätad selle suuremaks muutmata, on andmebaas jõhkra jõuga rünnete ees ka Maximum number of history items per entry Ajalooelementide maksimaalne arv kirje kohta - - Max. history items: - Ajalooelementide maksimumarv kirje kohta: - Maximum size of history per entry Ajaloo maksimaalne maht kirje kohta - - Max. history size: - Ajaloo maksimummaht kirje kohta: - MiB MiB @@ -2066,6 +2095,64 @@ Seda toimingut ei saa tagasi võtta. (old) (vana) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + Selle valiku salvestamisel või kirjete muutmisel +eemaldatakse kirjete vanimaid ajalooelemente, +nii et allesjäävate elementide arv ei oleks suurem +kui siin määratud. + + + Limit the amount of history items per entry to: + Ajalooelementide suurim lubatud arv kirje kohta: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + Selle valiku salvestamisel või kirjete muutmisel +eemaldatakse kirjete vanimaid ajalooelemente, +nii et allesjäävate elementide kogumaht ei oleks +suurem kui siin määratud. + + + Limit the total size of history items per entry to: + Ajaloo suurim lubatud maht kirje kohta: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Kirje kustutamisel ei eemaldata seda andmebaasist, +vaid teisaldatakse see prügikastigruppi. +Alles prügikastist kustutamise korral +eemaldatakse kirje andmebaasist. + + + Autosave delay since last change + Märkimisel viivitatakse muudatuste järel automaatsalvestusega. + + + Autosave delay + Automaatsalvestusega viivitatakse + + + Autosave delay since last change in minutes + Määrab automaatsalvestuse viivituse minutites. + + + min + min + + + Autosave delay since last change checkbox + Automaatsalvestusega viivitamise märkeruut + DatabaseSettingsWidgetKeeShare @@ -2193,26 +2280,10 @@ See on kahtlemata programmiviga – palun anna sellest arendajatele teada!CSV file CSV-fail - - Select CSV file - CSV-faili valimine - Merge database Andmebaasi mestimine - - KeePass 1 database - KeePass 1 andmebaas - - - Open KeePass 1 database - KeePass 1 andmebaasi avamine - - - Open OPVault - OPVaulti avamine - Export database to CSV file Andmebaasi eksportimine CSV-failiks @@ -2225,6 +2296,18 @@ See on kahtlemata programmiviga – palun anna sellest arendajatele teada!Writing the HTML file failed. HTML-faili kirjutamine ebaõnnestus. + + Export database to XML file + Andmebaasi eksportimine XML-failiks + + + XML file + XML-fail + + + Writing the XML file failed + XML-faili kirjutamine ebaõnnestus. + Export Confirmation Eksportimise kinnitus @@ -2233,15 +2316,6 @@ See on kahtlemata programmiviga – palun anna sellest arendajatele teada!You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? Asusid andmebaasi eksportima krüptimata failivormingusse. See jätab su paroolid jm tundliku teabe kaitseta! Kas oled kindel, et soovid jätkata? - - New Database - Uus andmebaas - - - %1 [New Database] - Database tab name modifier - %1 [uus andmebaas] - %1 [Locked] Database tab name modifier @@ -2251,8 +2325,8 @@ See on kahtlemata programmiviga – palun anna sellest arendajatele teada! DatabaseWidget - Database Tags - Andmebaasi sildid + Searches and Tags + Otsingud ja sildid Searching… @@ -2302,6 +2376,10 @@ See on kahtlemata programmiviga – palun anna sellest arendajatele teada!Expired entries Aegunud kirjed + + Entries expiring within %1 day(s) + %1 päeva jooksul aeguvad kirjed%1 päeva jooksul aeguvad kirjed + No current database. Aktiivne andmebaas puudub. @@ -2326,6 +2404,18 @@ See on kahtlemata programmiviga – palun anna sellest arendajatele teada!No Results Tulemusi pole + + Save + Salvesta + + + Enter a unique name or overwrite an existing search from the list: + Sisesta ainukordne nimi või vali loendist ülekirjutatav otsing: + + + Save Search + Otsingu salvestamine + Lock Database? Andmebaasi lukustamise kinnitus @@ -2416,9 +2506,14 @@ Kas keelata turvaline salvestamine ja proovida seejärel uuesti? Could not find database file: %1 Andmebaasifaili ei leitud: %1 - - Entries expiring within %1 day(s) - %1 päeva jooksul aeguvad kirjed%1 päeva jooksul aeguvad kirjed + + New Database + Uus andmebaas + + + %1 [New Database] + Database tab name modifier + %1 [uus andmebaas] @@ -2561,6 +2656,10 @@ Kas soovid vea parandada? Hide Peida + + %n hour(s) + %n tunni pärast%n tunni pärast + %n week(s) %n nädala pärast%n nädala pärast @@ -2573,10 +2672,6 @@ Kas soovid vea parandada? %n year(s) %n aasta pärast%n aasta pärast - - %n hour(s) - %n tunni pärast%n tunni pärast - EditEntryWidgetAdvanced @@ -2697,10 +2792,20 @@ isegi kui see ei vasta kvaliteedinõuetele. Märgi see ruut, kui parooli keeruku Add new window association Lisa uus aknaseos + + + + Add item + Lisa + Remove selected window association Eemalda valitud aknaseos + + - + Remove item + Eemalda + Window title: Akna tiitel: @@ -2725,16 +2830,6 @@ isegi kui see ei vasta kvaliteedinõuetele. Märgi see ruut, kui parooli keeruku Custom Auto-Type sequence for this window Omamääratud automaatsisestuse jada selle akna jaoks - - + - Add item - Lisa - - - - - Remove item - Eemalda - EditEntryWidgetBrowser @@ -2836,22 +2931,10 @@ isegi kui see ei vasta kvaliteedinõuetele. Märgi see ruut, kui parooli keeruku Notes field Märkmete väli - - Toggle the checkbox to reveal the notes section. - Märkmete nägemiseks või muutmiseks märgi kõrvalolev ruut. - Username field Kasutajanime väli - - Toggle notes visible - Lülita märkmete nähtavust - - - Notes: - Märkmed: - Expiration field Aegumise väli @@ -2868,14 +2951,6 @@ isegi kui see ei vasta kvaliteedinõuetele. Märgi see ruut, kui parooli keeruku Presets Valmisseaded - - Password: - Parool: - - - URL: - URL: - Url field URL-i väli @@ -2884,18 +2959,10 @@ isegi kui see ei vasta kvaliteedinõuetele. Märgi see ruut, kui parooli keeruku Download favicon for URL Laadi alla saidiikoon selle URL-i jaoks - - Title: - Pealkiri: - Title field Pealkirja väli - - Username: - Kasutajanimi: - Password field Parooli väli @@ -2904,18 +2971,42 @@ isegi kui see ei vasta kvaliteedinõuetele. Märgi see ruut, kui parooli keeruku Toggle expiration Lülita aegumist - - Expires: - Aegub: - - - Tags: - Sildid: - Tags list Siltide loend + + &Username: + &Kasutajanimi: + + + &Title: + P&ealkiri: + + + &Password: + &Parool: + + + UR&L: + UR&L: + + + &Notes: + &Märkmed: + + + Toggle notes visibility + Lülita märkmete nähtavust + + + T&ags: + &Sildid: + + + &Expires: + &Aegub: + EditEntryWidgetSSHAgent @@ -2955,19 +3046,6 @@ isegi kui see ei vasta kvaliteedinõuetele. Märgi see ruut, kui parooli keeruku Private key Privaatvõti - - External file - Väline fail: - - - Browser for key file - Vali võtmefail - - - Browse… - Button for opening file dialog - Sirvi… - Attachment Kaasatud fail: @@ -2984,6 +3062,23 @@ isegi kui see ei vasta kvaliteedinõuetele. Märgi see ruut, kui parooli keeruku Remove from agent Eemalda agendilt + + External file + Väline fail: + + + Browser for key file + Vali võtmefail + + + Browse… + Button for opening file dialog + Sirvi… + + + Generate + Genereeri + Select attachment file Kaasatud faili valimine @@ -3019,10 +3114,6 @@ isegi kui see ei vasta kvaliteedinõuetele. Märgi see ruut, kui parooli keeruku Icon Ikoon - - Browser Integration - Brauserilõiming - Properties Omadused @@ -3039,6 +3130,10 @@ isegi kui see ei vasta kvaliteedinõuetele. Märgi see ruut, kui parooli keeruku Group has unsaved changes Kas salvestada grupile tehtud muudatused? + + Browser Integration + Brauserilõiming + Enable lubatud @@ -3054,10 +3149,6 @@ isegi kui see ei vasta kvaliteedinõuetele. Märgi see ruut, kui parooli keeruku EditGroupWidgetBrowser - - Edit Group - Grupi muutmine - These settings affect to the group's behaviour with the browser extension. Need seaded mõjutavad grupi käitumist brauserilaiendusega. @@ -3094,6 +3185,22 @@ isegi kui see ei vasta kvaliteedinõuetele. Märgi see ruut, kui parooli keeruku Do not use HTTP Auth toggle for this and sub groups Lülitab HTTP lihtautentimise keelamist selle grupi ja alamgruppide jaoks. + + Omit WWW subdomain from matching: + Vastendamisel eiratakse www-alamdomeeni: + + + Omit WWW subdomain from matching toggle for this and sub groups + Lülitab vastendamisel www-alamdomeeni eiramist selle grupi ja alamgruppide jaoks. + + + Restrict matching to given browser key: + Vastendamine lubatakse vaid ühe brauserivõtmega: + + + Restrict matching to given browser key toggle for this and sub groups + Lülitab vastendamise lubamist vaid ühe brauserivõtmega selle grupi ja alamgruppide jaoks. + EditGroupWidgetKeeShare @@ -3241,7 +3348,7 @@ Toetatud faililaiendid: %1 Auto-Type toggle for this and sub groups - Automaatsisestusfunktsiooni lülitamine selle grupi ja alamgruppide jaoks + Lülitab automaatsisestusfunktsiooni selle grupi ja alamgruppide jaoks. Notes: @@ -3265,7 +3372,7 @@ Toetatud faililaiendid: %1 Search toggle for this and sub groups - Otsingufunktsiooni lülitamine selle grupi ja alamgruppide jaoks + Lülitab otsingufunktsiooni selle grupi ja alamgruppide jaoks. @@ -3326,10 +3433,6 @@ Toetatud faililaiendid: %1 Unable to fetch favicon. Saidiikooni allalaadimine polnud võimalik. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Võid sisse lülitada DuckDuckGo veebisaidiikoonide teenuse, valides menüüst Tööriistad > Seaded > Turvalisus. - Existing icon selected. Valiti olemasolev ikoon. @@ -3362,6 +3465,10 @@ Toetatud faililaiendid: %1 The following icon(s) failed: Järgmise ikooni laadimine ebaõnnestus:Järgmiste ikoonide laadimine ebaõnnestus: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + KeePassXC seadete turvalisuse jaotises võid sisse lülitada DuckDuckGo veebisaidiikoonide teenuse. + EditWidgetProperties @@ -3690,7 +3797,7 @@ Viga: %1 Tags - Sildid: + Sildid @@ -3800,6 +3907,10 @@ Viga: %1 Has TOTP TOTP olemasolu + + Background Color + Taustavärv + EntryPreviewWidget @@ -3820,8 +3931,8 @@ Viga: %1 Parool: - Notes - Märkmed: + URL + URL: Expiration @@ -3840,8 +3951,8 @@ Viga: %1 Kasutajanimi: - URL - URL: + Notes + Märkmed: Advanced @@ -3891,6 +4002,10 @@ Viga: %1 Never mitte kunagi + + Double click to copy value + Väärtuse kopeerimiseks tee topeltklõps + Enabled lubatud @@ -3899,6 +4014,10 @@ Viga: %1 Disabled keelatud + + Double click to copy to clipboard + Lõikepuhvrisse kopeerimiseks tee topeltklõps + EntryURLModel @@ -3906,6 +4025,10 @@ Viga: %1 Invalid URL Sobimatu URL + + Duplicate URL + Duplitseeritud URL + EntryView @@ -3921,6 +4044,10 @@ Viga: %1 Reset to defaults Taasta vaikeväärtused + + + %1 entry(s)... + + %1 kirje...+ %1 kirjet... + ExportDialog @@ -3954,7 +4081,7 @@ See jätab su paroolid jm tundliku teabe kaitseta! unknown - teadmata + teadmata alusel Export database to HTML file @@ -4141,6 +4268,147 @@ You can enable the DuckDuckGo website icon service in the security section of th Saidiikoonide allalaadimine (%1/%2)… + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Andmebaasinõustaja + + + Entry count: %1 + + + + Group + Grupp: + + + Title + Pealkiri + + + Username + Kasutajanimi + + + Password + Parool: + + + Url + + + + + ImportWizardPageSelect + + Form + Vorm + + + Import File Selection + + + + Password: + Parool: + + + Key File: + Võtmefail: + + + Browse… + Sirvi… + + + Import Into: + + + + New Database + Uus andmebaas + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + OPVaulti avamine + + + Select import file + + + + All files + Kõik failid + + + Key files + Võtmefailid + + + Select key file + Võtmefaili valimine + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4575,17 +4843,6 @@ Rida %2, veerg %3 Privaatvõtme avamine ebaõnnestus. - - KeePass1OpenWidget - - Import KeePass1 Database - KeePass 1 andmebaasi importimine - - - Unable to open the database. - Andmebaasi avamine pole võimalik. - - KeePass1Reader @@ -4942,10 +5199,6 @@ Kas oled kindel, et soovid selle failiga jätkata? &Recent Databases Viimatised andme&baasid - - &Import - &Impordi - &Export &Ekspordi @@ -4966,6 +5219,10 @@ Kas oled kindel, et soovid selle failiga jätkata? TOTP &TOTP + + Tags + Sildid + &Groups &Grupid @@ -5010,34 +5267,18 @@ Kas oled kindel, et soovid selle failiga jätkata? &New Database… &Uus andmebaas… - - Create a new database - Loo uus andmebaas - &Merge From Database… &Mesti andmebaas… - - Merge from another KDBX database - Mesti mõne teise KDBX-andmebaasiga - &New Entry… &Uus kirje… - - Add a new entry - Lisa uus kirje - &Edit Entry… &Muuda kirjet… - - View or edit entry - Vaata või muuda kirjet - &Delete Entry… Kustuta kirj&e… @@ -5046,10 +5287,6 @@ Kas oled kindel, et soovid selle failiga jätkata? &New Group… &Uus grupp… - - Add a new group - Lisa uus grupp - &Edit Group… &Muuda gruppi… @@ -5082,18 +5319,10 @@ Kas oled kindel, et soovid selle failiga jätkata? Database &Reports… Andmebaasi a&ruanded… - - Statistics, health check, etc. - Statistika, tervisekontroll jm - &Database Settings… An&dmebaasi seaded… - - Database settings - Andmebaasi seaded - &Clone Entry… K&looni kirje… @@ -5102,34 +5331,18 @@ Kas oled kindel, et soovid selle failiga jätkata? Move u&p Lii&guta ülespoole - - Move entry one step up - Liiguta kirje sammu võrra ülespoole - Move do&wn Liiguta allap&oole - - Move entry one step down - Liiguta kirje sammu võrra allapoole - Copy &Username Kopeeri &kasutajanimi - - Copy username to clipboard - Kopeeri kasutajanimi lõikepuhvrisse - Copy &Password Kopeeri &parool - - Copy password to clipboard - Kopeeri parool lõikepuhvrisse - &Settings &Seaded @@ -5163,25 +5376,13 @@ Kas oled kindel, et soovid selle failiga jätkata? &Pealkiri - Copy title to clipboard - Kopeeri pealkiri lõikepuhvrisse - - - &URL - &URL - - - Copy URL to clipboard - Kopeeri URL lõikepuhvrisse + Copy &URL + K&opeeri URL &Notes &Märkmed - - Copy notes to clipboard - Kopeeri märkmed lõikepuhvrisse - &CSV File… &CSV-failiks… @@ -5194,33 +5395,21 @@ Kas oled kindel, et soovid selle failiga jätkata? KeePass 1 Database… KeePass 1 andmebaas… - - Import a KeePass 1 database - Impordi KeePass 1 andmebaas - 1Password Vault… 1Passwordi turvalaegas… - - Import a 1Password Vault - Impordi 1Passwordi turvalaegas - CSV File… CSV-fail… - - Import a CSV file - Impordi CSV-fail - Show TOTP Kuva TOTP Show QR Code - Kuva QR-kood + Kuva ruutkood Set up TOTP… @@ -5230,6 +5419,10 @@ Kas oled kindel, et soovid selle failiga jätkata? Copy &TOTP Kopeeri &TOTP + + Copy Password and TOTP + Kopeeri parool ja TOTP + E&mpty recycle bin &Tühjenda prügikast @@ -5254,10 +5447,6 @@ Kas oled kindel, et soovid selle failiga jätkata? &Online Help Abi &võrgus - - Go to online documentation - Ava dokumentatsioon võrgus - &User Guide Käsi&raamat… @@ -5326,6 +5515,10 @@ Kas oled kindel, et soovid selle failiga jätkata? Clone Group... K&looni grupp… + + &XML File… + &XML-failiks… + Clear history Puhasta ajalugu @@ -5359,6 +5552,10 @@ We recommend you use the AppImage available on our downloads page. HOIATUS: sinu Qt versioon võib põhjustada KeePassXC kokkujooksmist ekraaniklaviatuuri kasutamisel. Võiksid kaaluda KeePassXC allalaadimislehel oleva AppImage’i kasutamist. + + No Tags + Silte pole + Restore Entry(s) Taasta kirjeTaasta kirjed @@ -5387,6 +5584,10 @@ Võiksid kaaluda KeePassXC allalaadimislehel oleva AppImage’i kasutamist.Quit KeePassXC Välju KeePassXC-st + + %1 Entry(s) + %1 kirje%1 kirjet + Please present or touch your YubiKey to continue… Jätkamiseks viipa või puuduta oma YubiKey’d… @@ -5399,6 +5600,274 @@ Võiksid kaaluda KeePassXC allalaadimislehel oleva AppImage’i kasutamist.You must restart the application to apply this setting. Would you like to restart now? Selle muudatuse rakendamiseks tuleb KeePassXC uuesti käivitada. Kas teha seda kohe? + + Allow Screen Capture + Akna pildistamise lubamine + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Pääsuvõtmed... + + + Import Passkey + Impordi pääsuvõti + + + Quit Application + Välju rakendusest + + + Open About Dialog + Ava rakenduse teabedialoog + + + Open Database + Ava andmebaas + + + Create Database + Loo andmebaas + + + Merge From Database + Mesti andmebaas + + + Create Entry + Loo kirje + + + Edit Entry + Muuda kirjet + + + Delete Entry + Kustuta kirje + + + Create Group + Loo grupp + + + Edit Group + Muuda gruppi + + + Delete Group + Kustuta grupp + + + Download All Favicons + Laadi alla kõigi saitide ikoonid + + + Sort Groups A-Z + Sordi grupid A-st Y-ni + + + Sort Groups Z-A + Sordi grupid Y-st A-ni + + + Save Database As + Salvesta andmebaas kui + + + Show Database Security + Kuva andmebaasi turvalisus + + + Show Database Reports + Kuva andmebaasi aruanded + + + Show Database Settings + Kuva andmebaasi seaded + + + Show Passkeys + Kuva pääsuvõtmed + + + Clone Entry + Klooni kirje + + + Move Entry Up + Liiguta kirje ülespoole + + + Move Entry Down + Liiguta kirje allapoole + + + Copy Username + Kopeeri kasutajanimi + + + Copy Password + Kopeeri parool + + + Show Application Settings + Kuva rakenduse seaded + + + Show Password Generator + Kuva parooligeneraator + + + Perform Auto-Type: {USERNAME} + Soorita automaatsisestus: {USERNAME} + + + Perform Auto-Type: {USERNAME}{ENTER} + Soorita automaatsisestus: {USERNAME}{ENTER} + + + Perform Auto-Type: {PASSWORD} + Soorita automaatsisestus: {PASSWORD} + + + Perform Auto-Type: {PASSWORD}{ENTER} + Soorita automaatsisestus: {PASSWORD}{ENTER} + + + Perform Auto-Type: {TOTP} + Soorita automaatsisestus: {TOTP} + + + Copy Title + Kopeeri pealkiri + + + Copy URL + Kopeeri URL + + + Copy Notes + Kopeeri märkmed + + + Export to CSV + Ekspordi CSV-failiks + + + Export to HTML + Ekspordi HTML-failiks + + + Import KeePass1 Database + Impordi KeePass 1 andmebaas + + + Import 1Password Vault + Impordi 1Passwordi turvalaegas + + + Import CSV File + Impordi CSV-fail + + + Show TOTP QR Code + Kuva TOTP ruutkood + + + Set up TOTP + Seadista TOTP + + + Empty Recycle Bin + Tühjenda prügikast + + + Open Donation Website + Ava annetusveebileht + + + Open Bug Report + Teata veast + + + Open Online Documentation + Ava dokumentatsioon võrgus + + + Open Keyboard Shortcuts Guide + Ava kiirklahvide juhis + + + Save Database Backup + Salvesta andmebaasi varukoopia + + + SSH Agent: Add Key + SSH agent: lisa võti + + + SSH Agent: Remove Key + SSH agent: eemalda võti + + + Toggle Compact Mode + Lülita kompaktset režiimi + + + Set Theme: Automatic + Rakenda kujundus: automaatne + + + Set Theme: Light + Rakenda kujundus: hele + + + Set Theme: Dark + Rakenda kujundus: tume + + + Set Theme: Classic + Rakenda kujundus: klassikaline + + + Toggle Show Toolbar + Lülita tööriistariba nähtavust + + + Toggle Show Preview Panel + Lülita eelvaatluse paneeli nähtavust + + + Toggle Always on Top + Lülita alati pealmisena hoidmist + + + Toggle Hide Usernames + Lülita kasutajanimede varjamist + + + Toggle Hide Passwords + Lülita paroolide varjamist + + + Export to XML + Ekspordi XML-failiks + + + Toggle Allow Screen Capture + Lülita akna pildistamise lubamist + ManageDatabase @@ -5456,26 +5925,6 @@ Võiksid kaaluda KeePassXC allalaadimislehel oleva AppImage’i kasutamist.Overwriting %1 [%2] Kirje „%1†[%2] ülekirjutamine - - older entry merged from database "%1" - andmebaasist „%1†mestitud vanem kirje - - - Adding backup for older target %1 [%2] - Vanemale sihtmärgile „%1†[%2] varukoopia lisamine - - - Adding backup for older source %1 [%2] - Vanemale allikale „%1†[%2] varukoopia lisamine - - - Reapplying older target entry on top of newer source %1 [%2] - Uuema lähtekirje „%1†[%2] peale vanema sihtkirje taasrakendamine - - - Reapplying older source entry on top of newer target %1 [%2] - Uuema sihtkirje „%1†[%2] peale vanema lähtekirje taasrakendamine - Synchronizing from newer source %1 [%2] Sünkroonimine uuema allikaga „%1†[%2] @@ -5535,14 +5984,6 @@ Võiksid kaaluda KeePassXC allalaadimislehel oleva AppImage’i kasutamist.Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Siin saab määrata andmebaasi krüptimisseaded. Hiljem saab neid muuta andmebaasi seadetes. - - Advanced Settings - Täpsemad seaded - - - Simple Settings - Lihtsad seaded - NewDatabaseWizardPageDatabaseKey @@ -5623,15 +6064,6 @@ Võiksid kaaluda KeePassXC allalaadimislehel oleva AppImage’i kasutamist.oodati %1 baiti lihtteksti, aga leiti %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Andmebaasi lugemine ei loonud protsessi -%1 - - OpVaultReader @@ -5705,6 +6137,10 @@ Võiksid kaaluda KeePassXC allalaadimislehel oleva AppImage’i kasutamist.Unknown cipher: %1 Tundmatu Å¡iffer: %1 + + AES-256/GCM is currently not supported + AES-256/GCM-i praegu ei toetata + Passphrase is required to decrypt this key Selle võtme lahtikrüptimiseks on vaja paroolifraasi @@ -5771,26 +6207,177 @@ Võiksid kaaluda KeePassXC allalaadimislehel oleva AppImage’i kasutamist. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Paroolid ei kattu + SSH Key Generator + SSH-võtmegeneraator - Passwords match so far - Paroolid kattuvad + Type + Tüüp: - Toggle Password (%1) - Lülita parooli nähtavust (%1) + Bits + Bittide arv: - Generate Password (%1) - Genereeri parool (%1) + Comment + Kommentaar: + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + Pääsuvõtme eksportimine – KeePassXC - Warning: Caps Lock enabled! - Hoiatus: suurtähelukk on sisse lülitatud! + Export the following Passkey entries. + Eksportimisel on järgnevad pääsuvõtmekirjed. + + + Filenames will be generated with title and .passkey file extension. + Failinimed luuakse pealkirja järgi ja faililaiendiga „.passkeyâ€. + + + Export entries + Ekspordi valitud kirjed + + + Export Selected + Ekspordi valitud + + + Cancel + Loobu + + + Export to folder + Eksportimiskaust + + + + PasskeyExporter + + KeePassXC: Passkey Export + Pääsuvõtme eksportimine – KeePassXC + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + Fail „%1.passkey†on juba olemas. +Kas soovid selle üle kirjutada? + + + Cannot open file + Faili pole võimalik avada + + + Cannot open file "%1" for writing. + Faili „%1†pole võimalik kirjutamiseks avada. + + + Cannot write to file + Faili pole võimalik kirjutada + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + Pääsuvõtme importimine – KeePassXC + + + Username: %1 + Kasutajanimi: %1 + + + Group + Grupp: + + + Database + Andmebaas: + + + Import Passkey + Impordi pääsuvõti + + + Import + Impordi + + + Cancel + Loobu + + + Import the following Passkey: + Importimisel on järgnev pääsuvõti: + + + Entry + Kirje: + + + Import the following Passkey to this entry: + Importimisel on järgnev pääsuvõti sellesse kirjesse: + + + Create new entry + Luuakse uus kirje + + + Default Passkeys group (Imported Passkeys) + Vaikimisi pääsuvõtmete grupp („Imporditud pääsuvõtmedâ€) + + + Relying Party: %1 + Sõltlane: %1 + + + + PasskeyImporter + + Passkey file + Pääsuvõtmefailid + + + All files + Kõik failid + + + Open Passkey file + Pääsuvõtmefaili avamine + + + Cannot open file + Faili avamine pole võimalik + + + Cannot open file "%1" for reading. + Faili „%1†lugemiseks avamine pole võimalik. + + + Cannot import Passkey + Pääsuvõtme importimine pole võimalik + + + Cannot import Passkey file "%1". Data is missing. + Pääsuvõtmefaili „%1†importimine pole võimalik. Andmed on puudu. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + Pääsuvõtmefaili „%1†importimine pole võimalik. Privaatvõti on puudu või vigane. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + Pääsuvõtmefaili „%1†importimine pole võimalik. +Järgmised andmed on puudu: +%2 @@ -6017,7 +6604,7 @@ Võiksid kaaluda KeePassXC allalaadimislehel oleva AppImage’i kasutamist. character - märki + märk Close @@ -6055,6 +6642,30 @@ Võiksid kaaluda KeePassXC allalaadimislehel oleva AppImage’i kasutamist.Entropy: %1 bit Entroopia: %1 bitti + + Password Quality: %1 + Parooli kvaliteet: %1 + + + Poor + Password quality + kehv + + + Weak + Password quality + nõrk + + + Good + Password quality + hea + + + Excellent + Password quality + suurepärane + Confirm Delete Wordlist Sõnaloendi kustutamise kinnitus @@ -6101,9 +6712,32 @@ Kas soovid selle üle kirjutada? Special Characters Erimärgid + + + PasswordWidget - Password Quality: %1 - Parooli kvaliteet: %1 + Passwords do not match + Paroolid ei kattu + + + Passwords match so far + Paroolid kattuvad + + + Toggle Password (%1) + Lülita parooli nähtavust (%1) + + + Generate Password (%1) + Genereeri parool (%1) + + + Warning: Caps Lock enabled! + Hoiatus: suurtähelukk on sisse lülitatud! + + + Quality: %1 + Kvaliteet: %1 Poor @@ -6125,6 +6759,10 @@ Kas soovid selle üle kirjutada? Password quality suurepärane + + Toggle password visibility using Control + H. Open the password generator using Control + G. + Parooli nähtavust lülitab Control + H, parooligeneraatori avab Control + G. + PickcharsDialog @@ -6134,11 +6772,11 @@ Kas soovid selle üle kirjutada? Select characters to type, navigate with arrow keys, Ctrl + S submits. - Vali sisestatavad märgid. Liikuda saab nooleklahvidega, Ctrl+S sisestab. + Vali vajalikud märgid. Liikuda saab nooleklahvidega, Ctrl+S sisestab. Press &Tab between characters - Märkide vahele sisestatakse &Tab + Märkide vahel „vajutatakse†&tabeldusklahvi @@ -6179,6 +6817,10 @@ Kas soovid selle üle kirjutada? Continue &Jätka + + Continue with weak password + Jätka nõrga parooliga + QObject @@ -6572,6 +7214,10 @@ Kas soovid selle üle kirjutada? Too many arguments provided. Anti liiga palju argumente. + + Path of the database. + Andmebaasi asukoht. + Target decryption time in MS for the database. Andmebaasi soovitav lahtikrüptimisaeg millisekundites. @@ -6580,6 +7226,12 @@ Kas soovid selle üle kirjutada? time aeg + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Andmebaasile võtmefaili määramine. +See argument on iganenud, kasuta parem "--set-key-file". + Set the key file for the database. Andmebaasile võtmefaili määramine. @@ -6592,10 +7244,6 @@ Kas soovid selle üle kirjutada? Create a new database. Uue andmebaasi loomine. - - Path of the database. - Andmebaasi asukoht. - Invalid decryption time %1. Sobimatu lahtikrüptimise aeg %1 @@ -6618,15 +7266,15 @@ Kas soovid selle üle kirjutada? Benchmarking key derivation function for %1ms delay. - + Võtmetuletusfunktsiooni võrdlustesti läbiviimine %1 ms viivitusega. Setting %1 rounds for key derivation function. - + Võtmetuletusfunktsioonile määrati %1 teisendusraundi. error while setting database key derivation settings. - + viga andmebaasi võtmetuletusseadete määramisel. File %1 already exists. @@ -6640,6 +7288,158 @@ Kas soovid selle üle kirjutada? Successfully created new database. Uus andmebaas edukalt loodud. + + Unset the password for the database. + Andmebaasi parooli eemaldamine. + + + Unset the key file for the database. + Andmebaasi võtmefaili eemaldamine. + + + Edit a database. + Andmebaasi muutmine. + + + Cannot use %1 and %2 at the same time. + Argumente "%1" ja "%2" ei saa korraga kasutada. + + + Could not change the database key. + Andmebaasi võtme muutmine pole võimalik. + + + Database was not modified. + Andmebaasi ei muudetud. + + + Writing the database failed: %1 + Andmebaasi kirjutamine ebaõnnestus: %1 + + + Successfully edited the database. + Andmebaas edukalt muudetud. + + + Cannot remove password: The database does not have a password. + Parooli pole võimalik eemaldada, kuna andmebaasile pole parooli määratud. + + + Cannot remove file key: The database does not have a file key. + Võtmefaili pole võimalik eemaldada, kuna andmebaasile pole võtmefaili määratud. + + + Loading the new key file failed: %1 + Uue võtmefaili laadimine ebaõnnestus: %1 + + + Found unexpected Key type %1 + Leiti ootamatu võtmetüüp: %1 + + + Cannot remove all the keys from a database. + Andmebaasi kõiki võtmeid pole võimalik eemaldada. + + + Show a database's information. + Andmebaasi teabe näitamine. + + + UUID: + UUID: + + + Name: + Nimi: + + + Description: + Kirjeldus: + + + Cipher: + Å iffer: + + + KDF: + KDF: + + + Recycle bin is enabled. + Prügikast on lubatud + + + Recycle bin is not enabled. + Prügikast on keelatud. + + + Location + Asukoht + + + Database created + Andmebaas loodud + + + Last saved + Viimati salvestatud + + + Unsaved changes + Salvestamata muudatusi + + + yes + on + + + no + pole + + + Number of groups + Gruppide arv + + + Number of entries + Kirjete arv + + + Number of expired entries + Aegunud kirjete arv + + + Unique passwords + Unikaalsete paroolide arv + + + Non-unique passwords + Korduvate paroolide arv + + + Maximum password reuse + Sagedasima parooli kasutuskordade arv + + + Number of short passwords + Lühikeste paroolide arv + + + Number of weak passwords + Nõrkade paroolide arv + + + Entries excluded from reports + Aruannetest väljajäetavate kirjete arv + + + Average password length + Paroolide keskmine pikkus + + + %1 characters + %1 märki + Word count for the diceware passphrase. Sõnade arv Diceware'i paroolifraasis. @@ -6691,10 +7491,6 @@ Kas soovid selle üle kirjutada? Enter new password for entry: Sisesta kirje uus parool: - - Writing the database failed: %1 - Andmebaasi kirjutamine ebaõnnestus: %1 - Successfully edited entry %1. Kirje "%1" edukalt muudetud. @@ -6919,106 +7715,6 @@ Kas soovid selle üle kirjutada? Successfully imported database. Andmebaas edukalt imporditud. - - Show a database's information. - Andmebaasi teabe näitamine. - - - UUID: - UUID: - - - Name: - Nimi: - - - Description: - Kirjeldus: - - - Cipher: - Å iffer: - - - KDF: - KDF: - - - Recycle bin is enabled. - Prügikast on lubatud - - - Recycle bin is not enabled. - Prügikast on keelatud. - - - Location - Asukoht - - - Database created - Andmebaas loodud - - - Last saved - Viimati salvestatud - - - Unsaved changes - Salvestamata muudatusi - - - yes - on - - - no - pole - - - Number of groups - Gruppide arv - - - Number of entries - Kirjete arv - - - Number of expired entries - Aegunud kirjete arv - - - Unique passwords - Unikaalsete paroolide arv - - - Non-unique passwords - Korduvate paroolide arv - - - Maximum password reuse - Sagedasima parooli kasutuskordade arv - - - Number of short passwords - Lühikeste paroolide arv - - - Number of weak passwords - Nõrkade paroolide arv - - - Entries excluded from reports - Aruannetest väljajäetavate kirjete arv - - - Average password length - Paroolide keskmine pikkus - - - %1 characters - %1 märki - Unknown command %1 Tundmatu käsk %1 @@ -7191,6 +7887,10 @@ Võimalikud käsud: Show the protected attributes in clear text. Kaitstud atribuutide näitamine tavatekstina. + + Show all the attributes of the entry. + Kirje kõigi atribuutide näitamine. + Show the attachments of the entry. Kirjesse kaasatud faili näitamine. @@ -7261,6 +7961,10 @@ Palun genereeri selle asemele uus võtmefail. Invalid YubiKey serial %1 Sobimatu YubiKey seerianumber %1 + + Please present or touch your YubiKey to continue. + Jätkamiseks viipa või puuduta oma YubiKey’d. + Enter password to encrypt database (optional): Sisesta parool andmebaasi krüptimiseks (pole kohustuslik): @@ -7448,8 +8152,8 @@ Kernel: %3 %4 %1 minut%1 minutit - Botan library must be at least 2.11.x, found %1.%2.%3 - Botan'i teek peab olema 2.11.x või uuem, leiti aga %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + Botan'i teek peab olema %1 või uuem, leiti aga %2.%3.%4 Cryptographic libraries: @@ -7689,10 +8393,6 @@ Kernel: %3 %4 read password of the database from stdin Andmebaasi parooli lugemine standardsisendist (stdin). - - allow app screen recordering and screenshots - Rakendusest ekraanipiltide ja -videote tegemise lubamine. - Locked databases. Andmebaasid lukustatud. @@ -7705,6 +8405,10 @@ Kernel: %3 %4 Another instance of KeePassXC is already running. Teine KeePassXC protsess juba töötab. + + KeePassXC is not running. No open database to lock + KeePassXC ei tööta, seega pole ühtki avatud andmebaasi, mida lukustada. + Fatal error while testing the cryptographic functions. Parandamatu tõrge krüptograafiafunktsioonide testimisel. @@ -7713,10 +8417,6 @@ Kernel: %3 %4 KeePassXC - Error Viga – KeePassXC - - Warning: Failed to prevent screenshots on a top level window! - Hoiatus: ülemise taseme aknast ekraanipiltide tegemise ennetamine ebaõnnestus! - Database password: Andmebaasi parool: @@ -7740,7 +8440,221 @@ Kernel: %3 %4 Windows Hello abil pretensiooni allkirjastamine ebaõnnestus. - Please present or touch your YubiKey to continue. + Warning: Failed to block screenshot capture on a top-level window. + Hoiatus: ülemise taseme aknast ekraanipiltide tegemise blokeerimine ebaõnnestus! + + + Invalid Cipher + Sobimatu Å¡iffer + + + Invalid KDF + Sobimatu KDF + + + Access to all entries is denied + Juurdepääs kõigile kirjetele on keelatud + + + allow screenshots and app recording (Windows/macOS) + Rakendusest ekraanipiltide ja -videote tegemise lubamine (Windowsis/macOS-is). + + + Enter Shortcut + Sisesta kiirklahv: + + + Action + Toiming + + + Shortcuts + Kiirklahvid + + + Attestation not supported + Atesteerimist ei toetata + + + Credential is excluded + Tunnus on välistatud + + + Passkeys request canceled + Pääsuvõtmetaotlus tühistati + + + Invalid user verification + Sobimatu kasutaja verifitseerimine + + + Empty public key + Tühi avalik võti + + + Invalid URL provided + Anti sobimatu URL + + + Passkeys + Pääsuvõtmed + + + AES initialization failed + AES-i initsialiseerimine ebaõnnestus + + + AES encrypt failed + AES-i krüptimine ebaõnnestus + + + Failed to store in Linux Keyring + Salvestamine Linuxi võtmerõngasse ebaõnnestus + + + Polkit returned an error: %1 + Polkit andis veateate: %1 + + + Could not locate key in keyring + Võtmerõngast ei leitud võtit + + + Could not read key in keyring + Võtmerõngast polnud võimalik võtit lugeda + + + AES decrypt failed + AES-i lahtikrüptimine ebaõnnestus + + + No Polkit authentication agent was available + Ühtegi Polkiti autentimisagenti polnud saadaval. + + + Polkit authorization failed + Polkiti autentimine ebaõnnestus + + + No Quick Unlock provider is available + Ühtegi kiiresti luku avamise teenust pole saadaval. + + + Failed to init KeePassXC crypto. + KeePassXC krüptograafia initsialiseerimine ebaõnnestus. + + + Failed to encrypt key data. + Võtme andmete krüptimine ebaõnnestus. + + + Failed to get Windows Hello credential. + Windows Hello tunnuse hankimine ebaõnnestus. + + + Failed to decrypt key data. + Võtme andmete lahtikrüptimine ebaõnnestus. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7780,18 +8694,6 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - Aegunud kirjed jäetakse aruandest välja - - - Show only entries which have URL set - Näidatakse ainult kirjeid, millel on URL määratud - - - Show only entries which have browser settings in custom data - Näidatakse ainult kirjeid, millel on kohandatud andmetes brauseri seadistusi - Double-click entries to edit. Kirje muutmiseks tee sellel topeltklõps. @@ -7856,17 +8758,25 @@ Kernel: %3 %4 Exclude from reports Jäetakse aruannetest välja + + Only show entries that have a URL + Näidatakse ainult kirjeid, millel on URL määratud + + + Only show entries that have been explicitly allowed or denied + Näidatakse ainult kirjeid, millel on lubatud või keelatud URL + + + Show expired entries + Näidatakse ka aegunud kirjeid + + + (Expired) + (aegunud) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - Aegunud kirjed jäetakse aruandest välja - - - Also show entries that have been excluded from reports - Kuvatakse ka muidu aruannetest välja jäetavad kirjed - Hover over reason to show additional details. Double-click entries to edit. Põhjuse kohta täpsema teabe saamiseks hoia hiirekursorit selle kohal. Kirje muutmiseks tee topeltklõps. @@ -7942,6 +8852,18 @@ Kernel: %3 %4 Exclude from reports Jäetakse aruannetest välja + + Show expired entries + Näidatakse ka aegunud kirjeid + + + Show entries that have been excluded from reports + Näidatakse ka muidu aruannetest välja jäetavaid kirjeid + + + (Expired) + (aegunud) + ReportsWidgetHibp @@ -7955,7 +8877,7 @@ Kernel: %3 %4 Also show entries that have been excluded from reports - Kuvatakse ka muidu aruannetest välja jäetavad kirjed + Näidatakse ka muidu aruannetest välja jäetavaid kirjeid This build of KeePassXC does not have network functions. Networking is required to check your passwords against Have I Been Pwned databases. @@ -8038,6 +8960,65 @@ Kernel: %3 %4 Jäetakse aruannetest välja + + ReportsWidgetPasskeys + + Export + Ekspordi + + + Import + Impordi + + + List of entry URLs + Kirje URL-ide loend + + + Please wait, list of entries with Passkeys is being updated… + Palun oota, pääsuvõtmega kirjete nimekirja uuendatakse… + + + No entries with Passkeys. + Ühtegi pääsuvõtmega kirjet pole. + + + Title + Pealkiri + + + Path + Asukoht + + + Username + Kasutajanimi + + + URLs + URL-id + + + Edit Entry… + Muuda kirjet… + + + Delete Entry(s)… + Kustuta kirje…Kustuta kirjed… + + + Relying Party + Sõltlane + + + Show expired entries + Näidatakse ka aegunud kirjeid + + + (Expired) + (aegunud) + + ReportsWidgetStatistics @@ -8277,6 +9258,10 @@ Kernel: %3 %4 Search Help Otsinguabi + + Save Search + Salvesta otsing + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8345,7 +9330,7 @@ Kernel: %3 %4 <html><head/><body><p>If enabled, any attempt to read a password must be confirmed. Otherwise, clients can read passwords without confirmation when the database is unlocked.</p><p>This option only covers the access to the password of an entry. Clients can always enumerate the items of exposed databases and query their attributes.</p></body></html> - + <html><head/><body><p>Märkimisel küsitakse paroolide lugemiseks alati luba. Muul juhul pääsevad kliendid paroolidele ilma kinnituseta ligi, eeldusel, et andmebaasi lukk on avatud.</p><p>See valik puudutab üksnes ligipääsu kirjete parooliväljale ja ei piira klientide ligipääsu neile nähtavaks tehtud andmebaasides kirjete loendamiseks või kirjete muude atribuutide uurimiseks.</p></body></html> Confirm when passwords are retrieved by clients @@ -8357,7 +9342,11 @@ Kernel: %3 %4 Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">This setting does not override disabling recycle bin prompts</span></p></body></html> - + <html><head/><body><p><span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">Selle ruudu märkimisel + pole mõju, kui prügikasti viskamisel kinnituse küsimine on välja lülitatud</span></p></body></html> + Confirm when clients request entry deletion @@ -8369,7 +9358,11 @@ Kernel: %3 %4 crash the client if the database can not be unlocked within a certain timeout. (Usually 25s, but may be a different value set in applications.)</p></body></html> - + <html><head/><body><p>Märkimine parandab ühilduvust teatud rakendustega, + mis otsivad parooli ilma esmalt andmebaasi lukku avamata.</p><p>Samas võib see + põhjustada kliendi kokkujooksmise, kui andmebaasi lukku piisavalt kiiresti ei avata. + (Tavaline ajalimiit on 25 s, aga see võib eri rakenduste puhul erineda.)</p></body></html> + Prompt to unlock database before searching @@ -8462,7 +9455,7 @@ Kernel: %3 %4 ShareImport Successful import - Importimine oli edukas + Importimine õnnestus @@ -8473,7 +9466,7 @@ Kernel: %3 %4 Import from %1 successful (%2) - Importimine asukohast %1 kenasti lõpetatud (%2) + Importimine asukohast „%1†kenasti lõpetatud (%2) Imported from %1 @@ -8481,11 +9474,11 @@ Kernel: %3 %4 Multiple import source path to %1 in %2 - + importimise lähtekoht „%1†on määratud mitmes grupis: %2 Conflicting export target path %1 in %2 - + eksportimise sihtkoht „%1†on määratud mitmes grupis: %2 Export to %1 failed (%2) @@ -8500,11 +9493,38 @@ Kernel: %3 %4 Eksportimine asukohta „%1†+ + ShortcutSettingsWidget + + Double click an action to change its shortcut + Kiirklahvi muutmiseks tee vastaval real topeltklõps. + + + Shortcut Conflict + Kiirklahvide konflikt + + + Filter... + Filter + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + Kiirklahviga %1 on juba seotud toiming „%2â€. Kas soovid selle üle kirjutada? + + + Reset Shortcuts + Lähtesta kiirklahvid + + TagModel - All - Kõik + Clear Search + Puhasta otsing + + + All Entries + Kõik kirjed Expired @@ -8515,6 +9535,25 @@ Kernel: %3 %4 Nõrgad paroolid + + TagView + + Remove Search + Eemalda otsing + + + Remove Tag + Eemalda silt + + + Confirm Remove Tag + Sildi eemaldamise kinnitus + + + Remove tag "%1" from all entries in this database? + Kas oled kindel, et tahad sildi „%1†kõigilt selle andmebaasi kirjetelt eemaldada? + + TotpDialog @@ -8543,7 +9582,7 @@ Kernel: %3 %4 There was an error creating the QR code. - QR-koodi loomisel ilmnes tõrge. + Ruutkoodi loomisel ilmnes tõrge. Closing in %1 seconds. @@ -8672,26 +9711,6 @@ Näide: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Hakka oma paroole turvaliselt KeePassXC andmebaasis hoidma - - Create new database - Loo uus andmebaas - - - Open existing database - Ava olemasolev andmebaas - - - Import from KeePass 1 - Impordi KeePass 1-st - - - Import from 1Password - Impordi 1Passwordist - - - Import from CSV - Impordi CSV-failist - Recent databases Viimatised andmebaasid @@ -8704,6 +9723,18 @@ Näide: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Tere tulemast KeePassXC %1 kasutama! + + Create Database + Loo andmebaas + + + Open Database + Ava andmebaas + + + Import File + + WinUtils @@ -8720,31 +9751,8 @@ Näide: JBSWY3DPEHPK3PXP Globaalse kiirklahvi registreerimine polnud võimalik - - WindowsHello - - Failed to init KeePassXC crypto. - KeePassXC krüptograafia initsialiseerimine ebaõnnestus. - - - Failed to encrypt key data. - Võtme andmete krüptimine ebaõnnestus. - - - Failed to get Windows Hello credential. - Windows Hello tunnuse hankimine ebaõnnestus. - - - Failed to decrypt key data. - Võtme andmete lahtikrüptimine ebaõnnestus. - - YubiKey - - %1 No interface, slot %2 - %1: liidest pole, pesa %2 - General: Üldine: @@ -8756,14 +9764,6 @@ Näide: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - Värskenda riistvaraliste võtmete loendit - - - Refresh - Värskenda - Hardware key slot selection Riistvaralise võtme pesa valimine @@ -8796,10 +9796,6 @@ Näide: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove Pretensioon-vastus on määratud, muutmiseks või eemaldamiseks klõpsa vastavat nuppu. - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>Kui sul on <a href="https://www.yubico.com/">YubiKey</a> või <a href="https://onlykey.io">OnlyKey</a> turvavõti, võid lisaturvalisuse nimel seda kasutada.</p><p>Võtme ühe pesa peab programmeerima <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 pretensiooni ja vastusena</a>.</p> - Detecting hardware keys… riistvaraliste võtmete tuvastamine… @@ -8808,28 +9804,21 @@ Näide: JBSWY3DPEHPK3PXP No hardware keys detected riistvaralisi võtmeid ei tuvastatud - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1: määrati sobimatu pesa – %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + <p>Kui sul on olemas <a href="https://www.yubico.com/">YubiKey</a> või <a href="https://onlykey.io">OnlyKey</a> turvavõti, võid lisaturvalisuse nimel neid kasutada.</p><p>Võtme ühe pesa pead programmeerima <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 pretensiooni ja vastusena</a>.</p> + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] pretensioon-vastus – pesa %3 - The YubiKey PCSC interface has not been initialized. YubiKey PCSC-liides pole initsialiseeritud. - - Hardware key is currently in use. - Riistvaraline võti on hetkel kasutuses. - Could not find or access hardware key with serial number %1. Please present it to continue. Riistvaralist võtit seerianumbriga %1 kas ei leitud või ei pääsetud sellele juurde. Jätkamiseks viipa võtit. @@ -8846,6 +9835,21 @@ Näide: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 Pretensiooni-vastuse lõpetamine ebaõnnestus. PCSC veakood: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + ootab vajutust + + + Passive + USB Challenge-Response Key no interaction required + passiivne + YubiKeyInterfaceUSB @@ -8853,14 +9857,6 @@ Näide: JBSWY3DPEHPK3PXP Unknown teadmata - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] seadistatud – pesa %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] pretensioon-vastus – pesa %3 – %4 - Press USB Challenge-Response Key interaction request @@ -8875,10 +9871,6 @@ Näide: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. YubiKey USB-liides pole initsialiseeritud. - - Hardware key is currently in use. - Riistvaraline võti on hetkel kasutuses. - Could not find hardware key with serial number %1. Please plug it in to continue. Riistvaralist võtit seerianumbriga %1 ei leitud. Jätkamiseks tuleb see arvutiga ühendada. @@ -8895,5 +9887,15 @@ Näide: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 Pretensiooni-vastuse lõpetamine ebaõnnestus. Konkreetne viga: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_fi.ts b/share/translations/keepassxc_fi.ts index 181d32044..659d51348 100644 --- a/share/translations/keepassxc_fi.ts +++ b/share/translations/keepassxc_fi.ts @@ -80,6 +80,10 @@ Details Yksityiskohdat + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Valintasi muistetaan pyynnön esittäneen päätteen JA KeePassXC käyntiajan. + Remember Muista @@ -88,17 +92,13 @@ Allow Selected Salli valitut - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - - Deny All && Future - + Estä kaikki && tulevat Allow All && &Future - + Salli kaikki && &tulevat @@ -122,6 +122,10 @@ Use OpenSSH Käytä OpenSSH:ta + + Use both agents + Käytä molempia agentteja + SSH_AUTH_SOCK override SSH_AUTH_SOCK-ylikirjoitus @@ -150,10 +154,6 @@ SSH Agent connection is working! SSH Agent -yhteys toimii! - - Use both agents - - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security Turvallisuus + + This setting cannot be enabled when minimize on unlock is enabled. + Tätä asetusta ei voi ottaa käyttöön, kun ohjelman pienennys lukituksen avauksen jälkeen on otettu käyttöön. + Access error for config file %1 Pääsyvirhe asetustiedostoon %1 @@ -256,6 +260,10 @@ Remember previously used databases Muista aiemmin käytetyt tietokannat + + recent files + viimeisimmät tiedostot + Load previously open databases on startup Lataa aiemmin avoinna olleet tietokannat käynnistyksen yhteydessä @@ -408,6 +416,10 @@ Toolbar button style: Työkalupalkin nappien tyyli: + + Show passwords in color + Näytä salasanat värillisinä + Use monospaced font for notes Käytä tasalevyistä fonttia muistiinpanoille @@ -536,7 +548,7 @@ Enable database quick unlock (Touch ID / Windows Hello) - Määritä tietokannan nopea lukituksen avaus (Touch ID / Windows Hello) + Määritä tietokannan Pika-avaus (Touch ID / Windows Hello) Lock databases when session is locked or lid is closed @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons Käytä DuckDuckGo:ta sivustojen ikonien lataukseen + + Hide TOTP in the entry preview panel + Piilota TOTP merkinnän esikatselupaneelista + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 Erittäin pitkä viive havaittu, maksimi on %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + Merkintä ei sisällä attribuuttia PICKCHARS: %1 + Invalid conversion type: %1 Virheellinen muunnoksen tyyppi: %1 @@ -718,9 +738,9 @@ Ctrl+1 - Type username<br/> Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> - <p>Voit käyttää haun lisäasetuksia löytääksesi tietueita avoimesta tietokannasta. Seuraavat pikanäppäimet ovat hyödyllisiä:<br/> + <p>Voit etsiä minkä tahansa tietueen avoimista tietokannoistasi käyttämällä haun lisäasetuksia. Seuraavat pikanäppäimet ovat hyödyllisiä:<br/> Ctrl+F - Etsi tietokannasta<br/> -Ctrl+1 - Kirjoita käyttäjänimi<br/> +Ctrl+1 - Kirjoita käyttäjätunnus<br/> Ctrl+2 - Kirjoita salasana<br/> Ctrl+3 - Kirjoita TOTP<br/> Ctrl+4 - Käytä virtuaalista näppäimistöä (vain Windows)</p> @@ -804,13 +824,13 @@ Ctrl+4 - Käytä virtuaalista näppäimistöä (vain Windows)</p>Disable for this site Ota pois käytöstä tällä sivustolla + + Undo + Kumoa + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser - Tallenna tietue - Ok Ok @@ -823,15 +843,72 @@ Ctrl+4 - Käytä virtuaalista näppäimistöä (vain Windows)</p>You have multiple databases open. Please select the correct database for saving credentials. Useita tietokantoja on auki -Valitse oikea tietokanta tietueen tallentamiseksi +Valitse tietokanta, johon tiedot tallennetaan. + + + KeePassXC - Select Database + KeePassXC - Valitse tietokanta + + + + BrowserPasskeysConfirmationDialog + + Cancel + Peruuta + + + Update + Päivitä + + + Authenticate + Todenna + + + Register new + Rekisteröi uusi + + + Register + Rekisteröi + + + Timeout in <b>%n</b> seconds... + Aikakatkaisu <b>%n</b> sekunnin kuluttua...Aikakatkaisu <b>%n</b> sekunnin kuluttua... + + + Do you want to register Passkey for: + Haluatko rekisteröidä suojausavaimen kohteelle: + + + Existing Passkey found. +Do you want to register a new Passkey for: + Löytyi olemassa oleva suojausavain. +Haluatko rekisteröäidä uuden suojausavaimen kohteelle: + + + Select the existing Passkey and press Update to replace it. + Valitse olemassa oleva suojausavain ja korvaa se painamalla "Päivitä". + + + Authenticate Passkey credentials for: + Todenna suojausavaimen tunnistetiedot kohteelle: + + + Relying Party: %1 + Välittävä osapuoli: %1 + + + Username: %1 + Käyttäjätunnus: %1 + + + KeePassXC - Passkey credentials + KeePassXC - Suojausavaimen tunnistetiedot BrowserService - - KeePassXC: Create a new group - KeePassXC: Luo uusi ryhmä - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -839,10 +916,6 @@ Do you want to create this group? Vastaanotettiin pyyntö luoda uusi ryhmä "%1". Haluatko varmasti luoda tämän ryhmän? - - KeePassXC: New key association request - KeePassXC: Uusi avaimenliittämispyyntö - You have received an association request for the following database: %1 @@ -859,28 +932,16 @@ chrome-läppäri. Save and allow access Tallenna ja salli pääsy - - KeePassXC: Overwrite existing key? - KeePassXC: Korvataanko olemassa oleva avain? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? Jaettu salausavain samalla nimellä "%1" on jo olemassa. Haluatko korvata sen? - - KeePassXC: Update Entry - KeePassXC: Päivitä tietue - Do you want to update the information in %1 - %2? Haluatko päivittää tiedot osoitteesta %1 - %2? - - KeePassXC: Delete entry - KeePassXC: Poista tietue - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -890,50 +951,46 @@ Haluatko poistaa tietueen? - Converting attributes to custom data… - Muutetaan attribuutteja mukautetuiksi tiedoiksi... + %1 (Passkey) + %1 (suojausavain) - Abort - Keskeytä + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + Tietue sisältää jo suojausavaimen. +Haluatko korvata kohteen %1 - %2 suojausavaimen? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Muutetut KeePassHTTP-attribuutit + KeePassXC - Create a new group + KeePassXC - Luo uusi ryhmä - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Mukautettiin attribuutit onnistuneesti %1 tietueesta. -Siirrettiin %2 avainta mukautettuihin tietoihin. - - - Successfully moved %n keys to custom data. - Siirrettiin onnistuneesti %n avainta mukautettuihin tietoihin.Siirrettiin onnistuneesti %n avainta mukautettuihin tietoihin. + Disable + Kytke pois päältä - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Tietueita KeePassHTTP-attribuuteilla ei löytynyt! + KeePassXC - Overwrite existing key? + KeePassXC - Korvataanko olemassa oleva avain? - The active database does not contain an entry with KeePassHTTP attributes. - Aktiivinen tietokanta ei sisällä tietueita KeePassHTTP-attribuuteilla. + KeePassXC - Update Passkey + KeePassXC - Päivitä suojausavain - Don't show this warning again - Älä näytä tätä varoitusta uudelleen + KeePassXC - Update Entry + KeePassXC - Päivitä tietue - KeePassXC: Legacy browser integration settings detected - KeePassXC: Vanhoja selainintegraatioasetuksia havaittu + KeePassXC - Delete entry + KeePassXC - Poista tietue - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - KeePassXC-Browser:in asetukset täytyy siirtää tietokannan asetuksiin. -Tämä on välttämätöntä, jotta yhteys selainlaajennukseen säilyy muuttumattomana. -Haluat siirtää asetukset nyt? + KeePassXC - New key association request + KeePassXC - Uus avaimen liitospyyntö + + + Passkey + @@ -993,7 +1050,7 @@ Haluat siirtää asetukset nyt? Show a notification when credentials are requested Credentials mean login data requested via browser extension - Näytä ilmoitus, kun tietueita pyydetään tietokannasta + Näytä ilmoitus, kun tietueita pyydetään Request to unlock the database if it is locked @@ -1013,24 +1070,24 @@ Haluat siirtää asetukset nyt? Return only best-matching credentials - Palauta vain parhaat osumat tietystä osoitteesta verkkotunnuksen kaikkien osumien sijasta + Näytä vain sopivimmat tietueet Returns expired credentials. String [expired] is added to the title. - Salli vanhentuneiden tietueiden noutaminen. Teksti [vanhentunut] lisätään tietueen otsikkoon. + Näytä vanhentuneet tietueet. Niiden nimiin lisätään teksti [vanhentunut]. Allow returning expired credentials - Salli vanhentuneiden tietueiden noutaminen + Salli vanhentuneiden tietueiden näyttö All databases connected to the extension will return matching credentials. - Sallitaan tietueiden nouto kaikista tietokannoista jotka ovat yhdistetty selainlaajennukseen. + Salli tietueiden näyttö kaikista selainlaajennukseen yhdistetyistä tietokannoista. Search in all opened databases for matching credentials Credentials mean login data requested via browser extension - Etsi osumia kaikista avoimista tietokannoista + Etsi sopivia tietueita kaikista avoimista tietokannoista Advanced @@ -1039,12 +1096,12 @@ Haluat siirtää asetukset nyt? Never ask before accessing credentials Credentials mean login data requested via browser extension - Älä koskaan varmista pääsyä tietueisiin + Älä koskaan vahvista tietueiden käyttöä Never ask before updating credentials Credentials mean login data requested via browser extension - Älä koskaan varmista tietueiden päivitystä + Älä koskaan vahvista tietueiden päivitystä Do not ask permission for HTTP Basic Auth @@ -1141,14 +1198,6 @@ Haluat siirtää asetukset nyt? Please see special instructions for browser extension use below Katso yksityiskohtaisemmat ohjeet selainlaajennuksen käyttöön alta - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Virhe:</b> Mukautetun välitysohjelman sijaintia ei löydy!<br/>Selainintegraatio EI TOIMI ilman välitysohjelmaa. - - - <b>Warning:</b> The following options can be dangerous! - <b>Varoitus:</b> Seuraavat valinnat voivat olla vaarallisia! - Executable Files Suoritettavat tiedostot @@ -1165,6 +1214,38 @@ Haluat siirtää asetukset nyt? Select native messaging host folder location Valitse native messaging -isännän hakemiston sijainti + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + Salli keepassxc-proxyn listata kaikki yhdistettyjen tietokantojen merkinnät niiden otsikoilla, URL-osoitteilla ja UUID-tunnisteilla. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + Myönnä rajoitettu käyttöoikeus kaikkiin yhdistettyjen tietokantojen merkintöihin (ohittaa sivustokohtaiset rajoitukset) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Varoitus:</b> Muuta näitä asetuksia vain tarvittaessa. + + + The custom proxy location does not exist. + Mukautetun välityspalvelimen sijaintia ei ole olemassa. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Virhe:</b> Mukautetun välityspalvelimen sijaintia ei ole olemassa. Korjaa tämä lisäasetukset-välilehdeltä. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Virhe:</b> Asennetun välityspalvelimen sovellustiedostoa ei löydy odotetusta sijainnista: %1<br/>Määritä mukautetun välityspalvelimen sijainti lisäasetuksista tai asenna sovellus uudelleen. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1178,7 +1259,7 @@ Haluat siirtää asetukset nyt? Replace username and password with references - Korvaa käyttäjänimi ja salasana viittauksilla + Korvaa käyttäjätunnus ja salasana viittauksilla Copy history @@ -1187,14 +1268,6 @@ Haluat siirtää asetukset nyt? CsvImportWidget - - Import CSV fields - Tuo CSV-kentät - - - filename - tiedostonimi - size, rows, columns koko, rivit, sarakkeet @@ -1303,50 +1376,29 @@ Haluat siirtää asetukset nyt? Column %1 Sarake %1 - - Imported from CSV file - Tuotu CSV-tiedostosta - - - Original data: - Alkuperäiset tiedot: - - - Error(s) detected in CSV file! - CSV-tiedostossa havaittiin virhe/virheitä! - [%n more message(s) skipped] [%n more message(s) skipped][%n kappaletta viestejä ohitettiin] - Error - Virhe + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - CSV-tuonti: kirjoituksessa on virheitä: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n tavu%n tavua - %n row(s) + CSV row count %n rivi%n riviä %n column(s) + CSV column count %n sarake.%n saraketta @@ -1421,40 +1473,10 @@ Tietokannan varmuuskopio paikannettu: %2 Password field Salasanakenttä - - Enter Additional Credentials (if any): - Syötä lisätietueita (mikäli niitä on): - - - Key File: - Avaintiedosto: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>Pääsalasanan lisäksi voit käyttää salaista tiedostoa tietokantasi tietoturvan vahvistamiseksi. Tämä tiedosto voidaan tarvittaessa luoda tietokantasi turvallisuusasetuksista.</p><p>Tämä salainen tiedosto <strong>ei</strong> ole *.kdbx -tietokantatiedosto!<br>Jos sinulla ei ole avaintiedostoa, jätä kenttä tyhjäksi.</p><p>Lisätietoja tästä...</p> - - - Key file help - Avaintiedoston ohje - Hardware key slot selection Laiteavaimen paikan valinta - - Hardware Key: - Laiteavain: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>Voit käyttää laiteavainta, kuten <strong>Yubikey:tä</strong> tai <strong>Onlykey:tä</strong> HMAC-SHA1 -asetuksella olevan paikan kanssa.</p> -<p>Lisätietoja tästä...</p> - - - Hardware key help - Laiteavaimen apu - Key file to unlock the database Avaintiedosto tietokannan avaukseen @@ -1467,14 +1489,6 @@ Tietokannan varmuuskopio paikannettu: %2 Browse… Selaa... - - Refresh hardware tokens - Uudista laitetunnisteet - - - Refresh - Päivitä - Unlock Database Avaa tietokannan lukitus @@ -1537,14 +1551,6 @@ Jos et halua nähdä tätä virhettä uudestaan, mene "Tietokannan asetukse Retry with empty password Yritä uudelleen tyhjällä salasanalla - - Failed to authenticate with Windows Hello - Autentikaatio Windows Hellon kautta ei onnistunut - - - Failed to authenticate with Touch ID - Autentikaatio Touch ID:n kautta ei onnistunut - Failed to open key file: %1 Avaintiedoston avaus epäonnistui: %1 @@ -1578,22 +1584,60 @@ Jos et halua nähdä tätä virhettä uudestaan, mene "Tietokannan asetukse Tietokantaa ei voida käyttää avaintiedostona - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Et voi käyttää tietokantaasi avaintiedostona. -Jos sinulla ei ole avaintiedostoa, jätä kenttä tyhjäksi. + authenticate to access the database + käytä tietokantaa tunnistautumalla - Detecting hardware keys… - Etsitään laiteavaimia... + Failed to authenticate with Quick Unlock: %1 + Pika-avauksella tunnistautuminen epäonnistui: %1 - No hardware keys detected - Laiteavaimia ei havaittu + Select Key File: + - Select hardware key… - Valitse laiteavain... + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1605,10 +1649,6 @@ Jos sinulla ei ole avaintiedostoa, jätä kenttä tyhjäksi. DatabaseSettingsDialog - - Advanced Settings - Lisäasetukset - General Yleistä @@ -1619,7 +1659,7 @@ Jos sinulla ei ole avaintiedostoa, jätä kenttä tyhjäksi. Database Credentials - Tietokannan tietueet + Tietokannan tunnistetiedot Encryption Settings @@ -1640,18 +1680,6 @@ Jos sinulla ei ole avaintiedostoa, jätä kenttä tyhjäksi. KeePassXC-Browser settings KeePassXC-Browser -asetukset - - Convert KeePassHTTP data - Muuta KeePassHTTP:n tiedot - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - Siirrä vanhat KeePassHTTP-attribuutit KeePassXC-Browser:in mukautettuihin tietoihin - - - Refresh database root group ID - Uudista tietokannan juuriryhmän ID - Disconnect all browsers Unohda kaikki selaimet @@ -1660,6 +1688,10 @@ Jos sinulla ei ole avaintiedostoa, jätä kenttä tyhjäksi. Forget all site-specific settings on entries Unohda kaikki sivustokohtaiset asetukset tietueilta + + Refresh database root group ID + Uudista tietokannan juuriryhmän ID + Stored keys Tallennetut avaimet @@ -1708,18 +1740,10 @@ This may prevent connection to the browser plugin. Haluatko todella unohtaa kaikki selaimet? Tämä voi estää yhteyden selainlaajennukseen. - - KeePassXC: No keys found - KeePassXC: Avaimia ei löytynyt - No shared encryption keys found in KeePassXC settings. Jaettuja salausavaimia ei löytynyt KeePassXC:n asetuksista. - - KeePassXC: Removed keys from database - KeePassXC: Poistettiin avaimet tietokannasta - Successfully removed %n encryption key(s) from KeePassXC settings. %n salausavain poistettiin onnistuneesti KeePassXC:n asetuksista.%n salausavainta poistettiin onnistuneesti KeePassXC:n asetuksista. @@ -1738,32 +1762,14 @@ Pääsy tietueisiin evätään. Abort Keskeytä - - KeePassXC: Removed permissions - KeePassXC: Poistetut käyttöoikeudet - Successfully removed permissions from %n entry(s). Poistettiin lupa %n tietueelta.Poistettiin lupa %n tietueelta. - - KeePassXC: No entry with permissions found! - KeePassXC: Tietuetta käyttöoikeuksilla ei löytynyt! - The active database does not contain an entry with permissions. Aktiivinen tietokanta ei sisällä yhtään tietuetta käyttöoikeuksien kanssa. - - Move KeePassHTTP attributes to custom data - Siirrä KeePassHTTP-attribuutit mukautettuihin tietoihin. - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Haluatko todella siirtää vanhat selainlaajennustiedot uuteen muotoon? -Tämä on välttämätöntä selainintegraation yhteensopivuuden takaamiseksi. - Refresh database ID Uudista tietokannan ID @@ -1774,6 +1780,26 @@ This is only necessary if your database is a copy of another and the browser ext Haluatko todella uudistaa tietokannan ID:n? Tämä on tarpeellista vain, jos tietokantasi on kloonattu toisesta ja selainintegraatio ei pysty yhdistämään siihen. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Siirrä vanhat KeePassHTTP-attribuutit KeePassXC-Browser:in mukautettuihin tietoihin + + + No keys found + Avaimia ei löytynyt + + + Removed keys from database + Avaimet poistettiin tietokannasta + + + Removed permissions + Käyttöoikeudet poistettiin + + + No entry with permissions found! + Tietuetta käyttöoikeuksilla ei löytynyt! + DatabaseSettingsWidgetDatabaseKey @@ -1811,7 +1837,19 @@ Oletko varma, että haluat jatkaa ilman salasanaa? Failed to change database credentials - Tietokannan tietueiden muuttaminen ei onnistu + Tietokannan tunnistetietojen vaihto ei onnistu + + + Weak password + Heikko salasana + + + You must enter a stronger password to protect your database. + Sinun on syötettävä vahvempi salsana tietokantasi suojaamiseksi. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + Tämä on heikko salsana! SInun tulisi valita vahvempi salsana tietojesi parempaa suojausta varten. @@ -1820,14 +1858,6 @@ Oletko varma, että haluat jatkaa ilman salasanaa? Decryption Time: Salauksen purkuun kulunut aika: - - Change existing decryption time - Muuta olemassa olevaa salauksen purkuun vaadittavaa aikaa - - - Change - Muuta - Decryption time in seconds Salauksen purkuun vaadittava aika sekunneissa @@ -1908,11 +1938,6 @@ Oletko varma, että haluat jatkaa ilman salasanaa? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - muuttamaton - Number of rounds too high Key transformation rounds @@ -1965,6 +1990,18 @@ Jos pidät tämän arvon, tietokanta ei ole välttämättä turvattu brute force Threads for parallel execution (KDF settings) säiesäiettä + + Encryption Settings: + Salausasetukset: + + + Basic + Perus + + + Advanced + Lisäasetukset + DatabaseSettingsWidgetFdoSecrets @@ -2009,11 +2046,11 @@ Jos pidät tämän arvon, tietokanta ei ole välttämättä turvattu brute force Default username: - Oletuskäyttäjänimi: + Oletusarvoinen käyttäjätunnus: Default username field - Oletuskäyttäjänimen kenttä + Oletusarvoisen käyttäjätunnuksen kenttä History Settings @@ -2023,18 +2060,10 @@ Jos pidät tämän arvon, tietokanta ei ole välttämättä turvattu brute force Maximum number of history items per entry Historiamerkintöjen maksimimäärä per tietue - - Max. history items: - Maks. historia-kohteiden lukumäärä: - Maximum size of history per entry Historian koon maksimimäärä per tietue - - Max. history size: - Maks. historian koko: - MiB Mt @@ -2064,6 +2093,55 @@ This action is not reversible. (old) (vanha) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + Kun tämä asetus tallennetaan tai tietuetta muokataan, poistetaan tietueen historian vanhimmat merkinnät, jolloin niitä säilytetään vain määritetty määrä. + + + Limit the amount of history items per entry to: + Rajoita tietueiden historiamerkintöjen määrää: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + Kun tämä asetus tallennetaan tai tietuetta muokataan, poistetaan tietueen historian vanhimmat merkinnät, jolloin niitä säilytetään vain määritetty määrä. + + + Limit the total size of history items per entry to: + Rajoita tietueiden historiamerkintöjen määrää: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Siirrä tietueet roskakoriryhmään pysyvän poiston sijaan. Roskakorista poistetut tietueet poistetaan tietokannasta pysyvästi. + + + Autosave delay since last change + Muutosta seuraavan automaattitallennuksen viive + + + Autosave delay + Automaattitallennuksen viive + + + Autosave delay since last change in minutes + Muutosta seuraavan automaattitallennuksen minuuttiviive + + + min + minuuttia + + + Autosave delay since last change checkbox + Muutosta seuraavan automaattitallennuksen viiveen valintalaatikko + DatabaseSettingsWidgetKeeShare @@ -2191,26 +2269,10 @@ Tämä on selkeä virhe, joten ota yhteyttä kehittäjätiimiin. CSV file CSV-tiedosto - - Select CSV file - Valitse CSV-tiedosto - Merge database Yhdistä tietokanta - - KeePass 1 database - KeePass 1 -tietokanta - - - Open KeePass 1 database - Avaa KeePass 1 -tietokanta - - - Open OPVault - Avaa OPVault - Export database to CSV file Vie tietokanta CSV-tiedostoon @@ -2223,6 +2285,18 @@ Tämä on selkeä virhe, joten ota yhteyttä kehittäjätiimiin. Writing the HTML file failed. HTML-tiedoston kirjoittaminen epäonnistui. + + Export database to XML file + Vie tietokanta XML-tiedostoon + + + XML file + XML-tiedosto + + + Writing the XML file failed + XML-tiedoston tallennus epäonnistui + Export Confirmation Viennin vahvistus @@ -2231,15 +2305,6 @@ Tämä on selkeä virhe, joten ota yhteyttä kehittäjätiimiin. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? Olet viemässä tietokantaasi salaamattomaan tiedostoon. Tämä jättää salasanasi ja minkä tahansa arkaluontoisen tiedon haavoittuvaksi! Oletko varma, että haluat jatkaa? - - New Database - Uusi tietokanta - - - %1 [New Database] - Database tab name modifier - %1 [Uusi tietokanta] - %1 [Locked] Database tab name modifier @@ -2249,8 +2314,8 @@ Tämä on selkeä virhe, joten ota yhteyttä kehittäjätiimiin. DatabaseWidget - Database Tags - Tietokannan tagit + Searches and Tags + Haut ja tunnisteet Searching… @@ -2300,6 +2365,10 @@ Tämä on selkeä virhe, joten ota yhteyttä kehittäjätiimiin. Expired entries Vanhentuneet tietueet + + Entries expiring within %1 day(s) + %1 päivän kuluttua vanhentuva tietue%1 päivän kuluttua vanhentuva tietue + No current database. Ei nykyistä tietokantaa. @@ -2324,6 +2393,18 @@ Tämä on selkeä virhe, joten ota yhteyttä kehittäjätiimiin. No Results Ei tuloksia. + + Save + Tallenna + + + Enter a unique name or overwrite an existing search from the list: + Syötä yksilöllinen nimi tai korvaa listalla oleva aiempi haku: + + + Save Search + Tallenna haku + Lock Database? Lukitse tietokanta? @@ -2414,9 +2495,14 @@ Ota turvallinen tallennus pois käytöstä ja yritä uudelleen? Could not find database file: %1 Tietokantatiedostoa ei löydy: %1 - - Entries expiring within %1 day(s) - + + New Database + Uusi tietokanta + + + %1 [New Database] + Database tab name modifier + %1 [Uusi tietokanta] @@ -2559,6 +2645,10 @@ Haluatko korjata sen? Hide Piilota + + %n hour(s) + %n tunti%n tuntia + %n week(s) %n viikko%n viikkoa @@ -2571,10 +2661,6 @@ Haluatko korjata sen? %n year(s) %n vuosi%n vuotta - - %n hour(s) - - EditEntryWidgetAdvanced @@ -2693,10 +2779,20 @@ Haluatko korjata sen? Add new window association Lisää uusi ikkunan liitos + + + + Add item + + + Remove selected window association Poista valittu ikkunaliitos + + - + Remove item + - + Window title: Ikkunan otsikko: @@ -2721,16 +2817,6 @@ Haluatko korjata sen? Custom Auto-Type sequence for this window Mukautettu automaattisyötön sekvenssi tälle ikkunalle - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2830,24 +2916,12 @@ Haluatko korjata sen? Notes field - Muistiinpanojen kenttä - - - Toggle the checkbox to reveal the notes section. - Ruksi valintaruutu näyttääksesi muistiinpano-osio. + Muistiinpanokenttä Username field Käyttäjätunnuksen kenttä - - Toggle notes visible - Vaihda muistiinpanojen näkyvyyttä - - - Notes: - Muistiinpanot: - Expiration field Vanhentumisajan kenttä @@ -2864,14 +2938,6 @@ Haluatko korjata sen? Presets Esiasetukset - - Password: - Salasana - - - URL: - URL: - Url field Osoitekenttä @@ -2880,18 +2946,10 @@ Haluatko korjata sen? Download favicon for URL Lataa favicon tälle URL:lle - - Title: - Otsikko: - Title field Otsikkokenttä - - Username: - Käyttäjänimi - Password field Salasanakenttä @@ -2900,18 +2958,42 @@ Haluatko korjata sen? Toggle expiration Ota vanhentumisaika käyttöön - - Expires: - Vanhentuu: - - - Tags: - Tagit: - Tags list Tagilista + + &Username: + &Käyttäjätunnus: + + + &Title: + &Nimi: + + + &Password: + &Salasana: + + + UR&L: + UR&L-osoite: + + + &Notes: + &Muistiinpanot: + + + Toggle notes visibility + Kytke muistiinpanojen näyttö + + + T&ags: + T&unnisteet: + + + &Expires: + &Erääntyy: + EditEntryWidgetSSHAgent @@ -2951,19 +3033,6 @@ Haluatko korjata sen? Private key Yksityinen avain - - External file - Ulkoinen tiedosto - - - Browser for key file - Selaa avaintiedostoa - - - Browse… - Button for opening file dialog - Selaa... - Attachment Liite @@ -2980,6 +3049,23 @@ Haluatko korjata sen? Remove from agent Poista agentista + + External file + Ulkoinen tiedosto + + + Browser for key file + Selaa avaintiedostoa + + + Browse… + Button for opening file dialog + Selaa... + + + Generate + Luo + Select attachment file Valitse liitetiedosto @@ -3015,10 +3101,6 @@ Haluatko korjata sen? Icon Kuvake - - Browser Integration - Selainintegraatio - Properties Ominaisuudet @@ -3035,6 +3117,10 @@ Haluatko korjata sen? Group has unsaved changes Ryhmällä on tallentamattomia muutoksia + + Browser Integration + Selainintegraatio + Enable Kytke päälle @@ -3050,10 +3136,6 @@ Haluatko korjata sen? EditGroupWidgetBrowser - - Edit Group - Muokkaa ryhmää - These settings affect to the group's behaviour with the browser extension. Nämä asetukset vaikuttavat ryhmän toimintaan selainlaajennuksen kanssa. @@ -3090,6 +3172,22 @@ Haluatko korjata sen? Do not use HTTP Auth toggle for this and sub groups Älä käytä HTTP Basic -autentikaatiota tälle ryhmälle ja aliryhmille + + Omit WWW subdomain from matching: + Älä huomioi WWW-aliverkkotunnusta tunnistuksessa: + + + Omit WWW subdomain from matching toggle for this and sub groups + WWW-aliverkkotunnuksen tunnistuskäytön kytkentä tälle ja aliryhmille + + + Restrict matching to given browser key: + Rajoita tunnistus annettuun selainavaimeen: + + + Restrict matching to given browser key toggle for this and sub groups + Tunnistuksen annettuun selainavaimeen rajoituksen kytkentä tälle ja aliryhmille + EditGroupWidgetKeeShare @@ -3170,15 +3268,15 @@ Tuetut tyypit ovat: %1. KeeShare is currently disabled. You can enable import/export in the application settings. KeeShare is a proper noun - KeeShare ei ole tällä hetkellä käytössä. Voit ottaa tuonnin/viennin käyttöön ohjelmiston asetuksista. + KeeShare ei ole tällä hetkellä käytössä. Voit ottaa tuonnin/viennin käyttöön sovelluksen asetuksista. Database export is currently disabled by application settings. - Tietokannan vienti on poistettu käytöstä ohjelmiston asetuksissa. + Tietokannan vienti ei ole sovelluksen asetuksissa käytössä. Database import is currently disabled by application settings. - Tietokannan tuonti on poistettu käytöstä ohjelmiston asetuksista. + Tietokannan tuonti ei ole sovelluksen asetuksissa käytössä. KeeShare container @@ -3249,7 +3347,7 @@ Tuetut tyypit ovat: %1. Notes field - Muistiinpanojen kenttä + Muistiinpanokenttä Name: @@ -3322,10 +3420,6 @@ Tuetut tyypit ovat: %1. Unable to fetch favicon. Faviconin noutaminen ei onnistu - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Voit asettaa DuckDuckGo:n ikonien lataukseen asetuksen Työkalut>Asetukset>Turvallisuus alta - Existing icon selected. Jo olemassa oleva ikoni valittu. @@ -3358,6 +3452,10 @@ Tuetut tyypit ovat: %1. The following icon(s) failed: Seuraava ikoni epäonnistui:Seuraavat ikonit epäonnistuivat: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + Voit ottaa DuckDuckGon sivustokuvakepalvelun käyttöön sovelluksen suojausasetuksista + EditWidgetProperties @@ -3796,6 +3894,10 @@ Virhe: %1 Has TOTP Sisältää TOTP:n + + Background Color + Taustaväri + EntryPreviewWidget @@ -3816,8 +3918,8 @@ Virhe: %1 Salasana - Notes - Muistiinpanot + URL + URL Expiration @@ -3836,8 +3938,8 @@ Virhe: %1 Käyttäjätunnus - URL - URL + Notes + Muistiinpanot Advanced @@ -3887,6 +3989,10 @@ Virhe: %1 Never Ei koskaan + + Double click to copy value + Tuplaklikkaa kopioidaksesi arvo + Enabled Käytössä @@ -3895,6 +4001,10 @@ Virhe: %1 Disabled Pois käytöstä + + Double click to copy to clipboard + Kopioi leikepöydälle kaksoisklikkauksella + EntryURLModel @@ -3902,6 +4012,10 @@ Virhe: %1 Invalid URL Virheellinen URL + + Duplicate URL + Monista URL-osoite + EntryView @@ -3917,6 +4031,10 @@ Virhe: %1 Reset to defaults Palauta oletusasetukset + + + %1 entry(s)... + + %1 tietuetta...+ %1 tietue... + ExportDialog @@ -4098,8 +4216,8 @@ Tämä jättää salasanasi ja minkä tahansa arkaluontoisen tiedon haavoittuvak Having trouble downloading icons? You can enable the DuckDuckGo website icon service in the security section of the application settings. - Onko ikonien latauksessa ongelmia? -Voit käyttää DuckDuckGo:ta ikonien lataukseen ohjelmiston turvallisuusasetuksia muokkaamalla. + Onko kuvakkeiden latauksessa ongelmia? +Voit aktivoida DuckDuckGon kuvakepalvelun sovelluksen suojausasetuksista. Close @@ -4138,6 +4256,147 @@ Voit käyttää DuckDuckGo:ta ikonien lataukseen ohjelmiston turvallisuusasetuks Ladataan faviconeja (%1/%2)... + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Ohjattu sivu + + + Entry count: %1 + + + + Group + Ryhmä + + + Title + Otsikko + + + Username + Käyttäjätunnus + + + Password + Salasana + + + Url + + + + + ImportWizardPageSelect + + Form + Lomake + + + Import File Selection + + + + Password: + Salasana: + + + Key File: + Avaintiedosto: + + + Browse… + Selaa... + + + Import Into: + + + + New Database + Uusi tietokanta + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Avaa OPVault + + + Select import file + + + + All files + Kaikki tiedostot + + + Key files + Avaintiedostot + + + Select key file + Valitse avaintiedosto + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4166,8 +4425,8 @@ Voit käyttää DuckDuckGo:ta ikonien lataukseen ohjelmiston turvallisuusasetuks Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - Väärät tilitiedot, ole hyvä ja koita uudestaan. -Jos tämä toistuu, tietokantasi voi olla viallinen. + Virheelliset tunnistetiedot. Yritä uudelleen. +Jos tämä toistuu, tietokantasi on saattanut vioittuna. Header doesn't match hash @@ -4223,8 +4482,8 @@ Jos tämä toistuu, tietokantasi voi olla viallinen. Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - Väärät tilitiedot, ole hyvä ja koita uudestaan. -Jos tämä toistuu, tietokantasi voi olla viallinen. + Virheelliset tunnistetiedot. Yritä uudelleen. +Jos tämä toistuu, tietokantasi on saattanut vioittuna. (HMAC mismatch) @@ -4572,17 +4831,6 @@ Rivi %2, sarake %3 Yksityisen avaimen avaaminen epäonnistui - - KeePass1OpenWidget - - Import KeePass1 Database - Tuo KeePass1-tietokanta - - - Unable to open the database. - Tietokannan avaaminen epäonnistui. - - KeePass1Reader @@ -4645,8 +4893,8 @@ Rivi %2, sarake %3 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - Väärät tilitiedot, ole hyvä ja koita uudestaan. -Jos tämä toistuu, tietokantasi voi olla viallinen. + Virheelliset tunnistetiedot. Yritä uudelleen. +Jos tämä toistuu, tietokantasi on saattanut vioittuna. Key transformation failed @@ -4939,10 +5187,6 @@ Haluatko jatkaa käyttämällä tätä tiedostoa? &Recent Databases &Viimeisimmät tietokannat - - &Import - &Tuo - &Export &Vie @@ -4963,6 +5207,10 @@ Haluatko jatkaa käyttämällä tätä tiedostoa? TOTP TOTP + + Tags + Tagit + &Groups Ryhmät @@ -5007,34 +5255,18 @@ Haluatko jatkaa käyttämällä tätä tiedostoa? &New Database… &Uusi tietokanta… - - Create a new database - Luo uusi tietokanta - &Merge From Database… &Yhdistä tietokannasta… - - Merge from another KDBX database - Yhdistä toisesta KDBX-tietokannasta - &New Entry… &Uusi tietue… - - Add a new entry - Lisää uusi tietue - &Edit Entry… &Muokkaa tietuetta… - - View or edit entry - Katso tai muokkaa tietuetta - &Delete Entry… &Poista tietue… @@ -5043,10 +5275,6 @@ Haluatko jatkaa käyttämällä tätä tiedostoa? &New Group… &Uusi ryhmä… - - Add a new group - Lisää uusi ryhmä - &Edit Group… &Muokkaa ryhmää… @@ -5079,18 +5307,10 @@ Haluatko jatkaa käyttämällä tätä tiedostoa? Database &Reports… Tietokannan &raportit... - - Statistics, health check, etc. - Tilastot, kelvollisuuden tarkastus jne. - &Database Settings… &Tietokannan asetukset… - - Database settings - Tietokannan asetukset - &Clone Entry… &Kloonaa tietue… @@ -5099,34 +5319,18 @@ Haluatko jatkaa käyttämällä tätä tiedostoa? Move u&p Siirrä &ylös - - Move entry one step up - Siirrä tietue yksi rivi ylemmäs - Move do&wn Siirrä &alas - - Move entry one step down - Siirrä tietue yksi rivi alemmas - Copy &Username Kopioi &käyttäjätunnus - - Copy username to clipboard - Kopioi käyttäjätunnus leikepöydälle - Copy &Password Kopioi &salasana - - Copy password to clipboard - Kopioi salasana leikepöydälle - &Settings &Asetukset @@ -5160,25 +5364,13 @@ Haluatko jatkaa käyttämällä tätä tiedostoa? &Otsikko - Copy title to clipboard - Kopioi nimi leikepöydälle - - - &URL - &URL - - - Copy URL to clipboard - Kopioi osoite leikepöydälle + Copy &URL + Kopioi &URL-osoite &Notes &Muistiinpanot - - Copy notes to clipboard - Kopioi muistiinpanot leikepöydälle - &CSV File… &CSV-tiedosto… @@ -5191,26 +5383,14 @@ Haluatko jatkaa käyttämällä tätä tiedostoa? KeePass 1 Database… KeePass 1 -tietokanta - - Import a KeePass 1 database - Tuo KeePass 1 -tietokanta - 1Password Vault… !Password-holvi... - - Import a 1Password Vault - Tuo 1Password-holvi - CSV File… CSV-tiedosto... - - Import a CSV file - Tuo CSV-tiedosto - Show TOTP Näytä TOTP @@ -5227,6 +5407,10 @@ Haluatko jatkaa käyttämällä tätä tiedostoa? Copy &TOTP Kopioi &TOTP + + Copy Password and TOTP + Kopioi salasana ja TOTP + E&mpty recycle bin &Tyhjennä roskakori @@ -5251,10 +5435,6 @@ Haluatko jatkaa käyttämällä tätä tiedostoa? &Online Help &Verkko-ohje - - Go to online documentation - Siirry online-dokumentaatioon - &User Guide &Käyttäjäopas @@ -5313,7 +5493,7 @@ Haluatko jatkaa käyttämällä tätä tiedostoa? Hide Usernames - Piilota käyttäjänimet + Piilota käyttäjätunnukset Hide Passwords @@ -5323,6 +5503,10 @@ Haluatko jatkaa käyttämällä tätä tiedostoa? Clone Group... Kloonaa ryhmä + + &XML File… + &XML-tiedosto… + Clear history Tyhjennä historia @@ -5355,9 +5539,13 @@ We recommend you use the AppImage available on our downloads page. VAROITUS: Qt-versiosi voi aiheuttaa KeePassXC:n kaatumisen näytöllä näkyvällä näppäimistöllä! Suosittelemme, että käytät AppImagea, jonka voit hakea lataussivustoltamme. + + No Tags + Tunnisteita ei ole + Restore Entry(s) - + Palauta tietuePalauta tietueet Settings @@ -5383,6 +5571,10 @@ Suosittelemme, että käytät AppImagea, jonka voit hakea lataussivustoltamme.Quit KeePassXC Sulje KeePassXC + + %1 Entry(s) + %1 tietue%1 tietuetta + Please present or touch your YubiKey to continue… Ole hyvä ja käytä Yubikeyssä jatkaaksesi... @@ -5395,6 +5587,274 @@ Suosittelemme, että käytät AppImagea, jonka voit hakea lataussivustoltamme.You must restart the application to apply this setting. Would you like to restart now? Ohjelma täytyy käynnistää uudelleen, jotta asetus voidaan ottaa käyttöön. Haluatko käynnistää uudelleen nyt? + + Allow Screen Capture + Salli kuvankaappaus + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Suojausvaimet... + + + Import Passkey + Tuo suojausavain + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + Muokkaa tietuetta + + + Delete Entry + + + + Create Group + + + + Edit Group + Muokkaa ryhmää + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + Kopioi käyttäjätunnus + + + Copy Password + Kopioi salasana + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + Tuo KeePass1-tietokanta + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + ManageDatabase @@ -5431,11 +5891,11 @@ Suosittelemme, että käytät AppImagea, jonka voit hakea lataussivustoltamme. Reset - + Nollaa Reset any remembered decisions for this application - + Nollaa tälle sovellukselle tallennetut valinnat @@ -5452,26 +5912,6 @@ Suosittelemme, että käytät AppImagea, jonka voit hakea lataussivustoltamme.Overwriting %1 [%2] Ylikirjoitetaan %1 [%2] - - older entry merged from database "%1" - vanhempi tietue yhdistetty tietokannasta "%1" - - - Adding backup for older target %1 [%2] - Lisätään varmuuskopio vanhemmalle kohteelle %1 [%2] - - - Adding backup for older source %1 [%2] - Lisätään varmuuskopio vanhemmalle lähteelle %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Uudelleensijoitetaan vanhempi kohdetietue uuden lähteen päälle %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Uudelleensijoitetaan vanhempi lähdetietue uuden kohteen päälle %1 [%2] - Synchronizing from newer source %1 [%2] Synkronoidaan uudemmasta lähteestä %1 [%2] @@ -5531,24 +5971,16 @@ Suosittelemme, että käytät AppImagea, jonka voit hakea lataussivustoltamme.Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Täällä voit säätää tietokannan salausasetuksia. Voit muokata niitä myöhemmin uudelleen. - - Advanced Settings - Lisäasetukset - - - Simple Settings - Yksinkertaiset asetukset - NewDatabaseWizardPageDatabaseKey Database Credentials - Tietokannan tietueet + Tietokannan tunnistetiedot A set of credentials known only to you that protects your database. - Tietokannan suojelemiseksi tarkoitettu tietueiden ryhmä + Tietokannan suojaukseen määrittämäsi tietueryhmä @@ -5619,15 +6051,6 @@ Suosittelemme, että käytät AppImagea, jonka voit hakea lataussivustoltamme.Odotettiin %1 tavua selkotekstiä, löydettiin %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Tietokannan lukeminen ei luonut instanssia -%1 - - OpVaultReader @@ -5701,6 +6124,10 @@ Suosittelemme, että käytät AppImagea, jonka voit hakea lataussivustoltamme.Unknown cipher: %1 Tuntematon salausalgoritmi: %1 + + AES-256/GCM is currently not supported + AES-256/GCM-salausta ei tällä hetkellä tueta + Passphrase is required to decrypt this key Avaimen purkuun vaaditaan salalause @@ -5767,26 +6194,179 @@ Suosittelemme, että käytät AppImagea, jonka voit hakea lataussivustoltamme. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Salasanat eivät täsmää + SSH Key Generator + SSH-avaingeneraattori - Passwords match so far - Salasanat jotka ovat tähän mennessä samoja + Type + Tyyppi - Toggle Password (%1) - Ota salasana käyttöön (%1) + Bits + Bitit - Generate Password (%1) - Luo salasana (%1) + Comment + Kommentti + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - Suojasavaimen vienti - Warning: Caps Lock enabled! - Varoitus: Caps Lock on päällä! + Export the following Passkey entries. + Vie seuraavat suojausavaintietueet. + + + Filenames will be generated with title and .passkey file extension. + Tiedostot luodaan tietueiden nimillä ja .passkey-päätteellä. + + + Export entries + Vie tietueet + + + Export Selected + Vie valitut + + + Cancel + Peruuta + + + Export to folder + Vie kansioon + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: Suojausavainvienti + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + Tiedosto "%1.passkey" on jo olemassa. +haluatko korvata sen? + + + + Cannot open file + Tiedoston avaus ei onnistu + + + Cannot open file "%1" for writing. + Tiedoston "%1" avaus muokattavaksi ei onnistu. + + + Cannot write to file + Tiedostoa ei voida tallentaa + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - Suojausavainvienti + + + Username: %1 + Käyttäjätunnus: %1 + + + Group + Ryhmä + + + Database + Tietokanta + + + Import Passkey + Tuo suojausavain + + + Import + Tuo + + + Cancel + Peruuta + + + Import the following Passkey: + Tuo seuraava suojausavain: + + + Entry + Tietue + + + Import the following Passkey to this entry: + Tuo seuraava suojausavain tähän tietueeseen: + + + Create new entry + Luo uusi tietue + + + Default Passkeys group (Imported Passkeys) + Suojausavainten oletusryhmä (tuodut suojausavaimet) + + + Relying Party: %1 + Välittävä osapuoli: %1 + + + + PasskeyImporter + + Passkey file + Suojausavaintiedosto + + + All files + Kaikki tiedostot + + + Open Passkey file + Avaa suojausavaintiedosto + + + Cannot open file + Tiedoston avaus ei onnistu + + + Cannot open file "%1" for reading. + Tiedoston "%1" luku ei onnistu. + + + Cannot import Passkey + Suojausavainta ei voida tuoda + + + Cannot import Passkey file "%1". Data is missing. + Suojausavaintiedostoa ei voida tuoda "%1". +Tietoja puuttuu. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + Suojausavaintiedostoa ei voida tuoda "%1". +Yksityinen avain puuttuu tai on muotoiltu väärin. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + Suojausavaintiedostoa ei voida tuoda "%1". +Seuraavat tiedot puuttuvat: %2 @@ -6051,6 +6631,30 @@ Suosittelemme, että käytät AppImagea, jonka voit hakea lataussivustoltamme.Entropy: %1 bit Entropia: %1 bit + + Password Quality: %1 + Salasanan laatu: %1 + + + Poor + Password quality + Huono + + + Weak + Password quality + Heikko + + + Good + Password quality + Hyvä + + + Excellent + Password quality + Erinomainen + Confirm Delete Wordlist Vahvista sanalistan poisto @@ -6097,9 +6701,32 @@ Haluatko ylikirjoittaa sen? Special Characters Erikoismerkit + + + PasswordWidget - Password Quality: %1 - Salasanan laatu: %1 + Passwords do not match + Salasanat eivät täsmää + + + Passwords match so far + Salasanat jotka ovat tähän mennessä samoja + + + Toggle Password (%1) + Ota salasana käyttöön (%1) + + + Generate Password (%1) + Luo salasana (%1) + + + Warning: Caps Lock enabled! + Varoitus: Caps Lock on päällä! + + + Quality: %1 + Laatu: %1 Poor @@ -6121,6 +6748,10 @@ Haluatko ylikirjoittaa sen? Password quality Erinomainen + + Toggle password visibility using Control + H. Open the password generator using Control + G. + Kytke salasanan näyttö Ctrl+H-näppäinyhdistelmällä. Avaa salasanageneraattori painamalla Ctrl+G. + PickcharsDialog @@ -6175,6 +6806,10 @@ Haluatko ylikirjoittaa sen? Continue Jatka + + Continue with weak password + Jatka heikolla salasalanalla + QObject @@ -6256,7 +6891,7 @@ Haluatko ylikirjoittaa sen? Username for the entry. - Tietueen käyttäjänimi. + Tietueen käyttäjätunnus. username @@ -6568,6 +7203,10 @@ Haluatko ylikirjoittaa sen? Too many arguments provided. Liian monta argumenttia annettu + + Path of the database. + Tietokannan polku. + Target decryption time in MS for the database. Kohteen salauksen purkuun kuluva aika millisekunneissa tietokannalle. @@ -6576,6 +7215,11 @@ Haluatko ylikirjoittaa sen? time aika + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Aseta tietokannan avaintiedosto. Asetus on vanhentunut, käytä sen sijaan "--set-key-file" -määritystä. + Set the key file for the database. Syötä tietokannan avaintiedosto. @@ -6588,10 +7232,6 @@ Haluatko ylikirjoittaa sen? Create a new database. Luo uusi tietokanta. - - Path of the database. - Tietokannan polku. - Invalid decryption time %1. Virheellinen salauksen purun aika %1. @@ -6636,6 +7276,158 @@ Haluatko ylikirjoittaa sen? Successfully created new database. Luotiin onnistuneesti uusi tietokanta. + + Unset the password for the database. + Poista tietokannan salasanamääritys. + + + Unset the key file for the database. + Poista tietokannan avaintiedostomääritys. + + + Edit a database. + Muokkaa tietokantaa. + + + Cannot use %1 and %2 at the same time. + Näitä ei voida käyttää samanaikaisesti: %1 ja %2. + + + Could not change the database key. + Tietokannan avaintiedostoa ei voitu vaihtaa. + + + Database was not modified. + Tietokantaa ei muokattu. + + + Writing the database failed: %1 + Tietokannan kirjoittaminen epäonnistui: %1 + + + Successfully edited the database. + Tietokantaa muokattiin. + + + Cannot remove password: The database does not have a password. + Salasanamääritystä ei voida poistaa: tietokannalla ei ole salasanaa. + + + Cannot remove file key: The database does not have a file key. + Avaintiedostomääritystä ei voida poistaa: tietokannalla ei ole avaintiedostoa. + + + Loading the new key file failed: %1 + Uuden avaintiedoston lataus epäonnistui: %1 + + + Found unexpected Key type %1 + Löytyi odottamaton avaintyyppi %1 + + + Cannot remove all the keys from a database. + Tietokannan kaikkia avaimia ei voida poistaa. + + + Show a database's information. + Näytä tietokannan tiedot. + + + UUID: + UUID: + + + Name: + Nimi: + + + Description: + Kuvaus: + + + Cipher: + Salaus: + + + KDF: + KDF: + + + Recycle bin is enabled. + Roskakori on otettu käyttöön. + + + Recycle bin is not enabled. + Roskakori ei ole käytössä. + + + Location + Sijainti + + + Database created + Tietokanta luotu + + + Last saved + Viimeksi tallennettu + + + Unsaved changes + Tallentamattomia muutoksia + + + yes + kyllä + + + no + ei + + + Number of groups + Ryhmien määrä + + + Number of entries + Tietueiden lukumäärä + + + Number of expired entries + Vanhentuneiden tietueiden lukumäärä + + + Unique passwords + Yksilöllisiä salasanoja + + + Non-unique passwords + Ei-yksilöllisiä salasanoja + + + Maximum password reuse + Maksimimäärä samoja salasanoja + + + Number of short passwords + Lyhyiden salasanojen määrä + + + Number of weak passwords + Heikkojen salasanojen määrä + + + Entries excluded from reports + Tietueet jotka on poissuljettu raporteista + + + Average password length + Salasanan keskimääräinen pituus + + + %1 characters + %1 merkkiä + Word count for the diceware passphrase. Sanamäärä noppaware-salalauseelle. @@ -6687,10 +7479,6 @@ Haluatko ylikirjoittaa sen? Enter new password for entry: Anna tietueelle uusi salasana: - - Writing the database failed: %1 - Tietokannan kirjoittaminen epäonnistui: %1 - Successfully edited entry %1. Tietuetta %1 muokattiin onnistuneesti. @@ -6915,106 +7703,6 @@ Haluatko ylikirjoittaa sen? Successfully imported database. Tietokanta tuotiin onnistuneesti. - - Show a database's information. - Näytä tietokannan tiedot. - - - UUID: - UUID: - - - Name: - Nimi: - - - Description: - Kuvaus: - - - Cipher: - Salaus: - - - KDF: - KDF: - - - Recycle bin is enabled. - Roskakori on otettu käyttöön. - - - Recycle bin is not enabled. - Roskakori ei ole käytössä. - - - Location - Sijainti - - - Database created - Tietokanta luotu - - - Last saved - Viimeksi tallennettu - - - Unsaved changes - Tallentamattomia muutoksia - - - yes - kyllä - - - no - ei - - - Number of groups - Ryhmien määrä - - - Number of entries - Tietueiden lukumäärä - - - Number of expired entries - Vanhentuneiden tietueiden lukumäärä - - - Unique passwords - Yksilöllisiä salasanoja - - - Non-unique passwords - Ei-yksilöllisiä salasanoja - - - Maximum password reuse - Maksimimäärä samoja salasanoja - - - Number of short passwords - Lyhyiden salasanojen määrä - - - Number of weak passwords - Heikkojen salasanojen määrä - - - Entries excluded from reports - Tietueet jotka on poissuljettu raporteista - - - Average password length - Salasanan keskimääräinen pituus - - - %1 characters - %1 merkkiä - Unknown command %1 Tuntematon komento %1 @@ -7063,7 +7751,7 @@ Käytettävissä olevat komennot: Use the same credentials for both database files. - Käytä samoja tilitietoja molemmille tietokantatiedostoille. + Käytä samoja tunnistetietoja molemmille tietokantatiedostoille. Key file of the database to merge from. @@ -7187,6 +7875,10 @@ Käytettävissä olevat komennot: Show the protected attributes in clear text. Näytä suojatut attribuutit selkotekstinä. + + Show all the attributes of the entry. + Näytä tietueen kaikki attribuutit. + Show the attachments of the entry. Näytä tietueen liitteet. @@ -7257,6 +7949,10 @@ Ole hyvä ja harkitse uuden avaintiedoston luomista. Invalid YubiKey serial %1 Virheellinen Yubikeyn serial %1 + + Please present or touch your YubiKey to continue. + Jatka kytkemällä YubiKey-avaimesi tai koskettamalla sitä. + Enter password to encrypt database (optional): Syötä salasana salataksesi tietokannan (valinnainen): @@ -7405,7 +8101,7 @@ Ydin: %3 %4 Quick Unlock - Nopea lukituksen avaus + Pika-avaus Secret Service Integration @@ -7444,8 +8140,8 @@ Ydin: %3 %4 %1 minuutti%1 minuuttia - Botan library must be at least 2.11.x, found %1.%2.%3 - Botan-kirjaston täytyy olla vähintään versio 2.11.x. Löydettiin versio %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + Botan-kirjaston tulee olla ainakin %1, löytyi %2.%3.%4 Cryptographic libraries: @@ -7685,10 +8381,6 @@ Ydin: %3 %4 read password of the database from stdin lue tietokannan salasana stdin:istä - - allow app screen recordering and screenshots - salli sovelluksen näytön tallentaminen ja ruudunkaappaukset - Locked databases. Lukitut tietokannat. @@ -7701,6 +8393,10 @@ Ydin: %3 %4 Another instance of KeePassXC is already running. Toinen KeePassXC-instanssi on jo käynnissä. + + KeePassXC is not running. No open database to lock + KeePassXC ei ole käynnissä. Avoimia, lukittavia tietokantoja ei ole. + Fatal error while testing the cryptographic functions. Vakava virhe kryptografisia toimintoa testattaessa. @@ -7709,10 +8405,6 @@ Ydin: %3 %4 KeePassXC - Error KeePassXC - Virhe - - Warning: Failed to prevent screenshots on a top level window! - Varoitus: Ruudunkaappauksia ylimmän tason ikkunalla ei voitu estää! - Database password: Tietokannan salasana: @@ -7736,7 +8428,221 @@ Ydin: %3 %4 Vastauksen allekirjoitus Windows Hellolle epäonnistui - Please present or touch your YubiKey to continue. + Warning: Failed to block screenshot capture on a top-level window. + Varoitus: Kuvankaappauksen esto ylätason ikkunasta epäonnistui. + + + Invalid Cipher + Virheellinen salakirjoitus + + + Invalid KDF + Virheellinen KDF + + + Access to all entries is denied + Kaikkien tiedoeiden käyttö on estetty + + + allow screenshots and app recording (Windows/macOS) + salli kuvankaappaukset ja sovelluksen tallennus (Windows/macOS). + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + Todennusta ei tueta + + + Credential is excluded + Tietuetta on rajoitettu + + + Passkeys request canceled + Suojausavainpyyntö peruttiin + + + Invalid user verification + Virheellinen käyttäjävahvistus + + + Empty public key + Tyhjä julkinen avain + + + Invalid URL provided + Ilmoitettu URL-osoite ei kelpaa + + + Passkeys + Suojausavaimet + + + AES initialization failed + AES-alustus epäonnistui + + + AES encrypt failed + AES-salaus epäonnistui + + + Failed to store in Linux Keyring + Tallennus Linux-avainrenkaaseen epäonnistui + + + Polkit returned an error: %1 + Polkit palautti virheen: %1 + + + Could not locate key in keyring + Avainta ei löytynyt avainrenkaasta + + + Could not read key in keyring + Avainta ei voitu lukea avainrenkaasta + + + AES decrypt failed + AES-salauksen purku epäonnistui + + + No Polkit authentication agent was available + Polkit-todennusagenttia ei ollut käytettävissä + + + Polkit authorization failed + Polkit-todennus epäonnistui + + + No Quick Unlock provider is available + Pika-avaustapoja ei ole käytettävissä + + + Failed to init KeePassXC crypto. + KeePassXC-kryptauksen alustus epäonnistui + + + Failed to encrypt key data. + Avaindatan salaus epäonnistui + + + Failed to get Windows Hello credential. + Windows Hello -valtuutuksen hakeminen epäonnistui + + + Failed to decrypt key data. + Avaindatan salauksen avaus epäonnistui. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7776,18 +8682,6 @@ Ydin: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - Piilota vanhentuneet tietueet raportista - - - Show only entries which have URL set - Näytä vain tietueet joilla on URL - - - Show only entries which have browser settings in custom data - Näytä vain tietueet joilla on selaimen tallentamia asetuksia - Double-click entries to edit. Tuplaklikkaa tietuetta muokataksesi @@ -7852,17 +8746,25 @@ Ydin: %3 %4 Exclude from reports Poissulje raporteista + + Only show entries that have a URL + Näytä vain URL-osoitteen sisältävät tietueet + + + Only show entries that have been explicitly allowed or denied + Näytä vain tietueet, jotka on erikseen sallittu tai estetty + + + Show expired entries + Näytä erääntyneet tietueet + + + (Expired) + (erääntynyt) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - Piilota vanhentuneet tietueet raportista - - - Also show entries that have been excluded from reports - Näytä myös ne tietueet jotka on poissuljettu raporteista - Hover over reason to show additional details. Double-click entries to edit. Siirrä kursori syyn päälle nähdäksesi lisätietoja. Tuplaklikkaa tietueita muokataksesi niitä. @@ -7938,6 +8840,18 @@ Ydin: %3 %4 Exclude from reports Poissulje raporteista + + Show expired entries + Näytä erääntyneet tietueet + + + Show entries that have been excluded from reports + Näytä tietueet, joita ei sisällytetä raportteihin. + + + (Expired) + (erääntynyt) + ReportsWidgetHibp @@ -8034,6 +8948,65 @@ Ydin: %3 %4 Poissulje raporteista + + ReportsWidgetPasskeys + + Export + Vie + + + Import + Tuo + + + List of entry URLs + Lista tietueen URL:istä + + + Please wait, list of entries with Passkeys is being updated… + Odota kun suojausavaimia sisältävien tietueiden lista päivittyy... + + + No entries with Passkeys. + Suojausavaimia sisältäviä tietueita ei ole. + + + Title + Otsikko + + + Path + Polku + + + Username + Käyttäjätunnus + + + URLs + URL:t + + + Edit Entry… + Muokkaa tietuetta... + + + Delete Entry(s)… + Poista tietue...Poista tietueet... + + + Relying Party + Välittävät taho + + + Show expired entries + Näytä erääntyneet tietueet + + + (Expired) + (erääntynyt) + + ReportsWidgetStatistics @@ -8273,6 +9246,10 @@ Ydin: %3 %4 Search Help Etsi apua + + Save Search + Tallenna haku + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8504,11 +9481,38 @@ mutta arvo voi vaihdella ohjelmasta riippuen.)</p></body></html&g Vie kohteeseen %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All - Kaikki + Clear Search + Tyhjennä haku + + + All Entries + Kaikki tietueet Expired @@ -8519,6 +9523,25 @@ mutta arvo voi vaihdella ohjelmasta riippuen.)</p></body></html&g Heikot salasanat + + TagView + + Remove Search + Poista haku + + + Remove Tag + Poista tunniste + + + Confirm Remove Tag + Vahvista tunnisteen poisto + + + Remove tag "%1" from all entries in this database? + Poistetaanko tunniste "%1" tietokannan kaikilta tietueilta? + + TotpDialog @@ -8676,26 +9699,6 @@ Esimerkiksi: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Aloita salasanojesi turvallinen tallentaminen KeePassXC-tietokantaan - - Create new database - Luo uusi tietokanta - - - Open existing database - Avaa tietokanta - - - Import from KeePass 1 - Tuo KeePass 1 -tietokanta - - - Import from 1Password - Tuo 1Passwordista - - - Import from CSV - Tuo CSV-tiedostosta - Recent databases Viimeisimmät tietokannat @@ -8708,6 +9711,18 @@ Esimerkiksi: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Tervetuloa KeePassXC:n versioon %1 + + Create Database + + + + Open Database + + + + Import File + + WinUtils @@ -8724,31 +9739,8 @@ Esimerkiksi: JBSWY3DPEHPK3PXP Yleistä pikanäppäintä ei voitu rekisteröidä - - WindowsHello - - Failed to init KeePassXC crypto. - KeePassXC-kryptauksen alustus epäonnistui - - - Failed to encrypt key data. - Avaindatan salaus epäonnistui - - - Failed to get Windows Hello credential. - Windows Hello -valtuutuksen hakeminen epäonnistui - - - Failed to decrypt key data. - Avaindatan salauksen avaus epäonnistui. - - YubiKey - - %1 No interface, slot %2 - %1 Ei liitäntää, paikka %2 - General: Yleiset: @@ -8760,14 +9752,6 @@ Esimerkiksi: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - Uudista laitetunnisteet - - - Refresh - Päivitä - Hardware key slot selection Laiteavaimen paikan valinta @@ -8800,10 +9784,6 @@ Esimerkiksi: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove Haaste-vastaus asetettu, klikkaa muuttaaksesi tai poistaaksesi - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>Jos omistat <a href="https://www.yubico.com/">YubiKey:n</a> tai <a href="https://onlykey.io">OnlyKey:n</a>, voit käyttää sitä lisäturvakeinona.</p><p>Avain vaatii yhden paikan asettamista <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 haaste-vastaukseksi</a>.</p> - Detecting hardware keys… Etsitään laiteavaimia... @@ -8812,28 +9792,21 @@ Esimerkiksi: JBSWY3DPEHPK3PXP No hardware keys detected Laiteavaimia ei havaittu - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 Virheellinen paikka määritetty - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] Haaste-vastaus - Paikka %3 - The YubiKey PCSC interface has not been initialized. Yubikey:n PCSC-käyttöliittymää ei ole alustettu. - - Hardware key is currently in use. - Laiteavain on käytössä. - Could not find or access hardware key with serial number %1. Please present it to continue. Laiteavainta sarjanumerolla %1 ei löydetty. Ole hyvä ja liitä se jatkaaksesi. @@ -8850,6 +9823,21 @@ Esimerkiksi: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 Haaste-vastauksen valmistuminen epäonnistui PCSC:n virheellä: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + Paina + + + Passive + USB Challenge-Response Key no interaction required + Passiivi + YubiKeyInterfaceUSB @@ -8857,14 +9845,6 @@ Esimerkiksi: JBSWY3DPEHPK3PXP Unknown Tuntematon - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] Asetettu paikka - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] Haaste-vastaus - Paikka %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8879,10 +9859,6 @@ Esimerkiksi: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. Yubikey:n USB-käyttöliittymää ei ole alustettu. - - Hardware key is currently in use. - Laiteavain on käytössä. - Could not find hardware key with serial number %1. Please plug it in to continue. Laiteavainta sarjanumerolla %1 ei löydetty. Ole hyvä ja liitä se jatkaaksesi. @@ -8899,5 +9875,15 @@ Esimerkiksi: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 Haaste-vastauksen valmistuminen epäonnistui virheellä: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_fil.ts b/share/translations/keepassxc_fil.ts new file mode 100644 index 000000000..69c205a9b --- /dev/null +++ b/share/translations/keepassxc_fil.ts @@ -0,0 +1,9895 @@ + + + AboutDialog + + About KeePassXC + Tungkol sa KeePassXC + + + About + Tungkol + + + Report bugs at: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> + Mag-ulat ng mga bug sa: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> + + + KeePassXC is distributed under the terms of the GNU General Public License (GPL) version 2 or (at your option) version 3. + Ang KeePassXC ay ipinamamahagi sa ilalim ng mga tuntunin ng GNU General Public License (GPL) na bersyon 2 o (sa iyong opsyon) na bersyon 3. + + + Project Maintainers: + Mga Tagapanatili ng Proyekto: + + + Special thanks from the KeePassXC team go to debfx for creating the original KeePassX. + Espesyal na pasasalamat mula sa team ng KeePassXC pumunta sa debfx para sa paglikha ng orihinal na KeePassX. + + + Contributors + Mga contributor + + + <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">See Contributions on GitHub</a> + <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">Tingnan ang Mga Kontribusyon sa GitHub</a> + + + Debug Info + Debug Info + + + Include the following information whenever you report a bug: + Isama ang sumusunod na impormasyon sa tuwing mag-uulat ka ng bug: + + + Copy to clipboard + Kopyahin sa clipboard + + + + AccessControlDialog + + KeePassXC - Access Request + KeePassXC - Kahilingan sa Pag-access + + + Non-existing/inaccessible executable path. Please double-check the client is legit. + Hindi umiiral/hindi ma-access na maipapatupad na landas. Pakitingnan muli kung legit ang kliyente. + + + <html><head/><body><p><span style=" font-weight:600;">%1 </span>is requesting access to the following entries:</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">%1 </span>ay humihiling ng access sa mga sumusunod na entry:</p></body></html> + + + Name + Pangalan + + + PID + PID + + + Executable + Executable + + + Command Line + Command Line + + + Details + Mga Detalye + + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Ang desisyon mo ay tatandaan sa tagal habang ang humihiling na client AT KeePassXC ay tumatakbo. + + + Remember + Tandaan + + + Allow Selected + Payagan ang Napili + + + Deny All && Future + I-deny Lahat && Future + + + Allow All && &Future + Payagan Lahat && &Future + + + + AccessControlDialog::DenyButton + + Deny for this program + Tanggihan para sa programang ito + + + + AgentSettingsWidget + + Enable SSH Agent integration + I-enable ang pagsasama ng SSH Agent + + + Use Pageant + Gamitin ang Pageant + + + Use OpenSSH + Gamitin ang OpenSSH + + + Use both agents + Gamitin ang parehong mga agent + + + SSH_AUTH_SOCK override + Override ng SSH_AUTH_SOCK + + + SSH_AUTH_SOCK value + Value ng SSH_AUTH_SOCK + + + (empty) + (walang laman) + + + SSH_SK_PROVIDER value + Value ng SSH_SK_PROVIDER + + + SSH_SK_PROVIDER override + I-override ang SSH_SK_PROVIDER + + + No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. + Walang available na socket ng SSH Agent. Alinman ay tiyaking may SSH_AUTH_SOCK environment variable o magtakda ng override. + + + SSH Agent connection is working! + Gumagana ang koneksyon ng SSH Agent! + + + + ApplicationSettingsWidget + + Application Settings + Mga Application Setting + + + General + Pangkalahatan + + + Security + Security + + + This setting cannot be enabled when minimize on unlock is enabled. + Hindi maaaring i-enable ang setting na ito kapag na-enable ang pag-minimize ng pag-unlock. + + + Access error for config file %1 + Error sa pag-access para sa config file na %1 + + + Icon only + Icon lamang + + + Text only + Text lamang + + + Text beside icon + Text sa tabi ng icon + + + Text under icon + Text sa ilalim ng icon + + + Follow style + Sundin ang istilo + + + Monochrome + Monochrome + + + Monochrome (light) + Monochrome (light) + + + Monochrome (dark) + Monochrome (dark) + + + Colorful + Makulay + + + You must restart the application to set the new language. Would you like to restart now? + You must restart the application to set the new language. Would you like to restart now? + + + Reset Settings? + I-reset ang Mga Setting? + + + Are you sure you want to reset all general and security settings to default? + Sigurado ka bang nais mong i-reset ang pangkalahatan at mga setting ng seguridad sa default? + + + Select backup storage directory + Piliin ang direktoryo ng backup na storage + + + + ApplicationSettingsWidgetGeneral + + Basic Settings + Mga Pangunahing Setting + + + Startup + Magsimula + + + Start only a single instance of KeePassXC + Magsimula lamang ng isang halimbawa ng KeePassXC + + + Automatically launch KeePassXC at system startup + Awtomatikong i-launch ang KeePassXC sa pagsisimula ng system + + + Minimize window at application startup + I-minimize ang window sa pagsisimula ng application + + + Minimize window after unlocking database + I-minimize ang window pagkatapos i-unlock ang database + + + Remember previously used databases + Tandaan ang mga dating ginamit na database + + + recent files + kamakailang mga file + + + Load previously open databases on startup + Mag-load ng mga dating bukas na database sa pagsisimula + + + Remember database key files and security dongles + Tandaan ang mga key file at security dongle ng database + + + Check for updates at application startup once per week + Tingnan para sa mga update sa startup ng application isang beses bawat linggo + + + Include beta releases when checking for updates + Isama ang mga nilabas na beta kapag tumitingin ng mga update + + + On database unlock, show entries that + Sa pag-unlock ng database, ipakita ang mga entry na + + + have expired + On database unlock, show entries that... + nag-expire na + + + days + On database unlock, show entries that will expire within %1 days + araw + + + will expire within + On database unlock, show entries that... + ay mawawalan ng bisa sa loob ng + + + File Management + Pamamahala ng File + + + Automatically save after every change + Awtomatikong i-save pagkatapos ng bawat pagbabago + + + Automatically save when locking database + Awtomatikong maisi-save kapag nag-lock ng database + + + Automatically save non-data changes when locking database + Awtomatikong maisi-save ang non-data na mga pagbabago kapag nag-lock ng database + + + Automatically reload the database when modified externally + Awtomatikong i-reload ang database kapag binago sa panlabas + + + Backup database file before saving + I-backup ang database file bago i-save + + + Backup destination + Backup na destinasyon + + + Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". + Tinutukoy ang lokasyon ng backup file ng database. Mga pangyayari ng "{DB_FILENAME}" ay pinalitan ng filename ng naka-save na database nang walang extension. {TIME:<format>} ay pinalitan ng oras ng pag-backup, tingnan ang https://doc.qt.io/qt-5/qdatetime.html#toString. <format> default sa pag-format ng string "dd_MM_yyyy_hh-mm-ss". + + + {DB_FILENAME}.old.kdbx + {DB_FILENAME}.old.kdbx + + + Choose... + Pumili... + + + Use alternative saving method (may solve problems with Dropbox, Google Drive, GVFS, etc.) + Gumamit ng alternatibong paraan ng pag-save (maaaring malutas ang mga problema sa Dropbox, Google Drive, GVFS, atbp.) + + + Temporary file moved into place + Naisalugar ang pansamantalang file + + + Directly write to database file (dangerous) + Direktang sumulat sa database file (mapanganib) + + + Entry Management + Pamamahala ng Entry + + + Use group icon on entry creation + Gumamit ng icon ng grupo sa paggawa ng entry + + + Minimize when opening a URL + I-minimize kapag nagbubukas ng URL + + + Hide window when copying to clipboard + Itago ang window kapag kumukopya sa clipboard + + + Minimize + I-minimize + + + Drop to background + I-drop sa background + + + Favicon download timeout: + Timeout sa pag-download ng Favicon: + + + Website icon download timeout in seconds + Nag-timeout sa pag-download ng icon ng website sa ilang segundo + + + sec + Seconds + seg + + + User Interface + User Interface + + + Toolbar button style + Estilo ng button ng toolbar + + + Movable toolbar + Naigagalaw na toolbar + + + Language selection + Pagpili ng wika + + + Language: + Wika: + + + (restart program to activate) + (i-restart ang program para i-activate) + + + Toolbar button style: + Estilo ng button ng toolbar: + + + Show passwords in color + Ipakita ang mga password sa kulay + + + Use monospaced font for notes + Gumamit ng monospaced na font para sa mga tala + + + Minimize instead of app exit + I-minimize sa halip na i-exit ang app + + + Show a system tray icon + Ipakita ang system tray icon + + + Tray icon type + Uri ng tray icon + + + Tray icon type: + Uri ng tray icon: + + + Hide window to system tray when minimized + Itago ang window sa system tray kapag pinaliit + + + Reset settings to default… + I-reset ang mga setting sa default… + + + Auto-Type + Auto-Type + + + Use entry title to match windows for global Auto-Type + Gumamit ng pamagat ng entry para tumugma sa mga window para sa pandaigdigang Auto-Type + + + Use entry URL to match windows for global Auto-Type + Gumamit ng entry URL para tumugma sa mga window para sa pandaigdigang Auto-Type + + + Always ask before performing Auto-Type + Palaging magtanong bago isagawa ang Auto-Type + + + Hide expired entries from Auto-Type + Itago ang mga nag-expire na entry mula sa Auto-Type + + + Re-lock previously locked database after performing Auto-Type + Muling i-lock ang dating naka-lock na database pagkatapos magsagawa ng Auto-Type + + + Auto-Type start delay: + Auto-Type simulan ang pagkaantala: + + + Global Auto-Type shortcut: + Global Auto-Type na shortcut: + + + Auto-type start delay milliseconds + Auto-type na simulan ang pagkaantala ng millisecond + + + ms + Milliseconds + ms + + + Auto-Type typing delay: + Auto-Type na pagkaantala sa pag-type: + + + Global auto-type shortcut + Global auto-type na shortcut + + + Auto-type character typing delay milliseconds + Auto-type na pagkaantala ng pag-type ng character sa millisecond + + + Remember last typed entry for: + Tandaan ang huling na-type na entry para sa: + + + + ApplicationSettingsWidgetSecurity + + Timeouts + Mga timeout + + + Database lock timeout seconds + Mga segundo ng lock timeout ng database + + + sec + Seconds + seg + + + Clear clipboard after + I-clear ang clipboard pagkatapos + + + Clear search query after + I-clear ang query sa paghahanap pagkatapos + + + min + Minutes + min + + + Clipboard clear seconds + I-clear ang clipboard ng segundo + + + Lock databases after inactivity of + I-lock ang mga database matapos hindi maging aktibo ng + + + Convenience + Convenience + + + Enable database quick unlock (Touch ID / Windows Hello) + I-enable ang mabilisang pag-unlock ng database (Touch ID / Windows Hello) + + + Lock databases when session is locked or lid is closed + I-lock ang mga database kapag naka-lock ang session o nakasara ang lid + + + Lock databases after minimizing the window + I-lock ang mga database matapos i-minimize ang window + + + Require password repeat when it is visible + Hilingin ang pag-ulit ng password kapag ito ay nakikita na + + + Hide passwords when editing them + Itago ang mga password kapag ine-edit ang mga ito + + + Use placeholder for empty password fields + Gumamit ng placeholder para sa mga walang laman na patlang ng password + + + Hide passwords in the entry preview panel + Itago ang mga password sa panel ng preview ng entry + + + Hide entry notes by default + Itago ang mga note ng entry bilang default + + + Move entries to recycle bin without confirmation + Ilipat ang mga entry sa recycle bin nang walang kumpirmasyon + + + Enable double click to copy the username/password entry columns + I-enable ang double click para kopyahin ang mga column ng username/password entry + + + Privacy + Privacy + + + Use DuckDuckGo service to download website icons + Gamitin ang serbisyo ng DuckDuckGo para i-download ang mga icon ng website + + + Hide TOTP in the entry preview panel + + + + + AutoType + + The requested Auto-Type sequence cannot be used due to an error: + Ang hiniling na Auto-Type sequence ay hindi magagamit dahil sa isang error: + + + Auto-Type Error + Auto-Type Error + + + Permission Required + Kinakailangan ang Pahintulot + + + KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. + Ang KeePassXC ay nangangailangan ng pahintulot sa Accessibility upang maisagawa ang entry-level na Auto-Type. Kung nagbigay ka na ng pahintulot, maaaring kailanganin mong i-restart ang KeePassXC. + + + KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. + Kinakailangan ng KeePassXC ang pahintulot sa Accessibility at Screen Recorder para maisagawa ang global Auto-Type. Kinakailangan ang Pagre-record ng Screen upang magamit ang pamagat ng window upang maghanap ng mga entry. Kung nagbigay ka na ng pahintulot, maaaring kailanganin mong i-restart ang KeePassXC. + + + Invalid entry provided + Invalid na ibinigay na entry + + + Bracket imbalance detected, found extra { or } + Na-detect ang imbalance ng bracket, may nakitang sobra { or } + + + Too many repetitions detected, max is %1: %2 + Masyadong maraming pag-uulit ang natukoy, ang max ay %1: %2 + + + Very slow key press detected, max is %1: %2 + Natukoy ang nagpabagal sa key press, ang max ay %1: %2 + + + Very long delay detected, max is %1: %2 + Natukoy ang mahabang pagkaantala, ang max ay %1: %2 + + + Entry does not have attribute for PICKCHARS: %1 + Ang entry ay walang attribute para sa PICKCHARS: %1 + + + Invalid conversion type: %1 + Invalid na uri ng conversion: %1 + + + Invalid conversion syntax: %1 + Invalid na conversion syntax: %1 + + + Invalid regular expression syntax %1 +%2 + Invalid na syntax ng regular na expression na %1 +%2 + + + Invalid placeholder: %1 + Invalid na placeholder: %1 + + + + AutoTypeAssociationsModel + + Window + Window + + + Sequence + Pagkakasunod-sunod + + + (empty) + (walang laman) + + + Default sequence + Default na sequence + + + + AutoTypeMatchModel + + Group + Group + + + Title + Pamagat + + + Username + Username + + + Sequence + Pagkakasunod-sunod + + + + AutoTypePlatformX11 + + Trying to send invalid keysym. + Sinusubukang magpadala ng invalid keysym. + + + Sequence aborted: Caps Lock is on + Na-abort ang sequence: Naka-on ang Caps Lock + + + Sequence aborted: Modifier keys held by user + Na-abort ang sequence: Mga modifier key na hawak ng user + + + Unable to get valid keycode for key: + Hindi makakuha ng valid keycode para sa key: + + + + AutoTypeSelectDialog + + Auto-Type - KeePassXC + Auto-Type - KeePassXC + + + Double click a row to perform Auto-Type or find an entry using the search: + I-double click ang isang row para magsagawa ng Auto-Type o maghanap ng entry gamit ang search: + + + <p>You can use advanced search queries to find any entry in your open databases. The following shortcuts are useful:<br/> +Ctrl+F - Toggle database search<br/> +Ctrl+1 - Type username<br/> +Ctrl+2 - Type password<br/> +Ctrl+3 - Type TOTP<br/> +Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> + <p>Maaari kang gumamit ng mga advanced na query sa paghahanap para mahanap ang anumang entry sa iyong mga bukas na database. Ang mga sumusunod na shortcut ay kapaki-pakinabang:<br/> +Ctrl+F - Toggle database search<br/> +Ctrl+1 - Type username<br/> +Ctrl+2 - Type password<br/> +Ctrl+3 - Type TOTP<br/> +Ctrl+4 - Use Virtual Keyboard (Sa Windows Lang)</p> + + + Search all open databases + Maghanap sa lahat ng bukas na database + + + Search… + Maghanap… + + + Type Sequence + Uri ng Sequence + + + Cancel + Kanselahin + + + Type {USERNAME} + Uri ng {USERNAME} + + + Type {PASSWORD} + Uri ng {PASSWORD} + + + Type {TOTP} + Uri ng {TOTP} + + + Copy Username + kopyahin ang Username + + + Copy Password + Kopyahin ang Password + + + Copy TOTP + Kopyahin ang TOTP + + + Use Virtual Keyboard + Gamitin ang Virtual na Keyboard + + + + BrowserAccessControlDialog + + KeePassXC - Browser Access Request + KeePassXC - Kahilingan sa Pag-access sa Browser + + + %1 is requesting access to the following entries: + %1 ay humihiling ng access sa mga sumusunod na entry: + + + Remember access to checked entries + Tandaan ang access sa mga naka-check na entry + + + Remember + Tandaan + + + Allow access to entries + Payagan ang access sa mga entry + + + Allow Selected + Payagan ang Napili + + + Deny All + I-deny Lahat + + + Disable for this site + I-disable para sa site na ito + + + Undo + + + + + BrowserEntrySaveDialog + + Ok + Ok + + + Cancel + Kanselahin + + + You have multiple databases open. +Please select the correct database for saving credentials. + Marami kang nakabukas na database. +Mangyaring piliin ang tamang database para sa pag-save ng mga kredensyal. + + + KeePassXC - Select Database + + + + + BrowserPasskeysConfirmationDialog + + Cancel + Kanselahin + + + Update + + + + Authenticate + + + + Register new + + + + Register + + + + Timeout in <b>%n</b> seconds... + + + + Do you want to register Passkey for: + + + + Existing Passkey found. +Do you want to register a new Passkey for: + + + + Select the existing Passkey and press Update to replace it. + + + + Authenticate Passkey credentials for: + + + + Relying Party: %1 + + + + Username: %1 + + + + KeePassXC - Passkey credentials + + + + + BrowserService + + A request for creating a new group "%1" has been received. +Do you want to create this group? + + Isang kahilingan para sa paglikha ng bagong pangkat na "%1" ay natanggap. +Gusto mo bang likhain ang pangkat na ito? + + + + You have received an association request for the following database: +%1 + +Give the connection a unique name or ID, for example: +chrome-laptop. + Nakatanggap ka ng kahilingan sa pag-uugnay para sa sumusunod na database: +%1 + +Bigyan ang koneksyon ng isang natatanging pangalan o ID, halimbawa: +chrome-laptop. + + + Save and allow access + I-save at payagan ang access + + + A shared encryption key with the name "%1" already exists. +Do you want to overwrite it? + May umiiral nang nakabahaging encryption key na may pangalang "%1". +Gusto mo bang i-overwrite ito? + + + Do you want to update the information in %1 - %2? + Gusto mo bang i-update ang impormasyon sa %1 - %2? + + + A request for deleting entry "%1" has been received. +Do you want to delete the entry? + + Isang kahilingan para sa pag-delete ng entry na "%1" ay natanggap. +Gusto mo bang i-delete ang entry? + + + + %1 (Passkey) + + + + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + + + + KeePassXC - Create a new group + + + + Disable + I-disable + + + KeePassXC - Overwrite existing key? + + + + KeePassXC - Update Passkey + + + + KeePassXC - Update Entry + + + + KeePassXC - Delete entry + + + + KeePassXC - New key association request + + + + Passkey + + + + + BrowserSettingsWidget + + Dialog + Dialog + + + This is required for accessing your databases with KeePassXC-Browser + Ito ay kinakailangan para sa pag-access sa mga database mo gamit ang KeePassXC-Browser + + + Enable browser integration + I-enable ang browser integration + + + General + Pangkalahatan + + + Browsers installed as snaps are currently not supported. + Ang mga browser na naka-install bilang mga snap ay kasalukuyang hindi suportado. + + + Enable integration for these browsers: + I-enable ang integration para sa mga browser na ito: + + + Vivaldi + Vivaldi + + + &Edge + &Edge + + + Firefox + Firefox + + + Tor Browser + Tor Browser + + + Brave + Brave + + + Google Chrome + Google Chrome + + + Chromium + Chromium + + + Show a notification when credentials are requested + Credentials mean login data requested via browser extension + Ipakita ang notification kapag hiniling ang mga kredensyal + + + Request to unlock the database if it is locked + Hilingin na i-unlock ang database kung ito ay naka-lock + + + Only entries with the same scheme (http://, https://, …) are returned. + Tanging ang mga entry lamang na may parehong scheme (http://, https://, …) ang ibinabalik. + + + Match URL scheme (e.g., https://example.com) + Itugma ang scheme ng URL (hal., https://example.com) + + + Only returns the best matches for a specific URL instead of all entries for the whole domain. + Tanging ang pinakamahusay na mga tugma para sa isang partikular na URL sa halip na ang lahat ng mga entry para sa buong domain ang ibinabalik. + + + Return only best-matching credentials + Ibalik lamang ang pinakamahusay na tumutugmang mga kredensyal + + + Returns expired credentials. String [expired] is added to the title. + Ibinabalik ang mga nag-expire na kredensyal. Ang string na [expired] ay idinagdag sa pamagat. + + + Allow returning expired credentials + Payagan ang pagbabalik ng mga nag-expire na kredensyal + + + All databases connected to the extension will return matching credentials. + Ang lahat ng database na konektado sa extension ay magbabalik ng tumutugmang mga kredensyal. + + + Search in all opened databases for matching credentials + Credentials mean login data requested via browser extension + Maghanap sa lahat ng nakabukas na database para sa pagtutugma ng mga kredensyal + + + Advanced + Advanced + + + Never ask before accessing credentials + Credentials mean login data requested via browser extension + Huwag kailanman itanong bago i-access ang mga kredensyal + + + Never ask before updating credentials + Credentials mean login data requested via browser extension + Huwag kailanman itanong bago mag-update ng mga kredensyal + + + Do not ask permission for HTTP Basic Auth + An extra HTTP Basic Auth setting + Huwag humingi ng pahintulot para sa HTTP Basic Auth + + + Automatically creating or updating string fields is not supported. + Hindi sinusuportahan ang awtomatikong paggawa o pag-update ng mga string field. + + + Return advanced string fields which start with "KPH: " + Ibalik ang mga advanced na field ng string na nagsisimula sa "KPH: " + + + Don't display the popup suggesting migration of legacy KeePassHTTP settings. + Huwag ipakita ang popup na nagmumungkahi ng paglipat ng mga legacy na setting ng KeePassHTTP. + + + Do not prompt for KeePassHTTP settings migration. + Huwag i-prompt para sa paglipat ng mga setting ng KeePassHTTP. + + + Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup. + Awtomatikong ina-update ang KeePassXC o keepassxc-proxy binary path sa mga native na script ng pagmemensahe sa startup. + + + Update native messaging manifest files at startup + I-update ang mga manifest file ng native messaging sa startup + + + Use a custom proxy location if you installed a proxy manually. + Gumamit ng custom na lokasyon ng proxy kung manwal kang nag-install ng proxy. + + + Use a custom proxy location: + Meant is the proxy for KeePassXC-Browser + Gumamit ng custom na lokasyon ng proxy: + + + Custom proxy location field + Lokasyon ng field ng custom na proxy + + + Browser for custom proxy file + Browser para sa custom na proxy file + + + Browse… + Button for opening file dialog + Mag-browse… + + + Use a custom browser configuration location: + Gumamit ng custom na lokasyon ng browser configuration: + + + Browser type: + Uri ng browser: + + + Toolbar button style + Estilo ng button ng toolbar + + + Config Location: + Lokasyon ng Config: + + + Custom browser location field + Lokasyon ng field ng custom na browser + + + Browse for custom browser path + Mag-browse para sa isang custom na browser path + + + Custom extension ID: + Custom na extension ID: + + + Custom extension ID + Custom na extension ID + + + Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 + Dahil sa Snap sandboxing, dapat kang mag-run ng script para i-enable ang pag-integrate ng browser.<br />Makukuha mo ang script na ito mula sa %1 + + + KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2 and %3. %4 + Kailangan ang KeePassXC-Browser para gumana ang browser integration. <br />I-download ito para sa %1 at %2 at %3. %4 + + + Please see special instructions for browser extension use below + Pakitingnan ang mga espesyal na tagubilin para sa paggamit ng extension ng browser sa ibaba + + + Executable Files + Mga Executable na File + + + All Files + Lahat ng Mga File + + + Select custom proxy location + Pumili ng custom na lokasyon ng proxy + + + Select native messaging host folder location + Piliin ang lokasyon ng folder ng host ng native na pagmemensahe + + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + + + + <b>Warning:</b> Only adjust these settings if necessary. + + + + The custom proxy location does not exist. + + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + + + + CloneDialog + + Clone Entry Options + I-clone ang Mga Opsyon ng Entry + + + Append ' - Clone' to title + Idugtong ' - Clone' sa pamagat + + + Replace username and password with references + Palitan ang username at password ng mga sanggunian + + + Copy history + Kopyahin ang history + + + + CsvImportWidget + + size, rows, columns + sukat, hilera, hanay + + + Column Association + Column Association + + + Password + Password + + + Username + Username + + + Title + Pamagat + + + Group + Group + + + URL + URL + + + Notes + Mga tala + + + TOTP + TOTP + + + Created + Nilikha na + + + Last Modified + Huling Binago + + + Icon + Icon + + + Encoding + Ini-encode + + + Codec + Codec + + + Text is qualified by + Ang text ay kwalipikado ng + + + Text qualification + Kwalipikasyon sa text + + + Fields are separated by + Ang mga field ay pinaghihiwalay ng + + + Field separation + Paghihiwalay ng field + + + Comments start with + Nagsisimula ang mga comment sa + + + Header lines skipped + Nilaktawan ang mga linya ng header + + + Number of header lines to discard + Bilang ng mga linya ng header na tatanggihan + + + First line has field names + Ang unang linya ay may mga pangalan ng field + + + Consider '\' an escape character + Isaalang-alang ang '\' na isang escape character + + + Preview + Preview + + + CSV import preview + Preview ng pag-import ng CSV + + + Not Present + Hindi Naroroon + + + Column %1 + Column na %1 + + + [%n more message(s) skipped] + [%n higit pang mensahe ang nilaktawan][%n higit pang (mga) mensahe ang nilaktawan] + + + Failed to parse CSV file: %1 + + + + Imported from CSV file: %1 + + + + + CsvParserModel + + %n row(s) + CSV row count + %n row%n (mga)row + + + %n column(s) + CSV column count + %n ng column%n ng (mga)column + + + + Database + + Passwords + Root group name + Passwords + + + File %1 does not exist. + Ang file na %1 ay wala. + + + Unable to open file %1. + Hindi mabuksan ang file na %1. + + + Error while reading the database: %1 + Error habang binabasa ang database: %1 + + + Could not save, database does not point to a valid file. + Hindi mai-save, hindi tumutugma ang database sa isang valid file. + + + Database save is already in progress. + Nasa progreso na ang pag-save ng database. + + + Could not save, database has not been initialized! + Hindi mai-save, hindi makapagsimula ang database! + + + Database file has unmerged changes. + Ang database file ay may mga hindi naisama sa pagbabago. + + + %1 +Backup database located at %2 + %1 +Backup database na matatagpuan sa %2 + + + Key not transformed. This is a bug, please report it to the developers. + Hindi nabago ang key. Ito ay isang bug, mangyaring iulat ito sa mga developer. + + + Recycle Bin + Recycle Bin + + + + DatabaseOpenDialog + + Unlock Database - KeePassXC + I-unlock ang Database -KeePassXC + + + + DatabaseOpenWidget + + Unlock KeePassXC Database + I-unlock ang Database ng KeePassXC + + + Enter Password: + Ilagay ang Password: + + + Password field + Field ng password + + + Hardware key slot selection + Pagpili ng hardware key slot + + + Key file to unlock the database + Key file upang i-unlock ang database + + + Browse for key file + Mag-browse para sa key file + + + Browse… + Mag-browse… + + + Unlock Database + I-unlock ang Database + + + Cancel + Kanselahin + + + Unlock + I-unlock + + + Please present or touch your YubiKey to continue… + Mangyaring ipakita o pindutin ang iyong YubiKey para magpatuloy… + + + Database Version Mismatch + Hindi Tugma sa Bersyon ng Database + + + The database you are trying to open was most likely +created by a newer version of KeePassXC. + +You can try to open it anyway, but it may be incomplete +and saving any changes may incur data loss. + +We recommend you update your KeePassXC installation. + Ang database na sinusubukan mong buksan ay malamang na +nilikha ng isang mas bagong bersyon ng KeePassXC. + +Maaari mo pa ring subukang buksan ito, ngunit maaaring hindi ito kumpleto +at ang pag-save ng anumang mga pagbabago ay maaaring magkaroon ng pagkawala ng data. + +Inirerekomenda namin na i-update mo ang pag-install mo ng KeePassXC. + + + Open database anyway + Buksan pa rin ang database + + + Database unlock canceled. + Kinansela ang pag-unlock ng database. + + + Unlock failed and no password given + Nabigo ang pag-unlock at walang ibinigay na password + + + Unlocking the database failed and you did not enter a password. +Do you want to retry with an "empty" password instead? + +To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. + Nabigo ang pag-unlock sa database at hindi ka naglagay ng password. +Gusto mo bang subukang muli gamit ang "walang laman" na password sa halip? + +Para maiwasan ang paglabas ng error na ito, dapat kang pumunta sa "Settings ng Database / Seguridad" at i-reset ang iyong password. + + + Retry with empty password + Subukang muli gamit ang walang laman na password + + + Failed to open key file: %1 + Nabigong buksan ang key file: %1 + + + Old key file format + File format ng dating key + + + You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> + Gumagamit ka ng lumang format ng key file na maaaring<br>magpahinto sa suporta ng KeePassXC sa hinaharap.<br><br>Mangyaring isaalang-alang ang pagbuo ng bagong key file sa pamamagitan ng pagpunta sa:<br><strong>Database &gt; Seguridad ng Database &gt; Baguhin ang Key File.</strong><br> + + + Don't show this warning again + Huwag ipakitang muli ang babalang ito + + + All files + Lahat ng mga file + + + Key files + Mga key file + + + Select key file + Piliin ang key file + + + Cannot use database file as key file + Hindi magagamit ang database file bilang key file + + + authenticate to access the database + patotohanan para ma-access ang database + + + Failed to authenticate with Quick Unlock: %1 + + + + Select Key File: + + + + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + + + + + DatabaseSettingWidgetMetaData + + Passwords + Passwords + + + + DatabaseSettingsDialog + + General + Pangkalahatan + + + Security + Security + + + Database Credentials + Mga Kredensyal sa Database + + + Encryption Settings + Mga Setting ng Pag-encrypt + + + Browser Integration + Pagsasama ng Browser + + + Maintenance + Maintenance + + + + DatabaseSettingsWidgetBrowser + + KeePassXC-Browser settings + KeePassXC-Mga Browser setting + + + Disconnect all browsers + Idiskonekta ang lahat ng browser + + + Forget all site-specific settings on entries + Kalimutan ang lahat ng mga setting na partikular sa site sa mga entry + + + Refresh database root group ID + I-refresh ang database root group ID + + + Stored keys + Naka-store na mga key + + + Stored browser keys + Naka-store na mga key ng browser + + + Remove selected key + Alisin ang napiling key + + + Remove + Alisin + + + Delete the selected key? + I-delete ang napiling key? + + + Do you really want to delete the selected key? +This may prevent connection to the browser plugin. + Gusto mo bang i-delete ang napiling key? +Maaaring pigilan nito ang koneksyon sa browser plugin. + + + Key + Key + + + Value + Value + + + Created + Nalikha na + + + Enable Browser Integration to access these settings. + I-enable ang Browser Integration para ma-access ang mga setting na ito. + + + Do you really want to disconnect all browsers? +This may prevent connection to the browser plugin. + Gusto mo bang idiskonekta ang lahat ng browser? +Maaaring pigilan nito ang koneksyon sa browser plugin. + + + No shared encryption keys found in KeePassXC settings. + Walang nahanap na nakabahaging encryption key sa settings ng KeePassXC. + + + Successfully removed %n encryption key(s) from KeePassXC settings. + Matagumpay na na-remove ang %n encryption key mula sa mga setting ng KeePassXC.Matagumpay na na-remove ang %n (mga) encryption key mula sa mga setting ng KeePassXC. + + + Do you really want forget all site-specific settings on every entry? +Permissions to access entries will be revoked. + Gusto mo bang kalimutan ang lahat ng setting na partikular sa site sa bawat entry? +Ang pahintulot na ma-access ang mga entry ay babawiin. + + + Removing stored permissions… + Inaalis ang mga naka-store na pahintulot… + + + Abort + I-abort + + + Successfully removed permissions from %n entry(s). + Matagumpay na na-remove ang mga permission mula sa %n na entry.Matagumpay na na-remove ang mga permission mula sa %n na (mga) entry. + + + The active database does not contain an entry with permissions. + Ang aktibong database ay hindi naglalaman ng entry na may mga permission. + + + Refresh database ID + I-refresh ang database ID + + + Do you really want refresh the database ID? +This is only necessary if your database is a copy of another and the browser extension cannot connect. + Gusto mo bang i-refresh ang database ID? +Ito ay kinakailangan lamang kung ang iyong database ay isang kopya ng isa pa at ang extension ng browser ay hindi makakonekta. + + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + I-convert ang mga legacy na attribute ng KeePassHTTP -Browser na tugma sa custom data + + + No keys found + + + + Removed keys from database + + + + Removed permissions + + + + No entry with permissions found! + + + + + DatabaseSettingsWidgetDatabaseKey + + Add additional protection… + Magdagdag ng karagdagang proteksyon… + + + No password set + Walang na-set na password + + + WARNING! You have not set a password. Using a database without a password is strongly discouraged! + +Are you sure you want to continue without a password? + BABALA! Hindi ka nagtakda ng password. Ang paggamit ng database na walang password ay mahigpit na hindi hinihikayat! + +Sigurado ka bang gusto mong magpatuloy nang walang password? + + + Continue without password + Magpatuloy nang walang password + + + No encryption key added + Walang idinagdag na encryption key + + + You must add at least one encryption key to secure your database! + Dapat kang magdagdag ng kahit isang encryption key para maprotektahan ang database mo! + + + Unknown error + Hindi kilalang error + + + Failed to change database credentials + Nabigong baguhin ang mga kredensyal ng database + + + Weak password + Mahinang password + + + You must enter a stronger password to protect your database. + + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + + + + + DatabaseSettingsWidgetEncryption + + Decryption Time: + Oras ng Pag-decrypt: + + + Decryption time in seconds + Segundo na oras ng pag-decrypt + + + Higher values offer more protection, but opening the database will take longer. + Ang mas mataas na value ay nag-aalok ng higit na proteksyon, ngunit ang pagbubukas ng database ay mas babagal. + + + Database format: + Format ng database + + + Database format + Format ng database + + + Format cannot be changed: Your database uses KDBX 4 features + Hindi mababago ang format: Gumagamit ang database mo ng mga feature ng KDBX 4 + + + Unless you need to open your database with other programs, always use the latest format. + Maliban kung kailangan mong buksan ang iyong database sa iba pang mga programa, palaging gamitin ang pinakabagong format. + + + Encryption Algorithm: + Pag-encrypt ng Algorithm: + + + Encryption algorithm + Pag-encrypth ng algorithm + + + AES: 256 Bit (default) + AES: 256 Bit (default) + + + Twofish: 256 Bit + Twofish: 256 Bit + + + Key Derivation Function: + Key Derivation na Function: + + + Key derivation function + Key derivation na function + + + Transform rounds: + Baguhin ang mga round: + + + Transform rounds + Baguhin ang mga round + + + Memory Usage: + Paggamit ng Memory: + + + Memory usage + Paggamit ng Memory + + + Parallelism: + Parallelism: + + + Parallelism + Parallelism + + + KDBX 4 (recommended) + KDBX 4 (inirerekomenda) + + + KDBX 3 + KDBX 3 + + + Number of rounds too high + Key transformation rounds + Masyadong mataas ang bilang ng mga round + + + You are using a very high number of key transform rounds with Argon2. + +If you keep this number, your database may take hours, days, or even longer to open. + Gumagamit ka ng napakataas na bilang ng mga key transform round sa Argon2. + +Kung pananatilihin mo ang numerong ito, maaaring tumagal ng oras, araw, o mas matagal pa bago mabuksan ang database mo. + + + Understood, keep number + Naintindihan, panatilihin ang bilang + + + Cancel + Kanselahin + + + Number of rounds too low + Key transformation rounds + Masyadong mababa ang bilang ng mga round + + + You are using a very low number of key transform rounds with AES-KDF. + +If you keep this number, your database will not be protected from brute force attacks. + Gumagamit ka ng napakababang bilang ng mga key transform round sa AES-KDF. + +Kung pananatilihin mo ang numerong ito, hindi mapoprotektahan ang database mo mula sa mga brute-force na pag-atake. + + + KDF unchanged + Hindi nabago ang KDF + + + Failed to transform key with new KDF parameters; KDF unchanged. + Nabigong i-transform ang key gamit ang mga bagong parameter ng KDF; Ang KDF ay hindi nabago. + + + MiB + Abbreviation for Mebibytes (KDF settings) + MiB MiB + + + thread(s) + Threads for parallel execution (KDF settings) + thread (mga)thread + + + Encryption Settings: + + + + Basic + + + + Advanced + Advanced + + + + DatabaseSettingsWidgetFdoSecrets + + Exposed Entries + Mga Expose na Entry + + + Don't expose this database + Huwag i-expose ang database na ito + + + Expose entries under this group: + Ipakita ang mga entry sa ilalim ng group na ito: + + + Enable Secret Service to access these settings. + I-enable ang Secret Service para ma-access ang mga setting na ito. + + + + DatabaseSettingsWidgetGeneral + + Database Metadata + Metadata ng Database + + + Database name: + Pangalan ng database: + + + Database name field + Field ng pangalan ng database + + + Database description: + Field ng paglalarawan ng database + + + Database description field + Field ng paglalarawan ng database + + + Default username: + Default na username: + + + Default username field + Default na field ng username + + + History Settings + Mga History Setting + + + Maximum number of history items per entry + Maximum na bilang ng mga item sa history bawat entry + + + Maximum size of history per entry + Pinakamataas na sukat ng history sa bawat entry + + + MiB + MiB + + + Use recycle bin + Gumamit ng recycle bin + + + Additional Database Settings + Karagdagang Mga Database Setting + + + Enable compression (recommended) + I-enable ang compression (inirerekomenda) + + + Delete Recycle Bin + I-delete ang Recycle Bin + + + Do you want to delete the current recycle bin and all its contents? +This action is not reversible. + Gusto mo bang i-delete ang kasalukuyang recycle bin at lahat ng nilalaman nito? +Ang aksyon na ito ay hindi na maaarin mabawi. + + + (old) + (luma) + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + Kapag sine-save ang setting na ito o nag-e-edit ng entry +ang pinakamatandang mga item sa history ng isang entry ay magiging +inalis tulad na lamang ang tinukoy na halaga +ng mga entry ay nananatili sa karamihan. + + + Limit the amount of history items per entry to: + Limitahan ang dami ng mga item sa history ng bawat entry sa: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + Kapag sine-save ang setting na ito o nag-e-edit ng entry +ang pinakamatandang mga item sa kasaysayan ng isang entry ay ire-remove +para ang natitirang mga item sa history na +magdaragdag ng hanggang sa tinukoy na halaga sa pinakamaraming. + + + Limit the total size of history items per entry to: + Limitahan ang kabuuang sukat ng mga item sa history ng bawat entry sa: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Ilipat ang mga entry sa isang recycle bin group +sa halip na tanggalin ang mga ito mula sa database. +Ang mga entry na na-delete mula sa recycle bin ay +na-delete mula sa database. + + + Autosave delay since last change + + + + Autosave delay + + + + Autosave delay since last change in minutes + + + + min + min + + + Autosave delay since last change checkbox + + + + + DatabaseSettingsWidgetKeeShare + + Sharing + Pagbabahagi + + + Breadcrumb + Breadcrumb + + + Type + Uri + + + Path + Path + + + Last Signer + Huling Signer + + + Certificates + Certificates + + + > + Breadcrumb separator + > + + + + DatabaseSettingsWidgetMaintenance + + Manage Custom Icons + Pamahalaan ang Mga Custom Icon + + + Delete selected icon(s) + I-delete ang (mga) napiling icon + + + Delete all custom icons not in use by any entry or group + I-delete ang lahat ng custom na icon na hindi ginagamit ng anumang entry o group + + + Purge unused icons + I-purge ang mga hindi nagamit na icon + + + Confirm Deletion + Kumpirmahin ang Pag-delete + + + At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? + Hindi bababa sa isa sa mga napiling icon ang kasalukuyang ginagamit ng hindi bababa sa isang entry o pangkat. Ang mga icon ng lahat ng apektadong entry at pangkat ay papalitan ng default na icon. Sigurado ka bang nais mong i-delete ang mga icon na kasalukuyang ginagamit? + + + Custom Icons Are In Use + Ginagamit na ang Mga Custom na Icon + + + All custom icons are in use by at least one entry or group. + Ang lahat ng mga custom na icon ay ginagamit ng hindi bababa sa isang entry o pangkat. + + + Purged Unused Icons + Na-purge na Hindi Nagamit na Mga Icon + + + Purged %n icon(s) from the database. + Na-purge na ang (mga) icon ng %n mula sa database.Na-purge na ang icon ng %n mula sa database. + + + + DatabaseSettingsWidgetMetaDataSimple + + Database Name: + Pangalan ng Database: + + + Database name field + Field ng pangalan ng database + + + Description: + Paglalarawan: + + + Database description field + Field ng paglalarawan ng database + + + + DatabaseTabWidget + + Database creation error + Error sa paglikha ng database + + + The created database has no key or KDF, refusing to save it. +This is definitely a bug, please report it to the developers. + Ang nilikhang database ay walang key o KDF, hindi ito mai-save. +Tiyak na bug ito, mangyaring i-ulat sa mga developer. + + + KeePass 2 Database + KeePass 2 Database + + + All files + Lahat ng mga file + + + Open database + Buksan ang database + + + Failed to open %1. It either does not exist or is not accessible. + Nabigong buksan ang %1. Maaaring hindi umiiral ito o hindi naa-access. + + + CSV file + CSV file + + + Merge database + Pagsamahin ang dabatase + + + Export database to CSV file + I-export ang database sa CSV file + + + Writing the CSV file failed. + Nabigo ang pagsulat ng CSV file. + + + Writing the HTML file failed. + Nabigo ang pagsulat ng HTML file. + + + Export database to XML file + I-export ang database sa XML file + + + XML file + XML file + + + Writing the XML file failed + Nabigo ang pagsulat ng XML file + + + Export Confirmation + I-export ang Kumpirmasyon + + + You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? + Ie-export mo na ang database mo sa isang hindi naka-encrypt na file. Iiwan nitong mahina ang iyong mga password at sensitibong impormasyon! Sigurado ka bang gusto mong magpatuloy? + + + %1 [Locked] + Database tab name modifier + %1 [Naka-lock] + + + + DatabaseWidget + + Searches and Tags + Mga Paghahanap at Tag + + + Searching… + Naghahanap… + + + Shared group… + Nakabahaging group… + + + Confirm Auto-Type + Kumpirmahin ang Auto-Type + + + Perform Auto-Type into the previously active window? + Isagawa ang Auto-Type sa dating aktibong window? + + + Execute command? + Ipatupad ang command? + + + Do you really want to execute the following command?<br><br>%1<br> + Nais mo bang isagawa ang sumusunod na command?<br><br>%1<br> + + + Remember my choice + Tandaan ang aking pinili + + + Delete group + I-delete ang group + + + Do you really want to delete the group "%1" for good? + Gusto mo bang i-delete ang group na "%1" nang tuluyan? + + + Move group to recycle bin? + Ilipat ang grupo sa recycle bin? + + + Do you really want to move the group "%1" to the recycle bin? + Gusto mo bang ilipat ang group na "%1" sa recycle bin? + + + Expired entries + Mga nag-expire na entry + + + Entries expiring within %1 day(s) + Mag-e-expire ang mga entry sa loob ng %1 na arawMag-e-expire ang mga entry sa loob ng %1 na (mga) araw + + + No current database. + Walang kasalukuyang database. + + + No source database, nothing to do. + Walang source database, walang magawa. + + + Successfully merged the database files. + Matagumpay na pinagsama ang mga file ng database. + + + Database was not modified by merge operation. + Ang database ay hindi binago ng operasyon ng pagsasama. + + + Search Results (%1) + Mga Resulta ng Paghahanap (%1) + + + No Results + Walang Mga Resulta + + + Save + I-save + + + Enter a unique name or overwrite an existing search from the list: + Maglagay ng natatanging pangalan o i-overwrite ang isang umiiral na nahanap mula sa listahan: + + + Save Search + I-save ang Search + + + Lock Database? + I-lock ang Database? + + + You are editing an entry. Discard changes and lock anyway? + Nag-e-edit ka ng entry. I-discard ang mga pagbabago at i-lock pa rin? + + + "%1" was modified. +Save changes? + "%1" ay binago. +I-save ang mga pagbabago? + + + Database was modified. +Save changes? + Binago ang database. +I-save ang mga pagbabago? + + + Save changes? + I-save ang mga pagbabago? + + + File has changed + Nagbago ang file + + + The database file has changed. Do you want to load the changes? + Nagbago ang database file. Gusto mo bang i-load ang mga pagbabago? + + + Merge Request + Pagsamahin ang Kahilingan + + + The database file has changed and you have unsaved changes. +Do you want to merge your changes? + Ang file ng database ay nabago at mayroon kang mga hindi na-save na mga pagbabago. +Gusto mo bang pagsamahin ang mga binago mo? + + + Could not open the new database file while attempting to autoreload. +Error: %1 + Hindi mabuksan ang bagong database file habang sinusubukang i-autoreload. +Error: %1 + + + Disable safe saves? + I-disable ang ligtas na pag-save? + + + KeePassXC has failed to save the database multiple times. This is likely caused by file sync services holding a lock on the save file. +Disable safe saves and try again? + Nabigo ang KeePassXC na i-save ang database nang maraming beses. Ito ay malamang na sanhi ng mga serbisyo sa pag-sync ng file na may hawak na lock sa save file. +I-disable ang safe save at subukang muli? + + + Writing the database failed: %1 + Nabigo ang pagsulat ng database: %1 + + + Passwords + Passwords + + + Save database as + I-save ang database bilang + + + KeePass 2 Database + KeePass 2 Database + + + Save database backup + I-save ang backup ng database + + + Empty recycle bin? + Walang laman ang recycle bin? + + + Are you sure you want to permanently delete everything from your recycle bin? + Sigurado ka bang nais mong permanenteng i-delete ang lahat sa recycle bin mo? + + + Could not find database file: %1 + Hindi mahanap ang database file: %1 + + + New Database + Bagong Database + + + %1 [New Database] + Database tab name modifier + %1 [Bagong Database] + + + + EditEntryWidget + + Entry + Entry + + + Advanced + Advanced + + + Icon + Icon + + + Auto-Type + Auto-Type + + + Browser Integration + Pagsasama ng Browser + + + <empty URL> + <empty URL> + + + Confirm Removal + Kumpirmahin ang Pag-remove + + + Are you sure you want to remove this URL? + Sigurado ka bang nais mong alisin ang URL na ito? + + + Properties + Mga pag-aari + + + History + History + + + SSH Agent + SSH Agent + + + n/a + n/a + + + (encrypted) + (naka-encrypt) + + + Select private key + Pumili ng private key + + + Entry history + History ng entry + + + Add entry + Magdagdag ng entry + + + Edit entry + I-edit ang entry + + + Some Browser Integration settings are overridden by group settings. + Ang ilang mga setting ng Browser Integration ay na-override ng mga group setting. + + + Invalid Entry + Invalid na Entry + + + An external merge operation has invalidated this entry. +Unfortunately, any changes made have been lost. + Ang isang external merge operation ay nagpawalang-bisa sa entry na ito. +Sa kasamaang palad, nawala ang anumang mga pagbabagong ginawa. + + + Auto-Type Validation Error + Auto-Type Validation Error + + + An error occurred while validating the custom Auto-Type sequence: +%1 +Would you like to correct it? + Nagkaroon ng error habang kinukumpirma ang custom na Auto-Type sequence: +%1 +Gusto mo bang itama ito? + + + An error occurred while validating the Auto-Type sequence for "%1": +%2 +Would you like to correct it? + Nagkaroon ng error habang kinukumpirma ang Auto-Type sequence para sa "%1": +%2 +Gusto mo bang itama ito? + + + Entry updated successfully. + Matagumpay na na-update ang entry. + + + Unsaved Changes + Mga Hindi Na-save na Pagbabago + + + Would you like to save changes to this entry? + Gusto mo bang i-save ang mga pagbabago sa entry na ito? + + + New attribute + Bagong katangian + + + New attribute %1 + Bagong katangian %1 + + + Are you sure you want to remove this attribute? + Sigurado ka bang nais mong alisin ang attribute ito? + + + Reveal + Ipakita + + + [PROTECTED] Press Reveal to view or edit + [PROTECTED] Pindutin ang Reveal para tingnan o i-edit + + + Hide + Itago + + + %n hour(s) + %n oras%n (mga)oras + + + %n week(s) + %n linggo%n (mga)linggo + + + %n month(s) + %n buwan%n (mga)buwan + + + %n year(s) + %n taon%n (mga)taon + + + + EditEntryWidgetAdvanced + + Additional attributes + Karagdagang attributes + + + Attribute selection + Pagpili ng attribute + + + Attribute value + Value ng attribute + + + Add a new attribute + Magdagdag ng isang bagong attribute + + + Add + Magdagdag + + + Remove selected attribute + Alisin ang napiling katangian + + + Remove + Alisin + + + Edit attribute name + I-edit ang pangalan ng attribute + + + Edit Name + I-edit ang Pangalan + + + Toggle attribute protection + I-toggle ang proteksyon ng attribute + + + Protect + Protektahan + + + Show a protected attribute + Ipakita ang protektadong attribute + + + Reveal + Ipakita + + + Attachments + Mga attachment + + + If checked, the entry will not appear in reports like Health Check and HIBP even if it doesn't match the quality requirements. + Kung nilagyan ng check, hindi lalabas ang entry sa mga ulat tulad ng Health Check at HIBP kahit na hindi ito tumutugma sa mga kinakailangan sa kalidad. + + + Exclude from database reports + Ibukod mula sa mga ulat sa database + + + Foreground Color: + Kulay ng Foreground: + + + Foreground color selection + Pagpili ng kulay sa foreground + + + Background Color: + Kulay ng Background: + + + Background color selection + Pagpili ng kulay ng background + + + + EditEntryWidgetAutoType + + Enable Auto-Type for this entry + I-enable ang Auto-Type para sa entry na ito + + + Inherit default Auto-Type sequence from the group + Kunin bilang default na Auto-Type na sequence mula sa group + + + Use custom Auto-Type sequence: + Gumamit ng custom na pagkakasunod-sunod ng Auto-Type: + + + Custom Auto-Type sequence + Custom na Auto-Type sequence + + + Open Auto-Type help webpage + Buksan ang Auto-Type help webpage + + + Window Associations + Mga Window Association + + + Existing window associations + Mga umiiral na window association + + + Add new window association + Magdagdag ng bagong window association + + + + + Add item + + + + + Remove selected window association + Alisin ang napiling pagkakaugnay ng window + + + - + Remove item + - + + + Window title: + Pamagat ng Window: + + + You can use an asterisk (*) to match everything + Maaari kang gumamit ng asterisk (*) upang itugma sa lahat + + + Set the window association title + Itakda ang pamagat ng pagkakaugnay ng window + + + You can use an asterisk to match everything + Maaari kang gumamit ng asterisk upang itugma sa lahat + + + Use a specific sequence for this association: + Gumamit ng isang partikular na pagkakasunud-sunod para sa kaugnayang ito: + + + Custom Auto-Type sequence for this window + Custom na Auto-Type sequence para sa window na ito + + + + EditEntryWidgetBrowser + + These settings affect to the entry's behaviour with the browser extension. + Nakakaapekto ang mga setting na ito sa gawi ng entry sa extension ng browser. + + + General + Pangkalahatan + + + Hide this entry from the browser extension + Itago ang entry na ito mula sa extension ng browser + + + Skip Auto-Submit for this entry + Laktawan ang Auto-Submit para sa entry na ito: + + + Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. + Ipadala lamang ang setting na ito sa browser para sa mga dialog ng HTTP Auth. Kung na-enable, hindi ipapakita ng mga normal na form sa pag-log in ang entry na ito para sa pagpili. + + + Use this entry only with HTTP Basic Auth + Gamitin lamang ang entry na ito sa HTTP Basic Auth + + + Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. + Huwag ipadala ang setting na ito sa browser para sa mga dialog ng HTTP Auth. Kung naka-enable, hindi ipapakita ng mga dialog ng HTTP Auth ang entry na ito para sa pagpili. + + + Do not use this entry with HTTP Basic Auth + Huwag gamitin ang entry na ito sa HTTP Basic Auth + + + Additional URL's + Karagdagang URL's + + + Add + Magdagdag + + + Remove + Alisin + + + Edit + I-edit + + + + EditEntryWidgetHistory + + Entry history selection + History ng pagpili ng entry + + + Show entry at selected history state + Ipakita ang entry sa napiling kundisyon ng history + + + Show + Ipakita + + + Restore entry to selected history state + Ibalik ang entry sa napiling estado ng history + + + Restore + Ibalik + + + Delete selected history state + I-delete ang napiling history state + + + Delete + I-delete + + + Delete all history + I-delete lahat ng history + + + Delete all + I-delete lahat + + + + EditEntryWidgetMain + + Edit Entry + I-edit ang Entry + + + Notes field + Patlang ng mga tala + + + Username field + Field ng username + + + Expiration field + Field ng expiration + + + Expiration Presets + Mga Preset ng Expiration + + + Expiration presets + Mga preset ng expiration + + + Presets + Mga preset + + + Url field + Patlang ng URL + + + Download favicon for URL + Mag-download ng favicon para sa URL + + + Title field + Pamagat ng field + + + Password field + Field ng password + + + Toggle expiration + I-toggle ang pag-expire + + + Tags list + Listahan ng mga tag + + + &Username: + + + + &Title: + + + + &Password: + + + + UR&L: + + + + &Notes: + + + + Toggle notes visibility + + + + T&ags: + + + + &Expires: + + + + + EditEntryWidgetSSHAgent + + Form + Form + + + Remove key from agent when database is closed/locked + Alisin ang key mula sa agent kapag nakasara/naka-lock ang database + + + Comment + Comment + + + Add key to agent when database is opened/unlocked + Magdagdag ng key sa agent kapag naka-bukas/naka-unlock ang database + + + Decrypt + I-decrypt + + + Fingerprint + Fingerprint + + + Copy to clipboard + Kopyahin sa clipboard + + + Public key + Public key + + + Private key + Pribadong key + + + Attachment + Attachment + + + External key file + Panlabas na key file + + + Add to agent + Magdagdag sa agent + + + Remove from agent + Alisin mula sa agent + + + External file + Panlabas na file + + + Browser for key file + Browser para sa key file + + + Browse… + Button for opening file dialog + Mag-browse… + + + Generate + Bumuo + + + Select attachment file + Piliin ang attachment file + + + Require user confirmation when this key is used + Nangangailangan ng kumpirmasyon ng user kapag ginamit ang key na ito + + + n/a + n/a + + + Remove key from agent after + Alisin ang key sa agent pagkatapos + + + Remove key from agent after specified seconds + Alisin ang key mula sa agent pagkatapos ng tinukoy na segundo + + + seconds + segundo + + + + EditGroupWidget + + Group + Group + + + Icon + Icon + + + Properties + Mga pag-aari + + + Add group + Magdagdag ng pangkat + + + Edit group + I-edit ang group + + + Group has unsaved changes + May mga hindi na-save na pagbabago ng group + + + Browser Integration + Pagsasama ng Browser + + + Enable + I-enable + + + Disable + I-disable + + + Inherit from parent group (%1) + Kunin mula sa parent group na (%1) + + + + EditGroupWidgetBrowser + + These settings affect to the group's behaviour with the browser extension. + Ang mga setting na ito ay nakakaapekto sa gawi ng group sa extension ng browser. + + + Hide entries from browser extension: + Itago ang mga entry mula sa extension ng browser: + + + Hide entries from browser extension toggle for this and sub groups + Itago ang mga entry mula sa browser extension toggle para dito at sa mga sub group + + + Skip Auto-Submit for entries: + Laktawan ang Auto-Submit para sa mga entry: + + + Skip Auto-Submit toggle for this and sub groups + Laktawan ang Auto-Submit para sa dito at sa mga sub group + + + Use entries only with HTTP Basic Auth: + Gumamit lamang ng mga entry sa HTTP Basic Auth: + + + Only HTTP Auth toggle for this and sub groups + Tanging ang HTTP Auth toggle para dito at sa mga sub group + + + Do not use entries with HTTP Basic Auth: + Huwag gumamit ng mga entry na may HTTP Basic Auth: + + + Do not use HTTP Auth toggle for this and sub groups + Huwag gumamit ng HTTP Auth toggle para dito at sa mga sub group + + + Omit WWW subdomain from matching: + Alisin ang WWW subdomain mula sa pagtutugma: + + + Omit WWW subdomain from matching toggle for this and sub groups + Alisin ang WWW subdomain sa pagtutugma ng toggle para dito at sa mga sub group + + + Restrict matching to given browser key: + + + + Restrict matching to given browser key toggle for this and sub groups + + + + + EditGroupWidgetKeeShare + + Sharing mode field + Field ng mode ng pagbabahagi + + + Password field + Field ng password + + + Type: + Uri: + + + Password: + Password: + + + Path: + Path: + + + Path to share file field + Path para ibahagi ang patlang ng file + + + Browse for share file + Mag-browse para sa pagbabahagi ng file + + + Browse… + Mag-browse… + + + Clear fields + I-clear ang mga field + + + Clear + I-clear + + + Inactive + Hindi aktibo + + + Import + Mag-import + + + Export + I-export + + + Synchronize + I-synchronize + + + Your KeePassXC version does not support sharing this container type. +Supported extensions are: %1. + Hindi sinusuportahan ng bersyon ng KeePassXC mo ang pagbabahagi ng ganitong uri ng container. +Ang mga sinusuportahang extension ay: %1. + + + %1 is already being exported by this database. + %1 ay na-export na sa database na ito. + + + %1 is already being imported by this database. + %1 ay na-import na sa database na ito. + + + %1 is being imported and exported by different groups in this database. + %1 ay na-import at na-export sa iba't ibang grupo sa database na ito. + + + KeeShare is currently disabled. You can enable import/export in the application settings. + KeeShare is a proper noun + Kasalukuyang naka-disable ang KeeShare. Maaari mong i-enable ang pag-import/pag-export sa mga setting ng application. + + + Database export is currently disabled by application settings. + Ang pag-export ng database ay kasalukuyang ni-disable ng mga setting ng application. + + + Database import is currently disabled by application settings. + Ang pag-import ng database ay kasalukuyang na-disable ng mga setting ng application. + + + KeeShare container + KeeShare container + + + KeeShare signed container + KeeShare na naka-sign na container + + + Select import source + Piliin ang source ng pag-import + + + Select export target + Pumili ng target sa pag-export + + + Select import/export file + Piliin ang import/export na file + + + + EditGroupWidgetMain + + Edit Group + I-edit ang Group + + + Toggle expiration + I-toggle ang pag-expire + + + Expires: + Mag-e-expire: + + + Name field + Field ng pangalan + + + Expiration field + Field ng expiration + + + Use default Auto-Type sequence of parent group + Gumamit ng default na pagkakasunod-sunod ng Auto-Type ng parent group + + + Auto-Type: + Auto-Type: + + + Search: + Maghanap: + + + Auto-Type toggle for this and sub groups + Auto-Type toggle para dito at sa mga subgroup + + + Notes: + Mga tala: + + + Default auto-type sequence field + Default na field ng sequence ng auto-type + + + Notes field + Patlang ng mga tala + + + Name: + Pangalan: + + + Set default Auto-Type sequence + Itakda ang default na Auto-Type sequence + + + Search toggle for this and sub groups + Naka-toggle na paghahanap para dito at sa mga sub group + + + + EditWidgetIcons + + Use default icon + Gamitin ang default na icon + + + Use custom icon + Gumamit ng custom na icon + + + Choose icon… + Pumili ng icon… + + + Set the URL to use to search for a favicon + Itakda ang URL na gagamitin para maghanap ng favicon + + + Favicon URL + URL ng Favicon + + + Download favicon for URL + Mag-download ng favicon para sa URL + + + Download favicon + Mag-download ng favicon + + + Apply selected icon to subgroups and entries + Ilapat ang napiling icon sa mga subgroup at entry + + + Apply icon to… + Ilapat ang icon sa… + + + Apply to this group only + Ilapat lamang sa pangkat na ito + + + Also apply to child groups + Puwede din sa mga pangkat ng bata + + + Also apply to child entries + Puwede din sa mga entry ng bata + + + Also apply to all children + Puwede din sa lahat ng bata + + + Unable to fetch favicon. + Hindi makuha ang favicon. + + + Existing icon selected. + Pinili ang kasalukuyang icon. + + + Images + Mga Imahe + + + All files + Lahat ng mga file + + + Select Image(s) + Piliin ang (mga) Larawan + + + Successfully loaded %1 of %n icon(s) + Matagumpay na na-load ang %1 ng %n iconMatagumpay na na-load ang %1 ng %n (mga) icon + + + No icons were loaded + Walang na-load na mga icon + + + %n icon(s) already exist in the database + %n ng icon ay umiiral na sa database%n ng (mga)icon ay umiiral na sa database + + + The following icon(s) failed: + Nabigo ang sumusunod na icon:Nabigo ang sumusunod na (mga) icon: + + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + + + + + EditWidgetProperties + + Created: + Nalikha na: + + + Datetime created + Nalikha na angdatetime + + + Modified: + Nabago: + + + Datetime modified + Binago ang datetime + + + Accessed: + Na-access: + + + Datetime accessed + Na-access na Datetime + + + Uuid: + Uuid: + + + Unique ID + Natatanging ID + + + Plugin Data + Plugin Data + + + Plugin data + Plugin data + + + Remove selected plugin data + Alisin ang napiling plugin data + + + Remove + Alisin + + + Delete plugin data? + I-delete ang data ng plugin? + + + Do you really want to delete the selected plugin data? +This may cause the affected plugins to malfunction. + Gusto mo bang i-delete ang napiling data ng plugin? +Maaari itong maging sanhi ng hindi paggana ng mga apektadong plugin. + + + Key + Key + + + Value + Value + + + + Entry + + %1 - Clone + %1 - Clone + + + + EntryAttachments + + Cannot open file "%1" + Hindi mabuksan ang file na "%1" + + + + EntryAttachmentsModel + + Name + Pangalan + + + Size + Sukat + + + + EntryAttachmentsWidget + + Form + Form + + + Attachments + Mga attachment + + + Add new attachment + Magdagdag ng bagong attachment + + + Add + Magdagdag + + + Remove selected attachment + Alisin ang napiling attachment + + + Remove + Alisin + + + Rename selected attachment + Pangalanan muli ang napiling attachment + + + Rename + Pangalanan muli + + + Open selected attachment + Buksan ang napiling attachment + + + Open + Buksan + + + Save selected attachment to disk + I-save ang napiling attachment sa disk + + + Save + I-save + + + Select files + Pumili ng mga file + + + Confirm remove + Kumpirmahin ang pag-remove + + + Are you sure you want to remove %n attachment(s)? + Sigurado ka bang nais mong alisin ang %n na attachment?Sigurado ka bang nais mong alisin ang %n na (mga) attachment? + + + Save attachments + I-save ang mga attachment + + + Unable to create directory: +%1 + Hindi malikha ng directory: +%1 + + + Are you sure you want to overwrite the existing file "%1" with the attachment? + Sigurado ka bang nais mong i-overwrite ang umiiral na file na "%1" gamit ang attachment? + + + Confirm overwrite + Kumpirmahin ang overwrite + + + Unable to save attachments: +%1 + Hindi mai-save ang mga attachment: +%1 + + + Unable to open attachment: +%1 + Hindi mabuksan ang attachment: +%1 + + + Unable to open attachments: +%1 + Hindi mabuksan ang mga attachment: +%1 + + + Unable to open file(s): +%1 + Hindi mabuksan ang file: +%1Hindi mabuksan ang (mga) file: +%1 + + + Confirm Overwrite Attachment + Kumpirmahin ang Overwrite Attachment + + + Attachment "%1" already exists. +Would you like to overwrite the existing attachment? + Umiiral na ang attachment na "%1". +Gusto mo bang i-overwrite ang kasalukuyang attachment? + + + Confirm Attachment + Kumpirmahin ang Attachment + + + %1 is a big file (%2 MB). +Your database may get very large and reduce performance. + +Are you sure to add this file? + %1 ay malaking file (%2 MB). +Ang database mo maaaring maging malaki at mababawasan ang performance + +Sigurado ka bang gusto mong idagdag ang file na ito? + + + Attachment modified + Binago ang attachment + + + The attachment '%1' was modified. +Do you want to save the changes to your database? + Ang attachment na '%1' ay binago. +Gusto mo bang i-save ang mga pagbabago sa database mo? + + + Saving attachment failed + Nabigo ang pag-save ng attachment + + + Saving updated attachment failed. +Error: %1 + Nabigo ang pag-save ng na-update na attachment. +Error: %1 + + + + EntryAttributesModel + + Name + Pangalan + + + + EntryHistoryModel + + Current (%1) + Kasalukuyang (%1) + + + Last modified + Huling binago + + + Age + Edad + + + Difference + Pagkakaiba + + + Size + Sukat + + + Title + Pamagat + + + Username + Username + + + Password + Password + + + URL + URL + + + Notes + Mga tala + + + Custom Attributes + Mga Custom na Attribute + + + Icon + Icon + + + Color + Kulay + + + Expiration + Expiration + + + TOTP + TOTP + + + Custom Data + Custom na Data + + + Attachments + Mga attachment + + + Auto-Type + Auto-Type + + + Tags + Mga tag + + + + EntryModel + + Ref: + Reference abbreviation + Ref: + + + Never + Huwag kailanman + + + Group + Group + + + Title + Pamagat + + + Username + Username + + + Password + Password + + + URL + URL + + + Notes + Mga tala + + + Expires + Nag-expire na + + + Created + Nalikha na + + + Modified + Binago + + + Accessed + Na-access + + + Attachments + Mga attachment + + + Size + Sukat + + + Group name + Pangalan ng group + + + Entry title + Pamagat ng entry + + + Password Strength + Lakas ng Password + + + Entry notes + Mga entry note + + + Entry expires at + Mag-e-expire ang entry sa + + + Creation date + Petsa ng paglikha + + + Last modification date + Petsa ng huling pagbabago + + + Last access date + Petsa ng huling pag-access + + + Attached files + Naka-attach na mga file + + + Entry size + Sukat ng entry + + + Has attachments + May mga attachment + + + Has TOTP + May TOTP + + + Background Color + + + + + EntryPreviewWidget + + Display current TOTP value + Ipakita ang kasalukuyang TOTP value + + + Close + I-close + + + General + Pangkalahatan + + + Password + Password + + + URL + URL + + + Expiration + Expiration + + + Tags + Mga tag + + + Tags list + Listahan ng mga tag + + + Username + Username + + + Notes + Mga tala + + + Advanced + Advanced + + + Attachments + Mga attachment + + + Attributes + Mga attribute + + + Autotype + Autotype + + + Default Sequence + Default na Sequence + + + Window + Window + + + Sequence + Pagkakasunod-sunod + + + Searching + Naghahanap + + + Share + Ibahagi + + + Search + Maghanap + + + Clear + I-clear + + + Never + Huwag kailanman + + + Double click to copy value + I-double click para kopyahin ang value + + + Enabled + Na-enable na + + + Disabled + Naka-disable + + + Double click to copy to clipboard + + + + + EntryURLModel + + Invalid URL + Invalid na URL + + + Duplicate URL + + + + + EntryView + + Fit to window + Akma sa window + + + Fit to contents + Akma sa mga content + + + Reset to defaults + I-reset sa mga default + + + + %1 entry(s)... + + + + + ExportDialog + + Export options + Mga opsyon sa pag-export + + + Sort entries by... + I-sort ang mga entry ayon sa... + + + You are about to export your database to an unencrypted file. +This will leave your passwords and sensitive information vulnerable! + + Ie-export mo na ang database mo sa isang hindi naka-encrypt na file. +Iiwan nitong mahina ang mga mo password at sensitibong impormasyon! + + + + database order + pagkakasunud-sunod ng database + + + name (ascending) + pangalan (ascending) + + + name (descending) + pangalan (descending) + + + unknown + unknown + + + Export database to HTML file + I-export ang database sa HTML file + + + HTML file + HTML file + + + + FdoSecrets::DBusMgr + + Failed to deliver message + Nabigong ihatid ang mensahe + + + Failed to send reply on DBus + Nabigong magpadala ng reply sa DBus + + + Unknown + Unknown PID + Unknown + + + Unknown + Unknown executable path + Unknown + + + <i>PID: %1, Executable: %2</i> + <i>PID: 1234, Executable: /path/to/exe</i> + <i>PID: %1, Executable: %2</i> + + + Another secret service is running (%1).<br/>Please stop/remove it before re-enabling the Secret Service Integration. + Ang isa pang secret service ay tumatakbo na (%1).<br/>Pakihinto/i-remove ito bago muling i-enable ang Secret Service Integration. + + + Failed to register DBus service at %1.<br/> + Nabigong irehistro ang serbisyo ng DBus sa %1.<br/> + + + Failed to register service on DBus at path '%1' + Nabigong irehistro ang serbisyo sa DBus sa path na '%1' + + + Failed to register database on DBus under the name '%1' + Nabigong irehistro ang database sa DBus sa ilalim ng pangalan na '%1' + + + Failed to register session on DBus at path '%1' + Nabigong irehistro ang session sa DBus sa path na '%1' + + + Failed to register item on DBus at path '%1' + Nabigong irehistro ang item sa DBus sa path na '%1' + + + Failed to register prompt object on DBus at path '%1' + Nabigong irehistro ang prompt object sa DBus sa path na '%1' + + + + FdoSecrets::Item + + Entry "%1" from database "%2" was used by %3 + Ang entry na "%1" mula sa database na "%2" ay ginamit ng %3 + + + + FdoSecrets::Service + + %n Entry(s) was used by %1 + %1 is the name of an application + %n ng Entry ay ginamit ng %1%n ng (mga)Entry ay ginamit ng %1 + + + + FdoSecrets::SettingsClientModel + + Unknown + Hindi kilala + + + Non-existing/inaccessible executable path. Please double-check the client is legit. + Hindi umiiral/hindi ma-access na maipapatupad na landas. Pakitingnan muli kung legit ang kliyente. + + + + FdoSecrets::SettingsDatabaseModel + + Unlock to show + I-unlock para ipakita + + + None + Wala + + + + FdoSecrets::UnlockPrompt + + %1 (PID: %2) + %1 (PID: %2) + + + + FdoSecretsPlugin + + <b>Fdo Secret Service:</b> %1 + <b>Fdo Secret Service:</b> %1 + + + + Group + + [empty] + group has no children + [empty] + + + %1 - Clone + %1 - Clone + + + + HibpDownloader + + Online password validation failed + Nabigo ang online na pagpapatunay ng password + + + + IconDownloaderDialog + + Download Favicons + I-download ang mga Favicon + + + Cancel + Kanselahin + + + Having trouble downloading icons? +You can enable the DuckDuckGo website icon service in the security section of the application settings. + Nagkakaproblema sa pag-download ng mga icon? +Puwede mong i-enable ang icon service ng website ng DuckDuckGo sa seksyon ng seguridad ng mga setting ng application. + + + Close + I-close + + + URL + URL + + + Status + Status + + + Please wait, processing entry list… + Pakihintay, pinoproseso ang listahan ng entry… + + + Downloading… + Nagda-download… + + + Ok + Ok + + + Already Exists + Umiiral na + + + Download Failed + Nabigo ang Pag-download + + + Downloading favicons (%1/%2)… + Dina-download ang mga favicon na (%1/%2)… + + + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + WizardPage + + + Entry count: %1 + + + + Group + Group + + + Title + Pamagat + + + Username + Username + + + Password + Password + + + Url + + + + + ImportWizardPageSelect + + Form + Form + + + Import File Selection + + + + Password: + Password: + + + Key File: + Key File: + + + Browse… + Mag-browse… + + + Import Into: + + + + New Database + Bagong Database + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Buksan ang OPVault + + + Select import file + + + + All files + Lahat ng mga file + + + Key files + Mga key file + + + Select key file + Piliin ang key file + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + + + KMessageWidget + + &Close + &Close + + + Close message + I-close ang mensahe + + + + Kdbx3Reader + + Missing database headers + Nawawalang mga header ng database + + + Unable to calculate database key + Hindi makalkula ang database key + + + Unable to issue challenge-response: %1 + Hindi makapagbigay ng challenge-response: %1 + + + Invalid credentials were provided, please try again. +If this reoccurs, then your database file may be corrupt. + Ang mga invalid na kredensyal ay ibinigay, pakisubukang muli. +Kung maulit ito, maaaring sira ang database file mo. + + + Header doesn't match hash + Ang header ay hindi tumutugma sa hash + + + Invalid header id size + Invalid na sukat ng header id + + + Invalid header field length: field %1 + Invalid na haba ng field ng header: field na %1 + + + Invalid header data length: field %1, %2 expected, %3 found + Invalid na haba ng data ng header: field na %1, %2 ang inaasahan, %3 ang nakita + + + + Kdbx3Writer + + Invalid symmetric cipher IV size. + IV = Initialization Vector for symmetric cipher + Invalid na sukat ng symmetric cipher IV. + + + Unable to issue challenge-response: %1 + Hindi makapagbigay ng challenge-response: %1 + + + Unable to calculate database key + Hindi makalkula ang database key + + + + Kdbx4Reader + + missing database headers + nawawalang mga header ng database + + + Unable to calculate database key: %1 + Hindi makalkula ang database key: %1 + + + Invalid header checksum size + Invalid na sukat ng header checksum + + + Header SHA256 mismatch + Hindi tugma ang header na SHA256 + + + Invalid credentials were provided, please try again. +If this reoccurs, then your database file may be corrupt. + Ang mga invalid na kredensyal ay ibinigay, pakisubukang muli. +Kung maulit ito, maaaring sira ang database file mo. + + + (HMAC mismatch) + (HMAC mismatch) + + + Unknown cipher + Hindi kilalang cipher + + + Invalid header id size + Invalid na sukat ng header id + + + Invalid header field length: field %1 + Invalid na haba ng field ng header: field na %1 + + + Invalid header data length: field %1, %2 expected, %3 found + Invalid na haba ng data ng header: field na %1, %2 ang inaasahan, %3 ang nakita + + + Failed to open buffer for KDF parameters in header + Nabigong buksan ang buffer para sa mga parameter ng KDF sa header + + + Unsupported key derivation function (KDF) or invalid parameters + Hindi suportadong key derivation function (KDF) o hindi valid na mga parametro + + + Legacy header fields found in KDBX4 file. + Ang mga legacy na field ng header ay natagpuan sa KDBX4 file. + + + Invalid inner header id size + Invalid na sukat ng panloob na header id + + + Invalid inner header field length: field %1 + Invalid na haba ng field ng panloob na header: field na %1 + + + Invalid inner header data length: field %1, %2 expected, %3 found + Invalid na haba ng data ng panloob na header: field na %1, %2 ang inaasahan, %3 ang natagpuan + + + Invalid inner header binary size + Invalid na sukat ng inner header binary + + + Unsupported KeePass variant map version. + Translation: variant map = data structure for storing meta data + Hindi suportadong bersyon ng mapa ng variant ng KeePass. + + + Invalid variant map entry name length + Translation: variant map = data structure for storing meta data + Invalid na haba ng entry na pangalan ng variant map + + + Invalid variant map entry name data + Translation: variant map = data structure for storing meta data + Invalid na data ng entry na pangalan ng variant map + + + Invalid variant map entry value length + Translation: variant map = data structure for storing meta data + Invalid na haba ng entry value ng variant map + + + Invalid variant map entry value data + Translation comment: variant map = data structure for storing meta data + Invalid na data entry value ng variant map + + + Invalid variant map Bool entry value length + Translation: variant map = data structure for storing meta data + Invalid ang haba ng value ng entry sa Bool ng variant map + + + Invalid variant map Int32 entry value length + Translation: variant map = data structure for storing meta data + Invalid na haba ng entry value ng variant map Int32 + + + Invalid variant map UInt32 entry value length + Translation: variant map = data structure for storing meta data + Invalid na haba ng entry value ng variant map UInt32 + + + Invalid variant map Int64 entry value length + Translation: variant map = data structure for storing meta data + Invalid na haba ng entry value ng variant map Int64 + + + Invalid variant map UInt64 entry value length + Translation: variant map = data structure for storing meta data + Invalid na haba ng entry value ng variant map UInt64 + + + Invalid variant map entry type + Translation: variant map = data structure for storing meta data + Invalid na uri ng entry ng variant map + + + Invalid variant map field type size + Translation: variant map = data structure for storing meta data + Invalid na sukat ng uri ng field ng variant map + + + + Kdbx4Writer + + Invalid symmetric cipher algorithm. + Invalid na algorithm ng symmetric cipher. + + + Invalid symmetric cipher IV size. + IV = Initialization Vector for symmetric cipher + Invalid na sukat ng symmetric cipher IV. + + + Unable to calculate database key: %1 + Hindi makalkula ang database key: %1 + + + Failed to serialize KDF parameters variant map + Translation comment: variant map = data structure for storing meta data + Nabigong i-serialize ang mga KDF parameter variant map + + + + KdbxReader + + Invalid cipher uuid length: %1 (length=%2) + Invalid na haba ng cipher uuid: %1 (length=%2) + + + Unable to parse UUID: %1 + Hindi ma-parse ang UUID: %1 + + + Unsupported cipher + Hindi suportadong cipher + + + Invalid compression flags length + Invalid na haba ng mga compression flag + + + Unsupported compression algorithm + Hindi suportadong algorithm ng compression + + + Invalid master seed size + Invalid na sukat ng master seed + + + Invalid transform seed size + Invalid na sukat ng transform seed + + + Invalid transform rounds size + Invalid na sukat ng mga transform round + + + Invalid start bytes size + Invalid na sukat ng mga byte na panimula + + + Invalid random stream id size + Invalid na sukat ng random stream id + + + Invalid inner random stream cipher + Invalid na inner random stream cipher + + + Failed to read database file. + Nabigong basahin ang file ng database. + + + The selected file is an old KeePass 1 database (.kdb). + +You can import it by clicking on Database > 'Import KeePass 1 database…'. +This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. + Ang napiling file ay isang lumang database ng KeePass 1 (.kdb). + +Maaari mong i-import ito sa pamamagitan ng pag-click sa Database > 'Import KeePass 1 database…'. +Isa itong one-way na paglipat. Hindi mo mabubuksan ang na-import na database gamit ang lumang bersyon ng KeePassX 0.4. + + + Not a KeePass database. + Hindi isang database ng KeePass. + + + Unsupported KeePass 2 database version. + Hindi suportadong bersyon ng database ng KeePass 2. + + + + KdbxXmlReader + + XML parsing failure: %1 + Nabigo ang pag-parse ng XML: %1 + + + No root group + Walang ugat na grupo + + + XML error: +%1 +Line %2, column %3 + XML error: +%1 +Linya na %2, column na %3 + + + Missing icon uuid or data + Nawawalang icon uuid o data + + + Missing custom data key or value + Nawawala ang custom na data key o value + + + Multiple group elements + Maramihang mga elemento ng grupo + + + Null group uuid + Walang saysay ang uuid ng grupo + + + Invalid group icon number + Invalid na numero ng group icon + + + Invalid EnableAutoType value + Invalid na value ng EnableAutoType + + + Invalid EnableSearching value + Invalid na value ng EnableSearching + + + No group uuid found + Walang nahanap na grupo uuid + + + Null DeleteObject uuid + Walang saysay ang uuid ng DeleteObject + + + Missing DeletedObject uuid or time + Nawawala ang DeletedObject uuid o oras + + + Null entry uuid + Walang saysay ang uuid ng entry + + + Invalid entry icon number + Invalid na bilang ng entry icon + + + History element in history entry + Elemento ng history sa entry ng history + + + No entry uuid found + Walang nahanap na entry uuid + + + History element with different uuid + Elemento ng history na may iba't ibang uuid + + + Duplicate custom attribute found + May nakitang duplicate na custom na attribute + + + Entry string key or value missing + Nawawala ang string key o value ng entry + + + Entry binary key or value missing + Nawawala ang binary key o value ng entry + + + Auto-type association window or sequence missing + Auto-type na association window o nawawala ang sequence + + + Invalid bool value + Invalide na bool value + + + Invalid date time value + Invalid na date time value + + + Invalid color value + Invalid na color value + + + Invalid color rgb part + Invalid na bahagi ng kulay na rgb + + + Invalid number value + Invalid na value ng numero + + + Invalid uuid value + Invalid na uuid value + + + Unable to decompress binary + Translator meant is a binary data inside an entry + Hindi ma-decompress ang binary + + + + KeeAgentSettings + + Invalid KeeAgent settings file structure. + Invalid na istraktura ng file ng mga setting ng KeeAgent. + + + Private key is an attachment but no attachments provided. + Ang pribadong key ay isang attachment pero walang ibinigay na mga attachment. + + + Private key is empty + Walang laman ang pribadong key + + + File too large to be a private key + Masyadong malaki ang file para maging private key + + + Failed to open private key + Nabigong buksan ang private key + + + + KeePass1Reader + + Unable to read keyfile. + Hindi mabasa ang keyfile. + + + Not a KeePass database. + Hindi isang database ng KeePass. + + + Unsupported encryption algorithm. + Hindi suportadong algorithm ng encryption. + + + Unsupported KeePass database version. + Hindi suportadong bersyon ng database ng KeePass. + + + Unable to read encryption IV + IV = Initialization Vector for symmetric cipher + Hindi mabasa ang encryption IV + + + Invalid number of groups + Invalid na bilang ng mga group + + + Invalid number of entries + Invalid na bilang ng mga entry + + + Invalid content hash size + Invalid na sukat ng content hash + + + Invalid transform seed size + Invalid na sukat ng transform seed + + + Invalid number of transform rounds + Invalid na bilang ng mga transform round + + + Unable to construct group tree + Hindi makagawa ng group tree + + + Root + Root + + + Unable to calculate database key + Hindi makalkula ang database key + + + unable to seek to content position + hindi makapaghanap sa posisyon ng content + + + Invalid credentials were provided, please try again. +If this reoccurs, then your database file may be corrupt. + Ang mga invalid na kredensyal ay ibinigay, pakisubukang muli. +Kung maulit ito, maaaring sira ang database file mo. + + + Key transformation failed + Nabigo ang pagbabagong-anyo ng key + + + Invalid group field type number + Invalid na uri ng numero ng group field + + + Invalid group field size + Invalid na sukat ng group field + + + Read group field data doesn't match size + Basahin ang data ng field ng group ay hindi tumutugma sa sukat + + + Incorrect group id field size + Maling sukat ng group id field + + + Incorrect group creation time field size + Maling sukat ng group creation time field + + + Incorrect group modification time field size + Maling sukat ng group modification time field + + + Incorrect group access time field size + Maling sukat ng group access time field + + + Incorrect group expiry time field size + Maling sukat ng group expiry time field + + + Incorrect group icon field size + Maling sukat ng group icon field + + + Incorrect group level field size + Maling sukat ng group level field + + + Invalid group field type + Invalid na uri ng group field + + + Missing group id or level + Nawawalang group id o level + + + Missing entry field type number + Nawawalang numero ng entry field type + + + Invalid entry field size + Invalid na sukat ng entry field + + + Read entry field data doesn't match size + Basahin ang data ng field ng entry ay hindi tumutugma sa laki + + + Invalid entry UUID field size + Invalid na sukat ng entry ng UUID field + + + Invalid entry group id field size + Invalid na sukat ng field ng entry group + + + Invalid entry icon field size + Invalid na sukat ng entry ng field icon + + + Invalid entry creation time field size + Invalid na sukat ng field ng oras ng paglikha ng entry + + + Invalid entry modification time field size + Invalid na sukat ng entry ng pagbabago ng oras + + + Invalid entry expiry time field size + Invalid na sukat ng field ng entry ng oras ng pag-expire + + + Invalid entry field type + Invalid na uri ng entry field + + + + KeeShare + + Invalid sharing reference + Invalid na sharing reference + + + Inactive share %1 + Hindi aktibong bahagi na %1 + + + Imported from %1 + Na-import mula sa %1 + + + Exported to %1 + Na-export sa %1 + + + Synchronized with %1 + Na-synchronize sa %1 + + + Import is disabled in settings + Ang pag-import ay naka-disable sa mga setting + + + Export is disabled in settings + Naka-disable ang pag-export sa mga setting + + + Inactive share + Hindi aktibong bahagi + + + Imported from + Na-import mula sa + + + Exported to + Na-export sa + + + Synchronized with + Naka-synchronize sa + + + + KeyComponentWidget + + Key Component + Key Component + + + Key Component Description + Paglalarawan ng Key Component + + + Cancel + Kanselahin + + + Key Component set, click to change or remove + Itakda ang Key Component, i-click para baguhin o i-remove + + + + KeyFileEditWidget + + Generate a new key file + Bumuo ng bagong key file + + + Generate + Bumuo + + + Generate a new key file or choose an existing one to protect your database. + Bumuo ng bagong key file o pumili ng meron na para protektahan ang database mo. + + + Note: Do NOT use a file that may change as that will prevent you from unlocking your database. + Tandaan: HUWAG gumamit ng file na maaaring magbago dahil pumipigil ito mula sa pag-unlock ng iyong database. + + + Browse for key file + Mag-browse para sa key file + + + Browse… + Mag-browse… + + + Old key file format + File format ng dating key + + + You selected a key file in an old format which KeePassXC<br>may stop supporting in the future.<br><br>Please consider generating a new key file instead. + Pumili ka ng key file sa lumang format na maaaring hindi suporatahan ng KeePassXC<br>sa hinaharap.<br><br>Mangyaring isaalang-alang ang pagbuo ng bagong key file sa halip. + + + Error loading the key file '%1' +Message: %2 + Error sa paglo-load ng key file na '%1' +Mensahe: %2 + + + Key File + Key File + + + Add Key File + Magdagdag ng Key File + + + Change Key File + Palitan ang Key File + + + Remove Key File + Alisin ang Key File + + + Key File set, click to change or remove + Key File set, i-click upang baguhin o i-remove + + + <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out.</p> + <p>Maaari kang magdagdag ng key file na naglalaman ng mga random na byte para sa karagdagang seguridad.</p><p>Dapat lihim mo itong panatilihin at huwag kailanman walain kung hindi ay mai-lock out ka.</p> + + + Key files + Mga key file + + + All files + Lahat ng mga file + + + Create Key File… + Gumawa ng Key File… + + + Error creating key file + Error sa paglikha ng key file + + + Unable to create key file: %1 + Hindi makalikha ng key file: %1 + + + Select a key file + Pumili ng key file + + + Invalid Key File + Invalid na Key File + + + You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. + Hindi mo magagamit ang kasalukuyang database bilang key file nito. Mangyaring pumili ng ibang file o bumuo ng bagong key file. + + + Suspicious Key File + Kahina-hinalang Key File + + + The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. +Are you sure you want to continue with this file? + Ang napiling key file ay mukhang isang password database file. Ang isang key file ay dapat na isang static na file na hindi nagbabago o mawawalan ka ng access sa iyong database magpakailanman. +Sigurado ka bang gusto mong magpatuloy sa file na ito? + + + + MacUtils + + Invalid key code + Invalid na key code + + + Global shortcut already registered to %1 + Nakarehistro na ang global shortcut sa %1 + + + Could not register global shortcut + Hindi mairehistro ang global shortcut + + + + MainWindow + + &Database + &Database + + + &Recent Databases + &Recent Databases + + + &Export + &Export + + + &Help + &Help + + + &Entries + &Entries + + + Copy Att&ribute + Kopyahin ang Att&ribute + + + TOTP + TOTP + + + Tags + Mga tag + + + &Groups + &Groups + + + &Tools + &Tools + + + View + Tingan + + + Theme + Tema + + + &Quit + &Quit + + + &About + &About + + + &Check for Updates + &Check for Updates + + + &Open Database… + &Open Database… + + + &Save Database + &Save Database + + + &Close Database + &Close Database + + + &New Database… + &New Database… + + + &Merge From Database… + &Merge From Database… + + + &New Entry… + &New Entry… + + + &Edit Entry… + &Edit Entry… + + + &Delete Entry… + &Delete Entry… + + + &New Group… + &New Group… + + + &Edit Group… + &Edit Group… + + + &Delete Group… + &Delete Group… + + + Download All &Favicons… + I-download ang Lahat ng &Favicon… + + + Sort &A-Z + I-sort ang &A-Z + + + Sort &Z-A + I-sort ang &A-Z + + + Sa&ve Database As… + I-sa&ve ang Database Bilang… + + + Database &Security… + Database &Security… + + + Database &Reports… + Database &Reports… + + + &Database Settings… + &Database Settings… + + + &Clone Entry… + &Clone Entry… + + + Move u&p + Ilipat ang u&p + + + Move do&wn + Ilipat sa do&wn + + + Copy &Username + Kopyahin ang &Username + + + Copy &Password + Kopyahin ang &Password + + + &Settings + &Settings + + + &Password Generator + &Password Generator + + + Perform &Auto-Type + Isagawa ang &Auto-Type + + + Download &Favicon + I-download ang &Favicon + + + Open &URL + Buksan ang &URL + + + &Lock Database + &Lock Database + + + Lock &All Databases + I-lock ang &All Databases + + + &Title + &Title + + + Copy &URL + Kopyahin ang &URL + + + &Notes + &Notes + + + &CSV File… + &CSV File… + + + &HTML File… + &HTML File… + + + KeePass 1 Database… + KeePass 1 Database… + + + 1Password Vault… + 1Password Vault… + + + CSV File… + CSV File… + + + Show TOTP + Ipakita ang TOTP + + + Show QR Code + Ipakit ang QR Code + + + Set up TOTP… + I-set up ang TOTP… + + + Copy &TOTP + Kopyahin ang &TOTP + + + Copy Password and TOTP + Kopyahin ang Password at TOTP + + + E&mpty recycle bin + E&mpty na recycle bin + + + &Donate + &Donate + + + Report a &Bug + Mag-ulat ng isang &Bug + + + &Getting Started + &Getting Started + + + Open Getting Started Guide + Buksan ang Gabay sa Pagsisimula + + + &Online Help + &Online Help + + + &User Guide + &User Guide + + + Open User Guide + Buksan ang Gabay sa User + + + &Keyboard Shortcuts + &Keyboard Shortcuts + + + Save Database Backup… + I-save ang Backup ng Database… + + + Add key to SSH Agent + Magdagdag ng key sa SSH Agent + + + Remove key from SSH Agent + Alisin ang key mula sa SSH Agent + + + Compact Mode + Compact Mode + + + Automatic + Awtomatiko + + + Light + Magaan + + + Dark + Dark + + + Classic (Platform-native) + Classic (Platform-native) + + + Show Toolbar + Ipakita ang Toolbar + + + Show Preview Panel + Ipakita ang Preview Panel + + + Always on Top + Laging nasa Itaas + + + Hide Usernames + Itago ang Mga Username + + + Hide Passwords + Itago ang Mga Password + + + Clone Group... + I-clond ang Group... + + + &XML File… + &XML File… + + + Clear history + I-clear ang history + + + Access error for config file %1 + Error sa pag-access para sa config file na %1 + + + Don't show again for this version + Huwag ipakitang muli para sa bersyong ito + + + WARNING: You are using an unstable build of KeePassXC. +There is a high risk of corruption, maintain a backup of your databases. +This version is not meant for production use. + BABALA: Gumagamit ka ng hindi matatag na uri ng KeePassXC. +Mayroong mataas na panganib ng katiwalian, panatilihin ang isang backup ng iyong mga database. +Ang bersyon na ito ay hindi para sa paggamit ng produksyon. + + + NOTE: You are using a pre-release version of KeePassXC. +Expect some bugs and minor issues, this version is meant for testing purposes. + TANDAAN: Gumagamit ka ng paunang labas na bersyon ng KeePassXC. +Asahan ang ilang mga bug at maliliit na isyu, ang bersyon na ito ay para sa mga pagsubok na layunin. + + + WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard. +We recommend you use the AppImage available on our downloads page. + BABALA: Ang bersyon ng Qt mo ay maaaring magdulot ng pag-crash ng KeePassXC gamit ang On-Screen Keyboard. +Inirerekomenda naming gamitin mo ang AppImage na available sa aming pahina ng mga pag-download. + + + No Tags + Walang Mga Tag + + + Restore Entry(s) + Ibalik ang EntryIbalik ang (mga) Entry + + + Settings + Mga setting + + + Check for updates on startup? + Tingnan kung may mga update sa startup? + + + Would you like KeePassXC to check for updates on startup? + Gusto mo bang tingnan ng KeePassXC ang mga update sa startup? + + + You can always check for updates manually from the application menu. + Maaari mong suriin nang manu-mano ang mga update anumang oras mula sa menu ng application. + + + Toggle window + I-toggle ang window + + + Quit KeePassXC + Ihinto ang KeePassXC + + + %1 Entry(s) + %1 Entry%1 (mga)Entry + + + Please present or touch your YubiKey to continue… + Mangyaring ipakita o pindutin ang iyong YubiKey upang magpatuloy… + + + Restart Application? + I-restart ang Application? + + + You must restart the application to apply this setting. Would you like to restart now? + Dapat mong i-restart ang application upang mailapat ang setting na ito. Gusto mo bang i-restart ngayon? + + + Allow Screen Capture + Payagan ang Screen Capture + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + + + + Import Passkey + + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + I-edit ang Entry + + + Delete Entry + + + + Create Group + + + + Edit Group + I-edit ang Group + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + kopyahin ang Username + + + Copy Password + Kopyahin ang Password + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + Mag-import ng KeePass1 Database + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + + + + ManageDatabase + + Database settings + Mga database setting + + + Edit database settings + I-edit ang mga database setting + + + Unlock database + I-unlock ang Database + + + Unlock database to show more information + I-unlock ang database para magpakita ng higit pang impormasyon + + + Lock database + I-lock ang database + + + + ManageSession + + Disconnect + Idiskonekta + + + Disconnect this application + Idiskonekta ang application na ito + + + Reset + I-reset + + + Reset any remembered decisions for this application + I-reset ang anumang mga naaalalang desisyon para sa application na ito + + + + Merger + + Creating missing %1 [%2] + Lumilikha ng nawawalang %1 [%2] + + + Relocating %1 [%2] + Inililipat ang %1 [%2] + + + Overwriting %1 [%2] + Ino-overwrite na ang %1 [%2] + + + Synchronizing from newer source %1 [%2] + Sini-synchronize mula sa mas bagong source na %1 [%2] + + + Synchronizing from older source %1 [%2] + Sini-synchronize mula sa mas lumang source na %1 [%2] + + + Deleting child %1 [%2] + Dini-delete ang child na %1 [%2] + + + Deleting orphan %1 [%2] + Dini-delete ang orphan na %1 [%2] + + + Changed deleted objects + Binago na ang mga na-delete na object + + + Adding missing icon %1 + Pagdaragdag ng nawawalang icon %1 + + + Removed custom data %1 [%2] + Inalis ang custom data na %1 [%2] + + + Adding custom data %1 [%2] + Pagdaragdag ng custom data %1 [%2] + + + + NewDatabaseWizard + + Create a new KeePassXC database… + Lumikha ng bagong database ng KeePassXC… + + + Root + Root group + Root + + + + NewDatabaseWizardPage + + WizardPage + WizardPage + + + Encryption Settings + Mga Setting ng Pag-encrypt + + + Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. + Dito puwede mong ayusin ang mga setting ng pag-encrypt ng database. Huwag mag-alala, puwede mong baguhin ang mga ito sa ibang pagkakataon sa mga setting ng database. + + + + NewDatabaseWizardPageDatabaseKey + + Database Credentials + Mga Kredensyal sa Database + + + A set of credentials known only to you that protects your database. + Isang hanay ng mga kredensyal na mismong alam mong nagpoprotekta sa database mo. + + + + NewDatabaseWizardPageEncryption + + Encryption Settings + Mga Setting ng Pag-encrypt + + + Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. + Dito puwede mong ayusin ang mga setting ng pag-encrypt ng database. Huwag mag-alala, puwede mong baguhin ang mga ito sa ibang pagkakataon sa mga setting ng database. + + + + NewDatabaseWizardPageMetaData + + General Database Information + Pangkalahatang Impormasyon sa Database + + + Please fill in the display name and an optional description for your new database: + Pakipunan ang display name at isang opsyonal na paglalarawan para sa iyong bagong database: + + + + NixUtils + + Password Manager + Password Manager + + + Global shortcut already registered to %1 + Nakarehistro na ang global shortcut sa %1 + + + Could not register global shortcut + Hindi mairehistro ang global shortcut + + + + OpData01 + + Invalid OpData01, does not contain header + Invalid na OpData01, hindi naglalaman ng header + + + Unable to read all IV bytes, wanted 16 but got %1 + Hindi mabasa ang lahat ng IV bytes, ginusto ng 16 ngunit nakakuha ng %1 + + + Unable to init cipher for opdata01: %1 + Hindi ma-init ang cipher para sa opdata01: %1 + + + Unable to read all HMAC signature bytes + Hindi mabasa ang lahat ng HMAC signature bytes + + + Malformed OpData01 due to a failed HMAC + Hindi nabuo ang OpData01 dahil sa nabigo ang HMAC + + + Unable to process clearText in place + Hindi maproseso ang clearText sa lugar + + + Expected %1 bytes of clear-text, found %2 + Inaasahan na %1 byte ng may malinaw na teksto, natagpuan ang %2 + + + + OpVaultReader + + Directory .opvault must exist + Dapat umiral ang Directory .opvault + + + Directory .opvault must be readable + Dapat na nababasa ang Directory .opvault + + + Directory .opvault/default must exist + Dapat umiral ang Directory .opvault/default + + + Directory .opvault/default must be readable + Dapat na nababasa ang directory .opvault/default + + + Unable to decode masterKey: %1 + Hindi ma-decode ang masterKey: %1 + + + Unable to derive master key: %1 + Hindi makuha ang master key: %1 + + + + OpenSSHKey + + Invalid key file, expecting an OpenSSH key + Invalid na key file, asahan ang OpenSSH key + + + PEM boundary mismatch + Hindi tugma sa PEM boundary + + + Base64 decoding failed + Nabigo ang pag-decode ng Base64 + + + Key file way too small. + Napakaliit ng key file. + + + Key file magic header id invalid + Invalid ang magic header id ng key file + + + Found zero keys + May nakitang mga zero key + + + Failed to read public key. + Nabigong basahin ang public key. + + + Corrupted key file, reading private key failed + Sirang key file, hindi nabasa ang private key + + + Unsupported key type: %1 + Hindi suportadong uri ng key: %1 + + + No private key payload to decrypt + Walang pribadong key payload para ma-decrypt + + + Unknown cipher: %1 + Hindi kilalang cipher: %1 + + + AES-256/GCM is currently not supported + AES-256/GCM ay kasalukuyang hindi sinusuportahan + + + Passphrase is required to decrypt this key + Kinakailangan ang passphrase para i-decrypt ang key na ito + + + Key derivation failed: %1 + Nabigo ang pag-derivate ng key: %1 + + + Cipher IV is too short for MD5 kdf + Masyadong maikli ang Cipher IV para sa MD5 kdf + + + Unknown KDF: %1 + Hindi kilalang KDF: %1 + + + Failed to initialize cipher: %1 + Nabigong simulan ang cipher: %1 + + + Decryption failed: %1 + Nabigo ang pag-decrypt: %1 + + + Decryption failed, wrong passphrase? + Nabigo ang pag-decrypt, maling passphrase? + + + Unexpected EOF while reading key + Hindi inaasahang EOF habang nagsusulat ng key + + + Unsupported key part + Hindi suportadong bahagi ng key + + + Unexpected EOF while reading public key + Hindi inaasahang EOF habang nagsusulat ng public key + + + Unknown key type: %1 + Hindi kilalang uri ng key: %1 + + + Unexpected EOF while reading private key + Hindi inaasahang EOF habang nagbabasa ng private key + + + Can't write public key as it is empty + Hindi makasulat ng public key dahil ito ay walang laman + + + Unexpected EOF when writing public key + Hindi inaasahang EOF kapag nagsusulat ng public key + + + Can't write private key as it is empty + Hindi makasulat ng private key dahil ito ay walang laman + + + Unexpected EOF when writing private key + Hindi inaasahang EOF kapag nagsusulat ng private key + + + + OpenSSHKeyGenDialog + + SSH Key Generator + + + + Type + Uri + + + Bits + + + + Comment + Comment + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + + + + Export the following Passkey entries. + + + + Filenames will be generated with title and .passkey file extension. + + + + Export entries + + + + Export Selected + + + + Cancel + Kanselahin + + + Export to folder + + + + + PasskeyExporter + + KeePassXC: Passkey Export + + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + + Cannot open file + + + + Cannot open file "%1" for writing. + + + + Cannot write to file + + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + + + + Username: %1 + + + + Group + Group + + + Database + + + + Import Passkey + + + + Import + Mag-import + + + Cancel + Kanselahin + + + Import the following Passkey: + + + + Entry + Entry + + + Import the following Passkey to this entry: + + + + Create new entry + + + + Default Passkeys group (Imported Passkeys) + + + + Relying Party: %1 + + + + + PasskeyImporter + + Passkey file + + + + All files + Lahat ng mga file + + + Open Passkey file + + + + Cannot open file + + + + Cannot open file "%1" for reading. + + + + Cannot import Passkey + + + + Cannot import Passkey file "%1". Data is missing. + + + + Cannot import Passkey file "%1". Private key is missing or malformed. + + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + + + + + PasswordEditWidget + + Enter password: + Ilagay ang password: + + + Password field + Field ng password + + + Confirm password: + Kumpirmahin ang password: + + + Repeat password field + Ulitin ang patlang ng password + + + Password + Password + + + Add Password + Magdagdag ng Password + + + Change Password + Palitan ang Password + + + Remove Password + Alisin ang Password + + + Password set, click to change or remove + Itakda ang password, i-click para baguhin o i-remove + + + <p>A password is the primary method for securing your database.</p><p>Good passwords are long and unique. KeePassXC can generate one for you.</p> + <p>Ang isang password ay isang pangunahing paraan para sa pagprotekta ng database mo.</p><p>Ang magagandang password ay mahaba at natatangi. Ang KeePassXC ay maaaring bumuo ng isa nito para sa iyo.</p> + + + Passwords do not match. + Hindi tugma ang mga password. + + + + PasswordGeneratorWidget + + Generate Password + Bumuo ng Password + + + strength + Password strength + lakas + + + entropy + entropy + + + Generated password + Nabuong password + + + %p% + %p% + + + Regenerate password + Muling bumuo ng password + + + Copy password + kopyahin ang password + + + Password + Password + + + &Length: + &Length: + + + Password length + Haba ng password + + + Switch to advanced mode + Lumipat sa advanced na mode + + + Advanced + Advanced + + + Character Types + Mga Uri ng Character + + + Special characters + Mga espesyal na character + + + Quotes + Mga quote + + + Punctuation + Bantas + + + Dashes and Slashes + Dashes at Slashes + + + Upper-case letters + Malalaking titik + + + Numbers + Mga numero + + + Lower-case letters + Mga maliliit na titik + + + Math Symbols + Mga Math Symbol + + + Extended ASCII + Pinalawak na ASCII + + + Braces + Braces + + + Do not include: + Huwag isama ang: + + + Additional characters to use for the generated password + Mga karagdagang character na gagamitin para sa nabuong password + + + Additional characters + Mga karagdagang character + + + Add non-hex letters to "do not include" list + Magdagdag ng mga non-hex na titik sa listahan ng "huwag isama". + + + Hex Passwords + Mga Hex na Password + + + Hex + Hex + + + Character set to exclude from generated password + I-set ang character na bukod mula sa nabuong password + + + Excluded characters + Mga ibinukod na character + + + Also choose from: + Gayundin, pumili mula sa: + + + Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" + Mga ibinukod na character: "0", "1", "l", "I", "O", "|", "ï¹’" + + + Exclude look-alike characters + Ibukod ang mga halos katulad na karakter + + + Pick characters from every group + Pumili ng mga character mula sa bawat grupo + + + Passphrase + Passphrase + + + Word Separator: + Word Separator: + + + Wordlist: + Wordlist: + + + Word Count: + Bilang ng Salita: + + + Character Count: + Bilang ng Character: + + + Word Case: + Word Case: + + + Delete selected wordlist + I-delete ang napiling wordlist + + + Add custom wordlist + Magdagdag ng custom wordlist + + + character + character + + + Close + I-close + + + Esc + Esc + + + Apply Password + Ilapat ang Password + + + Regenerate password (%1) + Muling bumuo ng password (%1) + + + lower case + maliit na titik + + + UPPER CASE + MALALAKING LETRA + + + Title Case + Pamagat ng Case + + + (SYSTEM) + (SYSTEM) + + + Entropy: %1 bit + Entropy: %1 bit + + + Password Quality: %1 + Kalidad ng Password: %1 + + + Poor + Password quality + Mahina + + + Weak + Password quality + Mahina + + + Good + Password quality + Mabuti + + + Excellent + Password quality + Magaling + + + Confirm Delete Wordlist + Kumpirmahin ang Delete Wordlist + + + Do you really want to delete the wordlist "%1"? + Gusto mo bang i-delete ang wordlist na "%1"? + + + Failed to delete wordlist + Nabigong i-delete ang wordlist + + + Wordlists + Mga Wordlist + + + All files + Lahat ng mga file + + + Select Custom Wordlist + Piliin ang Custom na Wordlist + + + Overwrite Wordlist? + I-overwrite ang Wordlist? + + + Wordlist "%1" already exists as a custom wordlist. +Do you want to overwrite it? + Umiiral na ang Wordlist na "%1" bilang custom na wordlist. +Gusto mo bang i-overwrite ito? + + + Failed to add wordlist + Nabigong magdagdag ng wordlist + + + Logograms + Logograms + + + Special Characters + Mga Espesyal na Character + + + + PasswordWidget + + Passwords do not match + Hindi tugma ang mga password + + + Passwords match so far + Ang mga password ay tugma sa ngayon + + + Toggle Password (%1) + I-toggle ang Password na (%1) + + + Generate Password (%1) + Bumuo ng Password na (%1) + + + Warning: Caps Lock enabled! + Babala: Naka-enable ang Caps Lock! + + + Quality: %1 + Kalidad: %1 + + + Poor + Password quality + Mahina + + + Weak + Password quality + Mahina + + + Good + Password quality + Mabuti + + + Excellent + Password quality + Magaling + + + Toggle password visibility using Control + H. Open the password generator using Control + G. + + + + + PickcharsDialog + + KeePassXC - Pick Characters + KeePassXC - Mga Pick Character + + + Select characters to type, navigate with arrow keys, Ctrl + S submits. + Pumili ng mga character na ita-type, mag-navigate gamit ang mga arrow key, Ctrl + S isinumite. + + + Press &Tab between characters + Pindutin ang &Tab sa pagitan ng mga character + + + + QMessageBox + + Overwrite + I-overwrite + + + Delete + I-delete + + + Move + Ilipat + + + Empty + Walang laman + + + Remove + Alisin + + + Skip + Laktawan + + + Disable + I-disable + + + Merge + Pagsamahin + + + Continue + Magpatuloy + + + Continue with weak password + + + + + QObject + + Database not opened + Hindi nabuksan ang database + + + Database hash not available + Hindi available ang hash ng database + + + Client public key not received + Hindi natanggap ang public key ng client + + + Cannot decrypt message + Hindi ma-decrypt ang mensahe + + + Action cancelled or denied + Kinansela o tinanggihan ang aksyon + + + Message encryption failed. + Nabigo ang pag-encrypt ng mensahe. + + + KeePassXC association failed, try again + Nabigo ang pagkakaugnay ng KeePassXC, subukang muli + + + Encryption key is not recognized + Ang key sa pag-encrypt ay hindi nakikilala + + + Incorrect action + Maling aksyon + + + Empty message received + Walang laman ang natanggap na mensahe + + + No URL provided + Walang ibinigay na URL + + + No logins found + Walang nahanap na mga login + + + No groups found + Walang nakitang group + + + Cannot create new group + Hindi makagawa ng bagong pangkat + + + No valid UUID provided + Walang valid na UUID ang ibinigay + + + Unknown error + Unknown na error + + + Browser Integration + Pagsasama ng Browser + + + Browser Plugin Failure + Nabigo ang Plugin ng Browser + + + Could not save the native messaging script file for %1. + Hindi mai-save ang native messaging script file para sa %1. + + + Username for the entry. + Username para sa entry. + + + username + username + + + URL for the entry. + URL para sa entry. + + + URL + URL + + + Notes for the entry. + Mag tala para sa entry. + + + Notes + Mga tala + + + Prompt for the entry's password. + I-prompt para sa password ng entry. + + + Generate a password for the entry. + Bumuo ng isang password para sa entry. + + + Add a new entry to a database. + Magdagdag ng bagong entry sa isang database. + + + Path of the entry to add. + Path ng entry na idadagdag. + + + Cannot generate a password and prompt at the same time. + Hindi makabuo ng password at prompt sa magkaparehong oras. + + + Could not create entry with path %1. + Hindi makalikha ng entry na may path na %1. + + + Enter password for new entry: + Maglagay ng password para sa bagong entry: + + + Writing the database failed %1. + Nabigo ang pagsulat ng database na %1. + + + Successfully added entry %1. + Matagumpay na naidagdag ang entry na %1. + + + Adds a new group to a database. + Magdagdag ng bagong pangkat sa isang database. + + + Path of the group to add. + Path ng group na idaragdag. + + + Group %1 already exists! + Umiiral na ang group na %1! + + + Group %1 not found. + Hindi nahanap ang group na %1. + + + Successfully added group %1. + Matagumpay na naidagdag ang group na %1. + + + Check if any passwords have been publicly leaked. FILENAME must be the path of a file listing SHA-1 hashes of leaked passwords in HIBP format, as available from https://haveibeenpwned.com/Passwords. + Suriin kung ang anumang mga password ay na-leak sa publiko. Ang FILENAME ay dapat na path ng file na naglilista ng mga SHA-1 na hash ng mga na-leak na password sa HIBP na format, bilang available mula sa https://haveibeenpwned.com/Passwords. + + + FILENAME + FILENAME + + + Path to okon-cli to search a formatted HIBP file + Path sa okon-cli para maghanap ng na-format na HIBP file + + + okon-cli + okon-cli + + + Analyze passwords for weaknesses and problems. + Suriin ang mga password para sa mga kahinaan at problema. + + + Cannot find HIBP file: %1 + Hindi mahanap ang HIBP file: %1 + + + Evaluating database entries using okon… + Sinusuri ang mga entry sa database gamit ang okon… + + + Failed to open HIBP file %1: %2 + Nabigong buksan ang HIBP file na %1: %2 + + + Evaluating database entries against HIBP file, this will take a while… + Sinusuri ang mga entry sa database sa HIBP file, ito ay medyo magtatagal… + + + Password for '%1' has been leaked %2 time(s)! + Ang password para kay '%1' ay na-leak ng %2 (na) beses!Ang password para kay '%1' ay na-leak ng %2 (na) beses! + + + Password for '%1' has been leaked! + Ang password para kay '%1' ay na-leak! + + + Export an attachment of an entry. + Mag-export ng attachment ng isang entry. + + + Path of the entry with the target attachment. + Path ng entry na may target na attachment. + + + Name of the attachment to be exported. + Pangalan ng attachment na ie-export. + + + Path to which the attachment should be exported. + Path kung saan dapat i-export ang attachment. + + + Could not find entry with path %1. + Hindi mahanap ang entry na may path na %1. + + + Could not find attachment with name %1. + Hindi mahanap ang attachment na may pangalan na %1. + + + No export target given. Please use '--stdout' or specify an 'export-file'. + Walang ibinigay na target sa pag-export. Pakigamit ang '--stdout' o tukuyin ang 'export-file'. + + + Could not open output file %1. + Hindi mabuksan ang output file na %1. + + + Successfully exported attachment %1 of entry %2 to %3. + Matagumpay na na-export ang attachment na %1 ng entry na %2 hanggang sa %3. + + + Overwrite existing attachments. + I-overwrite ang mga kasalukuyang attachment. + + + Imports an attachment to an entry. + Mag-import ng attachment sa isang entry. + + + Path of the entry. + Path ng entry. + + + Name of the attachment to be added. + Pangalan ng attachment na idadagdag. + + + Path of the attachment to be imported. + Path ng attachment na ii-import. + + + Attachment %1 already exists for entry %2. + Umiiral na ang attachment na %1 para sa entry na %2. + + + Could not open attachment file %1. + Hindi mabuksan ang attachment file na %1. + + + Successfully imported attachment %1 as %2 to entry %3. + Matagumpay na na-import ang attachment na %1 bilang %2 sa entry na %3. + + + Remove an attachment of an entry. + Alisin ang isang attachment ng isang entry. + + + Name of the attachment to be removed. + Pangalan ng attachment na aalisin. + + + Successfully removed attachment %1 from entry %2. + Matagumpay na na-remove ang attachment na %1 mula sa entry na %2. + + + Copy the given attribute to the clipboard. Defaults to "password" if not specified. + Don't translate "password", it refers to the attribute. + Kopyahin ang ibinigay na attribute sa clipboard. Default sa "password" kung hindi tinukoy. + + + Copy the current TOTP to the clipboard (equivalent to "-a totp"). + Kopyahin ang kasalukuyang TOTP sa clipboard (katumbas ng "-isang totp"). + + + Must match only one entry, otherwise a list of possible matches is shown. + Dapat tumugma sa isang entry lamang, kung hindi, isang listahan ng mga posibleng tugma ay ipapakita. + + + Copy an entry's attribute to the clipboard. + Kopyahin ang attribute ng isang entry sa clipboard. + + + Path of the entry to clip. + clip = copy to clipboard + Path ng entry sa clip. + + + Timeout before clearing the clipboard (default is %1 seconds, set to 0 for unlimited). + Patigilin bago i-clear ang clipboard (default ay %1 segundo, nakatakda sa 0 para sa unlimited). + + + Invalid timeout value %1. + Invalid na value ng timeout na %1. + + + Multiple entries matching: + Maramihang mga entry na tumutugma: + + + Using matching entry: %1 + Gamit ang katugmang entry: %1 + + + Entry %1 not found. + Hindi nahanap ang entry na %1. + + + ERROR: Please specify one of --attribute or --totp, not both. + ERROR: Pakitukoy ang isa sa --attribute o --totp, hindi pareho. + + + Entry with path %1 has no TOTP set up. + Ang entry na may path na %1 ay walang TOTP set up. + + + ERROR: attribute %1 is ambiguous, it matches %2. + ERROR: ang attribute na %1 ay hindi tiyak, tumutugma ito sa %2. + + + Attribute "%1" not found. + Hindi nakita ang attribute na "%1". + + + Entry's "%1" attribute copied to the clipboard! + Nakopya sa clipboard ang entry na attribute na "%1"! + + + Clearing the clipboard in %1 second(s)... + Kini-clear ang clipboard sa %1 segundo...Kini-clear ang clipboard sa %1 (mga) segundo... + + + Clipboard cleared! + Na-clear ang clipboard! + + + Close the currently opened database. + I-close ang kasalukuyang nakabukas na database. + + + Display this help. + Ipakita ang tulong na ito. + + + Silence password prompt and other secondary outputs. + Patigilin ang prompt ng password at iba pang pangalawang output. + + + Key file of the database. + Key file ng database. + + + path + path + + + Deactivate password key for the database. + I-deactivate ang password key para sa database. + + + Yubikey slot and optional serial used to access the database (e.g., 1:7370001). + Ang Yubikey slot at opsyonal na serial na ginagamit para ma-access ang database (hal., 1:7370001). + + + slot[:serial] + slot[:serial] + + + Missing positional argument(s). + Nawawala (mga) positional na argument. + + + Too many arguments provided. + Masyadong maraming argument ang ibinigay. + + + Path of the database. + Path ng database + + + Target decryption time in MS for the database. + Target na oras ng pag-decrypt sa MS para sa database. + + + time + oras + + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Itakda ang key file para sa database. +Ang pagpipiliang ito ay hindi na ginagamit, gamitin ang --set-key-file sa halip. + + + Set the key file for the database. + Itakda ang key file para sa database. + + + Set a password for the database. + Magtakda ng password para sa database. + + + Create a new database. + Lumikha ng bagong database + + + Invalid decryption time %1. + Invalid na oras ng pag-decrypt na %1. + + + Target decryption time must be between %1 and %2. + Ang target na oras ng pag-decrypt ay dapat nasa pagitan ng %1 at %2. + + + Failed to set database password. + Nabigong i-set ang password ng database. + + + Loading the key file failed + Nabigo ang paglo-load ng key file + + + No key is set. Aborting database creation. + Walang na-set na key. Pinapatigil ang paglikha ng database. + + + Benchmarking key derivation function for %1ms delay. + Pag-benchmark ng key derivation function para sa %1ms na pagkaantala. + + + Setting %1 rounds for key derivation function. + Pagtatakda ng %1 round para sa key derivation function. + + + error while setting database key derivation settings. + error habang nagtatakda ng mga setting ng derivation ng database key. + + + File %1 already exists. + Umiiral na ang file na %1. + + + Failed to save the database: %1. + Nabigong i-save ang database: %1. + + + Successfully created new database. + Matagumpay na nakagawa ng bagong database. + + + Unset the password for the database. + I-unset ang password para sa database. + + + Unset the key file for the database. + I-unset ang key file para sa database + + + Edit a database. + I-edit ang database + + + Cannot use %1 and %2 at the same time. + Hindi magagamit ang %1 at %2 nang magkasabay. + + + Could not change the database key. + Hindi mabago ang database key. + + + Database was not modified. + Hindi binago ang database. + + + Writing the database failed: %1 + Nabigo ang pagsulat ng database: %1 + + + Successfully edited the database. + Matagumpay na na-edit ang database. + + + Cannot remove password: The database does not have a password. + Hindi maalis ang password: Walang password ang database. + + + Cannot remove file key: The database does not have a file key. + Hindi maalis ang file key: Ang database ay walang file key. + + + Loading the new key file failed: %1 + Nabigo ang pag-load ng bagong key file: %1 + + + Found unexpected Key type %1 + May nakitang hindi inaasahang uri ng Key %1 + + + Cannot remove all the keys from a database. + Hindi maalis ang lahat ng mga key mula sa database. + + + Show a database's information. + Ipakita ang impormasyon ng database + + + UUID: + UUID: + + + Name: + Pangalan: + + + Description: + Paglalarawan: + + + Cipher: + Cipher: + + + KDF: + KDF: + + + Recycle bin is enabled. + Naka-enable ang recycle bin + + + Recycle bin is not enabled. + Ang recycle bin ay hindi naka-enable. + + + Location + Lokasyon + + + Database created + Nalikha na ang database + + + Last saved + Huling na-save + + + Unsaved changes + Mga hindi na-save na pagbabago + + + yes + oo + + + no + wala + + + Number of groups + Bilang ng mga grupo + + + Number of entries + Bilang ng mga entry + + + Number of expired entries + Bilang ng mga nag-expire na entry + + + Unique passwords + Natatanging password + + + Non-unique passwords + Hindi natatanging mga password + + + Maximum password reuse + Maximum na muling paggamit ng password + + + Number of short passwords + Bilang ng mabababang password + + + Number of weak passwords + Bilang ng mahihinang password + + + Entries excluded from reports + Ang mga entry ay hindi kasama sa mga ulat + + + Average password length + Average na haba ng password + + + %1 characters + %1 character + + + Word count for the diceware passphrase. + Bilang ng salita para sa diceware passphrase. + + + count + CLI parameter + bilang + + + Wordlist for the diceware generator. +[Default: EFF English] + Wordlist para sa diceware generator. +[Default: EFF English] + + + Generate a new random diceware passphrase. + Bumuo ng bagong random na diceware passphrase. + + + Invalid word count %1 + Invalid na word count na %1 + + + The word list is too small (< 1000 items) + Masyadong maliit ang listahan ng salitang (< 1000 item) + + + Title for the entry. + Pamagat para sa entry + + + title + pamagat + + + Edit an entry. + I-edit ang entry. + + + Path of the entry to edit. + Path ng entry para i-edit. + + + Not changing any field for entry %1. + Hindi binabago ang anumang field para sa entry %1. + + + Enter new password for entry: + Maglagay ng bagong password para sa entry: + + + Successfully edited entry %1. + Matagumpay na na-edit ang entry na %1. + + + Perform advanced analysis on the password. + Magsagawa ng advanced na pagsusuri sa password. + + + Password for which to estimate the entropy. + Password para kung saan tatantyahin ang entropy. + + + Estimate the entropy of a password. + Tantyahin ang entropy ng isang password. + + + Length %1 + Haba na %1 + + + Entropy %1 + Entropy %1 + + + Log10 %1 + Log10 %1 + + + Multi-word extra bits %1 + Dagdag na piraso ng maramihang salita %1 + + + Type: Bruteforce + Uri: Bruteforce + + + Type: Dictionary + Uri: Dictionary + + + Type: Dict+Leet + Uri: Dict+Leet + + + Type: User Words + Uri: User Words + + + Type: User+Leet + Uri: User+Leet + + + Type: Repeated + Uri: Paulit-ulit + + + Type: Sequence + Uri: Sequence + + + Type: Spatial + Uri: Spatial + + + Type: Date + Uri: Petsa + + + Type: Bruteforce(Rep) + Uri: Bruteforce(Rep) + + + Type: Dictionary(Rep) + Uri: Dictionary(Rep) + + + Type: Dict+Leet(Rep) + Uri: Dict+Leet(Rep) + + + Type: User Words(Rep) + Uri: User Words(Rep) + + + Type: User+Leet(Rep) + Uri: User+Leet(Rep) + + + Type: Repeated(Rep) + Uri: Paulit-ulit na(Rep) + + + Type: Sequence(Rep) + Uri: Sequence(Rep) + + + Type: Spatial(Rep) + Uri: Spatial(Rep) + + + Type: Date(Rep) + Type: Petsa ng(Rep) + + + Type: Unknown (%1) + Uri: Unknown na (%1) + + + Entropy %1 (%2) + Entropy %1 (%2) + + + *** Password length (%1) != sum of length of parts (%2) *** + *** Password length (%1) != sum of length of parts (%2) *** + + + Exit interactive mode. + Lumabas sa interactive mode. + + + Format to use when exporting. Available choices are 'xml' or 'csv'. Defaults to 'xml'. + Format na gagamitin kapag nag-e-export. Ang mga available na pagpipilian ay 'xml' o 'csv'. Default sa 'xml'. + + + Exports the content of a database to standard output in the specified format. + Nai-export na ang nilalaman ng isang database sa karaniwang output sa tinukoy na format. + + + Unable to export database to XML: %1 + Hindi ma-export ang database sa XML: %1 + + + Unsupported format %1 + Hindi suportadong format %1 + + + Length of the generated password + Ang haba ng nabuong password + + + length + Haba + + + Use lowercase characters + Gumamit ng maliliit na character + + + Use uppercase characters + Gumamit ng malalaking character + + + Use numbers + Gumamit ng mga numero + + + Use special characters + Gumamit ng mga espesyal na character + + + Use extended ASCII + Gumamit ng pinahabang ASCII + + + Exclude character set + Ibukod ang set ng character + + + chars + chars + + + Use custom character set + Gumamit ng custom na set ng character + + + Exclude similar looking characters + Ibukod ang magkatulad na hitsura ng mga character + + + Include characters from every selected group + Isama ang mga character mula sa bawat napiling group + + + Generate a new random password. + Bumuo ng bagong random na password. + + + Invalid password length %1 + Invalid na haba ng password na %1 + + + Invalid password generator after applying all options + Invalid na generator ng password pagkatapos ilapat ang lahat ng mga opsyon + + + Display command help. + Ipakita ang tulong na command. + + + Available commands: + Mga available na command: + + + Import the contents of an XML database. + Mag-import ng mga content ng isang XML database. + + + Path of the XML database export. + Path ng pag-export ng XML database + + + Path of the new database. + Path ng bagong database. + + + Unable to import XML database: %1 + Hindi makapag-import ng XML database: %1 + + + Successfully imported database. + Matagumpay na na-import ang database. + + + Unknown command %1 + Hindi kilalang utos %1 + + + + +Available commands: + + + +Mga available command: + + + + Name of the command to execute. + Pangalan ng utos na isasagawa. + + + Displays debugging information. + Nagpapakita ng impormasyon sa pag-debug. + + + Invalid command %1. + Invalid na command na %1. + + + Recursively list the elements of the group. + Paulit-ulit na ilista ang mga elemento ng group. + + + Flattens the output to single lines. + Pina-flatten ang output sa iisang linya. + + + List database entries. + Listahan ng mga entry sa database. + + + Path of the group to list. Default is / + Path ng group para sa listahan. Default ay / + + + Cannot find group %1. + Hindi mahanap ang pangkat na %1. + + + Use the same credentials for both database files. + Gamitin ang parehong mga kredensyal para sa parehong mga file ng database. + + + Key file of the database to merge from. + Key file ng database na pagsasamahin. + + + Deactivate password key for the database to merge from. + I-deactivate ang password key para sa database na pagsasamahin. + + + Only print the changes detected by the merge operation. + I-print lamang ang mga pagbabagong nakita ng merge operation. + + + Yubikey slot for the second database. + Yubikey slot para sa pangalawang database. + + + slot + slot + + + Merge two databases. + Pagsamahin ang dalawang database. + + + Path of the database to merge from. + Path ng database kung saan pagsasamahin. + + + Error reading merge file: +%1 + Error sa pagbabasa ng merge file: +%1 + + + Unable to save database to file : %1 + Hindi mai-save ang databasa sa file na: %1 + + + Successfully merged %1 into %2. + Matagumpay na pinagsama ang %1 sa %2. + + + Database was not modified by merge operation. + Ang database ay hindi binago ng operasyon ng pagsasama. + + + Moves an entry to a new group. + Inilipat ang isang entry sa isang bagong group. + + + Path of the entry to move. + Path ng entry para ilipat. + + + Path of the destination group. + Path ng distinasyon ng group. + + + Could not find group with path %1. + Hindi mahanap ang group na may path na %1. + + + Entry is already in group %1. + Ang entry ay nasa group na %1. + + + Successfully moved entry %1 to group %2. + Matagumpay na nailipat ang entry %1 sa group na %2. + + + Open a database. + Magbukas ng database. + + + Path of the entry to remove. + Path ng entry para i-remove. + + + Unable to save database to file: %1 + Hindi mai-save ang database sa file na: %1 + + + Successfully recycled entry %1. + Matagumpay na na-recycle ang entry na %1. + + + Successfully deleted entry %1. + Matagumpay na na-delete ang entry na %1. + + + Path of the group to remove. + Path ng group na ire-remove. + + + Cannot remove root group from database. + Hindi maalis ang root group mula sa database. + + + Successfully recycled group %1. + Matagumpay na na-recycle ang group na %1. + + + Successfully deleted group %1. + Matagumpay na na-delete ang group na %1. + + + Find entries quickly. + Maghanap ng mga entry nang mabilis. + + + Search term. + Termino sa paghahanap. + + + Show the entry's current TOTP. + Ipakita ang kasalukuyang TOTP ng entry. + + + Show the protected attributes in clear text. + Ipakita ang mga protektadong attribute sa malinaw na teksto. + + + Show all the attributes of the entry. + Ipakita ang lahat ng mga attribute ng entry. + + + Show the attachments of the entry. + Ipakita ang mga attachment ng entry. + + + Names of the attributes to show. This option can be specified more than once, with each attribute shown one-per-line in the given order. If no attributes are specified, a summary of the default attributes is given. + Mga pangalan ng ipapakitang katangian. Maaaring tukuyin ang opsyon na ito nang higit sa isang beses, na ang bawat katangian ay ipinapakita nang isa-bawat-linya sa ibinigay na pagkakasunud-sunod. Kung walang tinukoy na mga katangian, ibibigay ang buod ng mga default na katangian. + + + attribute + attribute + + + Show an entry's information. + Ipakita ang impormasyon ng entry. + + + Name of the entry to show. + Pangalan ng entry na ipapakita. + + + ERROR: unknown attribute %1. + ERROR: hindi alam na attribute %1. + + + No attachments present. + Walang mga attachment ang naroroon. + + + Attachments: + Mga attachment: + + + Failed to open database file %1: not found + Nabigong buksan ang file ng database na %1: hindi nahanap + + + Failed to open database file %1: not a plain file + Nabigong buksan ang database file na %1: hindi isang simpleng file + + + Failed to open database file %1: not readable + Nabigong buksan ang database file na %1: hindi nababasa + + + Enter password to unlock %1: + Maglagay ng password para i-unlock ang %1: + + + Failed to load key file %1: %2 + Nabigong i-load ang key file %1: %2 + + + WARNING: You are using an old key file format which KeePassXC may +stop supporting in the future. + +Please consider generating a new key file. + BABALA: Gumagamit ka ng lumang key file format na maaaring magpatigil sa +KeePassXC ng pagsuporta sa hinaharap. + +Mangyaring isaalang-alang ang pagbuo ng bagong key file. + + + Invalid YubiKey slot %1 + Invalid na YubiKey slot na %1 + + + Invalid YubiKey serial %1 + Invalid na YubiKey serial na %1 + + + Please present or touch your YubiKey to continue. + Mangyaring ipakita o pindutin ang iyong YubiKey para magpatuloy. + + + Enter password to encrypt database (optional): + Maglagay ng password para i-encrypt ang database (opsyonal): + + + Do you want to create a database with an empty password? [y/N]: + Gusto mo bang lumikha ng isang database na walang password? [y/N]: + + + Repeat password: + Ulitin ang password: + + + Error: Passwords do not match. + Error: Hindi tugma ang mga password. + + + No program defined for clipboard manipulation + Walang tinukoy na program para sa pagmamanipula ng clipboard + + + All clipping programs failed. Tried %1 + + Nabigo ang lahat ng clipping program. Sinubukan ang %1 + + + + Creating KeyFile %1 failed: %2 + Nabigo ang paglikha ng KeyFile na %1: %2 + + + Loading KeyFile %1 failed: %2 + Nabigo ang paglo-load ng KeyFile na %1: %2 + + + HIBP file, line %1: parse error + HIBP file, linya na %1: error sa pag-parse + + + To use okon, you must provide a post-processed file (e.g. file.okon) + Para magamit ang okon, dapat kang magbigay ng post-processed na file (hal. file.okon) + + + Could not start okon process: %1 + Hindi masimulan ang proseso ng okon: %1 + + + Error: okon process did not finish + Error: hindi natapos ang proseso ng okon + + + Failed to load okon processed database: %1 + Nabigong i-load ang okon sa naprosesong database: %1 + + + Very weak password + Napakahina ng password + + + Password entropy is %1 bits + Ang entropy ng password ay %1 bits + + + Weak password + Mahinang password + + + Used in %1/%2 + Ginamit sa %1%2 + + + Password is used %1 time(s) + Ginagamit ang password ng %1 besesGinagamit ang password ng %1 (mga) beses + + + Password has expired + Nag-expire na ang password + + + Password expiry was %1 + Ang pag-expire ng password ay sa %1 + + + Password expires on %1 + Mag-e-expire ang password sa %1 + + + Password is about to expire + Malapit nang mag-expire ang password + + + Password expires in %1 day(s) + Mag-e-expire ang password sa loob ng %1 na arawMag-e-expire ang password sa loob ng %1 na (mga) araw + + + Password will expire soon + Malapit nang mag-expire ang password + + + Version %1 + Bersyon na %1 + + + Build Type: %1 + Uri ng Build: %1 + + + Revision: %1 + Pagbabago: %1 + + + Distribution: %1 + Pamamahagi: %1 + + + Debugging mode is disabled. + Naka-disable ang mode ng pag-debug. + + + Debugging mode is enabled. + Naka-enable ang mode ng pag-debug. + + + Operating system: %1 +CPU architecture: %2 +Kernel: %3 %4 + Operating system: %1 +Arkitektura ng CPU: %2 +Kernel: %3 %4 + + + Auto-Type + Auto-Type + + + SSH Agent + SSH Agent + + + KeeShare + KeeShare + + + YubiKey + YubiKey + + + Quick Unlock + Mabilis na I-unlock + + + Secret Service Integration + Secret Service Integration + + + None + Wala + + + Enabled extensions: + Mga na-enable na extension: + + + over %1 year(s) + mahigit sa %1 taonmahigit sa %1 (mga) taon + + + about %1 month(s) + humigit-kumulang na %1 buwanhumigit-kumulang na %1 (mga) buwan + + + %1 week(s) + %1 linggo%1 (mga)linggo + + + %1 day(s) + %1 araw%1 (mga)araw + + + %1 hour(s) + %1 oras%1 (mga)oras + + + %1 minute(s) + %1 minuto%1 (mga)minuto + + + Botan library must be at least %1, found %2.%3.%4 + + + + Cryptographic libraries: + Mga Cryptographic na library: + + + AES (%1 rounds) + AES (%1 round) + + + Argon2%1 (%2 rounds, %3 KB) + Argon2%1 (%2 rounds, %3 KB) + + + SymmetricCipher::init: Invalid cipher mode. + SymmetricCipher::init: Invalid na cipher mode. + + + SymmetricCipher::init: Invalid IV size of %1 for %2. + SymmetricCipher::init: Invalid IV na sukat ng %1 para sa %2. + + + Cipher not initialized prior to use. + Hindi nasimulan ang cipher bago gamitin. + + + Cannot process 0 length data. + Hindi maproseso ang 0 haba ng data. + + + unknown executable (DBus address %1) + unknown na executable (DBus address na %1) + + + %1 (invalid executable path) + %1 (hindi wastong executable path) + + + NULL device + NULL na device + + + error reading from device + error sa pagbabasa mula sa device + + + file empty + walang lamang file + + + malformed string + malformed na string + + + missing closing quote + nawawalang closing quote + + + %1: (row, col) %2,%3 + %1: (row, col) %2,%3 + + + AES 256-bit + AES 256-bit + + + Twofish 256-bit + Twofish 256-bit + + + ChaCha20 256-bit + ChaCha20 256-bit + + + Argon2d (KDBX 4 – recommended) + Argon2d (KDBX 4 – inirerekomenda) + + + Argon2id (KDBX 4) + Argon2id (KDBX 4) + + + AES-KDF (KDBX 4) + AES-KDF (KDBX 4) + + + AES-KDF (KDBX 3) + AES-KDF (KDBX 3) + + + Existing single-instance lock file is invalid. Launching new instance. + Ang umiiral na single-instance lock file ay di-wasto. Maglunsad ng bagong instance. + + + The lock file could not be created. Single-instance mode disabled. + Hindi malikha ang lock file. Naka-disable ang single-instance mode. + + + Clearing the clipboard in %1 second(s)… + Kini-clear ang clipboard sa %1 segundo…Kini-clear ang clipboard sa %1 (mga) segundo… + + + Group + Group + + + Title + Pamagat + + + Username + Username + + + Password + Password + + + TOTP + TOTP + + + Icon + Icon + + + Last Modified + Huling Binago + + + Created + Nalikha na + + + Benchmark %1 delay + Benchmark %1 na pagkaantala + + + %1 ms + milliseconds + %1 ms%1 ms + + + %1 s + seconds + %1 s%1 s + + + Do you really want to delete the entry "%1" for good? + Gusto mo bang i-delete ang entry na "%1" nang tuluyan? + + + Do you really want to delete %n entry(s) for good? + Gusto mo bang i-delete ang %n na entry nang tuluyan?Gusto mo bang i-delete ang %n (mga) na entry nang tuluyan? + + + Delete entry(s)? + I-delete ang entry?I-delete ang (mga) entry? + + + Do you really want to move entry "%1" to the recycle bin? + Gusto mo bang ilipat ang entry na "%1" sa recycle bin? + + + Do you really want to move %n entry(s) to the recycle bin? + Gusto mo bang ilipat ang %n na entry sa recycle bin?Gusto mo bang ilipat ang %n na (mga) entry sa recycle bin? + + + Move entry(s) to recycle bin? + Ilipat ang entry sa recycle bin?Ilipat ang (mga) entry sa recycle bin? + + + Replace references to entry? + Palitan ang mga sanggunian sa entry? + + + Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? + Ang entry na "%1" ay mayroong %2 na reference. Gusto mo bang i-overwrite ang mga reference na may mga value, laktawan ang entry na ito, o i-delete ang mga ito?Ang entry na "%1" ay mayroong %2 na (mga) reference. Gusto mo bang i-overwrite ang mga reference na may mga value, laktawan ang entry na ito, o i-delete ang mga ito? + + + User name + Pangalan ng user + + + Browser Statistics + Mga Browser Statistic + + + Health Check + Pagsuri sa Health + + + HIBP + HIBP + + + Statistics + Statistics + + + Unsupported key file version: %1 + Hindi suportadong bersyon ng key file: %1 + + + Checksum mismatch! Key file may be corrupt. + Hindi tugma ang checksum! Maaaring sira ang key file. + + + Unexpected key file data! Key file may be corrupt. + Hindi inaasahang data ng key file! Maaaring corrupt ang key file. + + + KeePassXC - cross-platform password manager + KeePassXC - cross-platform na password manager + + + filenames of the password databases to open (*.kdbx) + mga filename ng mga database ng password na bubuksan (*.kdbx) + + + path to a custom config file + path sa isang custom na config file + + + path to a custom local config file + path sa isang custom local config file + + + lock all open databases + i-lock ang lahat ng bukas na database + + + key file of the database + key file ng database + + + read password of the database from stdin + basahin ang password ng database mula sa stdin + + + Locked databases. + Mga naka-lock na database. + + + Database failed to lock. + Nabigong i-lock ang database. + + + Another instance of KeePassXC is already running. + Ang isa pang halimbawa ng KeePassXC ay tumatakbo na. + + + KeePassXC is not running. No open database to lock + Ang KeePassXC ay hindi tumatakbo. Walang bukas na database upang i-lock + + + Fatal error while testing the cryptographic functions. + Fatal na error habang sinusubukan ang mga cryptographic function. + + + KeePassXC - Error + KeePassXC - Error + + + Database password: + Password ng database: + + + Invalid Settings + TOTP + Mga Invalid Setting + + + Invalid Key + TOTP + Invalid na Key + + + Failed to create Windows Hello credential. + Nabigong gumawa ng kredensyal ng Windows Hello. + + + Failed to sign challenge using Windows Hello. + Nabigong lagdaan ang challenge gamit ang Windows Hello. + + + Warning: Failed to block screenshot capture on a top-level window. + Babala: Nabigong harangan ang pagkuha ng screenshot sa isang top-level na window. + + + Invalid Cipher + Invalid na Cipher + + + Invalid KDF + Invalid na KDF + + + Access to all entries is denied + + + + allow screenshots and app recording (Windows/macOS) + + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + + + + Credential is excluded + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Passkeys + + + + AES initialization failed + + + + AES encrypt failed + + + + Failed to store in Linux Keyring + + + + Polkit returned an error: %1 + + + + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + + + + Failed to init KeePassXC crypto. + Nabigong simulan ang KeePassXC crypto. + + + Failed to encrypt key data. + Nabigong i-encrypt ang key data. + + + Failed to get Windows Hello credential. + Nabigong makuha ang kredensyal ng Windows Hello. + + + Failed to decrypt key data. + Nabigong i-decrypt ang key data. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length + + + + + QtIOCompressor + + Internal zlib error when compressing: + Panloob na zlib error kapag nag-compress: + + + Error writing to underlying device: + Error sa pagsulat sa pinagbabatayang device: + + + Error opening underlying device: + Error sa pagbubukas ng pinagbabatayang device: + + + Error reading data from underlying device: + Error sa pagbabasa ng data mula sa pinagbabatayang device: + + + Internal zlib error when decompressing: + Panloob na zlib error kapag nagde-decompress: + + + + QtIOCompressor::open + + The gzip format not supported in this version of zlib. + Ang gzip na format ay hindi suportado sa bersyong ng zlib na ito. + + + Internal zlib error: + Panloob na zlib na error: + + + + ReportsWidgetBrowserStatistics + + Double-click entries to edit. + I-double click ang mga entry para i-edit. + + + List of entry URLs + Listahan ng mga URL entry + + + Entry has no URLs set + Walang nakatakdang mga URL ang entry + + + Allowed URLs + Mga pinapayagang URL + + + Entry has no Browser Integration settings + Ang entry ay walang mga setting ng Browser Integration + + + Denied URLs + Mga URL na tinanggihan + + + (Excluded) + (Hindi kasama) + + + This entry is being excluded from reports + Ang entry na ito ay hindi kasama sa mga ulat + + + Please wait, browser statistics is being calculated… + Pakihintay, ang mga istatistika ng browser ay kinakalkula… + + + No entries with a URL, or none has browser extension settings saved. + Walang mga entry na may URL, o walang naka-save na settings ng extension ng browser. + + + Title + Pamagat + + + Path + Path + + + URLs + URLs + + + Edit Entry… + I-edit ang Entry… + + + Delete Entry(s)… + I-delete ang Entry…I-delete ang (mga)Entry… + + + Exclude from reports + Ibukod mula sa mga ulat + + + Only show entries that have a URL + + + + Only show entries that have been explicitly allowed or denied + + + + Show expired entries + + + + (Expired) + + + + + ReportsWidgetHealthcheck + + Hover over reason to show additional details. Double-click entries to edit. + Mag-hover sa itaas para makita ng mga karagdagang detalye. I-double click ang mga entry para i-edit. + + + Bad + Password quality + Hindi maganda + + + Bad — password must be changed + Hindi maganda — dapat palitan ang password + + + Poor + Password quality + Mahina + + + Poor — password should be changed + Mahina — dapat palitan ang password + + + Weak + Password quality + Mahina + + + Weak — consider changing the password + Mahina — isaalang-alang ang pagpapalit ng password + + + (Excluded) + (Hindi kasama) + + + This entry is being excluded from reports + Ang entry na ito ay hindi kasama sa mga ulat + + + Please wait, health data is being calculated… + Pakihintay, ang data ng kalusugan ay kinakalkula… + + + Congratulations, everything is healthy! + Congratulations, lahat ay ok! + + + Title + Pamagat + + + Path + Path + + + Score + Score + + + Reason + Dahilan + + + Edit Entry… + I-edit ang Entry… + + + Delete Entry(s)… + I-delete ang Entry…I-delete ang (mga)Entry… + + + Exclude from reports + Ibukod mula sa mga ulat + + + Show expired entries + + + + Show entries that have been excluded from reports + + + + (Expired) + + + + + ReportsWidgetHibp + + CAUTION: This report requires sending information to the Have I Been Pwned online service (https://haveibeenpwned.com). If you proceed, your database passwords will be cryptographically hashed and the first five characters of those hashes will be sent securely to this service. Your database remains secure and cannot be reconstituted from this information. However, the number of passwords you send and your IP address will be exposed to this service. + BABALA: Ang ulat na ito ay nangangailangan ng pagpapadala ng impormasyon sa online na serbisyong Have I Been Pwned (https://haveibeenpwned.com). Kung magpapatuloy ka, ang iyong mga password sa database ay iha-hash sa cryptographic at ang unang limang character ng mga hash na iyon ay ligtas na ipapadala sa serbisyong ito. Ang database mo ay nananatiling ligtas at hindi mawawala ang impormasyon nito. Gayunpaman, ang bilang ng mga password na iyong ipapadala at ang iyong IP address ay malalantad sa serbisyong ito. + + + Perform Online Analysis + Magsagawa ng Online na Pagsusuri + + + Also show entries that have been excluded from reports + Gayundin, ipakita ang mga entry na hindi kasama sa mga ulat + + + This build of KeePassXC does not have network functions. Networking is required to check your passwords against Have I Been Pwned databases. + Ang build na ito ng KeePassXC ay walang mga function sa network. Kinakailangan ang networking upang suriin ang mga password mo laban sa mga database ng Have I Been Pwned. + + + Congratulations, no exposed passwords! + Congratulations, walang na-expose na mga password! + + + Title + Pamagat + + + Path + Path + + + Password exposed… + Na-expose ang password… + + + (Excluded) + (Hindi kasama) + + + This entry is being excluded from reports + Ang entry na ito ay hindi kasama sa mga ulat + + + once + Password exposure amount + minsan + + + up to 10 times + Password exposure amount + hanggang 10 beses + + + up to 100 times + Password exposure amount + hanggang 100 beses + + + up to 1000 times + Password exposure amount + hanggang 1000 beses + + + up to 10,000 times + Password exposure amount + hanggang 10,000 beses + + + up to 100,000 times + Password exposure amount + hanggang 100,000 beses + + + up to a million times + Password exposure amount + hanggang sa isang milyong beses + + + millions of times + Password exposure amount + milyon-milyong beses + + + Edit Entry… + I-edit ang Entry… + + + Delete Entry(s)… + I-delete ang Entry…I-delete ang (mga)Entry… + + + Exclude from reports + Ibukod mula sa mga ulat + + + + ReportsWidgetPasskeys + + Export + I-export + + + Import + Mag-import + + + List of entry URLs + Listahan ng mga URL entry + + + Please wait, list of entries with Passkeys is being updated… + + + + No entries with Passkeys. + + + + Title + Pamagat + + + Path + Path + + + Username + Username + + + URLs + URLs + + + Edit Entry… + I-edit ang Entry… + + + Delete Entry(s)… + I-delete ang Entry…I-delete ang (mga)Entry… + + + Relying Party + + + + Show expired entries + + + + (Expired) + + + + + ReportsWidgetStatistics + + Hover over lines with error icons for further information. + Mag-hover sa mga linyang may mga icon ng error para sa karagdagang impormasyon. + + + Name + Pangalan + + + Value + Value + + + Please wait, database statistics are being calculated… + Pakihintay, ang mga istatistika ng database ay kinakalkula… + + + Database name + Pangalan ng database + + + Description + Paglalarawan + + + Location + Lokasyon + + + Database created + Nalikha na ang database + + + Last saved + Huling na-save + + + Unsaved changes + Mga hindi na-save na pagbabago + + + yes + oo + + + no + wala + + + The database was modified, but the changes have not yet been saved to disk. + Ang database ay binago, ngunit ang mga pagbabago ay hindi pa nai-save sa disk. + + + Number of groups + Bilang ng mga grupo + + + Number of entries + Bilang ng mga entry + + + Number of expired entries + Bilang ng mga nag-expire na entry + + + The database contains entries that have expired. + Naglalaman ang database ng mga entry na nag-expire. + + + Unique passwords + Natatanging mga password + + + Non-unique passwords + Hindi natatanging mga password + + + More than 10% of passwords are reused. Use unique passwords when possible. + Higit sa 10% ng mga password ang muling ginagamit. Gumamit ng mga natatanging password kung maaari. + + + Maximum password reuse + Maximum na muling paggamit ng password + + + Some passwords are used more than three times. Use unique passwords when possible. + Ang ilang mga password ay ginagamit nang higit sa tatlong beses. Gumamit ng mga natatanging password kung maaari. + + + Number of short passwords + Bilang ng mabababang password + + + Recommended minimum password length is at least 8 characters. + Ang inirerekomendang minimum na haba ng password ay hindi bababa sa 8 character. + + + Number of weak passwords + Bilang ng mahihinang password + + + Recommend using long, randomized passwords with a rating of 'good' or 'excellent'. + Irekomenda ang paggamit ng mahaba, naka-random na mga password na may rating na 'mabuti' o 'mahusay'. + + + Entries excluded from reports + Ang mga entry ay hindi kasama sa mga ulat + + + Excluding entries from reports, e. g. because they are known to have a poor password, isn't necessarily a problem but you should keep an eye on them. + Hindi kasama ang mga entry mula sa mga ulat, ibig sabihin dahil sila ay kilala na may mahinang password, ay hindi nangangahulugang isang problema, ngunit dapat mong bantayan sila. + + + Average password length + Average na haba ng password + + + %1 characters + %1 character + + + Average password length is less than ten characters. Longer passwords provide more security. + Ang average na haba ng password ay hindi baba sa sampung character. Ang mas mahahabang password ay nagbibigay ng higit na seguridad. + + + + SSHAgent + + Agent connection failed. + Hindi makakonekta ang agent + + + Agent protocol error. + Error sa protocol ng agent. + + + No agent running, cannot add identity. + Walang gumaganang ahente, hindi makakapagdagdag ng pagkakakilanlan. + + + Key identity ownership conflict. Refusing to add. + Salungatan sa pagmamay-ari ng key identity. Tumangging magdagdag. + + + Agent refused this identity. Possible reasons include: + Itinanggi ng agent ang pagkakakilanlan na ito. Kabilang sa mga posibleng dahilan ang: + + + The key has already been added. + Naidagdag na ang key. + + + Restricted lifetime is not supported by the agent (check options). + Ang pinaghihigpitang lifetime ay hindi sinusuportahan ng agent (tingnan ang mga opsyon). + + + A confirmation request is not supported by the agent (check options). + Ang isang kahilingan sa pagkumpirma ay hindi sinusuportahan ng ahente (tingnan ang mga opsyon). + + + Security keys are not supported by the agent or the security key provider is unavailable. + Ang mga security key ay hindi sinusuportahan ng agent o ang security key provider ay hindi available. + + + No agent running, cannot remove identity. + Walang tumatakbong ahente, hindi maalis ang pagkakakilanlan. + + + No agent running, cannot list identities. + Walang gumaganang ahente, hindi makakapaglista ng mga pagkakakilanlan. + + + + SearchHelpWidget + + Search Help + Maghanap ng Tulong + + + Search terms are as follows: [modifiers][field:]["]term["] + Ang mga termino para sa paghahanap ay ang mga sumusunod: [modifiers][field:]["]term["] + + + Every search term must match (ie, logical AND) + Dapat tumugma ang bawat termino para sa paghahanap (ibig sabihin, logical AT) + + + Modifiers + Mga modifier + + + exclude term from results + ibukod ang termino mula sa mga resulta + + + match term exactly + eksaktong kataga + + + use regex in term + gumamit ng regex sa termino + + + Fields + Mga Field + + + Term Wildcards + Terminong Wildcards + + + match anything + tumugma sa kahit ano + + + match one + tumugma sa isa + + + logical OR + logical OR + + + Examples + Mga halimbawa + + + + SearchWidget + + Search + Maghanap + + + Search Help + Maghanap ng Tulong + + + Save Search + I-save ang Search + + + Search (%1)… + Search placeholder text, %1 is the keyboard shortcut + Maghanap ng (%1)… + + + Case sensitive + Case sensitive + + + Limit search to selected group + Limitahan ang paghahanap sa napiling group + + + + SettingsClientModel + + Application + Application + + + PID + PID + + + DBus Address + DBus Address + + + Manage + Pamahalaan + + + + SettingsDatabaseModel + + File Name + Pangalan ng File + + + Group + Group + + + Manage + Pamahalaan + + + + SettingsWidgetFdoSecrets + + Options + Mga Opsyon + + + Enable KeepassXC Freedesktop.org Secret Service integration + I-enable ang Secret Service na pagsasama ng KeepassXC Freedesktop.org + + + General + Pangkalahatan + + + Show notification when passwords are retrieved by clients + Ipakita ang abiso kapag ang mga password ay nakuha ng mga client + + + <html><head/><body><p>If enabled, any attempt to read a password must be confirmed. Otherwise, clients can read passwords without confirmation when the database is unlocked.</p><p>This option only covers the access to the password of an entry. Clients can always enumerate the items of exposed databases and query their attributes.</p></body></html> + <html><head/><body><p>Kung naka-enable, anumang pagtatangka na basahin ang isang password ay dapat kumpirmahin. Kung hindi, maaarin mabasa ng mga kliyente ang mga password nang walang kumpirmasyon kapag na-unlock ang database.</p><p>Saklaw lang ng opsyong ito ang access sa password ng isang entry. Maaaring palaging isa-isahin ng mga kliyente ang mga item ng database na naka-expose at i-query ang kanilang mga attribute.</p></body></html> + + + Confirm when passwords are retrieved by clients + Kumpirmahin kapag ang mga password ay nabawi na ng mga client + + + <html><head/><body><p><span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">This setting does + not override disabling recycle bin prompts</span></p></body></html> + + <html><head/><body><p><span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">Ang setting na ito ay hindi + magpapawalang-bisa sa paggana ng mga promt sa recycle bin</span></p></body></html> + + + + Confirm when clients request entry deletion + Kumpirmahin kapag humiling ang mga client ng pag-delete ng entry + + + <html><head/><body><p>This improves compatibility with certain applications + which search for password without unlocking the database first.</p><p>But enabling this may also + crash the client if the database can not be unlocked within a certain timeout. (Usually 25s, but may be a + different value set in applications.)</p></body></html> + + <html><head/><body><p>Pinapabuti nito ang pagiging tugma sa mga partikular na application + na naghahanap para sa password nang hindi muna ina-unlock ang database.</p><p>Ngunit ang pagpapagana nito ay maaari ding + makasira ng database ng kliyente kung hindi pa ito bukas sa loob ng tinukoy na timeout. (Kadalasan 25s, ngunit maaaring + magkaibang value set sa applications.)</p></body></html> + + + + Prompt to unlock database before searching + I-prompt para i-unlock ang database bago mag-search + + + Exposed database groups: + Na-expose na mga group ng database: + + + Authorization + Awtorisasyon + + + These applications are currently connected: + Ang mga application na ito ay kasalukuyang konektado: + + + <b>Warning:</b> + <b>Babala:</b> + + + Save current changes to activate the plugin and enable editing of this section. + I-save ang mga kasalukuyang pagbabago para i-activate ang plugin at i-enable ang pag-edit ng seksyong ito. + + + + SettingsWidgetKeeShare + + Active + Aktibo + + + Allow KeeShare imports + Payagan ang mga pag-import ng KeeShare + + + Allow import + Payagan ang pag-import + + + Allow KeeShare exports + Payagan ang mga pag-export ng KeeShare + + + Allow export + Payagan ang pag-export + + + Only show warnings and errors + Magpakita lamang ng mga babala at error + + + Own certificate + Sariling certificate + + + Signer: + Signer: + + + Generate new certificate + Bumuo ng bagong certificate + + + Generate + Bumuo + + + Fingerprint: + Fingerprint: + + + Signer name field + Field ng pangalan ng signer + + + Fingerprint + Fingerprint + + + + ShareExport + + Could not write export container. + Hindi maisulat ang export container. + + + + ShareImport + + Successful import + Matagumpay na pag-import + + + + ShareObserver + + Import from %1 failed (%2) + Nabigo ang pag-import mula sa %1 (%2) + + + Import from %1 successful (%2) + Matagumpay ang (%2) na nai-import mula sa %1 + + + Imported from %1 + Na-import mula sa %1 + + + Multiple import source path to %1 in %2 + Maramihang landas ng pag-import sa %1 sa %2 + + + Conflicting export target path %1 in %2 + Magkasalungat na path ng target na pag-export na %1 sa %2 + + + Export to %1 failed (%2) + Nabigo ang pag-export sa %1 (%2) + + + Export to %1 successful (%2) + Matagumpay na na-export sa %1 ang (%2) + + + Export to %1 + I-export sa %1 + + + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + + + TagModel + + Clear Search + I-clear ang Paghahanap + + + All Entries + Lahat ng Entry + + + Expired + Nag-expire na + + + Weak Passwords + Mga Mahinang Password + + + + TagView + + Remove Search + Alisin ang Search + + + Remove Tag + Alisin ang Tag + + + Confirm Remove Tag + Kumpirmahin ang Remove Tag + + + Remove tag "%1" from all entries in this database? + Alisin ang tag na "%1" sa lahat ng mga entry sa database na ito? + + + + TotpDialog + + Timed Password + Naka-time na Password + + + Copy + kopyahin + + + Expires in <b>%n</b> second(s) + Mag-e-expire sa loob ng <b>%n</b> segundoMag-e-expire sa loob ng <b>%n</b> (mga)segundo + + + + TotpExportSettingsDialog + + Copy + Kopyahin + + + NOTE: These TOTP settings are custom and may not work with other authenticators. + TOTP QR code dialog warning + TANDAAN: Ang settings ng TOTP na ito ay custom +at maaaring hindi gumana sa ibang mga authenticator. + + + There was an error creating the QR code. + Nagkaroon ng error sa paglikha ng QR code. + + + Closing in %1 seconds. + Magsasara sa loob ng %1 segundo. + + + + TotpSetupDialog + + Setup TOTP + I-setup ang TOTP + + + Secret Key: + Secret Key: + + + Secret key must be in Base32 format + Ang secret key ay dapat nasa Base32 na format + + + Secret key field + Secret key field + + + Default settings (RFC 6238) + Mga default setting (RFC 6238) + + + Steam® settings + Mga setting ng Steam® + + + Custom settings: + Mga custom setting: + + + Custom Settings + Mga Custom Setting + + + Algorithm: + Algorithm: + + + Time step: + Time step: + + + Time step field + Field ng time step + + + sec + Seconds + seg + + + Code size: + Sukat ng code: + + + digits + mga digit + + + Invalid TOTP Secret + Invalid na TOTP Secret + + + You have entered an invalid secret key. The key must be in Base32 format. +Example: JBSWY3DPEHPK3PXP + Naglagay ka ng invalid secret key. Ang key ay dapat nasa Base32 na format. +Halimbawa: JBSWY3DPEHPK3PXP + + + Confirm Remove TOTP Settings + Kumpirmahin ang Mga Romove TOTP Setting + + + Are you sure you want to delete TOTP settings for this entry? + Sigurado ka bang gusto mong i-delete ang mga setting ng TOTP para sa entry na ito? + + + + URLEdit + + Invalid URL + Invalid na URL + + + + UpdateCheckDialog + + Checking for updates + Tinitingnan ang mga update + + + Checking for updates… + Tinitingnan ang mga update… + + + Close + I-close + + + Software Update + Update ng Software + + + An error occurred when trying to retrieve update information, please try again later. + Nagkaroon ng error noong sinusubukang ibalik ang na-update na impormasyon, pakisubukang muli sa ibang pagkakataon. + + + <strong>A new version is available.</strong><br/>KeePassXC %1 can be <a href="https://keepassxc.org/download/">downloaded here</a>. + <strong>Available ang bagong bersyon.</strong><br/>KeePassXC %1 ay maaaring <a href="https://keepassxc.org/download/">i-download dito</a>. + + + You have the latest version of KeePassXC + Mayroon kang pinakabagong bersyon ng KeePassXC + + + + WelcomeWidget + + Start storing your passwords securely in a KeePassXC database + Simulan ang pag-store ng iyong mga password nang ligtas sa isang database ng KeePassXC + + + Recent databases + Mga kamakailang database + + + Open a recent database + Magbukas ng kamakailang database + + + Welcome to KeePassXC %1 + Welcome sa KeePassXC %1 + + + Create Database + + + + Open Database + + + + Import File + + + + + WinUtils + + Invalid key code + Invalid na key code + + + Global shortcut already registered to %1 + Nakarehistro na ang global shortcut sa %1 + + + Could not register global shortcut + Hindi mairehistro ang global shortcut + + + + YubiKey + + General: + Pangkalahatan: + + + Could not find interface for hardware key with serial number %1. Please connect it to continue. + Hindi mahanap ang interface para sa hardware key na may serial number na %1. Mangyaring ikonekta ito para magpatuloy. + + + + YubiKeyEditWidget + + Hardware key slot selection + Pagpili ng hardware key slot + + + Could not find any hardware keys! + Hindi makahanap ng anumang mga hardware key! + + + Selected hardware key slot does not support challenge-response! + Ang napiling hardware key slot ay hindi sumusuporta sa challenge-response! + + + Challenge-Response + Challenge-Response + + + Add Challenge-Response + Magdagdag ng Challenge-Response + + + Change Challenge-Response + Palitan ang Challenge-Response + + + Remove Challenge-Response + Alisin ang Hamon-Tugon + + + Challenge-Response set, click to change or remove + Challenge-Response set, i-click upang baguhin o alisin + + + Detecting hardware keys… + Dini-detect ang mga hardware key… + + + No hardware keys detected + Walang nakitang hardware key + + + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + + + + + YubiKeyInterfacePCSC + + The YubiKey PCSC interface has not been initialized. + Ang interface ng YubiKey PCSC ay hindi pa nasimulan. + + + Could not find or access hardware key with serial number %1. Please present it to continue. + Hindi mahanap o ma-access ang hardware key na may serial number na %1. Mangyaring ipakita ito para magpatuloy. + + + Hardware key is locked or timed out. Unlock or re-present it to continue. + Naka-lock o nag-time out ang hardware key. I-unlock o muling ipakita ito para makapagpatuloy. + + + Hardware key was not found or is not configured. + Hindi nahanap o hindi na-configure ang hardware key. + + + Failed to complete a challenge-response, the PCSC error code was: %1 + Nabigong makumpleto ang isang challenge-response, ang PCSC error code ay: %1 + + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + Pindutin + + + Passive + USB Challenge-Response Key no interaction required + Passive + + + + YubiKeyInterfaceUSB + + Unknown + Hindi kilala + + + Press + USB Challenge-Response Key interaction request + Pindutin + + + Passive + USB Challenge-Response Key no interaction required + Passive + + + The YubiKey USB interface has not been initialized. + Ang YubiKey USB interface ay hindi pa nasimulan. + + + Could not find hardware key with serial number %1. Please plug it in to continue. + Hindi mahanap ang hardware key na may serial number na %1. Paki-plug ito upang magpatuloy. + + + Hardware key timed out waiting for user interaction. + Nag-time out ang hardware key habang naghihintay para sa pakikipag-ugnayan sa user. + + + A USB error occurred when accessing the hardware key: %1 + Isang USB error ang nangyare noong ina-access ang hardware key: %1 + + + Failed to complete a challenge-response, the specific error was: %1 + Nabigong makumpleto ang isang challenge-response, ang partikular na error ay: %1 + + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + \ No newline at end of file diff --git a/share/translations/keepassxc_fr.ts b/share/translations/keepassxc_fr.ts index ee37ee653..4aeb5ef0d 100644 --- a/share/translations/keepassxc_fr.ts +++ b/share/translations/keepassxc_fr.ts @@ -31,7 +31,7 @@ <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">See Contributions on GitHub</a> - <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">Voir Contributions sur GitHub</a> + <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">Voir les contributions sur GitHub</a> Debug Info @@ -80,6 +80,10 @@ Details Détails + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Votre décision sera mémorisée pour la durée tant que le client qui effectue la demande et KeePassXC fonctionnent tous deux. + Remember Mémoriser @@ -88,17 +92,13 @@ Allow Selected Autoriser les éléments sélectionnés - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - Votre décision sera mémorisée pour la durée tant que le client qui effectue la demande et KeePassXC fonctionnent tous deux. - Deny All && Future - Tout refuser et dans le future + Tout refuser et dans le futur Allow All && &Future - Tout accepter et dans le futur + Tout accepter et dans le &futur @@ -122,6 +122,10 @@ Use OpenSSH Utiliser OpenSSH + + Use both agents + Utiliser les deux agents + SSH_AUTH_SOCK override Valeur de remplacement SSH_AUTH_SOCK @@ -150,10 +154,6 @@ SSH Agent connection is working! La connexion de l’agent SSH fonctionne. - - Use both agents - Utiliser les deux agents - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security Sécurité + + This setting cannot be enabled when minimize on unlock is enabled. + Ce paramètre ne peut pas être activé lorsque l’option Réduire au déverrouillage est activée. + Access error for config file %1 Erreur d’accès pour le fichier de configuration %1 @@ -211,15 +215,15 @@ You must restart the application to set the new language. Would you like to restart now? - Pour appliquer la nouvelle langue, vous devez redémarrer l’application. Voulez-vous la démarrer maintenant ? + Pour appliquer la nouvelle langue, vous devez redémarrer l’application. Voulez-vous la démarrer maintenant ? Reset Settings? - Réinitialiser les paramètres ? + Réinitialiser les paramètres ? Are you sure you want to reset all general and security settings to default? - Voulez-vous vraiment réinitialiser tous les paramètres généraux et de sécurité à leur valeur par défaut ? + Voulez-vous vraiment réinitialiser tous les paramètres généraux et de sécurité à leur valeur par défaut ? Select backup storage directory @@ -256,6 +260,10 @@ Remember previously used databases Mémoriser les bases de données utilisées précédemment + + recent files + fichiers récents + Load previously open databases on startup Lors du démarrage, charger les bases de données ouvertes précédemment @@ -408,6 +416,10 @@ Toolbar button style: Style des boutons de la barre d’outils : + + Show passwords in color + Montrer les mots de passe en couleur + Use monospaced font for notes Utiliser une police à espacement constant pour les notes @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons Utiliser le service DuckDuckGo pour télécharger les icônes de sites Web + + Hide TOTP in the entry preview panel + Cacher le TOTP dans le panneau d’aperçu des entrées + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 Un pause très longue a été détectée. Le maximum est %1 : %2 + + Entry does not have attribute for PICKCHARS: %1 + L'entrée n'a pas d'attribut pour PICKCHARS : %1 + Invalid conversion type: %1 Le type de conversion est invalide : %1 @@ -805,13 +825,13 @@ Ctrl+4 - Utiliser le clavier virtuel (Windows seulement)</p> Disable for this site Désactiver pour ce site + + Undo + Annuler + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser Enregistrer l’entrée - Ok Valider @@ -826,25 +846,77 @@ Please select the correct database for saving credentials. Plusieurs bases de données sont ouvertes. Veuillez sélectionner la base de données souhaitée pour enregistrer les identifiants. + + KeePassXC - Select Database + KeePassXC - Sélectionner une base + + + + BrowserPasskeysConfirmationDialog + + Cancel + Annuler + + + Update + Mettre à jour + + + Authenticate + Identification + + + Register new + Enregistrer comme nouveau + + + Register + Enregistrer + + + Timeout in <b>%n</b> seconds... + délai d'expiration in <b>%n</b> seconds...délai d'expiration in <b>%n</b> seconds...Expire dans<b>%n</b> secondes... + + + Do you want to register Passkey for: + Enregistrer la clé d'accès pour : + + + Existing Passkey found. +Do you want to register a new Passkey for: + Clé d'accès existante trouvée. Enregistrer une nouvelle clé pour : + + + Select the existing Passkey and press Update to replace it. + Sélectionnez la clé existante et appuyez sur Mettre à jour pour la remplacer. + + + Authenticate Passkey credentials for: + Certifier les identifiants de la clé d'accès pour : + + + Relying Party: %1 + Tiers de confiance : %1 + + + Username: %1 + Nom d’utilisateur : %1 + + + KeePassXC - Passkey credentials + KeePassXC - Identifiants de clé d'accès + BrowserService - - KeePassXC: Create a new group - KeePassXC : Créer un nouveau groupe - A request for creating a new group "%1" has been received. Do you want to create this group? Une demande de création d’un nouveau groupe « %1 » a été reçue. -Voulez-vous créer ce groupe ? +Voulez-vous créer ce groupe ? - - KeePassXC: New key association request - KeePassXC : Nouvelle demande d’association de clé - You have received an association request for the following database: %1 @@ -861,81 +933,65 @@ chrome-laptop Save and allow access Enregistrer et permettre l’accès - - KeePassXC: Overwrite existing key? - KeePassXC : Remplacer la clé existante ? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? Une clé de chiffrement partagée nommée « %1 » existe déjà. -Voulez-vous la remplacer ? - - - KeePassXC: Update Entry - KeePassXC : Mettre l’entrée à jour +Voulez-vous la remplacer ? Do you want to update the information in %1 - %2? - Voulez-vous mettre à jour les renseignements dans %1 - %2 ? - - - KeePassXC: Delete entry - KeePassXC: Supprimer l'entrée + Voulez-vous mettre à jour les renseignements dans %1 - %2 ? A request for deleting entry "%1" has been received. Do you want to delete the entry? Une requête pour supprimer l'entrée « %1 » a été reçue. -Voulez-vous la supprimer ? +Voulez-vous la supprimer ? - Converting attributes to custom data… - Conversion des attributs en données personnalisées… + %1 (Passkey) + %1 (clé d'accès) - Abort - Abandonner + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + L'entrée a déjà une clé d'accès. +Remplacer la clé dans %1 - %2 ? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC : Attributs KeePassHTTP convertis + KeePassXC - Create a new group + KeePassXC - Créer un nouveau groupe - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Les attributs de %1 entrée(s) ont été convertis avec succès. -%2 clés ont été déplacées vers les données personnalisées. - - - Successfully moved %n keys to custom data. - %n clé a été déplacée avec succès vers les données personnalisées.%n clés ont été déplacées avec succès vers les données personnalisées. + Disable + Désactiver - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC : Aucune entrée avec des attributs KeePassHTTP n’a été trouvée + KeePassXC - Overwrite existing key? + KeePassXC - Remplacer la clé existante ? - The active database does not contain an entry with KeePassHTTP attributes. - La base de données active ne comprend aucune entrée avec des attributs KeePassHTTP. + KeePassXC - Update Passkey + KeePassXC - Mise à jour de la clé d'accès - Don't show this warning again - Ne plus afficher cet avertissement + KeePassXC - Update Entry + KeePassXC - Mise à jour de l'entrée - KeePassXC: Legacy browser integration settings detected - KeePassXC : Des paramètres hérités d’intégration aux navigateurs ont été détectés + KeePassXC - Delete entry + KeePassXC - Suppression de l'entrée - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Vos paramètres KeePassXC-Browser doivent être intégrés aux paramètres de la base de données. -Cela est nécessaire pour conserver les connexions actuelles de votre navigateur. -Voulez-vous migrer vos paramètres maintenant ? + KeePassXC - New key association request + KeePassXC - Demande de nouvelle association de clé + + + Passkey + @@ -1143,14 +1199,6 @@ Voulez-vous migrer vos paramètres maintenant ? Please see special instructions for browser extension use below Veuillez consulter ci-dessous les instructions spéciales de l’extension pour navigateurs - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Erreur :</b> L’emplacement de mandataire personnalisé est introuvable. <br/>L’intégration aux navigateurs NE FONCTIONNERA PAS sans l’application mandataire. - - - <b>Warning:</b> The following options can be dangerous! - <b>Avertissement:</b> Les options suivantes peuvent être dangereuses - Executable Files Fichiers exécutables @@ -1167,6 +1215,38 @@ Voulez-vous migrer vos paramètres maintenant ? Select native messaging host folder location Sélectionner l’emplacement du dossier de l’hôte de messagerie native + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + Autoriser keepassxc-proxy à afficher toutes les entrées avec leur titre, URL et identifiant unique des bases connectées. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + Limiter l'accès à toutes les entrées des bases connectées (ignore les restrictions d'accès aux sites) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Avertissement :</b> modifiez ces réglages seulement si nécessaire. + + + The custom proxy location does not exist. + L'emplacement de proxy personnalisé n'existe pas. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Erreur :</b> L'emplacement de proxy personnalisé n'existe pas. Corrigez-le dans l'onglet des paramètres avancés. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Erreur :</b> L'exécutable du proxy installé n'existe pas à l'emplacement prévu : %1<br/>Définissez un emplacement de proxy personnalisé dans les paramètres avancés ou réinstallez l'application. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1189,14 +1269,6 @@ Voulez-vous migrer vos paramètres maintenant ? CsvImportWidget - - Import CSV fields - Importer les champs CSV - - - filename - nom de fichier - size, rows, columns taille, lignes, colonnes @@ -1305,51 +1377,30 @@ Voulez-vous migrer vos paramètres maintenant ? Column %1 Colonne %1 - - Imported from CSV file - Importé d’un fichier CSV - - - Original data: - Données originales : - - - Error(s) detected in CSV file! - Des erreurs ont été détectées dans le fichier CSV - [%n more message(s) skipped] - [%n autre message a été ignoré][%n autres messages ont été ignorés] + [%n autre message a été ignoré][%n autres messages ont été ignorés][%n autres messages ont été ignorés] - Error - Erreur + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - Importation CSV : le scripteur comporte des erreurs : -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n octet%n octets - %n row(s) - %n ligne%n lignes + CSV row count + %n ligne%n lignes%n lignes %n column(s) - %n colonne%n colonnes + CSV column count + %n colonne%n colonnes%n colonnes @@ -1423,40 +1474,10 @@ La base de données de sauvegarde est située sur %2 Password field Champ de mot de passe - - Enter Additional Credentials (if any): - Saisissez des identifiants supplémentaires (si définis) : - - - Key File: - Fichier clé : - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>En plus du mot de passe, vous pouvez utiliser un fichier secret pour améliorer la sécurité de votre base de données. Ce fichier peut être généré dans les paramètres de sécurité de votre base de données.</p><p>Il s'agit de <strong>et non</strong> de votre fichier de base de données *.kdbx !<br>Si vous n'avez pas de fichier clé, laissez ce champ vide.</p><p>Cliquez pour plus d'information…</p> - - - Key file help - Aide fichier clé - Hardware key slot selection Sélection de l’emplacement de la clé matérielle - - Hardware Key: - Clé matérielle : - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>Vous pouvez utiliser une clé de sécurité matérielle telle que <strong>YubiKey</strong> ou <strong>OnlyKey</strong> avec des emplacements configurés pour HMAC-SHA1.</p> -<p>Cliquez pour plus information…</p> - - - Hardware key help - Aide sur les clés matérielles - Key file to unlock the database Fichier clé pour déverrouiller la base de données @@ -1469,14 +1490,6 @@ La base de données de sauvegarde est située sur %2 Browse… Parcourir… - - Refresh hardware tokens - Actualiser les jetons matériels - - - Refresh - Actualiser - Unlock Database Déverrouiller la base de données @@ -1529,7 +1542,7 @@ Do you want to retry with an "empty" password instead? To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. Le déverrouillage de la base de données a échoué et vous n’avez pas saisi de mot de passe. -Voulez-vous plutôt réessayer sans mot de passe ? +Voulez-vous plutôt réessayer sans mot de passe ? Afin d’empêcher que cette erreur survienne, vous devez accéder à « Paramètres de la base de données » et réinitialiser votre mot de passe. @@ -1537,14 +1550,6 @@ Afin d’empêcher que cette erreur survienne, vous devez accéder à « Param Retry with empty password Réessayer sans mot de passe - - Failed to authenticate with Windows Hello - Échec d’authentification avec Windows Hello - - - Failed to authenticate with Touch ID - Échec d’authentification avec Touch ID - Failed to open key file: %1 Échec d’ouverture du fichier clé : %1 @@ -1555,7 +1560,7 @@ Afin d’empêcher que cette erreur survienne, vous devez accéder à « Param You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> - Vous utilisez un ancien format de fichier clé que KeePassXC pourrait<br>ne plus prendre en charge à l'avenir.<br><br>Il vous est recommandé de générer un nouveau fichier clé en allant dans :<br><strong>Base de données &gt; Sécurité de la base de données &gt; Changer le fichier clé.</strong><br> + Vous utilisez un ancien format de fichier clé que KeePassXC pourrait<br>ne plus prendre en charge à l'avenir.<br><br>Veuillez envisager de générer un nouveau fichier clé en allant dans :<br><strong>Base de données &gt; Sécurité de la base de données &gt; Changer le fichier clé.</strong><br> Don't show this warning again @@ -1578,22 +1583,60 @@ Afin d’empêcher que cette erreur survienne, vous devez accéder à « Param Impossible d’utiliser une base de données comme fichier clé - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Vous ne pouvez pas utiliser la base de données actuelle comme fichier clé. -Si vous n’avez pas de fichier clé, laissez le champ vide. + authenticate to access the database + Autentifiez vous pour accéder à la base de données - Detecting hardware keys… - Détection des clés matérielles… + Failed to authenticate with Quick Unlock: %1 + Échec d'authentification Quick Unlock : %1 - No hardware keys detected - Aucune clé matérielle n’a été détectée + Select Key File: + - Select hardware key… - Sélectionner une clé matérielle… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1605,10 +1648,6 @@ Si vous n’avez pas de fichier clé, laissez le champ vide. DatabaseSettingsDialog - - Advanced Settings - Paramètres avancés - General Général @@ -1640,18 +1679,6 @@ Si vous n’avez pas de fichier clé, laissez le champ vide. KeePassXC-Browser settings Paramètres de KeePassXC-Browser - - Convert KeePassHTTP data - Convertir KeePassHTTP data - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - Convertir les attributs hérités de KeePassHTTP vers les données personnalisées compatibles de KeePassXC-Browser - - - Refresh database root group ID - Actualiser l’ID du groupe racine de la base de données - Disconnect all browsers Déconnecter tous les navigateurs @@ -1660,6 +1687,10 @@ Si vous n’avez pas de fichier clé, laissez le champ vide. Forget all site-specific settings on entries Oublier tous les paramètres d’entrée propres aux sites + + Refresh database root group ID + Actualiser l’ID du groupe racine de la base de données + Stored keys Clés enregistrées @@ -1678,12 +1709,12 @@ Si vous n’avez pas de fichier clé, laissez le champ vide. Delete the selected key? - Supprimer la clé sélectionnée ? + Supprimer la clé sélectionnée ? Do you really want to delete the selected key? This may prevent connection to the browser plugin. - Voulez-vous vraiment supprimer la clé sélectionnée ? + Voulez-vous vraiment supprimer la clé sélectionnée ? Cela pourrait empêcher la connexion l’extension pour navigateurs. @@ -1705,29 +1736,21 @@ Cela pourrait empêcher la connexion l’extension pour navigateurs. Do you really want to disconnect all browsers? This may prevent connection to the browser plugin. - Voulez-vous vraiment déconnecter tous les navigateurs ? + Voulez-vous vraiment déconnecter tous les navigateurs ? Cela pourrait empêcher la connexion avec l’extension pour navigateurs. - - KeePassXC: No keys found - KeePassXC : Aucune clé n’a été trouvée - No shared encryption keys found in KeePassXC settings. Aucune clé de chiffrement partagée n’a été trouvée dans les paramètres de KeePassXC. - - KeePassXC: Removed keys from database - KeePassXC : Les clés ont été supprimées de la base de données - Successfully removed %n encryption key(s) from KeePassXC settings. - %n clé de chiffrement a été supprimée avec succès des paramètres de KeePassXC.%n clés de chiffrement ont été supprimées avec succès des paramètres de KeePassXC. + %n clé de chiffrement a été supprimée avec succès des paramètres de KeePassXC.%n clés de chiffrement ont été supprimées avec succès des paramètres de KeePassXC.%n clés de chiffrement ont été supprimées avec succès des paramètres de KeePassXC. Do you really want forget all site-specific settings on every entry? Permissions to access entries will be revoked. - Voulez-vous vraiment oublier tous les paramètres propres aux sites pour toutes les entrées ? Les autorisations d’accès aux entrées seront révoquées. + Voulez-vous vraiment oublier tous les paramètres propres aux sites pour toutes les entrées ? Les autorisations d’accès aux entrées seront révoquées. Removing stored permissions… @@ -1737,31 +1760,14 @@ Permissions to access entries will be revoked. Abort Abandonner - - KeePassXC: Removed permissions - KeePassXC : Les autorisations ont été supprimées - Successfully removed permissions from %n entry(s). - Les autorisations d’%n entrée ont été supprimées avec succès.Les autorisations de ’%n entrées ont été supprimées avec succès. - - - KeePassXC: No entry with permissions found! - KeePassXC : Aucune entrée avec autorisation n’a été trouvée + Les autorisations d’%n entrée ont été supprimées avec succès.Les autorisations de ’%n entrées ont été supprimées avec succès.Les autorisations de ’%n entrées ont été supprimées avec succès. The active database does not contain an entry with permissions. La base de données active ne comprend aucune entrée avec des autorisations. - - Move KeePassHTTP attributes to custom data - Déplacer les attributs KeePassHTTP vers les données personnalisées - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Voulez-vous vraiment convertir toutes les données d'intégrations au navigateur au format actuel ? Ceci est nécessaire afin de préserver la compatibilité avec le module complémentaire du navigateur. - Refresh database ID Actualiser l’ID de la base de données @@ -1769,9 +1775,29 @@ This is necessary to maintain compatibility with the browser plugin. Do you really want refresh the database ID? This is only necessary if your database is a copy of another and the browser extension cannot connect. - Voulez-vous vraiment actualiser l’ID de la base de données ? + Voulez-vous vraiment actualiser l’ID de la base de données ? Cela n’est nécessaire que si votre base de données est la copie d’une autre et que l’extension pour navigateurs ne peut pas se connecter. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Convertir les attributs hérités de KeePassHTTP vers les données personnalisées compatibles de KeePassXC-Browser + + + No keys found + Aucune clé trouvée + + + Removed keys from database + Clés supprimées de la base de données + + + Removed permissions + Autorisations supprimées + + + No entry with permissions found! + Aucune entrée avec autorisations trouvée ! + DatabaseSettingsWidgetDatabaseKey @@ -1789,7 +1815,7 @@ Cela n’est nécessaire que si votre base de données est la copie d’une autr Are you sure you want to continue without a password? AVERTISSEMENT : Vous n’avez pas défini de mot de passe. Il est fortement découragé d’utiliser une base de données sans mot de passe. -Voulez-vous vraiment poursuivre sans mot de passe ? +Voulez-vous vraiment poursuivre sans mot de passe ? Continue without password @@ -1811,6 +1837,18 @@ Voulez-vous vraiment poursuivre sans mot de passe ? Failed to change database credentials Échec de changement des identifiants de la base de données + + Weak password + Mot de passe faible + + + You must enter a stronger password to protect your database. + Vous devez saisir un mot de passe plus fort pour protéger votre base de données. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + Le mot de passe est trop faible ! Pour une protection efficace, choisissez un mot de passe plus fort. + DatabaseSettingsWidgetEncryption @@ -1818,14 +1856,6 @@ Voulez-vous vraiment poursuivre sans mot de passe ? Decryption Time: Temps de déchiffrement : - - Change existing decryption time - Changer le temps de déchiffrement existant - - - Change - Changer - Decryption time in seconds Temps de déchiffrement en secondes @@ -1844,7 +1874,7 @@ Voulez-vous vraiment poursuivre sans mot de passe ? Format cannot be changed: Your database uses KDBX 4 features - Le format ne peut être modifié : votre base de données utilise des fonctionnalités KDBX 4 + Le format ne peut être modifié : votre base de données utilise des fonctions KDBX 4 Unless you need to open your database with other programs, always use the latest format. @@ -1906,11 +1936,6 @@ Voulez-vous vraiment poursuivre sans mot de passe ? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - inchangé - Number of rounds too high Key transformation rounds @@ -1951,17 +1976,29 @@ En conservant cette valeur, votre base de données ne sera pas protégée des at Failed to transform key with new KDF parameters; KDF unchanged. - Échec de transformation de la clé avec les nouveaux paramètres de fonction de dérivation de clé ; la fonction de dérivation de clé est inchangée. + Échec de transformation de la clé avec les nouveaux paramètres de fonction de dérivation de clé ; la fonction de dérivation de clé est inchangée. MiB Abbreviation for Mebibytes (KDF settings) - MioMio + MioMioMio thread(s) Threads for parallel execution (KDF settings) - fil d’exécutionfils d’exécution + fil d’exécutionfils d’exécutionfils d’exécution + + + Encryption Settings: + Paramètres de chiffrement : + + + Basic + Général + + + Advanced + Avancé @@ -2021,18 +2058,10 @@ En conservant cette valeur, votre base de données ne sera pas protégée des at Maximum number of history items per entry Nombre maximal d’éléments historiques par entrée - - Max. history items: - Nombre maximal d’éléments d’historique : - Maximum size of history per entry Taille maximale de l’historique par entrée - - Max. history size: - Taille maximale de l’historique : - MiB Mio @@ -2056,13 +2085,71 @@ En conservant cette valeur, votre base de données ne sera pas protégée des at Do you want to delete the current recycle bin and all its contents? This action is not reversible. - Voulez-vous supprimer la corbeille actuelle et tout son contenu ? + Voulez-vous supprimer la corbeille actuelle et tout son contenu ? Cette action est irréversible. (old) (ancien) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + Lors de l’enregistrement de ce paramètre ou de la modification d’une entrée +les éléments les plus anciens de l'historique d’une entrée seront +supprimés de telle sorte qu'il ne reste au maximum +que le nombre spécifié d'entrées. + + + Limit the amount of history items per entry to: + Limiter le nombre d’éléments d’historique par entrée à : + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + Lors de l’enregistrement de ce paramètre ou de la modification d’une entrée +les éléments les plus anciens de l'historique d’une entrée seront +supprimés de telle sorte que les éléments restants de l'historique +atteignent le nombre spécifié. + + + Limit the total size of history items per entry to: + Limiter la taille totale des éléments de l’historique par entrée à : + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Déplacer les entrées vers la corbeille du groupe +au lieu de les supprimer de la base de données. +Les entrées supprimées dans la corbeille sont retirées +de la base de données. + + + Autosave delay since last change + Durée entre dernière modification et sauvegarde automatique + + + Autosave delay + Durée avant sauvegarde automatique + + + Autosave delay since last change in minutes + Durée entre dernière modification et sauvegarde automatique en minutes + + + min + min + + + Autosave delay since last change checkbox + Case à cocher de durée entre dernière modification et sauvegarde automatique + DatabaseSettingsWidgetKeeShare @@ -2120,7 +2207,7 @@ Cette action est irréversible. At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? - Au moins une icône de la sélection est utilisée actuellement par une entrée ou un groupe. Les icônes affectées aux entrées et aux groupes seront remplacées par l'icône par défaut. Êtes-vous sûr de vouloir supprimer les icônes actuellement utilisées ? + Au moins une icône de la sélection est utilisée actuellement par au moins une entrée ou un groupe. Les icônes de toutes les entrées et de tous les groupes concernés seront remplacées par l’icône par défaut. Voulez-vous vraiment supprimer les icônes utilisées actuellement ? Custom Icons Are In Use @@ -2136,7 +2223,7 @@ Cette action est irréversible. Purged %n icon(s) from the database. - %n icône nettoyée de la base de données.%n icônes nettoyées de la base de données. + %n icône nettoyée de la base de données.%n icônes nettoyées de la base de données.%n icônes nettoyées de la base de données. @@ -2190,26 +2277,10 @@ C’est très certainement un bogue, veuillez le signaler aux développeurs.CSV file Fichier CSV - - Select CSV file - Sélectionner un fichier CSV - Merge database Fusionner la base de données - - KeePass 1 database - Base de données KeePass 1 - - - Open KeePass 1 database - Ouvrir une base de données KeePass 1 - - - Open OPVault - Ouvrir OPVault - Export database to CSV file Exporter la base de données vers un fichier CSV @@ -2222,22 +2293,25 @@ C’est très certainement un bogue, veuillez le signaler aux développeurs.Writing the HTML file failed. Échec d’écriture du fichier HTML. + + Export database to XML file + Exporter la base de données dans un fichier XML + + + XML file + Fichier XML + + + Writing the XML file failed + L'écriture du fichier XML a échoué + Export Confirmation Confirmation de l’exportation You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - Vous êtes sur le point d’exporter votre base de données vers un fichier non chiffré. Vos mots de passe et renseignements délicats seront vulnérables. Voulez-vous vraiment poursuivre ? - - - New Database - Nouvelle base de données - - - %1 [New Database] - Database tab name modifier - %1 [nouvelle base de données] + Vous êtes sur le point d’exporter votre base de données vers un fichier non chiffré. Vos mots de passe et renseignements délicats seront vulnérables. Voulez-vous vraiment poursuivre ? %1 [Locked] @@ -2248,8 +2322,8 @@ C’est très certainement un bogue, veuillez le signaler aux développeurs. DatabaseWidget - Database Tags - Mots-clefs de la base de données + Searches and Tags + Recherches et Étiquettes Searching… @@ -2265,15 +2339,15 @@ C’est très certainement un bogue, veuillez le signaler aux développeurs. Perform Auto-Type into the previously active window? - Effectuer la saisie automatique dans la précédente fenêtre active ? + Effectuer la saisie automatique dans la fenêtre active précédemment ? Execute command? - Exécuter la commande ? + Exécuter la commande ? Do you really want to execute the following command?<br><br>%1<br> - Voulez-vous vraiment exécuter la commande suivante ?<br><br>%1<br> + Voulez-vous vraiment exécuter la commande suivante ?<br><br>%1<br> Remember my choice @@ -2285,20 +2359,24 @@ C’est très certainement un bogue, veuillez le signaler aux développeurs. Do you really want to delete the group "%1" for good? - Voulez-vous vraiment supprimer définitivement le groupe « %1 » ? + Voulez-vous vraiment supprimer définitivement le groupe « %1 » ? Move group to recycle bin? - Déplacer le groupe vers la corbeille ? + Déplacer le groupe vers la corbeille ? Do you really want to move the group "%1" to the recycle bin? - Voulez-vous vraiment déplacer le groupe « %1 » vers la corbeille ? + Voulez-vous vraiment déplacer le groupe « %1 » vers la corbeille ? Expired entries Entrées ayant expiré + + Entries expiring within %1 day(s) + Entrées expirant dans %1 jourEntrées expirant dans %1 joursEntrées expirant dans %1 jours + No current database. Aucune base de données actuelle. @@ -2323,29 +2401,41 @@ C’est très certainement un bogue, veuillez le signaler aux développeurs.No Results Il n’y a aucun résultat + + Save + Enregistrer + + + Enter a unique name or overwrite an existing search from the list: + Entrez un nom unique ou écrasez une recherche existante dans la liste : + + + Save Search + Sauvegarder recherche + Lock Database? - Verrouiller la base de données ? + Verrouiller la base de données ? You are editing an entry. Discard changes and lock anyway? - Vous êtes en train de modifier une entrée. Abandonner les changements et la verrouiller quand même ? + Vous êtes en train de modifier une entrée. Abandonner les changements et la verrouiller quand même ? "%1" was modified. Save changes? « %1 » a été modifié. -Enregistrer les changements ? +Enregistrer les changements ? Database was modified. Save changes? La base de données a été modifiée. -Enregistrer les changements ? +Enregistrer les changements ? Save changes? - Enregistrer les changements ? + Enregistrer les changements ? File has changed @@ -2353,7 +2443,7 @@ Enregistrer les changements ? The database file has changed. Do you want to load the changes? - Le fichier de la base de données a été modifié. Voulez-vous le recharger ? + Le fichier de la base de données a été modifié. Voulez-vous le recharger ? Merge Request @@ -2363,7 +2453,7 @@ Enregistrer les changements ? The database file has changed and you have unsaved changes. Do you want to merge your changes? Le fichier de la base de données a été modifié et vos changements ne sont pas enregistrés. -Voulez-vous fusionner vos changements ? +Voulez-vous fusionner vos changements ? Could not open the new database file while attempting to autoreload. @@ -2373,13 +2463,13 @@ Erreur : % 1 Disable safe saves? - Désactiver les enregistrements sécurisés ? + Désactiver les enregistrements sécurisés ? KeePassXC has failed to save the database multiple times. This is likely caused by file sync services holding a lock on the save file. Disable safe saves and try again? KeePassXC n’a pas réussi à enregistrer la base de données à plusieurs reprises. Le fichier à enregistrer est probablement verrouillé par les services de synchronisation de fichiers. -Désactiver les enregistrements sécurisés et réessayer ? +Désactiver les enregistrements sécurisés et réessayer ? Writing the database failed: %1 @@ -2403,19 +2493,24 @@ Désactiver les enregistrements sécurisés et réessayer ? Empty recycle bin? - Vider la corbeille ? + Vider la corbeille ? Are you sure you want to permanently delete everything from your recycle bin? - Voulez-vous vraiment vider définitivement la corbeille ? + Voulez-vous vraiment vider définitivement la corbeille ? Could not find database file: %1 Impossible de trouver le fichier de la base de données : %1 - - Entries expiring within %1 day(s) - Entrées expirant dans %1 jourEntrées expirant dans %1 jours + + New Database + Nouvelle base de données + + + %1 [New Database] + Database tab name modifier + %1 [nouvelle base de données] @@ -2450,7 +2545,7 @@ Désactiver les enregistrements sécurisés et réessayer ? Are you sure you want to remove this URL? - Voulez-vous vraiment supprimer cette URL ? + Voulez-vous vraiment supprimer cette URL ? Properties @@ -2512,15 +2607,15 @@ Malheureusement, les changements effectués ont été perdus. Would you like to correct it? Une erreur est survenue lors de la validation de la séquence personnalisée de saisie automatique : %1 -La corriger ? +Voulez-vous la corriger ? An error occurred while validating the Auto-Type sequence for "%1": %2 Would you like to correct it? - Une erreur est survenue lors de la validation de la séquence de saisie automatique pour « %1 » : + Une erreur est survenue lors de la validation de la séquence de saisie automatique pour « %1 » : %2 -La corriger ? +Voulez-vous la corriger ? Entry updated successfully. @@ -2532,7 +2627,7 @@ La corriger ? Would you like to save changes to this entry? - Voulez-vous enregistrer les changements de cette entrée ? + Voulez-vous enregistrer les changements de cette entrée ? New attribute @@ -2544,7 +2639,7 @@ La corriger ? Are you sure you want to remove this attribute? - Voulez-vous vraiment supprimer cet attribut ? + Voulez-vous vraiment supprimer cet attribut ? Reveal @@ -2558,21 +2653,21 @@ La corriger ? Hide Cacher + + %n hour(s) + %n heure%n heure%n heure + %n week(s) - %n semaine%n semaines + %n semaine%n semaines%n semaines %n month(s) - %n mois%n mois + %n mois%n mois%n mois %n year(s) - % an%n ans - - - %n hour(s) - %n heure%n heure + %n an%n d’années%n ans @@ -2692,10 +2787,20 @@ La corriger ? Add new window association Ajouter une nouvelle association de fenêtre + + + + Add item + + + Remove selected window association Supprimer l’association de fenêtre sélectionnée + + - + Remove item + - + Window title: Titre de la fenêtre : @@ -2720,16 +2825,6 @@ La corriger ? Custom Auto-Type sequence for this window Séquence personnalisée de saisie automatique pour cette fenêtre - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2831,22 +2926,10 @@ La corriger ? Notes field Champ de note - - Toggle the checkbox to reveal the notes section. - Cochez la case pour révéler la section des notes. - Username field Champ de nom d’utilisateur - - Toggle notes visible - Activer ou désactiver la visibilité des notes - - - Notes: - Notes : - Expiration field Champ d’expiration @@ -2863,14 +2946,6 @@ La corriger ? Presets Préréglages - - Password: - Mot de passe : - - - URL: - URL : - Url field Champ d’URL @@ -2879,18 +2954,10 @@ La corriger ? Download favicon for URL Télécharger une favoricône pour l’URL - - Title: - Titre : - Title field Champ de titre - - Username: - Nom d’utilisateur : - Password field Champ de mot de passe @@ -2899,17 +2966,41 @@ La corriger ? Toggle expiration Activer ou désactiver l’expiration - - Expires: - Expire le : - - - Tags: - Mots-clefs : - Tags list - Liste de mots-clefs + Liste d’étiquettes + + + &Username: + &Nom d'utilisateur : + + + &Title: + &Titre : + + + &Password: + &Mot de passe : + + + UR&L: + UR&L : + + + &Notes: + &Notes : + + + Toggle notes visibility + Changer la visibilité des notes + + + T&ags: + Éti&quettes : + + + &Expires: + Expire le : @@ -2950,19 +3041,6 @@ La corriger ? Private key Clé privée - - External file - Fichier externe - - - Browser for key file - Rechercher un fichier clé - - - Browse… - Button for opening file dialog - Parcourir… - Attachment Fichier joint @@ -2979,6 +3057,23 @@ La corriger ? Remove from agent Retirer de l’agent + + External file + Fichier externe + + + Browser for key file + Rechercher un fichier clé + + + Browse… + Button for opening file dialog + Parcourir… + + + Generate + Générer + Select attachment file Sélectionner une fichier joint @@ -3014,10 +3109,6 @@ La corriger ? Icon Icône - - Browser Integration - Intégration aux navigateurs - Properties Propriétés @@ -3034,6 +3125,10 @@ La corriger ? Group has unsaved changes Le groupe a été modifié et n'a pas été enregistré + + Browser Integration + Intégration aux navigateurs + Enable Activer @@ -3049,10 +3144,6 @@ La corriger ? EditGroupWidgetBrowser - - Edit Group - Modifier le groupe - These settings affect to the group's behaviour with the browser extension. Ces paramètres altèrent le comportement du groupe avec l'extension du navigateur. @@ -3089,6 +3180,22 @@ La corriger ? Do not use HTTP Auth toggle for this and sub groups Ne pas utiliser l'authentification HTTP standard pour ce groupe et ses sous-groupes + + Omit WWW subdomain from matching: + Ignorer le sous-domaine WWW dans la correspondance : + + + Omit WWW subdomain from matching toggle for this and sub groups + Ignorer le sous-domaine WWW dans la correspondance pour celle-ci et ses sous-groupes + + + Restrict matching to given browser key: + Restreindre la correspondance selon la clé du navigateur suivant : + + + Restrict matching to given browser key toggle for this and sub groups + Restreindre la correspondance avec la clé du navigateur entre ceci et les sous-groupes + EditGroupWidgetKeeShare @@ -3320,10 +3427,6 @@ Supported extensions are: %1. Unable to fetch favicon. Impossible de récupérer la favoricône - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Vous pouvez activer le service d’icônes de sites Web de DuckDuckGo dans Outils > Paramètres > Sécurité - Existing icon selected. L’icône existante a été sélectionnée. @@ -3342,7 +3445,7 @@ Supported extensions are: %1. Successfully loaded %1 of %n icon(s) - %1 icône d’un total de %n a été chargée avec succès%1 icônes d’un total de %n ont été chargées avec succès + %1 icône d’un total de %n a été chargée avec succès%1 icônes d’un total de %n ont été chargées avec succès%1 icônes d’un total de %n ont été chargées avec succès No icons were loaded @@ -3350,11 +3453,15 @@ Supported extensions are: %1. %n icon(s) already exist in the database - %n icône existe déjà dans la base de données%n icônes existent déjà dans la base de données + %n icône existe déjà dans la base de données%n icônes existent déjà dans la base de données%n icônes existent déjà dans la base de données The following icon(s) failed: - Échec de l’icône suivante :Échec des icônes suivantes : + Échec de l’icône suivante :Échec des icônes suivantes :Échec des icônes suivantes : + + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + Vous pouvez activer le service d'icônes du site DuckDuckGo dans Paramètres -> Sécurité @@ -3409,12 +3516,12 @@ Supported extensions are: %1. Delete plugin data? - Supprimer les données de l’extension ? + Supprimer les données de l’extension ? Do you really want to delete the selected plugin data? This may cause the affected plugins to malfunction. - Voulez-vous vraiment supprimer les données d’extension sélectionnées ? Cela pourrait entraîner un mauvais fonctionnement des extensions touchées. + Voulez-vous vraiment supprimer les données d’extension sélectionnées ? Cela pourrait entraîner un mauvais fonctionnement des extensions concernées. Key @@ -3510,7 +3617,7 @@ This may cause the affected plugins to malfunction. Are you sure you want to remove %n attachment(s)? - Voulez-vous vraiment supprimer %n fichier joint ?Voulez-vous vraiment supprimer %n fichiers joints ? + Voulez-vous vraiment supprimer %n fichier joint ?Voulez-vous vraiment supprimer %n fichiers joints ?Voulez-vous vraiment supprimer %n fichiers joints ? Save attachments @@ -3524,7 +3631,7 @@ This may cause the affected plugins to malfunction. Are you sure you want to overwrite the existing file "%1" with the attachment? - Voulez-vous vraiment remplacer le fichier existant « %1 » par le fichier joint ? + Voulez-vous vraiment remplacer le fichier existant « %1 » par le fichier joint ? Confirm overwrite @@ -3553,17 +3660,18 @@ This may cause the affected plugins to malfunction. %1 Impossible d’ouvrir le fichier : %1Impossible d’ouvrir les fichiers : +%1Impossible d’ouvrir les fichiers : %1 Confirm Overwrite Attachment - Confirmer l'écrasement de la pièce jointe + Confirmer l’écrasement du fichier joint Attachment "%1" already exists. Would you like to overwrite the existing attachment? - La pièce jointe "%1" existe déjà. -Voulez-vous écraser la pièce jointe existante ? + Le fichier joint « %1 » existe déjà. +Voulez-vous écraser le fichier joint existant ? Confirm Attachment @@ -3577,26 +3685,26 @@ Are you sure to add this file? %1 est un gros fichier (%2 Mo). Votre base de données pourrait prendre de l’ampleur et réduire les performances. -Voulez-vous vraiment ajouter ce fichier ? +Voulez-vous vraiment ajouter ce fichier ? Attachment modified - Pièce jointe modifiée + La pièce jointe a été modifiée The attachment '%1' was modified. Do you want to save the changes to your database? - La pièce jointe « %1 » a été modifiée. -Voulez-vous enregistrer les modifications dans votre base de données ? + Le fichier joint « %1 » a été modifié. +Voulez-vous enregistrer les changements dans votre base de données ? Saving attachment failed - Échec lors de l'enregistrement de la pièce jointe + Échec d'enregistrement du fichier joint Saving updated attachment failed. Error: %1 - Échec lors de l'enregistrement de la mise à jour de la pièce jointe. + Échec d’enregistrement du fichier joint mis à jour. Erreur : %1 @@ -3683,7 +3791,7 @@ Erreur : %1 Tags - Mots-clefs : + Étiquettes @@ -3793,6 +3901,10 @@ Erreur : %1 Has TOTP Contient un TOTP + + Background Color + Couleur d’arrière-plan + EntryPreviewWidget @@ -3813,8 +3925,8 @@ Erreur : %1 Mot de passe - Notes - Notes + URL + URL Expiration @@ -3822,19 +3934,19 @@ Erreur : %1 Tags - Mots-clefs : + Étiquettes Tags list - Liste de mots-clefs + Liste d’étiquettes Username Nom d’utilisateur - URL - URL + Notes + Notes Advanced @@ -3884,6 +3996,10 @@ Erreur : %1 Never Jamais + + Double click to copy value + Double-cliquer pour copier la valeur + Enabled Activé @@ -3892,6 +4008,10 @@ Erreur : %1 Disabled Désactivé + + Double click to copy to clipboard + Double-cliquer pour copier dans le presse-papiers + EntryURLModel @@ -3899,6 +4019,10 @@ Erreur : %1 Invalid URL L’URL est invalide + + Duplicate URL + Dupliquer l'URL + EntryView @@ -3914,6 +4038,10 @@ Erreur : %1 Reset to defaults Réinitialiser aux valeurs par défaut + + + %1 entry(s)... + + %1 entrée...+ %1 entrées...+ %1 entrée(s)... + ExportDialog @@ -3929,8 +4057,8 @@ Erreur : %1 You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! - Vous êtes sur le point d'exporter votre base de données vers un fichier non crypté. -Vos mots de passe de données sensibles seront vulnérables ! + Vous êtes sur le point d’exporter votre base de données vers un fichier non chiffré. +Cela rendra vos mots de passe et données sensibles vulnérables ! database order @@ -4023,7 +4151,7 @@ Vos mots de passe de données sensibles seront vulnérables ! %n Entry(s) was used by %1 %1 is the name of an application - %n entrée était utilisée par %1%n entrées étaient utilisées par %1 + %n entrée était utilisée par %1%n entrées étaient utilisées par %1%n entrées étaient utilisées par %1 @@ -4094,7 +4222,7 @@ Vos mots de passe de données sensibles seront vulnérables ! Having trouble downloading icons? You can enable the DuckDuckGo website icon service in the security section of the application settings. - Des problèmes pour télécharger les icônes ? + Des problèmes pour télécharger les icônes ? Vous pouvez activer le service d’icônes de sites Web de DuckDuckGo dans la section sécurité des paramètres de l’application. @@ -4134,6 +4262,147 @@ Vous pouvez activer le service d’icônes de sites Web de DuckDuckGo dans la se Téléchargement des favoricônes (%1/%2)... + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Page d’aide + + + Entry count: %1 + + + + Group + Groupe + + + Title + Titre + + + Username + Nom d’utilisateur + + + Password + Mot de passe + + + Url + + + + + ImportWizardPageSelect + + Form + Formulaire + + + Import File Selection + + + + Password: + Mot de passe : + + + Key File: + Fichier clé : + + + Browse… + Parcourir… + + + Import Into: + + + + New Database + Nouvelle base de données + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Ouvrir OPVault + + + Select import file + + + + All files + Tous les fichiers + + + Key files + Fichiers clés + + + Select key file + Sélectionner un fichier clé + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4568,17 +4837,6 @@ Ligne %2, colonne %3 Échec d’ouverture de la clé privée - - KeePass1OpenWidget - - Import KeePass1 Database - Importer une base de données KeePass 1 - - - Unable to open the database. - Impossible d’ouvrir la base de données. - - KeePass1Reader @@ -4907,7 +5165,7 @@ Message : %2 The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. Are you sure you want to continue with this file? Le fichier clé sélectionné semble être un fichier de base de données de mots de passe. Un fichier clé doit être un fichier statique qui ne change jamais ou vous perdrez irrémédiablement l’accès à votre base de données. -Voulez-vous vraiment poursuivre avec ce fichier ? +Voulez-vous vraiment poursuivre avec ce fichier ? @@ -4935,10 +5193,6 @@ Voulez-vous vraiment poursuivre avec ce fichier ? &Recent Databases Bases de données &récentes - - &Import - &Importer - &Export &Exporter @@ -4959,6 +5213,10 @@ Voulez-vous vraiment poursuivre avec ce fichier ? TOTP TOTP + + Tags + Étiquettes + &Groups &Groupes @@ -5003,34 +5261,18 @@ Voulez-vous vraiment poursuivre avec ce fichier ? &New Database… &Nouvelle base de données… - - Create a new database - Créer une nouvelle base de données - &Merge From Database… Fusio&nner à partir d’une base de données… - - Merge from another KDBX database - Fusionner d’une autre base de données KDBX - &New Entry… &Nouvelle entrée… - - Add a new entry - Ajouter une nouvelle entrée - &Edit Entry… &Modifier l’entrée… - - View or edit entry - Voir ou modifier l’entrée - &Delete Entry… &Supprimer l’entrée… @@ -5039,10 +5281,6 @@ Voulez-vous vraiment poursuivre avec ce fichier ? &New Group… &Nouveau groupe… - - Add a new group - Ajouter un nouveau groupe - &Edit Group… &Modifier le groupe… @@ -5075,18 +5313,10 @@ Voulez-vous vraiment poursuivre avec ce fichier ? Database &Reports… &Rapports de la base données... - - Statistics, health check, etc. - Statistiques, bilan de santé, etc. - &Database Settings… &Paramètres de la base de données… - - Database settings - Paramètres de la base de données - &Clone Entry… &Cloner l’entrée… @@ -5095,34 +5325,18 @@ Voulez-vous vraiment poursuivre avec ce fichier ? Move u&p Déplacer vers le &haut - - Move entry one step up - Déplacer l’entrée d’un niveau vers le haut - Move do&wn Déplacer vers le &bas - - Move entry one step down - Déplacer l’entrée d’un niveau vers le bas - Copy &Username Copier le nom d’&utilisateur - - Copy username to clipboard - Copier le nom d’utilisateur dans le presse-papiers - Copy &Password Copier le mot de &passe - - Copy password to clipboard - Copier le mot de passe dans le presse-papiers - &Settings &Paramètres @@ -5156,25 +5370,13 @@ Voulez-vous vraiment poursuivre avec ce fichier ? &Titre - Copy title to clipboard - Copier le titre dans le presse-papiers - - - &URL - &URL - - - Copy URL to clipboard - Copier l’URL dans le presse-papiers + Copy &URL + Copier l'&URL &Notes &Notes - - Copy notes to clipboard - Copier les notes dans le presse-papiers - &CSV File… Fichier &CSV… @@ -5187,26 +5389,14 @@ Voulez-vous vraiment poursuivre avec ce fichier ? KeePass 1 Database… Base de données KeePass 1… - - Import a KeePass 1 database - Importer une base de données KeePass 1 - 1Password Vault… Coffre 1Password… - - Import a 1Password Vault - Importer un coffre 1Password - CSV File… Fichier CSV… - - Import a CSV file - Importer un fichier CSV - Show TOTP Afficher le TOTP @@ -5223,6 +5413,10 @@ Voulez-vous vraiment poursuivre avec ce fichier ? Copy &TOTP Copier le &TOTP + + Copy Password and TOTP + Copier le mot de passe et TOTP + E&mpty recycle bin &Vider la corbeille @@ -5247,10 +5441,6 @@ Voulez-vous vraiment poursuivre avec ce fichier ? &Online Help &Aide en ligne - - Go to online documentation - Accéder à la documentation en ligne - &User Guide Guide d’&utilisation @@ -5319,6 +5509,10 @@ Voulez-vous vraiment poursuivre avec ce fichier ? Clone Group... Dupliquer le groupe... + + &XML File… + Fichier &XML ... + Clear history Effacer l’historique @@ -5335,8 +5529,9 @@ Voulez-vous vraiment poursuivre avec ce fichier ? WARNING: You are using an unstable build of KeePassXC. There is a high risk of corruption, maintain a backup of your databases. This version is not meant for production use. - ATTENTION : vous utilisez une version instable de KeePassXC. -Il existe un risque important de dysfonctionnement. Effectuez régulièrement une copie de sécurité de vos bases de données. Cette version n'est pas destinée à une utilisation régulière. + AVERTISSEMENT : vous utilisez une version instable de KeePassXC. +Le risque de corruption est élevé. Conservez une sauvegarde de vos bases de données. +Cette version ne devrait pas être utilisée en production. NOTE: You are using a pre-release version of KeePassXC. @@ -5347,12 +5542,16 @@ Mise à part certains bogues et dysfonctionnements mineurs, cette version est de WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard. We recommend you use the AppImage available on our downloads page. - ATTENTION : votre version de Qt peut entraîner un plantage avec un clavier virtuel. -Nous vous recommandons d'utiliser l'AppImage disponible sur notre page de téléchargements. + AVERTISSEMENT : votre version de Qt pourrait entraîner le plantage de KeePassXC avec un clavier virtuel. +Nous vous recommandons d’utiliser l’AppImage proposée sur notre page de téléchargement. + + + No Tags + Aucune étiquette Restore Entry(s) - Restaurer l’entréeRestaurer les entrées + Restaurer l’entréeRestaurer les entréesRestaurer les entrées Settings @@ -5360,11 +5559,11 @@ Nous vous recommandons d'utiliser l'AppImage disponible sur notre page Check for updates on startup? - Vérifier la présence de mises à jour au démarrage ? + Vérifier la présence de mises à jour au démarrage ? Would you like KeePassXC to check for updates on startup? - Voulez-vous que KeePassXC vérifie la présence de mises à jour au démarrage ? + Voulez-vous que KeePassXC vérifie la présence de mises à jour au démarrage ? You can always check for updates manually from the application menu. @@ -5378,17 +5577,289 @@ Nous vous recommandons d'utiliser l'AppImage disponible sur notre page Quit KeePassXC Fermer KeePassXC + + %1 Entry(s) + %1 entrée%1 entrées%1 entrée(s) + Please present or touch your YubiKey to continue… Veuillez insérer ou toucher votre YubiKey pour continuer... Restart Application? - Redémarrer l’application ? + Redémarrer l’application ? You must restart the application to apply this setting. Would you like to restart now? - Pour appliquer ce paramètre, vous devez redémarrer l’application. Voulez-vous la démarrer maintenant ? + Pour appliquer ce paramètre, vous devez redémarrer l’application. Voulez-vous la démarrer maintenant ? + + + Allow Screen Capture + Autoriser la capture d'écran + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Clés d'accès… + + + Import Passkey + Importer une clé d'accès + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + Modifier l’entrée + + + Delete Entry + + + + Create Group + + + + Edit Group + Modifier le groupe + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + Copier le nom d'utilisateur + + + Copy Password + Copier le mot de passe + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + Importer une base de données KeePass 1 + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + Configuration TOTP + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + @@ -5447,26 +5918,6 @@ Nous vous recommandons d'utiliser l'AppImage disponible sur notre page Overwriting %1 [%2] Remplacement de %1 [%2] - - older entry merged from database "%1" - ancienne entrée fusionnée de la base de données « %1 » - - - Adding backup for older target %1 [%2] - Ajout d’une sauvegarde pour l’ancienne cible %1 [%2] - - - Adding backup for older source %1 [%2] - Ajout d’une sauvegarde pour l’ancienne source %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Ré-application de l’ancienne entrée cible sur la nouvelle source %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Ré-application de l’ancienne entrée source sur la nouvelle cible %1 [%2] - Synchronizing from newer source %1 [%2] Synchronisation avec une source plus récente %1 [%2] @@ -5526,14 +5977,6 @@ Nous vous recommandons d'utiliser l'AppImage disponible sur notre page Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Vous pouvez régler ici les paramètres de chiffrement de la base de données. Ne vous inquiétez pas, vous pourrez les changer ultérieurement dans les paramètres de la base de données. - - Advanced Settings - Paramètres avancés - - - Simple Settings - Paramètres simples - NewDatabaseWizardPageDatabaseKey @@ -5614,15 +6057,6 @@ Nous vous recommandons d'utiliser l'AppImage disponible sur notre page %1 octets de texte en clair étaient attendus, %2 ont été trouvés - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - La base de données lue n’a généré aucune instance -%1 - - OpVaultReader @@ -5696,6 +6130,10 @@ Nous vous recommandons d'utiliser l'AppImage disponible sur notre page Unknown cipher: %1 Chiffrement inconnu : %1 + + AES-256/GCM is currently not supported + AES-256/GCM n'est actuellement pas pris en charge + Passphrase is required to decrypt this key Une phrase de passe est exigée pour déchiffrer cette clé @@ -5722,7 +6160,7 @@ Nous vous recommandons d'utiliser l'AppImage disponible sur notre page Decryption failed, wrong passphrase? - Échec de déchiffrement. La phrase de passe est-elle erronée ? + Échec de déchiffrement. La phrase de passe est-elle erronée ? Unexpected EOF while reading key @@ -5762,26 +6200,177 @@ Nous vous recommandons d'utiliser l'AppImage disponible sur notre page - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Les mots de passe ne correspondent pas + SSH Key Generator + Générateur de clé SSH - Passwords match so far - Les mots de passe correspondent jusqu’à présent + Type + Type - Toggle Password (%1) - Activer ou désactiver le mot de passe (%1) + Bits + Bits - Generate Password (%1) - Générer un mot de passe (%1) + Comment + Commentaire + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - Exporter une clé d'accès - Warning: Caps Lock enabled! - Avertissement: Les majuscules sont verrouillées + Export the following Passkey entries. + Exporter les entrées avec clé d'accès suivantes. + + + Filenames will be generated with title and .passkey file extension. + Les fichiers sont nommés avec le titre et .passkey pour extension. + + + Export entries + Exporter des entrées + + + Export Selected + Exporter la sélection + + + Cancel + Annuler + + + Export to folder + Exporter dans un dossier + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC : exporter une clé d'accès + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + Le fichier « %1.passkey » existe déjà. +Le remplacer ? + + + Cannot open file + Impossible d'ouvrir le fichier + + + Cannot open file "%1" for writing. + Impossible d’écrire le fichier « %1 ». + + + Cannot write to file + Impossible d’écrire le fichier + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - Importer une clé d'accès + + + Username: %1 + Nom d’utilisateur : %1 + + + Group + Groupe + + + Database + Base de données + + + Import Passkey + Importer une clé d'accès + + + Import + Importer + + + Cancel + Annuler + + + Import the following Passkey: + Importer la clé d'accès suivante : + + + Entry + Entrée + + + Import the following Passkey to this entry: + Importer la clé d’accès suivante pour cette entrée : + + + Create new entry + Créer une nouvelle entrée + + + Default Passkeys group (Imported Passkeys) + Groupe de clés d’accès par défaut (clés importées) + + + Relying Party: %1 + Tiers de confiance : %1 + + + + PasskeyImporter + + Passkey file + Fichier de clé d'accès + + + All files + Tous les fichiers + + + Open Passkey file + Ouvrir un fichier de clé d'accès + + + Cannot open file + Impossible d'ouvrir le fichier + + + Cannot open file "%1" for reading. + Impossible d’ouvrir le fichier « %1 » en lecture. + + + Cannot import Passkey + Impossible d'importer la clé d'accès + + + Cannot import Passkey file "%1". Data is missing. + Impossible d'importer le fichier de clé d’accès « %1 ». Donnée manquante. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + Impossible d'importer le fichier de clé d’accès « %1 ». Clé privée manquante ou incorrecte. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + Impossible d'importer le fichier de clé d’accès « %1 ». +La donnée suivante est manquante : +%2 @@ -6046,52 +6635,6 @@ Nous vous recommandons d'utiliser l'AppImage disponible sur notre page Entropy: %1 bit Entropie : %1 bits - - Confirm Delete Wordlist - Confirmer la suppression de liste de mots - - - Do you really want to delete the wordlist "%1"? - Voulez-vous vraiment supprimer la liste de mots "%1"? - - - Failed to delete wordlist - Échec lors de l'effacement de la liste de mots - - - Wordlists - Liste de mots - - - All files - Tous les fichiers - - - Select Custom Wordlist - Sélectionner la liste de mots personnalisée - - - Overwrite Wordlist? - Écraser la liste de mots ? - - - Wordlist "%1" already exists as a custom wordlist. -Do you want to overwrite it? - La liste de mots "%1" existe déjà comme une liste personnalisée. -Voulez-vous la remplacer ? - - - Failed to add wordlist - Échec lors de l'ajout d'une liste de mots - - - Logograms - Logogrammes - - - Special Characters - Caractères spéciaux - Password Quality: %1 Qualité du mot de passe : %1 @@ -6116,6 +6659,103 @@ Voulez-vous la remplacer ? Password quality Excellent + + Confirm Delete Wordlist + Confirmer la suppression de liste de mots + + + Do you really want to delete the wordlist "%1"? + Voulez-vous vraiment supprimer la liste de mots « %1 » ? + + + Failed to delete wordlist + Échec lors de l'effacement de la liste de mots + + + Wordlists + Liste de mots + + + All files + Tous les fichiers + + + Select Custom Wordlist + Sélectionner la liste de mots personnalisée + + + Overwrite Wordlist? + Écraser la liste de mots ? + + + Wordlist "%1" already exists as a custom wordlist. +Do you want to overwrite it? + La liste de mots « %1 » existe déjà en tant que liste personnalisée. +Voulez-vous la remplacer ? + + + Failed to add wordlist + Échec lors de l'ajout d'une liste de mots + + + Logograms + Logogrammes + + + Special Characters + Caractères spéciaux + + + + PasswordWidget + + Passwords do not match + Les mots de passe ne correspondent pas + + + Passwords match so far + Les mots de passe correspondent jusqu’à présent + + + Toggle Password (%1) + Activer ou désactiver le mot de passe (%1) + + + Generate Password (%1) + Générer un mot de passe (%1) + + + Warning: Caps Lock enabled! + Avertissement : verrouillage majuscules activé ! + + + Quality: %1 + Qualité : %1 + + + Poor + Password quality + Pauvre + + + Weak + Password quality + Faible + + + Good + Password quality + Bon + + + Excellent + Password quality + Excellent + + + Toggle password visibility using Control + H. Open the password generator using Control + G. + Utilisez Ctrl + H pour permuter l'affichage du mot de passe. Utilisez Ctrl + G pour ouvrir le générateur de mots de passe. + PickcharsDialog @@ -6170,6 +6810,10 @@ Voulez-vous la remplacer ? Continue Poursuivre + + Continue with weak password + Confirmer l'utilisation d'un mot de passe faible + QObject @@ -6367,27 +7011,27 @@ Voulez-vous la remplacer ? Password for '%1' has been leaked %2 time(s)! - Le mot de passe pour « %1 » a été divulgué %2 foisLe mot de passe pour « %1 » a été divulgué %2 fois + Le mot de passe pour « %1 » a été divulgué %2 foisLe mot de passe pour « %1 » a été divulgué %2 foisLe mot de passe pour « %1 » a été divulgué %2 fois Password for '%1' has been leaked! - Le mot de passe pour « %1 » a été compromis ! + Le mot de passe de « %1 » a été divulgué ! Export an attachment of an entry. - Exporter une pièce jointe d'une entrée + Exporter un fichier joint d’une entrée. Path of the entry with the target attachment. - Chemin d'accès d'une entrée avec la cible jointe. + Chemin de l’entrée avec le fichier joint cible. Name of the attachment to be exported. - Nom de la pièce jointe à exporter. + Nom du fichier joint à exporter. Path to which the attachment should be exported. - Chemin d'accès vers lequel la pièce jointe doit être exportée. + Chemin dans lequel le fichier joint devrait être exporté. Could not find entry with path %1. @@ -6395,7 +7039,7 @@ Voulez-vous la remplacer ? Could not find attachment with name %1. - Impossible de trouver la pièce jointe portant le nom %1. + Impossible de trouver le fichier joint nommé %1. No export target given. Please use '--stdout' or specify an 'export-file'. @@ -6407,15 +7051,15 @@ Voulez-vous la remplacer ? Successfully exported attachment %1 of entry %2 to %3. - Export réussi la pièce jointe %1 de l'entrée %2 vers %3. + Le fichier joint %1 de l'entrée %2 a été exporté avec succès dans %3. Overwrite existing attachments. - Écraser les pièces jointes existantes. + Écraser les fichiers joints existants. Imports an attachment to an entry. - Importe une pièce jointe dans une entrée. + Importe un fichier joint dans une entrée. Path of the entry. @@ -6423,35 +7067,35 @@ Voulez-vous la remplacer ? Name of the attachment to be added. - Nom de la pièce jointe à ajouter. + Nom du fichier joint à ajouter. Path of the attachment to be imported. - Chemin d'accès de la pièce jointe à ajouter. + Chemin du fichier joint à importer. Attachment %1 already exists for entry %2. - La pièce jointe %1 existe déjà pour l'entrée %2. + Le fichier joint %1 existe déjà pour l’entrée %2. Could not open attachment file %1. - Impossible d'ouvrir la pièce jointe %1. + Impossible d’ouvrir le fichier joint %1. Successfully imported attachment %1 as %2 to entry %3. - Import réussi de la pièce jointe %1 comme %2 vers l'entrée %3. + Le fichier joint %1 a été importé avec succès en tant que %2 dans l’entrée %3. Remove an attachment of an entry. - Supprimer une pièce jointe d'une entrée. + Supprimer un fichier joint d’une entrée. Name of the attachment to be removed. - Nom de la pièce jointe à supprimer. + Nom du fichier joint à supprimer. Successfully removed attachment %1 from entry %2. - Suppression réussie de la pièce jointe %1 de l'entrée %2. + Le fichier joint %1 a été supprimé avec succès de l’entrée %2. Copy the given attribute to the clipboard. Defaults to "password" if not specified. @@ -6517,7 +7161,7 @@ Voulez-vous la remplacer ? Clearing the clipboard in %1 second(s)... - Effacement du presse-papiers dans %1 seconde…Effacement du presse-papiers dans %1 secondes… + Effacement du presse-papiers dans %1 seconde…Effacement du presse-papiers dans %1 secondes…Effacement du presse-papiers dans %1 secondes… Clipboard cleared! @@ -6563,6 +7207,10 @@ Voulez-vous la remplacer ? Too many arguments provided. Trop d'arguments transmis. + + Path of the database. + Chemin de la base de données. + Target decryption time in MS for the database. Durée de déchiffrement cible en millisecondes pour la base de données. @@ -6571,6 +7219,12 @@ Voulez-vous la remplacer ? time durée + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Spécifier le fichier clé pour la base de données. +Cette option est obsolète, utilisez plutôt --set-key-file. + Set the key file for the database. Définir le fichier clé de la base de données. @@ -6583,10 +7237,6 @@ Voulez-vous la remplacer ? Create a new database. Créer un nouvelle base de données. - - Path of the database. - Chemin de la base de données. - Invalid decryption time %1. La durée de déchiffrement est invalide : %1. @@ -6631,6 +7281,158 @@ Voulez-vous la remplacer ? Successfully created new database. La nouvelle base de données a été créée avec succès. + + Unset the password for the database. + Annulez la définition du mot de passe de la base de données. + + + Unset the key file for the database. + Annuler la définition du fichier de clé de la base de données. + + + Edit a database. + Éditer une base de données + + + Cannot use %1 and %2 at the same time. + Impossible d'utiliser %1 et %2 en même temps. + + + Could not change the database key. + Impossible de changer la clé de la base de donnée + + + Database was not modified. + La base de données n'a pas été modifiée + + + Writing the database failed: %1 + Échec d’écriture de la base de données : %1 + + + Successfully edited the database. + La base de données a été éditée avec succés + + + Cannot remove password: The database does not have a password. + Impossible de supprimer le mot de passe: La base de données n’a pas de mot de passe. + + + Cannot remove file key: The database does not have a file key. + Impossible de supprimer le fichier clé: La base de données n'a pas de fichier clé. + + + Loading the new key file failed: %1 + Échec du chargement du nouveau fichier clé : %1 + + + Found unexpected Key type %1 + Type %1 de clé inconnue trouvé + + + Cannot remove all the keys from a database. + Impossible de supprimer toutes les clefs d'une base de données + + + Show a database's information. + Afficher les renseignements d’une base de données. + + + UUID: + UUID : + + + Name: + Nom : + + + Description: + Description : + + + Cipher: + Chiffrement : + + + KDF: + Fonction de dérivation de clé : + + + Recycle bin is enabled. + La corbeille est activée. + + + Recycle bin is not enabled. + La corbeille est désactivée. + + + Location + Emplacement + + + Database created + Base de données créée + + + Last saved + Dernier enregistrement + + + Unsaved changes + Changements non enregistrés + + + yes + Oui + + + no + Non + + + Number of groups + Nombre de groupes + + + Number of entries + Nombre d’entrées + + + Number of expired entries + Nombre d’entrées expirées + + + Unique passwords + Mots de passes uniques + + + Non-unique passwords + Mots de passe non-uniques + + + Maximum password reuse + Nombre maximal de réutilisation de mot de passe + + + Number of short passwords + Nombre de mots de passe courts + + + Number of weak passwords + Nombre de mots de passe faibles + + + Entries excluded from reports + Entrées exclues des rapports + + + Average password length + Longueur moyenne des mots de passe + + + %1 characters + %1 caractères + Word count for the diceware passphrase. Nombre de mots de la phrase de passe générée avec la méthode du lancer de dés. @@ -6682,10 +7484,6 @@ Voulez-vous la remplacer ? Enter new password for entry: Saisir le nouveau mot de passe pour l’entrée : - - Writing the database failed: %1 - Échec d’écriture de la base de données : %1 - Successfully edited entry %1. L’entrée %1 a été modifiée avec succès. @@ -6910,106 +7708,6 @@ Voulez-vous la remplacer ? Successfully imported database. La base de données a été importée avec succès. - - Show a database's information. - Afficher les renseignements d’une base de données. - - - UUID: - UUID : - - - Name: - Nom : - - - Description: - Description : - - - Cipher: - Chiffrement : - - - KDF: - Fonction de dérivation de clé : - - - Recycle bin is enabled. - La corbeille est activée. - - - Recycle bin is not enabled. - La corbeille est désactivée. - - - Location - Emplacement - - - Database created - Base de données créée - - - Last saved - Dernier enregistrement - - - Unsaved changes - Changements non enregistrés - - - yes - Oui - - - no - Non - - - Number of groups - Nombre de groupes - - - Number of entries - Nombre d’entrées - - - Number of expired entries - Nombre d’entrées expirées - - - Unique passwords - Mots de passes uniques - - - Non-unique passwords - Mots de passe non-uniques - - - Maximum password reuse - Nombre maximal de réutilisation de mot de passe - - - Number of short passwords - Nombre de mots de passe courts - - - Number of weak passwords - Nombre de mots de passe faibles - - - Entries excluded from reports - Entrées exclues des rapports - - - Average password length - Longueur moyenne des mots de passe - - - %1 characters - %1 caractères - Unknown command %1 La commande %1 est inconnue @@ -7182,9 +7880,13 @@ Commandes proposées : Show the protected attributes in clear text. Afficher en clair les attributs protégés. + + Show all the attributes of the entry. + Afficher toutes les caractéristiques de l'entrée + Show the attachments of the entry. - Voir les pièces jointes d'une entrée. + Afficher les fichiers joints de l’entrée. Names of the attributes to show. This option can be specified more than once, with each attribute shown one-per-line in the given order. If no attributes are specified, a summary of the default attributes is given. @@ -7208,11 +7910,11 @@ Commandes proposées : No attachments present. - Pas de pièces jointes présentes. + Il n’y a aucun fichier joint. Attachments: - Pièces jointes : + Fichiers joints : Failed to open database file %1: not found @@ -7251,13 +7953,17 @@ Veuillez envisager de générer un nouveau fichier clé. Invalid YubiKey serial %1 Le numéro de série Yubikey %1 est invalide + + Please present or touch your YubiKey to continue. + Veuillez présenter ou toucher votre YubiKey pour continuer… + Enter password to encrypt database (optional): Saisissez un mot de passe pour chiffrer la base de données (facultatif) : Do you want to create a database with an empty password? [y/N]: - Voulez-vous créer une base de données avec un mot de passe vide ? [o/N] : + Voulez-vous créer une base de données avec un mot de passe vide ? [o/N] : Repeat password: @@ -7323,7 +8029,7 @@ Veuillez envisager de générer un nouveau fichier clé. Password is used %1 time(s) - Le mot de passe est utilisé %1 foisLe mot de passe est utilisé %1 fois + Le mot de passe est utilisé %1 foisLe mot de passe est utilisé %1 foisLe mot de passe est utilisé %1 fois Password has expired @@ -7343,7 +8049,7 @@ Veuillez envisager de générer un nouveau fichier clé. Password expires in %1 day(s) - Le mot de passe expire dans %1 jourLe mot de passe expire dans %1 jours + Le mot de passe expire dans %1 jourLe mot de passe expire dans %1 joursLe mot de passe expire dans %1 jours Password will expire soon @@ -7415,31 +8121,31 @@ Noyau : %3 %4 over %1 year(s) - plus de %1 anplus de %1 ans + plus de %1 anplus de %1 ansplus de %1 ans about %1 month(s) - environ %1 moisenviron %1 mois + environ %1 moisenviron %1 moisenviron %1 mois %1 week(s) - %1 semaine%1 semaines + %1 semaine%1 semaines%1 semaines %1 day(s) - %1 jour%1 jours + %1 jour%1 jours%1 jours %1 hour(s) - %1 heure%1 heures + %1 heure%1 heures%1 heures %1 minute(s) - %1 minute%1 minutes + %1 minute%1 minutes%1 minutes - Botan library must be at least 2.11.x, found %1.%2.%3 - La bibliothèque Botan doit être au moins en version 2.11.x (%1.%2.%3 actuellement) + Botan library must be at least %1, found %2.%3.%4 + La bibliothèque Botan doit être au moins %1, trouvée %2.%3.%4 Cryptographic libraries: @@ -7539,7 +8245,7 @@ Noyau : %3 %4 Clearing the clipboard in %1 second(s)… - Effacement du presse-papiers dans %1 seconde…Effacement du presse-papiers dans %1 secondes… + Effacement du presse-papiers dans %1 seconde…Effacement du presse-papiers dans %1 secondes…Effacement du presse-papiers dans %1 secondes… Group @@ -7580,44 +8286,44 @@ Noyau : %3 %4 %1 ms milliseconds - %1 ms%1 ms + %1 ms%1 ms%1 ms %1 s seconds - %1 s%1 s + %1 s%1 s%1 s Do you really want to delete the entry "%1" for good? - Souhaitez-vous vraiment supprimer définitivement l’entrée « %1 » ? + Voulez-vous vraiment supprimer l’entrée « %1 » définitivement ? Do you really want to delete %n entry(s) for good? - Voulez-vous vraiment définitivement supprimer % entrée ?Voulez-vous vraiment définitivement supprimer % entrées ? + Voulez-vous vraiment supprimer %n entrée définitivement ?Voulez-vous vraiment supprimer %n d’entrées définitivement ?Voulez-vous vraiment supprimer %n entrées définitivement ? Delete entry(s)? - Supprimer l’entrée ?Supprimer les entrées ? + Supprimer l’entrée ?Supprimer les entrées ?Supprimer les entrées ? Do you really want to move entry "%1" to the recycle bin? - Souhaitez-vous vraiment déplacer l’entrée « %1 » vers la corbeille ? + Voulez-vous vraiment déplacer l’entrée « %1 » vers la corbeille ? Do you really want to move %n entry(s) to the recycle bin? - Voulez-vous vraiment déplacer %n entrée à la corbeille ?Voulez-vous vraiment déplacer %n entrées à la corbeille ? + Voulez-vous vraiment déplacer %n entrée vers la corbeille ?Voulez-vous vraiment déplacer %n entrées vers la corbeille ?Voulez-vous vraiment déplacer %n entrées vers la corbeille ?1 Move entry(s) to recycle bin? - Déplacer l’entrée vers la corbeille ?Déplacer les entrées vers la corbeille ? + Déplacer l’entrée vers la corbeille ?Déplacer les entrées vers la corbeille ?Déplacer les entrées vers la corbeille ? Replace references to entry? - Remplacer les références vers l’entrée ? + Remplacer les références vers l’entrée ? Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? - L’entrée « %1  » à %2 référence. Voulez-vous la remplacer par la valeur, ignorer cette entrée ou la supprimer quand même ?L’entrée « %1  » à %2 références. Voulez-vous les remplacer par les valeurs, ignorer cette entrée ou la supprimer quand même ? + L’entrée « %1  » à %2 référence. Voulez-vous la remplacer par la valeur, ignorer cette entrée ou la supprimer quand même ?L’entrée « %1  » à %2 références. Voulez-vous les remplacer par les valeurs, ignorer cette entrée ou la supprimer quand même ?L’entrée « %1  » à %2 références. Voulez-vous les remplacer par les valeurs, ignorer cette entrée ou la supprimer quand même ? User name @@ -7679,10 +8385,6 @@ Noyau : %3 %4 read password of the database from stdin lire le mot de passe de la base de données sur l’entrée standard - - allow app screen recordering and screenshots - autoriser l'application à enregistrer et capturer l'écran - Locked databases. Les bases de données ont été verrouillées. @@ -7695,6 +8397,10 @@ Noyau : %3 %4 Another instance of KeePassXC is already running. Une autre instance de KeePassXC est déjà en cours d’exécution. + + KeePassXC is not running. No open database to lock + KeePassXC est arrêté. Aucune base de données ouverte à verrouiller. + Fatal error while testing the cryptographic functions. Erreur fatale lors de l’évaluation des fonctions cryptographiques. @@ -7703,10 +8409,6 @@ Noyau : %3 %4 KeePassXC - Error KeePassXC – Erreur - - Warning: Failed to prevent screenshots on a top level window! - Attention  : impossible d'empêcher les captures d'écran sur une fenêtre de niveau supérieur ! - Database password: Mot de passe de la base de données : @@ -7730,7 +8432,221 @@ Noyau : %3 %4 Échec de signature de la question avec Windows Hello. - Please present or touch your YubiKey to continue. + Warning: Failed to block screenshot capture on a top-level window. + Attention: Impossible d’empêcher les captures d’écran sur une fenêtre de niveau supérieur. + + + Invalid Cipher + Chiffre invalide + + + Invalid KDF + KDF invalide + + + Access to all entries is denied + Accès refusé à toutes les entrées + + + allow screenshots and app recording (Windows/macOS) + autorise les captures d'écran et l'enregistrement vidéo (Windows/macOS) + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + Certification non prise en charge + + + Credential is excluded + L'identifiant est exclus + + + Passkeys request canceled + Demande de clés d’accès annulée + + + Invalid user verification + Vérification de l’utilisateur invalide + + + Empty public key + Clé publique vide + + + Invalid URL provided + URL renseignée invalide + + + Passkeys + Clés d'accès + + + AES initialization failed + Échec d'initialisation AES + + + AES encrypt failed + Échec de chiffrement AES + + + Failed to store in Linux Keyring + Échec du stockage dans le trousseau de clés Linux + + + Polkit returned an error: %1 + Polkit a retourné une erreur : %1 + + + Could not locate key in keyring + Impossible de localiser la clé dans le trousseau + + + Could not read key in keyring + Impossible de lire la clé dans le trousseau + + + AES decrypt failed + Échec de déchiffrement AES + + + No Polkit authentication agent was available + Aucun agent d’authentification Polkit disponible + + + Polkit authorization failed + Échec d'autorisation Polkit + + + No Quick Unlock provider is available + Aucun fournisseur Quick Unlock disponible + + + Failed to init KeePassXC crypto. + Échec d’initialisation de la cryptographie de KeePassXC + + + Failed to encrypt key data. + Échec de chiffrement des données de la clé. + + + Failed to get Windows Hello credential. + Échec d’obtention des identifiants Windows Hello. + + + Failed to decrypt key data. + Échec de déchiffrement des données de la clé. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7770,18 +8686,6 @@ Noyau : %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - Exclure les entrées expirées du rapport - - - Show only entries which have URL set - Ne monter que les entrées qui ont défini leur URL - - - Show only entries which have browser settings in custom data - Ne montrer que les entrées qui ont des paramètres de navigateur dans leur données personnelles - Double-click entries to edit. Double-cliquer sur les entrées pour les modifier @@ -7840,23 +8744,31 @@ Noyau : %3 %4 Delete Entry(s)… - Supprimer l’entrée ?Supprimer les entrées ? + Supprimer l’entrée…Supprimer les entrées…Supprimer les entrées1… Exclude from reports Exclure des rapports + + Only show entries that have a URL + N’afficher que les entrées disposant d'une URL + + + Only show entries that have been explicitly allowed or denied + N’affichez que les entrées explicitement autorisées ou refusées + + + Show expired entries + Afficher les entrées expirées + + + (Expired) + (expirée) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - Exclure les entrées expirées du rapport - - - Also show entries that have been excluded from reports - Afficher aussi les entrées qui ont été exclues des rapports - Hover over reason to show additional details. Double-click entries to edit. Survolez la raison pour afficher des détails supplémentaires. Double-cliquez sur les entrées pour les modifier. @@ -7926,12 +8838,24 @@ Noyau : %3 %4 Delete Entry(s)… - Supprimer l’entrée ?Supprimer les entrées ? + Supprimer l’entrée…Supprimer les entrées…Supprimer les entrées… Exclude from reports Exclure des rapports + + Show expired entries + Afficher les entrées expirées + + + Show entries that have been excluded from reports + Afficher les entrées exclues des rapports + + + (Expired) + (expirée) + ReportsWidgetHibp @@ -8021,13 +8945,72 @@ Noyau : %3 %4 Delete Entry(s)… - Supprimer l’entrée ?Supprimer les entrées ? + Supprimer l’entrée…Supprimer les entrées…Supprimer les entrées… Exclude from reports Exclure des rapports + + ReportsWidgetPasskeys + + Export + Exporter + + + Import + Importer + + + List of entry URLs + Liste des URL d'entrées + + + Please wait, list of entries with Passkeys is being updated… + Veuillez patienter durant la mise à jour de la liste des entrées avec clés d’accès… + + + No entries with Passkeys. + Aucune entrée avec clés d’accès. + + + Title + Titre + + + Path + Chemin + + + Username + Nom d’utilisateur + + + URLs + URL + + + Edit Entry… + Modifier l'entrée... + + + Delete Entry(s)… + Supprimer l’entrée…Supprimer les entrées…Supprimer les entrées… + + + Relying Party + Tiers de confiance + + + Show expired entries + Afficher les entrées expirées + + + (Expired) + (expirée) + + ReportsWidgetStatistics @@ -8267,6 +9250,10 @@ Noyau : %3 %4 Search Help Chercher dans l’aide + + Save Search + Sauvegarder recherche + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8349,9 +9336,7 @@ Noyau : %3 %4 <html><head/><body><p><span style=" font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color - Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">Ce paramètre - n'outrepasse pas la désactivation des invites de la corbeille</span></p></body></html> - + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">Ce paramètre ne remplace pas les invites de désactivation de la corbeille</span></p></body></html> Confirm when clients request entry deletion @@ -8391,7 +9376,7 @@ Noyau : %3 %4 Save current changes to activate the plugin and enable editing of this section. - Enregistrer les changements actuels pour activer le greffon et permettre la modification de cette section. + Enregistrer les changements actuels pour activer l’extension et permettre la modification de cette section. @@ -8498,11 +9483,38 @@ Noyau : %3 %4 Exporter vers %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All - Tous + Clear Search + Effacer la recherche + + + All Entries + Toutes les entrées Expired @@ -8513,6 +9525,25 @@ Noyau : %3 %4 Mots de passe faibles + + TagView + + Remove Search + Supprimer la recherche + + + Remove Tag + Supprimer l’étiquette + + + Confirm Remove Tag + Confirmer la suppression de l'étiquette + + + Remove tag "%1" from all entries in this database? + Supprimer l'étiquette "%1" de toutes les entrées de cette base de données ? + + TotpDialog @@ -8525,7 +9556,7 @@ Noyau : %3 %4 Expires in <b>%n</b> second(s) - Expire dans <b>%n</b> secondeExpire dans <b>%n</b> secondes + Expire dans <b>%n</b> secondeExpire dans <b>%n</b> secondesExpire dans <b>%n</b> secondes @@ -8623,7 +9654,7 @@ Exemple : JBSWY3DPEHPK3PXP Are you sure you want to delete TOTP settings for this entry? - Voulez-vous vraiment supprimer les paramètres TOTP pour cette entrée ? + Voulez-vous vraiment supprimer les paramètres TOTP pour cette entrée ? @@ -8670,26 +9701,6 @@ Exemple : JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Commencez à enregistrer vos mots de passe en toute sécurité dans une base de données KeePassXC - - Create new database - Créer une nouvelle base de données - - - Open existing database - Ouvrir une base de données existante - - - Import from KeePass 1 - Importer de KeePass 1 - - - Import from 1Password - Importer de 1Password - - - Import from CSV - Importer d’un fichier CSV - Recent databases Bases de données récentes @@ -8702,6 +9713,18 @@ Exemple : JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Bienvenue sur KeePassXC %1 + + Create Database + + + + Open Database + + + + Import File + + WinUtils @@ -8718,31 +9741,8 @@ Exemple : JBSWY3DPEHPK3PXP Impossible d’assigner le raccourci global - - WindowsHello - - Failed to init KeePassXC crypto. - Échec d’initialisation de la cryptographie de KeePassXC - - - Failed to encrypt key data. - Échec de chiffrement des données de la clé. - - - Failed to get Windows Hello credential. - Échec d’obtention des identifiants Windows Hello. - - - Failed to decrypt key data. - Échec de déchiffrement des données de la clé. - - YubiKey - - %1 No interface, slot %2 - %1 Aucune interface, emplacement %2 - General: Général : @@ -8754,14 +9754,6 @@ Exemple : JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - Actualiser les jetons matériels - - - Refresh - Actualiser - Hardware key slot selection Sélection de l’emplacement de la clé matérielle @@ -8794,10 +9786,6 @@ Exemple : JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove Question-réponse définie, cliquez pour la modifier ou la supprimer - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>Si vous disposez d'une <a href="https://www.yubico.com/">YubiKey</a> ou <a href="https://onlykey.io">OnlyKey</a>, vous pouvez l’utiliser afin d'améliorer la sécurité.</p><p>La clé nécessite un emplacement défini comme <a href="https://www.yubico.com/products/services-software/challenge-response/">Question-réponse HMAC-SHA1</a>.</p> - Detecting hardware keys… Détection des clés matérielles… @@ -8806,28 +9794,21 @@ Exemple : JBSWY3DPEHPK3PXP No hardware keys detected Aucune clé matérielle n’a été détectée - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 emplacement(s) spécifié(s) invalide(s) - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] Question-réponse - Emplacement %3 - The YubiKey PCSC interface has not been initialized. L'interface PCSC YubiKey n'a pu être initialisée. - - Hardware key is currently in use. - La clé matérielle est en cours d'utilisation. - Could not find or access hardware key with serial number %1. Please present it to continue. Impossible de trouver ou d'accéder à la clé matérielle ayant le n° de série %1. Veuillez l'insérer pour continuer. @@ -8844,6 +9825,21 @@ Exemple : JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 Échec lors du question-réponse, erreur PCSC : %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + Pressez + + + Passive + USB Challenge-Response Key no interaction required + Passif + YubiKeyInterfaceUSB @@ -8851,14 +9847,6 @@ Exemple : JBSWY3DPEHPK3PXP Unknown Inconnu - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] Emplacement configuré - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] Question-réponse - Emplacement %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8873,10 +9861,6 @@ Exemple : JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. L'interface USB YubiKey n'a pu être initialisée. - - Hardware key is currently in use. - La clé matérielle est en cours d'utilisation. - Could not find hardware key with serial number %1. Please plug it in to continue. Impossible de trouver la clé matérielle dont le numéro de série est %1. Veuillez la connecter afin de poursuivre. @@ -8893,5 +9877,15 @@ Exemple : JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 Échec de question-réponse, l’erreur particulière était : %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_fr_CA.ts b/share/translations/keepassxc_fr_CA.ts index 837eefc61..8094d68b9 100644 --- a/share/translations/keepassxc_fr_CA.ts +++ b/share/translations/keepassxc_fr_CA.ts @@ -50,15 +50,15 @@ AccessControlDialog KeePassXC - Access Request - + KeePassXC - Demande d'accès Non-existing/inaccessible executable path. Please double-check the client is legit. - + Chemin d’exécutable inexistant ou inaccessible. Veuillez vérifier s'il s'agit réellement d'un client de confiance. <html><head/><body><p><span style=" font-weight:600;">%1 </span>is requesting access to the following entries:</p></body></html> - + <html><head/><body><p><span style=" font-weight:600;">%1 </span>demande l'accès aux entrées suivantes :</p></body></html> Name @@ -66,19 +66,23 @@ PID - + PID Executable - + Exécutable Command Line - + Ligne de commande Details - + Détails + + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Votre décision sera mémorisée pour la durée de fonctionnement du client qui effectue la demande et de KeePassXC. Remember @@ -88,24 +92,20 @@ Allow Selected Permettre les éléments sélectionnés - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - - Deny All && Future - + Tout refuser et dans le futur Allow All && &Future - + Tout accepter et dans le &futur AccessControlDialog::DenyButton Deny for this program - + Refuser pour ce programme @@ -116,11 +116,15 @@ Use Pageant - + Utiliser Pageant Use OpenSSH - + Utiliser OpenSSH + + + Use both agents + Utiliser les deux agents SSH_AUTH_SOCK override @@ -136,11 +140,11 @@ SSH_SK_PROVIDER value - + Valeur de SSH_SK_PROVIDER SSH_SK_PROVIDER override - + Substitution de SSH_SK_PROVIDER No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. @@ -150,10 +154,6 @@ SSH Agent connection is working! La connexion de l’agent SSH fonctionne. - - Use both agents - - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security Sécurité + + This setting cannot be enabled when minimize on unlock is enabled. + Ce paramètre ne peut pas être activé lorsque la fonction de minimisation de la fenêtre au déverrouillage est activée. + Access error for config file %1 Erreur d’accès pour le fichier de configuration %1 @@ -223,7 +227,7 @@ Select backup storage directory - + Sélectionner le dossier de sauvegarde @@ -256,6 +260,10 @@ Remember previously used databases Mémoriser les bases de données utilisées précédemment + + recent files + fichiers récents + Load previously open databases on startup Lors du démarrage, charger les bases de données ouvertes précédemment @@ -274,22 +282,22 @@ On database unlock, show entries that - + Lors du déverrouillage d’une base de données, montrer les entrées qui have expired On database unlock, show entries that... - + ont expiré days On database unlock, show entries that will expire within %1 days - + jours will expire within On database unlock, show entries that... - + expirera dans File Management @@ -317,31 +325,31 @@ Backup destination - + Destination de sauvegarde Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". - + Spécifie l’emplacement du fichier de sauvegarde de la base de données. Les occurrences de « {DB_FILENAME} » sont remplacées par le nom de fichier de la base de données sauvegardée sans extension. {TIME:<format>} est remplacé par l’heure de sauvegarde (voir https://doc.qt.io/qt-5/qdatetime.html#toString). Par défaut, <format>utilise le format « dd_MM_yyyy_hh-mm-ss ». {DB_FILENAME}.old.kdbx - + {DB_FILENAME}.ancienne.kdbx Choose... - + Choisir… Use alternative saving method (may solve problems with Dropbox, Google Drive, GVFS, etc.) - + Utiliser une méthode alternative de sauvegarde (peut résoudre des problèmes avec Dropbox, Google Drive, GVFS, etc.). Temporary file moved into place - + Fichier temporaire mis en place Directly write to database file (dangerous) - + Écrire directement dans le fichier de la base de données (dangereux) Entry Management @@ -408,6 +416,10 @@ Toolbar button style: Style des boutons de la barre d’outils : + + Show passwords in color + Afficher les mots de passe en couleur + Use monospaced font for notes Utiliser une police à espacement constant pour les notes @@ -454,7 +466,7 @@ Hide expired entries from Auto-Type - + Exclure les entrées expirés de la saisie automatique Re-lock previously locked database after performing Auto-Type @@ -491,7 +503,7 @@ Remember last typed entry for: - + Mémoriser la dernière entrée saisie pendant : @@ -536,7 +548,7 @@ Enable database quick unlock (Touch ID / Windows Hello) - + Activer le déverrouillage rapide de la base de données (Touch ID ou Windows Hello) Lock databases when session is locked or lid is closed @@ -568,11 +580,11 @@ Move entries to recycle bin without confirmation - + Déplacer les entrées vers la corbeille sans confirmation Enable double click to copy the username/password entry columns - + Activer le double-clic pour copier le nom d'utilisateur/mot de passe des colonnes d'entrées Privacy @@ -582,16 +594,20 @@ Use DuckDuckGo service to download website icons Utiliser le service DuckDuckGo pour télécharger les icônes de sites Web + + Hide TOTP in the entry preview panel + + AutoType The requested Auto-Type sequence cannot be used due to an error: - + La séquence de saisie automatique demandée ne peut pas être utilisée à cause d’une erreur : Auto-Type Error - + Erreur de saisie automatique Permission Required @@ -607,40 +623,45 @@ Invalid entry provided - + Entrée invalide fournie Bracket imbalance detected, found extra { or } - + Une disparité d’accolade a été détectée. Une « { » ou « } » supplémentaire a été trouvée Too many repetitions detected, max is %1: %2 - + Trop de répétitions ont été détectées. Le maximum est %1 : %2 Very slow key press detected, max is %1: %2 - + Un appui de touche très lent a été détecté. Le maximum est %1 : %2 Very long delay detected, max is %1: %2 - + Un pause très longue a été détectée. Le maximum est %1 : %2 + + + Entry does not have attribute for PICKCHARS: %1 + L'entrée n'a pas d'attribut pour PICKCHARS : %1 Invalid conversion type: %1 - + Type de conversion invalide : %1 Invalid conversion syntax: %1 - + Syntaxe de conversion invalide : %1 Invalid regular expression syntax %1 %2 - + Syntaxe d'expression régulière invalide %1 +%2 Invalid placeholder: %1 - + Espace réservé invalide : %1 @@ -685,19 +706,19 @@ AutoTypePlatformX11 Trying to send invalid keysym. - + Tentative d'envoi d'un keysym invalide. Sequence aborted: Caps Lock is on - + Séquence interrompue: le verrou des majuscule est activé Sequence aborted: Modifier keys held by user - + Séquence interrompue : touches de modification maintenues par l'utilisateur Unable to get valid keycode for key: - + Impossible d'obtenir un code d'identification valide pour la clé : @@ -708,7 +729,7 @@ Double click a row to perform Auto-Type or find an entry using the search: - + Double-cliquer sur une rangée pour effectuer une saisie automatique ou pour trouver une entrée via la recherche : <p>You can use advanced search queries to find any entry in your open databases. The following shortcuts are useful:<br/> @@ -717,15 +738,20 @@ Ctrl+1 - Type username<br/> Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> - + <p>Vous pouvez utiliser des requêtes de recherche avancées pour trouver une entrée dans vos bases de données ouvertes. Les raccourcis suivants sont utiles :<br/> +Ctrl+F - Activer ou désactiver la recherche dans la base de données<br/> +Ctrl+1 - Saisir le nom d’utilisateur<br/> +Ctrl+2 - Saisir le mot de passe<br/> +Ctrl+3 - Saisir le TOTP<br/> +Ctrl+4 - Utiliser le clavier virtuel (Windows seulement)</p> Search all open databases - + Rechercher dans toutes les bases de données ouvertes Search… - + Rechercher... Type Sequence @@ -749,11 +775,11 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Copy Username - + Copier le nom d’utilisateur Copy Password - + Copier le mot de passe Copy TOTP @@ -761,7 +787,7 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Use Virtual Keyboard - + Utiliser le clavier virtuel @@ -798,13 +824,13 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Disable for this site Désactiver pour ce site + + Undo + + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser Enregistrer l’entrée - Ok Valider @@ -819,13 +845,69 @@ Please select the correct database for saving credentials. Plusieurs bases de données sont ouvertes. Veuillez sélectionner la base de données souhaitée pour enregistrer les identifiants. + + KeePassXC - Select Database + + + + + BrowserPasskeysConfirmationDialog + + Cancel + Annuler + + + Update + + + + Authenticate + + + + Register new + + + + Register + + + + Timeout in <b>%n</b> seconds... + + + + Do you want to register Passkey for: + + + + Existing Passkey found. +Do you want to register a new Passkey for: + + + + Select the existing Passkey and press Update to replace it. + + + + Authenticate Passkey credentials for: + + + + Relying Party: %1 + + + + Username: %1 + + + + KeePassXC - Passkey credentials + + BrowserService - - KeePassXC: Create a new group - KeePassXC : Créer un nouveau groupe - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -834,10 +916,6 @@ Do you want to create this group? Voulez-vous créer ce groupe ? - - KeePassXC: New key association request - KeePassXC : Nouvelle demande d’association de clé - You have received an association request for the following database: %1 @@ -854,79 +932,64 @@ chrome-laptop Save and allow access Enregistrer et permettre l’accès - - KeePassXC: Overwrite existing key? - KeePassXC : Remplacer la clé existante? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? Une clé de chiffrement partagée nommée « %1 » existe déjà. Voulez-vous la remplacer? - - KeePassXC: Update Entry - KeePassXC : Mettre l’entrée à jour - Do you want to update the information in %1 - %2? Voulez-vous mettre à jour les renseignements dans %1 - %2 ? - - KeePassXC: Delete entry - - A request for deleting entry "%1" has been received. Do you want to delete the entry? + Une requête pour supprimer l'entrée « %1 » a été reçue. +Voulez-vous la supprimer ? + + + + %1 (Passkey) - Converting attributes to custom data… - Conversion des attributs en données personnalisées… + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + - Abort - Abandonner + KeePassXC - Create a new group + - KeePassXC: Converted KeePassHTTP attributes - KeePassXC : Attributs KeePassHTTP convertis + Disable + Désactiver - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Les attributs de %1 entrée(s) ont été convertis avec succès. -%2 clés ont été déplacées vers les données personnalisées. - - - Successfully moved %n keys to custom data. - %n clé a été déplacée avec succès vers les données personnalisées.%n clés ont été déplacées avec succès vers les données personnalisées. + KeePassXC - Overwrite existing key? + - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC : Aucune entrée avec des attributs KeePassHTTP n’a été trouvée + KeePassXC - Update Passkey + - The active database does not contain an entry with KeePassHTTP attributes. - La base de données active ne comprend aucune entrée avec des attributs KeePassHTTP. + KeePassXC - Update Entry + - Don't show this warning again - Ne plus afficher cet avertissement + KeePassXC - Delete entry + - KeePassXC: Legacy browser integration settings detected - KeePassXC : Des paramètres hérités d’intégration aux navigateurs ont été détectés + KeePassXC - New key association request + - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Vos paramètres KeePassXC-Browser doivent être intégrés aux paramètres de la base de données. -Cela est nécessaire pour conserver les connexions actuelles de votre navigateur. -Voulez-vous migrer vos paramètres maintenant ? + Passkey + @@ -1134,14 +1197,6 @@ Voulez-vous migrer vos paramètres maintenant ? Please see special instructions for browser extension use below Veuillez consulter ci-dessous les instructions spéciales de l’extension pour navigateurs - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Erreur :</b> L’emplacement de mandataire personnalisé est introuvable. <br/>L’intégration aux navigateurs NE FONCTIONNERA PAS sans l’application mandataire. - - - <b>Warning:</b> The following options can be dangerous! - <b>Avertissement:</b> Les options suivantes peuvent être dangereuses - Executable Files Fichiers exécutables @@ -1158,6 +1213,38 @@ Voulez-vous migrer vos paramètres maintenant ? Select native messaging host folder location Sélectionner l’emplacement du dossier de l’hôte de messagerie native + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + + + + <b>Warning:</b> Only adjust these settings if necessary. + + + + The custom proxy location does not exist. + + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1180,14 +1267,6 @@ Voulez-vous migrer vos paramètres maintenant ? CsvImportWidget - - Import CSV fields - Importer les champs CSV - - - filename - nom de fichier - size, rows, columns taille, lignes, colonnes @@ -1296,51 +1375,30 @@ Voulez-vous migrer vos paramètres maintenant ? Column %1 Colonne %1 - - Imported from CSV file - Importé d’un fichier CSV - - - Original data: - Données originales : - - - Error(s) detected in CSV file! - Des erreurs ont été détectées dans le fichier CSV - [%n more message(s) skipped] - [%n autre message a été ignoré][%n autres messages ont été ignorés] + [%n autre message a été ignoré][%n autres messages ont été ignorés][%n autres messages ont été ignorés] - Error - Erreur + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - Importation CSV : le scripteur comporte des erreurs : -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n octet%n octets - %n row(s) - %n ligne%n lignes + CSV row count + %n ligne%n lignes%n lignes %n column(s) - %n colonne%n colonnes + CSV column count + %n colonne%n colonnes%n colonnes @@ -1386,7 +1444,7 @@ La base de données de sauvegarde est située sur %2 Key not transformed. This is a bug, please report it to the developers. - + La clé n'a pas été transformée. Il s'agit d'un bogue, veuillez le signaler aux développeurs. Recycle Bin @@ -1414,39 +1472,10 @@ La base de données de sauvegarde est située sur %2 Password field Champ de mot de passe - - Enter Additional Credentials (if any): - Saisissez des identifiants supplémentaires (si définis) : - - - Key File: - Fichier clé : - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - - - - Key file help - Aide fichier clé - Hardware key slot selection Sélection de l’emplacement de la clé matérielle - - Hardware Key: - Clé matérielle : - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - - - - Hardware key help - Aide sur les clés matérielles - Key file to unlock the database Fichier clé pour déverrouiller la base de données @@ -1459,17 +1488,9 @@ La base de données de sauvegarde est située sur %2 Browse… Parcourir... - - Refresh hardware tokens - Actualiser les jetons matériels - - - Refresh - Actualiser - Unlock Database - + Déverrouiller la base de données Cancel @@ -1477,15 +1498,15 @@ La base de données de sauvegarde est située sur %2 Unlock - + Déverrouiller Please present or touch your YubiKey to continue… - + Veuillez présenter ou toucher votre YubiKey pour continuer… Database Version Mismatch - + Version de la base de données incohérente The database you are trying to open was most likely @@ -1499,11 +1520,11 @@ We recommend you update your KeePassXC installation. Open database anyway - + Ouvrir quand même la base de données Database unlock canceled. - + Déverrouillage de la base de données annulé. Unlock failed and no password given @@ -1523,14 +1544,6 @@ Afin d’empêcher que cette erreur survienne, vous devez accéder à « Param Retry with empty password Réessayer sans mot de passe - - Failed to authenticate with Windows Hello - - - - Failed to authenticate with Touch ID - - Failed to open key file: %1 Échec d’ouverture du fichier clé : %1 @@ -1564,22 +1577,60 @@ Afin d’empêcher que cette erreur survienne, vous devez accéder à « Param Impossible d’utiliser une base de données comme fichier clé - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Vous ne pouvez pas utiliser la base de données actuelle comme fichier clé. -Si vous n’avez pas de fichier clé, laissez le champ vide. + authenticate to access the database + - Detecting hardware keys… - Détection des clés matérielles… + Failed to authenticate with Quick Unlock: %1 + - No hardware keys detected - Aucune clé matérielle n’a été détectée + Select Key File: + - Select hardware key… - Sélectionner une clé matérielle… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1591,10 +1642,6 @@ Si vous n’avez pas de fichier clé, laissez le champ vide. DatabaseSettingsDialog - - Advanced Settings - Paramètres avancés - General Général @@ -1617,7 +1664,7 @@ Si vous n’avez pas de fichier clé, laissez le champ vide. Maintenance - + Maintenance @@ -1626,18 +1673,6 @@ Si vous n’avez pas de fichier clé, laissez le champ vide. KeePassXC-Browser settings Paramètres de KeePassXC-Browser - - Convert KeePassHTTP data - - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - - - - Refresh database root group ID - Actualiser l’ID du groupe racine de la base de données - Disconnect all browsers Déconnecter tous les navigateurs @@ -1646,6 +1681,10 @@ Si vous n’avez pas de fichier clé, laissez le champ vide. Forget all site-specific settings on entries Oublier tous les paramètres d’entrée propres aux sites + + Refresh database root group ID + Actualiser l’ID du groupe racine de la base de données + Stored keys Clés enregistrées @@ -1694,21 +1733,13 @@ This may prevent connection to the browser plugin. Voulez-vous vraiment déconnecter tous les navigateurs? Cela pourrait empêcher la connexion avec l’extension pour navigateurs. - - KeePassXC: No keys found - KeePassXC : Aucune clé n’a été trouvée - No shared encryption keys found in KeePassXC settings. Aucune clé de chiffrement partagée n’a été trouvée dans les paramètres de KeePassXC. - - KeePassXC: Removed keys from database - KeePassXC : Les clés ont été supprimées de la base de données - Successfully removed %n encryption key(s) from KeePassXC settings. - %n clé de chiffrement a été supprimée avec succès des paramètres de KeePassXC.%n clés de chiffrement ont été supprimées avec succès des paramètres de KeePassXC. + %n clé de chiffrement a été supprimée avec succès des paramètres de KeePassXC.%n clés de chiffrement ont été supprimées avec succès des paramètres de KeePassXC.%n clés de chiffrement ont été supprimées avec succès des paramètres de KeePassXC. Do you really want forget all site-specific settings on every entry? @@ -1723,31 +1754,14 @@ Permissions to access entries will be revoked. Abort Abandonner - - KeePassXC: Removed permissions - KeePassXC : Les autorisations ont été supprimées - Successfully removed permissions from %n entry(s). - Les autorisations d’%n entrée ont été supprimées avec succès.Les autorisations de ’%n entrées ont été supprimées avec succès. - - - KeePassXC: No entry with permissions found! - KeePassXC : Aucune entrée avec autorisation n’a été trouvée + Les autorisations d’%n entrée ont été supprimées avec succès.Les autorisations de ’%n entrées ont été supprimées avec succès.Les autorisations de ’%n entrées ont été supprimées avec succès. The active database does not contain an entry with permissions. La base de données active ne comprend aucune entrée avec des autorisations. - - Move KeePassHTTP attributes to custom data - Déplacer les attributs KeePassHTTP vers les données personnalisées - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - - Refresh database ID Actualiser l’ID de la base de données @@ -1758,12 +1772,32 @@ This is only necessary if your database is a copy of another and the browser ext Voulez-vous vraiment actualiser l’ID de la base de données? Cela n’est nécessaire que si votre base de données est la copie d’une autre et que l’extension pour navigateurs ne peut pas se connecter. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + + + + No keys found + + + + Removed keys from database + + + + Removed permissions + + + + No entry with permissions found! + + DatabaseSettingsWidgetDatabaseKey Add additional protection… - + Ajouter une protection supplémentaire… No password set @@ -1797,6 +1831,18 @@ Voulez-vous vraiment poursuivre sans mot de passe? Failed to change database credentials Échec de changement des identifiants de la base de données + + Weak password + Le mot de passe est faible + + + You must enter a stronger password to protect your database. + + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + + DatabaseSettingsWidgetEncryption @@ -1804,14 +1850,6 @@ Voulez-vous vraiment poursuivre sans mot de passe? Decryption Time: Temps de déchiffrement : - - Change existing decryption time - Changer le temps de déchiffrement existant - - - Change - Changer - Decryption time in seconds Temps de déchiffrement en secondes @@ -1830,11 +1868,11 @@ Voulez-vous vraiment poursuivre sans mot de passe? Format cannot be changed: Your database uses KDBX 4 features - + Le format ne peut être modifié: votre base de données utilise des fonctionnalités KDBX 4 Unless you need to open your database with other programs, always use the latest format. - + À moins que vous souhaitiez ouvrir votre base de données avec d'autres programmes, utilisez toujours le format le plus récent. Encryption Algorithm: @@ -1886,16 +1924,11 @@ Voulez-vous vraiment poursuivre sans mot de passe? KDBX 4 (recommended) - + KDBX 4 (recommandé) KDBX 3 - - - - unchanged - Database decryption time is unchanged - inchangé + KDBX 3 Number of rounds too high @@ -1938,12 +1971,24 @@ If you keep this number, your database will not be protected from brute force at MiB Abbreviation for Mebibytes (KDF settings) - MioMio + MioMioMio thread(s) Threads for parallel execution (KDF settings) - fil d’exécutionfils d’exécution + fil d’exécutionfils d’exécutionfils d’exécution + + + Encryption Settings: + + + + Basic + + + + Advanced + Avancé @@ -2003,18 +2048,10 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry Nombre maximal d’éléments historiques par entrée - - Max. history items: - Nombre maximal d’éléments d’historique : - Maximum size of history per entry Taille maximale de l’historique par entrée - - Max. history size: - Taille maximale de l’historique : - MiB Mio @@ -2045,6 +2082,55 @@ Cette action est irréversible. (old) (ancien) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + + + + Limit the amount of history items per entry to: + + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + + + + Limit the total size of history items per entry to: + + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + + + + Autosave delay since last change + + + + Autosave delay + + + + Autosave delay since last change in minutes + + + + min + min + + + Autosave delay since last change checkbox + + DatabaseSettingsWidgetKeeShare @@ -2082,35 +2168,35 @@ Cette action est irréversible. DatabaseSettingsWidgetMaintenance Manage Custom Icons - + Gérer les icônes personnalisées Delete selected icon(s) - + Supprimer la ou les icônes sélectionnées Delete all custom icons not in use by any entry or group - + Supprimer toutes les icônes personnalisées non utilisées par les entrées ou les groupes Purge unused icons - + Nettoyer les icônes inutilisées Confirm Deletion - + Confirmer la suppression At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? - + Au moins une icône de la sélection est actuellement utilisée par une entrée ou un groupe. Les icônes affectées aux entrées et aux groupes seront remplacées par l'icône par défaut. Êtes-vous sûr de vouloir supprimer les icônes actuellement utilisées? Custom Icons Are In Use - + Des icônes personnalisées sont utilisées All custom icons are in use by at least one entry or group. - + Toutes les icônes personnalisées sont actuellement utilisées par une entrée ou un groupe. Purged Unused Icons @@ -2118,7 +2204,7 @@ Cette action est irréversible. Purged %n icon(s) from the database. - + %n icône nettoyée de la base de données.%n icônes nettoyées de la base de données.%n icônes nettoyées de la base de données. @@ -2172,26 +2258,10 @@ C’est très certainement un bogue, veuillez le signaler aux développeurs.CSV file Fichier CSV - - Select CSV file - Sélectionner un fichier CSV - Merge database Fusionner la base de données - - KeePass 1 database - Base de données KeePass 1 - - - Open KeePass 1 database - Ouvrir une base de données KeePass 1 - - - Open OPVault - Ouvrir OPVault - Export database to CSV file Exporter la base de données vers un fichier CSV @@ -2204,6 +2274,18 @@ C’est très certainement un bogue, veuillez le signaler aux développeurs.Writing the HTML file failed. Échec d’écriture du fichier HTML. + + Export database to XML file + Exporter la base de données dans un fichier XML + + + XML file + Fichier XML + + + Writing the XML file failed + L'écriture du fichier XML a échoué + Export Confirmation Confirmation de l’exportation @@ -2212,15 +2294,6 @@ C’est très certainement un bogue, veuillez le signaler aux développeurs.You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? Vous êtes sur le point d’exporter votre base de données vers un fichier non chiffré. Vos mots de passe et renseignements délicats seront vulnérables. Voulez-vous vraiment poursuivre ? - - New Database - Nouvelle base de données - - - %1 [New Database] - Database tab name modifier - %1 [nouvelle base de données] - %1 [Locked] Database tab name modifier @@ -2230,24 +2303,24 @@ C’est très certainement un bogue, veuillez le signaler aux développeurs. DatabaseWidget - Database Tags + Searches and Tags Searching… - + Recherche... Shared group… - + Groupe partagé… Confirm Auto-Type - + Confirmer la saisie automatique Perform Auto-Type into the previously active window? - + Effectuer la saisie automatique dans la fenêtre active précédemment ? Execute command? @@ -2281,6 +2354,10 @@ C’est très certainement un bogue, veuillez le signaler aux développeurs.Expired entries + + Entries expiring within %1 day(s) + + No current database. Aucune base de données actuelle. @@ -2305,6 +2382,18 @@ C’est très certainement un bogue, veuillez le signaler aux développeurs.No Results Il n’y a aucun résultat + + Save + Enregistrer + + + Enter a unique name or overwrite an existing search from the list: + + + + Save Search + + Lock Database? Verrouiller la base de données? @@ -2395,9 +2484,14 @@ Désactiver les enregistrements sécurisés et réessayer? Could not find database file: %1 Impossible de trouver le fichier de la base de données : %1 - - Entries expiring within %1 day(s) - + + New Database + Nouvelle base de données + + + %1 [New Database] + Database tab name modifier + %1 [nouvelle base de données] @@ -2536,21 +2630,21 @@ Would you like to correct it? Hide Cacher + + %n hour(s) + %n heure%n heures%n heures + %n week(s) - %n semaine%n semaine(s) + %n semaine%n semaine(s)%n semaine(s) %n month(s) - %n mois%n mois + %n mois%n mois%n mois %n year(s) - % an%n an(s) - - - %n hour(s) - + % an%n an(s)%n an(s) @@ -2670,10 +2764,20 @@ Would you like to correct it? Add new window association Ajouter une nouvelle association de fenêtre + + + + Add item + + + Remove selected window association Supprimer l’association de fenêtre sélectionnée + + - + Remove item + - + Window title: Titre de la fenêtre : @@ -2698,16 +2802,6 @@ Would you like to correct it? Custom Auto-Type sequence for this window Séquence personnalisée de saisie automatique pour cette fenêtre - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2809,22 +2903,10 @@ Would you like to correct it? Notes field Champ de note - - Toggle the checkbox to reveal the notes section. - Cochez la case pour révéler la section des notes. - Username field Champ de nom d’utilisateur - - Toggle notes visible - Activer ou désactiver la visibilité des notes - - - Notes: - Notes : - Expiration field Champ d’expiration @@ -2841,14 +2923,6 @@ Would you like to correct it? Presets Préréglages - - Password: - Mot de passe : - - - URL: - URL : - Url field Champ d’URL @@ -2857,18 +2931,10 @@ Would you like to correct it? Download favicon for URL Télécharger une favoricône pour l’URL - - Title: - Titre : - Title field Champ de titre - - Username: - Nom d’utilisateur : - Password field Champ de mot de passe @@ -2878,15 +2944,39 @@ Would you like to correct it? Activer ou désactiver l’expiration - Expires: - Expire le : + Tags list + Liste d’étiquettes - Tags: + &Username: - Tags list + &Title: + + + + &Password: + + + + UR&L: + + + + &Notes: + + + + Toggle notes visibility + + + + T&ags: + + + + &Expires: @@ -2928,19 +3018,6 @@ Would you like to correct it? Private key Clé privée - - External file - Fichier externe - - - Browser for key file - Rechercher un fichier clé - - - Browse… - Button for opening file dialog - Parcourir... - Attachment Fichier joint @@ -2957,6 +3034,23 @@ Would you like to correct it? Remove from agent Retirer de l’agent + + External file + Fichier externe + + + Browser for key file + Rechercher un fichier clé + + + Browse… + Button for opening file dialog + Parcourir... + + + Generate + Générer + Select attachment file Sélectionner une fichier joint @@ -2992,10 +3086,6 @@ Would you like to correct it? Icon Icône - - Browser Integration - Intégration aux navigateurs - Properties Propriétés @@ -3012,6 +3102,10 @@ Would you like to correct it? Group has unsaved changes + + Browser Integration + Intégration aux navigateurs + Enable Activer @@ -3027,10 +3121,6 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - Modifier le groupe - These settings affect to the group's behaviour with the browser extension. @@ -3067,6 +3157,22 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups + + Omit WWW subdomain from matching: + Ignorer le sous-domaine WWW dans la correspondance: + + + Omit WWW subdomain from matching toggle for this and sub groups + Ne pas utiliser l'authentification HTTP standard pour ce groupe et ses sous-groupes + + + Restrict matching to given browser key: + + + + Restrict matching to given browser key toggle for this and sub groups + + EditGroupWidgetKeeShare @@ -3252,15 +3358,15 @@ Supported extensions are: %1. Choose icon… - + Choisir une icône... Set the URL to use to search for a favicon - + Définir l'URL à utiliser pour chercher une favicône Favicon URL - + URL de la favicône Download favicon for URL @@ -3276,7 +3382,7 @@ Supported extensions are: %1. Apply icon to… - + Appliquer l'icône à... Apply to this group only @@ -3298,10 +3404,6 @@ Supported extensions are: %1. Unable to fetch favicon. Impossible de récupérer la favoricône - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Vous pouvez activer le service d’icônes de sites Web de DuckDuckGo dans Outils > Paramètres > Sécurité - Existing icon selected. L’icône existante a été sélectionnée. @@ -3320,7 +3422,7 @@ Supported extensions are: %1. Successfully loaded %1 of %n icon(s) - %1 icône d’un total de %n a été chargée avec succès%1 icône(s) d’un total de %n ont été chargées avec succès + %1 icône d’un total de %n a été chargée avec succès%1 icône(s) d’un total de %n ont été chargées avec succès%1 icône(s) d’un total de %n ont été chargées avec succès No icons were loaded @@ -3328,11 +3430,15 @@ Supported extensions are: %1. %n icon(s) already exist in the database - %n icône existe déjà dans la base de données%n icônes existent déjà dans la base de données + %n icône existe déjà dans la base de données%n icônes existent déjà dans la base de données%n icônes existent déjà dans la base de données The following icon(s) failed: - Échec de l’icône suivante :Échec des icônes suivantes : + Échec de l’icône suivante :Échec des icônes suivantes :Échec des icônes suivantes : + + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + @@ -3414,7 +3520,7 @@ This may cause the affected plugins to malfunction. EntryAttachments Cannot open file "%1" - + Impossible d’ouvrir le fichier "%1" @@ -3460,7 +3566,7 @@ This may cause the affected plugins to malfunction. Rename - + Renommer Open selected attachment @@ -3488,7 +3594,7 @@ This may cause the affected plugins to malfunction. Are you sure you want to remove %n attachment(s)? - Voulez-vous vraiment supprimer %n fichier joint ?Voulez-vous vraiment supprimer %n fichier(s) joint(s)? + Voulez-vous vraiment supprimer %n fichier joint ?Voulez-vous vraiment supprimer %n fichier(s) joint(s)?Voulez-vous vraiment supprimer %n fichier(s) joint(s)? Save attachments @@ -3531,11 +3637,12 @@ This may cause the affected plugins to malfunction. %1 Impossible d’ouvrir le fichier : %1Impossible d’ouvrir les fichiers : +%1Impossible d’ouvrir les fichiers : %1 Confirm Overwrite Attachment - + Confirmer l’écrasement du fichier joint Attachment "%1" already exists. @@ -3594,7 +3701,7 @@ Error: %1 Age - + Âge Difference @@ -3768,6 +3875,10 @@ Error: %1 Has TOTP A un TOTP + + Background Color + + EntryPreviewWidget @@ -3788,8 +3899,8 @@ Error: %1 Mot de passe - Notes - Notes + URL + URL Expiration @@ -3801,15 +3912,15 @@ Error: %1 Tags list - + Liste d’étiquettes Username Nom d’utilisateur - URL - URL + Notes + Notes Advanced @@ -3859,6 +3970,10 @@ Error: %1 Never Jamais + + Double click to copy value + + Enabled Activé @@ -3867,6 +3982,10 @@ Error: %1 Disabled Désactivé + + Double click to copy to clipboard + + EntryURLModel @@ -3874,6 +3993,10 @@ Error: %1 Invalid URL L’URL est invalide + + Duplicate URL + + EntryView @@ -3889,6 +4012,10 @@ Error: %1 Reset to defaults Réinitialiser aux valeurs par défaut + + + %1 entry(s)... + + ExportDialog @@ -3908,15 +4035,15 @@ This will leave your passwords and sensitive information vulnerable! database order - + ordre de la base de données name (ascending) - + nom (croissant) name (descending) - + nom (décroissant) unknown @@ -3997,7 +4124,7 @@ This will leave your passwords and sensitive information vulnerable! %n Entry(s) was used by %1 %1 is the name of an application - %n entrée était utilisée par %1%n entrées étaient utilisées par %1 + %n entrée était utilisée par %1%n entrées étaient utilisées par %1%n entrées étaient utilisées par %1 @@ -4008,7 +4135,7 @@ This will leave your passwords and sensitive information vulnerable! Non-existing/inaccessible executable path. Please double-check the client is legit. - + Chemin d’exécutable inexistant ou inaccessible. Veuillez vérifier s'il s'agit réellement d'un client de confiance. @@ -4085,11 +4212,11 @@ Vous pouvez activer le service d’icônes de sites Web de DuckDuckGo dans la se Please wait, processing entry list… - + Veuillez patienter, traitement de la liste des entrées... Downloading… - + Téléchargement... Ok @@ -4105,6 +4232,147 @@ Vous pouvez activer le service d’icônes de sites Web de DuckDuckGo dans la se Downloading favicons (%1/%2)… + Téléchargement des favicons (%1/%2)... + + + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Page d’aide + + + Entry count: %1 + + + + Group + Groupe + + + Title + Titre + + + Username + Nom d’utilisateur + + + Password + Mot de passe + + + Url + + + + + ImportWizardPageSelect + + Form + Formulaire + + + Import File Selection + + + + Password: + Mot de passe : + + + Key File: + Fichier clé : + + + Browse… + Parcourir... + + + Import Into: + + + + New Database + Nouvelle base de données + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Ouvrir OPVault + + + Select import file + + + + All files + Tous les fichiers + + + Key files + Fichiers clés + + + Select key file + Sélectionner un fichier clé + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database @@ -4539,17 +4807,6 @@ Ligne %2, colonne %3 Échec d’ouverture de la clé privée - - KeePass1OpenWidget - - Import KeePass1 Database - Importer une base de données KeePass 1 - - - Unable to open the database. - Impossible d’ouvrir la base de données. - - KeePass1Reader @@ -4832,7 +5089,7 @@ Message : %2 Key File set, click to change or remove - + Fichier clé défini, cliquez pour le changer ou l'effacer <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out.</p> @@ -4906,10 +5163,6 @@ Voulez-vous vraiment poursuivre avec ce fichier? &Recent Databases Bases de données &récentes - - &Import - &Importer - &Export &Exporter @@ -4930,6 +5183,10 @@ Voulez-vous vraiment poursuivre avec ce fichier? TOTP TOTP + + Tags + + &Groups &Groupes @@ -4974,34 +5231,18 @@ Voulez-vous vraiment poursuivre avec ce fichier? &New Database… &Nouvelle base de données… - - Create a new database - Créer une nouvelle base de données - &Merge From Database… Fusio&nner à partir d’une base de données… - - Merge from another KDBX database - Fusionner d’une autre base de données KDBX - &New Entry… &Nouvelle entrée… - - Add a new entry - Ajouter une nouvelle entrée - &Edit Entry… &Modifier l’entrée… - - View or edit entry - Voir ou modifier l’entrée - &Delete Entry… &Supprimer l’entrée… @@ -5010,10 +5251,6 @@ Voulez-vous vraiment poursuivre avec ce fichier? &New Group… &Nouveau groupe… - - Add a new group - Ajouter un nouveau groupe - &Edit Group… &Modifier le groupe… @@ -5046,18 +5283,10 @@ Voulez-vous vraiment poursuivre avec ce fichier? Database &Reports… - - Statistics, health check, etc. - Statistiques, bilan de santé, etc. - &Database Settings… &Paramètres de la base de données… - - Database settings - Paramètres de la base de données - &Clone Entry… &Cloner l’entrée… @@ -5066,34 +5295,18 @@ Voulez-vous vraiment poursuivre avec ce fichier? Move u&p Déplacer vers le &haut - - Move entry one step up - Déplacer l’entrée d’un niveau vers le haut - Move do&wn Déplacer vers le &bas - - Move entry one step down - Déplacer l’entrée d’un niveau vers le bas - Copy &Username Copier le nom d’&utilisateur - - Copy username to clipboard - Copier le nom d’utilisateur dans le presse-papiers - Copy &Password Copier le mot de &passe - - Copy password to clipboard - Copier le mot de passe dans le presse-papiers - &Settings &Paramètres @@ -5127,25 +5340,13 @@ Voulez-vous vraiment poursuivre avec ce fichier? &Titre - Copy title to clipboard - Copier le titre dans le presse-papiers - - - &URL - &URL - - - Copy URL to clipboard - Copier l’URL dans le presse-papiers + Copy &URL + &Notes &Notes - - Copy notes to clipboard - Copier les notes dans le presse-papiers - &CSV File… Fichier &CSV… @@ -5158,26 +5359,14 @@ Voulez-vous vraiment poursuivre avec ce fichier? KeePass 1 Database… Base de données KeePass 1… - - Import a KeePass 1 database - Importer une base de données KeePass 1 - 1Password Vault… Coffre 1Password… - - Import a 1Password Vault - Importer un coffre 1Password - CSV File… Fichier CSV… - - Import a CSV file - Importer un fichier CSV - Show TOTP Afficher le TOTP @@ -5194,6 +5383,10 @@ Voulez-vous vraiment poursuivre avec ce fichier? Copy &TOTP Copier le &TOTP + + Copy Password and TOTP + + E&mpty recycle bin &Vider la corbeille @@ -5218,10 +5411,6 @@ Voulez-vous vraiment poursuivre avec ce fichier? &Online Help &Aide en ligne - - Go to online documentation - Accéder à la documentation en ligne - &User Guide Guide d’&utilisation @@ -5290,6 +5479,10 @@ Voulez-vous vraiment poursuivre avec ce fichier? Clone Group... Cloner le groupe... + + &XML File… + + Clear history Effacer l’historique @@ -5318,9 +5511,13 @@ Expect some bugs and minor issues, this version is meant for testing purposes. + + No Tags + + Restore Entry(s) - + Settings @@ -5346,9 +5543,13 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC Fermer KeePassXC + + %1 Entry(s) + + Please present or touch your YubiKey to continue… - + Veuillez présenter ou toucher votre YubiKey pour continuer… Restart Application? @@ -5358,6 +5559,274 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? Pour appliquer ce paramètre, vous devez redémarrer l’application. Voulez-vous la démarrer maintenant ? + + Allow Screen Capture + + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + + + + Import Passkey + + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + Modifier l’entrée + + + Delete Entry + + + + Create Group + + + + Edit Group + Modifier le groupe + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + Copier le nom d’utilisateur + + + Copy Password + Copier le mot de passe + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + Importer une base de données KeePass 1 + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + ManageDatabase @@ -5394,7 +5863,7 @@ We recommend you use the AppImage available on our downloads page. Reset - + Réinitialiser Reset any remembered decisions for this application @@ -5415,26 +5884,6 @@ We recommend you use the AppImage available on our downloads page. Overwriting %1 [%2] Remplacement de %1 [%2] - - older entry merged from database "%1" - ancienne entrée fusionnée de la base de données « %1 » - - - Adding backup for older target %1 [%2] - Ajout d’une sauvegarde pour l’ancienne cible %1 [%2] - - - Adding backup for older source %1 [%2] - Ajout d’une sauvegarde pour l’ancienne source %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Ré-application de l’ancienne entrée cible sur la nouvelle source %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Ré-application de l’ancienne entrée source sur la nouvelle cible %1 [%2] - Synchronizing from newer source %1 [%2] Synchronisation avec une source plus récente %1 [%2] @@ -5494,14 +5943,6 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Vous pouvez régler ici les paramètres de chiffrement de la base de données. Ne vous inquiétez pas, vous pourrez les changer ultérieurement dans les paramètres de la base de données. - - Advanced Settings - Paramètres avancés - - - Simple Settings - Paramètres simples - NewDatabaseWizardPageDatabaseKey @@ -5582,15 +6023,6 @@ We recommend you use the AppImage available on our downloads page. %1 octets de texte en clair étaient attendus, %2 ont été trouvés - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - La base de données lue n’a généré aucune instance -%1 - - OpVaultReader @@ -5664,6 +6096,10 @@ We recommend you use the AppImage available on our downloads page. Unknown cipher: %1 Chiffrement inconnu : %1 + + AES-256/GCM is currently not supported + + Passphrase is required to decrypt this key Une phrase de passe est exigée pour déchiffrer cette clé @@ -5730,26 +6166,174 @@ We recommend you use the AppImage available on our downloads page. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Les mots de passe ne correspondent pas + SSH Key Generator + - Passwords match so far - Les mots de passe correspondent jusqu’à présent + Type + Type - Toggle Password (%1) - Activer ou désactiver le mot de passe (%1) + Bits + - Generate Password (%1) - Générer un mot de passe (%1) + Comment + Commentaire + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + - Warning: Caps Lock enabled! - Avertissement: Les majuscules sont verrouillées + Export the following Passkey entries. + + + + Filenames will be generated with title and .passkey file extension. + + + + Export entries + + + + Export Selected + + + + Cancel + Annuler + + + Export to folder + + + + + PasskeyExporter + + KeePassXC: Passkey Export + + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + + Cannot open file + + + + Cannot open file "%1" for writing. + + + + Cannot write to file + + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + + + + Username: %1 + + + + Group + Groupe + + + Database + + + + Import Passkey + + + + Import + Importer + + + Cancel + Annuler + + + Import the following Passkey: + + + + Entry + Entrée + + + Import the following Passkey to this entry: + + + + Create new entry + + + + Default Passkeys group (Imported Passkeys) + + + + Relying Party: %1 + + + + + PasskeyImporter + + Passkey file + + + + All files + Tous les fichiers + + + Open Passkey file + + + + Cannot open file + + + + Cannot open file "%1" for reading. + + + + Cannot import Passkey + + + + Cannot import Passkey file "%1". Data is missing. + + + + Cannot import Passkey file "%1". Private key is missing or malformed. + + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + @@ -5960,7 +6544,7 @@ We recommend you use the AppImage available on our downloads page. Character Count: - + Nombre de caractères: Word Case: @@ -5968,11 +6552,11 @@ We recommend you use the AppImage available on our downloads page. Delete selected wordlist - + Supprimer la liste de mots personnalisés Add custom wordlist - + Ajouter une liste de mots personnalisés character @@ -6014,51 +6598,6 @@ We recommend you use the AppImage available on our downloads page. Entropy: %1 bit Entropie : %1 bits - - Confirm Delete Wordlist - - - - Do you really want to delete the wordlist "%1"? - - - - Failed to delete wordlist - - - - Wordlists - - - - All files - Tous les fichiers - - - Select Custom Wordlist - - - - Overwrite Wordlist? - - - - Wordlist "%1" already exists as a custom wordlist. -Do you want to overwrite it? - - - - Failed to add wordlist - - - - Logograms - Logogrammes - - - Special Characters - Caractères spéciaux - Password Quality: %1 Qualité du mot de passe : %1 @@ -6083,6 +6622,102 @@ Do you want to overwrite it? Password quality Excellent + + Confirm Delete Wordlist + + + + Do you really want to delete the wordlist "%1"? + + + + Failed to delete wordlist + + + + Wordlists + + + + All files + Tous les fichiers + + + Select Custom Wordlist + Sélectionner la liste de mots personnalisés + + + Overwrite Wordlist? + + + + Wordlist "%1" already exists as a custom wordlist. +Do you want to overwrite it? + + + + Failed to add wordlist + + + + Logograms + Logogrammes + + + Special Characters + Caractères spéciaux + + + + PasswordWidget + + Passwords do not match + Les mots de passe ne correspondent pas + + + Passwords match so far + Les mots de passe correspondent jusqu’à présent + + + Toggle Password (%1) + Activer ou désactiver le mot de passe (%1) + + + Generate Password (%1) + Générer un mot de passe (%1) + + + Warning: Caps Lock enabled! + Avertissement: Les majuscules sont verrouillées + + + Quality: %1 + + + + Poor + Password quality + Plutôt mauvais + + + Weak + Password quality + Faible + + + Good + Password quality + Bon + + + Excellent + Password quality + Excellent + + + Toggle password visibility using Control + H. Open the password generator using Control + G. + + PickcharsDialog @@ -6137,6 +6772,10 @@ Do you want to overwrite it? Continue Poursuivre + + Continue with weak password + + QObject @@ -6334,7 +6973,7 @@ Do you want to overwrite it? Password for '%1' has been leaked %2 time(s)! - Le mot de passe pour « %1 » a été divulgué %2 foisLe mot de passe pour « %1 » a été divulgué %2 fois! + Le mot de passe pour « %1 » a été divulgué %2 foisLe mot de passe pour « %1 » a été divulgué %2 fois!Le mot de passe pour « %1 » a été divulgué %2 fois! Password for '%1' has been leaked! @@ -6484,7 +7123,7 @@ Do you want to overwrite it? Clearing the clipboard in %1 second(s)... - Effacement du presse-papiers dans %1 seconde…Effacement du presse-papiers dans %1 secondes… + Effacement du presse-papiers dans %1 seconde…Effacement du presse-papiers dans %1 secondes…Effacement du presse-papiers dans %1 secondes… Clipboard cleared! @@ -6530,6 +7169,10 @@ Do you want to overwrite it? Too many arguments provided. + + Path of the database. + Chemin de la base de données. + Target decryption time in MS for the database. Durée de déchiffrement cible en millisecondes pour la base de données. @@ -6538,6 +7181,11 @@ Do you want to overwrite it? time durée + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + + Set the key file for the database. Définir le fichier clé de la base de données. @@ -6550,10 +7198,6 @@ Do you want to overwrite it? Create a new database. Créer un nouvelle base de données. - - Path of the database. - Chemin de la base de données. - Invalid decryption time %1. La durée de déchiffrement est invalide : %1. @@ -6598,6 +7242,158 @@ Do you want to overwrite it? Successfully created new database. La nouvelle base de données a été créée avec succès. + + Unset the password for the database. + + + + Unset the key file for the database. + + + + Edit a database. + Ouvre une base de données. + + + Cannot use %1 and %2 at the same time. + + + + Could not change the database key. + Impossible de changer la clé de la base de données. + + + Database was not modified. + La base de données n'a pas été modifiée. + + + Writing the database failed: %1 + Échec d’écriture de la base de données : %1 + + + Successfully edited the database. + La base de données a été éditée avec succès. + + + Cannot remove password: The database does not have a password. + Impossible de supprimer le mot de passe: la base de données n’a pas de mot de passe. + + + Cannot remove file key: The database does not have a file key. + Impossible de supprimer la clé de fichier: la base de données n’a pas de clé de fichier. + + + Loading the new key file failed: %1 + + + + Found unexpected Key type %1 + + + + Cannot remove all the keys from a database. + + + + Show a database's information. + Afficher les renseignements d’une base de données. + + + UUID: + UUID : + + + Name: + Nom : + + + Description: + Description : + + + Cipher: + Chiffrement : + + + KDF: + Fonction de dérivation de clé : + + + Recycle bin is enabled. + La corbeille est activée. + + + Recycle bin is not enabled. + La corbeille est désactivée. + + + Location + Emplacement + + + Database created + + + + Last saved + Dernier enregistrement + + + Unsaved changes + Changements non enregistrés + + + yes + oui + + + no + non + + + Number of groups + Nombre de groupes + + + Number of entries + Nombre d’entrées + + + Number of expired entries + Nombre d’entrées expirées + + + Unique passwords + Mots de passes uniques + + + Non-unique passwords + Mots de passe non uniques + + + Maximum password reuse + Maximum de réutilisations des mots de passe + + + Number of short passwords + Nombre de mots de passe courts + + + Number of weak passwords + Nombre de mots de passe faibles + + + Entries excluded from reports + Entrées exclues des rapports + + + Average password length + Longueur moyenne des mots de passe + + + %1 characters + %1 caractères + Word count for the diceware passphrase. Nombre de mots de la phrase de passe générée avec la méthode du lancer de dés. @@ -6649,10 +7445,6 @@ Do you want to overwrite it? Enter new password for entry: Saisir le nouveau mot de passe pour l’entrée : - - Writing the database failed: %1 - Échec d’écriture de la base de données : %1 - Successfully edited entry %1. L’entrée %1 a été modifiée avec succès. @@ -6877,106 +7669,6 @@ Do you want to overwrite it? Successfully imported database. La base de données a été importée avec succès. - - Show a database's information. - Afficher les renseignements d’une base de données. - - - UUID: - UUID : - - - Name: - Nom : - - - Description: - Description : - - - Cipher: - Chiffrement : - - - KDF: - Fonction de dérivation de clé : - - - Recycle bin is enabled. - La corbeille est activée. - - - Recycle bin is not enabled. - La corbeille est désactivée. - - - Location - Emplacement - - - Database created - - - - Last saved - Dernier enregistrement - - - Unsaved changes - Changements non enregistrés - - - yes - oui - - - no - non - - - Number of groups - Nombre de groupes - - - Number of entries - Nombre d’entrées - - - Number of expired entries - Nombre d’entrées expirées - - - Unique passwords - Mots de passes uniques - - - Non-unique passwords - Mots de passe non uniques - - - Maximum password reuse - Maximum de réutilisations des mots de passe - - - Number of short passwords - Nombre de mots de passe courts - - - Number of weak passwords - Nombre de mots de passe faibles - - - Entries excluded from reports - Entrées exclues des rapports - - - Average password length - Longueur moyenne des mots de passe - - - %1 characters - %1 caractères - Unknown command %1 La commande %1 est inconnue @@ -7149,6 +7841,10 @@ Commandes proposées : Show the protected attributes in clear text. Afficher en clair les attributs protégés. + + Show all the attributes of the entry. + + Show the attachments of the entry. @@ -7218,6 +7914,10 @@ Veuillez envisager de générer un nouveau fichier clé. Invalid YubiKey serial %1 Le numéro de série Yubikey %1 est invalide + + Please present or touch your YubiKey to continue. + + Enter password to encrypt database (optional): Saisissez un mot de passe pour chiffrer la base de données (facultatif) : @@ -7290,7 +7990,7 @@ Veuillez envisager de générer un nouveau fichier clé. Password is used %1 time(s) - + Password has expired @@ -7310,7 +8010,7 @@ Veuillez envisager de générer un nouveau fichier clé. Password expires in %1 day(s) - + Password will expire soon @@ -7382,30 +8082,30 @@ Noyau : %3 %4 over %1 year(s) - + about %1 month(s) - + %1 week(s) - + %1 semaine%1 semaines%1 semaines %1 day(s) - + %1 jour%1 jours%1 jours %1 hour(s) - + %1 heure%1 heures%1 heures %1 minute(s) - + %1 minute%1 minutes%1 minutes - Botan library must be at least 2.11.x, found %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 @@ -7434,7 +8134,7 @@ Noyau : %3 %4 Cannot process 0 length data. - + Impossible de traiter des données de taille 0. unknown executable (DBus address %1) @@ -7506,7 +8206,7 @@ Noyau : %3 %4 Clearing the clipboard in %1 second(s)… - Effacement du Presse-papiers en %1 seconde(s)...Effacement du Presse-papiers dans %1 seconde(s)... + Effacement du Presse-papiers en %1 seconde(s)...Effacement du Presse-papiers dans %1 seconde(s)...Effacement du Presse-papiers dans %1 seconde(s)... Group @@ -7547,12 +8247,12 @@ Noyau : %3 %4 %1 ms milliseconds - %1 ms%1 ms + %1 ms%1 ms%1 ms %1 s seconds - %1 s%1 s + %1 s%1 s%1 s Do you really want to delete the entry "%1" for good? @@ -7560,11 +8260,11 @@ Noyau : %3 %4 Do you really want to delete %n entry(s) for good? - + Delete entry(s)? - + Do you really want to move entry "%1" to the recycle bin? @@ -7572,11 +8272,11 @@ Noyau : %3 %4 Do you really want to move %n entry(s) to the recycle bin? - + Move entry(s) to recycle bin? - + Replace references to entry? @@ -7584,7 +8284,7 @@ Noyau : %3 %4 Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? - + User name @@ -7646,10 +8346,6 @@ Noyau : %3 %4 read password of the database from stdin lire le mot de passe de la base de données sur l’entrée standard - - allow app screen recordering and screenshots - - Locked databases. Bases de données verrouillées. @@ -7662,6 +8358,10 @@ Noyau : %3 %4 Another instance of KeePassXC is already running. Une autre instance de KeePassXC est déjà en cours d’exécution. + + KeePassXC is not running. No open database to lock + + Fatal error while testing the cryptographic functions. Erreur fatale lors de l’évaluation des fonctions cryptographiques. @@ -7670,10 +8370,6 @@ Noyau : %3 %4 KeePassXC - Error KeePassXC – Erreur - - Warning: Failed to prevent screenshots on a top level window! - - Database password: Mot de passe de la base de données : @@ -7697,7 +8393,221 @@ Noyau : %3 %4 - Please present or touch your YubiKey to continue. + Warning: Failed to block screenshot capture on a top-level window. + + + + Invalid Cipher + + + + Invalid KDF + + + + Access to all entries is denied + + + + allow screenshots and app recording (Windows/macOS) + + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + + + + Credential is excluded + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Passkeys + + + + AES initialization failed + + + + AES encrypt failed + + + + Failed to store in Linux Keyring + + + + Polkit returned an error: %1 + + + + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + + + + Failed to init KeePassXC crypto. + + + + Failed to encrypt key data. + + + + Failed to get Windows Hello credential. + + + + Failed to decrypt key data. + + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7737,33 +8647,21 @@ Noyau : %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - - - - Show only entries which have URL set - - - - Show only entries which have browser settings in custom data - - Double-click entries to edit. - + Double-cliquer sur les entrées pour les modifier. List of entry URLs - + Liste des URL d'entrées Entry has no URLs set - + Cette entrée n'a aucune URL définie Allowed URLs - + URL autorisées Entry has no Browser Integration settings @@ -7771,7 +8669,7 @@ Noyau : %3 %4 Denied URLs - + URL refusées (Excluded) @@ -7783,7 +8681,7 @@ Noyau : %3 %4 Please wait, browser statistics is being calculated… - + Veuillez patienter, les statistiques du navigateur sont en cours de calcul... No entries with a URL, or none has browser extension settings saved. @@ -7807,23 +8705,31 @@ Noyau : %3 %4 Delete Entry(s)… - + Exclude from reports Exclure des rapports - - - ReportsWidgetHealthcheck - Exclude expired entries from the report + Only show entries that have a URL - Also show entries that have been excluded from reports - Afficher aussi les entrées qui ont été exclues des rapports + Only show entries that have been explicitly allowed or denied + + + Show expired entries + + + + (Expired) + + + + + ReportsWidgetHealthcheck Hover over reason to show additional details. Double-click entries to edit. Survolez la raison pour afficher des détails supplémentaires. Double-cliquez sur les entrées pour les modifier. @@ -7893,12 +8799,24 @@ Noyau : %3 %4 Delete Entry(s)… - + Exclude from reports Exclure des rapports + + Show expired entries + + + + Show entries that have been excluded from reports + + + + (Expired) + + ReportsWidgetHibp @@ -7988,13 +8906,72 @@ Noyau : %3 %4 Delete Entry(s)… - + Exclude from reports Exclure des rapports + + ReportsWidgetPasskeys + + Export + Exporter + + + Import + Importer + + + List of entry URLs + Liste des URL d'entrées + + + Please wait, list of entries with Passkeys is being updated… + + + + No entries with Passkeys. + + + + Title + Titre + + + Path + Chemin + + + Username + Nom d’utilisateur + + + URLs + + + + Edit Entry… + + + + Delete Entry(s)… + + + + Relying Party + + + + Show expired entries + + + + (Expired) + + + ReportsWidgetStatistics @@ -8234,6 +9211,10 @@ Noyau : %3 %4 Search Help Chercher dans l’aide + + Save Search + + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8256,7 +9237,7 @@ Noyau : %3 %4 PID - + PID DBus Address @@ -8330,7 +9311,7 @@ Noyau : %3 %4 Prompt to unlock database before searching - + Inviter à déverrouiller la base de données avant de rechercher Exposed database groups: @@ -8412,14 +9393,14 @@ Noyau : %3 %4 ShareExport Could not write export container. - + Impossible d’écrire dans le conteneur d’exportation. ShareImport Successful import - + Importation réussie @@ -8457,10 +9438,37 @@ Noyau : %3 %4 Exporter vers %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All + Clear Search + Effacer la recherche + + + All Entries @@ -8472,6 +9480,25 @@ Noyau : %3 %4 + + TagView + + Remove Search + Supprimer la recherche + + + Remove Tag + + + + Confirm Remove Tag + Confirmer la suppression de l’étiquette + + + Remove tag "%1" from all entries in this database? + + + TotpDialog @@ -8484,7 +9511,7 @@ Noyau : %3 %4 Expires in <b>%n</b> second(s) - Expire dans <b>%n</b> secondeExpire dans <b>%n</b> seconde(s) + Expire dans <b>%n</b> secondeExpire dans <b>%n</b> seconde(s)Expire dans <b>%n</b> seconde(s) @@ -8531,11 +9558,11 @@ Noyau : %3 %4 Steam® settings - + Paramètres Steam® Custom settings: - + Paramètres personnalisés: Custom Settings @@ -8600,7 +9627,7 @@ Exemple : JBSWY3DPEHPK3PXP Checking for updates… - + Vérification de la présence de mises à jour… Close @@ -8629,26 +9656,6 @@ Exemple : JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Commencez à enregistrer vos mots de passe en toute sécurité dans une base de données KeePassXC - - Create new database - Créer une nouvelle base de données - - - Open existing database - Ouvrir une base de données existante - - - Import from KeePass 1 - Importer de KeePass 1 - - - Import from 1Password - Importer de 1Password - - - Import from CSV - Importer d’un fichier CSV - Recent databases Bases de données récentes @@ -8661,6 +9668,18 @@ Exemple : JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Bienvenue sur KeePassXC %1 + + Create Database + + + + Open Database + + + + Import File + + WinUtils @@ -8677,31 +9696,8 @@ Exemple : JBSWY3DPEHPK3PXP - - WindowsHello - - Failed to init KeePassXC crypto. - - - - Failed to encrypt key data. - - - - Failed to get Windows Hello credential. - - - - Failed to decrypt key data. - - - YubiKey - - %1 No interface, slot %2 - - General: @@ -8713,14 +9709,6 @@ Exemple : JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - Actualiser les jetons matériels - - - Refresh - Actualiser - Hardware key slot selection Sélection de l’emplacement de la clé matérielle @@ -8735,27 +9723,23 @@ Exemple : JBSWY3DPEHPK3PXP Challenge-Response - + Question-réponse Add Challenge-Response - + Ajouter une question-réponse Change Challenge-Response - + Modifier la question-réponse Remove Challenge-Response - + Supprimer la question-réponse Challenge-Response set, click to change or remove - - - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - + Question-réponse définie, cliquez pour la modifier ou la supprimer Detecting hardware keys… @@ -8765,28 +9749,21 @@ Exemple : JBSWY3DPEHPK3PXP No hardware keys detected Aucune clé matérielle n’a été détectée - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 Un emplacement invalide est indiqué – %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - - The YubiKey PCSC interface has not been initialized. - - Hardware key is currently in use. - La clé matérielle est en cours d’utilisation. - Could not find or access hardware key with serial number %1. Please present it to continue. @@ -8797,12 +9774,27 @@ Exemple : JBSWY3DPEHPK3PXP Hardware key was not found or is not configured. - + La clé matérielle n'a pas été trouvée ou n'est pas configurée. Failed to complete a challenge-response, the PCSC error code was: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + Appuyer + + + Passive + USB Challenge-Response Key no interaction required + Passive + YubiKeyInterfaceUSB @@ -8810,14 +9802,6 @@ Exemple : JBSWY3DPEHPK3PXP Unknown Inconnu - - (USB) %1 [%2] Configured Slot - %3 - - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - - Press USB Challenge-Response Key interaction request @@ -8830,11 +9814,7 @@ Exemple : JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. - - - - Hardware key is currently in use. - La clé matérielle est en cours d’utilisation. + L’interface YubiKey n’a pas été initialisée. Could not find hardware key with serial number %1. Please plug it in to continue. @@ -8846,11 +9826,21 @@ Exemple : JBSWY3DPEHPK3PXP A USB error occurred when accessing the hardware key: %1 - + Une erreur USB est survenue lors de l’accès à la clé matérielle: %1 Failed to complete a challenge-response, the specific error was: %1 Échec de question-réponse, l’erreur particulière était : %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_he.ts b/share/translations/keepassxc_he.ts index 5e7260e2e..0ccb3ed92 100644 --- a/share/translations/keepassxc_he.ts +++ b/share/translations/keepassxc_he.ts @@ -35,7 +35,7 @@ Debug Info - מידע ניפוי ×ª×§×œ×™× + מידע × ×™×¤×•×™Ö¾×ª×§×œ×™× Include the following information whenever you report a bug: @@ -80,6 +80,10 @@ Details ×¤×¨×˜×™× + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + ההחלטה שנעשתה תזכר בכל משך ×¤×¢×•×œ×ª× ×©×œ הלקוח המבקש ו־ KeePassXC יחד. + Remember זכירה @@ -88,24 +92,20 @@ Allow Selected בחירת קובץ ססמה - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - ההחלטה שנעשתה תזכר בכל משך ×¤×¢×•×œ×ª× ×©×œ הלקוח המבקש ו־ KeePassXC יחד. - Deny All && Future דחיית הכול ×•×’× ×‘×¢×ª×™×“ Allow All && &Future - ×פשור הכול ×•×’× ×‘×¢×ª×™×“ + ×יפשור הכול ×•×’× ×‘×¢×ª×™×“ AccessControlDialog::DenyButton Deny for this program - דחיה לתכנית זו + דחיה עבור תוכנית זו @@ -122,6 +122,10 @@ Use OpenSSH שימוש ב×ופן־×ס.×ס.××™×¥' + + Use both agents + שימוש בשני ×”×¡×•×›× ×™× + SSH_AUTH_SOCK override כתיבה על SSH_AUTH_SOCK @@ -150,10 +154,6 @@ SSH Agent connection is working! חיבור סוכן SSH פועל! - - Use both agents - - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security ×בטחה + + This setting cannot be enabled when minimize on unlock is enabled. + ×œ× × ×™×ª×Ÿ ל×פשר הגדרה זו ×›×שר ×”×פשרות 'מזעור בעת שיחרור מנעילה' מ×ופשרת. + Access error for config file %1 שגי×ת גישה לקובץ התצורה 1% @@ -234,31 +238,35 @@ Startup - ×תחול + ×יתחול Start only a single instance of KeePassXC - ×תחול ×Ö¶×“Ö°×’Ö¼Ö¸× KeePassXC יחיד בלבד + ×יתחול ×Ö¶×“Ö°×’Ö¼Ö¸× KeePassXC יחיד בלבד Automatically launch KeePassXC at system startup - שיגור KeePassXC ×וטומטית בעת ×תחול המערכת + שיגור KeePassXC ×וטומטית בעת ×יתחול המערכת Minimize window at application startup - מזעור חלון בעת ×תחול ×”×™×™×©×•× + מזעור חלון בעת ×יתחול ×”×™×™×©×•× Minimize window after unlocking database - מזעור חלון ל×חר שחרור נעילת מסד ×”× ×ª×•× ×™× + מזעור חלון ל×חר שחרור נעילת ×ž×¡×“Ö¾× ×ª×•× ×™× Remember previously used databases זכירת ×ž×¡×“×™Ö¾× ×ª×•× ×™× ×©×©×™×ž×©×• בעבר + + recent files + ×§×‘×¦×™× ××—×¨×•× ×™× + Load previously open databases on startup - טעינת ×ž×¡×“×™Ö¾× ×ª×•× ×™× ×©× ×¤×ª×—×• בעבר בעת ×”×תחול + טעינת ×ž×¡×“×™Ö¾× ×ª×•× ×™× ×©× ×¤×ª×—×• בעבר בעת ×”×יתחול Remember database key files and security dongles @@ -266,7 +274,7 @@ Check for updates at application startup once per week - בדיקת ×¢×“×›×•× ×™× ×‘×¢×ª ×תחול ×”×™×™×©×•× ×¤×¢× ×‘×©×‘×•×¢ + בדיקת ×¢×“×›×•× ×™× ×‘×¢×ª ×יתחול ×”×™×™×©×•× ×¤×¢× ×‘×©×‘×•×¢ Include beta releases when checking for updates @@ -274,7 +282,7 @@ On database unlock, show entries that - על נעילת מסד הנתוני×, הצד ×¢×¨×›×™× ×©- + ×¢× × ×¢×™×œ×ª מסד־נתוני×, הצגת ×¢×¨×›×™× ×©Ö¾ have expired @@ -309,11 +317,11 @@ Automatically reload the database when modified externally - טעינה חוזרת ×וטומטית של מסד ×”× ×ª×•× ×™× ×‘×”×¡×’×œ×” חיצונית + טעינה חוזרת ×וטומטית של ×ž×¡×“Ö¾× ×ª×•× ×™× ×‘×”×¡×’×œ×” חיצונית Backup database file before saving - × × ×œ×’×‘×•×ª ×ת קובץ מסד ×”× ×ª×•× ×™× ×œ×¤× ×™ השמירה + גיבוי קובץ ×ž×¡×“Ö¾× ×ª×•× ×™× ×œ×¤× ×™ שמירה Backup destination @@ -321,7 +329,7 @@ Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". - ציון ×ž×™×§×•× ×§×•×‘×¥ גיבוי מסד הנתוני×. ×ž×•×¤×¢×™× ×©×œ "{DB_FILENAME}" יוחלפו ×‘×©× ×§×•×‘×¥ מסד ×”× ×ª×•× ×™× ×”×©×ž×•×¨, ×œ×œ× ×”×¡×™×•×ž×ª. {TIME:<format>} יוחלף במועד הגיבוי, למידע נוסף https://doc.qt.io/qt-5/qdatetime.html#toString. ברירת המחדל של <format> ×”×™× ×ª×‘× ×™×ª המחרוזת "dd_MM_yyyy_hh-mm-ss". + ציון ×ž×™×§×•× ×§×•×‘×¥ גיבוי מסד־נתוני×. ×ž×•×¤×¢×™× ×©×œ "{DB_FILENAME}" יוחלפו ×‘×©× ×§×•×‘×¥ ×ž×¡×“Ö¾× ×ª×•× ×™× ×”×©×ž×•×¨, ×œ×œ× ×”×¡×™×•×ž×ª. {TIME:<format>} יוחלף במועד הגיבוי, למידע נוסף https://doc.qt.io/qt-5/qdatetime.html#toString. ברירת המחדל של <format> ×”×™× ×ª×‘× ×™×ª המחרוזת "dd_MM_yyyy_hh-mm-ss". {DB_FILENAME}.old.kdbx @@ -402,12 +410,16 @@ (restart program to activate) - (×תחול התוכנית להפעלה) + (×יתחול התוכנית להפעלה) Toolbar button style: סגנון סרגל ×›×œ×™× ×ª×—×ª×•×Ÿ + + Show passwords in color + הצגת ססמ×ות בצבע + Use monospaced font for notes שימוש בגופן monospace להערות @@ -446,15 +458,15 @@ Use entry URL to match windows for global Auto-Type - שימוש במען URL מהרשומה כדי להת××™× ×—×œ×•× ×•×ª להקלדה־×וטומטית כללית + שימוש במען URL רשומה להת×מת חלונות להקלדה־×וטומטית כללית Always ask before performing Auto-Type - לש×ול תמיד לפני ביצוע הקלדה־×וטומטית + תמיד לש×ול לפני ביצוע הקלדה־×וטומטית Hide expired entries from Auto-Type - הסתרת רשומות שפג ×ª×•×§×¤× ×ž×”×§×œ×“×”Ö¾×”×וטומטית + הסתרת רשומות שפג ×ª×•×§×¤× ×ž×”×§×œ×“×”Ö¾×וטומטית Re-lock previously locked database after performing Auto-Type @@ -491,7 +503,7 @@ Remember last typed entry for: - זכירת הרשומה ×”×חרונה שהוקלדה עבור: + זכירת רשומה ×חרונה שהוקלדה ל: @@ -536,11 +548,11 @@ Enable database quick unlock (Touch ID / Windows Hello) - ×פשר לבטל נעילת מסד × ×ª×•× ×™× (Touch ID / Windows Hello) + ×יפשור שחרור נעילת ×ž×¡×“Ö¾× ×ª×•× ×™× ×ž×”×™×¨×” (Touch ID / Windows Hello) Lock databases when session is locked or lid is closed - נעילת ×ž×¡×“×™Ö¾× ×ª×•× ×™× ×›×שר המופע נעול ×ו המכסה סגור + נעילת ×ž×¡×“×™Ö¾× ×ª×•× ×™× ×›×שר השיח נעול ×ו המכסה סגור Lock databases after minimizing the window @@ -548,7 +560,7 @@ Require password repeat when it is visible - דרוש חזרה על ססמה ×›×שר ×”×™× ×’×œ×•×™×” + דרישה לחזור על הזנת ססמה בזמן ×©×”×™× ×’×œ×•×™×” Hide passwords when editing them @@ -572,7 +584,7 @@ Enable double click to copy the username/password entry columns - ×פשור הקשה כפולה להעתקת עמודות רשומה ×©× ×”×ž×©×ª×ž×©/הססמה + ×יפשור הקשה כפולה להעתקת עמודות רשומה ×©× ×”×ž×©×ª×ž×©/הססמה Privacy @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons × × ×œ×”×©×ª×ž×© בשירות DuckDuckGo כדי להוריד סמלי ××ª×¨×™× + + Hide TOTP in the entry preview panel + הסתרת TOTP בלוחית תצוגת רשומות מקדימה + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 זוהה השהיה ×רוכה מ×וד, מרבי %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + לרשומה ×ין תכונה עבור PICKCHARS: %1 + Invalid conversion type: %1 סוג המרה ×œ× ×ª×§×™×Ÿ: %1 @@ -705,7 +725,7 @@ AutoTypeSelectDialog Auto-Type - KeePassXC - הקלדה־×וטומטית - KeePassXC + הקלדה־×וטומטית – KeePassXC Double click a row to perform Auto-Type or find an entry using the search: @@ -718,8 +738,8 @@ Ctrl+1 - Type username<br/> Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> - <p>ניתן להשתמש בש×ילתות חיפוש ×ž×ª×§×“× ×œ×ž×¦×™×ת כול ערך במסדי ×”× ×ª×•× ×™× ×”×¤×ª×•×—×™×. קיצורי הדרך הב××™× ×©×™×ž×•×©×™×™×:<br/> -Ctrl+F - החלפת חיפוש מסד הנתוני×<br/> + <p>ניתן להשתמש בש×ילתות חיפוש ×ž×ª×§×“× ×œ×ž×¦×™×ת כל ערך ×‘×ž×¡×“×™Ö¾× ×ª×•× ×™× ×”×¤×ª×•×—×™×. קיצורי הדרך הב××™× ×©×™×ž×•×©×™×™×:<br/> +Ctrl+F - החלפת חיפוש מסד־נתוני×<br/> Ctrl+1 - הקלדת ×©× ×ž×©×ª×ž×©<br/> Ctrl+2 - הקלדת סיסמה<br/> Ctrl+3 - הקלדת TOTP<br/> @@ -727,7 +747,7 @@ Ctrl+4 - שימוש במקלדת מדומה (וינדוס בלבד)</p> Search all open databases - חיפוש בכל מסדי ×”× ×ª×•× ×™× ×”×¤×ª×•×—×™× + חיפוש בכל ×ž×¡×“×™Ö¾× ×ª×•× ×™× ×”×¤×ª×•×—×™× Search… @@ -794,7 +814,7 @@ Ctrl+4 - שימוש במקלדת מדומה (וינדוס בלבד)</p> Allow Selected - ×יפשור × ×‘×—×¨×™× + ×יפשור ×¤×¨×™×˜×™× ×©× ×‘×—×¨×• Deny All @@ -804,13 +824,13 @@ Ctrl+4 - שימוש במקלדת מדומה (וינדוס בלבד)</p>Disable for this site השבתת ×תר ×–×” + + Undo + + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - שמירת רשומה דפדפן־KeePassXC - Ok ×ישור @@ -823,15 +843,71 @@ Ctrl+4 - שימוש במקלדת מדומה (וינדוס בלבד)</p>You have multiple databases open. Please select the correct database for saving credentials. מספר ×ž×¡×“×™Ö¾× ×ª×•× ×™× ×¤×ª×•×—×™×. -× × ×œ×‘×—×•×¨ במסד ×”× ×ª×•× ×™× ×”× ×›×•×Ÿ לשמירת הרש×ות. +× × ×œ×‘×—×•×¨ ×‘×ž×¡×“Ö¾× ×ª×•× ×™× ×”× ×›×•×Ÿ לשמירת הרש×ות. + + + KeePassXC - Select Database + + + + + BrowserPasskeysConfirmationDialog + + Cancel + ביטול + + + Update + + + + Authenticate + + + + Register new + + + + Register + + + + Timeout in <b>%n</b> seconds... + + + + Do you want to register Passkey for: + + + + Existing Passkey found. +Do you want to register a new Passkey for: + + + + Select the existing Passkey and press Update to replace it. + + + + Authenticate Passkey credentials for: + + + + Relying Party: %1 + + + + Username: %1 + + + + KeePassXC - Passkey credentials + BrowserService - - KeePassXC: Create a new group - KeePassXC: יצירת קבוצה חדשה - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -840,17 +916,13 @@ Do you want to create this group? ×”×× ×œ×™×¦×•×¨ קבוצה זו? - - KeePassXC: New key association request - KeePassXC: בקשת שיוך מפתח חדש - You have received an association request for the following database: %1 Give the connection a unique name or ID, for example: chrome-laptop. - התקבלה בקשת שיוך מסד ×”× ×ª×•× ×™× ×”×‘×: + התקבלה בקשת שיוך ×ž×¡×“Ö¾× ×ª×•× ×™× ×”×‘×: %1 × × ×œ×ª×ª לחיבור ×©× ×ו מזהה ייחודיי×, לדוגמה: @@ -860,27 +932,15 @@ chrome-laptop. Save and allow access שמירה ו×יפשור גישה - - KeePassXC: Overwrite existing key? - KeePassXC: כתיבה־על מפתח ×§×™×™×? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? ×§×™×™× ×›×‘×¨ מפתח הצפנה משותף ×‘×©× '%1'. ×”×× ×›×ª×™×‘×”Ö¾×¢×œ×™×•? - - KeePassXC: Update Entry - KeePassXC: עדכון רשומה - Do you want to update the information in %1 - %2? ×”×× ×œ×¢×“×›×Ÿ ×ת המידע ב־%1 - %2? - - KeePassXC: Delete entry - KeePassXC: מחיקת רשומה - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -890,49 +950,45 @@ Do you want to delete the entry? - Converting attributes to custom data… - המרת תכונות ×œ× ×ª×•× ×™× ×ž×•×ª××ž×™× ×ישית ... + %1 (Passkey) + - Abort - נטישה + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: תכונות המרת KeePassHTTP + KeePassXC - Create a new group + - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - התכונות הומרו בהצלחה מ־%1 רשומה(ות). הועברו %2 מפתחות ×œ× ×ª×•× ×™× ×ž×•×ª××ž×™× ×ישית. - - - Successfully moved %n keys to custom data. - מפתח %n הועבר בהצלחה ×œ× ×ª×•× ×™× ×ž×•×ª××ž×™× ×ישית.%n מפתחות הועברו בהצלחה ×œ× ×ª×•× ×™× ×ž×•×ª××ž×™× ×ישית.%n מפתחות הועברו בהצלחה ×œ× ×ª×•× ×™× ×ž×•×ª××ž×™× ×ישית.%n מפתחות הועברו בהצלחה ×œ× ×ª×•× ×™× ×ž×•×ª××ž×™× ×ישית. + Disable + מושבת - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: ×œ× × ×ž×¦××” רשומה ×¢× ×ª×›×•× ×•×ª KeePassHTTP! + KeePassXC - Overwrite existing key? + - The active database does not contain an entry with KeePassHTTP attributes. - מסד ×”× ×ª×•× ×™× ×”×¤×¢×™×œ ×œ× ×ž×›×™×œ רשומה ×¢× ×ª×›×•× ×•×ª KeePassHTTP. + KeePassXC - Update Passkey + - Don't show this warning again - ×œ× ×œ×”×¦×™×’ הזהרה זו שוב + KeePassXC - Update Entry + - KeePassXC: Legacy browser integration settings detected - KeePassXC: זוהו הגדרות שילוב דפדפן מדור ×§×•×“× + KeePassXC - Delete entry + - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - יש להעביר ×ת הגדרות KeePassXCÖ¾Browser להגדרות מסד הנתוני×. -פעולה זו נחוצה כדי לשמור על חיבורי הדפדפן הנוכחיי×. -×”×× ×œ×”×¢×‘×™×¨ ×ת ההגדרות הקיימות כעת? + KeePassXC - New key association request + + + + Passkey + @@ -943,7 +999,7 @@ Would you like to migrate your existing settings now? This is required for accessing your databases with KeePassXC-Browser - נדרש לגישה למסדי ×”× ×ª×•× ×™× ×‘×מצעות דפדפן-KeePassXC + נדרש על מנת ל×פשר לדפדפן־KeePassXC גישה ×œ×ž×¡×“×™Ö¾× ×ª×•× ×™× ×©×œ×š Enable browser integration @@ -996,7 +1052,7 @@ Would you like to migrate your existing settings now? Request to unlock the database if it is locked - בקשת שחרר נעילת מסד ×”× ×ª×•× ×™× ×× ×”×•× × ×¢×•×œ + בקשת שחרר נעילת ×ž×¡×“Ö¾× ×ª×•× ×™× ×× ×”×•× × ×¢×•×œ Only entries with the same scheme (http://, https://, …) are returned. @@ -1024,12 +1080,12 @@ Would you like to migrate your existing settings now? All databases connected to the extension will return matching credentials. - כל מסדי ×”× ×ª×•× ×™× ×”×ž×—×•×‘×¨×™× ×œ×”×¨×—×‘×” יחזירו ××™×©×•×¨×™× ×ª×•×מי×. + כל ×ž×¡×“×™Ö¾× ×ª×•× ×™× ×”×ž×—×•×‘×¨×™× ×œ×”×¨×—×‘×” יחזירו ××™×©×•×¨×™× ×ª×•×מי×. Search in all opened databases for matching credentials Credentials mean login data requested via browser extension - חפוש הרש×ות בכל מסדי ×”× ×ª×•× ×™× ×”×¤×ª×•×—×™× + חפוש הרש×ות בכל ×ž×¡×“×™Ö¾× ×ª×•× ×™× ×”×¤×ª×•×—×™× Advanced @@ -1038,12 +1094,12 @@ Would you like to migrate your existing settings now? Never ask before accessing credentials Credentials mean login data requested via browser extension - ×œ× ×œ×©×ול ×œ×¢×•×œ× ×œ×¤× ×™ הגישה ל××™×©×•×¨×™× + ×œ×¢×•×œ× ×œ× ×œ×©×ול לפני גישה ל××™×©×•×¨×™× Never ask before updating credentials Credentials mean login data requested via browser extension - ×œ× ×œ×©×ול ×œ×¢×•×œ× ×œ×¤× ×™ עדכון ××™×©×•×¨×™× + ×œ×¢×•×œ× ×œ× ×œ×©×ול לפני עדכון ××™×©×•×¨×™× Do not ask permission for HTTP Basic Auth @@ -1068,11 +1124,11 @@ Would you like to migrate your existing settings now? Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup. - עדכון הנתיב הבינ×רי KeePassXC ×ו keepassxcÖ¾proxy בינ××¨×™×™× ×‘×ופן ×וטומטי ×œ×ª×¡×¨×™×˜×™× ×œ×”×•×“×¢×•×ª מקוריות בעת ×”×תחול. + עדכון הנתיב הבינ×רי KeePassXC ×ו keepassxcÖ¾proxy בינ××¨×™×™× ×‘×ופן ×וטומטי ×œ×ª×¡×¨×™×˜×™× ×œ×”×•×“×¢×•×ª מקוריות בעת ×”×יתחול. Update native messaging manifest files at startup - עדכון קבצי מניפסט להודעות מקוריות בעת ×”×תחול + עדכון קבצי מניפסט להודעות מקוריות בעת ×”×יתחול Use a custom proxy location if you installed a proxy manually. @@ -1140,14 +1196,6 @@ Would you like to migrate your existing settings now? Please see special instructions for browser extension use below × × ×œ×¢×™×™×Ÿ בהור×ות מיוחדות לשימוש בהרחבת הדפדפן להלן - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>שגי××”:</b> ×ž×™×§×•× ×”×©×ָרָת המְתַוֵּךְ המות×× ×ישית ×œ× × ×ž×¦×!<br/>שילוב הדפדפן ×œ× ×™×¤×¢×œ ×œ×œ× ×™×™×©×•× ×©×ָרָת מְתַוֵּךְ. - - - <b>Warning:</b> The following options can be dangerous! - <b> ×זהרה: </b> ×”×פשרויות הב×ות עלולות להיות מסוכנות! - Executable Files קבצי הפעלה @@ -1164,6 +1212,38 @@ Would you like to migrate your existing settings now? Select native messaging host folder location בחירת ×ž×™×§×•× ×ª×™×§×™×™×ª מ×רח שרות הודעות מובנה + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + ל×פשר למתווך KeePassXC להציג רשית כל הרשומות ×¢× ×”×›×•×ª×¨×•×ª שלהן, מעני URI ו־UUID ×ž×ž×¡×“Ö¾×”× ×ª×•× ×™× ×”×ž×§×•×©×¨. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + ל×פשר גישה מוגבלת לכל הרשומות ×ž×ž×¡×“Ö¾×”× ×ª×•× ×™× ×”×ž×§×•×©×¨ (×œ×”×ª×¢×œ× ×ž×ž×’×‘×œ×•×ª גישה ל×תרי×) + + + <b>Warning:</b> Only adjust these settings if necessary. + + + + The custom proxy location does not exist. + + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1186,14 +1266,6 @@ Would you like to migrate your existing settings now? CsvImportWidget - - Import CSV fields - ×™×™×‘×•× ×©×“×•×ª CSV - - - filename - ×©× ×§×•×‘×¥ - size, rows, columns גודל, שורות, עמודות @@ -1302,51 +1374,30 @@ Would you like to migrate your existing settings now? Column %1 עמודה %1 - - Imported from CSV file - ×™×•×‘× ×ž×§×•×‘×¥ CSV - - - Original data: - מידע מקורי: - - - Error(s) detected in CSV file! - זוהו בקובץ CSV שגי×ות! - [%n more message(s) skipped] - [דילוג על הודעה נוספת %n][דילוג על %n הודעות נוספות][דילוג על %n הודעות נוספות][דילוג על %n הודעות נוספות] + [דילוג על הודעה נוספת %n][דילוג על %n הודעות נוספות][דילוג על %n הודעות נוספות] - Error - שגי××” + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - ×™×™×‘×•× CSV: העורך מכיל שגי×ות: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - בית %n%n בתי×%n בתי×%n ×‘×ª×™× - %n row(s) - שורה %n%n שורות%n שורות%n שורות + CSV row count + שורה %n%n שורות%n שורות %n column(s) - עמודה %n%n עמודות%n עמודות%n עמודות + CSV column count + עמודה %n%n עמודות%n עמודות @@ -1370,7 +1421,7 @@ Would you like to migrate your existing settings now? Could not save, database does not point to a valid file. - ×œ× × ×™×ª×Ÿ לשמור, מסד ×”× ×ª×•× ×™× ×œ× ×ž×¦×‘×™×¢ על קובץ תקין. + ×œ× × ×™×ª×Ÿ לשמור, ×ž×¡×“Ö¾× ×ª×•× ×™× ×œ× ×ž×¦×‘×™×¢ על קובץ תקין. Database save is already in progress. @@ -1378,11 +1429,11 @@ Would you like to migrate your existing settings now? Could not save, database has not been initialized! - ×œ× × ×™×ª×Ÿ לשמור, מסד ×”× ×ª×•× ×™× ×œ× ×ותחל! + ×œ× × ×™×ª×Ÿ לשמור, ×ž×¡×“Ö¾× ×ª×•× ×™× ×œ× ×ותחל! Database file has unmerged changes. - בקובץ מסד ×”× ×ª×•× ×™× ×§×™×™×ž×™× ×©×™× ×•×™×™× ×©×œ× ×ž×•×–×’×•. + בקובץ ×ž×¡×“Ö¾× ×ª×•× ×™× ×§×™×™×ž×™× ×©×™× ×•×™×™× ×©×œ× ×ž×•×–×’×•. %1 @@ -1420,43 +1471,13 @@ Backup database located at %2 Password field שדה ססמה - - Enter Additional Credentials (if any): - הזנת ××™×©×•×¨×™× × ×•×¡×¤×™× (ככל שקיימי×): - - - Key File: - קובץ מפתח: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>בנוסף לססמה, ×פשר להשתמש בקובץ סודי כדי לשפר ×ת ×בטחת מסד הנתוני×. ניתן לחולל קובץ ×–×” בהגדרות ×בטחת מסד הנתוני×.</p><p>×–×” <strong>ל×</strong> קובץ מסד ×”× ×ª×•× ×™× *.kdbx !<br>×× ×§×•×‘×¥ מפתח ינו בנמצ×, × × ×œ×”×©×יר שדה ×–×” ריק.</p><p>הקשה לקבלת מידע נוסף...</p> - - - Key file help - עזרת קובץ מפתח - Hardware key slot selection בחירת עמדה למפתח חומרה - - Hardware Key: - מפתח חומרה: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>ניתן להשתמש במפתח ×בטחת חומרה כגון <strong>YubiKey</strong> ×ו <strong>OnlyKey</strong> ×¢× ×—×¨×™×¦×™× ×©×ª×¦×•×¨×ª× × ×§×‘×¢×” עבור HMAC-SHA1.</p> -<p>הקשה לקבלת מידע נוסף...</p> - - - Hardware key help - עזרת מפתח חומרה - Key file to unlock the database - קובץ מפתח לשחרור נעילת מסד ×”× ×ª×•× ×™× + קובץ מפתח לשחרור נעילת ×ž×¡×“Ö¾× ×ª×•× ×™× Browse for key file @@ -1466,17 +1487,9 @@ Backup database located at %2 Browse… עיון... - - Refresh hardware tokens - רענון ×סימוני חומרה - - - Refresh - רענון - Unlock Database - ביטול נעילת מסד ×”× ×ª×•× ×™× + שחרור נעילת ×ž×¡×“Ö¾× ×ª×•× ×™× Cancel @@ -1484,7 +1497,7 @@ Backup database located at %2 Unlock - לבטל נעילה + שחרור נעילה Please present or touch your YubiKey to continue… @@ -1502,7 +1515,7 @@ You can try to open it anyway, but it may be incomplete and saving any changes may incur data loss. We recommend you update your KeePassXC installation. - מסד ×”× ×ª×•× ×™× ×©×תה מנסה לפתוח ×”×™×” קרוב לווד××™ + ×ž×¡×“Ö¾× ×ª×•× ×™× ×©×תה מנסה לפתוח ×”×™×” קרוב לווד××™ נוצר על ידי גרסה חדשה יותר של Keepassxc. ×תה יכול לנסות לפתוח ×ותו בכל מקרה, ×בל ×–×” עשוי להיות ×œ× ×©×œ× @@ -1536,14 +1549,6 @@ To prevent this error from appearing, you must go to "Database Settings / S Retry with empty password × × ×œ× ×¡×•×ª שנית ×¢× ×¡×¡×ž×” ריקה - - Failed to authenticate with Windows Hello - ×”×ימות נכשל ×¢× Windows Hello - - - Failed to authenticate with Touch ID - ×”×ימות נכשל ×¢× ×ž×–×”×” המגע - Failed to open key file: %1 כשל בפתיחת קובץ מפתח: %1 @@ -1558,7 +1563,7 @@ To prevent this error from appearing, you must go to "Database Settings / S Don't show this warning again - ×œ× ×œ×”×¦×™×’ הזהרה זו שוב + ×œ× ×œ×”×¦×™×’ ×זהרה זו שוב All files @@ -1577,22 +1582,60 @@ To prevent this error from appearing, you must go to "Database Settings / S ×œ× × ×™×ª×Ÿ להשתמש בקובץ ×ž×¡×“Ö¾× ×ª×•× ×™× ×›×§×•×‘×¥ מפתח - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - ×œ× × ×™×ª×Ÿ להשתמש בקובץ ×ž×¡×“Ö¾×”× ×ª×•× ×™× ×›×§×•×‘×¥ מפתח. -×× ×ין קובץ מפתח, × × ×œ×”×©×יר ×ת השדה ריק. + authenticate to access the database + × × ×œ×מת עלמנת לגשת למסד ×”× ×ª×•× ×™× - Detecting hardware keys… - זוהה מפתח חומרה... + Failed to authenticate with Quick Unlock: %1 + - No hardware keys detected - ×œ× ×–×•×”×” מפתח חומרה + Select Key File: + - Select hardware key… - בחירת מפתח חומרה... + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1604,10 +1647,6 @@ If you do not have a key file, please leave the field empty. DatabaseSettingsDialog - - Advanced Settings - הגדרות מתקדמות - General כללי @@ -1639,18 +1678,6 @@ If you do not have a key file, please leave the field empty. KeePassXC-Browser settings הגדרות דפדפן KeePassXC - - Convert KeePassHTTP data - המרת נתוני KeePassHTTP - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - המרת מ×פייני תוכנת־מורשת KeePassHTTP לנתוני דפדפן KeePassXC תו×מי×. - - - Refresh database root group ID - רענון מזהה קבוצת שורש ×ž×¡×“Ö¾× ×ª×•× ×™× - Disconnect all browsers ניתוק כל ×”×“×¤×“×¤× ×™× @@ -1659,6 +1686,10 @@ If you do not have a key file, please leave the field empty. Forget all site-specific settings on entries לשכוח ×ת כל ההגדרות המסוימות ל×תר ברשומות + + Refresh database root group ID + רענון מזהה קבוצת שורש ×ž×¡×“Ö¾× ×ª×•× ×™× + Stored keys מפתחות מ××•×—×¡× ×™× @@ -1707,21 +1738,13 @@ This may prevent connection to the browser plugin. ×”×× ×œ× ×ª×§ ×ת כל הדפדפני×? פעולה זו עשויה למנוע חיבור למתקע הדפדפן. - - KeePassXC: No keys found - KeePassXC: ×œ× × ×ž×¦× ×ž×¤×ª×— - No shared encryption keys found in KeePassXC settings. ×œ× × ×ž×¦×ו מפתחות הצפנה ×ž×©×•×ª×¤×™× ×‘×”×’×“×¨×•×ª KeePassXC. - - KeePassXC: Removed keys from database - KeePassXC: מפתחות שהוסרו ממסד ×”× ×ª×•× ×™× - Successfully removed %n encryption key(s) from KeePassXC settings. - מפתח הצפנה משותף %n הוסר בהצלחה מהגדרות KeePassXC.%n מפתחות הצפנה ×ž×©×•×ª×¤×™× ×”×•×¡×¨×• בהצלחה מהגדרות KeePassXC.%n מפתחות הצפנה ×ž×©×•×ª×¤×™× ×”×•×¡×¨×• בהצלחה מהגדרות KeePassXC.%n מפתחות הצפנה ×ž×©×•×ª×¤×™× ×”×•×¡×¨×• בהצלחה מהגדרות KeePassXC. + מפתח הצפנה משותף %n הוסר בהצלחה מהגדרות KeePassXC.%n מפתחות הצפנה ×ž×©×•×ª×¤×™× ×”×•×¡×¨×• בהצלחה מהגדרות KeePassXC.%n מפתחות הצפנה ×ž×©×•×ª×¤×™× ×”×•×¡×¨×• בהצלחה מהגדרות KeePassXC. Do you really want forget all site-specific settings on every entry? @@ -1737,31 +1760,13 @@ Permissions to access entries will be revoked. Abort נטישה - - KeePassXC: Removed permissions - KeePassXC: הרש×ות הוסרו - Successfully removed permissions from %n entry(s). - הרש×ות הוסרו בהצלחה מרשומה %n.הרש×ות הוסרו בהצלחה מ־%n רשומות.הרש×ות הוסרו בהצלחה מ־%n רשומות.הרש×ות הוסרו בהצלחה מ־%n רשומות. - - - KeePassXC: No entry with permissions found! - KeePassXC: ×œ× × ×ž×¦××” רשומה ×¢× ×”×¨×©×ות! + הרש×ות הוסרו בהצלחה מרשומה %n.הרש×ות הוסרו בהצלחה מ־%n רשומות.הרש×ות הוסרו בהצלחה מ־%n רשומות. The active database does not contain an entry with permissions. - מסד ×”× ×ª×•× ×™× ×”×¤×¢×™×œ ×œ× ×ž×›×™×œ רשומה ×¢× ×”×¨×©×ות. - - - Move KeePassHTTP attributes to custom data - העברת תכונות KeePassHTTP ×œ× ×ª×•× ×™× ×ž×•×ª××ž×™× ×ישית - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - ×”×× ×œ×”×ž×™×¨ ×ת כול נתוני שילוב הדפדפן מדור ×§×•×“× ×œ×ª×§×Ÿ העדכני ביותר? -פעולה זו נחוצה כדי לשמור על ת×ימות ×¢× ×ž×ª×§×¢ הדפדפן. + ×ž×¡×“Ö¾× ×ª×•× ×™× ×”×¤×¢×™×œ ×œ× ×ž×›×™×œ רשומה ×¢× ×”×¨×©×ות. Refresh database ID @@ -1770,7 +1775,27 @@ This is necessary to maintain compatibility with the browser plugin. Do you really want refresh the database ID? This is only necessary if your database is a copy of another and the browser extension cannot connect. - ×”×× ×œ×¨×¢× ×Ÿ ×ת מזהה מסד הנתוני×? נחוץ רק ×× ×ž×¡×“ ×”× ×ª×•× ×™× ×”×•× ×¢×•×ª×§ של ×ž×¡×“Ö¾× ×ª×•× ×™× ×חר ומתקע הדפדפן ×œ× ×ž×ª×—×‘×¨. + ×”×× ×œ×¨×¢× ×Ÿ ×ת מזהה מסד־נתוני×? נחוץ רק ×× ×ž×¡×“Ö¾× ×ª×•× ×™× ×”×•× ×¢×•×ª×§ של ×ž×¡×“Ö¾× ×ª×•× ×™× ×חר ומתקע הדפדפן ×œ× ×ž×ª×—×‘×¨. + + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + המרת מ×פייני תוכנת־מורשת KeePassHTTP לנתוני דפדפן KeePassXC תו×מי×. + + + No keys found + + + + Removed keys from database + + + + Removed permissions + + + + No entry with permissions found! + @@ -1787,7 +1812,7 @@ This is only necessary if your database is a copy of another and the browser ext WARNING! You have not set a password. Using a database without a password is strongly discouraged! Are you sure you want to continue without a password? - ×זהרה! ×œ× ×”×•×’×“×¨×” ססמה. השימוש במסד × ×ª×•× ×™× ×œ×œ× ×¡×¡×ž×” ×œ× ×ž×•×ž×œ×¥! + ×זהרה! ×œ× ×”×•×’×“×¨×” ססמה. השימוש ×‘×ž×¡×“Ö¾× ×ª×•× ×™× ×œ×œ× ×¡×¡×ž×” ×œ× ×ž×•×ž×œ×¥! ×”×× ×œ×”×ž×©×™×š ×œ×œ× ×¡×¡×ž×”? @@ -1801,7 +1826,7 @@ Are you sure you want to continue without a password? You must add at least one encryption key to secure your database! - × × ×œ×”×•×¡×™×£ לפחות מפתח הצפנה ×חד ל×בטחת מסד הנתוני×! + × × ×œ×”×•×¡×™×£ לפחות מפתח הצפנה ×חד ל×בטחת מסד־נתוני×! Unknown error @@ -1811,6 +1836,18 @@ Are you sure you want to continue without a password? Failed to change database credentials שינוי ×ישורי ×ž×¡×“Ö¾× ×ª×•× ×™× ×›×©×œ + + Weak password + ססמה חלשה + + + You must enter a stronger password to protect your database. + + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + + DatabaseSettingsWidgetEncryption @@ -1818,21 +1855,13 @@ Are you sure you want to continue without a password? Decryption Time: זמן פענוח: - - Change existing decryption time - שינוי זמן פענוח ×§×™×™× - - - Change - שינוי - Decryption time in seconds זמן פענוח בשניות Higher values offer more protection, but opening the database will take longer. - ×¢×¨×›×™× ×’×‘×•×”×™× ×™×•×ª×¨ ×ž×¦×™×¢×™× ×”×’× ×” טובה יותר, ×ך פתיחת מסד ×”× ×ª×•× ×™× ×ª×™×ž×©×š זמן רב יותר. + ×¢×¨×›×™× ×’×‘×•×”×™× ×™×•×ª×¨ ×ž×¦×™×¢×™× ×”×’× ×” טובה יותר, ×ך פתיחת ×ž×¡×“Ö¾× ×ª×•× ×™× ×ª×™×ž×©×š זמן רב יותר. Database format: @@ -1844,11 +1873,11 @@ Are you sure you want to continue without a password? Format cannot be changed: Your database uses KDBX 4 features - ×œ× × ×™×ª×Ÿ לשנות תבנית: מסד ×”× ×ª×•× ×™× ×ž×©×ª×ž×© בתכונות KDBX 4 + ×œ× × ×™×ª×Ÿ לשנות תבנית: ×ž×¡×“Ö¾× ×ª×•× ×™× ×ž×©×ª×ž×© בתכונות KDBX 4 Unless you need to open your database with other programs, always use the latest format. - ×× ×ת/×” צריכ/×” לפתוח ×ת מסד ×”× ×ª×•× ×™× ×©×œ×š ×¢× ×ª×•×›× ×•×ª ×חרות, תמיד תשתמש/×™ בפורמט ×”×חרון (×”×›×™ עדכני). + ×× ×ת/×” צריכ/×” לפתוח ×ת ×ž×¡×“Ö¾× ×ª×•× ×™× ×©×œ×š ×¢× ×ª×•×›× ×•×ª ×חרות, תמיד תשתמש/×™ בפורמט ×”×חרון (×”×›×™ עדכני). Encryption Algorithm: @@ -1906,11 +1935,6 @@ Are you sure you want to continue without a password? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - ×œ×œ× ×©×™× ×•×™ - Number of rounds too high Key transformation rounds @@ -1922,7 +1946,7 @@ Are you sure you want to continue without a password? If you keep this number, your database may take hours, days, or even longer to open. נעשה שימוש במספר גבוה מ×וד של סבבי המרת מפתח ×¢× ×רגון2. -×× ×ž×¡×¤×¨ ×–×” יישמר, פתיחת מסד ×”× ×ª×•× ×™× ×¢×©×•×™×” להימשך שעות ×ו ×™×ž×™× ×ו ×פילו יותר. +×× ×ž×¡×¤×¨ ×–×” יישמר, פתיחת ×ž×¡×“Ö¾× ×ª×•× ×™× ×¢×©×•×™×” להימשך שעות ×ו ×™×ž×™× ×ו ×פילו יותר. Understood, keep number @@ -1943,7 +1967,7 @@ If you keep this number, your database may take hours, days, or even longer to o If you keep this number, your database will not be protected from brute force attacks. נעשה שימוש במספר נמוך מ×וד של סבבי המרת מפתח ×¢× AES-KDF. -×× ×ž×¡×¤×¨ ×–×” ישמר, מסד ×”× ×ª×•× ×™× ×œ× ×™×”×™×” מוגן מפני תְּקִיפָה כּוֹחָנִית. +×× ×ž×¡×¤×¨ ×–×” ישמר, ×ž×¡×“Ö¾× ×ª×•× ×™× ×œ× ×™×”×™×” מוגן מפני תְּקִיפָה כּוֹחָנִית. KDF unchanged @@ -1956,12 +1980,24 @@ If you keep this number, your database will not be protected from brute force at MiB Abbreviation for Mebibytes (KDF settings) - מילי־ביט ×ž×™×œ×™Ö¾×‘×™×˜×™× ×ž×™×œ×™Ö¾×‘×™×˜×™× ×ž×™×‘ + מילי־ביט ×ž×™×œ×™Ö¾×‘×™×˜×™× ×ž×™×‘ thread(s) Threads for parallel execution (KDF settings) - ש×ִרְש×וּרש×ִרְש×וּרי×ש×ִרְש×וּרי×ש×ִרְש××•Ö¼×¨×™× + ש×ִרְש×וּרש×ִרְש×וּרי×ש×ִרְש××•Ö¼×¨×™× + + + Encryption Settings: + + + + Basic + + + + Advanced + ×ž×ª×§×“× @@ -1999,7 +2035,7 @@ If you keep this number, your database will not be protected from brute force at Database description: - תי×ור מסד הנתוני×: + תי×ור מסד־נתוני×: Database description field @@ -2021,18 +2057,10 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry מספר פרטי היסטוריה מרבי לרשומה - - Max. history items: - מספר פריטי היסטוריה מרבי: - Maximum size of history per entry גודל היסטוריה מרבי לרשומה - - Max. history size: - גודל היסטוריה מרבי: - MiB מיב @@ -2063,6 +2091,62 @@ This action is not reversible. (old) (ישן) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + בעת שמירת גדרה זו ×ו עריכת רשומה +פריטי היסטורית־רשומה ×”×™×™×©× ×™× ×‘×™×•×ª×¨ יוסרו +כך שלכול היותר תיוותר רק כמות הרשומות שצוינה. + + + Limit the amount of history items per entry to: + הגבלת כמות ההיסטוריה לרשומה ל: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + בעת שמירת גדרה זו ×ו עריכת רשומה +פריטי ההיסטורית־רשומה ×”×™×™×©× ×™× ×‘×™×•×ª×¨ יוסרו +כך שפרטי ההיסטוריה שיוותרו יסתכמו בכמות הרשומות שצוינה. + + + Limit the total size of history items per entry to: + הגבלת כמות ההיסטוריה הכוללת לרשומה ל: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + העברת ×¢×¨×›×™× ×œ×§×‘×•×¦×ª סל מיחזור +×‘×ž×§×•× ×ž×—×™×§×ª× ×ž×ž×¡×“ הנתוני×. +×¢×¨×›×™× ×©×™×ž×—×§×• מסל המיחזור +יוסרו ממסד הנתוני×. + + + Autosave delay since last change + + + + Autosave delay + + + + Autosave delay since last change in minutes + + + + min + דקה + + + Autosave delay since last change checkbox + + DatabaseSettingsWidgetKeeShare @@ -2108,7 +2192,7 @@ This action is not reversible. Delete all custom icons not in use by any entry or group - מחיקת כול ×”×¡×ž×œ×™× ×”×ž×•×ª××ž×™× ×ישית ש××™× × ×‘×©×™×ž×•×© על־ידי רשומה ×ו קבוצה ×›×œ×©×”× + מחיקת כל ×”×¡×ž×œ×™× ×”×ž×•×ª××ž×™× ×ישית ש××™× × ×‘×©×™×ž×•×© על־ידי רשומה ×ו קבוצה ×›×œ×©×”× Purge unused icons @@ -2120,7 +2204,7 @@ This action is not reversible. At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? - לפחות ×חד ×ž×”×¡×ž×œ×™× ×©× ×‘×—×¨×• × ×ž×¦× ×›×¢×ª בשימוש רשומה ×ו קבוצה ×חת לפחות. סמלי כול הרשומות והקבוצות ×”×ž×•×©×¤×¢×™× ×™×•×—×œ×¤×• בסמל ברירת המחדל. ×”×× ×œ×ž×—×•×§ ×¡×ž×œ×™× ×”× ×ž×¦××™× ×›×¢×ª בשימוש? + לפחות ×חד ×ž×”×¡×ž×œ×™× ×©× ×‘×—×¨×• × ×ž×¦× ×›×¢×ª בשימוש רשומה ×ו קבוצה ×חת לפחות. סמלי כל הרשומות והקבוצות ×”×ž×•×©×¤×¢×™× ×™×•×—×œ×¤×• בסמל ברירת המחדל. ×”×× ×œ×ž×—×•×§ ×¡×ž×œ×™× ×”× ×ž×¦××™× ×›×¢×ª בשימוש? Custom Icons Are In Use @@ -2136,7 +2220,7 @@ This action is not reversible. Purged %n icon(s) from the database. - סמל %n נמחק ממסד הנתוני×.%n ×¡×ž×œ×™× × ×ž×—×§×• ממסד הנתוני×.%n ×¡×ž×œ×™× × ×ž×—×§×• ממסד הנתוני×.%n ×¡×ž×œ×™× × ×ž×—×§×• ממסד הנתוני×. + סמל %n נמחק ממסד־נתוני×.%n ×¡×ž×œ×™× × ×ž×—×§×• ממסד־נתוני×.%n ×¡×ž×œ×™× × ×ž×—×§×• ממסד־נתוני×. @@ -2167,7 +2251,7 @@ This action is not reversible. The created database has no key or KDF, refusing to save it. This is definitely a bug, please report it to the developers. - למסד ×”× ×ª×•× ×™× ×©× ×•×¦×¨ ×ין מפתח ×ו KDF, ×•×”×•× ×ž×¡×¨×‘ לשמור ×ותו. + ×œ×ž×¡×“Ö¾× ×ª×•× ×™× ×©× ×•×¦×¨ ×ין מפתח ×ו KDF, ×•×”×•× ×ž×¡×¨×‘ לשמור ×ותו. ×–×” בהחלט תקל, × × ×“×•×•×— על כך לצוות הפתוח. @@ -2190,26 +2274,10 @@ This is definitely a bug, please report it to the developers. CSV file קובץ CSV - - Select CSV file - בחירת קובץ CSV - Merge database מיזוג ×ž×¡×“Ö¾× ×ª×•× ×™× - - KeePass 1 database - ×ž×¡×“Ö¾× ×ª×•× ×™× KeePass 1 - - - Open KeePass 1 database - פתיחת ×ž×¡×“Ö¾× ×ª×•× ×™× KeePass 1 - - - Open OPVault - פתיחת OPVault - Export database to CSV file ×™×™×¦×•× ×ž×¡×“Ö¾× ×ª×•× ×™× ×œ×§×•×‘×¥ CSV @@ -2222,22 +2290,25 @@ This is definitely a bug, please report it to the developers. Writing the HTML file failed. כתיבת קובץ ×”Ö¾HTML כשלה. + + Export database to XML file + ×™×™×¦×•× ×ž×¡×“ × ×ª×•× ×™× ×œ×§×•×‘×¥ XML + + + XML file + קובץ XML + + + Writing the XML file failed + כתיבה לקובץ HTML כשלה. + Export Confirmation ×ישור ×™×™×¦×•× You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - מסד ×”× ×ª×•× ×™× ×¢×•×ž×“ להיות ×ž×™×•×¦× ×œ×§×•×‘×¥ ×œ× ×ž×•×¦×¤×Ÿ. פעולה זו תש×יר ×ת ססמ×ות ומידע רגיש, פגיעי×! ×”×× ×œ×”×ž×©×™×š? - - - New Database - ×ž×¡×“Ö¾× ×ª×•× ×™× ×—×“×© - - - %1 [New Database] - Database tab name modifier - %1 [×ž×¡×“Ö¾× ×ª×•× ×™× ×—×“×©] + ×ž×¡×“Ö¾× ×ª×•× ×™× ×¢×•×ž×“ להיות ×ž×™×•×¦× ×œ×§×•×‘×¥ ×œ× ×ž×•×¦×¤×Ÿ. פעולה זו תש×יר ×ת ססמ×ות ומידע רגיש, פגיעי×! ×”×× ×œ×”×ž×©×™×š? %1 [Locked] @@ -2248,8 +2319,8 @@ This is definitely a bug, please report it to the developers. DatabaseWidget - Database Tags - תגי ×ž×¡×“Ö¾× ×ª×•× ×™× + Searches and Tags + חיפוש ותיוג Searching… @@ -2299,6 +2370,10 @@ This is definitely a bug, please report it to the developers. Expired entries רשומות פגות־תוקף + + Entries expiring within %1 day(s) + רשומות שתוקפן יפוג בתוך ×™×•× %1רשומות שתוקפן יפוג בתוך %1 ימי×רשומות שתוקפן יפוג בתוך %1 ×™×ž×™× + No current database. ×ין ×ž×¡×“Ö¾× ×ª×•× ×™× × ×•×›×—×™. @@ -2309,11 +2384,11 @@ This is definitely a bug, please report it to the developers. Successfully merged the database files. - קובצי מסד ×”× ×ª×•× ×™× ×ž×•×–×’×• בהצלחה. + קובצי ×ž×¡×“Ö¾× ×ª×•× ×™× ×ž×•×–×’×• בהצלחה. Database was not modified by merge operation. - מסד ×”× ×ª×•× ×™× ×œ× ×”×•×¡×’×œ כתוצ××” מפעולת המיזוג. + ×ž×¡×“Ö¾× ×ª×•× ×™× ×œ× ×”×•×¡×’×œ כתוצ××” מפעולת המיזוג. Search Results (%1) @@ -2323,13 +2398,25 @@ This is definitely a bug, please report it to the developers. No Results ×ין תוצ×ות + + Save + שמירה + + + Enter a unique name or overwrite an existing search from the list: + × × ×œ×”×–×™×Ÿ ×©× ×™×™×—×•×“×™ ×ו לכתוב על ×©× ×—×™×¤×•×© מהרשימה: + + + Save Search + שמירת חיפוש + Lock Database? ×”×× ×œ× ×¢×•×œ מסד־נתוני×? You are editing an entry. Discard changes and lock anyway? - הרשומה בעריכה. ×”×× ×œ× ×˜×•×© ×©×™× ×•×™×™× ×•×œ× ×¢×•×œ בכל ×–×ת? + הרשומה בשלבי עריכה. ×”×× ×œ× ×˜×•×© ×©×™× ×•×™×™× ×•×œ× ×¢×•×œ בכל ×–×ת? "%1" was modified. @@ -2340,7 +2427,7 @@ Save changes? Database was modified. Save changes? - מסד ×”× ×ª×•× ×™× ×”×©×ª× ×”. + ×ž×¡×“Ö¾× ×ª×•× ×™× ×”×©×ª× ×”. ×”×× ×œ×©×ž×•×¨ שינויי×? @@ -2353,7 +2440,7 @@ Save changes? The database file has changed. Do you want to load the changes? - קובץ מסד ×”× ×ª×•× ×™× ×”×©×ª× ×”. ×”×× ×œ×˜×¢×•×Ÿ ×ת השינויי×? + קובץ ×ž×¡×“Ö¾× ×ª×•× ×™× ×”×©×ª× ×”. ×”×× ×œ×˜×¢×•×Ÿ ×ת השינויי×? Merge Request @@ -2362,13 +2449,13 @@ Save changes? The database file has changed and you have unsaved changes. Do you want to merge your changes? - ×§×™×™×ž×™× ×©×™× ×•×™×™× ×‘×§×•×‘×¥ מסד ×”× ×ª×•× ×™× ×©×œ× × ×©×ž×¨×•. + ×§×™×™×ž×™× ×©×™× ×•×™×™× ×‘×§×•×‘×¥ ×ž×¡×“Ö¾× ×ª×•× ×™× ×©×œ× × ×©×ž×¨×•. ×”×× ×œ×ž×–×’ ×ת השינויי×? Could not open the new database file while attempting to autoreload. Error: %1 - ×œ× × ×™×ª×Ÿ לפתוח ×ת קובץ מסד ×”× ×ª×•× ×™× ×”×—×“×© בעת ניסיון ×וטומטית טעינה מחדש . + ×œ× × ×™×ª×Ÿ לפתוח ×ת קובץ ×ž×¡×“Ö¾× ×ª×•× ×™× ×”×—×“×© בעת ניסיון ×וטומטית טעינה מחדש . שגי××”: %1 @@ -2378,12 +2465,12 @@ Error: %1 KeePassXC has failed to save the database multiple times. This is likely caused by file sync services holding a lock on the save file. Disable safe saves and try again? - KeePassXC כשל בשמירת מסד ×”× ×ª×•× ×™× ×ž×¡×¤×¨ פעמי×. סביר להניח שהדבר × ×’×¨× ×¢×œÖ¾×™×“×™ שירות סנכרון ×§×‘×¦×™× ×©× ×•×¢×œ ×ת קובץ היעד לשמירה. + KeePassXC כשל בשמירת ×ž×¡×“Ö¾× ×ª×•× ×™× ×ž×¡×¤×¨ פעמי×. סביר להניח שהדבר × ×’×¨× ×¢×œÖ¾×™×“×™ שירות סנכרון ×§×‘×¦×™× ×©× ×•×¢×œ ×ת קובץ היעד לשמירה. ×”×× ×œ×”×©×‘×™×ª שמירות בטוחות ולנסות שוב? Writing the database failed: %1 - כתיבת מסד ×”× ×ª×•× ×™× ×›×©×œ×”: %1 + כתיבת ×ž×¡×“Ö¾× ×ª×•× ×™× ×›×©×œ×”: %1 Passwords @@ -2413,9 +2500,14 @@ Disable safe saves and try again? Could not find database file: %1 ×œ× × ×™×ª×Ÿ ×œ×ž×¦×•× ×§×•×‘×¥ מסד־נתוני×: %1 - - Entries expiring within %1 day(s) - רשומות שתוקפן יפוג בתוך ×™×•× %1רשומות שתוקפן יפוג בתוך %1 ימי×רשומות שתוקפן יפוג בתוך %1 ימי×רשומות שתוקפן יפוג בתוך %1 ×™×ž×™× + + New Database + ×ž×¡×“Ö¾× ×ª×•× ×™× ×—×“×© + + + %1 [New Database] + Database tab name modifier + %1 [×ž×¡×“Ö¾× ×ª×•× ×™× ×—×“×©] @@ -2466,7 +2558,7 @@ Disable safe saves and try again? n/a - ל/×™ + ל/×– (encrypted) @@ -2510,7 +2602,7 @@ Unfortunately, any changes made have been lost. An error occurred while validating the custom Auto-Type sequence: %1 Would you like to correct it? - ×ירעה שגי××” בעת ×ימות רצף הקלדה־ה×וטומטית מות×מת ×ישית: + ×ירעה שגי××” בעת ×ימות רצף הקלדה־×וטומטית מות×מת ×ישית: %1 ×”×× ×œ×ª×§×Ÿ ×–×ת? @@ -2518,7 +2610,7 @@ Would you like to correct it? An error occurred while validating the Auto-Type sequence for "%1": %2 Would you like to correct it? - ×ירעה שגי××” בעת ×ימות רצף הקלדה־ה×וטומטית ל־"%1": + ×ירעה שגי××” בעת ×ימות רצף הקלדה־×וטומטית ל־"%1": %2 ×”×× ×œ×ª×§×Ÿ ×–×ת? @@ -2558,21 +2650,21 @@ Would you like to correct it? Hide הסתרה + + %n hour(s) + שעה %1%1 שעות%1 שעות + %n week(s) - שבוע %n%n שבועות%n שבועות%n שבועות + שבוע %n%n שבועות%n שבועות %n month(s) - חודש %n%n חודשי×%n חודשי×%n ×—×•×“×©×™× + חודש %n%n חודשי×%n ×—×•×“×©×™× %n year(s) - שנה %n%n שני×%n שני×%n ×©× ×™× - - - %n hour(s) - + שנה %n%n שני×%n ×©× ×™× @@ -2662,23 +2754,23 @@ Would you like to correct it? EditEntryWidgetAutoType Enable Auto-Type for this entry - ×יפשור הקלדה־ה×וטומטית ברשומה זו + ×יפשור הקלדה־×וטומטית ברשומה זו Inherit default Auto-Type sequence from the group - ירושת רצף ברירת מחדל הקלדה־ה×וטומטית מהקבוצה + ירושת רצף ברירת מחדל הקלדה־×וטומטית מהקבוצה Use custom Auto-Type sequence: - שימוש ברצף הקלדה־ה×וטומטית ברירת מחדל + שימוש ברצף הקלדה־×וטומטית ברירת מחדל Custom Auto-Type sequence - רצף הקלדה־ה×וטומטית מות×× ×ישית + רצף הקלדה־×וטומטית מות×× ×ישית Open Auto-Type help webpage - פתיחת עמוד מרשתת עזרת הקלדה־ה×וטומטית + פתיחת עמוד מרשתת עזרת הקלדה־×וטומטית Window Associations @@ -2692,10 +2784,20 @@ Would you like to correct it? Add new window association הוספת שיוך חלון חדש + + + + Add item + + + Remove selected window association הסרת שיוך החלון שנבחר + + - + Remove item + - + Window title: כותרת חלון: @@ -2718,17 +2820,7 @@ Would you like to correct it? Custom Auto-Type sequence for this window - רצף הקלדה־ה×וטומטית מות×× ×ישית לחלון ×–×” - - - + - Add item - + - - - - - Remove item - - + רצף הקלדה־×וטומטית מות×× ×ישית לחלון ×–×” @@ -2831,22 +2923,10 @@ Would you like to correct it? Notes field שדה הערות - - Toggle the checkbox to reveal the notes section. - החלפת־מצב תיבת הסימון לחשיפת מקטע ההערות. - Username field השדה '×©× ×ž×©×ª×ž×©' - - Toggle notes visible - החלפת־מצב הערות גלויות - - - Notes: - הערות: - Expiration field שדה תפוגה @@ -2863,14 +2943,6 @@ Would you like to correct it? Presets קבועות מר×ש - - Password: - ססמה: - - - URL: - מען URL: - Url field שדה מען URL @@ -2879,18 +2951,10 @@ Would you like to correct it? Download favicon for URL הורדת favicon למען URL - - Title: - כותרת: - Title field שדה כותרת - - Username: - ×©× ×ž×©×ª×ž×©: - Password field שדה ססמה @@ -2899,18 +2963,42 @@ Would you like to correct it? Toggle expiration החלפת־מצב תפוגה - - Expires: - תפוגה: - - - Tags: - תגי×: - Tags list רשימת ×ª×’×™× + + &Username: + &×©× ×ž×©×ª×ž×©: + + + &Title: + &תו×ר: + + + &Password: + &ססמה: + + + UR&L: + UR&L: + + + &Notes: + &הערות: + + + Toggle notes visibility + מחלף נר×ות הערות + + + T&ags: + ת&×’×™×: + + + &Expires: + &תפוגה: + EditEntryWidgetSSHAgent @@ -2920,7 +3008,7 @@ Would you like to correct it? Remove key from agent when database is closed/locked - הסרת מפתח מהסוכן כשמסד ×”× ×ª×•× ×™× ×¡×’×•×¨/נעול + הסרת מפתח מהסוכן ×›×©×ž×¡×“Ö¾× ×ª×•× ×™× ×¡×’×•×¨/נעול Comment @@ -2950,19 +3038,6 @@ Would you like to correct it? Private key מפתח פרטי - - External file - קובץ חיצוני - - - Browser for key file - דפדוף לקובץ מפתח - - - Browse… - Button for opening file dialog - עיון... - Attachment צרופה @@ -2979,6 +3054,23 @@ Would you like to correct it? Remove from agent הסרה מסוכן + + External file + קובץ חיצוני + + + Browser for key file + דפדוף לקובץ מפתח + + + Browse… + Button for opening file dialog + עיון... + + + Generate + חילול + Select attachment file בחירת קובץ צרופה @@ -2989,7 +3081,7 @@ Would you like to correct it? n/a - ל/×™ + ל/×– Remove key from agent after @@ -3014,10 +3106,6 @@ Would you like to correct it? Icon סמל - - Browser Integration - שילוב דפדפן - Properties מ××¤×™×™× ×™× @@ -3034,6 +3122,10 @@ Would you like to correct it? Group has unsaved changes ×§×™×™×ž×™× ×©×™× ×•×™×™ קבוצה ×©×˜×¨× × ×©×ž×¨×• + + Browser Integration + שילוב דפדפן + Enable ×יפשור @@ -3049,10 +3141,6 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - עריכת קבוצה - These settings affect to the group's behaviour with the browser extension. הגדרות ×לה משפיעות על התנהגות הקבוצה בהרחברת הדפדפן. @@ -3071,7 +3159,7 @@ Would you like to correct it? Skip Auto-Submit toggle for this and sub groups - דלוג על הקלדה־ה×וטומטית לזה ולקבוצות משנה + דלוג על הקלדה־×וטומטית לזה ולקבוצות משנה Use entries only with HTTP Basic Auth: @@ -3089,6 +3177,22 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups ×œ× ×œ×”×©×ª×ž×© ב־HTTP Auth לזה ולקבוצות משנה + + Omit WWW subdomain from matching: + השמטת ×ª×ªÖ¾×ª×—×•× WWW מההת×מה: + + + Omit WWW subdomain from matching toggle for this and sub groups + השמטת ×ª×ªÖ¾×ª×—×•× WWW ממחלף ההת×מה, לקבוצה זו ותתי־קבוצות + + + Restrict matching to given browser key: + + + + Restrict matching to given browser key toggle for this and sub groups + + EditGroupWidgetKeeShare @@ -3164,7 +3268,7 @@ Supported extensions are: %1. %1 is being imported and exported by different groups in this database. - %1 ×ž×™×•×‘× ×•×ž×™×•×¦× ×¢×œÖ¾×™×“×™ קבוצות שונות במסד × ×ª×•× ×™× ×–×”. + %1 ×ž×™×•×‘× ×•×ž×™×•×¦× ×¢×œÖ¾×™×“×™ קבוצות שונות ×‘×ž×¡×“Ö¾× ×ª×•× ×™× ×–×”. KeeShare is currently disabled. You can enable import/export in the application settings. @@ -3224,7 +3328,7 @@ Supported extensions are: %1. Use default Auto-Type sequence of parent group - שימוש ברצף הקלדה־ה×וטומטית ברירת מחדל של קבוצת ×ב + שימוש ברצף הקלדה־×וטומטית ברירת מחדל של קבוצת ×ב Auto-Type: @@ -3236,7 +3340,7 @@ Supported extensions are: %1. Auto-Type toggle for this and sub groups - החלפת־מצב הקלדה־ה×וטומטית לקבוצות משנה ×לו + החלפת־מצב הקלדה־×וטומטית לקבוצות משנה ×לו Notes: @@ -3244,7 +3348,7 @@ Supported extensions are: %1. Default auto-type sequence field - רצף הקלדה־ה×וטומטית ברירת מחדל כשל + רצף הקלדה־×וטומטית ברירת מחדל כשל Notes field @@ -3256,7 +3360,7 @@ Supported extensions are: %1. Set default Auto-Type sequence - הגדרת רצף הקלדה־ה×וטומטית ברירת מחדל + הגדרת רצף הקלדה־×וטומטית ברירת מחדל Search toggle for this and sub groups @@ -3321,10 +3425,6 @@ Supported extensions are: %1. Unable to fetch favicon. ×œ× × ×™×ª×Ÿ ×œ×”×‘×™× favicon. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - ניתן ל×פשר ×ת שירות ×”×¡×ž×œ×™× ×©×œ ×תר DuckDuckGo מתפריט, ×›×œ×™× -> הגדרות -> ×בטחה - Existing icon selected. נבחר סמל ×§×™×™×. @@ -3343,7 +3443,7 @@ Supported extensions are: %1. Successfully loaded %1 of %n icon(s) - %1 מתוך %n ×¡×ž×œ×™× × ×˜×¢×Ÿ בהצלחה%1 מתוך %n ×¡×ž×œ×™× × ×˜×¢× ×• בהצלחה%1 מתוך %n ×¡×ž×œ×™× × ×˜×¢× ×• בהצלחה%1 מתוך %n ×¡×ž×œ×™× × ×˜×¢× ×• בהצלחה + %1 מתוך %n ×¡×ž×œ×™× × ×˜×¢×Ÿ בהצלחה%1 מתוך %n ×¡×ž×œ×™× × ×˜×¢× ×• בהצלחה%1 מתוך %n ×¡×ž×œ×™× × ×˜×¢× ×• בהצלחה No icons were loaded @@ -3351,11 +3451,15 @@ Supported extensions are: %1. %n icon(s) already exist in the database - סמל %n כבר ×§×™×™× ×‘×ž×¡×“ הנתוני×%n ×¡×ž×œ×™× ×›×‘×¨ ×§×™×™×ž×™× ×‘×ž×¡×“ הנתוני×%n ×¡×ž×œ×™× ×›×‘×¨ ×§×™×™×ž×™× ×‘×ž×¡×“ הנתוני×%n ×¡×ž×œ×™× ×›×‘×¨ ×§×™×™×ž×™× ×‘×ž×¡×“ ×”× ×ª×•× ×™× + סמל %n כבר ×§×™×™× ×‘×ž×¡×“Ö¾× ×ª×•× ×™×%n ×¡×ž×œ×™× ×›×‘×¨ ×§×™×™×ž×™× ×‘×ž×¡×“Ö¾× ×ª×•× ×™×%n ×¡×ž×œ×™× ×›×‘×¨ ×§×™×™×ž×™× ×‘×ž×¡×“Ö¾× ×ª×•× ×™× The following icon(s) failed: - הסמל ×”×‘× × ×›×©:×”×¡×ž×œ×™× ×”×‘××™× ×›×©×œ×•:×”×¡×ž×œ×™× ×”×‘××™× ×›×©×œ×•:×”×¡×ž×œ×™× ×”×‘××™× ×›×©×œ×•: + הסמל ×”×‘× × ×›×©:×”×¡×ž×œ×™× ×”×‘××™× ×›×©×œ×•:×”×¡×ž×œ×™× ×”×‘××™× ×›×©×œ×•: + + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + @@ -3512,7 +3616,7 @@ This may cause the affected plugins to malfunction. Are you sure you want to remove %n attachment(s)? - ×”×× ×œ×”×¡×™×¨ צרופה %n?×”×× ×œ×”×¡×™×¨ %n צרופות?×”×× ×œ×”×¡×™×¨ %n צרופות?×”×× ×œ×”×¡×™×¨ %n צרופות? + ×”×× ×œ×”×¡×™×¨ צרופה %n?×”×× ×œ×”×¡×™×¨ %n צרופות?×”×× ×œ×”×¡×™×¨ %n צרופות? Save attachments @@ -3556,7 +3660,6 @@ This may cause the affected plugins to malfunction. ×œ× × ×™×ª×Ÿ לפתוח קובץ: %1×œ× × ×™×ª×Ÿ לפתוח קובצי×: %1×œ× × ×™×ª×Ÿ לפתוח קובצי×: -%1×œ× × ×™×ª×Ÿ לפתוח קובצי×: %1 @@ -3579,7 +3682,7 @@ Your database may get very large and reduce performance. Are you sure to add this file? %1 ×”×•× ×§×•×‘×¥ גדול (%2 מב). -מסד ×”× ×ª×•× ×™× ×¢×©×•×™ להיות גדול מ×וד ×•×”×‘×™×¦×•×¢×™× ×™×¤×’×¢×•. +×ž×¡×“Ö¾× ×ª×•× ×™× ×¢×©×•×™ להיות גדול מ×וד ×•×”×‘×™×¦×•×¢×™× ×™×¤×’×¢×•. ×”×× ×œ×”×•×¡×™×£ קובץ ×–×”? @@ -3591,7 +3694,7 @@ Are you sure to add this file? The attachment '%1' was modified. Do you want to save the changes to your database? הקובץ המצורף '% 1' השתנה. -×”×× ×‘×¨×¦×•× ×š לשמור ×ת ×”×©×™× ×•×™×™× ×‘×ž×¡×“ ×”× ×ª×•× ×™× ×©×œ×š? +×”×× ×‘×¨×¦×•× ×š לשמור ×ת ×”×©×™× ×•×™×™× ×‘×ž×¡×“Ö¾× ×ª×•× ×™× ×©×œ×š? Saving attachment failed @@ -3797,6 +3900,10 @@ Error: %1 Has TOTP ×§×™×™× TOTP + + Background Color + + EntryPreviewWidget @@ -3817,8 +3924,8 @@ Error: %1 ססמה - Notes - הערות + URL + מען url Expiration @@ -3837,8 +3944,8 @@ Error: %1 ×©× ×ž×©×ª×ž×© - URL - מען url + Notes + הערות Advanced @@ -3888,6 +3995,10 @@ Error: %1 Never ××£ ×¤×¢× + + Double click to copy value + הקשה כפולה להעתקת ערך + Enabled מ×ופשר @@ -3896,6 +4007,10 @@ Error: %1 Disabled מושבת + + Double click to copy to clipboard + + EntryURLModel @@ -3903,6 +4018,10 @@ Error: %1 Invalid URL מען URL תקין + + Duplicate URL + + EntryView @@ -3918,6 +4037,10 @@ Error: %1 Reset to defaults ×יפוס לברירות המחדל + + + %1 entry(s)... + + ExportDialog @@ -4006,7 +4129,7 @@ This will leave your passwords and sensitive information vulnerable! Failed to register session on DBus at path '%1' - ×¨×™×©×•× ×”×ž×•×¤×¢ ב־DBus בנתיב '%1' כשל + ×¨×™×©×•× ×”×©×™×— ב־DBus בנתיב '%1' כשל Failed to register item on DBus at path '%1' @@ -4021,7 +4144,7 @@ This will leave your passwords and sensitive information vulnerable! FdoSecrets::Item Entry "%1" from database "%2" was used by %3 - %3 עשה שימוש ברשומה "%1" ממסד × ×ª×•× ×™× "%2" + %3 עשה שימוש ברשומה "%1" ×ž×ž×¡×“Ö¾× ×ª×•× ×™× "%2" @@ -4029,7 +4152,7 @@ This will leave your passwords and sensitive information vulnerable! %n Entry(s) was used by %1 %1 is the name of an application - %1 השתש ברשומה %n%1 השתמש ב־%n רשומות%1 השתמש ב־%n רשומות%1 השתמש ב־%n רשומות + %1 השתש ברשומה %n%1 השתמש ב־%n רשומות%1 השתמש ב־%n רשומות @@ -4140,6 +4263,147 @@ You can enable the DuckDuckGo website icon service in the security section of th הורדת פביקונס (%1/%2)... + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + עמוד ×שף + + + Entry count: %1 + + + + Group + קבוצה + + + Title + כותרת + + + Username + ×©× ×ž×©×ª×ž×© + + + Password + ססמה + + + Url + + + + + ImportWizardPageSelect + + Form + טופס + + + Import File Selection + + + + Password: + ססמה: + + + Key File: + קובץ ססמה: + + + Browse… + עיון... + + + Import Into: + + + + New Database + ×ž×¡×“Ö¾× ×ª×•× ×™× ×—×“×© + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + פתיחת OPVault + + + Select import file + + + + All files + כל ×”×§×‘×¦×™× + + + Key files + קבצי מפתח + + + Select key file + בחירת קובץ ססמה + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4169,7 +4433,7 @@ You can enable the DuckDuckGo website icon service in the security section of th Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. סופקו ××™×©×•×¨×™× ×œ× ×ª×§×™× ×™×, × × ×œ× ×¡×•×ª שוב. -×× ×¤×¢×•×œ×” זו חוזרת על עצמה, ייתכן שקובץ מסד ×”× ×ª×•× ×™× ×¤×’×•×. +×× ×¤×¢×•×œ×” זו חוזרת על עצמה, ייתכן שקובץ ×ž×¡×“Ö¾× ×ª×•× ×™× ×¤×’×•×. Header doesn't match hash @@ -4226,7 +4490,7 @@ If this reoccurs, then your database file may be corrupt. Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. סופקו ××™×©×•×¨×™× ×œ× ×ª×§×™× ×™×, × × ×œ× ×¡×•×ª שוב. -×× ×”×•×“×¢×” זו חוזרת על עצמה, ייתכן שקובץ מסד ×”× ×ª×•× ×™× ×¤×’×•×. +×× ×”×•×“×¢×” זו חוזרת על עצמה, ייתכן שקובץ ×ž×¡×“Ö¾× ×ª×•× ×™× ×¤×’×•×. (HMAC mismatch) @@ -4413,10 +4677,10 @@ If this reoccurs, then your database file may be corrupt. You can import it by clicking on Database > 'Import KeePass 1 database…'. This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. - הקובץ שנבחר ×”×•× ×ž×¡×“ × ×ª×•× ×™× ×™×©×Ÿ של KeePass 1 (.kdb). + הקובץ שנבחר ×”×•× ×ž×¡×“Ö¾× ×ª×•× ×™× ×™×©×Ÿ של KeePass 1 (.kdb). -ניתן ×œ×™×™×‘× ×ותו על־ידי לחיצה על מסד × ×ª×•× ×™× -> '×™×™×‘×•× KeePass 1 מסד × ×ª×•× ×™× ...'. -זו הגירה חד־כיוונית. ×œ× ×ª×ª×פשר פתיחת מסד ×”× ×ª×•× ×™× ×”×ž×™×•×‘× ×¢× ×’×¨×¡×ª KeePassX 0.4 הישנה. +ניתן ×œ×™×™×‘× ×ותו על־ידי לחיצה על ×ž×¡×“Ö¾× ×ª×•× ×™× -> '×™×™×‘×•× KeePass 1 ×ž×¡×“Ö¾× ×ª×•× ×™× ...'. +זו הגירה חד־כיוונית. ×œ× ×ª×ª×פשר פתיחת ×ž×¡×“Ö¾× ×ª×•× ×™× ×”×ž×™×•×‘× ×¢× ×’×¨×¡×ª KeePassX 0.4 הישנה. Not a KeePass database. @@ -4519,7 +4783,7 @@ Line %2, column %3 Auto-type association window or sequence missing - חסר חלון שיוך ×ו רצף הקלדה־ה×וטומטית + חסר חלון שיוך ×ו רצף הקלדה־×וטומטית Invalid bool value @@ -4574,17 +4838,6 @@ Line %2, column %3 פתיחת קובץ מפתח כשלה - - KeePass1OpenWidget - - Import KeePass1 Database - ×™×™×‘×•× ×ž×¡×“Ö¾× ×ª×•× ×™× KeePass1 - - - Unable to open the database. - ×œ× × ×™×ª×Ÿ לפתוח מסד־נתוני×. - - KeePass1Reader @@ -4648,7 +4901,7 @@ Line %2, column %3 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. סופקו ××™×©×•×¨×™× ×œ× ×ª×§×™× ×™×, × × ×œ× ×¡×•×ª שוב. -×× ×¤×¢×•×œ×” זו חוזרת על עצמה, ייתכן שקובץ מסד ×”× ×ª×•× ×™× ×¤×’×•×. +×× ×¤×¢×•×œ×” זו חוזרת על עצמה, ייתכן שקובץ ×ž×¡×“Ö¾× ×ª×•× ×™× ×¤×’×•×. Key transformation failed @@ -4821,11 +5074,11 @@ If this reoccurs, then your database file may be corrupt. Generate a new key file or choose an existing one to protect your database. - חילול קובץ מפתח חדש ×ו בחירת קובץ מפתח ×§×™×™× ×œ×”×’× ×” על מסד הנתוני×. + חילול קובץ מפתח חדש ×ו בחירת קובץ מפתח ×§×™×™× ×œ×”×’× ×” על מסד־נתוני×. Note: Do NOT use a file that may change as that will prevent you from unlocking your database. - הערה: × × ×œ× ×œ×”×©×ª×ž×© בקובץ שעשוי להשתנות כך שימנע ×ת שחרור נעילת מסד הנתוני×. + הערה: × × ×œ× ×œ×”×©×ª×ž×© בקובץ שעשוי להשתנות כך שימנע ×ת שחרור נעילת מסד־נתוני×. Browse for key file @@ -4903,7 +5156,7 @@ Message: %2 You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. - ×œ× × ×™×ª×Ÿ להשתמש במסד ×”× ×ª×•× ×™× ×”× ×•×›×—×™ כקובץ המפתח שלו. × × ×œ×‘×—×•×¨ קובץ ×חר ×ו לחולל קובץ מפתח חדש. + ×œ× × ×™×ª×Ÿ להשתמש ×‘×ž×¡×“Ö¾× ×ª×•× ×™× ×”× ×•×›×—×™ כקובץ המפתח שלו. × × ×œ×‘×—×•×¨ קובץ ×חר ×ו לחולל קובץ מפתח חדש. Suspicious Key File @@ -4912,7 +5165,7 @@ Message: %2 The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. Are you sure you want to continue with this file? - קובץ המפתח שנבחר נר××” כמו קובץ מסד נתוני ססמ×ות. קובץ מפתח חייב להיות קובץ × ×™×™×— ×©×œ×¢×•×œ× ×œ× ×™×©×ª× ×” ×ו שהגישה למסד ×”× ×ª×•× ×™× ×ª×בד לנצח. + קובץ המפתח שנבחר נר××” כמו קובץ מסד נתוני ססמ×ות. קובץ מפתח חייב להיות קובץ × ×™×™×— ×©×œ×¢×•×œ× ×œ× ×™×©×ª× ×” ×ו שהגישה ×œ×ž×¡×“Ö¾× ×ª×•× ×™× ×ª×בד לנצח. ×”×× ×œ×”×ž×©×™×š ×¢× ×§×•×‘×¥ ×–×”? @@ -4941,10 +5194,6 @@ Are you sure you want to continue with this file? &Recent Databases ×ž×¡×“×™Ö¾× ×ª×•× ×™× &××—×¨×•× ×™× - - &Import - &×™×™×‘×•× - &Export &×™×™×¦×•× @@ -4965,6 +5214,10 @@ Are you sure you want to continue with this file? TOTP TOTP + + Tags + ×ª×’×™× + &Groups &קבוצות @@ -5009,34 +5262,18 @@ Are you sure you want to continue with this file? &New Database… &×ž×¡×“Ö¾× ×ª×•× ×™× ×—×“×©... - - Create a new database - יצירת ×ž×¡×“Ö¾× ×ª×•× ×™× ×—×“×© - &Merge From Database… - &מיזוג ממסד נתוני×... - - - Merge from another KDBX database - מיזוג ממסד × ×ª×•× ×™× KDBX ×חר + &מיזוג ממסד־נתוני×... &New Entry… &רשומה חדשה... - - Add a new entry - הוספת רשומה חדשה - &Edit Entry… &עריכת רשומה... - - View or edit entry - הצגת ×ו עריכת רשומה - &Delete Entry… &מחיקת רשומה... @@ -5045,10 +5282,6 @@ Are you sure you want to continue with this file? &New Group… &קבוצה חדשה... - - Add a new group - הוספת קבוצה חדשה - &Edit Group… &עריכת קבוצה... @@ -5081,18 +5314,10 @@ Are you sure you want to continue with this file? Database &Reports… &דוחות מסד־נתוני×... - - Statistics, health check, etc. - סטטיסטיקה, בדיקת תקינות ועוד. - &Database Settings… &הגדרות מסד־נתוני×... - - Database settings - הגדרות ×ž×¡×“Ö¾× ×ª×•× ×™× - &Clone Entry… &שכפול רשומה... @@ -5101,34 +5326,18 @@ Are you sure you want to continue with this file? Move u&p העברה &מעלה - - Move entry one step up - העברת רשומה צעד ×חד מעלה - Move do&wn העברה &מטה - - Move entry one step down - העברת רשומה צעד ×חד מטה - Copy &Username העתקת &×©× ×ž×©×ª×ž×© - - Copy username to clipboard - העתק ×©× ×ž×©×ª×ž×© ×œ×œ×•×—Ö¾×”×’×–×™×¨×™× - Copy &Password העתקת &ססמה - - Copy password to clipboard - העתקת ססמ×ות ×œ×œ×•×—Ö¾×”×’×–×™×¨×™× - &Settings &הגדרות @@ -5139,7 +5348,7 @@ Are you sure you want to continue with this file? Perform &Auto-Type - ביצוע &הקלדה־ה×וטומטית + ביצוע &הקלדה־×וטומטית Download &Favicon @@ -5155,32 +5364,20 @@ Are you sure you want to continue with this file? Lock &All Databases - &נעילת כול ×ž×¡×“×™Ö¾×”× ×ª×•× ×™× + &נעילת כל ×ž×¡×“×™Ö¾×”× ×ª×•× ×™× &Title &כותרת - Copy title to clipboard - העתקת כותרת ×œ×œ×•×—Ö¾×”×’×–×™×¨×™× - - - &URL - &מען URL - - - Copy URL to clipboard - העתקת מען URL ×œ×œ×•×—Ö¾×”×’×–×™×¨×™× + Copy &URL + העתקת מען־URL &Notes &הערות - - Copy notes to clipboard - העתקת הערות ×œ×œ×•×—Ö¾×”×’×–×™×¨×™× - &CSV File… &קובץ CSV... @@ -5193,26 +5390,14 @@ Are you sure you want to continue with this file? KeePass 1 Database… ×ž×¡×“Ö¾× ×ª×•× ×™× KeePass 1... - - Import a KeePass 1 database - ×™×™×‘×•× ×ž×¡×“ נתוני KeePass 1 - 1Password Vault… כספת 1Password... - - Import a 1Password Vault - ×™×™×‘×•× ×›×¡×¤×ª 1Password - CSV File… קובץ CSV... - - Import a CSV file - ×™×‘×•× ×§×•×‘×¥ CSV - Show TOTP הצגת TOTP @@ -5229,6 +5414,10 @@ Are you sure you want to continue with this file? Copy &TOTP העתקת &TOTP + + Copy Password and TOTP + העתקת ססמה ו־TOTP + E&mpty recycle bin &ריקןן סל־מחזור @@ -5253,10 +5442,6 @@ Are you sure you want to continue with this file? &Online Help עזרה &מקוונת - - Go to online documentation - מעבר לתיעוד מקוון - &User Guide &מדריך למשתמש @@ -5325,6 +5510,10 @@ Are you sure you want to continue with this file? Clone Group... שכפול קבוצה... + + &XML File… + &קובץ XML... + Clear history נקוי היסטוריה @@ -5342,7 +5531,7 @@ Are you sure you want to continue with this file? There is a high risk of corruption, maintain a backup of your databases. This version is not meant for production use. ×זהרה: נעשה שימוש בבניה ×œ× ×™×¦×™×‘×” של KeePassXC! -×§×™×™× ×¡×™×›×•×Ÿ גבוה להשחתה, × × ×œ×©×ž×•×¨ גיבוי מסדי הנתוני×. +×§×™×™× ×¡×™×›×•×Ÿ גבוה להשחתה, × × ×œ×©×ž×•×¨ גיבוי מסדי־נתוני×. גרסה זו ××™× ×” מיועדת לשימוש בייצור. @@ -5357,9 +5546,13 @@ We recommend you use the AppImage available on our downloads page. ×זהרה: גרסת ×”Ö¾Qt עלולה ×œ×’×¨×•× ×œÖ¾KeePassXC לקרוס בשימוש במקלדת על המסך! ×נו ×ž×ž×œ×™×¦×™× ×œ×”×©×ª×ž×© ב־AppImage הזמין בעמוד ההורדות שלנו. + + No Tags + ×œ×œ× ×ª×’ + Restore Entry(s) - שחזור רשומהשחזור רשומותשחזור רשומותשחזור רשומות + שחזור רשומהשחזור רשומותשחזור רשומות Settings @@ -5367,11 +5560,11 @@ We recommend you use the AppImage available on our downloads page. Check for updates on startup? - ×”×× ×œ×‘×“×•×§ זמינות ×¢×“×›×•× ×™× ×‘×¢×ª ×”×תחול? + ×”×× ×œ×‘×“×•×§ זמינות ×¢×“×›×•× ×™× ×‘×¢×ª ×”×יתחול? Would you like KeePassXC to check for updates on startup? - ×”×× ×œ×פשר ל־KeePassXC לבדוק ×¢×“×›×•× ×™× ×‘×¢×ª ×”×תחול? + ×”×× ×œ×פשר ל־KeePassXC לבדוק ×¢×“×›×•× ×™× ×‘×¢×ª ×”×יתחול? You can always check for updates manually from the application menu. @@ -5385,6 +5578,10 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC יצי××” מ־KeePassXC + + %1 Entry(s) + רשומה %1 %1 רשומות%1 רשומות + Please present or touch your YubiKey to continue… × × ×œ×”×¦×™×’ ×ו לגעת ב־YubiKey על מנת להמשך... @@ -5397,6 +5594,274 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? × × ×œ×תחל ×ת ×”×™×™×©×•× ×œ×”×—×œ×ª הגדרה זו. ×”×× ×œ×תחל כעת? + + Allow Screen Capture + ×פשור לכידת מסך + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + + + + Import Passkey + + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + עריכת רשומה + + + Delete Entry + + + + Create Group + + + + Edit Group + עריכת קבוצה + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + העתקת ×©× ×ž×©×ª×ž×© + + + Copy Password + העתקת ססמה + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + ×™×™×‘×•× ×ž×¡×“Ö¾× ×ª×•× ×™× KeePass1 + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + ManageDatabase @@ -5454,26 +5919,6 @@ We recommend you use the AppImage available on our downloads page. Overwriting %1 [%2] כתיבה על %1 [%2] - - older entry merged from database "%1" - רשומות ישנות יותר מוזגו ממסד × ×ª×•× ×™× "%1" - - - Adding backup for older target %1 [%2] - הוספת גיבוי עבור יעד ישן יותר %1 [%2] - - - Adding backup for older source %1 [%2] - הוספת גיבוי למקור ישן יותר %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - ×™×™×©×•× ×—×•×–×¨ של רשומת יעד ישנה נוסף על המקור החדש יותר %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - ×™×™×©×•× ×—×•×–×¨ של רשומת מקור ישנה נוסף על היעד החדש יותר %1 [%2] - Synchronizing from newer source %1 [%2] סנכרן ממקור חדש יותר %1 [%2] @@ -5531,15 +5976,7 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - ×›×ן ניתן להת××™× ×ת הגדרות הצפנת מסד הנתוני×. ×ל ד××’×”, ×פשר ×™×”×™×” לשנות ××•×ª× ×ž×וחר יותר בהגדרות מסד הנתוני×. - - - Advanced Settings - הגדרות מתקדמות - - - Simple Settings - הגדרות פשוטות + ×›×ן ניתן להת××™× ×ת הגדרות הצפנת מסד־נתוני×. ×ל ד××’×”, ×פשר ×™×”×™×” לשנות ××•×ª× ×ž×וחר יותר בהגדרות מסד־נתוני×. @@ -5550,7 +5987,7 @@ We recommend you use the AppImage available on our downloads page. A set of credentials known only to you that protects your database. - ערכת ××™×©×•×¨×™× ×”×™×“×•×¢×” רק לך המגנה על מסד הנתוני×. + ערכת ××™×©×•×¨×™× ×”×™×“×•×¢×” רק לך המגנה על מסד־נתוני×. @@ -5561,18 +5998,18 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - ×ן ניתן להת××™× ×ת הגדרות הצפנת מסד הנתוני×. ×ל ד××’×”, ×פשר ×™×”×™×” לשנות ××•×ª× ×ž×וחר יותר בהגדרות מסד הנתוני×. + ×ן ניתן להת××™× ×ת הגדרות הצפנת מסד־נתוני×. ×ל ד××’×”, ×פשר ×™×”×™×” לשנות ××•×ª× ×ž×וחר יותר בהגדרות מסד־נתוני×. NewDatabaseWizardPageMetaData General Database Information - מידע כללי ×ודות מסד ×”× ×ª×•× ×™× + מידע כללי ×ודות ×ž×¡×“Ö¾× ×ª×•× ×™× Please fill in the display name and an optional description for your new database: - × × ×œ×”×–×™×Ÿ ×ת ×©× ×”×ž×¦×’ ותי×ור חלופי למסד ×”× ×ª×•× ×™× ×”×—×“×©: + × × ×œ×”×–×™×Ÿ ×ת ×©× ×”×ž×¦×’ ותי×ור חלופי ×œ×ž×¡×“Ö¾× ×ª×•× ×™× ×”×—×“×©: @@ -5621,15 +6058,6 @@ We recommend you use the AppImage available on our downloads page. ציפיה ל־%1 ×‘×ª×™× ×©×œ מלל רגיל, נמצ×ו %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - קרי×ת ×ž×¡×“Ö¾× ×ª×•× ×™× ×œ× ×”× ×™×‘×” ×Ö¶×“Ö°×’Ö¼Ö¸× -%1 - - OpVaultReader @@ -5703,6 +6131,10 @@ We recommend you use the AppImage available on our downloads page. Unknown cipher: %1 צופן ×œ× ×™×“×•×¢: %1 + + AES-256/GCM is currently not supported + AES-256/GCM ×œ× × ×ª×ž×š לעת עתה + Passphrase is required to decrypt this key נדרש ביטוי ססמה כדי לפענח מפתח ×–×” @@ -5721,7 +6153,7 @@ We recommend you use the AppImage available on our downloads page. Failed to initialize cipher: %1 - ×תחול צופן כשל: %1 + ×יתחול צופן כשל: %1 Decryption failed: %1 @@ -5769,26 +6201,174 @@ We recommend you use the AppImage available on our downloads page. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - ססמ×ות ×œ× ×ª×•×מות + SSH Key Generator + מחולל מפתח SSH - Passwords match so far - ססמ×ות תו×מות עד ×›×” + Type + סוג - Toggle Password (%1) - החלפת־מצב ססמה (%1) + Bits + סיביות - Generate Password (%1) - חילול ססמה (%1) + Comment + הערה + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + - Warning: Caps Lock enabled! - ×זהרה: ×ופשרה נעילת רישיות! + Export the following Passkey entries. + + + + Filenames will be generated with title and .passkey file extension. + + + + Export entries + + + + Export Selected + + + + Cancel + ביטול + + + Export to folder + + + + + PasskeyExporter + + KeePassXC: Passkey Export + + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + + Cannot open file + + + + Cannot open file "%1" for writing. + + + + Cannot write to file + + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + + + + Username: %1 + + + + Group + קבוצה + + + Database + + + + Import Passkey + + + + Import + ×™×™×‘×•× + + + Cancel + ביטול + + + Import the following Passkey: + + + + Entry + רשומה + + + Import the following Passkey to this entry: + + + + Create new entry + + + + Default Passkeys group (Imported Passkeys) + + + + Relying Party: %1 + + + + + PasskeyImporter + + Passkey file + + + + All files + כל ×”×§×‘×¦×™× + + + Open Passkey file + + + + Cannot open file + + + + Cannot open file "%1" for reading. + + + + Cannot import Passkey + + + + Cannot import Passkey file "%1". Data is missing. + + + + Cannot import Passkey file "%1". Private key is missing or malformed. + + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + @@ -6053,6 +6633,30 @@ We recommend you use the AppImage available on our downloads page. Entropy: %1 bit ×נטרופיה: %1 סיביות + + Password Quality: %1 + ×יכות ססמה: %1 + + + Poor + Password quality + עלוב + + + Weak + Password quality + חלש + + + Good + Password quality + טוב + + + Excellent + Password quality + מצוין + Confirm Delete Wordlist ×ישור מחיקת רשימת ×ž×™×œ×™× @@ -6099,9 +6703,32 @@ Do you want to overwrite it? Special Characters ×ª×•×•×™× ×ž×™×•×—×“×™× + + + PasswordWidget - Password Quality: %1 - ×יכות ססמה: %1 + Passwords do not match + ססמ×ות ×œ× ×ª×•×מות + + + Passwords match so far + ססמ×ות תו×מות עד ×›×” + + + Toggle Password (%1) + החלפת־מצב ססמה (%1) + + + Generate Password (%1) + חילול ססמה (%1) + + + Warning: Caps Lock enabled! + ×זהרה: ×ופשרה נעילת רישיות! + + + Quality: %1 + ×יכות: %1 Poor @@ -6123,6 +6750,10 @@ Do you want to overwrite it? Password quality מצוין + + Toggle password visibility using Control + H. Open the password generator using Control + G. + + PickcharsDialog @@ -6177,6 +6808,10 @@ Do you want to overwrite it? Continue המשך + + Continue with weak password + + QObject @@ -6290,7 +6925,7 @@ Do you want to overwrite it? Add a new entry to a database. - הוספת רשומה חדשה למסד הנתוני×. + הוספת רשומה חדשה למסד־נתוני×. Path of the entry to add. @@ -6310,7 +6945,7 @@ Do you want to overwrite it? Writing the database failed %1. - כתיבת מסד ×”× ×ª×•× ×™× ×›×©×œ×” %1. + כתיבת ×ž×¡×“Ö¾× ×ª×•× ×™× ×›×©×œ×” %1. Successfully added entry %1. @@ -6318,7 +6953,7 @@ Do you want to overwrite it? Adds a new group to a database. - הוספת קבוצה חדשה למסד נתוני×. + הוספת קבוצה חדשה למסד־נתוני×. Path of the group to add. @@ -6374,7 +7009,7 @@ Do you want to overwrite it? Password for '%1' has been leaked %2 time(s)! - הססמה של '%1' הודלפה ×¤×¢× %2!הססמה של '%1' הודלפה %2 פעמי×!הססמה של '%1' הודלפה %2 פעמי×!הססמה של '%1' הודלפה %2 פעמי×! + הססמה של '%1' הודלפה ×¤×¢× %2!הססמה של '%1' הודלפה %2 פעמי×!הססמה של '%1' הודלפה %2 פעמי×! Password for '%1' has been leaked! @@ -6524,7 +7159,7 @@ Do you want to overwrite it? Clearing the clipboard in %1 second(s)... - ניקוי ×œ×•×—Ö¾×’×–×™×¨×™× ×‘×ª×•×š שניה %1...ניקוי ×œ×•×—Ö¾×’×–×™×¨×™× ×‘×ª×•×š %1 שניות...ניקוי ×œ×•×—Ö¾×’×–×™×¨×™× ×‘×ª×•×š %1 שניות...ניקוי ×œ×•×—Ö¾×’×–×™×¨×™× ×‘×ª×•×š %1 שניות... + ניקוי ×œ×•×—Ö¾×’×–×™×¨×™× ×‘×ª×•×š שניה %1...ניקוי ×œ×•×—Ö¾×’×–×™×¨×™× ×‘×ª×•×š %1 שניות...ניקוי ×œ×•×—Ö¾×’×–×™×¨×™× ×‘×ª×•×š %1 שניות... Clipboard cleared! @@ -6532,7 +7167,7 @@ Do you want to overwrite it? Close the currently opened database. - סגירת מסד ×”× ×ª×•× ×™× ×”× ×•×›×—×™ + סגירת ×ž×¡×“Ö¾× ×ª×•× ×™× ×”× ×•×›×—×™ Display this help. @@ -6552,11 +7187,11 @@ Do you want to overwrite it? Deactivate password key for the database. - השבתת הפעלת מפתח ססמה עבור מסד הנתוני×. + השבתת הפעלת מפתח ססמה עבור מסד־נתוני×. Yubikey slot and optional serial used to access the database (e.g., 1:7370001). - חריץ Yubikey וסדרה חלופית המשמשת לגישה למסד ×”× ×ª×•× ×™× (למשל, 1:7370001). + חריץ Yubikey וסדרה חלופית המשמשת לגישה ×œ×ž×¡×“Ö¾× ×ª×•× ×™× (למשל, 1:7370001). slot[:serial] @@ -6570,30 +7205,36 @@ Do you want to overwrite it? Too many arguments provided. סופקו ×ž×©×ª× ×™× ×¨×‘×™× ×ž×“×™. + + Path of the database. + הנתיב למסד־נתוני×. + Target decryption time in MS for the database. - זמן פענוח יעד מסד ×”× ×ª×•× ×™× ×‘×ž×™×œ×™Ö¾×©× ×™×•×ª. + זמן פענוח יעד ×ž×¡×“Ö¾× ×ª×•× ×™× ×‘×ž×™×œ×™Ö¾×©× ×™×•×ª. time זמן + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + הגדרת קובץ מפתח ×œ×ž×¡×“Ö¾×”× ×ª×•× ×™× +×פשרות זו הוצ××” משימוש, × × ×œ×”×©×ª×ž×© בפקודה --set-key-file במקו×. + Set the key file for the database. - הגדרת קובץ המפתח עבור מסד הנתוני×. + הגדרת קובץ המפתח עבור מסד־נתוני×. Set a password for the database. - הגדרת ססמה למסד הנתוני×. + הגדרת ססמה למסד־נתוני×. Create a new database. יצירת ×ž×¡×“Ö¾× ×ª×•× ×™× ×—×“×© - - Path of the database. - הנתיב למסד הנתוני×. - Invalid decryption time %1. זמן פענוח ×œ× ×ª×§×™×Ÿ %1. @@ -6638,6 +7279,158 @@ Do you want to overwrite it? Successfully created new database. ×ž×¡×“Ö¾× ×ª×•× ×™× ×—×“×© נוצר בהצלחה. + + Unset the password for the database. + הסרת הגדרת ססמה למסד־הנתוני×. + + + Unset the key file for the database. + הסרת הגדרת קובץ המפתח למסד־הנתוני×. + + + Edit a database. + עריכת מסד־נתוני×. + + + Cannot use %1 and %2 at the same time. + ×œ× × ×™×ª×Ÿ להשתמש ב־%1 וב־%2 בו זמנית. + + + Could not change the database key. + ×œ× × ×™×ª×Ÿ ×”×™×” לשנות ×ת מפתח מסד־הנתוני×. + + + Database was not modified. + ×ž×¡×“Ö¾× ×ª×•× ×™× ×œ× ×”×©×ª× ×”. + + + Writing the database failed: %1 + כתיבת ×ž×¡×“Ö¾× ×ª×•× ×™× ×›×©×œ×”: %1 + + + Successfully edited the database. + ×ž×¡×“Ö¾× ×ª×•× ×™× × ×¢×¨×š בהצלחה. + + + Cannot remove password: The database does not have a password. + ×œ× × ×™×ª×Ÿ להסיר ססמה: ×ין ×œ×ž×¡×“Ö¾×”× ×ª×•× ×™× ×¡×¡×ž×”. + + + Cannot remove file key: The database does not have a file key. + ×œ× × ×™×ª×Ÿ להסיר קובץ מפתח: ×ין ×œ×ž×¡×“Ö¾×”× ×ª×•× ×™× ×§×•×‘×¥ מפתח. + + + Loading the new key file failed: %1 + טעינת קובץ מפתח כשלה: %1 + + + Found unexpected Key type %1 + נמצ סוג מפתח ×œ× ×¦×¤×•×™ %1 + + + Cannot remove all the keys from a database. + ×œ× × ×™×ª×Ÿ להסיר ×ת כל המפתחות ממסד־נתוני×. + + + Show a database's information. + הצגת מידע מסד־נתוני×. + + + UUID: + UUID: + + + Name: + ש×: + + + Description: + תי×ור: + + + Cipher: + צופן: + + + KDF: + KDF: + + + Recycle bin is enabled. + סל־מחזור מ×ופשר. + + + Recycle bin is not enabled. + סל־מחזור מושבת. + + + Location + ×ž×§×•× + + + Database created + ×ž×¡×“Ö¾× ×ª×•× ×™× × ×•×¦×¨ + + + Last saved + שמירה ×חרונה + + + Unsaved changes + ×©×™× ×•×™×™× ×©×œ× × ×©×ž×¨×• + + + yes + כן + + + no + ×œ× + + + Number of groups + מספר קבוצות + + + Number of entries + מספר רשומות + + + Number of expired entries + מספר רשומות ×©×ª×•×§×¤× ×¤×’ + + + Unique passwords + ססמ×ות ייחודיות + + + Non-unique passwords + ססמ×ות ל×־ייחודיות + + + Maximum password reuse + שימוש חוזר מרבי בססמה + + + Number of short passwords + מספר ססמ×ות קצרות + + + Number of weak passwords + מספר ססמ×ות חלשות + + + Entries excluded from reports + רשומות מוחרגות מדוחות + + + Average password length + ×ורך ססמה ממוצע + + + %1 characters + %1 ×ª×•×•×™× + Word count for the diceware passphrase. ספירת ×ž×™×œ×™× ×¢×‘×•×¨ ביטוי ססמה הטלת־קוביות. @@ -6689,10 +7482,6 @@ Do you want to overwrite it? Enter new password for entry: הזנת ססמה חדשה לרשומה: - - Writing the database failed: %1 - כתיבת מסד ×”× ×ª×•× ×™× ×›×©×œ×”: %1 - Successfully edited entry %1. רשומה %1 נערכה בהצלחה. @@ -6903,11 +7692,11 @@ Do you want to overwrite it? Path of the XML database export. - נתיב ×™×™×¦×•× ×ž×¡×“ ×”× ×ª×•× ×™× XML. + נתיב ×™×™×¦×•× ×ž×¡×“Ö¾× ×ª×•× ×™× XML. Path of the new database. - הנתיב של מסד ×”× ×ª×•× ×™× ×”×—×“×©. + הנתיב של ×ž×¡×“Ö¾× ×ª×•× ×™× ×”×—×“×©. Unable to import XML database: %1 @@ -6915,107 +7704,7 @@ Do you want to overwrite it? Successfully imported database. - מסד ×”× ×ª×•× ×™× ×™×•×‘× ×‘×”×¦×œ×—×”. - - - Show a database's information. - הצגת מידע מסד־נתוני×. - - - UUID: - UUID: - - - Name: - ש×: - - - Description: - תי×ור: - - - Cipher: - צופן: - - - KDF: - KDF: - - - Recycle bin is enabled. - סל־מחזור מ×ופשר. - - - Recycle bin is not enabled. - סל־מחזור מושבת. - - - Location - ×ž×§×•× - - - Database created - ×ž×¡×“Ö¾× ×ª×•× ×™× × ×•×¦×¨ - - - Last saved - שמירה ×חרונה - - - Unsaved changes - ×©×™× ×•×™×™× ×©×œ× × ×©×ž×¨×• - - - yes - כן - - - no - ×œ× - - - Number of groups - מספר קבוצות - - - Number of entries - מספר רשומות - - - Number of expired entries - מספר רשומות ×©×ª×•×§×¤× ×¤×’ - - - Unique passwords - ססמ×ות ייחודיות - - - Non-unique passwords - ססמ×ות ל×־ייחודיות - - - Maximum password reuse - שימוש חוזר מרבי בססמה - - - Number of short passwords - מספר ססמ×ות קצרות - - - Number of weak passwords - מספר ססמ×ות חלשות - - - Entries excluded from reports - רשומות מוחרגות מדוחות - - - Average password length - ×ורך ססמה ממוצע - - - %1 characters - %1 ×ª×•×•×™× + ×ž×¡×“Ö¾× ×ª×•× ×™× ×™×•×‘× ×‘×”×¦×œ×—×”. Unknown command %1 @@ -7065,15 +7754,15 @@ Available commands: Use the same credentials for both database files. - × × ×œ×”×©×ª×ž×© ב××•×ª× ××™×©×•×¨×™× ×¢×‘×•×¨ שני קבצי מסדי הנתוני×. + × × ×œ×”×©×ª×ž×© ב××•×ª× ××™×©×•×¨×™× ×¢×‘×•×¨ שני קבצי מסדי־נתוני×. Key file of the database to merge from. - קובץ מפתח של מסד ×”× ×ª×•× ×™× ×œ×ž×™×–×•×’. + קובץ מפתח של ×ž×¡×“Ö¾× ×ª×•× ×™× ×œ×ž×™×–×•×’. Deactivate password key for the database to merge from. - השבתת מפתח ססמת מסד ×”× ×ª×•× ×™× ×©×™×ž×•×–×’. + השבתת מפתח ססמת ×ž×¡×“Ö¾× ×ª×•× ×™× ×©×™×ž×•×–×’. Only print the changes detected by the merge operation. @@ -7081,7 +7770,7 @@ Available commands: Yubikey slot for the second database. - חריץ Yubikey למסד ×”× ×ª×•× ×™× ×”×©× ×™. + חריץ Yubikey ×œ×ž×¡×“Ö¾× ×ª×•× ×™× ×”×©× ×™. slot @@ -7093,7 +7782,7 @@ Available commands: Path of the database to merge from. - הנתיב למסד ×”× ×ª×•× ×™× ×©×™×ž×•×–×’. + הנתיב ×œ×ž×¡×“Ö¾× ×ª×•× ×™× ×©×™×ž×•×–×’. Error reading merge file: @@ -7111,7 +7800,7 @@ Available commands: Database was not modified by merge operation. - מסד ×”× ×ª×•× ×™× ×œ× ×”×•×¡×’×œ כתוצ××” מפעולת המיזוג. + ×ž×¡×“Ö¾× ×ª×•× ×™× ×œ× ×”×•×¡×’×œ כתוצ××” מפעולת המיזוג. Moves an entry to a new group. @@ -7163,7 +7852,7 @@ Available commands: Cannot remove root group from database. - ×œ× × ×™×ª×Ÿ להסיר קבוצת שורש ממסד הנתוני×. + ×œ× × ×™×ª×Ÿ להסיר קבוצת שורש ממסד־נתוני×. Successfully recycled group %1. @@ -7189,6 +7878,10 @@ Available commands: Show the protected attributes in clear text. הצגת התכונות המוגנות במלל רגיל. + + Show all the attributes of the entry. + הצגת כל מ×פייני הרשומה. + Show the attachments of the entry. הצגת הצרופה של הרשומה. @@ -7259,6 +7952,10 @@ Please consider generating a new key file. Invalid YubiKey serial %1 YubiKey סידורי %1 ×œ× ×ª×§×™×Ÿ + + Please present or touch your YubiKey to continue. + × × ×œ×”×¦×™×’ ×ו לגעת ב־YubiKey על מנת להמשך... + Enter password to encrypt database (optional): × × ×œ×”×–×™×Ÿ ססמה להצפנת ×ž×¡×“Ö¾× ×ª×•× ×™× (חלופי): @@ -7277,7 +7974,7 @@ Please consider generating a new key file. No program defined for clipboard manipulation - ×œ× ×”×•×’×“×¨×” תכנית לטפלול ×œ×•×—Ö¾×”×’×–×™×¨×™× + ×œ× ×”×•×’×“×¨×” תוכנית לטפלול ×œ×•×—Ö¾×”×’×–×™×¨×™× All clipping programs failed. Tried %1 @@ -7310,7 +8007,7 @@ Please consider generating a new key file. Failed to load okon processed database: %1 - טעינת מסד ×”× ×ª×•× ×™× ×ž×¢×•×‘×“ okon כשלה: %1 + טעינת ×ž×¡×“Ö¾× ×ª×•× ×™× ×ž×¢×•×‘×“ okon כשלה: %1 Very weak password @@ -7330,7 +8027,7 @@ Please consider generating a new key file. Password is used %1 time(s) - נעשה שימוש בססמה ×¤×¢× %1נעשה שימוש בססמה %1 פעמי×נעשה שימוש בססמה %1 פעמי×נעשה שימוש בססמה %1 ×¤×¢×ž×™× + נעשה שימוש בססמה ×¤×¢× %1נעשה שימוש בססמה %1 פעמי×נעשה שימוש בססמה %1 ×¤×¢×ž×™× Password has expired @@ -7350,7 +8047,7 @@ Please consider generating a new key file. Password expires in %1 day(s) - תוקף הססמה יפוג בתוך ×™×•× %1תוקף הססמה יפוג בתוך %1 ימי×תוקף הססמה יפוג בתוך %1 ימי×תוקף הססמה יפוג בתוך %1 ×™×ž×™× + תוקף הססמה יפוג בתוך ×™×•× %1תוקף הססמה יפוג בתוך %1 ימי×תוקף הססמה יפוג בתוך %1 ×™×ž×™× Password will expire soon @@ -7406,7 +8103,7 @@ Kernel: %3 %4 Quick Unlock - ביטול נעילה מהירה + שחרור נעילה מהירה Secret Service Integration @@ -7422,31 +8119,31 @@ Kernel: %3 %4 over %1 year(s) - מעל שנה %1מעל %1 שני×מעל %1 שני×מעל %1 ×©× ×™× + מעל שנה %1מעל %1 שני×מעל %1 ×©× ×™× about %1 month(s) - בסביבות חודש %1בסביבות %1 חודשי×בסביבות %1 חודשי×בסביבות %1 ×—×•×“×©×™× + בסביבות חודש %1בסביבות %1 חודשי×בסביבות %1 ×—×•×“×©×™× %1 week(s) - שבועה %1%1 שבועות%1 שבועות%1 שבועות + שבועה %1%1 שבועות%1 שבועות %1 day(s) - ×™×•× %1%1 ימי×%1 ימי×%1 ×™×ž×™× + ×™×•× %1%1 ימי×%1 ×™×ž×™× %1 hour(s) - שעה %1%1 שעות%1 שעות%1 שעות + שעה %1%1 שעות%1 שעות %1 minute(s) - דקה %1%1 דקות%1 דקות%1 דקות + דקה %1%1 דקות%1 דקות - Botan library must be at least 2.11.x, found %1.%2.%3 - ספריית Botan חייבת להיות לפחות בגרסה 2.11.x, נמצ××” גרסה %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + ספריית Botan חייבת להיות לפחות %1, נמצ××” גרסה %2.%3.%4 Cryptographic libraries: @@ -7546,7 +8243,7 @@ Kernel: %3 %4 Clearing the clipboard in %1 second(s)… - ניקוי ×œ×•×—Ö¾×’×–×™×¨×™× ×‘×ª×•×š שניה %1...ניקוי ×œ×•×—Ö¾×’×–×™×¨×™× ×‘×ª×•×š %1 שניות...ניקוי ×œ×•×—Ö¾×’×–×™×¨×™× ×‘×ª×•×š %1 שניות...ניקוי ×œ×•×—Ö¾×’×–×™×¨×™× ×‘×ª×•×š %1 שניות... + ניקוי ×œ×•×—Ö¾×’×–×™×¨×™× ×‘×ª×•×š שניה %1...ניקוי ×œ×•×—Ö¾×’×–×™×¨×™× ×‘×ª×•×š %1 שניות...ניקוי ×œ×•×—Ö¾×’×–×™×¨×™× ×‘×ª×•×š %1 שניות... Group @@ -7587,12 +8284,12 @@ Kernel: %3 %4 %1 ms milliseconds - ×לפית שניה %1%1 ×לפיות שניה%1 ×לפיות שניה%1 ×לפיות שניה + ×לפית שניה %1%1 ×לפיות שניה%1 ×לפיות שניה %1 s seconds - שניה %1%1 שניות%1 שניות%1 שניות + שניה %1%1 שניות%1 שניות Do you really want to delete the entry "%1" for good? @@ -7600,11 +8297,11 @@ Kernel: %3 %4 Do you really want to delete %n entry(s) for good? - ×”×× ×œ×ž×—×•×§ רשומה %n לעד?×”×× ×œ×ž×—×•×§ %n רשומות לעד?×”×× ×œ×ž×—×•×§ %n רשומות לעד?×”×× ×œ×ž×—×•×§ %n רשומות לעד? + ×”×× ×œ×ž×—×•×§ רשומה %n לעד?×”×× ×œ×ž×—×•×§ %n רשומות לעד?×”×× ×œ×ž×—×•×§ %n רשומות לעד? Delete entry(s)? - מחיקת רשומה?מחיקת רשומות?מחיקת רשומות?מחיקת רשומות? + מחיקת רשומה?מחיקת רשומות?מחיקת רשומות? Do you really want to move entry "%1" to the recycle bin? @@ -7612,11 +8309,11 @@ Kernel: %3 %4 Do you really want to move %n entry(s) to the recycle bin? - ×”×× ×œ×”×¢×‘×™×¨ רשומה %n לסל־המחזור?×”×× ×œ×”×¢×‘×™×¨ %n רשומות לסל־המחזור?×”×× ×œ×”×¢×‘×™×¨ %n רשומות לסל־המחזור?×”×× ×œ×”×¢×‘×™×¨ %n רשומות לסל־המחזור? + ×”×× ×œ×”×¢×‘×™×¨ רשומה %n לסל־המחזור?×”×× ×œ×”×¢×‘×™×¨ %n רשומות לסל־המחזור?×”×× ×œ×”×¢×‘×™×¨ %n רשומות לסל־המחזור? Move entry(s) to recycle bin? - העברת רשומה לסל המחזור?העברת רשומות לסל המחזור?העברת רשומות לסל המחזור?העברת רשומות לסל המחזור? + העברת רשומה לסל המחזור?העברת רשומות לסל המחזור?העברת רשומות לסל המחזור? Replace references to entry? @@ -7624,7 +8321,7 @@ Kernel: %3 %4 Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? - לרשומה '%1' קיימות %2 הפניות. ×”×× ×œ×›×ª×•×‘Ö¾×¢×œ הפניות ×¢× ×¢×¨×›×™×, לדלג על רשומה זו, ×ו למחוק ×ותה בכל ×–×ת?לרשומה '%1' קיימות %2 הפניות. ×”×× ×œ×›×ª×•×‘Ö¾×¢×œ הפניות ×¢× ×¢×¨×›×™×, לדלג על רשומה זו, ×ו למחוק ×ותה בכל ×–×ת?לרשומה '%1' קיימות %2 הפניות. ×”×× ×œ×›×ª×•×‘Ö¾×¢×œ הפניות ×¢× ×¢×¨×›×™×, לדלג על רשומה זו, ×ו למחוק ×ותה בכל ×–×ת?לרשומה '%1' קיימות %2 הפניות. ×”×× ×œ×›×ª×•×‘Ö¾×¢×œ הפניות ×¢× ×¢×¨×›×™×, לדלג על רשומה זו, ×ו למחוק ×ותה בכל ×–×ת? + לרשומה '%1' קיימות %2 הפניות. ×”×× ×œ×›×ª×•×‘Ö¾×¢×œ הפניות ×¢× ×¢×¨×›×™×, לדלג על רשומה זו, ×ו למחוק ×ותה בכל ×–×ת?לרשומה '%1' קיימות %2 הפניות. ×”×× ×œ×›×ª×•×‘Ö¾×¢×œ הפניות ×¢× ×¢×¨×›×™×, לדלג על רשומה זו, ×ו למחוק ×ותה בכל ×–×ת?לרשומה '%1' קיימות %2 הפניות. ×”×× ×œ×›×ª×•×‘Ö¾×¢×œ הפניות ×¢× ×¢×¨×›×™×, לדלג על רשומה זו, ×ו למחוק ×ותה בכל ×–×ת? User name @@ -7676,19 +8373,15 @@ Kernel: %3 %4 lock all open databases - נעילת כל מסדי ×”× ×ª×•× ×™× ×”×¤×ª×•×—×™× + נעילת כל ×ž×¡×“×™Ö¾× ×ª×•× ×™× ×”×¤×ª×•×—×™× key file of the database - קובץ המפתח של מסד ×”× ×ª×•× ×™× + קובץ המפתח של ×ž×¡×“Ö¾× ×ª×•× ×™× read password of the database from stdin - קרי×ת ססמה של מסד ×”× ×ª×•× ×™× ×žÖ¾stdin - - - allow app screen recordering and screenshots - ×פשור ×™×™×©×•× ×”×§×œ×˜×ª מסך וצילומי מסך + קרי×ת ססמה של ×ž×¡×“Ö¾× ×ª×•× ×™× ×žÖ¾stdin Locked databases. @@ -7696,12 +8389,16 @@ Kernel: %3 %4 Database failed to lock. - נעילת מסד ×”× ×ª×•× ×™× ×›×©×œ×”. + נעילת ×ž×¡×“Ö¾× ×ª×•× ×™× ×›×©×œ×”. Another instance of KeePassXC is already running. ×Ö¶×“Ö°×’Ö¼Ö¸× KeePassXC נוסף כבר פועל. + + KeePassXC is not running. No open database to lock + KeePassXC ×œ× ×¤×¢×™×œ. ×ין מסד × ×ª×•× ×™× ×¤×ª×•×— לנעילה. + Fatal error while testing the cryptographic functions. שגי××” מכרעת בעת בדיקת פונקציות ההצפנה. @@ -7710,10 +8407,6 @@ Kernel: %3 %4 KeePassXC - Error שגי×ת KeePassXC - - Warning: Failed to prevent screenshots on a top level window! - ×זהרה: מניעת צילומי מסך בחלון ברמה העליונה כשלה! - Database password: ססמת מסד־נתוני×: @@ -7737,7 +8430,221 @@ Kernel: %3 %4 ×”×ימות נכשל ×¢× Windows Hello - Please present or touch your YubiKey to continue. + Warning: Failed to block screenshot capture on a top-level window. + ×זהרה: חסימת צילומי מסך בחלון ברמה העליונה כשלה! + + + Invalid Cipher + צופן ×œ× ×ª×§×™×Ÿ + + + Invalid KDF + KDF ×œ× ×ª×§×™×Ÿ + + + Access to all entries is denied + גישה לכול הרשומות נדחתה + + + allow screenshots and app recording (Windows/macOS) + + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + + + + Credential is excluded + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Passkeys + + + + AES initialization failed + + + + AES encrypt failed + + + + Failed to store in Linux Keyring + + + + Polkit returned an error: %1 + + + + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + + + + Failed to init KeePassXC crypto. + נכשל ב×יתחול קריפטו KeePassXC. + + + Failed to encrypt key data. + הצפנת נתוני מפתח כשלה. + + + Failed to get Windows Hello credential. + קבלת ×ישור Windows Hello כשלה. + + + Failed to decrypt key data. + פענוח נתוני מפתח כשלה. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7777,25 +8684,13 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - החרגת רשומות שפג ×ª×•×§×¤× ×ž×”×“×•×— - - - Show only entries which have URL set - הצגת רשומות הכוללות מען URL - - - Show only entries which have browser settings in custom data - הצג רק ×¢×¨×›×™× ×©×™×© ×œ×”× ×”×’×“×¨×•×ª דפדפן, ×‘× ×ª×•× ×™× ×ž×•×ª××ž×™× ×ישית - Double-click entries to edit. לעריכה, × × ×œ×”×§×™×© הקשה כפולה על הרשומות. List of entry URLs - רשימת כול מעני URL ברשומות + רשימת כל מעני URL ברשומות Entry has no URLs set @@ -7847,23 +8742,31 @@ Kernel: %3 %4 Delete Entry(s)… - מחיקת רשומה?מחיקת רשומות?מחיקת רשומות?מחיקת רשומות? + מחיקת רשומה?מחיקת רשומות?מחיקת רשומות? Exclude from reports החרגה מדוחות + + Only show entries that have a URL + + + + Only show entries that have been explicitly allowed or denied + + + + Show expired entries + + + + (Expired) + + ReportsWidgetHealthcheck - - Exclude expired entries from the report - החרגת רשומות שפג ×ª×•×§×¤× ×ž×”×“×•×— - - - Also show entries that have been excluded from reports - הצגת רשומות ×©×œ× × ×›×œ×œ×• בדוחות ×’× ×›×Ÿ - Hover over reason to show additional details. Double-click entries to edit. ריחוף מעל סיבה להצגת ×¤×¨×˜×™× × ×•×¡×¤×™×. הקשה כפולה על רשומות לעריכה. @@ -7933,18 +8836,30 @@ Kernel: %3 %4 Delete Entry(s)… - מחיקת רשומה?מחיקת רשומות?מחיקת רשומות?מחיקת רשומות? + מחיקת רשומה?מחיקת רשומות?מחיקת רשומות? Exclude from reports החרגה מדוחות + + Show expired entries + + + + Show entries that have been excluded from reports + + + + (Expired) + + ReportsWidgetHibp CAUTION: This report requires sending information to the Have I Been Pwned online service (https://haveibeenpwned.com). If you proceed, your database passwords will be cryptographically hashed and the first five characters of those hashes will be sent securely to this service. Your database remains secure and cannot be reconstituted from this information. However, the number of passwords you send and your IP address will be exposed to this service. - התר××”: דוח ×–×” מחייב שליחת מידע לשירות המקוון של '×”×× ×”×©×ª×œ×˜×• עלי' (https://haveibeenpwned.com). ×× ×ª×ž×©×™×›×•, ססמ×ות מסד ×”× ×ª×•× ×™× ×™×•×¦×¤× ×• וחמשת ×”×ª×•×•×™× ×”×¨××©×•× ×™× ×©×œ הגיבוב יישלחו ב×ופן מ×ובטח לשירות ×–×”. מסד ×”× ×ª×•× ×™× ×™×™×©×ר מ×ובטח ×•×œ× ×™×”×™×” ניתן לבנות ×ותו מחדש מהמידע שיתקבל. ×¢× ×–×ת, מספר הססמ×ות שיתקבלו וכתובת ×”Ö¾IP ייחשפו לשירות ×–×”. + התר××”: דוח ×–×” מחייב שליחת מידע לשירות המקוון של '×”×× ×”×©×ª×œ×˜×• עלי' (https://haveibeenpwned.com). ×× ×ª×ž×©×™×›×•, ססמ×ות ×ž×¡×“Ö¾× ×ª×•× ×™× ×™×•×¦×¤× ×• וחמשת ×”×ª×•×•×™× ×”×¨××©×•× ×™× ×©×œ הגיבוב יישלחו ב×ופן מ×ובטח לשירות ×–×”. ×ž×¡×“Ö¾× ×ª×•× ×™× ×™×™×©×ר מ×ובטח ×•×œ× ×™×”×™×” ניתן לבנות ×ותו מחדש מהמידע שיתקבל. ×¢× ×–×ת, מספר הססמ×ות שיתקבלו וכתובת ×”Ö¾IP ייחשפו לשירות ×–×”. Perform Online Analysis @@ -8028,13 +8943,72 @@ Kernel: %3 %4 Delete Entry(s)… - מחיקת רשומה?מחיקת רשומות?מחיקת רשומות?מחיקת רשומות? + מחיקת רשומה?מחיקת רשומות?מחיקת רשומות? Exclude from reports החרגה מדוחות + + ReportsWidgetPasskeys + + Export + ×™×™×¦× + + + Import + ×™×™×‘×•× + + + List of entry URLs + רשימת כל מעני URL ברשומות + + + Please wait, list of entries with Passkeys is being updated… + + + + No entries with Passkeys. + + + + Title + כותרת + + + Path + נתיב + + + Username + ×©× ×ž×©×ª×ž×© + + + URLs + מעני URL + + + Edit Entry… + עריכת רשומה... + + + Delete Entry(s)… + מחיקת רשומה?מחיקת רשומות?מחיקת רשומות? + + + Relying Party + + + + Show expired entries + + + + (Expired) + + + ReportsWidgetStatistics @@ -8087,7 +9061,7 @@ Kernel: %3 %4 The database was modified, but the changes have not yet been saved to disk. - מסד ×”× ×ª×•× ×™× ×”×©×ª× ×”, ×ך ×”×©×™× ×•×™×™× ×¢×“×™×™×Ÿ ×œ× × ×©×ž×¨×• לכונן הקשיח. + ×ž×¡×“Ö¾× ×ª×•× ×™× ×”×©×ª× ×”, ×ך ×”×©×™× ×•×™×™× ×¢×“×™×™×Ÿ ×œ× × ×©×ž×¨×• לכונן הקשיח. Number of groups @@ -8103,7 +9077,7 @@ Kernel: %3 %4 The database contains entries that have expired. - מסד ×”× ×ª×•× ×™× ×ž×›×™×œ רשומות פגי תוקף. + ×ž×¡×“Ö¾× ×ª×•× ×™× ×ž×›×™×œ רשומות פגי תוקף. Unique passwords @@ -8213,7 +9187,7 @@ Kernel: %3 %4 SearchHelpWidget Search Help - עזרה עבור חיפוש + עזרה בחיפוש Search terms are as follows: [modifiers][field:]["]term["] @@ -8272,7 +9246,11 @@ Kernel: %3 %4 Search Help - עזרה עבור חיפוש + עזרה בחיפוש + + + Save Search + שמירת חיפוש Search (%1)… @@ -8342,7 +9320,7 @@ Kernel: %3 %4 <html><head/><body><p>If enabled, any attempt to read a password must be confirmed. Otherwise, clients can read passwords without confirmation when the database is unlocked.</p><p>This option only covers the access to the password of an entry. Clients can always enumerate the items of exposed databases and query their attributes.</p></body></html> - <html><head/><body><p>×× ×ופשר, כל ניסיון ×œ×§×¨×•× ×¡×¡×ž×” תחויב ב×ישור. ×חרת, לקוחות יוכלו ×œ×§×¨×•× ×¡×¡×ž×ות ×œ×œ× ×ישור ×›×שר מסד ×”× ×ª×•× ×™× ×œ× × ×¢×•×œ.</p><p>×פשרות זו מכסה רק ×ת הגישה לססמה של רשומה. לקוחות יכולו תמיד לספרר ×ת פריטי ×ž×¡×“×™Ö¾× ×ª×•× ×™× ×”×—×©×•×¤×™× ×•×œ×ª×©×ל ×ת התכונות שלה×.</p></body></html> + <html><head/><body><p>×× ×ופשר, כל ניסיון ×œ×§×¨×•× ×¡×¡×ž×” תחויב ב×ישור. ×חרת, לקוחות יוכלו ×œ×§×¨×•× ×¡×¡×ž×ות ×œ×œ× ×ישור ×›×שר ×ž×¡×“Ö¾× ×ª×•× ×™× ×œ× × ×¢×•×œ.</p><p>×פשרות זו מכסה רק ×ת הגישה לססמה של רשומה. לקוחות יכולו תמיד לספרר ×ת פריטי ×ž×¡×“×™Ö¾× ×ª×•× ×™× ×”×—×©×•×¤×™× ×•×œ×ª×©×ל ×ת התכונות שלה×.</p></body></html> Confirm when passwords are retrieved by clients @@ -8361,7 +9339,7 @@ Kernel: %3 %4 Confirm when clients request entry deletion - ×שור ×›×שר לקוחות ×ž×‘×§×©×™× ×ž×—×™×§×ª רשומה + ×ישור ×›×שר לקוחות ×ž×‘×§×©×™× ×ž×—×™×§×ª רשומה <html><head/><body><p>This improves compatibility with certain applications @@ -8370,8 +9348,8 @@ Kernel: %3 %4 different value set in applications.)</p></body></html> <html><head/><body><p>שיפור ת×ימות ×¢× ×™×™×©×•×ž×•× ×™××™× ×ž×¡×•×™×ž×™× -×©×ž×—×¤×©×™× ×¡×¡×ž×”, מבלי לשחרר תחילה ×ת נעילת מסד הנתוני×.</p><p>×ך ×פשור תכונה זו עשויה ×œ×’×¨×•× -לקריסת ×”'לקוח' במידה ונעילת מסד ×”× ×ª×•× ×™× ×œ× ×ª×©×•×—×¨×¨ בתוך פרק־זמן קצוב מסוי×. (בדרך כלל 25 שניות, ×ך ייתכן שהוגדר +×©×ž×—×¤×©×™× ×¡×¡×ž×”, מבלי לשחרר תחילה ×ת נעילת מסד־נתוני×.</p><p>×ך ×יפשור תכונה זו עשויה ×œ×’×¨×•× +לקריסת ×”'לקוח' במידה ונעילת ×ž×¡×“Ö¾× ×ª×•× ×™× ×œ× ×ª×©×•×—×¨×¨ בתוך פרק־זמן קצוב מסוי×. (בדרך כלל 25 שניות, ×ך ייתכן שהוגדר ערך שונה ×‘×™×™×©×•×ž×•× ×™× ×¢×¦×ž×.)</p></body></html> @@ -8503,11 +9481,38 @@ Kernel: %3 %4 ×™×™×¦×•× ×œÖ¾%1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All - הכול + Clear Search + ניקוי חיפוש + + + All Entries + כל הרשומות Expired @@ -8518,6 +9523,25 @@ Kernel: %3 %4 ססמ×ות חלשות + + TagView + + Remove Search + הסרת חיפוש + + + Remove Tag + הסרת תג + + + Confirm Remove Tag + ×ישור הסרת תג + + + Remove tag "%1" from all entries in this database? + הסרת תג '%1' מכול הרשומות ×‘×ž×¡×“Ö¾× ×ª×•× ×™× ×–×”? + + TotpDialog @@ -8530,7 +9554,7 @@ Kernel: %3 %4 Expires in <b>%n</b> second(s) - תפוגה <b>בתוך שניה %n</b>תפוגה <b>בתוך %n</b> שניותתפוגה <b>בתוך %n</b> שניותתפוגה <b>בתוך %n</b> שניות + תפוגה <b>בתוך שניה %n</b>תפוגה <b>בתוך %n</b> שניותתפוגה <b>בתוך %n</b> שניות @@ -8675,26 +9699,6 @@ Example: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database ניתן להתחיל ול×חסן ×ת הססמ×ות בצורה מ×ובטחת במסד נתוני KeePassXC - - Create new database - יצירת ×ž×¡×“Ö¾× ×ª×•× ×™× ×—×“×© - - - Open existing database - פתיחת ×ž×¡×“Ö¾× ×ª×•× ×™× ×§×™×™× - - - Import from KeePass 1 - ×™×‘×•× ×žÖ¾KeePass 1 - - - Import from 1Password - ×™×‘×•× ×žÖ¾ 1Password - - - Import from CSV - ×™×‘×•× ×ž×§×•×‘×¥ CSV - Recent databases ×ž×¡×“×™Ö¾× ×ª×•× ×™× ××—×¨×•× ×™× @@ -8707,6 +9711,18 @@ Example: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 ×‘×¨×•×›×™× ×”×‘××™× ×œÖ¾KeePassXC %1 + + Create Database + + + + Open Database + + + + Import File + + WinUtils @@ -8723,31 +9739,8 @@ Example: JBSWY3DPEHPK3PXP ×œ× × ×™×ª×Ÿ ×œ×¨×©×•× ×§×™×¦×•×¨ דרך כללי - - WindowsHello - - Failed to init KeePassXC crypto. - נכשל ב×תחול קריפטו KeePassXC. - - - Failed to encrypt key data. - נכשל בהצפנת נתוני המפתח - - - Failed to get Windows Hello credential. - נכשל ביצירת ×ישור של Windows Hello - - - Failed to decrypt key data. - נכשל בפענוח נתוני המפתח - - YubiKey - - %1 No interface, slot %2 - %1 ×ין מנשק, חריץ %2 - General: כללי: @@ -8759,14 +9752,6 @@ Example: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - רענון ×סימוני חומרה - - - Refresh - רענון - Hardware key slot selection בחירת עמדה למפתח חומרה @@ -8799,10 +9784,6 @@ Example: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove ערכת ×תגר־מענה, הקשה לשנוי ×ו הסרה - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>×× ×™×© ×œ×›× <a href="https://www.yubico.com/">YubiKey</a> ×ו <a href="https://onlykey.io">OnlyKey</a>, ניתן להשתמש בו ל×בטחה נוספת.</p><p>המפתח דורש ש×חד ×”×—×¨×™×¦×™× ×©×œ×• יתוכנת <a href="https://www.yubico.com/products/services-software/challenge-response/">×›×תגר-מענה HMAC-SHA1</a>.</p> - Detecting hardware keys… זוהה מפתח חומרה... @@ -8811,28 +9792,21 @@ Example: JBSWY3DPEHPK3PXP No hardware keys detected ×œ× ×–×•×”×” מפתח חומרה - - - YubiKeyInterface - %1 Invalid slot specified - %2 - צוין חריץ %1 ×œ× ×ª×§×™×Ÿ - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] ×תגר־מענה - חריץ %3 - The YubiKey PCSC interface has not been initialized. מנשק PCSC YubiKey ×œ× ×ותחל. - - Hardware key is currently in use. - מפתח החומרה × ×ž×¦× ×›×¢×ª בשימוש. - Could not find or access hardware key with serial number %1. Please present it to continue. ×œ× × ×™×ª×Ÿ ×œ×ž×¦×•× ×ו לגשת למפתח חומרה ×¢× ×”×ž×¡×¤×¨ הסידורי %1. × × ×œ×”×¦×™×’×• על מנת להמשיך. @@ -8849,6 +9823,21 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 השלמת ×תגר־מענה כשלה, קוד שגי×ת PCSC היתה: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + לחיצה + + + Passive + USB Challenge-Response Key no interaction required + סביל + YubiKeyInterfaceUSB @@ -8856,14 +9845,6 @@ Example: JBSWY3DPEHPK3PXP Unknown ×œ× ×™×“×•×¢ - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] חריץ שתצורתו נקבעה - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] ×תגר־מענה - חריץ %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8878,10 +9859,6 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. מנשק USB YubiKey ×œ× ×ותחל. - - Hardware key is currently in use. - מפתח החומרה × ×ž×¦× ×›×¢×ª בשימוש. - Could not find hardware key with serial number %1. Please plug it in to continue. ×œ× × ×™×ª×Ÿ ×œ×ž×¦×•× ×ž×¤×ª×— חומרה ×¢× ×”×ž×¡×¤×¨ הסידורי %1. × × ×œ×—×‘×¨ ×ותו כדי להמשיך. @@ -8898,5 +9875,15 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 השלמת ×תגר־מענה כשלה, השגי××” המסוימת היתה: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_hr.ts b/share/translations/keepassxc_hr.ts index 417c7a362..7f44a1e6b 100644 --- a/share/translations/keepassxc_hr.ts +++ b/share/translations/keepassxc_hr.ts @@ -150,6 +150,10 @@ SSH Agent connection is working! SSH Agent veza radi! + + Use both agents + + ApplicationSettingsWidget @@ -221,6 +225,10 @@ Select backup storage directory + + This setting cannot be enabled when minimize on unlock is enabled. + + ApplicationSettingsWidgetGeneral @@ -489,6 +497,14 @@ Remember last typed entry for: + + recent files + + + + Show passwords in color + + ApplicationSettingsWidgetSecurity @@ -638,6 +654,10 @@ Invalid placeholder: %1 + + Entry does not have attribute for PICKCHARS: %1 + + AutoTypeAssociationsModel @@ -1417,10 +1437,6 @@ Sigurnosna kopija baza podataka nalazi se na %2 Key File: Datoteka kljuÄa: - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - - Key file help Datoteka kljuÄa pomoć @@ -1433,11 +1449,6 @@ Sigurnosna kopija baza podataka nalazi se na %2 Hardware Key: Hardverski kljuÄ: - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - - Hardware key help Hardverski kljuÄ pomoć @@ -1573,6 +1584,15 @@ Ako nemate datoteku kljuÄa, ostavite polje prazno. Select hardware key… Odaberite hardverski kljuÄ... + + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> + + + + <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> +<p>Click for more information…</p> + + DatabaseSettingWidgetMetaData @@ -2219,13 +2239,21 @@ Ovo je definitivno pogreÅ¡ka, molimo prijavite to programerima. Database tab name modifier %1 [ZakljuÄano] + + Export database to XML file + + + + XML file + + + + Writing the XML file failed + + DatabaseWidget - - Database Tags - - Searching… @@ -2390,6 +2418,22 @@ Disable safe saves and try again? Entries expiring within %1 day(s) + + Searches and Tags + + + + Enter a unique name or overwrite an existing search from the list: + + + + Save + Spremi + + + Save Search + + EditEntryWidget @@ -2526,10 +2570,6 @@ Would you like to correct it? Hide Sakrij - - Tomorrow - Sutra - %n week(s) %n tjedan%n tjedana%n tjedana @@ -2542,6 +2582,10 @@ Would you like to correct it? %n year(s) %n godina%n godine%n godina + + %n hour(s) + + EditEntryWidgetAdvanced @@ -3057,6 +3101,14 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups + + Omit WWW subdomain from matching: + + + + Omit WWW subdomain from matching toggle for this and sub groups + + EditGroupWidgetKeeShare @@ -3638,6 +3690,10 @@ Error: %1 Auto-Type Auto-tipkanje + + Tags + + EntryModel @@ -3845,6 +3901,10 @@ Error: %1 Disabled Onemogući + + Double click to copy value + + EntryURLModel @@ -5329,6 +5389,30 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? Morate ponovno pokrenuti aplikaciju da biste primijenili tu postavku. Želite li ju ponovno pokrenuti sada? + + Tags + + + + No Tags + + + + %1 Entry(s) + + + + Copy Password and TOTP + + + + &XML File… + + + + XML File… + + ManageDatabase @@ -5699,29 +5783,6 @@ We recommend you use the AppImage available on our downloads page. - - PasswordEdit - - Passwords do not match - Lozinke se ne podudaraju - - - Passwords match so far - Lozinke se zasad podudaraju - - - Toggle Password (%1) - - - - Generate Password (%1) - Proizvedi Lozinku (%1) - - - Warning: Caps Lock enabled! - Upozorenje: Caps Lock ukljuÄen! - - PasswordEditWidget @@ -5900,10 +5961,6 @@ We recommend you use the AppImage available on our downloads page. Also choose from: - - Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" - Izostavi znakove: "0", "1", "l", "I", "O", "|", "". - Exclude look-alike characters Izostavi sliÄne znakove @@ -6053,6 +6110,57 @@ Do you want to overwrite it? Password quality Izvrsna + + Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" + Izostavi znakove: "0", "1", "l", "I", "O", "|", "". + + + + PasswordWidget + + Passwords do not match + Lozinke se ne podudaraju + + + Passwords match so far + Lozinke se zasad podudaraju + + + Toggle Password (%1) + + + + Generate Password (%1) + Proizvedi Lozinku (%1) + + + Warning: Caps Lock enabled! + Upozorenje: Caps Lock ukljuÄen! + + + Quality: %1 + + + + Poor + Password quality + bijedna + + + Weak + Password quality + Slaba + + + Good + Password quality + Dobra + + + Excellent + Password quality + Izvrsna + PickcharsDialog @@ -7185,10 +7293,6 @@ Please consider generating a new key file. Invalid YubiKey serial %1 - - Please present or touch your YubiKey to continue… - - Enter password to encrypt database (optional): @@ -7664,6 +7768,67 @@ Kernel: %3 %4 Failed to sign challenge using Windows Hello. + + Please present or touch your YubiKey to continue. + + + + Show all the attributes of the entry. + + + + Edit a database. + + + + Could not change the database key. + + + + Database was not modified. + + + + Successfully edited the database. + + + + Loading the new key file failed: %1 + + + + Unset the password for the database. + + + + Unset the key file for the database. + + + + Cannot use %1 and %2 at the same time. + + + + Cannot remove all the keys from a database. + + + + Cannot remove password: The database does not have a password. + + + + Cannot remove file key: The database does not have a file key. + + + + Found unexpected Key type %1 + + + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + + QtIOCompressor @@ -8211,6 +8376,10 @@ Kernel: %3 %4 Limit search to selected group + + Save Search + + SettingsClientModel @@ -8423,10 +8592,6 @@ Kernel: %3 %4 TagModel - - All - - Expired @@ -8435,6 +8600,33 @@ Kernel: %3 %4 Weak Passwords + + All Entries + + + + Clear Search + + + + + TagView + + Remove Search + + + + Remove Tag + + + + Confirm Remove Tag + + + + Remove tag "%1" from all entries in this database? + + TotpDialog diff --git a/share/translations/keepassxc_hu.ts b/share/translations/keepassxc_hu.ts index a67b2ee30..bfea162c4 100644 --- a/share/translations/keepassxc_hu.ts +++ b/share/translations/keepassxc_hu.ts @@ -80,6 +80,10 @@ Details Részletek + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + A döntése megjegyzésre kerül arra az idÅ‘tartamra amíg az igénylÅ‘ kliens ÉS a KeePassXC is folytatja futását. + Remember Megjegyzés @@ -88,10 +92,6 @@ Allow Selected Kijelöltek engedélyezése - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - A döntése megjegyzésre kerül arra az idÅ‘tartamra amíg az igénylÅ‘ kliens ÉS a KeePassXC is folytatja futását. - Deny All && Future Összes && jövÅ‘beliek elutasítása @@ -122,6 +122,10 @@ Use OpenSSH OpenSSH használata + + Use both agents + Mindkét ügynök használata + SSH_AUTH_SOCK override SSH_AUTH_SOCK felülírása @@ -144,16 +148,12 @@ No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. - Nincs elérhetÅ‘ foglalat az SSH-ügynök számára. Vagy gyÅ‘zÅ‘djön meg arról, hogy létezik SSH_AUTH_SOCK környezeti változó, vagy állítson be egy felülírást. + Nincs elérhetÅ‘ socket az SSH-ügynök számára. Biztosítsa az SSH_AUTH_SOCK környezeti változó beállítását, vagy állítson be egy felülírást. SSH Agent connection is working! Az SSH-ügynök kapcsolat működik! - - Use both agents - Mindkét ügynök használata - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security Biztonság + + This setting cannot be enabled when minimize on unlock is enabled. + Ez a beállítás nem kapcsolható be, ha a minimalizálás feloldáskor be van kapcsolva. + Access error for config file %1 Hozzáférési hiba a beállítási fájlhoz: %1 @@ -211,7 +215,7 @@ You must restart the application to set the new language. Would you like to restart now? - Az új nyelv beállításának az érvényre kerüléséhez újra kell indítani az alkalmazást. Legyen azonnal újraindítva? + Az új nyelv beállításának érvényesítéséhez újra kell indítani az alkalmazást. Indítsuk újra most? Reset Settings? @@ -242,7 +246,7 @@ Automatically launch KeePassXC at system startup - KeePassXC automatikus indítása a rendszer indulásakor + A KeePassXC automatikus indítása a rendszer indulásakor Minimize window at application startup @@ -256,6 +260,10 @@ Remember previously used databases Az elÅ‘zÅ‘leg használt adatbázisok megjegyzése + + recent files + nemrég használt fájl + Load previously open databases on startup Az elÅ‘zÅ‘leg feloldott adatbázisok betöltése indításkor @@ -284,12 +292,12 @@ days On database unlock, show entries that will expire within %1 days - napon belül + napon belül will expire within On database unlock, show entries that... - lejárnak + lejárnak File Management @@ -337,7 +345,7 @@ Temporary file moved into place - Ideiglenes fájl a helyére került + Ideiglenes fájl a helyére mozgatása Directly write to database file (dangerous) @@ -353,7 +361,7 @@ Minimize when opening a URL - Kicsinyítés URL megnyitásakor + Kis méret egy webcím megnyitásakor Hide window when copying to clipboard @@ -369,7 +377,7 @@ Favicon download timeout: - Favicon letöltési idÅ‘túllépés: + Weblapikonok letöltési idÅ‘túllépése: Website icon download timeout in seconds @@ -408,6 +416,10 @@ Toolbar button style: Eszköztár gombstílusa: + + Show passwords in color + Jelszavak színes megjelenítése + Use monospaced font for notes Jegyzetek rögzített szélességű betűkészlettel @@ -418,7 +430,7 @@ Show a system tray icon - Rendszertálca-ikon megjelenítése + Rendszertálcaikon megjelenítése Tray icon type @@ -446,7 +458,7 @@ Use entry URL to match windows for global Auto-Type - Bejegyzések URL-jének alkalmazása az ablakok illesztésénél a globális automatikus beírás számára. + Bejegyzések webcímének használata az ablakok illesztésénél a globális automatikus beírás számára Always ask before performing Auto-Type @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons A DuckDuckGo alkalmazása a webhelyikonok letöltésére + + Hide TOTP in the entry preview panel + TOTP elrejtése a bejegyzés elÅ‘nézeti panelen + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 Nagyon hosszú késleltetés észlelve, a maximum %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + A bejegyzés nem rendelkezik PICKCHARS attribútummal: %1 + Invalid conversion type: %1 Érvénytelen átalakítási típus: %1 @@ -804,13 +824,13 @@ Ctrl+4 – Virtuális billentyűzet használata (csak Windowson)</p>Disable for this site Letiltás ezen az oldalon + + Undo + Visszavonás + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-böngészÅ‘ bejegyzés mentése - Ok Ok @@ -825,13 +845,70 @@ Please select the correct database for saving credentials. Több adatbázis van nyitva. Válassza ki a helyes adatbázist a hitelesítÅ‘ adatok mentéséhez. + + KeePassXC - Select Database + KeePassXC – Adatbázis kiválasztása + + + + BrowserPasskeysConfirmationDialog + + Cancel + Mégse + + + Update + Frissítés + + + Authenticate + Hitelesítés + + + Register new + Új regisztráció + + + Register + Regisztráció + + + Timeout in <b>%n</b> seconds... + IdÅ‘korlát <b>%n</b> másodpercen belül...IdÅ‘korlát <b>%n</b> másodpercen belül... + + + Do you want to register Passkey for: + Ehhez szeretne jelkulcsot regisztrálni: + + + Existing Passkey found. +Do you want to register a new Passkey for: + LétezÅ‘ jelkulcs található. +Regisztrál ehhez egy új jelkulcsot: + + + Select the existing Passkey and press Update to replace it. + Válassza ki a jelenlegi jelkulcsot, és nyomja meg a Frissítést a cseréjéhez. + + + Authenticate Passkey credentials for: + A jelkulcs hitelesítési adatainak használata ehhez: + + + Relying Party: %1 + KözvetítÅ‘ fél: %1 + + + Username: %1 + Felhasználónév: %1 + + + KeePassXC - Passkey credentials + KeePassXC – Jelkulcs hitelesítési adatai + BrowserService - - KeePassXC: Create a new group - KeePassXC: Új csoport létrehozása - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -839,10 +916,6 @@ Do you want to create this group? Az új „%1†csoport létrehozási kérése fogadva. Biztos, hogy létrehozza ezt a csoportot? - - KeePassXC: New key association request - KeePassXC: Új kulcstársítási kérés - You have received an association request for the following database: %1 @@ -859,28 +932,16 @@ A kapcsolatnak egy olyan egyedi nevet, ill. azonosítót szükség adni, mint am Save and allow access Engedélyezési hozzáférés mentése - - KeePassXC: Overwrite existing key? - KeePassXC: Felülírja a létezÅ‘ kulcsot? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? Létezik már egy megosztott titkosítási kulcs ezzel a névvel: „%1â€. Valóban felülírható? - - KeePassXC: Update Entry - KeePassXC: Bejegyzés frissítése - Do you want to update the information in %1 - %2? Frissíti az információt ebben: %1 – %2? - - KeePassXC: Delete entry - KeePassXC: Bejegyzés törlése - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -889,50 +950,46 @@ Do you want to delete the entry? Valóban törli a bejegyzést? - Converting attributes to custom data… - Attribútumok átalakítása egyéni adatokká… + %1 (Passkey) + %1 (jelkulcs) - Abort - Megszakítás + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + A bejegyzés már rendelkezik jelkulccsal. +Felülírja az itt található jelkulcsot: %1 – %2? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Ãtalakított KeePassHTTP attribútumok + KeePassXC - Create a new group + KeePassXC – Új csoport létrehozása - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Attribútumok sikeresen átalakítva %1 bejegyzésbÅ‘l. -%2 kulcs áthelyezve az egyéni adatokhoz. - - - Successfully moved %n keys to custom data. - %n kulcs sikeresen áthelyezve az egyéni adatokhoz.%n kulcs sikeresen áthelyezve az egyéni adatokhoz. + Disable + Letiltás - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Nem található bejegyzés KeePassHTTP attribútumokkal! + KeePassXC - Overwrite existing key? + KeePassXC – Felülírja a meglévÅ‘ kulcsot? - The active database does not contain an entry with KeePassHTTP attributes. - Az aktív adatbázisban nincs egyetlen KeePassHTTP attribútumokat tartalmazó bejegyzés sem. + KeePassXC - Update Passkey + KeePassXC – Jelkulcs frissítése - Don't show this warning again - Ne jelenjen meg többé a figyelmeztetés + KeePassXC - Update Entry + KeePassXC – Bejegyzés frissítése - KeePassXC: Legacy browser integration settings detected - KeePassXC: Örökölt böngészÅ‘integrációs beállítások észlelve + KeePassXC - Delete entry + KeePassXC – Bejegyzés törlése - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - A KeePassXC-Browser beállításait át kell helyezni az adatbázis-beállításokba. -Ez szükséges a jelenlegi böngészÅ‘kapcsolatok fenntartásához. -Biztos, hogy migrálja most a meglévÅ‘ beállításokat? + KeePassXC - New key association request + KeePassXC – Új kulcshozzárendelési kérés + + + Passkey + Jelkulcso @@ -1004,11 +1061,11 @@ Biztos, hogy migrálja most a meglévÅ‘ beállításokat? Match URL scheme (e.g., https://example.com) - URL sémákra illeszkedés (pl. https://példa.com) + Webcímsémákra illeszkedés (például https://example.com) Only returns the best matches for a specific URL instead of all entries for the whole domain. - Egy konkrét URL-hez tartozó legjobb találatokat adja vissza, a teljes domainhoz tartozó összes bejegyzés helyett. + Egy konkrét webcímhez tartozó legjobb találatokat adja vissza, a teljes domainhoz tartozó összes bejegyzés helyett. Return only best-matching credentials @@ -1048,7 +1105,7 @@ Biztos, hogy migrálja most a meglévÅ‘ beállításokat? Do not ask permission for HTTP Basic Auth An extra HTTP Basic Auth setting - Ne kérjen engedélyt a HTTP Basic Auth számára + Ne kérjen engedélyt a HTTP Basic hitelesítés számára Automatically creating or updating string fields is not supported. @@ -1140,15 +1197,6 @@ Biztos, hogy migrálja most a meglévÅ‘ beállításokat? Please see special instructions for browser extension use below Olvassa el a böngészÅ‘kiegészítÅ‘ használatáról szóló különleges utasításokat alább - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Hiba:</b> Az egyéni proxyhely nem található! -<br/>A böngészÅ‘integráció NEM FOG MŰKÖDNI a proxy-alkalmazás nélkül. - - - <b>Warning:</b> The following options can be dangerous! - <b>Figyelmeztetés:</b> A következÅ‘ beállítások veszélyesek lehetnek! - Executable Files Végrehajtható fájlok @@ -1165,6 +1213,38 @@ Biztos, hogy migrálja most a meglévÅ‘ beállításokat? Select native messaging host folder location Jelölje ki a natív üzenetküldési kiszolgálót tartalmazó mappát + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + Engedélyezés a keepassxc-proxy számára, hogy felsorolja az összes bejegyzést a címével, webcímével és UUID-jával a kapcsolódó adatbázisokban. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + Korlátozott hozzáférés engedélyezése az összes bejegyzéshez a kapcsolódó adatbázisokban (figyelmen kívül hagyja az oldal hozzáférési korlátozásait) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Figyelem:</b> Ezen beállításokat csak szükség esetén módosítsa. + + + The custom proxy location does not exist. + Az egyéni proxy helye nem létezik. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Hiba:</b> Az egyéni proxy helye nem létezik. Javítsa ki ezt a Speciális beállítások lapon. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Hiba:</b> A telepített proxy futtatható fájl hiányzik a várt helyrÅ‘l: %1<br/> Kérjük, állítson be egy egyéni proxy-helyet a Speciális beállításokban, vagy telepítse újra az alkalmazást. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1187,14 +1267,6 @@ Biztos, hogy migrálja most a meglévÅ‘ beállításokat? CsvImportWidget - - Import CSV fields - CSV-mezÅ‘k importálása - - - filename - fájlnév - size, rows, columns méret, sorok, oszlopok @@ -1221,7 +1293,7 @@ Biztos, hogy migrálja most a meglévÅ‘ beállításokat? URL - URL + Webcím Notes @@ -1303,50 +1375,29 @@ Biztos, hogy migrálja most a meglévÅ‘ beállításokat? Column %1 %1. oszlop - - Imported from CSV file - CSV-fájlból importálva - - - Original data: - Eredeti adatok: - - - Error(s) detected in CSV file! - Hibák találhatók a CSV-fájlban! - [%n more message(s) skipped] [%n további üzenet mellÅ‘zve][%n további üzenet mellÅ‘zve] - Error - Hiba + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - CSV importálás: a mentés hibába ütközött: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n bájt%n bájt - %n row(s) + CSV row count %n sor%n sor %n column(s) + CSV column count %n oszlop%n oszlop @@ -1421,40 +1472,10 @@ Az adatbázis biztonsági másolata: %2 Password field Jelszó mezÅ‘ - - Enter Additional Credentials (if any): - További hitelesítési adatok megadása (ha vannak): - - - Key File: - Kulcsfájl: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>A mesterkulcs mellett egy titkos fájlt is használhat, hogy javítsa az adatbázisa biztonságát. Ez a fájl az adatbázis biztonsági beállításaiban állítható elÅ‘.</p><p>Ez <strong>nem</strong> a *.kdbx adatbázisfájlja!<br>Ha nincs kulcsfájlja, akkor hagyja üresen ezt a mezÅ‘t.</p><p>Kattintson a további információkért…</p> - - - Key file help - Kulcsfájlok súgója - Hardware key slot selection Hardverkulcsfoglalat kijelölése - - Hardware Key: - Hardverkulcs: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>A <strong>YubiKey</strong> vagy az <strong>OnlyKey</strong> biztonsági hardverkulcsok alkalmazhatóak a HMAC-SHA1-re konfigurált foglalattal.</p> -<p>További információk…</p> - - - Hardware key help - Hardverkulcs súgó - Key file to unlock the database Adatbázis feloldására való kulcsfájl @@ -1467,14 +1488,6 @@ Az adatbázis biztonsági másolata: %2 Browse… Tallózás… - - Refresh hardware tokens - Hardveres jelsorok frissítése - - - Refresh - Frissítés - Unlock Database Adatbázis feloldása @@ -1537,14 +1550,6 @@ Ezen hiba megjelenése megelÅ‘zhetÅ‘ az Adatbázis-beállítások → Biztonság Retry with empty password Üres jelszó megpróbálása - - Failed to authenticate with Windows Hello - Nem sikerült a hitelesítés a Windows Hello-val - - - Failed to authenticate with Touch ID - Nem sikerült a hitelesítés a Touch ID-vel - Failed to open key file: %1 A kulcsfájl megnyitása sikertelen: %1 @@ -1578,21 +1583,60 @@ Ezen hiba megjelenése megelÅ‘zhetÅ‘ az Adatbázis-beállítások → Biztonság Adatbázisfájl nem használható kulcsfájlként - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Nem használhatja az adatbázisfájlt kulcsfájlként. Ha nincs kulcsfájlja, akkor hagyja üresen a mezÅ‘t. + authenticate to access the database + hitelesítsen az adatbázis eléréséhez - Detecting hardware keys… - Hardverkulcsok felismerése… + Failed to authenticate with Quick Unlock: %1 + Nem sikerült a hitelesítés a Gyors feloldással: %1 - No hardware keys detected - Nincsenek felismert hardverkulcsok. + Select Key File: + - Select hardware key… - Hardverkulcs kijelölése… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1604,10 +1648,6 @@ If you do not have a key file, please leave the field empty. DatabaseSettingsDialog - - Advanced Settings - Speciális beállítások - General Ãltalános @@ -1639,18 +1679,6 @@ If you do not have a key file, please leave the field empty. KeePassXC-Browser settings KeePassXC-böngészÅ‘ beállítások - - Convert KeePassHTTP data - KeePassHTTP adatok konvertálása - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - Az örökölt KeePassHTTP attribútumok konvertálása KeePassXC-böngészÅ‘ kompatibilis egyéni adatokká - - - Refresh database root group ID - Adatbázis gyökércsoport-azonosítójának frissítése - Disconnect all browsers Minden böngészÅ‘ leválasztása @@ -1659,6 +1687,10 @@ If you do not have a key file, please leave the field empty. Forget all site-specific settings on entries A bejegyzések összes oldalfüggÅ‘ beállításának elfelejtése + + Refresh database root group ID + Adatbázis gyökércsoport-azonosítójának frissítése + Stored keys Tárolt kulcsok @@ -1707,18 +1739,10 @@ This may prevent connection to the browser plugin. Valóban leválasztja az összes böngészÅ‘t? Ez megakadályozhatja a böngészÅ‘ bÅ‘vítményhez történÅ‘ kapcsolódást. - - KeePassXC: No keys found - KeePassXC: Nincs találat a kulcsok között - No shared encryption keys found in KeePassXC settings. Nem található megosztott titkosítási kulcs a KeePassXC beállításaiban. - - KeePassXC: Removed keys from database - KeePassXC: Kulcsok eltávolítva az adatbázisból - Successfully removed %n encryption key(s) from KeePassXC settings. Sikeresen eltávolításra került %n titkosítási kulcs a KeePassXC beállításokból.Sikeresen eltávolításra került %n titkosítási kulcs a KeePassXC beállításokból. @@ -1737,32 +1761,14 @@ A bejegyzések elérési engedélyei vissza lesznek vonva. Abort Megszakítás - - KeePassXC: Removed permissions - KeePassXC: Jogosultságok eltávolítva - Successfully removed permissions from %n entry(s). Sikeresen el lett távolítva a jogosultság %n elemrÅ‘l.Sikeresen el lett távolítva a jogosultság %n elemrÅ‘l. - - KeePassXC: No entry with permissions found! - KeePassXC: Nem található bejegyzés ilyen jogosultsággal! - The active database does not contain an entry with permissions. Az aktív adatbázisban nincs egyetlen jogosultsági bejegyzés sem. - - Move KeePassHTTP attributes to custom data - HTTP attribútumok áthelyezése az egyéni adatokhoz - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Valóban konvertálja az összes örökölt böngészÅ‘integrációs adatot a legfrissebb szabványra? -Ez szükséges a böngészÅ‘bÅ‘vítmény kompatibilitásának fenntartásához. - Refresh database ID Adatbázis-azonosító frissítése @@ -1773,6 +1779,26 @@ This is only necessary if your database is a copy of another and the browser ext Valóban frissíthetÅ‘ az adatbázis-azonosító? Erre csak akkor lehet szükség, ha az adatbázis egy másik másolata és a böngészÅ‘ kiterjesztés nem tud kapcsolódni. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Az örökölt KeePassHTTP attribútumok konvertálása KeePassXC-böngészÅ‘ kompatibilis egyéni adatokká + + + No keys found + Nem találhatók kulcsok + + + Removed keys from database + A kulcsok eltávolítva az adatbázisból + + + Removed permissions + Engedélyek eltávolítva + + + No entry with permissions found! + Nincs bejegyzés ilyen jogosultsággal! + DatabaseSettingsWidgetDatabaseKey @@ -1812,6 +1838,18 @@ Valóban jelszó nélkül folytatja? Failed to change database credentials Az adatbázis hitelesítési adatainak módosítása sikertelen + + Weak password + Gyenge jelszó + + + You must enter a stronger password to protect your database. + ErÅ‘sebb jelszót kell megadni az adatbázisa védelméhez. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + Ez egy gyenge jelszó! A titkai jobb védelme érdekében adjon meg erÅ‘sebb jelszót. + DatabaseSettingsWidgetEncryption @@ -1819,14 +1857,6 @@ Valóban jelszó nélkül folytatja? Decryption Time: Visszafejtés ideje: - - Change existing decryption time - MeglévÅ‘ visszafejtése idÅ‘ módosítása - - - Change - Módosítása - Decryption time in seconds Visszafejtési idÅ‘ másodpercben @@ -1907,11 +1937,6 @@ Valóban jelszó nélkül folytatja? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - változatlan - Number of rounds too high Key transformation rounds @@ -1964,6 +1989,18 @@ Ezt a számot megtartva az adatbázis nem lesz ellenálló a nyers erÅ‘vel való Threads for parallel execution (KDF settings) szálszál + + Encryption Settings: + Titkosítási beállítások: + + + Basic + AlapvetÅ‘ + + + Advanced + Speciális + DatabaseSettingsWidgetFdoSecrets @@ -2022,18 +2059,10 @@ Ezt a számot megtartva az adatbázis nem lesz ellenálló a nyers erÅ‘vel való Maximum number of history items per entry ElÅ‘zményelemek maximális száma bejegyzésenként - - Max. history items: - ElÅ‘zmények legnagyobb száma: - Maximum size of history per entry ElÅ‘zmények maximális mérete bejegyzésenként - - Max. history size: - ElÅ‘zmények legnagyobb mérete: - MiB MiB @@ -2064,6 +2093,64 @@ Ez nem vonható vissza! (old) (régi) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + E beállítás mentésekor vagy egy bejegyzés +szerkesztésekor a bejegyzés legrégebbi +elÅ‘zményei törlÅ‘dnek, így csak a megadott +mennyiségű bejegyzés marad meg. + + + Limit the amount of history items per entry to: + A bejegyzésenkénti elÅ‘zmények számának korlátozása a következÅ‘re: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + E beállítás mentésekor vagy egy bejegyzés +szerkesztésekor a bejegyzés legrégebbi +elÅ‘zményei törlÅ‘dnek, így a fennmaradó elÅ‘zményelemek +legfeljebb a megadott mennyiséget érik el. + + + Limit the total size of history items per entry to: + A bejegyzésenkénti elÅ‘zmények számának korlátozása a következÅ‘re: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + A bejegyzések áthelyezése a kuka csoportba +az adatbázisból történÅ‘ törlésük helyett. +A kukából törölt bejegyzések eltávolításra +kerülnek az adatbázisból. + + + Autosave delay since last change + Automatikus mentési késleltetés az utolsó módosítás óta + + + Autosave delay + Automatikus mentési késleltetés + + + Autosave delay since last change in minutes + Automatikus mentési késleltetés percekben az utolsó módosítás óta + + + min + perc + + + Autosave delay since last change checkbox + Automatikus mentési késleltetés az utolsó módosítás óta jelölÅ‘négyzet + DatabaseSettingsWidgetKeeShare @@ -2191,26 +2278,10 @@ Ez határozottan hiba, jelentse a fejlesztÅ‘knek. CSV file CSV-fájl - - Select CSV file - Válasszon CSV-fájlt - Merge database Adatbázis egyesítése - - KeePass 1 database - KeePass 1 adatbázis - - - Open KeePass 1 database - KeePass 1 adatbázis megnyitása - - - Open OPVault - OPVault megnyitása - Export database to CSV file Adatbázis exportálása CSV-fájlba @@ -2223,6 +2294,18 @@ Ez határozottan hiba, jelentse a fejlesztÅ‘knek. Writing the HTML file failed. A HTML-fájl mentése sikertelen. + + Export database to XML file + Adatbázis exportálása XML-fájlba + + + XML file + XML-fájl + + + Writing the XML file failed + Az XML-fájl írása sikertelen + Export Confirmation Exportálás megerÅ‘sítése @@ -2231,15 +2314,6 @@ Ez határozottan hiba, jelentse a fejlesztÅ‘knek. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? Az adatbázis nem titkosított fájlba lesz exportálva. Ãgy sebezhetÅ‘ek lesznek a jelszavak és más érzékeny információk. Valóban folytatható a művelet? - - New Database - Új adatbázis - - - %1 [New Database] - Database tab name modifier - %1 [Új adatbázis] - %1 [Locked] Database tab name modifier @@ -2249,8 +2323,8 @@ Ez határozottan hiba, jelentse a fejlesztÅ‘knek. DatabaseWidget - Database Tags - Adatbázis címkék + Searches and Tags + Keresések és címkék Searching… @@ -2300,6 +2374,10 @@ Ez határozottan hiba, jelentse a fejlesztÅ‘knek. Expired entries Lejárt bejegyzések + + Entries expiring within %1 day(s) + %1 napon belül lejáró bejegyzések%1 napon belül lejáró bejegyzések + No current database. Nincs aktuális adatbázis. @@ -2324,6 +2402,18 @@ Ez határozottan hiba, jelentse a fejlesztÅ‘knek. No Results Nincs találat + + Save + Mentés + + + Enter a unique name or overwrite an existing search from the list: + Adjon meg egy egyedi nevet, vagy írjon felül egy meglévÅ‘ keresést a listából: + + + Save Search + Keresés mentése + Lock Database? Zárolja az adatbázist? @@ -2414,9 +2504,14 @@ Letiltható a biztonságos mentés és úgy megkísérelhetÅ‘ a mentés?Could not find database file: %1 Az adatbázis-fájl nem található: %1 - - Entries expiring within %1 day(s) - %1 napon belül lejáró bejegyzések%1 napon belül lejáró bejegyzések + + New Database + Új adatbázis + + + %1 [New Database] + Database tab name modifier + %1 [Új adatbázis] @@ -2451,7 +2546,7 @@ Letiltható a biztonságos mentés és úgy megkísérelhetÅ‘ a mentés? Are you sure you want to remove this URL? - Valóban eltávolítja ezt az URL? + Valóban eltávolítja ezt a webcímet? Properties @@ -2475,7 +2570,7 @@ Letiltható a biztonságos mentés és úgy megkísérelhetÅ‘ a mentés? Select private key - Személyes kulcs kijelölése + Titkos kulcs kijelölése Entry history @@ -2559,6 +2654,10 @@ Szeretné kijavítani? Hide Elrejtés + + %n hour(s) + %n óra%n óra + %n week(s) %n hét%n hét @@ -2571,10 +2670,6 @@ Szeretné kijavítani? %n year(s) %n év%n év - - %n hour(s) - %n óra%n óra - EditEntryWidgetAdvanced @@ -2693,10 +2788,20 @@ Szeretné kijavítani? Add new window association Új ablaktársítás hozzáadása + + + + Add item + + + Remove selected window association Kijelölt ablaktársítás eltávolítása + + - + Remove item + − + Window title: Ablakcím: @@ -2721,16 +2826,6 @@ Szeretné kijavítani? Custom Auto-Type sequence for this window Egyéni automatikus beírási sorrend ehhez az ablakhoz - - + - Add item - + - - - - - Remove item - − - EditEntryWidgetBrowser @@ -2752,23 +2847,23 @@ Szeretné kijavítani? Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. - Ezt a beállítást csak a böngészÅ‘ HTTP Auth párbeszédablakának küldje. Bejelölve a normál bejelentkezési űrlapokon ez a bejegyzés nem fog kiválaszthatóként feltűnni. + Ezt a beállítást csak a böngészÅ‘ HTTP hitelesítési párbeszédablakának küldje. Bejelölve a normál bejelentkezési űrlapokon ez a bejegyzés nem fog kiválaszthatóként feltűnni. Use this entry only with HTTP Basic Auth - Bejegyzés alkalmazása csak HTTP Basic Auth-tal + Bejegyzés alkalmazása csak HTTP Basic hitelesítéssel Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. - Ne küldje ezt a beállítást a böngészÅ‘ HTTP Auth párbeszédablakának. Bejelölve a HTTP Auth párbeszédablakokban ez a bejegyzés nem fog kiválaszthatóként feltűnni. + Ne küldje ezt a beállítást a böngészÅ‘ HTTP hitelesítési párbeszédablakának. Bejelölve a HTTP hitelesítési párbeszédablakokban ez a bejegyzés nem fog kiválaszthatóként feltűnni. Do not use this entry with HTTP Basic Auth - Bejegyzés tiltása HTTP Basic Auth-tal + Bejegyzés tiltása HTTP Basic hitelesítéssel Additional URL's - További URL-ek + További webcímek Add @@ -2832,22 +2927,10 @@ Szeretné kijavítani? Notes field Jegyzetek mezÅ‘ - - Toggle the checkbox to reveal the notes section. - JelölÅ‘négyzet átváltásával felfedhetÅ‘ a jegyzetek szalasz. - Username field Felhasználónév mezÅ‘ - - Toggle notes visible - Jegyzetek láthatóságának átváltása - - - Notes: - Jegyzetek: - Expiration field Lejárati mezÅ‘ @@ -2864,34 +2947,18 @@ Szeretné kijavítani? Presets ElÅ‘beállítások - - Password: - Jelszó: - - - URL: - URL: - Url field - URL mezÅ‘ + Webcím mezÅ‘ Download favicon for URL - URL faviconjának letöltése - - - Title: - Cím: + Webcím weblapikonjának letöltése Title field Cím mezÅ‘ - - Username: - Felhasználónév: - Password field Jelszó mezÅ‘ @@ -2900,18 +2967,42 @@ Szeretné kijavítani? Toggle expiration Lejárat átváltása - - Expires: - Lejárat: - - - Tags: - Címkék: - Tags list Címkelista + + &Username: + &Felhasználónév: + + + &Title: + &Cím: + + + &Password: + &Jelszó: + + + UR&L: + UR&L: + + + &Notes: + &Jegyzetek: + + + Toggle notes visibility + Jegyzetek láthatóságának átváltása + + + T&ags: + &Címkék: + + + &Expires: + &Lejárat: + EditEntryWidgetSSHAgent @@ -2949,20 +3040,7 @@ Szeretné kijavítani? Private key - Személyes kulcs - - - External file - KülsÅ‘ fájl - - - Browser for key file - Kulcsfájl böngészése - - - Browse… - Button for opening file dialog - Tallózás… + Titkos kulcs Attachment @@ -2980,6 +3058,23 @@ Szeretné kijavítani? Remove from agent Eltávolítás az ügynöktÅ‘l + + External file + KülsÅ‘ fájl + + + Browser for key file + Kulcsfájl böngészése + + + Browse… + Button for opening file dialog + Tallózás… + + + Generate + Előállítás + Select attachment file Mellékletfájl kijelölése @@ -3015,10 +3110,6 @@ Szeretné kijavítani? Icon Ikon - - Browser Integration - BöngészÅ‘integráció - Properties Tulajdonságok @@ -3035,6 +3126,10 @@ Szeretné kijavítani? Group has unsaved changes A csoportnak mentetlen változásai vannak + + Browser Integration + BöngészÅ‘integráció + Enable Engedélyezés @@ -3050,10 +3145,6 @@ Szeretné kijavítani? EditGroupWidgetBrowser - - Edit Group - Csoport szerkesztése - These settings affect to the group's behaviour with the browser extension. Ezek a beállítások befolyásolják a csoport viselkedését a böngészÅ‘ kiterjesztésével. @@ -3076,19 +3167,35 @@ Szeretné kijavítani? Use entries only with HTTP Basic Auth: - Bejegyzések alkalmazása csak HTTP Basic Auth-tal: + Bejegyzések alkalmazása csak HTTP Basic hitelesítéssel: Only HTTP Auth toggle for this and sub groups - Csak HTTP Auth kapcsoló ennél a csoportnál és alcsoportjainál + Csak HTTP hitelesítési kapcsoló ennél a csoportnál és alcsoportjainál Do not use entries with HTTP Basic Auth: - Bejegyzések tiltása HTTP Basic Auth-tal: + Bejegyzések tiltása HTTP Basic hitelesítéssel: Do not use HTTP Auth toggle for this and sub groups - HTTP Auth kapcsoló tiltása ennél a csoportnál és alcsoportjainál + A HTTP hitelesítési kapcsoló tiltása ennél a csoportnál és alcsoportjainál + + + Omit WWW subdomain from matching: + A WWW altartomány kihagyása a megfeleltetésbÅ‘l: + + + Omit WWW subdomain from matching toggle for this and sub groups + A WWW altartomány kihagyása a megfeleltetésbÅ‘l átkapcsolása ennél a csoportnál és alcsoportjainál + + + Restrict matching to given browser key: + A megfeleltetés az adott böngészÅ‘kulcsra korlátozása: + + + Restrict matching to given browser key toggle for this and sub groups + A megfeleltetés az adott böngészÅ‘kulcsra korlátozása beállítás be/ki ennél a csoportnál és az alcsoportjainál @@ -3280,19 +3387,19 @@ Támogatott kiterjesztések: %1. Set the URL to use to search for a favicon - URL beállítása a weblapikon kereséséhez + Webcím beállítása a weblapikon kereséséhez Favicon URL - Weblapikon URL + Weblapikon webcíme Download favicon for URL - URL faviconjának letöltése + Webcím weblapikonjának letöltése Download favicon - Favicon letöltése + Weblapikon letöltése Apply selected icon to subgroups and entries @@ -3320,11 +3427,7 @@ Támogatott kiterjesztések: %1. Unable to fetch favicon. - A favicon letöltése sikertelen. - - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - A DuckDuckGo weboldal ikon szolgáltatást az Eszközök → Beállítások → Biztonság pontban lehet engedélyezni + A weblapikon letöltése sikertelen. Existing icon selected. @@ -3358,6 +3461,10 @@ Támogatott kiterjesztések: %1. The following icon(s) failed: A következÅ‘ ikonnál hiba történt:A következÅ‘ ikonoknál hiba történt: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + A DuckDuckGo weboldalikon szolgáltatást az Alkalmazásbeállítások → Biztonság pontban lehet engedélyezni + EditWidgetProperties @@ -3646,7 +3753,7 @@ Hiba: %1 URL - URL + Webcím Notes @@ -3718,7 +3825,7 @@ Hiba: %1 URL - URL + Webcím Notes @@ -3796,6 +3903,10 @@ Hiba: %1 Has TOTP Van TOTP-je + + Background Color + Háttérszín + EntryPreviewWidget @@ -3816,8 +3927,8 @@ Hiba: %1 Jelszó - Notes - Jegyzetek + URL + Webcím Expiration @@ -3836,8 +3947,8 @@ Hiba: %1 Felhasználónév - URL - URL + Notes + Jegyzetek Advanced @@ -3887,6 +3998,10 @@ Hiba: %1 Never Soha + + Double click to copy value + Dupla kattintás az érték másolásához + Enabled Engedélyezett @@ -3895,12 +4010,20 @@ Hiba: %1 Disabled Tiltott + + Double click to copy to clipboard + Dupla kattintás a vágólapra másoláshoz + EntryURLModel Invalid URL - Érvénytelen URL + Érvénytelen webcím + + + Duplicate URL + Ismételt webcím @@ -3917,6 +4040,10 @@ Hiba: %1 Reset to defaults Visszaállítás alapértelmezettre + + + %1 entry(s)... + + %1 bejegyzés…+ %1 bejegyzés… + ExportDialog @@ -4088,7 +4215,7 @@ This will leave your passwords and sensitive information vulnerable! IconDownloaderDialog Download Favicons - Faviconok letöltése + Weblapikonok letöltése Cancel @@ -4106,7 +4233,7 @@ A DuckDuckGo weboldal ikon szolgáltatást az alkalmazás beállításai közöt URL - URL + Webcím Status @@ -4137,6 +4264,147 @@ A DuckDuckGo weboldal ikon szolgáltatást az alkalmazás beállításai közöt Weblapikonok letöltése (%1/%2)… + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Varázsló oldal + + + Entry count: %1 + + + + Group + Csoport + + + Title + Cím + + + Username + Felhasználónév + + + Password + Jelszó + + + Url + + + + + ImportWizardPageSelect + + Form + Űrlap + + + Import File Selection + + + + Password: + Jelszó: + + + Key File: + Kulcsfájl: + + + Browse… + Tallózás… + + + Import Into: + + + + New Database + Új adatbázis + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + OPVault megnyitása + + + Select import file + + + + All files + Minden fájl + + + Key files + Kulcsfájlok + + + Select key file + Kulcsfájl kiválasztása + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4556,30 +4824,19 @@ Line %2, column %3 Private key is an attachment but no attachments provided. - A személyes kulcs egy melléklet lenne, de nincs melléklet. + A titkos kulcs egy melléklet lenne, de nincs melléklet. Private key is empty - Üres a személyes kulcs + Üres a titkos kulcs File too large to be a private key - A fájl túl nagy ahhoz, hogy személyes kulcs legyen + A fájl túl nagy ahhoz, hogy titkos kulcs legyen Failed to open private key - Személyes kulcs megnyitása meghiúsult - - - - KeePass1OpenWidget - - Import KeePass1 Database - KeePass1 adatbázis importálása - - - Unable to open the database. - Nem lehet megnyitni az adatbázist. + A titkos kulcs megnyitása sikertelen @@ -4936,11 +5193,7 @@ Valóban folytatható a művelet ezzel a fájllal? &Recent Databases - &Friss adatbázisok - - - &Import - &Importálás + &Legutóbb használt adatbázisok &Export @@ -4962,6 +5215,10 @@ Valóban folytatható a művelet ezzel a fájllal? TOTP TOTP + + Tags + Címkék + &Groups &Csoportok @@ -5006,34 +5263,18 @@ Valóban folytatható a művelet ezzel a fájllal? &New Database… Ú&j adatbázis - - Create a new database - Új adatbázis létrehozása - &Merge From Database… &Egyesítés adatbázisból… - - Merge from another KDBX database - Egyesítés egy másik KeePassX adatbázisból - &New Entry… Új b&ejegyzés… - - Add a new entry - Új bejegyzés hozzáadása - &Edit Entry… Bejegyzés sze&rkesztése… - - View or edit entry - Bejegyzés megtekintése vagy szerkesztése - &Delete Entry… Bejegyzés &törlése… @@ -5042,10 +5283,6 @@ Valóban folytatható a művelet ezzel a fájllal? &New Group… Ú&j csoport… - - Add a new group - Új csoport hozzáadása - &Edit Group… Csoport sz&erkesztése… @@ -5056,7 +5293,7 @@ Valóban folytatható a művelet ezzel a fájllal? Download All &Favicons… - Minden favicon &letöltése… + Összes weblapikon &letöltése… Sort &A-Z @@ -5078,18 +5315,10 @@ Valóban folytatható a művelet ezzel a fájllal? Database &Reports… Adatbázis &jelentések… - - Statistics, health check, etc. - Statisztika, állapotfelmérés, stb. - &Database Settings… Adatbázis-&beállítások… - - Database settings - Adatbázis-beállítások - &Clone Entry… Bejegyzés &klónozása… @@ -5098,34 +5327,18 @@ Valóban folytatható a művelet ezzel a fájllal? Move u&p Mozgatás &fel - - Move entry one step up - Bejegyzés mozgatása egy lépéssel feljebb - Move do&wn Mozgatás &le - - Move entry one step down - Bejegyzés mozgatása egy lépéssel lejebb - Copy &Username &Felhasználónév másolása - - Copy username to clipboard - Felhasználónév másolása a vágólapra - Copy &Password &Jelszó másolása - - Copy password to clipboard - Jelszó másolása a vágólapra - &Settings &Beállítások @@ -5140,11 +5353,11 @@ Valóban folytatható a művelet ezzel a fájllal? Download &Favicon - &Favicon letöltése + &Weblapikon letöltése Open &URL - &URL megnyitása + &Webcím megnyitása &Lock Database @@ -5159,25 +5372,13 @@ Valóban folytatható a művelet ezzel a fájllal? &Cím - Copy title to clipboard - Cím másolása a vágólapra - - - &URL - &URL - - - Copy URL to clipboard - URL másolása a vágólapra + Copy &URL + &Webcím másolása &Notes &Jegyzetek - - Copy notes to clipboard - Jegyzetek másolása a vágólapra - &CSV File… &CSV-fájl… @@ -5190,26 +5391,14 @@ Valóban folytatható a művelet ezzel a fájllal? KeePass 1 Database… KeePass 1 adatbázis… - - Import a KeePass 1 database - KeePass 1 adatbázis importálása - 1Password Vault… 1Password Vault… - - Import a 1Password Vault - 1Password Vault importálása - CSV File… CSV-fájl… - - Import a CSV file - CSV-fájl importálása - Show TOTP TOTP megjelenítése @@ -5226,6 +5415,10 @@ Valóban folytatható a művelet ezzel a fájllal? Copy &TOTP &TOTP másolása + + Copy Password and TOTP + Jelszó és TOTP másolása + E&mpty recycle bin &Kuka ürítése @@ -5250,10 +5443,6 @@ Valóban folytatható a művelet ezzel a fájllal? &Online Help &Online súgó - - Go to online documentation - Ugrás az online dokumentációra - &User Guide Felhasználói &kézikönyv @@ -5322,6 +5511,10 @@ Valóban folytatható a művelet ezzel a fájllal? Clone Group... Csoport klónozása… + + &XML File… + &XML-fájl… + Clear history ElÅ‘zmények törlése @@ -5353,6 +5546,10 @@ We recommend you use the AppImage available on our downloads page. FIGYELMEZTETÉS: A Qt verziója miatt a KeePassXC összeomolhat egy képernyÅ‘-billentyűzettel. Javasoljuk az AppImage alkalmazását, amely elérhetÅ‘ a letöltések oldalon. + + No Tags + Nincsenek címkék + Restore Entry(s) Bejegyzések helyreállításaBejegyzések helyreállítása @@ -5381,6 +5578,10 @@ Javasoljuk az AppImage alkalmazását, amely elérhetÅ‘ a letöltések oldalon.< Quit KeePassXC Kilépés a KeePassXC-bÅ‘l + + %1 Entry(s) + %1 bejegyzés%1 bejegyzés + Please present or touch your YubiKey to continue… Kérjük, tegye elérhetÅ‘vé vagy érintse meg a YubiKey-t a folytatáshoz… @@ -5393,6 +5594,274 @@ Javasoljuk az AppImage alkalmazását, amely elérhetÅ‘ a letöltések oldalon.< You must restart the application to apply this setting. Would you like to restart now? Ennek a beállításnak az érvényre kerüléséhez újra kell indítani az alkalmazást. Legyen azonnal újraindítva? + + Allow Screen Capture + KépernyÅ‘rögzítés engedélyezése + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Jelkulcsok… + + + Import Passkey + Jelkulcs importálása + + + Quit Application + Kilépés az alkalmazásból + + + Open About Dialog + Névjegy párbeszédablak megnyitása + + + Open Database + Adatbázis megnyitása + + + Create Database + Adatbázis létrehozása + + + Merge From Database + Egyesítés adatbázisból + + + Create Entry + Bejegyzés létrehozása + + + Edit Entry + Bejegyzés szerkesztése + + + Delete Entry + Bejegyzés törlése + + + Create Group + Csoport létrehozása + + + Edit Group + Csoport szerkesztése + + + Delete Group + Csoport törlése + + + Download All Favicons + Kedvenc weblapikonok letöltése + + + Sort Groups A-Z + Rendezés: csoportok A–Z + + + Sort Groups Z-A + Rendezés: csoportok Z–A + + + Save Database As + Adatbázis mentése más néven + + + Show Database Security + Adatbázis biztonságának megjelenítése + + + Show Database Reports + Adatbázis-jelentések megjelenítése + + + Show Database Settings + Adatbázis-beállítások megjelenítése + + + Show Passkeys + Jelkulcsok megjelenítése + + + Clone Entry + Bejegyzés klónozása + + + Move Entry Up + Bejegyzés feljebb helyezése + + + Move Entry Down + Bejegyzés lentebb helyezése + + + Copy Username + Felhasználónév másolása + + + Copy Password + Jelszó másolása + + + Show Application Settings + Alkalmazásbeállítások megjelenítése + + + Show Password Generator + Jelszó-előállító megjelenítése + + + Perform Auto-Type: {USERNAME} + Automatikus beírás végrehajtása: {USERNAME} + + + Perform Auto-Type: {USERNAME}{ENTER} + Automatikus beírás végrehajtása: {USERNAME}{ENTER} + + + Perform Auto-Type: {PASSWORD} + Automatikus beírás végrehajtása: {PASSWORD} + + + Perform Auto-Type: {PASSWORD}{ENTER} + Automatikus beírás végrehajtása: {PASSWORD}{ENTER} + + + Perform Auto-Type: {TOTP} + Automatikus beírás végrehajtása: {TOTP} + + + Copy Title + Cím másolása + + + Copy URL + Webcím másolása + + + Copy Notes + Jegyzetek másolása + + + Export to CSV + Exportálás CSV-be + + + Export to HTML + Exportálás HTML-be + + + Import KeePass1 Database + KeePass1 adatbázis importálása + + + Import 1Password Vault + 1Password széf importálása + + + Import CSV File + CSV-fájl importálása + + + Show TOTP QR Code + TOTP QR-kód megjelenítése + + + Set up TOTP + TOTP beállítása + + + Empty Recycle Bin + Kuka ürítése + + + Open Donation Website + Adományozási weblap megnyitása + + + Open Bug Report + Hibajelentés megnyitása + + + Open Online Documentation + Online dokumentáció megjelenítése + + + Open Keyboard Shortcuts Guide + Gyorsbillentyűk útmutatójának megnyitása + + + Save Database Backup + Biztonsági mentés az adatbázisról + + + SSH Agent: Add Key + SSH ügynök: kulcs hozzáadása + + + SSH Agent: Remove Key + SSH ügynök: kulcs eltávolítása + + + Toggle Compact Mode + Kompakt mód be/ki + + + Set Theme: Automatic + Téma beállítása: automatikus + + + Set Theme: Light + Téma beállítása: világos + + + Set Theme: Dark + Téma beállítása: sötét + + + Set Theme: Classic + Téma beállítása: klasszikus + + + Toggle Show Toolbar + Eszköztár megjelenítése be/ki + + + Toggle Show Preview Panel + ElÅ‘nézeti panel megjelenítése be/ki + + + Toggle Always on Top + Mindig felül be/ki + + + Toggle Hide Usernames + Felhasználónevek elrejtése be/ki + + + Toggle Hide Passwords + Jelszavak elrejtése be/ki + + + Export to XML + Exportálás XML-be + + + Toggle Allow Screen Capture + KépernyÅ‘rögzítés engedélyezése be/ki + ManageDatabase @@ -5450,26 +5919,6 @@ Javasoljuk az AppImage alkalmazását, amely elérhetÅ‘ a letöltések oldalon.< Overwriting %1 [%2] %1 felülírása [%2] - - older entry merged from database "%1" - régebbi bejegyzés összeolvasztva a(z) „%1†adatbázisból - - - Adding backup for older target %1 [%2] - Biztonsági mentés hozzáadása a régebbi %1 célhoz [%2] - - - Adding backup for older source %1 [%2] - Biztonsági mentés hozzáadása a régebbi %1 forráshoz [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - A régebbi cél újra alkalmazása az újabb %1 forráson [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - A régebbi forrás újra alkalmazása az újabb %1 célon [%2] - Synchronizing from newer source %1 [%2] Szinkronizálás az újabb %1 forrásból [%2] @@ -5529,14 +5978,6 @@ Javasoljuk az AppImage alkalmazását, amely elérhetÅ‘ a letöltések oldalon.< Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Itt állíthatja be az adatbázis titkosítási beállításokat. Ne aggódjon, késÅ‘bb is megváltoztathatja az adatbázis-beállításokban. - - Advanced Settings - Speciális beállítások - - - Simple Settings - Egyszerű beállítások - NewDatabaseWizardPageDatabaseKey @@ -5617,15 +6058,6 @@ Javasoljuk az AppImage alkalmazását, amely elérhetÅ‘ a letöltések oldalon.< %1 bájt egyszerű szöveg a várt, de ehelyett a talált: %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Az adatbázis olvasása nem hozott létre példányt: -%1 - - OpVaultReader @@ -5693,12 +6125,16 @@ Javasoljuk az AppImage alkalmazását, amely elérhetÅ‘ a letöltések oldalon.< No private key payload to decrypt - Nincs dekódolható adat a személyes kulcsból + Nincs titkos kulcs megadva a visszafejtéshez Unknown cipher: %1 Ismeretlen titkosító: %1 + + AES-256/GCM is currently not supported + AES-256/GCM jelenleg nem támogatott + Passphrase is required to decrypt this key Jelmondat szükséges a kulcsfájl visszafejtéséhez @@ -5745,7 +6181,7 @@ Javasoljuk az AppImage alkalmazását, amely elérhetÅ‘ a letöltések oldalon.< Unexpected EOF while reading private key - Nem várt EOF a személyes kulcs olvasása közben + Nem várt EOF a titkos kulcs olvasása közben Can't write public key as it is empty @@ -5757,34 +6193,186 @@ Javasoljuk az AppImage alkalmazását, amely elérhetÅ‘ a letöltések oldalon.< Can't write private key as it is empty - Nem lehet írni a személyes kulcs, mivel üres + Nem lehet írni a titkos kulcsot, mivel üres Unexpected EOF when writing private key - Nem várt EOF a személyes kulcs írásakor + Nem várt EOF a titkos kulcs írásakor - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - A jelszavak nem egyeznek + SSH Key Generator + SSH-kulcsgenerátor - Passwords match so far - A jelszavak eddig megegyeznek + Type + Típus - Toggle Password (%1) - Jelszó átváltása (%1) + Bits + Bitek - Generate Password (%1) - Jelszó előállítása (%1) + Comment + Megjegyzés + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC – Jelkulcs exportálása - Warning: Caps Lock enabled! - Figyelem: a Caps Lock be van kapcsolva! + Export the following Passkey entries. + A következÅ‘ jelkulcsot tartalmazó bejegyzések exportálása. + + + Filenames will be generated with title and .passkey file extension. + A fájlnevek a cím alapján lesznek előállítva, és .passkey kiterjesztésűek lesznek. + + + Export entries + Bejegyzések exportálása + + + Export Selected + Kijelöltek exportálása + + + Cancel + Mégse + + + Export to folder + Exportálás mappába + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: Jelkulcs exportálása + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + A(z) „%1.passkey†fájl már létezik. +Felülírja? + + + + Cannot open file + A fájl nem nyitható meg + + + Cannot open file "%1" for writing. + A(z) „%1†fájl nem nyitható meg írásra. + + + Cannot write to file + Nem lehet a fájlba írni + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC – Jelkulcs importálása + + + Username: %1 + Felhasználónév: %1 + + + Group + Csoport + + + Database + Adatbázis + + + Import Passkey + Jelkulcs importálása + + + Import + Importálás + + + Cancel + Mégse + + + Import the following Passkey: + A következÅ‘ jelkulcs importálása: + + + Entry + Bejegyzés + + + Import the following Passkey to this entry: + A következÅ‘ jelkulcs importálása ebbe a bejegyzésbe: + + + Create new entry + Új bejegyzés importálása + + + Default Passkeys group (Imported Passkeys) + Jelkulcsok alapértelmezett csoportja (importált jelkulcsok) + + + Relying Party: %1 + KözvetítÅ‘ fél: %1 + + + + PasskeyImporter + + Passkey file + Jelkulcsfájl + + + All files + Minden fájl + + + Open Passkey file + Jelkulcsfájl megnyitása + + + Cannot open file + A fájl nem nyitható meg + + + Cannot open file "%1" for reading. + A(z) „%1†fájl nem nyitható meg olvasásra. + + + Cannot import Passkey + A jelkulcs nem importálható + + + Cannot import Passkey file "%1". Data is missing. + A(z) „%1†jelkulcsfájl nem importálható. Az adatok hiányoznak. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + A(z) „%1†jelkulcsfájl nem importálható. A titkos kulcs hiányzik vagy hibás. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + A(z) „%1†jelkulcsfájl nem importálható. +A következÅ‘ adatok hiányoznak: +%2 @@ -6049,6 +6637,30 @@ Javasoljuk az AppImage alkalmazását, amely elérhetÅ‘ a letöltések oldalon.< Entropy: %1 bit Entrópia: %1 bit + + Password Quality: %1 + JelszóminÅ‘ség: %1 + + + Poor + Password quality + Silány + + + Weak + Password quality + Gyenge + + + Good + Password quality + Jó + + + Excellent + Password quality + Kiváló + Confirm Delete Wordlist Szólista törlésének megerÅ‘sítése @@ -6095,9 +6707,32 @@ Valóban felülírja? Special Characters Speciális karakterek + + + PasswordWidget - Password Quality: %1 - JelszóminÅ‘ség: %1 + Passwords do not match + A jelszavak nem egyeznek + + + Passwords match so far + A jelszavak eddig megegyeznek + + + Toggle Password (%1) + Jelszó átváltása (%1) + + + Generate Password (%1) + Jelszó előállítása (%1) + + + Warning: Caps Lock enabled! + Figyelem: a Caps Lock be van kapcsolva! + + + Quality: %1 + MinÅ‘ség: %1 Poor @@ -6119,6 +6754,10 @@ Valóban felülírja? Password quality Kiváló + + Toggle password visibility using Control + H. Open the password generator using Control + G. + Jelszó láthatóságának átváltása Ctrl + H-val. Jelszó-előállító megnyitása Ctrl + G-vel. + PickcharsDialog @@ -6173,6 +6812,10 @@ Valóban felülírja? Continue Folytatás + + Continue with weak password + Folytatás gyenge jelszóval + QObject @@ -6218,7 +6861,7 @@ Valóban felülírja? No URL provided - Nincs URL biztosítva + Nincs megadva webcím No logins found @@ -6262,11 +6905,11 @@ Valóban felülírja? URL for the entry. - Bejegyzés URL-je. + A bejegyzés webcíme. URL - URL + Webcím Notes for the entry. @@ -6566,14 +7209,24 @@ Valóban felülírja? Too many arguments provided. Túl sok argumentum lett megadva. + + Path of the database. + Adatbázis útvonala. + Target decryption time in MS for the database. - Megcélzott visszafejtési idÅ‘ a ms-ban az adatbázis számára. + Megcélzott visszafejtési idÅ‘ ms-ban az adatbázis számára. time idÅ‘ + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + A kulcsfájl beállítása az adatbázishoz. +Ez a kapcsoló elavult, használja helyette a --set-key-file kapcsolót. + Set the key file for the database. Adja meg a kulcsfájlt az adatbázis számára. @@ -6586,10 +7239,6 @@ Valóban felülírja? Create a new database. Új adatbázis létrehozása. - - Path of the database. - Adatbázis útvonala. - Invalid decryption time %1. Érvénytelen visszafejtési idÅ‘: %1. @@ -6634,6 +7283,158 @@ Valóban felülírja? Successfully created new database. Az adatbázis sikeresen létre lett hozva. + + Unset the password for the database. + Az adatbázis jelszavának visszavonása. + + + Unset the key file for the database. + Az adatbázis kulcsfájljának visszavonása + + + Edit a database. + Adatbázis szerkesztése. + + + Cannot use %1 and %2 at the same time. + Nem használható %1 és %2 egyidejűleg. + + + Could not change the database key. + Nem sikerült az adatbázis kulcsának módosítása. + + + Database was not modified. + Az adatbázis nem lett módosítva. + + + Writing the database failed: %1 + Az adatbázis kiírása sikertelen: %1 + + + Successfully edited the database. + Az adatbázis szerkesztése sikeres. + + + Cannot remove password: The database does not have a password. + A jelszó nem távolítható el: Az adatbázisnak nincs jelszava. + + + Cannot remove file key: The database does not have a file key. + A kulcsfájl nem távolítható el. Az adatbázisnak nincs kulcsfájlja. + + + Loading the new key file failed: %1 + Az új kulcsfájl betöltése sikertelen: %1 + + + Found unexpected Key type %1 + Váratlan kulcstípus található: %1 + + + Cannot remove all the keys from a database. + Nem távolítható el az összes kulcs az adatbázisból + + + Show a database's information. + Adatbázis információinak megjelenítése. + + + UUID: + UUID: + + + Name: + Név: + + + Description: + Leírás: + + + Cipher: + Titkosító: + + + KDF: + Kulcsszármaztató függvény (KDF): + + + Recycle bin is enabled. + Kuka engedélyezve. + + + Recycle bin is not enabled. + A kuka nincs engedélyezve. + + + Location + Hely + + + Database created + Adatbázis létrehozva + + + Last saved + Legutóbb mentve + + + Unsaved changes + Nem mentett módosítsok + + + yes + igen + + + no + nem + + + Number of groups + Csoportszám + + + Number of entries + Bejegyzésszám + + + Number of expired entries + Lejárt bejegyzések száma + + + Unique passwords + Egyedi jelszavak + + + Non-unique passwords + Nem egyedi jelszavak + + + Maximum password reuse + Maximális jelszó-újrahasznosítás + + + Number of short passwords + Rövid jelszavak száma + + + Number of weak passwords + Gyenge jelszavak száma + + + Entries excluded from reports + JelentésekbÅ‘l kizárt bejegyzések + + + Average password length + Ãtlagos jelszóhossz + + + %1 characters + %1 karakter + Word count for the diceware passphrase. Szavak számra a diceware jelmondat számára. @@ -6685,10 +7486,6 @@ Valóban felülírja? Enter new password for entry: Adja meg a bejegyzés új jelszavát: - - Writing the database failed: %1 - Az adatbázis kiírása sikertelen: %1 - Successfully edited entry %1. A(z) %1 bejegyzése sikeresen szerkesztve. @@ -6913,106 +7710,6 @@ Valóban felülírja? Successfully imported database. Sikeres adatbázis importálás. - - Show a database's information. - Adatbázis információinak megjelenítése. - - - UUID: - UUID: - - - Name: - Név: - - - Description: - Leírás: - - - Cipher: - Titkosító: - - - KDF: - Kulcsszármaztató függvény (KDF): - - - Recycle bin is enabled. - Kuka engedélyezve. - - - Recycle bin is not enabled. - A kuka nincs engedélyezve. - - - Location - Hely - - - Database created - Adatbázis létrehozva - - - Last saved - Legutóbb mentve - - - Unsaved changes - Nem mentett módosítsok - - - yes - igen - - - no - nem - - - Number of groups - Csoportszám - - - Number of entries - Bejegyzésszám - - - Number of expired entries - Lejárt bejegyzések száma - - - Unique passwords - Egyedi jelszavak - - - Non-unique passwords - Nem egyedi jelszavak - - - Maximum password reuse - Maximális jelszó-újrahasznosítás - - - Number of short passwords - Rövid jelszavak száma - - - Number of weak passwords - Gyenge jelszavak száma - - - Entries excluded from reports - JelentésekbÅ‘l kizárt bejegyzések - - - Average password length - Ãtlagos jelszóhossz - - - %1 characters - %1 karakter - Unknown command %1 Ismeretlen parancs: %1 @@ -7185,6 +7882,10 @@ ElérhetÅ‘ parancsok: Show the protected attributes in clear text. A védett attribútumok megjelenítése egyszerű szövegként. + + Show all the attributes of the entry. + Bejegyzés összes attribútumának megjelenítése. + Show the attachments of the entry. Egy bejegyzés mellékleteinek megjelenítése. @@ -7255,6 +7956,10 @@ Fontolja meg, hogy új kulcsfájlt állítson elÅ‘. Invalid YubiKey serial %1 Érvénytelen YubiKey sorozatszám: %1 + + Please present or touch your YubiKey to continue. + Tegye elérhetÅ‘vé vagy érintse meg a YubiKeyt a folytatáshoz. + Enter password to encrypt database (optional): Adjon meg egy jelszót az adatbázis titkosításához (válaszható): @@ -7442,8 +8147,8 @@ Kernel: %3 %4 %1 perc%1 perc - Botan library must be at least 2.11.x, found %1.%2.%3 - A Botan könyvtár legalább 2.11.x-es kellene legyen, de csak ez található: %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + A Botran programkönyvtárból legalább a következÅ‘ verzió szükséges: %1, de a következÅ‘ található: %2.%3.%4 Cryptographic libraries: @@ -7683,10 +8388,6 @@ Kernel: %3 %4 read password of the database from stdin adatbázis jelszó beolvasása az stdin-rÅ‘l - - allow app screen recordering and screenshots - KépernyÅ‘mentések és felvételek engedélyezése az alkalmazás számára - Locked databases. Zárolt adatbázisok. @@ -7699,6 +8400,10 @@ Kernel: %3 %4 Another instance of KeePassXC is already running. A KeePassXC egy másik példánya is fut. + + KeePassXC is not running. No open database to lock + A KeePassXC nem fut. Nincs megnyitott adatbázis, amit zárolni lehetne + Fatal error while testing the cryptographic functions. Végzetes hiba a kriptográfiai funkciók tesztelése közben. @@ -7707,10 +8412,6 @@ Kernel: %3 %4 KeePassXC - Error KeePassXC – Hiba - - Warning: Failed to prevent screenshots on a top level window! - Figyelem: Nem sikerült megakadályozni a képernyÅ‘képek készítését egy felsÅ‘ szintű ablakban! - Database password: Adatbázis jelszava @@ -7731,11 +8432,225 @@ Kernel: %3 %4 Failed to sign challenge using Windows Hello. - Nem sikerült a bejelentkezés a Windows Hello-val. + Nem sikerült a bejelentkezés a Windows Hellóval. - Please present or touch your YubiKey to continue. - Tegye elérhetÅ‘vé vagy érintse meg a YubiKeyt a folytatáshoz. + Warning: Failed to block screenshot capture on a top-level window. + Figyelem: Nem sikerült megakadályozni a képernyÅ‘rögzítést egy felsÅ‘ szintű ablakban. + + + Invalid Cipher + Érvénytelen titkosító + + + Invalid KDF + Érvénytelen KDF + + + Access to all entries is denied + Az összes bejegyzés elérése megtagadva + + + allow screenshots and app recording (Windows/macOS) + képernyÅ‘képek és alkalmazásrögzítés engedélyezése (Windows/macOS) + + + Enter Shortcut + Gyorsbillentyű megadása + + + Action + Művelet + + + Shortcuts + Gyorsbillentyűk + + + Attestation not supported + Az igazolás nem támogatott + + + Credential is excluded + A hitelesítési adat ki van zárva + + + Passkeys request canceled + A jelkulcskérés megszakítva + + + Invalid user verification + Érvénytelen felhasználóellenÅ‘rzés + + + Empty public key + Üres nyilvános kulcs + + + Invalid URL provided + Érvénytelen webcím lett megadva + + + Passkeys + Jelkulcsok + + + AES initialization failed + Az AES elÅ‘készítése sikertelen + + + AES encrypt failed + Az AES-titkosítás sikertelen + + + Failed to store in Linux Keyring + A linuxos kulcstartó tárolása sikertelen + + + Polkit returned an error: %1 + A Polkit hibát adott vissza: %1 + + + Could not locate key in keyring + A kulcstartóban lévÅ‘ kulcs nem található + + + Could not read key in keyring + A kulcstartóban lévÅ‘ kulcs nem olvasható + + + AES decrypt failed + Az AES-titkosítás feloldása sikertelen + + + No Polkit authentication agent was available + Nem érhetÅ‘ el Polkit hitelesítési ügynök + + + Polkit authorization failed + A Polkit-hitelesítés sikertelen + + + No Quick Unlock provider is available + Nem érhetÅ‘ el gyors feloldási szolgáltató + + + Failed to init KeePassXC crypto. + KeePassXC crypto indítása sikertelen. + + + Failed to encrypt key data. + A kulcsadatok titkosítása sikertelen. + + + Failed to get Windows Hello credential. + A Windows Hello hitelesítési adatok lekérése sikertelen. + + + Failed to decrypt key data. + A kulcsadatok visszafejtése sikertelen. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length + @@ -7774,33 +8689,21 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - Lejárt bejegyzések kizárása a jelentésbÅ‘l - - - Show only entries which have URL set - Csak az URL-lel rendelkezÅ‘ bejegyzések megjelenítése - - - Show only entries which have browser settings in custom data - Csak azon bejegyzések megjelenítése, melyek böngészÅ‘beállításokat tartalmaznak az egyéni adatatik között - Double-click entries to edit. Dupla kattintás a bejegyzések szerkesztéséhez. List of entry URLs - Bejegyzések URL-jeinek listája + Bejegyzések webcímeinek listája Entry has no URLs set - A bejegyzésnél nincs URL beállítva + A bejegyzésnél nincs beállítva webcím Allowed URLs - Engedélyezett URL-ek + Engedélyezett webcímek Entry has no Browser Integration settings @@ -7808,7 +8711,7 @@ Kernel: %3 %4 Denied URLs - Tiltott URL-ek + Tiltott webcímek (Excluded) @@ -7824,7 +8727,7 @@ Kernel: %3 %4 No entries with a URL, or none has browser extension settings saved. - Nincsenek URL-t tartalmazó bejegyzések, vagy egyikhez sem lettek böngészÅ‘beállítások mentve + Nincsenek webcímet tartalmazó bejegyzések, vagy egyikhez sem lettek böngészÅ‘beállítások mentve Title @@ -7836,7 +8739,7 @@ Kernel: %3 %4 URLs - URL-ek + Webcímek Edit Entry… @@ -7850,17 +8753,25 @@ Kernel: %3 %4 Exclude from reports Kizárás a jelentésekbÅ‘l + + Only show entries that have a URL + Csak a webcímmel rendelkezÅ‘ bejegyzések megjelenítése + + + Only show entries that have been explicitly allowed or denied + Csak a kifejezetten engedélyezett vagy tiltott bejegyzések megjelenítése + + + Show expired entries + Lejárt bejegyzések megjelenítése + + + (Expired) + (Lejárt) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - Lejárt bejegyzések kizárása a jelentésbÅ‘l - - - Also show entries that have been excluded from reports - A jelentésekbÅ‘l kizárt bejegyzések megjelenítése. - Hover over reason to show additional details. Double-click entries to edit. Vigye az egérmutatót az ok felé a további részletek megjelenítéséhez. Kattintson duplán a bejegyzésekre a szerkesztéshez. @@ -7936,6 +8847,18 @@ Kernel: %3 %4 Exclude from reports Kizárás a jelentésekbÅ‘l + + Show expired entries + Lejárt bejegyzések megjelenítése + + + Show entries that have been excluded from reports + A jelentésekbÅ‘l kizárt bejegyzések megjelenítése + + + (Expired) + (Lejárt) + ReportsWidgetHibp @@ -8032,6 +8955,65 @@ Kernel: %3 %4 Kizárás a jelentésekbÅ‘l + + ReportsWidgetPasskeys + + Export + Exportálás + + + Import + Importálás + + + List of entry URLs + Bejegyzések webcímeinek listája + + + Please wait, list of entries with Passkeys is being updated… + Kis türelmet, a jelkulcsot tartalmazó elemek listája frissül… + + + No entries with Passkeys. + Nincsenek jelkulcsot tartalmazó elemek. + + + Title + Cím + + + Path + Útvonal + + + Username + Felhasználónév + + + URLs + Webcímek + + + Edit Entry… + Bejegyzés szerkesztése… + + + Delete Entry(s)… + Bejegyzés törlése…Bejegyzések törlése… + + + Relying Party + KözvetítÅ‘ fél + + + Show expired entries + Lejárt bejegyzések megjelenítése + + + (Expired) + (Lejárt) + + ReportsWidgetStatistics @@ -8271,6 +9253,10 @@ Kernel: %3 %4 Search Help Keresés a súgóban + + Save Search + Keresés mentése + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8502,11 +9488,38 @@ Kernel: %3 %4 Exportálás: %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + Kattintson duplán egy műveletre a gyorsbillentyűje módosításához + + + Shortcut Conflict + Gyorsbillentyű-ütközés + + + Filter... + Szűrő… + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + A(z) %1 gyorsbillentyű ütközik ezzel: „%2â€. Felülírja? + + + Reset Shortcuts + Gyorsbillentyűk visszaállítása + + TagModel - All - Mind + Clear Search + Keresés törlése + + + All Entries + Összes bejegyzés Expired @@ -8517,6 +9530,25 @@ Kernel: %3 %4 Gyenge jelszavak + + TagView + + Remove Search + Keresés eltávolítása + + + Remove Tag + Címke eltávolítása + + + Confirm Remove Tag + Címkeeltávolítás megerÅ‘sítése + + + Remove tag "%1" from all entries in this database? + Valóban eltávolítható minden „%1†címke ennek az adatbázisnak az összes bejegyzésébÅ‘l? + + TotpDialog @@ -8634,7 +9666,7 @@ Példa: JBSWY3DPEHPK3PXP URLEdit Invalid URL - Érvénytelen URL + Érvénytelen webcím @@ -8674,26 +9706,6 @@ Példa: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Máris elkezdhetÅ‘ a jelszavak titkosított tárolása a KeePassXC adatbázisban - - Create new database - Új adatbázis létrehozása - - - Open existing database - MeglévÅ‘ adatbázis megnyitása - - - Import from KeePass 1 - Importálás KeePass 1-bÅ‘l - - - Import from 1Password - Importálás 1Password-bÅ‘l - - - Import from CSV - Importálás CSV-bÅ‘l - Recent databases Legutóbb használt adatbázisok @@ -8706,6 +9718,18 @@ Példa: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Üdvözöljük a KeePassXC %1 verzióban! + + Create Database + Adatbázis létrehozása + + + Open Database + Adatbázis megnyitása + + + Import File + + WinUtils @@ -8722,31 +9746,8 @@ Példa: JBSWY3DPEHPK3PXP A globális gyorsbillentyű nem regisztrálható - - WindowsHello - - Failed to init KeePassXC crypto. - KeePassXC crypto indítása sikertelen. - - - Failed to encrypt key data. - A kulcsadatok titkosítása sikertelen. - - - Failed to get Windows Hello credential. - A Windows Hello hitelesítési adatok lekérése sikertelen. - - - Failed to decrypt key data. - A kulcsadatok visszafejtése sikertelen. - - YubiKey - - %1 No interface, slot %2 - %1 nincs csatolófelület, foglalat: %2 - General: Ãltalános: @@ -8758,14 +9759,6 @@ Példa: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - Hardveres jelsorok frissítése - - - Refresh - Frissítés - Hardware key slot selection Hardverkulcsfoglalat kijelölése @@ -8798,10 +9791,6 @@ Példa: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove Kihívás-válasz beállítva, kattintson a módosításhoz vagy eltávolításhoz - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>Ha van <a href="https://www.yubico.com/">YubiKey</a> vagy <a href="https://onlykey.io">OnlyKey</a> eszköze, akkor használhatja a további biztonság érdekében.</p><p>Kulcs szükséges, hogy az egyik foglalata <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 kihívás-válaszként</a> legyen beállítva.</p> - Detecting hardware keys… Hardverkulcsok felismerése… @@ -8810,28 +9799,21 @@ Példa: JBSWY3DPEHPK3PXP No hardware keys detected Nincsenek felismert hardverkulcsok. - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 Érvénytelen a megadott foglalat – %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + <p>Ha van <a href="https://www.yubico.com/">YubiKey</a> vagy <a href="https://onlykey.io">OnlyKey</a> eszköze, akkor használhatja a további biztonság érdekében.</p><p>Kulcs szükséges, hogy az egyik foglalata <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 kihívás-válaszként</a> legyen beállítva.</p> + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] kihívás-válasz – foglalat %3 - The YubiKey PCSC interface has not been initialized. A YubiKey PCSC csatolófelülete nem lett elindítva. - - Hardware key is currently in use. - A hardverkulcs jelenleg használatban van. - Could not find or access hardware key with serial number %1. Please present it to continue. Nem található vagy nem elérhetÅ‘ a hardverkulcs ezzel a sorozatszámmal: %1. A folytatáshoz, kérjük, tegye elérhetÅ‘vé. @@ -8848,6 +9830,21 @@ Példa: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 A kihívás-válasz befejezése sikertelen. A PCSC hibakód: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + Lenyomás + + + Passive + USB Challenge-Response Key no interaction required + Passzív + YubiKeyInterfaceUSB @@ -8855,14 +9852,6 @@ Példa: JBSWY3DPEHPK3PXP Unknown Ismeretlen - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] Beállított foglalat – %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] kihívás-válasz – foglalat %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8877,10 +9866,6 @@ Példa: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. A YubiKey USB csatolófelülete nem lett elindítva. - - Hardware key is currently in use. - A hardverkulcs jelenleg használatban van. - Could not find hardware key with serial number %1. Please plug it in to continue. Nem található hardverkulcs ezzel a sorozatszámmal: %1. A folytatáshoz, kérjük, csatlakoztassa. @@ -8897,5 +9882,15 @@ Példa: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 A kihívás-válasz befejezése sikertelen. A pontos hiba: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_id.ts b/share/translations/keepassxc_id.ts index 3ad055485..eddd50c97 100644 --- a/share/translations/keepassxc_id.ts +++ b/share/translations/keepassxc_id.ts @@ -54,7 +54,7 @@ Non-existing/inaccessible executable path. Please double-check the client is legit. - + Non-existing/inaccessible executable path. Please double-check the client is legit. <html><head/><body><p><span style=" font-weight:600;">%1 </span>is requesting access to the following entries:</p></body></html> @@ -70,7 +70,7 @@ Executable - + Executable Command Line @@ -80,6 +80,10 @@ Details Detail + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Remember Ingat @@ -88,17 +92,13 @@ Allow Selected Izinkan Yang Dipilih - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - - Deny All && Future - + Deny All && Future Allow All && &Future - + Izinkan semua && & Ke Depannya @@ -122,6 +122,10 @@ Use OpenSSH Gunakan OpenSSH + + Use both agents + Gunakan kedua agen + SSH_AUTH_SOCK override Timpa SSH_AUTH_SOCK @@ -136,11 +140,11 @@ SSH_SK_PROVIDER value - + Nilai SSH_SK_PROVIDER SSH_SK_PROVIDER override - + Timpaan SSH_SK_PROVIDER No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. @@ -150,10 +154,6 @@ SSH Agent connection is working! Koneksi Agen SSH berhasil! - - Use both agents - - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security Keamanan + + This setting cannot be enabled when minimize on unlock is enabled. + Pengaturan ini tidak dapat difungsikan ketika diminimumkan saat buka kunci difungsikan. + Access error for config file %1 Galat akses untuk berkas konfigurasi %1 @@ -250,15 +254,19 @@ Minimize window after unlocking database - Minimalkan jendela setelah membuka basisdata + Minimalkan jendela setelah membuka basis data Remember previously used databases - Ingat basisdata yang sebelumnya digunakan + Ingat basis data yang sebelumnya digunakan + + + recent files + berkas baru-baru ini Load previously open databases on startup - Muat basisdata yang sebelumnya terbuka saat memulai + Muat basis data yang sebelumnya terbuka saat memulai Remember database key files and security dongles @@ -274,7 +282,7 @@ On database unlock, show entries that - Pada pembukaan kunci basisdata, tampilkan entri yang + Pada pembukaan kunci basis data, tampilkan entri yang have expired @@ -284,12 +292,12 @@ days On database unlock, show entries that will expire within %1 days - + hari will expire within On database unlock, show entries that... - + akan kedaluwarsa dalam masa File Management @@ -301,19 +309,19 @@ Automatically save when locking database - Otomatis simpan saat mengunci basisdata + Otomatis simpan saat mengunci basis data Automatically save non-data changes when locking database - Otomatis simpan perubahan non-data saat mengunci basisdata + Otomatis simpan perubahan non-data saat mengunci basis data Automatically reload the database when modified externally - Muat ulang basisdata secara otomatis ketika diubah secara eksternal + Muat ulang basis data secara otomatis ketika diubah secara eksternal Backup database file before saving - Cadangkan basisdata sebelum disimpan + Cadangkan basis data sebelum disimpan Backup destination @@ -321,7 +329,7 @@ Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". - + Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". {DB_FILENAME}.old.kdbx @@ -337,11 +345,11 @@ Temporary file moved into place - + Berkas temporer dipindah ke tempatnya Directly write to database file (dangerous) - Langsung simpan ke berkas basisdata (berbahaya) + Langsung simpan ke berkas basis data (berbahaya) Entry Management @@ -408,6 +416,10 @@ Toolbar button style: Gaya tombol bilah alat: + + Show passwords in color + Tampilkan kata sandi dalam warna + Use monospaced font for notes Gunakan fon monospace untuk catatan @@ -458,7 +470,7 @@ Re-lock previously locked database after performing Auto-Type - Kunci ulang basisdata yang sebelumnya terkunci setelah menjalankan Ketik-Otomatis + Kunci ulang basis data yang sebelumnya terkunci setelah menjalankan Ketik-Otomatis Auto-Type start delay: @@ -491,7 +503,7 @@ Remember last typed entry for: - + Ingat entri yang terakhir diketikkan untuk: @@ -502,7 +514,7 @@ Database lock timeout seconds - Lama waktu habis penguncian basisdata + Lama waktu habis penguncian basis data sec @@ -528,7 +540,7 @@ Lock databases after inactivity of - Kunci basisdata setelah tidak aktif selama + Kunci basis data setelah tidak aktif selama Convenience @@ -540,11 +552,11 @@ Lock databases when session is locked or lid is closed - Kunci basisdata ketika sesi dikunci atau lid ditutup + Kunci basis data ketika sesi dikunci atau lid ditutup Lock databases after minimizing the window - Kunci basisdata setelah meminimalkan jendela + Kunci basis data setelah meminimalkan jendela Require password repeat when it is visible @@ -582,16 +594,20 @@ Use DuckDuckGo service to download website icons Gunakan layanan DuckDuckGo untuk mengunduh ikon situs web + + Hide TOTP in the entry preview panel + Sembunyikan TOTP di panel pratinjau entri + AutoType The requested Auto-Type sequence cannot be used due to an error: - + The requested Auto-Type sequence cannot be used due to an error: Auto-Type Error - + Galat Auto-Type Permission Required @@ -603,15 +619,15 @@ KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. - KeePassXC membutuhkan izin Aksesibilitas dan Perekaman Layar untuk menjalankan Ketik-Otomatis secara global. Perekaman Layar dibutuhkan untuk mengakses judul jendela dari entri terkait. Jika anda sudah memberikan izin, anda perlu memulai ulang KeePassXC. + KeePassXC membutuhkan izin Aksesibilitas dan Perekaman Layar untuk menjalankan Ketik-Otomatis secara global. Perekaman Layar dibutuhkan untuk mengakses judul jendela dari entri terkait. Jika Anda sudah memberikan izin, Anda perlu memulai ulang KeePassXC. Invalid entry provided - + Entri yang diberikan tidak sah Bracket imbalance detected, found extra { or } - + Terdeteksi kurung kurawal yang tak seimbang, ditemukan { atau } ekstra Too many repetitions detected, max is %1: %2 @@ -619,28 +635,33 @@ Very slow key press detected, max is %1: %2 - + Terdeteksi penekanan tombol yang sangat lambat, maks adalah %1: %2 Very long delay detected, max is %1: %2 - + Terdeteksi tundaan sangat lama, maks adalah %1: %2 + + + Entry does not have attribute for PICKCHARS: %1 + Entri tidak memiliki atribut untuk PICKCHARS: %1 Invalid conversion type: %1 - + Tipe konversi tidak valid: %1 Invalid conversion syntax: %1 - + Sintaks konversi tidak valid: %1 Invalid regular expression syntax %1 %2 - + Sintaks ekspresi reguler %1 tidak valid +%2 Invalid placeholder: %1 - + Invalid placeholder: %1 @@ -685,19 +706,19 @@ AutoTypePlatformX11 Trying to send invalid keysym. - + Mencoba mengirim keysym yang tidak valid. Sequence aborted: Caps Lock is on - + Urutan digugurkan: Caps Lock menyala Sequence aborted: Modifier keys held by user - + Urutan digugurkan: Tombol pengubah ditahan oleh pengguna Unable to get valid keycode for key: - + Tidak bisa memperoleh kode tombol yang valid untuk tombol: @@ -708,7 +729,7 @@ Double click a row to perform Auto-Type or find an entry using the search: - + Klik ganda suatu baris untuk melakukan Ketik-Otomatis atau mencari suatu entri memakai pencarian: <p>You can use advanced search queries to find any entry in your open databases. The following shortcuts are useful:<br/> @@ -717,19 +738,24 @@ Ctrl+1 - Type username<br/> Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> - + <p>You can use advanced search queries to find any entry in your open databases. The following shortcuts are useful:<br/> +Ctrl+F - Toggle database search<br/> +Ctrl+1 - Type username<br/> +Ctrl+2 - Type password<br/> +Ctrl+3 - Type TOTP<br/> +Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Search all open databases - Cari semua basisdata terbuka + Cari semua basis data terbuka Search… - + Cari… Type Sequence - + Ketikkan Urutan Cancel @@ -737,31 +763,31 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Type {USERNAME} - + Ketikkan {NAMA PENGGUNA} Type {PASSWORD} - + Ketikkan {KATA SANDI} Type {TOTP} - + Ketikkan {TOTP} Copy Username - + Salinkan Nama Pengguna Copy Password - + Salinkan Kata Sandi Copy TOTP - + Salin TOTP Use Virtual Keyboard - + Gunakan Papan Ketik Virtual @@ -798,13 +824,13 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Disable for this site Nonaktifkan untuk situs ini + + Undo + Urungkan + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - Entri Penyimpanan KeePassXC-Browser - Ok Ok @@ -816,16 +842,72 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> You have multiple databases open. Please select the correct database for saving credentials. - Ada beberapa basisdata yang terbuka. -Silakan pilih basisdata yang digunakan untuk menyimpan kredensial. + Ada beberapa basis data yang terbuka. +Silakan pilih basis data yang digunakan untuk menyimpan kredensial. + + + KeePassXC - Select Database + KeePassXC - Pilih Basis Data + + + + BrowserPasskeysConfirmationDialog + + Cancel + Batal + + + Update + Perbarui + + + Authenticate + Autentikasi + + + Register new + Daftarkan baru + + + Register + Daftarkan + + + Timeout in <b>%n</b> seconds... + Waktu habis dalam <b>%n</b> detik… + + + Do you want to register Passkey for: + + + + Existing Passkey found. +Do you want to register a new Passkey for: + + + + Select the existing Passkey and press Update to replace it. + + + + Authenticate Passkey credentials for: + + + + Relying Party: %1 + + + + Username: %1 + + + + KeePassXC - Passkey credentials + BrowserService - - KeePassXC: Create a new group - KeePassXC: Buat grup baru - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -834,17 +916,13 @@ Do you want to create this group? Apakah Anda ingin membuat grup ini? - - KeePassXC: New key association request - KeePassXC: Permintaan asosiasi kunci baru - You have received an association request for the following database: %1 Give the connection a unique name or ID, for example: chrome-laptop. - Anda telah menerima permintaan asosiasi untuk basisdata berikut: + Anda telah menerima permintaan asosiasi untuk basis data berikut: %1 Berikan koneksi nama yang unik atau ID, sebagai contoh: @@ -854,79 +932,64 @@ chrome-laptop. Save and allow access Simpan dan izinkan akses - - KeePassXC: Overwrite existing key? - KeePassXC: Timpa kunci yang ada? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? Kunci enkripsi bersama dengan nama "%1" sudah ada. Apakah Anda ingin menimpanya ulang? - - KeePassXC: Update Entry - KeePassXC: Perbarui Entri - Do you want to update the information in %1 - %2? Apakah Anda ingin memperbarui informasi di dalam %1 - %2? - - KeePassXC: Delete entry - - A request for deleting entry "%1" has been received. Do you want to delete the entry? + A request for deleting entry "%1" has been received. +Do you want to delete the entry? + + + + %1 (Passkey) - Converting attributes to custom data… - Mengkonversi atribut ke data khusus... + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + - Abort - Batal + KeePassXC - Create a new group + - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Konversi atribut KeePassHTTP + Disable + Nonaktifkan - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Berhasil mengonversi atribut dari %1 entri. -Memindahkan %2 ke data khusus. - - - Successfully moved %n keys to custom data. - Berhasil memindahkan %n kunci ke data khusus. + KeePassXC - Overwrite existing key? + KeePassXC - Timpa kunci yang sudah ada? - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Tidak ada entri dengan atribut KeePassHTTP yang ditemukan! + KeePassXC - Update Passkey + - The active database does not contain an entry with KeePassHTTP attributes. - Basisdata yang aktif tidak berisi entri dengan atribut KeePassHTTP. + KeePassXC - Update Entry + - Don't show this warning again - Jangan tampilkan peringatan ini lagi + KeePassXC - Delete entry + - KeePassXC: Legacy browser integration settings detected - KeePassXC: Mendeteksi pengaturan integrasi peramban lama + KeePassXC - New key association request + - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Pengaturan KeePassXC-Browser Anda perlu dipindahkan ke dalam pengaturan basisdata. -Hal ini diperlukan untuk mempertahankan koneksi peramban Anda saat ini. -Apakah Anda ingin memindahkan pengaturan yang ada sekarang? + Passkey + @@ -937,7 +1000,7 @@ Apakah Anda ingin memindahkan pengaturan yang ada sekarang? This is required for accessing your databases with KeePassXC-Browser - Ini dibutuhkan untuk mengakses basisdata Anda menggunakan KeePassXC-Browser + Ini dibutuhkan untuk mengakses basis data Anda menggunakan KeePassXC-Browser Enable browser integration @@ -990,15 +1053,15 @@ Apakah Anda ingin memindahkan pengaturan yang ada sekarang? Request to unlock the database if it is locked - Minta untuk membuka basisdata jika terkunci + Minta untuk membuka basis data jika terkunci Only entries with the same scheme (http://, https://, …) are returned. - + Hanya entri dengan skema yang sama (http://, https://, ...) dikembalikan. Match URL scheme (e.g., https://example.com) - + Match URL scheme (e.g., https://example.com) Only returns the best matches for a specific URL instead of all entries for the whole domain. @@ -1018,12 +1081,12 @@ Apakah Anda ingin memindahkan pengaturan yang ada sekarang? All databases connected to the extension will return matching credentials. - Semua basisdata yang terhubung ke ekstensi akan mengembalikan kredensial yang cocok. + Semua basis data yang terhubung ke ekstensi akan mengembalikan kredensial yang cocok. Search in all opened databases for matching credentials Credentials mean login data requested via browser extension - Cari kredensial yang cocok di semua basisdata yang terbuka + Cari kredensial yang cocok di semua basis data yang terbuka Advanced @@ -1134,14 +1197,6 @@ Apakah Anda ingin memindahkan pengaturan yang ada sekarang? Please see special instructions for browser extension use below Lihat instruksi untuk penggunaan browser extension - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Error:</b>Lokasi proxy khusus tidak dapat ditemukan!<br/>Integrasi browser TIDAK DAPAT BEKERJA tanpa aplikasi proxy. - - - <b>Warning:</b> The following options can be dangerous! - <b>Peringatan:</b> Opsi berikut bisa berbahaya! - Executable Files Berkas Executable @@ -1158,12 +1213,44 @@ Apakah Anda ingin memindahkan pengaturan yang ada sekarang? Select native messaging host folder location Pilih lokasi folder hos perpesanan bawaan + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Peringatan:</b> Hanya setel pengaturan ini bila perlu. + + + The custom proxy location does not exist. + Lokasi proksi ubahan tidak ada. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Galat:</b> Lokasi proksi ubahan tidak ada. Perbaiki ini dalam tab pengaturan tingkat lanjut. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Galat:</b> Executable proksi yang terpasang hilang dari lokasi yang diharapkan: %1<br/>Harap atur suatu lokasi proksi ubahan dalam pengaturan tingkat lanjut atau pasang ulang aplikasi. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog Clone Entry Options - + Clone Entry Options Append ' - Clone' to title @@ -1180,14 +1267,6 @@ Apakah Anda ingin memindahkan pengaturan yang ada sekarang? CsvImportWidget - - Import CSV fields - Impor ruas CSV - - - filename - nama berkas - size, rows, columns ukuran, baris, kolom @@ -1296,50 +1375,29 @@ Apakah Anda ingin memindahkan pengaturan yang ada sekarang? Column %1 Kolom %1 - - Imported from CSV file - Diimpor dari berkas CSV - - - Original data: - Data original: - - - Error(s) detected in CSV file! - Mendeteksi kesalahan di dalam berkas CSV! - [%n more message(s) skipped] [%n pesan dilewati] - Error - Galat + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - Impor CSV: galat penulis: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n byte - %n row(s) + CSV row count %n baris %n column(s) + CSV column count %n kolom @@ -1360,33 +1418,33 @@ Apakah Anda ingin memindahkan pengaturan yang ada sekarang? Error while reading the database: %1 - Terjadi kesalahan saat membaca basisdata: %1 + Terjadi kesalahan saat membaca basis data: %1 Could not save, database does not point to a valid file. - Tidak bisa menyimpan, basisdata tidak merujuk ke berkas yang valid. + Tidak bisa menyimpan, basis data tidak merujuk ke berkas yang valid. Database save is already in progress. - Proses menyimpan basisdata sedang berjalan. + Proses menyimpan basis data sedang berjalan. Could not save, database has not been initialized! - Tidak bisa menyimpan, basisdata belum aktif! + Tidak bisa menyimpan, basis data belum aktif! Database file has unmerged changes. - Berkas basisdata memiliki perubahan yang belum digabung. + Berkas basis data memiliki perubahan yang belum digabung. %1 Backup database located at %2 %1 -Lokasi cadangan basisdata ada di %2 +Lokasi cadangan basis data ada di %2 Key not transformed. This is a bug, please report it to the developers. - + Kunci tidak berubah. Ini adalah bug, harap laporkan ke developer. Recycle Bin @@ -1397,14 +1455,14 @@ Lokasi cadangan basisdata ada di %2 DatabaseOpenDialog Unlock Database - KeePassXC - Buka Kunci Basisdata - KeePassXC + Buka Kunci Basis Data - KeePassXC DatabaseOpenWidget Unlock KeePassXC Database - Buka Kunci Basisdata KeePassXC + Buka Kunci Basis Data KeePassXC Enter Password: @@ -1414,42 +1472,13 @@ Lokasi cadangan basisdata ada di %2 Password field Ruas sandi - - Enter Additional Credentials (if any): - Masukkan Kredensial Tambahan (jika ada): - - - Key File: - Berkas Kunci: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - - - - Key file help - Bantuan berkas kunci - Hardware key slot selection Pemilihan slot kunci perangkat keras - - Hardware Key: - Kunci Perangkat Keras: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - - - - Hardware key help - Bantuan kunci perangkat keras - Key file to unlock the database - Berkas kunci untuk membuka basisdata + Berkas kunci untuk membuka basis data Browse for key file @@ -1459,17 +1488,9 @@ Lokasi cadangan basisdata ada di %2 Browse… Telusuri… - - Refresh hardware tokens - Segarkan token perangkat keras - - - Refresh - Segarkan - Unlock Database - Buka Kunci Basisdata + Buka Kunci Basis Data Cancel @@ -1481,11 +1502,11 @@ Lokasi cadangan basisdata ada di %2 Please present or touch your YubiKey to continue… - + Please present or touch your YubiKey to continue… Database Version Mismatch - + Versi Basis Data Tidak Cocok The database you are trying to open was most likely @@ -1495,15 +1516,21 @@ You can try to open it anyway, but it may be incomplete and saving any changes may incur data loss. We recommend you update your KeePassXC installation. - + The database you are trying to open was most likely +created by a newer version of KeePassXC. + +You can try to open it anyway, but it may be incomplete +and saving any changes may incur data loss. + +We recommend you update your KeePassXC installation. Open database anyway - + Tetap buka pangkalan data Database unlock canceled. - Pembukaan kunci basisdata dibatalkan. + Pembukaan kunci basis data dibatalkan. Unlock failed and no password given @@ -1514,22 +1541,14 @@ We recommend you update your KeePassXC installation. Do you want to retry with an "empty" password instead? To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. - Membuka kunci basisdata gagal dan Anda tidak memasukkan kata sandi. + Membuka kunci basis data gagal dan Anda tidak memasukkan kata sandi. Apakah Anda ingin mencoba kembali dengan kata sandi "kosong"? -Untuk mencegah munculnya kesalahan ini, Anda harus ke "Pengaturan Basisdata / Keamanan" dan mengatur ulang kata sandi Anda. +Untuk mencegah munculnya kesalahan ini, Anda harus ke "Pengaturan Basis Data / Keamanan" dan mengatur ulang kata sandi Anda. Retry with empty password Ulangi dengan sandi kosong - - Failed to authenticate with Windows Hello - - - - Failed to authenticate with Touch ID - - Failed to open key file: %1 Gagal untuk membuka berkas kunci: %1 @@ -1540,7 +1559,7 @@ Untuk mencegah munculnya kesalahan ini, Anda harus ke "Pengaturan Basisdata You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> - Anda menggunakan sebuah format berkas kunci lama yang mungkin <br> tidak akan didukung lagi oleh KeePassXC di masa depan. <br><br> Mohon buat sebuah berkas kunci baru dengan menuju ke: <br><strong>Basisdata &gt; Keamanan Basisdata &gt; Ubah Berkas Kunci.</strong><br> + Anda menggunakan sebuah format berkas kunci lama yang mungkin <br> tidak akan didukung lagi oleh KeePassXC di masa depan. <br><br> Mohon buat sebuah berkas kunci baru dengan menuju ke: <br><strong>Basis Data &gt; Keamanan Basis Data &gt; Ubah Berkas Kunci.</strong><br> Don't show this warning again @@ -1560,25 +1579,63 @@ Untuk mencegah munculnya kesalahan ini, Anda harus ke "Pengaturan Basisdata Cannot use database file as key file - Tidak bisa menggunakan berkas basisdata sebagai berkas kunci + Tidak bisa menggunakan berkas basis data sebagai berkas kunci - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Anda tidak bisa menggunakan berkas basisdata Anda sebagai berkas kunci, -Jika Anda tidak memiliki berkas kunci, biarkan ruas tetap kosong. + authenticate to access the database + otentikasi untuk mengakses basis data - Detecting hardware keys… - Mendeteksi kunci perangkat keras… + Failed to authenticate with Quick Unlock: %1 + - No hardware keys detected - Tidak mendeteksi kunci perangkat keras + Select Key File: + - Select hardware key… - Pilih kunci perangkat keras… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1590,10 +1647,6 @@ Jika Anda tidak memiliki berkas kunci, biarkan ruas tetap kosong. DatabaseSettingsDialog - - Advanced Settings - Pengaturan Lanjutan - General Umum @@ -1604,7 +1657,7 @@ Jika Anda tidak memiliki berkas kunci, biarkan ruas tetap kosong. Database Credentials - Kredensial Basisdata + Kredensial Basis Data Encryption Settings @@ -1625,18 +1678,6 @@ Jika Anda tidak memiliki berkas kunci, biarkan ruas tetap kosong. KeePassXC-Browser settings Pengaturan KeePassXC-Browser - - Convert KeePassHTTP data - - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - - - - Refresh database root group ID - Segarkan ID grup root basisdata - Disconnect all browsers Putuskan koneksi semua peramban @@ -1645,6 +1686,10 @@ Jika Anda tidak memiliki berkas kunci, biarkan ruas tetap kosong. Forget all site-specific settings on entries Lupakan semua pengaturan spesifik situs pada entri + + Refresh database root group ID + Segarkan ID grup root basis data + Stored keys Kunci tersimpan @@ -1693,18 +1738,10 @@ This may prevent connection to the browser plugin. Apakah Anda ingin memutus koneksi semua peramban? Tindakan ini akan memutus koneksi ke pengaya peramban. - - KeePassXC: No keys found - KeePassXC: Tidak ada kunci yang ditemukan - No shared encryption keys found in KeePassXC settings. TIdak ada kunci enkripsi bersama yang ditemukan di dalam pengaturan KeePassXC. - - KeePassXC: Removed keys from database - KeePassXC: Buang kunci dari basisdata - Successfully removed %n encryption key(s) from KeePassXC settings. Berhasil membuang %n kunci enkripsi dari pengaturan KeePassXC. @@ -1723,47 +1760,50 @@ Izin untuk mengakses entri akan dicabut. Abort Batal - - KeePassXC: Removed permissions - KeePassXC: Buang izin - Successfully removed permissions from %n entry(s). Berhasil membuang perizinan dari %n entri. - - KeePassXC: No entry with permissions found! - KeePassXC: Tidak entri dengan izin yang ditemukan! - The active database does not contain an entry with permissions. - Basisdata aktif tidak berisi entri dengan izin. - - - Move KeePassHTTP attributes to custom data - Pindahkan atribut KeePassHTTP ke data khusus - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - + Basis Data aktif tidak berisi entri dengan izin. Refresh database ID - Segarkan ID basisdata + Segarkan ID basis data Do you really want refresh the database ID? This is only necessary if your database is a copy of another and the browser extension cannot connect. - Apakah Anda yakin ingin menyegarkan ID basisdata? -Ini hanya diperlukan jika basisdata Anda adalah salinan dari basisdata yang lain dan ekstensi peramban tidak bisa tersambung. + Apakah Anda yakin ingin menyegarkan ID basis data? +Ini hanya diperlukan jika basis data Anda adalah salinan dari basis data yang lain dan ekstensi peramban tidak bisa tersambung. + + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Konversikan atribut KeePassHTTP lama ke data kustom yang kompatibel dengan KeePassXC-Browser + + + No keys found + + + + Removed keys from database + + + + Removed permissions + + + + No entry with permissions found! + DatabaseSettingsWidgetDatabaseKey Add additional protection… - + Tambahkan proteksi lain... No password set @@ -1773,7 +1813,7 @@ Ini hanya diperlukan jika basisdata Anda adalah salinan dari basisdata yang lain WARNING! You have not set a password. Using a database without a password is strongly discouraged! Are you sure you want to continue without a password? - PERINGATAN! Anda belum mengatur sandi. Menggunakan basisdata tanpa sandi amat sangat tidak disarankan! + PERINGATAN! Anda belum mengatur sandi. Menggunakan basis data tanpa sandi amat sangat tidak disarankan! Apakah Anda tetap ingin melanjutkan tanpa mengatur sandi? @@ -1787,7 +1827,7 @@ Apakah Anda tetap ingin melanjutkan tanpa mengatur sandi? You must add at least one encryption key to secure your database! - Anda harus menambahkan paling tidak satu kunci enkripsi untuk mengamankan basisdata Anda! + Anda harus menambahkan paling tidak satu kunci enkripsi untuk mengamankan basis data Anda! Unknown error @@ -1795,7 +1835,19 @@ Apakah Anda tetap ingin melanjutkan tanpa mengatur sandi? Failed to change database credentials - Gagal mengubah kredensial basisdata + Gagal mengubah kredensial basis data + + + Weak password + Kata sandi lemah + + + You must enter a stronger password to protect your database. + + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + @@ -1804,37 +1856,29 @@ Apakah Anda tetap ingin melanjutkan tanpa mengatur sandi? Decryption Time: Waktu Dekripsi: - - Change existing decryption time - Ubah waktu dekripsi yang ada - - - Change - Ubah - Decryption time in seconds Waktu dekripsi dalam detik Higher values offer more protection, but opening the database will take longer. - Nilai yang lebih tinggi memberikan perlindungan lebih, tetapi membuka basisdata akan menjadi lebih lama. + Nilai yang lebih tinggi memberikan perlindungan lebih, tetapi membuka basis data akan menjadi lebih lama. Database format: - Format basisdata: + Format basis data: Database format - Format basisdata + Format basis data Format cannot be changed: Your database uses KDBX 4 features - + Format cannot be changed: Your database uses KDBX 4 features Unless you need to open your database with other programs, always use the latest format. - + Unless you need to open your database with other programs, always use the latest format. Encryption Algorithm: @@ -1866,7 +1910,7 @@ Apakah Anda tetap ingin melanjutkan tanpa mengatur sandi? Transform rounds - + Transform rounds Memory Usage: @@ -1886,16 +1930,11 @@ Apakah Anda tetap ingin melanjutkan tanpa mengatur sandi? KDBX 4 (recommended) - + KDBX 4 (direkomendasikan) KDBX 3 - - - - unchanged - Database decryption time is unchanged - tidak berubah + KDBX 3 Number of rounds too high @@ -1906,7 +1945,9 @@ Apakah Anda tetap ingin melanjutkan tanpa mengatur sandi? You are using a very high number of key transform rounds with Argon2. If you keep this number, your database may take hours, days, or even longer to open. - + You are using a very high number of key transform rounds with Argon2. + +If you keep this number, your database may take hours, days, or even longer to open. Understood, keep number @@ -1925,7 +1966,9 @@ If you keep this number, your database may take hours, days, or even longer to o You are using a very low number of key transform rounds with AES-KDF. If you keep this number, your database will not be protected from brute force attacks. - + You are using a very low number of key transform rounds with AES-KDF. + +If you keep this number, your database will not be protected from brute force attacks. KDF unchanged @@ -1945,6 +1988,18 @@ If you keep this number, your database will not be protected from brute force at Threads for parallel execution (KDF settings) + + Encryption Settings: + + + + Basic + + + + Advanced + Tingkat Lanjut + DatabaseSettingsWidgetFdoSecrets @@ -1954,7 +2009,7 @@ If you keep this number, your database will not be protected from brute force at Don't expose this database - Jangan ekspos basisdata ini + Jangan ekspos basis data ini Expose entries under this group: @@ -1969,23 +2024,23 @@ If you keep this number, your database will not be protected from brute force at DatabaseSettingsWidgetGeneral Database Metadata - Metadata Basisdata + Metadata Basis Data Database name: - Nama basisdata: + Nama basis data: Database name field - Ruas nama basisdata + Ruas nama basis data Database description: - Deskripsi basisdata: + Deskripsi basis data: Database description field - Ruas deskripsi basisdata + Ruas deskripsi basis data Default username: @@ -2003,18 +2058,10 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry Jumlah maksimum item riwayat per entri - - Max. history items: - Maks. item riwayat: - Maximum size of history per entry Ukuran maksimum riwayat per entri - - Max. history size: - Maks. ukuran riwayat: - MiB MiB @@ -2025,7 +2072,7 @@ If you keep this number, your database will not be protected from brute force at Additional Database Settings - Pengaturan Basisdata Tambahan + Pengaturan Basis Data Tambahan Enable compression (recommended) @@ -2045,6 +2092,64 @@ Tidakan ini tidak bisa diurungkan. (old) (lama) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + Saat menyimpan pengaturan ini atau mengedit entri +item riwayat tertua dari entri akan +dikeluarkan sedemikian rupa sehingga hanya jumlah entri +yang ditentukan akan tetap tinggal. + + + Limit the amount of history items per entry to: + Batasi jumlah item histori per entri menjadi: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + Saat menyimpan pengaturan ini atau mengedit entri +item riwayat tertua dari sebuah entri akan +dihapus sehingga item riwayat yang tersisa +menambahkan hingga jumlah yang ditentukan paling banyak. + + + Limit the total size of history items per entry to: + Batasi ukuran total item histori per entri menjadi: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Pindahkan entri ke kelompok tempat sampah +dan jangan menghapusnya dari basis data. +Entri yang dihapus dari kotak sampah +dipindahkan dari basis data. + + + Autosave delay since last change + + + + Autosave delay + + + + Autosave delay since last change in minutes + + + + min + min + + + Autosave delay since last change checkbox + + DatabaseSettingsWidgetKeeShare @@ -2054,7 +2159,7 @@ Tidakan ini tidak bisa diurungkan. Breadcrumb - + Breadcrumb Type @@ -2082,19 +2187,19 @@ Tidakan ini tidak bisa diurungkan. DatabaseSettingsWidgetMaintenance Manage Custom Icons - + Manage Custom Icons Delete selected icon(s) - + Delete selected icon(s) Delete all custom icons not in use by any entry or group - + Delete all custom icons not in use by any entry or group Purge unused icons - + Purge unused icons Confirm Deletion @@ -2102,19 +2207,19 @@ Tidakan ini tidak bisa diurungkan. At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? - + At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? Custom Icons Are In Use - + Custom Icons Are In Use All custom icons are in use by at least one entry or group. - + All custom icons are in use by at least one entry or group. Purged Unused Icons - + Purged Unused Icons Purged %n icon(s) from the database. @@ -2125,11 +2230,11 @@ Tidakan ini tidak bisa diurungkan. DatabaseSettingsWidgetMetaDataSimple Database Name: - Nama Basisdata: + Nama Basis Data: Database name field - Ruas nama basisdata + Ruas nama basis data Description: @@ -2137,24 +2242,24 @@ Tidakan ini tidak bisa diurungkan. Database description field - Ruas deskripsi basisdata + Ruas deskripsi basis data DatabaseTabWidget Database creation error - Kesalahan dalam membuat basisdata + Kesalahan dalam membuat basis data The created database has no key or KDF, refusing to save it. This is definitely a bug, please report it to the developers. - Basisdata yang dibuat tidak memiliki kunci atau KDF, aplikasi tidak bisa menyompannya. + Basis Data yang dibuat tidak memiliki kunci atau KDF, aplikasi tidak bisa menyompannya. Masalah ini jelas sebuah bug, silakan laporkan ke pengembang. KeePass 2 Database - Basisdata KeePass 2 + Basis Data KeePass 2 All files @@ -2162,7 +2267,7 @@ Masalah ini jelas sebuah bug, silakan laporkan ke pengembang. Open database - Buka basisdata + Buka basis data Failed to open %1. It either does not exist or is not accessible. @@ -2172,29 +2277,13 @@ Masalah ini jelas sebuah bug, silakan laporkan ke pengembang. CSV file Berkas CSV - - Select CSV file - Pilih berkas CSV - Merge database - Gabung basisdata - - - KeePass 1 database - Basisdata KeePass 1 - - - Open KeePass 1 database - Buka basisdata KeePass 1 - - - Open OPVault - Buka OPVault + Gabung basis data Export database to CSV file - Ekspor basisdata ke berkas CSV + Ekspor basis data ke berkas CSV Writing the CSV file failed. @@ -2204,22 +2293,25 @@ Masalah ini jelas sebuah bug, silakan laporkan ke pengembang. Writing the HTML file failed. Gagal menyimpan ke berkas HTML. + + Export database to XML file + Ekspor basis data ke berkas XML + + + XML file + Berkas XML + + + Writing the XML file failed + Penulisan berkas XML gagal + Export Confirmation Konfirmasi Ekspor You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - Anda akan mengekspor basisdata Anda ke berkas tanpa enkripsi. Ini akan membuat sandi dan informasi sensitif lainnya menjadi sangat rentan. Apakah Anda yakin ingin melanjutkan? - - - New Database - Basisdata Baru - - - %1 [New Database] - Database tab name modifier - %1 [Basisdata Baru] + Anda akan mengekspor basis data Anda ke berkas tanpa enkripsi. Ini akan membuat sandi dan informasi sensitif lainnya menjadi sangat rentan. Apakah Anda yakin ingin melanjutkan? %1 [Locked] @@ -2230,24 +2322,24 @@ Masalah ini jelas sebuah bug, silakan laporkan ke pengembang. DatabaseWidget - Database Tags - Tanda Basisdata + Searches and Tags + Pencarian dan Tag Searching… - + Sedang mencari… Shared group… - + Grup bersama… Confirm Auto-Type - + Confirm Auto-Type Perform Auto-Type into the previously active window? - + Perform Auto-Type into the previously active window? Execute command? @@ -2281,21 +2373,25 @@ Masalah ini jelas sebuah bug, silakan laporkan ke pengembang. Expired entries Entri kedaluwarsa + + Entries expiring within %1 day(s) + + No current database. - Tidak ada basisdata. + Tidak ada basis data. No source database, nothing to do. - Tidak ada sumber basisdata, tidak perlu melakukan apa-apa. + Tidak ada sumber basis data, tidak perlu melakukan apa-apa. Successfully merged the database files. - Berhasil menggabungkan berkas basisdata. + Berhasil menggabungkan berkas basis data. Database was not modified by merge operation. - Basisdata tidak ada perubahan yang diakibatkan oleh proses penggabungan. + Basis Data tidak ada perubahan yang diakibatkan oleh proses penggabungan. Search Results (%1) @@ -2305,9 +2401,21 @@ Masalah ini jelas sebuah bug, silakan laporkan ke pengembang. No Results Tidak Ada Hasil + + Save + Simpan + + + Enter a unique name or overwrite an existing search from the list: + Masukkan sebuah nama unik atau timpa pencarian yang ada dari daftar: + + + Save Search + Simpan pencarian + Lock Database? - Kunci Basisdata? + Kunci Basis Data? You are editing an entry. Discard changes and lock anyway? @@ -2322,7 +2430,7 @@ Simpan perubahan? Database was modified. Save changes? - Basisdata telah diubah. + Basis Data telah diubah. Simpan perubahan? @@ -2335,7 +2443,7 @@ Simpan perubahan? The database file has changed. Do you want to load the changes? - Berkas basisdata telah berubah. Apakah Anda ingin memuat perubahannya? + Berkas basis data telah berubah. Apakah Anda ingin memuat perubahannya? Merge Request @@ -2344,13 +2452,13 @@ Simpan perubahan? The database file has changed and you have unsaved changes. Do you want to merge your changes? - Berkas basisdata telah berubah dan Anda memiliki ubahan yang belum disimpan. + Berkas basis data telah berubah dan Anda memiliki ubahan yang belum disimpan. Apakah Anda ingin menggabungkan ubahan Anda? Could not open the new database file while attempting to autoreload. Error: %1 - Tidak bisa membuka berkas basisdata baru saat mencoba untuk memuat ulang. + Tidak bisa membuka berkas basis data baru saat mencoba untuk memuat ulang. Galat: %1 @@ -2360,12 +2468,12 @@ Galat: %1 KeePassXC has failed to save the database multiple times. This is likely caused by file sync services holding a lock on the save file. Disable safe saves and try again? - KeePassXC telah beberapa kali gagal menyimpan basisdata. Hal ini mungkin disebabkan oleh layanan sinkronisasi berkas yang menghalangi berkas yang akan disimpan. + KeePassXC telah beberapa kali gagal menyimpan basis data. Hal ini mungkin disebabkan oleh layanan sinkronisasi berkas yang menghalangi berkas yang akan disimpan. Nonaktifkan penyimpanan aman dan coba lagi? Writing the database failed: %1 - Gagal menyimpan basisdata: %1 + Gagal menyimpan basis data: %1 Passwords @@ -2373,15 +2481,15 @@ Nonaktifkan penyimpanan aman dan coba lagi? Save database as - Simpan basisdata sebagai + Simpan basis data sebagai KeePass 2 Database - Basisdata KeePass 2 + Basis Data KeePass 2 Save database backup - Simpan cadangan basisdata + Simpan cadangan basis data Empty recycle bin? @@ -2393,11 +2501,16 @@ Nonaktifkan penyimpanan aman dan coba lagi? Could not find database file: %1 - Tidak bisa menemukan berkas basisdata: %1 + Tidak bisa menemukan berkas basis data: %1 - - Entries expiring within %1 day(s) - + + New Database + Basis Data Baru + + + %1 [New Database] + Database tab name modifier + %1 [Basis Data Baru] @@ -2472,7 +2585,7 @@ Nonaktifkan penyimpanan aman dan coba lagi? Some Browser Integration settings are overridden by group settings. - + Some Browser Integration settings are overridden by group settings. Invalid Entry @@ -2481,23 +2594,28 @@ Nonaktifkan penyimpanan aman dan coba lagi? An external merge operation has invalidated this entry. Unfortunately, any changes made have been lost. - + An external merge operation has invalidated this entry. +Unfortunately, any changes made have been lost. Auto-Type Validation Error - + Auto-Type Validation Error An error occurred while validating the custom Auto-Type sequence: %1 Would you like to correct it? - + An error occurred while validating the custom Auto-Type sequence: +%1 +Would you like to correct it? An error occurred while validating the Auto-Type sequence for "%1": %2 Would you like to correct it? - + An error occurred while validating the Auto-Type sequence for "%1": +%2 +Would you like to correct it? Entry updated successfully. @@ -2535,6 +2653,10 @@ Would you like to correct it? Hide Sembunyikan + + %n hour(s) + + %n week(s) %n minggu @@ -2547,10 +2669,6 @@ Would you like to correct it? %n year(s) %n tahun - - %n hour(s) - - EditEntryWidgetAdvanced @@ -2612,11 +2730,11 @@ Would you like to correct it? If checked, the entry will not appear in reports like Health Check and HIBP even if it doesn't match the quality requirements. - + If checked, the entry will not appear in reports like Health Check and HIBP even if it doesn't match the quality requirements. Exclude from database reports - Kecualikan dari laporan basisdata + Kecualikan dari laporan basis data Foreground Color: @@ -2669,10 +2787,20 @@ Would you like to correct it? Add new window association Tambah asosiasi jendela baru + + + + Add item + + + Remove selected window association Buang asosiasi jendela yang dipilih + + - + Remove item + - + Window title: Judul jendela: @@ -2697,16 +2825,6 @@ Would you like to correct it? Custom Auto-Type sequence for this window Urutan Ketik-Otomatis khusus untuk jendela ini - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2736,7 +2854,7 @@ Would you like to correct it? Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. - + Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. Do not use this entry with HTTP Basic Auth @@ -2808,22 +2926,10 @@ Would you like to correct it? Notes field Ruas catatan - - Toggle the checkbox to reveal the notes section. - Pilih kotak centang untuk mengungkap bagian catatan. - Username field Ruas nama pengguna - - Toggle notes visible - Aktif/Nonaktifkan visibilitas cacatan - - - Notes: - Catatan: - Expiration field Ruas kedaluwarsa @@ -2840,14 +2946,6 @@ Would you like to correct it? Presets Prasetel - - Password: - Sandi: - - - URL: - URL: - Url field Ruas url @@ -2856,18 +2954,10 @@ Would you like to correct it? Download favicon for URL Untuk favicon untuk URL - - Title: - Judul: - Title field Ruas judul - - Username: - Nama pengguna: - Password field Ruas sandi @@ -2876,17 +2966,41 @@ Would you like to correct it? Toggle expiration Aktif/Nonaktifkan kedaluwarsa - - Expires: - Kedaluwarsa: - - - Tags: - - Tags list - + Daftar tag + + + &Username: + Nama Pengg&una: + + + &Title: + &Judul: + + + &Password: + Kata &Sandi: + + + UR&L: + UR&L: + + + &Notes: + Catata&n: + + + Toggle notes visibility + Jungkitkan kenampakan catatan + + + T&ags: + T&ag: + + + &Expires: + K&edaluwarsa: @@ -2897,7 +3011,7 @@ Would you like to correct it? Remove key from agent when database is closed/locked - Buang kunci dari agent saat basisdata ditutup/dikunci + Buang kunci dari agent saat basis data ditutup/dikunci Comment @@ -2905,7 +3019,7 @@ Would you like to correct it? Add key to agent when database is opened/unlocked - Tambahkan kunci ke agent saat basisdata dibuka/tak terkunci + Tambahkan kunci ke agent saat basis data dibuka/tak terkunci Decrypt @@ -2927,19 +3041,6 @@ Would you like to correct it? Private key Kunci privat - - External file - Berkas eksternal - - - Browser for key file - Peramban untuk berkas kunci - - - Browse… - Button for opening file dialog - Telusuri… - Attachment Lampiran @@ -2956,6 +3057,23 @@ Would you like to correct it? Remove from agent Buang dari agent + + External file + Berkas eksternal + + + Browser for key file + Peramban untuk berkas kunci + + + Browse… + Button for opening file dialog + Telusuri… + + + Generate + Buat + Select attachment file Pilih berkas lampiran @@ -2991,10 +3109,6 @@ Would you like to correct it? Icon Ikon - - Browser Integration - Integrasi Peramban - Properties Properti @@ -3009,7 +3123,11 @@ Would you like to correct it? Group has unsaved changes - + Grup memiliki perubahan yang belum disimpan + + + Browser Integration + Integrasi Peramban Enable @@ -3026,44 +3144,56 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - Sunting Grup - These settings affect to the group's behaviour with the browser extension. - + These settings affect to the group's behaviour with the browser extension. Hide entries from browser extension: - + Hide entries from browser extension: Hide entries from browser extension toggle for this and sub groups - + Hide entries from browser extension toggle for this and sub groups Skip Auto-Submit for entries: - + Skip Auto-Submit for entries: Skip Auto-Submit toggle for this and sub groups - + Skip Auto-Submit toggle for this and sub groups Use entries only with HTTP Basic Auth: - + Use entries only with HTTP Basic Auth: Only HTTP Auth toggle for this and sub groups - + Only HTTP Auth toggle for this and sub groups Do not use entries with HTTP Basic Auth: - + Do not use entries with HTTP Basic Auth: Do not use HTTP Auth toggle for this and sub groups + Do not use HTTP Auth toggle for this and sub groups + + + Omit WWW subdomain from matching: + Abaikan subdomain WWW dari pencocokan: + + + Omit WWW subdomain from matching toggle for this and sub groups + Hilangkan subdomain WWW dari toggle yang cocok untuk ini dan subgrup + + + Restrict matching to given browser key: + + + + Restrict matching to given browser key toggle for this and sub groups @@ -3133,15 +3263,15 @@ Ekstensi yang didukung adalah: %1. %1 is already being exported by this database. - %1 telah diekspor oleh basisdata ini. + %1 telah diekspor oleh basis data ini. %1 is already being imported by this database. - %1 telah diimpor oleh basisdata ini. + %1 telah diimpor oleh basis data ini. %1 is being imported and exported by different groups in this database. - %1 sedang diimpor dan diekspor oleh berbagai grup dalam basisdata ini. + %1 sedang diimpor dan diekspor oleh berbagai grup dalam basis data ini. KeeShare is currently disabled. You can enable import/export in the application settings. @@ -3150,15 +3280,15 @@ Ekstensi yang didukung adalah: %1. Database export is currently disabled by application settings. - Ekspor basisdata saat ini dinonaktifkan oleh pengaturan aplikasi. + Ekspor basis data saat ini dinonaktifkan oleh pengaturan aplikasi. Database import is currently disabled by application settings. - Impor basisdata saat ini dinonaktifkan oleh pengaturan aplikasi. + Impor basis data saat ini dinonaktifkan oleh pengaturan aplikasi. KeeShare container - + KeeShare container KeeShare signed container @@ -3252,15 +3382,15 @@ Ekstensi yang didukung adalah: %1. Choose icon… - + Pilih ikon Set the URL to use to search for a favicon - + Mengatur URL yang dipakai untuk mencari favicon Favicon URL - + URL Favicon Download favicon for URL @@ -3276,7 +3406,7 @@ Ekstensi yang didukung adalah: %1. Apply icon to… - + Terapkan ikon ke... Apply to this group only @@ -3298,10 +3428,6 @@ Ekstensi yang didukung adalah: %1. Unable to fetch favicon. Tidak bisa mengunduh favicon. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Anda bisa mengaktifkan layanan ikon situs web oleh DuckDuckGo di Perkakas > Pengaturan > Keamanan - Existing icon selected. Ikon yang sudah ada dipilih. @@ -3328,12 +3454,16 @@ Ekstensi yang didukung adalah: %1. %n icon(s) already exist in the database - %n ikon sudah ada didalam basisdata + %n ikon sudah ada didalam basis data The following icon(s) failed: Ikon berikut gagal: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + + EditWidgetProperties @@ -3415,7 +3545,7 @@ Ini mungkin akan menyebabkan pengaya menjadi tidak berfungsi. EntryAttachments Cannot open file "%1" - + Tidak bisa membuka berkas "%1" @@ -3457,11 +3587,11 @@ Ini mungkin akan menyebabkan pengaya menjadi tidak berfungsi. Rename selected attachment - + Gantikan nama lampiran terpilih Rename - + Ganti namanya Open selected attachment @@ -3535,12 +3665,13 @@ Ini mungkin akan menyebabkan pengaya menjadi tidak berfungsi. Confirm Overwrite Attachment - + Confirm Overwrite Attachment Attachment "%1" already exists. Would you like to overwrite the existing attachment? - + Attachment "%1" already exists. +Would you like to overwrite the existing attachment? Confirm Attachment @@ -3552,27 +3683,29 @@ Your database may get very large and reduce performance. Are you sure to add this file? %1 adalah berkas yang sangat besar (%2 MB). -Basisdata Anda akan menjadi sangat besar dan akan mengurangi performa kinerja. +Basis Data Anda akan menjadi sangat besar dan akan mengurangi performa kinerja. Apakah Anda yakin ingin menambahkan berkas ini? Attachment modified - + Attachment modified The attachment '%1' was modified. Do you want to save the changes to your database? - + The attachment '%1' was modified. +Do you want to save the changes to your database? Saving attachment failed - + Saving attachment failed Saving updated attachment failed. Error: %1 - + Saving updated attachment failed. +Error: %1 @@ -3586,7 +3719,7 @@ Error: %1 EntryHistoryModel Current (%1) - + Current (%1) Last modified @@ -3594,11 +3727,11 @@ Error: %1 Age - + Usia Difference - + Perbedaan Size @@ -3626,7 +3759,7 @@ Error: %1 Custom Attributes - + Atribut Ubahan Icon @@ -3634,7 +3767,7 @@ Error: %1 Color - + Warna Expiration @@ -3646,7 +3779,7 @@ Error: %1 Custom Data - + Data Ubahan Attachments @@ -3658,7 +3791,7 @@ Error: %1 Tags - + Tag @@ -3730,7 +3863,7 @@ Error: %1 Password Strength - + Kekuatan Kata Sandi Entry notes @@ -3768,6 +3901,10 @@ Error: %1 Has TOTP Memiliki TOTP + + Background Color + + EntryPreviewWidget @@ -3788,8 +3925,8 @@ Error: %1 Sandi - Notes - Catatan + URL + URL Expiration @@ -3797,19 +3934,19 @@ Error: %1 Tags - + Tag Tags list - + Daftar tag Username Nama pengguna - URL - URL + Notes + Catatan Advanced @@ -3859,6 +3996,10 @@ Error: %1 Never Tidak Pernah + + Double click to copy value + Klik ganda untuk menyalin nilai + Enabled Diaktifkan @@ -3867,6 +4008,10 @@ Error: %1 Disabled Dinonaktifkan + + Double click to copy to clipboard + Klik ganda untuk menyalin ke papan klip + EntryURLModel @@ -3874,6 +4019,10 @@ Error: %1 Invalid URL URL tidak valid + + Duplicate URL + Duplikatkan URL + EntryView @@ -3889,42 +4038,48 @@ Error: %1 Reset to defaults Kembalikan ke setelan bawaan + + + %1 entry(s)... + + %1 entri... + ExportDialog Export options - + Opsi ekspor Sort entries by... - + Sort entries by... You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! - + You are about to export your database to an unencrypted file. +This will leave your passwords and sensitive information vulnerable! + database order - + database order name (ascending) - + nama (urut naik) name (descending) - + nama (urut turun) unknown - + unknown Export database to HTML file - Ekspor basisdata ke berkas HTML + Ekspor basis data ke berkas HTML HTML file @@ -3935,11 +4090,11 @@ This will leave your passwords and sensitive information vulnerable! FdoSecrets::DBusMgr Failed to deliver message - + Gagal mengirim pesan Failed to send reply on DBus - + Gagal mengirim jawaban pada DBus Unknown @@ -3954,7 +4109,7 @@ This will leave your passwords and sensitive information vulnerable! <i>PID: %1, Executable: %2</i> <i>PID: 1234, Executable: /path/to/exe</i> - + <i>PID: %1, Executable: %2</i> Another secret service is running (%1).<br/>Please stop/remove it before re-enabling the Secret Service Integration. @@ -3966,30 +4121,30 @@ This will leave your passwords and sensitive information vulnerable! Failed to register service on DBus at path '%1' - + Gagal mendaftarkan layanan pada DBus di path '%1' Failed to register database on DBus under the name '%1' - + Failed to register database on DBus under the name '%1' Failed to register session on DBus at path '%1' - + Failed to register session on DBus at path '%1' Failed to register item on DBus at path '%1' - + Failed to register item on DBus at path '%1' Failed to register prompt object on DBus at path '%1' - + Failed to register prompt object on DBus at path '%1' FdoSecrets::Item Entry "%1" from database "%2" was used by %3 - Entri "%1" dari basisdata "%2" telah digunakan oleh %3 + Entri "%1" dari basis data "%2" telah digunakan oleh %3 @@ -4008,7 +4163,7 @@ This will leave your passwords and sensitive information vulnerable! Non-existing/inaccessible executable path. Please double-check the client is legit. - + Non-existing/inaccessible executable path. Please double-check the client is legit. @@ -4026,7 +4181,7 @@ This will leave your passwords and sensitive information vulnerable! FdoSecrets::UnlockPrompt %1 (PID: %2) - + %1 (PID: %2) @@ -4085,11 +4240,11 @@ Anda dapat mengaktifkan layanan ikon situs web DuckDuckGo di bagian keamanan dal Please wait, processing entry list… - + Please wait, processing entry list… Downloading… - + Mengunduh... Ok @@ -4105,6 +4260,147 @@ Anda dapat mengaktifkan layanan ikon situs web DuckDuckGo di bagian keamanan dal Downloading favicons (%1/%2)… + Mengunduh favicon (%1/%2)... + + + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + LamanPemandu + + + Entry count: %1 + + + + Group + Grup + + + Title + Judul + + + Username + Nama pengguna + + + Password + Sandi + + + Url + + + + + ImportWizardPageSelect + + Form + Formulir + + + Import File Selection + + + + Password: + Sandi: + + + Key File: + Berkas Kunci: + + + Browse… + Telusuri… + + + Import Into: + + + + New Database + Basis Data Baru + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Buka OPVault + + + Select import file + + + + All files + Semua berkas + + + Key files + Berkas kunci + + + Select key file + Pilih berkas kunci + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database @@ -4123,11 +4419,11 @@ Anda dapat mengaktifkan layanan ikon situs web DuckDuckGo di bagian keamanan dal Kdbx3Reader Missing database headers - + Missing database headers Unable to calculate database key - TIdak bisa mengkalkulasi kunci basisdata + TIdak bisa mengkalkulasi kunci basis data Unable to issue challenge-response: %1 @@ -4137,7 +4433,7 @@ Anda dapat mengaktifkan layanan ikon situs web DuckDuckGo di bagian keamanan dal Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. Kredensial yang diberikan tidak valid, silakan coba lagi. -Jika terus berulang, maka basisdata Anda mungkin rusak. +Jika terus berulang, maka basis data Anda mungkin rusak. Header doesn't match hash @@ -4149,11 +4445,11 @@ Jika terus berulang, maka basisdata Anda mungkin rusak. Invalid header field length: field %1 - + Invalid header field length: field %1 Invalid header data length: field %1, %2 expected, %3 found - + Invalid header data length: field %1, %2 expected, %3 found @@ -4169,18 +4465,18 @@ Jika terus berulang, maka basisdata Anda mungkin rusak. Unable to calculate database key - TIdak bisa mengkalkulasi kunci basisdata + TIdak bisa mengkalkulasi kunci basis data Kdbx4Reader missing database headers - kehilangan tajuk basisdata + kehilangan tajuk basis data Unable to calculate database key: %1 - Tidak dapat mengkalkulasi kunci basisdata: %1 + Tidak dapat mengkalkulasi kunci basis data: %1 Invalid header checksum size @@ -4194,7 +4490,7 @@ Jika terus berulang, maka basisdata Anda mungkin rusak. Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. Kredensial yang diberikan tidak valid, silakan coba lagi. -Jika terus berulang, maka basisdata Anda mungkin rusak. +Jika terus berulang, maka basis data Anda mungkin rusak. (HMAC mismatch) @@ -4210,11 +4506,11 @@ Jika terus berulang, maka basisdata Anda mungkin rusak. Invalid header field length: field %1 - + Invalid header field length: field %1 Invalid header data length: field %1, %2 expected, %3 found - + Invalid header data length: field %1, %2 expected, %3 found Failed to open buffer for KDF parameters in header @@ -4230,19 +4526,19 @@ Jika terus berulang, maka basisdata Anda mungkin rusak. Invalid inner header id size - + Invalid inner header id size Invalid inner header field length: field %1 - + Invalid inner header field length: field %1 Invalid inner header data length: field %1, %2 expected, %3 found - + Invalid inner header data length: field %1, %2 expected, %3 found Invalid inner header binary size - + Invalid inner header binary size Unsupported KeePass variant map version. @@ -4318,7 +4614,7 @@ Jika terus berulang, maka basisdata Anda mungkin rusak. Unable to calculate database key: %1 - Tidak dapat mengkalkulasi kunci basisdata: %1 + Tidak dapat mengkalkulasi kunci basis data: %1 Failed to serialize KDF parameters variant map @@ -4330,7 +4626,7 @@ Jika terus berulang, maka basisdata Anda mungkin rusak. KdbxReader Invalid cipher uuid length: %1 (length=%2) - + Invalid cipher uuid length: %1 (length=%2) Unable to parse UUID: %1 @@ -4342,7 +4638,7 @@ Jika terus berulang, maka basisdata Anda mungkin rusak. Invalid compression flags length - + Invalid compression flags length Unsupported compression algorithm @@ -4350,15 +4646,15 @@ Jika terus berulang, maka basisdata Anda mungkin rusak. Invalid master seed size - + Invalid master seed size Invalid transform seed size - + Invalid transform seed size Invalid transform rounds size - + Invalid transform rounds size Invalid start bytes size @@ -4370,26 +4666,29 @@ Jika terus berulang, maka basisdata Anda mungkin rusak. Invalid inner random stream cipher - + Invalid inner random stream cipher Failed to read database file. - Gagal membaca berkas basisdata. + Gagal membaca berkas basis data. The selected file is an old KeePass 1 database (.kdb). You can import it by clicking on Database > 'Import KeePass 1 database…'. This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. - + The selected file is an old KeePass 1 database (.kdb). + +You can import it by clicking on Database > 'Import KeePass 1 database…'. +This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. Not a KeePass database. - Bukan basisdata KeePass. + Bukan basis data KeePass. Unsupported KeePass 2 database version. - Versi basisdata KeePass 2 tidak didukung. + Versi basis data KeePass 2 tidak didukung. @@ -4520,7 +4819,7 @@ Baris %2, kolom %3 KeeAgentSettings Invalid KeeAgent settings file structure. - + Invalid KeeAgent settings file structure. Private key is an attachment but no attachments provided. @@ -4539,17 +4838,6 @@ Baris %2, kolom %3 Gagal membuka kunci privat - - KeePass1OpenWidget - - Import KeePass1 Database - Impor Basisdata KeePass1 - - - Unable to open the database. - Tidak bisa membuka basisdata. - - KeePass1Reader @@ -4558,7 +4846,7 @@ Baris %2, kolom %3 Not a KeePass database. - Bukan basisdata KeePass. + Bukan basis data KeePass. Unsupported encryption algorithm. @@ -4566,7 +4854,7 @@ Baris %2, kolom %3 Unsupported KeePass database version. - Versi basisdata KeePass tidak didukung. + Versi basis data KeePass tidak didukung. Unable to read encryption IV @@ -4587,15 +4875,15 @@ Baris %2, kolom %3 Invalid transform seed size - + Invalid transform seed size Invalid number of transform rounds - + Invalid number of transform rounds Unable to construct group tree - + Unable to construct group tree Root @@ -4603,17 +4891,17 @@ Baris %2, kolom %3 Unable to calculate database key - TIdak bisa mengkalkulasi kunci basisdata + TIdak bisa mengkalkulasi kunci basis data unable to seek to content position - + unable to seek to content position Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. Kredensial yang diberikan tidak valid, silakan coba lagi. -Jika terus berulang, maka basisdata Anda mungkin rusak. +Jika terus berulang, maka basis data Anda mungkin rusak. Key transformation failed @@ -4681,7 +4969,7 @@ Jika terus berulang, maka basisdata Anda mungkin rusak. Invalid entry UUID field size - + Invalid entry UUID field size Invalid entry group id field size @@ -4740,7 +5028,7 @@ Jika terus berulang, maka basisdata Anda mungkin rusak. Inactive share - + Inactive share Imported from @@ -4786,11 +5074,11 @@ Jika terus berulang, maka basisdata Anda mungkin rusak. Generate a new key file or choose an existing one to protect your database. - Buat sebuah berkas kunci baru atau pilih yang sudah ada untuk melindungi basisdata Anda. + Buat sebuah berkas kunci baru atau pilih yang sudah ada untuk melindungi basis data Anda. Note: Do NOT use a file that may change as that will prevent you from unlocking your database. - Catatan: JANGAN gunakan berkas yang dapat berubah karena itu akan mencegah Anda membuka kunci basisdata Anda! + Catatan: JANGAN gunakan berkas yang dapat berubah karena itu akan mencegah Anda membuka kunci basis data Anda! Browse for key file @@ -4820,23 +5108,23 @@ Pesan: %2 Add Key File - + Tambah Berkas Kunci Change Key File - + Ubah Berkas Kunci Remove Key File - + Hapus Berkas Kunci Key File set, click to change or remove - + Berkas Kunci telah diatur, klik untuk mengubah atau menghapus <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out.</p> - + <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out.</p> Key files @@ -4848,7 +5136,7 @@ Pesan: %2 Create Key File… - + Buat Berkas Kunci... Error creating key file @@ -4868,7 +5156,7 @@ Pesan: %2 You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. - Anda tidak dapat menggunakan basisdata sekarang sebagai kunci berkasnya sendiri. Harap pilih berkas berbeda atau hasilkan kunci berkas baru. + Anda tidak dapat menggunakan basis data sekarang sebagai kunci berkasnya sendiri. Harap pilih berkas berbeda atau hasilkan kunci berkas baru. Suspicious Key File @@ -4877,7 +5165,7 @@ Pesan: %2 The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. Are you sure you want to continue with this file? - Kunci berkas yang dipilih terlihat seperti kata sandi basisdata. Kunci berkas harus berkas statis yang tidak pernah berubah atau Anda akan kehilangan akses ke basisdata Anda selamanya. + Kunci berkas yang dipilih terlihat seperti kata sandi basis data. Kunci berkas harus berkas statis yang tidak pernah berubah atau Anda akan kehilangan akses ke basis data Anda selamanya. Apakah Anda yakin ingin melanjutkan dengan berkas ini? @@ -4885,15 +5173,15 @@ Apakah Anda yakin ingin melanjutkan dengan berkas ini? MacUtils Invalid key code - + Invalid key code Global shortcut already registered to %1 - + Pintasan global telah didaftarkan ke %1 Could not register global shortcut - + Tidak bisa mendaftar pintasan global @@ -4904,11 +5192,7 @@ Apakah Anda yakin ingin melanjutkan dengan berkas ini? &Recent Databases - Basisdata Ba&ru-baru Ini - - - &Import - &Impor + Basis Data Ba&ru-baru Ini &Export @@ -4930,6 +5214,10 @@ Apakah Anda yakin ingin melanjutkan dengan berkas ini? TOTP TOTP + + Tags + Tag + &Groups &Grup @@ -4960,48 +5248,32 @@ Apakah Anda yakin ingin melanjutkan dengan berkas ini? &Open Database… - &Buka Basisdata… + &Buka Basis Data… &Save Database - &Simpan Basisdata + &Simpan Basis Data &Close Database - &Tutup Basisdata + &Tutup Basis Data &New Database… - Basisdata &Baru… - - - Create a new database - Buat basisdata baru + Basis Data &Baru… &Merge From Database… - &Gabung Dari Basisdata… - - - Merge from another KDBX database - Gabung dari basisdata KDBX lainnya + &Gabung Dari Basis Data… &New Entry… Entri &Baru… - - Add a new entry - Tambahkan entri baru - &Edit Entry… &Sunting Entri… - - View or edit entry - Lihat atau sunting entri - &Delete Entry… &Hapus Entri… @@ -5010,10 +5282,6 @@ Apakah Anda yakin ingin melanjutkan dengan berkas ini? &New Group… Grup &Baru… - - Add a new group - Tambahkan grup baru - &Edit Group… &Sunting Grup… @@ -5036,28 +5304,20 @@ Apakah Anda yakin ingin melanjutkan dengan berkas ini? Sa&ve Database As… - Sim&pan Basisdata Sebagai… + Sim&pan Basis Data Sebagai… Database &Security… - &Keamanan Basisdata… + &Keamanan Basis Data… Database &Reports… - - - - Statistics, health check, etc. - Statistik, cek kesehatan, dll. + Database &Reports… &Database Settings… Pengaturan Basis&data… - - Database settings - Pengaturan basisdata - &Clone Entry… &Gandakan Entri… @@ -5066,34 +5326,18 @@ Apakah Anda yakin ingin melanjutkan dengan berkas ini? Move u&p Pindah ke &atas - - Move entry one step up - Pindah entri 1 level ke atas - Move do&wn Pindah ke &bawah - - Move entry one step down - Pindah entri 1 level ke bawah - Copy &Username Salin &Nama Pengguna - - Copy username to clipboard - Salin nama pengguna ke papan klip - Copy &Password Salin &Sandi - - Copy password to clipboard - Salin sandi ke papan klip - &Settings &Pengaturan @@ -5116,36 +5360,24 @@ Apakah Anda yakin ingin melanjutkan dengan berkas ini? &Lock Database - + &Kunci Pangkalan Data Lock &All Databases - Kunci &Semua Basisdata + Kunci &Semua Basis Data &Title &Judul - Copy title to clipboard - Salin judul ke papan klip - - - &URL - &URL - - - Copy URL to clipboard - Salin URL ke papan klip + Copy &URL + Salin &URL &Notes &Catatan - - Copy notes to clipboard - Salin catatan ke papan klip - &CSV File… Berkas &CSV… @@ -5156,28 +5388,16 @@ Apakah Anda yakin ingin melanjutkan dengan berkas ini? KeePass 1 Database… - Basisdata KeePass 1… - - - Import a KeePass 1 database - Impor basisdata KeePass 1 + Basis Data KeePass 1… 1Password Vault… Brankas 1Password… - - Import a 1Password Vault - Impor Brankas 1Password - CSV File… Berkas CSV… - - Import a CSV file - Impor berkas CSV - Show TOTP Tampilkan TOTP @@ -5194,6 +5414,10 @@ Apakah Anda yakin ingin melanjutkan dengan berkas ini? Copy &TOTP Salin &TOTP + + Copy Password and TOTP + Salin Sandi dan TOTP + E&mpty recycle bin Kosongkan keranjang sa&mpah @@ -5218,10 +5442,6 @@ Apakah Anda yakin ingin melanjutkan dengan berkas ini? &Online Help &Bantuan Daring - - Go to online documentation - Kunjungi dokumentasi daring - &User Guide Pand&uan Pengguna @@ -5236,7 +5456,7 @@ Apakah Anda yakin ingin melanjutkan dengan berkas ini? Save Database Backup… - Simpan Cadangan Basisdata... + Simpan Cadangan Basis Data... Add key to SSH Agent @@ -5288,7 +5508,11 @@ Apakah Anda yakin ingin melanjutkan dengan berkas ini? Clone Group... - + Clone Group... + + + &XML File… + Berkas &XML... Clear history @@ -5307,7 +5531,7 @@ Apakah Anda yakin ingin melanjutkan dengan berkas ini? There is a high risk of corruption, maintain a backup of your databases. This version is not meant for production use. PERINGATAN: Anda menggunakan versi tidak stabil dari KeePassXC. -Kemungkinan besar akan terjadi korup, pelihara cadangan basisdata Anda. +Kemungkinan besar akan terjadi korup, pelihara cadangan basis data Anda. Versi ini tidak dimaksudkan untuk penggunaan sehari-hari. @@ -5319,7 +5543,12 @@ Ada beberapa kutu dan masalah-masalah kecil, versi ini ditujukan untuk penggunaa WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard. We recommend you use the AppImage available on our downloads page. - + WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard. +We recommend you use the AppImage available on our downloads page. + + + No Tags + Tidak Ada Tag Restore Entry(s) @@ -5349,9 +5578,13 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC Keluar KeePassXC + + %1 Entry(s) + + Please present or touch your YubiKey to continue… - + Please present or touch your YubiKey to continue… Restart Application? @@ -5361,28 +5594,296 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? Anda harus memulai ulang aplikasi untuk menerapkan pengaturan ini. Apakah Anda ingin memulai ulang sekarang? + + Allow Screen Capture + Izinkan Tangkapan Layar + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + + + + Import Passkey + + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + Sunting Entri + + + Delete Entry + + + + Create Group + + + + Edit Group + Sunting Grup + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + Salin Nama Pengguna + + + Copy Password + Salin Kata Sandi + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + Impor Basis Data KeePass1 + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + ManageDatabase Database settings - Pengaturan basisdata + Pengaturan basis data Edit database settings - Sunting pengaturan basisdata + Sunting pengaturan basis data Unlock database - Buka kunci basisdata + Buka kunci basis data Unlock database to show more information - Buka kunci basisdata untuk menampilkan lebih banyak informasi + Buka kunci basis data untuk menampilkan lebih banyak informasi Lock database - Kunci basisdata + Kunci basis data @@ -5397,18 +5898,18 @@ We recommend you use the AppImage available on our downloads page. Reset - + Reset Reset any remembered decisions for this application - + Reset any remembered decisions for this application Merger Creating missing %1 [%2] - + Creating missing %1 [%2] Relocating %1 [%2] @@ -5418,26 +5919,6 @@ We recommend you use the AppImage available on our downloads page. Overwriting %1 [%2] Menyimpan ulang %1 [%2] - - older entry merged from database "%1" - entri lama yang digabung dari basisdata "%1" - - - Adding backup for older target %1 [%2] - Menambahkan cadangan untuk target lama %1 [%2] - - - Adding backup for older source %1 [%2] - Menambahkan cadangan untuk sumber lama %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - - - - Reapplying older source entry on top of newer target %1 [%2] - - Synchronizing from newer source %1 [%2] Menyinkronkan dengan sumber yang lebih baru %1 [%2] @@ -5448,11 +5929,11 @@ We recommend you use the AppImage available on our downloads page. Deleting child %1 [%2] - + Deleting child %1 [%2] Deleting orphan %1 [%2] - + Deleting orphan %1 [%2] Changed deleted objects @@ -5475,7 +5956,7 @@ We recommend you use the AppImage available on our downloads page. NewDatabaseWizard Create a new KeePassXC database… - + Create a new KeePassXC database… Root @@ -5495,26 +5976,18 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - Di sini Anda bisa menyesuaikan pengaturan enkripsi basisdata. Jangan khawatir, Anda bisa mengubahnya lagi nanti di pengaturan basisdata. - - - Advanced Settings - Pengaturan Lanjutan - - - Simple Settings - Pengaturan Dasar + Di sini Anda bisa menyesuaikan pengaturan enkripsi basis data. Jangan khawatir, Anda bisa mengubahnya lagi nanti di pengaturan basis data. NewDatabaseWizardPageDatabaseKey Database Credentials - Kredensial Basisdata + Kredensial Basis Data A set of credentials known only to you that protects your database. - Kredensial yang hanya diketahui oleh Anda yang melindungi basisdata Anda. + Kredensial yang hanya diketahui oleh Anda yang melindungi basis data Anda. @@ -5525,18 +5998,18 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - Di sini Anda bisa menyesuaikan pengaturan enkripsi basisdata. Jangan khawatir, Anda bisa mengubahnya lagi nanti di pengaturan basisdata. + Di sini Anda bisa menyesuaikan pengaturan enkripsi basis data. Jangan khawatir, Anda bisa mengubahnya lagi nanti di pengaturan basis data. NewDatabaseWizardPageMetaData General Database Information - Informasi Basisdata Umum + Informasi Basis Data Umum Please fill in the display name and an optional description for your new database: - Silakan masukkan nama dan deskripsi opsional untuk basisdata Anda yang baru: + Silakan masukkan nama dan deskripsi opsional untuk basis data Anda yang baru: @@ -5547,18 +6020,18 @@ We recommend you use the AppImage available on our downloads page. Global shortcut already registered to %1 - + Pintasan global telah didaftarkan ke %1 Could not register global shortcut - + Tidak bisa mendaftar pintasan global OpData01 Invalid OpData01, does not contain header - + Invalid OpData01, does not contain header Unable to read all IV bytes, wanted 16 but got %1 @@ -5566,7 +6039,7 @@ We recommend you use the AppImage available on our downloads page. Unable to init cipher for opdata01: %1 - + Unable to init cipher for opdata01: %1 Unable to read all HMAC signature bytes @@ -5578,19 +6051,11 @@ We recommend you use the AppImage available on our downloads page. Unable to process clearText in place - + Unable to process clearText in place Expected %1 bytes of clear-text, found %2 - - - - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - + Expected %1 bytes of clear-text, found %2 @@ -5617,7 +6082,7 @@ We recommend you use the AppImage available on our downloads page. Unable to derive master key: %1 - + Unable to derive master key: %1 @@ -5640,7 +6105,7 @@ We recommend you use the AppImage available on our downloads page. Key file magic header id invalid - + Key file magic header id invalid Found zero keys @@ -5666,6 +6131,10 @@ We recommend you use the AppImage available on our downloads page. Unknown cipher: %1 Cipher tidak diketahui: %1 + + AES-256/GCM is currently not supported + AES-256/GCM saat ini tidak didukung + Passphrase is required to decrypt this key Membutuhkan frasa sandi untuk mendekripsi kunci ini @@ -5684,7 +6153,7 @@ We recommend you use the AppImage available on our downloads page. Failed to initialize cipher: %1 - + Failed to initialize cipher: %1 Decryption failed: %1 @@ -5696,11 +6165,11 @@ We recommend you use the AppImage available on our downloads page. Unexpected EOF while reading key - + Unexpected EOF while reading key Unsupported key part - + Unsupported key part Unexpected EOF while reading public key @@ -5732,26 +6201,174 @@ We recommend you use the AppImage available on our downloads page. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Sandi tidak sama + SSH Key Generator + - Passwords match so far - Kata sandi cocok sejauh ini + Type + Tipe - Toggle Password (%1) - Aktif/Nonaktifkan Sandi (%1) + Bits + - Generate Password (%1) - Buat Sandi (%1) + Comment + Komentar + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + - Warning: Caps Lock enabled! - Peringatan: Caps Lock aktif! + Export the following Passkey entries. + + + + Filenames will be generated with title and .passkey file extension. + + + + Export entries + + + + Export Selected + + + + Cancel + Batal + + + Export to folder + + + + + PasskeyExporter + + KeePassXC: Passkey Export + + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + + Cannot open file + + + + Cannot open file "%1" for writing. + + + + Cannot write to file + + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + + + + Username: %1 + + + + Group + Grup + + + Database + Basis data + + + Import Passkey + + + + Import + Impor + + + Cancel + Batal + + + Import the following Passkey: + + + + Entry + Entri + + + Import the following Passkey to this entry: + + + + Create new entry + + + + Default Passkeys group (Imported Passkeys) + + + + Relying Party: %1 + + + + + PasskeyImporter + + Passkey file + + + + All files + Semua berkas + + + Open Passkey file + + + + Cannot open file + + + + Cannot open file "%1" for reading. + + + + Cannot import Passkey + + + + Cannot import Passkey file "%1". Data is missing. + + + + Cannot import Passkey file "%1". Private key is missing or malformed. + + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + @@ -5778,23 +6395,23 @@ We recommend you use the AppImage available on our downloads page. Add Password - + Tambahkan Kata Sandi Change Password - + Change Password Remove Password - + Remove Password Password set, click to change or remove - + Password set, click to change or remove <p>A password is the primary method for securing your database.</p><p>Good passwords are long and unique. KeePassXC can generate one for you.</p> - <p>Kata sandi adalah metode utama untuk mengamankan basisdata Anda.</p><p>Kata sandi yang bagus adalah unik dan panjang. KeePassXC dapat menghasilkan satu untuk Anda.</p> + <p>Kata sandi adalah metode utama untuk mengamankan basis data Anda.</p><p>Kata sandi yang bagus adalah unik dan panjang. KeePassXC dapat menghasilkan satu untuk Anda.</p> Passwords do not match. @@ -5962,7 +6579,7 @@ We recommend you use the AppImage available on our downloads page. Character Count: - + Cacah Karakter: Word Case: @@ -5970,15 +6587,15 @@ We recommend you use the AppImage available on our downloads page. Delete selected wordlist - + Delete selected wordlist Add custom wordlist - + Add custom wordlist character - + karakter Close @@ -6010,57 +6627,12 @@ We recommend you use the AppImage available on our downloads page. (SYSTEM) - + (SYSTEM) Entropy: %1 bit Entropi: %1 bit - - Confirm Delete Wordlist - - - - Do you really want to delete the wordlist "%1"? - - - - Failed to delete wordlist - - - - Wordlists - - - - All files - Semua Berkas - - - Select Custom Wordlist - - - - Overwrite Wordlist? - - - - Wordlist "%1" already exists as a custom wordlist. -Do you want to overwrite it? - - - - Failed to add wordlist - - - - Logograms - Logogram - - - Special Characters - Karakter Spesial - Password Quality: %1 Kualitas Sandi: %1 @@ -6085,20 +6657,117 @@ Do you want to overwrite it? Password quality Sempurna + + Confirm Delete Wordlist + Confirm Delete Wordlist + + + Do you really want to delete the wordlist "%1"? + Do you really want to delete the wordlist "%1"? + + + Failed to delete wordlist + Failed to delete wordlist + + + Wordlists + Wordlists + + + All files + Semua Berkas + + + Select Custom Wordlist + Select Custom Wordlist + + + Overwrite Wordlist? + Overwrite Wordlist? + + + Wordlist "%1" already exists as a custom wordlist. +Do you want to overwrite it? + Wordlist "%1" already exists as a custom wordlist. +Do you want to overwrite it? + + + Failed to add wordlist + Failed to add wordlist + + + Logograms + Logogram + + + Special Characters + Karakter Spesial + + + + PasswordWidget + + Passwords do not match + Sandi tidak sama + + + Passwords match so far + Kata sandi cocok sejauh ini + + + Toggle Password (%1) + Aktif/Nonaktifkan Sandi (%1) + + + Generate Password (%1) + Buat Sandi (%1) + + + Warning: Caps Lock enabled! + Peringatan: Caps Lock aktif! + + + Quality: %1 + Kualitas: %1 + + + Poor + Password quality + Buruk + + + Weak + Password quality + Lemah + + + Good + Password quality + Baik + + + Excellent + Password quality + Sempurna + + + Toggle password visibility using Control + H. Open the password generator using Control + G. + + PickcharsDialog KeePassXC - Pick Characters - + KeePassXC - Pick Characters Select characters to type, navigate with arrow keys, Ctrl + S submits. - + Select characters to type, navigate with arrow keys, Ctrl + S submits. Press &Tab between characters - + Press &Tab between characters @@ -6139,16 +6808,20 @@ Do you want to overwrite it? Continue Lanjutkan + + Continue with weak password + + QObject Database not opened - Basisdata tidak terbuka + Basis Data tidak terbuka Database hash not available - Hash basisdata tidak tersedia + Hash basis data tidak tersedia Client public key not received @@ -6200,7 +6873,7 @@ Do you want to overwrite it? No valid UUID provided - + No valid UUID provided Unknown error @@ -6216,7 +6889,7 @@ Do you want to overwrite it? Could not save the native messaging script file for %1. - + Could not save the native messaging script file for %1. Username for the entry. @@ -6236,7 +6909,7 @@ Do you want to overwrite it? Notes for the entry. - + Notes for the entry. Notes @@ -6252,7 +6925,7 @@ Do you want to overwrite it? Add a new entry to a database. - Tambahkan entri baru ke basisdata. + Tambahkan entri baru ke basis data. Path of the entry to add. @@ -6260,7 +6933,7 @@ Do you want to overwrite it? Cannot generate a password and prompt at the same time. - + Cannot generate a password and prompt at the same time. Could not create entry with path %1. @@ -6272,7 +6945,7 @@ Do you want to overwrite it? Writing the database failed %1. - Gagal menyimpan basisdata %1. + Gagal menyimpan basis data %1. Successfully added entry %1. @@ -6280,7 +6953,7 @@ Do you want to overwrite it? Adds a new group to a database. - Menambahkan grup baru ke basisdata. + Menambahkan grup baru ke basis data. Path of the group to add. @@ -6308,11 +6981,11 @@ Do you want to overwrite it? Path to okon-cli to search a formatted HIBP file - + Path to okon-cli to search a formatted HIBP file okon-cli - + okon-cli Analyze passwords for weaknesses and problems. @@ -6320,11 +6993,11 @@ Do you want to overwrite it? Cannot find HIBP file: %1 - + Cannot find HIBP file: %1 Evaluating database entries using okon… - + Evaluating database entries using okon… Failed to open HIBP file %1: %2 @@ -6332,7 +7005,7 @@ Do you want to overwrite it? Evaluating database entries against HIBP file, this will take a while… - + Evaluating database entries against HIBP file, this will take a while… Password for '%1' has been leaked %2 time(s)! @@ -6340,23 +7013,23 @@ Do you want to overwrite it? Password for '%1' has been leaked! - + Password for '%1' has been leaked! Export an attachment of an entry. - + Export an attachment of an entry. Path of the entry with the target attachment. - + Path of the entry with the target attachment. Name of the attachment to be exported. - + Name of the attachment to be exported. Path to which the attachment should be exported. - + Path to which the attachment should be exported. Could not find entry with path %1. @@ -6364,68 +7037,68 @@ Do you want to overwrite it? Could not find attachment with name %1. - + Could not find attachment with name %1. No export target given. Please use '--stdout' or specify an 'export-file'. - + No export target given. Please use '--stdout' or specify an 'export-file'. Could not open output file %1. - + Could not open output file %1. Successfully exported attachment %1 of entry %2 to %3. - + Successfully exported attachment %1 of entry %2 to %3. Overwrite existing attachments. - + Overwrite existing attachments. Imports an attachment to an entry. - + Imports an attachment to an entry. Path of the entry. - + Path of the entry. Name of the attachment to be added. - + Name of the attachment to be added. Path of the attachment to be imported. - + Path of the attachment to be imported. Attachment %1 already exists for entry %2. - + Attachment %1 already exists for entry %2. Could not open attachment file %1. - + Could not open attachment file %1. Successfully imported attachment %1 as %2 to entry %3. - + Successfully imported attachment %1 as %2 to entry %3. Remove an attachment of an entry. - + Remove an attachment of an entry. Name of the attachment to be removed. - + Name of the attachment to be removed. Successfully removed attachment %1 from entry %2. - + Successfully removed attachment %1 from entry %2. Copy the given attribute to the clipboard. Defaults to "password" if not specified. Don't translate "password", it refers to the attribute. - + Copy the given attribute to the clipboard. Defaults to "password" if not specified. Copy the current TOTP to the clipboard (equivalent to "-a totp"). @@ -6433,7 +7106,7 @@ Do you want to overwrite it? Must match only one entry, otherwise a list of possible matches is shown. - + Must match only one entry, otherwise a list of possible matches is shown. Copy an entry's attribute to the clipboard. @@ -6446,7 +7119,7 @@ Do you want to overwrite it? Timeout before clearing the clipboard (default is %1 seconds, set to 0 for unlimited). - + Timeout before clearing the clipboard (default is %1 seconds, set to 0 for unlimited). Invalid timeout value %1. @@ -6454,11 +7127,11 @@ Do you want to overwrite it? Multiple entries matching: - + Multiple entries matching: Using matching entry: %1 - + Using matching entry: %1 Entry %1 not found. @@ -6474,7 +7147,7 @@ Do you want to overwrite it? ERROR: attribute %1 is ambiguous, it matches %2. - + ERROR: attribute %1 is ambiguous, it matches %2. Attribute "%1" not found. @@ -6482,7 +7155,7 @@ Do you want to overwrite it? Entry's "%1" attribute copied to the clipboard! - + Entry's "%1" attribute copied to the clipboard! Clearing the clipboard in %1 second(s)... @@ -6494,7 +7167,7 @@ Do you want to overwrite it? Close the currently opened database. - Tutup basisdata yang saat ini dibuka. + Tutup basis data yang saat ini dibuka. Display this help. @@ -6506,7 +7179,7 @@ Do you want to overwrite it? Key file of the database. - Berkas kunci dari basisdata. + Berkas kunci dari basis data. path @@ -6514,47 +7187,53 @@ Do you want to overwrite it? Deactivate password key for the database. - Nonaktifkan kunci kata sandi untuk basisdata. + Nonaktifkan kunci kata sandi untuk basis data. Yubikey slot and optional serial used to access the database (e.g., 1:7370001). - + Yubikey slot and optional serial used to access the database (e.g., 1:7370001). slot[:serial] - + slot[:serial] Missing positional argument(s). - + Missing positional argument(s). Too many arguments provided. - + Too many arguments provided. + + + Path of the database. + Jalur ke basis data. Target decryption time in MS for the database. - Target waktu pendekripsian dalam MD untuk basisdata. + Target waktu pendekripsian dalam MD untuk basis data. time waktu + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Atur berkas kunci untuk basis data. +Opsi ini tidak digunakan lagi, gunakan --set-key-file sebagai gantinya. + Set the key file for the database. - Atur berkas kunci untuk basisdata. + Atur berkas kunci untuk basis data. Set a password for the database. - Atur kata sandi untuk basisdata. + Atur kata sandi untuk basis data. Create a new database. - Buat basisdata baru. - - - Path of the database. - Jalur ke basisdata. + Buat basis data baru. Invalid decryption time %1. @@ -6566,7 +7245,7 @@ Do you want to overwrite it? Failed to set database password. - Gagal mengatur kata sandi basisdata. + Gagal mengatur kata sandi basis data. Loading the key file failed @@ -6574,19 +7253,19 @@ Do you want to overwrite it? No key is set. Aborting database creation. - Tidak ada kunci yang diatur. Membatalkan pembuatan basisdata. + Tidak ada kunci yang diatur. Membatalkan pembuatan basis data. Benchmarking key derivation function for %1ms delay. - + Benchmarking key derivation function for %1ms delay. Setting %1 rounds for key derivation function. - + Setting %1 rounds for key derivation function. error while setting database key derivation settings. - terjadi kesalahan ketika mengatur pengaturan derivasi kunci basisdata. + terjadi kesalahan ketika mengatur pengaturan derivasi kunci basis data. File %1 already exists. @@ -6594,294 +7273,67 @@ Do you want to overwrite it? Failed to save the database: %1. - Gagal menyimpan basisdata: %1. + Gagal menyimpan basis data: %1. Successfully created new database. - Berhasil membuat basisdata baru. + Berhasil membuat basis data baru. - Word count for the diceware passphrase. - Jumlah kata untuk frasa sandi diceware. + Unset the password for the database. + Batal atur kata sandi untuk basis data. - count - CLI parameter - jumlah + Unset the key file for the database. + Batal atur berkas kunci untuk basis data. - Wordlist for the diceware generator. -[Default: EFF English] - Daftar kata untuk generator diceware. -[Bawaan: Inggris EFF] + Edit a database. + Edit basis data. - Generate a new random diceware passphrase. - Buat frasa sandi diceware acak yang baru. + Cannot use %1 and %2 at the same time. + Tidak dapat menggunakan %1 dan %2 secara bersamaan. - Invalid word count %1 - Jumlah kata tidak valid %1 + Could not change the database key. + Tidak dapat mengubah kunci database. - The word list is too small (< 1000 items) - Daftar kata terlalu kecil (<1000 item) - - - Title for the entry. - Judul entri. - - - title - judul - - - Edit an entry. - Sunting sebuah entri. - - - Path of the entry to edit. - Jalur entri yang akan disunting. - - - Not changing any field for entry %1. - - - - Enter new password for entry: - Masukkan sandi baru untuk entri: + Database was not modified. + Basis data tidak dimodifikasi. Writing the database failed: %1 - Gagal menyimpan basisdata: %1 + Gagal menyimpan basis data: %1 - Successfully edited entry %1. - Berhasil menyunting entri %1. + Successfully edited the database. + Berhasil mengedit database. - Perform advanced analysis on the password. - Jalankan analisis tingkat lanjut pada sandi. + Cannot remove password: The database does not have a password. + Tidak dapat menghapus kata sandi: Database tidak memiliki kata sandi. - Password for which to estimate the entropy. - Sandi untuk diestimasi entropinya. + Cannot remove file key: The database does not have a file key. + Tidak dapat menghapus kunci file: Database tidak memiliki kunci file. - Estimate the entropy of a password. - Estimasi entropi sandi. + Loading the new key file failed: %1 + Gagal memuat file kunci baru: %1 - Length %1 - Panjang %1 + Found unexpected Key type %1 + Ditemukan tipe Kunci tidak terduga %1 - Entropy %1 - Entropi %1 - - - Log10 %1 - Log10 %1 - - - Multi-word extra bits %1 - - - - Type: Bruteforce - Tipe: Bruteforce - - - Type: Dictionary - Tipe: Dictionary - - - Type: Dict+Leet - Tipe: Dict+Leet - - - Type: User Words - Tipe: User Words - - - Type: User+Leet - Tipe: User+Leet - - - Type: Repeated - Tipe: Repeated - - - Type: Sequence - Tipe: Sequence - - - Type: Spatial - Tipe: Spatial - - - Type: Date - Tipe: Tanggal - - - Type: Bruteforce(Rep) - - - - Type: Dictionary(Rep) - - - - Type: Dict+Leet(Rep) - - - - Type: User Words(Rep) - - - - Type: User+Leet(Rep) - - - - Type: Repeated(Rep) - - - - Type: Sequence(Rep) - - - - Type: Spatial(Rep) - - - - Type: Date(Rep) - - - - Type: Unknown (%1) - - - - Entropy %1 (%2) - Entropi %1 (%2) - - - *** Password length (%1) != sum of length of parts (%2) *** - *** Panjang kata sandi (%1) != jumlah panjang bagian (%2) *** - - - Exit interactive mode. - Keluar dari mode interaktif. - - - Format to use when exporting. Available choices are 'xml' or 'csv'. Defaults to 'xml'. - Format yang digunakan ketika mengekspor. Pilihan yang tersedia adalah 'xml' atau 'csv'. Standarnya adalah 'xml'. - - - Exports the content of a database to standard output in the specified format. - Ekspor konten dari basisdata ke keluaran standar dalam format yang ditentukan. - - - Unable to export database to XML: %1 - Tidak bisa mengekspor basisdata ke XML: %1 - - - Unsupported format %1 - Format tidak didukung %1 - - - Length of the generated password - Panjang dari sandi yang dibuat - - - length - panjang - - - Use lowercase characters - Gunakan karakter huruf kecil - - - Use uppercase characters - Gunakan karakter huruf besar - - - Use numbers - Gunakan angka - - - Use special characters - Gunakan karakter spesial - - - Use extended ASCII - Gunakan ASCII lanjutan - - - Exclude character set - Kecualikan karakter - - - chars - karakter - - - Use custom character set - - - - Exclude similar looking characters - Kecualikan karakter yang mirip - - - Include characters from every selected group - Sertakan karakter dari setiap grup yang dipilih - - - Generate a new random password. - Buat kata sandi baru secara acak. - - - Invalid password length %1 - Panjang sandi tidak valid %1 - - - Invalid password generator after applying all options - - - - Display command help. - Tampilkan bantuan perintah. - - - Available commands: - Perintah yang tersedia: - - - Import the contents of an XML database. - Impor konten dari basisdata XML. - - - Path of the XML database export. - Jalur ke berkas XML hasil ekspor basisdata. - - - Path of the new database. - Jalur dari basisdata baru. - - - Unable to import XML database: %1 - Tidak bisa mengimpor basisdata XML: %1 - - - Successfully imported database. - Berhasil mengimpor basisdata. + Cannot remove all the keys from a database. + Tidak dapat menghapus semua kunci dari database. Show a database's information. - Tampilkan informasi basisdata. + Tampilkan informasi basis data. UUID: @@ -6917,7 +7369,7 @@ Do you want to overwrite it? Database created - + Database created Last saved @@ -6979,6 +7431,281 @@ Do you want to overwrite it? %1 characters %1 karakter + + Word count for the diceware passphrase. + Jumlah kata untuk frasa sandi diceware. + + + count + CLI parameter + jumlah + + + Wordlist for the diceware generator. +[Default: EFF English] + Daftar kata untuk generator diceware. +[Bawaan: Inggris EFF] + + + Generate a new random diceware passphrase. + Buat frasa sandi diceware acak yang baru. + + + Invalid word count %1 + Jumlah kata tidak valid %1 + + + The word list is too small (< 1000 items) + Daftar kata terlalu kecil (<1000 item) + + + Title for the entry. + Judul entri. + + + title + judul + + + Edit an entry. + Sunting sebuah entri. + + + Path of the entry to edit. + Jalur entri yang akan disunting. + + + Not changing any field for entry %1. + Not changing any field for entry %1. + + + Enter new password for entry: + Masukkan sandi baru untuk entri: + + + Successfully edited entry %1. + Berhasil menyunting entri %1. + + + Perform advanced analysis on the password. + Jalankan analisis tingkat lanjut pada sandi. + + + Password for which to estimate the entropy. + Sandi untuk diestimasi entropinya. + + + Estimate the entropy of a password. + Estimasi entropi sandi. + + + Length %1 + Panjang %1 + + + Entropy %1 + Entropi %1 + + + Log10 %1 + Log10 %1 + + + Multi-word extra bits %1 + Multi-word extra bits %1 + + + Type: Bruteforce + Tipe: Bruteforce + + + Type: Dictionary + Tipe: Dictionary + + + Type: Dict+Leet + Tipe: Dict+Leet + + + Type: User Words + Tipe: User Words + + + Type: User+Leet + Tipe: User+Leet + + + Type: Repeated + Tipe: Repeated + + + Type: Sequence + Tipe: Sequence + + + Type: Spatial + Tipe: Spatial + + + Type: Date + Tipe: Tanggal + + + Type: Bruteforce(Rep) + Type: Bruteforce(Rep) + + + Type: Dictionary(Rep) + Type: Dictionary(Rep) + + + Type: Dict+Leet(Rep) + Type: Dict+Leet(Rep) + + + Type: User Words(Rep) + Type: User Words(Rep) + + + Type: User+Leet(Rep) + Type: User+Leet(Rep) + + + Type: Repeated(Rep) + Type: Repeated(Rep) + + + Type: Sequence(Rep) + Type: Sequence(Rep) + + + Type: Spatial(Rep) + Type: Spatial(Rep) + + + Type: Date(Rep) + Type: Date(Rep) + + + Type: Unknown (%1) + Type: Unknown (%1) + + + Entropy %1 (%2) + Entropi %1 (%2) + + + *** Password length (%1) != sum of length of parts (%2) *** + *** Panjang kata sandi (%1) != jumlah panjang bagian (%2) *** + + + Exit interactive mode. + Keluar dari mode interaktif. + + + Format to use when exporting. Available choices are 'xml' or 'csv'. Defaults to 'xml'. + Format yang digunakan ketika mengekspor. Pilihan yang tersedia adalah 'xml' atau 'csv'. Standarnya adalah 'xml'. + + + Exports the content of a database to standard output in the specified format. + Ekspor konten dari basis data ke keluaran standar dalam format yang ditentukan. + + + Unable to export database to XML: %1 + Tidak bisa mengekspor basis data ke XML: %1 + + + Unsupported format %1 + Format tidak didukung %1 + + + Length of the generated password + Panjang dari sandi yang dibuat + + + length + panjang + + + Use lowercase characters + Gunakan karakter huruf kecil + + + Use uppercase characters + Gunakan karakter huruf besar + + + Use numbers + Gunakan angka + + + Use special characters + Gunakan karakter spesial + + + Use extended ASCII + Gunakan ASCII lanjutan + + + Exclude character set + Kecualikan karakter + + + chars + karakter + + + Use custom character set + Use custom character set + + + Exclude similar looking characters + Kecualikan karakter yang mirip + + + Include characters from every selected group + Sertakan karakter dari setiap grup yang dipilih + + + Generate a new random password. + Buat kata sandi baru secara acak. + + + Invalid password length %1 + Panjang sandi tidak valid %1 + + + Invalid password generator after applying all options + Invalid password generator after applying all options + + + Display command help. + Tampilkan bantuan perintah. + + + Available commands: + Perintah yang tersedia: + + + Import the contents of an XML database. + Impor konten dari basis data XML. + + + Path of the XML database export. + Jalur ke berkas XML hasil ekspor basis data. + + + Path of the new database. + Jalur dari basis data baru. + + + Unable to import XML database: %1 + Tidak bisa mengimpor basis data XML: %1 + + + Successfully imported database. + Berhasil mengimpor basis data. + Unknown command %1 Perintah tidak diketahui %1 @@ -7015,7 +7742,7 @@ Perintah yang tersedia: List database entries. - Daftar entri basisdata. + Daftar entri basis data. Path of the group to list. Default is / @@ -7027,15 +7754,15 @@ Perintah yang tersedia: Use the same credentials for both database files. - Gunakan kredensial yang sama untuk kedua berkas basisdata. + Gunakan kredensial yang sama untuk kedua berkas basis data. Key file of the database to merge from. - Berkas kunci dari basisdata yang akan digabungkan. + Berkas kunci dari basis data yang akan digabungkan. Deactivate password key for the database to merge from. - Nonaktifkan kunci kata sandi untuk menggabungkan basisdata. + Nonaktifkan kunci kata sandi untuk menggabungkan basis data. Only print the changes detected by the merge operation. @@ -7043,7 +7770,7 @@ Perintah yang tersedia: Yubikey slot for the second database. - Slot Yubikey untuk basisdata kedua. + Slot Yubikey untuk basis data kedua. slot @@ -7051,11 +7778,11 @@ Perintah yang tersedia: Merge two databases. - Gabungkan dua basisdata. + Gabungkan dua basis data. Path of the database to merge from. - Jalur sumber basisdata untuk digabungkan. + Jalur sumber basis data untuk digabungkan. Error reading merge file: @@ -7065,7 +7792,7 @@ Perintah yang tersedia: Unable to save database to file : %1 - Tidak bisa menyimpan basisdata ke berkas : %1 + Tidak bisa menyimpan basis data ke berkas : %1 Successfully merged %1 into %2. @@ -7073,7 +7800,7 @@ Perintah yang tersedia: Database was not modified by merge operation. - Basisdata tidak ada perubahan yang diakibatkan oleh proses penggabungan. + Basis Data tidak ada perubahan yang diakibatkan oleh proses penggabungan. Moves an entry to a new group. @@ -7101,7 +7828,7 @@ Perintah yang tersedia: Open a database. - Buka basisdata. + Buka basis data. Path of the entry to remove. @@ -7109,7 +7836,7 @@ Perintah yang tersedia: Unable to save database to file: %1 - Tidak bisa menyimpan basisdata ke berkas: %1 + Tidak bisa menyimpan basis data ke berkas: %1 Successfully recycled entry %1. @@ -7125,7 +7852,7 @@ Perintah yang tersedia: Cannot remove root group from database. - Tidak dapat menghapus grup root dari basisdata. + Tidak dapat menghapus grup root dari basis data. Successfully recycled group %1. @@ -7151,9 +7878,13 @@ Perintah yang tersedia: Show the protected attributes in clear text. Tampilkan atribut yang dilindungi dalam teks yang jelas. + + Show all the attributes of the entry. + Tampilkan semua atribut entri. + Show the attachments of the entry. - + Show the attachments of the entry. Names of the attributes to show. This option can be specified more than once, with each attribute shown one-per-line in the given order. If no attributes are specified, a summary of the default attributes is given. @@ -7177,23 +7908,23 @@ Perintah yang tersedia: No attachments present. - + No attachments present. Attachments: - + Attachments: Failed to open database file %1: not found - Gagal membuka berkas basisdata %1: tidak ditemukan + Gagal membuka berkas basis data %1: tidak ditemukan Failed to open database file %1: not a plain file - Gagal membuka berkas basisdata %1: bukan berkas biasa + Gagal membuka berkas basis data %1: bukan berkas biasa Failed to open database file %1: not readable - Gagal membuka berkas basisdata %1: tidak terbaca + Gagal membuka berkas basis data %1: tidak terbaca Enter password to unlock %1: @@ -7221,13 +7952,17 @@ Mohon buat berkas kunci yang baru saja. Invalid YubiKey serial %1 Serial YubiKey tidak valid %1 + + Please present or touch your YubiKey to continue. + Please present or touch your YubiKey to continue. + Enter password to encrypt database (optional): - Masukkan sandi untuk mengenkripsi basisdata (opsional): + Masukkan sandi untuk mengenkripsi basis data (opsional): Do you want to create a database with an empty password? [y/N]: - Apakah Anda ingin membuat basisdata dengan kata sandi kosong? [y/N]: + Apakah Anda ingin membuat basis data dengan kata sandi kosong? [y/N]: Repeat password: @@ -7244,7 +7979,8 @@ Mohon buat berkas kunci yang baru saja. All clipping programs failed. Tried %1 - + All clipping programs failed. Tried %1 + Creating KeyFile %1 failed: %2 @@ -7260,19 +7996,19 @@ Mohon buat berkas kunci yang baru saja. To use okon, you must provide a post-processed file (e.g. file.okon) - + To use okon, you must provide a post-processed file (e.g. file.okon) Could not start okon process: %1 - + Could not start okon process: %1 Error: okon process did not finish - + Error: okon process did not finish Failed to load okon processed database: %1 - + Failed to load okon processed database: %1 Very weak password @@ -7292,7 +8028,7 @@ Mohon buat berkas kunci yang baru saja. Password is used %1 time(s) - + Kata sandi telah digunakan %1 kali Password has expired @@ -7312,7 +8048,7 @@ Mohon buat berkas kunci yang baru saja. Password expires in %1 day(s) - + Kata sandi kedaluwarsa dalam %1 hari Password will expire soon @@ -7384,31 +8120,31 @@ Kernel: %3 %4 over %1 year(s) - + lebih dari %1 tahun about %1 month(s) - + sekitar %1 bulan %1 week(s) - + %1 minggu %1 day(s) - + %1 hari %1 hour(s) - + %1 jam %1 minute(s) - + %1 menit - Botan library must be at least 2.11.x, found %1.%2.%3 - + Botan library must be at least %1, found %2.%3.%4 + Pustaka Botan mesti setidaknya %1, ditemukan %2.%3.%4 Cryptographic libraries: @@ -7424,27 +8160,27 @@ Kernel: %3 %4 SymmetricCipher::init: Invalid cipher mode. - + SymmetricCipher::init: Invalid cipher mode. SymmetricCipher::init: Invalid IV size of %1 for %2. - + SymmetricCipher::init: Invalid IV size of %1 for %2. Cipher not initialized prior to use. - + Cipher not initialized prior to use. Cannot process 0 length data. - + Cannot process 0 length data. unknown executable (DBus address %1) - + unknown executable (DBus address %1) %1 (invalid executable path) - + %1 (invalid executable path) NULL device @@ -7496,11 +8232,11 @@ Kernel: %3 %4 AES-KDF (KDBX 3) - + AES-KDF (KDBX 3) Existing single-instance lock file is invalid. Launching new instance. - + Existing single-instance lock file is invalid. Launching new instance. The lock file could not be created. Single-instance mode disabled. @@ -7544,7 +8280,7 @@ Kernel: %3 %4 Benchmark %1 delay - + Benchmark %1 delay %1 ms @@ -7558,19 +8294,19 @@ Kernel: %3 %4 Do you really want to delete the entry "%1" for good? - Apakah anda yakin ingin menghapus entri "%1" untuk selamanya? + Apakah Anda yakin ingin menghapus entri "%1" untuk selamanya? Do you really want to delete %n entry(s) for good? - + Apakah Anda yakin ingin menghapus %n entri untuk selamanya? Delete entry(s)? - + Hapus masukan? Do you really want to move entry "%1" to the recycle bin? - Apakah anda yakin ingin memindahkan "%1" ke keranjang sampah? + Apakah Anda yakin ingin memindahkan "%1" ke keranjang sampah? Do you really want to move %n entry(s) to the recycle bin? @@ -7578,7 +8314,7 @@ Kernel: %3 %4 Move entry(s) to recycle bin? - + Pindahkan entri ke tempat sampah? Replace references to entry? @@ -7586,7 +8322,7 @@ Kernel: %3 %4 Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? - + Entri "%1" memiliki %2 rujukan. Anda ingin menimpa rujukan dengan nilai, lewatkan entri ini, atau hapus saja? User name @@ -7594,7 +8330,7 @@ Kernel: %3 %4 Browser Statistics - + Statistik Peramban Health Check @@ -7626,7 +8362,7 @@ Kernel: %3 %4 filenames of the password databases to open (*.kdbx) - nama berkas basisdata sandi untuk dibuka (*.kdbx) + nama berkas basis data sandi untuk dibuka (*.kdbx) path to a custom config file @@ -7638,32 +8374,32 @@ Kernel: %3 %4 lock all open databases - kunci semua basisdata yang terbuka + kunci semua basis data yang terbuka key file of the database - berkas kunci basisdata + berkas kunci basis data read password of the database from stdin - baca sandi basisdata dari stdin - - - allow app screen recordering and screenshots - + baca sandi basis data dari stdin Locked databases. - Basisdata terkunci. + Basis Data terkunci. Database failed to lock. - Basisdata gagal dikunci. + Basis Data gagal dikunci. Another instance of KeePassXC is already running. Aplikasi KeePassXC lainnya sudah berjalan. + + KeePassXC is not running. No open database to lock + KeePassXC tidak berjalan. Tidak ada database terbuka untuk dikunci + Fatal error while testing the cryptographic functions. Galat saat menguji fungsi kriptografi. @@ -7672,13 +8408,9 @@ Kernel: %3 %4 KeePassXC - Error KeePassXC - Galat - - Warning: Failed to prevent screenshots on a top level window! - Peringatan: Gagal mencegah tangkapan layar pada jendela tingkat atas! - Database password: - Sandi basisdata: + Sandi basis data: Invalid Settings @@ -7692,14 +8424,228 @@ Kernel: %3 %4 Failed to create Windows Hello credential. - + Failed to create Windows Hello credential. Failed to sign challenge using Windows Hello. + Failed to sign challenge using Windows Hello. + + + Warning: Failed to block screenshot capture on a top-level window. + Peringatan: Gagal memblokir tangkapan layar pada jendela tingkat atas. + + + Invalid Cipher + Cipher tidak valid + + + Invalid KDF + KDF tidak valid + + + Access to all entries is denied + Akses pada semua masukan ditolak + + + allow screenshots and app recording (Windows/macOS) + izinkan pencuplikan layar dan perekaman aplikasi (Windows/macOS) + + + Enter Shortcut - Please present or touch your YubiKey to continue. + Action + + + + Shortcuts + + + + Attestation not supported + + + + Credential is excluded + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Passkeys + + + + AES initialization failed + + + + AES encrypt failed + + + + Failed to store in Linux Keyring + + + + Polkit returned an error: %1 + + + + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + + + + Failed to init KeePassXC crypto. + Gagal menginisialisasi kripto KeePassXC. + + + Failed to encrypt key data. + Gagal mengenkripsi data kunci. + + + Failed to get Windows Hello credential. + Gagal mendapatkan kredensial Windows Hello. + + + Failed to decrypt key data. + Gagal mendekripsi data kunci. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7739,41 +8685,29 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - - - - Show only entries which have URL set - - - - Show only entries which have browser settings in custom data - - Double-click entries to edit. - + Double-click entries to edit. List of entry URLs - + List of entry URLs Entry has no URLs set - + Entry has no URLs set Allowed URLs - + Allowed URLs Entry has no Browser Integration settings - + Entry has no Browser Integration settings Denied URLs - + Denied URLs (Excluded) @@ -7785,11 +8719,11 @@ Kernel: %3 %4 Please wait, browser statistics is being calculated… - + Please wait, browser statistics is being calculated… No entries with a URL, or none has browser extension settings saved. - + No entries with a URL, or none has browser extension settings saved. Title @@ -7801,31 +8735,39 @@ Kernel: %3 %4 URLs - + URLs Edit Entry… - + Edit Entry… Delete Entry(s)… - + Hapus Masukan... Exclude from reports Kecualikan dari laporan - - - ReportsWidgetHealthcheck - Exclude expired entries from the report + Only show entries that have a URL - Also show entries that have been excluded from reports - Tampilkan juga entri yang telah dikecualikan dari laporan + Only show entries that have been explicitly allowed or denied + + + Show expired entries + + + + (Expired) + + + + + ReportsWidgetHealthcheck Hover over reason to show additional details. Double-click entries to edit. Layangi di atas alasan untuk menampilkan detail lanjutan. Klik dua kali pada entri untuk mengedit. @@ -7867,7 +8809,7 @@ Kernel: %3 %4 Please wait, health data is being calculated… - + Please wait, health data is being calculated… Congratulations, everything is healthy! @@ -7891,22 +8833,34 @@ Kernel: %3 %4 Edit Entry… - + Edit Entry… Delete Entry(s)… - + Hapus Masukan... Exclude from reports Kecualikan dari laporan + + Show expired entries + + + + Show entries that have been excluded from reports + + + + (Expired) + + ReportsWidgetHibp CAUTION: This report requires sending information to the Have I Been Pwned online service (https://haveibeenpwned.com). If you proceed, your database passwords will be cryptographically hashed and the first five characters of those hashes will be sent securely to this service. Your database remains secure and cannot be reconstituted from this information. However, the number of passwords you send and your IP address will be exposed to this service. - PERHATIAN: Laporan ini membutuhkan pengiriman informasi ke layanan online Have I Been Pwned (https://haveibeenpwned.com). Jika Anda melanjutkan, kata sandi basisdata Anda akan diacak secara kriptografis dan lima karakter pertama dari hash tersebut akan dikirim dengan aman ke layanan ini. Basisdata Anda tetap aman dan tidak dapat dibangun kembali dari informasi ini. Namun, jumlah kata sandi yang Anda kirim dan alamat IP Anda akan terpapar ke layanan ini. + PERHATIAN: Laporan ini membutuhkan pengiriman informasi ke layanan online Have I Been Pwned (https://haveibeenpwned.com). Jika Anda melanjutkan, kata sandi basis data Anda akan diacak secara kriptografis dan lima karakter pertama dari hash tersebut akan dikirim dengan aman ke layanan ini. Basis Data Anda tetap aman dan tidak dapat dibangun kembali dari informasi ini. Namun, jumlah kata sandi yang Anda kirim dan alamat IP Anda akan terpapar ke layanan ini. Perform Online Analysis @@ -7918,7 +8872,7 @@ Kernel: %3 %4 This build of KeePassXC does not have network functions. Networking is required to check your passwords against Have I Been Pwned databases. - Versi KeePassXC ini tidak memiliki fungsi konektivitas jaringan. Konektivitas jaringan diperlukan untuk memeriksa kata sandi Anda terhadap basisdata Have I Been Pwned. + Versi KeePassXC ini tidak memiliki fungsi konektivitas jaringan. Konektivitas jaringan diperlukan untuk memeriksa kata sandi Anda terhadap basis data Have I Been Pwned. Congratulations, no exposed passwords! @@ -7986,17 +8940,76 @@ Kernel: %3 %4 Edit Entry… - + Edit Entry… Delete Entry(s)… - + Hapus Masukan... Exclude from reports Kecualikan dari laporan + + ReportsWidgetPasskeys + + Export + Ekspor + + + Import + Impor + + + List of entry URLs + Daftar entri URL + + + Please wait, list of entries with Passkeys is being updated… + + + + No entries with Passkeys. + + + + Title + Judul + + + Path + Jalur + + + Username + Nama pengguna + + + URLs + URL + + + Edit Entry… + Edit Entri... + + + Delete Entry(s)… + Hapus Masukan... + + + Relying Party + + + + Show expired entries + + + + (Expired) + + + ReportsWidgetStatistics @@ -8013,11 +9026,11 @@ Kernel: %3 %4 Please wait, database statistics are being calculated… - + Please wait, database statistics are being calculated… Database name - Nama basisdata + Nama basis data Description @@ -8029,7 +9042,7 @@ Kernel: %3 %4 Database created - + Database created Last saved @@ -8049,7 +9062,7 @@ Kernel: %3 %4 The database was modified, but the changes have not yet been saved to disk. - Basisdata telah dimodifikasi, tetapi perubahan belum disimpan ke penyimpanan. + Basis Data telah dimodifikasi, tetapi perubahan belum disimpan ke penyimpanan. Number of groups @@ -8065,7 +9078,7 @@ Kernel: %3 %4 The database contains entries that have expired. - Basisdata berisi entri yang sudah kedaluwarsa. + Basis Data berisi entri yang sudah kedaluwarsa. Unique passwords @@ -8140,7 +9153,7 @@ Kernel: %3 %4 Key identity ownership conflict. Refusing to add. - + Key identity ownership conflict. Refusing to add. Agent refused this identity. Possible reasons include: @@ -8152,15 +9165,15 @@ Kernel: %3 %4 Restricted lifetime is not supported by the agent (check options). - + Restricted lifetime is not supported by the agent (check options). A confirmation request is not supported by the agent (check options). - + A confirmation request is not supported by the agent (check options). Security keys are not supported by the agent or the security key provider is unavailable. - + Security keys are not supported by the agent or the security key provider is unavailable. No agent running, cannot remove identity. @@ -8183,11 +9196,11 @@ Kernel: %3 %4 Every search term must match (ie, logical AND) - + Every search term must match (ie, logical AND) Modifiers - + Modifiers exclude term from results @@ -8195,11 +9208,11 @@ Kernel: %3 %4 match term exactly - + match term exactly use regex in term - + use regex in term Fields @@ -8207,19 +9220,19 @@ Kernel: %3 %4 Term Wildcards - + Term Wildcards match anything - + match anything match one - + match one logical OR - + logical OR Examples @@ -8236,10 +9249,14 @@ Kernel: %3 %4 Search Help Cari Bantuan + + Save Search + Simpan pencarian + Search (%1)… Search placeholder text, %1 is the keyboard shortcut - + Cari (%1)... Case sensitive @@ -8262,7 +9279,7 @@ Kernel: %3 %4 DBus Address - + DBus Address Manage @@ -8300,15 +9317,15 @@ Kernel: %3 %4 Show notification when passwords are retrieved by clients - + Show notification when passwords are retrieved by clients <html><head/><body><p>If enabled, any attempt to read a password must be confirmed. Otherwise, clients can read passwords without confirmation when the database is unlocked.</p><p>This option only covers the access to the password of an entry. Clients can always enumerate the items of exposed databases and query their attributes.</p></body></html> - + <html><head/><body><p>If enabled, any attempt to read a password must be confirmed. Otherwise, clients can read passwords without confirmation when the database is unlocked.</p><p>This option only covers the access to the password of an entry. Clients can always enumerate the items of exposed databases and query their attributes.</p></body></html> Confirm when passwords are retrieved by clients - + Confirm when passwords are retrieved by clients <html><head/><body><p><span style=" @@ -8316,11 +9333,15 @@ Kernel: %3 %4 Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">This setting does not override disabling recycle bin prompts</span></p></body></html> - + <html><head/><body><p><span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">This setting does + not override disabling recycle bin prompts</span></p></body></html> + Confirm when clients request entry deletion - + Confirm when clients request entry deletion <html><head/><body><p>This improves compatibility with certain applications @@ -8328,15 +9349,19 @@ Kernel: %3 %4 crash the client if the database can not be unlocked within a certain timeout. (Usually 25s, but may be a different value set in applications.)</p></body></html> - + <html><head/><body><p>This improves compatibility with certain applications + which search for password without unlocking the database first.</p><p>But enabling this may also + crash the client if the database can not be unlocked within a certain timeout. (Usually 25s, but may be a + different value set in applications.)</p></body></html> + Prompt to unlock database before searching - Tanya untuk membuka basisdata sebelum mencari + Tanya untuk membuka basis data sebelum mencari Exposed database groups: - Grup basisdata yang terekspos: + Grup basis data yang terekspos: Authorization @@ -8352,7 +9377,7 @@ Kernel: %3 %4 Save current changes to activate the plugin and enable editing of this section. - + Save current changes to activate the plugin and enable editing of this section. @@ -8387,7 +9412,7 @@ Kernel: %3 %4 Signer: - + Signer: Generate new certificate @@ -8414,14 +9439,14 @@ Kernel: %3 %4 ShareExport Could not write export container. - + Could not write export container. ShareImport Successful import - + Successful import @@ -8440,11 +9465,11 @@ Kernel: %3 %4 Multiple import source path to %1 in %2 - + Multiple import source path to %1 in %2 Conflicting export target path %1 in %2 - + Conflicting export target path %1 in %2 Export to %1 failed (%2) @@ -8459,11 +9484,38 @@ Kernel: %3 %4 Ekspor ke %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All - Semua + Clear Search + Hapus Pencarian + + + All Entries + Semua Entri Expired @@ -8471,7 +9523,26 @@ Kernel: %3 %4 Weak Passwords - + Kata Sandi Lemah + + + + TagView + + Remove Search + Hapus Pencarian + + + Remove Tag + Hapus Tag + + + Confirm Remove Tag + Konfirmasi Hapus Tag + + + Remove tag "%1" from all entries in this database? + Hapus tag "%1" dari semua entri di database ini? @@ -8529,15 +9600,15 @@ Kernel: %3 %4 Default settings (RFC 6238) - + Default settings (RFC 6238) Steam® settings - + Steam® settings Custom settings: - + Custom settings: Custom Settings @@ -8553,7 +9624,7 @@ Kernel: %3 %4 Time step field - + Time step field sec @@ -8602,7 +9673,7 @@ Contoh: JBSWY3DPEHPK3PXP Checking for updates… - + Checking for updates… Close @@ -8614,7 +9685,7 @@ Contoh: JBSWY3DPEHPK3PXP An error occurred when trying to retrieve update information, please try again later. - + An error occurred when trying to retrieve update information, please try again later. <strong>A new version is available.</strong><br/>KeePassXC %1 can be <a href="https://keepassxc.org/download/">downloaded here</a>. @@ -8622,107 +9693,68 @@ Contoh: JBSWY3DPEHPK3PXP You have the latest version of KeePassXC - + You have the latest version of KeePassXC WelcomeWidget Start storing your passwords securely in a KeePassXC database - Mulai menyimpan sandi Anda dengan aman di dalam basisdata KeePassXC - - - Create new database - Buat basisdata baru - - - Open existing database - Buka basisdata yang ada - - - Import from KeePass 1 - Impor dari KeePass 1 - - - Import from 1Password - Impor dari 1Password - - - Import from CSV - Impor dari CSV + Mulai menyimpan sandi Anda dengan aman di dalam basis data KeePassXC Recent databases - Basisdata baru-baru ini + Basis Data baru-baru ini Open a recent database - Buka basisdata terbaru + Buka basis data terbaru Welcome to KeePassXC %1 Selamat datang di KeePassXC %1 + + Create Database + + + + Open Database + + + + Import File + + WinUtils Invalid key code - + Invalid key code Global shortcut already registered to %1 - + Pintasan global telah didaftarkan ke %1 Could not register global shortcut - - - - - WindowsHello - - Failed to init KeePassXC crypto. - - - - Failed to encrypt key data. - - - - Failed to get Windows Hello credential. - - - - Failed to decrypt key data. - + Tidak bisa mendaftar pintasan global YubiKey - - %1 No interface, slot %2 - - General: - + Umum: Could not find interface for hardware key with serial number %1. Please connect it to continue. - + Could not find interface for hardware key with serial number %1. Please connect it to continue. YubiKeyEditWidget - - Refresh hardware tokens - Segarkan token perangkat keras - - - Refresh - Segarkan - Hardware key slot selection Pemilihan slot kunci perangkat keras @@ -8733,31 +9765,27 @@ Contoh: JBSWY3DPEHPK3PXP Selected hardware key slot does not support challenge-response! - + Selected hardware key slot does not support challenge-response! Challenge-Response - + Challenge-Response Add Challenge-Response - + Add Challenge-Response Change Challenge-Response - + Change Challenge-Response Remove Challenge-Response - + Remove Challenge-Response Challenge-Response set, click to change or remove - - - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - + Challenge-Response set, click to change or remove Detecting hardware keys… @@ -8767,31 +9795,24 @@ Contoh: JBSWY3DPEHPK3PXP No hardware keys detected Tidak mendeteksi kunci perangkat keras - - - YubiKeyInterface - %1 Invalid slot specified - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - - The YubiKey PCSC interface has not been initialized. - - - - Hardware key is currently in use. - + The YubiKey PCSC interface has not been initialized. Could not find or access hardware key with serial number %1. Please present it to continue. - + Could not find or access hardware key with serial number %1. Please present it to continue. Hardware key is locked or timed out. Unlock or re-present it to continue. @@ -8799,12 +9820,27 @@ Contoh: JBSWY3DPEHPK3PXP Hardware key was not found or is not configured. - + Hardware key was not found or is not configured. Failed to complete a challenge-response, the PCSC error code was: %1 + Failed to complete a challenge-response, the PCSC error code was: %1 + + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + Press + USB Challenge-Response Key interaction request + Tekan + + + Passive + USB Challenge-Response Key no interaction required + Pasif + YubiKeyInterfaceUSB @@ -8812,14 +9848,6 @@ Contoh: JBSWY3DPEHPK3PXP Unknown Tidak diketahui - - (USB) %1 [%2] Configured Slot - %3 - - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - - Press USB Challenge-Response Key interaction request @@ -8832,26 +9860,32 @@ Contoh: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. - - - - Hardware key is currently in use. - + The YubiKey USB interface has not been initialized. Could not find hardware key with serial number %1. Please plug it in to continue. - + Could not find hardware key with serial number %1. Please plug it in to continue. Hardware key timed out waiting for user interaction. - + Hardware key timed out waiting for user interaction. A USB error occurred when accessing the hardware key: %1 - + A USB error occurred when accessing the hardware key: %1 Failed to complete a challenge-response, the specific error was: %1 + Failed to complete a challenge-response, the specific error was: %1 + + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields diff --git a/share/translations/keepassxc_it.ts b/share/translations/keepassxc_it.ts index 271ac2a9a..b37fbe844 100644 --- a/share/translations/keepassxc_it.ts +++ b/share/translations/keepassxc_it.ts @@ -7,7 +7,7 @@ About - Informazioni + Info programma Report bugs at: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> @@ -31,11 +31,11 @@ <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">See Contributions on GitHub</a> - <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors"> vedere i contributi su GitHub</a> + <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors"> Contributi su GitHub</a> Debug Info - Informazioni di debug + Informazioni debug Include the following information whenever you report a bug: @@ -43,18 +43,18 @@ Copy to clipboard - Copia negli appunti + Copia negli Appunti AccessControlDialog KeePassXC - Access Request - KeePassXC - Richiesta di accesso + KeePassXC - Richiesta di accesso Non-existing/inaccessible executable path. Please double-check the client is legit. - Percorso eseguibile non esistente/inaccessibile. Si prega di ricontrollare che il client sia legittimo. + Percorso eseguibile non esistente/inaccessibile. Ricontrolla che il client sia legittimo. <html><head/><body><p><span style=" font-weight:600;">%1 </span>is requesting access to the following entries:</p></body></html> @@ -80,25 +80,25 @@ Details Dettagli + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Questa decisione verrà ricordata per tutta la durata mentre sia il client richiedente che KeePassXC sono in esecuzione. + Remember - Ricorda + Ricorda Allow Selected Consenti selezionati - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - La tua decisione verrà ricordata per tutta la durata mentre sia il client richiedente che KeePassXC sono in esecuzione. - Deny All && Future - Nega tutto && futuri + Nega tutto e futuri Allow All && &Future - Consenti tutto && &futuri + Consenti tutto e &futuri @@ -112,7 +112,7 @@ AgentSettingsWidget Enable SSH Agent integration - Abilitare l'integrazione dell'agente SSH + Abilita l'integrazione dell'agente SSH Use Pageant @@ -122,6 +122,10 @@ Use OpenSSH Usa OpenSSH + + Use both agents + Usa entrambi gli agenti + SSH_AUTH_SOCK override sostituire SSH_AUTH_SOCK @@ -144,16 +148,12 @@ No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. - Nessun collegamento SSH disponibile. Verificare che la variabile d'ambiente SSH_AUTH_SOCK esista oppure sovrascriverne il contenuto. + Nessun collegamento SSH disponibile. Verifica che la variabile d'ambiente SSH_AUTH_SOCK esista oppure sovrascriverne il contenuto. SSH Agent connection is working! La connessione dell'agente SSH sta funzionando! - - Use both agents - Utilizzare entrambi gli agenti - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security Sicurezza + + This setting cannot be enabled when minimize on unlock is enabled. + Questa impostazione non può essere abilitata quando è abilitata la riduzione a icona con lo sblocco. + Access error for config file %1 Errore di accesso per il file di configurazione %1 @@ -179,7 +183,7 @@ Text only - Solo testo + Solo icone Text beside icon @@ -195,7 +199,7 @@ Monochrome - Monocromatico + Monocromatica Monochrome (light) @@ -211,11 +215,11 @@ You must restart the application to set the new language. Would you like to restart now? - È necessario riavviare l'applicazione per impostare la nuova lingua. Vuoi riavviare ora? + Per impostare la nuova lingua è necessario riavviare l'applicazione. Vuoi riavviare ora? Reset Settings? - Ripristinare le impostazioni? + Vuoi ripristinare le impostazioni? Are you sure you want to reset all general and security settings to default? @@ -254,7 +258,11 @@ Remember previously used databases - Ricordare i database usati in precedenza + Ricorda i database usati in precedenza + + + recent files + file recenti Load previously open databases on startup @@ -262,11 +270,11 @@ Remember database key files and security dongles - Memorizzare i file di chiave del database e i dongle di sicurezza + Memorizza i file chiave del database e i dongle di sicurezza Check for updates at application startup once per week - Verificare la disponibilità di aggiornamenti all'avvio dell'applicazione una volta alla settimana + Verifica la disponibilità di aggiornamenti all'avvio dell'applicazione una volta alla settimana Include beta releases when checking for updates @@ -274,7 +282,7 @@ On database unlock, show entries that - Allo sblocco del database, mostra le voci che + Allo sblocco del database, visualizza le voci che have expired @@ -289,7 +297,7 @@ will expire within On database unlock, show entries that... - scadrà entro + scadranno entro File Management @@ -321,7 +329,7 @@ Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". - Specifica il percorso del file di backup del database. Le occorrenze di "{DB_FILENAME}" vengono sostituite con il nome del file del database salvato senza estensione. {TIME:<format>} viene sostituito con l'ora di backup, vedere https://doc.qt.io/qt-5/qdatetime.html#toString. <format>per impostazione predefinita, formatta la stringa "dd_MM_yyyy_hh-mm-ss". + Specifica il percorso del file di backup del database. Le occorrenze di "{DB_FILENAME}" vengono sostituite con il nome del file del database salvato senza estensione. {TIME:<format>} viene sostituito con l'ora di backup, vedi https://doc.qt.io/qt-5/qdatetime.html#toString. <format>per impostazione predefinita, formatta la stringa "dd_MM_yyyy_hh-mm-ss". {DB_FILENAME}.old.kdbx @@ -333,7 +341,7 @@ Use alternative saving method (may solve problems with Dropbox, Google Drive, GVFS, etc.) - Utilizzare un metodo di salvataggio alternativo (può risolvere problemi con Dropbox, Google Drive, GVFS, ecc.) + Usa un metodo di salvataggio alternativo (può risolvere problemi con Dropbox, Google Drive, GVFS, ecc.) Temporary file moved into place @@ -341,7 +349,7 @@ Directly write to database file (dangerous) - Scrittura diretta nel file di database (pericoloso) + Scrittura diretta nel file database (pericoloso) Entry Management @@ -369,11 +377,11 @@ Favicon download timeout: - Timeout scaricamento Favicon: + Timeout scaricamento favicon: Website icon download timeout in seconds - Timeout scaricamento icona sito Web in secondi + Timeout scaricamento icona sito web in secondi sec @@ -386,7 +394,7 @@ Toolbar button style - Stile pulsante della barra degli strumenti + Stile pulsante barra degli strumenti Movable toolbar @@ -402,19 +410,23 @@ (restart program to activate) - (riavviare il programma per attivare) + (per attivare riavvia il programma) Toolbar button style: Stile pulsanti della barra degli strumenti: + + Show passwords in color + Visualizza le password a colori + Use monospaced font for notes - Utilizzare un tipo di carattere monospazio per le note + Per le note usa una font a larghezza fissa Minimize instead of app exit - Minimizzare invece di uscire dall'app + Minimizza invece di uscire dall'applicazione Show a system tray icon @@ -422,19 +434,19 @@ Tray icon type - Tipo di icona vassoio + Tipo icona barra sistema Tray icon type: - Tipo di icona vassoio: + Tipo icona barra sistema: Hide window to system tray when minimized - Nascondi la finestra nell'area di notifica di sistema quando viene minimizzata + Quando viene minimizzata la finestra nascondila nell'area di notifica di sistema Reset settings to default… - Ripristina impostazioni predefinite… + Ripristina impostazioni predefinite... Auto-Type @@ -442,11 +454,11 @@ Use entry title to match windows for global Auto-Type - Usa il titolo della voce per la corrispondenza con le finestre per il completamento automatico globale + Per il completamento automatico globale per la corrispondenza con le finestre usa il titolo della voce Use entry URL to match windows for global Auto-Type - Usa URL della voce per la corrispondenza con le finestre per il completamento automatico globale + Per il completamento automatico globale per la corrispondenza con le finestre usa URL della voce Always ask before performing Auto-Type @@ -454,11 +466,11 @@ Hide expired entries from Auto-Type - Nascondere le voci scadute dalla digitazione automatica + Nascondi le voci scadute dalla digitazione automatica Re-lock previously locked database after performing Auto-Type - Blocca nuovamente un database precedentemente bloccato dopo aver completato l'Auto-Type + Blocca nuovamente un database precedentemente bloccato dopo il completamento automatico Auto-Type start delay: @@ -466,7 +478,7 @@ Global Auto-Type shortcut: - Scorciatoia globale per l'auto-completamento + Scorciatoia globale completamento automatico: Auto-type start delay milliseconds @@ -479,11 +491,11 @@ Auto-Type typing delay: - Ritardo del completamento automatico: + Ritardo completamento automatico: Global auto-type shortcut - Scorciatoia globale per il completamento automatico + Scorciatoia globale completamento automatico Auto-type character typing delay milliseconds @@ -502,7 +514,7 @@ Database lock timeout seconds - Secondi di timeout per il blocco del database + Secondi timeout blocco database sec @@ -524,7 +536,7 @@ Clipboard clear seconds - Secondi per la cancellazione degli appunti + Secondi cancellazione appunti Lock databases after inactivity of @@ -556,7 +568,7 @@ Use placeholder for empty password fields - Usa segnaposti per campi password vuoti + Usa segnaposti per campi password vuoti Hide passwords in the entry preview panel @@ -564,15 +576,15 @@ Hide entry notes by default - Nascondi le note della voce per impostazione predefinita + per impostazione predefinita nascondi le note della voce Move entries to recycle bin without confirmation - Spostare le voci nel cestino senza conferma + Sposta le voci nel cestino senza conferma Enable double click to copy the username/password entry columns - Abilitare il doppio clic per copiare le colonne di immissione nome utente/password + Abilita il doppio clic per copiare le colonne di immissione nome utente/password Privacy @@ -580,14 +592,18 @@ Use DuckDuckGo service to download website icons - Utilizzare il servizio DuckDuckGo per scaricare le icone del sito web + Per scaricare le icone del sito web usa il servizio DuckDuckGo + + + Hide TOTP in the entry preview panel + Nascondi TOTP nel pannello di anteprima della voce AutoType The requested Auto-Type sequence cannot be used due to an error: - Impossibile utilizzare la sequenza automatica richiesta a causa di un errore: + Impossibile usare la sequenza automatica richiesta a causa di un errore: Auto-Type Error @@ -599,11 +615,13 @@ KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. - KeePassXC richiede il permesso di Accessibilità per effettuare l'auto-completamento di livello base. Se hai già concesso il permesso, riavvia KeePassXC. + Per effettuare l'auto-completamento di livello base KeePassXC richiede il permesso di Accessibilità. Se hai già concesso il permesso, riavvia KeePassXC. KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. - KeePasssXC richiede il permesso di Accessibilità e di Registrazione Schermo per effettuare l'auto-completamento globale. La registrazione dello schermo è necessaria per usare il titolo della finestra al fine di trovare le voci corrispondenti. Se hai già concesso il permesso, riavvia KeePassXC. + Per effettuare il completamento automatico globale KeePasssXC richiede il permesso di Accessibilità e di Registrazione Schermo. +Per usare il titolo della finestra al fine di trovare le voci corrispondenti è necessaria la registrazione dello schermo. +Se hai già concesso il permesso, riavvia KeePassXC. Invalid entry provided @@ -625,6 +643,10 @@ Very long delay detected, max is %1: %2 Ritardo molto lungo rilevato, max è %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + La voce non ha l'attributo per PICKCHARS: %1 + Invalid conversion type: %1 Tipo di conversione non valido: %1 @@ -709,7 +731,7 @@ Double click a row to perform Auto-Type or find an entry using the search: - Fare doppio clic su una riga per eseguire la digitazione automatica o trovare una voce utilizzando la ricerca: + Doppio clic su una riga per eseguire la digitazione automatica o trovare una voce usando la ricerca: <p>You can use advanced search queries to find any entry in your open databases. The following shortcuts are useful:<br/> @@ -718,11 +740,11 @@ Ctrl+1 - Type username<br/> Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> - <p>È possibile utilizzare query di ricerca avanzate per trovare qualsiasi voce nei database aperti. Le seguenti scorciatoie sono utili:<br/>CTRL+F - Attiva/disattiva la ricerca nel database<br/>CTRL+1 - Digita nome utente<br/>Ctrl+2 - Digita password<br/>CTRL+3 - Digita TOTP<br/>CTRL+4 - Usa tastiera virtuale (solo Windows)</p> + <p>Per trovare qualsiasi voce nei database aperti è possibile usare query di ricerca avanzate . Sono utilile seguenti scorciatoie:<br/>CTRL+F - Attiva/disattiva ricerca nel database<br/>CTRL+1 - Digita nome utente<br/>Ctrl+2 - Digita password<br/>CTRL+3 - Digita TOTP<br/>CTRL+4 - Usa tastiera virtuale (solo Windows)</p> Search all open databases - Cercare in tutti i database aperti + Cerca in tutti i database aperti Search… @@ -730,7 +752,7 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Type Sequence - Digitare la sequenza + Digita la sequenza Cancel @@ -738,7 +760,7 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Type {USERNAME} - Digitare {USERNAME} + Digita {USERNAME} Type {PASSWORD} @@ -781,7 +803,7 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Remember - Ricorda + Ricorda Allow access to entries @@ -799,13 +821,13 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Disable for this site Disabilita per questo sito + + Undo + Ripristina + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - Voce di salvataggio del browser KeePassXC - Ok Ok @@ -817,65 +839,106 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> You have multiple databases open. Please select the correct database for saving credentials. - C'è più di un database aperto -Selezionare il database corretto dove salvare le credenziali + C'è più di un database aperto. +Seleziona il database corretto dove salvare le credenziali. + + + KeePassXC - Select Database + KeePassXC - seleziona database + + + + BrowserPasskeysConfirmationDialog + + Cancel + Annulla + + + Update + Aggiorna + + + Authenticate + Autentica + + + Register new + Registra nuovo + + + Register + Registra + + + Timeout in <b>%n</b> seconds... + Timeout in <b>%n</b> secondo…Timeout in <b>%n</b> secondi…Timeout in <b>%n</b> secondi... + + + Do you want to register Passkey for: + Vuoi registrare la passkey per: + + + Existing Passkey found. +Do you want to register a new Passkey for: + Passkey esistente trovata. +Vuoi registrare una nuova passkey per: + + + Select the existing Passkey and press Update to replace it. + Seleziona la passkey esistente e premi Aggiorna per sostituirla. + + + Authenticate Passkey credentials for: + Autentica credenziali passkey per: + + + Relying Party: %1 + Relying Party: %1 + + + Username: %1 + Nome utente: %1 + + + KeePassXC - Passkey credentials + KeePassXC - credenziali passkey BrowserService - - KeePassXC: Create a new group - KeePassXC: Creare un nuovo gruppo - A request for creating a new group "%1" has been received. Do you want to create this group? È stata ricevuta una richiesta di creazione di un nuovo gruppo "%1". -Si desidera creare questo gruppo? +Vuoi creare questo gruppo? - - KeePassXC: New key association request - KeePassXC: nuova richiesta di associazione chiave - You have received an association request for the following database: %1 Give the connection a unique name or ID, for example: chrome-laptop. - Hai ricevuto una richiesta di associazione per il segguente database: + Hai ricevuto una richiesta di associazione per il seguente database: %1 Assegnagli un nome univoco o un ID, per esempio: -laptop-chrome +laptop-chrome. Save and allow access Salva e permetti l'accesso - - KeePassXC: Overwrite existing key? - KeePassXC: Vuoi sovrascrivere la chiave esistente? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? - Esiste già una chiave crittografica condivisa con il nome "%1"- Vuoi sovrascriverla? - - - KeePassXC: Update Entry - KeePassXC: aggiorna voce + Esiste già una chiave di cifratura condivisa con il nome "%1"- Vuoi sovrascriverla? Do you want to update the information in %1 - %2? Vuoi aggiornare le informazioni in %1 - %2? - - KeePassXC: Delete entry - KeePassXC: Elimina voce - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -885,50 +948,46 @@ Vuoi eliminare questa voce? - Converting attributes to custom data… - Conversione di attributi in dati personalizzati in corso… + %1 (Passkey) + %1 (Passkey) - Abort - Interrompi + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + La voce ha già una passkey. +Vuoi sovrascrivere la passkey in %1 - %2? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: attributi KeePassHTTP convertiti + KeePassXC - Create a new group + KeePassXC - crea un nuovo gruppo - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Attributi convertiti correttamente da %1 voce(i). -Sono stati spostati %2 chiavi nei dati personalizzati. - - - Successfully moved %n keys to custom data. - Sono stati spostati %n chiavi in dati personalizzati.Sono state spostate %n chiavi in dati personalizzati. + Disable + Disabilita - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Nessuna voce trovata con gli attributi KeePassHTTP! + KeePassXC - Overwrite existing key? + KeePassXC - sovrascrivere la chiave esistente? - The active database does not contain an entry with KeePassHTTP attributes. - Il database attivo non contiene una voce con attributi KeePassHTTP. + KeePassXC - Update Passkey + KeePassXC - aggiorna passkey - Don't show this warning again - Non mostrare nuovamente questo avviso + KeePassXC - Update Entry + KeePassXC - aggiorna voce - KeePassXC: Legacy browser integration settings detected - KeePassXC: rilevate le impostazioni di integrazione del browser legacy + KeePassXC - Delete entry + KeePassXC - elimina voce - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Le impostazioni di KeePassXC-Browser devono essere spostate nelle impostazioni del database. -Ciò è necessario per mantenere le connessioni del browser corrente. -Si desidera eseguire ora la migrazione delle impostazioni esistenti? + KeePassXC - New key association request + KeePassXC: nuova associazione di chiave richiesta + + + Passkey + @@ -939,11 +998,11 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? This is required for accessing your databases with KeePassXC-Browser - Questo è necessario per accedere al tuo database con KeePassXC-Browser + Questo è necessario per accedere al database con KeePassXC-Browser Enable browser integration - Abilitare l'integrazione del browser + Abilita l'integrazione del browser General @@ -955,7 +1014,7 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? Enable integration for these browsers: - Abilita l'integrazione per i seguenti browser: + Abilita integrazione per i seguenti browser: Vivaldi @@ -988,7 +1047,7 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? Show a notification when credentials are requested Credentials mean login data requested via browser extension - Mostra una notifica quando le credenziali sono richieste + Visualizza una notifica quando le credenziali sono richieste Request to unlock the database if it is locked @@ -1000,11 +1059,11 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? Match URL scheme (e.g., https://example.com) - Corrispondenza dello schema URL (ad esempio, https://example.com) + Corrispondenza dello schema URL (ad es., https://esempio.com) Only returns the best matches for a specific URL instead of all entries for the whole domain. - Restituisci solo le corrispondenze migliori per un'URL specifica invece di tutte le voci per l'intero dominio. + Restituisci solo le corrispondenze migliori per una URL specifica invece di tutte le voci per l'intero dominio. Return only best-matching credentials @@ -1044,7 +1103,7 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? Do not ask permission for HTTP Basic Auth An extra HTTP Basic Auth setting - Non chiedere l'autorizzazione per l'autenticazione HTTP e basic + Non chiedere l'autorizzazione per l'autenticazione semplice HTTP Automatically creating or updating string fields is not supported. @@ -1056,7 +1115,7 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? Don't display the popup suggesting migration of legacy KeePassHTTP settings. - Non visualizzare il popup che suggerisce la migrazione delle impostazioni KeePassHTTP legacy. + Non visualizzare la finestra a comparsa che suggerisce la migrazione delle impostazioni KeePassHTTP obsolete. Do not prompt for KeePassHTTP settings migration. @@ -1064,7 +1123,7 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup. - Aggiorna automaticamente all'avvio il percorso dei binari di KeePassXC o keepassxc-proxy per gli script di messaggistica nativa + Aggiorna automaticamente all'avvio il percorso dei binari di KeePassXC o keepassxc-proxy per gli script di messaggistica nativa. Update native messaging manifest files at startup @@ -1072,12 +1131,12 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? Use a custom proxy location if you installed a proxy manually. - Usa un indirizzo proxy personalizzato se hai installato manualmente un proxy + Usa un indirizzo proxy personalizzato se hai installato manualmente un proxy. Use a custom proxy location: Meant is the proxy for KeePassXC-Browser - Utilizza un proxy personalizzato + Usa un proxy personalizzato: Custom proxy location field @@ -1085,7 +1144,7 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? Browser for custom proxy file - Browser per file proxy personalizzato + Browser file proxy personalizzato Browse… @@ -1094,7 +1153,7 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? Use a custom browser configuration location: - Usare un percorso personalizzato per la configurazione del browser: + Usa percorso personalizzato configurazione browser: Browser type: @@ -1102,7 +1161,7 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? Toolbar button style - Stile pulsante della barra degli strumenti + Stile pulsante barra degli strumenti Config Location: @@ -1114,7 +1173,7 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? Browse for custom browser path - Cerca un percorso personalizzato per il browser + Cerca percorso personalizzato browser Custom extension ID: @@ -1126,23 +1185,15 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 - A causa del sandboxing di Snap, è necessario eseguire uno script per abilitare l'integrazione del browser. <br />È possibile ottenere questo script da %1 + A causa del sandboxing di Snap, per abilitare l'integrazione del browser è necessario eseguire uno script. <br />È possibile ottenere questo script da %1 KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2 and %3. %4 - KeePassXC-Browser è necessario per far funzionare l'integrazione del browser. <br />Scaricarlo per %1, %2 e %3. %4 + Per far funzionare l'integrazione del browser KeePassXC-Browser. <br />Scaricarlo per %1, %2 e %3. %4 Please see special instructions for browser extension use below - Si prega di consultare le istruzioni speciali per l'uso dell'estensione del browser di seguito - - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Errore:</b> Il percorso personalizzato per il proxy non può essere trovato!<br/>L'estensione del browser NON PUO' LAVORARE senza l'utilizzo di un proxy. - - - <b>Warning:</b> The following options can be dangerous! - <b>Avviso:</b> le seguenti opzioni possono essere pericolose. + Per l'uso dell'estensione del browser di seguito consulta le istruzioni speciali Executable Files @@ -1154,11 +1205,43 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? Select custom proxy location - Selezionare una posizione personalizzata per il proxy + Seleziona una posizione personalizzata per il proxy Select native messaging host folder location - Selezionare il percorso per la cartella principale della messaggistica + Seleziona il percorso per la cartella principale della messaggistica + + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + Consenti a keepassxc-proxy di elencare tutte le voci con il loro titolo, URL e UUID nei database collegati. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + Consenti accesso limitato a tutte le voci nei database connessi (ignora le restrizioni di accesso al sito) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Avvertimento:</b> Regola queste impostazioni solo se necessario. + + + The custom proxy location does not exist. + Il percorso proxy personalizzato non esiste. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Errore:</b> Il percorso proxy personalizzato non esiste. Correggi questo problema nella scheda Impostazioni avanzate. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Errore:</b> L'eseguibile proxy installato non è presente nel percorso previsto: %1<br/>Impostare una posizione proxy personalizzata nelle impostazioni avanzate o reinstallare l'applicazione. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + @@ -1182,14 +1265,6 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? CsvImportWidget - - Import CSV fields - Importa campi CSV - - - filename - nomefile - size, rows, columns dimensione, righe, colonne @@ -1298,51 +1373,30 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti?Column %1 Colonna %1 - - Imported from CSV file - Importati da file CSV - - - Original data: - Dati originali: - - - Error(s) detected in CSV file! - Errore(i) rilevati nel file CSV! - [%n more message(s) skipped] - [%n altro messaggio saltato][altri %n messaggi saltati] + [%n altro messaggio saltato][altri %n messaggi saltati][altri %n messaggi saltati] - Error - Errore + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - Importazione CSV: lo scrittore ha errori: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n byte (s)%n byte(s) - %n row(s) - righe: %n%n riga(e) + CSV row count + righe: %n%n riga(e)%n riga(e) %n column(s) - %n colonna%n colonne + CSV column count + %n colonna%n colonne%n colonne @@ -1358,7 +1412,7 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? Unable to open file %1. - Impossibile aprire il file %1. + Impossibile aprire il file '%1'. Error while reading the database: %1 @@ -1370,7 +1424,7 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? Database save is already in progress. - Salvataggio del database già avviato + Salvataggio del database già avviato. Could not save, database has not been initialized! @@ -1378,7 +1432,7 @@ Si desidera eseguire ora la migrazione delle impostazioni esistenti? Database file has unmerged changes. - Il file di database ha apportato modifiche non unite. + Il file database ha apportato modifiche non unite. %1 @@ -1388,7 +1442,7 @@ Database di backup che si trova in %2 Key not transformed. This is a bug, please report it to the developers. - Chiave non trasformata. Questo è un bug, si prega di segnalarlo agli sviluppatori. + Chiave non trasformata. Questo è un bug, segnalalo agli sviluppatori. Recycle Bin @@ -1399,7 +1453,7 @@ Database di backup che si trova in %2 DatabaseOpenDialog Unlock Database - KeePassXC - Sbloccare Database - KeePassXC + Sblocca database - KeePassXC @@ -1416,60 +1470,22 @@ Database di backup che si trova in %2 Password field Campo password - - Enter Additional Credentials (if any): - Inserisci credenziali aggiuntive (se presenti): - - - Key File: - File chiave: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>Oltre a una password, è possibile utilizzare un file segreto per migliorare la sicurezza del database. Questo file può essere generato nelle impostazioni di sicurezza del database.</p><p>Questo non <strong>è il</strong> tuo file di database *.kdbx!<br>Se non si dispone di un file di chiave, lasciare vuoto questo campo.</p><p>Clicca per maggiori informazioni...</p> - - - Key file help - Aiuto relativo al file chiave - Hardware key slot selection Selezione degli slot dei tasti hardware - - Hardware Key: - Chiave hardware: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>È possibile utilizzare una chiave di protezione hardware, ad esempio <strong>YubiKey</strong> o <strong>OnlyKey</strong> con slot configurati per HMAC-SHA1.</p> -<p>Clicca per maggiori informazioni...</p> - - - Hardware key help - Guida alla chiave hardware - Key file to unlock the database File chiave per sbloccare il database Browse for key file - Cercare il file chiave + Seleziona file chiave Browse… Sfoglia… - - Refresh hardware tokens - Aggiornare i token hardware - - - Refresh - Aggiorna - Unlock Database Sblocca database @@ -1484,11 +1500,11 @@ Database di backup che si trova in %2 Please present or touch your YubiKey to continue… - Si prega di presentare o toccare il vostro YubiKey per continuare... + Per continuare presenta o tocca la YubiKey ... Database Version Mismatch - Versione del database non corrispondente + Versione database non corrispondente The database you are trying to open was most likely @@ -1504,7 +1520,7 @@ creato da una versione più recente di KeePassXC. Puoi provare ad aprirlo comunque, ma potrebbe essere incompleto e il salvataggio di qualsiasi modifica può comportare una perdita di dati. -Ti consigliamo di aggiornare la tua installazione di KeePassXC. +Ti consigliamo di aggiornare questa installazione di KeePassXC. Open database anyway @@ -1524,7 +1540,7 @@ Do you want to retry with an "empty" password instead? To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. Sblocco del database non riuscito e non è stata immessa una password. -Si desidera riprovare con una password "vuota"? +Vuoi riprovare con una password "vuota"? Per evitare che questo errore venga visualizzato, è necessario andare alle "Impostazioni database / Sicurezza" e reimpostare la password. @@ -1532,17 +1548,9 @@ Per evitare che questo errore venga visualizzato, è necessario andare alle &quo Retry with empty password Riprova con password vuota - - Failed to authenticate with Windows Hello - Impossibile eseguire l'autenticazione con Windows Hello - - - Failed to authenticate with Touch ID - Impossibile eseguire l'autenticazione con Touch ID - Failed to open key file: %1 - Impossibile aprire il file di chiave: %1 + Impossibile aprire il file chiave: %1 Old key file format @@ -1550,11 +1558,11 @@ Per evitare che questo errore venga visualizzato, è necessario andare alle &quo You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> - Stai utilizzando un vecchio formato di file chiave che KeePassXC può<br>smettere di supportare in futuro.<br><br>Prendere in considerazione la possibilità di generare un nuovo file di chiave andando a:<br><strong>Database &gt; Sicurezza database &gt; modificare il file di chiave.</strong><br> + Stai usando un vecchio formato di file chiave che KeePassXC può<br>smettere di supportare in futuro.<br><br>Prendi in considerazione la possibilità di generare un nuovo file chiave andando in:<br><strong>Database &gt; Sicurezza database &gt; Modifica file chiave.</strong><br> Don't show this warning again - Non mostrare nuovamente questo avviso + Non visualizzare nuovamente questo avviso All files @@ -1573,22 +1581,60 @@ Per evitare che questo errore venga visualizzato, è necessario andare alle &quo Impossibile usare il file database come file chiave - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Non puoi usare il tuo file database come file chiave. -Se non possiedi un file chiave, lascia vuoto questo campo. + authenticate to access the database + Per accedere al database esegui l'autenticazione - Detecting hardware keys… - Rilevamento delle chiavi hardware in corso… + Failed to authenticate with Quick Unlock: %1 + Autenticazione con Sblocco rapido fallita: %1 - No hardware keys detected - Nessuna chiave hardware rilevata + Select Key File: + - Select hardware key… - Seleziona chiave hardware… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1600,10 +1646,6 @@ Se non possiedi un file chiave, lascia vuoto questo campo. DatabaseSettingsDialog - - Advanced Settings - Impostazioni avanzate - General Generale @@ -1618,11 +1660,11 @@ Se non possiedi un file chiave, lascia vuoto questo campo. Encryption Settings - Impostazioni di crittografia + Impostazioni di cifratura Browser Integration - Integrazione con i browser + Integrazione browser Maintenance @@ -1635,25 +1677,17 @@ Se non possiedi un file chiave, lascia vuoto questo campo. KeePassXC-Browser settings Impostazioni di KeePassXC-Browser - - Convert KeePassHTTP data - Convertire i dati KeePassHTTP - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - Convertire gli attributi KeePassHTTP legacy in dati personalizzati compatibili con KeePassXC-Browser - - - Refresh database root group ID - Aggiornare l'ID gruppo radice del database - Disconnect all browsers Scollega tutti i browser Forget all site-specific settings on entries - Dimenticare tutte le impostazioni specifiche del sito nelle voci + Dimenticae tutte le impostazioni specifiche del sito nelle voci + + + Refresh database root group ID + Aggiorna l'ID gruppo radice del database Stored keys @@ -1665,7 +1699,7 @@ Se non possiedi un file chiave, lascia vuoto questo campo. Remove selected key - Rimuovere la chiave selezionata + Rimuovi chiave selezionata Remove @@ -1673,13 +1707,13 @@ Se non possiedi un file chiave, lascia vuoto questo campo. Delete the selected key? - Eliminare la chiave selezionata? + Vuoi eliminare la chiave selezionata? Do you really want to delete the selected key? This may prevent connection to the browser plugin. Vuoi davvero eliminare la chiave selezionata? -Ciò potrebbe impedire la connessione al plug-in del browser. +Questo potrebbe impedire la connessione al plug-in del browser. Key @@ -1695,70 +1729,44 @@ Ciò potrebbe impedire la connessione al plug-in del browser. Enable Browser Integration to access these settings. - Abilita l'integrazione con i browser per accedere a queste impostazioni. + Per accedere a queste impostazioni abilita l'integrazione browser. Do you really want to disconnect all browsers? This may prevent connection to the browser plugin. Vuoi davvero scollegare tutti i browser? -Ciò potrebbe impedire la connessione al plug-in del browser. - - - KeePassXC: No keys found - KeePassXC: nessuna chiave trovata +Questo potrebbe impedire la connessione al plug-in del browser. No shared encryption keys found in KeePassXC settings. - Nessuna chiave di crittografia condivisa trovata nelle impostazioni KeePassXC. - - - KeePassXC: Removed keys from database - KeePassXC: chiavi rimosse dal database + Nessuna chiave di cifratura condivisa trovata nelle impostazioni KeePassXC. Successfully removed %n encryption key(s) from KeePassXC settings. - Rimossa con successo %n chiave di cifratura dalle impostazioni di KeePassXC. Rimosse con successo %n chiavi di cifratura dalle impostazioni di KeePassXC. + Rimossa con successo %n chiave di cifratura dalle impostazioni di KeePassXC. Rimosse con successo %n chiavi di cifratura dalle impostazioni di KeePassXC. Rimosse con successo %n chiavi di cifratura dalle impostazioni di KeePassXC. Do you really want forget all site-specific settings on every entry? Permissions to access entries will be revoked. Vuoi davvero dimenticare tutte le impostazioni specifiche del sito su ogni voce? -Le autorizzazioni per accedere alle voci verranno revocate. +Verranno revocate le autorizzazioni per accedere alle voci. Removing stored permissions… - Rimozione dei permessi salvati… + Rimozione dei permessi salvati... Abort Interrompi - - KeePassXC: Removed permissions - KeePassXC: permessi rimossi - Successfully removed permissions from %n entry(s). - Permessi rimossi con successo da %n voce.Permessi rimossi con successo da %n voci. - - - KeePassXC: No entry with permissions found! - KeePassXC: nessuna voce con permessi trovata! + Permessi rimossi con successo da %n voce.Permessi rimossi con successo da %n voci.Permessi rimossi con successo da %n voci. The active database does not contain an entry with permissions. Il database attivo non contiene una voce con permessi. - - Move KeePassHTTP attributes to custom data - Spostare gli attributi KeePassHTTP in dati personalizzati - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Vuoi davvero convertire tutti i dati di integrazione del browser legacy allo standard più recente? -Questo è necessario per mantenere la compatibilità con il plug-in del browser. - Refresh database ID Aggiorna ID database @@ -1766,8 +1774,28 @@ Questo è necessario per mantenere la compatibilità con il plug-in del browser. Do you really want refresh the database ID? This is only necessary if your database is a copy of another and the browser extension cannot connect. - Si vuole davvero aggiornare l'ID del database? -Questo è necessario solo se il database è una copia e l'estensione del browser non riesce a connettersi. + Vuoi davvero aggiornare l'ID del database? +Questo è necessario solo se il database è una copia e l'estensione del browser non riesce a connettersi. + + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Convertire gli attributi KeePassHTTP obsoleti in dati personalizzati compatibili con KeePassXC-Browser + + + No keys found + Nessuna chiave trovata + + + Removed keys from database + Rimuovi chiavi dal database + + + Removed permissions + Permessi rimossi + + + No entry with permissions found! + Nessuna voce con permessi trovata! @@ -1784,9 +1812,9 @@ Questo è necessario solo se il database è una copia e l'estensione del br WARNING! You have not set a password. Using a database without a password is strongly discouraged! Are you sure you want to continue without a password? - ATTENZIONE! Non è stata impostata una password. Utilizzare un database senza password è fortemente sconsigliato! + ATTENZIONE! Non è stata impostata una password. Usare un database senza password è fortemente sconsigliato! -Siete sicuri di voler continuare senza password? +Vuoi continuare senza password? Continue without password @@ -1794,11 +1822,11 @@ Siete sicuri di voler continuare senza password? No encryption key added - Nessuna chiave di crittografia aggiunta + Nessuna chiave di cifratura aggiunta You must add at least one encryption key to secure your database! - Bisogna aggiungere almeno un'altra chiave di cifratura per rendere sicuro il database. + Per rendere sicuro il database devi aggiungere almeno un'altra chiave di cifratura! Unknown error @@ -1808,24 +1836,28 @@ Siete sicuri di voler continuare senza password? Failed to change database credentials Impossibile modificare le credenziali del database + + Weak password + Password debole + + + You must enter a stronger password to protect your database. + Devi inserire una password più forte per proteggere il database. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + Questa è una password debole. Per una maggiore protezione dei segreti, dovresti scegliere una password più forte. + DatabaseSettingsWidgetEncryption Decryption Time: - Tempo di de-crittografia: - - - Change existing decryption time - Modificare il tempo di decrittografia esistente - - - Change - Modifica + Tempo di decifratura: Decryption time in seconds - Tempo di decrittografia in secondi + Tempo di decifratura in secondi Higher values offer more protection, but opening the database will take longer. @@ -1833,7 +1865,7 @@ Siete sicuri di voler continuare senza password? Database format: - Formato di database: + Formato database: Database format @@ -1841,11 +1873,11 @@ Siete sicuri di voler continuare senza password? Format cannot be changed: Your database uses KDBX 4 features - Il formato non può essere cambiato: Il tuo database utilizza le caratteristiche di KDBX 4 + Il formato non può essere cambiato: il database usa le caratteristiche di KDBX 4 Unless you need to open your database with other programs, always use the latest format. - A meno che non abbia bisogno di aprire il tuo database con altri programmi, usa sempre l'ultimo formato. + A meno che non abbia bisogno di aprire il database con altri programmi, usa sempre l'ultimo formato. Encryption Algorithm: @@ -1853,11 +1885,11 @@ Siete sicuri di voler continuare senza password? Encryption algorithm - Algoritmo di crittografia + Algoritmo di cifratura AES: 256 Bit (default) - AES: 256 Bit (impostazione predefinita) + AES: 256 Bit (predefinito) Twofish: 256 Bit @@ -1903,11 +1935,6 @@ Siete sicuri di voler continuare senza password? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - invariato - Number of rounds too high Key transformation rounds @@ -1917,7 +1944,7 @@ Siete sicuri di voler continuare senza password? You are using a very high number of key transform rounds with Argon2. If you keep this number, your database may take hours, days, or even longer to open. - Con Argon2 si utilizza un numero molto elevato di turni di trasformazione chiave. + Con Argon2 si usa un numero molto elevato di turni di trasformazione chiave. Se si mantiene questo numero, l'apertura del database potrebbe richiedere ore, giorni o anche più tempo. @@ -1938,7 +1965,7 @@ Se si mantiene questo numero, l'apertura del database potrebbe richiedere o You are using a very low number of key transform rounds with AES-KDF. If you keep this number, your database will not be protected from brute force attacks. - Con AES-KDF si utilizza un numero molto basso di turni di trasformazione chiave. + Con AES-KDF si usa un numero molto basso di turni di trasformazione chiave. Se si mantiene questo numero, il database non sarà protetto da attacchi di forza bruta. @@ -1948,17 +1975,29 @@ Se si mantiene questo numero, il database non sarà protetto da attacchi di forz Failed to transform key with new KDF parameters; KDF unchanged. - La trasformazione della chiave con i nuovi parametri KDF e' fallita; KDF immutato + La trasformazione della chiave con i nuovi parametri KDF non è riuscita; KDF immutato. MiB Abbreviation for Mebibytes (KDF settings) - MiB MiB + MiB MiB MiB thread(s) Threads for parallel execution (KDF settings) - iscritto (i)thread(s) + threadthreadthread + + + Encryption Settings: + Impostazioni di crittografia: + + + Basic + Base + + + Advanced + Avanzate @@ -1977,7 +2016,7 @@ Se si mantiene questo numero, il database non sarà protetto da attacchi di forz Enable Secret Service to access these settings. - Consentire ai Servizi Segreti di accedere a queste impostazioni. + Consenti ai servizi segreti di accedere a queste impostazioni. @@ -2018,18 +2057,10 @@ Se si mantiene questo numero, il database non sarà protetto da attacchi di forz Maximum number of history items per entry Numero massimo di elementi della cronologia per voce - - Max. history items: - Oggetti max. nella cronologia: - Maximum size of history per entry Dimensione massima della cronologia per voce - - Max. history size: - Grandezza max. cronologia: - MiB MB @@ -2053,12 +2084,70 @@ Se si mantiene questo numero, il database non sarà protetto da attacchi di forz Do you want to delete the current recycle bin and all its contents? This action is not reversible. - Vuoi eliminare il cestino corrente e tutto il suo contenuto? + Vuoi eliminare il cestino attuale e tutto il suo contenuto? Questa azione non è reversibile. (old) - (vecchio) + (vecchio) + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + Quando si salva questa impostazione o si modifica una voce +gli elementi della cronologia più vecchi di una voce saranno +rimossi in modo tale che solo il numero specificato +delle voci rimanga. + + + Limit the amount of history items per entry to: + Limita la quantità elementi cronologia per voce a: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + Quando si salva questa impostazione o si modifica una voce +gli elementi della cronologia più vecchi di una voce saranno +rimossi in modo tale che gli elementi rimanenti della cronologia +si accumulino fino al numero specificato. + + + Limit the total size of history items per entry to: + Limita la dimensione totale elementi cronologia per voce a: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Sposta le voci in un gruppo Cestino +invece di eliminarli dal database. +Le voci eliminate dal cestino sono +rimosse dal database. + + + Autosave delay since last change + Intervallo di salvataggio automatico dall'ultimo cambiamento + + + Autosave delay + Intervallo di salvataggio automatico + + + Autosave delay since last change in minutes + Intervallo di salvataggio automatico dall'ultimo cambiamento in minuti + + + min + min + + + Autosave delay since last change checkbox + Casella di controllo per l'intervallo di salvataggio automatico dall'ultimo cambiamento @@ -2090,7 +2179,7 @@ Questa azione non è reversibile. > Breadcrumb separator - > + > @@ -2101,15 +2190,15 @@ Questa azione non è reversibile. Delete selected icon(s) - Eliminare le icone selezionate + Elimina icone selezionate Delete all custom icons not in use by any entry or group - Eliminare tutte le icone personalizzate non utilizzate da alcuna voce o gruppo + Elimina tutte le icone personalizzate non usate da alcuna voce o gruppo Purge unused icons - Eliminare le icone inutilizzate + Elimina icone non usate Confirm Deletion @@ -2117,7 +2206,7 @@ Questa azione non è reversibile. At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? - Almeno una delle icone selezionate è attualmente in uso da almeno una voce o gruppo. Le icone di tutte le voci e i gruppi interessati verranno sostituite dall'icona predefinita. Eliminare le icone attualmente in uso? + Almeno una delle icone selezionate è attualmente in uso da almeno una voce o gruppo. Le icone di tutte le voci e i gruppi interessati verranno sostituite dall'icona predefinita. Vuoi eliminare le icone attualmente in uso? Custom Icons Are In Use @@ -2125,15 +2214,15 @@ Questa azione non è reversibile. All custom icons are in use by at least one entry or group. - Tutte le icone personalizzate sono utilizzate da almeno una voce o gruppo. + Tutte le icone personalizzate sono usate da almeno una voce o gruppo. Purged Unused Icons - Icone non utilizzate eliminate + Icone non usate eliminate Purged %n icon(s) from the database. - Eliminata %n icona dal database.Eliminate %n icone dal database. + Eliminata %n icona dal database.Eliminate %n icone dal database.Eliminate %n icone dal database. @@ -2165,7 +2254,7 @@ Questa azione non è reversibile. The created database has no key or KDF, refusing to save it. This is definitely a bug, please report it to the developers. Il database creato non ha chiave o KDF, rifiutando di salvarlo. -Questo è sicuramente un bug, si prega di segnalarlo agli sviluppatori. +Questo è sicuramente un bug, segnalalo agli sviluppatori. KeePass 2 Database @@ -2181,32 +2270,16 @@ Questo è sicuramente un bug, si prega di segnalarlo agli sviluppatori. Failed to open %1. It either does not exist or is not accessible. - Impossibile aprire %1. Non esiste o non è accessibile. + Impossibile aprire '%1'. Non esiste o non è accessibile. CSV file File CSV - - Select CSV file - Selezionare il file CSV - Merge database Unisci database - - KeePass 1 database - Database KeePass 1 - - - Open KeePass 1 database - Apri database KeePass 1 - - - Open OPVault - Apri OPVault - Export database to CSV file Esporta database come file CSV @@ -2219,22 +2292,25 @@ Questo è sicuramente un bug, si prega di segnalarlo agli sviluppatori.Writing the HTML file failed. Scrittura del file HTML non riuscita. + + Export database to XML file + Esporta il database in un file XML + + + XML file + File XML + + + Writing the XML file failed + Scrittura del file XML non riuscita + Export Confirmation Conferma esportazione You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - Si sta per esportare il database in un file non crittografato. Questo lascerà le password e le informazioni sensibili vulnerabili! Sei sicuro di voler continuare? - - - New Database - Nuovo Database - - - %1 [New Database] - Database tab name modifier - %1 [nuovo database] + Stai per esportare il database in un file non cifrato. Questo lascerà le password e le informazioni sensibili vulnerabili! Sei sicuro di voler continuare? %1 [Locked] @@ -2245,8 +2321,8 @@ Questo è sicuramente un bug, si prega di segnalarlo agli sviluppatori. DatabaseWidget - Database Tags - Etichette del database + Searches and Tags + Ricerche ed etichette Searching… @@ -2286,16 +2362,20 @@ Questo è sicuramente un bug, si prega di segnalarlo agli sviluppatori. Move group to recycle bin? - Cestinare il gruppo? + Vuoi spostare il gruppo nel cestino? Do you really want to move the group "%1" to the recycle bin? - Vuoi davvero cestinare il gruppo "%1"? + Vuoi davvero spostare il gruppo "%1" nel cestino? Expired entries Voci scadute + + Entries expiring within %1 day(s) + Voci che scadono entro %1 giorno(i)Voci che scadono entro %1 giorno(i)Voci che scadono entro %1 giorno(i) + No current database. Nessun database attuale. @@ -2306,7 +2386,7 @@ Questo è sicuramente un bug, si prega di segnalarlo agli sviluppatori. Successfully merged the database files. - I file di database sono uniti correttamente. + I file database sono stati uniti correttamente. Database was not modified by merge operation. @@ -2320,13 +2400,25 @@ Questo è sicuramente un bug, si prega di segnalarlo agli sviluppatori.No Results Nessun risultato + + Save + Salva + + + Enter a unique name or overwrite an existing search from the list: + Inserisci un nome univoco o sovrascrivi una ricerca esistente dall'elenco: + + + Save Search + Salva ricerca + Lock Database? - Bloccare il database? + Vuoi bloccare il database? You are editing an entry. Discard changes and lock anyway? - Si sta modificando una voce. Eliminare le modifiche e bloccare comunque? + Sta modificando una voce. Vuoi eliminare le modifiche e bloccare comunque? "%1" was modified. @@ -2338,11 +2430,11 @@ Vuoi salvare le modifiche? Database was modified. Save changes? Il database è stato modificato. -Salvare le modifiche? +Vuoi salvare le modifiche? Save changes? - Salvare le modifiche? + Vuoi salvare le modifiche? File has changed @@ -2359,13 +2451,13 @@ Salvare le modifiche? The database file has changed and you have unsaved changes. Do you want to merge your changes? - Il file del database e' stato cambiato e ci sono cambiamenti non salvati -Vuoi fondere i cambiamenti? + Il file del database è stato cambiato e ci sono cambiamenti non salvati +Vuoi unire le modifiche? Could not open the new database file while attempting to autoreload. Error: %1 - Impossibile aprire il nuovo file di database durante il tentativo di ricaricamento. + Impossibile aprire il nuovo file database durante il tentativo di ricaricamento. Errore: %1 @@ -2375,8 +2467,8 @@ Errore: %1 KeePassXC has failed to save the database multiple times. This is likely caused by file sync services holding a lock on the save file. Disable safe saves and try again? - Nonostante ripetuti tentativi, KeePassXC non è riuscito a salvare il database. Probabilmente la causa risiede in un file di lock bloccato da qualche servizio di sincronizzazione file. -Disabilitare i salvataggi sicuri e riprovare? + Nonostante ripetuti tentativi, KeePassXC non è riuscito a salvare il database. Probabilmente la causa risiede in un file bloccato da qualche servizio di sincronizzazione file. +Vuoi disabilitare i salvataggi sicuri e riprovare? Writing the database failed: %1 @@ -2396,11 +2488,11 @@ Disabilitare i salvataggi sicuri e riprovare? Save database backup - Salva il backup del database + Salva backup database Empty recycle bin? - Svuotare il cestino? + Vuoi svuotare il cestino? Are you sure you want to permanently delete everything from your recycle bin? @@ -2408,11 +2500,16 @@ Disabilitare i salvataggi sicuri e riprovare? Could not find database file: %1 - Impossibile trovare il file di database: %1 + Impossibile trovare il file database: %1 - - Entries expiring within %1 day(s) - Voci che scadono entro %1 giorno(i)Voci che scadono entro %1 giorno(i) + + New Database + Nuovo database + + + %1 [New Database] + Database tab name modifier + %1 [nuovo database] @@ -2435,7 +2532,7 @@ Disabilitare i salvataggi sicuri e riprovare? Browser Integration - Integrazione con i browser + Integrazione browser <empty URL> @@ -2529,7 +2626,7 @@ Vuoi correggerla? Would you like to save changes to this entry? - Salvare le modifiche a questa voce? + Vuoi salvare le modifiche a questa voce? New attribute @@ -2549,27 +2646,27 @@ Vuoi correggerla? [PROTECTED] Press Reveal to view or edit - [PROTETTO] Premere Mostra per visualizzare o modificare + [PROTETTO] Seleziona 'Visualizza' per visualizzare o modificare Hide Nascondi + + %n hour(s) + %n ora(e)%n ora(e)%n ora(e) + %n week(s) - %n settimana%n settimane + %n settimana%n settimane%n settimane %n month(s) - %n mese%n mesi + %n mese%n mesi%n mesi %n year(s) - anno (i) %n%n anno(i) - - - %n hour(s) - %n ora(e)%n ora(e) + %n anno%n anni%n anni @@ -2588,7 +2685,7 @@ Vuoi correggerla? Add a new attribute - Aggiungere un nuovo attributo + Aggiungi un nuovo attributo Add @@ -2612,7 +2709,7 @@ Vuoi correggerla? Toggle attribute protection - Attivare o disattivare la protezione degli attributi + Attiva/disattiva la protezione attributi Protect @@ -2620,7 +2717,7 @@ Vuoi correggerla? Show a protected attribute - Visualizzare un attributo protetto + Visualizza un attributo protetto Reveal @@ -2632,11 +2729,11 @@ Vuoi correggerla? If checked, the entry will not appear in reports like Health Check and HIBP even if it doesn't match the quality requirements. - Se selezionata, la voce non verrà visualizzata in report come Health Check e HIBP anche se non corrisponde ai requisiti di qualità. + Se selezionata, la voce non verrà visualizzata nel rapporto come Controllo salute e HIBP anche se non corrisponde ai requisiti di qualità. Exclude from database reports - Escludere dal rapporto del database + Escludi dal rapporto del database Foreground Color: @@ -2675,7 +2772,7 @@ Vuoi correggerla? Open Auto-Type help webpage - Aprire la pagina Web di aiuto per i completamenti automatici + Apri la pagina web di aiuto per i completamenti automatici Window Associations @@ -2689,9 +2786,19 @@ Vuoi correggerla? Add new window association Aggiungi nuova associazione finestra + + + + Add item + + + Remove selected window association - Rimuovere l'associazione della finestra selezionata + Rimuovi associazione finestra selezionata + + + - + Remove item + - Window title: @@ -2699,15 +2806,15 @@ Vuoi correggerla? You can use an asterisk (*) to match everything - È possibile utilizzare un asterisco (*) per abbinare tutto + È possibile usare un asterisco (*) per abbinare tutto Set the window association title - Impostare il titolo dell'associazione della finestra + Imposta il titolo dell'associazione finestra You can use an asterisk to match everything - È possibile utilizzare un asterisco per abbinare tutto + È possibile usare un asterisco per abbinare tutto Use a specific sequence for this association: @@ -2717,16 +2824,6 @@ Vuoi correggerla? Custom Auto-Type sequence for this window Sequenza personalizzata del completamento automatico per questa finestra - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2752,7 +2849,7 @@ Vuoi correggerla? Use this entry only with HTTP Basic Auth - Utilizza questa voce solo con l'autenticazione HTTP Basic + Usa questa voce solo con l'autenticazione semplice HTTP Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. @@ -2760,7 +2857,7 @@ Vuoi correggerla? Do not use this entry with HTTP Basic Auth - Non utilizzare questa voce con l'autenticazione di base HTTP + Non usare questa voce con l'autenticazione semplice HTTP Additional URL's @@ -2787,7 +2884,7 @@ Vuoi correggerla? Show entry at selected history state - Mostra voce nello stato della cronologia selezionato + Visualizza voce nello stato della cronologia selezionato Show @@ -2795,7 +2892,7 @@ Vuoi correggerla? Restore entry to selected history state - Ripristinare la voce allo stato della cronologia selezionato + Ripristina la voce allo stato cronologia selezionato Restore @@ -2803,7 +2900,7 @@ Vuoi correggerla? Delete selected history state - Eliminare lo stato della cronologia selezionato + Elimina lo stato cronologia selezionato Delete @@ -2828,22 +2925,10 @@ Vuoi correggerla? Notes field Campo note - - Toggle the checkbox to reveal the notes section. - Attivare o disattivare la casella di controllo per rivelare la sezione note. - Username field Campo nome utente - - Toggle notes visible - Attiva/disattiva visibilità delle note - - - Notes: - Note: - Expiration field Campo scadenza @@ -2860,14 +2945,6 @@ Vuoi correggerla? Presets Preimpostazioni - - Password: - Password: - - - URL: - URL: - Url field Campo Url @@ -2876,18 +2953,10 @@ Vuoi correggerla? Download favicon for URL Scarica favicon per URL - - Title: - Titolo: - Title field Campo del titolo - - Username: - Nome utente: - Password field Campo password @@ -2896,18 +2965,42 @@ Vuoi correggerla? Toggle expiration Attiva/disattiva scadenza - - Expires: - Scade: - - - Tags: - Etichette: - Tags list Elenco delle etichette + + &Username: + Nome &utente: + + + &Title: + &Titolo: + + + &Password: + &Password: + + + UR&L: + UR&L: + + + &Notes: + &Note: + + + Toggle notes visibility + Attiva/disattiva la visibilità delle note + + + T&ags: + &Etichette: + + + &Expires: + &Scade: + EditEntryWidgetSSHAgent @@ -2937,7 +3030,7 @@ Vuoi correggerla? Copy to clipboard - Copia negli appunti + Copia negli Appunti Public key @@ -2947,26 +3040,13 @@ Vuoi correggerla? Private key Chiave privata - - External file - File esterno - - - Browser for key file - Ricerca del file di chiave - - - Browse… - Button for opening file dialog - Sfoglia… - Attachment Allegato External key file - File di chiave esterna + File chiave esterno Add to agent @@ -2976,6 +3056,23 @@ Vuoi correggerla? Remove from agent Rimuovi dall'agente + + External file + File esterno + + + Browser for key file + Selezione file chiave + + + Browse… + Button for opening file dialog + Sfoglia… + + + Generate + Genera + Select attachment file Seleziona file allegato @@ -3011,10 +3108,6 @@ Vuoi correggerla? Icon Icona - - Browser Integration - Integrazione con i browser - Properties Proprietà @@ -3031,6 +3124,10 @@ Vuoi correggerla? Group has unsaved changes Il gruppo ha modifiche non salvate + + Browser Integration + Integrazione browser + Enable Abilita @@ -3046,10 +3143,6 @@ Vuoi correggerla? EditGroupWidgetBrowser - - Edit Group - Modifica gruppo - These settings affect to the group's behaviour with the browser extension. Queste impostazioni influiscono sul comportamento del gruppo con l'estensione del browser. @@ -3072,7 +3165,7 @@ Vuoi correggerla? Use entries only with HTTP Basic Auth: - Utilizzare le voci solo con l'autenticazione di base HTTP: + Usa le voci solo con l'autenticazione semplice HTTP: Only HTTP Auth toggle for this and sub groups @@ -3080,11 +3173,27 @@ Vuoi correggerla? Do not use entries with HTTP Basic Auth: - Non utilizzare voci con autenticazione di base HTTP: + Non usare voci con autenticazione semplice HTTP: Do not use HTTP Auth toggle for this and sub groups - Non utilizzare l'interruttore di autenticazione HTTP per questo e sottogruppi + Non usare l'interruttore di autenticazione HTTP per questo e sottogruppi + + + Omit WWW subdomain from matching: + Ometti il sottodominio WWW dalla corrispondenza: + + + Omit WWW subdomain from matching toggle for this and sub groups + Ometti il sottodominio WWW dal selettore corrispondente per questo e sottogruppi + + + Restrict matching to given browser key: + Restringi corrispondenza alla chiave browser fornita: + + + Restrict matching to given browser key toggle for this and sub groups + @@ -3123,7 +3232,7 @@ Vuoi correggerla? Clear fields - Cancellare i campi + Azzera campi Clear @@ -3135,7 +3244,7 @@ Vuoi correggerla? Import - Importazione + Importa Export @@ -3148,8 +3257,8 @@ Vuoi correggerla? Your KeePassXC version does not support sharing this container type. Supported extensions are: %1. - La tua versione di KeePassXC non supporta la condivisione di questo tipo di contenitore. -Le estensioni supportate sono: %1. + Questa versione di KeePassXC non supporta la condivisione di questo tipo di contenitore. +Le estensioni supportate sono: '%1'. %1 is already being exported by this database. @@ -3186,7 +3295,7 @@ Le estensioni supportate sono: %1. Select import source - Selezionare l'origine di importazione + Seleziona sorgente importazione Select export target @@ -3194,7 +3303,7 @@ Le estensioni supportate sono: %1. Select import/export file - Selezionare il file di importazione/esportazione + Seleziona file importazione/esportazione @@ -3253,7 +3362,7 @@ Le estensioni supportate sono: %1. Set default Auto-Type sequence - Impostare la sequenza predefinita del completamento automatico + Imposta sequenza predefinita completamento automatico Search toggle for this and sub groups @@ -3276,11 +3385,11 @@ Le estensioni supportate sono: %1. Set the URL to use to search for a favicon - Impostare l'URL da utilizzare per cercare una favicon + Imposta l'URL da usare per cercare una favicon Favicon URL - Favicon URL + URL favicon Download favicon for URL @@ -3292,11 +3401,11 @@ Le estensioni supportate sono: %1. Apply selected icon to subgroups and entries - Applicare l'icona selezionata a sottogruppi e voci + Applica l'icona selezionata a sottogruppi e voci Apply icon to… - Applicare l'icona a... + Applica l'icona a... Apply to this group only @@ -3308,20 +3417,16 @@ Le estensioni supportate sono: %1. Also apply to child entries - Si applicano anche alle voci figlio + Applica alle voci figlie Also apply to all children - Si applicano anche a tutti i figli + Applica anche a tutti i figli Unable to fetch favicon. Impossibile scaricare favicon. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - È possibile attivare il servizio per le icone del sito Web DuckDuckGo in Strumenti -> Impostazioni -> Sicurezza - Existing icon selected. Icona esistente selezionata. @@ -3336,11 +3441,11 @@ Le estensioni supportate sono: %1. Select Image(s) - Selezionare immagine(i) + Seleziona immagine/i Successfully loaded %1 of %n icon(s) - Caricate con successo %1 di %n icona.Caricate con successo %1 di %n icone. + Caricate con successo %1 di %n icona.Caricate con successo %1 di %n icone.Caricate con successo %1 di %n icone. No icons were loaded @@ -3348,11 +3453,15 @@ Le estensioni supportate sono: %1. %n icon(s) already exist in the database - %n icona esiste già nel database%n icone esistono già nel database + %n icona esiste già nel database%n icone esistono già nel database%n icone esistono già nel database The following icon(s) failed: - La seguente icona presenta degli errori:Le seguenti icone presentano degli errori: + La seguente icona presenta degli errori:Le seguenti icone presentano degli errori:Le seguenti icone presentano degli errori: + + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + Puoi attivare il servizio di DuckDuckGo per le icone dei siti web da Impostazioni applicazione -> Sicurezza @@ -3399,7 +3508,7 @@ Le estensioni supportate sono: %1. Remove selected plugin data - Rimuovere i dati selezionati del plug-in + Rimuovi dati plugin selezionato Remove @@ -3407,13 +3516,13 @@ Le estensioni supportate sono: %1. Delete plugin data? - Eliminare i dati del plugin? + Vuoi eliminare i dati del plugin? Do you really want to delete the selected plugin data? This may cause the affected plugins to malfunction. Vuoi davvero eliminare i dati del plugin selezionato? -Ciò potrebbe causare malfunzionamenti ai plugin interessati. +Questo potrebbe causare malfunzionamenti ai plugin interessati. Key @@ -3469,7 +3578,7 @@ Ciò potrebbe causare malfunzionamenti ai plugin interessati. Remove selected attachment - Rimuovere l'allegato selezionato + Rimuovi allegato selezionato Remove @@ -3477,7 +3586,7 @@ Ciò potrebbe causare malfunzionamenti ai plugin interessati. Rename selected attachment - Rinominare l'allegato selezionato + Rinomina l'allegato selezionato Rename @@ -3485,7 +3594,7 @@ Ciò potrebbe causare malfunzionamenti ai plugin interessati. Open selected attachment - Aprire l'allegato selezionato + Apri allegato selezionato Open @@ -3505,11 +3614,11 @@ Ciò potrebbe causare malfunzionamenti ai plugin interessati. Confirm remove - Confermare la rimozione + Conferma rimozione Are you sure you want to remove %n attachment(s)? - Sei sicuro di voler rimuovere %n allegato?Sei sicuro di voler rimuovere %n allegati? + Sei sicuro di voler rimuovere %n allegato?Sei sicuro di voler rimuovere %n allegati?Sei sicuro di voler rimuovere %n allegati? Save attachments @@ -3518,7 +3627,7 @@ Ciò potrebbe causare malfunzionamenti ai plugin interessati. Unable to create directory: %1 - Impossibile creare la directory: + Impossibile creare la cartella: %1 @@ -3527,7 +3636,7 @@ Ciò potrebbe causare malfunzionamenti ai plugin interessati. Confirm overwrite - Confermare la sovrascrittura + Conferma sovrascrittura Unable to save attachments: @@ -3552,17 +3661,18 @@ Ciò potrebbe causare malfunzionamenti ai plugin interessati. %1 Impossibile aprire il file: %1Impossibile aprire i file: +%1Impossibile aprire i file: %1 Confirm Overwrite Attachment - Confermare sovrascrittura dell'allegato + Conferma sovrascrittura allegato Attachment "%1" already exists. Would you like to overwrite the existing attachment? L'allegato "%1" esiste già. -Si desidera sovrascrivere l'allegato esistente? +Vuoi sovrascrivere l'allegato esistente? Confirm Attachment @@ -3573,10 +3683,10 @@ Si desidera sovrascrivere l'allegato esistente? Your database may get very large and reduce performance. Are you sure to add this file? - %1 Ha dimensioni elevate (%2 MB). + %1 ha dimensioni elevate (%2 MB). Il database potrebbe occupare più spazio e ridurre le sue performance. -Siete sicuri di voler aggiungere questo file? +Sei sicuro di voler aggiungere questo file? Attachment modified @@ -3586,7 +3696,7 @@ Siete sicuri di voler aggiungere questo file? The attachment '%1' was modified. Do you want to save the changes to your database? L'allegato '%1' è stato modificato. -Vuoi salvare le modifiche nel tuo database? +Vuoi salvare le modifiche nel database? Saving attachment failed @@ -3595,7 +3705,7 @@ Vuoi salvare le modifiche nel tuo database? Saving updated attachment failed. Error: %1 - Salvataggio allegato aggiornato fallito. + Salvataggio allegato aggiornato non riuscito. Errore: %1 @@ -3754,7 +3864,7 @@ Errore: %1 Password Strength - Sicurezza della password + Sicurezza password Entry notes @@ -3792,12 +3902,16 @@ Errore: %1 Has TOTP Ha TOTP + + Background Color + Colore di sfondo + EntryPreviewWidget Display current TOTP value - Visualizza il valore TOTP corrente + Visualizza il valore TOTP attuale Close @@ -3812,8 +3926,8 @@ Errore: %1 Password - Notes - Note + URL + URL Expiration @@ -3832,8 +3946,8 @@ Errore: %1 Nome utente - URL - URL + Notes + Note Advanced @@ -3883,6 +3997,10 @@ Errore: %1 Never Mai + + Double click to copy value + Doppio clic per copiare il valore + Enabled Abilitato @@ -3891,6 +4009,10 @@ Errore: %1 Disabled Disabilitato + + Double click to copy to clipboard + Fare doppio clic per copiare negli appunti + EntryURLModel @@ -3898,6 +4020,10 @@ Errore: %1 Invalid URL URL non corretto + + Duplicate URL + URL duplicato + EntryView @@ -3913,6 +4039,10 @@ Errore: %1 Reset to defaults Ripristina valori predefiniti + + + %1 entry(s)... + + %1 voce(i)...+ %1 voce(i)...+ %1 voce(i)... + ExportDialog @@ -3928,8 +4058,8 @@ Errore: %1 You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! - Si sta per esportare il database in un file non crittografato. -Ciò lascerà vulnerabili le tue password e le tue informazioni sensibili! + Stai per esportare il database in un file non cifrato. +Questo lascerà vulnerabili le password e le informazioni sensibili! @@ -3950,7 +4080,7 @@ Ciò lascerà vulnerabili le tue password e le tue informazioni sensibili! Export database to HTML file - Esportare il database in un file HTML + Esporta il database in un file HTML HTML file @@ -3984,7 +4114,7 @@ Ciò lascerà vulnerabili le tue password e le tue informazioni sensibili! Another secret service is running (%1).<br/>Please stop/remove it before re-enabling the Secret Service Integration. - Un altro servizio segreto è già in esecuzione (%1).<br/>Fermarlo o rimuoverlo prima di abilitare l'integrazione dei servizi segreti. + Un altro servizio segreto è già in esecuzione (%1).<br/>Fermalo o rimuovilo prima di abilitare l'integrazione dei servizi segreti. Failed to register DBus service at %1.<br/> @@ -4015,7 +4145,7 @@ Ciò lascerà vulnerabili le tue password e le tue informazioni sensibili! FdoSecrets::Item Entry "%1" from database "%2" was used by %3 - La voce "%1" dal database "%2" è stata utilizzata da %3 + La voce "%1" dal database "%2" è stata usata da %3 @@ -4023,7 +4153,7 @@ Ciò lascerà vulnerabili le tue password e le tue informazioni sensibili! %n Entry(s) was used by %1 %1 is the name of an application - %n Voce utilizzata da %1%n Voci utilizzate da %1 + %n Voce utilizzata da %1%n Voci utilizzate da %1%n Voci utilizzate da %1 @@ -4034,14 +4164,14 @@ Ciò lascerà vulnerabili le tue password e le tue informazioni sensibili! Non-existing/inaccessible executable path. Please double-check the client is legit. - Percorso eseguibile non esistente/inaccessibile. Si prega di ricontrollare che il client sia legittimo. + Percorso eseguibile non esistente/inaccessibile. Ricontrolla che il client sia legittimo. FdoSecrets::SettingsDatabaseModel Unlock to show - Sblocca per mostrare + Sblocca per visualizzare None @@ -4078,14 +4208,14 @@ Ciò lascerà vulnerabili le tue password e le tue informazioni sensibili! HibpDownloader Online password validation failed - Validazione online della password fallita + Validazione online della password non riuscita IconDownloaderDialog Download Favicons - Scarica i Favicon + Scarica favicon Cancel @@ -4095,7 +4225,7 @@ Ciò lascerà vulnerabili le tue password e le tue informazioni sensibili! Having trouble downloading icons? You can enable the DuckDuckGo website icon service in the security section of the application settings. Hai problemi a scaricare le icone? -È possibile attivare il servizio per le icone del sito Web DuckDuckGo nella sezione relativa alla sicurezza delle impostazioni dell'applicazione. +È possibile attivare il servizio per le icone del sito web DuckDuckGo nella sezione relativa alla sicurezza delle impostazioni dell'applicazione. Close @@ -4131,7 +4261,148 @@ You can enable the DuckDuckGo website icon service in the security section of th Downloading favicons (%1/%2)… - Scaricamento delle favicons (%1/%2)... + Scaricamento delle favicon (%1/%2)... + + + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Pagina della procedura guidata + + + Entry count: %1 + + + + Group + Gruppo + + + Title + Titolo + + + Username + Nome utente + + + Password + Password + + + Url + + + + + ImportWizardPageSelect + + Form + Modulo + + + Import File Selection + + + + Password: + Password: + + + Key File: + File chiave: + + + Browse… + Sfoglia… + + + Import Into: + + + + New Database + Nuovo database + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Apri OPVault + + + Select import file + + + + All files + Tutti i file + + + Key files + File chiave + + + Select key file + Seleziona file chiave + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + @@ -4149,7 +4420,7 @@ You can enable the DuckDuckGo website icon service in the security section of th Kdbx3Reader Missing database headers - Intestazioni di database mancanti + Intestazioni database mancanti Unable to calculate database key @@ -4163,7 +4434,7 @@ You can enable the DuckDuckGo website icon service in the security section of th Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. Sono state fornite credenziali non valide, riprovare. -Se ciò si ripresenta, il file di database potrebbe essere danneggiato. +Se ciò si ripresenta, il file database potrebbe essere danneggiato. Header doesn't match hash @@ -4220,7 +4491,7 @@ Se ciò si ripresenta, il file di database potrebbe essere danneggiato.Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. Sono state fornite credenziali non valide, riprovare. -Se ciò si ripresenta, il file di database potrebbe essere danneggiato. +Se ciò si ripresenta, il file database potrebbe essere danneggiato. (HMAC mismatch) @@ -4244,7 +4515,7 @@ Se ciò si ripresenta, il file di database potrebbe essere danneggiato. Failed to open buffer for KDF parameters in header - Fallimento dell'apertura del buffer per i parametri KDF nell'header + Fallimento dell'apertura del buffer per i parametri KDF nell'intestazione Unsupported key derivation function (KDF) or invalid parameters @@ -4252,7 +4523,7 @@ Se ciò si ripresenta, il file di database potrebbe essere danneggiato. Legacy header fields found in KDBX4 file. - Sono stati trovati dei campi obsloleti nell'header del file KDBX4 + Campi di intestazione obsoleti trovati nel file KDBX4. Invalid inner header id size @@ -4278,7 +4549,7 @@ Se ciò si ripresenta, il file di database potrebbe essere danneggiato. Invalid variant map entry name length Translation: variant map = data structure for storing meta data - Il nome della voce per la mappa di variazione ha una lunghezza non valida + Lunghezza nome voce della mappa variante non valida Invalid variant map entry name data @@ -4288,7 +4559,7 @@ Se ciò si ripresenta, il file di database potrebbe essere danneggiato. Invalid variant map entry value length Translation: variant map = data structure for storing meta data - Il valore della voce per la mappa di variazione ha una lunghezza non valida + Lunghezza valore voce mappa variante non valida Invalid variant map entry value data @@ -4328,7 +4599,7 @@ Se ciò si ripresenta, il file di database potrebbe essere danneggiato. Invalid variant map field type size Translation: variant map = data structure for storing meta data - Dimensione non valida per il tipo di campo della mappa di variazione + Dimensione tipo campo mappa variante non valida @@ -4349,7 +4620,7 @@ Se ciò si ripresenta, il file di database potrebbe essere danneggiato. Failed to serialize KDF parameters variant map Translation comment: variant map = data structure for storing meta data - Fallita serializzazione della mappa di variazione dei parametri per la funzione di derivazione della chiave di cifratura (KDF) + Serializzazione della mappa di variazione dei parametri KDF non riuscita @@ -4400,7 +4671,7 @@ Se ciò si ripresenta, il file di database potrebbe essere danneggiato. Failed to read database file. - Impossibile leggere il file di database. + Impossibile leggere il file database. The selected file is an old KeePass 1 database (.kdb). @@ -4418,7 +4689,7 @@ Questa è una migrazione a senso unico. Non sarà possibile aprire il database i Unsupported KeePass 2 database version. - Versione di database KeePass 2 non supportata. + Versione database KeePass 2 non supportata. @@ -4542,7 +4813,7 @@ Riga %2, colonna %3 Unable to decompress binary Translator meant is a binary data inside an entry - Impossibile decomprimere il binario + Impossibile decomprimere il file binario @@ -4568,22 +4839,11 @@ Riga %2, colonna %3 Impossibile aprire la chiave privata - - KeePass1OpenWidget - - Import KeePass1 Database - Importa database KeePass1 - - - Unable to open the database. - Impossibile aprire il database. - - KeePass1Reader Unable to read keyfile. - Impossibile leggere il file della chiave. + Impossibile leggere il file chiave. Not a KeePass database. @@ -4612,7 +4872,7 @@ Riga %2, colonna %3 Invalid content hash size - DImensione dell'hash non valida per questo contenuto + Dimensione dell'hash non valida per questo contenuto Invalid transform seed size @@ -4642,7 +4902,7 @@ Riga %2, colonna %3 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. Sono state fornite credenziali non valide, riprovare. -Se ciò si ripresenta, il file di database potrebbe essere danneggiato. +Se ciò si ripresenta, il file database potrebbe essere danneggiato. Key transformation failed @@ -4698,7 +4958,7 @@ Se ciò si ripresenta, il file di database potrebbe essere danneggiato. Missing entry field type number - Numero mancante per il tipo della voce corrente + Numero mancante per il tipo della voce attuale Invalid entry field size @@ -4706,7 +4966,7 @@ Se ciò si ripresenta, il file di database potrebbe essere danneggiato. Read entry field data doesn't match size - I dati letti per la voce corrente non coincidono con la dimensione + I dati letti per la voce attuale non coincidono con la dimensione Invalid entry UUID field size @@ -4714,27 +4974,27 @@ Se ciò si ripresenta, il file di database potrebbe essere danneggiato. Invalid entry group id field size - Dimensione dell'ID di gruppo della voce corrente non valida + Dimensione dell'ID di gruppo della voce attuale non valida Invalid entry icon field size - Dimensione dell'icona della voce corrente non valida + Dimensione dell'icona della voce attuale non valida Invalid entry creation time field size - Dimensione della data di creazione della voce corrente non valida + Dimensione della data di creazione della voce attuale non valida Invalid entry modification time field size - Dimensione della data di modifica della voce corrente non valida + Dimensione della data di modifica della voce attuale non valida Invalid entry expiry time field size - Dimensione della data di scadenza della voce corrente non valida + Dimensione della data di scadenza della voce attuale non valida Invalid entry field type - Tipo di dato non valido + Tipo di dato non valido @@ -4800,14 +5060,14 @@ Se ciò si ripresenta, il file di database potrebbe essere danneggiato. Key Component set, click to change or remove - Set di componenti chiave, fare clic per modificare o rimuovere + Set di componenti chiave, fai clic per modificare/rimuovere KeyFileEditWidget Generate a new key file - Generare un nuovo file chiave + Genera un nuovo file chiave Generate @@ -4815,15 +5075,15 @@ Se ciò si ripresenta, il file di database potrebbe essere danneggiato. Generate a new key file or choose an existing one to protect your database. - Genera un nuovo file chiave o scegline uno esistente per proteggere il tuo database. + Genera un nuovo file chiave o scegline uno esistente per proteggere il database. Note: Do NOT use a file that may change as that will prevent you from unlocking your database. - Nota: NON utilizzare un file che potrebbe cambiare in quanto ciò ti impedirà di sbloccare il tuo database. + Nota: NON usare un file che potrebbe essere modificato in quanto ciò ti impedirà di sbloccare il database. Browse for key file - Cercare il file chiave + Seleziona file chiave Browse… @@ -4835,7 +5095,7 @@ Se ciò si ripresenta, il file di database potrebbe essere danneggiato. You selected a key file in an old format which KeePassXC<br>may stop supporting in the future.<br><br>Please consider generating a new key file instead. - È stato selezionato un file di chiave in un vecchio formato che KeePassXC<br>potrebbe smettere di supportare in futuro.<br><br>Prendere in considerazione la possibilità di generare un nuovo file di chiave. + È stato selezionato un file chiave in un vecchio formato che KeePassXC<br>potrebbe smettere di supportare in futuro.<br><br>Prendi in considerazione la possibilità di generare un nuovo file chiave. Error loading the key file '%1' @@ -4861,11 +5121,11 @@ Messaggio: %2 Key File set, click to change or remove - File chiave impostato, clicca per cambiare o rimuovere + File chiave impostato, fai clic per modificare/rimuovere <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out.</p> - <p>È possibile aggiungere un file di chiave contenente byte casuali per una maggiore sicurezza.</p><p>Devi tenerlo segreto e non perderlo mai o sarai bloccato.</p> + <p>Per una maggiore sicurezza è possibile aggiungere un file chiave contenente byte casuali.</p><p>Devi tenerlo segreto e non perderlo mai o sarai bloccato.</p> Key files @@ -4897,7 +5157,7 @@ Messaggio: %2 You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. - Non è possibile utilizzare il database corrente come proprio file chiave. Scegliere un file diverso o generare un nuovo file chiave. + Non è possibile usare il database attuale come proprio file chiave. Scegli un file diverso o generare un nuovo file chiave. Suspicious Key File @@ -4935,10 +5195,6 @@ Sei sicuro di voler continuare con questo file? &Recent Databases &Database recenti - - &Import - &Importare - &Export &Esporta @@ -4959,6 +5215,10 @@ Sei sicuro di voler continuare con questo file? TOTP TOTP + + Tags + Etichette + &Groups &Gruppi @@ -5001,59 +5261,39 @@ Sei sicuro di voler continuare con questo file? &New Database… - &Nuovo database… - - - Create a new database - Creare un nuovo database + &Nuovo database... &Merge From Database… &Unire dal database... - - Merge from another KDBX database - Unire da un altro database KDBX - &New Entry… - &Nuova voce… - - - Add a new entry - Aggiungere una nuova voce + &Nuova voce... &Edit Entry… - &Modifica voce… - - - View or edit entry - Visualizzare o modificare voce + &Modifica voce... &Delete Entry… - &Elimina voce… + &Elimina voce... &New Group… - &Nuovo gruppo… - - - Add a new group - Aggiungere un nuovo gruppo + &Nuovo gruppo... &Edit Group… - &Modifica gruppo… + &Modifica gruppo... &Delete Group… - &Elimina gruppo… + &Elimina gruppo... Download All &Favicons… - Scarica tutte le &Favicon… + Scarica tutte le &Favicon... Sort &A-Z @@ -5065,71 +5305,47 @@ Sei sicuro di voler continuare con questo file? Sa&ve Database As… - Sal&va database come… + Sal&va database come... Database &Security… - Database &Sicurezza… + &Sicurezza database... Database &Reports… - Database &Reports... - - - Statistics, health check, etc. - Statistiche, controllo dello stato, ecc. + &Rapporti del database... &Database Settings… - Impostazioni &database… - - - Database settings - Impostazioni database + Impostazioni &database... &Clone Entry… - &Clona voce… + &Clona voce... Move u&p - Sposta in s&ù - - - Move entry one step up - Sposta la voce una posizione in alto + Sposta in s&u Move do&wn Sposta in gi&ù - - Move entry one step down - Sposta la voce una posizione in basso - Copy &Username Copia &nome utente - - Copy username to clipboard - Copia nome utente negli appunti - Copy &Password Copia &password - - Copy password to clipboard - Copia password negli appunti - &Settings &Impostazioni &Password Generator - Generatore di &password + Generatore &password Perform &Auto-Type @@ -5137,11 +5353,11 @@ Sei sicuro di voler continuare con questo file? Download &Favicon - Scarica &Favicon + Scarica &favicon Open &URL - Aprire &URL + Apri &URL &Lock Database @@ -5149,63 +5365,39 @@ Sei sicuro di voler continuare con questo file? Lock &All Databases - Blocca &Tutti i database + Blocca &tutti i database &Title &Titolo - Copy title to clipboard - Copia titolo negli appunti - - - &URL - &URL - - - Copy URL to clipboard - Copia URL negli appunti + Copy &URL + Copia &URL &Notes &Note - - Copy notes to clipboard - Copia note negli appunti - &CSV File… - &File CSV… + &File CSV... &HTML File… - File &HTML… + File &HTML... KeePass 1 Database… - Database KeePass 1… - - - Import a KeePass 1 database - Importare un database KeePass 1 + Database KeePass 1... 1Password Vault… - 1Password Vault… - - - Import a 1Password Vault - Importare un 1Password Vault + 1Password Vault... CSV File… - File CSV… - - - Import a CSV file - Importare un file CSV + File CSV... Show TOTP @@ -5213,23 +5405,27 @@ Sei sicuro di voler continuare con questo file? Show QR Code - Mostra codice QR + Visualizza codice QR Set up TOTP… - Configura TOTP… + Configura TOTP... Copy &TOTP Copia &TOTP + + Copy Password and TOTP + Copia password e TOTP + E&mpty recycle bin Svuota il cesti&no &Donate - &Donare + &Dona Report a &Bug @@ -5247,10 +5443,6 @@ Sei sicuro di voler continuare con questo file? &Online Help &Guida in linea - - Go to online documentation - Vai alla documentazione online - &User Guide &Guida per l'utente @@ -5261,11 +5453,11 @@ Sei sicuro di voler continuare con questo file? &Keyboard Shortcuts - &Tasti di scelta rapida + &Tasti scelta rapida Save Database Backup… - Salva backup del database in... + Salva backup database in... Add key to SSH Agent @@ -5297,15 +5489,15 @@ Sei sicuro di voler continuare con questo file? Show Toolbar - Mostra barra degli strumenti + Visualizza barra strumenti Show Preview Panel - Mostra pannello anteprima + Visualizza pannello anteprima Always on Top - Sempre sopra + Sempre in primo piano Hide Usernames @@ -5319,41 +5511,49 @@ Sei sicuro di voler continuare con questo file? Clone Group... Clona gruppo... + + &XML File… + File &XML... + Clear history Azzera cronologia Access error for config file %1 - Errore di accesso per il file di configurazione %1 + Errore di accesso al file di configurazione %1 Don't show again for this version - Non mostrare più per questa versione + Non visualizzare più per questa versione WARNING: You are using an unstable build of KeePassXC. There is a high risk of corruption, maintain a backup of your databases. This version is not meant for production use. - ATTENZIONE: si sta utilizzando una build instabile di KeePassXC. + ATTENZIONE: stau usando una build instabile di KeePassXC. C'è un alto rischio di corruzione, mantenere un backup dei database. Questa versione non è destinata all'uso in produzione. NOTE: You are using a pre-release version of KeePassXC. Expect some bugs and minor issues, this version is meant for testing purposes. - NOTA: si utilizza una versione non definitiva di KeePassXC. + NOTA: stai usando una versione non definitiva di KeePassXC. Aspettatevi alcuni bug e problemi minori, questa versione è pensata per scopi di test. WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard. We recommend you use the AppImage available on our downloads page. ATTENZIONE: la versione di Qt potrebbe causare l'arresto anomalo di KeePassXC con una tastiera su schermo. -Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina download. +Ti consigliamo di usare l'AppImage disponibile sulla nostra pagina download. + + + No Tags + Nessuna etichetta Restore Entry(s) - Ripristina voce(i)Ripristina voce(i) + Ripristina voceRipristina vociRipristina voci Settings @@ -5361,7 +5561,7 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Check for updates on startup? - Controllare gli aggiornamenti all'avvio? + Vuoi controllare gli aggiornamenti all'avvio? Would you like KeePassXC to check for updates on startup? @@ -5379,17 +5579,289 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Quit KeePassXC Esci da KeePassXC + + %1 Entry(s) + %1 voce%1 voci%1 voci + Please present or touch your YubiKey to continue… - Si prega di presentare o toccare il vostro YubiKey per continuare... + Per continuare presenta o tocca la YubiKey... Restart Application? - Riavviare l'applicazione? + Vuoi riavviare l'applicazione? You must restart the application to apply this setting. Would you like to restart now? - È necessario riavviare l'applicazione per applicare questa impostazione. Vuoi riavviare ora? + Per applicare questa impostazione è necessario riavviare l'applicazione. Vuoi riavviarla ora? + + + Allow Screen Capture + Consenti cattura schermo + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Passkey... + + + Import Passkey + Importa Passkey + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + Modifica voce + + + Delete Entry + + + + Create Group + + + + Edit Group + Modifica gruppo + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + Copia nome utente + + + Copy Password + Copia password + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + Importa database KeePass1 + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + @@ -5400,7 +5872,7 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Edit database settings - Modificare le impostazioni del database + Modifica impostazioni database Unlock database @@ -5408,7 +5880,7 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Unlock database to show more information - Sblocca il database per mostrare ulteriori informazioni + Per visualizzare ulteriori informazioni sblocca il database Lock database @@ -5431,7 +5903,7 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Reset any remembered decisions for this application - Reimpostare tutte le decisioni ricordate per questa applicazione + Reimposta tutte le decisioni salvate per questa applicazione @@ -5442,43 +5914,23 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Relocating %1 [%2] - Rilocazione di %1 [%2] + Trasferimento di %1 [%2] Overwriting %1 [%2] Sovrascrittura %1 [%2] - - older entry merged from database "%1" - voce precedente unita dal database "%1" - - - Adding backup for older target %1 [%2] - Aggiunto backup per la destinazione precedente %1 [%2] - - - Adding backup for older source %1 [%2] - Aggiunto backup per l'origine precedente %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Riapplicare la voce di destinazione precedente all'origine più recente %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Riapplicare la voce di origine precedente alla destinazione più recente %1 [%2] - Synchronizing from newer source %1 [%2] - Sincronizzazione dall'origine più recente %1 [%2] + Sincronizzazione sorgente più recente %1 [%2] Synchronizing from older source %1 [%2] - Sincronizzazione dall'origine precedente %1 [%2] + Sincronizzazione sorgente precedente %1 [%2] Deleting child %1 [%2] - Eliminazione dell'elemento figlio %1 [%2] + Eliminazione elemento figlio %1 [%2] Deleting orphan %1 [%2] @@ -5490,7 +5942,7 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Adding missing icon %1 - Aggiungere l'icona mancante %1 + Aggiunta icona mancante %1 Removed custom data %1 [%2] @@ -5498,7 +5950,7 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Adding custom data %1 [%2] - Aggiunta di dati personalizzati %1 [%2] + Aggiunta dati personalizzati %1 [%2] @@ -5521,19 +5973,11 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Encryption Settings - Impostazioni di crittografia + Impostazioni di cifratura Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - Qui è possibile modificare le impostazioni di crittaggio del database. È sempre possibile modificarli dopo nelle impostazioni del database. - - - Advanced Settings - Impostazioni avanzate - - - Simple Settings - Impostazioni semplici + Qui puoi modificare le impostazioni di cifratura del database. Puoi sempre modificarle dopo nelle impostazioni del database. @@ -5551,11 +5995,11 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow NewDatabaseWizardPageEncryption Encryption Settings - Impostazioni di crittografia + Impostazioni di cifratura Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - Qui è possibile modificare le impostazioni di crittaggio del database. È sempre possibile modificarli dopo nelle impostazioni del database. + Qui puoi modificare le impostazioni di cifratura del database. Puoi sempre modificarle dopo nelle impostazioni del database. @@ -5566,7 +6010,7 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Please fill in the display name and an optional description for your new database: - Si prega di compilare il nome visualizzato e una descrizione facoltativa per il nuovo database: + Compila il nome visualizzato e una descrizione facoltativa per il nuovo database: @@ -5596,7 +6040,7 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Unable to init cipher for opdata01: %1 - Impossibile inizializzare la crittografia per opdata01: %1 + Impossibile inizializzare la cifratura per opdata01: %1 Unable to read all HMAC signature bytes @@ -5612,35 +6056,26 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Expected %1 bytes of clear-text, found %2 - Previsto %1 byte di testo non crittografato, trovato %2 - - - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Lettura del database non ha prodotto un'istanza -%1 + Previsto %1 byte di testo non cifrato, trovato %2 OpVaultReader Directory .opvault must exist - La directory .opvault deve esistere + La cartella .opvault deve esistere Directory .opvault must be readable - La directory .opvault deve essere leggibile + La cartella .opvault deve essere leggibile Directory .opvault/default must exist - Directory .opvault/default deve esistere + La cartella .opvault/default deve esistere Directory .opvault/default must be readable - Directory .opvault/default deve essere leggibile + La cartella .opvault/default deve essere leggibile Unable to decode masterKey: %1 @@ -5655,11 +6090,11 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow OpenSSHKey Invalid key file, expecting an OpenSSH key - File di chiave non valido, era attesa una chiave OpenSSH + File chiave non valido, era attesa una chiave OpenSSH PEM boundary mismatch - Mancata corrispondenza del marigne PEM + Mancata corrispondenza del margine PEM Base64 decoding failed @@ -5697,6 +6132,10 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Unknown cipher: %1 Tipo di cifrario non supportato: %1 + + AES-256/GCM is currently not supported + AES-256/GCM non è attualmente supportato + Passphrase is required to decrypt this key La decifrazione di questa chiave richiede una frase segreta @@ -5707,7 +6146,7 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Cipher IV is too short for MD5 kdf - Il vettore di inizializzazione del cifrario è troppo corto per la derivazione della chiave crittografica tramite MD5 + Il vettore di inizializzazione del cifrario è troppo corto per la derivazione della chiave di cifratura tramite MD5 Unknown KDF: %1 @@ -5719,11 +6158,11 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Decryption failed: %1 - Decrittografia non riuscita: %1 + Decifratura non riuscita: %1 Decryption failed, wrong passphrase? - Decifrazione non riuscita, frase segreta non corretta? + Decifratura non riuscita, frase segreta non corretta? Unexpected EOF while reading key @@ -5763,26 +6202,178 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Le password non corrispondono + SSH Key Generator + Generatore chiave SSH - Passwords match so far - Le password corrispondono finora + Type + Tipo - Toggle Password (%1) - Attiva/disattiva password (%1) + Bits + Bit - Generate Password (%1) - Genera password (%1) + Comment + Commento + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - esporta passkey - Warning: Caps Lock enabled! - Attenzione: Caps Lock abilitato! + Export the following Passkey entries. + Esporta le seguenti voci passkey. + + + Filenames will be generated with title and .passkey file extension. + I nomi dei file saranno generati con titolo ed estensione di file passkey. + + + Export entries + Esporta voci + + + Export Selected + Esporta selezionati + + + Cancel + Annulla + + + Export to folder + Esporta su cartella + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: esporta passkey + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + Il file "%1.passkey" esiste già. +Vuoi sovrascriverlo? + + + + Cannot open file + Impossibile aprire file + + + Cannot open file "%1" for writing. + Impossibile aprire il file "%1" in scrittura. + + + Cannot write to file + Impossibile scrivere su file + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - importa passkey + + + Username: %1 + Nome utente: %1 + + + Group + Gruppo + + + Database + Database + + + Import Passkey + Importa Passkey + + + Import + Importa + + + Cancel + Annulla + + + Import the following Passkey: + Importa la seguente passkey: + + + Entry + Voce + + + Import the following Passkey to this entry: + Importa la seguente passkey in questa voce: + + + Create new entry + Crea nuova voce + + + Default Passkeys group (Imported Passkeys) + Gruppo predefinito delle passkey (passkey importate) + + + Relying Party: %1 + Relying Party: %1 + + + + PasskeyImporter + + Passkey file + File passkey + + + All files + Tutti i file + + + Open Passkey file + Apri file passkey + + + Cannot open file + Impossibile aprire file + + + Cannot open file "%1" for reading. + Impossibile aprire il file "%1" in lettura. + + + Cannot import Passkey + Impossibile importare passkey + + + Cannot import Passkey file "%1". Data is missing. + Impossibile importare il file passkey "%1". I dati sono mancanti. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + Impossibile importare il file passkey "%1". La chiave privata è mancante o incorretta. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + Impossibile importare il file passkey «%1». +Mancano i dati seguenti : +%2 @@ -5821,11 +6412,11 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Password set, click to change or remove - Password impostata, clicca per cambiare o rimuovere + Password impostata, fai clic per modificarla/rimuoverla <p>A password is the primary method for securing your database.</p><p>Good passwords are long and unique. KeePassXC can generate one for you.</p> - <p>Una password è il metodo principale per mantenere sicuro il vostro database.</p><p>Una buona password dev'essere lunga ed unica. KeePassXC può generarne una per voi.</p> + <p>Una password è il metodo principale per mantenere sicuro il database.</p><p>Una buona password dev'essere lunga ed unica. KeePassXC può generarne una per voi.</p> Passwords do not match. @@ -5877,7 +6468,7 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Switch to advanced mode - Passare alla modalità avanzata + Passa alla modalità avanzata Advanced @@ -5933,7 +6524,7 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Additional characters to use for the generated password - Caratteri aggiuntivi da utilizzare nella generazione delle password + Caratteri aggiuntivi da usare nella generazione delle password Additional characters @@ -5941,7 +6532,7 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Add non-hex letters to "do not include" list - Aggiungere lettere non esadecimali all'elenco "non includere" + Aggiungi lettere non esadecimali all'elenco "non includere" Hex Passwords @@ -5965,7 +6556,7 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" - Escludere i caratteri: "0", "1", "l", "I", "O", "|", "ï¹’" + Caratteri esclusi: "0", "1", "l", "I", "O", "|", "ï¹’" Exclude look-alike characters @@ -6001,11 +6592,11 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Delete selected wordlist - Eliminare l'elenco di parole selezionato + Elimina elenco parole selezionato Add custom wordlist - Aggiungi elenco di parole personalizzato + Aggiungi elenco parole personalizzato character @@ -6047,52 +6638,6 @@ Ti consigliamo di utilizzare l'AppImage disponibile sulla nostra pagina dow Entropy: %1 bit Entropia: %1 bit - - Confirm Delete Wordlist - Conferma cancellazione elenco di parole - - - Do you really want to delete the wordlist "%1"? - Vuoi davvero eliminare l'elenco di parole "%1"? - - - Failed to delete wordlist - Impossibile eliminare l'elenco di parole - - - Wordlists - Elenchi di parole - - - All files - Tutti i file - - - Select Custom Wordlist - Seleziona elenco di parole personalizzato - - - Overwrite Wordlist? - Sovrascrivere elenco di parole? - - - Wordlist "%1" already exists as a custom wordlist. -Do you want to overwrite it? - L'elenco di parole "%1" esiste già come elenco di parole personalizzato. -Vuoi sovrascriverlo? - - - Failed to add wordlist - Impossibile aggiungere l'elenco di parole - - - Logograms - Logogrammi - - - Special Characters - Caratteri speciali - Password Quality: %1 Qualità password: %1 @@ -6117,6 +6662,103 @@ Vuoi sovrascriverlo? Password quality Eccellente + + Confirm Delete Wordlist + Conferma cancellazione elenco parole + + + Do you really want to delete the wordlist "%1"? + Vuoi davvero eliminare l'elenco parole "%1"? + + + Failed to delete wordlist + Impossibile eliminare l'elenco parole + + + Wordlists + Elenchi di parole + + + All files + Tutti i file + + + Select Custom Wordlist + Seleziona elenco parole personalizzato + + + Overwrite Wordlist? + Vuuoi sovrascrivere elenco parole? + + + Wordlist "%1" already exists as a custom wordlist. +Do you want to overwrite it? + L'elenco parole "%1" esiste già come elenco parole personalizzato. +Vuoi sovrascriverlo? + + + Failed to add wordlist + Impossibile aggiungere l'elenco parole + + + Logograms + Logogrammi + + + Special Characters + Caratteri speciali + + + + PasswordWidget + + Passwords do not match + Le password non corrispondono + + + Passwords match so far + Le password corrispondono finora + + + Toggle Password (%1) + Attiva/disattiva password (%1) + + + Generate Password (%1) + Genera password (%1) + + + Warning: Caps Lock enabled! + Attenzione: Caps Lock abilitato! + + + Quality: %1 + Qualità: %1 + + + Poor + Password quality + Debole + + + Weak + Password quality + Intermedia + + + Good + Password quality + Buona + + + Excellent + Password quality + Eccellente + + + Toggle password visibility using Control + H. Open the password generator using Control + G. + Mostra/nascondi password con Control + H. Apri il generarore di password con Control + G. + PickcharsDialog @@ -6126,11 +6768,11 @@ Vuoi sovrascriverlo? Select characters to type, navigate with arrow keys, Ctrl + S submits. - Selezionare i caratteri da digitare, spostarsi con i tasti di direzione, CTRL+S invia. + Seleziona i caratteri da digitare, spostati con i tasti di direzione, CTRL+S per inviare. Press &Tab between characters - Premere &TAB tra i caratteri + Premi &Tab tra i caratteri @@ -6171,6 +6813,10 @@ Vuoi sovrascriverlo? Continue continuare + + Continue with weak password + Continua con la password debole + QObject @@ -6188,7 +6834,7 @@ Vuoi sovrascriverlo? Cannot decrypt message - Impossibile decrittografare il messaggio + Impossibile decifrare il messaggio Action cancelled or denied @@ -6196,15 +6842,15 @@ Vuoi sovrascriverlo? Message encryption failed. - Crittografia del messaggio non riuscita. + Cifratura del messaggio non riuscita. KeePassXC association failed, try again - Associazione KeePassXC fallita, riprova + Associazione KeePassXC non riuscita, riprova Encryption key is not recognized - Chiave di crittografia non riconosciuta + Chiave di cifratura non riconosciuta Incorrect action @@ -6240,7 +6886,7 @@ Vuoi sovrascriverlo? Browser Integration - Integrazione con i browser + Integrazione browser Browser Plugin Failure @@ -6300,7 +6946,7 @@ Vuoi sovrascriverlo? Enter password for new entry: - Immettere la password per la nuova voce: + Insersci la password per la nuova voce: Writing the database failed %1. @@ -6332,7 +6978,7 @@ Vuoi sovrascriverlo? Check if any passwords have been publicly leaked. FILENAME must be the path of a file listing SHA-1 hashes of leaked passwords in HIBP format, as available from https://haveibeenpwned.com/Passwords. - Verificare se le password sono state rivelate pubblicamente. FILENAME deve essere il percorso di un file che elenca gli hashe SHA-1 delle password rivelate in formato HIBP, come disponibile da https://haveibeenpwned.com/Passwords. + Verifica se le password sono state rivelate pubblicamente. FILENAME deve essere il percorso di un file che elenca gli hashe SHA-1 delle password rivelate in formato HIBP, come disponibile da https://haveibeenpwned.com/Passwords. FILENAME @@ -6348,7 +6994,7 @@ Vuoi sovrascriverlo? Analyze passwords for weaknesses and problems. - Analizzare le password per trovare punti deboli e problemi. + Analizza le password per trovare punti deboli e problemi. Cannot find HIBP file: %1 @@ -6368,7 +7014,7 @@ Vuoi sovrascriverlo? Password for '%1' has been leaked %2 time(s)! - La password per '%1' è trapelata %2 volta!La password per '%1' è trapelata %2 volte! + La password per '%1' è trapelata %2 volta!La password per '%1' è trapelata %2 volte!La password per '%1' è trapelata %2 volte! Password for '%1' has been leaked! @@ -6462,7 +7108,7 @@ Usa '--stdout' o specifica un 'file-esportazione'. Copy the current TOTP to the clipboard (equivalent to "-a totp"). - Copiare il TOTP negli appunti. (analogo a "-a totp"). + Copia il TOTP negli appunti (analogo a "-a totp"). Must match only one entry, otherwise a list of possible matches is shown. @@ -6479,7 +7125,7 @@ Usa '--stdout' o specifica un 'file-esportazione'. Timeout before clearing the clipboard (default is %1 seconds, set to 0 for unlimited). - Timeout prima di cancellare gli Appunti (l'impostazione predefinita è %1 secondi, impostata su 0 per senza limite). + Timeout prima di cancellare gli appunti (l'impostazione predefinita è %1 secondi, impostata su 0 illimitato). Invalid timeout value %1. @@ -6491,7 +7137,7 @@ Usa '--stdout' o specifica un 'file-esportazione'. Using matching entry: %1 - Voce corrispondente utilizzata: %1 + Voce corrispondente usata: %1 Entry %1 not found. @@ -6499,7 +7145,7 @@ Usa '--stdout' o specifica un 'file-esportazione'. ERROR: Please specify one of --attribute or --totp, not both. - ERRORE: Specificare uno solo tra attributo o TOTOP, non entrambi. + ERRORE: Specifica uno solo tra --attribute o --totp, non entrambi. Entry with path %1 has no TOTP set up. @@ -6519,7 +7165,7 @@ Usa '--stdout' o specifica un 'file-esportazione'. Clearing the clipboard in %1 second(s)... - Cancellazione degli Appunti in %1 secondi...Cancellazione degli appunti in %1 secondo(i)... + Cancellazione degli Appunti in %1 secondi...Cancellazione degli appunti in %1 secondo(i)...Cancellazione degli appunti in %1 secondo(i)... Clipboard cleared! @@ -6527,7 +7173,7 @@ Usa '--stdout' o specifica un 'file-esportazione'. Close the currently opened database. - Chiudere il database attualmente aperto. + Chiudi il database attualmente aperto. Display this help. @@ -6535,7 +7181,7 @@ Usa '--stdout' o specifica un 'file-esportazione'. Silence password prompt and other secondary outputs. - Silenziare la richiesta di password e altri output secondari. + Silenzia la richiesta di password e altri output secondari. Key file of the database. @@ -6547,11 +7193,11 @@ Usa '--stdout' o specifica un 'file-esportazione'. Deactivate password key for the database. - Disattivare la chiave della password per il database. + Disattiva la chiave password per il database. Yubikey slot and optional serial used to access the database (e.g., 1:7370001). - Slot Yubikey e porta seriale opzionale utilizzata per l'accesso al database (es. 1:7370001). + Slot Yubikey e porta seriale opzionale usata per l'accesso al database (es. 1:7370001). slot[:serial] @@ -6565,37 +7211,43 @@ Usa '--stdout' o specifica un 'file-esportazione'.Too many arguments provided. Troppi argomenti forniti. + + Path of the database. + Percorso del database. + Target decryption time in MS for the database. - Il tempo di decrittazione del database in MS. + Il tempo di decifratura del database in MS. time orario + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Imposta il file chiave per il database. +Questa opzione è deprecata, usa invece --set-key-file. + Set the key file for the database. - Imposta un file chiave per il database + Imposta un file chiave per il database. Set a password for the database. - Imposta una password per il database + Imposta una password per il database. Create a new database. Crea un nuovo database. - - Path of the database. - Percorso del database. - Invalid decryption time %1. - Tempo di decrittazione non valido %1. + Tempo di decifratura non valido %1. Target decryption time must be between %1 and %2. - Il tempo di decrittazione deve essere compreso tra %1 e %2. + Il tempo di decifratura deve essere compreso tra %1 e %2. Failed to set database password. @@ -6603,7 +7255,7 @@ Usa '--stdout' o specifica un 'file-esportazione'. Loading the key file failed - Caricamento del key-file fallito. + Caricamento del key-file non riuscito. No key is set. Aborting database creation. @@ -6611,11 +7263,11 @@ Usa '--stdout' o specifica un 'file-esportazione'. Benchmarking key derivation function for %1ms delay. - Test delle prestazioni della chiave di derivazione per %1ms di ritardo. + Test delle prestazioni della funzione di derivazione della chiave per %1ms di ritardo. Setting %1 rounds for key derivation function. - Impostare %1 iterazioni per la funzione di derivazione della chiave. + Imposta %1 iterazioni per la funzione di derivazione della chiave. error while setting database key derivation settings. @@ -6633,6 +7285,158 @@ Usa '--stdout' o specifica un 'file-esportazione'.Successfully created new database. Nuovo database creato con successo. + + Unset the password for the database. + Annulla l'impostazione della password per il database. + + + Unset the key file for the database. + Annulla l'impostazione del file chiave per il database. + + + Edit a database. + Modifica un database. + + + Cannot use %1 and %2 at the same time. + Non è possibile usare '%1' e '%2' contemporaneamente. + + + Could not change the database key. + Impossibile modificare la chiave del database. + + + Database was not modified. + Il database non è stato modificato. + + + Writing the database failed: %1 + Scrittura del database non riuscita: %1 + + + Successfully edited the database. + Il database è stato modificato correttamente. + + + Cannot remove password: The database does not have a password. + Impossibile rimuovere la password: il database non dispone di una password. + + + Cannot remove file key: The database does not have a file key. + Impossibile rimuovere il file chiave: il database non dispone di un file chiave. + + + Loading the new key file failed: %1 + Caricamento del nuovo file chiave non riuscito: %1 + + + Found unexpected Key type %1 + Trovato un tipo di chiave %1 inaspettato + + + Cannot remove all the keys from a database. + Impossibile rimuovere tutte le chiavi da un database. + + + Show a database's information. + Visualizza informazioni del database. + + + UUID: + UUID: + + + Name: + Nome: + + + Description: + Descrizione: + + + Cipher: + Cifrario: + + + KDF: + KDF: + + + Recycle bin is enabled. + Il cestino è abilitato . + + + Recycle bin is not enabled. + Il cestino non è abilitato. + + + Location + Posizione + + + Database created + Database creato + + + Last saved + Ultimo salvataggio + + + Unsaved changes + Modifiche non salvate + + + yes + sì + + + no + No + + + Number of groups + Numero di gruppi + + + Number of entries + Numero di voci + + + Number of expired entries + Numero di voci scadute + + + Unique passwords + Password univoche + + + Non-unique passwords + Password non univoche + + + Maximum password reuse + Massimo riutilizzo della password + + + Number of short passwords + Numero di password brevi + + + Number of weak passwords + Numero di password deboli + + + Entries excluded from reports + Voci escluse dal rapporto + + + Average password length + Lunghezza media password + + + %1 characters + %1 caratteri + Word count for the diceware passphrase. Numero di parole per la passphrase con lancio dei dadi @@ -6682,11 +7486,7 @@ Usa '--stdout' o specifica un 'file-esportazione'. Enter new password for entry: - Immettere la nuova password per la voce: - - - Writing the database failed: %1 - Scrittura del database non riuscita: %1 + Insersci la nuova password per la voce: Successfully edited entry %1. @@ -6810,7 +7610,7 @@ Usa '--stdout' o specifica un 'file-esportazione'. Format to use when exporting. Available choices are 'xml' or 'csv'. Defaults to 'xml'. - Formati utilizzabile per l'esportazione. E' possibile scegliere tra 'xml' e 'csv'. L'impostazione predefinita è 'xml'. + Formato usabile per l'esportazione. È possibile scegliere tra 'xml' e 'csv'. L'impostazione predefinita è 'xml'. Exports the content of a database to standard output in the specified format. @@ -6834,27 +7634,27 @@ Usa '--stdout' o specifica un 'file-esportazione'. Use lowercase characters - Utilizzare caratteri minuscoli + Usa caratteri minuscoli Use uppercase characters - Utilizzare caratteri maiuscoli + Usa caratteri maiuscoli Use numbers - Utilizzare i numeri + Usa i numeri Use special characters - Utilizzare caratteri speciali + Usa caratteri speciali Use extended ASCII - Usare ASCII esteso + Usa ASCII esteso Exclude character set - Escludere il set di caratteri + Escludi set caratteri chars @@ -6862,15 +7662,15 @@ Usa '--stdout' o specifica un 'file-esportazione'. Use custom character set - Utilizzare un set di caratteri personalizzato + Usa set caratteri personalizzato Exclude similar looking characters - Escludere i caratteri dall'aspetto simile + Escludi caratteri dall'aspetto simile Include characters from every selected group - Includere i caratteri da ogni gruppo selezionato + Includi i caratteri da ogni gruppo selezionato Generate a new random password. @@ -6882,11 +7682,11 @@ Usa '--stdout' o specifica un 'file-esportazione'. Invalid password generator after applying all options - Generatore di password non valido dopo l'applicazione di tutte le opzioni + Generatore password non valido dopo l'applicazione di tutte le opzioni Display command help. - Visualizzare la guida del comando. + Visualizza la guida del comando. Available commands: @@ -6894,7 +7694,7 @@ Usa '--stdout' o specifica un 'file-esportazione'. Import the contents of an XML database. - Importare il contenuto di un database XML. + Importa il contenuto di un database XML. Path of the XML database export. @@ -6912,106 +7712,6 @@ Usa '--stdout' o specifica un 'file-esportazione'.Successfully imported database. Database importato correttamente. - - Show a database's information. - Mostra le informazioni di un database. - - - UUID: - UUID: - - - Name: - Nome: - - - Description: - Descrizione: - - - Cipher: - Cifrario: - - - KDF: - Kdf: - - - Recycle bin is enabled. - Il cestino è abilitato - - - Recycle bin is not enabled. - Il cestino non è abilitato - - - Location - Posizione - - - Database created - Database creato - - - Last saved - Ultimo salvataggio - - - Unsaved changes - Modifiche non salvate - - - yes - sì - - - no - No - - - Number of groups - Numero di gruppi - - - Number of entries - Numero di voci - - - Number of expired entries - Numero di voci scadute - - - Unique passwords - Password univoche - - - Non-unique passwords - Password non univoche - - - Maximum password reuse - Massimo riutilizzo della password - - - Number of short passwords - Numero di password brevi - - - Number of weak passwords - Numero di password deboli - - - Entries excluded from reports - Voci escluse dal rapporto - - - Average password length - Lunghezza media password - - - %1 characters - %1 caratteri - Unknown command %1 Comando sconosciuto %1 @@ -7032,7 +7732,7 @@ Comandi disponibili: Displays debugging information. - Visualizza le informazioni di debug. + Visualizza le informazioni debug. Invalid command %1. @@ -7040,7 +7740,7 @@ Comandi disponibili: Recursively list the elements of the group. - Elencare gli elementi del gruppo in modo ricorsivo. + Elenca gli elementi del gruppo in modo ricorsivo. Flattens the output to single lines. @@ -7060,7 +7760,7 @@ Comandi disponibili: Use the same credentials for both database files. - Usa le stesse credenziali per entrambi i file di database. + Usa le stesse credenziali per entrambi i file database. Key file of the database to merge from. @@ -7068,11 +7768,11 @@ Comandi disponibili: Deactivate password key for the database to merge from. - Disattivare la chiave della password per il database da cui eseguire l'unione. + Disattiva la chiave della password per il database da cui eseguire l'unione. Only print the changes detected by the merge operation. - Stampare solo le modifiche rilevate dall'operazione di unione. + Stampa solo le modifiche rilevate dall'operazione di unione. Yubikey slot for the second database. @@ -7118,7 +7818,7 @@ Comandi disponibili: Path of the destination group. - Percorso del gruppo di destinazione. + Percorso del gruppo destinazione. Could not find group with path %1. @@ -7134,7 +7834,7 @@ Comandi disponibili: Open a database. - Aprire un database. + Apri un database. Path of the entry to remove. @@ -7178,11 +7878,15 @@ Comandi disponibili: Show the entry's current TOTP. - Mostra il TOTP corrente della voce. + Visualizza il TOTP attualee della voce. Show the protected attributes in clear text. - Mostra in chiaro gli attributi protetti + Visualizza in chiaro gli attributi protetti. + + + Show all the attributes of the entry. + Visualizza tutti gli attributi della voce. Show the attachments of the entry. @@ -7190,7 +7894,7 @@ Comandi disponibili: Names of the attributes to show. This option can be specified more than once, with each attribute shown one-per-line in the given order. If no attributes are specified, a summary of the default attributes is given. - Numero di attributi da mostrare. Questa opzione può essere specificata più di una volta, con ogni attributo mostrato in una riga separata nell'ordine dato. Se nessun attributo è specificato verrà dato un riassunto degli attributi predefiniti. + Numero di attributi da visualizzare. Questa opzione può essere specificata più di una volta, con ogni attributo visualizzato in una riga separata nell'ordine dato. Se nessun attributo è specificato verrà dato un riassunto degli attributi predefiniti. attribute @@ -7198,7 +7902,7 @@ Comandi disponibili: Show an entry's information. - Mostra la informazioni di una voce. + Visualizza la informazioni di una voce. Name of the entry to show. @@ -7218,33 +7922,32 @@ Comandi disponibili: Failed to open database file %1: not found - Impossibile aprire il file di database %1: non trovato + Impossibile aprire il file database %1: non trovato Failed to open database file %1: not a plain file - Impossibile aprire il file di database %1: non un file piatto + Impossibile aprire il file database %1: non un file piatto Failed to open database file %1: not readable - Impossibile aprire il file di database %1: non leggibile + Impossibile aprire il file database %1: non leggibile Enter password to unlock %1: - Immettere la password per sbloccare %1: + Inserisci la password per sbloccare %1: Failed to load key file %1: %2 - Impossibile caricare il file di chiave %1: %2 + Impossibile caricare il file chiave %1: %2 WARNING: You are using an old key file format which KeePassXC may stop supporting in the future. Please consider generating a new key file. - ATTENZIONE: stai utilizzando un vecchio formato di file chiave che KeePassXC potrebbe -smettere di supportare in futuro. + ATTENZIONE: stai usando un vecchio formato di file chiave che KeePassXC potrebbe smettere di supportare in futuro. -Prendere in considerazione la possibilità di generare un nuovo file di chiave. +Prendi in considerazione la possibilità di generare un nuovo file chiave. Invalid YubiKey slot %1 @@ -7254,21 +7957,25 @@ Prendere in considerazione la possibilità di generare un nuovo file di chiave.< Invalid YubiKey serial %1 Seriale YubiKey %1 non valido + + Please present or touch your YubiKey to continue. + Per continuare presenta o tocca la YubiKey . + Enter password to encrypt database (optional): - Immettere la password per crittografare il database (facoltativo): + Inserisci la password per cifrare il database (facoltativo): Do you want to create a database with an empty password? [y/N]: - Si vuole davvero creare un database senza una password? [y/N]: + Vuoi davvero creare un database senza una password? [y/N]: Repeat password: - Ripeti password: + Ripeti password: Error: Passwords do not match. - Errore: le password non corrispondono + Errore: le password non corrispondono. No program defined for clipboard manipulation @@ -7294,7 +8001,7 @@ Prendere in considerazione la possibilità di generare un nuovo file di chiave.< To use okon, you must provide a post-processed file (e.g. file.okon) - Per utilizzare okon, è necessario fornire un file post-elaborato (ad esempio file.okon) + Per usare okon, è necessario fornire un file post-elaborato (ad esempio file.okon) Could not start okon process: %1 @@ -7322,11 +8029,11 @@ Prendere in considerazione la possibilità di generare un nuovo file di chiave.< Used in %1/%2 - Utilizzato in %1/%2 + Usato in %1/%2 Password is used %1 time(s) - La password è stata utilizzata %1 voltaLa password è stata utilizzata %1 volte + La password è stata utilizzata %1 voltaLa password è stata utilizzata %1 volteLa password è stata utilizzata %1 volte Password has expired @@ -7334,11 +8041,11 @@ Prendere in considerazione la possibilità di generare un nuovo file di chiave.< Password expiry was %1 - La password è scaduta il %1 + La password è scaduta il %1 Password expires on %1 - La password scade il %1 + La password scade il %1 Password is about to expire @@ -7346,7 +8053,7 @@ Prendere in considerazione la possibilità di generare un nuovo file di chiave.< Password expires in %1 day(s) - La password scade tra %1 giornoLa password scade tra %1 giorni + La password scade tra %1 giornoLa password scade tra %1 giorniLa password scade tra %1 giorni Password will expire soon @@ -7370,11 +8077,11 @@ Prendere in considerazione la possibilità di generare un nuovo file di chiave.< Debugging mode is disabled. - La modalità di debug è disabilitata. + La modalità debug è disabilitata. Debugging mode is enabled. - La modalità di debug è abilitata. + La modalità debug è abilitata. Operating system: %1 @@ -7418,35 +8125,35 @@ Kernel: %3 %4 over %1 year(s) - oltre %1 anno(i)oltre %1 anno(i) + oltre %1 annooltre %1 annioltre %1 anni about %1 month(s) - circa %1 mese(i)circa %1 mese(i) + circa %1 mese(i)circa %1 mese(i)circa %1 mese(i) %1 week(s) - %1 settimana(e)%1 settimana(e) + %1 settimana(e)%1 settimana(e)%1 settimana(e) %1 day(s) - %1 giorno(i)%1 giorno(i) + %1 giorno(i)%1 giorno(i)%1 giorno(i) %1 hour(s) - %1 ora(e)%1 ora(e) + %1 ora(e)%1 ora(e)%1 ora(e) %1 minute(s) - %1 minuto(i)%1 minuto(i) + %1 minuto(i)%1 minuto(i)%1 minuto(i) - Botan library must be at least 2.11.x, found %1.%2.%3 - La libreria Botan deve essere almeno 2.11.x, trovata %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + La libreria Botan deve essere almeno %1, trovata %2.%3.%4 Cryptographic libraries: - Librerie crittografiche: + Librerie crittografia: AES (%1 rounds) @@ -7538,11 +8245,11 @@ Kernel: %3 %4 The lock file could not be created. Single-instance mode disabled. - Il file di blocco non può essere creato. La modalità a istanza singola è disattivata. + Impossibile creare il file di blocco. La modalità a istanza singola è disattivata. Clearing the clipboard in %1 second(s)… - Cancellazione degli appunti in %1 secondo…Cancellazione degli appunti in %1 secondi… + Cancellazione degli appunti in %1 secondo…Cancellazione degli appunti in %1 secondi…Cancellazione degli appunti in %1 secondi… Group @@ -7578,17 +8285,17 @@ Kernel: %3 %4 Benchmark %1 delay - Test delle prestazioni %1 ritardo + Test prestazioni per %1 di ritardo %1 ms milliseconds - %1 ms%1 ms + %1 ms%1 ms%1 ms %1 s seconds - %1 s%1 s + %1 s%1 s%1 s Do you really want to delete the entry "%1" for good? @@ -7596,11 +8303,11 @@ Kernel: %3 %4 Do you really want to delete %n entry(s) for good? - Vuoi davvero eliminare %n voce per sempre?Vuoi davvero eliminare %n voci per sempre? + Vuoi davvero eliminare %n voce per sempre?Vuoi davvero eliminare %n voci per sempre?Vuoi davvero eliminare %n voci per sempre? Delete entry(s)? - Eliminare voce?Eliminare voci? + Eliminare voce?Eliminare voci?Eliminare voci? Do you really want to move entry "%1" to the recycle bin? @@ -7608,11 +8315,11 @@ Kernel: %3 %4 Do you really want to move %n entry(s) to the recycle bin? - Vuoi davvero spostare %n voce nel cestino?Vuoi davvero spostare %n voci nel cestino? + Vuoi davvero spostare %n voce nel cestino?Vuoi davvero spostare %n voci nel cestino?Vuoi davvero spostare %n voci nel cestino? Move entry(s) to recycle bin? - Spostare voce nel cestino?Spostare voci nel cestino? + Spostare voce nel cestino?Spostare voci nel cestino?Spostare voci nel cestino? Replace references to entry? @@ -7620,7 +8327,7 @@ Kernel: %3 %4 Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? - La voce "%1" ha %2 riferimento. Sovrascrivere i riferimenti con i valori, ignorare questa voce o eliminare comunque?La voce "%1" ha %2 riferimenti. Sovrascrivere i riferimenti con i valori, ignorare questa voce o eliminare comunque? + La voce "%1" ha %2 riferimento. Sovrascrivere i riferimenti con i valori, ignorare questa voce o eliminare comunque?La voce "%1" ha %2 riferimenti. Sovrascrivere i riferimenti con i valori, ignorare questa voce o eliminare comunque?La voce "%1" ha %2 riferimenti. Sovrascrivere i riferimenti con i valori, ignorare questa voce o eliminare comunque? User name @@ -7644,7 +8351,7 @@ Kernel: %3 %4 Unsupported key file version: %1 - Versione del file chiave non supportata: %1 + Versione file chiave non supportata: %1 Checksum mismatch! Key file may be corrupt. @@ -7660,7 +8367,7 @@ Kernel: %3 %4 filenames of the password databases to open (*.kdbx) - i nomi dei file di database delle password da aprire (*.kdbx) + i nomi dei file database delle password da aprire (*.kdbx) path to a custom config file @@ -7682,10 +8389,6 @@ Kernel: %3 %4 read password of the database from stdin leggi la password del database da stdin - - allow app screen recordering and screenshots - consenti la registrazione dello schermo dell'app e screenshot - Locked databases. Database bloccati. @@ -7698,6 +8401,10 @@ Kernel: %3 %4 Another instance of KeePassXC is already running. È già in esecuzione un'altra istanza di KeePassXC. + + KeePassXC is not running. No open database to lock + KeePassXC non è in esecuzione. Nessun database aperto da bloccare + Fatal error while testing the cryptographic functions. Errore fatale durante il test delle funzioni di crittografia. @@ -7706,10 +8413,6 @@ Kernel: %3 %4 KeePassXC - Error KeePassXC - Errore - - Warning: Failed to prevent screenshots on a top level window! - Avviso: impossibile impedire screenshot in una finestra di primo livello! - Database password: Password del database: @@ -7730,11 +8433,225 @@ Kernel: %3 %4 Failed to sign challenge using Windows Hello. - Impossibile firmare la prova utilizzando Windows Hello. + Impossibile firmare la prova usando Windows Hello. - Please present or touch your YubiKey to continue. - Per favore presenta o tocca la tua YubiKey per continuare. + Warning: Failed to block screenshot capture on a top-level window. + Attenzione: fallito il blocco dell'acquisizione di screenshot in una finestra di primo livello. + + + Invalid Cipher + Cifratura non valida + + + Invalid KDF + KDF non valido + + + Access to all entries is denied + L'accesso a tutte le voci è negato + + + allow screenshots and app recording (Windows/macOS) + consentire screenshot e registrazione con app (Windows / macOS) + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + Attestazione non supportata + + + Credential is excluded + La credenziale è esclusa + + + Passkeys request canceled + Richiesta di passkey annullata + + + Invalid user verification + Verifica utente non valida + + + Empty public key + Chiave pubblica vuota + + + Invalid URL provided + Fornita URL non valido + + + Passkeys + Passkey + + + AES initialization failed + Inizializzazione AES non riuscita + + + AES encrypt failed + Cifratura AES non riuscita + + + Failed to store in Linux Keyring + Salvataggio su Portachiavi Linux fallito + + + Polkit returned an error: %1 + Polkit ha restituito un errore: %1 + + + Could not locate key in keyring + Impossibile trovare chiave nel portachiavi + + + Could not read key in keyring + Impossibile leggere chiave nel portachiavi + + + AES decrypt failed + Decifratura AES non riuscita + + + No Polkit authentication agent was available + Non era disponibile nessun agente di autenticazione Polkit + + + Polkit authorization failed + Autenticazione Polkit non riuscita + + + No Quick Unlock provider is available + Non è disponibile nessun fornitore per Sblocco rapido + + + Failed to init KeePassXC crypto. + Impossibile inizializzare la cifratura di KeePassXC. + + + Failed to encrypt key data. + Impossibile cifrare i dati chiave. + + + Failed to get Windows Hello credential. + Impossibile ottenere credenziale Windows Hello. + + + Failed to decrypt key data. + Impossibile decifrare dati chiave. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length + @@ -7773,21 +8690,9 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - Escludere le voci scadute dal report - - - Show only entries which have URL set - Mostra solo le voci con URL impostato - - - Show only entries which have browser settings in custom data - Mostra solo le voci con impostazioni del browser nei dati personalizzati - Double-click entries to edit. - Fare doppio clic sulle voci da modificare. + Doppio clic sulle voci da modificare. List of entry URLs @@ -7811,15 +8716,15 @@ Kernel: %3 %4 (Excluded) - (Esclusa) + (Esclusa) This entry is being excluded from reports - Questa voce è stata esclusa dai rapporti + Questa voce è stata esclusa dai rapporti Please wait, browser statistics is being calculated… - Si prega di attendere, le statistiche del browser sono in fase di calcolo ... + Attendi le statistiche del browser sono in fase di calcolo... No entries with a URL, or none has browser extension settings saved. @@ -7843,26 +8748,34 @@ Kernel: %3 %4 Delete Entry(s)… - Elimina voce…Elimina voci… + Elimina voce…Elimina voci…Elimina voci… Exclude from reports - Escludere dal rapporto + Escludi dal rapporto + + + Only show entries that have a URL + Mostra solo voci che hanno un URL + + + Only show entries that have been explicitly allowed or denied + Mostra solo voci che sono state esplicitamente consentite o negate + + + Show expired entries + Mostra voci scadute + + + (Expired) + (scaduta) ReportsWidgetHealthcheck - - Exclude expired entries from the report - Escludere le voci scadute dal report - - - Also show entries that have been excluded from reports - Mostra anche le voci escluse dai rapporti - Hover over reason to show additional details. Double-click entries to edit. - Spostare il cursore sulla notifica per vedere dettagli aggiuntivi. Doppio-click per modificare la voce. + Per visualizzzare dettagli aggiuntivi sposta il cursore sulla notifica. Doppio clic per modificare le voci. Bad @@ -7880,7 +8793,7 @@ Kernel: %3 %4 Poor — password should be changed - Inefficace — la password dovrebbe essere cambiata + Inefficace — la password dovrebbe essere modificata Weak @@ -7889,19 +8802,19 @@ Kernel: %3 %4 Weak — consider changing the password - Debole — considera di cambiare password + Debole — considera di modificare la password (Excluded) - (Esclusa) + (Esclusa) This entry is being excluded from reports - Questa voce è stata esclusa dai rapporti + Questa voce è stata esclusa dai rapporti Please wait, health data is being calculated… - Si prega di attendere, i dati sulla salute sono in fase di calcolo ... + Attendi, i dati sulla salute sono in fase di calcolo ... Congratulations, everything is healthy! @@ -7929,18 +8842,30 @@ Kernel: %3 %4 Delete Entry(s)… - Elimina voce…Elimina voci… + Elimina voce…Elimina voci…Elimina voci… Exclude from reports - Escludere dal rapporto + Escludi dal rapporto + + + Show expired entries + Mostra voci scadute + + + Show entries that have been excluded from reports + Mostra voci che sono state escluse dai rapporti + + + (Expired) + (scaduta) ReportsWidgetHibp CAUTION: This report requires sending information to the Have I Been Pwned online service (https://haveibeenpwned.com). If you proceed, your database passwords will be cryptographically hashed and the first five characters of those hashes will be sent securely to this service. Your database remains secure and cannot be reconstituted from this information. However, the number of passwords you send and your IP address will be exposed to this service. - ATTENZIONE: Questo rapporto richiede l'invio di informazioni al servizio online Have I Been Pwned (https://haveibeenpwned.com). Se si procede le password verranno crittografate e i primi cinque caratteri verranno inviati in modo sicuro al servizio. Il tuo database rimane sicuro e non può essere ricostruito da queste informazioni. Tuttavia il numero di password inviate sarà esposto a questo servizio. + ATTENZIONE: Questo rapporto richiede l'invio di informazioni al servizio online Have I Been Pwned (https://haveibeenpwned.com). Se si procede, alle password del database sarà applicato un hash crittografico e i primi cinque caratteri saranno inviati in modo sicuro al servizio. Il database rimane sicuro e non può essere ricostruito da queste informazioni. Tuttavia il numero di password inviate sarà esposto a questo servizio. Perform Online Analysis @@ -7948,11 +8873,12 @@ Kernel: %3 %4 Also show entries that have been excluded from reports - Mostra anche le voci escluse dai rapporti + Visualizza anche le voci escluse dai rapporti This build of KeePassXC does not have network functions. Networking is required to check your passwords against Have I Been Pwned databases. - Questa versione di KeePassXC non possiede funzionalità di rete. La funzionalità di rete è richiesta per verificare la tua password con i database di Have I Been Pwned + Questa versione di KeePassXC non possiede funzionalità di rete. +La funzionalità di rete è richiesta per verificare la password con i database di Have I Been Pwned. Congratulations, no exposed passwords! @@ -7968,20 +8894,20 @@ Kernel: %3 %4 Password exposed… - Password esposta… + Password esposta... (Excluded) - (Esclusa) + (Esclusa) This entry is being excluded from reports - Questa voce è stata esclusa dai rapporti + Questa voce è stata esclusa dai rapporti once Password exposure amount - una volta + una volta up to 10 times @@ -8024,18 +8950,77 @@ Kernel: %3 %4 Delete Entry(s)… - Elimina voce…Elimina voci… + Elimina voce…Elimina voci…Elimina voci… Exclude from reports - Escludere dal rapporto + Escludi dal rapporto + + + + ReportsWidgetPasskeys + + Export + Esportare + + + Import + Importa + + + List of entry URLs + Elenco degli URL delle voci + + + Please wait, list of entries with Passkeys is being updated… + Attendere, l'elenco di voci con passkey viene aggiornato... + + + No entries with Passkeys. + Nessuna voce con passkey. + + + Title + Titolo + + + Path + Percorso + + + Username + Nome utente + + + URLs + URL + + + Edit Entry… + Modifica voce… + + + Delete Entry(s)… + Elimina voce…Elimina voci…Elimina voce/i… + + + Relying Party + Relying Party + + + Show expired entries + Mostra voci scadute + + + (Expired) + (scaduta) ReportsWidgetStatistics Hover over lines with error icons for further information. - Passare il mouse sulle righe con icone di errore per ulteriori informazioni. + Per ulteriori informazioni passa il mouse sulle righe con icone di errore. Name @@ -8111,7 +9096,7 @@ Kernel: %3 %4 More than 10% of passwords are reused. Use unique passwords when possible. - Più del 10% delle password vengono riutilizzate. Utilizzare password univoche quando possibile. + Più del 10% delle password sono riusate. Usa password univoche quando possibile. Maximum password reuse @@ -8119,7 +9104,7 @@ Kernel: %3 %4 Some passwords are used more than three times. Use unique passwords when possible. - Alcune password vengono utilizzate più di tre volte. Utilizzare password univoche quando possibile. + Alcune password vengono utilizzate più di tre volte. Usa password univoche quando possibile. Number of short passwords @@ -8135,15 +9120,15 @@ Kernel: %3 %4 Recommend using long, randomized passwords with a rating of 'good' or 'excellent'. - Consiglia di utilizzare password lunghe e randomizzate con una valutazione "buona" o "eccellente". + Ti consigliamo di usare password lunghe e randomizzate con una valutazione "buona" o "eccellente". Entries excluded from reports - Voci escluse dal rapporto + Voci escluse dal rapporto Excluding entries from reports, e. g. because they are known to have a poor password, isn't necessarily a problem but you should keep an eye on them. - Escludere voci dal rapporto, ad esempio perché possiedono una password scadente, non è necessariamente un problema ma dovrebbero essere tenute sotto controllo. + Escludi voci dal rapporto, ad esempio perché possiedono una password scadente, non è necessariamente un problema ma dovrebbero essere tenute sotto controllo. Average password length @@ -8186,11 +9171,11 @@ Kernel: %3 %4 Restricted lifetime is not supported by the agent (check options). - Durata limitata non è supportata dall'agente (controllare le opzioni). + Durata limitata non è supportata dall'agente (controlla le opzioni). A confirmation request is not supported by the agent (check options). - Una richiesta di conferma non è supportata dall'agente (controllare le opzioni). + Una richiesta di conferma non è supportata dall'agente (controlla le opzioni). Security keys are not supported by the agent or the security key provider is unavailable. @@ -8202,14 +9187,14 @@ Kernel: %3 %4 No agent running, cannot list identities. - Nessun agente in esecuzione non può elencare le identità. + Nessun agente in esecuzione, impossibile elencare le identità. SearchHelpWidget Search Help - Cercare nell'aiuto + Cerca nella Guida in linea Search terms are as follows: [modifiers][field:]["]term["] @@ -8225,7 +9210,7 @@ Kernel: %3 %4 exclude term from results - Escludere il termine dai risultati + Escludi termine dai risultati match term exactly @@ -8233,7 +9218,7 @@ Kernel: %3 %4 use regex in term - utilizzare regex nel termine + usa regex nel termine Fields @@ -8268,7 +9253,11 @@ Kernel: %3 %4 Search Help - Cercare nell'aiuto + Cerca nella Guida in linea + + + Save Search + Salva ricerca Search (%1)… @@ -8326,7 +9315,7 @@ Kernel: %3 %4 Enable KeepassXC Freedesktop.org Secret Service integration - Abilitare l'integrazione di KeepassXC con Freedesktop.org Secret Service + Abilita l'integrazione di KeepassXC con Freedesktop.org Secret Service General @@ -8334,7 +9323,7 @@ Kernel: %3 %4 Show notification when passwords are retrieved by clients - Mostra notifica quando le password vengono recuperate dai client + Visualizza notifica quando le password vengono recuperate dai client <html><head/><body><p>If enabled, any attempt to read a password must be confirmed. Otherwise, clients can read passwords without confirmation when the database is unlocked.</p><p>This option only covers the access to the password of an entry. Clients can always enumerate the items of exposed databases and query their attributes.</p></body></html> @@ -8342,7 +9331,7 @@ Kernel: %3 %4 Confirm when passwords are retrieved by clients - Confermare quando le password vengono recuperate dai client + Conferma quando le password vengono recuperate dai client <html><head/><body><p><span style=" @@ -8358,7 +9347,7 @@ Kernel: %3 %4 Confirm when clients request entry deletion - Confermare quando i client richiedono l'eliminazione delle voci + Conferma quando i client richiedono l'eliminazione delle voci <html><head/><body><p>This improves compatibility with certain applications @@ -8366,7 +9355,7 @@ Kernel: %3 %4 crash the client if the database can not be unlocked within a certain timeout. (Usually 25s, but may be a different value set in applications.)</p></body></html> - <html><head/><body><p>Ciò migliora la compatibilità con determinate applicazioni + <html><head/><body><p>Questo migliora la compatibilità con determinate applicazioni che cercano la password senza prima sbloccare il database.</p><p>Ma abilitare questo può anche arrestare in modo anomalo il client se il database non può essere sbloccato entro un determinato timeout. (di solito 25s, ma può essere un valore diverso impostato nelle applicazioni.)</p></body></html> @@ -8378,7 +9367,7 @@ Kernel: %3 %4 Exposed database groups: - Gruppi di database esposti: + Gruppi database esposti: Authorization @@ -8390,11 +9379,11 @@ Kernel: %3 %4 <b>Warning:</b> - <b>Attenzione:</b> + <b>Attenzione:</b> Save current changes to activate the plugin and enable editing of this section. - Salvare i cambiamenti per attivare il plugin e modificare questa sezione. + Salva i cambiamenti per attivare il plugin e modificare questa sezione. @@ -8421,7 +9410,7 @@ Kernel: %3 %4 Only show warnings and errors - Mostra solo avvisi ed errori + Visualizza solo avvisi ed errori Own certificate @@ -8441,7 +9430,7 @@ Kernel: %3 %4 Fingerprint: - impronta digitale: + Impronta digitale: Signer name field @@ -8456,7 +9445,7 @@ Kernel: %3 %4 ShareExport Could not write export container. - Impossibile scrivere il contenitore di esportazione. + Impossibile scrivere il contenitore esportazione. @@ -8486,7 +9475,7 @@ Kernel: %3 %4 Conflicting export target path %1 in %2 - Percorso di destinazione esportazione in conflitto %1 in %2 + Percorso destinazione esportazione in conflitto %1 in %2 Export to %1 failed (%2) @@ -8501,11 +9490,38 @@ Kernel: %3 %4 Esporta in %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All - Tutto + Clear Search + Cancella ricerca + + + All Entries + Tutte le voci Expired @@ -8516,6 +9532,25 @@ Kernel: %3 %4 Password deboli + + TagView + + Remove Search + Rimuovi ricerca + + + Remove Tag + Rimuovi etichetta + + + Confirm Remove Tag + Conferma rimozione etichetta + + + Remove tag "%1" from all entries in this database? + Vuoi rimuovere l'etichetta "%1" da tutte le voci in questo database? + + TotpDialog @@ -8528,7 +9563,7 @@ Kernel: %3 %4 Expires in <b>%n</b> second(s) - Scadenza tra <b>%n</b> secondiScadenza tra <b>%n</b> secondo(i) + Scadenza tra <b>%n</b> secondiScadenza tra <b>%n</b> secondo(i)Scadenza tra <b>%n</b> secondo(i) @@ -8608,7 +9643,7 @@ Kernel: %3 %4 digits - cifre + cifre Invalid TOTP Secret @@ -8652,11 +9687,11 @@ Esempio: JBSWY3DPEHPK3PXP Software Update - Aggiornamento software + Aggiornamento programma An error occurred when trying to retrieve update information, please try again later. - Si è verificato un errore durante il tentativo di recuperare le informazioni di aggiornamento, riprovare in un secondo momento. + Si è verificato un errore durante il tentativo di recuperare le informazioni di aggiornamento, riprova in un secondo momento. <strong>A new version is available.</strong><br/>KeePassXC %1 can be <a href="https://keepassxc.org/download/">downloaded here</a>. @@ -8664,34 +9699,14 @@ Esempio: JBSWY3DPEHPK3PXP You have the latest version of KeePassXC - Hai l'ultima versione di KeePassXC + Questa versione di KeePassXC è aggiornata WelcomeWidget Start storing your passwords securely in a KeePassXC database - Inizia ad archiviare le tue password in modo sicuro in un database di KeePassXC - - - Create new database - Crea un nuovo database - - - Open existing database - Apri un database esistente - - - Import from KeePass 1 - Importa da KeePass 1 - - - Import from 1Password - Importa da 1Password - - - Import from CSV - Importa da CSV + Inizio archivziazione password in modo sicuro in un database KeePassXC Recent databases @@ -8699,12 +9714,24 @@ Esempio: JBSWY3DPEHPK3PXP Open a recent database - Aprire un database recente + Apri database recente Welcome to KeePassXC %1 Benvenuto in KeePassXC %1 + + Create Database + + + + Open Database + + + + Import File + + WinUtils @@ -8721,50 +9748,19 @@ Esempio: JBSWY3DPEHPK3PXP Impossibile registrare la scorciatoia globale - - WindowsHello - - Failed to init KeePassXC crypto. - Impossibile inizializare la crittografia KeePassXC. - - - Failed to encrypt key data. - Impossibile crittografare i dati chiave. - - - Failed to get Windows Hello credential. - Impossibile ottenere le credenziali di Windows Hello. - - - Failed to decrypt key data. - Impossibile decrittografare i dati chiave. - - YubiKey - - %1 No interface, slot %2 - %1 Nessuna interfaccia, slot %2 - General: Generale: Could not find interface for hardware key with serial number %1. Please connect it to continue. - Impossibile trovare l'interfaccia per la chiave hardware con numero di serie %1. Si prega di collegarlo per continuare. + Impossibile trovare l'interfaccia per la chiave hardware con numero di serie %1. Collegala per continuare. YubiKeyEditWidget - - Refresh hardware tokens - Aggiornare i token hardware - - - Refresh - Aggiorna - Hardware key slot selection Selezione degli slot dei tasti hardware @@ -8795,45 +9791,34 @@ Esempio: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove - Risposta di verifica impostata, fare clic per modificare o rimuovere - - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>Se si possiede una <a href="https://www.yubico.com/">YubiKey</a> o <a href="https://onlykey.io">OnlyKey</a>, è possibile utilizzarla per una protezione aggiuntiva.</p><p>La chiave richiede che uno dei suoi slot sia programmato come <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Risposta di verifica</a>.</p> + Risposta di verifica impostata, fai clic per modificarla/rimuoverla Detecting hardware keys… - Rilevamento delle chiavi hardware in corso… + Rilevamento delle chiavi hardware... No hardware keys detected Nessuna chiave hardware rilevata - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 Slot specificato non valido - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] Risposta di verifica - Slot %3 - The YubiKey PCSC interface has not been initialized. L'interfaccia PCSC YubiKey non è stata inizializzata. - - Hardware key is currently in use. - La chiave hardware è già in uso. - Could not find or access hardware key with serial number %1. Please present it to continue. - Impossibile trovare o accedere alla chiave hardware con numero di serie %1. Si prega di presentarla per continuare. + Impossibile trovare o accedere alla chiave hardware con numero di serie %1. Presentala per continuare. Hardware key is locked or timed out. Unlock or re-present it to continue. @@ -8847,6 +9832,21 @@ Esempio: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 Impossibile completare una risposta di verifica, il codice di errore PCSC era: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + Premi + + + Passive + USB Challenge-Response Key no interaction required + Passiva + YubiKeyInterfaceUSB @@ -8854,14 +9854,6 @@ Esempio: JBSWY3DPEHPK3PXP Unknown Sconosciuto - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] Slot configurato - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] Risposta di verifica - Slot %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8876,13 +9868,9 @@ Esempio: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. L'interfaccia USB YubiKey non è stata inizializzata. - - Hardware key is currently in use. - La chiave hardware è già in uso. - Could not find hardware key with serial number %1. Please plug it in to continue. - Non è stato possibile trovare una chiave hardware nello slot numero %1. Per favore collegarne una per procedere. + Non è stato possibile trovare una chiave hardware nello slot numero %1. Ccollegane una per procedere. Hardware key timed out waiting for user interaction. @@ -8896,5 +9884,15 @@ Esempio: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 Impossibile completare challenge-response, l'errore specifico è: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_ja.ts b/share/translations/keepassxc_ja.ts index 1e7cbb622..a7e318def 100644 --- a/share/translations/keepassxc_ja.ts +++ b/share/translations/keepassxc_ja.ts @@ -15,11 +15,11 @@ KeePassXC is distributed under the terms of the GNU General Public License (GPL) version 2 or (at your option) version 3. - KeePassXC 㯠GNU General Public License (GPL) version 2 ã¾ãŸã¯ version 3 ã®ã„ãšã‚Œã‹ã‚’é¸æŠžå¯èƒ½ãªæ¡ä»¶ã®ã‚‚ã¨ã§é…布ã•れã¦ã„ã¾ã™ã€‚ + KeePassXC 㯠GNU 一般公衆利用許諾書 (GPL) ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2 ã¾ãŸã¯ (希望ã«ã‚ˆã£ã¦ã¯) ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 3 ã®ã„ãšã‚Œã‹ã‚’é¸æŠžå¯èƒ½ãªæ¡ä»¶ã®ã‚‚ã¨ã§é…布ã•れã¦ã„ã¾ã™ã€‚ Project Maintainers: - プロジェクトメンテナ: + プロジェクトメンテナー: Special thanks from the KeePassXC team go to debfx for creating the original KeePassX. @@ -39,7 +39,7 @@ Include the following information whenever you report a bug: - ãƒã‚°ã‚’報告ã™ã‚‹éš›ã«ä¸‹è¨˜ã®æƒ…報をå«ã‚ã¦ãã ã•ã„: + ãƒã‚°ã‚’報告ã™ã‚‹ã¨ãã«ä»¥ä¸‹ã®æƒ…報を "英語ã§" å«ã‚ã¦ãã ã•ã„: Copy to clipboard @@ -80,32 +80,32 @@ Details 詳細 + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + ã‚ãªãŸã®é¸æŠžã¯ã€è¦æ±‚ã—ãŸã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã¨ KeePassXC ã®ä¸¡æ–¹ãŒå®Ÿè¡Œã•れã¦ã„ã‚‹é–“ã¯ä¿å­˜ã•れã¾ã™ã€‚ + Remember 記憶ã™ã‚‹ Allow Selected - é¸æŠžã—ãŸã‚‚ã®ã‚’è¨±å¯ - - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - + é¸æŠžã—ãŸã‚‚ã®ã‚’許å¯ã™ã‚‹ Deny All && Future - + 今後もå«ã‚ã™ã¹ã¦æ‹’å¦ã™ã‚‹ Allow All && &Future - + 今後もå«ã‚ã™ã¹ã¦è¨±å¯ã™ã‚‹ AccessControlDialog::DenyButton Deny for this program - ã“ã®ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’æ‹’å¦ + ã“ã®ãƒ—ログラムを拒å¦ã™ã‚‹ @@ -122,21 +122,25 @@ Use OpenSSH OpenSSH を使用ã™ã‚‹ + + Use both agents + 両方ã®ã‚¨ãƒ¼ã‚¸ã‚§ãƒ³ãƒˆã‚’使用ã™ã‚‹ + SSH_AUTH_SOCK override SSH_AUTH_SOCK ã®ã‚ªãƒ¼ãƒãƒ¼ãƒ©ã‚¤ãƒ‰ SSH_AUTH_SOCK value - SSH_AUTH_SOCK 値 + SSH_AUTH_SOCK ã®å€¤ (empty) - (空) + (空白) SSH_SK_PROVIDER value - SSH_SK_PROVIDER 値 + SSH_SK_PROVIDER ã®å€¤ SSH_SK_PROVIDER override @@ -150,10 +154,6 @@ SSH Agent connection is working! SSH エージェント接続ãŒå‹•作中ã§ã™ï¼ - - Use both agents - - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security セキュリティ + + This setting cannot be enabled when minimize on unlock is enabled. + ã“ã®è¨­å®šã¯ã€ãƒ­ãƒƒã‚¯è§£é™¤æ™‚ã®æœ€å°åŒ–ãŒæœ‰åйãªå ´åˆã¯ä½¿ç”¨ã§ãã¾ã›ã‚“。 + Access error for config file %1 設定ファイル %1 ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚¨ãƒ©ãƒ¼ @@ -219,11 +223,11 @@ Are you sure you want to reset all general and security settings to default? - å…¨ã¦ã®å…¨èˆ¬è¨­å®šã¨ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£è¨­å®šã‚’åˆæœŸè¨­å®šã«æˆ»ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹ï¼Ÿ + 本当ã«ã€ã™ã¹ã¦ã®å…¨èˆ¬è¨­å®šã¨ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£è¨­å®šã‚’åˆæœŸè¨­å®šã«æˆ»ã—ã¾ã™ã‹ï¼Ÿ Select backup storage directory - ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’é¸æŠž + ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã‚’é¸æŠž @@ -256,6 +260,10 @@ Remember previously used databases 以å‰ä½¿ç”¨ã—ãŸãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’記憶ã™ã‚‹ + + recent files + 最近使用ã—ãŸãƒ•ァイル + Load previously open databases on startup 起動時ã«å‰å›žé–‹ã„ãŸãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’読ã¿è¾¼ã‚€ @@ -266,7 +274,7 @@ Check for updates at application startup once per week - èµ·å‹•æ™‚ã«æ›´æ–°ã‚’確èªã™ã‚‹ (週一回) + èµ·å‹•æ™‚ã«æ›´æ–°ã‚’確èªã™ã‚‹ (週 1 回) Include beta releases when checking for updates @@ -274,22 +282,22 @@ On database unlock, show entries that - + 次ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚’データベースã®ãƒ­ãƒƒã‚¯è§£é™¤æ™‚ã«è¡¨ç¤ºã™ã‚‹ have expired On database unlock, show entries that... - + 有効期é™åˆ‡ã‚Œ days On database unlock, show entries that will expire within %1 days - + æ—¥ will expire within On database unlock, show entries that... - + 期é™åˆ‡ã‚Œã¾ã§ã‚㨠File Management @@ -321,7 +329,7 @@ Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". - + データベースã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ファイルã®å ´æ‰€ã‚’指定ã—ã¦ãã ã•ã„。"{DB_FILENAME}" ã¯ä¿å­˜ã•れãŸãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®ãƒ•ァイルåã‹ã‚‰æ‹¡å¼µå­ã‚’å–り除ã„ãŸã‚‚ã®ã«ç½®ãæ›ãˆã‚‰ã‚Œã¾ã™ã€‚{TIME:<format>} ã¯ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã—ãŸæ™‚刻ã«ç½®ãæ›ãˆã‚‰ã‚Œã¾ã™ã€‚https://doc.qt.io/qt-5/qdatetime.html#toString を確èªã—ã¦ãã ã•ã„。<format> 既定ã®ãƒ•ォーマット㯠"dd_MM_yyyy_hh-mm-ss" ã§ã™ã€‚ {DB_FILENAME}.old.kdbx @@ -373,7 +381,7 @@ Website icon download timeout in seconds - ウェブサイトアイコンダウンロードã®ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã¾ã§ã®ç§’ + ウェブサイトアイコンダウンロードã®ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã¾ã§ã®æ™‚é–“ (ç§’) sec @@ -408,6 +416,10 @@ Toolbar button style: ツールãƒãƒ¼ã®ãƒœã‚¿ãƒ³ã®ã‚¹ã‚¿ã‚¤ãƒ«: + + Show passwords in color + パスワードã«è‰²ã‚’付ã‘ã¦è¡¨ç¤ºã™ã‚‹ + Use monospaced font for notes メモã«ç­‰å¹…フォントを使用ã™ã‚‹ @@ -491,7 +503,7 @@ Remember last typed entry for: - + 最後ã«å…¥åŠ›ã—ãŸã‚¨ãƒ³ãƒˆãƒªãƒ¼ã®è¨˜æ†¶: @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons ウェブサイトアイコンã®ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã« DuckDuckGo ã®ã‚µãƒ¼ãƒ“スを使用ã™ã‚‹ + + Hide TOTP in the entry preview panel + エントリーã®ãƒ—レビューパãƒãƒ«ã§ã€TOTP ã‚’éžè¡¨ç¤ºã«ã™ã‚‹ + AutoType @@ -607,7 +623,7 @@ Invalid entry provided - æä¾›ã•れãŸã‚¨ãƒ³ãƒˆãƒªãƒ¼ãŒä¸æ­£ã§ã™ + æä¾›ã•れãŸã‚¨ãƒ³ãƒˆãƒªãƒ¼ãŒæ­£ã—ãã‚りã¾ã›ã‚“ Bracket imbalance detected, found extra { or } @@ -625,18 +641,22 @@ Very long delay detected, max is %1: %2 é…å»¶æ™‚é–“ã®æœ€å¤§å€¤ã¯ %1 ã§ã™: %2 + + Entry does not have attribute for PICKCHARS: %1 + エントリー㫠PICKCHARS ã®å±žæ€§ãŒã‚りã¾ã›ã‚“: %1 + Invalid conversion type: %1 - 変æ›å½¢å¼ãŒä¸æ­£ã§ã™: %1 + 変æ›å½¢å¼ãŒæ­£ã—ãã‚りã¾ã›ã‚“: %1 Invalid conversion syntax: %1 - å¤‰æ›æ§‹æ–‡ãŒä¸æ­£ã§ã™: %1 + å¤‰æ›æ§‹æ–‡ãŒæ­£ã—ãã‚りã¾ã›ã‚“: %1 Invalid regular expression syntax %1 %2 - æ­£è¦è¡¨ç¾ã®æ§‹æ–‡ãŒä¸æ­£ã§ã™: %1 + æ­£è¦è¡¨ç¾ã®æ§‹æ–‡ãŒæ­£ã—ãã‚りã¾ã›ã‚“: %1 %2 @@ -656,7 +676,7 @@ (empty) - (空) + (空白) Default sequence @@ -718,11 +738,16 @@ Ctrl+1 - Type username<br/> Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> - + <p>é«˜åº¦ãªæ¤œç´¢ã‚¯ã‚¨ãƒªã‚’使用ã—ã¦ã€é–‹ã„ã¦ã„るデータベースã‹ã‚‰ä»»æ„ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚’検索ã§ãã¾ã™ã€‚以下ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆãŒä¾¿åˆ©ã§ã™:<br/> +Ctrl+F - データベース検索切り替ãˆ<br/> +Ctrl+1 - ユーザーåを入力<br/> +Ctrl+2 - パスワードを入力<br/> +Ctrl+3 - TOTP を入力<br/> +Ctrl+4 - 仮想キーボードを使用 (Windows ã®ã¿)</p> Search all open databases - é–‹ã„ã¦ã„ã‚‹å…¨ã¦ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’検索ã™ã‚‹ + é–‹ã„ã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’検索ã™ã‚‹ Search… @@ -762,7 +787,7 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Use Virtual Keyboard - + 仮想キーボードを使用ã™ã‚‹ @@ -793,19 +818,19 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Deny All - å…¨ã¦æ‹’å¦ + ã™ã¹ã¦æ‹’å¦ Disable for this site ã“ã®ã‚µã‚¤ãƒˆã‚’無効化 + + Undo + å…ƒã«æˆ»ã™ + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser エントリーをä¿å­˜ - Ok OK @@ -820,13 +845,70 @@ Please select the correct database for saving credentials. 複数ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’é–‹ã„ã¦ã„ã¾ã™ã€‚ 資格情報をä¿å­˜ã™ã‚‹é©åˆ‡ãªãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’é¸æŠžã—ã¦ãã ã•ã„。 + + KeePassXC - Select Database + KeePassXC - ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’é¸æŠž + + + + BrowserPasskeysConfirmationDialog + + Cancel + キャンセル + + + Update + æ›´æ–° + + + Authenticate + èªè¨¼ + + + Register new + 今ã™ã登録 + + + Register + 登録 + + + Timeout in <b>%n</b> seconds... + <b>%n</b> ç§’ã§ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆ... + + + Do you want to register Passkey for: + パスキーを登録ã—ã¾ã™ã‹: + + + Existing Passkey found. +Do you want to register a new Passkey for: + 既存ã®ãƒ‘スキーãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸã€‚ +æœ¬å½“ã«æ–°ã—ã„パスキーを登録ã—ã¾ã™ã‹: + + + Select the existing Passkey and press Update to replace it. + ç½®ãæ›ãˆã‚‹ã«ã¯ã€æ—¢å­˜ã®ãƒ‘ã‚¹ã‚­ãƒ¼ã‚’é¸æŠžã—ã¦æ›´æ–°ã‚’押ã—ã¦ãã ã•ã„。 + + + Authenticate Passkey credentials for: + パスキーèªè¨¼è³‡æ ¼æƒ…å ±ã§èªè¨¼: + + + Relying Party: %1 + + + + Username: %1 + + + + KeePassXC - Passkey credentials + + BrowserService - - KeePassXC: Create a new group - KeePassXC: æ–°ã—ã„ã‚°ãƒ«ãƒ¼ãƒ—ã‚’ä½œæˆ - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -835,10 +917,6 @@ Do you want to create this group? ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—を作æˆã—ã¾ã™ã‹ï¼Ÿ - - KeePassXC: New key association request - KeePassXC: æ–°ã—ã„キーã®ã‚¢ã‚½ã‚·ã‚¨ãƒ¼ã‚·ãƒ§ãƒ³è¦æ±‚ - You have received an association request for the following database: %1 @@ -855,28 +933,16 @@ chrome-laptop. Save and allow access アクセスを許å¯ã—ã¦ä¿å­˜ - - KeePassXC: Overwrite existing key? - KeePassXC: 既存ã®ã‚­ãƒ¼ã‚’上書ãã—ã¾ã™ã‹ï¼Ÿ - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? 共有暗å·åŒ–キー "%1" ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚ 上書ãã—ã¾ã™ã‹ï¼Ÿ - - KeePassXC: Update Entry - KeePassXC: エントリーを更新 - Do you want to update the information in %1 - %2? %1 - %2 ã®æƒ…報を更新ã—ã¾ã™ã‹ï¼Ÿ - - KeePassXC: Delete entry - KeePassXC: エントリーを削除 - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -886,50 +952,45 @@ Do you want to delete the entry? - Converting attributes to custom data… - 属性をカスタムデータã«å¤‰æ›ã—ã¦ã„ã¾ã™â€¦ + %1 (Passkey) + %1 (パスキー) - Abort - 中止 + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: KeePassHTTP ã®å±žæ€§ã‚’変æ›ã—ã¾ã—㟠+ KeePassXC - Create a new group + - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - %1 個ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‹ã‚‰å±žæ€§ã‚’正常ã«å¤‰æ›ã—ã¾ã—ãŸã€‚ -%2 個ã®ã‚­ãƒ¼ã‚’カスタムデータã«ç§»è¡Œã—ã¾ã—ãŸã€‚ - - - Successfully moved %n keys to custom data. - %n 個ã®ã‚­ãƒ¼ã‚’正常ã«ã‚«ã‚¹ã‚¿ãƒ ãƒ‡ãƒ¼ã‚¿ã«ç§»è¡Œã—ã¾ã—ãŸã€‚ + Disable + 無効 - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: KeePassHTTP ã®å±žæ€§ãŒã‚るエントリーã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ + KeePassXC - Overwrite existing key? + - The active database does not contain an entry with KeePassHTTP attributes. - アクティブãªãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«ã¯ KeePassHTTP ã®å±žæ€§ãŒã‚るエントリーã¯å«ã¾ã‚Œã¦ã„ã¾ã›ã‚“。 + KeePassXC - Update Passkey + - Don't show this warning again - 今後ã“ã®è­¦å‘Šã‚’表示ã—ãªã„ + KeePassXC - Update Entry + - KeePassXC: Legacy browser integration settings detected - KeePassXC: レガシーãªãƒ–ラウザー統åˆã®è¨­å®šã‚’検出ã—ã¾ã—㟠+ KeePassXC - Delete entry + - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - KeePassXC-Browser ã®è¨­å®šã‚’データベース設定ã«ç§»è¡Œã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ -ã“れã¯ãƒ–ラウザーã¨ã®æŽ¥ç¶šã‚’ç¶­æŒã™ã‚‹ãŸã‚ã«å¿…è¦ã§ã™ã€‚ -既存ã®è¨­å®šã‚’移行ã—ã¾ã™ã‹ï¼Ÿ + KeePassXC - New key association request + + + + Passkey + @@ -1001,11 +1062,11 @@ Would you like to migrate your existing settings now? Match URL scheme (e.g., https://example.com) - URL スキーム (例ãˆã° https://example.com) ã®ä¸€è‡´ + URL スキーム (例ãˆã° https://example.com) を一致ã•ã›ã‚‹ Only returns the best matches for a specific URL instead of all entries for the whole domain. - ドメイン全体ã«ä¸€è‡´ã™ã‚‹å…¨ã¦ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã®ä»£ã‚りã«ã€ç‰¹å®šã® URL ã«æœ€ã‚‚一致ã™ã‚‹ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã®ã¿ãŒè¿”ã•れã¾ã™ã€‚ + ドメイン全体ã«ä¸€è‡´ã™ã‚‹ã™ã¹ã¦ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã®ä»£ã‚りã«ã€ç‰¹å®šã® URL ã«æœ€ã‚‚一致ã™ã‚‹ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã®ã¿ãŒè¿”ã•れã¾ã™ã€‚ Return only best-matching credentials @@ -1021,12 +1082,12 @@ Would you like to migrate your existing settings now? All databases connected to the extension will return matching credentials. - æ‹¡å¼µæ©Ÿèƒ½ã«æŽ¥ç¶šã•れãŸå…¨ã¦ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãŒä¸€è‡´ã™ã‚‹è³‡æ ¼æƒ…報を返ã—ã¾ã™ã€‚ + æ‹¡å¼µæ©Ÿèƒ½ã«æŽ¥ç¶šã•れãŸã™ã¹ã¦ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãŒä¸€è‡´ã™ã‚‹è³‡æ ¼æƒ…報を返ã—ã¾ã™ã€‚ Search in all opened databases for matching credentials Credentials mean login data requested via browser extension - é–‹ã„ã¦ã„ã‚‹å…¨ã¦ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‹ã‚‰ä¸€è‡´ã™ã‚‹è³‡æ ¼æƒ…報を検索ã™ã‚‹ + é–‹ã„ã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‹ã‚‰ä¸€è‡´ã™ã‚‹è³‡æ ¼æƒ…報を検索ã™ã‚‹ Advanced @@ -1073,20 +1134,20 @@ Would you like to migrate your existing settings now? Use a custom proxy location if you installed a proxy manually. - 手動ã§ãƒ—ロキシをインストールã—ãŸå ´åˆã¯ã€ã‚«ã‚¹ã‚¿ãƒ ãƒ—ロキシを使用ã—ã¦ãã ã•ã„。 + 手動ã§ãƒ—ロキシーをインストールã—ãŸå ´åˆã¯ã€ã‚«ã‚¹ã‚¿ãƒ ãƒ—ロキシーを使用ã—ã¦ãã ã•ã„。 Use a custom proxy location: Meant is the proxy for KeePassXC-Browser - カスタムプロキシを使用ã™ã‚‹: + カスタムプロキシーを使用ã™ã‚‹: Custom proxy location field - カスタムプロキシã®å ´æ‰€ãƒ•ィールド + カスタムプロキシーã®å ´æ‰€ãƒ•ィールド Browser for custom proxy file - カスタムプロキシファイルブラウザー + カスタムプロキシーファイルã®ãƒ–ラウザー Browse… @@ -1137,30 +1198,54 @@ Would you like to migrate your existing settings now? Please see special instructions for browser extension use below ブラウザー拡張機能を使用ã™ã‚‹ã«ã¯ä»¥ä¸‹ã®æ‰‹é †ã‚’å‚ç…§ã—ã¦ãã ã•ã„ - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>エラー:</b> カスタムプロキシã®å ´æ‰€ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚<br/>ブラウザー統åˆã¯ãƒ—ロキシアプリケーションãªã—ã§ã¯å‹•作ã—ã¾ã›ã‚“。 - - - <b>Warning:</b> The following options can be dangerous! - <b>警告:</b> 以下ã¯å±é™ºãªã‚ªãƒ—ションã§ã™ã€‚ - Executable Files 実行ファイル All Files - å…¨ã¦ã®ãƒ•ァイル + ã™ã¹ã¦ã®ãƒ•ァイル Select custom proxy location - ã‚«ã‚¹ã‚¿ãƒ ãƒ—ãƒ­ã‚­ã‚·ã‚’é¸æŠž + カスタムプロキシーã®å ´æ‰€ã‚’é¸æŠž Select native messaging host folder location Native messaging ã®ãƒ›ã‚¹ãƒˆãƒ•ォルダーã®å ´æ‰€ã‚’é¸æŠž + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + タイトルã€URLã€UUID ã‚’å«ã‚€ keepassxc-proxy ã«æŽ¥ç¶šã•れã¦ã„るデータベースã®ã™ã¹ã¦ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã®è¡¨ç¤ºã‚’許å¯ã™ã‚‹ + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + 接続ã•れãŸãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®ã™ã¹ã¦ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã«åˆ¶é™ä»˜ãアクセスを許å¯ã™ã‚‹ (サイトã®ã‚¢ã‚¯ã‚»ã‚¹åˆ¶é™ã‚’無視) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>警告:</b> ã“れらã®è¨­å®šã¯å¿…è¦ãªå ´åˆã®ã¿å¤‰æ›´ã—ã¦ãã ã•ã„。 + + + The custom proxy location does not exist. + カスタムプロキシーã®å ´æ‰€ãŒå­˜åœ¨ã—ã¾ã›ã‚“。 + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>警告:</b> カスタムプロキシーã®å ´æ‰€ãŒå­˜åœ¨ã—ã¾ã›ã‚“。詳細設定タブã‹ã‚‰å¤‰æ›´ã§ãã¾ã™ã€‚ + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>警告:</b> インストールã•れã¦ã„るプロキシーã®å®Ÿè¡Œãƒ•ァイルã¯äºˆæœŸã—ã¦ã„ãŸå ´æ‰€ã«å­˜åœ¨ã—ã¾ã›ã‚“: %1<br/>カスタムプロキシーã®å ´æ‰€ã‚’詳細設定ã§å¤‰æ›´ã™ã‚‹ã‹ã€ã‚¢ãƒ—リをå†ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¦ãã ã•ã„。 + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1183,14 +1268,6 @@ Would you like to migrate your existing settings now? CsvImportWidget - - Import CSV fields - CSV フィールドをインãƒãƒ¼ãƒˆ - - - filename - ファイルå - size, rows, columns サイズã€è¡Œã€åˆ— @@ -1299,50 +1376,29 @@ Would you like to migrate your existing settings now? Column %1 列 %1 - - Imported from CSV file - CSV ファイルã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆ - - - Original data: - 元データ: - - - Error(s) detected in CSV file! - CSV ファイル内ã§ã‚¨ãƒ©ãƒ¼ã‚’検出ã—ã¾ã—ãŸï¼ - [%n more message(s) skipped] [%n 個ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’スキップã—ã¾ã—ãŸ] - Error - エラー + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - CSV ã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ: ライターã«ã‚¨ãƒ©ãƒ¼ãŒã‚りã¾ã™: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1ã€%2ã€%3 - - - %n byte(s) - %n ãƒã‚¤ãƒˆ - %n row(s) + CSV row count %n 行 %n column(s) + CSV column count %n 列 @@ -1417,40 +1473,10 @@ Backup database located at %2 Password field パスワードフィールド - - Enter Additional Credentials (if any): - 追加ã®è³‡æ ¼æƒ…報を入力ã—ã¦ãã ã•ã„ (ã‚ã‚‹å ´åˆã®ã¿): - - - Key File: - キーファイル: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>パスワードã ã‘ã§ãªãシークレットファイルを使用ã™ã‚‹ã“ã¨ã§ã€ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã‚’å‘上ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚シークレットファイルã¯ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£è¨­å®šã§ç”Ÿæˆã§ãã¾ã™ã€‚</p><p>*.kdbx データベースファイルã¯ã‚·ãƒ¼ã‚¯ãƒ¬ãƒƒãƒˆãƒ•ァイル<strong>ã§ã¯ã‚りã¾ã›ã‚“</strong>ï¼<br>キーファイルãŒãªã„å ´åˆã€ã“ã®ãƒ•ィールドã¯ç©ºã®ã¾ã¾ã«ã—ã¦ãã ã•ã„。</p><p>詳細ã«ã¤ã„ã¦ã¯ã‚¯ãƒªãƒƒã‚¯ã—ã¦ãã ã•ã„…</p> - - - Key file help - キーファイルã®ãƒ˜ãƒ«ãƒ— - Hardware key slot selection ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚­ãƒ¼ã‚¹ãƒ­ãƒƒãƒˆã®é¸æŠž - - Hardware Key: - ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚­ãƒ¼: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>スロットを HMAC-SHA1 用ã«è¨­å®šã—㟠<strong>YubiKey</strong> ã‚„ <strong>OnlyKey</strong> ã‚’ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã‚­ãƒ¼ã¨ã—ã¦ä½¿ç”¨ã§ãã¾ã™ã€‚</p> -<p>詳細ã«ã¤ã„ã¦ã¯ã‚¯ãƒªãƒƒã‚¯ã—ã¦ãã ã•ã„…</p> - - - Hardware key help - ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚­ãƒ¼ã®ãƒ˜ãƒ«ãƒ— - Key file to unlock the database データベースã®ãƒ­ãƒƒã‚¯ã‚’解除ã™ã‚‹ã‚­ãƒ¼ãƒ•ァイル @@ -1463,17 +1489,9 @@ Backup database located at %2 Browse… å‚照… - - Refresh hardware tokens - ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ãƒˆãƒ¼ã‚¯ãƒ³ã‚’æ›´æ–° - - - Refresh - å†èª­ã¿è¾¼ã¿ - Unlock Database - + データベースã®ãƒ­ãƒƒã‚¯ã‚’解除 Cancel @@ -1532,14 +1550,6 @@ To prevent this error from appearing, you must go to "Database Settings / S Retry with empty password 空ã®ãƒ‘スワードã§å†è©¦è¡Œ - - Failed to authenticate with Windows Hello - Windows Hello ã§ã®èªè¨¼ã«å¤±æ•—ã—ã¾ã—㟠- - - Failed to authenticate with Touch ID - Touch ID ã§ã®èªè¨¼ã«å¤±æ•—ã—ã¾ã—㟠- Failed to open key file: %1 キーファイルを開ãã®ã«å¤±æ•—ã—ã¾ã—ãŸ: %1 @@ -1558,7 +1568,7 @@ To prevent this error from appearing, you must go to "Database Settings / S All files - å…¨ã¦ã®ãƒ•ァイル + ã™ã¹ã¦ã®ãƒ•ァイル Key files @@ -1573,22 +1583,60 @@ To prevent this error from appearing, you must go to "Database Settings / S データベースファイルをキーファイルã¨ã—ã¦ä½¿ç”¨ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“ - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - データベースファイルをキーファイルã¨ã—ã¦ä½¿ç”¨ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。 -キーファイルãŒãªã„å ´åˆã¯ã€ãƒ•ィールドを空ã®ã¾ã¾ã«ã—ã¦ãã ã•ã„。 + authenticate to access the database + èªè¨¼ã—ã¦ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«ã‚¢ã‚¯ã‚»ã‚¹ - Detecting hardware keys… - ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚­ãƒ¼ã‚’検出中… + Failed to authenticate with Quick Unlock: %1 + Quick Unlock ã§ã®èªè¨¼ã«å¤±æ•—ã—ã¾ã—ãŸ: %1 - No hardware keys detected - 検出ã—ãŸãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚­ãƒ¼ã¯ã‚りã¾ã›ã‚“ + Select Key File: + - Select hardware key… - ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚­ãƒ¼ã‚’é¸æŠžâ€¦ + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1600,10 +1648,6 @@ If you do not have a key file, please leave the field empty. DatabaseSettingsDialog - - Advanced Settings - 詳細設定 - General 全般 @@ -1636,25 +1680,17 @@ If you do not have a key file, please leave the field empty. KeePassXC-Browser 設定 - Convert KeePassHTTP data - KeePassHTTP ã®ãƒ‡ãƒ¼ã‚¿ã‚’å¤‰æ› + Disconnect all browsers + ã™ã¹ã¦ã®ãƒ–ãƒ©ã‚¦ã‚¶ãƒ¼ã®æŽ¥ç¶šã‚’åˆ‡æ–­ã™ã‚‹ - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - å¤ã„ KeePassHTTP ã®å±žæ€§ã‚’ KeePassXC-Browser ã®äº’æ›æ€§ã®ã‚るカスタムデータã«å¤‰æ›ã™ã‚‹ + Forget all site-specific settings on entries + エントリーã®ã‚µã‚¤ãƒˆå›ºæœ‰ã®è¨­å®šã‚’ã™ã¹ã¦æ¶ˆåŽ»ã™ã‚‹ Refresh database root group ID データベースã®ãƒ«ãƒ¼ãƒˆã‚°ãƒ«ãƒ¼ãƒ— ID ã‚’æ›´æ–°ã™ã‚‹ - - Disconnect all browsers - å…¨ã¦ã®ãƒ–ãƒ©ã‚¦ã‚¶ãƒ¼ã®æŽ¥ç¶šã‚’æ–­ã¤ - - - Forget all site-specific settings on entries - エントリーã®ã‚µã‚¤ãƒˆå›ºæœ‰ã®è¨­å®šã‚’å…¨ã¦æ¶ˆåŽ»ã™ã‚‹ - Stored keys ä¿å­˜ã•れãŸã‚­ãƒ¼ @@ -1700,21 +1736,13 @@ This may prevent connection to the browser plugin. Do you really want to disconnect all browsers? This may prevent connection to the browser plugin. - 本当ã«å…¨ã¦ã®ãƒ–ラウザーを切断ã—ã¾ã™ã‹ï¼Ÿ + 本当ã«ã™ã¹ã¦ã®ãƒ–ラウザーを切断ã—ã¾ã™ã‹ï¼Ÿ ãƒ–ãƒ©ã‚¦ã‚¶ãƒ¼ãƒ—ãƒ©ã‚°ã‚¤ãƒ³ã«æŽ¥ç¶šã§ããªããªã‚Šã¾ã™ã€‚ - - KeePassXC: No keys found - KeePassXC: キーãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ - No shared encryption keys found in KeePassXC settings. KeePassXC ã®è¨­å®šå†…ã«å…±æœ‰æš—å·åŒ–キーã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚ - - KeePassXC: Removed keys from database - KeePassXC: データベースã‹ã‚‰ã‚­ãƒ¼ã‚’削除ã—ã¾ã—㟠- Successfully removed %n encryption key(s) from KeePassXC settings. KeePassXC ã®è¨­å®šã‹ã‚‰ %n å€‹ã®æš—å·åŒ–キーを正常ã«å‰Šé™¤ã—ã¾ã—ãŸã€‚ @@ -1722,7 +1750,7 @@ This may prevent connection to the browser plugin. Do you really want forget all site-specific settings on every entry? Permissions to access entries will be revoked. - 本当ã«ã‚¨ãƒ³ãƒˆãƒªãƒ¼æ¯Žã®ã‚µã‚¤ãƒˆå›ºæœ‰ã®è¨­å®šã‚’å…¨ã¦æ¶ˆåŽ»ã—ã¾ã™ã‹ï¼Ÿ + 本当ã«ã‚¨ãƒ³ãƒˆãƒªãƒ¼æ¯Žã®ã‚µã‚¤ãƒˆå›ºæœ‰ã®è¨­å®šã‚’ã™ã¹ã¦æ¶ˆåŽ»ã—ã¾ã™ã‹ï¼Ÿ エントリーã¸ã®ã‚¢ã‚¯ã‚»ã‚¹æ¨©ãŒå–り消ã•れã¾ã™ã€‚ @@ -1733,32 +1761,14 @@ Permissions to access entries will be revoked. Abort 中止 - - KeePassXC: Removed permissions - KeePassXC: アクセス許å¯ã‚’削除ã—ã¾ã—㟠- Successfully removed permissions from %n entry(s). %n 個ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹è¨±å¯ã‚’正常ã«å‰Šé™¤ã—ã¾ã—ãŸã€‚ - - KeePassXC: No entry with permissions found! - KeePassXC: アクセス許å¯ãŒã‚るエントリーã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ - The active database does not contain an entry with permissions. アクティブãªãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«ã¯ã‚¢ã‚¯ã‚»ã‚¹è¨±å¯ãŒã‚るエントリーã¯å«ã¾ã‚Œã¦ã„ã¾ã›ã‚“。 - - Move KeePassHTTP attributes to custom data - KeePassHTTP ã®å±žæ€§ã‚’カスタムデータã«ç§»è¡Œã™ã‚‹ - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - 本当ã«ãƒ¬ã‚¬ã‚·ãƒ¼ãªãƒ–ラウザー統åˆã®ãƒ‡ãƒ¼ã‚¿ã‚’æœ€æ–°ã®æ¨™æº–ã«å¤‰æ›ã—ã¾ã™ã‹ï¼Ÿ -ã“れã¯ãƒ–ラウザープラグインã¨ã®äº’æ›æ€§ç¶­æŒã«å¿…è¦ã§ã™ã€‚ - Refresh database ID データベース ID ã‚’æ›´æ–° @@ -1769,6 +1779,26 @@ This is only necessary if your database is a copy of another and the browser ext 本当ã«ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ ID ã‚’æ›´æ–°ã—ã¾ã™ã‹ï¼Ÿ ã“れã¯ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãŒåˆ¥ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®ã‚³ãƒ”ーã§ã€ãƒ–ãƒ©ã‚¦ã‚¶ãƒ¼æ‹¡å¼µæ©Ÿèƒ½ãŒæŽ¥ç¶šã§ããªã„å ´åˆã«ã®ã¿å¿…è¦ã§ã™ã€‚ + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + å¤ã„ KeePassHTTP ã®å±žæ€§ã‚’ KeePassXC-Browser ã®äº’æ›æ€§ã®ã‚るカスタムデータã«å¤‰æ›ã™ã‚‹ + + + No keys found + + + + Removed keys from database + + + + Removed permissions + + + + No entry with permissions found! + + DatabaseSettingsWidgetDatabaseKey @@ -1808,6 +1838,18 @@ Are you sure you want to continue without a password? Failed to change database credentials データベースã®è³‡æ ¼æƒ…å ±ã®å¤‰æ›´ã«å¤±æ•—ã—ã¾ã—㟠+ + Weak password + å¼±ã„パスワード + + + You must enter a stronger password to protect your database. + + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + + DatabaseSettingsWidgetEncryption @@ -1815,14 +1857,6 @@ Are you sure you want to continue without a password? Decryption Time: 復å·åŒ–時間: - - Change existing decryption time - 既存ã®å¾©å·åŒ–時間を変更 - - - Change - 変更 - Decryption time in seconds 復å·åŒ–時間 (ç§’) @@ -1897,17 +1931,12 @@ Are you sure you want to continue without a password? KDBX 4 (recommended) - + KDBX 4 (推奨) KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - 変更ãªã— - Number of rounds too high Key transformation rounds @@ -1960,6 +1989,18 @@ If you keep this number, your database will not be protected from brute force at Threads for parallel execution (KDF settings) スレッド + + Encryption Settings: + æš—å·åŒ–設定: + + + Basic + 基本 + + + Advanced + 詳細設定 + DatabaseSettingsWidgetFdoSecrets @@ -2018,18 +2059,10 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry エントリー毎ã®å±¥æ­´ã‚¢ã‚¤ãƒ†ãƒ ã®æœ€å¤§æ•° - - Max. history items: - 最大履歴数: - Maximum size of history per entry エントリー毎ã®å±¥æ­´ã®æœ€å¤§ã‚µã‚¤ã‚º - - Max. history size: - 最大履歴データサイズ: - MiB MiB @@ -2060,6 +2093,55 @@ This action is not reversible. (old) (æ—§) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + + + + Limit the amount of history items per entry to: + + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + + + + Limit the total size of history items per entry to: + + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + + + + Autosave delay since last change + + + + Autosave delay + + + + Autosave delay since last change in minutes + + + + min + 分 + + + Autosave delay since last change checkbox + + DatabaseSettingsWidgetKeeShare @@ -2105,7 +2187,7 @@ This action is not reversible. Delete all custom icons not in use by any entry or group - エントリーやグループã§ä½¿ç”¨ã—ã¦ã„ãªã„カスタムアイコンを全ã¦å‰Šé™¤ã™ã‚‹ + エントリーやグループã§ä½¿ç”¨ã—ã¦ã„ãªã„カスタムアイコンをã™ã¹ã¦å‰Šé™¤ã™ã‚‹ Purge unused icons @@ -2117,7 +2199,7 @@ This action is not reversible. At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? - é¸æŠžã—ãŸã‚¢ã‚¤ã‚³ãƒ³ã®ä¸­ã«ã€ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚„グループã§ç¾åœ¨ä½¿ç”¨ä¸­ã®ã‚‚ã®ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ãれらã¯å…¨ã¦æ—¢å®šã®ã‚¢ã‚¤ã‚³ãƒ³ã«ç½®ãæ›ãˆã‚‰ã‚Œã¾ã™ã€‚本当ã«ç¾åœ¨ä½¿ç”¨ä¸­ã®ã‚¢ã‚¤ã‚³ãƒ³ã‚’削除ã—ã¾ã™ã‹ï¼Ÿ + é¸æŠžã—ãŸã‚¢ã‚¤ã‚³ãƒ³ã®ä¸­ã«ã€ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚„グループã§ç¾åœ¨ä½¿ç”¨ä¸­ã®ã‚‚ã®ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ãれらã¯ã™ã¹ã¦æ—¢å®šã®ã‚¢ã‚¤ã‚³ãƒ³ã«ç½®ãæ›ãˆã‚‰ã‚Œã¾ã™ã€‚本当ã«ç¾åœ¨ä½¿ç”¨ä¸­ã®ã‚¢ã‚¤ã‚³ãƒ³ã‚’削除ã—ã¾ã™ã‹ï¼Ÿ Custom Icons Are In Use @@ -2125,7 +2207,7 @@ This action is not reversible. All custom icons are in use by at least one entry or group. - å…¨ã¦ã®ã‚«ã‚¹ã‚¿ãƒ ã‚¢ã‚¤ã‚³ãƒ³ãŒã„ãšã‚Œã‹ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã¾ãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ã§ä½¿ç”¨ä¸­ã§ã™ã€‚ + ã™ã¹ã¦ã®ã‚«ã‚¹ã‚¿ãƒ ã‚¢ã‚¤ã‚³ãƒ³ãŒã„ãšã‚Œã‹ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã¾ãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ã§ä½¿ç”¨ä¸­ã§ã™ã€‚ Purged Unused Icons @@ -2173,7 +2255,7 @@ This is definitely a bug, please report it to the developers. All files - å…¨ã¦ã®ãƒ•ァイル + ã™ã¹ã¦ã®ãƒ•ァイル Open database @@ -2187,26 +2269,10 @@ This is definitely a bug, please report it to the developers. CSV file CSV ファイル - - Select CSV file - CSV ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž - Merge database データベースをマージã™ã‚‹ - - KeePass 1 database - KeePass 1 データベース - - - Open KeePass 1 database - KeePass 1 データベースを開ã - - - Open OPVault - OPVault ã‚’é–‹ã - Export database to CSV file データベースを CSV ファイルã¸ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ @@ -2219,6 +2285,18 @@ This is definitely a bug, please report it to the developers. Writing the HTML file failed. HTML ファイルã¸ã®æ›¸ãè¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ + + Export database to XML file + データベースを XML ファイルã¸ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ + + + XML file + XML ファイル + + + Writing the XML file failed + XML ãƒ•ã‚¡ã‚¤ãƒ«ã®æ›¸ãè¾¼ã¿ã«å¤±æ•—ã—ã¾ã—㟠+ Export Confirmation エクスãƒãƒ¼ãƒˆã®ç¢ºèª @@ -2227,15 +2305,6 @@ This is definitely a bug, please report it to the developers. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? データベースを暗å·åŒ–ã›ãšã«ãƒ•ァイルã¸ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã—よã†ã¨ã—ã¦ã„ã¾ã™ã€‚ã“れã¯ãƒ‘スワードや機密情報ãŒè„†å¼±ãªçŠ¶æ…‹ã«ç½®ã‹ã‚Œã‚‹ã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚続行ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹ï¼Ÿ - - New Database - æ–°ã—ã„データベース - - - %1 [New Database] - Database tab name modifier - %1 [æ–°ã—ã„データベース] - %1 [Locked] Database tab name modifier @@ -2245,8 +2314,8 @@ This is definitely a bug, please report it to the developers. DatabaseWidget - Database Tags - データベースã®ã‚¿ã‚° + Searches and Tags + 検索ã¨ã‚¿ã‚° Searching… @@ -2294,7 +2363,11 @@ This is definitely a bug, please report it to the developers. Expired entries - + 期é™åˆ‡ã‚Œã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ + + + Entries expiring within %1 day(s) + %1 æ—¥ä»¥å†…ã«æœŸé™åˆ‡ã‚Œã¨ãªã‚‹ã‚¨ãƒ³ãƒˆãƒªãƒ¼ No current database. @@ -2320,6 +2393,18 @@ This is definitely a bug, please report it to the developers. No Results 見ã¤ã‹ã‚Šã¾ã›ã‚“ + + Save + ä¿å­˜ + + + Enter a unique name or overwrite an existing search from the list: + + + + Save Search + 検索語をä¿å­˜ + Lock Database? データベースをロックã—ã¾ã™ã‹ï¼Ÿ @@ -2410,9 +2495,14 @@ Disable safe saves and try again? Could not find database file: %1 データベースファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ: %1 - - Entries expiring within %1 day(s) - + + New Database + æ–°ã—ã„データベース + + + %1 [New Database] + Database tab name modifier + %1 [æ–°ã—ã„データベース] @@ -2497,7 +2587,7 @@ Disable safe saves and try again? An external merge operation has invalidated this entry. Unfortunately, any changes made have been lost. 外部ã§ã®ãƒžãƒ¼ã‚¸å‡¦ç†ã«ã‚ˆã£ã¦ã€ã“ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã¯ç„¡åŠ¹åŒ–ã•れã¾ã—ãŸã€‚ -申ã—訳ã‚りã¾ã›ã‚“ãŒã€è¡Œã£ãŸå¤‰æ›´ã¯å…¨ã¦å¤±ã‚れã¾ã—ãŸã€‚ +申ã—訳ã‚りã¾ã›ã‚“ãŒã€è¡Œã£ãŸå¤‰æ›´ã¯ã™ã¹ã¦å¤±ã‚れã¾ã—ãŸã€‚ Auto-Type Validation Error @@ -2555,6 +2645,10 @@ Would you like to correct it? Hide éš ã™ + + %n hour(s) + %n 時間 + %n week(s) %n 週間 @@ -2567,10 +2661,6 @@ Would you like to correct it? %n year(s) %n å¹´ - - %n hour(s) - - EditEntryWidgetAdvanced @@ -2689,17 +2779,27 @@ Would you like to correct it? Add new window association æ–°ã—ã„ウィンドウ関連付ã‘を追加 + + + + Add item + + + Remove selected window association é¸æŠžã—ãŸã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢é€£ä»˜ã‘を削除 + + - + Remove item + - + Window title: ウィンドウタイトル: You can use an asterisk (*) to match everything - アスタリスク (*) を使用ã™ã‚‹ã¨å…¨ã¦ã«ä¸€è‡´ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ + アスタリスク (*) を使用ã™ã‚‹ã¨ã™ã¹ã¦ã«ä¸€è‡´ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ Set the window association title @@ -2707,7 +2807,7 @@ Would you like to correct it? You can use an asterisk to match everything - アスタリスクを使用ã™ã‚‹ã¨å…¨ã¦ã«ä¸€è‡´ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ + アスタリスクを使用ã™ã‚‹ã¨ã™ã¹ã¦ã«ä¸€è‡´ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ Use a specific sequence for this association: @@ -2717,16 +2817,6 @@ Would you like to correct it? Custom Auto-Type sequence for this window ã“ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®ã‚«ã‚¹ã‚¿ãƒ è‡ªå‹•入力シーケンス - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2811,11 +2901,11 @@ Would you like to correct it? Delete all history - å…¨ã¦ã®å±¥æ­´ã‚’削除 + ã™ã¹ã¦ã®å±¥æ­´ã‚’削除 Delete all - å…¨ã¦å‰Šé™¤ + ã™ã¹ã¦å‰Šé™¤ @@ -2828,22 +2918,10 @@ Would you like to correct it? Notes field メモフィールド - - Toggle the checkbox to reveal the notes section. - ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã«ãƒã‚§ãƒƒã‚¯ã‚’入れるã¨ãƒ¡ãƒ¢ãŒè¡¨ç¤ºã•れã¾ã™ã€‚ - Username field ユーザーåフィールド - - Toggle notes visible - メモã®è¡¨ç¤ºã‚’切り替㈠- - - Notes: - メモ: - Expiration field 有効期é™ãƒ•ィールド @@ -2860,14 +2938,6 @@ Would you like to correct it? Presets プリセット - - Password: - パスワード: - - - URL: - URL: - Url field URL フィールド @@ -2876,18 +2946,10 @@ Would you like to correct it? Download favicon for URL URL 用ã®ãƒ•ァビコンをダウンロード - - Title: - タイトル: - Title field タイトルフィールド - - Username: - ユーザーå: - Password field パスワードフィールド @@ -2896,16 +2958,40 @@ Would you like to correct it? Toggle expiration 有効期é™ã‚’切り替㈠- - Expires: - 期é™: - - - Tags: - ã‚¿ã‚°: - Tags list + タグ一覧 + + + &Username: + + + + &Title: + + + + &Password: + + + + UR&L: + + + + &Notes: + + + + Toggle notes visibility + ノートã®è¡¨ç¤º/éžè¡¨ç¤ºã®åˆ‡ã‚Šæ›¿ãˆ + + + T&ags: + + + + &Expires: @@ -2947,19 +3033,6 @@ Would you like to correct it? Private key ç§˜å¯†éµ - - External file - 外部ファイル - - - Browser for key file - キーファイルブラウザー - - - Browse… - Button for opening file dialog - å‚照… - Attachment 添付ファイル @@ -2976,6 +3049,23 @@ Would you like to correct it? Remove from agent エージェントã‹ã‚‰å‰Šé™¤ + + External file + 外部ファイル + + + Browser for key file + キーファイルブラウザー + + + Browse… + Button for opening file dialog + å‚照… + + + Generate + ç”Ÿæˆ + Select attachment file æ·»ä»˜ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž @@ -3011,10 +3101,6 @@ Would you like to correct it? Icon アイコン - - Browser Integration - ãƒ–ãƒ©ã‚¦ã‚¶ãƒ¼çµ±åˆ - Properties プロパティ @@ -3031,6 +3117,10 @@ Would you like to correct it? Group has unsaved changes ã‚°ãƒ«ãƒ¼ãƒ—ã«æœªä¿å­˜ã®å¤‰æ›´ãŒã‚りã¾ã™ + + Browser Integration + ãƒ–ãƒ©ã‚¦ã‚¶ãƒ¼çµ±åˆ + Enable 有効 @@ -3046,10 +3136,6 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - グループを編集 - These settings affect to the group's behaviour with the browser extension. ã“れらã®è¨­å®šã¯ã‚°ãƒ«ãƒ¼ãƒ—ã®æŒ™å‹• (ブラウザー拡張機能) ã«å½±éŸ¿ã—ã¾ã™ã€‚ @@ -3060,7 +3146,7 @@ Would you like to correct it? Hide entries from browser extension toggle for this and sub groups - + ã“れã¨ã‚µãƒ–グループã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚’ブラウザー拡張機能ã‹ã‚‰éš ã™ã‹ã©ã†ã‹ã‚’切り替ãˆã‚‹ Skip Auto-Submit for entries: @@ -3068,7 +3154,7 @@ Would you like to correct it? Skip Auto-Submit toggle for this and sub groups - + ã“れã¨ã‚µãƒ–グループã®è‡ªå‹•é€ä¿¡ã‚’スキップã™ã‚‹ã‹ã©ã†ã‹ã‚’切り替ãˆã‚‹ Use entries only with HTTP Basic Auth: @@ -3076,7 +3162,7 @@ Would you like to correct it? Only HTTP Auth toggle for this and sub groups - + ã“れã¨ã‚µãƒ–グループを HTTP èªè¨¼ã®ã¿ã«ã™ã‚‹ã‹ã©ã†ã‹ã‚’切り替ãˆã‚‹ Do not use entries with HTTP Basic Auth: @@ -3084,6 +3170,22 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups + ã“れã¨ã‚µãƒ–グループ㧠HTTP èªè¨¼ã‚’使用ã—ãªã„ã‹ã©ã†ã‹ã‚’切り替ãˆã‚‹ + + + Omit WWW subdomain from matching: + + + + Omit WWW subdomain from matching toggle for this and sub groups + + + + Restrict matching to given browser key: + + + + Restrict matching to given browser key toggle for this and sub groups @@ -3312,16 +3414,12 @@ Supported extensions are: %1. Also apply to all children - å…¨ã¦ã®å­ã«ã‚‚é©ç”¨ + ã™ã¹ã¦ã®å­ã«ã‚‚é©ç”¨ Unable to fetch favicon. ファビコンをå–å¾—ã§ãã¾ã›ã‚“。 - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - ツール -> 設定 -> セキュリティ㧠DuckDuckGo ウェブサイトアイコンサービスを有効ã«ã§ãã¾ã™ - Existing icon selected. é¸æŠžã—ãŸã‚¢ã‚¤ã‚³ãƒ³ã¯æ—¢å­˜ã§ã™ã€‚ @@ -3332,7 +3430,7 @@ Supported extensions are: %1. All files - å…¨ã¦ã®ãƒ•ァイル + ã™ã¹ã¦ã®ãƒ•ァイル Select Image(s) @@ -3354,6 +3452,10 @@ Supported extensions are: %1. The following icon(s) failed: 次ã®ã‚¢ã‚¤ã‚³ãƒ³ã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + + EditWidgetProperties @@ -3657,7 +3759,7 @@ Error: %1 Color - + カラー Expiration @@ -3669,7 +3771,7 @@ Error: %1 Custom Data - + カスタムデータ Attachments @@ -3791,6 +3893,10 @@ Error: %1 Has TOTP TOTP ã®æœ‰ç„¡ + + Background Color + + EntryPreviewWidget @@ -3811,8 +3917,8 @@ Error: %1 パスワード - Notes - メモ + URL + URL Expiration @@ -3824,15 +3930,15 @@ Error: %1 Tags list - + タグ一覧 Username ユーザーå - URL - URL + Notes + メモ Advanced @@ -3882,6 +3988,10 @@ Error: %1 Never ãªã— + + Double click to copy value + + Enabled 有効 @@ -3890,6 +4000,10 @@ Error: %1 Disabled 無効 + + Double click to copy to clipboard + + EntryURLModel @@ -3897,6 +4011,10 @@ Error: %1 Invalid URL 無効㪠URL + + Duplicate URL + + EntryView @@ -3912,6 +4030,10 @@ Error: %1 Reset to defaults è¦å®šå€¤ã«æˆ»ã™ + + + %1 entry(s)... + + ExportDialog @@ -4133,6 +4255,147 @@ You can enable the DuckDuckGo website icon service in the security section of th ファビコンをダウンロード中 (%1/%2)… + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + ウィザードページ + + + Entry count: %1 + + + + Group + グループ + + + Title + タイトル + + + Username + ユーザーå + + + Password + パスワード + + + Url + + + + + ImportWizardPageSelect + + Form + フォーム + + + Import File Selection + + + + Password: + パスワード: + + + Key File: + キーファイル: + + + Browse… + å‚照… + + + Import Into: + + + + New Database + æ–°ã—ã„データベース + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + OPVault ã‚’é–‹ã + + + Select import file + + + + All files + ã™ã¹ã¦ã®ãƒ•ァイル + + + Key files + キーファイル + + + Select key file + ã‚­ãƒ¼ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4148,7 +4411,7 @@ You can enable the DuckDuckGo website icon service in the security section of th Kdbx3Reader Missing database headers - + データベースã®ãƒ˜ãƒƒãƒ€ãƒ¼ãŒã‚りã¾ã›ã‚“ Unable to calculate database key @@ -4567,17 +4830,6 @@ Line %2, column %3 秘密éµã‚’é–‹ãã®ã«å¤±æ•—ã—ã¾ã—㟠- - KeePass1OpenWidget - - Import KeePass1 Database - KeePass1 データベースをインãƒãƒ¼ãƒˆ - - - Unable to open the database. - データベースを開ã‘ã¾ã›ã‚“。 - - KeePass1Reader @@ -4872,7 +5124,7 @@ Message: %2 All files - å…¨ã¦ã®ãƒ•ァイル + ã™ã¹ã¦ã®ãƒ•ァイル Create Key File… @@ -4934,10 +5186,6 @@ Are you sure you want to continue with this file? &Recent Databases 最近使用ã—ãŸãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹(&R) - - &Import - インãƒãƒ¼ãƒˆ(&I) - &Export エクスãƒãƒ¼ãƒˆ(&E) @@ -4958,6 +5206,10 @@ Are you sure you want to continue with this file? TOTP TOTP + + Tags + ã‚¿ã‚° + &Groups グループ(&G) @@ -5002,34 +5254,18 @@ Are you sure you want to continue with this file? &New Database… æ–°ã—ã„データベース(&N)… - - Create a new database - æ–°ã—ã„ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’ä½œæˆ - &Merge From Database… データベースã‹ã‚‰ãƒžãƒ¼ã‚¸(&M)… - - Merge from another KDBX database - 別㮠KDBX データベースã‹ã‚‰ãƒžãƒ¼ã‚¸ - &New Entry… æ–°ã—ã„エントリー(&N)… - - Add a new entry - æ–°ã—ã„エントリーを追加 - &Edit Entry… エントリーを編集(&E)… - - View or edit entry - エントリーを編集ã¾ãŸã¯è¡¨ç¤º - &Delete Entry… エントリーを削除(&D)… @@ -5038,10 +5274,6 @@ Are you sure you want to continue with this file? &New Group… æ–°ã—ã„グループ(&N)… - - Add a new group - æ–°ã—ã„グループを追加 - &Edit Group… グループを編集(&E)… @@ -5052,7 +5284,7 @@ Are you sure you want to continue with this file? Download All &Favicons… - å…¨ã¦ã®ãƒ•ァビコンをダウンロード(&F)… + ã™ã¹ã¦ã®ãƒ•ァビコンをダウンロード(&F)… Sort &A-Z @@ -5074,18 +5306,10 @@ Are you sure you want to continue with this file? Database &Reports… データベースã®ãƒ¬ãƒãƒ¼ãƒˆ(&R)… - - Statistics, health check, etc. - 統計やå¥å…¨æ€§ã®ç¢ºèªãªã©ã€‚ - &Database Settings… データベースã®è¨­å®š(&D)… - - Database settings - データベースã®è¨­å®š - &Clone Entry… エントリーを複製(&C)… @@ -5094,34 +5318,18 @@ Are you sure you want to continue with this file? Move u&p 上ã«ç§»å‹•(&P) - - Move entry one step up - エントリーを一ã¤ä¸Šã«ç§»å‹•ã™ã‚‹ - Move do&wn 下ã«ç§»å‹•(&W) - - Move entry one step down - エントリーを一ã¤ä¸‹ã«ç§»å‹•ã™ã‚‹ - Copy &Username ユーザーåをコピー(&U) - - Copy username to clipboard - ユーザーåをクリップボードã«ã‚³ãƒ”ー - Copy &Password パスワードをコピー(&P) - - Copy password to clipboard - パスワードをクリップボードã«ã‚³ãƒ”ー - &Settings 設定(&S) @@ -5148,32 +5356,20 @@ Are you sure you want to continue with this file? Lock &All Databases - å…¨ã¦ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’ロック(&A) + ã™ã¹ã¦ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’ロック(&A) &Title タイトル(&T) - Copy title to clipboard - タイトルをクリップボードã«ã‚³ãƒ”ー - - - &URL - URL(&U) - - - Copy URL to clipboard - URL をクリップボードã«ã‚³ãƒ”ー + Copy &URL + &Notes メモ(&N) - - Copy notes to clipboard - メモをクリップボードã«ã‚³ãƒ”ー - &CSV File… CSV ファイル(&C)… @@ -5186,26 +5382,14 @@ Are you sure you want to continue with this file? KeePass 1 Database… KeePass 1 データベース… - - Import a KeePass 1 database - KeePass 1 データベースをインãƒãƒ¼ãƒˆ - 1Password Vault… 1Password ä¿ç®¡åº«â€¦ - - Import a 1Password Vault - 1Password ä¿ç®¡åº«ã‚’インãƒãƒ¼ãƒˆ - CSV File… CSV ファイル… - - Import a CSV file - CSV ファイルをインãƒãƒ¼ãƒˆ - Show TOTP TOTP を表示 @@ -5222,6 +5406,10 @@ Are you sure you want to continue with this file? Copy &TOTP TOTP をコピー(&T) + + Copy Password and TOTP + パスワード㨠TOTP をコピー + E&mpty recycle bin ゴミ箱を空ã«ã™ã‚‹(&M) @@ -5246,10 +5434,6 @@ Are you sure you want to continue with this file? &Online Help オンラインヘルプ(&O) - - Go to online documentation - オンラインドキュメントを開ã - &User Guide ユーザーガイド(&U) @@ -5318,6 +5502,10 @@ Are you sure you want to continue with this file? Clone Group... グループを複製... + + &XML File… + XML ファイル(&X)… + Clear history 履歴を消去 @@ -5328,7 +5516,7 @@ Are you sure you want to continue with this file? Don't show again for this version - 今後ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¯è¡¨ç¤ºã—ãªã„ + 今後ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ã¤ã„ã¦ã¯è¡¨ç¤ºã—ãªã„ WARNING: You are using an unstable build of KeePassXC. @@ -5350,6 +5538,10 @@ We recommend you use the AppImage available on our downloads page. 警告: オンスクリーンキーボード使用時ã«ã€Qt ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒåŽŸå› ã§ KeePassXC ãŒã‚¯ãƒ©ãƒƒã‚·ãƒ¥ã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ KeePassXC ã®é…布ページã‹ã‚‰ AppImage をダウンロードã—ã¦ä½¿ç”¨ã™ã‚‹ã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚ + + No Tags + ã‚¿ã‚°ãªã— + Restore Entry(s) @@ -5378,6 +5570,10 @@ KeePassXC ã®é…布ページã‹ã‚‰ AppImage をダウンロードã—ã¦ä½¿ç”¨ã™ Quit KeePassXC KeePassXC を終了 + + %1 Entry(s) + + Please present or touch your YubiKey to continue… YubiKey ã«ã‚¿ãƒƒãƒã—ã¦ç¶šè¡Œã€ã¾ãŸã¯ YubiKey ã‚’æ­£ã—ã設定ã—ã¦ãã ã•ã„… @@ -5390,6 +5586,274 @@ KeePassXC ã®é…布ページã‹ã‚‰ AppImage をダウンロードã—ã¦ä½¿ç”¨ã™ You must restart the application to apply this setting. Would you like to restart now? 設定をé©ç”¨ã™ã‚‹ã«ã¯ã€ã“ã®ã‚¢ãƒ—リケーションをå†èµ·å‹•ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚今ã™ãå†èµ·å‹•ã—ã¾ã™ã‹ï¼Ÿ + + Allow Screen Capture + + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + + + + Import Passkey + + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + エントリーを編集 + + + Delete Entry + + + + Create Group + + + + Edit Group + グループを編集 + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + ユーザーåをコピー + + + Copy Password + パスワードをコピー + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + KeePass1 データベースをインãƒãƒ¼ãƒˆ + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + ManageDatabase @@ -5426,7 +5890,7 @@ KeePassXC ã®é…布ページã‹ã‚‰ AppImage をダウンロードã—ã¦ä½¿ç”¨ã™ Reset - + リセット Reset any remembered decisions for this application @@ -5447,26 +5911,6 @@ KeePassXC ã®é…布ページã‹ã‚‰ AppImage をダウンロードã—ã¦ä½¿ç”¨ã™ Overwriting %1 [%2] %1 [%2] を上書ã - - older entry merged from database "%1" - データベース "%1" ã‹ã‚‰ãƒžãƒ¼ã‚¸ã—ãŸå¤ã„エントリー - - - Adding backup for older target %1 [%2] - å¤ã„ターゲット %1 [%2] ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—を追加 - - - Adding backup for older source %1 [%2] - å¤ã„ソース %1 [%2] ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—を追加 - - - Reapplying older target entry on top of newer source %1 [%2] - å¤ã„ターゲットã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚’æ–°ã—ã„ソース %1 [%2] ã®ãƒˆãƒƒãƒ—ã«å†é©ç”¨ - - - Reapplying older source entry on top of newer target %1 [%2] - å¤ã„ソースã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚’æ–°ã—ã„ターゲット %1 [%2] ã®ãƒˆãƒƒãƒ—ã«å†é©ç”¨ - Synchronizing from newer source %1 [%2] æ–°ã—ã„ソース %1 [%2] ã‹ã‚‰åŒæœŸ @@ -5526,14 +5970,6 @@ KeePassXC ã®é…布ページã‹ã‚‰ AppImage をダウンロードã—ã¦ä½¿ç”¨ã™ Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. ã“ã“ã§ã¯ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®æš—å·åŒ–設定を調整ã§ãã¾ã™ã€‚ã“ã®è¨­å®šã¯å¾Œã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®è¨­å®šã§å¤‰æ›´ã§ãã¾ã™ã€‚ - - Advanced Settings - 詳細設定 - - - Simple Settings - 簡易設定 - NewDatabaseWizardPageDatabaseKey @@ -5614,15 +6050,6 @@ KeePassXC ã®é…布ページã‹ã‚‰ AppImage をダウンロードã—ã¦ä½¿ç”¨ã™ 期待ã•れる clear-text ã®ã‚µã‚¤ã‚ºã¯ %1 ãƒã‚¤ãƒˆã§ã™ãŒ %2 ãƒã‚¤ãƒˆã—ã‹ã‚りã¾ã›ã‚“ã§ã—㟠- - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - データベースã®èª­ã¿å–りã¯ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’プロデュースã—ã¾ã›ã‚“ã§ã—㟠-%1 - - OpVaultReader @@ -5696,6 +6123,10 @@ KeePassXC ã®é…布ページã‹ã‚‰ AppImage をダウンロードã—ã¦ä½¿ç”¨ã™ Unknown cipher: %1 䏿˜Žãªæš—å·ã§ã™: %1 + + AES-256/GCM is currently not supported + + Passphrase is required to decrypt this key ã“ã®éµã‚’復å·ã™ã‚‹ãƒ‘スフレーズãŒå¿…è¦ã§ã™ @@ -5762,26 +6193,174 @@ KeePassXC ã®é…布ページã‹ã‚‰ AppImage をダウンロードã—ã¦ä½¿ç”¨ã™ - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - パスワードãŒä¸€è‡´ã—ã¾ã›ã‚“ + SSH Key Generator + - Passwords match so far - ä»Šã®æ‰€ãƒ‘スワードã¯ä¸€è‡´ã—ã¦ã„ã¾ã™ + Type + 種類 - Toggle Password (%1) - パスワードを切り替㈠(%1) + Bits + - Generate Password (%1) - ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ã‚’ç”Ÿæˆ (%1) + Comment + コメント + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + - Warning: Caps Lock enabled! - 警告: Caps Lock ãŒæœ‰åйã«ãªã£ã¦ã„ã¾ã™ï¼ + Export the following Passkey entries. + + + + Filenames will be generated with title and .passkey file extension. + + + + Export entries + + + + Export Selected + + + + Cancel + キャンセル + + + Export to folder + + + + + PasskeyExporter + + KeePassXC: Passkey Export + + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + + Cannot open file + + + + Cannot open file "%1" for writing. + + + + Cannot write to file + + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + + + + Username: %1 + + + + Group + グループ + + + Database + データベース + + + Import Passkey + + + + Import + インãƒãƒ¼ãƒˆ + + + Cancel + キャンセル + + + Import the following Passkey: + + + + Entry + エントリー + + + Import the following Passkey to this entry: + + + + Create new entry + + + + Default Passkeys group (Imported Passkeys) + + + + Relying Party: %1 + + + + + PasskeyImporter + + Passkey file + + + + All files + ã™ã¹ã¦ã®ãƒ•ァイル + + + Open Passkey file + + + + Cannot open file + + + + Cannot open file "%1" for reading. + + + + Cannot import Passkey + + + + Cannot import Passkey file "%1". Data is missing. + + + + Cannot import Passkey file "%1". Private key is missing or malformed. + + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + @@ -5972,7 +6551,7 @@ KeePassXC ã®é…布ページã‹ã‚‰ AppImage をダウンロードã—ã¦ä½¿ç”¨ã™ Pick characters from every group - 使用ã™ã‚‹å…¨ã¦ã®æ–‡å­—種ã‹ã‚‰æ–‡å­—ã‚’é¸ã¶ + ã™ã¹ã¦ã™ã‚‹å…¨ã¦ã®æ–‡å­—種ã‹ã‚‰æ–‡å­—ã‚’é¸ã¶ Passphrase @@ -6046,6 +6625,30 @@ KeePassXC ã®é…布ページã‹ã‚‰ AppImage をダウンロードã—ã¦ä½¿ç”¨ã™ Entropy: %1 bit エントロピー: %1 ビット + + Password Quality: %1 + パスワードã®å“質: %1 + + + Poor + Password quality + è²§å¼± + + + Weak + Password quality + 弱ㄠ+ + + Good + Password quality + 良ㄠ+ + + Excellent + Password quality + ã™ã°ã‚‰ã—ã„ + Confirm Delete Wordlist å˜èªžãƒªã‚¹ãƒˆã®å‰Šé™¤ã®ç¢ºèª @@ -6064,7 +6667,7 @@ KeePassXC ã®é…布ページã‹ã‚‰ AppImage をダウンロードã—ã¦ä½¿ç”¨ã™ All files - å…¨ã¦ã®ãƒ•ァイル + ã™ã¹ã¦ã®ãƒ•ァイル Select Custom Wordlist @@ -6092,9 +6695,32 @@ Do you want to overwrite it? Special Characters 特殊文字 + + + PasswordWidget - Password Quality: %1 - パスワードã®å“質: %1 + Passwords do not match + パスワードãŒä¸€è‡´ã—ã¾ã›ã‚“ + + + Passwords match so far + ä»Šã®æ‰€ãƒ‘スワードã¯ä¸€è‡´ã—ã¦ã„ã¾ã™ + + + Toggle Password (%1) + パスワードを切り替㈠(%1) + + + Generate Password (%1) + ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ã‚’ç”Ÿæˆ (%1) + + + Warning: Caps Lock enabled! + 警告: Caps Lock ãŒæœ‰åйã«ãªã£ã¦ã„ã¾ã™ï¼ + + + Quality: %1 + å“質: %1 Poor @@ -6116,6 +6742,10 @@ Do you want to overwrite it? Password quality ã™ã°ã‚‰ã—ã„ + + Toggle password visibility using Control + H. Open the password generator using Control + G. + + PickcharsDialog @@ -6170,6 +6800,10 @@ Do you want to overwrite it? Continue 続行 + + Continue with weak password + + QObject @@ -6564,6 +7198,10 @@ Do you want to overwrite it? Too many arguments provided. æä¾›ã•れãŸå¼•æ•°ãŒå¤šã™ãŽã¾ã™ã€‚ + + Path of the database. + データベースã®ãƒ‘ス。 + Target decryption time in MS for the database. データベースã®ç›®æ¨™å¾©å·æ™‚é–“ (ミリ秒)。 @@ -6572,6 +7210,11 @@ Do you want to overwrite it? time 時間 + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + + Set the key file for the database. データベースã®ã‚­ãƒ¼ãƒ•ァイルを設定ã™ã‚‹ã€‚ @@ -6584,10 +7227,6 @@ Do you want to overwrite it? Create a new database. æ–°ã—ã„データベースを作æˆã™ã‚‹ã€‚ - - Path of the database. - データベースã®ãƒ‘ス。 - Invalid decryption time %1. %1 ã¯å¾©å·æ™‚é–“ã¨ã—ã¦ä¸é©åˆ‡ã§ã™ã€‚ @@ -6632,6 +7271,158 @@ Do you want to overwrite it? Successfully created new database. æ–°ã—ã„データベースを正常ã«ä½œæˆã—ã¾ã—ãŸã€‚ + + Unset the password for the database. + + + + Unset the key file for the database. + + + + Edit a database. + + + + Cannot use %1 and %2 at the same time. + + + + Could not change the database key. + + + + Database was not modified. + + + + Writing the database failed: %1 + データベースã¸ã®æ›¸ãè¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ: %1 + + + Successfully edited the database. + + + + Cannot remove password: The database does not have a password. + + + + Cannot remove file key: The database does not have a file key. + + + + Loading the new key file failed: %1 + + + + Found unexpected Key type %1 + + + + Cannot remove all the keys from a database. + + + + Show a database's information. + ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®æƒ…報を表示ã™ã‚‹ã€‚ + + + UUID: + UUID: + + + Name: + åå‰: + + + Description: + 概è¦: + + + Cipher: + æš—å·: + + + KDF: + KDF: + + + Recycle bin is enabled. + ã‚´ãƒŸç®±ãŒæœ‰åйã§ã™ã€‚ + + + Recycle bin is not enabled. + ã‚´ãƒŸç®±ã¯æœ‰åйã«ãªã£ã¦ã„ã¾ã›ã‚“。 + + + Location + 場所 + + + Database created + ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ä½œæˆ + + + Last saved + 最終更新日時 + + + Unsaved changes + 未ä¿å­˜ã®å¤‰æ›´ + + + yes + ã¯ã„ + + + no + ã„ã„㈠+ + + Number of groups + グループ数 + + + Number of entries + エントリー数 + + + Number of expired entries + 期é™åˆ‡ã‚Œã‚¨ãƒ³ãƒˆãƒªãƒ¼æ•° + + + Unique passwords + 固有パスワード + + + Non-unique passwords + éžå›ºæœ‰ãƒ‘スワード + + + Maximum password reuse + パスワード使ã„回ã—ã®æœ€å¤§æ•° + + + Number of short passwords + 短ã„ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ã®æ•° + + + Number of weak passwords + 脆弱ãªãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ã®æ•° + + + Entries excluded from reports + レãƒãƒ¼ãƒˆã‹ã‚‰é™¤å¤–ã•れãŸã‚¨ãƒ³ãƒˆãƒªãƒ¼ + + + Average password length + å¹³å‡ãƒ‘スワード長 + + + %1 characters + %1文字 + Word count for the diceware passphrase. ダイスウェアパスフレーズã®å˜èªžæ•°ã€‚ @@ -6683,10 +7474,6 @@ Do you want to overwrite it? Enter new password for entry: ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã®æ–°ã—ã„パスワードを入力ã—ã¦ãã ã•ã„: - - Writing the database failed: %1 - データベースã¸ã®æ›¸ãè¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ: %1 - Successfully edited entry %1. エントリー %1 を正常ã«ç·¨é›†ã—ã¾ã—ãŸã€‚ @@ -6881,7 +7668,7 @@ Do you want to overwrite it? Invalid password generator after applying all options - å…¨ã¦ã®ã‚ªãƒ—ションをé©ç”¨ã—ãŸãƒ‘スワード生æˆã¯ç„¡åйã§ã™ + ã™ã¹ã¦ã®ã‚ªãƒ—ションをé©ç”¨ã—ãŸãƒ‘スワード生æˆã¯ç„¡åйã§ã™ Display command help. @@ -6911,106 +7698,6 @@ Do you want to overwrite it? Successfully imported database. データベースを正常ã«ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ã¾ã—ãŸã€‚ - - Show a database's information. - ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®æƒ…報を表示ã™ã‚‹ã€‚ - - - UUID: - UUID: - - - Name: - åå‰: - - - Description: - 概è¦: - - - Cipher: - æš—å·: - - - KDF: - KDF: - - - Recycle bin is enabled. - ã‚´ãƒŸç®±ãŒæœ‰åйã§ã™ã€‚ - - - Recycle bin is not enabled. - ã‚´ãƒŸç®±ã¯æœ‰åйã«ãªã£ã¦ã„ã¾ã›ã‚“。 - - - Location - 場所 - - - Database created - ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ä½œæˆ - - - Last saved - 最終更新日時 - - - Unsaved changes - 未ä¿å­˜ã®å¤‰æ›´ - - - yes - ã¯ã„ - - - no - ã„ã„㈠- - - Number of groups - グループ数 - - - Number of entries - エントリー数 - - - Number of expired entries - 期é™åˆ‡ã‚Œã‚¨ãƒ³ãƒˆãƒªãƒ¼æ•° - - - Unique passwords - 固有パスワード - - - Non-unique passwords - éžå›ºæœ‰ãƒ‘スワード - - - Maximum password reuse - パスワード使ã„回ã—ã®æœ€å¤§æ•° - - - Number of short passwords - 短ã„ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ã®æ•° - - - Number of weak passwords - 脆弱ãªãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ã®æ•° - - - Entries excluded from reports - レãƒãƒ¼ãƒˆã‹ã‚‰é™¤å¤–ã•れãŸã‚¨ãƒ³ãƒˆãƒªãƒ¼ - - - Average password length - å¹³å‡ãƒ‘スワード長 - - - %1 characters - %1文字 - Unknown command %1 %1 ã¯ä¸æ˜Žãªã‚³ãƒžãƒ³ãƒ‰ã§ã™ @@ -7183,6 +7870,10 @@ Available commands: Show the protected attributes in clear text. クリアテキストã®ä¿è­·ã•れãŸå±žæ€§ã‚’表示ã™ã‚‹ã€‚ + + Show all the attributes of the entry. + + Show the attachments of the entry. ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã®æ·»ä»˜ãƒ•ァイルを表示ã™ã‚‹ã€‚ @@ -7253,6 +7944,10 @@ Please consider generating a new key file. Invalid YubiKey serial %1 YubiKey ã®ã‚·ãƒªã‚¢ãƒ« %1 ã¯ä¸æ­£ã§ã™ + + Please present or touch your YubiKey to continue. + + Enter password to encrypt database (optional): データベースを暗å·åŒ–ã™ã‚‹ãŸã‚ã®ãƒ‘スワードを入力ã—ã¦ãã ã•ã„ (オプション): @@ -7276,7 +7971,7 @@ Please consider generating a new key file. All clipping programs failed. Tried %1 - å…¨ã¦ã®ã‚¯ãƒªãƒƒãƒ”ングプログラムãŒå¤±æ•—ã—ã¾ã—ãŸã€‚試行: %1 + ã™ã¹ã¦ã®ã‚¯ãƒªãƒƒãƒ”ングプログラムãŒå¤±æ•—ã—ã¾ã—ãŸã€‚試行: %1 @@ -7440,8 +8135,8 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 %1 分 - Botan library must be at least 2.11.x, found %1.%2.%3 - Botan ライブラリ㯠2.11.x ã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ãŒ %1.%2.%3 ãŒè¦‹ã¤ã‹ã‚Šã¾ã—㟠+ Botan library must be at least %1, found %2.%3.%4 + Cryptographic libraries: @@ -7513,7 +8208,7 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 ChaCha20 256-bit - + ChaCha20 256 ビット Argon2d (KDBX 4 – recommended) @@ -7529,7 +8224,7 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 AES-KDF (KDBX 3) - + AES-KDF (KDBX 3) Existing single-instance lock file is invalid. Launching new instance. @@ -7627,7 +8322,7 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 Browser Statistics - + ブラウザーã®çµ±è¨ˆ Health Check @@ -7681,10 +8376,6 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 read password of the database from stdin 標準入力ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®ãƒ‘スワードを読ã¿è¾¼ã‚€ - - allow app screen recordering and screenshots - アプリã«ã‚ˆã‚‹ç”»é¢ã®éŒ²ç”»ã¨ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã‚·ãƒ§ãƒƒãƒˆã®æ’®å½±ã‚’許å¯ã™ã‚‹ - Locked databases. データベースをロックã—ã¾ã—ãŸã€‚ @@ -7697,6 +8388,10 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 Another instance of KeePassXC is already running. KeePassXC ã®åˆ¥ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ãŒæ—¢ã«èµ·å‹•ã—ã¦ã„ã¾ã™ã€‚ + + KeePassXC is not running. No open database to lock + + Fatal error while testing the cryptographic functions. æš—å·åŒ–機能ã®ãƒ†ã‚¹ãƒˆä¸­ã«è‡´å‘½çš„ãªã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ @@ -7705,10 +8400,6 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 KeePassXC - Error KeePassXC - エラー - - Warning: Failed to prevent screenshots on a top level window! - 警告: トップレベルウィンドウã®ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã‚·ãƒ§ãƒƒãƒˆã‚’撮るã“ã¨ã‚’防ã’ã¾ã›ã‚“ã§ã—ãŸï¼ - Database password: データベースã®ãƒ‘スワード: @@ -7732,7 +8423,221 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 - Please present or touch your YubiKey to continue. + Warning: Failed to block screenshot capture on a top-level window. + + + + Invalid Cipher + + + + Invalid KDF + + + + Access to all entries is denied + + + + allow screenshots and app recording (Windows/macOS) + + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + + + + Credential is excluded + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Passkeys + + + + AES initialization failed + + + + AES encrypt failed + + + + Failed to store in Linux Keyring + + + + Polkit returned an error: %1 + + + + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + + + + Failed to init KeePassXC crypto. + KeePassXC ã®æš—å·ã®åˆæœŸåŒ–ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ + + + Failed to encrypt key data. + éµãƒ‡ãƒ¼ã‚¿ã®æš—å·åŒ–ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ + + + Failed to get Windows Hello credential. + Windows Hello ã®èªè¨¼æƒ…å ±ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ + + + Failed to decrypt key data. + éµãƒ‡ãƒ¼ã‚¿ã®å¾©å·ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7772,25 +8677,13 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - レãƒãƒ¼ãƒˆã‹ã‚‰æœŸé™åˆ‡ã‚Œã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚’除外ã™ã‚‹ - - - Show only entries which have URL set - - - - Show only entries which have browser settings in custom data - - Double-click entries to edit. エントリーをダブルクリックã™ã‚‹ã¨ç·¨é›†ã§ãã¾ã™ã€‚ List of entry URLs - + エントリーã®URLã®ä¸€è¦§ Entry has no URLs set @@ -7798,7 +8691,7 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 Allowed URLs - + 許å¯ã•れãŸURL Entry has no Browser Integration settings @@ -7806,7 +8699,7 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 Denied URLs - + æ‹’å¦ã•れãŸURL (Excluded) @@ -7848,17 +8741,25 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 Exclude from reports レãƒãƒ¼ãƒˆã‹ã‚‰é™¤å¤– + + Only show entries that have a URL + + + + Only show entries that have been explicitly allowed or denied + + + + Show expired entries + + + + (Expired) + + ReportsWidgetHealthcheck - - Exclude expired entries from the report - レãƒãƒ¼ãƒˆã‹ã‚‰æœŸé™åˆ‡ã‚Œã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚’除外ã™ã‚‹ - - - Also show entries that have been excluded from reports - レãƒãƒ¼ãƒˆã‹ã‚‰é™¤å¤–ã•れã¦ã„るエントリーも表示ã™ã‚‹ - Hover over reason to show additional details. Double-click entries to edit. ç†ç”±ã«ãƒžã‚¦ã‚¹ã‚ªãƒ¼ãƒãƒ¼ã™ã‚‹ã¨è¿½åŠ ã®è©³ç´°ãŒè¡¨ç¤ºã•れã¾ã™ã€‚エントリーをダブルクリックã™ã‚‹ã¨ç·¨é›†ã§ãã¾ã™ã€‚ @@ -7904,7 +8805,7 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 Congratulations, everything is healthy! - å…¨ã¦å¥å…¨ã§ã™ã€‚ãŠã‚ã§ã¨ã†ã”ã–ã„ã¾ã™ï¼ + ã™ã¹ã¦å¥å…¨ã§ã™ã€‚ãŠã‚ã§ã¨ã†ã”ã–ã„ã¾ã™ï¼ Title @@ -7934,6 +8835,18 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 Exclude from reports レãƒãƒ¼ãƒˆã‹ã‚‰é™¤å¤– + + Show expired entries + + + + Show entries that have been excluded from reports + + + + (Expired) + + ReportsWidgetHibp @@ -8030,6 +8943,65 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 レãƒãƒ¼ãƒˆã‹ã‚‰é™¤å¤– + + ReportsWidgetPasskeys + + Export + エクスãƒãƒ¼ãƒˆ + + + Import + インãƒãƒ¼ãƒˆ + + + List of entry URLs + エントリーã®URLã®ä¸€è¦§ + + + Please wait, list of entries with Passkeys is being updated… + + + + No entries with Passkeys. + + + + Title + タイトル + + + Path + パス + + + Username + ユーザーå + + + URLs + URL + + + Edit Entry… + エントリーを編集… + + + Delete Entry(s)… + エントリーを削除… + + + Relying Party + + + + Show expired entries + + + + (Expired) + + + ReportsWidgetStatistics @@ -8216,7 +9188,7 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 Every search term must match (ie, logical AND) - 用語ã¯å…¨ã¦ä¸€è‡´ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ (ã¤ã¾ã‚Šè«–ç†ç©) + 用語ã¯ã™ã¹ã¦ä¸€è‡´ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ (ã¤ã¾ã‚Šè«–ç†ç©) Modifiers @@ -8269,10 +9241,14 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 Search Help 検索ã®ãƒ˜ãƒ«ãƒ— + + Save Search + 検索語をä¿å­˜ + Search (%1)… Search placeholder text, %1 is the keyboard shortcut - (%1) を検索… + 検索 (%1)… Case sensitive @@ -8497,11 +9473,38 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 %1 ã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All - 全㦠+ Clear Search + 検索語を消去 + + + All Entries + ã™ã¹ã¦ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ Expired @@ -8512,6 +9515,25 @@ CPU アーキテクãƒãƒ£ãƒ¼: %2 å¼±ã„パスワード + + TagView + + Remove Search + 検索語を削除 + + + Remove Tag + タグを削除 + + + Confirm Remove Tag + タグ削除ã®ç¢ºèª + + + Remove tag "%1" from all entries in this database? + ã“ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®ã™ã¹ã¦ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‹ã‚‰ã‚¿ã‚° "%1" を削除ã—ã¾ã™ã‹ï¼Ÿ + + TotpDialog @@ -8669,26 +9691,6 @@ Example: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database KeePassXC データベースã«å®‰å…¨ã«ãƒ‘スワードをä¿ç®¡ã™ã‚‹ - - Create new database - æ–°ã—ã„データベースを作æˆã™ã‚‹ - - - Open existing database - 既存ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’é–‹ã - - - Import from KeePass 1 - KeePass 1 ã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆã™ã‚‹ - - - Import from 1Password - 1Password ã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆã™ã‚‹ - - - Import from CSV - CSV ã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆã™ã‚‹ - Recent databases 最近使用ã—ãŸãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ @@ -8701,6 +9703,18 @@ Example: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 KeePassXC %1 ã¸ã‚ˆã†ã“ã + + Create Database + + + + Open Database + + + + Import File + + WinUtils @@ -8717,31 +9731,8 @@ Example: JBSWY3DPEHPK3PXP グローãƒãƒ«ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆã‚’登録ã§ãã¾ã›ã‚“ã§ã—㟠- - WindowsHello - - Failed to init KeePassXC crypto. - - - - Failed to encrypt key data. - - - - Failed to get Windows Hello credential. - - - - Failed to decrypt key data. - - - YubiKey - - %1 No interface, slot %2 - %1 インターフェースãªã—, スロット %2 - General: 全般: @@ -8753,14 +9744,6 @@ Example: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ãƒˆãƒ¼ã‚¯ãƒ³ã‚’æ›´æ–° - - - Refresh - å†èª­ã¿è¾¼ã¿ - Hardware key slot selection ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚­ãƒ¼ã‚¹ãƒ­ãƒƒãƒˆã®é¸æŠž @@ -8793,10 +9776,6 @@ Example: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove ãƒãƒ£ãƒ¬ãƒ³ã‚¸ãƒ¬ã‚¹ãƒãƒ³ã‚¹ã®è¨­å®š (変更ã‹å‰Šé™¤ã‚’クリックã—ã¦ãã ã•ã„) - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>セキュリティ対策ã¨ã—㦠<a href="https://www.yubico.com/">YubiKey</a> ã‚„ <a href="https://onlykey.io">OnlyKey</a> を使用ã§ãã¾ã™ã€‚</p><p>ãれらã®ã‚¹ãƒ­ãƒƒãƒˆã® 1 ã¤ã‚’ <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 ãƒãƒ£ãƒ¬ãƒ³ã‚¸ãƒ¬ã‚¹ãƒãƒ³ã‚¹</a> ã«è¨­å®šã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚</p> - Detecting hardware keys… ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚­ãƒ¼ã‚’検出中… @@ -8805,28 +9784,21 @@ Example: JBSWY3DPEHPK3PXP No hardware keys detected 検出ã—ãŸãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚­ãƒ¼ã¯ã‚りã¾ã›ã‚“ - - - YubiKeyInterface - %1 Invalid slot specified - %2 - 䏿­£ãªã‚¹ãƒ­ãƒƒãƒˆãŒæŒ‡å®šã•れã¾ã—ãŸ: %1 - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] ãƒãƒ£ãƒ¬ãƒ³ã‚¸ãƒ¬ã‚¹ãƒãƒ³ã‚¹ - スロット %3 - The YubiKey PCSC interface has not been initialized. YubiKey PCSC インターフェースãŒåˆæœŸåŒ–ã•れã¦ã„ã¾ã›ã‚“。 - - Hardware key is currently in use. - ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚­ãƒ¼ã¯ç¾åœ¨ä½¿ç”¨ä¸­ã§ã™ã€‚ - Could not find or access hardware key with serial number %1. Please present it to continue. シリアルナンãƒãƒ¼ %1 ã®ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚­ãƒ¼ãŒè¦‹ã¤ã‹ã‚‰ãªã„ã€ã¾ãŸã¯ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚æ­£ã—ã設定ã—ã¦ç¶šè¡Œã—ã¦ãã ã•ã„。 @@ -8843,6 +9815,21 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 ãƒãƒ£ãƒ¬ãƒ³ã‚¸ãƒ¬ã‚¹ãƒãƒ³ã‚¹ã§ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚PCSC ã®ã‚¨ãƒ©ãƒ¼ã‚³ãƒ¼ãƒ‰: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + Press + + + Passive + USB Challenge-Response Key no interaction required + Passive + YubiKeyInterfaceUSB @@ -8850,14 +9837,6 @@ Example: JBSWY3DPEHPK3PXP Unknown 䏿˜Ž - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] 設定済ã¿ã‚¹ãƒ­ãƒƒãƒˆ - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] ãƒãƒ£ãƒ¬ãƒ³ã‚¸ãƒ¬ã‚¹ãƒãƒ³ã‚¹ - スロット %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8872,10 +9851,6 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. YubiKey USB インターフェースãŒåˆæœŸåŒ–ã•れã¦ã„ã¾ã›ã‚“。 - - Hardware key is currently in use. - ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚­ãƒ¼ã¯ç¾åœ¨ä½¿ç”¨ä¸­ã§ã™ã€‚ - Could not find hardware key with serial number %1. Please plug it in to continue. シリアルナンãƒãƒ¼ %1 ã®ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚­ãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚続行ã™ã‚‹ã«ã¯ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚­ãƒ¼ã‚’接続ã—ã¦ãã ã•ã„。 @@ -8892,5 +9867,15 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 ãƒãƒ£ãƒ¬ãƒ³ã‚¸ãƒ¬ã‚¹ãƒãƒ³ã‚¹ã§ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_km.ts b/share/translations/keepassxc_km.ts new file mode 100644 index 000000000..641147d4d --- /dev/null +++ b/share/translations/keepassxc_km.ts @@ -0,0 +1,9886 @@ + + + AboutDialog + + About KeePassXC + អំពី KeePassXC + + + About + អំពី + + + Report bugs at: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> + រាយការណáŸáž€áŸ†áž áž»ážŸáž“ៅ <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> + + + KeePassXC is distributed under the terms of the GNU General Public License (GPL) version 2 or (at your option) version 3. + KeePassXC ážáŸ’រូវបានចែកចាយ ážáž¶áž˜áž›áž€áŸ’ážáž“្ážáž·áž€áŸˆážšáž”ស់ GNU General Public License (GPL) កំណែទី២។ + + + Project Maintainers: + អ្នកážáŸ‚ទាំគម្រោង + + + Special thanks from the KeePassXC team go to debfx for creating the original KeePassX. + អគុណអណែកដល់ក្រុម KeePassXC ទៅ debfx ចំពោះផ្ážáž¾áž˜áž”ង្កើហKeePassX ។ + + + Contributors + អ្នករួមចំណែក + + + <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">See Contributions on GitHub</a> + <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors"> មើលការរួមចំណែកនៅលើ  GitHub</a> + + + Debug Info + áž–áŸážáŸŒáž˜áž¶áž“បំបាážáŸ‹áž€áŸ†áž áž»ážŸ + + + Include the following information whenever you report a bug: + បញ្ចុលពážáŸŒáž˜áž¶áž“ážáž¶áž„ក្រោមនៅពáŸáž›áž¢áŸ’នករាយការណáŸáž–ីកំហុស + + + Copy to clipboard + ចម្លងទៅការážáŸ’ទាស់ + + + + AccessControlDialog + + KeePassXC - Access Request + KeePassXC - សំណើចូលប្រើ + + + Non-existing/inaccessible executable path. Please double-check the client is legit. + អážáŸ‹áž˜áž¶áž“/មិនមានផ្លូវ​ចូលទៅអនុវážáŸ’ážáž“áŸáž”ាន។ សូមសួរទៅអážáž·ážáž·áž‡áž“​ម្ážáž„ទៀážážáž¶ážáž¾ážœáž¶áž”្រាកដជាមាន + + + <html><head/><body><p><span style=" font-weight:600;">%1 </span>is requesting access to the following entries:</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">%1 </span>កំពុងស្នើសុំចូលទៅកាន់់:</p></body></html> + + + Name + ឈ្មោះ + + + PID + PID + + + Executable + ប្រážáž·áž”ážáŸ’ážáž· + + + Command Line + Command Line + + + Details + áž–áŸážáŸŒáž˜áž¶áž“លម្អិហ+ + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + ការសម្រáŸáž…áž…áž·ážáŸ’ážážšáž”ស់អ្នកនឹងážáŸ’រូវបានចងចាំសម្រាប់រយៈពáŸáž›ážážŽáŸˆáž–áŸáž›ážŠáŸ‚លទាំងអážáž·ážáž·áž‡áž“ស្នើសុំ និង KeePassXC កំពុងដំណើរការ។ + + + Remember + ចងចាំ + + + Allow Selected + អនុញ្ញាážáž±áŸ’យជ្រើសរើស + + + Deny All && Future + បដិសáŸáž’ទាំងអស់ && អនាគហ+ + + Allow All && &Future + អនុញ្ញាážáž‘ាំងអស់ និងអនាគហ+ + + + AccessControlDialog::DenyButton + + Deny for this program + បដិសáŸáž’ កម្មវិធីមួយនáŸáŸ‡ + + + + AgentSettingsWidget + + Enable SSH Agent integration + ភ្នាក់ងារ SSH អាចរួមបញ្ចូលបាន + + + Use Pageant + ការប្រើ ការកម្សាន្ហ+ + + Use OpenSSH + ការប្រើ SSH ដោយចំហរ + + + Use both agents + ប្រើភ្នាក់ងារទាំងពីរ។ + + + SSH_AUTH_SOCK override + បដិសáŸáž’ SSH_AUTH_SOCK + + + SSH_AUTH_SOCK value + ážáž˜áŸ’លៃ SSH_AUTH_SOCK + + + (empty) + (ទទáŸážš) + + + SSH_SK_PROVIDER value + ážáž˜áŸ’លៃ SSH_SK_PROVIDER + + + SSH_SK_PROVIDER override + ការបដិសáŸáž’ SH_SK_PROVIDER + + + No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. + គ្មានច្រក SSH ដែលអាចប្រើបាន ។ ážáŸ’រូវប្រកដážáž¶ SSH_AUTH_SOCK មានបរិយាកាសអážáŸážš ឬកំណážáŸ‹áž€áž¶ážšáž”ដិសáŸáž’។ + + + SSH Agent connection is working! + ការážáž—្ជាប់របស់ភ្នាក់ងារ SHH កំពុងដំណើរការហើយ! + + + + ApplicationSettingsWidget + + Application Settings + ការកំណážáŸ‹ážšáž”ស់កម្មវិធី + + + General + ទូទៅ + + + Security + សន្ážáž·ážŸáž»áž + + + This setting cannot be enabled when minimize on unlock is enabled. + ការកំណážáŸ‹áž“áŸáŸ‡áž˜áž·áž“អាចដំណើរការទ០កាលណាដំណើរការមុážáž„áž¶ážš minimize on unlock ។ + + + Access error for config file %1 + កំហុសពáŸáž›áž…ូលប្រើ ដោយសារឯកសារប្រមូលបាន ១% + + + Icon only + ážáŸ‚រូបážáŸ†ážŽáž¶áž„ទ០+ + + Text only + ážáŸ‚អážáŸ’ážáž”ទទ០+ + + Text beside icon + អážáŸ’ážáž”ទជិážážšáž¼áž”ážáŸ†ážŽáž¶áž„ + + + Text under icon + អážáŸ’ážáž”ទក្រោមរូបážáŸ†ážŽáž¶áž„ + + + Follow style + ážáž¶áž˜ážŸáŸ’ទីល + + + Monochrome + ពណ៌ážáŸ‚មួយ + + + Monochrome (light) + មួយពណ៌ (ភ្លឺ) + + + Monochrome (dark) + មួយពណ៌ (ងងឹáž) + + + Colorful + ពណ៌​ចម្រុះ + + + You must restart the application to set the new language. Would you like to restart now? + អ្នកážáŸ’រូវចាប់ផ្ážáž¾áž˜áž€áž˜áŸ’មវិធីឡើងវិញ ដើម្បីកំណážáŸ‹áž—ាសាážáŸ’មី។ ចង់ចាប់ផ្ážáž¾áž˜áž¡áž¾áž„វិញទáŸ? + + + Reset Settings? + កំណážáŸ‹áž¡áž¾áž„វិញ? + + + Are you sure you want to reset all general and security settings to default? + ážáž¾áž¢áŸ’នកប្រាកដទáŸážáž¶áž…ង់កំណážáŸ‹áž¡áž¾áž„វិញទូទៅទាំងអស់ និងកំណážáŸ‹ážŸáž»ážœážáŸ’ážáž·áž—ាពទៅជាលំនាំដើមវិញ? + + + Select backup storage directory + ជ្រើសរើសការបម្រុងទុកបញ្ចីផ្ទុក + + + + ApplicationSettingsWidgetGeneral + + Basic Settings + ការកំណážáŸ‹áž˜áž¼áž›ážŠáŸ’ឋាន + + + Startup + ចាប់ផ្ដើម + + + Start only a single instance of KeePassXC + ចាប់ផ្ážáž¾áž˜ážáŸ‚ករណី KeePassXC ážáŸ‚មួយគážáŸ‹áŸ” + + + Automatically launch KeePassXC at system startup + ចាប់បើក KeePassXC ដោយស្វáŸáž™áž”្រវážáŸ’áž áž–áŸáž›áž”្រពáŸáž“្ធម៉ាស៊ីនផ្ážáž¾áž˜áž”ើក។ + + + Minimize window at application startup + បង្រួមទំហំបង្អួច áž–áŸáž›áž•្ážáž¾áž˜áž”ើកកម្មវិធី។ + + + Minimize window after unlocking database + បង្រួមទំហំបង្អួច ក្រោយពីដោះសារឃ្លាំងទិន្ននáŸáž™ážšáž½áž…។ + + + Remember previously used databases + ចំណាំឃ្លាំងទិន្ននáŸáž™ážŠáŸ‚លធ្លាបប្រើពីមុន។ + + + recent files + ឯកសារážáŸ’មីៗ + + + Load previously open databases on startup + ផ្ទុកឃ្លាំងទិន្ននáŸáž™ážŠáŸ‚លបើមុននáŸáŸ‡ áž–áŸáž›áž…ាប់ប្រើ + + + Remember database key files and security dongles + ចាំឯកសារសោរឃ្លាំងទិន្ននáŸáž™ និងដុំភ្ជាប់សុវážáŸ’ážáž·áž—áž¶áž– + + + Check for updates at application startup once per week + ឆែករកបច្ចុប្បន្នភាព áž–áŸáž›áž…ាប់ប្រើកម្មវិធីភ្លាម + + + Include beta releases when checking for updates + បញ្ចូលការចáŸáž‰áž•្សាយសាកល្បង áž–áŸáž›áž†áŸ‚ករកបច្ចុប្បន្ន + + + On database unlock, show entries that + áž–áŸáž›áž”ើកសោរឃ្លាំងទិន្ននáŸáž™ បង្ហាញធាážáž»ážŠáŸ‚áž› + + + have expired + On database unlock, show entries that... + ផុážáž€áŸ†ážŽážáŸ‹áž”្រើហើយ + + + days + On database unlock, show entries that will expire within %1 days + ážáŸ’ងៃ + + + will expire within + On database unlock, show entries that... + នឹងផុážáž€áŸ†ážŽážáŸ‹áž”្រើ ក្នុងរយៈពáŸáž› + + + File Management + ការគ្រប់គ្រងឯកសារ + + + Automatically save after every change + រក្សាទុកដោយស្វáŸáž™áž”្រវážáŸ’ហរាល់ក្រោយពáŸáž›áž•្លាស់ប្ážáž¼ážš + + + Automatically save when locking database + រក្សាទុកដោយស្វáŸáž™áž”្រវážáŸ’áž áž–áŸáž›áž…ាក់សោរឃ្លាំងទិន្ននáŸáž™áŸ” + + + Automatically save non-data changes when locking database + រក្សាទុកដោយស្វáŸáž™áž”្រវážáŸ’ហនូវការផ្លាស់ប្ážáž¼ážšáž˜áž·áž“មែនទិន្ននáŸáž™ áž–áŸáž›áž…ាក់សោរឃ្លាំងទិន្ននáŸáž™áŸ” + + + Automatically reload the database when modified externally + រើឃ្លាំងទិន្ននáŸáž™áž¡áž¾áž„វិញ ដោយស្វáŸáž™áž”្រវážáŸ’ហកាលណាមានការប្រែប្រួលពីក្រៅ។ + + + Backup database file before saving + បម្រុងទុកឯសារឃ្លាំងទិន្ននáŸáž™ មុនពáŸáž›ážšáž€áŸ’សាទុក។ + + + Backup destination + គោលដៅបម្រុងទុក + + + Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". + បញ្ជាក់ពីទីážáž¶áŸ†áž„ឯកសារបម្រុងទុកមូលដ្ឋានទិន្ននáŸáž™áŸ” ការកើážáž¡áž¾áž„នៃ "{DB_FILENAME}" ážáŸ’រូវបានជំនួសដោយឈ្មោះឯកសារនៃមូលដ្ឋានទិន្ននáŸáž™ážŠáŸ‚លបានរក្សាទុកដោយគ្មានកម្មវិធីបន្ážáŸ‚ម។ {TIME:<format>} ážáŸ’រូវបានជំនួសដោយពáŸáž›ážœáŸáž›áž¶áž”ម្រុងទុក សូមមើល https://doc.qt.io/qt-5/qdatetime.html#toString. <format> លំនាំដើម ដើម្បីធ្វើទ្រង់ទ្រាយážáŸ’សែអក្សរ "dd_MM_yyyy_hh-mm-ss"។ + + + {DB_FILENAME}.old.kdbx + {DB_FILENAME}.old.kdbx + + + Choose... + ជ្រើសរើស... + + + Use alternative saving method (may solve problems with Dropbox, Google Drive, GVFS, etc.) + ប្រើវិធីសន្សំជំនួស (អាចដោះស្រាយបញ្ហាជាមួយ Dropbox, Google Drive, GVFS ជាដើម) + + + Temporary file moved into place + ឯកសារ​បណ្ដោះ​អាសន្ន​ážáŸ’រូវ​បាន​ផ្លាស់ទី​ទៅ​កន្លែង + + + Directly write to database file (dangerous) + ការសរសáŸážšážŠáŸ„យផ្ទាល់ទៅឯកសារឃ្លំាងទិន្ននáŸáž™ (មានគ្រោះážáŸ’នាក់) + + + Entry Management + ការគ្រប់គ្រងទិន្ននáŸáž™áž”ញ្ចូល + + + Use group icon on entry creation + Use group icon on entry creation +ប្រើរូបážáŸ†ážŽáž¶áž„áž–áŸáž›áž”ង្កើážáž€áŸ’រុមážáŸ’មី + + + Minimize when opening a URL + បង្រួមពáŸáž›áž”ើកURL + + + Hide window when copying to clipboard + លាក់ផ្ទាំងពáŸáž›ážážáž…ម្លងទៅឃ្លីបបហ+ + + Minimize + បង្រួម + + + Drop to background + ទម្លាក់ទៅផ្ទៃážáž¶áž„ក្រោយ + + + Favicon download timeout: + អស់ពáŸáž›áž€áŸ’នុងការទាញយករូបážáŸ†ážŽáž¶áž„ + + + Website icon download timeout in seconds + រូបគáŸáž áž‘ំពáŸážšáž‘ាញយកអស់ពáŸáž›áž€áŸ’នុងពáŸáž›áž”៉ុន្មានវិនាទី + + + sec + Seconds + វិនាទី + + + User Interface + ផ្ទៃមុážážŸáž˜áŸ’រាប់អ្នកប្រើ + + + Toolbar button style + ស្ទីលប៊ូážáž»áž„របារឧបករណ០+ + + Movable toolbar + របារឧបករណáŸáž…áž›áŸáž + + + Language selection + ជ្រើសរើសភាសា + + + Language: + ភាសា៖ + + + (restart program to activate) + (ចាប់ផ្ážáž¾áž˜áž€áž˜áŸ’មវិធីឡើងវិញដើម្បីដំណើរការ) + + + Toolbar button style: + ស្ទីលប៊ូážáž»áž„របារឧបករណáŸáŸ– + + + Show passwords in color + ការបង្ហាញពាក្យសម្ងាážáŸ‹áž‡áž¶áž–ណ៌ + + + Use monospaced font for notes + ប្រើប្រាស់ពុម្ពអក្សរទំហំážáŸ‚មួយសម្រាប់កំណážáŸ‹áž…ំណាំ + + + Minimize instead of app exit + បង្រួមឲ្យážáž¼áž…ជំនួសឱ្យការចាកចáŸáž‰áž–ីកម្មវិធី + + + Show a system tray icon + ការបង្ហាញពីរូបážáŸ†ážŽáž¶áž„នៃážáž¶ážŸáž”្រពáŸáž“្ធ + + + Tray icon type + ប្រភáŸáž‘រូបážáž¶ážŸ + + + Tray icon type: + ប្រភáŸáž‘រូបážáŸ†ážŽáž¶áž„ + + + Hide window to system tray when minimized + លាក់ផ្ទាំងវីនដូទៅកានážáž¶ážŸáž”្រពáŸáž“្ធ នៅពáŸáž›áž”ង្រួមឲ្យážáž¼áž… + + + Reset settings to default… + ការកំណážáŸ‹áž¡áž¾áž„វិញទៅជាលំនាំដើម… + + + Auto-Type + មុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž· + + + Use entry title to match windows for global Auto-Type + ប្រើប្រាស់ចំណងជើងទិន្ននáŸáž™áž”ញ្ចូលដើម្បីឲ្យážáŸ’រូវគ្នានឹងវីនដូសម្រាប់មុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž·áž‡áž¶áž‘ូទៅ + + + Use entry URL to match windows for global Auto-Type + ប្រើប្រាស់ URL ទិន្ននáŸáž™áž”ញ្ចូលដើម្បីឲ្យážáŸ’រូវនឹងវីនដូសម្រាប់មុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž·áž‡áž¶áž‘ូទៅ + + + Always ask before performing Auto-Type + ážáŸ’រូវážáŸ‚សួរមុនពáŸáž›ážŠáŸ†ážŽáž¾ážšáž€áž¶ážšáž˜áž»ážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž·áž‡áž¶áž“ិច្ច + + + Hide expired entries from Auto-Type + លាក់ទិន្ននáŸáž™áž”ញ្ចូលដែលផុážáž€áŸ†ážŽážáŸ‹áž–ីមុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž· + + + Re-lock previously locked database after performing Auto-Type + ចាក់សោមូលដ្ឋានទិន្ននáŸáž™ážŠáŸ‚លបានចាក់សោពីមុនឡើងវិញ បន្ទាប់ពីប្រើប្រាស់មុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž· + + + Auto-Type start delay: + ការពន្យារពáŸáž›áž˜áž»áž“ការសរសáŸážšáž…ូលដោយស្វáŸáž™áž”្រវážáŸ’ážáž·áž…ាប់ផ្ážáž¾áž˜: + + + Global Auto-Type shortcut: + ផ្លូវកាážáŸ‹ážŸáž˜áŸ’រាប់ការសរសáŸážšáž…ូលដោយស្វáŸáž™áž”្រវážáŸ’ážáž·áž‘ូទាំងឧបករណáŸáž”្រើប្រាស់ + + + Auto-type start delay milliseconds + ការពន្យារពáŸáž›áž˜áž¸áž›áž¸ážœáž·áž“ាទីមុនការសរសáŸážšáž…ូលដោយស្វáŸáž™áž”្រវážáŸ’ážáž·áž…ាប់ផ្ážáž¾áž˜ + + + ms + Milliseconds + ម.វិ. + + + Auto-Type typing delay: + ការពន្យារពáŸáž›ážŸážšážŸáŸážšáž…ូលនៃការសរសáŸážšáž…ូលដោយស្វáŸáž™áž”្រវážáŸ’ážáž· + + + Global auto-type shortcut + ផ្លូវកាážáŸ‹ážŸáž˜áŸ’រាប់ការសរសáŸážšáž…ូលដោយស្វáŸáž™áž”្រវážáŸ’ážáž·áž‘ូទាំងឧបករណáŸáž”្រើប្រាស់ + + + Auto-type character typing delay milliseconds + ការពន្យារពáŸáž›áž€áž¶ážšážŸážšážŸáŸážšážáž½áž¢áž€áŸ’សរនៃការសរសáŸážšáž…ូលដោយស្វáŸáž™áž”្រវážáŸ’ážáž· + + + Remember last typed entry for: + ចងចាំការបញ្ចូលដោយសរសáŸážšáž…ុងក្រោយសម្រាប់: + + + + ApplicationSettingsWidgetSecurity + + Timeouts + អស់ពáŸáž› + + + Database lock timeout seconds + ការចាក់សោមូលដ្ឋានទិន្ននáŸáž™áž¢ážŸáŸ‹áž–áŸáž›áž“ៅប៉ុន្មានវិនាទីទៀហ+ + + sec + Seconds + វិនាទី + + + Clear clipboard after + ជម្រះឃ្លីបបážáž”ន្ទាប់ពី + + + Clear search query after + ជម្រះសំណួរនៅក្នុង ស្វែងរក​ បន្ទាប់ពី + + + min + Minutes + នាទី + + + Clipboard clear seconds + សម្អាážážƒáŸ’លីបបážáž€áŸ’នុងវិនាទី + + + Lock databases after inactivity of + ចាក់សោមូលដ្ឋានទិន្ននáŸáž™áž”ន្ទាប់ពីមិនធ្វើសកម្មភាពនៃ + + + Convenience + ភាពងាយស្រួល + + + Enable database quick unlock (Touch ID / Windows Hello) + បើកការដោះសោរហáŸážŸáž“ៃឃ្លំាងទិន្ននáŸáž™ (Touch ID / Windows Hello) + + + Lock databases when session is locked or lid is closed + ចាក់សោមូលដ្ឋានទិន្ននáŸáž™áž“ៅពáŸáž›ážŠáŸ‚លវគ្គážáŸ’រូវបានចាក់សោ ឬអáŸáž€áŸ’រង់ážáŸ’រូវបានបិទ។ + + + Lock databases after minimizing the window + ចាក់សោមូលដ្ឋានទិន្ននáŸáž™áž”ន្ទាប់ពីបង្រួមវីនដូឲ្យážáž¼áž… + + + Require password repeat when it is visible + ទាមទារពាក្យសម្ងាážáŸ‹áž˜áŸ’ដងទៀážáž“ៅពáŸáž›áž˜áž¾áž›ážƒáž¾áž‰ + + + Hide passwords when editing them + លាក់ពាក្យសម្ងាážáŸ‹áž–áŸáž›áž€áŸ‚វា + + + Use placeholder for empty password fields + កន្លែងសម្រាប់ដាក់ពាក្យសម្ងាážáŸ‹áž‘ទ០+ + + Hide passwords in the entry preview panel + លាក់ពាក្យសម្ងាážáŸ‹áž“ៅក្នុងផ្ទាំងមើលជាមុន + + + Hide entry notes by default + លាក់កំណážáŸ‹áž…ំណាំចូលážáž¶áž˜áž›áŸ†áž“ាំដើម + + + Move entries to recycle bin without confirmation + ផ្លាស់ទីធាážáž»ážšáž…ូលទៅក្នុងធុងសំរាមដោយគ្មានការបញ្ចាក់ + + + Enable double click to copy the username/password entry columns + បើការចុចពីរដើម្បីចម្លង username/password លើជួរឈរ + + + Privacy + ឯកជនភាព + + + Use DuckDuckGo service to download website icons + ប្រើសáŸážœáž¶áž€áž˜áŸ’ម DuckDuckGo ដើម្បីទាញយករូបážáŸ†ážŽáž¶áž„ពីគáŸáž áž‘ំពáŸážš + + + Hide TOTP in the entry preview panel + លាក់ TOTP នៅក្នុងបន្ទះមើលជាមុនធាážáž» + + + + AutoType + + The requested Auto-Type sequence cannot be used due to an error: + ​បាន​ស្នើលំដាប់ស្វáŸáž™â€‹áž”្រវážáŸ’ážáž·â€‹ážŠáŸ‚ល​​ប្រភáŸáž‘​មិន​អាច​ážáŸ’រូវ​បាន​ប្រើ​ដោយ​សារ​ážáŸ‚​មាន​បញ្ហា៖ + + + Auto-Type Error + កំហុស​ដោយ​ស្វáŸáž™áž”្រវážáŸ’ážáž· + + + Permission Required + ការអនុញ្ញាážážáŸ’រូវបានទាមទារ + + + KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. + KeePassXC ទាមទារ​ការអនុញ្ញាážâ€‹áž€áž¶ážšâ€‹áž”្រើប្រាស់​ដើម្បី​អនុវážáŸ’ážâ€‹áž€áž˜áŸ’ážšáž·ážâ€‹áž…ូល​ប្រភáŸáž‘​ស្វáŸáž™áž”្រវážáŸ’ážáž·áŸ” ប្រសិនបើអ្នកបានផ្ážáž›áŸ‹áž€áž¶ážšáž¢áž“ុញ្ញាážážšáž½áž…ហើយ អ្នកប្រហែលជាážáŸ’រូវចាប់ផ្ážáž¾áž˜áž¡áž¾áž„វិញ KeePassXC ។ + + + KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. + KeePassXC ទាមទារសិទ្ធិចូលប្រើ និងការអនុញ្ញាážážážáž¢áŸáž€áŸ’រង់ ដើម្បីដំណើរការរួមប្រភáŸáž‘ស្វáŸáž™áž”្រវážáŸ’ážáž·áŸ” ការážážáž¢áŸáž€áŸ’រង់គឺ ចាំបាច់ដើម្បីប្រើផ្ទាំងចំណងជើងដើម្បីស្វែងរកធាážáž»áŸ” ប្រសិនបើអ្នកបានអនុញ្ញាážážšáž½áž…ហើយ អ្នកប្រហែលជាážáŸ’រូវចាប់ផ្ážáž¾áž˜ KeePassXC ឡើងវិញ។ + + + Invalid entry provided + ការផ្ដល់ឲ្យការបញ្ចូលមិនážáŸ’រឹមážáŸ’រូវ + + + Bracket imbalance detected, found extra { or } + បានរកឃើញអážáž»áž›áŸ’យភាពក្នុងážáž„្កៀប { or } រកឃើញបន្ážáŸ‚ម + + + Too many repetitions detected, max is %1: %2 + បានរកឃើញពាក្យដដែលៗច្រើនពáŸáž€ អážáž·áž”រមាគឺ %1: %2 + + + Very slow key press detected, max is %1: %2 + ការចុចលើគ្រាប់ចុចយឺážážáŸ’លាំង ážáŸ’រូវបានរកឃើញ អážáž·áž”រមាគឺ %1: %2 + + + Very long delay detected, max is %1: %2 + បានរកឃើញការពន្យាពáŸáž›áž™áž¼ážšáž–áŸáž€ ជាអážáž·áž”រមាគឺ %1: %2 + + + Entry does not have attribute for PICKCHARS: %1 + ការបញ្ចូលមិនមានលក្ážážŽáŸˆážŸáž˜áŸ’រាប់ PICKCHARS៖ %1 + + + Invalid conversion type: %1 + ការ​បម្លែង​មិន​ážáŸ’រឹមážáŸ’រូវ៖ %1 + + + Invalid conversion syntax: %1 + វាក្យសម្ពáŸáž“្ធនៃការបំប្លែងមិនážáŸ’រឹមážáŸ’រូវ៖ %1 + + + Invalid regular expression syntax %1 +%2 + វាក្យសម្ពáŸáž“្ធកន្សោមពាក្យធម្មážáž¶áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ %1 +%2 + + + Invalid placeholder: %1 + កន្លែងរក្សាទុកមិនážáŸ’រឹមážáŸ’រូវ៖ %1 + + + + AutoTypeAssociationsModel + + Window + វីនដូ + + + Sequence + លំដាប់ + + + (empty) + (ទទáŸážš) + + + Default sequence + លំដាប់លំនាំដើម + + + + AutoTypeMatchModel + + Group + ក្រុម + + + Title + ចំណងជើង + + + Username + ឈ្មោះអ្នកប្រើ + + + Sequence + លំដាប់ + + + + AutoTypePlatformX11 + + Trying to send invalid keysym. + កំពុងព្យាយាមផ្ញើ keysym មិនážáŸ’រឹមážáŸ’រូវ + + + Sequence aborted: Caps Lock is on + លំដាប់ដែលបានបោះបង់៖ អក្សរ​ធំ​ជាប់ážáŸ’រូវបានបើក + + + Sequence aborted: Modifier keys held by user + លំដាប់ដែលបានបោះបង់៖ សោ​កែប្រែ​ដែល​កាន់​ដោយ​អ្នក​ប្រើ + + + Unable to get valid keycode for key: + មិនអាចទទួលបានលáŸážáž€áž¼ážŠážáŸ’រឹមážáŸ’រូវសម្រាប់សោបានទáŸáŸ– + + + + AutoTypeSelectDialog + + Auto-Type - KeePassXC + មុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž· - KeePassXC + + + Double click a row to perform Auto-Type or find an entry using the search: + ចុចពីរដងលើជួរដáŸáž€áž˜áž½áž™ ដើម្បីដំណើរការមុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž· ឬស្វែងរកទិន្ននáŸáž™áž”ញ្ចូលដោយប្រើការស្វែងរក៖ + + + <p>You can use advanced search queries to find any entry in your open databases. The following shortcuts are useful:<br/> +Ctrl+F - Toggle database search<br/> +Ctrl+1 - Type username<br/> +Ctrl+2 - Type password<br/> +Ctrl+3 - Type TOTP<br/> +Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> + <p>អ្នកអាចប្រើសំណួរស្វែងរកកម្រិážážáŸ’ពស់ដើម្បីស្វែងរកធាážáž»ážŽáž¶áž˜áž½áž™áž“ៅក្នុងមូលដ្ឋានទិន្ននáŸáž™áž”ើកចំហរបស់អ្នក។ ផ្លូវកាážáŸ‹ážáž¶áž„ក្រោមមានប្រយោជនáŸáŸ– <br/> +Ctrl+F - បិទ/បើកការស្វែងរកមូលដ្ឋានទិន្ននáŸáž™<br/> +Ctrl+1 - វាយឈ្មោះអ្នកប្រើប្រាស់<br/> +Ctrl+2 - វាយពាក្យសម្ងាážáŸ‹ <br/> +Ctrl+3 - វាយ TOTP<br/> +Ctrl+4 - ប្រើក្ážáž¶ážšáž…ុចនិម្មិហ(វីនដូážáŸ‚ប៉ុណ្ណោះ) </p> + + + Search all open databases + ស្រាវជ្រាវរាល់ទិន្ននáŸáž™áž…ំហទាំងអស់ + + + Search… + ស្វáŸáž„រក + + + Type Sequence + ប្រភáŸáž‘ážáž¶áž˜áž›áŸ†ážŠáž¶áž”់ + + + Cancel + បញ្ឈប់ + + + Type {USERNAME} + វាយឈ្មោះអ្នកប្រើប្រាស់ + + + Type {PASSWORD} + វាយលáŸážážŸáž˜áŸ’ងាážáŸ‹ + + + Type {TOTP} + វាយTOTP + + + Copy Username + ចម្លងឈ្មោះអ្នកប្រើ + + + Copy Password + ចម្លងពាក្យសម្ងាážáŸ‹ + + + Copy TOTP + ចម្លង TOTP + + + Use Virtual Keyboard + ប្រើក្ážáž¶ážšáž…ុចនិម្មិហ+ + + + BrowserAccessControlDialog + + KeePassXC - Browser Access Request + KeePassXC - សំណើចូលប្រើកម្មវិធីរុករក​ážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិហ+ + + %1 is requesting access to the following entries: + % 1 គឺកំពុងស្នើសុំចូលប្រើការបញ្ចូលážáž¶áž„ក្រោម៖ + + + Remember access to checked entries + ចងចាំការចូលប្រើទិន្ននáŸáž™áž”ញ្ចូលដែលបានដាកធីក + + + Remember + ចងចាំ + + + Allow access to entries + អនុញ្ញាážáž±áŸ’យចូលប្រើប្រាស់ទិន្ននáŸáž™áž”ញ្ចូល + + + Allow Selected + អនុញ្ញាážáž±áŸ’យជ្រើសរើស + + + Deny All + បដិសáŸáž’ទាំងអស់ + + + Disable for this site + បិទដំណើរការសម្រាប់គáŸáž áž‘ំពáŸážšáž“áŸáŸ‡ + + + Undo + មិនធ្វើវិញ + + + + BrowserEntrySaveDialog + + Ok + យល់ព្រម + + + Cancel + បញ្ឈប់ + + + You have multiple databases open. +Please select the correct database for saving credentials. + អ្នកមានពហុមូលដ្ឋានទិន្ននáŸáž™áž”ើក។ +សូមជ្រើសរើសមូលដ្ឋានទិន្ននáŸáž™ážáŸ’រឹមážáŸ’រូវសម្រាប់ការរក្សាទុកពáŸážáŸŒáž˜áž¶áž“ផ្ទៀងផ្ទាážáŸ‹áŸ” + + + KeePassXC - Select Database + + + + + BrowserPasskeysConfirmationDialog + + Cancel + បោះបង់ + + + Update + ធ្វើបច្ចុប្បន្នភាព + + + Authenticate + ផ្ទៀងផ្ទាážáŸ‹áž—áž¶áž–ážáŸ’រឹមážáŸ’រូវ + + + Register new + ចុះឈ្មោះážáŸ’មី + + + Register + ចុះឈ្មោះ + + + Timeout in <b>%n</b> seconds... + អស់ពáŸáž›áž“ៅក្នុង <b>%n</b> វិនាទី... + + + Do you want to register Passkey for: + + + + Existing Passkey found. +Do you want to register a new Passkey for: + + + + Select the existing Passkey and press Update to replace it. + + + + Authenticate Passkey credentials for: + + + + Relying Party: %1 + + + + Username: %1 + Username: %1 + + + KeePassXC - Passkey credentials + + + + + BrowserService + + A request for creating a new group "%1" has been received. +Do you want to create this group? + + ការស្នើសុំសម្រាប់ធ្វើការបង្កើážáž€áŸ’រុមážáŸ’មី "%1" ážáŸ’រូវបានទទួលរួចហើយ។ +ážáž¾áž¢áŸ’នកចង់បង្កើážáž€áŸ’រុមនáŸáŸ‡áž¬áž‘áŸ? + + + + You have received an association request for the following database: +%1 + +Give the connection a unique name or ID, for example: +chrome-laptop. + អ្នកបានទទួលសំណើការážáž—្ជាប់សម្រាប់មូលដ្ឋានទិន្ននáŸáž™ážáž¶áž„ក្រោម៖ +%1 + +ផ្ážáž›áŸ‹ážˆáŸ’មោះ ឬលáŸážážŸáž˜áŸ’គាល់ពិសáŸážŸážŸáž˜áŸ’រាប់ការážáž—្ជាប់ ឧទាហរណáŸáŸ– +chrome-កុំព្យូទáŸážšáŸ” + + + Save and allow access + រក្សាទុក និងអនុញ្ញាážáž¢áŸ„យចូលប្រើប្រាស់ + + + A shared encryption key with the name "%1" already exists. +Do you want to overwrite it? + ឃីបម្លែងកូដដែលបានចែករំលែកដែលមានឈ្មោះ "%1" មានរួចហើយ។ +ážáž¾áž¢áŸ’នកចង់សរសáŸážšáž‡áž¶áž“់លើវាឬទáŸ? + + + Do you want to update the information in %1 - %2? + ážáž¾â€‹áž¢áŸ’នក​ចង់​អាប់ដáŸážâ€‹áž–áŸážáŸŒáž˜áž¶áž“​នៅក្នុង %1 - %2 ដែរ​ឬ​ទáŸ? + + + A request for deleting entry "%1" has been received. +Do you want to delete the entry? + + ការស្នើសុំសម្រាប់ការលុបការបញ្ចូល "% 1" ážáŸ’រូវបានទទួលយកហើយ។ +ážáž¾áž¢áŸ’នកចង់លុបការបញ្ចូលនáŸáŸ‡áž¬áž‘áŸ? + + + + %1 (Passkey) + %1 (Passkey) + + + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + + + + KeePassXC - Create a new group + + + + Disable + បិទដំណើរការ + + + KeePassXC - Overwrite existing key? + + + + KeePassXC - Update Passkey + + + + KeePassXC - Update Entry + + + + KeePassXC - Delete entry + + + + KeePassXC - New key association request + + + + Passkey + + + + + BrowserSettingsWidget + + Dialog + ការសន្ទនា + + + This is required for accessing your databases with KeePassXC-Browser + ការធ្វើបែបនáŸáŸ‡ážáž˜áŸ’រូវឱ្យចូលប្រើមូលដ្ឋានទិន្ននáŸáž™ážšáž”ស់អ្នកជាមួយនឹងកម្មវិធីរុករក​ážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážážšáž”ស់ KeePassXC + + + Enable browser integration + បើកការរួមបញ្ចូលកម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិហ+ + + General + ទូទៅ + + + Browsers installed as snaps are currently not supported. + កម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážážŠáŸ‚លបានដំឡើងជាážáŸ’ទាស់ ážáŸ’មីៗនáŸáŸ‡áž˜áž·áž“អាចប្រើប្រាស់បានទáŸáŸ” + + + Enable integration for these browsers: + បើកការរួមបញ្ចូលសម្រាប់កម្មវិធីរុករកទាំងនáŸáŸ‡áŸ– + + + Vivaldi + Vivaldi + + + &Edge + &គែម + + + Firefox + Firefox + + + Tor Browser + កម្មវិធីរុករក Tor + + + Brave + កម្មវិធី Brave + + + Google Chrome + Google Chrome + + + Chromium + ក្រូមីញ៉ូម + + + Show a notification when credentials are requested + Credentials mean login data requested via browser extension + បង្ហាញសារជូនដំណឹងនៅពáŸáž›ážŠáŸ‚លលិážáž·ážážŸáž˜áŸ’គាល់បានស្នើសុំ + + + Request to unlock the database if it is locked + ស្នើសុំដោះសោទិន្ននáŸáž™áž”្រសិនបើទិន្ននáŸáž™ážáŸ’រូវបានចាក់សោ + + + Only entries with the same scheme (http://, https://, …) are returned. + មានážáŸ‚ទិន្ននáŸáž™ážŠáŸ‚លមានរូបគំនូរដូចគ្នា (http://, https://, …) ដែលážáŸ’រូវážáŸ’រឡប់មកវិញ។ + + + Match URL scheme (e.g., https://example.com) + URL រូបគំនូរដែលážáŸ’រូវគ្នា (áž§. https://example.com) + + + Only returns the best matches for a specific URL instead of all entries for the whole domain. + បញ្ជូនážáŸ‚ការផ្គូផ្គងដែលážáŸ’រូវបានល្អបំផុážážáŸ’រឡប់ទៅកាន់ដែន URL ជាក់លាក់មួយ ជំនួសឱ្យបញ្ចូលទិន្ននáŸáž™áž”ញ្ចូលទាំងអស់ទៅកាន់ដែនទាំងមូល។ + + + Return only best-matching credentials + យកážáŸ‚លិážáž·ážážŸáž˜áŸ’គាល់ដែលផ្គូផ្គងážáŸ’រូវបំផុážáž”៉ុណ្ណោះážáŸ’រឡប់មកវិញ។ + + + Returns expired credentials. String [expired] is added to the title. + ប្រគល់ពáŸážáŸŒáž˜áž¶áž“សម្ងាážáŸ‹â€‹ážŠáŸ‚ល​ផុážâ€‹áž€áŸ†ážŽážáŸ‹áŸ” ážáŸ’សែអក្សរ [ផុážáž€áŸ†ážŽážáŸ‹] ážáŸ’រូវបានបន្ážáŸ‚មទៅចំណងជើង។ + + + Allow returning expired credentials + អនុញ្ញាážáž±áŸ’យទទួលយកពáŸážáŸŒáž˜áž¶áž“ផ្ទៀងផ្ទាážáŸ‹ážŠáŸ‚លផុážáž€áŸ†ážŽážáŸ‹ + + + All databases connected to the extension will return matching credentials. + រាល់មូលដ្ឋានទិន្ននáŸáž™áž‘ាំងអស់ដែលភ្ជាប់ទៅកម្មវិធីបន្ážáŸ‚មនáŸáŸ‡áž“ឹងážáŸ’រូវážáŸ’រឡប់ទៅកាន់ពáŸážáŸŒáž˜áž¶áž“ផ្ទៀងផ្ទាážáŸ‹ážŠáŸ‚áž›ážáŸ’រូវគ្នា។ + + + Search in all opened databases for matching credentials + Credentials mean login data requested via browser extension + ស្វែងរកនៅក្នុងមូលដ្ឋានទិន្ននáŸáž™ážŠáŸ‚លបានបើកចំហទាំងអស់សម្រាប់ពáŸážáŸŒáž˜áž¶áž“ផ្ទៀងផ្ទាážáŸ‹ážŠáŸ‚áž›ážáŸ’រូវគ្នា។ + + + Advanced + កម្រិážážáŸ’ពស់ + + + Never ask before accessing credentials + Credentials mean login data requested via browser extension + កុំសួរមុនពáŸáž›áž…ូលប្រើពáŸážáŸŒáž˜áž¶áž“ផ្ទៀងផ្ទាážáŸ‹ + + + Never ask before updating credentials + Credentials mean login data requested via browser extension + កុំសួរមុនពáŸáž›áž’្វើបច្ចុប្បន្នភាពពáŸážáŸŒáž˜áž¶áž“ផ្ទៀងផ្ទាážáŸ‹ + + + Do not ask permission for HTTP Basic Auth + An extra HTTP Basic Auth setting + សូមកុំសុំការអនុញ្ញាážážŸáž˜áŸ’រាប់ HTTP Basic Auth + + + Automatically creating or updating string fields is not supported. + ការបង្កើហឬការធ្វើបច្ចុប្បន្នភាពកន្លែងបញ្ចូលជួរអក្សរដោយស្វáŸáž™áž”្រវážáŸ’ážáž·áž˜áž·áž“អាចប្រើប្រាស់បានទáŸáŸ” + + + Return advanced string fields which start with "KPH: " + ážáŸ’រឡប់វាលកន្លែងបញ្ចូលážáŸ’សែអក្សរកម្រិážážáŸ’ពស់ដែលចាប់ផ្ážáž¾áž˜ážŠáŸ„áž™ "KPH:" + + + Don't display the popup suggesting migration of legacy KeePassHTTP settings. + សូមកុំបង្ហាញផ្ទាំងលáŸáž…ឡើងការណែនាំឱ្យធ្វើការផ្ទáŸážšáž“ៃការកំណážáŸ‹ KeePassHTTP ចាស់។ + + + Do not prompt for KeePassHTTP settings migration. + កុំសុំឲ្យផ្ទáŸážšáž€áž¶ážšáž€áŸ†ážŽážáŸ‹ KeePassHTTP។ + + + Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup. + ធ្វើបច្ចុប្បន្នភាពផ្លូវគោលពីរដោយស្វáŸáž™áž”្រវážáŸ’ážáž·ážŸáž˜áŸ’រាប់ KeePassXC ឬ keepassxc-proxy នៅក្នុងស្គ្រីបផ្ញើសារដើមនៅពáŸáž›áž…ាប់ផ្ážáž¾áž˜áŸ” + + + Update native messaging manifest files at startup + ធ្វើបច្ចុប្បន្នភាពទៅឯកសារបង្ហាញសារដើមនៅពáŸáž›áž…ាប់ផ្ážáž¾áž˜ + + + Use a custom proxy location if you installed a proxy manually. + ប្រើប្រាស់ទីážáž¶áŸ†áž„ប្រូកស៊ីផ្ទាល់ážáŸ’លួន ប្រសិនបើអ្នកបានដំឡើងប្រូកស៊ីដោយដៃ។ + + + Use a custom proxy location: + Meant is the proxy for KeePassXC-Browser + ប្រើប្រាស់ទីážáž¶áŸ†áž„ប្រូកស៊ីផ្ទាល់ážáŸ’លួន៖ + + + Custom proxy location field + កន្លែងបញ្ចូលទីážáž¶áŸ†áž„ប្រូកស៊ីផ្ទាល់ážáŸ’លួន + + + Browser for custom proxy file + កម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážážŸáž˜áŸ’រាប់ឯកសារប្រូកស៊ីផ្ទាល់ážáŸ’លួន + + + Browse… + Button for opening file dialog + រុករក… + + + Use a custom browser configuration location: + ការប្រើទីážáž¶áŸ†áž„កំណážáŸ‹ážšáž…នាសម្ពáŸáž“្ធកម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážáž•្ទាល់ážáŸ’លួន៖ + + + Browser type: + ប្រភáŸáž‘កម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážáŸ– + + + Toolbar button style + ស្ទីលប៊ូážáž»áž„របារឧបករណ០+ + + Config Location: + ការ​កំណážáŸ‹â€‹ážšáž…នាសម្ពáŸáž“្ធ​ទីážáž¶áŸ†áž„៖ + + + Custom browser location field + កន្លែងបញ្ចូលទីážáž¶áŸ†áž„កម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážáž•្ទាល់ážáŸ’លួន + + + Browse for custom browser path + រកមើលផ្លូវកម្មវិធីរុករក​ážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážáž•្ទាល់ážáŸ’លួន + + + Custom extension ID: + áž›áŸážážŸáž˜áŸ’គាល់កម្មវិធីបន្ážáŸ‚មផ្ទាល់ážáŸ’លួន៖ + + + Custom extension ID + áž›áŸážážŸáž˜áŸ’គាល់កម្មវិធីបន្ážáŸ‚មផ្ទាល់ážáŸ’លួន + + + Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 + ដោយសារមុážáž„áž¶ážš Snap sandboxing នោះអ្នកážáŸ’រូវážáŸ‚ដំណើរការស្គ្រីបដើម្បីបើកការរួមបញ្ចូលកម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážáŸ”<br />អ្នកអាចទទួលបានស្គ្រីបនáŸáŸ‡áž˜áž€áž–ី% 1 + + + KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2 and %3. %4 + KeePassXC-កម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážážáŸ’រូវការសម្រាប់ការរួមបញ្ចូលកម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážáž“áŸáŸ‡ážŠáž¾áž˜áŸ’បីធ្វើការ។ <br />ទាញយកវាសម្រាប់ %1 និង %2 និង %3. %4 + + + Please see special instructions for browser extension use below + សូមមើលការណែនាំពិសáŸážŸážŸáž˜áŸ’រាប់ការប្រើប្រាស់កម្មវិធីបន្ážáŸ‚ម​របស់កម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážážáž¶áž„ក្រោម + + + Executable Files + ឯកសារដែលអនុវážáŸ’ážáž“áŸáž”áž¶áž“ + + + All Files + ឯកសារ​ទាំងអស់ + + + Select custom proxy location + ជ្រើសរើសទីážáž¶áŸ†áž„ប្រូកស៊ីផ្ទាល់ážáŸ’លួន + + + Select native messaging host folder location + ជ្រើសរើសទីážáž¶áŸ†áž„ážážáž˜áŸ‰áž¶ážŸáŸŠáž¸áž“ផ្ញើសារដើម​ + + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>ការព្រមាន</b> លៃ​ážáž˜áŸ’រូវ​ážáŸ‚​ការ​កំណážáŸ‹â€‹áž‘ាំង​នáŸáŸ‡â€‹áž”ើ​ចាំបាច់។ + + + + The custom proxy location does not exist. + + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + + + + CloneDialog + + Clone Entry Options + ជម្រើសចូលក្លូន + + + Append ' - Clone' to title + បន្ážáŸ‚ម ' - ក្លូន' ទៅចំណងជើង + + + Replace username and password with references + ជំនួសឈ្មោះ អ្នកប្រើប្រាស់ និងពាក្យសម្ងាážáŸ‹ážŠáŸ„យឯកសារយោង + + + Copy history + ចម្លងប្រវážáŸ’ážáž· + + + + CsvImportWidget + + size, rows, columns + ទំហំ, ជួរដáŸáž€, ជួរឈរ + + + Column Association + ការទំនាក់ទំនងរវាងជួរឈរ + + + Password + ពាក្យសម្ងាážáŸ‹ + + + Username + ឈ្មោះអ្នកប្រើ + + + Title + ចំណងជើង + + + Group + ក្រុម + + + URL + URL + + + Notes + ចំណាំ + + + TOTP + TOTP + + + Created + បានបង្កើហ+ + + Last Modified + បានកែប្រែចុងក្រោយ + + + Icon + រូបážáŸ†ážŽáž¶áž„ + + + Encoding + ការបំលែងកូដ + + + Codec + កូឌិក + + + Text is qualified by + អážáŸ’ážáž”áž‘ážáŸ’រូវបានទទួលស្គាល់ដោយ + + + Text qualification + គុណវុឌ្ážáž·áž¢ážáŸ’ážáž”áž‘ + + + Fields are separated by + កន្លែង​បញ្ចូលážáŸ’រូវបានបំបែកដោយ + + + Field separation + ការបំបែកនៃកន្លែង​បញ្ចូល + + + Comments start with + មážáž·áž™áŸ„បល់ចាប់ផ្ážáž¾áž˜áž‡áž¶áž˜áž½áž™ + + + Header lines skipped + បន្ទាážáŸ‹áž”ឋមកážáž¶ážŠáŸ‚លបានរំលង + + + Number of header lines to discard + ចំនួនបន្ទាážáŸ‹áž”ឋមកážáž¶ážŠáŸ‚áž›ážáŸ’រូវបោះបង់ចោល + + + First line has field names + ជួរទីមួយមានកន្លែង​បញ្ចូលឈ្មោះ + + + Consider '\' an escape character + ពិចារណាអំពី '\' ážáž½áž¢áž€áŸ’សរ escape character + + + Preview + មើលជាមុន + + + CSV import preview + ការមើលការនាំចូល CSV ជាមុន + + + Not Present + មិនមានវážáŸ’ážáž˜áž¶áž“ + + + Column %1 + ជួរឈរ %1 + + + [%n more message(s) skipped] + [មានសារបន្ážáŸ‚មទៀážážŠáŸ‚áž›ážáŸ’រូវបានរំលង %n] + + + Failed to parse CSV file: %1 + + + + Imported from CSV file: %1 + + + + + CsvParserModel + + %n row(s) + CSV row count + %n ជួរដáŸáž€ + + + %n column(s) + CSV column count + %n ជួរឈរ + + + + Database + + Passwords + Root group name + ពាក្យសម្ងាážáŸ‹ + + + File %1 does not exist. + ឯកសារ %1 មិនមានទáŸáŸ” + + + Unable to open file %1. + មិនអាចបើកឯកសារ%1 + + + Error while reading the database: %1 + បញ្ហាážážŽáŸˆáž–áŸáž›áž€áŸ†áž–ុងអានឃ្លំាងទិន្ននáŸáž™áŸ– %1 + + + Could not save, database does not point to a valid file. + មិនអាចរក្សាទុកបានទ០ឃ្លំាងទិន្ននáŸáž™áž˜áž·áž“ចង្អុលបង្ហាញទៅឯកសារážáŸ’រឹមážáŸ’រូវទáŸáŸ” + + + Database save is already in progress. + ការរក្សាទុកមូលដ្ឋានទិន្ននáŸáž™áž€áŸ†áž–ុងដំណើរការរួចហើយ។ + + + Could not save, database has not been initialized! + មិនអាចរក្សាទុកបានទ០ឃ្លំាងទិន្ននáŸáž™áž˜áž·áž“ážáŸ’រូវបានចាប់ផ្ážáž¾áž˜áž‘áŸ! + + + Database file has unmerged changes. + ឯកសារមូលដ្ឋានទិន្ននáŸáž™áž˜áž¶áž“ការផ្លាស់ប្ážáž¼ážšáž˜áž·áž“បញ្ចូលគ្នានា។ + + + %1 +Backup database located at %2 + %1 +មូលដ្ឋានទិន្ននáŸáž™áž”ម្រុងទុកមានទីážáž¶áŸ†áž„ស្ážáž·ážáž“ៅ %2 + + + Key not transformed. This is a bug, please report it to the developers. + សោមិនបានបំប្លែងទáŸáŸ” áž“áŸáŸ‡áž‚ឺជាបញ្ហា សូមរាយការណáŸážœáž¶áž‘ៅអ្នកអភិវឌ្ážáž“áŸáŸ” + + + Recycle Bin + ធុងសំរាម + + + + DatabaseOpenDialog + + Unlock Database - KeePassXC + ដោះសោទិន្ននáŸáž™ - KeePassXC + + + + DatabaseOpenWidget + + Unlock KeePassXC Database + ដោះសោទិន្ននáŸáž™ KeePassXC + + + Enter Password: + បញ្ចូលពាក្យសម្ងាážáŸ‹áŸ– + + + Password field + កន្លែង​បញ្ចូល​ពាក្យ​សម្ងាážáŸ‹ + + + Hardware key slot selection + ការជ្រើសរើសរន្ធដោážážƒáž¸ážšáž”ស់ហាážážœáŸ‚ážš + + + Key file to unlock the database + ឯកសារសោដើម្បីដោះសោមូលដ្ឋានទិន្ននáŸáž™ + + + Browse for key file + រកមើលឯកសារសោ + + + Browse… + រុករក… + + + Unlock Database + ដោះសោទិន្ននáŸáž™ + + + Cancel + បញ្ឈប់ + + + Unlock + ដោះសោ + + + Please present or touch your YubiKey to continue… + សូមបង្ហាញ ឬចុច YubiKey របស់អ្នកដើម្បីបន្ážâ€¦ + + + Database Version Mismatch + កំណែមូលដ្ឋានទិន្ននáŸáž™ážŠáŸ‚លមិនážáŸ’រូវគ្នា + + + The database you are trying to open was most likely +created by a newer version of KeePassXC. + +You can try to open it anyway, but it may be incomplete +and saving any changes may incur data loss. + +We recommend you update your KeePassXC installation. + មូលដ្ឋានទិន្ននáŸáž™ážŠáŸ‚លអ្នកកំពុងព្យាយាមបើកគឺភាគច្រើនបំផុážáž‘ំនងជា +បង្កើážáž¡áž¾áž„ážáž¶áž˜ážšáž™áŸˆáž€áŸ†ážŽáŸ‚ážáŸ’មីជាងគáŸáž”ំផុážážšáž”ស់កម្មវិធី KeePassXC áž“áŸáŸ‡áŸ” + +យ៉ាង​ណា​កáŸâ€‹ážŠáŸ„យអ្នក​អាច​ព្យាយាម​បើក​វា​ ប៉ុន្ážáŸ‚កម្មវិធី​ប្រហែល​ជា​មិន​ពáŸáž‰áž›áŸáž‰ +និងកំពុងរក្សាទុកការផ្លាស់ប្ážáž¼ážšážŽáž¶áž˜áž½áž™ážŠáŸ‚លអាចបណ្ážáž¶áž›áž±áŸ’យបាážáŸ‹áž”ង់ទិន្ននáŸáž™áŸ” + +យើងណែនាំអ្នកឱ្យធ្វើបច្ចុប្បន្នភាពការដំឡើង KeePassXC របស់អ្នក។ + + + Open database anyway + បើកឃ្លំាងទិន្ននáŸáž™ážáž¶áž˜ážœáž·áž’ីណាកáŸážŠáŸ„áž™ + + + Database unlock canceled. + ការដោះសោឃ្លាំងទិន្ននáŸáž™áž”ានលុបចោល។ + + + Unlock failed and no password given + ការដោះសោបរាជáŸáž™ ហើយមិនមានការផ្ážáž›áŸ‹áž–ាក្យសម្ងាážáŸ‹ + + + Unlocking the database failed and you did not enter a password. +Do you want to retry with an "empty" password instead? + +To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. + ការដោះសោទិន្ននáŸáž™áž”រាជáŸáž™ ហើយអ្នកមិនបានបញ្ចូលពាក្យសម្ងាážáŸ‹áž‘áŸáŸ”ážáž¾áž¢áŸ’នកចង់ព្យាយាមវាយពាក្យសម្ងាážáŸ‹áž˜áŸ’ážáž„ទៀážážŠáŸ„យវាយពាក្យ"ទទáŸ" ជំនួសវិញទ០ដើម្បីការពារកំហុសឆ្គងដែលកើážáž¡áž¾áž„? អ្នកážáŸ’រូវចូលទៅកាន "ការកំណážáŸ‹áž‘ិន្ននáŸáž™/សុវážáŸ’ážáž·áž—áž¶áž– និងកំណážáŸ‹áž–ាក្យសម្ងាážáŸ‹áž¡áž¾áž„វិញ។" + + + Retry with empty password + ព្យាយាមជាážáŸ’មីដោយគ្មានពាក្យសម្ងាážáŸ‹ + + + Failed to open key file: %1 + បរាជáŸáž™áž€áŸ’នុងការបើកឯកសារសោ៖ %1 + + + Old key file format + ទម្រង់​ឯកសារសោចាស់ + + + You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> + អ្នកកំពុងប្រើប្រាស់ទម្រង់​ឯកសារសោចាស់ ដែលកម្មវិធី KeePassXC ប្រហែលជា<br>ឈប់ប្រើប្រាស់បាននៅពáŸáž›áž¢áž“áž¶áž‚ážáŸ”<br><br>សូមគិážáž–ិចារណាទៅលើការបង្កើážâ€‹áž¯áž€ážŸáž¶ážšážŸáŸ„ážáŸ’មីដោយចូលទៅកាន់៖<br><strong>មូលដ្ឋានទិន្ននáŸáž™ &gt; សុវážáŸ’ážáž·áž—ាពមូលដ្ឋានទិន្ននáŸáž™ &gt; ប្ážáž¼ážšáž¯áž€ážŸáž¶ážšážŸáŸ„។</strong><br> + + + Don't show this warning again + កុំបង្ហាញការព្រមាននáŸáŸ‡áž˜áŸ’ážáž„ទៀហ+ + + All files + ឯកសារទាំងអស់ + + + Key files + ឯកសារសោ + + + Select key file + ជ្រើសរើសឯកសារសោ + + + Cannot use database file as key file + សោ + + + authenticate to access the database + ផ្ទៀងផ្ទាážáŸ‹ážŠáž¾áž˜áŸ’បីចូលប្រើប្រាស់មូលដ្ឋានទិន្ននáŸáž™ + + + Failed to authenticate with Quick Unlock: %1 + + + + Select Key File: + + + + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + + + + + DatabaseSettingWidgetMetaData + + Passwords + ពាក្យសម្ងាážáŸ‹ + + + + DatabaseSettingsDialog + + General + ទូទៅ + + + Security + សន្ážáž·ážŸáž»áž + + + Database Credentials + áž–áŸážáŸŒáž˜áž¶áž“ផ្ទៀងផ្ទាážáŸ‹áž‘ិន្ននáŸáž™áž˜áž¼áž›ážŠáŸ’ឋាន + + + Encryption Settings + ការកំណážáŸ‹áž€áž¶ážšáž”ំប្លែងជាកូដ + + + Browser Integration + ការរួមបញ្ចូលកម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិហ+ + + Maintenance + ážáŸ†áž áŸ‚ទាំ + + + + DatabaseSettingsWidgetBrowser + + KeePassXC-Browser settings + KeePassXC-ការកំណážáŸ‹áž€áž˜áŸ’មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិហ+ + + Disconnect all browsers + ផ្ážáž¶áž…់កម្មវិធីរុករកទាំងអស់ + + + Forget all site-specific settings on entries + បំភ្លáŸáž…ការកំណážáŸ‹áž‚áŸáž áž‘ំពáŸážšáž‡áž¶áž€áŸ‹áž›áž¶áž€áŸ‹áž‘ាំងអស់នៅលើទិន្ននáŸáž™áž”ញ្ចូល + + + Refresh database root group ID + រីហ្រáŸáŸ’វសលáŸážážŸáž˜áŸ’គាល់ក្រុមឫសមូលដ្ឋានទិន្ននáŸáž™ + + + Stored keys + គន្លឹះដែលបានរក្សាទុក + + + Stored browser keys + គន្លឹះកម្មវិធីរុករកដែលបានរក្សាទុក + + + Remove selected key + ដក សដែលបានជ្រើសរើសចáŸáž‰ + + + Remove + ដកចáŸáž‰ + + + Delete the selected key? + លុបគន្លឹះដែលបានជ្រើសរើសចោល? + + + Do you really want to delete the selected key? +This may prevent connection to the browser plugin. + ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់លុបសោដែលបានជ្រើសរើសមែនទáŸ? +áž“áŸáŸ‡áž¢áž¶áž…បង្ការការážáž—្ជាប់ទៅកាន់កម្មវិធីជំនួយកម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážáž”ាន។ + + + Key + សោ + + + Value + ážáž˜áŸ’លៃ + + + Created + បានបង្កើហ+ + + Enable Browser Integration to access these settings. + បើកការរួមបញ្ចូលកម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážážŠáž¾áž˜áŸ’បីចូលប្រើការកំណážáŸ‹áž‘ាំងនáŸáŸ‡áŸ” + + + Do you really want to disconnect all browsers? +This may prevent connection to the browser plugin. + ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់ផ្ážáž¶áž…់កម្មវិធីរុករកážáž¶áž˜áž¢áŸŠážºáž“ធឺណិážáž‘ាំងអស់មែនទáŸ? +áž“áŸáŸ‡áž¢áž¶áž…បង្ការការážáž—្ជាប់ទៅកម្មវិធីជំនួយកម្មវិធីរុករកážáž¶áž˜áž¢áŸŠážºáž“ធឺណិážáž”ាន។ + + + No shared encryption keys found in KeePassXC settings. + រកមិនឃើញសោអ៊ិនគ្រីបដែលបានចែករំលែកនៅក្នុងការកំណážáŸ‹ KeePassXC áž‘áŸáŸ” + + + Successfully removed %n encryption key(s) from KeePassXC settings. + បានលុប សោ ការអ៊ិនគ្រីប %n áž…áŸáž‰áž–ីការកំណážáŸ‹ KeePassXC ដោយជោគជáŸáž™áŸ” + + + Do you really want forget all site-specific settings on every entry? +Permissions to access entries will be revoked. + ážáž¾â€‹áž¢áŸ’នក​ពិážâ€‹áž‡áž¶â€‹áž…ង់បំភ្លáŸáž…រាល់​ការ​កំណážáŸ‹áž“ៅក្នុង​ážáŸ†áž”ន់​បណ្ដាញ​ជាក់លាក់​ទាំងអស់​នៅ​លើ​រាល់​ទិន្ននáŸáž™áž”ញ្ចូលដែរឬទáŸ? +ការអនុញ្ញាážáž±áŸ’យចូលប្រើទិន្ននáŸáž™áž”ញ្ចូលផ្សáŸáž„ៗនឹងážáŸ’រូវបានបដិសáŸáž’។ + + + Removing stored permissions… + កំពុងដកចáŸáž‰áž€áž¶ážšáž¢áž“ុញ្ញាážážŠáŸ‚លបានរក្សាទុក… + + + Abort + បោះបង់ + + + Successfully removed permissions from %n entry(s). + បានលុបការអនុញ្ញាហ% 1 áž…áŸáž‰áž–ីទិន្ននáŸáž™ % 2 ដោយជោគជáŸáž™áŸ” + + + The active database does not contain an entry with permissions. + មូលដ្ឋានទិន្ននáŸáž™ážŸáž€áž˜áŸ’មមិនមានទិន្ននáŸáž™ážŠáŸ‚លមានការអនុញ្ញាážáž‘áŸáŸ” + + + Refresh database ID + រីហ្រáŸáŸ’វសលáŸážážŸáž˜áŸ’គាល់មូលដ្ឋានទិន្ននáŸáž™ + + + Do you really want refresh the database ID? +This is only necessary if your database is a copy of another and the browser extension cannot connect. + ážáž¾â€‹áž¢áŸ’នក​ពិážâ€‹áž‡áž¶â€‹áž…ង់​ផ្រីហ្វ្រáŸážŸâ€‹áž›áŸážâ€‹ážŸáž˜áŸ’គាល់​មូលដ្ឋាន​ទិន្ននáŸáž™â€‹áž¡áž¾áž„វិញមែនទáŸ? +ការធ្វើបែបនáŸáŸ‡ មានភាពចាំបាច់ážáŸ‚នៅក្នុងករណីដែលមូលដ្ឋានទិន្ននáŸáž™ážšáž”ស់អ្នក គឺជាច្បាប់ចម្លងផ្សáŸáž„ទៀហហើយកម្មវិធីបន្ážáŸ‚ម​របស់កម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážáž˜áž·áž“អាចážáž—្ជាប់ទៅបានទáŸáŸ” + + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + បំប្លែងលក្ážážŽáŸˆ KeePassHTTP ចាស់ទៅជាទិន្ននáŸáž™áž•្ទាល់ážáŸ’លួនដែលážáŸ’រូវគ្នាជាមួយកម្មវិធីរុកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិហKeePassXC + + + No keys found + + + + Removed keys from database + + + + Removed permissions + + + + No entry with permissions found! + + + + + DatabaseSettingsWidgetDatabaseKey + + Add additional protection… + បន្ážáŸ‚មការការពារបន្ážáŸ‚មទៀážâ€¦ + + + No password set + មិនបានកំណážáŸ‹áž–ាក្យសម្ងាážáŸ‹áž‘០+ + + WARNING! You have not set a password. Using a database without a password is strongly discouraged! + +Are you sure you want to continue without a password? + ការព្រមាន! អ្នកមិនទាន់បានកំណážáŸ‹áž–ាក្យសម្ងាážáŸ‹áž“ៅឡើយទáŸáŸ” មិនលើកទឹកចិážáŸ’ážáž±áŸ’យប្រើប្រាស់មូលដ្ឋានទិន្ននáŸáž™ážŠáŸ‚លមិនមានពាក្យសម្ងាážáŸ‹ážáŸ’លាំង! + +ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់បន្ážáž”្រើដោយគ្មានពាក្យសម្ងាážáŸ‹áž˜áŸ‚នទáŸ? + + + Continue without password + បន្ážážŠáŸ„យគ្មានពាក្យសម្ងាážáŸ‹ + + + No encryption key added + គ្មាន​សោ​អ៊ិនគ្រីប​ដែលបានបន្ážáŸ‚ម។ + + + You must add at least one encryption key to secure your database! + អ្នក​ážáŸ’រូវ​ážáŸ‚​បន្ážáŸ‚ម​សោ​អ៊ិនគ្រីប​យ៉ាង​ហោច​ណាស់​មួយ​ ដើម្បី​ធានា​សុវážáŸ’ážáž·áž—ាពសម្រាប់​មូលដ្ឋាន​ទិន្ននáŸáž™â€‹ážšáž”ស់​អ្នក! + + + Unknown error + កំហុសឆ្គងដែលមិនស្គាល់ + + + Failed to change database credentials + បានបរាជáŸáž™áž€áŸ’នុងការផ្លាស់ប្ážáž¼ážšáž–áŸážáŸŒáž˜áž¶áž“​បញ្ជាក់​អážáŸ’ážážŸáž‰áŸ’ញាណ​នៅក្នុងឃ្លំាងទិន្ននáŸáž™ + + + Weak password + ពាក្យសម្ងាážáŸ‹ážáŸ’សោយ + + + You must enter a stronger password to protect your database. + + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + + + + + DatabaseSettingsWidgetEncryption + + Decryption Time: + រយៈពáŸáž›áž“ៃការដោះការបំប្លែងកូដ៖ + + + Decryption time in seconds + រយៈពáŸáž›áž“ៃការដោះការបំប្លែងកូដគិážáž‡áž¶ážœáž·áž“ាទី + + + Higher values offer more protection, but opening the database will take longer. + ážáž˜áŸ’លៃážáŸ’ពស់ផ្ážáž›áŸ‹áž‡áž½áž™áž±áŸ’យមានការការពារកាន់ážáŸ‚ážáŸ’លាំង ប៉ុន្ážáŸ‚ការបើកមូលដ្ឋានទិន្ននáŸáž™áž“ឹងចំណាយពáŸáž›áž™áž¼ážšáž‡áž¶áž„áž“áŸáŸ‡áŸ” + + + Database format: + ទម្រង់មូលដ្ឋានទិន្ននáŸáž™áŸ– + + + Database format + ទម្រង់មូលដ្ឋានទិន្ននáŸáž™ + + + Format cannot be changed: Your database uses KDBX 4 features + ទ្រង់ទ្រាយមិនអាចផ្លាស់ប្ážáž¼ážšáž”ានទáŸáŸ– ឃ្លំាងទិន្ននáŸáž™ážšáž”ស់អ្នកប្រើមុážáž„áž¶ážš KDBX 4 + + + Unless you need to open your database with other programs, always use the latest format. + លុះážáŸ’ážšáž¶ážáŸ‚អ្នកចាំបាច់ážáŸ’រូវបើកទិន្ននáŸáž™ážšáž”ស់អ្នកជាមួយកម្មវិធីផ្សáŸáž„ទៀហសូមប្រើទម្រង់ចុងក្រោយបំផុážáž‡áž¶áž“ិច្ច។ + + + Encryption Algorithm: + ក្បួនដោះស្រាយការបំប្លែងកូដ៖ + + + Encryption algorithm + ការដោះស្រាយការបំប្លែងជាកូដ + + + AES: 256 Bit (default) + AES: 256 ប៊ីហ(លំនាំដើម) + + + Twofish: 256 Bit + Twofish: 256 ប៊ីហ+ + + Key Derivation Function: + មុážáž„ារទាញយកសោ៖ + + + Key derivation function + មុážáž„ារទាញយកសោ + + + Transform rounds: + បំប្លែងជុំ៖ + + + Transform rounds + បំប្លែងជុំ + + + Memory Usage: + ការប្រើប្រាស់អង្គចងចាំ៖ + + + Memory usage + ការប្រើប្រាស់អង្គចងចាំ + + + Parallelism: + ភាពប្រហែលគ្នា៖ + + + Parallelism + ភាពប្រហែលគ្នា + + + KDBX 4 (recommended) + KDBX 4 (បានណែនាំ) + + + KDBX 3 + KDBX 3 + + + Number of rounds too high + Key transformation rounds + ចំនួនជុំដែលážáŸ’ពស់ពáŸáž€ + + + You are using a very high number of key transform rounds with Argon2. + +If you keep this number, your database may take hours, days, or even longer to open. + អ្នក​កំពុង​ប្រើ​ប្រាស់ចំនួន​ដáŸâ€‹ážáŸ’ពស់​បំផុážáž“ៃ​ការ​បំប្លែងសោជាមួយ Argon2។ + +ប្រសិនបើអ្នករក្សាទុកលáŸážáž“áŸáŸ‡ មូលដ្ឋានទិន្ននáŸáž™ážšáž”ស់អ្នកអាចនឹងចំណាយពáŸáž›áž…្រើនម៉ោង ច្រើនážáŸ’ងៃ ឬយូរជាងនáŸáŸ‡ážŠáž¾áž˜áŸ’បីបើក។ + + + Understood, keep number + បានយល់ច្បាស់, សូមរក្សាចំនួនលáŸáž + + + Cancel + បញ្ឈប់ + + + Number of rounds too low + Key transformation rounds + ចំនួនជុំទាបដែលទាបពáŸáž€ + + + You are using a very low number of key transform rounds with AES-KDF. + +If you keep this number, your database will not be protected from brute force attacks. + អ្នក​កំពុង​ប្រើ​ប្រាស់ចំនួន​ទាបបំផុážâ€‹áž“ៃ​ការ​បំប្លែង​គ្រាប់ចុច​ជាមួយ AES-KDF ។ + +ប្រសិនបើអ្នករក្សាលáŸážáž“áŸáŸ‡ មូលដ្ឋានទិន្ននáŸáž™ážšáž”ស់អ្នកនឹងមិនážáŸ’រូវបានការពារពីការវាយប្រហារដោយកម្លាំងសាហាវទáŸáŸ” + + + KDF unchanged + KDF ដែលមិនបានផ្លាស់ប្ážáž¼ážš + + + Failed to transform key with new KDF parameters; KDF unchanged. + មិនបានសម្រáŸáž…ក្នុងការបំប្លែងសោជាមួយប៉ារ៉ាម៉ែážáŸ’ážš KDF ážáŸ’មី ដោយមិនកáŸáž”្រែ KDF។ + + + MiB + Abbreviation for Mebibytes (KDF settings) + MiB + + + thread(s) + Threads for parallel execution (KDF settings) + ស្រáŸáž + + + Encryption Settings: + + + + Basic + + + + Advanced + កម្រិážážáŸ’ពស់ + + + + DatabaseSettingsWidgetFdoSecrets + + Exposed Entries + ទិន្ននáŸáž™áž”ញ្ចូលដែលបានបង្ហាញ + + + Don't expose this database + កុំបង្ហាញឃ្លំាងទិន្ននáŸáž™áž“áŸáŸ‡ + + + Expose entries under this group: + បង្ហាញទិន្ននáŸáž™áž”ញ្ចូលនៅក្រោមក្រុមនáŸáŸ‡áŸ– + + + Enable Secret Service to access these settings. + បើកសáŸážœáž¶áž€áž˜áŸ’មសម្ងាážáŸ‹ ដើម្បីចូលប្រើការកំណážáŸ‹áž‘ាំងនáŸáŸ‡áŸ” + + + + DatabaseSettingsWidgetGeneral + + Database Metadata + ទិន្ននáŸáž™â€‹áž˜áŸážáž¶áž“ៃមូលដ្ឋាន​ទិន្ននáŸáž™ + + + Database name: + ឈ្មោះមូលដ្ឋានទិន្ននáŸáž™áŸ– + + + Database name field + កន្លែងបញ្ចូលឈ្មោះមូលដ្ឋានទិន្ននáŸáž™ + + + Database description: + ការពណ៌នាមូលដ្ឋានទិន្ននáŸáž™áŸ– + + + Database description field + កន្លែងបញ្ចូលការពណ៌នាមូលដ្ឋានទិន្ននáŸáž™ + + + Default username: + ឈ្មោះអ្នកប្រើážáž¶áž˜áž›áŸ†áž“ាំដើម៖ + + + Default username field + កន្លែងបញ្ចូលឈ្មោះអ្នកប្រើលំនាំដើម + + + History Settings + ការកំណážáŸ‹áž”្រវážáŸ’ážáž· + + + Maximum number of history items per entry + ចំនួនអážáž·áž”រមានៃធាážáž»áž”្រវážáŸ’ážáž·áž€áŸ’នុងមួយទិន្ននáŸáž™áž”ញ្ចូល + + + Maximum size of history per entry + ទំហំអážáž·áž”រមានៃប្រវážáŸ’ážáž·áž€áŸ’នុងមួយទិន្ននáŸáž™áž”ញ្ចូល + + + MiB + MiB + + + Use recycle bin + ប្រើធុងសំរាម + + + Additional Database Settings + ការកំណážáŸ‹áž˜áž¼áž›ážŠáŸ’ឋានទិន្ននáŸáž™áž”ន្ážáŸ‚ម + + + Enable compression (recommended) + បើកការបង្ហាប់ (បានណែនាំ) + + + Delete Recycle Bin + លុបធុងសំរាម + + + Do you want to delete the current recycle bin and all its contents? +This action is not reversible. + ážáž¾â€‹áž¢áŸ’នក​ចង់​លុប​ធុង​សំរាម​បច្ចុប្បន្ន និង​មាážáž·áž€áž¶â€‹áž‘ាំងអស់​របស់​វា​ដែរ​ឬ​ទáŸ? +សកម្មភាពនáŸáŸ‡áž˜áž·áž“អាចážáŸ’រឡប់វិញបានទáŸáŸ” + + + (old) + ចាស់ + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + នៅពáŸáž›ážšáž€áŸ’សាទុកការកំណážáŸ‹áž“áŸáŸ‡ ឬកែការបញ្ចូល +áž’áž¶ážáž»áž”្រវážáŸ’ážáž·áž…ាស់បំផុážáž“ៃទិន្ននáŸáž™áž”ញ្ចូលមួយនឹងážáŸ’រូវបាន +ដកចáŸáž‰ážŠáž¼áž…ដែលមានážáŸ‚ចំនួនដែលបានបញ្ជាក់ +នៃទិន្ននáŸáž™áž”ញ្ចូលនៅážáŸ‚មានច្រើនបំផុážáŸ” + + + Limit the amount of history items per entry to: + ដាក់កំណážáŸ‹áž…ំនួននៃធាážáž»áž”្រវážáŸ’ážáž·áž€áŸ’នុងមួយទិន្ននáŸáž™áž”ញ្ចូលទៅកាន់៖ + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + នៅពáŸáž›ážšáž€áŸ’សាទុកការកំណážáŸ‹áž“áŸáŸ‡ ឬកែការបញ្ចូល +ប្រវážáŸ’ážáž·áž…ាស់បំផុážáž“ៃទិន្ននáŸáž™áž”ញ្ចូលមួយនឹងážáŸ’រូវបាន +យកចáŸáž‰ážŠáž¼áž…ដែលធាážáž»áž”្រវážáŸ’ážáž·ážŠáŸ‚លនៅសល់ +បន្ážáŸ‚មរហូážážŠáž›áŸ‹áž…ំនួនជាក់លាក់បំផុážáŸ” + + + Limit the total size of history items per entry to: + ដាក់កំណážáŸ‹áž‘ំហំសរុបនៃធាážáž»áž”្រវážáŸ’ážáž·áž€áŸ’នុងមួយទិន្ននáŸáž™áž”ញ្ចូលទៅកាន់៖ + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + ផ្លាស់ទីទិន្ននáŸáž™áž”ញ្ចូលទៅក្រុមធុងសំរាម +ជំនួសឱ្យការលុបវាចáŸáž‰áž–ីមូលដ្ឋានទិន្ននáŸáž™áŸ” +ទិន្ននáŸáž™áž”ញ្ចូលដែលបានលុបចáŸáž‰áž–ីធុងសំរាមគឺ +ážáŸ’រូវបានដកចáŸáž‰áž–ីមូលដ្ឋានទិន្ននáŸáž™áž“áŸáŸ‡áŸ” + + + Autosave delay since last change + + + + Autosave delay + + + + Autosave delay since last change in minutes + + + + min + នាទី + + + Autosave delay since last change checkbox + + + + + DatabaseSettingsWidgetKeeShare + + Sharing + ការចែករំលែក + + + Breadcrumb + ដានទីážáž¶áŸ†áž„ + + + Type + វាយអក្សរ + + + Path + ផ្លូវ + + + Last Signer + អ្នកចុះហážáŸ’ážáž›áŸážáž¶áž…ុងក្រោយ + + + Certificates + វិញ្ញាបនបážáŸ’ážš + + + > + Breadcrumb separator + > + + + + DatabaseSettingsWidgetMaintenance + + Manage Custom Icons + គ្រប់គ្រងរូបážáŸ†ážŽáž¶áž„ផ្ទាល់ážáŸ’លួន + + + Delete selected icon(s) + លុបរូបážáŸ†ážŽáž¶áž„ដែលបានជ្រើសរើស + + + Delete all custom icons not in use by any entry or group + លុបរូបážáŸ†ážŽáž¶áž„ផ្ទាល់ážáŸ’លួនទាំងអស់ដែលមិនប្រើប្រាស់ដោយទិន្ននáŸáž™áž”ញ្ចូល ឬក្រុមណាមួយ + + + Purge unused icons + ជម្រះរូបážáŸ†ážŽáž¶áž„ដែលមិនប្រើ + + + Confirm Deletion + បញ្ជាក់ការលុប + + + At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? + យ៉ាងហោចណាស់មានរូបážáŸ†ážŽáž¶áž„មួយក្នុងចំណោមរូបážáŸ†ážŽáž¶áž„ដែលបានជ្រើសរើសកំពុងប្រើប្រាស់ដោយទិន្ននáŸáž™áž”ញ្ចូល ឬក្រុមមួយ។ រូបážáŸ†ážŽáž¶áž„នៃទិន្ននáŸáž™áž”ញ្ចូល និងក្រុមដែលទទួលរងផលប៉ះពាល់ទាំងអស់នឹងážáŸ’រូវជំនួសដោយរូបážáŸ†ážŽáž¶áž„លំនាំដើម។ ážáž¾â€‹áž¢áŸ’នក​ពិážáž‡áž¶â€‹áž…ង់​លុប​រូប​ážáŸ†ážŽáž¶áž„​ដែល​កំពុង​ប្រើ​ប្រាស់ážáŸ’មីៗនáŸáŸ‡áž…áŸáž‰áž˜áŸ‚នទáŸ? + + + Custom Icons Are In Use + រូបážáŸ†ážŽáž¶áž„ផ្ទាល់ážáŸ’លួនកំពុងប្រើ + + + All custom icons are in use by at least one entry or group. + រូបផ្ទាល់ážáŸ’លួនទាំងអស់ážáŸ’រូវបានប្រើប្រាស់ដោយទិន្ននáŸáž™áž”ញ្ចូល ឬក្រុមយ៉ាងហោចណាស់មួយ។ + + + Purged Unused Icons + បានជម្រះរូបážáŸ†ážŽáž¶áž„áž…áŸáž‰ + + + Purged %n icon(s) from the database. + បានជម្រះរូបážáŸ†ážŽáž¶áž„ %n áž…áŸáž‰áž–ីមូលដ្ឋានទិន្ននáŸáž™áž“áŸáŸ‡áŸ” + + + + DatabaseSettingsWidgetMetaDataSimple + + Database Name: + ឈ្មោះមូលដ្ឋានទិន្ននáŸáž™áŸ– + + + Database name field + កន្លែងបញ្ចូលឈ្មោះមូលដ្ឋានទិន្ននáŸáž™ + + + Description: + ការពិពណ៌នា៖ + + + Database description field + កន្លែងបញ្ចូលការពណ៌នាមូលដ្ឋានទិន្ននáŸáž™ + + + + DatabaseTabWidget + + Database creation error + បញ្ហាក្នុងការបង្កើážáž˜áž¼áž›ážŠáŸ’ឋានទិន្ននáŸáž™ + + + The created database has no key or KDF, refusing to save it. +This is definitely a bug, please report it to the developers. + មូលដ្ឋានទិន្ននáŸáž™ážŠáŸ‚លបានបង្កើážáž‚្មានកូនសោ ឬ KDF ដោយធ្វើការបដិសáŸáž’មិនរក្សាទុកវា។ +áž“áŸáŸ‡áž”្រាកដណាស់ážáž¶ ជាបញ្ហា សូមរាយការណáŸáž–ីបញ្ហានáŸáŸ‡áž‘ៅកាន់អ្នកអភិវឌ្ážáž“áŸáŸ” + + + KeePass 2 Database + មូលដ្ឋានទិន្ននáŸáž™ KeePass 2 + + + All files + ឯកសារ​ទាំងអស់ + + + Open database + បើកឃ្លំាងទិន្ននáŸáž™ + + + Failed to open %1. It either does not exist or is not accessible. + ការព្យាយាមបើក %1 មិនបានសម្រáŸáž… ដោយសារវាមិនមាន ឬមិនអាចចូលប្រើប្រាស់បាន។ + + + CSV file + ឯកសារ CSV + + + Merge database + ដាក់បញ្ចូលមូលដ្ឋានទិន្ននáŸáž™ + + + Export database to CSV file + នាំចáŸáž‰ážƒáŸ’លំាងទិន្ននáŸáž™áž‘ៅឯកសារ CSV + + + Writing the CSV file failed. + ការសរសáŸážšáž¯áž€ážŸáž¶ážš CSV មិនបានសម្រáŸáž…។ + + + Writing the HTML file failed. + ការសរសáŸážšáž¯áž€ážŸáž¶ážš HTML មិនបានសម្រáŸáž…។ + + + Export database to XML file + នាំចáŸáž‰ážƒáŸ’លំាងទិន្ននáŸáž™áž‘ៅជាឯកសារ XML + + + XML file + ឯកសារ XML + + + Writing the XML file failed + ការសរសáŸážšáž¯áž€ážŸáž¶ážš XML មិនបានសម្រáŸáž… + + + Export Confirmation + ការបញ្ជាក់នៃការនាំចáŸáž‰ + + + You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? + អ្នកហៀបនឹងនាំចáŸáž‰áž˜áž¼áž›ážŠáŸ’ឋានទិន្ននáŸáž™ážšáž”ស់អ្នកទៅជាឯកសារដែលមិនបានអ៊ិនគ្រីប។ ការធ្វើបែបនáŸáŸ‡áž“ឹងទុកឱ្យពាក្យសម្ងាážáŸ‹ និងពáŸážáŸŒáž˜áž¶áž“រសើបរបស់អ្នកងាយទទួលរងគ្រោះ! ážáž¾áž¢áŸ’នកពិážážáž¶áž…ង់បន្ážáž‘ៀážáž¬áž‘áŸ? + + + %1 [Locked] + Database tab name modifier + %1 [បានចាក់សោ] + + + + DatabaseWidget + + Searches and Tags + ស្វែងរក និងážáŸáž€áž¢áŸ„áž™ + + + Searching… + ការស្វែងរក + + + Shared group… + ក្រុមដែលបានចែករំលែក… + + + Confirm Auto-Type + បញ្ជាក់ប្រភáŸáž‘ស្វáŸáž™áž”្រវážáŸ’ážáž· + + + Perform Auto-Type into the previously active window? + ážáž¾áž¢áŸ’នកចង់ប្រើប្រាស់មុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž·áž‘ៅក្នុងវីនដូដែលសកម្មពីមុនឬទáŸ? + + + Execute command? + ធ្វើប្រážáž·áž”ážáŸ’ážáž·áž–ាក្យបញ្ជាមែនទáŸ? + + + Do you really want to execute the following command?<br><br>%1<br> + ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់ធ្វើប្រážáž·áž”ážáŸ’ážáž·áž–ាក្យបញ្ជាážáž¶áž„ក្រោមមែនទáŸ?<br><br>%1<br> + + + Remember my choice + ចងចាំជម្រើសរបស់ážáŸ’ញុំ + + + Delete group + លុបក្រុម + + + Do you really want to delete the group "%1" for good? + ážáž¾â€‹áž¢áŸ’នក​ពិážâ€‹áž‡áž¶â€‹áž…ង់​លុបក្រុម "%1" ដើម្បី​ឱ្យកាន់ážáŸ‚ល្អ​មែនទáŸ? + + + Move group to recycle bin? + ផ្លាស់ទីក្រុមទៅកាន់ធុងសំរាមឬ? + + + Do you really want to move the group "%1" to the recycle bin? + ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់ផ្លាស់ទីក្រុម "% 1" ទៅធុងសំរាមមែនដែរឬទáŸ? + + + Expired entries + ទិន្ននáŸáž™áž”ញ្ចូលបានផុážáž€áŸ†ážŽážáŸ‹ + + + Entries expiring within %1 day(s) + ទិន្ននáŸáž™áž”ញ្ចូលផុážáž€áŸ†ážŽážáŸ‹áž€áŸ’នុងរយៈពáŸáž› %1 ážáŸ’ងៃ + + + No current database. + គ្មានមូលដ្ឋានទិន្ននáŸáž™áž”ច្ចុប្បន្ន។ + + + No source database, nothing to do. + គ្មានអ្វីដែលážáŸ’រូវធ្វើដោយសារគ្មានប្រភពមូលដ្ឋានទិន្ននáŸáž™áŸ” + + + Successfully merged the database files. + បានរួមបញ្ចូលឯកសារមូលដ្ឋានទិន្ននáŸáž™ážŠáŸ„យជោគជáŸáž™áŸ” + + + Database was not modified by merge operation. + ប្រážáž·áž”ážáŸ’ážáž·áž€áž¶ážšáž”ញ្ចូលគ្នាមិនបានកែប្រែឃ្លាំងទិន្ននáŸáž™áž‘áŸáŸ” + + + Search Results (%1) + លទ្ធផលស្វែងរក (%1) + + + No Results + គ្មាន​លទ្ធផល + + + Save + រក្សាទុក + + + Enter a unique name or overwrite an existing search from the list: + បញ្ចូលឈ្មោះážáŸ‚មួយគážáŸ‹ ឬសរសáŸážšáž‡áž¶áž“់លើពីការស្វែងរកដែលមានស្រាប់ពីបញ្ជី៖ + + + Save Search + រក្សាទុកការស្វែងរក + + + Lock Database? + ចាក់សោមូលដ្ឋានទិន្ននáŸáž™áž¬? + + + You are editing an entry. Discard changes and lock anyway? + អ្នកកំពុងកែការបញ្ចូលមួយ។ បោះបង់ការផ្លាស់ប្ដូរ និងចាក់សោរឬ? + + + "%1" was modified. +Save changes? + "%1" ážáŸ’រូវបានកែប្រែ។ +រក្សាទុកការផ្លាស់ប្ážáž¼ážšáž“áŸáŸ‡? + + + Database was modified. +Save changes? + បានកែប្រែឃ្លាំងទិន្ននáŸáž™ážšáž½áž…ហើយ។ +រក្សាទុកការផ្លាស់ប្ážáž¼ážšáž˜áŸ‚នទáŸ? + + + Save changes? + រក្សាការផ្ážáž¶ážŸáŸ‹áž”្ážáž¼ážšáž‘ុក + + + File has changed + ឯកសារបានផ្លាស់ប្ážáž¼ážš + + + The database file has changed. Do you want to load the changes? + ឯកសារមូលដ្ឋានទិន្ននáŸáž™áž”ានផ្លាស់ប្ážáž¼ážšážšáž½áž…ហើយ។ ážáž¾áž¢áŸ’នកចង់ផ្ទុកការផ្លាស់ប្ážáž¼ážšáž¬áž‘áŸ? + + + Merge Request + សំណើដាក់បញ្ចូល + + + The database file has changed and you have unsaved changes. +Do you want to merge your changes? + ឯកសារមូលដ្ឋានទិន្ននáŸáž™áž”ានផ្លាស់ប្ážáž¼ážšážšáž½áž…រាល់ និងអ្នកមានការផ្លាស់ប្ážáž¼ážšážŠáŸ‚លមិនបានរក្សាទុក។ +ážáž¾áž¢áŸ’នកចង់ដាក់បញ្ចូលការផ្លាស់ប្ážáž¼ážšážšáž”ស់អ្នកឬទáŸ? + + + Could not open the new database file while attempting to autoreload. +Error: %1 + មិន​អាច​បើក​ឯកសារ​មូលដ្ឋាន​ទិន្ននáŸáž™â€‹ážáŸ’មី នៅពáŸáž›áž€áŸ†áž–ុង​ព្យាយាម​ផ្ទុក​ឡើង​វិញ​ដោយ​ស្វáŸáž™áž”្រវážáŸ’ážáž·áŸ” +បញ្ហា៖% 1 + + + Disable safe saves? + បិទដំណើរការនៃការរក្សាទុកដោយសុវážáŸ’ážáž·áž—áž¶áž–? + + + KeePassXC has failed to save the database multiple times. This is likely caused by file sync services holding a lock on the save file. +Disable safe saves and try again? + មានការព្យាយាមមិនបានសម្រáŸáž…ជាច្រើនដងក្នុងការរក្សាទុកមូលដ្ឋានទិន្ននáŸáž™áž‡áž¶áž˜áž½áž™ KeePassXC។ បញ្ហានáŸáŸ‡áž‘ំនងជាបណ្ážáž¶áž›áž˜áž€áž–ីសáŸážœáž¶áž’្វើសមកាលកម្មឯកសារដែលចាក់សោរនៅលើឯកសាររក្សាទុក។ +ážáž¾áž¢áŸ’នកចង់បិទការរក្សាទុកឲ្យមានសុវážáŸ’ážáž·áž—áž¶áž– ហើយព្យាយាមម្ážáž„ទៀážáž¬áž‘áŸ? + + + Writing the database failed: %1 + ការសរសáŸážšáž˜áž¼áž›ážŠáŸ’ឋានទិន្ននáŸáž™áž˜áž·áž“បានសម្រáŸáž…៖ %1 + + + Passwords + ពាក្យសម្ងាážáŸ‹ + + + Save database as + រក្សាទិន្ននáŸáž™áž‘ុកជាប្រភáŸáž‘ + + + KeePass 2 Database + មូលដ្ឋានទិន្ននáŸáž™ KeePass 2 + + + Save database backup + រក្សាទិន្ននáŸáž™áž‘ុកបម្រុង + + + Empty recycle bin? + ធុងសំរាមទទáŸ? + + + Are you sure you want to permanently delete everything from your recycle bin? + ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់លុបអ្វីៗទាំងអស់ចáŸáž‰áž–ីធុងសំរាមរបស់អ្នករហូážáž˜áŸ‚នទáŸ? + + + Could not find database file: %1 + មិនអាចស្វែងរកឯកសារឃ្លំាងទិន្ននáŸáž™áž”ានទáŸáŸ– % 1 + + + New Database + មូលដ្ឋាន​ទិន្ននáŸáž™â€‹ážáŸ’មី + + + %1 [New Database] + Database tab name modifier + %1 [ឃ្លាំងទិន្ននáŸáž™ážáŸ’មី] + + + + EditEntryWidget + + Entry + ទិន្ននáŸáž™áž”ញ្ចូល + + + Advanced + កម្រិážážáŸ’ពស់ + + + Icon + រូបážáŸ†ážŽáž¶áž„ + + + Auto-Type + មុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž· + + + Browser Integration + ការរួមបញ្ចូលកម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិហ+ + + <empty URL> + <URL ទទáŸ> + + + Confirm Removal + បញ្ជាក់ការដកចáŸáž‰ + + + Are you sure you want to remove this URL? + ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់លុប URL áž“áŸáŸ‡áž…áŸáž‰áž˜áŸ‚នទáŸ? + + + Properties + លក្ážážŽáŸˆ + + + History + ប្រវážáŸ’ážáž· + + + SSH Agent + ភ្នាក់ងារ SSH + + + n/a + គ្មាន + + + (encrypted) + (បានអ៊ិនគ្រីប) + + + Select private key + ជ្រើសរើសពាក្យសម្ងាážáŸ‹áž•្ទាល់ážáŸ’លួន + + + Entry history + ប្រវážáŸ’ážáž·áž‘ិន្ននáŸáž™áž”ញ្ចូល + + + Add entry + បន្ážáŸ‚មទិន្ននáŸáž™áž”ញ្ចូល + + + Edit entry + កែទិន្ននáŸáž™áž”ញ្ចូល + + + Some Browser Integration settings are overridden by group settings. + ការកំណážáŸ‹áž€áž¶ážšážšáž½áž˜áž”ញ្ចូលកម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážáž˜áž½áž™áž…ំនួនážáŸ’រូវបានបដិសáŸáž’ដោយការកំណážáŸ‹áž€áŸ’រុម។ + + + Invalid Entry + ទិន្ននáŸáž™áž”ញ្ចូលážáŸ’រឹមážáŸ’រូវ + + + An external merge operation has invalidated this entry. +Unfortunately, any changes made have been lost. + ប្រážáž·áž”ážáŸ’ážáž·áž€áž¶ážšáž”ញ្ចូលគ្នាážáž¶áž„ក្រៅបានធ្វើឱ្យទិន្ននáŸáž™áž”ញ្ចូលនáŸáŸ‡áž›áŸ‚ងមានសុពលភាព។ +គួរឱ្យសោកស្ážáž¶áž™ រាល់ការផ្លាស់ប្ដូរណាមួយដែលបានធ្វើឡើងážáŸ’រូវបានបាážáŸ‹áž”ង់។ + + + Auto-Type Validation Error + បញ្ហាធ្វើឱ្យមានសុពលភាពរបស់មុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž· + + + An error occurred while validating the custom Auto-Type sequence: +%1 +Would you like to correct it? + បញ្ហា​មួយ​បាន​កើážâ€‹áž¡áž¾áž„​ážážŽáŸˆâ€‹áž–áŸáž›ážŠáŸ‚លកំពុង​ធ្វើឱ្យមានសុពលភាពនៃ​លំដាប់​មុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž·â€‹â€‹áž•្ទាល់​ážáŸ’លួន​៖ +% 1 +ážáž¾áž¢áŸ’នកចង់កែវាឬទáŸ? + + + An error occurred while validating the Auto-Type sequence for "%1": +%2 +Would you like to correct it? + បញ្ហា​មួយ​បាន​កើážâ€‹áž¡áž¾áž„​ážážŽáŸˆâ€‹áž–áŸáž›áž€áŸ†áž–ុង​ដែលផ្ទៀងផ្ទាážáŸ‹áž—áž¶áž–ážáŸ’រឹមážáŸ’រូវ​នៃ​លំដាប់​មុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž·â€‹ážŸáž˜áŸ’រាប់ "% 1"៖ +% 2 +ážáž¾áž¢áŸ’នកចង់កែវាឬទáŸ? + + + Entry updated successfully. + បានអាប់ដáŸážáž‘ិន្ននáŸáž™áž”ញ្ចូលដោយជោគជáŸáž™áŸ” + + + Unsaved Changes + ការផ្ážáž¶ážŸáŸ‹áž”្ážáž¼ážšážŠáŸ‚លមិនបានរក្សាទុក + + + Would you like to save changes to this entry? + ážáž¾áž¢áŸ’នកចង់រក្សាទុកការផ្លាស់ប្ážáž¼ážšáž€áž¶ážšáž”ញ្ចូលនáŸáŸ‡áž¬áž‘áŸ? + + + New attribute + លក្ážážŽáŸˆážáŸ’មី + + + New attribute %1 + លក្ážážŽáŸˆážáŸ’មី %1 + + + Are you sure you want to remove this attribute? + ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់លុបលក្ážážŽáŸˆáž“áŸáŸ‡áž…áŸáž‰áž˜áŸ‚នទáŸ? + + + Reveal + បង្ហាញ + + + [PROTECTED] Press Reveal to view or edit + [ការពារ] ចុច បង្ហាញ ដើម្បីមើល ឬកែ + + + Hide + លាក់ + + + %n hour(s) + %n ម៉ោង + + + %n week(s) + %n សប្ážáž¶áž áŸ + + + %n month(s) + %n ážáŸ‚ + + + %n year(s) + %n ឆ្នាំ + + + + EditEntryWidgetAdvanced + + Additional attributes + លក្ážážŽáŸˆážŠáŸ‚លបន្ážáŸ‚ម + + + Attribute selection + ការជ្រើសរើសលក្ážážŽáŸˆ + + + Attribute value + ážáž˜áŸ’លៃលក្ážážŽáŸˆ + + + Add a new attribute + បន្ážáŸ‚មលក្ážážŽáŸˆážáŸ’មីមួយ + + + Add + បន្ážáŸ‚ម + + + Remove selected attribute + លុបគុណលក្ážážŽáŸˆážŠáŸ‚លបានជ្រើសរើសចáŸáž‰ + + + Remove + ដកចáŸáž‰ + + + Edit attribute name + កែឈ្មោះលក្ážážŽáŸˆ + + + Edit Name + កែឈ្មោះ + + + Toggle attribute protection + បិទបើកការការពារគុណលក្ážážŽáŸˆ + + + Protect + ការពារ + + + Show a protected attribute + ការបង្ហាញពីគុណលក្ážážŽáŸˆážŠáŸ‚áž›ážáŸ’រូវបានការពារ + + + Reveal + បង្ហាញ + + + Attachments + ឯកសារ​ភ្ជាប់នានា + + + If checked, the entry will not appear in reports like Health Check and HIBP even if it doesn't match the quality requirements. + ប្រសិនបើបានពិនិážáŸ’យមើល ទិន្ននáŸáž™áž”ញ្ចូលនឹងមិនបង្ហាញនៅក្នុងរបាយការណáŸážŠáž¼áž…ជាការពិនិážáŸ’យសុážáž—áž¶áž– និង HIBP បើទោះជាវាមិនážáŸ’រូវគ្នានឹងលក្ážážážŽáŸ’ឌážáž˜áŸ’រូវរបស់គុណភាពកáŸážŠáŸ„យ។ + + + Exclude from database reports + មិនរាប់បញ្ចូលពីរបាយការណáŸážƒáŸ’លំាងទិន្ននáŸáž™ + + + Foreground Color: + ពណ៌ផ្ទៃážáž¶áž„មុážáŸ– + + + Foreground color selection + ការជ្រើសរើសពណ៌ផ្ទៃážáž¶áž„មុហ+ + + Background Color: + ពណ៌ផ្ទៃážáž¶áž„ក្រោយ៖ + + + Background color selection + ការជ្រើសរើសពណ៌ផ្ទៃážáž¶áž„ក្រោយ + + + + EditEntryWidgetAutoType + + Enable Auto-Type for this entry + បើកមុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž·ážŸáž˜áŸ’រាប់ទិន្ននáŸáž™áž”ញ្ចូលនáŸáŸ‡ + + + Inherit default Auto-Type sequence from the group + ទទួល​លំដាប់​វាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž·áž›áŸ†áž“ាំដើម​ពី​ក្រុមនáŸáŸ‡ + + + Use custom Auto-Type sequence: + ប្រើ​ប្រាស់លំដាប់មុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž·áž•្ទាល់ážáŸ’លួន៖ + + + Custom Auto-Type sequence + លំដាប់​វាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž·áž•្ទាល់ážáŸ’លួន + + + Open Auto-Type help webpage + បើកគáŸáž áž‘ំពáŸážšáž‡áŸ†áž“ួយនៃមុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž· + + + Window Associations + ការភ្ជាប់វីនដូ + + + Existing window associations + ការចូលរួមវីនដូដែលមានស្រាប់ + + + Add new window association + បន្ážáŸ‚មការភ្ជាប់វីនដូážáŸ’មី + + + + + Add item + + + + + Remove selected window association + ដកចáŸáž‰áž€áž¶ážšáž—្ជាប់វីនដូដែលបានជ្រើសរើស + + + - + Remove item + - + + + Window title: + ចំណងជើងវីនដូ៖ + + + You can use an asterisk (*) to match everything + អ្នកអាចប្រើសញ្ញាផ្កាយ (*) ដើម្បីផ្គូផ្គងអ្វីៗគ្រប់យ៉ាង + + + Set the window association title + កំណážáŸ‹áž…ំណងជើងពាក់ពáŸáž“្ធរបស់វីនដូ + + + You can use an asterisk to match everything + អ្នកអាចប្រើសញ្ញាផ្កាយដើម្បីផ្គូផ្គងអ្វីៗគ្រប់យ៉ាង + + + Use a specific sequence for this association: + ប្រើប្រាស់លំដាប់ជាក់លាក់មួយសម្រាប់ការភ្ជាប់នáŸáŸ‡áŸ– + + + Custom Auto-Type sequence for this window + លំដាប់វាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž·áž‡áž¶áž•្ទាល់ážáŸ’លួន​សម្រាប់វីនដូ​នáŸáŸ‡ + + + + EditEntryWidgetBrowser + + These settings affect to the entry's behaviour with the browser extension. + ការកំណážáŸ‹áž‘ាំងនáŸáŸ‡áž”៉ះពាល់ដល់ដំណើរការរបស់ការបញ្ចូលជាមួយកម្មវិធីបន្ážáŸ‚ម​របស់កម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážáž“áŸáŸ‡áŸ” + + + General + ទូទៅ + + + Hide this entry from the browser extension + លាក់ទិន្នáŸáž™áž”ញ្ចូលនáŸáŸ‡áž–ីកម្មវិធីបន្ážáŸ‚ម​របស់កម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិហ+ + + Skip Auto-Submit for this entry + រំលងការបញ្ជូនដោយស្វáŸáž™áž”្រវážáŸ’ážáž·ážŸáž˜áŸ’រាប់ការបញ្ចូលនáŸáŸ‡ + + + Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. + ផ្ញើážáŸ‚ការកំណážáŸ‹áž“áŸáŸ‡áž‘ៅកម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážážŸáž˜áŸ’រាប់ប្រអប់ការផ្ទៀងផ្ទាážáŸ‹áž—áž¶áž–ážáŸ’រឹមážáŸ’រូវ HTTP Auth ប៉ុណ្ណោះ។ ប្រសិនបើបានបើក ទម្រង់ចូលធម្មážáž¶áž“ឹងមិនបង្ហាញទិន្ននáŸáž™áž”ញ្ចូលនáŸáŸ‡áž±áŸ’យជ្រើសរើសទáŸáŸ” + + + Use this entry only with HTTP Basic Auth + ប្រើប្រាស់ទិន្ននáŸáž™áž”ញ្ចូលនáŸáŸ‡ážáŸ‚ជាមួយ HTTP Basic Auth ប៉ុណ្ណោះ + + + Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. + សូមកុំផ្ញើការកំណážáŸ‹áž“áŸáŸ‡áž‘ៅកាន់កម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážážŸáž˜áŸ’រាប់ប្រអប់ការផ្ទៀងផ្ទាážáŸ‹áž—áž¶áž–ážáŸ’រឹមážáŸ’រូវ HTTP Auth។ ប្រសិនបើបានបើកប្រអប់ការផ្ទៀងផ្ទាážáŸ‹áž—áž¶áž–ážáŸ’រឹមážáŸ’រូវ HTTP Auth នឹងមិនបង្ហាញទិន្ននáŸáž™áž”ញ្ចូលនáŸáŸ‡ážŸáž˜áŸ’រាប់ការជ្រើសរើសទáŸáŸ” + + + Do not use this entry with HTTP Basic Auth + កុំប្រើទិន្ននáŸáž™áž”ញ្ចូលនáŸáŸ‡áž‡áž¶áž˜áž½áž™ HTTP Basic Auth + + + Additional URL's + URL បន្ážáŸ‚ម + + + Add + បន្ážáŸ‚ម + + + Remove + ដកចáŸáž‰ + + + Edit + កែ + + + + EditEntryWidgetHistory + + Entry history selection + ការជ្រើសរើសប្រវážáŸ’ážáž·áž‘ិន្ននáŸáž™áž”ញ្ចូល + + + Show entry at selected history state + ការបង្ហាញពីទិន្ននáŸáž™áž“ៃស្ážáž¶áž“ភាពប្រវážáŸ’ážáž·ážŠáŸ‚លបានជ្រើសរើស + + + Show + បង្ហាញ + + + Restore entry to selected history state + ស្ážáž¶ážšáž‘ិន្ននáŸáž™áž’áž¶ážáž»áž…ូលទៅស្ážáž¶áž“ភាពប្រវážáŸ’ážáž·ážŠáŸ‚លបានជ្រើសរើសឡើងវិញ + + + Restore + ស្ážáž¶ážšáž¡áž¾áž„វិញ + + + Delete selected history state + លុបជួរប្រវážáŸ’ážáž·ážŠáŸ‚លបានជ្រើសរើស + + + Delete + លុប + + + Delete all history + លុបប្រវážáŸ’ážáž·áž‘ាំងអស់ + + + Delete all + លុប​ទាំងអស់ + + + + EditEntryWidgetMain + + Edit Entry + កែទិន្ននáŸáž™áž”ញ្ចូល + + + Notes field + កន្លែងបញ្ចូលចំណាំ + + + Username field + កន្លែងបញ្ចូលឈ្មោះអ្នកប្រើ + + + Expiration field + កន្លែង​បញ្ចូលផុážáž€áŸ†ážŽážáŸ‹ + + + Expiration Presets + ការ​កំណážáŸ‹â€‹áž‡áž¶áž˜áž»áž“​ផុážâ€‹áž€áŸ†ážŽážáŸ‹ + + + Expiration presets + ការ​កំណážáŸ‹â€‹áž‡áž¶áž˜áž»áž“​ផុážâ€‹áž€áŸ†ážŽážáŸ‹ + + + Presets + កំណážáŸ‹áž‡áž¶áž˜áž»áž“ + + + Url field + កន្លែងបញ្ចូល Url + + + Download favicon for URL + ទាញយក favicon សម្រាប់ URL + + + Title field + កន្លែងបញ្ចូលចំណងជើង + + + Password field + កន្លែង​បញ្ចូល​ពាក្យ​សម្ងាážáŸ‹ + + + Toggle expiration + បិទបើកការផុážáž€áŸ†ážŽážáŸ‹ + + + Tags list + បញ្ជីស្លាក + + + &Username: + &Username: + + + &Title: + &ចំណងជើង: + + + &Password: + &ពាក្យសម្ងាážáŸ‹: + + + UR&L: + + + + &Notes: + &ចំណាំ: + + + Toggle notes visibility + + + + T&ags: + T&ags: + + + &Expires: + &Expires: + + + + EditEntryWidgetSSHAgent + + Form + ទម្រង់ + + + Remove key from agent when database is closed/locked + ដកសោពីភ្នាក់ងារចáŸáž‰ នៅពáŸáž›ážŠáŸ‚លមូលដ្ឋានទិន្ននáŸáž™ážáŸ’រូវបានបិទ/ចាក់សោ។ + + + Comment + មážáž·áž™áŸ„បល់ + + + Add key to agent when database is opened/unlocked + បន្ážáŸ‚មសោទៅកាន់ភ្នាក់ងារ នៅពáŸáž›ážŠáŸ‚លបានបើក/បានដោះសោមូលដ្ឋានទិន្ននáŸáž™ážšáž½áž…រាល់ + + + Decrypt + ដោះការបំប្លែងកូដ + + + Fingerprint + ស្នាមម្រាមដៃ + + + Copy to clipboard + ចម្លងទៅការážáŸ’ទាស់ + + + Public key + សោសាធារណៈ + + + Private key + សោឯកជន + + + Attachment + ឯកសារ​ភ្ជាប់ + + + External key file + ឯកសារសោážáž¶áž„ក្រៅ + + + Add to agent + បន្ážáŸ‚មទៅកាន់ភ្នាក់ងារ + + + Remove from agent + ដកពីភ្នាក់ងារចáŸáž‰ + + + External file + ឯកសារážáž¶áž„ក្រៅ + + + Browser for key file + រុករកឯកសារសោ + + + Browse… + Button for opening file dialog + រុករក… + + + Generate + បង្កើហ+ + + Select attachment file + ជ្រើសរើសឯកសារភ្ជាប់ + + + Require user confirmation when this key is used + ទាមទារ​ការ​បញ្ជាក់​ពីអ្នក​ប្រើប្រាស់​នៅ​ពáŸáž›â€‹ážŠáŸ‚ល​សោ​នáŸáŸ‡â€‹ážáŸ’រូវ​បានគáŸâ€‹áž”្រើប្រាស់ + + + n/a + គ្មាន + + + Remove key from agent after + ដកសោពីភ្នាក់ងារចáŸáž‰áž”ន្ទាប់ពី + + + Remove key from agent after specified seconds + ដកសោពីភ្នាក់ងារចáŸáž‰áž”ន្ទាប់ពីវិនាទីដែលបានបញ្ជាក់ច្បាស់លាស់ + + + seconds + វិនាទី + + + + EditGroupWidget + + Group + ក្រុម + + + Icon + រូបážáŸ†ážŽáž¶áž„ + + + Properties + លក្ážážŽáŸˆ + + + Add group + បន្ážáŸ‚មក្រុម + + + Edit group + កែក្រុម + + + Group has unsaved changes + ក្រុមដែលបានផ្លាស់ប្ážáž¼ážšážšáž½áž…មិនទាន់បានរក្សាទុកនៅឡើយទ០+ + + Browser Integration + ការរួមបញ្ចូលកម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិហ+ + + Enable + បើក + + + Disable + បិទដំណើរការ + + + Inherit from parent group (%1) + ទទួលបានមកពីក្រុមម០(% 1) + + + + EditGroupWidgetBrowser + + These settings affect to the group's behaviour with the browser extension. + ការកំណážáŸ‹áž‘ាំងនáŸáŸ‡áž”៉ះពាល់ដល់ដំណើរការរបស់ក្រុមជាមួយកម្មវិធីបន្ážáŸ‚ម​របស់កម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážáž“áŸáŸ‡áŸ” + + + Hide entries from browser extension: + លាក់ទិន្ននáŸáž™áž”ញ្ចូលពីកម្មវិធីបន្ážáŸ‚ម​របស់កម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážáŸ– + + + Hide entries from browser extension toggle for this and sub groups + លាក់ទិន្ននáŸáž™áž”ញ្ចូលពីមុážáž„ារបិទ/បើកកម្មវិធីបន្ážáŸ‚ម​របស់កម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážážŸáž˜áŸ’រាប់ក្រុមនáŸáŸ‡ និងក្រុមរង + + + Skip Auto-Submit for entries: + រំលងការដាក់​បញ្ជូនដោយស្វáŸáž™áž”្រវážáŸ’ážáž·ážŸáž˜áŸ’រាប់ទិន្ននáŸáž™áž”ញ្ចូល៖ + + + Skip Auto-Submit toggle for this and sub groups + រំលងការបិទបើកការបញ្ជូនដោយស្វáŸáž™áž”្រវážáŸ’សម្រាប់ក្រុមនáŸáŸ‡ និងក្រុមរង + + + Use entries only with HTTP Basic Auth: + ប្រើប្រាស់ការបញ្ចូលážáŸ‚ជាមួយ HTTP Basic Auth ប៉ុណ្ណោះ៖ + + + Only HTTP Auth toggle for this and sub groups + មានážáŸ‚ HTTP Auth ប៉ុណ្ណោះដែលបិទ/បើកសម្រាប់ក្រុមនáŸáŸ‡ និងក្រុមរងនáŸáŸ‡ + + + Do not use entries with HTTP Basic Auth: + កុំប្រើទិន្ននáŸáž™áž”ញ្ចូលនានាជាមួយ HTTP Basic Auth៖ + + + Do not use HTTP Auth toggle for this and sub groups + កុំប្រើមុážáž„ារបិទបើក HTTP Auth សម្រាប់ក្រុមនáŸáŸ‡ និងក្រុមរង + + + Omit WWW subdomain from matching: + លុបដែនរងរបស់ WWW ពីការផ្គូផ្គង៖ + + + Omit WWW subdomain from matching toggle for this and sub groups + លុបដែនរងរបស់ WWW ពីការផ្គូផ្គងបិទ/បើកសម្រាប់ក្រុមនáŸáŸ‡ និងក្រុមរងនáŸáŸ‡ + + + Restrict matching to given browser key: + + + + Restrict matching to given browser key toggle for this and sub groups + + + + + EditGroupWidgetKeeShare + + Sharing mode field + កន្លែងបញ្ចូលមុážáž„ារចែករំលែក + + + Password field + កន្លែង​បញ្ចូល​ពាក្យ​សម្ងាážáŸ‹ + + + Type: + វាយអក្សរ + + + Password: + ពាក្យសម្ងាážáŸ‹áŸ– + + + Path: + ផ្លូវ៖ + + + Path to share file field + ផ្លូវទៅកាន់កន្លែងចែករំលែកឯកសារ + + + Browse for share file + រកមើលឯកសារដែលចែករំលែក + + + Browse… + រុករក… + + + Clear fields + ជម្រះកន្លែង​បញ្ចូល + + + Clear + ជម្រះ + + + Inactive + អសកម្ម + + + Import + នាំចូល + + + Export + នំាចáŸáž‰ + + + Synchronize + ធ្វើសមកាលកម្ម + + + Your KeePassXC version does not support sharing this container type. +Supported extensions are: %1. + កំណែ KeePassXC របស់អ្នកមិនអាចប្រើប្រាស់ជាមួយនឹងការចែករំលែកប្រភáŸáž‘កន្លែងផ្ទុកនáŸáŸ‡áž‘áŸáŸ” +កម្មវិធីបន្ážáŸ‚មអាចប្រើប្រាស់បានគឺ៖ %1។ + + + %1 is already being exported by this database. + % 1 គឺកំពុងážáŸ’រូវបាននាំចáŸáž‰ážŠáŸ„យឃ្លំាងទិន្ននáŸáž™áž“áŸáŸ‡ážšáž½áž…ហើយ។ + + + %1 is already being imported by this database. + % 1 គឺកំពុងážáŸ’រូវបាននាំចáŸáž‰ážŠáŸ„យឃ្លំាងទិន្ននáŸáž™áž“áŸáŸ‡ážšáž½áž…ហើយ។ + + + %1 is being imported and exported by different groups in this database. + % 1 គឺកំពុងážáŸ’រូវបាននាំចូល និងនាំចáŸáž‰ážŠáŸ„យក្រុមផ្សáŸáž„គ្នានៅក្នុងឃ្លំាងទិន្ននáŸáž™áž“áŸáŸ‡áŸ” + + + KeeShare is currently disabled. You can enable import/export in the application settings. + KeeShare is a proper noun + នាពáŸáž›ážáŸ’មីៗនáŸáŸ‡ KeeShare ážáŸ’រូវបានបិទ។ អ្នកអាចបើកការនាំចូល/នាំចáŸáž‰áž“ៅក្នុងការកំណážáŸ‹áž€áž˜áŸ’មវិធីនáŸáŸ‡áŸ” + + + Database export is currently disabled by application settings. + ážáŸ’មីៗនáŸáŸ‡áž€áž¶ážšáž€áŸ†ážŽážáŸ‹áž€áž˜áŸ’មវិធីបានបិទការនាំចáŸáž‰áž˜áž¼áž›ážŠáŸ’ឋានទិន្ននáŸáž™áŸ” + + + Database import is currently disabled by application settings. + ážáŸ’មីៗនáŸáŸ‡ ការកំណážáŸ‹áž€áž˜áŸ’មវិធីបានបិទការនាំចូលមូលដ្ឋានទិន្ននáŸáž™áŸ” + + + KeeShare container + ទម្រង់ផ្ទុក KeeShare + + + KeeShare signed container + KeeShare បានចូលទម្រង់ផ្ទុក + + + Select import source + ជ្រើសរើសប្រភពនាំចូល + + + Select export target + ជ្រើសរើសគោលដៅនាំចáŸáž‰ + + + Select import/export file + ជ្រើសរើសប្រភពឯកសារនាំចូល និងនាំចáŸáž‰ + + + + EditGroupWidgetMain + + Edit Group + កែក្រុម + + + Toggle expiration + បិទបើកការផុážáž€áŸ†ážŽážáŸ‹ + + + Expires: + ផុážáž€áŸ†ážŽážáŸ‹áŸ– + + + Name field + ឈ្មោះកន្លែងបញ្ចូល + + + Expiration field + កន្លែង​បញ្ចូលផុážáž€áŸ†ážŽážáŸ‹ + + + Use default Auto-Type sequence of parent group + ប្រើ​លំដាប់​មុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž·áž›áŸ†áž“ាំដើម​នៃ​ក្រុម​ម០+ + + Auto-Type: + មុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž· + + + Search: + ស្វែងរក + + + Auto-Type toggle for this and sub groups + បិទ/បើក​មុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž·ážŸáž˜áŸ’រាប់​ក្រុម​នáŸáŸ‡ និង​ក្រុមរងនáŸáŸ‡ + + + Notes: + ចំណាំ៖ + + + Default auto-type sequence field + កន្លែងបញ្ចូលលំដាប់​ប្រភáŸáž‘​ស្វáŸáž™áž”្រវážáŸ’ážáž·â€‹áž›áŸ†áž“ាំដើម + + + Notes field + កន្លែងបញ្ចូលចំណាំ + + + Name: + ឈ្មោះ៖ + + + Set default Auto-Type sequence + កំណážáŸ‹áž˜áž»ážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž·áž›áŸ†áž“ាំដើម + + + Search toggle for this and sub groups + ស្វែងរកបិទ/បើកសម្រាប់ក្រុមនáŸáŸ‡ និងក្រុមរង + + + + EditWidgetIcons + + Use default icon + ប្រើប្រាស់រូបážáŸ†ážŽáž¶áž„លំនាំដើម + + + Use custom icon + ប្រើប្រាស់រូបážáŸ†ážŽáž¶áž„ផ្ទាល់ážáŸ’លួន + + + Choose icon… + ជ្រើសរើសរូបážáŸ†ážŽáž¶áž„… + + + Set the URL to use to search for a favicon + ការកំណážáŸ‹ URL ដែលážáŸ’រូវប្រើដើម្បីស្វែងរក favicons + + + Favicon URL + រូប URL áž–áŸáž‰áž…áž·ážáŸ’áž + + + Download favicon for URL + ទាញយក favicon សម្រាប់ URL + + + Download favicon + ទាញយក favicon + + + Apply selected icon to subgroups and entries + ដាក់ប្រើážážšáž¼áž”ážáŸ†ážŽáž¶áž„ដែលបានជ្រើសរើសទៅក្រុមរង និងទិន្ននáŸáž™áž”ញ្ចូល + + + Apply icon to… + ដាក់ប្រើរូបážáŸ†ážŽáž¶áž„ទៅ… + + + Apply to this group only + អនុវážáŸ’ážáž”ានចំពោះក្រុមនáŸáŸ‡ážáŸ‚ប៉ុណ្ណោះ + + + Also apply to child groups + អនុវážáŸ’ážáž”ានចំពោះក្រុមកុមារផងដែរ + + + Also apply to child entries + ដាក់ប្រើទិន្ននáŸáž™áž”ញ្ចូលពីកុមារផងដែរ + + + Also apply to all children + អនុវážáŸ’ážáž”ានចំពោះកុមារទាំងអស់ផងដែរ + + + Unable to fetch favicon. + មិន​អាចរកមើលរូបážáŸ†ážŽáž¶áž„បានទáŸáŸ” + + + Existing icon selected. + បានជ្រើសរើសរូបážáŸ†ážŽáž¶áž„ដែលមានស្រាប់។ + + + Images + រូបភាព + + + All files + ឯកសារ​ទាំងអស់ + + + Select Image(s) + ជ្រើសរើសរូបភាព + + + Successfully loaded %1 of %n icon(s) + បាន​ផ្ទុក %1 ​នៃរូបážáŸ†ážŽáž¶áž„ %n ​ដោយ​ជោគជáŸáž™ + + + No icons were loaded + គ្មានរូបážáŸ†ážŽáž¶áž„ដែលបានផ្ទុកឡើងទ០+ + + %n icon(s) already exist in the database + %n រូបážáŸ†ážŽáž¶áž„មានរួចហើយនៅក្នុងឃ្លាំងទិន្ននáŸáž™ + + + The following icon(s) failed: + រូបážáŸ†ážŽáž¶áž„ážáž¶áž„ក្រោមមិនបានសម្រáŸáž…áž‘áŸáŸ– + + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + + + + + EditWidgetProperties + + Created: + បានបង្កើážáŸ– + + + Datetime created + កាលបរិច្ឆáŸáž‘និងម៉ោងដែលបានបង្កើហ+ + + Modified: + បានកែប្រែ៖ + + + Datetime modified + កាលបរិច្ឆáŸáž‘និងម៉ោងដែលបានកែប្រែ + + + Accessed: + បានចូលប្រើប្រាស់៖ + + + Datetime accessed + កាលបរិច្ឆáŸáž‘និងម៉ោងបានចូលប្រើប្រាស់ + + + Uuid: + Uuid: + + + Unique ID + ID ពិសáŸážŸ + + + Plugin Data + ទិន្ននáŸáž™áž€áž˜áŸ’មវិធីជំនួយ + + + Plugin data + ទិន្ននáŸáž™áž€áž˜áŸ’មវិធីជំនួយ + + + Remove selected plugin data + ដកចáŸáž‰áž‘ិន្ននáŸáž™áž€áž˜áŸ’មវិធីជំនួយដែលបានជ្រើសរើស + + + Remove + ដកចáŸáž‰ + + + Delete plugin data? + លុបទិន្ននáŸáž™áž“ៅក្នុងកម្មវិធីជំនួយ? + + + Do you really want to delete the selected plugin data? +This may cause the affected plugins to malfunction. + ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់លុបទិន្ននáŸáž™áž“ៃកម្មវិធីជំនួយដែលបានជ្រើសរើសមែនដែរឬទáŸ? +áž“áŸáŸ‡áž¢áž¶áž…បណ្ážáž¶áž›áž±áŸ’យកម្មវិធីជំនួយដែលរងផលប៉ះពាល់ដំណើរការážáž»ážŸáž”្រក្រážáž¸áŸ” + + + Key + សោ + + + Value + ážáž˜áŸ’លៃ + + + + Entry + + %1 - Clone + %1 - ក្លូន + + + + EntryAttachments + + Cannot open file "%1" + មិនអាចបើកឯកសារ "% 1" បានទ០+ + + + EntryAttachmentsModel + + Name + ឈ្មោះ + + + Size + ទំហំ + + + + EntryAttachmentsWidget + + Form + ទម្រង់ + + + Attachments + ឯកសារ​ភ្ជាប់នានា + + + Add new attachment + បន្ážáŸ‚មឯកសារភ្ជាប់ážáŸ’មី + + + Add + បន្ážáŸ‚ម + + + Remove selected attachment + លុបឯកសារភ្ជាប់ដែលបានជ្រើសរើសចáŸáž‰ + + + Remove + ដកចáŸáž‰ + + + Rename selected attachment + ប្ážáž¼ážšážˆáŸ’មោះឯកសារភ្ជាប់ដែលបានជ្រើសរើស + + + Rename + ប្ážáž¼ážšážˆáŸ’មោះ + + + Open selected attachment + បើកឯកសារភ្ជាប់ដែលបានជ្រើសរើស + + + Open + បើក + + + Save selected attachment to disk + រក្សាឯកសារភ្ជាប់ទុកទៅក្នុងឌីស + + + Save + រក្សាទុក + + + Select files + ជ្រើសរើសឯកសារ + + + Confirm remove + បញ្ជាក់ការដកចáŸáž‰ + + + Are you sure you want to remove %n attachment(s)? + ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់លុបឯកសារភ្ជាប់ %n áž…áŸáž‰áž˜áŸ‚នទáŸ? + + + Save attachments + រក្សាឯកសារភ្ជាប់ទុក + + + Unable to create directory: +%1 + មិនអាចបង្កើážážáž%1 + + + Are you sure you want to overwrite the existing file "%1" with the attachment? + ážáž¾â€‹áž¢áŸ’នក​ពិážáž‡áž¶â€‹áž…ង់​សរសáŸážšâ€‹áž‡áž¶áž“់​លើ​ឯកសារ "% 1" ដែល​មាន​ស្រាប់​ជាមួយ​ឯកសារ​ភ្ជាប់នáŸáŸ‡áž˜áŸ‚នទáŸ? + + + Confirm overwrite + បញ្ជាក់ការសរសáŸážšáž‡áž¶áž“់លើ + + + Unable to save attachments: +%1 + មិនអាចរក្សាទុក ឯកសារភ្ជាប់ៈ%1 + + + Unable to open attachment: +%1 + មិនអាចបើកឯកសារភ្ជាប់បានទáŸáŸ– +%1 + + + Unable to open attachments: +%1 + មិនអាចបើកឯកសារភ្ជាប់នានាបានទáŸáŸ– +%1 + + + Unable to open file(s): +%1 + មិនអាចបើកឯកសារៈ%1 + + + Confirm Overwrite Attachment + បញ្ជាក់ការសរសáŸážšáž‡áž¶áž“់លើឯកសារភ្ជាប់ + + + Attachment "%1" already exists. +Would you like to overwrite the existing attachment? + ឯកសារភ្ជាប់ "% 1" មានស្រាប់ហើយ។ +ážáž¾áž¢áŸ’នកចង់សរសáŸážšáž‡áž¶áž“់លើឯកសារភ្ជាប់ដែលមានស្រាប់ឬទáŸ? + + + Confirm Attachment + បញ្ជាក់ឯកសារភ្ជាប់ + + + %1 is a big file (%2 MB). +Your database may get very large and reduce performance. + +Are you sure to add this file? + % 1 គឺជាឯកសារធំ (% 2 MB)។ +ឃ្លំាងទិន្ននáŸáž™ážšáž”ស់អ្នកអាចមានទំហំធំ និងកាážáŸ‹áž”ន្ážáž™áž”្រážáž·áž”ážáŸ’ážáž·áž€áž¶ážšáŸ” + +ážáž¾áž¢áŸ’នកប្រាកដក្នុងការបន្ážáŸ‚មឯកសារនáŸáŸ‡ážŠáŸ‚រឬទáŸ? + + + Attachment modified + ឯកសារភ្ជាប់ដែលបានកែ + + + The attachment '%1' was modified. +Do you want to save the changes to your database? + បានកែប្រែឯកសារភ្ជាប់ '%1' ។ +ážáž¾áž¢áŸ’នកចង់រក្សាទុកការផ្លាស់ប្ážáž¼ážšáž‘ៅក្នុងមូលដ្ឋានទិន្ននáŸáž™ážšáž”ស់អ្នកឬទáŸ? + + + Saving attachment failed + ការរក្សាទុកឯកសារភ្ជាប់បរាជáŸáž™ + + + Saving updated attachment failed. +Error: %1 + រក្សាឯកសារភ្ជាប់ដែលបានធ្វើបច្ចុប្បន្នភាពទុក.កំហុស %1 + + + + EntryAttributesModel + + Name + ឈ្មោះ + + + + EntryHistoryModel + + Current (%1) + បច្ចុប្បន្ន (% 1) + + + Last modified + បានកែប្រែចុងក្រោយ + + + Age + អាយុ + + + Difference + áž—áž¶áž–ážáž»ážŸáž‚្នា + + + Size + ទំហំ + + + Title + ចំណងជើង + + + Username + ឈ្មោះអ្នកប្រើ + + + Password + ពាក្យសម្ងាážáŸ‹ + + + URL + URL + + + Notes + ចំណាំ + + + Custom Attributes + លក្ážážŽáŸˆáž•្ទាល់ážáŸ’លួន + + + Icon + រូបážáŸ†ážŽáž¶áž„ + + + Color + ពណ៌ + + + Expiration + ផុážáž€áŸ†ážŽážáŸ‹ + + + TOTP + TOTP + + + Custom Data + ទិន្ននáŸáž™áž•្ទាល់ážáŸ’លួន + + + Attachments + ឯកសារ​ភ្ជាប់នានា + + + Auto-Type + មុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž· + + + Tags + ស្លាក + + + + EntryModel + + Ref: + Reference abbreviation + យោង៖ + + + Never + មិនធ្លាប់ + + + Group + ក្រុម + + + Title + ចំណងជើង + + + Username + ឈ្មោះអ្នកប្រើ + + + Password + ពាក្យសម្ងាážáŸ‹ + + + URL + URL + + + Notes + ចំណាំ + + + Expires + ផុážáž€áŸ†ážŽážáŸ‹ + + + Created + បានបង្កើហ+ + + Modified + បានកែប្រែ + + + Accessed + បានចូលប្រើប្រាស់ + + + Attachments + ឯកសារ​ភ្ជាប់នានា + + + Size + ទំហំ + + + Group name + ឈ្មោះ​ក្រុម + + + Entry title + ចំណងជើងទិន្ននáŸáž™áž”ញ្ចូល + + + Password Strength + ប្រសិទ្ធភាពពាក្យសម្ងាážáŸ‹ + + + Entry notes + កំណážáŸ‹áž…ំណាំទិន្ននáŸáž™áž”ញ្ចូល + + + Entry expires at + ទិន្ននáŸáž™áž”ញ្ចូលផុážáž€áŸ†ážŽážáŸ‹áž“ៅ + + + Creation date + កាលបរិច្ឆáŸáž‘បង្កើហ+ + + Last modification date + កាលបរិច្ឆáŸáž‘កែប្រែចុងក្រោយ + + + Last access date + កាលបរិច្ឆáŸáž‘ចូលប្រើចុងក្រោយ + + + Attached files + បានភ្ជាប់ឯកសារ + + + Entry size + ទំហំនៃទិន្ននáŸáž™áž”ញ្ចូល + + + Has attachments + មានឯកសារភ្ជាប់ + + + Has TOTP + មាន TOTP + + + Background Color + + + + + EntryPreviewWidget + + Display current TOTP value + បង្ហាញážáž˜áŸ’លៃ TOTP បច្ចុប្បន្ន + + + Close + បិទ + + + General + ទូទៅ + + + Password + ពាក្យសម្ងាážáŸ‹ + + + URL + URL + + + Expiration + ផុážáž€áŸ†ážŽážáŸ‹ + + + Tags + ស្លាក + + + Tags list + បញ្ជីស្លាក + + + Username + ឈ្មោះអ្នកប្រើ + + + Notes + ចំណាំ + + + Advanced + កម្រិážážáŸ’ពស់ + + + Attachments + ឯកសារ​ភ្ជាប់នានា + + + Attributes + លក្ážážŽáŸˆ + + + Autotype + មុážáž„ារវាយបញ្ចូលដោយស្វáŸáž™áž”្រវážáŸ’ážáž· + + + Default Sequence + លំដាប់លំនាំដើម + + + Window + វីនដូ + + + Sequence + លំដាប់ + + + Searching + ការស្វែងរក + + + Share + ចែករំលែក + + + Search + ស្វែងរក​ + + + Clear + ជម្រះ + + + Never + មិនធ្លាប់ + + + Double click to copy value + ចុចពីរដងដើម្បីចម្លងážáž˜áŸ’លៃ + + + Enabled + បានបើក + + + Disabled + បានបិទដំណើរការ + + + Double click to copy to clipboard + + + + + EntryURLModel + + Invalid URL + URL មិនážáŸ’រឹមážáŸ’រូវ + + + Duplicate URL + + + + + EntryView + + Fit to window + សមនឹង window + + + Fit to contents + សមនឹងមាážáž·áž€áž¶ + + + Reset to defaults + ការកំណážáŸ‹áž‘ៅលំនាំដើមវិញ + + + + %1 entry(s)... + + + + + ExportDialog + + Export options + ជម្រើសនាំចáŸáž‰ + + + Sort entries by... + ážáž˜áŸ’រៀបទិន្ននáŸáž™áž”ញ្ចូលដោយ... + + + You are about to export your database to an unencrypted file. +This will leave your passwords and sensitive information vulnerable! + + អ្នកហៀបនឹងនាំចáŸáž‰áž˜áž¼áž›ážŠáŸ’ឋានទិន្ននáŸáž™ážšáž”ស់អ្នកទៅជាឯកសារដែលមិនបានអ៊ិនគ្រីប។ +ការធ្វើបែបនáŸáŸ‡áž“ឹងទុកឱ្យពាក្យសម្ងាážáŸ‹ និងពáŸážáŸŒáž˜áž¶áž“រសើបរបស់អ្នកងាយទទួលរងគ្រោះ! + + + + database order + លំដាប់មូលដ្ឋានទិន្ននáŸáž™ + + + name (ascending) + ឈ្មោះ (ឡើង) + + + name (descending) + ឈ្មោះ (ចុះ) + + + unknown + មិនស្គាល់ + + + Export database to HTML file + នាំចáŸáž‰ážƒáŸ’លំាងទិន្ននáŸáž™áž‘ៅជាឯកសារ HTML + + + HTML file + ឯកសារ HTML + + + + FdoSecrets::DBusMgr + + Failed to deliver message + បានបរាជáŸáž™áž€áŸ’នុងការបញ្ជូនសារ + + + Failed to send reply on DBus + ផ្ញើការឆ្លើយážáž”នៅលើ DBus មិនបានសម្រáŸáž… + + + Unknown + Unknown PID + មិនស្គាល់ + + + Unknown + Unknown executable path + មិនស្គាល់ + + + <i>PID: %1, Executable: %2</i> + <i>PID: 1234, Executable: /path/to/exe</i> + <i>PID៖ %1, អនុវážáŸ’ážáž“áŸáž”ាន៖ %2</i> + + + Another secret service is running (%1).<br/>Please stop/remove it before re-enabling the Secret Service Integration. + សáŸážœáž¶ážŸáž˜áŸ’ងាážáŸ‹áž˜áž½áž™áž•្សáŸáž„ទៀážáž€áŸ†áž–ុងដំណើរការ (%1)។<br/>សូមបញ្ឈប់/ដកសáŸážœáž¶ážŸáž˜áŸ’ងាážáŸ‹áž…áŸáž‰ មុនពáŸáž›áž”ើកដំណើរការការរួមបញ្ចូលសáŸážœáž¶ážŸáž˜áŸ’ងាážáŸ‹áž¡áž¾áž„វិញ។ + + + Failed to register DBus service at %1.<br/> + មិនបានសម្រáŸáž…ក្នុងការចុះឈ្មោះសáŸážœáž¶ DBus នៅ %1។<br/> + + + Failed to register service on DBus at path '%1' + ចុះឈ្មោះសáŸážœáž¶áž“ៅលើ DBus នៅផ្លូវ '%1' មិនបានសម្រáŸáž… + + + Failed to register database on DBus under the name '%1' + មិនបានសម្រáŸáž…ក្នុងការចុះឈ្មោះមូលដ្ឋានទិន្ននáŸáž™áž“ៅលើ DBus នៅក្រោមឈ្មោះ '%1' + + + Failed to register session on DBus at path '%1' + ចុះឈ្មោះវគ្គនៅលើ DBus នៅផ្លូវ '%1' មិនបានសម្រáŸáž… + + + Failed to register item on DBus at path '%1' + ចុះឈ្មោះធាážáž»áž“ៅលើ DBus នៅផ្លូវ '%1' មិនបានសម្រáŸáž… + + + Failed to register prompt object on DBus at path '%1' + ចុះឈ្មោះផ្ទាំងលáŸáž…ឡើងសារជូនដំណឹងនៅលើ DBus នៅផ្លូវ '%1' មិនបានសម្រáŸáž… + + + + FdoSecrets::Item + + Entry "%1" from database "%2" was used by %3 + ការបញ្ចូល "%1" ពីមូលដ្ឋានទិន្ននáŸáž™ "%2" ážáŸ’រូវបានប្រើប្រាស់ដោយ %3 + + + + FdoSecrets::Service + + %n Entry(s) was used by %1 + %1 is the name of an application + %n ទិន្ននáŸáž™áž”ញ្ចូលážáŸ’រូវបានប្រើប្រាស់ដោយ %1 + + + + FdoSecrets::SettingsClientModel + + Unknown + មិនស្គាល់ + + + Non-existing/inaccessible executable path. Please double-check the client is legit. + អážáŸ‹áž˜áž¶áž“/មិនមានផ្លូវ​ចូលទៅអនុវážáŸ’ážáž“áŸáž”ាន។ សូមសួរទៅអážáž·ážáž·áž‡áž“​ម្ážáž„ទៀážážáž¶ážáž¾ážœáž¶áž”្រាកដជាមាន + + + + FdoSecrets::SettingsDatabaseModel + + Unlock to show + ដោះសោដើម្បីបង្ហាញ + + + None + គ្មាន + + + + FdoSecrets::UnlockPrompt + + %1 (PID: %2) + %1 (PID: %2) + + + + FdoSecretsPlugin + + <b>Fdo Secret Service:</b> %1 + <b> សáŸážœáž¶ážŸáž˜áŸ’ងាážáŸ‹ Fdo:</b> %1 + + + + Group + + [empty] + group has no children + [ទទáŸ] + + + %1 - Clone + %1 - ក្លូន + + + + HibpDownloader + + Online password validation failed + ការផ្ទៀងផ្ទាážáŸ‹áž–ាក្យសម្ងាážáŸ‹áž›áž¾áž¢áŸŠáž¸áž“ធឺណិážáž”ានបរាជáŸáž™ + + + + IconDownloaderDialog + + Download Favicons + ទាញយក Favicon + + + Cancel + បញ្ឈប់ + + + Having trouble downloading icons? +You can enable the DuckDuckGo website icon service in the security section of the application settings. + កំពុងមានបញ្ហាក្នុងការទាញយករូបážáŸ†ážŽáž¶áž„? +អ្នកអាចបើកសáŸážœáž¶ážšáž¼áž”áž‚áŸáž áž‘ំពáŸážš DuckDuckGo នៅក្នុងផ្នែកសុវážáŸ’ážáž·áž—ាពនៃការកំណážáŸ‹áž€áž˜áŸ’មវិធីបាន។ + + + Close + បិទ + + + URL + URL + + + Status + ស្ážáž¶áž“áž—áž¶áž– + + + Please wait, processing entry list… + សូមមáŸážáŸ’ážáž¶ážšáž„់ចាំ កំពុងដំណើរការបញ្ចូលបញ្ជីឈ្មោះ… + + + Downloading… + កំពុងទាញយក… + + + Ok + យល់ព្រម + + + Already Exists + ធ្លាប់​មានស្រាប់ហើយ + + + Download Failed + ការទាញយកបានបរាជáŸáž™ + + + Downloading favicons (%1/%2)… + កំពុងទាញយក favicons (%1/%2)… + + + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + ទំពáŸážšáž¢áŸ’នកជំនួយ + + + Entry count: %1 + + + + Group + ក្រុម + + + Title + ចំណងជើង + + + Username + ឈ្មោះអ្នកប្រើ + + + Password + ពាក្យសម្ងាážáŸ‹ + + + Url + + + + + ImportWizardPageSelect + + Form + ទម្រង់ + + + Import File Selection + + + + Password: + ពាក្យសម្ងាážáŸ‹áŸ– + + + Key File: + ឯកសារសោ៖ + + + Browse… + រុករក… + + + Import Into: + + + + New Database + មូលដ្ឋាន​ទិន្ននáŸáž™â€‹ážáŸ’មី + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + បើក OPVault + + + Select import file + + + + All files + ឯកសារ​ទាំងអស់ + + + Key files + ឯកសារសោ + + + Select key file + ជ្រើសរើសឯកសារសោ + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + + + KMessageWidget + + &Close + &បិទ + + + Close message + បិទសារ + + + + Kdbx3Reader + + Missing database headers + កំពុងបាážáŸ‹áž”ឋមកážáž¶â€‹áž˜áž¼áž›ážŠáŸ’ឋាន​ទិន្ននáŸáž™ + + + Unable to calculate database key + មិនអាចគណនាសោមូលដ្ឋានទិន្ននáŸáž™áž”ានទ០+ + + Unable to issue challenge-response: %1 + មាន​បញ្ហា​ពáŸáž›áž€áŸ†áž–ុងដំណើរការផ្ទៀងផ្ទាážáŸ‹áŸ– % 1 + + + Invalid credentials were provided, please try again. +If this reoccurs, then your database file may be corrupt. + បានផ្ážáž›áŸ‹áž˜áž€áž–áŸážáŸŒáž˜áž¶áž“ផ្ទៀងផ្ទាážáŸ‹áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ សូមព្យាយាមម្ážáž„ទៀážáŸ” +ប្រសិនបើបញ្ហានáŸáŸ‡áž€áž¾ážáž¡áž¾áž„ម្ážáž„ទៀហនោះឯកសារមូលដ្ឋានទិន្ននáŸáž™ážšáž”ស់អ្នកអាចនឹងážáŸ’រូវážáž¼áž…។ + + + Header doesn't match hash + បឋមកážáž¶áž˜áž·áž“ážáŸ’រូវគ្នានឹងហាស + + + Invalid header id size + ទំហំ id នៃក្បាលទំពáŸážšáž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Invalid header field length: field %1 + ប្រវែងកន្លែងបញ្ចូលបឋមកážáž¶áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ៖ កន្លែងបញ្ចូល %1 + + + Invalid header data length: field %1, %2 expected, %3 found + ប្រវែងទិន្ននáŸáž™áž”ឋមកážáž¶áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ៖ កន្លែងបញ្ចូល %1, %2 ដែលបានរំពឹងទុក, %3 ដែលបានរកឃើញ + + + + Kdbx3Writer + + Invalid symmetric cipher IV size. + IV = Initialization Vector for symmetric cipher + ទំហំ cipher IV ស៊ីមáŸáž‘្រីកមិនážáŸ’រឹមážáŸ’រូវ។ + + + Unable to issue challenge-response: %1 + មាន​បញ្ហា​ពáŸáž›áž€áŸ†áž–ុងដំណើរការផ្ទៀងផ្ទាážáŸ‹áŸ– % 1 + + + Unable to calculate database key + មិនអាចគណនាសោមូលដ្ឋានទិន្ននáŸáž™áž”ានទ០+ + + + Kdbx4Reader + + missing database headers + កំពុងបាážáŸ‹áž”ឋមកážáž¶â€‹áž˜áž¼áž›ážŠáŸ’ឋាន​ទិន្ននáŸáž™ + + + Unable to calculate database key: %1 + មិនអាចគណនាសោមូលដ្ឋានទិន្ននáŸáž™áž”ានទáŸáŸ– %1 + + + Invalid header checksum size + ទំហំលáŸážážŸážšáž»áž”ដើម្បីពិនិážáŸ’យមើលទិន្ននáŸáž™ážáŸ’រឹមážáŸ’រូវបឋមកážáž¶áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Header SHA256 mismatch + បឋមកážáž¶ SHA256 មិនážáŸ’រូវគ្នា + + + Invalid credentials were provided, please try again. +If this reoccurs, then your database file may be corrupt. + បានផ្ážáž›áŸ‹áž˜áž€áž–áŸážáŸŒáž˜áž¶áž“ផ្ទៀងផ្ទាážáŸ‹áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ សូមព្យាយាមម្ážáž„ទៀážáŸ”ប្រសិនបើបញ្ហានáŸáŸ‡áž€áž¾ážáž¡áž¾áž„ម្ážáž„ទៀហនោះឯកសារមូលដ្ឋានទិន្ននáŸáž™ážšáž”ស់អ្នកអាចនឹងážáŸ’រូវážáž¼áž…។ + + + (HMAC mismatch) + (HMAC មិនážáŸ’រូវគ្នា) + + + Unknown cipher + មិនស្គាល់លáŸážážŸáž˜áŸ’ងាážáŸ‹ + + + Invalid header id size + ទំហំ id នៃក្បាលទំពáŸážšáž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Invalid header field length: field %1 + ប្រវែងកន្លែងបញ្ចូលបឋមកážáž¶áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ៖ កន្លែងបញ្ចូល %1 + + + Invalid header data length: field %1, %2 expected, %3 found + ប្រវែងទិន្ននáŸáž™áž”ឋមកážáž¶áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ៖ កន្លែងបញ្ចូល %1, %2 ដែលបានរំពឹងទុក, %3 ដែលបានរកឃើញ + + + Failed to open buffer for KDF parameters in header + បើកអង្គចងចាំបណ្ážáŸ„ះអាសន្នសម្រាប់ប៉ារ៉ាម៉ែážáŸ’ážš KDF នៅក្នុងបឋមកážáž¶áž˜áž·áž“បានសម្រáŸáž… + + + Unsupported key derivation function (KDF) or invalid parameters + មុážáž„ារទាញយកសោដែលមិនគាំទ្រ (KDF) ឬ ប៉ារ៉ាម៉ែážáŸ’រមិនážáŸ’រឹមážáŸ’រូវ។ + + + Legacy header fields found in KDBX4 file. + បានរកឃើញកន្លែងបញ្ចូលបឋមកážáž¶áž…ាស់នៅក្នុងឯកសារ KDBX4។ + + + Invalid inner header id size + ទំហំលáŸážážŸáž˜áŸ’គាល់បឋមកážáž¶ážáž¶áž„ក្នុងមិនážáŸ’រឹមážáŸ’រូវ + + + Invalid inner header field length: field %1 + ប្រវែងកន្លែងបញ្ចូលបឋមកážáž¶ážáž¶áž„ក្នុងមិនážáŸ’រឹមážáŸ’រូវ៖ កន្លែងបញ្ចូល %1 + + + Invalid inner header data length: field %1, %2 expected, %3 found + ប្រវែងទិន្ននáŸáž™áž”ឋមកážáž¶ážáž¶áž„ក្នុងមិនážáŸ’រឹមážáŸ’រូវ៖ កន្លែងបញ្ចូល %1, %2 ដែលបានរំពឹងទុក, %3 ដែលបានរកឃើញ + + + Invalid inner header binary size + ទំហំគោលពីរនៃបឋមកážáž¶ážáž¶áž„ក្នុងមិនážáŸ’រឹមážáŸ’រូវ + + + Unsupported KeePass variant map version. + Translation: variant map = data structure for storing meta data + កំណែផែនទីចម្រុះ KeePass ដែលមិនគាំទ្រ។ + + + Invalid variant map entry name length + Translation: variant map = data structure for storing meta data + ប្រវែងឈ្មោះនៃទិន្ននáŸáž™áž”ញ្ចូលផែនទីអážáŸážšáž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Invalid variant map entry name data + Translation: variant map = data structure for storing meta data + ទិន្ននáŸáž™ážŸáž˜áŸ’រាប់ឈ្មោះនៃទិន្ននáŸáž™áž”ញ្ចូលផែនទីអážáŸážšáž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Invalid variant map entry value length + Translation: variant map = data structure for storing meta data + ប្រវែងážáž˜áŸ’លៃនៃទិន្នáŸáž™áž”ញ្ចូលផែនទីអážáŸážšáž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Invalid variant map entry value data + Translation comment: variant map = data structure for storing meta data + ទិន្ននáŸáž™ážŸáž˜áŸ’រាប់ážáž˜áŸ’លៃនៃទិន្ននáŸáž™áž”ញ្ចូលផែនទីអážáŸážšáž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Invalid variant map Bool entry value length + Translation: variant map = data structure for storing meta data + ប្រវែងážáž˜áŸ’លៃនៃការបញ្ចូល Bool នៅក្នុងផែនទីអážáŸážšáž“áŸáŸ‡áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Invalid variant map Int32 entry value length + Translation: variant map = data structure for storing meta data + ប្រវែងážáž˜áŸ’លៃនៃការបញ្ចូល Int32 នៅក្នុងផែនទីអážáŸážšáž“áŸáŸ‡áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Invalid variant map UInt32 entry value length + Translation: variant map = data structure for storing meta data + ប្រវែងážáž˜áŸ’លៃនៃការបញ្ចូល UInt32 នៅក្នុងផែនទីអážáŸážšáž“áŸáŸ‡áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Invalid variant map Int64 entry value length + Translation: variant map = data structure for storing meta data + ប្រវែងážáž˜áŸ’លៃនៃការបញ្ចូល Int64 នៅក្នុងផែនទីអážáŸážšáž“áŸáŸ‡áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Invalid variant map UInt64 entry value length + Translation: variant map = data structure for storing meta data + ប្រវែងážáž˜áŸ’លៃនៃការបញ្ចូល UInt64 នៅក្នុងផែនទីអážáŸážšáž“áŸáŸ‡áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Invalid variant map entry type + Translation: variant map = data structure for storing meta data + ប្រភáŸáž‘ទិន្នáŸáž™áž”ញ្ចូលផែនទីអážáŸážšáž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Invalid variant map field type size + Translation: variant map = data structure for storing meta data + ទំហំនៃប្រភáŸáž‘កន្លែងបញ្ចូលផែនទីអážáŸážšáž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + + Kdbx4Writer + + Invalid symmetric cipher algorithm. + អាល់ហ្គោរីហcipher ស៊ីមáŸáž‘្រីកមិនážáŸ’រឹមážáŸ’រូវ។ + + + Invalid symmetric cipher IV size. + IV = Initialization Vector for symmetric cipher + ទំហំ cipher IV ស៊ីមáŸáž‘្រីកមិនážáŸ’រឹមážáŸ’រូវ។ + + + Unable to calculate database key: %1 + មិនអាចគណនាសោមូលដ្ឋានទិន្ននáŸáž™áž”ានទáŸáŸ– %1 + + + Failed to serialize KDF parameters variant map + Translation comment: variant map = data structure for storing meta data + ដាក់ស៊áŸážšáž¸â€‹áž‘ៅលើផែនទីអážáŸážšáž”៉ារ៉ាម៉ែážáŸ’ážš KDF មិនបានសម្រáŸáž… + + + + KdbxReader + + Invalid cipher uuid length: %1 (length=%2) + ប្រវែង​ cipher uuid មិន​ážáŸ’រឹមážáŸ’រូវ៖ %1 (ប្រវែង = %2) + + + Unable to parse UUID: %1 + មិនអាចញែក UUID: %1 + + + Unsupported cipher + ពាក្យសម្ងាážáŸ‹ážŠáŸ‚លមិនគាំទ្រ + + + Invalid compression flags length + ប្រវែងអážáŸážšáž”ង្ហាប់មិនážáŸ’រឹមážáŸ’រូវ + + + Unsupported compression algorithm + វិធីដោះស្រាយការបង្ហាប់ដែលមិនគាំទ្រ + + + Invalid master seed size + ទំហំážáž˜áŸ’លៃដើមមáŸáž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Invalid transform seed size + ទំហំážáž˜áŸ’លៃដើមនៃការបំប្លែងមិនážáŸ’រឹមážáŸ’រូវ + + + Invalid transform rounds size + ទំហំជុំនៃការបំប្លែងមិនážáŸ’រឹមážáŸ’រូវ + + + Invalid start bytes size + ទំហំបៃនៃការចាប់ផ្ážáž¾áž˜áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Invalid random stream id size + ទំហំលáŸážážŸáž˜áŸ’គាល់ស្ទ្រីមចៃដន្យមិនážáŸ’រឹមážáŸ’រូវ + + + Invalid inner random stream cipher + Cipher ស្ទ្រីមចៃដន្យážáž¶áž„ក្នុងមិនážáŸ’រឹមážáŸ’រូវ + + + Failed to read database file. + បានបរាជáŸáž™áž€áŸ’នុងការអានឯកសារឃ្លំាងទិន្ននáŸáž™áŸ” + + + The selected file is an old KeePass 1 database (.kdb). + +You can import it by clicking on Database > 'Import KeePass 1 database…'. +This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. + ឯកសារដែលបានជ្រើសរើស គឺជាមូលដ្ឋានទិន្ននáŸáž™ KeePass 1 ចាស់ (.kdb)។ + +អ្នកអាចនាំចូលឯកសារដោយចុចលើ មូលដ្ឋានទិន្ននáŸáž™ > 'នាំចូលមូលដ្ឋានទិន្ននáŸáž™ážšáž”ស់ KeePass 1 …'។ +áž“áŸáŸ‡áž‡áž¶áž€áž¶ážšáž•្ទáŸážšáž˜áž½áž™áž‡áž¾áž„។ អ្នកមិនអាចបើកមូលដ្ឋានទិន្ននáŸáž™ážŠáŸ‚លបាននាំចូលជាមួយកំណែ KeePassX 0.4 ចាស់បានទáŸáŸ” + + + Not a KeePass database. + មិនមែនជាឃ្លំាងទិន្ននáŸáž™ KeePass áž‘áŸáŸ” + + + Unsupported KeePass 2 database version. + កំណែទិន្ននáŸáž™ KeePass 2 ដែលមិនគាំទ្រ។ + + + + KdbxXmlReader + + XML parsing failure: %1 + ​ការ​ញែក XML មិនបានសម្រáŸáž…៖ %1 + + + No root group + គ្មានក្រុមឫស + + + XML error: +%1 +Line %2, column %3 + បញ្ហា XML៖ +%1 +បន្ទាážáŸ‹ %2, ជួរឈរ %3 + + + Missing icon uuid or data + បាážáŸ‹ážšáž¼áž”ážáŸ†ážŽáž¶áž„ uuid ឬទិន្ននáŸáž™ + + + Missing custom data key or value + កំពុងបាážáŸ‹ážŸáŸ„ទិន្ននáŸáž™ ឬážáž˜áŸ’លៃផ្ទាល់ážáŸ’លួន + + + Multiple group elements + ពហុធាážáž»áž€áŸ’រុម + + + Null group uuid + គ្មានក្រុម uuid + + + Invalid group icon number + áž›áŸážážšáž¼áž”ážáŸ†ážŽáž¶áž„ក្រុមមិនážáŸ’រឹមážáŸ’រូវ + + + Invalid EnableAutoType value + ážáž˜áŸ’លៃបើកមុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž·áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Invalid EnableSearching value + ážáž˜áŸ’លៃបើកការស្វែងរកមិនážáŸ’រឹមážáŸ’រូវ + + + No group uuid found + រកមិនឃើញក្រុម uuid ទ០+ + + Null DeleteObject uuid + គ្មាន DeleteObject uuid + + + Missing DeletedObject uuid or time + UUID ឬពáŸáž›ážœáŸáž›áž¶ážŸáž˜áŸ’រាប់វážáŸ’ážáž»ážŠáŸ‚លបានលុបកំពុងបាážáŸ‹ + + + Null entry uuid + គ្មានការបញ្ចូីល uuid + + + Invalid entry icon number + áž›áŸážážšáž¼áž”ទិន្ននáŸáž™áž”ញ្ចូលមិនážáŸ’រឹមážáŸ’រូវ + + + History element in history entry + áž’áž¶ážáž»â€‹ážšáž”ស់ប្រវážáŸ’ážáž·ážŸáž¶ážŸáŸ’ážáŸ’រ​ក្នុង​ការ​បញ្ចូល​ប្រវážáŸ’ážáž· + + + No entry uuid found + រកមិនឃើញទិន្ននáŸáž™áž”ញ្ចូលរបស់ uuid + + + History element with different uuid + áž’áž¶ážáž»ážšáž”ស់ប្រវážáŸ’ážáž·áž‡áž¶áž˜áž½áž™ uuid ផ្សáŸáž„គ្នា + + + Duplicate custom attribute found + បានរកឃើញលក្ážážŽáŸˆáž•្ទាល់ážáŸ’លួនស្ទួន + + + Entry string key or value missing + សោជួរអក្សរនៃការបញ្ចូល ឬážáž˜áŸ’លៃដែលកំពុងបាážáŸ‹ + + + Entry binary key or value missing + បញ្ចូល​សោគោល​ពីរ ឬ​ážáž˜áŸ’លៃ​ដែលកំពុងបាážáŸ‹ + + + Auto-type association window or sequence missing + កំពុងបាážáŸ‹áž˜áž»ážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž·áž—្ជាប់នឹងវីនដូ ឬលំដាប់ + + + Invalid bool value + ážáž˜áŸ’លៃ bool មិនážáŸ’រឹមážáŸ’រូវ + + + Invalid date time value + ážáž˜áŸ’លៃកាលបរិច្ឆáŸáž‘និងម៉ោងមិនážáŸ’រឹមážáŸ’រូវ + + + Invalid color value + ážáž˜áŸ’លៃពណ៌មិនážáŸ’រឹមážáŸ’រូវ + + + Invalid color rgb part + ផ្នែកពណ៌ rgb មិនážáŸ’រឹមážáŸ’រូវ + + + Invalid number value + ážáž˜áŸ’លៃលáŸážáž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Invalid uuid value + ážáž˜áŸ’លៃ uuid មិនážáŸ’រឹមážáŸ’រូវ + + + Unable to decompress binary + Translator meant is a binary data inside an entry + មិន​អាច​បង្រួម​ប្រពáŸáž“្ធ​គោលពីរ​បាន​ទ០+ + + + KeeAgentSettings + + Invalid KeeAgent settings file structure. + រចនាសម្ពáŸáž“្ធឯកសារការនៃការកំណážáŸ‹ KeeAgent មិនážáŸ’រឹមážáŸ’រូវ។ + + + Private key is an attachment but no attachments provided. + សោឯកជនគឺជាឯកសារភ្ជាប់មួយ ប៉ុន្ážáŸ‚មិនមានផ្ážáž›áŸ‹áž‡áž¼áž“ឯកសារភ្ជាប់ណាមួយទáŸáŸ” + + + Private key is empty + សោឯកជនគឺទទ០+ + + File too large to be a private key + ឯកសារធំពáŸáž€ážŠáž¾áž˜áŸ’បីធ្វើជាសោឯកជន + + + Failed to open private key + បានបរាជáŸáž™áž€áŸ’នុងការបើកសោឯកជន + + + + KeePass1Reader + + Unable to read keyfile. + មិនអាចអានឯកសារសំážáž¶áž“់ៗបានទ០+ + + Not a KeePass database. + មិនមែនជាឃ្លំាងទិន្ននáŸáž™ KeePass áž‘áŸáŸ” + + + Unsupported encryption algorithm. + វិធីដោះស្រាយការអ៊ិនគ្រីបមិនគាំទ្រ។ + + + Unsupported KeePass database version. + កំណែទិន្ននáŸáž™ KeePass ដែលមិនគាំទ្រ។ + + + Unable to read encryption IV + IV = Initialization Vector for symmetric cipher + មិនអាចអាន អ៊ិនគ្រីប IVបានទ០+ + + Invalid number of groups + ចំនួនក្រុមមិនážáŸ’រឹមážáŸ’រូវ + + + Invalid number of entries + ចំនួនទិន្ននáŸáž™áž”ញ្ចូល​មិន​ážáŸ’រឹមážáŸ’រូវ + + + Invalid content hash size + ទំហំហាសមិនážáŸ’រឹមážáŸ’រូវ + + + Invalid transform seed size + ទំហំážáž˜áŸ’លៃដើមនៃការបំប្លែងមិនážáŸ’រឹមážáŸ’រូវ + + + Invalid number of transform rounds + ចំនួន​ជុំ​បំប្លែង​មិន​ážáŸ’រឹមážáŸ’រូវ + + + Unable to construct group tree + មិនអាចបង្កើážáž˜áŸážƒáž’ាងក្រុមបានទ០+ + + Root + ឬសគល់ + + + Unable to calculate database key + មិនអាចគណនាសោមូលដ្ឋានទិន្ននáŸáž™áž”ានទ០+ + + unable to seek to content position + មិនអាចស្វែងរកទីážáž¶áŸ†áž„មាážáž·áž€áž¶áž”ានទ០+ + + Invalid credentials were provided, please try again. +If this reoccurs, then your database file may be corrupt. + បានផ្ážáž›áŸ‹áž˜áž€áž–áŸážáŸŒáž˜áž¶áž“ផ្ទៀងផ្ទាážáŸ‹áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ សូមព្យាយាមម្ážáž„ទៀážáŸ”ប្រសិនបើបញ្ហានáŸáŸ‡áž€áž¾ážáž¡áž¾áž„ម្ážáž„ទៀហនោះឯកសារមូលដ្ឋានទិន្ននáŸáž™ážšáž”ស់អ្នកអាចនឹងážáŸ’រូវážáž¼áž…។ + + + Key transformation failed + ការបំប្លែងសោមិនបានសម្រáŸáž… + + + Invalid group field type number + áž›áŸážáž”្រភáŸáž‘កន្លែងបញ្ចូលមិនážáŸ’រឹមážáŸ’រូវ + + + Invalid group field size + ទំហំកន្លែងបញ្ចូលក្រុមមិនážáŸ’រឹមážáŸ’រូវ + + + Read group field data doesn't match size + អានទិន្ននáŸáž™ážŠáŸ‚លបានបញ្ចូលក្នុងកន្លែងបញ្ចូលក្រុមមានទំហំមិនážáŸ’រូវគ្នា + + + Incorrect group id field size + ទំហំកន្លែងបញ្ចូលលáŸážážŸáž˜áŸ’គាល់ក្រុមមិនážáŸ’រឹមážáŸ’រូវ + + + Incorrect group creation time field size + ទំហំកន្លែងបញ្ចូលពáŸáž›ážœáŸáž›áž¶áž“ៃការបង្កើážáž€áŸ’រុមមិនážáŸ’រឹមážáŸ’រូវ + + + Incorrect group modification time field size + ទំហំកន្លែងបញ្ចូលពáŸáž›ážœáŸáž›áž¶áž“ៃការកែប្រែក្រុមមិនážáŸ’រឹមážáŸ’រូវ + + + Incorrect group access time field size + ទំហំកន្លែងបញ្ចូលពáŸáž›ážœáŸáž›áž¶áž“ៃការចូលប្រើក្រុមមិនážáŸ’រឹមážáŸ’រូវ + + + Incorrect group expiry time field size + ទំហំកន្លែងបញ្ចូលពáŸáž›ážœáŸáž›áž¶áž•áž»ážáž€áŸ†ážŽážáŸ‹áž€áŸ’រុមមិនážáŸ’រឹមážáŸ’រូវ + + + Incorrect group icon field size + ទំហំកន្លែងបញ្ចូលរូប​ក្រុមមិនážáŸ’រឹមážáŸ’រូវ + + + Incorrect group level field size + ទំហំកន្លែងបញ្ចូលនៃកម្រិážáž€áŸ’រុមមិនážáŸ’រឹមážáŸ’រូវ + + + Invalid group field type + ប្រភáŸáž‘កន្លែងបញ្ចូលក្រុមមិនážáŸ’រឹមážáŸ’រូវ + + + Missing group id or level + កំពុងបាážáŸ‹áž›áŸážážŸáž˜áŸ’គាល់ ឬកម្រិážážšáž”ស់ក្រុម + + + Missing entry field type number + កំពុងបាážáŸ‹áž›áŸážáž“ៃកន្លែងបញ្ចូលទិន្ននáŸáž™ + + + Invalid entry field size + ទំហំកន្លែងបញ្ចូលនៃទិន្ននáŸáž™áž”ញ្ចូលមិនážáŸ’រឹមážáŸ’រូវ + + + Read entry field data doesn't match size + អានទិន្ននáŸáž™ážŠáŸ‚លបានបញ្ចូលក្នុងកន្លែងបញ្ចូលទិន្ននáŸáž™áž˜áž¶áž“ទំហំមិនážáŸ’រូវគ្នា + + + Invalid entry UUID field size + ទំហំកន្លែងបញ្ចូល UUID នៃទិន្ននáŸáž™áž”ញ្ចូលមិនážáŸ’រឹមážáŸ’រូវ + + + Invalid entry group id field size + ទំហំកន្លែងបញ្ចូលលáŸážážŸáž˜áŸ’គាល់ក្រុមនៃទិន្ននáŸáž™áž”ញ្ចូលមិនážáŸ’រឹមážáŸ’រូវ + + + Invalid entry icon field size + ទំហំកន្លែងបញ្ចូលលáŸážážšáž¼áž”ទិន្ននáŸáž™áž”ញ្ចូលមិនážáŸ’រឹមážáŸ’រូវ + + + Invalid entry creation time field size + ទំហំកន្លែងបញ្ចូលពáŸáž›ážœáŸáž›áž¶áž“ៃការបង្កើážáž‘ិន្ននáŸáž™áž”ញ្ចូលមិនážáŸ’រឹមážáŸ’រូវ + + + Invalid entry modification time field size + ទំហំកន្លែងបញ្ចូលពáŸáž›ážœáŸáž›áž¶áž€áŸ‚ប្រែទិន្ននáŸáž™áž”ញ្ចូលមិនážáŸ’រឹមážáŸ’រូវ + + + Invalid entry expiry time field size + ទំហំកន្លែងបញ្ចូលពáŸáž›ážœáŸáž›áž¶áž•áž»ážáž€áŸ†ážŽážáŸ‹áž“ៃទិន្ននáŸáž™áž”ញ្ចូលមិនážáŸ’រឹមážáŸ’រូវ + + + Invalid entry field type + ប្រភáŸáž‘ទំហំកន្លែងបញ្ចូលនៃទិន្ននáŸáž™áž”ញ្ចូលមិនážáŸ’រឹមážáŸ’រូវ + + + + KeeShare + + Invalid sharing reference + ឯកសារយោងចែករំលែកមិនážáŸ’រឹមážáŸ’រូវ + + + Inactive share %1 + ការចែករំលែកអសកម្ម % 1 + + + Imported from %1 + បាននាំចូលពី% 1 + + + Exported to %1 + បាននាំចáŸáž‰áž‘ៅ %1 + + + Synchronized with %1 + បានធ្វើសមកាលកម្មជាមួយ %1 + + + Import is disabled in settings + បានបិទការនាំចូលនៅក្នុងការកំណážáŸ‹ + + + Export is disabled in settings + ការនាំចáŸáž‰ážáŸ’រូវបានបិទដំណើរការនៅក្នុងការកំណážáŸ‹ + + + Inactive share + ចែករំលែកអសកម្ម + + + Imported from + បាននាំចូលពី + + + Exported to + បាននាំចáŸáž‰áž‘ៅ + + + Synchronized with + បានធ្វើសមកាលកម្មជាមួយ + + + + KeyComponentWidget + + Key Component + សមាសធាážáž»ážŸáŸ†ážáž¶áž“់ + + + Key Component Description + ការពណ៌នាអំពីសមាសធាážáž»ážŸáŸ†ážáž¶áž“់ៗ + + + Cancel + បញ្ឈប់ + + + Key Component set, click to change or remove + សំណុំសមាសភាគសោ ដោយចុចដើម្បីផ្លាស់ប្ážáž¼ážš ឬលុបចáŸáž‰ + + + + KeyFileEditWidget + + Generate a new key file + បង្កើážáž¯áž€ážŸáž¶ážšážŸáŸ„ážáŸ’មី + + + Generate + បង្កើហ+ + + Generate a new key file or choose an existing one to protect your database. + បង្កើážáž¯áž€ážŸáž¶ážšážŸáŸ„ážáŸ’មី ឬជ្រើសរើសឯកសារសោដែលមានស្រាប់ដើម្បីការពារមូលដ្ឋានទិន្ននáŸáž™ážšáž”ស់អ្នក។ + + + Note: Do NOT use a file that may change as that will prevent you from unlocking your database. + ចំណាំ៖ កុំប្រើឯកសារដែលអាចផ្លាស់ប្ážáž¼ážšáž–្រោះវានឹងរារាំងអ្នកពីការដោះសោឃ្លំាងទិន្ននáŸáž™ážšáž”ស់អ្នក។ + + + Browse for key file + រកមើលកូដឯកសារ + + + Browse… + រុករក… + + + Old key file format + ទម្រង់​ឯកសារសោចាស់ + + + You selected a key file in an old format which KeePassXC<br>may stop supporting in the future.<br><br>Please consider generating a new key file instead. + អ្នកបានជ្រើសរើសឯកសារសោក្នុងទម្រង់ចាស់ដែល KeePassXC<br>អាចបញ្ឈប់ការប្រើប្រាស់ជាមួយនៅពáŸáž›áž¢áž“áž¶áž‚ážáŸ”<br><br>សូមពិចារណាទៅលើការបង្កើážáž¯áž€ážŸáž¶ážšážŸáŸ„ážáŸ’មីមួយជំនួសវិញ។ + + + Error loading the key file '%1' +Message: %2 + បញ្ហាក្នុងការផ្ទុកសោឯកសារ '%1' +សារ៖ %2 + + + Key File + ឯកសារសោ + + + Add Key File + បន្ážáŸ‚មសោឯកសារ + + + Change Key File + ផ្លាស់ប្ដូរឯកសារសោ + + + Remove Key File + ដកឯកសារសោចáŸáž‰ + + + Key File set, click to change or remove + សំណុំឯកសារសោដោយចុចកែប្រែ ឬដកចáŸáž‰ + + + <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out.</p> + <p>អ្នកអាចបន្ážáŸ‚មឯកសារគន្លឹះដែលមានបៃចៃដន្យសម្រាប់សុវážáŸ’ážáž·áž—ាពបន្ážáŸ‚ម។</p><p>អ្នកážáŸ’រូវážáŸ‚រក្សាវាជាការសម្ងាážáŸ‹ ហើយកុំបាážáŸ‹áž”ង់វា បើមិនដូច្នោះទ០អ្នកនឹងជាប់សោ។</p> + + + Key files + ឯកសារសោ + + + All files + ឯកសារ​ទាំងអស់ + + + Create Key File… + បង្កើážáž¯áž€ážŸáž¶ážšážŸáŸ†ážáž¶áž“់… + + + Error creating key file + បញ្ហាក្នុងការបង្កើážáž¯áž€ážŸáž¶ážšážŸáŸ„ + + + Unable to create key file: %1 + មិនអាចបង្កើážážŸáŸ„ឯកសារ %1 + + + Select a key file + ជ្រើសរើសឯកសារសំážáž¶áž“់ៗ + + + Invalid Key File + ឯកសារសោមិនážáŸ’រឹមážáŸ’រូវ + + + You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. + អ្នកមិនអាចប្រើប្រាស់មូលដ្ឋានទិន្ននáŸáž™áž”ច្ចុប្បន្ននáŸáŸ‡áž‡áž¶áž¯áž€ážŸáž¶ážšážŸáŸ„ផ្ទាល់ážáŸ’លួនរបស់វាបានទáŸáŸ” សូមជ្រើសរើសឯកសារផ្សáŸáž„ ឬបង្កើážáž¯áž€ážŸáž¶ážšážŸáŸ„ážáŸ’មីមួយ។ + + + Suspicious Key File + ឯកសារសោដែលគួរឱ្យសង្សáŸáž™áŸ” + + + The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. +Are you sure you want to continue with this file? + ឯកសារសោរដែលបានជ្រើសរើសមើលទៅហាក់ដូចជាឯកសារមូលដ្ឋានទិន្ននáŸáž™áž–ាក្យសម្ងាážáŸ‹áŸ” ឯកសារសោážáŸ’រូវážáŸ‚ជាឯកសារស្ážáž¶áž‘ិចដែលមិនមានការផ្លាស់ប្ážáž¼ážš ឬអ្នកនឹងបាážáŸ‹áž”ង់សិទ្ធិចូលប្រើប្រាស់មូលដ្ឋានទិន្ននáŸáž™ážšáž”ស់អ្នកជារៀងរហូážáŸ” +ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់បន្ážáž‡áŸ’រើសរើសយកឯកសារនáŸáŸ‡áž¬? + + + + MacUtils + + Invalid key code + កូដសោមិនážáŸ’រឹមážáŸ’រូវ + + + Global shortcut already registered to %1 + ផ្លូវកាážáŸ‹áž‘ូទៅបានចុះឈ្មោះរួចហើយទៅកាន់ % 1 + + + Could not register global shortcut + មិនអាចចុះឈ្មោះផ្លូវកាážáŸ‹áž‘ូទៅបានទ០+ + + + MainWindow + + &Database + &ឃ្លាំងទិន្ននáŸáž™ + + + &Recent Databases + &ឃ្លំាងទិន្ននáŸáž™ážáŸ’មីៗ + + + &Export + &នំាចáŸáž‰ + + + &Help + &ជំនួយ + + + &Entries + &ការបញ្ចូលនានា + + + Copy Att&ribute + ចម្លងលក្ážážŽáŸˆ + + + TOTP + TOTP + + + Tags + ស្លាក + + + &Groups + &កែក្រុមនានា + + + &Tools + &ឧបករណáŸáž“ានា + + + View + មើល + + + Theme + រូបរាង + + + &Quit + &ចាកចáŸáž‰ + + + &About + &អំពី + + + &Check for Updates + &ពិនិážáŸ’យមើលការធ្វើបច្ចុប្បន្នភាព + + + &Open Database… + &បើកឃ្លំាងទិន្ននáŸáž™â€¦ + + + &Save Database + &រក្សាទុកឃ្លំាងទិន្ននáŸáž™ + + + &Close Database + &បិទឃ្លាំងទិន្ននáŸáž™ + + + &New Database… + &ឃ្លំាងទិន្ននáŸáž™ážáŸ’មី… + + + &Merge From Database… + &បញ្ចូល​ពី​មូលដ្ឋាន​ទិន្ននáŸáž™â€¦ + + + &New Entry… + &ការបញ្ចូលážáŸ’មី… + + + &Edit Entry… + &កែការបញ្ចូល… + + + &Delete Entry… + &លុបការបញ្ចូល… + + + &New Group… + &ក្រុមážáŸ’មី… + + + &Edit Group… + &កែក្រុម… + + + &Delete Group… + &លុប​ក្រុម… + + + Download All &Favicons… + ទាញយកទាំងអស់ និង Favicon… + + + Sort &A-Z + ážáž˜áŸ’រៀប &A-Z + + + Sort &Z-A + ážáž˜áŸ’រៀប &Z-A + + + Sa&ve Database As… + រក្សាទិន្ននáŸáž™áž‘ុកជាប្រភáŸáž‘… + + + Database &Security… + មូលដ្ឋានទិន្ននáŸáž™ និងសុវážáŸ’ážáž·áž—ាព… + + + Database &Reports… + មូលដ្ឋានទិន្ននáŸáž™ និងរបាយការណáŸâ€¦ + + + &Database Settings… + &ការកំណážáŸ‹ážƒáŸ’លាំងទិន្ននáŸáž™â€¦ + + + &Clone Entry… + &ការបញ្ចូលក្លូន… + + + Move u&p + ផ្លាស់ទី​ឡើង​លើ + + + Move do&wn + ផ្លាស់ទីទៅក្រោម + + + Copy &Username + ចម្លង &ឈ្មោះអ្នកប្រើ + + + Copy &Password + ចម្លង &ពាក្យសម្ងាážáŸ‹ + + + &Settings + &ការកំណážáŸ‹ + + + &Password Generator + &ម៉ាស៊ីនបង្កើážáž–ាក្យសម្ងាážáŸ‹ + + + Perform &Auto-Type + ប្រážáž·áž”ážáŸ’ážáž·áž€áž¶ážš &មុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž· + + + Download &Favicon + ទាញយក និង Favicon + + + Open &URL + បើកនិង URL + + + &Lock Database + &ចាក់សោឃ្លំាងទិន្ននáŸáž™ + + + Lock &All Databases + ចាក់សោ & មូលដ្ឋានទិន្ននáŸáž™áž‘ាំងអស់ + + + &Title + &ចំណងជើង + + + Copy &URL + ចម្លង &URL + + + &Notes + &កំណážáŸ‹áž…ំណាំ + + + &CSV File… + ឯកសារ &CSV… + + + &HTML File… + &កែឯកសារ HTML… + + + KeePass 1 Database… + មូលដ្ឋានទិន្ននáŸáž™ KeePass 1… + + + 1Password Vault… + 1ážáŸ†áž”ន់សុវážáŸ’ážáž·áž—ាពពាក្យសម្ងាážáŸ‹â€¦ + + + CSV File… + ឯកសារ CSV… + + + Show TOTP + បង្ហាញ TOTP + + + Show QR Code + បង្ហាញ​កូដ QR + + + Set up TOTP… + ដំឡើង TOTP… + + + Copy &TOTP + ចម្លង &TOTP + + + Copy Password and TOTP + ចម្លងពាក្យសម្ងាážáŸ‹ និង TOTP + + + E&mpty recycle bin + ធុងសំរាមទទ០+ + + &Donate + &បរិច្ចាគ + + + Report a &Bug + រាយការណ០&មáŸážšáŸ„áž‚ + + + &Getting Started + &ការចាប់ផ្ážáž¾áž˜ + + + Open Getting Started Guide + បើកការណែនាំអំពីការចាប់ផ្ážáž¾áž˜ + + + &Online Help + ជំនួយážáž¶áž˜&អ៊ីនធឺណិហ+ + + &User Guide + &មគ្គុទáŸážŸáž“áŸáž¢áŸ’នកប្រើ + + + Open User Guide + បើកការណែនាំសម្រាប់អ្នកប្រើ + + + &Keyboard Shortcuts + &ផ្លូវកាážáŸ‹áž“ៃក្ដារចុច + + + Save Database Backup… + រក្សាទិន្ននáŸáž™áž‘ុកបម្រុង + + + Add key to SSH Agent + បន្ážáŸ‚មសោទៅកាន់ភ្នាក់ងារ SSH + + + Remove key from SSH Agent + ដកសោពីភ្នាក់ងារ SSH áž…áŸáž‰ + + + Compact Mode + មុážáž„ារបង្រួម + + + Automatic + ស្វáŸáž™áž”្រវážáŸ’ážáž· + + + Light + ភ្លឺ + + + Dark + ងងឹហ+ + + Classic (Platform-native) + ក្លាស៊ិក (ប្រពáŸáž“្ធដើម) + + + Show Toolbar + បង្ហាញរបាឧបករណ០+ + + Show Preview Panel + បង្ហាញផ្ទាំងមើលជាមុន + + + Always on Top + នៅážáž¶áž„លើបំផុážáž‡áž¶áž“ិច្ច + + + Hide Usernames + លាក់ឈ្មោះអ្នកប្រើ + + + Hide Passwords + លាក់ពាក្យសម្ងាážáŸ‹ + + + Clone Group... + ក្រុមក្លូន... + + + &XML File… + ឯកសារ &XML… + + + Clear history + ជម្រះប្រវážáŸ’ážáž· + + + Access error for config file %1 + កំហុសពáŸáž›áž…ូលប្រើ ដោយសារឯកសារប្រមូលបាន ១% + + + Don't show again for this version + កុំបង្ហាញកំណែនáŸáŸ‡áž˜áŸ’ážáž„ទៀហ+ + + WARNING: You are using an unstable build of KeePassXC. +There is a high risk of corruption, maintain a backup of your databases. +This version is not meant for production use. + ការព្រមាន៖ អ្នកកំពុងប្រើប្រាស់កំណែបង្កើហKeePassXC ដែលមិនážáž·ážšáž—ាព។ +មានហានិភáŸáž™ážáŸ’ពស់ទៅលើការážáž¼áž… រក្សាការបម្រុងទុកនៃមូលដ្ឋានទិន្ននáŸáž™ážšáž”ស់អ្នក។ +កំណែនáŸáŸ‡áž˜áž·áž“មែនសម្រាប់គោលបំណងការប្រើប្រាស់ផ្នែកផលិážáž€áž˜áŸ’មទáŸáŸ” + + + NOTE: You are using a pre-release version of KeePassXC. +Expect some bugs and minor issues, this version is meant for testing purposes. + ចំណាំ៖ អ្នកកំពុងប្រើប្រាស់កំណែមុនចáŸáž‰áž•្សាយរបស់កម្មវិធី KeePassXC។ +កំហុស និងបញ្ហាážáž¼áž…ážáž¶áž…មួយចំនួននឹងអាចកើážáž˜áž¶áž“ឡើង ដោយសារកំណែនáŸáŸ‡áž˜áž¶áž“គោលបំណងសម្រាប់ការធ្វើážáŸážŸáŸ’ážážáŸ‚ប៉ុណ្ណោះ។ + + + WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard. +We recommend you use the AppImage available on our downloads page. + ការព្រមាន៖ កំណែ Qt របស់អ្នកអាចបណ្ážáž¶áž›áž±áŸ’áž™ KeePassXC គាំងជាមួយនឹងក្ážáž¶ážšáž…ុចលើអáŸáž€áŸ’រង់។ +យើងសូមណែនាំអ្នកឱ្យប្រើប្រាស់ AppImage áž“áŸáŸ‡ážŠáŸ‚លអាចប្រើប្រាស់បាននៅលើទំពáŸážšáž‘ាញយករបស់យើង។ + + + No Tags + គ្មានស្លាក + + + Restore Entry(s) + ស្ážáž¶ážšáž‘ិន្ននáŸáž™áž’áž¶ážáž»áž…ូលឡើងវិញ + + + Settings + ការកំណážáŸ‹ + + + Check for updates on startup? + ពិនិážáŸ’យរកមើលការធ្វើបច្ចុប្បន្នភាពនានានៅពáŸáž›áž…ាប់ផ្ážáž¾áž˜? + + + Would you like KeePassXC to check for updates on startup? + ážáž¾áž¢áŸ’នកចង់ឱ្យ KeePassXC ពិនិážáŸ’យមើលការធ្វើបច្ចុប្បន្ននៅពáŸáž›áž…ាប់ផ្ážáž¾áž˜áž¬áž‘áŸ? + + + You can always check for updates manually from the application menu. + អ្នកអាចពិនិážáŸ’យមើលបច្ចុប្បន្នភាពដោយដៃពីម៉ឺនុយកម្មវិធីបានជានិច្ច។ + + + Toggle window + បិទ/បើកវីនដូ + + + Quit KeePassXC + ចាកចáŸáž‰áž–ី KeePassXC + + + %1 Entry(s) + %1 ទិន្ននáŸáž™áž”ញ្ចូល + + + Please present or touch your YubiKey to continue… + សូមបង្ហាញ ឬចុច YubiKey របស់អ្នកដើម្បីបន្ážâ€¦ + + + Restart Application? + ចាប់ផ្ážáž¾áž˜áž€áž˜áŸ’មវិធីឡើងវិញ + + + You must restart the application to apply this setting. Would you like to restart now? + អ្នកážáŸ’រូវážáŸ‚ចាប់ផ្ážáž¾áž˜áž€áž˜áŸ’មវិធីឡើងវិញ ដើម្បីដាក់ប្រើការកំណážáŸ‹áž“áŸáŸ‡áŸ” ážáž¾áž¢áŸ’នកចង់ចាប់ផ្ážáž¾áž˜áž¡áž¾áž„វិញឥឡូវនáŸáŸ‡áž¬áž‘áŸ? + + + Allow Screen Capture + អនុញ្ញាážáž±áŸ’áž™ážážáž¢áŸáž€áŸ’រង់ + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + + + + Import Passkey + + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + កែទិន្ននáŸáž™áž”ញ្ចូល + + + Delete Entry + + + + Create Group + + + + Edit Group + កែក្រុម + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + ចម្លងឈ្មោះអ្នកប្រើ + + + Copy Password + ចម្លងពាក្យសម្ងាážáŸ‹ + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + នាំចូលមូលដ្ឋានទិន្ននáŸáž™ KeePass1 + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + + + + ManageDatabase + + Database settings + ការកំណážáŸ‹ážƒáŸ’លាំងទិន្ននáŸáž™ + + + Edit database settings + កែការកំណážáŸ‹ážšáž”ស់ឃ្លំាងទិន្ននáŸáž™ + + + Unlock database + ដោះសោទិន្ននáŸáž™ + + + Unlock database to show more information + ដោះសោទិន្ននáŸáž™ážŠáž¾áž˜áŸ’បីបង្ហាញពáŸážáž˜áŸŒáž¶áž“បន្ážáŸ‚ម + + + Lock database + ចាក់សោមូលដ្ឋានទិន្ននáŸáž™ + + + + ManageSession + + Disconnect + ផ្ដាច់ + + + Disconnect this application + ផ្ážáž¶áž…់កម្មវិធីនáŸáŸ‡ + + + Reset + កំណážáŸ‹áž¡áž¾áž„វិញ + + + Reset any remembered decisions for this application + ការកំណážáŸ‹áž¡áž¾áž„វិញនូវការសម្រáŸáž…áž…áž·ážáŸ’ážážŠáŸ‚លចងចាំសម្រាប់កម្មវិធីនáŸáŸ‡ + + + + Merger + + Creating missing %1 [%2] + កំពុង​បង្កើážâ€‹ % 1 [%2] ដែលបាážáŸ‹ + + + Relocating %1 [%2] + កំពុងកំណážáŸ‹áž‘ីážáž¶áŸ†áž„ឡើងវិញ %1 [%2] + + + Overwriting %1 [%2] + កំពុងសរសáŸážšáž‡áž¶áž“់លើ %1 [%2] + + + Synchronizing from newer source %1 [%2] + កំពុងធ្វើសមកាលកម្មពីប្រភពážáŸ’មីជាង % 1 [% 2] + + + Synchronizing from older source %1 [%2] + កំពុងធ្វើសមកាលកម្មពីប្រភពចាស់ជាង % 1 [% 2] + + + Deleting child %1 [%2] + កំពុងលុបកុមារ% 1 [%2] + + + Deleting orphan %1 [%2] + កំពុងលុបក្មáŸáž„កំព្រា %1 [%2] + + + Changed deleted objects + បានផ្លាស់ប្ážáž¼ážšážœážáŸ’ážáž»ážŠáŸ‚លបានលុបហើយ + + + Adding missing icon %1 + កំពុងបន្ážáŸ‚មរូបដែលកំពុងបាážáŸ‹ % 1 + + + Removed custom data %1 [%2] + បានដកចáŸáž‰áž‘ិន្ននáŸáž™áž•្ទាល់ážáŸ’លួន %1 [%2] + + + Adding custom data %1 [%2] + កំពុងបន្ážáŸ‚មទិន្ននáŸáž™áž•្ទាល់ážáŸ’លួន % 1 [% 2] + + + + NewDatabaseWizard + + Create a new KeePassXC database… + បង្កើážážƒáŸ’លាំងទិន្ននáŸáž™ KeePassXC ážáŸ’មី… + + + Root + Root group + ឬសគល់ + + + + NewDatabaseWizardPage + + WizardPage + ទំពáŸážšáž¢áŸ’នកជំនួយ + + + Encryption Settings + ការកំណážáŸ‹áž€áž¶ážšáž”ំប្លែងជាកូដ + + + Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. + នៅទីនáŸáŸ‡áž¢áŸ’នកអាចកែážáž˜áŸ’រូវការកំណážáŸ‹áž€áž¶ážšáž¢áŸŠáž·áž“គ្រីបមូលដ្ឋានទិន្ននáŸáž™áŸ” សូមកុំបារម្ភ អ្នកអាចកែប្រែរវាបាននៅពáŸáž›áž€áŸ’រោយក្នុងការកំណážáŸ‹áž˜áž¼áž›ážŠáŸ’ឋានទិន្ននáŸáž™áž“áŸáŸ‡áŸ” + + + + NewDatabaseWizardPageDatabaseKey + + Database Credentials + áž–áŸážáŸŒáž˜áž¶áž“ផ្ទៀងផ្ទាážáŸ‹áž‘ិន្ននáŸáž™áž˜áž¼áž›ážŠáŸ’ឋាន + + + A set of credentials known only to you that protects your database. + បណ្ដុំពáŸážáŸŒáž˜áž¶áž“ផ្ទៀងផ្ទាážáŸ‹ážŠáŸ‚លស្គាល់បានសម្រាប់ážáŸ‚អ្នកប៉ុណ្ណោះដែលការពារមូលដ្ឋានទិន្ននáŸáž™ážšáž”ស់អ្នក។ + + + + NewDatabaseWizardPageEncryption + + Encryption Settings + ការកំណážáŸ‹áž€áž¶ážšáž”ំប្លែងជាកូដ + + + Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. + នៅទីនáŸáŸ‡áž¢áŸ’នកអាចកែážáž˜áŸ’រូវការកំណážáŸ‹áž€áž¶ážšáž¢áŸŠáž·áž“គ្រីបមូលដ្ឋានទិន្ននáŸáž™áŸ” សូមកុំបារម្ភ អ្នកអាចកែប្រែរវាបាននៅពáŸáž›áž€áŸ’រោយក្នុងការកំណážáŸ‹áž˜áž¼áž›ážŠáŸ’ឋានទិន្ននáŸáž™áž“áŸáŸ‡áŸ” + + + + NewDatabaseWizardPageMetaData + + General Database Information + áž–áŸážáŸŒáž˜áž¶áž“មូលដ្ឋានទិន្ននáŸáž™áž‘ូទៅ + + + Please fill in the display name and an optional description for your new database: + សូមបំពáŸáž‰ážˆáŸ’មោះដែលបង្ហាញនáŸáŸ‡áž“ិងការពណ៌នាជាជម្រើសសម្រាប់មូលដ្ឋានទិន្ននáŸáž™ážáŸ’មីរបស់អ្នក៖ + + + + NixUtils + + Password Manager + អ្នកគ្រប់គ្រងពាក្យសម្ងាážáŸ‹ + + + Global shortcut already registered to %1 + ផ្លូវកាážáŸ‹áž‘ូទៅបានចុះឈ្មោះរួចហើយទៅកាន់ % 1 + + + Could not register global shortcut + មិនអាចចុះឈ្មោះផ្លូវកាážáŸ‹áž‘ូទៅបានទ០+ + + + OpData01 + + Invalid OpData01, does not contain header + OpData01 មិនážáŸ’រឹមážáŸ’រូវ ដោយសារមិនមានបឋមកážáž¶ + + + Unable to read all IV bytes, wanted 16 but got %1 + មិនអាចអាន IV 16 បៃបានពáŸáž‰áž›áŸáž‰áž‘ាំងអស់ ដោយសារទទួលបានážáŸ‚ %1 បៃ + + + Unable to init cipher for opdata01: %1 + មិនអាចបញ្ចូលកូដសម្ងាážáŸ‹ážŸáž˜áŸ’រាប់ opdata01 បានទáŸáŸ– %1 + + + Unable to read all HMAC signature bytes + មិនអាចអានបៃហážáŸ’ážáž›áŸážáž¶ HMAC ទាំងអស់បានទáŸáŸ” + + + Malformed OpData01 due to a failed HMAC + OpData01 ážáž¼áž…ទ្រង់ទ្រាយដោយសារលទ្ធផលនៃ HMAC មិនបានសម្រáŸáž… + + + Unable to process clearText in place + មិនអាចដំណើរការ អក្សរច្បាស់ៗ នៅនឹងកន្លែងបានទáŸáŸ” + + + Expected %1 bytes of clear-text, found %2 + បានរំពឹងážáž¶áž˜áž¶áž“ %1 បៃនៃអក្សរច្បាស់លាស់ ដែលបានរកឃើញ %2 + + + + OpVaultReader + + Directory .opvault must exist + ážáž .opvault ážáŸ’រូវážáŸ‚មានស្រាប់ + + + Directory .opvault must be readable + ážáž .opvault ážáŸ’រូវážáŸ‚អាចអានបាន + + + Directory .opvault/default must exist + ážáž .opvault/default ážáŸ’រូវážáŸ‚មានស្រាប់ + + + Directory .opvault/default must be readable + ážáž .opvault/default ážáŸ’រូវážáŸ‚អាចអានបាន + + + Unable to decode masterKey: %1 + មិនអាចដោះការបំប្លែងសោមáŸáŸ– %1 + + + Unable to derive master key: %1 + មិន​អាច​ទាញ​យក​សោ​មáŸáž”ានទáŸáŸ– %1 + + + + OpenSSHKey + + Invalid key file, expecting an OpenSSH key + ឯកសារសោមិនážáŸ’រឹមážáŸ’រូវ ដោយរំពឹងážáž¶áž“ឹងមានសោ OpenSSH + + + PEM boundary mismatch + ភាពមិនážáŸ’រូវគ្នានៃព្រំដែន PEM + + + Base64 decoding failed + ​ការ​បំប្លែង​កូដ Base64 មិនបានសម្រáŸáž… + + + Key file way too small. + ផ្លូវឯកសារសោážáž¼áž…áž–áŸáž€áŸ” + + + Key file magic header id invalid + áž›áŸážâ€‹ážŸáž˜áŸ’គាល់​បឋមកážáž¶â€‹ážœáŸáž‘មន្ážâ€‹áž¯áž€ážŸáž¶ážšâ€‹ážŸáŸ„​មិន​ážáŸ’រឹមážáŸ’រូវ + + + Found zero keys + បានរកឃើញážáž¶áž‚្មានសោ + + + Failed to read public key. + អានសោសាធារណៈមិនបានសម្រáŸáž…។ + + + Corrupted key file, reading private key failed + ឯកសារសោដែលážáž¼áž… នៅពáŸáž›ážŠáŸ‚លកំពុងអានសោឯកជនមិនបានសម្រáŸáž… + + + Unsupported key type: %1 + ការវាយសោដែលមិនគាំទ្រៈ%1 + + + No private key payload to decrypt + គ្មាន​ទិន្ននáŸáž™ážŠáŸ‚លផ្ទុក​សោឯកជន​ដើម្បី​ឌិគ្រីប​ទ០+ + + Unknown cipher: %1 + មិនស្គាល់លáŸážážŸáž˜áŸ’ងាážáŸ‹áŸˆ %1 + + + AES-256/GCM is currently not supported + បច្ចុប្បន្ននáŸáŸ‡ AES-256/GCM មិនប្រើប្រាស់បានទ០+ + + Passphrase is required to decrypt this key + ážáž˜áŸ’រូវឱ្យមានឃ្លាសម្ងាážáŸ‹ážŠáž¾áž˜áŸ’បីឌិគ្រីបសោនáŸáŸ‡áŸ” + + + Key derivation failed: %1 + ការទាញយកសោមិនបានសម្រáŸáž…៖ % 1 + + + Cipher IV is too short for MD5 kdf + Cipher IV គឺážáŸ’លីពáŸáž€ážŸáž˜áŸ’រាប់ MD5 kdf + + + Unknown KDF: %1 + មិនស្គាល់ KDF: %1 + + + Failed to initialize cipher: %1 + មិនបានសម្រáŸáž…ក្នុង​ការ​ចាប់ផ្ដើម cipher៖ %1 + + + Decryption failed: %1 + ការដោះការបំប្លែងកូដមិនបានសម្រáŸáž…៖ %1 + + + Decryption failed, wrong passphrase? + ការដោះការបំប្លែងកូដមិនបានសម្រáŸáž…ដោយសារážáž»ážŸážƒáŸ’លាសម្ងាážáŸ‹áž˜áŸ‚នទáŸ? + + + Unexpected EOF while reading key + EOF ដែលមិនបានរំពឹងទុកនៅពáŸáž›áž¢áž¶áž“សោ + + + Unsupported key part + ផ្នែកសោដែលមិនគាំទ្រ + + + Unexpected EOF while reading public key + EOFដែលមិនបានរំពឹងទុកនៅពáŸáž›áž¢áž¶áž“សោគន្លឹះជាសាធារណៈ + + + Unknown key type: %1 + ការវាយសោដែលមិនស្គាល់ៈ%1 + + + Unexpected EOF while reading private key + EOFដែលមិនបានរំពឹងទុកនៅពáŸáž›ážŸážšážŸáŸážšážŸáŸ„គន្លឹះ + + + Can't write public key as it is empty + មិនអាចសរសáŸážšážƒáž¸ážŸáž¶áž’ារណៈបានទ០ព្រោះវាទទ០+ + + Unexpected EOF when writing public key + EOFដែលមិនបានរំពឹងទុកនៅពáŸáž›ážŸážšážŸáŸážšážŸáŸ„គន្លឹះ + + + Can't write private key as it is empty + មិនអាចសរសáŸážšážƒáž¸áž¯áž€áž‡áž“បានទ០ព្រោះវាទទ០+ + + Unexpected EOF when writing private key + EOFដែលមិនបានរំពឹងទុកនៅពáŸáž›ážŸážšážŸáŸážšážŸáŸ„គន្លឹះ + + + + OpenSSHKeyGenDialog + + SSH Key Generator + + + + Type + វាយអក្សរ + + + Bits + + + + Comment + មážáž·áž™áŸ„បល់ + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + + + + Export the following Passkey entries. + + + + Filenames will be generated with title and .passkey file extension. + + + + Export entries + + + + Export Selected + + + + Cancel + បោះបង់ + + + Export to folder + + + + + PasskeyExporter + + KeePassXC: Passkey Export + + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + + Cannot open file + + + + Cannot open file "%1" for writing. + + + + Cannot write to file + + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + + + + Username: %1 + Username: %1 + + + Group + ក្រុម + + + Database + + + + Import Passkey + + + + Import + នាំចូល + + + Cancel + បោះបង់ + + + Import the following Passkey: + + + + Entry + ទិន្ននáŸáž™áž”ញ្ចូល + + + Import the following Passkey to this entry: + + + + Create new entry + + + + Default Passkeys group (Imported Passkeys) + + + + Relying Party: %1 + + + + + PasskeyImporter + + Passkey file + + + + All files + ឯកសារ​ទាំងអស់ + + + Open Passkey file + + + + Cannot open file + + + + Cannot open file "%1" for reading. + + + + Cannot import Passkey + + + + Cannot import Passkey file "%1". Data is missing. + + + + Cannot import Passkey file "%1". Private key is missing or malformed. + + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + + + + + PasswordEditWidget + + Enter password: + បញ្ចូលពាក្យសម្ងាážáŸ‹áŸ– + + + Password field + កន្លែង​បញ្ចូល​ពាក្យ​សម្ងាážáŸ‹ + + + Confirm password: + បញ្ជាក់ពាក្យសម្ងាážáŸ‹áŸ– + + + Repeat password field + បំពáŸáž‰áž–ាក្យសម្ងាážáŸ‹áž˜áŸ’ážáž„ទៀហ+ + + Password + ពាក្យសម្ងាážáŸ‹ + + + Add Password + បន្ážáŸ‚មពាក្យសម្ងាážáŸ‹ + + + Change Password + ប្ážáž¼ážšáž–ាក្យសម្ងាážáŸ‹ + + + Remove Password + លុបពាក្យសម្ងាážáŸ‹ + + + Password set, click to change or remove + កំណážáŸ‹áž–ាក្យសម្ងាážáŸ‹ ចុចដើម្បីផ្លាស់ប្ážáž¼ážš ឬលុប + + + <p>A password is the primary method for securing your database.</p><p>Good passwords are long and unique. KeePassXC can generate one for you.</p> + <p>ពាក្យសម្ងាážáŸ‹áž‚ឺជាវិធីសាស្ážáŸ’រចម្បងសម្រាប់ធានាមូលដ្ឋានទិន្ននáŸáž™ážšáž”ស់អ្នក។</p><p>ពាក្យសម្ងាážáŸ‹áž›áŸ’អគឺវែង និងមានážáŸ‚មួយគážáŸ‹áŸ” KeePassXC អាចបង្កើážáž˜áž½áž™ážŸáž˜áŸ’រាប់អ្នក។</p> + + + Passwords do not match. + ពាក្យសម្ងាážáŸ‹áž˜áž·áž“ážáŸ’រូវគ្នាទáŸáŸ” + + + + PasswordGeneratorWidget + + Generate Password + បង្កើážáž–ាក្យសម្ងាážáŸ‹ + + + strength + Password strength + កម្រឹážážáŸ’លាំង + + + entropy + ការវាស់វែងពាក្យសម្ងាážáŸ‹ + + + Generated password + ពាក្យសម្ងាážáŸ‹ážŠáŸ‚លបានបង្កើហ+ + + %p% + %p% + + + Regenerate password + បង្កើážáž–ាក្យសម្ងាážáŸ‹áž¡áž¾áž„វិញ + + + Copy password + ចម្លងពាក្យសម្ងាážáŸ‹ + + + Password + ពាក្យសម្ងាážáŸ‹ + + + &Length: + &ប្រវែង៖ + + + Password length + ប្រវែងពាក្យសម្ងាážáŸ‹ + + + Switch to advanced mode + ផ្លាស់ប្ážáž¼ážšáž‘ៅម៉ូដកម្រិážážáŸ’ពស់ + + + Advanced + កម្រិážážáŸ’ពស់ + + + Character Types + ប្រភáŸáž‘ážáž½áž¢áž€áŸ’សរ + + + Special characters + ážáž½áž¢áž€áŸ’សរពិសáŸážŸ + + + Quotes + សម្រង់ + + + Punctuation + វណ្ណយុážáŸ’ážáž· + + + Dashes and Slashes + សញ្ញាដាច់ៗ និងសញ្ញាទ្រáŸáž + + + Upper-case letters + អក្សរធំ + + + Numbers + ចំនួន + + + Lower-case letters + អក្សរážáž¼áž… + + + Math Symbols + និមិážáŸ’ážážŸáž‰áŸ’ញាគណិហ+ + + Extended ASCII + ASCII លម្អិážáž”ន្ážáŸ‚ម + + + Braces + សញ្ញាážáž„្កៀប + + + Do not include: + មិនរួមបញ្ចូល៖ + + + Additional characters to use for the generated password + ážáž½áž¢áž€áŸ’សរបន្ážáŸ‚មដើម្បីប្រើប្រាស់សម្រាប់ជាពាក្យសម្ងាážáŸ‹ážŠáŸ‚លបានបង្កើážáž¡áž¾áž„ + + + Additional characters + ážáž½áž¢áž€áŸ’សរបន្ážáŸ‚ម + + + Add non-hex letters to "do not include" list + បន្ážáŸ‚មអក្សរដែលមិនមែនជាចំនួនគោលដប់ប្រាំមួយទៅកាន់បញ្ជី "កុំរួមបញ្ចូល" + + + Hex Passwords + ពាក្យសម្ងាážáŸ‹áž…ំនួនគោលដប់ប្រាំមួយ + + + Hex + ចំនួនគោលដប់ប្រាំមួយ + + + Character set to exclude from generated password + សំណុំážáž½áž¢áž€áŸ’សរដើម្បីដកចáŸáž‰áž–ីពាក្យសម្ងាážáŸ‹ážŠáŸ‚លបានបង្កើហ+ + + Excluded characters + មិនរាប់បញ្ចូលážáž½áž¢áž€áŸ’សរ + + + Also choose from: + កáŸáž¢áž¶áž…ជ្រើសរើសពី៖ + + + Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" + មិនរាប់បញ្ចូលážáž½áž¢áž€áŸ’សរ៖ "0", "1", "l", "I", "O", "|", "ï¹’" + + + Exclude look-alike characters + មិនរាប់បញ្ចូលážáž½áž¢áž€áŸ’សរដែលមានលក្ážážŽáŸˆážŸáŸ’រដៀងគ្នា + + + Pick characters from every group + ជ្រើសរើសážáž½áž¢áž„្គពីគ្រប់ក្រុមទាំងអស់ + + + Passphrase + ឃ្លាសម្ងាážáŸ‹ + + + Word Separator: + សញ្ញា​បំបែកពាក្យ៖ + + + Wordlist: + បញ្ជី​ពាក្យ៖ + + + Word Count: + ចំនួនពាក្យ៖ + + + Character Count: + ចំនួនážáž½áž¢áž€áŸ’សរ៖ + + + Word Case: + ពាក្យអក្សរážáž¼áž…៖ + + + Delete selected wordlist + លុបបញ្ជីពាក្យដែលបានជ្រើសរើស + + + Add custom wordlist + បន្ážáŸ‚មបញ្ជីពាក្យផ្ទាល់ážáŸ’លួន + + + character + ážáž½áž¢áž€áŸ’សរ + + + Close + បិទ + + + Esc + áž‚áŸáž… + + + Apply Password + ដាក់ប្រើពាក្យសម្ងាážáŸ‹ + + + Regenerate password (%1) + បង្កើážáž–ាក្យសម្ងាážáŸ‹áž¡áž¾áž„វិញ (%1) + + + lower case + អក្សរ​ážáž¼áž… + + + UPPER CASE + អក្សរធំ + + + Title Case + ចំណងជើងអក្សរធំ + + + (SYSTEM) + (ប្រពáŸáž“្ធ) + + + Entropy: %1 bit + ការវាស់វែងពាក្យសម្ងាážáŸ‹áŸ– %1 ប៊ីហ+ + + Password Quality: %1 + គុណភាពពាក្យសម្ងាážáŸ‹áŸ– % 1 + + + Poor + Password quality + ážáŸ’សោយ + + + Weak + Password quality + ážáŸ’សោយ + + + Good + Password quality + ល្អ + + + Excellent + Password quality + ល្អឥážážáŸ’ចោះ + + + Confirm Delete Wordlist + បញ្ជាក់ការលុបបញ្ជីពាក្យ + + + Do you really want to delete the wordlist "%1"? + ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់លុបបញ្ជីពាក្យ "% 1" មែនដែរឬទáŸ? + + + Failed to delete wordlist + បានបរាជáŸáž™áž€áŸ’នុងការលុបបញ្ជីពាក្យ + + + Wordlists + បញ្ជីពាក្យ + + + All files + ឯកសារទាំងអស់ + + + Select Custom Wordlist + ជ្រើសរើសបញ្ជីពាក្យផ្ទាល់ážáŸ’លួន + + + Overwrite Wordlist? + សរសáŸážšáž‡áž¶áž“់លើបញ្ជីពាក្យឬ? + + + Wordlist "%1" already exists as a custom wordlist. +Do you want to overwrite it? + បញ្ជីពាក្យ "%1" មានស្រាប់ហើយជាបញ្ជីពាក្យពាក្យផ្ទាល់ážáŸ’លួន។ +ážáž¾áž¢áŸ’នកចង់សរសáŸážšáž‡áž¶áž“់លើបញ្ជីពាក្យនáŸáŸ‡áž¬? + + + Failed to add wordlist + បានបរាជáŸáž™áž€áŸ’នុងការបន្ážáŸ‚មបញ្ជីពាក្យ + + + Logograms + ឡូហ្គោក្រាម + + + Special Characters + ážáž½áž¢áž€áŸ’សរពិសáŸážŸ + + + + PasswordWidget + + Passwords do not match + ពាក្យសម្ងាážáŸ‹áž˜áž·áž“ážáŸ’រូវគ្នាទ០+ + + Passwords match so far + ពាក្យសម្ងាážáŸ‹ážáŸ’រូវគ្នារហូážáž˜áž€ážŠáž›áŸ‹áž–áŸáž›áž“áŸáŸ‡ + + + Toggle Password (%1) + បិទ/បើក​ពាក្យ​សម្ងាážáŸ‹ (%1) + + + Generate Password (%1) + បង្កើážâ€‹áž–ាក្យ​សម្ងាážáŸ‹ (% 1) + + + Warning: Caps Lock enabled! + ការព្រមាន៖ បានបើកអក្សរ​ធំ​ជាប់! + + + Quality: %1 + គុណភាព: %1 + + + Poor + Password quality + ážáŸ’សោយ + + + Weak + Password quality + ážáŸ’សោយ + + + Good + Password quality + ល្អ + + + Excellent + Password quality + ល្អឥážážáŸ’ចោះ + + + Toggle password visibility using Control + H. Open the password generator using Control + G. + + + + + PickcharsDialog + + KeePassXC - Pick Characters + KeePassXC - ជ្រើសរើសážáž½áž¢áž€áŸ’សរ + + + Select characters to type, navigate with arrow keys, Ctrl + S submits. + ជ្រើសរើសážáž½áž¢áž€áŸ’សរដែលážáŸ’រូវវាយបញ្ចូល រុករកដោយប្រើប្រាស់គ្រាប់ចុចសញ្ញាព្រួញ, (Ctrl) + S ដាក់បញ្ជូន។ + + + Press &Tab between characters + ចុច &ážáŸáž”រវាងážáž½áž¢áž€áŸ’សរ + + + + QMessageBox + + Overwrite + សរសáŸážšáž‡áž¶áž“់លើ + + + Delete + លុប + + + Move + ផ្លាស់ទី + + + Empty + ទទ០+ + + Remove + ដកចáŸáž‰ + + + Skip + រំលង + + + Disable + បិទដំណើរការ + + + Merge + ដាក់បញ្ចូលគ្នា + + + Continue + បន្ហ+ + + Continue with weak password + + + + + QObject + + Database not opened + មូលដ្ឋានទិន្ននáŸáž™áž˜áž·áž“បានបើកទ០+ + + Database hash not available + ហាសមូលដ្ឋានទិន្ននáŸáž™áž˜áž·áž“អាចប្រើប្រាស់បានទ០+ + + Client public key not received + ឃីសាធារណៈរបស់អážáž·ážáž·áž‡áž“មិនážáŸ’រូវបានទទួលទ០+ + + Cannot decrypt message + មិនអាចឌិគ្រីបសារបានទ០+ + + Action cancelled or denied + សកម្មភាពážáŸ’រូវបានលុបចោល ឬបដិសáŸáž’ + + + Message encryption failed. + ការអ៊ិនគ្រីបសារមិនបានសម្រáŸáž…។ + + + KeePassXC association failed, try again + ការភ្ជាប់ជាមួយ KeePassXC មិនបានសម្រáŸáž…។ សូមព្យាយាមម្ážáž„ទៀážáŸ” + + + Encryption key is not recognized + មិនស្គាល់សោអ៊ិនគ្រីបទ០+ + + Incorrect action + សកម្មភាពមិនážáŸ’រឹមážáŸ’រូវ + + + Empty message received + បានទទួលសារទទ០+ + + No URL provided + មិនបានផ្ដល់ URL ទ០+ + + No logins found + រកមិនឃើញ ចូល + + + No groups found + រកមិនឃើញក្រុមទ០+ + + Cannot create new group + មិនអាចបង្កើážáž€áŸ’រុមážáŸ’មីបានទ០+ + + No valid UUID provided + មិនបានផ្ážáž›áŸ‹áž‡áž¼áž“ UID បានážáŸ’រឹមážáŸ’រូវ + + + Unknown error + កំហុសឆ្គងដែលមិនស្គាល់ + + + Browser Integration + ការរួមបញ្ចូលកម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិហ+ + + Browser Plugin Failure + ការដំឡើងកម្មវិធីជំនួយនៅលើកម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážáž˜áž·áž“បានសម្រáŸáž… + + + Could not save the native messaging script file for %1. + មិន​អាច​រក្សា​ទុក​ឯកសារស្គ្រីបផ្ញើសារដើម​សម្រាប់ % 1 បានទáŸáŸ” + + + Username for the entry. + ឈ្មោះអ្នកប្រើសម្រាប់ការបញ្ចូលនáŸáŸ‡áŸ” + + + username + ឈ្មោះអ្នកប្រើ + + + URL for the entry. + URL សម្រាប់ទិន្ននáŸáž™áž”ញ្ចូល។ + + + URL + URL + + + Notes for the entry. + ចំណាំសម្រាប់ការបញ្ចូលទិន្ននáŸáž™áŸ” + + + Notes + ចំណាំ + + + Prompt for the entry's password. + សារជូនដំណឹងសម្រាប់ការបញ្ចូលពាក្យសម្ងាážáŸ‹áž“áŸáŸ‡áŸ” + + + Generate a password for the entry. + បង្កើážáž–ាក្យសម្ងាážáŸ‹áž˜áž½áž™ážŸáž˜áŸ’រាប់ការបញ្ចូលនáŸáŸ‡áŸ” + + + Add a new entry to a database. + បន្ážáŸ‚មទិន្ននáŸáž™áž”ញ្ចូលážáŸ’មីទៅកាន់មូលដ្ឋានទិន្ននáŸáž™áŸ” + + + Path of the entry to add. + ផ្លូវនៃទិន្ននáŸáž™áž”ញ្ចូលដែលážáŸ’រូវបន្ážáŸ‚ម។ + + + Cannot generate a password and prompt at the same time. + មិនអាចបង្កើážáž–ាក្យសម្ងាážáŸ‹ និងសារជូនដំណឹងក្នុងពáŸáž›ážáŸ‚មួយបានទáŸáŸ” + + + Could not create entry with path %1. + មិន​អាច​បង្កើážâ€‹áž‘ិន្ននáŸáž™áž”ញ្ចូល​ជាមួយនឹង​ផ្លូវ % 1 បានទáŸáŸ” + + + Enter password for new entry: + បញ្ចូលពាក្យសម្ងាážáŸ‹ážŸáž˜áŸ’រាប់ទិន្ននáŸáž™áž”ញ្ចូល៖ + + + Writing the database failed %1. + ការសរសáŸážšáž˜áž¼áž›ážŠáŸ’ឋានទិន្ននáŸáž™áž˜áž·áž“បានសម្រáŸáž… %1។ + + + Successfully added entry %1. + បាន​បន្ážáŸ‚ម​ទិន្ននáŸáž™áž”ញ្ចូល % 1 ដោយ​ជោគជáŸáž™áŸ” + + + Adds a new group to a database. + បន្ážáŸ‚មក្រុមážáŸ’មីមួយទៅមូលដ្ឋានទិន្ននáŸáž™áŸ” + + + Path of the group to add. + ផ្លូវនៃក្រុមដើម្បីបន្ážáŸ‚ម។ + + + Group %1 already exists! + ក្រុម %1 ធ្លាប់​មានស្រាប់ហើយ! + + + Group %1 not found. + ក្រុម % 1 មិនអាចរកឃើញបាន %1 áž‘áŸáŸ” + + + Successfully added group %1. + បាន​បន្ážáŸ‚ម​ក្រុម %1 ដោយ​ជោគជáŸáž™áŸ” + + + Check if any passwords have been publicly leaked. FILENAME must be the path of a file listing SHA-1 hashes of leaked passwords in HIBP format, as available from https://haveibeenpwned.com/Passwords. + ពិនិážáŸ’យរកមើលážáž¶ážáž¾áž˜áž¶áž“ពាក្យសម្ងាážáŸ‹ážŽáž¶áž˜áž½áž™ážŠáŸ‚លបានលáŸáž…ធ្លាយជាសាធារណៈ។ ឈ្មោះឯកសារážáŸ’រូវážáŸ‚ជាផ្លូវនៃឯកសារក្នុងបញ្ជីឈ្មោះ SHA-1 ហាស នៃពាក្យសម្ងាážáŸ‹ážŠáŸ‚លបានលáŸáž…ធ្លាយក្នុងទម្រង់ HIBP ដូចដែលអាចរកបានពីគáŸáž áž‘ំពáŸážš https://haveibeenpwned.com/Passwords។ + + + FILENAME + ឈ្មោះ​ឯកសារ + + + Path to okon-cli to search a formatted HIBP file + ផ្លូវទៅកាន់ឧបករណ០okon-cli ដើម្បីស្វែងរកឯកសារ HIBP ដែលបានបង្កើážáž‘ម្រង់ + + + okon-cli + okon-cli + + + Analyze passwords for weaknesses and problems. + វិភាគទៅលើពាក្យសម្ងាážáŸ‹ážŸáž˜áŸ’រាប់ចំណុចážáŸ’សោយ និងបញ្ហានានា។ + + + Cannot find HIBP file: %1 + មិនអាចស្វែងរកឯកសារ HIBP បានទáŸáŸ– %1 + + + Evaluating database entries using okon… + កំពុងវាយážáž˜áŸ’លៃការបញ្ចូលឃ្លាំងផ្ទុកទិន្ននáŸáž™ážŠáŸ„យប្រើ okon… + + + Failed to open HIBP file %1: %2 + បើកឯកសារ HIBP %1: %2 មិនបានសម្រáŸáž… + + + Evaluating database entries against HIBP file, this will take a while… + កំពុងវាយážáž˜áŸ’លៃមូលដ្ឋានទិន្ននáŸáž™áž”្រឆាំងនឹងឯកសារ HIBP ការវាយážáž˜áŸ’លៃនáŸáŸ‡áž“ឹងចំណាយពáŸáž›áž”ន្ážáž·áž…… + + + Password for '%1' has been leaked %2 time(s)! + ពាក្យ​សម្ងាážáŸ‹â€‹ážŸáž˜áŸ’រាប់ '%1' ážáŸ’រូវ​បាន​លáŸáž…​ធ្លាយ %2 ដង! + + + Password for '%1' has been leaked! + ពាក្យ​សម្ងាážáŸ‹â€‹ážŸáž˜áŸ’រាប់ '%1' ážáŸ’រូវ​បាន​លáŸáž…​ធ្លាយ! + + + Export an attachment of an entry. + នាំចáŸáž‰áž¯áž€ážŸáž¶ážšáž—្ជាប់នៃទិន្ននáŸáž™áž”ញ្ចូល។ + + + Path of the entry with the target attachment. + ផ្លូវទិន្ននáŸáž™áž”ញ្ចូលជាមួយឯកសារភ្ជាប់គោលដៅ។ + + + Name of the attachment to be exported. + ឈ្មោះឯកសារភ្ជាប់ដែលážáŸ’រូវនាំចáŸáž‰áŸ” + + + Path to which the attachment should be exported. + ážážáž‘ិសដៅដែលជាកន្លែងឯកសារភ្ជាប់គួរážáŸ‚ážáŸ’រូវបាននាំចáŸáž‰áŸ” + + + Could not find entry with path %1. + មិន​អាច​រកឃើញទិន្ននáŸáž™áž”ញ្ចូល​ជាមួយនឹង​ផ្លូវ % 1 បានទáŸáŸ” + + + Could not find attachment with name %1. + មិនអាចស្វែងរកឯកសារភ្ជាប់ជាមួយឈ្មោះ % 1 បានទáŸáŸ” + + + No export target given. Please use '--stdout' or specify an 'export-file'. + គ្មានគោលដៅនាំចáŸáž‰ážŠáŸ‚លបានផ្ážáž›áŸ‹áž‡áž¼áž“áž‘áŸáŸ” សូមប្រើ '--stdout' ឬបញ្ជាក់ 'ឯកសារ-នាំចáŸáž‰'។ + + + Could not open output file %1. + មិន​អាច​បើក​ឯកសារ​លទ្ធផល % 1 បានទáŸáŸ” + + + Successfully exported attachment %1 of entry %2 to %3. + បាននាំចáŸáž‰áž¯áž€ážŸáž¶ážšáž—្ជាប់ %1 ដោយជោគជáŸáž™áž“ៃទិន្ននáŸáž™ %2 ទៅ %3។ + + + Overwrite existing attachments. + សរសáŸážšáž‡áž¶áž“់លើឯកសារភ្ជាប់ដែលមានស្រាប់។ + + + Imports an attachment to an entry. + នាំចូលឯកសារភ្ជាប់ទៅទិន្ននáŸáž™áž”ញ្ចូល។ + + + Path of the entry. + ផ្លូវទិន្ននáŸáž™áž”ញ្ចូល។ + + + Name of the attachment to be added. + ឈ្មោះឯកសារភ្ជាប់ដែលážáŸ’រូវបន្ážáŸ‚ម។ + + + Path of the attachment to be imported. + ផ្លូវឯកសារភ្ជាប់ដែលនឹងážáŸ’រូវនាំចូល។ + + + Attachment %1 already exists for entry %2. + ឯកសារភ្ជាប់ %1 មានរួចស្រាប់ហើយសម្រាប់ទិន្ននáŸáž™áž”ញ្ចូល %2។ + + + Could not open attachment file %1. + មិន​អាច​បើក​ឯកសារ​ភ្ជាប់ % 1 បានទáŸáŸ” + + + Successfully imported attachment %1 as %2 to entry %3. + បាននាំចáŸáž‰áž¯áž€ážŸáž¶ážšáž—្ជាប់ %1 ដោយជោគជáŸáž™áž‘ៅជា %2 ទៅទិន្ននáŸáž™áž”ញ្ចូល %3។ + + + Remove an attachment of an entry. + លុបឯកសារភ្ជាប់នៃធាážáž»áž…ូលចáŸáž‰ + + + Name of the attachment to be removed. + ឈ្មោះឯកសារភ្ជាប់ដែលážáŸ’រូវដកចáŸáž‰áŸ” + + + Successfully removed attachment %1 from entry %2. + បានលុបឯកសារភ្ជាប់ % 1 áž…áŸáž‰áž–ីទិន្ននáŸáž™ % 2 ដោយជោគជáŸáž™áŸ” + + + Copy the given attribute to the clipboard. Defaults to "password" if not specified. + Don't translate "password", it refers to the attribute. + ចម្លងលក្ážážŽáŸˆážŠáŸ‚លបានផ្ážáž›áŸ‹áž‘ៅកាន់ឃ្លីបបážáž“áŸáŸ‡áŸ” លំនាំដើមទៅ "ពាក្យសម្ងាážáŸ‹" ប្រសិនបើមិនបានបញ្ជាក់ឲ្យបានច្បាស់លាស់។ + + + Copy the current TOTP to the clipboard (equivalent to "-a totp"). + ážáŸ’មីៗនáŸáŸ‡ ចម្លង TOTP ទៅកាន់ឃ្លីបបážáž“áŸáŸ‡ (ស្មើនឹង "-a totp")។ + + + Must match only one entry, otherwise a list of possible matches is shown. + ប្រសិនបើមានទិន្ននáŸáž™áž”ញ្ចូលដែលážáŸ’រូវគ្នាážáŸ‚មួយប៉ុណ្ណោះ នោះវានឹងážáŸ’រូវបង្ហាញ បើមិនដូច្នáŸáŸ‡áž‘០បញ្ជីប្រកួážážŠáŸ‚លមាននឹងážáŸ’រូវបានបង្ហាញឱ្យឃើញ។ + + + Copy an entry's attribute to the clipboard. + ចម្លងលក្ážážŽáŸˆážšáž”ស់ទិន្ននáŸáž™áž”ញ្ចូលទៅកាន់ឃ្លីបបážáŸ” + + + Path of the entry to clip. + clip = copy to clipboard + ផ្លូវទិន្ននáŸáž™áž”ញ្ចូលទៅកាន់ឃ្លីប។ + + + Timeout before clearing the clipboard (default is %1 seconds, set to 0 for unlimited). + អស់ពáŸáž›áž˜áž»áž“áž–áŸáž›áž’្វើការជម្រះឃ្លីបបហ(លំនាំដើមគឺ %1 វិនាទី កំណážáŸ‹áž‘ៅជា 0 សម្រាប់គ្មានដែនកំណážáŸ‹)។ + + + Invalid timeout value %1. + ážáž˜áŸ’លៃអស់ពáŸáž›áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ %1។ + + + Multiple entries matching: + ទិន្ននáŸáž™áž”ញ្ចូលជាច្រើនដែលážáŸ’រូវគ្នា៖ + + + Using matching entry: %1 + ការប្រើប្រាស់ទិន្ននáŸáž™áž”ញ្ចូលដែលážáŸ’រូវគ្នា៖ %1 + + + Entry %1 not found. + រកមិនឃើញទិន្ននáŸáž™áž”ញ្ចូល % 1។ + + + ERROR: Please specify one of --attribute or --totp, not both. + បញ្ហា៖ សូមបញ្ជាក់លក្ážážŽáŸˆáž˜áž½áž™áž“ៃ --លក្ážážŽáŸˆ ឬ --totp ដោយកុំបញ្ជាក់ទាំងពីរ។ + + + Entry with path %1 has no TOTP set up. + ទិន្ននáŸáž™áž”ញ្ចូលជាមួយផ្លូវ % 1 មិនមានការដំឡើង TOTP áž‘áŸáŸ” + + + ERROR: attribute %1 is ambiguous, it matches %2. + បញ្ហា៖ លក្ážážŽáŸˆ% 1 ដែលមិនច្បាស់លាស់ វាážáŸ’រូវគ្នានឹង % 2។ + + + Attribute "%1" not found. + រកមិនឃើញលក្ážážŽáŸˆ "%1" áž‘áŸáŸ” + + + Entry's "%1" attribute copied to the clipboard! + លក្ážážŽáŸˆ "% 1" របស់ទិន្ននáŸáž™áž”ញ្ចូលážáŸ’រូវបានចម្លងទៅឃ្លីបបáž! + + + Clearing the clipboard in %1 second(s)... + កំពុងសម្អាážážƒáŸ’លីបបážáž€áŸ’នុងរយៈពáŸáž› % 1 វិនាទី... + + + Clipboard cleared! + ឃ្លីបបážážáŸ’រូវបានសម្អាáž! + + + Close the currently opened database. + បិទមូលដ្ឋានទិន្ននáŸáž™ážŠáŸ‚លបានបើកនាពáŸáž›ážáŸ’មីៗនáŸáŸ‡áŸ” + + + Display this help. + បង្ហាញជំនួយនáŸáŸ‡áŸ” + + + Silence password prompt and other secondary outputs. + ការបិទការបញ្ចូលពាក្យសម្ងាážáŸ‹ និងលទ្ធផលបន្ទាប់បន្សំផ្សáŸáž„ទៀážáŸ” + + + Key file of the database. + ឯកសារសោនៃមូលដ្ឋានទិន្ននáŸáž™áŸ” + + + path + ផ្លូវ + + + Deactivate password key for the database. + បិទដំណើរការសោពាក្យសម្ងាážáŸ‹ážŸáž˜áŸ’រាប់មូលដ្ឋានទិន្ននáŸáž™áž“áŸáŸ‡áŸ” + + + Yubikey slot and optional serial used to access the database (e.g., 1:7370001). + រន្ធដោហYubikey និងស៊áŸážšáž¸â€‹áž‡áž˜áŸ’រើសដែលបានប្រើប្រាស់ដើម្បីចូលប្រើប្រាស់មូលដ្ឋានទិន្ននáŸáž™ (áž§. 1:7370001)។ + + + slot[:serial] + រន្ធដោáž[:serial] + + + Missing positional argument(s). + កំពុងបាážáŸ‹áž¢áž¶áž‚ុយម៉ង់ទីážáž¶áŸ†áž„។ + + + Too many arguments provided. + បានផ្ážáž›áŸ‹áž¢áŸ†ážŽáŸ‡áž¢áŸ†ážŽáž¶áž„ច្រើនពáŸáž€áŸ” + + + Path of the database. + ផ្លូវមូលដ្ឋានទិន្ននáŸáž™áŸ” + + + Target decryption time in MS for the database. + កំណážáŸ‹áž–áŸáž›ážœáŸáž›áž¶áž“ៃការដោះការបំប្លែងកូដក្នុង MS សម្រាប់ឃ្លាំងផ្ទុកទិន្ននáŸáž™áŸ” + + + time + áž–áŸáž›ážœáŸáž›áž¶ + + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + កំណážáŸ‹áž¯áž€ážŸáž¶ážšážŸáŸ„សម្រាប់មូលដ្ឋានទិន្ននáŸáž™áŸ” +ជម្រើសនáŸáŸ‡ážáŸ’រូវបានបដិសáŸáž’ ប្រើ --កំណáž-សោ-ឯកសារ ជំនួសវិញ។ + + + Set the key file for the database. + កំណážáŸ‹áž¯áž€ážŸáž¶ážšážŸáŸ†ážáž¶áž“់ៗសម្រាប់ទិន្ននáŸáž™ + + + Set a password for the database. + កំណážáŸ‹áž–ាក្យសម្ងាážáŸ‹áž±áŸ’យមូលដ្ឋានទិន្ននáŸáž™áŸ” + + + Create a new database. + បង្កើážážƒáŸ’លាំងទិន្ននáŸáž™ážáŸ’មី។ + + + Invalid decryption time %1. + áž–áŸáž›ážœáŸáž›áž¶áž“ៃការដោះការបំប្លែងកូដមិនážáŸ’រឹមážáŸ’រូវ %1។ + + + Target decryption time must be between %1 and %2. + áž–áŸáž›â€‹ážœáŸáž›áž¶â€‹ážŠáŸ„ះការបំប្លែងកូដ​គោលដៅ​ážáŸ’រូវ​ážáŸ‚ស្ážáž·ážâ€‹áž“ៅ​ចន្លោះ% 1 និង % 2។ + + + Failed to set database password. + បានបរាជáŸáž™áž€áŸ’នុងការកំណážáŸ‹áž–ាក្យសម្ងាážáŸ‹ážšáž”ស់ឃ្លំាងទិន្ននáŸáž™áŸ” + + + Loading the key file failed + កំពុងផ្ទុកឯកសារសោមិនបានសម្រáŸáž… + + + No key is set. Aborting database creation. + គ្មានសោážáŸ’រូវបានកំណážáŸ‹áž‘áŸáŸ” កំពុងបោះបង់ការបង្កើážáž˜áž¼áž›ážŠáŸ’ឋានទិន្ននáŸáž™áŸ” + + + Benchmarking key derivation function for %1ms delay. + កំពុងធ្វើážáŸážŸáŸ’ážáž˜áž»ážáž„ារទាញយកឃីដោយវាស់វែងពី​ការ​ពន្យារ​ពáŸáž› %1ms។ + + + Setting %1 rounds for key derivation function. + ការកំណážáŸ‹áž‡áž»áŸ† %1 សម្រាប់មុážáž„ារទាញយកសោ។ + + + error while setting database key derivation settings. + មានបញ្ហានៅពáŸáž›áž€áŸ†áž–ុងរៀបចំការកំណážáŸ‹áž€áž¶ážšáž‘ាញយកកូនសោមូលដ្ឋានទិន្ននáŸáž™áŸ” + + + File %1 already exists. + ឯកសារ %1 មានរួចហើយ។ + + + Failed to save the database: %1. + រក្សាទុកឃ្លំាងទិន្ននáŸáž™áŸ– % 1 មិនបានសម្រáŸáž…។ + + + Successfully created new database. + បានបង្កើážážƒáŸ’លាំងទិន្ននáŸáž™ážáŸ’មីដោយជោគជáŸáž™áŸ” + + + Unset the password for the database. + មិនបានកំណážáŸ‹áž–ាក្យសម្ងាážáŸ‹ážŸáž˜áŸ’រាប់ទិន្ននáŸáž™ + + + Unset the key file for the database. + មិនបានកំណážáŸ‹áž¯áž€ážŸáž¶ážšáž‚ន្លឹះសម្រាប់ទិន្ននáŸáž™ + + + Edit a database. + កែឃ្លំាងទិន្ននáŸáž™áŸ” + + + Cannot use %1 and %2 at the same time. + មិន​អាច​ប្រើប្រាស់ % 1 និង% 2 ក្នុង​ពáŸáž›â€‹ážáŸ‚​មួយ​បាន​ទáŸáŸ” + + + Could not change the database key. + មិន​អាច​កែប្រែសោ​មូលដ្ឋាន​ទិន្ននáŸáž™â€‹áž”ានទáŸáŸ” + + + Database was not modified. + មិនបានកែប្រែឃ្លាំងទិន្ននáŸáž™áž‘áŸáŸ” + + + Writing the database failed: %1 + ការសរសáŸážšáž˜áž¼áž›ážŠáŸ’ឋានទិន្ននáŸáž™áž˜áž·áž“បានសម្រáŸáž…៖ %1 + + + Successfully edited the database. + កែមូលដ្ឋានទិន្ននáŸáž™áž”ានដោយជោគជáŸáž™áŸ” + + + Cannot remove password: The database does not have a password. + មិន​អាច​ដក​ពាក្យ​សម្ងាážáŸ‹â€‹áž…áŸáž‰áž”ានទáŸáŸ– មូលដ្ឋាន​ទិន្ននáŸáž™â€‹áž˜áž·áž“​មាន​ពាក្យ​សម្ងាážáŸ‹â€‹áž‘áŸáŸ” + + + Cannot remove file key: The database does not have a file key. + មិន​អាច​យក​សោឯកសារ​ចáŸáž‰áŸ– មូលដ្ឋាន​ទិន្ននáŸáž™â€‹áž˜áž·áž“​មាន​សោឯកសារទáŸáŸ” + + + Loading the new key file failed: %1 + កំពុងផ្ទុកឯកសារសោážáŸ’មីមិនបានសម្រáŸáž…៖ %1 + + + Found unexpected Key type %1 + បានរកឃើញប្រភáŸáž‘សោដែលមានបញ្ហាដោយមិនរំពឹងទុក %1 + + + Cannot remove all the keys from a database. + មិនអាចដកសោទាំងអស់ចáŸáž‰áž–ីមូលដ្ឋានទិន្ននáŸáž™áž”ានទáŸáŸ” + + + Show a database's information. + បង្ហាញពáŸážáž˜áŸŒáž¶áž“ទិន្ននáŸáž™ + + + UUID: + UUID៖ + + + Name: + ឈ្មោះ៖ + + + Description: + ការពិពណ៌នា៖ + + + Cipher: + Cipher៖ + + + KDF: + KDF៖ + + + Recycle bin is enabled. + ធុងសំរាមបានបើកហើយ។ + + + Recycle bin is not enabled. + ធុងសំរាមមិនបានមិនទáŸáŸ” + + + Location + ទីážáž¶áŸ†áž„ + + + Database created + មូលដ្ឋានទិន្ននáŸáž™ážŠáŸ‚លបានបង្កើហ+ + + Last saved + បានរក្សាទុកចុងក្រោយ + + + Unsaved changes + ការផ្ážáž¶ážŸáŸ‹áž”្ážáž¼ážšážŠáŸ‚លមិនបានរក្សាទុក + + + yes + បាទ/ចាស + + + no + ទ០+ + + Number of groups + ចំនួនក្រុម + + + Number of entries + ចំនួននៃទិន្ននáŸáž™áž”ញ្ចូល + + + Number of expired entries + ចំនួននៃទិន្ននáŸáž™áž”ញ្ចូលបានផុážáž€áŸ†ážŽážáŸ‹ + + + Unique passwords + ពាក្យសម្ងាážáŸ‹áž–ិសáŸážŸ + + + Non-unique passwords + សម្ងាážáŸ‹áž˜áž·áž“មានលក្ážážŽáŸˆáž–ិសáŸážŸ + + + Maximum password reuse + ការប្រើប្រាស់ពាក្យសម្ងាážáŸ‹áž¡áž¾áž„វិញអážáž·áž”រមា + + + Number of short passwords + ចំនួនពាក្យសម្ងាážáŸ‹ážáŸ’លី + + + Number of weak passwords + ចំនួនពាក្យសម្ងាážáŸ‹ážáŸ’សោយ + + + Entries excluded from reports + បានដកចáŸáž‰áž‘ិន្ននáŸáž™áž”ញ្ចូលពីរបាយការណ០+ + + Average password length + ប្រវែងពាក្យសម្ងាážáŸ‹áž‡áž¶áž˜áž’្យម + + + %1 characters + %1 ážáž½áž¢áž€áŸ’សរ + + + Word count for the diceware passphrase. + ការរាប់ពាក្យសម្រាប់ឃ្លាសម្ងាážáŸ‹ážšáž”ស់ឌីសវែរ។ + + + count + CLI parameter + រាប់ + + + Wordlist for the diceware generator. +[Default: EFF English] + បញ្ជីពាក្យសម្រាប់ម៉ាស៊ីនបង្កើážážŒáž¸ážŸážœáŸ‚រ។ +[លំនាំដើម៖ អង់គ្លáŸážŸ EFF] + + + Generate a new random diceware passphrase. + បង្កើážážƒáŸ’លា​សម្ងាážáŸ‹ážŒáž¸ážŸážœáŸ‚ážšážáž¶áž˜áž›áž€áŸ’ážážŽáŸˆáž…ៃដន្យ​ážáŸ’មីមួយ។ + + + Invalid word count %1 + ចំនួន​ពាក្យ​មិន​ážáŸ’រឹមážáŸ’រូវ %1 + + + The word list is too small (< 1000 items) + បញ្ជីពាក្យážáž¼áž…áž–áŸáž€ (< 1000 áž’áž¶ážáž») + + + Title for the entry. + ចំណងជើងសម្រាប់ការបញ្ចូល។ + + + title + ចំណងជើង + + + Edit an entry. + កែទិន្ននáŸáž™áž”ញ្ចូល។ + + + Path of the entry to edit. + ទិន្ននáŸáž™áž”ញ្ចូលដើម្បីកែ។ + + + Not changing any field for entry %1. + មិនផ្លាស់ប្ážáž¼ážšáž€áž“្លែងបញ្ចូលណាមួយសម្រាប់ទិន្ននáŸáž™áž”ញ្ចូល % 1 áž‘áŸáŸ” + + + Enter new password for entry: + បញ្ចូលពាក្យសម្ងាážáŸ‹ážáŸ’មីសម្រាប់ទិន្ននáŸáž™áž”ញ្ចូល៖ + + + Successfully edited entry %1. + បានកែសម្រួលទិន្ននáŸáž™áž”ញ្ចូល %1​ ដោយជោគជáŸáž™áŸ” + + + Perform advanced analysis on the password. + ប្រើប្រាស់ការវិភាគកម្រិážážáŸ’ពស់នៅលើពាក្យសម្ងាážáŸ‹áŸ” + + + Password for which to estimate the entropy. + ពាក្យ​សម្ងាážáŸ‹â€‹ážŸáž˜áŸ’រាប់​ធ្វើការ​ប៉ាន់​ប្រមាណការវាស់វែងពាក្យសម្ងាážáŸ‹áž“áŸáŸ‡áŸ” + + + Estimate the entropy of a password. + ប៉ាន់ស្មានការវាស់វែងពាក្យសម្ងាážáŸ‹áž“ៃពាក្យសម្ងាážáŸ‹áž˜áž½áž™áŸ” + + + Length %1 + ប្រវែង %1 + + + Entropy %1 + ការវាស់វែងពាក្យសម្ងាážáŸ‹ %1 + + + Log10 %1 + កំណážáŸ‹â€‹áž áŸážáž»10 %1 + + + Multi-word extra bits %1 + ប៊ីážáž”ន្ážáŸ‚មដែលមានពាក្យច្រើន %1 + + + Type: Bruteforce + ប្រភáŸáž‘ Bruteforce + + + Type: Dictionary + វាយៈ វចនានុក្រម + + + Type: Dict+Leet + ប្រភáŸáž‘៖ Dict+Leet + + + Type: User Words + វាយៈពាក្យអ្នកប្រើប្រាស់ + + + Type: User+Leet + វាយៈ User+Leet + + + Type: Repeated + វាយៈច្រំដែល + + + Type: Sequence + វាយៈážáž¶áž˜áž›áŸ†ážŠáž¶áž”់ + + + Type: Spatial + វាយៈលំហ + + + Type: Date + វាយលាលបរិទ្ឆáŸáž‘ + + + Type: Bruteforce(Rep) + ប្រភáŸáž‘ៈ Bruteforce(Rep) + + + Type: Dictionary(Rep) + វាយៈ វចនានុក្រម(ážáŸ†ážŽáž¶áž„) + + + Type: Dict+Leet(Rep) + ប្រភáŸáž‘៖ Dict+Leet (សា​ឡើង​វិញ) + + + Type: User Words(Rep) + វាយៈ ពាក្យអ្នកប្រើប្រាស់(ážáŸ†ážŽáž¶áž„) + + + Type: User+Leet(Rep) + វាយៈ User+Leet(ážáŸ†ážŽáž¶áž„) + + + Type: Repeated(Rep) + វាយៈច្រំដែល(ážáŸ†ážŽáž¶áž„) + + + Type: Sequence(Rep) + វាយៈážáž¶áž˜áž›áŸ†ážŠáž¶áž”់(ážáŸ†ážŽáž¶áž„) + + + Type: Spatial(Rep) + វាយៈលំហ(ážáŸ†ážŽáž¶áž„) + + + Type: Date(Rep) + វាយៈ កាលបរិទ្ឆáŸáž‘ (ážáŸ†ážŽáž¶áž„) + + + Type: Unknown (%1) + វាយៈមិនស្គាល់(%1) + + + Entropy %1 (%2) + ការវាស់វែងពាក្យសម្ងាážáŸ‹ %1 (%2) + + + *** Password length (%1) != sum of length of parts (%2) *** + *** ប្រវែងពាក្យសម្ងាážáŸ‹ (%1) != ផលបូកប្រវែងនៃផ្នែក (%2) *** + + + Exit interactive mode. + áž…áŸáž‰áž–ីម៉ូដអន្ážážšáž€áž˜áŸ’ម។ + + + Format to use when exporting. Available choices are 'xml' or 'csv'. Defaults to 'xml'. + ទ្រង់ទ្រាយដែលážáŸ’រូវប្រើប្រាស់នៅពáŸáž›áž€áŸ†áž–ុងនាំចáŸáž‰áŸ” ជម្រើសដែលអាចប្រើប្រាស់គឺ 'xml' ឬ 'csv'។ លំនាំដើមទៅកាន់ 'xml'។ + + + Exports the content of a database to standard output in the specified format. + នាំចáŸáž‰ážáŸ’លឹមសារនៃមូលដ្ឋានទិន្ននáŸáž™áž‘ៅជាលទ្ធផលស្ážáž„់ដារក្នុងទម្រង់ដែលបានបញ្ជាក់នáŸáŸ‡áŸ” + + + Unable to export database to XML: %1 + មិនអាចនាំចáŸáž‰áž˜áž¼áž›ážŠáŸ’ឋានទិន្ននáŸáž™áž‘ៅជា XML បានទáŸáŸ– %1 + + + Unsupported format %1 + ទម្រង់ដែលមិនគាំទ្រ%1 + + + Length of the generated password + ប្រវែងពាក្យសម្ងាážáŸ‹ážŠáŸ‚លបានបង្កើហ+ + + length + ប្រវែង + + + Use lowercase characters + ប្រើប្រាស់អក្សរážáž¼áž… + + + Use uppercase characters + ប្រើអក្សរធំ + + + Use numbers + ប្រើលáŸáž + + + Use special characters + ប្រើážáž½áž¢áž€áŸ’សរពិសáŸážŸ + + + Use extended ASCII + ប្រើប្រាស់ ASCII ážáŸ’ពស់ + + + Exclude character set + មិនរាប់បញ្ចូលសំណុំážáž½áž¢áž€áŸ’សរ + + + chars + ážáž½áž¢áž€áŸ’សរ + + + Use custom character set + ប្រើប្រាស់សំណុំážáž½áž¢áž€áŸ’សរផ្ទាល់ážáŸ’លួន + + + Exclude similar looking characters + មិនរាប់បញ្ចូលážáž½áž¢áž€áŸ’សរដែលមើលទៅស្រដៀងគ្នា + + + Include characters from every selected group + រួមមានážáž½áž¢áž€áŸ’សរពីគ្រប់ក្រុមដែលបានជ្រើសរើស + + + Generate a new random password. + បង្កើážáž–ាក្យសម្ងាážáŸ‹ážŠáŸ„យចៃដន្យážáŸ’មីមួយ។ + + + Invalid password length %1 + ប្រវែងពាក្យសម្ងាážáŸ‹áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ %1 + + + Invalid password generator after applying all options + កម្មវិធីបង្កើážáž–ាក្យសម្ងាážáŸ‹áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវបន្ទាប់ពីការដាក់ប្រើជម្រើសទាំងអស់ + + + Display command help. + បង្ហាញជំនួយពាក្យបញ្ជា។ + + + Available commands: + ពាក្យបញ្ជាដែលអាចប្រើប្រាស់បាន៖ + + + Import the contents of an XML database. + នាំចូលážáŸ’លឹមសារនៃមូលដ្ឋានទិន្ននáŸáž™ XML ។ + + + Path of the XML database export. + ផ្លូវនាំចáŸáž‰áž˜áž¼áž›ážŠáŸ’ឋានទិន្ននáŸáž™ XML។ + + + Path of the new database. + ផ្លូវនៃមូលដ្ឋានទិន្ននáŸáž™ážáŸ’មី។ + + + Unable to import XML database: %1 + មិនអាចនាំចូលឃ្លាំងផ្ទុកទិន្ននáŸáž™ XML បានទáŸáŸ– %1 + + + Successfully imported database. + បាននាំចូលមូលដ្ឋានទិន្ននáŸáž™ážŠáŸ„យជោគជáŸáž™áŸ” + + + Unknown command %1 + មិនស្គាល់ពាក្យបញ្ជា %1 + + + + +Available commands: + + + +ពាក្យបញ្ជាដែលអាចប្រើប្រាស់បាន៖ + + + + Name of the command to execute. + ឈ្មោះពាក្យបញ្ជាដែលážáŸ’រូវធ្វើប្រážáž·áž”ážáŸ’ážáž·áŸ” + + + Displays debugging information. + បង្ហាញពáŸážáŸŒáž˜áž¶áž“ដែលកំពុងស្វែងរកកំហុស។ + + + Invalid command %1. + ពាក្យ​បញ្ជា​មិន​ážáŸ’រឹមážáŸ’រូវ %1។ + + + Recursively list the elements of the group. + ចុះបញ្ជីធាážáž»áž“ៃក្រុមឡើងវិញ។ + + + Flattens the output to single lines. + បំលែងលទ្ធផលឱ្យទៅជាបន្ទាážáŸ‹ážáŸ‚មួយ។ + + + List database entries. + បញ្ជីបញ្ចូលមូលដ្ឋានទិន្ននáŸáž™áŸ” + + + Path of the group to list. Default is / + ផ្លូវនៃក្រុមដើម្បីចុះបញ្ជី។ លំនាំដើមគឺ / + + + Cannot find group %1. + មិន​អាចស្វែង​រក​ឃើញ​ក្រុម % 1។ + + + Use the same credentials for both database files. + ប្រើប្រាស់ពáŸážáŸŒáž˜áž¶áž“ផ្ទៀងផ្ទាážáŸ‹ážáŸ‚មួយសម្រាប់ឯកសារមូលដ្ឋានទិន្ននáŸáž™áž‘ាំងពីរ។ + + + Key file of the database to merge from. + ឯកសារសោនៃមូលដ្ឋានទិន្ននáŸáž™ážŠáŸ‚áž›ážáŸ’រូវបញ្ចូលគ្នាពី។ + + + Deactivate password key for the database to merge from. + បិទដំណើរការសោពាក្យសម្ងាážáŸ‹ážŸáž˜áŸ’រាប់មូលដ្ឋានទិន្ននáŸáž™ážŠáž¾áž˜áŸ’បីបញ្ចូលគ្នាពី។ + + + Only print the changes detected by the merge operation. + គ្រាន់ážáŸ‚បោះពុម្ពការផ្លាស់ប្ážáž¼ážšážŠáŸ‚លរកឃើញដោយប្រážáž·áž”ážáŸ’ážáž·áž€áž¶ážšáž”ញ្ចូលគ្នាážáŸ‚ប៉ុណ្ណោះ។ + + + Yubikey slot for the second database. + រន្ធដោហYubikey សម្រាប់មូលដ្ឋានទិន្ននáŸáž™áž‘ីពីរនáŸáŸ‡áŸ” + + + slot + រន្ធដោហ+ + + Merge two databases. + ដាក់បញ្ចូលមូលដ្ឋានទិន្ននáŸáž™áž–ីរ។ + + + Path of the database to merge from. + ផ្លូវមូលដ្ឋានទិន្ននáŸáž™ážŠáž¾áž˜áŸ’បីបញ្ចូលគ្នាពី។ + + + Error reading merge file: +%1 + បញ្ហាក្នុងការអានឯកសារបញ្ចូលគ្នា៖ +%1 + + + Unable to save database to file : %1 + មិនអាចរក្សាទុកទិន្ននáŸáž™áž¯áž€ážŸáž¶ážšáŸˆ %1បានទ០+ + + Successfully merged %1 into %2. + បានបញ្ចូល %1 ទៅក្នុង %2 ដោយជោគជáŸáž™áŸ” + + + Database was not modified by merge operation. + ប្រážáž·áž”ážáŸ’ážáž·áž€áž¶ážšáž”ញ្ចូលគ្នាមិនបានកែប្រែឃ្លាំងទិន្ននáŸáž™áž‘áŸáŸ” + + + Moves an entry to a new group. + ផ្លាស់ទីទិន្ននáŸáž™áž”ញ្ចូលទៅកាន់ក្រុមážáŸ’មី។ + + + Path of the entry to move. + ផ្លូវទិន្ននáŸáž™áž”ញ្ចូលដែលážáŸ’រូវផ្លាស់ទី។ + + + Path of the destination group. + ផ្លូវក្រុមគោលដៅ។ + + + Could not find group with path %1. + មិន​អាច​រកឃើញក្រុម​ជាមួយនឹង​ផ្លូវ % 1 បានទáŸáŸ” + + + Entry is already in group %1. + ទិន្ននáŸáž™áž”ញ្ចូលមាននៅក្នុងក្រុម % 1 រួចហើយ។ + + + Successfully moved entry %1 to group %2. + បានផ្លាស់ទីទិន្ននáŸáž™% 1 ទៅជាក្រុម% 2 ដោយជោគជáŸáž™áŸ” + + + Open a database. + បើកឃ្លំាងទិន្ននáŸáž™áŸ” + + + Path of the entry to remove. + ផ្លូវទិន្ននáŸáž™áž”ញ្ចូលដើម្បីដកចáŸáž‰áŸ” + + + Unable to save database to file: %1 + មិនអាចរក្សាទុកទិន្ននáŸáž™áž¯áž€ážŸáž¶ážšáŸˆ %1បានទ០+ + + Successfully recycled entry %1. + បាន​កែច្នៃ​ទិន្ននáŸáž™ % 1 ដោយ​ជោគជáŸáž™áŸ” + + + Successfully deleted entry %1. + បាន​លុប​ទិន្ននáŸáž™áž”ញ្ចូល %1 ដោយ​ជោគជáŸáž™áŸ” + + + Path of the group to remove. + ផ្លូវនៃក្រុមដើម្បីដកចáŸáž‰áŸ” + + + Cannot remove root group from database. + មិន​អាច​ដកចáŸáž‰áž€áŸ’រុមឫស​ពី​មូលដ្ឋាន​ទិន្ននáŸáž™â€‹áž”ាន​ទáŸáŸ” + + + Successfully recycled group %1. + បាន​កែច្នៃ​ទិន្ននáŸáž™ % 1 ដោយ​ជោគជáŸáž™áŸ” + + + Successfully deleted group %1. + បានលុបក្រុម %1 ដោយជោគជáŸáž™áŸ” + + + Find entries quickly. + ស្វែងរកទិន្ននáŸáž™áž”ញ្ចូលបានយ៉ាងឆាប់រហáŸážŸáŸ” + + + Search term. + ស្វែងរកពាក្យ + + + Show the entry's current TOTP. + ការបង្ហាញពីបច្ចុប្បន្នភាពនៃទិន្ននáŸáž™ TOTP + + + Show the protected attributes in clear text. + ការបង្ហាញពីគុណលក្ážážŽáŸˆážŠáŸ‚áž›ážáŸ’រូវបានការពារជាអក្សរច្បាស់ៗ + + + Show all the attributes of the entry. + ការបង្ហាញពីគុណលក្ážážŽáŸˆáž‘ាំងអស់នៃទិន្ននáŸáž™áž…ូល + + + Show the attachments of the entry. + ការបង្ហាញឯកសារភ្ជាប់របស់ទិន្ននáŸáž™ + + + Names of the attributes to show. This option can be specified more than once, with each attribute shown one-per-line in the given order. If no attributes are specified, a summary of the default attributes is given. + ឈ្មោះនៃលក្ážážŽáŸˆážŠáŸ‚លនឹងážáŸ’រូវបង្ហាញ។ ជម្រើសនáŸáŸ‡áž¢áž¶áž…នឹងážáŸ’រូវបញ្ជាក់ច្រើនជាងមួយដងដោយមានលក្ážážŽáŸˆáž“ីមួយៗដែលបានបង្ហាញមួយដងក្នុងមួយជួរនៅក្នុងលំដាប់ដែលបានផ្ážáž›áŸ‹áž‡áž¼áž“។ ប្រសិនបើមិនមានការបញ្ជាក់ពីលក្ážážŽáŸˆ នោះនឹងážáŸ’រូវផ្ážáž›áŸ‹áž‡áž¼áž“ការសង្ážáŸáž”អំពីលក្ážážŽáŸˆáž›áŸ†áž“ាំដើម។ + + + attribute + លក្ážážŽáŸˆ + + + Show an entry's information. + ការបង្ហាញពីពáŸážáž˜áŸŒáž¶áž“នៃទិន្ននáŸáž™ + + + Name of the entry to show. + ឈ្មោះទិន្ននáŸáž™áž”ញ្ចូលនáŸáŸ‡ážŠáž¾áž˜áŸ’បីបង្ហាញ។ + + + ERROR: unknown attribute %1. + បញ្ហា៖ គុណលក្ážážŽáŸˆážŠáŸ‚លមិនស្គាល់ %1។ + + + No attachments present. + មិនមានបង្ហាញឯកសារភ្ជាប់ទáŸáŸ” + + + Attachments: + ឯកសារ​ភ្ជាប់នានា៖ + + + Failed to open database file %1: not found + បានបរាជáŸáž™áž€áŸ’នុងការបើកឯកសារឃ្លំាងទិន្ននáŸáž™% 1៖ រកមិនឃើញ + + + Failed to open database file %1: not a plain file + បើកឯកសារមូលដ្ឋានទិន្ននáŸáž™ %1 មិនបានសម្រáŸáž…៖ មិនមែនជាឯកសារធម្មážáž¶áž‘០+ + + Failed to open database file %1: not readable + បានបរាជáŸáž™áž€áŸ’នុងការបើកឯកសារឃ្លំាងទិន្ននáŸáž™% 1៖ មិនអាចអានបានទ០+ + + Enter password to unlock %1: + បញ្ចូលពាក្យសម្ងាážáŸ‹ážŠáž¾áž˜áŸ’បីដោះសោ% 1៖ + + + Failed to load key file %1: %2 + មិនបានសម្រáŸáž…ក្នុង​​ការ​ផ្ទុក​ឯកសារសោ %1: %2 + + + WARNING: You are using an old key file format which KeePassXC may +stop supporting in the future. + +Please consider generating a new key file. + ការព្រមាន៖ អ្នកកំពុងប្រើប្រាស់ទម្រង់ឯកសារសោចាស់ដែល KeePassXC អាច +បញ្ឈប់ការប្រើប្រាស់ជាមួយនៅពáŸáž›áž¢áž“áž¶áž‚ážáŸ” + +សូមពិចារណាទៅលើការបង្កើážáž¯áž€ážŸáž¶ážšážŸáŸ„ážáŸ’មីមួយ។ + + + Invalid YubiKey slot %1 + រន្ធដោហYubiKey ដែលមិនážáŸ’រឹមážáŸ’រូវ %1 + + + Invalid YubiKey serial %1 + áž›áŸážážŸáŸŠáŸážšáž¸ YubiKey មិនážáŸ’រឹមážáŸ’រូវ %1 + + + Please present or touch your YubiKey to continue. + សូមបង្ហាញ ឬចុច YubiKey របស់អ្នកដើម្បីបន្ážáŸ” + + + Enter password to encrypt database (optional): + បញ្ចូលពាក្យសម្ងាážáŸ‹ážŠáž¾áž˜áŸ’បីអ៊ិនគ្រីបឃ្លំាងទិន្ននáŸáž™ (ជាជម្រើស)៖ + + + Do you want to create a database with an empty password? [y/N]: + ážáž¾â€‹áž¢áŸ’នក​ចង់​បង្កើážážƒáŸ’លំាង​ទិន្ននáŸáž™â€‹ážŠáŸ„យ​ប្រើ​ពាក្យ​សម្ងាážáŸ‹â€‹áž‘áž‘áŸâ€‹áž¬? [y/N]៖ + + + Repeat password: + វាយពាក្យសម្ងាážáŸ‹áž˜áŸ’ážáž„ទៀហ+ + + Error: Passwords do not match. + បញ្ហា៖ ពាក្យសម្ងាážáŸ‹áž˜áž·áž“ážáŸ’រូវគ្នាទáŸáŸ” + + + No program defined for clipboard manipulation + គ្មានកម្មវិធីដែលបានកំណážáŸ‹ážŸáž˜áŸ’រាប់ការបំភ្លៃឃ្លីបបážáž‘០+ + + All clipping programs failed. Tried %1 + + កម្មវិធីឃ្លីបទាំងអស់មិនបានសម្រáŸáž…។ បានសាកល្បង %1 ហើយ + + + + Creating KeyFile %1 failed: %2 + ការបង្កើហKeyFile %1 មិនបានសម្រáŸáž…៖ % 2 + + + Loading KeyFile %1 failed: %2 + កំពុងផ្ទុកឯកសារសោ %1 មិនបានសម្រáŸáž…?៖ %2 + + + HIBP file, line %1: parse error + ឯកសារ HIBP បណ្ដាញ % 1៖ បញ្ហាក្នុងការញែក + + + To use okon, you must provide a post-processed file (e.g. file.okon) + ដើម្បីប្រើ okon អ្នកážáŸ’រូវážáŸ‚ផ្ážáž›áŸ‹áž¯áž€ážŸáž¶ážšáž€áŸ’រោយដំណើរការ (áž§. file.okon) + + + Could not start okon process: %1 + មិន​អាច​ចាប់​ផ្ដើម​ដំណើរការ okon បានទáŸáŸ– %1 + + + Error: okon process did not finish + កំហុស៖ ដំណើរការ okon មិនបានបញ្ចប់ទ០+ + + Failed to load okon processed database: %1 + មិនបានសម្រáŸáž…ក្នុង​ការ​ផ្ទុកឃ្លំាងទិន្ននáŸáž™ážŠáŸ‚លបានដំណើរការ okon៖ %1 + + + Very weak password + ពាក្យសម្ងាážáŸ‹ážáŸ’សោយណាស់ + + + Password entropy is %1 bits + ការវាស់វែងពាក្យសម្ងាážáŸ‹áž‚ឺ %1 ប៊ីហ+ + + Weak password + ពាក្យសម្ងាážáŸ‹ážáŸ’សោយ + + + Used in %1/%2 + ប្រើប្រាស់ក្នុង %1/%2 + + + Password is used %1 time(s) + ពាក្យ​សម្ងាážáŸ‹â€‹ážáŸ’រូវ​បាន​ប្រើ %1 ដងហើយ + + + Password has expired + ពាក្យ​សម្ងាážáŸ‹â€‹áž”ាន​ផុážâ€‹áž€áŸ†ážŽážáŸ‹ + + + Password expiry was %1 + ពាក្យ​សម្ងាážáŸ‹â€‹áž”ានផុážâ€‹áž€áŸ†ážŽážáŸ‹â€‹áž“ៅ​ %1 + + + Password expires on %1 + ពាក្យ​សម្ងាážáŸ‹â€‹áž•áž»ážâ€‹áž€áŸ†ážŽážáŸ‹â€‹áž“ៅ​ %1 + + + Password is about to expire + ពាក្យសម្ងាážáŸ‹áž‡áž·ážáž•áž»ážáž€áŸ†ážŽážáŸ‹áž áž¾áž™ + + + Password expires in %1 day(s) + ពាក្យសម្ងាážáŸ‹áž•áž»ážáž€áŸ†ážŽážáŸ‹áž€áŸ’នុងរយៈពáŸáž› %1 ážáŸ’ងៃ + + + Password will expire soon + ពាក្យសម្ងាážáŸ‹áž“ឹងផុážáž€áŸ†ážŽážáŸ‹áž€áŸ’នុងពáŸáž›áž†áž¶áž”់ៗនáŸáŸ‡ + + + Version %1 + កំណែ %1 + + + Build Type: %1 + ប្រភáŸáž‘​កំណែបង្កើážáŸ– %1 + + + Revision: %1 + កំណែ៖ %1 + + + Distribution: %1 + ការចែកចាយ៖ % 1 + + + Debugging mode is disabled. + ម៉ូដរកកំហុសážáŸ’រូវបានបិទ។ + + + Debugging mode is enabled. + ម៉ូដរកកំហុសážáŸ’រូវបានបើក។ + + + Operating system: %1 +CPU architecture: %2 +Kernel: %3 %4 + ប្រពáŸáž“្ធប្រážáž·áž”ážáŸ’ážáž·áž€áž¶ážšáŸ– %1 +ស្ážáž¶áž”ážáŸ’យកម្ម CPU៖ %2 +ážážºážŽáŸáž›áŸ– %3 % 4 + + + Auto-Type + មុážáž„ារវាយបញ្ចូលស្វáŸáž™áž”្រវážáŸ’ážáž· + + + SSH Agent + ភ្នាក់ងារ SSH + + + KeeShare + KeeShare + + + YubiKey + YubiKey + + + Quick Unlock + ដោះសោររហáŸážŸ + + + Secret Service Integration + ការដាក់បញ្ចូលសáŸážœáž¶áž–ាក្យសម្ងាážáŸ‹ + + + None + គ្មាន + + + Enabled extensions: + បានបើកកម្មវិធីបន្ážáŸ‚ម​៖ + + + over %1 year(s) + លើសពី %1 ឆ្នាំ + + + about %1 month(s) + ប្រហែល %1 ážáŸ‚ + + + %1 week(s) + %1 សប្ážáž¶áž áŸ + + + %1 day(s) + % 1 ážáŸ’ងៃ + + + %1 hour(s) + % 1 ម៉ោង + + + %1 minute(s) + % 1 នាទី + + + Botan library must be at least %1, found %2.%3.%4 + + + + Cryptographic libraries: + បណ្ណាលáŸáž™â€‹áž‚្រីបážáž¼ážŸáž¶ážŸáŸ’ážáŸ’រ៖ + + + AES (%1 rounds) + AES (%1 ជុំ) + + + Argon2%1 (%2 rounds, %3 KB) + Argon2% 1 (% 2 ជុំ, %3 KB) + + + SymmetricCipher::init: Invalid cipher mode. + SymmetricCipher::init: ម៉ូដសរសáŸážšáž€áž¼ážŠáž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ។ + + + SymmetricCipher::init: Invalid IV size of %1 for %2. + SymmetricCipher::init: ទំហំ IV មិនážáŸ’រឹមážáŸ’រូវនៃ %1 សម្រាប់% 2។ + + + Cipher not initialized prior to use. + Cipher មិនážáŸ’រូវបានចាប់ផ្ážáž¾áž˜áž˜áž»áž“áž–áŸáž›áž”្រើប្រាស់។ + + + Cannot process 0 length data. + មិនអាចដំណើរការទិន្ននáŸáž™ážŠáŸ‚លមានប្រវែង 0 បានទáŸáŸ” + + + unknown executable (DBus address %1) + មិនស្គាល់ឯកសារដែលអាចប្រážáž·áž”ážáŸ’ážáž·áž”áž¶áž“ (អាសយដ្ឋាន DBus %1) + + + %1 (invalid executable path) + %1 (ផ្លូវដែលអាចប្រážáž·áž”ážáŸ’ážáž·áž˜áž·áž“​ážáŸ’រឹមážáŸ’រូវ) + + + NULL device + ឧបករណ០NULL + + + error reading from device + មានបញ្ហាក្នុងការអានពីឧបករណ០+ + + file empty + ឯកសារទទ០+ + + malformed string + ជួរអក្សរដែលមានទម្រង់មិនážáŸ’រឹមážáŸ’រូវ + + + missing closing quote + កំពុងបាážáŸ‹ážŸáž˜áŸ’រង់បិទ + + + %1: (row, col) %2,%3 + %1: (ជួរដáŸáž€, ជួរឈរ) %2,%3 + + + AES 256-bit + AES 256 ប៊ីហ+ + + Twofish 256-bit + Twofish 256-ប៊ីហ+ + + ChaCha20 256-bit + ChaCha20 256-ប៊ីហ+ + + Argon2d (KDBX 4 – recommended) + Argon2d (KDBX 4 - ដែលបានណែនាំ) + + + Argon2id (KDBX 4) + Argon2id (KDBX 4) + + + AES-KDF (KDBX 4) + AES-KDF (KDBX 4) + + + AES-KDF (KDBX 3) + AES-KDF (KDBX 3) + + + Existing single-instance lock file is invalid. Launching new instance. + ឯកសារចាក់សោរបស់កម្មិធីážáŸ‚មួយដែលមានស្រាប់គឺមិនážáŸ’រឹមážáŸ’រូវទáŸáŸ” កំពុងបើកដំណើរការកម្មវិធីážáŸ’មី។ + + + The lock file could not be created. Single-instance mode disabled. + មិនអាចបង្កើážáž¯áž€ážŸáž¶ážšáž…ាក់សោបានទáŸáŸ” ​បាន​បិទមុážáž„ារ​វážáŸ’ážáž»â€‹ážáŸ‚មួយ។ + + + Clearing the clipboard in %1 second(s)… + កំពុងសម្អាážážƒáŸ’លីបបážáž€áŸ’នុងរយៈពáŸáž› % 1 វិនាទី… + + + Group + ក្រុម + + + Title + ចំណងជើង + + + Username + ឈ្មោះអ្នកប្រើ + + + Password + ពាក្យសម្ងាážáŸ‹ + + + TOTP + TOTP + + + Icon + រូបážáŸ†ážŽáž¶áž„ + + + Last Modified + បានកែប្រែចុងក្រោយ + + + Created + បានបង្កើហ+ + + Benchmark %1 delay + បទដ្ឋាន​វាស់វែងពន្យាពáŸáž› %1 + + + %1 ms + milliseconds + %1 មី.វិ + + + %1 s + seconds + %1 វិ + + + Do you really want to delete the entry "%1" for good? + ážáž¾â€‹áž¢áŸ’នក​ពិážâ€‹áž‡áž¶â€‹áž…ង់​លុប​ទិន្ននáŸáž™áž”ញ្ចូល "% 1" ដើម្បី​ឱ្យកាន់ážáŸ‚ល្អ​ឬ? + + + Do you really want to delete %n entry(s) for good? + ážáž¾â€‹áž¢áŸ’នក​ពិážâ€‹áž‡áž¶â€‹áž…ង់​លុប​ទិន្ននáŸáž™áž”ញ្ចូល %n ដើម្បី​ឱ្យកាន់ážáŸ‚ល្អ​មែនទáŸ? + + + Delete entry(s)? + លុបទិន្ននáŸáž™áž”ញ្ចូល? + + + Do you really want to move entry "%1" to the recycle bin? + ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់ផ្លាស់ទីទិន្ននáŸáž™áž”ញ្ចូល "% 1" ទៅធុងសំរាមមែនដែរឬទáŸ? + + + Do you really want to move %n entry(s) to the recycle bin? + ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់ផ្លាស់ទីទិន្ននáŸáž™áž”ញ្ចូល %n ទៅកាន់ធុងសំរាមមែនដែរឬទáŸ? + + + Move entry(s) to recycle bin? + ផ្លាស់ទីទិន្ននáŸáž™áž”ញ្ចូលទៅកាន់ធុងសំរាមកែច្នៃឬ? + + + Replace references to entry? + ជំនួសឯកសារយោងទៅជាទិន្ននáŸáž™áž…ូល + + + Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? + ការបញ្ចូល "%1" មានឯកសារយោង %2 ។ ážáž¾â€‹áž¢áŸ’នក​ចង់​សរសáŸážšâ€‹áž‡áž¶áž“់​លើ​ឯកសារយោង​ដោយមានដាក់​ážáž˜áŸ’លៃ រំលងការបញ្ចូលនáŸáŸ‡ ឬ​លុប​ចáŸáž‰áž€áŸâ€‹ážŠáŸ„áž™? + + + User name + ឈ្មោះអ្នកប្រើ + + + Browser Statistics + ស្ážáž·ážáž·áž€áž˜áŸ’មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិហ+ + + Health Check + ការážáŸ’ážšáž½ážáž–ិនិážáŸ’យ​សុážáž—áž¶áž– + + + HIBP + HIBP + + + Statistics + ស្ážáž·ážáž· + + + Unsupported key file version: %1 + កំណែឯកសារគន្លឹះដែលមិនគាំទ្រៈ%1 + + + Checksum mismatch! Key file may be corrupt. + áž›áŸážážŸážšáž»áž”ដើម្បីពិនិážáŸ’យមើលទិន្ននáŸáž™ážáŸ’រឹមážáŸ’រូវគឺមិនážáŸ’រូវគ្នានោះទáŸ! ឯកសារសោប្រហែលជាážáž¼áž…។ + + + Unexpected key file data! Key file may be corrupt. + ទិន្ននáŸáž™ ឯកសារសំážáž¶áž“់ៗ ដែលមិនបានរំពឹងទុក! ឯកសារសោអាចážáž¼áž…។ + + + KeePassXC - cross-platform password manager + KeePassXC - កម្មវិធីគ្រប់គ្រងពាក្យសម្ងាážáŸ‹áž‘ូទាំងប្រពáŸáž“្ធ + + + filenames of the password databases to open (*.kdbx) + ឈ្មោះឯកសារនៃមូលដ្ឋានទិន្ននáŸáž™áž–ាក្យសម្ងាážáŸ‹ážŠáŸ‚áž›ážáŸ’រូវបើក (*.kdbx) + + + path to a custom config file + ផ្លូវទៅកាន់ឯកសារដែលកំណážáŸ‹ážšáž…នាសម្ពáŸáž“្ធផ្ទាល់ážáŸ’លួន + + + path to a custom local config file + ផ្លូវទៅកាន់ឯកសារដែលកំណážáŸ‹ážšáž…នាសម្ពáŸáž“្ធផ្ទាល់ážáŸ’លួនក្នុងមូលដ្ឋាន + + + lock all open databases + ចាក់សោមូលដ្ឋានទិន្ននáŸáž™ážŠáŸ‚លបើកទាំងអស់ + + + key file of the database + ឯកសារសោនៃមូលដ្ឋានទិន្ននáŸáž™ + + + read password of the database from stdin + អានពាក្យសម្ងាážáŸ‹áž“ៃមូលដ្ឋានទិន្ននáŸáž™áž–ី stdin + + + Locked databases. + បានចាក់សោមូលដ្ឋានទិន្ននáŸáž™áŸ” + + + Database failed to lock. + មូលដ្ឋានទិន្ននáŸáž™áž…ាក់សោមិនបានសម្រáŸáž…áž‘áŸáŸ” + + + Another instance of KeePassXC is already running. + ឧទាហរណáŸáž˜áž½áž™áž‘ៀážáž¢áŸ†áž–ី KeePassXC គឺកំពុងដំណើរការរួចទៅហើយ។ + + + KeePassXC is not running. No open database to lock + KeePassXC មិនកំពុងដំណើរការទáŸáŸ” មិនមានមូលដ្ឋានទិន្ននáŸáž™ážŠáŸ‚លបានបើកដើម្បីចាក់សោទ០+ + + Fatal error while testing the cryptographic functions. + បញ្ហាធ្ងន់ធ្ងរកើážáž¡áž¾áž„នៅពáŸáž›áž€áŸ†áž–ុងážáŸážŸáŸ’ážáž˜áž»ážáž„ារ​គ្រីបážáž¼ážŸáž¶ážŸáŸ’ážáŸ’រ។ + + + KeePassXC - Error + KeePassXC - បញ្ហា + + + Database password: + ពាក្យសម្ងាážáŸ‹áž˜áž¼áž›ážŠáŸ’ឋានទិន្ននáŸáž™áŸ– + + + Invalid Settings + TOTP + ការកំណážáŸ‹áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ + + + Invalid Key + TOTP + សោមិនážáŸ’រឹមážáŸ’រូវ + + + Failed to create Windows Hello credential. + បានបរាជáŸáž™áž€áŸ’នុងការបង្កើážáž–áŸážáŸŒáž˜áž¶áž“​បញ្ជាក់​អážáŸ’ážážŸáž‰áŸ’ញាណនៅក្នុង Windows Hello។ + + + Failed to sign challenge using Windows Hello. + ការចូលក្នុងឧបករណáŸážŠáž¾áž˜áŸ’បីប្រើប្រាស់មុážáž„áž¶ážš Windows Hello មិនបានសម្រáŸáž…។ + + + Warning: Failed to block screenshot capture on a top-level window. + ការព្រមាន៖ ទប់ស្កាážáŸ‹áž€áž¶ážšážážáž¢áŸáž€áŸ’រង់នៅលើវីនដូកម្រិážáž€áŸ†áž–ូលមិនបានសម្រáŸáž…។ + + + Invalid Cipher + Cipher មិនážáŸ’រឹមážáŸ’រូវ + + + Invalid KDF + KDF មិន​ážáŸ’រឹមážáŸ’រូវ + + + Access to all entries is denied + + + + allow screenshots and app recording (Windows/macOS) + + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + + + + Credential is excluded + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Passkeys + + + + AES initialization failed + + + + AES encrypt failed + + + + Failed to store in Linux Keyring + + + + Polkit returned an error: %1 + + + + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + + + + Failed to init KeePassXC crypto. + មិនបានសម្រáŸáž…ក្នុងការបង្កើážáž€áž¶ážšáž”ំលែងកូដ KeePassXC។ + + + Failed to encrypt key data. + បានបរាជáŸáž™áž€áŸ’នុងការអ៊ិនគ្រីបទិន្ននáŸáž™áž‚ន្លឹះ។ + + + Failed to get Windows Hello credential. + បានបរាជáŸáž™áž€áŸ’នុងការទទួលបាន Windows Hello។ + + + Failed to decrypt key data. + មិនបានសម្រáŸáž…ក្នុងការឌិគ្រីបទិន្ននáŸáž™ážŸáŸ„។ + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length + + + + + QtIOCompressor + + Internal zlib error when compressing: + បញ្ហា zlib ážáž¶áž„ក្នុងនៅពáŸáž›áž€áŸ†áž–ុងបង្ហាប់៖ + + + Error writing to underlying device: + បញ្ហាក្នុងការសរសáŸážšáž‘ៅកាន់ឧបករណáŸáž˜áž¼áž›ážŠáŸ’ឋាន៖ + + + Error opening underlying device: + បញ្ហាក្នុងការបើកឧបករណáŸáž˜áž¼áž›ážŠáŸ’ឋាន៖ + + + Error reading data from underlying device: + បញ្ហាក្នុងការអានទិន្ននáŸáž™áž–ីឧបករណáŸáž˜áž¼áž›ážŠáŸ’ឋាន៖ + + + Internal zlib error when decompressing: + បញ្ហា zlib ážáž¶áž„ក្នុងនៅពáŸáž›áž€áŸ†áž–ុងពន្លា៖ + + + + QtIOCompressor::open + + The gzip format not supported in this version of zlib. + ទម្រង់ gzip មិនážáŸ’រូវបានប្រើប្រាស់នៅក្នុងកំណែ zlib áž“áŸáŸ‡áž‘áŸáŸ” + + + Internal zlib error: + បញ្ហា zlib ážáž¶áž„ក្នុង៖ + + + + ReportsWidgetBrowserStatistics + + Double-click entries to edit. + ចុចពីរដងទៅលើទិន្ននáŸáž™áž”ញ្ចូលដើម្បីកែសម្រួល។ + + + List of entry URLs + បញ្ជីនៃទិន្ននáŸáž™áž”ញ្ចូល URLs + + + Entry has no URLs set + ទិន្ននáŸáž™áž”ញ្ចូលមិនមាន URLs កំណážáŸ‹áž‘០+ + + Allowed URLs + URL ដែលបានអនុញ្ញាហ+ + + Entry has no Browser Integration settings + ទិន្ននáŸáž™áž”ញ្ចូលមិនមានការកំណážáŸ‹áž“ៃការរួមបញ្ចូលកម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážáž‘០+ + + Denied URLs + បានបដិសáŸáž’ URLs + + + (Excluded) + មិនរាប់បញ្ចូល + + + This entry is being excluded from reports + ទិន្ននáŸáž™áž”ញ្ចូលនáŸáŸ‡áž€áŸ†áž–ុងដកចáŸáž‰áž–ីរបាយការណ០+ + + Please wait, browser statistics is being calculated… + សូមមáŸážáŸ’ážáž¶ážšáž„់ចាំ ស្ážáž·ážáž·áž€áž˜áŸ’មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážáž€áŸ†áž–ុងគណនា… + + + No entries with a URL, or none has browser extension settings saved. + មិនមានទិន្ននáŸáž™áž”ញ្ចូលដែលមាន URL ឬមិនមានការកំណážáŸ‹áž€áž˜áŸ’មវិធីបន្ážáŸ‚ម​របស់កម្មវិធីរុករកážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិážážŠáŸ‚លបានរក្សាទុកទáŸáŸ” + + + Title + ចំណងជើង + + + Path + ផ្លូវ + + + URLs + URLs + + + Edit Entry… + កែទិន្ននáŸáž™áž”ញ្ចូល… + + + Delete Entry(s)… + លុបការបញ្ចូល… + + + Exclude from reports + មិនរាប់បញ្ចូលពីរបាយការណ០+ + + Only show entries that have a URL + + + + Only show entries that have been explicitly allowed or denied + + + + Show expired entries + + + + (Expired) + + + + + ReportsWidgetHealthcheck + + Hover over reason to show additional details. Double-click entries to edit. + ដាក់ពីលើហáŸážáž»áž•លដើម្បីបង្ហាញពáŸážáŸŒáž˜áž¶áž“លម្អិážáž”ន្ážáŸ‚ម។ ចុចទ្វáŸážŠáž„លើទិន្ននáŸáž™áž”ញ្ចូលដើម្បីកែ។ + + + Bad + Password quality + មិនល្អ + + + Bad — password must be changed + មិនល្អ - ážáŸ’រូវážáŸ‚ផ្លាស់ប្ážáž¼ážšáž–ាក្យសម្ងាážáŸ‹ + + + Poor + Password quality + ážáŸ’សោយ + + + Poor — password should be changed + ážáŸ’សោយ - គួរážáŸ‚ផ្លាស់ប្ážáž¼ážšáž–ាក្យសម្ងាážáŸ‹ + + + Weak + Password quality + ážáŸ’សោយ + + + Weak — consider changing the password + ážáŸ’សោយ — សូមពិចារណាផ្លាស់ប្ážáž¼ážšáž–ាក្យសម្ងាážáŸ‹áž“áŸáŸ‡ + + + (Excluded) + (មិនរាប់បញ្ចូល) + + + This entry is being excluded from reports + ទិន្ននáŸáž™áž”ញ្ចូលនáŸáŸ‡áž€áŸ†áž–ុងដកចáŸáž‰áž–ីរបាយការណ០+ + + Please wait, health data is being calculated… + សូមមáŸážáŸ’ážáž¶ážšáž„់ចាំ ទិន្ននáŸáž™ážŸáž»ážáž—ាពកំពុងគណនា… + + + Congratulations, everything is healthy! + សូមអបអរសាទរ អ្វីៗមើលទៅល្អណាស់! + + + Title + ចំណងជើង + + + Path + ផ្លូវ + + + Score + ពិន្ទុ + + + Reason + áž áŸážáž»áž•áž› + + + Edit Entry… + កែទិន្ននáŸáž™áž”ញ្ចូល… + + + Delete Entry(s)… + លុបការបញ្ចូល… + + + Exclude from reports + មិនរាប់បញ្ចូលពីរបាយការណ០+ + + Show expired entries + + + + Show entries that have been excluded from reports + + + + (Expired) + + + + + ReportsWidgetHibp + + CAUTION: This report requires sending information to the Have I Been Pwned online service (https://haveibeenpwned.com). If you proceed, your database passwords will be cryptographically hashed and the first five characters of those hashes will be sent securely to this service. Your database remains secure and cannot be reconstituted from this information. However, the number of passwords you send and your IP address will be exposed to this service. + ការប្រុងប្រយáŸážáŸ’ន៖ របាយការណáŸáž“áŸáŸ‡ážáž˜áŸ’រូវឱ្យផ្ញើពáŸážáŸŒáž˜áž¶áž“ទៅកាន់សáŸážœáž¶áž¢áŸŠáž¸áž“ធឺណិážážˆáŸ’មោះ Have I Been Pwned (https://haveibeenpwned.com)។ ប្រសិនបើអ្នកបន្ហនោះពាក្យសម្ងាážáŸ‹áž˜áž¼áž›ážŠáŸ’ឋានទិន្ននáŸáž™ážšáž”ស់អ្នកនឹងážáŸ’រូវបានបំប្លែងជាកូដអážáŸážš ហើយážáž½áž¢áž€áŸ’សរប្រាំនៃការផ្សំគ្នាដំបូងទាំងនោះនឹងážáŸ’រូវបានផ្ញើដោយសុវážáŸ’ážáž·áž—ាពទៅកាន់សáŸážœáž¶áž“áŸáŸ‡áŸ” មូលដ្ឋានទិន្ននáŸáž™ážšáž”ស់អ្នកនៅážáŸ‚មានសុវážáŸ’ážáž·áž—áž¶áž– និងមិនអាចផ្គុំបង្កើážáž¡áž¾áž„វិញពីពáŸážáŸŒáž˜áž¶áž“áž“áŸáŸ‡áž”ានទáŸáŸ” ទោះយ៉ាងណាកáŸážŠáŸ„áž™ ចំនួនពាក្យសម្ងាážáŸ‹ážŠáŸ‚លអ្នកផ្ញើ និងអាសយដ្ឋាន IP របស់អ្នកនឹងážáŸ’រូវបានបង្ហាញជាមួយនឹងសáŸážœáž¶áž“áŸáŸ‡áŸ” + + + Perform Online Analysis + ប្រážáž·áž”ážáŸ’ážáž·áž€áž¶ážšážœáž·áž—áž¶áž‚ážáž¶áž˜áž¢áŸŠáž¸áž“ធឺណិហ+ + + Also show entries that have been excluded from reports + បង្ហាញទិន្ននáŸáž™áž”ញ្ចូលដែលបានដកចáŸáž‰áž–ីរបាយការណáŸáž•ងដែរ + + + This build of KeePassXC does not have network functions. Networking is required to check your passwords against Have I Been Pwned databases. + ការបង្កើហKeePassXC áž“áŸáŸ‡áž˜áž·áž“មានមុážáž„ារបណ្ážáž¶áž‰áž‘áŸáŸ” ážáž˜áŸ’រូវឱ្យមានការភ្ជាប់បណ្ážáž¶áž‰ážŠáž¾áž˜áŸ’បីពិនិážáŸ’យមើលពាក្យសម្ងាážáŸ‹ážšáž”ស់អ្នកប្រឆាំងនឹងមូលដ្ឋានទិន្ននáŸáž™ážšáž”ស់ Have I Been Pwned។ + + + Congratulations, no exposed passwords! + សូមអបអរសាទរ គ្មានពាក្យសម្ងាážáŸ‹áž›áŸáž…áž…áŸáž‰áž“ោះទáŸ! + + + Title + ចំណងជើង + + + Path + ផ្លូវ + + + Password exposed… + ពាក្យសម្ងាážáŸ‹ážáŸ’រូវបានបង្ហាញ… + + + (Excluded) + (មិនរាប់បញ្ចូល) + + + This entry is being excluded from reports + ទិន្ននáŸáž™áž”ញ្ចូលនáŸáŸ‡áž€áŸ†áž–ុងដកចáŸáž‰áž–ីរបាយការណ០+ + + once + Password exposure amount + ម្ážáž„ + + + up to 10 times + Password exposure amount + ážšáž áž¼ážážŠáž›áŸ‹ 10 ដង + + + up to 100 times + Password exposure amount + ážšáž áž¼ážážŠáž›áŸ‹ 100 ដង + + + up to 1000 times + Password exposure amount + ážšáž áž¼ážážŠáž›áŸ‹ 1000 ដង + + + up to 10,000 times + Password exposure amount + ážšáž áž¼ážážŠáž›áŸ‹ 10,000 ដង + + + up to 100,000 times + Password exposure amount + ážšáž áž¼ážážŠáž›áŸ‹ 100,000 ដង + + + up to a million times + Password exposure amount + ážšáž áž¼ážážŠáž›áŸ‹áž˜áž½áž™áž›áž¶áž“ដង + + + millions of times + Password exposure amount + រាប់លានដង + + + Edit Entry… + កែទិន្ននáŸáž™áž”ញ្ចូល… + + + Delete Entry(s)… + លុបការបញ្ចូល… + + + Exclude from reports + មិនរាប់បញ្ចូលពីរបាយការណ០+ + + + ReportsWidgetPasskeys + + Export + នំាចáŸáž‰ + + + Import + នាំចូល + + + List of entry URLs + បញ្ជីនៃទិន្ននáŸáž™áž”ញ្ចូល URLs + + + Please wait, list of entries with Passkeys is being updated… + + + + No entries with Passkeys. + + + + Title + ចំណងជើង + + + Path + ផ្លូវ + + + Username + ឈ្មោះអ្នកប្រើ + + + URLs + URLs + + + Edit Entry… + កែទិន្ននáŸáž™áž”ញ្ចូល… + + + Delete Entry(s)… + លុបការបញ្ចូល… + + + Relying Party + + + + Show expired entries + + + + (Expired) + + + + + ReportsWidgetStatistics + + Hover over lines with error icons for further information. + ដាក់ពីលើបន្ទាážáŸ‹ážŠáŸ‚លមានរូបបញ្ហាសម្រាប់ពáŸážáŸŒáž˜áž¶áž“បន្ážáŸ‚ម។ + + + Name + ឈ្មោះ + + + Value + ážáž˜áŸ’លៃ + + + Please wait, database statistics are being calculated… + សូមមáŸážáŸ’ážáž¶ážšáž„់ចាំ ស្ážáž·ážáž·áž˜áž¼áž›ážŠáŸ’ឋានទិន្ននáŸáž™áž€áŸ†áž–ុងគណនា… + + + Database name + ឈ្មោះមូលដ្ឋានទិន្ននáŸáž™ + + + Description + ការពិពណ៌នា + + + Location + ទីážáž¶áŸ†áž„ + + + Database created + មូលដ្ឋានទិន្ននáŸáž™ážŠáŸ‚លបានបង្កើហ+ + + Last saved + បានរក្សាទុកចុងក្រោយ + + + Unsaved changes + ការផ្លាស់ប្ážáž¼ážšážŠáŸ‚លមិនបានរក្សាទុក + + + yes + បាទ/ចាស + + + no + ទ០+ + + The database was modified, but the changes have not yet been saved to disk. + បានកែប្រែមូលដ្ឋានទិន្ននáŸáž™ážšáž½áž…ហើយ ប៉ុន្ážáŸ‚ការផ្លាស់ប្ážáž¼ážšáž˜áž·áž“ទាន់បានរក្សាទុកក្នុងážáž¶ážŸáž“ៅឡើយទáŸáŸ” + + + Number of groups + ចំនួនក្រុម + + + Number of entries + ចំនួននៃទិន្ននáŸáž™áž”ញ្ចូល + + + Number of expired entries + ចំនួននៃទិន្ននáŸáž™áž”ញ្ចូលបានផុážáž€áŸ†ážŽážáŸ‹ + + + The database contains entries that have expired. + មូលដ្ឋានទិន្ននáŸáž™áž˜áž¶áž“ទិន្ននáŸáž™áž”ញ្ចូលដែលផុážáž€áŸ†ážŽážáŸ‹áž áž¾áž™áŸ” + + + Unique passwords + ពាក្យសម្ងាážáŸ‹áž–ិសáŸážŸ + + + Non-unique passwords + សម្ងាážáŸ‹áž˜áž·áž“មានលក្ážážŽáŸˆáž–ិសáŸážŸ + + + More than 10% of passwords are reused. Use unique passwords when possible. + មានពាក្យសម្ងាážáŸ‹ážáŸ’រូវបានប្រើប្រាស់ឡើងវិញច្រើនជាង 10% ។ ប្រើប្រាស់ពាក្យសម្ងាážáŸ‹ážáŸ‚មួយគážáŸ‹áž“ៅពáŸáž›ážŠáŸ‚លអាចធ្វើបាន។ + + + Maximum password reuse + ការប្រើប្រាស់ពាក្យសម្ងាážáŸ‹áž¡áž¾áž„វិញអážáž·áž”រមា + + + Some passwords are used more than three times. Use unique passwords when possible. + ពាក្យ​សម្ងាážáŸ‹â€‹ážáŸ’លះ​ážáŸ’រូវ​បាន​ប្រើប្រាស់​ច្រើន​ជាង​បី​ដង។ ប្រើប្រាស់ពាក្យសម្ងាážáŸ‹ážáŸ‚មួយគážáŸ‹ នៅពáŸáž›ážŠáŸ‚លអាចធ្វើបាន។ + + + Number of short passwords + ចំនួនពាក្យសម្ងាážáŸ‹ážáŸ’លី + + + Recommended minimum password length is at least 8 characters. + បានណែនាំឲ្យប្រើប្រវែងពាក្យសម្ងាážáŸ‹áž¢áž”្បបរមាយ៉ាងហោចណាស់ 8 ážáž½áž¢áž€áŸ’សរ។ + + + Number of weak passwords + ចំនួនពាក្យសម្ងាážáŸ‹ážáŸ’សោយ + + + Recommend using long, randomized passwords with a rating of 'good' or 'excellent'. + ណែនាំឲ្យប្រើប្រាស់ពាក្យសម្ងាážáŸ‹ážœáŸ‚áž„ និងដោយចៃដន្យដោយមានការវាយážáž˜áŸ’លៃážáž¶ 'ល្អ' ឬ 'ល្អឥážážáŸ’ចោះ'។ + + + Entries excluded from reports + បានដកចáŸáž‰áž‘ិន្ននáŸáž™áž”ញ្ចូលពីរបាយការណ០+ + + Excluding entries from reports, e. g. because they are known to have a poor password, isn't necessarily a problem but you should keep an eye on them. + ដោយមិនរាប់បញ្ចូលទិន្ននáŸáž™áž”ញ្ចូលពីរបាយការណ០ឧ. ដោយសារ​ពួកគáŸâ€‹áž”ាន​​ដឹង​ážáž¶â€‹ មាន​លáŸážâ€‹ážŸáž˜áŸ’ងាážáŸ‹ážáŸ’សោយ វាមិន​មែន​ជា​បញ្ហា​អីនោះ​ទ០ប៉ុន្ážáŸ‚​អ្នក​គួរ​ážáŸ‚​ážáž¶áž˜â€‹ážŠáž¶áž“​មើលការបញ្ចូលទាំងនោះ។ + + + Average password length + ប្រវែងពាក្យសម្ងាážáŸ‹áž‡áž¶áž˜áž’្យម + + + %1 characters + %1 ážáž½áž¢áž€áŸ’សរ + + + Average password length is less than ten characters. Longer passwords provide more security. + ប្រវែងពាក្យសម្ងាážáŸ‹áž‡áž¶áž˜áž’្យម គឺážáž·áž…ជាងដប់ážáž½áž¢áž€áŸ’សរ។ ពាក្យ​សម្ងាážáŸ‹ážŠáŸ‚ល​វែង​ជាង​ផ្ážáž›áŸ‹â€‹ážŸáž»ážœážáŸ’ážáž·áž—áž¶áž–ážáŸ’លាំង​បន្ážáŸ‚ម​ទៀážáŸ” + + + + SSHAgent + + Agent connection failed. + ការភ្ជាប់ភ្នាក់ងារមិនបានសម្រáŸáž…áž‘áŸáŸ” + + + Agent protocol error. + បញ្ហាពិធីការភ្នាក់ងារ។ + + + No agent running, cannot add identity. + មិនអាចបន្ážáŸ‚មអážáŸ’ážážŸáž‰áŸ’ញាណបានដោយសារគ្មានភ្នាក់ងារដែលកំពុងដំណើរការ។ + + + Key identity ownership conflict. Refusing to add. + ជម្លោះកម្មសិទ្ធិអážáŸ’ážážŸáž‰áŸ’ញាណសោ។ កំពុងបដិសáŸáž’ក្នុងការបន្ážáŸ‚ម។ + + + Agent refused this identity. Possible reasons include: + ភ្នាក់ងារបានបដិសáŸáž’នឹងអážáŸ’ážážŸáž‰áŸ’ញាណនáŸáŸ‡áŸ” អាចមានមូលហáŸážáž»áž˜áž€áž–ី៖ + + + The key has already been added. + បានបន្ážáŸ‚មសោរួចហើយ។ + + + Restricted lifetime is not supported by the agent (check options). + អាយុកាលដែលបានដាក់កំហិážáž˜áž·áž“ážáŸ’រូវបានគាំទ្រដោយភ្នាក់ងារ (ជម្រើសážáŸ’ážšáž½ážáž–ិនិážáŸ’áž™)។ + + + A confirmation request is not supported by the agent (check options). + ការស្នើសុំបញ្ជាក់មិនážáŸ’រូវបានប្រើប្រាស់ដោយភ្នាក់ងារទ០(ពិនិážáŸ’យមើលជម្រើស)។ + + + Security keys are not supported by the agent or the security key provider is unavailable. + ភ្នាក់ងារមិនអាចប្រើប្រាស់សោសុវážáŸ’ážáž·áž—ាពបានទ០ឬក្រុមហ៊ុនផ្ážáž›áŸ‹ážŸáŸ„សុវážáŸ’ážáž·áž—ាពមិនអាចប្រើប្រាស់បានទáŸáŸ” + + + No agent running, cannot remove identity. + មិនអាចលុបអážáŸ’ážážŸáž‰áŸ’ញាណបានដោយសារគ្មានភ្នាក់ងារដែលកំពុងដំណើរការ ។ + + + No agent running, cannot list identities. + មិនអាចចុះបញ្ជីអážáŸ’ážážŸáž‰áŸ’ញាណបានដោយសារគ្មានភ្នាក់ងារដែលកំពុងដំណើរការ ។ + + + + SearchHelpWidget + + Search Help + ស្វែងរកជំនួយ + + + Search terms are as follows: [modifiers][field:]["]term["] + ស្វែងរកពាក្យមានដូចážáž¶áž„ក្រោម៖ [modifiers][field:]["]term["] + + + Every search term must match (ie, logical AND) + រាល់ពាក្យស្វែងរកទាំងអស់ážáŸ’រូវážáŸ‚ផ្គូផ្គង (áž§. ឡូជីážáž› និង) + + + Modifiers + ឧបករណáŸáž€áŸ‚ប្រែ + + + exclude term from results + មិនរាប់បញ្ចូលទៅលើពាក្យពីលទ្ធផល + + + match term exactly + ពាក្យដែលážáŸ’រូវគ្នាពិážáž”្រាកដ + + + use regex in term + ប្រើកន្សោមធម្មážáž¶ (regex) ក្នុងមុážáž„ារស្ážáž¶áž“ីយ + + + Fields + កន្លែង​បញ្ចូល + + + Term Wildcards + ពាក្យអក្សរជំនួស + + + match anything + ážáŸ’រូវគ្នាជាមួយអ្វីមួយ + + + match one + ážáŸ’រូវគ្នាមួយ + + + logical OR + ឡូជីážáž› OR + + + Examples + ឧទាហរណ០+ + + + SearchWidget + + Search + ស្វែងរក​ + + + Search Help + ស្វែងរកជំនួយ + + + Save Search + រក្សាទុកការស្វែងរក + + + Search (%1)… + Search placeholder text, %1 is the keyboard shortcut + ស្វែងរក (%1)… + + + Case sensitive + ប្រកាន់​អក្សរ​ážáž¼áž…​ធំ + + + Limit search to selected group + កំណážáŸ‹áž€áž¶ážšážŸáŸ’វែងរកទៅកាន់ក្រុមដែលបានជ្រើសរើស + + + + SettingsClientModel + + Application + កម្មវិធី + + + PID + PID + + + DBus Address + អាសយដ្ឋាន DBus + + + Manage + គ្រប់គ្រង + + + + SettingsDatabaseModel + + File Name + ឈ្មោះ​ឯកសារ + + + Group + ក្រុម + + + Manage + គ្រប់គ្រង + + + + SettingsWidgetFdoSecrets + + Options + ជម្រើស + + + Enable KeepassXC Freedesktop.org Secret Service integration + បើក​ការរួមបញ្ចូលសáŸážœáž¶ážŸáž˜áŸ’ងាážáŸ‹ KeepassXC Freedesktop.org + + + General + ទូទៅ + + + Show notification when passwords are retrieved by clients + ការបង្ហាញសារជូនដំណឹងនៅពáŸáž›ážŠáŸ‚លពាក្យសម្ងាážáŸ‹ážáŸ’រូវបានអážáž·ážáž·áž‡áž“យកážáŸ’រឡប់ទៅវិញ + + + <html><head/><body><p>If enabled, any attempt to read a password must be confirmed. Otherwise, clients can read passwords without confirmation when the database is unlocked.</p><p>This option only covers the access to the password of an entry. Clients can always enumerate the items of exposed databases and query their attributes.</p></body></html> + <html><head/><body><p>ប្រសិនបើបានអនុញ្ញាហការប៉ុនប៉ងណាមួយដើម្បីអានពាក្យសម្ងាážáŸ‹ážáŸ’រូវážáŸ‚បញ្ជាក់។ បើមិនអញ្ចឹងទ០អážáž·ážáž·áž‡áž“អាចអានពាក្យសម្ងាážáŸ‹ážŠáŸ„យគ្មានការបញ្ជាក់ នៅពáŸáž›ážŠáŸ‚លមូលដ្ឋានទិន្ននáŸáž™ážáŸ’រូវបានដោះសោ។</p><p>ជម្រើសនáŸáŸ‡áž‚្របដណ្ážáž”់ážáŸ‚ការចូលប្រើពាក្យសម្ងាážáŸ‹áž“ៃធាážáž»áž…ូលប៉ុណ្ណោះ។ អážáž·ážáž·áž‡áž“អាចសង្ážáŸáž”áž’áž¶ážáž»áž“ៃ មូលដ្ឋានទិន្ននáŸáž™ážŠáŸ‚លបានលាážážáŸ’រដាងជានិច្ចហើយសួរពីលក្ážážŽáŸˆážšáž”ស់ពួកគáŸáŸ”</p></body></html> + + + Confirm when passwords are retrieved by clients + បញ្ជាក់នៅពáŸáž›ážŠáŸ‚លពាក្យសម្ងាážáŸ‹ážáŸ’រូវបានទាញយកដោយអážáž·ážáž·áž‡áž“ + + + <html><head/><body><p><span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">This setting does + not override disabling recycle bin prompts</span></p></body></html> + + <html><head/><body><p><span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">ការ​កំណážáŸ‹â€‹áž“áŸáŸ‡â€‹áž˜áž·áž“ + ​បដិសáŸáž’​ការ​បិទ​ការ​ជំរុញ​ធុង​សំរាម​ទáŸ</span></p></body></html> + + + + Confirm when clients request entry deletion + បញ្ជាក់នៅពáŸáž›ážŠáŸ‚លអážáž·ážáž·áž‡áž“ស្នើសុំការលុបទិន្ននáŸáž™áž”ញ្ចូល + + + <html><head/><body><p>This improves compatibility with certain applications + which search for password without unlocking the database first.</p><p>But enabling this may also + crash the client if the database can not be unlocked within a certain timeout. (Usually 25s, but may be a + different value set in applications.)</p></body></html> + + <html><head/><body><p>áž“áŸáŸ‡áž”ង្កើនភាពឆបគ្នាជាមួយកម្មវិធីជាក់លាក់ + ដែលស្វែងរកពាក្យសម្ងាážáŸ‹ážŠáŸ„យមិនបានដោះសោមូលដ្ឋានទិន្ននáŸáž™áž‡áž¶áž˜áž»áž“។</p><p>ប៉ុន្ážáŸ‚ការបើកដំណើរការនáŸáŸ‡áž€áŸáž¢áž¶áž… + ធ្វើឱ្យគាំងម៉ាស៊ីនភ្ញៀវ ប្រសិនបើមូលដ្ឋានទិន្ននáŸáž™áž˜áž·áž“អាចដោះសោក្នុងរយៈពáŸáž›áž‡áž¶áž€áŸ‹áž›áž¶áž€áŸ‹ážŽáž¶áž˜áž½áž™áŸ” (ជាធម្មážáž¶ 25 វិនាទី ប៉ុន្ážáŸ‚អាចជា + ការកំណážáŸ‹ážáž˜áŸ’លៃážáž»ážŸáž‚្នាក្នុងកម្មវិធី។)</p></body></html> + + + + Prompt to unlock database before searching + សារជូនដំណឹងឱ្យដោះសោមូលដ្ឋានទិន្ននáŸáž™áž˜áž»áž“áž–áŸáž›áž’្វើការស្វែងរក + + + Exposed database groups: + ក្រុមឃ្លំាងទិន្ននáŸáž™ážŠáŸ‚លបានបង្ហាញ៖ + + + Authorization + ការអនុញ្ញាហ+ + + These applications are currently connected: + ážáŸ’មីៗនáŸáŸ‡ កម្មវិធីទាំងនáŸáŸ‡ážáŸ’រូវបានážáž—្ជាប់៖ + + + <b>Warning:</b> + <b>ការព្រមាន៖</b> + + + Save current changes to activate the plugin and enable editing of this section. + ក្សាការផ្លាស់ប្ážáž¼ážšáž”ច្ចុប្បន្នភាពទុក ដើម្បីដំណើរការទិន្ននáŸáž™áž‡áŸ†áž“ួយ និងបើកការកែសម្រួលផ្នែកនáŸáŸ‡áŸ” + + + + SettingsWidgetKeeShare + + Active + សកម្ម + + + Allow KeeShare imports + អនុញ្ញាážáž±áŸ’áž™ KeeShare នាំចូល + + + Allow import + អនុញ្ញាážáž±áŸ’យនាំចូល + + + Allow KeeShare exports + អនុញ្ញាážáž±áŸ’áž™ KeeShare នាំចáŸáž‰ + + + Allow export + អនុញ្ញាážáž±áŸ’យនាំចáŸáž‰ + + + Only show warnings and errors + មានážáŸ‚បង្ហាញការព្រមាននិងកំហុសážáŸ‚ប៉ុណ្ណោះ + + + Own certificate + វិញ្ញាបនបážáŸ’រផ្ទាល់ážáŸ’លួន + + + Signer: + អ្នកចុះហážáŸ’ážáž›áŸážáž¶ + + + Generate new certificate + បង្កើážážœáž·áž‰áŸ’ញាបនបážáŸ’ážšážáŸ’មី + + + Generate + បង្កើហ+ + + Fingerprint: + ស្នាមម្រាមដៃ៖ + + + Signer name field + ឈ្មោះអ្នកចុះហážáŸ’ážáž›áŸážáž¶ + + + Fingerprint + ស្នាមម្រាមដៃ + + + + ShareExport + + Could not write export container. + មិនអាចសរសáŸážšáž›áž¾áž€áž»áž„ážážºáž“áŸážšáž“ាំចáŸáž‰áž”ានទáŸáŸ” + + + + ShareImport + + Successful import + ការនាំចូលដោយជោគជáŸáž™ + + + + ShareObserver + + Import from %1 failed (%2) + ការនាំចូលពី % 1 មិនបានសម្រáŸáž… (% 2) + + + Import from %1 successful (%2) + នាំចូលពី % 1 ដោយជោគជáŸáž™ (% 2) + + + Imported from %1 + បាននាំចូលពី% 1 + + + Multiple import source path to %1 in %2 + ផ្លូវប្រភពនាំចូលជាច្រើនទៅ %1 ក្នុង %2 + + + Conflicting export target path %1 in %2 + កំពុង​ប៉ះទង្គិច​ផ្លូវ​គោលដៅ​នាំចáŸáž‰ %1 ក្នុង %2 + + + Export to %1 failed (%2) + ការនាំចáŸáž‰áž‘ៅ %1 បានបរាជáŸáž™ (%2) + + + Export to %1 successful (%2) + ការនាំចáŸáž‰áž‘ៅ %1 ទទួលបានជោគជáŸáž™ (%2) + + + Export to %1 + នាំចáŸáž‰áž‘ៅ %1 + + + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + + + TagModel + + Clear Search + ជម្រះការស្វែងរក + + + All Entries + ទិន្ននáŸáž™áž”ញ្ចូលទាំងអស់ + + + Expired + ផុážáž€áŸ†ážŽážáŸ‹ + + + Weak Passwords + ពាក្យសម្ងាážáŸ‹ážáŸ’សោយ + + + + TagView + + Remove Search + លុបការស្វែងរក + + + Remove Tag + លុបស្លាកចáŸáž‰ + + + Confirm Remove Tag + បញ្ជាក់ការដកចáŸáž‰áž’áŸáž€ + + + Remove tag "%1" from all entries in this database? + ដកចáŸáž‰ážŸáŸ’លាក "%1" ពីការបញ្ចូលទាំងអស់នៅក្នុងមូលដ្ឋានទិន្ននáŸáž™áž“áŸáŸ‡áž¬? + + + + TotpDialog + + Timed Password + ពាក្យសម្ងាážáŸ‹ážŠáŸ‚លមានកំណážáŸ‹áž–áŸáž› + + + Copy + ចម្លង + + + Expires in <b>%n</b> second(s) + ផុážáž€áŸ†ážŽážáŸ‹áž“ៅក្នុង <b>%n</b> វិនាទី + + + + TotpExportSettingsDialog + + Copy + ចម្លង + + + NOTE: These TOTP settings are custom and may not work with other authenticators. + TOTP QR code dialog warning + ចំណាំ៖ ការកំណážáŸ‹ TOTP ទាំងនáŸáŸ‡áž˜áž¶áž“លក្ážážŽáŸˆáž•្ទាល់ážáŸ’លួន ហើយប្រហែលជាមិនដំណើរការជាមួយនឹងកម្មវិធីផ្ទៀងផ្ទាážáŸ‹áž•្សáŸáž„ទៀážáž‘áŸáŸ” + + + There was an error creating the QR code. + មាន​បញ្ហាមួយ​ក្នុង​ការ​បង្កើážâ€‹áž€áž¼ážŠ QR។ + + + Closing in %1 seconds. + កំពុងបិទក្នុងរយៈពáŸáž› % 1 វិនាទី។ + + + + TotpSetupDialog + + Setup TOTP + ដំឡើង TOTP + + + Secret Key: + ពាក្យសម្ងាážáŸ‹ + + + Secret key must be in Base32 format + សោសម្ងាážáŸ‹ážáŸ’រូវážáŸ‚ជាទម្រង់ Base32 + + + Secret key field + កន្លែងបញ្ចូលសោសម្ងាážáŸ‹ + + + Default settings (RFC 6238) + ការកំណážáŸ‹ážáž¶áž˜áž›áŸ†áž“ាំដើម (RFC 6238) + + + Steam® settings + ការកំណážáŸ‹ Steam® + + + Custom settings: + ការកំណážáŸ‹áž•្ទាល់ážáŸ’លួន: + + + Custom Settings + ការកំណážáŸ‹áž•្ទាល់ážáŸ’លួន + + + Algorithm: + វិធី​ដោះស្រាយ​បញ្ហា៖ + + + Time step: + ជំហានពáŸáž›ážœáŸáž›áž¶áŸ– + + + Time step field + កន្លែងបញ្ចូលជំហានពáŸáž›ážœáŸáž›áž¶ + + + sec + Seconds + វិនាទី + + + Code size: + ទំហំកូដ៖ + + + digits + ចំនួនលáŸáž + + + Invalid TOTP Secret + ការសម្ងាážáŸ‹ TOTP មិនážáŸ’រឹមážáŸ’រូវ + + + You have entered an invalid secret key. The key must be in Base32 format. +Example: JBSWY3DPEHPK3PXP + អ្នកបានបញ្ចូលសោសម្ងាážáŸ‹áž˜áž·áž“ážáŸ’រឹមážáŸ’រូវ។ សោážáŸ’រូវážáŸ‚ជាទម្រង់ Base32។ +ឧទាហរណáŸáŸ– JBSWY3DPEHPK3PXP + + + Confirm Remove TOTP Settings + បញ្ជាក់ការដកចáŸáž‰áž€áž¶ážšáž€áŸ†ážŽážáŸ‹ážšáž”ស់ TOTP + + + Are you sure you want to delete TOTP settings for this entry? + ážáž¾áž¢áŸ’នកពិážáž‡áž¶áž…ង់លុបការកំណážáŸ‹ TOTP សម្រាប់ទិន្ននáŸáž™áž”ញ្ចូលនáŸáŸ‡áž˜áŸ‚នទáŸ? + + + + URLEdit + + Invalid URL + URL មិនážáŸ’រឹមážáŸ’រូវ + + + + UpdateCheckDialog + + Checking for updates + ពិនិážáŸ’យរកមើលការធ្វើបច្ចុប្បន្នភាពនានា + + + Checking for updates… + ពិនិážáŸ’យរកមើលការធ្វើបច្ចុប្បន្នភាពនានា… + + + Close + បិទ + + + Software Update + ការអាប់ដáŸážážŸáž¼áž áŸ’វវែរ + + + An error occurred when trying to retrieve update information, please try again later. + បញ្ហាដែលបានកើážáž¡áž¾áž„នៅពáŸáž›áž€áŸ†áž–ុងព្យាយាមទាញយកពáŸážáŸŒáž˜áž¶áž“ážáŸ’មីៗ សូមព្យាយាមម្ážáž„ទៀážáž“ៅពáŸáž›áž€áŸ’រោយ។ + + + <strong>A new version is available.</strong><br/>KeePassXC %1 can be <a href="https://keepassxc.org/download/">downloaded here</a>. + <strong>មានកំណែážáŸ’មីអាចប្រើប្រាស់បានហើយ</strong><br/>KeePassXC %1 អាចនឹងទាញយក <a href="https://keepassxc.org/download/">បាននៅទីនáŸáŸ‡</a>។ + + + You have the latest version of KeePassXC + អ្នកមានកំណែចុងក្រោយបំផុážážšáž”ស់ KeePassXC + + + + WelcomeWidget + + Start storing your passwords securely in a KeePassXC database + ចាប់ផ្ážáž¾áž˜ážšáž€áŸ’សាទុកពាក្យសម្ងាážáŸ‹ážšáž”ស់អ្នកដោយសុវážáŸ’ážáž·áž—ាពនៅក្នុងឃ្លាំងទិន្ននáŸáž™ KeePassXC + + + Recent databases + ទិន្ននáŸáž™ážáŸ’មីៗ + + + Open a recent database + បើកឃ្លំាងទិន្ននáŸáž™ážáŸ’មីៗ + + + Welcome to KeePassXC %1 + សូមស្វាគមនáŸáž˜áž€áž€áž¶áž“់ KeePassXC % 1 + + + Create Database + + + + Open Database + + + + Import File + + + + + WinUtils + + Invalid key code + កូដសោមិនážáŸ’រឹមážáŸ’រូវ + + + Global shortcut already registered to %1 + ផ្លូវកាážáŸ‹áž‘ូទៅបានចុះឈ្មោះរួចហើយទៅកាន់ % 1 + + + Could not register global shortcut + មិនអាចចុះឈ្មោះផ្លូវកាážáŸ‹áž‘ូទៅបានទ០+ + + + YubiKey + + General: + ទូទៅ៖ + + + Could not find interface for hardware key with serial number %1. Please connect it to continue. + មិនអាចស្វែងរកផ្ទៃសម្រាប់ឃីហាážážœáŸ‚រដែលមានលáŸážážŸáŸŠáŸážšáž¸ % 1។ សូមភ្ជាប់លáŸážáž›áŸážážŸáŸŠáŸážšáž¸ážŠáž¾áž˜áŸ’បីបន្ážáŸ” + + + + YubiKeyEditWidget + + Hardware key slot selection + ការជ្រើសរើសរន្ធដោážážƒáž¸áž áž¶ážážœáŸ‚ážš + + + Could not find any hardware keys! + រក​មិន​ឃើញឃីហាážážœáŸ‚រណាមួយទáŸ! + + + Selected hardware key slot does not support challenge-response! + រន្ធដោážážƒáž¸áž áž¶ážážœáŸ‚រដែលបានជ្រើសរើសមិនប្រើប្រាស់ដំណើរការផ្ទៀងផ្ទាážáŸ‹áž”ានទáŸ! + + + Challenge-Response + ដំណើរការផ្ទៀងផ្ទាážáŸ‹ + + + Add Challenge-Response + បន្ážáŸ‚មដំណើរការផ្ទៀងផ្ទាážáŸ‹ + + + Change Challenge-Response + ផ្លាស់ប្ážáž¼ážšážŠáŸ†ážŽáž¾ážšáž€áž¶ážšáž•្ទៀងផ្ទាážáŸ‹ + + + Remove Challenge-Response + ដក​ចáŸáž‰ážŠáŸ†ážŽáž¾ážšáž€áž¶ážšáž•្ទៀងផ្ទាážáŸ‹ + + + Challenge-Response set, click to change or remove + ការកំណážáŸ‹ážŠáŸ†ážŽáž¾ážšáž€áž¶ážšáž•្ទៀងផ្ទាážáŸ‹ážŠáŸ„យចុចផ្លាស់ប្ážáž¼ážš ឬដកចáŸáž‰ + + + Detecting hardware keys… + កំពុងរកឃើញឃីហាážážœáŸ‚រ… + + + No hardware keys detected + រកមិនឃើញឃីហាážážœáŸ‚រទ០+ + + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + + + + + YubiKeyInterfacePCSC + + The YubiKey PCSC interface has not been initialized. + មិន​បានចាប់ផ្ážáž¾áž˜áž•្ទៃ YubiKey PCSC áž‘áŸáŸ” + + + Could not find or access hardware key with serial number %1. Please present it to continue. + មិន​អាច​រក​ឃើញ ឬ​ចូលប្រើប្រាស់ឃីហាážážœáŸ‚រដែលមានលáŸážážŸáŸŠáŸážšáž¸ % 1 áž‘áŸáŸ” សូមបង្ហាញលáŸážáž›áŸážážŸáŸŠáŸážšáž¸ážŠáž¾áž˜áŸ’បីបន្ážáŸ” + + + Hardware key is locked or timed out. Unlock or re-present it to continue. + ឃីហាážážœáŸ‚ážšážáŸ’រូវបានទប់ស្កាážáŸ‹ ឬអស់ពáŸáž›áŸ” ឈប់ទប់ស្កាážáŸ‹ ឬបង្ហាញវាឡើងវិញ ដើម្បីបន្ážáŸ” + + + Hardware key was not found or is not configured. + រកមិនឃើញឃីហាážážœáŸ‚ážš ឬមិនážáŸ’រូវបានកំណážáŸ‹ážšáž…នាសម្ពáŸáž“្ធ។ + + + Failed to complete a challenge-response, the PCSC error code was: %1 + បរាជáŸáž™áž€áŸ’នុងការបំពáŸáž‰ážŠáŸ†ážŽáž¾ážšáž€áž¶ážšáž•្ទៀងផ្ទាážáŸ‹ áž›áŸážáž€áž¼ážŠáž”ញ្ហា PCSC គឺ៖ % 1 + + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + ចុច + + + Passive + USB Challenge-Response Key no interaction required + អកម្ម + + + + YubiKeyInterfaceUSB + + Unknown + មិនស្គាល់ + + + Press + USB Challenge-Response Key interaction request + ចុច + + + Passive + USB Challenge-Response Key no interaction required + អកម្ម + + + The YubiKey USB interface has not been initialized. + មិន​បានចាប់ផ្ážáž¾áž˜áž•្ទៃ YubiKey USB áž‘áŸáŸ” + + + Could not find hardware key with serial number %1. Please plug it in to continue. + មិនអាចរកឃើញឃីហាážážœáŸ‚រដែលមានលáŸážážŸáŸŠáŸážšáž¸ % 1 áž‘áŸáŸ” សូមភ្ជាប់វាដើម្បីបន្ážáŸ” + + + Hardware key timed out waiting for user interaction. + ឃីហាážážœáŸ‚របានអស់ពáŸáž›ážšáž„់ចាំអន្ážážšáž€áž˜áŸ’មអ្នកប្រើ។ + + + A USB error occurred when accessing the hardware key: %1 + បញ្ហា USB បានកើážáž¡áž¾áž„នៅពáŸáž›áž€áŸ†áž–ុងឃីចូលប្រើប្រាស់ឃីហាážážœáŸ‚រ៖ % 1 + + + Failed to complete a challenge-response, the specific error was: %1 + បរាជáŸáž™áž€áŸ’នុងការបំពáŸáž‰ážŠáŸ†ážŽáž¾ážšáž€áž¶ážšáž•្ទៀងផ្ទាážáŸ‹ážŠáŸ‚លបញ្ហាជាក់លាក់គឺ៖ % 1 + + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + \ No newline at end of file diff --git a/share/translations/keepassxc_ko.ts b/share/translations/keepassxc_ko.ts index 0034d5c11..3ddac937e 100644 --- a/share/translations/keepassxc_ko.ts +++ b/share/translations/keepassxc_ko.ts @@ -80,6 +80,10 @@ Details ìžì„¸í•œ ì •ë³´ + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + ì„ íƒ ì‚¬í•­ì€ ìš”ì²­í•˜ëŠ” í´ë¼ì´ì–¸íŠ¸ì™€ KeePassXC 둘 다가 실행 ì¤‘ì¸ ë™ì•ˆë§Œ 기억합니다. + Remember 기억 @@ -88,10 +92,6 @@ Allow Selected ì„ íƒ í—ˆìš© - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - ì„ íƒ ì‚¬í•­ì€ ìš”ì²­í•˜ëŠ” í´ë¼ì´ì–¸íŠ¸ì™€ KeePassXC 둘 다가 실행 ì¤‘ì¸ ë™ì•ˆë§Œ 기억합니다. - Deny All && Future 앞으로 ê³„ì† ëª¨ë‘ ê±°ë¶€ @@ -122,6 +122,10 @@ Use OpenSSH OpenSSH 사용 + + Use both agents + ì—ì´ì „트 둘 다 사용 + SSH_AUTH_SOCK override SSH_AUTH_SOCK ìž¬ì •ì˜ @@ -150,10 +154,6 @@ SSH Agent connection is working! SSH ì—ì´ì „íŠ¸ì— ì—°ê²°í•  수 있습니다! - - Use both agents - - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security 보안 + + This setting cannot be enabled when minimize on unlock is enabled. + ì´ ì„¤ì •ì€ ìµœì†Œí™”ë‚˜ 잠금 해제가 활성화ë˜ì–´ 있으면 활성화할 수 없습니다. + Access error for config file %1 설정 íŒŒì¼ %1ì— ì ‘ê·¼í•  수 ì—†ìŒ @@ -256,6 +260,10 @@ Remember previously used databases 과거 ë°ì´í„°ë² ì´ìФ 기억 + + recent files + 최근 íŒŒì¼ + Load previously open databases on startup 시작할 때 ì´ì „ì— ì‚¬ìš©í•œ ë°ì´í„°ë² ì´ìФ 열기 @@ -408,6 +416,10 @@ Toolbar button style: ë„구 ëª¨ìŒ ë‹¨ì¶” 스타ì¼: + + Show passwords in color + 암호 표시 시 ìƒ‰ìƒ ì ìš© + Use monospaced font for notes ë©”ëª¨ì— ê³ ì •í­ ê¸€ê¼´ 사용 @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons 웹 사ì´íЏ ì•„ì´ì½˜ì„ 다운로드할 때 DuckDuckGo 서비스 사용 + + Hide TOTP in the entry preview panel + 항목 미리 보기 패ë„ì—서 TOTP 숨기기 + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 매우 긴 지연 ì‹œê°„ì´ ê°ì§€ë¨, 최대 %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + í•­ëª©ì— PICKCHARS ì†ì„±ì´ ì—†ìŒ: %1 + Invalid conversion type: %1 ìž˜ëª»ëœ ë³€í™˜ 형ì‹: %1 @@ -804,13 +824,13 @@ Ctrl+4 - ê°€ìƒ í‚¤ë³´ë“œ 사용(Windows ì „ìš©)</p> Disable for this site ì´ ì‚¬ì´íЏì—서는 ê±°ë¶€ + + Undo + 실행 취소 + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-브ë¼ìš°ì € 항목 저장 - Ok í™•ì¸ @@ -823,15 +843,72 @@ Ctrl+4 - ê°€ìƒ í‚¤ë³´ë“œ 사용(Windows ì „ìš©)</p> You have multiple databases open. Please select the correct database for saving credentials. 여러 ê°œì˜ ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 열었습니다. -ì¸ì¦ 정보를 저장할 ë°ì´í„°ë² ì´ìŠ¤ë¥¼ ì„ íƒí•˜ì‹­ì‹œì˜¤. +ìžê²© ì¦ëª…ì„ ì €ìž¥í•  ë°ì´í„°ë² ì´ìŠ¤ë¥¼ ì„ íƒí•˜ì‹­ì‹œì˜¤. + + + KeePassXC - Select Database + KeePassXC - ë°ì´í„°ë² ì´ìФ ì„ íƒ + + + + BrowserPasskeysConfirmationDialog + + Cancel + 취소 + + + Update + ì—…ë°ì´íЏ + + + Authenticate + ì¸ì¦ + + + Register new + 지금 ë“±ë¡ + + + Register + ë“±ë¡ + + + Timeout in <b>%n</b> seconds... + <b>%n</b>ì´ˆ 후 시간 초과ë¨... + + + Do you want to register Passkey for: + 다ìŒì˜ Passkey를 등ë¡í•˜ì‹œê² ìŠµë‹ˆê¹Œ? + + + Existing Passkey found. +Do you want to register a new Passkey for: + 기존 Passkey를 찾았습니다. +다ìŒì— 대한 새 Passkey를 등ë¡í•˜ì‹œê² ìŠµë‹ˆê¹Œ? + + + Select the existing Passkey and press Update to replace it. + 기존 Passkey를 ì„ íƒí•˜ê³  ì—…ë°ì´íŠ¸ë¥¼ 누르면 대체합니다. + + + Authenticate Passkey credentials for: + 다ìŒì— 대하여 Passkey ìžê²© ì¦ëª… ì¸ì¦: + + + Relying Party: %1 + ì˜ì¡´í•˜ëŠ” ìƒëŒ€ë°©: %1 + + + Username: %1 + ì‚¬ìš©ìž ì´ë¦„: %1 + + + KeePassXC - Passkey credentials + KeePassXC - Passkey ìžê²© ì¦ëª… BrowserService - - KeePassXC: Create a new group - KeePassXC: 새 그룹 ìƒì„± - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -840,10 +917,6 @@ Do you want to create this group? ì´ ê·¸ë£¹ì„ ìƒì„±í•˜ì‹œê² ìŠµë‹ˆê¹Œ? - - KeePassXC: New key association request - KeePassXC: 새 키 ì—°ê²° 요청 - You have received an association request for the following database: %1 @@ -860,28 +933,16 @@ chrome-laptop. Save and allow access 저장하고 ì ‘ê·¼ 허용 - - KeePassXC: Overwrite existing key? - KeePassXC: 기존 키를 ë®ì–´ì“°ì‹œê² ìŠµë‹ˆê¹Œ? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? ì´ë¦„ì´ "%1"ì¸ ê³µìœ  암호화 키가 ì´ë¯¸ 있습니다. ë®ì–´ì“°ì‹œê² ìŠµë‹ˆê¹Œ? - - KeePassXC: Update Entry - KeePassXC: 항목 ì—…ë°ì´íЏ - Do you want to update the information in %1 - %2? %1 - %2ì˜ ì •ë³´ë¥¼ ì—…ë°ì´íŠ¸í•˜ì‹œê² ìŠµë‹ˆê¹Œ? - - KeePassXC: Delete entry - KeePassXC: 항목 ì‚­ì œ - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -891,50 +952,46 @@ Do you want to delete the entry? - Converting attributes to custom data… - ì†ì„±ì„ ì‚¬ìš©ìž ì •ì˜ ë°ì´í„°ë¡œ 변환 중… + %1 (Passkey) + %1(Passkey) - Abort - 중지 + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + í•­ëª©ì— ì´ë¯¸ Passkeyê°€ 있습니다. +%1 - %2ì— ìžˆëŠ” Passkey를 ë®ì–´ì“°ì‹œê² ìŠµë‹ˆê¹Œ? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: KeePassHTTP ì†ì„± ë³€í™˜ë¨ + KeePassXC - Create a new group + KeePassXC - 새 그룹 만들기 - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - %1ê°œ í•­ëª©ì˜ ì†ì„±ì„ 변환했습니다. -키 %2개를 ì‚¬ìš©ìž ì •ì˜ ë°ì´í„°ë¡œ ì´ë™í–ˆìŠµë‹ˆë‹¤. - - - Successfully moved %n keys to custom data. - 키 %n개를 ì‚¬ìš©ìž ì •ì˜ ë°ì´í„°ë¡œ ì´ë™í–ˆìŠµë‹ˆë‹¤. + Disable + 비활성화 - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: KeePassHTTP ì†ì„±ì´ 있는 í•­ëª©ì„ ì°¾ì„ ìˆ˜ 없습니다! + KeePassXC - Overwrite existing key? + KeePassXC - 기존 키 ë®ì–´ì“°ê¸°? - The active database does not contain an entry with KeePassHTTP attributes. - 현재 í™œì„±í™”ëœ ë°ì´í„°ë² ì´ìŠ¤ì— KeePassHTTP ì†ì„±ì´ 있는 í•­ëª©ì´ ì—†ìŠµë‹ˆë‹¤. + KeePassXC - Update Passkey + KeePassXC - Passkey ì—…ë°ì´íЏ - Don't show this warning again - ë” ì´ìƒ ì´ ê²½ê³  표시하지 않기 + KeePassXC - Update Entry + KeePassXC - 항목 ì—…ë°ì´íЏ - KeePassXC: Legacy browser integration settings detected - KeePassXC: 레거시 브ë¼ìš°ì € 통합 설정 ê°ì§€ë¨ + KeePassXC - Delete entry + KeePassXC - 항목 ì‚­ì œ - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - KeePassXC-브ë¼ìš°ì € ì„¤ì •ì„ ë°ì´í„°ë² ì´ìФ 설정으로 ì´ë™í•´ì•¼ 합니다. -현재 브ë¼ìš°ì € ì—°ê²°ì„ ìœ ì§€í•˜ë ¤ë©´ ì´ ìž‘ì—…ì´ í•„ìš”í•©ë‹ˆë‹¤. -존재하는 ì„¤ì •ì„ ì´ì „하시겠습니까? + KeePassXC - New key association request + KeePassXC - 새 키 ì—°ê²° 요청 + + + Passkey + @@ -994,7 +1051,7 @@ Would you like to migrate your existing settings now? Show a notification when credentials are requested Credentials mean login data requested via browser extension - ì¸ì¦ ì •ë³´ê°€ 필요할 때 알림 표시 + ìžê²© ì¦ëª…ì´ í•„ìš”í•  때 알림 표시 Request to unlock the database if it is locked @@ -1014,24 +1071,24 @@ Would you like to migrate your existing settings now? Return only best-matching credentials - 가장 잘 ì¼ì¹˜í•˜ëŠ” ì¸ì¦ ì •ë³´ 항목만 반환 + 가장 잘 ì¼ì¹˜í•˜ëŠ” ìžê²© ì¦ëª… 항목만 반환 Returns expired credentials. String [expired] is added to the title. - ë§Œë£Œëœ ì¸ì¦ ì •ë³´ë„ ë°˜í™˜í•©ë‹ˆë‹¤. ì œëª©ì— [만료ë¨] 문ìžì—´ì´ 추가ë©ë‹ˆë‹¤. + ë§Œë£Œëœ ìžê²© ì¦ëª…ë„ ë°˜í™˜í•©ë‹ˆë‹¤. ì œëª©ì— [만료ë¨] 문ìžì—´ì´ 추가ë©ë‹ˆë‹¤. Allow returning expired credentials - ë§Œë£Œëœ ì¸ì¦ ì •ë³´ 반환 허용 + ë§Œë£Œëœ ìžê²© ì¦ëª… 반환 허용 All databases connected to the extension will return matching credentials. - 확장 ê¸°ëŠ¥ì— ì—°ê²°ëœ ëª¨ë“  ë°ì´í„°ë² ì´ìФì—서 ì¼ì¹˜í•˜ëŠ” ì¸ì¦ 정보를 반환합니다. + 확장 ê¸°ëŠ¥ì— ì—°ê²°ëœ ëª¨ë“  ë°ì´í„°ë² ì´ìФì—서 ì¼ì¹˜í•˜ëŠ” ìžê²© ì¦ëª…ì„ ë°˜í™˜í•©ë‹ˆë‹¤. Search in all opened databases for matching credentials Credentials mean login data requested via browser extension - 모든 열린 ë°ì´í„°ë² ì´ìФì—서 ì €ìž¥ëœ ì¸ì¦ ì •ë³´ 검색 + 모든 열린 ë°ì´í„°ë² ì´ìФì—서 ì €ìž¥ëœ ìžê²© ì¦ëª… 검색 Advanced @@ -1040,12 +1097,12 @@ Would you like to migrate your existing settings now? Never ask before accessing credentials Credentials mean login data requested via browser extension - ì €ìž¥ëœ ì¸ì¦ ì •ë³´ì— ì ‘ê·¼í•˜ê¸° ì „ì— ë¬»ì§€ 않기 + ì €ìž¥ëœ ìžê²© ì¦ëª…ì— ì ‘ê·¼í•˜ê¸° ì „ì— ë¬»ì§€ 않기 Never ask before updating credentials Credentials mean login data requested via browser extension - ì €ìž¥ëœ ì¸ì¦ 정보를 ì—…ë°ì´íŠ¸í•˜ê¸° ì „ì— ë¬»ì§€ 않기 + ì €ìž¥ëœ ìžê²© ì¦ëª…ì„ ì—…ë°ì´íŠ¸í•˜ê¸° ì „ì— ë¬»ì§€ 않기 Do not ask permission for HTTP Basic Auth @@ -1142,14 +1199,6 @@ Would you like to migrate your existing settings now? Please see special instructions for browser extension use below 브ë¼ìš°ì € 확장 ê¸°ëŠ¥ì„ ìœ„í•œ 추가 절차를 참조하십시오 - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>오류:</b> ì‚¬ìš©ìž ì •ì˜ í”„ë¡ì‹œ 위치를 ì°¾ì„ ìˆ˜ 없습니다!<br/>브ë¼ìš°ì € 통합 ê¸°ëŠ¥ì„ ì‚¬ìš©í•˜ë ¤ë©´ 프ë¡ì‹œ í”„ë¡œê·¸ëž¨ì´ í•„ìš”í•©ë‹ˆë‹¤. - - - <b>Warning:</b> The following options can be dangerous! - <b>경고:</b> ë‹¤ìŒ ì˜µì…˜ì€ ì‹ ì¤‘í•˜ê²Œ 사용하십시오! - Executable Files 실행 íŒŒì¼ @@ -1166,6 +1215,38 @@ Would you like to migrate your existing settings now? Select native messaging host folder location 네ì´í‹°ë¸Œ 메시징 호스트 í´ë” 위치 ì„ íƒ + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + keepassxc-proxyê°€ ì—°ê²°ëœ ë°ì´í„°ë² ì´ìФ ë‚´ 모든 í•­ëª©ì˜ ì œëª©, URL, UUID를 표시하ë„ë¡ í—ˆìš©í•©ë‹ˆë‹¤. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + ì—°ê²°ëœ ë°ì´í„°ë² ì´ìФ ë‚´ 모든 í•­ëª©ì— ì œí•œëœ ì ‘ê·¼ì„ í—ˆìš©í•©ë‹ˆë‹¤(사ì´íЏ ì ‘ê·¼ 제한 무시) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>경고:</b> 필요한 경우ì—ë§Œ ì„¤ì •ì„ ë³€ê²½í•˜ì‹­ì‹œì˜¤. + + + The custom proxy location does not exist. + ì‚¬ìš©ìž ì •ì˜ í”„ë¡ì‹œ 위치가 존재하지 않습니다. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>오류:</b> ì‚¬ìš©ìž ì •ì˜ í”„ë¡ì‹œ 위치가 존재하지 않습니다. 고급 설정 탭ì—서 수정하십시오. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>오류:</b> ì„¤ì¹˜ëœ ì‹¤í–‰ 파ì¼ì´ 예ìƒëœ 위치 %1ì— ì—†ìŠµë‹ˆë‹¤.<br/>고급 설정ì—서 ì‚¬ìš©ìž ì •ì˜ í”„ë¡ì‹œ 위치를 설정하거나 í”„ë¡œê·¸ëž¨ì„ ë‹¤ì‹œ 설치하십시오. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1188,14 +1269,6 @@ Would you like to migrate your existing settings now? CsvImportWidget - - Import CSV fields - CSV 필드 가져오기 - - - filename - íŒŒì¼ ì´ë¦„ - size, rows, columns í¬ê¸°, 줄, 칸 @@ -1304,50 +1377,29 @@ Would you like to migrate your existing settings now? Column %1 ì—´ %1 - - Imported from CSV file - CSV 파ì¼ì—서 가져옴 - - - Original data: - ì›ë³¸ ë°ì´í„°: - - - Error(s) detected in CSV file! - CSV 파ì¼ì— 오류가 있습니다! - [%n more message(s) skipped] [추가 메시지 %nê°œ 건너뜀] - Error - 오류 + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - CSV 가져오기: ê¸°ë¡ ë„êµ¬ì— ì˜¤ë¥˜ê°€ 있습니다: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %në°”ì´íЏ - %n row(s) + CSV row count %n줄 %n column(s) + CSV column count %n칸 @@ -1422,40 +1474,10 @@ Backup database located at %2 Password field 암호 필드 - - Enter Additional Credentials (if any): - 추가 ì¸ì¦ ì •ë³´ ìž…ë ¥(해당ë˜ëŠ” 경우): - - - Key File: - 키 파ì¼: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>암호 외ì—ë„ ë¹„ë°€ 파ì¼ì„ 사용하여 ë°ì´í„°ë² ì´ìФ ë³´ì•ˆì„ ê°•í™”í•  수 있습니다. ì´ íŒŒì¼ì€ ë°ì´í„°ë² ì´ìФ 보안 설정ì—서 ìƒì„±í•  수 있습니다.</p><p>ì´ íŒŒì¼ì€ *.kdbx ë°ì´í„°ë² ì´ìФ 파ì¼ê³¼ <strong>ë³„ê°œì˜ íŒŒì¼</strong>입니다!<br>키 파ì¼ì´ 없다면 ì´ í•„ë“œë¥¼ 비워 ë‘십시오.</p><p>ìžì„¸í•œ 정보를 보려면 í´ë¦­í•˜ì‹­ì‹œì˜¤â€¦</p> - - - Key file help - 키 íŒŒì¼ ë„ì›€ë§ - Hardware key slot selection 하드웨어 키 슬롯 ì„ íƒ - - Hardware Key: - 하드웨어 키: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p><strong>YubiKey</strong>나 <strong>OnlyKey</strong>와 ê°™ì€ í•˜ë“œì›¨ì–´ í‚¤ì˜ ìŠ¬ë¡¯ì„ HMAC-SHA1로 설정 시 사용할 수 있습니다.</p> -<p>ë” ë§Žì€ ì •ë³´ë¥¼ 보려면 í´ë¦­í•˜ì‹­ì‹œì˜¤â€¦</p> - - - Hardware key help - 하드웨어 키 ë„ì›€ë§ - Key file to unlock the database ë°ì´í„°ë² ì´ìФ 잠금 í•´ì œ 키 íŒŒì¼ @@ -1468,14 +1490,6 @@ Backup database located at %2 Browse… 찾아보기... - - Refresh hardware tokens - 하드웨어 í† í° ìƒˆë¡œ 고침 - - - Refresh - 새로 고침 - Unlock Database ë°ì´í„°ë² ì´ìФ 잠금 í•´ì œ @@ -1538,14 +1552,6 @@ To prevent this error from appearing, you must go to "Database Settings / S Retry with empty password 빈 암호로 다시 ì‹œë„ - - Failed to authenticate with Windows Hello - Windows Hello로 ì¸ì¦í•  수 ì—†ìŒ - - - Failed to authenticate with Touch ID - Touch ID로 ì¸ì¦í•  수 ì—†ìŒ - Failed to open key file: %1 키 파ì¼ì„ ì—´ 수 ì—†ìŒ: %1 @@ -1579,22 +1585,60 @@ To prevent this error from appearing, you must go to "Database Settings / S ë°ì´í„°ë² ì´ìФ 파ì¼ì€ 키 파ì¼ë¡œ 사용할 수 없습니다. - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - ë°ì´í„°ë² ì´ìФ 파ì¼ì„ ìžê¸° ìžì‹ ì˜ 키 파ì¼ë¡œ 사용할 수 없습니다. -키 파ì¼ì´ 없는 경우, 해당 필드를 비워ë‘십시오. + authenticate to access the database + ë°ì´í„°ë² ì´ìŠ¤ì— ì ‘ê·¼í•˜ë ¤ë©´ ì¸ì¦í•˜ì‹­ì‹œì˜¤ - Detecting hardware keys… - 하드웨어 키 ì¸ì‹ 중... + Failed to authenticate with Quick Unlock: %1 + 빠른 잠금 해제로 ì¸ì¦í•  수 ì—†ìŒ: %1 - No hardware keys detected - ì¸ì‹ëœ 하드웨어 키 ì—†ìŒ + Select Key File: + - Select hardware key… - 하드웨어 키 ì„ íƒ... + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1606,10 +1650,6 @@ If you do not have a key file, please leave the field empty. DatabaseSettingsDialog - - Advanced Settings - 고급 설정 - General ì¼ë°˜ @@ -1620,7 +1660,7 @@ If you do not have a key file, please leave the field empty. Database Credentials - ë°ì´í„°ë² ì´ìФ ì¸ì¦ ì •ë³´ + ë°ì´í„°ë² ì´ìФ ìžê²© ì¦ëª… Encryption Settings @@ -1641,18 +1681,6 @@ If you do not have a key file, please leave the field empty. KeePassXC-Browser settings KeePassXC-브ë¼ìš°ì € 설정 - - Convert KeePassHTTP data - KeePass HTTP ë°ì´í„° 변환 - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - 레거시 KeePassHTTP ì„¤ì •ì„ KeePassXC-브ë¼ìš°ì € 호환 ì‚¬ìš©ìž ì •ì˜ ë°ì´í„°ë¡œ 변환 - - - Refresh database root group ID - ë°ì´í„°ë² ì´ìФ 루트 그룹 ID 새로 고침 - Disconnect all browsers 모든 브ë¼ìš°ì € ì—°ê²° ëŠê¸° @@ -1661,6 +1689,10 @@ If you do not have a key file, please leave the field empty. Forget all site-specific settings on entries í•­ëª©ì˜ ëª¨ë“  사ì´íŠ¸ë³„ 설정 ì‚­ì œ + + Refresh database root group ID + ë°ì´í„°ë² ì´ìФ 루트 그룹 ID 새로 고침 + Stored keys ì €ìž¥ëœ í‚¤ @@ -1709,18 +1741,10 @@ This may prevent connection to the browser plugin. 모든 브ë¼ìš°ì € ì—°ê²°ì„ ëŠìœ¼ì‹œê² ìŠµë‹ˆê¹Œ? 브ë¼ìš°ì € 플러그ì¸ì— 연결하지 못할 ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. - - KeePassXC: No keys found - KeePassXC: 키를 ì°¾ì„ ìˆ˜ ì—†ìŒ - No shared encryption keys found in KeePassXC settings. KeePassXC 설정ì—서 ê³µìœ ëœ ì•”í˜¸í™” 키를 ì°¾ì„ ìˆ˜ 없습니다. - - KeePassXC: Removed keys from database - KeePassXC: ë°ì´í„°ë² ì´ìФì—서 키 ì‚­ì œë¨ - Successfully removed %n encryption key(s) from KeePassXC settings. KeePassXC 설정ì—서 암호화 키 %n개를 삭제했습니다. @@ -1739,32 +1763,14 @@ Permissions to access entries will be revoked. Abort 중지 - - KeePassXC: Removed permissions - KeePassXC: 권한 ì‚­ì œë¨ - Successfully removed permissions from %n entry(s). 항목 %nê°œì—서 ê¶Œí•œì„ ì‚­ì œí–ˆìŠµë‹ˆë‹¤. - - KeePassXC: No entry with permissions found! - KeePassXC: ê¶Œí•œì´ ìžˆëŠ” í•­ëª©ì„ ì°¾ì„ ìˆ˜ ì—†ìŒ! - The active database does not contain an entry with permissions. 활성 ë°ì´í„°ë² ì´ìŠ¤ì— ê¶Œí•œì´ ë¶€ì—¬ëœ í•­ëª©ì´ ì—†ìŠµë‹ˆë‹¤. - - Move KeePassHTTP attributes to custom data - KeePassHTTP ì†ì„±ì„ ì‚¬ìš©ìž ì •ì˜ ë°ì´í„°ë¡œ ì´ë™ - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - 모든 레거시 브ë¼ìš°ì € 통합 ë°ì´í„°ë¥¼ 최신 표준으로 ì´ë™í•˜ì‹œê² ìŠµë‹ˆê¹Œ? -브ë¼ìš°ì € 통합 플러그ì¸ê³¼ í˜¸í™˜ì„±ì„ ìœ ì§€í•˜ê¸° 위해서 필요합니다. - Refresh database ID ë°ì´í„°ë² ì´ìФ ID 새로 고침 @@ -1775,6 +1781,26 @@ This is only necessary if your database is a copy of another and the browser ext ë°ì´í„°ë² ì´ìФ ID를 새로 고치시겠습니까? ë°ì´í„°ë² ì´ìŠ¤ê°€ 다른 ë°ì´í„°ë² ì´ìŠ¤ì˜ ë³µì œë³¸ì´ê³  브ë¼ìš°ì € 확장 기능ì—서 ì—°ê²°í•  수 ì—†ì„ ë•Œì—ë§Œ 사용하십시오. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + 레거시 KeePassHTTP ì„¤ì •ì„ KeePassXC-브ë¼ìš°ì € 호환 ì‚¬ìš©ìž ì •ì˜ ë°ì´í„°ë¡œ 변환 + + + No keys found + 키를 ì°¾ì„ ìˆ˜ ì—†ìŒ + + + Removed keys from database + ë°ì´í„°ë² ì´ìФì—서 키 삭제함 + + + Removed permissions + 권한 삭제함 + + + No entry with permissions found! + ê¶Œí•œì´ ìžˆëŠ” í•­ëª©ì„ ì°¾ì„ ìˆ˜ 없습니다! + DatabaseSettingsWidgetDatabaseKey @@ -1812,7 +1838,19 @@ Are you sure you want to continue without a password? Failed to change database credentials - ë°ì´í„°ë² ì´ìФ ì¸ì¦ 정보를 변경할 수 ì—†ìŒ + ë°ì´í„°ë² ì´ìФ ìžê²© ì¦ëª…ì„ ë³€ê²½í•  수 ì—†ìŒ + + + Weak password + 약한 암호 + + + You must enter a stronger password to protect your database. + ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 보호하려면 ë” ê°•ë ¥í•œ 암호를 입력해야 합니다. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + 암호가 너무 약합니다! 기밀 정보를 보호하려면 ë” ê°•í•œ 암호를 입력해야 합니다. @@ -1821,14 +1859,6 @@ Are you sure you want to continue without a password? Decryption Time: 복호화 시간: - - Change existing decryption time - 기존 복호화 시간 변경 - - - Change - 변경 - Decryption time in seconds ì´ˆ ë‹¨ìœ„ì˜ ë³µí˜¸í™” 시간 @@ -1909,11 +1939,6 @@ Are you sure you want to continue without a password? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - 변경ë˜ì§€ ì•ŠìŒ - Number of rounds too high Key transformation rounds @@ -1966,6 +1991,18 @@ If you keep this number, your database will not be protected from brute force at Threads for parallel execution (KDF settings) ê°œ 스레드 + + Encryption Settings: + 암호화 설정: + + + Basic + 기본 + + + Advanced + 고급 + DatabaseSettingsWidgetFdoSecrets @@ -2024,18 +2061,10 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry 항목당 최대 과거 ê¸°ë¡ ê°œìˆ˜ - - Max. history items: - 최대 과거 항목 수: - Maximum size of history per entry 항목당 최대 과거 ê¸°ë¡ í¬ê¸° - - Max. history size: - 최대 과거 항목 í¬ê¸°: - MiB MiB @@ -2066,6 +2095,64 @@ This action is not reversible. (old) (ì´ì „) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + ì´ ì„¤ì •ì„ ì €ìž¥í•˜ê±°ë‚˜ í•­ëª©ì„ íŽ¸ì§‘í•  때 +í•­ëª©ì˜ ê³¼ê±° ê¸°ë¡ ì¤‘ 가장 ì˜¤ëž˜ëœ í•­ëª©ë¶€í„° +ì‚­ì œë˜ì–´ 최대 지정한 개수만í¼ì˜ 과거 +기ë¡ë§Œì„ 저장합니다. + + + Limit the amount of history items per entry to: + 항목별 과거 ê¸°ë¡ ê°œìˆ˜ 제한: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + ì´ ì„¤ì •ì„ ì €ìž¥í•˜ê±°ë‚˜ í•­ëª©ì„ íŽ¸ì§‘í•  때 +í•­ëª©ì˜ ê³¼ê±° ê¸°ë¡ ì¤‘ 가장 ì˜¤ëž˜ëœ í•­ëª©ë¶€í„° +ì‚­ì œë˜ì–´ 최대 지정한 í¬ê¸°ë§Œí¼ì˜ 과거 +기ë¡ë§Œì„ 저장합니다. + + + Limit the total size of history items per entry to: + 항목별 과거 ê¸°ë¡ ê°œìˆ˜ 제한: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + ë°ì´í„°ë² ì´ìФì—서 í•­ëª©ì„ ì‚­ì œí•˜ì§€ 않고 +휴지통 그룹으로 ì´ë™í•©ë‹ˆë‹¤. +휴지통ì—서 ì‚­ì œëœ í•­ëª©ì€ +ë°ì´í„°ë² ì´ìФì—서 ì‚­ì œë©ë‹ˆë‹¤. + + + Autosave delay since last change + 마지막 변경 후 ìžë™ 저장까지 대기 시간 + + + Autosave delay + ìžë™ 저장 대기 시간 + + + Autosave delay since last change in minutes + ë¶„ ë‹¨ìœ„ì˜ ë§ˆì§€ë§‰ 변경 후 ìžë™ 저장 대기 시간 + + + min + ë¶„ + + + Autosave delay since last change checkbox + 마지막 ì²´í¬ ìƒìž 변경 후 ìžë™ 저장 대기 시간 + DatabaseSettingsWidgetKeeShare @@ -2193,26 +2280,10 @@ This is definitely a bug, please report it to the developers. CSV file CSV íŒŒì¼ - - Select CSV file - CSV íŒŒì¼ ì„ íƒ - Merge database ë°ì´í„°ë² ì´ìФ 합치기 - - KeePass 1 database - KeePass 1 ë°ì´í„°ë² ì´ìФ - - - Open KeePass 1 database - KeePass 1 ë°ì´í„°ë² ì´ìФ 열기 - - - Open OPVault - OPVault 열기 - Export database to CSV file ë°ì´í„°ë² ì´ìŠ¤ë¥¼ CSV 파ì¼ë¡œ 내보내기 @@ -2225,6 +2296,18 @@ This is definitely a bug, please report it to the developers. Writing the HTML file failed. HTML 파ì¼ì— 쓸 수 없습니다. + + Export database to XML file + ë°ì´í„°ë² ì´ìŠ¤ë¥¼ XML 파ì¼ë¡œ 내보내기 + + + XML file + XML íŒŒì¼ + + + Writing the XML file failed + XML íŒŒì¼ ê¸°ë¡ ì‹¤íŒ¨ + Export Confirmation 내보내기 í™•ì¸ @@ -2233,15 +2316,6 @@ This is definitely a bug, please report it to the developers. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 암호화ë˜ì§€ ì•Šì€ íŒŒì¼ë¡œ 내보냅니다. 암호와 기타 ë¯¼ê° ì •ë³´ë¥¼ 노출시킬 수 있습니다! ê³„ì† ì§„í–‰í•˜ì‹œê² ìŠµë‹ˆê¹Œ? - - New Database - 새 ë°ì´í„°ë² ì´ìФ - - - %1 [New Database] - Database tab name modifier - %1 [새 ë°ì´í„°ë² ì´ìФ] - %1 [Locked] Database tab name modifier @@ -2251,8 +2325,8 @@ This is definitely a bug, please report it to the developers. DatabaseWidget - Database Tags - ë°ì´í„°ë² ì´ìФ 태그 + Searches and Tags + 검색과 태그 Searching… @@ -2302,6 +2376,10 @@ This is definitely a bug, please report it to the developers. Expired entries ë§Œë£Œëœ í•­ëª© + + Entries expiring within %1 day(s) + %1ì¼ ë‚´ì— ë§Œë£Œë˜ëŠ” 항목 + No current database. 현재 ë°ì´í„°ë² ì´ìŠ¤ê°€ 없습니다. @@ -2326,6 +2404,18 @@ This is definitely a bug, please report it to the developers. No Results ê²°ê³¼ ì—†ìŒ + + Save + 저장 + + + Enter a unique name or overwrite an existing search from the list: + 고유한 ì´ë¦„ì„ ìž…ë ¥í•˜ê±°ë‚˜ 목ë¡ì— 있는 기존 ê²€ìƒ‰ì„ ë®ì–´ì“¸ 수 있습니다: + + + Save Search + 검색 저장 + Lock Database? ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 잠그시겠습니까? @@ -2415,9 +2505,14 @@ Disable safe saves and try again? Could not find database file: %1 ë°ì´í„°ë² ì´ìФ 파ì¼ì„ ì°¾ì„ ìˆ˜ ì—†ìŒ: %1 - - Entries expiring within %1 day(s) - %1ì¼ ë‚´ì— ë§Œë£Œë˜ëŠ” 항목 + + New Database + 새 ë°ì´í„°ë² ì´ìФ + + + %1 [New Database] + Database tab name modifier + %1 [새 ë°ì´í„°ë² ì´ìФ] @@ -2560,6 +2655,10 @@ Would you like to correct it? Hide 숨기기 + + %n hour(s) + %n시간 + %n week(s) %n주 @@ -2572,10 +2671,6 @@ Would you like to correct it? %n year(s) %në…„ - - %n hour(s) - %n시간 - EditEntryWidgetAdvanced @@ -2694,10 +2789,20 @@ Would you like to correct it? Add new window association 새 ì°½ ì—°ê²° 추가 + + + + Add item + + + Remove selected window association ì„ íƒí•œ ì°½ ì—°ê²° ì‚­ì œ + + - + Remove item + - + Window title: ì°½ 제목: @@ -2722,16 +2827,6 @@ Would you like to correct it? Custom Auto-Type sequence for this window ì´ ì°½ì˜ ì‚¬ìš©ìž ì •ì˜ ìžë™ ìž…ë ¥ 순서 - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2833,22 +2928,10 @@ Would you like to correct it? Notes field 메모 필드 - - Toggle the checkbox to reveal the notes section. - 메모 ë¶€ë¶„ì„ í‘œì‹œí•˜ë ¤ë©´ ì²´í¬ ìƒìžë¥¼ 전환하십시오. - Username field ì‚¬ìš©ìž ì´ë¦„ 필드 - - Toggle notes visible - 메모 표시 여부 전환 - - - Notes: - 메모: - Expiration field 만료 필드 @@ -2865,14 +2948,6 @@ Would you like to correct it? Presets 사전 설정 - - Password: - 암호: - - - URL: - URL: - Url field URL 필드 @@ -2881,18 +2956,10 @@ Would you like to correct it? Download favicon for URL URLì˜ íŒŒë¹„ì½˜ 다운로드 - - Title: - 제목: - Title field 제목 필드 - - Username: - ì‚¬ìš©ìž ì´ë¦„: - Password field 암호 필드 @@ -2901,18 +2968,42 @@ Would you like to correct it? Toggle expiration 만료 여부 전환 - - Expires: - 만료: - - - Tags: - 태그: - Tags list 태그 ëª©ë¡ + + &Username: + ì‚¬ìš©ìž ì´ë¦„(&U): + + + &Title: + 제목(&T): + + + &Password: + 암호(&P): + + + UR&L: + URL(&L): + + + &Notes: + 메모(&N): + + + Toggle notes visibility + 메모 표시 여부 전환 + + + T&ags: + 태그(&A): + + + &Expires: + 만료 ë‚ ì§œ(&E): + EditEntryWidgetSSHAgent @@ -2952,19 +3043,6 @@ Would you like to correct it? Private key 비밀 키 - - External file - 외부 íŒŒì¼ - - - Browser for key file - 키 íŒŒì¼ ì°¾ì•„ë³´ê¸° - - - Browse… - Button for opening file dialog - 찾아보기... - Attachment 첨부 @@ -2981,6 +3059,23 @@ Would you like to correct it? Remove from agent ì—ì´ì „트ì—서 ì‚­ì œ + + External file + 외부 íŒŒì¼ + + + Browser for key file + 키 íŒŒì¼ ì°¾ì•„ë³´ê¸° + + + Browse… + Button for opening file dialog + 찾아보기... + + + Generate + ìƒì„± + Select attachment file 첨부 íŒŒì¼ ì„ íƒ @@ -3016,10 +3111,6 @@ Would you like to correct it? Icon ì•„ì´ì½˜ - - Browser Integration - 브ë¼ìš°ì € 통합 - Properties ì†ì„± @@ -3036,6 +3127,10 @@ Would you like to correct it? Group has unsaved changes ê·¸ë£¹ì— ì €ìž¥í•˜ì§€ ì•Šì€ ë³€ê²½ ì‚¬í•­ì´ ìžˆìŒ + + Browser Integration + 브ë¼ìš°ì € 통합 + Enable 활성화 @@ -3051,10 +3146,6 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - 그룹 편집 - These settings affect to the group's behaviour with the browser extension. ì´ ì„¤ì •ì€ ë¸Œë¼ìš°ì € 확장 기능ì—서 해당 ê·¸ë£¹ì„ ì²˜ë¦¬í•˜ëŠ” ë°©ë²•ì„ ë³€ê²½í•©ë‹ˆë‹¤. @@ -3091,6 +3182,22 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups ì´ ê·¸ë£¹ê³¼ 하위 ê·¸ë£¹ì˜ í•­ëª©ì„ HTTP ì¸ì¦ì— 사용하지 않기 + + Omit WWW subdomain from matching: + ì¼ì¹˜í•  때 WWW 하위 ë„ë©”ì¸ ì œì™¸: + + + Omit WWW subdomain from matching toggle for this and sub groups + ì´ ê·¸ë£¹ê³¼ 하위 그룹 í•­ëª©ì„ ì¼ì¹˜í•  때 WWW 하위 ë„ë©”ì¸ ì œì™¸ + + + Restrict matching to given browser key: + 지정한 브ë¼ìš°ì € 키로 ì¼ì¹˜ 제한: + + + Restrict matching to given browser key toggle for this and sub groups + ì´ ê·¸ë£¹ê³¼ 하위 ê·¸ë£¹ì˜ í•­ëª©ì„ ì§€ì •í•œ 브ë¼ìš°ì € 키로 ì¼ì¹˜ 제한 + EditGroupWidgetKeeShare @@ -3323,10 +3430,6 @@ Supported extensions are: %1. Unable to fetch favicon. íŒŒë¹„ì½˜ì„ ë‹¤ìš´ë¡œë“œí•  수 없습니다. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - ë„구 -> 설정 -> 보안ì—서 DuckDuckGo 웹 사ì´íЏ ì•„ì´ì½˜ 서비스를 활성화할 수 있습니다 - Existing icon selected. 기존 ì•„ì´ì½˜ì„ ì„ íƒí–ˆìŠµë‹ˆë‹¤. @@ -3359,6 +3462,10 @@ Supported extensions are: %1. The following icon(s) failed: ë‹¤ìŒ ì•„ì´ì½˜ì—서 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + 프로그램 설정 -> 보안ì—서 DuckDuckGo 웹사ì´íЏ ì•„ì´ì½˜ 서비스를 활성화할 수 있습니다 + EditWidgetProperties @@ -3796,6 +3903,10 @@ Error: %1 Has TOTP TOTP ìžˆìŒ + + Background Color + 배경색 + EntryPreviewWidget @@ -3816,8 +3927,8 @@ Error: %1 암호 - Notes - 메모 + URL + URL Expiration @@ -3836,8 +3947,8 @@ Error: %1 ì‚¬ìš©ìž ì´ë¦„ - URL - URL + Notes + 메모 Advanced @@ -3887,6 +3998,10 @@ Error: %1 Never 하지 ì•ŠìŒ + + Double click to copy value + ë‘ ë²ˆ í´ë¦­í•˜ì—¬ ê°’ 복사 + Enabled 사용함 @@ -3895,6 +4010,10 @@ Error: %1 Disabled 사용 안함 + + Double click to copy to clipboard + ë‘ ë²ˆ í´ë¦­í•˜ì—¬ í´ë¦½ë³´ë“œì— 복사 + EntryURLModel @@ -3902,6 +4021,10 @@ Error: %1 Invalid URL ìž˜ëª»ëœ URL + + Duplicate URL + URL 복제 + EntryView @@ -3917,6 +4040,10 @@ Error: %1 Reset to defaults 기본값으로 ë³µì› + + + %1 entry(s)... + + 항목 %1ê°œ... + ExportDialog @@ -4138,6 +4265,147 @@ You can enable the DuckDuckGo website icon service in the security section of th 파비콘 다운로드 중(%1/%2)… + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + 마법사페ì´ì§€ + + + Entry count: %1 + + + + Group + 그룹 + + + Title + 제목 + + + Username + ì‚¬ìš©ìž ì´ë¦„ + + + Password + 암호 + + + Url + + + + + ImportWizardPageSelect + + Form + í¼ + + + Import File Selection + + + + Password: + 암호: + + + Key File: + 키 파ì¼: + + + Browse… + 찾아보기... + + + Import Into: + + + + New Database + 새 ë°ì´í„°ë² ì´ìФ + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + OPVault 열기 + + + Select import file + + + + All files + 모든 íŒŒì¼ + + + Key files + 키 íŒŒì¼ + + + Select key file + 키 íŒŒì¼ ì„ íƒ + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4166,7 +4434,7 @@ You can enable the DuckDuckGo website icon service in the security section of th Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - ì¸ì¦ ì •ë³´ê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤. 다시 시ë„하십시오. + ìžê²© ì¦ëª…ì´ ìž˜ëª»ë˜ì—ˆìŠµë‹ˆë‹¤. 다시 시ë„하십시오. ê°™ì€ ì˜¤ë¥˜ê°€ ê³„ì† ë°œìƒí•œë‹¤ë©´ ë°ì´í„°ë² ì´ìФ 파ì¼ì´ ì†ìƒë˜ì—ˆì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. @@ -4223,7 +4491,7 @@ If this reoccurs, then your database file may be corrupt. Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - ì¸ì¦ ì •ë³´ê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤. 다시 시ë„하십시오. + ìžê²© ì¦ëª…ì´ ìž˜ëª»ë˜ì—ˆìŠµë‹ˆë‹¤. 다시 시ë„하십시오. ê°™ì€ ì˜¤ë¥˜ê°€ ê³„ì† ë°œìƒí•œë‹¤ë©´ ë°ì´í„°ë² ì´ìФ 파ì¼ì´ ì†ìƒë˜ì—ˆì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. @@ -4572,17 +4840,6 @@ Line %2, column %3 비밀 키를 ì—´ 수 ì—†ìŒ - - KeePass1OpenWidget - - Import KeePass1 Database - KeePass1 ë°ì´í„°ë² ì´ìФ 가져오기 - - - Unable to open the database. - ë°ì´í„°ë² ì´ìŠ¤ë¥¼ ì—´ 수 없습니다. - - KeePass1Reader @@ -4645,7 +4902,7 @@ Line %2, column %3 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - ì¸ì¦ ì •ë³´ê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤. 다시 시ë„하십시오. + ìžê²© ì¦ëª…ì´ ìž˜ëª»ë˜ì—ˆìŠµë‹ˆë‹¤. 다시 시ë„하십시오. ê°™ì€ ì˜¤ë¥˜ê°€ ê³„ì† ë°œìƒí•œë‹¤ë©´ ë°ì´í„°ë² ì´ìФ 파ì¼ì´ ì†ìƒë˜ì—ˆì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. @@ -4939,10 +5196,6 @@ Are you sure you want to continue with this file? &Recent Databases 최근 ë°ì´í„°ë² ì´ìФ(&R) - - &Import - 가져오기(&I) - &Export 내보내기(&E) @@ -4963,6 +5216,10 @@ Are you sure you want to continue with this file? TOTP TOTP + + Tags + 태그 + &Groups 그룹(&G) @@ -5007,34 +5264,18 @@ Are you sure you want to continue with this file? &New Database… 새 ë°ì´í„°ë² ì´ìФ(&N)... - - Create a new database - 새 ë°ì´í„°ë² ì´ìФ 만들기 - &Merge From Database… ë°ì´í„°ë² ì´ìФì—서 합치기(&M)... - - Merge from another KDBX database - 다른 KDBX ë°ì´í„°ë² ì´ìФì—서 합치기 - &New Entry… 새 항목(&N)... - - Add a new entry - 새 항목 추가하기 - &Edit Entry… 항목 편집(&E)... - - View or edit entry - í•­ëª©ì„ ë³´ê±°ë‚˜ 편집하기 - &Delete Entry… 항목 ì‚­ì œ(&D)... @@ -5043,10 +5284,6 @@ Are you sure you want to continue with this file? &New Group… 새 그룹(&N)... - - Add a new group - 새 그룹 추가하기 - &Edit Group… 그룹 편집(&E)... @@ -5079,18 +5316,10 @@ Are you sure you want to continue with this file? Database &Reports… ë°ì´í„°ë² ì´ìФ 보고서(&R)… - - Statistics, health check, etc. - 통계, 안전성 검사 등. - &Database Settings… ë°ì´í„°ë² ì´ìФ 설정(&D)... - - Database settings - ë°ì´í„°ë² ì´ìФ 설정 - &Clone Entry… 항목 복제(&C)... @@ -5099,34 +5328,18 @@ Are you sure you want to continue with this file? Move u&p 위로 ì´ë™(&P) - - Move entry one step up - 한 단계 위로 항목 ì´ë™ - Move do&wn 아래로 ì´ë™(&W) - - Move entry one step down - 한 단계 아래로 항목 ì´ë™ - Copy &Username ì‚¬ìš©ìž ì´ë¦„ 복사(&U) - - Copy username to clipboard - í´ë¦½ë³´ë“œì— ì‚¬ìš©ìž ì´ë¦„ 복사 - Copy &Password 암호 복사(&P) - - Copy password to clipboard - í´ë¦½ë³´ë“œì— 암호 복사 - &Settings 설정(&S) @@ -5160,25 +5373,13 @@ Are you sure you want to continue with this file? 제목(&T) - Copy title to clipboard - í´ë¦½ë³´ë“œì— 제목 복사 - - - &URL - URL(&U) - - - Copy URL to clipboard - í´ë¦½ë³´ë“œì— URL 복사 + Copy &URL + URL 복사(&U) &Notes 메모(&N) - - Copy notes to clipboard - í´ë¦½ë³´ë“œì— 메모 복사 - &CSV File… CSV 파ì¼(&C)... @@ -5191,26 +5392,14 @@ Are you sure you want to continue with this file? KeePass 1 Database… KeePass 1 ë°ì´í„°ë² ì´ìФ... - - Import a KeePass 1 database - KeePass 1 ë°ì´í„°ë² ì´ìФ 가져오기 - 1Password Vault… 1Password Vault... - - Import a 1Password Vault - 1Password Vault 가져오기 - CSV File… CSV 파ì¼... - - Import a CSV file - CSV íŒŒì¼ ê°€ì ¸ì˜¤ê¸° - Show TOTP TOTP 표시 @@ -5227,6 +5416,10 @@ Are you sure you want to continue with this file? Copy &TOTP TOTP 복사(&T) + + Copy Password and TOTP + 암호와 TOTP 복사 + E&mpty recycle bin 휴지통 비우기(&M) @@ -5251,10 +5444,6 @@ Are you sure you want to continue with this file? &Online Help 온ë¼ì¸ ë„움ë§(&O) - - Go to online documentation - 온ë¼ì¸ 문서로 ì´ë™ - &User Guide ì‚¬ìš©ìž ê°€ì´ë“œ(&U) @@ -5323,6 +5512,10 @@ Are you sure you want to continue with this file? Clone Group... 그룹 복제... + + &XML File… + XML 파ì¼(&X)... + Clear history 과거 ê¸°ë¡ ì‚­ì œ @@ -5355,6 +5548,10 @@ We recommend you use the AppImage available on our downloads page. 경고: 사용 ì¤‘ì¸ Qt 버전ì—서 KeePassXC를 í™”ìƒ í‚¤ë³´ë“œì™€ ì‚¬ìš©í–ˆì„ ë•Œ ì¶©ëŒí•  수 있습니다. 다운로드 페ì´ì§€ì— 있는 AppImage ì‚¬ìš©ì„ ì¶”ì²œí•©ë‹ˆë‹¤. + + No Tags + 태그 ì—†ìŒ + Restore Entry(s) 항목 ë³µì› @@ -5383,6 +5580,10 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC KeePassXC ë내기 + + %1 Entry(s) + 항목 %1ê°œ + Please present or touch your YubiKey to continue… ê³„ì† ì§„í–‰í•˜ë ¤ë©´ YubiKey를 연결하거나 ë²„íŠ¼ì„ ëˆ„ë¥´ì‹­ì‹œì˜¤... @@ -5395,6 +5596,274 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? ì´ ì„¤ì •ì„ ì ìš©í•˜ë ¤ë©´ í”„ë¡œê·¸ëž¨ì„ ë‹¤ì‹œ 시작해야 합니다. 지금 다시 시작하시겠습니까? + + Allow Screen Capture + 화면 캡처 허용 + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Passkey… + + + Import Passkey + Passkey 가져오기 + + + Quit Application + 프로그램 ë내기 + + + Open About Dialog + ì •ë³´ 대화 ìƒìž 열기 + + + Open Database + ë°ì´í„°ë² ì´ìФ 열기 + + + Create Database + ë°ì´í„°ë² ì´ìФ 만들기 + + + Merge From Database + ë°ì´í„°ë² ì´ìФì—서 합치기 + + + Create Entry + 항목 만들기 + + + Edit Entry + 항목 편집 + + + Delete Entry + 항목 ì‚­ì œ + + + Create Group + 그룹 만들기 + + + Edit Group + 그룹 편집 + + + Delete Group + 그룹 ì‚­ì œ + + + Download All Favicons + 모든 파비콘 다운로드 + + + Sort Groups A-Z + 그룹 가나다순 ì •ë ¬ + + + Sort Groups Z-A + 그룹 가나다 역순 ì •ë ¬ + + + Save Database As + 다른 ì´ë¦„으로 ë°ì´í„°ë² ì´ìФ 저장 + + + Show Database Security + ë°ì´í„°ë² ì´ìФ 보안 표시 + + + Show Database Reports + ë°ì´í„°ë² ì´ìФ 보고서 표시 + + + Show Database Settings + ë°ì´í„°ë² ì´ìФ 설정 표시 + + + Show Passkeys + Passkey 표시 + + + Clone Entry + 항목 복제 + + + Move Entry Up + 항목 위로 ì´ë™ + + + Move Entry Down + 항목 아래로 ì´ë™ + + + Copy Username + ì‚¬ìš©ìž ì´ë¦„ 복사 + + + Copy Password + 암호 복사 + + + Show Application Settings + 프로그램 설정 표시 + + + Show Password Generator + 암호 ìƒì„±ê¸° 표시 + + + Perform Auto-Type: {USERNAME} + ìžë™ ìž…ë ¥ 실행: {USERNAME} + + + Perform Auto-Type: {USERNAME}{ENTER} + ìžë™ ìž…ë ¥ 실행: {USERNAME}{ENTER} + + + Perform Auto-Type: {PASSWORD} + ìžë™ ìž…ë ¥ 실행: {PASSWORD} + + + Perform Auto-Type: {PASSWORD}{ENTER} + ìžë™ ìž…ë ¥ 실행: {PASSWORD}{ENTER} + + + Perform Auto-Type: {TOTP} + ìžë™ ìž…ë ¥ 실행: {TOTP} + + + Copy Title + 제목 복사 + + + Copy URL + URL 복사 + + + Copy Notes + 메모 복사 + + + Export to CSV + CSV로 내보내기 + + + Export to HTML + HTML로 내보내기 + + + Import KeePass1 Database + KeePass1 ë°ì´í„°ë² ì´ìФ 가져오기 + + + Import 1Password Vault + 1Password Valutì—서 가져오기 + + + Import CSV File + CSV íŒŒì¼ ê°€ì ¸ì˜¤ê¸° + + + Show TOTP QR Code + TOTP QR 코드 표시 + + + Set up TOTP + TOTP 설정 + + + Empty Recycle Bin + 휴지통 비우기 + + + Open Donation Website + 기부 웹사ì´íЏ 열기 + + + Open Bug Report + 버그 ë³´ê³  열기 + + + Open Online Documentation + 온ë¼ì¸ 문서 열기 + + + Open Keyboard Shortcuts Guide + 키보드 단축키 ë„ì›€ë§ ì—´ê¸° + + + Save Database Backup + ë°ì´í„°ë² ì´ìФ 백업 저장 + + + SSH Agent: Add Key + SSH ì—ì´ì „트: 키 추가 + + + SSH Agent: Remove Key + SSH ì—ì´ì „트: 키 ì‚­ì œ + + + Toggle Compact Mode + 축소 모드 전환 + + + Set Theme: Automatic + 테마 설정: ìžë™ + + + Set Theme: Light + 테마 설정: ë°ìŒ + + + Set Theme: Dark + 테마 설정: ì–´ë‘움 + + + Set Theme: Classic + 테마 설정: ê³ ì „ + + + Toggle Show Toolbar + ë„구 ëª¨ìŒ í‘œì‹œ 전환 + + + Toggle Show Preview Panel + 미리 보기 íŒ¨ë„ í‘œì‹œ 전환 + + + Toggle Always on Top + í•­ìƒ ìœ„ 전환 + + + Toggle Hide Usernames + ì‚¬ìš©ìž ì´ë¦„ 숨기기 전환 + + + Toggle Hide Passwords + 암호 숨기기 전환 + + + Export to XML + XML로 내보내기 + + + Toggle Allow Screen Capture + 화면 캡처 허용 전환 + ManageDatabase @@ -5452,26 +5921,6 @@ We recommend you use the AppImage available on our downloads page. Overwriting %1 [%2] %1 [%2] ë®ì–´ì“°ëŠ” 중 - - older entry merged from database "%1" - ë°ì´í„°ë² ì´ìФ "%1"ì—서 í•©ì³ì§„ ì´ì „ 항목 - - - Adding backup for older target %1 [%2] - ì˜¤ëž˜ëœ ëŒ€ìƒ %1 [%2]ì˜ ë°±ì—… 추가 중 - - - Adding backup for older source %1 [%2] - ì˜¤ëž˜ëœ ì›ë³¸ %1 [%2]ì˜ ë°±ì—… 추가 중 - - - Reapplying older target entry on top of newer source %1 [%2] - 새로운 ì›ë³¸ %1 [%2]ì— ì˜¤ëž˜ëœ ëŒ€ìƒ í•­ëª© 다시 ì ìš©í•˜ëŠ” 중 - - - Reapplying older source entry on top of newer target %1 [%2] - 새로운 ëŒ€ìƒ %1 [%2]ì— ì˜¤ëž˜ëœ ì›ë³¸ 항목 다시 ì ìš©í•˜ëŠ” 중 - Synchronizing from newer source %1 [%2] 새로운 ì›ë³¸ %1 [%2]ì—서 ë™ê¸°í™”하는 중 @@ -5531,24 +5980,16 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. ë°ì´í„°ë² ì´ìФ 암호화 ì„¤ì •ì„ ë³€ê²½í•  수 있습니다. ë‚˜ì¤‘ì— ë°ì´í„°ë² ì´ìФ 설정ì—ì„œë„ ë³€ê²½í•  수 있습니다. - - Advanced Settings - 고급 설정 - - - Simple Settings - 간단한 설정 - NewDatabaseWizardPageDatabaseKey Database Credentials - ë°ì´í„°ë² ì´ìФ ì¸ì¦ ì •ë³´ + ë°ì´í„°ë² ì´ìФ ìžê²© ì¦ëª… A set of credentials known only to you that protects your database. - 나만 알고 있는 ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 보호할 ì¸ì¦ 정보입니다. + 나만 알고 있는 ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 보호할 ìžê²© ì¦ëª…입니다. @@ -5619,15 +6060,6 @@ We recommend you use the AppImage available on our downloads page. í‰ë¬¸ 문ìžì—´ %1ë°”ì´íŠ¸ê°€ 필요하지만 %2ë°”ì´íŠ¸ë¥¼ ë°›ìŒ - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - ë°ì´í„°ë² ì´ìФ ì½ê¸° ëª…ë ¹ì´ ì¸ìŠ¤í„´ìŠ¤ë¥¼ 반환하지 ì•ŠìŒ -%1 - - OpVaultReader @@ -5701,6 +6133,10 @@ We recommend you use the AppImage available on our downloads page. Unknown cipher: %1 알 수 없는 암호화: %1 + + AES-256/GCM is currently not supported + AES-256/GCMì€ í˜„ìž¬ ì§€ì›í•˜ì§€ ì•ŠìŒ + Passphrase is required to decrypt this key ì´ í‚¤ë¥¼ 복호화하려면 암호가 필요함 @@ -5767,26 +6203,178 @@ We recommend you use the AppImage available on our downloads page. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - 암호가 ì¼ì¹˜í•˜ì§€ ì•ŠìŒ + SSH Key Generator + SSH 키 ìƒì„±ê¸° - Passwords match so far - 암호가 ì¼ì¹˜í•¨ + Type + í˜•ì‹ - Toggle Password (%1) - 암호 표시/숨기기(%1) + Bits + 비트 - Generate Password (%1) - 암호 ìƒì„±(%1) + Comment + ì£¼ì„ + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - Passkey 내보내기 - Warning: Caps Lock enabled! - 경고: Caps Lockì´ ì¼œì ¸ 있습니다 + Export the following Passkey entries. + ë‹¤ìŒ Passkey í•­ëª©ì„ ë‚´ë³´ëƒ…ë‹ˆë‹¤. + + + Filenames will be generated with title and .passkey file extension. + íŒŒì¼ ì´ë¦„ì€ ì œëª©ê³¼ .passkey íŒŒì¼ í™•ìž¥ìžë¡œ ìƒì„±ë©ë‹ˆë‹¤. + + + Export entries + 항목 내보내기 + + + Export Selected + ì„ íƒ ë‚´ë³´ë‚´ê¸° + + + Cancel + 취소 + + + Export to folder + í´ë”로 내보내기 + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: Passkey 내보내기 + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + "%1.passkey" 파ì¼ì´ ì´ë¯¸ 존재합니다. +ë®ì–´ì“°ì‹œê² ìŠµë‹ˆê¹Œ? + + + + Cannot open file + 파ì¼ì„ ì—´ 수 ì—†ìŒ + + + Cannot open file "%1" for writing. + "%1" 파ì¼ì— 쓰기 위해 ì—´ 수 ì—†ìŒ + + + Cannot write to file + 파ì¼ì— 쓸 수 ì—†ìŒ + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - Passkey 가져오기 + + + Username: %1 + ì‚¬ìš©ìž ì´ë¦„: %1 + + + Group + 그룹 + + + Database + ë°ì´í„°ë² ì´ìФ + + + Import Passkey + Passkey 가져오기 + + + Import + 가져오기 + + + Cancel + 취소 + + + Import the following Passkey: + ë‹¤ìŒ Passkey 가져오기: + + + Entry + 항목 + + + Import the following Passkey to this entry: + ì´ í•­ëª©ìœ¼ë¡œ ë‹¤ìŒ Passkey 가져오기: + + + Create new entry + 새 항목 만들기 + + + Default Passkeys group (Imported Passkeys) + 기본 Passkey 그룹 (가져온 Passkey) + + + Relying Party: %1 + ì˜ì¡´í•˜ëŠ” ìƒëŒ€ë°©: %1 + + + + PasskeyImporter + + Passkey file + Passkey íŒŒì¼ + + + All files + 모든 íŒŒì¼ + + + Open Passkey file + Passkey íŒŒì¼ ì—´ê¸° + + + Cannot open file + 파ì¼ì„ ì—´ 수 ì—†ìŒ + + + Cannot open file "%1" for reading. + "%1" 파ì¼ì—서 ì½ê¸° 위해 ì—´ 수 없습니다. + + + Cannot import Passkey + Passkey를 가져올 수 ì—†ìŒ + + + Cannot import Passkey file "%1". Data is missing. + Passkey íŒŒì¼ "%1"ì„(를) 가져올 수 없습니다. ë°ì´í„°ê°€ 없습니다. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + Passkey íŒŒì¼ "%1"ì„(를) 가져올 수 없습니다. ê°œì¸ í‚¤ê°€ 없거나 잘못ë˜ì—ˆìŠµë‹ˆë‹¤. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + Passkey íŒŒì¼ "%1"ì„(를) 가져올 수 없습니다. +ë‹¤ìŒ ë°ì´í„°ê°€ 빠졌습니다: +%2 @@ -6051,6 +6639,30 @@ We recommend you use the AppImage available on our downloads page. Entropy: %1 bit 엔트로피: %1비트 + + Password Quality: %1 + 암호 ê°•ë„: %1 + + + Poor + Password quality + 매우 약함 + + + Weak + Password quality + 약함 + + + Good + Password quality + ì¢‹ìŒ + + + Excellent + Password quality + 매우 ì¢‹ìŒ + Confirm Delete Wordlist 단어 ëª©ë¡ ì‚­ì œ í™•ì¸ @@ -6097,9 +6709,32 @@ Do you want to overwrite it? Special Characters 특수 ë¬¸ìž + + + PasswordWidget - Password Quality: %1 - 암호 ê°•ë„: %1 + Passwords do not match + 암호가 ì¼ì¹˜í•˜ì§€ ì•ŠìŒ + + + Passwords match so far + 암호가 ì¼ì¹˜í•¨ + + + Toggle Password (%1) + 암호 표시/숨기기(%1) + + + Generate Password (%1) + 암호 ìƒì„±(%1) + + + Warning: Caps Lock enabled! + 경고: Caps Lockì´ ì¼œì ¸ 있습니다 + + + Quality: %1 + 품질: %1 Poor @@ -6121,6 +6756,10 @@ Do you want to overwrite it? Password quality 매우 ì¢‹ìŒ + + Toggle password visibility using Control + H. Open the password generator using Control + G. + Ctrl+H 키를 사용하여 암호 표시 여부를 전환하십시오. Ctrl+G 키를 사용하여 암호 ìƒì„±ê¸°ë¥¼ 여십시오. + PickcharsDialog @@ -6175,6 +6814,10 @@ Do you want to overwrite it? Continue ê³„ì† + + Continue with weak password + 약한 암호로 ê³„ì† + QObject @@ -6568,6 +7211,10 @@ Do you want to overwrite it? Too many arguments provided. ì¸ìžê°€ 너무 많습니다. + + Path of the database. + ë°ì´í„°ë² ì´ìŠ¤ì˜ ê²½ë¡œìž…ë‹ˆë‹¤. + Target decryption time in MS for the database. 밀리초 단위 ë°ì´í„°ë² ì´ìФ 복호화 목표 시간입니다. @@ -6576,6 +7223,12 @@ Do you want to overwrite it? time time + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + ë°ì´í„°ë² ì´ìФ 키 파ì¼ì„ 설정합니다. +ì´ ì˜µì…˜ì€ í기가 예고ë˜ì—ˆìŠµë‹ˆë‹¤. --set-key-file ì˜µì…˜ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤. + Set the key file for the database. ë°ì´í„°ë² ì´ìФ 키 파ì¼ì„ 설정합니다. @@ -6588,10 +7241,6 @@ Do you want to overwrite it? Create a new database. 새 ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 만듭니다. - - Path of the database. - ë°ì´í„°ë² ì´ìŠ¤ì˜ ê²½ë¡œìž…ë‹ˆë‹¤. - Invalid decryption time %1. ìž˜ëª»ëœ ë³µí˜¸í™” 시간: %1. @@ -6636,6 +7285,158 @@ Do you want to overwrite it? Successfully created new database. 새 ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 만들었습니다. + + Unset the password for the database. + ë°ì´í„°ë² ì´ìФ 암호를 설정 해제했습니다. + + + Unset the key file for the database. + ë°ì´í„°ë² ì´ìФ 키 파ì¼ì„ 설정 해제했습니다. + + + Edit a database. + ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 편집합니다. + + + Cannot use %1 and %2 at the same time. + %1와(ê³¼) %2ì„(를) ë™ì‹œì— 사용할 수 없습니다. + + + Could not change the database key. + ë°ì´í„°ë² ì´ìФ 키를 변경할 수 없습니다. + + + Database was not modified. + ë°ì´í„°ë² ì´ìŠ¤ê°€ 수정ë˜ì§€ 않았습니다. + + + Writing the database failed: %1 + ë°ì´í„°ë² ì´ìФì—기ë¡í•  수 ì—†ìŒ: %1 + + + Successfully edited the database. + ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 편집했습니다. + + + Cannot remove password: The database does not have a password. + 암호를 삭제할 수 ì—†ìŒ: ë°ì´í„°ë² ì´ìŠ¤ì— ì•”í˜¸ê°€ 설정ë˜ì–´ 있지 않습니다. + + + Cannot remove file key: The database does not have a file key. + 키를 삭제할 수 ì—†ìŒ: ë°ì´í„°ë² ì´ìŠ¤ì— íŒŒì¼ í‚¤ê°€ 설정ë˜ì–´ 있지 않습니다. + + + Loading the new key file failed: %1 + 새 키 íŒŒì¼ ë¶ˆëŸ¬ì˜¤ê¸° 실패: %1 + + + Found unexpected Key type %1 + 예ìƒí•˜ì§€ 못한 키 í˜•ì‹ %1 + + + Cannot remove all the keys from a database. + ë°ì´í„°ë² ì´ìФì—서 모든 키를 삭제할 수 없습니다. + + + Show a database's information. + ë°ì´í„°ë² ì´ìФ 정보를 표시합니다. + + + UUID: + UUID: + + + Name: + ì´ë¦„: + + + Description: + 설명: + + + Cipher: + 암호화: + + + KDF: + KDF: + + + Recycle bin is enabled. + íœ´ì§€í†µì´ í™œì„±í™”ë˜ì—ˆìŠµë‹ˆë‹¤. + + + Recycle bin is not enabled. + íœ´ì§€í†µì´ ë¹„í™œì„±í™”ë˜ì—ˆìŠµë‹ˆë‹¤. + + + Location + 위치 + + + Database created + ë°ì´í„°ë² ì´ìФ ìƒì„±ë¨ + + + Last saved + 마지막 저장 + + + Unsaved changes + 저장하지 ì•Šì€ ë³€ê²½ 사항 + + + yes + 예 + + + no + 아니요 + + + Number of groups + 그룹 개수 + + + Number of entries + 항목 개수 + + + Number of expired entries + 내보낸 항목 개수 + + + Unique passwords + 중복ë˜ì§€ 않는 암호 + + + Non-unique passwords + ì¤‘ë³µëœ ì•”í˜¸ + + + Maximum password reuse + 최대 암호 재사용 + + + Number of short passwords + ì§§ì€ ì•”í˜¸ 개수 + + + Number of weak passwords + 약한 암호 개수 + + + Entries excluded from reports + 보고서ì—서 ì œì™¸ëœ í•­ëª© + + + Average password length + í‰ê·  암호 ê¸¸ì´ + + + %1 characters + %1ìž + Word count for the diceware passphrase. 주사위 암호 단어 개수입니다. @@ -6687,10 +7488,6 @@ Do you want to overwrite it? Enter new password for entry: í•­ëª©ì˜ ìƒˆë¡œìš´ 암호 ìž…ë ¥: - - Writing the database failed: %1 - ë°ì´í„°ë² ì´ìФì—기ë¡í•  수 ì—†ìŒ: %1 - Successfully edited entry %1. 항목 %1ì„(를) 편집했습니다. @@ -6915,106 +7712,6 @@ Do you want to overwrite it? Successfully imported database. ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 가져왔습니다. - - Show a database's information. - ë°ì´í„°ë² ì´ìФ 정보를 표시합니다. - - - UUID: - UUID: - - - Name: - ì´ë¦„: - - - Description: - 설명: - - - Cipher: - 암호화: - - - KDF: - KDF: - - - Recycle bin is enabled. - íœ´ì§€í†µì´ í™œì„±í™”ë˜ì—ˆìŠµë‹ˆë‹¤. - - - Recycle bin is not enabled. - íœ´ì§€í†µì´ ë¹„í™œì„±í™”ë˜ì—ˆìŠµë‹ˆë‹¤. - - - Location - 위치 - - - Database created - ë°ì´í„°ë² ì´ìФ ìƒì„±ë¨ - - - Last saved - 마지막 저장 - - - Unsaved changes - 저장하지 ì•Šì€ ë³€ê²½ 사항 - - - yes - 예 - - - no - 아니요 - - - Number of groups - 그룹 개수 - - - Number of entries - 항목 개수 - - - Number of expired entries - 내보낸 항목 개수 - - - Unique passwords - 중복ë˜ì§€ 않는 암호 - - - Non-unique passwords - ì¤‘ë³µëœ ì•”í˜¸ - - - Maximum password reuse - 최대 암호 재사용 - - - Number of short passwords - ì§§ì€ ì•”í˜¸ 개수 - - - Number of weak passwords - 약한 암호 개수 - - - Entries excluded from reports - 보고서ì—서 ì œì™¸ëœ í•­ëª© - - - Average password length - í‰ê·  암호 ê¸¸ì´ - - - %1 characters - %1ìž - Unknown command %1 알 수 없는 명령 %1 @@ -7063,7 +7760,7 @@ Available commands: Use the same credentials for both database files. - ë‘ ë°ì´í„°ë² ì´ìФ 파ì¼ì— ê°™ì€ ì¸ì¦ 정보를 사용합니다. + ë‘ ë°ì´í„°ë² ì´ìФ 파ì¼ì— ê°™ì€ ìžê²© ì¦ëª…ì„ ì‚¬ìš©í•©ë‹ˆë‹¤. Key file of the database to merge from. @@ -7187,6 +7884,10 @@ Available commands: Show the protected attributes in clear text. ë³´í˜¸ëœ ì†ì„±ì„ í‰ë¬¸ìœ¼ë¡œ 표시합니다. + + Show all the attributes of the entry. + í•­ëª©ì˜ ëª¨ë“  ì†ì„±ì„ 표시합니다. + Show the attachments of the entry. í•­ëª©ì˜ ì²¨ë¶€ë¥¼ 표시합니다. @@ -7257,6 +7958,10 @@ Please consider generating a new key file. Invalid YubiKey serial %1 ìž˜ëª»ëœ YubiKey ì¼ë ¨ 번호 %1 + + Please present or touch your YubiKey to continue. + ê³„ì† ì§„í–‰í•˜ë ¤ë©´ YubiKey를 연결하거나 ë²„íŠ¼ì„ ëˆ„ë¥´ì‹­ì‹œì˜¤... + Enter password to encrypt database (optional): ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 암호화할 암호 ìž…ë ¥(ì„ íƒ ì‚¬í•­): @@ -7444,8 +8149,8 @@ CPU 아키í…처: %2 %1ë¶„ - Botan library must be at least 2.11.x, found %1.%2.%3 - Botan ë¼ì´ë¸ŒëŸ¬ë¦¬ì˜ 최소 í•„ìš” ë²„ì „ì€ 2.11.xì´ì§€ë§Œ %1.%2.%3 ë²„ì „ì´ ì„¤ì¹˜ë˜ì–´ ìžˆìŒ + Botan library must be at least %1, found %2.%3.%4 + Botan ë¼ì´ë¸ŒëŸ¬ë¦¬ì˜ 최소 í•„ìš” ë²„ì „ì€ %1ì´ì§€ë§Œ %2.%3.%4 ë²„ì „ì´ ì„¤ì¹˜ë˜ì–´ ìžˆìŒ Cryptographic libraries: @@ -7685,10 +8390,6 @@ CPU 아키í…처: %2 read password of the database from stdin 표준 ìž…ë ¥ì—서 ë°ì´í„°ë² ì´ìФ 암호 ì½ê¸° - - allow app screen recordering and screenshots - 앱 화면 녹화와 스í¬ë¦°ìƒ· 허용 - Locked databases. ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 잠갔습니다. @@ -7701,6 +8402,10 @@ CPU 아키í…처: %2 Another instance of KeePassXC is already running. 다른 KeePassXC ì¸ìŠ¤í„´ìŠ¤ê°€ ì´ë¯¸ 실행 중입니다. + + KeePassXC is not running. No open database to lock + KeePassXCê°€ 실행 ì¤‘ì´ ì•„ë‹™ë‹ˆë‹¤. 잠글 ë°ì´í„°ë² ì´ìŠ¤ê°€ 열리지 ì•Šì•˜ìŒ + Fatal error while testing the cryptographic functions. 암호화 함수를 시험하는 중 오류가 ë°œìƒí•˜ì˜€ìŠµë‹ˆë‹¤. @@ -7709,10 +8414,6 @@ CPU 아키í…처: %2 KeePassXC - Error KeePassXC - 오류 - - Warning: Failed to prevent screenshots on a top level window! - 경고: 최ìƒìœ„ 수준 ì°½ì˜ ìŠ¤í¬ë¦°ìƒ· 캡처 방지를 설정할 수 없습니다! - Database password: ë°ì´í„°ë² ì´ìФ 암호: @@ -7729,14 +8430,228 @@ CPU 아키í…처: %2 Failed to create Windows Hello credential. - Windows Hello ì¸ì¦ 정보를 ìƒì„±í•  수 없습니다. + Windows Hello ìžê²© ì¦ëª…ì„ ìƒì„±í•  수 없습니다. Failed to sign challenge using Windows Hello. Windows Hello로 Challenge를 서명할 수 없습니다. - Please present or touch your YubiKey to continue. + Warning: Failed to block screenshot capture on a top-level window. + 경고: 최ìƒìœ„ ì°½ì˜ í™”ë©´ 캡처를 차단할 수 없습니다. + + + Invalid Cipher + ìž˜ëª»ëœ ì•”í˜¸í™” + + + Invalid KDF + ìž˜ëª»ëœ KDF + + + Access to all entries is denied + 모든 항목 ì ‘ê·¼ì´ ê±°ë¶€ë¨ + + + allow screenshots and app recording (Windows/macOS) + 스í¬ë¦°ìƒ·ê³¼ 앱 녹화 허용(Windows/macOS) + + + Enter Shortcut + 단축키 ìž…ë ¥ + + + Action + ë™ìž‘ + + + Shortcuts + 단축키 + + + Attestation not supported + ì¦ëª…ì„ ì§€ì›í•˜ì§€ ì•ŠìŒ + + + Credential is excluded + ìžê²© ì¦ëª…ì´ ì œì™¸ë¨ + + + Passkeys request canceled + Passkey 요청 ì·¨ì†Œë¨ + + + Invalid user verification + ìž˜ëª»ëœ ì‚¬ìš©ìž ê²€ì¦ + + + Empty public key + 공개 키가 비어 ìžˆìŒ + + + Invalid URL provided + ìž˜ëª»ëœ URL ì§€ì •ë¨ + + + Passkeys + Passkey + + + AES initialization failed + AES 초기화 실패 + + + AES encrypt failed + AES 암호화 실패 + + + Failed to store in Linux Keyring + 리눅스 키ë§ì— 저장할 수 ì—†ìŒ + + + Polkit returned an error: %1 + Polkitì—서 오류를 반환함: %1 + + + Could not locate key in keyring + 키ë§ì—서 키를 ì°¾ì„ ìˆ˜ ì—†ìŒ + + + Could not read key in keyring + 키ë§ì—서 키를 ì½ì„ 수 ì—†ìŒ + + + AES decrypt failed + AES 복호화 실패 + + + No Polkit authentication agent was available + Polkit ì¸ì¦ ì—ì´ì „트를 사용할 수 ì—†ìŒ + + + Polkit authorization failed + Polkit ì¸ì¦ 실패 + + + No Quick Unlock provider is available + 빠른 잠금 í•´ì œ 공급ìžë¥¼ 사용할 수 ì—†ìŒ + + + Failed to init KeePassXC crypto. + KeePassXC 암호화를 초기화할 수 없습니다. + + + Failed to encrypt key data. + 키 ë°ì´í„°ë¥¼ 암호화할 수 없습니다. + + + Failed to get Windows Hello credential. + Windows Hello ìžê²© ì¦ëª…ì„ ê°€ì ¸ì˜¬ 수 없습니다. + + + Failed to decrypt key data. + 키 ë°ì´í„°ë¥¼ 복호화할 수 없습니다. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7776,18 +8691,6 @@ CPU 아키í…처: %2 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - 보고서ì—서 ë§Œë£Œëœ í•­ëª© 제외 - - - Show only entries which have URL set - URLì´ ì§€ì •ëœ í•­ëª©ë§Œ 표시 - - - Show only entries which have browser settings in custom data - ì‚¬ìš©ìž ì •ì˜ ë°ì´í„°ì— 브ë¼ìš°ì € ì„¤ì •ì´ ìžˆëŠ” 항목만 표시 - Double-click entries to edit. í•­ëª©ì„ ë‘ ë²ˆ í´ë¦­í•˜ë©´ 편집할 수 있습니다. @@ -7852,17 +8755,25 @@ CPU 아키í…처: %2 Exclude from reports 보고서ì—서 제외 + + Only show entries that have a URL + URLì´ ìžˆëŠ” 항목만 표시 + + + Only show entries that have been explicitly allowed or denied + 명시ì ìœ¼ë¡œ 허용ë˜ì—ˆê±°ë‚˜ ê±°ë¶€ëœ í•­ëª©ë§Œ 표시 + + + Show expired entries + ë§Œë£Œëœ í•­ëª© 표시 + + + (Expired) + (만료ë¨) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - 보고서ì—서 ë§Œë£Œëœ í•­ëª© 제외 - - - Also show entries that have been excluded from reports - 보고서ì—서 ì œì™¸ëœ í•­ëª©ë„ í‘œì‹œ - Hover over reason to show additional details. Double-click entries to edit. ì´ìœ  ìœ„ì— ë§ˆìš°ìŠ¤ë¥¼ 올려 ë‘ë©´ ìžì„¸í•œ 정보를 표시합니다. í•­ëª©ì„ ë‘ ë²ˆ í´ë¦­í•˜ë©´ 편집할 수 있습니다. @@ -7938,6 +8849,18 @@ CPU 아키í…처: %2 Exclude from reports 보고서ì—서 제외 + + Show expired entries + ë§Œë£Œëœ í•­ëª© 표시 + + + Show entries that have been excluded from reports + 보고서ì—서 ì œì™¸ëœ í•­ëª© 표시 + + + (Expired) + (만료ë¨) + ReportsWidgetHibp @@ -8034,6 +8957,65 @@ CPU 아키í…처: %2 보고서ì—서 제외 + + ReportsWidgetPasskeys + + Export + 내보내기 + + + Import + 가져오기 + + + List of entry URLs + 항목 URL ëª©ë¡ + + + Please wait, list of entries with Passkeys is being updated… + Passkeyê°€ 있는 항목 목ë¡ì„ ì—…ë°ì´íŠ¸í•˜ëŠ” ë™ì•ˆ 잠시 기다려 주십시오… + + + No entries with Passkeys. + Passkeyê°€ 있는 í•­ëª©ì´ ì—†ìŠµë‹ˆë‹¤. + + + Title + 제목 + + + Path + 경로 + + + Username + ì‚¬ìš©ìž ì´ë¦„ + + + URLs + URL + + + Edit Entry… + 항목 편집… + + + Delete Entry(s)… + 항목 ì‚­ì œ... + + + Relying Party + ì˜ì¡´í•˜ëŠ” ìƒëŒ€ë°© + + + Show expired entries + ë§Œë£Œëœ í•­ëª© 표시 + + + (Expired) + (만료ë¨) + + ReportsWidgetStatistics @@ -8273,6 +9255,10 @@ CPU 아키í…처: %2 Search Help 검색 ë„ì›€ë§ + + Save Search + 검색 저장 + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8504,11 +9490,38 @@ CPU 아키í…처: %2 %1(으)로 내보내기 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + ë™ìž‘ì„ ë‘ ë²ˆ í´ë¦­í•´ì„œ 단축키 변경 + + + Shortcut Conflict + 단축키 ì¶©ëŒ + + + Filter... + í•„í„°... + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + %1 단축키가 '%2'와(ê³¼) ì¶©ëŒí•©ë‹ˆë‹¤. 단축키를 ë®ì–´ì“°ì‹œê² ìŠµë‹ˆê¹Œ? + + + Reset Shortcuts + 단축키 초기화 + + TagModel - All - ëª¨ë‘ + Clear Search + 검색 비우기 + + + All Entries + 모든 항목 Expired @@ -8519,6 +9532,25 @@ CPU 아키í…처: %2 약한 암호 + + TagView + + Remove Search + 검색 ì‚­ì œ + + + Remove Tag + 태그 ì‚­ì œ + + + Confirm Remove Tag + 태그 ì‚­ì œ í™•ì¸ + + + Remove tag "%1" from all entries in this database? + ì´ ë°ì´í„°ë² ì´ìŠ¤ì— ìžˆëŠ” 모든 항목ì—서 "%1" 태그를 삭제하시겠습니까? + + TotpDialog @@ -8676,26 +9708,6 @@ Example: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database KeePassXC ë°ì´í„°ë² ì´ìŠ¤ì— ì•”í˜¸ë¥¼ 안전하게 저장하십시오 - - Create new database - 새 ë°ì´í„°ë² ì´ìФ 만들기 - - - Open existing database - 기존 ë°ì´í„°ë² ì´ìФ 열기 - - - Import from KeePass 1 - KeePass 1ì—서 가져오기 - - - Import from 1Password - 1Passwordì—서 가져오기 - - - Import from CSV - CSVì—서 가져오기 - Recent databases 최근 ë°ì´í„°ë² ì´ìФ @@ -8708,6 +9720,18 @@ Example: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 KeePassXC %1ì— ì˜¤ì‹  ê²ƒì„ í™˜ì˜í•©ë‹ˆë‹¤ + + Create Database + ë°ì´í„°ë² ì´ìФ 만들기 + + + Open Database + ë°ì´í„°ë² ì´ìФ 열기 + + + Import File + + WinUtils @@ -8724,31 +9748,8 @@ Example: JBSWY3DPEHPK3PXP ì „ì—­ 단축키를 등ë¡í•  수 ì—†ìŒ - - WindowsHello - - Failed to init KeePassXC crypto. - KeePassXC 암호화를 초기화할 수 없습니다. - - - Failed to encrypt key data. - 키 ë°ì´í„°ë¥¼ 암호화할 수 없습니다. - - - Failed to get Windows Hello credential. - Windows Hello ì¸ì¦ 정보를 가져올 수 없습니다. - - - Failed to decrypt key data. - 키 ë°ì´í„°ë¥¼ 복호화할 수 없습니다. - - YubiKey - - %1 No interface, slot %2 - %1 ì¸í„°íŽ˜ì´ìФ ì—†ìŒ, 슬롯 %2 - General: ì¼ë°˜: @@ -8760,14 +9761,6 @@ Example: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - 하드웨어 í† í° ìƒˆë¡œ 고침 - - - Refresh - 새로 고침 - Hardware key slot selection 하드웨어 키 슬롯 ì„ íƒ @@ -8800,10 +9793,6 @@ Example: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove Challenge-Response 설정ë¨, í´ë¦­í•´ì„œ 변경하거나 ì‚­ì œ - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p><a href="https://www.yubico.com/">YubiKey</a>나 <a href="https://onlykey.io">OnlyKey</a>를 가지고 있다면 추가 ë³´ì•ˆì— ì‚¬ìš©í•  수 있습니다.</p><p>장치 슬롯 중 하나를 <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response 모드</a>로 프로그래ë°í•´ì•¼ 합니다.</p> - Detecting hardware keys… 하드웨어 키 ì¸ì‹ 중... @@ -8812,28 +9801,21 @@ Example: JBSWY3DPEHPK3PXP No hardware keys detected ì¸ì‹ëœ 하드웨어 키 ì—†ìŒ - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 ìž˜ëª»ëœ ìŠ¬ë¡¯ ì§€ì •ë¨ - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] Challenge-Response - 슬롯 %3 - The YubiKey PCSC interface has not been initialized. YubiKey PCSC ì¸í„°íŽ˜ì´ìŠ¤ê°€ 초기화ë˜ì§€ 않았습니다. - - Hardware key is currently in use. - 하드웨어 키가 사용 중입니다. - Could not find or access hardware key with serial number %1. Please present it to continue. ì¼ë ¨ 번호가 %1ì¸ í•˜ë“œì›¨ì–´ 키를 ì°¾ì„ ìˆ˜ 없거나 접근할 수 없습니다. ê³„ì† ì§„í–‰í•˜ë ¤ë©´ 연결하십시오. @@ -8850,6 +9832,21 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 Challenge-Response를 완료할 수 없습니다. PCSC 오류 코드: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + 누르기 + + + Passive + USB Challenge-Response Key no interaction required + 수ë™ì  + YubiKeyInterfaceUSB @@ -8857,14 +9854,6 @@ Example: JBSWY3DPEHPK3PXP Unknown 알 수 ì—†ìŒ - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] ì„¤ì •ëœ ìŠ¬ë¡¯ - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] Challenge-Response - 슬롯 %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8879,10 +9868,6 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. YubiKey USB ì¸í„°íŽ˜ì´ìŠ¤ê°€ 초기화ë˜ì§€ 않았습니다. - - Hardware key is currently in use. - 하드웨어 키가 사용 중입니다. - Could not find hardware key with serial number %1. Please plug it in to continue. ì¼ë ¨ 번호가 %1ì¸ í•˜ë“œì›¨ì–´ 키를 ì°¾ì„ ìˆ˜ 없습니다. ê³„ì† ì§„í–‰í•˜ë ¤ë©´ 연결하십시오. @@ -8899,5 +9884,15 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 Challenge-Response를 완료할 수 없습니다. 오류: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_lt.ts b/share/translations/keepassxc_lt.ts new file mode 100644 index 000000000..5463711f8 --- /dev/null +++ b/share/translations/keepassxc_lt.ts @@ -0,0 +1,9882 @@ + + + AboutDialog + + About KeePassXC + Apie KeePassXC + + + About + Apie + + + Report bugs at: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> + PraneÅ¡kite apie klaidas adresu: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> + + + KeePassXC is distributed under the terms of the GNU General Public License (GPL) version 2 or (at your option) version 3. + KeePassXC platinamas pagal GNU bendrosios vieÅ¡osios licencijos (GPL) 2 versijos arba (jÅ«sų pasirinkimu) 3 versijos sÄ…lygas. + + + Project Maintainers: + Projekto prižiÅ«rÄ—tojai: + + + Special thanks from the KeePassXC team go to debfx for creating the original KeePassX. + Ypatinga "KeePassXC" komandos padÄ—ka debfx už originalaus "KeePassX" sukÅ«rimÄ…. + + + Contributors + Autoriai + + + <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">See Contributions on GitHub</a> + <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">PeržiÅ«rÄ—kite "GitHub" indÄ—lį</a> + + + Debug Info + Derinimo informacija + + + Include the following information whenever you report a bug: + Kai praneÅ¡ate apie klaidÄ…, įtraukite Å¡iÄ… informacijÄ…: + + + Copy to clipboard + Kopijuoti į mainų sritį + + + + AccessControlDialog + + KeePassXC - Access Request + "KeePassXC" - prieigos užklausa + + + Non-existing/inaccessible executable path. Please double-check the client is legit. + Neegzistuojantis / neprieinamas vykdomosios programos kelias. Dukart patikrinkite, ar klientas yra tinkamas. + + + <html><head/><body><p><span style=" font-weight:600;">%1 </span>is requesting access to the following entries:</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">%1 </span>praÅ¡o prieigos prie Å¡ių įrašų:</p></body></html> + + + Name + Pavadinimas + + + PID + PID + + + Executable + PaleidÄ—jas + + + Command Line + KomandinÄ— EilutÄ— + + + Details + IÅ¡samiau + + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + JÅ«sų sprendimas bus įsimintas tol, kol užklausÄ… pateikÄ™s klientas IR KeePassXC yra paleisti. + + + Remember + Prisiminti + + + Allow Selected + Leisti PasirinktÄ… + + + Deny All && Future + Neleisti visiems && ateityje + + + Allow All && &Future + Leisti visiems && &Ateityje + + + + AccessControlDialog::DenyButton + + Deny for this program + Neleisti Å¡iai programai + + + + AgentSettingsWidget + + Enable SSH Agent integration + Ä®jungti SSH agento integracijÄ… + + + Use Pageant + Naudokite "Pageant" + + + Use OpenSSH + Naudoti OpenSSH + + + Use both agents + Naudoti abu agentus + + + SSH_AUTH_SOCK override + Nepaisyti SSH_AUTH_SOCK + + + SSH_AUTH_SOCK value + SSH_AUTH_SOCK vertÄ— + + + (empty) + (tuÅ¡Äia) + + + SSH_SK_PROVIDER value + SSH_SK_PROVIDER vertÄ— + + + SSH_SK_PROVIDER override + Nepaisyti SSH_SK_PROVIDER + + + No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. + NÄ—ra SSH Agento lizdo. Ä®sitikinkite, kad SSH_AUTH_SOCK aplinkos kintamasis egzistuoja, arba nustatykite jį pakeiÄiantį kintamÄ…jį. + + + SSH Agent connection is working! + SSH Agento ryÅ¡ys veikia! + + + + ApplicationSettingsWidget + + Application Settings + Programos nustatymai + + + General + Bendra + + + Security + Saugumas + + + This setting cannot be enabled when minimize on unlock is enabled. + Å is nustatymas negali bÅ«ti įjungtas, kai įjungtas minimizavimas atrakinimo metu. + + + Access error for config file %1 + KonfigÅ«racijos failo %1 prieigos klaida + + + Icon only + Tik piktograma + + + Text only + Tik tekstas + + + Text beside icon + Tekstas Å¡alia piktogramos + + + Text under icon + Tekstas po piktograma + + + Follow style + Sekti stiliumi + + + Monochrome + Vienspalvis + + + Monochrome (light) + Monochrominis (Å¡viesus) + + + Monochrome (dark) + Monochrominis (tamsus) + + + Colorful + Spalvotas + + + You must restart the application to set the new language. Would you like to restart now? + NorÄ—dami nustatyti naujÄ… kalbÄ…, turite iÅ¡ naujo paleisti programÄ…. Ar norite iÅ¡ naujo paleisti programÄ… dabar? + + + Reset Settings? + Atstatyti nustatymus? + + + Are you sure you want to reset all general and security settings to default? + Ar tikrai norite atstatyti kaip buvo visus bendruosius ir saugumo nustatymus? + + + Select backup storage directory + Pasirinkite atsarginių kopijų saugojimo katalogÄ… + + + + ApplicationSettingsWidgetGeneral + + Basic Settings + Pagrindiniai nustatymai + + + Startup + Ä®jungimo + + + Start only a single instance of KeePassXC + Paleisti tik vienÄ… KeePassXC egzempliorių + + + Automatically launch KeePassXC at system startup + AutomatiÅ¡kai paleisti KeePassXC paleidžiant sistemÄ… + + + Minimize window at application startup + Paleidus programÄ…, suskleisti langÄ… + + + Minimize window after unlocking database + Minimizuoti langÄ… po duomenų bazÄ—s atrakinimo + + + Remember previously used databases + Prisiminti anksÄiau naudotas duomenų bazes + + + recent files + naujausi failai + + + Load previously open databases on startup + Ä®kelti anksÄiau atidarytas duomenų bazes paleidimo metu + + + Remember database key files and security dongles + Prisiminti duomenų bazÄ—s raktų failus ir saugumo raktus + + + Check for updates at application startup once per week + KartÄ… per savaitÄ™ tikrinti, ar yra atnaujinimų paleidžiant programÄ… + + + Include beta releases when checking for updates + Ä®traukti beta versijas, kai tikrinami atnaujinimai + + + On database unlock, show entries that + Duomenų bazÄ—s atrakinimo metu rodyti įraÅ¡us, kurie + + + have expired + On database unlock, show entries that... + nustojo galioti + + + days + On database unlock, show entries that will expire within %1 days + dienos + + + will expire within + On database unlock, show entries that... + nustos galioti per + + + File Management + Failų tvarkymas + + + Automatically save after every change + AutomatiÅ¡kai įraÅ¡yti po kiekvieno pakeitimo + + + Automatically save when locking database + AutomatiÅ¡kai iÅ¡saugoti, kai užrakinama duomenų bazÄ— + + + Automatically save non-data changes when locking database + AutomatiÅ¡kai iÅ¡saugoti ne duomenų pakeitimus, kai užrakinama duomenų bazÄ— + + + Automatically reload the database when modified externally + IÅ¡oriÅ¡kai modifikavus duomenų bazÄ™, automatiÅ¡kai įkelti jÄ… iÅ¡ naujo + + + Backup database file before saving + IÅ¡saugoti duomenų bazÄ™ prieÅ¡ iÅ¡saugant + + + Backup destination + AtsarginÄ—s kopijos darymo vieta + + + Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". + Nurodo duomenų bazÄ—s atsarginÄ—s kopijos failo vietÄ…. Vietoj "{DB_FILENAME}" įraÅ¡omas iÅ¡saugotos duomenų bazÄ—s failo pavadinimas be plÄ—tinio. {TIME:<format>} pakeiÄiamas atsarginÄ—s kopijos darymo laiku, žr. https://doc.qt.io/qt-5/qdatetime.html#toString. <format> Pagal numatytuosius nustatymus naudojama formato eilutÄ— "dd_MM_yyyy_hh-mm-ss". + + + {DB_FILENAME}.old.kdbx + {DB_FILENAME}.old.kdbx + + + Choose... + Pasirinkti... + + + Use alternative saving method (may solve problems with Dropbox, Google Drive, GVFS, etc.) + Naudoti alternatyvų iÅ¡saugojimo bÅ«dÄ… (gali iÅ¡sprÄ™sti Dropbox, Google Drive, GVFS ir kt. problemas). + + + Temporary file moved into place + Laikinasis failas perkeltas į vietÄ… + + + Directly write to database file (dangerous) + Tiesioginis įraÅ¡ymas į duomenų bazÄ—s failÄ… (pavojinga) + + + Entry Management + Ä®rašų tvarkymas + + + Use group icon on entry creation + Kuriant įraÅ¡us, naudoti grupÄ—s piktogramÄ… + + + Minimize when opening a URL + Sumažinti atidarant URL adresÄ… + + + Hide window when copying to clipboard + PaslÄ—pti langÄ… kopijuojant į iÅ¡karpinÄ™ + + + Minimize + Sumažinti + + + Drop to background + Nueikite į fonÄ… + + + Favicon download timeout: + "Favicon" atsisiuntimo skirtasis laikas: + + + Website icon download timeout in seconds + SvetainÄ—s piktogramos atsisiuntimo laiko limitas sekundÄ—mis + + + sec + Seconds + sek. + + + User Interface + Naudotojo sÄ…saja + + + Toolbar button style + Ä®rankių juostos mygtukų stilius + + + Movable toolbar + Perkeliama įrankių juosta + + + Language selection + Kalbos pasirinkimas + + + Language: + Kalba: + + + (restart program to activate) + (paleiskite programÄ… iÅ¡ naujo, kad aktyvuotumÄ—te) + + + Toolbar button style: + UžduotinÄ—s mygtukų stilius + + + Show passwords in color + Rodyti slaptažodžius spalvotai + + + Use monospaced font for notes + UžraÅ¡ams naudoti vienodo ploÄio Å¡riftÄ… + + + Minimize instead of app exit + Sumažinimas vietoj programÄ—lÄ—s išėjimo + + + Show a system tray icon + Rodyti sistemos dÄ—klo piktogramÄ… + + + Tray icon type + DÄ—tuvÄ—s piktogramos tipas + + + Tray icon type: + DÄ—tuvÄ—s piktogramos tipas: + + + Hide window to system tray when minimized + Suskleidus langÄ…, slÄ—pti jį į sistemos dÄ—klÄ… + + + Reset settings to default… + Nustatyti nustatymus atgal į numatytuosius + + + Auto-Type + Automatinis rinkimas + + + Use entry title to match windows for global Auto-Type + Naudoti įraÅ¡o antraÅ¡tÄ™, norint sutapatinti langus visuotiniam Automatiniam rinkimui + + + Use entry URL to match windows for global Auto-Type + Naudoti įraÅ¡o URL, norint sutapatinti langus visuotiniam Automatiniam rinkimui + + + Always ask before performing Auto-Type + Visada klausti prieÅ¡ atliekant automatinį rinkimÄ… + + + Hide expired entries from Auto-Type + PaslÄ—pti nebegaliojanÄius įraÅ¡us nuo Auto-Ä®vedimo + + + Re-lock previously locked database after performing Auto-Type + IÅ¡ naujo užrakinti anksÄiau užrakintÄ… duomenų bazÄ™ atlikus automatinį rinkimÄ… + + + Auto-Type start delay: + Auto-Ä®vedimo paleidimo uždelsimas: + + + Global Auto-Type shortcut: + Visuotinio automatinio rinkimo spartieji klaviÅ¡ai: + + + Auto-type start delay milliseconds + Auto-įvedimo paleidimo uždelsimas milisekundÄ—mis + + + ms + Milliseconds + ms + + + Auto-Type typing delay: + Auto-Ä®vedimo delsa + + + Global auto-type shortcut + Visuotinio automatinio rinkimo spartieji klaviÅ¡ai + + + Auto-type character typing delay milliseconds + Automatinio rinkimo simbolių įvedimo vÄ—lavimas milisekundÄ—mis + + + Remember last typed entry for: + Prisiminti paskutinį įvestÄ… įrašą: + + + + ApplicationSettingsWidgetSecurity + + Timeouts + Laiko limitai + + + Database lock timeout seconds + Duomenų bazÄ—s užrakinimo laiko limitas sekundÄ—mis + + + sec + Seconds + sek. + + + Clear clipboard after + IÅ¡valyti iÅ¡karpinÄ™ po + + + Clear search query after + IÅ¡valyti paieÅ¡kos užklausÄ… po + + + min + Minutes + min. + + + Clipboard clear seconds + SekundÄ—s iki iÅ¡karpinÄ—s iÅ¡valymo + + + Lock databases after inactivity of + Užrakinti duomenų bazes, kai kompiuteris neaktyvus + + + Convenience + Patogumas + + + Enable database quick unlock (Touch ID / Windows Hello) + Naudoti greitÄ…jį duomenų bazÄ—s atrakinimÄ… (Touch ID / Windows Hello) + + + Lock databases when session is locked or lid is closed + Užrakinti duomenų bazes, kai yra užrakinamas seansas ar uždaromas neÅ¡iojamojo kompiuterio dangtis + + + Lock databases after minimizing the window + Suskleidus langÄ…, užrakinti duomenų bazes + + + Require password repeat when it is visible + Reikalauti pakartoti slaptažodį, kai jis yra matomas + + + Hide passwords when editing them + SlÄ—pti slaptažodžius juos redaguojant + + + Use placeholder for empty password fields + Naudoti žymeklį tuÅ¡tiems slaptažodžių laukeliams + + + Hide passwords in the entry preview panel + PaslÄ—pti slaptažodžius įraÅ¡o peržiÅ«ros skydelyje + + + Hide entry notes by default + Pagal numatymÄ…, slÄ—pti įraÅ¡o pastabas + + + Move entries to recycle bin without confirmation + Perkelti įraÅ¡us į Å¡iukÅ¡liadėžę be patvirtinimo + + + Enable double click to copy the username/password entry columns + Ä®galinkite dvigubÄ… paspaudimÄ…, kad nukopijuotumÄ—te slapyvardžio ir slaptažodžio įrašų stulpelius + + + Privacy + Privatumas + + + Use DuckDuckGo service to download website icons + Naudoti DuckDuckGo paslaugÄ… svetainių piktogramoms atsisiųsti + + + Hide TOTP in the entry preview panel + + + + + AutoType + + The requested Auto-Type sequence cannot be used due to an error: + PraÅ¡omos automatinio rinkimo sekos negalima naudoti dÄ—l klaidos: + + + Auto-Type Error + Auto-Ä®vedimo Klaida + + + Permission Required + BÅ«tinas leidimas + + + KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. + Kad KeePassXC galÄ—tų atlikti pradinio lygio automatinį rinkimÄ…, reikia prieigos leidimo. Jei leidimas jau suteiktas, gali tekti iÅ¡ naujo paleisti KeePassXC. + + + KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. + Kad KeePassXC galÄ—tų atlikti visuotinį automatinį rinkimÄ…, reikia prieigos ir ekrano įraÅ¡ymo leidimo. Ekrano įraÅ¡ymas bÅ«tinas, kad bÅ«tų galima naudoti lango pavadinimÄ… įraÅ¡ams rasti. Jei leidimas jau suteiktas, gali tekti iÅ¡ naujo paleisti KeePassXC. + + + Invalid entry provided + Pateiktas netinkamas įraÅ¡as + + + Bracket imbalance detected, found extra { or } + Aptiktas skliaustų disbalansas, rasta papildomų { arba } + + + Too many repetitions detected, max is %1: %2 + Aptikta per daug pasikartojimų, maksimalus skaiÄius yra %1: %2 + + + Very slow key press detected, max is %1: %2 + Aptiktas labai lÄ—tas klaviÅ¡o paspaudimas, maksimali trukmÄ— %1: %2 + + + Very long delay detected, max is %1: %2 + Aptiktas labai ilgas vÄ—lavimas, maksimali trukmÄ— %1: %2 + + + Entry does not have attribute for PICKCHARS: %1 + Ä®raÅ¡as neturi PICKCHARS atributo: %1 + + + Invalid conversion type: %1 + Netinkamas vertimo tipas: %1 + + + Invalid conversion syntax: %1 + Netinkama vertimo sintaksÄ—: %1 + + + Invalid regular expression syntax %1 +%2 + Netinkama regexp sintaksÄ— + + + Invalid placeholder: %1 + Netinkamas žymeklis: %1 + + + + AutoTypeAssociationsModel + + Window + Langas + + + Sequence + Seka + + + (empty) + (tuÅ¡Äia) + + + Default sequence + Numatytoji seka + + + + AutoTypeMatchModel + + Group + GrupÄ— + + + Title + AntraÅ¡tÄ— + + + Username + Naudotojo vardas + + + Sequence + Seka + + + + AutoTypePlatformX11 + + Trying to send invalid keysym. + Keysym netinkamas + + + Sequence aborted: Caps Lock is on + Seka nutraukta: įjungtas Caps Lock + + + Sequence aborted: Modifier keys held by user + Seka nutraukta: modifikatorių raktai priklauso naudotojui + + + Unable to get valid keycode for key: + Nepavyksta gauti galiojanÄio rakto kodo + + + + AutoTypeSelectDialog + + Auto-Type - KeePassXC + Automatinis rinkimas - KeePassXC + + + Double click a row to perform Auto-Type or find an entry using the search: + Dukart spustelÄ—kite eilutÄ™, kad atliktumÄ—te automatinį rinkimÄ… arba raskite įrašą naudodami paieÅ¡kÄ…: + + + <p>You can use advanced search queries to find any entry in your open databases. The following shortcuts are useful:<br/> +Ctrl+F - Toggle database search<br/> +Ctrl+1 - Type username<br/> +Ctrl+2 - Type password<br/> +Ctrl+3 - Type TOTP<br/> +Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> + Galite naudoti iÅ¡plÄ—stines paieÅ¡kos užklausas, kad rastumÄ—te bet kokį įrašą atvirose duomenų bazÄ—se. Naudingi Å¡ie trumpieji klaviÅ¡ai: +Ctrl+F - perjungti paieÅ¡kÄ… duomenų bazÄ—je +Ctrl+1 - įveskite vartotojo vardÄ… +Ctrl+2 - įveskite slaptažodį +Ctrl+3 - Ä®veskite TOTP +Ctrl+4 - naudoti virtualiÄ… klaviatÅ«rÄ… (tik Windows) + + + Search all open databases + PaieÅ¡ka visose atvirose duomenų bazÄ—se + + + Search… + IeÅ¡koti... + + + Type Sequence + RaÅ¡ymo Seka + + + Cancel + Atsisakyti + + + Type {USERNAME} + RaÅ¡yti {USERNAME} + + + Type {PASSWORD} + Ä®vesti {PASSWORD} + + + Type {TOTP} + Ä®vesti {TOTP} + + + Copy Username + Kopijuoti naudotojo vardÄ… + + + Copy Password + Kopijuoti Slaptažodį + + + Copy TOTP + Kopijuoti TOTP + + + Use Virtual Keyboard + Naudoti VirtualiÄ… KlaviatÅ«rÄ… + + + + BrowserAccessControlDialog + + KeePassXC - Browser Access Request + KeePassXC - NarÅ¡yklÄ—s prieigos užklausa + + + %1 is requesting access to the following entries: + %1 praÅ¡o prieigos prie Å¡ių įrašų: + + + Remember access to checked entries + Prisiminti prieigÄ… prie pasirinktų įrašų + + + Remember + Prisiminti + + + Allow access to entries + Leisti prieigÄ… prie įrašų + + + Allow Selected + Leisti PasirinktÄ… + + + Deny All + Atmesti Visus + + + Disable for this site + IÅ¡jungti Å¡iai svetainei + + + Undo + + + + + BrowserEntrySaveDialog + + Ok + Gerai + + + Cancel + Atsisakyti + + + You have multiple databases open. +Please select the correct database for saving credentials. + Turite atvertas kelias duomenų bazes. +Prisijungimo duomenų įraÅ¡ymui, pasirinkite teisingÄ… duomenų bazÄ™. + + + KeePassXC - Select Database + + + + + BrowserPasskeysConfirmationDialog + + Cancel + Atsisakyti + + + Update + + + + Authenticate + + + + Register new + + + + Register + + + + Timeout in <b>%n</b> seconds... + + + + Do you want to register Passkey for: + + + + Existing Passkey found. +Do you want to register a new Passkey for: + + + + Select the existing Passkey and press Update to replace it. + + + + Authenticate Passkey credentials for: + + + + Relying Party: %1 + + + + Username: %1 + + + + KeePassXC - Passkey credentials + + + + + BrowserService + + A request for creating a new group "%1" has been received. +Do you want to create this group? + + Gauta užklausa sukurti naujÄ… grupÄ™ "%1". +Ar norite sukurti Å¡iÄ… grupÄ™? + + + + You have received an association request for the following database: +%1 + +Give the connection a unique name or ID, for example: +chrome-laptop. + Gavote asociacijos užklausÄ… dÄ—l Å¡ios duomenų bazÄ—s: +%1 + +Suteikite ryÅ¡iui unikalų pavadinimÄ… arba ID, pvz: +chrome-laptop. + + + Save and allow access + Ä®raÅ¡yti ir leisti prieigÄ… + + + A shared encryption key with the name "%1" already exists. +Do you want to overwrite it? + Bendrinamas Å¡ifravimo raktas, pavadinimu "%1" jau yra. +Ar norite jį perraÅ¡yti? + + + Do you want to update the information in %1 - %2? + Ar norite atnaujinti informacijÄ… ties %1 - %2? + + + A request for deleting entry "%1" has been received. +Do you want to delete the entry? + + Gauta užklausa iÅ¡trinti įrašą "%1". +Ar norite iÅ¡trinti įrašą? + + + %1 (Passkey) + + + + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + + + + KeePassXC - Create a new group + + + + Disable + IÅ¡jungti + + + KeePassXC - Overwrite existing key? + + + + KeePassXC - Update Passkey + + + + KeePassXC - Update Entry + + + + KeePassXC - Delete entry + + + + KeePassXC - New key association request + + + + Passkey + + + + + BrowserSettingsWidget + + Dialog + Dialogas + + + This is required for accessing your databases with KeePassXC-Browser + Tai bÅ«tina norint pasiekti duomenų bazes naudojant KeePassXC-Browser + + + Enable browser integration + Ä®jungti narÅ¡yklÄ—s integracijÄ… + + + General + Bendra + + + Browsers installed as snaps are currently not supported. + Å iuo metu nepalaikomos narÅ¡yklÄ—s, įdiegtos kaip snapai. + + + Enable integration for these browsers: + Ä®jungti integracijÄ… Å¡ioms narÅ¡yklÄ—ms: + + + Vivaldi + Vivaldi + + + &Edge + &Edge + + + Firefox + Firefox + + + Tor Browser + Tor NarÅ¡yklÄ— + + + Brave + Brave + + + Google Chrome + Google Chrome + + + Chromium + Chromium + + + Show a notification when credentials are requested + Credentials mean login data requested via browser extension + Rodyti praneÅ¡imÄ…, kai praÅ¡oma pateikti įgaliojimus + + + Request to unlock the database if it is locked + PraÅ¡yti atrakinti duomenų bazÄ™, jei ji užrakinta + + + Only entries with the same scheme (http://, https://, …) are returned. + Grąžinami tik tos paÄios schemos (http://, https://, ...) įraÅ¡ai. + + + Match URL scheme (e.g., https://example.com) + Atitikti URL schemÄ… (pvz., https://pavyzdys.lt/) + + + Only returns the best matches for a specific URL instead of all entries for the whole domain. + Vietoj visos srities visų įrašų, grąžina tik geriausiai tam tikrÄ… URL atitinkanÄius įraÅ¡us. + + + Return only best-matching credentials + Grąžinti tik geriausiai atitinkanÄius įgaliojimus + + + Returns expired credentials. String [expired] is added to the title. + Grąžina įgaliojimus, kurių galiojimo laikas pasibaigÄ™s. Prie pavadinimo pridedama eilutÄ— [pasibaigÄ™s]. + + + Allow returning expired credentials + Leisti grąžinti pasibaigusius įgaliojimus + + + All databases connected to the extension will return matching credentials. + Visos prie plÄ—tinio prijungtos duomenų bazÄ—s grąžins atitinkamus prisijungimo duomenis. + + + Search in all opened databases for matching credentials + Credentials mean login data requested via browser extension + IeÅ¡koti visose atidarytose duomenų bazÄ—se tinkamų prisijungimo duomenų + + + Advanced + IÅ¡plÄ—stiniai + + + Never ask before accessing credentials + Credentials mean login data requested via browser extension + Niekada neklausti prieÅ¡ prieinant prie įgaliojimų + + + Never ask before updating credentials + Credentials mean login data requested via browser extension + Niekada neklausti prieÅ¡ atnaujinant įgaliojimus + + + Do not ask permission for HTTP Basic Auth + An extra HTTP Basic Auth setting + NepraÅ¡ykite leidimo HTTP Basic Auth + + + Automatically creating or updating string fields is not supported. + Automatinis eilutÄ—s laukų kÅ«rimas ar atnaujinimas nÄ—ra palaikomas. + + + Return advanced string fields which start with "KPH: " + Pateikite iÅ¡plÄ—stinius eiluÄių laukus, kurie prasideda "KPH: " + + + Don't display the popup suggesting migration of legacy KeePassHTTP settings. + Nerodykite iššokanÄiojo lango, siÅ«lanÄio perkelti senus KeePassHTTP parametrus. + + + Do not prompt for KeePassHTTP settings migration. + Neraginkite perkelti KeePassHTTP parametrų. + + + Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup. + Paleidžiant automatiÅ¡kai atnaujina KeePassXC arba keepassxc-proxy dvejetainį keliÄ… į vietinius praneÅ¡imų scenarijus. + + + Update native messaging manifest files at startup + Vietinių praneÅ¡imų apraÅ¡o failų naujinimas paleidžiant + + + Use a custom proxy location if you installed a proxy manually. + Naudokite pasirinktinÄ™ tarpinio serverio vietÄ…, jei tarpinį serverį įdiegÄ—te rankiniu bÅ«du. + + + Use a custom proxy location: + Meant is the proxy for KeePassXC-Browser + Naudokite pasirinktinÄ™ tarpinio serverio vietÄ…: + + + Custom proxy location field + Pasirinktinis tarpinio serverio vietos laukas + + + Browser for custom proxy file + Pasirinktinio tarpinio serverio failo narÅ¡yklÄ— + + + Browse… + Button for opening file dialog + NarÅ¡yti... + + + Use a custom browser configuration location: + Naudokite pasirinktinÄ™ narÅ¡yklÄ—s konfigÅ«racijos vietÄ…: + + + Browser type: + NarÅ¡yklÄ—s tipas: + + + Toolbar button style + Ä®rankių juostos mygtukų stilius + + + Config Location: + KonfigÅ«racijos vieta: + + + Custom browser location field + Pasirinktinis narÅ¡yklÄ—s vietos laukas + + + Browse for custom browser path + NarÅ¡ykite pasirinktinį narÅ¡yklÄ—s keliÄ… + + + Custom extension ID: + Pasirinktinio plÄ—tinio ID: + + + Custom extension ID + Pasirinktinis plÄ—tinio ID + + + Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 + DÄ—l Snap smÄ—lio dėžės reikia paleisti skriptÄ…, kad bÅ«tų įjungti narÅ¡yklÄ—s integracijÄ….<br />Šį skriptÄ… galite gauti iÅ¡ %1 + + + KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2 and %3. %4 + KeePassXC-Browser reikalinga, kad narÅ¡yklÄ—s integracija veiktų. <br />Atsisiųskite jį %1, %2 ir %3. %4 + + + Please see special instructions for browser extension use below + Toliau skaitykite specialius narÅ¡yklÄ—s plÄ—tinio naudojimo nurodymus + + + Executable Files + Vykdomieji failai + + + All Files + Visi failai + + + Select custom proxy location + Pasirinkite pasirinktinÄ™ tarpinio serverio vietÄ… + + + Select native messaging host folder location + Pasirinkite vietinÄ™ praneÅ¡imų pagrindinio kompiuterio aplanko vietÄ… + + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + + + + <b>Warning:</b> Only adjust these settings if necessary. + + + + The custom proxy location does not exist. + + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + + + + CloneDialog + + Clone Entry Options + Klonuoti įraÅ¡o parinktis + + + Append ' - Clone' to title + PridÄ—ti prie pavadinimo " - Dublikatas" + + + Replace username and password with references + Pakeisti naudotojo vardÄ… ir slaptažodį nuorodomis + + + Copy history + Kopijuoti istorijÄ… + + + + CsvImportWidget + + size, rows, columns + dydis, eiluÄių, stulpelių + + + Column Association + Stulpelio asociacija + + + Password + Slaptažodis + + + Username + Naudotojo vardas + + + Title + AntraÅ¡tÄ— + + + Group + GrupÄ— + + + URL + URL + + + Notes + Pastabos + + + TOTP + TOTP + + + Created + Sukurta + + + Last Modified + Paskutinis keitimas + + + Icon + Piktograma + + + Encoding + KoduotÄ— + + + Codec + Kodekas + + + Text is qualified by + Tekstas yra parengtas pagal + + + Text qualification + Teksto kvalifikacija + + + Fields are separated by + Laukai yra atskirti + + + Field separation + Lauko atskyrimas + + + Comments start with + Komentarai prasideda su + + + Header lines skipped + AntraÅ¡tÄ—s eilutÄ—s praleistos + + + Number of header lines to discard + Atmestinų antraÅ¡Äių eiluÄių skaiÄius + + + First line has field names + Pirmoje eilutÄ—je yra laukų pavadinimai + + + Consider '\' an escape character + Laikyti "\" kaitos ženklu + + + Preview + PeržiÅ«ra + + + CSV import preview + CSV importo peržiÅ«ra + + + Not Present + NÄ—ra + + + Column %1 + Stulpelis %1 + + + [%n more message(s) skipped] + [%n daugiau praleistų praneÅ¡imų][%n daugiau praleistų praneÅ¡imų][%n daugiau praleistų praneÅ¡imų][%n daugiau praleistų praneÅ¡imų] + + + Failed to parse CSV file: %1 + + + + Imported from CSV file: %1 + + + + + CsvParserModel + + %n row(s) + CSV row count + + + + %n column(s) + CSV column count + %n stulpelis%n stulpeliai%n stulpelių%n stulpelių + + + + Database + + Passwords + Root group name + Slaptažodžiai + + + File %1 does not exist. + Failo %1 nÄ—ra. + + + Unable to open file %1. + Nepavyko atverti failÄ… %1. + + + Error while reading the database: %1 + Klaida skaitant duomenų bazÄ™: %1 + + + Could not save, database does not point to a valid file. + Nepavyko iÅ¡saugoti, duomenų bazÄ— nenurodo į tinkamÄ… failÄ…. + + + Database save is already in progress. + Duomenų bazÄ—s iÅ¡saugojimas jau vyksta. + + + Could not save, database has not been initialized! + Nepavyko iÅ¡saugoti, duomenų bazÄ— nebuvo inicializuota! + + + Database file has unmerged changes. + Duomenų bazÄ—s faile yra neįtrauktų pakeitimų. + + + %1 +Backup database located at %2 + %1 +AtsarginÄ— duomenų bazÄ—, esanti %2 + + + Key not transformed. This is a bug, please report it to the developers. + Raktas nepakeistas. Tai klaida, praneÅ¡kite apie jÄ… kÅ«rÄ—jams. + + + Recycle Bin + Å iukÅ¡linÄ— + + + + DatabaseOpenDialog + + Unlock Database - KeePassXC + Atrakinti duomenų bazÄ™ - KeePassXC + + + + DatabaseOpenWidget + + Unlock KeePassXC Database + Atrakinti KeePassXC duomenų bazÄ™ + + + Enter Password: + Ä®raÅ¡ykite Slaptažodį: + + + Password field + Slaptažodžio laukas + + + Hardware key slot selection + AparatÅ«ros rakto lizdo pasirinkimas + + + Key file to unlock the database + Duomenų bazÄ—s atrakinimo rakto failas + + + Browse for key file + IeÅ¡koti rakto failo + + + Browse… + NarÅ¡yti... + + + Unlock Database + Atrakinti Duomenų bazÄ™ + + + Cancel + Atsisakyti + + + Unlock + Atrakinti + + + Please present or touch your YubiKey to continue… + NorÄ—dami tÄ™sti, pateikite arba palieskite savo YubiKey raktÄ…... + + + Database Version Mismatch + Duomenų bazÄ—s versijos neatitikimas + + + The database you are trying to open was most likely +created by a newer version of KeePassXC. + +You can try to open it anyway, but it may be incomplete +and saving any changes may incur data loss. + +We recommend you update your KeePassXC installation. + Duomenų bazÄ—, kuriÄ… bandote atidaryti, greiÄiausiai buvo +sukurta su naujesne KeePassXC versija. + +Vis tiek galite pabandyti jÄ… atidaryti, taÄiau ji gali bÅ«ti neiÅ¡baigta +ir iÅ¡saugant bet kokius pakeitimus gali bÅ«ti prarasti duomenys. + +Rekomenduojame atnaujinti KeePassXC diegimÄ…. + + + Open database anyway + Vis tiek atidaryti duomenų bazÄ™ + + + Database unlock canceled. + Duomenų bazÄ—s atrakinimas atÅ¡auktas. + + + Unlock failed and no password given + Atrakinimas nepavyko ir slaptažodis nebuvo pateiktas + + + Unlocking the database failed and you did not enter a password. +Do you want to retry with an "empty" password instead? + +To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. + Nepavyko atrakinti duomenų bazÄ—s ir jÅ«s neįvedÄ—te slaptažodžio. +Ar norite dar kartÄ… pakartoti naudodami "tuÅ¡ÄiÄ…" slaptažodį? + +Kad Å¡i klaida nepasirodytų, turite eiti į "Duomenų bazÄ—s nustatymai / saugumas" ir iÅ¡ naujo nustatyti slaptažodį. + + + Retry with empty password + Bandyti vÄ—l su tuÅ¡Äiu slaptažodžiu + + + Failed to open key file: %1 + Nepavyko atidaryti rakto failo: %1 + + + Old key file format + Senas rakto failo formatas + + + You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> + JÅ«s naudojate senÄ… rakto failo formatÄ…, kurį keePassXC gali<br>nustokite remti ateityje.<br><br>Apsvarstykite galimybÄ™ sugeneruoti naujÄ… rakto failÄ… apsilankÄ™:<br><strong>Duomenų bazÄ—s &gt; duomenų bazÄ—s saugos &gt; keisti rakto failÄ….</strong><br> + + + Don't show this warning again + Daugiau neberodyti Å¡io įspÄ—jimo + + + All files + Visi failai + + + Key files + Rakto failai + + + Select key file + Pasirinkite rakto failÄ… + + + Cannot use database file as key file + Negalima naudoti duomenų bazÄ—s failo kaip rakto failo + + + authenticate to access the database + + + + Failed to authenticate with Quick Unlock: %1 + + + + Select Key File: + + + + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + + + + + DatabaseSettingWidgetMetaData + + Passwords + Slaptažodžiai + + + + DatabaseSettingsDialog + + General + Bendra + + + Security + Saugumas + + + Database Credentials + Duomenų bazÄ—s Ä®galiojimai + + + Encryption Settings + Å ifravimo nustatymai + + + Browser Integration + NarÅ¡yklÄ—s integracija + + + Maintenance + PriežiÅ«ra + + + + DatabaseSettingsWidgetBrowser + + KeePassXC-Browser settings + KeePassXC-Browser nustatymai + + + Disconnect all browsers + Atjungti visas narÅ¡ykles + + + Forget all site-specific settings on entries + PamirÅ¡ti visus su konkreÄia svetaine susijusius įrašų nustatymus + + + Refresh database root group ID + Duomenų bazÄ—s Å¡akninÄ—s grupÄ—s ID atnaujinimas + + + Stored keys + Saugomi raktai + + + Stored browser keys + IÅ¡saugoti narÅ¡yklÄ—s raktai + + + Remove selected key + PaÅ¡alinti pasirinktÄ… raktÄ… + + + Remove + Å alinti + + + Delete the selected key? + IÅ¡trinti pasirinktÄ… raktÄ…? + + + Do you really want to delete the selected key? +This may prevent connection to the browser plugin. + Ar tikrai norite iÅ¡trinti pasirinktÄ… raktÄ…? +Tai gali sutrukdyti prisijungti prie narÅ¡yklÄ—s priedo. + + + Key + Raktas + + + Value + ReikÅ¡mÄ— + + + Created + Sukurta + + + Enable Browser Integration to access these settings. + Jei norite pasiekti Å¡iuos nustatymus, įjunkite narÅ¡yklÄ—s integracijÄ…. + + + Do you really want to disconnect all browsers? +This may prevent connection to the browser plugin. + Ar tikrai norite atjungti visas narÅ¡ykles? +Tai gali nebeleisti prisijungti prie narÅ¡yklÄ—s plÄ—tinio. + + + No shared encryption keys found in KeePassXC settings. + KeePassXC nustatymuose nerasta bendrų Å¡ifravimo raktų. + + + Successfully removed %n encryption key(s) from KeePassXC settings. + SÄ—kmingai paÅ¡alintas (-i) %n Å¡ifravimo raktas (-ai) iÅ¡ KeePassXC nustatymų.SÄ—kmingai paÅ¡alintas (-i) %n Å¡ifravimo raktas (-ai) iÅ¡ KeePassXC nustatymų.SÄ—kmingai paÅ¡alintas (-i) %n Å¡ifravimo raktas (-ai) iÅ¡ KeePassXC nustatymų.SÄ—kmingai paÅ¡alintas (-i) %n Å¡ifravimo raktas (-ai) iÅ¡ KeePassXC nustatymų. + + + Do you really want forget all site-specific settings on every entry? +Permissions to access entries will be revoked. + Ar tikrai norite pamirÅ¡ti visus su konkreÄia svetaine susijusius nustatymus kiekviename įraÅ¡e? +Bus panaikinti prieigos prie įrašų leidimai. + + + Removing stored permissions… + Å alinami saugomi leidimai… + + + Abort + Nutraukti + + + Successfully removed permissions from %n entry(s). + SÄ—kmingai paÅ¡alinti leidimai iÅ¡ %n įraÅ¡o (-ų).SÄ—kmingai paÅ¡alinti leidimai iÅ¡ %n įraÅ¡o (-ų).SÄ—kmingai paÅ¡alinti leidimai iÅ¡ %n įraÅ¡o (-ų).SÄ—kmingai paÅ¡alinti leidimai iÅ¡ %n įraÅ¡o (-ų). + + + The active database does not contain an entry with permissions. + Aktyvioje duomenų bazÄ—je nÄ—ra įraÅ¡o su leidimais. + + + Refresh database ID + Atnaujinti duomenų bazÄ—s ID + + + Do you really want refresh the database ID? +This is only necessary if your database is a copy of another and the browser extension cannot connect. + Ar tikrai norite atnaujinti duomenų bazÄ—s ID? +Tai bÅ«tina tik tuo atveju, jei jÅ«sų duomenų bazÄ— yra kito kopija ir narÅ¡yklÄ—s plÄ—tinys negali prisijungti. + + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + + + + No keys found + + + + Removed keys from database + + + + Removed permissions + + + + No entry with permissions found! + + + + + DatabaseSettingsWidgetDatabaseKey + + Add additional protection… + PridÄ—ti papildomÄ… apsaugÄ…... + + + No password set + Nenustatytas joks slaptažodis + + + WARNING! You have not set a password. Using a database without a password is strongly discouraged! + +Are you sure you want to continue without a password? + Ä®SPÄ–JIMAS! JÅ«s nenustatÄ—te slaptažodžio. Naudotis duomenų baze be slaptažodžio griežtai nerekomenduojama! + +Ar tikrai norite tÄ™sti darbÄ… be slaptažodžio? + + + Continue without password + TÄ™sti be slaptažodžio + + + No encryption key added + NepridÄ—tas joks Å¡ifravimo raktas + + + You must add at least one encryption key to secure your database! + NorÄ—dami apsaugoti savo duomenų bazÄ™, privalote pridÄ—ti bent vienÄ… Å¡ifravimo raktÄ…! + + + Unknown error + Nežinoma klaida + + + Failed to change database credentials + Nepavyko pakeisti duomenų bazÄ—s prisijungimo duomenų + + + Weak password + Silpnas slaptažodis + + + You must enter a stronger password to protect your database. + + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + + + + + DatabaseSettingsWidgetEncryption + + Decryption Time: + Iššifravimo laikas: + + + Decryption time in seconds + Iššifravimo laikas sekundÄ—mis + + + Higher values offer more protection, but opening the database will take longer. + Didesni skaiÄiai užtikrina didesnÄ™ apsaugÄ…, taÄiau duomenų bazÄ—s atidarymas užtruks ilgiau. + + + Database format: + Duomenų bazÄ—s formatas: + + + Database format + Duomenų bazÄ—s formatas + + + Format cannot be changed: Your database uses KDBX 4 features + Formatas negali bÅ«ti pakeistas: JÅ«sų duomenų bazÄ— naudoja KDBX 4 funkcijas + + + Unless you need to open your database with other programs, always use the latest format. + Jei duomenų bazÄ—s nereikia atidaryti kitomis programomis, visada naudokite naujausiÄ… formatÄ…. + + + Encryption Algorithm: + Å ifravimo algoritmas: + + + Encryption algorithm + Å ifravimo algoritmas + + + AES: 256 Bit (default) + AES: 256 Bitų (numatytasis) + + + Twofish: 256 Bit + Twofish: 256 Bitų + + + Key Derivation Function: + Rakto iÅ¡vedimo funkcija: + + + Key derivation function + Rakto iÅ¡vedimo funkcija + + + Transform rounds: + Pasikeitimo ciklų: + + + Transform rounds + Transformuokite raundus + + + Memory Usage: + Atminties naudojimas: + + + Memory usage + Atminties naudojimas + + + Parallelism: + Lygiagretumas: + + + Parallelism + Lygiagretumas + + + KDBX 4 (recommended) + KDBX 4 (rekomenduojama) + + + KDBX 3 + KDBX 3 + + + Number of rounds too high + Key transformation rounds + Per didelis raundų skaiÄius + + + You are using a very high number of key transform rounds with Argon2. + +If you keep this number, your database may take hours, days, or even longer to open. + Su "Argon2" naudojate labai daug pagrindinių transformacijų. + +Jei iÅ¡saugosite šį numerį, duomenų bazÄ—s atidarymas gali užtrukti valandas, dienas ar net ilgiau. + + + Understood, keep number + Suprask, iÅ¡laikyk numerį + + + Cancel + Atsisakyti + + + Number of rounds too low + Key transformation rounds + Per mažas raundų skaiÄius + + + You are using a very low number of key transform rounds with AES-KDF. + +If you keep this number, your database will not be protected from brute force attacks. + JÅ«s naudojate labai mažą skaiÄių pagrindinių transformacijos raundų su AES-KDF. + +Jei iÅ¡laikysite šį numerį, jÅ«sų duomenų bazÄ— nebus apsaugota nuo brutalios jÄ—gos atakų. + + + KDF unchanged + KDF nepakitÄ™s + + + Failed to transform key with new KDF parameters; KDF unchanged. + Nepavyko transformuoti rakto su naujais KDF parametrais; KDF nepakitÄ™s. + + + MiB + Abbreviation for Mebibytes (KDF settings) + MiB MiB MiB MiB + + + thread(s) + Threads for parallel execution (KDF settings) + gija gijos gijų gija + + + Encryption Settings: + + + + Basic + + + + Advanced + IÅ¡plÄ—stiniai + + + + DatabaseSettingsWidgetFdoSecrets + + Exposed Entries + Atskleisti įraÅ¡ai + + + Don't expose this database + Neatskleisti Å¡ios duomenų bazÄ—s + + + Expose entries under this group: + Atskleisti Å¡ios grupÄ—s įraÅ¡us: + + + Enable Secret Service to access these settings. + Ä®galinkite slaptÄ…jÄ… tarnybÄ…, kad galÄ—tumÄ—te pasiekti Å¡iuos nustatymus. + + + + DatabaseSettingsWidgetGeneral + + Database Metadata + Duomenų bazÄ—s metaduomenys + + + Database name: + Duomenų bazÄ—s pavadinimas: + + + Database name field + Duomenų bazÄ—s pavadinimo laukas + + + Database description: + Duomenų bazÄ—s apraÅ¡as: + + + Database description field + Duomenų bazÄ—s apraÅ¡ymo laukas + + + Default username: + Numatytasis naudotojo vardas: + + + Default username field + Numatytas naudotojo vardo laukas + + + History Settings + Istorijos nustatymai + + + Maximum number of history items per entry + Didžiausias istorijos elementų skaiÄius viename įraÅ¡e + + + Maximum size of history per entry + Didžiausias vieno įraÅ¡o istorijos dydis + + + MiB + MiB + + + Use recycle bin + Naudoti Å¡iukÅ¡linÄ™ + + + Additional Database Settings + Papildomi duomenų bazÄ—s nustatymai + + + Enable compression (recommended) + Ä®jungti suspaudimÄ… (rekomenduojama) + + + Delete Recycle Bin + IÅ¡trinti Å¡iukÅ¡liadėžę + + + Do you want to delete the current recycle bin and all its contents? +This action is not reversible. + Ar norite iÅ¡trinti dabartinÄ™ Å¡iukÅ¡liadėžę ir visÄ… jos turinį? +Å is veiksmas negrįžtamas. + + + (old) + (senas) + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + + + + Limit the amount of history items per entry to: + Apriboti istorijos elementų kiekį vienam įraÅ¡ui iki: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + + + + Limit the total size of history items per entry to: + Apriboti visÄ… istorijos elementų dydį kiekviename įraÅ¡e iki: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + + + + Autosave delay since last change + + + + Autosave delay + + + + Autosave delay since last change in minutes + + + + min + min. + + + Autosave delay since last change checkbox + + + + + DatabaseSettingsWidgetKeeShare + + Sharing + Dalijimasis + + + Breadcrumb + Duonos krumpliaratis + + + Type + Tipas + + + Path + Kelias + + + Last Signer + Paskutinis pasiraÅ¡ytojas + + + Certificates + Liudijimai + + + > + Breadcrumb separator + > + + + + DatabaseSettingsWidgetMaintenance + + Manage Custom Icons + Pasirinktinių piktogramų tvarkymas + + + Delete selected icon(s) + IÅ¡trinti pasirinktÄ… (-as) piktogramÄ… (-as) + + + Delete all custom icons not in use by any entry or group + IÅ¡trinti visas pasirinktines piktogramas, nenaudojamas jokiame įraÅ¡e ar grupÄ—je + + + Purge unused icons + IÅ¡valyti nenaudojamas piktogramas + + + Confirm Deletion + Patvirtinkite IÅ¡trynimÄ… + + + At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? + Bent viena iÅ¡ pasirinktų piktogramų Å¡iuo metu naudojama bent viename įraÅ¡e arba grupÄ—je. Visų paveiktų įrašų ir grupių piktogramos bus pakeistos numatytÄ…ja piktograma. Ar tikrai norite iÅ¡trinti Å¡iuo metu naudojamas piktogramas? + + + Custom Icons Are In Use + Naudojamos pasirinktinÄ—s piktogramos + + + All custom icons are in use by at least one entry or group. + Visos pasirinktinÄ—s piktogramos yra naudojamos bent viename įraÅ¡e arba grupÄ—je. + + + Purged Unused Icons + IÅ¡valyti nenaudojamas piktogramas + + + Purged %n icon(s) from the database. + IÅ¡valyta %n piktograma (-os) iÅ¡ duomenų bazÄ—s.IÅ¡valyta %n piktograma (-os) iÅ¡ duomenų bazÄ—s.IÅ¡valyta %n piktograma (-os) iÅ¡ duomenų bazÄ—s.IÅ¡valyta %n piktograma (-os) iÅ¡ duomenų bazÄ—s. + + + + DatabaseSettingsWidgetMetaDataSimple + + Database Name: + Duomenų bazÄ—s pavadinimas: + + + Database name field + Duomenų bazÄ—s pavadinimo laukas + + + Description: + ApraÅ¡as: + + + Database description field + Duomenų bazÄ—s apraÅ¡ymo laukas + + + + DatabaseTabWidget + + Database creation error + Duomenų bazÄ—s sukÅ«rimo klaida + + + The created database has no key or KDF, refusing to save it. +This is definitely a bug, please report it to the developers. + Sukurtoje duomenų bazÄ—je nÄ—ra rakto ar KDF, atsisakant jį iÅ¡saugoti. +Tai tikrai klaida, praneÅ¡kite apie tai kÅ«rÄ—jams. + + + KeePass 2 Database + KeePass 2 duomenų bazÄ— + + + All files + Visi failai + + + Open database + Atverti duomenų bazÄ™ + + + Failed to open %1. It either does not exist or is not accessible. + Nepavyko atidaryti %1. Jis arba neegzistuoja, arba yra nepasiekiamas. + + + CSV file + CSV failas + + + Merge database + Sulieti duomenų bazÄ™ + + + Export database to CSV file + Eksportuoti duomenų bazÄ™ į CSV failÄ… + + + Writing the CSV file failed. + CSV failo įraÅ¡ymas nepavyko. + + + Writing the HTML file failed. + Nepavyko įraÅ¡yti HTML failo. + + + Export database to XML file + Eksportuoti duomenų bazÄ™ į XML failÄ… + + + XML file + XML failas + + + Writing the XML file failed + Nepavyko įraÅ¡yti XML failo + + + Export Confirmation + Eksporto Patvirtinimas + + + You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? + Ketinate eksportuoti duomenų bazÄ™ į neužšifruotÄ… failÄ…. DÄ—l to jÅ«sų slaptažodžiai ir slapta informacija gali tapti pažeidžiami! Ar tikrai norite tÄ™sti? + + + %1 [Locked] + Database tab name modifier + %1 [Užrakinta] + + + + DatabaseWidget + + Searches and Tags + PaieÅ¡kos ir žymos + + + Searching… + IeÅ¡koma... + + + Shared group… + Bendra grupÄ—... + + + Confirm Auto-Type + Patvirtinti Auto-Ä®vedimÄ… + + + Perform Auto-Type into the previously active window? + Atlikti Auto-RaÅ¡ymÄ… į anksÄiau aktyvų langÄ…? + + + Execute command? + Vykdyti komandÄ…? + + + Do you really want to execute the following command?<br><br>%1<br> + Ar tikrai norite vykdyti Å¡iÄ… komandÄ…?<br><br>%1<br> + + + Remember my choice + Prisiminti mano pasirinkimÄ… + + + Delete group + IÅ¡trinti grupÄ™ + + + Do you really want to delete the group "%1" for good? + Ar tikrai norite iÅ¡trinti grupÄ™ "%1"? + + + Move group to recycle bin? + Perkelti grupÄ™ į Å¡iukÅ¡linÄ™? + + + Do you really want to move the group "%1" to the recycle bin? + Ar tikrai norite perkelti grupÄ™ "%1" į Å¡iukÅ¡linÄ™? + + + Expired entries + Nebegaliojantys įraÅ¡ai + + + Entries expiring within %1 day(s) + Ä®raÅ¡ai, kurių galiojimas baigiasi per %1 dienÄ… (-as)Ä®raÅ¡ai, kurių galiojimas baigiasi per %1 dienÄ… (-as)Ä®raÅ¡ai, kurių galiojimas baigiasi per %1 dienÄ… (-as)Ä®raÅ¡ai, kurių galiojimas baigiasi per %1 dienÄ… (-as) + + + No current database. + NÄ—ra esamos duomenų bazÄ—s. + + + No source database, nothing to do. + NÄ—ra Å¡altinio duomenų bazÄ—s, nÄ—ra kÄ… atlikti. + + + Successfully merged the database files. + Duomenų bazÄ—s failai sÄ—kmingai sulieti. + + + Database was not modified by merge operation. + Duomenų bazÄ— nebuvo pakeista atliekant sujungimo operacijÄ…. + + + Search Results (%1) + PaieÅ¡kos rezultatai (%1) + + + No Results + NÄ—ra rezultatų + + + Save + Ä®raÅ¡yti + + + Enter a unique name or overwrite an existing search from the list: + Ä®veskite unikalų pavadinimÄ… arba perraÅ¡ykite esamÄ… paieÅ¡kÄ… iÅ¡ sÄ…raÅ¡o: + + + Save Search + IÅ¡saugoti paieÅ¡kÄ… + + + Lock Database? + Užrakinti duomenų bazÄ™? + + + You are editing an entry. Discard changes and lock anyway? + JÅ«s redaguojate įrašą. Atmesti pakeitimus ir vis tiek užrakinti? + + + "%1" was modified. +Save changes? + "%1" buvo pakeista. +Ä®raÅ¡yti pakeitimus? + + + Database was modified. +Save changes? + Duomenų bazÄ— buvo pakeista. +IÅ¡saugoti pakeitimus? + + + Save changes? + Ä®raÅ¡yti pakeitimus? + + + File has changed + Failas pasikeitÄ— + + + The database file has changed. Do you want to load the changes? + Duomenų bazÄ—s failas pasikeitÄ—. Ar norite įkelti pakeitimus? + + + Merge Request + Suliejimo užklausa + + + The database file has changed and you have unsaved changes. +Do you want to merge your changes? + Duomenų bazÄ—s failas pasikeitÄ— ir jÅ«s turite neįraÅ¡ytų pakeitimų. +Ar norite sulieti savo pakeitimus? + + + Could not open the new database file while attempting to autoreload. +Error: %1 + Nepavyko atidaryti naujos duomenų bazÄ—s failo bandant automatiÅ¡kai įkelti. +Klaida: %1 + + + Disable safe saves? + IÅ¡jungti saugų iÅ¡saugojimÄ…? + + + KeePassXC has failed to save the database multiple times. This is likely caused by file sync services holding a lock on the save file. +Disable safe saves and try again? + KeePassXC nepavyko iÅ¡saugoti duomenų bazÄ—s kelis kartus. TikÄ—tina, kad taip atsitiko dÄ—l to, kad failų sinchronizavimo paslaugos užrakino iÅ¡saugojimo failÄ…. +IÅ¡junkite saugų iÅ¡saugojimÄ… ir bandykite dar kartÄ…? + + + Writing the database failed: %1 + Nepavyko įraÅ¡yti duomenų bazÄ—s: %1 + + + Passwords + Slaptažodžiai + + + Save database as + Ä®raÅ¡yti duomenų bazÄ™ kaip + + + KeePass 2 Database + KeePass 2 duomenų bazÄ— + + + Save database backup + IÅ¡saugoti atsarginÄ™ duomenų bazÄ—s kopijÄ… + + + Empty recycle bin? + IÅ¡valyti Å¡iukÅ¡linÄ™? + + + Are you sure you want to permanently delete everything from your recycle bin? + Ar tikrai norite negrįžtamai viskÄ… iÅ¡trinti iÅ¡ savo Å¡iukÅ¡linÄ—s? + + + Could not find database file: %1 + Nepavyko rasti duomenų bazÄ—s failo: %1 + + + New Database + Nauja duomenų bazÄ— + + + %1 [New Database] + Database tab name modifier + %1 [Nauja duomenų bazÄ—] + + + + EditEntryWidget + + Entry + Ä®raÅ¡as + + + Advanced + IÅ¡plÄ—stiniai + + + Icon + Piktograma + + + Auto-Type + Automatinis rinkimas + + + Browser Integration + NarÅ¡yklÄ—s integracija + + + <empty URL> + <empty URL> + + + Confirm Removal + Patvirtinti paÅ¡alinimÄ… + + + Are you sure you want to remove this URL? + Ar tikrai norite paÅ¡alinti šį URL adresÄ…? + + + Properties + SavybÄ—s + + + History + Istorija + + + SSH Agent + SSH agentas + + + n/a + nÄ—ra + + + (encrypted) + (Å¡ifruota) + + + Select private key + Pasirinkti privatųjį raktÄ… + + + Entry history + Ä®raÅ¡o istorija + + + Add entry + PridÄ—ti įrašą + + + Edit entry + Keisti įrašą + + + Some Browser Integration settings are overridden by group settings. + Kai kurių narÅ¡yklÄ—s integravimo parametrų nepaiso grupÄ—s parametrai. + + + Invalid Entry + Netinkamas įraÅ¡as + + + An external merge operation has invalidated this entry. +Unfortunately, any changes made have been lost. + IÅ¡orinÄ— suliejimo operacija anuliavo šį įrašą. +Deja, bet kokie padaryti pakeitimai buvo prarasti. + + + Auto-Type Validation Error + Automatinio rinkimo patvirtinimo klaida + + + An error occurred while validating the custom Auto-Type sequence: +%1 +Would you like to correct it? + Patvirtinant pasirinktinÄ™ automatinio rinkimo sekÄ… įvyko klaida: +%1 +Ar norÄ—tumÄ—te jÄ… iÅ¡taisyti? + + + An error occurred while validating the Auto-Type sequence for "%1": +%2 +Would you like to correct it? + Patvirtinant "%1" automatinio rinkimo sekÄ… įvyko klaida: +%2 +Ar norÄ—tumÄ—te jÄ… iÅ¡taisyti? + + + Entry updated successfully. + Ä®raÅ¡as sÄ—kmingai atnaujintas. + + + Unsaved Changes + NeiÅ¡saugoti pakeitimai + + + Would you like to save changes to this entry? + Ar norite iÅ¡saugoti Å¡io įraÅ¡o pakeitimus? + + + New attribute + Naujas požymis + + + New attribute %1 + Naujas požymis %1 + + + Are you sure you want to remove this attribute? + Ar tikrai norite paÅ¡alinti šį požymi? + + + Reveal + Atskleisti + + + [PROTECTED] Press Reveal to view or edit + [APSAUGOTAS] Paspauskite Atskleisti, jei norite peržiÅ«rÄ—ti arba redaguoti + + + Hide + SlÄ—pti + + + %n hour(s) + %n val.%n val.%n val.%n val. + + + %n week(s) + %n savaitÄ—%n savaitÄ—s%n savaiÄių%n savaiÄių + + + %n month(s) + %n mÄ—nesis%n mÄ—nesiai%n mÄ—nesių%n mÄ—nesių + + + %n year(s) + %n metai (-ai)%n metai (-ai)%n metai (-ai)%n metai (-ai) + + + + EditEntryWidgetAdvanced + + Additional attributes + Papildomi požymiai + + + Attribute selection + Atributo pasirinkimas + + + Attribute value + Attribute value + + + Add a new attribute + PridÄ—ti naujÄ… atributÄ… + + + Add + PridÄ—ti + + + Remove selected attribute + PaÅ¡alinti pasirinktÄ… atributÄ… + + + Remove + Å alinti + + + Edit attribute name + Redaguoti atributo pavadinimÄ… + + + Edit Name + Taisyti pavadinimÄ… + + + Toggle attribute protection + Perjungti atributų apsaugÄ… + + + Protect + Apsaugoti + + + Show a protected attribute + Rodyti apsaugotÄ… atributÄ… + + + Reveal + Atskleisti + + + Attachments + Priedai + + + If checked, the entry will not appear in reports like Health Check and HIBP even if it doesn't match the quality requirements. + Jei pažymÄ—ta, įraÅ¡as nebus rodomas ataskaitose, pvz., bÅ«klÄ—s patikrinimas ir HIBP, net jei jis neatitinka kokybÄ—s reikalavimų. + + + Exclude from database reports + Neįtraukti į duomenų bazÄ—s ataskaitas + + + Foreground Color: + Priekinio plano spalva: + + + Foreground color selection + Priekinio plano spalvų pasirinkimas + + + Background Color: + Fono spalva: + + + Background color selection + Fono spalvos pasirinkimas + + + + EditEntryWidgetAutoType + + Enable Auto-Type for this entry + Ä®jungti Å¡iam įraÅ¡ui automatinį rinkimÄ… + + + Inherit default Auto-Type sequence from the group + PaveldÄ—ti numatytÄ…jÄ… automatinio rinkimo sekÄ… iÅ¡ grupÄ—s + + + Use custom Auto-Type sequence: + Naudoti tinkintÄ… automatinio rinkimo seka: + + + Custom Auto-Type sequence + PasirinktinÄ— automatinio tipo seka + + + Open Auto-Type help webpage + Atidaryti automatinio rinkimo pagalbos tinklalapį + + + Window Associations + Lango asociacijos + + + Existing window associations + Esamos langų sÄ…sajos + + + Add new window association + PridÄ—ti naujÄ… langų susiejimÄ… + + + + + Add item + + + + + Remove selected window association + PaÅ¡alinti pasirinktÄ… langų susiejimÄ… + + + - + Remove item + - + + + Window title: + Lango antraÅ¡tÄ—: + + + You can use an asterisk (*) to match everything + Galite naudoti žvaigždutÄ™ (*), kad viskas atitiktų + + + Set the window association title + Lango susiejimo pavadinimo nustatymas + + + You can use an asterisk to match everything + Galite naudoti žvaigždutÄ™, kad viskas atitiktų + + + Use a specific sequence for this association: + Å iam susiejimui naudokite konkreÄiÄ… sekÄ…: + + + Custom Auto-Type sequence for this window + PasirinktinÄ— Å¡io lango automatinio rinkimo seka + + + + EditEntryWidgetBrowser + + These settings affect to the entry's behaviour with the browser extension. + Å ie nustatymai turi įtakos įraÅ¡o elgsenai su narÅ¡yklÄ—s plÄ—tiniu. + + + General + Bendra + + + Hide this entry from the browser extension + PaslÄ—pti šį įrašą nuo narÅ¡yklÄ—s plÄ—tinio + + + Skip Auto-Submit for this entry + Praleisti Å¡io įraÅ¡o automatinį pateikimÄ… + + + Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. + Siųskite šį parametrÄ… tik į narÅ¡yklÄ™ HTTP Auth dialogo langams. Jei įjungta, įprastose prisijungimo formose Å¡is pasirinkimo įraÅ¡as nebus rodomas. + + + Use this entry only with HTTP Basic Auth + Naudokite šį įrašą tik su HTTP Basic Auth + + + Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. + Nesiųskite Å¡io parametro į narÅ¡yklÄ™ HTTP Auth dialogams. Jei įjungta, HTTP Auth dialogo languose Å¡is pasirinkimo įraÅ¡as nebus rodomas. + + + Do not use this entry with HTTP Basic Auth + Nenaudokite Å¡io įraÅ¡o su HTTP Basic Auth + + + Additional URL's + Papildomi URL adresai + + + Add + PridÄ—ti + + + Remove + Å alinti + + + Edit + Keisti + + + + EditEntryWidgetHistory + + Entry history selection + Ä®raÅ¡o istorijos pasirinkimas + + + Show entry at selected history state + Rodyti pasirinktos istorijos padÄ—ties įrašą + + + Show + Rodyti + + + Restore entry to selected history state + Atkurti įrašą į pasirinktÄ… istorijos padÄ—tį + + + Restore + Atkurti + + + Delete selected history state + IÅ¡trinti pasirinktÄ… istorijos padÄ—tį + + + Delete + IÅ¡trinti + + + Delete all history + IÅ¡trinti visÄ… istorijÄ… + + + Delete all + IÅ¡trinti visus + + + + EditEntryWidgetMain + + Edit Entry + Redaguoti Ä®rašą + + + Notes field + Pastabų laukas + + + Username field + Naudojo vardo laukas + + + Expiration field + Galiojimo laukas + + + Expiration Presets + IÅ¡ankstiniai galiojimo pabaigos nustatymai + + + Expiration presets + IÅ¡ankstiniai galiojimo pabaigos nustatymai + + + Presets + Parinktys + + + Url field + Url adreso laukas + + + Download favicon for URL + Atsisiųsti piktogramÄ… URL adresui + + + Title field + Pavadinimo laukas + + + Password field + Slaptažodžio laukas + + + Toggle expiration + Perjungti galiojimo terminÄ… + + + Tags list + Žymų sÄ…raÅ¡as + + + &Username: + + + + &Title: + + + + &Password: + + + + UR&L: + + + + &Notes: + + + + Toggle notes visibility + + + + T&ags: + + + + &Expires: + + + + + EditEntryWidgetSSHAgent + + Form + Forma + + + Remove key from agent when database is closed/locked + UžvÄ—rus/užrakinus duomenų bazÄ™, Å¡alinti raktÄ… iÅ¡ agento + + + Comment + Komentaras + + + Add key to agent when database is opened/unlocked + AtvÄ—rus/atrakinus duomenų bazÄ™, pridÄ—ti raktÄ… į agentÄ… + + + Decrypt + Iššifruoti + + + Fingerprint + Kontrolinis kodas + + + Copy to clipboard + Kopijuoti į iÅ¡karpinÄ™ + + + Public key + VieÅ¡asis raktas + + + Private key + Privatusis raktas + + + Attachment + Priedas + + + External key file + IÅ¡orinis rakto failas + + + Add to agent + PridÄ—ti į agentÄ… + + + Remove from agent + Å alinti iÅ¡ agento + + + External file + IÅ¡orinis failas + + + Browser for key file + Rakto failo narÅ¡yklÄ— + + + Browse… + Button for opening file dialog + NarÅ¡yti... + + + Generate + Generuoti + + + Select attachment file + Pasirinkti priedo failÄ… + + + Require user confirmation when this key is used + Naudojant šį raktÄ…, reikalauti naudotojo patvirtinimo + + + n/a + nÄ—ra + + + Remove key from agent after + Å alinti raktÄ… iÅ¡ agento po + + + Remove key from agent after specified seconds + PaÅ¡alinkite raktÄ… iÅ¡ agento po nurodytų sekundžių + + + seconds + sekundžių + + + + EditGroupWidget + + Group + GrupÄ— + + + Icon + Piktograma + + + Properties + SavybÄ—s + + + Add group + PridÄ—ti grupÄ™ + + + Edit group + Keisti grupÄ™ + + + Group has unsaved changes + GrupÄ— turi neiÅ¡saugotų pakeitimų + + + Browser Integration + NarÅ¡yklÄ—s integracija + + + Enable + Ä®jungti + + + Disable + IÅ¡jungti + + + Inherit from parent group (%1) + PaveldÄ—ti iÅ¡ pirminÄ—s grupÄ—s (%1) + + + + EditGroupWidgetBrowser + + These settings affect to the group's behaviour with the browser extension. + Å ie nustatymai turi įtakos grupÄ—s elgesiui su narÅ¡yklÄ—s plÄ—tiniu. + + + Hide entries from browser extension: + SlÄ—pti įraÅ¡us nuo narÅ¡yklÄ—s plÄ—tinio: + + + Hide entries from browser extension toggle for this and sub groups + SlÄ—pti įraÅ¡us iÅ¡ narÅ¡yklÄ—s plÄ—tinių perjungimo Å¡iam ir pogrupiams + + + Skip Auto-Submit for entries: + Praleisti automatinį pateikimÄ… įraÅ¡ams: + + + Skip Auto-Submit toggle for this and sub groups + Å io ir pogrupių perjungti jungiklį Praleisti automatinį pateikimÄ… + + + Use entries only with HTTP Basic Auth: + Naudokite įraÅ¡us tik su HTTP Basic Auth: + + + Only HTTP Auth toggle for this and sub groups + Tik HTTP Auth perjungimas Å¡iam ir pogrupiams + + + Do not use entries with HTTP Basic Auth: + Nenaudokite įrašų su HTTP Basic Auth: + + + Do not use HTTP Auth toggle for this and sub groups + Nenaudokite HTTP Auth perjungimo Å¡iam ir pogrupiams + + + Omit WWW subdomain from matching: + Praleiskite WWW padomenį nuo atitikimo: + + + Omit WWW subdomain from matching toggle for this and sub groups + Praleiskite WWW padomenį nuo Å¡io ir pogrupių atitikimo perjungimo + + + Restrict matching to given browser key: + + + + Restrict matching to given browser key toggle for this and sub groups + + + + + EditGroupWidgetKeeShare + + Sharing mode field + Bendrinimo režimo laukas + + + Password field + Slaptažodžio laukas + + + Type: + Tipas: + + + Password: + Slaptažodis: + + + Path: + Kelias: + + + Path to share file field + Failo bendrinimo lauko kelias + + + Browse for share file + Bendrinimo failo narÅ¡ymas + + + Browse… + NarÅ¡yti... + + + Clear fields + IÅ¡valyti laukus + + + Clear + IÅ¡valyti + + + Inactive + Neaktyvus + + + Import + Importuoti + + + Export + Eksportuoti + + + Synchronize + Sinchronizuoti + + + Your KeePassXC version does not support sharing this container type. +Supported extensions are: %1. + JÅ«sų "KeePassXC" versija nepalaiko Å¡io konteinerio tipo bendrinimo. +Palaikomi pratÄ™simai yra: %1. + + + %1 is already being exported by this database. + %1 jau eksportuojamas iÅ¡ Å¡ios duomenų bazÄ—s. + + + %1 is already being imported by this database. + %1 jau importuojamas į Å¡iÄ… duomenų bazÄ™. + + + %1 is being imported and exported by different groups in this database. + %1 Å¡ioje duomenų bazÄ—je importuoja ir eksportuoja įvairios grupÄ—s. + + + KeeShare is currently disabled. You can enable import/export in the application settings. + KeeShare is a proper noun + KeeShare Å¡iuo metu yra iÅ¡jungtas. Galite įjungti importavimÄ… / eksportavimÄ… programos nustatymuose. + + + Database export is currently disabled by application settings. + Duomenų bazÄ—s eksportas Å¡iuo metu iÅ¡jungtas pagal programos nustatymus. + + + Database import is currently disabled by application settings. + Duomenų bazÄ—s importas Å¡iuo metu iÅ¡jungtas pagal programos nustatymus. + + + KeeShare container + KeeShare konteineris + + + KeeShare signed container + KeeShare pasiraÅ¡ytas konteineris + + + Select import source + Pasirinkti importo Å¡altinį + + + Select export target + Pasirinkti eksporto tikslÄ… + + + Select import/export file + Pasirinkti importo / eksporto failÄ… + + + + EditGroupWidgetMain + + Edit Group + Redaguoti GrupÄ™ + + + Toggle expiration + Perjungti galiojimo terminÄ… + + + Expires: + Baigiasi: + + + Name field + Pavadinimo laukas + + + Expiration field + Galiojimo laukas + + + Use default Auto-Type sequence of parent group + Naudoti numatytÄ…jÄ… pagrindinÄ—s grupÄ—s automatinio rinkimo sekÄ… + + + Auto-Type: + Auto-Ä®vedimas: + + + Search: + IeÅ¡koti: + + + Auto-Type toggle for this and sub groups + Automatinio rinkimo perjungimas Å¡iai ir pagalbinÄ—ms grupÄ—ms + + + Notes: + Pastabos: + + + Default auto-type sequence field + Numatytos automatinio rinkimo sekos laukas + + + Notes field + Pastabų laukas + + + Name: + Pavadinimas: + + + Set default Auto-Type sequence + Nustatyti numatytÄ…jÄ… Auto-Ä®vedimo sekÄ… + + + Search toggle for this and sub groups + IeÅ¡kos perjungiklis Å¡iam ir pogrupiams + + + + EditWidgetIcons + + Use default icon + Naudoti numatytÄ…jÄ… piktogramÄ… + + + Use custom icon + Naudoti tinkintÄ… piktogramÄ… + + + Choose icon… + Pasirinkti piktogramÄ…... + + + Set the URL to use to search for a favicon + Nustatykite URL, kurį norite naudoti ieÅ¡kodami favicon + + + Favicon URL + Piktogramos URL adresas + + + Download favicon for URL + Atsisiųsti piktogramÄ… URL adresui + + + Download favicon + Atsisiųsti svetainÄ—s piktogramÄ… + + + Apply selected icon to subgroups and entries + Taikyti pasirinktÄ… piktogramÄ… pogrupiams ir įraÅ¡ams + + + Apply icon to… + Taikyti piktogramÄ…... + + + Apply to this group only + Taikyti tik Å¡iai grupei + + + Also apply to child groups + Taip pat taikoma vaikų grupÄ—ms + + + Also apply to child entries + Taip pat taikoma antriniams įraÅ¡ams + + + Also apply to all children + Taip pat taikoma visiems vaikams + + + Unable to fetch favicon. + Nepavyko gauti svetainÄ—s piktogramos. + + + Existing icon selected. + Pasirinkta esama piktograma. + + + Images + Paveikslai + + + All files + Visi failai + + + Select Image(s) + Pasirinkite paveikslÄ—lį (-ius) + + + Successfully loaded %1 of %n icon(s) + SÄ—kmingai įkelta %1 iÅ¡ %n piktogramos (-ių)SÄ—kmingai įkelta %1 iÅ¡ %n piktogramos (-ių)SÄ—kmingai įkelta %1 iÅ¡ %n piktogramos (-ių)SÄ—kmingai įkelta %1 iÅ¡ %n piktogramos (-ių) + + + No icons were loaded + Neįkelta jokių piktogramų + + + %n icon(s) already exist in the database + %n piktograma (-os) jau yra duomenų bazÄ—je%n piktograma (-os) jau yra duomenų bazÄ—je%n piktograma (-os) jau yra duomenų bazÄ—je%n piktograma (-os) jau yra duomenų bazÄ—je + + + The following icon(s) failed: + Å i piktograma patyrÄ— nesÄ—kmÄ™:Å ios piktogramos patyrÄ— nesÄ—kmÄ™:Å ios piktogramos patyrÄ— nesÄ—kmÄ™:Å ios piktogramos patyrÄ— nesÄ—kmÄ™: + + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + + + + + EditWidgetProperties + + Created: + Sukurta: + + + Datetime created + Sukurtas datetime + + + Modified: + Keista: + + + Datetime modified + Datos laikas modifikuotas + + + Accessed: + Prieiga: + + + Datetime accessed + Datos laikas pasiekiamas + + + Uuid: + Uuid: + + + Unique ID + Unikalus ID + + + Plugin Data + Papildinių duomenys + + + Plugin data + Papildinių duomenys + + + Remove selected plugin data + PaÅ¡alinti pasirinktus papildinių duomenis + + + Remove + Å alinti + + + Delete plugin data? + IÅ¡trinti papildinių duomenis? + + + Do you really want to delete the selected plugin data? +This may cause the affected plugins to malfunction. + Ar tikrai norite iÅ¡trinti pasirinktus papildinių duomenis? +DÄ—l to gali sutrikti paveiktų papildinių veikimas. + + + Key + Raktas + + + Value + ReikÅ¡mÄ— + + + + Entry + + %1 - Clone + %1 - Klonas + + + + EntryAttachments + + Cannot open file "%1" + Nepavyko atidaryti failo "%1" + + + + EntryAttachmentsModel + + Name + Pavadinimas + + + Size + Dydis + + + + EntryAttachmentsWidget + + Form + Forma + + + Attachments + Priedai + + + Add new attachment + PridÄ—ti naujÄ… priedÄ… + + + Add + PridÄ—ti + + + Remove selected attachment + PaÅ¡alinti pasirinktÄ… priedÄ… + + + Remove + Å alinti + + + Rename selected attachment + Pervadinti pasirinktÄ… priedÄ… + + + Rename + Pervadinti + + + Open selected attachment + Atverti pasirinktÄ… priedÄ… + + + Open + Atverti + + + Save selected attachment to disk + Ä®raÅ¡yti pasirinktÄ… priedÄ… į diskÄ… + + + Save + Ä®raÅ¡yti + + + Select files + Pasirinkti failus + + + Confirm remove + Patvirtinti paÅ¡alinimÄ… + + + Are you sure you want to remove %n attachment(s)? + Ar tikrai norite paÅ¡alinti %n priedÄ…?Ar tikrai norite paÅ¡alinti %n priedus?Ar tikrai norite paÅ¡alinti %n priedų?Ar tikrai norite paÅ¡alinti %n priedų? + + + Save attachments + Ä®raÅ¡yti priedus + + + Unable to create directory: +%1 + Nepavyko sukurti katalogÄ…: +%1 + + + Are you sure you want to overwrite the existing file "%1" with the attachment? + Ar tikrai norite perraÅ¡yti failÄ… "%1" priedu? + + + Confirm overwrite + Patvirtinti perraÅ¡ymÄ… + + + Unable to save attachments: +%1 + Nepavyko įraÅ¡yti priedus: +%1 + + + Unable to open attachment: +%1 + Nepavyko atverti priedÄ…: +%1 + + + Unable to open attachments: +%1 + Nepavyko atverti priedus: +%1 + + + Unable to open file(s): +%1 + Nepavyksta atidaryti failo (-ų): +%1Nepavyksta atidaryti failo (-ų): +%1Nepavyksta atidaryti failo (-ų): +%1Nepavyksta atidaryti failo (-ų): +%1 + + + Confirm Overwrite Attachment + Patvirtinti priedo perraÅ¡ymÄ… + + + Attachment "%1" already exists. +Would you like to overwrite the existing attachment? + Priedas "%1" jau egzistuoja. +Ar norite perraÅ¡yti esamÄ… priedÄ…? + + + Confirm Attachment + Patvirtinti priedÄ… + + + %1 is a big file (%2 MB). +Your database may get very large and reduce performance. + +Are you sure to add this file? + %1 yra didelis failas (%2 MB). +JÅ«sų duomenų bazÄ— gali tapti labai didelÄ— ir gali sumažėti naÅ¡umas. + +Ar tikrai norite pridÄ—ti šį failÄ…? + + + Attachment modified + Priedas pakeistas + + + The attachment '%1' was modified. +Do you want to save the changes to your database? + Priedas '%1' buvo pakeistas. +Ar norite iÅ¡saugoti pakeitimus savo duomenų bazÄ—je? + + + Saving attachment failed + Nepavyko iÅ¡saugoti priedo + + + Saving updated attachment failed. +Error: %1 + Nepavyko iÅ¡saugoti atnaujinto priedo. +Klaida: %1 + + + + EntryAttributesModel + + Name + Pavadinimas + + + + EntryHistoryModel + + Current (%1) + Dabartinis (%1) + + + Last modified + Paskutinis keitimas + + + Age + Amžius + + + Difference + Skirtumas + + + Size + Dydis + + + Title + AntraÅ¡tÄ— + + + Username + Naudotojo vardas + + + Password + Slaptažodis + + + URL + URL + + + Notes + Pastabos + + + Custom Attributes + Pasirinktiniai atributai + + + Icon + Piktograma + + + Color + Spalva + + + Expiration + Galiojimas + + + TOTP + TOTP + + + Custom Data + Pasirinktiniai duomenys + + + Attachments + Priedai + + + Auto-Type + Automatinis rinkimas + + + Tags + Žymos + + + + EntryModel + + Ref: + Reference abbreviation + Nuoroda: + + + Never + Niekada + + + Group + GrupÄ— + + + Title + AntraÅ¡tÄ— + + + Username + Naudotojo vardas + + + Password + Slaptažodis + + + URL + URL + + + Notes + Pastabos + + + Expires + Baigia galioti + + + Created + Sukurta + + + Modified + Keista + + + Accessed + Prieiga + + + Attachments + Priedai + + + Size + Dydis + + + Group name + GrupÄ—s pavadinimas + + + Entry title + Ä®raÅ¡o pavadinimas + + + Password Strength + Slaptažodžio Stiprumas + + + Entry notes + Ä®raÅ¡o pastabos + + + Entry expires at + Ä®raÅ¡as galioja iki + + + Creation date + SukÅ«rimo data + + + Last modification date + Paskutinio pakeitimo data + + + Last access date + PaskutinÄ—s prieigos data + + + Attached files + PridÄ—ti failai + + + Entry size + Ä®raÅ¡o dydis + + + Has attachments + Turi priedų + + + Has TOTP + Turi TOTP + + + Background Color + + + + + EntryPreviewWidget + + Display current TOTP value + Rodyti dabartinÄ™ TOTP reikÅ¡mÄ™ + + + Close + Užverti + + + General + Bendra + + + Password + Slaptažodis + + + URL + URL + + + Expiration + Galiojimas + + + Tags + Žymos + + + Tags list + Žymų sÄ…raÅ¡as + + + Username + Naudotojo vardas + + + Notes + Pastabos + + + Advanced + IÅ¡plÄ—stiniai + + + Attachments + Priedai + + + Attributes + Požymiai + + + Autotype + Automatinis rinkimas + + + Default Sequence + Numatytoji seka + + + Window + Langas + + + Sequence + Seka + + + Searching + PaieÅ¡ka + + + Share + Dalintis + + + Search + PaieÅ¡ka + + + Clear + IÅ¡valyti + + + Never + Niekada + + + Double click to copy value + Dukart spustelÄ—kite, kad nukopijuotumÄ—te reikÅ¡mÄ™ + + + Enabled + Ä®jungta + + + Disabled + IÅ¡jungta + + + Double click to copy to clipboard + + + + + EntryURLModel + + Invalid URL + Netinkamas URL + + + Duplicate URL + + + + + EntryView + + Fit to window + Priderinti prie lango + + + Fit to contents + Priderinti prie turinio + + + Reset to defaults + Atstatyti į numatytuosius + + + + %1 entry(s)... + + + + + ExportDialog + + Export options + Eksporto parinktys + + + Sort entries by... + Rikiuoti įraÅ¡us pagal... + + + You are about to export your database to an unencrypted file. +This will leave your passwords and sensitive information vulnerable! + + Ketinate eksportuoti duomenų bazÄ™ į neužšifruotÄ… failÄ…. +DÄ—l to jÅ«sų slaptažodžiai ir slapta informacija bus pažeidžiami! + + + database order + duomenų bazÄ—s tvarka + + + name (ascending) + pavadinimas (didÄ—jimo tvarka) + + + name (descending) + pavadinimas (mažėjimo tvarka) + + + unknown + nežinomas + + + Export database to HTML file + Eksportuoti duomenų bazÄ™ į HTML failÄ… + + + HTML file + HTML failas + + + + FdoSecrets::DBusMgr + + Failed to deliver message + Nepavyko pristatyti praneÅ¡imo + + + Failed to send reply on DBus + Nepavyko iÅ¡siųsti atsakymo per "DBus" + + + Unknown + Unknown PID + Nežinoma + + + Unknown + Unknown executable path + Nežinoma + + + <i>PID: %1, Executable: %2</i> + <i>PID: 1234, Executable: /path/to/exe</i> + <i>PID: %1, vykdomasis failas: %2</i> + + + Another secret service is running (%1).<br/>Please stop/remove it before re-enabling the Secret Service Integration. + Veikia dar viena slaptoji tarnyba (%1).<br/>PrieÅ¡ iÅ¡ naujo įjungdami Slaptosios tarnybos integracijÄ…, jį sustabdykite / paÅ¡alinkite. + + + Failed to register DBus service at %1.<br/> + Nepavyko užregistruoti DBus paslaugos %1.<br/> + + + Failed to register service on DBus at path '%1' + Nepavyko užregistruoti paslaugos "DBus" kelyje "%1" + + + Failed to register database on DBus under the name '%1' + Nepavyko užregistruoti duomenų bazÄ—s DBus pavadinimu "%1" + + + Failed to register session on DBus at path '%1' + Nepavyko užsiregistruoti "DBus" kelyje "%1" + + + Failed to register item on DBus at path '%1' + Nepavyko užregistruoti prekÄ—s DBus kelyje '%1' + + + Failed to register prompt object on DBus at path '%1' + Nepavyko užregistruoti greito objekto DBus kelyje '%1' + + + + FdoSecrets::Item + + Entry "%1" from database "%2" was used by %3 + Ä®rašą "%1" iÅ¡ duomenų bazÄ—s "%2" naudojo %3 + + + + FdoSecrets::Service + + %n Entry(s) was used by %1 + %1 is the name of an application + %n Ä®raÅ¡as (-ai) buvo naudojamas (-i) %1%n Ä®raÅ¡as (-ai) buvo naudojamas (-i) %1%n Ä®raÅ¡as (-ai) buvo naudojamas (-i) %1%n Ä®raÅ¡as (-ai) buvo naudojamas (-i) %1 + + + + FdoSecrets::SettingsClientModel + + Unknown + Nežinoma + + + Non-existing/inaccessible executable path. Please double-check the client is legit. + Neegzistuojantis / neprieinamas vykdomosios programos kelias. Dukart patikrinkite, ar klientas yra tinkamas. + + + + FdoSecrets::SettingsDatabaseModel + + Unlock to show + Atrakinkite, kad peržiÅ«rÄ—ti + + + None + NÄ—ra + + + + FdoSecrets::UnlockPrompt + + %1 (PID: %2) + %1 (PID: %2) + + + + FdoSecretsPlugin + + <b>Fdo Secret Service:</b> %1 + <b>Fdo slaptoji tarnyba:</b> %1 + + + + Group + + [empty] + group has no children + [tuÅ¡Äia] + + + %1 - Clone + %1 - Klonas + + + + HibpDownloader + + Online password validation failed + Nepavyko patvirtinti slaptažodžio internete + + + + IconDownloaderDialog + + Download Favicons + Atsisiųsti Piktogramas + + + Cancel + Atsisakyti + + + Having trouble downloading icons? +You can enable the DuckDuckGo website icon service in the security section of the application settings. + Susiduriate su sunkumais atsisiunÄiant piktogramas? +DuckDuckGo svetainÄ—s piktogramų paslaugÄ… galite įjungti programos nustatymų saugumo skyriuje. + + + Close + Užverti + + + URL + URL + + + Status + BÅ«sena + + + Please wait, processing entry list… + Palaukite, apdorojamas įrašų sÄ…raÅ¡as... + + + Downloading… + AtsisiunÄiama... + + + Ok + Gerai + + + Already Exists + Jau Egzistuoja + + + Download Failed + Atsisiųsti Nepavyko + + + Downloading favicons (%1/%2)… + AtsisiunÄiamos piktogramos (%1/%2)... + + + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + + + + Entry count: %1 + + + + Group + GrupÄ— + + + Title + AntraÅ¡tÄ— + + + Username + Naudotojo vardas + + + Password + Slaptažodis + + + Url + + + + + ImportWizardPageSelect + + Form + Forma + + + Import File Selection + + + + Password: + Slaptažodis: + + + Key File: + Rakto failas: + + + Browse… + NarÅ¡yti... + + + Import Into: + + + + New Database + Nauja duomenų bazÄ— + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + + + + Select import file + + + + All files + Visi failai + + + Key files + Rakto failai + + + Select key file + Pasirinkite rakto failÄ… + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + + + KMessageWidget + + &Close + &Užverti + + + Close message + Užverti žinutÄ™ + + + + Kdbx3Reader + + Missing database headers + TrÅ«ksta duomenų bazÄ—s antraÅ¡Äių + + + Unable to calculate database key + Nepavyko apskaiÄiuoti duomenų bazÄ—s rakto + + + Unable to issue challenge-response: %1 + Nepavyko pateikti atsakymo į iššūkius: %1 + + + Invalid credentials were provided, please try again. +If this reoccurs, then your database file may be corrupt. + Pateikti neteisingi prisijungimo duomenys, bandykite dar kartÄ…. +Jei tai kartojasi, jÅ«sų duomenų bazÄ—s failas gali bÅ«ti sugadintas. + + + Header doesn't match hash + AntraÅ¡tÄ— neatitinka maišą + + + Invalid header id size + Neteisingas antraÅ¡tÄ—s id dydis + + + Invalid header field length: field %1 + Neteisingas antraÅ¡tÄ—s lauko ilgis: laukas %1 + + + Invalid header data length: field %1, %2 expected, %3 found + Neteisingas antraÅ¡tÄ—s duomenų ilgis: laukas %1, %2 laukiamas, %3 rastas + + + + Kdbx3Writer + + Invalid symmetric cipher IV size. + IV = Initialization Vector for symmetric cipher + Neteisingas simetriÅ¡kas Å¡ifro IV dydis. + + + Unable to issue challenge-response: %1 + Nepavyko pateikti atsakymo į iššūkius: %1 + + + Unable to calculate database key + Nepavyko apskaiÄiuoti duomenų bazÄ—s rakto + + + + Kdbx4Reader + + missing database headers + trÅ«ksta duomenų bazÄ—s antraÅ¡Äių + + + Unable to calculate database key: %1 + Nepavyko apskaiÄiuoti duomenų bazÄ—s rakto: %1 + + + Invalid header checksum size + Neteisingas antraÅ¡tÄ—s kontrolinÄ—s sumos dydis + + + Header SHA256 mismatch + AntraÅ¡tÄ—s SHA256 neatitikimas + + + Invalid credentials were provided, please try again. +If this reoccurs, then your database file may be corrupt. + Pateikti neteisingi prisijungimo duomenys, bandykite dar kartÄ…. +Jei tai kartojasi, jÅ«sų duomenų bazÄ—s failas gali bÅ«ti sugadintas. + + + (HMAC mismatch) + (HMAC nesutampa) + + + Unknown cipher + Nežinomas Å¡ifras + + + Invalid header id size + Neteisingas antraÅ¡tÄ—s id dydis + + + Invalid header field length: field %1 + Neteisingas antraÅ¡tÄ—s lauko ilgis: laukas %1 + + + Invalid header data length: field %1, %2 expected, %3 found + Neteisingas antraÅ¡tÄ—s duomenų ilgis: laukas %1, %2 laukiamas, %3 rastas + + + Failed to open buffer for KDF parameters in header + Nepavyko atidaryti KDF parametrų buferio antraÅ¡tÄ—je + + + Unsupported key derivation function (KDF) or invalid parameters + Nepalaikoma rakto iÅ¡vedimo funkcija (KDF) arba negaliojantys parametrai + + + Legacy header fields found in KDBX4 file. + SenstelÄ—jÄ™ antraÅ¡tÄ—s laukai, rasti KDBX4 faile. + + + Invalid inner header id size + Neteisingas vidinÄ—s antraÅ¡tÄ—s id dydis + + + Invalid inner header field length: field %1 + Neteisingas vidinio antraÅ¡tÄ—s lauko ilgis: laukas %1 + + + Invalid inner header data length: field %1, %2 expected, %3 found + Neteisingas vidinis antraÅ¡tÄ—s duomenų ilgis: laukas %1, %2 laukiamas, %3 rastas + + + Invalid inner header binary size + Neteisingas vidinÄ—s antraÅ¡tÄ—s dvejetainis dydis + + + Unsupported KeePass variant map version. + Translation: variant map = data structure for storing meta data + Nepalaikoma KeePass varianto žemÄ—lapio versija. + + + Invalid variant map entry name length + Translation: variant map = data structure for storing meta data + Netinkamas varianto žemÄ—lapio įraÅ¡o pavadinimo ilgis + + + Invalid variant map entry name data + Translation: variant map = data structure for storing meta data + Negaliojantys varianto žemÄ—lapio įvesties pavadinimo duomenys + + + Invalid variant map entry value length + Translation: variant map = data structure for storing meta data + Neteisingas varianto žemÄ—lapio įvesties reikÅ¡mÄ—s ilgis + + + Invalid variant map entry value data + Translation comment: variant map = data structure for storing meta data + Neleistini variantų žemÄ—lapio įvesties reikÅ¡mÄ—s duomenys + + + Invalid variant map Bool entry value length + Translation: variant map = data structure for storing meta data + Netinkamas varianto žemÄ—lapis "Bool" įvesties reikÅ¡mÄ—s ilgis + + + Invalid variant map Int32 entry value length + Translation: variant map = data structure for storing meta data + Neteisingas varianto žemÄ—lapis Int32 įvesties reikÅ¡mÄ—s ilgis + + + Invalid variant map UInt32 entry value length + Translation: variant map = data structure for storing meta data + Neteisingas varianto žemÄ—lapis UInt32 įėjimo vertÄ—s ilgis + + + Invalid variant map Int64 entry value length + Translation: variant map = data structure for storing meta data + Neteisingas varianto žemÄ—lapis Int64 įraÅ¡o reikÅ¡mÄ—s ilgis + + + Invalid variant map UInt64 entry value length + Translation: variant map = data structure for storing meta data + Neteisingas varianto žemÄ—lapis UInt64 įėjimo reikÅ¡mÄ—s ilgis + + + Invalid variant map entry type + Translation: variant map = data structure for storing meta data + Netinkamas varianto žemÄ—lapio įraÅ¡o tipas + + + Invalid variant map field type size + Translation: variant map = data structure for storing meta data + Netinkamas varianto žemÄ—lapio lauko tipo dydis + + + + Kdbx4Writer + + Invalid symmetric cipher algorithm. + Neteisingas simetriÅ¡kas Å¡ifro algoritmas. + + + Invalid symmetric cipher IV size. + IV = Initialization Vector for symmetric cipher + Neteisingas simetriÅ¡kas Å¡ifro IV dydis. + + + Unable to calculate database key: %1 + Nepavyko apskaiÄiuoti duomenų bazÄ—s rakto: %1 + + + Failed to serialize KDF parameters variant map + Translation comment: variant map = data structure for storing meta data + Nepavyko serializuoti KDF parametrų varianto žemÄ—lapio + + + + KdbxReader + + Invalid cipher uuid length: %1 (length=%2) + Neteisingas Å¡ifro ilgis: %1 (ilgis=%2) + + + Unable to parse UUID: %1 + Nepavyko iÅ¡analizuoti UUID: %1 + + + Unsupported cipher + Nepalaikomas Å¡ifras + + + Invalid compression flags length + Netinkamas glaudinimo vÄ—liavÄ—lių ilgis + + + Unsupported compression algorithm + Nepalaikomas glaudinimo algoritmas + + + Invalid master seed size + Netinkamas pagrindinÄ—s sÄ—klos dydis + + + Invalid transform seed size + Netinkamas transformacijos sÄ—klos dydis + + + Invalid transform rounds size + Netinkamas transformacijos raundų dydis + + + Invalid start bytes size + Netinkamas pradžios baitų dydis + + + Invalid random stream id size + Neteisingas atsitiktinio srauto ID dydis + + + Invalid inner random stream cipher + Neteisingas vidinis atsitiktinio srauto Å¡ifras + + + Failed to read database file. + Nepavyko nuskaityti duomenų bazÄ—s failo. + + + The selected file is an old KeePass 1 database (.kdb). + +You can import it by clicking on Database > 'Import KeePass 1 database…'. +This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. + Pasirinktas failas yra sena KeePass 1 duomenų bazÄ— (.kdb). + +Jį galite importuoti spustelÄ—jÄ™ Duomenų bazÄ—s > "Importuoti KeePass 1 duomenų bazÄ™...". +Tai vienpusÄ— migracija. NegalÄ—site atidaryti importuotos duomenų bazÄ—s naudodami senÄ… KeePassX 0.4 versijÄ…. + + + Not a KeePass database. + Ne KeePass duomenų bazÄ—. + + + Unsupported KeePass 2 database version. + Nepalaikoma KeePass 2 duomenų bazÄ—s versija. + + + + KdbxXmlReader + + XML parsing failure: %1 + XML nagrinÄ—jimo nesÄ—kmÄ—: %1 + + + No root group + NÄ—ra Å¡akninÄ—s grupÄ—s + + + XML error: +%1 +Line %2, column %3 + XML klaida: +%1 +%2 eilutÄ—, %3 stulpelis + + + Missing icon uuid or data + TrÅ«ksta piktogramos uuid ar duomenų + + + Missing custom data key or value + TrÅ«ksta pasirinktinio duomenų rakto arba reikÅ¡mÄ—s + + + Multiple group elements + Keletas grupÄ—s elementų + + + Null group uuid + Neapibrėžta grupÄ— uuid + + + Invalid group icon number + Neteisingas grupÄ—s piktogramos numeris + + + Invalid EnableAutoType value + Neteisinga EnableAutoType reikÅ¡mÄ— + + + Invalid EnableSearching value + Neteisinga įgalinti ieÅ¡kos reikÅ¡mÄ™ + + + No group uuid found + Nerastas grupÄ—s uuid + + + Null DeleteObject uuid + Null DeleteObject uuid + + + Missing DeletedObject uuid or time + TrÅ«ksta DeletedObject uuid arba laiko + + + Null entry uuid + Nulinis įraÅ¡as uuid + + + Invalid entry icon number + Neteisingas įraÅ¡o piktogramos numeris + + + History element in history entry + Istorijos elementas istorijos įraÅ¡e + + + No entry uuid found + Nerastas įraÅ¡o uuid + + + History element with different uuid + Istorijos elementas su skirtingu uuid + + + Duplicate custom attribute found + Rastas dubliuotas tinkintas požymis + + + Entry string key or value missing + TrÅ«ksta įraÅ¡o eilutÄ—s rakto arba reikÅ¡mÄ—s + + + Entry binary key or value missing + TrÅ«ksta įraÅ¡o dvejetainio rakto arba reikÅ¡mÄ—s + + + Auto-type association window or sequence missing + TrÅ«ksta automatinio rinkimo susiejimo lango arba sekos + + + Invalid bool value + Neteisinga buliaus reikÅ¡mÄ— + + + Invalid date time value + Neteisinga datos laiko reikÅ¡mÄ— + + + Invalid color value + Neteisinga spalvos reikÅ¡mÄ— + + + Invalid color rgb part + Neteisinga spalvos rgb dalis + + + Invalid number value + Neteisinga skaitmeninÄ— reikÅ¡mÄ— + + + Invalid uuid value + Neteisinga uuid reikÅ¡mÄ— + + + Unable to decompress binary + Translator meant is a binary data inside an entry + Nepavyksta dekompresuoti dvejetainio režimo + + + + KeeAgentSettings + + Invalid KeeAgent settings file structure. + Neteisinga "KeeAgent" nustatymų failų struktÅ«ra. + + + Private key is an attachment but no attachments provided. + Privatus raktas yra priedas, bet jokių priedų nepateikta. + + + Private key is empty + Privatus raktas yra tuÅ¡Äias + + + File too large to be a private key + Failas per didelis, kad bÅ«tų privatusis raktas + + + Failed to open private key + Nepavyko atverti privaÄiojo rakto + + + + KeePass1Reader + + Unable to read keyfile. + Nepavyko perskaityti rakto failo. + + + Not a KeePass database. + Ne KeePass duomenų bazÄ—. + + + Unsupported encryption algorithm. + Nepalaikomas Å¡ifravimo algoritmas. + + + Unsupported KeePass database version. + Nepalaikoma KeePass duomenų bazÄ—s versija. + + + Unable to read encryption IV + IV = Initialization Vector for symmetric cipher + Nepavyko perskaityti Å¡ifravimo IV + + + Invalid number of groups + Neteisingas grupių skaiÄius + + + Invalid number of entries + Neteisingas įrašų skaiÄius + + + Invalid content hash size + Neteisingas turinio maiÅ¡os dydis + + + Invalid transform seed size + Netinkamas transformacijos sÄ—klos dydis + + + Invalid number of transform rounds + Neteisingas transformacijos raundų skaiÄius + + + Unable to construct group tree + Nepavyko sukurti grupÄ—s medžio + + + Root + Å aknis + + + Unable to calculate database key + Nepavyko apskaiÄiuoti duomenų bazÄ—s rakto + + + unable to seek to content position + negali siekti turinio pozicijos + + + Invalid credentials were provided, please try again. +If this reoccurs, then your database file may be corrupt. + Pateikti neteisingi prisijungimo duomenys, bandykite dar kartÄ…. +Jei tai kartojasi, jÅ«sų duomenų bazÄ—s failas gali bÅ«ti sugadintas. + + + Key transformation failed + Rakto transformacija nepavyko + + + Invalid group field type number + Neteisingas grupÄ—s lauko tipo numeris + + + Invalid group field size + Netinkamas grupÄ—s lauko dydis + + + Read group field data doesn't match size + Skaitymo grupÄ—s lauko duomenys neatitinka dydžio + + + Incorrect group id field size + Neteisingas grupÄ—s ID lauko dydis + + + Incorrect group creation time field size + Neteisingas grupÄ—s kÅ«rimo laiko lauko dydis + + + Incorrect group modification time field size + Neteisingas grupÄ—s modifikavimo laiko lauko dydis + + + Incorrect group access time field size + Neteisingas grupÄ—s prieigos laiko lauko dydis + + + Incorrect group expiry time field size + Neteisingas grupÄ—s galiojimo pabaigos laiko lauko dydis + + + Incorrect group icon field size + Neteisingas grupÄ—s piktogramos lauko dydis + + + Incorrect group level field size + Neteisingas grupÄ—s lygio lauko dydis + + + Invalid group field type + Neteisingas grupÄ—s lauko tipas + + + Missing group id or level + TrÅ«ksta grupÄ—s ID arba lygio + + + Missing entry field type number + TrÅ«ksta įraÅ¡o lauko tipo numerio + + + Invalid entry field size + Neteisingas įraÅ¡o lauko dydis + + + Read entry field data doesn't match size + Skaitymo įvedimo lauko duomenys neatitinka dydžio + + + Invalid entry UUID field size + Netinkamas įraÅ¡o UUID lauko dydis + + + Invalid entry group id field size + Netinkamas įraÅ¡o grupÄ—s ID lauko dydis + + + Invalid entry icon field size + Netinkamas įraÅ¡o piktogramos lauko dydis + + + Invalid entry creation time field size + Netinkamas įraÅ¡o kÅ«rimo laiko lauko dydis + + + Invalid entry modification time field size + Netinkamas įraÅ¡o modifikavimo laiko lauko dydis + + + Invalid entry expiry time field size + Negaliojantis įraÅ¡o galiojimo laikas lauko dydis + + + Invalid entry field type + Neteisingas įraÅ¡o lauko tipas + + + + KeeShare + + Invalid sharing reference + Neteisinga bendrinimo nuoroda + + + Inactive share %1 + Neaktyvi dalis %1 + + + Imported from %1 + Importuota iÅ¡ %1 + + + Exported to %1 + Eksportuota į %1 + + + Synchronized with %1 + Sinchronizuota su %1 + + + Import is disabled in settings + Importas iÅ¡jungtas nustatymuose + + + Export is disabled in settings + Eksportas iÅ¡jungtas nustatymuose + + + Inactive share + Neaktyvus bendrinimas + + + Imported from + Importuota iÅ¡ + + + Exported to + Eksportuota į + + + Synchronized with + Sinchronizuota su + + + + KeyComponentWidget + + Key Component + Pagrindinis komponentas + + + Key Component Description + Pagrindinio komponento apraÅ¡ymas + + + Cancel + Atsisakyti + + + Key Component set, click to change or remove + Pagrindinių komponentų rinkinys, spustelÄ—kite, kad pakeistumÄ—te arba paÅ¡alintumÄ—te + + + + KeyFileEditWidget + + Generate a new key file + Generuoti naujÄ… rakto failÄ… + + + Generate + Generuoti + + + Generate a new key file or choose an existing one to protect your database. + Sukurti naujÄ… rakto failÄ… arba pasirinkti esamÄ…, kad apsaugoti duomenų bazÄ™. + + + Note: Do NOT use a file that may change as that will prevent you from unlocking your database. + astaba: NENAUDOKITE failo, kuris gali pasikeisti, nes dÄ—l to nebegalÄ—site atrakinti duomenų bazÄ—s. + + + Browse for key file + IeÅ¡koti rakto failo + + + Browse… + NarÅ¡yti... + + + Old key file format + Senas rakto failo formatas + + + You selected a key file in an old format which KeePassXC<br>may stop supporting in the future.<br><br>Please consider generating a new key file instead. + Pasirinkote seno formato rakto failÄ…, kurio KeePassXC<br>ateityje gali nebepalaikyti.<br><br>Apsvarstykite galimybÄ™ vietoj jo sukurti naujÄ… rakto failÄ…. + + + Error loading the key file '%1' +Message: %2 + Klaida įkeliant rakto failÄ… '%1' +ŽinutÄ—: %2 + + + Key File + Rakto failas + + + Add Key File + PridÄ—ti Rakto FailÄ… + + + Change Key File + Keisti Rakto FailÄ… + + + Remove Key File + PaÅ¡alinti Rakto FailÄ… + + + Key File set, click to change or remove + Rakto Failas nustatytas, spustelÄ—kite, jei norite pakeisti arba paÅ¡alinti + + + <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out.</p> + <p>Galite pridÄ—ti rakto failÄ… su atsitiktiniais baitais, kad užtikrintumÄ—te papildomÄ… saugumÄ….</p><p>Turite jį laikyti paslaptyje ir niekada neprarasti, antraip bÅ«site užblokuoti.</p> + + + Key files + Rakto failai + + + All files + Visi failai + + + Create Key File… + Sukurti Rakto FailÄ…... + + + Error creating key file + Klaida kuriant rakto failÄ… + + + Unable to create key file: %1 + Nepavyko sukurti rakto failo: %1 + + + Select a key file + Pasirinkite rakto failÄ… + + + Invalid Key File + Neteisingas Rakto Failas + + + You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. + DabartinÄ—s duomenų bazÄ—s negalima naudoti kaip rakto failo. Pasirinkite kitÄ… failÄ… arba sukurkite naujÄ… rakto failÄ…. + + + Suspicious Key File + įtartinas raktų failas + + + The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. +Are you sure you want to continue with this file? + Pasirinktas rakto failas atrodo kaip slaptažodžių duomenų bazÄ—s failas. Rakto failas turi bÅ«ti statinis failas, kuris niekada nesikeiÄia, nes prieÅ¡ingu atveju visiems laikams prarasite prieigÄ… prie savo duomenų bazÄ—s. +Ar tikrai norite tÄ™sti darbÄ… su Å¡iuo failu? + + + + MacUtils + + Invalid key code + Netinkamas rakto kodas + + + Global shortcut already registered to %1 + Visuotinis spartusis klaviÅ¡as jau užregistruotas į %1 + + + Could not register global shortcut + Nepavyko užregistruoti visuotinio sparÄiojo klaviÅ¡o + + + + MainWindow + + &Database + &Duomenų bazÄ— + + + &Recent Databases + &Neseniai naudotos duomenų bazÄ—s + + + &Export + &Eksportuoti + + + &Help + Ž&inynas + + + &Entries + &Ä®raÅ¡ai + + + Copy Att&ribute + Kopijuoti atr&ibutÄ… + + + TOTP + TOTP + + + Tags + Žymos + + + &Groups + &GrupÄ—s + + + &Tools + Ä®&rankiai + + + View + Rodinys + + + Theme + Tema + + + &Quit + &Baigti + + + &About + &Apie + + + &Check for Updates + &Tikrinti ar yra atnaujinimų + + + &Open Database… + &Atidaryti duomenų bazÄ™... + + + &Save Database + &IÅ¡saugoti duomenų bazÄ™ + + + &Close Database + &Uždaryti duomenų bazÄ™ + + + &New Database… + &Nauja duomenų bazÄ—... + + + &Merge From Database… + &Ä®traukti iÅ¡ duomenų bazÄ—s... + + + &New Entry… + &Naujas įraÅ¡as… + + + &Edit Entry… + &Redaguoti įrašą... + + + &Delete Entry… + &IÅ¡trinti įrašą... + + + &New Group… + &Nauja grupÄ—... + + + &Edit Group… + &Redaguoti grupÄ™... + + + &Delete Group… + &IÅ¡trinti grupÄ™... + + + Download All &Favicons… + Atsisiųsti visas piktogramas... + + + Sort &A-Z + RuÅ¡iuoti nuo &A-Z + + + Sort &Z-A + RuÅ¡iuoti nuo &Z-A + + + Sa&ve Database As… + IÅ¡&saugoti duomenų bazÄ™ kaip... + + + Database &Security… + &Duomenų bazÄ—s saugumas... + + + Database &Reports… + Duomenu bazÄ—s &ataskaitos... + + + &Database Settings… + &Duomenų bazÄ—s nustatymai... + + + &Clone Entry… + &Klonuoti įrašą... + + + Move u&p + Perkelti a&ukÅ¡tyn + + + Move do&wn + Perkelti že&miau + + + Copy &Username + Kopijuoti &slapyvardį + + + Copy &Password + Kopijuoti &slaptažodį + + + &Settings + &Nustatymai + + + &Password Generator + &Slaptažodžių generatorius + + + Perform &Auto-Type + Atlikti &automatinį rinkimÄ… + + + Download &Favicon + Atsisiųsti &piktogramÄ… + + + Open &URL + Atverti &URL + + + &Lock Database + &Užrakinti duomenų bazÄ™ + + + Lock &All Databases + Užrakinti &visas duomenų bazes + + + &Title + &AntraÅ¡tÄ— + + + Copy &URL + Kopijuoti &URL + + + &Notes + &Pastabos + + + &CSV File… + &CSV failas... + + + &HTML File… + &HTML failas... + + + KeePass 1 Database… + KeePass 1 Duomenų bazÄ—... + + + 1Password Vault… + 1Password saugykla... + + + CSV File… + CSV Failas... + + + Show TOTP + Rodyti NTVS + + + Show QR Code + Rodyti QR KodÄ… + + + Set up TOTP… + Nustatyti TOTP... + + + Copy &TOTP + Kopijuoti &NTVS + + + Copy Password and TOTP + Kopijuoti slaptažodį ir TOTP + + + E&mpty recycle bin + IÅ¡&valyti Å¡iukÅ¡linÄ™ + + + &Donate + &Paaukoti + + + Report a &Bug + PraneÅ¡ti apie &klaidÄ… + + + &Getting Started + &Kaip pradÄ—ti + + + Open Getting Started Guide + Atidaryti pradžios vadovÄ… + + + &Online Help + &InternetinÄ— pagalba + + + &User Guide + &Naudotojo vadovas + + + Open User Guide + Atidaryti naudotojo vadovÄ… + + + &Keyboard Shortcuts + &KlaviatÅ«ros spartieji klaviÅ¡ai + + + Save Database Backup… + IÅ¡saugoti duomenų bazÄ—s atsarginÄ™ kopijÄ…... + + + Add key to SSH Agent + PridÄ—ti raktÄ… prie SSH agento + + + Remove key from SSH Agent + PaÅ¡alinti raktÄ… iÅ¡ SSH agento + + + Compact Mode + KompaktiÅ¡kas režimas + + + Automatic + Automatinis + + + Light + Å viesi + + + Dark + Tamsi + + + Classic (Platform-native) + Klasikinis (platformos gimtoji) + + + Show Toolbar + Rodyti įrankių juostÄ… + + + Show Preview Panel + Rodyti PeržiÅ«ros Skydelį + + + Always on Top + Visada ant VirÅ¡aus + + + Hide Usernames + SlÄ—pti naudotojo vardus + + + Hide Passwords + SlÄ—pti slaptažodžius + + + Clone Group... + Klonuoti GrupÄ™... + + + &XML File… + &XML failas… + + + Clear history + IÅ¡valyti istorijÄ… + + + Access error for config file %1 + KonfigÅ«racijos failo %1 prieigos klaida + + + Don't show again for this version + Daugiau nerodyti Å¡ioje versijoje + + + WARNING: You are using an unstable build of KeePassXC. +There is a high risk of corruption, maintain a backup of your databases. +This version is not meant for production use. + Ä®SPÄ–JIMAS: JÅ«s naudojate nestabiliÄ… KeePassXC versijÄ…. +Egzistuoja didelÄ— pažeidimų rizika, turÄ—kite atsarginÄ™ duomenų bazių kopijÄ…. +Å i versija neskirta naudoti darbui. + + + NOTE: You are using a pre-release version of KeePassXC. +Expect some bugs and minor issues, this version is meant for testing purposes. + PASTABA: JÅ«s naudojate ankstyvÄ…jÄ… KeePassXC versijÄ…. +TikÄ—kitÄ—s klaidų ir nedidelių problemų, Å¡i versija skirta testavimo tikslams. + + + WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard. +We recommend you use the AppImage available on our downloads page. + Ä®SPÄ–JIMAS: DÄ—l jÅ«sų Qt versijos "KeePassXC" gali sugesti naudojant ekrano klaviatÅ«rÄ…. +Rekomenduojame naudoti "AppImage", pasiekiamÄ… mÅ«sų atsisiuntimų puslapyje. + + + No Tags + NÄ—ra žymų + + + Restore Entry(s) + Atkurti įrašą (-us)Atkurti įrašą (-us)Atkurti įrašą (-us)Atkurti įrašą (-us) + + + Settings + Nustatymai + + + Check for updates on startup? + Tikrinti ar yra atnaujinimų paleidimo metu? + + + Would you like KeePassXC to check for updates on startup? + Ar norite, kad KeePassXC patikrintų, ar yra atnaujinimų paleidimo metu? + + + You can always check for updates manually from the application menu. + Ar yra atnaujinimų visada galite patikrinti rankiniu bÅ«du iÅ¡ programos meniu. + + + Toggle window + Perjungti langÄ… + + + Quit KeePassXC + IÅ¡eiti iÅ¡ KeePassXC + + + %1 Entry(s) + %1 Ä®raÅ¡as%1 Ä®raÅ¡ai%1 Ä®rašų%1 Ä®raÅ¡as (-ai) + + + Please present or touch your YubiKey to continue… + NorÄ—dami tÄ™sti, pateikite arba palieskite savo YubiKey raktÄ…... + + + Restart Application? + Perleisti ProgramÄ…? + + + You must restart the application to apply this setting. Would you like to restart now? + NorÄ—dami pritaikyti šį nustatymÄ…, turite iÅ¡ naujo paleisti programÄ…. Ar norite iÅ¡ naujo paleisti programÄ… dabar? + + + Allow Screen Capture + Leisti fotografuoti ekranÄ… + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + + + + Import Passkey + + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + Redaguoti Ä®rašą + + + Delete Entry + + + + Create Group + + + + Edit Group + Redaguoti GrupÄ™ + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + Kopijuoti naudotojo vardÄ… + + + Copy Password + Kopijuoti Slaptažodį + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + Importuoti KeePass1 duomenų bazÄ™ + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + Nustatyti NTVS + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + + + + ManageDatabase + + Database settings + Duomenų bazÄ—s nustatymai + + + Edit database settings + Keisti duomenų bazÄ—s nustatymus + + + Unlock database + Atrakinti duomenų bazÄ™ + + + Unlock database to show more information + Atrakinkite duomenų bazÄ™, kad bÅ«tų rodoma daugiau informacijos + + + Lock database + Užrakinti duomenų bazÄ™ + + + + ManageSession + + Disconnect + Atsijungti + + + Disconnect this application + Atjungti Å¡iÄ… programÄ… + + + Reset + Atstatyti + + + Reset any remembered decisions for this application + IÅ¡ naujo nustatyti visus įsimintus Å¡ios programos pasirinkimus + + + + Merger + + Creating missing %1 [%2] + Kuriamas trÅ«kstamas %1 [%2] + + + Relocating %1 [%2] + PerkÄ—limas į kitÄ… vietÄ… %1 [%2] + + + Overwriting %1 [%2] + PerraÅ¡ymas %1 [%2] + + + Synchronizing from newer source %1 [%2] + Sinchronizuojama iÅ¡ naujesnio Å¡altinio %1 [%2] + + + Synchronizing from older source %1 [%2] + Sinchronizuojama iÅ¡ senesnio Å¡altinio %1 [%2] + + + Deleting child %1 [%2] + Vaiko %1 trynimas [%2] + + + Deleting orphan %1 [%2] + NaÅ¡laiÄio %1 [%2] iÅ¡braukimas + + + Changed deleted objects + Pakeisti iÅ¡trinti objektai + + + Adding missing icon %1 + Pridedama trÅ«kstama piktograma %1 + + + Removed custom data %1 [%2] + PaÅ¡alinti pasirinktiniai duomenys %1 [%2] + + + Adding custom data %1 [%2] + Pasirinktinių duomenų %1 pridÄ—jimas [%2] + + + + NewDatabaseWizard + + Create a new KeePassXC database… + Sukurti naujÄ… KeePassXC duomenų bazÄ™... + + + Root + Root group + Å aknis + + + + NewDatabaseWizardPage + + WizardPage + WizardPage + + + Encryption Settings + Å ifravimo nustatymai + + + Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. + ÄŒia galite derinti duomenų bazÄ—s Å¡ifravimo nustatymus. Nesijaudinkite, vÄ—liau galÄ—site juos keisti duomenų bazÄ—s nustatymuose. + + + + NewDatabaseWizardPageDatabaseKey + + Database Credentials + Duomenų bazÄ—s Ä®galiojimai + + + A set of credentials known only to you that protects your database. + Tik jums žinomas įgaliojimų rinkinys, kuriuo apsaugoma jÅ«sų duomenų bazÄ—. + + + + NewDatabaseWizardPageEncryption + + Encryption Settings + Å ifravimo nustatymai + + + Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. + ÄŒia galite derinti duomenų bazÄ—s Å¡ifravimo nustatymus. Nesijaudinkite, vÄ—liau galÄ—site juos keisti duomenų bazÄ—s nustatymuose. + + + + NewDatabaseWizardPageMetaData + + General Database Information + Bendra duomenų bazÄ—s informacija + + + Please fill in the display name and an optional description for your new database: + Užpildykite rodomÄ… pavadinimÄ… ir pasirinktinį naujos duomenų bazÄ—s apraÅ¡ymÄ…: + + + + NixUtils + + Password Manager + Slaptažodžių TvarkyklÄ— + + + Global shortcut already registered to %1 + Visuotinis spartusis klaviÅ¡as jau užregistruotas į %1 + + + Could not register global shortcut + Nepavyko užregistruoti visuotinio sparÄiojo klaviÅ¡o + + + + OpData01 + + Invalid OpData01, does not contain header + Negalioja opData01, nÄ—ra antraÅ¡tÄ—s + + + Unable to read all IV bytes, wanted 16 but got %1 + NegalÄ—damas perskaityti visų IV baitų, norÄ—jo 16, bet gavo %1 + + + Unable to init cipher for opdata01: %1 + Nepavyko init Å¡ifro opdata01: %1 + + + Unable to read all HMAC signature bytes + Nepavyko nuskaityti visų HMAC paraÅ¡o baitų + + + Malformed OpData01 due to a failed HMAC + Netinkamai suformuotas OpData01 dÄ—l nepavykusio HMAC + + + Unable to process clearText in place + Nepavyko apdoroti clearText vietoje + + + Expected %1 bytes of clear-text, found %2 + Numatomas %1 baitas skaidraus teksto, nustatytas %2 + + + + OpVaultReader + + Directory .opvault must exist + Katalogas .opvault turi egzistuoti + + + Directory .opvault must be readable + Katalogas .opvault turi bÅ«ti skaitomas + + + Directory .opvault/default must exist + Katalogas .opvault/default turi egzistuoti + + + Directory .opvault/default must be readable + Katalogas .opvault/default turi bÅ«ti skaitomas + + + Unable to decode masterKey: %1 + Nepavyksta iššifruoti "masterKey": %1 + + + Unable to derive master key: %1 + Nepavyko iÅ¡vesti pagrindinio rakto: %1 + + + + OpenSSHKey + + Invalid key file, expecting an OpenSSH key + Neteisingas rakto failas, tikimasi OpenSSH rakto + + + PEM boundary mismatch + PEM ribos neatitikimas + + + Base64 decoding failed + Base64 dekodavimas patyrÄ— nesÄ—kmÄ™ + + + Key file way too small. + Rakto failas buvo per mažas. + + + Key file magic header id invalid + Neteisingas rakto failo magiÅ¡kosios antraÅ¡tÄ—s id + + + Found zero keys + Rasta nulis raktų + + + Failed to read public key. + Nepavyko perskaityti vieÅ¡ojo rakto. + + + Corrupted key file, reading private key failed + Sugadintas rakto failas, privaÄiojo rakto skaitymas nepavyko + + + Unsupported key type: %1 + Nepalaikomas rakto tipas: %1 + + + No private key payload to decrypt + NÄ—ra jokios privaÄiojo rakto naudingosios apkrovos, kuriÄ… iššifruoti + + + Unknown cipher: %1 + Nežinomas Å¡ifras: %1 + + + AES-256/GCM is currently not supported + AES-256/GCM Å¡iuo metu nepalaikomas + + + Passphrase is required to decrypt this key + Norint iššifruoti šį raktÄ…, reikalinga slaptafrazÄ— + + + Key derivation failed: %1 + Rakto iÅ¡vedimas nepavyko: %1 + + + Cipher IV is too short for MD5 kdf + Iv Å¡ifras yra per trumpas MD5 kdf + + + Unknown KDF: %1 + Nežinomas KDF: %1 + + + Failed to initialize cipher: %1 + Nepavyko inicializuoti Å¡ifro: %1 + + + Decryption failed: %1 + Nepavyko iššifruoti: %1 + + + Decryption failed, wrong passphrase? + Iššifravimas nepavyko, neteisinga slaptafrazÄ—? + + + Unexpected EOF while reading key + NetikÄ—tas EOF skaitymo klaviÅ¡as + + + Unsupported key part + Nepalaikoma rakto dalis + + + Unexpected EOF while reading public key + NetikÄ—ta failo pabaiga, skaitant viešąjį raktÄ… + + + Unknown key type: %1 + Nežinomas rakto tipas: %1 + + + Unexpected EOF while reading private key + NetikÄ—ta failo pabaiga, skaitant privatųjį raktÄ… + + + Can't write public key as it is empty + Nepavyksta raÅ¡yti vieÅ¡ojo rakto, nes jis tuÅ¡Äias + + + Unexpected EOF when writing public key + NetikÄ—ta failo pabaiga, raÅ¡ant viešąjį raktÄ… + + + Can't write private key as it is empty + Nepavyksta raÅ¡yti privaÄiojo rakto, nes jis tuÅ¡Äias + + + Unexpected EOF when writing private key + NetikÄ—ta failo pabaiga, raÅ¡ant privatųjį raktÄ… + + + + OpenSSHKeyGenDialog + + SSH Key Generator + + + + Type + Tipas + + + Bits + + + + Comment + Komentaras + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + + + + Export the following Passkey entries. + + + + Filenames will be generated with title and .passkey file extension. + + + + Export entries + + + + Export Selected + + + + Cancel + Atsisakyti + + + Export to folder + + + + + PasskeyExporter + + KeePassXC: Passkey Export + + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + + Cannot open file + + + + Cannot open file "%1" for writing. + + + + Cannot write to file + + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + + + + Username: %1 + + + + Group + GrupÄ— + + + Database + Duomenų bazÄ— + + + Import Passkey + + + + Import + Importuoti + + + Cancel + Atsisakyti + + + Import the following Passkey: + + + + Entry + Ä®raÅ¡as + + + Import the following Passkey to this entry: + + + + Create new entry + + + + Default Passkeys group (Imported Passkeys) + + + + Relying Party: %1 + + + + + PasskeyImporter + + Passkey file + + + + All files + Visi failai + + + Open Passkey file + + + + Cannot open file + + + + Cannot open file "%1" for reading. + + + + Cannot import Passkey + + + + Cannot import Passkey file "%1". Data is missing. + + + + Cannot import Passkey file "%1". Private key is missing or malformed. + + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + + + + + PasswordEditWidget + + Enter password: + Ä®raÅ¡ykite slaptažodį: + + + Password field + Slaptažodžio laukas + + + Confirm password: + Patvirtinkite slaptažodį: + + + Repeat password field + Slaptažodžio pakartojimo laukas + + + Password + Slaptažodis + + + Add Password + PridÄ—ti Slaptažodį + + + Change Password + Keisti Slaptažodį + + + Remove Password + PaÅ¡alinti Slaptažodį + + + Password set, click to change or remove + Slaptažodis nustatytas, spustelÄ—kite, jei norite pakeisti arba paÅ¡alinti + + + <p>A password is the primary method for securing your database.</p><p>Good passwords are long and unique. KeePassXC can generate one for you.</p> + <p>Slaptažodis yra pagrindinis bÅ«das apsaugoti jÅ«sų duomenų bazÄ™.</p><p>Geri slaptažodžiai yra ilgi ir unikalÅ«s. KeePassXC gali jį sugeneruoti už jus.</p> + + + Passwords do not match. + Slaptažodžiai nesutampa. + + + + PasswordGeneratorWidget + + Generate Password + Generuoti Slaptažodį + + + strength + Password strength + stiprumas + + + entropy + entropija + + + Generated password + Sugeneruotas slaptažodis + + + %p% + %p% + + + Regenerate password + Regeneruoti slaptažodį + + + Copy password + Kopijuoti slaptažodį + + + Password + Slaptažodis + + + &Length: + &Ilgis: + + + Password length + Slaptažodžio ilgis + + + Switch to advanced mode + Perjungti į iÅ¡plÄ—stinÄ™ veiksenÄ… + + + Advanced + IÅ¡plÄ—stiniai + + + Character Types + Simbolių tipai + + + Special characters + Specialieji simboliai + + + Quotes + KabutÄ—s + + + Punctuation + Skyryba + + + Dashes and Slashes + BrÅ«kÅ¡neliai ir pasvirieji brÅ«kÅ¡niai + + + Upper-case letters + Didžiosios raidÄ—s + + + Numbers + SkaiÄiai + + + Lower-case letters + Mažosios raidÄ—s + + + Math Symbols + Matematikos Simboliai + + + Extended ASCII + Papildomi ASCII + + + Braces + PetneÅ¡os + + + Do not include: + Neįtraukti: + + + Additional characters to use for the generated password + Papildomi simboliai, kuriuos naudoti sugeneruotam slaptažodžiui + + + Additional characters + Papildomi simboliai + + + Add non-hex letters to "do not include" list + PridÄ—kite ne Å¡eÅ¡iakampes raides į sÄ…rašą "neįtraukti" + + + Hex Passwords + Å eÅ¡iakampiai slaptažodžiai + + + Hex + Hex + + + Character set to exclude from generated password + Simbolių rinkinys, kurį reikia iÅ¡skirti iÅ¡ sugeneruoto slaptažodžio + + + Excluded characters + Neįtraukti simboliai + + + Also choose from: + Taip pat pasirinkti iÅ¡: + + + Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" + Neįtraukti simboliai: "0", "1", "l", "I", "O", "|", "ï¹’". + + + Exclude look-alike characters + PaÅ¡alinti panaÅ¡iai atrodanÄius simbolius + + + Pick characters from every group + Parinkti simbolius iÅ¡ kiekvienos grupÄ—s + + + Passphrase + SlaptafrazÄ— + + + Word Separator: + Žodžių skirtukas: + + + Wordlist: + Žodžių sÄ…raÅ¡as: + + + Word Count: + Žodžių skaiÄius: + + + Character Count: + Simbolių skaiÄius: + + + Word Case: + Žodžio atvejis: + + + Delete selected wordlist + IÅ¡trinti pasirinktÄ… žodžių sÄ…rašą + + + Add custom wordlist + PridÄ—ti pasirinktinį žodžių sÄ…rašą + + + character + simbolis + + + Close + Užverti + + + Esc + Esc + + + Apply Password + Taikyti slaptažodį + + + Regenerate password (%1) + Regeneruoti slaptažodį (%1) + + + lower case + mažosios raidÄ—s + + + UPPER CASE + DIDŽIOSIOS RAIDÄ–S + + + Title Case + Pavadinimo atvejis + + + (SYSTEM) + (SISTEMA) + + + Entropy: %1 bit + Entropija: %1 bitų + + + Password Quality: %1 + Slaptažodžio kokybÄ—: %1 + + + Poor + Password quality + Blogas + + + Weak + Password quality + Silpnas + + + Good + Password quality + Geras + + + Excellent + Password quality + Puikus + + + Confirm Delete Wordlist + Patvirtinti žodžių sÄ…raÅ¡o iÅ¡trinimÄ… + + + Do you really want to delete the wordlist "%1"? + Ar tikrai norite iÅ¡trinti žodžių sÄ…rašą "%1"? + + + Failed to delete wordlist + Nepavyko iÅ¡trinti žodžių sÄ…raÅ¡o + + + Wordlists + Žodžių sÄ…raÅ¡ai + + + All files + Visi failai + + + Select Custom Wordlist + Pasirinkite pasirinktinį žodžių sÄ…rašą + + + Overwrite Wordlist? + PerraÅ¡yti žodžių sÄ…rašą? + + + Wordlist "%1" already exists as a custom wordlist. +Do you want to overwrite it? + "Wordlist" "%1" jau egzistuoja kaip pasirinktinis žodžių sÄ…raÅ¡as. +Ar norite jį perraÅ¡yti? + + + Failed to add wordlist + Nepavyko pridÄ—ti žodžių sÄ…raÅ¡o + + + Logograms + Logogramos + + + Special Characters + SpecialÅ«s simboliai + + + + PasswordWidget + + Passwords do not match + Slaptažodžiai nesutampa + + + Passwords match so far + Kol kas slaptažodžiai sutampa + + + Toggle Password (%1) + Perjungti slaptažodį (%1) + + + Generate Password (%1) + Generuoti Slaptažodį (%1) + + + Warning: Caps Lock enabled! + Ä®spÄ—jimas: įjungtas "Caps Lock"! + + + Quality: %1 + KokybÄ—: %1 + + + Poor + Password quality + Blogas + + + Weak + Password quality + Silpnas + + + Good + Password quality + Geras + + + Excellent + Password quality + Puikus + + + Toggle password visibility using Control + H. Open the password generator using Control + G. + + + + + PickcharsDialog + + KeePassXC - Pick Characters + KeePassXC - RinkitÄ—s simbolius + + + Select characters to type, navigate with arrow keys, Ctrl + S submits. + Pasirinkite simbolius, kuriuos norite įvesti, narÅ¡ykite rodyklių klaviÅ¡ais, pateikia Ctrl + S. + + + Press &Tab between characters + Paspauskite ir tabuliuokite tarp simbolių + + + + QMessageBox + + Overwrite + PerraÅ¡yti + + + Delete + IÅ¡trinti + + + Move + Perkelti + + + Empty + TuÅ¡Äia + + + Remove + Å alinti + + + Skip + Praleisti + + + Disable + IÅ¡jungti + + + Merge + Sujungti + + + Continue + TÄ™sti + + + Continue with weak password + + + + + QObject + + Database not opened + Duomenų bazÄ— neatverta + + + Database hash not available + Duomenų bazÄ—s maiÅ¡a yra neprieinama + + + Client public key not received + Kliento vieÅ¡asis raktas negautas + + + Cannot decrypt message + Nepavyksta iššifruoti žinutÄ—s + + + Action cancelled or denied + Veiksmo atsisakyta arba jis atmestas + + + Message encryption failed. + Nepavyko užšifruoti žinutÄ—s. + + + KeePassXC association failed, try again + KeePassXC asociacija nepavyko, bandykite dar kartÄ… + + + Encryption key is not recognized + Å ifravimo raktas yra neatpažintas + + + Incorrect action + Neteisingas veiksmas + + + Empty message received + Gauta tuÅ¡Äia žinutÄ— + + + No URL provided + Nepateiktas URL + + + No logins found + Nerasta prisijungimų + + + No groups found + Nerasta jokių grupių + + + Cannot create new group + Negalima sukurti naujos grupÄ—s + + + No valid UUID provided + Nepateikiamas galiojantis UUID + + + Unknown error + Nežinoma klaida + + + Browser Integration + NarÅ¡yklÄ—s integracija + + + Browser Plugin Failure + NarÅ¡yklÄ—s plÄ—tinio gedimas + + + Could not save the native messaging script file for %1. + Nepavyko įraÅ¡yti vietinio praneÅ¡imų scenarijaus failo % 1. + + + Username for the entry. + Ä®raÅ¡o naudotojo vardas. + + + username + naudotojo vardas + + + URL for the entry. + Ä®raÅ¡o URL. + + + URL + URL + + + Notes for the entry. + Ä®raÅ¡o pastabos. + + + Notes + Pastabos + + + Prompt for the entry's password. + Klausti įraÅ¡o slaptažodžio. + + + Generate a password for the entry. + Generuoti įraÅ¡ui slaptažodį. + + + Add a new entry to a database. + PridÄ—ti naujÄ… įrašą į duomenų bazÄ™. + + + Path of the entry to add. + Ä®raÅ¡o, kurį pridÄ—ti, kelias. + + + Cannot generate a password and prompt at the same time. + Negalima generuoti slaptažodžio ir užklausos tuo paÄiu metu. + + + Could not create entry with path %1. + Nepavyko sukurti įraÅ¡o su keliu %1. + + + Enter password for new entry: + Ä®veskite naujo įraÅ¡o slaptažodį: + + + Writing the database failed %1. + RaÅ¡ymas į duomenų bazÄ™ patyrÄ— nesÄ—kmÄ™ %1. + + + Successfully added entry %1. + SÄ—kmingai pridÄ—tas įraÅ¡as %1. + + + Adds a new group to a database. + Ä® duomenų bazÄ™ įtraukia naujÄ… grupÄ™. + + + Path of the group to add. + Pridedamos grupÄ—s kelias. + + + Group %1 already exists! + GrupÄ— %1 jau egzistuoja! + + + Group %1 not found. + GrupÄ— %1 nerasta. + + + Successfully added group %1. + SÄ—kmingai pridÄ—ta grupÄ— %1. + + + Check if any passwords have been publicly leaked. FILENAME must be the path of a file listing SHA-1 hashes of leaked passwords in HIBP format, as available from https://haveibeenpwned.com/Passwords. + Patikrinkite, ar kokie nors slaptažodžiai nebuvo vieÅ¡ai nutekinti. FILENAME turi bÅ«ti failo, kuriame sha-1 pateikiamos nutekÄ—jusių slaptažodžių maiÅ¡os HIBP formatu, kelias, kaip galima iÅ¡ https://haveibeenpwned.com/Passwords. + + + FILENAME + FILENAME + + + Path to okon-cli to search a formatted HIBP file + Kelias į okon-cli ieÅ¡koti suformatuoto HIBP failo + + + okon-cli + okon-cli + + + Analyze passwords for weaknesses and problems. + Analizuoti slaptažodžius, ieÅ¡kant trÅ«kumų ir problemų. + + + Cannot find HIBP file: %1 + Nepavyko rasti HIBP failo: %1 + + + Evaluating database entries using okon… + Vertiname duomenų bazÄ—s įraÅ¡us naudojant okon... + + + Failed to open HIBP file %1: %2 + Nepavyko atidaryti HIBP failo %1: %2 + + + Evaluating database entries against HIBP file, this will take a while… + Vertiname duomenų bazÄ—s įraÅ¡us pagal HIBP failÄ…, tai užtruks... + + + Password for '%1' has been leaked %2 time(s)! + "%1" slaptažodis buvo nutekintas %2 kartus per (-ius)!"%1" slaptažodis buvo nutekintas %2 kartus per (-ius)!"%1" slaptažodis buvo nutekintas %2 kartus per (-ius)!"%1" slaptažodis buvo nutekintas %2 kartus per (-ius)! + + + Password for '%1' has been leaked! + '%1' slaptažodis buvo nutekintas! + + + Export an attachment of an entry. + Eksportuoti įraÅ¡o priedÄ…. + + + Path of the entry with the target attachment. + Ä®raÅ¡o su numatytu priedu kelias. + + + Name of the attachment to be exported. + Eksportuojamo priedo pavadinimas. + + + Path to which the attachment should be exported. + Kelias, į kurį turÄ—tų bÅ«ti eksportuojamas priedas. + + + Could not find entry with path %1. + Nepavyko rasti įraÅ¡o su keliu %1. + + + Could not find attachment with name %1. + Nepavyko rasti priedo su pavadinimu %1. + + + No export target given. Please use '--stdout' or specify an 'export-file'. + Eksporto tikslas nenurodytas. Naudokite '--stdout' arba nurodykite 'export-file'. + + + Could not open output file %1. + Nepavyko atidaryti iÅ¡vesties failo %1. + + + Successfully exported attachment %1 of entry %2 to %3. + SÄ—kmingai eksportuotas %1 įraÅ¡o %2 priedas į %3. + + + Overwrite existing attachments. + PerraÅ¡yti esamus priedus. + + + Imports an attachment to an entry. + Importuoja priedÄ… į įrašą. + + + Path of the entry. + Ä®raÅ¡o kelias. + + + Name of the attachment to be added. + Pridedamo priedo pavadinimas. + + + Path of the attachment to be imported. + Importuojamo priedo kelias. + + + Attachment %1 already exists for entry %2. + Ä®raÅ¡e %2 jau egzistuoja priedas %1. + + + Could not open attachment file %1. + Nepavyko atidaryti priedo failo %1. + + + Successfully imported attachment %1 as %2 to entry %3. + SÄ—kmingai importuotas priedas %1 kaip %2 į įrašą %3. + + + Remove an attachment of an entry. + PaÅ¡alinti įraÅ¡o priedÄ…. + + + Name of the attachment to be removed. + Å alinamo priedo pavadinimas. + + + Successfully removed attachment %1 from entry %2. + SÄ—kmingai paÅ¡alintas priedas %1 iÅ¡ įraÅ¡o %2. + + + Copy the given attribute to the clipboard. Defaults to "password" if not specified. + Don't translate "password", it refers to the attribute. + Kopijuoti nurodytÄ… atributÄ… į iÅ¡karpinÄ™. Jei nenurodyta, numatytoji reikÅ¡mÄ— yra "slaptažodis". + + + Copy the current TOTP to the clipboard (equivalent to "-a totp"). + Kopijuoti dabartinį TOTP į iÅ¡karpinÄ™ (atitinka "-a totp"). + + + Must match only one entry, otherwise a list of possible matches is shown. + Turi atitikti tik vienÄ… įrašą, prieÅ¡ingu atveju rodomas galimų atitikmenų sÄ…raÅ¡as. + + + Copy an entry's attribute to the clipboard. + Kopijuoti įraÅ¡o atributÄ… į iÅ¡karpinÄ™. + + + Path of the entry to clip. + clip = copy to clipboard + Ä®raÅ¡o, kurį iÅ¡kirpti, kelias. + + + Timeout before clearing the clipboard (default is %1 seconds, set to 0 for unlimited). + Laiko tarpas prieÅ¡ iÅ¡valant iÅ¡karpinÄ™ (numatytoji reikÅ¡mÄ— %1 sekundÄ—s, jei norite neriboto laiko, nustatykite 0). + + + Invalid timeout value %1. + Netinkama laiko tarpo reikÅ¡mÄ— %1. + + + Multiple entries matching: + Keli įraÅ¡ai atitinka: + + + Using matching entry: %1 + Naudojamas atitinkantis įraÅ¡as: %1 + + + Entry %1 not found. + Ä®raÅ¡as %1 nerastas. + + + ERROR: Please specify one of --attribute or --totp, not both. + KLAIDA: PraÅ¡ome nurodyti vienÄ… iÅ¡ --attribute arba --totp, bet ne abu. + + + Entry with path %1 has no TOTP set up. + Ä®raÅ¡e, kurio kelias %1, nenustatytas TOTP. + + + ERROR: attribute %1 is ambiguous, it matches %2. + KLAIDA: atributas %1 yra dviprasmiÅ¡kas, jis atitinka %2. + + + Attribute "%1" not found. + Atributas "%1" nerastas. + + + Entry's "%1" attribute copied to the clipboard! + Ä®raÅ¡o atributas "%1" nukopijuotas į iÅ¡karpinÄ™! + + + Clearing the clipboard in %1 second(s)... + IÅ¡karpinÄ—s iÅ¡valymas per %1 sekundÄ™ (-as)...IÅ¡karpinÄ—s iÅ¡valymas per %1 sekundÄ™ (-as)...IÅ¡karpinÄ—s iÅ¡valymas per %1 sekundÄ™ (-as)...IÅ¡karpinÄ—s iÅ¡valymas per %1 sekundÄ™ (-as)... + + + Clipboard cleared! + IÅ¡karpinÄ— iÅ¡valyta! + + + Close the currently opened database. + Uždaryti Å¡iuo metu atidarytÄ… duomenų bazÄ™. + + + Display this help. + Rodyti Å¡iÄ… pagalbÄ…. + + + Silence password prompt and other secondary outputs. + TylÄ—kite slaptažodžio raginimÄ… ir kitus antrinius išėjimus. + + + Key file of the database. + Duomenų bazÄ—s rakto failas. + + + path + kelias + + + Deactivate password key for the database. + Deaktyvuoti duomenų bazÄ—s slaptažodžio raktÄ…. + + + Yubikey slot and optional serial used to access the database (e.g., 1:7370001). + Yubikey lizdas ir neprivalomas serialas, naudojamas prieigai prie duomenų bazÄ—s (pvz., 1:7370001). + + + slot[:serial] + lizdas[:serija] + + + Missing positional argument(s). + TrÅ«ksta pozicinio (-ių) argumento (-ų). + + + Too many arguments provided. + Pateikta per daug argumentų. + + + Path of the database. + Duomenų bazÄ—s kelias. + + + Target decryption time in MS for the database. + Norimas duomenų bazÄ—s iššifravimo laikas ms. + + + time + laikas + + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + + + + Set the key file for the database. + Nustatyti duomenų bazÄ—s raktų failÄ…. + + + Set a password for the database. + Nustatyti duomenų bazÄ—s slaptažodį. + + + Create a new database. + Sukurti naujÄ… duomenų bazÄ™. + + + Invalid decryption time %1. + Netinkamas iššifravimo laikas %1. + + + Target decryption time must be between %1 and %2. + Norimas iššifravimo laikas turi bÅ«ti nuo %1 iki %2. + + + Failed to set database password. + Nepavyko nustatyti duomenų bazÄ—s slaptažodžio. + + + Loading the key file failed + Rakto failo įkÄ—limas nepavyko + + + No key is set. Aborting database creation. + Nenustatytas joks raktas. Duomenų bazÄ—s sukÅ«rimas nutraukiamas. + + + Benchmarking key derivation function for %1ms delay. + Lyginamosios analizÄ—s rakto iÅ¡vedimo funkcija % 1 ms delsai. + + + Setting %1 rounds for key derivation function. + KlaviÅ¡o iÅ¡vedimo funkcijos %1 raundų nustatymas. + + + error while setting database key derivation settings. + klaida nustatant duomenų bazÄ—s rakto iÅ¡vesties parametrus. + + + File %1 already exists. + Failas %1 jau yra. + + + Failed to save the database: %1. + Nepavyko įraÅ¡yti duomenų bazÄ—s: %1. + + + Successfully created new database. + Nauja duomenų bazÄ— sÄ—kmingai sukurta. + + + Unset the password for the database. + Panaikinti duomenų bazÄ—s slaptažodį. + + + Unset the key file for the database. + + + + Edit a database. + Redaguoti duomenų bazÄ™ + + + Cannot use %1 and %2 at the same time. + Negalima vienu metu naudoti %1 ir %2. + + + Could not change the database key. + Nepavyko pakeisti duomenų bazÄ—s rakto. + + + Database was not modified. + Duomenų bazÄ— nebuvo modifikuota. + + + Writing the database failed: %1 + Nepavyko įraÅ¡yti duomenų bazÄ—s: %1 + + + Successfully edited the database. + + + + Cannot remove password: The database does not have a password. + Negalima paÅ¡alinti slaptažodžio: Duomenų bazÄ—je nÄ—ra slaptažodžio. + + + Cannot remove file key: The database does not have a file key. + + + + Loading the new key file failed: %1 + + + + Found unexpected Key type %1 + + + + Cannot remove all the keys from a database. + Negalima paÅ¡alinti visų duomenų bazÄ—s raktų. + + + Show a database's information. + Rodyti duomenų bazÄ—s informacijÄ…. + + + UUID: + UUID: + + + Name: + Pavadinimas: + + + Description: + ApraÅ¡ymas: + + + Cipher: + Å ifras: + + + KDF: + KDF: + + + Recycle bin is enabled. + Å iukÅ¡liadėžė yra įjungta. + + + Recycle bin is not enabled. + Å iukÅ¡liadėžė nÄ—ra įjungta. + + + Location + Vieta + + + Database created + Duomenų bazÄ— sukurta + + + Last saved + Paskutinį kartÄ… iÅ¡saugota + + + Unsaved changes + NeiÅ¡saugoti pakeitimai + + + yes + taip + + + no + ne + + + Number of groups + Grupių skaiÄius + + + Number of entries + Ä®rašų skaiÄius + + + Number of expired entries + NebegaliojanÄių įrašų skaiÄius + + + Unique passwords + UnikalÅ«s slaptažodžiai + + + Non-unique passwords + Pasikartojantys slaptažodžiai + + + Maximum password reuse + Maksimalus pakartotinis slaptažodžio naudojimas + + + Number of short passwords + Trumpų slaptažodžių skaiÄius + + + Number of weak passwords + Silpnų slaptažodžių skaiÄius + + + Entries excluded from reports + Ä®raÅ¡ai, neįtraukti į ataskaitas + + + Average password length + Vidutinis slaptažodžio ilgis + + + %1 characters + %1 simboliai + + + Word count for the diceware passphrase. + Žodžių skaiÄius kauliukų slaptafrazei. + + + count + CLI parameter + kiekis + + + Wordlist for the diceware generator. +[Default: EFF English] + Kauliukų generatorius Wordlist. +[Numatytasis nustatymas: EŽF anglų k.] + + + Generate a new random diceware passphrase. + Sukurkite naujÄ… atsitiktinÄ™ kauliukų programų slaptafrazÄ™. + + + Invalid word count %1 + Neteisingas žodžių skaiÄius %1 + + + The word list is too small (< 1000 items) + Žodžių sÄ…raÅ¡as per mažas (< 1000 items) + + + Title for the entry. + Ä®raÅ¡o pavadinimas. + + + title + antraÅ¡tÄ— + + + Edit an entry. + Taisyti įrašą. + + + Path of the entry to edit. + Ä®raÅ¡o, kurį taisyti, kelias. + + + Not changing any field for entry %1. + Nekeisti jokio įraÅ¡o %1 lauko. + + + Enter new password for entry: + Ä®veskite naujÄ… slaptažodį įraÅ¡ui: + + + Successfully edited entry %1. + SÄ—kmingai redaguotas įraÅ¡as %1. + + + Perform advanced analysis on the password. + Atlikti iÅ¡plÄ—stinÄ™ slaptažodžio analizÄ™ + + + Password for which to estimate the entropy. + Slaptažodis, kurio entropijÄ… apskaiÄiuoti + + + Estimate the entropy of a password. + ApskaiÄiuoti slaptažodžio entropijÄ…. + + + Length %1 + Ilgis %1 + + + Entropy %1 + Entropija %1 + + + Log10 %1 + Log10 %1 + + + Multi-word extra bits %1 + Kelių žodžių papildomi bitai %1 + + + Type: Bruteforce + Tipas: Bruteforce + + + Type: Dictionary + Tipas: Žodynas + + + Type: Dict+Leet + Tipas: Diktas + Leetas + + + Type: User Words + Tipas: Vartotojo žodžiai + + + Type: User+Leet + Tipas: Naudotojas + Leet + + + Type: Repeated + Tipas:Kartotinis + + + Type: Sequence + Tipas: Seka + + + Type: Spatial + Tipas: Erdvinis + + + Type: Date + Tipas: Data + + + Type: Bruteforce(Rep) + Tipas: Bruteforce(Rep) + + + Type: Dictionary(Rep) + Tipas: Žodynas(Rep) + + + Type: Dict+Leet(Rep) + Tipas: Dict + Leet (Rep) + + + Type: User Words(Rep) + Tipas: Vartotojo žodžiai (Rep) + + + Type: User+Leet(Rep) + Tipas: User+Leet(Rep) + + + Type: Repeated(Rep) + Tipas:Kartotinis(Rep) + + + Type: Sequence(Rep) + Tipas: Seka(Rep) + + + Type: Spatial(Rep) + Tipas:Erdvinis(Rep) + + + Type: Date(Rep) + Tipas: Data (Rep) + + + Type: Unknown (%1) + Tipas: Nežinomas (%1) + + + Entropy %1 (%2) + Entropija %1 (%2) + + + *** Password length (%1) != sum of length of parts (%2) *** + Slaptažodžio ilgis (%1) != dalių ilgio suma (%2) *** + + + Exit interactive mode. + IÅ¡eikite iÅ¡ interaktyvaus režimo. + + + Format to use when exporting. Available choices are 'xml' or 'csv'. Defaults to 'xml'. + Formatas, kurį naudoti eksportuojant. Galima pasirinkti 'xml' arba 'csv'. Numatytasis yra 'xml'. + + + Exports the content of a database to standard output in the specified format. + Eksportuoja duomenų bazÄ—s turinį į standartinÄ™ iÅ¡vestį nurodytu formatu. + + + Unable to export database to XML: %1 + Nepavyko eksportuoti duomenų bazÄ—s į XML: %1 + + + Unsupported format %1 + Nepalaikomas formatas %1 + + + Length of the generated password + Sugeneruoto slaptažodžio ilgis + + + length + ilgis + + + Use lowercase characters + Naudoti mažąsias raides + + + Use uppercase characters + Naudoti didžiÄ…sias raides + + + Use numbers + Naudoti skaiÄius + + + Use special characters + Naudoti specialius simbolius + + + Use extended ASCII + Naudoti iÅ¡plÄ—stinį ASCII + + + Exclude character set + Neįtraukti simbolių rinkinio + + + chars + ženklai + + + Use custom character set + Naudoti pasirinktinį simbolių rinkinį + + + Exclude similar looking characters + Neįtraukti panaÅ¡iai atrodanÄių simbolių + + + Include characters from every selected group + Ä®traukti kiekvienos pasirinktos grupÄ—s simbolius + + + Generate a new random password. + Generuoti naujÄ… atsitiktinį slaptažodį. + + + Invalid password length %1 + Netinkamas slaptažodžio ilgis %1 + + + Invalid password generator after applying all options + Netinkamas slaptažodžių generatorius pritaikius visas parinktis + + + Display command help. + Rodyti komandų pagalbÄ…. + + + Available commands: + Galimos komandos: + + + Import the contents of an XML database. + Importuoti XML duomenų bazÄ—s turinį. + + + Path of the XML database export. + XML duomenų bazÄ—s eksporto kelias. + + + Path of the new database. + Naujos duomenų bazÄ—s kelias. + + + Unable to import XML database: %1 + Nepavyko importuoti XML duomenų bazÄ—s: %1 + + + Successfully imported database. + SÄ—kmingai importuota duomenų bazÄ—. + + + Unknown command %1 + Nežinoma komanda %1 + + + + +Available commands: + + + +Prieinamos komandos: + + + + Name of the command to execute. + Komandos, kuriÄ… vykdyti, pavadinimas. + + + Displays debugging information. + Rodo derinimo informacijÄ…. + + + Invalid command %1. + Netinkama komanda %1. + + + Recursively list the elements of the group. + Rekursyviai iÅ¡vardyti grupÄ—s elementus. + + + Flattens the output to single lines. + Sulygina iÅ¡vestį iki vienų eiluÄių. + + + List database entries. + IÅ¡vardyti duomenų bazÄ—s įraÅ¡us. + + + Path of the group to list. Default is / + GrupÄ—s, kuriÄ… iÅ¡vardyti, kelias. Numatytasis yra / + + + Cannot find group %1. + Nepavyksta rasti grupÄ—s %1. + + + Use the same credentials for both database files. + Abiems duomenų bazių failams naudoti tuos paÄius prisijungimo duomenis. + + + Key file of the database to merge from. + Duomenų bazÄ—s, iÅ¡ kurios sulieti, rakto failas. + + + Deactivate password key for the database to merge from. + Deaktyvuokite duomenų bazÄ—s slaptažodžio raktÄ…, iÅ¡ kurio bus atliekamas sujungimas. + + + Only print the changes detected by the merge operation. + RaÅ¡yti tik tuos pakeitimus, kurie buvo aptikti atliekant sujungimo operacijÄ…. + + + Yubikey slot for the second database. + Yubikey lizdas antrajai duomenų bazei. + + + slot + Lizdas + + + Merge two databases. + Sulieti dvi duomenų bazes. + + + Path of the database to merge from. + Duomenų bazÄ—s, iÅ¡ kurios sulieti, kelias. + + + Error reading merge file: +%1 + Klaida skaitant sujungimo failÄ…: +%1 + + + Unable to save database to file : %1 + Nepavyko įraÅ¡yti duomenų bazÄ™ į failÄ… : %1 + + + Successfully merged %1 into %2. + SÄ—kmingai prijungtas %1 prie %2. + + + Database was not modified by merge operation. + Duomenų bazÄ— nebuvo pakeista atliekant sujungimo operacijÄ…. + + + Moves an entry to a new group. + Perkelia įrašą į naujÄ… grupÄ™. + + + Path of the entry to move. + Perkeliamo įraÅ¡o kelias. + + + Path of the destination group. + Paskirtos grupÄ—s kelias. + + + Could not find group with path %1. + Nepavyko rasti grupÄ—s su keliu %1. + + + Entry is already in group %1. + Ä®raÅ¡as jau yra grupÄ—je %1. + + + Successfully moved entry %1 to group %2. + Ä®raÅ¡as %1 sÄ—kmingai perkeltas į grupÄ™ %2. + + + Open a database. + Atidaryti duomenų bazÄ™. + + + Path of the entry to remove. + Ä®raÅ¡o, kurį Å¡alinti, kelias. + + + Unable to save database to file: %1 + Nepavyko įraÅ¡yti duomenų bazÄ™ į failÄ…: %1 + + + Successfully recycled entry %1. + SÄ—kmingai perdirbtas įvežimas %1. + + + Successfully deleted entry %1. + SÄ—kmingai iÅ¡trintas įraÅ¡as %1. + + + Path of the group to remove. + Å alinamos grupÄ—s kelias. + + + Cannot remove root group from database. + Negalima paÅ¡alinti Å¡akninÄ—s grupÄ—s iÅ¡ duomenų bazÄ—s. + + + Successfully recycled group %1. + SÄ—kmingai perdirbta grupÄ— %1. + + + Successfully deleted group %1. + SÄ—kmingai paÅ¡alinta grupÄ— %1. + + + Find entries quickly. + Greitai rasti įraÅ¡us. + + + Search term. + PaieÅ¡kos žodis. + + + Show the entry's current TOTP. + Rodyti dabartinį įraÅ¡o TOTP. + + + Show the protected attributes in clear text. + Rodyti saugomus atributus atviru tekstu. + + + Show all the attributes of the entry. + Rodyti visus įraÅ¡o atributus. + + + Show the attachments of the entry. + Rodyti įraÅ¡o priedus. + + + Names of the attributes to show. This option can be specified more than once, with each attribute shown one-per-line in the given order. If no attributes are specified, a summary of the default attributes is given. + Požymių, kuriuos rodyti, pavadinimai. Å i parinktis gali bÅ«ti nurodyta daugiau nei vienÄ… kartÄ…, kiekvienoje eilutÄ—je nurodyta tvarka rodant po atskirÄ… požymį. Jei nÄ—ra nurodyti jokie požymiai, bus nurodyta numatytųjų požymių santrauka. + + + attribute + požymis + + + Show an entry's information. + Rodyti įraÅ¡o informacijÄ…. + + + Name of the entry to show. + Ä®raÅ¡o, kurį rodyti, pavadinimas. + + + ERROR: unknown attribute %1. + KLAIDA: nežinomas požymis %1. + + + No attachments present. + NÄ—ra jokių priedų. + + + Attachments: + Priedai: + + + Failed to open database file %1: not found + Nepavyko atidaryti duomenų bazÄ—s failo %1: nerastas + + + Failed to open database file %1: not a plain file + Nepavyko atidaryti duomenų bazÄ—s failo %1: ne paprastas failas + + + Failed to open database file %1: not readable + Nepavyko atidaryti duomenų bazÄ—s failo %1: neperskaitomas + + + Enter password to unlock %1: + Ä®veskite slaptažodį, kad atrakintumÄ—te %1: + + + Failed to load key file %1: %2 + Nepavyko įkelti rakto failo %1: %2 + + + WARNING: You are using an old key file format which KeePassXC may +stop supporting in the future. + +Please consider generating a new key file. + Ä®SPÄ–JIMAS: JÅ«s naudojate senÄ… rakto failo formatÄ…, kurio KeePassXC gali +ateityje nebepalaikyti. + +Apsvarstykite galimybÄ™ sukurti naujÄ… rakto failÄ…. + + + Invalid YubiKey slot %1 + Neteisingas YubiKey lizdas %1 + + + Invalid YubiKey serial %1 + Neteisingas YubiKey serijos %1 + + + Please present or touch your YubiKey to continue. + NorÄ—dami tÄ™sti, pristatykite arba palieskite savo YubiKey. + + + Enter password to encrypt database (optional): + Ä®veskite slaptažodį duomenų bazei Å¡ifruoti (neprivaloma): + + + Do you want to create a database with an empty password? [y/N]: + Ar norite sukurti duomenų bazÄ™ su tuÅ¡Äiu slaptažodžiu? [y/N]: + + + Repeat password: + Pakartokite slaptažodį: + + + Error: Passwords do not match. + Klaida: slaptažodžiai nesutampa. + + + No program defined for clipboard manipulation + NÄ—ra nustatytos programos, skirtos darbui su iÅ¡karpine + + + All clipping programs failed. Tried %1 + + Visos iÅ¡karpų programos nepavyko. BandÄ— %1 + + + Creating KeyFile %1 failed: %2 + Nepavyko sukurti rakto failo %1: %2 + + + Loading KeyFile %1 failed: %2 + Nepavyko įkelti raktų failo %1: %2 + + + HIBP file, line %1: parse error + HIBP failas, eilutÄ— %1: analizÄ—s klaida + + + To use okon, you must provide a post-processed file (e.g. file.okon) + NorÄ—dami naudoti okon, turite pateikti failÄ… po apdorojimo (pvz., file.okon) + + + Could not start okon process: %1 + Nepavyko pradÄ—ti okono proceso: %1 + + + Error: okon process did not finish + Klaida: okono procesas nebaigÄ— + + + Failed to load okon processed database: %1 + Nepavyko įkelti okon apdorotos duomenų bazÄ—s: %1 + + + Very weak password + Labai silpnas slaptažodis + + + Password entropy is %1 bits + Slaptažodžio entropija yra %1 bitų + + + Weak password + Silpnas slaptažodis + + + Used in %1/%2 + Naudojamas %1/%2 + + + Password is used %1 time(s) + Slaptažodis naudojamas %1 kartÄ… (-ius)Slaptažodis naudojamas %1 kartÄ… (-ius)Slaptažodis naudojamas %1 kartÄ… (-ius)Slaptažodis naudojamas %1 kartÄ… (-ius) + + + Password has expired + Slaptažodis nebegalioja + + + Password expiry was %1 + Slaptažodžio galiojimo laikas buvo %1 + + + Password expires on %1 + Slaptažodžio galiojimo laikas baigiasi %1 + + + Password is about to expire + Netrukus baigsis slaptažodžio galiojimo laikas + + + Password expires in %1 day(s) + Slaptažodžio galiojimas baigiasi per %1 dienÄ… (-as)Slaptažodžio galiojimas baigiasi per %1 dienÄ… (-as)Slaptažodžio galiojimas baigiasi per %1 dienÄ… (-as)Slaptažodžio galiojimas baigiasi per %1 dienÄ… (-as) + + + Password will expire soon + Slaptažodis netrukus nustos galioti + + + Version %1 + Versija %1 + + + Build Type: %1 + Darinio tipas: %1 + + + Revision: %1 + Revizija: %1 + + + Distribution: %1 + Platinimas: %1 + + + Debugging mode is disabled. + Derinimo režimas yra iÅ¡jungtas. + + + Debugging mode is enabled. + Ä®jungtas derinimo režimas. + + + Operating system: %1 +CPU architecture: %2 +Kernel: %3 %4 + OperacinÄ— sistema: %1 +Procesoriaus architektÅ«ra: %2 +Branduolys: %3 %4 + + + Auto-Type + Automatinis rinkimas + + + SSH Agent + SSH agentas + + + KeeShare + KeeShare + + + YubiKey + YubiKey + + + Quick Unlock + Greitas atrakinimas + + + Secret Service Integration + Slaptosios tarnybos integracija + + + None + NÄ—ra + + + Enabled extensions: + Ä®jungti plÄ—tiniai: + + + over %1 year(s) + per %1 metus (-us)per %1 metus (-us)per %1 metus (-us)per %1 metus (-us) + + + about %1 month(s) + apie %1 mÄ—nesį (-ius)apie %1 mÄ—nesį (-ius)apie %1 mÄ—nesį (-ius)apie %1 mÄ—nesį (-ius) + + + %1 week(s) + %1 savaitÄ— (-Ä—s)%1 savaitÄ— (-Ä—s)%1 savaitÄ— (-Ä—s)%1 savaitÄ— (-Ä—s) + + + %1 day(s) + %1 diena (-os)%1 diena (-os)%1 diena (-os)%1 diena (-os) + + + %1 hour(s) + %1 val.%1 val.%1 val.%1 val. + + + %1 minute(s) + %1 minutÄ— (-os)%1 minutÄ— (-os)%1 minutÄ— (-os)%1 minutÄ— (-os) + + + Botan library must be at least %1, found %2.%3.%4 + + + + Cryptographic libraries: + KriptografinÄ—s bibliotekos: + + + AES (%1 rounds) + AES (%1 raundai) + + + Argon2%1 (%2 rounds, %3 KB) + Argon2%1 (%2 raundai, %3 KB) + + + SymmetricCipher::init: Invalid cipher mode. + SymmetricCipher::init: Neteisingas Å¡ifro režimas. + + + SymmetricCipher::init: Invalid IV size of %1 for %2. + SymmetricCipher::init: Negaliojantis IV dydis %1, kai %2. + + + Cipher not initialized prior to use. + Å ifras prieÅ¡ naudojimÄ… nebuvo inicijuotas. + + + Cannot process 0 length data. + Negalima apdoroti 0 ilgio duomenų. + + + unknown executable (DBus address %1) + nežinomas vykdomasis failas (DBus adresas %1) + + + %1 (invalid executable path) + %1 (neteisingas vykdomasis kelias) + + + NULL device + NIEKINIS įrenginys + + + error reading from device + klaida skaitant iÅ¡ įrenginio + + + file empty + failas tuÅ¡Äias + + + malformed string + netaisyklinga eilutÄ— + + + missing closing quote + trÅ«ksta užveriamosios kabutÄ—s + + + %1: (row, col) %2,%3 + %1: (eil., stulp.) %2,%3 + + + AES 256-bit + AES 256 bitų + + + Twofish 256-bit + Dvi žuvys 256 bitų + + + ChaCha20 256-bit + ChaCha20 256 bitų + + + Argon2d (KDBX 4 – recommended) + Argon2d (KDBX 4 – rekomenduojama) + + + Argon2id (KDBX 4) + Argon2id (KDBX 4) + + + AES-KDF (KDBX 4) + AES-KDF (KDBX 4) + + + AES-KDF (KDBX 3) + AES-KDF (KDBX 3) + + + Existing single-instance lock file is invalid. Launching new instance. + Esamas vieno egzemplioriaus užrakto failas yra neteisingas. Paleidžiamas naujas egzempliorius. + + + The lock file could not be created. Single-instance mode disabled. + Nepavyko sukurti užrakto. Vieno egzemplioriaus veiksena iÅ¡jungta. + + + Clearing the clipboard in %1 second(s)… + IÅ¡karpinÄ—s iÅ¡valymas per %1 sekundÄ™ (-as)...IÅ¡karpinÄ—s iÅ¡valymas per %1 sekundÄ™ (-as)...IÅ¡karpinÄ—s iÅ¡valymas per %1 sekundÄ™ (-as)...IÅ¡karpinÄ—s iÅ¡valymas per %1 sekundÄ™ (-as)... + + + Group + GrupÄ— + + + Title + AntraÅ¡tÄ— + + + Username + Naudotojo vardas + + + Password + Slaptažodis + + + TOTP + TOTP + + + Icon + Piktograma + + + Last Modified + Paskutinis keitimas + + + Created + Sukurta + + + Benchmark %1 delay + Palyginti %1 vÄ—lavimÄ… + + + %1 ms + milliseconds + %1 ms%1 ms%1 ms%1 ms + + + %1 s + seconds + %1 s%1 s%1 s%1 s + + + Do you really want to delete the entry "%1" for good? + Ar tikrai norite visam laikui iÅ¡trinti įrašą "%1"? + + + Do you really want to delete %n entry(s) for good? + Ar tikrai norite visam laikui iÅ¡trinti %n įrašą (-us)?Ar tikrai norite visam laikui iÅ¡trinti %n įrašą (-us)?Ar tikrai norite visam laikui iÅ¡trinti %n įrašą (-us)?Ar tikrai norite visam laikui iÅ¡trinti %n įrašą (-us)? + + + Delete entry(s)? + IÅ¡trinti įrašą (-us)?IÅ¡trinti įrašą (-us)?IÅ¡trinti įrašą (-us)?IÅ¡trinti įrašą (-us)? + + + Do you really want to move entry "%1" to the recycle bin? + Ar tikrai norite perkelti įrašą "%1" į Å¡iukÅ¡liadėžę? + + + Do you really want to move %n entry(s) to the recycle bin? + Ar tikrai norite perkelti %n įrašą (-us) į Å¡iukÅ¡liadėžę?Ar tikrai norite perkelti %n įrašą (-us) į Å¡iukÅ¡liadėžę?Ar tikrai norite perkelti %n įrašą (-us) į Å¡iukÅ¡liadėžę?Ar tikrai norite perkelti %n įrašą (-us) į Å¡iukÅ¡liadėžę? + + + Move entry(s) to recycle bin? + Perkelti įrašą (-us) į Å¡iukÅ¡liadėžę?Perkelti įrašą (-us) į Å¡iukÅ¡liadėžę?Perkelti įrašą (-us) į Å¡iukÅ¡liadėžę?Perkelti įrašą (-us) į Å¡iukÅ¡liadėžę? + + + Replace references to entry? + Pakeisti nuorodas į įrašą? + + + Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? + Ä®raÅ¡as "%1" turi %2 nuorodÄ… (-as). Ar norite perraÅ¡yti nuorodas reikÅ¡mÄ—mis, praleisti šį įrašą ar vis tiek iÅ¡trinti?Ä®raÅ¡as "%1" turi %2 nuorodÄ… (-as). Ar norite perraÅ¡yti nuorodas reikÅ¡mÄ—mis, praleisti šį įrašą ar vis tiek iÅ¡trinti?Ä®raÅ¡as "%1" turi %2 nuorodÄ… (-as). Ar norite perraÅ¡yti nuorodas reikÅ¡mÄ—mis, praleisti šį įrašą ar vis tiek iÅ¡trinti?Ä®raÅ¡as "%1" turi %2 nuorodÄ… (-as). Ar norite perraÅ¡yti nuorodas reikÅ¡mÄ—mis, praleisti šį įrašą ar vis tiek iÅ¡trinti? + + + User name + Naudotojo vardas + + + Browser Statistics + NarÅ¡yklÄ—s statistika + + + Health Check + BÅ«klÄ—s patikrinimas + + + HIBP + HIBP (angl. + + + Statistics + Statistika + + + Unsupported key file version: %1 + Nepalaikoma rakto failo versija: %1 + + + Checksum mismatch! Key file may be corrupt. + KontrolinÄ—s sumos nesutapimas! Rakto failas gali bÅ«ti sugadintas. + + + Unexpected key file data! Key file may be corrupt. + NetikÄ—ti rakto failo duomenys! Rakto failas gali bÅ«ti sugadintas. + + + KeePassXC - cross-platform password manager + KeePassXC - daugiaplatformÄ— slaptažodžių tvarkytuvÄ— + + + filenames of the password databases to open (*.kdbx) + norimų atverti slaptažodžių duomenų bazių failų pavadinimai (*.kdbx) + + + path to a custom config file + kelias į tinkintÄ… konfigÅ«racijos failÄ… + + + path to a custom local config file + kelias į pasirinktinį vietinį konfigÅ«racijos failÄ… + + + lock all open databases + užrakinti visas atidarytas duomenų bazes + + + key file of the database + duomenų bazÄ—s rakto failas + + + read password of the database from stdin + nuskaityti duomenų bazÄ—s slaptažodį iÅ¡ stdin + + + Locked databases. + Užrakintos duomenų bazÄ—s. + + + Database failed to lock. + Duomenų bazÄ—s nepavyko užrakinti. + + + Another instance of KeePassXC is already running. + Jau yra paleistas kitas KeePassXC egzempliorius. + + + KeePassXC is not running. No open database to lock + KeePassXC nÄ—ra įjungtas. NÄ—ra atviros duomenų bazÄ—s, kuriÄ… bÅ«tų galima užrakinti + + + Fatal error while testing the cryptographic functions. + Lemtingoji klaida, testuojant Å¡ifravimo funkcijas. + + + KeePassXC - Error + KeePassXC - Klaida + + + Database password: + Duomenų bazÄ—s slaptažodis: + + + Invalid Settings + TOTP + Neteisingi nustatymai + + + Invalid Key + TOTP + Neteisingas raktas + + + Failed to create Windows Hello credential. + Nepavyko sukurti "Windows Hello" kredencialų. + + + Failed to sign challenge using Windows Hello. + Nepavyko pasiraÅ¡yti iššūkio naudojant "Windows Hello". + + + Warning: Failed to block screenshot capture on a top-level window. + + + + Invalid Cipher + Netinkamas Å¡ifras + + + Invalid KDF + Netinkamas KDF + + + Access to all entries is denied + + + + allow screenshots and app recording (Windows/macOS) + + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + + + + Credential is excluded + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Passkeys + + + + AES initialization failed + + + + AES encrypt failed + + + + Failed to store in Linux Keyring + + + + Polkit returned an error: %1 + + + + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + + + + Failed to init KeePassXC crypto. + + + + Failed to encrypt key data. + Nepavyko užšifruoti rakto duomenų. + + + Failed to get Windows Hello credential. + + + + Failed to decrypt key data. + Nepavyko iššifruoti rakto duomenų. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length + + + + + QtIOCompressor + + Internal zlib error when compressing: + VidinÄ— zlib klaida, glaudinant: + + + Error writing to underlying device: + Klaida, įraÅ¡ant į bazinį įrenginį: + + + Error opening underlying device: + Klaida, atveriant bazinį įrenginį: + + + Error reading data from underlying device: + Klaida, skaitant iÅ¡ bazinio įrenginio: + + + Internal zlib error when decompressing: + VidinÄ— zlib klaida, iÅ¡skleidžiant: + + + + QtIOCompressor::open + + The gzip format not supported in this version of zlib. + Å ioje zlib versijoje gzip formatas yra nepalaikomas. + + + Internal zlib error: + VidinÄ— zlib klaida: + + + + ReportsWidgetBrowserStatistics + + Double-click entries to edit. + Norint redaguoti įraÅ¡us, dukart spustelÄ—kite juos. + + + List of entry URLs + Ä®rašų URL adresų sÄ…raÅ¡as + + + Entry has no URLs set + Ä®raÅ¡e nÄ—ra nustatytų URL adresų + + + Allowed URLs + Leidžiami URL adresai + + + Entry has no Browser Integration settings + Ä®raÅ¡e nÄ—ra narÅ¡yklÄ—s integracijos nustatymų + + + Denied URLs + Uždrausti URL adresai + + + (Excluded) + (IÅ¡skirtas) + + + This entry is being excluded from reports + Å is įraÅ¡as neįtraukiamas į ataskaitas + + + Please wait, browser statistics is being calculated… + PraÅ¡ome palaukti, skaiÄiuojama narÅ¡yklÄ—s statistika... + + + No entries with a URL, or none has browser extension settings saved. + NÄ—ra įrašų su URL adresu arba nÄ— viename iÅ¡ jų nÄ—ra iÅ¡saugotų narÅ¡yklÄ—s plÄ—tinio nustatymų. + + + Title + AntraÅ¡tÄ— + + + Path + Kelias + + + URLs + URL adresai + + + Edit Entry… + Redaguoti Ä®rašą... + + + Delete Entry(s)… + IÅ¡trinti įrašą (-us)...IÅ¡trinti įrašą (-us)...IÅ¡trinti įrašą (-us)...IÅ¡trinti įrašą (-us)... + + + Exclude from reports + Neįtraukti į ataskaitas + + + Only show entries that have a URL + + + + Only show entries that have been explicitly allowed or denied + + + + Show expired entries + + + + (Expired) + + + + + ReportsWidgetHealthcheck + + Hover over reason to show additional details. Double-click entries to edit. + Užveskite pelÄ—s žymeklį virÅ¡ priežasties, kad parodytumÄ—te papildomÄ… informacijÄ…. Dukart spustelÄ—kite įraÅ¡us, kuriuos norite redaguoti. + + + Bad + Password quality + Blogas + + + Bad — password must be changed + Blogas - slaptažodis turi bÅ«ti pakeistas + + + Poor + Password quality + Blogas + + + Poor — password should be changed + Prastas — slaptažodis turÄ—tų bÅ«ti pakeistas + + + Weak + Password quality + Silpnas + + + Weak — consider changing the password + Silpnas — apsvarstykite galimybÄ™ pakeisti slaptažodį + + + (Excluded) + (IÅ¡skirtas) + + + This entry is being excluded from reports + Å is įraÅ¡as neįtraukiamas į ataskaitas + + + Please wait, health data is being calculated… + Palaukite, sveikatos duomenys skaiÄiuojami... + + + Congratulations, everything is healthy! + Sveikiname, viskas sveika! + + + Title + AntraÅ¡tÄ— + + + Path + Kelias + + + Score + Vertinimas pagal + + + Reason + Priežastis + + + Edit Entry… + Redaguoti Ä®rašą... + + + Delete Entry(s)… + IÅ¡trinti įrašą (-us)...IÅ¡trinti įrašą (-us)...IÅ¡trinti įrašą (-us)...IÅ¡trinti įrašą (-us)... + + + Exclude from reports + Neįtraukti į ataskaitas + + + Show expired entries + + + + Show entries that have been excluded from reports + + + + (Expired) + + + + + ReportsWidgetHibp + + CAUTION: This report requires sending information to the Have I Been Pwned online service (https://haveibeenpwned.com). If you proceed, your database passwords will be cryptographically hashed and the first five characters of those hashes will be sent securely to this service. Your database remains secure and cannot be reconstituted from this information. However, the number of passwords you send and your IP address will be exposed to this service. + ATSARGIAI: Å ioje ataskaitoje reikalaujama siųsti informacijÄ… į internetinÄ™ paslaugÄ… "Have I Been Pwned" (https://haveibeenpwned.com). Jei tÄ™site, jÅ«sų duomenų bazÄ—s slaptažodžiai bus kriptografiÅ¡kai maiÅ¡omi, o pirmieji penki Å¡ių maišų simboliai bus saugiai iÅ¡siųsti į Å¡iÄ… paslaugÄ…. JÅ«sų duomenų bazÄ— iÅ¡lieka saugi ir jos negalima atkurti iÅ¡ Å¡ios informacijos. TaÄiau Å¡i paslauga bus taikoma jÅ«sų siunÄiamų slaptažodžių skaiÄiui ir jÅ«sų IP adresui. + + + Perform Online Analysis + Atlikite internetinÄ™ analizÄ™ + + + Also show entries that have been excluded from reports + Taip pat rodyti įraÅ¡us, kurie nebuvo įtraukti į ataskaitas + + + This build of KeePassXC does not have network functions. Networking is required to check your passwords against Have I Been Pwned databases. + Å i "KeePassXC" versija neturi tinklo funkcijų. Norint patikrinti savo slaptažodžius pagal "Have I Been Pwned" duomenų bazes, reikalingas tinklas. + + + Congratulations, no exposed passwords! + Sveikiname, nÄ—ra atskleistų slaptažodžių! + + + Title + AntraÅ¡tÄ— + + + Path + Kelias + + + Password exposed… + Slaptažodis atskleistas... + + + (Excluded) + (IÅ¡skirtas) + + + This entry is being excluded from reports + Å is įraÅ¡as neįtraukiamas į ataskaitas + + + once + Password exposure amount + kartÄ… + + + up to 10 times + Password exposure amount + iki 10 kartų + + + up to 100 times + Password exposure amount + iki 100 kartų + + + up to 1000 times + Password exposure amount + iki 1000 kartų + + + up to 10,000 times + Password exposure amount + iki 10,000 kartų + + + up to 100,000 times + Password exposure amount + iki 100,000 kartų + + + up to a million times + Password exposure amount + iki milijono kartų + + + millions of times + Password exposure amount + milijonus kartų + + + Edit Entry… + Redaguoti Ä®rašą... + + + Delete Entry(s)… + IÅ¡trinti įrašą (-us)...IÅ¡trinti įrašą (-us)...IÅ¡trinti įrašą (-us)...IÅ¡trinti įrašą (-us)... + + + Exclude from reports + Neįtraukti į ataskaitas + + + + ReportsWidgetPasskeys + + Export + Eksportuoti + + + Import + Importuoti + + + List of entry URLs + Ä®raÅ¡o URL adresų sÄ…raÅ¡as + + + Please wait, list of entries with Passkeys is being updated… + + + + No entries with Passkeys. + + + + Title + AntraÅ¡tÄ— + + + Path + Kelias + + + Username + Naudotojo vardas + + + URLs + URL adresai + + + Edit Entry… + Redaguoti Ä®rašą... + + + Delete Entry(s)… + IÅ¡trinti įrašą...IÅ¡trinti įraÅ¡usIÅ¡trinti įraÅ¡usIÅ¡trinti įraÅ¡us + + + Relying Party + + + + Show expired entries + + + + (Expired) + + + + + ReportsWidgetStatistics + + Hover over lines with error icons for further information. + NorÄ—dami gauti daugiau informacijos, užveskite pelÄ—s žymeklį ant eiluÄių su klaidų piktogramomis. + + + Name + Pavadinimas + + + Value + ReikÅ¡mÄ— + + + Please wait, database statistics are being calculated… + Palaukite, skaiÄiuojami duomenų bazÄ—s statistiniai duomenys... + + + Database name + Duomenų bazÄ—s pavadinimas + + + Description + ApraÅ¡ymas + + + Location + Vieta + + + Database created + Duomenų bazÄ— sukurta + + + Last saved + Paskutinį kartÄ… iÅ¡saugota + + + Unsaved changes + NeiÅ¡saugoti pakeitimai + + + yes + taip + + + no + ne + + + The database was modified, but the changes have not yet been saved to disk. + Duomenų bazÄ— buvo pakeista, taÄiau pakeitimai dar neįraÅ¡yti į diskÄ…. + + + Number of groups + Grupių skaiÄius + + + Number of entries + Ä®rašų skaiÄius + + + Number of expired entries + NebegaliojanÄių įrašų skaiÄius + + + The database contains entries that have expired. + Duomenų bazÄ—je yra įrašų, kurių galiojimo laikas pasibaigÄ™s. + + + Unique passwords + UnikalÅ«s slaptažodžiai + + + Non-unique passwords + Pasikartojantys slaptažodžiai + + + More than 10% of passwords are reused. Use unique passwords when possible. + Daugiau nei 10% slaptažodžių naudojami pakartotinai. Jei įmanoma, naudokite unikalius slaptažodžius. + + + Maximum password reuse + Maksimalus pakartotinis slaptažodžio naudojimas + + + Some passwords are used more than three times. Use unique passwords when possible. + Kai kurie slaptažodžiai naudojami daugiau nei tris kartus. Jei įmanoma, naudokite unikalius slaptažodžius. + + + Number of short passwords + Trumpų slaptažodžių skaiÄius + + + Recommended minimum password length is at least 8 characters. + Rekomenduojamas mažiausias slaptažodžio ilgis - bent 8 simboliai. + + + Number of weak passwords + Silpnų slaptažodžių skaiÄius + + + Recommend using long, randomized passwords with a rating of 'good' or 'excellent'. + Rekomenduojame naudoti ilgus, atsitiktine tvarka sukurtus slaptažodžius, įvertintus "gerai" arba "puikiai". + + + Entries excluded from reports + Ä®raÅ¡ai, neįtraukti į ataskaitas + + + Excluding entries from reports, e. g. because they are known to have a poor password, isn't necessarily a problem but you should keep an eye on them. + Ä®rašų neįtraukimas į ataskaitas, pvz., dÄ—l to, kad žinoma, jog jų slaptažodis prastas, nebÅ«tinai yra problema, taÄiau turÄ—tumÄ—te juos stebÄ—ti. + + + Average password length + Vidutinis slaptažodžio ilgis + + + %1 characters + %1 simboliai + + + Average password length is less than ten characters. Longer passwords provide more security. + Vidutinis slaptažodžio ilgis - mažiau nei deÅ¡imt simbolių. Ilgesni slaptažodžiai užtikrina didesnį saugumÄ…. + + + + SSHAgent + + Agent connection failed. + Agento ryÅ¡ys nepavyko. + + + Agent protocol error. + Agento protokolo klaida. + + + No agent running, cannot add identity. + Joks agentas neveikia, negali pridÄ—ti tapatybÄ—s. + + + Key identity ownership conflict. Refusing to add. + PagrindinÄ—s tapatybÄ—s nuosavybÄ—s konfliktas. Atsisakymas pridÄ—ti. + + + Agent refused this identity. Possible reasons include: + Agentas atsisakÄ— Å¡ios tapatybÄ—s. Galimos priežastys: + + + The key has already been added. + Raktas jau buvo pridÄ—tas. + + + Restricted lifetime is not supported by the agent (check options). + Agentas nepalaiko apriboto naudojimo trukmÄ—s (patikrinkite parinktis). + + + A confirmation request is not supported by the agent (check options). + Patvirtinimo užklausos agentas nepalaiko (patikrinkite parinktis). + + + Security keys are not supported by the agent or the security key provider is unavailable. + Agentas nepalaiko saugos raktų arba saugos raktų teikÄ—jas nepasiekiamas. + + + No agent running, cannot remove identity. + Joks agentas neveikia, negali paÅ¡alinti tapatybÄ—s. + + + No agent running, cannot list identities. + Joks agentas neveikia, negali iÅ¡vardyti tapatybių. + + + + SearchHelpWidget + + Search Help + PaieÅ¡kos pagalba + + + Search terms are as follows: [modifiers][field:]["]term["] + PaieÅ¡kos terminai yra tokie: [modifikatoriai][laukas:]["]terminas["] + + + Every search term must match (ie, logical AND) + Kiekvienas paieÅ¡kos terminas turi atitikti (ty loginis IR) + + + Modifiers + Modifikatoriai + + + exclude term from results + neįtraukti termino į rezultatus + + + match term exactly + rungtynių terminas tiksliai + + + use regex in term + naudoti regex terminÄ… + + + Fields + Laukai + + + Term Wildcards + Terminas Pakaitos simboliai + + + match anything + prilygti bet kam + + + match one + suderinti vienÄ… + + + logical OR + loginis ARBA + + + Examples + Pavyzdžiai + + + + SearchWidget + + Search + PaieÅ¡ka + + + Search Help + PaieÅ¡kos pagalba + + + Save Search + IÅ¡saugoti paieÅ¡kÄ… + + + Search (%1)… + Search placeholder text, %1 is the keyboard shortcut + IeÅ¡koti (%1)... + + + Case sensitive + Skiriant raidžių registrÄ… + + + Limit search to selected group + Riboti paieÅ¡kÄ… iki pasirinktos grupÄ—s + + + + SettingsClientModel + + Application + Programa + + + PID + PID + + + DBus Address + DBus adresas + + + Manage + Tvarkyti + + + + SettingsDatabaseModel + + File Name + Failo vardas + + + Group + GrupÄ— + + + Manage + Tvarkyti + + + + SettingsWidgetFdoSecrets + + Options + Parinktys + + + Enable KeepassXC Freedesktop.org Secret Service integration + Ä®galinti "KeepassXC" Freedesktop.org slaptosios tarnybos integracijÄ… + + + General + Bendra + + + Show notification when passwords are retrieved by clients + Rodyti praneÅ¡imÄ…, kai klientai gauna slaptažodžius + + + <html><head/><body><p>If enabled, any attempt to read a password must be confirmed. Otherwise, clients can read passwords without confirmation when the database is unlocked.</p><p>This option only covers the access to the password of an entry. Clients can always enumerate the items of exposed databases and query their attributes.</p></body></html> + <html><head/><body><p>Jei įjungta, bet koks bandymas perskaityti slaptažodį turi bÅ«ti patvirtintas. PrieÅ¡ingu atveju klientai gali skaityti slaptažodžius be patvirtinimo, kai duomenų bazÄ— atrakinta.</p><p>Å i parinktis taikoma tik prieigai prie įraÅ¡o slaptažodžio. Klientai visada gali iÅ¡vardyti atidarytų duomenų bazių elementus ir užklausti jų atributų. + + + Confirm when passwords are retrieved by clients + Patvirtinti, kai klientai gauna slaptažodžius + + + <html><head/><body><p><span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">This setting does + not override disabling recycle bin prompts</span></p></body></html> + + <html><head/><body><p><span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">Å is parametras veikia + nepaisykite Å¡iukÅ¡linÄ—s raginimų iÅ¡jungimo</span></p></body></html> + + + + Confirm when clients request entry deletion + Patvirtinti, kai klientai praÅ¡o iÅ¡trinti įrašą + + + <html><head/><body><p>This improves compatibility with certain applications + which search for password without unlocking the database first.</p><p>But enabling this may also + crash the client if the database can not be unlocked within a certain timeout. (Usually 25s, but may be a + different value set in applications.)</p></body></html> + + <html><head/><body><p>Tai pagerina suderinamumÄ… su tam tikromis programomis + kurie ieÅ¡ko slaptažodžio prieÅ¡ tai neatrakindami duomenų bazÄ—s.</p><p>TaÄiau tai taip pat gali bÅ«ti įgalinimas + sugesti klientÄ…, jei duomenų bazÄ—s negalima atrakinti per tam tikrÄ… skirtÄ…jį laikÄ…. (Paprastai 25-eri, bet gali bÅ«ti + skirtingos vertÄ—s, nustatytos programose.)</p></body></html> + + + + Prompt to unlock database before searching + PraÅ¡yti atrakinti duomenų bazÄ™ prieÅ¡ pradedant paieÅ¡kÄ… + + + Exposed database groups: + Atskleistos duomenų bazÄ—s grupÄ—s: + + + Authorization + Leidimas + + + These applications are currently connected: + Å iuo metu Å¡ios programos yra prijungtos: + + + <b>Warning:</b> + <b>Ä®spÄ—jimas:</b> + + + Save current changes to activate the plugin and enable editing of this section. + IÅ¡saugoti esamus pakeitimus, kad papildinys bÅ«tų įjungtas ir bÅ«tų galima redaguoti šį skyrių. + + + + SettingsWidgetKeeShare + + Active + Aktyvus + + + Allow KeeShare imports + Leisti "KeeShare" importÄ… + + + Allow import + Leisti importuoti + + + Allow KeeShare exports + Leisti "KeeShare" eksportuoti + + + Allow export + Leisti eksportuoti + + + Only show warnings and errors + Rodyti tik įspÄ—jimus ir klaidas + + + Own certificate + Nuosavas sertifikatas + + + Signer: + PasiraÅ¡anÄiojo: + + + Generate new certificate + Sukurkite naujÄ… sertifikatÄ… + + + Generate + Generuoti + + + Fingerprint: + Kontrolinis kodas: + + + Signer name field + PasiraÅ¡anÄiojo vardo laukas + + + Fingerprint + Kontrolinis kodas + + + + ShareExport + + Could not write export container. + Nepavyko paraÅ¡yti eksporto konteinerio. + + + + ShareImport + + Successful import + SÄ—kmingas importavimas + + + + ShareObserver + + Import from %1 failed (%2) + Importavimas iÅ¡ %1 nepavyko (%2) + + + Import from %1 successful (%2) + Importavimas iÅ¡ %1 sÄ—kmingas (%2) + + + Imported from %1 + Importuota iÅ¡ %1 + + + Multiple import source path to %1 in %2 + Kelių importo Å¡altinių kelias iki %1 in %2 + + + Conflicting export target path %1 in %2 + PrieÅ¡taringas eksporto tikslinis planas %1 ,,2% + + + Export to %1 failed (%2) + Eksportavimas į %1 nepavyko (%2) + + + Export to %1 successful (%2) + Eksportavimas į %1 sÄ—kmingas (%2) + + + Export to %1 + Eksportas į %1 + + + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + + + TagModel + + Clear Search + IÅ¡valyti paieÅ¡kÄ… + + + All Entries + Visi įraÅ¡ai + + + Expired + PasibaigÄ™s + + + Weak Passwords + Silpni slaptažodžiai + + + + TagView + + Remove Search + PaÅ¡alinti paieÅ¡kÄ… + + + Remove Tag + PaÅ¡alinti žymÄ… + + + Confirm Remove Tag + Patvirtinti žymos paÅ¡alinimÄ… + + + Remove tag "%1" from all entries in this database? + PaÅ¡alinti žymÄ… "%1" iÅ¡ visų Å¡ios duomenų bazÄ—s įrašų? + + + + TotpDialog + + Timed Password + Numatytosios trukmÄ—s slaptažodis + + + Copy + Kopijuoti + + + Expires in <b>%n</b> second(s) + Nustoja galioti <b>%n</b> sekunde (-ose)Nustoja galioti <b>%n</b> sekunde (-ose)Nustoja galioti <b>%n</b> sekunde (-ose)Nustoja galioti <b>%n</b> sekunde (-ose) + + + + TotpExportSettingsDialog + + Copy + Kopijuoti + + + NOTE: These TOTP settings are custom and may not work with other authenticators. + TOTP QR code dialog warning + PASTABA: Å ie TOTP nustatymai yra pasirinktiniai ir gali neveikti su kitais autentifikatoriais. + + + There was an error creating the QR code. + Buvo klaida kuriant QR kodÄ…. + + + Closing in %1 seconds. + Užveriama po %1 sekundžių. + + + + TotpSetupDialog + + Setup TOTP + Nustatyti NTVS + + + Secret Key: + Slaptas raktas: + + + Secret key must be in Base32 format + Slaptas raktas turi bÅ«ti "Base32" formato + + + Secret key field + Slapto rakto laukas + + + Default settings (RFC 6238) + Numatytieji nustatymai (RFC 6238) + + + Steam® settings + Garo® nustatymai + + + Custom settings: + Pasirinktiniai nustatymai: + + + Custom Settings + Pasirinktiniai nustatymai + + + Algorithm: + Algoritmas: + + + Time step: + Laiko žingsnis: + + + Time step field + Laiko žingsnio laukas + + + sec + Seconds + sek. + + + Code size: + Kodo dydis: + + + digits + Skaitmenų + + + Invalid TOTP Secret + Negaliojanti TOTP paslaptis + + + You have entered an invalid secret key. The key must be in Base32 format. +Example: JBSWY3DPEHPK3PXP + Ä®vedÄ—te netinkamÄ… slaptÄ… raktÄ…. Raktas turi bÅ«ti "Base32" formatu. +Pavyzdys: JBSWY3DPEHPK3PXP + + + Confirm Remove TOTP Settings + Patvirtinkite paÅ¡alinti TOTP nustatymus + + + Are you sure you want to delete TOTP settings for this entry? + Ar tikrai norite iÅ¡trinti Å¡io įraÅ¡o TOTP nustatymus? + + + + URLEdit + + Invalid URL + Netinkamas URL + + + + UpdateCheckDialog + + Checking for updates + Tikriname ar yra atnaujinimų + + + Checking for updates… + Tikriname ar yra atnaujinimų... + + + Close + Užverti + + + Software Update + PrograminÄ—s įrangos atnaujinimas + + + An error occurred when trying to retrieve update information, please try again later. + Bandant gauti atnaujinimo informacijÄ… įvyko klaida, bandykite dar kartÄ… vÄ—liau. + + + <strong>A new version is available.</strong><br/>KeePassXC %1 can be <a href="https://keepassxc.org/download/">downloaded here</a>. + <strong>Yra nauja versija.</strong><br/>KeePassXC %1 galima <a href="https://keepassxc.org/download/">atsisiųsti Äia</a>. + + + You have the latest version of KeePassXC + JÅ«s turite naujausiÄ… KeePassXC versijÄ… + + + + WelcomeWidget + + Start storing your passwords securely in a KeePassXC database + PradÄ—kite saugiai laikyti savo slaptažodžius KeePassXC duomenų bazÄ—je + + + Recent databases + Paskiausios duomenų bazÄ—s + + + Open a recent database + Atidaryti neseniai naudotÄ… duomenų bazÄ™ + + + Welcome to KeePassXC %1 + Sveiki atvykÄ™ į KeePassXC %1 + + + Create Database + + + + Open Database + + + + Import File + + + + + WinUtils + + Invalid key code + Netinkamas rakto kodas + + + Global shortcut already registered to %1 + Visuotinis spartusis klaviÅ¡as jau užregistruotas į %1 + + + Could not register global shortcut + Nepavyko užregistruoti visuotinio sparÄiojo klaviÅ¡o + + + + YubiKey + + General: + Bendra: + + + Could not find interface for hardware key with serial number %1. Please connect it to continue. + Nepavyko rasti aparatinÄ—s įrangos rakto sÄ…sajos su serijos numeriu %1. NorÄ—dami tÄ™sti, prijunkite jį prie jo. + + + + YubiKeyEditWidget + + Hardware key slot selection + AparatÅ«ros rakto lizdo pasirinkimas + + + Could not find any hardware keys! + Nepavyko rasti jokių aparatÅ«ros raktų! + + + Selected hardware key slot does not support challenge-response! + Pasirinktas aparatinÄ—s įrangos raktų lizdas nepalaiko atsako į iššūkius! + + + Challenge-Response + Iššūkis-atsakas + + + Add Challenge-Response + PridÄ—ti atsakÄ… į iššūkį + + + Change Challenge-Response + Pakeiskite iššūkį-atsakÄ… + + + Remove Challenge-Response + PaÅ¡alinkite atsakÄ… į iššūkį + + + Challenge-Response set, click to change or remove + Iššūkio atsakymo rinkinys, spustelÄ—kite, kad pakeistumÄ—te arba paÅ¡alintumÄ—te + + + Detecting hardware keys… + Aptinkame aparatÅ«ros raktus... + + + No hardware keys detected + Neaptikti jokie aparatÅ«ros raktai + + + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + + + + + YubiKeyInterfacePCSC + + The YubiKey PCSC interface has not been initialized. + YubiKey PCSC sÄ…saja nebuvo inicijuota. + + + Could not find or access hardware key with serial number %1. Please present it to continue. + Nepavyko rasti arba pasiekti aparatÅ«ros rakto su serijos numeriu %1. PraÅ¡ome jį pristatyti, kad tÄ™stumÄ—te. + + + Hardware key is locked or timed out. Unlock or re-present it to continue. + AparatÅ«ros raktas užrakintas arba nustatytas nustatytas laiku. Atrakinkite arba iÅ¡ naujo pateikite jį, kad tÄ™stumÄ—te. + + + Hardware key was not found or is not configured. + AparatÅ«ros raktas nerastas arba nÄ—ra sukonfigÅ«ruotas. + + + Failed to complete a challenge-response, the PCSC error code was: %1 + Nepavyko užbaigti iššūkio atsakymo, PCSC klaidos kodas buvo: %1 + + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + Paspausti + + + Passive + USB Challenge-Response Key no interaction required + Pasyvus + + + + YubiKeyInterfaceUSB + + Unknown + Nežinoma + + + Press + USB Challenge-Response Key interaction request + Paspausti + + + Passive + USB Challenge-Response Key no interaction required + Pasyvus + + + The YubiKey USB interface has not been initialized. + YubiKey USB sÄ…saja nebuvo inicijuota. + + + Could not find hardware key with serial number %1. Please plug it in to continue. + Nepavyko rasti aparatÅ«ros rakto su serijos numeriu %1. NorÄ—dami tÄ™sti, prijunkite jį prie jo. + + + Hardware key timed out waiting for user interaction. + AparatinÄ—s įrangos rakto laikas baigÄ—si laukiant vartotojo sÄ…veikos. + + + A USB error occurred when accessing the hardware key: %1 + Prisijungus prie aparatÅ«ros rakto įvyko USB klaida: %1 + + + Failed to complete a challenge-response, the specific error was: %1 + Nepavykus užbaigti iššūkio atsakymo, konkreti klaida buvo tokia: %1 + + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + \ No newline at end of file diff --git a/share/translations/keepassxc_my.ts b/share/translations/keepassxc_my.ts index e4fd98317..c4bf688ab 100644 --- a/share/translations/keepassxc_my.ts +++ b/share/translations/keepassxc_my.ts @@ -80,6 +80,10 @@ Details အသေးစိá€á€º အá€á€»á€€á€ºá€¡á€œá€€á€ºá€™á€»á€¬á€¸ + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + KeePassXC နှင့် ဖွင့်ရန်á€á€±á€¬á€„်းဆိုထားသော အá€á€¼á€¬á€¸ Client နှစ်á€á€¯á€…လုံး အလုပ်လုပ်နေá€á€»á€­á€”်á€á€½á€„် သင့်ဆုံးဖြá€á€ºá€á€»á€€á€ºá€™á€»á€¬á€¸á€¡á€¬á€¸ မှá€á€ºá€žá€¬á€¸á€‘ားမည်ဖြစ်သည်ዠ+ Remember မှá€á€ºá€‘ားရန် @@ -88,17 +92,13 @@ Allow Selected ရွေးထားသည့်အရာများကို á€á€½á€„့်ပြုရန် - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - - Deny All && Future - + အားလုံးကို ယá€á€¯á€›á€±á€¬ နောင်ရော ငြင်းဆိုမည်ዠAllow All && &Future - + အားလုံးကို ယá€á€¯á€›á€±á€¬ နောင်ရော á€á€½á€„့်ပြုမည်ዠ@@ -122,6 +122,10 @@ Use OpenSSH OpenSSH အသုံးပြုရန် + + Use both agents + အေးဂျင့် နှစ်á€á€¯á€œá€¯á€¶á€¸á€€á€­á€¯ အသုံးပြုပါ + SSH_AUTH_SOCK override SSH_AUTH_SOCK အစားထိုးမှု @@ -150,10 +154,6 @@ SSH Agent connection is working! SSH အေးဂျင့် á€á€»á€­á€á€ºá€†á€€á€ºá€™á€¾á€¯ အလုပ်လုပ်နေသည်ዠ- - Use both agents - - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security လုံá€á€¼á€¯á€¶á€›á€±á€¸ + + This setting cannot be enabled when minimize on unlock is enabled. + အန်လော့á€á€ºá€œá€¯á€•်á€á€»á€­á€”် မြင်ကွင်းကျုံ့á€á€¼á€„်းကို ရွေးá€á€»á€šá€ºá€‘ားá€á€»á€­á€”် ဤ‌ရွေးá€á€»á€šá€ºá€™á€¾á€¯á€€á€­á€¯ ပြုလုပ်áမရပါዠ+ Access error for config file %1 á€á€»á€­á€”်ညှိဖိုင် %1 အá€á€½á€€á€º အသုံးပြုá€á€½á€„့် ပြဿနာ @@ -223,7 +227,7 @@ Select backup storage directory - + အရံသိမ်းဖိုင်ကို သိမ်းမည့် နေရာရွေးပါዠ@@ -256,6 +260,10 @@ Remember previously used databases ယá€á€„်ကသုံးá€á€²á€·á€žá€±á€¬ ဒေá€á€¬á€˜á€±á€·á€…်များကို မှá€á€ºá€‘ားပါ + + recent files + မကြာသေးá€á€„်က သုံးထားသော ဖိုင်များ + Load previously open databases on startup စá€á€„်ဆောင်ရွက်á€á€»á€­á€”်á€á€½á€„် ယá€á€„်ကဖွင့်ထားသော ဒေá€á€¬á€˜á€±á€·á€…်များကို á€á€„်ပါ @@ -274,22 +282,22 @@ On database unlock, show entries that - + ဒေá€á€¬á€˜á€±á€·á€…် ပွင့်နေလျင်, ........... သော ထည့်ပြီးသားအá€á€»á€€á€ºá€¡á€œá€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ ပြပါዠhave expired On database unlock, show entries that... - + သက်á€á€™á€ºá€¸á€€á€¯á€”်သွား days On database unlock, show entries that will expire within %1 days - + ရက်များ will expire within On database unlock, show entries that... - + အá€á€½á€„်းမှာ သက်á€á€™á€ºá€¸á€€á€¯á€”်မည် File Management @@ -317,19 +325,19 @@ Backup destination - + အရံသိမ်းဖိုင် သိမ်းဆည်းရာနေရာ Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". - + ဒေá€á€¬á€˜á€±á€·á€…် အရံသိမ်းဖိုင်ကို သိမ်းရန်နေရာ သá€á€ºá€™á€¾á€á€ºá€•ြီးဖြစ်သည်ዠ"{DB_FILENAME}" များကို á€á€½á€±á€·á€›á€¾á€­á€•ါက á„င်းá€á€­á€¯á€·á€€á€­á€¯ ဖိုင်နာမည်ဖြင့် အစားထိုးသွားမည်ဖြစ်သည်ዠ{TIME: 1} ကို အရံသိမ်းဖိုင် သိမ်းရန်ကြာá€á€»á€­á€”် ဖြင့် အစားထိုးမည်ዠhttps://doc.qt.io/qt-5/qdatetime.html#toString á€á€½á€„်ကြည့်ပါዠရက်စွဲ နဂိုထည့်သွင်းပြီး ဖောမá€á€ºá€™á€¾á€¬ "dd_MM_yyyy_hh-mm-ss" ဖြစ်သည်ዠ{DB_FILENAME}.old.kdbx - + [DB_FILENAME].old.kdbx Choose... - + ရွေးá€á€»á€šá€ºá€•ါ Use alternative saving method (may solve problems with Dropbox, Google Drive, GVFS, etc.) @@ -408,6 +416,10 @@ Toolbar button style: á€á€°á€¸á€œá€ºá€˜á€¬á€¸ á€á€œá€¯á€á€º ပုံစံ - + + Show passwords in color + စကားá€á€¾á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ အရောင်ဖြင့် ပြပါ + Use monospaced font for notes မှá€á€ºá€…ုများအá€á€½á€€á€º နေရာယူá€á€°á€žá€Šá€·á€º ဖောင့်ကို အသုံးပြုရန် @@ -491,7 +503,7 @@ Remember last typed entry for: - + နောက်ဆုံးရိုက်ထည့်á€á€²á€·á€žá€±á€¬ ထည့်သွင်းá€á€»á€€á€ºá€€á€­á€¯á€™á€¾á€á€ºá€‘ားပါ @@ -536,7 +548,7 @@ Enable database quick unlock (Touch ID / Windows Hello) - + ဒေá€á€¬á€˜á€±á€·á€…်ကိုအလျင်အမြန်ပွင့်စနစ်ကို ဖွင့်ပါ Lock databases when session is locked or lid is closed @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons á€á€€á€ºá€˜á€ºá€†á€­á€¯á€€á€ºá€¡á€­á€¯á€„်ကွန်များကို ဒေါင်းလုဒ်လုပ်ရန် DuckDuckGo á€á€”်ဆောင်မှုကို အသုံးပြုပါ + + Hide TOTP in the entry preview panel + + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 ကြန့်ကြာá€á€»á€­á€”် အလွန်ကြာကြောင်း á€á€½á€±á€·á€›á€žá€Šá€ºáŠ á€¡á€™á€»á€¬á€¸á€†á€¯á€¶á€¸ %1 - %2 + + Entry does not have attribute for PICKCHARS: %1 + ထည့်သွင်းမှုá€á€½á€„် PICKCHARS အá€á€½á€€á€º အရည်အá€á€»á€„်း မရှိပါ - %1 + Invalid conversion type: %1 ပြောင်းလဲမှု အမျိုးအစား မမှန်ကန်ပါ - %1 @@ -718,7 +738,12 @@ Ctrl+1 - Type username<br/> Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> - + အသုံးပြုနိုင်သော ‌ဒေá€á€¬á€˜á€±á€·á€…်များá€á€½á€„် မည်သည့်ဖြည့်သွင်းá€á€»á€€á€ºá€€á€­á€¯á€™á€†á€­á€¯ အဆင့်မြင့် ရှာဖွေမှု မေးမြန်းá€á€»á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ အသုံးပြုပြီးရှာဖွေ နိုင်သည်ዠအောက်ပါရှော့(á€á€º)ကá€á€ºá€™á€»á€¬á€¸á€žá€Šá€º အသုံးá€á€„်သည် +Ctrl+F - ဒေá€á€¬á€˜á€±á€·á€…် ရှာဖွေမှုကို အဖွင့်အပိá€á€ºá€œá€¯á€•်ရန် +Ctrl+1 - အသုံးပြုသူအမည် ရိုက်ရန် +Ctrl+2 - စကားá€á€¾á€€á€º ရိုက်ရန် +Ctrl+3 - TOTP ရိုက်ရန် +Ctrl+4 - ကီးဘုá€á€ºá€€á€­á€¯á€¡á€žá€¯á€¶á€¸á€•ြုမည်(á€á€„်းဒိုးá€á€½á€„်သာ) Search all open databases @@ -762,7 +787,7 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Use Virtual Keyboard - + virtual ကီးဘုá€á€ºá€€á€­á€¯ အသုံးပြုပါ @@ -799,13 +824,13 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Disable for this site ဤá€á€€á€ºá€˜á€ºá€†á€­á€¯á€€á€ºá€¡á€á€½á€€á€º ပယ်ဖျက်ရန် + + Undo + + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-ဘရောက်ဇာ ဖြည့်သွင်းá€á€»á€€á€º သိမ်းရန် - Ok အိုကေ @@ -820,13 +845,69 @@ Please select the correct database for saving credentials. သင်သည် ဒေá€á€¬á€˜á€±á€·á€…်များစွာ ဖွင့်ထားသည်ዠကျေးဇူးပြုá အထောက်အထားများသိမ်းရန်အá€á€½á€€á€º မှန်ကန်သော ဒေá€á€¬á€˜á€±á€·á€…်ကို ရွေးပါዠ+ + KeePassXC - Select Database + + + + + BrowserPasskeysConfirmationDialog + + Cancel + ပယ်ဖျက်ရန် + + + Update + + + + Authenticate + + + + Register new + + + + Register + + + + Timeout in <b>%n</b> seconds... + + + + Do you want to register Passkey for: + + + + Existing Passkey found. +Do you want to register a new Passkey for: + + + + Select the existing Passkey and press Update to replace it. + + + + Authenticate Passkey credentials for: + + + + Relying Party: %1 + + + + Username: %1 + + + + KeePassXC - Passkey credentials + + BrowserService - - KeePassXC: Create a new group - KeePassXC - အုပ်စုအသစ် ဖန်á€á€®á€¸á€›á€”် - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -835,10 +916,6 @@ Do you want to create this group? ဤအုပ်စုကို ဖန်á€á€®á€¸á€œá€­á€¯á€•ါသလားዠ- - KeePassXC: New key association request - KeePassXC - စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€¡á€žá€…် ဆက်စပ်မှု á€á€±á€¬á€„်းဆိုá€á€»á€€á€º - You have received an association request for the following database: %1 @@ -855,28 +932,16 @@ chrome-laptopá‹ Save and allow access သိမ်းá အသုံးပြုá€á€½á€„့်ပေးရန် - - KeePassXC: Overwrite existing key? - KeePassXC - ရှိနေသော စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€•ေါ် ထပ်ရေးမလားዠ- A shared encryption key with the name "%1" already exists. Do you want to overwrite it? "%1" အမည်နှင့် မျှá€á€±á€‘ားသော ကုဒ်ဖြင့်ပြောင်းá€á€¼á€„်း စကားá€á€¾á€€á€ºá€žá€±á€¬á€· ရှိပြီးပါပြီዠáŽá€„်းကို ထပ်ရေးလိုပါသလားዠ- - KeePassXC: Update Entry - KeePassXC - ဖြည့်သွင်းá€á€»á€€á€º အပ်ဒိá€á€ºá€œá€¯á€•်ရန် - Do you want to update the information in %1 - %2? %1 - %2 ရှိ အá€á€»á€€á€ºá€¡á€œá€€á€ºá€€á€­á€¯ အပ်ဒိá€á€ºá€œá€¯á€•်လိုပါသလားዠ- - KeePassXC: Delete entry - KeePassXC - ဖြည့်သွင်းá€á€»á€€á€º ဖျက်ရန် - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -886,50 +951,45 @@ Do you want to delete the entry? - Converting attributes to custom data… - ပင်ကိုအá€á€»á€€á€ºá€¡á€œá€€á€ºá€€á€­á€¯ စိá€á€ºá€€á€¼á€­á€¯á€€á€ºá€¡á€á€»á€€á€ºá€¡á€œá€€á€ºá€¡á€–ြစ် ပြောင်းနေသည်… + %1 (Passkey) + - Abort - ဖျက်ပစ်ရန် + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + - KeePassXC: Converted KeePassHTTP attributes - KeePassXC - ပြောင်းထားသော KeePassHTTP ပင်ကိုအá€á€»á€€á€ºá€¡á€œá€€á€ºá€™á€»á€¬á€¸ + KeePassXC - Create a new group + - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - ဖြည့်သွင်းá€á€»á€€á€º %1 á€á€¯á€™á€¾ ပင်ကိုအá€á€»á€€á€ºá€¡á€œá€€á€ºá€€á€­á€¯ အောင်မြင်စွာ ပြောင်းပြီးပါပြီዠ-စကားá€á€¾á€€á€ºá€žá€±á€¬á€· %2 ကို စိá€á€ºá€€á€¼á€­á€¯á€€á€ºá€¡á€á€»á€€á€ºá€¡á€œá€€á€ºá€žá€­á€¯á€· ရွှေ့ပြောင်းထားသည်ዠ- - - Successfully moved %n keys to custom data. - စကားá€á€¾á€€á€ºá€žá€±á€¬á€· %n á€á€¯á€€á€­á€¯ စိá€á€ºá€€á€¼á€­á€¯á€€á€ºá€¡á€á€»á€€á€ºá€¡á€œá€€á€ºá€žá€­á€¯á€· အောင်မြင်စွာ ရွှေ့ပြောင်းပြီးပါပြီዠ+ Disable + ပယ်ဖျက်ရန် - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC - KeePassHTTP ပင်ကိုအá€á€»á€€á€ºá€¡á€œá€€á€ºá€•ါသော ဖြည့်သွင်းá€á€»á€€á€º မá€á€½á€±á€·á€•ါዠ+ KeePassXC - Overwrite existing key? + - The active database does not contain an entry with KeePassHTTP attributes. - အသုံးပြုနေသော ဒေá€á€¬á€˜á€±á€·á€…်á€á€½á€„် KeePassHTTP ပင်ကိုအá€á€»á€€á€ºá€¡á€œá€€á€ºá€•ါသော ဖြည့်သွင်းá€á€»á€€á€º မပါá€á€„်ပါዠ+ KeePassXC - Update Passkey + - Don't show this warning again - ဤသá€á€­á€•ေးá€á€»á€€á€ºá€€á€­á€¯ ထပ်မပြပါနှင့် + KeePassXC - Update Entry + - KeePassXC: Legacy browser integration settings detected - KeePassXC - အသုံးများသော ဘရောက်ဇာ ပေါင်းစပ်ထည့်သွင်းမှု ဆက်á€á€„်ဟောင်းများ á€á€½á€±á€·á€›á€¾á€­á€žá€Šá€º + KeePassXC - Delete entry + - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - သင့် KeePassXC-ဘရောက်ဇာ ဆက်á€á€„်များကို ဒေá€á€¬á€˜á€±á€·á€…် ဆက်á€á€„်များသို့ ရွှေ့ရန် လိုအပ်ပါသည်ዠ-သင်á လက်ရှိဘရောက်ဇာ á€á€»á€­á€á€ºá€†á€€á€ºá€™á€¾á€¯á€™á€»á€¬á€¸á€€á€­á€¯ ထိန်းသိမ်းရန် လိုအပ်ပါသည်ዠ-သင်á á€á€Šá€ºá€›á€¾á€­á€†á€² ဆက်á€á€„်များကို ယá€á€¯ ရွှေ့လိုပါသလားዠ+ KeePassXC - New key association request + + + + Passkey + @@ -1137,14 +1197,6 @@ Would you like to migrate your existing settings now? Please see special instructions for browser extension use below ကျေးဇူးပြုá ဘရောက်ဇာအဆက် သုံးရန် အထူးညွှန်ကြားá€á€»á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ အောက်á€á€½á€„်ကြည့်ပါ - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>ပြဿနာ -</b> စိá€á€ºá€€á€¼á€­á€¯á€€á€ºá€•ရောက်စီá€á€Šá€ºá€”ေရာကို ရှာမá€á€½á€±á€·á€•ါá‹<br/> ပရောက်စီ အက်ပလီကေးရှင်း မပါဘဲ ဘရောက်ဇာ ပေါင်းစပ်ထည့်သွင်းမှု အလုပ်လုပ်မည်မဟုá€á€ºá€•ါዠ- - - <b>Warning:</b> The following options can be dangerous! - <b>သá€á€­á€•ေးá€á€»á€€á€º -</b>အောက်ပါရွေးá€á€»á€šá€ºá€™á€¾á€¯á€™á€»á€¬á€¸á€žá€Šá€º အန္á€á€›á€¬á€šá€ºá€›á€¾á€­á€”ိုင်သည်á‹â€Œ - Executable Files လည်ပá€á€ºá€œá€¯á€•်ဆောင်နိုင်သော ဖိုင်များ @@ -1161,6 +1213,38 @@ Would you like to migrate your existing settings now? Select native messaging host folder location မူလ မက်ဆေ့á€á€»á€ºá€•ို့သည့် လက်á€á€¶á€–ိုင်á€á€½á€²á€á€Šá€ºá€”ေရာ ရွေးရန် + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + + + + <b>Warning:</b> Only adjust these settings if necessary. + + + + The custom proxy location does not exist. + + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1183,14 +1267,6 @@ Would you like to migrate your existing settings now? CsvImportWidget - - Import CSV fields - CSV အကွက်များကို ထည့်သွင်းရန် - - - filename - ဖိုင်အမည် - size, rows, columns အရွယ်အစားአအá€á€”်းများአကော်လံများ @@ -1299,50 +1375,29 @@ Would you like to migrate your existing settings now? Column %1 ကော်လံ %1 - - Imported from CSV file - CSV ဖိုင်မှ ထည့်သွင်းသည် - - - Original data: - မူလ အá€á€»á€€á€ºá€¡á€œá€€á€º - - - - Error(s) detected in CSV file! - CSV ဖိုင်á€á€½á€„် ပြဿနာ(များ) ရှာá€á€½á€±á€·á€žá€Šá€ºá‹ - [%n more message(s) skipped] [နောက်ထပ် မက်ဆေ့á€á€»á€º %n á€á€¯ ကျော်ထားသည်] - Error - ပြဿနာ + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - CSV ထည့်သွင်းမှု - ရေးသားသူá€á€½á€„် ပြဿနာများရှိသည် - -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1አ%2አ%3 - - - %n byte(s) - %n ဘိုက် - %n row(s) + CSV row count အá€á€”်း %n á€á€¯ %n column(s) + CSV column count ကော်လံ %n á€á€¯ @@ -1417,40 +1472,10 @@ Backup database located at %2 Password field စကားá€á€¾á€€á€ºá€¡á€€á€½á€€á€º - - Enter Additional Credentials (if any): - ထပ်ဆောင်း အထောက်အထားများ (ရှိပါက) ရိုက်ထည့်ပါ - - - - Key File: - စကားá€á€¾á€€á€ºá€žá€±á€¬á€· ဖိုင် - - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>သင့်ဒေá€á€¬á€˜á€±á€·á€…်á လုံá€á€¼á€¯á€¶á€›á€±á€¸á€€á€­á€¯ á€á€­á€¯á€¸á€™á€¼á€¾á€„့်ရန် စကားá€á€¾á€€á€ºá€¡á€•ြင် လျှို့á€á€¾á€€á€ºá€–ိုင်ကို အသုံးပြုနိုင်သည်ዠဤဖိုင်ကို သင့်ဒေá€á€¬á€˜á€±á€·á€…်á လုံá€á€¼á€¯á€¶á€›á€±á€¸á€†á€€á€ºá€á€„်များá€á€½á€„် ထုá€á€ºá€œá€¯á€•်နိုင်သည်á‹</p><p>áŽá€„်းသည် သင်á *.kdbx ဒေá€á€¬á€˜á€±á€·á€…်ဖိုင် <strong>မဟုá€á€ºá€•ါ</strong>á‹<br>သင့်á€á€½á€„် စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€–ိုင် မရှိပါက ဤအကွက်ကို အလွá€á€ºá€‘ားပါá‹</p><p>အá€á€»á€€á€ºá€¡á€œá€€á€º ပိုသိရန် နှိပ်ပါ…</p> - - - Key file help - စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€–ိုင် အကူအညီ - Hardware key slot selection ဟာ့á€á€²á€€á€®á€¸á€¡á€•ေါက် ရွေးá€á€»á€šá€ºá€™á€¾á€¯ - - Hardware Key: - ဟာ့á€á€² စကားá€á€¾á€€á€ºá€žá€±á€¬á€· - - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>သင်သည် <strong>YubiKey</strong> သို့မဟုá€á€º <strong>OnlyKey</strong> ကဲ့သို့ ဟာ့á€á€² လုံá€á€¼á€¯á€¶á€›á€±á€¸ စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€á€…်á€á€¯á€€á€­á€¯ အသုံးပြုနိုင်ပြီး áŽá€„်းá€á€­á€¯á€·á€á€½á€„် HMAC-SHA1 အá€á€½á€€á€º á€á€»á€­á€”်ညှိထားသော အပေါက်များ ပါသည်á‹</p> -<p>နောက်ထပ် အá€á€»á€€á€ºá€¡á€œá€€á€ºá€™á€»á€¬á€¸á€¡á€á€½á€€á€º နှိပ်ပါ…</p>‌ - - - Hardware key help - ဟာ့á€á€² စကားá€á€¾á€€á€ºá€žá€±á€¬á€· အကူအညီ - Key file to unlock the database ဒေá€á€¬á€˜á€±á€·á€…် လော့ဖြည်ရန် စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€–ိုင် @@ -1463,17 +1488,9 @@ Backup database located at %2 Browse… ရှာဖွေရန်… - - Refresh hardware tokens - ဟာ့á€á€² á€á€­á€¯á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ ပြန်လည်လန်းဆန်းရန် - - - Refresh - ပြန်လည်လန်းဆန်းရန် - Unlock Database - + ဒေá€á€¬á€˜á€±á€·á€…်ကို လော့ဖြည်ရန် Cancel @@ -1481,7 +1498,7 @@ Backup database located at %2 Unlock - + လော့ဖြည်á€á€¼á€„်း Please present or touch your YubiKey to continue… @@ -1489,7 +1506,7 @@ Backup database located at %2 Database Version Mismatch - + မကိုက်ညီသော ဒေá€á€¬á€˜á€±á€·á€…် ဗားရှင်း The database you are trying to open was most likely @@ -1499,15 +1516,15 @@ You can try to open it anyway, but it may be incomplete and saving any changes may incur data loss. We recommend you update your KeePassXC installation. - + KeePassXC ရဲ့ Version အသစ်ဖြစ်နိုင်သည့် ဒေá€á€¬á€˜á€±á€·á€…် ကို သင်ဖွင့်ရန် လုပ်ဆောင်နေသည်ዠဘယ်လိုနည်းနှင့်မဆို ဖွင့်လိုက်နိုင်ပေမယ့် ဒေá€á€¬á€•ျောက်ဆုံးá€á€¼á€„်းአမပြည့်စုံá€á€¼á€„်းአမသိမ်းစည်းလိုက်မိá€á€¼á€„်းများ ဖြစ်စေနိုင်သည်ዠထိုကြောင့် KeePassXC ကို Update လုပ်ဆောင်ရန် အကြံပြုပါသည်ዠOpen database anyway - + မည်သည့်နည်းနှင့်မဆိုဒေá€á€¬á€˜á€±á€·á€…်အားဖွင့်á€á€¼á€„်း Database unlock canceled. - + ဒေá€á€¬á€˜á€±á€·á€…်လော့ဖြည့်á€á€¼á€„်းကို ပယ်ဖျက်á€á€²á€·á€žá€Šá€º á‹ Unlock failed and no password given @@ -1527,14 +1544,6 @@ To prevent this error from appearing, you must go to "Database Settings / S Retry with empty password စကားá€á€¾á€€á€º အလွá€á€ºá€‘ားပြီး ပြန်စမ်းကြည့်ရန် - - Failed to authenticate with Windows Hello - - - - Failed to authenticate with Touch ID - - Failed to open key file: %1 စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€–ိုင် ဖွင့်á€á€¼á€„်း မအောင်မြင်ပါ - %1 @@ -1568,22 +1577,60 @@ To prevent this error from appearing, you must go to "Database Settings / S ဒေá€á€¬á€˜á€±á€·á€…်ဖိုင်ကို စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€–ိုင်အဖြစ် အသုံးမပြုနိုင်ပါ - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - သင်သည် ဒေá€á€¬á€˜á€±á€·á€…်ဖိုင်ကို စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€–ိုင်အဖြစ် အသုံးမပြုနိုင်ပါዠ-သင့်á€á€½á€„် စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€–ိုင် မရှိပါက ထိုအကွက်ကို အလွá€á€ºá€‘ားပါዠ+ authenticate to access the database + ဒေá€á€¬á€˜á€±á€·á€…်ကိုá€á€„်ရောက်ရန် စစ်မှန်ကြောင်းသက်သေပြပါ - Detecting hardware keys… - ဟာ့á€á€² စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€™á€»á€¬á€¸á€€á€­á€¯ ရှာနေသည်… + Failed to authenticate with Quick Unlock: %1 + - No hardware keys detected - ဟာ့á€á€² စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€™á€»á€¬á€¸ ရှာမá€á€½á€±á€·á€•ါ + Select Key File: + - Select hardware key… - ဟာ့á€á€² စကားá€á€¾á€€á€ºá€žá€±á€¬á€· ရွေးရန်… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1595,10 +1642,6 @@ If you do not have a key file, please leave the field empty. DatabaseSettingsDialog - - Advanced Settings - အဆင့်မြင့် ဆက်á€á€„်များ - General ယေဘုယျ @@ -1630,18 +1673,6 @@ If you do not have a key file, please leave the field empty. KeePassXC-Browser settings KeePassXC-ဘရောက်ဇာ ဆက်á€á€„်များ - - Convert KeePassHTTP data - - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - - - - Refresh database root group ID - ဒေá€á€¬á€˜á€±á€·á€…်အá€á€¼á€± အုပ်စု ID ကို ပြန်လည်လန်းဆန်းရန် - Disconnect all browsers ဘရောက်ဇာအားလုံးကို á€á€»á€­á€á€ºá€†á€€á€ºá€™á€¾á€¯á€–ျက်ရန် @@ -1650,6 +1681,10 @@ If you do not have a key file, please leave the field empty. Forget all site-specific settings on entries ဖြည့်သွင်းá€á€»á€€á€ºá€™á€»á€¬á€¸á€”ှင့်ဆိုင်သော á€á€€á€ºá€˜á€ºá€†á€­á€¯á€€á€ºá€¡á€œá€­á€¯á€€á€º ဆက်á€á€„်အားလုံးကို မေ့ပစ်ရန် + + Refresh database root group ID + ဒေá€á€¬á€˜á€±á€·á€…်အá€á€¼á€± အုပ်စု ID ကို ပြန်လည်လန်းဆန်းရန် + Stored keys သိမ်းထားသော စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€™á€»á€¬á€¸ @@ -1698,18 +1733,10 @@ This may prevent connection to the browser plugin. ဘရောက်ဇာအားလုံးနှင့် အမှန်á€á€€á€šá€º á€á€»á€­á€á€ºá€†á€€á€ºá€™á€¾á€¯á€–ျက်လိုပါသလားዠယင်းသည် ဘရောက်ဇာ á€á€»á€­á€á€ºá€†á€€á€ºá€•ရိုဂရမ်နှင့် á€á€»á€­á€á€ºá€†á€€á€ºá€™á€¾á€¯á€€á€­á€¯ á€á€¬á€¸á€†á€®á€¸á€”ိုင်သည်ዠ- - KeePassXC: No keys found - KeePassXC - စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€™á€»á€¬á€¸ မá€á€½á€±á€·á€•ါ - No shared encryption keys found in KeePassXC settings. KeePassXC ဆက်á€á€„်များá€á€½á€„် မျှá€á€±á€‘ားသော ကုဒ်ဖြင့်ပြောင်းပြီး စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€™á€»á€¬á€¸ မá€á€½á€±á€·á€•ါዠ- - KeePassXC: Removed keys from database - KeePassXC - ဒေá€á€¬á€˜á€±á€·á€…်မှ စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€™á€»á€¬á€¸á€€á€­á€¯ ဖယ်ရှားထားသည် - Successfully removed %n encryption key(s) from KeePassXC settings. KeePassXC ဆက်á€á€„်များမှ ကုဒ်ဖြင့်ပြောင်းပြီး စကားá€á€¾á€€á€ºá€žá€±á€¬á€· %n á€á€¯á€€á€­á€¯ အောင်မြင်စွာ ဖယ်ရှားပြီးပါပြီዠ@@ -1728,32 +1755,14 @@ Permissions to access entries will be revoked. Abort ဖျက်ပစ်ရန် - - KeePassXC: Removed permissions - KeePassXC - ဖယ်ရှားလိုက်သော á€á€½á€„့်ပြုá€á€»á€€á€ºá€™á€»á€¬á€¸ - Successfully removed permissions from %n entry(s). ဖြည့်သွင်းá€á€»á€€á€º %n á€á€¯á€™á€¾ á€á€½á€„့်ပြုá€á€»á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ အောင်မြင်စွာ ဖယ်ရှားပြီးပါပြီዠ- - KeePassXC: No entry with permissions found! - KeePassXC - á€á€½á€„့်ပြုá€á€»á€€á€ºá€›á€¾á€­á€žá€±á€¬ ဖြည့်သွင်းá€á€»á€€á€º မá€á€½á€±á€·á€•ါዠ- The active database does not contain an entry with permissions. အသုံးပြုနေသော ဒေá€á€¬á€˜á€±á€·á€…်á€á€½á€„် á€á€½á€„့်ပြုá€á€»á€€á€ºá€™á€»á€¬á€¸á€•ါသော ဖြည့်သွင်းá€á€»á€€á€º မပါá€á€„်ပါዠ- - Move KeePassHTTP attributes to custom data - KeePassHTTP ပင်ကိုအá€á€»á€€á€ºá€¡á€œá€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ စိá€á€ºá€€á€¼á€­á€¯á€€á€º အá€á€»á€€á€ºá€¡á€œá€€á€ºá€žá€­á€¯á€· ရွှေ့ရန် - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - အသုံးများသော ဘရောက်ဇာ ပေါင်းစပ်ထည့်သွင်းမှု အá€á€»á€€á€ºá€¡á€œá€€á€ºá€Ÿá€±á€¬á€„်းအားလုံးကို နောက်ဆုံးပေါ် စံနှုန်းအဖြစ်သို့ အမှန်á€á€€á€šá€º ပြောင်းလဲလိုပါသလားዠ-ဘရောက်ဇာ á€á€»á€­á€á€ºá€†á€€á€ºá€•ရိုဂရမ်နှင့် ကိုက်ညီမှု ထိန်းသိမ်းထားရန်အá€á€½á€€á€º áŽá€„်းကို လိုအပ်ပါသည်ዠ- Refresh database ID ဒေá€á€¬á€˜á€±á€·á€…် ID ကို ပြန်လည်လန်းဆန်းရန် @@ -1764,6 +1773,26 @@ This is only necessary if your database is a copy of another and the browser ext ဒေá€á€¬á€˜á€±á€·á€…် ID ကို အမှန်á€á€€á€šá€º ပြန်လည်လန်းဆန်းလိုပါသလားዠသင့်ဒေá€á€¬á€˜á€±á€·á€…်သည် အá€á€¼á€¬á€¸á€’ေá€á€¬á€˜á€±á€·á€…်á€á€…်á€á€¯á မိá€á€¹á€á€°á€–ြစ်ပြီး ဘရောက်ဇာအဆက်နှင့် á€á€»á€­á€á€ºá€†á€€á€ºáမရမှသာ ပြန်လည်လန်းဆန်းရန် လိုအပ်ပါသည်ዠ+ + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + legacy KeePassHTTP လက္á€á€á€¬á€›á€•် ကို KeePassXC-Browser နှင့်သင့်လျော်သောဒေá€á€¬ သို့ပြောင်းပါ + + + No keys found + + + + Removed keys from database + + + + Removed permissions + + + + No entry with permissions found! + + DatabaseSettingsWidgetDatabaseKey @@ -1803,6 +1832,18 @@ Are you sure you want to continue without a password? Failed to change database credentials ဒေá€á€¬á€˜á€±á€·á€…် အထောက်အထားများကို ပြောင်းလဲá€á€¼á€„်း မအောင်မြင်ပါ + + Weak password + အားနည်းသော စကားá€á€¾á€€á€º + + + You must enter a stronger password to protect your database. + + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + + DatabaseSettingsWidgetEncryption @@ -1810,14 +1851,6 @@ Are you sure you want to continue without a password? Decryption Time: ပြန်ဖြည်ရန် ကြာá€á€»á€­á€”် - - - Change existing decryption time - ရှိနေဆဲ ပြန်ဖြည်ရန်ကြာá€á€»á€­á€”်ကို ပြောင်းလဲရန် - - - Change - ပြောင်းလဲမှု - Decryption time in seconds စက္ကန့်နှင့်ပြထားသော ပြန်ဖြည်ရန်ကြာá€á€»á€­á€”် @@ -1836,11 +1869,11 @@ Are you sure you want to continue without a password? Format cannot be changed: Your database uses KDBX 4 features - + ပုံစံကို ပြောင်းလဲáမရနိုင်ပါ - သင်áဒေá€á€¬á€˜á€±á€·á€…်သည် KDBX 4ကို အသုံးပြုထားá€á€¼á€„်းဖြစ်သည် Unless you need to open your database with other programs, always use the latest format. - + သင်áဒေá€á€¬á€˜á€±á€·á€…်ကိုအá€á€¼á€¬á€¸á€žá€±á€¬á€•ရိုဂရမ်ဖြင့်ဖွင့်ရန်မလိုအပ်လျှင်, နောက်ဆုံးပုံစံကိုသာအမြဲá€á€™á€ºá€¸á€¡á€žá€¯á€¶á€¸á€•ြုပါ Encryption Algorithm: @@ -1892,16 +1925,11 @@ Are you sure you want to continue without a password? KDBX 4 (recommended) - + KBDX 4 KDBX 3 - - - - unchanged - Database decryption time is unchanged - မပြောင်းလဲထားပါ + KBDX 3 Number of rounds too high @@ -1955,6 +1983,18 @@ If you keep this number, your database will not be protected from brute force at Threads for parallel execution (KDF settings) အစဉ်လိုက်လုပ်ဆောင်á€á€»á€€á€º(များ) + + Encryption Settings: + + + + Basic + + + + Advanced + အဆင့်မြင့် + DatabaseSettingsWidgetFdoSecrets @@ -2013,18 +2053,10 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry ဖြည့်သွင်းá€á€»á€€á€ºá€á€…်á€á€¯á€›á€¾á€­ အများဆုံး မှá€á€ºá€á€™á€ºá€¸á€á€½á€„်ပါá€á€„်သည့်အရာ အရေအá€á€½á€€á€º - - Max. history items: - အများဆုံး မှá€á€ºá€á€™á€ºá€¸á€á€½á€„် ပါá€á€„်သည့်အရာများ - - Maximum size of history per entry ဖြည့်သွင်းá€á€»á€€á€ºá€á€…်á€á€¯á€›á€¾á€­ အများဆုံး မှá€á€ºá€á€™á€ºá€¸ အရွယ်အစား - - Max. history size: - အများဆုံး မှá€á€ºá€á€™á€ºá€¸á€¡á€›á€½á€šá€ºá€¡á€…ား - - MiB MiB @@ -2055,6 +2087,55 @@ This action is not reversible. (old) (အဟောင်း) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + + + + Limit the amount of history items per entry to: + ထည့်သွင်းမှုá€á€…်á€á€¯á€…ီá မှá€á€ºá€á€™á€ºá€¸á€¡á€€á€¼á€±á€¬á€„်းအရာများá ပမာá€á€€á€­á€¯ ကန့်သá€á€ºá€›á€”် - + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + + + + Limit the total size of history items per entry to: + ထည့်သွင်းမှုá€á€…်á€á€¯á€…ီá မှá€á€ºá€á€™á€ºá€¸á€¡á€€á€¼á€±á€¬á€„်းအရာများá စုစုပေါင်းအရွယ်အစားကို ကန့်သá€á€ºá€›á€”် - + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + ဒေá€á€¬á€˜á€±á€·á€…်မှ အပြီးá€á€­á€¯á€„်ဖျက်ပစ်မည့်အစား ပြန်လည်ရယူနိုင်သော (recycle bin) အုပ်စု ထဲသို့သာ ရွေ့ပြောင်းထားပါዠá„င်း (recycle bin) မှ ရွှေ့ပြောင်းသောအရာများမှာ ဒေá€á€¬á€˜á€±á€·á€…်မှ ဖယ်ရှားá€á€¶á€›á€™á€Šá€º ဖြစ်သည်ዠ+ + + Autosave delay since last change + + + + Autosave delay + + + + Autosave delay since last change in minutes + + + + min + မိနစ် + + + Autosave delay since last change checkbox + + DatabaseSettingsWidgetKeeShare @@ -2182,26 +2263,10 @@ This is definitely a bug, please report it to the developers. CSV file CSV ဖိုင် - - Select CSV file - CSV ဖိုင် ရွေးရန် - Merge database ဒေá€á€¬á€˜á€±á€·á€…်ကို ပေါင်းစပ်ရန် - - KeePass 1 database - KeePass 1 ဒေá€á€¬á€˜á€±á€·á€…် - - - Open KeePass 1 database - KeePass 1 ဒေá€á€¬á€˜á€±á€·á€…် ဖွင့်ရန် - - - Open OPVault - OPVault ဖွင့်ရန် - Export database to CSV file ဒေá€á€¬á€˜á€±á€·á€…်ကို CSV ဖိုင်သို့ ပို့ရန် @@ -2214,6 +2279,18 @@ This is definitely a bug, please report it to the developers. Writing the HTML file failed. HTML ဖိုင်ကို ရေးသားá€á€¼á€„်း မအောင်မြင်ပါዠ+ + Export database to XML file + ဒေá€á€¬á€˜á€±á€·á€…်ကို XML ဖိုင်သို့ á€á€„်ပို့ပါ + + + XML file + XML ဖိုင် + + + Writing the XML file failed + XML ဖိုင်ကို ရေးသားá€á€¼á€„်း မအောင်မြင်ပါ + Export Confirmation ပို့ရန် အá€á€Šá€ºá€•ြုá€á€»á€€á€º @@ -2222,15 +2299,6 @@ This is definitely a bug, please report it to the developers. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? သင်သည် သင့်ဒေá€á€¬á€˜á€±á€·á€…်ကို ကုဒ်ဖြင့်မပြောင်းရသေးသောဖိုင်သို့ ပို့á€á€±á€¬á€·á€™á€Šá€ºá€–ြစ်သည်ዠဤသို့ပို့á€á€¼á€„်းဖြင့် သင့်စကားá€á€¾á€€á€ºá€™á€»á€¬á€¸á€”ှင့် ထိá€á€­á€¯á€€á€ºá€œá€½á€šá€ºá€žá€±á€¬ အá€á€»á€€á€ºá€¡á€œá€€á€ºá€á€­á€¯á€·á€á€½á€„် အန္á€á€›á€¬á€šá€ºá€›á€¾á€­á€žá€Šá€ºá‹ သင် ဆက်လုပ်လိုသည်မှာ သေá€á€»á€¬á€•ါသလားዠ- - New Database - ဒေá€á€¬á€˜á€±á€·á€…်အသစ် - - - %1 [New Database] - Database tab name modifier - %1 [ဒေá€á€¬á€˜á€±á€·á€…်အသစ်] - %1 [Locked] Database tab name modifier @@ -2240,8 +2308,8 @@ This is definitely a bug, please report it to the developers. DatabaseWidget - Database Tags - + Searches and Tags + ရှာဖွေမှုများနှင့် á€á€€á€ºá€™á€»á€¬á€¸ Searching… @@ -2289,7 +2357,11 @@ This is definitely a bug, please report it to the developers. Expired entries - + သက်á€á€™á€ºá€¸á€€á€¯á€”်ဆုံးသွားသော ထည့်သွင်းမှုများ + + + Entries expiring within %1 day(s) + No current database. @@ -2315,6 +2387,18 @@ This is definitely a bug, please report it to the developers. No Results ရလဒ် မရှိပါ + + Save + သိမ်းရန် + + + Enter a unique name or overwrite an existing search from the list: + ထူးá€á€¼á€¬á€¸á€žá€±á€¬ အမည်á€á€…်á€á€¯á€€á€­á€¯ ထည့်ပါ သို့မဟုá€á€º စာရင်းမှရှိပြီးသား ရှာဖွေမှုá€á€…်á€á€¯á€€á€­á€¯ အစားထိုးရေးပါ - + + + Save Search + ရှာဖွေမှုကိုသိမ်းဆည်းပါ + Lock Database? ဒေá€á€¬á€˜á€±á€·á€…်ကို လော့á€á€»á€™á€œá€¬á€¸á‹ @@ -2405,9 +2489,14 @@ Disable safe saves and try again? Could not find database file: %1 ဒေá€á€¬á€˜á€±á€·á€…်ဖိုင်ကို ရှာမá€á€½á€±á€·á€•ါ - %1 - - Entries expiring within %1 day(s) - + + New Database + ဒေá€á€¬á€˜á€±á€·á€…်အသစ် + + + %1 [New Database] + Database tab name modifier + %1 [ဒေá€á€¬á€˜á€±á€·á€…်အသစ်] @@ -2550,6 +2639,10 @@ Would you like to correct it? Hide á€á€¾á€€á€ºá€›á€”် + + %n hour(s) + + %n week(s) %n ပá€á€º @@ -2562,10 +2655,6 @@ Would you like to correct it? %n year(s) %n နှစ် - - %n hour(s) - - EditEntryWidgetAdvanced @@ -2684,10 +2773,20 @@ Would you like to correct it? Add new window association á€á€„်းဒိုး ဆက်စပ်မှုအသစ် ထည့်ရန် + + + + Add item + + + Remove selected window association ရွေးá€á€»á€šá€ºá€‘ားသော á€á€„်းဒိုး ဆက်စပ်မှုကို ဖယ်ရှားရန် + + - + Remove item + - + Window title: á€á€„်းဒိုးá€á€±á€«á€„်းစဉ် - @@ -2712,16 +2811,6 @@ Would you like to correct it? Custom Auto-Type sequence for this window ဤá€á€„်းဒိုးအá€á€½á€€á€º စိá€á€ºá€€á€¼á€­á€¯á€€á€º အလိုအလျောက် စာရိုက်á€á€¼á€„်း အစဉ် - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2823,22 +2912,10 @@ Would you like to correct it? Notes field မှá€á€ºá€á€»á€€á€ºá€™á€»á€¬á€¸ ဖြည့်ရန်အကွက် - - Toggle the checkbox to reveal the notes section. - မှá€á€ºá€á€»á€€á€ºá€™á€»á€¬á€¸ အပိုင်းကို ပြသရန်အá€á€½á€€á€º အမှန်á€á€¼á€…်ရန်အကွက်ကို ဖွင့်/ပိá€á€ºá€•ါዠ- Username field အသုံးပြုသူအမည် ဖြည့်ရန်အကွက် - - Toggle notes visible - မှá€á€ºá€á€»á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ မြင်ရအောင် ဖွင့်ပါ - - - Notes: - မှá€á€ºá€á€»á€€á€ºá€™á€»á€¬á€¸ - - Expiration field သက်á€á€™á€ºá€¸á€€á€¯á€”်ဆုံးá€á€»á€­á€”် အကွက် @@ -2855,14 +2932,6 @@ Would you like to correct it? Presets ကြိုá€á€„်သá€á€ºá€™á€¾á€á€ºá€™á€¾á€¯á€™á€»á€¬á€¸ - - Password: - စကားá€á€¾á€€á€º - - - - URL: - URL - - Url field Url အကွက် @@ -2871,18 +2940,10 @@ Would you like to correct it? Download favicon for URL URL အá€á€½á€€á€º သီးသန့်á€á€€á€ºá€˜á€ºá€†á€­á€¯á€€á€ºá€¡á€­á€¯á€„်ကွန်ကို ဒေါင်းလုဒ်လုပ်ပါ - - Title: - á€á€±á€«á€„်းစဉ် - - Title field á€á€±á€«á€„်းစဉ် ဖြည့်ရန်အကွက် - - Username: - အသုံးပြုသူအမည် - - Password field စကားá€á€¾á€€á€ºá€¡á€€á€½á€€á€º @@ -2892,15 +2953,39 @@ Would you like to correct it? အဖွင့်áŠá€¡á€•ိá€á€º သက်á€á€™á€ºá€¸á€€á€¯á€”်ဆုံးá€á€»á€­á€”် - Expires: - သက်á€á€™á€ºá€¸á€€á€¯á€”်á€á€»á€­á€”် - + Tags list + ပူးá€á€½á€²á€™á€¾á€¯á€…ာရင်း - Tags: + &Username: - Tags list + &Title: + + + + &Password: + + + + UR&L: + + + + &Notes: + + + + Toggle notes visibility + + + + T&ags: + + + + &Expires: @@ -2942,19 +3027,6 @@ Would you like to correct it? Private key သီးသန့် စကားá€á€¾á€€á€ºá€žá€±á€¬á€· - - External file - ပြင်ပဖိုင် - - - Browser for key file - စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€–ိုင်အá€á€½á€€á€º ဘရောက်ဇာ - - - Browse… - Button for opening file dialog - ရှာဖွေရန်… - Attachment ပူးá€á€½á€²á€–ိုင် @@ -2971,6 +3043,23 @@ Would you like to correct it? Remove from agent အေးဂျင့်ဆီမှ ဖယ်ရှားရန် + + External file + ပြင်ပဖိုင် + + + Browser for key file + စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€–ိုင်အá€á€½á€€á€º ဘရောက်ဇာ + + + Browse… + Button for opening file dialog + ရှာဖွေရန်… + + + Generate + ထုá€á€ºá€œá€¯á€•်ရန် + Select attachment file ပူးá€á€½á€²á€–ိုင် ရွေးá€á€»á€šá€ºá€›á€”် @@ -3006,10 +3095,6 @@ Would you like to correct it? Icon အိုင်ကွန် - - Browser Integration - ဘရောက်ဇာ ပေါင်းစပ်ထည့်သွင်းá€á€¼á€„်း - Properties ဂုá€á€ºá€žá€á€¹á€á€­á€™á€»á€¬á€¸ @@ -3026,6 +3111,10 @@ Would you like to correct it? Group has unsaved changes အုပ်စုá€á€½á€„် မသိမ်းရသေးသော အပြောင်းအလဲများ ရှိသည် + + Browser Integration + ဘရောက်ဇာ ပေါင်းစပ်ထည့်သွင်းá€á€¼á€„်း + Enable ဖွင့်ရန် @@ -3041,10 +3130,6 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - အုပ်စု á€á€Šá€ºá€¸á€–ြá€á€ºá€›á€”် - These settings affect to the group's behaviour with the browser extension. ဤဆက်á€á€„်များသည် ဘရောက်ဇာအဆက်နှင့်ဆိုင်သော အဖွဲ့á အပြုအမူပေါ် သက်ရောက်သည်ዠ@@ -3081,6 +3166,22 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups ဤအုပ်စုနှင့် အုပ်စုá€á€½á€²á€™á€»á€¬á€¸á€¡á€á€½á€€á€º HTTP Auth ဖွင့်/ပိá€á€ºá€á€œá€¯á€á€ºá€€á€­á€¯ မသုံးပါနှင့် + + Omit WWW subdomain from matching: + အောက်ပါá€á€­á€¯á€·á€™á€¾ လိုက်ဖက်သော ဆပ်ဒိုမိန်း WWW ကို á€á€»á€”်ထားပါ - + + + Omit WWW subdomain from matching toggle for this and sub groups + ဤအရာနှင့် လက်အောက်á€á€¶á€¡á€¯á€•်စုများအá€á€½á€€á€º လိုက်ဖက်သောပြောင်းလဲမှုမှ ဆပ်ဒိုမိန်း WWW ကို á€á€»á€”်ထားပါ + + + Restrict matching to given browser key: + + + + Restrict matching to given browser key toggle for this and sub groups + + EditGroupWidgetKeeShare @@ -3173,7 +3274,7 @@ Supported extensions are: %1. KeeShare container - + KeeShare ထည့်သွင်းထားသောနေရာ  KeeShare signed container @@ -3267,15 +3368,15 @@ Supported extensions are: %1. Choose icon… - + icon ‌‌‌ရွေးá€á€»á€šá€ºá€•ါ  Set the URL to use to search for a favicon - + Favicon ကိုရှာရန်အá€á€½á€€á€º URL ကို နေရာá€á€»á€‘ား Favicon URL - + Favicon URL Download favicon for URL @@ -3313,10 +3414,6 @@ Supported extensions are: %1. Unable to fetch favicon. သီးသန့်á€á€€á€ºá€˜á€ºá€†á€­á€¯á€€á€ºá€¡á€­á€¯á€„်ကွန်ကို မရယူနိုင်ပါዠ- - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - သင်သည် ကိရိယာများ -> ဆက်á€á€„်များ -> လုံá€á€¼á€¯á€¶á€›á€±á€¸ သို့သွားပြီး DuckDuckGo á€á€€á€ºá€˜á€ºá€†á€­á€¯á€€á€ºá€¡á€­á€¯á€„်ကွန်ကို ဖွင့်နိုင်သည် - Existing icon selected. ရှိနေဆဲအိုင်ကွန်ကို ရွေးá€á€»á€šá€ºá€•ြီးပါပြီዠ@@ -3349,6 +3446,10 @@ Supported extensions are: %1. The following icon(s) failed: အောက်ပါအိုင်ကွန်(များ) မအောင်မြင်ပါ - + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + + EditWidgetProperties @@ -3550,12 +3651,13 @@ This may cause the affected plugins to malfunction. Confirm Overwrite Attachment - + ထပ်ပေါင်းရေးထားသောဖိုင်á€á€½á€²á€€á€­á€¯ အá€á€Šá€ºá€•ြု Attachment "%1" already exists. Would you like to overwrite the existing attachment? - + ဖိုင်á€á€½á€²"%1" ရှိနေပါပြီዠ+သင်လက်ရှိဖိုင်á€á€½á€²á€•ေါ်á€á€½á€„် ထပ်ရေးá€á€»á€„်ပါသလား? Confirm Attachment @@ -3603,7 +3705,7 @@ Error: %1 EntryHistoryModel Current (%1) - + လက်ရှိ (%1) Last modified @@ -3611,11 +3713,11 @@ Error: %1 Age - + အသက် Difference - + ကွဲပြားá€á€¼á€¬á€¸á€”ားမှု Size @@ -3643,7 +3745,7 @@ Error: %1 Custom Attributes - + စိá€á€ºá€€á€¼á€­á€¯á€€á€ºâ€Œá€œá€€á€¹á€á€á€¬á€›á€•် Icon @@ -3651,7 +3753,7 @@ Error: %1 Color - + အရောင် Expiration @@ -3663,7 +3765,7 @@ Error: %1 Custom Data - + စိá€á€ºá€€á€¼á€­á€¯á€€á€ºâ€Œá€¡á€á€»á€€á€ºá€¡á€œá€€á€º Attachments @@ -3675,7 +3777,7 @@ Error: %1 Tags - + ပူးá€á€½á€²á€™á€¾á€¯á€™á€»á€¬á€¸ @@ -3785,6 +3887,10 @@ Error: %1 Has TOTP TOTP ရှိသည် + + Background Color + + EntryPreviewWidget @@ -3805,8 +3911,8 @@ Error: %1 စကားá€á€¾á€€á€º - Notes - မှá€á€ºá€á€»á€€á€ºá€™á€»á€¬á€¸ + URL + URL Expiration @@ -3814,19 +3920,19 @@ Error: %1 Tags - + ပူးá€á€½á€²á€™á€¾á€¯á€™á€»á€¬á€¸ Tags list - + ပူးá€á€½á€²á€™á€¾á€¯á€…ာရင်း Username အသုံးပြုသူအမည် - URL - URL + Notes + မှá€á€ºá€á€»á€€á€ºá€™á€»á€¬á€¸ Advanced @@ -3876,6 +3982,10 @@ Error: %1 Never ဘယ်á€á€±á€¬á€·á€™á€¾ + + Double click to copy value + value ကို ကူးယူရန် နှစ်á€á€»á€€á€ºá€”ှိပ်ပါ + Enabled ဖွင့်ထားသည် @@ -3884,6 +3994,10 @@ Error: %1 Disabled ပယ်ဖျက်ထားသည် + + Double click to copy to clipboard + + EntryURLModel @@ -3891,6 +4005,10 @@ Error: %1 Invalid URL မမှန်ကန်သော URL + + Duplicate URL + + EntryView @@ -3906,38 +4024,42 @@ Error: %1 Reset to defaults ပုံသေမူလသို့ ပြန်လည်သá€á€ºá€™á€¾á€á€ºá€•ါ + + + %1 entry(s)... + + ExportDialog Export options - + á€á€„်ပို့မှု ရွေးá€á€»á€šá€ºá€™á€¾á€¯á€™á€»á€¬á€¸ Sort entries by... - + á€á€„်ရောက်မှုများကို စီစဉ်ပါ You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! - + သင်သည် သင့်ဒေá€á€¬á€˜á€±á€·á€…်ကို ကုဒ်ဖြင့်မပြောင်းရသေးသောဖိုင်သို့ ပို့á€á€±á€¬á€·á€™á€Šá€ºá€–ြစ်သည်ዠဤသို့ပို့á€á€¼á€„်းဖြင့် သင့်စကားá€á€¾á€€á€ºá€™á€»á€¬á€¸á€”ှင့် ထိá€á€­á€¯á€€á€ºá€œá€½á€šá€ºá€žá€±á€¬ အá€á€»á€€á€ºá€¡á€œá€€á€ºá€á€­á€¯á€·á€á€½á€„် အန္á€á€›á€¬á€šá€ºá€›á€¾á€­á€žá€Šá€ºá‹ database order - + စီစဉ်ထားသော ဒေá€á€¬á€˜á€±á€·á€…် name (ascending) - + နာမည် (ascending) name (descending) - + နာမည် (descending) unknown - + အမည်မသိ Export database to HTML file @@ -4125,6 +4247,147 @@ You can enable the DuckDuckGo website icon service in the security section of th သီးသန့်á€á€€á€ºá€˜á€ºá€†á€­á€¯á€€á€ºá€¡á€­á€¯á€„်ကွန်များကို ဒေါင်းလုဒ်လုပ်နေသည် (%1/%2)… + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + WizardPage + + + Entry count: %1 + + + + Group + အုပ်စု + + + Title + á€á€±á€«á€„်းစဉ် + + + Username + အသုံးပြုသူအမည် + + + Password + စကားá€á€¾á€€á€º + + + Url + + + + + ImportWizardPageSelect + + Form + ပုံစံ + + + Import File Selection + + + + Password: + စကားá€á€¾á€€á€º - + + + Key File: + စကားá€á€¾á€€á€ºá€žá€±á€¬á€· ဖိုင် - + + + Browse… + ရှာဖွေရန်… + + + Import Into: + + + + New Database + ဒေá€á€¬á€˜á€±á€·á€…်အသစ် + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + OPVault ဖွင့်ရန် + + + Select import file + + + + All files + ဖိုင်အားလုံး + + + Key files + စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€–ိုင်များ + + + Select key file + စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€–ိုင် ရွေးရန် + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4140,7 +4403,7 @@ You can enable the DuckDuckGo website icon service in the security section of th Kdbx3Reader Missing database headers - + ဒေá€á€¬á€˜á€±á€·á€…် á€á€±á€«á€„်းစီးများ လိုနေသည် Unable to calculate database key @@ -4166,11 +4429,11 @@ If this reoccurs, then your database file may be corrupt. Invalid header field length: field %1 - + မမှန်ကန်သော á€á€±á€«á€„်းစီးပိုင်း အရှည်: အပိုင်း %1 Invalid header data length: field %1, %2 expected, %3 found - + မမှန်ကန်သော á€á€±á€«á€„်းစီး အá€á€»á€€á€ºá€¡á€œá€€á€º အရှည်: အပိုင်း %1, %2 မျော်လင့်ထားသည့် %3 á€á€½á€±á€·á€›á€¾á€­á€á€²á€·á€žá€Šá€ºá‹ @@ -4227,11 +4490,11 @@ If this reoccurs, then your database file may be corrupt. Invalid header field length: field %1 - + မမှန်ကန်သော á€á€±á€«á€„်းစီးပိုင်း အရှည်: အပိုင်း %1 Invalid header data length: field %1, %2 expected, %3 found - + မမှန်ကန်သော á€á€±á€«á€„်းစီး အá€á€»á€€á€ºá€¡á€œá€€á€º အရှည်: အပိုင်း %1, %2 မျော်လင့်ထားသည့် %3 á€á€½á€±á€·á€›á€¾á€­á€á€²á€·á€žá€Šá€ºá‹ Failed to open buffer for KDF parameters in header @@ -4251,11 +4514,11 @@ If this reoccurs, then your database file may be corrupt. Invalid inner header field length: field %1 - + မမှန်ကန်သော အá€á€½á€„်းá€á€±á€«á€„်းစီးပိုင်း အရှည်: အပိုင်း %1 Invalid inner header data length: field %1, %2 expected, %3 found - + မမှန်ကန်သော အá€á€½á€„်းပိုင်း á€á€±á€«á€„်းစီး အá€á€»á€€á€ºá€¡á€œá€€á€º အရှည်: အပိုင်း %1, %2 မျော်လင့်ထားသည့် %3 á€á€½á€±á€·á€›á€¾á€­á€á€²á€·á€žá€Šá€ºá‹ Invalid inner header binary size @@ -4559,17 +4822,6 @@ Line %2, column %3 သီးသန့်စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€€á€­á€¯ ဖွင့်á€á€¼á€„်း မအောင်မြင်ပါ - - KeePass1OpenWidget - - Import KeePass1 Database - KeePass1 ဒေá€á€¬á€˜á€±á€·á€…်ကို á€á€„်ပို့ရန် - - - Unable to open the database. - ဒေá€á€¬á€˜á€±á€·á€…်ကို ဖွင့်áမရပါዠ- - KeePass1Reader @@ -4926,10 +5178,6 @@ Are you sure you want to continue with this file? &Recent Databases &မကြာမီက ဒေá€á€¬á€˜á€±á€·á€…်များ - - &Import - &ထည့်သွင်းရန် - &Export &ပို့ရန် @@ -4950,6 +5198,10 @@ Are you sure you want to continue with this file? TOTP TOTP + + Tags + ပူးá€á€½á€²á€™á€¾á€¯á€™á€»á€¬á€¸ + &Groups &အုပ်စုများ @@ -4994,34 +5246,18 @@ Are you sure you want to continue with this file? &New Database… &ဒေá€á€¬á€˜á€±á€·á€…်အသစ်… - - Create a new database - ဒေá€á€¬á€˜á€±á€·á€…်အသစ် ဖန်á€á€®á€¸á€›á€”် - &Merge From Database… &ဒေá€á€¬á€˜á€±á€·á€…်မှ ပေါင်းစပ်ရန်… - - Merge from another KDBX database - အá€á€¼á€¬á€¸ KDBX ဒေá€á€¬á€˜á€±á€·á€…်မှ ပေါင်းစပ်ရန် - &New Entry… &ဖြည့်သွင်းá€á€»á€€á€ºá€¡á€žá€…်… - - Add a new entry - ဖြည့်သွင်းá€á€»á€€á€ºá€¡á€žá€…် ထည့်ရန် - &Edit Entry… &ဖြည့်သွင်းá€á€»á€€á€º á€á€Šá€ºá€¸á€–ြá€á€ºá€›á€”်… - - View or edit entry - ဖြည့်သွင်းá€á€»á€€á€ºá€€á€­á€¯ ကြည့်ရန် သို့မဟုá€á€º á€á€Šá€ºá€¸á€–ြá€á€ºá€›á€”် - &Delete Entry… &ဖြည့်သွင်းရန် ဖျက်ရန်… @@ -5030,10 +5266,6 @@ Are you sure you want to continue with this file? &New Group… &အုပ်စုသစ်… - - Add a new group - အုပ်စုသစ် ထည့်ရန် - &Edit Group… &အုပ်စု á€á€Šá€ºá€¸á€–ြá€á€ºá€›á€”်… @@ -5066,18 +5298,10 @@ Are you sure you want to continue with this file? Database &Reports… ဒေá€á€¬á€˜á€±á€·á€…် &အစီရင်á€á€¶á€…ာများ… - - Statistics, health check, etc. - စာရင်းအင်းአကျန်းမာရေး စစ်ဆေးမှု စသည် - &Database Settings… &ဒေá€á€¬á€˜á€±á€·á€…် ဆက်á€á€„်များ… - - Database settings - ဒေá€á€¬á€˜á€±á€·á€…် ဆက်á€á€„်များ - &Clone Entry… &ဖြည့်သွင်းá€á€»á€€á€º ပုံá€á€°á€•ွားရန်… @@ -5086,34 +5310,18 @@ Are you sure you want to continue with this file? Move u&p အပေါ်သို့ ရွှေ့ရန် - - Move entry one step up - ဖြည့်သွင်းá€á€»á€€á€ºá€€á€­á€¯ á€á€…်ဆင့်á€á€€á€º ရွှေ့ရန် - Move do&wn အောက်သို့ ရွှေ့ရန် - - Move entry one step down - ဖြည့်သွင်းá€á€»á€€á€ºá€€á€­á€¯ အောက်သို့ á€á€…်ဆင့်á€á€»á€›á€½á€¾á€±á€·á€›á€”် - Copy &Username &အသုံးပြုသူအမည် ကူးရန် - - Copy username to clipboard - အသုံးပြုသူအမည်ကို clipboard သို့ ကူးရန် - Copy &Password &စကားá€á€¾á€€á€º ကူးရန် - - Copy password to clipboard - စကားá€á€¾á€€á€ºá€€á€­á€¯ clipboard သို့ ကူးရန် - &Settings &ဆက်á€á€„်များ @@ -5136,36 +5344,24 @@ Are you sure you want to continue with this file? &Lock Database - + &ဒေá€á€¬á€˜á€±á€…့်များကို လော့á€á€»á€›á€”် Lock &All Databases - + လော့á€á€»á€á€¼á€„်း &ဒေá€á€¬á€˜á€±á€·á€…် အားလုံး &Title &á€á€±á€«á€„်းစဉ် - Copy title to clipboard - á€á€±á€«á€„်းစဉ်ကို clipboard သို့ ကူးရန် - - - &URL - &URL - - - Copy URL to clipboard - URL ကို clipboard သို့ ကူးရန် + Copy &URL + &URL ကို ကူးယူပါ &Notes &မှá€á€ºá€á€»á€€á€ºá€™á€»á€¬á€¸ - - Copy notes to clipboard - မှá€á€ºá€á€»á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ clipboard သို့ ကူးရန် - &CSV File… &CSV ဖိုင်… @@ -5178,26 +5374,14 @@ Are you sure you want to continue with this file? KeePass 1 Database… KeePass 1 ဒေá€á€¬á€˜á€±á€·á€…်… - - Import a KeePass 1 database - KeePass 1 ဒေá€á€¬á€˜á€±á€·á€…် ထည့်သွင်းရန် - 1Password Vault… 1Password သိုလှောင်á€á€”်း… - - Import a 1Password Vault - 1Password သိုလှောင်á€á€”်း ထည့်သွင်းရန် - CSV File… CSV ဖိုင်… - - Import a CSV file - CSV ဖိုင် ထည့်သွင်းရန် - Show TOTP TOTP ပြရန် @@ -5214,6 +5398,10 @@ Are you sure you want to continue with this file? Copy &TOTP &TOTP ကို ကူးရန် + + Copy Password and TOTP + စကားá€á€¾á€€á€ºá€”ှင့် TOTP ကို ကူးယူပါ + E&mpty recycle bin အမှိုက်ပုံးကို သွန်ရန် @@ -5238,10 +5426,6 @@ Are you sure you want to continue with this file? &Online Help &အွန်လိုင်း အကူအညီ - - Go to online documentation - အွန်လိုင်း အသုံးပြုနည်းလက်စွဲသို့ သွားရန် - &User Guide &အသုံးပြုသူ လမ်းညွှန် @@ -5310,6 +5494,10 @@ Are you sure you want to continue with this file? Clone Group... အုပ်စုကို ပုံá€á€°á€•ွားရန်… + + &XML File… + &XML ဖိုင်… + Clear history မှá€á€ºá€á€™á€ºá€¸á€€á€­á€¯ ရှင်းရန် @@ -5342,6 +5530,10 @@ We recommend you use the AppImage available on our downloads page. သá€á€­á€•ေးá€á€»á€€á€º - သင်á Qt ဗားရှင်းသည် မျက်နှာပြင်ပေါ်ရှိကီးဘုá€á€º အသုံးပြုပါက KeePassXC ကို ရပ်á€á€”့်စေနိုင်သည်ዠကျွန်ုပ်á€á€­á€¯á€·á ဒေါင်းလုဒ်စာမျက်နှာá€á€½á€„် ရရှိနိုင်သော AppImage ကို သုံးရန် သင့်အား အကြံပြုပါသည်ዠ+ + No Tags + á€á€‚်များမရှိပါ + Restore Entry(s) @@ -5370,6 +5562,10 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC KeePassXC မှ ထွက်ရန် + + %1 Entry(s) + %1 ဖြည့်သွင်းá€á€»á€€á€º(s) + Please present or touch your YubiKey to continue… ကျေးဇူးပြုá ဆက်လုပ်ရန် သင့် YubiKey ကို á€á€„်ပြပါ သို့မဟုá€á€º နှိပ်ပါ… @@ -5382,6 +5578,274 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? သင်သည် ဤဆက်á€á€„်ကို သုံးရန် အက်ပလီကေးရှင်းကို ပြန်လည်စá€á€„်ရမည်ዠယá€á€¯ ပြန်လည်စá€á€„်လိုပါသလားዠ+ + Allow Screen Capture + မျက်နှာပြင်ကို ဓါá€á€ºá€•ုံရိုက်ယူá€á€½á€„့်ပြုပါ + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + + + + Import Passkey + + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + ဖြည့်သွင်းá€á€»á€€á€ºá€€á€­á€¯ á€á€Šá€ºá€¸á€–ြá€á€ºá€›á€”် + + + Delete Entry + + + + Create Group + + + + Edit Group + အုပ်စု á€á€Šá€ºá€¸á€–ြá€á€ºá€›á€”် + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + အသုံးပြုသူအမည် ကူးရန် + + + Copy Password + စကားá€á€¾á€€á€º ကူးရန် + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + KeePass1 ဒေá€á€¬á€˜á€±á€·á€…်ကို á€á€„်ပို့ရန် + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + ManageDatabase @@ -5418,11 +5882,11 @@ We recommend you use the AppImage available on our downloads page. Reset - + မူလအá€á€­á€¯á€„်းပြန်လည်စá€á€„်á€á€¼á€„်း Reset any remembered decisions for this application - + ယá€á€¯á€¡á€€á€ºá€•်ပလီကေးရှင်းအá€á€½á€€á€ºá€žá€­á€™á€ºá€¸á€†á€Šá€ºá€¸á€‘ားသောမှá€á€ºá€á€™á€ºá€¸á€™á€»á€¬á€¸á€¡á€¬á€¸á€™á€°á€œá€¡á€á€­á€¯á€„်းပြန်လည်သá€á€ºá€™á€¾á€á€ºá€•ါ @@ -5439,26 +5903,6 @@ We recommend you use the AppImage available on our downloads page. Overwriting %1 [%2] ထပ်ရေးနေသည် %1 [%2] - - older entry merged from database "%1" - ဒေá€á€¬á€˜á€±á€·á€…် "%1" မှ ပိုဟောင်းသော ဖြည့်သွင်းá€á€»á€€á€ºá€€á€­á€¯ ပေါင်းစပ်ထားသည် - - - Adding backup for older target %1 [%2] - ပိုဟောင်းသော ပစ်မှá€á€º %1 အá€á€½á€€á€º အရန် ထည့်နေသည် [%2] - - - Adding backup for older source %1 [%2] - ပိုဟောင်းသော ရင်းမြစ် %1 အá€á€½á€€á€º အရန် ထည့်နေသည် [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - ပိုသစ်သော ရင်းမြစ် %1 အစား ပိုဟောင်းသော ပစ်မှá€á€º ဖြည့်သွင်းá€á€»á€€á€ºá€€á€­á€¯ ပြန်သုံးနေသည် [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - ပိုသစ်သော ပစ်မှá€á€º %1 အစား ပိုဟောင်းသော ရင်းမြစ် ဖြည့်သွင်းá€á€»á€€á€ºá€€á€­á€¯ ပြန်သုံးနေသည် [%2] - Synchronizing from newer source %1 [%2] ပိုသစ်သော ရင်းမြစ် %1 မှ á€á€»á€­á€”်ကိုက်နေသည် [%2] @@ -5518,14 +5962,6 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. ဒေá€á€¬á€˜á€±á€·á€…် ကုဒ်ဖြင့်ပြောင်းá€á€¼á€„်း ဆက်á€á€„်များကို ဤနေရာá€á€½á€„် á€á€»á€­á€”်ညှိနိုင်သည်ዠáŽá€„်းá€á€­á€¯á€·á€€á€­á€¯ ဒေá€á€¬á€˜á€±á€·á€…် ဆက်á€á€„်များá€á€½á€„် နောက်မှ ပြောင်းလဲနိုင်သည်ዠ- - Advanced Settings - အဆင့်မြင့် ဆက်á€á€„်များ - - - Simple Settings - လွယ်ကူရိုးရှင်းသော ဆက်á€á€„်များ - NewDatabaseWizardPageDatabaseKey @@ -5606,15 +6042,6 @@ We recommend you use the AppImage available on our downloads page. ကုဒ်ပြောင်းမထားသောစာသား %1 ဘိုက်ကို မျှော်လင့်á€á€²á€·á€žá€Šá€ºáŠ %2 á€á€½á€±á€·á€á€²á€·á€žá€Šá€º - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - ဖá€á€ºá€›á€”်ဒေá€á€¬á€˜á€±á€·á€…်သည် မည်သည့်အရာကိုမျှ မထုá€á€ºá€œá€¯á€•်á€á€²á€·á€•ါ -%1 - - OpVaultReader @@ -5688,6 +6115,10 @@ We recommend you use the AppImage available on our downloads page. Unknown cipher: %1 အမည်မသိ ကုဒ်ရေးသားမှု - %1 + + AES-256/GCM is currently not supported + AES-256/GCM ကို လောလောဆယ် မပံ့ပိုးပါ + Passphrase is required to decrypt this key ဤစကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€€á€­á€¯ ပြန်ဖြည်ရန် လျှို့á€á€¾á€€á€ºá€…ာသား လိုအပ်သည် @@ -5754,26 +6185,174 @@ We recommend you use the AppImage available on our downloads page. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€™á€»á€¬á€¸ မကိုက်ညီပါ + SSH Key Generator + - Passwords match so far - ယá€á€¯á€á€»á€­á€”်ထိ စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€™á€»á€¬á€¸ ကိုက်ညီသည် + Type + အမျိုးအစား - Toggle Password (%1) - စကားá€á€¾á€€á€ºá€€á€­á€¯ á€á€¾á€€á€ºá€›á€”်/ပြရန် (%1) + Bits + - Generate Password (%1) - စကားá€á€¾á€€á€º ထုá€á€ºá€œá€¯á€•်ရန် (%1) + Comment + မှá€á€ºá€á€»á€€á€ºá€•ေးရန် + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + - Warning: Caps Lock enabled! - သá€á€­á€•ေးá€á€»á€€á€º - Caps Lock ဖွင့်ထားသည်ዠ+ Export the following Passkey entries. + + + + Filenames will be generated with title and .passkey file extension. + + + + Export entries + + + + Export Selected + + + + Cancel + ပယ်ဖျက်ရန် + + + Export to folder + + + + + PasskeyExporter + + KeePassXC: Passkey Export + + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + + Cannot open file + + + + Cannot open file "%1" for writing. + + + + Cannot write to file + + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + + + + Username: %1 + + + + Group + အုပ်စု + + + Database + + + + Import Passkey + + + + Import + ထည့်သွင်းရန် + + + Cancel + ပယ်ဖျက်ရန် + + + Import the following Passkey: + + + + Entry + ဖြည့်သွင်းá€á€»á€€á€º + + + Import the following Passkey to this entry: + + + + Create new entry + + + + Default Passkeys group (Imported Passkeys) + + + + Relying Party: %1 + + + + + PasskeyImporter + + Passkey file + + + + All files + ဖိုင်အားလုံး + + + Open Passkey file + + + + Cannot open file + + + + Cannot open file "%1" for reading. + + + + Cannot import Passkey + + + + Cannot import Passkey file "%1". Data is missing. + + + + Cannot import Passkey file "%1". Private key is missing or malformed. + + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + @@ -5992,11 +6571,11 @@ We recommend you use the AppImage available on our downloads page. Delete selected wordlist - + ရွေးá€á€¼á€šá€ºá€‘ားသောစာလုံးများအားဖျက်ပါ Add custom wordlist - + စိá€á€ºá€€á€¼á€­á€¯á€€á€ºá€•ြုလုပ်ထားသောစာလုံးစာရင်းအားထည့်သွင်းပါ character @@ -6032,57 +6611,12 @@ We recommend you use the AppImage available on our downloads page. (SYSTEM) - + စနစ် Entropy: %1 bit အá€á€»á€€á€ºá€¡á€œá€€á€º ရွှေ့ပြောင်းနှုန်း - %1 ဘစ် - - Confirm Delete Wordlist - - - - Do you really want to delete the wordlist "%1"? - - - - Failed to delete wordlist - - - - Wordlists - - - - All files - ဖိုင်အားလုံး - - - Select Custom Wordlist - - - - Overwrite Wordlist? - - - - Wordlist "%1" already exists as a custom wordlist. -Do you want to overwrite it? - - - - Failed to add wordlist - - - - Logograms - စာသားကိုယ်စားပြု သင်္ကေá€á€™á€»á€¬á€¸ - - - Special Characters - အထူးစာလုံးများ - Password Quality: %1 စကားá€á€¾á€€á€º အရည်အသွေး - %1 @@ -6107,6 +6641,103 @@ Do you want to overwrite it? Password quality အလွန်ကောင်း + + Confirm Delete Wordlist + စာလုံးစာရင်းအားဖျက်ရန်အá€á€Šá€ºá€•ြုပါသည် + + + Do you really want to delete the wordlist "%1"? + သင့်အနေနှင့်စာလုံးစာရင်း"%1"အားဖျက်ရန်သေá€á€»á€¬á€•ါသလား? + + + Failed to delete wordlist + စာလုံးစာရင်းအားဖျက်ရန်မအောင်မြင်ပါ + + + Wordlists + စာလုံးစာရင်း + + + All files + ဖိုင်အားလုံး + + + Select Custom Wordlist + စိá€á€ºá€€á€¼á€­á€¯á€€á€ºá€•ြုလုပ်ထားသောစာလုံးစာရင်းအားရွေးá€á€¼á€šá€ºá€•ါ + + + Overwrite Wordlist? + စာလုံးစာရင်း ထပ်ရေးရန် + + + Wordlist "%1" already exists as a custom wordlist. +Do you want to overwrite it? + စာလုံးစာရင်း á ရာá€á€­á€¯á€ºá€„်နှုန်းသည် စိá€á€ºá€€á€¼á€­á€¯á€€á€ºá€•ြုလုပ်နိုင်သော စာလုံးစာရင်းá€á€½á€„် ပါရှိပြီးဖြစ်သည်ዠ+သင် ထပ်ရေးá€á€»á€„်ပါသလား ? + + + Failed to add wordlist + စာလုံးစာရင်းá€á€½á€„် ထပ်ဖြည့်ရန် မအောင်မြင်ပါ á‹ + + + Logograms + စာသားကိုယ်စားပြု သင်္ကေá€á€™á€»á€¬á€¸ + + + Special Characters + အထူးစာလုံးများ + + + + PasswordWidget + + Passwords do not match + စကားá€á€¾á€€á€ºá€™á€»á€¬á€¸ မကိုက်ညီပါ + + + Passwords match so far + ယá€á€¯á€á€»á€­á€”်ထိ စကားá€á€¾á€€á€ºá€™á€»á€¬á€¸ ကိုက်ညီသည် + + + Toggle Password (%1) + စကားá€á€¾á€€á€ºá€€á€­á€¯ á€á€¾á€€á€ºá€›á€”်/ပြရန် (%1) + + + Generate Password (%1) + စကားá€á€¾á€€á€º ထုá€á€ºá€œá€¯á€•်ရန် (%1) + + + Warning: Caps Lock enabled! + သá€á€­á€•ေးá€á€»á€€á€º - Caps Lock ဖွင့်ထားသည်ዠ+ + + Quality: %1 + အရည်အသွေး - %1 + + + Poor + Password quality + ညံ့ + + + Weak + Password quality + အားနည်း + + + Good + Password quality + ကောင်း + + + Excellent + Password quality + အလွန်ကောင်း + + + Toggle password visibility using Control + H. Open the password generator using Control + G. + + PickcharsDialog @@ -6161,6 +6792,10 @@ Do you want to overwrite it? Continue ဆက်လုပ်ရန် + + Continue with weak password + + QObject @@ -6366,19 +7001,19 @@ Do you want to overwrite it? Export an attachment of an entry. - + ဖြည့်သွင်းá€á€»á€€á€ºá€á€…်á€á€¯á€¡á€á€½á€€á€º ပူးá€á€½á€²á€–ိုင်အား á€á€„်ပို့ပါ á‹ Path of the entry with the target attachment. - + ရည်ရွယ်ထားသော ပူးá€á€½á€²á€–ိုင်နှင့်အá€á€° ဖြည့်သွင်းရမည့် လမ်းကြောင်း Name of the attachment to be exported. - + á€á€„်ပို့ရမည့် ပူးá€á€½á€²á€–ိုင်နာမည် Path to which the attachment should be exported. - + ပူးá€á€½á€²á€–ိုင်á€á€„်ပို့သင့်သည့် လမ်းကြောင်း Could not find entry with path %1. @@ -6386,63 +7021,63 @@ Do you want to overwrite it? Could not find attachment with name %1. - + %1 နာမည်နှင့် ပူးá€á€½á€²á€–ိုင်အား ရှာမá€á€½á€±á€·á€•ါ á‹ No export target given. Please use '--stdout' or specify an 'export-file'. - + á€á€„်ပို့ရမည့် ပစ်မှá€á€ºá€”ေရာ ပေးထားá€á€¼á€„်းမရှိ ዠကျေးဇူးပြုá '--stdout' ကိုသုံးပါ သို့မဟုá€á€º 'export-file' ကို သá€á€ºá€™á€¾á€á€ºá€•ေးပါዠCould not open output file %1. - + %1 ရလဒ်ဖိုင်ကို ဖွင့်áမရပါ á‹ Successfully exported attachment %1 of entry %2 to %3. - + ဖြည့်သွင်းá€á€»á€€á€º á‚% မှ რ% á á % သော ပူးá€á€½á€²á€–ိုင်များကို အောင်မြင်စွာထုပ်ယူပြီးဖြစ်သည်ዠOverwrite existing attachments. - + ရှိရင်းစွဲ ပူးá€á€½á€²á€–ိုင်များအပေါ် ထပ်ရေးပါዠImports an attachment to an entry. - + ပူးá€á€½á€²á€–ိုင်အား ဖြည့်သွင်းá€á€»á€€á€ºá€žá€­á€¯á€· ထည့်သွင်းပါዠPath of the entry. - + ဖြည့်သွင်းရန် လမ်းကြောင်း Name of the attachment to be added. - + ထည့်ရမည့် ပူးá€á€½á€²á€–ိုင်áအမည် Path of the attachment to be imported. - + ပူးá€á€½á€²á€–ိုင်á လမ်းကြောင်းကို á€á€„်သွင်းသည့် Attachment %1 already exists for entry %2. - + ဖြည့်သွင်းá€á€»á€€á€º á‚% အá€á€½á€€á€º ပူးá€á€½á€²á€–ိုင် á% ရှိပြီးဖြစ်သည်ዠCould not open attachment file %1. - + %1 ပူးá€á€½á€²á€–ိုင်ကို ဖွင့်áမရပါ á‹ Successfully imported attachment %1 as %2 to entry %3. - + ဖြည့်သွင်းá€á€»á€€á€º á‚% မှ რ% á á % သော ပူးá€á€½á€²á€–ိုင်များကို အောင်မြင်ထည့်သွင်းပြီးဖြစ်သည်ዠRemove an attachment of an entry. - + ဖြည့်သွင်းá€á€»á€€á€ºá ပူးá€á€½á€²á€–ိုင်အား ဖယ်ရှားသည်ዠName of the attachment to be removed. - + ဖယ်ရှားရမည့် ပူးá€á€½á€²á€–ိုင်အမည် Successfully removed attachment %1 from entry %2. - + ထည့်သွင်းပြီး %2 မှ ပူးá€á€½á€²á€–ိုင် %1 အား အောင်မြင်စွာဖယ်ရှားပြီး Copy the given attribute to the clipboard. Defaults to "password" if not specified. @@ -6554,6 +7189,10 @@ Do you want to overwrite it? Too many arguments provided. ပေးထားသော á€á€”်ဖိုးများ များလွန်းသည်ዠ+ + Path of the database. + ဒေá€á€¬á€˜á€±á€·á€…် လမ်းကြောင်းዠ+ Target decryption time in MS for the database. ဒေá€á€¬á€˜á€±á€·á€…်အá€á€½á€€á€º MS ရှိ မှန်းထားသော ပြန်ဖြည်ရန်ကြာá€á€»á€­á€”်ዠ@@ -6562,6 +7201,12 @@ Do you want to overwrite it? time ကြာá€á€»á€­á€”် + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + ဒေá€á€¬á€˜á€±á€·á€…်အá€á€½á€€á€º သော့ဖိုင်ကို သá€á€ºá€™á€¾á€á€ºá€•ါዠ+ဤရွေးá€á€»á€šá€ºá€™á€¾á€¯á€™á€»á€¬á€¸á€€á€­á€¯ ရပ်á€á€”့်ထားပြီးአáŽá€„်းအစား --set-key-file ကို အသုံးပြုပါዠ+ Set the key file for the database. ဒေá€á€¬á€˜á€±á€·á€…်အá€á€½á€€á€º စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€–ိုင်ကို သá€á€ºá€™á€¾á€á€ºá€•ါዠ@@ -6574,10 +7219,6 @@ Do you want to overwrite it? Create a new database. ဒေá€á€¬á€˜á€±á€·á€…်အသစ်á€á€…်á€á€¯ ဖန်á€á€®á€¸á€•ါዠ- - Path of the database. - ဒေá€á€¬á€˜á€±á€·á€…် လမ်းကြောင်းዠ- Invalid decryption time %1. မမှန်ကန်သော ပြန်ဖြည်ရန်ကြာá€á€»á€­á€”် %1á‹ @@ -6622,6 +7263,158 @@ Do you want to overwrite it? Successfully created new database. ဒေá€á€¬á€˜á€±á€·á€…်အသစ် အောင်မြင်စွာ ဖန်á€á€®á€¸á€•ြီးပါပြီዠ+ + Unset the password for the database. + ဒေá€á€¬á€˜á€±á€·á€…်အá€á€½á€€á€º စကားá€á€¾á€€á€ºá€€á€­á€¯ မသá€á€ºá€™á€¾á€á€ºá€•ါዠ+ + + Unset the key file for the database. + ဒေá€á€¬á€˜á€±á€·á€…်အá€á€½á€€á€º သော့ဖိုင်ကို သá€á€ºá€™á€¾á€á€ºá€™á€‘ားပါዠ+ + + Edit a database. + ဒေá€á€¬á€˜á€±á€·á€…ကို á€á€Šá€ºá€¸á€–ြá€á€ºá€•ါዠ+ + + Cannot use %1 and %2 at the same time. + %1 နှင့် %2 ကို á€á€…်á€á€»á€­á€”်á€á€Šá€ºá€¸á€á€½á€„် အသုံးမပြုနိုင်ပါዠ+ + + Could not change the database key. + ဒေá€á€¬á€˜á€±á€·á€…်သော့ကို မပြောင်းနိုင်ပါዠ+ + + Database was not modified. + ဒေá€á€¬á€˜á€±á€·á€…်ကို မွမ်းမံမထားပါዠ+ + + Writing the database failed: %1 + ဒေá€á€¬á€˜á€±á€·á€…်ကို ရေးသားá€á€¼á€„်း မအောင်မြင်ပါ - %1 + + + Successfully edited the database. + ဒေá€á€¬á€˜á€±á€·á€…်ကို အောင်မြင်စွာ á€á€Šá€ºá€¸á€–ြá€á€ºá€á€²á€·á€žá€Šá€ºá‹ + + + Cannot remove password: The database does not have a password. + စကားá€á€¾á€€á€ºá€€á€­á€¯ ဖယ်ရှားáမရပါ - ဒေá€á€¬á€˜á€±á€·á€…်á€á€½á€„် စကားá€á€¾á€€á€ºá€á€…်á€á€¯ မရှိပါዠ+ + + Cannot remove file key: The database does not have a file key. + ဖိုင်သော့ကို ဖယ်ရှားáမရပါ - ဒေá€á€¬á€˜á€±á€·á€…်á€á€½á€„် ဖိုင်သော့á€á€…်á€á€¯ မရှိပါዠ+ + + Loading the new key file failed: %1 + သော့ဖိုင်အသစ်ကို á€á€„်á€á€¼á€„်း မအောင်မြင်ပါ - %1 + + + Found unexpected Key type %1 + မမျှော်လင့်ထားသော သော့အမျိုးအစား %1 ကို á€á€½á€±á€·á€›á€¾á€­á€á€²á€·á€žá€Šá€º + + + Cannot remove all the keys from a database. + ဒေá€á€¬á€˜á€±á€·á€…်á€á€…်á€á€¯á€™á€¾ သော့အားလုံးကို မဖယ်ရှားနိုင်ပါዠ+ + + Show a database's information. + ဒေá€á€¬á€˜á€±á€·á€…်á အá€á€»á€€á€ºá€¡á€œá€€á€ºá€€á€­á€¯ ပြပါዠ+ + + UUID: + UUID - + + + Name: + အမည် - + + + Description: + ဖော်ပြá€á€»á€€á€º - + + + Cipher: + ကုဒ်ရေးသားမှု - + + + KDF: + KDF - + + + Recycle bin is enabled. + အမှိုက်ပုံးကို ဖွင့်ထားသည်ዠ+ + + Recycle bin is not enabled. + အမှိုက်ပုံးကို ဖွင့်မထားပါዠ+ + + Location + á€á€Šá€ºá€”ေရာ + + + Database created + ဒေá€á€¬á€˜á€±á€·á€…် ဖန်á€á€®á€¸á€•ြီးပါပြီ + + + Last saved + နောက်ဆုံးသိမ်းá€á€²á€·á€á€»á€­á€”် + + + Unsaved changes + သိမ်းမထားသော အပြောင်းအလဲများ + + + yes + ဟုá€á€º + + + no + မဟုá€á€º + + + Number of groups + အုပ်စု အရေအá€á€½á€€á€º + + + Number of entries + ဖြည့်သွင်းá€á€»á€€á€º အရေအá€á€½á€€á€º + + + Number of expired entries + သက်á€á€™á€ºá€¸á€€á€¯á€”်သွားသော ဖြည့်သွင်းá€á€»á€€á€º အရေအá€á€½á€€á€º + + + Unique passwords + သီးသန့် စကားá€á€¾á€€á€ºá€™á€»á€¬á€¸ + + + Non-unique passwords + သီးသန့်မဟုá€á€ºá€žá€±á€¬ စကားá€á€¾á€€á€ºá€™á€»á€¬á€¸ + + + Maximum password reuse + အများဆုံး စကားá€á€¾á€€á€ºá€•ြန်သုံးမှု + + + Number of short passwords + စကားá€á€¾á€€á€ºá€¡á€á€­á€¯ အရေအá€á€½á€€á€º + + + Number of weak passwords + အားနည်းသော စကားá€á€¾á€€á€º အရေအá€á€½á€€á€º + + + Entries excluded from reports + အစီရင်á€á€¶á€…ာများမှ ဖယ်ထားသော ဖြည့်သွင်းá€á€»á€€á€ºá€™á€»á€¬á€¸ + + + Average password length + ပျမ်းမျှ စကားá€á€¾á€€á€ºá€¡á€›á€¾á€Šá€º + + + %1 characters + စာလုံး %1 လုံး + Word count for the diceware passphrase. á€á€­á€¯á€„်မာသော လျှို့á€á€¾á€€á€ºá€…ာစုအá€á€½á€€á€º စာလုံးအရေအá€á€½á€€á€ºá‹ @@ -6673,10 +7466,6 @@ Do you want to overwrite it? Enter new password for entry: ဖြည့်သွင်းá€á€»á€€á€ºá€¡á€á€½á€€á€º စကားá€á€¾á€€á€ºá€¡á€žá€…် ထည့်ပါ - - - Writing the database failed: %1 - ဒေá€á€¬á€˜á€±á€·á€…်ကို ရေးသားá€á€¼á€„်း မအောင်မြင်ပါ - %1 - Successfully edited entry %1. ဖြည့်သွင်းá€á€»á€€á€º %1 ကို အောင်မြင်စွာ á€á€Šá€ºá€¸á€–ြá€á€ºá€•ြီးပါပြီዠ@@ -6851,7 +7640,7 @@ Do you want to overwrite it? Use custom character set - + စိá€á€ºá€€á€¼á€­á€¯á€€á€º စာလုံး အစု အားအသုံးပြုမည် Exclude similar looking characters @@ -6901,106 +7690,6 @@ Do you want to overwrite it? Successfully imported database. ဒေá€á€¬á€˜á€±á€·á€…် အောင်မြင်စွာ ထည့်သွင်းပြီးပါပြီዠ- - Show a database's information. - ဒေá€á€¬á€˜á€±á€·á€…်á အá€á€»á€€á€ºá€¡á€œá€€á€ºá€€á€­á€¯ ပြပါዠ- - - UUID: - UUID - - - - Name: - အမည် - - - - Description: - ဖော်ပြá€á€»á€€á€º - - - - Cipher: - ကုဒ်ရေးသားမှု - - - - KDF: - KDF - - - - Recycle bin is enabled. - အမှိုက်ပုံးကို ဖွင့်ထားသည်ዠ- - - Recycle bin is not enabled. - အမှိုက်ပုံးကို ဖွင့်မထားပါዠ- - - Location - á€á€Šá€ºá€”ေရာ - - - Database created - ဒေá€á€¬á€˜á€±á€·á€…် ဖန်á€á€®á€¸á€•ြီးပါပြီ - - - Last saved - နောက်ဆုံးသိမ်းá€á€²á€·á€á€»á€­á€”် - - - Unsaved changes - သိမ်းမထားသော အပြောင်းအလဲများ - - - yes - ဟုá€á€º - - - no - မဟုá€á€º - - - Number of groups - အုပ်စု အရေအá€á€½á€€á€º - - - Number of entries - ဖြည့်သွင်းá€á€»á€€á€º အရေအá€á€½á€€á€º - - - Number of expired entries - သက်á€á€™á€ºá€¸á€€á€¯á€”်သွားသော ဖြည့်သွင်းá€á€»á€€á€º အရေအá€á€½á€€á€º - - - Unique passwords - သီးသန့် စကားá€á€¾á€€á€ºá€™á€»á€¬á€¸ - - - Non-unique passwords - သီးသန့်မဟုá€á€ºá€žá€±á€¬ စကားá€á€¾á€€á€ºá€™á€»á€¬á€¸ - - - Maximum password reuse - အများဆုံး စကားá€á€¾á€€á€ºá€•ြန်သုံးမှု - - - Number of short passwords - စကားá€á€¾á€€á€ºá€¡á€á€­á€¯ အရေအá€á€½á€€á€º - - - Number of weak passwords - အားနည်းသော စကားá€á€¾á€€á€º အရေအá€á€½á€€á€º - - - Entries excluded from reports - အစီရင်á€á€¶á€…ာများမှ ဖယ်ထားသော ဖြည့်သွင်းá€á€»á€€á€ºá€™á€»á€¬á€¸ - - - Average password length - ပျမ်းမျှ စကားá€á€¾á€€á€ºá€¡á€›á€¾á€Šá€º - - - %1 characters - စာလုံး %1 လုံး - Unknown command %1 အမည်မသိ ညွှန်ကြားá€á€»á€€á€º %1 @@ -7173,9 +7862,13 @@ Available commands: Show the protected attributes in clear text. ကာကွယ်ထားသော ပင်ကိုအá€á€»á€€á€ºá€¡á€œá€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ ကုဒ်ပြောင်းမထားသော စာသားဖြင့် ပြပါዠ+ + Show all the attributes of the entry. + ထည့်သွင်းမှုá အရည်အá€á€»á€„်းအားလုံးကို ပြပါዠ+ Show the attachments of the entry. - + ဖြည့်သွင်းá€á€»á€€á€ºá ပူးá€á€½á€²á€–ိုင် များအားပြပါዠNames of the attributes to show. This option can be specified more than once, with each attribute shown one-per-line in the given order. If no attributes are specified, a summary of the default attributes is given. @@ -7199,11 +7892,11 @@ Available commands: No attachments present. - + မည်သည့် ပူးá€á€½á€²á€–ိုင်မျှ မပါရှိပါዠAttachments: - + ပူးá€á€½á€²á€–ိုင်များ Failed to open database file %1: not found @@ -7242,6 +7935,10 @@ Please consider generating a new key file. Invalid YubiKey serial %1 မမှန်ကန်သော YubiKey အစဉ် %1 + + Please present or touch your YubiKey to continue. + ကျေးဇူးပြုá ဆက်လုပ်ရန် သင့် YubiKey ကို á€á€„်ပြပါ သို့မဟုá€á€º နှိပ်ပါ + Enter password to encrypt database (optional): ဒေá€á€¬á€˜á€±á€·á€…်ကို ကုဒ်ဖြင့်ပြောင်းရန် စကားá€á€¾á€€á€º ရိုက်ထည့်ပါ (á€á€»á€”်ထားနိုင်သည်) - @@ -7382,7 +8079,7 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 KeeShare - + KeeShare YubiKey @@ -7390,7 +8087,7 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 Quick Unlock - + အမြန်ပွင့် Secret Service Integration @@ -7429,8 +8126,8 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 - Botan library must be at least 2.11.x, found %1.%2.%3 - Botan စာကြည့်á€á€­á€¯á€€á€ºá€žá€Šá€º အနည်းဆုံး 2.11.x ဖြစ်ရမည်አ%1.%2.%3 ကို á€á€½á€±á€·á€›á€¾á€­á€‘ားသည် + Botan library must be at least %1, found %2.%3.%4 + Cryptographic libraries: @@ -7502,7 +8199,7 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 ChaCha20 256-bit - + ChaCha20 256-bit Argon2d (KDBX 4 – recommended) @@ -7518,7 +8215,7 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 AES-KDF (KDBX 3) - + AES-KDF (KDBX 3) Existing single-instance lock file is invalid. Launching new instance. @@ -7616,7 +8313,7 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 Browser Statistics - + ဘရောင်ဇာ စာရင်းအင်းများ Health Check @@ -7670,10 +8367,6 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 read password of the database from stdin စံထည့်သွင်းမှုမှ ဒေá€á€¬á€˜á€±á€·á€…်á စကားá€á€¾á€€á€ºá€€á€­á€¯ ဖá€á€ºá€•ါ - - allow app screen recordering and screenshots - အက်ပ်စá€á€›á€„် မှá€á€ºá€á€™á€ºá€¸á€á€„်á€á€¼á€„်းနှင့် စá€á€›á€„်ရှော့(á€á€º)များကို á€á€½á€„့်ပြုပါ - Locked databases. လော့á€á€»á€‘ားသော ဒေá€á€¬á€˜á€±á€·á€…်များዠ@@ -7686,6 +8379,10 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 Another instance of KeePassXC is already running. KeePassXC ကို အá€á€¼á€¬á€¸á€á€…်နေရာá€á€½á€„် လည်ပá€á€ºá€”ေပါသည်ዠ+ + KeePassXC is not running. No open database to lock + KeePassXC သည် အလုပ်မလုပ်ပါዠလော့á€á€ºá€–ွင့်ရန် ဒေá€á€¬á€˜á€±á€·á€…်မရှိပါ + Fatal error while testing the cryptographic functions. ကုဒ်ထည့်ထားသော လုပ်ဆောင်á€á€»á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ စစ်ဆေးစဉ် အရေးကြီးပြဿနာ ဖြစ်á€á€²á€·á€žá€Šá€ºá‹ @@ -7694,10 +8391,6 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 KeePassXC - Error KeePassXC - ပြဿနာ - - Warning: Failed to prevent screenshots on a top level window! - သá€á€­á€•ေးá€á€»á€€á€º - အဆင့်မြင့်á€á€„်းဒိုးá€á€½á€„် စá€á€›á€„်ရှော့(များ)ကို á€á€¬á€¸á€†á€®á€¸á€á€¼á€„်း မအောင်မြင်ပါዠ- Database password: ဒေá€á€¬á€˜á€±á€·á€…် စကားá€á€¾á€€á€º - @@ -7714,14 +8407,228 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 Failed to create Windows Hello credential. - + Windows Hello အထောက်အထားကို ဖန်á€á€®á€¸á မရနိုင်ပါ Failed to sign challenge using Windows Hello. + Windows Hello ကိုအသုံးပြုပြီး လက်မှá€á€ºá€‘ိုးá€á€„်á မရပါ + + + Warning: Failed to block screenshot capture on a top-level window. + သá€á€­á€•ေးá€á€»á€€á€º - ထိပ်á€á€”်းအဆင့်á€á€„်းဒိုးá€á€½á€„် မျက်နှာပြင်ဖမ်းယူá€á€¼á€„်းကို မá€á€¬á€¸á€†á€®á€¸á€”ိုင်ပါዠ+ + + Invalid Cipher + Cipher မမှန်ပါ + + + Invalid KDF + KDF မမှန်ပါ + + + Access to all entries is denied - Please present or touch your YubiKey to continue. + allow screenshots and app recording (Windows/macOS) + + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + + + + Credential is excluded + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Passkeys + + + + AES initialization failed + + + + AES encrypt failed + + + + Failed to store in Linux Keyring + + + + Polkit returned an error: %1 + + + + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + + + + Failed to init KeePassXC crypto. + KeePassXC crypto စá€á€„်ရန် မအောင်မြင်á€á€²á€·á€•ါ + + + Failed to encrypt key data. + အá€á€»á€€á€ºá€¡á€œá€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ ကုဒ်ဖြင့်ပြောင်းရန် မအောင်မြင်á€á€²á€·á€•ါ + + + Failed to get Windows Hello credential. + Window Hello အထောက်အထားရရန် မအောင်မြင်á€á€²á€·á€•ါ + + + Failed to decrypt key data. + အá€á€»á€€á€ºá€¡á€œá€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ ကုဒ်ပြန်ဖြည်á€á€¼á€„်း မအောင်မြင်á€á€²á€·á€•ါ + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7761,41 +8668,29 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - သက်á€á€™á€ºá€¸á€€á€¯á€”်ပြီးသော ဖြည့်သွင်းá€á€»á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ အစီရင်á€á€¶á€…ာမှ ဖယ်ပါ - - - Show only entries which have URL set - - - - Show only entries which have browser settings in custom data - - Double-click entries to edit. - + ထည့်သွင်းမှုများကိုပြင်ဆင်ရန် ကလစ် á‚ á€á€»á€€á€ºá€”ှိပ်ပါ List of entry URLs - + URL ထည့်သွင်းမှုများစာရင်း Entry has no URLs set - + ထည့်သွင်းမှုá€á€½á€„် URL set များမပါá€á€„်ပါ Allowed URLs - + á€á€½á€„့်ပြုထားသော URL များ Entry has no Browser Integration settings - + ထည့်သွင်းမှုá€á€½á€„် Browser Intigration ပြင်ဆင်á€á€»á€€á€ºá€™á€»á€¬á€¸ မရှိပါ Denied URLs - + ငြင်းပယ်ထားသော URLများ (Excluded) @@ -7807,11 +8702,11 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 Please wait, browser statistics is being calculated… - + ကျေးဇူးပြုá စောင့်ပါአဒေá€á€¬á€˜á€±á€·á€…် အá€á€»á€€á€ºá€¡á€œá€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ á€á€½á€€á€ºá€á€»á€€á€ºá€”ေသည် No entries with a URL, or none has browser extension settings saved. - + URL ပါသောထည့်သွင်းမှုများမရှိပါአသို့မဟုá€á€º ဘရောင်ဇာအပိုလုပ်ဆောင်မှုပြင်ဆင်á€á€»á€€á€ºá€™á€»á€¬á€¸ သိမ်းဆည်ထားá€á€¼á€„်းမရှိပါ း Title @@ -7823,7 +8718,7 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 URLs - + URL များ Edit Entry… @@ -7837,17 +8732,25 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 Exclude from reports အစီရင်á€á€¶á€…ာများမှ ဖယ်ရန် + + Only show entries that have a URL + + + + Only show entries that have been explicitly allowed or denied + + + + Show expired entries + + + + (Expired) + + ReportsWidgetHealthcheck - - Exclude expired entries from the report - သက်á€á€™á€ºá€¸á€€á€¯á€”်ပြီးသော ဖြည့်သွင်းá€á€»á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ အစီရင်á€á€¶á€…ာမှ ဖယ်ပါ - - - Also show entries that have been excluded from reports - အစီရင်á€á€¶á€…ာများမှ ဖယ်ထားသော ဖြည့်သွင်းá€á€»á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯á€•ါ ပြသပါ - Hover over reason to show additional details. Double-click entries to edit. ထပ်ဆောင်း အသေးစိá€á€ºá€¡á€á€»á€€á€ºá€¡á€œá€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ ပြရန် အကြောင်းရင်းပေါ်á€á€½á€„် ထောက်ပါዠဖြည့်သွင်းá€á€»á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ á€á€Šá€ºá€¸á€–ြá€á€ºá€›á€”် နှစ်á€á€»á€€á€ºá€”ှိပ်ပါዠ@@ -7923,6 +8826,18 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 Exclude from reports အစီရင်á€á€¶á€…ာများမှ ဖယ်ရန် + + Show expired entries + + + + Show entries that have been excluded from reports + + + + (Expired) + + ReportsWidgetHibp @@ -8019,6 +8934,65 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 အစီရင်á€á€¶á€…ာများမှ ဖယ်ရန် + + ReportsWidgetPasskeys + + Export + ပို့ရန် + + + Import + ထည့်သွင်းရန် + + + List of entry URLs + URL ထည့်သွင်းမှုများစာရင်း + + + Please wait, list of entries with Passkeys is being updated… + + + + No entries with Passkeys. + + + + Title + á€á€±á€«á€„်းစဉ် + + + Path + လမ်းကြောင်း + + + Username + အသုံးပြုသူအမည် + + + URLs + URL များ + + + Edit Entry… + ဖြည့်သွင်းá€á€»á€€á€ºá€€á€­á€¯ á€á€Šá€ºá€¸á€–ြá€á€ºá€•ါ… + + + Delete Entry(s)… + ဖြည့်သွင်းá€á€»á€€á€º(များ)ကို ဖျက်ပါ… + + + Relying Party + + + + Show expired entries + + + + (Expired) + + + ReportsWidgetStatistics @@ -8258,6 +9232,10 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 Search Help ရှာဖွေမှု အကူအညီ + + Save Search + ရှာဖွေမှုကိုသိမ်းဆည်းပါ + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8444,14 +9422,14 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 ShareExport Could not write export container. - + á€á€„်ပို့မှုဒေá€á€¬á€‘ည့်သွင်းထားရာနေရာá€á€½á€„် ရေးသွင်းá€á€¼á€„်းမရနိုင်ပါ ShareImport Successful import - + အောင်မြင်စွာá€á€„်သွင်းသည် @@ -8489,19 +9467,65 @@ CPU á€á€Šá€ºá€†á€±á€¬á€€á€ºá€•ုံ - %2 %1 သို့ á€á€„်ပို့ပါ + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All - + Clear Search + ရှာဖွေမှုကို ရှင်းလင်းပါ + + + All Entries + ထည့်သွင်းမှုများအားလုံး Expired - + ကုန်ဆုံးသွားသည် Weak Passwords - + အားနည်းသောစကားá€á€¾á€€á€ºá€™á€»á€¬á€¸ + + + + TagView + + Remove Search + ရှာဖွေမှုကို ဖယ်ရှားပါ + + + Remove Tag + á€á€€á€ºá€€á€­á€¯ ဖယ်ရှားပါ + + + Confirm Remove Tag + á€á€€á€ºá€€á€­á€¯ ဖယ်ရှားရန် အá€á€Šá€ºá€•ြုပါ + + + Remove tag "%1" from all entries in this database? + á€á€€á€º "%1" ကို ဤဒေá€á€¬á€˜á€±á€·á€…်ရှိ ထည့်သွင်းမှုများအားလုံးမှ ဖယ်ရှားမလားዠ@@ -8661,26 +9685,6 @@ Example: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database သင့်စကားá€á€¾á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ KeePassXC ဒေá€á€¬á€˜á€±á€·á€…်á€á€½á€„် လုံá€á€¼á€¯á€¶á€…ွာ စá€á€„်သိမ်းဆည်းပါ - - Create new database - ဒေá€á€¬á€˜á€±á€·á€…်အသစ် ဖန်á€á€®á€¸á€•ါ - - - Open existing database - ရှိပြီးသား ဒေá€á€¬á€˜á€±á€·á€…်ကို ဖွင့်ပါ - - - Import from KeePass 1 - KeePass 1 မှ ထည့်သွင်းပါ - - - Import from 1Password - 1Password မှ ထည့်သွင်းပါ - - - Import from CSV - CSV မှ ထည့်သွင်းပါ - Recent databases မကြာသေးမီက ဒေá€á€¬á€˜á€±á€·á€…်များ @@ -8693,6 +9697,18 @@ Example: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 KeePassXC %1 မှ ကြိုဆိုပါသည် + + Create Database + + + + Open Database + + + + Import File + + WinUtils @@ -8709,31 +9725,8 @@ Example: JBSWY3DPEHPK3PXP ကမ္ဘာသုံး ရှော့(á€á€º)ကá€á€ºá€€á€­á€¯ စာရင်းသွင်းáမရပါ - - WindowsHello - - Failed to init KeePassXC crypto. - - - - Failed to encrypt key data. - - - - Failed to get Windows Hello credential. - - - - Failed to decrypt key data. - - - YubiKey - - %1 No interface, slot %2 - %1 အသုံးပြုသူမြင်ရမည့်ပုံစံ မရှိပါአအပေါက် %2 - General: ယေဘုယျ - @@ -8745,14 +9738,6 @@ Example: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - ဟာ့á€á€² á€á€­á€¯á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ ပြန်လည်လန်းဆန်းရန် - - - Refresh - ပြန်လည်လန်းဆန်းရန် - Hardware key slot selection ဟာ့á€á€²á€€á€®á€¸á€¡á€•ေါက် ရွေးá€á€»á€šá€ºá€™á€¾á€¯ @@ -8785,10 +9770,6 @@ Example: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove á€á€¯á€¶á€·á€•ြန်á€á€»á€€á€ºá€…ိန်á€á€±á€«á€ºá€™á€¾á€¯ သá€á€ºá€™á€¾á€á€ºá€‘ားသည်አပြောင်းလဲရန် သို့မဟုá€á€º ဖယ်ရှားရန် နှိပ်ပါ - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>သင့်á€á€½á€„် <a href="https://www.yubico.com/">YubiKey</a> သို့မဟုá€á€º <a href="https://onlykey.io">OnlyKey</a> ရှိပါက áŽá€„်းကို ထပ်á€á€­á€¯á€¸á€œá€¯á€¶á€á€¼á€¯á€¶á€›á€±á€¸á€¡á€á€½á€€á€º အသုံးပြုနိုင်သည်á‹</p><p>ထိုစကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€žá€Šá€º áŽá€„်းáအပေါက်များမှ á€á€…်á€á€¯á€€á€­á€¯ <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 á€á€¯á€¶á€·á€•ြန်á€á€»á€€á€ºá€…ိန်á€á€±á€«á€ºá€™á€¾á€¯</a>အဖြစ် ပရိုဂရမ်ရေးသားရန် လိုအပ်သည်á‹</p> - Detecting hardware keys… ဟာ့á€á€² စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€™á€»á€¬á€¸á€€á€­á€¯ ရှာနေသည်… @@ -8797,28 +9778,21 @@ Example: JBSWY3DPEHPK3PXP No hardware keys detected ဟာ့á€á€² စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€™á€»á€¬á€¸ ရှာမá€á€½á€±á€·á€•ါ - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 မမှန်ကန်သော အပေါက်ကို ဖော်ပြထားသည် - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] á€á€¯á€¶á€·á€•ြန်á€á€»á€€á€ºá€…ိန်á€á€±á€«á€ºá€™á€¾á€¯ - အပေါက် %3 - The YubiKey PCSC interface has not been initialized. YubiKey PCSC အသုံးပြုသူမြင်ရမည့်ပုံစံကို မစá€á€„်ရသေးပါዠ- - Hardware key is currently in use. - ဟာ့á€á€² စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€€á€­á€¯ လက်ရှိá€á€½á€„် အသုံးပြုနေသည်ዠ- Could not find or access hardware key with serial number %1. Please present it to continue. နံပါá€á€ºá€…ဉ် %1 ရှိသော ဟာ့á€á€² စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€€á€­á€¯ ရှာမá€á€½á€±á€·á€•ါ သို့မဟုá€á€º á€á€„်ရောက်သုံးစွဲáမရပါዠကျေးဇူးပြုá ရှေ့ဆက်ရန် áŽá€„်းကို á€á€„်ပြပါዠ@@ -8835,6 +9809,21 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 á€á€¯á€¶á€·á€•ြန်á€á€»á€€á€ºá€…ိန်á€á€±á€«á€ºá€™á€¾á€¯ မပြီးစီးá€á€²á€·á€•ါአPCSC á€á€»á€½á€á€ºá€šá€½á€„်းá€á€»á€€á€ºá€€á€¯á€’် - %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + နှိပ်ပါ + + + Passive + USB Challenge-Response Key no interaction required + အသုံးပြုမနေပါ + YubiKeyInterfaceUSB @@ -8842,14 +9831,6 @@ Example: JBSWY3DPEHPK3PXP Unknown အမည်မသိ - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] á€á€»á€­á€”်ညှိထားသော အပေါက် - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] á€á€¯á€¶á€·á€•ြန်á€á€»á€€á€ºá€…ိန်á€á€±á€«á€ºá€™á€¾á€¯ - အပေါက် %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8864,10 +9845,6 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. YubiKey USB အသုံးပြုသူမြင်ရမည့်ပုံစံကို မစá€á€„်ရသေးပါዠ- - Hardware key is currently in use. - ဟာ့á€á€² စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€€á€­á€¯ လက်ရှိá€á€½á€„် အသုံးပြုနေသည်ዠ- Could not find hardware key with serial number %1. Please plug it in to continue. နံပါá€á€ºá€…ဉ် %1 ရှိသော ဟာ့á€á€² စကားá€á€¾á€€á€ºá€žá€±á€¬á€·á€€á€­á€¯ ရှာမá€á€½á€±á€·á€•ါዠကျေးဇူးပြုá ရှေ့ဆက်ရန် áŽá€„်းကို ပလပ်ထိုးပါዠ@@ -8884,5 +9861,15 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 á€á€¯á€¶á€·á€•ြန်á€á€»á€€á€ºá€…ိန်á€á€±á€«á€ºá€™á€¾á€¯ မပြီးစီးá€á€²á€·á€•ါአá€á€­á€€á€»á€žá€±á€¬ ပြဿနာ - %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_nb.ts b/share/translations/keepassxc_nb.ts index 1f6142cf3..bc2b4521f 100644 --- a/share/translations/keepassxc_nb.ts +++ b/share/translations/keepassxc_nb.ts @@ -80,6 +80,10 @@ Details Detaljer + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Avgjørelsen din blir husket sÃ¥ lenge klienten OG KeePassXC kjører. + Remember Husk @@ -88,17 +92,13 @@ Allow Selected Tillat valgte - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - Avgjørelsen din blir husket sÃ¥ lenge klienten OG KeePassXC kjører. - Deny All && Future - + Nekt alle & fremtidige Allow All && &Future - + Tillat alle &fremtidige @@ -122,6 +122,10 @@ Use OpenSSH Bruk OpenSSH + + Use both agents + Bruk begge agentene + SSH_AUTH_SOCK override SSH_AUTH_SOCK-overstyring @@ -150,10 +154,6 @@ SSH Agent connection is working! SSH-agentforbindelse fungerer! - - Use both agents - - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security Sikkerhet + + This setting cannot be enabled when minimize on unlock is enabled. + Denne innstillingen kan ikke aktiveres nÃ¥r minimering ved opplÃ¥sing er aktivert. + Access error for config file %1 Feil ved tilgang til konfigurasjonsfilen %1 @@ -256,6 +260,10 @@ Remember previously used databases Husk tidligere brukte databaser + + recent files + siste filer + Load previously open databases on startup Last tidligere Ã¥pne databaser ved oppstart @@ -408,6 +416,10 @@ Toolbar button style: Knappestil pÃ¥ verktøylinjen: + + Show passwords in color + Vis passord i farger + Use monospaced font for notes Bruk fastbreddeskrift til notater @@ -560,7 +572,7 @@ Hide passwords in the entry preview panel - Skjul passord i oppføring panelet + Skjul passord i oppføringspanelet Hide entry notes by default @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons Bruk DuckDuckGo-tjenesten for Ã¥ laste ned nettstedikoner + + Hide TOTP in the entry preview panel + Skjul TOTP i forhÃ¥ndsvisningspanelet + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 Veldig lang forsinkelse oppdaget, maks er %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + Oppføringen har ikke attributt for PICKCHARS: %1 + Invalid conversion type: %1 Ugyldig konverteringstype: %1 @@ -719,7 +739,7 @@ Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> <p>Du kan bruke avanserte søkespørringer til Ã¥ finne en hvilken som helst oppføring i de Ã¥pne databasene. Følgende snarveier er nyttige:<br/> -CTRL+F – Aktiver/deaktiver databasesøk<br/> +CTRL+F – Vis/skjul databasesøk<br/> Ctrl+1 – Skriv brukernavn<br/> Ctrl+2 – Skriv passord<br/> CTRL+3 – Skriv TOTP<br/> @@ -804,13 +824,13 @@ Ctrl+4 – Bruk virtuelt tastatur (bare Windows)</p> Disable for this site Deaktiver for dette nettstedet + + Undo + Angre + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Lagre nettleser-oppføring - Ok Ok @@ -825,13 +845,70 @@ Please select the correct database for saving credentials. Du har flere databaser Ã¥pne. Vennligst velge riktig database for Ã¥ lagre identifikasjon. + + KeePassXC - Select Database + KeePassXC - velg database + + + + BrowserPasskeysConfirmationDialog + + Cancel + Avbryt + + + Update + Oppdater + + + Authenticate + Autentiser + + + Register new + Registrer ny + + + Register + Registrer + + + Timeout in <b>%n</b> seconds... + Tidsavbrudd om <b>%n</b> sekund…Tidsavbrudd om <b>%n</b> sekunder… + + + Do you want to register Passkey for: + Ønsker du Ã¥ registrere tilgangsnøkkel for: + + + Existing Passkey found. +Do you want to register a new Passkey for: + Eksisterende tilgangsnøkkel funnet. +Vil du registrere en ny tilgangsnøkkel for: + + + Select the existing Passkey and press Update to replace it. + Velg den eksisterende tilgangsnøkkelen, og trykk oppdater for Ã¥ erstatte den. + + + Authenticate Passkey credentials for: + Autentiser tilgangsnøkkel-identifikasjon for: + + + Relying Party: %1 + Tiltrodd part: %1 + + + Username: %1 + Brukernavn: %1 + + + KeePassXC - Passkey credentials + KeePassXC - Tilgangsnøkkel-identifikasjon + BrowserService - - KeePassXC: Create a new group - KeePassXC: Lag en ny gruppe - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -839,10 +916,6 @@ Do you want to create this group? En forespørsel om Ã¥ opprette en ny gruppe "%1" er mottatt. Vil du opprette denne gruppen? - - KeePassXC: New key association request - KeePassXC: Tilknytningsforespørsel for ny nøkkel. - You have received an association request for the following database: %1 @@ -859,28 +932,16 @@ chrome-laptop. Save and allow access Lagre og tillat aksess - - KeePassXC: Overwrite existing key? - KeePassXC: Overskrive eksisterende nøkkel? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? En delt krypteringsnøkkel med navn "%1" eksisterer fra før. Vil du overskrive den? - - KeePassXC: Update Entry - KeePassXC: Oppdater oppføring. - Do you want to update the information in %1 - %2? Vil du oppdatere informasjonen i %1 - %2? - - KeePassXC: Delete entry - KeePassXC: Slett oppføring - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -889,50 +950,46 @@ Do you want to delete the entry? Vil du slette oppføringen? - Converting attributes to custom data… - Konverterer attributter til egendefinerte data… + %1 (Passkey) + %1 (tilgangsnøkkel) - Abort - Avbryt + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + Oppføringen har allerede en tilgangsnøkkel. +Vil du erstatte tilgangsnøkkelen i %1 - %2? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Konverterte KeePassHTTP-attributter + KeePassXC - Create a new group + KeePassXC - Opprett en ny gruppe - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Konverterte attributter fra %1 oppføring(er). -Flyttet %2 nøkler til egendefinerte data. - - - Successfully moved %n keys to custom data. - Flyttet %n nøkkel til egendefinerte data.Flyttet %n nøkler til egendefinerte data. + Disable + Deaktiver - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Ingen oppføring med KeePassHTTP-attributter funnet! + KeePassXC - Overwrite existing key? + KeePassXC - Erstatte eksisterende nøkkel? - The active database does not contain an entry with KeePassHTTP attributes. - Den aktiv database inneholder ikke en oppføring med KeePassHTTP-attributter. + KeePassXC - Update Passkey + KeePassXC - Oppdater tilgangsnøkkel - Don't show this warning again - Ikke vis denne advarselen igjen + KeePassXC - Update Entry + KeePassXC - Oppdater oppføring - KeePassXC: Legacy browser integration settings detected - KeePassXC: Gammel nettleser integrasjon innstillinger oppdaget + KeePassXC - Delete entry + KeePassXC - Slett oppføring - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - KeePassXC-Browser-innstillingene mÃ¥ flyttes til databaseinnstillingene. -Dette er nødvendig for Ã¥ opprettholde gjeldende lesertilkoblinger. -Vil du overføre de eksisterende innstillingene dine nÃ¥? + KeePassXC - New key association request + KeePassXC - Forespørsel om ny nøkkeltilknytning + + + Passkey + Tilgangsnøkkel @@ -1140,14 +1197,6 @@ Vil du overføre de eksisterende innstillingene dine nÃ¥? Please see special instructions for browser extension use below Vennligst se spesielle instruksjoner for bruk av nettleserutvidelse nedenfor - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Feil:</b> Finner ikke plasseringen til den egendefinerte mellomtjeneren.<br/>Nettleserintegrasjonen VIL IKKE FUNGERE uten mellomtjener-applikasjonen. - - - <b>Warning:</b> The following options can be dangerous! - <b>Advarsel:</b> Disse innstillingene kan medføre risiko. - Executable Files Kjørbare filer @@ -1164,6 +1213,38 @@ Vil du overføre de eksisterende innstillingene dine nÃ¥? Select native messaging host folder location Velg plassering til den innebygde meldingsformidleren + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + Tillat keepassxc-proxy Ã¥ liste alle oppføringer med tittel, URL og UUID i tilkoblede databaser. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + Tillat begrenset tilgang til alle oppføringer i tilkoblede databaser (ignorerer begrensninger for nettstedstilgang) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Advarsel:</b> Juster disse innstillingene bare om nødvendig. + + + The custom proxy location does not exist. + Den egendefinerte proxy-lokasjonen finnes ikke. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Feil:</b> Den egendefinerte proxy-lokasjonen finnes ikke. Korriger dette i fanen for avanserte innstillinger. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Feil:</b> Den installerte eksekverbare proxyen finnes ikke pÃ¥ den forventede plasseringen: %1<br/>Angi en egendefinert proxy-lokasjon i de avanserte innstillingene, eller installer applikasjonen pÃ¥ nytt. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + Tillater bruk av usikker http://localhost med tilgangsnøkler for testformÃ¥l. + + + Allow using localhost with Passkeys + Tillat bruk av localhost med tilgangsnøkler + CloneDialog @@ -1186,14 +1267,6 @@ Vil du overføre de eksisterende innstillingene dine nÃ¥? CsvImportWidget - - Import CSV fields - Importer CSV-felter - - - filename - filnavn - size, rows, columns størrelse, rader, kolonner @@ -1302,51 +1375,30 @@ Vil du overføre de eksisterende innstillingene dine nÃ¥? Column %1 Kolonne %1 - - Imported from CSV file - Importert fra CSV-fil - - - Original data: - Originale data: - - - Error(s) detected in CSV file! - Feil oppdaget i CSV-fil! - [%n more message(s) skipped] [%n melding til ble hoppet over][%n flere meldinger ble hoppet over] - Error - Feil + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - CSV-import: Skriver har feil: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n byte%n byter - %n row(s) + CSV row count %n rad%n rader %n column(s) - %n kolonne(r)%n kolonne(r) + CSV column count + %n kolonne%n kolonner @@ -1420,40 +1472,10 @@ Sikkerhetskopi av database lokalisert pÃ¥ %2 Password field Passord felt - - Enter Additional Credentials (if any): - Angi eventuell tilleggslegitimasjon (hvis noen): - - - Key File: - Nøkkelfil: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>I tillegg til et passord kan du bruke en nøkkelfil til Ã¥ forbedre sikkerheten i databasen. Denne filen kan opprettes i databasens sikkerhetsinnstillinger.</p><p>Dette er <strong>ikke</strong> *.kdbx-databasefilen din!<br>Hvis du ikke har en nøkkelfil, lar du dette feltet stÃ¥ tomt.</p><p>Klikk hvis du vil ha mer informasjon…</p> - - - Key file help - Hjelp for nøkkelfil - Hardware key slot selection Valg av spor i maskinvarenøkkel - - Hardware Key: - Maskinvarenøkkel: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>Du kan bruke en maskinvare-autentiseringsenhet, for eksempel en <strong>YubiKey</strong> eller <strong>OnlyKey,</strong> med spor som er konfigurert for HMAC-SHA1.</p> -<p>Klikk hvis du vil ha mer informasjon...</p> - - - Hardware key help - Hjelp for maskinvarenøkkel - Key file to unlock the database Nøkkelfil for Ã¥ lÃ¥se opp database @@ -1466,14 +1488,6 @@ Sikkerhetskopi av database lokalisert pÃ¥ %2 Browse… Bla gjennom... - - Refresh hardware tokens - Oppdater maskinvarenøkkel - - - Refresh - Last pÃ¥ ny - Unlock Database LÃ¥s opp database @@ -1536,14 +1550,6 @@ For Ã¥ forhindre at denne feilen vises, mÃ¥ du gÃ¥ til "Databaseinnstilling Retry with empty password Prøv igjen med tomt passord - - Failed to authenticate with Windows Hello - Autentisering med Windows Hello feilet - - - Failed to authenticate with Touch ID - Autentisering med berørings-ID feilet - Failed to open key file: %1 Kunne ikke Ã¥pne nøkkelfil: %1 @@ -1577,22 +1583,60 @@ For Ã¥ forhindre at denne feilen vises, mÃ¥ du gÃ¥ til "Databaseinnstilling Kan ikke bruke database fil som nøkkelfil - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Du kan ikke bruke databasefilen som nøkkelfil. -Hvis du ikke har en nøkkelfil, lar du feltet stÃ¥ tomt. + authenticate to access the database + autentiser for Ã¥ fÃ¥ tilgang til databasen - Detecting hardware keys… - Oppdager maskinvarenøkler... + Failed to authenticate with Quick Unlock: %1 + Autentisering med hurtigopplÃ¥sing feilet: %1 - No hardware keys detected - Ingen maskinvarenøkler oppdaget + Select Key File: + - Select hardware key… - Velge maskinvarenøkkel... + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1604,10 +1648,6 @@ Hvis du ikke har en nøkkelfil, lar du feltet stÃ¥ tomt. DatabaseSettingsDialog - - Advanced Settings - Avanserte Innstillinger - General Generelt @@ -1639,18 +1679,6 @@ Hvis du ikke har en nøkkelfil, lar du feltet stÃ¥ tomt. KeePassXC-Browser settings KeePassXC nettleser-innstillinger - - Convert KeePassHTTP data - Konverter KeePassHTTP-data - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - Konverter eldre KeePassHTTP-attributter til KeePassXC-Browser-kompatible egendefinerte data - - - Refresh database root group ID - Oppdater rotgruppe-ID for database - Disconnect all browsers Koble fra alle nettlesere @@ -1659,6 +1687,10 @@ Hvis du ikke har en nøkkelfil, lar du feltet stÃ¥ tomt. Forget all site-specific settings on entries Glem alle side-spesifikke innstillinger og oppføringer + + Refresh database root group ID + Oppdater rotgruppe-ID for database + Stored keys Lagrede nøkler @@ -1707,18 +1739,10 @@ This may prevent connection to the browser plugin. Vil du virkelig koble fra alle nettlesere? Dette kan forhindre tilkobling til plugin-modulen i nettleseren. - - KeePassXC: No keys found - KeePassXC: Ingen nøkler funnet - No shared encryption keys found in KeePassXC settings. Ingen delte kryptering nøkkel funnet i KeePassXC-innstillingene. - - KeePassXC: Removed keys from database - KeePassXC: Fjernet nøkler fra database - Successfully removed %n encryption key(s) from KeePassXC settings. %n krypteringsnøkkel er fjernet fra KeePassXC-innstillingene.%n krypteringsnøkler er fjernet fra KeePassXC-innstillingene. @@ -1737,32 +1761,14 @@ Tilgangstillatelser til oppføringer vil bli tilbakekalt. Abort Avbryt - - KeePassXC: Removed permissions - KeePassXC: Fjernet tillatelser - Successfully removed permissions from %n entry(s). Fjernet tillatelser fra %n oppføring.Fjernet tillatelser fra fra %n oppføringer. - - KeePassXC: No entry with permissions found! - KeePassXC: Ingen oppføring med tillatelser funnet! - The active database does not contain an entry with permissions. Den aktive databasen inneholder ikke et oppsett med tillatelser. - - Move KeePassHTTP attributes to custom data - Flytt KeePassHTTP-attributter til egendefinerte data - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Vil du virkelig konvertere alle eldre nettleser-integreringsdata til den nyeste standarden? -Dette er nødvendig for Ã¥ opprettholde kompatibilitet med nettleserutvidelsen. - Refresh database ID Oppfriske database ID @@ -1773,6 +1779,26 @@ This is only necessary if your database is a copy of another and the browser ext Vil du virkelig oppdatere database-ID? Dette er bare nødvendig hvis databasen er en kopi av en annen og nettleserutvidelsen ikke kan koble til. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Konverter eldre KeePassHTTP-attributter til KeePassXC-Browser-kompatible egendefinerte data + + + No keys found + Ingen nøkler funnet + + + Removed keys from database + Fjernet nøkler fra database + + + Removed permissions + Fjernet tillatelser + + + No entry with permissions found! + Ingen oppføring med tillatelser funnet! + DatabaseSettingsWidgetDatabaseKey @@ -1812,6 +1838,18 @@ Er du sikker pÃ¥ at du vil fortsette uten passord? Failed to change database credentials Kunne ikke endre databaselegitimasjon + + Weak password + Svakt passord + + + You must enter a stronger password to protect your database. + Du mÃ¥ legge inn et sterkere passord for Ã¥ beskytte databasen din. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + Dette er et svakt passord! For bedre beskyttelse av hemmelighetene dine, bør du velge et sterkere passord. + DatabaseSettingsWidgetEncryption @@ -1819,14 +1857,6 @@ Er du sikker pÃ¥ at du vil fortsette uten passord? Decryption Time: Krypteringstid: - - Change existing decryption time - Endre eksisterende dekrypteringstid - - - Change - Endring - Decryption time in seconds Dekrypteringstid i sekunder @@ -1907,11 +1937,6 @@ Er du sikker pÃ¥ at du vil fortsette uten passord? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - uendret - Number of rounds too high Key transformation rounds @@ -1962,7 +1987,19 @@ Hvis du beholder dette antallet vil ikke databasen være beskyttet mot 'rÃ¥ thread(s) Threads for parallel execution (KDF settings) - trÃ¥d(er)trÃ¥d(er) + trÃ¥dtrÃ¥der + + + Encryption Settings: + Krypteringsinnstillinger: + + + Basic + Standard + + + Advanced + Avansert @@ -1981,7 +2018,7 @@ Hvis du beholder dette antallet vil ikke databasen være beskyttet mot 'rÃ¥ Enable Secret Service to access these settings. - Aktiver 'secret service' for Ã¥ fÃ¥ tilgang til disse innstillingene. + La 'secret service' Ã¥ fÃ¥ tilgang til disse innstillingene. @@ -2022,18 +2059,10 @@ Hvis du beholder dette antallet vil ikke databasen være beskyttet mot 'rÃ¥ Maximum number of history items per entry Maksimalt historikkantall per oppføring - - Max. history items: - Maks. historikk-antall: - Maximum size of history per entry Maksimal størrelse pÃ¥ logg per oppføring - - Max. history size: - Maks. historikk-størrelse: - MiB MiB @@ -2044,7 +2073,7 @@ Hvis du beholder dette antallet vil ikke databasen være beskyttet mot 'rÃ¥ Additional Database Settings - Ekstra database-innstillinger + Ekstra databaseinnstillinger Enable compression (recommended) @@ -2064,6 +2093,64 @@ Denne handlingen kan ikke angres. (old) (gammel) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + NÃ¥r du lagrer denne innstillingen eller redigerer en oppføring +vil de eldste historikkelementene i en oppføring bli +fjernet slik at det maksimalt gjenstÃ¥r det angitte antall +historikkelementer. + + + Limit the amount of history items per entry to: + Begrens antall historikkelementer per oppføring til: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + NÃ¥r du lagrer denne innstillingen eller redigerer en oppføring +vil de eldste historikkelementene i en oppføring bli +fjernet slik at det maksimalt gjenstÃ¥r det angitte antall +historikkelementer. + + + Limit the total size of history items per entry to: + Begrens den totale størrelsen pÃ¥ historikkelementer per oppføring til: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Flytt oppføringer til en papirkurvgruppe +i stedet for Ã¥ slette dem fra databasen. +Oppføringer som er slettet fra papirkurven er +fjernet fra databasen. + + + Autosave delay since last change + Autolagringsforsinkelse siden siste endring + + + Autosave delay + Autolagringsforsinkelse + + + Autosave delay since last change in minutes + Autolagringsforsinkelse i minutter siden siste endring + + + min + min + + + Autosave delay since last change checkbox + Autolagringsforsinkelse siden siste endring i avkrysningsboksa + DatabaseSettingsWidgetKeeShare @@ -2191,26 +2278,10 @@ Dette er definitivt en feil, rapporter det til utviklerne. CSV file CSV fil - - Select CSV file - Velg CSV fil - Merge database SlÃ¥ sammen database - - KeePass 1 database - KeePass1-database - - - Open KeePass 1 database - Ã…pne KeePass1-database - - - Open OPVault - Ã…pne OPVault - Export database to CSV file Eksporter database til CSV fil @@ -2223,6 +2294,18 @@ Dette er definitivt en feil, rapporter det til utviklerne. Writing the HTML file failed. Skriving av HTML-filen mislyktes. + + Export database to XML file + Eksporter databasen til XML-fil + + + XML file + XML-fil + + + Writing the XML file failed + Skriving av XML-filen mislyktes + Export Confirmation Eksportbekreftelse @@ -2231,15 +2314,6 @@ Dette er definitivt en feil, rapporter det til utviklerne. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? Du er i ferd med Ã¥ eksportere databasen til en ukryptert fil. Dette vil gjøre passordene og sensitiv informasjon sÃ¥rbar! Er du sikker pÃ¥ at du vil fortsette? - - New Database - Ny database - - - %1 [New Database] - Database tab name modifier - %1 [Ny Database] - %1 [Locked] Database tab name modifier @@ -2249,8 +2323,8 @@ Dette er definitivt en feil, rapporter det til utviklerne. DatabaseWidget - Database Tags - Databasetagger + Searches and Tags + Søk og tagger Searching… @@ -2300,6 +2374,10 @@ Dette er definitivt en feil, rapporter det til utviklerne. Expired entries Utløpte oppføringer + + Entries expiring within %1 day(s) + Oppføringer som utløper innen %1 dagOppføringer som utløper innen %1 dager + No current database. Ingen nÃ¥værende database. @@ -2324,6 +2402,18 @@ Dette er definitivt en feil, rapporter det til utviklerne. No Results Ingen resultater + + Save + Lagre + + + Enter a unique name or overwrite an existing search from the list: + Skriv inn et unikt navn, eller erstatt et eksisterende søk fra listen: + + + Save Search + Lagre søk + Lock Database? LÃ¥se database? @@ -2404,7 +2494,7 @@ Deaktivere sikker lagring og prøve igjen? Empty recycle bin? - Tom papirkurv? + Tøm papirkurv? Are you sure you want to permanently delete everything from your recycle bin? @@ -2414,9 +2504,14 @@ Deaktivere sikker lagring og prøve igjen? Could not find database file: %1 Kunne ikke finne databasefil: %1 - - Entries expiring within %1 day(s) - + + New Database + Ny database + + + %1 [New Database] + Database tab name modifier + %1 [Ny Database] @@ -2559,6 +2654,10 @@ Vil du rette den? Hide Skjul + + %n hour(s) + %n time%n timer + %n week(s) %n uke(r)%n uke(r) @@ -2571,10 +2670,6 @@ Vil du rette den? %n year(s) %n Ã¥r%n Ã¥r - - %n hour(s) - - EditEntryWidgetAdvanced @@ -2616,7 +2711,7 @@ Vil du rette den? Toggle attribute protection - Attributtbeskyttelse pÃ¥/av + Vis/skjul attributtbeskyttelse Protect @@ -2693,10 +2788,20 @@ Vil du rette den? Add new window association Legg til ny vindustilknytning + + + + Add item + + + Remove selected window association Fjern valgte vindustilknytning + + - + Remove item + - + Window title: Vindustittel: @@ -2721,16 +2826,6 @@ Vil du rette den? Custom Auto-Type sequence for this window Egendefinert autoskriv-rekkefølge for dette vinduet - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2748,7 +2843,7 @@ Vil du rette den? Skip Auto-Submit for this entry - Hopp over auto-sending for denne oppføringen + Hopp over automatisk utførelse for denne oppføringen Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. @@ -2832,22 +2927,10 @@ Vil du rette den? Notes field Notater-felt - - Toggle the checkbox to reveal the notes section. - Veksle avkrysningsboksen for Ã¥ vise notatdelen. - Username field Brukernavn-felt - - Toggle notes visible - Synlige merknader av/pÃ¥ - - - Notes: - Notater: - Expiration field Utløpsfelt @@ -2864,14 +2947,6 @@ Vil du rette den? Presets Hurtigvalg - - Password: - Passord: - - - URL: - URL: - Url field URL-adressefelt @@ -2880,38 +2955,54 @@ Vil du rette den? Download favicon for URL Last ned favicon for URL - - Title: - Tittel: - Title field Tittel-felt - - Username: - Brukernavn: - Password field Passord felt Toggle expiration - Utløp av/pÃ¥ - - - Expires: - Utløper: - - - Tags: - Tagger: + Vis/skjul utløp Tags list Taggeliste + + &Username: + &Brukernavn: + + + &Title: + &Tittel: + + + &Password: + &Passord: + + + UR&L: + UR&L: + + + &Notes: + &Notater: + + + Toggle notes visibility + Vis/skjul notater + + + T&ags: + T&agger: + + + &Expires: + &Utløper: + EditEntryWidgetSSHAgent @@ -2951,19 +3042,6 @@ Vil du rette den? Private key Privat nøkkel - - External file - Ekstern fil - - - Browser for key file - Netteser for nøkkelfil - - - Browse… - Button for opening file dialog - Bla gjennom... - Attachment Vedlegg @@ -2980,6 +3058,23 @@ Vil du rette den? Remove from agent Fjern fra agent + + External file + Ekstern fil + + + Browser for key file + Netteser for nøkkelfil + + + Browse… + Button for opening file dialog + Bla gjennom... + + + Generate + Opprett + Select attachment file Velg vedleggsfil @@ -3015,10 +3110,6 @@ Vil du rette den? Icon Ikon - - Browser Integration - Nettlesertillegg - Properties Egenskaper @@ -3035,6 +3126,10 @@ Vil du rette den? Group has unsaved changes Gruppen har ulagrede endringer + + Browser Integration + Nettlesertillegg + Enable Aktiver @@ -3050,10 +3145,6 @@ Vil du rette den? EditGroupWidgetBrowser - - Edit Group - Endre gruppe - These settings affect to the group's behaviour with the browser extension. Disse innstillingene pÃ¥virker oppføringens funksjon mot nettleserutvidelsen. @@ -3064,15 +3155,15 @@ Vil du rette den? Hide entries from browser extension toggle for this and sub groups - Skjul oppføringer fra nettleserutvidelse for denne og undergrupper + Vis/skjul oppføringer fra nettleserutvidelse for denne og undergrupper Skip Auto-Submit for entries: - Hopp over automatisk sending for oppføringer: + Hopp over automatisk utførelse for oppføringer: Skip Auto-Submit toggle for this and sub groups - Veksleknapp for hopp over automatisk sending for denne og undergrupper + Aktiver/deaktiver automatisk utførelse for denne og undergrupper Use entries only with HTTP Basic Auth: @@ -3080,7 +3171,7 @@ Vil du rette den? Only HTTP Auth toggle for this and sub groups - Veksleknapp for bare HTTP Auth for denne og undergrupper + Aktiver/deaktiver kun HTTP Auth for denne og undergrupper Do not use entries with HTTP Basic Auth: @@ -3088,7 +3179,23 @@ Vil du rette den? Do not use HTTP Auth toggle for this and sub groups - Veksleknapp for ikke bruk "HTTP Auth" for denne og undergrupper + Aktiver/deaktiver HTTP Auth for denne og undergrupper + + + Omit WWW subdomain from matching: + Utelat www-underdomene fra matching: + + + Omit WWW subdomain from matching toggle for this and sub groups + Aktiver/deaktiver matchende www-underdomene for denne og undergrupper + + + Restrict matching to given browser key: + Begrens match til oppgitt nettlesernøkkel: + + + Restrict matching to given browser key toggle for this and sub groups + Aktiver/deaktiver begrens match til oppgitt nettlesernøkkel for denne og undergrupper @@ -3209,7 +3316,7 @@ Støttede utvidelser er: %1. Toggle expiration - Utløp av/pÃ¥ + Vis/skjul utløp Expires: @@ -3237,7 +3344,7 @@ Støttede utvidelser er: %1. Auto-Type toggle for this and sub groups - Veksle mellom autoskriv for denne og undergrupper + Vis/skjul autoskriv for denne og undergrupper Notes: @@ -3261,7 +3368,7 @@ Støttede utvidelser er: %1. Search toggle for this and sub groups - Søkeknapp for denne og undergrupper + Vis/skjul søk for denne og undergrupper @@ -3322,10 +3429,6 @@ Støttede utvidelser er: %1. Unable to fetch favicon. Kan ikke hente favorittikon. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Du kan aktivere DuckDuckGo-ikonetjenesten under Verktøy -> Innstillinger -> Sikkerhet - Existing icon selected. Eksisterende ikon er valgt. @@ -3358,6 +3461,10 @@ Støttede utvidelser er: %1. The following icon(s) failed: Dette ikonet mislyktes:Følgende ikoner mislyktes: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + Du kan aktivere DuckDuckGo-nettstedsikontjenesten under Programinnstillinger -> Sikkerhet + EditWidgetProperties @@ -3796,6 +3903,10 @@ Feil: %1 Has TOTP Har TOTP + + Background Color + Bakgrunnsfarge + EntryPreviewWidget @@ -3816,8 +3927,8 @@ Feil: %1 Passord - Notes - Notater + URL + Adresse Expiration @@ -3836,8 +3947,8 @@ Feil: %1 Brukernavn - URL - Adresse + Notes + Notater Advanced @@ -3887,6 +3998,10 @@ Feil: %1 Never Aldri + + Double click to copy value + Dobbeltklikk for Ã¥ kopiere verdi + Enabled Aktivert @@ -3895,6 +4010,10 @@ Feil: %1 Disabled Deaktivert + + Double click to copy to clipboard + Dobbeltklikk for Ã¥ kopiere til utklippstavlen + EntryURLModel @@ -3902,6 +4021,10 @@ Feil: %1 Invalid URL Ugyldig URL + + Duplicate URL + Klon URL + EntryView @@ -3917,6 +4040,10 @@ Feil: %1 Reset to defaults Resette til standard + + + %1 entry(s)... + + %1 oppføring…+ %1 oppføringer… + ExportDialog @@ -4138,6 +4265,147 @@ Du kan aktivere DuckDuckGo-ikonetjenesten i sikkerhetsdelen av applikasjonsinnst Laster ned nettstedskoner (%1/%2)… + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Veiviserside + + + Entry count: %1 + + + + Group + Gruppe + + + Title + Tittel + + + Username + Brukernavn + + + Password + Passord + + + Url + + + + + ImportWizardPageSelect + + Form + Skjema + + + Import File Selection + + + + Password: + Passord: + + + Key File: + Nøkkelfil: + + + Browse… + Bla gjennom... + + + Import Into: + + + + New Database + Ny database + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Ã…pne OPVault + + + Select import file + + + + All files + Alle filer + + + Key files + Nøkkelfiler + + + Select key file + Velg nøkkelfil + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4232,7 +4500,7 @@ Hvis dette gjentar seg, kan databasefilen være skadet. Unknown cipher - Ukjent kryptering + Ukjent chiffer Invalid header id size @@ -4368,7 +4636,7 @@ Hvis dette gjentar seg, kan databasefilen være skadet. Unsupported cipher - Ikke støttet kryptering + Ikke støttet chiffer Invalid compression flags length @@ -4557,7 +4825,7 @@ Linje %2, kolonne %3 Private key is an attachment but no attachments provided. - Privatnøkkel er et vedlegg, men ingen vedlegg følger med. + Privat nøkkel er et vedlegg, men ingen vedlegg er angitt. Private key is empty @@ -4572,17 +4840,6 @@ Linje %2, kolonne %3 Kunne ikke Ã¥pne den private nøkkelen - - KeePass1OpenWidget - - Import KeePass1 Database - Importer KeePass 1-database - - - Unable to open the database. - Kan ikke Ã¥pne databasen. - - KeePass1Reader @@ -4939,10 +5196,6 @@ Er du sikker pÃ¥ at du vil fortsette med denne filen? &Recent Databases &Nylige databaser - - &Import - &Importer - &Export &Eksporter @@ -4963,6 +5216,10 @@ Er du sikker pÃ¥ at du vil fortsette med denne filen? TOTP TOTP + + Tags + Tagger + &Groups &Grupper @@ -4973,7 +5230,7 @@ Er du sikker pÃ¥ at du vil fortsette med denne filen? View - Se + Vis Theme @@ -5007,34 +5264,18 @@ Er du sikker pÃ¥ at du vil fortsette med denne filen? &New Database… &Ny database… - - Create a new database - Opprett en ny database - &Merge From Database… &SlÃ¥ sammen fra database… - - Merge from another KDBX database - SlÃ¥ sammen fra en annen KDBX-database - &New Entry… &Ny oppføring… - - Add a new entry - Legg til en ny oppføring - &Edit Entry… &Endre oppføring… - - View or edit entry - Vis eller endring oppføring - &Delete Entry… &Slett oppføring… @@ -5043,10 +5284,6 @@ Er du sikker pÃ¥ at du vil fortsette med denne filen? &New Group… &Ny gruppe… - - Add a new group - Legg til ny gruppe - &Edit Group… &Endre gruppe… @@ -5079,17 +5316,9 @@ Er du sikker pÃ¥ at du vil fortsette med denne filen? Database &Reports… Databaserapporter… - - Statistics, health check, etc. - Statistikk, helsesjekk osv. - &Database Settings… - &Database innstillinger... - - - Database settings - Databaseoppsett + &Databaseinnstillinger… &Clone Entry… @@ -5099,41 +5328,25 @@ Er du sikker pÃ¥ at du vil fortsette med denne filen? Move u&p Flytt o&pp - - Move entry one step up - Flytt oppføring ett steg opp - Move do&wn Flytt &ned - - Move entry one step down - Flytt oppføring ett trinn ned - Copy &Username Kopier &brukernavn - - Copy username to clipboard - Kopier brukernavn til utklippstavlen - Copy &Password Kopier &passord - - Copy password to clipboard - Kopier passord til utklippstavlen - &Settings &Oppsett &Password Generator - &Passord generator + &Passordgenerator Perform &Auto-Type @@ -5160,25 +5373,13 @@ Er du sikker pÃ¥ at du vil fortsette med denne filen? &Tittel - Copy title to clipboard - Kopier tittel til utklippstavlen - - - &URL - &URL - - - Copy URL to clipboard - Kopier URL til utklippstavlen + Copy &URL + Kopier &URL &Notes &Notater - - Copy notes to clipboard - Kopier notater til utklippstavle - &CSV File… &CSV Fil… @@ -5191,26 +5392,14 @@ Er du sikker pÃ¥ at du vil fortsette med denne filen? KeePass 1 Database… KeePass 1-database… - - Import a KeePass 1 database - Importer en KeePass 1 database - 1Password Vault… 1Password-hvelv… - - Import a 1Password Vault - Importere et 1Password-hvelv - CSV File… CSV-fil… - - Import a CSV file - Importer en CSV-fil - Show TOTP Vis TOTP @@ -5227,6 +5416,10 @@ Er du sikker pÃ¥ at du vil fortsette med denne filen? Copy &TOTP Kopier &TOTP + + Copy Password and TOTP + Kopier passord og TOTP + E&mpty recycle bin &Tøm papirkurv @@ -5251,10 +5444,6 @@ Er du sikker pÃ¥ at du vil fortsette med denne filen? &Online Help &Online hjelp - - Go to online documentation - GÃ¥ til online-dokumentasjon - &User Guide &Brukerveiledning @@ -5305,7 +5494,7 @@ Er du sikker pÃ¥ at du vil fortsette med denne filen? Show Preview Panel - Vis ForhÃ¥ndsvisning-panelet + Vis forhÃ¥ndsvisningspanelet Always on Top @@ -5323,6 +5512,10 @@ Er du sikker pÃ¥ at du vil fortsette med denne filen? Clone Group... Klone gruppe… + + &XML File… + &XML-fil… + Clear history Slett historikk @@ -5355,9 +5548,13 @@ We recommend you use the AppImage available on our downloads page. ADVARSEL: Qt-versjonen din kan føre til at KeePassXC krasjer med et skjermtastatur. Vi anbefaler at du bruker det AppImage som er tilgjengelig pÃ¥ nedlastingssidene vÃ¥re. + + No Tags + Ingen tagger + Restore Entry(s) - + Gjenopprett oppføringGjenopprett oppføringer Settings @@ -5377,12 +5574,16 @@ Vi anbefaler at du bruker det AppImage som er tilgjengelig pÃ¥ nedlastingssidene Toggle window - Vis vinduet + Vis/skjul vindu Quit KeePassXC Avslutt KeePassXC + + %1 Entry(s) + %1 Oppføring%1 Oppføringer + Please present or touch your YubiKey to continue… Hold inntil eller berør din YubiKey for Ã¥ fortsette ... @@ -5395,6 +5596,274 @@ Vi anbefaler at du bruker det AppImage som er tilgjengelig pÃ¥ nedlastingssidene You must restart the application to apply this setting. Would you like to restart now? Du mÃ¥ starte programmet pÃ¥ nytt for Ã¥ bruke denne innstillingen. Vil du starte pÃ¥ nytt nÃ¥? + + Allow Screen Capture + Tillat skjermopptak + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Tilgangsnøkler... + + + Import Passkey + Importer tilgangsnøkkel + + + Quit Application + Avslutt programmet + + + Open About Dialog + Ã…pne om-dialogboks + + + Open Database + Ã…pne database + + + Create Database + Opprett database + + + Merge From Database + SlÃ¥ sammen fra database + + + Create Entry + Opprett oppføring + + + Edit Entry + Endre oppføring + + + Delete Entry + Slett oppføring + + + Create Group + Opprett gruppe + + + Edit Group + Endre gruppe + + + Delete Group + Slett gruppe + + + Download All Favicons + Last ned alle nettstedsikoner + + + Sort Groups A-Z + Sorter grupper A-Ã… + + + Sort Groups Z-A + Sorter grupper Ã…-A + + + Save Database As + Lagre database som + + + Show Database Security + Vis databasesikkerhet + + + Show Database Reports + Vis databaserapporter + + + Show Database Settings + Vis databaseinnstillinger + + + Show Passkeys + Vis tilgangsnøkler + + + Clone Entry + Klon oppføring + + + Move Entry Up + Flytt oppføring opp + + + Move Entry Down + Flytt oppføring ned + + + Copy Username + Kopier brukernavn + + + Copy Password + Kopier passord + + + Show Application Settings + Vis applikasjonsinnstillinger + + + Show Password Generator + Vis passordgenerator + + + Perform Auto-Type: {USERNAME} + Utfør autoskriv: {BRUKERNAVN} + + + Perform Auto-Type: {USERNAME}{ENTER} + Utfør autoskriv: {BRUKERNAVN}{ENTER} + + + Perform Auto-Type: {PASSWORD} + Utfør autoskriv: {PASSORD} + + + Perform Auto-Type: {PASSWORD}{ENTER} + Utfør autoskriv: {PASSORD}{ENTER} + + + Perform Auto-Type: {TOTP} + Utfør autoskriv: {TOTP} + + + Copy Title + Kopier tittel + + + Copy URL + Kopier URL + + + Copy Notes + Kopier notater + + + Export to CSV + Eksporter til CSV + + + Export to HTML + Eksporter til HTML + + + Import KeePass1 Database + Importer KeePass 1-database + + + Import 1Password Vault + Importer 1Password-hvelv + + + Import CSV File + Importer CSV-fil + + + Show TOTP QR Code + Vis TOTP QR-kode + + + Set up TOTP + Sett opp TOTP + + + Empty Recycle Bin + Tøm papirkurv + + + Open Donation Website + Ã…pne donasjonsnettsted + + + Open Bug Report + Ã…pne feilrapport + + + Open Online Documentation + Ã…pne online-dokumentasjon + + + Open Keyboard Shortcuts Guide + Ã…pne hurtigtast-guiden + + + Save Database Backup + Lagre database-backup + + + SSH Agent: Add Key + SSH-agent: Legg til nøkkel + + + SSH Agent: Remove Key + SSH-agent: Fjern nøkkel + + + Toggle Compact Mode + Veksle kompakt modus av/pÃ¥ + + + Set Theme: Automatic + Angi tema: automatisk + + + Set Theme: Light + Angi tema: lys + + + Set Theme: Dark + Angi tema: mørk + + + Set Theme: Classic + Angi tema: klassisk + + + Toggle Show Toolbar + Vis/skjul verktøylinje + + + Toggle Show Preview Panel + Vis/skjul forhÃ¥ndsvisningspanelet + + + Toggle Always on Top + Veksle alltid pÃ¥ toppen av/pÃ¥ + + + Toggle Hide Usernames + Vis/skjul brukernavn + + + Toggle Hide Passwords + Vis/skjul passord + + + Export to XML + Eksporter til XML + + + Toggle Allow Screen Capture + Veksle tillat skjermopptak av/pÃ¥ + ManageDatabase @@ -5452,26 +5921,6 @@ Vi anbefaler at du bruker det AppImage som er tilgjengelig pÃ¥ nedlastingssidene Overwriting %1 [%2] Overskriver %1 [%2] - - older entry merged from database "%1" - eldre oppføring slÃ¥tt sammen fra database "%1" - - - Adding backup for older target %1 [%2] - Legger til sikkerhetskopi for eldre mÃ¥l %1 [%2] - - - Adding backup for older source %1 [%2] - Legger til sikkerhetskopi for eldre kilde %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Gjenbruker eldre mÃ¥loppføring pÃ¥ nytt over den nyere kilden %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Gjenbruker eldre kildeoppføring pÃ¥ nytt over det nyere mÃ¥let %1 [%2] - Synchronizing from newer source %1 [%2] Synkroniserer fra den nyere kilden %1 [%2] @@ -5531,14 +5980,6 @@ Vi anbefaler at du bruker det AppImage som er tilgjengelig pÃ¥ nedlastingssidene Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Her kan du justere innstillingene for databasekryptering. Ikke bekymre deg, du kan endre dem senere i databaseinnstillingene. - - Advanced Settings - Avanserte Innstillinger - - - Simple Settings - Enkle innstillinger - NewDatabaseWizardPageDatabaseKey @@ -5608,7 +6049,7 @@ Vi anbefaler at du bruker det AppImage som er tilgjengelig pÃ¥ nedlastingssidene Malformed OpData01 due to a failed HMAC - Feilaktig OpData01 pÃ¥ grunn av en mislykket HMAC + Deformert OpData01 pÃ¥ grunn av en mislykket HMAC Unable to process clearText in place @@ -5619,15 +6060,6 @@ Vi anbefaler at du bruker det AppImage som er tilgjengelig pÃ¥ nedlastingssidene Forventet %1 byte med klartekst, funnet %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Les database produserte ikke en forekomst -%1 - - OpVaultReader @@ -5699,7 +6131,11 @@ Vi anbefaler at du bruker det AppImage som er tilgjengelig pÃ¥ nedlastingssidene Unknown cipher: %1 - Ukjent kryptering: %1 + Ukjent chiffer: %1 + + + AES-256/GCM is currently not supported + AES-256/GCM støttes for øyeblikket ikke Passphrase is required to decrypt this key @@ -5711,7 +6147,7 @@ Vi anbefaler at du bruker det AppImage som er tilgjengelig pÃ¥ nedlastingssidene Cipher IV is too short for MD5 kdf - Krypterings-IV er for kort for MD5 kdf + Chiffer IV er for kort for MD5 kdf Unknown KDF: %1 @@ -5767,26 +6203,177 @@ Vi anbefaler at du bruker det AppImage som er tilgjengelig pÃ¥ nedlastingssidene - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Passordene er ikke like + SSH Key Generator + SSH nøkkelgenerator - Passwords match so far - Passordmatch sÃ¥ langt + Type + Type - Toggle Password (%1) - Veksle passord (%1) + Bits + Biter - Generate Password (%1) - Opprette passord (%1) + Comment + Kommentar + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - Eksport av tilgangsnøkkel - Warning: Caps Lock enabled! - Advarsel: Store bokstaver aktivert! + Export the following Passkey entries. + Eksporter disse tilgangsnøkkel-oppføringene + + + Filenames will be generated with title and .passkey file extension. + Filnavn vil bli generert med tittel og .passkey-filtype. + + + Export entries + Eksporter oppføringer + + + Export Selected + Eksporter valgte + + + Cancel + Avbryt + + + Export to folder + Eksporter til mappe + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: Eksport av tilgangsnøkkel + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + Filen "%1.passkey" finnes allerede. +Vil du erstatte den? + + + Cannot open file + Kan ikke Ã¥pne fil + + + Cannot open file "%1" for writing. + Kan ikke Ã¥pne fil "%1" for skriving. + + + Cannot write to file + Kan ikke skrive til fil + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - Import av tilgangsnøkkel + + + Username: %1 + Brukernavn: %1 + + + Group + Gruppe + + + Database + Database + + + Import Passkey + Importer tilgangsnøkkel + + + Import + Importer + + + Cancel + Avbryt + + + Import the following Passkey: + Importer følgende tilgangsnøkkel: + + + Entry + Oppføring + + + Import the following Passkey to this entry: + Importer følgende tilgangsnøkkel til denne oppføringen: + + + Create new entry + Opprett ny oppføring + + + Default Passkeys group (Imported Passkeys) + Standardgruppe for tilgangsnøkler (importerte tilgangsnøkler) + + + Relying Party: %1 + Tiltrodd part: %1 + + + + PasskeyImporter + + Passkey file + Tilgangsnøkkelfil + + + All files + Alle filer + + + Open Passkey file + Ã…pne tilgangsnøkkelfil + + + Cannot open file + Kan ikke Ã¥pne fil + + + Cannot open file "%1" for reading. + Kan ikke Ã¥pne filen "%1" for lesing. + + + Cannot import Passkey + Kan ikke importere tilgangsnøkkel + + + Cannot import Passkey file "%1". Data is missing. + Kan ikke importere tilgangsnøkkelfil "%1". Data mangler. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + Kan ikke importere tilgangsnøkkelfil "%1". Privat nøkkel mangler eller er deformert. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + Kan ikke importere tilgangsnøkkelfil "%1". +Følgende data mangler: +%2 @@ -6051,6 +6638,30 @@ Vi anbefaler at du bruker det AppImage som er tilgjengelig pÃ¥ nedlastingssidene Entropy: %1 bit Entropi: %1 bit + + Password Quality: %1 + Passordkvalitet: %1 + + + Poor + Password quality + DÃ¥rlig + + + Weak + Password quality + Svak + + + Good + Password quality + Bra + + + Excellent + Password quality + Utmerket + Confirm Delete Wordlist Bekreft sletting av ordlisten @@ -6097,9 +6708,32 @@ Vil du erstatte den? Special Characters Spesialtegn + + + PasswordWidget - Password Quality: %1 - Passordkvalitet: %1 + Passwords do not match + Passordene er ikke like + + + Passwords match so far + Passordmatch sÃ¥ langt + + + Toggle Password (%1) + Vis/skjul passord (%1) + + + Generate Password (%1) + Opprette passord (%1) + + + Warning: Caps Lock enabled! + Advarsel: Store bokstaver aktivert! + + + Quality: %1 + Kvalitet: %1 Poor @@ -6121,6 +6755,10 @@ Vil du erstatte den? Password quality Utmerket + + Toggle password visibility using Control + H. Open the password generator using Control + G. + Vis/skjul synlig passord med Control + H. Ã…pne passordgeneratoren med Control + G. + PickcharsDialog @@ -6175,6 +6813,10 @@ Vil du erstatte den? Continue Fortsett + + Continue with weak password + Fortsett med svakt passord + QObject @@ -6220,7 +6862,7 @@ Vil du erstatte den? No URL provided - Ingen URL oppgitt + Ingen URL angitt No logins found @@ -6568,6 +7210,10 @@ Vil du erstatte den? Too many arguments provided. Det er angitt for mange argumenter. + + Path of the database. + Database-sti. + Target decryption time in MS for the database. MÃ¥l-dekrypteringstid i MS for databasen. @@ -6576,6 +7222,12 @@ Vil du erstatte den? time tid + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Angi nøkkelfilen for databasen. +Disse alternativene er utdatert, bruk --set-key-file i stedet. + Set the key file for the database. Angi nøkkelfilen for databasen. @@ -6588,10 +7240,6 @@ Vil du erstatte den? Create a new database. Opprett en ny database. - - Path of the database. - Database-sti. - Invalid decryption time %1. Ugyldig dekrypteringstid %1. @@ -6636,6 +7284,158 @@ Vil du erstatte den? Successfully created new database. Vellykket oppretting ny database. + + Unset the password for the database. + Slett passordet for databasen. + + + Unset the key file for the database. + Slett nøkkelfilen for databasen. + + + Edit a database. + Redigere en database. + + + Cannot use %1 and %2 at the same time. + Kan ikke bruke %1 og %2 samtidig. + + + Could not change the database key. + Kunne ikke endre databasenøkkelen. + + + Database was not modified. + Databasen ble ikke endret. + + + Writing the database failed: %1 + Skriving til databasen mislyktes: %1 + + + Successfully edited the database. + Vellykket redigering av databasen. + + + Cannot remove password: The database does not have a password. + Kan ikke fjerne passordet: Databasen har ikke passord. + + + Cannot remove file key: The database does not have a file key. + Kan ikke fjerne nøkkelfilen: Databasen har ikke en nøkkelfil. + + + Loading the new key file failed: %1 + Lasting av den nye nøkkelfilen mislyktes: %1 + + + Found unexpected Key type %1 + Fant uventet nøkkeltype %1 + + + Cannot remove all the keys from a database. + Kan ikke fjerne alle nøklene fra en database. + + + Show a database's information. + Vise informasjon om en database. + + + UUID: + UUID: + + + Name: + Navn: + + + Description: + Beskrivelse: + + + Cipher: + Chiffer: + + + KDF: + KDF: + + + Recycle bin is enabled. + Papirkurv er aktivert. + + + Recycle bin is not enabled. + Papirkurv er ikke aktivert. + + + Location + Plassering + + + Database created + Database opprettet + + + Last saved + Sist lagret + + + Unsaved changes + Ikke lagrede endringer + + + yes + ja + + + no + nei + + + Number of groups + Antall grupper + + + Number of entries + Antall oppføringer + + + Number of expired entries + Antall utløpte oppføringer + + + Unique passwords + Unike passord + + + Non-unique passwords + Dupliserte passord + + + Maximum password reuse + Maksimal gjenbruk av passord + + + Number of short passwords + Antall korte passord + + + Number of weak passwords + Antall svake passord + + + Entries excluded from reports + Oppføringer som er utelatt fra rapporter + + + Average password length + Gjennomsnittlig passordlengde + + + %1 characters + %1 tegn + Word count for the diceware passphrase. Antall ord i diceware-passordfrasen. @@ -6687,10 +7487,6 @@ Vil du erstatte den? Enter new password for entry: Skriv inn nytt passord for oppføring: - - Writing the database failed: %1 - Skriving til databasen mislyktes: %1 - Successfully edited entry %1. Endring av oppføring %1 er fullført. @@ -6915,106 +7711,6 @@ Vil du erstatte den? Successfully imported database. Databasen er importert. - - Show a database's information. - Vise informasjon om en database. - - - UUID: - UUID: - - - Name: - Navn: - - - Description: - Beskrivelse: - - - Cipher: - Chiffer: - - - KDF: - KDF: - - - Recycle bin is enabled. - Papirkurv er aktivert. - - - Recycle bin is not enabled. - Papirkurv er ikke aktivert. - - - Location - Plassering - - - Database created - Database opprettet - - - Last saved - Sist lagret - - - Unsaved changes - Ikke lagrede endringer - - - yes - ja - - - no - nei - - - Number of groups - Antall grupper - - - Number of entries - Antall oppføringer - - - Number of expired entries - Antall utløpte oppføringer - - - Unique passwords - Unike passord - - - Non-unique passwords - Dupliserte passord - - - Maximum password reuse - Maksimal gjenbruk av passord - - - Number of short passwords - Antall korte passord - - - Number of weak passwords - Antall svake passord - - - Entries excluded from reports - Oppføringer som er utelatt fra rapporter - - - Average password length - Gjennomsnittlig passordlengde - - - %1 characters - %1 tegn - Unknown command %1 Ukjent kommando %1 @@ -7187,6 +7883,10 @@ Tilgjengelige kommandoer: Show the protected attributes in clear text. Vis de beskyttede attributtene i klartekst. + + Show all the attributes of the entry. + Vis alle attributtene for oppføringen. + Show the attachments of the entry. Vise vedleggene til oppføringen. @@ -7257,6 +7957,10 @@ Vurder Ã¥ lage en ny nøkkelfil. Invalid YubiKey serial %1 Ugyldig YubiKey-serienummer %1 + + Please present or touch your YubiKey to continue. + Koble til eller berør YubiKey for Ã¥ fortsette. + Enter password to encrypt database (optional): Skriv inn passord for Ã¥ kryptere databasen (valgfritt): @@ -7444,8 +8148,8 @@ Kjerne: %3 %4 %1 minutt%1 minutter - Botan library must be at least 2.11.x, found %1.%2.%3 - Botan-biblioteket mÃ¥ være minst 2.11.x, funnet %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + Botanbiblioteket mÃ¥ være minst %1, funnet %2.%3.%4 Cryptographic libraries: @@ -7497,7 +8201,7 @@ Kjerne: %3 %4 malformed string - Ugyldig streng + Deformert streng missing closing quote @@ -7685,10 +8389,6 @@ Kjerne: %3 %4 read password of the database from stdin Les database-passord fra standard input - - allow app screen recordering and screenshots - tillat skjermopptaker og skjermdumper for apper - Locked databases. LÃ¥ste databaser. @@ -7701,6 +8401,10 @@ Kjerne: %3 %4 Another instance of KeePassXC is already running. En annen instans av KeePassXC kjører allerede. + + KeePassXC is not running. No open database to lock + KeePassXC kjører ikke. Ingen Ã¥pen database Ã¥ lÃ¥se + Fatal error while testing the cryptographic functions. Alvorlig feil ved testing av de kryptografiske funksjonene. @@ -7709,10 +8413,6 @@ Kjerne: %3 %4 KeePassXC - Error KeePassXC - Feil - - Warning: Failed to prevent screenshots on a top level window! - Advarsel: Kunne ikke forhindre skjermdumper av et toppnivÃ¥-vindu! - Database password: Databasepassord: @@ -7736,7 +8436,221 @@ Kjerne: %3 %4 Signering av utfordring ved hjelp av Windows Hello feilet. - Please present or touch your YubiKey to continue. + Warning: Failed to block screenshot capture on a top-level window. + Advarsel: Kunne ikke blokkere skjermbildeopptak i et vindu pÃ¥ øverste nivÃ¥. + + + Invalid Cipher + Ugyldig chiffer + + + Invalid KDF + Ugyldig KDF + + + Access to all entries is denied + Tilgang til alle oppføringer nektes + + + allow screenshots and app recording (Windows/macOS) + tillat skjermdumper og app-opptak (Windows/macOS) + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + Attestasjon støttes ikke + + + Credential is excluded + Identifikasjon er utelatt + + + Passkeys request canceled + Forespørsel om tilgangsnøkler kansellert + + + Invalid user verification + Ugyldig brukerverifikasjon + + + Empty public key + Tom offentlig nøkkel + + + Invalid URL provided + Angitt URL er ugyldig + + + Passkeys + Tilgangsnøkler + + + AES initialization failed + AES-initialisering mislyktes + + + AES encrypt failed + AES-kryptering mislyktes + + + Failed to store in Linux Keyring + Kunne ikke lagre i Linux-nøkkelring + + + Polkit returned an error: %1 + Polkit returnerte en feil: %1 + + + Could not locate key in keyring + Kunne ikke finne nøkkel i nøkkelring + + + Could not read key in keyring + Kunne ikke lese nøkkel i nøkkelring + + + AES decrypt failed + AES-dekryptering mislyktes + + + No Polkit authentication agent was available + Ingen Polkit-autentiseringsagent var tilgjengelig + + + Polkit authorization failed + Polkit-autorisasjon mislyktes + + + No Quick Unlock provider is available + Ingen hurtigopplÃ¥sings-tjeneste er tilgjengelig + + + Failed to init KeePassXC crypto. + Initialisering av KeePassXC krypto feilet. + + + Failed to encrypt key data. + Kryptering av nøkkeldata feilet. + + + Failed to get Windows Hello credential. + Henting av identifikasjon fra Windows Hello feilet. + + + Failed to decrypt key data. + Dekryptering av nøkkeldata feilet. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + Vent til tidtakeren utløper + + + Unknown Passkeys error + Ukjent feil med tilgangsnøkler + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7776,18 +8690,6 @@ Kjerne: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - Utelat utløpte oppføringer fra rapporten - - - Show only entries which have URL set - Vis bare oppføringer med registrert URL - - - Show only entries which have browser settings in custom data - Vis bare oppføringer med egendefinerte nettleserinnstillinger - Double-click entries to edit. Dobbeltklikk pÃ¥ oppføringer som skal endres. @@ -7852,17 +8754,25 @@ Kjerne: %3 %4 Exclude from reports Utelat fra rapporter + + Only show entries that have a URL + Vis bare oppføringer som har en URL + + + Only show entries that have been explicitly allowed or denied + Vis kun oppføringer som har blitt eksplisitt tillatt eller nektet + + + Show expired entries + Vis utløpte oppføringer + + + (Expired) + (Utløpt) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - Utelat utløpte oppføringer fra rapporten - - - Also show entries that have been excluded from reports - Vis ogsÃ¥ oppføringer som er utelatt fra rapporter - Hover over reason to show additional details. Double-click entries to edit. Hold pekeren over Ã¥rsaken for Ã¥ vise flere detaljer. Dobbeltklikk pÃ¥ oppføringer for Ã¥ redigere. @@ -7938,6 +8848,18 @@ Kjerne: %3 %4 Exclude from reports Ekskluder fra rapporter + + Show expired entries + Vis utløpte oppføringer + + + Show entries that have been excluded from reports + Vis oppføringer som er ekskluderte fra rapporter + + + (Expired) + (Utløpt) + ReportsWidgetHibp @@ -8034,6 +8956,65 @@ Kjerne: %3 %4 Ekskluder fra rapporter + + ReportsWidgetPasskeys + + Export + Eksporter + + + Import + Importer + + + List of entry URLs + Liste over URL'er i oppføringer + + + Please wait, list of entries with Passkeys is being updated… + Vent litt, oppdaterer liste over oppføringer med tilgangsnøkler… + + + No entries with Passkeys. + Ingen oppføringer med tilgangsnøkler. + + + Title + Tittel + + + Path + Sti + + + Username + Brukernavn + + + URLs + URL'er + + + Edit Entry… + Endre oppføring… + + + Delete Entry(s)… + Slett oppføring...Slett oppføringer... + + + Relying Party + Tiltrodd part + + + Show expired entries + Vis utløpte oppføringer + + + (Expired) + (Utløpt) + + ReportsWidgetStatistics @@ -8273,6 +9254,10 @@ Kjerne: %3 %4 Search Help Søkehjelp + + Save Search + Lagre søk + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8504,11 +9489,38 @@ Kjerne: %3 %4 Eksporter til %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All - Alt + Clear Search + Tøm søk + + + All Entries + Alle oppføringer Expired @@ -8519,6 +9531,25 @@ Kjerne: %3 %4 Svake passord + + TagView + + Remove Search + Fjern søk + + + Remove Tag + Fjern taggen + + + Confirm Remove Tag + Bekreft fjerning av taggen + + + Remove tag "%1" from all entries in this database? + Fjern taggen "% 1" fra alle oppføringer i denne databasen? + + TotpDialog @@ -8676,26 +9707,6 @@ Eksempel: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Begynn Ã¥ lagre passordene dine i en trygg KeePassXC-database - - Create new database - Opprett ny database - - - Open existing database - Ã…pne eksisterende database - - - Import from KeePass 1 - Importer KeePass1-database - - - Import from 1Password - Importer fra 1Password - - - Import from CSV - Importer fra CSV-fil - Recent databases Nylige databaser @@ -8708,6 +9719,18 @@ Eksempel: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Velkommen til KeePassXC %1 + + Create Database + Opprett database + + + Open Database + Ã…pne database + + + Import File + + WinUtils @@ -8724,31 +9747,8 @@ Eksempel: JBSWY3DPEHPK3PXP Kunne ikke registrere global hurtigtast - - WindowsHello - - Failed to init KeePassXC crypto. - Initialisering av KeePassXC krypto feilet. - - - Failed to encrypt key data. - Kryptering av nøkkeldata feilet. - - - Failed to get Windows Hello credential. - Henting av identifikasjon fra Windows Hello feilet. - - - Failed to decrypt key data. - Dekryptering av nøkkeldata feilet. - - YubiKey - - %1 No interface, slot %2 - %1 Ingen grensesnitt, spor %2 - General: Generelt: @@ -8760,14 +9760,6 @@ Eksempel: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - Oppdater maskinvarenøkkel - - - Refresh - Last pÃ¥ ny - Hardware key slot selection Valg av spor i maskinvarenøkkel @@ -8800,10 +9792,6 @@ Eksempel: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove Utfordrerrespons angitt, klikk for Ã¥ endre eller fjerne - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>Hvis du eier en <a href="https://www.yubico.com/">YubiKey</a> eller <a href="https://onlykey.io">OnlyKey</a>, kan du bruke den for ekstra sikkerhet.</p><p>Nøkkelen krever at ett av sporene programmeres som <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 utfordrerrespons</a>.</p> - Detecting hardware keys… Oppdager maskinvarenøkler... @@ -8812,27 +9800,20 @@ Eksempel: JBSWY3DPEHPK3PXP No hardware keys detected Ingen maskinvarenøkler oppdaget - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 Ugyldig spor angitt - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + <p>Hvis du eier en <a href="https://www.yubico.com/">YubiKey</a> eller <a href="https://onlykey.io">OnlyKey</a>, kan du bruke den for ekstra sikkerhet.</p><p>Nøkkelen krever at et av sporene er programmert som <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/utfordrerrespons.html">HMAC-SHA1 utfordrerrespons</a>.</p> + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] utfordrerrespons – spor %3 - The YubiKey PCSC interface has not been initialized. - YubiKey PCSC-grensesnittet er ikke klargjort. - - - Hardware key is currently in use. - Maskinvarenøkkelen er for øyeblikket i bruk. + PCSC-grensesnittet til YubiKey er ikke klargjort. Could not find or access hardware key with serial number %1. Please present it to continue. @@ -8850,6 +9831,21 @@ Eksempel: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 Kan ikke fullføre utfordrerrespons, PCSC-feilkoden er %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + Trykk + + + Passive + USB Challenge-Response Key no interaction required + Passiv + YubiKeyInterfaceUSB @@ -8857,14 +9853,6 @@ Eksempel: JBSWY3DPEHPK3PXP Unknown Ukjent - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] Konfigurert spor – %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] utfordrerrespons – spor %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8879,10 +9867,6 @@ Eksempel: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. USB-grensesnittet til YubiKey er ikke blitt klargjort. - - Hardware key is currently in use. - Maskinvarenøkkelen er for øyeblikket i bruk. - Could not find hardware key with serial number %1. Please plug it in to continue. Kunne ikke finne maskinvarenøkkel med serienummer %1. Koble den til for Ã¥ fortsette. @@ -8899,5 +9883,15 @@ Eksempel: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 Kunne ikke fullføre utfordrerrespons, den spesifikke feilen var: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_nl.ts b/share/translations/keepassxc_nl.ts index 171bee2e0..88050c2d2 100644 --- a/share/translations/keepassxc_nl.ts +++ b/share/translations/keepassxc_nl.ts @@ -15,7 +15,7 @@ KeePassXC is distributed under the terms of the GNU General Public License (GPL) version 2 or (at your option) version 3. - KeePassXC wordt verspreid onder de voorwaarden van de GNU General Public License (GPL) versie 2 of (desgewenst) versie 3. + KeePassXC wordt uitgebracht onder de voorwaarden van de GNU General Public License (GPL) versie 2 of (desgewenst) versie 3. Project Maintainers: @@ -23,19 +23,19 @@ Special thanks from the KeePassXC team go to debfx for creating the original KeePassX. - Bijzondere dank van het KeePassXC-team gaat uit naar debfx voor het creëren van het oorspronkelijke KeePassX. + Bijzondere dank van het KeePassXC-team gaat uit naar debfx voor het maken van de originele KeePassX. Contributors - Bijdragen van + Bijdragen <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">See Contributions on GitHub</a> - <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">Toon bijdragen op GitHub</a> + <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">Bijdragen bekijken op GitHub</a> Debug Info - Foutinformatie + Foutopsporingsinformatie Include the following information whenever you report a bug: @@ -43,7 +43,7 @@ Copy to clipboard - Naar klembord kopiëren + Kopiëren naar klembord @@ -54,11 +54,11 @@ Non-existing/inaccessible executable path. Please double-check the client is legit. - Niet-bestaand/ontoegankelijk uitvoerbaar pad. Controleer nogmaals of de client legitiem is. + Niet-bestaande/ontoegankelijke locatie van het uitvoerbare bestand. Controleer of de client legitiem is. <html><head/><body><p><span style=" font-weight:600;">%1 </span>is requesting access to the following entries:</p></body></html> - <html><head/><body><p><span style=" font-weight:600;">%1 </span>vraagt om toegang tot de volgende items:</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">%1 </span>verzoekt toegang tot de volgende items:</p></body></html> Name @@ -80,6 +80,10 @@ Details Details + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Jouw beslissing wordt onthouden zolang de aanvragende client en KeePassXC BEIDE actief zijn. + Remember Onthouden @@ -88,39 +92,39 @@ Allow Selected Selectie toestaan - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - Jouw beslissing wordt onthouden voor de duur dat zowel de aanvragende client ALS KeePassXC actief zijn. - Deny All && Future - Alles afwijzen, nu && toekomst + Alles afwijzen, nu && toekomstig Allow All && &Future - Alles toestaan, nu && toekomst + Alles toestaan, nu && toekomstig AccessControlDialog::DenyButton Deny for this program - Weigeren voor dit programma + Programma weigeren AgentSettingsWidget Enable SSH Agent integration - SSH Agent-integratie inschakelen + Integratie van SSH-agent inschakelen Use Pageant - Gebruik Pageant + Pageant gebruiken Use OpenSSH - Gebruik OpenSSH + OpenSSH gebruiken + + + Use both agents + Beide agenten gebruiken SSH_AUTH_SOCK override @@ -128,7 +132,7 @@ SSH_AUTH_SOCK value - SSH_AUTH_SOCK waarde + SSH_AUTH_SOCK-waarde (empty) @@ -136,23 +140,19 @@ SSH_SK_PROVIDER value - SSH_SK_PROVIDER waarde + SSH_SK_PROVIDER-waarde SSH_SK_PROVIDER override - SSH_SK_PROVIDER override + SSH_SK_PROVIDER overschrijven No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. - Geen SSH Agent-socket beschikbaar. Zorg ervoor dat de omgevingsvariabele SSH_AUTH_SOCK bestaat of stel een overschrijving in. + Er is geen SSH-agent-socket beschikbaar. Zorg er voor dat de omgevingsvariabele SSH_AUTH_SOCK bestaat of stel een overschrijving in. SSH Agent connection is working! - SSH Agent-verbinding werkt! - - - Use both agents - + De SSH-agent-verbinding is actief! @@ -169,6 +169,10 @@ Security Beveiliging + + This setting cannot be enabled when minimize on unlock is enabled. + Deze instelling kan niet worden ingeschakeld als minimaliseren na ontgrendelen is ingeschakeld. + Access error for config file %1 Geen toegang tot configuratiebestand %1 @@ -191,7 +195,7 @@ Follow style - Volg stijl + Themastijl volgen Monochrome @@ -211,7 +215,7 @@ You must restart the application to set the new language. Would you like to restart now? - Je moet de toepassing opnieuw starten om de nieuwe taal in te stellen. Wil je dat nu doen? + Om de nieuwe taal in te stellen, dient KeePassXC te worden herstart. Wil je dat nu doen? Reset Settings? @@ -223,7 +227,7 @@ Select backup storage directory - Selecteer map voor opslag back-up + Kies een map voor reservekopie @@ -238,43 +242,47 @@ Start only a single instance of KeePassXC - Start niet meer dan één instantie van KeePassXC + Slechts één exemplaar van KeePassXC starten Automatically launch KeePassXC at system startup - KeePassXC automatisch opstarten met het systeem + KeePassXC automatisch opstarten Minimize window at application startup - Scherm minimaliseren bij het opstarten + Venster minimaliseren bij opstarten Minimize window after unlocking database - Venster minimaliseren na ontgrendelen van database + Venster minimaliseren na ontgrendeling database Remember previously used databases Laatstgebruikte databases onthouden + + recent files + recente bestanden + Load previously open databases on startup Laatstgebruikte databases openen bij het opstarten Remember database key files and security dongles - Laatstgebruikte sleutelbestanden en beveiligingssticks onthouden + Database-sleutelbestanden en beveiligingsdongles onthouden Check for updates at application startup once per week - Controleer eens per week op updates bij het opstarten van het programma + Eenmaal per week bij opstarten controleren op updates Include beta releases when checking for updates - Zoek ook naar bèta-releases bij het controleren op updates + Ook zoeken naar bètaversies On database unlock, show entries that - Bij het ontgrendelen van databases, toon items die + Na het ontgrendelen van een database: items tonen die have expired @@ -289,7 +297,7 @@ will expire within On database unlock, show entries that... - zullen vervallen binnen + zullen verlopen in File Management @@ -305,43 +313,43 @@ Automatically save non-data changes when locking database - Automatisch niet-gegevens wijzigingen opslaan bij het vergrendelen van de database + Niet-gegevenswijzigingen automatisch opslaan na vergrendelen van database Automatically reload the database when modified externally - Database automatisch opnieuw laden als deze van buitenaf is gewijzigd + Database automatisch opnieuw laden wanneer deze extern is gewijzigd Backup database file before saving - Back-up databasebestand voor het opslaan + Reservekopie van database maken alvorens op te slaan Backup destination - Back-upbestemming + Bestemming van de reservekopie Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". - Hiermee geeft u de locatie van het back-upbestand van de database op. Exemplaren van "{DB_FILENAME}" worden vervangen door de bestandsnaam van de opgeslagen database zonder extensie. {TIME:<format>} wordt vervangen door de back-uptijd, zie https://doc.qt.io/qt-5/qdatetime.html#toString. <format> standaard tekenreeks "dd_MM_yyyy_hh-mm-ss". + Hier kun je de locatie van het reservekopiebestand van de database opgeven. Items met "{DB_FILENAME}" worden vervangen door de bestandsnaam van de opgeslagen database, zonder de extensie. {TIME:<format>} wordt vervangen door de reservekopietijd (zie https://doc.qt.io/qt-5/qdatetime.html#toString). <format> is de standaard tekenreeks ‘dd_MM_yyyy_hh-mm-ss’. {DB_FILENAME}.old.kdbx - {DB_FILENAME}.old.kdbx + {DB_FILENAME}.oud.kdbx Choose... - Kiezen... + Kiezen… Use alternative saving method (may solve problems with Dropbox, Google Drive, GVFS, etc.) - Gebruik een alternatieve opslagmethode (kan problemen oplossen met Dropbox, Google Drive, GVFS, enz.) + Alternatieve opslagmethode gebruiken (kan problemen oplossen met Dropbox, Google Drive, GVFS, etc.) Temporary file moved into place - Tijdelijk bestand op zijn plaats verplaatst + Het tijdelijke bestand is op zijn plaats gezet Directly write to database file (dangerous) - Direct naar databasebestand schrijven (gevaarlijk) + Direct wegschrijven naar databasebestand (gevaarlijk) Entry Management @@ -353,11 +361,11 @@ Minimize when opening a URL - Minimaliseren bij het openen van een URL + Minimaliseren bij openen van URL Hide window when copying to clipboard - Venster verbergen bij kopiëren naar klembord + Venster verbergen na kopiëren naar klembord Minimize @@ -369,20 +377,20 @@ Favicon download timeout: - Favicon download time-out: + Time-out bij download favicon: Website icon download timeout in seconds - Websitepictogram download time-out in seconden + Time-out bij download websitepictogram (in seconden) sec Seconds - sec + sec. User Interface - Gebruikersomgeving + Vormgeving Toolbar button style @@ -402,75 +410,79 @@ (restart program to activate) - (programma opnieuw starten om te activeren) + (herstart om de wijziging toe te passen) Toolbar button style: Knopstijl van de werkbalk: + + Show passwords in color + Wachtwoorden in kleur weergeven + Use monospaced font for notes - Mono-lettertype gebruiken voor notities + Een niet-proportioneel lettertype gebruiken voor notities Minimize instead of app exit - Minimaliseren in plaats van app afsluiten + App minimaliseren in plaats van afsluiten Show a system tray icon - Pictogram in het systeemvak weergeven + Pictogram tonen in systeemvak Tray icon type - Systeemvak-pictogram + Systeemvakpictogram Tray icon type: - Systeemvak-pictogram: + Systeemvakpictogram: Hide window to system tray when minimized - Minimaliseren naar systeemvak + Venster minimaliseren naar systeemvak Reset settings to default… - Standaardinstellingen terugzetten... + Standaardwaarden herstellen… Auto-Type - Auto-type + Automatisch invullen Use entry title to match windows for global Auto-Type - Gebruik naam van item als vensternaam voor Auto-type + Titel van item gebruiken om het juiste venster te bepalen bij gebruik van automatisch invullen Use entry URL to match windows for global Auto-Type - Laat URL overeenkomen met item bij Auto-type + URL gebruiken om het juiste venster te bepalen bij gebruik van automatisch invullen Always ask before performing Auto-Type - Altijd vragen voor toepassen Auto-type + Altijd vragen alvorens automatisch in te vullen Hide expired entries from Auto-Type - Verlopen items verbergen voor Auto-Type + Verlopen items verbergen van automatisch invullen Re-lock previously locked database after performing Auto-Type - Vergrendelde database na Auto-type weer vergrendelen + Vergrendelde database na automatisch invullen opnieuw vergrendelen Auto-Type start delay: - Auto-type startvertraging: + Wachttijd alvorens automatisch in te vullen: Global Auto-Type shortcut: - Algemene Auto-type sneltoets: + Algemene sneltoets van automatisch invullen: Auto-type start delay milliseconds - Auto-type startvertraging milliseconden + Wachttijd alvorens automatisch in te vullen (in milliseconden) ms @@ -479,19 +491,19 @@ Auto-Type typing delay: - Auto-type typevertraging: + Wachttijd alvorens automatisch in te vullen: Global auto-type shortcut - Globale sneltoets voor Auto-type + Algemene sneltoets van automatisch invullen Auto-type character typing delay milliseconds - Auto-typevertraging milliseconden + Wachttijd alvorens automatisch in te vullen (in milliseconden) Remember last typed entry for: - Onthoud de laatst getypte vermelding voor: + Laatstgebruikt item gebruiken voor: @@ -502,12 +514,12 @@ Database lock timeout seconds - Database vergrendeling wachttijd seconden + Wachttijd alvorens database te vergrendelen (in seconden) sec Seconds - sec + sec. Clear clipboard after @@ -520,11 +532,11 @@ min Minutes - min + min. Clipboard clear seconds - Klembord wissen in seconden + Klembord wissen na (in seconden) Lock databases after inactivity of @@ -536,31 +548,31 @@ Enable database quick unlock (Touch ID / Windows Hello) - Snel ontgrendelen van databases inschakelen (Touch ID / Windows Hello) + Snel ontgrendelen inschakelen (Touch ID/Windows Hello) Lock databases when session is locked or lid is closed - Databases vergrendelen als de gebruikerssessie wordt vergrendeld of bij het sluiten van het deksel + Databases vergrendelen wanneer de sessie wordt vergrendeld of het deksel gesloten Lock databases after minimizing the window - Databases vergrendelen bij het minimaliseren van het venster + Databases vergrendelen na minimaliseren van venster Require password repeat when it is visible - Herhaling vereisen wanneer het wachtwoord zichtbaar is + Herhaling vereisen als wachtwoord zichtbaar is Hide passwords when editing them - Wachtwoord verbergen tijdens bewerken + Wachtwoorden verbergen tijdens bewerken Use placeholder for empty password fields - Tijdelijke aanduiding gebruiken voor lege wachtwoordvelden + Tijdelijke aanduidingen tonen in lege wachtwoordvelden Hide passwords in the entry preview panel - Wachtwoorden in voorvertoning verbergen + Wachtwoorden in voorbeeldvenster verbergen Hide entry notes by default @@ -568,7 +580,7 @@ Move entries to recycle bin without confirmation - Items zonder bevestiging naar de prullenbak verplaatsen + Items zonder bevestiging naar prullenbak verplaatsen Enable double click to copy the username/password entry columns @@ -580,18 +592,22 @@ Use DuckDuckGo service to download website icons - DuckDuckGo gebruiken om websitepictogrammen te downloaden + DuckDuckGo gebruiken voor het downloaden van websitepictogrammen + + + Hide TOTP in the entry preview panel + TOTP in het voorbeeldvenster verbergen AutoType The requested Auto-Type sequence cannot be used due to an error: - De gevraagde automatische reeks kan niet worden gebruikt vanwege een fout: + De gevraagde invulreeks kan niet worden gebruikt wegens een foutmelding: Auto-Type Error - Fout bij Auto-type + Fout bij automatisch invullen Permission Required @@ -599,31 +615,35 @@ KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. - KeePassXC heeft de Toegankelijkheid-machtiging nodig om invoerniveau Auto-type te kunnen uitvoeren. Als je de machtiging al gegeven hebt, is het mogelijk dat je KeePassXC opnieuw moet opstarten. + KeePassXC vereist de toegankelijkheidsmachtiging om items automatisch te kunnen invullen. Als je de machtiging al hebt verleend, probeer dan om KeePassXC opnieuw te starten. KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. - KeePassXC heeft de Toegankelijkheid- en Schermopname-machtiging nodig om globale Auto-type te kunnen uitvoeren. Schermopname is benodigd om het venster te gebruiken om invoer te kunnen vinden. Als je de machtiging al gegeven hebt, is het mogelijk dat je KeePassXC opnieuw moet opstarten. + KeePassXC vereist de toegankelijkheids- en schermopnamemachtigingen om items automatisch te kunnen invullen. Schermopname is vereist om bijbehorende vensters te detecteren. Als je de machtigingen al hebt verleend, probeer dan om KeePassXC opnieuw te starten. Invalid entry provided - Ongeldige vermelding opgegeven + Ongeldig item opgegeven Bracket imbalance detected, found extra { or } - Ongelijk aantal haakjes gedetecteerd, extra { of } gevonden + Ongelijk aantal haakjes gedetecteerd: extra { of } aangetroffen Too many repetitions detected, max is %1: %2 - Te veel herhalingen gedetecteerd, max is %1: %2 + Teveel herhalingen gedetecteerd (%2). Maximaal toegestaan: %1. Very slow key press detected, max is %1: %2 - Zeer trage toetsaanslag gedetecteerd, max is %1: %2 + Zeer trage toetsaanslag gedetecteerd (%2). Maximaal toegestaan: %1. Very long delay detected, max is %1: %2 - Zeer lange vertraging gedetecteerd, max is %1: %2 + Zeer lange vertraging gedetecteerd (%2). Maximaal toegestaan: %1. + + + Entry does not have attribute for PICKCHARS: %1 + Het item bevat geen kenmerk voor PICKCHARS: %1 Invalid conversion type: %1 @@ -636,7 +656,7 @@ Invalid regular expression syntax %1 %2 - Ongeldige syntaxis voor reguliere expressie %1 + Ongeldige syntaxis in reguliere uitdrukking ‘%1’ %2 @@ -671,7 +691,7 @@ Title - Naam + Titel Username @@ -686,15 +706,15 @@ AutoTypePlatformX11 Trying to send invalid keysym. - Poging om ongeldig keysym te verzenden. + Poging om ongeldige keysym te verzenden. Sequence aborted: Caps Lock is on - Volgorde afgebroken: Caps Lock is ingeschakeld + Reeks afgebroken: Caps Lock is ingeschakeld Sequence aborted: Modifier keys held by user - Reeks afgebroken: Modifier-toetsen ingedrukt door de gebruiker + Reeks afgebroken: speciale toetsen ingedrukt door de gebruiker Unable to get valid keycode for key: @@ -705,11 +725,11 @@ AutoTypeSelectDialog Auto-Type - KeePassXC - Auto-type - KeePassXC + Automatisch invullen - KeePassXC Double click a row to perform Auto-Type or find an entry using the search: - Dubbelklik op een rij om Automatisch typen uit te voeren of zoek een item met de zoekopdracht: + Dubbelklik op een rij om Automatisch in te vullen of zoek een item met de zoekopdracht: <p>You can use advanced search queries to find any entry in your open databases. The following shortcuts are useful:<br/> @@ -718,12 +738,12 @@ Ctrl+1 - Type username<br/> Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> - <p>Gebruik geavanceerde zoekopdrachten om items in de geopende databases te vinden. De volgende sneltoetsen zijn handig:<br/> -Ctrl+F - Zoeken in database in-/uitschakelen<br/> -Ctrl+1 - Typ gebruikersnaam<br/> -Ctrl+2 - Typ wachtwoord<br/> -Ctrl+3 - Typ TOTP<br/> -Ctrl+4 - Virtueel toetsenbord gebruiken (alleen Windows)</p> + <p>Je kunt uitgebreide zoekopdrachten uitvoeren om items in de geopende databases te vinden. De volgende sneltoetsen zijn handig:<br/> +Ctrl + F - Database doorzoeken tonen/verbergen<br/> +Ctrl + 1 - Gebruikersnaam invoeren<br/> +Ctrl + 2 - Wachtwoord invoeren<br/> +Ctrl + 3 - TOTP invoeren<br/> +Ctrl + 4 - Virtueel toetsenbord gebruiken (alleen op Windows)</p> Search all open databases @@ -731,7 +751,7 @@ Ctrl+4 - Virtueel toetsenbord gebruiken (alleen Windows)</p> Search… - Zoeken... + Zoeken… Type Sequence @@ -743,11 +763,11 @@ Ctrl+4 - Virtueel toetsenbord gebruiken (alleen Windows)</p> Type {USERNAME} - {GEBRUIKERSNAAM} invoeren + {USERNAME} invoeren Type {PASSWORD} - {WACHTWOORD} invoeren + {PASSWORD} invoeren Type {TOTP} @@ -778,11 +798,11 @@ Ctrl+4 - Virtueel toetsenbord gebruiken (alleen Windows)</p> %1 is requesting access to the following entries: - %1 vraagt toegang tot de volgende vermeldingen: + %1 vraagt toegang tot de volgende items: Remember access to checked entries - Onthoud de toegang tot aangevinkte vermeldingen + Toegang tot geselecteerde items onthouden Remember @@ -790,7 +810,7 @@ Ctrl+4 - Virtueel toetsenbord gebruiken (alleen Windows)</p> Allow access to entries - Toegang tot vermeldingen toestaan + Toegang tot items toestaan Allow Selected @@ -802,18 +822,18 @@ Ctrl+4 - Virtueel toetsenbord gebruiken (alleen Windows)</p> Disable for this site - Uitschakelen voor deze website + Uitschakelen op deze website + + + Undo + Ongedaan maken BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser: Item opslaan - Ok - Oké + OK Cancel @@ -823,125 +843,162 @@ Ctrl+4 - Virtueel toetsenbord gebruiken (alleen Windows)</p> You have multiple databases open. Please select the correct database for saving credentials. Er zijn meerdere databases geopend. -Selecteer de database voor het opslaan van de inloggegevens. +Kies de database waarin de inloggegevens dienen te worden opgeslagen. + + + KeePassXC - Select Database + KeePassXC - Selecteer database + + + + BrowserPasskeysConfirmationDialog + + Cancel + Annuleren + + + Update + Update + + + Authenticate + Authenticeren + + + Register new + Nieuw registreren + + + Register + Registreren + + + Timeout in <b>%n</b> seconds... + Time-out over <b>%n</b> seconde…Time-out over <b>%n</b> seconden… + + + Do you want to register Passkey for: + Wil je Passkey registreren voor: + + + Existing Passkey found. +Do you want to register a new Passkey for: + Bestaande Passkey gevonden. +Wil je een nieuwe Passkey registreren voor: + + + Select the existing Passkey and press Update to replace it. + Selecteer de bestaande Passkey en druk op Update om deze te vervangen. + + + Authenticate Passkey credentials for: + Passkey-inloggegevens verifiëren voor: + + + Relying Party: %1 + Vertrouwende partij: %1 + + + Username: %1 + Gebruikersnaam: %1 + + + KeePassXC - Passkey credentials + KeePassXC - Passkey-inloggegevens BrowserService - - KeePassXC: Create a new group - KeePassXC: Een nieuwe groep aanmaken - A request for creating a new group "%1" has been received. Do you want to create this group? - Een aanvraag voor het aanmaken van een nieuwe groep '%1' werd ontvangen. + Er is een aanvraag gedaan voor het aanmaken van een nieuwe groep genaamd ‘%1’. Wil je deze groep aanmaken? - - KeePassXC: New key association request - KeePassXC: Nieuw verzoek voor sleutelkoppeling - You have received an association request for the following database: %1 Give the connection a unique name or ID, for example: chrome-laptop. - Je hebt een associatieverzoek ontvangen voor de volgende database: + Er is toegang gevraagd tot de volgende database: %1 -Geef de verbinding een unieke naam of ID, voorbeeld: +Geef de koppeling een unieke naam of id. Voorbeeld: chrome-laptop Save and allow access Opslaan en toegang verlenen - - KeePassXC: Overwrite existing key? - KeePassXC: Bestaande sleutel overschrijven? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? - Een gedeelde coderingssleutel met de naam "%1" bestaat al. + Er is al een gedeelde beveiligingssleutel genaamd ‘%1’. Wil je deze overschrijven? - - KeePassXC: Update Entry - KeePassXC: Item bijwerken - Do you want to update the information in %1 - %2? Wil je de gegevens in %1 - %2 bijwerken? - - KeePassXC: Delete entry - KeePassXC: Item verwijderen - A request for deleting entry "%1" has been received. Do you want to delete the entry? - Er is een verzoek ontvangen om item "%1" te verwijderen. + Er is een verzoek gedaan om ‘%1’ te verwijderen. Wil je dit item verwijderen? - Converting attributes to custom data… - Kenmerken worden omgezet in aangepaste gegevens... + %1 (Passkey) + %1 (Passkey) - Abort - Afbreken + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + Item heeft al een Passkey. +Wil je de Passkey overschrijven in %1 - %2? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Omgezette KeePassHTTP-kenmerken + KeePassXC - Create a new group + KeePassXC - Een nieuwe groep aanmaken - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Kenmerken van %1 item(s) is/zijn omgezet. -%2 sleutels naar aangepaste gegevens verplaatst. - - - Successfully moved %n keys to custom data. - Sleutel is verplaats naar speciale data.%n Sleutels zijn verplaatst naar aangepaste gegevens. + Disable + Uitschakelen - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Geen item met KeePassHTTP-kenmerken gevonden! + KeePassXC - Overwrite existing key? + KeePassXC - Bestaande sleutel overschrijven? - The active database does not contain an entry with KeePassHTTP attributes. - De actieve database bevat geen item met KeePassHTTP-kenmerken. + KeePassXC - Update Passkey + KeePassXC - Passkey bijwerken - Don't show this warning again - Deze waarschuwing niet meer geven + KeePassXC - Update Entry + KeePassXC - Item bijwerken - KeePassXC: Legacy browser integration settings detected - KeePassXC: instellingen voor oudere browserintegratie gedetecteerd + KeePassXC - Delete entry + KeePassXC - Item verwijderen - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - De KeePassXC-Browser instellingen moeten worden verplaatst naar de instellingen-database. -Dit is nodig om de huidige browserverbindingen te behouden. -Wil je de bestaande instellingen nu migreren? + KeePassXC - New key association request + KeePassXC - Nieuw Passkey-toewijzingsverzoek + + + Passkey + Passkey BrowserSettingsWidget Dialog - Dialoog + Dialoogvenster This is required for accessing your databases with KeePassXC-Browser @@ -957,11 +1014,11 @@ Wil je de bestaande instellingen nu migreren? Browsers installed as snaps are currently not supported. - Browsers die als snaps zijn geïnstalleerd, worden momenteel niet ondersteund. + Browsers die als snap zijn geïnstalleerd, worden momenteel niet ondersteund. Enable integration for these browsers: - Activeer integratie voor deze browsers: + Integratie in de volgende browsers inschakelen: Vivaldi @@ -994,31 +1051,31 @@ Wil je de bestaande instellingen nu migreren? Show a notification when credentials are requested Credentials mean login data requested via browser extension - Toon een melding wanneer om referenties wordt gevraagd + Melding tonen als er om inloggegevens wordt gevraagd Request to unlock the database if it is locked - Verzoek om ontgrendeling van de database als deze is vergrendeld + Verzoek om de database te ontgrendelen als deze is vergrendeld Only entries with the same scheme (http://, https://, …) are returned. - Alleen items met hetzelfde schema (http://, https://, ...) worden gegeven. + Er worden alleen items met hetzelfde schema (http://, https://, ...) getoond. Match URL scheme (e.g., https://example.com) - Overeenkomstig URL-schema (bijv. https://example.com) + Overeenkomstig URL-schema vereisen (bijv. https://voorbeeld.nl) Only returns the best matches for a specific URL instead of all entries for the whole domain. - Geeft alleen de beste overeenkomsten terug voor een specifieke URL in plaats van alle items voor het hele domein. + Toont alleen de beste overeenkomsten bij een specifieke URL in plaats van alle items op het domein. Return only best-matching credentials - Geef alleen best overeenkomende inloggegevens + Alleen beste overeenkomsten tonen Returns expired credentials. String [expired] is added to the title. - Geeft verlopen inloggegevens. Woord [expired] is aan de titel toegevoegd. + Toont verlopen inloggegevens. De tekst ‘[verlopen]’ wordt aan de titel toegevoegd. Allow returning expired credentials @@ -1026,12 +1083,12 @@ Wil je de bestaande instellingen nu migreren? All databases connected to the extension will return matching credentials. - Alle databases verbonden met de extensie kunnen overeenkomende inloggegevens geven. + Alle databases die aan de extensie gekoppeld zijn kunnen overeenkomende inloggegevens opleveren. Search in all opened databases for matching credentials Credentials mean login data requested via browser extension - Zoek in alle geopende databases naar overeenkomende inloggegevens + Alle geopende databases doorzoeken op overeenkomstige inloggegevens Advanced @@ -1050,23 +1107,23 @@ Wil je de bestaande instellingen nu migreren? Do not ask permission for HTTP Basic Auth An extra HTTP Basic Auth setting - Vraag geen toestemming voor HTTP Basic Auth + Geen toestemming vragen bij gebruik van HTTP Basic Auth Automatically creating or updating string fields is not supported. - Het automatisch aanmaken of wijzigen van tekenreeks-velden wordt niet ondersteund. + Het automatisch aanmaken of wijzigen van tekenreeksvelden wordt niet ondersteund. Return advanced string fields which start with "KPH: " - Lever geavanceerde tekenreeksvelden die beginnen met "KPH:" + Geavanceerde tekenreeksvelden die beginnen met ‘KPH:’ tonen Don't display the popup suggesting migration of legacy KeePassHTTP settings. - Laat de pop-up die de migratie van KeePassHTTP naar KeePassXC-Browser aanbiedt, niet meer zien. + De pop-up die de migratie van KeePassHTTP naar KeePassXC-Browser aanbiedt niet meer tonen. Do not prompt for KeePassHTTP settings migration. - Vraag niet om migratie van KeePassHTTP-instellingen. + Niet vragen om migratie van KeePassHTTP-instellingen. Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup. @@ -1074,24 +1131,24 @@ Wil je de bestaande instellingen nu migreren? Update native messaging manifest files at startup - Native messaging-manifestbestanden bij het opstarten bijwerken + Native messaging-manifestbestanden bij opstarten automatisch bijwerken Use a custom proxy location if you installed a proxy manually. - Gebruik een aangepaste proxy-locatie als je zelf een proxy hebt geïnstalleerd. + Gebruik een aangepaste proxy-locatie als er handmatig een proxy is geïnstalleerd. Use a custom proxy location: Meant is the proxy for KeePassXC-Browser - Aangepaste proxy-locatie toepassen: + Aangepaste proxy-locatie: Custom proxy location field - Handmatig Proxy invulveld + Aangepast proxy-locatieveld Browser for custom proxy file - Blader naar eigen Proxy configuratiebestand + Kies een eigen proxy-configuratiebestand Browse… @@ -1100,11 +1157,11 @@ Wil je de bestaande instellingen nu migreren? Use a custom browser configuration location: - Aangepaste locatie voor de browserconfiguratie gebruiken: + Aangepaste browserconfiguratielocatie gebruiken: Browser type: - Browser-type: + Webbrowser: Toolbar button style @@ -1116,7 +1173,7 @@ Wil je de bestaande instellingen nu migreren? Custom browser location field - Aangepast locatieveld van de browser + Aangepast browserlocatieveld Browse for custom browser path @@ -1124,31 +1181,23 @@ Wil je de bestaande instellingen nu migreren? Custom extension ID: - Aangepast extensie-ID: + Aangepaste extensie-id: Custom extension ID - Aangepast extensie-ID + Aangepaste extensie-id Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 - Vanwege de Snap-sandboxing moet je een script uitvoeren waarmee browserintegratie mogelijk wordt. <br /> Je kunt dit script vinden op %1 + Door de Snap-sandboxing moet je een script uitvoeren om browserintegratie mogelijk te maken. <br /> Dit script is te vinden op %1 KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2 and %3. %4 - KeePassXC-Browser is nodig om de integratie met de browser te laten werken. <br /> Download het voor %1 en %2 en %3. %4 + KeePassXC-Browser is nodig om de integratie met de browser te laten werken. <br /> Download deze browserextensie voor %1 en %2 en %3. %4 Please see special instructions for browser extension use below - Raadpleeg onderstaande speciale instructies voor gebruik van browserextensie - - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - Fout:</b> De aangepaste proxy-locatie is niet gevonden!<br/>Browserintegratie WERKT NIET zonder de proxy-applicatie. - - - <b>Warning:</b> The following options can be dangerous! - <b>Waarschuwing:</b> De volgende opties kunnen gevaarlijk zijn! + Raadpleeg onderstaande instructies omtrent het gebruik van de browserextensie Executable Files @@ -1160,22 +1209,54 @@ Wil je de bestaande instellingen nu migreren? Select custom proxy location - Selecteer aangepaste proxy-locatie + Kies een aangepaste proxy-locatie Select native messaging host folder location - Selecteer de locatie van de native messaging-hostmap + Kies de locatie van de native messaging-hostmap + + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + Toestaan dat keepassxc-proxy alle items uit gekoppelde databases opsomt, inclusief titel, URL en UUID. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + Beperkte toegang tot items in gekoppelde databases toestaan (negeert website-toegangsbeperkingen) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Waarschuwing:</b> pas deze instellingen alleen aan indien nodig. + + + The custom proxy location does not exist. + De aangepaste proxy-locatie bestaat niet. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Foutmelding:</b> de aangepaste proxy-locatie bestaat niet. Corrigeer dit op het tabblad geavanceerde instellingen. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Foutmelding:</b> het geïnstalleerde proxy-bestand ontbreekt op de verwachte locatie: %1<br/>Stel een aangepaste proxy-locatie in in de geavanceerde instellingen of installeer het programma opnieuw. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + Maakt het gebruik van onveilige http://localhost met Passkeys mogelijk voor testdoeleinden. + + + Allow using localhost with Passkeys + Toestaan om localhost te gebruiken met Passkeys CloneDialog Clone Entry Options - Opties voor items dupliceren + Opties voor dupliceren Append ' - Clone' to title - Voeg ' - Duplicaat' toe aan naam + ' (duplicaat)' toevoegen aan titel Replace username and password with references @@ -1183,26 +1264,18 @@ Wil je de bestaande instellingen nu migreren? Copy history - Historie kopiëren + Geschiedenis kopiëren CsvImportWidget - - Import CSV fields - CSV-velden importeren - - - filename - bestandsnaam - size, rows, columns grootte, rijen, kolommen Column Association - Kolomverwijzing + Kolomtoewijzing Password @@ -1214,7 +1287,7 @@ Wil je de bestaande instellingen nu migreren? Title - Naam + Titel Group @@ -1254,11 +1327,11 @@ Wil je de bestaande instellingen nu migreren? Text is qualified by - Tekst staat tussen + Tekst wordt gekenmerkt door Text qualification - Tekstkwalificatie + Tekstmarkering Fields are separated by @@ -1266,11 +1339,11 @@ Wil je de bestaande instellingen nu migreren? Field separation - Veldscheiding + Scheidingsteken Comments start with - Commentaar start met + Opmerkingen beginnen met Header lines skipped @@ -1286,15 +1359,15 @@ Wil je de bestaande instellingen nu migreren? Consider '\' an escape character - Beschouw '\' als escape-teken + ‘\’ beschouwen als escapeteken Preview - Voorvertoning + Voorbeeld CSV import preview - CSV import voorbeeld + Csv-import - Voorbeeld Not Present @@ -1304,51 +1377,30 @@ Wil je de bestaande instellingen nu migreren? Column %1 Kolom %1 - - Imported from CSV file - Geïmporteerd uit CSV-bestand - - - Original data: - Originele gegevens: - - - Error(s) detected in CSV file! - Fout(en) gevonden in CSV-bestand! - [%n more message(s) skipped] - [%n meer bericht(en) overgeslagen][%n bericht(en) overgeslagen] + [%n bericht overgeslagen][%n berichten overgeslagen] - Error - Fout + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - CSV importeren: schrijver heeft fouten: -%1 + Imported from CSV file: %1 + Geïmporteerd uit CSV-bestand: %1 CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n byte (s)%n byte(s) - %n row(s) - %n rij(en)%n rij(en) + CSV row count + %n rij%n rijen %n column(s) - %n kolom%n kolom(men) + CSV column count + %n kolom%n kolommen @@ -1364,7 +1416,7 @@ Wil je de bestaande instellingen nu migreren? Unable to open file %1. - Kan bestand %1 niet openen. + Bestand %1 kan niet worden geopend. Error while reading the database: %1 @@ -1372,29 +1424,29 @@ Wil je de bestaande instellingen nu migreren? Could not save, database does not point to a valid file. - Kan niet opslaan. Database verwijst niet naar een geldig bestand. + Het opslaan is mislukt, omdat de database niet verwijst naar een geldig bestand. Database save is already in progress. - Database wordt opgeslagen. + De database wordt opgeslagen. Could not save, database has not been initialized! - Niet opgeslagen, database is niet geïnitialiseerd! + Het opslaan is mislukt - de database is niet geïnitialiseerd! Database file has unmerged changes. - Databasebestand heeft niet opgeslagen gegevens. + Databasebestand heeft niet-samengevoegde wijzigingen. %1 Backup database located at %2 %1 -Back-up databestand op %2 +reservekopie van databestand in %2 Key not transformed. This is a bug, please report it to the developers. - Sleutel is niet getransformeerd. Dit is een fout, rapporteer deze alsjeblieft aan de ontwikkelaars! + De sleutel is niet omgezet. Dit is een fout. Rapporteer dit alsjeblieft aan de ontwikkelaars! Recycle Bin @@ -1405,7 +1457,7 @@ Back-up databestand op %2 DatabaseOpenDialog Unlock Database - KeePassXC - Database ontgrendelen - KeePassXC + KeePassXC - Database ontgrendelen @@ -1416,45 +1468,15 @@ Back-up databestand op %2 Enter Password: - Geef wachtwoord: + Voer het wachtwoord in: Password field - Wachtwoord invulveld - - - Enter Additional Credentials (if any): - Voer eventuele aanvullende inloggegevens in: - - - Key File: - Sleutelbestand: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>Naast een wachtwoord kan je een geheim bestand gebruiken om de beveiliging van je database te verbeteren. Dit bestand kan worden gegenereerd in de beveiligingsinstellingen van je database.</p><p>Dit is <strong>niet</strong> jouw *.kdbx database-bestand!<br>Laat dit veld leeg als je geen sleutelbestand gebruikt.</p><p>Klik hier voor meer informatie...</p> - - - Key file help - Sleutelbestandhulp + Wachtwoordveld Hardware key slot selection - Hardwaresleutel positie selectie - - - Hardware Key: - Hardwaresleutel: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>Je kunt een hardwarebeveiligingssleutel gebruiken, zoals een <strong>YubiKey</strong> of <strong>OnlyKey</strong> met posities (slots) geconfigureerd voor HMAC-SHA1.</p> -<p>Klik voor meer informatie...</p> - - - Hardware key help - Hardwaresleutelhulp + Hardwaresleutel-positieselectie Key file to unlock the database @@ -1462,20 +1484,12 @@ Back-up databestand op %2 Browse for key file - Blader naar sleutelbestand + Kies een sleutelbestand Browse… Bladeren… - - Refresh hardware tokens - Hardwaretoken verversen - - - Refresh - Vernieuwen - Unlock Database Database ontgrendelen @@ -1490,7 +1504,7 @@ Back-up databestand op %2 Please present or touch your YubiKey to continue… - Presenteer je YubiKey of druk er op om door te gaan... + Plaats je YubiKey of druk er op om door te gaan… Database Version Mismatch @@ -1504,63 +1518,55 @@ You can try to open it anyway, but it may be incomplete and saving any changes may incur data loss. We recommend you update your KeePassXC installation. - De database die je probeert te openen, was waarschijnlijk + De database die je probeert te openen is waarschijnlijk gemaakt door een nieuwere versie van KeePassXC. -Je kunt toch proberen het te openen, maar het kan onvolledig zijn -en het opslaan van eventuele wijzigingen kan gegevensverlies veroorzaken. +Je kunt proberen om de database alsnog te openen, maar deze kan onvolledig zijn +en het opslaan van eventuele aanpassingen kan tot gegevensverlies leiden. -We raden je aan jouw KeePassXC-installatie bij te werken. +We raden je aan om KeePassXC bij te werken. Open database anyway - Open database toch + Database alsnog openen Database unlock canceled. - Database ontgrendelen geannuleerd. + Ontgrendeling van database afgebroken. Unlock failed and no password given - Ontgrendeling mislukt en geen wachtwoord ingevoerd + Ontgrendeling mislukt: geen wachtwoord ingevoerd Unlocking the database failed and you did not enter a password. Do you want to retry with an "empty" password instead? To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. - Het ontgrendelen van de database is mislukt en je hebt geen wachtwoord ingevoerd. -Wil je het opnieuw proberen met een "leeg" wachtwoord? + Het ontgrendelen van de database is mislukt omdat er geen wachtwoord is ingevoerd. +Wil je het opnieuw proberen met een ‘leeg’ wachtwoord? -Om deze fout te voorkomen ga je naar "Database instellingen.../Beveiliging" en herstel daar het wachtwoord. +Als je deze foutmelding niet meer wilt zien, ga dan naar ‘Databaseinstellingen… → Beveiliging’ en stel het wachtwoord opnieuw in. Retry with empty password - Probeer opnieuw met leeg wachtwoord - - - Failed to authenticate with Windows Hello - Kan niet worden geverifieerd met Windows Hello - - - Failed to authenticate with Touch ID - Kan niet worden geverifieerd met Touch ID + Opnieuw proberen met leeg wachtwoord Failed to open key file: %1 - Kon sleutelbestand niet openen: %1 + Het sleutelbestand kan niet worden geopend: %1 Old key file format - Oud sleutelbestandsformaat + Verouderd sleutelbestandsformaat You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> - Je gebruikt een oude sleutelbestandsindeling die KeePassXC<br>in de toekomst mogelijk niet meer ondersteunt.<br><br>Overweeg om een nieuw sleutelbestand te genereren bij:<br><strong>Database > Databasebeveiliging > Sleutelbestand wijzigen.</strong><br> + Je maakt gebruik van een verouderde sleutelbestandsindeling die <br>in de toekomst mogelijk niet meer ondersteund wordt.<br><br>Overweeg om een nieuw sleutelbestand te genereren via <br><strong>Database → Databasebeveiliging → Sleutelbestand wijzigen</strong>.<br> Don't show this warning again - Deze waarschuwing niet meer geven + Deze waarschuwing niet meer tonen All files @@ -1572,29 +1578,71 @@ Om deze fout te voorkomen ga je naar "Database instellingen.../Beveiliging& Select key file - Kies sleutelbestand + Kies een sleutelbestand Cannot use database file as key file - Kan database niet als sleutelbestand gebruiken + Kan database niet gebruiken als sleutelbestand - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Je kunt je database niet als sleutelbestand gebruiken. -Als je geen sleutelbestand hebt laat je het veld leeg. + authenticate to access the database + authenticeren om toegang te krijgen tot de database - Detecting hardware keys… - Hardwaresleutels detecteren... + Failed to authenticate with Quick Unlock: %1 + Snel ontgrendelen is mislukt: %1 - No hardware keys detected - Geen hardwaresleutels gedetecteerd + Select Key File: + Kies een sleutelbestand: - Select hardware key… - Selecteer hardwaresleutel... + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + <p>Naast een wachtwoord kun je een geheim bestand gebruiken om de beveiliging van je database te verbeteren. Dit bestand kan worden gegenereerd in de beveiligingsinstellingen van jouw database.</p><p>Dit is <strong>niet</strong> jouw *.kdbx-databasebestand!</p> + + + Click to add a key file. + Klik om een sleutelbestand toe te voegen. + + + <a href="#" style="text-decoration: underline">I have a key file</a> + Ik heb een <a href="#" style="text-decoration: underline">sleutelbestand</a> + + + Use hardware key [Serial: %1] + Gebruik hardwaresleutel [Serienummer: %1] + + + Use hardware key + Hardwaresleutel gebruiken + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + Jouw databasebestand is GEEN sleutelbestand! +Als je geen sleutelbestand hebt of niet weet wat dat is, hoef je er geen te selecteren. + + + KeePassXC database file selected + KeePassXC-databasebestand geselecteerd + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + Het bestand dat je hebt geselecteerd lijkt op een databasebestand. +Een databasebestand is GEEN sleutelbestand! + +Weet je zeker dat je wilt doorgaan met dit bestand? + + + No hardware keys found. + Geen hardwaresleutels gevonden. + + + Refresh Hardware Keys + Hardwaresleutels vernieuwen @@ -1606,10 +1654,6 @@ Als je geen sleutelbestand hebt laat je het veld leeg. DatabaseSettingsDialog - - Advanced Settings - Geavanceerde instellingen - General Algemeen @@ -1620,7 +1664,7 @@ Als je geen sleutelbestand hebt laat je het veld leeg. Database Credentials - Databasegegevens + Database inloggegevens Encryption Settings @@ -1639,27 +1683,19 @@ Als je geen sleutelbestand hebt laat je het veld leeg. DatabaseSettingsWidgetBrowser KeePassXC-Browser settings - KeePassXC-Browser instellingen - - - Convert KeePassHTTP data - KeePassHTTP-gegevens converteren - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - Converteer verouderde KeePassHTTP-attributen naar KeePassXC-Browser-compatibele aangepaste gegevens - - - Refresh database root group ID - Database-rootgroep-ID vernieuwen + KeePassXC-Browser-instellingen Disconnect all browsers - Verbreek de verbinding met alle browsers + Alle browsers loskoppelen Forget all site-specific settings on entries - Vergeet alle site-specifieke instellingen bij items + Alle website-specifieke instellingen van items vergeten + + + Refresh database root group ID + Database-hoofdgroep-id vernieuwen Stored keys @@ -1671,7 +1707,7 @@ Als je geen sleutelbestand hebt laat je het veld leeg. Remove selected key - Geselecteerde sleutel verwijderen + Gekozen sleutel verwijderen Remove @@ -1679,13 +1715,13 @@ Als je geen sleutelbestand hebt laat je het veld leeg. Delete the selected key? - Geselecteerde sleutel verwijderen? + Gekozen sleutel verwijderen? Do you really want to delete the selected key? This may prevent connection to the browser plugin. - Wil je de geselecteerde sleutel echt verwijderen? -Hierdoor werkt de verbinding met de browserextensie mogelijk niet meer. + Wil je de geselecteerde sleutel verwijderen? +Dit kan de verbinding met de browserplug-in belemmeren. Key @@ -1701,85 +1737,80 @@ Hierdoor werkt de verbinding met de browserextensie mogelijk niet meer. Enable Browser Integration to access these settings. - Activeer browserintegratie om deze instellingen te kunnen wijzigen. + Schakel browserintegratie in om deze instellingen te kunnen wijzigen. Do you really want to disconnect all browsers? This may prevent connection to the browser plugin. - Wil je echt de verbinding met alle browsers verbreken? -Hierdoor werkt de verbinding met de browserextensie mogelijk niet meer. - - - KeePassXC: No keys found - KeePassXC: Geen sleutels gevonden + Wil je alle browsers loskoppelen? +Dit kan de verbinding met de browserplug-in belemmeren. No shared encryption keys found in KeePassXC settings. - Geen gedeelde coderingssleutels gevonden in KeePassXC instellingen. - - - KeePassXC: Removed keys from database - KeePassXC: Sleutels uit database verwijderd + Er zijn geen gedeelde beveiligingssleutels aangetroffen in de KeePassXC-instellingen. Successfully removed %n encryption key(s) from KeePassXC settings. - %n coderingssleutel uit KeePassXC instellingen verwijderd.Er zijn %n coderingssleutel(s) uit KeePassXC-instellingen verwijderd. + Er is %n beveiligingssleutel verwijderd uit de KeePassXC-instellingen.Er zijn %n beveiligingssleutels verwijderd uit de KeePassXC-instellingen. Do you really want forget all site-specific settings on every entry? Permissions to access entries will be revoked. - Wil je echt alle site-specifieke instellingen bij items vergeten? Machtigingen voor toegang zullen worden ingetrokken. + Wil je alle website-specifieke instellingen van alle items vergeten? +Hierdoor worden alle toegangsrechten ingetrokken. Removing stored permissions… - Opgeslagen machtigingen verwijderen… + Verwijderen van opgeslagen toegangsrechten… Abort Afbreken - - KeePassXC: Removed permissions - KeePassXC: machtigingen verwijderd - Successfully removed permissions from %n entry(s). - Machtigingen zijn verwijderd uit %n item(s).Machtigingen zijn verwijderd uit %n item(s). - - - KeePassXC: No entry with permissions found! - KeePassXC: Geen item met machtigingen gevonden! + Er zijn toegangsrechten verwijderd uit %n item.Er zijn toegangsrechten verwijderd uit %n items. The active database does not contain an entry with permissions. - De actieve database bevat geen items met machtigingen. - - - Move KeePassHTTP attributes to custom data - KeePassHTTP-kenmerken naar aangepaste gegevens verplaasen - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Wil je echt alle instellingen voor de oudere browserintegratie veranderen naar de nieuwste standaard? -Dit is nodig om compatibiliteit met de browserextensie te behouden. + De actieve database bevat geen items met toegangsrechten. Refresh database ID - Database-ID vernieuwen + Database-id vernieuwen Do you really want refresh the database ID? This is only necessary if your database is a copy of another and the browser extension cannot connect. - Wilt je echt de database-ID vernieuwen? + Wil je de database-id vernieuwen? Dit is alleen nodig als je database een kopie is van een andere en de browserextensie geen verbinding kan maken. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Converteer verouderde KeePassHTTP-kenmerken naar KeePassXC-Browser-compatibele aangepaste gegevens + + + No keys found + Geen sleutels gevonden + + + Removed keys from database + Sleutels uit database verwijderd + + + Removed permissions + Toestemmingen verwijderd + + + No entry with permissions found! + Geen item met toestemmingen gevonden! + DatabaseSettingsWidgetDatabaseKey Add additional protection… - Aanvullende beveiliging toevoegen... + Aanvullende bescherming toevoegen… No password set @@ -1789,9 +1820,9 @@ Dit is alleen nodig als je database een kopie is van een andere en de browserext WARNING! You have not set a password. Using a database without a password is strongly discouraged! Are you sure you want to continue without a password? - WAARSCHUWING! Je hebt geen wachtwoord ingesteld. Een database gebruiken zonder wachtwoord wordt sterk afgeraden! + WAARSCHUWING! Je hebt geen wachtwoord ingesteld. Het gebruik van een database zonder wachtwoord wordt sterk afgeraden! -Weet je zeker dat je door wilt gaan zonder een wachtwoord? +Weet je zeker dat je wilt doorgaan zonder wachtwoord? Continue without password @@ -1799,11 +1830,11 @@ Weet je zeker dat je door wilt gaan zonder een wachtwoord? No encryption key added - Geen coderingssleutel toegevoegd + Geen beveiligingssleutel toegevoegd You must add at least one encryption key to secure your database! - Je moet minstens één coderingssleutel aan je database toevoegen om deze te beveiligen! + Je moet ten minste één beveiligingssleutel aan de database toevoegen om deze te beveiligen! Unknown error @@ -1811,7 +1842,19 @@ Weet je zeker dat je door wilt gaan zonder een wachtwoord? Failed to change database credentials - Veranderen van databasereferenties is mislukt + Kan de database-inloggegevens niet wijzigen + + + Weak password + Zwak wachtwoord + + + You must enter a stronger password to protect your database. + Je moet een sterker wachtwoord invoeren om je database te beschermen. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + Dit is een zwak wachtwoord! Voor een betere bescherming van jouw geheimen moet je een sterker wachtwoord kiezen. @@ -1820,29 +1863,21 @@ Weet je zeker dat je door wilt gaan zonder een wachtwoord? Decryption Time: Decoderingstijd: - - Change existing decryption time - Huidige decoderingstijd wijzigen - - - Change - Wijzigen - Decryption time in seconds Decoderingstijd in seconden Higher values offer more protection, but opening the database will take longer. - Hogere waarden bieden meer bescherming, maar laten het openen van de database langer duren. + Hogere waarden bieden meer bescherming, maar zorgen voor een langere wachttijd bij het openen. Database format: - Database-indeling: + Databaseindeling: Database format - Database-indeling + Databaseindeling Format cannot be changed: Your database uses KDBX 4 features @@ -1850,7 +1885,7 @@ Weet je zeker dat je door wilt gaan zonder een wachtwoord? Unless you need to open your database with other programs, always use the latest format. - Tenzij je de database met andere programma's wil openen, gebruik je altijd de nieuwste indeling. + Gebruik altijd de nieuwste indeling, tenzij je de database met andere programma's moet openen. Encryption Algorithm: @@ -1862,15 +1897,15 @@ Weet je zeker dat je door wilt gaan zonder een wachtwoord? AES: 256 Bit (default) - AES: 256 bit (standaard) + AES: 256-bit (standaard) Twofish: 256 Bit - Twofish: 256 bit + Twofish: 256-bit Key Derivation Function: - Sleutel-afleidingsfunctie: + Sleutelafleidingsfunctie: Key derivation function @@ -1878,11 +1913,11 @@ Weet je zeker dat je door wilt gaan zonder een wachtwoord? Transform rounds: - Transformatie-iteraties: + Aantal iteraties: Transform rounds - Transformatierondes + Aantal iteraties Memory Usage: @@ -1908,27 +1943,22 @@ Weet je zeker dat je door wilt gaan zonder een wachtwoord? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - ongewijzigd - Number of rounds too high Key transformation rounds - Aantal iteraties te hoog + Het aantal iteraties is te hoog You are using a very high number of key transform rounds with Argon2. If you keep this number, your database may take hours, days, or even longer to open. - Je gebruikt een zeer groot aantal sleuteltransformatie-iteraties met Argon2. + Je maakt gebruik van een zeer hoog aantal sleuteltransformaties met Argon2. Als je dit aantal aanhoudt, kan het uren, dagen of zelfs langer duren om de database te openen! Understood, keep number - Begrepen, aantal aanhouden + Begrepen - aantal aanhouden Cancel @@ -1937,15 +1967,15 @@ Als je dit aantal aanhoudt, kan het uren, dagen of zelfs langer duren om de data Number of rounds too low Key transformation rounds - Aantal iteraties te laag + Het aantal iteraties is te laag You are using a very low number of key transform rounds with AES-KDF. If you keep this number, your database will not be protected from brute force attacks. - Je gebruikt een zeer laag aantal sleuteltransformatie-iteraties met AES-KDF. + Je maakt gebruik van een zeer laag aantal sleuteltransformaties met AES-KDF. -Als je dit aantal aanhoudt is je database niet bestand tegen aanvallen met brute kracht! +Als je dit aantal aanhoudt, dan is de database niet bestand tegen langdurige brute krachtaanvallen! KDF unchanged @@ -1953,7 +1983,7 @@ Als je dit aantal aanhoudt is je database niet bestand tegen aanvallen met brute Failed to transform key with new KDF parameters; KDF unchanged. - Het transformeren van de sleutel met de nieuwe KDF-parameters is mislukt; KDF is ongewijzigd. + Het transformeren van de sleutel met de nieuwe KDF-opties is mislukt. De KDF is ongewijzigd. MiB @@ -1963,22 +1993,34 @@ Als je dit aantal aanhoudt is je database niet bestand tegen aanvallen met brute thread(s) Threads for parallel execution (KDF settings) - thread(s)thread(s) + procesprocessen + + + Encryption Settings: + Versleutelingsinstellingen: + + + Basic + Standaard + + + Advanced + Geavanceerd DatabaseSettingsWidgetFdoSecrets Exposed Entries - Beschikbare items + Blootgestelde items Don't expose this database - Deze database niet blootstellen + Database niet blootstellen Expose entries under this group: - Items onder deze groep blootstellen: + Items uit deze groep blootstellen: Enable Secret Service to access these settings. @@ -1989,23 +2031,23 @@ Als je dit aantal aanhoudt is je database niet bestand tegen aanvallen met brute DatabaseSettingsWidgetGeneral Database Metadata - Database meta-gegevens + Database-metagegevens Database name: - Naam van de database: + Databasenaam: Database name field - Databasenaamveld + Database-naamveld Database description: - Beschrijving van de database: + Databasebeschrijving: Database description field - Databaseomschrijvingveld + Database-beschrijvingveld Default username: @@ -2013,7 +2055,7 @@ Als je dit aantal aanhoudt is je database niet bestand tegen aanvallen met brute Default username field - Standaardgebruikersnaamveld + Standaard gebruikersnaamveld History Settings @@ -2023,17 +2065,9 @@ Als je dit aantal aanhoudt is je database niet bestand tegen aanvallen met brute Maximum number of history items per entry Maximum aantal vorige versies per item - - Max. history items: - Max. geschiedenisitems: - Maximum size of history per entry - Maximale grootte van vorige versies per item - - - Max. history size: - Max. geschiedenisgrootte: + Maximale omvang van vorige versies per item MiB @@ -2053,18 +2087,78 @@ Als je dit aantal aanhoudt is je database niet bestand tegen aanvallen met brute Delete Recycle Bin - Verwijder prullenbak + Prullenbak verwijderen Do you want to delete the current recycle bin and all its contents? This action is not reversible. - Wil je de huidige prullenbak en al zijn inhoud verwijderen? -Deze actie is onomkeerbaar. + Weet je zeker dat je de huidige prullenbak, incl. inhoud wilt verwijderen? +Deze actie kan niet ongedaan worden gemaakt. (old) (oud) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + Bij het opslaan van deze instelling of het +bewerken van een item zal dit ten koste gaan +van de oudste elementen in de geschiedenis, +waarmee het gespecificeerde maximum aantal +elementen in de geschiedenis bewaard blijft. + + + Limit the amount of history items per entry to: + Beperk het aantal geschiedenisitems per item tot: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + Bij het opslaan van deze instelling of het +bewerken van een item zal dit ten koste gaan +van de oudste elementen in de geschiedenis, +waarmee de resterende geschiedenis +maximaal de gespecificeerde hoeveelheid bedraagt. + + + Limit the total size of history items per entry to: + Beperk de totale grootte van geschiedenisitems per item tot: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Verplaats items naar een prullenbakgroep +in plaats van ze uit de database te verwijderen. +Items die uit de prullenbak worden gewist, +worden uit de database verwijderd. + + + Autosave delay since last change + Vertraging bij automatisch opslaan sinds laatste wijziging + + + Autosave delay + Vertraging bij automatisch opslaan + + + Autosave delay since last change in minutes + Vertraging bij automatisch opslaan sinds laatste wijziging (in minuten) + + + min + min. + + + Autosave delay since last change checkbox + Vertraging bij automatisch opslaan sinds laatste wijziging (selectievakje) + DatabaseSettingsWidgetKeeShare @@ -2086,7 +2180,7 @@ Deze actie is onomkeerbaar. Last Signer - Laatste Ondertekenaar + Laatste ondertekenaar Certificates @@ -2106,15 +2200,15 @@ Deze actie is onomkeerbaar. Delete selected icon(s) - Geselecteerde pictogram(en) verwijderen + Geselecteerde pictogram(men) verwijderen Delete all custom icons not in use by any entry or group - Alle aangepaste pictogrammen verwijderen die niet door een vermelding of groep worden gebruikt + Alle ongebruikte aangepaste pictogrammen verwijderen Purge unused icons - Ongebruikte pictogrammen opschonen + Ongebruikte pictogrammen verwijderen Confirm Deletion @@ -2122,34 +2216,34 @@ Deze actie is onomkeerbaar. At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? - Tenminste één van de geselecteerde pictogrammen wordt momenteel gebruikt door tenminste één item of groep. De pictogrammen van alle betrokken vermeldingen en groepen worden vervangen door het standaardpictogram. Weet je zeker dat je pictogrammen wilt verwijderen die momenteel in gebruik zijn? + Ten minste één van de geselecteerde pictogrammen wordt momenteel gebruikt door een item of groep. De pictogrammen van alle betrokken items en groepen worden vervangen door het standaardpictogram. Weet je zeker dat je de in gebruik zijnde pictogrammen wilt verwijderen? Custom Icons Are In Use - Aangepaste pictogrammen zijn in gebruik + Aangepaste pictogrammen in gebruik All custom icons are in use by at least one entry or group. - Alle aangepaste pictogrammen worden gebruikt door tenminste één item of groep. + Alle aangepaste pictogrammen zijn in gebruik door ten minste één item of groep. Purged Unused Icons - Ongebruikte pictogrammen gewist + Ongebruikte pictogrammen zijn verwijderd Purged %n icon(s) from the database. - Wist %n-pictogram(en) uit de database.%n Pictogram(en) uit de database gewist. + %n pictogram uit de database verwijderd.%n pictogrammen uit de database verwijderd. DatabaseSettingsWidgetMetaDataSimple Database Name: - Database naam: + Databasenaam: Database name field - Databasenaamveld + Database-naamveld Description: @@ -2157,14 +2251,14 @@ Deze actie is onomkeerbaar. Database description field - Databaseomschrijvingveld + Database-omschrijvingveld DatabaseTabWidget Database creation error - Fout bij het aanmaken van de database: + Fout bij het aanmaken van de database The created database has no key or KDF, refusing to save it. @@ -2186,60 +2280,47 @@ Dit is zeker een fout, rapporteer dit aan de ontwikkelaars. Failed to open %1. It either does not exist or is not accessible. - Kon %1 niet openen. Het bestaat niet of is niet toegankelijk. + %1 is niet geopend. De database bestaat niet of is ontoegankelijk. CSV file - CSV-bestand - - - Select CSV file - Selecteer CSV-bestand + Csv-bestand Merge database Database samenvoegen - - KeePass 1 database - KeePass 1-database - - - Open KeePass 1 database - KeePass 1-database openen - - - Open OPVault - OPVault openen - Export database to CSV file - Database exporteren naar CSV-bestand + Database exporteren naar csv-bestand Writing the CSV file failed. - Schrijven van het CSV-bestand mislukt. + Het csv-bestand is niet weggeschreven. Writing the HTML file failed. - Schrijven van het HTML-bestand is mislukt. + Het html-bestand is niet weggeschreven. + + + Export database to XML file + Database exporteren naar XML-bestand + + + XML file + XML-bestand + + + Writing the XML file failed + Het XML-bestand is niet weggeschreven. Export Confirmation - Exporteerbevestiging + Exporteren bevestigen You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - Je gaat je database naar een niet-versleuteld bestand exporteren. Dit maakt je wachtwoorden en gevoelige informatie kwetsbaar! Weet je zeker dat je door wil gaan? - - - New Database - Nieuwe database - - - %1 [New Database] - Database tab name modifier - %1 [nieuwe database] + Je staat op het punt om de database naar een onbeveiligd bestand te exporteren. Hierdoor worden de wachtwoorden en gevoelige informatie kwetsbaar! Weet je zeker dat je door wilt gaan? %1 [Locked] @@ -2250,24 +2331,24 @@ Dit is zeker een fout, rapporteer dit aan de ontwikkelaars. DatabaseWidget - Database Tags - Database-labels + Searches and Tags + Zoekopdrachten en labels Searching… - Bezig met zoeken… + Zoeken… Shared group… - Gedeelde groep... + Gedeelde groep… Confirm Auto-Type - Auto-type bevestigen + Automatisch invullen bevestigen Perform Auto-Type into the previously active window? - Auto-type uitvoeren in het venster dat zojuist actief was? + Wilt u automatisch invullen gebruiken in het onlangs actieve venster? Execute command? @@ -2275,11 +2356,11 @@ Dit is zeker een fout, rapporteer dit aan de ontwikkelaars. Do you really want to execute the following command?<br><br>%1<br> - Weet je zeker dat je de volgende opdracht wil uitvoeren? <br><br>%1<br> + Wil je de volgende opdracht uitvoeren? <br><br>%1<br> Remember my choice - Mijn keuze onthouden + Keuze onthouden Delete group @@ -2287,20 +2368,24 @@ Dit is zeker een fout, rapporteer dit aan de ontwikkelaars. Do you really want to delete the group "%1" for good? - Weet je zeker dat je de groep "%1" wil verwijderen? + Wil je de groep ‘%1’ voorgoed verwijderen? Move group to recycle bin? - Groep naar prullenbak verplaatsen? + Groep naar de prullenbak verplaatsen? Do you really want to move the group "%1" to the recycle bin? - Weet je zeker dat je de groep '%1' naar de prullenbak wilt verplaatsen? + Wil je ‘%1’ naar de prullenbak verplaatsen? Expired entries Verlopen items + + Entries expiring within %1 day(s) + Items die binnen %1 dag verlopenItems die binnen %1 dagen verlopen + No current database. Geen actuele database. @@ -2315,7 +2400,7 @@ Dit is zeker een fout, rapporteer dit aan de ontwikkelaars. Database was not modified by merge operation. - Database werd niet gewijzigd door het samenvoegen. + De database is niet aangepast door het samenvoegen. Search Results (%1) @@ -2323,7 +2408,19 @@ Dit is zeker een fout, rapporteer dit aan de ontwikkelaars. No Results - Geen resultaten + Er zijn geen zoekresultaten + + + Save + Opslaan + + + Enter a unique name or overwrite an existing search from the list: + Voer een unieke naam in of overschrijf een bestaande zoekopdracht op de lijst: + + + Save Search + Zoekopdracht opslaan Lock Database? @@ -2336,13 +2433,13 @@ Dit is zeker een fout, rapporteer dit aan de ontwikkelaars. "%1" was modified. Save changes? - "%1" is aangepast. + ‘%1’ is gewijzigd. Wijzigingen opslaan? Database was modified. Save changes? - Database is gewijzigd. + De database is gewijzigd. Wijzigingen opslaan? @@ -2359,19 +2456,19 @@ Wijzigingen opslaan? Merge Request - Samenvoegingsverzoek + Verzoek om samenvoegen The database file has changed and you have unsaved changes. Do you want to merge your changes? - Het databasebestand is veranderd en er zijn niet-opgeslagen wijzigingen. + Het databasebestand is bewerkt en er zijn niet-opgeslagen wijzigingen. Wil je de wijzigingen samenvoegen? Could not open the new database file while attempting to autoreload. Error: %1 - Kan het nieuwe databasebestand niet openen tijdens het automatisch opnieuw laden. -Fout: %1 + Het nieuwe databasebestand is niet geopend bij het automatisch opnieuw laden. +Foutmelding: %1 Disable safe saves? @@ -2380,12 +2477,12 @@ Fout: %1 KeePassXC has failed to save the database multiple times. This is likely caused by file sync services holding a lock on the save file. Disable safe saves and try again? - KeePassXC heeft de database meerdere keren niet kunnen opslaan. Dit wordt waarschijnlijk veroorzaakt doordat een synchronisatie-dienst het bestand vergrendeld houdt. + KeePassXC heeft de database meerdere keren niet kunnen opslaan. Dit wordt waarschijnlijk veroorzaakt doordat een synchronisatiedienst het bestand vergrendeld houdt. Veilig opslaan uitschakelen en opnieuw proberen? Writing the database failed: %1 - Het schrijven van de database is mislukt: %1 + De database is niet weggeschreven: %1 Passwords @@ -2401,7 +2498,7 @@ Veilig opslaan uitschakelen en opnieuw proberen? Save database backup - Database-backup opslaan + Reservekopie van database opslaan Empty recycle bin? @@ -2409,15 +2506,20 @@ Veilig opslaan uitschakelen en opnieuw proberen? Are you sure you want to permanently delete everything from your recycle bin? - Weet je zeker dat je alles definitief uit de prullenbak wil verwijderen? + Weet je zeker dat je alles definitief uit de prullenbak wilt verwijderen? Could not find database file: %1 - Databasebestand is niet aangetroffen: %1 + Het databasebestand is niet aangetroffen: %1 - - Entries expiring within %1 day(s) - Items die binnen %1 dag aflopenItems die binnen %1 dag(en) aflopen + + New Database + Nieuwe database + + + %1 [New Database] + Database tab name modifier + %1 [nieuwe database] @@ -2436,7 +2538,7 @@ Veilig opslaan uitschakelen en opnieuw proberen? Auto-Type - Auto-type + Automatisch invullen Browser Integration @@ -2452,7 +2554,7 @@ Veilig opslaan uitschakelen en opnieuw proberen? Are you sure you want to remove this URL? - Weet je zeker dat je dit URL wil verwijderen? + Weet je zeker dat je deze URL wil verwijderen? Properties @@ -2472,15 +2574,15 @@ Veilig opslaan uitschakelen en opnieuw proberen? (encrypted) - (versleuteld) + (beveiligd) Select private key - Kies persoonlijke sleutel + Kies een persoonlijke sleutel Entry history - Item geschiedenis + Geschiedenis van het item Add entry @@ -2492,27 +2594,27 @@ Veilig opslaan uitschakelen en opnieuw proberen? Some Browser Integration settings are overridden by group settings. - Sommige instellingen voor browserintegratie worden overschreven door groepsinstellingen. + Sommige instellingen omtrent de browserintegratie worden genegeerd door groepsinstellingen. Invalid Entry - Ongeldige invoer + Ongeldig item An external merge operation has invalidated this entry. Unfortunately, any changes made have been lost. - Een externe samenvoegbewerking heeft dit item ongeldig gemaakt. -Helaas zijn alle aangebrachte wijzigingen verloren gegaan. + Door een externe samenvoeging is dit item beschadigd. +Helaas zijn alle aangebrachte wijzigingen hierdoor verloren gegaan. Auto-Type Validation Error - Validatiefout bij Auto-type + Fout bij geldigverklaring automatisch invullen An error occurred while validating the custom Auto-Type sequence: %1 Would you like to correct it? - Er is een fout opgetreden tijdens het valideren van de aangepaste Auto-type reeks: + Er is een fout opgetreden tijdens de geldigverklaring van de aangepaste invulreeks: %1 Wil je dit corrigeren? @@ -2520,7 +2622,7 @@ Wil je dit corrigeren? An error occurred while validating the Auto-Type sequence for "%1": %2 Would you like to correct it? - Er is een fout opgetreden tijdens het valideren van de Auto-type reeks voor %1: + Er is een fout opgetreden tijdens de geldigverklaring van de aangepaste invulreeks ‘%1’: %2 Wil je dit corrigeren? @@ -2534,7 +2636,7 @@ Wil je dit corrigeren? Would you like to save changes to this entry? - Wil je de wijzigingen in dit item opslaan? + Wil je de wijzigingen aan dit item opslaan? New attribute @@ -2546,7 +2648,7 @@ Wil je dit corrigeren? Are you sure you want to remove this attribute? - Weet je zeker dat je dit kenmerk wil verwijderen? + Weet je zeker dat je dit kenmerk wilt verwijderen? Reveal @@ -2554,12 +2656,16 @@ Wil je dit corrigeren? [PROTECTED] Press Reveal to view or edit - [BESCHERMD] Druk op Onthullen om te bekijken of te bewerken + [BEVEILIGD] Klik op ‘Onthullen’ om te tonen of bewerken Hide Verbergen + + %n hour(s) + %n uur%n uren + %n week(s) %n week%n weken @@ -2572,10 +2678,6 @@ Wil je dit corrigeren? %n year(s) %n jaar%n jaren - - %n hour(s) - - EditEntryWidgetAdvanced @@ -2593,7 +2695,7 @@ Wil je dit corrigeren? Add a new attribute - Een nieuw kenmerk toevoegen + Nieuw kenmerk toevoegen Add @@ -2601,7 +2703,7 @@ Wil je dit corrigeren? Remove selected attribute - Gekozen kenmerk verwijderen + Geselecteerd kenmerk verwijderen Remove @@ -2617,15 +2719,15 @@ Wil je dit corrigeren? Toggle attribute protection - Kenmerkbescherming aan/uit + Kenmerkbeveiliging wisselen Protect - Beveiligen + Beschermen Show a protected attribute - Een beschermd kenmerk weergeven + Beschermd kenmerk tonen Reveal @@ -2637,7 +2739,7 @@ Wil je dit corrigeren? If checked, the entry will not appear in reports like Health Check and HIBP even if it doesn't match the quality requirements. - Als deze optie is ingeschakeld, wordt de vermelding niet weergegeven in rapporten zoals Health Check en HIBP, zelfs niet als deze niet voldoet aan de kwaliteitseisen. + Indien aangevinkt, wordt de vermelding niet weergegeven in rapporten zoals Health Check en HIBP, zelfs als deze niet voldoet aan de kwaliteitseisen. Exclude from database reports @@ -2649,7 +2751,7 @@ Wil je dit corrigeren? Foreground color selection - Voorgrondkleurselectie + Keuze voorgrondkleur Background Color: @@ -2657,81 +2759,81 @@ Wil je dit corrigeren? Background color selection - Achtergrondkleurselectie + Keuze achtergrondkleur EditEntryWidgetAutoType Enable Auto-Type for this entry - Auto-type inschakelen voor dit item + Automatisch invullen inschakelen voor dit item Inherit default Auto-Type sequence from the group - Standaard auto-typevolgorde van de groep overnemen + Standaard invulreeks van de groep overnemen Use custom Auto-Type sequence: - Gebruik aangepaste Auto-typevolgorde: + Aangepaste invulreeks gebruiken: Custom Auto-Type sequence - Aangepaste Auto-type tekenreeks + Aangepaste invulreeks Open Auto-Type help webpage - Open Auto-type help-webpagina + Hulppagina omtrent automatisch invullen openen Window Associations - Scherm-koppelingen + Venstertoewijzingen Existing window associations - Bestaande venster koppelingen + Bestaande venstertoewijzingen Add new window association - Voeg venster koppeling toe - - - Remove selected window association - Verwijder scherm koppeling - - - Window title: - Vensternaam: - - - You can use an asterisk (*) to match everything - Je kunt een ster (*) gebruiken om alles te vinden - - - Set the window association title - Stel de venster koppeling titel in - - - You can use an asterisk to match everything - Je kunt een sterretje gebruiken om alles te vinden - - - Use a specific sequence for this association: - Gebruik een specifieke tekenreeks voor deze associatie. - - - Custom Auto-Type sequence for this window - Aangepaste Auto-type tekenreeks voor dit venster + Venstertoewijzing toevoegen + Add item + + + Remove selected window association + Venstertoewijzing verwijderen + - Remove item - + + Window title: + Venstertitel: + + + You can use an asterisk (*) to match everything + Gebruik een asterisk (*) om alles overeen te laten komen + + + Set the window association title + Titel venstertoewijzing instellen + + + You can use an asterisk to match everything + Gebruik een asterisk (*) om alles overeen te laten komen + + + Use a specific sequence for this association: + Specifieke tekenreeks gebruiken bij deze toewijzing: + + + Custom Auto-Type sequence for this window + Aangepaste invulreeks voor dit venster + EditEntryWidgetBrowser @@ -2745,7 +2847,7 @@ Wil je dit corrigeren? Hide this entry from the browser extension - Verberg dit item in de browserextensie + Dit item verbergen in browserextensie Skip Auto-Submit for this entry @@ -2753,23 +2855,23 @@ Wil je dit corrigeren? Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. - Stuur deze instelling alleen naar de browser voor HTTP Auth-dialogen. Indien ingeschakeld, tonen normale aanmeldingsformulieren dit item niet voor selectie. + Stuur deze instelling alleen naar de browser voor HTTP Auth-dialoogvensters. Indien ingeschakeld, zullen normale aanmeldingsformulieren dit item niet als keuze tonen. Use this entry only with HTTP Basic Auth - Gebruik dit item alleen met HTTP Basic Auth + Item alleen gebruiken met HTTP Basic Auth Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. - Stuur deze instelling niet naar de browser voor HTTP Auth-dialoogvensters. Indien ingeschakeld, zullen HTTP-authenticatiedialogen dit item niet tonen voor selectie. + Stuur deze instelling niet naar de browser voor HTTP Auth-dialoogvensters. Indien ingeschakeld, zullen HTTP Auth-dialoogvensters dit item niet als keuze tonen. Do not use this entry with HTTP Basic Auth - Gebruik dit item niet met HTTP Basic Auth + Item niet gebruiken met HTTP Basic Auth Additional URL's - Aanvullende URLs + Aanvullende URL's Add @@ -2788,11 +2890,11 @@ Wil je dit corrigeren? EditEntryWidgetHistory Entry history selection - Item geschiedenis selectie + Selectie van itemgeschiedenis Show entry at selected history state - Toon het item zoals in geselecteerde vorige versie + Item tonen in geselecteerde geschiedenisstatus Show @@ -2800,7 +2902,7 @@ Wil je dit corrigeren? Restore entry to selected history state - Herstel het item naar de geselecteerde vorige versie + Item herstellen in geselecteerde geschiedenisstatus Restore @@ -2808,7 +2910,7 @@ Wil je dit corrigeren? Delete selected history state - Verwijder geselecteerde vorige versie + Geselecteerde geschiedenisstatus verwijderen Delete @@ -2816,7 +2918,7 @@ Wil je dit corrigeren? Delete all history - Verwijder alle vorige versies + Alle vorige versies verwijderen Delete all @@ -2827,92 +2929,88 @@ Wil je dit corrigeren? EditEntryWidgetMain Edit Entry - Invoer bewerken + Item bewerken Notes field - Notities veld - - - Toggle the checkbox to reveal the notes section. - Inschakelen om de notities weer te geven. + Notitieveld Username field - Gebruikersnaam veld - - - Toggle notes visible - Laat notities wel/niet zien. - - - Notes: - Opmerkingen: + Gebruikersnaamveld Expiration field - Vervaldatum veld + Verloopveld Expiration Presets - Vervaldatum voorinstellingen + Verloop-voorinstellingen Expiration presets - Vervaldatum voorinstellingen + Verloop-voorinstellingen Presets - Voorkeuze - - - Password: - Wachtwoord: - - - URL: - URL: + Voorinstellingen Url field - URL veld + URL-veld Download favicon for URL Favicon downloaden voor URL - - Title: - Naam: - Title field - Titel veld - - - Username: - Gebruikersnaam: + Titelveld Password field - Wachtwoord invulveld + Wachtwoordveld Toggle expiration - Vervaldatum wel/niet tonen - - - Expires: - Verloopt: - - - Tags: - Labels: + Verloopdatum tonen/verbergen Tags list Lijst met labels + + &Username: + Gebr&uikersnaam: + + + &Title: + &Titel: + + + &Password: + &Wachtwoord: + + + UR&L: + UR&L: + + + &Notes: + &Notities: + + + Toggle notes visibility + Notities tonen/verbergen + + + T&ags: + L&abels: + + + &Expires: + V&erloopt op: + EditEntryWidgetSSHAgent @@ -2922,7 +3020,7 @@ Wil je dit corrigeren? Remove key from agent when database is closed/locked - Sleutel bij agent wegnemen als de database wordt gesloten/vergrendeld + Sleutel van agent verwijderen als de database wordt gesloten of vergrendeld Comment @@ -2930,7 +3028,7 @@ Wil je dit corrigeren? Add key to agent when database is opened/unlocked - Sleutel aan agent toevoegen wanneer de database wordt geopend/ontgrendeld + Sleutel aan agent toevoegen als de database wordt geopend of ontgrendeld Decrypt @@ -2942,7 +3040,7 @@ Wil je dit corrigeren? Copy to clipboard - Naar klembord kopiëren + Kopiëren naar klembord Public key @@ -2952,19 +3050,6 @@ Wil je dit corrigeren? Private key Persoonlijke sleutel - - External file - Extern bestand - - - Browser for key file - Blader naar sleutelbestand - - - Browse… - Button for opening file dialog - Bladeren… - Attachment Bijlage @@ -2981,13 +3066,30 @@ Wil je dit corrigeren? Remove from agent Van agent verwijderen + + External file + Extern bestand + + + Browser for key file + Browser voor sleutelbestand + + + Browse… + Button for opening file dialog + Bladeren… + + + Generate + Genereren + Select attachment file - Selecteer bijlage bestand + Kies een bijlagebestand Require user confirmation when this key is used - Bevestiging van de gebruiker vragen als deze sleutel wordt gebruikt + Bevestiging vragen bij gebruik van deze sleutel n/a @@ -2995,7 +3097,7 @@ Wil je dit corrigeren? Remove key from agent after - Sleutel bij agent wegnemen na + Sleutel bij agent verwijderen na Remove key from agent after specified seconds @@ -3016,10 +3118,6 @@ Wil je dit corrigeren? Icon Pictogram - - Browser Integration - Browserintegratie - Properties Eigenschappen @@ -3034,11 +3132,15 @@ Wil je dit corrigeren? Group has unsaved changes - Groep heeft niet-opgeslagen wijzigingen + De groep bevat niet-opgeslagen wijzigingen + + + Browser Integration + Browserintegratie Enable - Activeren + Inschakelen Disable @@ -3051,56 +3153,68 @@ Wil je dit corrigeren? EditGroupWidgetBrowser - - Edit Group - Groep bewerken - These settings affect to the group's behaviour with the browser extension. Deze instellingen zijn van invloed op het gedrag van de groep met de browserextensie. Hide entries from browser extension: - Verberg vermeldingen van browserextensie: + Items verbergen voor browserextensie: Hide entries from browser extension toggle for this and sub groups - Items van deze browserextensie en subgroepen wel/niet verbergen + Items van deze en onderliggende groepen tonen/verbergen voor browserextensie Skip Auto-Submit for entries: - Automatisch indienen overslaan voor inzendingen: + Automatisch indienen overslaan voor items: Skip Auto-Submit toggle for this and sub groups - Automatisch indienen wel/niet overslaan voor deze groep en subgroepen + Automatisch indienen wel/niet overslaan voor deze en onderliggende groepen Use entries only with HTTP Basic Auth: - Gebruik alleen vermeldingen met HTTP Basic Auth: + Alleen items met HTTP Basic Auth: Only HTTP Auth toggle for this and sub groups - Alleen HTTP Auth aan/uit voor deze en subgroepen + Alleen HTTP Auth aan/uit voor deze en onderliggende groepen Do not use entries with HTTP Basic Auth: - Gebruik deze items niet met HTTP Basic Auth: + Items niet gebruiken met HTTP Basic Auth: Do not use HTTP Auth toggle for this and sub groups - Gebruik geen HTTP Auth aan/iut voor deze en subgroepen + Geen HTTP Auth gebruiken aan/uit voor deze en onderliggende groepen + + + Omit WWW subdomain from matching: + WWW-subdomein negeren in overeenkomsten: + + + Omit WWW subdomain from matching toggle for this and sub groups + WWW-subdomein negeren in overeenkomsten voor deze en onderliggende groepen + + + Restrict matching to given browser key: + Overeenkomst beperken tot gegeven browsersleutel: + + + Restrict matching to given browser key toggle for this and sub groups + Overeenkomst beperken tot gegeven browsersleutel voor deze en subgroepen EditGroupWidgetKeeShare Sharing mode field - Delen modus veld + Deelmodusveld Password field - Wachtwoord invulveld + Wachtwoordveld Type: @@ -3116,11 +3230,11 @@ Wil je dit corrigeren? Path to share file field - Pad naar te delen bestand veld + Pad van het bestandsdeelveld Browse for share file - Blader naar deelbestand + Bladeren naar deelbestand Browse… @@ -3128,7 +3242,7 @@ Wil je dit corrigeren? Clear fields - Wis velden + Velden wissen Clear @@ -3148,13 +3262,13 @@ Wil je dit corrigeren? Synchronize - Synchroniseer + Synchroniseren Your KeePassXC version does not support sharing this container type. Supported extensions are: %1. - Deze KeePassXC-versie biedt geen ondersteuning voor het delen van dit container type. -Ondersteund zijn: %1. + Deze KeePassXC-versie biedt geen ondersteuning voor het delen van dit containertype. +Ondersteunde extensies: %1. %1 is already being exported by this database. @@ -3171,15 +3285,15 @@ Ondersteund zijn: %1. KeeShare is currently disabled. You can enable import/export in the application settings. KeeShare is a proper noun - KeeShare is momenteel uitgeschakeld. Je kunt importeren/exporteren inschakelen in de instellingen. + KeeShare is momenteel uitgeschakeld. Je kunt importeren en exporteren inschakelen in de instellingen. Database export is currently disabled by application settings. - Database export is momenteel uitgeschakeld in de programma instellingen. + Het exporteren van de database is momenteel uitgeschakeld in de programma-instellingen. Database import is currently disabled by application settings. - Database import is momenteel uitgeschakeld in de programma instellingen. + Het importeren van de database is momenteel uitgeschakeld in de programma-instellingen. KeeShare container @@ -3187,19 +3301,19 @@ Ondersteund zijn: %1. KeeShare signed container - KeeShare ondertekende container + KeeShare-container (ondertekend) Select import source - Selecteer bron voor import + Kies een te importeren bron Select export target - Selecteer doel voor export + Kies een exportlocatie Select import/export file - Selecteer import-/exportbestand + Kies een im-/exportbestand @@ -3210,27 +3324,27 @@ Ondersteund zijn: %1. Toggle expiration - Vervaldatum wel/niet tonen + Verloopdatum tonen/verbergen Expires: - Verloopt: + Verloopt op Name field - Naam veld + Naamveld Expiration field - Vervaldatum veld + Verloopveld Use default Auto-Type sequence of parent group - Gebruik standaard Auto-type volgorde van bovenliggende groep + Standaard invulreeks van de bovenliggende groep gebruiken Auto-Type: - Auto-type: + Automatisch invullen: Search: @@ -3238,19 +3352,19 @@ Ondersteund zijn: %1. Auto-Type toggle for this and sub groups - Auto-type aan/uit voor deze en onderliggende groepen + Automatisch invullen aan/uit voor deze en onderliggende groepen Notes: - Opmerkingen: + Notities: Default auto-type sequence field - Standaard Auto-type tekenreeks veld + Standaard invulreeks Notes field - Notities veld + Notitiesveld Name: @@ -3258,7 +3372,7 @@ Ondersteund zijn: %1. Set default Auto-Type sequence - Standaard Auto-type tekenreeks instellen + Standaard invulreeks instellen Search toggle for this and sub groups @@ -3277,11 +3391,11 @@ Ondersteund zijn: %1. Choose icon… - Kies pictogram... + Pictogram kiezen… Set the URL to use to search for a favicon - Stel de URL in om naar een favicon te zoeken + Stel de URL in om te zoeken naar een favicon Favicon URL @@ -3297,11 +3411,11 @@ Ondersteund zijn: %1. Apply selected icon to subgroups and entries - Gebruik het geselecteerde pictogram voor onderliggende groepen en items + Gekozen pictogram toepassen bij onderliggende groepen en items Apply icon to… - Pictogram toepassen op... + Pictogram toepassen op… Apply to this group only @@ -3317,15 +3431,11 @@ Ondersteund zijn: %1. Also apply to all children - Ook toepassen op alle onderliggenden + Ook toepassen op alle onderliggende items Unable to fetch favicon. - Kan favicon niet ophalen. - - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Je kunt de DuckDuckGo website pictogram dienst inschakelen onder Extra>Instellingen>Beveiliging + De favicon is niet opgehaald. Existing icon selected. @@ -3341,11 +3451,11 @@ Ondersteund zijn: %1. Select Image(s) - Selecteer afbeelding(en) + Afbeeldingen selecteren Successfully loaded %1 of %n icon(s) - %1 van %n pictogram(men) geladen%1 van %n pictogram(men) geladen + %1 van %n pictogram geladen%1 van %n pictogrammen geladen No icons were loaded @@ -3353,11 +3463,15 @@ Ondersteund zijn: %1. %n icon(s) already exist in the database - %n pictogram(men) al aanwezig in de database%n pictogram(men) al aanwezig in de database + %n pictogram reeds aanwezig in database%n pictogrammen reeds aanwezig in de database The following icon(s) failed: - De volgende pictogram(men) mislukten:De volgende pictogram(men) mislukten: + Het volgende pictogram is mislukt:De volgende pictogrammen zijn mislukt: + + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + Je kunt de dienst DuckDuckGo websitepictogrammen inschakelen onder Programma-instellingen -> Beveiliging @@ -3368,7 +3482,7 @@ Ondersteund zijn: %1. Datetime created - Datum tijd gemaakt + Datum/Tijdstip van aanmaken Modified: @@ -3376,19 +3490,19 @@ Ondersteund zijn: %1. Datetime modified - Datum tijd gewijzigd + Datum/Tijdstip van wijziging Accessed: - Toegang: + Geopend: Datetime accessed - Datum tijd laatste toegang + Datum/Tijdstip van laatste toegang Uuid: - Uuid: + UUID: Unique ID @@ -3396,15 +3510,15 @@ Ondersteund zijn: %1. Plugin Data - Plugin-gegevens: + Plug-ingegevens Plugin data - Plugin-gegevens + Plug-ingegevens Remove selected plugin data - Geselecteerde plugin-gegevens verwijderen + Geselecteerde plug-ingegevens verwijderen Remove @@ -3412,13 +3526,13 @@ Ondersteund zijn: %1. Delete plugin data? - Plugin-gegevens verwijderen? + Plug-ingegevens verwijderen? Do you really want to delete the selected plugin data? This may cause the affected plugins to malfunction. - Weet je zeker dat je de geselecteerde plugin-gegevens wilt verwijderen? -Hierdoor werken de plugins mogelijk niet meer goed. + Wil je de geselecteerde plug-ingegevens verwijderen? +Hierdoor werken de plug-ins mogelijk niet goed meer. Key @@ -3440,7 +3554,7 @@ Hierdoor werken de plugins mogelijk niet meer goed. EntryAttachments Cannot open file "%1" - Kan bestand "%1" niet openen + Bestand ‘%1’ is niet geopend @@ -3506,11 +3620,11 @@ Hierdoor werken de plugins mogelijk niet meer goed. Select files - Kies bestanden + Bestanden kiezen Confirm remove - Verwijdering bevestigen + Verwijderen bevestigen Are you sure you want to remove %n attachment(s)? @@ -3523,16 +3637,16 @@ Hierdoor werken de plugins mogelijk niet meer goed. Unable to create directory: %1 - Kan de map niet maken: + De map kan niet worden aangemaakt: %1 Are you sure you want to overwrite the existing file "%1" with the attachment? - Weet je zeker dat je het bestaande bestand "%1" met de bijlage wil overschrijven? + Weet je zeker dat je het bestaande bestand ‘%1’ tezamen met de bijlage wil overschrijven? Confirm overwrite - Overschrijving bevestigen + Overschrijven bevestigen Unable to save attachments: @@ -3555,7 +3669,7 @@ Hierdoor werken de plugins mogelijk niet meer goed. Unable to open file(s): %1 - Kan bestand niet openen: %1Kan bestand(en) niet openen: %1 + Kan bestand niet openen: %1Kan bestanden niet openen: %1 Confirm Overwrite Attachment @@ -3564,8 +3678,8 @@ Hierdoor werken de plugins mogelijk niet meer goed. Attachment "%1" already exists. Would you like to overwrite the existing attachment? - Bijlage "%1" bestaat al. -Bestaande bijlage overschrijven? + De bijlage ‘%1’ bestaat al. +Wil je de bestaande bijlage overschrijven? Confirm Attachment @@ -3577,9 +3691,9 @@ Your database may get very large and reduce performance. Are you sure to add this file? %1 is een groot bestand (%2 MB). -De database kan erg groot worden en de prestaties verminderen. +De database kan hierdoor erg groot en trager worden. -Weet je zeker dat je dit bestand wilt toevoegen? +Weet je zeker dat je dit bestand wil toevoegen? Attachment modified @@ -3588,7 +3702,7 @@ Weet je zeker dat je dit bestand wilt toevoegen? The attachment '%1' was modified. Do you want to save the changes to your database? - De bijlage '%1' is gewijzigd. + De bijlage ‘%1’ is gewijzigd. Wil je de wijzigingen opslaan in de database? @@ -3598,8 +3712,8 @@ Wil je de wijzigingen opslaan in de database? Saving updated attachment failed. Error: %1 - Opslaan van bijgewerkte bijlage is mislukt. -Fout: %1 + De bijgewerkte bijlage kan niet worden opgeslagen. +Foutmelding: %1 @@ -3633,7 +3747,7 @@ Fout: %1 Title - Naam + Titel Username @@ -3665,7 +3779,7 @@ Fout: %1 Expiration - Vervaldatum + Verloopdatum TOTP @@ -3681,7 +3795,7 @@ Fout: %1 Auto-Type - Auto-type + Automatisch invullen Tags @@ -3693,7 +3807,7 @@ Fout: %1 Ref: Reference abbreviation - Ref: + Ref.: Never @@ -3705,7 +3819,7 @@ Fout: %1 Title - Naam + Titel Username @@ -3725,19 +3839,19 @@ Fout: %1 Expires - Verloopt + Verloopt op Created - Aangemaakt + Aangemaakt op Modified - Gewijzigd + Gewijzigd op Accessed - Toegang + Geopend op Attachments @@ -3749,11 +3863,11 @@ Fout: %1 Group name - Groepnaam + Groepsnaam Entry title - Titel van het item + Titel van item Password Strength @@ -3773,11 +3887,11 @@ Fout: %1 Last modification date - Datum laatste wijziging + Datum van laatste wijziging Last access date - Datum laatste toegang + Datum van laatste opening Attached files @@ -3795,12 +3909,16 @@ Fout: %1 Has TOTP Heeft TOTP + + Background Color + Achtergrondkleur + EntryPreviewWidget Display current TOTP value - Toon huidige TOTP-waarde + Huidige TOTP-waarde tonen Close @@ -3815,12 +3933,12 @@ Fout: %1 Wachtwoord - Notes - Notities + URL + URL Expiration - Vervaldatum + Verloopdatum Tags @@ -3835,8 +3953,8 @@ Fout: %1 Gebruikersnaam - URL - URL + Notes + Notities Advanced @@ -3852,7 +3970,7 @@ Fout: %1 Autotype - Auto-type + Automatisch invullen Default Sequence @@ -3886,14 +4004,22 @@ Fout: %1 Never Nooit + + Double click to copy value + Dubbelklik om de waarde te kopiëren + Enabled - Geactiveerd + Ingeschakeld Disabled Uitgeschakeld + + Double click to copy to clipboard + Dubbelklik om te kopiëren naar klembord + EntryURLModel @@ -3901,6 +4027,10 @@ Fout: %1 Invalid URL Ongeldige URL + + Duplicate URL + URL dupliceren + EntryView @@ -3914,29 +4044,34 @@ Fout: %1 Reset to defaults - Standaardwaarden opnieuw instellen + Standaardwaarden herstellen + + + + %1 entry(s)... + + %1 item…+ %1 items… ExportDialog Export options - Exporteer opties + Exportopties Sort entries by... - Items sorteren op... + Items sorteren op… You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Je staat op het punt de database te exporteren naar een niet-versleuteld bestand. -Dit maakt jouw wachtwoorden en gevoelige informatie kwetsbaar! +Dit maakt jouw wachtwoorden en gevoelige informatie kwetsbaar! + database order - database volgorde + databasevolgorde name (ascending) @@ -3952,22 +4087,22 @@ Dit maakt jouw wachtwoorden en gevoelige informatie kwetsbaar! Export database to HTML file - Database exporteren naar HTML-bestand + Database exporteren naar html-bestand HTML file - HTML-bestand + Html-bestand FdoSecrets::DBusMgr Failed to deliver message - Kan bericht niet afleveren + Het bericht is niet afgeleverd Failed to send reply on DBus - Kan antwoord niet verzenden op DBus + Geen antwoord verzonden op DBus Unknown @@ -3982,42 +4117,42 @@ Dit maakt jouw wachtwoorden en gevoelige informatie kwetsbaar! <i>PID: %1, Executable: %2</i> <i>PID: 1234, Executable: /path/to/exe</i> - <i>PID: %1, Uitvoerbaar bestand: %2</i> + <i>PID: %1, uitvoerbaar bestand: %2</i> Another secret service is running (%1).<br/>Please stop/remove it before re-enabling the Secret Service Integration. - Een andere secret service is actief (%1).<br/>Stop/verwijder deze en probeer de Secret Service-integratie opnieuw te activeren. + Er is al een andere Secret Service actief (%1).<br/>Stop/Verwijder deze en probeer de integratie van Secret Service opnieuw in te schakelen. Failed to register DBus service at %1.<br/> - Kan DBus-service niet registreren op %1.<br/> + DBus-dienst is niet geregistreerd op %1.<br/> Failed to register service on DBus at path '%1' - Kan service niet registreren op DBus op pad '%1' + De dienst is niet geregistreerd op de DBus-locatie ‘%1’ Failed to register database on DBus under the name '%1' - Registratie van database op DBus onder de naam '%1' mislukt + De database kan niet op DBus geregistreerd worden met de naam ‘%1’ Failed to register session on DBus at path '%1' - Kan sessie niet registreren op DBus op pad '%1' + De sessie kan niet worden geregistreerd op de DBus-locatie ‘%1’ Failed to register item on DBus at path '%1' - Kan item niet registreren op DBus op pad '%1' + Kan item niet registreren op de DBus-locatie ‘%1’ Failed to register prompt object on DBus at path '%1' - Kan object niet registreren op DBus op pad '%1' + Kan object niet registreren op de DBus-locatie ‘%1’ FdoSecrets::Item Entry "%1" from database "%2" was used by %3 - Het item "%1" van de database "%2" werd gebruikt door %3 + Item ‘%1’ uit de database ‘%2’ is gebruikt door %3 @@ -4025,7 +4160,7 @@ Dit maakt jouw wachtwoorden en gevoelige informatie kwetsbaar! %n Entry(s) was used by %1 %1 is the name of an application - %n Item is gebruikt door %1%n Items zijn gebruikt door %1 + Er is %n item gebruikt door %1Er zijn %n items gebruikt door %1 @@ -4036,14 +4171,14 @@ Dit maakt jouw wachtwoorden en gevoelige informatie kwetsbaar! Non-existing/inaccessible executable path. Please double-check the client is legit. - Niet-bestaand/ontoegankelijk uitvoerbaar pad. Controleer nogmaals of de client legitiem is. + Niet-bestaande/ontoegankelijke locatie van het uitvoerbare bestand. Controleer of de client legitiem is. FdoSecrets::SettingsDatabaseModel Unlock to show - Ontgrendel voor deze informatie + Ontgrendelen om te bekijken None @@ -4080,7 +4215,7 @@ Dit maakt jouw wachtwoorden en gevoelige informatie kwetsbaar! HibpDownloader Online password validation failed - Online validatie van wachtwoord is mislukt + Online geldigverklaring van wachtwoord mislukt @@ -4097,7 +4232,7 @@ Dit maakt jouw wachtwoorden en gevoelige informatie kwetsbaar! Having trouble downloading icons? You can enable the DuckDuckGo website icon service in the security section of the application settings. Problemen met het downloaden van pictogrammen? -Je kunt de DuckDuckGo website pictogram dienst inschakelen in de sectie 'Beveiliging' in de instellingen. +Je kunt de pictogrammenservice van de DuckDuckGo-website inschakelen in de sectie Beveiliging van de instellingen. Close @@ -4113,15 +4248,15 @@ Je kunt de DuckDuckGo website pictogram dienst inschakelen in de sectie 'Be Please wait, processing entry list… - Even wachten, de items worden verwerkt... + Even geduld, lijst met items verwerken… Downloading… - Downloaden... + Downloaden… Ok - Oké + OK Already Exists @@ -4129,11 +4264,152 @@ Je kunt de DuckDuckGo website pictogram dienst inschakelen in de sectie 'Be Download Failed - Download is mislukt + Download mislukt Downloading favicons (%1/%2)… - Favicons downloaden (%1/%2)... + Favicons downloaden (%1/%2)… + + + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Assistent + + + Entry count: %1 + + + + Group + Groep + + + Title + Titel + + + Username + Gebruikersnaam + + + Password + Wachtwoord + + + Url + + + + + ImportWizardPageSelect + + Form + Formulier + + + Import File Selection + + + + Password: + Wachtwoord: + + + Key File: + Sleutelbestand: + + + Browse… + Bladeren… + + + Import Into: + + + + New Database + Nieuwe database + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + OPVault openen + + + Select import file + + + + All files + Alle bestanden + + + Key files + Sleutelbestanden + + + Select key file + Kies sleutelbestand + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + @@ -4151,7 +4427,7 @@ Je kunt de DuckDuckGo website pictogram dienst inschakelen in de sectie 'Be Kdbx3Reader Missing database headers - Ontbrekende databaseheaders + Ontbrekende databasekoppen Unable to calculate database key @@ -4159,29 +4435,29 @@ Je kunt de DuckDuckGo website pictogram dienst inschakelen in de sectie 'Be Unable to issue challenge-response: %1 - Kan challenge-antwoord niet uitgeven: %1 + Kan geen challenge-response uitbrengen: %1 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - Ongeldige inloggegevens, probeer het opnieuw. -Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. + Er zijn ongeldige inloggegevens opgegeven - probeer het opnieuw. +Als dit vaker gebeurt, dan is het databasebestand mogelijk beschadigd. Header doesn't match hash - Header komt niet overeen met hash + Kop komt niet overeen met controlegetal Invalid header id size - Ongeldige grootte van header-ID + Ongeldige grootte van kop-id Invalid header field length: field %1 - Ongeldige headerlengte: veld %1 + Ongeldige koplengte: veld %1 Invalid header data length: field %1, %2 expected, %3 found - Ongeldige lengte van hearder-gegevens: veld %1, %2 verwacht, %3 aangetroffen + Ongeldige lengte van kopgegevens: veld %1. Verwacht: %2, aangetroffen: %3. @@ -4193,7 +4469,7 @@ Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. Unable to issue challenge-response: %1 - Kan challenge-antwoord niet uitgeven: %1 + Kan geen challenge-response uitbrengen: %1 Unable to calculate database key @@ -4204,7 +4480,7 @@ Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. Kdbx4Reader missing database headers - ontbrekende database-koppen + ontbrekende databasekoppen Unable to calculate database key: %1 @@ -4212,7 +4488,7 @@ Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. Invalid header checksum size - Ongeldige grootte van header-controlecijfer + Ongeldige grootte van controlesom kop Header SHA256 mismatch @@ -4221,8 +4497,8 @@ Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - Ongeldige inloggegevens, probeer het opnieuw. -Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. + Er zijn ongeldige inloggegevens opgegeven - probeer het opnieuw. +Als dit nog een keer gebeurt, dan is het databasebestand mogelijk beschadigd. (HMAC mismatch) @@ -4230,107 +4506,107 @@ Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. Unknown cipher - Onbekend versleutelingsalgoritme + Onbekende versleuteling Invalid header id size - Ongeldige grootte van header-ID + Ongeldige grootte van kop-id Invalid header field length: field %1 - Ongeldige headerlengte: veld %1 + Ongeldige grootte van kop: veld %1 Invalid header data length: field %1, %2 expected, %3 found - Ongeldige lengte van hearder-gegevens: veld %1, %2 verwacht, %3 aangetroffen + Ongeldige lengte van kopgegevens: veld %1. Verwacht: %2, aangetroffen: %3. Failed to open buffer for KDF parameters in header - Fout bij het openen van de buffer voor KDF-parameters in header + Kan buffer voor KDF-parameters niet openen in kop Unsupported key derivation function (KDF) or invalid parameters - Niet-ondersteunde sleutel-afleidingsfunctie (KDF) of ongeldige parameters + Niet-ondersteunde sleutelafleidingsfunctie (KDF) of ongeldige opties Legacy header fields found in KDBX4 file. - Verouderde header-velden gevonden in KDBX4 bestand. + Verouderde kopvelden aangetroffen in het KDBX4-bestand. Invalid inner header id size - Ongeldige grootte van inner header-id + Ongeldige grootte van binnenste kop-id Invalid inner header field length: field %1 - Ongeldige lengte van het binnenste headerveld: veld %1 + Ongeldige lengte van het binnenste kopveld: veld %1 Invalid inner header data length: field %1, %2 expected, %3 found - Ongeldige gegevenslengte binnenste headertekst: veld %1, %2 verwacht, %3 aangetroffen + Ongeldige lengte van binnenste kopgegevens: veld %1. Verwacht: %2, aangetroffen: %3. Invalid inner header binary size - Ongeldige binaire grootte van inner header + Ongeldige binaire grootte van binnenste kop Unsupported KeePass variant map version. Translation: variant map = data structure for storing meta data - Niet-ondersteunde versie van KeePass variant map. + Niet-ondersteunde versie van de KeePass variant-map. Invalid variant map entry name length Translation: variant map = data structure for storing meta data - Ongeldige lengte van een variant map item naam + Ongeldige lengte van een variant-mapnaam Invalid variant map entry name data Translation: variant map = data structure for storing meta data - Ongeldige data in een variant map item naam + Ongeldige gegevens in een variant-mapnaam Invalid variant map entry value length Translation: variant map = data structure for storing meta data - Ongeldige lengte van een variant map waarde + Ongeldige lengte van een variant-map Invalid variant map entry value data Translation comment: variant map = data structure for storing meta data - Ongeldige data in een variant map waarde + Ongeldige gegevens in een variant-map Invalid variant map Bool entry value length Translation: variant map = data structure for storing meta data - Ongeldige lengte van een variant map Boolean-waarde + Ongeldige lengte van een variant-map Boolean-waarde Invalid variant map Int32 entry value length Translation: variant map = data structure for storing meta data - Ongeldige lengte van een variant map Int32-waarde + Ongeldige lengte van een variant-map Int32-waarde Invalid variant map UInt32 entry value length Translation: variant map = data structure for storing meta data - Ongeldige lengte van een variant map UInt32-waarde + Ongeldige lengte van een variant-map UInt32-waarde Invalid variant map Int64 entry value length Translation: variant map = data structure for storing meta data - Ongeldige lengte van een variant map Int64-waarde + Ongeldige lengte van een variant-map Int64-waarde Invalid variant map UInt64 entry value length Translation: variant map = data structure for storing meta data - Ongeldige lengte van een variant map UInt64-waarde + Ongeldige lengte van een variant-map UInt64-waarde Invalid variant map entry type Translation: variant map = data structure for storing meta data - Ongeldige item-type in variant map + Ongeldige item-type in variant-map Invalid variant map field type size Translation: variant map = data structure for storing meta data - Ongeldige grootte van variant map veld-type + Ongeldige grootte van variant-map veld-type @@ -4351,22 +4627,22 @@ Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. Failed to serialize KDF parameters variant map Translation comment: variant map = data structure for storing meta data - Fout bij serialisering van KDF-parameters variant map + Fout bij serialisering van KDF-parameters variant-map KdbxReader Invalid cipher uuid length: %1 (length=%2) - Ongeldige versleuteling uuid lengte: %1 (lengte=%2) + Ongeldige versleuteling UUID-lengte: %1 (lengte=%2) Unable to parse UUID: %1 - Geen geldige UUID: %1 + Kan UUID niet verwerken: %1 Unsupported cipher - Niet ondersteund versleutelingsalgoritme + Niet-ondersteunde versleuteling Invalid compression flags length @@ -4374,7 +4650,7 @@ Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. Unsupported compression algorithm - Niet ondersteund compressie-algoritme + Niet-ondersteund compressie-algoritme Invalid master seed size @@ -4398,21 +4674,21 @@ Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. Invalid inner random stream cipher - Ongeldig inner-random-stream versleutelingsalgoritme + Ongeldige interne random-stream versleuteling Failed to read database file. - Lezen van databasebestand is mislukt. + Kan databasebestand niet lezen. The selected file is an old KeePass 1 database (.kdb). You can import it by clicking on Database > 'Import KeePass 1 database…'. This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. - Het gekozen bestand is een oude KeePass 1 database (.kdb). + Het gekozen bestand is een oude KeePass 1-database (.kdb). -Je kunt het importeren door te klikken op Database > 'KeePass 1 database importeren'. -Deze actie is niet omkeerbaar. De geïmporteerde database kan niet meer worden geopend met de oude KeePassX versie 0.4. +Je kan de database importeren via Database → ‘KeePass 1-database importeren’. +Let op: deze actie is onomkeerbaar. De geïmporteerde database kan niet meer worden geopend met de oude KeePassX-versie 0.4. Not a KeePass database. @@ -4427,7 +4703,7 @@ Deze actie is niet omkeerbaar. De geïmporteerde database kan niet meer worden g KdbxXmlReader XML parsing failure: %1 - XML leesfout: %1 + XML-verwerkingsfout: %1 No root group @@ -4437,17 +4713,17 @@ Deze actie is niet omkeerbaar. De geïmporteerde database kan niet meer worden g XML error: %1 Line %2, column %3 - XML fout: + XML-fout: %1 -Lijn %2, kolom %3 +Regel %2, kolom %3 Missing icon uuid or data - Ontbrekende pictogram-uuid of -gegevens + Ontbrekende pictogram-UUID of -gegevens Missing custom data key or value - Ontbrekende aangepaste datasleutel of -waarde + Ontbrekende aangepaste gegevenssleutel of -waarde Multiple group elements @@ -4455,7 +4731,7 @@ Lijn %2, kolom %3 Null group uuid - Null groep uuid + Null groep-UUID Invalid group icon number @@ -4471,19 +4747,19 @@ Lijn %2, kolom %3 No group uuid found - Geen groep-uuid gevonden + Geen groep-UUID gevonden Null DeleteObject uuid - Null DeleteObject uuid + Null DeleteObject UUID Missing DeletedObject uuid or time - Ontbrekende DeletedObject uuid of tijd + Ontbrekende DeletedObject UUID of tijd Null entry uuid - Null item uuid + Null item-UUID Invalid entry icon number @@ -4491,15 +4767,15 @@ Lijn %2, kolom %3 History element in history entry - Geschiedenis element in geschiedenis item + Geschiedeniselement in itemgeschiedenis No entry uuid found - Geen item-uuid gevonden + Geen item-UUID gevonden History element with different uuid - Geschiedenis element met ander uuid + Geschiedeniselement met verschillende UUID Duplicate custom attribute found @@ -4507,7 +4783,7 @@ Lijn %2, kolom %3 Entry string key or value missing - Stringsleutel of -waarde ontbreekt in item + Reekssleutel of -waarde ontbreekt in item Entry binary key or value missing @@ -4515,7 +4791,7 @@ Lijn %2, kolom %3 Auto-type association window or sequence missing - Auto-type vensterkoppeling of tekenreeks ontbreekt + Vensterkoppeling of tekenreeks ontbreekt voor automatisch invullen Invalid bool value @@ -4535,11 +4811,11 @@ Lijn %2, kolom %3 Invalid number value - Ongeldig getal + Ongeldige getalwaarde Invalid uuid value - Ongeldige uuid-waarde + Ongeldige UUID-waarde Unable to decompress binary @@ -4555,45 +4831,34 @@ Lijn %2, kolom %3 Private key is an attachment but no attachments provided. - Privésleutel is een bijlage maar er is geen bijlage verstrekt. + De persoonlijke sleutel is een bijlage, maar er is geen bijlage verstrekt. Private key is empty - Privésleutel is leeg + Persoonlijke sleutel is leeg File too large to be a private key - Bestand te groot voor een persoonlijke sleutel + Dit bestand is te groot voor een persoonlijke sleutel Failed to open private key - Persoonlijk sleutelbestand niet kunnen openen - - - - KeePass1OpenWidget - - Import KeePass1 Database - Importeer KeePass1 database - - - Unable to open the database. - Kan database niet openen. + De persoonlijke sleutel is niet geopend KeePass1Reader Unable to read keyfile. - Kan sleutelbestand niet lezen. + Kan het sleutelbestand niet lezen. Not a KeePass database. - Geen KeePass-database + Dit is geen KeePass-database. Unsupported encryption algorithm. - Niet-ondersteund versleutelings-algoritme + Niet-ondersteund versleutelingsalgoritme Unsupported KeePass database version. @@ -4614,7 +4879,7 @@ Lijn %2, kolom %3 Invalid content hash size - Ongeldige grootte van inhoud-hash + Ongeldige grootte van controlegetal inhoud Invalid transform seed size @@ -4626,25 +4891,25 @@ Lijn %2, kolom %3 Unable to construct group tree - Kan groepsstructuur niet opbouwen + Kan de groepsstructuur niet opbouwen Root - Alles + Hoofdgroep Unable to calculate database key - Kan databasesleutel niet berekenen + Kan de databasesleutel niet berekenen unable to seek to content position - kan niet naar positie in inhoud springen + kan niet naar inhoudspositie zoeken Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - Ongeldige inloggegevens, probeer het opnieuw. -Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. + Er zijn ongeldige inloggegevens opgegeven - probeer het opnieuw. +Als dit nog een keer gebeurt, dan is het databasebestand mogelijk beschadigd. Key transformation failed @@ -4652,7 +4917,7 @@ Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. Invalid group field type number - Ongeldig veld typenummer van groep + Ongeldig veld-typenummer van groep Invalid group field size @@ -4732,7 +4997,7 @@ Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. Invalid entry expiry time field size - Ongeldige veldgrootte van verlooptijd + Ongeldige veldgrootte van verloopdatum Invalid entry field type @@ -4747,11 +5012,11 @@ Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. Inactive share %1 - Niet actieve gedaalde database %1 + Inactieve gedeelde database %1 Imported from %1 - Geïmporteerd vanuit %1 + Geïmporteerd uit %1 Exported to %1 @@ -4763,15 +5028,15 @@ Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. Import is disabled in settings - Importeren is uitgeschakeld in instellingen + Importeren is uitgeschakeld in de instellingen Export is disabled in settings - Exporteren is uitgeschakeld in instellingen + Exporteren is uitgeschakeld in de instellingen Inactive share - Niet actieve gedeelde database + Inactieve gedeelde database Imported from @@ -4790,11 +5055,11 @@ Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. KeyComponentWidget Key Component - Sleutelcomponent + Sleutelonderdeel Key Component Description - Sleutelcomponent beschrijving + Beschrijving sleutelonderdeel Cancel @@ -4802,14 +5067,14 @@ Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. Key Component set, click to change or remove - Sleutelcomponent verzameling, klik om te wijzigen of verwijderen + Sleutelonderdeel ingesteld - klik om te wijzigen of verwijderen KeyFileEditWidget Generate a new key file - Een nieuw sleutelbestand genereren + Nieuw sleutelbestand genereren Generate @@ -4817,11 +5082,11 @@ Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. Generate a new key file or choose an existing one to protect your database. - Genereer een nieuw sleutelbestand of kies een bestaand bestand om de database te beschermen. + Genereer een nieuw sleutelbestand of kies een bestaand bestand om de database te beveiligen. Note: Do NOT use a file that may change as that will prevent you from unlocking your database. - Opmerking: gebruik GEEN bestand dat kan veranderen, omdat ertoe kan leiden dat de database niet ontgrendeld kan worden. + Let op: gebruik GEEN bestand dat gewijzigd kan worden, anders kan de database niet worden ontgrendeld! Browse for key file @@ -4837,12 +5102,12 @@ Als dit vaker gebeurt, is het databasebestand mogelijk beschadigd. You selected a key file in an old format which KeePassXC<br>may stop supporting in the future.<br><br>Please consider generating a new key file instead. - Je hebt een sleutelbestand in een oud formaat geselecteerd dat KeePassXC in de toekomst mogelijk niet meer ondersteunt.<br><br>Overweeg in plaats daarvan een nieuw sleutelbestand te genereren. + Je hebt een sleutelbestand in een oud formaat gekozen dat KeePassXC in de toekomst mogelijk niet meer ondersteunt.<br><br>Overweeg in plaats daarvan een nieuw sleutelbestand te genereren. Error loading the key file '%1' Message: %2 - Er ging iets fout bij het laden van het sleutelbestand '%1' + Fout bij het laden van sleutelbestand ‘%1’ Bericht: %2 @@ -4851,23 +5116,23 @@ Bericht: %2 Add Key File - Voeg sleutelbestand toe + Sleutelbestand toevoegen Change Key File - Wijzig sleutelbestand + Sleutelbestand wijzigen Remove Key File - Verwijder sleutelbestand + Sleutelbestand verwijderen Key File set, click to change or remove - Sleutelbestand ingesteld, klik om te wijzigen of te verwijderen + Sleutelbestand ingesteld - klik om te wijzigen of te verwijderen <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out.</p> - <p>Je kunt een sleutelbestand met willekeurige bytes toevoegen voor extra veiligheid.</p> <p>Je moet het sleutelbestand geheim houden en nooit verliezen anders wordt je buitengesloten!</p> + <p>Je kunt, voor extra beveiliging, een sleutelbestand met willekeurige bytes toevoegen.</p> <p>Je moet het sleutelbestand geheim houden en nooit verliezen, anders word je buitengesloten!</p> Key files @@ -4883,11 +5148,11 @@ Bericht: %2 Error creating key file - Er ging iets fout bij het maken van het sleutelbestand + Fout bij aanmaken van sleutelbestand Unable to create key file: %1 - Kan sleutelbestand niet maken: %1 + Kan sleutelbestand niet aanmaken: %1 Select a key file @@ -4899,7 +5164,7 @@ Bericht: %2 You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. - Je kunt de huidige database niet gebruiken als zijn eigen sleutelbestand. Kies een ander bestand of genereer een nieuw sleutelbestand. + Je kunt de huidige database niet gebruiken als eigen sleutelbestand. Kies een ander bestand of genereer een nieuw sleutelbestand. Suspicious Key File @@ -4908,8 +5173,8 @@ Bericht: %2 The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. Are you sure you want to continue with this file? - Het gekozen sleutelbestand ziet eruit als een wachtwoord databasebestand. Een sleutelbestand moet een statisch bestand zijn dat nooit wijzigt ander verlies je voor altijd toegang tot de database. -Weet je zeker dat je wilt doorgaan met dit bestand? + Het gekozen sleutelbestand ziet er uit als een wachtwoord-databasebestand. Een sleutelbestand dient een statisch bestand te zijn dat nooit wijzigt, anders word je permanent buitengesloten. +Weet je zeker dat je dit bestand wilt gebruiken? @@ -4920,11 +5185,11 @@ Weet je zeker dat je wilt doorgaan met dit bestand? Global shortcut already registered to %1 - Globale snelkoppeling is al geregistreerd bij %1 + Algemene sneltoets is al toegekend aan %1 Could not register global shortcut - Kan algemene snelkoppeling niet registreren + Algemene sneltoets is niet vastgelegd @@ -4937,30 +5202,30 @@ Weet je zeker dat je wilt doorgaan met dit bestand? &Recent Databases &Recente databases - - &Import - &Importeren - &Export &Exporteren &Help - &Help + &Hulp &Entries - &Items + It&ems Copy Att&ribute - Ken&merk kopiëren + Kenme&rk kopiëren TOTP TOTP + + Tags + Labels + &Groups &Groepen @@ -4987,15 +5252,15 @@ Weet je zeker dat je wilt doorgaan met dit bestand? &Check for Updates - &Controleer op updates + &Controleren op updates &Open Database… - Database &openen... + Database &openen… &Save Database - Database op&slaan... + Database op&slaan… &Close Database @@ -5003,59 +5268,39 @@ Weet je zeker dat je wilt doorgaan met dit bestand? &New Database… - &Nieuwe database... - - - Create a new database - Een nieuwe database maken + &Nieuwe database… &Merge From Database… - Database sa&menvoegen... - - - Merge from another KDBX database - Samenvoegen uit een andere KDBX database + Database sa&menvoegen… &New Entry… &Nieuw item… - - Add a new entry - Nieuw item toevoegen - &Edit Entry… - Item &bewerken… - - - View or edit entry - Item bekijken/bewerken + Item b&ewerken… &Delete Entry… - Item &verwijderen… + Item verwij&deren… &New Group… - &Nieuwe Groep… - - - Add a new group - Een nieuwe groep toevoegen + &Nieuwe groep… &Edit Group… - Groep &bewerken… + Groep b&ewerken… &Delete Group… - &Verwijder Groep… + Groep verwij&deren… Download All &Favicons… - Alle &favicons downloaden... + Alle &favicons downloaden… Sort &A-Z @@ -5067,67 +5312,43 @@ Weet je zeker dat je wilt doorgaan met dit bestand? Sa&ve Database As… - Database opslaan &als... + Databas&e opslaan als… Database &Security… - Database-be&veiliging... + Databasebe&veiliging… Database &Reports… - Database-&rapportage... - - - Statistics, health check, etc. - Statistieken, gezondheidscontrole, etc. + Database&rapportage… &Database Settings… - &Database-instellingen - - - Database settings - Database-instellingen + &Databaseinstellingen… &Clone Entry… - Item &dupliceren... + Item dupli&ceren… Move u&p Om&hoog verplaatsen - - Move entry one step up - Hiermee verplaats je een item een positie omhoog. - Move do&wn Om&laag verplaatsen - - Move entry one step down - Hiermee verplaats je een item een positie omlaag. - Copy &Username - &Gebruikersnaam kopiëren - - - Copy username to clipboard - Gebruikersnaam naar klembord kopiëren + Gebr&uikersnaam kopiëren Copy &Password - &Wachtwoord kopiëren - - - Copy password to clipboard - Wachtwoord naar klembord kopiëren + Wachtwoord ko&piëren &Settings - &Instellingen + In&stellingen &Password Generator @@ -5135,7 +5356,7 @@ Weet je zeker dat je wilt doorgaan met dit bestand? Perform &Auto-Type - &Auto-type uitvoeren + &Automatisch invullen Download &Favicon @@ -5155,63 +5376,39 @@ Weet je zeker dat je wilt doorgaan met dit bestand? &Title - &Naam + &Titel - Copy title to clipboard - Naam naar klembord kopiëren - - - &URL - &URL - - - Copy URL to clipboard - URL naar klembord kopiëren + Copy &URL + &URL kopiëren &Notes &Notities - - Copy notes to clipboard - Notities naar klembord kopiëren - &CSV File… - &CSV-bestand... + &CSV-bestand… &HTML File… - &HTML-bestand... + &HTML-bestand… KeePass 1 Database… - KeePass 1 database... - - - Import a KeePass 1 database - Een KeePass 1-database importeren + KeePass 1-database… 1Password Vault… - 1Password kluis... - - - Import a 1Password Vault - Een 1Password kluis importeren + 1Password-kluis… CSV File… - CSV-bestand... - - - Import a CSV file - Een CSV-bestand importeren + CSV-bestand… Show TOTP - TOTP weergeven + TOTP tonen Show QR Code @@ -5225,9 +5422,13 @@ Weet je zeker dat je wilt doorgaan met dit bestand? Copy &TOTP &TOTP kopiëren + + Copy Password and TOTP + TOTP en wachtwoord kopiëren + E&mpty recycle bin - Prullenbak leegmaken + Prullenbak le&gen &Donate @@ -5235,27 +5436,23 @@ Weet je zeker dat je wilt doorgaan met dit bestand? Report a &Bug - Meld een &fout + Meld een &Fout &Getting Started - &Aan de slag + Snelstart&gids (EN) Open Getting Started Guide - Open de handleiding Aan de slag + Open de snelstartgids &Online Help &Online hulp - - Go to online documentation - Online documentatie - &User Guide - &Gebruikershandleiding + Gebr&uikershandleiding (EN) Open User Guide @@ -5267,7 +5464,7 @@ Weet je zeker dat je wilt doorgaan met dit bestand? Save Database Backup… - Database-backup opslaan... + Reservekopie van database opslaan… Add key to SSH Agent @@ -5275,7 +5472,7 @@ Weet je zeker dat je wilt doorgaan met dit bestand? Remove key from SSH Agent - Sleutel wegnemen van SSH-agent + Sleutel verwijderen van SSH-agent Compact Mode @@ -5299,15 +5496,15 @@ Weet je zeker dat je wilt doorgaan met dit bestand? Show Toolbar - Werkbalk weergeven + Werkbalk tonen Show Preview Panel - Voorbeeldvenster weergeven + Voorbeeldvenster tonen Always on Top - Altijd bovenop + Venster altijd bovenop Hide Usernames @@ -5319,7 +5516,11 @@ Weet je zeker dat je wilt doorgaan met dit bestand? Clone Group... - Groep dupliceren... + Groep dupliceren… + + + &XML File… + &XML-bestand… Clear history @@ -5327,35 +5528,39 @@ Weet je zeker dat je wilt doorgaan met dit bestand? Access error for config file %1 - Geen toegang tot configuratiebestand %1 + Toegangsfout voor configuratiebestand %1 Don't show again for this version - Niet meer weergeven voor deze versie + Niet meer tonen voor deze versie WARNING: You are using an unstable build of KeePassXC. There is a high risk of corruption, maintain a backup of your databases. This version is not meant for production use. - WAARSCHUWING: Je gebruikt een niet-stabiele versie van KeePassXC! -Deze versie is niet bedoeld voor dagelijks gebruik. -Er is een verhoogd risico op beschadiging. Bewaar een back-up van jouw databases. + WAARSCHUWING: je maakt gebruik van een instabiele versie van KeePassXC! +Er is een verhoogd risico op beschadiging. Bewaar een reservekopie van je databases. +Deze versie is niet bedoeld voor dagelijks gebruik. NOTE: You are using a pre-release version of KeePassXC. Expect some bugs and minor issues, this version is meant for testing purposes. - Opmerking: Je gebruikt een pre-release versie van KeePassXC! + LET OP: je maakt gebruik van een pre-release versie van KeePassXC! Houd rekening met fouten en kleine problemen. Deze versie is bedoeld voor testdoeleinden. WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard. We recommend you use the AppImage available on our downloads page. - WAARSCHUWING: Jouw Qt-versie kan KeePassXC laten crashen bij gebruik van een schermtoetsenbord! -Wij raden je aan om de AppImage te gebruiken welke beschikbaar is op onze downloadpagina. + WAARSCHUWING: jouw Qt-versie kan ervoor zorgen dat KeePassXC crasht met een schermtoetsenbord! +We raden je aan de AppImage te gebruiken die beschikbaar is op onze downloadpagina. + + + No Tags + Geen labels Restore Entry(s) - Vermelding(en) herstellenItem(s) herstellen + Item herstellenItems herstellen Settings @@ -5363,27 +5568,31 @@ Wij raden je aan om de AppImage te gebruiken welke beschikbaar is op onze downlo Check for updates on startup? - Controleren op updates bij het opstarten? + Bij start controleren op updates? Would you like KeePassXC to check for updates on startup? - Wil je dat KeePassXC bij het opstarten controleert op updates? + Wil je dat KeePassXC bij het opstarten op updates controleert? You can always check for updates manually from the application menu. - Je kunt altijd handmatig controleren of er updates zijn vanuit het programmamenu. + Je kunt altijd handmatig controleren of er updates zijn via het programmamenu. Toggle window - Venster openen + Venster tonen/verbergen Quit KeePassXC KeePassXC afsluiten + + %1 Entry(s) + %1 Item%1 Items + Please present or touch your YubiKey to continue… - Presenteer je YubiKey of druk er op om door te gaan... + Plaats je YubiKey of druk er op om door te gaan… Restart Application? @@ -5391,19 +5600,286 @@ Wij raden je aan om de AppImage te gebruiken welke beschikbaar is op onze downlo You must restart the application to apply this setting. Would you like to restart now? - Je moet de applicatie opnieuw opstarten om deze instelling toe te passen. -Wil je KeePassXC nu opnieuw opstarten? + Je moet de applicatie opnieuw opstarten om deze instelling toe te passen. Wil je nu opnieuw opstarten? + + + Allow Screen Capture + Schermopname toestaan + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Passkeys… + + + Import Passkey + Passkey importeren + + + Quit Application + Programma afsluiten + + + Open About Dialog + Dialoogvenster 'Over' openen + + + Open Database + Database openen + + + Create Database + Database aanmaken + + + Merge From Database + Samenvoegen uit database + + + Create Entry + Item aanmaken + + + Edit Entry + Invoer bewerken + + + Delete Entry + Item verwijderen + + + Create Group + Groep aanmaken + + + Edit Group + Groep bewerken + + + Delete Group + Groep verwijderen + + + Download All Favicons + Alle favicons downloaden + + + Sort Groups A-Z + Groepen sorteren A-Z + + + Sort Groups Z-A + Groepen sorteren Z-A + + + Save Database As + Database opslaan als + + + Show Database Security + Databasebeveiliging tonen + + + Show Database Reports + Databaserapportage tonen + + + Show Database Settings + Database-instellingen tonen + + + Show Passkeys + Passkeys tonen + + + Clone Entry + Item dupliceren + + + Move Entry Up + Item omhoog verplaatsen + + + Move Entry Down + Item omlaag verplaatsen + + + Copy Username + Gebruikersnaam kopiëren + + + Copy Password + Wachtwoord kopiëren + + + Show Application Settings + Programma-instellingen tonen + + + Show Password Generator + Wachtwoordgenerator tonen + + + Perform Auto-Type: {USERNAME} + Auto-type uitvoeren: {USERNAME} + + + Perform Auto-Type: {USERNAME}{ENTER} + Auto-type uitvoeren: {USERNAME}{ENTER} + + + Perform Auto-Type: {PASSWORD} + Auto-type uitvoeren: {PASSWORD} + + + Perform Auto-Type: {PASSWORD}{ENTER} + Auto-type uitvoeren: {PASSWORD}{ENTER} + + + Perform Auto-Type: {TOTP} + Auto-type uitvoeren: {TOTP} + + + Copy Title + Titel kopiëren + + + Copy URL + URL kopiëren + + + Copy Notes + Notities kopiëren + + + Export to CSV + Exporteren naar CSV + + + Export to HTML + Exporteren naar HTML + + + Import KeePass1 Database + KeePass1-database importeren + + + Import 1Password Vault + 1Password-kluis importeren + + + Import CSV File + CSV-bestand importeren + + + Show TOTP QR Code + TOTP QR-code tonen + + + Set up TOTP + TOTP instellen + + + Empty Recycle Bin + Prullenbak legen + + + Open Donation Website + Donatiewebsite openen + + + Open Bug Report + Foutrapportage openen + + + Open Online Documentation + Online documentatie openen + + + Open Keyboard Shortcuts Guide + Sneltoetsengids openen + + + Save Database Backup + Reservekopie van database opslaan + + + SSH Agent: Add Key + SSH-agent: Sleutel toevoegen + + + SSH Agent: Remove Key + SSH-agent: Sleutel verwijderen + + + Toggle Compact Mode + Compacte weergave wisselen + + + Set Theme: Automatic + Thema: Automatisch + + + Set Theme: Light + Thema: Licht + + + Set Theme: Dark + Thema: Donker + + + Set Theme: Classic + Thema: Klassiek + + + Toggle Show Toolbar + Werkbalk tonen/verbergen + + + Toggle Show Preview Panel + Voorbeeldvenster tonen/verbergen + + + Toggle Always on Top + Venster altijd bovenop wisselen + + + Toggle Hide Usernames + Gebruikersnaam tonen/verbergen + + + Toggle Hide Passwords + Wachtwoord tonen/verbergen + + + Export to XML + Exporteren naar XML + + + Toggle Allow Screen Capture + Schermopname toestaan wisselen ManageDatabase Database settings - Database-instellingen + Databaseinstellingen Edit database settings - Database instellingen bewerken + Databaseinstellingen bewerken Unlock database @@ -5411,7 +5887,7 @@ Wil je KeePassXC nu opnieuw opstarten? Unlock database to show more information - Ontgrendel de database voor meer informatie + Ontgrendel de database om meer informatie te tonen Lock database @@ -5422,54 +5898,34 @@ Wil je KeePassXC nu opnieuw opstarten? ManageSession Disconnect - Verbreken + Koppeling verbreken Disconnect this application - Deze applicatie loskoppelen + Verbreek de koppeling met dit programma Reset - Opnieuw instellen + Standaardwaarden Reset any remembered decisions for this application - Alle onthouden beslissingen voor deze toepassing opnieuw instellen + Alle instellingen van dit programma opnieuw instellen Merger Creating missing %1 [%2] - Ontbrekende %1 [%2] aanmaken + Aanmaken van ontbrekende %1 [%2] Relocating %1 [%2] - %1 [%2] verplaatsen + Verplaatsen van %1 [%2] Overwriting %1 [%2] - %1 [%2] overschrijven - - - older entry merged from database "%1" - ouder item samengevoegd uit database '%1' - - - Adding backup for older target %1 [%2] - Back-up toevoegen voor ouder doel %1 [%2] - - - Adding backup for older source %1 [%2] - Back-up toevoegen voor oudere bron %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Ouder doel item is opnieuw toegepast over nieuwer bron item %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Ouder bron item is opnieuw toegepast over nieuwer doel item %1 [%2] + Overschrijven van %1 [%2] Synchronizing from newer source %1 [%2] @@ -5481,15 +5937,15 @@ Wil je KeePassXC nu opnieuw opstarten? Deleting child %1 [%2] - Verwijderen van kind %1 [%2] + Verwijderen van onderliggende %1 [%2] Deleting orphan %1 [%2] - Verwijderen wees %1 [%2] + Verwijderen van verouderde %1 [%2] Changed deleted objects - Verwijderde objecten gewijzigd + Gewijzigde verwijderde objecten Adding missing icon %1 @@ -5497,23 +5953,23 @@ Wil je KeePassXC nu opnieuw opstarten? Removed custom data %1 [%2] - Gebruikersinstellingen verwijderd %1 [%2] + Verwijderde aangepaste gegevens %1 [%2] Adding custom data %1 [%2] - Gebruikersinstellingen toegevoegd %1 [%2] + Toevoegen van aangepaste gegevens %1 [%2] NewDatabaseWizard Create a new KeePassXC database… - Nieuwe KeePassXC database aanmaken... + Aanmaken van nieuwe KeePassXC-database… Root Root group - Alles + Hoofdgroep @@ -5528,26 +5984,18 @@ Wil je KeePassXC nu opnieuw opstarten? Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - Hier kun je de versleutelingsinstellingen van de database aanpassen. Maak je geen zorgen, je kunt dit later in de database-instellingen wijzigen. - - - Advanced Settings - Geavanceerde instellingen - - - Simple Settings - Eenvoudige instellingen + Hier kun je de versleutelingsinstellingen van de database aanpassen. Dit kan echter ook op een later moment via de databaseinstellingen. NewDatabaseWizardPageDatabaseKey Database Credentials - Databasegegevens + Database-inloggegevens A set of credentials known only to you that protects your database. - Een verzameling referenties die jij alleen kent en die je database beschermt. + Inloggegevens die alleen jij kent en die de database beschermt. @@ -5558,18 +6006,18 @@ Wil je KeePassXC nu opnieuw opstarten? Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - Hier kun je de versleutelingsinstellingen van de database aanpassen. Maak je geen zorgen, je kunt dit later in de database-instellingen wijzigen. + Hier kun je de versleutelingsinstellingen van de database aanpassen. Dit kan echter ook op een later moment via de databaseinstellingen. NewDatabaseWizardPageMetaData General Database Information - Algemene database-informatie + Algemene databaseinformatie Please fill in the display name and an optional description for your new database: - Geef de weergavenaam en een optionele beschrijving voor de nieuwe database: + Geef de nieuwe database een weergavenaam en eventueel een beschrijving: @@ -5580,22 +6028,22 @@ Wil je KeePassXC nu opnieuw opstarten? Global shortcut already registered to %1 - Globale snelkoppeling is al geregistreerd bij %1 + Algemene sneltoets is al toegekend aan %1 Could not register global shortcut - Kan algemene snelkoppeling niet registreren + Algemene sneltoets is niet vastgelegd OpData01 Invalid OpData01, does not contain header - Ongeldige OpData01, bevat geen header + Ongeldige OpData01: bevat geen kop Unable to read all IV bytes, wanted 16 but got %1 - Kon niet alle IV bytes lezen, gewenst is 16 maar kreeg er %1 + Niet alle IV-bytes kunnen lezen; 16 gewenst maar %1 verkregen Unable to init cipher for opdata01: %1 @@ -5618,15 +6066,6 @@ Wil je KeePassXC nu opnieuw opstarten? %1 bytes niet versleutelde tekst verwacht, %2 aangetroffen - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - De te lezen database heeft geen exemplaar geproduceerd -%1 - - OpVaultReader @@ -5647,7 +6086,7 @@ Wil je KeePassXC nu opnieuw opstarten? Unable to decode masterKey: %1 - Kan hoofdsleutel niet decoderen: %1 + Kan hoofdsleutel niet ontcijferen: %1 Unable to derive master key: %1 @@ -5658,7 +6097,7 @@ Wil je KeePassXC nu opnieuw opstarten? OpenSSHKey Invalid key file, expecting an OpenSSH key - Ongeldig sleutelbestand, er werd een OpenSSH-sleutel verwacht + Ongeldig sleutelbestand; er wordt een OpenSSH-sleutel verwacht PEM boundary mismatch @@ -5670,7 +6109,7 @@ Wil je KeePassXC nu opnieuw opstarten? Key file way too small. - Sleutelbestand veel te klein. + Sleutelbestand is veel te klein. Key file magic header id invalid @@ -5678,31 +6117,35 @@ Wil je KeePassXC nu opnieuw opstarten? Found zero keys - Geen sleutels gevonden + Geen sleutels aangetroffen Failed to read public key. - Lezen publieke sleutel mislukt. + Kan openbare sleutel niet uitlezen. Corrupted key file, reading private key failed - Beschadigd sleutelbestand, lezen persoonlijke sleutel mislukt + Beschadigd bestand, de persoonlijke sleutel is niet uitgelezen Unsupported key type: %1 - Niet ondersteund sleuteltype: %1 + Niet-ondersteund sleuteltype: %1 No private key payload to decrypt - Geen inhoud persoonlijke sleutel om te decoderen + Geen inhoud om persoonlijke sleutel te decoderen Unknown cipher: %1 Onbekende versleuteling: %1 + + AES-256/GCM is currently not supported + AES-256/GCM wordt momenteel niet ondersteund + Passphrase is required to decrypt this key - Wachtwoord(-zin) nodig om deze sleutel te ontcijferen + Er is een wachtwoordzin vereist om deze sleutel te decoderen Key derivation failed: %1 @@ -5710,35 +6153,35 @@ Wil je KeePassXC nu opnieuw opstarten? Cipher IV is too short for MD5 kdf - Versleuteilng IV is te kort om MD5-sleutel te verkrijgen. + Versleuteilng IV is te kort om MD5-sleutel te verkrijgen Unknown KDF: %1 - Onbekende sleutelafleidings-functie: %1 + Onbekende KDF: %1 Failed to initialize cipher: %1 - Kan codering niet initialiseren: %1 + Kan versleuteling niet initialiseren: %1 Decryption failed: %1 - Decodering is mislukt: %1 + Decodering mislukt: %1 Decryption failed, wrong passphrase? - Decodering mislukt, verkeerd wachtwoord(-zin)? + Decodering mislukt. Controleer de wachtwoordzin. Unexpected EOF while reading key - Onverwacht bestandseinde tijdens lezen van de sleutel + Onverwacht bestandseinde bij lezen sleutel Unsupported key part - Niet ondersteund sleutelonderdeel + Niet-ondersteund sleutelonderdeel Unexpected EOF while reading public key - Onverwacht bestandseinde publieke sleutel + Onverwacht bestandseinde bij lezen openbare sleutel Unknown key type: %1 @@ -5746,19 +6189,19 @@ Wil je KeePassXC nu opnieuw opstarten? Unexpected EOF while reading private key - Onverwacht bestandseinde persoonlijke sleutel + Onverwacht bestandseinde bij persoonlijke sleutel Can't write public key as it is empty - Kan publieke sleutel niet opslaan, aangezien deze leeg is + Kan geen openbare sleutel schrijven omdat deze leeg is Unexpected EOF when writing public key - Onverwacht bestandseinde bij schrijven publieke sleutel + Onverwacht bestandseinde bij schrijven openbare sleutel Can't write private key as it is empty - Kan persoonlijke sleutel niet opslaan, aangezien deze leeg is + De persoonlijke sleutel is niet opgeslagen aangezien deze leeg is Unexpected EOF when writing private key @@ -5766,37 +6209,189 @@ Wil je KeePassXC nu opnieuw opstarten? - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Wachtwoorden komen niet overeen + SSH Key Generator + SSH-sleutelgenerator - Passwords match so far - Wachtwoorden overeenkomst tot nu toe + Type + Type - Toggle Password (%1) - Wachtwoord schakelen (%1) + Bits + Bits - Generate Password (%1) - Wachtwoord genereren (%1) + Comment + Opmerking + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - Passkey Export - Warning: Caps Lock enabled! - Let op: Caps Lock geactiveerd! + Export the following Passkey entries. + Exporteer de volgende Passkey-items. + + + Filenames will be generated with title and .passkey file extension. + Bestandsnamen worden gegenereerd met de titel en de bestandsextensie .passkey. + + + Export entries + Items exporteren + + + Export Selected + Selectie exporteren + + + Cancel + Annuleren + + + Export to folder + Exporteer naar map + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC - Passkey Export + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + Bestand "%1.passkey" bestaat al. +Wil je het overschrijven? + + + + Cannot open file + Kan bestand niet openen + + + Cannot open file "%1" for writing. + Kan bestand "%1" niet openen om te schrijven. + + + Cannot write to file + Kan niet naar bestand schrijven + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - Passkey Import + + + Username: %1 + Gebruikersnaam: %1 + + + Group + Groep + + + Database + Database + + + Import Passkey + Passkey importeren + + + Import + Importeren + + + Cancel + Annuleren + + + Import the following Passkey: + De volgende Passkey importeren: + + + Entry + Item + + + Import the following Passkey to this entry: + De volgende Passkey importeren naar dit item: + + + Create new entry + Nieuw item aanmaken + + + Default Passkeys group (Imported Passkeys) + Standaard Passkeys-groep (Geïmporteerde Passkeys) + + + Relying Party: %1 + Vertrouwende partij: %1 + + + + PasskeyImporter + + Passkey file + Passkey-bestand + + + All files + Alle bestanden + + + Open Passkey file + Passkey-bestand openen + + + Cannot open file + Kan bestand niet openen + + + Cannot open file "%1" for reading. + Kan bestand "%1" niet openen om te lezen. + + + Cannot import Passkey + Kan Passkey niet importeren + + + Cannot import Passkey file "%1". Data is missing. + Kan Passkey-bestand "%1" niet importeren. Gegevens ontbreken. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + Kan Passkey-bestand "%1" niet importeren. Persoonlijke sleutel ontbreekt of is misvormd. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + Kan Passkey-bestand "%1" niet importeren. +De volgende gegevens ontbreken: +%2 PasswordEditWidget Enter password: - Wachtwoord invoeren: + Voer wachtwoord in: Password field - Wachtwoord invulveld + Wachtwoordveld Confirm password: @@ -5804,7 +6399,7 @@ Wil je KeePassXC nu opnieuw opstarten? Repeat password field - Wachtwoord herhaling veld + Veld voor wachtwoordherhaling Password @@ -5824,7 +6419,7 @@ Wil je KeePassXC nu opnieuw opstarten? Password set, click to change or remove - Wachtwoord ingesteld, klik om te wijzigen of verwijderen + Wachtwoord ingesteld - klik om te wijzigen of te verwijderen <p>A password is the primary method for securing your database.</p><p>Good passwords are long and unique. KeePassXC can generate one for you.</p> @@ -5832,7 +6427,7 @@ Wil je KeePassXC nu opnieuw opstarten? Passwords do not match. - Wachtwoorden komen niet overeen. + De wachtwoorden komen niet overeen. @@ -5888,7 +6483,7 @@ Wil je KeePassXC nu opnieuw opstarten? Character Types - Tekens + Tekensoorten Special characters @@ -5896,7 +6491,7 @@ Wil je KeePassXC nu opnieuw opstarten? Quotes - Aanhalingstekens + Dubbele aanhalingstekens Punctuation @@ -5904,11 +6499,11 @@ Wil je KeePassXC nu opnieuw opstarten? Dashes and Slashes - Streepjes en schuine streepjes + Streepjes en schuine strepen Upper-case letters - Hoofdletters + HOOFDLETTERS Numbers @@ -5916,11 +6511,11 @@ Wil je KeePassXC nu opnieuw opstarten? Lower-case letters - Kleine letters + kleine letters Math Symbols - Wiskunde tekens + Wiskundige tekens Extended ASCII @@ -5944,11 +6539,11 @@ Wil je KeePassXC nu opnieuw opstarten? Add non-hex letters to "do not include" list - Voeg niet-hex karakters toe aan de "niet gebruiken" lijst + Voeg niet-hextekens toe aan de ‘niet gebruiken’-lijst Hex Passwords - Hex wachtwoord + Hex-wachtwoorden Hex @@ -5956,11 +6551,11 @@ Wil je KeePassXC nu opnieuw opstarten? Character set to exclude from generated password - Tekenset die niet gebruikt mag worden in het gegenereerde wachtwoord + De tekenset die niet gebruikt mag worden in het gegenereerde wachtwoord Excluded characters - Niet te gebruiken tekens + Uitgesloten tekens Also choose from: @@ -5968,15 +6563,15 @@ Wil je KeePassXC nu opnieuw opstarten? Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" - Niet te gebruiken karakters: "0", "1", "l", "I", "O", "|", "ï¹’" + Uitgesloten tekens: "0", "1", "l", "I", "O", "|", "ï¹’" Exclude look-alike characters - Op elkaar lijkende tekens niet gebruiken + Op elkaar lijkende tekens uitsluiten Pick characters from every group - Gebruik tekens uit iedere groep + Tekens uit iedere groep gebruiken Passphrase @@ -6000,7 +6595,7 @@ Wil je KeePassXC nu opnieuw opstarten? Word Case: - Teken grootte + Hoofdlettergebruik: Delete selected wordlist @@ -6024,11 +6619,11 @@ Wil je KeePassXC nu opnieuw opstarten? Apply Password - Wachtwoord gebruiken + Wachtwoord toepassen Regenerate password (%1) - Ã’pnieuw genereren (%1) + Opnieuw genereren (%1) lower case @@ -6040,7 +6635,7 @@ Wil je KeePassXC nu opnieuw opstarten? Title Case - Eerste Letter Als Hoofdletter + Beginhoofdletters (SYSTEM) @@ -6050,60 +6645,14 @@ Wil je KeePassXC nu opnieuw opstarten? Entropy: %1 bit Entropie: %1 bit - - Confirm Delete Wordlist - Verwijdering woordenlijst bevestigen - - - Do you really want to delete the wordlist "%1"? - Wil je de woordenlijst "%1" echt verwijderen? - - - Failed to delete wordlist - Woordenlijst is niet verwijderd - - - Wordlists - Woordenlijsten - - - All files - Alle bestanden - - - Select Custom Wordlist - Aangepaste woordenlijst selecteren - - - Overwrite Wordlist? - Woordenlijst overschrijven? - - - Wordlist "%1" already exists as a custom wordlist. -Do you want to overwrite it? - Woordenlijst "%1" bestaat al als een aangepaste woordenlijst. -Wil je deze overschrijven? - - - Failed to add wordlist - Woordenlijst is niet toegevoegd - - - Logograms - Special tekens - - - Special Characters - Speciale tekens - Password Quality: %1 - Kwaliteit: %1 + Wachtwoordsterkte: %1 Poor Password quality - Slecht + Matig Weak @@ -6120,6 +6669,103 @@ Wil je deze overschrijven? Password quality Uitstekend + + Confirm Delete Wordlist + Verwijderen van woordenlijst bevestigen + + + Do you really want to delete the wordlist "%1"? + Wil je de woordenlijst “%1†verwijderen? + + + Failed to delete wordlist + Kan woordenlijst niet verwijderen + + + Wordlists + Woordenlijsten + + + All files + Alle bestanden + + + Select Custom Wordlist + Selecteer aangepaste woordenlijst + + + Overwrite Wordlist? + Woordenlijst overschrijven? + + + Wordlist "%1" already exists as a custom wordlist. +Do you want to overwrite it? + De woordenlijst “%1†bestaat al als aangepaste woordenlijst. +Wil je deze overschrijven? + + + Failed to add wordlist + Kan woordenlijst niet toevoegen + + + Logograms + Logogrammen + + + Special Characters + Speciale tekens + + + + PasswordWidget + + Passwords do not match + De wachtwoorden komen niet overeen + + + Passwords match so far + Overeenkomst van wachtwoorden tot dusver + + + Toggle Password (%1) + Wachtwoord tonen/verbergen (%1) + + + Generate Password (%1) + Wachtwoord genereren (%1) + + + Warning: Caps Lock enabled! + Let op: CapsLock is ingeschakeld! + + + Quality: %1 + Sterkte: %1 + + + Poor + Password quality + Matig + + + Weak + Password quality + Zwak + + + Good + Password quality + Goed + + + Excellent + Password quality + Uitstekend + + + Toggle password visibility using Control + H. Open the password generator using Control + G. + Wachtwoorden tonen/verbergen met Ctrl + H. Wachtwoordgenerator openen met Ctrl + G. + PickcharsDialog @@ -6129,11 +6775,11 @@ Wil je deze overschrijven? Select characters to type, navigate with arrow keys, Ctrl + S submits. - Selecteer tekens om te typen, navigeer met pijltoetsen, Ctrl + S verzendt. + Selecteer tekens om te typen, navigeer met de pijltjestoetsen, verstuur met Ctrl + S. Press &Tab between characters - Druk &Tab tussen de tekens + Druk op &Tab tussen de tekens @@ -6152,7 +6798,7 @@ Wil je deze overschrijven? Empty - Leeg + Legen Remove @@ -6174,20 +6820,24 @@ Wil je deze overschrijven? Continue Doorgaan + + Continue with weak password + Doorgaan met zwak wachtwoord + QObject Database not opened - Database niet geopend + De database is niet geopend Database hash not available - Database-hashwaarde is niet beschikbaar + Controlegetal van database niet beschikbaar Client public key not received - Openbare sleutel niet ontvangen + De openbare sleutel is niet ontvangen Cannot decrypt message @@ -6195,15 +6845,15 @@ Wil je deze overschrijven? Action cancelled or denied - Actie afgebroken of geweigerd + De actie is afgebroken of geweigerd Message encryption failed. - Berichtcodering is mislukt. + Berichtversleuteling is mislukt. KeePassXC association failed, try again - KeePassXC-koppeling is mislukt, probeer het opnieuw + De KeePassXC-koppeling is mislukt - probeer het opnieuw Encryption key is not recognized @@ -6239,7 +6889,7 @@ Wil je deze overschrijven? Unknown error - Onbekende fout + Onbekende foutmelding Browser Integration @@ -6247,15 +6897,15 @@ Wil je deze overschrijven? Browser Plugin Failure - Fout met browser-extensie + Browserextensie-foutmelding Could not save the native messaging script file for %1. - Kan het native messaging scriptbestand voor %1 niet opslaan. + Kan het native messaging-scriptbestand van %1 niet opslaan. Username for the entry. - Gebruikersnaam voor het item. + De gebruikersnaam van het item. username @@ -6263,7 +6913,7 @@ Wil je deze overschrijven? URL for the entry. - URL voor het item. + De URL van het item. URL @@ -6271,7 +6921,7 @@ Wil je deze overschrijven? Notes for the entry. - Notities bij het item. + De notities bij het item. Notes @@ -6279,7 +6929,7 @@ Wil je deze overschrijven? Prompt for the entry's password. - Vraag om het item's wachtwoord. + Vraag om het wachtwoord van het item. Generate a password for the entry. @@ -6287,31 +6937,31 @@ Wil je deze overschrijven? Add a new entry to a database. - Nieuw item toevoegen aan een database. + Voeg een nieuw item toe aan een database. Path of the entry to add. - Pad van toe te voegen item. + De locatie van het toe te voegen item. Cannot generate a password and prompt at the same time. - Kan geen wachtwoord en prompt op hetzelfde moment genereren! + Kan niet tegelijkertijd een wachtwoord en prompt genereren. Could not create entry with path %1. - Kan geen item maken met pad %1. + Kan geen item aanmaken met de locatie %1. Enter password for new entry: - Voer wachtwoord in voor nieuw item: + Voer het wachtwoord in van het nieuwe item: Writing the database failed %1. - Het schrijven van de database is mislukt %1. + De database kan niet worden weggeschreven %1. Successfully added entry %1. - Item %1 toegevoegd. + Item %1 is toegevoegd. Adds a new group to a database. @@ -6319,7 +6969,7 @@ Wil je deze overschrijven? Path of the group to add. - Pad van de toe te voegen groep. + Locatie van de toe te voegen groep. Group %1 already exists! @@ -6327,15 +6977,15 @@ Wil je deze overschrijven? Group %1 not found. - Groep %1 niet gevonden. + Groep %1 is niet aangetroffen. Successfully added group %1. - Groep %1 toegevoegd. + Groep %1 is toegevoegd. Check if any passwords have been publicly leaked. FILENAME must be the path of a file listing SHA-1 hashes of leaked passwords in HIBP format, as available from https://haveibeenpwned.com/Passwords. - Controleer of er wachtwoorden zijn gelekt en openbaar zijn gemaakt. BESTANDSNAAM moet het pad zijn van een bestand met SHA-1-hashes van gelekte wachtwoorden in HIBP-indeling, zoals beschikbaar op https://haveibeenpwned.com/Passwords. + Controleer of er wachtwoorden zijn gelekt en openbaar zijn gemaakt. BESTANDSNAAM dient de locatie te zijn van een bestand met SHA-1-controlegetallen van gelekte wachtwoorden in HIBP-indeling, zoals beschikbaar op https://haveibeenpwned.com/Passwords. FILENAME @@ -6359,19 +7009,19 @@ Wil je deze overschrijven? Evaluating database entries using okon… - Database-items evalueren met okon... + Database-items evalueren met okon… Failed to open HIBP file %1: %2 - Kon HIBP bestand niet openen %1: %2 + Kan HIBP-bestand %1 niet openen: %2 Evaluating database entries against HIBP file, this will take a while… - Database items evalueren t.o.v. HIBP-bestand, dit kan even duren... + Database-items evalueren met behulp van het HIBP-bestand, dit kan even duren… Password for '%1' has been leaked %2 time(s)! - Wachtwoord voor '%1' is %2 keer gelekt!Wachtwoorden voor '%1' zijn %2 keer gelekt! + Wachtwoord voor '%1' is %2 keer gelekt!Wachtwoord voor '%1' is %2 keer gelekt! Password for '%1' has been leaked! @@ -6411,7 +7061,7 @@ Wil je deze overschrijven? Successfully exported attachment %1 of entry %2 to %3. - Bijlage %1 van item %2 tot en met %3 met succes geëxporteerd. + Bijlage %1 van item %2 met succes geëxporteerd naar %3. Overwrite existing attachments. @@ -6443,11 +7093,11 @@ Wil je deze overschrijven? Successfully imported attachment %1 as %2 to entry %3. - Bijlage %1 met succes als %2 ingevoerd bij %3. + Bijlage %1 met succes als %2 ingevoerd bij item %3. Remove an attachment of an entry. - Verwijder een bijlage van een vermelding. + Verwijder een bijlage van een item. Name of the attachment to be removed. @@ -6455,12 +7105,12 @@ Wil je deze overschrijven? Successfully removed attachment %1 from entry %2. - Bijlage %1 uit vermelding %2 is verwijderd. + Bijlage %1 is van item %2 verwijderd. Copy the given attribute to the clipboard. Defaults to "password" if not specified. Don't translate "password", it refers to the attribute. - Kopieer het gegeven kenmerk naar het klembord. Dit is "wachtwoord" tenzij anders gespecificeerd. + Kopieer het gegeven kenmerk naar het klembord. Dit is standaard "wachtwoord" tenzij anders gespecificeerd. Copy the current TOTP to the clipboard (equivalent to "-a totp"). @@ -6481,7 +7131,7 @@ Wil je deze overschrijven? Timeout before clearing the clipboard (default is %1 seconds, set to 0 for unlimited). - Time-out voordat het klembord wordt leeg gemaakt (standaard is %1 seconden, gebruik 0 voor onbeperkt). + Time-out voordat het klembord wordt gewist (standaard %1 seconden, gebruik 0 voor onbeperkt). Invalid timeout value %1. @@ -6505,7 +7155,7 @@ Wil je deze overschrijven? Entry with path %1 has no TOTP set up. - Item met pad %1 heeft geen TOTP instellingen. + Item met pad %1 heeft geen TOTP ingesteld. ERROR: attribute %1 is ambiguous, it matches %2. @@ -6521,7 +7171,7 @@ Wil je deze overschrijven? Clearing the clipboard in %1 second(s)... - Het klemboard wordt over %1 seconde(n) gewist...Het klembord wordt over %1 seconde(n) gewist... + Klembord over %1 seconde wissen…Klembord over %1 seconden wissen… Clipboard cleared! @@ -6533,11 +7183,11 @@ Wil je deze overschrijven? Display this help. - Toont deze helptekst. + Toon deze helptekst. Silence password prompt and other secondary outputs. - Wachtwoordprompt en andere bijkomstige meldingen verbergen. + Wachtwoordprompt en andere bijkomstige meldingen dempen. Key file of the database. @@ -6553,7 +7203,7 @@ Wil je deze overschrijven? Yubikey slot and optional serial used to access the database (e.g., 1:7370001). - Yubikey-positie en optioneel serienummer dat wordt gebruikt om toegang te krijgen tot de database (bijv. 1: 7370001). + Yubikey-positie en optioneel serienummer dat wordt gebruikt om toegang te krijgen tot de database (bijv. 1:7370001). slot[:serial] @@ -6561,23 +7211,33 @@ Wil je deze overschrijven? Missing positional argument(s). - Er ontbreken positionele argument(en). + Er ontbreken positionele argumenten. Too many arguments provided. Te veel argumenten. + + Path of the database. + Pad naar de database. + Target decryption time in MS for the database. - Beoogde decoderingstijd voor de database [ms]. + Beoogde decoderingstijd voor de database in ms. time tijd + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Stel het sleutelbestand van de database in. +Let op: deze optie is verouderd, gebruik --set-key-file + Set the key file for the database. - Het sleutelbestand voor de database instellen. + Stel het sleutelbestand in voor de database. Set a password for the database. @@ -6585,11 +7245,7 @@ Wil je deze overschrijven? Create a new database. - Nieuwe database aanmaken - - - Path of the database. - Pad naar de database. + Nieuwe database aanmaken. Invalid decryption time %1. @@ -6636,287 +7292,60 @@ Wil je deze overschrijven? Nieuwe database is aangemaakt - Word count for the diceware passphrase. - Aantal woorden voor de Diceware wachtwoordzin. + Unset the password for the database. + Maak het wachtwoord voor de database ongedaan. - count - CLI parameter - aantal + Unset the key file for the database. + Schakel het sleutelbestand voor de database uit. - Wordlist for the diceware generator. -[Default: EFF English] - Woordenlijst voor de Diceware-generator. -[Standaard: EFF Engels] + Edit a database. + Een database bewerken. - Generate a new random diceware passphrase. - Genereer een nieuwe willekeurige Diceware wachtwoordzin + Cannot use %1 and %2 at the same time. + %1 en %2 kunnen niet tegelijkertijd worden gebruikt. - Invalid word count %1 - Ongeldig aantal woorden %1 + Could not change the database key. + Kan de databasesleutel niet wijzigen. - The word list is too small (< 1000 items) - De woordenlijst is te klein (< 1000 items) - - - Title for the entry. - Naam voor deze entry. - - - title - naam - - - Edit an entry. - Een item bewerken. - - - Path of the entry to edit. - Pad van het te bewerken item. - - - Not changing any field for entry %1. - Geen enkel veld in item %1 is gewijzigd. - - - Enter new password for entry: - Voer nieuw wachtwoord in voor item: + Database was not modified. + De database is niet bewerkt. Writing the database failed: %1 Het schrijven van de database is mislukt: %1 - Successfully edited entry %1. - Item %1 is aangepast. + Successfully edited the database. + De database is bewerkt. - Perform advanced analysis on the password. - Geavanceerde analyse op het wachtwoord uitvoeren. + Cannot remove password: The database does not have a password. + Kan wachtwoord niet verwijderen: De database heeft geen wachtwoord. - Password for which to estimate the entropy. - Wachtwoord waarvoor de entropie geschat moet worden. + Cannot remove file key: The database does not have a file key. + Kan het sleutelbestand niet wissen: De database heeft geen sleutelbestand. - Estimate the entropy of a password. - De entropie van een wachtwoord inschatten. + Loading the new key file failed: %1 + Kan het nieuwe sleutelbestand niet laden: %1 - Length %1 - Lengte %1 + Found unexpected Key type %1 + Onverwacht sleuteltype aangetroffen: ‘%1’ - Entropy %1 - Entropie %1 - - - Log10 %1 - Log10 %1 - - - Multi-word extra bits %1 - Multi-word extra bits %1 - - - Type: Bruteforce - Type: Brute kracht - - - Type: Dictionary - Type: Woordenboek - - - Type: Dict+Leet - Type: Woordenboek + Leet - - - Type: User Words - Type: Gebruikerwoorden - - - Type: User+Leet - Type: Gebruikerwoorden + Leet - - - Type: Repeated - Type: Herhaald - - - Type: Sequence - Type: Reeks - - - Type: Spatial - Type: Ruimtelijk - - - Type: Date - Type: Datum - - - Type: Bruteforce(Rep) - Type: Brute kracht (herh) - - - Type: Dictionary(Rep) - Type: Woordenboek (herh) - - - Type: Dict+Leet(Rep) - Type: Woordenboek + Leet (herh) - - - Type: User Words(Rep) - Type: Gebruikerwoorden (herh) - - - Type: User+Leet(Rep) - Type: Gebruikerwoorden + Leet (herh) - - - Type: Repeated(Rep) - Type: Herhaald (herh) - - - Type: Sequence(Rep) - Type: Reeks (herh) - - - Type: Spatial(Rep) - Type: Ruimtelijk (herh) - - - Type: Date(Rep) - Type: Datum (herh) - - - Type: Unknown (%1) - Type: Onbekend (%1) - - - Entropy %1 (%2) - Entropie %1 (%2) - - - *** Password length (%1) != sum of length of parts (%2) *** - *** Wachtwoordlengte (%1) ! = som van de lengte van de onderdelen (%2) *** - - - Exit interactive mode. - Interactieve modus afsluiten. - - - Format to use when exporting. Available choices are 'xml' or 'csv'. Defaults to 'xml'. - Formaat om te gebruiken bij het exporteren. Beschikbare keuzes zijn 'xml' of 'csv'. Standaard ingesteld op 'xml'. - - - Exports the content of a database to standard output in the specified format. - Exporteert de inhoud van een database naar standaarduitvoer in de opgegeven indeling. - - - Unable to export database to XML: %1 - Kon de database niet exporteren naar XML: %1 - - - Unsupported format %1 - Niet-ondersteund formaat %1 - - - Length of the generated password - Lengte van het gegenereerde wachtwoord - - - length - lengte - - - Use lowercase characters - Kleine letters gebruiken - - - Use uppercase characters - Hoofdletters gebruiken - - - Use numbers - Getallen gebruiken. - - - Use special characters - Speciale tekens gebruiken - - - Use extended ASCII - Uitgebreide ASCII-tekens gebruiken - - - Exclude character set - Tekenset uitsluiten - - - chars - Tekens - - - Use custom character set - Aangepaste tekenset gebruiken - - - Exclude similar looking characters - Op elkaar lijkende tekens niet gebruiken - - - Include characters from every selected group - Tekens uit iedere geslecteerde groep opnemen - - - Generate a new random password. - Genereer een willekeurig wachtwoord - - - Invalid password length %1 - Ongeldige wachtwoordlengte %1 - - - Invalid password generator after applying all options - Ongeldige wachtwoordgenerator na het toepassen van alle opties - - - Display command help. - Toon helptekst voor opdracht. - - - Available commands: - Beschikbare opdrachten: - - - Import the contents of an XML database. - Importeer de inhoud van een XML-database. - - - Path of the XML database export. - Pad van de XML-database export. - - - Path of the new database. - Pad van de nieuwe database. - - - Unable to import XML database: %1 - Kan XML-database niet importeren: %1 - - - Successfully imported database. - Database is geïmporteerd. + Cannot remove all the keys from a database. + Niet alle sleutels kunnen worden gewist. Show a database's information. - Toon de gegevens van een database. + Toon de informatie van een database. UUID: @@ -6992,7 +7421,7 @@ Wil je deze overschrijven? Maximum password reuse - Maximaal wachtwoordherbruik + Maximaal hergebruik van wachtwoorden Number of short passwords @@ -7014,6 +7443,281 @@ Wil je deze overschrijven? %1 characters %1 tekens + + Word count for the diceware passphrase. + Aantal woorden voor de Diceware wachtwoordzin. + + + count + CLI parameter + aantal + + + Wordlist for the diceware generator. +[Default: EFF English] + Woordenlijst voor de Diceware-generator. +[Standaard: EFF Engels] + + + Generate a new random diceware passphrase. + Genereer een nieuwe willekeurige Diceware wachtwoordzin + + + Invalid word count %1 + Ongeldig aantal woorden %1 + + + The word list is too small (< 1000 items) + De woordenlijst is te klein (< 1000 items) + + + Title for the entry. + Titel van dit item. + + + title + titel + + + Edit an entry. + Een item bewerken. + + + Path of the entry to edit. + Pad van het te bewerken item. + + + Not changing any field for entry %1. + Geen enkel veld wijzigen voor item %1. + + + Enter new password for entry: + Voer nieuw wachtwoord in voor item: + + + Successfully edited entry %1. + Item %1 is aangepast. + + + Perform advanced analysis on the password. + Geavanceerde analyse op het wachtwoord uitvoeren. + + + Password for which to estimate the entropy. + Wachtwoord om de entropie te schatten. + + + Estimate the entropy of a password. + De entropie van een wachtwoord inschatten. + + + Length %1 + Lengte %1 + + + Entropy %1 + Entropie %1 + + + Log10 %1 + Log10 %1 + + + Multi-word extra bits %1 + Multi-word extra bits %1 + + + Type: Bruteforce + Type: Brute kracht + + + Type: Dictionary + Type: Woordenboek + + + Type: Dict+Leet + Type: Woordenboek + Leet + + + Type: User Words + Type: Gebruikerswoorden + + + Type: User+Leet + Type: Gebruikerswoorden + Leet + + + Type: Repeated + Type: Herhaald + + + Type: Sequence + Type: Reeks + + + Type: Spatial + Type: Ruimtelijk + + + Type: Date + Type: Datum + + + Type: Bruteforce(Rep) + Type: Brute kracht (herh) + + + Type: Dictionary(Rep) + Type: Woordenboek (herh) + + + Type: Dict+Leet(Rep) + Type: Woordenboek + Leet (herh) + + + Type: User Words(Rep) + Type: Gebruikerswoorden (herh) + + + Type: User+Leet(Rep) + Type: Gebruikerswoorden + Leet (herh) + + + Type: Repeated(Rep) + Type: Herhaald (herh) + + + Type: Sequence(Rep) + Type: Reeks (herh) + + + Type: Spatial(Rep) + Type: Ruimtelijk (herh) + + + Type: Date(Rep) + Type: Datum (herh) + + + Type: Unknown (%1) + Type: Onbekend (%1) + + + Entropy %1 (%2) + Entropie %1 (%2) + + + *** Password length (%1) != sum of length of parts (%2) *** + *** Wachtwoordlengte (%1) ! = som van de lengte van de onderdelen (%2) *** + + + Exit interactive mode. + Interactieve modus afsluiten. + + + Format to use when exporting. Available choices are 'xml' or 'csv'. Defaults to 'xml'. + Formaat om te gebruiken bij het exporteren. Beschikbare keuzes zijn 'XML' of 'CSV'. Standaard ingesteld op 'XML'. + + + Exports the content of a database to standard output in the specified format. + Exporteert de inhoud van een database naar standaarduitvoer in de opgegeven indeling. + + + Unable to export database to XML: %1 + Kan de database niet exporteren naar XML: %1 + + + Unsupported format %1 + Niet-ondersteund formaat %1 + + + Length of the generated password + Lengte van het gegenereerde wachtwoord + + + length + lengte + + + Use lowercase characters + Kleine letters gebruiken + + + Use uppercase characters + Hoofdletters gebruiken + + + Use numbers + Cijfers gebruiken. + + + Use special characters + Speciale tekens gebruiken + + + Use extended ASCII + Uitgebreide ASCII-tekens gebruiken + + + Exclude character set + Tekenset uitsluiten + + + chars + tekens + + + Use custom character set + Aangepaste tekenset gebruiken + + + Exclude similar looking characters + Op elkaar lijkende tekens uitsluiten + + + Include characters from every selected group + Tekens uit iedere geslecteerde groep opnemen + + + Generate a new random password. + Genereer een willekeurig wachtwoord + + + Invalid password length %1 + Ongeldige wachtwoordlengte %1 + + + Invalid password generator after applying all options + Ongeldige wachtwoordgenerator na toepassing van alle opties + + + Display command help. + Toon helptekst voor opdracht. + + + Available commands: + Beschikbare opdrachten: + + + Import the contents of an XML database. + Importeer de inhoud van een XML-database. + + + Path of the XML database export. + Pad van de XML-database export. + + + Path of the new database. + Pad van de nieuwe database. + + + Unable to import XML database: %1 + Kan XML-database niet importeren: %1 + + + Successfully imported database. + Database is geïmporteerd. + Unknown command %1 Onbekende opdracht %1 @@ -7026,7 +7730,7 @@ Available commands: Beschikbare opdrachten: -: + Name of the command to execute. @@ -7050,7 +7754,7 @@ Beschikbare opdrachten: List database entries. - Lijst van database-items. + Database-items opsommen. Path of the group to list. Default is / @@ -7062,23 +7766,23 @@ Beschikbare opdrachten: Use the same credentials for both database files. - Gebruik dezelfde gegevens voor beide gegevensbestanden. + Gebruik dezelfde inloggegevens voor beide databasebestanden. Key file of the database to merge from. - Sleutelbestand van gegevensbestand om samen te voegen. + Sleutelbestand van de database om uit samen te voegen. Deactivate password key for the database to merge from. - Deactiveer de wachtwoordsleutel voor de database waaruit je wil samenvoegen. + Deactiveer de wachtwoordsleutel voor de database om uit samen te voegen. Only print the changes detected by the merge operation. - Alleen de wijzigingen afdrukken die zijn gedetecteerd door de samenvoegbewerking. + Druk alleen de wijzigingen af die zijn gedetecteerd door de samenvoegbewerking. Yubikey slot for the second database. - YubiKey positie voor de tweede database. + YubiKey-positie voor de tweede database. slot @@ -7104,11 +7808,11 @@ Beschikbare opdrachten: Successfully merged %1 into %2. - %1 en %2 zijn samengevoegd. + %1 is toegevoegd aan %2. Database was not modified by merge operation. - Database werd niet gewijzigd door het samenvoegen. + Database is niet gewijzigd door samenvoeging. Moves an entry to a new group. @@ -7136,7 +7840,7 @@ Beschikbare opdrachten: Open a database. - Open een gegevensbestand. + Open een database. Path of the entry to remove. @@ -7160,7 +7864,7 @@ Beschikbare opdrachten: Cannot remove root group from database. - Kan de hoofdgroep niet verwijderen uit de database. + Kan de hoofdgroep niet uit de database verwijderen. Successfully recycled group %1. @@ -7186,6 +7890,10 @@ Beschikbare opdrachten: Show the protected attributes in clear text. Toon de beschermde kenmerken in tekst. + + Show all the attributes of the entry. + Toon alle kenmerken van het item. + Show the attachments of the entry. Toon de bijlagen van het item. @@ -7200,11 +7908,11 @@ Beschikbare opdrachten: Show an entry's information. - Toon de informatie die hoort bij een item. + Toon de informatie van een item. Name of the entry to show. - Naam van het item dat getoond moet worden. + Naam van de vermelding om te tonen. ERROR: unknown attribute %1. @@ -7220,23 +7928,23 @@ Beschikbare opdrachten: Failed to open database file %1: not found - Kan het databasebestand %1 niet openen: niet gevonden + Kan databasebestand %1 niet openen: niet gevonden Failed to open database file %1: not a plain file - Kan het databasebestand %1 niet openen: geen gewoon bestand + Kan databasebestand %1 niet openen: geen normaal bestand Failed to open database file %1: not readable - Kan het databasebestand %1 niet openen: niet leesbaar + Kan databasebestand %1 niet openen: niet leesbaar Enter password to unlock %1: - Geef het wachtwoord om %1 te ontgrendelen: + Voer het wachtwoord in om %1 te ontgrendelen: Failed to load key file %1: %2 - Er ging iets fout bij het laden van sleutelbestand %1: %2 + Kan sleutelbestand %1 niet laden: %2 WARNING: You are using an old key file format which KeePassXC may @@ -7244,17 +7952,21 @@ stop supporting in the future. Please consider generating a new key file. WAARSCHUWING: Je gebruikt een oud sleutelbestandsformaat dat KeePassXC -in de toekomst mogelijk niet meer kan ondersteunen. +in de toekomst mogelijk niet meer ondersteunt. Overweeg om een nieuw sleutelbestand te genereren. Invalid YubiKey slot %1 - Ongeldige YubiKey positie %1 + Ongeldige YubiKey-positie %1 Invalid YubiKey serial %1 - Ongeldig YubiKey nummer %1 + Ongeldig YubiKey-nummer %1 + + + Please present or touch your YubiKey to continue. + Plaats je YubiKey of druk er op om door te gaan. Enter password to encrypt database (optional): @@ -7266,15 +7978,15 @@ Overweeg om een nieuw sleutelbestand te genereren. Repeat password: - Herhaal wachtwoord: + Wachtwoord herhalen: Error: Passwords do not match. - Fout: wachtwoorden komen niet overeen. + Fout: Wachtwoorden komen niet overeen. No program defined for clipboard manipulation - Geen programma ingesteld voor klembord manipulatie + Geen programma ingesteld voor manipulatie van klembord All clipping programs failed. Tried %1 @@ -7292,7 +8004,7 @@ Overweeg om een nieuw sleutelbestand te genereren. HIBP file, line %1: parse error - HIBP-bestand, regel %1: fout bij interpreteren + HIBP-bestand, regel %1: verwerkingsfout To use okon, you must provide a post-processed file (e.g. file.okon) @@ -7316,7 +8028,7 @@ Overweeg om een nieuw sleutelbestand te genereren. Password entropy is %1 bits - Wachtwoord-entropie is %1 bits + Entropie van wachtwoord is %1 bits Weak password @@ -7328,7 +8040,7 @@ Overweeg om een nieuw sleutelbestand te genereren. Password is used %1 time(s) - Wachtwoord wordt %1 keer gebruiktWachtwoord wordt %1 keer gebruikt + Wachtwoord is %1 keer gebruiktWachtwoord is %1 keer gebruikt Password has expired @@ -7348,7 +8060,7 @@ Overweeg om een nieuw sleutelbestand te genereren. Password expires in %1 day(s) - Wachtwoord verloopt over %1 dag(en)Wachtwoord verloopt over %1 dag(en) + Wachtwoord verloopt over %1 dagWachtwoord verloopt over %1 dagen Password will expire soon @@ -7356,15 +8068,15 @@ Overweeg om een nieuw sleutelbestand te genereren. Version %1 - Versie %1 + Version %1 Build Type: %1 - Bouwtype: %1 + Build Type: %1 Revision: %1 - Revisie: %1 + Revision: %1 Distribution: %1 @@ -7372,23 +8084,23 @@ Overweeg om een nieuw sleutelbestand te genereren. Debugging mode is disabled. - De foutopsporingsmodus is uitgeschakeld. + Debugging mode is disabled. Debugging mode is enabled. - De foutopsporingsmodus is ingeschakeld. + Debugging mode is enabled. Operating system: %1 CPU architecture: %2 Kernel: %3 %4 - Besturingssysteem: %1 -CPU-architectuur: %2 -Kernelversie: %3 %4 + Operating system: %1 +CPU architecture: %2 +Kernel: %3 %4 Auto-Type - Auto-type + Automatisch invullen SSH Agent @@ -7408,7 +8120,7 @@ Kernelversie: %3 %4 Secret Service Integration - Integratie van geheime diensten + Integratie van Secret Service None @@ -7416,39 +8128,39 @@ Kernelversie: %3 %4 Enabled extensions: - Geactiveerde extensies: + Enabled extensions: over %1 year(s) - meer dan %1 jaarmeer dan %1 jaar + meer dan %1 jaarmeer dan %1 jaren about %1 month(s) - ongeveer %1 maand(en)ongeveer %1 maand(en) + ongeveer %1 maandongeveer %1 maanden %1 week(s) - %1 week(en)%1 week(en) + %1 week%1 weken %1 day(s) - %1 dag(en)%1 dag(en) + %1 dag%1 dagen %1 hour(s) - %1 uur%1 uur + %1 uur%1 uren %1 minute(s) - %1 minuut(en)%1 minuut(en) + %1 minuut%1 minuten - Botan library must be at least 2.11.x, found %1.%2.%3 - Botan-bibliotheek moet minstens versie 2.11.x zijn. %1.%2.%3 is aangetroffen. + Botan library must be at least %1, found %2.%3.%4 + Botan-bibliotheek moet minstens versie %1 zijn. Aangetroffen: %2.%3.%4 Cryptographic libraries: - Cryptografische bibliotheken: + Cryptographic libraries: AES (%1 rounds) @@ -7456,11 +8168,11 @@ Kernelversie: %3 %4 Argon2%1 (%2 rounds, %3 KB) - Argon2%1 (%2 cycli, %3 KB) + Argon2%1 (%2 iteraties, %3 KB) SymmetricCipher::init: Invalid cipher mode. - SymmetricCipher::init: Ongeldige cijfermodus. + SymmetricCipher::init: Ongeldige versleutelingsmodus. SymmetricCipher::init: Invalid IV size of %1 for %2. @@ -7468,7 +8180,7 @@ Kernelversie: %3 %4 Cipher not initialized prior to use. - Codering niet geïnitialiseerd voor gebruik. + Versleuteling niet geïnitialiseerd voor gebruik. Cannot process 0 length data. @@ -7536,15 +8248,15 @@ Kernelversie: %3 %4 Existing single-instance lock file is invalid. Launching new instance. - Het bestaande single-instance vergrendelingsbestand is niet geldig. Een nieuwe instantie wordt gestart. + Het bestaande vergrendelingsbestand voor één-exemplaarmodus is niet geldig. Een nieuw exemplaar wordt gestart. The lock file could not be created. Single-instance mode disabled. - Het vergrendelingsbestand kon niet worden aangemaakt. Single-instance mode uitgeschakeld. + Het vergrendelingsbestand kon niet worden aangemaakt. Eén-exemplaarmodus uitgeschakeld. Clearing the clipboard in %1 second(s)… - Het klembord wissen in %1 seconde(n)…Het klembord wissen in %1 seconde(n)… + Klembord wissen na %1 seconde…Klembord wissen na %1 seconden… Group @@ -7552,7 +8264,7 @@ Kernelversie: %3 %4 Title - Naam + Titel Username @@ -7594,27 +8306,27 @@ Kernelversie: %3 %4 Do you really want to delete the entry "%1" for good? - Weet je zeker dat je item "%1" definitief wil verwijderen? + Wil je item "%1" voorgoed verwijderen? Do you really want to delete %n entry(s) for good? - Wilt u echt %n item(s) voorgoed verwijderen?Wilt je echt %n item(s) voorgoed verwijderen? + Wil je %n item voorgoed verwijderen?Wil je %n items voorgoed verwijderen? Delete entry(s)? - Item(s) verwijderen?Item(s) verwijderen? + Item verwijderen?Items verwijderen? Do you really want to move entry "%1" to the recycle bin? - Weet je zeker dat je item "%1" naar de prullenbak wil verplaatsen? + Wil je item "%1" naar de prullenbak verplaatsen? Do you really want to move %n entry(s) to the recycle bin? - Wil je echt %n entry(s) naar de prullenbak verplaatsen?Wil je echt %n item(s) naar de prullenbak verplaatsen? + Wil je %n item naar de prullenbak verplaatsen?Wil je %n items naar de prullenbak verplaatsen? Move entry(s) to recycle bin? - Item(s) verplaatsen naar prullenbak?Item(s) verplaatsen naar prullenbak? + Item naar prullenbak verplaatsen?Items naar prullenbak verplaatsen? Replace references to entry? @@ -7622,7 +8334,7 @@ Kernelversie: %3 %4 Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? - Vermelding "%1" heeft %2 referentie(s). Wilt u verwijzingen overschrijven met waarden, dit item overslaan of toch verwijderen?Vermelding "%1" heeft %2 referentie(s). Wilt je deze overschrijven met waarden, dit item overslaan of toch verwijderen? + Item "%1" heeft %2 referentie. Wil je deze overschrijven met waarden, dit item overslaan of toch verwijderen?Item "%1" heeft %2 referenties. Wil je deze overschrijven met waarden, dit item overslaan of toch verwijderen? User name @@ -7650,7 +8362,7 @@ Kernelversie: %3 %4 Checksum mismatch! Key file may be corrupt. - Checksum komt niet overeen! Sleutelbestand is mogelijk beschadigd. + Controlesom komt niet overeen! Sleutelbestand is mogelijk beschadigd. Unexpected key file data! Key file may be corrupt. @@ -7658,7 +8370,7 @@ Kernelversie: %3 %4 KeePassXC - cross-platform password manager - KeepassXC - multi-platform wachtwoordbeheerder + KeePassXC - platformonafhankelijk wachtwoordbeheer filenames of the password databases to open (*.kdbx) @@ -7684,21 +8396,21 @@ Kernelversie: %3 %4 read password of the database from stdin lees wachtwoord van de database uit stdin - - allow app screen recordering and screenshots - Schermafbeeldingen en schermopnamen van de app toestaan - Locked databases. Vergrendelde databases. Database failed to lock. - Database kan niet worden vergrendeld. + Database is niet vergrendeld. Another instance of KeePassXC is already running. - Een andere instantie van KeePassXC is reeds actief. + Er is al een ander exemplaar van KeePassXC actief. + + + KeePassXC is not running. No open database to lock + KeePassXC is niet actief. Geen databank om te vergrendelen. Fatal error while testing the cryptographic functions. @@ -7708,10 +8420,6 @@ Kernelversie: %3 %4 KeePassXC - Error KeePassXC - Fout - - Warning: Failed to prevent screenshots on a top level window! - Waarschuwing: Schermafbeeldingen van het venster op het hoogste niveau kon niet worden voorkomen! - Database password: Databasewachtwoord: @@ -7735,15 +8443,229 @@ Kernelversie: %3 %4 Kan challenge niet ondertekenen met Windows Hello. - Please present or touch your YubiKey to continue. + Warning: Failed to block screenshot capture on a top-level window. + Waarschuwing: een schermopname van het venster op het hoogste niveau kon niet worden voorkomen! + + + Invalid Cipher + Ongeldige versleuteling + + + Invalid KDF + Ongeldige KDF + + + Access to all entries is denied + Toegang tot alle items is geweigerd + + + allow screenshots and app recording (Windows/macOS) + Schermopnames toestaan (Windows/macOS) + + + Enter Shortcut + Sneltoets invoeren + + + Action + Actie + + + Shortcuts + Sneltoetsen + + + Attestation not supported + Getuigenis niet ondersteund + + + Credential is excluded + Inloggegevens zijn uitgesloten + + + Passkeys request canceled + Passkey-verzoek geannuleerd + + + Invalid user verification + Ongeldige gebruikersverificatie + + + Empty public key + Lege openbare sleutel + + + Invalid URL provided + Ongeldige URL opgegeven + + + Passkeys + Passkeys + + + AES initialization failed + AES-initialisatie mislukt + + + AES encrypt failed + AES-versleuteling mislukt + + + Failed to store in Linux Keyring + Opslaan in Linux-sleutelbos mislukt + + + Polkit returned an error: %1 + Polkit heeft een fout gemeld: %1 + + + Could not locate key in keyring + Geen sleutel aangetroffen in sleutelbos + + + Could not read key in keyring + Lezen van sleutel uit sleutelbos mislukt + + + AES decrypt failed + AES-ontsleuteling mislukt + + + No Polkit authentication agent was available + Er is geen Polkit-agent beschikbaar + + + Polkit authorization failed + Polkit-autorisatie mislukt + + + No Quick Unlock provider is available + Er is geen snelle-ontgrendelingsdienst beschikbaar + + + Failed to init KeePassXC crypto. + KeePassXC-crypto is niet geinitiëerd. + + + Failed to encrypt key data. + Sleutelgegevens zijn niet versleuteld. + + + Failed to get Windows Hello credential. + Geen Windows Hello-referenties verkregen. + + + Failed to decrypt key data. + Sleutelgegevens zijn niet gedecodeerd. + + + Favorite + Tag for favorite entries + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + De oorsprong is leeg of niet toegestaan + + + Effective domain is not a valid domain + Effectief domein is geen geldig domein + + + Origin and RP ID do not match + Oorsprong en RP ID komen niet overeen + + + No supported algorithms were provided + Er zijn geen ondersteunde algoritmes verstrekt + + + Wait for timer to expire + Wacht tot de timer verloopt + + + Unknown Passkeys error + Onbekende Passkeys-fout + + + Challenge is shorter than required minimum length + De challenge is korter dan de vereiste minimale lengte + + + user.id does not match the required length + user.id voldoet niet aan de vereiste lengte + QtIOCompressor Internal zlib error when compressing: - Interne fout in zlib bij inpakken: + Interne zlib-fout bij comprimeren: Error writing to underlying device: @@ -7759,45 +8681,33 @@ Kernelversie: %3 %4 Internal zlib error when decompressing: - Interne fout in zlib bij uitpakken: + Interne zlib-fout bij decomprimeren: QtIOCompressor::open The gzip format not supported in this version of zlib. - Gzip wordt niet ondersteund in deze versie van zlib. + Het gzip-formaat wordt niet ondersteund in deze versie van zlib. Internal zlib error: - Interne fout in zlib: + Interne zlib-fout: ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - Verlopen items uitsluiten van het rapport - - - Show only entries which have URL set - Alleen vermeldingen weergeven waarvoor de URL is ingesteld - - - Show only entries which have browser settings in custom data - Alleen vermeldingen weergeven met browserinstellingen in aangepaste gegevens - Double-click entries to edit. Dubbelklik items om deze te bewerken. List of entry URLs - Lijst met vermeldings-URL's + Lijst met item-URL's Entry has no URLs set - Item heeft geen URL ingesteld + Item heeft geen URL Allowed URLs @@ -7821,7 +8731,7 @@ Kernelversie: %3 %4 Please wait, browser statistics is being calculated… - Een ogenblik geduld, browserstatistieken worden verzameld... + Even geduld, browserstatistieken worden verzameld… No entries with a URL, or none has browser extension settings saved. @@ -7829,7 +8739,7 @@ Kernelversie: %3 %4 Title - Naam + Titel Path @@ -7841,30 +8751,38 @@ Kernelversie: %3 %4 Edit Entry… - Item bewerken... + Item bewerken… Delete Entry(s)… - Item(s) verwijderen...Item(s) verwijderen... + Item verwijderen…Items verwijderen… Exclude from reports Uitsluiten van rapportage + + Only show entries that have a URL + Toon alleen items met een URL + + + Only show entries that have been explicitly allowed or denied + Toon alleen items die expliciet zijn toegestaan of geweigerd + + + Show expired entries + Verlopen items tonen + + + (Expired) + (Verlopen) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - Verlopen items uitsluiten van het rapport - - - Also show entries that have been excluded from reports - Toon ook vermeldingen die zijn uitgesloten van rapportage - Hover over reason to show additional details. Double-click entries to edit. - Positioneer de muis boven een item om aanvullende details weer te geven. Dubbelklik een items om het te bewerken. + Positioneer de muis boven een item om aanvullende details weer te geven. Dubbelklik om het te bewerken. Bad @@ -7878,11 +8796,11 @@ Kernelversie: %3 %4 Poor Password quality - Slecht + Matig Poor — password should be changed - Mager — wachtwoord moet worden gewijzigd + Matig — wachtwoord zou moeten worden gewijzigd Weak @@ -7903,7 +8821,7 @@ Kernelversie: %3 %4 Please wait, health data is being calculated… - Even geduld, gezondheidsgegevens worden verzameld... + Even geduld, gezondheidsgegevens worden verzameld… Congratulations, everything is healthy! @@ -7911,7 +8829,7 @@ Kernelversie: %3 %4 Title - Naam + Titel Path @@ -7927,22 +8845,34 @@ Kernelversie: %3 %4 Edit Entry… - Item bewerken... + Item bewerken… Delete Entry(s)… - Item(s) verwijderen...Item(s) verwijderen... + Item verwijderen…Items verwijderen… Exclude from reports Uitsluiten van rapportage + + Show expired entries + Verlopen items tonen + + + Show entries that have been excluded from reports + Toon items die zijn uitgesloten van rapporten + + + (Expired) + (Verlopen) + ReportsWidgetHibp CAUTION: This report requires sending information to the Have I Been Pwned online service (https://haveibeenpwned.com). If you proceed, your database passwords will be cryptographically hashed and the first five characters of those hashes will be sent securely to this service. Your database remains secure and cannot be reconstituted from this information. However, the number of passwords you send and your IP address will be exposed to this service. - LET OP: Voor deze rapportage wordt informatie verzonden naar de online dienst Have I Been Pwned (HIBP) (https://haveibeenpwned.com). Als je doorgaat, worden je databasewachtwoorden cryptografisch gehasht en worden de eerste vijf tekens van die hashes op veilige wijze verzonden naar deze dienst. Jouw database blijft veilig en kan uit deze informatie niet worden samengesteld. Het aantal wachtwoorden dat je verzendt en je IP-adres worden wel blootgesteld aan deze dienst. + LET OP: Voor deze rapportage wordt informatie verzonden naar de online dienst Have I Been Pwned (HIBP) (https://haveibeenpwned.com). Als je doorgaat, worden je databasewachtwoorden cryptografisch gehasht en worden de eerste vijf tekens van die controlegetallen op veilige wijze verzonden naar deze dienst. Jouw database blijft veilig en kan uit deze informatie niet worden samengesteld. Het aantal wachtwoorden dat je verzendt en je IP-adres worden wel blootgesteld aan deze dienst. Perform Online Analysis @@ -7958,11 +8888,11 @@ Kernelversie: %3 %4 Congratulations, no exposed passwords! - Gefeliciteerd, geen gelekte wachtwoorden! + Gefeliciteerd, geen blootgestelde wachtwoorden! Title - Naam + Titel Path @@ -7970,7 +8900,7 @@ Kernelversie: %3 %4 Password exposed… - Gelekte wachtwoorden... + Wachtwoorden blootgesteld... (Excluded) @@ -7983,7 +8913,7 @@ Kernelversie: %3 %4 once Password exposure amount - eenmalig + een keer up to 10 times @@ -8013,26 +8943,85 @@ Kernelversie: %3 %4 up to a million times Password exposure amount - tot miljoen keer + tot 1 miljoen keer millions of times Password exposure amount - miljoen keer + miljoenen keren Edit Entry… - Item bewerken... + Item bewerken… Delete Entry(s)… - Item(s) verwijderen...Item(s) verwijderen... + Item verwijderen...Items verwijderen… Exclude from reports Uitsluiten van rapportage + + ReportsWidgetPasskeys + + Export + Exporteren + + + Import + Importeren + + + List of entry URLs + Lijst met item-URLs + + + Please wait, list of entries with Passkeys is being updated… + Even geduld, de lijst met items met Passkeys wordt bijgewerkt… + + + No entries with Passkeys. + Geen items met Passkeys. + + + Title + Titel + + + Path + Pad + + + Username + Gebruikersnaam + + + URLs + URLs + + + Edit Entry… + Item bewerken… + + + Delete Entry(s)… + Item verwijderen…Items verwijderen… + + + Relying Party + Vertrouwende partij + + + Show expired entries + Verlopen items tonen + + + (Expired) + (Verlopen) + + ReportsWidgetStatistics @@ -8049,7 +9038,7 @@ Kernelversie: %3 %4 Please wait, database statistics are being calculated… - Even geduld, databasestatistieken worden berekend... + Even geduld, databasestatistieken worden berekend… Database name @@ -8117,11 +9106,11 @@ Kernelversie: %3 %4 Maximum password reuse - Maximaal wachtwoordherbruik + Maximaal hergebruik van wachtwoorden Some passwords are used more than three times. Use unique passwords when possible. - Verscheidene wachtwoorden worden meer dan drie keer gebruikt. Gebruik waar mogelijk unieke wachtwoorden. + Sommige wachtwoorden worden meer dan driemaal gebruikt. Gebruik waar mogelijk unieke wachtwoorden. Number of short passwords @@ -8129,7 +9118,7 @@ Kernelversie: %3 %4 Recommended minimum password length is at least 8 characters. - Aangeraden minimumlengte voor wachtwoorden is 8 tekens. + De aanbevolen minimale wachtwoordlengte is 8 tekens. Number of weak passwords @@ -8145,7 +9134,7 @@ Kernelversie: %3 %4 Excluding entries from reports, e. g. because they are known to have a poor password, isn't necessarily a problem but you should keep an eye on them. - Het uitsluiten van vermeldingen uit rapportage, bijv. omdat al bekend is dat ze een slecht wachtwoord hebben, is niet per se een probleem, maar je moet ze wel in de gaten houden. + Het uitsluiten van items uit rapportage, bijv. omdat al bekend is dat ze een slecht wachtwoord hebben, is niet per se een probleem, maar je moet ze wel in de gaten houden. Average password length @@ -8157,7 +9146,7 @@ Kernelversie: %3 %4 Average password length is less than ten characters. Longer passwords provide more security. - Gemiddeld wachtwoordlengte is minder dan tien tekens. Langere wachtwoorden bieden meer veiligheid. + Gemiddeld wachtwoordlengte is minder dan tien tekens. Langere wachtwoorden bieden meer beveiliging. @@ -8176,15 +9165,15 @@ Kernelversie: %3 %4 Key identity ownership conflict. Refusing to add. - Conflict tussen sleutelidentiteit. Geweigerd. + Conflict van identiteitseigendom. Toevoeging geweigerd. Agent refused this identity. Possible reasons include: - Agent weigerde deze identiteit. Mogelijke redenen zijn onder andere: + Agent weigerde deze identiteit. Mogelijke redenen zijn onder meer: The key has already been added. - De sleutel was al toegevoegd. + De sleutel is al toegevoegd. Restricted lifetime is not supported by the agent (check options). @@ -8211,11 +9200,11 @@ Kernelversie: %3 %4 SearchHelpWidget Search Help - Zoek hulp + Hulp bij zoeken Search terms are as follows: [modifiers][field:]["]term["] - Zoektermen zijn als volgt: [parameters][veld:]["]term["] + Zoektermen zijn als volgt: [modificatoren][veld:]["]term["] Every search term must match (ie, logical AND) @@ -8223,7 +9212,7 @@ Kernelversie: %3 %4 Modifiers - Modifiers + Modificatoren exclude term from results @@ -8270,12 +9259,16 @@ Kernelversie: %3 %4 Search Help - Zoek hulp + Hulp bij zoeken + + + Save Search + Zoekopdracht opslaan Search (%1)… Search placeholder text, %1 is the keyboard shortcut - Zoeken (%1)... + Zoeken (%1)… Case sensitive @@ -8328,7 +9321,7 @@ Kernelversie: %3 %4 Enable KeepassXC Freedesktop.org Secret Service integration - De integratie van KeepassXC Freedesktop.org Secret service inschakelen + De integratie van KeepassXC Freedesktop.org Secret Service inschakelen General @@ -8336,7 +9329,7 @@ Kernelversie: %3 %4 Show notification when passwords are retrieved by clients - Melding weergeven wanneer wachtwoorden worden opgehaald door clients + Melding weergeven wanneer wachtwoorden door clients worden opgehaald <html><head/><body><p>If enabled, any attempt to read a password must be confirmed. Otherwise, clients can read passwords without confirmation when the database is unlocked.</p><p>This option only covers the access to the password of an entry. Clients can always enumerate the items of exposed databases and query their attributes.</p></body></html> @@ -8400,7 +9393,7 @@ Kernelversie: %3 %4 SettingsWidgetKeeShare Active - Activering + Actief Allow KeeShare imports @@ -8412,7 +9405,7 @@ Kernelversie: %3 %4 Allow KeeShare exports - Sta KeeShare exports toe + Exporteren van KeeShare toestaan Allow export @@ -8500,21 +9493,67 @@ Kernelversie: %3 %4 Exporteren naar %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + Dubbelklik op een actie om de sneltoets te wijzigen + + + Shortcut Conflict + Sneltoetsenconflict + + + Filter... + Filteren… + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + Sneltoets %1 conflicteert met '%2'. Sneltoets overschrijven? + + + Reset Shortcuts + Sneltoetsen opnieuw instellen + + TagModel - All - Alle + Clear Search + Zoekopdracht wissen + + + All Entries + Alle items Expired - Verlopen + Verlopen items Weak Passwords Zwakke wachtwoorden + + TagView + + Remove Search + Zoekopdracht verwijderen + + + Remove Tag + Label verwijderen + + + Confirm Remove Tag + Verwijderen van label bevestigen + + + Remove tag "%1" from all entries in this database? + Label “%1†van alle items wilt verwijderen? + + TotpDialog @@ -8527,7 +9566,7 @@ Kernelversie: %3 %4 Expires in <b>%n</b> second(s) - Verloopt in <b>%n</b> seconde(n)Verloopt over <b>%n</b> seconde(n) + Verloopt in <b>%n</b> secondeVerloopt over <b>%n</b> seconden @@ -8543,7 +9582,7 @@ Kernelversie: %3 %4 There was an error creating the QR code. - Er ging iets fout bij het maken van de QR-code. + Er is een fout opgetreden bij het aanmaken van de QR-code. Closing in %1 seconds. @@ -8554,7 +9593,7 @@ Kernelversie: %3 %4 TotpSetupDialog Setup TOTP - TOTP-instellen + TOTP instellen Secret Key: @@ -8570,11 +9609,11 @@ Kernelversie: %3 %4 Default settings (RFC 6238) - Standaard instellingen (RFC 6238) + Standaard-instellingen (RFC 6238) Steam® settings - Steam® instellingen + Steam®-instellingen Custom settings: @@ -8594,7 +9633,7 @@ Kernelversie: %3 %4 Time step field - Tijd-stap veld + Tijdsinterval veld sec @@ -8621,7 +9660,7 @@ Voorbeeld: JBSWY3DPEHPK3PXP Confirm Remove TOTP Settings - Bevestig het verwijderen van de TOTP instellingen + Verwijderen van TOTP-instellingen bevestigen Are you sure you want to delete TOTP settings for this entry? @@ -8663,34 +9702,14 @@ Voorbeeld: JBSWY3DPEHPK3PXP You have the latest version of KeePassXC - Je hebt de laatste versie van KeePassXC + Je hebt de meest recente versie van KeePassXC WelcomeWidget Start storing your passwords securely in a KeePassXC database - Sla jouw wachtwoorden veilig op in een KeePassXC-database - - - Create new database - Nieuwe database aanmaken - - - Open existing database - Bestaande database openen - - - Import from KeePass 1 - Importeren vanuit Keepass 1-database - - - Import from 1Password - Van 1Password importeren - - - Import from CSV - Importeren vanuit CSV-bestand + Sla je wachtwoorden veilig op in een KeePassXC-database Recent databases @@ -8704,6 +9723,18 @@ Voorbeeld: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Welkom bij KeePassXC %1 + + Create Database + Database aanmaken + + + Open Database + Database openen + + + Import File + + WinUtils @@ -8713,60 +9744,29 @@ Voorbeeld: JBSWY3DPEHPK3PXP Global shortcut already registered to %1 - Globale snelkoppeling is al geregistreerd bij %1 + Algemene sneltoets is al toegekend aan %1 Could not register global shortcut - Kan algemene snelkoppeling niet registreren - - - - WindowsHello - - Failed to init KeePassXC crypto. - Kan KeePassXC crypto niet initiëren. - - - Failed to encrypt key data. - Sleutelgegevens kunnen niet worden versleuteld. - - - Failed to get Windows Hello credential. - Kan geen Windows Hello-referenties ophalen. - - - Failed to decrypt key data. - Kan sleutelgegevens niet decoderen. + Algemene sneltoets is niet vastgelegd YubiKey - - %1 No interface, slot %2 - %1 Geen interface, positie %2 - General: Algemeen: Could not find interface for hardware key with serial number %1. Please connect it to continue. - Kan interface voor hardwaresleutel met serienummer %1 niet vinden. Sluit het aan om door te gaan. + Geen interface voor hardwaresleutel met serienummer %1. Sluit het aan om door te gaan. YubiKeyEditWidget - - Refresh hardware tokens - Hardwaretoken verversen - - - Refresh - Vernieuwen - Hardware key slot selection - Hardwaresleutel positie selectie + Selectie hardwaresleutel-positie Could not find any hardware keys! @@ -8774,7 +9774,7 @@ Voorbeeld: JBSWY3DPEHPK3PXP Selected hardware key slot does not support challenge-response! - Geselecteerde hardwaresleutel-positie ondersteunt geen challenge-respons! + Geselecteerde hardwaresleutel-positie ondersteunt geen challenge-response! Challenge-Response @@ -8796,55 +9796,59 @@ Voorbeeld: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove Challenge-Response ingesteld, klik om te wijzigen of te verwijderen - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>Als je een <a href="https://www.yubico.com/">YubiKey</a> of <a href="https://onlykey.io">OnlyKey</a> bezit, kun je deze gebruiken voor extra beveiliging.</p><p>De sleutel vereist dat een van zijn posities (slots) wordt geprogrammeerd als <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - Detecting hardware keys… - Hardwaresleutels detecteren... + Hardwaresleutels detecteren… No hardware keys detected Geen hardwaresleutels gedetecteerd - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 Ongeldige positie opgegeven - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + <p>Als je een <a href="https://www.yubico.com/">YubiKey</a> of <a href="https://onlykey.io">OnlyKey</a> bezit, kun je deze gebruiken voor extra beveiliging.</p><p>De sleutel vereist dat een van zijn posities (slots) wordt geprogrammeerd als <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + Refresh hardware keys + Hardwaresleutels vernieuwen YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] Challenge-Response - Positie %3 - The YubiKey PCSC interface has not been initialized. De YubiKey PCSC-interface is niet geïnitialiseerd. - - Hardware key is currently in use. - Hardwaresleutel is momenteel in gebruik. - Could not find or access hardware key with serial number %1. Please present it to continue. - Kan hardwaresleutel met serienummer %1 niet vinden of openen. Presenteer de hardwaresleutel om door te gaan. + Hardwaresleutel met serienummer %1 niet gevonden of geopend. Bied deze aan om door te gaan. Hardware key is locked or timed out. Unlock or re-present it to continue. - De hardwaresleutel is vergrendeld of er is een time-out. Ontgrendel of presenteer het opnieuw om door te gaan. + De hardwaresleutel is vergrendeld of er is een time-out. Ontgrendel deze of bied hem opnieuw aan om door te gaan. Hardware key was not found or is not configured. - De hardwaresleutel is niet gevonden of is niet geconfigureerd. + De hardwaresleutel is niet aangetroffen of is niet geconfigureerd. Failed to complete a challenge-response, the PCSC error code was: %1 - De challenge-response is mislukt, de PCSC fout was: %1 + De challenge-response is niet volbracht. PCSC foutcode: %1 + + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + (NFC) %1 [%2] - Positie %3, %4 + + + Press + USB Challenge-Response Key interaction request + Drukken + + + Passive + USB Challenge-Response Key no interaction required + Passief @@ -8853,18 +9857,10 @@ Voorbeeld: JBSWY3DPEHPK3PXP Unknown Onbekend - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] Geconfigureerde positie - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] Challenge-Respons - Positie %3 - %4 - Press USB Challenge-Response Key interaction request - Druk + Drukken Passive @@ -8873,19 +9869,15 @@ Voorbeeld: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. - De YubiKey USB interface is niet geïnitialiseerd. - - - Hardware key is currently in use. - Hardwaresleutel is momenteel in gebruik. + De YubiKey USB-interface is niet geïnitialiseerd. Could not find hardware key with serial number %1. Please plug it in to continue. - Hardwaresleutel met serienummer %1 niet gevonden. Sluit deze aan om door te gaan. + Hardwaresleutel met serienummer %1 niet aangetroffen. Sluit deze aan om door te gaan. Hardware key timed out waiting for user interaction. - Er is een time-out opgetreden voor de hardwaresleutel tijdens het wachten op gebruikersinteractie. + Time-out bij de hardwaresleutel in afwachting van gebruikersinteractie. A USB error occurred when accessing the hardware key: %1 @@ -8893,7 +9885,17 @@ Voorbeeld: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 - Challenge-response is niet voltooid, de specifieke fout was: %1 + De challenge-response is niet volbracht. De specifieke fout was: %1 + + + %1 [%2] - Slot %3 + YubiKey NEO display fields + %1 [%2] - Positie %3 + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + %1 [%2] - Positie %3, %4 \ No newline at end of file diff --git a/share/translations/keepassxc_pl.ts b/share/translations/keepassxc_pl.ts index 5d25aeb95..d38bd1ff3 100644 --- a/share/translations/keepassxc_pl.ts +++ b/share/translations/keepassxc_pl.ts @@ -80,6 +80,10 @@ Details Szczegóły + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Twoja decyzja zostanie zapamiÄ™tana na czas, gdy zarówno klient żądajÄ…cy, jak i KeePassXC bÄ™dÄ… uruchomione. + Remember ZapamiÄ™taj @@ -88,10 +92,6 @@ Allow Selected Zezwól wybranym - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - Twoja decyzja zostanie zapamiÄ™tana na czas, gdy zarówno klient żądajÄ…cy, jak i KeePassXC bÄ™dÄ… uruchomione. - Deny All && Future Odmów wszystkim i przyszÅ‚ym @@ -112,7 +112,7 @@ AgentSettingsWidget Enable SSH Agent integration - Włącz integracjÄ™ agenta SSH + Włącz integracjÄ™ z agentem SSH Use Pageant @@ -122,6 +122,10 @@ Use OpenSSH Użyj OpenSSH + + Use both agents + Użyj obu agentów + SSH_AUTH_SOCK override ZastÄ…pienie SSH_AUTH_SOCK @@ -150,10 +154,6 @@ SSH Agent connection is working! Połączenie agenta SSH dziaÅ‚a! - - Use both agents - Użyj obu agentów - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security BezpieczeÅ„stwo + + This setting cannot be enabled when minimize on unlock is enabled. + To ustawienie nie może być włączone, gdy włączona jest opcja minimalizacji przy odblokowaniu. + Access error for config file %1 Błąd dostÄ™pu pliku konfiguracyjnego %1 @@ -256,6 +260,10 @@ Remember previously used databases PamiÄ™taj wczeÅ›niej używane bazy danych + + recent files + ostatnie pliki + Load previously open databases on startup ZaÅ‚aduj wczeÅ›niej otwarte bazy danych podczas uruchamiania @@ -408,6 +416,10 @@ Toolbar button style: Styl przycisków paska narzÄ™dzi: + + Show passwords in color + Pokaż hasÅ‚a w kolorze + Use monospaced font for notes Użyj czcionek o staÅ‚ej szerokoÅ›ci w notatkach @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons Użyj usÅ‚ugi DuckDuckGo do pobierania ikon witryn + + Hide TOTP in the entry preview panel + Ukryj TOTP w panelu podglÄ…du wpisu + AutoType @@ -603,7 +619,7 @@ KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. - KeePassXC wymaga uprawnieÅ„ DostÄ™pnoÅ›ci i Rejestratora ekranu w celu wykonania globalnego autowpisywania. Nagrywanie ekranu jest konieczne, aby użyć tytuÅ‚u okna do odnajdywania wpisów. JeÅ›li już udzieliÅ‚eÅ› uprawnieÅ„, być może bÄ™dziesz musiaÅ‚ zrestartować KeePassXC. + KeePassXC wymaga uprawnieÅ„ dostÄ™pnoÅ›ci i rejestratora ekranu w celu wykonania globalnego autowpisywania. Nagrywanie ekranu jest konieczne, aby użyć tytuÅ‚u okna do odnajdywania wpisów. JeÅ›li już udzielono uprawnieÅ„, być może bÄ™dzie wymagane ponowne uruchomienie KeePassXC. Invalid entry provided @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 Wykryto bardzo duże opóźnienie, maksimum to %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + Wpis nie ma atrybutu dla PICKCHARS: %1 + Invalid conversion type: %1 NieprawidÅ‚owy typ konwersji: %1 @@ -804,13 +824,13 @@ Ctrl+4 - Użyj klawiatury wirtualnej (tylko Windows)</p> Disable for this site Wyłącz dla tej witryny + + Undo + Cofnij + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - Zapisz wpis KeePassXC-Browser - Ok OK @@ -825,25 +845,78 @@ Please select the correct database for saving credentials. Masz wiele otwartych baz danych. Wybierz wÅ‚aÅ›ciwÄ… bazÄ™ danych do zapisania danych uwierzytelniajÄ…cych. + + KeePassXC - Select Database + KeePassXC - Wybierz bazÄ™ danych + + + + BrowserPasskeysConfirmationDialog + + Cancel + Anuluj + + + Update + Zaktualizuj + + + Authenticate + Uwierzytelnij + + + Register new + Zarejestruj nowy + + + Register + Zarejestruj + + + Timeout in <b>%n</b> seconds... + Limit czasu za <b>%n</b> sekundÄ™...Limit czasu za <b>%n</b> sekundy...Limit czasu za <b>%n</b> sekund...Limit czasu za <b>%n</b> sekund... + + + Do you want to register Passkey for: + Czy chcesz zarejestrować klucz dostÄ™pu dla: + + + Existing Passkey found. +Do you want to register a new Passkey for: + Znaleziono istniejÄ…cy klucz dostÄ™pu. +Czy chcesz zarejestrować nowy klucz dostÄ™pu dla: + + + Select the existing Passkey and press Update to replace it. + Wybierz istniejÄ…cy klucz dostÄ™pu i naciÅ›nij przycisk Zaktualizuj, aby go zastÄ…pić. + + + Authenticate Passkey credentials for: + Uwierzytelnij dane uwierzytelniajÄ…ce klucza dostÄ™pu dla: + + + Relying Party: %1 + Strona ufajÄ…ca: %1 + + + Username: %1 + Nazwa użytkownika: %1 + + + KeePassXC - Passkey credentials + KeePassXC - Dane uwierzytelniajÄ…ce klucza dostÄ™pu + BrowserService - - KeePassXC: Create a new group - KeePassXC: Utwórz nowÄ… grupÄ™ - A request for creating a new group "%1" has been received. Do you want to create this group? Otrzymano żądanie utworzenia nowej grupy "%1". -Czy chcesz stworzyć tÄ™ grupÄ™? +Czy chcesz utworzyć tÄ™ grupÄ™? - - KeePassXC: New key association request - KeePassXC: Nowe żądanie skojarzenia klucza - You have received an association request for the following database: %1 @@ -860,28 +933,16 @@ chrome-laptop. Save and allow access Zapisz i zezwól na dostÄ™p - - KeePassXC: Overwrite existing key? - KeePassXC: Nadpisać istniejÄ…cy klucz? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? Współdzielony klucz szyfrujÄ…cy o nazwie "%1" już istnieje. Czy chcesz go nadpisać? - - KeePassXC: Update Entry - KeePassXC: Aktualizacja wpisu - Do you want to update the information in %1 - %2? Czy chcesz uaktualnić informacjÄ™ w %1 - %2? - - KeePassXC: Delete entry - KeePassXC: UsuÅ„ wpis - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -891,50 +952,46 @@ Czy chcesz usunąć wpis? - Converting attributes to custom data… - Konwertowanie atrybutów na niestandardowe dane... + %1 (Passkey) + %1 (klucz dostÄ™pu) - Abort - Zaniechaj + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + Wpis ma już klucz dostÄ™pu. +Czy chcesz zastÄ…pić klucz dostÄ™pu w %1 - %2? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Przekonwertowane atrybuty KeePassHTTP + KeePassXC - Create a new group + KeePassXC - Utwórz nowÄ… grupÄ™ - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - PomyÅ›lnie przekonwertowano atrybuty z %1 wpis(ów). -Przeniesiono %2 klucze do niestandardowych danych. - - - Successfully moved %n keys to custom data. - PomyÅ›lnie przeniesiono %n klucz do niestandardowych danych.PomyÅ›lnie przeniesiono %n klucze do niestandardowych danych.PomyÅ›lnie przeniesiono %n kluczy do niestandardowych danych.PomyÅ›lnie przeniesiono %n kluczy do niestandardowych danych. + Disable + Wyłącz - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Nie znaleziono wpisu z atrybutami KeePassHTTP! + KeePassXC - Overwrite existing key? + KeePassXC - ZastÄ…pić istniejÄ…cy klucz? - The active database does not contain an entry with KeePassHTTP attributes. - Aktywna baza danych nie zawiera wpisu z atrybutami KeePassHTTP. + KeePassXC - Update Passkey + KeePassXC - Zaktualizuj klucz dostÄ™pu - Don't show this warning again - Nie wyÅ›wietlaj ponownie tego ostrzeżenia + KeePassXC - Update Entry + KeePassXC - Zaktualizuj wpis - KeePassXC: Legacy browser integration settings detected - KeePassXC: Wykryto ustawienia przestarzaÅ‚ej integracji z przeglÄ…darkÄ… + KeePassXC - Delete entry + KeePassXC - UsuÅ„ wpis - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Twoje ustawienia KeePassXC-Browser należy przenieść do ustawieÅ„ bazy danych. -Jest to konieczne, aby utrzymać bieżące połączenia przeglÄ…darki. -Czy chcesz teraz migrować istniejÄ…ce ustawienia? + KeePassXC - New key association request + KeePassXC - Nowa proÅ›ba o skojarzenie klucza + + + Passkey + Klucz dostÄ™pu @@ -1078,20 +1135,20 @@ Czy chcesz teraz migrować istniejÄ…ce ustawienia? Use a custom proxy location if you installed a proxy manually. - Używaj niestandardowej lokalizacji proxy, jeżeli zostaÅ‚a zainstalowana rÄ™cznie. + Używaj lokalizacji niestandardowego proxy, jeżeli zostaÅ‚ zainstalowana rÄ™cznie. Use a custom proxy location: Meant is the proxy for KeePassXC-Browser - Używaj niestandardowej lokalizacji proxy: + Używaj lokalizacji niestandardowego proxy: Custom proxy location field - Niestandardowe pole lokalizacji proxy + Pole lokalizacji niestandardowego proxy Browser for custom proxy file - PrzeglÄ…darka niestandardowego pliku proxy + PrzeglÄ…daj plik niestandardowego proxy Browse… @@ -1132,24 +1189,16 @@ Czy chcesz teraz migrować istniejÄ…ce ustawienia? Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 - Ze wzglÄ™du na sandboxing Snap należy uruchomić skrypt, aby umożliwić integracjÄ™ przeglÄ…darki.<br />Możesz uzyskać ten skrypt z %1 + Ze wzglÄ™du na sandboxing Snap należy uruchomić skrypt, aby umożliwić integracjÄ™ z przeglÄ…darkÄ….<br />Możesz uzyskać ten skrypt z %1 KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2 and %3. %4 - KeePassXC-Browser jest niezbÄ™dny do integracji przeglÄ…darki. <br />Pobierz go dla %1 oraz %2 i %3. %4 + KeePassXC-Browser jest niezbÄ™dny do integracji z przeglÄ…darkÄ…. <br />Pobierz go dla %1 oraz %2 i %3. %4 Please see special instructions for browser extension use below Zobacz poniżej specjalne instrukcje dotyczÄ…ce używania rozszerzenia przeglÄ…darki - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Błąd:</b> Nie można znaleźć niestandardowej lokalizacji proxy! Integracja przeglÄ…darki NIE DZIAÅA bez aplikacji proxy. - - - <b>Warning:</b> The following options can be dangerous! - <b>Ostrzeżenie:</b> Poniższe opcje mogÄ… być niebezpieczne! - Executable Files Pliki wykonywalne @@ -1160,12 +1209,44 @@ Czy chcesz teraz migrować istniejÄ…ce ustawienia? Select custom proxy location - Wybierz niestandardowÄ… lokalizacjÄ™ proxy + Wybierz lokalizacjÄ™ niestandardowego proxy Select native messaging host folder location Wybierz lokalizacjÄ™ folderu hosta wiadomoÅ›ci natywnych + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + Zezwól keepassxc-proxy na wyÅ›wietlanie wszystkich wpisów wraz z tytuÅ‚em, adresem URL i identyfikatorem UUID w podłączonych bazach danych. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + Zezwól na ograniczony dostÄ™p do wszystkich wpisów w podłączonych bazach danych (ignoruje ograniczenia dostÄ™pu do witryny) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Ostrzeżenie:</b> Dostosowuj te ustawienia tylko w razie potrzeby. + + + The custom proxy location does not exist. + Lokalizacja niestandardowego proxy nie istnieje. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Błąd:</b> Lokalizacja niestandardowego proxy nie istnieje. Popraw to na karcie ustawieÅ„ zaawansowanych. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Błąd:</b> Brak pliku wykonywalnego zainstalowanego proxy w oczekiwanej lokalizacji: %1<br/>Ustaw lokalizacjÄ™ niestandardowego proxy w ustawieniach zaawansowanych lub zainstaluj ponownie aplikacjÄ™. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + Umożliwia używanie niezabezpieczonego http://localhost z kluczami dostÄ™pu do celów testowych. + + + Allow using localhost with Passkeys + Zezwalaj na używanie localhost z kluczami dostÄ™pu + CloneDialog @@ -1175,7 +1256,7 @@ Czy chcesz teraz migrować istniejÄ…ce ustawienia? Append ' - Clone' to title - Dodaj ' - Klon' do nazwy + Dodaj ' - klon' do nazwy Replace username and password with references @@ -1188,14 +1269,6 @@ Czy chcesz teraz migrować istniejÄ…ce ustawienia? CsvImportWidget - - Import CSV fields - Importuj pola CSV - - - filename - nazwa pliku - size, rows, columns rozmiar, wiersze, kolumny @@ -1234,7 +1307,7 @@ Czy chcesz teraz migrować istniejÄ…ce ustawienia? Created - Stworzone + Utworzono Last Modified @@ -1304,50 +1377,29 @@ Czy chcesz teraz migrować istniejÄ…ce ustawienia? Column %1 Kolumna %1 - - Imported from CSV file - Importowane z pliku CSV - - - Original data: - Oryginalne dane: - - - Error(s) detected in CSV file! - Wykryto błąd lub błędy w pliku CSV! - [%n more message(s) skipped] [%n wiÄ™cej komunikat pominiÄ™to] [%n wiÄ™cej komunikatów pominiÄ™to] [%n wiÄ™cej komunikatów pominiÄ™to] [%n wiÄ™cej komunikatów pominiÄ™to] - Error - Błąd + Failed to parse CSV file: %1 + Nie udaÅ‚o siÄ™ przeanalizować pliku CSV: %1 - CSV import: writer has errors: -%1 - Import CSV: zapisywanie z błędami: -%1 + Imported from CSV file: %1 + Zaimportowano z pliku CSV: %1 CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n bajt%n bajty%n bajtów%n bajtów - %n row(s) + CSV row count %n rzÄ…d%n rzÄ™dy%n rzÄ™dów%n rzÄ™dów %n column(s) + CSV column count %n kolumna%n kolumny%n kolumn%n kolumn @@ -1422,40 +1474,10 @@ Zapasowa baza danych znajduje siÄ™ w %2 Password field Pole hasÅ‚a - - Enter Additional Credentials (if any): - Wprowadź dodatkowe dane uwierzytelniajÄ…ce (jeÅ›li istniejÄ…): - - - Key File: - Plik klucza: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>Oprócz hasÅ‚a głównego można użyć pliku sekretnego w celu zwiÄ™kszenia bezpieczeÅ„stwa bazy danych. Ten plik można wygenerować w ustawieniach zabezpieczeÅ„ bazy danych.</p><p>To <strong>nie</strong> jest plik bazy danych *. kdbx!<br>JeÅ›li nie masz pliku klucza, pozostaw to pole puste.</p><p>Kliknij, aby uzyskać wiÄ™cej informacji…</p> - - - Key file help - Pomoc dotyczÄ…ca pliku klucza - Hardware key slot selection Wybór gniazda klucza sprzÄ™towego - - Hardware Key: - Klucz sprzÄ™towy: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>Możesz użyć sprzÄ™towego klucza bezpieczeÅ„stwa, takiego jak <strong>YubiKey</strong> albo <strong>OnlyKey</strong> z gniazdami skonfigurowanymi dla HMAC-SHA1.</p> -<p>Kliknij, aby uzyskać wiÄ™cej informacji…</p> - - - Hardware key help - Pomoc klucza sprzÄ™towego - Key file to unlock the database Plik klucza do odblokowania bazy danych @@ -1468,14 +1490,6 @@ Zapasowa baza danych znajduje siÄ™ w %2 Browse… PrzeglÄ…daj… - - Refresh hardware tokens - OdÅ›wież tokeny sprzÄ™towe - - - Refresh - OdÅ›wież - Unlock Database Odblokuj bazÄ™ danych @@ -1538,14 +1552,6 @@ Aby zapobiec pojawianiu siÄ™ tego błędu, musisz przejść do "Ustawienia Retry with empty password Spróbuj ponownie z pustym hasÅ‚em - - Failed to authenticate with Windows Hello - Nie udaÅ‚o siÄ™ uwierzytelnić za pomocÄ… Windows Hello - - - Failed to authenticate with Touch ID - Nie udaÅ‚o siÄ™ uwierzytelnić za pomocÄ… Touch ID - Failed to open key file: %1 Nie można otworzyć pliku klucza: %1 @@ -1579,22 +1585,64 @@ Aby zapobiec pojawianiu siÄ™ tego błędu, musisz przejść do "Ustawienia Nie można użyć pliku bazy danych jako pliku klucza - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Nie można użyć pliku bazy danych jako pliku klucza. -JeÅ›li nie masz pliku klucza, pozostaw puste pole. + authenticate to access the database + uwierzytelnij, aby uzyskać dostÄ™p do bazy danych - Detecting hardware keys… - Wykrywanie kluczy sprzÄ™towych… + Failed to authenticate with Quick Unlock: %1 + Nie udaÅ‚o siÄ™ uwierzytelnić za pomocÄ… szybkiego odblokowania: %1 - No hardware keys detected - Nie wykryto kluczy sprzÄ™towych + Select Key File: + Wybierz plik klucza: - Select hardware key… - Wybierz klucz sprzÄ™towy… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + <p>Oprócz hasÅ‚a głównego można użyć pliku sekretnego w celu zwiÄ™kszenia bezpieczeÅ„stwa bazy danych. Ten plik można wygenerować w ustawieniach zabezpieczeÅ„ bazy danych.</p><p>To <strong>nie</strong> jest plik bazy danych *. kdbx!</p> + + + Click to add a key file. + Kliknij, aby dodać plik klucza. + + + <a href="#" style="text-decoration: underline">I have a key file</a> + <a href="#" style="text-decoration: underline">Mam plik klucza</a> + + + Use hardware key [Serial: %1] + Użyj klucza sprzÄ™towego [Numer seryjny: %1] + + + Use hardware key + Użyj klucza sprzÄ™towego + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + Twój plik bazy danych NIE jest plikiem klucza! +JeÅ›li nie masz pliku klucza lub nie wiesz, czym on jest, nie musisz go wybierać. + + + KeePassXC database file selected + Wybrano plik bazy danych KeePassXC + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + Wybrany plik wyglÄ…da jak plik bazy danych. +Plik bazy danych NIE jest plikiem klucza! + +Czy na pewno chcesz kontynuować z tym plikiem? + + + No hardware keys found. + Nie znaleziono kluczy sprzÄ™towych. + + + Refresh Hardware Keys + OdÅ›wież klucze sprzÄ™towe @@ -1606,10 +1654,6 @@ JeÅ›li nie masz pliku klucza, pozostaw puste pole. DatabaseSettingsDialog - - Advanced Settings - Ustawienia zaawansowane - General Ogólne @@ -1641,18 +1685,6 @@ JeÅ›li nie masz pliku klucza, pozostaw puste pole. KeePassXC-Browser settings Ustawienia KeePassXC-Browser - - Convert KeePassHTTP data - Konwertuj dane KeePassHTTP - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - Konwertuj starsze atrybuty KeePassHTTP na niestandardowe dane zgodne z KeePassXC-Browser - - - Refresh database root group ID - OdÅ›wież identyfikator grupy głównej bazy danych - Disconnect all browsers Rozłącz wszystkie przeglÄ…darki @@ -1661,6 +1693,10 @@ JeÅ›li nie masz pliku klucza, pozostaw puste pole. Forget all site-specific settings on entries Zapomnij wszystkie ustawienia witryn dla wpisów + + Refresh database root group ID + OdÅ›wież identyfikator grupy głównej bazy danych + Stored keys Przechowywane klucze @@ -1697,7 +1733,7 @@ Może to uniemożliwić połączenie z wtyczkÄ… przeglÄ…darki. Created - Stworzone + Utworzono Enable Browser Integration to access these settings. @@ -1709,18 +1745,10 @@ This may prevent connection to the browser plugin. Czy na pewno chcesz rozłączyć wszystkie przeglÄ…darki? Może to uniemożliwić połączenie z wtyczkÄ… przeglÄ…darki. - - KeePassXC: No keys found - KeePassXC: Nie znaleziono kluczy - No shared encryption keys found in KeePassXC settings. Nie znaleziono współdzielonych kluczy szyfrujÄ…cych w ustawieniach KeePassXC. - - KeePassXC: Removed keys from database - KeePassXC: UsuniÄ™to klucze z bazy danych - Successfully removed %n encryption key(s) from KeePassXC settings. PomyÅ›lnie usuniÄ™to %n klucz szyfrowania z ustawieÅ„ KeePassXC.PomyÅ›lnie usuniÄ™to %n klucze szyfrowania z ustawieÅ„ KeePassXC.PomyÅ›lnie usuniÄ™to %n kluczy szyfrowania z ustawieÅ„ KeePassXC.PomyÅ›lnie usuniÄ™to %n kluczy szyfrowania z ustawieÅ„ KeePassXC. @@ -1739,32 +1767,14 @@ Uprawnienia dostÄ™pu do wpisów zostanÄ… odwoÅ‚ane. Abort Zaniechaj - - KeePassXC: Removed permissions - KeePassXC: UsuniÄ™to uprawnienia - Successfully removed permissions from %n entry(s). PomyÅ›lnie usuniÄ™to uprawnienia z %n wpisu.PomyÅ›lnie usuniÄ™to uprawnienia z %n wpisów.PomyÅ›lnie usuniÄ™to uprawnienia z %n wpisów.PomyÅ›lnie usuniÄ™to uprawnienia z %n wpisów. - - KeePassXC: No entry with permissions found! - KeePassXC: Nie znaleziono wpisu z uprawnieniami! - The active database does not contain an entry with permissions. Aktywna baza danych nie zawiera wpisu z uprawnieniami. - - Move KeePassHTTP attributes to custom data - PrzenieÅ› atrybuty KeePassHTTP do niestandardowych danych - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Czy na pewno chcesz przekonwertować wszystkie dane przestarzaÅ‚ej integracji z przeglÄ…darkÄ… do najnowszego standardu? -Jest to konieczne, aby zachować zgodność z wtyczkÄ… przeglÄ…darki. - Refresh database ID OdÅ›wież identyfikator bazy danych @@ -1772,9 +1782,29 @@ Jest to konieczne, aby zachować zgodność z wtyczkÄ… przeglÄ…darki. Do you really want refresh the database ID? This is only necessary if your database is a copy of another and the browser extension cannot connect. - Czy naprawdÄ™ chcesz odÅ›wieżyć identyfikator bazy danych? + Czy na pewno chcesz odÅ›wieżyć identyfikator bazy danych? Jest to konieczne tylko wtedy, gdy baza danych jest kopiÄ… innej, a rozszerzenie przeglÄ…darki nie może siÄ™ połączyć. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Konwertuj starsze atrybuty KeePassHTTP na niestandardowe dane zgodne z KeePassXC-Browser + + + No keys found + Nie znaleziono kluczy + + + Removed keys from database + UsuniÄ™to klucze z bazy danych + + + Removed permissions + UsuniÄ™to uprawnienia + + + No entry with permissions found! + Nie znaleziono wpisu z uprawnieniami! + DatabaseSettingsWidgetDatabaseKey @@ -1814,6 +1844,18 @@ Czy na pewno chcesz kontynuować bez hasÅ‚a? Failed to change database credentials Nie udaÅ‚o siÄ™ zmienić danych uwierzytelniajÄ…cych bazy danych + + Weak password + SÅ‚abe hasÅ‚o + + + You must enter a stronger password to protect your database. + Aby chronić bazÄ™ danych, musisz wprowadzić silniejsze hasÅ‚o. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + To jest sÅ‚abe hasÅ‚o! Aby lepiej chronić swoje sekrety, należy wybrać silniejsze hasÅ‚o. + DatabaseSettingsWidgetEncryption @@ -1821,14 +1863,6 @@ Czy na pewno chcesz kontynuować bez hasÅ‚a? Decryption Time: Czas odszyfrowania: - - Change existing decryption time - ZmieÅ„ istniejÄ…cy czas odszyfrowywania - - - Change - ZmieÅ„ - Decryption time in seconds Czas odszyfrowania w sekundach @@ -1895,11 +1929,11 @@ Czy na pewno chcesz kontynuować bez hasÅ‚a? Parallelism: - Paralelizm: + RównolegÅ‚ość: Parallelism - Paralelizm + RównolegÅ‚ość KDBX 4 (recommended) @@ -1909,11 +1943,6 @@ Czy na pewno chcesz kontynuować bez hasÅ‚a? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - niezmieniony - Number of rounds too high Key transformation rounds @@ -1925,7 +1954,7 @@ Czy na pewno chcesz kontynuować bez hasÅ‚a? If you keep this number, your database may take hours, days, or even longer to open. Używasz bardzo dużej liczby rund transformacji klucza z Argon2. -JeÅ›li zachowasz tÄ™ liczbÄ™, otworzenie twojej bazy danych może zająć godziny, dni lub nawet dÅ‚użej. +JeÅ›li zachowasz tÄ™ liczbÄ™, otworzenie Twojej bazy danych może zająć godziny, dni lub nawet dÅ‚użej. Understood, keep number @@ -1946,7 +1975,7 @@ JeÅ›li zachowasz tÄ™ liczbÄ™, otworzenie twojej bazy danych może zająć godzin If you keep this number, your database will not be protected from brute force attacks. Używasz bardzo maÅ‚ej liczby rund transformacji klucza z AES-KDF. -JeÅ›li zachowasz tÄ™ liczbÄ™, twoja baza danych nie bÄ™dzie chroniona przed atakami siÅ‚owymi. +JeÅ›li zachowasz tÄ™ liczbÄ™, Twoja baza danych nie bÄ™dzie chroniona przed atakami siÅ‚owymi. KDF unchanged @@ -1966,6 +1995,18 @@ JeÅ›li zachowasz tÄ™ liczbÄ™, twoja baza danych nie bÄ™dzie chroniona przed atak Threads for parallel execution (KDF settings) wÄ…tek wÄ…tki wÄ…tków wÄ…tków + + Encryption Settings: + Ustawienia szyfrowania: + + + Basic + Podstawowe + + + Advanced + Zaawansowane + DatabaseSettingsWidgetFdoSecrets @@ -2024,18 +2065,10 @@ JeÅ›li zachowasz tÄ™ liczbÄ™, twoja baza danych nie bÄ™dzie chroniona przed atak Maximum number of history items per entry Maksymalna liczba pozycji historii na wpis - - Max. history items: - Maks. liczba wpisów w historii: - Maximum size of history per entry Maksymalny rozmiar historii na wpis - - Max. history size: - Maks. rozmiar historii: - MiB MiB @@ -2060,12 +2093,70 @@ JeÅ›li zachowasz tÄ™ liczbÄ™, twoja baza danych nie bÄ™dzie chroniona przed atak Do you want to delete the current recycle bin and all its contents? This action is not reversible. Czy chcesz usunąć bieżący kosz i całą jego zawartość? -To dziaÅ‚anie jest nieodwracalne. +Ta czynność jest nieodwracalna. (old) (stare) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + Podczas zapisywania tego ustawienia +lub edytowania wpisu najstarsze pozycje +historii wpisu zostanÄ… usuniÄ™te, tak że +pozostanie tylko okreÅ›lona liczba wpisów. + + + Limit the amount of history items per entry to: + Ogranicz liczbÄ™ pozycji historii na wpis do: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + Podczas zapisywania tego ustawienia +lub edytowania wpisu najstarsze pozycje +historii wpisu zostanÄ… usuniÄ™te, tak aby +pozostaÅ‚e pozycje historii sumowaÅ‚y siÄ™ +co najwyżej do okreÅ›lonej wartoÅ›ci. + + + Limit the total size of history items per entry to: + Ogranicz caÅ‚kowity rozmiar pozycji historii na wpis do: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + PrzenieÅ› wpisy do grupy kosza zamiast +usuwać je z bazy danych. Wpisy usuniÄ™te +z kosza sÄ… usuwane z bazy danych. + + + Autosave delay since last change + Opóźnienie autozapisu od ostatniej zmiany + + + Autosave delay + Opóźnienie autozapisu + + + Autosave delay since last change in minutes + Opóźnienie autozapisu od ostatniej zmiany, w minutach + + + min + min + + + Autosave delay since last change checkbox + Pole wyboru opóźnienia autozapisu od ostatniej zmian + DatabaseSettingsWidgetKeeShare @@ -2191,28 +2282,12 @@ Jest to z pewnoÅ›ciÄ… błąd, zgÅ‚oÅ› go programistom. CSV file - plik CSV - - - Select CSV file - Wybierz plik CSV + Plik CSV Merge database Scal bazÄ™ danych - - KeePass 1 database - Baza danych KeePass 1 - - - Open KeePass 1 database - Otwórz bazÄ™ danych KeePass 1 - - - Open OPVault - Otwórz OPVault - Export database to CSV file Eksportuj bazÄ™ danych do pliku CSV @@ -2225,22 +2300,25 @@ Jest to z pewnoÅ›ciÄ… błąd, zgÅ‚oÅ› go programistom. Writing the HTML file failed. Nie udaÅ‚o siÄ™ zapisać pliku HTML. + + Export database to XML file + Eksportuj bazÄ™ danych do pliku XML + + + XML file + Plik XML + + + Writing the XML file failed + Nie udaÅ‚o siÄ™ zapisać pliku XML + Export Confirmation Potwierdzenie eksportu You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - Za chwilÄ™ wyeksportujesz bazÄ™ danych do niezaszyfrowanego pliku. To narazi twoje hasÅ‚a i wrażliwe informacje! JesteÅ› pewien, że chcesz kontynuować? - - - New Database - Nowa baza danych - - - %1 [New Database] - Database tab name modifier - %1 [Nowa baza danych] + Za chwilÄ™ wyeksportujesz bazÄ™ danych do niezaszyfrowanego pliku. To narazi hasÅ‚a i wrażliwe informacje! Czy na pewno chcesz kontynuować? %1 [Locked] @@ -2251,8 +2329,8 @@ Jest to z pewnoÅ›ciÄ… błąd, zgÅ‚oÅ› go programistom. DatabaseWidget - Database Tags - Tagi bazy danych + Searches and Tags + Wyszukiwania i tagi Searching… @@ -2288,7 +2366,7 @@ Jest to z pewnoÅ›ciÄ… błąd, zgÅ‚oÅ› go programistom. Do you really want to delete the group "%1" for good? - Czy na pewno caÅ‚kowicie usunąć grupÄ™ "%1"? + Czy na pewno chcesz caÅ‚kowicie usunąć grupÄ™ "%1"? Move group to recycle bin? @@ -2302,6 +2380,10 @@ Jest to z pewnoÅ›ciÄ… błąd, zgÅ‚oÅ› go programistom. Expired entries WygasÅ‚e wpisy + + Entries expiring within %1 day(s) + Wpisy wygasajÄ… w ciÄ…gu %1 dniaWpisy wygasajÄ… w ciÄ…gu %1 dniWpisy wygasajÄ… w ciÄ…gu %1 dniWpisy wygasajÄ… w ciÄ…gu %1 dni + No current database. Brak bieżącej bazy danych. @@ -2326,6 +2408,18 @@ Jest to z pewnoÅ›ciÄ… błąd, zgÅ‚oÅ› go programistom. No Results Brak wyników + + Save + Zapisz + + + Enter a unique name or overwrite an existing search from the list: + Wprowadź unikalnÄ… nazwÄ™ lub zastÄ…p istniejÄ…ce wyszukiwanie z listy: + + + Save Search + Zapisz wyszukiwanie + Lock Database? Zablokować bazÄ™ danych? @@ -2337,7 +2431,7 @@ Jest to z pewnoÅ›ciÄ… błąd, zgÅ‚oÅ› go programistom. "%1" was modified. Save changes? - "%1" zostaÅ‚ zmieniony. + "%1" zostaÅ‚a zmodyfikowana. Zapisać zmiany? @@ -2366,7 +2460,7 @@ Zapisać zmiany? The database file has changed and you have unsaved changes. Do you want to merge your changes? Plik bazy danych zostaÅ‚ zmieniony, a masz niezapisane zmiany. -Czy chcesz scalić twoje zmiany? +Czy chcesz scalić Twoje zmiany? Could not open the new database file while attempting to autoreload. @@ -2410,15 +2504,20 @@ Wyłączyć bezpieczne zapisywanie i spróbować ponownie? Are you sure you want to permanently delete everything from your recycle bin? - Czy na pewno chcesz nieodwracalnie usunąć wszystko z twojego kosza? + Czy na pewno chcesz nieodwracalnie usunąć wszystko z kosza? Could not find database file: %1 Nie można znaleźć pliku bazy danych: %1 - - Entries expiring within %1 day(s) - Wpisy wygasajÄ… w ciÄ…gu %1 dniaWpisy wygasajÄ… w ciÄ…gu %1 dniWpisy wygasajÄ… w ciÄ…gu %1 dniWpisy wygasajÄ… w ciÄ…gu %1 dni + + New Database + Nowa baza danych + + + %1 [New Database] + Database tab name modifier + %1 [Nowa baza danych] @@ -2561,6 +2660,10 @@ Czy chcesz go poprawić? Hide Ukryj + + %n hour(s) + %n godzina%n godziny%n godzin%n godzin + %n week(s) %n tydzieÅ„%n tygodnie%n tygodni%n tygodni @@ -2573,10 +2676,6 @@ Czy chcesz go poprawić? %n year(s) %n rok%n lata%n lat%n lat - - %n hour(s) - %n godzina%n godziny%n godzin%n godzin - EditEntryWidgetAdvanced @@ -2646,11 +2745,11 @@ Czy chcesz go poprawić? Foreground Color: - Kolor pierwszego planu: + Kolor tekstu: Foreground color selection - Wybór koloru pierwszego planu + Wybór koloru tekstu Background Color: @@ -2685,7 +2784,7 @@ Czy chcesz go poprawić? Window Associations - Skojarzenia okna + Skojarzenia okien Existing window associations @@ -2695,10 +2794,20 @@ Czy chcesz go poprawić? Add new window association Dodaj nowe skojarzenie okna + + + + Add item + + + Remove selected window association UsuÅ„ wybrane skojarzenie okna + + - + Remove item + - + Window title: TytuÅ‚ okna: @@ -2717,22 +2826,12 @@ Czy chcesz go poprawić? Use a specific sequence for this association: - Użyj okreÅ›lonej sekwencji dla tego powiÄ…zania: + Użyj okreÅ›lonej sekwencji dla tego skojarzenia: Custom Auto-Type sequence for this window Niestandardowa sekwencja autowpisywania dla tego okna - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2834,22 +2933,10 @@ Czy chcesz go poprawić? Notes field Pole notatek - - Toggle the checkbox to reveal the notes section. - Przełącz pole wyboru, aby wyÅ›wietlić sekcjÄ™ notatek. - Username field Pole nazwy użytkownika - - Toggle notes visible - Przełącz widoczność notatek - - - Notes: - Notatki: - Expiration field Pole wygaÅ›niÄ™cia @@ -2866,14 +2953,6 @@ Czy chcesz go poprawić? Presets Ustawienia - - Password: - HasÅ‚o: - - - URL: - Adres URL: - Url field Pole adresu URL @@ -2882,18 +2961,10 @@ Czy chcesz go poprawić? Download favicon for URL Pobierz ikonÄ™ ulubionych dla adresu URL - - Title: - TytuÅ‚: - Title field Pole tytuÅ‚u - - Username: - Użytkownik: - Password field Pole hasÅ‚a @@ -2902,18 +2973,42 @@ Czy chcesz go poprawić? Toggle expiration Przełącz wygasanie - - Expires: - Wygasa: - - - Tags: - Tagi: - Tags list Lista tagów + + &Username: + &Nazwa użytkownika: + + + &Title: + &TytuÅ‚: + + + &Password: + &HasÅ‚o: + + + UR&L: + Adres UR&L: + + + &Notes: + &Notatki: + + + Toggle notes visibility + Przełącz widoczność notatek + + + T&ags: + T&agi: + + + &Expires: + &Wygasa: + EditEntryWidgetSSHAgent @@ -2953,19 +3048,6 @@ Czy chcesz go poprawić? Private key Klucz prywatny - - External file - Plik zewnÄ™trzny - - - Browser for key file - PrzeglÄ…daj plik klucza - - - Browse… - Button for opening file dialog - PrzeglÄ…daj… - Attachment Załącznik @@ -2982,6 +3064,23 @@ Czy chcesz go poprawić? Remove from agent UsuÅ„ z agenta + + External file + Plik zewnÄ™trzny + + + Browser for key file + PrzeglÄ…daj plik klucza + + + Browse… + Button for opening file dialog + PrzeglÄ…daj… + + + Generate + Wygeneruj + Select attachment file Wybierz plik załącznika @@ -3017,10 +3116,6 @@ Czy chcesz go poprawić? Icon Ikona - - Browser Integration - Integracja z przeglÄ…darkÄ… - Properties WÅ‚aÅ›ciwoÅ›ci @@ -3037,6 +3132,10 @@ Czy chcesz go poprawić? Group has unsaved changes Grupa ma niezapisane zmiany + + Browser Integration + Integracja z przeglÄ…darkÄ… + Enable Włącz @@ -3052,10 +3151,6 @@ Czy chcesz go poprawić? EditGroupWidgetBrowser - - Edit Group - Edytuj grupÄ™ - These settings affect to the group's behaviour with the browser extension. Te ustawienia wpÅ‚ywajÄ… na zachowanie grupy z rozszerzeniem przeglÄ…darki. @@ -3066,7 +3161,7 @@ Czy chcesz go poprawić? Hide entries from browser extension toggle for this and sub groups - Ukryj wpisy przed przełączeniem rozszerzenia przeglÄ…darki dla tej i podgrup + Przełączenie ukrywania wpisów przed rozszerzeniem przeglÄ…darki dla tej i podgrup Skip Auto-Submit for entries: @@ -3074,7 +3169,7 @@ Czy chcesz go poprawić? Skip Auto-Submit toggle for this and sub groups - PomiÅ„ przełączenie autoprzesyÅ‚ania dla tej i podgrup + Przełączenie pomijania autoprzesyÅ‚ania dla tej i podgrup Use entries only with HTTP Basic Auth: @@ -3082,7 +3177,7 @@ Czy chcesz go poprawić? Only HTTP Auth toggle for this and sub groups - Tylko przełączenie uwierzytelniania HTTP dla tej i podgrup + Przełączenie tylko uwierzytelniania HTTP dla tej i podgrup Do not use entries with HTTP Basic Auth: @@ -3090,7 +3185,23 @@ Czy chcesz go poprawić? Do not use HTTP Auth toggle for this and sub groups - Nie używaj przełączenia uwierzytelniania HTTP dla tej i podgrup + Przełączenie nieużywania uwierzytelniania HTTP dla tej i podgrup + + + Omit WWW subdomain from matching: + PomiÅ„ subdomenÄ™ WWW w dopasowaniu: + + + Omit WWW subdomain from matching toggle for this and sub groups + Przełączenie pomijania subdomeny WWW w dopasowaniu dla tej i podgrup + + + Restrict matching to given browser key: + Ogranicz dopasowanie do danego klucza przeglÄ…darki: + + + Restrict matching to given browser key toggle for this and sub groups + Ogranicz dopasowanie do danego przełącznika klucza przeglÄ…darki dla tej i podgrup @@ -3324,10 +3435,6 @@ ObsÅ‚ugiwane rozszerzenia to: %1. Unable to fetch favicon. Nie można pobrać ikony ulubionych. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Możesz włączyć usÅ‚ugÄ™ ikon witryn DuckDuckGo w menu NarzÄ™dzia -> Ustawienia -> BezpieczeÅ„stwo - Existing icon selected. Wybrano istniejÄ…cÄ… ikonÄ™. @@ -3360,32 +3467,36 @@ ObsÅ‚ugiwane rozszerzenia to: %1. The following icon(s) failed: Niepowodzenie nastÄ™pujÄ…cej ikony:Niepowodzenie nastÄ™pujÄ…cych ikon:Niepowodzenie nastÄ™pujÄ…cych ikon:Niepowodzenie nastÄ™pujÄ…cych ikon: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + Możesz włączyć usÅ‚ugÄ™ ikon witryn DuckDuckGo w Ustawienia aplikacji -> BezpieczeÅ„stwo + EditWidgetProperties Created: - Stworzone: + Utworzono: Datetime created - Utworzono datÄ™ i godzinÄ™ + Data i godzina utworzenia Modified: - Modyfikowane: + Modyfikowano: Datetime modified - Zmodyfikowano datÄ™ i godzinÄ™ + Data i godzina modyfikowania Accessed: - Ostatnio używane: + DostÄ™p: Datetime accessed - Ostatnio używano datÄ™ i godzinÄ™ + Data i godzina dostÄ™pu Uuid: @@ -3734,15 +3845,15 @@ Błąd: %1 Created - Stworzone + Utworzono Modified - Modyfikowane + Modyfikowano Accessed - Ostatnio używane + DostÄ™p Attachments @@ -3800,6 +3911,10 @@ Błąd: %1 Has TOTP Ma TOTP + + Background Color + Kolor tÅ‚a + EntryPreviewWidget @@ -3820,8 +3935,8 @@ Błąd: %1 HasÅ‚o - Notes - Notatki + URL + Adres URL Expiration @@ -3840,8 +3955,8 @@ Błąd: %1 Użytkownik - URL - Adres URL + Notes + Notatki Advanced @@ -3891,6 +4006,10 @@ Błąd: %1 Never Nigdy + + Double click to copy value + Kliknij dwukrotnie, aby skopiować wartość + Enabled Włączone @@ -3899,6 +4018,10 @@ Błąd: %1 Disabled Wyłączone + + Double click to copy to clipboard + Kliknij dwukrotnie, aby skopiować do schowka + EntryURLModel @@ -3906,6 +4029,10 @@ Błąd: %1 Invalid URL NieprawidÅ‚owy adres URL + + Duplicate URL + Zduplikowany adres URL + EntryView @@ -3921,6 +4048,10 @@ Błąd: %1 Reset to defaults Przywróć domyÅ›lne + + + %1 entry(s)... + + %1 wpis...+ %1 wpisy...+ %1 wpisów...+ %1 wpisów... + ExportDialog @@ -3992,7 +4123,7 @@ To narazi Twoje hasÅ‚a i poufne informacje na niebezpieczeÅ„stwo! Another secret service is running (%1).<br/>Please stop/remove it before re-enabling the Secret Service Integration. - Uruchomiona jest inna usÅ‚uga sekretna (%1). Zatrzymaj jÄ…/usuÅ„ przed ponownym włączeniem Integracji usÅ‚ugi sekretnej. + Uruchomiona jest inna usÅ‚uga sekretna (%1). Zatrzymaj jÄ…/usuÅ„ przed ponownym włączeniem integracji z usÅ‚ugÄ… sekretnÄ…. Failed to register DBus service at %1.<br/> @@ -4142,6 +4273,147 @@ Możesz włączyć usÅ‚ugÄ™ ikon witryn DuckDuckGo w sekcji bezpieczeÅ„stwa usta Pobieranie ikon ulubionych (%1/%2)… + + ImportWizard + + Import Wizard + Kreator importu + + + + ImportWizardPageReview + + WizardPage + WizardPage + + + Entry count: %1 + Liczba wpisów: %1 + + + Group + Grupa + + + Title + TytuÅ‚ + + + Username + Użytkownik + + + Password + HasÅ‚o + + + Url + Adres URL + + + + ImportWizardPageSelect + + Form + Formularz + + + Import File Selection + Wybór pliku importu + + + Password: + HasÅ‚o: + + + Key File: + Plik klucza: + + + Browse… + PrzeglÄ…daj… + + + Import Into: + Importuj do: + + + New Database + Nowa baza danych + + + No unlocked databases available + Brak dostÄ™pnych odblokowanych baz danych + + + Existing Database: + IstniejÄ…ca baza danych: + + + Import File: + Importuj plik: + + + Comma Separated Values (.csv) + WartoÅ›ci rozdzielane przecinkami (.csv) + + + 1Password Export (.1pux) + Eksport 1Password (.1pux) + + + 1Password Vault (.opvault) + Sejf 1Password (.opvault) + + + Bitwarden (.json) + Bitwarden (.json) + + + KeePass 1 Database (.kdb) + Baza danych KeePass 1 (.kdb) + + + Open OPVault + Otwórz OPVault + + + Select import file + Wybierz plik importu + + + All files + Wszystkie pliki + + + Key files + Pliki kluczy + + + Select key file + Wybierz plik klucza + + + Comma Separated Values + WartoÅ›ci rozdzielane przecinkami + + + 1Password Export + Eksport 1Password + + + Bitwarden JSON Export + Eksport JSON Bitwarden + + + 1Password Vault + Sejf 1Password + + + KeePass1 Database + Baza danych KeePass 1 + + KMessageWidget @@ -4576,17 +4848,6 @@ Wiersz %2, kolumna %3 Nie udaÅ‚o siÄ™ otworzyć klucza prywatnego - - KeePass1OpenWidget - - Import KeePass1 Database - Importuj bazÄ™ danych KeePass1 - - - Unable to open the database. - Nie można otworzyć bazy danych. - - KeePass1Reader @@ -4930,7 +5191,7 @@ Czy na pewno chcesz kontynuować z tym plikiem? Could not register global shortcut - Nie udaÅ‚o siÄ™ zarejestrować skrótu globalnego + Nie można zarejestrować skrótu globalnego @@ -4943,10 +5204,6 @@ Czy na pewno chcesz kontynuować z tym plikiem? &Recent Databases &Ostatnie bazy danych - - &Import - &Importuj - &Export &Eksportuj @@ -4967,6 +5224,10 @@ Czy na pewno chcesz kontynuować z tym plikiem? TOTP TOTP + + Tags + Tagi + &Groups &Grupy @@ -5011,34 +5272,18 @@ Czy na pewno chcesz kontynuować z tym plikiem? &New Database… &Nowa baza danych… - - Create a new database - Stwórz nowÄ… bazÄ™ danych - &Merge From Database… &Scal z bazÄ… danych… - - Merge from another KDBX database - Scal z innÄ… bazÄ… KDBX - &New Entry… &Nowy wpis… - - Add a new entry - Dodaj nowy wpis - &Edit Entry… &Edytuj wpis… - - View or edit entry - PodglÄ…d lub edycja wpisu - &Delete Entry… &UsuÅ„ wpis… @@ -5047,10 +5292,6 @@ Czy na pewno chcesz kontynuować z tym plikiem? &New Group… &Nowa grupa… - - Add a new group - Dodaj nowÄ… grupÄ™ - &Edit Group… &Edytuj grupę… @@ -5083,18 +5324,10 @@ Czy na pewno chcesz kontynuować z tym plikiem? Database &Reports… &Raporty bazy danych… - - Statistics, health check, etc. - Statystyka, kontrola zdrowia itp. - &Database Settings… Ustawienia bazy &danych… - - Database settings - Ustawienia bazy danych - &Clone Entry… &Sklonuj wpis… @@ -5103,41 +5336,25 @@ Czy na pewno chcesz kontynuować z tym plikiem? Move u&p PrzesuÅ„ w &górÄ™ - - Move entry one step up - PrzesuÅ„ wpis o jeden krok w górÄ™ - Move do&wn PrzesuÅ„ w &dół - - Move entry one step down - PrzesuÅ„ wpis o jeden krok w dół - Copy &Username Skopi&uj nazwÄ™ użytkownika - - Copy username to clipboard - Skopiuj użytkownika do schowka - Copy &Password Skopiuj &hasÅ‚o - - Copy password to clipboard - Skopiuj hasÅ‚o do schowka - &Settings &Ustawienia &Password Generator - &Generator hasÅ‚a + &Generator haseÅ‚ Perform &Auto-Type @@ -5164,25 +5381,13 @@ Czy na pewno chcesz kontynuować z tym plikiem? &TytuÅ‚ - Copy title to clipboard - Skopiuj tytuÅ‚ do schowka - - - &URL - Adres &URL - - - Copy URL to clipboard - Skopiuj adres URL do schowka + Copy &URL + Skopiuj adres &URL &Notes &Notatki - - Copy notes to clipboard - Skopiuj notatki do schowka - &CSV File… Plik &CSV… @@ -5195,26 +5400,14 @@ Czy na pewno chcesz kontynuować z tym plikiem? KeePass 1 Database… Baza danych KeePass 1… - - Import a KeePass 1 database - Importuj bazÄ™ danych KeePass 1 - 1Password Vault… Sejf 1Password… - - Import a 1Password Vault - Importuj sejf 1Password - CSV File… Plik CSV… - - Import a CSV file - Importuj plik CSV - Show TOTP Pokaż TOTP @@ -5231,6 +5424,10 @@ Czy na pewno chcesz kontynuować z tym plikiem? Copy &TOTP Skopiuj &TOTP + + Copy Password and TOTP + Skopiuj hasÅ‚o i TOTP + E&mpty recycle bin Opróżnij k&osz @@ -5255,10 +5452,6 @@ Czy na pewno chcesz kontynuować z tym plikiem? &Online Help Po&moc online - - Go to online documentation - Przejdź do dokumentacji online - &User Guide PodrÄ™cznik uż&ytkownika @@ -5327,6 +5520,10 @@ Czy na pewno chcesz kontynuować z tym plikiem? Clone Group... Sklonuj grupÄ™... + + &XML File… + Plik &XML… + Clear history Wyczyść historiÄ™ @@ -5359,6 +5556,10 @@ We recommend you use the AppImage available on our downloads page. OSTRZEÅ»ENIE: Twoja wersja Qt może powodować awarie KeePassXC z klawiaturÄ… ekranowÄ…. Zalecamy korzystanie z AppImage dostÄ™pnego na naszej stronie pobierania. + + No Tags + Bez tagów + Restore Entry(s) Przywróć wpisPrzywróć wpisyPrzywróć wpisyPrzywróć wpisy @@ -5387,6 +5588,10 @@ Zalecamy korzystanie z AppImage dostÄ™pnego na naszej stronie pobierania.Quit KeePassXC ZakoÅ„cz KeePassXC + + %1 Entry(s) + %1 wpis%1 wpisy%1 wpisów%1 wpisów + Please present or touch your YubiKey to continue… ProszÄ™ okazać lub dotknąć swój YubiKey, aby kontynuować… @@ -5399,6 +5604,274 @@ Zalecamy korzystanie z AppImage dostÄ™pnego na naszej stronie pobierania.You must restart the application to apply this setting. Would you like to restart now? Musisz uruchomić ponownie aplikacjÄ™, aby zastosować to ustawienie. Czy chcesz teraz to zrobić? + + Allow Screen Capture + Zezwól na przechwytywanie ekranu + + + 1Password 1PUX... + 1PUX 1Password... + + + Import a 1Password 1PUX file + Importuj plik 1PUX 1Password + + + Import… + Importuj… + + + Passkeys… + Klucz dostÄ™pu… + + + Import Passkey + Importuj klucz dostÄ™pu + + + Quit Application + ZakoÅ„cz aplikacjÄ™ + + + Open About Dialog + Otwórz okno dialogowe o programie + + + Open Database + Otwórz bazÄ™ danych + + + Create Database + Utwórz bazÄ™ danych + + + Merge From Database + Scal z bazÄ… danych + + + Create Entry + Utwórz wpis + + + Edit Entry + Edytuj wpis + + + Delete Entry + UsuÅ„ wpis + + + Create Group + Utwórz grupÄ™ + + + Edit Group + Edytuj grupÄ™ + + + Delete Group + UsuÅ„ grupÄ™ + + + Download All Favicons + Pobierz wszystkie ikony ulubionych + + + Sort Groups A-Z + Sortuj grupy A-Z + + + Sort Groups Z-A + Sortuj grupy Z-A + + + Save Database As + Zapisz bazÄ™ danych jako + + + Show Database Security + Pokaż bezpieczeÅ„stwo bazy danych + + + Show Database Reports + Pokaż raporty bazy danych + + + Show Database Settings + Pokaż ustawienia bazy danych + + + Show Passkeys + Pokaż klucze dostÄ™pu + + + Clone Entry + Sklonuj wpis + + + Move Entry Up + PrzesuÅ„ wpis w górÄ™ + + + Move Entry Down + PrzesuÅ„ wpis w dół + + + Copy Username + Skopiuj nazwÄ™ użytkownika + + + Copy Password + Skopiuj hasÅ‚o + + + Show Application Settings + Pokaż ustawienia aplikacji + + + Show Password Generator + Pokaż generator haseÅ‚ + + + Perform Auto-Type: {USERNAME} + Wykonaj autowpisywanie: {USERNAME} + + + Perform Auto-Type: {USERNAME}{ENTER} + Wykonaj autowpisywanie: {USERNAME}{ENTER} + + + Perform Auto-Type: {PASSWORD} + Wykonaj autowpisywanie: {PASSWORD} + + + Perform Auto-Type: {PASSWORD}{ENTER} + Wykonaj autowpisywanie: {PASSWORD}{ENTER} + + + Perform Auto-Type: {TOTP} + Wykonaj autowpisywanie: {TOTP} + + + Copy Title + Skopiuj tytuÅ‚ + + + Copy URL + Skopiuj adres URL + + + Copy Notes + Skopiuj notatki + + + Export to CSV + Eksportuj do CSV + + + Export to HTML + Eksportuj do HTML + + + Import KeePass1 Database + Importuj bazÄ™ danych KeePass1 + + + Import 1Password Vault + Importuj sejf 1Password + + + Import CSV File + Importuj plik CSV + + + Show TOTP QR Code + Pokaż kod QR TOTP + + + Set up TOTP + Ustaw TOTP + + + Empty Recycle Bin + Opróżnij kosz + + + Open Donation Website + Otwórz witrynÄ™ wspomagania + + + Open Bug Report + Otwórz raport o błędzie + + + Open Online Documentation + Otwórz dokumentacjÄ™ online + + + Open Keyboard Shortcuts Guide + Otwórz przewodnik po skrótach klawiaturowych + + + Save Database Backup + Zapisz kopiÄ™ zapasowÄ… bazy danych + + + SSH Agent: Add Key + Agent SSH: Dodaj klucz + + + SSH Agent: Remove Key + Agent SSH: UsuÅ„ klucz + + + Toggle Compact Mode + Przełącz tryb kompaktowy + + + Set Theme: Automatic + Ustaw motyw: Automatyczny + + + Set Theme: Light + Ustaw motyw: Jasny + + + Set Theme: Dark + Ustaw motyw: Ciemny + + + Set Theme: Classic + Ustaw motyw: Klasyczny + + + Toggle Show Toolbar + Przełącz pokazywanie paska narzÄ™dzi + + + Toggle Show Preview Panel + Przełącz pokazywanie panelu podglÄ…du + + + Toggle Always on Top + Przełącz zawsze na wierzchu + + + Toggle Hide Usernames + Przełącz ukrywanie użytkowników + + + Toggle Hide Passwords + Przełącz ukrywanie haseÅ‚ + + + Export to XML + Eksportuj do XML + + + Toggle Allow Screen Capture + Przełącz zezwalanie na przechwytywanie ekranu + ManageDatabase @@ -5456,26 +5929,6 @@ Zalecamy korzystanie z AppImage dostÄ™pnego na naszej stronie pobierania.Overwriting %1 [%2] Nadpisywanie %1 [%2] - - older entry merged from database "%1" - starszy wpis scalony z bazy danych "%1" - - - Adding backup for older target %1 [%2] - Dodawanie kopii zapasowej dla starszego celu %1 [%2] - - - Adding backup for older source %1 [%2] - Dodawanie kopii zapasowej dla starszego źródÅ‚a %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Ponowne stosowanie starszego wpisu docelowego na nowszym źródle %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Ponowne stosowanie starszego wpisu źródÅ‚owego na nowszym celu %1 [%2] - Synchronizing from newer source %1 [%2] Synchronizacja z nowszego źródÅ‚a %1 [%2] @@ -5535,14 +5988,6 @@ Zalecamy korzystanie z AppImage dostÄ™pnego na naszej stronie pobierania.Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Tutaj możesz dostosować ustawienia szyfrowania bazy danych. Nie martw siÄ™, możesz je później zmienić w ustawieniach bazy danych. - - Advanced Settings - Ustawienia zaawansowane - - - Simple Settings - Ustawienia proste - NewDatabaseWizardPageDatabaseKey @@ -5589,7 +6034,7 @@ Zalecamy korzystanie z AppImage dostÄ™pnego na naszej stronie pobierania. Could not register global shortcut - Nie udaÅ‚o siÄ™ zarejestrować skrótu globalnego + Nie można zarejestrować skrótu globalnego @@ -5623,15 +6068,6 @@ Zalecamy korzystanie z AppImage dostÄ™pnego na naszej stronie pobierania.Oczekiwano %1 bajtów czystego tekstu, znaleziono %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Odczyt bazy danych nie wytworzyÅ‚ wystÄ…pienia -%1 - - OpVaultReader @@ -5705,6 +6141,10 @@ Zalecamy korzystanie z AppImage dostÄ™pnego na naszej stronie pobierania.Unknown cipher: %1 Nieznany szyfr: %1 + + AES-256/GCM is currently not supported + AES-256/GCM nie jest obecnie obsÅ‚ugiwany + Passphrase is required to decrypt this key Do odszyfrowania tego klucza wymagane jest hasÅ‚o @@ -5771,26 +6211,177 @@ Zalecamy korzystanie z AppImage dostÄ™pnego na naszej stronie pobierania. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - HasÅ‚a nie sÄ… zgodne + SSH Key Generator + Generator kluczy SSH - Passwords match so far - HasÅ‚a sÄ… do tej pory zgodne + Type + Typ - Toggle Password (%1) - Przełącz hasÅ‚o (%1) + Bits + Bity - Generate Password (%1) - Wygeneruj hasÅ‚o (%1) + Comment + Komentarz + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - Eksport kluczy dostÄ™pu - Warning: Caps Lock enabled! - Ostrzeżenie: włączony Caps Lock! + Export the following Passkey entries. + Eksportuj nastÄ™pujÄ…ce wpisy klucza dostÄ™pu. + + + Filenames will be generated with title and .passkey file extension. + Nazwy plików zostanÄ… wygenerowane z tytuÅ‚em i rozszerzeniem pliku .passkey. + + + Export entries + Eksportuj wpisy + + + Export Selected + Eksportuj wybrane + + + Cancel + Anuluj + + + Export to folder + Eksportuj do folderu + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: Eksport kluczy dostÄ™pu + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + Plik "%1.passkey" już istnieje. +Czy chcesz go zastÄ…pić? + + + Cannot open file + Nie można otworzyć pliku + + + Cannot open file "%1" for writing. + Nie można otworzyć pliku "%1" do zapisu. + + + Cannot write to file + Nie można zapisać do pliku + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - Import kluczy dostÄ™pu + + + Username: %1 + Nazwa użytkownika: %1 + + + Group + Grupa + + + Database + Baza danych + + + Import Passkey + Importuj klucz dostÄ™pu + + + Import + Importuj + + + Cancel + Anuluj + + + Import the following Passkey: + Importuj nastÄ™pujÄ…cy klucz dostÄ™pu: + + + Entry + Wpis + + + Import the following Passkey to this entry: + Importuj nastÄ™pujÄ…cy klucz dostÄ™pu do tego wpisu: + + + Create new entry + Utwórz nowy wpis + + + Default Passkeys group (Imported Passkeys) + DomyÅ›lna grupa kluczy dostÄ™pu (importowane klucze dostÄ™pu) + + + Relying Party: %1 + Strona ufajÄ…ca: %1 + + + + PasskeyImporter + + Passkey file + Plik klucza dostÄ™pu + + + All files + Wszystkie pliki + + + Open Passkey file + Otwórz plik klucza dostÄ™pu + + + Cannot open file + Nie można otworzyć pliku + + + Cannot open file "%1" for reading. + Nie można otworzyć pliku "%1" do odczytu. + + + Cannot import Passkey + Nie można zaimportować klucza dostÄ™pu + + + Cannot import Passkey file "%1". Data is missing. + Nie można zaimportować pliku klucza dostÄ™pu "%1". Brak danych. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + Nie można zaimportować pliku klucza dostÄ™pu "%1". Brak klucza prywatnego lub jest on źle sformatowany. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + Nie można zaimportować pliku klucza dostÄ™pu "%1". +Brakuje nastÄ™pujÄ…cych danych: +%2 @@ -5833,7 +6424,7 @@ Zalecamy korzystanie z AppImage dostÄ™pnego na naszej stronie pobierania. <p>A password is the primary method for securing your database.</p><p>Good passwords are long and unique. KeePassXC can generate one for you.</p> - <p>HasÅ‚o jest podstawowÄ… metodÄ… zabezpieczania bazy danych.</p><p>Dobre hasÅ‚a sÄ… dÅ‚ugie i niepowtarzalne. KeePassXC może je wygenerować dla ciebie.</p> + <p>HasÅ‚o jest podstawowÄ… metodÄ… zabezpieczania bazy danych.</p><p>Dobre hasÅ‚a sÄ… dÅ‚ugie i niepowtarzalne. KeePassXC może je dla Ciebie wygenerować.</p> Passwords do not match. @@ -6055,6 +6646,30 @@ Zalecamy korzystanie z AppImage dostÄ™pnego na naszej stronie pobierania.Entropy: %1 bit Entropia: %1 bity + + Password Quality: %1 + Jakość hasÅ‚a: %1 + + + Poor + Password quality + Uboga + + + Weak + Password quality + SÅ‚aba + + + Good + Password quality + Dobra + + + Excellent + Password quality + Znakomita + Confirm Delete Wordlist Potwierdź usuniÄ™cie listy słów @@ -6087,7 +6702,7 @@ Zalecamy korzystanie z AppImage dostÄ™pnego na naszej stronie pobierania.Wordlist "%1" already exists as a custom wordlist. Do you want to overwrite it? Lista słów "%1" już istnieje jako niestandardowa lista słów. -Czy chcesz jÄ… nadpisać? +Czy chcesz jÄ… zastÄ…pić? Failed to add wordlist @@ -6101,9 +6716,32 @@ Czy chcesz jÄ… nadpisać? Special Characters Znaki specjalne + + + PasswordWidget - Password Quality: %1 - Jakość hasÅ‚a: %1 + Passwords do not match + HasÅ‚a nie sÄ… zgodne + + + Passwords match so far + HasÅ‚a sÄ… do tej pory zgodne + + + Toggle Password (%1) + Przełącz hasÅ‚o (%1) + + + Generate Password (%1) + Wygeneruj hasÅ‚o (%1) + + + Warning: Caps Lock enabled! + Ostrzeżenie: Włączony Caps Lock! + + + Quality: %1 + Jakość: %1 Poor @@ -6125,6 +6763,10 @@ Czy chcesz jÄ… nadpisać? Password quality Znakomita + + Toggle password visibility using Control + H. Open the password generator using Control + G. + Przełącz widoczność hasÅ‚a za pomocÄ… Control + H. Otwórz generator haseÅ‚ za pomocÄ… Control + G. + PickcharsDialog @@ -6157,7 +6799,7 @@ Czy chcesz jÄ… nadpisać? Empty - Pusty + Opróżnij Remove @@ -6179,6 +6821,10 @@ Czy chcesz jÄ… nadpisać? Continue Kontynuuj + + Continue with weak password + Kontynuuj ze sÅ‚abym hasÅ‚em + QObject @@ -6200,7 +6846,7 @@ Czy chcesz jÄ… nadpisać? Action cancelled or denied - DziaÅ‚anie anulowane lub odrzucone + Czynność anulowana lub odrzucona Message encryption failed. @@ -6216,7 +6862,7 @@ Czy chcesz jÄ… nadpisać? Incorrect action - NieprawidÅ‚owe dziaÅ‚anie + NieprawidÅ‚owa czynność Empty message received @@ -6228,7 +6874,7 @@ Czy chcesz jÄ… nadpisać? No logins found - Nie znaleziono danych do logowania + Nie znaleziono danych logowania No groups found @@ -6288,7 +6934,7 @@ Czy chcesz jÄ… nadpisać? Generate a password for the entry. - Wygeneruj hasÅ‚o dla wpisu. + Wygeneruj hasÅ‚o do wpisu. Add a new entry to a database. @@ -6514,7 +7160,7 @@ Czy chcesz jÄ… nadpisać? ERROR: attribute %1 is ambiguous, it matches %2. - BÅÄ„D: atrybut %1 jest niejednoznaczny, jest zgodny z %2. + BÅÄ„D: Atrybut %1 jest niejednoznaczny, jest zgodny z %2. Attribute "%1" not found. @@ -6572,6 +7218,10 @@ Czy chcesz jÄ… nadpisać? Too many arguments provided. Podano zbyt wiele argumentów. + + Path of the database. + Åšcieżka bazy danych. + Target decryption time in MS for the database. Docelowy czas odszyfrowywania w ms dla bazy danych. @@ -6580,21 +7230,23 @@ Czy chcesz jÄ… nadpisać? time czas + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Ustaw plik klucza do bazy danych. +Ta opcja jest przestarzaÅ‚a, zamiast jej użyj --set-key-file. + Set the key file for the database. - Ustaw plik klucza dla bazy danych. + Ustaw plik klucza do bazy danych. Set a password for the database. - Ustaw hasÅ‚o bazy danych. + Ustaw hasÅ‚o do bazy danych. Create a new database. - Stwórz nowÄ… bazÄ™ danych. - - - Path of the database. - Åšcieżka bazy danych. + Utwórz nowÄ… bazÄ™ danych. Invalid decryption time %1. @@ -6640,6 +7292,158 @@ Czy chcesz jÄ… nadpisać? Successfully created new database. PomyÅ›lnie utworzono nowÄ… bazÄ™ danych. + + Unset the password for the database. + UsuÅ„ hasÅ‚o do bazy danych. + + + Unset the key file for the database. + UsuÅ„ plik klucza do bazy danych. + + + Edit a database. + Edytuj bazÄ™ danych. + + + Cannot use %1 and %2 at the same time. + Nie można jednoczeÅ›nie używać %1 i %2. + + + Could not change the database key. + Nie można zmienić klucza bazy danych. + + + Database was not modified. + Baza danych nie zostaÅ‚a zmodyfikowana. + + + Writing the database failed: %1 + Błąd zapisu bazy danych: %1 + + + Successfully edited the database. + PomyÅ›lnie edytowano bazÄ™ danych. + + + Cannot remove password: The database does not have a password. + Nie można usunąć hasÅ‚a: baza danych nie ma hasÅ‚a. + + + Cannot remove file key: The database does not have a file key. + Nie można usunąć pliku klucza: baza danych nie ma pliku klucza. + + + Loading the new key file failed: %1 + Åadowanie nowego pliku klucza nie powiodÅ‚o siÄ™: %1 + + + Found unexpected Key type %1 + Znaleziono nieoczekiwany typ %1 klucza + + + Cannot remove all the keys from a database. + Nie można usunąć wszystkich kluczy z bazy danych. + + + Show a database's information. + Pokaż informacje o bazie danych. + + + UUID: + UUID: + + + Name: + Nazwa: + + + Description: + Opis: + + + Cipher: + Szyfr: + + + KDF: + KDF: + + + Recycle bin is enabled. + Kosz jest włączony. + + + Recycle bin is not enabled. + Kosz nie jest włączony. + + + Location + Lokalizacja + + + Database created + Utworzono bazÄ™ danych + + + Last saved + Ostatnio zapisane + + + Unsaved changes + Niezapisane zmiany + + + yes + tak + + + no + nie + + + Number of groups + Liczba grup + + + Number of entries + Liczba wpisów + + + Number of expired entries + Liczba wygasÅ‚ych wpisów + + + Unique passwords + Niepowtarzalne hasÅ‚a + + + Non-unique passwords + Powtarzalne hasÅ‚a + + + Maximum password reuse + Maksymalne ponowne użycie hasÅ‚a + + + Number of short passwords + Liczba krótkich haseÅ‚ + + + Number of weak passwords + Liczba sÅ‚abych haseÅ‚ + + + Entries excluded from reports + Wpisy wykluczone z raportów + + + Average password length + Åšrednia dÅ‚ugość hasÅ‚a + + + %1 characters + %1 znaków + Word count for the diceware passphrase. Liczba słów dla hasÅ‚a diceware. @@ -6691,10 +7495,6 @@ Czy chcesz jÄ… nadpisać? Enter new password for entry: Wprowadź nowe hasÅ‚o dls wpisu: - - Writing the database failed: %1 - Błąd zapisu bazy danych: %1 - Successfully edited entry %1. PomyÅ›lnie edytowano wpis %1. @@ -6729,7 +7529,7 @@ Czy chcesz jÄ… nadpisać? Type: Bruteforce - Typ: Bruteforce + Typ: SiÅ‚owy Type: Dictionary @@ -6765,7 +7565,7 @@ Czy chcesz jÄ… nadpisać? Type: Bruteforce(Rep) - Typ: Bruteforce(Powt.) + Typ: SiÅ‚owy(Powt.) Type: Dictionary(Rep) @@ -6919,106 +7719,6 @@ Czy chcesz jÄ… nadpisać? Successfully imported database. PomyÅ›lnie zaimportowano bazÄ™ danych. - - Show a database's information. - Pokaż informacje o bazie danych. - - - UUID: - UUID: - - - Name: - Nazwa: - - - Description: - Opis: - - - Cipher: - Szyfr: - - - KDF: - KDF: - - - Recycle bin is enabled. - Kosz jest włączony. - - - Recycle bin is not enabled. - Kosz nie jest włączony. - - - Location - Lokalizacja - - - Database created - Utworzono bazÄ™ danych - - - Last saved - Ostatnio zapisane - - - Unsaved changes - Niezapisane zmiany - - - yes - tak - - - no - nie - - - Number of groups - Liczba grup - - - Number of entries - Liczba wpisów - - - Number of expired entries - Liczba wygasÅ‚ych wpisów - - - Unique passwords - Niepowtarzalne hasÅ‚a - - - Non-unique passwords - Powtarzalne hasÅ‚a - - - Maximum password reuse - Maksymalne ponowne użycie hasÅ‚a - - - Number of short passwords - Liczba krótkich haseÅ‚ - - - Number of weak passwords - Liczba sÅ‚abych haseÅ‚ - - - Entries excluded from reports - Wpisy wykluczone z raportów - - - Average password length - Åšrednia dÅ‚ugość hasÅ‚a - - - %1 characters - %1 znaków - Unknown command %1 Nieznane polecenie %1 @@ -7067,7 +7767,7 @@ DostÄ™pne polecenia: Use the same credentials for both database files. - Użyj tych samych poÅ›wiadczeÅ„ dla obu plików bazy danych. + Użyj tych samych danych uwierzytelniajÄ…cych dla obu plików bazy danych. Key file of the database to merge from. @@ -7191,6 +7891,10 @@ DostÄ™pne polecenia: Show the protected attributes in clear text. Pokaż chronione atrybuty w postaci zwykÅ‚ego tekstu. + + Show all the attributes of the entry. + Pokaż atrybuty wpisu. + Show the attachments of the entry. Pokaż załączniki wpisu. @@ -7213,7 +7917,7 @@ DostÄ™pne polecenia: ERROR: unknown attribute %1. - BÅÄ„D: nieznany atrybut %1. + BÅÄ„D: Nieznany atrybut %1. No attachments present. @@ -7261,6 +7965,10 @@ Rozważ wygenerowanie nowego pliku klucza. Invalid YubiKey serial %1 NieprawidÅ‚owy numer seryjny YubiKey %1 + + Please present or touch your YubiKey to continue. + ProszÄ™ okazać lub dotknąć YubiKey, aby kontynuować. + Enter password to encrypt database (optional): Wprowadź hasÅ‚o do szyfrowania bazy danych (opcjonalnie): @@ -7275,7 +7983,7 @@ Rozważ wygenerowanie nowego pliku klucza. Error: Passwords do not match. - Błąd: hasÅ‚a nie sÄ… zgodne. + Błąd: HasÅ‚a nie sÄ… zgodne. No program defined for clipboard manipulation @@ -7309,7 +8017,7 @@ Rozważ wygenerowanie nowego pliku klucza. Error: okon process did not finish - Błąd: proces okon nie zakoÅ„czyÅ‚ siÄ™ + Błąd: Proces okon siÄ™ nie zakoÅ„czyÅ‚ Failed to load okon processed database: %1 @@ -7413,7 +8121,7 @@ JÄ…dro: %3 %4 Secret Service Integration - Integracja usÅ‚ugi sekretnej + Integracja z usÅ‚ugÄ… sekretnÄ… None @@ -7448,8 +8156,8 @@ JÄ…dro: %3 %4 %1 minuta%1 minuty%1 minut%1 minut - Botan library must be at least 2.11.x, found %1.%2.%3 - Biblioteka Botan musi być w wersji co najmniej 2.11.x, znaleziono %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + Biblioteka Botan musi być w wersji co najmniej %1, znaleziono %2.%3.%4 Cryptographic libraries: @@ -7581,7 +8289,7 @@ JÄ…dro: %3 %4 Created - Stworzone + Utworzono Benchmark %1 delay @@ -7599,11 +8307,11 @@ JÄ…dro: %3 %4 Do you really want to delete the entry "%1" for good? - Czy na pewno caÅ‚kowicie usunąć wpis "%1" ? + Czy na pewno chcesz caÅ‚kowicie usunąć wpis "%1"? Do you really want to delete %n entry(s) for good? - Czy naprawdÄ™ chcesz usunąć %n wpis na dobre?Czy naprawdÄ™ chcesz usunąć %n wpisy na dobre?Czy naprawdÄ™ chcesz usunąć %n wpisów na dobre?Czy naprawdÄ™ chcesz usunąć %n wpisów na dobre? + Czy na pewno chcesz caÅ‚kowicie usunąć %n wpis?Czy na pewno chcesz caÅ‚kowicie usunąć %n wpisy?Czy na pewno chcesz caÅ‚kowicie usunąć %n wpisów?Czy na pewno chcesz caÅ‚kowicie usunąć %n wpisów? Delete entry(s)? @@ -7647,7 +8355,7 @@ JÄ…dro: %3 %4 Statistics - Statystyka + Statystyki Unsupported key file version: %1 @@ -7689,10 +8397,6 @@ JÄ…dro: %3 %4 read password of the database from stdin odczytaj hasÅ‚o bazy danych z stdin - - allow app screen recordering and screenshots - zezwól na aplikacjÄ™ nagrywania ekranu i zrzuty ekranu - Locked databases. Zablokowane bazy danych. @@ -7705,6 +8409,10 @@ JÄ…dro: %3 %4 Another instance of KeePassXC is already running. Inna instancja KeePassXC jest już uruchomiona. + + KeePassXC is not running. No open database to lock + KeePassXC nie jest uruchomiony. Brak otwartej bazy danych do zablokowania + Fatal error while testing the cryptographic functions. Błąd krytyczny podczas testowania funkcji kryptograficznych. @@ -7713,10 +8421,6 @@ JÄ…dro: %3 %4 KeePassXC - Error KeePassXC - Błąd - - Warning: Failed to prevent screenshots on a top level window! - Ostrzeżenie: Nie udaÅ‚o siÄ™ zapobiec zrzutom ekranu w oknie najwyższego poziomu! - Database password: HasÅ‚o bazy danych: @@ -7740,8 +8444,222 @@ JÄ…dro: %3 %4 Nie udaÅ‚o siÄ™ podpisać wyzwania przy użyciu Windows Hello. - Please present or touch your YubiKey to continue. - ProszÄ™ okazać lub dotknąć YubiKey, aby kontynuować. + Warning: Failed to block screenshot capture on a top-level window. + Ostrzeżenie: Nie udaÅ‚o siÄ™ zablokować przechwytywania ekranu okna najwyższego poziomu. + + + Invalid Cipher + NieprawidÅ‚owy szyfr + + + Invalid KDF + NieprawidÅ‚owa KDF + + + Access to all entries is denied + DostÄ™p do wszystkich wpisów jest zabroniony + + + allow screenshots and app recording (Windows/macOS) + zezwól na zrzuty ekranu i nagrywanie aplikacji (Windows/macOS) + + + Enter Shortcut + Wprowadź skrót + + + Action + Czynność + + + Shortcuts + Skróty + + + Attestation not supported + Atestacja nie jest obsÅ‚ugiwana + + + Credential is excluded + Dane uwierzytelniajÄ…ce sÄ… wyłączone + + + Passkeys request canceled + Żądanie kluczy dostÄ™pu anulowano + + + Invalid user verification + NieprawidÅ‚owa weryfikacja użytkownika + + + Empty public key + Pusty klucz publiczny + + + Invalid URL provided + Podano nieprawidÅ‚owy adres URL + + + Passkeys + Klucze dostÄ™pu + + + AES initialization failed + Inicjalizacja AES nie powiodÅ‚a siÄ™ + + + AES encrypt failed + Szyfrowanie AES nie powiodÅ‚o siÄ™ + + + Failed to store in Linux Keyring + Nie udaÅ‚o siÄ™ zapisać w bazie kluczy systemu Linux + + + Polkit returned an error: %1 + Polkit zwróciÅ‚ błąd: %1 + + + Could not locate key in keyring + Nie można zlokalizować klucza w bazie kluczy + + + Could not read key in keyring + Nie można odczytać klucza w bazie kluczy + + + AES decrypt failed + Odszyfrowanie AES nie powiodÅ‚o siÄ™ + + + No Polkit authentication agent was available + Å»aden agent uwierzytelniajÄ…cy Polkit nie byÅ‚ dostÄ™pny + + + Polkit authorization failed + Uwierzytelnienie Polkit nie powiodÅ‚o siÄ™ + + + No Quick Unlock provider is available + Å»aden dostawca szybkiego odblokowania nie jest dostÄ™pny + + + Failed to init KeePassXC crypto. + Nie udaÅ‚o siÄ™ zainicjować krypto KeePassXC. + + + Failed to encrypt key data. + Nie udaÅ‚o siÄ™ zaszyfrować danych klucza. + + + Failed to get Windows Hello credential. + Nie udaÅ‚o siÄ™ uzyskać danych uwierzytelniajÄ…cych Windows Hello. + + + Failed to decrypt key data. + Nie udaÅ‚o siÄ™ odszyfrować danych klucza. + + + Favorite + Tag for favorite entries + Ulubiony + + + File does not exist. + Plik nie istnieje. + + + Cannot open file: %1 + Nie można otworzyć pliku: %1 + + + Cannot parse file: %1 at position %2 + Nie można przeanalizować pliku: %1 na pozycji %2 + + + Failed to decrypt json file: %1 + Nie udaÅ‚o siÄ™ odszyfrować pliku JSON: %1 + + + Invalid encKeyValidation field + NieprawidÅ‚owe pole encKeyValidation + + + Invalid cipher list within encKeyValidation field + NieprawidÅ‚owa lista szyfrów w polu encKeyValidation + + + Wrong password + NieprawidÅ‚owe hasÅ‚o + + + Invalid encrypted data field + NieprawidÅ‚owe pole zaszyfrowanych danych + + + Invalid cipher list within encrypted data field + NieprawidÅ‚owa lista szyfrów w polu zaszyfrowanych danych + + + Cannot initialize cipher + Nie można zainicjować szyfru + + + Cannot decrypt data + Nie można odszyfrować danych + + + Bitwarden Import + Import Bitwarden + + + Archived + Tag for archived entries + Zarchiwizowane + + + Invalid 1PUX file format: Not a valid ZIP file. + NieprawidÅ‚owy format pliku 1PUX: Nie jest to prawidÅ‚owy plik ZIP. + + + Invalid 1PUX file format: Missing export.data + NieprawidÅ‚owy format pliku 1PUX: Brak export.data + + + 1Password Import + Import 1Password + + + Origin is empty or not allowed + ŹródÅ‚o jest puste lub niedozwolone + + + Effective domain is not a valid domain + Domena efektywna nie jest domenÄ… prawidÅ‚owÄ… + + + Origin and RP ID do not match + ŹródÅ‚o i identyfikator RP nie sÄ… zgodne + + + No supported algorithms were provided + Nie zapewniono obsÅ‚ugiwanych algorytmów + + + Wait for timer to expire + Poczekaj, aż upÅ‚ynie limit czasu + + + Unknown Passkeys error + Nieznany błąd klucza dostÄ™pu + + + Challenge is shorter than required minimum length + Wyzwanie jest krótsze niż wymagana dÅ‚ugość minimalna + + + user.id does not match the required length + user.id nie ma wymaganej dÅ‚ugoÅ›ci @@ -7780,18 +8698,6 @@ JÄ…dro: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - Wyklucz wygasÅ‚e wpisy z raportu - - - Show only entries which have URL set - Pokazuj tylko wpisy z ustawionym adresem URL - - - Show only entries which have browser settings in custom data - Pokazuj tylko wpisy, które majÄ… ustawienia przeglÄ…darki w danych niestandardowych - Double-click entries to edit. Kliknij dwukrotnie wpisy, aby edytować. @@ -7856,17 +8762,25 @@ JÄ…dro: %3 %4 Exclude from reports Wyklucz z raportów + + Only show entries that have a URL + Pokaż tylko wpisy, które majÄ… adres URL + + + Only show entries that have been explicitly allowed or denied + Pokaż tylko te wpisy, które zostaÅ‚y wyraźnie dozwolone lub odrzucone + + + Show expired entries + Pokaż wygasÅ‚e wpisy + + + (Expired) + (WygasÅ‚e) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - Wyklucz wygasÅ‚e wpisy z raportu - - - Also show entries that have been excluded from reports - Pokaż również wpisy, które zostaÅ‚y wykluczone z raportów - Hover over reason to show additional details. Double-click entries to edit. Umieść wskaźnik myszy nad powodem, aby wyÅ›wietlić dodatkowe szczegóły. Kliknij dwukrotnie wpisy, aby edytować. @@ -7942,6 +8856,18 @@ JÄ…dro: %3 %4 Exclude from reports Wyklucz z raportów + + Show expired entries + Pokaż wygasÅ‚e wpisy + + + Show entries that have been excluded from reports + Pokaż wpisy, które zostaÅ‚y wykluczone z raportów + + + (Expired) + (WygasÅ‚e) + ReportsWidgetHibp @@ -8038,6 +8964,65 @@ JÄ…dro: %3 %4 Wyklucz z raportów + + ReportsWidgetPasskeys + + Export + Eksportuj + + + Import + Importuj + + + List of entry URLs + Lista adresów URL wpisu + + + Please wait, list of entries with Passkeys is being updated… + ProszÄ™ czekać, lista wpisów z kluczami dostÄ™pu jest aktualizowana… + + + No entries with Passkeys. + Brak wpisów z kluczami dostÄ™pu. + + + Title + TytuÅ‚ + + + Path + Åšcieżka + + + Username + Użytkownik + + + URLs + Adresy URL + + + Edit Entry… + Edytuj wpis… + + + Delete Entry(s)… + UsuÅ„ wpis…UsuÅ„ wpisy…UsuÅ„ wpisy…UsuÅ„ wpisy… + + + Relying Party + Strona ufajÄ…ca + + + Show expired entries + Pokaż wygasÅ‚e wpisy + + + (Expired) + (WygasÅ‚e) + + ReportsWidgetStatistics @@ -8054,7 +9039,7 @@ JÄ…dro: %3 %4 Please wait, database statistics are being calculated… - ProszÄ™ czekać, statystyki bazy danych sÄ… obliczane… + ProszÄ™ czekać, trwa obliczanie statystyk bazy danych… Database name @@ -8277,6 +9262,10 @@ JÄ…dro: %3 %4 Search Help Przeszukaj pomoc + + Save Search + Zapisz wyszukiwanie + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8416,7 +9405,7 @@ JÄ…dro: %3 %4 Allow import - Zezwól importować + Zezwól na import Allow KeeShare exports @@ -8463,7 +9452,7 @@ JÄ…dro: %3 %4 ShareExport Could not write export container. - Nie udaÅ‚o siÄ™ zapisać kontenera eksportu. + Nie można zapisać kontenera eksportu. @@ -8508,11 +9497,38 @@ JÄ…dro: %3 %4 Eksportuj do %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + Kliknij dwukrotnie czynność, aby zmienić jej skrót + + + Shortcut Conflict + Konflikt skrótów + + + Filter... + Filtr... + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + Skrót %1 powoduje konflikt z '%2'. Nadpisać skrót? + + + Reset Shortcuts + Zresetuj skróty + + TagModel - All - Wszystkie + Clear Search + Wyczyść wyszukiwanie + + + All Entries + Wszystkie wpisy Expired @@ -8523,6 +9539,25 @@ JÄ…dro: %3 %4 SÅ‚abe hasÅ‚a + + TagView + + Remove Search + UsuÅ„ wyszukiwanie + + + Remove Tag + UsuÅ„ tag + + + Confirm Remove Tag + Potwierdź usuniÄ™cie tagu + + + Remove tag "%1" from all entries in this database? + Usunąć tag "%1" ze wszystkich wpisów w tej bazie danych? + + TotpDialog @@ -8615,7 +9650,7 @@ JÄ…dro: %3 %4 digits - cyfry + cyfr Invalid TOTP Secret @@ -8680,29 +9715,9 @@ PrzykÅ‚ad: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Zacznij bezpiecznie przechowywać swoje hasÅ‚a w bazie danych KeePassXC - - Create new database - Stwórz nowÄ… bazÄ™ danych - - - Open existing database - Otwórz istniejÄ…cÄ… bazÄ™ danych - - - Import from KeePass 1 - Importuj z KeePass 1 - - - Import from 1Password - Importuj z 1Password - - - Import from CSV - Importuj z CSV - Recent databases - Niedawne bazy danych + Ostatnie bazy danych Open a recent database @@ -8712,6 +9727,18 @@ PrzykÅ‚ad: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Witaj w KeePassXC %1 + + Create Database + Utwórz bazÄ™ danych + + + Open Database + Otwórz bazÄ™ danych + + + Import File + Importuj plik + WinUtils @@ -8725,34 +9752,11 @@ PrzykÅ‚ad: JBSWY3DPEHPK3PXP Could not register global shortcut - Nie udaÅ‚o siÄ™ zarejestrować skrótu globalnego - - - - WindowsHello - - Failed to init KeePassXC crypto. - Nie udaÅ‚o siÄ™ zainicjować krypto KeePassXC. - - - Failed to encrypt key data. - Nie udaÅ‚o siÄ™ zaszyfrować danych klucza. - - - Failed to get Windows Hello credential. - Nie udaÅ‚o siÄ™ uzyskać danych uwierzytelniajÄ…cych Windows Hello. - - - Failed to decrypt key data. - Nie udaÅ‚o siÄ™ odszyfrować danych klucza. + Nie można zarejestrować skrótu globalnego YubiKey - - %1 No interface, slot %2 - %1 brak interfejsu, gniazdo %2 - General: Ogólne: @@ -8764,14 +9768,6 @@ PrzykÅ‚ad: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - OdÅ›wież tokeny sprzÄ™towe - - - Refresh - OdÅ›wież - Hardware key slot selection Wybór gniazda klucza sprzÄ™towego @@ -8804,10 +9800,6 @@ PrzykÅ‚ad: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove Ustawiono wyzwanie-odpowiedź, kliknij, aby zmienić lub usunąć - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>JeÅ›li jesteÅ› wÅ‚aÅ›cicielem <a href="https://www.yubico.com/">YubiKey</a> lub <a href="https://onlykey.io">OnlyKey</a>, możesz użyć takiego klucza do zwiÄ™kszenia bezpieczeÅ„stwa.</p><p>Wymaga on zaprogramowania jednego z jego gniazd jako <a href="https://www.yubico.com/products/services-software/challenge-response/">wyzwanie-odpowiedź HMAC-SHA1</a>.</p> - Detecting hardware keys… Wykrywanie kluczy sprzÄ™towych… @@ -8816,31 +9808,24 @@ PrzykÅ‚ad: JBSWY3DPEHPK3PXP No hardware keys detected Nie wykryto kluczy sprzÄ™towych - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 okreÅ›lono nieprawidÅ‚owe gniazdo - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + <p>JeÅ›li masz <a href="https://www.yubico.com/">YubiKey</a> lub <a href="https://onlykey.io">OnlyKey</a>, możesz go użyć do zwiÄ™kszenia bezpieczeÅ„stwa.</p><p>Wymaga on zaprogramowania jednego z jego gniazd jako <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">wyzwanie-odpowiedź HMAC-SHA1</a>.</p> + + + Refresh hardware keys + OdÅ›wież klucze sprzÄ™towe YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] wyzwanie-odpowiedź - gniazdo %3 - The YubiKey PCSC interface has not been initialized. Interfejs PCSC YubiKey nie zostaÅ‚ zainicjowany. - - Hardware key is currently in use. - Klucz sprzÄ™towy jest obecnie używany. - Could not find or access hardware key with serial number %1. Please present it to continue. - Nie można znaleźć lub uzyskać dostÄ™pu do klucza sprzÄ™towego o numerze seryjnym %1. ProszÄ™ go okazać, aby kontynuować. + Nie można znaleźć lub uzyskać dostÄ™pu do klucza sprzÄ™towego o numerze seryjnym %1. ProszÄ™ go okazać, aby kontynuować. Hardware key is locked or timed out. Unlock or re-present it to continue. @@ -8854,6 +9839,21 @@ PrzykÅ‚ad: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 Nie można ukoÅ„czyć wyzwania-odpowiedzi, kod błędu PCSC to: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + (NFC) %1 [%2] - Gniazdo %3, %4 + + + Press + USB Challenge-Response Key interaction request + NaciÅ›nij + + + Passive + USB Challenge-Response Key no interaction required + Pasywny + YubiKeyInterfaceUSB @@ -8861,14 +9861,6 @@ PrzykÅ‚ad: JBSWY3DPEHPK3PXP Unknown Nieznany - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] skonfigurowane gniazdo - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] wyzwanie-odpowiedź - gniazdo %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8883,10 +9875,6 @@ PrzykÅ‚ad: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. Interfejs USB YubiKey nie zostaÅ‚ zainicjowany. - - Hardware key is currently in use. - Klucz sprzÄ™towy jest obecnie używany. - Could not find hardware key with serial number %1. Please plug it in to continue. Nie można odnaleźć klucza sprzÄ™towego o numerze seryjnym %1. Podłącz go, aby kontynuować. @@ -8903,5 +9891,15 @@ PrzykÅ‚ad: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 Nie można ukoÅ„czyć wyzwania-odpowiedzi, konkretny błąd to: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + %1 [%2] - Gniazdo %3 + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + %1 [%2] - Gniazdo %3, %4 + \ No newline at end of file diff --git a/share/translations/keepassxc_pt_BR.ts b/share/translations/keepassxc_pt_BR.ts index 49d616e44..3738bce85 100644 --- a/share/translations/keepassxc_pt_BR.ts +++ b/share/translations/keepassxc_pt_BR.ts @@ -31,11 +31,11 @@ <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">See Contributions on GitHub</a> - <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">Ver Colaborações no GitHub</a> + <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">Consulte as colaborações no GitHub</a> Debug Info - Informações de Depuração + Informações de depuração Include the following information whenever you report a bug: @@ -43,7 +43,7 @@ Copy to clipboard - Copiar para a área de transferência + Copia para a área de transferência @@ -80,25 +80,25 @@ Details Detalhes + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + A sua escolha será memorizada enquanto o cliente e o KeePassXC estiverem em execução. + Remember Lembrar Allow Selected - Permitir Selecionados - - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - + Permita os selecionados Deny All && Future - + Recusar agora e futuramente Allow All && &Future - + Permitir agora && &futuramente @@ -122,6 +122,10 @@ Use OpenSSH Usar OpenSSH + + Use both agents + Utilize ambos os agentes + SSH_AUTH_SOCK override Sobrescrever SSH_AUTH_SOCK @@ -150,16 +154,12 @@ SSH Agent connection is working! A conexão com o agente SSH está funcionando corretamente! - - Use both agents - - ApplicationSettingsWidget Application Settings - Configurações do Aplicativo + Configurações do aplicativo General @@ -169,6 +169,10 @@ Security Segurança + + This setting cannot be enabled when minimize on unlock is enabled. + Esta configuração não pode ser habilitada quando minimizar ao desbloquear está habilitado. + Access error for config file %1 Erro de acesso para o arquivo de configuração %1 @@ -215,22 +219,22 @@ Reset Settings? - Restaurar Configurações? + Restaurar as configurações? Are you sure you want to reset all general and security settings to default? - Você tem certeza que deseja restaurar todas as configurações gerais e de segurança para o padrão? + Tem certeza que deseja restaurar todas as configurações gerais e as configurações de segurança para o padrão? Select backup storage directory - Selecione diretório para armazenar o backup + Selecione o diretório onde o backup será armazenado ApplicationSettingsWidgetGeneral Basic Settings - Configurações Básicas + Configurações básicas Startup @@ -256,6 +260,10 @@ Remember previously used databases Lembrar dos bancos de dados usados anteriormente + + recent files + arquivos recentes + Load previously open databases on startup Carregar bancos de dados previamente abertos na inicialização @@ -279,7 +287,7 @@ have expired On database unlock, show entries that... - + Caducou days @@ -293,19 +301,19 @@ File Management - Gerenciamento de Arquivo + Gerenciador de arquivo Automatically save after every change - Salvar automaticamente depois de cada alteração + Salva automaticamente depois de cada alteração Automatically save when locking database - Salvar automaticamente ao bloquear banco de dados + Salva automaticamente ao bloquear banco de dados Automatically save non-data changes when locking database - Salvar automaticamente alterações que não são de dados ao bloquear banco de dados + Salva automaticamente as alterações que não sejam dados ao bloquear o banco de dados Automatically reload the database when modified externally @@ -317,7 +325,7 @@ Backup destination - Destinação do backup + Destino do backup Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". @@ -382,7 +390,7 @@ User Interface - Interface do Usuário + Interface do usuário Toolbar button style @@ -390,7 +398,7 @@ Movable toolbar - Barra de Ferramentas Móvel + Barra de ferramentas móvel Language selection @@ -408,6 +416,10 @@ Toolbar button style: Estilo de botão da barra de ferramentas: + + Show passwords in color + Colorir senhas + Use monospaced font for notes Usar fonte monoespaçada para notas @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons Usar o serviço DuckDuckGo para baixar ícones de websites + + Hide TOTP in the entry preview panel + Ocultar TOTP no painel de visualização da entrada + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 Atraso muito longo detetado, o máximo é %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + A entrada não tem o atributo para PICKCHARS: %1 + Invalid conversion type: %1 Tipo de conversão inválido: %1 @@ -718,7 +738,12 @@ Ctrl+1 - Type username<br/> Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> - + <p>Pode utilizar a pesquisa avançada para localizar as entradas nas suas base de dados abertas. Os atalhos abaixo podem ser úteis:<br/> +Ctrl+F - Alterna a pesquisa nas bases de dados<br/> +Ctrl+1 - Escreve o nome do utilizador<br/> +Ctrl+2 - Escreve a senha +Ctrl+3 - Escreve o TOTP<br/> +Ctrl+4 - Utiliza o teclado virtual (apenas no Windows)</p> Search all open databases @@ -762,7 +787,7 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Use Virtual Keyboard - + Utilize o teclado virtual @@ -799,13 +824,13 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Disable for this site Desabilitar para este site + + Undo + Desfazer + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser Salvar Entrada - Ok Ok @@ -820,13 +845,70 @@ Please select the correct database for saving credentials. Você tem vários bancos de dados abertos. Por favor, selecione o banco de dados correto para salvar as credenciais. + + KeePassXC - Select Database + KeePassXC - Selecionar banco de dados + + + + BrowserPasskeysConfirmationDialog + + Cancel + Cancelar + + + Update + Atualizar + + + Authenticate + Autenticar + + + Register new + Registrar ova + + + Register + Registrar + + + Timeout in <b>%n</b> seconds... + Esgotamento em <b>%n</b> segundos...Esgotamento em <b>%n</b> segundos...Esgotamento em <b>%n</b> segundos... + + + Do you want to register Passkey for: + Você deseja registrar a Passkey para: + + + Existing Passkey found. +Do you want to register a new Passkey for: + Chave de acesso existente encontrada. +Você deseja registrar uma nova Chave de Acesso para: + + + Select the existing Passkey and press Update to replace it. + Selecione a Chave de Acesso existente e pressione Atualizar para substituí-la. + + + Authenticate Passkey credentials for: + Autenticar credenciais de Chave de Acesso para: + + + Relying Party: %1 + + + + Username: %1 + Nome de Usuário: %1 + + + KeePassXC - Passkey credentials + KeePassXC - Credenciais de Chave de Acesso + BrowserService - - KeePassXC: Create a new group - KeePassXC: Crie um novo grupo - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -835,10 +917,6 @@ Do you want to create this group? Você quer criar este grupo? - - KeePassXC: New key association request - KeePassXC: Nova associação de chaves requisitada - You have received an association request for the following database: %1 @@ -855,28 +933,16 @@ chrome-laptop Save and allow access Salvar e permitir acesso - - KeePassXC: Overwrite existing key? - KeePassXC: Substituir chave existente? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? - Uma chave de criptografia compartilhada com o nome "% 1" já existe. + Uma chave de criptografia compartilhada com o nome "%1" já existe. Você deseja sobrescreve-la? - - KeePassXC: Update Entry - KeePassXC: Atualizar entrada - Do you want to update the information in %1 - %2? Deseja atualizar as informações em %1 - %2? - - KeePassXC: Delete entry - KeePassXC: Excluir entrada - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -886,50 +952,46 @@ Você quer excluir a entrada? - Converting attributes to custom data… - Convertendo atributos para dados personalizados... + %1 (Passkey) + %1 (Chave de Acesso) - Abort - Cancelar + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + A entrada já possui uma Chave de Acesso.. +Você deseja substituir a Chave de Acesso em %1 - %2? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Convertido KeePassHTTP atributos + KeePassXC - Create a new group + KeePassXC - Criar um novo grupo - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Atributos convertidos com sucesso de %1 entrada(s). -Movido %2 chaves para dados personalizados. - - - Successfully moved %n keys to custom data. - Movido com sucesso %n chaves para dados personalizados.Movido com sucesso %n chaves para dados personalizados. + Disable + Desabilitar - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Nenhuma entrada com os atributos KeePassHTTP encontrados! + KeePassXC - Overwrite existing key? + KeePassXC - Sobrescrever chave existente? - The active database does not contain an entry with KeePassHTTP attributes. - O banco de dados ativo não contém uma entrada com atributos KeePassHTTP. + KeePassXC - Update Passkey + KeePassXC - Atualizar Chave de Acesso - Don't show this warning again - Não mostrar este alerta novamente + KeePassXC - Update Entry + KeePassXC - Atualizar Entrada - KeePassXC: Legacy browser integration settings detected - KeePassXC: Configurações de integração do navegador herdado detectadas + KeePassXC - Delete entry + KeePassXC - Excluir entrada - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - As configurações do seu navegador KeePassXC precisam ser movidas para as configurações do banco de dados. -Isso é necessário para manter as conexões atuais do navegador. -Gostaria de migrar suas configurações existentes agora? + KeePassXC - New key association request + KeePassXC – Nova solicitação de associação de chave + + + Passkey + @@ -1137,14 +1199,6 @@ Gostaria de migrar suas configurações existentes agora? Please see special instructions for browser extension use below Por favor, veja as instruções especiais para o uso da extensão do navegador abaixo - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Erro:</b> O endereço de proxy personalizado não foi encontrado!<br/>A integração com o navegador NÃO IRà funcionar sem a aplicação de proxy. - - - <b>Warning:</b> The following options can be dangerous! - <b>AVISO:</b> As seguintes opções podem ser perigosas! - Executable Files Arquivos Executáveis @@ -1161,6 +1215,38 @@ Gostaria de migrar suas configurações existentes agora? Select native messaging host folder location Selecione o local da pasta de host de mensagens nativas + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + Permitir que keepassxc-proxy liste todas as entradas com os seus títulos, URL e UUID nos bancos de dados conectados. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + Permitir acesso limitado a todas as entradas nos bancos de dados conectados (ignorar restrições de acesso aos sites) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Aviso:</b> Ajuste essas configurações apenas se necessário. + + + The custom proxy location does not exist. + O local do proxy personalizado não existe. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Erro:</b> O local do proxy personalizado não existe. Corrija isso na guia de configurações avançadas. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + Erro:</b> O executável do proxy instalado está faltando no local esperado: %1<br/>Defina um local de proxy personalizado nas configurações avançadas ou reinstale o aplicativo. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1183,14 +1269,6 @@ Gostaria de migrar suas configurações existentes agora? CsvImportWidget - - Import CSV fields - Importar campos CSV - - - filename - nome do arquivo - size, rows, columns tamanho, linhas, colunas @@ -1299,51 +1377,30 @@ Gostaria de migrar suas configurações existentes agora? Column %1 Coluna %1 - - Imported from CSV file - Importado do arquivo CSV - - - Original data: - Dados originais: - - - Error(s) detected in CSV file! - Erro(s) detectado(s) no arquivo CSV! - [%n more message(s) skipped] - [%n mais mensagem(ns) ignoradas][%n mais mensagem(ns) ignoradas] + [%n mais mensagem(ns) ignoradas][%n mais mensagem(ns) ignoradas][%n mais mensagem(ns) ignoradas] - Error - Erro + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - Importação de CSV: o gravador tem erros: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n byte%n bytes - %n row(s) - %n linha%n linhas + CSV row count + %n linha%n linhas%n linhas %n column(s) - %n coluna(s)%n coluna(s) + CSV column count + %n coluna(s)%n coluna(s)%n coluna(s) @@ -1417,40 +1474,10 @@ Backup do banco de dados alocado em %2 Password field Campo de senha - - Enter Additional Credentials (if any): - Entre com as credenciais adicionais (se tiver alguma): - - - Key File: - Arquivo-Chave: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>Para além da palavra-passe, pode utilizar um ficheiro-chave para aumentar a segurança da sua base de dados. Este ficheiro pode ser gerado nas definições de segurança da sua base de dados..</p><p><strong>Não</strong> pode utilizar ficheiros *.kdbx como ficheiro-chave!<br>Se não quiser utilizar um ficheiro-chave, deixe este campo em branco.</p><p>Clique aqui para mais informação.</p> - - - Key file help - Ajuda do arquivo-chave - Hardware key slot selection Seleção de campo de chave de hardware - - Hardware Key: - Chave de hardware: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>Pode utilizar uma chave de segurança como, por exemplo, os dispositivos <strong>YubiKey</strong> ou <strong>OnlyKey</strong> com 'slots' configuradas para HMAC-SHA1.</p> -<p>Clique aqui para mais informações.</p> - - - Hardware key help - Ajuda da chave física - Key file to unlock the database Arquivo-chave para desbloquear banco de dados @@ -1463,14 +1490,6 @@ Backup do banco de dados alocado em %2 Browse… Navegar... - - Refresh hardware tokens - Atualizar os tokens de hardware - - - Refresh - Atualizar - Unlock Database Desbloquear banco de dados @@ -1499,7 +1518,13 @@ You can try to open it anyway, but it may be incomplete and saving any changes may incur data loss. We recommend you update your KeePassXC installation. - + O banco de dados que está tentando abrir deve ter sido +criado por uma versão mais recente do KeePassXC. + +Você pode tentar abrir o banco de dados mesmo assim, mas, esta poderá não +ser lido corretamente e, possivelmente, irá perder dados. + +Recomendamos que você atualize o KeePassXC para uma versão mais recente. Open database anyway @@ -1527,14 +1552,6 @@ Para impedir que esses erros apareçam, você deve ir em "Configurações d Retry with empty password Tentar novamente com senha vazia - - Failed to authenticate with Windows Hello - Não foi possível autenticar com Windows Hello - - - Failed to authenticate with Touch ID - Não foi possível autenticar com Touch ID - Failed to open key file: %1 Falha ao abrir o arquivo-chave: %1 @@ -1568,22 +1585,60 @@ Para impedir que esses erros apareçam, você deve ir em "Configurações d Não use arquivos de banco de dados (*.kdbx) como arquivo-chave - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Você não pode usar seu arquivo de banco de dados como arquivo-chave. -Se você não tem um arquivo-chave, por favor deixe o campo vazio. + authenticate to access the database + Autentique para acessar o banco de dados - Detecting hardware keys… - Detectando chaves físicas... + Failed to authenticate with Quick Unlock: %1 + Falha ao autenticar com Desbloqueio Rápido: %1 - No hardware keys detected - Nenhuma chave física detectada + Select Key File: + - Select hardware key… - Selecionar chave física... + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1595,10 +1650,6 @@ Se você não tem um arquivo-chave, por favor deixe o campo vazio. DatabaseSettingsDialog - - Advanced Settings - Definições avançadas - General Geral @@ -1630,18 +1681,6 @@ Se você não tem um arquivo-chave, por favor deixe o campo vazio. KeePassXC-Browser settings Configurações do KeePassXC-Browser - - Convert KeePassHTTP data - Converter dados KeePassHTTP - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - - - - Refresh database root group ID - Atualizar ID do grupo raiz do banco de dados - Disconnect all browsers Desconectar todos os navegadores @@ -1650,6 +1689,10 @@ Se você não tem um arquivo-chave, por favor deixe o campo vazio. Forget all site-specific settings on entries Esqueça todas as configurações específicas do site nas entradas + + Refresh database root group ID + Atualizar ID do grupo raiz do banco de dados + Stored keys Chaves guardadas @@ -1698,21 +1741,13 @@ This may prevent connection to the browser plugin. Você realmente deseja desconectar todos os navegadores? Isso pode impedir a conexão com o plugin do navegador. - - KeePassXC: No keys found - KeePassXC: Nenhuma chave localizada - No shared encryption keys found in KeePassXC settings. Nenhuma chave de criptografia compartilhada encontrada nas configurações do KeePassXC. - - KeePassXC: Removed keys from database - KeePassXC: Chaves removidas do banco de dados - Successfully removed %n encryption key(s) from KeePassXC settings. - Removido com sucesso% n chave (s) criptográficas das configurações do KeePassXC.Removido com sucesso% n chave (s) criptográficas das configurações do KeePassXC. + Removido com sucesso% n chave (s) criptográficas das configurações do KeePassXC.Removido com sucesso% n chave (s) criptográficas das configurações do KeePassXC.Removido com sucesso% n chave (s) criptográficas das configurações do KeePassXC. Do you really want forget all site-specific settings on every entry? @@ -1728,32 +1763,14 @@ Permissões para acessar entradas serão revogadas. Abort Cancelar - - KeePassXC: Removed permissions - KeePassXC: Permissões removidas - Successfully removed permissions from %n entry(s). - Permissões removidas com sucesso de %n entrada(s).Permissões removidas com sucesso de %n entrada(s). - - - KeePassXC: No entry with permissions found! - KeePassXC: Nenhuma entrada com permissões localizada! + Permissões removidas com sucesso de %n entrada(s).Permissões removidas com sucesso de %n entrada(s).Permissões removidas com sucesso de %n entrada(s). The active database does not contain an entry with permissions. O banco de dados ativo não contém uma entrada com permissões. - - Move KeePassHTTP attributes to custom data - Mover atributos KeePassHTTP para dados personalizados - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Tem a certeza de que deseja converter os dados legados para a versão mais recente? -Esta atualização é necessária para manter a compatibilidade com o suplemento. - Refresh database ID Atualizar ID da banco de dados @@ -1764,6 +1781,26 @@ This is only necessary if your database is a copy of another and the browser ext Você deseja realmente atualizar o ID do banco de dados? Isto somente é necessário se o seu banco de dados é uma cópia de outro e a extensão do navegador não puder conectar. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Converta os atributos legados do KeePassHTTP para os dados compatíveis com o KeePassXC-Browser + + + No keys found + Nenhuma chave encontrada + + + Removed keys from database + Chaves removidas do banco de dados + + + Removed permissions + Permissões removidas + + + No entry with permissions found! + Nenhuma entrada com permissões encontradas! + DatabaseSettingsWidgetDatabaseKey @@ -1803,6 +1840,18 @@ Tem certeza de que deseja continuar sem uma senha? Failed to change database credentials Falha ao alterar credenciais do banco de dados + + Weak password + Senha fraca + + + You must enter a stronger password to protect your database. + Você deve inserir uma senha mais forte para proteger seu banco de dados. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + Esta é uma senha fraca! Para melhor proteção dos seus segredos, você deve escolher uma senha mais forte. + DatabaseSettingsWidgetEncryption @@ -1810,14 +1859,6 @@ Tem certeza de que deseja continuar sem uma senha? Decryption Time: Hora da descriptografia: - - Change existing decryption time - Mudar tempo de descriptografia - - - Change - Alterar - Decryption time in seconds Tempo de descriptografia em segundos @@ -1892,17 +1933,12 @@ Tem certeza de que deseja continuar sem uma senha? KDBX 4 (recommended) - + KDBX 4 (recomendado) KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - inalterado - Number of rounds too high Key transformation rounds @@ -1948,12 +1984,24 @@ Se você manter este número, seu banco de dados não estará protegido de ataqu MiB Abbreviation for Mebibytes (KDF settings) - MiB MiB + MiB MiB MiB thread(s) Threads for parallel execution (KDF settings) - processo(s)processo(s) + processo(s)processo(s)processo(s) + + + Encryption Settings: + Configurações de criptografia: + + + Basic + Básico + + + Advanced + Avançado @@ -2013,18 +2061,10 @@ Se você manter este número, seu banco de dados não estará protegido de ataqu Maximum number of history items per entry Número máximo de histórico dos itens por entrada - - Max. history items: - Máx. itens no histórico: - Maximum size of history per entry Número máximo de histórico dos itens por entrada - - Max. history size: - Tamanho máx. do histórico: - MiB MB @@ -2055,6 +2095,64 @@ Esta ação não é reversível. (old) (antigo) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + Quando salvar essa configuração ou editar uma entrada +os itens mais antigo do histórico de uma entrada serão +removidos de forma que apenas a quantidade +de entradas especificada permanecerá + + + Limit the amount of history items per entry to: + Limitar a quantidade de itens no histórico, por entrada, a: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + Quando salvar essa configuração ou editar uma entrada +os itens mais antigo do histórico de uma entrada serão +removidos de forma que os itens restantes +serão adicionados até a quantidade máxima especificada + + + Limit the total size of history items per entry to: + Limitar o tamanho total dos itens dos histórico, por entrada, a: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Mover entradas para um grupo lixeira +ao invés de os apagar do banco de dados. +Entradas apagadas da lixeira serão +removidos do banco de dados + + + Autosave delay since last change + Atraso de salvamento automático desde a última alteração + + + Autosave delay + Atraso de salvamento automático + + + Autosave delay since last change in minutes + Atraso de salvamento automático desde a última alteração em minutos + + + min + min + + + Autosave delay since last change checkbox + Atraso de salvamento automático desde a última caixa de seleção + DatabaseSettingsWidgetKeeShare @@ -2128,7 +2226,7 @@ Esta ação não é reversível. Purged %n icon(s) from the database. - %n ícones removidos da base de dados.%n ícones removidos da base de dados. + %n ícones removidos da base de dados.%n ícones removidos da base de dados.%n ícones removidos da base de dados. @@ -2182,26 +2280,10 @@ Este é definitivamente um bug, por favor denuncie para os desenvolvedores.CSV file Arquivo CSV - - Select CSV file - Selecionar arquivo CSV - Merge database Juntar banco de dados - - KeePass 1 database - Banco de dados KeePass 1 - - - Open KeePass 1 database - Abrir banco de dados KeePass 1 - - - Open OPVault - Abrir o OPVault - Export database to CSV file Exportar banco de dados para arquivo CSV @@ -2214,6 +2296,18 @@ Este é definitivamente um bug, por favor denuncie para os desenvolvedores.Writing the HTML file failed. Falha ao escrever no arquivo HTML + + Export database to XML file + Exportar o banco de dados para um arquivo XML + + + XML file + Arquivo XML + + + Writing the XML file failed + Gravação do arquivo XML falhou + Export Confirmation Confirmação da Exportação @@ -2222,15 +2316,6 @@ Este é definitivamente um bug, por favor denuncie para os desenvolvedores.You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? Você está prestes a exportar o seu banco de dados para um arquivo não criptografado. Isso vai deixar suas senhas e informações confidenciais vulneráveis! Você tem certeza que quer continuar? - - New Database - Novo Banco de Dados - - - %1 [New Database] - Database tab name modifier - %1 [Novo banco de dados] - %1 [Locked] Database tab name modifier @@ -2240,8 +2325,8 @@ Este é definitivamente um bug, por favor denuncie para os desenvolvedores. DatabaseWidget - Database Tags - Etiquetas do banco de dados + Searches and Tags + Buscas e Etiquetas Searching… @@ -2291,6 +2376,10 @@ Este é definitivamente um bug, por favor denuncie para os desenvolvedores.Expired entries Entradas expiradas + + Entries expiring within %1 day(s) + A entradas que vai caducar dentro de %1 diaAs entradas que vão caducar dentro de %1 diasAs entradas que vão caducar dentro de %1 dia(s) + No current database. Nenhuma banco de dados atual. @@ -2315,6 +2404,18 @@ Este é definitivamente um bug, por favor denuncie para os desenvolvedores.No Results Sem Resultados + + Save + Salvar + + + Enter a unique name or overwrite an existing search from the list: + Digite um nome único ou sobrescreva uma busca existente da lista: + + + Save Search + Salvar Busca + Lock Database? Travar banco de dados? @@ -2405,9 +2506,14 @@ Deseja desabilitar salvamento seguro e tentar novamente? Could not find database file: %1 Não foi possível localizar o arquivo do banco de dados: %1 - - Entries expiring within %1 day(s) - + + New Database + Novo Banco de Dados + + + %1 [New Database] + Database tab name modifier + %1 [Novo banco de dados] @@ -2550,21 +2656,21 @@ Gostaria de a corrigir? Hide Ocultar + + %n hour(s) + %n hora%n horas%n hora(s) + %n week(s) - %n semana(s)%n semana(s) + %n semana(s)%n semana(s)%n semana(s) %n month(s) - %n mese(s)%n mese(s) + %n mese(s)%n mese(s)%n mese(s) %n year(s) - %n ano%n anos - - - %n hour(s) - + %n ano%n anos%n anos @@ -2684,10 +2790,20 @@ Gostaria de a corrigir? Add new window association Adicionar nova associação de janela + + + + Add item + + + Remove selected window association Remover a associação de janela selecionada + + - + Remove item + - + Window title: Título da Janela: @@ -2712,16 +2828,6 @@ Gostaria de a corrigir? Custom Auto-Type sequence for this window Sequência de Auto-Digitar personalizada para esta janela - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2823,22 +2929,10 @@ Gostaria de a corrigir? Notes field Campo notas - - Toggle the checkbox to reveal the notes section. - Altere a caixa de checagem para revelar a seção de notas. - Username field Campo de usuário - - Toggle notes visible - Alternar visibilidade das notas - - - Notes: - Notas: - Expiration field Campo de expiração @@ -2855,14 +2949,6 @@ Gostaria de a corrigir? Presets Pré-definidos - - Password: - Senha: - - - URL: - URL: - Url field Campo da url @@ -2871,18 +2957,10 @@ Gostaria de a corrigir? Download favicon for URL Baixar favicon para URL - - Title: - Título: - Title field Campo de título - - Username: - Nome de Usuário: - Password field Campo de senha @@ -2891,18 +2969,42 @@ Gostaria de a corrigir? Toggle expiration Alternar expiração - - Expires: - Expira em: - - - Tags: - Etiquetas: - Tags list Lista de etiquetas + + &Username: + &Nome de usuário: + + + &Title: + &Título: + + + &Password: + &Senha: + + + UR&L: + UR&L: + + + &Notes: + &Notas: + + + Toggle notes visibility + Alternar visibilidade das notas + + + T&ags: + T&ags: + + + &Expires: + &Expira em: + EditEntryWidgetSSHAgent @@ -2942,19 +3044,6 @@ Gostaria de a corrigir? Private key Chave privada - - External file - Arquivo externo - - - Browser for key file - Procurar por arquivo-chave - - - Browse… - Button for opening file dialog - Navegar... - Attachment Anexo @@ -2971,6 +3060,23 @@ Gostaria de a corrigir? Remove from agent Remover do agente + + External file + Arquivo externo + + + Browser for key file + Procurar por arquivo-chave + + + Browse… + Button for opening file dialog + Navegar... + + + Generate + Gerar + Select attachment file Selecionar arquivo anexado @@ -3006,10 +3112,6 @@ Gostaria de a corrigir? Icon Ãcone - - Browser Integration - Integração com o Navegador - Properties Propriedades @@ -3026,6 +3128,10 @@ Gostaria de a corrigir? Group has unsaved changes O grupo tem alterações não salvas + + Browser Integration + Integração com o Navegador + Enable Habilitar @@ -3041,10 +3147,6 @@ Gostaria de a corrigir? EditGroupWidgetBrowser - - Edit Group - Editar Grupo - These settings affect to the group's behaviour with the browser extension. Essas configurações afetam o comportamento do grupo com a extensão para navegadores @@ -3055,31 +3157,47 @@ Gostaria de a corrigir? Hide entries from browser extension toggle for this and sub groups - + Oculta as entradas deste grupo (e dos subgrupos) da extensão do navegador Skip Auto-Submit for entries: - + Ignora o envio automático para as entradas: Skip Auto-Submit toggle for this and sub groups - + Ignora o envio automático para este e para os subgrupos Use entries only with HTTP Basic Auth: - + Utilize as entradas apenas com o HTTP Basic Auth: Only HTTP Auth toggle for this and sub groups - + Apenas o HTTP Basic Auth para este grupo e para os subgrupos Do not use entries with HTTP Basic Auth: - + Não utilize as entradas com o HTTP Basic Auth: Do not use HTTP Auth toggle for this and sub groups - + Não utilize o HTTP Basic Auth para este grupo e para os subgrupos + + + Omit WWW subdomain from matching: + Omita o subdomínio WWW da correspondência: + + + Omit WWW subdomain from matching toggle for this and sub groups + Omita o subdomínio WWW da correspondência alternada: para este grupo e para os subgrupos + + + Restrict matching to given browser key: + Restringir a correspondência a determinada chave do navegador: + + + Restrict matching to given browser key toggle for this and sub groups + Restringir a correspondência a uma determinada chave do navegador para este e subgrupos @@ -3173,7 +3291,7 @@ Extensões suportadas são: %1 KeeShare container - + Contêiner KeeShare KeeShare signed container @@ -3271,7 +3389,7 @@ Extensões suportadas são: %1 Set the URL to use to search for a favicon - + Defina a URL que será utilizada para procurar pelos 'favicons' Favicon URL @@ -3313,10 +3431,6 @@ Extensões suportadas são: %1 Unable to fetch favicon. Não foi possível obter favicon. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Você pode habilitar o serviço de ícone do site do DuckDuckGo em Ferramentas -> Configurações -> Segurança - Existing icon selected. Ãcone existente selecionado. @@ -3335,7 +3449,7 @@ Extensões suportadas são: %1 Successfully loaded %1 of %n icon(s) - Carregado com sucesso %1 de %n ícone(s)Carregado com sucesso %1 de %n ícone(s) + Carregado com sucesso %1 de %n ícone(s)Carregado com sucesso %1 de %n ícone(s)Carregado com sucesso %1 de %n ícone(s) No icons were loaded @@ -3343,11 +3457,15 @@ Extensões suportadas são: %1 %n icon(s) already exist in the database - %n ícone(s) já existe no banco de dados%n ícone(s) já existe no banco de dados + %n ícone(s) já existe no banco de dados%n ícone(s) já existe no banco de dados%n ícone(s) já existe no banco de dados The following icon(s) failed: - O seguinte ícone falhou:O(s) ícone(s) a seguir falharam: + O seguinte ícone falhou:O(s) ícone(s) a seguir falharam:O(s) ícone(s) a seguir falharam: + + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + Você pode ativar o serviço de ícone do site DuckDuckGo em Configurações do Aplicativo -> Segurança @@ -3504,7 +3622,7 @@ Isto pode causar mal funcionamento dos plugins afetados. Are you sure you want to remove %n attachment(s)? - Tem certeza que deseja remover anexos de %n?Tem certeza que deseja remover os %n anexo(s)? + Tem certeza que deseja remover anexos de %n?Tem certeza que deseja remover os %n anexo(s)?Tem certeza que deseja remover os %n anexo(s)? Save attachments @@ -3547,6 +3665,7 @@ Isto pode causar mal funcionamento dos plugins afetados. %1 Incapaz de abrir o arquivo (s): %1Não foi possível abrir arquivo(s): +%1Não foi possível abrir arquivo(s): %1 @@ -3556,7 +3675,8 @@ Isto pode causar mal funcionamento dos plugins afetados. Attachment "%1" already exists. Would you like to overwrite the existing attachment? - + O anexo "%1" já existe. +Deseja fazer a substituição do anexo já existente? Confirm Attachment @@ -3786,6 +3906,10 @@ Erro: %1 Has TOTP Possui TOTP + + Background Color + Cor de fundo + EntryPreviewWidget @@ -3806,8 +3930,8 @@ Erro: %1 Senha - Notes - Notas + URL + URL Expiration @@ -3826,8 +3950,8 @@ Erro: %1 Nome de usuário - URL - URL + Notes + Notas Advanced @@ -3877,6 +4001,10 @@ Erro: %1 Never Nunca + + Double click to copy value + Faça dois cliques para copiar o valor + Enabled Habilitado @@ -3885,6 +4013,10 @@ Erro: %1 Disabled Desabilitado + + Double click to copy to clipboard + Faça dois cliques para copiar o valor + EntryURLModel @@ -3892,6 +4024,10 @@ Erro: %1 Invalid URL URL inválida + + Duplicate URL + URL duplicada + EntryView @@ -3907,6 +4043,10 @@ Erro: %1 Reset to defaults Redefinir as configurações padrões + + + %1 entry(s)... + + %1 entrada...+ %1 entradas...+ %1 entrada(s)... + ExportDialog @@ -3922,7 +4062,8 @@ Erro: %1 You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! - + Você está prestes a exportar o seu banco de dados para um arquivo não criptografado. +Isso vai deixar as suas senhas e as suas informações confidenciais vulneráveis! database order @@ -4015,7 +4156,7 @@ This will leave your passwords and sensitive information vulnerable! %n Entry(s) was used by %1 %1 is the name of an application - %n entrada foi usada por %1%n entradas foram usadas por %1 + %n entrada foi usada por %1%n entradas foram usadas por %1%n entradas foram usadas por %1 @@ -4126,6 +4267,147 @@ Você pode habilitar o serviço de ícones do DuckDuckGo na seção de seguranç Baixando favicons (%1/%2)… + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Assistente + + + Entry count: %1 + + + + Group + Grupo + + + Title + Título + + + Username + Nome de usuário + + + Password + Senha + + + Url + + + + + ImportWizardPageSelect + + Form + Formulário + + + Import File Selection + + + + Password: + Senha: + + + Key File: + Arquivo-Chave: + + + Browse… + Navegar... + + + Import Into: + + + + New Database + Novo Banco de Dados + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Abrir o OPVault + + + Select import file + + + + All files + Todos arquivos + + + Key files + Arquivos-chave + + + Select key file + Escolha o arquivo-chave + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4141,7 +4423,7 @@ Você pode habilitar o serviço de ícones do DuckDuckGo na seção de seguranç Kdbx3Reader Missing database headers - + Falta os cabeçalhos dos bancos de dados Unable to calculate database key @@ -4167,11 +4449,11 @@ Se este erro ocorrer novamente, seu banco de dados pode estar corrompido. Invalid header field length: field %1 - + O comprimento do campo do cabeçalho é inválido: campo %1 Invalid header data length: field %1, %2 expected, %3 found - + O comprimento do campo de dados do cabeçalho é inválido: campo %1, esperado %2 e foi encontrado %3 @@ -4228,11 +4510,11 @@ Se este erro ocorrer novamente, seu banco de dados pode estar corrompido. Invalid header field length: field %1 - + O comprimento do campo do cabeçalho é inválido: campo %1 Invalid header data length: field %1, %2 expected, %3 found - + O comprimento do campo de dados do cabeçalho é inválido: campo %1, esperado %2 e foi encontrado %3 Failed to open buffer for KDF parameters in header @@ -4252,11 +4534,11 @@ Se este erro ocorrer novamente, seu banco de dados pode estar corrompido. Invalid inner header field length: field %1 - + O comprimento do campo interno é inválido: campo %1 Invalid inner header data length: field %1, %2 expected, %3 found - + O comprimento do campo de dados interno é inválido: campo %1, esperado %2 e foi encontrado %3 Invalid inner header binary size @@ -4560,17 +4842,6 @@ Linha %2, coluna %3 Falha ao abrir chave privada - - KeePass1OpenWidget - - Import KeePass1 Database - Importar banco de dados KeePass1 - - - Unable to open the database. - Não foi possível abrir o banco de dados. - - KeePass1Reader @@ -4927,10 +5198,6 @@ Tem certeza que deseja continuar com este arquivo? &Recent Databases &Banco de Dados Recentes - - &Import - &Importar - &Export &Exportar @@ -4951,6 +5218,10 @@ Tem certeza que deseja continuar com este arquivo? TOTP TOTP + + Tags + Etiquetas + &Groups &Grupos @@ -4995,34 +5266,18 @@ Tem certeza que deseja continuar com este arquivo? &New Database… &Novo Banco de Dados... - - Create a new database - Criar um banco de dados - &Merge From Database… &Mesclar do Banco de Dados... - - Merge from another KDBX database - Mesclar de outro banco de dados KDBX - &New Entry… &Nova Entrada... - - Add a new entry - Adicionar uma nova entrada - &Edit Entry… &Editar Entrada… - - View or edit entry - Exibir ou editar entrada - &Delete Entry… &Excluir Entrada… @@ -5031,10 +5286,6 @@ Tem certeza que deseja continuar com este arquivo? &New Group… &Novo Grupo… - - Add a new group - Adicionar a um novo grupo - &Edit Group… &Editar Grupo @@ -5067,18 +5318,10 @@ Tem certeza que deseja continuar com este arquivo? Database &Reports… &Relatórios do Banco de Dados... - - Statistics, health check, etc. - Estatísticas, verificação de saúde, etc. - &Database Settings… Configurações do Banco de &Dados... - - Database settings - Configurações do Banco de Dados - &Clone Entry… &Clonar Entrada... @@ -5087,34 +5330,18 @@ Tem certeza que deseja continuar com este arquivo? Move u&p Mover para &cima - - Move entry one step up - Mover entrada um passo para cima - Move do&wn Move para &baixo - - Move entry one step down - Mover entrada um passo para baixo - Copy &Username Copiar &Nome de Usuário - - Copy username to clipboard - Copiar nome de usuário para área de transferência - Copy &Password Copiar &Senha - - Copy password to clipboard - Copiar senha para área de transferência - &Settings &Configurações @@ -5148,25 +5375,13 @@ Tem certeza que deseja continuar com este arquivo? &Título - Copy title to clipboard - Copiar título para a área de transferência - - - &URL - &URL - - - Copy URL to clipboard - Copiar URL para a área de transferência + Copy &URL + Copiar &URL &Notes &Notas - - Copy notes to clipboard - Copiar notas para a área de transferência - &CSV File… Arquivo &CSV... @@ -5179,26 +5394,14 @@ Tem certeza que deseja continuar com este arquivo? KeePass 1 Database… Banco de dados do KeePass 1... - - Import a KeePass 1 database - Importar banco de dados do KeePass 1 - 1Password Vault… Cofre do 1Password... - - Import a 1Password Vault - Importar cofre 1Password - CSV File… Arquivo CSV... - - Import a CSV file - Importar arquivo CSV - Show TOTP Mostrar TOTP @@ -5215,6 +5418,10 @@ Tem certeza que deseja continuar com este arquivo? Copy &TOTP Copiar &TOTP + + Copy Password and TOTP + Copiar Senha e TOTP + E&mpty recycle bin Esvaziar &lixeira @@ -5239,10 +5446,6 @@ Tem certeza que deseja continuar com este arquivo? &Online Help &Ajuda Online - - Go to online documentation - Ir para documentação online - &User Guide &Guia do usuário @@ -5311,6 +5514,10 @@ Tem certeza que deseja continuar com este arquivo? Clone Group... Clonar grupo... + + &XML File… + Arquivo &XML... + Clear history Limpar histórico @@ -5343,9 +5550,13 @@ We recommend you use the AppImage available on our downloads page. AVISO: Sua versão do Qt pode fazer com que o KeePassXC trave com um teclado na tela! Recomendamos que você use o AppImage disponível em nossa página de downloads. + + No Tags + Sem Etiquetas + Restore Entry(s) - + Restaura a entradaRestaura as entradasRestaura as entrada(s) Settings @@ -5371,6 +5582,10 @@ Recomendamos que você use o AppImage disponível em nossa página de downloads. Quit KeePassXC Fechar KeePassXC + + %1 Entry(s) + %1 Entradas(s)%1 Entradas(s)%1 Entradas(s) + Please present or touch your YubiKey to continue… Introduza ou toque na sua YubiKey para continuar... @@ -5383,6 +5598,274 @@ Recomendamos que você use o AppImage disponível em nossa página de downloads. You must restart the application to apply this setting. Would you like to restart now? Você precisa reiniciar o aplicativo para aplicar esta configuração. Você gostaria de reiniciar agora? + + Allow Screen Capture + Permitir captura de tela + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Chaves de Acesso... + + + Import Passkey + Importar Chave de Acesso + + + Quit Application + Sair do Aplicativo + + + Open About Dialog + Abrir a Caixa de Diálogo Sobre + + + Open Database + Abrir Banco de Dados + + + Create Database + Criar Banco de Dados + + + Merge From Database + Mesclar Do Banco de Dados + + + Create Entry + Criar Entrada + + + Edit Entry + Editar Entrada + + + Delete Entry + Excluir Entrada + + + Create Group + Criar Grupo + + + Edit Group + Editar Grupo + + + Delete Group + Excluir Grupo + + + Download All Favicons + Baixar Todos os Favicons + + + Sort Groups A-Z + Ordenar Grupos de A-Z + + + Sort Groups Z-A + Ordenar Grupos de Z-A + + + Save Database As + Salvar Banco de Dados Como + + + Show Database Security + Mostrar Segurança do Banco de Dados + + + Show Database Reports + Mostrar Relatório do Banco de Dados + + + Show Database Settings + Mostrar Configurações do Banco de Dados + + + Show Passkeys + Mostrar Chaves de Acesso + + + Clone Entry + Clonar Entrada + + + Move Entry Up + Mover Entrada para Cima + + + Move Entry Down + Mover Entrada para Baixo + + + Copy Username + Copiar nome de utilizador + + + Copy Password + Copiar senha + + + Show Application Settings + Mostrar Configurações do Aplicativo + + + Show Password Generator + Mostrar Gerador de Senhas + + + Perform Auto-Type: {USERNAME} + Executar a Digitação Automática: {USERNAME} + + + Perform Auto-Type: {USERNAME}{ENTER} + Executar a Digitação Automática: {USERNAME}{ENTER} + + + Perform Auto-Type: {PASSWORD} + Executar a Digitação Automática: {PASSWORD} + + + Perform Auto-Type: {PASSWORD}{ENTER} + Executar a Digitação Automática: {PASSWORD}{ENTER} + + + Perform Auto-Type: {TOTP} + Executar a Digitação Automática: {TOTP} + + + Copy Title + Copiar Título + + + Copy URL + Copiar URL + + + Copy Notes + Copiar Notas + + + Export to CSV + Exportar para CSV + + + Export to HTML + Exportar para HTML + + + Import KeePass1 Database + Importar banco de dados KeePass1 + + + Import 1Password Vault + Importar 1Password Vault + + + Import CSV File + Importar arquivo CSV + + + Show TOTP QR Code + Mostrar Código QR TOTP + + + Set up TOTP + Configurar o TOTP + + + Empty Recycle Bin + Esvaziar a Lixeira + + + Open Donation Website + Abrir Site de Doação + + + Open Bug Report + Abrir Rlatório de Erro + + + Open Online Documentation + Abrir Documentação Online + + + Open Keyboard Shortcuts Guide + Abrir Guia de Atalhos do Teclado + + + Save Database Backup + Salvar Backup do Banco de Dados + + + SSH Agent: Add Key + Agente SSH: Adicionar Chave + + + SSH Agent: Remove Key + Agente SSH: Remover Chave + + + Toggle Compact Mode + Alternar para o Modo Compacto + + + Set Theme: Automatic + Definir Tema: Automaticamente + + + Set Theme: Light + Definir Tema: Claro + + + Set Theme: Dark + Definir Tema: Escuro + + + Set Theme: Classic + Definir Tema: Clássico + + + Toggle Show Toolbar + Alternar para Mostrar Barra de Ferramentas + + + Toggle Show Preview Panel + Alternar para Mostrar Painel de Prévia + + + Toggle Always on Top + Alternar para Sempre na Frente + + + Toggle Hide Usernames + Alternar para Ocultar Nomes de Usuário + + + Toggle Hide Passwords + Alternar para Ocultar as Senhas + + + Export to XML + Exportar para XML + + + Toggle Allow Screen Capture + Alternar para Permitir Captura de Tela + ManageDatabase @@ -5419,11 +5902,11 @@ Recomendamos que você use o AppImage disponível em nossa página de downloads. Reset - + Redefine Reset any remembered decisions for this application - + Redefine quaisquer decisões armazenadas para esta aplicação @@ -5440,26 +5923,6 @@ Recomendamos que você use o AppImage disponível em nossa página de downloads. Overwriting %1 [%2] Substituindo %1 [%2] - - older entry merged from database "%1" - entrada mais antiga mesclada do banco de dados "%1" - - - Adding backup for older target %1 [%2] - Adicionando backup para o alvo mais antigo %1 [%2] - - - Adding backup for older source %1 [%2] - Adicionando backup para fonte mais antiga %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Reaplicar entradas alvo antigas em cima da fonte nova %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Reaplicar fonte alvo antiga em cima do alvo novo %1 [%2] - Synchronizing from newer source %1 [%2] Sincronizando de uma fonte mais nova %1 [%2] @@ -5519,14 +5982,6 @@ Recomendamos que você use o AppImage disponível em nossa página de downloads. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Aqui você pode ajustar as configurações de criptografia do banco de dados. Não se preocupe, você pode alterá-los mais tarde nas configurações do banco de dados. - - Advanced Settings - Definições avançadas - - - Simple Settings - Definições básicas - NewDatabaseWizardPageDatabaseKey @@ -5607,15 +6062,6 @@ Recomendamos que você use o AppImage disponível em nossa página de downloads. Experado %1 bytes de clear-text. Encontrados %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Ler banco de dados não produz uma instância -%1 - - OpVaultReader @@ -5689,6 +6135,10 @@ Recomendamos que você use o AppImage disponível em nossa página de downloads. Unknown cipher: %1 Cifra desconhecida: %1 + + AES-256/GCM is currently not supported + AES-256/GCM não é suportado atualmente + Passphrase is required to decrypt this key Senha é necessária para decriptar esta chave @@ -5719,11 +6169,11 @@ Recomendamos que você use o AppImage disponível em nossa página de downloads. Unexpected EOF while reading key - + Foi encontrado um EOF inesperado ao ler a chave Unsupported key part - + Parte da chave não compatível Unexpected EOF while reading public key @@ -5755,26 +6205,178 @@ Recomendamos que você use o AppImage disponível em nossa página de downloads. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Senhas não coicidem + SSH Key Generator + Gerador de chave SSH - Passwords match so far - Senhas não coincidem até agora + Type + Tipo - Toggle Password (%1) - Alternar Senha (%1) + Bits + Bits - Generate Password (%1) - Gerar Senha (%1) + Comment + Comentário + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - Exportar Chave de Acesso - Warning: Caps Lock enabled! - Alerta: Caps Lock habilitado! + Export the following Passkey entries. + Exportar as seguintes entradas de Chave de Acesso + + + Filenames will be generated with title and .passkey file extension. + Os nomes dos arquivos serão gerados com título e extensão de arquivo .passkey. + + + Export entries + Exportar entradas + + + Export Selected + Exportar Selecionados + + + Cancel + Cancelar + + + Export to folder + Expotar para pasta + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: Exportar Chave de Acesso + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + Arquivo "%1.passkey" já existe. +Você deseja sobrescrevê-lo? + + + + Cannot open file + Não foi possível abrir o arquivo + + + Cannot open file "%1" for writing. + Não é possível abrir o arquivo "%1" para gravação. + + + Cannot write to file + Não foi possível salvar no arquivo + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - Importar Chave de Acesso + + + Username: %1 + Nome de Usuário: %1 + + + Group + Grupo + + + Database + Banco de Dados + + + Import Passkey + Importar Chave de Acesso + + + Import + Importar + + + Cancel + Cancelar + + + Import the following Passkey: + Importar a seguinte Chave de Acesso: + + + Entry + Entrada + + + Import the following Passkey to this entry: + Importar a seguinte Chave de Acesso para esta entrada: + + + Create new entry + Criar nova entrada + + + Default Passkeys group (Imported Passkeys) + Grupo Padrão de Chave de Acesso (Chaves de Acesso Importadas) + + + Relying Party: %1 + + + + + PasskeyImporter + + Passkey file + Arquivo de chave de acesso + + + All files + Todos arquivos + + + Open Passkey file + Abrir arquivo de Chave de Acesso + + + Cannot open file + Não foi possível abrir o arquivo + + + Cannot open file "%1" for reading. + Não é possível abrir o arquivo "%1" para leitura. + + + Cannot import Passkey + Não foi possível importar a Chave de Acesso + + + Cannot import Passkey file "%1". Data is missing. + Não foi possível importar o arquivo de Chave de Acesso "%1". Faltam dados. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + Não foi possível importar o arquivo de Chave de Acesso '%1'. A chave privada está ausente ou malformada. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + Não foi possível importar o arquivo de Chave de Acesso "%1". +Os seguintes dados estão faltando: +%2 @@ -6039,51 +6641,6 @@ Recomendamos que você use o AppImage disponível em nossa página de downloads. Entropy: %1 bit Entropia: %1 bit - - Confirm Delete Wordlist - Confirmar exclusão da lista de palavras - - - Do you really want to delete the wordlist "%1"? - - - - Failed to delete wordlist - Não foi possível excluir a lista de palavras - - - Wordlists - Lista de palavras - - - All files - Todos arquivos - - - Select Custom Wordlist - Selecionar lista de palavras personalizada - - - Overwrite Wordlist? - - - - Wordlist "%1" already exists as a custom wordlist. -Do you want to overwrite it? - - - - Failed to add wordlist - Não foi possível adicionar a lista de palavras - - - Logograms - Logo-gramas - - - Special Characters - Caracteres Especiais - Password Quality: %1 Qualidade da senha: %1 @@ -6108,6 +6665,103 @@ Do you want to overwrite it? Password quality Excelente + + Confirm Delete Wordlist + Confirmar exclusão da lista de palavras + + + Do you really want to delete the wordlist "%1"? + Tem a certeza que deseja excluir a lista de palavras "%1"? + + + Failed to delete wordlist + Não foi possível excluir a lista de palavras + + + Wordlists + Lista de palavras + + + All files + Todos arquivos + + + Select Custom Wordlist + Selecionar lista de palavras personalizada + + + Overwrite Wordlist? + Substituir lista de palavras? + + + Wordlist "%1" already exists as a custom wordlist. +Do you want to overwrite it? + A lista de palavras "%1" já existe como uma lista personalizada. +Tem certeza que deseja substitui-la? + + + Failed to add wordlist + Não foi possível adicionar a lista de palavras + + + Logograms + Logo-gramas + + + Special Characters + Caracteres Especiais + + + + PasswordWidget + + Passwords do not match + Senhas não coicidem + + + Passwords match so far + Senhas não coincidem até agora + + + Toggle Password (%1) + Alternar Senha (%1) + + + Generate Password (%1) + Gerar Senha (%1) + + + Warning: Caps Lock enabled! + Alerta: Caps Lock habilitado! + + + Quality: %1 + Qualidade: %1 + + + Poor + Password quality + Pobre + + + Weak + Password quality + Fraco + + + Good + Password quality + Bom + + + Excellent + Password quality + Excelente + + + Toggle password visibility using Control + H. Open the password generator using Control + G. + Alternar a visibilidade da senha usando Control + H. Abrir o gerador de senha usando Control + G. + PickcharsDialog @@ -6162,6 +6816,10 @@ Do you want to overwrite it? Continue Continuar + + Continue with weak password + Continuar com senha fraca + QObject @@ -6359,7 +7017,7 @@ Do you want to overwrite it? Password for '%1' has been leaked %2 time(s)! - A senha para '%1' foi vazada %2 vez(es)!A senha para '%1' foi vazada %2 vez(es)! + A senha para '%1' foi vazada %2 vez(es)!A senha para '%1' foi vazada %2 vez(es)!A senha para '%1' foi vazada %2 vez(es)! Password for '%1' has been leaked! @@ -6371,7 +7029,7 @@ Do you want to overwrite it? Path of the entry with the target attachment. - + Caminho da entrada com o destino do anexo Name of the attachment to be exported. @@ -6379,7 +7037,7 @@ Do you want to overwrite it? Path to which the attachment should be exported. - + O caminho para onde o anexo que deve ser exportado. Could not find entry with path %1. @@ -6387,27 +7045,27 @@ Do you want to overwrite it? Could not find attachment with name %1. - + Não foi possível encontrar o anexo com o nome %1. No export target given. Please use '--stdout' or specify an 'export-file'. - + Nenhum destino foi informado. Utilize '--stdout' ou especifique um 'arquivo-de-exportação'. Could not open output file %1. - + Não foi possível abrir o arquivo gerado %1. Successfully exported attachment %1 of entry %2 to %3. - + O anexo %1 da entrada %2 foi exportado com sucesso para %3. Overwrite existing attachments. - + Substitui os anexos já existentes Imports an attachment to an entry. - + Importa um anexo para uma entrada. Path of the entry. @@ -6415,35 +7073,35 @@ Do you want to overwrite it? Name of the attachment to be added. - + Nome do anexo que será adicionado. Path of the attachment to be imported. - + O caminho do anexo que será importado. Attachment %1 already exists for entry %2. - + O anexo %1 já existe na entrada %2. Could not open attachment file %1. - + Não foi possível abrir o anexo %1. Successfully imported attachment %1 as %2 to entry %3. - + O anexo %1 foi importado com sucesso como %2 para a entrada %3. Remove an attachment of an entry. - + Remove um anexo de uma entrada. Name of the attachment to be removed. - + O nome do anexo que será excluído. Successfully removed attachment %1 from entry %2. - + O anexo %1 foi excluído da entrada %2. Copy the given attribute to the clipboard. Defaults to "password" if not specified. @@ -6509,7 +7167,7 @@ Do you want to overwrite it? Clearing the clipboard in %1 second(s)... - Limpando a área de transferência em %1 segundo(s)...Limpando a área de transferência em %1 segundo(s)... + Limpando a área de transferência em %1 segundo(s)...Limpando a área de transferência em %1 segundo(s)...Limpando a área de transferência em %1 segundo(s)... Clipboard cleared! @@ -6555,6 +7213,10 @@ Do you want to overwrite it? Too many arguments provided. Muitos argumentos fornecidos. + + Path of the database. + Caminho do banco de dados + Target decryption time in MS for the database. Tempo de descriptografia de destino em MS para o banco de dados. @@ -6563,6 +7225,12 @@ Do you want to overwrite it? time tempo + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Defina o arquivo de chave para o banco de dados. +Esta opção está obsoleta, use --set-key-file em seu lugar. + Set the key file for the database. Define o arquivo-chave para o banco de dados. @@ -6575,10 +7243,6 @@ Do you want to overwrite it? Create a new database. Criar um novo banco de dados. - - Path of the database. - Caminho do banco de dados - Invalid decryption time %1. Tempo de descriptografia inválido %1. @@ -6623,6 +7287,158 @@ Do you want to overwrite it? Successfully created new database. Novo banco de dados criado com sucesso. + + Unset the password for the database. + Desative a senha do banco de dados. + + + Unset the key file for the database. + Desmarque o arquivo de chave para o banco de dados. + + + Edit a database. + Editar um banco de dados. + + + Cannot use %1 and %2 at the same time. + Não é possível usar %1 e %2 em simultâneo. + + + Could not change the database key. + Não foi possível mudar a chave do banco de dados. + + + Database was not modified. + O banco de dados não foi modificado. + + + Writing the database failed: %1 + Gravação do banco de dados falhou: %1 + + + Successfully edited the database. + Banco de dados editado com sucesso. + + + Cannot remove password: The database does not have a password. + Não é possível remover a senha: O banco de dados não possui uma senha. + + + Cannot remove file key: The database does not have a file key. + Não é possível remover a chave do arquivo: o banco de dados não possui uma chave de arquivo. + + + Loading the new key file failed: %1 + Carregamento do novo arquivo chave falhou: %1 + + + Found unexpected Key type %1 + Tipo de Chave inesperada encontrado %1 + + + Cannot remove all the keys from a database. + Não é possível remover todas as chaves de um banco de dados. + + + Show a database's information. + Mostra as informações de um banco de dados. + + + UUID: + UUID: + + + Name: + Nome: + + + Description: + Descrição: + + + Cipher: + Cifra: + + + KDF: + KDF: + + + Recycle bin is enabled. + A Lixeira está habilitada. + + + Recycle bin is not enabled. + A Lixeira não está habilitada. + + + Location + Localização + + + Database created + Banco de dados criado + + + Last saved + Salvo por último em + + + Unsaved changes + Mudanças não-salvas + + + yes + sim + + + no + não + + + Number of groups + Número de grupos + + + Number of entries + Número de entradas + + + Number of expired entries + Número de entradas expiradas + + + Unique passwords + Senhas únicas + + + Non-unique passwords + Senhas não-únicas + + + Maximum password reuse + Máximo de reusos da senha + + + Number of short passwords + Números de senhas pequenas + + + Number of weak passwords + Número de senhas fracas + + + Entries excluded from reports + Entradas excluídas dos relatórios + + + Average password length + Comprimento médio da senha + + + %1 characters + %1 caracteres + Word count for the diceware passphrase. Contagem de palavra para a frase-chave diceware. @@ -6674,10 +7490,6 @@ Do you want to overwrite it? Enter new password for entry: Digite uma nova senha para entrada: - - Writing the database failed: %1 - Gravação do banco de dados falhou: %1 - Successfully edited entry %1. Entrada editada com sucesso %1. @@ -6902,106 +7714,6 @@ Do you want to overwrite it? Successfully imported database. Banco de dados importado com sucesso. - - Show a database's information. - Mostra as informações de um banco de dados. - - - UUID: - UUID: - - - Name: - Nome: - - - Description: - Descrição: - - - Cipher: - Cifra: - - - KDF: - KDF: - - - Recycle bin is enabled. - A Lixeira está habilitada. - - - Recycle bin is not enabled. - A Lixeira não está habilitada. - - - Location - Localização - - - Database created - Banco de dados criado - - - Last saved - Salvo por último em - - - Unsaved changes - Mudanças não-salvas - - - yes - sim - - - no - não - - - Number of groups - Número de grupos - - - Number of entries - Número de entradas - - - Number of expired entries - Número de entradas expiradas - - - Unique passwords - Senhas únicas - - - Non-unique passwords - Senhas não-únicas - - - Maximum password reuse - Máximo de reusos da senha - - - Number of short passwords - Números de senhas pequenas - - - Number of weak passwords - Número de senhas fracas - - - Entries excluded from reports - Entradas excluídas dos relatórios - - - Average password length - Comprimento médio da senha - - - %1 characters - %1 caracteres - Unknown command %1 Comando desconhecido %1 @@ -7174,9 +7886,13 @@ Comandos disponíveis: Show the protected attributes in clear text. Mostrar os atributos protegidos como texto legível. + + Show all the attributes of the entry. + Mostrar todos os atributos da entrada. + Show the attachments of the entry. - + Mostra os anexos de uma entrada. Names of the attributes to show. This option can be specified more than once, with each attribute shown one-per-line in the given order. If no attributes are specified, a summary of the default attributes is given. @@ -7244,6 +7960,10 @@ Por favor, considere gerar um novo arquivo-chave. Invalid YubiKey serial %1 Serial YubiKey inválido %1 + + Please present or touch your YubiKey to continue. + Introduza ou toque na sua YubiKey para continuar. + Enter password to encrypt database (optional): Digite a senha para encriptar seu banco de dados (opcional): @@ -7315,7 +8035,7 @@ Por favor, considere gerar um novo arquivo-chave. Password is used %1 time(s) - A senha foi usada %1 vezesA senha foi usada %1 vezes + A senha foi usada %1 vezesA senha foi usada %1 vezesA senha foi usada %1 vezes Password has expired @@ -7335,7 +8055,7 @@ Por favor, considere gerar um novo arquivo-chave. Password expires in %1 day(s) - A senha expira em %1 diasA senha expira em %1 dias + A senha expira em %1 diasA senha expira em %1 diasA senha expira em %1 dias Password will expire soon @@ -7407,31 +8127,32 @@ Kernel: %3 %4 over %1 year(s) - mais de %1 ano(s)mais de %1 ano(s) + mais de %1 ano(s)mais de %1 ano(s)mais de %1 ano(s) about %1 month(s) - Cerca de %1 mês(es)Cerca de %1 mês(es) + Cerca de %1 mês(es)Cerca de %1 mês(es)Cerca de %1 mês(es) %1 week(s) - %1 semana(s)%1 semana(s) + %1 semana(s)%1 semana(s)%1 semana(s) %1 day(s) - %1 dia(s)%1 dia(s) + %1 dia(s)%1 dia(s)%1 dia(s) %1 hour(s) - %1 hora(s)%1 hora(s) + %1 hora(s)%1 hora(s)%1 hora(s) %1 minute(s) - %1 minuto(s)%1 minuto(s) + %1 minuto(s)%1 minuto(s)%1 minuto(s) - Botan library must be at least 2.11.x, found %1.%2.%3 - A biblioteca Botan deve ser pelo menos, 2.11.x mas foi encontrada %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + A biblioteca Botan deve estar pelo menos na versão %1. +Foi encontrada a versão %2.%3.%4 Cryptographic libraries: @@ -7463,11 +8184,11 @@ Kernel: %3 %4 unknown executable (DBus address %1) - + executável desconhecido (endereço DBus %1) %1 (invalid executable path) - + %1 (o caminho do executável é inválido) NULL device @@ -7503,7 +8224,7 @@ Kernel: %3 %4 ChaCha20 256-bit - + ChaCha20 256-bit Argon2d (KDBX 4 – recommended) @@ -7519,7 +8240,7 @@ Kernel: %3 %4 AES-KDF (KDBX 3) - + AES-KDF (KDBX 3) Existing single-instance lock file is invalid. Launching new instance. @@ -7531,7 +8252,7 @@ Kernel: %3 %4 Clearing the clipboard in %1 second(s)… - Limpando a área de transferência em %1 segundo(s)...Limpando a área de transferência em %1 segundo(s)... + Limpando a área de transferência em %1 segundo(s)...Limpando a área de transferência em %1 segundo(s)...Limpando a área de transferência em %1 segundo(s)... Group @@ -7572,12 +8293,12 @@ Kernel: %3 %4 %1 ms milliseconds - %1 ms%1 ms + %1 ms%1 ms%1 ms %1 s seconds - %1 s%1 s + %1 s%1 s%1 s Do you really want to delete the entry "%1" for good? @@ -7585,11 +8306,11 @@ Kernel: %3 %4 Do you really want to delete %n entry(s) for good? - Tem a certeza de que deseja apagar %n entradas?Tem a certeza de que deseja apagar %n entradas? + Tem a certeza de que deseja apagar %n entradas?Tem a certeza de que deseja apagar %n entradas?Tem a certeza de que deseja apagar %n entradas? Delete entry(s)? - Apagar entrada?Apagar entradas? + Apagar entrada?Apagar entradas?Apagar entradas? Do you really want to move entry "%1" to the recycle bin? @@ -7597,11 +8318,11 @@ Kernel: %3 %4 Do you really want to move %n entry(s) to the recycle bin? - Você deseja realmente mover %n entrada para a lixeira?Você deseja realmente mover %n entrada(s) para a lixeira? + Você deseja realmente mover %n entrada para a lixeira?Você deseja realmente mover %n entrada(s) para a lixeira?Você deseja realmente mover %n entrada(s) para a lixeira? Move entry(s) to recycle bin? - Mover entrada para a lixeira?Mover entradas para a lixeira? + Mover entrada para a lixeira?Mover entradas para a lixeira?Mover entradas para a lixeira? Replace references to entry? @@ -7609,7 +8330,7 @@ Kernel: %3 %4 Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? - A entrada "%1" tem %2 referência(s). Deseja substituir referências por valores, ignorar essa entrada ou excluir mesmo assim?A entrada "%1" tem %2 referência(s). Deseja substituir referências por valores, ignorar essa entrada ou excluir mesmo assim? + A entrada "%1" tem %2 referência(s). Deseja substituir referências por valores, ignorar essa entrada ou excluir mesmo assim?A entrada "%1" tem %2 referência(s). Deseja substituir referências por valores, ignorar essa entrada ou excluir mesmo assim?A entrada "%1" tem %2 referência(s). Deseja substituir referências por valores, ignorar essa entrada ou excluir mesmo assim? User name @@ -7671,10 +8392,6 @@ Kernel: %3 %4 read password of the database from stdin ler a senha do banco de dados da entrada padrão - - allow app screen recordering and screenshots - permitir gravação e capturas de tela do aplicativo - Locked databases. Bancos de dados bloqueados. @@ -7687,6 +8404,10 @@ Kernel: %3 %4 Another instance of KeePassXC is already running. Outra instância do KeePassXC já está rodando. + + KeePassXC is not running. No open database to lock + KeePassXC não está em execução. Não há nenhum banco de dados para bloquear. + Fatal error while testing the cryptographic functions. Erro fatal enquanto testava as funções criptográficas. @@ -7695,10 +8416,6 @@ Kernel: %3 %4 KeePassXC - Error KeePassXC - Erro - - Warning: Failed to prevent screenshots on a top level window! - Aviso: Falha ao evitar capturas de tela em uma janela de nível superior! - Database password: Senha do banco de dados: @@ -7719,10 +8436,224 @@ Kernel: %3 %4 Failed to sign challenge using Windows Hello. + Houve uma falha no desafio de autenticação usando o Windows Hello. + + + Warning: Failed to block screenshot capture on a top-level window. + Alerta: Falha ao bloquear captura de tela em uma janela. + + + Invalid Cipher + Cifra inválida + + + Invalid KDF + Função de derivação de chave (KDF) inválido + + + Access to all entries is denied + Negar acesso a todas as entradas + + + allow screenshots and app recording (Windows/macOS) + permitir capturas de tela e gravação de aplicativos (Windows/macOS) + + + Enter Shortcut + Digite o Atalho + + + Action + Ação + + + Shortcuts + Atalhos + + + Attestation not supported + Atestado não suportado + + + Credential is excluded + Credencial foi excluída + + + Passkeys request canceled + Pedido de Chaves de Acesso cancelado + + + Invalid user verification + Verificação de usuário inválida + + + Empty public key + Chave pública vazia + + + Invalid URL provided + URL inválida fornecida + + + Passkeys + Chaves de Acesso + + + AES initialization failed + Falha na inicialização do AES + + + AES encrypt failed + A criptografia AES falhou + + + Failed to store in Linux Keyring + Falha ao armazenar no Linux Keyring + + + Polkit returned an error: %1 - Please present or touch your YubiKey to continue. + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + Falha na descriptografia AES + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + Nenhum provedor de Desbloqueio Rápido está disponível + + + Failed to init KeePassXC crypto. + Falha ao iniciar a criptografia KeePassXC. + + + Failed to encrypt key data. + Não foi possível cifrar os dados da chave + + + Failed to get Windows Hello credential. + Falha ao obter a credencial do Windows Hello. + + + Failed to decrypt key data. + Não foi possível decifrar os dados da chave. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7762,21 +8693,9 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - Excluir entradas expiradas do relatório - - - Show only entries which have URL set - - - - Show only entries which have browser settings in custom data - - Double-click entries to edit. - + Faça um clique nas entradas para alterar List of entry URLs @@ -7792,7 +8711,7 @@ Kernel: %3 %4 Entry has no Browser Integration settings - + A entrada não possui definições de integração com o navegador Denied URLs @@ -7808,11 +8727,11 @@ Kernel: %3 %4 Please wait, browser statistics is being calculated… - + Aguarde enquanto as estatísticas estão sendo calculadas... No entries with a URL, or none has browser extension settings saved. - + Não existem entradas com a URL definida ou com as definições de integração com navegador salvas. Title @@ -7832,23 +8751,31 @@ Kernel: %3 %4 Delete Entry(s)… - Excluir entrada...Excluir entradas... + Excluir entrada...Excluir entradas...Excluir entradas... Exclude from reports Excluir dos relatórios + + Only show entries that have a URL + Mostrar apenas entradas que tenham a URL + + + Only show entries that have been explicitly allowed or denied + Mostrar apenas entradas que foram explicitamente permitidas ou negadas + + + Show expired entries + Mostrar entradas expiradas + + + (Expired) + (Expirada) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - Excluir entradas expiradas do relatório - - - Also show entries that have been excluded from reports - Exibir também entradas que foram excluídas dos relatórios - Hover over reason to show additional details. Double-click entries to edit. Passe o mouse sobre o motivo para mostrar detalhes adicionais. Clique duas vezes nas entradas para editar. @@ -7918,12 +8845,24 @@ Kernel: %3 %4 Delete Entry(s)… - Excluir entrada...Excluir entradas... + Excluir entrada...Excluir entradas...Excluir entradas... Exclude from reports Excluir dos relatórios + + Show expired entries + Mostrar entradas expiradas + + + Show entries that have been excluded from reports + Mostrar entradas que foram excluídas dos relatórios + + + (Expired) + (Expirada) + ReportsWidgetHibp @@ -8013,13 +8952,72 @@ Kernel: %3 %4 Delete Entry(s)… - Excluir entrada...Excluir entradas... + Excluir entrada...Excluir entradas...Excluir entradas... Exclude from reports Excluir dos relatórios + + ReportsWidgetPasskeys + + Export + Exportar + + + Import + Importar + + + List of entry URLs + Lista de URLs das entradas + + + Please wait, list of entries with Passkeys is being updated… + Aguarde, a lista de entradas com Chaves de Acesso está sendo atualizada… + + + No entries with Passkeys. + Nenhuma entrada com Chaves de Acesso. + + + Title + Título + + + Path + Caminho + + + Username + Nome de usuário + + + URLs + URLs + + + Edit Entry… + Editar entrada... + + + Delete Entry(s)… + Excluir entrada...Excluir entradas...Excluir entradas... + + + Relying Party + + + + Show expired entries + Mostrar entradas expiradas + + + (Expired) + (Expirada) + + ReportsWidgetStatistics @@ -8183,7 +9181,7 @@ Kernel: %3 %4 Security keys are not supported by the agent or the security key provider is unavailable. - + O agente não é compatível com as chaves de segurança ou o fornecedor da chave de segurança não está disponível. No agent running, cannot remove identity. @@ -8259,6 +9257,10 @@ Kernel: %3 %4 Search Help Ajuda com a Busca + + Save Search + Salvar Busca + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8339,7 +9341,11 @@ Kernel: %3 %4 Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">This setting does not override disabling recycle bin prompts</span></p></body></html> - + <html><head/><body><p><span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">Esta definição não substitui + a desativação das solicitações da lixeira</span></p></body></html> + Confirm when clients request entry deletion @@ -8351,11 +9357,15 @@ Kernel: %3 %4 crash the client if the database can not be unlocked within a certain timeout. (Usually 25s, but may be a different value set in applications.)</p></body></html> - + <html><head/><body><p>Melhora a compatibilidade com certas aplicações + que procuram por senhas, mas sem desbloquear o banco de dados.</p><p> Porém, ao ativar esta opção + também é possível travar o cliente se o banco de dados não puder ser desbloqueado dentro de um certo limite de tempo. (normalmente 25 seg., embora + outro valor possa ser definido em aplicações).</p></body></html> + Prompt to unlock database before searching - + Peça o desbloqueio do banco de dados antes de pesquisar Exposed database groups: @@ -8437,7 +9447,7 @@ Kernel: %3 %4 ShareExport Could not write export container. - + Não foi possível escrever no contêiner de exportação @@ -8482,11 +9492,38 @@ Kernel: %3 %4 Exportar para %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + Clique duas vezes em uma ação para alterar seu atalho + + + Shortcut Conflict + Conflito de Atalhos + + + Filter... + Filtro... + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All - Tudo + Clear Search + Limpar Busca + + + All Entries + Todas as Entradas Expired @@ -8497,6 +9534,25 @@ Kernel: %3 %4 Senhas Fracas + + TagView + + Remove Search + Remover Busca + + + Remove Tag + Remover Etiqueta + + + Confirm Remove Tag + Confirmar Remoção da Etiqueta + + + Remove tag "%1" from all entries in this database? + Remover etiqueta "%1" de todas as entradas neste banco de dados? + + TotpDialog @@ -8509,7 +9565,7 @@ Kernel: %3 %4 Expires in <b>%n</b> second(s) - Expira em <b>%n</b> segundo(s)Expira em <b>%n</b> segundo(s) + Expira em <b>%n</b> segundo(s)Expira em <b>%n</b> segundo(s)Expira em <b>%n</b> segundo(s) @@ -8654,26 +9710,6 @@ Exemplo: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Começe a guardar suas senhas de maneira segura em um banco de dados do KeePassXC - - Create new database - Criar novo banco de dados - - - Open existing database - Abrir banco de dados existente - - - Import from KeePass 1 - Importar do KeePass 1 - - - Import from 1Password - Importar do 1Password - - - Import from CSV - Importar arquivo CSV - Recent databases Bancos de dados recentes @@ -8686,6 +9722,18 @@ Exemplo: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Bem-vindo ao KeePassXC %1 + + Create Database + Criar Banco de Dados + + + Open Database + Abrir Banco de Dados + + + Import File + + WinUtils @@ -8702,50 +9750,19 @@ Exemplo: JBSWY3DPEHPK3PXP Não foi possível registrar o atalho global - - WindowsHello - - Failed to init KeePassXC crypto. - Falha ao iniciar a criptografia KeePassXC. - - - Failed to encrypt key data. - - - - Failed to get Windows Hello credential. - Falha ao obter a credencial do Windows Hello. - - - Failed to decrypt key data. - - - YubiKey - - %1 No interface, slot %2 - %1 Sem interface, slot %2 - General: Geral: Could not find interface for hardware key with serial number %1. Please connect it to continue. - + Não foi possível localizar a interface para o dispositivo com o número de série %1. Introduza o seu dispositivo para continuar. YubiKeyEditWidget - - Refresh hardware tokens - Atualizar os tokens de hardware - - - Refresh - Atualizar - Hardware key slot selection Seleção de campo de chave de hardware @@ -8778,10 +9795,6 @@ Exemplo: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove Pergunta de segurança definida, clique para alterar ou remover - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>Se tiver uma <a href="https://www.yubico.com/">YubiKey</a> ou <a href="https://onlykey.io">Only Key</a>, pode utilizá-la para mais segurança.</p><p>A chave requer que uma das suas ranhuras seja programada como uma <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - Detecting hardware keys… Detectando chaves de hardware... @@ -8790,31 +9803,24 @@ Exemplo: JBSWY3DPEHPK3PXP No hardware keys detected Nenhuma chave física detectada - - - YubiKeyInterface - %1 Invalid slot specified - %2 - Slot inválido do %1 especificado - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] Resposta-Desafio - Slot %3 - The YubiKey PCSC interface has not been initialized. A interface YubiKey PCSC não foi inicializada. - - Hardware key is currently in use. - A chave de hardware está atualmente em uso. - Could not find or access hardware key with serial number %1. Please present it to continue. - + Não foi possível localizar ou acessar a interface para o dispositivo com o número de série %1. Introduza o seu dispositivo para continuar. Hardware key is locked or timed out. Unlock or re-present it to continue. @@ -8826,8 +9832,23 @@ Exemplo: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 + Houve uma falha ao tentar concluir a pergunta de segurança. O código de erro do PSCSC foi: %1 + + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + Press + USB Challenge-Response Key interaction request + Aperte + + + Passive + USB Challenge-Response Key no interaction required + Passivo + YubiKeyInterfaceUSB @@ -8835,14 +9856,6 @@ Exemplo: JBSWY3DPEHPK3PXP Unknown Desconhecido - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] Slot configurado - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] Resposta-Desafio - Slot %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8857,10 +9870,6 @@ Exemplo: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. A interface YubiKey USB não foi inicializada. - - Hardware key is currently in use. - A chave de hardware está atualmente em uso. - Could not find hardware key with serial number %1. Please plug it in to continue. Não foi possível encontrar a chave de hardware com o número de série %1. Por favor, conecte-o para continuar. @@ -8877,5 +9886,15 @@ Exemplo: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 Falha ao completar o desafio-resposta, o erro específico foi: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_pt_PT.ts b/share/translations/keepassxc_pt_PT.ts index a3177c723..df13086f1 100644 --- a/share/translations/keepassxc_pt_PT.ts +++ b/share/translations/keepassxc_pt_PT.ts @@ -15,7 +15,7 @@ KeePassXC is distributed under the terms of the GNU General Public License (GPL) version 2 or (at your option) version 3. - KeePassXC é distribuído nos termos da GNU General Public License (GPL) versão 2 ou versão 3 (por opção). + KeePassXC é distribuído nos termos da GNU General Public License (GPL) versão 2 ou versão 3 (por opção) Project Maintainers: @@ -23,7 +23,7 @@ Special thanks from the KeePassXC team go to debfx for creating the original KeePassX. - Um agradecimento especial da equipa KeePassXC a debfx por ter criado a aplicação KeePassX. + Um agradecimento especial da equipa KeePassXC a debfx por ter criado a aplicação KeePassX Contributors @@ -80,6 +80,10 @@ Details Detalhes + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + A sua escolha será memorizada enquanto o cliente e o KeePassXC estiverem em execução + Remember Memorizar @@ -88,17 +92,13 @@ Allow Selected Permitir selecionados - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - A sua escolha será memorizada enquanto o cliente e o KeePassXC estiverem em execução. - Deny All && Future - + Recusar agora e futuramente Allow All && &Future - + Permitir agora e futuramente @@ -122,6 +122,10 @@ Use OpenSSH Usar OpenSSH + + Use both agents + Utilizar ambos os agentes + SSH_AUTH_SOCK override Substituição SSH_AUTH_SOCK @@ -148,11 +152,7 @@ SSH Agent connection is working! - Ligação ao agente SSH a funcionar! - - - Use both agents - Utilizar ambos os agentes + Ligação ao agente SSH está funcional! @@ -169,6 +169,10 @@ Security Segurança + + This setting cannot be enabled when minimize on unlock is enabled. + Esta definição não pode ser ativada se a opção "Minimizar janela após desbloquear a base de dados" estiver ativa + Access error for config file %1 Erro de acesso ao ficheiro %1 @@ -223,7 +227,7 @@ Select backup storage directory - Selecione o diretório para o backup + Selecione o diretório para a cópia de segurança @@ -242,7 +246,7 @@ Automatically launch KeePassXC at system startup - Iniciar KeePassXC ao arrancar o sistema + Iniciar o KeePassXC ao arrancar o sistema Minimize window at application startup @@ -256,6 +260,10 @@ Remember previously used databases Memorizar últimas bases de dados utilizadas + + recent files + ficheiros recentes + Load previously open databases on startup Ao iniciar, carregar as últimas base de dados utilizadas @@ -313,15 +321,15 @@ Backup database file before saving - Criar backup da base de dados antes de guardar + Criar cópia de segurança da base de dados antes de guardar Backup destination - Destino do backup + Destino da cópia de segurança Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". - Especifica a localização para o backup da base de dados. As ocorrências de "{DB_FILENAME}" serão substituidas pelo nome de ficheiro da base de dados exportada mas sem extensão. {TIME:<format>} será substituido pela hora do backup. Consulte https://doc.qt.io/qt-5/qdatetime.html#toString. <format> Os valores padrão a utilizar serão "dd_MM_yyyy_hh-mm-ss". + Especifica a localização para a cópia de segurança da base de dados. As ocorrências de "{DB_FILENAME}" serão substituídas pelo nome de ficheiro da base de dados exportada mas sem extensão. {TIME:<format>} será substituído pela hora da cópia de segurança. Consulte https://doc.qt.io/qt-5/qdatetime.html#toString. <format> Os valores padrão a utilizar serão "dd_MM_yyyy_hh-mm-ss". {DB_FILENAME}.old.kdbx @@ -329,11 +337,11 @@ Choose... - Escolher... + Escolher… Use alternative saving method (may solve problems with Dropbox, Google Drive, GVFS, etc.) - Utilizar um método de guardar alternativo (pode resolver problemas com Dropbox, Google Drive, GVFS, etc.) + Utilizar um método de guardar alternativo (pode resolver problemas com Dropbox, Google Drive, GVFS, etc) Temporary file moved into place @@ -369,7 +377,7 @@ Favicon download timeout: - Tempo limite para descarregar o 'favicon': + Tempo limite para descarregar o ícone de favoritos: Website icon download timeout in seconds @@ -408,6 +416,10 @@ Toolbar button style: Estilo dos botões da barra de ferramentas: + + Show passwords in color + Mostrar palavras-passe a cor + Use monospaced font for notes Utilizar letra mono-espaçada para as notas @@ -434,7 +446,7 @@ Reset settings to default… - Repor definições padrão... + Repor definições padrão… Auto-Type @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons Utilizar DuckDuckGo para descarregar os ícones dos sites + + Hide TOTP in the entry preview panel + Ocultar TOTP no painel de pré-visualização + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 Atraso muito longo detetado, o máximo é %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + A entrada não tem o atributo para PICKCHARS: %1 + Invalid conversion type: %1 Tipo de conversão inválido: %1 @@ -686,7 +706,7 @@ AutoTypePlatformX11 Trying to send invalid keysym. - A tentar enviar keysym inválida. + A tentar enviar keysym inválida Sequence aborted: Caps Lock is on @@ -731,7 +751,7 @@ Ctrl+4 - Utilizar teclado virtual (apenas Windows)</p> Search… - Pesquisar... + Pesquisar… Type Sequence @@ -804,13 +824,13 @@ Ctrl+4 - Utilizar teclado virtual (apenas Windows)</p> Disable for this site Desativar para este site + + Undo + Reverter + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser - Guardar entrada - Ok Ok @@ -825,13 +845,70 @@ Please select the correct database for saving credentials. Existem várias bases de dados abertas. Selecione a base de dados correta para guardar as credenciais. + + KeePassXC - Select Database + KeePassXC - Selecionar base de dados + + + + BrowserPasskeysConfirmationDialog + + Cancel + Cancelar + + + Update + Atualizar + + + Authenticate + Autenticar + + + Register new + Registar nova + + + Register + Registar + + + Timeout in <b>%n</b> seconds... + Caduca em <b>%n</b> segundo...Caduca em <b>%n</b> segundos...Caduca em <b>%n</b> segundos... + + + Do you want to register Passkey for: + Deseja registar a chave-mestra para: + + + Existing Passkey found. +Do you want to register a new Passkey for: + Foi encontrada uma chave-mestra. +Deseja registar a nova chave-mestra para: + + + Select the existing Passkey and press Update to replace it. + Selecione a chave-mestra existente e clique Atualizar para a substituir + + + Authenticate Passkey credentials for: + Autenticar credencias de chave-mestra para: + + + Relying Party: %1 + Entidades fiáveis: %1 + + + Username: %1 + Nome de utilizador: %1 + + + KeePassXC - Passkey credentials + KeePassXC - Credenciais da chave-mestra + BrowserService - - KeePassXC: Create a new group - KeePassXC: Criar um novo grupo - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -840,10 +917,6 @@ Do you want to create this group? Deseja criar este grupo? - - KeePassXC: New key association request - KeePassXC: Pedido de associação da nova chave - You have received an association request for the following database: %1 @@ -860,28 +933,16 @@ chrome-laptop Save and allow access Guardar e permitir acesso - - KeePassXC: Overwrite existing key? - KeePassXC: Substituir chave existente? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? Já existe uma chave de cifra partilhada com o nome "%1". Deseja substituir a chave existente? - - KeePassXC: Update Entry - KeePassXC: Atualizar entrada - Do you want to update the information in %1 - %2? Deseja atualizar as informações em %1 - %2? - - KeePassXC: Delete entry - KeePassXC: Eliminar entrada - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -891,50 +952,46 @@ Deseja eliminar a entrada? - Converting attributes to custom data… - A converter atributos para dados personalizados... + %1 (Passkey) + %1 (chave-mestra) - Abort - Abortar + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + A entrada já possui uma chave-mestra. +Deseja substituir a chave-mestra em %1 - %2? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Atributos KeePassHTTP convertidos + KeePassXC - Create a new group + KeePassXC - Criar um novo grupo - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Convertidos com sucesso s atributos para %1 entrada(s). -%2 chaves movidas para dados personalizados. - - - Successfully moved %n keys to custom data. - %n chave movida para dados personalizados.%n chaves movidas para dados personalizados. + Disable + Desativar - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Não existem entradas com atributos KeePassHTTP! + KeePassXC - Overwrite existing key? + KeePassXC - Substituir chave existente? - The active database does not contain an entry with KeePassHTTP attributes. - A base de dados ativa não tem entradas com atributos KeePassHTTP. + KeePassXC - Update Passkey + KeePassXC Atualizar chave-mestra - Don't show this warning again - Não mostrar novamente + KeePassXC - Update Entry + KeePassXC - Atualizar entrada - KeePassXC: Legacy browser integration settings detected - KeePassXC: Detetadas definições de integração legada com o navegador + KeePassXC - Delete entry + KeePassXC - Eliminar entrada - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Tem que mover as definições KeePassXC-Browser para as definições da base de dados. -Este procedimento é necessário para manter as ligações existentes. -Gostaria de migrar agora as definições? + KeePassXC - New key association request + KeePassXC - Pedido de associação da nova chave + + + Passkey + Chave-mestra @@ -957,7 +1014,7 @@ Gostaria de migrar agora as definições? Browsers installed as snaps are currently not supported. - Ainda não existe suporte a navegadores no formato Snap. + Ainda não existe suporte a navegadores no formato Snap Enable integration for these browsers: @@ -1002,11 +1059,11 @@ Gostaria de migrar agora as definições? Only entries with the same scheme (http://, https://, …) are returned. - Devolver apenas as entradas com o mesmo esquema (http://, https://, ...) + Devolver apenas as entradas com o mesmo esquema (http://, https://, …) Match URL scheme (e.g., https://example.com) - Corresponder ao esquema URL (exemplo: https://example.com) + Corresponder ao esquema URL (exemplo: https://exemplo.com) Only returns the best matches for a specific URL instead of all entries for the whole domain. @@ -1026,7 +1083,7 @@ Gostaria de migrar agora as definições? All databases connected to the extension will return matching credentials. - Todas as bases de dados conectadas à extensão devolverão as credenciais coincidentes. + Todas as bases de dados conectadas à extensão devolverão as credenciais coincidentes Search in all opened databases for matching credentials @@ -1054,7 +1111,7 @@ Gostaria de migrar agora as definições? Automatically creating or updating string fields is not supported. - A criação ou atualização dos campos de cadeias não é suportada. + A criação ou atualização dos campos de cadeias não é suportada Return advanced string fields which start with "KPH: " @@ -1062,15 +1119,15 @@ Gostaria de migrar agora as definições? Don't display the popup suggesting migration of legacy KeePassHTTP settings. - Não mostrar janela que sugere a migração das definições KeePassHTTP legadas. + Não mostrar janela que sugere a migração das definições KeePassHTTP legadas Do not prompt for KeePassHTTP settings migration. - Não perguntar para migrar as definições KeePassHTTP. + Não perguntar para migrar as definições KeePassHTTP Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup. - Ao iniciar, atualizar automaticamente o caminho do KeePassXC ou do binário keepassxc-proxy para os 'sripts' nativos de mensagens. + Ao iniciar, atualizar automaticamente o caminho do KeePassXC ou do binário keepassxc-proxy para os 'sripts' nativos de mensagens Update native messaging manifest files at startup @@ -1078,7 +1135,7 @@ Gostaria de migrar agora as definições? Use a custom proxy location if you installed a proxy manually. - Utilize um proxy personalizado caso o tenha instalado manualmente. + Utilize um proxy personalizado caso o tenha instalado manualmente Use a custom proxy location: @@ -1096,7 +1153,7 @@ Gostaria de migrar agora as definições? Browse… Button for opening file dialog - Procurar... + Procurar… Use a custom browser configuration location: @@ -1142,14 +1199,6 @@ Gostaria de migrar agora as definições? Please see special instructions for browser extension use below Por favor consulte abaixo as instruções para a utilização da extensão - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Erro:</b> não foi possível encontrar a localização do proxy!<br/> A integração com o navegador não funcionará sem um proxy. - - - <b>Warning:</b> The following options can be dangerous! - <b>Aviso</b>: as opções seguintes podem ser perigosas! - Executable Files Ficheiros executáveis @@ -1166,6 +1215,38 @@ Gostaria de migrar agora as definições? Select native messaging host folder location Selecione a localização da pasta de mensagens nativas + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + Permitir que keepassxc-proxy liste todas as entradas com o seu título, URL e UUID nas bases de dados conectadas + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + Permitir acesso limitado a todas as entradas das bases de dados conectadas (ignorar restrições de acesso aos sites) + + + <b>Warning:</b> Only adjust these settings if necessary. + Aviso:</b> apenas deve ajustar estas definições se for necessário + + + The custom proxy location does not exist. + A localização do proxy não existe + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Erro:</b> a localização do proxy personalizado não existe. Corrija a localização nas definições avançadas. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Erro:</b> o executáveldo proxy instalado não existe na localização esperada: %1<br/>Defina a localização do proxy nas definições avançadas ou, em alternativa, reinstale a aplicação. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + Permite utilizar http://localhost inseguro com chaves-mestras para testes. + + + Allow using localhost with Passkeys + Permitir utilização de "localhost" com chaves-mestre + CloneDialog @@ -1188,14 +1269,6 @@ Gostaria de migrar agora as definições? CsvImportWidget - - Import CSV fields - Importar campos do CSV - - - filename - nome do ficheiro - size, rows, columns tamanho, linhas, colunas @@ -1304,51 +1377,30 @@ Gostaria de migrar agora as definições? Column %1 Coluna %1 - - Imported from CSV file - Importada de ficheiro CSV - - - Original data: - Dados originais: - - - Error(s) detected in CSV file! - Detetado(s) erro(s) no ficheiro CSV! - [%n more message(s) skipped] - [%n mensagem ignorada][%n mensagens ignoradas] + [%n mensagem ignorada][%n mensagens ignoradas][%n mensagens ignoradas] - Error - Erro + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - Importação CSV com erros: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n byte%n bytes - %n row(s) - %n linha%n linhas + CSV row count + %n linha%n linhas%n linhas %n column(s) - %n coluna%n colunas + CSV column count + %n coluna%n colunas%n colunas @@ -1360,11 +1412,11 @@ Gostaria de migrar agora as definições? File %1 does not exist. - Ficheiro %1 não existe. + Ficheiro %1 não existe Unable to open file %1. - Não foi possível abrir o ficheiro %1. + Não foi possível abrir o ficheiro %1 Error while reading the database: %1 @@ -1372,11 +1424,11 @@ Gostaria de migrar agora as definições? Could not save, database does not point to a valid file. - Não foi possível guardar porque a base de dados não indica um ficheiro válido. + Não foi possível guardar porque a base de dados não indica um ficheiro válido Database save is already in progress. - A base de dados já está a ser guardada. + A base de dados já está a ser guardada Could not save, database has not been initialized! @@ -1384,13 +1436,13 @@ Gostaria de migrar agora as definições? Database file has unmerged changes. - A base de dados tem alterações não guardadas. + A base de dados tem alterações não guardadas %1 Backup database located at %2 %1 -Backup localizado em %2 +Cópia de segurança localizada em %2 Key not transformed. This is a bug, please report it to the developers. @@ -1422,40 +1474,10 @@ Backup localizado em %2 Password field Campo Palavra-passe - - Enter Additional Credentials (if any): - Introduza as credenciais adicionais (se existentes): - - - Key File: - Ficheiro-chave: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>Para além da palavra-passe, pode utilizar um ficheiro-chave para aumentar a segurança da sua base de dados. Este ficheiro pode ser gerado nas definições de segurança da sua base de dados..</p><p><strong>Não</strong> pode utilizar ficheiros *.kdbx como ficheiro-chave!<br>Se não quiser utilizar um ficheiro-chave, deixe este campo em branco.</p><p>Clique aqui para mais informação.</p> - - - Key file help - Ajuda para ficheiros-chave - Hardware key slot selection Seleção de 'slot' para a chave de hardware - - Hardware Key: - Chave de hardware: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>Pode utilizar um dispositivo de segurança tais como <strong>YubiKey</strong> ou <strong>OnlyKey</strong> com ranhuras configuradas para HMAC-SHA1.</p> -<p>Clique aqui para mais informações.</p> - - - Hardware key help - Ajuda para chaves de hardware - Key file to unlock the database Ficheiro-chave para desbloquear a base de dados @@ -1466,15 +1488,7 @@ Backup localizado em %2 Browse… - Procurar... - - - Refresh hardware tokens - Recarregar 'tokens' de hardware - - - Refresh - Recarregar + Procurar… Unlock Database @@ -1490,7 +1504,7 @@ Backup localizado em %2 Please present or touch your YubiKey to continue… - Introduza ou toque na sua YubiKey para continuar... + Introduza ou toque na sua YubiKey para continuar… Database Version Mismatch @@ -1518,7 +1532,7 @@ Deve atualizar KeePassXC para a versão mais recente. Database unlock canceled. - Cancelou o desbloqueio da base de dados. + Cancelou o desbloqueio da base de dados Unlock failed and no password given @@ -1538,14 +1552,6 @@ Para impedir que este erro surja novamente, deve aceder a "Definições da Retry with empty password Tentar com palavra-passe vazia - - Failed to authenticate with Windows Hello - Não foi possível autenticar com Windows Hello - - - Failed to authenticate with Touch ID - Não foi possível autenticar com Touch ID - Failed to open key file: %1 Não foi possível abrir o ficheiro-chave: %1 @@ -1579,22 +1585,60 @@ Para impedir que este erro surja novamente, deve aceder a "Definições da Não pode utilizar uma base de dados como ficheiro-chave - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Não pode utilizar o ficheiro da sua base de dados como ficheiro-chave. -Se não quiser utilizar um ficheiro-chave, deixe este campo em branco. + authenticate to access the database + autentique-se para aceder à base de dados - Detecting hardware keys… - A detetar chaves de hardware... + Failed to authenticate with Quick Unlock: %1 + Não foi possível autenticar com Quick Unlock: %1 - No hardware keys detected - Não foram detetadas chaves de hardware + Select Key File: + - Select hardware key… - Selecione a chave de hardware... + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1606,10 +1650,6 @@ Se não quiser utilizar um ficheiro-chave, deixe este campo em branco. DatabaseSettingsDialog - - Advanced Settings - Definições avançadas - General Geral @@ -1641,18 +1681,6 @@ Se não quiser utilizar um ficheiro-chave, deixe este campo em branco.KeePassXC-Browser settings Definições KeePassXC-Browser - - Convert KeePassHTTP data - Converter dados KeePassHTTP - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - Converter atributos legados KeePassHTTP para dados compatíveis com KeePassXC-Browser - - - Refresh database root group ID - Recarregar ID do grupo raiz da base de dados - Disconnect all browsers Desconectar de todos os navegadores @@ -1661,6 +1689,10 @@ Se não quiser utilizar um ficheiro-chave, deixe este campo em branco.Forget all site-specific settings on entries Esquecer definições específicas dos sites (nas entradas) + + Refresh database root group ID + Recarregar ID do grupo raiz da base de dados + Stored keys Chaves guardadas @@ -1701,7 +1733,7 @@ Esta ação pode impedir a ligação ao suplemento. Enable Browser Integration to access these settings. - Ative a integração com o navegador para aceder a estas definições. + Ative a integração com o navegador para aceder a estas definições Do you really want to disconnect all browsers? @@ -1709,21 +1741,13 @@ This may prevent connection to the browser plugin. Tem a certeza de que deseja desconectar todos os navegadores? Esta ação pode interferir com a ligação ao suplemento. - - KeePassXC: No keys found - KeePassXC: Nenhuma chave encontrada - No shared encryption keys found in KeePassXC settings. - Não foram encontradas chaves de cifra nas definições do KeePassXC. - - - KeePassXC: Removed keys from database - KeePassXC: Chaves removidas da base de dados + Não foram encontradas chaves de cifra nas definições do KeePassXC Successfully removed %n encryption key(s) from KeePassXC settings. - %n chave de cifra removida das definições do KeePassXC.%n chaves de cifra removidas das definições do KeePassXC. + %n chave de cifra removida das definições do KeePassXC%n chaves de cifra removidas das definições do KeePassXC%n chaves de cifra removidas das definições do KeePassXC Do you really want forget all site-specific settings on every entry? @@ -1733,37 +1757,19 @@ Serão removidas todas as permissões para aceder às entradas. Removing stored permissions… - A remover permissões guardadas... + A remover permissões guardadas… Abort Abortar - - KeePassXC: Removed permissions - KeePassXC: Permissões removidas - Successfully removed permissions from %n entry(s). - Removidas com sucesso as permissões de %n entrada.Removidas com sucesso as permissões de %n entradas. - - - KeePassXC: No entry with permissions found! - KeePassXC: Não existem entradas com permissões! + Removidas com sucesso as permissões de %n entradaRemovidas com sucesso as permissões de %n entradasRemovidas com sucesso as permissões de %n entradas The active database does not contain an entry with permissions. - A base de dados ativa não contém qualquer entrada com permissões. - - - Move KeePassHTTP attributes to custom data - Mover atributos KeePassHTTP para dados personalizados - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Tem a certeza de que deseja converter os dados legados para a versão mais recente? -Esta atualização é necessária para manter a compatibilidade com o suplemento. + A base de dados ativa não contém qualquer entrada com permissões Refresh database ID @@ -1775,12 +1781,32 @@ This is only necessary if your database is a copy of another and the browser ext Tem a certeza de que deseja recarregar a ID da base de dados? Esta ação apenas será necessária se a sua base de dados for uma cópia de outra e não for possível estabelecer ligação ao navegador. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Converter atributos legados KeePassHTTP para dados compatíveis com KeePassXC-Browser + + + No keys found + Não existem chaves + + + Removed keys from database + Chaves removidas da base de dados + + + Removed permissions + Permissões removidas + + + No entry with permissions found! + Encontrada nova entrada com permissões! + DatabaseSettingsWidgetDatabaseKey Add additional protection… - Adicionar proteção extra... + Adicionar proteção extra… No password set @@ -1814,6 +1840,18 @@ Tem a certeza de que deseja continuar? Failed to change database credentials Não foi possível alterar as credenciais + + Weak password + Palavra-passe fraca + + + You must enter a stronger password to protect your database. + Tem que introduzir uma palavra-passe mais segura para proteger a sua base de dados. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + Esta palavra-passe é insegura. Para proteger os seus segredos, deve utilizar uma palavra-passe mais segura. + DatabaseSettingsWidgetEncryption @@ -1821,21 +1859,13 @@ Tem a certeza de que deseja continuar? Decryption Time: Tempo para decifrar: - - Change existing decryption time - Alterar tempo para decifrar - - - Change - Alterar - Decryption time in seconds Tempo para decifrar (segundos) Higher values offer more protection, but opening the database will take longer. - Valores mais altos oferecem mais proteção mas também pode demorar mais tempo para abrir a base de dados. + Valores mais altos oferecem mais proteção mas a base de dados demorará mais tempo a abrir Database format: @@ -1851,7 +1881,7 @@ Tem a certeza de que deseja continuar? Unless you need to open your database with other programs, always use the latest format. - A menos que necessite de abrir a base de dados em outras aplicações, deve utilizar sempre o formato mais recente. + A menos que necessite de abrir a base de dados em outras aplicações, deve utilizar sempre o formato mais recente Encryption Algorithm: @@ -1909,11 +1939,6 @@ Tem a certeza de que deseja continuar? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - inalterado - Number of rounds too high Key transformation rounds @@ -1959,12 +1984,24 @@ Se mantiver este número, a sua base de dados pode ser desbloqueada muito facilm MiB Abbreviation for Mebibytes (KDF settings) - MiB MiB + MiB MiB MiB thread(s) Threads for parallel execution (KDF settings) - processo processos + processo processos processos + + + Encryption Settings: + Definições de cifra: + + + Basic + Básica + + + Advanced + Avançado @@ -1983,7 +2020,7 @@ Se mantiver este número, a sua base de dados pode ser desbloqueada muito facilm Enable Secret Service to access these settings. - Ative 'Secret Service' para aceder a estas definições. + Ative 'Secret Service' para aceder a estas definições @@ -2024,18 +2061,10 @@ Se mantiver este número, a sua base de dados pode ser desbloqueada muito facilm Maximum number of history items per entry Número máximo de itens de histórico por entrada - - Max. history items: - Número máximo de itens no histórico: - Maximum size of history per entry Tamanho de histórico por entrada - - Max. history size: - Tamanho máximo para o histórico: - MiB MiB @@ -2066,6 +2095,64 @@ Esta ação é irreversível. (old) (antiga) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + Ao guardar esta definição ou editar uma entrada +os itens mais antigos da história de uma entrada serão +removidos de tal forma que apenas o número máximo especificado +das entradas permanecem. + + + Limit the amount of history items per entry to: + Limitar número de itens no histórico, por entrada, a: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + Ao guardar esta definição ou editar uma entrada +os itens mais antigos da história de uma entrada serão +removidos de tal forma que os itens de história restantes +somam ao máximo do número especificado. + + + Limit the total size of history items per entry to: + Limitar tamanho total dos itens no histórico, por entrada, a: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Mover entradas para um grupo de reciclagem +em vez de os remover da base de dados. +As entradas eliminadas da reciclagem serão +removidas da base de dados. + + + Autosave delay since last change + Atraso para gravação automática após a última alteração + + + Autosave delay + Atraso para gravação automática + + + Autosave delay since last change in minutes + Atraso para gravação automática após a última alteração (minutos) + + + min + min + + + Autosave delay since last change checkbox + Atraso para gravação automática após a última alteração da caixa de seleção + DatabaseSettingsWidgetKeeShare @@ -2107,11 +2194,11 @@ Esta ação é irreversível. Delete selected icon(s) - Eliminar ícones selecionados + Remover ícones selecionados Delete all custom icons not in use by any entry or group - Eliminar todos os ícones personalizados que não estejam a ser usados + Remover todos os ícones personalizados que não estejam a ser usados Purge unused icons @@ -2131,7 +2218,7 @@ Esta ação é irreversível. All custom icons are in use by at least one entry or group. - Todos os ícones personalizados estão a ser utilizados por uma entrada ou grupo. + Todos os ícones personalizados estão a ser utilizados por uma entrada ou grupo Purged Unused Icons @@ -2139,7 +2226,7 @@ Esta ação é irreversível. Purged %n icon(s) from the database. - %n ícone removido da base de dados.%n ícones removidos da base de dados. + %n ícone removido da base de dados%n ícones removidos da base de dados%n ícones removidos da base de dados @@ -2193,37 +2280,33 @@ Existe aqui um erro que deve ser reportado aos programadores. CSV file Ficheiro CSV - - Select CSV file - Selecionar ficheiro CSV - Merge database Combinar base de dados - - KeePass 1 database - Base de dados do KeePass 1 - - - Open KeePass 1 database - Abrir base de dados do KeePass 1 - - - Open OPVault - Open OPVault - Export database to CSV file Exportar base de dados para ficheiro CSV Writing the CSV file failed. - Não foi possível escrever no ficheiro CSV. + Não foi possível escrever no ficheiro CSV Writing the HTML file failed. - Não foi possível escrever no ficheiro HTML. + Não foi possível escrever no ficheiro HTML + + + Export database to XML file + Exportar base de dados para ficheiro XML + + + XML file + Ficheiro XML + + + Writing the XML file failed + Não foi possível escrever o ficheiro XML Export Confirmation @@ -2233,15 +2316,6 @@ Existe aqui um erro que deve ser reportado aos programadores. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? Está prestes a exportar a sua base de dados para um ficheiro não cifrado. As suas palavras-passe e informações pessoais ficarão vulneráveis. Tem a certeza de que deseja continuar? - - New Database - Nova base de dados - - - %1 [New Database] - Database tab name modifier - %1 [Nova base de dados] - %1 [Locked] Database tab name modifier @@ -2251,16 +2325,16 @@ Existe aqui um erro que deve ser reportado aos programadores. DatabaseWidget - Database Tags - Etiquetas da base de dados + Searches and Tags + Pesquisa e etiquetas Searching… - A pesquisar... + A pesquisar… Shared group… - Grupo partilhado... + Grupo partilhado… Confirm Auto-Type @@ -2302,21 +2376,25 @@ Existe aqui um erro que deve ser reportado aos programadores. Expired entries Entradas caducadas + + Entries expiring within %1 day(s) + Entradas a caducar dentro de %1 diaEntradas a caducar dentro de %1 diasEntradas a caducar dentro de %1 dias + No current database. - Nenhuma base de dados. + Nenhuma base de dados No source database, nothing to do. - Não existe base de dados de origem, nada para fazer. + Não existe base de dados de origem Successfully merged the database files. - Bases de dados combinadas com sucesso. + Bases de dados combinadas com sucesso Database was not modified by merge operation. - A base de dados não foi modificada pela combinação. + A base de dados não foi modificada pela combinação Search Results (%1) @@ -2326,6 +2404,18 @@ Existe aqui um erro que deve ser reportado aos programadores. No Results Não há resultados + + Save + Guardar + + + Enter a unique name or overwrite an existing search from the list: + Introduza um nome exclusivo ou substitua uma pesquisa da lista: + + + Save Search + Guardar pesquisa + Lock Database? Bloquear base de dados? @@ -2337,13 +2427,13 @@ Existe aqui um erro que deve ser reportado aos programadores. "%1" was modified. Save changes? - "%1" foi modificada. + "%1" foi modificada Guardar alterações? Database was modified. Save changes? - A base de dados foi modificada. + A base de dados foi modificada Guardar alterações? @@ -2365,13 +2455,13 @@ Guardar alterações? The database file has changed and you have unsaved changes. Do you want to merge your changes? - A base de dados foi alterada e tem alterações não guardadas. + A base de dados foi alterada e tem alterações não guardadas Deseja combinar as suas alterações? Could not open the new database file while attempting to autoreload. Error: %1 - Não foi possível abrir a nova base de dados durante o carregamento. + Não foi possível abrir a nova base de dados durante o carregamento Erro: %1 @@ -2402,7 +2492,7 @@ Desativar salvaguardas e tentar novamente? Save database backup - Guardar backup da base de dados + Guardar cópia de segurança da base de dados Empty recycle bin? @@ -2416,9 +2506,14 @@ Desativar salvaguardas e tentar novamente? Could not find database file: %1 Não foi possível encontrar a base de dados: %1 - - Entries expiring within %1 day(s) - Entradas a caducar dentro de %1 diaEntradas a caducar dentro de %1 dias + + New Database + Nova base de dados + + + %1 [New Database] + Database tab name modifier + %1 [Nova base de dados] @@ -2493,7 +2588,7 @@ Desativar salvaguardas e tentar novamente? Some Browser Integration settings are overridden by group settings. - Algumas definições da integração com o navegador foram substituídas pelas definições do grupo. + Algumas definições da integração com o navegador foram substituídas pelas definições do grupo Invalid Entry @@ -2527,7 +2622,7 @@ Gostaria de a corrigir? Entry updated successfully. - Entrada atualizada com sucesso. + Entrada atualizada com sucesso Unsaved Changes @@ -2555,27 +2650,27 @@ Gostaria de a corrigir? [PROTECTED] Press Reveal to view or edit - [PROTEGIDA] Por favor revele para ver ou editar + [PROTEGIDO] Use o botão 'Mostrar' para ver ou editar Hide Ocultar + + %n hour(s) + %n hora%n horas%n horas + %n week(s) - %n semana%n semanas + %n semana%n semanas%n semanas %n month(s) - %n mês%n meses + %n mês%n meses%n meses %n year(s) - %n ano%n anos - - - %n hour(s) - %n hora%n horas + %n ano%n anos%n anos @@ -2669,11 +2764,11 @@ Gostaria de a corrigir? Inherit default Auto-Type sequence from the group - Herdar sequência de auto escrita padrão deste grupo + Herdar sequência de escrita automática padrão deste grupo Use custom Auto-Type sequence: - Utilizar sequência de auto escrita personalizada: + Utilizar sequência de escrita automática personalizada: Custom Auto-Type sequence @@ -2695,10 +2790,20 @@ Gostaria de a corrigir? Add new window association Adicionar nova associação + + + + Add item + + + Remove selected window association Remover associação selecionada + + - + Remove item + - + Window title: Título da janela: @@ -2723,22 +2828,12 @@ Gostaria de a corrigir? Custom Auto-Type sequence for this window Sequência personalizada de escrita automática para esta janela - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser These settings affect to the entry's behaviour with the browser extension. - Estas definições afetam o comportamento da entrada com a extensão do navegador. + Estas definições afetam o comportamento da entrada com a extensão do navegador General @@ -2834,22 +2929,10 @@ Gostaria de a corrigir? Notes field Campo Notas - - Toggle the checkbox to reveal the notes section. - Alternar caixa de seleção para mostrar a secção de notas. - Username field Campo Nome de utilizador - - Toggle notes visible - Alternar visibilidade das notas - - - Notes: - Notas: - Expiration field Campo Caduca @@ -2866,34 +2949,18 @@ Gostaria de a corrigir? Presets Predefinições - - Password: - Palavra-passe: - - - URL: - URL: - Url field Campo URL Download favicon for URL - Descarregar 'favicon' para o URL - - - Title: - Título: + Descarregar ícone de um URL Title field Campo Título - - Username: - Nome de utilizador: - Password field Campo Palavra-passe @@ -2902,18 +2969,42 @@ Gostaria de a corrigir? Toggle expiration Alternar caducidade - - Expires: - Caduca: - - - Tags: - Etiquetas: - Tags list Lista de etiquetas + + &Username: + Nome de &utilizador: + + + &Title: + &Título: + + + &Password: + &Palavra-passe: + + + UR&L: + UR&L: + + + &Notes: + &Notas: + + + Toggle notes visibility + Alternar exibição das notas + + + T&ags: + Etiquet&as: + + + &Expires: + &Caduca: + EditEntryWidgetSSHAgent @@ -2953,19 +3044,6 @@ Gostaria de a corrigir? Private key Chave privada - - External file - Ficheiro externo - - - Browser for key file - Explorador para ficheiro-chave - - - Browse… - Button for opening file dialog - Procurar... - Attachment Anexo @@ -2982,6 +3060,23 @@ Gostaria de a corrigir? Remove from agent Remover do agente + + External file + Ficheiro externo + + + Browser for key file + Explorador para ficheiro-chave + + + Browse… + Button for opening file dialog + Procurar… + + + Generate + Gerar + Select attachment file Selecionar anexo @@ -3017,10 +3112,6 @@ Gostaria de a corrigir? Icon Ãcone - - Browser Integration - Integração com o navegador - Properties Propriedades @@ -3037,6 +3128,10 @@ Gostaria de a corrigir? Group has unsaved changes Grupo tem alterações por guardar + + Browser Integration + Integração com o navegador + Enable Ativar @@ -3052,13 +3147,9 @@ Gostaria de a corrigir? EditGroupWidgetBrowser - - Edit Group - Editar grupo - These settings affect to the group's behaviour with the browser extension. - Estas definições afetam o comportamento do grupo em relação à integração com navegadores. + Estas definições afetam o comportamento do grupo em relação à integração com navegadores Hide entries from browser extension: @@ -3092,6 +3183,22 @@ Gostaria de a corrigir? Do not use HTTP Auth toggle for this and sub groups Não utilizar HTTP Basic Auth para este grupo (e subgrupos) + + Omit WWW subdomain from matching: + Omitir subdomínio WWW da correspondência: + + + Omit WWW subdomain from matching toggle for this and sub groups + Omitir subdomínio WWW do alternador de correspondência: para isto e subgrupos + + + Restrict matching to given browser key: + Restringir ocorrência a uma chave do navegador: + + + Restrict matching to given browser key toggle for this and sub groups + + EditGroupWidgetKeeShare @@ -3125,7 +3232,7 @@ Gostaria de a corrigir? Browse… - Procurar... + Procurar… Clear fields @@ -3159,15 +3266,15 @@ As extensões suportadas são: %1. %1 is already being exported by this database. - %1 já está a ser exportado para esta base de dados. + %1 já está a ser exportado para esta base de dados %1 is already being imported by this database. - %1 já está a ser importado para esta base de dados. + %1 já está a ser importado para esta base de dados %1 is being imported and exported by different groups in this database. - %1 está a ser importada e exportada por grupos distintos desta base de dados. + %1 está a ser importada e exportada por grupos distintos desta base de dados KeeShare is currently disabled. You can enable import/export in the application settings. @@ -3176,11 +3283,11 @@ As extensões suportadas são: %1. Database export is currently disabled by application settings. - As suas definições não permitem a exportação de bases de dados. + As suas definições não permitem a exportação de bases de dados Database import is currently disabled by application settings. - As suas definições não permitem a importação de bases de dados. + As suas definições não permitem a importação de bases de dados KeeShare container @@ -3278,23 +3385,23 @@ As extensões suportadas são: %1. Choose icon… - Escolher ícone... + Escolher ícone… Set the URL to use to search for a favicon - Defina o URL a utilizar para procurar 'favicons' + Defina o URL a utilizar para procurar o ícone de favoritos Favicon URL - URL de 'favicon' + URL do ícone de favoritos Download favicon for URL - Descarregar 'favicon' para o URL + Descarregar ícone de um URL Download favicon - Descarregar 'favicon' + Descarregar ícone Apply selected icon to subgroups and entries @@ -3302,7 +3409,7 @@ As extensões suportadas são: %1. Apply icon to… - Aplicar ícone a... + Aplicar ícone a… Apply to this group only @@ -3322,15 +3429,11 @@ As extensões suportadas são: %1. Unable to fetch favicon. - Não foi possível obter o 'favicon'. - - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Pode ativar o serviço DuckDuckGo em Ferramentas -> Definições -> Segurança + Não foi possível obter o ícone de favoritos Existing icon selected. - Selecionou um ícone existente. + Selecionou um ícone existente Images @@ -3346,7 +3449,7 @@ As extensões suportadas são: %1. Successfully loaded %1 of %n icon(s) - %1 de %n ícone carregados com sucesso%1 de %n ícones carregados com sucesso + %1 de %n ícone carregados com sucesso%1 de %n ícones carregados com sucesso%1 de %n ícones carregados com sucesso No icons were loaded @@ -3354,11 +3457,15 @@ As extensões suportadas são: %1. %n icon(s) already exist in the database - %n ícone já existe na sua base de dados%n ícones já existem na sua base de dados + %n ícone já existe na sua base de dados%n ícones já existem na sua base de dados%n ícones já existem na sua base de dados The following icon(s) failed: - Falha no seguinte ícone:Falha nos seguintes ícones: + Falha no seguinte ícone:Falha nos seguintes ícones:Falha nos seguintes ícones: + + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + Pode ativar o serviço DuckDuckGo em Ferramentas -> Definições -> Segurança @@ -3441,7 +3548,7 @@ Esta ação pode implicar um funcionamento errático. EntryAttachments Cannot open file "%1" - Não foi possível abrir o ficheiro %1. + Não foi possível abrir o ficheiro %1 @@ -3515,7 +3622,7 @@ Esta ação pode implicar um funcionamento errático. Are you sure you want to remove %n attachment(s)? - Tem a certeza de que deseja remover %n anexo?Tem a certeza de que deseja remover %n anexos? + Tem a certeza de que deseja remover %n anexo?Tem a certeza de que deseja remover %n anexos?Tem a certeza de que deseja remover %n anexos? Save attachments @@ -3558,6 +3665,7 @@ Esta ação pode implicar um funcionamento errático. %1 Não foi possível abrir o ficheiro: %1Não foi possível abrir os ficheiros: +%1Não foi possível abrir os ficheiros: %1 @@ -3567,7 +3675,7 @@ Esta ação pode implicar um funcionamento errático. Attachment "%1" already exists. Would you like to overwrite the existing attachment? - O anexo "%1" já existe. + O anexo "%1" já existe Deseja substituir o anexo existente? @@ -3601,7 +3709,7 @@ Deseja guardar as alterações efetuadas à base de dados? Saving updated attachment failed. Error: %1 - Não foi possível guardar o anexo alterado. + Não foi possível guardar o anexo alterado Erro: %1 @@ -3798,6 +3906,10 @@ Erro: %1 Has TOTP Tem TOTP + + Background Color + Cor de fundo + EntryPreviewWidget @@ -3818,8 +3930,8 @@ Erro: %1 Palavra-passe - Notes - Notas + URL + URL Expiration @@ -3838,8 +3950,8 @@ Erro: %1 Nome de utilizador - URL - URL + Notes + Notas Advanced @@ -3889,6 +4001,10 @@ Erro: %1 Never Nunca + + Double click to copy value + Duplo clique para copiar o valor + Enabled Ativada @@ -3897,6 +4013,10 @@ Erro: %1 Disabled Desativada + + Double click to copy to clipboard + Dois cliques para copiar para a área de transferência + EntryURLModel @@ -3904,6 +4024,10 @@ Erro: %1 Invalid URL URL inválido + + Duplicate URL + URL está duplicado + EntryView @@ -3919,6 +4043,10 @@ Erro: %1 Reset to defaults Repor predefinições + + + %1 entry(s)... + + %1 entrada...+ %1 entradas...+ %1 entradas... + ExportDialog @@ -3928,7 +4056,7 @@ Erro: %1 Sort entries by... - Ordenar entradas por... + Ordenar entradas por… You are about to export your database to an unencrypted file. @@ -3994,7 +4122,7 @@ As suas palavras-passe e informações pessoais ficarão vulneráveis! Failed to register DBus service at %1.<br/> - Não foi possível registar o serviços DBus em %1.<br/> + Não foi possível registar o serviços DBus em %1<br/> Failed to register service on DBus at path '%1' @@ -4029,7 +4157,7 @@ As suas palavras-passe e informações pessoais ficarão vulneráveis! %n Entry(s) was used by %1 %1 is the name of an application - %n entrada foi utilizada por %1%n entradas foram utilizadas por %1 + %n entrada foi utilizada por %1%n entradas foram utilizadas por %1%n entradas foram utilizadas por %1 @@ -4091,7 +4219,7 @@ As suas palavras-passe e informações pessoais ficarão vulneráveis! IconDownloaderDialog Download Favicons - Descarregar 'favicons' + Descarregar ícone de favoritos Cancel @@ -4117,11 +4245,11 @@ Pode ativar o serviço DuckDuckGo na secção 'Segurança' das defini Please wait, processing entry list… - Por favor aguarde, estamos a processar a lista de entradas... + Por favor aguarde, estamos a processar a lista de entradas… Downloading… - A descarregar... + A descarregar… Ok @@ -4137,7 +4265,148 @@ Pode ativar o serviço DuckDuckGo na secção 'Segurança' das defini Downloading favicons (%1/%2)… - A descarregar (%1/%2)... + A descarregar o ícone de favoritos (%1/%2)… + + + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Assistente + + + Entry count: %1 + + + + Group + Grupo + + + Title + Título + + + Username + Nome de utilizador + + + Password + Palavra-passe + + + Url + + + + + ImportWizardPageSelect + + Form + Formulário + + + Import File Selection + + + + Password: + Palavra-passe: + + + Key File: + Ficheiro-chave: + + + Browse… + Procurar… + + + Import Into: + + + + New Database + Nova base de dados + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Open OPVault + + + Select import file + + + + All files + Todos os ficheiros + + + Key files + Ficheiros-chave + + + Select key file + Selecione o ficheiro-chave + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + @@ -4193,7 +4462,7 @@ Caso isto volte a acontecer, pode ser que a base de dados esteja danificada. Invalid symmetric cipher IV size. IV = Initialization Vector for symmetric cipher - Tamanho inválido da cifra simétrica IV. + Tamanho inválido da cifra simétrica IV Unable to issue challenge-response: %1 @@ -4258,7 +4527,7 @@ Caso isto volte a acontecer, pode ser que a base de dados esteja danificada. Legacy header fields found in KDBX4 file. - Encontrados campos legados no ficheiro KDBX4. + Encontrados campos legados no ficheiro KDBX4 Invalid inner header id size @@ -4279,7 +4548,7 @@ Caso isto volte a acontecer, pode ser que a base de dados esteja danificada. Unsupported KeePass variant map version. Translation: variant map = data structure for storing meta data - Versão não suportada da variente de mapa KeePass. + Versão não suportada da variente de mapa KeePass Invalid variant map entry name length @@ -4341,12 +4610,12 @@ Caso isto volte a acontecer, pode ser que a base de dados esteja danificada.Kdbx4Writer Invalid symmetric cipher algorithm. - Algoritmo inválido de cifra simétrica. + Algoritmo inválido de cifra simétrica Invalid symmetric cipher IV size. IV = Initialization Vector for symmetric cipher - Tamanho inválido da cifra simétrica IV. + Tamanho inválido da cifra simétrica IV Unable to calculate database key: %1 @@ -4406,7 +4675,7 @@ Caso isto volte a acontecer, pode ser que a base de dados esteja danificada. Failed to read database file. - Não foi possível ler o ficheiro da base de dados. + Não foi possível ler o ficheiro da base de dados The selected file is an old KeePass 1 database (.kdb). @@ -4415,16 +4684,16 @@ You can import it by clicking on Database > 'Import KeePass 1 database…'. This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. O ficheiro selecionado é uma base de dados do KeePass 1 (.kdb). -Pode importá-la clicando em Base de dados > 'Importar base de dados do KeePass 1...'. +Pode importá-la clicando em Base de dados > 'Importar base de dados do KeePass 1…'. Esta é uma migração unidirecional. Não será possível abrir a base de dados importada com a versão 0.4 do KeePassX. Not a KeePass database. - Não é uma base de dados do KeePass. + Não é uma base de dados do KeePass Unsupported KeePass 2 database version. - Versão da base de dados KeePass2 não suportada. + Versão da base de dados KeePass2 não suportada @@ -4555,11 +4824,11 @@ Linha %2, coluna %3 KeeAgentSettings Invalid KeeAgent settings file structure. - Estrutura inválida no ficheiro de definições KeeAgent. + Estrutura inválida no ficheiro de definições KeeAgent Private key is an attachment but no attachments provided. - Chave privada é um anexo mas o anexo não foi indicado. + Chave privada é um anexo mas o anexo não foi indicado Private key is empty @@ -4574,34 +4843,23 @@ Linha %2, coluna %3 Não foi possível abrir a chave privada - - KeePass1OpenWidget - - Import KeePass1 Database - Importar base de dados do KeePass 1 - - - Unable to open the database. - Não foi possível abrir a base de dados. - - KeePass1Reader Unable to read keyfile. - Não foi possível ler o ficheiro-chave. + Não foi possível ler o ficheiro-chave Not a KeePass database. - Não é uma base de dados do KeePass. + Não é uma base de dados do KeePass Unsupported encryption algorithm. - Algoritmo de cifra não suportado. + Algoritmo de cifra não suportado Unsupported KeePass database version. - Versão da base de dados KeePass não suportada. + Versão da base de dados KeePass não suportada Unable to read encryption IV @@ -4833,7 +5091,7 @@ Caso isto volte a acontecer, pode ser que a base de dados esteja danificada. Browse… - Procurar... + Procurar… Old key file format @@ -4883,7 +5141,7 @@ Mensagem: %2 Create Key File… - Criar ficheiro-chave... + Criar ficheiro-chave… Error creating key file @@ -4941,10 +5199,6 @@ Tem a certeza de que deseja utilizar este ficheiro? &Recent Databases Bases de dados &recentes - - &Import - &Importar - &Export &Exportar @@ -4965,6 +5219,10 @@ Tem a certeza de que deseja utilizar este ficheiro? TOTP TOTP + + Tags + Etiquetas + &Groups &Grupos @@ -4995,7 +5253,7 @@ Tem a certeza de que deseja utilizar este ficheiro? &Open Database… - Abrir base de dad&os... + Abrir base de dad&os… &Save Database @@ -5007,59 +5265,39 @@ Tem a certeza de que deseja utilizar este ficheiro? &New Database… - &Nova base de dados... - - - Create a new database - Criar uma nova base de dados + &Nova base de dados… &Merge From Database… - Co&mbinar da base de dados... - - - Merge from another KDBX database - Combinar com outra base de dados KDBX + Co&mbinar da base de dados… &New Entry… - &Nova entrada... - - - Add a new entry - Adicionar uma nova entrada + &Nova entrada… &Edit Entry… - &Editar entrada... - - - View or edit entry - Ver ou editar entrada + &Editar entrada… &Delete Entry… - Apagar entra&da... + Apagar entra&da… &New Group… - &Novo grupo... - - - Add a new group - Adicionar um novo grupo + &Novo grupo… &Edit Group… - &Editar grupo... + &Editar grupo… &Delete Group… - Apagar g&rupo... + Apagar g&rupo… Download All &Favicons… - Descarregar todos os '&favicons'... + Descarregar todos os ícones de &favoritos… Sort &A-Z @@ -5071,64 +5309,40 @@ Tem a certeza de que deseja utilizar este ficheiro? Sa&ve Database As… - G&uardar base de dados como... + G&uardar base de dados como… Database &Security… - &Segurança da base de dados... + &Segurança da base de dados… Database &Reports… - &Relatórios da base de dados... - - - Statistics, health check, etc. - Estatísticas, verificações, etc. + &Relatórios da base de dados… &Database Settings… - &Definições da base de dados... - - - Database settings - Definições da base de dados + &Definições da base de dados… &Clone Entry… - &Clonar entrada... + &Clonar entrada… Move u&p Mover para &cima - - Move entry one step up - Move a entrada para cima - Move do&wn Mover para &baixo - - Move entry one step down - Move a entrada para baixo - Copy &Username Copiar nome de &utilizador - - Copy username to clipboard - Copiar nome de utilizador para a área de transferência - Copy &Password Copiar &palavra-passe - - Copy password to clipboard - Copiar palavra-passe para a área de transferência - &Settings Definiçõe&s @@ -5143,7 +5357,7 @@ Tem a certeza de que deseja utilizar este ficheiro? Download &Favicon - Descarregar '&favicon' + Descarregar ícone de &favoritos Open &URL @@ -5162,56 +5376,32 @@ Tem a certeza de que deseja utilizar este ficheiro? &Título - Copy title to clipboard - Copiar título para a área de transferência - - - &URL - &URL - - - Copy URL to clipboard - Copiar URL para a área de transferência + Copy &URL + Copiar &URL &Notes &Notas - - Copy notes to clipboard - Copiar notas para a área de transferência - &CSV File… - Ficheiro &CSV... + Ficheiro &CSV… &HTML File… - Ficheiro &HTML... + Ficheiro &HTML… KeePass 1 Database… - Base de dados do KeePass 1... - - - Import a KeePass 1 database - Importar base de dados do KeePass 1 + Base de dados do KeePass 1… 1Password Vault… - Cofre 1Password... - - - Import a 1Password Vault - Importar um cofre 1Password + Cofre 1Password… CSV File… - Ficheiro CSV... - - - Import a CSV file - Importar ficheiro CSV + Ficheiro CSV… Show TOTP @@ -5223,12 +5413,16 @@ Tem a certeza de que deseja utilizar este ficheiro? Set up TOTP… - Configurar TOTP... + Configurar TOTP… Copy &TOTP Copiar &TOTP + + Copy Password and TOTP + Copiar palavra-passe e TOTP + E&mpty recycle bin Limpar reciclage&m @@ -5253,10 +5447,6 @@ Tem a certeza de que deseja utilizar este ficheiro? &Online Help Ajuda &online - - Go to online documentation - Aceder à documentação online - &User Guide Guia de &utilizador @@ -5271,7 +5461,7 @@ Tem a certeza de que deseja utilizar este ficheiro? Save Database Backup… - Guardar cópia de segurança da base de dados... + Guardar cópia de segurança da base de dados… Add key to SSH Agent @@ -5323,7 +5513,11 @@ Tem a certeza de que deseja utilizar este ficheiro? Clone Group... - Clonar grupo... + Clonar grupo… + + + &XML File… + Ficheiro &XML… Clear history @@ -5357,9 +5551,13 @@ We recommend you use the AppImage available on our downloads page. AVISO: a versão Qt do seu sistema pode causar o encerramento do KeePassXC se estiver a utilizar o teclado no ecrã (On-Screen Keyboard)! Recomendamos que utilize a versão AppImage disponível no nosso site. + + No Tags + Sem etiquetas + Restore Entry(s) - Restaurar entradaRestaurar entradas + Restaurar entradaRestaurar entradasRestaurar entradas Settings @@ -5375,7 +5573,7 @@ Recomendamos que utilize a versão AppImage disponível no nosso site. You can always check for updates manually from the application menu. - Também pode verificar se existem atualizações através do menu da aplicação. + Também pode verificar se existem atualizações através do menu da aplicação Toggle window @@ -5385,9 +5583,13 @@ Recomendamos que utilize a versão AppImage disponível no nosso site.Quit KeePassXC Sair do KeePassXC + + %1 Entry(s) + %1 entrada%1 entradas%1 entradas + Please present or touch your YubiKey to continue… - Introduza ou toque na sua YubiKey para continuar... + Introduza ou toque na sua YubiKey para continuar… Restart Application? @@ -5397,6 +5599,274 @@ Recomendamos que utilize a versão AppImage disponível no nosso site.You must restart the application to apply this setting. Would you like to restart now? Tem que reiniciar a aplicação para aplicar as alterações. Gostaria de o fazer agora? + + Allow Screen Capture + Permitir captura de ecrã + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Chaves-mestras... + + + Import Passkey + Importar chave-mestra + + + Quit Application + Sair da aplicação + + + Open About Dialog + Abrir caixa de diálogo Acerca + + + Open Database + Abrir base de dados + + + Create Database + Criar base de dados + + + Merge From Database + Combinar da base de dados + + + Create Entry + Criar entrada + + + Edit Entry + Editar entrada + + + Delete Entry + Eliminar entrada + + + Create Group + Criar grupo + + + Edit Group + Editar grupo + + + Delete Group + Eliminar grupo + + + Download All Favicons + Descarregar todos os 'favicons' + + + Sort Groups A-Z + Ordenar grupos de A->Z + + + Sort Groups Z-A + Ordenar grupos de Z->A + + + Save Database As + Guardar base de dados como + + + Show Database Security + Mostrar segurança da base de dados + + + Show Database Reports + Mostrar relatórios da base de dados + + + Show Database Settings + Mostrar definições da base de dados + + + Show Passkeys + Mostrar chaves-mestras + + + Clone Entry + Clonar entrada + + + Move Entry Up + Mover para cima + + + Move Entry Down + Mover para baixo + + + Copy Username + Copiar nome de utilizador + + + Copy Password + Copiar palavra-passe + + + Show Application Settings + Mostrar definições da base de dados + + + Show Password Generator + Mostrar gerador de palavras-passe + + + Perform Auto-Type: {USERNAME} + Executar escrita automática: {USERNAME} + + + Perform Auto-Type: {USERNAME}{ENTER} + Executar escrita automática: {USERNAME}{ENTER} + + + Perform Auto-Type: {PASSWORD} + Execute escrita automática: {PASSWORD} + + + Perform Auto-Type: {PASSWORD}{ENTER} + Execute escrita automática: {PASSWORD}{ENTER} + + + Perform Auto-Type: {TOTP} + Executar escrita automática: {TOTP} + + + Copy Title + Copiar título + + + Copy URL + Copiar URL + + + Copy Notes + Copiar notas + + + Export to CSV + Exportar para CSV + + + Export to HTML + Exportar para HTML + + + Import KeePass1 Database + Importar base de dados do KeePass 1 + + + Import 1Password Vault + Importar cofre 1Password + + + Import CSV File + Importar ficheiro CSV + + + Show TOTP QR Code + Mostrar código QR TOTP + + + Set up TOTP + Configurar TOTP + + + Empty Recycle Bin + Esvaziar reciclagem + + + Open Donation Website + Abrir site de donativos + + + Open Bug Report + Abrir relatório de erros + + + Open Online Documentation + Abrir documentação on-line + + + Open Keyboard Shortcuts Guide + Abrir guia de atalhos de teclado + + + Save Database Backup + Criar backup da base de dados + + + SSH Agent: Add Key + Agente SSH: Adicionar chave + + + SSH Agent: Remove Key + Agente SSH: Remover chave + + + Toggle Compact Mode + Alternar "Modo compacto" + + + Set Theme: Automatic + Definir tema: Automático + + + Set Theme: Light + Definir tema: Claro + + + Set Theme: Dark + Definir tema: Escuro + + + Set Theme: Classic + Definir tema: Clássico + + + Toggle Show Toolbar + Alternar "Mostrar barra de ferramentas" + + + Toggle Show Preview Panel + Alternar "Mostrar painel de pré-visualização" + + + Toggle Always on Top + Alternar "Sempre na frente" + + + Toggle Hide Usernames + Alternar "Ocultar nome de utilizador" + + + Toggle Hide Passwords + Alternar "Ocultar palavras-passe" + + + Export to XML + Exportar para XML + + + Toggle Allow Screen Capture + Alternar "Permitir captura de ecrã" + ManageDatabase @@ -5454,26 +5924,6 @@ Recomendamos que utilize a versão AppImage disponível no nosso site.Overwriting %1 [%2] A substituir %1 [%2] - - older entry merged from database "%1" - entrada antiga combinada da base de dados %1 - - - Adding backup for older target %1 [%2] - A adicionar backup para o destino antigo %1 [%2] - - - Adding backup for older source %1 [%2] - A adicionar backup para a origem antiga %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - A reaplicar a entrada de destino antiga na origem recente %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - A reaplicar a entrada de origem antiga no destinio recente %1 [%2] - Synchronizing from newer source %1 [%2] A sincronizar da origem recente %1 [%2] @@ -5511,7 +5961,7 @@ Recomendamos que utilize a versão AppImage disponível no nosso site.NewDatabaseWizard Create a new KeePassXC database… - Criar uma nova base de dados do KeePassXC... + Criar uma nova base de dados do KeePassXC… Root @@ -5533,14 +5983,6 @@ Recomendamos que utilize a versão AppImage disponível no nosso site.Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Aqui pode ajustar as definições de cifra da sua base de dados. Não se preocupe porque, a qualquer momento, poderá alterar esta opção nas definições da base de dados. - - Advanced Settings - Definições avançadas - - - Simple Settings - Definições básicas - NewDatabaseWizardPageDatabaseKey @@ -5550,7 +5992,7 @@ Recomendamos que utilize a versão AppImage disponível no nosso site. A set of credentials known only to you that protects your database. - Um conjunto de credenciais só suas e que protegem a base de dados. + Um conjunto de credenciais só suas e que protegem a base de dados @@ -5572,7 +6014,7 @@ Recomendamos que utilize a versão AppImage disponível no nosso site. Please fill in the display name and an optional description for your new database: - Preencha o nome de exibição e uma descrição extra para a sua nova base de dados: + Preencha o nome e uma descrição adicional para a sua nova base de dados: @@ -5621,15 +6063,6 @@ Recomendamos que utilize a versão AppImage disponível no nosso site.Esperados %1 bytes de 'clear-text' mas foram encontrados %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - A leitura da base de dados não produziu uma instância -%1 - - OpVaultReader @@ -5673,7 +6106,7 @@ Recomendamos que utilize a versão AppImage disponível no nosso site. Key file way too small. - Ficheiro-chave muito pequeno. + Ficheiro-chave muito pequeno Key file magic header id invalid @@ -5685,7 +6118,7 @@ Recomendamos que utilize a versão AppImage disponível no nosso site. Failed to read public key. - Não foi possível ler a chave pública. + Não foi possível ler a chave pública Corrupted key file, reading private key failed @@ -5703,6 +6136,10 @@ Recomendamos que utilize a versão AppImage disponível no nosso site.Unknown cipher: %1 Cifra desconhecida: %1 + + AES-256/GCM is currently not supported + AES-256/GCM não é suportado atualmente + Passphrase is required to decrypt this key Necessita de uma frase-chave para decifrar esta chave @@ -5769,26 +6206,178 @@ Recomendamos que utilize a versão AppImage disponível no nosso site. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Disparidade nas palavras-passe + SSH Key Generator + Gerador de chaves SSH - Passwords match so far - Correspondências até agora + Type + Tipo - Toggle Password (%1) - Alternar palavra-passe (%1) + Bits + Bits - Generate Password (%1) - Gerar palavra-passe (%1) + Comment + Comentário + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - Exportação de chave-mestra - Warning: Caps Lock enabled! - Aviso: Caps Lock ativado! + Export the following Passkey entries. + Exportar as seguintes chaves-mestras + + + Filenames will be generated with title and .passkey file extension. + O nome do ficheiro será criado com o título e a extensão .passkey + + + Export entries + Exportar entradas + + + Export Selected + Exportar seleção + + + Cancel + Cancelar + + + Export to folder + Exportar para a pasta + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: Exportação de chave-mestra + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + O ficheiro "%1.passkey" já existe. +Deseja substituir o ficheiro existente? + + + + Cannot open file + Não foi possível abrir o ficheiro + + + Cannot open file "%1" for writing. + Não foi possível abrir o ficheiro %1 para escrita + + + Cannot write to file + Não foi possível escrever para o ficheiro + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - Importação de chave-mestra + + + Username: %1 + Nome de utilizador: %1 + + + Group + Grupo + + + Database + Base de dados + + + Import Passkey + Importar chave-mestra + + + Import + Importar + + + Cancel + Cancelar + + + Import the following Passkey: + Importar esta chave-mestra: + + + Entry + Entrada + + + Import the following Passkey to this entry: + Importar esta chave-mestra para a entrada: + + + Create new entry + Criar nova entrada + + + Default Passkeys group (Imported Passkeys) + Grupo padrão para chaves-mestras (Chaves-mestras importadas) + + + Relying Party: %1 + Entidades fiáveis: %1 + + + + PasskeyImporter + + Passkey file + Ficheiro de chave-mestra + + + All files + Todos os ficheiros + + + Open Passkey file + Abrir ficheiro de chave-mestra + + + Cannot open file + Não foi possível abrir o ficheiro + + + Cannot open file "%1" for reading. + Não foi possível abrir o ficheiro %1 para leitura + + + Cannot import Passkey + Não foi possível importar a chave-mestra + + + Cannot import Passkey file "%1". Data is missing. + Não foi possível importar "%1". Existem dados em falta. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + Não foi possível importar "%1". Chave privada inexistente ou danificada. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + Não foi possível importar o ficheiro "%1". +Os dados abaixo não existem: +%2 @@ -5835,7 +6424,7 @@ Recomendamos que utilize a versão AppImage disponível no nosso site. Passwords do not match. - Disparidade nas palavras-passe. + Disparidade nas palavras-passe @@ -6053,6 +6642,30 @@ Recomendamos que utilize a versão AppImage disponível no nosso site.Entropy: %1 bit Entropia: %1 bit + + Password Quality: %1 + Qualidade da palavra-passe: %1 + + + Poor + Password quality + Má + + + Weak + Password quality + Fraca + + + Good + Password quality + Boa + + + Excellent + Password quality + Excelente + Confirm Delete Wordlist Confirmação de eliminação @@ -6099,9 +6712,32 @@ Tem a certeza de que a deseja substituir? Special Characters Caracteres especiais + + + PasswordWidget - Password Quality: %1 - Qualidade da palavra-passe: %1 + Passwords do not match + Disparidade nas palavras-passe + + + Passwords match so far + Correspondências até agora + + + Toggle Password (%1) + Alternar palavra-passe (%1) + + + Generate Password (%1) + Gerar palavra-passe (%1) + + + Warning: Caps Lock enabled! + Aviso: Caps Lock ativado + + + Quality: %1 + Qualidade: %1 Poor @@ -6123,6 +6759,10 @@ Tem a certeza de que a deseja substituir? Password quality Excelente + + Toggle password visibility using Control + H. Open the password generator using Control + G. + Alterne a exibição da palavra-passe com Ctrl + H. Abra o gerador de palavras-passe com Ctrl + G. + PickcharsDialog @@ -6177,6 +6817,10 @@ Tem a certeza de que a deseja substituir? Continue Continuar + + Continue with weak password + Continuar com palavra-passe insegura + QObject @@ -6202,11 +6846,11 @@ Tem a certeza de que a deseja substituir? Message encryption failed. - Não foi possível cifrar a mensagem. + Não foi possível cifrar a mensagem KeePassXC association failed, try again - Não foi possível associar KeePassXC. Por favor tente novamente. + Não foi possível associar KeePassXC. Por favor tente novamente Encryption key is not recognized @@ -6254,11 +6898,11 @@ Tem a certeza de que a deseja substituir? Could not save the native messaging script file for %1. - Não foi possível guardar o script de mensagens nativas para %1. + Não foi possível guardar o script de mensagens nativas para %1 Username for the entry. - Nome de utilizador para a entrada. + Nome de utilizador para a entrada username @@ -6266,7 +6910,7 @@ Tem a certeza de que a deseja substituir? URL for the entry. - URL para a entrada. + URL para a entrada URL @@ -6282,27 +6926,27 @@ Tem a certeza de que a deseja substituir? Prompt for the entry's password. - Pedir palavra-passe para a entrada. + Pedir palavra-passe para a entrada Generate a password for the entry. - Gerar palavra-passe para a entrada. + Gerar palavra-passe para a entrada Add a new entry to a database. - Adicionar entrada à base de dados. + Adicionar entrada à base de dados Path of the entry to add. - Caminho da entrada a adicionar. + Caminho da entrada a adicionar Cannot generate a password and prompt at the same time. - Não pode utilizar as opções "Gerar palavra-passe" e "Pedir palavra-passe" ao mesmo tempo". + Não pode utilizar as opções "Gerar palavra-passe" e "Pedir palavra-passe" ao mesmo tempo" Could not create entry with path %1. - Não foi possível criar a entrada com o caminho %1. + Não foi possível criar a entrada com o caminho %1 Enter password for new entry: @@ -6310,19 +6954,19 @@ Tem a certeza de que a deseja substituir? Writing the database failed %1. - Não foi possível escrever na base de dados %1. + Não foi possível escrever na base de dados %1 Successfully added entry %1. - Entrada %1 adicionada com sucesso. + Entrada %1 adicionada com sucesso Adds a new group to a database. - Adiciona um novo grupo à base de dados. + Adiciona um novo grupo à base de dados Path of the group to add. - Caminho do grupo a adicionar. + Caminho do grupo a adicionar Group %1 already exists! @@ -6334,7 +6978,7 @@ Tem a certeza de que a deseja substituir? Successfully added group %1. - Grupo %1 adicionado com sucesso. + Grupo %1 adicionado com sucesso Check if any passwords have been publicly leaked. FILENAME must be the path of a file listing SHA-1 hashes of leaked passwords in HIBP format, as available from https://haveibeenpwned.com/Passwords. @@ -6354,7 +6998,7 @@ Tem a certeza de que a deseja substituir? Analyze passwords for weaknesses and problems. - Analisar qualidade e problemas das palavras-passe. + Analisar qualidade e problemas das palavras-passe Cannot find HIBP file: %1 @@ -6362,7 +7006,7 @@ Tem a certeza de que a deseja substituir? Evaluating database entries using okon… - A avaliar entradas da base de dados com okon... + A avaliar entradas da base de dados com okon… Failed to open HIBP file %1: %2 @@ -6370,11 +7014,11 @@ Tem a certeza de que a deseja substituir? Evaluating database entries against HIBP file, this will take a while… - A avaliar as entradas da base de dados contra o ficheiro HIBP, por favor aguarde... + A avaliar as entradas da base de dados contra o ficheiro HIBP, por favor aguarde… Password for '%1' has been leaked %2 time(s)! - A palavra-passe para '%1' foi exposta %2 vez!A palavra-passe para '%1' foi exposta %2 vezes! + A palavra-passe para '%1' foi exposta %2 vez!A palavra-passe para '%1' foi exposta %2 vezes!A palavra-passe para '%1' foi exposta %2 vezes! Password for '%1' has been leaked! @@ -6398,23 +7042,23 @@ Tem a certeza de que a deseja substituir? Could not find entry with path %1. - Não foi possível encontrar a entrada com o caminho %1. + Não foi possível encontrar a entrada com o caminho %1 Could not find attachment with name %1. - Não foi possível encontrar o anexo com o nome "%1". + Não foi possível encontrar o anexo com o nome "%1" No export target given. Please use '--stdout' or specify an 'export-file'. - Não indicou o destino. Utilize '--stdout' ou especifique um 'export-file'. + Não indicou o destino. Utilize '--stdout' ou especifique um 'export-file' Could not open output file %1. - Não foi possível abrir %1. + Não foi possível abrir %1 Successfully exported attachment %1 of entry %2 to %3. - O anexo "%1" da entrada "%2" foi exportado para "%3". + O anexo "%1" da entrada "%2" foi exportado para "%3" Overwrite existing attachments. @@ -6422,7 +7066,7 @@ Tem a certeza de que a deseja substituir? Imports an attachment to an entry. - Importa um anexo para uma entrada. + Importa um anexo para uma entrada Path of the entry. @@ -6438,19 +7082,19 @@ Tem a certeza de que a deseja substituir? Attachment %1 already exists for entry %2. - O anexo "%1" já existe na entrada "%2". + O anexo "%1" já existe na entrada "%2" Could not open attachment file %1. - Não foi possível abrir o anexo %1. + Não foi possível abrir o anexo %1 Successfully imported attachment %1 as %2 to entry %3. - O anexo "%1" foi importado como "%2" para a entrada "%3". + O anexo "%1" foi importado como "%2" para a entrada "%3" Remove an attachment of an entry. - Remove um anexo de uma entrada. + Remove um anexo de uma entrada Name of the attachment to be removed. @@ -6458,37 +7102,37 @@ Tem a certeza de que a deseja substituir? Successfully removed attachment %1 from entry %2. - O anexo "%1" foi removido da entrada "%2". + O anexo "%1" foi removido da entrada "%2" Copy the given attribute to the clipboard. Defaults to "password" if not specified. Don't translate "password", it refers to the attribute. - Copiar atributo para a área de transferÊncia. Utiliza "password" se nenhum for especificado. + Copiar atributo para a área de transferência. Utiliza "password" se nenhum for especificado. Copy the current TOTP to the clipboard (equivalent to "-a totp"). - Copiar TOTP para a área de transferência (equivalente a "-a totp"). + Copiar TOTP para a área de transferência (equivalente a "-a totp") Must match only one entry, otherwise a list of possible matches is shown. - Deve corresponder apenas a uma entrada, caso contrário é mostrada uma lista de possíveis correspondências. + Deve corresponder apenas a uma entrada, caso contrário é mostrada uma lista de possíveis correspondências Copy an entry's attribute to the clipboard. - Copiar atributo de uma entrada para a área de transferência. + Copiar atributo de uma entrada para a área de transferência Path of the entry to clip. clip = copy to clipboard - Caminho da entrada a copiar. + Caminho da entrada a copiar Timeout before clearing the clipboard (default is %1 seconds, set to 0 for unlimited). - Tempo limite antes de limpar a área de transferência (o padrão é %1 segundos, definir para 0 para ilimitado). + Tempo limite antes de limpar a área de transferência (o padrão é %1 segundos, definir para 0 para ilimitado) Invalid timeout value %1. - Valor limite inválido %1. + Valor limite inválido %1 Multiple entries matching: @@ -6500,23 +7144,23 @@ Tem a certeza de que a deseja substituir? Entry %1 not found. - Entrada %1 não encontrada. + Entrada %1 não encontrada ERROR: Please specify one of --attribute or --totp, not both. - ERRO: tem que especificar --attribute ou --totp, mas não ambos. + ERRO: tem que especificar --attribute ou --totp, mas não ambos Entry with path %1 has no TOTP set up. - A entrada com o caminho %1 não tem uma TOTP configurada. + A entrada com o caminho %1 não tem uma TOTP configurada ERROR: attribute %1 is ambiguous, it matches %2. - ERRO: atributo %1 é ambíguo porque coincide com %2. + ERRO: atributo %1 é ambíguo porque coincide com %2 Attribute "%1" not found. - Atributo %1 não encontrado. + Atributo %1 não encontrado Entry's "%1" attribute copied to the clipboard! @@ -6524,7 +7168,7 @@ Tem a certeza de que a deseja substituir? Clearing the clipboard in %1 second(s)... - A área de transferência será limpa dentro de %1 segundo...A área de transferência será limpa dentro de %1 segundos... + A área de transferência será limpa dentro de %1 segundo…A área de transferência será limpa dentro de %1 segundos…A área de transferência será limpa dentro de %1 segundos… Clipboard cleared! @@ -6532,19 +7176,19 @@ Tem a certeza de que a deseja substituir? Close the currently opened database. - Fechar a base de dados aberta. + Fechar base de dados aberta Display this help. - Mostra esta ajuda. + Mostra esta ajuda Silence password prompt and other secondary outputs. - Silenciar pedidos de palavra-passe e outros resultados secundários. + Silenciar pedidos de palavra-passe e outros resultados secundários Key file of the database. - Ficheiro-chave da base de dados. + Ficheiro-chave da base de dados path @@ -6552,11 +7196,11 @@ Tem a certeza de que a deseja substituir? Deactivate password key for the database. - Desativar chave de segurança para a base de dados. + Desativar chave de segurança para a base de dados Yubikey slot and optional serial used to access the database (e.g., 1:7370001). - Slot Yubikey e número de série (opcional) para aceder à base de dados (exemplo 1:7370001). + Slot Yubikey e número de série (opcional) para aceder à base de dados (exemplo 1:7370001) slot[:serial] @@ -6564,51 +7208,57 @@ Tem a certeza de que a deseja substituir? Missing positional argument(s). - Argumento posicional em falta. + Argumento posicional em falta Too many arguments provided. - Indicou demasiados argumentos. + Indicou demasiados argumentos + + + Path of the database. + Caminho da base de dados Target decryption time in MS for the database. - Duração (em ms) para decifrar a base de dados. + Duração (em ms) para decifrar a base de dados time duração + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Definir ficheiro-chave para a base de dados. +Esta opção foi descontinuada, utilize '--set-key-file' + Set the key file for the database. - Definir um ficheiro-chave para a base de dados. + Definir um ficheiro-chave para a base de dados Set a password for the database. - Definir uma palavra-passe para a base de dados. + Definir uma palavra-passe para a base de dados Create a new database. - Criar uma nova base de dados. - - - Path of the database. - Caminho da base de dados. + Criar uma nova base de dados Invalid decryption time %1. - Duração inválida %1. + Duração inválida %1 Target decryption time must be between %1 and %2. - A duração para decifrar tem que estar entre %1 e%2. + A duração para decifrar tem que estar entre %1 e%2 Failed to set database password. - Não foi possível definir a palavra-passe para a base de dados. + Não foi possível definir a palavra-passe para a base de dados Loading the key file failed - Não foi possível carregar o ficheiro-chave. + Não foi possível carregar o ficheiro-chave No key is set. Aborting database creation. @@ -6616,31 +7266,183 @@ Tem a certeza de que a deseja substituir? Benchmarking key derivation function for %1ms delay. - Função de derivação de chave para um atraso de %1 ms. + Função de derivação de chave para um atraso de %1 ms Setting %1 rounds for key derivation function. - A definir %1 ciclos para a função de derivação da chave. + A definir %1 ciclos para a função de derivação da chave error while setting database key derivation settings. - erro ao definir as definições de derivação da chave. + erro ao definir as definições de derivação da chave File %1 already exists. - Ficheiro %1 já existe. + Ficheiro %1 já existe Failed to save the database: %1. - Não foi possível guardar a base de dados: %1. + Não foi possível guardar a base de dados: %1 Successfully created new database. - A base de dados foi criada com sucesso. + A base de dados foi criada com sucesso + + + Unset the password for the database. + Não definir palavra-passe para a base de dados + + + Unset the key file for the database. + Não definir ficheiro-chave para a base de dados + + + Edit a database. + Editar base de dados + + + Cannot use %1 and %2 at the same time. + Não pode usar %1 e %2 em simultâneo + + + Could not change the database key. + Não foi possível alterar a chave da base de dados + + + Database was not modified. + A base de dados não foi modificada + + + Writing the database failed: %1 + Não foi possível escrever na base de dados: %1 + + + Successfully edited the database. + Base de dados editada com sucesso + + + Cannot remove password: The database does not have a password. + Não pode remover a palavra-passe: a base de dados não a tem + + + Cannot remove file key: The database does not have a file key. + Não pode remover o ficheiro-chave: a base de dados não o tem + + + Loading the new key file failed: %1 + Falha ao carregar a nova chave do ficheiro: %1 + + + Found unexpected Key type %1 + Encontrado um tipo de chave inesperado: %1 + + + Cannot remove all the keys from a database. + Não pode remover todas as chaves de uma base de dados + + + Show a database's information. + Mostrar informação da base de dados + + + UUID: + UUID: + + + Name: + Nome: + + + Description: + Descrição: + + + Cipher: + Cifra: + + + KDF: + KDF: + + + Recycle bin is enabled. + Reciclagem ativada + + + Recycle bin is not enabled. + Reciclagem desativada + + + Location + Localização + + + Database created + Base de dados criada + + + Last saved + Última gravação + + + Unsaved changes + Alterações por guardar + + + yes + sim + + + no + não + + + Number of groups + Número de grupos + + + Number of entries + Numero de entradas + + + Number of expired entries + Número de entradas caducadas + + + Unique passwords + Palavras-passe unívocas + + + Non-unique passwords + Palavras-passe não unívocas + + + Maximum password reuse + Número máximo de reutilizações + + + Number of short passwords + Número de palavras-passes curtas + + + Number of weak passwords + Número de palavras-passe fracas + + + Entries excluded from reports + Entradas excluídas dos relatórios + + + Average password length + Tamanho médio das palavras-passe + + + %1 characters + %1 caracteres Word count for the diceware passphrase. - Número de palavras para a frase-chave. + Número de palavras para a frase-chave count @@ -6650,12 +7452,12 @@ Tem a certeza de que a deseja substituir? Wordlist for the diceware generator. [Default: EFF English] - Lista de palavras para o gerador. + Lista de palavras para o gerador [Padrão: EFF inglês] Generate a new random diceware passphrase. - Gerar uma frase-chave baseada em dados (diceware). + Gerar uma frase-chave baseada em dados (diceware) Invalid word count %1 @@ -6667,7 +7469,7 @@ Tem a certeza de que a deseja substituir? Title for the entry. - Título para a entrada. + Título para a entrada title @@ -6675,39 +7477,35 @@ Tem a certeza de que a deseja substituir? Edit an entry. - Editar entrada. + Editar entrada Path of the entry to edit. - Caminho da entrada a editar. + Caminho da entrada a editar Not changing any field for entry %1. - Não foi alterado qualquer campo para a entrada %1. + Não foi alterado qualquer campo para a entrada %1 Enter new password for entry: Introduza a nova palavra-passe da entrada: - - Writing the database failed: %1 - Não foi possível escrever na base de dados: %1 - Successfully edited entry %1. - Entrada %1 editada com sucesso. + Entrada %1 editada com sucesso Perform advanced analysis on the password. - Executar análise avançada da palavra-passe. + Executar análise avançada da palavra-passe Password for which to estimate the entropy. - Palavra-passe para a qual será estimada a entropia. + Palavra-passe para a qual será estimada a entropia Estimate the entropy of a password. - Estimar entropia da palavra-passe. + Estimar entropia da palavra-passe Length %1 @@ -6811,7 +7609,7 @@ Tem a certeza de que a deseja substituir? Exit interactive mode. - Sair do modo interativo. + Sair do modo interativo Format to use when exporting. Available choices are 'xml' or 'csv'. Defaults to 'xml'. @@ -6819,7 +7617,7 @@ Tem a certeza de que a deseja substituir? Exports the content of a database to standard output in the specified format. - Exporta o conteúdo da base de dados para o formato especificado. + Exporta o conteúdo da base de dados para o formato especificado Unable to export database to XML: %1 @@ -6879,7 +7677,7 @@ Tem a certeza de que a deseja substituir? Generate a new random password. - Gerar nova palavra-passe aleatória. + Gerar nova palavra-passe aleatória Invalid password length %1 @@ -6891,7 +7689,7 @@ Tem a certeza de que a deseja substituir? Display command help. - Mostra a ajuda para os comandos. + Mostra a ajuda para os comandos Available commands: @@ -6899,15 +7697,15 @@ Tem a certeza de que a deseja substituir? Import the contents of an XML database. - Importar conteúdo de uma base de dados no formato XML. + Importar conteúdo de uma base de dados no formato XML Path of the XML database export. - Caminho para guardar a base de dados em XML. + Caminho para guardar a base de dados em XML Path of the new database. - Caminho da nova base de dados. + Caminho da nova base de dados Unable to import XML database: %1 @@ -6915,107 +7713,7 @@ Tem a certeza de que a deseja substituir? Successfully imported database. - Base de dados importada com sucesso. - - - Show a database's information. - Mostrar informação da base de dados. - - - UUID: - UUID: - - - Name: - Nome: - - - Description: - Descrição: - - - Cipher: - Cifra: - - - KDF: - KDF: - - - Recycle bin is enabled. - Reciclagem ativada. - - - Recycle bin is not enabled. - Reciclagem desativada. - - - Location - Localização - - - Database created - Base de dados criada - - - Last saved - Última gravação - - - Unsaved changes - Alterações por guardar - - - yes - sim - - - no - não - - - Number of groups - Número de grupos - - - Number of entries - Numero de entradas - - - Number of expired entries - Número de entradas caducadas - - - Unique passwords - Palavras-passe unívocas - - - Non-unique passwords - Palavras-passe não unívocas - - - Maximum password reuse - Número máximo de reutilizações - - - Number of short passwords - Número de palavras-passes curtas - - - Number of weak passwords - Número de palavras-passe fracas - - - Entries excluded from reports - Entradas excluídas dos relatórios - - - Average password length - Tamanho médio das palavras-passe - - - %1 characters - %1 caracteres + Base de dados importada com sucesso Unknown command %1 @@ -7033,11 +7731,11 @@ Comandos disponíveis: Name of the command to execute. - Nome do comando a executar. + Nome do comando a executar Displays debugging information. - Mostra a informação de depuração. + Mostra a informação de depuração Invalid command %1. @@ -7049,11 +7747,11 @@ Comandos disponíveis: Flattens the output to single lines. - Restringe o resultado para uma linha única. + Restringe o resultado para uma linha única List database entries. - Listar entradas da base de dados. + Listar entradas da base de dados Path of the group to list. Default is / @@ -7061,27 +7759,27 @@ Comandos disponíveis: Cannot find group %1. - Não foi possível encontrar o grupo %1. + Não foi possível encontrar o grupo %1 Use the same credentials for both database files. - Utilizar as mesmas credenciais para ambos os ficheiros de bases de dados. + Utilizar as mesmas credenciais para ambos os ficheiros de bases de dados Key file of the database to merge from. - Ficheiro-chave da base de dados para a combinação. + Ficheiro-chave da base de dados para a combinação Deactivate password key for the database to merge from. - Desativar palavra-passe da base de dados de origem. + Desativar palavra-passe da base de dados de origem Only print the changes detected by the merge operation. - Imprimir apenas as alterações detetadas pela operação de combinação. + Imprimir apenas as alterações detetadas pela operação de combinação Yubikey slot for the second database. - 'Slot' Yubikey para a segunda base de dados. + 'Slot' Yubikey para a segunda base de dados slot @@ -7089,11 +7787,11 @@ Comandos disponíveis: Merge two databases. - Combinar duas bases de dados. + Combinar duas bases de dados Path of the database to merge from. - Caminho da base de dados de origem para a combinação. + Caminho da base de dados de origem para a combinação Error reading merge file: @@ -7107,43 +7805,43 @@ Comandos disponíveis: Successfully merged %1 into %2. - %1 combinado com sucesso para %2. + %1 combinado com sucesso para %2 Database was not modified by merge operation. - A base de dados não foi modificada pela combinação. + A base de dados não foi modificada pela combinação Moves an entry to a new group. - Move uma entrada para outro grupo. + Move uma entrada para outro grupo Path of the entry to move. - Caminho da entrada a mover. + Caminho da entrada a mover Path of the destination group. - Caminho do grupo de destino. + Caminho do grupo de destino Could not find group with path %1. - Não foi possível encontrar o grupo no caminho %1. + Não foi possível encontrar o grupo no caminho %1 Entry is already in group %1. - O grupo %1 já possui esta entrada. + O grupo %1 já possui esta entrada Successfully moved entry %1 to group %2. - Entrada %1 movida com sucesso para o grupo %2. + Entrada %1 movida com sucesso para o grupo %2 Open a database. - Abrir base de dados. + Abrir base de dados Path of the entry to remove. - Caminho da entrada a remover. + Caminho da entrada a remover Unable to save database to file: %1 @@ -7151,47 +7849,51 @@ Comandos disponíveis: Successfully recycled entry %1. - Entrada %1 movida para a reciclagem. + Entrada %1 movida para a reciclagem Successfully deleted entry %1. - A entrada %1 foi apagada. + A entrada %1 foi apagada Path of the group to remove. - Caminho do grupo a remover. + Caminho do grupo a remover Cannot remove root group from database. - Não é possível remover o grupo raiz da base de dados. + Não é possível remover o grupo raiz da base de dados Successfully recycled group %1. - Grupo %1 enviado para a reciclagem. + Grupo %1 enviado para a reciclagem Successfully deleted group %1. - O gripo %1 foi apagado. + O grupo %1 foi apagado Find entries quickly. - Localizar entradas rapidamente. + Localizar entradas rapidamente Search term. - Termo de pesquisa. + Termo de pesquisa Show the entry's current TOTP. - Mostrar TOTP da entrada atual. + Mostrar TOTP da entrada atual Show the protected attributes in clear text. - Mostrar atributos protegidos em 'clear-text'. + Mostrar atributos protegidos em 'clear-text' + + + Show all the attributes of the entry. + Mostrar todos os atributos da entrada Show the attachments of the entry. - Mostra o anexo de uma entrada. + Mostra o anexo de uma entrada Names of the attributes to show. This option can be specified more than once, with each attribute shown one-per-line in the given order. If no attributes are specified, a summary of the default attributes is given. @@ -7203,19 +7905,19 @@ Comandos disponíveis: Show an entry's information. - Mostrar informações de uma entrada. + Mostrar informações de uma entrada Name of the entry to show. - Nome da entrada a mostrar. + Nome da entrada a mostrar ERROR: unknown attribute %1. - Erro: atributo desconhecido %1. + Erro: atributo desconhecido %1 No attachments present. - Não existem anexos. + Não existem anexos Attachments: @@ -7259,6 +7961,10 @@ Deve considerar a geração de um novo ficheiro-chave. Invalid YubiKey serial %1 N.º de série YubiKey inválido %1 + + Please present or touch your YubiKey to continue. + Introduza ou toque na sua YubiKey para continuar + Enter password to encrypt database (optional): Introduza a palavra-passe para cifrar a base de dados (opcional): @@ -7273,7 +7979,7 @@ Deve considerar a geração de um novo ficheiro-chave. Error: Passwords do not match. - Erro: disparidade nas palavras-passe. + Erro: disparidade nas palavras-passe No program defined for clipboard manipulation @@ -7331,7 +8037,7 @@ Deve considerar a geração de um novo ficheiro-chave. Password is used %1 time(s) - Palavra-passe utilizada %1 vezePalavra-passe utilizada %1 vezes + Palavra-passe utilizada %1 vezePalavra-passe utilizada %1 vezesPalavra-passe utilizada %1 vezes Password has expired @@ -7351,7 +8057,7 @@ Deve considerar a geração de um novo ficheiro-chave. Password expires in %1 day(s) - Palavra-passe caduca dentro de %1 diaPalavra-passe caduca dentro de %1 dias + Palavra-passe caduca dentro de %1 diaPalavra-passe caduca dentro de %1 diasPalavra-passe caduca dentro de %1 dias Password will expire soon @@ -7375,11 +8081,11 @@ Deve considerar a geração de um novo ficheiro-chave. Debugging mode is disabled. - Modo de depuração desativado. + Modo de depuração desativado Debugging mode is enabled. - Modo de depuração ativado. + Modo de depuração ativado Operating system: %1 @@ -7423,31 +8129,31 @@ Kernel: %3 %4 over %1 year(s) - %1 ano%1 anos + %1 ano%1 anos%1 anos about %1 month(s) - aproximadamente há %1 mês%1 meses + aproximadamente há %1 mês%1 meses%1 meses %1 week(s) - %1 semana%1 semanas + %1 semana%1 semanas%1 semanas %1 day(s) - %1 dia%1 dias + %1 dia%1 dias%1 dias %1 hour(s) - %1 horas1 hora + %1 horas1 hora1 hora %1 minute(s) - %1 minuto%1 minutos + %1 minuto%1 minutos%1 minutos - Botan library must be at least 2.11.x, found %1.%2.%3 - Botan library tem que ser, pelo menos, 2.11.x mas foi encontrada %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + A biblioteca Botan tem que estar na V %1 e foi encontrada %2.%3.%4 Cryptographic libraries: @@ -7463,19 +8169,19 @@ Kernel: %3 %4 SymmetricCipher::init: Invalid cipher mode. - SymmetricCipher::init: Modo de cifra inválido. + SymmetricCipher::init: Modo de cifra inválido SymmetricCipher::init: Invalid IV size of %1 for %2. - SymmetricCipher::init: Tamanho IV inválido de %1 para %2. + SymmetricCipher::init: Tamanho IV inválido de %1 para %2 Cipher not initialized prior to use. - Cifra não iniciada antes da utilização. + Cifra não iniciada antes da utilização Cannot process 0 length data. - Não pode processar dados com dimensão 0. + Não pode processar dados com dimensão 0 unknown executable (DBus address %1) @@ -7547,7 +8253,7 @@ Kernel: %3 %4 Clearing the clipboard in %1 second(s)… - A área de transferência será limpa dentro de %1 segundo...A área de transferência será limpa dentro de %1 segundos... + A área de transferência será limpa dentro de %1 segundo…A área de transferência será limpa dentro de %1 segundos…A área de transferência será limpa dentro de %1 segundos… Group @@ -7588,12 +8294,12 @@ Kernel: %3 %4 %1 ms milliseconds - %1 ms%1 ms + %1 ms%1 ms%1 ms %1 s seconds - %1 s%1 s + %1 s%1 s%1 s Do you really want to delete the entry "%1" for good? @@ -7601,11 +8307,11 @@ Kernel: %3 %4 Do you really want to delete %n entry(s) for good? - Tem a certeza de que deseja eliminar %n entrada?Tem a certeza de que deseja eliminar %n entradas? + Tem a certeza de que deseja eliminar %n entrada?Tem a certeza de que deseja eliminar %n entradas?Tem a certeza de que deseja eliminar %n entradas? Delete entry(s)? - Eliminar entrada?Eliminar entradas? + Eliminar entrada?Eliminar entradas?Eliminar entradas? Do you really want to move entry "%1" to the recycle bin? @@ -7613,11 +8319,11 @@ Kernel: %3 %4 Do you really want to move %n entry(s) to the recycle bin? - Tem a certeza de que deseja mover %n entrada para a reciclagem?Tem a certeza de que deseja mover %n entradas para a reciclagem? + Tem a certeza de que deseja mover %n entrada para a reciclagem?Tem a certeza de que deseja mover %n entradas para a reciclagem?Tem a certeza de que deseja mover %n entradas para a reciclagem? Move entry(s) to recycle bin? - Mover entrada para a reciclagem?Mover entradas para a reciclagem? + Mover entrada para a reciclagem?Mover entradas para a reciclagem?Mover entradas para a reciclagem? Replace references to entry? @@ -7625,7 +8331,7 @@ Kernel: %3 %4 Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? - A entrada "%1" tem %2 referência. Deseja substituir a referência com valores, ignorar ou apagar a entrada?A entrada "%1" tem %2 referências. Deseja substituir as referências com valores, ignorar a entrada ou eliminar? + A entrada "%1" tem %2 referência. Deseja substituir a referência com valores, ignorar ou apagar a entrada?A entrada "%1" tem %2 referências. Deseja substituir as referências com valores, ignorar a entrada ou eliminar?A entrada "%1" tem %2 referências. Deseja substituir as referências com valores, ignorar a entrada ou eliminar? User name @@ -7687,34 +8393,30 @@ Kernel: %3 %4 read password of the database from stdin ler palavra-passe da base de dados a partir de stdin - - allow app screen recordering and screenshots - permitir a gravação de ecrã e capturas de ecrã da aplicação - Locked databases. - Bases de dados bloqueadas. + Bases de dados bloqueadas Database failed to lock. - Não foi possível desbloquear a base de dados. + Não foi possível desbloquear a base de dados Another instance of KeePassXC is already running. - Já está em execução uma instância do KeePassXC. + Já está em execução uma instância do KeePassXC + + + KeePassXC is not running. No open database to lock + KeePassXC não está em execução. Não há nenhuma base de dados para bloquear Fatal error while testing the cryptographic functions. - Erro fatal ao testar as funções de criptografia. + Erro fatal ao testar as funções de criptografia KeePassXC - Error KeePassXC - Erro - - Warning: Failed to prevent screenshots on a top level window! - Aviso: falha ao evitar capturas de ecrã numa janela de nível superior! - Database password: Palavra-passe da base de dados: @@ -7738,8 +8440,222 @@ Kernel: %3 %4 Não foi possível iniciar sessão com Windows Hello - Please present or touch your YubiKey to continue. - Introduza ou toque na sua YubiKey para continuar. + Warning: Failed to block screenshot capture on a top-level window. + Aviso: falha ao bloquear a captura de ecrã na janela de nível superior, + + + Invalid Cipher + Cifra inválida + + + Invalid KDF + Função de derivação de chave inválida + + + Access to all entries is denied + Não permitir acesso às entradas + + + allow screenshots and app recording (Windows/macOS) + permitir captura de ecrã e gravação de aplicações (Windows/macOS) + + + Enter Shortcut + Digite o atalho + + + Action + Ação + + + Shortcuts + Atalhos + + + Attestation not supported + Atestado não suportado + + + Credential is excluded + Credencial excluída + + + Passkeys request canceled + Cancelado o pedido de chaves-mestras + + + Invalid user verification + Verificação de utilizador inválida + + + Empty public key + Chave pública vazia + + + Invalid URL provided + URL inválido + + + Passkeys + Chaves-mestras + + + AES initialization failed + Falha na inicialização AES + + + AES encrypt failed + Falha ao cifrar com AES + + + Failed to store in Linux Keyring + Não foi possível guardar no chaveiro Linux + + + Polkit returned an error: %1 + 'Polkit' devolveu um erro: %1 + + + Could not locate key in keyring + Não foi possível localizar a chave no chaveiro + + + Could not read key in keyring + Não foi possível ler a chave no chaveiro + + + AES decrypt failed + Falha ao decifrar com AES + + + No Polkit authentication agent was available + Não foi encontrado qualquer agente de autenticação 'Polkit' + + + Polkit authorization failed + Não foi possível autorizar com 'Polkit' + + + No Quick Unlock provider is available + Não existe qualquer fornecedor Quick Unlock + + + Failed to init KeePassXC crypto. + Não foi possível iniciar a criptografia KeePassXC + + + Failed to encrypt key data. + Não foi possível cifrar os dados da chave + + + Failed to get Windows Hello credential. + Não foi possível obter a credencial Windows Hello + + + Failed to decrypt key data. + Não foi possível decifrar os dados da chave + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + Origem vazia ou não permitida + + + Effective domain is not a valid domain + O domínio efetivo não é válido + + + Origin and RP ID do not match + A origem e a ID do RP não coincidem + + + No supported algorithms were provided + Não foram fornecidos algoritmos suportados + + + Wait for timer to expire + Esperar pela caducidade do temporizador + + + Unknown Passkeys error + Erro desconhecido de chaves-mestre + + + Challenge is shorter than required minimum length + O desafio é menor do que o tamanho mínimo permitido + + + user.id does not match the required length + user.id não coincide com o tamanho necessário @@ -7769,7 +8685,7 @@ Kernel: %3 %4 QtIOCompressor::open The gzip format not supported in this version of zlib. - O formato gzip não é suportado por esta versão zlib. + O formato gzip não é suportado por esta versão zlib Internal zlib error: @@ -7778,18 +8694,6 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - Excluir do relatório as entradas caducadas - - - Show only entries which have URL set - Mostrar apenas as entradas com URL definido - - - Show only entries which have browser settings in custom data - Mostrar apenas as entradas que possuam definições do navegador em dados personalizados - Double-click entries to edit. Duplo clique nas entradas para editar @@ -7824,11 +8728,11 @@ Kernel: %3 %4 Please wait, browser statistics is being calculated… - Por favor aguarde enquanto as estatísticas estão a ser calculadas... + Por favor aguarde enquanto as estatísticas estão a ser calculadas… No entries with a URL, or none has browser extension settings saved. - Não existem entradas com URL definido ou com definições de integração com navegador guardadas. + Não existem entradas com URL definido ou com definições de integração com navegador guardadas Title @@ -7844,27 +8748,35 @@ Kernel: %3 %4 Edit Entry… - Editar entrada... + Editar entrada… Delete Entry(s)… - Eliminar entrada...Eliminar entradas... + Eliminar entrada…Eliminar entradas…Eliminar entradas… Exclude from reports Excluir dos relatórios + + Only show entries that have a URL + Mostrar apenas as entradas que tenham um URL + + + Only show entries that have been explicitly allowed or denied + Mostrar apenas as entradas que foram, explicitamente, permitidas ou recusadas + + + Show expired entries + Mostrar entradas caducadas + + + (Expired) + (Caducadas) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - Excluir do relatório as entradas caducadas - - - Also show entries that have been excluded from reports - Incluir também as entradas que tenham sido excluídas dos relatórios - Hover over reason to show additional details. Double-click entries to edit. Passe com o rato pelo motivo para obter mais informação. Clique duas vezes na entrada para editar. @@ -7906,7 +8818,7 @@ Kernel: %3 %4 Please wait, health data is being calculated… - Por favor aguarde, os dados estão a ser calculados... + Por favor aguarde, os dados estão a ser calculados… Congratulations, everything is healthy! @@ -7934,12 +8846,24 @@ Kernel: %3 %4 Delete Entry(s)… - Eliminar entrada...Eliminar entradas... + Eliminar entrada…Eliminar entradas…Eliminar entradas… Exclude from reports Excluir dos relatórios + + Show expired entries + Mostrar entradas caducadas + + + Show entries that have been excluded from reports + Mostrar entradas que tenham sido excluídas dos relatórios + + + (Expired) + (Caducadas) + ReportsWidgetHibp @@ -7973,7 +8897,7 @@ Kernel: %3 %4 Password exposed… - Palavra-passe exposta... + Palavra-passe exposta… (Excluded) @@ -8025,22 +8949,81 @@ Kernel: %3 %4 Edit Entry… - Editar entrada... + Editar entrada… Delete Entry(s)… - Eliminar entrada...Eliminar entradas... + Eliminar entrada…Eliminar entradas…Eliminar entradas… Exclude from reports Excluir dos relatórios + + ReportsWidgetPasskeys + + Export + Exportar + + + Import + Importar + + + List of entry URLs + Lista dos URL das entradas + + + Please wait, list of entries with Passkeys is being updated… + Por favor aguarde. A lista de chaves-mestras está a ser atualizada... + + + No entries with Passkeys. + Não existem entradas com chave-mestra + + + Title + Título + + + Path + Caminho + + + Username + Nome de utilizador + + + URLs + URL + + + Edit Entry… + Editar entrada… + + + Delete Entry(s)… + Eliminar entrada…Eliminar entradas…Eliminar entradas… + + + Relying Party + Entidades fiáveis + + + Show expired entries + Mostrar entradas caducadas + + + (Expired) + (Caducadas) + + ReportsWidgetStatistics Hover over lines with error icons for further information. - Passe com o rato por cima das linhas com o erro para mais informações. + Passe com o rato por cima das linhas com o erro para mais informações Name @@ -8052,7 +9035,7 @@ Kernel: %3 %4 Please wait, database statistics are being calculated… - Por favor aguarde. Estamos a calcular as estatísticas da base de dados... + Por favor aguarde. Estamos a calcular as estatísticas da base de dados… Database name @@ -8088,7 +9071,7 @@ Kernel: %3 %4 The database was modified, but the changes have not yet been saved to disk. - A base de dados foi modificada mas as alterações ainda não foram guardadas. + A base de dados foi modificada mas as alterações ainda não foram guardadas Number of groups @@ -8175,7 +9158,7 @@ Kernel: %3 %4 No agent running, cannot add identity. - O agente não está em execução e não é possível adicionar a identidade. + O agente não está em execução por isso não é possível adicionar a identidade. Key identity ownership conflict. Refusing to add. @@ -8203,11 +9186,11 @@ Kernel: %3 %4 No agent running, cannot remove identity. - O agente não está em execução e não é possível remover a identidade. + O agente não está em execução por isso não é possível remover a identidade. No agent running, cannot list identities. - Nenhum agente em execução, não é possível listar as identidades. + O agente não está em execução por isso não é possível listar as identidades. @@ -8275,10 +9258,14 @@ Kernel: %3 %4 Search Help Pesquisar na ajuda + + Save Search + Guardar pesquisa + Search (%1)… Search placeholder text, %1 is the keyboard shortcut - Pesquisar (%1)... + Pesquisar (%1)… Case sensitive @@ -8395,7 +9382,7 @@ Mas esta ativação também pode implicar o encerramento da aplicação se a bas Save current changes to activate the plugin and enable editing of this section. - Guarde as alterações atuais para ativar o plugin e permitir a edição desta secção. + Guarde as alterações atuais para ativar o plugin e permitir a edição desta secção @@ -8457,7 +9444,7 @@ Mas esta ativação também pode implicar o encerramento da aplicação se a bas ShareExport Could not write export container. - Não foi possível gravar o contentor. + Não foi possível gravar o contentor @@ -8502,11 +9489,38 @@ Mas esta ativação também pode implicar o encerramento da aplicação se a bas Exportar para %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + Dois cliques na ação para alterar o atalho + + + Shortcut Conflict + Conflito de atalhos + + + Filter... + Filtro... + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + O atalho %1 está em conflito com '%2'. Substituir atalho? + + + Reset Shortcuts + Repor atalhos + + TagModel - All - Tudo + Clear Search + Limpar pesquisa + + + All Entries + Todas as entradas Expired @@ -8517,6 +9531,25 @@ Mas esta ativação também pode implicar o encerramento da aplicação se a bas Palavras-passe fracas + + TagView + + Remove Search + Remover pesquisa + + + Remove Tag + Remover etiqueta + + + Confirm Remove Tag + Confirmação de remoção + + + Remove tag "%1" from all entries in this database? + Tem a certeza de que deseja remover a etiqueta "%1" de todas as entradas desta base de dados? + + TotpDialog @@ -8529,7 +9562,7 @@ Mas esta ativação também pode implicar o encerramento da aplicação se a bas Expires in <b>%n</b> second(s) - Caduca dentro de <b>%n</b> segundoCaduca dentro de <b>%n</b> segundos + Caduca dentro de <b>%n</b> segundoCaduca dentro de <b>%n</b> segundosCaduca dentro de <b>%n</b> segundos @@ -8541,15 +9574,15 @@ Mas esta ativação também pode implicar o encerramento da aplicação se a bas NOTE: These TOTP settings are custom and may not work with other authenticators. TOTP QR code dialog warning - Nota: estas definições TOTP são personalizadas e podem não funcionar com outros autenticadores. + Nota: estas definições TOTP são personalizadas e podem não funcionar com outros autenticadores There was an error creating the QR code. - Ocorreu um erro ao criar o código QR. + Ocorreu um erro ao criar o código QR Closing in %1 seconds. - A fechar dentro de %1 segundos. + A fechar dentro de %1 segundos @@ -8644,7 +9677,7 @@ Example: JBSWY3DPEHPK3PXP Checking for updates… - A procurar atualizações... + A procurar atualizações… Close @@ -8664,7 +9697,7 @@ Example: JBSWY3DPEHPK3PXP You have the latest version of KeePassXC - A sua versão KeePassXC é a mais recente. + A sua versão KeePassXC é a mais recente @@ -8673,26 +9706,6 @@ Example: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Armazene as suas palavras-passe em segurança com o KeePassXC - - Create new database - Criar nova base de dados - - - Open existing database - Abrir base de dados existente - - - Import from KeePass 1 - Importar de KeePass 1 - - - Import from 1Password - Importar de 1Password - - - Import from CSV - Importar de ficheiro CSV - Recent databases Bases de dados recentes @@ -8705,6 +9718,18 @@ Example: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Bem-vindo ao KeePassXC %1 + + Create Database + Criar base de dados + + + Open Database + Abrir base de dados + + + Import File + + WinUtils @@ -8721,31 +9746,8 @@ Example: JBSWY3DPEHPK3PXP Não foi possível definir o atalho global - - WindowsHello - - Failed to init KeePassXC crypto. - Não foi possível iniciar a criptografia KeePassXC - - - Failed to encrypt key data. - Não foi possível cifrar os dados da chave - - - Failed to get Windows Hello credential. - Não foi possível obter a credencial Windows Hello - - - Failed to decrypt key data. - Não foi possível decifrar os dados da chave - - YubiKey - - %1 No interface, slot %2 - %1 sem interface, ranhura %2 - General: Geral: @@ -8757,14 +9759,6 @@ Example: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - Recarregar 'tokens' de hardware - - - Refresh - Recarregar - Hardware key slot selection Seleção de 'slot' para a chave de hardware @@ -8797,39 +9791,28 @@ Example: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove Pregunta de segurança definida. Clique para alterar ou remover. - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>Se tiver um <a href="https://www.yubico.com/">YubiKey</a> ou <a href="https://onlykey.io">Only Key</a>, pode utilizá-lo para mais segurança.</p><p>A chave requer que uma das suas ranhuras seja programada como <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - Detecting hardware keys… - A detetar chaves de hardware... + A detetar chaves de hardware… No hardware keys detected Não foram detetadas chaves de hardware - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 Especificou uma ranhura inválida - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + <p>Se tiver uma <a href="https://www.yubico.com/">YubiKey</a> ou <a href="https://onlykey.io">Only Key</a>, pode utilizá-la para mais segurança.</p><p>A chave requer que uma das suas ranhuras seja programada como <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] Pergunta de segurança - Ranhura %3 - The YubiKey PCSC interface has not been initialized. - A interface YubiKey PCSC não foi inicializada. - - - Hardware key is currently in use. - O dispositivo de segurança está a ser utilizado. + A interface YubiKey PCSC não foi inicializada Could not find or access hardware key with serial number %1. Please present it to continue. @@ -8841,11 +9824,26 @@ Example: JBSWY3DPEHPK3PXP Hardware key was not found or is not configured. - A chave física não foi encontrada ou não está configurada. + A chave física não foi encontrada ou não está configurada Failed to complete a challenge-response, the PCSC error code was: %1 - Erro ao tentar concluir a pergunta de segurança. O código de erro PSCSC foi: %1. + Erro ao tentar concluir a pergunta de segurança. O código de erro PSCSC foi: %1 + + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + Prima + + + Passive + USB Challenge-Response Key no interaction required + Passiva @@ -8854,14 +9852,6 @@ Example: JBSWY3DPEHPK3PXP Unknown Desconhecido - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] Ranhura configurada - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] Pergunta de segurança - Ranhura %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8874,11 +9864,7 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. - A interface YubiKey USB não foi inicializada. - - - Hardware key is currently in use. - O dispositivo de segurança está a ser utilizado. + A interface YubiKey USB não foi inicializada Could not find hardware key with serial number %1. Please plug it in to continue. @@ -8886,7 +9872,7 @@ Example: JBSWY3DPEHPK3PXP Hardware key timed out waiting for user interaction. - Tempo limite excedido ou à espera de interação do utilizador. + Tempo limite excedido ou à espera de interação do utilizador A USB error occurred when accessing the hardware key: %1 @@ -8894,7 +9880,17 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 - Erro ao tentar concluir a pergunta de segurança. O erro foi: %1. + Erro ao tentar concluir a pergunta de segurança. O erro foi: %1 + + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + \ No newline at end of file diff --git a/share/translations/keepassxc_ro.ts b/share/translations/keepassxc_ro.ts index eb4fc2f9c..5c50fd22c 100644 --- a/share/translations/keepassxc_ro.ts +++ b/share/translations/keepassxc_ro.ts @@ -225,6 +225,10 @@ Select backup storage directory + + This setting cannot be enabled when minimize on unlock is enabled. + + ApplicationSettingsWidgetGeneral @@ -493,6 +497,14 @@ Remember last typed entry for: + + recent files + + + + Show passwords in color + + ApplicationSettingsWidgetSecurity @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons UtilizaÈ›i serviciul DuckDuckGo pentru a descărca pictogramele site-ului + + Hide TOTP in the entry preview panel + + AutoType @@ -642,6 +658,10 @@ Invalid placeholder: %1 + + Entry does not have attribute for PICKCHARS: %1 + + AutoTypeAssociationsModel @@ -1133,14 +1153,6 @@ MigraÈ›i acum setările existente? Please see special instructions for browser extension use below Vă rugăm să consultaÈ›i instrucÈ›iunile speciale pentru utilizarea extensiei browserului de mai jos - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - - - - <b>Warning:</b> The following options can be dangerous! - <b>Avertizare:</b> Următoarele opÈ›iuni pot fi periculoase! - Executable Files FiÈ™iere executabile @@ -1157,6 +1169,22 @@ MigraÈ›i acum setările existente? Select native messaging host folder location + + <b>Warning:</b> Only adjust these settings if necessary. + + + + The custom proxy location does not exist. + + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + + CloneDialog @@ -1421,10 +1449,6 @@ Baza de date de rezervă localizată la %2 Key File: FiÈ™ier cheie: - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - - Key file help Ajutor de fiÈ™iere cheie @@ -1437,11 +1461,6 @@ Baza de date de rezervă localizată la %2 Hardware Key: Cheie hardware: - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - - Hardware key help Ajutor cheie hardware @@ -1522,10 +1541,6 @@ Pentru a preveni apariÈ›ia acestei erori, trebuie să accesaÈ›i „Setări baza Retry with empty password ÃŽncercaÈ›i din nou cu parola goală - - Failed to authenticate with Windows Hello - - Failed to authenticate with Touch ID @@ -1580,6 +1595,27 @@ Dacă nu aveÈ›i un fiÈ™ier cheie, lăsaÈ›i câmpul gol. Select hardware key… + + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> + + + + <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> +<p>Click for more information…</p> + + + + authenticate to access the database + + + + Failed to authenticate with Windows Hello: %1 + + + + Windows Hello setup was canceled or failed. Quick unlock has not been enabled. + + DatabaseSettingWidgetMetaData @@ -2002,18 +2038,10 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry Numărul maxim de articole istorice pe intrare - - Max. history items: - Max. elemente de istorie: - Maximum size of history per entry Mărimea maximă a istoricului pe intrare - - Max. history size: - Max. Dimensiune istorie: - MiB Mib @@ -2044,6 +2072,35 @@ Această acÈ›iune nu este reversibilă. (old) (vechi) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + + + + Limit the amount of history items per entry to: + + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + + + + Limit the total size of history items per entry to: + + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + + DatabaseSettingsWidgetKeeShare @@ -2225,13 +2282,21 @@ Acest lucru este cu siguranta un bug, vă rugăm să raporteze la dezvoltatori.< Database tab name modifier %1 [blocat] + + Export database to XML file + + + + XML file + + + + Writing the XML file failed + + DatabaseWidget - - Database Tags - - Searching… @@ -2398,6 +2463,22 @@ DezactivaÈ›i salvarea sigură È™i încercaÈ›i din nou? Entries expiring within %1 day(s) + + Searches and Tags + + + + Enter a unique name or overwrite an existing search from the list: + + + + Save + Salvează + + + Save Search + + EditEntryWidget @@ -2807,22 +2888,10 @@ Would you like to correct it? Notes field Câmpul de note - - Toggle the checkbox to reveal the notes section. - ComutaÈ›i caseta de selectare pentru a dezvălui secÈ›iunea de note. - Username field Câmpul utilizatorului - - Toggle notes visible - Notele de comutare sunt vizibile - - - Notes: - - Expiration field Câmp de expirare @@ -2839,14 +2908,6 @@ Would you like to correct it? Presets Presetări - - Password: - Parola: - - - URL: - URL: - Url field Câmp url @@ -2855,18 +2916,10 @@ Would you like to correct it? Download favicon for URL DescărcaÈ›i favicon pentru URL - - Title: - Titlu: - Title field Câmpul titlu - - Username: - Nume utilizator: - Password field Câmp parola @@ -2875,18 +2928,42 @@ Would you like to correct it? Toggle expiration Combate expirarea - - Expires: - - - - Tags: - - Tags list + + &Username: + + + + &Title: + + + + &Password: + + + + UR&L: + + + + &Notes: + + + + Toggle notes visibility + + + + T&ags: + + + + &Expires: + + EditEntryWidgetSSHAgent @@ -3025,10 +3102,6 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - - These settings affect to the group's behaviour with the browser extension. @@ -3065,6 +3138,14 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups + + Omit WWW subdomain from matching: + + + + Omit WWW subdomain from matching toggle for this and sub groups + + EditGroupWidgetKeeShare @@ -3612,7 +3693,7 @@ Error: %1 Password - Parolă + Parola URL @@ -3865,6 +3946,14 @@ Error: %1 Disabled Dezactivat + + Double click to copy value + + + + Double click to copy to clipboard + + EntryURLModel @@ -3872,6 +3961,10 @@ Error: %1 Invalid URL URL invalid + + Duplicate URL + + EntryView @@ -3887,6 +3980,10 @@ Error: %1 Reset to defaults Resetare la valorile implicite + + + %1 entry(s)... + + ExportDialog @@ -5128,10 +5225,6 @@ Sigur doriÈ›i să continuaÈ›i cu acest fiÈ™ier? Copy title to clipboard Copiere titlu în Clipboard - - &URL - &URL - Copy URL to clipboard Copiere URL în Clipboard @@ -5356,6 +5449,38 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? + + Tags + + + + No Tags + + + + %1 Entry(s) + + + + Copy Password and TOTP + + + + &XML File… + + + + XML File… + + + + Copy &URL + + + + Allow Screen Capture + + ManageDatabase @@ -5726,27 +5851,8 @@ We recommend you use the AppImage available on our downloads page. Unexpected EOF when writing private key EOF neaÈ™teptate atunci când scrierea cheie privată - - - PasswordEdit - Passwords do not match - parolele nu se potrivesc - - - Passwords match so far - Parolele se potrivesc până acum - - - Toggle Password (%1) - - - - Generate Password (%1) - - - - Warning: Caps Lock enabled! + AES-256/GCM is currently not supported @@ -5928,10 +6034,6 @@ We recommend you use the AppImage available on our downloads page. Also choose from: - - Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" - Caractere excluse: "0", "1", "l", "I", "O", "|", "." - Exclude look-alike characters Exclude caractere asemănătoare @@ -6081,6 +6183,61 @@ Do you want to overwrite it? Password quality Excelent + + Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" + Caractere excluse: "0", "1", "l", "I", "O", "|", "." + + + + PasswordWidget + + Passwords do not match + parolele nu se potrivesc + + + Passwords match so far + Parolele se potrivesc până acum + + + Toggle Password (%1) + + + + Generate Password (%1) + + + + Warning: Caps Lock enabled! + + + + Quality: %1 + + + + Poor + Password quality + Inacceptabil + + + Weak + Password quality + Slab + + + Good + Password quality + Bun + + + Excellent + Password quality + Excelent + + + Toggle password visibilty using Control + H. Open the password generator using Control + G. + + PickcharsDialog @@ -7400,7 +7557,7 @@ Nucleu (Kernel): %3 %4 - Botan library must be at least 2.11.x, found %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 @@ -7641,10 +7798,6 @@ Nucleu (Kernel): %3 %4 read password of the database from stdin citi parola bazei de date de la stdin - - allow app screen recordering and screenshots - - Locked databases. @@ -7665,10 +7818,6 @@ Nucleu (Kernel): %3 %4 KeePassXC - Error KeePassXC - Eroare - - Warning: Failed to prevent screenshots on a top level window! - - Database password: Parolă bază de date: @@ -7691,10 +7840,87 @@ Nucleu (Kernel): %3 %4 Failed to sign challenge using Windows Hello. + + Warning: Failed to block screenshot capture on a top-level window. + + + + Invalid Cipher + + + + Invalid KDF + + Please present or touch your YubiKey to continue. + + Show all the attributes of the entry. + + + + Edit a database. + + + + Could not change the database key. + + + + Database was not modified. + + + + Successfully edited the database. + + + + Loading the new key file failed: %1 + + + + Unset the password for the database. + + + + Unset the key file for the database. + + + + Cannot use %1 and %2 at the same time. + + + + Cannot remove all the keys from a database. + + + + Cannot remove password: The database does not have a password. + + + + Cannot remove file key: The database does not have a file key. + + + + Found unexpected Key type %1 + + + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + + + + KeePassXC is not running. No open database to lock + + + + allow screenshots and app recording (Windows/macOS) + + QtIOCompressor @@ -8242,6 +8468,10 @@ Nucleu (Kernel): %3 %4 Limit search to selected group LimitaÈ›i căutarea la grupul selectat + + Save Search + + SettingsClientModel @@ -8454,10 +8684,6 @@ Nucleu (Kernel): %3 %4 TagModel - - All - - Expired @@ -8466,6 +8692,33 @@ Nucleu (Kernel): %3 %4 Weak Passwords + + All Entries + + + + Clear Search + + + + + TagView + + Remove Search + + + + Remove Tag + + + + Confirm Remove Tag + + + + Remove tag "%1" from all entries in this database? + + TotpDialog diff --git a/share/translations/keepassxc_ru.ts b/share/translations/keepassxc_ru.ts index 603f7bec8..c934b4672 100644 --- a/share/translations/keepassxc_ru.ts +++ b/share/translations/keepassxc_ru.ts @@ -11,11 +11,11 @@ Report bugs at: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> - Сообщить об <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">ошибках</a> по https://github.com + Сообщить об ошибках: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> KeePassXC is distributed under the terms of the GNU General Public License (GPL) version 2 or (at your option) version 3. - KeePassXC раÑпроÑтранÑетÑÑ Ð½Ð° уÑловиÑÑ… универÑальной общедоÑтупной лицензии GNU (GPL) верÑии 2 или 3 (на ваше уÑмотрение). + KeePassXC раÑпроÑтранÑетÑÑ Ð½Ð° уÑловиÑÑ… ОÑновной ОбщеÑтвенной Лицензии GNU верÑии 2-ой или 3-ей (на ваше уÑмотрение). Project Maintainers: @@ -23,7 +23,7 @@ Special thanks from the KeePassXC team go to debfx for creating the original KeePassX. - Команда KeePassXC выражает оÑобую благодарноÑть debfx за Ñоздание оригинального KeePassX. + Команда KeePassXC выражает оÑобую благодарноÑть debfx за Ñоздание изначального KeePassX. Contributors @@ -35,7 +35,7 @@ Debug Info - ÐžÑ‚Ð»Ð°Ð´Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ + Отладочные ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Include the following information whenever you report a bug: @@ -54,7 +54,7 @@ Non-existing/inaccessible executable path. Please double-check the client is legit. - ПредоÑтавьте Ñтому получателю возможноÑть выдавать пользователÑм доÑтуп к отчетам + ÐеÑущеÑтвующий/недоÑтупный путь к иÑполнÑемому файлу. Перепроверьте подлинноÑть клиента. <html><head/><body><p><span style=" font-weight:600;">%1 </span>is requesting access to the following entries:</p></body></html> @@ -80,6 +80,10 @@ Details ПодробноÑти + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Ваше решение будет Ñохранено на вÑе времÑ, пока запущены и запрашивающий клиент, и KeePassXC. + Remember Запомнить @@ -88,17 +92,13 @@ Allow Selected Разрешить выбранные - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - Ваше решение будет Ñохранено на вÑе времÑ, пока запущены и запрашивающий клиент, и KeePassXC. - Deny All && Future Запретить вÑе && будущие Allow All && &Future - Разрешить вÑе && будущие + Разрешить вÑе && &будущие @@ -122,13 +122,17 @@ Use OpenSSH ИÑпользовать OpenSSH + + Use both agents + ИÑпользовать оба агента + SSH_AUTH_SOCK override - переопределить SSH_AUTH_SOCK + Переопределить SSH_AUTH_SOCK SSH_AUTH_SOCK value - значение SSH_AUTH_SOCK + Значение SSH_AUTH_SOCK (empty) @@ -140,19 +144,15 @@ SSH_SK_PROVIDER override - SSH_SK_PROVIDER переопределить + Переопределить SSH_SK_PROVIDER No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. - ОтÑутÑтвуют Ñокеты агента SSH. УбедитеÑÑŒ, что Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ SSL_AUTH_SOCK определена или переопределите её значение. + ОтÑутÑтвуют Ñокеты SSH-агента. УбедитеÑÑŒ, что Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ SSL_AUTH_SOCK определена или переопределите её значение. SSH Agent connection is working! - Соединение Ñ Ð°Ð³ÐµÐ½Ñ‚Ð¾Ð¼ SSH активно. - - - Use both agents - ИÑпользовать оба агента + Соединение Ñ SSH-агентом активно! @@ -169,6 +169,10 @@ Security БезопаÑноÑть + + This setting cannot be enabled when minimize on unlock is enabled. + Эту наÑтройку Ð½ÐµÐ»ÑŒÐ·Ñ Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ, еÑли включена Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ ÑÐ²Ð¾Ñ€Ð°Ñ‡Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸ разблокировке. + Access error for config file %1 Ошибка доÑтупа к файлу конфигурации %1 @@ -211,15 +215,15 @@ You must restart the application to set the new language. Would you like to restart now? - Ð’Ñ‹ должны перезапуÑтить приложение, чтобы уÑтановить новый Ñзык. Хотите перезапуÑтить ÑейчаÑ? + Ðеобходимо перезапуÑтить приложение, чтобы уÑтановить новый Ñзык. ПерезапуÑтить ÑейчаÑ? Reset Settings? - СброÑить наÑтройки? + СброÑить параметры? Are you sure you want to reset all general and security settings to default? - ДейÑтвительно ÑброÑить вÑе общие параметры и параметры безопаÑноÑти к значениÑм, заданным по умолчанию? + ДейÑтвительно ÑброÑить вÑе общие параметры и параметры безопаÑноÑти к значениÑм, заданным по умолчанию? Select backup storage directory @@ -242,7 +246,7 @@ Automatically launch KeePassXC at system startup - ÐвтоматичеÑки запуÑк KeePassXC при запуÑке ÑиÑтемы + ÐвтоматичеÑки запуÑкать KeePassXC при загрузке ÑиÑтемы Minimize window at application startup @@ -250,19 +254,23 @@ Minimize window after unlocking database - Минимизировать окно поÑле Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных + Сворачивать окно поÑле разблокировки базы данных Remember previously used databases Запоминать ранее иÑпользованные базы данных + + recent files + недавние файлы + Load previously open databases on startup Загружать прошлые базы данных при запуÑке Remember database key files and security dongles - Запоминать Ð´Ð»Ñ Ð±Ð°Ð· данных файлы-ключи и аппаратные ключи безопаÑноÑти + Запоминать файлы-ключи баз данных и аппаратные ключи безопаÑноÑти Check for updates at application startup once per week @@ -270,11 +278,11 @@ Include beta releases when checking for updates - Включать в проверку обновлений бета-релизы + Включить в проверку обновлений бета-релизы On database unlock, show entries that - При разблокировке базы данных показать запиÑи, которые + При разблокировке базы данных показывать запиÑи, которые have expired @@ -284,12 +292,12 @@ days On database unlock, show entries that will expire within %1 days - дни + дней will expire within On database unlock, show entries that... - иÑтекает в течение + иÑтекают в течение File Management @@ -301,11 +309,11 @@ Automatically save when locking database - ÐвтоматичеÑкое Ñохранение при блокировке базы данных + ÐвтоматичеÑки ÑохранÑть при блокировке базы данных Automatically save non-data changes when locking database - ÐвтоматичеÑкое Ñохранение изменений, не ÑвÑзанных Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸, при блокировке базы данных. + ÐвтоматичеÑки ÑохранÑть изменениÑ, не ÑвÑзанные Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸, при блокировке базы данных Automatically reload the database when modified externally @@ -321,7 +329,7 @@ Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". - Указывает меÑтоположение файла резервной копии базы данных. Ð’ÑтречающиеÑÑ "{DB_FILENAME}" заменÑÑŽÑ‚ÑÑ Ð¸Ð¼ÐµÐ½ÐµÐ¼ файла Ñохранённой базы данных без раÑширениÑ. {TIME:} заменÑетÑÑ Ð²Ñ€ÐµÐ¼ÐµÐ½ÐµÐ¼ резервного копированиÑ, Ñм. https://doc.qt.io/qt-5/qdatetime.html#toString. По умолчанию иÑпользуетÑÑ Ñтрока формата "дд_ММ_ггг_чч-мм-ÑÑ". + Указывает меÑтоположение файла резервной копии базы данных. Ð’ÑтречающиеÑÑ Â«{DB_FILENAME}» заменÑÑŽÑ‚ÑÑ Ð¸Ð¼ÐµÐ½ÐµÐ¼ файла Ñохранённой базы данных без раÑширениÑ. {TIME:<format>} заменÑетÑÑ Ð²Ñ€ÐµÐ¼ÐµÐ½ÐµÐ¼ резервного копированиÑ, Ñм. https://doc.qt.io/qt-5/qdatetime.html#toString. <format> иÑпользует Ñтроку формата «дд_ММ_ггг_чч-мм-ÑÑ». {DB_FILENAME}.old.kdbx @@ -337,7 +345,7 @@ Temporary file moved into place - Временный файл перемещен на меÑто + Временный файл перемещён на меÑто Directly write to database file (dangerous) @@ -357,7 +365,7 @@ Hide window when copying to clipboard - Скрывать окно поÑле ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² буфер обмена: + Скрывать окно поÑле ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² буфер обмена Minimize @@ -373,7 +381,7 @@ Website icon download timeout in seconds - Тайм-аут Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐºÐ¾Ð² веб-Ñайтов, задаётÑÑ Ð² Ñекундах + Тайм-аут Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐºÐ¾Ð² веб-Ñайтов в Ñекундах sec @@ -408,6 +416,10 @@ Toolbar button style: Внешний вид кнопок панели инÑтрументов: + + Show passwords in color + Показывать пароли в цвете + Use monospaced font for notes ИÑпользовать Ð´Ð»Ñ Ð·Ð°Ð¼ÐµÑ‚Ð¾Ðº моноширинный шрифт @@ -418,7 +430,7 @@ Show a system tray icon - Значок в облаÑти уведомлений + Показывать значок в облаÑти уведомлений Tray icon type @@ -434,7 +446,7 @@ Reset settings to default… - СброÑить наÑтройки по умолчанию... + СброÑить параметры по умолчанию... Auto-Type @@ -470,7 +482,7 @@ Auto-type start delay milliseconds - Задержка начала автоввода, задаётÑÑ Ð² милиÑекундах + Задержка начала автоввода, задаётÑÑ Ð² миллиÑекундах ms @@ -483,7 +495,7 @@ Global auto-type shortcut - ÐšÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñˆ Ð´Ð»Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ автоввода: + ÐšÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñˆ Ð´Ð»Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ автоввода Auto-type character typing delay milliseconds @@ -491,7 +503,7 @@ Remember last typed entry for: - Запомнить поÑледнюю введенную запиÑÑŒ длÑ: + Запомнить поÑледнюю введённую запиÑÑŒ длÑ: @@ -564,7 +576,7 @@ Hide entry notes by default - По умолчанию Ñкрывать Ð¿Ñ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñи + По умолчанию Ñкрывать заметки к запиÑи Move entries to recycle bin without confirmation @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons ИÑпользовать DuckDuckGo Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ значков + + Hide TOTP in the entry preview panel + Скрыть TOTP на панели предварительного проÑмотра запиÑей + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 Обнаружена Ñлишком Ð±Ð¾Ð»ÑŒÑˆÐ°Ñ Ð·Ð°Ð´ÐµÑ€Ð¶ÐºÐ°, допуÑкаетÑÑ Ð½Ðµ более %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + ЗапиÑÑŒ не имеет атрибута PICKCHARS: %1 + Invalid conversion type: %1 ÐедопуÑтимый тип преобразованиÑ: %1 @@ -671,7 +691,7 @@ Title - Ð˜Ð¼Ñ Ð·Ð°Ð¿Ð¸Ñи + Ðазвание Username @@ -698,14 +718,14 @@ Unable to get valid keycode for key: - Ðе удалоÑÑŒ получить корректный код клавиши Ð´Ð»Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ¸: + Ðе удалоÑÑŒ получить корректный код клавиши Ð´Ð»Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ¸: AutoTypeSelectDialog Auto-Type - KeePassXC - Ðвтоввод - KeePassXC + Ðвтоввод — KeePassXC Double click a row to perform Auto-Type or find an entry using the search: @@ -718,12 +738,12 @@ Ctrl+1 - Type username<br/> Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> - <p>Ð’Ñ‹ можете иÑпользовать раÑширенные поиÑковые запроÑÑ‹, чтобы найти любую запиÑÑŒ в открытых вами базах данных. Полезно иÑпользовать Ñледующие ÑÐ¾Ñ‡ÐµÑ‚Ð°Ð½Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñˆ:<br/> + <p>Ð’Ñ‹ можете иÑпользовать раÑширенные поиÑковые запроÑÑ‹, чтобы найти любую запиÑÑŒ в открытых вами базах данных. Можно иÑпользовать Ñледующие комбинации клавиш:<br/> Ctrl+F — включить или отключить поиÑк по базам данных<br/> Ctrl+1 — ввеÑти Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ<br/> Ctrl+2 — ввеÑти пароль<br/> Ctrl+3 — ввеÑти TOTP<br/> -Ctrl+4 - иÑпользовать виртуальную клавиатуру (только Ð´Ð»Ñ Windows)</p> +Ctrl+4 — иÑпользовать виртуальную клавиатуру (только Ð´Ð»Ñ Windows)</p> Search all open databases @@ -804,13 +824,13 @@ Ctrl+4 - иÑпользовать виртуальную клавиатуру ( Disable for this site Отключить Ð´Ð»Ñ Ñтого Ñайта + + Undo + Отменить + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser - Ñохранить запиÑÑŒ - Ok OK @@ -825,25 +845,77 @@ Please select the correct database for saving credentials. У Ð²Ð°Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¾ неÑколько баз данных. Выберите нужную базу Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ ÑƒÑ‡Ñ‘Ñ‚Ð½Ñ‹Ñ… данных. + + KeePassXC - Select Database + KeePassXC - Выбрать базу данных + + + + BrowserPasskeysConfirmationDialog + + Cancel + Отмена + + + Update + Обновить + + + Authenticate + ÐÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ + + + Register new + ЗарегиÑтрировать новый + + + Register + ЗарегиÑтрироватьÑÑ + + + Timeout in <b>%n</b> seconds... + Тайм-аут через <b>%n</b> Ñекунду...Тайм-аут через <b>%n</b> Ñекунды...Тайм-аут через <b>%n</b> Ñекунд...Тайм-аут через <b>%n</b> Ñекунд... + + + Do you want to register Passkey for: + Ð’Ñ‹ хотите зарегиÑтрировать Passkey длÑ: + + + Existing Passkey found. +Do you want to register a new Passkey for: + СущеÑтвующий Passkey найден. Хотите зарегиÑтрировать новый Passkey длÑ: + + + Select the existing Passkey and press Update to replace it. + Выберите ÑущеÑтвующий Passkey и нажмите Обновить, чтобы заменить его. + + + Authenticate Passkey credentials for: + ÐÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ ÑƒÑ‡ÐµÑ‚Ð½Ñ‹Ñ… данных Passkey длÑ: + + + Relying Party: %1 + Ð”Ð¾Ð²ÐµÑ€ÐµÐ½Ð½Ð°Ñ Ñторона: %1 + + + Username: %1 + Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ: %1 + + + KeePassXC - Passkey credentials + KeePassXC - учетные данные Passkey + BrowserService - - KeePassXC: Create a new group - KeePassXC: Создать новую группу - A request for creating a new group "%1" has been received. Do you want to create this group? - Получен Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° Ñоздание новой группы "%1". + Получен Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° Ñоздание новой группы «%1». Создать Ñту группу? - - KeePassXC: New key association request - KeePassXC: Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° аÑÑоциацию нового ключа - You have received an association request for the following database: %1 @@ -859,81 +931,64 @@ chrome-laptop. Save and allow access Сохранить и разрешить доÑтуп - - KeePassXC: Overwrite existing key? - KeePassXC: ПерезапиÑать ÑущеÑтвующий ключ? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? - Общий Ñекретный ключ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ "%1" уже ÑущеÑтвует. + Общий Ñекретный ключ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ «%1» уже ÑущеÑтвует. Ð’Ñ‹ дейÑтвительно хотите его перезапиÑать? - - KeePassXC: Update Entry - KeePassXC: Обновить запиÑÑŒ - Do you want to update the information in %1 - %2? Обновить информацию в %1 — %2? - - KeePassXC: Delete entry - KeePassXC: Удалить запиÑÑŒ - A request for deleting entry "%1" has been received. Do you want to delete the entry? - Получен Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° удаление запиÑи "%1". + Получен Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° удаление запиÑи «%1». Удалить Ñту запиÑÑŒ? - Converting attributes to custom data… - Преобразование атрибутов в пользовательÑких данных... + %1 (Passkey) + %1 (Passkey) - Abort - Прервать + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + У запиÑи уже еÑть Passkey. Хотите перезапиÑать Passkey в %1 - %2? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Ðтрибуты KeePassHTTP преобразованы + KeePassXC - Create a new group + KeePassXC - Создать новую группу - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - УÑпешно преобразованы атрибуты из %1 запиÑи(ей). -Перемещено ключей в пользовательÑкие данные: %2. - - - Successfully moved %n keys to custom data. - УÑпешно переехал %n ключи пользовательÑких данных.УÑпешно переехал %n ключи пользовательÑких данных.УÑпешно переехал %n ключи пользовательÑких данных.УÑпешно перемещено ключей в пользовательÑкие данные: %n. + Disable + Выключено - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Ðе найдено запиÑи Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð°Ð¼Ð¸ KeePassHTTP! + KeePassXC - Overwrite existing key? + KeePassXC - ПерезапиÑать ÑущеÑтвующий ключ? - The active database does not contain an entry with KeePassHTTP attributes. - Ð’ активной базе данных нет запиÑи Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð°Ð¼Ð¸ KeePassHTTP. + KeePassXC - Update Passkey + KeePassXC - Обновить Passkey - Don't show this warning again - Ðе показывать Ñто предупреждение + KeePassXC - Update Entry + KeePassXC - Обновить ЗапиÑÑŒ - KeePassXC: Legacy browser integration settings detected - KeePassXC: Обнаружена уÑÑ‚Ð°Ñ€ÐµÐ²ÑˆÐ°Ñ Ð¸Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð¾Ð¼ + KeePassXC - Delete entry + KeePassXC - Удалить запиÑÑŒ - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Ваши наÑтройки KeePassXC-Browser требуетÑÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÑтить в наÑтройки базы данных. -Это необходимо, чтобы поддерживать текущие Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°. -Хотите перенеÑти наÑтройки ÑейчаÑ? + KeePassXC - New key association request + KeePassXC - Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° аÑÑоциацию нового ключа + + + Passkey + @@ -1025,7 +1080,7 @@ Would you like to migrate your existing settings now? All databases connected to the extension will return matching credentials. - Получать результаты поиÑка из вÑех подключённых баз данных + Получать результаты поиÑка из вÑех подключённых баз данных. Search in all opened databases for matching credentials @@ -1057,7 +1112,7 @@ Would you like to migrate your existing settings now? Return advanced string fields which start with "KPH: " - Возвращать дополнительные Ñтроковые полÑ, начинающиеÑÑ Ñ "KPH: " + Возвращать дополнительные Ñтроковые полÑ, начинающиеÑÑ Ñ Â«KPH: » Don't display the popup suggesting migration of legacy KeePassHTTP settings. @@ -1065,7 +1120,7 @@ Would you like to migrate your existing settings now? Do not prompt for KeePassHTTP settings migration. - Ðе показывать напоминание о переноÑе уÑтаревших параметров KeePassHTTP + Ðе показывать напоминание о переноÑе уÑтаревших параметров KeePassHTTP. Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup. @@ -1141,14 +1196,6 @@ Would you like to migrate your existing settings now? Please see special instructions for browser extension use below ОзнакомьтеÑÑŒ Ñ Ð¸Ð½ÑтрукциÑми по иÑпользованию раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð° ниже - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Внимание:</b> не удалоÑÑŒ найти заданное пользователем раÑположение прокÑи.<br/> Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð¾Ð¼ ÐЕ РÐБОТÐЕТ без Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾ÐºÑи. - - - <b>Warning:</b> The following options can be dangerous! - <b>Ð’ÐИМÐÐИЕ:</b> Следующие параметры могут быть опаÑны! - Executable Files ИÑполнÑемые файлы @@ -1165,6 +1212,38 @@ Would you like to migrate your existing settings now? Select native messaging host folder location Выбрать раÑположение папки native messaging + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + Разрешить keepassxc-proxy перечиÑлÑть вÑе запиÑи Ñ Ð¸Ñ… названием, URL и UUID в подключенных базах данных. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + Разрешить ограниченный доÑтуп ко вÑем запиÑÑм в подключенных базах данных (игнорирует Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ñтупа к Ñайту) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Предупреждение:</b> изменÑйте Ñти наÑтройки только при необходимоÑти. + + + The custom proxy location does not exist. + ПользовательÑкое раÑположение прокÑи-Ñервера не ÑущеÑтвует. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Ошибка:</b> пользовательÑкое раÑположение прокÑи-Ñервера не ÑущеÑтвует. ИÑправьте Ñто во вкладке дополнительных наÑтроек. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Ошибка:</b> УÑтановленный иÑполнÑемый файл прокÑи отÑутÑтвует в ожидаемом меÑте: %1<br/> Укажите ÑобÑтвенное раÑположение прокÑи-Ñервера в дополнительных наÑтройках или переуÑтановите приложение. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1174,7 +1253,7 @@ Would you like to migrate your existing settings now? Append ' - Clone' to title - Добавить к названию « - клон» + Добавить к названию « — клон» Replace username and password with references @@ -1187,17 +1266,9 @@ Would you like to migrate your existing settings now? CsvImportWidget - - Import CSV fields - Импорт полей CSV - - - filename - Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° - size, rows, columns - размер, Ñтрок, Ñтолбцов + размер, Ñтрок, Ñтолбцов Column Association @@ -1213,7 +1284,7 @@ Would you like to migrate your existing settings now? Title - Заголовок + Ðазвание Group @@ -1303,49 +1374,29 @@ Would you like to migrate your existing settings now? Column %1 Столбец %1 - - Imported from CSV file - Импортировано из CSV-файла - - - Original data: - ИÑходные данные: - - - Error(s) detected in CSV file! - Ошибки в CSV-файле! - [%n more message(s) skipped] [%n больше Ñообщений пропущен][%n больше Ñообщений пропущен][%n больше Ñообщений пропущен][пропущено Ñообщений: %n] - Error - Ошибка + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - Импорт CSV: запиÑÑŒ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°Ð¼Ð¸ - %1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n байт(ов)%n байт(ов)%n байт(ов)%n байт - %n row(s) + CSV row count %n Ñтрока%n Ñтрок%n Ñтрок%n Ñтрок %n column(s) + CSV column count %n Ñтолбцов%n Ñтолбцов%n Ñтолбцов%n Ñтолбцов @@ -1362,7 +1413,7 @@ Would you like to migrate your existing settings now? Unable to open file %1. - Ðевозможно открыть файл %1. + Ðе удалоÑÑŒ открыть файл %1. Error while reading the database: %1 @@ -1382,13 +1433,13 @@ Would you like to migrate your existing settings now? Database file has unmerged changes. - Файл базы данных имеет неÑинхронизированные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ + Файл базы данных имеет неÑинхронизированные изменениÑ. %1 Backup database located at %2 %1 -РаÑположение резервной копии базы данных: «%2» +РаÑположение резервной копии базы данных: «%2» Key not transformed. This is a bug, please report it to the developers. @@ -1403,7 +1454,7 @@ Backup database located at %2 DatabaseOpenDialog Unlock Database - KeePassXC - Разблокировать базу данных - KeePassXC + Разблокировать базу данных — KeePassXC @@ -1420,60 +1471,22 @@ Backup database located at %2 Password field Поле Ð¿Ð°Ñ€Ð¾Ð»Ñ - - Enter Additional Credentials (if any): - Дополнительные механизмы аутентификации: - - - Key File: - Файл-ключ: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>Ð”Ð»Ñ ÑƒÑÐ¸Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹ базы данных в дополнение к оÑновному паролю возможно иÑпользовать Ñекретный файл. Такой файл может быть Ñоздан в разделе «БезопаÑноÑть» диалога параметров базы данных.</p><p>Файл-ключ <strong>не ÑвлÑетÑÑ</strong> файлом базы данных в формате *.kdbx!<br>ЕÑли файл-ключ не иÑпользуетÑÑ, оÑтавьте Ñто поле пуÑтым.</p><p>Ðажмите Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ñ… Ñведений…</p> - - - Key file help - Справка о файле-ключе - Hardware key slot selection Выбор Ñлота аппаратного ключа - - Hardware Key: - Ðппаратный ключ: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>Возможно иÑпользовать аппаратные ключи безопаÑноÑти, такие как <strong>Yubikey</strong> или <strong>OneKey</strong> Ñо Ñлотами, наÑтроенными в режиме HMAC-SHA1.</p> -<p>Ðажмите здеÑÑŒ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ñ… Ñведений…</p> - - - Hardware key help - Помощь по аппаратному ключу - Key file to unlock the database Файл-ключ Ð´Ð»Ñ Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных Browse for key file - Открыть диалога выбора файла-ключа + Открыть диалог выбора файла-ключа Browse… Обзор... - - Refresh hardware tokens - Перечитать токены - - - Refresh - Обновить - Unlock Database Разблокировать базу данных @@ -1508,7 +1521,7 @@ We recommend you update your KeePassXC installation. Ð’Ñ‹ вÑÑ‘ равно можете попробовать открыть её, но она может быть неполной и Ñохранение любых изменений может привеÑти к потере данных. -Рекомендуем вам обновить KeePassXC. +РекомендуетÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ KeePassXC. Open database anyway @@ -1536,14 +1549,6 @@ To prevent this error from appearing, you must go to "Database Settings / S Retry with empty password Попробовать ещё раз Ñ Ð¿ÑƒÑтым паролем - - Failed to authenticate with Windows Hello - Ðе удалоÑÑŒ пройти аутентификацию Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Windows Hello - - - Failed to authenticate with Touch ID - Ðе удалоÑÑŒ пройти аутентификацию Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Touch ID - Failed to open key file: %1 Ошибка при открытии файла-ключа: %1 @@ -1554,7 +1559,7 @@ To prevent this error from appearing, you must go to "Database Settings / S You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> - Ð’Ñ‹ иÑпользуете файл-ключ уÑтаревшего формата, поддержка которого в KeePassXC <br>может быть прекращена в будущем.<br><br>РекомендуетÑÑ Ñоздать новый файл ключ: перейдите в раздел<br><strong>База данных &gt; БезопаÑноÑть базы данных &gt; Изменить файл-ключ.</strong><br> + ИÑпользуетÑÑ Ñ„Ð°Ð¹Ð»-ключ уÑтаревшего формата, поддержка которого в KeePassXC <br>может быть прекращена в будущем.<br><br>РекомендуетÑÑ Ñоздать новый файл ключ: перейдите в раздел<br><strong>База данных &gt; БезопаÑноÑть базы данных &gt; Изменить файл-ключ.</strong><br> Don't show this warning again @@ -1577,21 +1582,60 @@ To prevent this error from appearing, you must go to "Database Settings / S Файл базы данных не может быть файлом-ключом - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Файл базы данных не может быть иÑпользован в качеÑтве файла-ключа. ЕÑли файл-ключ не иÑпользуетÑÑ, оÑтавьте Ñто поле пуÑтым. + authenticate to access the database + аутентифицироватьÑÑ Ð´Ð»Ñ Ð´Ð¾Ñтупа к базе данных - Detecting hardware keys… - Обнаружение аппаратных ключей... + Failed to authenticate with Quick Unlock: %1 + Ðе удалоÑÑŒ пройти аутентификацию Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Quick Unlock: %1 - No hardware keys detected - Ðппаратные ключи не обнаружены + Select Key File: + - Select hardware key… - Выберите аппаратный ключ... + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1603,10 +1647,6 @@ If you do not have a key file, please leave the field empty. DatabaseSettingsDialog - - Advanced Settings - Дополнительные параметры - General Общие @@ -1636,19 +1676,7 @@ If you do not have a key file, please leave the field empty. DatabaseSettingsWidgetBrowser KeePassXC-Browser settings - ÐаÑтройки KeePassXC-Browser - - - Convert KeePassHTTP data - Преобразование данных KeePassHTTP - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - Преобразование уÑтаревших атрибутов KeePassHTTP в пользовательÑкие данные, ÑовмеÑтимые Ñ KeePassXC-Browser - - - Refresh database root group ID - Обновление идентификатора корневой запиÑи базы данных + Параметры KeePassXC-Browser Disconnect all browsers @@ -1656,7 +1684,11 @@ If you do not have a key file, please leave the field empty. Forget all site-specific settings on entries - Забыть вÑе наÑтройки запиÑей Ð´Ð»Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ñ‹Ñ… Ñайтов + Забыть вÑе параметры запиÑей Ð´Ð»Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ñ‹Ñ… Ñайтов + + + Refresh database root group ID + Обновление идентификатора корневой запиÑи базы данных Stored keys @@ -1706,18 +1738,10 @@ This may prevent connection to the browser plugin. Ð’Ñ‹ дейÑтвительно хотите отключить вÑе браузеры? Это может помешать подключению к плагину браузера. - - KeePassXC: No keys found - KeePassXC: Ключи не найдены - No shared encryption keys found in KeePassXC settings. Ð’ наÑтройках KeePassXC нет общих ключей шифрованиÑ. - - KeePassXC: Removed keys from database - KeePassXC: Ключи удалены из базы данных - Successfully removed %n encryption key(s) from KeePassXC settings. УÑпешно удалён %n ключ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð· наÑтроек KeePassXC.УÑпешно удалёны %n ключа ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð· наÑтроек KeePassXC.УÑпешно удалёны %n ключей ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð· наÑтроек KeePassXC.УÑпешно удалено ключей ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð· наÑтроек KeePassXC: %n. @@ -1736,32 +1760,14 @@ Permissions to access entries will be revoked. Abort Прервать - - KeePassXC: Removed permissions - KeePassXC: Ð Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ñ‹ - Successfully removed permissions from %n entry(s). УÑпешно удалено разрешение от %n запиÑи.УÑпешно удалены Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¾Ñ‚ %n запиÑей.УÑпешно удалены Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¾Ñ‚ %n запиÑей.УÑпешно удалены Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¸Ð· %n шт. запиÑей. - - KeePassXC: No entry with permissions found! - KeePassXC: Ðе найдена запиÑÑŒ Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñми! - The active database does not contain an entry with permissions. Ð’ активной базе данных нет запиÑей Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñми. - - Move KeePassHTTP attributes to custom data - ПеремеÑтить атрибуты KeePassHTTP в пользовательÑкие данные - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - ДейÑтвительно привеÑти вÑе уÑтаревшие данные интеграции браузера к новому Ñтандарту? -Это необходимо Ð´Ð»Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð°Ð½Ð¸Ñ ÑовмеÑтимоÑти Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð°ÐµÐ¼Ñ‹Ð¼ модулем браузера. - Refresh database ID Обновление идентификатора базы данных @@ -1772,6 +1778,26 @@ This is only necessary if your database is a copy of another and the browser ext ДейÑтвительно хотите перезагруить ID базы данных? Это необходимо только еÑли ваша база ÑвлÑетÑÑ ÐºÐ¾Ð¿Ð¸ÐµÐ¹ другой и браузерное раÑширение не может подключитьÑÑ. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Преобразование уÑтаревших атрибутов KeePassHTTP в пользовательÑкие данные, ÑовмеÑтимые Ñ KeePassXC-Browser + + + No keys found + Ключи не найдены + + + Removed keys from database + Ключи удалены из базы данных + + + Removed permissions + Ð Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ñ‹ + + + No entry with permissions found! + ЗапиÑи Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñми не найдены! + DatabaseSettingsWidgetDatabaseKey @@ -1811,6 +1837,18 @@ Are you sure you want to continue without a password? Failed to change database credentials Ðе получилоÑÑŒ изменить учётные данные базы + + Weak password + Слабый пароль + + + You must enter a stronger password to protect your database. + Вам нужно ввеÑти более надежный пароль Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹ вашей базы данных. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + + DatabaseSettingsWidgetEncryption @@ -1818,17 +1856,9 @@ Are you sure you want to continue without a password? Decryption Time: Ð’Ñ€ÐµÐ¼Ñ Ñ€Ð°Ñшифровки: - - Change existing decryption time - Изменить Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°ÑÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ñ‹Ð²Ð°Ð½Ð¸Ñ - - - Change - Изменить - Decryption time in seconds - Ð’Ñ€ÐµÐ¼Ñ Ñ€Ð°ÑÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð² Ñекундах + Ð’Ñ€ÐµÐ¼Ñ Ñ€Ð°Ñшифровки в Ñекундах Higher values offer more protection, but opening the database will take longer. @@ -1844,7 +1874,7 @@ Are you sure you want to continue without a password? Format cannot be changed: Your database uses KDBX 4 features - Формат не может быть изменен: ваша база данных иÑпользует функции KDBX 4 + Формат не может быть изменён: ваша база данных иÑпользует функции KDBX 4 Unless you need to open your database with other programs, always use the latest format. @@ -1880,7 +1910,7 @@ Are you sure you want to continue without a password? Transform rounds - Раундов преобразованиÑ: + Циклов Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Memory Usage: @@ -1906,11 +1936,6 @@ Are you sure you want to continue without a password? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - без изменений - Number of rounds too high Key transformation rounds @@ -1963,6 +1988,18 @@ If you keep this number, your database will not be protected from brute force at Threads for parallel execution (KDF settings) потоков потоков потоков потоков + + Encryption Settings: + ÐаÑтройки шифрованиÑ: + + + Basic + ОÑновной + + + Advanced + Дополнительные + DatabaseSettingsWidgetFdoSecrets @@ -2015,24 +2052,16 @@ If you keep this number, your database will not be protected from brute force at History Settings - ÐаÑтройки иÑтории + Параметры иÑтории Maximum number of history items per entry МакÑимальное количеÑтво Ñобытий иÑтории Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ из запиÑей - - Max. history items: - МакÑимум запиÑей в иÑтории: - Maximum size of history per entry МакÑимальный размер Ñобытий иÑтории Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ из запиÑей - - Max. history size: - МакÑимальный размер иÑтории: - MiB МиБ @@ -2063,6 +2092,64 @@ This action is not reversible. (old) (уÑтар.) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + При Ñохранении Ñтой наÑтройки или редактировании +запиÑи Ñамые Ñтарые Ñлементы иÑтории запиÑи +будут удалены так, что оÑтанетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ +указанное макÑимальное количеÑтво запиÑей. + + + Limit the amount of history items per entry to: + Ограничение чиÑла Ñлементов иÑтории на одну запиÑÑŒ: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + При Ñохранении Ñтой наÑтройки или редактировании +запиÑи Ñамые Ñтарые Ñлементы иÑтории запиÑей +будут удалены так, что оÑтавшиеÑÑ Ñлементы +иÑтории не превыÑÑÑ‚ указанное количеÑтво. + + + Limit the total size of history items per entry to: + Ограничение общего размера Ñлементов иÑтории на одну запиÑÑŒ: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Перемещать запиÑи в корзину группы +вмеÑто ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¸Ñ… из базы данных. +ЗапиÑи, удалённые из корзины, +также удалÑÑŽÑ‚ÑÑ Ð¸Ð· базы данных. + + + Autosave delay since last change + Задержка автоÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿Ð¾Ñледнего Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ + + + Autosave delay + Задержка автоÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ + + + Autosave delay since last change in minutes + Задержка автоÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿Ð¾Ñледнего Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² минутах + + + min + мин + + + Autosave delay since last change checkbox + Задержка автоÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿Ð¾Ñледнего Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð³Ð°Ð»Ð¾Ñ‡ÐºÐ¸ + DatabaseSettingsWidgetKeeShare @@ -2093,7 +2180,7 @@ This action is not reversible. > Breadcrumb separator - > + > @@ -2116,7 +2203,7 @@ This action is not reversible. Confirm Deletion - Подтверждение удаление + Подтверждение ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? @@ -2190,26 +2277,10 @@ This is definitely a bug, please report it to the developers. CSV file Файл CSV - - Select CSV file - Выберите CSV-файл - Merge database Объединить базу данных - - KeePass 1 database - База данных KeePass 1 - - - Open KeePass 1 database - Открыть базу данных KeePass 1 - - - Open OPVault - Открыть OPVault - Export database to CSV file ЭкÑпортировать базу данных в файл CSV @@ -2220,24 +2291,27 @@ This is definitely a bug, please report it to the developers. Writing the HTML file failed. - Ошибка запиÑи HTML файла. + Ошибка запиÑи HTML-файла. + + + Export database to XML file + ЭкÑпорт базы данных в файл XML + + + XML file + XML-файл + + + Writing the XML file failed + Ошибка запиÑи XML-файла Export Confirmation - Подтверждение ÑкÑÐ¿Ð¾Ñ€Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ + Подтверждение ÑкÑпорта You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - При продолжении, будет выполнен ÑкÑпорт базы данных в незашифрованный файл, что делает доÑтупными ÑодержащиеÑÑ Ð² нём пароли и другие чувÑтвительные данные. Продолжить ÑкÑпортирование? - - - New Database - ÐÐ¾Ð²Ð°Ñ Ð±Ð°Ð·Ð° данных - - - %1 [New Database] - Database tab name modifier - %1 [Ð½Ð¾Ð²Ð°Ñ Ð±Ð°Ð·Ð° данных] + При продолжении будет выполнен ÑкÑпорт базы данных в незашифрованный файл, что делает доÑтупными ÑодержащиеÑÑ Ð² нём пароли и другие чувÑтвительные данные. Продолжить ÑкÑпорт? %1 [Locked] @@ -2248,8 +2322,8 @@ This is definitely a bug, please report it to the developers. DatabaseWidget - Database Tags - Теги базы данных + Searches and Tags + ПоиÑк и теги Searching… @@ -2293,12 +2367,16 @@ This is definitely a bug, please report it to the developers. Do you really want to move the group "%1" to the recycle bin? - Ð’Ñ‹ дейÑтвительно хотите перемеÑтить группу "%1" в корзину? + Ð’Ñ‹ дейÑтвительно хотите перемеÑтить группу «%1» в корзину? Expired entries ПроÑроченные запиÑи + + Entries expiring within %1 day(s) + ЗапиÑи, иÑтекающие в течение %1 днÑЗапиÑи, иÑтекающие в течение %1 днейЗапиÑи, иÑтекающие в течение %1 днейЗапиÑи, иÑтекающие в течение %1 дней + No current database. Ðет текущей базы данных. @@ -2323,13 +2401,25 @@ This is definitely a bug, please report it to the developers. No Results Ðет результатов + + Save + Сохранить + + + Enter a unique name or overwrite an existing search from the list: + Введите уникальное Ð¸Ð¼Ñ Ð¸Ð»Ð¸ замените ÑущеÑтвующую поиÑковую Ñтроку из ÑпиÑка: + + + Save Search + Сохранить поиÑк + Lock Database? Заблокировать базу данных? You are editing an entry. Discard changes and lock anyway? - Ð’Ñ‹ ÑÐµÐ¹Ñ‡Ð°Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€ÑƒÐµÑ‚Ðµ запиÑÑŒ. Отменить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ вÑÑ‘ равно заблокировать? + Ð’Ñ‹ редактируете запиÑÑŒ. Заблокировать базу и не ÑохранÑть внеÑённые изменениÑ? "%1" was modified. @@ -2413,9 +2503,14 @@ Disable safe saves and try again? Could not find database file: %1 Ðе удалоÑÑŒ найти файл базы данных: %1 - - Entries expiring within %1 day(s) - ЗапиÑи, иÑтекающие в течение %1 днÑЗапиÑи, иÑтекающие в течение %1 днейЗапиÑи, иÑтекающие в течение %1 днейЗапиÑи, иÑтекающие в течение %1 дней + + New Database + ÐÐ¾Ð²Ð°Ñ Ð±Ð°Ð·Ð° данных + + + %1 [New Database] + Database tab name modifier + %1 [Ð½Ð¾Ð²Ð°Ñ Ð±Ð°Ð·Ð° данных] @@ -2454,7 +2549,7 @@ Disable safe saves and try again? Properties - Параметры + СвойÑтва History @@ -2490,7 +2585,7 @@ Disable safe saves and try again? Some Browser Integration settings are overridden by group settings. - Ðекоторые наÑтройки интеграции c браузером могут быть переопределены наÑтройками группы. + Ðекоторые параметры интеграции c браузером могут быть переопределены наÑтройками группы. Invalid Entry @@ -2517,7 +2612,7 @@ Would you like to correct it? An error occurred while validating the Auto-Type sequence for "%1": %2 Would you like to correct it? - При проверке поÑледовательноÑти автоввода Ð´Ð»Ñ "%1" произошла ошибка: + При проверке поÑледовательноÑти автоввода Ð´Ð»Ñ Â«%1» произошла ошибка: %2 ВнеÑти иÑправлениÑ? @@ -2527,7 +2622,7 @@ Would you like to correct it? Unsaved Changes - ÐеÑохраненные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ + ÐеÑохранённые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Would you like to save changes to this entry? @@ -2557,6 +2652,10 @@ Would you like to correct it? Hide Скрыть + + %n hour(s) + %n чаÑ%n чаÑа%n чаÑов%n чаÑов + %n week(s) %n нед%n нед%n нед%n нед. @@ -2569,10 +2668,6 @@ Would you like to correct it? %n year(s) %n год%n лет%n лет%n лет - - %n hour(s) - %n чаÑ%n чаÑа%n чаÑов%n чаÑов - EditEntryWidgetAdvanced @@ -2622,7 +2717,7 @@ Would you like to correct it? Show a protected attribute - Показать защищённый атрибут + Показать защищённый атрибут Reveal @@ -2638,7 +2733,7 @@ Would you like to correct it? Exclude from database reports - ИÑключить из отчетов + ИÑключить из отчётов Foreground Color: @@ -2691,10 +2786,20 @@ Would you like to correct it? Add new window association Добавить аÑÑоциацию Ñ Ð¾ÐºÐ½Ð¾Ð¼ + + + + Add item + + + Remove selected window association Удалить выбранную аÑÑоциацию Ñ Ð¾ÐºÐ½Ð¾Ð¼ + + - + Remove item + - + Window title: Заголовок окна: @@ -2719,16 +2824,6 @@ Would you like to correct it? Custom Auto-Type sequence for this window ПользовательÑÐºÐ°Ñ Ð¿Ð¾ÑледовательноÑть автоввода Ð´Ð»Ñ Ñтого окна - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2750,7 +2845,7 @@ Would you like to correct it? Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. - ОтправлÑть Ñту наÑтройку только браузерным диалогам Ð´Ð»Ñ HTTP Auth. ЕÑли включено, обычные формы авторизации не покажут запиÑÑŒ Ñреди вариантов выбора. + ОтправлÑть Ñту наÑтройку только браузерным диалогам Ð´Ð»Ñ Ð´Ð¸Ð°Ð»Ð¾Ð³Ð¾Ð² HTTP Auth. ЕÑли включено, обычные формы авторизации не покажут запиÑÑŒ Ñреди вариантов выбора. Use this entry only with HTTP Basic Auth @@ -2758,11 +2853,11 @@ Would you like to correct it? Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. - Ðе отправлÑть Ñту наÑтройку в браузер Ð´Ð»Ñ HTTP Auth диалогов. ЕÑли включено, данные диалоги не покажутÑÑ Ð´Ð»Ñ Ñтой запиÑи Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð°. + Ðе отправлÑть Ñту наÑтройку в браузер Ð´Ð»Ñ Ð´Ð¸Ð°Ð»Ð¾Ð³Ð¾Ð² HTTP Auth. ЕÑли включено, данные диалоги не покажутÑÑ Ð´Ð»Ñ Ñтой запиÑи Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð°. Do not use this entry with HTTP Basic Auth - Ðе иÑпользовать Ñту запиÑÑŒ Ð´Ð»Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð¹ HTTP авторизации + Ðе иÑпользовать Ñту запиÑÑŒ Ð´Ð»Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð¹ HTTP-авторизации Additional URL's @@ -2830,22 +2925,10 @@ Would you like to correct it? Notes field Поле заметок - - Toggle the checkbox to reveal the notes section. - Включите Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð° примечаний. - Username field Поле имени Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ - - Toggle notes visible - Скрыть или показать заметку - - - Notes: - ПримечаниÑ: - Expiration field Поле ввода Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ñрока дейÑÑ‚Ð²Ð¸Ñ @@ -2862,14 +2945,6 @@ Would you like to correct it? Presets ПредуÑтановки - - Password: - Пароль: - - - URL: - URL-адреÑ: - Url field Поле URL-адреÑа @@ -2878,18 +2953,10 @@ Would you like to correct it? Download favicon for URL Загрузить значок Ñайта Ð´Ð»Ñ URL-адреÑа - - Title: - Ðазвание: - Title field Поле Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ - - Username: - Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ: - Password field Поле Ð¿Ð°Ñ€Ð¾Ð»Ñ @@ -2898,18 +2965,42 @@ Would you like to correct it? Toggle expiration ИÑпользовать Ñрок Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ - - Expires: - ИÑтекает: - - - Tags: - Теги: - Tags list СпиÑок тегов + + &Username: + &Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ: + + + &Title: + &Ðазвание: + + + &Password: + &Пароль: + + + UR&L: + UR&L: + + + &Notes: + &Заметки: + + + Toggle notes visibility + ВидимоÑть заметки + + + T&ags: + Т&еги: + + + &Expires: + &ИÑтекает: + EditEntryWidgetSSHAgent @@ -2949,19 +3040,6 @@ Would you like to correct it? Private key Закрытый (личный) ключ - - External file - Внешний файл - - - Browser for key file - Выбор файла-ключа - - - Browse… - Button for opening file dialog - Обзор... - Attachment Вложение @@ -2978,6 +3056,23 @@ Would you like to correct it? Remove from agent Убрать из агента + + External file + Внешний файл + + + Browser for key file + Выбор файла-ключа + + + Browse… + Button for opening file dialog + Обзор... + + + Generate + Генерировать + Select attachment file Выберите файл Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ @@ -3013,13 +3108,9 @@ Would you like to correct it? Icon Значок - - Browser Integration - Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð¾Ð¼ - Properties - Параметры + СвойÑтва Add group @@ -3031,7 +3122,11 @@ Would you like to correct it? Group has unsaved changes - Группа имеет неÑохраненные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ + Группа имеет неÑохранённые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ + + + Browser Integration + Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð¾Ð¼ Enable @@ -3048,13 +3143,9 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - Редактировать группу - These settings affect to the group's behaviour with the browser extension. - Эти наÑтройки влиÑÑŽÑ‚ на взаимодейÑтвие Ñ Ñ€Ð°Ñширением браузера. + Эти параметры влиÑÑŽÑ‚ на взаимодейÑтвие Ñ Ñ€Ð°Ñширением браузера. Hide entries from browser extension: @@ -3066,11 +3157,11 @@ Would you like to correct it? Skip Auto-Submit for entries: - Ðе иÑпользовать Ðвто-Отправку Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñей: + Ðе иÑпользовать автоотправку Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñей: Skip Auto-Submit toggle for this and sub groups - Ðе иÑпользовать Ðвто-Отправку Ð´Ð»Ñ Ñтой группы и её подгрупп + Ðе иÑпользовать автооправку Ð´Ð»Ñ Ñтой группы и её подгрупп Use entries only with HTTP Basic Auth: @@ -3082,12 +3173,28 @@ Would you like to correct it? Do not use entries with HTTP Basic Auth: - Ðе иÑпользуйте запиÑи Ñ HTTP Basic Auth: + Ðе иÑпользовать запиÑи Ñ HTTP Basic Auth: Do not use HTTP Auth toggle for this and sub groups Ðе иÑпользовать HTTP Auth Ð´Ð»Ñ Ñтой группы и её подгрупп + + Omit WWW subdomain from matching: + ИÑключить Ñубдомен WWW из ÑопоÑтавлениÑ: + + + Omit WWW subdomain from matching toggle for this and sub groups + ИÑключить Ñубдомен WWW из Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡Ð°Ñ‚ÐµÐ»Ñ ÑоответÑÑ‚Ð²Ð¸Ñ Ð´Ð»Ñ Ñтой группы и подгрупп + + + Restrict matching to given browser key: + Ограничить ÑопоÑтавление по заданному ключу браузера: + + + Restrict matching to given browser key toggle for this and sub groups + + EditGroupWidgetKeeShare @@ -3150,7 +3257,8 @@ Would you like to correct it? Your KeePassXC version does not support sharing this container type. Supported extensions are: %1. - УÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ KeePassXC не поддерживает ÑовмеÑтное иÑпользование контейнера такого типа. СпиÑок поддерживаемых раÑширений: %1. + УÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ KeePassXC не поддерживает ÑовмеÑтное иÑпользование +контейнера такого типа. СпиÑок поддерживаемых раÑширений: %1. %1 is already being exported by this database. @@ -3179,7 +3287,7 @@ Supported extensions are: %1. KeeShare container - KeeShare контейнер + Контейнер KeeShare KeeShare signed container @@ -3222,7 +3330,7 @@ Supported extensions are: %1. Use default Auto-Type sequence of parent group - &ИÑпользовать поÑледовательноÑть по умолчанию автоввода родительÑкой группы + ИÑпользовать поÑледовательноÑть по умолчанию Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð²Ð²Ð¾Ð´Ð° родительÑкой группы Auto-Type: @@ -3238,7 +3346,7 @@ Supported extensions are: %1. Notes: - ПримечаниÑ: + Заметки: Default auto-type sequence field @@ -3277,11 +3385,11 @@ Supported extensions are: %1. Set the URL to use to search for a favicon - Указать URL-Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка значка. + Указать URL-Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка значка Favicon URL - Favicon URL + Значок Ñайта Ð´Ð»Ñ URL Download favicon for URL @@ -3289,7 +3397,7 @@ Supported extensions are: %1. Download favicon - Скачать значок Ñайта + Загрузить значок Ñайта Apply selected icon to subgroups and entries @@ -3319,10 +3427,6 @@ Supported extensions are: %1. Unable to fetch favicon. Ðе удалоÑÑŒ получить значок. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Возможно иÑпользовать Ñлужбу поиÑка значков Ñайта DuckDuckGo в меню «СервиÑ» → «Параметры» → «БезопаÑноÑть» - Existing icon selected. Выбран ÑущеÑтвующий значок. @@ -3355,6 +3459,10 @@ Supported extensions are: %1. The following icon(s) failed: Следующий значок потерпел неудачу:Следующие значки потерпели неудачу:Следующие значки потерпели неудачу:Ошибки в Ñледующих значках: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + Ð’Ñ‹ можете включить Ñлужбу значков Ñайта DuckDuckGo в ÐаÑтроках Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ -> БезопаÑноÑть + EditWidgetProperties @@ -3392,11 +3500,11 @@ Supported extensions are: %1. Plugin Data - Данные плагинов + Данные подключаемого Ð¼Ð¾Ð´ÑƒÐ»Ñ Plugin data - Данные подключаемого Ð¼Ð¾Ð´ÑƒÐ»Ñ + Данные подключаемого Ð¼Ð¾Ð´ÑƒÐ»Ñ Remove selected plugin data @@ -3408,13 +3516,13 @@ Supported extensions are: %1. Delete plugin data? - Удалить данные плагинов? + Удалить данные модулей? Do you really want to delete the selected plugin data? This may cause the affected plugins to malfunction. - Ð’Ñ‹ дейÑтвительно хотите удалить выбранные данные плагинов? -Это может привеÑти к ÑбоÑм плагинов. + Ð’Ñ‹ дейÑтвительно хотите удалить выбранные данные модулей? +Это может привеÑти к ÑбоÑм модулей. Key @@ -3429,14 +3537,14 @@ This may cause the affected plugins to malfunction. Entry %1 - Clone - %1 - клон + %1 — клон EntryAttachments Cannot open file "%1" - Ðевозможно открыть файл "%1". + Ðе удалоÑÑŒ открыть файл «%1» @@ -3524,7 +3632,7 @@ This may cause the affected plugins to malfunction. Are you sure you want to overwrite the existing file "%1" with the attachment? - Ð’Ñ‹ дейÑтвительно хотите перезапиÑать имеющийÑÑ Ñ„Ð°Ð¹Ð» "%1" Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÐ¼? + Ð’Ñ‹ дейÑтвительно хотите перезапиÑать имеющийÑÑ Ñ„Ð°Ð¹Ð» «%1» Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÐ¼? Confirm overwrite @@ -3564,8 +3672,8 @@ This may cause the affected plugins to malfunction. Attachment "%1" already exists. Would you like to overwrite the existing attachment? - Вложение "%1" уже ÑущеÑтвует. -Хотите перезапиÑать ÑущеÑтвующее вложение? + Вложение «%1» уже ÑущеÑтвует. +ПерезапиÑать ÑущеÑтвующее вложение? Confirm Attachment @@ -3588,7 +3696,7 @@ Are you sure to add this file? The attachment '%1' was modified. Do you want to save the changes to your database? - Вложение "%1" было изменено. + Вложение «%1» было изменено. Сохранить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² базе данных? @@ -3633,7 +3741,7 @@ Error: %1 Title - Ð˜Ð¼Ñ Ð·Ð°Ð¿Ð¸Ñи + Ðазвание Username @@ -3649,7 +3757,7 @@ Error: %1 Notes - ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ + Заметки Custom Attributes @@ -3705,7 +3813,7 @@ Error: %1 Title - Ð˜Ð¼Ñ Ð·Ð°Ð¿Ð¸Ñи + Ðазвание Username @@ -3721,7 +3829,7 @@ Error: %1 Notes - ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ + Заметки Expires @@ -3761,7 +3869,7 @@ Error: %1 Entry notes - ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñи + Заметки к запиÑи Entry expires at @@ -3795,6 +3903,10 @@ Error: %1 Has TOTP ИÑпользует TOTP + + Background Color + Цвет фона + EntryPreviewWidget @@ -3815,8 +3927,8 @@ Error: %1 Пароль - Notes - ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ + URL + URL-Ð°Ð´Ñ€ÐµÑ Expiration @@ -3835,8 +3947,8 @@ Error: %1 Логин - URL - URL-Ð°Ð´Ñ€ÐµÑ + Notes + Заметки Advanced @@ -3886,6 +3998,10 @@ Error: %1 Never Ðикогда + + Double click to copy value + Дважды щёлкните левой кнопкой мыши, чтобы Ñкопировать значение + Enabled Включено @@ -3894,6 +4010,10 @@ Error: %1 Disabled Отключено + + Double click to copy to clipboard + Дважды щёлкните, чтобы Ñкопировать в буфер обмена + EntryURLModel @@ -3901,6 +4021,10 @@ Error: %1 Invalid URL Ðеверный URL + + Duplicate URL + ПовторÑющийÑÑ URL-Ð°Ð´Ñ€ÐµÑ + EntryView @@ -3914,7 +4038,11 @@ Error: %1 Reset to defaults - Ð¡Ð±Ñ€Ð¾Ñ Ð² Ñтандартные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ + ВоÑÑтановить Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾ умолчанию + + + + %1 entry(s)... + + %1 запиÑÑŒ...+ %1 запиÑей...+ %1 запиÑей...+ %1 запиÑей... @@ -3931,7 +4059,8 @@ Error: %1 You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! - При продолжении, будет выполнен ÑкÑпорт базы данных в незашифрованный файл. Пароли и другие чувÑтвительные данные в базе будут уÑзвимыми. + При продолжении будет выполнен ÑкÑпорт базы данных в незашифрованный файл. +Пароли и другие чувÑтвительные данные в базе будут уÑзвимыми. database order @@ -3951,11 +4080,11 @@ This will leave your passwords and sensitive information vulnerable! Export database to HTML file - ЭкÑпортировать базу данных в HTML файл + ЭкÑпортировать базу данных в HTML-файл HTML file - HTML файл + HTML-файл @@ -3985,7 +4114,7 @@ This will leave your passwords and sensitive information vulnerable! Another secret service is running (%1).<br/>Please stop/remove it before re-enabling the Secret Service Integration. - Запущен другой Secret Service (%1)<br/>ПожалуйÑта отключите/удалите его перед тем как включать интеграцию Ñ Ð½Ð¸Ð¼. + Запущен другой Secret Service (%1)<br/>ПожалуйÑта отключите или удалите его перед тем как включать интеграцию Ñ Ð½Ð¸Ð¼. Failed to register DBus service at %1.<br/> @@ -3993,23 +4122,23 @@ This will leave your passwords and sensitive information vulnerable! Failed to register service on DBus at path '%1' - Ошибка при региÑтрации Ñлужбы в DBus по пути '%1' + Ошибка при региÑтрации Ñлужбы в DBus по пути «%1» Failed to register database on DBus under the name '%1' - Ошибка при региÑтрации базы в DBus под именем '%1' + Ошибка при региÑтрации базы в DBus под именем «%1» Failed to register session on DBus at path '%1' - Ошибка при региÑтрации ÑеÑÑии в DBus по пути '%1' + Ошибка при региÑтрации ÑеÑÑии в DBus по пути «%1» Failed to register item on DBus at path '%1' - Ошибка при региÑтрации Ñлужбы в DBus по пути '%1' + Ошибка при региÑтрации Ñлужбы в DBus по пути «%1» Failed to register prompt object on DBus at path '%1' - Ошибка при региÑтрации объекта Ð¿Ñ€Ð¸Ð³Ð»Ð°ÑˆÐµÐ½Ð¸Ñ Ð² DBus по пути '%1' + Ошибка при региÑтрации объекта Ð¿Ñ€Ð¸Ð³Ð»Ð°ÑˆÐµÐ½Ð¸Ñ Ð² DBus по пути «%1» @@ -4035,7 +4164,7 @@ This will leave your passwords and sensitive information vulnerable! Non-existing/inaccessible executable path. Please double-check the client is legit. - ПредоÑтавьте Ñтому получателю возможноÑть выдавать пользователÑм доÑтуп к отчетам + ÐеÑущеÑтвующий/недоÑтупный путь к иÑполнÑемому файлу. Перепроверьте подлинноÑть клиента. @@ -4072,14 +4201,14 @@ This will leave your passwords and sensitive information vulnerable! %1 - Clone - %1 - клон + %1 — клон HibpDownloader Online password validation failed - Ðе удалоÑÑŒ проверить пароли онлайн + Ðе удалоÑÑŒ проверить пароль онлайн @@ -4135,6 +4264,147 @@ You can enable the DuckDuckGo website icon service in the security section of th Получение значков (%1 из %2)… + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Страница маÑтера + + + Entry count: %1 + + + + Group + Группа + + + Title + Ðазвание + + + Username + Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ + + + Password + Пароль + + + Url + + + + + ImportWizardPageSelect + + Form + Форма + + + Import File Selection + + + + Password: + Пароль: + + + Key File: + Файл-ключ: + + + Browse… + Обзор... + + + Import Into: + + + + New Database + ÐÐ¾Ð²Ð°Ñ Ð±Ð°Ð·Ð° данных + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Открыть OPVault + + + Select import file + + + + All files + Ð’Ñе файлы + + + Key files + Файлы-ключи + + + Select key file + Выберите файл-ключ + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4215,7 +4485,7 @@ If this reoccurs, then your database file may be corrupt. Header SHA256 mismatch - ÐеÑоответÑтвие SHA256 заголовка + ÐеÑоответÑтвие заголовка SHA256 Invalid credentials were provided, please try again. @@ -4249,7 +4519,7 @@ If this reoccurs, then your database file may be corrupt. Unsupported key derivation function (KDF) or invalid parameters - Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð° (ФФК) не поддерживаетÑÑ, либо неверные параметры + Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð° (ФФК) не поддерживаетÑÑ, либо параметры неверны Legacy header fields found in KDBX4 file. @@ -4304,22 +4574,22 @@ If this reoccurs, then your database file may be corrupt. Invalid variant map Int32 entry value length Translation: variant map = data structure for storing meta data - ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´Ð»Ð¸Ð½Ð° Int32 Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² Ñтруктуре метаданных + ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´Ð»Ð¸Ð½Ð° Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Int32 в Ñтруктуре метаданных Invalid variant map UInt32 entry value length Translation: variant map = data structure for storing meta data - ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´Ð»Ð¸Ð½Ð° UInt32 Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² Ñтруктуре метаданных + ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´Ð»Ð¸Ð½Ð° Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ UInt32 в Ñтруктуре метаданных Invalid variant map Int64 entry value length Translation: variant map = data structure for storing meta data - ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´Ð»Ð¸Ð½Ð° Int64 Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² Ñтруктуре метаданных + ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´Ð»Ð¸Ð½Ð° Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Int64 в Ñтруктуре метаданных Invalid variant map UInt64 entry value length Translation: variant map = data structure for storing meta data - ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´Ð»Ð¸Ð½Ð° UInt64 Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² Ñтруктуре метаданных + ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´Ð»Ð¸Ð½Ð° Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ UInt64 в Ñтруктуре метаданных Invalid variant map entry type @@ -4350,7 +4620,7 @@ If this reoccurs, then your database file may be corrupt. Failed to serialize KDF parameters variant map Translation comment: variant map = data structure for storing meta data - Ошибка Ñериализации ФФК параметров Ñтруктуры матаданных + Ошибка Ñериализации ФФК параметров Ñтруктуры метаданных @@ -4415,7 +4685,7 @@ This is a one-way migration. You won't be able to open the imported databas Not a KeePass database. - Ðе база данных KeePass. + Это не база данных KeePass. Unsupported KeePass 2 database version. @@ -4478,7 +4748,7 @@ Line %2, column %3 Missing DeletedObject uuid or time - Ðет UUID или времени Ð´Ð»Ñ DeletedObject + Ðет UUID или времени Ð´Ð»Ñ DeletedObject Null entry uuid @@ -4502,7 +4772,7 @@ Line %2, column %3 Duplicate custom attribute found - Обнаружен повторÑющиеÑÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑкий атрибут + Обнаружен повторÑющийÑÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑкий атрибут Entry string key or value missing @@ -4522,7 +4792,7 @@ Line %2, column %3 Invalid date time value - ÐедопуÑтимое значение даты/времени + ÐедопуÑтимое значение даты/времени Invalid color value @@ -4550,7 +4820,7 @@ Line %2, column %3 KeeAgentSettings Invalid KeeAgent settings file structure. - ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ñтруктура файла параметров KeeAgent + ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ñтруктура файла параметров KeeAgent. Private key is an attachment but no attachments provided. @@ -4569,17 +4839,6 @@ Line %2, column %3 Ðе удалоÑÑŒ открыть закрытый ключ - - KeePass1OpenWidget - - Import KeePass1 Database - Импортировать базу данных в формате KeePass1 - - - Unable to open the database. - Ðевозможно открыть базу данных. - - KeePass1Reader @@ -4647,7 +4906,7 @@ If this reoccurs, then your database file may be corrupt. Key transformation failed - Ðе удалоÑÑŒ выполнить преобразование ключа + Ðе удалоÑÑŒ выполнить преобразование ключа Invalid group field type number @@ -4766,7 +5025,7 @@ If this reoccurs, then your database file may be corrupt. Export is disabled in settings - ВозможноÑть ÑкÑпорировать отключена в параметрах программы + ВозможноÑть ÑкÑпортировать отключена в параметрах программы Inactive share @@ -4820,11 +5079,11 @@ If this reoccurs, then your database file may be corrupt. Note: Do NOT use a file that may change as that will prevent you from unlocking your database. - Внимание: изменение файла приведёт к невозможноÑти разблокировать базу данных! + Внимание: изменение файла приведёт к невозможноÑти разблокировать базу данных. Browse for key file - Открыть диалога выбора файла-ключа + Открыть диалог выбора файла-ключа Browse… @@ -4836,13 +5095,13 @@ If this reoccurs, then your database file may be corrupt. You selected a key file in an old format which KeePassXC<br>may stop supporting in the future.<br><br>Please consider generating a new key file instead. - Ð’ÐИМÐÐИЕ: Ð’Ñ‹ иÑпользуете файл-ключ уÑтаревшего формата, поддержка которого может быть прекращена в будущем. + Ð’ÐИМÐÐИЕ: ИÑпользуетÑÑ Ñ„Ð°Ð¹Ð»-ключ уÑтаревшего формата, поддержка которого может быть прекращена в будущем. По возможноÑти Ñоздайте новый ключевой файл. Error loading the key file '%1' Message: %2 - Ошибка загрузки ключевого файла '%1' + Ошибка загрузки файла-ключа «%1» Сообщение: %2 @@ -4924,7 +5183,7 @@ Are you sure you want to continue with this file? Could not register global shortcut - Ðевозможно зарегиÑтрировать глобальную горÑчую клавишу + Ðе удалоÑÑŒ зарегиÑтрировать глобальную горÑчую клавишу @@ -4937,10 +5196,6 @@ Are you sure you want to continue with this file? &Recent Databases &Ðедавние базы данных - - &Import - &Импорт - &Export &ЭкÑпорт @@ -4961,6 +5216,10 @@ Are you sure you want to continue with this file? TOTP TOTP + + Tags + Теги + &Groups &Группы @@ -5003,36 +5262,20 @@ Are you sure you want to continue with this file? &New Database… - Со&здать базу даннных… - - - Create a new database - Создать новую базу данных + Со&здать базу данных… &Merge From Database… Объе&динить Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð¹ базой данных... - - Merge from another KDBX database - Объединить Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð¹ базой данных KDBX - &New Entry… &Создать запиÑь… - - Add a new entry - Добавить новую запиÑÑŒ - &Edit Entry… &Изменить запиÑь… - - View or edit entry - Показать/изменить запиÑÑŒ - &Delete Entry… &Удалить запиÑь… @@ -5041,10 +5284,6 @@ Are you sure you want to continue with this file? &New Group… &Создать группу… - - Add a new group - Добавить новую группу - &Edit Group… &Изменить группу… @@ -5077,17 +5316,9 @@ Are you sure you want to continue with this file? Database &Reports… &Отчёты по базе данных… - - Statistics, health check, etc. - СтатиÑтика, проверка безопаÑноÑти… - &Database Settings… - Параметры базы данных… - - - Database settings - Параметры базы данных + &Параметры базы данных… &Clone Entry… @@ -5097,34 +5328,18 @@ Are you sure you want to continue with this file? Move u&p ПеремеÑтить &выше - - Move entry one step up - ПеремеÑтить запиÑÑŒ выше на одну позицию - Move do&wn ПеремеÑтить &ниже - - Move entry one step down - ПеремеÑтить запиÑÑŒ ниже на одну позицию - Copy &Username Скопировать &Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ - - Copy username to clipboard - Скопировать логин в буфер обмена - Copy &Password Скопировать п&ароль - - Copy password to clipboard - Скопировать пароль в буфер обмена - &Settings &Параметры @@ -5151,31 +5366,19 @@ Are you sure you want to continue with this file? Lock &All Databases - Заблокировать &Ð’Ñе Базы + Заблокировать &вÑе базы &Title Ðазван&ие - Copy title to clipboard - Скопировать название в буфер обмена - - - &URL - &URL-Ð°Ð´Ñ€ÐµÑ - - - Copy URL to clipboard - Скопировать URL-Ð°Ð´Ñ€ÐµÑ Ð² буфер обмена + Copy &URL + Скопировать &Ð°Ð´Ñ€ÐµÑ &Notes - &ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ - - - Copy notes to clipboard - Скопировать Ð¿Ñ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð² буфер обмена + &Заметки &CSV File… @@ -5189,25 +5392,13 @@ Are you sure you want to continue with this file? KeePass 1 Database… База данных KeePass 1… - - Import a KeePass 1 database - Импортировать базу данных KeePass 1 - 1Password Vault… Хранилище 1Password… - - Import a 1Password Vault - Импортировать хранилище 1Password - CSV File… - Файл &CSV... - - - Import a CSV file - Импортировать файл CSV + Файл CSV... Show TOTP @@ -5225,6 +5416,10 @@ Are you sure you want to continue with this file? Copy &TOTP Скопировать &TOTP + + Copy Password and TOTP + Скопировать пароль и TOTP + E&mpty recycle bin О&чиÑтить корзину @@ -5249,10 +5444,6 @@ Are you sure you want to continue with this file? &Online Help Справка в &интернете - - Go to online documentation - Перейти к онлайн документации - &User Guide &РуководÑтво Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ @@ -5271,11 +5462,11 @@ Are you sure you want to continue with this file? Add key to SSH Agent - Добавить ключ к SSH-агент + Добавить ключ к SSH-агенту Remove key from SSH Agent - Убрать ключ из агента SSH + Убрать ключ из SSH-агента Compact Mode @@ -5295,7 +5486,7 @@ Are you sure you want to continue with this file? Classic (Platform-native) - КлаÑÑичеÑÐºÐ°Ñ (платформо-завиÑимаÑ) + КлаÑÑичеÑÐºÐ°Ñ (завиÑÐ¸Ð¼Ð°Ñ Ð¾Ñ‚ платформы) Show Toolbar @@ -5321,6 +5512,10 @@ Are you sure you want to continue with this file? Clone Group... Клонировать группу... + + &XML File… + Файл &XML… + Clear history ОчиÑтить иÑторию @@ -5353,6 +5548,10 @@ We recommend you use the AppImage available on our downloads page. Ð’ÐИМÐÐИЕ: ваша верÑÐ¸Ñ Qt может привеÑти к ÑбоÑм KeePassXC при работе Ñ Ñкранной клавиатурой. РекомендуетÑÑ Ð¸Ñпользовать AppImage Ñ Ð½Ð°ÑˆÐµÐ¹ Ñтраницы загрузок. + + No Tags + Ðет тегов + Restore Entry(s) ВоÑÑтановить запиÑьВоÑÑтановить запиÑÑŒ(-и)ВоÑÑтановить запиÑÑŒ(-и)ВоÑÑтановить запиÑÑŒ(-и) @@ -5381,9 +5580,13 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC Закрыть KeePassXC + + %1 Entry(s) + %1 запиÑÑŒ%1 запиÑи%1 запиÑей%1 запиÑÑŒ(и) + Please present or touch your YubiKey to continue… - ПожалуйÑта, поднеÑите или коÑнитеÑÑŒ YubiKey, чтобы продолжить... + ПоднеÑите или коÑнитеÑÑŒ YubiKey, чтобы продолжить... Restart Application? @@ -5393,6 +5596,274 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? ТребуетÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑк Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñтого параметра. Выполнить перезапуÑк ÑейчаÑ? + + Allow Screen Capture + Разрешить Ñкриншоты + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Passkeys… + + + Import Passkey + Импорт Passkey + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + Редактировать запиÑÑŒ + + + Delete Entry + + + + Create Group + + + + Edit Group + Редактировать группу + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + Скопировать Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ + + + Copy Password + Скопировать пароль + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + Импортировать базу данных в формате KeePass1 + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + ÐаÑтроить ВРП + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + ManageDatabase @@ -5433,7 +5904,7 @@ We recommend you use the AppImage available on our downloads page. Reset any remembered decisions for this application - СброÑить вÑе Ñохраненные Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñтого Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ + СброÑить вÑе Ñохранённые Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñтого Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ @@ -5450,26 +5921,6 @@ We recommend you use the AppImage available on our downloads page. Overwriting %1 [%2] ПерезапиÑÑŒ %1 [%2] - - older entry merged from database "%1" - более ÑÑ‚Ð°Ñ€Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ из базы данных "%1" - - - Adding backup for older target %1 [%2] - Добавление резервной копии Ð´Ð»Ñ Ð±Ð¾Ð»ÐµÐµ Ñтарой цели %1 [%2] - - - Adding backup for older source %1 [%2] - Добавление резервной копии Ð´Ð»Ñ Ð±Ð¾Ð»ÐµÐµ Ñтарого иÑточника %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Повторное применение более Ñтарой целевой запиÑи поверх более нового иÑточника %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Повторное применение более Ñтарой иÑходной запиÑи поверх более новой целевой запиÑи %1 [%2] - Synchronizing from newer source %1 [%2] Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ Ð±Ð¾Ð»ÐµÐµ новым иÑточником %1 [%2] @@ -5488,7 +5939,7 @@ We recommend you use the AppImage available on our downloads page. Changed deleted objects - Изменены удалённые объекты + Удалённые объекты изменены Adding missing icon %1 @@ -5496,11 +5947,11 @@ We recommend you use the AppImage available on our downloads page. Removed custom data %1 [%2] - ПользовательÑкие данные %1 [%2] удалены + ПользовательÑкие данные %1 [%2] удалены Adding custom data %1 [%2] - Добавление пользовательÑких данные %1 [%2] + Добавление пользовательÑких данных %1 [%2] @@ -5527,15 +5978,7 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - ЗдеÑÑŒ можно наÑтроить параметры ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных. Их можно будет изменить позже в наÑтройках базы данных. - - - Advanced Settings - Дополнительные параметры - - - Simple Settings - ПроÑтые наÑтройки + ЗдеÑÑŒ можно наÑтроить параметры ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных. Их можно будет изменить позже в параметрах базы данных. @@ -5557,7 +6000,7 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - ЗдеÑÑŒ можно наÑтроить параметры ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных. Их можно будет изменить позже в наÑтройках базы данных. + ЗдеÑÑŒ можно наÑтроить параметры ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных. Их можно будет изменить позже в параметрах базы данных. @@ -5617,15 +6060,6 @@ We recommend you use the AppImage available on our downloads page. ОжидалоÑÑŒ %1 байт проÑтого текÑта, найдено %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Ðевозможно Ñоздать базу данных из прочитанного файла -%1 - - OpVaultReader @@ -5673,7 +6107,7 @@ We recommend you use the AppImage available on our downloads page. Key file magic header id invalid - ÐедопуÑтимый идентификатор заголовка файла-ключа. + ÐедопуÑтимый идентификатор заголовка файла-ключа Found zero keys @@ -5699,6 +6133,10 @@ We recommend you use the AppImage available on our downloads page. Unknown cipher: %1 Ðеподдерживаемый шифр: %1 + + AES-256/GCM is currently not supported + AES-256/GCM в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½Ðµ поддерживаетÑÑ + Passphrase is required to decrypt this key Ð”Ð»Ñ Ñ€Ð°Ñшифровки Ñтого ключа требуетÑÑ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ @@ -5765,26 +6203,178 @@ We recommend you use the AppImage available on our downloads page. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Пароли не Ñовпадают + SSH Key Generator + Генератор ключей SSH - Passwords match so far - КоличеÑтво Ñовпавших паролей + Type + Тип - Toggle Password (%1) - Скрыть или показать пароль (%1) + Bits + Биты - Generate Password (%1) - Сгенерировать пароль (%1) + Comment + Комментарий + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - ЭкÑпорт Passkey - Warning: Caps Lock enabled! - Внимание: включен режим CAPS LOCK. + Export the following Passkey entries. + ЭкÑпортировать Ñледующие запиÑи Passkey. + + + Filenames will be generated with title and .passkey file extension. + Имена файлов будут Ñгенерированы Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¾Ð¼ и раÑширением файла .passkey + + + Export entries + ЭкÑпорт запиÑей + + + Export Selected + ЭкÑпорт выбранного + + + Cancel + Отмена + + + Export to folder + ЭкÑпортировать в папку + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: Passkey ЭкÑпорт + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + Файл "%1.passkey" уже ÑущеÑтвует. +Ð’Ñ‹ хотите перезапиÑать его? + + + + Cannot open file + Ðе удаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ файл + + + Cannot open file "%1" for writing. + Ðе удаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ файл "%1" Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи. + + + Cannot write to file + Ðе удаетÑÑ Ð·Ð°Ð¿Ð¸Ñать в файл + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - Passkey Импорт + + + Username: %1 + Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ: %1 + + + Group + Группа + + + Database + Хранилище + + + Import Passkey + Импорт Passkey + + + Import + Импортировать + + + Cancel + Отмена + + + Import the following Passkey: + Импортируйте Ñледующий Passkey: + + + Entry + ЗапиÑÑŒ + + + Import the following Passkey to this entry: + Импортируйте Ñледующий Passkey в Ñту запиÑÑŒ. + + + Create new entry + Создать новую запиÑÑŒ + + + Default Passkeys group (Imported Passkeys) + Группа Passkeys по умолчанию (Импортированные Passkeys) + + + Relying Party: %1 + Ð”Ð¾Ð²ÐµÑ€ÐµÐ½Ð½Ð°Ñ Ñторона: %1 + + + + PasskeyImporter + + Passkey file + Passkey файл + + + All files + Ð’Ñе файлы + + + Open Passkey file + Открыть Passkey файл + + + Cannot open file + Ðе удаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ файл + + + Cannot open file "%1" for reading. + Ðе могу открыть файл "%1" Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ. + + + Cannot import Passkey + Ðе могу импортировать Passkey + + + Cannot import Passkey file "%1". Data is missing. + Ðе могу импортировать Passkey файл "%1". Данные отÑутÑтвуют. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + Ðе могу импортировать Passkey файл "%1". Приватный ключ отÑутÑтвует или поврежден. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + Ðе могу импортировать Passkey файл "%1". +Следующие данные отÑутÑтвуют: +%2 @@ -5827,7 +6417,7 @@ We recommend you use the AppImage available on our downloads page. <p>A password is the primary method for securing your database.</p><p>Good passwords are long and unique. KeePassXC can generate one for you.</p> - <p>Пароль - Ñто оÑновной метод защиты базы данных.</p><p>Хороший пароль должен быть длинным и уникальным. KeePassXC может Ñгенерировать его Ñам.</p> + <p>Пароль — Ñто оÑновной метод защиты базы данных.</p><p>Хороший пароль должен быть длинным и уникальным. KeePassXC может Ñгенерировать его Ñам.</p> Passwords do not match. @@ -5903,7 +6493,7 @@ We recommend you use the AppImage available on our downloads page. Dashes and Slashes - Тире и ÑлÑши + Тире и коÑые черты Upper-case letters @@ -5935,7 +6525,7 @@ We recommend you use the AppImage available on our downloads page. Additional characters to use for the generated password - Дополнительные Ñимволы + Дополнительные Ñимволы Ð´Ð»Ñ Ñозданного Ð¿Ð°Ñ€Ð¾Ð»Ñ Additional characters @@ -5959,7 +6549,7 @@ We recommend you use the AppImage available on our downloads page. Excluded characters - ИÑключенные Ñимволы + ИÑключённые Ñимволы Also choose from: @@ -6007,7 +6597,7 @@ We recommend you use the AppImage available on our downloads page. Add custom wordlist - Добавить пользовательÑкий Ñловарь + Добавить Ñвой Ñловарь character @@ -6049,52 +6639,6 @@ We recommend you use the AppImage available on our downloads page. Entropy: %1 bit ЭнтропиÑ: %1 бит - - Confirm Delete Wordlist - Подтвердить удаление ÑÐ»Ð¾Ð²Ð°Ñ€Ñ - - - Do you really want to delete the wordlist "%1"? - Ð’Ñ‹ дейÑтвительно хотите удалить Ñловарь "%1"? - - - Failed to delete wordlist - Ðе удалоÑÑŒ удалить Ñловарь - - - Wordlists - Словарь - - - All files - Ð’Ñе файлы - - - Select Custom Wordlist - Выберите пользовательÑкий Ñловарь - - - Overwrite Wordlist? - ПерепиÑать Ñловарь? - - - Wordlist "%1" already exists as a custom wordlist. -Do you want to overwrite it? - СпиÑок Ñлов "%1" уже наÑтраиваемый. -Ð’Ñ‹ хотите его перезапиÑать? - - - Failed to add wordlist - Ðе удалоÑÑŒ добавить Ñловарь - - - Logograms - Логограммы - - - Special Characters - Специальные Ñимволы - Password Quality: %1 КачеÑтво паролÑ: %1 @@ -6119,12 +6663,109 @@ Do you want to overwrite it? Password quality Отличный + + Confirm Delete Wordlist + Подтвердить удаление ÑÐ»Ð¾Ð²Ð°Ñ€Ñ + + + Do you really want to delete the wordlist "%1"? + Ð’Ñ‹ дейÑтвительно хотите удалить Ñловарь «%1»? + + + Failed to delete wordlist + Ðе удалоÑÑŒ удалить Ñловарь + + + Wordlists + Словарь + + + All files + Ð’Ñе файлы + + + Select Custom Wordlist + Выберите Ñвой Ñловарь + + + Overwrite Wordlist? + ПерепиÑать Ñловарь? + + + Wordlist "%1" already exists as a custom wordlist. +Do you want to overwrite it? + СпиÑок Ñлов «%1» уже наÑтраиваемый. +Ð’Ñ‹ хотите его перезапиÑать? + + + Failed to add wordlist + Ðе удалоÑÑŒ добавить Ñловарь + + + Logograms + Логограммы + + + Special Characters + Специальные Ñимволы + + + + PasswordWidget + + Passwords do not match + Пароли не Ñовпадают + + + Passwords match so far + КоличеÑтво Ñовпавших паролей + + + Toggle Password (%1) + Скрыть или показать пароль (%1) + + + Generate Password (%1) + Сгенерировать пароль (%1) + + + Warning: Caps Lock enabled! + Внимание: CAPS LOCK включён. + + + Quality: %1 + КачеÑтво: %1 + + + Poor + Password quality + Плохой + + + Weak + Password quality + Слабый + + + Good + Password quality + Хороший + + + Excellent + Password quality + Отличный + + + Toggle password visibility using Control + H. Open the password generator using Control + G. + + PickcharsDialog KeePassXC - Pick Characters - KeePassXC - Выбор Ñимволов + KeePassXC — Выбор Ñимволов Select characters to type, navigate with arrow keys, Ctrl + S submits. @@ -6173,6 +6814,10 @@ Do you want to overwrite it? Continue Продолжить + + Continue with weak password + + QObject @@ -6262,7 +6907,7 @@ Do you want to overwrite it? URL for the entry. - URL-Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи + URL-Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи. URL @@ -6274,7 +6919,7 @@ Do you want to overwrite it? Notes - ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ + Заметки Prompt for the entry's password. @@ -6374,7 +7019,7 @@ Do you want to overwrite it? Password for '%1' has been leaked! - Пароль Ð´Ð»Ñ '%1' был замечен в утечке! + Пароль Ð´Ð»Ñ Â«%1» был замечен в утечке! Export an attachment of an entry. @@ -6390,7 +7035,7 @@ Do you want to overwrite it? Path to which the attachment should be exported. - Путь куда будет ÑкÑпортировано вложение. + Путь, куда будет ÑкÑпортировано вложение. Could not find entry with path %1. @@ -6402,7 +7047,7 @@ Do you want to overwrite it? No export target given. Please use '--stdout' or specify an 'export-file'. - Цель ÑкÑпорта не указана. ПожалуйÑта, иÑпользуйте '--stdout' или укажите 'export-file'. + Цель ÑкÑпорта не указана. ИÑпользуйте «--stdout» или укажите «export-file». Could not open output file %1. @@ -6459,7 +7104,7 @@ Do you want to overwrite it? Copy the given attribute to the clipboard. Defaults to "password" if not specified. Don't translate "password", it refers to the attribute. - Скопировать указанный аттрибут в буфер обмена. ЕÑли аттрибут не указан, иÑпользуетÑÑ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ. + Скопировать указанный атрибут в буфер обмена. ЕÑли атрибут не указан, иÑпользуетÑÑ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ. Copy the current TOTP to the clipboard (equivalent to "-a totp"). @@ -6471,7 +7116,7 @@ Do you want to overwrite it? Copy an entry's attribute to the clipboard. - Скопировать в буфер обмена аттрибуты запиÑи. + Скопировать в буфер обмена атрибуты запиÑи. Path of the entry to clip. @@ -6480,7 +7125,7 @@ Do you want to overwrite it? Timeout before clearing the clipboard (default is %1 seconds, set to 0 for unlimited). - Ð’Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¾Ñ‡Ð¸Ñтки буфера обмена (по умолчанию ÑоÑтавлÑет %1 (в Ñекундах), Ð´Ð»Ñ ÑнÑÑ‚Ð¸Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ð¹ уÑтановите равным нулю). + Ð’Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¾Ñ‡Ð¸Ñтки буфера обмена (по умолчанию ÑоÑтавлÑет %1 (в Ñекундах), Ð´Ð»Ñ ÑнÑÑ‚Ð¸Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ð¹ уÑтановите равным нулю). Invalid timeout value %1. @@ -6508,15 +7153,15 @@ Do you want to overwrite it? ERROR: attribute %1 is ambiguous, it matches %2. - ОШИБКÐ: аттрибут %1 неоднозначный, он ÑоответÑтвует %2. + ОШИБКÐ: аттрибут %1 неоднозначный, он ÑоответÑтвует %2. Attribute "%1" not found. - Ðттрибут «%1» не найден. + Ðтрибут «%1» не найден. Entry's "%1" attribute copied to the clipboard! - Ðттрибуты запиÑи «%1» Ñкопированы в буфер обмена. + Ðтрибуты запиÑи «%1» Ñкопированы в буфер обмена. Clearing the clipboard in %1 second(s)... @@ -6532,7 +7177,7 @@ Do you want to overwrite it? Display this help. - Показать Ñту помощь. + Показать Ñту Ñправку. Silence password prompt and other secondary outputs. @@ -6548,11 +7193,11 @@ Do you want to overwrite it? Deactivate password key for the database. - Отключить иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»ÑŒÐ½Ð¾Ð³Ð¾ ключа базой данных. + Отключить иÑпользование парольного ключа базой данных. Yubikey slot and optional serial used to access the database (e.g., 1:7370001). - Ðомер Ñлота ключа Yubikey и дополнительный Ñерийный номер Ð´Ð»Ñ Ð´Ð¾Ñтупа к базе данных (например: :7370001). + Ðомер Ñлота ключа Yubikey и дополнительный Ñерийный номер Ð´Ð»Ñ Ð´Ð¾Ñтупа к базе данных (например: 1:7370001). slot[:serial] @@ -6566,6 +7211,10 @@ Do you want to overwrite it? Too many arguments provided. Слишком много аргументов. + + Path of the database. + Путь к базе данных. + Target decryption time in MS for the database. Целевое Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°ÑÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных в миллиÑекундах. @@ -6574,6 +7223,12 @@ Do you want to overwrite it? time Ð²Ñ€ÐµÐ¼Ñ + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + УÑтановить файл-ключ Ð´Ð»Ñ Ð±Ð°Ð·Ñ‹ данных. +Эта Ð¾Ð¿Ñ†Ð¸Ñ ÑƒÑтарела, вмеÑто неё иÑпользуйте --set-key-file. + Set the key file for the database. Задать файл-ключ базы данных. @@ -6586,10 +7241,6 @@ Do you want to overwrite it? Create a new database. Создать новую базу данных. - - Path of the database. - Путь к базе данных. - Invalid decryption time %1. Ðеверное Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°ÑÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ñ‹Ð²Ð°Ð½Ð¸Ñ %1. @@ -6604,7 +7255,7 @@ Do you want to overwrite it? Loading the key file failed - Ошибка загрузки ключевого файла + Ошибка загрузки файла-ключа No key is set. Aborting database creation. @@ -6616,7 +7267,7 @@ Do you want to overwrite it? Setting %1 rounds for key derivation function. - Ð”Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð° задано иÑпользование %1 раундов. + Ð”Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð° задано иÑпользование раундов: %1. error while setting database key derivation settings. @@ -6634,6 +7285,158 @@ Do you want to overwrite it? Successfully created new database. ÐÐ¾Ð²Ð°Ñ Ð±Ð°Ð·Ð° данных уÑпешно Ñоздана. + + Unset the password for the database. + СброÑить пароль Ð´Ð»Ñ Ð±Ð°Ð·Ñ‹ данных. + + + Unset the key file for the database. + СброÑить ключ-файл Ð´Ð»Ñ Ð±Ð°Ð·Ñ‹ данных. + + + Edit a database. + Редактировать базу данных. + + + Cannot use %1 and %2 at the same time. + Ðевозможно иÑпользовать %1 и %2 одновременно. + + + Could not change the database key. + Ðе удалоÑÑŒ изменить ключ базы данных. + + + Database was not modified. + База данных не была изменена. + + + Writing the database failed: %1 + Ошибка запиÑи базы данных: %1 + + + Successfully edited the database. + База данных уÑпешно изменена. + + + Cannot remove password: The database does not have a password. + Ðевозможно удалить пароль: у базы данных нет паролÑ. + + + Cannot remove file key: The database does not have a file key. + Ðевозможно удалить файл-ключ: в базе данных нет файла-ключа. + + + Loading the new key file failed: %1 + Загрузка нового файла-ключа не удалаÑÑŒ: %1 + + + Found unexpected Key type %1 + Обнаружен неожиданный тип ключа %1 + + + Cannot remove all the keys from a database. + Ðевозможно удалить вÑе ключи из базы данных. + + + Show a database's information. + Показать ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ базе данных. + + + UUID: + UUID: + + + Name: + ИмÑ: + + + Description: + ОпиÑание: + + + Cipher: + Шифрование: + + + KDF: + KDF: + + + Recycle bin is enabled. + ИÑпользование корзины включено. + + + Recycle bin is not enabled. + ИÑпользование корзины не включено. + + + Location + РаÑположение + + + Database created + База данных Ñоздана + + + Last saved + ПоÑледнее Ñохранение + + + Unsaved changes + ÐеÑохранённые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ + + + yes + да + + + no + нет + + + Number of groups + КоличеÑтво групп + + + Number of entries + КоличеÑтво запиÑей + + + Number of expired entries + КоличеÑтво иÑтёкших запиÑей + + + Unique passwords + Уникальные пароли + + + Non-unique passwords + Ðеуникальные пароли + + + Maximum password reuse + МакÑимальное количеÑтво повторных иÑпользований Ð¿Ð°Ñ€Ð¾Ð»Ñ + + + Number of short passwords + КоличеÑтво коротких паролей + + + Number of weak passwords + КоличеÑтво ненадёжных паролей + + + Entries excluded from reports + ИÑключённые из отчёта запиÑи + + + Average password length + СреднÑÑ Ð´Ð»Ð¸Ð½Ð° Ð¿Ð°Ñ€Ð¾Ð»Ñ + + + %1 characters + %1 Ñимволов + Word count for the diceware passphrase. КоличеÑтво Ñлов Ð´Ð»Ñ Ð¿Ð°Ñ€Ð¾Ð»ÑŒÐ½Ð¾Ð¹ фразы. @@ -6683,11 +7486,7 @@ Do you want to overwrite it? Enter new password for entry: - Введите новый пароль Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи: - - - Writing the database failed: %1 - Ошибка запиÑи базы данных: %1 + Введите новый пароль Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи: Successfully edited entry %1. @@ -6775,7 +7574,7 @@ Do you want to overwrite it? Type: User+Leet(Rep) - Тип: Пользователь + замена букв цифрами и знаками (повт.) + Тип: пользователь + замена букв цифрами и знаками (повт.) Type: Repeated(Rep) @@ -6899,7 +7698,7 @@ Do you want to overwrite it? Path of the XML database export. - Путь Ð´Ð»Ñ ÑкÑпорта базы данных в формат XML + Путь Ð´Ð»Ñ ÑкÑпорта базы данных в формат XML. Path of the new database. @@ -6913,106 +7712,6 @@ Do you want to overwrite it? Successfully imported database. База данных уÑпешно импортирована. - - Show a database's information. - Показать ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ базе данных. - - - UUID: - UUID: - - - Name: - ИмÑ: - - - Description: - ОпиÑание: - - - Cipher: - Шифрование: - - - KDF: - KDF: - - - Recycle bin is enabled. - ИÑпользование корзины включено. - - - Recycle bin is not enabled. - ИÑпользование корзины не включено. - - - Location - РаÑположение - - - Database created - База данных Ñоздана - - - Last saved - ПоÑледнее Ñохранение - - - Unsaved changes - ÐеÑохраненные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ - - - yes - да - - - no - нет - - - Number of groups - КоличеÑтво групп - - - Number of entries - КоличеÑтво запиÑей - - - Number of expired entries - КоличеÑтво иÑтёкших запиÑей - - - Unique passwords - Уникальные пароли - - - Non-unique passwords - Ðеуникальные пароли - - - Maximum password reuse - МакÑимальное количеÑтво повторных иÑпользований Ð¿Ð°Ñ€Ð¾Ð»Ñ - - - Number of short passwords - КоличеÑтво коротких паролей - - - Number of weak passwords - КоличеÑтво ненадёжных паролей - - - Entries excluded from reports - ИÑключённые из отчёта запиÑи - - - Average password length - СреднÑÑ Ð´Ð»Ð¸Ð½Ð° Ð¿Ð°Ñ€Ð¾Ð»Ñ - - - %1 characters - %1 Ñимволов - Unknown command %1 ÐеизвеÑÑ‚Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %1 @@ -7061,7 +7760,7 @@ Available commands: Use the same credentials for both database files. - ИÑпользуйте те же учетные данные Ð´Ð»Ñ Ð¾Ð±Ð¾Ð¸Ñ… файлов базы данных. + ИÑпользуйте те же учётные данные Ð´Ð»Ñ Ð¾Ð±Ð¾Ð¸Ñ… файлов базы данных. Key file of the database to merge from. @@ -7069,11 +7768,11 @@ Available commands: Deactivate password key for the database to merge from. - Отключить иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»ÑŒÐ½Ð¾Ð³Ð¾ ключа Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½Ñемой базы данных. + Отключить иÑпользование парольного ключа Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½Ñемой базы данных. Only print the changes detected by the merge operation. - Ðе выполнÑть объединение, а только Ñообщать о найденных изменениÑÑ… + Ðе выполнÑть объединение, а только Ñообщать о найденных изменениÑÑ…. Yubikey slot for the second database. @@ -7185,13 +7884,17 @@ Available commands: Show the protected attributes in clear text. Показать защищённый атрибут в виде проÑтого текÑта. + + Show all the attributes of the entry. + Показать вÑе атрибуты запиÑи. + Show the attachments of the entry. Показать вÑе Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñи. Names of the attributes to show. This option can be specified more than once, with each attribute shown one-per-line in the given order. If no attributes are specified, a summary of the default attributes is given. - Имена атрибутов Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ. Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ быть указана более одного раза - каждый атрибут будет показан по одному в Ñтроке в заданном порÑдке. ЕÑли атрибуты не указаны, даётÑÑ Ñводка атрибутов по умолчанию. + Имена атрибутов Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ. Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ быть указана более одного раза — каждый атрибут будет показан по одному в Ñтроке в заданном порÑдке. ЕÑли атрибуты не указаны, даётÑÑ Ñводка атрибутов по умолчанию. attribute @@ -7231,7 +7934,7 @@ Available commands: Enter password to unlock %1: - Введите пароль Ð´Ð»Ñ Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸ %1: + Введите пароль Ð´Ð»Ñ Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸ %1: Failed to load key file %1: %2 @@ -7255,9 +7958,13 @@ Please consider generating a new key file. Invalid YubiKey serial %1 Ðеверный Ñерийный номер Yubikey %1 + + Please present or touch your YubiKey to continue. + Подключите или коÑнитеÑÑŒ YubiKey Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ. + Enter password to encrypt database (optional): - Введите пароль Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных (необÑзательно): + Введите пароль Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных (необÑзательно): Do you want to create a database with an empty password? [y/N]: @@ -7265,11 +7972,11 @@ Please consider generating a new key file. Repeat password: - Повторите пароль: + Повторите пароль: Error: Passwords do not match. - Ошибка: пароли не Ñовпадают + Ошибка: пароли не Ñовпадают. No program defined for clipboard manipulation @@ -7278,7 +7985,8 @@ Please consider generating a new key file. All clipping programs failed. Tried %1 - Ðи одна программа ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ðµ Ñработала. Пробовали %1 + Ðи одна программа ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ðµ Ñработала. Пробовали %1 + Creating KeyFile %1 failed: %2 @@ -7298,15 +8006,15 @@ Please consider generating a new key file. Could not start okon process: %1 - Ðевозможно запуÑтить процеÑÑ Ð¿Ð¾Ð¸Ñка через okon + Ðевозможно запуÑтить процеÑÑ Ð¿Ð¾Ð¸Ñка через okon: %1 Error: okon process did not finish - ПроцеÑÑ Ð¿Ð¾Ð¸Ñка через okon завершилÑÑ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹ + ПроцеÑÑ Ð¿Ð¾Ð¸Ñка через okon завершилÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹ Failed to load okon processed database: %1 - Ðе удалоÑÑŒ загрузить базу okon + Ðе удалоÑÑŒ загрузить базу okon: %1 Very weak password @@ -7374,7 +8082,7 @@ Please consider generating a new key file. Debugging mode is enabled. - Режим отладки включен. + Режим отладки включён. Operating system: %1 @@ -7418,7 +8126,7 @@ Kernel: %3 %4 over %1 year(s) - over %1 годаover %1 летover %1 летover %1 лет + более %1 годаболее %1 летболее %1 летболее %1 лет about %1 month(s) @@ -7441,8 +8149,8 @@ Kernel: %3 %4 %1 мин.%1 мин.%1 мин.%1 мин. - Botan library must be at least 2.11.x, found %1.%2.%3 - Ðеобходима библиотека Botan верÑии не ниже 2.11.x, а обнаружена верÑÐ¸Ñ %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + Библиотека Botan должна быть не менее %1, найдено %2.%3.%4 Cryptographic libraries: @@ -7494,11 +8202,11 @@ Kernel: %3 %4 malformed string - ÐÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ñтрока + Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ñтрока missing closing quote - ОтÑутÑтвует Ð·Ð°ÐºÑ€Ñ‹Ð²Ð°ÑŽÑ‰Ð°Ñ ÐºÐ°Ð²Ñ‹Ñ‡ÐºÐ° + отÑутÑтвует Ð·Ð°ÐºÑ€Ñ‹Ð²Ð°ÑŽÑ‰Ð°Ñ ÐºÐ°Ð²Ñ‹Ñ‡ÐºÐ° %1: (row, col) %2,%3 @@ -7518,7 +8226,7 @@ Kernel: %3 %4 Argon2d (KDBX 4 – recommended) - Argon2d (KDBX 4 – рекомендуемок) + Argon2d (KDBX 4 — рекомендуемое) Argon2id (KDBX 4) @@ -7648,15 +8356,15 @@ Kernel: %3 %4 Checksum mismatch! Key file may be corrupt. - ÐеÑоответÑтвие Ñ…Ñша! Возможно, ключ-файл повреждён + ÐеÑоответÑтвие Ñ…Ñша! Возможно, ключ-файл повреждён. Unexpected key file data! Key file may be corrupt. - Ðеожиданные данные в файле-ключе! ВероÑтно, он повреждён + Ðеожиданные данные в файле-ключе! ВероÑтно, он повреждён. KeePassXC - cross-platform password manager - KeePassXC - кроÑÑплатформенный менеджер паролей + KeePassXC — кроÑÑплатформенный менеджер паролей filenames of the password databases to open (*.kdbx) @@ -7664,11 +8372,11 @@ Kernel: %3 %4 path to a custom config file - путь к Ñвоему файлу наÑтроек + путь к Ñвоему файлу параметров path to a custom local config file - Путь к пользовательÑкому файлу наÑтроек + путь к пользовательÑкому локальному файлу параметров lock all open databases @@ -7682,10 +8390,6 @@ Kernel: %3 %4 read password of the database from stdin читать пароли базы данных Ñ stdin - - allow app screen recordering and screenshots - разрешить запиÑÑŒ и Ñнимки Ñкрана Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ - Locked databases. Базы данных заблокированы. @@ -7698,17 +8402,17 @@ Kernel: %3 %4 Another instance of KeePassXC is already running. Другой ÑкземплÑÑ€ KeePassXC уже запущен. + + KeePassXC is not running. No open database to lock + KeePassXC не запущен. Ðет открытой базы данных Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸ + Fatal error while testing the cryptographic functions. ÐеуÑÑ‚Ñ€Ð°Ð½Ð¸Ð¼Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° при теÑтировании криптографичеÑких функций. KeePassXC - Error - Ошибка - KeePassXC - - - Warning: Failed to prevent screenshots on a top level window! - Внимание: не удалоÑÑŒ запретить Ñнимки Ñкрана Ð´Ð»Ñ Ð¾ÐºÐ½Ð° верхнего уровнÑ! + Ошибка — KeePassXC Database password: @@ -7726,14 +8430,228 @@ Kernel: %3 %4 Failed to create Windows Hello credential. - Ðе удалоÑÑŒ Ñоздать учетные данные Windows Hello. + Ðе удалоÑÑŒ Ñоздать учётные данные Windows Hello. Failed to sign challenge using Windows Hello. Ðе удалоÑÑŒ подпиÑать вызов Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Windows Hello. - Please present or touch your YubiKey to continue. + Warning: Failed to block screenshot capture on a top-level window. + Предупреждение: не удалоÑÑŒ заблокировать Ñкриншот в окне верхнего уровнÑ. + + + Invalid Cipher + Ðеверный шифр + + + Invalid KDF + ÐедейÑтвительный ФФК + + + Access to all entries is denied + ДоÑтуп ко вÑем запиÑÑм запрещён + + + allow screenshots and app recording (Windows/macOS) + разрешить Ñнимки Ñкрана и запиÑÑŒ приложений (Windows/macOS) + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + + + + Credential is excluded + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Passkeys + Passkeys + + + AES initialization failed + + + + AES encrypt failed + + + + Failed to store in Linux Keyring + + + + Polkit returned an error: %1 + + + + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + + + + Failed to init KeePassXC crypto. + Ðе удалоÑÑŒ инициализировать криптографию KeePassXC. + + + Failed to encrypt key data. + Ðе удалоÑÑŒ зашифровать данные ключа. + + + Failed to get Windows Hello credential. + Ðе удалоÑÑŒ получить учётные данные Windows Hello. + + + Failed to decrypt key data. + Ðе удалоÑÑŒ раÑшифровать данные ключа. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7741,7 +8659,7 @@ Kernel: %3 %4 QtIOCompressor Internal zlib error when compressing: - ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° zlib при Ñжатии: + ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° zlib при Ñжатии: Error writing to underlying device: @@ -7757,7 +8675,7 @@ Kernel: %3 %4 Internal zlib error when decompressing: - ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° zlib при раÑпаковке: + ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° zlib при раÑпаковке: @@ -7768,30 +8686,18 @@ Kernel: %3 %4 Internal zlib error: - ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° zlib: + ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° zlib: ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - ИÑключить иÑтёкшие запиÑи из отчёта - - - Show only entries which have URL set - Показывать только те запиÑи, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… задан URL - - - Show only entries which have browser settings in custom data - Показывать только те запиÑи, которые имеют наÑтройки браузера в пользовательÑких данных - Double-click entries to edit. - Дважды щелкните запиÑи Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ. + Дважды щёлкните левой кнопкой мыши по запиÑи Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ. List of entry URLs - СпиÑок URL запиÑей + СпиÑок запиÑей URL Entry has no URLs set @@ -7799,19 +8705,19 @@ Kernel: %3 %4 Allowed URLs - Разрешенные URL + Разрешённые URL Entry has no Browser Integration settings - У запиÑи нет наÑтроек интеграции Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð¾Ð¼ + У запиÑи нет параметров интеграции Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð¾Ð¼ Denied URLs - Запрещенные URL + Запрещённые URL (Excluded) - (ИÑключено) + (ИÑключено) This entry is being excluded from reports @@ -7819,15 +8725,15 @@ Kernel: %3 %4 Please wait, browser statistics is being calculated… - ПожалуйÑта, подождите, идет подÑчет ÑтатиÑтики браузера... + Подождите, идет подÑчёт ÑтатиÑтики браузера... No entries with a URL, or none has browser extension settings saved. - Ðет запиÑей Ñ URL, или ни в одной из них не Ñохранены наÑтройки раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°. + Ðет запиÑей Ñ URL, или ни в одной из них не Ñохранены параметры раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°. Title - Заголовок + Ðазвание Path @@ -7847,22 +8753,30 @@ Kernel: %3 %4 Exclude from reports - ИÑключить из отчетов + ИÑключить из отчётов + + + Only show entries that have a URL + Показывать только запиÑи Ñ URL-адреÑом + + + Only show entries that have been explicitly allowed or denied + Показывать только запиÑи, которые были Ñвно разрешены или запрещены + + + Show expired entries + Показать проÑроченные запиÑи + + + (Expired) + (ИÑтекший) ReportsWidgetHealthcheck - - Exclude expired entries from the report - ИÑключить иÑтёкшие запиÑи из отчёта - - - Also show entries that have been excluded from reports - Также показать запиÑи, которые были иÑключены из отчётов - Hover over reason to show additional details. Double-click entries to edit. - Ðаведите курÑор чтобы проÑмотреть дополнительные ÑведениÑ. Ð”Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñи щелкните два раза левой кнопкой мыши. + Ðаведите курÑор, чтобы проÑмотреть дополнительные ÑведениÑ. Ð”Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñи дважды щёлкните левой кнопкой мыши. Bad @@ -7880,20 +8794,20 @@ Kernel: %3 %4 Poor — password should be changed - Так Ñебе — пароль Ñледует изменить + Слабый — пароль Ñледует изменить Weak Password quality - Слабый + Очень Ñлабый Weak — consider changing the password - Слабый — пароль желательно изменить + Очень Ñлабый — пароль желательно изменить (Excluded) - (ИÑключено) + (ИÑключено) This entry is being excluded from reports @@ -7909,7 +8823,7 @@ Kernel: %3 %4 Title - Заголовок + Ðазвание Path @@ -7933,7 +8847,19 @@ Kernel: %3 %4 Exclude from reports - ИÑключить из отчетов + ИÑключить из отчётов + + + Show expired entries + Показать проÑроченные запиÑи + + + Show entries that have been excluded from reports + Показать запиÑи, которые были иÑключены из отчетов + + + (Expired) + (ИÑтекший) @@ -7952,7 +8878,7 @@ Kernel: %3 %4 This build of KeePassXC does not have network functions. Networking is required to check your passwords against Have I Been Pwned databases. - Эта Ñборка KeePassXC не имеет Ñетевых функций. Сеть необходима Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ паролей по базе данных "Have I Been Pwned". + Эта Ñборка KeePassXC не имеет Ñетевых функций. Сеть необходима Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ паролей по базе данных «Have I Been Pwned». Congratulations, no exposed passwords! @@ -7960,7 +8886,7 @@ Kernel: %3 %4 Title - Заголовок + Ðазвание Path @@ -7972,7 +8898,7 @@ Kernel: %3 %4 (Excluded) - (ИÑключено) + (ИÑключено) This entry is being excluded from reports @@ -8028,7 +8954,66 @@ Kernel: %3 %4 Exclude from reports - ИÑключить из отчетов + ИÑключить из отчётов + + + + ReportsWidgetPasskeys + + Export + ЭкÑпортируетÑÑ + + + Import + Импортировать + + + List of entry URLs + СпиÑок запиÑей URL + + + Please wait, list of entries with Passkeys is being updated… + ПожалуйÑта, подождите, ÑпиÑок запиÑей Ñ Passkeys обновлÑетÑÑ... + + + No entries with Passkeys. + Ytn pfgbctq c Passkeys. + + + Title + Ðазвание + + + Path + Путь + + + Username + Логин + + + URLs + URL-адреÑа + + + Edit Entry… + Изменить запиÑь… + + + Delete Entry(s)… + Удаление запиÑи...Удаление запиÑей...Удаление запиÑей...Удаление запиÑей... + + + Relying Party + Ð”Ð¾Ð²ÐµÑ€ÐµÐ½Ð½Ð°Ñ Ñторона + + + Show expired entries + Показать проÑроченные запиÑи + + + (Expired) + (ИÑтекший) @@ -8071,7 +9056,7 @@ Kernel: %3 %4 Unsaved changes - ÐеÑохраненные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ + ÐеÑохранённые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ yes @@ -8119,7 +9104,7 @@ Kernel: %3 %4 Some passwords are used more than three times. Use unique passwords when possible. - Ðекоторые пароли иÑпользуютÑÑ Ð±Ð¾Ð»ÐµÐµ трёх раз. ИÑпользуйте уникальные пароли, когда Ñто возможно. + Ðекоторые пароли иÑпользуютÑÑ Ð±Ð¾Ð»ÐµÐµ трёх раз. ИÑпользуйте уникальные пароли, когда Ñто возможно. Number of short passwords @@ -8135,7 +9120,7 @@ Kernel: %3 %4 Recommend using long, randomized passwords with a rating of 'good' or 'excellent'. - РекомендуетÑÑ Ð¸Ñпользовать длинные пароли, ÑоÑтоÑщие из Ñлучайных Ñимволов Ñ ÑƒÑ€Ð¾Ð²Ð½Ñми безопаÑноÑти «хорошо» или «отлично». + РекомендуетÑÑ Ð¸Ñпользовать длинные пароли, ÑоÑтоÑщие из Ñлучайных Ñимволов Ñ ÑƒÑ€Ð¾Ð²Ð½Ñми безопаÑноÑти «хорошо» или «отлично». Entries excluded from reports @@ -8186,11 +9171,11 @@ Kernel: %3 %4 Restricted lifetime is not supported by the agent (check options). - Ограничение по времени не поддерживаетÑÑ Ñтим агентом (проверьте наÑтройки). + Ограничение по времени не поддерживаетÑÑ Ñтим агентом (проверьте параметры). A confirmation request is not supported by the agent (check options). - Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð½Ðµ поддерживаетÑÑ Ñтим агентом (проверьте наÑтройки). + Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð½Ðµ поддерживаетÑÑ Ñтим агентом (проверьте параметры). Security keys are not supported by the agent or the security key provider is unavailable. @@ -8202,7 +9187,7 @@ Kernel: %3 %4 No agent running, cannot list identities. - Ðи один агент не запущен, идентификационные данные недоÑтупны. + Ðгент не запущен, идентификационные данные недоÑтупны. @@ -8217,7 +9202,7 @@ Kernel: %3 %4 Every search term must match (ie, logical AND) - Каждое поиÑковое выражение должно иметь ÑоответÑтвие (Ñ‚.е. логичеÑкое И) + Каждое поиÑковое выражение должно иметь ÑоответÑтвие (то еÑть логичеÑкое И) Modifiers @@ -8270,6 +9255,10 @@ Kernel: %3 %4 Search Help ПоиÑк в Справке + + Save Search + Сохранить поиÑк + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8322,11 +9311,11 @@ Kernel: %3 %4 SettingsWidgetFdoSecrets Options - Опции + Параметры Enable KeepassXC Freedesktop.org Secret Service integration - Включить интеграцию KeepassXC Ñо Ñлужбой Freedesktop.org Secret Service + Включить интеграцию KeepassXC Ñо Ñлужбой «Freedesktop.org Secret Service» General @@ -8350,7 +9339,11 @@ Kernel: %3 %4 Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">This setting does not override disabling recycle bin prompts</span></p></body></html> - <html><head/><body><p><span style=" font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">Этот параметр не подавлÑет запроÑÑ‹ на прекращение иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ñ€Ð·Ð¸Ð½Ñ‹</span></p></body></html> + <html><head/><body><p><span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">Эта наÑтройка не + подавлÑет запроÑÑ‹ на прекращение иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ñ€Ð·Ð¸Ð½Ñ‹</span></p></body></html> + Confirm when clients request entry deletion @@ -8363,9 +9356,9 @@ Kernel: %3 %4 different value set in applications.)</p></body></html> <html><head/><body><p>Это улучшает ÑовмеÑтимоÑть Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ приложениÑми, -которые ищут пароль без предварительной разблокировки базы данных.</p><p>Включение параметра может также -вызвать Ñбой клиента, еÑли база данных не может быть разблокирована в течение определенного тайм-аута. (Обычно 25 Ñ, другое значение уÑтанавливаетÑÑ Ð² приложениÑÑ….)</p></body></html> - +которые ищут пароль без предварительного Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных.</p><p>Включение наÑтройки может также +вызвать Ñбой клиента, еÑли база данных не может быть открыта в течение определённого времени. (Обычно 25 Ñ, другое значение уÑтанавливаетÑÑ Ð² приложениÑÑ….)</p></body></html> + Prompt to unlock database before searching @@ -8385,7 +9378,7 @@ Kernel: %3 %4 <b>Warning:</b> - <b>Внимание:</b> + <b>Внимание:</b> Save current changes to activate the plugin and enable editing of this section. @@ -8496,11 +9489,38 @@ Kernel: %3 %4 ЭкÑпорт в %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All - Ð’Ñе + Clear Search + ОчиÑтить поиÑк + + + All Entries + Ð’Ñе запиÑи Expired @@ -8511,6 +9531,25 @@ Kernel: %3 %4 Слабые пароли + + TagView + + Remove Search + Удалить поиÑк + + + Remove Tag + Удалить тег + + + Confirm Remove Tag + Подтвердить удаление тега + + + Remove tag "%1" from all entries in this database? + Удалить тег «%1» из вÑех запиÑей в Ñтой базе данных? + + TotpDialog @@ -8535,7 +9574,7 @@ Kernel: %3 %4 NOTE: These TOTP settings are custom and may not work with other authenticators. TOTP QR code dialog warning - * Эти параметры TOTP - пользовательÑкие, они могут не работать Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ ÑредÑтвами проверки подлинноÑти. + * Эти параметры TOTP — пользовательÑкие, они могут не работать Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ ÑредÑтвами проверки подлинноÑти. There was an error creating the QR code. @@ -8574,11 +9613,11 @@ Kernel: %3 %4 Custom settings: - ПользовательÑкие параметры + Параметры пользователÑ: Custom Settings - ОÑобые наÑтройки + ОÑобые параметры Algorithm: @@ -8595,7 +9634,7 @@ Kernel: %3 %4 sec Seconds - Ñек + Ñек Code size: @@ -8667,26 +9706,6 @@ Example: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Ðачать безопаÑное хранение ваших паролей в базе данных KeePassXC - - Create new database - Создать новую базу данных - - - Open existing database - Открыть имеющуюÑÑ Ð±Ð°Ð·Ñƒ данных - - - Import from KeePass 1 - Импорт из KeePass 1 - - - Import from 1Password - Импорт из 1Password - - - Import from CSV - Импорт из CSV - Recent databases Ðедавние базы данных @@ -8699,6 +9718,18 @@ Example: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Ð’Ð°Ñ Ð¿Ñ€Ð¸Ð²ÐµÑ‚Ñтвует KeePassXC %1 + + Create Database + + + + Open Database + + + + Import File + + WinUtils @@ -8715,34 +9746,11 @@ Example: JBSWY3DPEHPK3PXP Ðевозможно зарегиÑтрировать глобальную горÑчую клавишу - - WindowsHello - - Failed to init KeePassXC crypto. - Ðе удалоÑÑŒ инициализировать криптографию KeePassXC. - - - Failed to encrypt key data. - Ðе удалоÑÑŒ зашифровать данные ключа. - - - Failed to get Windows Hello credential. - Ðе удалоÑÑŒ получить учетные данные Windows Hello. - - - Failed to decrypt key data. - Ðе удалоÑÑŒ раÑшифровать данные ключа. - - YubiKey - - %1 No interface, slot %2 - %1 Без интерфейÑа, Ñлот %2 - General: - Общий: + Общий: Could not find interface for hardware key with serial number %1. Please connect it to continue. @@ -8751,14 +9759,6 @@ Example: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - Перечитать токены - - - Refresh - Обновить - Hardware key slot selection Выбор Ñлота аппаратного ключа @@ -8791,10 +9791,6 @@ Example: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove Вызов-ответ уÑтановлен, нажмите, чтобы изменить или удалить - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>ЕÑли у Ð²Ð°Ñ ÐµÑть <a href="https://www.yubico.com/">YubiKey</a> или <a href="https://onlykey.io">OnlyKey</a>, его можно иÑпользовать Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ безопаÑноÑти.</p><p>Ð”Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ ключа необходимо, чтобы один из его Ñлотов был запрограммирован как <a href="https://www.yubico.com/products/services-software/challenge-response/">вызов-ответ HMAC-SHA1</a>.</p> - Detecting hardware keys… Обнаружение аппаратных ключей... @@ -8803,35 +9799,28 @@ Example: JBSWY3DPEHPK3PXP No hardware keys detected Ðппаратные ключи не обнаружены - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 указан неверный Ñлот — %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] Вызов-ответ - Ñлот %3 - The YubiKey PCSC interface has not been initialized. Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ YubiKey PCSC не был инициализирован. - - Hardware key is currently in use. - Ðппаратный ключ уже иÑпользуетÑÑ. - Could not find or access hardware key with serial number %1. Please present it to continue. Ðе удалоÑÑŒ найти или получить доÑтуп к аппаратному ключу Ñ Ñерийным номером %1. Подключите его Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ. Hardware key is locked or timed out. Unlock or re-present it to continue. - Ðппаратный ключ заблокирован или иÑтек Ñрок его дейÑтвиÑ. Разблокируйте или подключите его повторно, чтобы продолжить. + Ðппаратный ключ заблокирован или иÑтёк Ñрок его дейÑтвиÑ. Разблокируйте или подключите его повторно, чтобы продолжить. Hardware key was not found or is not configured. @@ -8841,6 +9830,21 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 Ðе удалоÑÑŒ завершить вызов-ответ, код ошибки PCSC: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + Ðажать + + + Passive + USB Challenge-Response Key no interaction required + ПаÑÑÐ¸Ð²Ð½Ð°Ñ + YubiKeyInterfaceUSB @@ -8848,14 +9852,6 @@ Example: JBSWY3DPEHPK3PXP Unknown ÐеизвеÑтен - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] ÐаÑтроенный Ñлот - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] Вызов-ответ - Ñлот %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8870,17 +9866,13 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. USB-Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ YubiKey не был инициализирован. - - Hardware key is currently in use. - Ðппаратный ключ уже иÑпользуетÑÑ. - Could not find hardware key with serial number %1. Please plug it in to continue. Ð”Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ подключите аппаратный ключ Ñ Ñерийным номером %1. Hardware key timed out waiting for user interaction. - Тайм-аут аппаратного ключа во Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð´ÐµÐ¹Ñтвий пользователÑ. + Ожидание аппаратного ключа иÑтекло во Ð²Ñ€ÐµÐ¼Ñ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¼. A USB error occurred when accessing the hardware key: %1 @@ -8890,5 +9882,15 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 Ðе удалоÑÑŒ завершить обмен «вызов—ответ»: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_si.ts b/share/translations/keepassxc_si.ts new file mode 100644 index 000000000..7ef5a07af --- /dev/null +++ b/share/translations/keepassxc_si.ts @@ -0,0 +1,9884 @@ + + + AboutDialog + + About KeePassXC + à¶šà·“à¶´à·à·ƒà·Šà¶‘ක්ස්සී à¶œà·à¶± + + + About + පිළිබඳව + + + Report bugs at: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> + දà·à·‚ à·€à·à¶»à·Šà¶­à·à·€: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> + + + KeePassXC is distributed under the terms of the GNU General Public License (GPL) version 2 or (at your option) version 3. + KeePassXC GNU General Public License (GPL) අනුවà·à¶¯à¶º 2 à·„à· (ඔබේ අභිමතය පරිදි) අනුවà·à¶¯à¶º 3 à·„à·’ කොන්දේසි යටතේ බෙද෠හරිනු à¶½à·à¶¶à·š. + + + Project Maintainers: + ව්â€à¶ºà·à¶´à·˜à¶­à·’ය නඩත්තුකරුවන්: + + + Special thanks from the KeePassXC team go to debfx for creating the original KeePassX. + KeePassXC à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·š විà·à·šà·‚ ස්තුතිය මුල් KeePassX නිර්මà·à¶«à¶º කිරීම සඳහ෠debfx වෙත යන්න. + + + Contributors + දà·à¶ºà¶šà¶ºà·’න් + + + <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">See Contributions on GitHub</a> + <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">දà·à¶ºà¶šà¶­à·Šâ€à·€ ගිට්හබ් à·„à·’ බලන්න</a> + + + Debug Info + නිදොස්කරණ තොරතුරු + + + Include the following information whenever you report a bug: + ඔබ දà·à·‚යක් à·€à·à¶»à·Šà¶­à· කරන සෑම විටම à¶´à·„à¶­ තොරතුරු ඇතුළත් කරන්න: + + + Copy to clipboard + පසුරු පුවරුවට à¶´à·’à¶§à¶´à¶­à¶šà·Š + + + + AccessControlDialog + + KeePassXC - Access Request + KeePassXC - à¶´à·Šâ€à¶»à·€à·šà· ඉල්ලීම + + + Non-existing/inaccessible executable path. Please double-check the client is legit. + නොපවතින / à¶´à·Šâ€à¶»à·€à·šà· විය නොහà·à¶šà·’ à¶šà·Šâ€à¶»à·’යà·à¶­à·Šà¶¸à¶š à¶šà·… à·„à·à¶šà·’ මà·à¶»à·Šà¶œà¶º. කරුණà·à¶šà¶» සේවà·à¶¯à·à¶ºà¶šà¶ºà· නීත්â€à¶ºà·à¶±à·”à¶šà·–à¶½ දà·à¶ºà·’ දෙවරක් පරීක්ෂ෠කරන්න. + + + <html><head/><body><p><span style=" font-weight:600;">%1 </span>is requesting access to the following entries:</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">%1 </span>à¶´à·„à¶­ ඇතුළත් කිරීම් සඳහ෠ප්â€à¶»à·€à·šà·à¶º ඉල්ල෠සිටී:</p></body></html> + + + Name + නම + + + PID + PID + + + Executable + ක්රියà·à¶­à·Šà¶¸à¶š à¶šà·… à·„à·à¶šà·’ + + + Command Line + විධà·à¶± රේඛà·à·€ + + + Details + විස්තර + + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + ඉල්ලන සේවà·à¶½à·à¶·à·’ය෠සහ KeePassXC යන දෙකම à¶šà·Šâ€à¶»à·’යà·à¶­à·Šà¶¸à¶š වන à¶šà·à¶½à¶º සඳහ෠ඔබේ තීරණය මතක තබ෠ගනු ඇත. + + + Remember + මතක à¶­à¶¶à·à¶œà¶±à·Šà¶± + + + Allow Selected + තේරීම් සඳහ෠ඉඩදෙන්න + + + Deny All && Future + සියල්ල && à¶…à¶±à·à¶œà¶­à¶º à¶´à·Šâ€à¶»à¶­à·’à¶šà·Šà·‚à·šà¶´ කරන්න + + + Allow All && &Future + සියලු && &à¶…à¶±à·à¶œà¶­à¶ºà¶§ ඉඩ දෙන්න + + + + AccessControlDialog::DenyButton + + Deny for this program + මෙම à·€à·à¶©à·ƒà¶§à·„à¶± සඳහ෠ප්රතික්ෂේප කරන්න + + + + AgentSettingsWidget + + Enable SSH Agent integration + SSH නියà·à¶¢à·’à¶­ අනුකලනය සබල කරන්න + + + Use Pageant + Pageant à¶·à·à·€à·’ත෠කරන්න + + + Use OpenSSH + OpenSSH à¶·à·à·€à·’තය + + + Use both agents + නියà·à¶­ දෙකම à¶·à·à·€à·’තය + + + SSH_AUTH_SOCK override + SSH_AUTH_SOCK අභිබව෠යà·à¶¸ + + + SSH_AUTH_SOCK value + SSH_AUTH_SOCK අගය + + + (empty) + (හිස්) + + + SSH_SK_PROVIDER value + SSH_SK_PROVIDER අගය + + + SSH_SK_PROVIDER override + SSH_SK_PROVIDER අභිබව෠යයි + + + No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. + SSH නියà·à¶¢à·’à¶­ සොකට් නොමà·à¶­. SSH_AUTH_SOCK පරිසර විචල්â€à¶ºà¶ºà¶šà·Š පවතින à¶¶à·€ සහතික à¶šà¶» ගන්න à·„à· à¶´à·Šâ€à¶»à¶­à·’à¶šà·Šâ€à·‚à·šà¶´ කිරීමක් සකසන්න. + + + SSH Agent connection is working! + SSH නියà·à¶¢à·’à¶­ සම්බන්ධතà·à·€à¶º à¶šà·Šâ€à¶»à·’ය෠කරයි! + + + + ApplicationSettingsWidget + + Application Settings + යෙදුමේ à·ƒà·à¶šà·ƒà·”ම් + + + General + à·ƒà·à¶¸à·à¶±à·Šâ€à¶º + + + Security + ආරක්â€à·‚à·à·€ + + + This setting cannot be enabled when minimize on unlock is enabled. + + + + Access error for config file %1 + වින්â€à¶ºà·à·ƒ ගොනුව %1සඳහ෠ප්â€à¶»à·€à·šà· දà·à·‚යකි + + + Icon only + නිරූපකය පමණි + + + Text only + පෙළ පමණි + + + Text beside icon + නිරූපකය අසල පෙළ + + + Text under icon + නිරූපකය යටතේ පෙළ + + + Follow style + à·à·›à¶½à·’ය අනුගමනය කරන්න + + + Monochrome + ඒකවර්ණ + + + Monochrome (light) + ඒකවර්ණ (ආලà·à¶šà¶º) + + + Monochrome (dark) + ඒකවර්ණ (අඳුරු) + + + Colorful + වර්ණවත් + + + You must restart the application to set the new language. Would you like to restart now? + නව à¶·à·à·‚à·à·€ à·ƒà·à¶šà·ƒà·“මට ඔබ යෙදුම à¶±à·à·€à¶­ ආරම්භ à¶šà·… යුතුය. ඔබ දà·à¶±à·Š à¶±à·à·€à¶­ ආරම්භ කිරීමට à¶šà·à¶¸à¶­à·’ද? + + + Reset Settings? + à·ƒà·à¶šà·ƒà·”ම් යළි සකසන්නද? + + + Are you sure you want to reset all general and security settings to default? + ඔබට සියලු à·ƒà·à¶¸à·à¶±à·Šâ€à¶º සහ ආරක්â€à·‚à¶š à·ƒà·à¶šà·ƒà·”ම් පෙරනිමියට යළි පිහිටුවීමට à¶…à·€à·à·Šâ€à¶º à¶¶à·€ විà·à·Šà·€à·à·ƒà¶¯? + + + Select backup storage directory + උපස්ථ ගබඩ෠නà·à¶¸à·à·€à¶½à·’ය à¶­à·à¶»à¶±à·Šà¶± + + + + ApplicationSettingsWidgetGeneral + + Basic Settings + මූලික à·ƒà·à¶šà·ƒà·”ම් + + + Startup + à¶´à¶« ගන්වන්න + + + Start only a single instance of KeePassXC + KeePassXC à·„à·’ à¶‘à¶šà·Š අවස්ථà·à·€à¶šà·Š පමණක් ආරම්භ කරන්න + + + Automatically launch KeePassXC at system startup + පද්ධති ආරම්භයේදී KeePassXC ස්වයංක්â€à¶»à·“යව දියත් කරන්න + + + Minimize window at application startup + යෙදුම් ආරම්භයේදී කවුළුව අවම කරන්න + + + Minimize window after unlocking database + දත්ත සමුදà·à¶º අගුළු à·„à·à¶»à·“මෙන් පසු කවුළුව අවම කරන්න + + + Remember previously used databases + කලින් à¶·à·à·€à·’à¶­à· à¶šà·… දත්ත සමුදà·à¶ºà¶±à·Š මතක තබ෠ගන්න + + + recent files + මෑත ගොනු + + + Load previously open databases on startup + ආරම්භයේදී පෙර විවෘත දත්ත සමුදà·à¶ºà¶±à·Š පූරණය කරන්න + + + Remember database key files and security dongles + දත්ත සමුද෠යතුරු ගොනු සහ ආරක්ෂක ඩොංගල් මතක තබ෠ගන්න + + + Check for updates at application startup once per week + සතියකට වරක් යෙදුම් ආරම්භයේදී යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± සඳහ෠පරීක්ෂ෠කරන්න + + + Include beta releases when checking for updates + යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± සඳහ෠පරීක්ෂ෠කිරීමේදී බීට෠නිකුතු ඇතුළත් කරන්න + + + On database unlock, show entries that + දත්ත සමුදà·à¶º අගුළු à·„à·à¶»à·“මේදී, එම ඇතුළත් කිරීම් පෙන්වන්න + + + have expired + On database unlock, show entries that... + ඉකුත් වී ඇත + + + days + On database unlock, show entries that will expire within %1 days + දවස් + + + will expire within + On database unlock, show entries that... + ඉකුත් වීම + + + File Management + ගොනු කළමනà·à¶šà¶»à¶«à¶º + + + Automatically save after every change + සෑම වෙනස්කමකටම පසු ස්වයංක්â€à¶»à·“යව සුරකින්න + + + Automatically save when locking database + දත්ත සමුදà·à¶º අගුලු දà·à¶¸à·“මේදී ස්වයංක්â€à¶»à·“යව සුරකින්න + + + Automatically save non-data changes when locking database + දත්ත සමුදà·à¶º අගුලු දà·à¶¸à·“මේදී දත්ත නොවන වෙනස්කම් ස්වයංක්â€à¶»à·“යව සුරකින්න + + + Automatically reload the database when modified externally + à¶¶à·à·„ිරව වෙනස් à¶šà·… විට දත්ත සමුදà·à¶º ස්වයංක්â€à¶»à·“යව à¶±à·à·€à¶­ පූරණය කරන්න + + + Backup database file before saving + සුරà·à¶šà·“මට පෙර දත්තසමුදà·à¶º උපස්ථ කරන්න + + + Backup destination + උපස්ථ ස්ථà·à¶±à¶º + + + Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". + දත්ත සමුද෠උපස්ථ ගොනු ස්ථà·à¶±à¶º සඳහන් කරයි. "{DB_FILENAME}" සිදුවීම් දිගුවකින් තොරව සුරකින ලද දත්ත සමුදà·à¶ºà·š ගොනු à¶±à·à¶¸à¶ºà·™à¶±à·Š à¶´à·Šâ€à¶»à¶­à·’ස්ථà·à¶´à¶±à¶º වේ. {TIME:<format>} උපස්ථ à¶šà·à¶½à¶º සමඟ à¶´à·Šâ€à¶»à¶­à·’ස්ථà·à¶´à¶±à¶º වේ, https://doc.qt.io/qt-5/qdatetime.html#toString බලන්න. පෙළ "dd_MM_yyyy_hh-mm-ss"ආකෘතිකරණය කිරීමට පෙරනිමි <format> à¶šà·Š. + + + {DB_FILENAME}.old.kdbx + {DB_FILENAME}.old.kdbx + + + Choose... + à¶­à·à¶»à¶±à·Šà¶±... + + + Use alternative saving method (may solve problems with Dropbox, Google Drive, GVFS, etc.) + විකල්ප ඉතිරි කිරීමේ à¶šà·Šâ€à¶»à¶¸à¶ºà¶šà·Š à¶·à·à·€à·’ත෠කරන්න (à¶©à·Šâ€à¶»à·œà¶´à·Šà¶¶à·œà¶šà·Šà·ƒà·Š, ගූගල් à¶©à·Šâ€à¶»à¶ºà·’ව්, ජීවීඑෆ්එස්, ආදිය සමඟ à¶œà·à¶§à¶½à·” විසඳ෠ගත à·„à·à¶š) + + + Temporary file moved into place + à¶­à·à·€à¶šà·à¶½à·’à¶š ගොනුව ස්ථà·à¶±à¶ºà¶§ ගෙන යන ලදී + + + Directly write to database file (dangerous) + දත්ත සමුද෠ගොනුවට කෙලින්ම ලියන්න (භයà·à¶±à¶š) + + + Entry Management + නිවේà·à·’à¶­ කළමනà·à¶šà¶»à¶«à¶º + + + Use group icon on entry creation + ඇතුල්වීම නිර්මà·à¶«à¶º කිරීමේදී à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š නිරූපකය à¶·à·à·€à·’ත෠කරන්න + + + Minimize when opening a URL + à¶’.à·ƒ.නි. ඇරීමේදී හකුළන්න + + + Hide window when copying to clipboard + පසුරු පුවරුවට à¶´à·’à¶§à¶´à¶­à·Š වන විට කවුළුව සඟවන්න + + + Minimize + හකුළන්න + + + Drop to background + පසුබිමට දමන්න + + + Favicon download timeout: + Favicon à¶¶à·à¶œà·à¶±à·“මේ කල් ඉකුත්වීම: + + + Website icon download timeout in seconds + වෙබ් අඩවි නිරූපකය à¶¶à·à¶œà¶­ කිරීමේ à¶šà·à¶½à¶º à¶­à¶­à·Šà¶´à¶» කිහිපයකින් අවසන් වේ + + + sec + Seconds + à¶­à¶­à·Š. + + + User Interface + පරිà·à·Šâ€à¶»à·“ලක අතුරුමුහුණත + + + Toolbar button style + මෙවලම් තීරු බොත්තම් විලà·à·ƒà¶º + + + Movable toolbar + à¶ à¶‚à¶ à¶½ මෙවලම් තීරුව + + + Language selection + à¶·à·à·‚à·à·€ තේරීම + + + Language: + à¶·à·à·‚à·à·€: + + + (restart program to activate) + (සක්රිය කිරීමට à·€à·à¶©à·ƒà¶§à·„à¶± à¶±à·à·€à¶­ ආරම්භ කරන්න) + + + Toolbar button style: + මෙවලම් තීරු බොත්තම් විලà·à·ƒà¶º: + + + Show passwords in color + + + + Use monospaced font for notes + සටහන් සඳහ෠ඒකපුද්ගල අකුරු à¶·à·à·€à·’ත෠කරන්න + + + Minimize instead of app exit + යෙදුම් පිටවීම වෙනුවට අවම කරන්න + + + Show a system tray icon + පද්ධති à¶­à·à¶§à·’ නිරූපකයක් පෙන්වන්න + + + Tray icon type + à¶­à·à¶§à·’ නිරූපක වර්ගය + + + Tray icon type: + à¶­à·à¶§à·’ නිරූපක වර්ගය: + + + Hide window to system tray when minimized + අවම à¶šà·… විට පද්ධති à¶­à·à¶§à·’යට කවුළුව සඟවන්න + + + Reset settings to default… + à·ƒà·à¶šà·ƒà·”ම් පෙරනිමි…වෙත à¶±à·à·€à¶­ සකසන්න + + + Auto-Type + ස්වයං ලිවීම + + + Use entry title to match windows for global Auto-Type + à¶œà·à¶½à·“ය ස්වයංක්â€à¶»à·“ය වර්ගය සඳහ෠කවුළු à¶œà·à¶½à¶´à·“මට ඇතුල් වීමේ මà·à¶­à·˜à¶šà·à·€ à¶·à·à·€à·’ත෠කරන්න + + + Use entry URL to match windows for global Auto-Type + à¶œà·à¶½à·“ය ස්වයංක්â€à¶»à·“ය වර්ගය සඳහ෠කවුළු à¶œà·à¶½à¶´à·“මට ඇතුළත් කිරීමේ URL à¶·à·à·€à·’ත෠කරන්න + + + Always ask before performing Auto-Type + ස්වයංක්â€à¶»à·“ය ටයිප් කිරීමට පෙර සෑම විටම අසන්න + + + Hide expired entries from Auto-Type + ස්වයංක්â€à¶»à·“ය ටයිප් වෙතින් කල් ඉකුත් වූ ඇතුළත් කිරීම් සඟවන්න + + + Re-lock previously locked database after performing Auto-Type + ස්වයංක්â€à¶»à·“ය ටයිප් කිරීමෙන් පසු කලින් අගුලු දà·à¶¸à·– දත්ත සමුදà·à¶º à¶±à·à·€à¶­ අගුළු දමන්න + + + Auto-Type start delay: + ස්වයංක්â€à¶»à·“ය ටයිප් ආරම්භක à¶´à·Šâ€à¶»à¶¸à·à¶¯à¶º: + + + Global Auto-Type shortcut: + à¶œà·à¶½à·“ය ස්වයං ලිවීමේ කෙටිමග: + + + Auto-type start delay milliseconds + ස්වයංක්â€à¶»à·“ය-වර්ගය ආරම්භය à¶´à·Šâ€à¶»à¶¸à·à¶¯à¶º මිලි à¶­à¶­à·Šà¶´à¶» + + + ms + Milliseconds + à¶­à¶­à·Š. + + + Auto-Type typing delay: + ස්වයං ලිවීමේ à¶´à·Šâ€à¶»à¶¸à·à¶¯à¶º: + + + Global auto-type shortcut + à¶œà·à¶½à·“ය ස්වයං ලිවීමේ කෙටිමග + + + Auto-type character typing delay milliseconds + ස්වයංක්â€à¶»à·“ය à¶…à¶šà·Šà·‚à¶» ටයිප් කිරීම මිලි à¶­à¶­à·Šà¶´à¶» à¶´à·Šâ€à¶»à¶¸à·à¶¯à¶º + + + Remember last typed entry for: + අවසන් වරට ටයිප් à¶šà·… à¶´à·Šâ€à¶»à·€à·šà·à¶º මතක තබ෠ගන්න: + + + + ApplicationSettingsWidgetSecurity + + Timeouts + කල් ඉකුත්වීම් + + + Database lock timeout seconds + දත්ත සමුදà·à¶º අගුලු දà·à¶¸à·“මේ à¶šà·à¶½à¶º අවසන් à¶­à¶­à·Šà¶´à¶» + + + sec + Seconds + à¶­à¶­à·Š. + + + Clear clipboard after + පසුරු පුවරුව මà·à¶šà·“ම + + + Clear search query after + සෙවුම් විමසුම මà·à¶šà·“ම + + + min + Minutes + විනà·. + + + Clipboard clear seconds + ක්ලිප්බà·à¶©à·Š à¶´à·à·„à·à¶¯à·’ලි à¶­à¶­à·Šà¶´à¶» + + + Lock databases after inactivity of + à¶…à¶šà·Šâ€à¶»à·’ය වීමෙන් පසු දත්ත සමුදà·à¶ºà¶±à·Š අගුළු දමන්න + + + Convenience + පහසුව + + + Enable database quick unlock (Touch ID / Windows Hello) + දත්ත සමුදà·à¶º ඉක්මන් අගුලු à·„à·à¶»à·“ම සබල කරන්න (ස්පර්෠හà·à¶³à·”නුම්පත / වින්ඩà·à·ƒà·Š හෙලà·) + + + Lock databases when session is locked or lid is closed + à·ƒà·à·ƒà·’ය අගුලු දම෠ඇති විට හ෠පියන වස෠ඇති විට දත්ත සමුදà·à¶ºà¶±à·Š අගුළු දමන්න + + + Lock databases after minimizing the window + කවුළුව අවම කිරීමෙන් පසු දත්ත සමුදà·à¶ºà¶±à·Š අගුළු දමන්න + + + Require password repeat when it is visible + එය දෘà·à·Šâ€à¶ºà¶¸à·à¶± වන විට මුරපද පුනරà·à·€à¶»à·Šà¶­à¶±à¶º à¶…à·€à·à·Šâ€à¶º වේ + + + Hide passwords when editing them + මුරපද සංස්කරණය කිරීමේදී ඒව෠සඟවන්න + + + Use placeholder for empty password fields + හිස් මුරපද à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» සඳහ෠ස්ථà·à¶± දරණ à¶·à·à·€à·’ත෠කරන්න + + + Hide passwords in the entry preview panel + ඇතුල්වීමේ පෙරදසුන් à¶´à·à¶±à¶½à¶ºà·š මුරපද සඟවන්න + + + Hide entry notes by default + à¶´à·Šâ€à¶»à·€à·šà· සටහන් පෙරනිමියෙන් සඟවන්න + + + Move entries to recycle bin without confirmation + තහවුරු කිරීමකින් තොරව ඇතුළත් කිරීම් à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණ බඳුනට ගෙන යන්න + + + Enable double click to copy the username/password entry columns + පරිà·à·“ලක à¶±à·à¶¸à¶º/මුරපද ඇතුළත් කිරීමේ තීරු à¶´à·’à¶§à¶´à¶­à·Š කිරීමට ද්විත්ව ක්ලික් කිරීම සබල කරන්න + + + Privacy + රහස්â€à¶ºà¶­à·à·€ + + + Use DuckDuckGo service to download website icons + වෙබ් අඩවි අයිකන à¶¶à·à¶œà·à¶±à·“මට DuckDuckGo සේවà·à·€ à¶·à·à·€à·’ත෠කරන්න + + + Hide TOTP in the entry preview panel + + + + + AutoType + + The requested Auto-Type sequence cannot be used due to an error: + දà·à·‚යක් හේතුවෙන් ඉල්ල෠ඇති ස්වයංක්â€à¶»à·“ය-වර්ග අනුපිළිවෙල à¶·à·à·€à·’à¶­à· à¶šà·… නොහà·à¶š: + + + Auto-Type Error + ස්වයං ලිවීමේ දà·à·‚යකි + + + Permission Required + අවසරය à¶…à·€à·à·Šâ€à¶ºà¶ºà·’ + + + KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. + à¶´à·Šâ€à¶»à·€à·šà· මට්ටමේ ස්වයංක්â€à¶»à·“ය වර්ගය සිදු කිරීම සඳහ෠KeePassXC à·„à¶§ à¶´à·Šâ€à¶»à·€à·šà·à·Šâ€à¶ºà¶­à· අවසරය à¶…à·€à·à·Šâ€à¶º වේ. ඔබ දà·à¶±à¶§à¶¸à¶­à·Š අවසර ලබ෠දී ඇත්නම්, ඔබට KeePassXC à¶±à·à·€à¶­ ආරම්භ කිරීමට සිදු විය à·„à·à¶š. + + + KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. + à¶œà·à¶½à·“ය ස්වයංක්â€à¶»à·“ය වර්ගය සිදු කිරීම සඳහ෠KeePassXC à·„à¶§ à¶´à·Šâ€à¶»à·€à·šà·à·Šâ€à¶ºà¶­à· සහ à¶­à·’à¶» රෙකà·à¶©à¶» අවසරය à¶…à·€à·à·Šâ€à¶º වේ. ඇතුළත් කිරීම් සොය෠ගà·à¶±à·“මට කවුළු මà·à¶­à·˜à¶šà·à·€ à¶·à·à·€à·’ත෠කිරීමට à¶­à·’à¶» පටිගත කිරීම à¶…à·€à·à·Šâ€à¶º වේ. ඔබ දà·à¶±à¶§à¶¸à¶­à·Š අවසර ලබ෠දී ඇත්නම්, ඔබට KeePassXC à¶±à·à·€à¶­ ආරම්භ කිරීමට සිදු විය à·„à·à¶š. + + + Invalid entry provided + à·ƒà·à¶´à¶ºà·– නිවේà·à·’තය වලංගු නොවේ + + + Bracket imbalance detected, found extra { or } + වරහන් අසමතුලිතතà·à·€ à¶…à¶±à·à·€à¶»à¶«à¶º විය, අමතර { or }à¶šà·Š සොය෠ගන්න෠ලදී + + + Too many repetitions detected, max is %1: %2 + බොහ෠පුනරà·à·€à¶»à·Šà¶­à¶± à¶…à¶±à·à·€à¶»à¶«à¶º වී ඇත, උපරිමය %1: %2වේ + + + Very slow key press detected, max is %1: %2 + ඉත෠මන්දගà·à¶¸à·“ යතුරු එබීම à¶…à¶±à·à·€à¶»à¶«à¶º විය, උපරිමය %1: %2වේ + + + Very long delay detected, max is %1: %2 + ඉත෠දිගු à¶´à·Šâ€à¶»à¶¸à·à¶¯à¶ºà¶šà·Š à¶…à¶±à·à·€à¶»à¶«à¶º විය, උපරිමය %1: %2වේ + + + Entry does not have attribute for PICKCHARS: %1 + à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶§ PICKCHARS සඳහ෠ගුණà·à¶‚à¶œ නොමà·à¶­: %1 + + + Invalid conversion type: %1 + වලංගු නොවන පරිවර්තන වර්ගය: %1 + + + Invalid conversion syntax: %1 + අවලංගු පරිවර්තන à·€à·à¶šà·Šâ€à¶º ඛණ්ඩය: %1 + + + Invalid regular expression syntax %1 +%2 + වලංගු නොවන නිත්â€à¶º à¶´à·Šâ€à¶»à¶šà·à·à¶± à·€à·à¶šà·Šâ€à¶º ඛණ්ඩ %1 +%2 + + + Invalid placeholder: %1 + වලංගු නොවන ස්ථà·à¶± දරණ: %1 + + + + AutoTypeAssociationsModel + + Window + කවුළුව + + + Sequence + අනුපිළිවෙල + + + (empty) + (හිස්) + + + Default sequence + පෙරනිමි අනුපිළිවෙල + + + + AutoTypeMatchModel + + Group + සමූහය + + + Title + සිරà·à·ƒà·’ය + + + Username + පරිà·à·“ලක à¶±à·à¶¸à¶º + + + Sequence + අනුපිළිවෙල + + + + AutoTypePlatformX11 + + Trying to send invalid keysym. + වලංගු නොවන යතුරු පදයක් යà·à·€à·“මට à¶‹à¶­à·Šà·ƒà·à·„ කරමින්. + + + Sequence aborted: Caps Lock is on + අනුපිළිවෙල ගබ්ස෠විය: Caps Lock à¶šà·Šâ€à¶»à·’යà·à¶­à·Šà¶¸à¶šà¶ºà·’ + + + Sequence aborted: Modifier keys held by user + අනුපිළිවෙල ගබ්ස෠කරන ලදී: පරිà·à·“ලකය෠සතුව ඇති විකරණයක යතුරු + + + Unable to get valid keycode for key: + යතුර සඳහ෠වලංගු යතුරු කේතය ලබ෠ගත නොහà·à¶š: + + + + AutoTypeSelectDialog + + Auto-Type - KeePassXC + ස්වයං ලිවීම - KeePassXC + + + Double click a row to perform Auto-Type or find an entry using the search: + ස්වයංක්â€à¶»à·“ය ටයිප් කිරීමට හ෠සෙවුම à¶·à·à·€à·’තයෙන් à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶šà·Š සොය෠ගà·à¶±à·“මට පේළියක් දෙවරක් ක්ලික් කරන්න: + + + <p>You can use advanced search queries to find any entry in your open databases. The following shortcuts are useful:<br/> +Ctrl+F - Toggle database search<br/> +Ctrl+1 - Type username<br/> +Ctrl+2 - Type password<br/> +Ctrl+3 - Type TOTP<br/> +Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> + <p>ඔබට ඔබගේ විවෘත දත්ත සමුදà·à¶ºà·š ඇති ඕනෑම à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶šà·Š සොය෠ගà·à¶±à·“මට උසස් සෙවුම් විමසුම් à¶·à·à·€à·’à¶­à· à¶šà·… à·„à·à¶š. à¶´à·„à¶­ කෙටිමං à¶´à·Šâ€à¶»à¶ºà·à¶¢à¶±à·€à¶­à·Š වේ:<br/> +Ctrl+F - දත්ත සමුද෠සෙවීම ටොගල් කරන්න<br/> +Ctrl+1 - පරිà·à·“ලක à¶±à·à¶¸à¶º ටයිප් කරන්න<br/> +Ctrl+2 - මුරපදය ටයිප් කරන්න<br/> +Ctrl+3 - ටයිප් කරන්න TOTP<br/> +Ctrl+4 - Virtual Keyboard à¶·à·à·€à·’ත෠කරන්න (Wind පමණි)</p> + + + Search all open databases + විවෘත සියළු දත්තසමුද෠සොයන්න + + + Search… + සොයන්න… + + + Type Sequence + අනුපිළිවෙල ටයිප් කරන්න + + + Cancel + අවලංගු + + + Type {USERNAME} + {USERNAME}වර්ගය + + + Type {PASSWORD} + {PASSWORD}වර්ගය + + + Type {TOTP} + {TOTP}වර්ගය + + + Copy Username + පරිà·à·“ලක à¶±à·à¶¸à¶ºà·š à¶´à·’à¶§à¶´à¶­à¶šà·Š + + + Copy Password + මුරපදයේ à¶´à·’à¶§à¶´à¶­à¶šà·Š + + + Copy TOTP + TOTP à¶´à·’à¶§à¶´à¶­à¶šà·Š + + + Use Virtual Keyboard + අතථ්â€à¶º යතුරුපුවරුව à¶·à·à·€à·’තය + + + + BrowserAccessControlDialog + + KeePassXC - Browser Access Request + KeePassXC - අතිරික්සුවට à¶´à·Šâ€à¶»à·€à·šà·à¶º ඉල්ලීම + + + %1 is requesting access to the following entries: + %1 à¶´à·„à¶­ ඇතුළත් කිරීම් සඳහ෠ප්â€à¶»à·€à·šà·à¶º ඉල්ල෠සිටී: + + + Remember access to checked entries + පරීක්ෂ෠කළ ඇතුළත් කිරීම් වෙත à¶´à·Šâ€à¶»à·€à·šà·à¶º මතක තබ෠ගන්න + + + Remember + මතක à¶­à¶¶à·à¶œà¶±à·Šà¶± + + + Allow access to entries + නිවේà·à·’à¶­ වෙත à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶§ ඉඩදෙන්න + + + Allow Selected + තේරීම් සඳහ෠ඉඩදෙන්න + + + Deny All + සියල්ල à¶´à·Šâ€à¶»à¶­à·’à¶šà·Šà·‚à·šà¶´ කරන්න + + + Disable for this site + මෙම අඩවියට à¶…à¶¶à¶½ කරන්න + + + Undo + + + + + BrowserEntrySaveDialog + + Ok + හරි + + + Cancel + අවලංගු + + + You have multiple databases open. +Please select the correct database for saving credentials. + ඔබට à¶¶à·„à·” දත්ත සමුදà·à¶ºà¶±à·Š විවෘතව ඇත. +කරුණà·à¶šà¶» à¶…à¶šà·Šà¶­à¶´à¶­à·Šâ€à¶» සුරà·à¶šà·“මට නිවà·à¶»à¶¯à·’ දත්ත සමුදà·à¶º à¶­à·à¶»à¶±à·Šà¶±. + + + KeePassXC - Select Database + + + + + BrowserPasskeysConfirmationDialog + + Cancel + අවලංගු කරන්න + + + Update + + + + Authenticate + + + + Register new + + + + Register + + + + Timeout in <b>%n</b> seconds... + + + + Do you want to register Passkey for: + + + + Existing Passkey found. +Do you want to register a new Passkey for: + + + + Select the existing Passkey and press Update to replace it. + + + + Authenticate Passkey credentials for: + + + + Relying Party: %1 + + + + Username: %1 + + + + KeePassXC - Passkey credentials + + + + + BrowserService + + A request for creating a new group "%1" has been received. +Do you want to create this group? + + නව à¶šà¶«à·Šà¶©à·à¶ºà¶¸à¶šà·Š "%1" නිර්මà·à¶«à¶º කිරීම සඳහ෠ඉල්ලීමක් à¶½à·à¶¶à·“ ඇත. +ඔබට මෙම à¶šà¶«à·Šà¶©à·à¶ºà¶¸ නිර්මà·à¶«à¶º කිරීමට à¶…à·€à·à·Šâ€à¶ºà¶¯? + + + + You have received an association request for the following database: +%1 + +Give the connection a unique name or ID, for example: +chrome-laptop. + ඔබට à¶´à·„à¶­ දත්ත සමුදà·à¶º සඳහ෠සංගම් ඉල්ලීමක් à¶½à·à¶¶à·“ ඇත: +%1 + +සම්බන්ධතà·à·€à¶ºà¶§ අනන්â€à¶º නමක් à·„à· à·„à·à¶³à·”නුම්පතක් දෙන්න, උදà·à·„රණයක් ලෙස: +chrome-laptop. + + + Save and allow access + සුරකින්න à·„à· à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶§ ඉඩදෙන්න + + + A shared encryption key with the name "%1" already exists. +Do you want to overwrite it? + "%1" නම සහිත හවුල් සංකේතà·à¶‚à¶šà¶± යතුරක් දà·à¶±à¶§à¶¸à¶­à·Š පවතී. +ඔබට එය උඩින් ලිවීමට à¶…à·€à·à·Šâ€à¶ºà¶¯? + + + Do you want to update the information in %1 - %2? + ඔබට %1 - %2තුළ තොරතුරු යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± කිරීමට à¶…à·€à·à·Šâ€à¶ºà¶¯? + + + A request for deleting entry "%1" has been received. +Do you want to delete the entry? + + "%1" à¶´à·Šâ€à¶»à·€à·šà·à¶º මක෠දà·à¶¸à·“ම සඳහ෠ඉල්ලීමක් à¶½à·à¶¶à·“ ඇත. +ඔබට à¶´à·Šâ€à¶»à·€à·šà·à¶º මක෠දà·à¶¸à·“මට à¶…à·€à·à·Šâ€à¶ºà¶¯? + + + + %1 (Passkey) + + + + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + + + + KeePassXC - Create a new group + + + + Disable + අක්රිය කරන්න + + + KeePassXC - Overwrite existing key? + + + + KeePassXC - Update Passkey + + + + KeePassXC - Update Entry + + + + KeePassXC - Delete entry + + + + KeePassXC - New key association request + + + + Passkey + + + + + BrowserSettingsWidget + + Dialog + ඩයලොග් + + + This is required for accessing your databases with KeePassXC-Browser + KeePassXC-Browser සමඟින් ඔබගේ දත්ත සමුදà·à¶ºà¶±à·Š වෙත à¶´à·Šâ€à¶»à·€à·šà· වීමට මෙය à¶…à·€à·à·Šâ€à¶º වේ + + + Enable browser integration + අතිරික්සු අනුකලනය සබල කරන්න + + + General + à·ƒà·à¶¸à·à¶±à·Šâ€à¶º + + + Browsers installed as snaps are currently not supported. + ස්නà·à¶´à·Š ලෙස ස්ථà·à¶´à¶±à¶º à¶šà¶» ඇති à¶¶à·Šâ€à¶»à·€à·Šà·ƒà¶»à·Š දà·à¶±à¶§ සහය නොදක්වයි. + + + Enable integration for these browsers: + මෙම à¶¶à·Šâ€à¶»à·€à·Šà·ƒà¶»à·Š සඳහ෠ඒකà·à¶¶à¶¯à·Šà¶° කිරීම සබල කරන්න: + + + Vivaldi + විවà·à¶½à·Šà¶©à·’ + + + &Edge + &එඩ්ගේ + + + Firefox + ෆයර්ෆොක්ස් + + + Tor Browser + à¶§à·à¶»à·Š අතිරික්සුව + + + Brave + à¶¶à·Šâ€à¶»à·šà·€à·Š + + + Google Chrome + ගූගල් à¶šà·Šâ€à¶»à·à¶¸à·Š + + + Chromium + à¶šà·Šâ€à¶»à·à¶¸à·’යම් + + + Show a notification when credentials are requested + Credentials mean login data requested via browser extension + à¶…à¶šà·Šà¶­à¶´à¶­à·Šâ€à¶» ඉල්ල෠සිටින විට දà·à¶±à·”ම්දීමක් පෙන්වන්න + + + Request to unlock the database if it is locked + දත්ත සමුදà·à¶º අගුලු දම෠ඇත්නම් එය අගුළු ඇරීමට ඉල්ලීම + + + Only entries with the same scheme (http://, https://, …) are returned. + එකම යà·à¶¢à¶±à· à¶šà·Šâ€à¶»à¶¸à¶º සහිත ඇතුළත් කිරීම් පමණක් (http://, https://, …) ආපසු ලබ෠දෙනු à¶½à·à¶¶à·š. + + + Match URL scheme (e.g., https://example.com) + à¶œà·à¶½à¶´à·™à¶± URL යà·à¶¢à¶±à· à¶šà·Šâ€à¶»à¶¸à¶º (උදà·, https://example.com) + + + Only returns the best matches for a specific URL instead of all entries for the whole domain. + සම්පූර්ණ වසම සඳහ෠සියලුම ඇතුළත් කිරීම් වෙනුවට නිà·à·Šà¶ à·’à¶­ URL සඳහ෠හොඳම à¶œà·à¶½à¶´à·“ම් පමණක් ලබ෠දෙයි. + + + Return only best-matching credentials + හොඳම à¶œà·à¶½à¶´à·™à¶± à¶…à¶šà·Šà¶­à¶´à¶­à·Šâ€à¶» පමණක් ආපසු දෙන්න + + + Returns expired credentials. String [expired] is added to the title. + කල් ඉකුත් වූ à¶…à¶šà·Šà¶­à¶´à¶­à·Šâ€à¶» ආපසු ලබ෠දෙයි. මà·à¶­à·˜à¶šà·à·€à¶§ [expired] String à¶‘à¶šà¶­à·” à¶šà¶» ඇත. + + + Allow returning expired credentials + කල් ඉකුත් වූ à¶…à¶šà·Šà¶­à¶´à¶­à·Šâ€à¶» ආපසු ලබ෠දීමට ඉඩ දෙන්න + + + All databases connected to the extension will return matching credentials. + දිගුවට සම්බන්ධ සියලුම දත්ත සමුදà·à¶ºà¶±à·Š à¶œà·à¶½à¶´à·™à¶± à¶…à¶šà·Šà¶­à¶´à¶­à·Šâ€à¶» ලබ෠දෙනු ඇත. + + + Search in all opened databases for matching credentials + Credentials mean login data requested via browser extension + à¶œà·à¶½à¶´à·™à¶± à¶…à¶šà·Šà¶­à¶´à¶­à·Šâ€à¶» සඳහ෠විවෘත à¶šà¶» ඇති සියලුම දත්ත සමුදà·à¶ºà¶±à·Š තුළ සොයන්න + + + Advanced + à·€à·à¶©à·’දුර + + + Never ask before accessing credentials + Credentials mean login data requested via browser extension + à¶…à¶šà·Šà¶­à¶´à¶­à·Šâ€à¶»à·€à¶½à¶§ à¶´à·Šâ€à¶»à·€à·šà· වීමට පෙර කිසිවිටෙක අසන්න à¶‘à¶´à· + + + Never ask before updating credentials + Credentials mean login data requested via browser extension + à¶…à¶šà·Šà¶­à¶´à¶­à·Šâ€à¶» යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± කිරීමට පෙර කිසි විටෙකත් අසන්න à¶‘à¶´à· + + + Do not ask permission for HTTP Basic Auth + An extra HTTP Basic Auth setting + HTTP Basic Auth සඳහ෠අවසර ඉල්ලන්න à¶‘à¶´à· + + + Automatically creating or updating string fields is not supported. + තන්තු à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» ස්වයංක්â€à¶»à·“යව සෑදීම හ෠යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± කිරීම සඳහ෠සහය නොදක්වයි. + + + Return advanced string fields which start with "KPH: " + "KPH: "න් ආරම්භ වන උසස් පෙළ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» ආපසු දෙන්න + + + Don't display the popup suggesting migration of legacy KeePassHTTP settings. + à¶´à·à¶»à¶«à·’'à·ƒà·à¶šà·ƒà·”ම් සංක්â€à¶»à¶¸à¶«à¶º යà·à¶¢à¶±à· කරන à¶‹à¶­à·Šà¶´à¶­à¶± සංදර්à·à¶±à¶º නොකරන්න. + + + Do not prompt for KeePassHTTP settings migration. + KeePassHTTP à·ƒà·à¶šà·ƒà·”ම් සංක්â€à¶»à¶¸à¶«à¶º සඳහ෠විමසන්න à¶‘à¶´à·. + + + Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup. + KeePassXC à·„à· Keepassxc-proxy ද්විමය මà·à¶»à·Šà¶œà¶º ස්වයංක්â€à¶»à·“යව ස්වදේà·à·“ය පණිවිඩ යà·à·€à·“මේ ස්ක්â€à¶»à·’à¶´à·Šà¶§à·Š වෙත ආරම්භයේදී යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± කරයි. + + + Update native messaging manifest files at startup + ආරම්භයේදී ස්වදේà·à·“ය පණිවිඩකරණ මà·à¶±à·’ෆෙස්ට් ගොනු යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± කරන්න + + + Use a custom proxy location if you installed a proxy manually. + ඔබ අතින් à¶´à·Šâ€à¶»à·œà¶šà·Šà·ƒà·’යක් ස්ථà·à¶´à¶±à¶º à¶šà¶» ඇත්නම් අභිරුචි à¶´à·Šâ€à¶»à·œà¶šà·Šà·ƒà·’ ස්ථà·à¶±à¶ºà¶šà·Š à¶·à·à·€à·’ත෠කරන්න. + + + Use a custom proxy location: + Meant is the proxy for KeePassXC-Browser + අභිරුචි à¶´à·Šâ€à¶»à·œà¶šà·Šà·ƒà·’ ස්ථà·à¶±à¶ºà¶šà·Š à¶·à·à·€à·’ත෠කරන්න: + + + Custom proxy location field + අභිරුචි à¶´à·Šâ€à¶»à·œà¶šà·Šà·ƒà·’ ස්ථà·à¶± à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶º + + + Browser for custom proxy file + අභිරුචි à¶´à·Šâ€à¶»à·œà¶šà·Šà·ƒà·’ ගොනුව සඳහ෠බ්â€à¶»à·€à·Šà·ƒà¶»à¶º + + + Browse… + Button for opening file dialog + පිරික්සන්න... + + + Use a custom browser configuration location: + අභිරුචි à¶¶à·Šâ€à¶»à·€à·”සර වින්â€à¶ºà·à·ƒ කිරීමේ ස්ථà·à¶±à¶ºà¶šà·Š à¶·à·à·€à·’ත෠කරන්න: + + + Browser type: + à¶¶à·Šâ€à¶»à·€à·”සර වර්ගය: + + + Toolbar button style + මෙවලම් තීරු බොත්තම් විලà·à·ƒà¶º + + + Config Location: + මà·à¶±à¶šà¶»à¶± ස්ථà·à¶±à¶º: + + + Custom browser location field + අභිරුචි à¶¶à·Šâ€à¶»à·€à·”සර ස්ථà·à¶± à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶º + + + Browse for custom browser path + අභිරුචි à¶¶à·Šâ€à¶»à·€à·Šà·ƒà¶»à·Š මà·à¶»à·Šà¶œà¶º සඳහ෠බ්â€à¶»à·€à·”ස් කරන්න + + + Custom extension ID: + අභිරුචි දිගු ID: + + + Custom extension ID + අභිරුචි දිගු ID + + + Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 + Snap sandboxing හේතුවෙන්, ඔබ à¶¶à·Šâ€à¶»à·€à·”සර à¶’à¶šà·à¶¶à¶¯à·Šà¶° කිරීම සබල කිරීමට ස්ක්â€à¶»à·’à¶´à·Šà¶§à·Š à¶‘à¶šà¶šà·Š à¶°à·à·€à¶±à¶º à¶šà·… යුතුය.<br />ඔබට මෙම ස්ක්â€à¶»à·’à¶´à·Šà¶§à·Š à¶‘à¶š %1වෙතින් ලබà·à¶œà¶­ à·„à·à¶š + + + KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2 and %3. %4 + KeePassXC-Browser à¶šà·Šâ€à¶»à·’ය෠කිරීමට à¶¶à·Šâ€à¶»à·€à·”සර à¶’à¶šà·à¶¶à¶¯à·Šà¶° කිරීම සඳහ෠අවà·à·Šâ€à¶º වේ. <br />එය %1 සහ %2 සහ %3සඳහ෠බà·à¶œà¶±à·Šà¶±. %4 + + + Please see special instructions for browser extension use below + කරුණà·à¶šà¶» à¶´à·„à¶­ à¶¶à·Šâ€à¶»à·€à·”සර දිගු à¶·à·à·€à·’තය සඳහ෠විà·à·šà·‚ උපදෙස් බලන්න + + + Executable Files + à¶šà·Šâ€à¶»à·’යà·à¶­à·Šà¶¸à¶š à¶šà·… à·„à·à¶šà·’ ගොනු + + + All Files + සියළුම ගොනු + + + Select custom proxy location + අභිරුචි à¶´à·Šâ€à¶»à¶­à·’යුක්ත ස්ථà·à¶±à¶º à¶­à·à¶»à¶±à·Šà¶± + + + Select native messaging host folder location + ස්වදේà·à·“ය පණිවිඩ à¶°à·à¶»à¶š à·†à·à¶½à·Šà¶©à¶» ස්ථà·à¶±à¶º à¶­à·à¶»à¶±à·Šà¶± + + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + + + + <b>Warning:</b> Only adjust these settings if necessary. + + + + The custom proxy location does not exist. + + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + + + + CloneDialog + + Clone Entry Options + à¶šà·Šà¶½à·à¶± ඇතුළත් කිරීමේ විකල්ප + + + Append ' - Clone' to title + මà·à¶­à·˜à¶šà·à·€à¶§ ' - à¶šà·Šà¶½à·à¶±' à¶‘à¶šà¶­à·” කරන්න + + + Replace username and password with references + පරිà·à·“ලක à¶±à·à¶¸à¶º සහ මුරපදය යොමු සමඟ à¶´à·Šâ€à¶»à¶­à·’ස්ථà·à¶´à¶±à¶º කරන්න + + + Copy history + ඉතිහà·à·ƒà¶ºà·š à¶´à·’à¶§à¶´à¶­à¶šà·Š + + + + CsvImportWidget + + size, rows, columns + à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º, à¶´à·šà·…à·’, තීරු + + + Column Association + තීරු සංගමය + + + Password + මුරපදය + + + Username + පරිà·à·“ලක à¶±à·à¶¸à¶º + + + Title + සිරà·à·ƒà·’ය + + + Group + සමූහය + + + URL + à¶’.à·ƒ.නි. + + + Notes + සටහන් + + + TOTP + TOTP + + + Created + සෑදිණි + + + Last Modified + අවසà·à¶± සංà·à·™à·à·Šà¶°à¶±à¶º + + + Icon + නිරූපකය + + + Encoding + කේතනය + + + Codec + à¶šà·à¶©à·™à¶šà·Š + + + Text is qualified by + පෙළ සුදුසුකම් ලබ෠ඇත + + + Text qualification + පෙළ සුදුසුකම් + + + Fields are separated by + à¶šà·Šà·‚à·šà¶­à·Šà¶» වෙන් කරනු à¶½à·à¶¶à·š + + + Field separation + à¶šà·Šà·‚à·šà¶­à·Šà¶» වෙන් කිරීම + + + Comments start with + අදහස් ආරම්භ වේ + + + Header lines skipped + à·à·“ර්ෂ රේඛ෠මඟ à·„à·à¶»à·’à¶«à·’ + + + Number of header lines to discard + ඉවත දà·à¶¸à·’ය යුතු à·à·“ර්ෂ රේඛ෠ගණන + + + First line has field names + පළමු පේළියේ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» à¶±à·à¶¸ ඇත + + + Consider '\' an escape character + '\' à¶œà·à¶½à·€à·“මේ අක්ෂරයක් ලෙස සලකන්න + + + Preview + පෙරදසුන + + + CSV import preview + CSV ආයà·à¶­ පෙරදසුන + + + Not Present + à¶´à·à¶¸à·’à¶« à¶±à·à¶­ + + + Column %1 + තීරුව %1 + + + [%n more message(s) skipped] + [à¶­à·€ පණිවිඩ%n à¶šà·Š මඟ à·„à·à¶»à·’à¶«à·’][à¶­à·€ පණිවිඩ%n à¶šà·Š මඟ à·„à·à¶»à·’à¶«à·’] + + + Failed to parse CSV file: %1 + + + + Imported from CSV file: %1 + + + + + CsvParserModel + + %n row(s) + CSV row count + à¶´à·šà·…à·’ %nà¶´à·šà·…à·’ %n + + + %n column(s) + CSV column count + තීරු %nතීරු %n + + + + Database + + Passwords + Root group name + මුරපද + + + File %1 does not exist. + %1 ගොනුව නොපවතී. + + + Unable to open file %1. + %1 ගොනුව ඇරීමට නොහà·à¶šà·’ය. + + + Error while reading the database: %1 + දත්තසමුදà·à¶º කියවීමේදී දà·à·‚යකි: %1 + + + Could not save, database does not point to a valid file. + සුරà·à¶šà·“මට නොහà·à¶šà·’ විය, දත්ත සමුදà·à¶º වලංගු ගොනුවකට යොමු නොවේ. + + + Database save is already in progress. + දත්ත සමුදà·à¶º සුරà·à¶šà·“ම දà·à¶±à¶§à¶¸à¶­à·Š සිදු වෙමින් පවතී. + + + Could not save, database has not been initialized! + සුරà·à¶šà·“මට නොහà·à¶šà·’ විය, දත්ත සමුදà·à¶º ආරම්භ à¶šà¶» නොමà·à¶­! + + + Database file has unmerged changes. + දත්ත සමුද෠ගොනුව à¶’à¶šà·à¶¶à¶¯à·Šà¶° නොකළ වෙනස්කම් ඇත. + + + %1 +Backup database located at %2 + %1 +උපස්ථ දත්ත සමුදà·à¶º %2à·„à·’ පිහිට෠ඇත + + + Key not transformed. This is a bug, please report it to the developers. + යතුර පරිවර්තනය à¶šà¶» à¶±à·à¶­. මෙය දà·à·‚යකි, කරුණà·à¶šà¶» එය සංවර්ධකයන්ට à·€à·à¶»à·Šà¶­à· කරන්න. + + + Recycle Bin + à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණ බඳුන + + + + DatabaseOpenDialog + + Unlock Database - KeePassXC + දත්ත සමුදà·à¶º අගුළු හරින්න - KeePassXC + + + + DatabaseOpenWidget + + Unlock KeePassXC Database + KeePassXC දත්ත සමුදà·à¶º අගුළු හරින්න + + + Enter Password: + මුරපදය ඇතුළත් කරන්න: + + + Password field + මුරපද à¶šà·Šâ€à·‚à·šà¶­à·Šâ€à¶»à¶º + + + Hardware key slot selection + දෘඪà·à¶‚à¶œ යතුරු තව් à¶­à·à¶»à·à¶œà·à¶±à·“ම + + + Key file to unlock the database + දත්ත සමුදà·à¶º අගුළු ඇරීමට යතුරු ගොනුව + + + Browse for key file + යතුරු ගොනුව සඳහ෠බ්â€à¶»à·€à·”ස් කරන්න + + + Browse… + පිරික්සන්න... + + + Unlock Database + දත්තසමුදà·à¶º අගුළු හරින්න + + + Cancel + අවලංගු + + + Unlock + අගුළු හරින්න + + + Please present or touch your YubiKey to continue… + …ඉදිරියට යà·à¶¸à¶§ කරුණà·à¶šà¶» ඔබේ YubiKey ඉදිරිපත් කරන්න හ෠ස්පර්෠කරන්න + + + Database Version Mismatch + දත්ත සමුදà·à¶º අනුවà·à¶¯ නොගà·à¶½à¶´à·“ම + + + The database you are trying to open was most likely +created by a newer version of KeePassXC. + +You can try to open it anyway, but it may be incomplete +and saving any changes may incur data loss. + +We recommend you update your KeePassXC installation. + ඔබ විවෘත කිරීමට à¶‹à¶­à·Šà·ƒà·à·„ කරන දත්ත සමුදà·à¶º බොහ෠විට KeePassXC à·„à·’ නව අනුවà·à¶¯à¶ºà¶šà·Š විසින් නිර්මà·à¶«à¶º කරන ලද +විය à·„à·à¶šà·’ය. + +ඔබට එය කෙසේ හ෠විවෘත කිරීමට à¶‹à¶­à·Šà·ƒà·à·„ à¶šà·… à·„à·à¶š, නමුත් එය අසම්පූර්ණ +විය à·„à·à¶šà·’ à¶…à¶­à¶» යම් වෙනස්කම් සුරà·à¶šà·“මෙන් දත්ත අහිමි විය à·„à·à¶š. + +ඔබගේ KeePassXC ස්ථà·à¶´à¶±à¶º යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± කිරීමට à¶…à¶´à·’ නිර්දේ෠කරමු. + + + Open database anyway + කෙසේ හ෠දත්ත සමුදà·à¶º විවෘත කරන්න + + + Database unlock canceled. + දත්ත සමුදà·à¶º අගුලු à·„à·à¶»à·“ම අවලංගු කරන ලදී. + + + Unlock failed and no password given + අගුලු à·„à·à¶»à·“ම à¶…à·ƒà·à¶»à·Šà¶®à¶š වූ à¶…à¶­à¶» මුරපදයක් ලබ෠දී නොමà·à¶­ + + + Unlocking the database failed and you did not enter a password. +Do you want to retry with an "empty" password instead? + +To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. + දත්ත සමුදà·à¶º අගුළු à·„à·à¶»à·“ම à¶…à·ƒà·à¶»à·Šà¶®à¶š වූ à¶…à¶­à¶» ඔබ මුරපදයක් ඇතුළත් නොකළේය. +ඔබට à¶’ වෙනුවට හිස් "මුරපදයක් සමඟ à¶±à·à·€à¶­ à¶‹à¶­à·Šà·ƒà·à·„ කිරීමට" ? + +මෙම දà·à·‚ය දිස්වීම à·€à·à·…à·à¶šà·Šà·€à·“ම සඳහà·, ඔබ "දත්ත සමුද෠සà·à¶šà·ƒà·”ම් / ආරක්ෂà·à·€" වෙත ගොස් ඔබගේ මුරපදය යළි à·ƒà·à¶šà·ƒà·’ය යුතුය. + + + Retry with empty password + හිස් මුරපදය සමඟ à¶±à·à·€à¶­ à¶‹à¶­à·Šà·ƒà·à·„ කරන්න + + + Failed to open key file: %1 + යතුරු ගොනුව විවෘත කිරීමට අසමත් විය: %1 + + + Old key file format + à¶´à·à¶»à¶«à·’ යතුරු ගොනු ආකෘතිය + + + You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> + ඔබ à¶·à·à·€à·’ත෠කරන්නේ à¶´à·à¶»à¶«à·’ යතුරු ගොනු ආකෘතියක් වන à¶…à¶­à¶» à¶…à¶±à·à¶œà¶­à¶ºà·šà¶¯à·“ KeePassXC<br>සහà·à¶º දීම නතර à¶šà·… à·„à·à¶š.<br><br>කරුණà·à¶šà¶» නව යතුරු ගොනුවක් ජනනය කිරීම සලක෠බලන්න:<br><strong>දත්ත සමුදà·à¶º &gt; දත්ත සමුද෠ආරක්ෂà·à·€ &gt; යතුරු ගොනුව වෙනස් කරන්න.</strong><br> + + + Don't show this warning again + මෙම අනතුරු'à¶±à·à·€à¶­ පෙන්වන්න à¶‘à¶´à· + + + All files + සියළුම ගොනු + + + Key files + යතුරු ගොනු + + + Select key file + යතුරු ගොනුව à¶­à·à¶»à¶±à·Šà¶± + + + Cannot use database file as key file + දත්ත සමුද෠ගොනුව යතුරු ගොනුවක් ලෙස à¶·à·à·€à·’à¶­à· à¶šà·… නොහà·à¶š + + + authenticate to access the database + + + + Failed to authenticate with Quick Unlock: %1 + + + + Select Key File: + + + + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + + + + + DatabaseSettingWidgetMetaData + + Passwords + මුරපද + + + + DatabaseSettingsDialog + + General + ජනරà·à¶½à·Š + + + Security + ආරක්â€à·‚à·à·€ + + + Database Credentials + දත්ත සමුද෠අක්තපත්ර + + + Encryption Settings + සංකේතන à·ƒà·à¶šà·ƒà·”ම් + + + Browser Integration + බ්රවුසර à¶’à¶šà·à¶¶à¶¯à·Šà¶° කිරීම + + + Maintenance + නඩත්තු + + + + DatabaseSettingsWidgetBrowser + + KeePassXC-Browser settings + KeePassXC-Browser à·ƒà·à¶šà·ƒà·”ම් + + + Disconnect all browsers + සියලුම à¶¶à·Šâ€à¶»à·€à·Šà·ƒà¶»à·Š විසන්ධි කරන්න + + + Forget all site-specific settings on entries + ඇතුළත් කිරීම් වල සියලුම අඩවි-විà·à·šà·‚à·’à¶­ à·ƒà·à¶šà·ƒà·”ම් අමතක කරන්න + + + Refresh database root group ID + දත්ත සමුද෠මූල à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š à·„à·à¶³à·”නුම්පත à¶±à·à·€à·”ම් කරන්න + + + Stored keys + ගබඩ෠කළ යතුරු + + + Stored browser keys + ගබඩ෠කර ඇති à¶¶à·Šâ€à¶»à·€à·Šà·ƒà¶»à·Š යතුරු + + + Remove selected key + à¶­à·à¶»à·à¶œà¶­à·Š යතුර ඉවත් කරන්න + + + Remove + ඉවතලන්න + + + Delete the selected key? + à¶­à·à¶»à·à¶œà¶­à·Š යතුර මකන්නද? + + + Do you really want to delete the selected key? +This may prevent connection to the browser plugin. + ඔබට ඇත්තටම à¶­à·à¶»à·à¶œà¶­à·Š යතුර මà·à¶šà·“මට à¶…à·€à·à·Šâ€à¶ºà¶¯? +මෙය à¶¶à·Šâ€à¶»à·€à·”සර ප්ලගිනයට සම්බන්ධ වීම à·€à·à·…à·à¶šà·Šà·€à·’ය à·„à·à¶š. + + + Key + යතුර + + + Value + අගය + + + Created + නිර්මà·à¶«à¶º à¶šà·…à· + + + Enable Browser Integration to access these settings. + මෙම සිටුවම් වෙත à¶´à·Šâ€à¶»à·€à·šà· වීමට à¶¶à·Šâ€à¶»à·€à·”සර අනුකලනය සක්â€à¶»à·“ය කරන්න. + + + Do you really want to disconnect all browsers? +This may prevent connection to the browser plugin. + ඔබට à·ƒà·à¶¶à·€à·’න්ම සියලුම à¶¶à·Šâ€à¶»à·€à·Šà·ƒà¶»à·Š විසන්ධි කිරීමට à¶…à·€à·à·Šâ€à¶ºà¶¯? +මෙය à¶¶à·Šâ€à¶»à·€à·”සර ප්ලගිනයට සම්බන්ධ වීම à·€à·à·…à·à¶šà·Šà·€à·’ය à·„à·à¶š. + + + No shared encryption keys found in KeePassXC settings. + KeePassXC à·ƒà·à¶šà·ƒà·“ම් තුළ හවුල් සංකේතà·à¶‚à¶šà¶± යතුරු හමු නොවීය. + + + Successfully removed %n encryption key(s) from KeePassXC settings. + KeePassXC සිටුවම් වලින් %n සංකේතà·à¶‚à¶šà¶± යතුර(ය) à·ƒà·à¶»à·Šà¶®à¶šà·€ ඉවත් කරන ලදී.KeePassXC සිටුවම් වලින් %n සංකේතà·à¶‚à¶šà¶± යතුර(ය) à·ƒà·à¶»à·Šà¶®à¶šà·€ ඉවත් කරන ලදී. + + + Do you really want forget all site-specific settings on every entry? +Permissions to access entries will be revoked. + ඔබට à·ƒà·à¶¶à·€à·’න්ම සෑම à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶šà¶¸ සියලුම අඩවි-විà·à·šà·‚à·’à¶­ à·ƒà·à¶šà·ƒà·”ම් අමතක කිරීමට à¶…à·€à·à·Šâ€à¶ºà¶¯? +ඇතුළත් කිරීම්වලට à¶´à·Šâ€à¶»à·€à·šà· වීමට ඇති අවසර අවලංගු කෙරේ. + + + Removing stored permissions… + ගබඩ෠කළ අවසර ඉවත් කිරීම… + + + Abort + ගබ්ස෠කරන්න + + + Successfully removed permissions from %n entry(s). + ඇතුළත් කිරීම් %n කින් අවසර à·ƒà·à¶»à·Šà¶®à¶šà·€ ඉවත් කරන ලදී.ඇතුළත් කිරීම් %n කින් අවසර à·ƒà·à¶»à·Šà¶®à¶šà·€ ඉවත් කරන ලදී. + + + The active database does not contain an entry with permissions. + සක්â€à¶»à·’ය දත්ත ගබඩà·à·€à·š අවසර සහිත à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶šà·Š අඩංගු නොවේ. + + + Refresh database ID + දත්ත සමුද෠හà·à¶³à·”නුම්පත à¶±à·à·€à·”ම් කරන්න + + + Do you really want refresh the database ID? +This is only necessary if your database is a copy of another and the browser extension cannot connect. + ඔබට ඇත්තටම දත්ත සමුද෠හà·à¶³à·”නුම්පත à¶±à·à·€à·”ම් කිරීමට à¶…à·€à·à·Šâ€à¶ºà¶¯? +මෙය à¶…à·€à·à·Šâ€à¶º වන්නේ ඔබගේ දත්ත සමුදà·à¶º වෙනත් à¶´à·’à¶§à¶´à¶­à¶šà·Š නම් සහ à¶¶à·Šâ€à¶»à·€à·”සර දිගුව සම්බන්ධ à¶šà·… නොහà·à¶šà·’ නම් පමණි. + + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + à¶´à·à¶»à¶«à·’ KeePassHTTP ගුණà·à¶‚à¶œ KeePassXC-à¶¶à·Šâ€à¶»à·€à·”සරයට à¶œà·à·…පෙන අභිරුචි දත්ත බවට පරිවර්තනය කරන්න + + + No keys found + + + + Removed keys from database + + + + Removed permissions + + + + No entry with permissions found! + + + + + DatabaseSettingsWidgetDatabaseKey + + Add additional protection… + අමතර ආරක්ෂà·à·€à¶šà·Š à¶‘à¶šà·Š කරන්න… + + + No password set + මුරපදයක් සකස෠නà·à¶­ + + + WARNING! You have not set a password. Using a database without a password is strongly discouraged! + +Are you sure you want to continue without a password? + අවවà·à¶¯à¶ºà¶ºà·’! ඔබ මුරපදයක් සකස෠නà·à¶­. මුරපදයක් නොමà·à¶­à·’à·€ දත්ත සමුදà·à¶ºà¶šà·Š à¶·à·à·€à·’ත෠කිරීම දà·à¶©à·’ ලෙස අධෛර්යමත් වේ! + +ඔබට මුරපදයක් නොමà·à¶­à·’à·€ ඉදිරියට යà·à¶¸à¶§ à¶…à·€à·à·Šâ€à¶º à¶¶à·€ විà·à·Šà·€à·à·ƒà¶¯? + + + Continue without password + මුරපදය නොමà·à¶­à·’à·€ ඉදිරියට යන්න + + + No encryption key added + සංකේතà·à¶‚à¶šà¶± යතුරක් à¶‘à¶šà·Š à¶šà¶» à¶±à·à¶­ + + + You must add at least one encryption key to secure your database! + ඔබගේ දත්ත සමුදà·à¶º සුරක්ෂිත කිරීමට ඔබ අවම à·€à·à¶ºà·™à¶±à·Š à¶‘à¶šà·Š සංකේතà·à¶‚à¶šà¶± යතුරක් à¶‘à¶šà·Š à¶šà·… යුතුය! + + + Unknown error + නොදන්න෠දà·à·‚යකි + + + Failed to change database credentials + දත්ත සමුද෠අක්තපත්â€à¶» වෙනස් කිරීමට අසමත් විය + + + Weak password + දුර්වල මුරපදය + + + You must enter a stronger password to protect your database. + + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + + + + + DatabaseSettingsWidgetEncryption + + Decryption Time: + විසංකේතන à¶šà·à¶½à¶º: + + + Decryption time in seconds + à¶­à¶­à·Šà¶´à¶» වලින් විකේතන à¶šà·à¶½à¶º + + + Higher values offer more protection, but opening the database will take longer. + ඉහළ අගයන් à·€à·à¶©à·’ ආරක්ෂà·à·€à¶šà·Š ලබ෠දෙයි, නමුත් දත්ත සමුදà·à¶º විවෘත කිරීමට à·€à·à¶©à·’ à¶šà·à¶½à¶ºà¶šà·Š ගතවනු ඇත. + + + Database format: + දත්ත සමුද෠ආකෘතිය: + + + Database format + දත්ත සමුද෠ආකෘතිය + + + Format cannot be changed: Your database uses KDBX 4 features + ආකෘතිය වෙනස් à¶šà·… නොහà·à¶š: ඔබගේ දත්ත සමුදà·à¶º KDBX 4 විà·à·šà·‚à·à¶‚à¶œ à¶·à·à·€à·’ත෠කරයි + + + Unless you need to open your database with other programs, always use the latest format. + ඔබට වෙනත් à·€à·à¶©à·ƒà¶§à·„න් සමඟ ඔබේ දත්ත සමුදà·à¶º විවෘත කිරීමට à¶…à·€à·à·Šâ€à¶º නම් මිස, සෑම විටම නවතම ආකෘතිය à¶·à·à·€à·’ත෠කරන්න. + + + Encryption Algorithm: + සංකේතà·à¶‚à¶šà¶± ඇල්ගොරිතම: + + + Encryption algorithm + සංකේතà·à¶‚à¶šà¶± ඇල්ගොරිතම + + + AES: 256 Bit (default) + AES: 256 Bit (පෙරනිමිය) + + + Twofish: 256 Bit + මà·à·…à·” දෙක: 256 à¶¶à·’à¶§à·Š + + + Key Derivation Function: + ප්රධà·à¶± ව්යුත්පන්න à¶šà·à¶»à·Šà¶ºà¶º: + + + Key derivation function + ප්රධà·à¶± ව්යුත්පන්න à¶šà·à¶»à·Šà¶ºà¶º + + + Transform rounds: + පරිවර්තන වට: + + + Transform rounds + වටකුරු පරිවර්තනය කරන්න + + + Memory Usage: + මතකය à¶·à·à·€à·’තය: + + + Memory usage + මතකය à¶·à·à·€à·’තය + + + Parallelism: + සමà·à¶±à·Šà¶­à¶»à¶šà¶»à¶«à¶º: + + + Parallelism + සමà·à¶±à·Šà¶­à¶»à·€à·à¶¯à¶º + + + KDBX 4 (recommended) + KDBX 4 (නිර්දේà·à·’à¶­) + + + KDBX 3 + KDBX 3 + + + Number of rounds too high + Key transformation rounds + වට ගණන à·€à·à¶©à·’යි + + + You are using a very high number of key transform rounds with Argon2. + +If you keep this number, your database may take hours, days, or even longer to open. + ඔබ Argon2 සමඟ යතුරු පරිවර්තන වට ඉත෠ඉහළ සංඛ්â€à¶ºà·à·€à¶šà·Š à¶·à·à·€à·’ත෠කරයි. + +ඔබ මෙම අංකය තබ෠ගන්නේ නම්, ඔබේ දත්ත සමුදà·à¶º විවෘත කිරීමට à¶´à·à¶º, දින à·„à· à¶Šà¶§à¶­à·Š වඩ෠වà·à¶©à·’ à¶šà·à¶½à¶ºà¶šà·Š ගතවනු ඇත. + + + Understood, keep number + තේරුණà·, අංකය තබ෠ගන්න + + + Cancel + අවලංගු + + + Number of rounds too low + Key transformation rounds + වට ගණන ඉත෠අඩුය + + + You are using a very low number of key transform rounds with AES-KDF. + +If you keep this number, your database will not be protected from brute force attacks. + ඔබ AES-KDF සමඟ යතුරු පරිවර්තන වට ඉත෠අඩු සංඛ්â€à¶ºà·à·€à¶šà·Š à¶·à·à·€à·’ත෠කරයි. + +ඔබ මෙම අංකය තබ෠ගන්නේ නම්, ඔබේ දත්ත ගබඩà·à·€ බෲට් à¶¶à¶½ à¶´à·Šâ€à¶»à·„à·à¶» වලින් ආරක්ෂ෠නොවනු ඇත. + + + KDF unchanged + KDF නොවෙනස්ව ඇත + + + Failed to transform key with new KDF parameters; KDF unchanged. + නව KDF à¶´à¶»à·à¶¸à·’à¶­à·’ සමඟ යතුර පරිවර්තනය කිරීමට අසමත් විය; KDF නොවෙනස්ව ඇත. + + + MiB + Abbreviation for Mebibytes (KDF settings) + MiB MiB + + + thread(s) + Threads for parallel execution (KDF settings) + නූල්(ය) නූල්(ය) + + + Encryption Settings: + + + + Basic + + + + Advanced + à·€à·à¶©à·’දුර + + + + DatabaseSettingsWidgetFdoSecrets + + Exposed Entries + නිරà·à·€à¶»à¶«à¶º වූ ඇතුළත් කිරීම් + + + Don't expose this database + මෙම දත්ත'හෙළිදරව් නොකරන්න + + + Expose entries under this group: + මෙම à¶šà¶«à·Šà¶©à·à¶ºà¶¸ යටතේ ඇතුළත් කිරීම් හෙළි කරන්න: + + + Enable Secret Service to access these settings. + මෙම à·ƒà·à¶šà·ƒà·“ම් වෙත à¶´à·Šâ€à¶»à·€à·šà· වීමට රහස් සේවà·à·€ සබල කරන්න. + + + + DatabaseSettingsWidgetGeneral + + Database Metadata + දත්ත සමුද෠පà·à¶»à¶¯à¶­à·Šà¶­ + + + Database name: + දත්ත සමුදà·à¶ºà·š නම: + + + Database name field + දත්ත සමුද෠නà·à¶¸ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶º + + + Database description: + දත්ත සමුද෠විස්තරය: + + + Database description field + දත්ත සමුද෠විස්තර à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶º + + + Default username: + පෙරනිමි පරිà·à·“ලක à¶±à·à¶¸à¶º: + + + Default username field + පෙරනිමි පරිà·à·“ලක à¶±à·à¶¸ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶º + + + History Settings + ඉතිහà·à·ƒ à·ƒà·à¶šà·ƒà·”ම් + + + Maximum number of history items per entry + à¶‘à¶šà·Š à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶šà¶§ ඉතිහà·à·ƒ අයිතම උපරිම සංඛ්â€à¶ºà·à·€ + + + Maximum size of history per entry + à¶‘à¶šà·Š à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶šà¶§ ඉතිහà·à·ƒà¶ºà·š උපරිම à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + MiB + MiB + + + Use recycle bin + ප්රතිචක්රීකරණ බඳුනක් à¶·à·à·€à·’ත෠කරන්න + + + Additional Database Settings + අතිරේක දත්ත සමුද෠සà·à¶šà·ƒà·”ම් + + + Enable compression (recommended) + සම්පීඩනය සබල කරන්න (නිර්දේà·à·’à¶­) + + + Delete Recycle Bin + à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණ බඳුන මකන්න + + + Do you want to delete the current recycle bin and all its contents? +This action is not reversible. + ඔබට වත්මන් à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණ බඳුන සහ à¶‘à·„à·’ සියලුම අන්තර්ගතයන් මà·à¶šà·“මට à¶…à·€à·à·Šâ€à¶ºà¶¯? +මෙම à¶šà·Šâ€à¶»à·’යà·à·€ ආපසු à·„à·à¶»à·€à·’ය නොහà·à¶š. + + + (old) + (පරණ) + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + + + + Limit the amount of history items per entry to: + + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + + + + Limit the total size of history items per entry to: + + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + + + + Autosave delay since last change + + + + Autosave delay + + + + Autosave delay since last change in minutes + + + + min + විනà·. + + + Autosave delay since last change checkbox + + + + + DatabaseSettingsWidgetKeeShare + + Sharing + බෙදà·à¶œà·à¶±à·“ම + + + Breadcrumb + à¶´à·à¶±à·Š කුඩු + + + Type + ලියන්න + + + Path + මà·à¶»à·Šà¶œà¶º + + + Last Signer + අවසà·à¶± අත්සන් කරන්න෠+ + + Certificates + සහතික + + + > + Breadcrumb separator + > + + + + DatabaseSettingsWidgetMaintenance + + Manage Custom Icons + අභිරුචි අයිකන කළමනà·à¶šà¶»à¶«à¶º කරන්න + + + Delete selected icon(s) + à¶­à·à¶»à·à¶œà¶­à·Š නිරූපක(ය) මකන්න + + + Delete all custom icons not in use by any entry or group + කිසිදු à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶šà·Š à·„à· à¶šà¶«à·Šà¶©à·à¶ºà¶¸à¶šà·Š à¶·à·à·€à·’ත෠නොකරන සියලුම අභිරුචි අයිකන මකන්න + + + Purge unused icons + à¶·à·à·€à·’තයට නොගත් අයිකන ඉවත් කරන්න + + + Confirm Deletion + මකà·à¶¯à·à¶¸à·“ම තහවුරු කරන්න + + + At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? + අවම à·€à·à¶ºà·™à¶±à·Š à¶­à·à¶»à·à¶œà¶­à·Š අයිකනවලින් à¶‘à¶šà¶šà·Š වත් දà·à¶±à¶§ අවම à·€à·à¶ºà·™à¶±à·Š à¶‘à¶šà·Š à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶šà·Š à·„à· à¶šà¶«à·Šà¶©à·à¶ºà¶¸à¶šà·Š විසින් à¶·à·à·€à·’ත෠කරයි. බලපෑමට ලක් වූ සියලුම ඇතුළත් කිරීම් සහ à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Šà·€à¶½ අයිකන පෙරනිමි නිරූපකය මගින් à¶´à·Šâ€à¶»à¶­à·’ස්ථà·à¶´à¶±à¶º වේ. දà·à¶±à¶§ à¶·à·à·€à·’තයේ පවතින අයිකන මà·à¶šà·“මට à¶…à·€à·à·Šâ€à¶º à¶¶à·€ ඔබට විà·à·Šà·€à·à·ƒà¶¯? + + + Custom Icons Are In Use + අභිරුචි අයිකන à¶·à·à·€à·’තයේ පවතී + + + All custom icons are in use by at least one entry or group. + සියලුම අභිරුචි අයිකන අවම à·€à·à¶ºà·™à¶±à·Š à¶‘à¶šà·Š à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶šà·Š à·„à· à¶šà¶«à·Šà¶©à·à¶ºà¶¸à¶šà·Š විසින් à¶·à·à·€à·’à¶­ කෙරේ. + + + Purged Unused Icons + à¶·à·à·€à·’තයට නොගත් අයිකන ඉවත් à¶šà¶» ඇත + + + Purged %n icon(s) from the database. + දත්ත සමුදà·à¶ºà·™à¶±à·Š %n නිරූපක(ය) ඉවත් කරන ලදී.දත්ත සමුදà·à¶ºà·™à¶±à·Š %n නිරූපක(ය) ඉවත් කරන ලදී. + + + + DatabaseSettingsWidgetMetaDataSimple + + Database Name: + දත්ත සමුදà·à¶ºà·š නම: + + + Database name field + දත්ත සමුද෠නà·à¶¸ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶º + + + Description: + සවිස්තරය: + + + Database description field + දත්තසමුදà·à¶ºà·š විස්තර à¶šà·Šâ€à·‚à·šà¶­à·Šâ€à¶»à¶º + + + + DatabaseTabWidget + + Database creation error + දත්ත සමුදà·à¶º සෑදීමේ දà·à·‚යකි + + + The created database has no key or KDF, refusing to save it. +This is definitely a bug, please report it to the developers. + à·ƒà·à¶¯à¶± ලද දත්ත ගබඩà·à·€à·š යතුරක් à·„à· KDF à¶‘à¶šà¶šà·Š නොමà·à¶­, එය සුරà·à¶šà·“ම à¶´à·Šâ€à¶»à¶­à·’à¶šà·Šà·‚à·šà¶´ කරයි. +මෙය නියත à·€à·à¶ºà·™à¶±à·Šà¶¸ දà·à·‚යකි, කරුණà·à¶šà¶» එය සංවර්ධකයන්ට à·€à·à¶»à·Šà¶­à· කරන්න. + + + KeePass 2 Database + KeePass 2 දත්තසමුදà·à¶º + + + All files + සියළුම ගොනු + + + Open database + දත්තසමුදà·à¶º අරින්න + + + Failed to open %1. It either does not exist or is not accessible. + %1විවෘත කිරීමට අසමත් විය. එය නොපවතී හ෠ප්රවේ෠විය නොහà·à¶š. + + + CSV file + CSV ගොනුව + + + Merge database + දත්තසමුදà·à¶º à¶’à¶šà·à¶¶à¶¯à·Šà¶°à¶º + + + Export database to CSV file + දත්තසමුදà·à¶º CSV ගොනුවකට නිර්යà·à¶­à¶º + + + Writing the CSV file failed. + CSV ගොනුව ලිවීම à¶…à·ƒà·à¶»à·Šà¶®à¶š විය. + + + Writing the HTML file failed. + HTML ගොනුව ලිවීමට අසමත් විය. + + + Export database to XML file + + + + XML file + + + + Writing the XML file failed + + + + Export Confirmation + අපනයන තහවුරු කිරීම + + + You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? + ඔබ ඔබේ දත්ත සමුදà·à¶º සංකේතනය නොකළ ගොනුවකට අපනයනය කිරීමට සූදà·à¶±à¶¸à·Š වේ. මෙය ඔබගේ මුරපද සහ සංවේදී තොරතුරු අවදà·à¶±à¶¸à¶§ ලක් කරයි! ඔබට දිගටම කරගෙන යà·à¶¸à¶§ à¶…à·€à·à·Šâ€à¶º à¶¶à·€ විà·à·Šà·€à·à·ƒà¶¯? + + + %1 [Locked] + Database tab name modifier + %1 [Locked] + + + + DatabaseWidget + + Searches and Tags + + + + Searching… + සොයමින්… + + + Shared group… + බෙදà·à¶œà¶­à·Š à¶šà¶«à·Šà¶©à·à¶ºà¶¸â€¦ + + + Confirm Auto-Type + ස්වයං ලිවීම තහවුරුව + + + Perform Auto-Type into the previously active window? + කලින් සක්â€à¶»à·’ය කවුළුවට ස්වයංක්â€à¶»à·“ය ටයිප් කරන්නද? + + + Execute command? + විධà·à¶±à¶º à¶šà·Šâ€à¶»à·’යà·à¶­à·Šà¶¸à¶š කරන්නද? + + + Do you really want to execute the following command?<br><br>%1<br> + ඔබට ඇත්තටම à¶´à·„à¶­ විධà·à¶±à¶º à¶šà·Šâ€à¶»à·’යà·à¶­à·Šà¶¸à¶š කිරීමට à¶…à·€à·à·Šâ€à¶ºà¶¯?<br><br>%1<br> + + + Remember my choice + තේරීම මතක à¶­à¶¶à·à¶œà¶±à·Šà¶± + + + Delete group + සමූහය මකන්න + + + Do you really want to delete the group "%1" for good? + ඔබට à·ƒà·à¶¶à·€à·’න්ම "%1" à¶šà¶«à·Šà¶©à·à¶ºà¶¸ යහපත සඳහ෠මක෠දà·à¶¸à·“මට à¶…à·€à·à·Šâ€à¶ºà¶¯? + + + Move group to recycle bin? + à¶šà¶«à·Šà¶©à·à¶ºà¶¸ à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණ බඳුනට ගෙන යන්නද? + + + Do you really want to move the group "%1" to the recycle bin? + ඔබට ඇත්තටම "%1" à¶šà¶«à·Šà¶©à·à¶ºà¶¸ à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණ බඳුනට ගෙන යà·à¶¸à¶§ à¶…à·€à·à·Šâ€à¶ºà¶¯? + + + Expired entries + ඉකුත් වූ නිවේà·à·’à¶­ + + + Entries expiring within %1 day(s) + නිවේà·à·’à¶­ දවස් %1 කින් ඉකුත් වේනිවේà·à·’à¶­ දවස් %1 කින් ඉකුත් වේ + + + No current database. + වත්මන් දත්ත සමුදà·à¶º à¶±à·à¶­. + + + No source database, nothing to do. + මූලà·à·à·Šâ€à¶» දත්ත ගබඩà·à·€à¶šà·Š à¶±à·à¶­, කිරීමට කිසිවක් à¶±à·à¶­. + + + Successfully merged the database files. + දත්ත සමුද෠ගොනු à·ƒà·à¶»à·Šà¶®à¶šà·€ à¶’à¶šà·à¶¶à¶¯à·Šà¶° කරන ලදී. + + + Database was not modified by merge operation. + දත්ත සමුදà·à¶º à¶’à¶šà·à¶¶à¶¯à·Šà¶° කිරීමේ මෙහෙයුම මගින් වෙනස් à¶šà¶» à¶±à·à¶­. + + + Search Results (%1) + සෙවුම් à¶´à·Šâ€à¶»à¶­à·’ඵල (%1) + + + No Results + à¶´à·Šâ€à¶»à¶­à·’à¶´à¶½ à¶±à·à¶­ + + + Save + සුරකින්න + + + Enter a unique name or overwrite an existing search from the list: + + + + Save Search + + + + Lock Database? + දත්තසමුදà·à¶º අගුළු දමන්නද? + + + You are editing an entry. Discard changes and lock anyway? + ඔබ à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶šà·Š සංස්කරණය කරමින් සිටී. කෙසේ වෙතත් වෙනස්කම් ඉවත දම෠අගුලු දමන්නද? + + + "%1" was modified. +Save changes? + "%1" වෙනස් කරන ලදී. +වෙනස්කම් සුරකින්නද? + + + Database was modified. +Save changes? + දත්ත සමුදà·à¶º වෙනස් කරන ලදී. +වෙනස්කම් සුරකින්නද? + + + Save changes? + වෙනස්කම් සුරකින්නද? + + + File has changed + ගොනුව වෙනස් වී ඇත + + + The database file has changed. Do you want to load the changes? + දත්ත සමුද෠ගොනුව වෙනස් වී ඇත. ඔබට වෙනස්කම් පූරණය කිරීමට à¶…à·€à·à·Šâ€à¶ºà¶¯? + + + Merge Request + à¶’à¶šà·à¶¶à¶¯à·Šà¶° ඉල්ලීම + + + The database file has changed and you have unsaved changes. +Do you want to merge your changes? + දත්ත සමුද෠ගොනුව වෙනස් වී ඇති à¶…à¶­à¶» ඔබට නොසුරකින ලද වෙනස්කම් ඇත. +ඔබට ඔබගේ වෙනස්කම් à¶’à¶šà·à¶¶à¶¯à·Šà¶° කිරීමට à¶…à·€à·à·Šâ€à¶ºà¶¯? + + + Could not open the new database file while attempting to autoreload. +Error: %1 + ස්වයංක්â€à¶»à·“යව පූරණය කිරීමට à¶‹à¶­à·Šà·ƒà·à·„ කරන අතරතුර නව දත්ත සමුද෠ගොනුව විවෘත කිරීමට නොහà·à¶šà·’ විය. +දà·à·‚ය: %1 + + + Disable safe saves? + ආරක්ෂිත සුරà·à¶šà·”ම් à¶…à¶¶à¶½ කරන්නද? + + + KeePassXC has failed to save the database multiple times. This is likely caused by file sync services holding a lock on the save file. +Disable safe saves and try again? + KeePassXC දත්ත සමුදà·à¶º à¶šà·’à·„à·’à¶´ වතà·à·€à¶šà·Š සුරà·à¶šà·“මට අසමත් විය. ගොනු සමමුහුර්ත සේව෠සුරà·à¶šà·“මේ ගොනුවේ අගුලක් à¶­à¶¶à· à¶œà·à¶±à·“ම නිස෠මෙය සිදු විය à·„à·à¶šà·’ය. +ආරක්ෂිත සුරà·à¶šà·”ම් à¶…à¶¶à¶½ à¶šà¶» à¶±à·à·€à¶­ à¶‹à¶­à·Šà·ƒà·à·„ කරන්නද? + + + Writing the database failed: %1 + දත්ත සමුදà·à¶º ලිවීම à¶…à·ƒà·à¶»à·Šà¶®à¶š විය: %1 + + + Passwords + මුරපද + + + Save database as + ලෙස දත්තසමුදà·à¶º සුරකින්න + + + KeePass 2 Database + KeePass 2 දත්තසමුදà·à¶º + + + Save database backup + දත්තසමුදà·à¶ºà·š උපස්ථයක් සුරකින්න + + + Empty recycle bin? + à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණ බඳුන හිස්ද? + + + Are you sure you want to permanently delete everything from your recycle bin? + ඔබේ à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණ බඳුනෙන් සියල්ල ස්ථිරවම මà·à¶šà·“මට à¶…à·€à·à·Šâ€à¶º à¶¶à·€ ඔබට විà·à·Šà·€à·à·ƒà¶¯? + + + Could not find database file: %1 + දත්ත සමුද෠ගොනුව සොය෠ගà·à¶±à·“මට නොහà·à¶šà·’ විය: %1 + + + New Database + නව දත්තසමුදà·à¶º + + + %1 [New Database] + Database tab name modifier + %1 [නව දත්තසමුදà·à¶º] + + + + EditEntryWidget + + Entry + නිවේà·à·’තය + + + Advanced + à·€à·à¶©à·’දුර + + + Icon + නිරූපකය + + + Auto-Type + ස්වයං ලිවීම + + + Browser Integration + අතිරික්සුවට අනුකලනය + + + <empty URL> + <empty URL> + + + Confirm Removal + ඉවත් කිරීම තහවුරු කරන්න + + + Are you sure you want to remove this URL? + ඔබට මෙම URL ඉවත් කිරීමට à¶…à·€à·à·Šâ€à¶º à¶¶à·€ විà·à·Šà·€à·à·ƒà¶¯? + + + Properties + ගුණà·à¶‚à¶œ + + + History + ඉතිහà·à·ƒà¶º + + + SSH Agent + SSH නියà·à¶­à¶º + + + n/a + à¶…/නෙà·à·€à·™à·Š + + + (encrypted) + (සංකේතිතයි) + + + Select private key + පෞද්. යතුර à¶­à·à¶»à¶±à·Šà¶± + + + Entry history + නිවේà·à·’තයේ ඉතිහà·à·ƒà¶º + + + Add entry + නිවේà·à·’තයක් යොදන්න + + + Edit entry + නිවේà·à·’තය සංස්කරණය + + + Some Browser Integration settings are overridden by group settings. + සමහර Browser Integration à·ƒà·à¶šà·ƒà·”ම් à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š සිටුවම් මගින් à¶´à·Šâ€à¶»à¶­à·’à¶šà·Šâ€à·‚à·šà¶´ à¶šà¶» ඇත. + + + Invalid Entry + වලංගු නොවන ඇතුල්වීමක් + + + An external merge operation has invalidated this entry. +Unfortunately, any changes made have been lost. + à¶¶à·à·„à·’à¶» à¶’à¶šà·à¶¶à¶¯à·Šà¶° කිරීමේ මෙහෙයුමක් මෙම à¶´à·Šâ€à¶»à·€à·šà·à¶º අවලංගු à¶šà¶» ඇත. +à¶…à·€à·à·ƒà¶±à·à·€à¶±à·Šà¶­ ලෙස, කරන ලද ඕනෑම වෙනස්කමක් à¶±à·à¶­à·’ වී ඇත. + + + Auto-Type Validation Error + ස්වයං-වර්ගය වලංගු කිරීමේ දà·à·‚ය + + + An error occurred while validating the custom Auto-Type sequence: +%1 +Would you like to correct it? + අභිරුචි ස්වයං-වර්ග අනුපිළිවෙල වලංගු කිරීමේදී දà·à·‚යක් ඇති විය: +%1 +ඔබ එය නිවà·à¶»à¶¯à·’ කිරීමට à¶šà·à¶¸à¶­à·’ද? + + + An error occurred while validating the Auto-Type sequence for "%1": +%2 +Would you like to correct it? + "%1": +%2 +සඳහ෠ස්වයංක්â€à¶»à·“ය-වර්ග අනුපිළිවෙල වලංගු කිරීමේදී දà·à·‚යක් ඇති විය ඔබ එය නිවà·à¶»à¶¯à·’ කිරීමට à¶šà·à¶¸à¶­à·’ද? + + + Entry updated successfully. + ඇතුල්වීම à·ƒà·à¶»à·Šà¶®à¶šà·€ යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± කරන ලදී. + + + Unsaved Changes + නොසුරà·à¶šà·’ වෙනස්කම් + + + Would you like to save changes to this entry? + ඔබ මෙම à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶§ වෙනස්කම් සුරà·à¶šà·“මට à¶šà·à¶¸à¶­à·’ද? + + + New attribute + නව ගුණà·à¶‚ගය + + + New attribute %1 + නව ගුණà·à¶‚ගය %1 + + + Are you sure you want to remove this attribute? + ඔබට මෙම ගුණà·à¶‚ගය ඉවත් කිරීමට à¶…à·€à·à·Šâ€à¶º à¶¶à·€ විà·à·Šà·€à·à·ƒà¶¯? + + + Reveal + හෙළි කරන්න + + + [PROTECTED] Press Reveal to view or edit + [PROTECTED] à¶¶à·à¶½à·“මට හ෠සංස්කරණය කිරීමට Reveal ඔබන්න + + + Hide + සඟවන්න + + + %n hour(s) + à¶´à·à¶º %nà¶´à·à¶º %n + + + %n week(s) + සති %nසති %n + + + %n month(s) + මà·à·ƒ %nමà·à·ƒ %n + + + %n year(s) + වසර %nවසර %n + + + + EditEntryWidgetAdvanced + + Additional attributes + අමතර ගුණà·à¶‚à¶œ + + + Attribute selection + ගුණà·à¶‚à¶œ තේරීම + + + Attribute value + ගුණà·à¶‚à¶œ අගය + + + Add a new attribute + නව ගුණà·à¶‚ගයක් à¶‘à¶šà·Š කරන්න + + + Add + à¶‘à¶šà¶­à·” + + + Remove selected attribute + à¶­à·à¶»à·à¶œà¶­à·Š උපලක්ෂණ ඉවත් කරන්න + + + Remove + ඉවතලන්න + + + Edit attribute name + ගුණà·à¶‚à¶œ à¶±à·à¶¸à¶º සංස්කරණය කරන්න + + + Edit Name + නම සංස්කරණය + + + Toggle attribute protection + ගුණà·à¶‚à¶œ ආරක්ෂà·à·€ ටොගල් කරන්න + + + Protect + ආරක්ෂ෠කරන්න + + + Show a protected attribute + ආරක්ෂිත ගුණà·à¶‚ගයක් පෙන්වන්න + + + Reveal + හෙළි කරන්න + + + Attachments + ඇමුණුම් + + + If checked, the entry will not appear in reports like Health Check and HIBP even if it doesn't match the quality requirements. + පරීක්ෂ෠කළහොත්, à¶´à·Šâ€à¶»à·€à·šà·à¶º à¶­à¶­à·Šà¶­à·Šà·€ à¶…à·€à·à·Šâ€à¶ºà¶­à· සමඟ't නොගà·à¶½à¶´à·š වුවද සෞඛ්â€à¶º පරීක්â€à·‚ණය සහ HIBP à·€à·à¶±à·’ à·€à·à¶»à·Šà¶­à·à·€à¶½ දිස් නොවේ. + + + Exclude from database reports + දත්ත සමුද෠වà·à¶»à·Šà¶­à· වලින් à¶¶à·à·„à·à¶» කරන්න + + + Foreground Color: + පෙරබිම් වර්ණය: + + + Foreground color selection + පෙරබිම වර්ණ තේරීම + + + Background Color: + පසුබිම් වර්ණය: + + + Background color selection + පසුබිම් වර්ණ තේරීම + + + + EditEntryWidgetAutoType + + Enable Auto-Type for this entry + මෙම à¶´à·Šâ€à¶»à·€à·šà·à¶º සඳහ෠ස්වයංක්â€à¶»à·“ය වර්ගය සබල කරන්න + + + Inherit default Auto-Type sequence from the group + සමූහයෙන් පෙරනිමි ස්වයංක්â€à¶»à·“ය-වර්ග අනුපිළිවෙල උරුම à¶šà¶» ගන්න + + + Use custom Auto-Type sequence: + අභිරුචි ස්වයං-වර්ග අනුපිළිවෙල à¶·à·à·€à·’ත෠කරන්න: + + + Custom Auto-Type sequence + අභිරුචි ස්වයං-වර්ග අනුපිළිවෙල + + + Open Auto-Type help webpage + ස්වයංක්â€à¶»à·“ය ටයිප් උදවු වෙබ් පිටුව විවෘත කරන්න + + + Window Associations + කවුළු සංගම් + + + Existing window associations + පවතින කවුළු සංගම් + + + Add new window association + නව කවුළු ඇසුරක් à¶‘à¶šà·Š කරන්න + + + + + Add item + + + + + Remove selected window association + à¶­à·à¶»à·à¶œà¶­à·Š කවුළු සම්බන්ධය ඉවත් කරන්න + + + - + Remove item + - + + + Window title: + කවුළු මà·à¶­à·˜à¶šà·à·€: + + + You can use an asterisk (*) to match everything + සෑම දෙයක්ම à¶œà·à¶½à¶´à·“මට ඔබට තරු ලකුණ (*) à¶·à·à·€à·’à¶­à· à¶šà·… à·„à·à¶šà·’ය + + + Set the window association title + කවුළු සංගම් මà·à¶­à·˜à¶šà·à·€ සකසන්න + + + You can use an asterisk to match everything + සෑම දෙයක්ම à¶œà·à¶½à¶´à·“මට ඔබට තරු ලකුණක් à¶·à·à·€à·’à¶­à· à¶šà·… à·„à·à¶šà·’ය + + + Use a specific sequence for this association: + මෙම සංගමය සඳහ෠නිà·à·Šà¶ à·’à¶­ අනුපිළිවෙලක් à¶·à·à·€à·’ත෠කරන්න: + + + Custom Auto-Type sequence for this window + මෙම කවුළුව සඳහ෠අභිරුචි ස්වයංක්â€à¶»à·“ය ටයිප් අනුපිළිවෙල + + + + EditEntryWidgetBrowser + + These settings affect to the entry's behaviour with the browser extension. + මෙම සිටුවම් à¶¶à·Šâ€à¶»à·€à·”සර දිගුව සමඟ ඇතුල් වීමේ's à·„à·à·ƒà·’රීමට බලපà·à¶ºà·’. + + + General + ජනරà·à¶½à·Š + + + Hide this entry from the browser extension + à¶¶à·Šâ€à¶»à·€à·”සර දිගුවෙන් මෙම à¶´à·Šâ€à¶»à·€à·šà·à¶º සඟවන්න + + + Skip Auto-Submit for this entry + මෙම à¶´à·Šâ€à¶»à·€à·šà·à¶º සඳහ෠ස්වයංක්â€à¶»à·“ය ඉදිරිපත් කිරීම මඟ හරින්න + + + Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. + HTTP Auth සංවà·à¶¯ සඳහ෠පමණක් මෙම à·ƒà·à¶šà·ƒà·”ම à¶¶à·Šâ€à¶»à·€à·”සරයට යවන්න. සබල à¶šà¶» ඇත්නම්, à·ƒà·à¶¸à·à¶±à·Šâ€à¶º පිවිසුම් à¶´à·à¶»à¶¸ තේරීම සඳහ෠මෙම à¶´à·Šâ€à¶»à·€à·šà·à¶º නොපෙන්වයි. + + + Use this entry only with HTTP Basic Auth + මෙම à¶´à·Šâ€à¶»à·€à·šà·à¶º HTTP Basic Auth සමඟ පමණක් à¶·à·à·€à·’ත෠කරන්න + + + Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. + HTTP Auth සංවà·à¶¯ සඳහ෠මෙම à·ƒà·à¶šà·ƒà·”ම à¶¶à·Šâ€à¶»à·€à·”සරයට නොයවන්න. සබල à¶šà¶» ඇත්නම්, HTTP Auth සංවà·à¶¯ තේරීම සඳහ෠මෙම à¶´à·Šâ€à¶»à·€à·šà·à¶º නොපෙන්වයි. + + + Do not use this entry with HTTP Basic Auth + HTTP Basic Auth සමඟ මෙම à¶´à·Šâ€à¶»à·€à·šà·à¶º à¶·à·à·€à·’ත෠නොකරන්න + + + Additional URL's + අමතර URL'à¶­à¶­à·Š + + + Add + à¶‘à¶šà¶­à·” + + + Remove + ඉවතලන්න + + + Edit + සංස්කරණය + + + + EditEntryWidgetHistory + + Entry history selection + ඇතුළත් වීමේ ඉතිහà·à·ƒà¶º තේරීම + + + Show entry at selected history state + à¶­à·à¶»à·à¶œà¶­à·Š ඉතිහà·à·ƒ තත්වයේ à¶´à·Šâ€à¶»à·€à·šà·à¶º පෙන්වන්න + + + Show + පෙන්වන්න + + + Restore entry to selected history state + à¶­à·à¶»à·à¶œà¶­à·Š ඉතිහà·à·ƒ තත්ත්වයට à¶´à·Šâ€à¶»à·€à·šà·à¶º à¶´à·Šâ€à¶»à¶­à·’à·ƒà·à¶°à¶±à¶º කරන්න + + + Restore + à¶´à·Šâ€à¶»à¶­à·Šâ€à¶ºà¶»à·Šà¶´à¶«à¶º + + + Delete selected history state + à¶­à·à¶»à·à¶œà¶­à·Š ඉතිහà·à·ƒ තත්ත්වය මකන්න + + + Delete + මකන්න + + + Delete all history + සියලුම ඉතිහà·à·ƒà¶º මකන්න + + + Delete all + සියල්ල මකන්න + + + + EditEntryWidgetMain + + Edit Entry + ඇතුළත් කිරීම සංස්කරණය කරන්න + + + Notes field + සටහන් ක්ෂේත්රය + + + Username field + පරිà·à·“ලක à¶±à·à¶¸ ක්ෂේත්රය + + + Expiration field + කල් ඉකුත් වීමේ ක්ෂේත්රය + + + Expiration Presets + කල් ඉකුත් වීමේ පෙරසිටුවීම් + + + Expiration presets + කල් ඉකුත් වීමේ පෙරසිටුවීම් + + + Presets + පෙරසිටුවීම් + + + Url field + Url ක්ෂේත්රය + + + Download favicon for URL + URL සඳහ෠favicon à¶¶à·à¶œà¶±à·Šà¶± + + + Title field + මà·à¶­à·˜à¶šà· ක්ෂේත්රය + + + Password field + මුරපද à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶º + + + Toggle expiration + කල් ඉකුත්වීම ටොගල් කරන්න + + + Tags list + à¶§à·à¶œà·Š à¶½à·à¶ºà·’ස්තුව + + + &Username: + + + + &Title: + + + + &Password: + + + + UR&L: + + + + &Notes: + + + + Toggle notes visibility + + + + T&ags: + + + + &Expires: + + + + + EditEntryWidgetSSHAgent + + Form + à¶´à·à¶»à¶¸à¶º + + + Remove key from agent when database is closed/locked + දත්ත සමුදà·à¶º වස෠ඇති විට / අගුලු දම෠ඇති විට නියà·à¶¢à·’තයà·à¶œà·™à¶±à·Š යතුර ඉවත් කරන්න + + + Comment + අදහස් දක්වන්න + + + Add key to agent when database is opened/unlocked + දත්ත සමුදà·à¶º විවෘත කරන විට / අගුලු හරින විට නියà·à¶¢à·’තයà·à¶§ යතුර à¶‘à¶šà·Š කරන්න + + + Decrypt + විකේතනය කරන්න + + + Fingerprint + ඇඟිලි සලකුණ + + + Copy to clipboard + පසුරු පුවරුවට à¶´à·’à¶§à¶´à¶­à·Š කරන්න + + + Public key + පොදු යතුර + + + Private key + පුද්ගලික යතුර + + + Attachment + ඇමුණුම + + + External key file + à¶¶à·à·„à·’à¶» යතුරු ගොනුව + + + Add to agent + නියà·à¶¢à·’තයà·à¶§ à¶‘à¶šà¶­à·” කරන්න + + + Remove from agent + නියà·à¶¢à·’තයà·à¶œà·™à¶±à·Š ඉවත් කරන්න + + + External file + à¶¶à·à·„à·’à¶» ගොනුව + + + Browser for key file + යතුරු ගොනුව සඳහ෠බ්â€à¶»à·€à·Šà·ƒà¶»à¶º + + + Browse… + Button for opening file dialog + පිරික්සන්න... + + + Generate + à¶‹à¶­à·Šà¶´à·à¶¯à¶±à¶º කරන්න + + + Select attachment file + ඇමුණුම් ගොනුව à¶­à·à¶»à¶±à·Šà¶± + + + Require user confirmation when this key is used + මෙම යතුර à¶·à·à·€à·’ත෠කරන විට පරිà·à·“ලක තහවුරු කිරීම à¶…à·€à·à·Šâ€à¶º වේ + + + n/a + à¶…/නෙà·à·€à·™à·Š + + + Remove key from agent after + පසුව නියà·à¶¢à·’තයà·à¶œà·™à¶±à·Š යතුර ඉවත් කරන්න + + + Remove key from agent after specified seconds + නිà·à·Šà¶ à·’à¶­ à¶­à¶­à·Šà¶´à¶» වලින් පසුව නියà·à¶¢à·’තයà·à¶œà·™à¶±à·Š යතුර ඉවත් කරන්න + + + seconds + à¶­à¶­à·Šà¶´à¶» + + + + EditGroupWidget + + Group + සමූහය + + + Icon + නිරූපකය + + + Properties + දේපළ + + + Add group + à¶šà¶«à·Šà¶©à·à¶ºà¶¸ à¶‘à¶šà¶­à·” කරන්න + + + Edit group + à¶šà¶«à·Šà¶©à·à¶ºà¶¸ සංස්කරණය කරන්න + + + Group has unsaved changes + සමූහයට නොසුරà·à¶šà·’ වෙනස්කම් ඇත + + + Browser Integration + බ්රවුසර à¶’à¶šà·à¶¶à¶¯à·Šà¶° කිරීම + + + Enable + සබල කරන්න + + + Disable + අක්රිය කරන්න + + + Inherit from parent group (%1) + මà·à¶´à·’ය à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·™à¶±à·Š උරුමය (%1) + + + + EditGroupWidgetBrowser + + These settings affect to the group's behaviour with the browser extension. + මෙම à·ƒà·à¶šà·ƒà·“ම් à¶¶à·Šâ€à¶»à·€à·”සර දිගුව සමඟ'à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·š à·„à·à·ƒà·’රීමට බලපà·à¶ºà·’. + + + Hide entries from browser extension: + à¶¶à·Šâ€à¶»à·€à·”සර දිගුවෙන් ඇතුළත් කිරීම් සඟවන්න: + + + Hide entries from browser extension toggle for this and sub groups + මෙම සහ à¶‹à¶´ à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š සඳහ෠බ්â€à¶»à·€à·”සර දිගු ටොගලයෙන් ඇතුළත් කිරීම් සඟවන්න + + + Skip Auto-Submit for entries: + ඇතුළත් කිරීම් සඳහ෠ස්වයංක්â€à¶»à·“යව ඉදිරිපත් කිරීම මඟ හරින්න: + + + Skip Auto-Submit toggle for this and sub groups + මෙය සහ à¶‹à¶´ à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š සඳහ෠ස්වයංක්â€à¶»à·“ය ඉදිරිපත් කිරීම ටොගලය මඟ හරින්න + + + Use entries only with HTTP Basic Auth: + HTTP මූලික Auth සමඟ පමණක් ඇතුළත් කිරීම් à¶·à·à·€à·’ත෠කරන්න: + + + Only HTTP Auth toggle for this and sub groups + මෙම සහ à¶‹à¶´ à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š සඳහ෠HTTP Auth පමණක් ටොගල කරන්න + + + Do not use entries with HTTP Basic Auth: + HTTP මූලික Auth සමඟ ඇතුළත් කිරීම් à¶·à·à·€à·’ත෠නොකරන්න: + + + Do not use HTTP Auth toggle for this and sub groups + මෙය සහ à¶‹à¶´ à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š සඳහ෠HTTP Auth ටොගල් à¶·à·à·€à·’ත෠නොකරන්න + + + Omit WWW subdomain from matching: + WWW à¶‹à¶´ වසම à¶œà·à¶½à¶´à·“මෙන් ඉවත් කරන්න: + + + Omit WWW subdomain from matching toggle for this and sub groups + මෙය සහ à¶‹à¶´ à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š සඳහ෠ගà·à·…පෙන ටොගල් වලින් WWW à¶‹à¶´ වසම ඉවත් කරන්න + + + Restrict matching to given browser key: + + + + Restrict matching to given browser key toggle for this and sub groups + + + + + EditGroupWidgetKeeShare + + Sharing mode field + බෙදà·à¶œà·à¶±à·“මේ මà·à¶¯à·’ලියේ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶º + + + Password field + මුරපද à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶º + + + Type: + වර්ගය: + + + Password: + මුරපදය: + + + Path: + මà·à¶»à·Šà¶œà¶º: + + + Path to share file field + ගොනු à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶º බෙද෠ගà·à¶±à·“මට මà·à¶»à·Šà¶œà¶º + + + Browse for share file + ගොනු බෙදà·à¶œà·à¶±à·“ම සඳහ෠බ්â€à¶»à·€à·”ස් කරන්න + + + Browse… + පිරික්සන්න... + + + Clear fields + හිස් à¶šà·Šà·‚à·šà¶­à·Šà¶» + + + Clear + à¶´à·à·„à·à¶¯à·’ලිව + + + Inactive + අක්රියයි + + + Import + ආනයන + + + Export + අපනයන + + + Synchronize + සමමුහුර්ත කරන්න + + + Your KeePassXC version does not support sharing this container type. +Supported extensions are: %1. + ඔබගේ KeePassXC අනුවà·à¶¯à¶º මෙම à¶¶à·„à·à¶½à·”ම් වර්ගය බෙද෠ගà·à¶±à·“මට සහà·à¶º නොදක්වයි. +සහà·à¶º දක්වන දිගු වන්නේ: %1. + + + %1 is already being exported by this database. + %1 දà·à¶±à¶§à¶¸à¶­à·Š මෙම දත්ත සමුදà·à¶º මගින් අපනයනය කෙරේ. + + + %1 is already being imported by this database. + %1 දà·à¶±à¶§à¶¸à¶­à·Š මෙම දත්ත සමුදà·à¶º මගින් ආයà·à¶­ කෙරේ. + + + %1 is being imported and exported by different groups in this database. + %1 මෙම දත්ත ගබඩà·à·€à·š විවිධ à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š විසින් ආනයනය සහ අපනයනය කරනු à¶½à·à¶¶à·š. + + + KeeShare is currently disabled. You can enable import/export in the application settings. + KeeShare is a proper noun + KeeShare දà·à¶±à¶§ à¶…à¶¶à¶½ à¶šà¶» ඇත. යෙදුම් à·ƒà·à¶šà·ƒà·“ම් තුළ ඔබට ආයà·à¶­/අපනයනය සබල à¶šà·… à·„à·à¶š. + + + Database export is currently disabled by application settings. + යෙදුම් à·ƒà·à¶šà·ƒà·“ම් මගින් දත්ත සමුදà·à¶º අපනයනය දà·à¶±à¶§ à¶…à¶¶à¶½ à¶šà¶» ඇත. + + + Database import is currently disabled by application settings. + යෙදුම් à·ƒà·à¶šà·ƒà·“ම් මගින් දත්ත සමුද෠ආයà·à¶­ කිරීම දà·à¶±à¶§ à¶…à¶¶à¶½ à¶šà¶» ඇත. + + + KeeShare container + KeeShare කන්ටේනරය + + + KeeShare signed container + KeeShare අත්සන් à¶šà·… à¶¶à·„à·à¶½à·”ම + + + Select import source + ආනයන මූලà·à·à·Šâ€à¶»à¶º à¶­à·à¶»à¶±à·Šà¶± + + + Select export target + අපනයන ඉලක්කය à¶­à·à¶»à¶±à·Šà¶± + + + Select import/export file + ආයà·à¶­/අපනයන ගොනුව à¶­à·à¶»à¶±à·Šà¶± + + + + EditGroupWidgetMain + + Edit Group + à¶šà¶«à·Šà¶©à·à¶ºà¶¸ සංස්කරණය කරන්න + + + Toggle expiration + කල් ඉකුත්වීම ටොගල් කරන්න + + + Expires: + කල් ඉකුත් වේ: + + + Name field + à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶º නම් කරන්න + + + Expiration field + කල් ඉකුත් වීමේ ක්ෂේත්රය + + + Use default Auto-Type sequence of parent group + මà·à¶´à·’ය à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·š පෙරනිමි ස්වයං-වර්ග අනුපිළිවෙල à¶·à·à·€à·’ත෠කරන්න + + + Auto-Type: + ස්වයං-වර්ගය: + + + Search: + සොයන්න: + + + Auto-Type toggle for this and sub groups + මෙය සහ à¶‹à¶´ à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š සඳහ෠ස්වයංක්â€à¶»à·“ය ටයිප් ටොගල කරන්න + + + Notes: + සටහන්: + + + Default auto-type sequence field + පෙරනිමි ස්වයං-වර්ග අනුපිළිවෙල ක්ෂේත්රය + + + Notes field + සටහන් ක්ෂේත්රය + + + Name: + නම: + + + Set default Auto-Type sequence + පෙරනිමි ස්වයං-වර්ග අනුපිළිවෙල සකසන්න + + + Search toggle for this and sub groups + මෙය සහ à¶‹à¶´ à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š සඳහ෠සෙවුම් ටොගල් කරන්න + + + + EditWidgetIcons + + Use default icon + පෙරනිමි නිරූපකය à¶·à·à·€à·’ත෠කරන්න + + + Use custom icon + අභිරුචි නිරූපකය à¶·à·à·€à·’ත෠කරන්න + + + Choose icon… + අයිකනය…තà·à¶»à¶±à·Šà¶± + + + Set the URL to use to search for a favicon + ෆේවිකොන් සෙවීමට à¶·à·à·€à·’ත෠කිරීමට URL à¶‘à¶š සකසන්න + + + Favicon URL + Favicon URL + + + Download favicon for URL + URL සඳහ෠favicon à¶¶à·à¶œà¶±à·Šà¶± + + + Download favicon + Favicon à¶¶à·à¶œà¶±à·Šà¶± + + + Apply selected icon to subgroups and entries + à¶­à·à¶»à·à¶œà¶­à·Š නිරූපකය à¶‹à¶´ සමූහ සහ ඇතුළත් කිරීම් සඳහ෠යොදන්න + + + Apply icon to… + නිරූපකය…වෙත යොදන්න + + + Apply to this group only + මෙම සමූහයට පමණක් අයදුම් කරන්න + + + Also apply to child groups + ළම෠කණ්ඩà·à¶ºà¶¸à·Š සඳහ෠ද අදà·à·… වේ + + + Also apply to child entries + ළම෠ඇතුළත් කිරීම් සඳහ෠ද අදà·à·… වේ + + + Also apply to all children + සියලුම දරුවන්ටද අදà·à·… වේ + + + Unable to fetch favicon. + ෆේවිකොන් ලබ෠ගà·à¶±à·“මට නොහà·à¶šà·’ විය. + + + Existing icon selected. + පවතින නිරූපකය à¶­à·à¶»à· ඇත. + + + Images + රූප + + + All files + සියලුම ගොනු + + + Select Image(s) + රූප(ය) à¶­à·à¶»à¶±à·Šà¶± + + + Successfully loaded %1 of %n icon(s) + අයිකන(ය) %n කින් %1 à¶šà·Š à·ƒà·à¶»à·Šà¶®à¶šà·€ පූරණය කරන ලදීඅයිකන(ය) %n කින් %1 à¶šà·Š à·ƒà·à¶»à·Šà¶®à¶šà·€ පූරණය කරන ලදී + + + No icons were loaded + අයිකන කිසිවක් පූරණය à¶šà¶» à¶±à·à¶­ + + + %n icon(s) already exist in the database + %n නිරූපක(ය) දà·à¶±à¶§à¶¸à¶­à·Š දත්ත ගබඩà·à·€à·š පවතී%n නිරූපක(ය) දà·à¶±à¶§à¶¸à¶­à·Š දත්ත ගබඩà·à·€à·š පවතී + + + The following icon(s) failed: + à¶´à·„à¶­ නිරූපකය(ය) à¶…à·ƒà·à¶»à·Šà¶®à¶š විය:à¶´à·„à¶­ නිරූපකය(ය) à¶…à·ƒà·à¶»à·Šà¶®à¶š විය: + + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + + + + + EditWidgetProperties + + Created: + à·ƒà·à¶¯à¶± ලදී: + + + Datetime created + දින වේලà·à·€ නිර්මà·à¶«à¶º කරන ලදී + + + Modified: + වෙනස් කරන ලද: + + + Datetime modified + දිනය වෙනස් කරන ලදී + + + Accessed: + ප්රවේ෠විය: + + + Datetime accessed + දින වේලà·à·€ à¶´à·Šâ€à¶»à·€à·šà· විය + + + Uuid: + Uuid: + + + Unique ID + අද්විතීය à·„à·à¶³à·”නුම්පත + + + Plugin Data + ප්ලගින දත්ත + + + Plugin data + ප්ලගින දත්ත + + + Remove selected plugin data + à¶­à·à¶»à·à¶œà¶­à·Š ප්ලගින දත්ත ඉවත් කරන්න + + + Remove + ඉවතලන්න + + + Delete plugin data? + ප්ලගින දත්ත මකන්නද? + + + Do you really want to delete the selected plugin data? +This may cause the affected plugins to malfunction. + ඔබට ඇත්තටම à¶­à·à¶»à·à¶œà¶­à·Š ප්ලගින දත්ත මà·à¶šà·“මට à¶…à·€à·à·Šâ€à¶ºà¶¯? +මෙය බලපෑමට ලක් වූ ප්ලගීන à¶…à¶šà·Šâ€à¶»à·’ය වීමට à·„à·šà¶­à·” විය à·„à·à¶š. + + + Key + යතුර + + + Value + අගය + + + + Entry + + %1 - Clone + %1 - à¶šà·Šà¶½à·à¶±à¶º + + + + EntryAttachments + + Cannot open file "%1" + "%1"ගොනුව විවෘත à¶šà·… නොහà·à¶š + + + + EntryAttachmentsModel + + Name + නම + + + Size + ප්රමà·à¶«à¶º + + + + EntryAttachmentsWidget + + Form + à¶´à·à¶»à¶¸à¶º + + + Attachments + ඇමුණුම් + + + Add new attachment + නව ඇමුණුමක් à¶‘à¶šà·Š කරන්න + + + Add + à¶‘à¶šà¶­à·” + + + Remove selected attachment + à¶­à·à¶»à·à¶œà¶­à·Š ඇමුණුම ඉවත් කරන්න + + + Remove + ඉවතලන්න + + + Rename selected attachment + à¶­à·à¶»à·à¶œà¶­à·Š ඇමුණුම à¶±à·à·€à¶­ නම් කරන්න + + + Rename + à¶±à·à·€à¶­ නම් කරන්න + + + Open selected attachment + à¶­à·à¶»à·à¶œà¶­à·Š ඇමුණුම විවෘත කරන්න + + + Open + විවෘත + + + Save selected attachment to disk + à¶­à·à¶»à·à¶œà¶­à·Š ඇමුණුම à¶­à·à¶§à·’යට සුරකින්න + + + Save + සුරකින්න + + + Select files + ගොනු à¶­à·à¶»à¶±à·Šà¶± + + + Confirm remove + ඉවත් කිරීම තහවුරු කරන්න + + + Are you sure you want to remove %n attachment(s)? + ඔබට ඇමුණුම්(ය) %n à¶šà·Š ඉවත් කිරීමට à¶…à·€à·à·Šâ€à¶º à¶¶à·€ විà·à·Šà·€à·à·ƒà¶¯?ඔබට ඇමුණුම්(ය) %n à¶šà·Š ඉවත් කිරීමට à¶…à·€à·à·Šâ€à¶º à¶¶à·€ විà·à·Šà·€à·à·ƒà¶¯? + + + Save attachments + ඇමුණුම් සුරකින්න + + + Unable to create directory: +%1 + à¶±à·à¶¸à·à·€à¶½à·’ය සෑදිය නොහà·à¶š: +%1 + + + Are you sure you want to overwrite the existing file "%1" with the attachment? + ඇමුණුම සමඟ පවතින ගොනු "%1" උඩින් ලිවීමට à¶…à·€à·à·Šâ€à¶º à¶¶à·€ ඔබට විà·à·Šà·€à·à·ƒà¶¯? + + + Confirm overwrite + උඩින් ලිවීම තහවුරු කරන්න + + + Unable to save attachments: +%1 + ඇමුණුම් සුරà·à¶šà·“මට නොහà·à¶š: +%1 + + + Unable to open attachment: +%1 + ඇමුණුම විවෘත à¶šà·… නොහà·à¶š: +%1 + + + Unable to open attachments: +%1 + ඇමුණුම් විවෘත à¶šà·… නොහà·à¶š: +%1 + + + Unable to open file(s): +%1 + ගොනු (ය) විවෘත à¶šà·… නොහà·à¶š: +%1ගොනු (ය) විවෘත à¶šà·… නොහà·à¶š: +%1 + + + Confirm Overwrite Attachment + උඩින් ලිවීමේ ඇමුණුම තහවුරු කරන්න + + + Attachment "%1" already exists. +Would you like to overwrite the existing attachment? + ඇමුණුම "%1" දà·à¶±à¶§à¶¸à¶­à·Š පවතී. +පවතින ඇමුණුම උඩින් ලිවීමට ඔබ à¶šà·à¶¸à¶­à·’ද? + + + Confirm Attachment + ඇමුණුම තහවුරු කරන්න + + + %1 is a big file (%2 MB). +Your database may get very large and reduce performance. + +Are you sure to add this file? + %1 යනු විà·à·à¶½ ගොනුවකි (%2 MB). +ඔබේ දත්ත සමුදà·à¶º ඉත෠විà·à·à¶½ වී à¶šà·à¶»à·Šà¶º à·ƒà·à¶°à¶±à¶º à¶…à¶©à·” විය à·„à·à¶š. + +ඔබට මෙම ගොනුව à¶‘à¶šà·Š කිරීමට විà·à·Šà·€à·à·ƒà¶¯? + + + Attachment modified + ඇමුණුම වෙනස් කරන ලදී + + + The attachment '%1' was modified. +Do you want to save the changes to your database? + ඇමුණුම '%1' වෙනස් කරන ලදී. +ඔබගේ දත්ත ගබඩà·à·€à·š වෙනස්කම් සුරà·à¶šà·“මට ඔබට à¶…à·€à·à·Šâ€à¶ºà¶¯? + + + Saving attachment failed + ඇමුණුම සුරà·à¶šà·“ම à¶…à·ƒà·à¶»à·Šà¶®à¶š විය + + + Saving updated attachment failed. +Error: %1 + යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± ඇමුණුම සුරà·à¶šà·“ම à¶…à·ƒà·à¶»à·Šà¶®à¶š විය. +දà·à·‚ය: %1 + + + + EntryAttributesModel + + Name + නම + + + + EntryHistoryModel + + Current (%1) + වත්මන් (%1) + + + Last modified + අවසන් වරට වෙනස් කරන ලදී + + + Age + වයස + + + Difference + වෙනස + + + Size + ප්රමà·à¶«à¶º + + + Title + à·à·“ර්ෂය + + + Username + පරිà·à·“ලක à¶±à·à¶¸à¶º + + + Password + මුරපදය + + + URL + à¶’.à·ƒ.නි. + + + Notes + සටහන් + + + Custom Attributes + අභිරුචි ගුණà·à¶‚à¶œ + + + Icon + නිරූපකය + + + Color + වර්ණ + + + Expiration + කල් ඉකුත්වීම + + + TOTP + TOTP + + + Custom Data + අභිරුචි දත්ත + + + Attachments + ඇමුණුම් + + + Auto-Type + ස්වයං ලිවීම + + + Tags + අනන්â€à¶ºà¶± + + + + EntryModel + + Ref: + Reference abbreviation + යොමු: + + + Never + කවදà·à·€à¶­à·Š + + + Group + සමූහය + + + Title + සිරà·à·ƒà·’ය + + + Username + පරිà·à·“ලක à¶±à·à¶¸à¶º + + + Password + මුරපදය + + + URL + à¶’.à·ƒ.නි. + + + Notes + සටහන් + + + Expires + ඉකුත් වීම + + + Created + à·ƒà·à¶¯à¶± ලදි + + + Modified + සංà·à·™à·à·Šà¶°à·’තයි + + + Accessed + à¶´à·Šâ€à¶»à·€à·šà· විය + + + Attachments + ඇමුණුම් + + + Size + à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Group name + සමූහයේ නම + + + Entry title + ඇතුල්වීමේ මà·à¶­à·˜à¶šà·à·€ + + + Password Strength + මුරපදයේ à·à¶šà·Šà¶­à·’ය + + + Entry notes + ඇතුල්වීමේ සටහන් + + + Entry expires at + ඇතුල්වීම කල් ඉකුත් වේ + + + Creation date + සෑදූ දිනය + + + Last modification date + අවසà·à¶± සංà·à·à¶°à·’à¶­ දිනය + + + Last access date + අවසà·à¶± à¶´à·Šâ€à¶»à·€à·šà· දිනය + + + Attached files + අමුණ෠ඇති ගොනු + + + Entry size + ඇතුල්වීමේ ප්රමà·à¶«à¶º + + + Has attachments + ඇමුණුම් ඇත + + + Has TOTP + TOTP ඇත + + + Background Color + + + + + EntryPreviewWidget + + Display current TOTP value + වත්මන් TOTP අගය පෙන්වන්න + + + Close + වසන්න + + + General + ජනරà·à¶½à·Š + + + Password + මුරපදය + + + URL + à¶’.à·ƒ.නි. + + + Expiration + ඉකුත් වීම + + + Tags + අනන්â€à¶ºà¶± + + + Tags list + අනන්â€à¶ºà¶± ලේඛනය + + + Username + පරිà·à·“ලක à¶±à·à¶¸à¶º + + + Notes + සටහන් + + + Advanced + à·€à·à¶©à·’දුර + + + Attachments + ඇමුණුම් + + + Attributes + ගුණà·à¶‚à¶œ + + + Autotype + ස්වයං ලිවීම + + + Default Sequence + පෙරනිමි අනුපිළිවෙල + + + Window + කවුළුව + + + Sequence + අනුපිළිවෙල + + + Searching + සොයමින් + + + Share + බෙදà·à¶œà¶±à·Šà¶± + + + Search + සොයන්න + + + Clear + à¶´à·à·„à·à¶¯à·’ලිව + + + Never + කවදà·à·€à¶­à·Š + + + Double click to copy value + අගය à¶´à·’à¶§à¶´à¶­à·Š කිරීමට දෙවරක් ක්ලික් කරන්න + + + Enabled + සබල à¶šà¶» ඇත + + + Disabled + ආබà·à¶°à·’තයි + + + Double click to copy to clipboard + + + + + EntryURLModel + + Invalid URL + වලංගු à¶±à·à¶­à·’ URL + + + Duplicate URL + + + + + EntryView + + Fit to window + කවුළුවට à¶œà·à¶½à¶´à·š + + + Fit to contents + අන්තර්ගතයට à¶œà·à¶½à¶´à·š + + + Reset to defaults + පෙරනිමියට යළි පිහිටුවන්න + + + + %1 entry(s)... + + + + + ExportDialog + + Export options + අපනයන විකල්ප + + + Sort entries by... + ඇතුළත් කිරීම් අනුපිළිවෙළට සකසන්න... + + + You are about to export your database to an unencrypted file. +This will leave your passwords and sensitive information vulnerable! + + ඔබ ඔබේ දත්ත සමුදà·à¶º සංකේතනය නොකළ ගොනුවකට අපනයනය කිරීමට සූදà·à¶±à¶¸à·Š වේ. +මෙය ඔබගේ මුරපද සහ සංවේදී තොරතුරු අවදà·à¶±à¶¸à¶§ ලක් කරයි! + + + + database order + දත්ත සමුද෠අනුපිළිවෙල + + + name (ascending) + නම (ආරà·à·„à¶«) + + + name (descending) + නම (à¶¶à·à·ƒà·“ම) + + + unknown + නොදන්න෠+ + + Export database to HTML file + දත්ත සමුදà·à¶º HTML ගොනුවට අපනයනය කරන්න + + + HTML file + HTML ගොනුව + + + + FdoSecrets::DBusMgr + + Failed to deliver message + පණිවිඩය ලබ෠දීමට අසමත් විය + + + Failed to send reply on DBus + DBus à·„à·’ පිළිතුරු යà·à·€à·“මට අසමත් විය + + + Unknown + Unknown PID + නොදන්න෠+ + + Unknown + Unknown executable path + නොදන්න෠+ + + <i>PID: %1, Executable: %2</i> + <i>PID: 1234, Executable: /path/to/exe</i> + <i>PID: %1, à¶šà·Šâ€à¶»à·’යà·à¶­à·Šà¶¸à¶š à¶šà·… à·„à·à¶šà·’: %2</i> + + + Another secret service is running (%1).<br/>Please stop/remove it before re-enabling the Secret Service Integration. + තවත් රහස් සේවà·à·€à¶šà·Š à¶šà·Šâ€à¶»à·’යà·à¶­à·Šà¶¸à¶š වේ (%1).<br/>කරුණà·à¶šà¶» රහස් සේව෠ඒකà·à¶¶à¶¯à·Šà¶° කිරීම à¶±à·à·€à¶­ සක්â€à¶»à·’ය කිරීමට පෙර එය නවත්වන්න/ඉවත් කරන්න. + + + Failed to register DBus service at %1.<br/> + %1à¶§ DBus සේවà·à·€ ලියà·à¶´à¶¯à·’à¶‚à¶ à·’ කිරීමට අසමත් විය.<br/> + + + Failed to register service on DBus at path '%1' + '%1'මà·à¶»à·Šà¶œà¶ºà·š DBus à·„à·’ සේවà·à·€ ලියà·à¶´à¶¯à·’à¶‚à¶ à·’ කිරීමට අපොහොසත් විය + + + Failed to register database on DBus under the name '%1' + '%1'නමින් DBus à·„à·’ දත්ත සමුදà·à¶º ලියà·à¶´à¶¯à·’à¶‚à¶ à·’ කිරීමට අපොහොසත් විය + + + Failed to register session on DBus at path '%1' + '%1'මà·à¶»à·Šà¶œà¶ºà·šà¶¯à·“ DBus à·„à·’ à·ƒà·à·ƒà·’ය ලියà·à¶´à¶¯à·’à¶‚à¶ à·’ කිරීමට අපොහොසත් විය + + + Failed to register item on DBus at path '%1' + '%1'මà·à¶»à·Šà¶œà¶ºà·š DBus à·„à·’ අයිතමය ලියà·à¶´à¶¯à·’à¶‚à¶ à·’ කිරීමට අසමත් විය + + + Failed to register prompt object on DBus at path '%1' + '%1'මà·à¶»à·Šà¶œà¶ºà·š DBus à·„à·’ ඉක්මන් වස්තුව ලියà·à¶´à¶¯à·’à¶‚à¶ à·’ කිරීමට අසමත් විය + + + + FdoSecrets::Item + + Entry "%1" from database "%2" was used by %3 + දත්ත සමුදà·à¶º "%2" වෙතින් "%1" ඇතුළත් කිරීම %3විසින් à¶·à·à·€à·’ත෠කරන ලදී + + + + FdoSecrets::Service + + %n Entry(s) was used by %1 + %1 is the name of an application + %n ඇතුළත් කිරීම් (ය) %1විසින් à¶·à·à·€à·’ත෠කරන ලදී%n ඇතුළත් කිරීම් (ය) %1විසින් à¶·à·à·€à·’ත෠කරන ලදී + + + + FdoSecrets::SettingsClientModel + + Unknown + නොදන්න෠+ + + Non-existing/inaccessible executable path. Please double-check the client is legit. + නොපවතින / à¶´à·Šâ€à¶»à·€à·šà· විය නොහà·à¶šà·’ à¶šà·Šâ€à¶»à·’යà·à¶­à·Šà¶¸à¶š à¶šà·… à·„à·à¶šà·’ මà·à¶»à·Šà¶œà¶º. කරුණà·à¶šà¶» සේවà·à¶¯à·à¶ºà¶šà¶ºà· නීත්â€à¶ºà·à¶±à·”à¶šà·–à¶½ දà·à¶ºà·’ දෙවරක් පරීක්ෂ෠කරන්න. + + + + FdoSecrets::SettingsDatabaseModel + + Unlock to show + පෙන්වීමට අගුලු හරින්න + + + None + කිසිවක් à¶±à·à¶­ + + + + FdoSecrets::UnlockPrompt + + %1 (PID: %2) + %1 (PID: %2) + + + + FdoSecretsPlugin + + <b>Fdo Secret Service:</b> %1 + <b>Fdo රහස් සේවà·à·€:</b> %1 + + + + Group + + [empty] + group has no children + [empty] + + + %1 - Clone + %1 - à¶šà·Šà¶½à·à¶±à¶º + + + + HibpDownloader + + Online password validation failed + සබà·à¶³à·’ මුරපදය වලංගු කිරීම à¶…à·ƒà·à¶»à·Šà¶®à¶š විය + + + + IconDownloaderDialog + + Download Favicons + Favicons à¶¶à·à¶œà¶±à·Šà¶± + + + Cancel + අවලංගු + + + Having trouble downloading icons? +You can enable the DuckDuckGo website icon service in the security section of the application settings. + අයිකන à¶¶à·à¶œà·à¶±à·“මේ à¶œà·à¶§à¶½à·”වක් තිබේද? +ඔබට යෙදුම් à·ƒà·à¶šà·ƒà·”ම් වල ආරක්ෂක à¶…à¶‚à·à¶ºà·š DuckDuckGo වෙබ් අඩවි අයිකන සේවà·à·€ සබල à¶šà·… à·„à·à¶š. + + + Close + වසන්න + + + URL + à¶’.à·ƒ.නි. + + + Status + à¶­à¶­à·Šâ€à·€à¶º + + + Please wait, processing entry list… + කරුණà·à¶šà¶» à¶»à·à¶³à·“ සිටින්න, à¶´à·Šâ€à¶»à·€à·šà· à¶½à·à¶ºà·’ස්තුව…සකසමින් + + + Downloading… + à¶¶à·à¶œà·à¶±à·™à¶¸à·’න්… + + + Ok + හරි + + + Already Exists + දà·à¶±à¶§à¶¸à¶­à·Š පවතී + + + Download Failed + à¶¶à·à¶œà·à¶±à·“මට අසමත් විය + + + Downloading favicons (%1/%2)… + …බà·à¶œà¶­ කිරීම (%2)%1 + + + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + විà·à·à¶»à¶¯ පිටුව + + + Entry count: %1 + + + + Group + සමූහය + + + Title + සිරà·à·ƒà·’ය + + + Username + පරිà·à·“ලක à¶±à·à¶¸à¶º + + + Password + මුරපදය + + + Url + + + + + ImportWizardPageSelect + + Form + à¶´à·à¶»à¶¸à¶º + + + Import File Selection + + + + Password: + මුරපදය: + + + Key File: + යතුරු ගොනුව: + + + Browse… + පිරික්සන්න... + + + Import Into: + + + + New Database + නව දත්තසමුදà·à¶º + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + OPVault අරින්න + + + Select import file + + + + All files + සියළුම ගොනු + + + Key files + යතුරු ගොනු + + + Select key file + යතුරු ගොනුව à¶­à·à¶»à¶±à·Šà¶± + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + + + KMessageWidget + + &Close + &වසන්න + + + Close message + පණිවිඩය වසන්න + + + + Kdbx3Reader + + Missing database headers + දත්ත සමුද෠à·à·“ර්ෂ අස්ථà·à¶±à¶œà¶­ වී ඇත + + + Unable to calculate database key + දත්ත සමුද෠යතුර ගණනය à¶šà·… නොහà·à¶š + + + Unable to issue challenge-response: %1 + අභියà·à¶œ-à¶´à·Šâ€à¶»à¶­à·’à¶ à·à¶»à¶º නිකුත් à¶šà·… නොහà·à¶š: %1 + + + Invalid credentials were provided, please try again. +If this reoccurs, then your database file may be corrupt. + වලංගු නොවන à¶…à¶šà·Šà¶­à¶´à¶­à·Šâ€à¶» සපය෠ඇත, කරුණà·à¶šà¶» à¶±à·à·€à¶­ à¶‹à¶­à·Šà·ƒà·à·„ කරන්න. +මෙය à¶±à·à·€à¶­ සිදු වුවහොත්, ඔබගේ දත්ත සමුද෠ගොනුව දූෂිත විය à·„à·à¶š. + + + Header doesn't match hash + 'à·„à·à·‚à·Š සමඟ නොගà·à¶½à¶´à·š + + + Invalid header id size + වලංගු නොවන à·à·“ර්ෂ ID à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Invalid header field length: field %1 + වලංගු නොවන à·à·“ර්ෂ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» දිග: à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» %1 + + + Invalid header data length: field %1, %2 expected, %3 found + වලංගු නොවන à·à·“ර්ෂ දත්ත දිග: à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» %1, %2 à¶…à¶´à·šà¶šà·Šà·‚à·’à¶­, %3 හමු විය + + + + Kdbx3Writer + + Invalid symmetric cipher IV size. + IV = Initialization Vector for symmetric cipher + වලංගු නොවන සමමිතික à¶šà·šà¶­à·à¶‚à¶š IV à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º. + + + Unable to issue challenge-response: %1 + අභියà·à¶œ-à¶´à·Šâ€à¶»à¶­à·’à¶ à·à¶»à¶º නිකුත් à¶šà·… නොහà·à¶š: %1 + + + Unable to calculate database key + දත්ත සමුද෠යතුර ගණනය à¶šà·… නොහà·à¶š + + + + Kdbx4Reader + + missing database headers + දත්ත සමුද෠à·à·“ර්ෂ අතුරුදහන් + + + Unable to calculate database key: %1 + දත්ත සමුද෠යතුර ගණනය à¶šà·… නොහà·à¶š: %1 + + + Invalid header checksum size + වලංගු නොවන à·à·“ර්ෂ චෙක්සම් à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Header SHA256 mismatch + à·à·“ර්ෂය SHA256 නොගà·à¶½à¶´à·“ම + + + Invalid credentials were provided, please try again. +If this reoccurs, then your database file may be corrupt. + වලංගු නොවන à¶…à¶šà·Šà¶­à¶´à¶­à·Šâ€à¶» සපය෠ඇත, කරුණà·à¶šà¶» à¶±à·à·€à¶­ à¶‹à¶­à·Šà·ƒà·à·„ කරන්න. +මෙය à¶±à·à·€à¶­ සිදු වුවහොත්, ඔබගේ දත්ත සමුද෠ගොනුව දූෂිත විය à·„à·à¶š. + + + (HMAC mismatch) + (HMAC නොගà·à¶½à¶´à·“ම) + + + Unknown cipher + නොදන්න෠කේතà·à¶‚කය + + + Invalid header id size + වලංගු නොවන à·à·“ර්ෂ ID à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Invalid header field length: field %1 + වලංගු නොවන à·à·“ර්ෂ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» දිග: à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» %1 + + + Invalid header data length: field %1, %2 expected, %3 found + වලංගු නොවන à·à·“ර්ෂ දත්ත දිග: à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» %1, %2 à¶…à¶´à·šà¶šà·Šà·‚à·’à¶­, %3 හමු විය + + + Failed to open buffer for KDF parameters in header + à·à·“ර්ෂයේ KDF à¶´à¶»à·à¶¸à·’à¶­à·’ සඳහ෠බෆරය විවෘත කිරීමට අසමත් විය + + + Unsupported key derivation function (KDF) or invalid parameters + සහà·à¶º නොදක්වන යතුරු ව්â€à¶ºà·”ත්පන්න à·à·Šâ€à¶»à·’තය (KDF) හ෠වලංගු නොවන à¶´à¶»à·à¶¸à·’à¶­à·’ + + + Legacy header fields found in KDBX4 file. + KDBX4 ගොනුවේ à¶´à·à¶»à¶«à·’ à·à·“ර්ෂ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» හමු විය. + + + Invalid inner header id size + වලංගු නොවන à¶…à¶·à·Šâ€à¶ºà¶±à·Šà¶­à¶» à·à·“ර්ෂ ID à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Invalid inner header field length: field %1 + අවලංගු à¶…à¶·à·Šâ€à¶ºà¶±à·Šà¶­à¶» à·à·“ර්ෂ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» දිග: à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» %1 + + + Invalid inner header data length: field %1, %2 expected, %3 found + වලංගු නොවන à¶…à¶·à·Šâ€à¶ºà¶±à·Šà¶­à¶» à·à·“ර්ෂ දත්ත දිග: à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» %1, %2 à¶…à¶´à·šà¶šà·Šà·‚à·’à¶­, %3 හමු විය + + + Invalid inner header binary size + අවලංගු à¶…à¶·à·Šâ€à¶ºà¶±à·Šà¶­à¶» à·à·“ර්ෂ ද්විමය à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Unsupported KeePass variant map version. + Translation: variant map = data structure for storing meta data + සහà·à¶º නොදක්වන KeePass à¶´à·Šâ€à¶»à¶·à·šà¶¯ සිතියම් අනුවà·à¶¯à¶º. + + + Invalid variant map entry name length + Translation: variant map = data structure for storing meta data + වලංගු නොවන à¶´à·Šâ€à¶»à¶·à·šà¶¯ සිතියම් ඇතුළත් කිරීමේ නම දිග + + + Invalid variant map entry name data + Translation: variant map = data structure for storing meta data + වලංගු නොවන à¶´à·Šâ€à¶»à¶·à·šà¶¯ සිතියම් ඇතුළත් à¶±à·à¶¸ දත්ත + + + Invalid variant map entry value length + Translation: variant map = data structure for storing meta data + වලංගු නොවන à¶´à·Šâ€à¶»à¶·à·šà¶¯ සිතියම් ඇතුළත් කිරීමේ අගය දිග + + + Invalid variant map entry value data + Translation comment: variant map = data structure for storing meta data + වලංගු නොවන à¶´à·Šâ€à¶»à¶·à·šà¶¯ සිතියම් ඇතුළත් කිරීමේ අගය දත්ත + + + Invalid variant map Bool entry value length + Translation: variant map = data structure for storing meta data + වලංගු නොවන à¶´à·Šâ€à¶»à¶·à·šà¶¯ සිතියමක් Bool ඇතුල් වීමේ අගය දිග + + + Invalid variant map Int32 entry value length + Translation: variant map = data structure for storing meta data + වලංගු නොවන à¶´à·Šâ€à¶»à¶·à·šà¶¯ සිතියම Int32 ඇතුළත් කිරීමේ අගය දිග + + + Invalid variant map UInt32 entry value length + Translation: variant map = data structure for storing meta data + වලංගු නොවන à¶´à·Šâ€à¶»à¶·à·šà¶¯ සිතියම UInt32 à¶´à·Šâ€à¶»à·€à·šà· අගය දිග + + + Invalid variant map Int64 entry value length + Translation: variant map = data structure for storing meta data + වලංගු නොවන à¶´à·Šâ€à¶»à¶·à·šà¶¯ සිතියම Int64 ඇතුළත් කිරීමේ අගය දිග + + + Invalid variant map UInt64 entry value length + Translation: variant map = data structure for storing meta data + වලංගු නොවන à¶´à·Šâ€à¶»à¶·à·šà¶¯ සිතියම UInt64 à¶´à·Šâ€à¶»à·€à·šà· අගය දිග + + + Invalid variant map entry type + Translation: variant map = data structure for storing meta data + වලංගු නොවන à¶´à·Šâ€à¶»à¶·à·šà¶¯ සිතියම් ඇතුළත් කිරීමේ වර්ගය + + + Invalid variant map field type size + Translation: variant map = data structure for storing meta data + වලංගු නොවන à¶´à·Šâ€à¶»à¶·à·šà¶¯ සිතියම් à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» වර්ග à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + + Kdbx4Writer + + Invalid symmetric cipher algorithm. + වලංගු නොවන සමමිතික à¶šà·šà¶­à·à¶‚à¶š ඇල්ගොරිතම. + + + Invalid symmetric cipher IV size. + IV = Initialization Vector for symmetric cipher + වලංගු නොවන සමමිතික à¶šà·šà¶­à·à¶‚à¶š IV à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º. + + + Unable to calculate database key: %1 + දත්ත සමුද෠යතුර ගණනය à¶šà·… නොහà·à¶š: %1 + + + Failed to serialize KDF parameters variant map + Translation comment: variant map = data structure for storing meta data + KDF à¶´à¶»à·à¶¸à·’à¶­à·’ à¶´à·Šâ€à¶»à¶·à·šà¶¯ සිතියම අනුක්â€à¶»à¶¸à·’à¶š කිරීමට අසමත් විය + + + + KdbxReader + + Invalid cipher uuid length: %1 (length=%2) + වලංගු නොවන à¶šà·šà¶­à·à¶‚à¶š uuid දිග: %1 (දිග=%2) + + + Unable to parse UUID: %1 + UUID විග්â€à¶»à·„ à¶šà·… නොහà·à¶š: %1 + + + Unsupported cipher + සහà·à¶º නොදක්වන à¶šà·šà¶­à·à¶‚කය + + + Invalid compression flags length + වලංගු නොවන සම්පීඩන කොඩි දිග + + + Unsupported compression algorithm + සහà·à¶º නොදක්වන සම්පීඩන ඇල්ගොරිතම + + + Invalid master seed size + වලංගු නොවන à¶´à·Šâ€à¶»à¶°à·à¶± à¶¶à·“à¶¢ à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Invalid transform seed size + වලංගු නොවන පරිවර්තන à¶¶à·“à¶¢ à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Invalid transform rounds size + අවලංගු පරිවර්තන වට à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Invalid start bytes size + වලංගු නොවන ආරම්භක බයිට් à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Invalid random stream id size + අවලංගු අහඹු à¶´à·Šâ€à¶»à·€à·à·„ à·„à·à¶³à·”නුම්පත à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Invalid inner random stream cipher + අවලංගු à¶…à¶·à·Šâ€à¶ºà¶±à·Šà¶­à¶» අහඹු à¶´à·Šâ€à¶»à·€à·à·„ à¶šà·šà¶­à·à¶‚කය + + + Failed to read database file. + දත්ත සමුද෠ගොනුව කියවීමට අසමත් විය. + + + The selected file is an old KeePass 1 database (.kdb). + +You can import it by clicking on Database > 'Import KeePass 1 database…'. +This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. + à¶­à·à¶»à·à¶œà¶­à·Š ගොනුව à¶´à·à¶»à¶«à·’ KeePass 1 දත්ත ගබඩà·à·€à¶šà·’ (.kdb). + +Database > 'Import KeePass 1 database…' මත ක්ලික් කිරීමෙන් ඔබට එය ආයà·à¶­ à¶šà·… à·„à·à¶š. +මෙය à¶‘à¶šà·Š-මà·à¶»à·Šà¶œ සංක්â€à¶»à¶¸à¶«à¶ºà¶šà·’. à¶´à·à¶»à¶«à·’ KeePassX 0.4 අනුවà·à¶¯à¶º සමඟ ආනයනය කරන ලද දත්ත ගබඩà·à·€ විවෘත කිරීමට ඔබට't නොහà·à¶šà·’ විය. + + + Not a KeePass database. + KeePass දත්ත ගබඩà·à·€à¶šà·Š නොවේ. + + + Unsupported KeePass 2 database version. + සහà·à¶º නොදක්වන KeePass 2 දත්ත සමුද෠අනුවà·à¶¯à¶º. + + + + KdbxXmlReader + + XML parsing failure: %1 + XML විග්â€à¶»à·„ කිරීමේ à¶…à·ƒà·à¶»à·Šà¶®à¶šà¶­à·Šà·€à¶º: %1 + + + No root group + මූල à¶šà¶«à·Šà¶©à·à¶ºà¶¸à¶šà·Š නොමà·à¶­ + + + XML error: +%1 +Line %2, column %3 + XML දà·à·‚ය: +%1 +පේළිය %2, තීරුව %3 + + + Missing icon uuid or data + අයිකනය uuid හ෠දත්ත අතුරුදහන් + + + Missing custom data key or value + අභිරුචි දත්ත යතුර හ෠අගය අස්ථà·à¶±à¶œà¶­ වී ඇත + + + Multiple group elements + à¶¶à·„à·” à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š à¶…à¶‚à¶œ + + + Null group uuid + Null group uuid + + + Invalid group icon number + වලංගු නොවන à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š අයිකන අංකය + + + Invalid EnableAutoType value + වලංගු නොවන EnableAutoType අගය + + + Invalid EnableSearching value + වලංගු නොවන EnableSearching අගය + + + No group uuid found + uuid සමූහයක් හමු නොවිණි + + + Null DeleteObject uuid + à·à·”න්â€à¶º DeleteObject uuid + + + Missing DeletedObject uuid or time + DeletedObject uuid හ෠වේලà·à·€ අස්ථà·à¶±à¶œà¶­ වී ඇත + + + Null entry uuid + à·à·”න්â€à¶º à¶´à·Šâ€à¶»à·€à·šà·à¶º uuid + + + Invalid entry icon number + වලංගු නොවන ඇතුළත් කිරීම් නිරූපක අංකයක් + + + History element in history entry + ඉතිහà·à·ƒà¶º ඇතුළත් කිරීමේදී ඉතිහà·à·ƒ අංගය + + + No entry uuid found + ඇතුල්වීම් uuid හමු නොවිණි + + + History element with different uuid + විවිධ uuid සහිත ඉතිහà·à·ƒ අංගය + + + Duplicate custom attribute found + අනුපිටපත් අභිරුචි උපලක්ෂණයක් හමු විය + + + Entry string key or value missing + ඇතුළත් කිරීමේ තන්තු යතුර හ෠අගය අස්ථà·à¶±à¶œà¶­ වී ඇත + + + Entry binary key or value missing + ඇතුල්වීමේ ද්විමය යතුර හ෠අගය අස්ථà·à¶±à¶œà¶­ වී ඇත + + + Auto-type association window or sequence missing + ස්වයංක්â€à¶»à·“ය-වර්ග ආà·à·Šâ€à¶»à·’à¶­ කවුළුව හ෠අනුපිළිවෙල අතුරුදහන් + + + Invalid bool value + වලංගු නොවන bool අගය + + + Invalid date time value + වලංගු නොවන දින à¶šà·à¶½ අගය + + + Invalid color value + වලංගු නොවන වර්ණ අගය + + + Invalid color rgb part + වලංගු නොවන වර්ණ rgb කොටස + + + Invalid number value + වලංගු නොවන à¶…à¶‚à¶š අගය + + + Invalid uuid value + වලංගු නොවන uuid අගයක් + + + Unable to decompress binary + Translator meant is a binary data inside an entry + ද්විමය විසංයà·à¶¢à¶±à¶º à¶šà·… නොහà·à¶š + + + + KeeAgentSettings + + Invalid KeeAgent settings file structure. + වලංගු නොවන KeeAgent à·ƒà·à¶šà·ƒà·”ම් ගොනු ව්â€à¶ºà·”හය. + + + Private key is an attachment but no attachments provided. + පුද්ගලික යතුර ඇමුණුමක් වන නමුත් ඇමුණුම් සපය෠නà·à¶­. + + + Private key is empty + පුද්ගලික යතුර හිස් ය + + + File too large to be a private key + පුද්ගලික යතුරක් වීමට ගොනුව විà·à·à¶½ à·€à·à¶©à·’ය + + + Failed to open private key + පුද්ගලික යතුර විවෘත කිරීමට අසමත් විය + + + + KeePass1Reader + + Unable to read keyfile. + යතුරු ගොනුව කියවීමට නොහà·à¶š. + + + Not a KeePass database. + KeePass දත්ත ගබඩà·à·€à¶šà·Š නොවේ. + + + Unsupported encryption algorithm. + සහà·à¶º නොදක්වන සංකේතà·à¶‚à¶šà¶± ඇල්ගොරිතම. + + + Unsupported KeePass database version. + සහà·à¶º නොදක්වන KeePass දත්ත සමුද෠අනුවà·à¶¯à¶º. + + + Unable to read encryption IV + IV = Initialization Vector for symmetric cipher + IV සංකේතනය කියවීමට නොහà·à¶š + + + Invalid number of groups + වලංගු නොවන à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š ගණන + + + Invalid number of entries + වලංගු නොවන ඇතුළත් කිරීම් ගණන + + + Invalid content hash size + අවලංගු අන්තර්ගත à·„à·à·‚à·Š à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Invalid transform seed size + වලංගු නොවන පරිවර්තන à¶¶à·“à¶¢ à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Invalid number of transform rounds + අවලංගු පරිවර්තන වට ගණන + + + Unable to construct group tree + à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š ගසක් à¶­à·à¶±à·“මට නොහà·à¶š + + + Root + මූල + + + Unable to calculate database key + දත්ත සමුද෠යතුර ගණනය à¶šà·… නොහà·à¶š + + + unable to seek to content position + අන්තර්ගත ස්ථà·à¶±à¶º සෙවීමට නොහà·à¶š + + + Invalid credentials were provided, please try again. +If this reoccurs, then your database file may be corrupt. + වලංගු නොවන à¶…à¶šà·Šà¶­à¶´à¶­à·Šâ€à¶» සපය෠ඇත, කරුණà·à¶šà¶» à¶±à·à·€à¶­ à¶‹à¶­à·Šà·ƒà·à·„ කරන්න. +මෙය à¶±à·à·€à¶­ සිදු වුවහොත්, ඔබගේ දත්ත සමුද෠ගොනුව දූෂිත විය à·„à·à¶š. + + + Key transformation failed + ප්රධà·à¶± පරිවර්තනය à¶…à·ƒà·à¶»à·Šà¶®à¶š විය + + + Invalid group field type number + වලංගු නොවන à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» වර්ග අංකය + + + Invalid group field size + වලංගු නොවන à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Read group field data doesn't match size + à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» දත්ත කියවන්න't à¶´à·Šâ€à¶»à¶¸à·à¶«à¶ºà¶§ නොගà·à¶½à¶´à·š + + + Incorrect group id field size + à·€à·à¶»à¶¯à·’ à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š id à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Incorrect group creation time field size + à·€à·à¶»à¶¯à·’ à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š නිර්මà·à¶« à¶šà·à¶½ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Incorrect group modification time field size + à·€à·à¶»à¶¯à·’ à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š වෙනස් කිරීමේ à¶šà·à¶½ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Incorrect group access time field size + à·€à·à¶»à¶¯à·’ à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š à¶´à·Šâ€à¶»à·€à·šà· à¶šà·à¶½ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Incorrect group expiry time field size + à·€à·à¶»à¶¯à·’ à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š කල් ඉකුත්වන à¶šà·à¶½ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Incorrect group icon field size + à·€à·à¶»à¶¯à·’ à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š නිරූපක à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Incorrect group level field size + à·€à·à¶»à¶¯à·’ à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š මට්ටමේ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Invalid group field type + වලංගු නොවන à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» වර්ගය + + + Missing group id or level + à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š à·„à·à¶³à·”නුම්පත හ෠මට්ටම අස්ථà·à¶±à¶œà¶­ වී ඇත + + + Missing entry field type number + à¶´à·Šâ€à¶»à·€à·šà· à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» වර්ග අංකය අස්ථà·à¶±à¶œà¶­ වී ඇත + + + Invalid entry field size + වලංගු නොවන à¶´à·Šâ€à¶»à·€à·šà· à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Read entry field data doesn't match size + à¶´à·Šâ€à¶»à·€à·šà· à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» දත්ත කියවන්න't à¶´à·Šâ€à¶»à¶¸à·à¶«à¶ºà¶§ නොගà·à¶½à¶´à·š + + + Invalid entry UUID field size + වලංගු නොවන à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶šà·Š UUID à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Invalid entry group id field size + වලංගු නොවන à¶´à·Šâ€à¶»à·€à·šà· à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š id à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Invalid entry icon field size + වලංගු නොවන ඇතුළත් කිරීම් නිරූපක à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Invalid entry creation time field size + වලංගු නොවන à¶´à·Šâ€à¶»à·€à·šà· නිර්මà·à¶« à¶šà·à¶½ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Invalid entry modification time field size + වලංගු නොවන ඇතුළත් කිරීම් වෙනස් කිරීමේ à¶šà·à¶½ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Invalid entry expiry time field size + වලංගු නොවන ඇතුළත් කිරීම් කල් ඉකුත්වන à¶šà·à¶½ à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º + + + Invalid entry field type + වලංගු නොවන à¶´à·Šâ€à¶»à·€à·šà· à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» වර්ගය + + + + KeeShare + + Invalid sharing reference + වලංගු නොවන බෙදà·à¶œà·à¶±à·“මේ යොමුව + + + Inactive share %1 + à¶…à¶šà·Šâ€à¶»à·’ය බෙදà·à¶œà·à¶±à·“ම %1 + + + Imported from %1 + %1සිට ආනයනය කරන ලදී + + + Exported to %1 + %1වෙත අපනයනය කරන ලදී + + + Synchronized with %1 + %1සමඟ සමමුහුර්ත à¶šà¶» ඇත + + + Import is disabled in settings + à·ƒà·à¶šà·ƒà·“ම් තුළ ආයà·à¶­ කිරීම à¶…à¶¶à¶½ à¶šà¶» ඇත + + + Export is disabled in settings + à·ƒà·à¶šà·ƒà·”ම් තුළ අපනයනය à¶…à¶šà·Šâ€à¶»à·’ය à¶šà¶» ඇත + + + Inactive share + අක්රිය කොටස + + + Imported from + වෙතින් ආනයනය කරන ලදී + + + Exported to + වෙත අපනයනය කරන ලදී + + + Synchronized with + සමග සමමුහුර්ත à¶šà¶» ඇත + + + + KeyComponentWidget + + Key Component + ප්රධà·à¶± සංරචකය + + + Key Component Description + ප්රධà·à¶± සංරචක විස්තරය + + + Cancel + අවලංගු කරන්න + + + Key Component set, click to change or remove + ප්රධà·à¶± සංරචක කට්ටලය, වෙනස් කිරීමට හ෠ඉවත් කිරීමට ක්ලික් කරන්න + + + + KeyFileEditWidget + + Generate a new key file + නව යතුරු ගොනුවක් ජනනය කරන්න + + + Generate + à¶‹à¶­à·Šà¶´à·à¶¯à¶±à¶º කරන්න + + + Generate a new key file or choose an existing one to protect your database. + ඔබගේ දත්ත සමුදà·à¶º ආරක්ෂ෠කිරීම සඳහ෠නව යතුරු ගොනුවක් à¶‹à¶­à·Šà¶´à·à¶¯à¶±à¶º කරන්න හ෠පවතින à¶‘à¶šà¶šà·Š à¶­à·à¶»à¶±à·Šà¶±. + + + Note: Do NOT use a file that may change as that will prevent you from unlocking your database. + සටහන: ඔබගේ දත්ත සමුදà·à¶º අගුළු à·„à·à¶»à·“මෙන් ඔබව වළක්වන à¶¶à·à·€à·’න් වෙනස් විය à·„à·à¶šà·’ ගොනුවක් à¶·à·à·€à·’ත෠නොකරන්න. + + + Browse for key file + යතුරු ගොනුව සඳහ෠බ්â€à¶»à·€à·”ස් කරන්න + + + Browse… + …බ්â€à¶»à·€à·”ස් කරන්න + + + Old key file format + à¶´à·à¶»à¶«à·’ යතුරු ගොනු ආකෘතිය + + + You selected a key file in an old format which KeePassXC<br>may stop supporting in the future.<br><br>Please consider generating a new key file instead. + ඔබ KeePassXC<br>à¶…à¶±à·à¶œà¶­à¶ºà·šà¶¯à·“ සහà·à¶º දීම නතර à¶šà·… à·„à·à¶šà·’ à¶´à·à¶»à¶«à·’ ආකෘතියකින් යතුරු ගොනුවක් à¶­à·à¶»à·à¶œà·™à¶± ඇත.<br><br>කරුණà·à¶šà¶» à¶’ වෙනුවට නව යතුරු ගොනුවක් ජනනය කිරීම සලක෠බලන්න. + + + Error loading the key file '%1' +Message: %2 + යතුරු ගොනුව '%1' පූරණය කිරීමේ දà·à·‚යකි +පණිවිඩය: %2 + + + Key File + යතුරු ගොනුව + + + Add Key File + යතුරු ගොනුව à¶‘à¶šà·Š කරන්න + + + Change Key File + යතුරු ගොනුව වෙනස් කරන්න + + + Remove Key File + යතුරු ගොනුව ඉවත් කරන්න + + + Key File set, click to change or remove + යතුරු ගොනු කට්ටලය, වෙනස් කිරීමට හ෠ඉවත් කිරීමට ක්ලික් කරන්න + + + <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out.</p> + <p>අමතර ආරක්ෂà·à·€ සඳහ෠ඔබට අහඹු බයිට් අඩංගු යතුරු ගොනුවක් à¶‘à¶šà·Š à¶šà·… à·„à·à¶š.</p><p>ඔබ එය රහසිගතව තබ෠ගත යුතු à¶…à¶­à¶» කිසි විටෙකත් එය à¶±à·à¶­à·’ à¶šà¶» නොගත යුතුය, à¶±à·à¶­à·„ොත් ඔබව අගුලු දමනු ඇත.</p> + + + Key files + ප්රධà·à¶± ගොනු + + + All files + සියලුම ගොනු + + + Create Key File… + …යතුරු ගොනුව à·ƒà·à¶¯à¶±à·Šà¶± + + + Error creating key file + යතුරු ගොනුව සෑදීමේ දà·à·‚යකි + + + Unable to create key file: %1 + යතුරු ගොනුව සෑදිය නොහà·à¶š: %1 + + + Select a key file + යතුරු ගොනුවක් à¶­à·à¶»à¶±à·Šà¶± + + + Invalid Key File + වලංගු නොවන යතුරු ගොනුව + + + You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. + ඔබට වත්මන් දත්ත සමුදà·à¶º එහිම යතුරු ගොනුවක් ලෙස à¶·à·à·€à·’à¶­à· à¶šà·… නොහà·à¶š. කරුණà·à¶šà¶» වෙනත් ගොනුවක් à¶­à·à¶»à¶±à·Šà¶± හ෠නව යතුරු ගොනුවක් ජනනය කරන්න. + + + Suspicious Key File + à·ƒà·à¶š සහිත යතුරු ගොනුව + + + The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. +Are you sure you want to continue with this file? + à¶­à·à¶»à·à¶œà¶­à·Š යතුරු ගොනුව මුරපද දත්ත සමුද෠ගොනුවක් ලෙස පෙනේ. à¶´à·Šâ€à¶»à¶°à·à¶± ගොනුවක් කිසිද෠වෙනස් නොවන ස්ථිතික ගොනුවක් විය යුතුය à¶±à·à¶­à·„ොත් ඔබට සදහටම ඔබගේ දත්ත සමුදà·à¶ºà¶§ à¶´à·Šâ€à¶»à·€à·šà·à¶º අහිමි වනු ඇත. +ඔබට මෙම ගොනුව දිගටම කරගෙන යà·à¶¸à¶§ à¶…à·€à·à·Šâ€à¶º à¶¶à·€ විà·à·Šà·€à·à·ƒà¶¯? + + + + MacUtils + + Invalid key code + වලංගු නොවන යතුරු කේතය + + + Global shortcut already registered to %1 + à¶œà·à¶½à·“ය කෙටිමඟ දà·à¶±à¶§à¶¸à¶­à·Š %1වෙත ලියà·à¶´à¶¯à·’à¶‚à¶ à·’ à¶šà¶» ඇත + + + Could not register global shortcut + à¶œà·à¶½à·“ය කෙටිමං ලියà·à¶´à¶¯à·’à¶‚à¶ à·’ කිරීමට නොහà·à¶šà·’ විය + + + + MainWindow + + &Database + &දත්ත සමුදà·à¶º + + + &Recent Databases + &මෑත දත්ත සමුදà·à¶ºà¶±à·Š + + + &Export + &අපනයන + + + &Help + &උදව් + + + &Entries + &ඇතුල්වීම් + + + Copy Att&ribute + à¶‹à¶´à·„à·à¶»à¶º à¶´à·’à¶§à¶´à¶­à·Š කරන්න + + + TOTP + TOTP + + + Tags + අනන්â€à¶ºà¶± + + + &Groups + &à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š + + + &Tools + &මෙවලම් + + + View + දà·à¶šà·Šà¶¸ + + + Theme + තේමà·à·€ + + + &Quit + &ඉවත් + + + &About + &à¶œà·à¶± + + + &Check for Updates + යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± සඳහ෠&පරීක්ෂ෠කරන්න + + + &Open Database… + &දත්ත සමුදà·à¶ºâ€¦à·€à·’වෘත කරන්න + + + &Save Database + &දත්ත සමුදà·à¶º සුරකින්න + + + &Close Database + &දත්ත සමුදà·à¶º වසන්න + + + &New Database… + &නව දත්ත සමුදà·à¶ºâ€¦ + + + &Merge From Database… + දත්ත සමුදà·à¶ºâ€¦à·€à·™à¶­à·’න් & à¶’à¶šà·à¶¶à¶¯à·Šà¶° කරන්න + + + &New Entry… + &නව à¶´à·Šâ€à¶»à·€à·šà·à¶ºâ€¦ + + + &Edit Entry… + à¶´à·Šâ€à¶»à·€à·šà·à¶º &සංස්කරණය කරන්න… + + + &Delete Entry… + &මකන්න ඇතුල්වීම… + + + &New Group… + &නව à¶šà¶«à·Šà¶©à·à¶ºà¶¸â€¦ + + + &Edit Group… + …කණ්ඩà·à¶ºà¶¸ සංස්කරණය කරන්න + + + &Delete Group… + …කණ්ඩà·à¶ºà¶¸ මකන්න + + + Download All &Favicons… + සියලුම &Favicons…බà·à¶œà¶±à·Šà¶± + + + Sort &A-Z + &A-Z වර්ග කරන්න + + + Sort &Z-A + &Z-A වර්ග කරන්න + + + Sa&ve Database As… + දත්ත සමුදà·à¶ºâ€¦à¶½à·™à·ƒ සුරකින්න + + + Database &Security… + දත්ත සමුදà·à¶º සහ ආරක්ෂà·à·€â€¦ + + + Database &Reports… + දත්ත සමුදà·à¶º සහ à·€à·à¶»à·Šà¶­à·â€¦ + + + &Database Settings… + &දත්ත සමුදà·à¶º à·ƒà·à¶šà·ƒà·“ම්… + + + &Clone Entry… + &à¶šà·Šà¶½à·à¶± à¶´à·Šâ€à¶»à·€à·šà·à¶ºâ€¦ + + + Move u&p + u&p ගෙනයන්න + + + Move do&wn + à¶´à·„à·…à¶§ ගෙන යන්න + + + Copy &Username + &පරිà·à·“ලක à¶±à·à¶¸à¶º à¶´à·’à¶§à¶´à¶­à·Š කරන්න + + + Copy &Password + & මුරපදය à¶´à·’à¶§à¶´à¶­à·Š කරන්න + + + &Settings + &à·ƒà·à¶šà·ƒà·”ම් + + + &Password Generator + &මුරපද à¶‹à¶­à·Šà¶´à·à¶¯à¶š යන්ත්රය + + + Perform &Auto-Type + &ස්වයං-වර්ගය ඉටු කරන්න + + + Download &Favicon + &Favicon à¶¶à·à¶œà¶±à·Šà¶± + + + Open &URL + &URL විවෘත කරන්න + + + &Lock Database + &දත්ත සමුදà·à¶º අගුළු දමන්න + + + Lock &All Databases + සියලුම දත්ත සමුදà·à¶ºà¶±à·Š අගුළු දමන්න + + + &Title + &à·à·“ර්ෂය + + + Copy &URL + + + + &Notes + &සටහන් + + + &CSV File… + &CSV ගොනුව… + + + &HTML File… + &HTML ගොනුව… + + + KeePass 1 Database… + KeePass 1 දත්ත සමුදà·à¶ºâ€¦ + + + 1Password Vault… + 1මුරපද සුරක්ෂිතà·à¶œà·à¶»à¶ºâ€¦ + + + CSV File… + CSV ගොනුව… + + + Show TOTP + TOTP පෙන්වන්න + + + Show QR Code + QR කේතය පෙන්වන්න + + + Set up TOTP… + TOTP…සකසන්න + + + Copy &TOTP + &TOTP à¶´à·’à¶§à¶´à¶­à·Š කරන්න + + + Copy Password and TOTP + + + + E&mpty recycle bin + හිස්&à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණ බඳුන + + + &Donate + පරිත්â€à¶ºà·à¶œ කරන්න + + + Report a &Bug + දà·à·‚ය à·€à·à¶»à·Šà¶­à· + + + &Getting Started + &ඇරඹේ + + + Open Getting Started Guide + ආරම්භක මà·à¶»à·Šà¶œà·à¶´à¶¯à·šà·à¶º විවෘත කරන්න + + + &Online Help + &ඔන්ලයින් උදව් + + + &User Guide + &පරිà·à·“ලක මà·à¶»à·Šà¶œà·à¶´à¶¯à·šà·à¶º + + + Open User Guide + පරිà·à·“ලක මà·à¶»à·Šà¶œà·à¶´à¶¯à·šà·à¶º විවෘත කරන්න + + + &Keyboard Shortcuts + &යතුරු පුවරු කෙටිමං + + + Save Database Backup… + දත්ත සමුද෠උපස්ථ…සුරකින්න + + + Add key to SSH Agent + SSH නියà·à¶¢à·’තය෠වෙත යතුර à¶‘à¶šà·Š කරන්න + + + Remove key from SSH Agent + SSH නියà·à¶¢à·’තයà·à¶œà·™à¶±à·Š යතුර ඉවත් කරන්න + + + Compact Mode + සංයුක්ත මà·à¶¯à·’ලිය + + + Automatic + ස්වයංක්රීය + + + Light + ආලà·à¶šà¶º + + + Dark + අඳුරු + + + Classic (Platform-native) + සම්භà·à·€à·Šâ€à¶º (වේදිකà·à·€-දේà·à·“ය) + + + Show Toolbar + මෙවලම් තීරුව පෙන්වන්න + + + Show Preview Panel + පෙරදසුන් à¶´à·à¶±à¶½à¶º පෙන්වන්න + + + Always on Top + සෑම විටම ඉහළින් + + + Hide Usernames + පරිà·à·“ලක à¶±à·à¶¸ සඟවන්න + + + Hide Passwords + මුරපද සඟවන්න + + + Clone Group... + à¶šà·Šà¶½à·à¶± සමූහය... + + + &XML File… + + + + Clear history + ඉතිහà·à·ƒà¶º à¶´à·à·„à·à¶¯à·’ලි කරන්න + + + Access error for config file %1 + වින්â€à¶ºà·à·ƒ ගොනුව %1සඳහ෠ප්â€à¶»à·€à·šà· දà·à·‚යකි + + + Don't show again for this version + මෙම'සඳහ෠නà·à·€à¶­ පෙන්වන්න à¶‘à¶´à· + + + WARNING: You are using an unstable build of KeePassXC. +There is a high risk of corruption, maintain a backup of your databases. +This version is not meant for production use. + අවවà·à¶¯à¶ºà¶ºà·’: ඔබ KeePassXC à·„à·’ අස්ථà·à¶ºà·“ ගොඩනà·à¶œà·“මක් à¶·à·à·€à·’ත෠කරයි. +දූෂණය වීමේ ඉහළ අවදà·à¶±à¶¸à¶šà·Š ඇත, ඔබේ දත්ත සමුදà·à¶ºà·š උපස්ථයක් පවත්ව෠ගන්න. +මෙම අනුවà·à¶¯à¶º නිෂ්පà·à¶¯à¶± à¶·à·à·€à·’තය සඳහ෠නොවේ. + + + NOTE: You are using a pre-release version of KeePassXC. +Expect some bugs and minor issues, this version is meant for testing purposes. + සටහන: ඔබ KeePassXC à·„à·’ පූර්ව නිකුතුවක් à¶·à·à·€à·’ත෠කරයි. +සමහර දà·à·‚ සහ සුළු à¶œà·à¶§à·…à·” à¶¶à¶½à·à¶´à·œà¶»à·œà¶­à·Šà¶­à·” වන්න, මෙම අනුවà·à¶¯à¶º පරීක්ෂණ අරමුණු සඳහ෠අදහස් කෙරේ. + + + WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard. +We recommend you use the AppImage available on our downloads page. + අවවà·à¶¯à¶ºà¶ºà·’: ඔබේ Qt අනුවà·à¶¯à¶º KeePassXC තිරයේ යතුරු පුවරුවක් සමඟ à¶¶à·’à¶³ à·€à·à¶§à·“මට à·„à·šà¶­à·” විය à·„à·à¶š. +අපගේ à¶¶à·à¶œà·à¶±à·“ම් පිටුවේ ඇති AppImage à¶·à·à·€à·’ත෠කිරීමට à¶…à¶´à·’ ඔබට නිර්දේ෠කරමු. + + + No Tags + + + + Restore Entry(s) + à¶´à·Šâ€à¶»à·€à·šà·(යන්) à¶´à·Šâ€à¶»à¶­à·’à·ƒà·à¶°à¶±à¶º කරන්නප්â€à¶»à·€à·šà·(යන්) à¶´à·Šâ€à¶»à¶­à·’à·ƒà·à¶°à¶±à¶º කරන්න + + + Settings + à·ƒà·à¶šà·ƒà·”ම් + + + Check for updates on startup? + ආරම්භය à¶´à·’à·…à·’à¶¶à¶³ යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± සඳහ෠පරීක්ෂ෠කරන්නද? + + + Would you like KeePassXC to check for updates on startup? + ඔබ KeePassXC ආරම්භයේ යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± සඳහ෠පරීක්ෂ෠කිරීමට à¶šà·à¶¸à¶­à·’ද? + + + You can always check for updates manually from the application menu. + යෙදුම් මෙනුවෙන් ඔබට à·ƒà·à¶¸ විටම යà·à·€à¶­à·Šà¶šà·à¶½à·“නයන් අතින් පරීක්ෂ෠කළ à·„à·à¶š. + + + Toggle window + කවුළුව ටොගල් කරන්න + + + Quit KeePassXC + KeePassXC වලින් ඉවත් වන්න + + + %1 Entry(s) + + + + Please present or touch your YubiKey to continue… + …ඉදිරියට යà·à¶¸à¶§ කරුණà·à¶šà¶» ඔබේ YubiKey ඉදිරිපත් කරන්න හ෠ස්පර්෠කරන්න + + + Restart Application? + යෙදුම à¶±à·à·€à¶­ ආරම්භ කරන්නද? + + + You must restart the application to apply this setting. Would you like to restart now? + මෙම à·ƒà·à¶šà·ƒà·”ම යෙදීමට ඔබ යෙදුම à¶±à·à·€à¶­ ආරම්භ à¶šà·… යුතුය. ඔබ දà·à¶±à·Š à¶±à·à·€à¶­ ආරම්භ කිරීමට à¶šà·à¶¸à¶­à·’ද? + + + Allow Screen Capture + + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + + + + Import Passkey + + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + ඇතුළත් කිරීම සංස්කරණය කරන්න + + + Delete Entry + + + + Create Group + + + + Edit Group + à¶šà¶«à·Šà¶©à·à¶ºà¶¸ සංස්කරණය කරන්න + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + පරිà·à·“ලක à¶±à·à¶¸à¶º à¶´à·’à¶§à¶´à¶­à·Š කරන්න + + + Copy Password + මුරපදය à¶´à·’à¶§à¶´à¶­à·Š කරන්න + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + KeePass1 දත්ත සමුදà·à¶º ආයà·à¶­ කරන්න + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + + + + ManageDatabase + + Database settings + දත්ත සමුද෠සà·à¶šà·ƒà·”ම් + + + Edit database settings + දත්ත සමුද෠සà·à¶šà·ƒà·”ම් සංස්කරණය කරන්න + + + Unlock database + දත්ත සමුදà·à¶º අගුළු හරින්න + + + Unlock database to show more information + à·€à·à¶©à·’ විස්තර පෙන්වීමට දත්ත සමුදà·à¶º අගුළු හරින්න + + + Lock database + දත්ත සමුදà·à¶º අගුළු දමන්න + + + + ManageSession + + Disconnect + විසන්ධි කරන්න + + + Disconnect this application + මෙම යෙදුම විසන්ධි කරන්න + + + Reset + යළි පිහිටුවන්න + + + Reset any remembered decisions for this application + මෙම යෙදුම සඳහ෠මතක තබ෠ගත් තීරණ à¶±à·à·€à¶­ සකසන්න + + + + Merger + + Creating missing %1 [%2] + අතුරුදහන් %1 [%2]නිර්මà·à¶«à¶º කිරීම + + + Relocating %1 [%2] + %1 [%2]à¶±à·à·€à¶­ ස්ථà·à¶±à¶œà¶­ කිරීම + + + Overwriting %1 [%2] + උඩින් ලිවීම %1 [%2] + + + Synchronizing from newer source %1 [%2] + නව මූලà·à·à·Šâ€à¶» %1 [%2]වෙතින් සමමුහුර්ත කිරීම + + + Synchronizing from older source %1 [%2] + à¶´à·à¶»à¶«à·’ මූලà·à·à·Šâ€à¶» %1 [%2]වෙතින් සමමුහුර්ත කිරීම + + + Deleting child %1 [%2] + දරුව෠%1 [%2]මක෠දà·à¶¸à·“ම + + + Deleting orphan %1 [%2] + à¶…à¶±à·à¶® %1 [%2]මක෠දà·à¶¸à·“ම + + + Changed deleted objects + මක෠දà·à¶¸à·– වස්තූන් වෙනස් කරන ලදී + + + Adding missing icon %1 + à¶±à·à¶­à·’වූ නිරූපකය %1à¶‘à¶šà¶­à·” කිරීම + + + Removed custom data %1 [%2] + අභිරුචි දත්ත ඉවත් කරන ලදී %1 [%2] + + + Adding custom data %1 [%2] + අභිරුචි දත්ත à¶‘à¶šà¶­à·” කිරීම %1 [%2] + + + + NewDatabaseWizard + + Create a new KeePassXC database… + නව KeePassXC දත්ත සමුදà·à¶ºà¶šà·Š à·ƒà·à¶¯à¶±à·Šà¶±â€¦ + + + Root + Root group + මූල + + + + NewDatabaseWizardPage + + WizardPage + විà·à·à¶»à¶¯ පිටුව + + + Encryption Settings + සංකේතà·à¶‚à¶šà¶± à·ƒà·à¶šà·ƒà·”ම් + + + Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. + මෙහිදී ඔබට දත්ත සමුද෠සංකේතà·à¶‚à¶šà¶± à·ƒà·à¶šà·ƒà·”ම් සකස් à¶šà·… à·„à·à¶š.'නොවන්න, ඔබට ඒව෠පසුව දත්ත සමුද෠සà·à¶šà·ƒà·”ම් තුළ වෙනස් à¶šà·… à·„à·à¶š. + + + + NewDatabaseWizardPageDatabaseKey + + Database Credentials + දත්ත සමුද෠අක්තපත්ර + + + A set of credentials known only to you that protects your database. + ඔබගේ දත්ත සමුදà·à¶º ආරක්ෂ෠කරන ඔබ පමණක් දන්න෠අක්තපත්â€à¶» කට්ටලයක්. + + + + NewDatabaseWizardPageEncryption + + Encryption Settings + සංකේතà·à¶‚à¶šà¶± à·ƒà·à¶šà·ƒà·”ම් + + + Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. + මෙහිදී ඔබට දත්ත සමුද෠සංකේතà·à¶‚à¶šà¶± à·ƒà·à¶šà·ƒà·”ම් සකස් à¶šà·… à·„à·à¶š.'නොවන්න, ඔබට ඒව෠පසුව දත්ත සමුද෠සà·à¶šà·ƒà·”ම් තුළ වෙනස් à¶šà·… à·„à·à¶š. + + + + NewDatabaseWizardPageMetaData + + General Database Information + à·ƒà·à¶¸à·à¶±à·Šà¶º දත්ත සමුද෠තොරතුරු + + + Please fill in the display name and an optional description for your new database: + කරුණà·à¶šà¶» ඔබගේ නව දත්ත සමුදà·à¶º සඳහ෠සංදර්à·à¶š à¶±à·à¶¸à¶º සහ විකල්ප විස්තරයක් පුරවන්න: + + + + NixUtils + + Password Manager + මුරපද කළමනà·à¶šà¶»à·” + + + Global shortcut already registered to %1 + à¶œà·à¶½à·“ය කෙටිමඟ දà·à¶±à¶§à¶¸à¶­à·Š %1වෙත ලියà·à¶´à¶¯à·’à¶‚à¶ à·’ à¶šà¶» ඇත + + + Could not register global shortcut + à¶œà·à¶½à·“ය කෙටිමං ලියà·à¶´à¶¯à·’à¶‚à¶ à·’ කිරීමට නොහà·à¶šà·’ විය + + + + OpData01 + + Invalid OpData01, does not contain header + වලංගු නොවන OpData01, à·à·“ර්ෂකය අඩංගු නොවේ + + + Unable to read all IV bytes, wanted 16 but got %1 + සියලුම IV බයිට් කියවීමට නොහà·à¶šà·’ විය, 16 à¶…à·€à·à·Šâ€à¶º නමුත් %1à¶½à·à¶¶à·”à¶«à·’ + + + Unable to init cipher for opdata01: %1 + opdata01: %1සඳහ෠කේතà·à¶‚කය ආරම්භ à¶šà·… නොහà·à¶š + + + Unable to read all HMAC signature bytes + සියලුම HMAC අත්සන් බයිට් කියවීමට නොහà·à¶š + + + Malformed OpData01 due to a failed HMAC + à¶…à·ƒà·à¶»à·Šà¶®à¶š HMAC නිස෠OpData01 විකෘති වී ඇත + + + Unable to process clearText in place + à¶­à·à¶± à¶­à·à¶± clearText à·ƒà·à¶šà·ƒà·“මට නොහà·à¶š + + + Expected %1 bytes of clear-text, found %2 + à¶´à·à·„à·à¶¯à·’ලි-පෙළ බයිට් %1 à¶šà·Š à¶¶à¶½à·à¶´à·œà¶»à·œà¶­à·Šà¶­à·” විය, %2හමු විය + + + + OpVaultReader + + Directory .opvault must exist + à¶±à·à¶¸à·à·€à¶½à·’ය .opvault à¶´à·à·€à¶­à·’ය යුතුය + + + Directory .opvault must be readable + à¶±à·à¶¸à·à·€à¶½à·’ය .opvault කියවිය à·„à·à¶šà·’ විය යුතුය + + + Directory .opvault/default must exist + à¶±à·à¶¸à·à·€à¶½à·’ය .opvault/default à¶´à·à·€à¶­à·’ය යුතුය + + + Directory .opvault/default must be readable + à¶±à·à¶¸à·à·€à¶½à·’ය .opvault/default කියවිය à·„à·à¶šà·’ විය යුතුය + + + Unable to decode masterKey: %1 + masterKey විකේතනය à¶šà·… නොහà·à¶š: %1 + + + Unable to derive master key: %1 + à¶´à·Šâ€à¶»à¶°à·à¶± යතුර ව්â€à¶ºà·”ත්පන්න à¶šà·… නොහà·à¶š: %1 + + + + OpenSSHKey + + Invalid key file, expecting an OpenSSH key + වලංගු නොවන යතුරු ගොනුවක්, OpenSSH යතුරක් අපේක්ෂ෠කරයි + + + PEM boundary mismatch + PEM මà·à¶ºà·’ම් නොගà·à¶½à¶´à·“ම + + + Base64 decoding failed + Base64 විකේතනය à¶…à·ƒà·à¶»à·Šà¶®à¶š විය + + + Key file way too small. + යතුරු ගොනු මà·à¶»à·Šà¶œà¶º කුඩ෠වà·à¶©à·’ය. + + + Key file magic header id invalid + යතුරු ගොනු මà·à¶¢à·’à¶šà·Š à·à·“ර්ෂ id වලංගු නොවේ + + + Found zero keys + බිංදු යතුරු හමු විය + + + Failed to read public key. + පොදු යතුර කියවීමට අසමත් විය. + + + Corrupted key file, reading private key failed + දූෂිත යතුරු ගොනුව, පුද්ගලික යතුර කියවීම à¶…à·ƒà·à¶»à·Šà¶®à¶š විය + + + Unsupported key type: %1 + සහà·à¶º නොදක්වන යතුරු වර්ගය: %1 + + + No private key payload to decrypt + විකේතනය කිරීමට පුද්ගලික යතුරු ගෙවීමක් නොමà·à¶­ + + + Unknown cipher: %1 + නොදන්න෠කේතà·à¶‚කය: %1 + + + AES-256/GCM is currently not supported + + + + Passphrase is required to decrypt this key + මෙම යතුර විකේතනය කිරීමට මුරපදය à¶…à·€à·à·Šâ€à¶º වේ + + + Key derivation failed: %1 + à¶´à·Šâ€à¶»à¶°à·à¶± ව්â€à¶ºà·”ත්පන්නය à¶…à·ƒà·à¶»à·Šà¶®à¶š විය: %1 + + + Cipher IV is too short for MD5 kdf + à¶šà·šà¶­à·à¶‚à¶š IV MD5 kdf සඳහ෠කෙටි à·€à·à¶©à·’ය + + + Unknown KDF: %1 + නොදන්න෠KDF: %1 + + + Failed to initialize cipher: %1 + à¶šà·šà¶­à·à¶‚කය ආරම්භ කිරීමට අසමත් විය: %1 + + + Decryption failed: %1 + විකේතනය à¶…à·ƒà·à¶»à·Šà¶®à¶š විය: %1 + + + Decryption failed, wrong passphrase? + විකේතනය à¶…à·ƒà·à¶»à·Šà¶®à¶šà¶ºà·’, à·€à·à¶»à¶¯à·’ මුර-à·€à·à¶šà·’කඩද? + + + Unexpected EOF while reading key + යතුර කියවන අතරතුර අනපේක්ෂිත EOF + + + Unsupported key part + සහà·à¶º නොදක්වන ප්රධà·à¶± කොටස + + + Unexpected EOF while reading public key + පොදු යතුර කියවන අතරතුර අනපේක්ෂිත EOF + + + Unknown key type: %1 + නොදන්න෠යතුරු වර්ගය: %1 + + + Unexpected EOF while reading private key + පුද්ගලික යතුර කියවන අතරතුර අනපේක්ෂිත EOF + + + Can't write public key as it is empty + පොදු යතුර හිස් à¶¶à·à·€à·’න් එය'නොහà·à¶š + + + Unexpected EOF when writing public key + පොදු යතුර ලිවීමේදී අනපේක්ෂිත EOF + + + Can't write private key as it is empty + පුද්ගලික යතුර හිස් à¶¶à·à·€à·’න් එය'නොහà·à¶š + + + Unexpected EOF when writing private key + පුද්ගලික යතුර ලියන විට අනපේක්ෂිත EOF + + + + OpenSSHKeyGenDialog + + SSH Key Generator + + + + Type + ලියන්න + + + Bits + + + + Comment + අදහස් දක්වන්න + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + + + + Export the following Passkey entries. + + + + Filenames will be generated with title and .passkey file extension. + + + + Export entries + + + + Export Selected + + + + Cancel + අවලංගු කරන්න + + + Export to folder + + + + + PasskeyExporter + + KeePassXC: Passkey Export + + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + + Cannot open file + + + + Cannot open file "%1" for writing. + + + + Cannot write to file + + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + + + + Username: %1 + + + + Group + සමූහය + + + Database + + + + Import Passkey + + + + Import + ආනයන + + + Cancel + අවලංගු කරන්න + + + Import the following Passkey: + + + + Entry + නිවේà·à·’තය + + + Import the following Passkey to this entry: + + + + Create new entry + + + + Default Passkeys group (Imported Passkeys) + + + + Relying Party: %1 + + + + + PasskeyImporter + + Passkey file + + + + All files + සියළුම ගොනු + + + Open Passkey file + + + + Cannot open file + + + + Cannot open file "%1" for reading. + + + + Cannot import Passkey + + + + Cannot import Passkey file "%1". Data is missing. + + + + Cannot import Passkey file "%1". Private key is missing or malformed. + + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + + + + + PasswordEditWidget + + Enter password: + මුරපදය ඇතුළත් කරන්න: + + + Password field + මුරපද à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶º + + + Confirm password: + මුරපදය තහවුරු කරන්න: + + + Repeat password field + මුරපද à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶º à¶±à·à·€à¶­ කරන්න + + + Password + මුරපදය + + + Add Password + මුරපදය à¶‘à¶šà·Š කරන්න + + + Change Password + මුරපදය වෙනස් කරන්න + + + Remove Password + මුරපදය ඉවත් කරන්න + + + Password set, click to change or remove + මුරපදය සකසà·, වෙනස් කිරීමට හ෠ඉවත් කිරීමට ක්ලික් කරන්න + + + <p>A password is the primary method for securing your database.</p><p>Good passwords are long and unique. KeePassXC can generate one for you.</p> + <p>මුරපදයක් යනු ඔබගේ දත්ත සමුදà·à¶º සුරක්ෂිත කිරීමේ මූලික à¶šà·Šâ€à¶»à¶¸à¶ºà¶ºà·’.</p><p>හොඳ මුරපද දිගු සහ අද්විතීය වේ. KeePassXC ඔබ වෙනුවෙන් à¶‘à¶šà¶šà·Š ජනනය à¶šà·… à·„à·à¶š.</p> + + + Passwords do not match. + මුරපද නොගà·à¶½à¶´à·š. + + + + PasswordGeneratorWidget + + Generate Password + මුරපදය ජනනය කරන්න + + + strength + Password strength + à·à¶šà·Šà¶­à·’ය + + + entropy + එන්ට්රොපිය + + + Generated password + ජනනය à¶šà·… මුරපදය + + + %p% + %p% + + + Regenerate password + මුරපදය à¶±à·à·€à¶­ à¶‹à¶­à·Šà¶´à·à¶¯à¶±à¶º කරන්න + + + Copy password + මුරපදය à¶´à·’à¶§à¶´à¶­à·Š කරන්න + + + Password + මුරපදය + + + &Length: + &දිග: + + + Password length + මුරපද දිග + + + Switch to advanced mode + උසස් මà·à¶¯à·’ලියට මà·à¶»à·” වන්න + + + Advanced + උසස් + + + Character Types + චරිත වර්ග + + + Special characters + විà·à·šà·‚ චරිත + + + Quotes + උපුට෠දà·à¶šà·Šà·€à·“ම් + + + Punctuation + විරà·à¶¸ ලකුණු + + + Dashes and Slashes + à¶©à·‘à·‚à·Š සහ ස්ලà·à·‚à·Š + + + Upper-case letters + ලොකු අකුරු + + + Numbers + à¶…à¶‚à¶š + + + Lower-case letters + සිම්පල් අකුරු + + + Math Symbols + ගණිත සංකේත + + + Extended ASCII + විස්තීරණ ASCII + + + Braces + වරහන් + + + Do not include: + ඇතුළත් නොකරන්න: + + + Additional characters to use for the generated password + à¶‹à¶­à·Šà¶´à·à¶¯à¶±à¶º කරන ලද මුරපදය සඳහ෠භà·à·€à·’ත෠කිරීමට අමතර à¶…à¶šà·Šà·‚à¶» + + + Additional characters + අමතර චරිත + + + Add non-hex letters to "do not include" list + "à¶§ හෙක්ස් නොවන අකුරු à¶‘à¶šà¶­à·” කරන්න" à¶½à·à¶ºà·’ස්තුවක් ඇතුළත් නොකරන්න + + + Hex Passwords + Hex මුරපද + + + Hex + හෙක්ස් + + + Character set to exclude from generated password + à¶‹à¶­à·Šà¶´à·à¶¯à¶±à¶º කරන ලද මුරපදයෙන් à¶¶à·à·„à·à¶» කිරීමට à¶…à¶šà·Šà·‚à¶» කට්ටලය + + + Excluded characters + à¶¶à·à·„à·à¶» à¶šà·… චරිත + + + Also choose from: + මේවà·à¶ºà·’න් ද à¶­à·à¶»à¶±à·Šà¶±: + + + Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" + à¶¶à·à·„à·à¶» à¶šà·… à¶…à¶šà·Šà·‚à¶»: "0", "1", "l", "I", "O", "|", "-" + + + Exclude look-alike characters + පෙනුමට සමà·à¶± à¶…à¶šà·Šà·‚à¶» à¶¶à·à·„à·à¶» කරන්න + + + Pick characters from every group + සෑම à¶šà¶«à·Šà¶©à·à¶ºà¶¸à¶šà·’න්ම චරිත à¶­à·à¶»à¶±à·Šà¶± + + + Passphrase + මුරපදය + + + Word Separator: + වචන බෙදුම්කරු: + + + Wordlist: + වචන à¶½à·à¶ºà·’ස්තුව: + + + Word Count: + වචන ගණන: + + + Character Count: + à¶…à¶šà·Šà·‚à¶» ගණන: + + + Word Case: + වචන නඩුව: + + + Delete selected wordlist + à¶­à·à¶»à·à¶œà¶­à·Š වචන à¶½à·à¶ºà·’ස්තුව මකන්න + + + Add custom wordlist + අභිරුචි වචන à¶½à·à¶ºà·’ස්තුව à¶‘à¶šà·Š කරන්න + + + character + ස්වභà·à·€à¶º + + + Close + වසන්න + + + Esc + à¶´à·’à¶§ වීම + + + Apply Password + මුරපදය යොදන්න + + + Regenerate password (%1) + මුරපදය à¶±à·à·€à¶­ à¶‹à¶­à·Šà¶´à·à¶¯à¶±à¶º කරන්න (%1) + + + lower case + කුඩ෠නඩුව + + + UPPER CASE + ඉහළ නඩුව + + + Title Case + මà·à¶­à·˜à¶šà· නඩුව + + + (SYSTEM) + (පද්ධතියක්) + + + Entropy: %1 bit + එන්ට්රොපි: %1 à¶¶à·’à¶§à·Š + + + Password Quality: %1 + මුරපදයේ ගුණà·à¶­à·Šà¶¸à¶šà¶·à·à·€à¶º: %1 + + + Poor + Password quality + දුප්පත් + + + Weak + Password quality + දුර්වල + + + Good + Password quality + යහපත + + + Excellent + Password quality + විà·à·’ෂ්ටයි + + + Confirm Delete Wordlist + Wordlist මකන්න තහවුරු කරන්න + + + Do you really want to delete the wordlist "%1"? + ඔබට ඇත්තටම වචන à¶½à·à¶ºà·’ස්තුව "%1"මක෠දà·à¶¸à·“මට à¶…à·€à·à·Šâ€à¶ºà¶¯? + + + Failed to delete wordlist + වචන à¶½à·à¶ºà·’ස්තුව මà·à¶šà·“මට අසමත් විය + + + Wordlists + වචන à¶½à·à¶ºà·’ස්තු + + + All files + සියලුම ගොනු + + + Select Custom Wordlist + අභිරුචි වචන à¶½à·à¶ºà·’ස්තුව à¶­à·à¶»à¶±à·Šà¶± + + + Overwrite Wordlist? + Wordlist උඩින් ලියන්නද? + + + Wordlist "%1" already exists as a custom wordlist. +Do you want to overwrite it? + Wordlist "%1" දà·à¶±à¶§à¶¸à¶­à·Š අභිරුචි වචන à¶½à·à¶ºà·’ස්තුවක් ලෙස පවතී. +ඔබට එය උඩින් ලිවීමට à¶…à·€à·à·Šâ€à¶ºà¶¯? + + + Failed to add wordlist + වචන à¶½à·à¶ºà·’ස්තුව à¶‘à¶šà·Š කිරීමට අසමත් විය + + + Logograms + à¶½à·à¶‚à¶¡à¶± + + + Special Characters + විà·à·šà·‚ චරිත + + + + PasswordWidget + + Passwords do not match + මුරපද නොගà·à¶½à¶´à·š + + + Passwords match so far + මුරපද මෙතෙක් à¶œà·à¶½à¶´à·š + + + Toggle Password (%1) + මුරපදය ටොගල් කරන්න (%1) + + + Generate Password (%1) + මුරපදය ජනනය කරන්න (%1) + + + Warning: Caps Lock enabled! + අවවà·à¶¯à¶ºà¶ºà·’: Caps Lock සබලයි! + + + Quality: %1 + ගුණà·à¶­à·Šà¶¸à¶šà¶·à·à·€à¶º: %1 + + + Poor + Password quality + දුප්පත් + + + Weak + Password quality + දුර්වල + + + Good + Password quality + යහපත + + + Excellent + Password quality + විà·à·’ෂ්ටයි + + + Toggle password visibility using Control + H. Open the password generator using Control + G. + + + + + PickcharsDialog + + KeePassXC - Pick Characters + KeePassXC - à¶…à¶šà·Šà·‚à¶» à¶­à·à¶»à¶±à·Šà¶± + + + Select characters to type, navigate with arrow keys, Ctrl + S submits. + ටයිප් කිරීමට à¶…à¶šà·Šà·‚à¶» à¶­à·à¶»à¶±à·Šà¶±, à¶Šà¶­à¶½ යතුරු සමඟ à·ƒà·à¶»à·’à·ƒà·à¶»à·“මට, Ctrl + S ඉදිරිපත් කරයි. + + + Press &Tab between characters + à¶…à¶šà·Šà·‚à¶» à¶…à¶­à¶» à¶§à·à¶¶à·Š ඔබන්න + + + + QMessageBox + + Overwrite + උඩින් ලියන්න + + + Delete + මකන්න + + + Move + චලනය කරන්න + + + Empty + හිස් + + + Remove + ඉවත් කරන්න + + + Skip + මඟ හරින්න + + + Disable + අක්රිය කරන්න + + + Merge + à¶’à¶šà·à¶¶à¶¯à·Šà¶° කරන්න + + + Continue + දිගටම කරගෙන යන්න + + + Continue with weak password + + + + + QObject + + Database not opened + දත්ත සමුදà·à¶º විවෘත à¶šà¶» à¶±à·à¶­ + + + Database hash not available + දත්ත සමුදà·à¶º à·„à·à·‚à·Š නොමà·à¶­ + + + Client public key not received + සේවà·à¶½à·à¶·à·“ පොදු යතුර à¶½à·à¶¶à·“ à¶±à·à¶­ + + + Cannot decrypt message + පණිවිඩය විකේතනය à¶šà·… නොහà·à¶š + + + Action cancelled or denied + à¶šà·Šâ€à¶»à·’යà·à·€ අවලංගු à¶šà¶» à·„à· à¶´à·Šâ€à¶»à¶­à·’à¶šà·Šà·‚à·šà¶´ කරන ලදී + + + Message encryption failed. + පණිවිඩ සංකේතනය à¶…à·ƒà·à¶»à·Šà¶®à¶š විය. + + + KeePassXC association failed, try again + KeePassXC සංගමය à¶…à·ƒà·à¶»à·Šà¶®à¶š විය, à¶±à·à·€à¶­ à¶‹à¶­à·Šà·ƒà·à·„ කරන්න + + + Encryption key is not recognized + සංකේතà·à¶‚à¶šà¶± යතුර හඳුනà·à¶œà·™à¶± නොමà·à¶­ + + + Incorrect action + à·€à·à¶»à¶¯à·’ à¶šà·Šâ€à¶»à·’යà·à·€à¶šà·Š + + + Empty message received + හිස් පණිවිඩයක් à¶½à·à¶¶à·“ ඇත + + + No URL provided + URL සපය෠නà·à¶­ + + + No logins found + පිවිසුම් කිසිවක් හමු නොවිණි + + + No groups found + à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š කිසිවක් හමු නොවීය + + + Cannot create new group + නව à¶šà¶«à·Šà¶©à·à¶ºà¶¸à¶šà·Š සෑදිය නොහà·à¶š + + + No valid UUID provided + වලංගු UUID සපය෠නà·à¶­ + + + Unknown error + නොදන්න෠දà·à·‚යකි + + + Browser Integration + බ්රවුසර à¶’à¶šà·à¶¶à¶¯à·Šà¶° කිරීම + + + Browser Plugin Failure + à¶¶à·Šâ€à¶»à·€à·Šà·ƒà¶»à·Š ප්ලගින අසමත් වීම + + + Could not save the native messaging script file for %1. + ස්වදේà·à·“ය පණිවිඩ යà·à·€à·“මේ ස්ක්â€à¶»à·’à¶´à·Šà¶§à·Š ගොනුව %1සඳහ෠සුරà·à¶šà·“මට නොහà·à¶šà·’ විය. + + + Username for the entry. + ඇතුල්වීම සඳහ෠පරිà·à·“ලක à¶±à·à¶¸à¶º. + + + username + පරිà·à·“ලක à¶±à·à¶¸à¶º + + + URL for the entry. + ඇතුළත් කිරීම සඳහ෠URL. + + + URL + URL + + + Notes for the entry. + ඇතුල්වීම සඳහ෠සටහන්. + + + Notes + සටහන් + + + Prompt for the entry's password. + 's මුරපදය ඇතුළත් කිරීම සඳහ෠විමසන්න. + + + Generate a password for the entry. + ඇතුල්වීම සඳහ෠මුරපදයක් à·ƒà·à¶¯à¶±à·Šà¶±. + + + Add a new entry to a database. + දත්ත සමුදà·à¶ºà¶šà¶§ නව à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶šà·Š à¶‘à¶šà·Š කරන්න. + + + Path of the entry to add. + à¶‘à¶šà¶­à·” කිරීමට ඇතුල් වීමේ මà·à¶»à·Šà¶œà¶º. + + + Cannot generate a password and prompt at the same time. + මුරපදයක් සහ එකවර විමසීමක් ජනනය à¶šà·… නොහà·à¶š. + + + Could not create entry with path %1. + මà·à¶»à·Šà¶œà¶º %1සමඟ à¶´à·Šâ€à¶»à·€à·šà·à¶º නිර්මà·à¶«à¶º à¶šà·… නොහà·à¶š. + + + Enter password for new entry: + නව à¶´à·Šâ€à¶»à·€à·šà·à¶º සඳහ෠මුරපදය ඇතුළත් කරන්න: + + + Writing the database failed %1. + දත්ත සමුදà·à¶º ලිවීම à¶…à·ƒà·à¶»à·Šà¶®à¶š විය %1. + + + Successfully added entry %1. + à¶´à·Šâ€à¶»à·€à·šà·à¶º %1à·ƒà·à¶»à·Šà¶®à¶šà·€ à¶‘à¶šà¶­à·” කරන ලදී. + + + Adds a new group to a database. + දත්ත සමුදà·à¶ºà¶šà¶§ නව à¶šà¶«à·Šà¶©à·à¶ºà¶¸à¶šà·Š à¶‘à¶šà·Š කරයි. + + + Path of the group to add. + à¶‘à¶šà¶­à·” කිරීමට සමූහයේ මà·à¶»à·Šà¶œà¶º. + + + Group %1 already exists! + %1 à¶šà¶«à·Šà¶©à·à¶ºà¶¸ දà·à¶±à¶§à¶¸à¶­à·Š පවතී! + + + Group %1 not found. + %1 à¶šà¶«à·Šà¶©à·à¶ºà¶¸ හමු නොවීය. + + + Successfully added group %1. + %1à¶šà¶«à·Šà¶©à·à¶ºà¶¸ à·ƒà·à¶»à·Šà¶®à¶šà·€ à¶‘à¶šà¶­à·” කරන ලදී. + + + Check if any passwords have been publicly leaked. FILENAME must be the path of a file listing SHA-1 hashes of leaked passwords in HIBP format, as available from https://haveibeenpwned.com/Passwords. + මුරපද à¶´à·Šâ€à¶»à·ƒà·’ද්ධියේ à¶šà·à¶±à·Šà¶¯à·” වී ඇත්දà·à¶ºà·’ පරීක්ෂ෠කරන්න. https://haveibeenpwned.com/Passwords වෙතින් ලබ෠ගත à·„à·à¶šà·’ පරිදි, HIBP ආකෘතියෙන් à¶šà·à¶±à·Šà¶¯à·” වූ මුරපද වල SHA-1 à·„à·à·‚à·Š à¶½à·à¶ºà·’ස්තුගත කරන ගොනුවක මà·à¶»à·Šà¶œà¶º FILENAME විය යුතුය. + + + FILENAME + ගොනුවේ නම + + + Path to okon-cli to search a formatted HIBP file + ආකෘතිගත HIBP ගොනුවක් සෙවීමට okon-cli වෙත මà·à¶»à·Šà¶œà¶º + + + okon-cli + okon-cli + + + Analyze passwords for weaknesses and problems. + දුර්වලත෠සහ à¶œà·à¶§à·…à·” සඳහ෠මුරපද විà·à·Šà¶½à·šà·‚ණය කරන්න. + + + Cannot find HIBP file: %1 + HIBP ගොනුව සොයà·à¶œà¶­ නොහà·à¶š: %1 + + + Evaluating database entries using okon… + okon…භà·à·€à·’තයෙන් දත්ත සමුද෠ඇතුළත් කිරීම් ඇගයීම + + + Failed to open HIBP file %1: %2 + HIBP ගොනුව %1: %2විවෘත කිරීමට අසමත් විය + + + Evaluating database entries against HIBP file, this will take a while… + HIBP ගොනුවට එරෙහිව දත්ත සමුද෠ප්â€à¶»à·€à·šà·à¶ºà¶±à·Š ඇගයීම, මෙයට…කà·à¶½à¶ºà¶šà·Š ගතවනු ඇත + + + Password for '%1' has been leaked %2 time(s)! + '%1' සඳහ෠මුරපදය %2 වතà·à·€à¶šà·Š (ය) à¶šà·à¶±à·Šà¶¯à·” වී ඇත!'%1' සඳහ෠මුරපදය %2 වතà·à·€à¶šà·Š (ය) à¶šà·à¶±à·Šà¶¯à·” වී ඇත! + + + Password for '%1' has been leaked! + '%1' සඳහ෠මුරපදය à¶šà·à¶±à·Šà¶¯à·” වී ඇත! + + + Export an attachment of an entry. + à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶š ඇමුණුමක් අපනයනය කරන්න. + + + Path of the entry with the target attachment. + ඉලක්ක ඇමුණුම සමඟ ඇතුල් වීමේ මà·à¶»à·Šà¶œà¶º. + + + Name of the attachment to be exported. + අපනයනය à¶šà·… යුතු ඇමුණුමේ නම. + + + Path to which the attachment should be exported. + ඇමුණුම අපනයනය à¶šà·… යුතු මà·à¶»à·Šà¶œà¶º. + + + Could not find entry with path %1. + මà·à¶»à·Šà¶œà¶º %1සමඟ ප්රවේà·à¶º සොයà·à¶œà¶­ නොහà·à¶šà·’ විය. + + + Could not find attachment with name %1. + නම %1සමඟ ඇමුණුමක් සොයà·à¶œà¶­ නොහà·à¶šà·’ විය. + + + No export target given. Please use '--stdout' or specify an 'export-file'. + අපනයන ඉලක්කයක් ලබ෠දී නොමà·à¶­. කරුණà·à¶šà¶» '--stdout' à¶·à·à·€à·’ත෠කරන්න à·„à· 'අපනයන-ගොනු'සඳහන් කරන්න. + + + Could not open output file %1. + à¶´à·Šâ€à¶»à¶­à·’දà·à¶± ගොනුව %1විවෘත කිරීමට නොහà·à¶šà·’ විය. + + + Successfully exported attachment %1 of entry %2 to %3. + à¶´à·Šâ€à¶»à·€à·šà· %2 සිට %3දක්ව෠ඇමුණුම %1 à·ƒà·à¶»à·Šà¶®à¶šà·€ අපනයනය කරන ලදී. + + + Overwrite existing attachments. + පවතින ඇමුණුම් උඩින් ලියන්න. + + + Imports an attachment to an entry. + à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶šà¶§ ඇමුණුමක් ආයà·à¶­ කරයි. + + + Path of the entry. + ඇතුල්වීමේ මà·à¶»à·Šà¶œà¶º. + + + Name of the attachment to be added. + à¶‘à¶šà¶­à·” à¶šà·… යුතු ඇමුණුමේ නම. + + + Path of the attachment to be imported. + ආනයනය à¶šà·… යුතු ඇමුණුමේ මà·à¶»à·Šà¶œà¶º. + + + Attachment %1 already exists for entry %2. + ඇමුණුම %1 à¶´à·Šâ€à¶»à·€à·šà· %2සඳහ෠දà·à¶±à¶§à¶¸à¶­à·Š පවතී. + + + Could not open attachment file %1. + ඇමුණුම් ගොනුව %1විවෘත කිරීමට නොහà·à¶šà·’ විය. + + + Successfully imported attachment %1 as %2 to entry %3. + ඇමුණුම %1 %2 ලෙස à¶´à·Šâ€à¶»à·€à·šà· %3වෙත à·ƒà·à¶»à·Šà¶®à¶šà·€ ආයà·à¶­ කරන ලදී. + + + Remove an attachment of an entry. + à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶š ඇමුණුමක් ඉවත් කරන්න. + + + Name of the attachment to be removed. + ඉවත් à¶šà·… යුතු ඇමුණුමේ නම. + + + Successfully removed attachment %1 from entry %2. + à¶´à·Šâ€à¶»à·€à·šà·à¶º %2වෙතින් ඇමුණුම %1 à·ƒà·à¶»à·Šà¶®à¶šà·€ ඉවත් කරන ලදී. + + + Copy the given attribute to the clipboard. Defaults to "password" if not specified. + Don't translate "password", it refers to the attribute. + ලබ෠දී ඇති ගුණà·à¶‚ගය පසුරු පුවරුවට à¶´à·’à¶§à¶´à¶­à·Š කරන්න. නිà·à·Šà¶ à·’à¶­à·€ දක්ව෠නොමà·à¶­à·’ නම් "මුරපදය" වෙත පෙරනිමි. + + + Copy the current TOTP to the clipboard (equivalent to "-a totp"). + වත්මන් TOTP පසුරු පුවරුවට à¶´à·’à¶§à¶´à¶­à·Š කරන්න ( "-a totp"à¶§ සමà·à¶±). + + + Must match only one entry, otherwise a list of possible matches is shown. + à¶‘à¶šà·Š à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶šà·Š පමණක් à¶œà·à·…පිය යුතුය, එසේ නොමà·à¶­à·’ නම් à·„à·à¶šà·’ à¶œà·à·…පීම් à¶½à·à¶ºà·’ස්තුවක් පෙන්වනු à¶½à·à¶¶à·š. + + + Copy an entry's attribute to the clipboard. + à¶´à·Šâ€à¶»à·€à·šà·'s ගුණà·à¶‚ගයක් පසුරු පුවරුවට à¶´à·’à¶§à¶´à¶­à·Š කරන්න. + + + Path of the entry to clip. + clip = copy to clipboard + ක්ලිප් වෙත පිවිසීමේ මà·à¶»à·Šà¶œà¶º. + + + Timeout before clearing the clipboard (default is %1 seconds, set to 0 for unlimited). + පසුරු පුවරුව හිස් කිරීමට පෙර කල් ඉකුත්වීම (පෙරනිමිය à¶­à¶­à·Šà¶´à¶» %1 , අසීමිත සඳහ෠0 ලෙස සකස෠ඇත). + + + Invalid timeout value %1. + වලංගු නොවන කල් ඉකුත්වීමේ අගය %1. + + + Multiple entries matching: + à¶¶à·„à·” ඇතුළත් කිරීම් à¶œà·à¶½à¶´à·“ම: + + + Using matching entry: %1 + à¶œà·à·…පෙන à¶´à·Šâ€à¶»à·€à·šà·à¶º à¶·à·à·€à·’ත෠කරමින්: %1 + + + Entry %1 not found. + ඇතුල්වීම %1 හමු නොවීය. + + + ERROR: Please specify one of --attribute or --totp, not both. + දà·à·‚ය: කරුණà·à¶šà¶» --attribute à·„à· --totp වලින් à¶‘à¶šà¶šà·Š සඳහන් කරන්න, දෙකම නොවේ. + + + Entry with path %1 has no TOTP set up. + %1 මà·à¶»à·Šà¶œà¶º සමඟින් ඇතුල් වීමට TOTP පිහිටුවීමක් නොමà·à¶­. + + + ERROR: attribute %1 is ambiguous, it matches %2. + දà·à·‚ය: ගුණà·à¶‚ගය %1 à¶…à¶´à·à·„à·à¶¯à·’ලි ය, එය %2à¶§ à¶œà·à¶½à¶´à·š. + + + Attribute "%1" not found. + "%1" ගුණà·à¶‚ගය හමු නොවීය. + + + Entry's "%1" attribute copied to the clipboard! + ඇතුල්වීම's "%1" ගුණà·à¶‚ගය පසුරු පුවරුවට à¶´à·’à¶§à¶´à¶­à·Š කරන ලදී! + + + Clearing the clipboard in %1 second(s)... + පසුරු පුවරුව à¶­à¶­à·Šà¶´à¶» %1 කින් හිස් කරමින්...පසුරු පුවරුව à¶­à¶­à·Šà¶´à¶» %1 කින් හිස් කරමින්... + + + Clipboard cleared! + පසුරු පුවරුව හිස් කරන ලදී! + + + Close the currently opened database. + දà·à¶±à¶§ විවෘත à¶šà¶» ඇති දත්ත සමුදà·à¶º වසන්න. + + + Display this help. + මෙම à¶‹à¶´à¶šà·à¶»à¶º පෙන්වන්න. + + + Silence password prompt and other secondary outputs. + මුරපද විමසුම සහ අනෙකුත් ද්විතියික à¶´à·Šâ€à¶»à¶­à·’දà·à¶±à¶ºà¶±à·Š නිහඬ කරන්න. + + + Key file of the database. + දත්ත සමුදà·à¶ºà·š ප්රධà·à¶± ගොනුව. + + + path + මà·à¶»à·Šà¶œà¶º + + + Deactivate password key for the database. + දත්ත සමුදà·à¶º සඳහ෠මුරපද යතුර අක්රිය කරන්න. + + + Yubikey slot and optional serial used to access the database (e.g., 1:7370001). + දත්ත සමුදà·à¶ºà¶§ à¶´à·Šâ€à¶»à·€à·šà· වීමට à¶·à·à·€à·’ත෠කරන Yubikey slot සහ විකල්ප අනුක්â€à¶»à¶¸à·’à¶š (උදà·, 1:7370001). + + + slot[:serial] + තව්[:serial] + + + Missing positional argument(s). + ස්ථà·à¶±à·“ය තර්ක(ය) මග à·„à·à¶»à·“ ඇත. + + + Too many arguments provided. + බොහ෠තර්ක සපය෠ඇත. + + + Path of the database. + දත්ත සමුදà·à¶ºà·š මà·à¶»à·Šà¶œà¶º. + + + Target decryption time in MS for the database. + දත්ත සමුදà·à¶º සඳහ෠MS à·„à·’ ඉලක්කගත විකේතන à¶šà·à¶½à¶º. + + + time + à¶šà·à¶½à¶º + + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + + + + Set the key file for the database. + දත්ත සමුදà·à¶º සඳහ෠යතුරු ගොනුව සකසන්න. + + + Set a password for the database. + දත්ත සමුදà·à¶º සඳහ෠මුරපදයක් සකසන්න. + + + Create a new database. + නව දත්ත සමුදà·à¶ºà¶šà·Š à·ƒà·à¶¯à¶±à·Šà¶±. + + + Invalid decryption time %1. + වලංගු නොවන විකේතන à¶šà·à¶½à¶º %1. + + + Target decryption time must be between %1 and %2. + ඉලක්ක විකේතන à¶šà·à¶½à¶º %1 සහ %2à¶…à¶­à¶» විය යුතුය. + + + Failed to set database password. + දත්ත සමුද෠මුරපදය à·ƒà·à¶šà·ƒà·“මට අසමත් විය. + + + Loading the key file failed + යතුරු ගොනුව පූරණය කිරීම à¶…à·ƒà·à¶»à·Šà¶®à¶š විය + + + No key is set. Aborting database creation. + යතුරක් සකස෠නà·à¶­. දත්ත සමුදà·à¶º නිර්මà·à¶«à¶º කිරීම නවත෠දà·à¶¸à·“ම. + + + Benchmarking key derivation function for %1ms delay. + %1ms à¶´à·Šâ€à¶»à¶¸à·à¶¯à¶º සඳහ෠යතුර ව්â€à¶ºà·”ත්පන්න à·à·Šâ€à¶»à·’තය මිණුම් සලකුණු කිරීම. + + + Setting %1 rounds for key derivation function. + යතුරු ව්â€à¶ºà·”ත්පන්න à·à·Šâ€à¶»à·’තය සඳහ෠වට %1 à¶šà·Š à·ƒà·à¶šà·ƒà·“ම. + + + error while setting database key derivation settings. + දත්ත සමුද෠යතුරු ව්â€à¶ºà·”ත්පන්න à·ƒà·à¶šà·ƒà·”ම් à·ƒà·à¶šà·ƒà·“මේදී දà·à·‚යකි. + + + File %1 already exists. + ගොනුව %1 දà·à¶±à¶§à¶¸à¶­à·Š පවතී. + + + Failed to save the database: %1. + දත්ත සමුදà·à¶º සුරà·à¶šà·“මට අසමත් විය: %1. + + + Successfully created new database. + නව දත්ත සමුදà·à¶º à·ƒà·à¶»à·Šà¶®à¶šà·€ නිර්මà·à¶«à¶º කරන ලදී. + + + Unset the password for the database. + + + + Unset the key file for the database. + + + + Edit a database. + + + + Cannot use %1 and %2 at the same time. + + + + Could not change the database key. + + + + Database was not modified. + + + + Writing the database failed: %1 + දත්ත සමුදà·à¶º ලිවීම à¶…à·ƒà·à¶»à·Šà¶®à¶š විය: %1 + + + Successfully edited the database. + + + + Cannot remove password: The database does not have a password. + + + + Cannot remove file key: The database does not have a file key. + + + + Loading the new key file failed: %1 + + + + Found unexpected Key type %1 + + + + Cannot remove all the keys from a database. + + + + Show a database's information. + දත්ත සමුදà·à¶º's තොරතුරු පෙන්වන්න. + + + UUID: + UUID: + + + Name: + නම: + + + Description: + විස්තර: + + + Cipher: + à¶šà·šà¶­à·à¶‚කය: + + + KDF: + KDF: + + + Recycle bin is enabled. + à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණ බඳුන සක්â€à¶»à·“ය à¶šà¶» ඇත. + + + Recycle bin is not enabled. + à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණ බඳුන සක්â€à¶»à·“ය à¶šà¶» à¶±à·à¶­. + + + Location + ස්ථà·à¶±à¶º + + + Database created + දත්ත සමුදà·à¶º නිර්මà·à¶«à¶º කරන ලදී + + + Last saved + අවසන් වරට සුරකින ලදී + + + Unsaved changes + නොසුරකින ලද වෙනස්කම් + + + yes + ඔව් + + + no + à¶±à·à¶­ + + + Number of groups + à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š ගණන + + + Number of entries + ඇතුළත් කිරීම් ගණන + + + Number of expired entries + කල් ඉකුත් වූ ඇතුළත් කිරීම් ගණන + + + Unique passwords + අද්විතීය මුරපද + + + Non-unique passwords + අද්විතීය නොවන මුරපද + + + Maximum password reuse + උපරිම මුරපදය à¶±à·à·€à¶­ à¶·à·à·€à·’ත෠කිරීම + + + Number of short passwords + කෙටි මුරපද ගණන + + + Number of weak passwords + දුර්වල මුරපද ගණන + + + Entries excluded from reports + ඇතුළත් කිරීම් à·€à·à¶»à·Šà¶­à· වලින් à¶¶à·à·„à·à¶» à¶šà¶» ඇත + + + Average password length + à·ƒà·à¶¸à·à¶±à·Šà¶º මුරපද දිග + + + %1 characters + à¶…à¶šà·Šà·‚à¶» %1 යි + + + Word count for the diceware passphrase. + ඩයිස්වෙයà·à¶»à·Š මුර-à·€à·à¶šà·’à¶šà¶© සඳහ෠වචන ගණන. + + + count + CLI parameter + ගණන් කරන්න + + + Wordlist for the diceware generator. +[Default: EFF English] + ඩයිස්වෙයà·à¶»à·Š à¶‹à¶­à·Šà¶´à·à¶¯à¶š සඳහ෠වචන à¶½à·à¶ºà·’ස්තුව. +[පෙරනිමිය: EFF ඉංග්â€à¶»à·“සි] + + + Generate a new random diceware passphrase. + නව සසම්භà·à·€à·“ ඩයිස්වෙයà·à¶»à·Š මුරපදයක් ජනනය කරන්න. + + + Invalid word count %1 + වලංගු නොවන වචන ගණන %1 + + + The word list is too small (< 1000 items) + වචන à¶½à·à¶ºà·’ස්තුව කුඩ෠වà·à¶©à·’යි (අයිතම< 1000) + + + Title for the entry. + ඇතුල්වීම සඳහ෠මà·à¶­à·˜à¶šà·à·€. + + + title + à·à·“ර්ෂය + + + Edit an entry. + à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶šà·Š සංස්කරණය කරන්න. + + + Path of the entry to edit. + සංස්කරණය කිරීමට ඇතුල්වීමේ මà·à¶»à·Šà¶œà¶º. + + + Not changing any field for entry %1. + ඇතුල්වීම %1සඳහ෠කිසිදු à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶ºà¶šà·Š වෙනස් නොකරයි. + + + Enter new password for entry: + ඇතුල්වීම සඳහ෠නව මුරපදය ඇතුළත් කරන්න: + + + Successfully edited entry %1. + à¶´à·Šâ€à¶»à·€à·šà·à¶º %1à·ƒà·à¶»à·Šà¶®à¶šà·€ සංස්කරණය කරන ලදී. + + + Perform advanced analysis on the password. + මුරපදය මත උසස් විà·à·Šà¶½à·šà·‚ණයක් සිදු කරන්න. + + + Password for which to estimate the entropy. + එන්ට්රොපිය තක්සේරු කිරීමට මුරපදය. + + + Estimate the entropy of a password. + මුරපදයක එන්ට්â€à¶»à·œà¶´à·’ය ඇස්තමේන්තු කරන්න. + + + Length %1 + දිග %1 + + + Entropy %1 + එන්ට්රොපි %1 + + + Log10 %1 + ලොගය 10 %1 + + + Multi-word extra bits %1 + à¶¶à·„à·” වචන අමතර à¶¶à·’à¶§à·” %1 + + + Type: Bruteforce + වර්ගය: Bruteforce + + + Type: Dictionary + වර්ගය: à·à¶¶à·Šà¶¯à¶šà·à·‚ය + + + Type: Dict+Leet + වර්ගය: Dict+Leet + + + Type: User Words + වර්ගය: පරිà·à·“ලක වචන + + + Type: User+Leet + වර්ගය: User+Leet + + + Type: Repeated + වර්ගය: à¶±à·à·€à¶­ à¶±à·à·€à¶­à¶­à·Š + + + Type: Sequence + වර්ගය: අනුපිළිවෙල + + + Type: Spatial + වර්ගය: අවකà·à·à·“ය + + + Type: Date + වර්ගය: දිනය + + + Type: Bruteforce(Rep) + වර්ගය: Bruteforce(නියà·à¶¢à·’à¶­) + + + Type: Dictionary(Rep) + වර්ගය: à·à¶¶à·Šà¶¯à¶šà·à·‚ය(නියà·à¶¢à·’à¶­) + + + Type: Dict+Leet(Rep) + වර්ගය: Dict+Leet(Rep) + + + Type: User Words(Rep) + වර්ගය: පරිà·à·“ලක වචන (Rep) + + + Type: User+Leet(Rep) + වර්ගය: User+Leet(Rep) + + + Type: Repeated(Rep) + වර්ගය: à¶±à·à·€à¶­ à¶±à·à·€à¶­à¶­à·Š (Rep) + + + Type: Sequence(Rep) + වර්ගය: අනුපිළිවෙල (නියà·à¶¢à·’à¶­) + + + Type: Spatial(Rep) + වර්ගය: අවකà·à·à·“ය (නියà·à¶¢à·’à¶­) + + + Type: Date(Rep) + වර්ගය: දිනය (නියà·à¶¢à·’à¶­) + + + Type: Unknown (%1) + වර්ගය: නොදන්න෠(%1) + + + Entropy %1 (%2) + එන්ට්රොපි %1 (%2) + + + *** Password length (%1) != sum of length of parts (%2) *** + *** මුරපද දිග (%1) != කොටස්වල දිග එකතුව (%2) *** + + + Exit interactive mode. + අන්තර්ක්â€à¶»à·’යà·à¶šà·à¶»à·“ මà·à¶¯à·’ලියෙන් පිටවන්න. + + + Format to use when exporting. Available choices are 'xml' or 'csv'. Defaults to 'xml'. + අපනයනය කිරීමේදී à¶·à·à·€à·’à¶­à· à¶šà·… යුතු ආකෘතිය. පවතින තේරීම් 'xml' à·„à· 'csv'වේ. පෙරනිමිය 'xml'. + + + Exports the content of a database to standard output in the specified format. + දත්ත සමුදà·à¶ºà¶š අන්තර්ගතය නියමිත ආකෘතියේ සම්මත à¶´à·Šâ€à¶»à¶­à·’දà·à¶±à¶ºà¶§ අපනයනය කරයි. + + + Unable to export database to XML: %1 + XML වෙත දත්ත සමුදà·à¶º අපනයනය à¶šà·… නොහà·à¶š: %1 + + + Unsupported format %1 + සහà·à¶º නොදක්වන ආකෘතිය %1 + + + Length of the generated password + ජනනය කරන ලද මුරපදයේ දිග + + + length + දිග + + + Use lowercase characters + කුඩ෠අකුරු à¶·à·à·€à·’ත෠කරන්න + + + Use uppercase characters + ලොකු අකුරු à¶·à·à·€à·’ත෠කරන්න + + + Use numbers + à¶…à¶‚à¶š à¶·à·à·€à·’ත෠කරන්න + + + Use special characters + විà·à·šà·‚ à¶…à¶šà·Šà·‚à¶» à¶·à·à·€à·’ත෠කරන්න + + + Use extended ASCII + දිගු ASCII à¶·à·à·€à·’ත෠කරන්න + + + Exclude character set + à¶…à¶šà·Šà·‚à¶» කට්ටලය à¶¶à·à·„à·à¶» කරන්න + + + chars + à¶…à¶šà·Šà·‚à¶» + + + Use custom character set + අභිරුචි à¶…à¶šà·Šà·‚à¶» කට්ටලය à¶·à·à·€à·’ත෠කරන්න + + + Exclude similar looking characters + සමà·à¶± පෙනුමක් ඇති à¶…à¶šà·Šà·‚à¶» à¶¶à·à·„à·à¶» කරන්න + + + Include characters from every selected group + à¶­à·à¶»à·à¶œà¶­à·Š සෑම à¶šà¶«à·Šà¶©à·à¶ºà¶¸à¶šà·’න්ම à¶…à¶šà·Šà·‚à¶» ඇතුළත් කරන්න + + + Generate a new random password. + නව අහඹු මුරපදයක් ජනනය කරන්න. + + + Invalid password length %1 + වලංගු නොවන මුරපද දිග %1 + + + Invalid password generator after applying all options + සියලුම විකල්ප යෙදීමෙන් පසු වලංගු නොවන මුරපද à¶‹à¶­à·Šà¶´à·à¶¯à¶š යන්ත්රය + + + Display command help. + විධà·à¶± à¶‹à¶´à¶šà·à¶»à¶º පෙන්වන්න. + + + Available commands: + පවතින විධà·à¶±: + + + Import the contents of an XML database. + XML දත්ත සමුදà·à¶ºà¶š අන්තර්ගතය ආයà·à¶­ කරන්න. + + + Path of the XML database export. + XML දත්ත සමුදà·à¶º අපනයනය කිරීමේ මà·à¶»à·Šà¶œà¶º. + + + Path of the new database. + නව දත්ත සමුදà·à¶ºà·š මà·à¶»à·Šà¶œà¶º. + + + Unable to import XML database: %1 + XML දත්ත සමුදà·à¶º ආයà·à¶­ à¶šà·… නොහà·à¶š: %1 + + + Successfully imported database. + දත්ත සමුදà·à¶º à·ƒà·à¶»à·Šà¶®à¶šà·€ ආනයනය කරන ලදී. + + + Unknown command %1 + නොදන්න෠විධà·à¶±à¶º %1 + + + + +Available commands: + + + +පවතින විධà·à¶±: + + + + Name of the command to execute. + à¶šà·Šâ€à¶»à·’යà·à¶­à·Šà¶¸à¶š à¶šà·… යුතු විධà·à¶±à¶ºà·š නම. + + + Displays debugging information. + දà·à· නිරà·à¶šà¶»à¶« තොරතුරු පෙන්වයි. + + + Invalid command %1. + වලංගු නොවන විධà·à¶± %1. + + + Recursively list the elements of the group. + සමූහයේ මූලද්â€à¶»à·€à·Šâ€à¶º පුනරà·à·€à¶»à·Šà¶­à¶± ලෙස à¶½à·à¶ºà·’ස්තුගත කරන්න. + + + Flattens the output to single lines. + à¶´à·Šâ€à¶»à¶­à·’දà·à¶±à¶º තනි පේළියකට සමතල෠කරයි. + + + List database entries. + දත්ත සමුද෠ඇතුළත් කිරීම් à¶½à·à¶ºà·’ස්තුගත කරන්න. + + + Path of the group to list. Default is / + à¶½à·à¶ºà·’ස්තුගත කිරීමට සමූහයේ මà·à¶»à·Šà¶œà¶º. පෙරනිමිය වන්නේ / + + + Cannot find group %1. + %1à¶šà¶«à·Šà¶©à·à¶ºà¶¸ සොයà·à¶œà¶­ නොහà·à¶š. + + + Use the same credentials for both database files. + දත්ත සමුද෠ගොනු දෙකම සඳහ෠එකම à¶…à¶šà·Šà¶­à¶´à¶­à·Šâ€à¶» à¶·à·à·€à·’ත෠කරන්න. + + + Key file of the database to merge from. + à¶’à¶šà·à¶¶à¶¯à·Šà¶° කිරීමට දත්ත සමුදà·à¶ºà·š යතුරු ගොනුව. + + + Deactivate password key for the database to merge from. + දත්ත සමුදà·à¶º à¶’à¶šà·à¶¶à¶¯à·Šà¶° කිරීම සඳහ෠මුරපද යතුර à¶…à¶šà·Šâ€à¶»à·’ය කරන්න. + + + Only print the changes detected by the merge operation. + à¶’à¶šà·à¶¶à¶¯à·Šà¶° කිරීමේ මෙහෙයුමෙන් à¶…à¶±à·à·€à¶»à¶«à¶º කරගත් වෙනස්කම් පමණක් මුද්â€à¶»à¶«à¶º කරන්න. + + + Yubikey slot for the second database. + දෙවන දත්ත සමුදà·à¶º සඳහ෠Yubikey තව්. + + + slot + තව් + + + Merge two databases. + දත්ත සමුදà·à¶ºà¶±à·Š දෙකක් à¶’à¶šà·à¶¶à¶¯à·Šà¶° කරන්න. + + + Path of the database to merge from. + à¶’à¶šà·à¶¶à¶¯à·Šà¶° කිරීමට දත්ත සමුදà·à¶ºà·š මà·à¶»à·Šà¶œà¶º. + + + Error reading merge file: +%1 + à¶’à¶šà·à¶¶à¶¯à·Šà¶° ගොනුව කියවීමේ දà·à·‚යකි: +%1 + + + Unable to save database to file : %1 + ගොනුව වෙත දත්ත සමුදà·à¶º සුරà·à¶šà·’ය නොහà·à¶š: %1 + + + Successfully merged %1 into %2. + %1 %2à·ƒà·à¶»à·Šà¶®à¶šà·€ à¶’à¶šà·à¶¶à¶¯à·Šà¶° කරන ලදී. + + + Database was not modified by merge operation. + දත්ත සමුදà·à¶º à¶’à¶šà·à¶¶à¶¯à·Šà¶° කිරීමේ මෙහෙයුම මගින් වෙනස් à¶šà¶» à¶±à·à¶­. + + + Moves an entry to a new group. + නව à¶šà¶«à·Šà¶©à·à¶ºà¶¸à¶šà¶§ à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶šà·Š ගෙන යයි. + + + Path of the entry to move. + චලනය කිරීමට ඇතුල් වීමේ මà·à¶»à·Šà¶œà¶º. + + + Path of the destination group. + ගමනà·à¶±à·Šà¶­ සමූහයේ මà·à¶»à·Šà¶œà¶º. + + + Could not find group with path %1. + %1මà·à¶»à·Šà¶œà¶º සහිත à¶šà¶«à·Šà¶©à·à¶ºà¶¸à¶šà·Š සොය෠ගà·à¶±à·“මට නොහà·à¶šà·’ විය. + + + Entry is already in group %1. + ඇතුල්වීම දà·à¶±à¶§à¶¸à¶­à·Š %1à¶šà·à¶«à·Šà¶©à¶ºà·š ඇත. + + + Successfully moved entry %1 to group %2. + à¶´à·Šâ€à¶»à·€à·šà·à¶º %1 %2à¶šà¶«à·Šà¶©à·à¶ºà¶¸à¶§ à·ƒà·à¶»à·Šà¶®à¶šà·€ ගෙන යන ලදී. + + + Open a database. + දත්ත සමුදà·à¶ºà¶šà·Š විවෘත කරන්න. + + + Path of the entry to remove. + ඉවත් කිරීමට ඇතුල් වීමේ මà·à¶»à·Šà¶œà¶º. + + + Unable to save database to file: %1 + ගොනුව වෙත දත්ත සමුදà·à¶º සුරà·à¶šà·’ය නොහà·à¶š: %1 + + + Successfully recycled entry %1. + à¶´à·Šâ€à¶»à·€à·šà·à¶º %1à·ƒà·à¶»à·Šà¶®à¶šà·€ à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණය කරන ලදී. + + + Successfully deleted entry %1. + à¶´à·Šâ€à¶»à·€à·šà·à¶º %1à·ƒà·à¶»à·Šà¶®à¶šà·€ මක෠දමන ලදී. + + + Path of the group to remove. + ඉවත් කිරීමට සමූහයේ මà·à¶»à·Šà¶œà¶º. + + + Cannot remove root group from database. + දත්ත සමුදà·à¶ºà·™à¶±à·Š root à¶šà¶«à·Šà¶©à·à¶ºà¶¸ ඉවත් à¶šà·… නොහà·à¶š. + + + Successfully recycled group %1. + %1à¶šà·à¶«à·Šà¶©à¶º à·ƒà·à¶»à·Šà¶®à¶šà·€ à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණය කරන ලදී. + + + Successfully deleted group %1. + %1à¶šà¶«à·Šà¶©à·à¶ºà¶¸ à·ƒà·à¶»à·Šà¶®à¶šà·€ මක෠දමන ලදී. + + + Find entries quickly. + ඉක්මනින් ඇතුළත් කිරීම් සොයන්න. + + + Search term. + සොයන්න à¶šà·à¶½à·“à¶±. + + + Show the entry's current TOTP. + 's වත්මන් TOTP à¶´à·Šâ€à¶»à·€à·šà·à¶º පෙන්වන්න. + + + Show the protected attributes in clear text. + ආරක්ෂිත ගුණà·à¶‚à¶œ à¶´à·à·„à·à¶¯à·’ලි පෙළකින් පෙන්වන්න. + + + Show all the attributes of the entry. + + + + Show the attachments of the entry. + à¶´à·Šâ€à¶»à·€à·šà·à¶ºà·š ඇමුණුම් පෙන්වන්න. + + + Names of the attributes to show. This option can be specified more than once, with each attribute shown one-per-line in the given order. If no attributes are specified, a summary of the default attributes is given. + පෙන්විය යුතු ගුණà·à¶‚ගවල නම්. මෙම විකල්පය à¶‘à¶šà·Š වරකට වඩ෠සඳහන් à¶šà·… à·„à·à¶š, à¶‘à¶šà·Š à¶‘à¶šà·Š ගුණà·à¶‚ගය ලබ෠දී ඇති අනුපිළිවෙලෙහි පේළියකට à¶‘à¶š à¶¶à·à¶œà·’න් පෙන්වයි. ගුණà·à¶‚à¶œ කිසිවක් සඳහන් à¶šà¶» නොමà·à¶­à·’ නම්, පෙරනිමි ගුණà·à¶‚ගවල à·ƒà·à¶»à·à¶‚à·à¶ºà¶šà·Š ලබ෠දෙනු à¶½à·à¶¶à·š. + + + attribute + ගුණà·à¶‚ගය + + + Show an entry's information. + 's තොරතුරු ඇතුළත් කිරීමක් පෙන්වන්න. + + + Name of the entry to show. + පෙන්වීමට ඇතුළත් කිරීමේ නම. + + + ERROR: unknown attribute %1. + දà·à·‚ය: නොදන්න෠ගුණà·à¶‚ගය %1. + + + No attachments present. + ඇමුණුම් නොමà·à¶­. + + + Attachments: + ඇමුණුම්: + + + Failed to open database file %1: not found + දත්ත සමුද෠ගොනුව %1විවෘත කිරීමට අපොහොසත් විය : හමු නොවීය + + + Failed to open database file %1: not a plain file + දත්ත සමුද෠ගොනුව විවෘත කිරීමට අසමත් විය %1: සරල ගොනුවක් නොවේ + + + Failed to open database file %1: not readable + දත්ත සමුද෠ගොනුව %1විවෘත කිරීමට අසමත් විය : කියවිය නොහà·à¶š + + + Enter password to unlock %1: + %1අගුළු ඇරීමට මුරපදය ඇතුළත් කරන්න: + + + Failed to load key file %1: %2 + යතුරු ගොනුව %1: %2පූරණය කිරීමට අසමත් විය + + + WARNING: You are using an old key file format which KeePassXC may +stop supporting in the future. + +Please consider generating a new key file. + අවවà·à¶¯à¶ºà¶ºà·’: ඔබ à¶·à·à·€à·’ත෠කරන්නේ à¶´à·à¶»à¶«à·’ යතුරු ගොනු ආකෘතියක් වන à¶…à¶­à¶» එය à¶…à¶±à·à¶œà¶­à¶ºà·šà¶¯à·“ KeePassXC +සහà·à¶º දීම à¶±à·à·€à·à¶­à·Šà·€à·’ය à·„à·à¶šà·’ය. + +කරුණà·à¶šà¶» නව යතුරු ගොනුවක් à¶‹à¶­à·Šà¶´à·à¶¯à¶±à¶º කිරීම සලක෠බලන්න. + + + Invalid YubiKey slot %1 + වලංගු නොවන YubiKey තව් %1 + + + Invalid YubiKey serial %1 + වලංගු නොවන YubiKey අනුක්â€à¶»à¶¸à·’à¶š %1 + + + Please present or touch your YubiKey to continue. + ඉදිරියට යà·à¶¸à¶§ ඔබගේ YubiKey ඉදිරිපත් කරන්න හ෠ස්පර්෠කරන්න. + + + Enter password to encrypt database (optional): + දත්ත සමුදà·à¶º සංකේතනය කිරීමට මුරපදය ඇතුළත් කරන්න (විකල්ප): + + + Do you want to create a database with an empty password? [y/N]: + ඔබට හිස් මුරපදයකින් දත්ත සමුදà·à¶ºà¶šà·Š සෑදීමට à¶…à·€à·à·Šâ€à¶ºà¶¯? [y/N]: + + + Repeat password: + මුරපදය à¶±à·à·€à¶­ කරන්න: + + + Error: Passwords do not match. + දà·à·‚ය: මුරපද නොගà·à¶½à¶´à·š. + + + No program defined for clipboard manipulation + ක්ලිප්බà·à¶©à·Š à·„à·à·ƒà·’රවීම සඳහ෠කිසිදු à·€à·à¶©à·ƒà¶§à·„නක් අර්ථ දක්ව෠නොමà·à¶­ + + + All clipping programs failed. Tried %1 + + සියලුම ක්ලිපින් à·€à·à¶©à·ƒà¶§à·„න් à¶…à·ƒà·à¶»à·Šà¶®à¶š විය. +à¶‹à¶­à·Šà·ƒà·à·„ %1 + + + Creating KeyFile %1 failed: %2 + KeyFile %1 නිර්මà·à¶«à¶º කිරීම à¶…à·ƒà·à¶»à·Šà¶®à¶š විය: %2 + + + Loading KeyFile %1 failed: %2 + KeyFile %1 පූරණය කිරීම à¶…à·ƒà·à¶»à·Šà¶®à¶š විය: %2 + + + HIBP file, line %1: parse error + HIBP ගොනුව, පේළිය %1: විග්â€à¶»à·„ කිරීමේ දà·à·‚ය + + + To use okon, you must provide a post-processed file (e.g. file.okon) + okon à¶·à·à·€à·’ත෠කිරීමට, ඔබ පසු-සකසන ලද ගොනුවක් à·ƒà·à¶´à¶ºà·’ය යුතුය (උදà·: file.okon) + + + Could not start okon process: %1 + okon à¶šà·Šâ€à¶»à·’යà·à·€à¶½à·’ය ආරම්භ à¶šà·… නොහà·à¶š: %1 + + + Error: okon process did not finish + දà·à·‚ය: okon à¶šà·Šâ€à¶»à·’යà·à·€à¶½à·’ය අවසන් නොවීය + + + Failed to load okon processed database: %1 + okon à·ƒà·à¶šà·ƒà·– දත්ත සමුදà·à¶º පූරණය කිරීමට අසමත් විය: %1 + + + Very weak password + ඉත෠දුර්වල මුරපදය + + + Password entropy is %1 bits + මුරපද එන්ට්â€à¶»à·œà¶´à·’ය à¶¶à·’à¶§à·” %1 à¶šà·’ + + + Weak password + දුර්වල මුරපදය + + + Used in %1/%2 + %1à·„à·’ à¶·à·à·€à·’à¶­à·%2 + + + Password is used %1 time(s) + මුරපදය %1 වරක් (ය) à¶·à·à·€à·’ත෠වේමුරපදය %1 වරක් (ය) à¶·à·à·€à·’ත෠වේ + + + Password has expired + මුරපදය කල් ඉකුත් වී ඇත + + + Password expiry was %1 + මුරපද කල් ඉකුත්වීම %1විය + + + Password expires on %1 + මුරපදය %1දිනෙන් කල් ඉකුත් වේ + + + Password is about to expire + මුරපදය කල් ඉකුත් වීමට ආසන්නයි + + + Password expires in %1 day(s) + මුරපදය දින %1 කින් කල් ඉකුත් වේමුරපදය දින %1 කින් කල් ඉකුත් වේ + + + Password will expire soon + මුරපදය ඉක්මනින් කල් ඉකුත් වේ + + + Version %1 + අනුවà·à¶¯à¶º %1 + + + Build Type: %1 + ගොඩනà·à¶œà·“මේ වර්ගය: %1 + + + Revision: %1 + සංà·à·à¶°à¶±à¶º: %1 + + + Distribution: %1 + බෙද෠හà·à¶»à·“ම: %1 + + + Debugging mode is disabled. + නිදොස් කිරීමේ මà·à¶¯à·’ලිය à¶…à¶¶à¶½ à¶šà¶» ඇත. + + + Debugging mode is enabled. + නිදොස් කිරීමේ මà·à¶¯à·’ලිය සබල à¶šà¶» ඇත. + + + Operating system: %1 +CPU architecture: %2 +Kernel: %3 %4 + මෙහෙයුම් පද්ධතිය: %1 +CPU ගෘහ නිර්මà·à¶« à·à·’ල්පය: %2 +කර්නලය: %3 %4 + + + Auto-Type + ස්වයංක්â€à¶»à·“ය වර්ගය + + + SSH Agent + SSH නියà·à¶¢à·’තය෠+ + + KeeShare + KeeShare + + + YubiKey + යූබිකේ + + + Quick Unlock + ඉක්මන් අගුලු à·„à·à¶»à·“ම + + + Secret Service Integration + රහස් සේව෠ඒකà·à¶¶à¶¯à·Šà¶° කිරීම + + + None + කිසිවක් à¶±à·à¶­ + + + Enabled extensions: + සබල à¶šà·… දිගු: + + + over %1 year(s) + වසර %1 à¶šà¶§ à·€à·à¶©à·’ (ය)වසර %1 à¶šà¶§ à·€à·à¶©à·’ (ය) + + + about %1 month(s) + මà·à·ƒ %1 (ය) පමණමà·à·ƒ %1 (ය) පමණ + + + %1 week(s) + සති %1 (ය)සති %1 (ය) + + + %1 day(s) + දින %1 (ය)දින %1 (ය) + + + %1 hour(s) + à¶´à·à¶º %1 (ය)à¶´à·à¶º %1 (ය) + + + %1 minute(s) + මිනිත්තු %1 (ය)මිනිත්තු %1 (ය) + + + Botan library must be at least %1, found %2.%3.%4 + + + + Cryptographic libraries: + ගුප්ත ලේඛන පුස්තකà·à¶½: + + + AES (%1 rounds) + AES (වට%1) + + + Argon2%1 (%2 rounds, %3 KB) + Argon2%1 ( වට%2 , %3 KB) + + + SymmetricCipher::init: Invalid cipher mode. + SymmetricCipher::init: වලංගු නොවන à¶šà·šà¶­à·à¶‚à¶š මà·à¶¯à·’ලිය. + + + SymmetricCipher::init: Invalid IV size of %1 for %2. + සමමිතික à¶šà·šà¶­à·à¶‚කය::init: වලංගු නොවන IV à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º %1 සඳහ෠%2. + + + Cipher not initialized prior to use. + à¶šà·šà¶­à·à¶‚කය à¶·à·à·€à·’තයට පෙර ආරම්භ à¶šà¶» à¶±à·à¶­. + + + Cannot process 0 length data. + 0 දිග දත්ත à·ƒà·à¶šà·ƒà·“මට නොහà·à¶š. + + + unknown executable (DBus address %1) + නොදන්න෠ක්â€à¶»à·’යà·à¶­à·Šà¶¸à¶š à¶šà·… à·„à·à¶šà·’ (DBus ලිපිනය %1) + + + %1 (invalid executable path) + %1 (වලංගු නොවන à¶šà·Šâ€à¶»à·’යà·à¶­à·Šà¶¸à¶š à¶šà·… à·„à·à¶šà·’ මà·à¶»à·Šà¶œà¶º) + + + NULL device + NULL à¶‹à¶´à·à¶‚ගය + + + error reading from device + à¶‹à¶´à·à¶‚ගයෙන් කියවීමේ දà·à·‚යකි + + + file empty + ගොනුව හිස් + + + malformed string + විකෘති තන්තුව + + + missing closing quote + අවසන් උපුට෠දà·à¶šà·Šà·€à·“ම අතුරුදහන් + + + %1: (row, col) %2,%3 + %1: (පේළිය, කොල්) %2,%3 + + + AES 256-bit + AES 256-bit + + + Twofish 256-bit + Twofish 256-bit + + + ChaCha20 256-bit + ChaCha20 256-bit + + + Argon2d (KDBX 4 – recommended) + Argon2d (KDBX 4 - නිර්දේà·à·’à¶­) + + + Argon2id (KDBX 4) + Argon2id (KDBX 4) + + + AES-KDF (KDBX 4) + AES-KDF (KDBX 4) + + + AES-KDF (KDBX 3) + AES-KDF (KDBX 3) + + + Existing single-instance lock file is invalid. Launching new instance. + පවතින තනි-උදà·à·„රණ අගුළු ගොනුව වලංගු නොවේ. නව අවස්ථà·à·€à¶šà·Š දියත් කිරීම. + + + The lock file could not be created. Single-instance mode disabled. + අගුළු ගොනුව සෑදිය නොහà·à¶š. තනි අවස්ථ෠මà·à¶¯à·’ලිය à¶…à¶¶à¶½ à¶šà¶» ඇත. + + + Clearing the clipboard in %1 second(s)… + à¶­à¶­à·Šà¶´à¶» %1 කින් පසුරු පුවරුව හිස් කිරීම…තත්පර %1 කින් පසුරු පුවරුව හිස් කිරීම… + + + Group + සමූහය + + + Title + à·à·“ර්ෂය + + + Username + පරිà·à·“ලක à¶±à·à¶¸à¶º + + + Password + මුරපදය + + + TOTP + TOTP + + + Icon + නිරූපකය + + + Last Modified + අවසන් වරට වෙනස් කරන ලදී + + + Created + නිර්මà·à¶«à¶º à¶šà·…à· + + + Benchmark %1 delay + මිණුම් ලකුණ %1 à¶´à·Šâ€à¶»à¶¸à·à¶¯à¶º + + + %1 ms + milliseconds + %1 ms%1 ms + + + %1 s + seconds + %1 à¶­à¶­à·Š%1 à¶­à¶­à·Š + + + Do you really want to delete the entry "%1" for good? + ඔබට ඇත්ත à·€à·à¶ºà·™à¶±à·Šà¶¸ "%1" à¶´à·Šâ€à¶»à·€à·šà·à¶º යහපත සඳහ෠මක෠දà·à¶¸à·“මට à¶…à·€à·à·Šâ€à¶ºà¶¯? + + + Do you really want to delete %n entry(s) for good? + ඔබට ඇත්තටම හොඳ සඳහ෠%n ඇතුළත් කිරීම්(ය) මà·à¶šà·“මට à¶…à·€à·à·Šâ€à¶ºà¶¯?ඔබට ඇත්තටම හොඳ සඳහ෠%n ඇතුළත් කිරීම්(ය) මà·à¶šà·“මට à¶…à·€à·à·Šâ€à¶ºà¶¯? + + + Delete entry(s)? + ඇතුළත් කිරීම්(න්) මකන්නද?ඇතුළත් කිරීම්(න්) මකන්නද? + + + Do you really want to move entry "%1" to the recycle bin? + ඔබට ඇත්තටම à¶´à·Šâ€à¶»à·€à·šà· "%1" à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණ බඳුනට ගෙන යà·à¶¸à¶§ à¶…à·€à·à·Šâ€à¶ºà¶¯? + + + Do you really want to move %n entry(s) to the recycle bin? + ඔබට ඇත්තටම à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණ බඳුනට ඇතුල්වීම්(ය) %n à¶šà·Š ගෙන යà·à¶¸à¶§ à¶…à·€à·à·Šâ€à¶ºà¶¯?ඔබට ඇත්තටම à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණ බඳුනට ඇතුල්වීම්(ය) %n à¶šà·Š ගෙන යà·à¶¸à¶§ à¶…à·€à·à·Šâ€à¶ºà¶¯? + + + Move entry(s) to recycle bin? + à¶´à·Šâ€à¶»à·€à·šà·à¶º(ය) à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණ බඳුනට ගෙන යන්නද?ඇතුළත් කිරීම්(ය) à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණ බඳුනට ගෙන යන්නද? + + + Replace references to entry? + à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶§ යොමු à¶´à·Šâ€à¶»à¶­à·’ස්ථà·à¶´à¶±à¶º කරන්නද? + + + Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? + "%1" à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶§ යොමු(ය) %2 ඇත. ඔබට අගයන් සමඟ යොමු à¶±à·à·€à¶­ ලිවීමට, මෙම à¶´à·Šâ€à¶»à·€à·šà·à¶º මඟ à·„à·à¶»à·“මට හ෠කෙසේ හ෠මක෠දà·à¶¸à·“මට à¶…à·€à·à·Šâ€à¶ºà¶¯?"%1" à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶§ යොමු(ය) %2 ඇත. ඔබට අගයන් සමඟ යොමු à¶±à·à·€à¶­ ලිවීමට, මෙම à¶´à·Šâ€à¶»à·€à·šà·à¶º මඟ à·„à·à¶»à·“මට හ෠කෙසේ හ෠මක෠දà·à¶¸à·“මට à¶…à·€à·à·Šâ€à¶ºà¶¯? + + + User name + පරිà·à·“ලක à¶±à·à¶¸à¶º + + + Browser Statistics + බ්රවුසර සංඛ්ය෠ලේඛන + + + Health Check + සෞඛ්ය පරීක්ෂà·à·€ + + + HIBP + HIBP + + + Statistics + සංඛ්යà·à¶½à·šà¶›à¶± + + + Unsupported key file version: %1 + සහà·à¶º නොදක්වන යතුරු ගොනු අනුවà·à¶¯à¶º: %1 + + + Checksum mismatch! Key file may be corrupt. + චෙක්සම් නොගà·à¶½à¶´à·“ම! යතුරු ගොනුව දූෂිත විය à·„à·à¶š. + + + Unexpected key file data! Key file may be corrupt. + අනපේක්ෂිත යතුරු ගොනු දත්ත! යතුරු ගොනුව දූෂිත විය à·„à·à¶š. + + + KeePassXC - cross-platform password manager + KeePassXC - හරස් වේදික෠මුරපද කළමනà·à¶šà¶»à·” + + + filenames of the password databases to open (*.kdbx) + විවෘත කිරීමට මුරපද දත්ත සමුදà·à¶ºà·š ගොනු à¶±à·à¶¸ (*.kdbx) + + + path to a custom config file + අභිරුචි වින්â€à¶ºà·à·ƒ ගොනුවකට මà·à¶»à·Šà¶œà¶º + + + path to a custom local config file + අභිරුචි දේà·à·“ය වින්â€à¶ºà·à·ƒ ගොනුවකට මà·à¶»à·Šà¶œà¶º + + + lock all open databases + සියලුම විවෘත දත්ත සමුදà·à¶ºà¶±à·Š අගුළු දමන්න + + + key file of the database + දත්ත සමුදà·à¶ºà·š ප්රධà·à¶± ගොනුව + + + read password of the database from stdin + stdin වෙතින් දත්ත සමුදà·à¶ºà·š මුරපදය කියවන්න + + + Locked databases. + අගුලු දà·à¶¸à·– දත්ත සමුදà·à¶ºà¶±à·Š. + + + Database failed to lock. + දත්ත සමුදà·à¶º අගුළු දà·à¶¸à·“මට අසමත් විය. + + + Another instance of KeePassXC is already running. + KeePassXC à·„à·’ තවත් අවස්ථà·à·€à¶šà·Š දà·à¶±à¶§à¶¸à¶­à·Š à¶šà·Šâ€à¶»à·’යà·à¶­à·Šà¶¸à¶š වේ. + + + KeePassXC is not running. No open database to lock + + + + Fatal error while testing the cryptographic functions. + ගුප්ත ලේඛන à¶šà·à¶»à·Šà¶ºà¶ºà¶±à·Š පරීක්ෂ෠කිරීමේදී මà·à¶»à·à¶±à·Šà¶­à·’à¶š දà·à·‚යක්. + + + KeePassXC - Error + KeePassXC - දà·à·‚යකි + + + Database password: + දත්ත සමුද෠මුරපදය: + + + Invalid Settings + TOTP + වලංගු නොවන à·ƒà·à¶šà·ƒà·”ම් + + + Invalid Key + TOTP + වලංගු නොවන යතුර + + + Failed to create Windows Hello credential. + Windows Hello à¶…à¶šà·Šà¶­à¶´à¶­à·Šâ€à¶»à¶º සෑදීමට අසමත් විය. + + + Failed to sign challenge using Windows Hello. + Windows Hello à¶·à·à·€à·’තයෙන් අභියà·à¶œà¶ºà¶§ අත්සන් කිරීමට අසමත් විය. + + + Warning: Failed to block screenshot capture on a top-level window. + + + + Invalid Cipher + + + + Invalid KDF + + + + Access to all entries is denied + + + + allow screenshots and app recording (Windows/macOS) + + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + + + + Credential is excluded + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Passkeys + + + + AES initialization failed + + + + AES encrypt failed + + + + Failed to store in Linux Keyring + + + + Polkit returned an error: %1 + + + + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + + + + Failed to init KeePassXC crypto. + KeePassXC crypto ආරම්භ කිරීමට අසමත් විය. + + + Failed to encrypt key data. + ප්රධà·à¶± දත්ත සංකේතනය කිරීමට අසමත් විය. + + + Failed to get Windows Hello credential. + Windows Hello à¶…à¶šà·Šà¶­à¶´à¶­à·Šâ€à¶» ලබ෠ගà·à¶±à·“මට අසමත් විය. + + + Failed to decrypt key data. + ප්රධà·à¶± දත්ත විකේතනය කිරීමට අසමත් විය. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length + + + + + QtIOCompressor + + Internal zlib error when compressing: + සම්පීඩනය කිරීමේදී à¶…à¶·à·Šâ€à¶ºà¶±à·Šà¶­à¶» zlib දà·à·‚ය: + + + Error writing to underlying device: + යටින් පවතින à¶‹à¶´à·à¶‚ගයට ලිවීමේ දà·à·‚යකි: + + + Error opening underlying device: + යටින් පවතින à¶‹à¶´à·à¶‚ගය විවෘත කිරීමේ දà·à·‚යකි: + + + Error reading data from underlying device: + යටින් පවතින à¶‹à¶´à·à¶‚ගයෙන් දත්ත කියවීමේ දà·à·‚යකි: + + + Internal zlib error when decompressing: + විසංයà·à¶¢à¶±à¶º කිරීමේදී à¶…à¶·à·Šâ€à¶ºà¶±à·Šà¶­à¶» zlib දà·à·‚ය: + + + + QtIOCompressor::open + + The gzip format not supported in this version of zlib. + zlib à·„à·’ මෙම අනුවà·à¶¯à¶ºà·š gzip ආකෘතිය සහà·à¶º නොදක්වයි. + + + Internal zlib error: + à¶…à¶·à·Šâ€à¶ºà¶±à·Šà¶­à¶» zlib දà·à·‚ය: + + + + ReportsWidgetBrowserStatistics + + Double-click entries to edit. + සංස්කරණය කිරීමට ඇතුළත් කිරීම් ද්විත්ව ක්ලික් කරන්න. + + + List of entry URLs + ඇතුල්වීමේ URL à¶½à·à¶ºà·’ස්තුව + + + Entry has no URLs set + à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶§ URL සකස෠නà·à¶­ + + + Allowed URLs + අවසර ලත් URL + + + Entry has no Browser Integration settings + à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶§ à¶¶à·Šâ€à¶»à·€à·”සර් à¶’à¶šà·à¶¶à¶¯à·Šà¶° කිරීමේ à·ƒà·à¶šà·ƒà·”ම් නොමà·à¶­ + + + Denied URLs + à¶´à·Šâ€à¶»à¶­à·’à¶šà·Šà·‚à·šà¶´ à¶šà·… URL + + + (Excluded) + (à¶¶à·à·„à·à¶») + + + This entry is being excluded from reports + මෙම à¶´à·Šâ€à¶»à·€à·šà·à¶º à·€à·à¶»à·Šà¶­à· වලින් à¶¶à·à·„à·à¶» කෙරේ + + + Please wait, browser statistics is being calculated… + කරුණà·à¶šà¶» à¶»à·à¶³à·“ සිටින්න, à¶¶à·Šâ€à¶»à·€à·”සර සංඛ්â€à¶ºà·à¶½à·šà¶›à¶± ගණනය කෙරේ… + + + No entries with a URL, or none has browser extension settings saved. + URL à¶‘à¶šà¶šà·Š සහිත ඇතුළත් කිරීම් à¶±à·à¶­, à¶±à·à¶­à·„ොත් කිසිවකට à¶¶à·Šâ€à¶»à·€à·”සර දිගු à·ƒà·à¶šà·ƒà·”ම් සුරà·à¶šà·“ à¶±à·à¶­. + + + Title + à·à·“ර්ෂය + + + Path + මà·à¶»à·Šà¶œà¶º + + + URLs + URLs + + + Edit Entry… + à¶´à·Šâ€à¶»à·€à·šà·à¶ºâ€¦à·ƒà¶‚ස්කරණය කරන්න + + + Delete Entry(s)… + ඇතුළත් කිරීම් (ය)…මකන්නඇතුළත් කිරීම් (ය)…මකන්න + + + Exclude from reports + à·€à·à¶»à·Šà¶­à· වලින් à¶¶à·à·„à·à¶» කරන්න + + + Only show entries that have a URL + + + + Only show entries that have been explicitly allowed or denied + + + + Show expired entries + + + + (Expired) + + + + + ReportsWidgetHealthcheck + + Hover over reason to show additional details. Double-click entries to edit. + අමතර විස්තර පෙන්වීමට හේතුව මත à·ƒà·à¶»à·’සරන්න. සංස්කරණය කිරීමට ඇතුළත් කිරීම් ද්විත්ව ක්ලික් කරන්න. + + + Bad + Password quality + නරක + + + Bad — password must be changed + නරකයි - මුරපදය වෙනස් à¶šà·… යුතුය + + + Poor + Password quality + දුප්පත් + + + Poor — password should be changed + දුර්වල - මුරපදය වෙනස් à¶šà·… යුතුය + + + Weak + Password quality + දුර්වල + + + Weak — consider changing the password + දුර්වලයි - මුරපදය වෙනස් කිරීම සලක෠බලන්න + + + (Excluded) + (à¶¶à·à·„à·à¶») + + + This entry is being excluded from reports + මෙම à¶´à·Šâ€à¶»à·€à·šà·à¶º à·€à·à¶»à·Šà¶­à· වලින් à¶¶à·à·„à·à¶» කෙරේ + + + Please wait, health data is being calculated… + කරුණà·à¶šà¶» à¶»à·à¶³à·“ සිටින්න, සෞඛ්â€à¶º දත්ත ගණනය කෙරේ… + + + Congratulations, everything is healthy! + සුභ à¶´à·à¶­à·”ම්, à·„à·à¶¸ දෙයක්ම සෞඛ්ය සම්පන්නයි! + + + Title + à·à·“ර්ෂය + + + Path + මà·à¶»à·Šà¶œà¶º + + + Score + ලකුණු + + + Reason + හේතුව + + + Edit Entry… + à¶´à·Šâ€à¶»à·€à·šà·à¶ºâ€¦à·ƒà¶‚ස්කරණය කරන්න + + + Delete Entry(s)… + ඇතුළත් කිරීම් (ය)…මකන්නඇතුළත් කිරීම් (ය)…මකන්න + + + Exclude from reports + à·€à·à¶»à·Šà¶­à· වලින් à¶¶à·à·„à·à¶» කරන්න + + + Show expired entries + + + + Show entries that have been excluded from reports + + + + (Expired) + + + + + ReportsWidgetHibp + + CAUTION: This report requires sending information to the Have I Been Pwned online service (https://haveibeenpwned.com). If you proceed, your database passwords will be cryptographically hashed and the first five characters of those hashes will be sent securely to this service. Your database remains secure and cannot be reconstituted from this information. However, the number of passwords you send and your IP address will be exposed to this service. + අවවà·à¶¯à¶ºà¶ºà·’: මෙම à·€à·à¶»à·Šà¶­à·à·€à¶§ Have I Been Pwned online සේවà·à·€ (https://haveibeenpwned.com) වෙත තොරතුරු යà·à·€à·“ම à¶…à·€à·à·Šâ€à¶º වේ. ඔබ ඉදිරියට ගියහොත්, ඔබගේ දත්ත සමුද෠මුරපද ගුප්ත ලේඛනගතව à·„à·à·‚à·Š කරනු ලබන à¶…à¶­à¶» එම à·„à·à·‚à·Š වල පළමු à¶…à¶šà·Šà·‚à¶» à¶´à·„ මෙම සේවà·à·€ වෙත ආරක්ෂිතව යවනු à¶½à·à¶¶à·š. ඔබගේ දත්ත සමුදà·à¶º ආරක්ෂිතව පවතින à¶…à¶­à¶» මෙම තොරතුරු වලින් à¶±à·à·€à¶­ සකස් à¶šà·… නොහà·à¶š. කෙසේ වෙතත්, ඔබ යවන මුරපද ගණන සහ ඔබගේ IP ලිපිනය මෙම සේවà·à·€à¶§ නිරà·à·€à¶»à¶«à¶º වේ. + + + Perform Online Analysis + මà·à¶»à·Šà¶œà¶œà¶­ විà·à·Šà¶½à·šà·‚ණය සිදු කරන්න + + + Also show entries that have been excluded from reports + à·€à·à¶»à·Šà¶­à·à·€à¶½à·’න් à¶¶à·à·„à·à¶» à¶šà¶» ඇති ඇතුළත් කිරීම් ද පෙන්වන්න + + + This build of KeePassXC does not have network functions. Networking is required to check your passwords against Have I Been Pwned databases. + KeePassXC à·„à·’ මෙම ගොඩනà·à¶œà·“මට à¶¢à·à¶½ à¶šà·Šâ€à¶»à·’යà·à¶šà·à¶»à¶šà¶¸à·Š නොමà·à¶­. Have I Been Pwned දත්ත සමුදà·à¶ºà¶§ එරෙහිව ඔබගේ මුරපද පරීක්ෂ෠කිරීමට à¶¢à·à¶½à¶šà¶»à¶«à¶º à¶…à·€à·à·Šâ€à¶º වේ. + + + Congratulations, no exposed passwords! + සුභ à¶´à·à¶­à·”ම්, නිරà·à·€à¶»à¶«à¶º වූ මුරපද à¶±à·à¶­! + + + Title + à·à·“ර්ෂය + + + Path + මà·à¶»à·Šà¶œà¶º + + + Password exposed… + මුරපදය නිරà·à·€à¶»à¶«à¶ºâ€¦ + + + (Excluded) + (à¶¶à·à·„à·à¶») + + + This entry is being excluded from reports + මෙම à¶´à·Šâ€à¶»à·€à·šà·à¶º à·€à·à¶»à·Šà¶­à· වලින් à¶¶à·à·„à·à¶» කෙරේ + + + once + Password exposure amount + වරක් + + + up to 10 times + Password exposure amount + 10 වතà·à·€à¶šà·Š දක්ව෠+ + + up to 100 times + Password exposure amount + 100 වතà·à·€à¶šà·Š දක්ව෠+ + + up to 1000 times + Password exposure amount + 1000 à·€à·à¶»à¶ºà¶šà·Š දක්ව෠+ + + up to 10,000 times + Password exposure amount + 10,000 à·€à·à¶»à¶ºà¶šà·Š දක්ව෠+ + + up to 100,000 times + Password exposure amount + 100,000 à·€à·à¶»à¶ºà¶šà·Š දක්ව෠+ + + up to a million times + Password exposure amount + මිලියන à·€à·à¶»à¶ºà¶šà·Š දක්ව෠+ + + millions of times + Password exposure amount + මිලියන à·€à·à¶»à¶ºà¶šà·Š + + + Edit Entry… + à¶´à·Šâ€à¶»à·€à·šà·à¶ºâ€¦à·ƒà¶‚ස්කරණය කරන්න + + + Delete Entry(s)… + ඇතුළත් කිරීම් (ය)…මකන්නඇතුළත් කිරීම් (ය)…මකන්න + + + Exclude from reports + à·€à·à¶»à·Šà¶­à· වලින් à¶¶à·à·„à·à¶» කරන්න + + + + ReportsWidgetPasskeys + + Export + අපනයන + + + Import + ආනයන + + + List of entry URLs + ඇතුල්වීමේ URL à¶½à·à¶ºà·’ස්තුව + + + Please wait, list of entries with Passkeys is being updated… + + + + No entries with Passkeys. + + + + Title + සිරà·à·ƒà·’ය + + + Path + මà·à¶»à·Šà¶œà¶º + + + Username + පරිà·à·“ලක à¶±à·à¶¸à¶º + + + URLs + URLs + + + Edit Entry… + à¶´à·Šâ€à¶»à·€à·šà·à¶ºâ€¦à·ƒà¶‚ස්කරණය කරන්න + + + Delete Entry(s)… + ඇතුළත් කිරීම් (ය)…මකන්නඇතුළත් කිරීම් (ය)…මකන්න + + + Relying Party + + + + Show expired entries + + + + (Expired) + + + + + ReportsWidgetStatistics + + Hover over lines with error icons for further information. + à·€à·à¶©à·’දුර තොරතුරු සඳහ෠දà·à·‚ නිරූපක සහිත රේඛ෠මත à·ƒà·à¶»à·’සරන්න. + + + Name + නම + + + Value + වටිනà·à¶šà¶¸ + + + Please wait, database statistics are being calculated… + කරුණà·à¶šà¶» à¶»à·à¶³à·“ සිටින්න, දත්ත සමුද෠සංඛ්â€à¶ºà·à¶½à·šà¶›à¶± ගණනය කෙරේ… + + + Database name + දත්ත සමුදà·à¶ºà·š නම + + + Description + විස්තර + + + Location + ස්ථà·à¶±à¶º + + + Database created + දත්ත සමුදà·à¶º නිර්මà·à¶«à¶º කරන ලදී + + + Last saved + අවසන් වරට සුරකින ලදී + + + Unsaved changes + නොසුරකින ලද වෙනස්කම් + + + yes + ඔව් + + + no + à¶±à·à¶­ + + + The database was modified, but the changes have not yet been saved to disk. + දත්ත සමුදà·à¶º වෙනස් à¶šà¶» ඇත, නමුත් වෙනස්කම් තවමත් à¶­à·à¶§à·’යට සුරà·à¶šà·“ à¶±à·à¶­. + + + Number of groups + à¶šà¶«à·Šà¶©à·à¶ºà¶¸à·Š ගණන + + + Number of entries + ඇතුළත් කිරීම් ගණන + + + Number of expired entries + කල් ඉකුත් වූ ඇතුළත් කිරීම් ගණන + + + The database contains entries that have expired. + දත්ත සමුදà·à¶ºà·š කල් ඉකුත් වූ ඇතුළත් කිරීම් අඩංගු වේ. + + + Unique passwords + අද්විතීය මුරපද + + + Non-unique passwords + අද්විතීය නොවන මුරපද + + + More than 10% of passwords are reused. Use unique passwords when possible. + මුරපද වලින් 10% à¶šà¶§ වඩ෠නà·à·€à¶­ à¶·à·à·€à·’ත෠වේ. à·„à·à¶šà·’ විට අද්විතීය මුරපද à¶·à·à·€à·’ත෠කරන්න. + + + Maximum password reuse + උපරිම මුරපදය à¶±à·à·€à¶­ à¶·à·à·€à·’ත෠කිරීම + + + Some passwords are used more than three times. Use unique passwords when possible. + සමහර මුරපද තුන් වතà·à·€à¶šà¶§ වඩ෠භà·à·€à·’ත෠වේ. à·„à·à¶šà·’ විට අද්විතීය මුරපද à¶·à·à·€à·’ත෠කරන්න. + + + Number of short passwords + කෙටි මුරපද ගණන + + + Recommended minimum password length is at least 8 characters. + නිර්දේà·à·’à¶­ අවම මුරපද දිග අවම à·€à·à¶ºà·™à¶±à·Š à¶…à¶šà·Šà·‚à¶» 8 à¶šà·’. + + + Number of weak passwords + දුර්වල මුරපද ගණන + + + Recommend using long, randomized passwords with a rating of 'good' or 'excellent'. + 'හොඳ' à·„à· 'විà·à·’à·‚à·Šà¶§'à·à·Šâ€à¶»à·šà¶«à·’ගත කිරීමක් සහිත දිගු, සසම්භà·à·€à·“ මුරපද à¶·à·à·€à·’ත෠කිරීම නිර්දේ෠කරන්න. + + + Entries excluded from reports + ඇතුළත් කිරීම් à·€à·à¶»à·Šà¶­à· වලින් à¶¶à·à·„à·à¶» à¶šà¶» ඇත + + + Excluding entries from reports, e. g. because they are known to have a poor password, isn't necessarily a problem but you should keep an eye on them. + à·€à·à¶»à·Šà¶­à· වලින් ඇතුළත් කිරීම් à·„à·à¶», උදà·: à¶’à·€à·à¶ºà·š දුර්වල මුරපදයක් ඇති à¶¶à·€ දන්න෠නිසà·,'t අනිවà·à¶»à·Šà¶ºà¶ºà·™à¶±à·Šà¶¸ à¶œà·à¶§à¶½à·”වක් නොවන නමුත් ඔබ ඒව෠ගà·à¶± අවධà·à¶±à¶ºà·™à¶±à·Š සිටිය යුතුය. + + + Average password length + à·ƒà·à¶¸à·à¶±à·Šà¶º මුරපද දිග + + + %1 characters + à¶…à¶šà·Šà·‚à¶» %1 යි + + + Average password length is less than ten characters. Longer passwords provide more security. + à·ƒà·à¶¸à·à¶±à·Šâ€à¶º මුරපද දිග à¶…à¶šà·Šà·‚à¶» දහයකට වඩ෠අඩුය. දිගු මුරපද à·€à·à¶©à·’ ආරක්ෂà·à·€à¶šà·Š සපයයි. + + + + SSHAgent + + Agent connection failed. + නියà·à¶¢à·’à¶­ සම්බන්ධතà·à·€à¶º à¶…à·ƒà·à¶»à·Šà¶®à¶š විය. + + + Agent protocol error. + නියà·à¶¢à·’à¶­ à¶´à·Šâ€à¶»à·œà¶§à·à¶šà·à¶½ දà·à·‚යකි. + + + No agent running, cannot add identity. + කිසිදු නියà·à¶¢à·’තයෙකු à¶šà·Šâ€à¶»à·’යà·à¶­à·Šà¶¸à¶š නොවේ, අනන්â€à¶ºà¶­à·à·€à¶º à¶‘à¶šà·Š à¶šà·… නොහà·à¶š. + + + Key identity ownership conflict. Refusing to add. + à¶´à·Šâ€à¶»à¶°à·à¶± අනන්â€à¶ºà¶­à· හිමිකà·à¶»à·’à¶­à·Šà·€ à¶œà·à¶§à·”ම. à¶‘à¶šà¶­à·” කිරීම ප්රතික්ෂේප කිරීම. + + + Agent refused this identity. Possible reasons include: + නියà·à¶¢à·’තය෠මෙම අනන්â€à¶ºà¶­à·à·€à¶º à¶´à·Šâ€à¶»à¶­à·’à¶šà·Šà·‚à·šà¶´ කළේය. විය à·„à·à¶šà·’ à·„à·šà¶­à·” ඇතුළත් වේ: + + + The key has already been added. + යතුර දà·à¶±à¶§à¶¸à¶­à·Š à¶‘à¶šà¶­à·” à¶šà¶» ඇත. + + + Restricted lifetime is not supported by the agent (check options). + සීමිත ආයු à¶šà·à¶½à¶º නියà·à¶¢à·’තය෠විසින් සහà·à¶º නොදක්වයි (විකල්ප පරීක්ෂ෠කරන්න). + + + A confirmation request is not supported by the agent (check options). + තහවුරු කිරීමේ ඉල්ලීමක් නියà·à¶¢à·’තය෠විසින් සහà·à¶º නොදක්වයි (විකල්ප පරීක්ෂ෠කරන්න). + + + Security keys are not supported by the agent or the security key provider is unavailable. + ආරක්ෂක යතුරු නියà·à¶¢à·’තය෠විසින් සහà·à¶º නොදක්වයි හ෠ආරක්ෂක යතුරු සපයන්න෠නොමà·à¶­. + + + No agent running, cannot remove identity. + කිසිදු නියà·à¶¢à·’තයෙකු à¶šà·Šâ€à¶»à·’යà·à¶­à·Šà¶¸à¶š නොවේ, අනන්â€à¶ºà¶­à·à·€à¶º ඉවත් à¶šà·… නොහà·à¶š. + + + No agent running, cannot list identities. + කිසිදු නියà·à¶¢à·’තයෙකු à¶šà·Šâ€à¶»à·’යà·à¶­à·Šà¶¸à¶š නොවේ, අනන්â€à¶ºà¶­à· à¶½à·à¶ºà·’ස්තුගත à¶šà·… නොහà·à¶š. + + + + SearchHelpWidget + + Search Help + උදව් සොයන්න + + + Search terms are as follows: [modifiers][field:]["]term["] + සෙවුම් පද à¶´à·„à¶­ පරිදි වේ: [modifiers][à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶º:]["]à¶šà·à¶½à·“à¶±["] + + + Every search term must match (ie, logical AND) + සෑම සෙවුම් පදයක්ම à¶œà·à¶½à¶´à·’ය යුතුය (එනම් à¶­à·à¶»à·Šà¶šà·’à¶š සහ) + + + Modifiers + වෙනස් කරන්නන් + + + exclude term from results + à¶´à·Šâ€à¶»à¶­à·’ඵල වලින් à·€à·à¶»à¶º à¶¶à·à·„à·à¶» කරන්න + + + match term exactly + පදය හරියටම ගලපන්න + + + use regex in term + regex à¶·à·à·€à·’ත෠කරන්න + + + Fields + à¶šà·Šà·‚à·šà¶­à·Šà¶» + + + Term Wildcards + à¶šà·à¶½à·“à¶± Wildcards + + + match anything + ඕනෑම දෙයක් à¶œà·à¶½à¶´à·š + + + match one + à¶‘à¶šà¶šà·Š à¶œà·à¶½à¶´à·™à¶±à·€à· + + + logical OR + à¶­à·à¶»à·Šà¶šà·’à¶š OR + + + Examples + උදà·à·„රණ + + + + SearchWidget + + Search + සොයන්න + + + Search Help + උදව් සොයන්න + + + Save Search + + + + Search (%1)… + Search placeholder text, %1 is the keyboard shortcut + සොයන්න (%1)… + + + Case sensitive + විෂය සංවේදී + + + Limit search to selected group + à¶­à·à¶»à·à¶œà¶­à·Š à¶šà¶«à·Šà¶©à·à¶ºà¶¸à¶šà¶§ සෙවීම සීම෠කරන්න + + + + SettingsClientModel + + Application + අයදුම්පත + + + PID + PID + + + DBus Address + DBus ලිපිනය + + + Manage + කළමනà·à¶šà¶»à¶«à¶º කරන්න + + + + SettingsDatabaseModel + + File Name + ගොනුවේ නම + + + Group + සමූහය + + + Manage + කළමනà·à¶šà¶»à¶«à¶º කරන්න + + + + SettingsWidgetFdoSecrets + + Options + විකල්ප + + + Enable KeepassXC Freedesktop.org Secret Service integration + KeepassXC Freedesktop.org රහස් සේව෠ඒකà·à¶¶à¶¯à·Šà¶° කිරීම සබල කරන්න + + + General + ජනරà·à¶½à·Š + + + Show notification when passwords are retrieved by clients + ගනුදෙනුකරුවන් විසින් මුරපද ලබ෠ගන්න෠විට දà·à¶±à·”ම්දීම පෙන්වන්න + + + <html><head/><body><p>If enabled, any attempt to read a password must be confirmed. Otherwise, clients can read passwords without confirmation when the database is unlocked.</p><p>This option only covers the access to the password of an entry. Clients can always enumerate the items of exposed databases and query their attributes.</p></body></html> + <html><head/><body><p>සබල à¶šà¶» ඇත්නම්, මුරපදයක් කියවීමට ගන්න෠ඕනෑම à¶‹à¶­à·Šà·ƒà·à·„යක් තහවුරු à¶šà·… යුතුය. එසේ නොමà·à¶­à·’ නම්, දත්ත සමුදà·à¶º අගුළු හරින විට සේවà·à¶¯à·à¶ºà¶šà¶ºà·’න්ට තහවුරු කිරීමකින් තොරව මුරපද කියවිය à·„à·à¶š.</p><p>මෙම විකල්පය à¶´à·Šâ€à¶»à·€à·šà·à¶ºà¶š මුරපදයට à¶´à·Šâ€à¶»à·€à·šà·à¶º පමණක් ආවරණය කරයි. සේවà·à¶¯à·à¶ºà¶šà¶ºà·’න්ට සෑම විටම නිරà·à·€à¶»à¶«à¶º වන දත්ත සමුදà·à¶ºà·š අයිතම ගණන් à¶šà·… à·„à·à¶šà·’ à¶…à¶­à¶» à¶’à·€à·à¶ºà·š ගුණà·à¶‚à¶œ විමසිය à·„à·à¶šà·’ය.</p></body></html> + + + Confirm when passwords are retrieved by clients + ගනුදෙනුකරුවන් විසින් මුරපද ලබ෠ගන්න෠විට තහවුරු කරන්න + + + <html><head/><body><p><span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">This setting does + not override disabling recycle bin prompts</span></p></body></html> + + <html><head/><body><p><span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">මෙම à·ƒà·à¶šà·ƒà·”ම + à¶´à·Šâ€à¶»à¶­à·’à¶ à¶šà·Šâ€à¶»à·“කරණ බඳුන් à¶´à·Šâ€à¶»à·šà¶»à¶š à¶…à¶šà·Šâ€à¶»à·’ය කිරීම à¶´à·Šâ€à¶»à¶­à·’à¶šà·Šà·‚à·šà¶´ නොකරයි</span></p></body></html> + + + + Confirm when clients request entry deletion + සේවà·à¶½à·à¶·à·“න් à¶´à·Šâ€à¶»à·€à·šà· මකà·à¶¯à·à¶¸à·“ම ඉල්ල෠සිටින විට තහවුරු කරන්න + + + <html><head/><body><p>This improves compatibility with certain applications + which search for password without unlocking the database first.</p><p>But enabling this may also + crash the client if the database can not be unlocked within a certain timeout. (Usually 25s, but may be a + different value set in applications.)</p></body></html> + + <html><head/><body><p>මෙය දත්ත සමුදà·à¶º අගුළු + තොරව මුරපදය සොයන ඇතà·à¶¸à·Š යෙදුම් සමඟ à¶œà·à·…පීම à·€à·à¶©à·’ දියුණු කරයි.</p><p>නමුත් මෙය සක්â€à¶»à·“ය කිරීමෙන් + යම් à¶šà·à¶½ සීමà·à·€à¶šà·Š ඇතුළත දත්ත සමුදà·à¶º අගුළු ඇරීමට නොහà·à¶šà·’ වුවහොත් සේවà·à¶½à·à¶·à·’ය෠බිඳ à·€à·à¶§à·’ය à·„à·à¶š. (à·ƒà·à¶¸à·à¶±à·Šâ€à¶ºà¶ºà·™à¶±à·Š à¶­à¶­à·Šà¶´à¶» 25, නමුත් යෙදුම්වල වෙනස් අගයන් + à¶šà·Š විය à·„à·à¶š.)</p></body></html> + + + + Prompt to unlock database before searching + සෙවීමට පෙර දත්ත සමුදà·à¶º අගුළු ඇරීමට විමසන්න + + + Exposed database groups: + නිරà·à·€à¶»à¶«à¶º වූ දත්ත සමුද෠කණ්ඩà·à¶ºà¶¸à·Š: + + + Authorization + අවසර දීම + + + These applications are currently connected: + මෙම යෙදුම් දà·à¶±à¶§ සම්බන්ධ වී ඇත: + + + <b>Warning:</b> + <b>අවවà·à¶¯à¶ºà¶ºà·’:</b> + + + Save current changes to activate the plugin and enable editing of this section. + ප්ලගිනය සක්â€à¶»à·’ය කිරීමට වත්මන් වෙනස්කම් සුරකින්න සහ මෙම කොටස සංස්කරණය කිරීම සබල කරන්න. + + + + SettingsWidgetKeeShare + + Active + ක්රියà·à¶šà·à¶»à·“ + + + Allow KeeShare imports + KeeShare ආයà·à¶­ කිරීමට ඉඩ දෙන්න + + + Allow import + ආනයනයට ඉඩ දෙන්න + + + Allow KeeShare exports + KeeShare අපනයනයට ඉඩ දෙන්න + + + Allow export + අපනයනයට ඉඩ දෙන්න + + + Only show warnings and errors + අනතුරු ඇඟවීම් සහ දà·à·‚ පමණක් පෙන්වන්න + + + Own certificate + තමන්ගේම සහතිකය + + + Signer: + අත්සන් කරන්නà·: + + + Generate new certificate + නව සහතිකයක් à·ƒà·à¶¯à¶±à·Šà¶± + + + Generate + à¶‹à¶­à·Šà¶´à·à¶¯à¶±à¶º කරන්න + + + Fingerprint: + ඇඟිලි සලකුණ: + + + Signer name field + අත්සන් කරන්නà·à¶œà·š නම් à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶º + + + Fingerprint + ඇඟිලි සලකුණ + + + + ShareExport + + Could not write export container. + අපනයන à¶¶à·„à·à¶½à·”ම් ලිවීමට නොහà·à¶šà·’ විය. + + + + ShareImport + + Successful import + à·ƒà·à¶»à·Šà¶®à¶š ආනයනය + + + + ShareObserver + + Import from %1 failed (%2) + %1 සිට ආයà·à¶­ කිරීම à¶…à·ƒà·à¶»à·Šà¶®à¶š විය (%2) + + + Import from %1 successful (%2) + %1 සිට ආයà·à¶­ කිරීම à·ƒà·à¶»à·Šà¶®à¶šà¶ºà·’ (%2) + + + Imported from %1 + %1සිට ආනයනය කරන ලදී + + + Multiple import source path to %1 in %2 + %2න් %1 වෙත à¶¶à·„à·” ආයà·à¶­ මූලà·à·à·Šâ€à¶» මà·à¶»à·Šà¶œà¶º + + + Conflicting export target path %1 in %2 + à¶œà·à¶§à·”ම්කà·à¶»à·“ අපනයන ඉලක්ක මà·à¶»à·Šà¶œà¶º %1 න් %2 + + + Export to %1 failed (%2) + %1 à¶§ අපනයනය à¶…à·ƒà·à¶»à·Šà¶®à¶š විය (%2) + + + Export to %1 successful (%2) + %1 à¶§ අපනයනය à·ƒà·à¶»à·Šà¶®à¶šà¶ºà·’ (%2) + + + Export to %1 + %1වෙත අපනයනය කරන්න + + + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + + + TagModel + + Clear Search + + + + All Entries + + + + Expired + කල් ඉකුත් වී ඇත + + + Weak Passwords + දුර්වල මුරපද + + + + TagView + + Remove Search + + + + Remove Tag + + + + Confirm Remove Tag + + + + Remove tag "%1" from all entries in this database? + + + + + TotpDialog + + Timed Password + à¶šà·à¶½à·à¶±à·”රූපී මුරපදය + + + Copy + à¶´à·’à¶§à¶´à¶­à·Š කරන්න + + + Expires in <b>%n</b> second(s) + à¶­à¶­à·Šà¶´à¶» <b>%n</b> (à¶­à¶­à·Šà¶´à¶») කින් කල් ඉකුත් වේතත්පර <b>%n</b> (à¶­à¶­à·Šà¶´à¶») කින් කල් ඉකුත් වේ + + + + TotpExportSettingsDialog + + Copy + à¶´à·’à¶§à¶´à¶­à·Š කරන්න + + + NOTE: These TOTP settings are custom and may not work with other authenticators. + TOTP QR code dialog warning + සටහන: මෙම TOTP à·ƒà·à¶šà·ƒà·“ම් අභිරුචි වන à¶…à¶­à¶» වෙනත් සත්â€à¶ºà·à¶´à¶±à¶º කරන්නන් සමඟ à¶šà·Šâ€à¶»à·’ය෠නොකරනු ඇත. + + + There was an error creating the QR code. + QR කේතය සෑදීමේදී දà·à·‚යක් ඇති විය. + + + Closing in %1 seconds. + à¶­à¶­à·Šà¶´à¶» %1 කින් වස෠දමයි. + + + + TotpSetupDialog + + Setup TOTP + TOTP සකසන්න + + + Secret Key: + රහස් යතුර: + + + Secret key must be in Base32 format + රහස් යතුර Base32 ආකෘතියෙන් විය යුතුය + + + Secret key field + රහස් යතුරු ක්ෂේත්රය + + + Default settings (RFC 6238) + පෙරනිමි à·ƒà·à¶šà·ƒà·”ම් (RFC 6238) + + + Steam® settings + Steam® à·ƒà·à¶šà·ƒà·”ම් + + + Custom settings: + අභිරුචි à·ƒà·à¶šà·ƒà·”ම්: + + + Custom Settings + අභිරුචි à·ƒà·à¶šà·ƒà·”ම් + + + Algorithm: + ඇල්ගොරිතම: + + + Time step: + à¶šà·à¶½ පියවර: + + + Time step field + à¶šà·à¶½ පියවර à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶º + + + sec + Seconds + à¶­à¶­à·Šà¶´à¶» + + + Code size: + à¶šà·šà¶­ ප්රමà·à¶«à¶º: + + + digits + ඉලක්කම් + + + Invalid TOTP Secret + වලංගු නොවන TOTP රහස + + + You have entered an invalid secret key. The key must be in Base32 format. +Example: JBSWY3DPEHPK3PXP + ඔබ අවලංගු රහස් යතුරක් ඇතුළත් à¶šà¶» ඇත. යතුර Base32 ආකෘතියෙන් විය යුතුය. +උදà·à·„රණය: JBSWY3DPEHPK3PXP + + + Confirm Remove TOTP Settings + TOTP à·ƒà·à¶šà·ƒà·“ම් ඉවත් කිරීම තහවුරු කරන්න + + + Are you sure you want to delete TOTP settings for this entry? + ඔබට මෙම à¶´à·Šâ€à¶»à·€à·šà·à¶º සඳහ෠TOTP à·ƒà·à¶šà·ƒà·“ම් මà·à¶šà·“මට à¶…à·€à·à·Šâ€à¶º à¶¶à·€ විà·à·Šà·€à·à·ƒà¶¯? + + + + URLEdit + + Invalid URL + වලංගු à¶±à·à¶­à·’ URL + + + + UpdateCheckDialog + + Checking for updates + යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± සඳහ෠පරීක්ෂ෠කරමින් + + + Checking for updates… + යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± සඳහ෠පරීක්ෂ෠කිරීම… + + + Close + වසන්න + + + Software Update + මෘදුකà·à¶‚à¶œ යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± කිරීම + + + An error occurred when trying to retrieve update information, please try again later. + යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± තොරතුරු ලබ෠ගà·à¶±à·“මට à¶‹à¶­à·Šà·ƒà·à·„ කිරීමේදී දà·à·‚යක් ඇති විය, කරුණà·à¶šà¶» පසුව à¶±à·à·€à¶­ à¶‹à¶­à·Šà·ƒà·à·„ කරන්න. + + + <strong>A new version is available.</strong><br/>KeePassXC %1 can be <a href="https://keepassxc.org/download/">downloaded here</a>. + <strong>නව අනුවà·à¶¯à¶ºà¶šà·Š à¶­à·’à¶¶à·š.</strong><br/>KeePassXC %1 <a href="https://keepassxc.org/download/">මෙතà·à¶±à·’න් à¶¶à·à¶œà¶­ à·„à·à¶šà·’ය</a>. + + + You have the latest version of KeePassXC + ඔබට KeePassXC à·„à·’ නවතම අනුවà·à¶¯à¶º ඇත + + + + WelcomeWidget + + Start storing your passwords securely in a KeePassXC database + ඔබගේ මුරපද KeePassXC දත්ත ගබඩà·à·€à¶š ආරක්ෂිතව ගබඩ෠කිරීම අරඹන්න + + + Recent databases + මෑත දත්ත සමුදà·à¶ºà¶±à·Š + + + Open a recent database + මෑත දත්ත සමුදà·à¶ºà¶šà·Š විවෘත කරන්න + + + Welcome to KeePassXC %1 + KeePassXC %1වෙත à·ƒà·à¶¯à¶»à¶ºà·™à¶±à·Š පිළිගනිමු + + + Create Database + + + + Open Database + + + + Import File + + + + + WinUtils + + Invalid key code + වලංගු නොවන යතුරු කේතය + + + Global shortcut already registered to %1 + à¶œà·à¶½à·“ය කෙටිමඟ දà·à¶±à¶§à¶¸à¶­à·Š %1වෙත ලියà·à¶´à¶¯à·’à¶‚à¶ à·’ à¶šà¶» ඇත + + + Could not register global shortcut + à¶œà·à¶½à·“ය කෙටිමං ලියà·à¶´à¶¯à·’à¶‚à¶ à·’ කිරීමට නොහà·à¶šà·’ විය + + + + YubiKey + + General: + ජනරà·à¶½à·Š: + + + Could not find interface for hardware key with serial number %1. Please connect it to continue. + අනුක්â€à¶»à¶¸à·’à¶š à¶…à¶‚à¶š %1සහිත දෘඪà·à¶‚à¶œ යතුර සඳහ෠අතුරු මුහුණත සොය෠ගà·à¶±à·“මට නොහà·à¶šà·’ විය. ඉදිරියට යà·à¶¸à¶§ කරුණà·à¶šà¶» එය සම්බන්ධ කරන්න. + + + + YubiKeyEditWidget + + Hardware key slot selection + දෘඪà·à¶‚à¶œ යතුරු තව් à¶­à·à¶»à·à¶œà·à¶±à·“ම + + + Could not find any hardware keys! + දෘඪà·à¶‚à¶œ යතුරු කිසිවක් සොය෠ගà·à¶±à·“මට නොහà·à¶šà·’ විය! + + + Selected hardware key slot does not support challenge-response! + à¶­à·à¶»à·à¶œà¶­à·Š දෘඪà·à¶‚à¶œ යතුරු ස්ලට් අභියà·à¶œ-à¶´à·Šâ€à¶»à¶­à·’à¶ à·à¶» සඳහ෠සහය නොදක්වයි! + + + Challenge-Response + අභියà·à¶œ-à¶´à·Šâ€à¶»à¶­à·’à¶ à·à¶»à¶º + + + Add Challenge-Response + අභියà·à¶œ-à¶´à·Šâ€à¶»à¶­à·’à¶ à·à¶» à¶‘à¶šà·Š කරන්න + + + Change Challenge-Response + අභියà·à¶œ-à¶´à·Šâ€à¶»à¶­à·’à¶ à·à¶»à¶º වෙනස් කරන්න + + + Remove Challenge-Response + අභියà·à¶œ-à¶´à·Šâ€à¶»à¶­à·’à¶ à·à¶» ඉවත් කරන්න + + + Challenge-Response set, click to change or remove + අභියà·à¶œ-à¶´à·Šâ€à¶»à¶­à·’à¶ à·à¶» කට්ටලය, වෙනස් කිරීමට හ෠ඉවත් කිරීමට ක්ලික් කරන්න + + + Detecting hardware keys… + දෘඪà·à¶‚à¶œ යතුරු හඳුනà·à¶œà·à¶±à·“ම… + + + No hardware keys detected + දෘඩà·à¶‚à¶œ යතුරු à¶…à¶±à·à·€à¶»à¶«à¶º à¶šà¶» නොමà·à¶­ + + + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + + + + + YubiKeyInterfacePCSC + + The YubiKey PCSC interface has not been initialized. + YubiKey PCSC අතුරුමුහුණත ආරම්භ à¶šà¶» නොමà·à¶­. + + + Could not find or access hardware key with serial number %1. Please present it to continue. + අනුක්â€à¶»à¶¸à·’à¶š à¶…à¶‚à¶š %1සහිත දෘඪà·à¶‚à¶œ යතුර සොය෠ගà·à¶±à·“මට à·„à· à¶´à·Šâ€à¶»à·€à·šà· වීමට නොහà·à¶šà·’ විය. ඉදිරියට යà·à¶¸à¶§ කරුණà·à¶šà¶» එය ඉදිරිපත් කරන්න. + + + Hardware key is locked or timed out. Unlock or re-present it to continue. + දෘඪà·à¶‚à¶œ යතුර අගුලු දම෠හ෠කල් ඉකුත් වී ඇත. දිගටම කරගෙන යà·à¶¸à¶§ එය අගුළු හරින්න à·„à· à¶±à·à·€à¶­ ඉදිරිපත් කරන්න. + + + Hardware key was not found or is not configured. + දෘඪà·à¶‚à¶œ යතුර හමු නොවීය හ෠වින්â€à¶ºà·à·ƒ à¶šà¶» නොමà·à¶­. + + + Failed to complete a challenge-response, the PCSC error code was: %1 + අභියà·à¶œ-à¶´à·Šâ€à¶»à¶­à·’à¶ à·à¶»à¶ºà¶šà·Š සම්පූර්ණ කිරීමට අපොහොසත් විය, PCSC දà·à·‚ කේතය: %1 + + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + ඔබන්න + + + Passive + USB Challenge-Response Key no interaction required + නිෂ්ක්රීය + + + + YubiKeyInterfaceUSB + + Unknown + නොදන්න෠+ + + Press + USB Challenge-Response Key interaction request + ඔබන්න + + + Passive + USB Challenge-Response Key no interaction required + නිෂ්ක්රීය + + + The YubiKey USB interface has not been initialized. + YubiKey USB අතුරුමුහුණත ආරම්භ à¶šà¶» නොමà·à¶­. + + + Could not find hardware key with serial number %1. Please plug it in to continue. + අනුක්â€à¶»à¶¸à·’à¶š à¶…à¶‚à¶š %1සහිත දෘඪà·à¶‚à¶œ යතුර සොය෠ගà·à¶±à·“මට නොහà·à¶šà·’ විය. ඉදිරියට යà·à¶¸à¶§ කරුණà·à¶šà¶» එය පේනුගත කරන්න. + + + Hardware key timed out waiting for user interaction. + දෘඪà·à¶‚à¶œ යතුර පරිà·à·“ලක අන්තර්ක්â€à¶»à·’ය෠සඳහ෠රà·à¶³à·“ සිටීමේ à¶šà·à¶½à¶º අවසන් විය. + + + A USB error occurred when accessing the hardware key: %1 + දෘඪà·à¶‚à¶œ යතුරට පිවිසීමේදී USB දà·à·‚යක් ඇති විය: %1 + + + Failed to complete a challenge-response, the specific error was: %1 + අභියà·à¶œ à¶´à·Šâ€à¶»à¶­à·’à¶ à·à¶»à¶ºà¶šà·Š සම්පූර්ණ කිරීමට අපොහොසත් විය, නිà·à·Šà¶ à·’à¶­ දà·à·‚ය වූයේ: %1 + + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + \ No newline at end of file diff --git a/share/translations/keepassxc_sk.ts b/share/translations/keepassxc_sk.ts index 26c0412fa..f0c9e5f3f 100644 --- a/share/translations/keepassxc_sk.ts +++ b/share/translations/keepassxc_sk.ts @@ -80,6 +80,10 @@ Details Podrobnosti + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + + Remember ZapamätaÅ¥ @@ -88,10 +92,6 @@ Allow Selected PovoliÅ¥ vybraným - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - - Deny All && Future @@ -122,6 +122,10 @@ Use OpenSSH PoužiÅ¥ OpenSSH + + Use both agents + + SSH_AUTH_SOCK override Prepísanie SSH_AUTH_SOCK @@ -150,10 +154,6 @@ SSH Agent connection is working! Spojenie Agenta SSH funkÄné! - - Use both agents - - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security BezpeÄnosÅ¥ + + This setting cannot be enabled when minimize on unlock is enabled. + + Access error for config file %1 Chyba prístupu ku konfiguraÄnému súboru %1 @@ -256,6 +260,10 @@ Remember previously used databases ZapamätaÅ¥ si predtým používané databázy + + recent files + + Load previously open databases on startup NaÄítanie predtým otvorených databáz pri spustení @@ -408,6 +416,10 @@ Toolbar button style: Å týl tlaÄidiel panela nástrojov: + + Show passwords in color + + Use monospaced font for notes Na poznámky použiÅ¥ písmo Monospace @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons PoužívaÅ¥ služby DuckDuckGo na stiahnutie ikon webových stránok + + Hide TOTP in the entry preview panel + + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 Zistené príliÅ¡ dlhé Äakanie, maximum je %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + + Invalid conversion type: %1 Neplatný typ konverzie: %1 @@ -799,13 +819,13 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Disable for this site ZakázaÅ¥ tejto stránke + + Undo + + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser UložiÅ¥ položku - Ok Ok @@ -820,13 +840,69 @@ Please select the correct database for saving credentials. Máte otvorených viac databáz. Prosím, vyberte správnu databázu na uloženie prihlasovacích údajov. + + KeePassXC - Select Database + + + + + BrowserPasskeysConfirmationDialog + + Cancel + ZruÅ¡iÅ¥ + + + Update + + + + Authenticate + + + + Register new + + + + Register + + + + Timeout in <b>%n</b> seconds... + + + + Do you want to register Passkey for: + + + + Existing Passkey found. +Do you want to register a new Passkey for: + + + + Select the existing Passkey and press Update to replace it. + + + + Authenticate Passkey credentials for: + + + + Relying Party: %1 + + + + Username: %1 + + + + KeePassXC - Passkey credentials + + BrowserService - - KeePassXC: Create a new group - KeePassXC: VytvoriÅ¥ novú skupinu - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -835,10 +911,6 @@ Do you want to create this group? Chcete vytvoriÅ¥ túto skupinu? - - KeePassXC: New key association request - KeePassXC: Nová požiadavka priradenia kľúÄa - You have received an association request for the following database: %1 @@ -855,28 +927,16 @@ chrome-laptop. Save and allow access UložiÅ¥ a povoliÅ¥ prístup - - KeePassXC: Overwrite existing key? - KeePassXC: PrepísaÅ¥ existujúci kľúÄ? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? Zdieľaný Å¡ifrovací kÄ¾ÃºÄ s menom „%1†už existuje. Chcete ho prepísaÅ¥? - - KeePassXC: Update Entry - KeePassXC: UpraviÅ¥ položku - Do you want to update the information in %1 - %2? Chcete upraviÅ¥ informácie v %1 – %2? - - KeePassXC: Delete entry - KeePassXC: OdstrániÅ¥ položku - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -886,50 +946,45 @@ Chcete odstrániÅ¥ položku? - Converting attributes to custom data… - Konvertovanie atribútov na vlastné dáta… + %1 (Passkey) + - Abort - ZruÅ¡iÅ¥ + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Konvertované atribúty KeePassHTTP + KeePassXC - Create a new group + - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - ÚspeÅ¡ne skonvertované atribúty z %1 položky(iek). -Do vlastných dát presunuté %2 kľúÄe. - - - Successfully moved %n keys to custom data. - ÚspeÅ¡ne presunutý %n kÄ¾ÃºÄ do vlastných dát.ÚspeÅ¡ne presunuté %n kľúÄe do vlastných dát.ÚspeÅ¡ne presunutých %n kľúÄov do vlastných dát.ÚspeÅ¡ne presunutých %n kľúÄov do vlastných dát. + Disable + Vypnúť - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Nenájdená žiadna položka s atribútmi KeePassHTTP! + KeePassXC - Overwrite existing key? + - The active database does not contain an entry with KeePassHTTP attributes. - Aktívna databáza neobsahuje žiadnu položku s atribútmi KeePassHTTP. + KeePassXC - Update Passkey + - Don't show this warning again - NezobrazovaÅ¥ znova toto upozornenie + KeePassXC - Update Entry + - KeePassXC: Legacy browser integration settings detected - KeePassXC: Zistené staré nastavenia integrácie prehliadaÄa + KeePassXC - Delete entry + - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Je potrebné presunúť vaÅ¡e nastavenia KeePassXC-Browser do nastavenia databázovy. -Je to potrebné kvôli správe aktuálnych pripojení prehliadaÄa. -Chcete teraz migrovaÅ¥ svoje nastavenia? + KeePassXC - New key association request + + + + Passkey + @@ -1137,14 +1192,6 @@ Chcete teraz migrovaÅ¥ svoje nastavenia? Please see special instructions for browser extension use below Prosím, pozrite si Å¡peciálne inÅ¡trukcie na použite integrácie prehliadaÄa nižšie - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Chyba:</b> Vlastné umiestnenie proxy nemožno nájsÅ¥!<br/>Integrácia prehliadaÄa NEBUDE FUNGOVAŤ bez aplikácie proxy. - - - <b>Warning:</b> The following options can be dangerous! - <b>Upozornenie:</b> nasledujúce voľby môžu byÅ¥ nebezpeÄné! - Executable Files Spustiteľné súbory @@ -1161,6 +1208,38 @@ Chcete teraz migrovaÅ¥ svoje nastavenia? Select native messaging host folder location Vyberte umiestnenie zložky hostiteľa správe medzi prehliadaÄom a KeePassXC + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + + + + <b>Warning:</b> Only adjust these settings if necessary. + + + + The custom proxy location does not exist. + + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1183,14 +1262,6 @@ Chcete teraz migrovaÅ¥ svoje nastavenia? CsvImportWidget - - Import CSV fields - ImportovaÅ¥ polia CSV - - - filename - meno súboru - size, rows, columns veľkosÅ¥, riadky, stĺpce @@ -1299,50 +1370,29 @@ Chcete teraz migrovaÅ¥ svoje nastavenia? Column %1 Stĺpec %1 - - Imported from CSV file - Importované zo súboru CSV - - - Original data: - Pôvodné dáta: - - - Error(s) detected in CSV file! - V súbore CSV zistená chyba(y)! - [%n more message(s) skipped] [%n ÄalÅ¡ia správa preskoÄená][%n ÄalÅ¡ie správy preskoÄené[%n Äalších správ preskoÄených][%n Äalších správ preskoÄených] - Error - Chyba + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - Import CSV: chyby zápisu: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n bajt%n bajty%n bajtov%n bajt(y) - %n row(s) + CSV row count %n riadok%n riadky%n riadkov%n riadkov %n column(s) + CSV column count %n stĺpec%n stĺpce%n stĺpcov%n stĺpcov @@ -1417,40 +1467,10 @@ ZálohovaÅ¥ databázu nachádzajúcu sa na %2 Password field Pole pre heslo - - Enter Additional Credentials (if any): - Zadajte dodatoÄné prihlasovacie údaje (ak treba): - - - Key File: - Súbor kľúÄa: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>Ako doplnok hesla môžete, na zvýšenie bezpeÄnosti databázy, použiÅ¥ tajný súbor. Tento súbor môže byÅ¥ vygenerovaný v nastaveniach bezpeÄnosti databázy.</p><p>Tento súbor <strong>nie je</strong> súbor vaÅ¡ej databázy *.kdbx!<br>Ak nemáte súbor kľúÄa, nechajte toto pole prázdne.</p><p>Kliknite na ÄalÅ¡ie informácie…</p> - - - Key file help - Pomocník súbora kľúÄov - Hardware key slot selection Výber slotu hardvérového kľúÄa - - Hardware Key: - Hardvérový kľúÄ: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>Môžete použiÅ¥ hardvérový bezpeÄnostný kÄ¾ÃºÄ ako <strong>Yubikey</strong> alebo <strong>OnlyKey</strong> so slotmi nakonfigurovanými pre HMAC-SHA1.</p> -<p>Kliknite pre viac informácií...</p> - - - Hardware key help - Pomocník pre hardvérový kÄ¾ÃºÄ - Key file to unlock the database Súbor kľúÄa na odomknutie databázy @@ -1463,14 +1483,6 @@ ZálohovaÅ¥ databázu nachádzajúcu sa na %2 Browse… Prechádzať… - - Refresh hardware tokens - ObnoviÅ¥ hardvérové tokeny - - - Refresh - ObnoviÅ¥ - Unlock Database @@ -1527,14 +1539,6 @@ Ak chcete zabrániÅ¥ zobrazovaniu tejto chyby, musíte ísÅ¥ do "Nastavenia Retry with empty password SkúsiÅ¥ znova s prázdnym heslom - - Failed to authenticate with Windows Hello - - - - Failed to authenticate with Touch ID - - Failed to open key file: %1 Nepodarilo sa otvoriÅ¥ kľúÄový súbor: %1 @@ -1568,22 +1572,60 @@ Ak chcete zabrániÅ¥ zobrazovaniu tejto chyby, musíte ísÅ¥ do "Nastavenia Súbor databázy nemožno použiÅ¥ ako súbor kľúÄa - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Nemôžete použiÅ¥ svoju databázu ako súbor kľúÄa. -Ak nemáte súbor kľúÄa, prosím nechajte toto pole prázdne. + authenticate to access the database + - Detecting hardware keys… - Detekcia hardvérových kľúÄov… + Failed to authenticate with Quick Unlock: %1 + - No hardware keys detected - Nenájdené žiadne hardvérové kľúÄe + Select Key File: + - Select hardware key… - Zvoľte hardvérový kľúÄ… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1595,10 +1637,6 @@ Ak nemáte súbor kľúÄa, prosím nechajte toto pole prázdne. DatabaseSettingsDialog - - Advanced Settings - PokroÄilé nastavenia - General VÅ¡eobecné @@ -1630,18 +1668,6 @@ Ak nemáte súbor kľúÄa, prosím nechajte toto pole prázdne. KeePassXC-Browser settings Nastavenia KeePassXC-Browser - - Convert KeePassHTTP data - KonvertovaÅ¥ dáta KeePassHTTP - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - KonvertovaÅ¥ KeePassHTTP atribúty do formátu kompatibilného s KeePassXC-Browser - - - Refresh database root group ID - ObnoviÅ¥ ID koreňovej skupiny databázy - Disconnect all browsers OdpojiÅ¥ vÅ¡etky prehliadaÄe @@ -1650,6 +1676,10 @@ Ak nemáte súbor kľúÄa, prosím nechajte toto pole prázdne. Forget all site-specific settings on entries Zabudnúť vÅ¡etky nastavenia položiek Å¡pecifické pre stránky + + Refresh database root group ID + ObnoviÅ¥ ID koreňovej skupiny databázy + Stored keys Uložené kľúÄe @@ -1698,18 +1728,10 @@ This may prevent connection to the browser plugin. Naozaj chcete odpojiÅ¥ vÅ¡etky prehliadaÄe? Môže to brániÅ¥ pripojeniu zásuvného modulu prehliadaÄa. - - KeePassXC: No keys found - KeePassXC: Nenájdené žiadne kľúÄe - No shared encryption keys found in KeePassXC settings. V nastavení KeePassXC neboli nájdené zdieľané Å¡ifrovacie kľúÄe. - - KeePassXC: Removed keys from database - KeePassXC: KlúÄe odstránené z databázy - Successfully removed %n encryption key(s) from KeePassXC settings. ÚspeÅ¡ne odstránený %n Å¡ifrovací kÄ¾ÃºÄ z nastavení KeePassXC.ÚspeÅ¡ne odstránené %n Å¡ifrovacie kľúÄe z nastavení KeePassXC.ÚspeÅ¡ne odstránených %n Å¡ifrovacích kľúÄov z nastavení KeePassXC.ÚspeÅ¡ne odstránených %n Å¡ifrovacích kľúÄov z nastavení KeePassXC. @@ -1728,32 +1750,14 @@ Povolenia na prístup k položkám budú odvolané. Abort ZruÅ¡iÅ¥ - - KeePassXC: Removed permissions - KeePassXC: Povolenia odstránené - Successfully removed permissions from %n entry(s). ÚspeÅ¡ne odstránené povolenia z %n položky.ÚspeÅ¡ne odstránené povolenia z %n položiek.ÚspeÅ¡ne odstránené povolenia z %n položiek.ÚspeÅ¡ne odstránené povolenia z %n položky. - - KeePassXC: No entry with permissions found! - KeePassXC: Nenájdená žiadna položka s povoleniami! - The active database does not contain an entry with permissions. Aktívna databáza neobsahuje položku s povoleniami. - - Move KeePassHTTP attributes to custom data - Presunúť atribúty KeePassHTTP do vlastných dát - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Naozaj chcete konvertovaÅ¥ vÅ¡etky staré dáta integrácie prehliadaÄa do najnovÅ¡ej normy? -Je to potrebné kvôli udržaniu kompatibility so zásuvným modulom prehliadaÄa. - Refresh database ID ObnoviÅ¥ ID databázy @@ -1764,6 +1768,26 @@ This is only necessary if your database is a copy of another and the browser ext Naozaj chcete obnoviÅ¥ ID databázy? Toto je potrebné len ak je vaÅ¡a databáza kópiou inej a doplnok prehliadaÄa sa nemôže pripojiÅ¥. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + KonvertovaÅ¥ KeePassHTTP atribúty do formátu kompatibilného s KeePassXC-Browser + + + No keys found + + + + Removed keys from database + + + + Removed permissions + + + + No entry with permissions found! + + DatabaseSettingsWidgetDatabaseKey @@ -1803,6 +1827,18 @@ Naozaj chcete pokraÄovaÅ¥ bez hesla? Failed to change database credentials Zlyhala zmena prihlasovacích údajov databázy + + Weak password + Slabé heslo + + + You must enter a stronger password to protect your database. + + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + + DatabaseSettingsWidgetEncryption @@ -1810,14 +1846,6 @@ Naozaj chcete pokraÄovaÅ¥ bez hesla? Decryption Time: ÄŒas deÅ¡ifrovania: - - Change existing decryption time - ZmeniÅ¥ existujúci Äas deÅ¡ifrovania - - - Change - ZmeniÅ¥ - Decryption time in seconds ÄŒas deÅ¡ifrovania v sekundách @@ -1898,11 +1926,6 @@ Naozaj chcete pokraÄovaÅ¥ bez hesla? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - bez zmeny - Number of rounds too high Key transformation rounds @@ -1955,6 +1978,18 @@ Ak ponecháte toto Äíslo, môže byÅ¥ prelomenie ochrany databázy príliÅ¡ je Threads for parallel execution (KDF settings) vláknovláknavlákien vlákien + + Encryption Settings: + + + + Basic + + + + Advanced + PokroÄilé + DatabaseSettingsWidgetFdoSecrets @@ -2013,18 +2048,10 @@ Ak ponecháte toto Äíslo, môže byÅ¥ prelomenie ochrany databázy príliÅ¡ je Maximum number of history items per entry Maximálny poÄet histórie na položku - - Max. history items: - Max. položiek histórie: - Maximum size of history per entry Maximálna veľkosÅ¥ histórie na položku - - Max. history size: - Max. veľkosÅ¥ histórie: - MiB MiB @@ -2055,6 +2082,55 @@ Táto akcia nie je reverzibilná. (old) (staré) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + + + + Limit the amount of history items per entry to: + + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + + + + Limit the total size of history items per entry to: + + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + + + + Autosave delay since last change + + + + Autosave delay + + + + Autosave delay since last change in minutes + + + + min + min + + + Autosave delay since last change checkbox + + DatabaseSettingsWidgetKeeShare @@ -2182,26 +2258,10 @@ Toto je urÄite chyba, prosím nahláste ju vývojárom. CSV file Súbor CSV - - Select CSV file - Zvoľte súbor CSV - Merge database ZlúÄiÅ¥ databázu - - KeePass 1 database - Databáza KeePass 1 - - - Open KeePass 1 database - OtvoriÅ¥ databázu KeePass 1 - - - Open OPVault - OtvoriÅ¥ OPVault - Export database to CSV file ExportovaÅ¥ databázu do súboru CSV @@ -2214,6 +2274,18 @@ Toto je urÄite chyba, prosím nahláste ju vývojárom. Writing the HTML file failed. Zápis do súboru HTML zlyhal. + + Export database to XML file + + + + XML file + + + + Writing the XML file failed + + Export Confirmation Potvrdenie exportu @@ -2222,15 +2294,6 @@ Toto je urÄite chyba, prosím nahláste ju vývojárom. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? Chystáte sa exportovaÅ¥ svoju databázu do neÅ¡ifrovaného súboru. Takto necháte svoje heslá a citlivé informácie nechránené! Naozaj chcete pokraÄovaÅ¥? - - New Database - Nová databáza - - - %1 [New Database] - Database tab name modifier - %1 [Nová databáza] - %1 [Locked] Database tab name modifier @@ -2240,7 +2303,7 @@ Toto je urÄite chyba, prosím nahláste ju vývojárom. DatabaseWidget - Database Tags + Searches and Tags @@ -2291,6 +2354,10 @@ Toto je urÄite chyba, prosím nahláste ju vývojárom. Expired entries + + Entries expiring within %1 day(s) + + No current database. Žiadna otvorená databáza. @@ -2315,6 +2382,18 @@ Toto je urÄite chyba, prosím nahláste ju vývojárom. No Results Žiadne výsledky + + Save + UložiÅ¥ + + + Enter a unique name or overwrite an existing search from the list: + + + + Save Search + + Lock Database? Zamknúť databázu? @@ -2405,9 +2484,14 @@ Vypnúť bezpeÄné ukladanie a skúsiÅ¥ znova? Could not find database file: %1 Nemožno nájsÅ¥ súbor databázy: %1 - - Entries expiring within %1 day(s) - + + New Database + Nová databáza + + + %1 [New Database] + Database tab name modifier + %1 [Nová databáza] @@ -2549,6 +2633,10 @@ Chcete to opraviÅ¥? Hide SkryÅ¥ + + %n hour(s) + + %n week(s) %n týždeň%n týždne%n týždňov%n týždňov @@ -2561,10 +2649,6 @@ Chcete to opraviÅ¥? %n year(s) %n rok%n roky%n rokov%n rokov - - %n hour(s) - - EditEntryWidgetAdvanced @@ -2683,10 +2767,20 @@ Chcete to opraviÅ¥? Add new window association PridaÅ¥ nové priradenia okna + + + + Add item + + + Remove selected window association OdstrániÅ¥ vybrané priradenia okna + + - + Remove item + - + Window title: Názov okna: @@ -2711,16 +2805,6 @@ Chcete to opraviÅ¥? Custom Auto-Type sequence for this window Vlastná postupnosÅ¥ Automatického vypĺňania tohoto okna - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2822,22 +2906,10 @@ Chcete to opraviÅ¥? Notes field Pole poznámok - - Toggle the checkbox to reveal the notes section. - Prepnite zaÅ¡krtávacie pole na odkrytie sekcie poznámok. - Username field Pole použ. mena - - Toggle notes visible - Prepnúť tobrazenie poznámok - - - Notes: - Poznámky: - Expiration field Pole doby platnosti @@ -2854,14 +2926,6 @@ Chcete to opraviÅ¥? Presets Predvoľby - - Password: - Heslo: - - - URL: - URL: - Url field Pole URL @@ -2870,18 +2934,10 @@ Chcete to opraviÅ¥? Download favicon for URL StiahnuÅ¥ ikonu URL - - Title: - Názov: - Title field Pole nadpisu - - Username: - Použ. meno: - Password field Pole pre heslo @@ -2891,15 +2947,39 @@ Chcete to opraviÅ¥? Prepnúť dobu platnosti - Expires: - Platí do: - - - Tags: + Tags list - Tags list + &Username: + + + + &Title: + + + + &Password: + + + + UR&L: + + + + &Notes: + + + + Toggle notes visibility + + + + T&ags: + + + + &Expires: @@ -2941,19 +3021,6 @@ Chcete to opraviÅ¥? Private key Súkromný kÄ¾ÃºÄ - - External file - Externý súbor - - - Browser for key file - VybraÅ¥ súbor kľúÄa - - - Browse… - Button for opening file dialog - Prechádzať… - Attachment Príloha @@ -2970,6 +3037,23 @@ Chcete to opraviÅ¥? Remove from agent OdstrániÅ¥ z agenta + + External file + Externý súbor + + + Browser for key file + VybraÅ¥ súbor kľúÄa + + + Browse… + Button for opening file dialog + Prechádzať… + + + Generate + GenerovaÅ¥ + Select attachment file Zvoľte súbor prílohy @@ -3005,10 +3089,6 @@ Chcete to opraviÅ¥? Icon Ikona - - Browser Integration - Integrácia prehliadaÄa - Properties Vlastnosti @@ -3025,6 +3105,10 @@ Chcete to opraviÅ¥? Group has unsaved changes Skupina má neuložené zmeny + + Browser Integration + Integrácia prehliadaÄa + Enable Zapnúť @@ -3040,10 +3124,6 @@ Chcete to opraviÅ¥? EditGroupWidgetBrowser - - Edit Group - UpraviÅ¥ skupinu - These settings affect to the group's behaviour with the browser extension. Tieto nastavenia ovplyvňujú správanie skupiny s doplnkom prehliadaÄa. @@ -3080,6 +3160,22 @@ Chcete to opraviÅ¥? Do not use HTTP Auth toggle for this and sub groups NepoužívaÅ¥ HTTP Auth pre túto a podriadené skupiny + + Omit WWW subdomain from matching: + + + + Omit WWW subdomain from matching toggle for this and sub groups + + + + Restrict matching to given browser key: + + + + Restrict matching to given browser key toggle for this and sub groups + + EditGroupWidgetKeeShare @@ -3312,10 +3408,6 @@ Podporované rozšírenia sú: %1. Unable to fetch favicon. Nemožno stiahnuÅ¥ ikonu stránky - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Môžete zapnúť webovú službu ikon DuckDuckGo v Nástroje -> Nastavenie -> BezpeÄnosÅ¥ - Existing icon selected. Zvolená existujúca ikona. @@ -3348,6 +3440,10 @@ Podporované rozšírenia sú: %1. The following icon(s) failed: Nasledujúca ikona zlyhala:Nasledujúce ikony zlyhali:Nasledujúce ikony zlyhali:Nasledujúce ikony zlyhali: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + + EditWidgetProperties @@ -3788,6 +3884,10 @@ Chyba: %1 Has TOTP Má TOTP + + Background Color + + EntryPreviewWidget @@ -3808,8 +3908,8 @@ Chyba: %1 Heslo - Notes - Poznámky + URL + URL Expiration @@ -3828,8 +3928,8 @@ Chyba: %1 Použ. meno: - URL - URL + Notes + Poznámky Advanced @@ -3879,6 +3979,10 @@ Chyba: %1 Never Nikdy + + Double click to copy value + + Enabled Zapnuté @@ -3887,6 +3991,10 @@ Chyba: %1 Disabled Vypnuté + + Double click to copy to clipboard + + EntryURLModel @@ -3894,6 +4002,10 @@ Chyba: %1 Invalid URL Neplatná URL + + Duplicate URL + + EntryView @@ -3909,6 +4021,10 @@ Chyba: %1 Reset to defaults ObnoviÅ¥ predvolené + + + %1 entry(s)... + + ExportDialog @@ -4130,6 +4246,147 @@ V bezpeÄnostnej sekcii nastavení aplikácie môžete zapnúť webovú službu SÅ¥ahovanie ikon (%1/%2)… + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Stránka sprievodcu + + + Entry count: %1 + + + + Group + Skupina + + + Title + Nadpis + + + Username + Používateľské meno + + + Password + Heslo + + + Url + + + + + ImportWizardPageSelect + + Form + Formulár + + + Import File Selection + + + + Password: + Heslo: + + + Key File: + Súbor kľúÄa: + + + Browse… + Prechádzať… + + + Import Into: + + + + New Database + Nová databáza + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + OtvoriÅ¥ OPVault + + + Select import file + + + + All files + VÅ¡etky súbory + + + Key files + Súbory kľúÄov + + + Select key file + Zvoľte súbor kľúÄa + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4565,17 +4822,6 @@ Riadok %2, stĺpec %3 Zlyhalo otvorenie súkromného kľúÄa - - KeePass1OpenWidget - - Import KeePass1 Database - ImportovaÅ¥ databázu KeePass 1 - - - Unable to open the database. - Nemožno otvoriÅ¥ databázu. - - KeePass1Reader @@ -4932,10 +5178,6 @@ Naozaj chcete pokraÄovaÅ¥ s týmto súborom? &Recent Databases &Nedávne databázy - - &Import - &Import - &Export &ExportovaÅ¥ @@ -4956,6 +5198,10 @@ Naozaj chcete pokraÄovaÅ¥ s týmto súborom? TOTP TOTP + + Tags + + &Groups &Skupiny @@ -5000,34 +5246,18 @@ Naozaj chcete pokraÄovaÅ¥ s týmto súborom? &New Database… &Nová databáza… - - Create a new database - VytvoriÅ¥ novú databázu - &Merge From Database… &ZlúÄiÅ¥ z databázou… - - Merge from another KDBX database - ZlúÄiÅ¥ s inou databázou KDBX - &New Entry… &Nová položka… - - Add a new entry - PridaÅ¥ novú položku - &Edit Entry… &UpraviÅ¥ položku… - - View or edit entry - ZobraziÅ¥ alebo upraviÅ¥ položku - &Delete Entry… O&dstrániÅ¥ položku… @@ -5036,10 +5266,6 @@ Naozaj chcete pokraÄovaÅ¥ s týmto súborom? &New Group… &Nová skupina… - - Add a new group - PridaÅ¥ novú skupinu - &Edit Group… &UpraviÅ¥ skupinu… @@ -5072,18 +5298,10 @@ Naozaj chcete pokraÄovaÅ¥ s týmto súborom? Database &Reports… &Hlásenia databázy… - - Statistics, health check, etc. - Å tatistiky, kontrola zdravia, apod. - &Database Settings… Nastavenia &databázy… - - Database settings - Nastavenia databázy - &Clone Entry… &KlonovaÅ¥ položku… @@ -5092,34 +5310,18 @@ Naozaj chcete pokraÄovaÅ¥ s týmto súborom? Move u&p &Posunúť vyššie - - Move entry one step up - Posunie položku o jedno vyššie - Move do&wn &Posunúť nižšie - - Move entry one step down - Posunie položku o jedno nižšie - Copy &Username KopírovaÅ¥ po&už. meno - - Copy username to clipboard - Skopíruje používateľské meno do schránky - Copy &Password KopírovaÅ¥ &heslo - - Copy password to clipboard - Skopíruje heslo do schránky - &Settings Na&stavenia @@ -5153,25 +5355,13 @@ Naozaj chcete pokraÄovaÅ¥ s týmto súborom? &Názov - Copy title to clipboard - KopírovaÅ¥ názov do schránky - - - &URL - &URL - - - Copy URL to clipboard - KopírovaÅ¥ URL do schránky + Copy &URL + &Notes &Poznámky - - Copy notes to clipboard - KopírovaÅ¥ poznámky do schránky - &CSV File… Súbor &CSV… @@ -5184,26 +5374,14 @@ Naozaj chcete pokraÄovaÅ¥ s týmto súborom? KeePass 1 Database… Databáza KeePass 1 - - Import a KeePass 1 database - ImportovaÅ¥ databázu KeePass 1… - 1Password Vault… Úložisko 1Password... - - Import a 1Password Vault - ImportovaÅ¥ z úložiska 1Password - CSV File… Súbor CSV… - - Import a CSV file - ImportovaÅ¥ súbor CSV… - Show TOTP ZobraziÅ¥ TOTP @@ -5220,6 +5398,10 @@ Naozaj chcete pokraÄovaÅ¥ s týmto súborom? Copy &TOTP KopírovaÅ¥ &TOTP + + Copy Password and TOTP + + E&mpty recycle bin V&yprázdniÅ¥ kôš @@ -5244,10 +5426,6 @@ Naozaj chcete pokraÄovaÅ¥ s týmto súborom? &Online Help Pomocník &online - - Go to online documentation - PrejsÅ¥ na dokumentáciu on-line - &User Guide &Používateľská príruÄka @@ -5316,6 +5494,10 @@ Naozaj chcete pokraÄovaÅ¥ s týmto súborom? Clone Group... KlonovaÅ¥ skupinu… + + &XML File… + + Clear history VymazaÅ¥ históriu @@ -5348,6 +5530,10 @@ We recommend you use the AppImage available on our downloads page. UPOZORNENIE: VaÅ¡a verzia Qt môže spôsobiÅ¥ pád KeePassXC s klávesnicou na obrazovke! OdporúÄame použiÅ¥ AppImage dostupný na naÅ¡ej stránke sÅ¥ahovaní. + + No Tags + + Restore Entry(s) @@ -5376,6 +5562,10 @@ OdporúÄame použiÅ¥ AppImage dostupný na naÅ¡ej stránke sÅ¥ahovaní.Quit KeePassXC SkonÄiÅ¥ KeePassXC + + %1 Entry(s) + + Please present or touch your YubiKey to continue… Prosím, pripojte alebo stlaÄte tlaÄidlo svojho YubiKey na pokraÄovanie*… @@ -5388,6 +5578,274 @@ OdporúÄame použiÅ¥ AppImage dostupný na naÅ¡ej stránke sÅ¥ahovaní.You must restart the application to apply this setting. Would you like to restart now? Musíte reÅ¡tartovaÅ¥ aplikáciu, aby sa tieto zmeny prejavili. Chcete ju reÅ¡tartovaÅ¥ teraz? + + Allow Screen Capture + + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + + + + Import Passkey + + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + UpraviÅ¥ položku + + + Delete Entry + + + + Create Group + + + + Edit Group + UpraviÅ¥ skupinu + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + KopírovaÅ¥ použ. meno + + + Copy Password + KopírovaÅ¥ heslo + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + ImportovaÅ¥ databázu KeePass 1 + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + ManageDatabase @@ -5445,26 +5903,6 @@ OdporúÄame použiÅ¥ AppImage dostupný na naÅ¡ej stránke sÅ¥ahovaní.Overwriting %1 [%2] Prepísanie %1 [%2] - - older entry merged from database "%1" - starÅ¡ia položka zlúÄená z databázy „%1†- - - Adding backup for older target %1 [%2] - Pridávanie zálohy starÅ¡ieho cieľa %1 [%2] - - - Adding backup for older source %1 [%2] - Pridávanie zálohy starÅ¡ieho zdroja %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Aplikujem položku starÅ¡ieho cieľa na novší zdroj %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Aplikujem položku starÅ¡ieho zdroja na novší cieľ %1 [%2] - Synchronizing from newer source %1 [%2] Synchronizujem z novÅ¡ieho zdroja %1 [%2] @@ -5524,14 +5962,6 @@ OdporúÄame použiÅ¥ AppImage dostupný na naÅ¡ej stránke sÅ¥ahovaní.Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Tu môžete prispôsobiÅ¥ nastavenia Å¡ifrovania databázy. Nebojte sa, neskôr ich môžete zmeniÅ¥ v nastavení databázy. - - Advanced Settings - PokroÄilé nastavenia - - - Simple Settings - Jednoduché nastavenia - NewDatabaseWizardPageDatabaseKey @@ -5612,15 +6042,6 @@ OdporúÄame použiÅ¥ AppImage dostupný na naÅ¡ej stránke sÅ¥ahovaní.OÄakávaných %1 B prostého textu, nájdených %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Čítanie databázy neposkytuje inÅ¡tanciu -%1 - - OpVaultReader @@ -5694,6 +6115,10 @@ OdporúÄame použiÅ¥ AppImage dostupný na naÅ¡ej stránke sÅ¥ahovaní.Unknown cipher: %1 Neznáma Å¡ifra: %1 + + AES-256/GCM is currently not supported + + Passphrase is required to decrypt this key Na deÅ¡ifrovanie tohoto kľúÄa je potrebná tajná veta @@ -5760,26 +6185,174 @@ OdporúÄame použiÅ¥ AppImage dostupný na naÅ¡ej stránke sÅ¥ahovaní. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Heslá sa nezhodujú. + SSH Key Generator + - Passwords match so far - Heslá sa zhodujú až potiaľ + Type + Typ - Toggle Password (%1) - Prepnúť heslo (%1) + Bits + - Generate Password (%1) - GenerovaÅ¥ heslo (%1) + Comment + Komentár + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + - Warning: Caps Lock enabled! - Upozornenie: Caps Lock zapnutý! + Export the following Passkey entries. + + + + Filenames will be generated with title and .passkey file extension. + + + + Export entries + + + + Export Selected + + + + Cancel + ZruÅ¡iÅ¥ + + + Export to folder + + + + + PasskeyExporter + + KeePassXC: Passkey Export + + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + + Cannot open file + + + + Cannot open file "%1" for writing. + + + + Cannot write to file + + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + + + + Username: %1 + + + + Group + Skupina + + + Database + + + + Import Passkey + + + + Import + ImportovaÅ¥ + + + Cancel + ZruÅ¡iÅ¥ + + + Import the following Passkey: + + + + Entry + Položka + + + Import the following Passkey to this entry: + + + + Create new entry + + + + Default Passkeys group (Imported Passkeys) + + + + Relying Party: %1 + + + + + PasskeyImporter + + Passkey file + + + + All files + VÅ¡etky súbory + + + Open Passkey file + + + + Cannot open file + + + + Cannot open file "%1" for reading. + + + + Cannot import Passkey + + + + Cannot import Passkey file "%1". Data is missing. + + + + Cannot import Passkey file "%1". Private key is missing or malformed. + + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + @@ -6044,6 +6617,30 @@ OdporúÄame použiÅ¥ AppImage dostupný na naÅ¡ej stránke sÅ¥ahovaní.Entropy: %1 bit NáhodnosÅ¥: %1 b + + Password Quality: %1 + Kvalita hesla: %1 + + + Poor + Password quality + Slabé + + + Weak + Password quality + Slabé + + + Good + Password quality + Dobré + + + Excellent + Password quality + Výbroné + Confirm Delete Wordlist @@ -6089,9 +6686,32 @@ Do you want to overwrite it? Special Characters Å peciálne znaky + + + PasswordWidget - Password Quality: %1 - Kvalita hesla: %1 + Passwords do not match + Heslá sa nezhodujú. + + + Passwords match so far + Heslá sa zhodujú až potiaľ + + + Toggle Password (%1) + Prepnúť heslo (%1) + + + Generate Password (%1) + GenerovaÅ¥ heslo (%1) + + + Warning: Caps Lock enabled! + Upozornenie: Caps Lock zapnutý! + + + Quality: %1 + Poor @@ -6113,6 +6733,10 @@ Do you want to overwrite it? Password quality Výbroné + + Toggle password visibility using Control + H. Open the password generator using Control + G. + + PickcharsDialog @@ -6167,6 +6791,10 @@ Do you want to overwrite it? Continue PokraÄovaÅ¥ + + Continue with weak password + + QObject @@ -6560,6 +7188,10 @@ Do you want to overwrite it? Too many arguments provided. PríliÅ¡ veľa argumentov. + + Path of the database. + Cesta k databáze. + Target decryption time in MS for the database. Cieľový Äas deÅ¡ifrovania databázy v ms. @@ -6568,6 +7200,11 @@ Do you want to overwrite it? time Äas + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + + Set the key file for the database. NastaviÅ¥ súbor kľúÄa databázy. @@ -6580,10 +7217,6 @@ Do you want to overwrite it? Create a new database. VytvoriÅ¥ novú databázu. - - Path of the database. - Cesta k databáze. - Invalid decryption time %1. Neplatný Äas deÅ¡ifrovania %1. @@ -6628,6 +7261,158 @@ Do you want to overwrite it? Successfully created new database. ÚspeÅ¡ne vytvorená nová databáza. + + Unset the password for the database. + + + + Unset the key file for the database. + + + + Edit a database. + + + + Cannot use %1 and %2 at the same time. + + + + Could not change the database key. + + + + Database was not modified. + + + + Writing the database failed: %1 + Zápis do databázy zlyhal: %1 + + + Successfully edited the database. + + + + Cannot remove password: The database does not have a password. + + + + Cannot remove file key: The database does not have a file key. + + + + Loading the new key file failed: %1 + + + + Found unexpected Key type %1 + + + + Cannot remove all the keys from a database. + + + + Show a database's information. + ZobraziÅ¥ informácie databázy. + + + UUID: + UUID: + + + Name: + Názov: + + + Description: + Popis: + + + Cipher: + Å ifra: + + + KDF: + KDF: + + + Recycle bin is enabled. + Odpadkový kôš je zapnutý. + + + Recycle bin is not enabled. + Odpadkový kôš nie je zapnutý. + + + Location + Umiestnenie + + + Database created + Databáza vytvorená + + + Last saved + Naposledy uložené + + + Unsaved changes + Neuložené zmeny + + + yes + áno + + + no + nie + + + Number of groups + PoÄet skupín + + + Number of entries + PoÄet položiek + + + Number of expired entries + PoÄet položiek po dobe platnosti + + + Unique passwords + JedineÄné heslá + + + Non-unique passwords + Nie jedineÄné heslá + + + Maximum password reuse + Maximálny poÄet opakovane použitých hesiel + + + Number of short passwords + PoÄet krátkych hesiel + + + Number of weak passwords + PoÄet slabých hesiel + + + Entries excluded from reports + Položky vylúÄené z hlásení + + + Average password length + Priemerná dĺžka hesla + + + %1 characters + %1 znakov + Word count for the diceware passphrase. PoÄet slov pre diceware tajnú vetu. @@ -6679,10 +7464,6 @@ Do you want to overwrite it? Enter new password for entry: Zadajte nové heslo položky: - - Writing the database failed: %1 - Zápis do databázy zlyhal: %1 - Successfully edited entry %1. ÚspeÅ¡ne upravená položka %1. @@ -6907,106 +7688,6 @@ Do you want to overwrite it? Successfully imported database. ÚspeÅ¡ne importovaná databáza. - - Show a database's information. - ZobraziÅ¥ informácie databázy. - - - UUID: - UUID: - - - Name: - Názov: - - - Description: - Popis: - - - Cipher: - Å ifra: - - - KDF: - KDF: - - - Recycle bin is enabled. - Odpadkový kôš je zapnutý. - - - Recycle bin is not enabled. - Odpadkový kôš nie je zapnutý. - - - Location - Umiestnenie - - - Database created - Databáza vytvorená - - - Last saved - Naposledy uložené - - - Unsaved changes - Neuložené zmeny - - - yes - áno - - - no - nie - - - Number of groups - PoÄet skupín - - - Number of entries - PoÄet položiek - - - Number of expired entries - PoÄet položiek po dobe platnosti - - - Unique passwords - JedineÄné heslá - - - Non-unique passwords - Nie jedineÄné heslá - - - Maximum password reuse - Maximálny poÄet opakovane použitých hesiel - - - Number of short passwords - PoÄet krátkych hesiel - - - Number of weak passwords - PoÄet slabých hesiel - - - Entries excluded from reports - Položky vylúÄené z hlásení - - - Average password length - Priemerná dĺžka hesla - - - %1 characters - %1 znakov - Unknown command %1 Neznáma príkaz %1 @@ -7179,6 +7860,10 @@ Dostupné príkazy: Show the protected attributes in clear text. ZobraziÅ¥ chránené atribúty ako prostý text. + + Show all the attributes of the entry. + + Show the attachments of the entry. @@ -7249,6 +7934,10 @@ Prosím, zvážte vygenerovanie nového súboru kľúÄa. Invalid YubiKey serial %1 Neplatné sériové Äíslo Yubikey %1 + + Please present or touch your YubiKey to continue. + + Enter password to encrypt database (optional): Zadajte heslo na zaÅ¡ifrovanie databázy (voliteľné): @@ -7435,8 +8124,8 @@ Jadro: %3 %4 - Botan library must be at least 2.11.x, found %1.%2.%3 - Knižnica Botan musí byÅ¥ aspoň 2.11.x, nájdené %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + Cryptographic libraries: @@ -7676,10 +8365,6 @@ Jadro: %3 %4 read password of the database from stdin ÄítaÅ¥ heslo databázy zo stdin - - allow app screen recordering and screenshots - - Locked databases. Zamknuté databázy. @@ -7692,6 +8377,10 @@ Jadro: %3 %4 Another instance of KeePassXC is already running. Už je spustená iná inÅ¡tancia KeePassXC. + + KeePassXC is not running. No open database to lock + + Fatal error while testing the cryptographic functions. Fatálna chyba pri testovaní kryptografických funkcií. @@ -7700,10 +8389,6 @@ Jadro: %3 %4 KeePassXC - Error KeePassXC – Chyba - - Warning: Failed to prevent screenshots on a top level window! - - Database password: Heslo databázy: @@ -7727,7 +8412,221 @@ Jadro: %3 %4 - Please present or touch your YubiKey to continue. + Warning: Failed to block screenshot capture on a top-level window. + + + + Invalid Cipher + + + + Invalid KDF + + + + Access to all entries is denied + + + + allow screenshots and app recording (Windows/macOS) + + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + + + + Credential is excluded + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Passkeys + + + + AES initialization failed + + + + AES encrypt failed + + + + Failed to store in Linux Keyring + + + + Polkit returned an error: %1 + + + + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + + + + Failed to init KeePassXC crypto. + + + + Failed to encrypt key data. + + + + Failed to get Windows Hello credential. + + + + Failed to decrypt key data. + + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7767,18 +8666,6 @@ Jadro: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - VylúÄiÅ¥ vyprÅ¡ané položky z hlásenia - - - Show only entries which have URL set - - - - Show only entries which have browser settings in custom data - - Double-click entries to edit. @@ -7843,17 +8730,25 @@ Jadro: %3 %4 Exclude from reports VylúÄiÅ¥ z hlásení + + Only show entries that have a URL + + + + Only show entries that have been explicitly allowed or denied + + + + Show expired entries + + + + (Expired) + + ReportsWidgetHealthcheck - - Exclude expired entries from the report - VylúÄiÅ¥ vyprÅ¡ané položky z hlásenia - - - Also show entries that have been excluded from reports - ZobraziÅ¥ aj položky vylúÄené z hlásení - Hover over reason to show additional details. Double-click entries to edit. Prejdite myÅ¡ou na príÄinou, na zobrazenie dodatoÄných podrobností. Dvojklikom na položku ju upravíte. @@ -7929,6 +8824,18 @@ Jadro: %3 %4 Exclude from reports VylúÄiÅ¥ z hlásení + + Show expired entries + + + + Show entries that have been excluded from reports + + + + (Expired) + + ReportsWidgetHibp @@ -8025,6 +8932,65 @@ Jadro: %3 %4 VylúÄiÅ¥ z hlásení + + ReportsWidgetPasskeys + + Export + Export + + + Import + ImportovaÅ¥ + + + List of entry URLs + + + + Please wait, list of entries with Passkeys is being updated… + + + + No entries with Passkeys. + + + + Title + Nadpis + + + Path + Cesta + + + Username + Používateľské meno + + + URLs + + + + Edit Entry… + UpraviÅ¥ položku… + + + Delete Entry(s)… + OdstrániÅ¥ položku…OdstrániÅ¥ položky…OdstrániÅ¥ položky…OdstrániÅ¥ položky… + + + Relying Party + + + + Show expired entries + + + + (Expired) + + + ReportsWidgetStatistics @@ -8264,6 +9230,10 @@ Jadro: %3 %4 Search Help HľadaÅ¥ v pomocníkovi + + Save Search + + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8487,10 +9457,37 @@ Jadro: %3 %4 ExportovaÅ¥ do %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All + Clear Search + + + + All Entries @@ -8502,6 +9499,25 @@ Jadro: %3 %4 + + TagView + + Remove Search + + + + Remove Tag + + + + Confirm Remove Tag + + + + Remove tag "%1" from all entries in this database? + + + TotpDialog @@ -8659,26 +9675,6 @@ Napríklad: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database ZaÄnite ukladaÅ¥ svoje heslá bezpeÄne v databáze KeePassXC - - Create new database - VytvoriÅ¥ novú databázu - - - Open existing database - OtvoriÅ¥ existujúcu databázu - - - Import from KeePass 1 - ImportovaÅ¥ z KeePass 1 - - - Import from 1Password - ImportovaÅ¥ z 1Password - - - Import from CSV - Importované z CSV - Recent databases Nedávne databázy @@ -8691,6 +9687,18 @@ Napríklad: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Vitajte v KeePassXC %1 + + Create Database + + + + Open Database + + + + Import File + + WinUtils @@ -8707,31 +9715,8 @@ Napríklad: JBSWY3DPEHPK3PXP Nemožno registrovaÅ¥ globálnu klávesovú skratku - - WindowsHello - - Failed to init KeePassXC crypto. - - - - Failed to encrypt key data. - - - - Failed to get Windows Hello credential. - - - - Failed to decrypt key data. - - - YubiKey - - %1 No interface, slot %2 - - General: @@ -8743,14 +9728,6 @@ Napríklad: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - ObnoviÅ¥ hardvérové tokeny - - - Refresh - ObnoviÅ¥ - Hardware key slot selection Výber slotu hardvérového kľúÄa @@ -8783,10 +9760,6 @@ Napríklad: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - - Detecting hardware keys… Detekcia hardvérových kľúÄov… @@ -8795,28 +9768,21 @@ Napríklad: JBSWY3DPEHPK3PXP No hardware keys detected Nenájdené žiadne hardvérové kľúÄe - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 zadaný neplatný slot – %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - - The YubiKey PCSC interface has not been initialized. - - Hardware key is currently in use. - Hardvérový kÄ¾ÃºÄ je práve používaný. - Could not find or access hardware key with serial number %1. Please present it to continue. @@ -8833,6 +9799,21 @@ Napríklad: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + StlaÄiÅ¥ + + + Passive + USB Challenge-Response Key no interaction required + Pasívne + YubiKeyInterfaceUSB @@ -8840,14 +9821,6 @@ Napríklad: JBSWY3DPEHPK3PXP Unknown Neznámy - - (USB) %1 [%2] Configured Slot - %3 - - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - - Press USB Challenge-Response Key interaction request @@ -8862,10 +9835,6 @@ Napríklad: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. - - Hardware key is currently in use. - Hardvérový kÄ¾ÃºÄ je práve používaný. - Could not find hardware key with serial number %1. Please plug it in to continue. Nemožno nájsÅ¥ hardvérový kÄ¾ÃºÄ so sériovým Äíslom %1. Prosím, pripojte ho na pokraÄovanie. @@ -8882,5 +9851,15 @@ Napríklad: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 Zlyhalo dokonÄenie výzvy.odpovede, konkrétna chyba bola: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_sl.ts b/share/translations/keepassxc_sl.ts index 1c95d7ed2..2bb3342b1 100644 --- a/share/translations/keepassxc_sl.ts +++ b/share/translations/keepassxc_sl.ts @@ -150,6 +150,10 @@ SSH Agent connection is working! Povezava s SSH agentom deluje! + + Use both agents + + ApplicationSettingsWidget @@ -221,6 +225,10 @@ Select backup storage directory + + This setting cannot be enabled when minimize on unlock is enabled. + + ApplicationSettingsWidgetGeneral @@ -489,6 +497,14 @@ Remember last typed entry for: + + recent files + + + + Show passwords in color + + ApplicationSettingsWidgetSecurity @@ -638,6 +654,10 @@ Invalid placeholder: %1 + + Entry does not have attribute for PICKCHARS: %1 + + AutoTypeAssociationsModel @@ -1407,10 +1427,6 @@ Varnostna kopija baze se nahaja na %2 Key File: Datoteka s kljuÄi: - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - - Key file help @@ -1423,11 +1439,6 @@ Varnostna kopija baze se nahaja na %2 Hardware Key: - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - - Hardware key help @@ -1562,6 +1573,15 @@ If you do not have a key file, please leave the field empty. Select hardware key… + + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> + + + + <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> +<p>Click for more information…</p> + + DatabaseSettingWidgetMetaData @@ -2202,13 +2222,21 @@ This is definitely a bug, please report it to the developers. Database tab name modifier %1 [Zaklenjeno] + + Export database to XML file + + + + XML file + + + + Writing the XML file failed + + DatabaseWidget - - Database Tags - - Searching… @@ -2373,6 +2401,22 @@ Disable safe saves and try again? Entries expiring within %1 day(s) + + Searches and Tags + + + + Enter a unique name or overwrite an existing search from the list: + + + + Save + Shrani + + + Save Search + + EditEntryWidget @@ -2510,10 +2554,6 @@ Would you like to correct it? Hide Skrij - - Tomorrow - Jutri - %n week(s) %n ted(ov)%n ted(ov)%n ted(ov)%n teden(ov) @@ -2526,6 +2566,10 @@ Would you like to correct it? %n year(s) %n let%n let%n let%n let + + %n hour(s) + + EditEntryWidgetAdvanced @@ -3041,6 +3085,14 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups + + Omit WWW subdomain from matching: + + + + Omit WWW subdomain from matching toggle for this and sub groups + + EditGroupWidgetKeeShare @@ -3623,6 +3675,10 @@ Error: %1 Auto-Type Samodejno tipkanje + + Tags + + EntryModel @@ -3830,6 +3886,10 @@ Error: %1 Disabled OnemogoÄen + + Double click to copy value + + EntryURLModel @@ -5319,6 +5379,30 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? ÄŒe želite uporabiti to nastavitev, morate znova zagnati aplikacijo. Ali želite znova zagnati zdaj? + + Tags + + + + No Tags + + + + %1 Entry(s) + + + + Copy Password and TOTP + + + + &XML File… + + + + XML File… + + ManageDatabase @@ -5689,29 +5773,6 @@ We recommend you use the AppImage available on our downloads page. - - PasswordEdit - - Passwords do not match - - - - Passwords match so far - - - - Toggle Password (%1) - - - - Generate Password (%1) - - - - Warning: Caps Lock enabled! - - - PasswordEditWidget @@ -5890,10 +5951,6 @@ We recommend you use the AppImage available on our downloads page. Also choose from: Izberi tudi med: - - Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" - - Exclude look-alike characters IzkljuÄi podobne znake @@ -6043,6 +6100,57 @@ Do you want to overwrite it? Password quality OdliÄna + + Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" + + + + + PasswordWidget + + Passwords do not match + + + + Passwords match so far + + + + Toggle Password (%1) + + + + Generate Password (%1) + + + + Warning: Caps Lock enabled! + + + + Quality: %1 + + + + Poor + Password quality + Slabo + + + Weak + Password quality + Å ibko + + + Good + Password quality + Dobra + + + Excellent + Password quality + OdliÄna + PickcharsDialog @@ -7171,10 +7279,6 @@ Please consider generating a new key file. Invalid YubiKey serial %1 - - Please present or touch your YubiKey to continue… - - Enter password to encrypt database (optional): Vnesite geslo za Å¡ifriranje baze (neobvezno): @@ -7652,6 +7756,67 @@ Jedro: %3 %4 Failed to sign challenge using Windows Hello. + + Please present or touch your YubiKey to continue. + + + + Show all the attributes of the entry. + + + + Edit a database. + + + + Could not change the database key. + + + + Database was not modified. + + + + Successfully edited the database. + + + + Loading the new key file failed: %1 + + + + Unset the password for the database. + + + + Unset the key file for the database. + + + + Cannot use %1 and %2 at the same time. + + + + Cannot remove all the keys from a database. + + + + Cannot remove password: The database does not have a password. + + + + Cannot remove file key: The database does not have a file key. + + + + Found unexpected Key type %1 + + + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + + QtIOCompressor @@ -8199,6 +8364,10 @@ Jedro: %3 %4 Limit search to selected group + + Save Search + + SettingsClientModel @@ -8411,10 +8580,6 @@ Jedro: %3 %4 TagModel - - All - - Expired @@ -8423,6 +8588,33 @@ Jedro: %3 %4 Weak Passwords + + All Entries + + + + Clear Search + + + + + TagView + + Remove Search + + + + Remove Tag + + + + Confirm Remove Tag + + + + Remove tag "%1" from all entries in this database? + + TotpDialog diff --git a/share/translations/keepassxc_sq.ts b/share/translations/keepassxc_sq.ts new file mode 100644 index 000000000..ebcf8eca3 --- /dev/null +++ b/share/translations/keepassxc_sq.ts @@ -0,0 +1,9077 @@ + + + AboutDialog + + About KeePassXC + Mbi KeePassXC-ën + + + About + Mbi + + + Report bugs at: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> + Njoftoni të meta te: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> + + + KeePassXC is distributed under the terms of the GNU General Public License (GPL) version 2 or (at your option) version 3. + KeePassXC shpërndahet sipas kushteve të licencës GNU General Public License (GPL) version 2 ose (në dorën tuaj) version 3. + + + Project Maintainers: + Mirëmbajtës Projekti: + + + Special thanks from the KeePassXC team go to debfx for creating the original KeePassX. + Falënderime speciale nga ekipi KeePassXC për debfx për krijimin e KeePassX-it origjinal. + + + Contributors + Kontribues + + + <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">See Contributions on GitHub</a> + <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">Shihni Kontribues në GitHub</a> + + + Debug Info + Hollësi Diagnostikimi + + + Include the following information whenever you report a bug: + Përfshini hollësitë vijuese, kurdo që raportoni një të metë: + + + Copy to clipboard + Kopjoje në të papastër + + + + AccessControlDialog + + KeePassXC - Access Request + KeePassXC - Kërkesë Hyrjeje + + + Non-existing/inaccessible executable path. Please double-check the client is legit. + Shteg të ekzekutueshmi që s’ekziston/ ku s’mund të hyhet. Ju lutemi, rikontrolloni që klienti është i ligjshëm. + + + <html><head/><body><p><span style=" font-weight:600;">%1 </span>is requesting access to the following entries:</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">%1 </span>po kërkon hyrje te zërat vijues:</p></body></html> + + + Name + Emër + + + PID + PID + + + Executable + I ekzekutueshëm + + + Command Line + Rresht Urdhrash + + + Details + Hollësi + + + Remember + Mbaje mend + + + Allow Selected + Lejo të Përzgjedhurin + + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Vendimi juaj do të mbhet mend për kohëzgjatjen, teksa xhirojnë që të dy, klienti DHE KeePassXC-ja. + + + Deny All && Future + Moho Krejt të && Ardhmet + + + Allow All && &Future + Lejo Krejt të && Ardhmet + + + + AccessControlDialog::DenyButton + + Deny for this program + Mohoje për këtë program + + + + AgentSettingsWidget + + Enable SSH Agent integration + Aktivizo integrim Agjenti SSH + + + Use Pageant + Përdor Pageant + + + Use OpenSSH + Përdor OpenSSH + + + SSH_AUTH_SOCK override + Anashkalim SSH_AUTH_SOCK + + + SSH_AUTH_SOCK value + Vlerë SSH_AUTH_SOCK + + + (empty) + (e zbrazët) + + + SSH_SK_PROVIDER value + Vlerë SSH_SK_PROVIDER + + + SSH_SK_PROVIDER override + Anashkalim SSH_SK_PROVIDER + + + No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. + + + + SSH Agent connection is working! + Lidhja e Agjentit SSH funksionon! + + + Use both agents + Përdoru të dy agjentët + + + + ApplicationSettingsWidget + + Application Settings + Rregullime Aplikacioni + + + General + Të përgjithshme + + + Security + Siguri + + + Access error for config file %1 + Gabim hyrjeje në kartelë formësimi %1 + + + Icon only + Vetëm ikonë + + + Text only + Vetëm tekst + + + Text beside icon + Tekst në krah të ikonës + + + Text under icon + Tekst nën ikonë + + + Follow style + + + + Monochrome + Njëngjyrësh + + + Monochrome (light) + Njëngjyrësh (i çelët) + + + Monochrome (dark) + Njëngjyrës (i errët) + + + Colorful + Shumëngjyrësh + + + You must restart the application to set the new language. Would you like to restart now? + Që të caktoni gjuhën e re, duhet të rinisni aplikacionin. Do të donit të riniset tani? + + + Reset Settings? + Të Rikthehen Rregullimet Te Parazgjedhjet? + + + Are you sure you want to reset all general and security settings to default? + Jeni i sigurt se doni të rikthehen te parazgjedhjet krejt rregullimet e përgjithshme dhe ato të sigurisë? + + + Select backup storage directory + Përzgjidhni drejtori depozitë kopjeruajtjesh + + + This setting cannot be enabled when minimize on unlock is enabled. + Ky rregullim s’mund të aktivizohet, kur është aktivizuar “Minimizo gjatë shkyçjesâ€. + + + + ApplicationSettingsWidgetGeneral + + Basic Settings + Rregullime Bazë + + + Startup + Nisje + + + Start only a single instance of KeePassXC + Nis vetëm një instancë njëshe të KeePassXC-së + + + Automatically launch KeePassXC at system startup + Hape automatikisht KeePassXC-në gjatë nisjes së sistemit + + + Minimize window at application startup + Minimizoje dritaren gjatë nisjes së aplikacionit + + + Minimize window after unlocking database + Minimizoje dritaren, pas shkyçjes së bazës së të dhënave + + + Remember previously used databases + Mba mend baza të dhënash të mëparshme + + + Load previously open databases on startup + Ngarko gjatë nisjes baza të dhënash të hapura më parë + + + Remember database key files and security dongles + + + + Check for updates at application startup once per week + Kontrollo një herë në javë për përditësime gjatë nisjes së aplikacionit + + + Include beta releases when checking for updates + Kur kontrollohet për përditësime, përfshi hedhje beta në qarkullim + + + On database unlock, show entries that + Gjatë shkyçjeje baze të dhënash, shfaq zëra që + + + have expired + On database unlock, show entries that... + kanë skaduar + + + days + On database unlock, show entries that will expire within %1 days + ditësh + + + will expire within + On database unlock, show entries that... + do të skadojnë brenda + + + File Management + Administrim Kartelash + + + Automatically save after every change + Ruaje automatikisht pas çdo ndryshimi + + + Automatically save when locking database + Ruaje automatikisht, kur kyçet bazë të dhënash + + + Automatically save non-data changes when locking database + Ruaj automatikisht ndryshime jo të dhënash, kur kyçet bazë të dhënash + + + Automatically reload the database when modified externally + Ringarko automatikisht bazën e të dhënave, kur ndryshohet nga jashtë + + + Backup database file before saving + Kopjeruani kartelën e bazës tuaj të të dhënave, përpara ruajtjes + + + Backup destination + Vendmbërritje kopjeruajtjeje + + + Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". + Përcakton vendndodhje kartele kopjeruajtjeje baze të dhënash. Hasje të “{DB_FILENAME}†zëvendësohen me emrin e kartelës së bazës së ruajtur të të dhënave, pa zgjatimin. {TIME:<format>} zëvendësohet me kohën e bërjes së kopjeruajtjes, shihni https://doc.qt.io/qt-5/qdatetime.html#toString. <format> parazgjedhje për formatim vargu “dd_MM_yyyy_hh-mm-ssâ€. + + + {DB_FILENAME}.old.kdbx + {DB_FILENAME}.old.kdbx + + + Choose... + Zgjidhni… + + + Use alternative saving method (may solve problems with Dropbox, Google Drive, GVFS, etc.) + Përdorni metodë alternative ruajtje (mund të zgjidhë probleme me Dropbox, Google Drive, GVFS, etj.) + + + Temporary file moved into place + Kartela e përkohshme u vu në vend + + + Directly write to database file (dangerous) + Shkruaj drejtpërsëdrejti te kartelë baze të dhënash (e rrezikshme) + + + Entry Management + Administrim Zërash + + + Use group icon on entry creation + Përdor ikonë grupi gjatë krijimi zëri + + + Minimize when opening a URL + Minimizoje, kur hapet një URL + + + Hide window when copying to clipboard + Fshihe dritaren, kur kopjohet te e papastër + + + Minimize + Minimizoje + + + Drop to background + + + + Favicon download timeout: + Mbarim kohe shkarkimi favikone: + + + Website icon download timeout in seconds + + + + sec + Seconds + sek + + + User Interface + Ndërfaqe Përdoruesi + + + Toolbar button style + Stil butonash paneli + + + Movable toolbar + Panel i lëvizshëm + + + Language selection + Përzgjedhje gjuhe + + + Language: + Gjuhë: + + + (restart program to activate) + (që të aktivizohet, rinisni programin) + + + Toolbar button style: + Stil butonash paneli: + + + Use monospaced font for notes + Për shënime përdor shkronja Monospace + + + Minimize instead of app exit + Minimizoje, në vend se të dilet nga aplikacioni + + + Show a system tray icon + Shfaq ikonë shtylle sistemi + + + Tray icon type + Lloj ikone paneli + + + Tray icon type: + Lloj ikone paneli: + + + Hide window to system tray when minimized + Fshihe dritaren te shtyllë sistemi, kur minimizohet + + + Reset settings to default… + Rikthe rregullimet te parazgjedhjet… + + + Auto-Type + Vetë-Shtype + + + Use entry title to match windows for global Auto-Type + + + + Use entry URL to match windows for global Auto-Type + + + + Always ask before performing Auto-Type + Pyet përherë, para kryerjes së Vetë-Shtypjes + + + Hide expired entries from Auto-Type + Fshih nga Vetë-Shtypje zëra të skaduar + + + Re-lock previously locked database after performing Auto-Type + Pas kryerjes së Vetë-Shtypjes, rikyç bazë të dhënash të kyçur më parë + + + Auto-Type start delay: + Vonesë nisjeje Vetë-Shtypjeje: + + + Global Auto-Type shortcut: + Shkurtore globale Vetë-Shtypjeje: + + + Auto-type start delay milliseconds + Milisekonda vonese nisjeje Vetë-Shtypjeje + + + ms + Milliseconds + ms + + + Auto-Type typing delay: + Vonesë shtypjeje vetë-shtypjeje: + + + Global auto-type shortcut + Shkurtore globale vetë-shtypjeje + + + Auto-type character typing delay milliseconds + Milisekonda vonese shtypjeje shenjash Vetë-Shtypjeje + + + Remember last typed entry for: + Mbaje mend zërin e fundit të shtypur për: + + + recent files + kartela së fundi + + + Show passwords in color + Shfaqi fjalëkalimet me ngjyra + + + + ApplicationSettingsWidgetSecurity + + Timeouts + Mbarime kohe + + + Database lock timeout seconds + + + + sec + Seconds + sek + + + Clear clipboard after + Spastro të papastrën pas + + + Clear search query after + Spastro kërkesë kërkimi pas + + + min + Minutes + min + + + Clipboard clear seconds + + + + Lock databases after inactivity of + Kyçi bazat e të dhënave pas mosveprimi prej + + + Convenience + Leverdi + + + Enable database quick unlock (Touch ID / Windows Hello) + + + + Lock databases when session is locked or lid is closed + + + + Lock databases after minimizing the window + Kyçi bazat e të dhënave pas minimizimit të dritares + + + Require password repeat when it is visible + + + + Hide passwords when editing them + + + + Use placeholder for empty password fields + Për fusha të zbrazëta fjalëkalimesh përdor vendmbajtëse + + + Hide passwords in the entry preview panel + + + + Hide entry notes by default + Si parazgjedhje, fshihi shënimet mbi zëra + + + Move entries to recycle bin without confirmation + + + + Enable double click to copy the username/password entry columns + + + + Privacy + Privatësi + + + Use DuckDuckGo service to download website icons + Për të shkarkuar ikona sajtesh përdor shërbimin DuckDuckGo + + + Hide TOTP in the entry preview panel + + + + + AutoType + + The requested Auto-Type sequence cannot be used due to an error: + + + + Auto-Type Error + Gabim Vetë-Shtypje + + + Permission Required + Lypset Leje + + + KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. + + + + KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. + + + + Invalid entry provided + + + + Bracket imbalance detected, found extra { or } + + + + Too many repetitions detected, max is %1: %2 + + + + Very slow key press detected, max is %1: %2 + + + + Very long delay detected, max is %1: %2 + + + + Invalid conversion type: %1 + + + + Invalid conversion syntax: %1 + + + + Invalid regular expression syntax %1 +%2 + + + + Invalid placeholder: %1 + Vendmbajtëse e pavlefshme: %1 + + + Entry does not have attribute for PICKCHARS: %1 + Zëri s’ka atribut për PICKCHARS: %1 + + + + AutoTypeAssociationsModel + + Window + Dritare + + + Sequence + Sekuencë + + + (empty) + (e zbrazët) + + + Default sequence + Sekuencë parazgjedhje + + + + AutoTypeMatchModel + + Group + Grup + + + Title + Titull + + + Username + Emër përdoruesi + + + Sequence + Sekuencë + + + + AutoTypePlatformX11 + + Trying to send invalid keysym. + + + + Sequence aborted: Caps Lock is on + + + + Sequence aborted: Modifier keys held by user + + + + Unable to get valid keycode for key: + + + + + AutoTypeSelectDialog + + Auto-Type - KeePassXC + + + + Double click a row to perform Auto-Type or find an entry using the search: + + + + <p>You can use advanced search queries to find any entry in your open databases. The following shortcuts are useful:<br/> +Ctrl+F - Toggle database search<br/> +Ctrl+1 - Type username<br/> +Ctrl+2 - Type password<br/> +Ctrl+3 - Type TOTP<br/> +Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> + + + + Search all open databases + Kërko në krejt bazat e hapura të të dhënave + + + Search… + Kërkoni… + + + Type Sequence + Shtypni Sekuencë + + + Cancel + Anuloje + + + Type {USERNAME} + + + + Type {PASSWORD} + + + + Type {TOTP} + + + + Copy Username + Kopjo Emër Përdoruesi + + + Copy Password + Kopjo Fjalëkalimin + + + Copy TOTP + Kopjo TOTP + + + Use Virtual Keyboard + Përdor Tastierë Virtuale + + + + BrowserAccessControlDialog + + KeePassXC - Browser Access Request + + + + %1 is requesting access to the following entries: + + + + Remember access to checked entries + + + + Remember + Mbaje mend + + + Allow access to entries + Lejoni hyrje te zëra + + + Allow Selected + Lejo të Përzgjedhurën + + + Deny All + Mohoji Krejt + + + Disable for this site + Çaktivizoje për këtë sajt + + + + BrowserEntrySaveDialog + + KeePassXC-Browser Save Entry + + + + Ok + Ok + + + Cancel + Anuloje + + + You have multiple databases open. +Please select the correct database for saving credentials. + Keni të hapura disa baza të dhënash. +Ju lutemi, përzgjidhni bazën e saktë të të dhënave për ruajtje kredencialesh. + + + + BrowserService + + KeePassXC: Create a new group + KeePassXC: Krijoni një grup të ri + + + A request for creating a new group "%1" has been received. +Do you want to create this group? + + + + + KeePassXC: New key association request + + + + You have received an association request for the following database: +%1 + +Give the connection a unique name or ID, for example: +chrome-laptop. + + + + Save and allow access + Ruaje dhe lejo hyrje + + + KeePassXC: Overwrite existing key? + KeePassXC: Të mbishkruhet kyçi ekzistues? + + + A shared encryption key with the name "%1" already exists. +Do you want to overwrite it? + Ka tashmë një kyç të përbashkët fshehtëzimi me emrin “%1â€. +Doni të mbishkruhet? + + + KeePassXC: Update Entry + KeePassXC: Përditëso Zërin + + + Do you want to update the information in %1 - %2? + Doni të përditësohet informacioni në %1 - %2 kb? + + + KeePassXC: Delete entry + KeePassXC: Fshije zërin + + + A request for deleting entry "%1" has been received. +Do you want to delete the entry? + + + + + Converting attributes to custom data… + Po shndërrohen atribute në të dhëna vetjake… + + + Abort + Ndërprite + + + KeePassXC: Converted KeePassHTTP attributes + + + + Successfully converted attributes from %1 entry(s). +Moved %2 keys to custom data. + + + + Successfully moved %n keys to custom data. + + + + KeePassXC: No entry with KeePassHTTP attributes found! + + + + The active database does not contain an entry with KeePassHTTP attributes. + + + + Don't show this warning again + Mos e shfaq më këtë sinjalizim + + + KeePassXC: Legacy browser integration settings detected + + + + Your KeePassXC-Browser settings need to be moved into the database settings. +This is necessary to maintain your current browser connections. +Would you like to migrate your existing settings now? + + + + + BrowserSettingsWidget + + Dialog + Dialog + + + This is required for accessing your databases with KeePassXC-Browser + + + + Enable browser integration + Aktivizoni integrim shfletuesi + + + General + Të përgjithshme + + + Browsers installed as snaps are currently not supported. + + + + Enable integration for these browsers: + + + + Vivaldi + Vivaldi + + + &Edge + &Edge + + + Firefox + Firefox + + + Tor Browser + Shfletuesi Tor + + + Brave + Brave + + + Google Chrome + Google Chrome + + + Chromium + Chromium + + + Show a notification when credentials are requested + Credentials mean login data requested via browser extension + Shfaq një njoftim, kur lypsen kredenciale + + + Request to unlock the database if it is locked + + + + Only entries with the same scheme (http://, https://, …) are returned. + + + + Match URL scheme (e.g., https://example.com) + + + + Only returns the best matches for a specific URL instead of all entries for the whole domain. + + + + Return only best-matching credentials + + + + Returns expired credentials. String [expired] is added to the title. + + + + Allow returning expired credentials + + + + All databases connected to the extension will return matching credentials. + + + + Search in all opened databases for matching credentials + Credentials mean login data requested via browser extension + + + + Advanced + Të mëtejshme + + + Never ask before accessing credentials + Credentials mean login data requested via browser extension + + + + Never ask before updating credentials + Credentials mean login data requested via browser extension + + + + Do not ask permission for HTTP Basic Auth + An extra HTTP Basic Auth setting + + + + Automatically creating or updating string fields is not supported. + + + + Return advanced string fields which start with "KPH: " + + + + Don't display the popup suggesting migration of legacy KeePassHTTP settings. + + + + Do not prompt for KeePassHTTP settings migration. + + + + Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup. + + + + Update native messaging manifest files at startup + + + + Use a custom proxy location if you installed a proxy manually. + + + + Use a custom proxy location: + Meant is the proxy for KeePassXC-Browser + + + + Custom proxy location field + + + + Browser for custom proxy file + + + + Browse… + Button for opening file dialog + Shfletoni… + + + Use a custom browser configuration location: + + + + Browser type: + Lloj shfletuesi: + + + Toolbar button style + Stil butoni paneli + + + Config Location: + Vendndodhje Formësimi: + + + Custom browser location field + + + + Browse for custom browser path + + + + Custom extension ID: + + + + Custom extension ID + + + + Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 + + + + KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2 and %3. %4 + + + + Please see special instructions for browser extension use below + + + + Executable Files + Kartela të Ekzekutueshmish + + + All Files + Krejt Kartelat + + + Select custom proxy location + + + + Select native messaging host folder location + + + + <b>Warning:</b> Only adjust these settings if necessary. + + + + The custom proxy location does not exist. + + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + + + + + CloneDialog + + Clone Entry Options + Mundësi Klonimi Zëri + + + Append ' - Clone' to title + ShtoAppend ' - Clone' te titulli + + + Replace username and password with references + Zëvendëso emër përdoruesi dhe fjalëkalim me referenca + + + Copy history + Kopjoji historikun + + + + CsvImportWidget + + Import CSV fields + Importoni fusha CSV + + + filename + emër kartele + + + size, rows, columns + madhësi, rreshta, shtylla + + + Column Association + Përshoqërim Shtyllash + + + Password + Fjalëkalim + + + Username + Emër përdoruesi + + + Title + Titull + + + Group + Grup + + + URL + URL + + + Notes + Shënime + + + TOTP + TOTP + + + Created + Krijuar Më + + + Last Modified + Ndryshuar Së Fundi Më + + + Icon + Ikonë + + + Encoding + Kodim + + + Codec + Kodek + + + Text is qualified by + + + + Text qualification + + + + Fields are separated by + Fushat ndahen me + + + Field separation + Ndarje fushash + + + Comments start with + Komentet fillojnë me + + + Header lines skipped + + + + Number of header lines to discard + + + + First line has field names + Rreshti i parë përmban emra fushash + + + Consider '\' an escape character + Konsideroje '\' shenjë paraprijëse + + + Preview + Paraparje + + + CSV import preview + Paraparje importimi CSV + + + Not Present + + + + Column %1 + Shtylla %1 + + + Imported from CSV file + Importuar prej kartele CSV + + + Original data: + Të dhëna origjinale: + + + Error(s) detected in CSV file! + Gabim(e) i pikasur në kartelë CSV! + + + [%n more message(s) skipped] + [%n mesazh tjetër i anashkaluar][%n mesazhe të tjerë të anashkaluar] + + + Error + Gabim + + + CSV import: writer has errors: +%1 + Importim CSV: shkrimi ka gabime: +%1 + + + + CsvParserModel + + %1, %2, %3 + file info: bytes, rows, columns + %1, %2, %3 + + + %n byte(s) + %n bajt(e)%n bajt(e) + + + %n row(s) + %n rresht(a)%n rresht(a) + + + %n column(s) + %n shtyllë%n shtylla + + + + Database + + Passwords + Root group name + Fjalëkalime + + + File %1 does not exist. + Kartela %1 s’ekziston. + + + Unable to open file %1. + S’arrihet të hapet kartela %1. + + + Error while reading the database: %1 + Gabim gjatë leximit të bazës së të dhënave: %1 + + + Could not save, database does not point to a valid file. + + + + Database save is already in progress. + Ruajtja e bazës së të dhënave është në kryerje e sipër. + + + Could not save, database has not been initialized! + + + + Database file has unmerged changes. + + + + %1 +Backup database located at %2 + + + + Key not transformed. This is a bug, please report it to the developers. + + + + Recycle Bin + Kosh Hedhurinash + + + + DatabaseOpenDialog + + Unlock Database - KeePassXC + Shkyçni Bazë të Dhënash - KeePassXC + + + + DatabaseOpenWidget + + Unlock KeePassXC Database + Shkyçni Bazë të Dhënash KeePassXC + + + Enter Password: + Jepni Fjalëkalim: + + + Password field + Fushë fjalëkalimi + + + Enter Additional Credentials (if any): + Jepni Kredenciale Shtesë (në pastë): + + + Key File: + Kartelë Kyçi: + + + Key file help + Ndihmë për kartela kyçesh + + + Hardware key slot selection + + + + Hardware Key: + Kyç Hardware: + + + Hardware key help + Ndihmë për kyçe hardware + + + Key file to unlock the database + Kartelë kyçi për të shkyçur bazën e të dhënave + + + Browse for key file + Shfletoni për kartelë kyçi + + + Browse… + Shfletoni… + + + Refresh hardware tokens + + + + Refresh + Rifreskoje + + + Unlock Database + Shkyçe Bazën e të Dhënave + + + Cancel + Anuloje + + + Unlock + Shkyçe + + + Please present or touch your YubiKey to continue… + + + + Database Version Mismatch + Mospërputhje Versioni Baze të Dhënash + + + The database you are trying to open was most likely +created by a newer version of KeePassXC. + +You can try to open it anyway, but it may be incomplete +and saving any changes may incur data loss. + +We recommend you update your KeePassXC installation. + + + + Open database anyway + Hape bazën e të dhënave, sido qoftë + + + Database unlock canceled. + Shkyçja e bazës së të dhënave u anulua. + + + Unlock failed and no password given + + + + Unlocking the database failed and you did not enter a password. +Do you want to retry with an "empty" password instead? + +To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. + + + + Retry with empty password + Riprovo me fjalëkalim të zbrazët + + + Failed to authenticate with Touch ID + S’u arrit të bëhej mirëfilltësim me Touch ID + + + Failed to open key file: %1 + S’u arrit të hapej kartelë kyçesh: %1 + + + Old key file format + Format i vjetër kartele kyçi + + + You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> + + + + Don't show this warning again + Mos e shfaq më këtë sinjalizim + + + All files + Tërë kartelat + + + Key files + Kartela kyçesh + + + Select key file + Përzgjidhni kartelë kyçi + + + Cannot use database file as key file + + + + You cannot use your database file as a key file. +If you do not have a key file, please leave the field empty. + + + + Detecting hardware keys… + Po pikasen kyçe hardware… + + + No hardware keys detected + S’u pikasën kyçe hardware + + + Select hardware key… + Përzgjidhni kyç hardware… + + + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> + + + + <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> +<p>Click for more information…</p> + + + + authenticate to access the database + + + + Failed to authenticate with Windows Hello: %1 + + + + Windows Hello setup was canceled or failed. Quick unlock has not been enabled. + + + + + DatabaseSettingWidgetMetaData + + Passwords + Fjalëkalime + + + + DatabaseSettingsDialog + + Advanced Settings + Rregullime të Mëtejshme + + + General + Të përgjithshme + + + Security + Siguri + + + Database Credentials + Kredenciale Baze të Dhënash + + + Encryption Settings + Rregullime Fshehtëzimi + + + Browser Integration + Integrim Shfletuesi + + + Maintenance + Mirëmbajtje + + + + DatabaseSettingsWidgetBrowser + + KeePassXC-Browser settings + Rregullime për KeePassXC-Browser + + + Convert KeePassHTTP data + Shndërroni të dhëna KeePassHTTP + + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + + + + Refresh database root group ID + + + + Disconnect all browsers + Shkëputi krejt shfletuesit + + + Forget all site-specific settings on entries + + + + Stored keys + Kyçe të depozituar + + + Stored browser keys + + + + Remove selected key + Hiqe kyçin e përzgjedhur + + + Remove + Hiqe + + + Delete the selected key? + Të fshihet kyçi i përzgjedhur? + + + Do you really want to delete the selected key? +This may prevent connection to the browser plugin. + + + + Key + Kyç + + + Value + Vlerë + + + Created + Krijuar më + + + Enable Browser Integration to access these settings. + Që të hyni në këto rregullime, aktivizoni Integrim Shfletuesish. + + + Do you really want to disconnect all browsers? +This may prevent connection to the browser plugin. + + + + KeePassXC: No keys found + KeePassXC: S’u gjetën kyçe + + + No shared encryption keys found in KeePassXC settings. + + + + KeePassXC: Removed keys from database + + + + Successfully removed %n encryption key(s) from KeePassXC settings. + + + + Do you really want forget all site-specific settings on every entry? +Permissions to access entries will be revoked. + + + + Removing stored permissions… + Po hiqen leje të depozituara… + + + Abort + Ndërprite + + + KeePassXC: Removed permissions + KeePassXC: U hoqën leje + + + Successfully removed permissions from %n entry(s). + + + + KeePassXC: No entry with permissions found! + KeePassXC: S’u gjet zë me leje! + + + The active database does not contain an entry with permissions. + + + + Move KeePassHTTP attributes to custom data + + + + Do you really want to convert all legacy browser integration data to the latest standard? +This is necessary to maintain compatibility with the browser plugin. + + + + Refresh database ID + Rifresko ID baze të dhënash + + + Do you really want refresh the database ID? +This is only necessary if your database is a copy of another and the browser extension cannot connect. + + + + + DatabaseSettingsWidgetDatabaseKey + + Add additional protection… + Shtoni mbrojtje shtesë… + + + No password set + S’u caktua fjalëkalim + + + WARNING! You have not set a password. Using a database without a password is strongly discouraged! + +Are you sure you want to continue without a password? + KUJDES! S’keni caktuar fjalëkalim. Përdorimi i një baze të dhënash pa një fjalëkalim shkurajohet me forcë! + +Jeni i sigurt se doni të vazhdohet pa një fjalëkalim? + + + Continue without password + Vazhdo pa fjalëkalim + + + No encryption key added + S’u shtua kyç fshehtëzimi + + + You must add at least one encryption key to secure your database! + Duhet të shtoni të paktën një kyç fshehtëzimi që të siguroni bazën tuaj të të dhënave! + + + Unknown error + Gabim i panjohur + + + Failed to change database credentials + S’u arrit të ndryshohen kredenciale baze të dhënash + + + + DatabaseSettingsWidgetEncryption + + Decryption Time: + Kohë Shfshehtëzimi: + + + Change existing decryption time + Ndryshoni kohën ekzistuese të shfshehtëzimit + + + Change + Ndryshojeni + + + Decryption time in seconds + Kohë shfshehtëzimi në sekonda + + + Higher values offer more protection, but opening the database will take longer. + Vlera më të mëdha ofrojnë më tepër mbrojtje, por hapja e bazës së të dhënave do të zgjasë më shumë + + + Database format: + Format baze të dhënash: + + + Database format + Format baze të dhënash + + + Format cannot be changed: Your database uses KDBX 4 features + Formati s’mund të ndryshohet: Baza juaj e të dhënave përdor veçoritë KDBX 4 + + + Unless you need to open your database with other programs, always use the latest format. + Hiq rastin kur ju duhet të hapni bazën tuaj të të dhënave me programe të tjerë, përdorni përherë formatin më të ri. + + + Encryption Algorithm: + Algoritëm Ffshehtëzimi: + + + Encryption algorithm + Algoritëm fshehtëzimi + + + AES: 256 Bit (default) + AES: 256 Bit (parazgjedhje) + + + Twofish: 256 Bit + Twofish: 256 Bit + + + Key Derivation Function: + Funksion Derivimi Kyçesh: + + + Key derivation function + Funksion derivimi kyçesh + + + Transform rounds: + Raunde shndërrimi: + + + Transform rounds + Raunde shndërrimi + + + Memory Usage: + Përdorim Kujtese: + + + Memory usage + Përdorim kujtese + + + Parallelism: + Paralelizëm: + + + Parallelism + Paralelizëm + + + KDBX 4 (recommended) + KDBX 4 (i rekomanduar) + + + KDBX 3 + KDBX 3 + + + unchanged + Database decryption time is unchanged + + + + Number of rounds too high + Key transformation rounds + Numër shumë i madh raundesh + + + You are using a very high number of key transform rounds with Argon2. + +If you keep this number, your database may take hours, days, or even longer to open. + Po përdorni një numër shumë të madh raundesh shndërrimi kyçi me Argon2. + +Nëse mbani këtë numër, do të duhen orë, ditë ose dhe më gjatë që të hapet baza juaj e të dhënave. + + + Understood, keep number + E mora vesh, mbaje numrin + + + Cancel + Anuloje + + + Number of rounds too low + Key transformation rounds + Numër shumë i vogël raundesh + + + You are using a very low number of key transform rounds with AES-KDF. + +If you keep this number, your database will not be protected from brute force attacks. + Po përdorni një numër shumë të vogël raundesh shndërrimi kyçi me AES-KDF. + +Nëse mbani këtë numër, baza juaj e të dhënave s’do të mbrohet nga sulme hyrjeje me zor. + + + KDF unchanged + FDK i pandryshuar + + + Failed to transform key with new KDF parameters; KDF unchanged. + S’u arrit të shndërrohet kyç me parametra FPK të rinj, FPK i pandryshuar. + + + MiB + Abbreviation for Mebibytes (KDF settings) + MiB MiB + + + thread(s) + Threads for parallel execution (KDF settings) + rrjedhë rrjedha + + + + DatabaseSettingsWidgetFdoSecrets + + Exposed Entries + Zëra të Ekspozuar + + + Don't expose this database + Mos ekspozo këtë bazë të dhënash + + + Expose entries under this group: + Ekspozo zëra nën këtë grup: + + + Enable Secret Service to access these settings. + + + + + DatabaseSettingsWidgetGeneral + + Database Metadata + Tejtëdhëna Baze të Dhënash + + + Database name: + Emër baze të dhënash: + + + Database name field + Fushë emri baze të dhënash + + + Database description: + Përshkrim baze të dhënash: + + + Database description field + Fushë përshkrimi baze të dhënash + + + Default username: + Emër parazgjedhje përdoruesi: + + + Default username field + Fushë emri parazgjedhje përdoruesi + + + History Settings + Rregullime Historiku + + + Maximum number of history items per entry + + + + Maximum size of history per entry + + + + MiB + MiB + + + Use recycle bin + Përdor kosh hedhurinash + + + Additional Database Settings + Rregullime shtesë Baze të Dhënash + + + Enable compression (recommended) + Aktivizoni ngjeshje (e rekomanduar) + + + Delete Recycle Bin + Fshi Kosh Hedhurinash + + + Do you want to delete the current recycle bin and all its contents? +This action is not reversible. + + + + (old) + + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + + + + Limit the amount of history items per entry to: + + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + + + + Limit the total size of history items per entry to: + + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + + + + + DatabaseSettingsWidgetKeeShare + + Sharing + Ndarje me të tjerë + + + Breadcrumb + + + + Type + Lloj + + + Path + Shteg + + + Last Signer + Nënshkruesi i Fundit + + + Certificates + Dëshmi + + + > + Breadcrumb separator + > + + + + DatabaseSettingsWidgetMaintenance + + Manage Custom Icons + Administroni Ikona Vetjake + + + Delete selected icon(s) + Fshi ikonën (at) e përzgjedhur + + + Delete all custom icons not in use by any entry or group + Fshi krejt ikonat vetjake jo në përdorim nga ndonjë zë apo grup + + + Purge unused icons + Spastro ikona të papërdorura + + + Confirm Deletion + Ripohoni Fshirjen + + + At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? + Të paktën një nga ikonat e përzgjedhura është aktualisht në përdorim nga të paktën një zë ose grup. Ikonat e krejt zërave dhe grupeve të prekur do të zëvendësohen nga ikona parazgjedhje. Jeni i sigurt se doni të fshihen ikonat që janë aktualisht në përdorim? + + + Custom Icons Are In Use + Ikonat Vetjake Janë Në Përdorim + + + All custom icons are in use by at least one entry or group. + Krejt ikonat vetjake janë në përdorim nga të paktën një zë, ose një grup. + + + Purged Unused Icons + U Spastruan Ikona të Papërdorura + + + Purged %n icon(s) from the database. + U spastrua %n ikonë nga baza e të dhënave.U spastruan %n ikona nga baza e të dhënave. + + + + DatabaseSettingsWidgetMetaDataSimple + + Database Name: + Emër Baze të Dhënash: + + + Database name field + Fushë emri baze të dhënash + + + Description: + Përshkrim: + + + Database description field + Fushë përshkrimi baze të dhënash + + + + DatabaseTabWidget + + Database creation error + Gabim krijimi baze të dhënash + + + The created database has no key or KDF, refusing to save it. +This is definitely a bug, please report it to the developers. + + + + KeePass 2 Database + Bazë të Dhënash Keepass 2 + + + All files + Tërë kartelat + + + Open database + Hap bazë të dhënash + + + Failed to open %1. It either does not exist or is not accessible. + S’u arrit të hapet %1. Ose s’ekziston, ose s’kapet dot. + + + CSV file + Kartelë CSV + + + Select CSV file + Përzgjidhni kartelë CSV + + + Merge database + Përzie bazë të dhënash + + + KeePass 1 database + Bazë të dhënash Keepass 1 + + + Open KeePass 1 database + Hap bazë të dhënash Keepass 1 + + + Open OPVault + Hap OPVault + + + Export database to CSV file + Eksportoje bazën e të dhënave në kartelë CSV + + + Writing the CSV file failed. + Shkrimi te kartela CSV dështoi. + + + Writing the HTML file failed. + Shkrimi te kartela HTML dështoi. + + + Export Confirmation + Ripohim Eksportimi + + + You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? + + + + New Database + Bazë e re të Dhënash + + + %1 [New Database] + Database tab name modifier + %1 [Bazë e Re të Dhënash] + + + %1 [Locked] + Database tab name modifier + %1 [E kyçur] + + + Export database to XML file + Eksportoje bazën e të dhënave te kartelë XML + + + XML file + Kartelë XML + + + Writing the XML file failed + Shkrimi te kartela XML dështoi + + + + DatabaseWidget + + Searching… + Po kërkohet… + + + Shared group… + + + + Confirm Auto-Type + Ripohoni Vetë-Shtypje + + + Perform Auto-Type into the previously active window? + + + + Execute command? + Të përmbushet urdhri? + + + Do you really want to execute the following command?<br><br>%1<br> + + + + Remember my choice + Mbaje mend zgjedhjen time + + + Delete group + Fshije grupin + + + Do you really want to delete the group "%1" for good? + Doni vërtet të fshihet përgjithmonë grupi “%1â€? + + + Move group to recycle bin? + Të shpihet grupi te koshi i hedhurinave? + + + Do you really want to move the group "%1" to the recycle bin? + + + + Expired entries + Zëra të skaduar + + + No current database. + S’ka bazë të tanishme të dhënash. + + + No source database, nothing to do. + S’ka bazë të dhënash burim, s’ka ç’bëhet. + + + Successfully merged the database files. + Kartelat e bazave të të dhënave u përzjenë me sukses. + + + Database was not modified by merge operation. + Baza e të dhënave s’u ndryshua nga veprimi i përzierjes. + + + Search Results (%1) + Përfundime Kërkimi (%1) + + + No Results + S’ka Përfundime + + + Lock Database? + Të kyçet Baza e të Dhënave? + + + You are editing an entry. Discard changes and lock anyway? + + + + "%1" was modified. +Save changes? + “%1†u ndryshua. +Të ruhen ndryshimet? + + + Database was modified. +Save changes? + Baza e të dhënave u ndryshua. +Të ruhen ndryshimet? + + + Save changes? + Të ruhen ndryshimet? + + + File has changed + Kartela ka ndryshuar + + + The database file has changed. Do you want to load the changes? + Kartela e bazës së të dhënave ka ndryshuar. Doni të ngarkohen ndryshimet? + + + Merge Request + Kërkesë Përzierjeje + + + The database file has changed and you have unsaved changes. +Do you want to merge your changes? + Kartela e bazës së të dhënave ka ndryshuar dhe keni ndryshime të paruajtyra. +Doni të përziehen ndryshimet tuaja? + + + Could not open the new database file while attempting to autoreload. +Error: %1 + + + + Disable safe saves? + + + + KeePassXC has failed to save the database multiple times. This is likely caused by file sync services holding a lock on the save file. +Disable safe saves and try again? + + + + Writing the database failed: %1 + Shkrimi te baza e të dhënave dështoi: %1 + + + Passwords + Fjalëkalime + + + Save database as + Ruaje bazën e të dhënave si + + + KeePass 2 Database + Bazë të Dhënash Keepass 2 + + + Save database backup + Ruani kopjeruajtje baze të dhënash + + + Empty recycle bin? + Të zbrazet koshi i hedhurinave? + + + Are you sure you want to permanently delete everything from your recycle bin? + Jeni i sigurt se doni të fshihet përgjithmonë gjithçka prej koshit tuaj të hedhurinave? + + + Could not find database file: %1 + S’u gjet dot kartelë baze të dhënash: %1 + + + Entries expiring within %1 day(s) + Zëra që skadojnë brenda %1 diteZëra që skadojnë brenda %1 ditësh + + + Searches and Tags + Kërkime dhe Etiketa + + + Enter a unique name or overwrite an existing search from the list: + Jepni një emër unik, ose mbishkruani një kërkim ekzistues prej listës: + + + Save + Ruaje + + + Save Search + Ruaje Kërkimin + + + + EditEntryWidget + + Entry + Zë + + + Advanced + Të mëtejshme + + + Icon + Ikonë + + + Auto-Type + Vetë-Shtype + + + Browser Integration + Integrim Shfletuesi + + + <empty URL> + <URL e zbrazët> + + + Confirm Removal + Ripohoni Heqjen + + + Are you sure you want to remove this URL? + Jeni i sigurt se doni të hiqet kjo URL? + + + Properties + Veti + + + History + Historik + + + SSH Agent + Agjent SSH + + + n/a + n/a + + + (encrypted) + (i fshehtëzuar) + + + Select private key + Përzgjidhni kyç privat + + + Entry history + Historik zëri + + + Add entry + Shtoni zë + + + Edit entry + Përpunoni zë + + + Some Browser Integration settings are overridden by group settings. + Disa rregullime Integrimi Shfletuesi mbikalohen nga rregullime grupi. + + + Invalid Entry + Zë i Pavlefshëm + + + An external merge operation has invalidated this entry. +Unfortunately, any changes made have been lost. + Një veprim i jashtëm përzierjeje e ka bërë të pavlefshëm këtë zë. +Mjerisht, mund të jenë humbur çfarëdo ndryshimesh. + + + Auto-Type Validation Error + Gabim Vlerësimi Vetë-Shtypjeje + + + An error occurred while validating the custom Auto-Type sequence: +%1 +Would you like to correct it? + Ndodhi një gabim teksa vlerësohej sekuenca vetjake e Vetë-Shtypjes: +%1 +Do të donit të ndreqet? + + + An error occurred while validating the Auto-Type sequence for "%1": +%2 +Would you like to correct it? + Ndodhi një gabim teksa vlerësohej sekuenca vetjake e Vetë-Shtypjes për “%1â€: +%2 +Do të donit të ndreqet? + + + Entry updated successfully. + Zëri u përditësua me sukses. + + + Unsaved Changes + Ndryshime të Paruajtura + + + Would you like to save changes to this entry? + Doni të ruhen ndryshimet te ky zë? + + + New attribute + Atribut i ri + + + New attribute %1 + Atribut i ri %1 + + + Are you sure you want to remove this attribute? + Jeni i sigurt se doni të hiqet ky atribut? + + + Reveal + Shfaqe + + + [PROTECTED] Press Reveal to view or edit + [I MBROJTUR] Që ta shihni, ose përpunoni, shtypni “Shfaqe†+ + + Hide + Fshihe + + + %n week(s) + %n javë%n javë + + + %n month(s) + %n muaj%n muaj + + + %n year(s) + %n vit%n vjet + + + %n hour(s) + %n orë%n orë + + + + EditEntryWidgetAdvanced + + Additional attributes + Atribute shtesë + + + Attribute selection + Përzgjedhje atributesh + + + Attribute value + Vlerë atributi + + + Add a new attribute + Shtoni atribut të ri + + + Add + Shtoje + + + Remove selected attribute + Hiqe atributin e përzgjedhur + + + Remove + Hiqe + + + Edit attribute name + Përpunoni emër atributi + + + Edit Name + Përpunoni Emrin + + + Toggle attribute protection + Aktivizo/çaktivizo mbrojtje atributi + + + Protect + Mbroje + + + Show a protected attribute + Shfaq një atribut të mbrojtur + + + Reveal + Shfaqe + + + Attachments + Bashkëngjitje + + + If checked, the entry will not appear in reports like Health Check and HIBP even if it doesn't match the quality requirements. + Në iu vëntë shenjë, zëri s’do të shfaqet në raporte të tillë si Kontroll Shëndeti dhe HIBP, edhe nëse s’plotëson domosdoshmëritë e cilësisë. + + + Exclude from database reports + Përjashto nga raporte bazash të dhënash + + + Foreground Color: + Ngjyrë e Përparme: + + + Foreground color selection + Përzgjedhje ngjyre të përparme + + + Background Color: + Ngjyrë Sfondi: + + + Background color selection + Përzgjedhje ngjyre sfondi + + + + EditEntryWidgetAutoType + + Enable Auto-Type for this entry + Aktivizo Vetë-Shtypje për këtë zë + + + Inherit default Auto-Type sequence from the group + Trashëgo sekuencë Vetë-Shtypjeje parazgjedhje prej grupit + + + Use custom Auto-Type sequence: + Përdor sekuencë vetjake Vetë-Shtypjeje: + + + Custom Auto-Type sequence + Sekuencë vetjake Vetë-Shtypjeje + + + Open Auto-Type help webpage + Hap faqe ndihme për Vetë-Shtypje + + + Window Associations + Përshoqërime Dritaresh + + + Existing window associations + Përshoqërime ekzistuese dritaresh + + + Add new window association + Shtoni një përshoqërim të ri dritareje + + + Remove selected window association + + + + Window title: + Titull dritareje: + + + You can use an asterisk (*) to match everything + + + + Set the window association title + + + + You can use an asterisk to match everything + + + + Use a specific sequence for this association: + Përdorni një sekuencë specifike për këtë përshoqërim: + + + Custom Auto-Type sequence for this window + + + + + + Add item + + + + + - + Remove item + - + + + + EditEntryWidgetBrowser + + These settings affect to the entry's behaviour with the browser extension. + + + + General + Të përgjithshme + + + Hide this entry from the browser extension + Fshihe këtë zë nga zgjerimi i shfletuesit + + + Skip Auto-Submit for this entry + Anashkalo Vetë-Parashtrim për këtë zë + + + Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. + + + + Use this entry only with HTTP Basic Auth + + + + Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. + + + + Do not use this entry with HTTP Basic Auth + + + + Additional URL's + + + + Add + Shtoje + + + Remove + Hiqe + + + Edit + Përpunojeni + + + + EditEntryWidgetHistory + + Entry history selection + Përzgjedhje historiku zërash + + + Show entry at selected history state + + + + Show + Shfaq + + + Restore entry to selected history state + + + + Restore + Riktheje + + + Delete selected history state + Fshi gjendje të përzgjedhur historiku + + + Delete + Fshije + + + Delete all history + Fshi krejt historikun + + + Delete all + Fshiji krejt + + + + EditEntryWidgetMain + + Edit Entry + Përpunoni Zërin + + + Notes field + Fushë shënimesh + + + Username field + Fushë emri përdoruesi + + + Expiration field + Fushë skadimi + + + Expiration Presets + Paracaktime Skadimi + + + Expiration presets + Paracaktime skadimi + + + Presets + Paracaktime + + + Url field + Fushë URL-sh + + + Download favicon for URL + URL shkarkimi favikone + + + Title field + Fushë titulli + + + Password field + Fushë fjalëkalimi + + + Toggle expiration + + + + Tags list + Listë etiketash + + + &Username: + + + + &Title: + + + + &Password: + + + + UR&L: + + + + &Notes: + + + + Toggle notes visibility + + + + T&ags: + + + + &Expires: + + + + + EditEntryWidgetSSHAgent + + Form + Formular + + + Remove key from agent when database is closed/locked + + + + Comment + Koment + + + Add key to agent when database is opened/unlocked + + + + Decrypt + Shfshehtëzoje + + + Fingerprint + Shenja gishtash + + + Copy to clipboard + Kopjoje në të papastër + + + Public key + Kyç publik + + + Private key + Kyç privat + + + External file + Kartelë e jashtme + + + Browser for key file + Shfletues për kartelë kyçi + + + Browse… + Button for opening file dialog + Shfletoni… + + + Attachment + Bashkëngjitje + + + External key file + Kartelë e jashtme kyçi + + + Add to agent + Shtoje te agjent + + + Remove from agent + Hiqe prej agjenti + + + Select attachment file + Përzgjidhni kartelë bashkëngjitje + + + Require user confirmation when this key is used + + + + n/a + n/a + + + Remove key from agent after + + + + Remove key from agent after specified seconds + + + + seconds + sekonda + + + + EditGroupWidget + + Group + Grup + + + Icon + Ikonë + + + Browser Integration + Integrim Shfletuesi + + + Properties + Veti + + + Add group + Shtoni grup + + + Edit group + Përpunoni grup + + + Group has unsaved changes + Grupi ka ndryshime të paruajtura + + + Enable + Aktivizoje + + + Disable + Çaktivizoje + + + Inherit from parent group (%1) + Trashëgoje prej grupi mëmë (%1) + + + + EditGroupWidgetBrowser + + These settings affect to the group's behaviour with the browser extension. + + + + Hide entries from browser extension: + + + + Hide entries from browser extension toggle for this and sub groups + + + + Skip Auto-Submit for entries: + + + + Skip Auto-Submit toggle for this and sub groups + + + + Use entries only with HTTP Basic Auth: + + + + Only HTTP Auth toggle for this and sub groups + + + + Do not use entries with HTTP Basic Auth: + + + + Do not use HTTP Auth toggle for this and sub groups + + + + Omit WWW subdomain from matching: + + + + Omit WWW subdomain from matching toggle for this and sub groups + + + + + EditGroupWidgetKeeShare + + Sharing mode field + + + + Password field + Fushë fjalëkalimi + + + Type: + Lloj: + + + Password: + Fjalëkalim: + + + Path: + Shteg: + + + Path to share file field + + + + Browse for share file + + + + Browse… + Shfletoni… + + + Clear fields + Spastroji fushat + + + Clear + Spastroji + + + Inactive + Joaktive + + + Import + Importo + + + Export + Eksporto + + + Synchronize + Njëkohësoje + + + Your KeePassXC version does not support sharing this container type. +Supported extensions are: %1. + + + + %1 is already being exported by this database. + + + + %1 is already being imported by this database. + + + + %1 is being imported and exported by different groups in this database. + + + + KeeShare is currently disabled. You can enable import/export in the application settings. + KeeShare is a proper noun + + + + Database export is currently disabled by application settings. + + + + Database import is currently disabled by application settings. + + + + KeeShare container + + + + KeeShare signed container + + + + Select import source + Përzgjidhni burim importimi + + + Select export target + Përzgjidhni objekt eksportimi + + + Select import/export file + Përzgjidhni kartelë importim/eksportimi + + + + EditGroupWidgetMain + + Edit Group + Përpunoni Grup + + + Toggle expiration + + + + Expires: + Skadon më: + + + Name field + Fushë emri + + + Expiration field + Fushë skadimi + + + Use default Auto-Type sequence of parent group + + + + Auto-Type: + Vetë-Shtypje: + + + Search: + Kërko: + + + Auto-Type toggle for this and sub groups + + + + Notes: + Shënime: + + + Default auto-type sequence field + Fushë sekuence vetë-shtypjeje parazgjedhje + + + Notes field + Fushë shënimesh + + + Name: + Emër: + + + Set default Auto-Type sequence + Caktoni sekuencë Vetë-Shtypjeje parazgjedhje + + + Search toggle for this and sub groups + + + + + EditWidgetIcons + + Use default icon + Përdor ikonë parazgjedhje + + + Use custom icon + Përdor ikonë vetjake + + + Choose icon… + Zgjidhni ikonë… + + + Set the URL to use to search for a favicon + Caktoni URL-në për t’u përdorur që të kërkohet një favikonë + + + Favicon URL + URL favikone + + + Download favicon for URL + URL shkarkimi favikone + + + Download favicon + Shkarko favikonë + + + Apply selected icon to subgroups and entries + Aplikojeni ikonën e përzgjedhur te nëngrupe dhe zëra + + + Apply icon to… + Aplikoni ikonë te… + + + Apply to this group only + Aplikoje vetëm te ky grup + + + Also apply to child groups + Aplikoje edhe te grupe pjella + + + Also apply to child entries + Aplikoje edhe te zëra pjella + + + Also apply to all children + Aplikoje edhe te krejt pjellat + + + Unable to fetch favicon. + S’arrihet të sillet favikonë. + + + You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security + + + + Existing icon selected. + U përzgjodh ikonë ekzistuese. + + + Images + Figura + + + All files + Krejt kartelat + + + Select Image(s) + Përzgjidhni Figurë(a) + + + Successfully loaded %1 of %n icon(s) + + + + No icons were loaded + S’u ngarkuan ikona + + + %n icon(s) already exist in the database + + + + The following icon(s) failed: + Ikona vijuese dështoi:Ikonat vijuese dështuan: + + + + EditWidgetProperties + + Created: + Krijuar më + + + Datetime created + + + + Modified: + Ndryshuar më: + + + Datetime modified + + + + Accessed: + + + + Datetime accessed + + + + Uuid: + Uuid: + + + Unique ID + ID Unike + + + Plugin Data + Të dhëna Shtojce + + + Plugin data + Të dhëna shtojce + + + Remove selected plugin data + + + + Remove + Hiqe + + + Delete plugin data? + + + + Do you really want to delete the selected plugin data? +This may cause the affected plugins to malfunction. + + + + Key + Kyç + + + Value + Vlerë + + + + Entry + + %1 - Clone + + + + + EntryAttachments + + Cannot open file "%1" + S’hapet dot kartela “%1†+ + + + EntryAttachmentsModel + + Name + Emër + + + Size + Madhësi + + + + EntryAttachmentsWidget + + Form + Formular + + + Attachments + Bashkëngjitje + + + Add new attachment + Shtoni bashkëngjitje të re + + + Add + Shtoje + + + Remove selected attachment + Hiqe bashkëngjitjen e përzgjedhur + + + Remove + Hiqe + + + Rename selected attachment + Riemërtojeni bashkëngjitjen e përzgjedhur + + + Rename + Riemërtojeni + + + Open selected attachment + Hape bashkëngjitjen e përzgjedhur + + + Open + Hape + + + Save selected attachment to disk + Ruaje në disk bashkëngjitjen e përzgjedhur + + + Save + Ruaje + + + Select files + Përzgjidhni kartela + + + Confirm remove + Ripohoni heqjen + + + Are you sure you want to remove %n attachment(s)? + Jeni i sigurt se doni të hiqet %n bashkëngjitje?Jeni i sigurt se doni të hiqet %n bashkëngjitje? + + + Save attachments + Ruaji bashkëngjitjet + + + Unable to create directory: +%1 + S’arrihet të krijohet drejtori: +%1 + + + Are you sure you want to overwrite the existing file "%1" with the attachment? + + + + Confirm overwrite + Ripohoni mbishkrimin + + + Unable to save attachments: +%1 + S’arrihet të ruhen bashkëngjitje: +%1 + + + Unable to open attachment: +%1 + S’arrihet të hapen bashkëngjitje: +%1 + + + Unable to open attachments: +%1 + S’arrihet të hapen bashkëngjitje: +%1 + + + Unable to open file(s): +%1 + S’arrihet të hapet kartelë: +%1S’arrihet të hapen kartela: +%1 + + + Confirm Overwrite Attachment + Ripohoni Mbishkrim Bashkëngjitjeje + + + Attachment "%1" already exists. +Would you like to overwrite the existing attachment? + + + + Confirm Attachment + Ripohoni Bashkëngjitje + + + %1 is a big file (%2 MB). +Your database may get very large and reduce performance. + +Are you sure to add this file? + + + + Attachment modified + Bashkëngjitja u ndryshua + + + The attachment '%1' was modified. +Do you want to save the changes to your database? + + + + Saving attachment failed + + + + Saving updated attachment failed. +Error: %1 + + + + + EntryAttributesModel + + Name + Emër + + + + EntryHistoryModel + + Current (%1) + + + + Last modified + Ndryshuar së fundi më + + + Age + Moshë + + + Difference + Diferencë + + + Size + Madhësi + + + Title + Titull + + + Username + Emër përdoruesi + + + Password + Fjalëkalim + + + URL + URL + + + Notes + Shënime + + + Custom Attributes + Atribute Vetjake + + + Icon + Ikonë + + + Color + Ngjyrë + + + Expiration + Skadim + + + TOTP + TOTP + + + Custom Data + Të dhëna Vetjake + + + Attachments + Bashkëngjitje + + + Auto-Type + Vetë-Shtype + + + Tags + Etiketa + + + + EntryModel + + Ref: + Reference abbreviation + + + + Never + Kurrë + + + Group + Grup + + + Title + Titull + + + Username + Emër përdoruesi + + + Password + Fjalëkalim + + + URL + URL + + + Notes + Shënime + + + Expires + Skadon më + + + Created + Krijuar më + + + Modified + Ndryshuar më + + + Accessed + + + + Attachments + Bashkëngjitje + + + Size + Madhësi + + + Group name + Emër grupi + + + Entry title + Titull zëri + + + Password Strength + Fortësi Fjalëkalimi + + + Entry notes + Shënime zëri + + + Entry expires at + Zëri skadon më + + + Creation date + Datë krijimi + + + Last modification date + Datë ndryshimi së fundi + + + Last access date + + + + Attached files + Kartela të bashkëngjitura + + + Entry size + Madhësi zëri + + + Has attachments + Ka bashkëngjitje + + + Has TOTP + Ka TOTP + + + + EntryPreviewWidget + + Display current TOTP value + + + + Close + Mbylle + + + General + Të përgjithshme + + + Password + Fjalëkalim + + + Notes + Shënime + + + Expiration + Skadim + + + Tags + Etiketa + + + Tags list + Listë etiketash + + + Username + Emër përdoruesi + + + URL + URL + + + Advanced + Të mëtejshme + + + Attachments + Bashkëngjitje + + + Attributes + Atribute + + + Autotype + + + + Default Sequence + Sekuencë Parazgjedhje + + + Window + Dritare + + + Sequence + Sekuencë + + + Searching + + + + Share + + + + Search + Kërko + + + Clear + Spastroje + + + Never + Kurrë + + + Enabled + E aktivizuar + + + Disabled + E çaktivizuar + + + Double click to copy value + Që t’i kopjohet vlera, dyklikojeni + + + Double click to copy to clipboard + + + + + EntryURLModel + + Invalid URL + URL e Pavlefshme + + + Duplicate URL + + + + + EntryView + + Fit to window + + + + Fit to contents + + + + Reset to defaults + Riktheje te parazgjedhjet + + + + %1 entry(s)... + + + + + ExportDialog + + Export options + Mundësi Eksportimi + + + Sort entries by... + Renditi zërat sipas… + + + You are about to export your database to an unencrypted file. +This will leave your passwords and sensitive information vulnerable! + + + + + database order + renditje baze të dhënash + + + name (ascending) + emrash (në rend rritës) + + + name (descending) + emrash (në rend zbritës) + + + unknown + e panjohur + + + Export database to HTML file + Eksportoje bazën e të dhënave te kartelë HTML + + + HTML file + Kartelë HTML + + + + FdoSecrets::DBusMgr + + Failed to deliver message + + + + Failed to send reply on DBus + + + + Unknown + Unknown PID + + + + Unknown + Unknown executable path + + + + <i>PID: %1, Executable: %2</i> + <i>PID: 1234, Executable: /path/to/exe</i> + + + + Another secret service is running (%1).<br/>Please stop/remove it before re-enabling the Secret Service Integration. + + + + Failed to register DBus service at %1.<br/> + + + + Failed to register service on DBus at path '%1' + + + + Failed to register database on DBus under the name '%1' + + + + Failed to register session on DBus at path '%1' + + + + Failed to register item on DBus at path '%1' + + + + Failed to register prompt object on DBus at path '%1' + + + + + FdoSecrets::Item + + Entry "%1" from database "%2" was used by %3 + + + + + FdoSecrets::Service + + %n Entry(s) was used by %1 + %1 is the name of an application + + + + + FdoSecrets::SettingsClientModel + + Unknown + + + + Non-existing/inaccessible executable path. Please double-check the client is legit. + Shteg të ekzekutueshmi që s’ekziston/ ku s’mund të hyhet. Ju lutemi, rikontrolloni që klienti është i ligjshëm. + + + + FdoSecrets::SettingsDatabaseModel + + Unlock to show + + + + None + Asnjë + + + + FdoSecrets::UnlockPrompt + + %1 (PID: %2) + %1 (PID: %2) + + + + FdoSecretsPlugin + + <b>Fdo Secret Service:</b> %1 + + + + + Group + + [empty] + group has no children + [i zbrazët] + + + %1 - Clone + + + + + HibpDownloader + + Online password validation failed + + + + + IconDownloaderDialog + + Download Favicons + + + + Cancel + Anuloje + + + Having trouble downloading icons? +You can enable the DuckDuckGo website icon service in the security section of the application settings. + + + + Close + Mbylle + + + URL + URL + + + Status + Gjendje + + + Please wait, processing entry list… + + + + Downloading… + Po shkarkohet… + + + Ok + Ok + + + Already Exists + Ekziston Tashmë + + + Download Failed + Shkarkimi Dështoi + + + Downloading favicons (%1/%2)… + Po shkarkohen favikona (%1/%2)… + + + + KMessageWidget + + &Close + &Mbylle + + + Close message + + + + + Kdbx3Reader + + Missing database headers + + + + Unable to calculate database key + + + + Unable to issue challenge-response: %1 + + + + Invalid credentials were provided, please try again. +If this reoccurs, then your database file may be corrupt. + + + + Header doesn't match hash + + + + Invalid header id size + + + + Invalid header field length: field %1 + + + + Invalid header data length: field %1, %2 expected, %3 found + + + + + Kdbx3Writer + + Invalid symmetric cipher IV size. + IV = Initialization Vector for symmetric cipher + + + + Unable to issue challenge-response: %1 + + + + Unable to calculate database key + + + + + Kdbx4Reader + + missing database headers + + + + Unable to calculate database key: %1 + + + + Invalid header checksum size + + + + Header SHA256 mismatch + + + + Invalid credentials were provided, please try again. +If this reoccurs, then your database file may be corrupt. + + + + (HMAC mismatch) + + + + Unknown cipher + + + + Invalid header id size + + + + Invalid header field length: field %1 + + + + Invalid header data length: field %1, %2 expected, %3 found + + + + Failed to open buffer for KDF parameters in header + + + + Unsupported key derivation function (KDF) or invalid parameters + + + + Legacy header fields found in KDBX4 file. + + + + Invalid inner header id size + + + + Invalid inner header field length: field %1 + + + + Invalid inner header data length: field %1, %2 expected, %3 found + + + + Invalid inner header binary size + + + + Unsupported KeePass variant map version. + Translation: variant map = data structure for storing meta data + + + + Invalid variant map entry name length + Translation: variant map = data structure for storing meta data + + + + Invalid variant map entry name data + Translation: variant map = data structure for storing meta data + + + + Invalid variant map entry value length + Translation: variant map = data structure for storing meta data + + + + Invalid variant map entry value data + Translation comment: variant map = data structure for storing meta data + + + + Invalid variant map Bool entry value length + Translation: variant map = data structure for storing meta data + + + + Invalid variant map Int32 entry value length + Translation: variant map = data structure for storing meta data + + + + Invalid variant map UInt32 entry value length + Translation: variant map = data structure for storing meta data + + + + Invalid variant map Int64 entry value length + Translation: variant map = data structure for storing meta data + + + + Invalid variant map UInt64 entry value length + Translation: variant map = data structure for storing meta data + + + + Invalid variant map entry type + Translation: variant map = data structure for storing meta data + + + + Invalid variant map field type size + Translation: variant map = data structure for storing meta data + + + + + Kdbx4Writer + + Invalid symmetric cipher algorithm. + + + + Invalid symmetric cipher IV size. + IV = Initialization Vector for symmetric cipher + + + + Unable to calculate database key: %1 + + + + Failed to serialize KDF parameters variant map + Translation comment: variant map = data structure for storing meta data + + + + + KdbxReader + + Invalid cipher uuid length: %1 (length=%2) + + + + Unable to parse UUID: %1 + + + + Unsupported cipher + + + + Invalid compression flags length + + + + Unsupported compression algorithm + + + + Invalid master seed size + + + + Invalid transform seed size + + + + Invalid transform rounds size + + + + Invalid start bytes size + + + + Invalid random stream id size + + + + Invalid inner random stream cipher + + + + Failed to read database file. + + + + The selected file is an old KeePass 1 database (.kdb). + +You can import it by clicking on Database > 'Import KeePass 1 database…'. +This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. + + + + Not a KeePass database. + S’është bazë të dhënash Keepass-i. + + + Unsupported KeePass 2 database version. + + + + + KdbxXmlReader + + XML parsing failure: %1 + + + + No root group + + + + XML error: +%1 +Line %2, column %3 + + + + Missing icon uuid or data + + + + Missing custom data key or value + + + + Multiple group elements + + + + Null group uuid + + + + Invalid group icon number + + + + Invalid EnableAutoType value + + + + Invalid EnableSearching value + + + + No group uuid found + + + + Null DeleteObject uuid + + + + Missing DeletedObject uuid or time + + + + Null entry uuid + + + + Invalid entry icon number + + + + History element in history entry + + + + No entry uuid found + + + + History element with different uuid + + + + Duplicate custom attribute found + + + + Entry string key or value missing + + + + Entry binary key or value missing + + + + Auto-type association window or sequence missing + + + + Invalid bool value + + + + Invalid date time value + + + + Invalid color value + + + + Invalid color rgb part + + + + Invalid number value + + + + Invalid uuid value + + + + Unable to decompress binary + Translator meant is a binary data inside an entry + + + + + KeeAgentSettings + + Invalid KeeAgent settings file structure. + + + + Private key is an attachment but no attachments provided. + + + + Private key is empty + + + + File too large to be a private key + + + + Failed to open private key + + + + + KeePass1OpenWidget + + Import KeePass1 Database + Importo Bazë të Dhënash Keepass 1 + + + Unable to open the database. + S’arrihet të hapet baza e të dhënave. + + + + KeePass1Reader + + Unable to read keyfile. + S’arrihet të lexohet kartelë kyçesh. + + + Not a KeePass database. + S’është bazë të dhënash Keepass-i. + + + Unsupported encryption algorithm. + + + + Unsupported KeePass database version. + + + + Unable to read encryption IV + IV = Initialization Vector for symmetric cipher + + + + Invalid number of groups + + + + Invalid number of entries + + + + Invalid content hash size + + + + Invalid transform seed size + + + + Invalid number of transform rounds + + + + Unable to construct group tree + + + + Root + + + + Unable to calculate database key + + + + unable to seek to content position + + + + Invalid credentials were provided, please try again. +If this reoccurs, then your database file may be corrupt. + + + + Key transformation failed + + + + Invalid group field type number + + + + Invalid group field size + + + + Read group field data doesn't match size + + + + Incorrect group id field size + + + + Incorrect group creation time field size + + + + Incorrect group modification time field size + + + + Incorrect group access time field size + + + + Incorrect group expiry time field size + + + + Incorrect group icon field size + + + + Incorrect group level field size + + + + Invalid group field type + + + + Missing group id or level + + + + Missing entry field type number + + + + Invalid entry field size + + + + Read entry field data doesn't match size + + + + Invalid entry UUID field size + + + + Invalid entry group id field size + + + + Invalid entry icon field size + + + + Invalid entry creation time field size + + + + Invalid entry modification time field size + + + + Invalid entry expiry time field size + + + + Invalid entry field type + + + + + KeeShare + + Invalid sharing reference + + + + Inactive share %1 + + + + Imported from %1 + Importuar nga %1 + + + Exported to %1 + + + + Synchronized with %1 + + + + Import is disabled in settings + + + + Export is disabled in settings + + + + Inactive share + + + + Imported from + + + + Exported to + + + + Synchronized with + + + + + KeyComponentWidget + + Key Component + Përbërës Kyçi + + + Key Component Description + Përshkrim Përbërësi Kyçi + + + Cancel + Anuloje + + + Key Component set, click to change or remove + Përbërësi i Kyçit u ujdis, klikoni për ta ndryshuar, ose hequr + + + + KeyFileEditWidget + + Generate a new key file + + + + Generate + Prodhoje + + + Generate a new key file or choose an existing one to protect your database. + + + + Note: Do NOT use a file that may change as that will prevent you from unlocking your database. + + + + Browse for key file + Shfletoni për kartelë kyçi + + + Browse… + Shfletoni… + + + Old key file format + Format i vjetër kartele kyçi + + + You selected a key file in an old format which KeePassXC<br>may stop supporting in the future.<br><br>Please consider generating a new key file instead. + + + + Error loading the key file '%1' +Message: %2 + + + + Key File + Kartelë Kyçi + + + Add Key File + Shtoni Kartelë Kyçi + + + Change Key File + Ndryshoni Kartelë Kyçi + + + Remove Key File + Hiqni Kartelë Kyçi + + + Key File set, click to change or remove + + + + <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out.</p> + + + + Key files + Kartela kyçesh + + + All files + Krejt kartelat + + + Create Key File… + Krijoni Kartelë Kyçi… + + + Error creating key file + Gabim krijimi kartele kyçi + + + Unable to create key file: %1 + + + + Select a key file + Përzgjidhni kartelë kyçi + + + Invalid Key File + Kartelë e Pavlefshme Kyçi + + + You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. + + + + Suspicious Key File + Kartelë Kyçi e Dyshimtë + + + The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. +Are you sure you want to continue with this file? + + + + + MacUtils + + Invalid key code + Kod i pavlefshëm kyçi + + + Global shortcut already registered to %1 + Shkurtore globale e regjistruar tashmë te %1 + + + Could not register global shortcut + S’u regjistrua dot shkurtore globale + + + + MainWindow + + &Database + + + + &Recent Databases + + + + &Import + + + + &Export + + + + &Help + + + + &Entries + + + + Copy Att&ribute + + + + TOTP + TOTP + + + &Groups + &Grupe + + + &Tools + &Mjete + + + View + Shihni + + + Theme + Temë + + + &Quit + + + + &About + &Mbi + + + &Check for Updates + + + + &Open Database… + + + + &Save Database + + + + &Close Database + + + + &New Database… + + + + Create a new database + + + + &Merge From Database… + + + + Merge from another KDBX database + + + + &New Entry… + + + + Add a new entry + Shtoni zë të ri + + + &Edit Entry… + + + + View or edit entry + Shihni ose përpunoni zë + + + &Delete Entry… + + + + &New Group… + + + + Add a new group + + + + &Edit Group… + + + + &Delete Group… + + + + Download All &Favicons… + + + + Sort &A-Z + + + + Sort &Z-A + + + + Sa&ve Database As… + + + + Database &Security… + + + + Database &Reports… + + + + Statistics, health check, etc. + + + + &Database Settings… + + + + Database settings + Rregullime baze të dhënash + + + &Clone Entry… + + + + Move u&p + + + + Move entry one step up + + + + Move do&wn + + + + Move entry one step down + + + + Copy &Username + + + + Copy username to clipboard + + + + Copy &Password + + + + Copy password to clipboard + Kopjoje fjalëkalimin në të papastër + + + &Settings + + + + &Password Generator + + + + Perform &Auto-Type + + + + Download &Favicon + + + + Open &URL + + + + &Lock Database + + + + Lock &All Databases + + + + &Title + + + + Copy title to clipboard + + + + Copy URL to clipboard + + + + &Notes + + + + Copy notes to clipboard + + + + &CSV File… + + + + &HTML File… + + + + KeePass 1 Database… + + + + Import a KeePass 1 database + + + + 1Password Vault… + + + + Import a 1Password Vault + + + + CSV File… + + + + Import a CSV file + + + + Show TOTP + + + + Show QR Code + Shfaq kod QR + + + Set up TOTP… + Ujdisni TOTP… + + + Copy &TOTP + Kopjo &TOTP + + + E&mpty recycle bin + &Zbraz koshin e hedhurinave + + + &Donate + &Dhuroni + + + Report a &Bug + Njofto një të &Metë + + + &Getting Started + &Si T’ia Fillohet + + + Open Getting Started Guide + Hap Udhërrëfyes Si T’ia Fillohet + + + &Online Help + Ndihmë Në &Internet + + + Go to online documentation + Kalo te dokumentimi në internet + + + &User Guide + &Udhërrëfyes Përdoruesi + + + Open User Guide + Hap Udhërrëfyes Përdoruesi + + + &Keyboard Shortcuts + Shkurtore &Tastiere + + + Save Database Backup… + Ruani Kopjeruajtje Baze të Dhënash… + + + Add key to SSH Agent + Shtoni kyç te Agjent SSH + + + Remove key from SSH Agent + Hiqni kyç nga Agjent SSH + + + Compact Mode + Mënyra Kompakte + + + Automatic + + + + Light + E çelët + + + Dark + E errët + + + Classic (Platform-native) + + + + Show Toolbar + Shfaq Panel + + + Show Preview Panel + Shfaq Panel Paraparjesh + + + Always on Top + Përherë në Krye + + + Hide Usernames + Fshihi Emrat e Përdoruesve + + + Hide Passwords + Fshihi Fjalëkalimet + + + Clone Group... + Klononi Grup… + + + Clear history + Spastroje historikun + + + Access error for config file %1 + Gabim hyrjeje në kartelë formësimi %1 + + + Don't show again for this version + Mos e shfaq më për këtë version + + + WARNING: You are using an unstable build of KeePassXC. +There is a high risk of corruption, maintain a backup of your databases. +This version is not meant for production use. + + + + NOTE: You are using a pre-release version of KeePassXC. +Expect some bugs and minor issues, this version is meant for testing purposes. + + + + WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard. +We recommend you use the AppImage available on our downloads page. + + + + Restore Entry(s) + + + + Settings + Rregullime + + + Check for updates on startup? + Të kontrollohet për përditësime gjatë nisjes? + + + Would you like KeePassXC to check for updates on startup? + + + + You can always check for updates manually from the application menu. + + + + Toggle window + Hap/Mbyll dritare + + + Quit KeePassXC + Mbylle KeePassXC-ën + + + Please present or touch your YubiKey to continue… + + + + Restart Application? + Të riniset Aplikacioni? + + + You must restart the application to apply this setting. Would you like to restart now? + + + + Tags + Etiketa + + + No Tags + Pa Etiketa + + + %1 Entry(s) + %1 Zë%1 Zë + + + Copy Password and TOTP + + + + &XML File… + Kartelë &XML… + + + XML File… + Kartelë XML… + + + Copy &URL + + + + Allow Screen Capture + + + + + ManageDatabase + + Database settings + Rregullime baze të dhënash + + + Edit database settings + Përpunoni rregullime baze të dhënash + + + Unlock database + Shkyçe bazën e të dhënave + + + Unlock database to show more information + Që të shfaqen më tepër hollësi, shkyçni bazën e të dhënave + + + Lock database + Kyçe bazën e të dhënave + + + + ManageSession + + Disconnect + Shkëpute + + + Disconnect this application + Shkëpute këtë aplikacion + + + Reset + + + + Reset any remembered decisions for this application + + + + + Merger + + Creating missing %1 [%2] + + + + Relocating %1 [%2] + + + + Overwriting %1 [%2] + Po mbishkruhet %1 [%2] + + + older entry merged from database "%1" + + + + Adding backup for older target %1 [%2] + + + + Adding backup for older source %1 [%2] + + + + Reapplying older target entry on top of newer source %1 [%2] + + + + Reapplying older source entry on top of newer target %1 [%2] + + + + Synchronizing from newer source %1 [%2] + + + + Synchronizing from older source %1 [%2] + + + + Deleting child %1 [%2] + + + + Deleting orphan %1 [%2] + + + + Changed deleted objects + + + + Adding missing icon %1 + + + + Removed custom data %1 [%2] + + + + Adding custom data %1 [%2] + + + + + NewDatabaseWizard + + Create a new KeePassXC database… + Krijoni bazë të re të dhënash KeePassXC… + + + Root + Root group + + + + + NewDatabaseWizardPage + + WizardPage + + + + Encryption Settings + Rregullime Fshehtëzimi + + + Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. + + + + Advanced Settings + Rregullime të Mëtejshme + + + Simple Settings + Rregullime Bazë + + + + NewDatabaseWizardPageDatabaseKey + + Database Credentials + Kredenciale Baze të Dhënash + + + A set of credentials known only to you that protects your database. + + + + + NewDatabaseWizardPageEncryption + + Encryption Settings + Rregullime Fshehtëzimi + + + Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. + + + + + NewDatabaseWizardPageMetaData + + General Database Information + Hollësi të Përgjithshme Baze të Dhënash + + + Please fill in the display name and an optional description for your new database: + + + + + NixUtils + + Password Manager + Përgjegjës Fjalëkalimesh + + + Global shortcut already registered to %1 + Shkurtore globale e regjistruar tashmë te %1 + + + Could not register global shortcut + S’u regjistrua dot shkurtore globale + + + + OpData01 + + Invalid OpData01, does not contain header + + + + Unable to read all IV bytes, wanted 16 but got %1 + + + + Unable to init cipher for opdata01: %1 + + + + Unable to read all HMAC signature bytes + + + + Malformed OpData01 due to a failed HMAC + + + + Unable to process clearText in place + + + + Expected %1 bytes of clear-text, found %2 + + + + + OpVaultOpenWidget + + Read Database did not produce an instance +%1 + + + + + OpVaultReader + + Directory .opvault must exist + Drejtoria .opvault duhet të ekzistojë + + + Directory .opvault must be readable + Drejtoria .opvault duhet të jetë e lexueshme + + + Directory .opvault/default must exist + Drejtoria .opvault/default duhet të ekzistojë + + + Directory .opvault/default must be readable + + + + Unable to decode masterKey: %1 + + + + Unable to derive master key: %1 + + + + + OpenSSHKey + + Invalid key file, expecting an OpenSSH key + + + + PEM boundary mismatch + + + + Base64 decoding failed + + + + Key file way too small. + Kartelë kyçi tejet e vockël. + + + Key file magic header id invalid + + + + Found zero keys + + + + Failed to read public key. + + + + Corrupted key file, reading private key failed + + + + Unsupported key type: %1 + Lloj i pambuluar kyçesh: %1 + + + No private key payload to decrypt + + + + Unknown cipher: %1 + Shifër e panjohur: %1 + + + Passphrase is required to decrypt this key + + + + Key derivation failed: %1 + + + + Cipher IV is too short for MD5 kdf + Shifra IV është shumë e shkurtër për fdk MD5 + + + Unknown KDF: %1 + FDK i panjohur: %1 + + + Failed to initialize cipher: %1 + S’u arrit të gatitej shifra: %1 + + + Decryption failed: %1 + Fshehtëzimi dështoi: %1 + + + Decryption failed, wrong passphrase? + Fshehtëzimi dështoi, frazëkalim i gabuar? + + + Unexpected EOF while reading key + EOF i papritur teksa lexohej kyçi + + + Unsupported key part + Pjesë kyçi që s’mbulohet + + + Unexpected EOF while reading public key + EOF i papritur teksa lexohej kyç publik + + + Unknown key type: %1 + Lloj i panjohur kyçi: %1 + + + Unexpected EOF while reading private key + EOF i papritur teksa lexohej kyç privat + + + Can't write public key as it is empty + + + + Unexpected EOF when writing public key + + + + Can't write private key as it is empty + + + + Unexpected EOF when writing private key + + + + AES-256/GCM is currently not supported + AES-256/GCM hëpërhë s’mbulohet + + + + PasswordEditWidget + + Enter password: + Jepni fjalëkalim: + + + Password field + Fushë fjalëkalimi + + + Confirm password: + Ripohoni fjalëkalimin: + + + Repeat password field + Fushë përsëritjeje fjalëkalimi + + + Password + Fjalëkalim + + + Add Password + Shtoni Fjalëkalim + + + Change Password + Ndryshoni Fjalëkalimin + + + Remove Password + Hiqe Fjalëkalimin + + + Password set, click to change or remove + Fjalëkalimi u caktua, klikoni që ta ndryshoni, ose hiqni + + + <p>A password is the primary method for securing your database.</p><p>Good passwords are long and unique. KeePassXC can generate one for you.</p> + + + + Passwords do not match. + Fjalëkalimet s’përputhen. + + + + PasswordGeneratorWidget + + Generate Password + Prodho Fjalëkalimin + + + strength + Password strength + fortësi + + + entropy + entropi + + + Generated password + Fjalëkalim i prodhuar + + + %p% + %p% + + + Regenerate password + Riprodho fjalëkalimin + + + Copy password + Kopjo fjalëkalimin + + + Password + Fjalëkalim + + + &Length: + &Gjatësi: + + + Password length + Gjatësi fjalëkalimi + + + Switch to advanced mode + Kaloni nën mënyrën e thelluar + + + Advanced + E thelluar + + + Character Types + Lloje Shenjash + + + Special characters + Shenja speciale + + + Quotes + Citime + + + Punctuation + Pikësim + + + Dashes and Slashes + Vija ndarëse dhe Pjerrake + + + Upper-case letters + Shkronja të mëdha + + + Numbers + Numra + + + Lower-case letters + Shkronja të vogla + + + Math Symbols + Simbole Matematike + + + Extended ASCII + ASCII e Zzgjeruar + + + Braces + Kllapa + + + Do not include: + Mos përfshi: + + + Additional characters to use for the generated password + + + + Additional characters + Shenja shtesë + + + Add non-hex letters to "do not include" list + + + + Hex Passwords + Fjalëkalime Gjashtëmbëdhjetësh + + + Hex + Gjashtëmbëdhjetësh + + + Character set to exclude from generated password + + + + Excluded characters + Shenja të përjashtuara + + + Also choose from: + Zgjidh edhe prej: + + + Exclude look-alike characters + Përjashto shenja të ngjashme + + + Pick characters from every group + + + + Passphrase + Frazëkalim + + + Word Separator: + Ndarës Fjalësh: + + + Wordlist: + + + + Word Count: + Numër Fjalësh: + + + Character Count: + Numër Shenjash: + + + Word Case: + + + + Delete selected wordlist + Fshi listë të përzgjedhur fjalësh + + + Add custom wordlist + Shtoni listë vetjake fjalësh + + + character + shenjë + + + Close + Mbylle + + + Esc + Esc + + + Apply Password + Apliko Fjalëkalimin + + + Regenerate password (%1) + Riprodho fjalëkalimin (%1) + + + lower case + të vogla + + + UPPER CASE + TË MËDHA + + + Title Case + + + + (SYSTEM) + (SISTEM) + + + Entropy: %1 bit + Entropi: %1 bit + + + Confirm Delete Wordlist + Ripohoni Fshirje Liste Fjalësh + + + Do you really want to delete the wordlist "%1"? + Doni vërtet të fshihet lista e fjalëve “%1â€? + + + Failed to delete wordlist + S’u arrit të fshihet listë fjalësh + + + Wordlists + Lista fjalësh + + + All files + Tërë kartelat + + + Select Custom Wordlist + Përzgjidhni Listë Vetjake Fjalësh + + + Overwrite Wordlist? + Të mbishkruhet Listë Fjalësh? + + + Wordlist "%1" already exists as a custom wordlist. +Do you want to overwrite it? + + + + Failed to add wordlist + S’u arrit të shtohet listë fjalësh + + + Logograms + + + + Special Characters + Shenja Speciale + + + Password Quality: %1 + Cilësi Fjalëkalimesh: %1 + + + Poor + Password quality + Shumë i dobët + + + Weak + Password quality + I dobët + + + Good + Password quality + + + + Excellent + Password quality + + + + Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" + + + + + PasswordWidget + + Passwords do not match + Fjalëkalimet s’përputhen + + + Passwords match so far + Fjalëkalimet përputhen deri këtu + + + Toggle Password (%1) + + + + Generate Password (%1) + Prodhoje Fjalëkalimin (%1) + + + Warning: Caps Lock enabled! + Kujdes: Caps Lock aktiv! + + + Quality: %1 + Cilësi: %1 + + + Poor + Password quality + Shumë i dobët + + + Weak + Password quality + I dobët + + + Good + Password quality + + + + Excellent + Password quality + + + + Toggle password visibilty using Control + H. Open the password generator using Control + G. + + + + + PickcharsDialog + + KeePassXC - Pick Characters + KeePassXC - Zgjidhni Shenja + + + Select characters to type, navigate with arrow keys, Ctrl + S submits. + + + + Press &Tab between characters + Shtypni tastin &Tab mes shenjave + + + + QMessageBox + + Overwrite + Mbishkruaje + + + Delete + Fshije + + + Move + Lëvizeni + + + Empty + I zbrazët + + + Remove + Hiqe + + + Skip + Anashkaloje + + + Disable + Çaktivizoje + + + Merge + Përzieji + + + Continue + Vazhdo + + + + QObject + + Database not opened + Bazë të dhënash jo e hapur + + + Database hash not available + S’ka hash baze të dhënash + + + Client public key not received + S’u mor kyç publik klienti + + + Cannot decrypt message + S’shfshehtëzohet dot mesazhi + + + Action cancelled or denied + Veprimi u anulua, ose s’u pranua + + + Message encryption failed. + Fshehtëzimi i mesazhit dështoi. + + + KeePassXC association failed, try again + + + + Encryption key is not recognized + Kyçi i fshehtëzimit s’njihet + + + Incorrect action + Veprim i pavlefshëm + + + Empty message received + U mor mesazh i zbrazët + + + No URL provided + S’u dha URL + + + No logins found + S’u gjetën kredenciale hyrjesh + + + No groups found + S’u gjetën grupe + + + Cannot create new group + S’mund të krijohet grup i ri + + + No valid UUID provided + S’u dha UUID i vlefshëm + + + Unknown error + Gabim i panjohur + + + Browser Integration + Integrim Shfletuesi + + + Browser Plugin Failure + Dështim Shtojce Shfletuesi + + + Could not save the native messaging script file for %1. + + + + Username for the entry. + Emër përdoruesi për zërin.Zë + + + username + emër përdoruesi + + + URL for the entry. + URL për zërin. + + + URL + URL + + + Notes for the entry. + Shënime mbi zërin. + + + Notes + Shënime + + + Prompt for the entry's password. + Kërko fjalëkalimin e zërit. + + + Generate a password for the entry. + Prodho një fjalëkalim për zërin. + + + Add a new entry to a database. + Shtoni një zë të ri te një bazë të dhënash. + + + Path of the entry to add. + Shteg zëri për t’u shtuar. + + + Cannot generate a password and prompt at the same time. + + + + Could not create entry with path %1. + S’u krijua dot zë me shteg %1. + + + Enter password for new entry: + Jepni fjalëkalim për zë të ri: + + + Writing the database failed %1. + Shkrimi i bazës së të dhënave dështoi %1. + + + Successfully added entry %1. + + + + Adds a new group to a database. + + + + Path of the group to add. + Shteg grupi për t’u shtuar. + + + Group %1 already exists! + Grupi %1 ekziston tashmë! + + + Group %1 not found. + S’u gjet grupi %1. + + + Successfully added group %1. + Grupi %1 u shtua me sukses. + + + Check if any passwords have been publicly leaked. FILENAME must be the path of a file listing SHA-1 hashes of leaked passwords in HIBP format, as available from https://haveibeenpwned.com/Passwords. + + + + FILENAME + EMËR KARTELE + + + Path to okon-cli to search a formatted HIBP file + + + + okon-cli + okon-cli + + + Analyze passwords for weaknesses and problems. + + + + Cannot find HIBP file: %1 + S’gjendet dot kartelë HIBP: %1 + + + Evaluating database entries using okon… + + + + Failed to open HIBP file %1: %2 + S’u arrit të hapej kartelë HIBP %1: %2 + + + Evaluating database entries against HIBP file, this will take a while… + + + + Password for '%1' has been leaked %2 time(s)! + + + + Password for '%1' has been leaked! + + + + Export an attachment of an entry. + Eksportoni një bashkëngjitje të një zëri. + + + Path of the entry with the target attachment. + Shteg i zërit me bashkëngjitjen e synuar. + + + Name of the attachment to be exported. + Emër i bashkëngjitjes për t’u eksportuar. + + + Path to which the attachment should be exported. + + + + Could not find entry with path %1. + + + + Could not find attachment with name %1. + S’u gjet dot bashkëngjitje me emrin %1. + + + No export target given. Please use '--stdout' or specify an 'export-file'. + + + + Could not open output file %1. + + + + Successfully exported attachment %1 of entry %2 to %3. + + + + Overwrite existing attachments. + Mbishkruaj bashkëngjitje ekzistuese. + + + Imports an attachment to an entry. + Importon një bashkëngjitje te një zë. + + + Path of the entry. + Shteg i zërit. + + + Name of the attachment to be added. + Emër i bashkëngjitjes për t’u shtuar. + + + Path of the attachment to be imported. + Shteg i bashkëngjitjes për t’u importuar. + + + Attachment %1 already exists for entry %2. + Bashkëngjitja %1 ekziston tashmë për zërin %2. + + + Could not open attachment file %1. + S’u hap dot kartela bashkëngjitje %1. + + + Successfully imported attachment %1 as %2 to entry %3. + + + + Remove an attachment of an entry. + Hiqni një bashkëngjitje të një zëri. + + + Name of the attachment to be removed. + Emër i bashkëngjitjes për t’u hequr. + + + Successfully removed attachment %1 from entry %2. + + + + Copy the given attribute to the clipboard. Defaults to "password" if not specified. + Don't translate "password", it refers to the attribute. + + + + Copy the current TOTP to the clipboard (equivalent to "-a totp"). + + + + Must match only one entry, otherwise a list of possible matches is shown. + + + + Copy an entry's attribute to the clipboard. + Kopjo në të papastër atributin e një zëri. + + + Path of the entry to clip. + clip = copy to clipboard + + + + Timeout before clearing the clipboard (default is %1 seconds, set to 0 for unlimited). + + + + Invalid timeout value %1. + Vlerë e pavlefshme mbarimi kohe %1. + + + Multiple entries matching: + Përputhje me një numër zërash: + + + Using matching entry: %1 + Po përdoret zëri me përputhjes: %1 + + + Entry %1 not found. + S’u gjet zëri %1. + + + ERROR: Please specify one of --attribute or --totp, not both. + + + + Entry with path %1 has no TOTP set up. + + + + ERROR: attribute %1 is ambiguous, it matches %2. + + + + Attribute "%1" not found. + S’u gjet atribut “%1â€. + + + Entry's "%1" attribute copied to the clipboard! + Atributi i zërit “%1†u kopjua te e papastra! + + + Clearing the clipboard in %1 second(s)... + Po spastrohet e papastra pas %1 sekonde…Po spastrohet e papastra pas %1 sekondash… + + + Clipboard cleared! + E papastra u spastrua! + + + Close the currently opened database. + Mbylle bazën e të dhënash aktualisht të hapur. + + + Display this help. + Shfaq këtë ndihmë. + + + Silence password prompt and other secondary outputs. + + + + Key file of the database. + Kartelë kyçi i bazës së të dhënave. + + + path + shteg + + + Deactivate password key for the database. + Çaktivizo kyç fjalëkalimi për bazën e të dhënave. + + + Yubikey slot and optional serial used to access the database (e.g., 1:7370001). + + + + slot[:serial] + + + + Missing positional argument(s). + Mungon argument(e) pozicional. + + + Too many arguments provided. + U dhanë shumë argumente. + + + Target decryption time in MS for the database. + + + + time + kohë + + + Set the key file for the database. + Caktoni kartelën e kyçit për bazën e të dhënave. + + + Set a password for the database. + Caktoni një fjalëkalim për bazën e të dhënave. + + + Create a new database. + Krijoni bazë të re të dhënash. + + + Path of the database. + Shteg i bazës së të dhënave. + + + Invalid decryption time %1. + Kohë e pavlefshme shfshehtëzimi %1. + + + Target decryption time must be between %1 and %2. + + + + Failed to set database password. + S’u arrit të caktohet fjalëkalim baze të dhënash. + + + Loading the key file failed + Dështoi ngarkimi i kartelës së kyçit + + + No key is set. Aborting database creation. + + + + Benchmarking key derivation function for %1ms delay. + + + + Setting %1 rounds for key derivation function. + + + + error while setting database key derivation settings. + + + + File %1 already exists. + Kartela %1 ekziston tashmë. + + + Failed to save the database: %1. + S’u arrit të ruhej baza e të dhënave: %1. + + + Successfully created new database. + U krijua me sukses bazë e re të dhënash. + + + Word count for the diceware passphrase. + + + + count + CLI parameter + numër + + + Wordlist for the diceware generator. +[Default: EFF English] + + + + Generate a new random diceware passphrase. + + + + Invalid word count %1 + Numër i pavlefshëm fjalësh %1 + + + The word list is too small (< 1000 items) + + + + Title for the entry. + Titull për zërin. + + + title + titull + + + Edit an entry. + Përpunoni një zë. + + + Path of the entry to edit. + Shteg i zërit për t’u përpunuar. + + + Not changing any field for entry %1. + + + + Enter new password for entry: + Jepni fjalëkalim të ri për zërin: + + + Writing the database failed: %1 + Shkrimi te baza e të dhënave dështoi: %1 + + + Successfully edited entry %1. + Zëri %1 u përpunua me sukses. + + + Perform advanced analysis on the password. + Kryeni analizë të thelluar mbi fjalëkalimin. + + + Password for which to estimate the entropy. + + + + Estimate the entropy of a password. + Vlerësoni entropinë e një fjalëkalimi. + + + Length %1 + Gjatësi %1 + + + Entropy %1 + Entropi %1 + + + Log10 %1 + Log10 %1 + + + Multi-word extra bits %1 + + + + Type: Bruteforce + + + + Type: Dictionary + Lloj: Fjalorth + + + Type: Dict+Leet + + + + Type: User Words + Lloj: Fjalë Përdoruesi + + + Type: User+Leet + + + + Type: Repeated + Lloj : I përsëritur + + + Type: Sequence + Lloj: Sekuencë + + + Type: Spatial + Lloj: Hapësinore + + + Type: Date + Lloj: Datë + + + Type: Bruteforce(Rep) + + + + Type: Dictionary(Rep) + + + + Type: Dict+Leet(Rep) + + + + Type: User Words(Rep) + + + + Type: User+Leet(Rep) + + + + Type: Repeated(Rep) + + + + Type: Sequence(Rep) + + + + Type: Spatial(Rep) + + + + Type: Date(Rep) + + + + Type: Unknown (%1) + Lloj: I panjohur (%1) + + + Entropy %1 (%2) + Entropi %1 (%2) + + + *** Password length (%1) != sum of length of parts (%2) *** + + + + Exit interactive mode. + Dil nga mënyra me ndërveprim + + + Format to use when exporting. Available choices are 'xml' or 'csv'. Defaults to 'xml'. + + + + Exports the content of a database to standard output in the specified format. + + + + Unable to export database to XML: %1 + S’arrihet të eksportohet bazë të dhënash në XML: %1 + + + Unsupported format %1 + Format %1 i pambuluar + + + Length of the generated password + Gjatësi e fjalëkalimit të prodhuar + + + length + gjatësi + + + Use lowercase characters + Përdorni shenja me të vogla + + + Use uppercase characters + Përdorni shenja me të mëdhaja + + + Use numbers + Përdor numra + + + Use special characters + Përdor shenja speciale + + + Use extended ASCII + Përdor ASCII të zgjeruar + + + Exclude character set + + + + chars + shenja + + + Use custom character set + Përdorni shkronja të përshtatura + + + Exclude similar looking characters + Përjashto shenja që janë të ngjashme + + + Include characters from every selected group + + + + Generate a new random password. + Prodho një fjalëkalim të ri kuturu. + + + Invalid password length %1 + Gjatësi %1 e pavlefshme fjalëkalimi + + + Invalid password generator after applying all options + + + + Display command help. + Shfaq ndihmë urdhri. + + + Available commands: + Urdhra të gatshëm: + + + Import the contents of an XML database. + + + + Path of the XML database export. + + + + Path of the new database. + Shteg i bazës së re të të dhënave. + + + Unable to import XML database: %1 + S’arrihet të importohet bazë të dhënash XML: %1 + + + Successfully imported database. + U importua me sukses bazë të dhënash. + + + Show a database's information. + Shfaq hollësi të një baze të dhënash + + + UUID: + UUID: + + + Name: + Emër: + + + Description: + Përshkrim: + + + Cipher: + Shifër: + + + KDF: + FDK: + + + Recycle bin is enabled. + Koshi i hedhurinave është aktivizuar. + + + Recycle bin is not enabled. + Koshi i hedhurinave s’është aktivizuar. + + + Location + Vendndodhje + + + Database created + Baza e të dhënave u krijua + + + Last saved + + + + Unsaved changes + Ndryshime të paruajtura + + + yes + po + + + no + jo + + + Number of groups + Numër grupesh + + + Number of entries + Numër zërash + + + Number of expired entries + Numër zërash të skaduar + + + Unique passwords + Fjalëkalime unikë + + + Non-unique passwords + Fjalëkalime jo unikë + + + Maximum password reuse + Maksimum ripërdorimi fjalëkalimi + + + Number of short passwords + Numër fjalëkalimesh të shkurtër + + + Number of weak passwords + Numër fjalëkalimet të dobët + + + Entries excluded from reports + Zëra të përjashtuar nga raporte + + + Average password length + Gjatësi mesatare fjalëkalimesh + + + %1 characters + %1 shenja + + + Unknown command %1 + Urdhër %1 i panjohur + + + + +Available commands: + + + +Urdhra të gatshëm: + + + + Name of the command to execute. + Emër i urdhrit që duhet përmbushur. + + + Displays debugging information. + Shfaq të dhëna diagnostikimi. + + + Invalid command %1. + Urdhër %1 i pavlefshëm. + + + Recursively list the elements of the group. + Paraqit në mënyrë rekursive elementët e grupit. + + + Flattens the output to single lines. + + + + List database entries. + Paraqit zëra baze të dhënash. + + + Path of the group to list. Default is / + Shteg për te grupi për paraqitje. Parazgjedhja është / + + + Cannot find group %1. + S’gjendet dot grupi %1. + + + Use the same credentials for both database files. + + + + Key file of the database to merge from. + Kartelë kyçesh i bazës së të dhënave prej nga të bëhet përzierja. + + + Deactivate password key for the database to merge from. + + + + Only print the changes detected by the merge operation. + + + + Yubikey slot for the second database. + + + + slot + + + + Merge two databases. + Përzieji dy bazat e të dhënave. + + + Path of the database to merge from. + Shteg i bazës së të dhënave prej nga të përzihet. + + + Error reading merge file: +%1 + Gabim gjatë leximit të kartelës përzierje: +%1 + + + Unable to save database to file : %1 + S’arrihet të ruhet bazë të dhënash te kartelë: %1 + + + Successfully merged %1 into %2. + %1 u përzje me sukses te %2. + + + Database was not modified by merge operation. + Baza e të dhënave s’u ndryshua nga veprimi i përzierjes. + + + Moves an entry to a new group. + E kalon një zë te një grup i ri. + + + Path of the entry to move. + Shteg i zërit për t’u lëvizur. + + + Path of the destination group. + Shteg i grupit vendmbërritje. + + + Could not find group with path %1. + S’u gjet dot grup me shtegun %1. + + + Entry is already in group %1. + Zëri gjendet tashmë te grupi %1. + + + Successfully moved entry %1 to group %2. + Zëri %1 u shpu me sukses te grupi %2. + + + Open a database. + Hap një bazë të dhënash. + + + Path of the entry to remove. + Shteg i zërit për t’u hequr. + + + Unable to save database to file: %1 + S’arrihet të ruhet bazë të dhënash te kartelë: %1 + + + Successfully recycled entry %1. + Zëri %1 u riciklua me sukses. + + + Successfully deleted entry %1. + Zëri %1 u fshi me sukses. + + + Path of the group to remove. + Shteg i grupit për t’u hequr. + + + Cannot remove root group from database. + + + + Successfully recycled group %1. + Grupi %1 u riciklua me sukses. + + + Successfully deleted group %1. + Grupi %1 u fshi me sukses. + + + Find entries quickly. + Gjeni shpejt zëra. + + + Search term. + Term kërkimi. + + + Show the entry's current TOTP. + Shfaq TOTP aktual të zërit. + + + Show the protected attributes in clear text. + + + + Show the attachments of the entry. + Shfaq bashkëngjitjen e zërit. + + + Names of the attributes to show. This option can be specified more than once, with each attribute shown one-per-line in the given order. If no attributes are specified, a summary of the default attributes is given. + + + + attribute + atribut + + + Show an entry's information. + Shfaqe hollësitë e një zëri. + + + Name of the entry to show. + Emër i zërit për t’u shfaqur. + + + ERROR: unknown attribute %1. + GABIM: atribut i panjohur %1. + + + No attachments present. + Pa bashkëngjitje të pranishme. + + + Attachments: + Bashkëngjitje: + + + Failed to open database file %1: not found + S’u arrit të hapej kartelë baze të dhënash %1: s’u gjet + + + Failed to open database file %1: not a plain file + S’u arrit të hapej kartelë baze të dhënash %1: jo kartelë e thjeshtë + + + Failed to open database file %1: not readable + S’u arrit të hapej kartelë baze të dhënash %1: jo e lexueshme + + + Enter password to unlock %1: + Që të shkyçet %1, jepni fjalëkalimin: + + + Failed to load key file %1: %2 + S’u arrit të ngarkohej kartelë kyçi %1: %2 + + + WARNING: You are using an old key file format which KeePassXC may +stop supporting in the future. + +Please consider generating a new key file. + + + + Invalid YubiKey slot %1 + + + + Invalid YubiKey serial %1 + + + + Enter password to encrypt database (optional): + Jepni fjalëkalim që të fshehtëzohet bazë të dhënash (opsionale): + + + Do you want to create a database with an empty password? [y/N]: + + + + Repeat password: + Rijepeni fjalëkalimin: + + + Error: Passwords do not match. + Gabim: Fjalëkalimet s’përputhen. + + + No program defined for clipboard manipulation + + + + All clipping programs failed. Tried %1 + + + + + Creating KeyFile %1 failed: %2 + + + + Loading KeyFile %1 failed: %2 + + + + HIBP file, line %1: parse error + + + + To use okon, you must provide a post-processed file (e.g. file.okon) + + + + Could not start okon process: %1 + S’u nis dot proces okon: %1 + + + Error: okon process did not finish + + + + Failed to load okon processed database: %1 + + + + Very weak password + Fjalëkalim shumë i dobët + + + Password entropy is %1 bits + Entropia e fjalëkalimit është %1 bite + + + Weak password + Fjalëkalim i dobët + + + Used in %1/%2 + + + + Password is used %1 time(s) + Fjalëkalimi është përdorur %1 herëFjalëkalimi është përdorur %1 herë + + + Password has expired + Fjalëkalimi ka skaduar + + + Password expiry was %1 + Data e skadimit të fjalëkalimit qe %1 + + + Password expires on %1 + Fjalëkalimi skadon më %1 + + + Password is about to expire + Fjalëkalimi edhe pak edhe skadon + + + Password expires in %1 day(s) + Fjalëkalim skadon pas %1 ditëFjalëkalim skadon pas %1 ditë + + + Password will expire soon + Fjalëkalimi do të skadojë së shpejti + + + Version %1 + Version %1 + + + Build Type: %1 + + + + Revision: %1 + Rishikim: %1 + + + Distribution: %1 + + + + Debugging mode is disabled. + Mënyra diagnostikim është e çaktivizuar. + + + Debugging mode is enabled. + Mënyra diagnostikim është e aktivizuar. + + + Operating system: %1 +CPU architecture: %2 +Kernel: %3 %4 + + + + Auto-Type + Vetë-Shtypje + + + SSH Agent + Agjent SSH + + + KeeShare + + + + YubiKey + YubiKey + + + Quick Unlock + Shkyçje e Shpejtë + + + Secret Service Integration + Integrim Shërbimi të Fshehtash + + + None + Asnjë + + + Enabled extensions: + Zgjerime të aktivizuara: + + + over %1 year(s) + mbi %1 vitmbi %1 vjet + + + about %1 month(s) + mbi %1 muajmbi %1 muaj + + + %1 week(s) + %1 javë%1 javë + + + %1 day(s) + %1 ditë%1 ditë + + + %1 hour(s) + %1 orë%1 orë + + + %1 minute(s) + %1 minutë%1 minuta + + + Botan library must be at least %1, found %2.%3.%4 + + + + Cryptographic libraries: + Biblioteka kriptografike: + + + AES (%1 rounds) + AES (%1 raunde) + + + Argon2%1 (%2 rounds, %3 KB) + + + + SymmetricCipher::init: Invalid cipher mode. + + + + SymmetricCipher::init: Invalid IV size of %1 for %2. + + + + Cipher not initialized prior to use. + Shifër jo e bërë gati para përdorimit. + + + Cannot process 0 length data. + + + + unknown executable (DBus address %1) + + + + %1 (invalid executable path) + %1 (shteg i pavlefshëm të ekzekutueshmi) + + + NULL device + Pajisje NULL + + + error reading from device + gabim gjatë leximit nga pajisja + + + file empty + kartelë e zbrazët + + + malformed string + varg i keqformuar + + + missing closing quote + mungon kllapë mbyllëse + + + %1: (row, col) %2,%3 + + + + AES 256-bit + AES 256-bit + + + Twofish 256-bit + Twofish 256-bit + + + ChaCha20 256-bit + ChaCha20 256-bit + + + Argon2d (KDBX 4 – recommended) + Argon2d (KDBX 4 – e rekomanduar) + + + Argon2id (KDBX 4) + Argon2id (KDBX 4) + + + AES-KDF (KDBX 4) + AES-KDF (KDBX 4) + + + AES-KDF (KDBX 3) + AES-KDF (KDBX 3) + + + Existing single-instance lock file is invalid. Launching new instance. + + + + The lock file could not be created. Single-instance mode disabled. + + + + Clearing the clipboard in %1 second(s)… + + + + Group + Grup + + + Title + Titull + + + Username + Emër përdoruesi + + + Password + Fjalëkalim + + + TOTP + TOTP + + + Icon + Ikonë + + + Last Modified + Ndryshuar Së Fundi Më + + + Created + Krijuar më + + + Benchmark %1 delay + + + + %1 ms + milliseconds + + + + %1 s + seconds + + + + Do you really want to delete the entry "%1" for good? + Doni vërtet të fshihet përgjithmonë zëri “%1â€? + + + Do you really want to delete %n entry(s) for good? + Doni vërtet të fshihet përgjithmonë %n zë(ra)?Doni vërtet të fshihet përgjithmonë %n zë(ra)? + + + Delete entry(s)? + Të fshihet zëri?Të fshihet zërat? + + + Do you really want to move entry "%1" to the recycle bin? + + + + Do you really want to move %n entry(s) to the recycle bin? + + + + Move entry(s) to recycle bin? + Të shpihet zëri te koshi i hedhurinave?Të shpihet zërat te koshi i hedhurinave? + + + Replace references to entry? + Të zëvendësohen referenca ndaj zërit? + + + Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? + + + + User name + Emër përdoruesi + + + Browser Statistics + Statistika Shfletuesi + + + Health Check + Kontroll Shëndeti + + + HIBP + HIBP + + + Statistics + Statistika + + + Unsupported key file version: %1 + Version i pambuluar kartele kyçesh: %1 + + + Checksum mismatch! Key file may be corrupt. + + + + Unexpected key file data! Key file may be corrupt. + + + + KeePassXC - cross-platform password manager + + + + filenames of the password databases to open (*.kdbx) + + + + path to a custom config file + shteg për te kartelë formësimi vetjak + + + path to a custom local config file + shteg për te kartelë vendore formësimi vetjak + + + lock all open databases + kyçi krejt bazat e hapura të të dhënave + + + key file of the database + kartelë kyçi i bazës së të dhënave + + + read password of the database from stdin + fjalëkalimin e bazës së të dhënave lexoje prej stdin-it + + + Locked databases. + + + + Database failed to lock. + S’u arrit të kyçej bazë të dhënash + + + Another instance of KeePassXC is already running. + Ka tashmë në xhirim e sipër një instancë të KeePassXC-së. + + + Fatal error while testing the cryptographic functions. + Gabim fatal teksa testoheshin funksione kriptografike. + + + KeePassXC - Error + KeePassXC - Gabim + + + Database password: + Fjalëkalim baze të dhënash: + + + Invalid Settings + TOTP + Rregullime të Pavlefshme + + + Invalid Key + TOTP + Kyç i Pavlefshëm + + + Failed to create Windows Hello credential. + + + + Failed to sign challenge using Windows Hello. + + + + Warning: Failed to block screenshot capture on a top-level window. + + + + Invalid Cipher + Shifër e Pavlefshme + + + Invalid KDF + FDK i Pavlefshëm + + + Please present or touch your YubiKey to continue. + + + + Show all the attributes of the entry. + Shfaq krejt atributet e zërit. + + + Edit a database. + Përpunoni një bazë të dhënash. + + + Could not change the database key. + S’u ndryshua dot kyçi i bazës së të dhënave. + + + Database was not modified. + Baza e të dhënave s’u ndryshua. + + + Successfully edited the database. + Baza e të dhënave u përpunua me sukses. + + + Loading the new key file failed: %1 + Dështoi ngarkimi i kartelës së re të kyçit: %1 + + + Unset the password for the database. + Hiqe fjalëkalimin për bazën e të dhënave. + + + Unset the key file for the database. + Hiqe kartelën e kyçit për bazën e të dhënave. + + + Cannot use %1 and %2 at the same time. + S’mund të përdoret %1 dhe %2 në të njëjtën kohë. + + + Cannot remove all the keys from a database. + + + + Cannot remove password: The database does not have a password. + + + + Cannot remove file key: The database does not have a file key. + + + + Found unexpected Key type %1 + U gjet lloj i papritur %1 Kyçi + + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + + + + KeePassXC is not running. No open database to lock + + + + allow screenshots and app recording (Windows/macOS) + + + + + QtIOCompressor + + Internal zlib error when compressing: + Gabim i brendshëm zlib-i gjatë ngjeshjeje: + + + Error writing to underlying device: + Gabim gjatë shkrimi te pajisja nën të: + + + Error opening underlying device: + Gabim hapjeje pajisjeje nën të: + + + Error reading data from underlying device: + Gabim gjatë leximit të të dhënave prej pajisjeje nën të: + + + Internal zlib error when decompressing: + Gabim i brendshëm zlib-i gjatë çngjeshjeje: + + + + QtIOCompressor::open + + The gzip format not supported in this version of zlib. + Formati gzip nuk mbulohet në këtë version të zlib-it. + + + Internal zlib error: + Gabim i brendshëm zlib-i: + + + + ReportsWidgetBrowserStatistics + + Exclude expired entries from the report + + + + Show only entries which have URL set + + + + Show only entries which have browser settings in custom data + + + + Double-click entries to edit. + Që t’i përpunoni, dyklikoni mbi zëra. + + + List of entry URLs + Listë URL-sh zëri + + + Entry has no URLs set + Zëri s’ka të ujdisur URL + + + Allowed URLs + URL-ra të Lejuara + + + Entry has no Browser Integration settings + Zëri s’ka rregullime Integrimi Shfletuesish + + + Denied URLs + URL të mohuara + + + (Excluded) + (Përjashtuar) + + + This entry is being excluded from reports + + + + Please wait, browser statistics is being calculated… + + + + No entries with a URL, or none has browser extension settings saved. + + + + Title + Titull + + + Path + Shteg + + + URLs + URL-ra + + + Edit Entry… + Përpunoni Zë… + + + Delete Entry(s)… + Fshini Zë…Fshini Zëra… + + + Exclude from reports + Përjashto nga raporte + + + + ReportsWidgetHealthcheck + + Exclude expired entries from the report + + + + Also show entries that have been excluded from reports + + + + Hover over reason to show additional details. Double-click entries to edit. + + + + Bad + Password quality + I keq + + + Bad — password must be changed + I keq — fjalëkalimi duhet ndryshuar + + + Poor + Password quality + Shumë i dobët + + + Poor — password should be changed + Shumë i dobët — fjalëkalimi duhet ndryshuar + + + Weak + Password quality + I dobët + + + Weak — consider changing the password + I dobët — shihni mundësinë e ndryshimit të fjalëkalimit + + + (Excluded) + (Përjashtuar) + + + This entry is being excluded from reports + + + + Please wait, health data is being calculated… + + + + Congratulations, everything is healthy! + Përgëzime, gjithçka është shëndoshë si molla! + + + Title + Titull + + + Path + Shteg + + + Score + Pikë + + + Reason + Arsye + + + Edit Entry… + Përpunoni Zë… + + + Delete Entry(s)… + Fshini Zë…Fshini Zëra… + + + Exclude from reports + Përjashto nga raporte + + + + ReportsWidgetHibp + + CAUTION: This report requires sending information to the Have I Been Pwned online service (https://haveibeenpwned.com). If you proceed, your database passwords will be cryptographically hashed and the first five characters of those hashes will be sent securely to this service. Your database remains secure and cannot be reconstituted from this information. However, the number of passwords you send and your IP address will be exposed to this service. + + + + Perform Online Analysis + Kryej Analizë Në Internet + + + Also show entries that have been excluded from reports + + + + This build of KeePassXC does not have network functions. Networking is required to check your passwords against Have I Been Pwned databases. + + + + Congratulations, no exposed passwords! + Përgëzime, pa fjalëkalime të ekspozuar! + + + Title + Titull + + + Path + Shteg + + + Password exposed… + Fjalëkalim i ekspozuar… + + + (Excluded) + (Përjashtuar) + + + This entry is being excluded from reports + + + + once + Password exposure amount + një herë + + + up to 10 times + Password exposure amount + deri në 10 herë + + + up to 100 times + Password exposure amount + deri në 100 herë + + + up to 1000 times + Password exposure amount + deri në 1000 herë + + + up to 10,000 times + Password exposure amount + deri në 10000 herë + + + up to 100,000 times + Password exposure amount + deri në 100000 herë + + + up to a million times + Password exposure amount + deri në një milion herë + + + millions of times + Password exposure amount + miliona herë + + + Edit Entry… + Përpunoni Zë… + + + Delete Entry(s)… + Fshini Zë…Fshini Zëra… + + + Exclude from reports + Përjashto nga raporte + + + + ReportsWidgetStatistics + + Hover over lines with error icons for further information. + + + + Name + Emër + + + Value + Vlerë + + + Please wait, database statistics are being calculated… + + + + Database name + Emër baze të dhënash + + + Description + Përshkrim + + + Location + Vendndodhje + + + Database created + Baza e të dhënave u krijua + + + Last saved + + + + Unsaved changes + Ndryshime të paruajtura + + + yes + po + + + no + jo + + + The database was modified, but the changes have not yet been saved to disk. + + + + Number of groups + Numër grupesh + + + Number of entries + Numër zërash + + + Number of expired entries + Numër zërash të skaduar + + + The database contains entries that have expired. + + + + Unique passwords + Fjalëkalime unikë + + + Non-unique passwords + Fjalëkalime jo unikë + + + More than 10% of passwords are reused. Use unique passwords when possible. + + + + Maximum password reuse + Maksimum ripërdorimi fjalëkalimi + + + Some passwords are used more than three times. Use unique passwords when possible. + + + + Number of short passwords + Numër fjalëkalimesh të shkurtër + + + Recommended minimum password length is at least 8 characters. + Gjatësia minimum e rekomanduar për fjalëkalimet është të paktën 8 shenja. + + + Number of weak passwords + Numër fjalëkalimet të dobët + + + Recommend using long, randomized passwords with a rating of 'good' or 'excellent'. + + + + Entries excluded from reports + Zëra të përjashtuar nga raporte + + + Excluding entries from reports, e. g. because they are known to have a poor password, isn't necessarily a problem but you should keep an eye on them. + + + + Average password length + Gjatësi mesatare fjalëkalimesh + + + %1 characters + %1 shenja + + + Average password length is less than ten characters. Longer passwords provide more security. + + + + + SSHAgent + + Agent connection failed. + Lidhja e agjentit dështoi. + + + Agent protocol error. + Gabim protokolli agjenti. + + + No agent running, cannot add identity. + + + + Key identity ownership conflict. Refusing to add. + + + + Agent refused this identity. Possible reasons include: + + + + The key has already been added. + Kyçi është shtuar tashmë. + + + Restricted lifetime is not supported by the agent (check options). + + + + A confirmation request is not supported by the agent (check options). + + + + Security keys are not supported by the agent or the security key provider is unavailable. + + + + No agent running, cannot remove identity. + + + + No agent running, cannot list identities. + + + + + SearchHelpWidget + + Search Help + Ndihmë Kërkimi + + + Search terms are as follows: [modifiers][field:]["]term["] + + + + Every search term must match (ie, logical AND) + + + + Modifiers + Ndryshues + + + exclude term from results + përjashto term nga përfundime + + + match term exactly + përputhje saktësisht me termin + + + use regex in term + përdor shprehje të rregullt në term_Regex + + + Fields + Fusha + + + Term Wildcards + Shenja të Gjithëpushtetshme Termi + + + match anything + përputhje me ç’të jetë + + + match one + + + + logical OR + OR logjik + + + Examples + Shembuj + + + + SearchWidget + + Search + Kërko + + + Search Help + Ndihmë Kërkimi + + + Search (%1)… + Search placeholder text, %1 is the keyboard shortcut + Kërkim (%1)… + + + Case sensitive + + + + Limit search to selected group + Kufizoje kërkimin te grupi i përzgjedhur + + + Save Search + Ruaje Kërkimin + + + + SettingsClientModel + + Application + Aplikacion + + + PID + PID + + + DBus Address + Adresë DBus + + + Manage + Administroni + + + + SettingsDatabaseModel + + File Name + Emër Kartele + + + Group + Grup + + + Manage + Administroni + + + + SettingsWidgetFdoSecrets + + Options + Mundësi + + + Enable KeepassXC Freedesktop.org Secret Service integration + + + + General + Të përgjithshme + + + Show notification when passwords are retrieved by clients + + + + <html><head/><body><p>If enabled, any attempt to read a password must be confirmed. Otherwise, clients can read passwords without confirmation when the database is unlocked.</p><p>This option only covers the access to the password of an entry. Clients can always enumerate the items of exposed databases and query their attributes.</p></body></html> + + + + Confirm when passwords are retrieved by clients + + + + <html><head/><body><p><span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">This setting does + not override disabling recycle bin prompts</span></p></body></html> + + + + + Confirm when clients request entry deletion + + + + <html><head/><body><p>This improves compatibility with certain applications + which search for password without unlocking the database first.</p><p>But enabling this may also + crash the client if the database can not be unlocked within a certain timeout. (Usually 25s, but may be a + different value set in applications.)</p></body></html> + + + + + Prompt to unlock database before searching + + + + Exposed database groups: + Grupe bazash të dhënash të ekspozuar: + + + Authorization + Autorizim + + + These applications are currently connected: + Këto aplikacione janë aktualisht të lidhura: + + + <b>Warning:</b> + <b>Kujdes:</b> + + + Save current changes to activate the plugin and enable editing of this section. + + + + + SettingsWidgetKeeShare + + Active + Aktiv + + + Allow KeeShare imports + Lejo importime KeeShare + + + Allow import + Lejo importim + + + Allow KeeShare exports + Lejo eksportime KeeShare + + + Allow export + Lejo eksportim + + + Only show warnings and errors + Shfaq vetëm sinjalizime dhe gabime + + + Own certificate + Dëshmi e vetes + + + Signer: + Nënshkrues: + + + Generate new certificate + Prodho dëshmi të re + + + Generate + Prodhoje + + + Fingerprint: + Shenja gishtash: + + + Signer name field + Fushë emri nënshkruesi + + + Fingerprint + Shenja gishtash + + + + ShareExport + + Could not write export container. + S’u shkrua dot një kontejner eksporti. + + + + ShareImport + + Successful import + Importim i suksesshëm + + + + ShareObserver + + Import from %1 failed (%2) + S’u arrit të importohej %1 (%2) + + + Import from %1 successful (%2) + Importim i suksesshëm nga %1 (%2) + + + Imported from %1 + Importuar nga %1 + + + Multiple import source path to %1 in %2 + + + + Conflicting export target path %1 in %2 + + + + Export to %1 failed (%2) + Eksportimi te %1 dështoi (%2) + + + Export to %1 successful (%2) + Eksportimi te %1 qe i suksesshëm (%2) + + + Export to %1 + Eksporto te %1 + + + + TagModel + + Expired + Ka skaduar + + + Weak Passwords + Fjalëkalim i Dobët + + + All Entries + Krejt Zërat + + + Clear Search + Spastro Kërkimin + + + + TagView + + Remove Search + Hiqe Kërkimin + + + Remove Tag + Hiqe Etiketën + + + Confirm Remove Tag + Ripohoni Heqje Etikete + + + Remove tag "%1" from all entries in this database? + + + + + TotpDialog + + Timed Password + Fjalëkalim Me Kohëskadim + + + Copy + + + + Expires in <b>%n</b> second(s) + Skadon pas <b>%n</b> sekonde(ash)Skadon pas <b>%n</b> sekonde(ash) + + + + TotpExportSettingsDialog + + Copy + + + + NOTE: These TOTP settings are custom and may not work with other authenticators. + TOTP QR code dialog warning + + + + There was an error creating the QR code. + Pati një gabim teksa krijohej kodi QR. + + + Closing in %1 seconds. + Do të mbyllet pas %1 sekondash. + + + + TotpSetupDialog + + Setup TOTP + Ujdisni TOTP + + + Secret Key: + Kyç i Fshehtë: + + + Secret key must be in Base32 format + Kyçi i fshehtë duhet të jetë nën formatin Base32 + + + Secret key field + Fushë kyçi të fshehtë + + + Default settings (RFC 6238) + Rregullime parazgjedhje (RFC 6238) + + + Steam® settings + Rregullime për Steam® + + + Custom settings: + Rregullime vetjake: + + + Custom Settings + Rregullime Vetjake + + + Algorithm: + Algoritëm: + + + Time step: + Hap kohor: + + + Time step field + Fushë hapi kohor + + + sec + Seconds + sek + + + Code size: + Madhësi kodi + + + digits + shifra + + + Invalid TOTP Secret + E fshehtë TOTP e pavlefshme + + + You have entered an invalid secret key. The key must be in Base32 format. +Example: JBSWY3DPEHPK3PXP + + + + Confirm Remove TOTP Settings + Rregullime për “Ripohoni Heqje TOTP + + + Are you sure you want to delete TOTP settings for this entry? + Jeni i sigurt se doni të fshihen rregullime TOTP për këtë zë? + + + + URLEdit + + Invalid URL + URL e pavlefshme + + + + UpdateCheckDialog + + Checking for updates + Po kontrollohet për përditësime + + + Checking for updates… + Po kontrollohet për përditësime… + + + Close + Mbylle + + + Software Update + Përditësim Software-i + + + An error occurred when trying to retrieve update information, please try again later. + + + + <strong>A new version is available.</strong><br/>KeePassXC %1 can be <a href="https://keepassxc.org/download/">downloaded here</a>. + + + + You have the latest version of KeePassXC + Keni versionin më të ri të KeePassXC-së + + + + WelcomeWidget + + Start storing your passwords securely in a KeePassXC database + + + + Create new database + Krijoni bazë të re të dhënash + + + Open existing database + Hap bazë ekzistuese të dhënash + + + Import from KeePass 1 + Importo prej Keepass 1 + + + Import from 1Password + Importo prej 1Password + + + Import from CSV + Importo prej CSV + + + Recent databases + Baza të dhënash së fundi + + + Open a recent database + Hapni një bazë të dhënash së fundi + + + Welcome to KeePassXC %1 + Mirë se vini te KeePassXC %1 + + + + WinUtils + + Invalid key code + Kod i pavlefshëm kyçi + + + Global shortcut already registered to %1 + Shkurtore globale e regjistruar tashmë te %1 + + + Could not register global shortcut + S’u regjistrua dot shkurtore globale + + + + WindowsHello + + Failed to init KeePassXC crypto. + S’u arrit të gatitet kriptografi KeePassXC-je + + + Failed to encrypt key data. + S’u arrit të fshehtësohen të dhëna kyçi. + + + Failed to get Windows Hello credential. + + + + Failed to decrypt key data. + S’u arrit të shfshehtësohen të dhëna kyçi. + + + + YubiKey + + %1 No interface, slot %2 + + + + General: + Të përgjithshme: + + + Could not find interface for hardware key with serial number %1. Please connect it to continue. + + + + + YubiKeyEditWidget + + Refresh hardware tokens + + + + Refresh + Rifreskoje + + + Hardware key slot selection + + + + Could not find any hardware keys! + S’u gjet dot ndonjë kyç hardware! + + + Selected hardware key slot does not support challenge-response! + + + + Challenge-Response + Pyetje-Përgjigje + + + Add Challenge-Response + Shtoni Pyetje-Përgjigje + + + Change Challenge-Response + Ndryshoni Pyetje-Përgjigje + + + Remove Challenge-Response + Hiqni Pyetje-Përgjigje + + + Challenge-Response set, click to change or remove + Pyetje-Përgjigje u ujdis, klikoni që ta ndryshoni, ose hiqni + + + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Detecting hardware keys… + Po pikasen kyçe hardware… + + + No hardware keys detected + S’u pikasën kyçe hardware + + + + YubiKeyInterface + + %1 Invalid slot specified - %2 + + + + + YubiKeyInterfacePCSC + + (PCSC) %1 [%2] Challenge-Response - Slot %3 + + + + The YubiKey PCSC interface has not been initialized. + Ndërfaqja PCSC YubiKey s’është gatitur. + + + Hardware key is currently in use. + Kyçi hardware është aktualisht në përdorim. + + + Could not find or access hardware key with serial number %1. Please present it to continue. + + + + Hardware key is locked or timed out. Unlock or re-present it to continue. + + + + Hardware key was not found or is not configured. + S’u gjet, ose s’është formësuar kyç hardware. + + + Failed to complete a challenge-response, the PCSC error code was: %1 + + + + + YubiKeyInterfaceUSB + + Unknown + + + + (USB) %1 [%2] Configured Slot - %3 + + + + (USB) %1 [%2] Challenge-Response - Slot %3 - %4 + + + + Press + USB Challenge-Response Key interaction request + + + + Passive + USB Challenge-Response Key no interaction required + Pasiv + + + The YubiKey USB interface has not been initialized. + Ndërfaqja USB YubiKey s’është gatitur. + + + Hardware key is currently in use. + Kyçi hardware është aktualisht në përdorim. + + + Could not find hardware key with serial number %1. Please plug it in to continue. + + + + Hardware key timed out waiting for user interaction. + + + + A USB error occurred when accessing the hardware key: %1 + Ndodhi një gabim USB teksa trajtohej kyçi hardware: %1 + + + Failed to complete a challenge-response, the specific error was: %1 + + + + \ No newline at end of file diff --git a/share/translations/keepassxc_sr.ts b/share/translations/keepassxc_sr.ts index 5ffacc18a..add246b95 100644 --- a/share/translations/keepassxc_sr.ts +++ b/share/translations/keepassxc_sr.ts @@ -80,6 +80,10 @@ Details + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + + Remember Запамти @@ -88,10 +92,6 @@ Allow Selected Дозволи одабрано - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - - Deny All && Future @@ -122,6 +122,10 @@ Use OpenSSH + + Use both agents + + SSH_AUTH_SOCK override SSH_AUTH_SOCK прегажење @@ -150,10 +154,6 @@ SSH Agent connection is working! Веза SSH агента ради! - - Use both agents - - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security СигурноÑÑ‚ + + This setting cannot be enabled when minimize on unlock is enabled. + + Access error for config file %1 Грешка приликом приÑтупа конфигурационој датотеци %1 @@ -256,6 +260,10 @@ Remember previously used databases Запамти поÑледњу употребљену базу података + + recent files + + Load previously open databases on startup Ðа покретање, учитај поÑледњу отворену базу података @@ -408,6 +416,10 @@ Toolbar button style: Стил дугмета на траци Ñа алаткама: + + Show passwords in color + + Use monospaced font for notes За белешке кориÑтите једноÑтруки фонт @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons За преузимање икона веб Ñтраница кориÑтите DuckDuckGo + + Hide TOTP in the entry preview panel + + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + + Invalid conversion type: %1 @@ -798,13 +818,13 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Disable for this site Онемогући за овај Ñајт + + Undo + + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser Сачувај ÑƒÐ½Ð¾Ñ - Ok У реду @@ -819,13 +839,69 @@ Please select the correct database for saving credentials. Отворено вам је више база података. Изаберите тачну базу података за чување акредитива. + + KeePassXC - Select Database + + + + + BrowserPasskeysConfirmationDialog + + Cancel + Откажи + + + Update + + + + Authenticate + + + + Register new + + + + Register + + + + Timeout in <b>%n</b> seconds... + + + + Do you want to register Passkey for: + + + + Existing Passkey found. +Do you want to register a new Passkey for: + + + + Select the existing Passkey and press Update to replace it. + + + + Authenticate Passkey credentials for: + + + + Relying Party: %1 + + + + Username: %1 + + + + KeePassXC - Passkey credentials + + BrowserService - - KeePassXC: Create a new group - KeePassXC: Ðаправите нову групу - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -834,10 +910,6 @@ Do you want to create this group? Да ли желите да направите ову групу? - - KeePassXC: New key association request - KeePassXC: Ðови захтев за придруживање кључа - You have received an association request for the following database: %1 @@ -854,28 +926,16 @@ chrome-laptop. Save and allow access Сачувај и дозволи приÑтуп - - KeePassXC: Overwrite existing key? - KeePassXC: Препиши поÑтојећи кључ? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? Дељен кључ за шифровање Ñа именом „% 1“ већ поÑтоји. Да ли желите да га препишете? - - KeePassXC: Update Entry - KeePassXC: Ðжурирање уноÑа - Do you want to update the information in %1 - %2? Да ли желите да ажурирате информације у %1 - %2? - - KeePassXC: Delete entry - - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -883,50 +943,45 @@ Do you want to delete the entry? - Converting attributes to custom data… - Претварање атрибута у прилагођене податке... + %1 (Passkey) + - Abort - Прекид + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Конвертовани KeePassHTTP атрибути + KeePassXC - Create a new group + - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Ðтрибути Ñу уÑпешно претворени из %1 уноÑа. -Премештени %2 кључева у прилагођене податке. - - - Successfully moved %n keys to custom data. - Премештено %n кључа у прилагођене податке.Премештено %n кључа у прилагођене податке.Премештено %n кључа у прилагођене податке. + Disable + Онемогући - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Ðема уноÑа Ñа KeePassHTTP атрибута! + KeePassXC - Overwrite existing key? + - The active database does not contain an entry with KeePassHTTP attributes. - Ðктивна база података не Ñадржи ÑƒÐ½Ð¾Ñ Ñа KeePassHTTP атрибути. + KeePassXC - Update Passkey + - Don't show this warning again - Ðе приказуј више ово упозорење + KeePassXC - Update Entry + - KeePassXC: Legacy browser integration settings detected - KeePassXC: Откривена Ñу Ñтара подешавања интеграције прегледача + KeePassXC - Delete entry + - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Ваша KeePassXC-Browser подешавања треба премеÑтити у поÑтавке базе података. -Ово је неопходно за одржавање тренутних веза Ñа прегледачем. -Да ли желите да мигрирате Ñвоја поÑтојећа подешавања Ñада? + KeePassXC - New key association request + + + + Passkey + @@ -1134,14 +1189,6 @@ Would you like to migrate your existing settings now? Please see special instructions for browser extension use below Молимо погледајте поÑебна упутÑтва за употребу додатка прегледача у наÑтавку - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - </b>Грешка:</b> Ðије могуће пронаћи прилагођену локацију проки Ñервера!<br/>Интеграција прегледача ÐЕЋЕ РÐДИТИ без проки апликације. - - - <b>Warning:</b> The following options can be dangerous! - <b>Упозорење:</b> Следеће опције могу бити опаÑне! - Executable Files Извршне датотеке @@ -1158,6 +1205,38 @@ Would you like to migrate your existing settings now? Select native messaging host folder location Изабери меÑто фаÑцикле матичног хоÑта размене порука + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + + + + <b>Warning:</b> Only adjust these settings if necessary. + + + + The custom proxy location does not exist. + + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + + CloneDialog @@ -1180,14 +1259,6 @@ Would you like to migrate your existing settings now? CsvImportWidget - - Import CSV fields - Увези CSV поља - - - filename - датотека - size, rows, columns величина, редови, колоне @@ -1296,50 +1367,29 @@ Would you like to migrate your existing settings now? Column %1 Колона %1 - - Imported from CSV file - Увезено из CSV датотеке - - - Original data: - Изворни подаци: - - - Error(s) detected in CSV file! - Откривене Ñу грешке у CSV датотеци! - [%n more message(s) skipped] [%n преÑкочене поруке][%n преÑкочене поруке][%n преÑкочене поруке] - Error - Грешка + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - CSV увоз: има грешке: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n бајт(ова)%n бајт(ова)%n бајт(ова) - %n row(s) + CSV row count %n ред(ова)%n ред(ова)%n ред(ова) %n column(s) + CSV column count %n колона(е)%n колона(е)%n колона(е) @@ -1414,39 +1464,10 @@ Backup database located at %2 Password field Поље лозинке - - Enter Additional Credentials (if any): - Унети додатне акредитиве (ако поÑтоје): - - - Key File: - Кључ-Датотека: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - - - - Key file help - Помоћ за Кључ-Датотеку - Hardware key slot selection Избор Ñлота хардверÑког кључа - - Hardware Key: - Кључ хардвера: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - - - - Hardware key help - Помоћ кључ хардвера - Key file to unlock the database Кључ-Датотека за откључавање базе података @@ -1459,14 +1480,6 @@ Backup database located at %2 Browse… - - Refresh hardware tokens - ОÑвежи хардверÑке токене - - - Refresh - ОÑвежи - Unlock Database @@ -1523,14 +1536,6 @@ To prevent this error from appearing, you must go to "Database Settings / S Retry with empty password Покушај поново Ñа празном лозинком - - Failed to authenticate with Windows Hello - - - - Failed to authenticate with Touch ID - - Failed to open key file: %1 Отварање Кључ-Датотеке није уÑпело: %1 @@ -1564,22 +1569,60 @@ To prevent this error from appearing, you must go to "Database Settings / S Датотека базе података не може Ñе кориÑтити као Кључ-Датотеку - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Датотека базе података не може Ñе кориÑтити као Кључ-Датотека. -Ðко немате Кључ-Датотеку, оÑтавите поље празно. + authenticate to access the database + - Detecting hardware keys… - Откривање хардверÑких кључева… + Failed to authenticate with Quick Unlock: %1 + - No hardware keys detected - Ðема хардверÑких кључева + Select Key File: + - Select hardware key… - одабирање хардверÑких кључева… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1591,10 +1634,6 @@ If you do not have a key file, please leave the field empty. DatabaseSettingsDialog - - Advanced Settings - Ðапредна подешавања - General Опште @@ -1626,18 +1665,6 @@ If you do not have a key file, please leave the field empty. KeePassXC-Browser settings KeePassXC-Browser подешавања - - Convert KeePassHTTP data - - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - - - - Refresh database root group ID - ОÑвежите ИД матичне групе базе података - Disconnect all browsers ИÑкључите Ñве прегледаче @@ -1646,6 +1673,10 @@ If you do not have a key file, please leave the field empty. Forget all site-specific settings on entries Заборавите Ñве Ñпецифичне поÑтавке за локацију на уноÑима + + Refresh database root group ID + ОÑвежите ИД матичне групе базе података + Stored keys Сачувани кључеви @@ -1694,18 +1725,10 @@ This may prevent connection to the browser plugin. Да ли Ñтварно желите да иÑкључите Ñве прегледаче? Ово може Ñпречити везу Ñа додатком за прегледач. - - KeePassXC: No keys found - KeePassXC: ÐиÑу пронађени кључеви - No shared encryption keys found in KeePassXC settings. Ðије пронађен ниједан дељени кључ за шифровање у подешавањима KeePassXC-а. - - KeePassXC: Removed keys from database - KeePassXC: Уклоњени кључеви из базе података - Successfully removed %n encryption key(s) from KeePassXC settings. УÑпешно уклоњено %n кључ(ови) за шифровање из подешавањаУÑпешно уклоњено %n кључ(ови) за шифровање из подешавањаУÑпешно уклоњено %n кључ(ови) за шифровање из подешавања @@ -1724,31 +1747,14 @@ Permissions to access entries will be revoked. Abort Прекид - - KeePassXC: Removed permissions - KeePassXC: Уклоњене дозволе - Successfully removed permissions from %n entry(s). УÑпешно уклоњене дозволе Ñа %n уноÑ(а).УÑпешно уклоњене дозволе Ñа %n уноÑ(а).УÑпешно уклоњене дозволе Ñа %n уноÑ(а). - - KeePassXC: No entry with permissions found! - KeePassXC: Ðије пронађен ниједан ÑƒÐ½Ð¾Ñ Ñа дозволама! - The active database does not contain an entry with permissions. Ðктивна база података не Ñадржи ÑƒÐ½Ð¾Ñ Ñа дозволама. - - Move KeePassHTTP attributes to custom data - ПремеÑти KeePassHTTP атрибуте у прилагођеним подацима - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - - Refresh database ID ОÑвежите ИД базе података @@ -1759,6 +1765,26 @@ This is only necessary if your database is a copy of another and the browser ext Да ли Ñтварно желите да оÑвежите ИД базе података? То је неопходно Ñамо ако је ваша база података копија друге и ако екÑтензија прегледача не може да Ñе повеже. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + + + + No keys found + + + + Removed keys from database + + + + Removed permissions + + + + No entry with permissions found! + + DatabaseSettingsWidgetDatabaseKey @@ -1798,6 +1824,18 @@ Are you sure you want to continue without a password? Failed to change database credentials ÐеуÑпешна промена акредитива базе података + + Weak password + Слаба лозинка + + + You must enter a stronger password to protect your database. + + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + + DatabaseSettingsWidgetEncryption @@ -1805,14 +1843,6 @@ Are you sure you want to continue without a password? Decryption Time: Време дешифровања: - - Change existing decryption time - Променити поÑтојеће време дешифровања - - - Change - Променити - Decryption time in seconds Време дешифровања у Ñекундама @@ -1893,11 +1923,6 @@ Are you sure you want to continue without a password? KDBX 3 - - unchanged - Database decryption time is unchanged - непромењено - Number of rounds too high Key transformation rounds @@ -1946,6 +1971,18 @@ If you keep this number, your database will not be protected from brute force at Threads for parallel execution (KDF settings) нит(а) нит(а) нит(а) + + Encryption Settings: + + + + Basic + + + + Advanced + Ðапредно + DatabaseSettingsWidgetFdoSecrets @@ -2004,18 +2041,10 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry МакÑималан број иÑторијÑких предмета по уноÑу - - Max. history items: - МакÑималан број Ñтавки из иÑторије: - Maximum size of history per entry МакÑимална величина иÑторије по уноÑу - - Max. history size: - МакÑималан број Ñтавки у иÑторији: - MiB MiB @@ -2046,6 +2075,55 @@ This action is not reversible. (old) (Ñтаро) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + + + + Limit the amount of history items per entry to: + + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + + + + Limit the total size of history items per entry to: + + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + + + + Autosave delay since last change + + + + Autosave delay + + + + Autosave delay since last change in minutes + + + + min + мин + + + Autosave delay since last change checkbox + + DatabaseSettingsWidgetKeeShare @@ -2173,26 +2251,10 @@ This is definitely a bug, please report it to the developers. CSV file CSV датотека - - Select CSV file - Одабрати CSV датотеку - Merge database Споји базу података - - KeePass 1 database - KeePass 1 база података - - - Open KeePass 1 database - Отвори KeePass 1 базу података - - - Open OPVault - Отворити OPVault - Export database to CSV file Извези базу података у CSV датотеку @@ -2205,6 +2267,18 @@ This is definitely a bug, please report it to the developers. Writing the HTML file failed. ПиÑање HTML датотеке није уÑпело. + + Export database to XML file + + + + XML file + + + + Writing the XML file failed + + Export Confirmation Потврда извоза @@ -2213,15 +2287,6 @@ This is definitely a bug, please report it to the developers. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? Спремате Ñе да извезете Ñвоју базу података у нешифрирану датотеку. Ово ће ваше лозинке и оÑетљиве информације учинити рањивим! Да ли Ñте Ñигурни да желите да наÑтавите? - - New Database - Ðова база података - - - %1 [New Database] - Database tab name modifier - %1 [Ðова база података] - %1 [Locked] Database tab name modifier @@ -2231,7 +2296,7 @@ This is definitely a bug, please report it to the developers. DatabaseWidget - Database Tags + Searches and Tags @@ -2282,6 +2347,10 @@ This is definitely a bug, please report it to the developers. Expired entries + + Entries expiring within %1 day(s) + + No current database. Ðема тренутне базе података. @@ -2306,6 +2375,18 @@ This is definitely a bug, please report it to the developers. No Results Ðема резултата + + Save + Сними + + + Enter a unique name or overwrite an existing search from the list: + + + + Save Search + + Lock Database? Закључати базу података? @@ -2396,9 +2477,14 @@ Disable safe saves and try again? Could not find database file: %1 Ðије могуће пронаћи датотеку базе података: %1 - - Entries expiring within %1 day(s) - + + New Database + Ðова база података + + + %1 [New Database] + Database tab name modifier + %1 [Ðова база] @@ -2537,6 +2623,10 @@ Would you like to correct it? Hide Сакриј + + %n hour(s) + + %n week(s) %n недеља(е)%n недеља(е)%n недеља(е) @@ -2549,10 +2639,6 @@ Would you like to correct it? %n year(s) %n година(е)%n година(е)%n година(е) - - %n hour(s) - - EditEntryWidgetAdvanced @@ -2671,10 +2757,20 @@ Would you like to correct it? Add new window association Додати нову аÑоцијацију прозора + + + + Add item + + + Remove selected window association Уклонити одабрану аÑоцијацију прозора + + - + Remove item + - + Window title: ÐаÑлов прозора: @@ -2699,16 +2795,6 @@ Would you like to correct it? Custom Auto-Type sequence for this window Прилагођена Ñеквенца ауто-куцања за овај прозор - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2810,22 +2896,10 @@ Would you like to correct it? Notes field Поље белешке - - Toggle the checkbox to reveal the notes section. - Штиклирај поље жа потврду да биÑте приказали Ñекцију за белешке. - Username field Поље кориÑничког имена - - Toggle notes visible - Пребаци видљивоÑÑ‚ белешке - - - Notes: - Белешке: - Expiration field Поље иÑтека @@ -2842,14 +2916,6 @@ Would you like to correct it? Presets ПредефиниÑани - - Password: - Лозинка: - - - URL: - URL: - Url field Поље URL @@ -2858,18 +2924,10 @@ Would you like to correct it? Download favicon for URL Преузети иконицу за URL - - Title: - ÐаÑлов: - Title field Поље наÑлова - - Username: - КориÑничко име: - Password field Поље лозинке @@ -2879,15 +2937,39 @@ Would you like to correct it? Пребацити датум иÑтека - Expires: - ИÑтиче: - - - Tags: + Tags list - Tags list + &Username: + + + + &Title: + + + + &Password: + + + + UR&L: + + + + &Notes: + + + + Toggle notes visibility + + + + T&ags: + + + + &Expires: @@ -2929,19 +3011,6 @@ Would you like to correct it? Private key Приватни кључ - - External file - Спољашња датотека - - - Browser for key file - Претраживач за Кључ-Датотеку - - - Browse… - Button for opening file dialog - - Attachment Прилог @@ -2958,6 +3027,23 @@ Would you like to correct it? Remove from agent Уклони Ñа агента + + External file + Спољашња датотека + + + Browser for key file + Претраживач за Кључ-Датотеку + + + Browse… + Button for opening file dialog + + + + Generate + Генериши + Select attachment file Одабрати прилог @@ -2993,10 +3079,6 @@ Would you like to correct it? Icon Икона - - Browser Integration - Интеграција Ñа прегледачем - Properties ОÑобине @@ -3013,6 +3095,10 @@ Would you like to correct it? Group has unsaved changes + + Browser Integration + Интеграција Ñа прегледачем + Enable Омогући @@ -3028,10 +3114,6 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - Уредити групу - These settings affect to the group's behaviour with the browser extension. @@ -3068,6 +3150,22 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups + + Omit WWW subdomain from matching: + + + + Omit WWW subdomain from matching toggle for this and sub groups + + + + Restrict matching to given browser key: + + + + Restrict matching to given browser key toggle for this and sub groups + + EditGroupWidgetKeeShare @@ -3300,10 +3398,6 @@ Supported extensions are: %1. Unable to fetch favicon. ÐеуÑпело добављање иконе Ñа Ñајта. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - УÑлугу икона DuckDuckGo-а можете омогућити у Ðлати -> Подешавања -> БезбедноÑÑ‚ - Existing icon selected. Изабрана је поÑтојећа икона. @@ -3336,6 +3430,10 @@ Supported extensions are: %1. The following icon(s) failed: Следеће иконе ниÑу уÑпеле:Следеће иконе ниÑу уÑпеле:Следеће иконе ниÑу уÑпеле: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + + EditWidgetProperties @@ -3772,6 +3870,10 @@ Error: %1 Has TOTP Има једнократну лозинку + + Background Color + + EntryPreviewWidget @@ -3792,8 +3894,8 @@ Error: %1 Лозинка - Notes - Белешке + URL + URL Expiration @@ -3812,8 +3914,8 @@ Error: %1 КориÑничко име - URL - URL + Notes + Белешке Advanced @@ -3863,6 +3965,10 @@ Error: %1 Never Ðикада + + Double click to copy value + + Enabled Омогућено @@ -3871,6 +3977,10 @@ Error: %1 Disabled Онемогућено + + Double click to copy to clipboard + + EntryURLModel @@ -3878,6 +3988,10 @@ Error: %1 Invalid URL Погрешна URL + + Duplicate URL + + EntryView @@ -3893,6 +4007,10 @@ Error: %1 Reset to defaults Вратити на подразумевано + + + %1 entry(s)... + + ExportDialog @@ -4112,6 +4230,147 @@ You can enable the DuckDuckGo website icon service in the security section of th + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Чаробњак + + + Entry count: %1 + + + + Group + Група + + + Title + ÐаÑлов + + + Username + КориÑничко име + + + Password + Лозинка + + + Url + + + + + ImportWizardPageSelect + + Form + Форма + + + Import File Selection + + + + Password: + Лозинка: + + + Key File: + Кључ-Датотека: + + + Browse… + + + + Import Into: + + + + New Database + Ðова база података + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Отворити OPVault + + + Select import file + + + + All files + Све датотеке + + + Key files + Кључ-Датотеке + + + Select key file + Одаберите кључ-датотеку + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4543,17 +4802,6 @@ Line %2, column %3 ÐеуÑпешно отварање приватног кључа - - KeePass1OpenWidget - - Import KeePass1 Database - Увоз KeePass1 базе података - - - Unable to open the database. - Ðије могуће отворити базу података. - - KeePass1Reader @@ -4910,10 +5158,6 @@ Are you sure you want to continue with this file? &Recent Databases Скорашње базе података - - &Import - &Увези - &Export Извоз @@ -4934,6 +5178,10 @@ Are you sure you want to continue with this file? TOTP Једнократна лозинка + + Tags + + &Groups Групе @@ -4978,34 +5226,18 @@ Are you sure you want to continue with this file? &New Database… Ðова база података... - - Create a new database - Креирај нову базу података - &Merge From Database… Споји из базе података... - - Merge from another KDBX database - Спајање из друге KDBX базе података - &New Entry… Ðови уноÑ... - - Add a new entry - Додај нови ÑƒÐ½Ð¾Ñ - &Edit Entry… Променити уноÑ... - - View or edit entry - Види или уреди ÑƒÐ½Ð¾Ñ - &Delete Entry… ОбриÑати уноÑ... @@ -5014,10 +5246,6 @@ Are you sure you want to continue with this file? &New Group… Ðова група... - - Add a new group - Додај нову групу - &Edit Group… Променити групу... @@ -5050,18 +5278,10 @@ Are you sure you want to continue with this file? Database &Reports… - - Statistics, health check, etc. - СтатиÑтика, здравÑтвена провера итд. - &Database Settings… Подешавања базе података... - - Database settings - Подешавања базе података - &Clone Entry… Ðаправи дупликат уноÑа... @@ -5070,34 +5290,18 @@ Are you sure you want to continue with this file? Move u&p ПремеÑти на горе - - Move entry one step up - ПремеÑти ÑƒÐ½Ð¾Ñ Ð·Ð° један корак горе - Move do&wn ПремеÑти на доле - - Move entry one step down - ПремеÑти ÑƒÐ½Ð¾Ñ Ð·Ð° један корак надоле - Copy &Username Копирај кориÑничко име - - Copy username to clipboard - Копирај кориÑничко име - Copy &Password Копирај лозинку - - Copy password to clipboard - Копирај лозинку - &Settings Подешавања @@ -5131,25 +5335,13 @@ Are you sure you want to continue with this file? ÐаÑлов - Copy title to clipboard - Копирај назив - - - &URL - &URL - - - Copy URL to clipboard - Копирај URL + Copy &URL + &Notes Белешке - - Copy notes to clipboard - Копирај белешке - &CSV File… CSV датотека… @@ -5162,26 +5354,14 @@ Are you sure you want to continue with this file? KeePass 1 Database… KeePass 1 база података… - - Import a KeePass 1 database - Увези KeePass 1 базу података - 1Password Vault… 1Password Ñеф… - - Import a 1Password Vault - Увоз из 1Password Ñефа - CSV File… CSV датотека… - - Import a CSV file - Увези CSV датотеку - Show TOTP Прикажи TOTP @@ -5198,6 +5378,10 @@ Are you sure you want to continue with this file? Copy &TOTP Копирај &TOTP + + Copy Password and TOTP + + E&mpty recycle bin ИÑпразни корпу за отпатке @@ -5222,10 +5406,6 @@ Are you sure you want to continue with this file? &Online Help Помоћ на мрежи - - Go to online documentation - Идите на документацију на мрежи - &User Guide УпутÑтво за употребу @@ -5294,6 +5474,10 @@ Are you sure you want to continue with this file? Clone Group... + + &XML File… + + Clear history ОчиÑти иÑторију @@ -5322,6 +5506,10 @@ Expect some bugs and minor issues, this version is meant for testing purposes. + + No Tags + + Restore Entry(s) @@ -5350,6 +5538,10 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC ÐапуÑти KeePassXC + + %1 Entry(s) + + Please present or touch your YubiKey to continue… @@ -5362,6 +5554,274 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? Морате поново покренути апликацију да биÑте применили ово подешавање. Да ли желите да Ñе поново покренете Ñада? + + Allow Screen Capture + + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + + + + Import Passkey + + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + Измени ÑƒÐ½Ð¾Ñ + + + Delete Entry + + + + Create Group + + + + Edit Group + Уредити групу + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + + + + Copy Password + + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + Увоз KeePass1 базе података + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + ManageDatabase @@ -5419,26 +5879,6 @@ We recommend you use the AppImage available on our downloads page. Overwriting %1 [%2] ПрепиÑивање %1 [%2] - - older entry merged from database "%1" - Ñтарији уноÑи Ñпојени из базе података „%1“ - - - Adding backup for older target %1 [%2] - Додавање резервне копије за Ñтарију мету %1 [%2] - - - Adding backup for older source %1 [%2] - Додавање резервне копије за Ñтарији извор %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Поновна примена Ñтаријег циљаног уноÑа на врх новијег извора %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Поновна примена Ñтаријег циљаног уноÑа на врх новијег извора циља %1 [%2] - Synchronizing from newer source %1 [%2] Синхронизација из новијег извора %1 [%2] @@ -5498,14 +5938,6 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Овде можете прилагодити поÑтавке шифровања базе података. Ðе брините, каÑније их можете променити у подешавањима базе података. - - Advanced Settings - Ðапредна подешавања - - - Simple Settings - ЈедноÑтавна подешавања - NewDatabaseWizardPageDatabaseKey @@ -5586,15 +6018,6 @@ We recommend you use the AppImage available on our downloads page. - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Читање базе података није произвело инÑтанцу -%1 - - OpVaultReader @@ -5668,6 +6091,10 @@ We recommend you use the AppImage available on our downloads page. Unknown cipher: %1 Ðепознат шифрарник: %1 + + AES-256/GCM is currently not supported + + Passphrase is required to decrypt this key За дешифровање овог кључа потребна је приÑтупна фраза @@ -5734,26 +6161,174 @@ We recommend you use the AppImage available on our downloads page. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Лозинке Ñе не поклапају + SSH Key Generator + - Passwords match so far - Лозинке Ñе до Ñада подударају + Type + Тип - Toggle Password (%1) - Пребаци лозинку (%1) + Bits + - Generate Password (%1) - Генериши лозинку (%1) + Comment + Коментар + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + - Warning: Caps Lock enabled! - Упозорење: ТаÑтер за велика Ñлова је упаљен! + Export the following Passkey entries. + + + + Filenames will be generated with title and .passkey file extension. + + + + Export entries + + + + Export Selected + + + + Cancel + Откажи + + + Export to folder + + + + + PasskeyExporter + + KeePassXC: Passkey Export + + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + + Cannot open file + + + + Cannot open file "%1" for writing. + + + + Cannot write to file + + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + + + + Username: %1 + + + + Group + Група + + + Database + + + + Import Passkey + + + + Import + Увези + + + Cancel + Откажи + + + Import the following Passkey: + + + + Entry + Ð£Ð½Ð¾Ñ + + + Import the following Passkey to this entry: + + + + Create new entry + + + + Default Passkeys group (Imported Passkeys) + + + + Relying Party: %1 + + + + + PasskeyImporter + + Passkey file + + + + All files + Све датотеке + + + Open Passkey file + + + + Cannot open file + + + + Cannot open file "%1" for reading. + + + + Cannot import Passkey + + + + Cannot import Passkey file "%1". Data is missing. + + + + Cannot import Passkey file "%1". Private key is missing or malformed. + + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + @@ -6018,6 +6593,30 @@ We recommend you use the AppImage available on our downloads page. Entropy: %1 bit Ентропија: %1 бит + + Password Quality: %1 + Квалитет Лозинке: %1 + + + Poor + Password quality + Слаб + + + Weak + Password quality + Слаб + + + Good + Password quality + Добар + + + Excellent + Password quality + Одличан + Confirm Delete Wordlist @@ -6063,14 +6662,37 @@ Do you want to overwrite it? Special Characters ПоÑебни карактери + + + PasswordWidget - Password Quality: %1 - Квалитет Лозинке: %1 + Passwords do not match + Лозинке Ñе не поклапају + + + Passwords match so far + Лозинке Ñе до Ñада подударају + + + Toggle Password (%1) + Пребаци лозинку (%1) + + + Generate Password (%1) + Генериши лозинку (%1) + + + Warning: Caps Lock enabled! + Упозорење: ТаÑтер за велика Ñлова је упаљен! + + + Quality: %1 + Poor Password quality - Слаб + Бедан Weak @@ -6087,6 +6709,10 @@ Do you want to overwrite it? Password quality Одличан + + Toggle password visibility using Control + H. Open the password generator using Control + G. + + PickcharsDialog @@ -6141,6 +6767,10 @@ Do you want to overwrite it? Continue ÐаÑтави + + Continue with weak password + + QObject @@ -6534,6 +7164,10 @@ Do you want to overwrite it? Too many arguments provided. + + Path of the database. + Путања до базе података. + Target decryption time in MS for the database. Циљно време дешифровања баÑе података у МС. @@ -6542,6 +7176,11 @@ Do you want to overwrite it? time време + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + + Set the key file for the database. ПоÑтавља Кључ-Датотеке за базу података. @@ -6554,10 +7193,6 @@ Do you want to overwrite it? Create a new database. Креирајте нову базу података. - - Path of the database. - Путања до базе података. - Invalid decryption time %1. Ðеважеће време дешифровања %1. @@ -6602,6 +7237,158 @@ Do you want to overwrite it? Successfully created new database. УÑпешно направљена нова база података. + + Unset the password for the database. + + + + Unset the key file for the database. + + + + Edit a database. + + + + Cannot use %1 and %2 at the same time. + + + + Could not change the database key. + + + + Database was not modified. + + + + Writing the database failed: %1 + ПиÑање базе података није уÑпело: %1 + + + Successfully edited the database. + + + + Cannot remove password: The database does not have a password. + + + + Cannot remove file key: The database does not have a file key. + + + + Loading the new key file failed: %1 + + + + Found unexpected Key type %1 + + + + Cannot remove all the keys from a database. + + + + Show a database's information. + Прикажите информације о бази података. + + + UUID: + UUID: + + + Name: + Име: + + + Description: + ОпиÑ: + + + Cipher: + Шифра: + + + KDF: + KDF: + + + Recycle bin is enabled. + Канта за отпад је омогућена. + + + Recycle bin is not enabled. + Канта за отпад је онемогућена. + + + Location + Смештај + + + Database created + + + + Last saved + ПоÑледње Ñачувавање + + + Unsaved changes + ÐеÑачуване промене + + + yes + да + + + no + не + + + Number of groups + Број група + + + Number of entries + Број уноÑа + + + Number of expired entries + Број уноÑа који Ñу иÑтекли + + + Unique passwords + ЈединÑтвене лозинке + + + Non-unique passwords + Дупликатне лозинке + + + Maximum password reuse + МакÑимална поновна употреба лозинке + + + Number of short passwords + Број кратких лозинки + + + Number of weak passwords + Број Ñлабих лозинки + + + Entries excluded from reports + УноÑи изузети из извештаја + + + Average password length + ПроÑечна дужина лозинке + + + %1 characters + %1 карактера + Word count for the diceware passphrase. Број речи за фразу као коцкице. @@ -6652,10 +7439,6 @@ Do you want to overwrite it? Enter new password for entry: Унети нову лозинку за уноÑ: - - Writing the database failed: %1 - ПиÑање базе података није уÑпело: %1 - Successfully edited entry %1. Ð£Ð½Ð¾Ñ %1 је уÑпешно уређен. @@ -6880,106 +7663,6 @@ Do you want to overwrite it? Successfully imported database. УÑпешан увоз базе података. - - Show a database's information. - Прикажите информације о бази података. - - - UUID: - UUID: - - - Name: - Име: - - - Description: - ОпиÑ: - - - Cipher: - Шифра: - - - KDF: - KDF: - - - Recycle bin is enabled. - Канта за отпад је омогућена. - - - Recycle bin is not enabled. - Канта за отпад је онемогућена. - - - Location - Смештај - - - Database created - - - - Last saved - ПоÑледње Ñачувавање - - - Unsaved changes - ÐеÑачуване промене - - - yes - да - - - no - не - - - Number of groups - Број група - - - Number of entries - Број уноÑа - - - Number of expired entries - Број уноÑа који Ñу иÑтекли - - - Unique passwords - ЈединÑтвене лозинке - - - Non-unique passwords - Дупликатне лозинке - - - Maximum password reuse - МакÑимална поновна употреба лозинке - - - Number of short passwords - Број кратких лозинки - - - Number of weak passwords - Број Ñлабих лозинки - - - Entries excluded from reports - УноÑи изузети из извештаја - - - Average password length - ПроÑечна дужина лозинке - - - %1 characters - %1 карактера - Unknown command %1 Ðепозната команда %1 @@ -7152,6 +7835,10 @@ Available commands: Show the protected attributes in clear text. Прикажите заштићене атрибуте у чиÑтом текÑту. + + Show all the attributes of the entry. + + Show the attachments of the entry. @@ -7222,6 +7909,10 @@ Please consider generating a new key file. Invalid YubiKey serial %1 Ðеважећи YubiKey Ñеријал %1 + + Please present or touch your YubiKey to continue. + + Enter password to encrypt database (optional): УнеÑите лозинку за шифровање базе података (опционално): @@ -7408,7 +8099,7 @@ Kernel: %3 %4 - Botan library must be at least 2.11.x, found %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 @@ -7649,10 +8340,6 @@ Kernel: %3 %4 read password of the database from stdin - - allow app screen recordering and screenshots - - Locked databases. @@ -7665,6 +8352,10 @@ Kernel: %3 %4 Another instance of KeePassXC is already running. Друга инÑтанца KeePassXC апликације је већ активна. + + KeePassXC is not running. No open database to lock + + Fatal error while testing the cryptographic functions. @@ -7673,10 +8364,6 @@ Kernel: %3 %4 KeePassXC - Error KeePassXC - Грешка - - Warning: Failed to prevent screenshots on a top level window! - - Database password: Лозинка базе података: @@ -7700,7 +8387,221 @@ Kernel: %3 %4 - Please present or touch your YubiKey to continue. + Warning: Failed to block screenshot capture on a top-level window. + + + + Invalid Cipher + + + + Invalid KDF + + + + Access to all entries is denied + + + + allow screenshots and app recording (Windows/macOS) + + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + + + + Credential is excluded + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Passkeys + + + + AES initialization failed + + + + AES encrypt failed + + + + Failed to store in Linux Keyring + + + + Polkit returned an error: %1 + + + + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + + + + Failed to init KeePassXC crypto. + + + + Failed to encrypt key data. + + + + Failed to get Windows Hello credential. + + + + Failed to decrypt key data. + + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7740,18 +8641,6 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - - - - Show only entries which have URL set - - - - Show only entries which have browser settings in custom data - - Double-click entries to edit. @@ -7816,17 +8705,25 @@ Kernel: %3 %4 Exclude from reports Изузети из извештаја - - - ReportsWidgetHealthcheck - Exclude expired entries from the report + Only show entries that have a URL - Also show entries that have been excluded from reports - Такође прикажи уноÑе који Ñу изузети из извештаја + Only show entries that have been explicitly allowed or denied + + + Show expired entries + + + + (Expired) + + + + + ReportsWidgetHealthcheck Hover over reason to show additional details. Double-click entries to edit. Пређите преко разлога да биÑте приказали додатне детаље. Двапут кликните на уноÑе за уређивање. @@ -7902,6 +8799,18 @@ Kernel: %3 %4 Exclude from reports Изузети из извештаја + + Show expired entries + + + + Show entries that have been excluded from reports + + + + (Expired) + + ReportsWidgetHibp @@ -7998,6 +8907,65 @@ Kernel: %3 %4 Изузети из извештаја + + ReportsWidgetPasskeys + + Export + Извоз + + + Import + Увези + + + List of entry URLs + + + + Please wait, list of entries with Passkeys is being updated… + + + + No entries with Passkeys. + + + + Title + ÐаÑлов + + + Path + Путања + + + Username + КориÑничко име + + + URLs + + + + Edit Entry… + + + + Delete Entry(s)… + + + + Relying Party + + + + Show expired entries + + + + (Expired) + + + ReportsWidgetStatistics @@ -8237,6 +9205,10 @@ Kernel: %3 %4 Search Help Претражи помоћ + + Save Search + + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8460,10 +9432,37 @@ Kernel: %3 %4 Извоз у %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All + Clear Search + + + + All Entries @@ -8475,6 +9474,25 @@ Kernel: %3 %4 + + TagView + + Remove Search + + + + Remove Tag + + + + Confirm Remove Tag + + + + Remove tag "%1" from all entries in this database? + + + TotpDialog @@ -8632,26 +9650,6 @@ Example: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Почните да безбедно Ñкладиштите лозинке у KeePassXC бази података - - Create new database - Креирајте нову базу података - - - Open existing database - Отворити поÑтојећу базу података - - - Import from KeePass 1 - Увоз из KeePass 1 - - - Import from 1Password - Увоз из 1Password - - - Import from CSV - Увоз из CSV - Recent databases Ðедавне базе података @@ -8664,6 +9662,18 @@ Example: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Добродошли у KeePassXC %1 + + Create Database + + + + Open Database + + + + Import File + + WinUtils @@ -8680,31 +9690,8 @@ Example: JBSWY3DPEHPK3PXP Ðије могуће региÑтровати глобалну пречицу - - WindowsHello - - Failed to init KeePassXC crypto. - - - - Failed to encrypt key data. - - - - Failed to get Windows Hello credential. - - - - Failed to decrypt key data. - - - YubiKey - - %1 No interface, slot %2 - - General: @@ -8716,14 +9703,6 @@ Example: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - ОÑвежи хардверÑке токене - - - Refresh - ОÑвежи - Hardware key slot selection Избор Ñлота хардверÑког кључа @@ -8756,10 +9735,6 @@ Example: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - - Detecting hardware keys… Откривање хардверÑких кључева… @@ -8768,28 +9743,21 @@ Example: JBSWY3DPEHPK3PXP No hardware keys detected Ðема хардверÑких кључева - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 погрешан Ñлот - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - - The YubiKey PCSC interface has not been initialized. - - Hardware key is currently in use. - Тренутно Ñе кориÑти хардверÑки кључ. - Could not find or access hardware key with serial number %1. Please present it to continue. @@ -8806,6 +9774,21 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + + + Press + USB Challenge-Response Key interaction request + ПритиÑни + + + Passive + USB Challenge-Response Key no interaction required + ПаÑивно + YubiKeyInterfaceUSB @@ -8813,14 +9796,6 @@ Example: JBSWY3DPEHPK3PXP Unknown Ðепознато - - (USB) %1 [%2] Configured Slot - %3 - - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - - Press USB Challenge-Response Key interaction request @@ -8835,10 +9810,6 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. - - Hardware key is currently in use. - Тренутно Ñе кориÑти хардверÑки кључ. - Could not find hardware key with serial number %1. Please plug it in to continue. @@ -8855,5 +9826,15 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_sv.ts b/share/translations/keepassxc_sv.ts index 120ab2ca8..d8122ec12 100644 --- a/share/translations/keepassxc_sv.ts +++ b/share/translations/keepassxc_sv.ts @@ -80,6 +80,10 @@ Details Detaljerat + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Ditt beslut kommer att sparas under den tid som bÃ¥de den begärande klienten OCH KeePassXC körs. + Remember Kom ihÃ¥g @@ -88,10 +92,6 @@ Allow Selected TillÃ¥t markerade - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - Ditt beslut kommer att sparas under den tid som bÃ¥de den begärande klienten OCH KeePassXC körs. - Deny All && Future Neka alla && framtida @@ -122,6 +122,10 @@ Use OpenSSH Använd OpenSSH + + Use both agents + Använd bÃ¥da agenterna + SSH_AUTH_SOCK override SSH_AUTH_SOCK Ã¥sidosättning @@ -150,10 +154,6 @@ SSH Agent connection is working! SSH-tjänstens anslutning arbetar! - - Use both agents - Använd bÃ¥da agenterna - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security Säkerhet + + This setting cannot be enabled when minimize on unlock is enabled. + Denna inställning kan inte aktiveras om minimering vid upplÃ¥sning är aktiverad. + Access error for config file %1 Ã…tkomstfel för konfigurationsfil %1 @@ -256,6 +260,10 @@ Remember previously used databases Kom ihÃ¥g tidigare databaser + + recent files + tidigare filer + Load previously open databases on startup Läs in tidigare öppna databaser vid programstart @@ -284,7 +292,7 @@ days On database unlock, show entries that will expire within %1 days - dagar + dagar will expire within @@ -408,6 +416,10 @@ Toolbar button style: Knappstil för verktygsfält: + + Show passwords in color + Visa lösenord i färg + Use monospaced font for notes Använd teckensnitt med fast teckenbredd för anteckningar @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons Använd DuckDuckGo för att ladda ner webbplatsikoner + + Hide TOTP in the entry preview panel + Dölj TOTP i förhandsgranskningspanelen + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 Mycket lÃ¥ng fördröjning, max är %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + Posten har inget attribut för PICKCHARS: %1 + Invalid conversion type: %1 Ogiltig konverteringstyp: %1 @@ -804,13 +824,13 @@ Ctrl+4 - Använd virtuellt tangentbord (Endast Windows)</p> Disable for this site Inaktivera för denna sida + + Undo + Ã…ngra + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser spara post - Ok OK @@ -825,13 +845,70 @@ Please select the correct database for saving credentials. Du ha flera databaser öppna. Välj rätt databas för att spara inloggningsuppgifterna. + + KeePassXC - Select Database + KeePassXC - Välj databas + + + + BrowserPasskeysConfirmationDialog + + Cancel + Avbryt + + + Update + Uppdatera + + + Authenticate + Autentisera + + + Register new + Registrera ny + + + Register + Registrera + + + Timeout in <b>%n</b> seconds... + Tidsgränsen löper ut om <b>%n</b> sekund...Tidsgränsen löper ut om <b>%n</b> sekunder... + + + Do you want to register Passkey for: + Vill du registrera passnyckel för: + + + Existing Passkey found. +Do you want to register a new Passkey for: + Befintlig passnyckel hittad. +Vill du registrera en ny passnyckel för: + + + Select the existing Passkey and press Update to replace it. + Markera den befintliga passnyckeln och tryck "Uppdatera" för att ersätta den. + + + Authenticate Passkey credentials for: + Autentisera passnyckeluppgifter för: + + + Relying Party: %1 + Förlitande part: %1 + + + Username: %1 + Användarnamn: %1 + + + KeePassXC - Passkey credentials + KeePassXC - Passnyckeluppgifter + BrowserService - - KeePassXC: Create a new group - KeePassXC: Skapa en ny grupp - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -840,10 +917,6 @@ Do you want to create this group? Vill du skapa denna grupp? - - KeePassXC: New key association request - KeePassXC: Ny nyckelassocieringsbegäran - You have received an association request for the following database: %1 @@ -860,28 +933,16 @@ chrome-laptop. Save and allow access Spara och tillÃ¥t Ã¥tkomst - - KeePassXC: Overwrite existing key? - KeePassXC: Vill du skriva över befintlig nyckel? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? En delad krypteringsnyckel med namnet "%1" finns redan. Vill du skriva över den? - - KeePassXC: Update Entry - KeePassXC: Uppdatera post - Do you want to update the information in %1 - %2? Vill du uppdatera informationen i %1 - %2? - - KeePassXC: Delete entry - KeePassXC: Ta bort post - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -891,50 +952,46 @@ Vill du ta bort posten? - Converting attributes to custom data… - Konverterar attribut till anpassad data... + %1 (Passkey) + %1 (Passnyckel) - Abort - Avbryt + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + Posten har redan en passnyckel. +Vill du skriva över passnyckeln i %1 - %2? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Konverterade KeePassHTTP-attribut + KeePassXC - Create a new group + KeePassXC - Skapa en ny grupp - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Konverterade attribut frÃ¥n %1 post(er). -Flyttade %2 nycklar till anpassad data. - - - Successfully moved %n keys to custom data. - Flyttade %n nyckel till anpassad data.Flyttade %n nycklar till anpassad data. + Disable + Inaktivera - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Hittade ingen post med KeePassHTTP-attribut! + KeePassXC - Overwrite existing key? + KeePassXC - Vill du skriva över befintlig nyckel? - The active database does not contain an entry with KeePassHTTP attributes. - Den aktiva databasen innehÃ¥ller inte nÃ¥gon post med KeePassHTTP-attribut. + KeePassXC - Update Passkey + KeePassXC - Uppdatera Passnyckel - Don't show this warning again - Visa inte denna varning igen + KeePassXC - Update Entry + KeePassXC - Uppdatera post - KeePassXC: Legacy browser integration settings detected - KeePassXC: FörÃ¥ldrade inställningar för webbläsarintegrering har identifierats + KeePassXC - Delete entry + KeePassXC - Ta bort post - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Dina inställningar för KeePassXC-Browser behöver flyttas in i databasinställningarna. -Detta är nödvändigt för att behÃ¥lla dina aktuella webbläsaranslutningar. -Vill du migrera dina befintliga inställningar nu? + KeePassXC - New key association request + KeePassXC - Ny nyckelassocieringsbegäran + + + Passkey + Passnyckel @@ -1136,20 +1193,12 @@ Vill du migrera dina befintliga inställningar nu? KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2 and %3. %4 - KeePassXC-Browser behövs för att webbläsarintegrationen ska fungera. <br />Ladda ner dent för %1 och %2 och %3. %4 + KeePassXC-Browser behövs för att webbläsarintegrationen ska fungera. <br />Ladda ner det för %1 och %2 och %3. %4 Please see special instructions for browser extension use below Se specialinstruktioner för webbläsarintegreringens användning nedan - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Fel:</b> Det gÃ¥r inte att hitta den anpassade proxyplatsen!<br/>Webbläsarintegration KOMMER INTE ATT FUNGERA utan proxyprogrammet. - - - <b>Warning:</b> The following options can be dangerous! - <b>Varning:</b> Följande alternativ kan vara farliga! - Executable Files Körbara filer @@ -1166,6 +1215,38 @@ Vill du migrera dina befintliga inställningar nu? Select native messaging host folder location Välj plats för den inbyggda värdmappen för meddelanden + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + TillÃ¥t keepassxc-proxy att lista alla poster med titel, URL och UUID i anslutna databaser. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + TillÃ¥t begränsad Ã¥tkomst till alla poster i anslutna databaser (ignorerar begränsningar för webbplatsÃ¥tkomst) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Varning!</b> Justera dessa inställningar endast om nödvändigt. + + + The custom proxy location does not exist. + Den anpassade proxyplatsen finns inte. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Fel:</b> Den anpassade proxyplatsen finns inte. Korrigera det i avancerade inställningar. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Fel:</b> Den installerade körbara proxyfilen saknas pÃ¥ den förväntade platsen: %1<br/>Ange en anpassad proxyplats i de avancerade inställningarna eller installera om programmet. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + TillÃ¥ter användning av osäker http://localhost med passnycklar för teständamÃ¥l. + + + Allow using localhost with Passkeys + TillÃ¥t användning av localhost med passnycklar + CloneDialog @@ -1188,14 +1269,6 @@ Vill du migrera dina befintliga inställningar nu? CsvImportWidget - - Import CSV fields - Importera CSV-fält - - - filename - filnamn - size, rows, columns storlek, rader, kolumner @@ -1304,50 +1377,29 @@ Vill du migrera dina befintliga inställningar nu? Column %1 Kolumn %1 - - Imported from CSV file - Importerat frÃ¥n CSV-fil - - - Original data: - Ursprunglig data: - - - Error(s) detected in CSV file! - Fel upptäckta i CSV-fil! - [%n more message(s) skipped] [%n meddelande hoppades över][%n meddelanden hoppades över] - Error - Fel + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - CSV-import: Skrivare har fel: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n byte%n byte - %n row(s) + CSV row count %n rad%n rader %n column(s) + CSV column count %n kolumn%n kolumner @@ -1376,7 +1428,7 @@ Vill du migrera dina befintliga inställningar nu? Database save is already in progress. - Dtabasens sparande pÃ¥gÃ¥r redan. + Databasens sparande pÃ¥gÃ¥r redan. Could not save, database has not been initialized! @@ -1422,40 +1474,10 @@ Säkerhetskopierad databas hittad i %2 Password field Lösenord - - Enter Additional Credentials (if any): - Ange fler autentiseringsuppgifter (om det finns nÃ¥gra): - - - Key File: - Nyckelfil: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>Som tillägg till ett lösenord, kan du använda en hemlig fil för att förbättra säkerheten i din databas. En sÃ¥dan fil kan genereras i databasens säkerhetsinställningar.</p><p>Detta är <strong>inte</strong> din *.kdbx-databasfil!<br>Om du inte har nÃ¥gon nyckelfil, lämnar du fältet tomt.</p><p>Klicka för mer information...</p> - - - Key file help - Nyckelfilshjälp - Hardware key slot selection Val av plats för hÃ¥rdvarunyckel - - Hardware Key: - HÃ¥rdvarunyckel: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>Du kan använda en hÃ¥rdvarunyckel sÃ¥som <strong>YubiKey</strong> eller <strong>OnlyKey</strong> med anslutningsplatser konfigurerade för HMAC-SHA1.</p> -<p>Klicka för mer information...</p> - - - Hardware key help - Hjälp med hÃ¥rdvarunyckel - Key file to unlock the database Nyckelfil för att lÃ¥sa upp databasen @@ -1468,14 +1490,6 @@ Säkerhetskopierad databas hittad i %2 Browse… Bläddra… - - Refresh hardware tokens - Uppdatera hÃ¥rdvaru-tokens - - - Refresh - Uppdatera - Unlock Database LÃ¥s upp databasen @@ -1539,14 +1553,6 @@ För att förhindra att detta fel uppstÃ¥r igen, mÃ¥ste du gÃ¥ till "Databa Retry with empty password Försök med tomt lösenord - - Failed to authenticate with Windows Hello - Kunde inte autentisera med Windows Hello - - - Failed to authenticate with Touch ID - Kunde inte autentisera med Touch ID - Failed to open key file: %1 Kunde inte öppna nyckelfil: %1 @@ -1580,22 +1586,64 @@ För att förhindra att detta fel uppstÃ¥r igen, mÃ¥ste du gÃ¥ till "Databa Kan inte använda en databasfil som nyckelfil - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Du kan inte använda din databasfil som nyckelfil. -Om du inte har nÃ¥gon nyckelfil, lämnar du fältet tomt. + authenticate to access the database + autentisera för Ã¥tkomst till databasen - Detecting hardware keys… - Identifierar hÃ¥rdvarunycklar... + Failed to authenticate with Quick Unlock: %1 + Kunde inte autentisera med Quick Unlock: %1 - No hardware keys detected - Inga hÃ¥rdvarunycklar identifierade + Select Key File: + Välj nyckelfil: - Select hardware key… - Välj hÃ¥rdvarunyckel... + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + <p>Som tillägg till ett lösenord, kan du använda en hemlig fil för att förbättra säkerheten i din databas. En sÃ¥dan fil kan genereras i databasens säkerhetsinställningar.</p><p>Detta är <strong>inte</strong> din *.kdbx-databasfil!</p> + + + Click to add a key file. + Klicka för att lägga till en nyckelfil. + + + <a href="#" style="text-decoration: underline">I have a key file</a> + <a href="#" style="text-decoration: underline">Jag har en nyckelfil</a> + + + Use hardware key [Serial: %1] + Använd hÃ¥rdvarunyckel [Serienummer: %1] + + + Use hardware key + Använd hÃ¥rdvarunyckel + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + Din databasfil är INTE en nyckelfil! +Om du inte har nÃ¥gon nyckelfil eller inte vet vad det är, behöver du inte välja nÃ¥got. + + + KeePassXC database file selected + KeePassXC databasfil vald + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + Filen du valde ser ut som en databasfil. +En databasfil är INTE en nyckelfil! + +Vill du verkligen fortsätta med den här filen? + + + No hardware keys found. + Inga hÃ¥rdvarunycklar hittades. + + + Refresh Hardware Keys + Uppdatera hÃ¥rdvarunycklar @@ -1607,10 +1655,6 @@ Om du inte har nÃ¥gon nyckelfil, lämnar du fältet tomt. DatabaseSettingsDialog - - Advanced Settings - Avancerade inställningar - General Allmänt @@ -1642,18 +1686,6 @@ Om du inte har nÃ¥gon nyckelfil, lämnar du fältet tomt. KeePassXC-Browser settings KeePassXC-Browser-inställningar - - Convert KeePassHTTP data - Konvertera KeePassHTTP-data - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - Konvertera äldre KeePassHTTP-attribut till KeePassXC-Browser-kompatibel anpassad data - - - Refresh database root group ID - Uppdatera databasens rotgrupps-ID - Disconnect all browsers Koppla bort alla webbläsare @@ -1662,6 +1694,10 @@ Om du inte har nÃ¥gon nyckelfil, lämnar du fältet tomt. Forget all site-specific settings on entries Glöm alla sidspecifika inställningar i befintliga poster + + Refresh database root group ID + Uppdatera databasens rotgrupps-ID + Stored keys Lagrade nycklar @@ -1710,18 +1746,10 @@ This may prevent connection to the browser plugin. Vill du verkligen koppla bort alla webbläsare? Detta kan förhindra anslutning till webbläsartillägget. - - KeePassXC: No keys found - KeePassXC: Inga nycklar hittades - No shared encryption keys found in KeePassXC settings. Inga delade krypteringsnycklar hittades i KeePassXC:s inställningar. - - KeePassXC: Removed keys from database - KeePassXC: Tog bort nycklar frÃ¥n databasen - Successfully removed %n encryption key(s) from KeePassXC settings. Tog bort %n krypteringsnyckel frÃ¥n KeePassXC:s inställningar.Tog bort %n krypteringsnycklar frÃ¥n KeePassXC:s inställningar. @@ -1740,32 +1768,14 @@ Behörighet att komma Ã¥t posterna kommer att Ã¥terkallas. Abort Avbryt - - KeePassXC: Removed permissions - KeePassXC: Tog bort behörigheter - Successfully removed permissions from %n entry(s). Tog bort behörighet frÃ¥n %n post.Tog bort behörigheter frÃ¥n %n poster. - - KeePassXC: No entry with permissions found! - KeePassXC: Ingen post med behörigheter hittades! - The active database does not contain an entry with permissions. Den aktiva databasen innehÃ¥ller ingen post med behörigheter. - - Move KeePassHTTP attributes to custom data - Flytta KeePassHTTP-attribut till anpassad data - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Vill du verkligen flytta all äldre webbläsarintegrationsdata till den senaste standarden? -Detta är nödvändigt för att fÃ¥ kompatibilitet med webbläsartillägget. - Refresh database ID Uppdatera databas-ID @@ -1776,6 +1786,26 @@ This is only necessary if your database is a copy of another and the browser ext Vill du verkligen uppdatera databas-ID? Detta är bara nödvändigt om databasen är en kopia av en annan och webbläsartillägget inte kan ansluta. + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Konvertera äldre KeePassHTTP-attribut till KeePassXC-Browser-kompatibel anpassad data + + + No keys found + Inga nycklar hittades + + + Removed keys from database + Tog bort nycklar frÃ¥n databasen + + + Removed permissions + Tog bort behörigheter + + + No entry with permissions found! + Ingen post med behörigheter hittades! + DatabaseSettingsWidgetDatabaseKey @@ -1815,6 +1845,18 @@ Vill du verkligen fortsätta utan lösenord? Failed to change database credentials Kunde inte ändra databasens inloggningsuppgifter + + Weak password + Svagt lösenord + + + You must enter a stronger password to protect your database. + Du mÃ¥ste ange ett starkare lösenord för att skydda din databas. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + Detta är ett svagt lösenord! För att bättre skydda dina hemligheter, bör du välja ett starkare lösenord. + DatabaseSettingsWidgetEncryption @@ -1822,14 +1864,6 @@ Vill du verkligen fortsätta utan lösenord? Decryption Time: Dekrypteringstid: - - Change existing decryption time - Ändra befintlig avkrypteringstid - - - Change - Ändra - Decryption time in seconds Avkrypteringstid i sekunder @@ -1910,11 +1944,6 @@ Vill du verkligen fortsätta utan lösenord? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - oförändrad - Number of rounds too high Key transformation rounds @@ -1967,6 +1996,18 @@ Om du behÃ¥ller detta antal, kommer din databas inte att vara skyddad mot brute Threads for parallel execution (KDF settings) trÃ¥d trÃ¥dar + + Encryption Settings: + Krypteringsinställningar: + + + Basic + Grundläggande + + + Advanced + Avancerat + DatabaseSettingsWidgetFdoSecrets @@ -2025,18 +2066,10 @@ Om du behÃ¥ller detta antal, kommer din databas inte att vara skyddad mot brute Maximum number of history items per entry Max antal historikobjekt per post - - Max. history items: - Max antal historikposter: - Maximum size of history per entry Max historikstorlek per post - - Max. history size: - Maximal historikstorlek: - MiB MiB @@ -2067,6 +2100,64 @@ Denna Ã¥tgärd kan inte Ã¥ngras. (old) (gammal) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + När du sparar den här inställningen eller redigerar +en post kommer de äldsta historikobjekten i en +post att tas bort, sÃ¥ att endast den angivna mängden +poster blir kvar som mest. + + + Limit the amount of history items per entry to: + Begränsa antalet historikobjekt per post till: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + När du sparar den här inställningen eller redigerar en +post kommer de äldsta historiska objekten i en post att +tas bort sÃ¥ att de Ã¥terstÃ¥ende historikobjekten läggs +till det angivna beloppet som högst. + + + Limit the total size of history items per entry to: + Begränsa antalet historikobjekt per post till: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Flytta poster till en papperskorgsgrupp +i stället för att ta bort dem frÃ¥n databasen. +Poster som tas bort frÃ¥n papperskorgen +tas ocksÃ¥ bort frÃ¥n databasen. + + + Autosave delay since last change + Fördröjning av automatiskt sparande sedan senaste ändring + + + Autosave delay + Fördröjning av automatiskt sparande + + + Autosave delay since last change in minutes + Fördröjning av automatiskt sparande sedan senaste ändring i minuter + + + min + min + + + Autosave delay since last change checkbox + Kryssruta för fördröjning av automatiskt sparande sedan senaste ändring + DatabaseSettingsWidgetKeeShare @@ -2194,26 +2285,10 @@ Detta är definitivt ett programfel, rapportera det till utvecklarna.CSV file CSV-fil - - Select CSV file - Välj CSV-fil - Merge database SlÃ¥ samman databas - - KeePass 1 database - KeePass 1-databas - - - Open KeePass 1 database - Öppna KeePass 1-databas - - - Open OPVault - Öppna OPVault - Export database to CSV file Exportera databasen till en CSV-fil @@ -2226,6 +2301,18 @@ Detta är definitivt ett programfel, rapportera det till utvecklarna.Writing the HTML file failed. Kunde inte skriva HTML-filen. + + Export database to XML file + Exportera databas till XML-fil + + + XML file + XML-fil + + + Writing the XML file failed + Kunde inte skriva XML-filen + Export Confirmation Exportbekräftelse @@ -2234,15 +2321,6 @@ Detta är definitivt ett programfel, rapportera det till utvecklarna.You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? Du är pÃ¥ väg att exportera din databas till en okrypterad fil. Detta kommer att lämna dina lösenord annan känslig information i ett sÃ¥rbart skick (klartext). Vill du verkligen fortsätta? - - New Database - Ny databas - - - %1 [New Database] - Database tab name modifier - %1 [Ny databas] - %1 [Locked] Database tab name modifier @@ -2252,8 +2330,8 @@ Detta är definitivt ett programfel, rapportera det till utvecklarna. DatabaseWidget - Database Tags - Databastaggar + Searches and Tags + Sök och taggar Searching… @@ -2303,6 +2381,10 @@ Detta är definitivt ett programfel, rapportera det till utvecklarna.Expired entries UtgÃ¥ngna poster + + Entries expiring within %1 day(s) + Poster som löper ut inom %1 dagPoster som löper ut inom %1 dagar + No current database. Ingen aktuell databas. @@ -2327,6 +2409,18 @@ Detta är definitivt ett programfel, rapportera det till utvecklarna.No Results Inget resultat + + Save + Spara + + + Enter a unique name or overwrite an existing search from the list: + Ange ett unikt namn eller skriv över en befintlig sökning frÃ¥n listan: + + + Save Search + Spara sökning + Lock Database? Vill du lÃ¥sa databasen? @@ -2417,9 +2511,14 @@ Vill du inaktivera "Spara säkert" och försöka igen? Could not find database file: %1 Kunde inte hitta databasfilen: %1 - - Entries expiring within %1 day(s) - Poster som löper ut inom %1 dagPoster som löper ut inom %1 dagar + + New Database + Ny databas + + + %1 [New Database] + Database tab name modifier + %1 [Ny databas] @@ -2562,6 +2661,10 @@ Vill du korrigera det? Hide Dölj + + %n hour(s) + %1 timma%1 timmar + %n week(s) %n vecka%n veckor @@ -2574,10 +2677,6 @@ Vill du korrigera det? %n year(s) %n Ã¥r%n Ã¥r - - %n hour(s) - %1 timma%1 timmar - EditEntryWidgetAdvanced @@ -2696,10 +2795,20 @@ Vill du korrigera det? Add new window association Lägg till ny fönsterassociation + + + + Add item + + + Remove selected window association Ta bort markerad fönsterassociation + + - + Remove item + - + Window title: Fönstertitel: @@ -2724,16 +2833,6 @@ Vill du korrigera det? Custom Auto-Type sequence for this window Anpassad autoskrivsekvens för detta fönster - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2835,22 +2934,10 @@ Vill du korrigera det? Notes field Anteckningar - - Toggle the checkbox to reveal the notes section. - Klicka i kryssrutan för att visa anteckningssektionen. - Username field Användarnamn - - Toggle notes visible - Visa/Dölj anteckningar - - - Notes: - Anteckningar: - Expiration field Förfaller @@ -2867,14 +2954,6 @@ Vill du korrigera det? Presets Förinställningar - - Password: - Lösenord: - - - URL: - URL: - Url field URL @@ -2883,18 +2962,10 @@ Vill du korrigera det? Download favicon for URL Ladda ner favicon för URL:en - - Title: - Titel: - Title field Titel - - Username: - Användarnamn: - Password field Lösenord @@ -2903,18 +2974,42 @@ Vill du korrigera det? Toggle expiration Förfallodag pÃ¥/av - - Expires: - Förfaller: - - - Tags: - Taggar: - Tags list Tagglista + + &Username: + &Användarnamn: + + + &Title: + &Titel: + + + &Password: + &Lösenord: + + + UR&L: + &URL: + + + &Notes: + A&nteckningar: + + + Toggle notes visibility + Visa/Dölj anteckningar + + + T&ags: + Ta&ggar: + + + &Expires: + &Förfaller: + EditEntryWidgetSSHAgent @@ -2954,19 +3049,6 @@ Vill du korrigera det? Private key Privat nyckel - - External file - Extern fil - - - Browser for key file - Bläddra efter nyckelfil - - - Browse… - Button for opening file dialog - Bläddra… - Attachment Bilaga @@ -2983,6 +3065,23 @@ Vill du korrigera det? Remove from agent Ta bort frÃ¥n bakgrundstjänsten + + External file + Extern fil + + + Browser for key file + Bläddra efter nyckelfil + + + Browse… + Button for opening file dialog + Bläddra… + + + Generate + Generera + Select attachment file Välj bilagefil @@ -3018,10 +3117,6 @@ Vill du korrigera det? Icon Ikon - - Browser Integration - Webbläsarintegration - Properties Egenskaper @@ -3038,6 +3133,10 @@ Vill du korrigera det? Group has unsaved changes Grupp har osparade ändringar + + Browser Integration + Webbläsarintegration + Enable Aktivera @@ -3053,10 +3152,6 @@ Vill du korrigera det? EditGroupWidgetBrowser - - Edit Group - Redigera grupp - These settings affect to the group's behaviour with the browser extension. Dessa inställningar pÃ¥verkar gruppens beteende med webbläsartillägget. @@ -3093,6 +3188,22 @@ Vill du korrigera det? Do not use HTTP Auth toggle for this and sub groups Använd inte HTTP Auth-växlingsknappen för denna och undergrupper + + Omit WWW subdomain from matching: + Utelämna WWW-underdomänen frÃ¥n matchning: + + + Omit WWW subdomain from matching toggle for this and sub groups + Utelämna WWW-underdomän frÃ¥n matchningväxling för denna och undergrupper + + + Restrict matching to given browser key: + Begränsa matchning till angiven webbläsarnyckel: + + + Restrict matching to given browser key toggle for this and sub groups + Begränsa matchning till en viss webbläsarnyckel för denna och undergrupper + EditGroupWidgetKeeShare @@ -3325,10 +3436,6 @@ Filtyper som stöds är: %1. Unable to fetch favicon. Kunde inte hämta favicon. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Du kan aktivera ikontjänsten frÃ¥n DuckDuckGo under Verktyg -> Inställningar -> Säkerhet - Existing icon selected. Befintlig ikon vald. @@ -3361,6 +3468,10 @@ Filtyper som stöds är: %1. The following icon(s) failed: Följande ikon misslyckades:Följande ikoner misslyckades: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + Du kan aktivera ikontjänsten frÃ¥n DuckDuckGo under Programinställningar -> Säkerhet + EditWidgetProperties @@ -3798,6 +3909,10 @@ Fel: %1 Has TOTP Har TOTP + + Background Color + Bakgrundsfärg + EntryPreviewWidget @@ -3818,8 +3933,8 @@ Fel: %1 Lösenord - Notes - Anteckningar + URL + URL Expiration @@ -3838,8 +3953,8 @@ Fel: %1 Användarnamn - URL - URL + Notes + Anteckningar Advanced @@ -3889,6 +4004,10 @@ Fel: %1 Never Aldrig + + Double click to copy value + Dubbelklick för att kopiera värde + Enabled Aktiverad @@ -3897,6 +4016,10 @@ Fel: %1 Disabled Inaktiverad + + Double click to copy to clipboard + Dubbelklicka för att kopiera till urklipp + EntryURLModel @@ -3904,6 +4027,10 @@ Fel: %1 Invalid URL Ogiltig URL + + Duplicate URL + Duplicera URL + EntryView @@ -3919,6 +4046,10 @@ Fel: %1 Reset to defaults Ã…terställ till standardvärden + + + %1 entry(s)... + + %1 post...+ %1 poster... + ExportDialog @@ -4139,6 +4270,147 @@ Du kan aktivera ikontjänsten frÃ¥n DuckDuckGo, i säkerhetssektionen av program Laddar ner favikoner (%1/%2)… + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Guidesida + + + Entry count: %1 + + + + Group + Grupp + + + Title + Titel + + + Username + Användarnamn + + + Password + Lösenord + + + Url + + + + + ImportWizardPageSelect + + Form + Formulär + + + Import File Selection + + + + Password: + Lösenord: + + + Key File: + Nyckelfil: + + + Browse… + Bläddra… + + + Import Into: + + + + New Database + Ny databas + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Öppna OPVault + + + Select import file + + + + All files + Alla filer + + + Key files + Nyckelfiler + + + Select key file + Välj nyckelfil + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4180,11 +4452,11 @@ Om detta upprepas, kan din databasfil vara skadad. Invalid header field length: field %1 - + Ogiltig storlek pÃ¥ sidhuvudets fältlängd: Fält %1 Invalid header data length: field %1, %2 expected, %3 found - + Ogiltig rubrikdatalängd: fältet %1, %2 förväntat, %3 hittades @@ -4241,11 +4513,11 @@ Om detta upprepas, kan din databasfil vara skadad. Invalid header field length: field %1 - + Ogiltig storlek pÃ¥ sidhuvudets fältlängd: Fält %1 Invalid header data length: field %1, %2 expected, %3 found - + Ogiltig rubrikdatalängd: fältet %1, %2 förväntat, %3 hittades Failed to open buffer for KDF parameters in header @@ -4265,11 +4537,11 @@ Om detta upprepas, kan din databasfil vara skadad. Invalid inner header field length: field %1 - + Ogiltig längd pÃ¥ inre sidhuvudfält: Fält %1 Invalid inner header data length: field %1, %2 expected, %3 found - + Ogiltig datalängd för inre rubrik: fält %1, %2 förväntat, %3 hittades Invalid inner header binary size @@ -4373,7 +4645,7 @@ Om detta upprepas, kan din databasfil vara skadad. Invalid compression flags length - + Ogiltig längd pÃ¥ komprimeringsflaggor Unsupported compression algorithm @@ -4393,15 +4665,15 @@ Om detta upprepas, kan din databasfil vara skadad. Invalid start bytes size - + Ogiltig startbytestorlek Invalid random stream id size - + Ogiltig storlek pÃ¥ slumpmässig ström-id Invalid inner random stream cipher - + Ogiltigt inre slumpmässigt strömchiffer Failed to read database file. @@ -4573,17 +4845,6 @@ Rad %2, kolumn: %3 Kunde inte öppna privat nyckel - - KeePass1OpenWidget - - Import KeePass1 Database - Importera KeePass1-databas - - - Unable to open the database. - Kan inte öppna databasen. - - KeePass1Reader @@ -4655,7 +4916,7 @@ Om detta upprepas, kan din databasfil vara skadad. Invalid group field type number - + Ogiltigt fältstypnummer för grupp Invalid group field size @@ -4663,11 +4924,11 @@ Om detta upprepas, kan din databasfil vara skadad. Read group field data doesn't match size - + Inläst fältdata för grupp stämmer inte med storleken Incorrect group id field size - + Felaktig fältstorlek för grupp-id Incorrect group creation time field size @@ -4703,7 +4964,7 @@ Om detta upprepas, kan din databasfil vara skadad. Missing entry field type number - + Typnummer för inmatningsfält saknas Invalid entry field size @@ -4940,10 +5201,6 @@ Vill du verkligen fortsätta med den här filen? &Recent Databases &Tidigare databaser - - &Import - &Importera - &Export &Exportera @@ -4964,6 +5221,10 @@ Vill du verkligen fortsätta med den här filen? TOTP TOTP + + Tags + Taggar + &Groups &Grupper @@ -5008,34 +5269,18 @@ Vill du verkligen fortsätta med den här filen? &New Database… &Ny databas... - - Create a new database - Skapa en ny databas - &Merge From Database… S&lÃ¥ samman frÃ¥n databas... - - Merge from another KDBX database - Infoga frÃ¥n annan KDBX-databas - &New Entry… &Ny post... - - Add a new entry - Lägg till en ny post - &Edit Entry… &Redigera post... - - View or edit entry - Visa eller redigera posten - &Delete Entry… &Ta bort post... @@ -5044,10 +5289,6 @@ Vill du verkligen fortsätta med den här filen? &New Group… &Ny grupp... - - Add a new group - Lägg till en ny grupp - &Edit Group… &Redigera grupp... @@ -5080,18 +5321,10 @@ Vill du verkligen fortsätta med den här filen? Database &Reports… Databas&rapporter… - - Statistics, health check, etc. - Statistik, hälsokontroll, etc. - &Database Settings… &Databasinställningar... - - Database settings - Databasinställningar - &Clone Entry… &Klona post... @@ -5100,34 +5333,18 @@ Vill du verkligen fortsätta med den här filen? Move u&p Flytta u&pp - - Move entry one step up - Flytta upp posten ett steg - Move do&wn Flytta &ner - - Move entry one step down - Flytta ner posten ett steg - Copy &Username Kopiera an&vändarnamn - - Copy username to clipboard - Kopiera användarnamn till urklipp - Copy &Password Kopiera &lösenord - - Copy password to clipboard - Kopiera lösenord till urklipp - &Settings &Inställningar @@ -5161,25 +5378,13 @@ Vill du verkligen fortsätta med den här filen? &Titel - Copy title to clipboard - Kopiera titel till urklipp - - - &URL - &URL - - - Copy URL to clipboard - Kopiera URL till urklipp + Copy &URL + Kopiera &URL &Notes &Anteckningar - - Copy notes to clipboard - Kopiera anteckningar till urklipp - &CSV File… &CSV-fil... @@ -5192,26 +5397,14 @@ Vill du verkligen fortsätta med den här filen? KeePass 1 Database… KeePass 1-databas… - - Import a KeePass 1 database - Importera en KeePass1-databas - 1Password Vault… 1Password Vault… - - Import a 1Password Vault - Importera ett 1Password-valv - CSV File… CSV-file… - - Import a CSV file - Importera en CSV-fil - Show TOTP Visa TOTP @@ -5228,6 +5421,10 @@ Vill du verkligen fortsätta med den här filen? Copy &TOTP Kopiera &TOTP + + Copy Password and TOTP + Kopiera lösenord och TOTP + E&mpty recycle bin T&öm papperskorg @@ -5252,10 +5449,6 @@ Vill du verkligen fortsätta med den här filen? &Online Help &Online-hjälp - - Go to online documentation - GÃ¥ till online-dokumentationen - &User Guide &Användarmanual @@ -5324,6 +5517,10 @@ Vill du verkligen fortsätta med den här filen? Clone Group... Klona grupp… + + &XML File… + &XML-fil... + Clear history Rensa historiken @@ -5356,6 +5553,10 @@ We recommend you use the AppImage available on our downloads page. VARNING! Din Qt-version kan orsaka att KeePassXC kraschar med ett skärmtangentbord. Vi rekommenderar att du använder den AppImage som finns pÃ¥ vÃ¥r nerladdningssida. + + No Tags + Inga taggar + Restore Entry(s) Ã…terställ postÃ…terställ poster @@ -5384,6 +5585,10 @@ Vi rekommenderar att du använder den AppImage som finns pÃ¥ vÃ¥r nerladdningssi Quit KeePassXC Avsluta KeePassXC + + %1 Entry(s) + %1 post%1 poster + Please present or touch your YubiKey to continue… Presentera eller rör vid din YubiKey för att fortsätta... @@ -5396,6 +5601,274 @@ Vi rekommenderar att du använder den AppImage som finns pÃ¥ vÃ¥r nerladdningssi You must restart the application to apply this setting. Would you like to restart now? Du mÃ¥ste starta om programmet för att tillämpa den här inställningen. Vill du starta om nu? + + Allow Screen Capture + TillÃ¥t skärmklipp + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Passnycklar... + + + Import Passkey + Importera passnyckel + + + Quit Application + Avsluta programmet + + + Open About Dialog + Öppna Om-sidan + + + Open Database + Öppna databas + + + Create Database + Skapa databas + + + Merge From Database + Infoga frÃ¥n databas + + + Create Entry + Skapa post + + + Edit Entry + Redigera post + + + Delete Entry + Ta bort post + + + Create Group + Skapa grupp + + + Edit Group + Redigera grupp + + + Delete Group + Ta bort grupp + + + Download All Favicons + Ladda ner alla favikoner + + + Sort Groups A-Z + Sortera grupper A-Z + + + Sort Groups Z-A + Sortera grupper Z-A + + + Save Database As + Spara databas som + + + Show Database Security + Visa databassäkerhet + + + Show Database Reports + Visa databasrapporter + + + Show Database Settings + Visa databasinställningar + + + Show Passkeys + Visa passnycklar + + + Clone Entry + Klona post + + + Move Entry Up + Flytta upp post + + + Move Entry Down + Flytta ner post + + + Copy Username + Kopiera användarnamn + + + Copy Password + Kopiera lösenord + + + Show Application Settings + Visa programinställningar + + + Show Password Generator + Visa lösenordsgenerator + + + Perform Auto-Type: {USERNAME} + Utför autoskriv: {ANVÄNDARNAMN} + + + Perform Auto-Type: {USERNAME}{ENTER} + Utför autoskriv: {ANVÄNDARNAMN}{RETUR} + + + Perform Auto-Type: {PASSWORD} + Utför autoskriv: {LÖSENORD} + + + Perform Auto-Type: {PASSWORD}{ENTER} + Utför autoskriv: {LÖSENORD}{RETUR} + + + Perform Auto-Type: {TOTP} + Utför autoskriv: {TOTP} + + + Copy Title + Kopiera titel + + + Copy URL + Kopiera URL + + + Copy Notes + Kopiera anteckningar + + + Export to CSV + Exportera till CSV + + + Export to HTML + Exportera till HTML + + + Import KeePass1 Database + Importera KeePass1-databas + + + Import 1Password Vault + Importera ett 1Password-valv + + + Import CSV File + Importera en CSV-fil + + + Show TOTP QR Code + Visa TOTP QR-kod + + + Set up TOTP + Konfigurera TOTP + + + Empty Recycle Bin + Töm papperskorgen + + + Open Donation Website + Öppna donationssidan + + + Open Bug Report + Öppna felrapport + + + Open Online Documentation + Öppna online-dokumentation + + + Open Keyboard Shortcuts Guide + Öppna guiden för tangentbordgenvägar + + + Save Database Backup + Spara säkerhetskopia av databasen + + + SSH Agent: Add Key + SSH Agent: Lägg till nyckel + + + SSH Agent: Remove Key + SSH Agent: Ta bort nyckel + + + Toggle Compact Mode + Kompaktläge PÃ…/AV + + + Set Theme: Automatic + Ange tema: Automatiskt + + + Set Theme: Light + Ange tema: Ljust + + + Set Theme: Dark + Ange tema: Mörkt + + + Set Theme: Classic + Ange tema: Klassiskt + + + Toggle Show Toolbar + Visa/Dölj verktygsfält + + + Toggle Show Preview Panel + Visa/Dölj förhandsgranskningspanel + + + Toggle Always on Top + Alltid överst PÃ…/AV + + + Toggle Hide Usernames + Visa/Dölj användarnamn + + + Toggle Hide Passwords + Visa/Dölj lösenord + + + Export to XML + Exportera till XML + + + Toggle Allow Screen Capture + TillÃ¥t/Neka skärmklipp + ManageDatabase @@ -5453,26 +5926,6 @@ Vi rekommenderar att du använder den AppImage som finns pÃ¥ vÃ¥r nerladdningssi Overwriting %1 [%2] Skriver över %1[%2] - - older entry merged from database "%1" - äldre post infogad frÃ¥n databas "%1" - - - Adding backup for older target %1 [%2] - Lägger till säkerhetskopia frÃ¥n äldre mÃ¥l %1 [%2] - - - Adding backup for older source %1 [%2] - Lägger till säkerhetskopia frÃ¥n äldre källa %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - Ã…teranvänder äldre mÃ¥lpost ovanpÃ¥ nyare källa %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - Ã…teranvänder äldre källpost ovanpÃ¥ nyare mÃ¥l %1 [%2] - Synchronizing from newer source %1 [%2] Synkroniserar frÃ¥n nyare källa %1 [%2] @@ -5532,14 +5985,6 @@ Vi rekommenderar att du använder den AppImage som finns pÃ¥ vÃ¥r nerladdningssi Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. Här kan du justera inställningarna för databaskrypteringen. Oroa dig inte, du kan ändra dem senare, i databasinställningarna. - - Advanced Settings - Avancerade inställningar - - - Simple Settings - Förenklade inställningar - NewDatabaseWizardPageDatabaseKey @@ -5620,15 +6065,6 @@ Vi rekommenderar att du använder den AppImage som finns pÃ¥ vÃ¥r nerladdningssi Förväntade %1 byte klartext, hittade %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Läsning av databas producerade inte nÃ¥gon instans -%1 - - OpVaultReader @@ -5702,6 +6138,10 @@ Vi rekommenderar att du använder den AppImage som finns pÃ¥ vÃ¥r nerladdningssi Unknown cipher: %1 Okänt chiffer: %1 + + AES-256/GCM is currently not supported + AES-256/GCM stöds för närvarande inte + Passphrase is required to decrypt this key Lösenordsfras krävs för att avkryptera denna nyckel @@ -5768,26 +6208,178 @@ Vi rekommenderar att du använder den AppImage som finns pÃ¥ vÃ¥r nerladdningssi - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Lösenorden stämmer inte överens + SSH Key Generator + SSH-nyckelgenerator - Passwords match so far - Lösenorden stämmer sÃ¥ lÃ¥ngt + Type + Typ - Toggle Password (%1) - Växla lösenord (%1) + Bits + Bitar - Generate Password (%1) - Generera lösenord (%1) + Comment + Kommentar + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - Passnyckelexport - Warning: Caps Lock enabled! - Varning! Caps Lock aktiverat! + Export the following Passkey entries. + Exportera följande passnyckelposter. + + + Filenames will be generated with title and .passkey file extension. + Filnamn genereras med namn och .passkey som filnamnstillägg. + + + Export entries + Exportera poster + + + Export Selected + Exportera markerade + + + Cancel + Avbryt + + + Export to folder + Exportera till mapp + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: Passnyckelexport + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + Filen "%1.passkey" finns redan. +Vill du skriva över den? + + + + Cannot open file + Kan inte öppna fil + + + Cannot open file "%1" for writing. + Kan inte öppna filen "%1" för skrivning. + + + Cannot write to file + Kan inte skriva till fil + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - Passnyckelimport + + + Username: %1 + Användarnamn: %1 + + + Group + Grupp + + + Database + Databas + + + Import Passkey + Importera passnyckel + + + Import + Importera + + + Cancel + Avbryt + + + Import the following Passkey: + Importera följande passnyckel: + + + Entry + Post + + + Import the following Passkey to this entry: + Importera följande passnyckel till denna post: + + + Create new entry + Skapa ny post + + + Default Passkeys group (Imported Passkeys) + Ordinarie passnyckelgrupp (Importerade passnycklar) + + + Relying Party: %1 + Förlitande part: %1 + + + + PasskeyImporter + + Passkey file + Passnyckelfil + + + All files + Alla filer + + + Open Passkey file + Öppna passnyckelfil + + + Cannot open file + Kan inte öppna fil + + + Cannot open file "%1" for reading. + Kan inte öppna filen "%1" för läsning. + + + Cannot import Passkey + Kan inte importera passnyckel + + + Cannot import Passkey file "%1". Data is missing. + Kan inte importera passnyckelfil "%1". Data saknas. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + Kan inte importera passnyckelfil "%1". Privat nyckel saknas eller är felaktig. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + Kan inte importera passnyckelfil "%1". +Följande data saknas: +%2 @@ -6052,6 +6644,30 @@ Vi rekommenderar att du använder den AppImage som finns pÃ¥ vÃ¥r nerladdningssi Entropy: %1 bit Entropi: %1 bitar + + Password Quality: %1 + Lösenordskvalitet: %1 + + + Poor + Password quality + DÃ¥lig + + + Weak + Password quality + Svag + + + Good + Password quality + Bra + + + Excellent + Password quality + Utmärkt + Confirm Delete Wordlist Bekräfta borttagning av ordlista @@ -6098,9 +6714,32 @@ Vill du skriva över den? Special Characters Specialtecken + + + PasswordWidget - Password Quality: %1 - Lösenordskvalitet: %1 + Passwords do not match + Lösenorden stämmer inte överens + + + Passwords match so far + Lösenorden stämmer sÃ¥ lÃ¥ngt + + + Toggle Password (%1) + Växla lösenord (%1) + + + Generate Password (%1) + Generera lösenord (%1) + + + Warning: Caps Lock enabled! + Varning! Caps Lock aktiverat! + + + Quality: %1 + Kvalitet: %1 Poor @@ -6122,6 +6761,10 @@ Vill du skriva över den? Password quality Utmärkt + + Toggle password visibility using Control + H. Open the password generator using Control + G. + Visa/Dölj lösenord med Ctrl+H. Öppna lösenordsgeneratorn med Ctrl+G. + PickcharsDialog @@ -6176,6 +6819,10 @@ Vill du skriva över den? Continue Fortsätt + + Continue with weak password + Fortsätt med svagt lösenord + QObject @@ -6569,6 +7216,10 @@ Vill du skriva över den? Too many arguments provided. För mÃ¥nga argument. + + Path of the database. + Sökväg till databasen. + Target decryption time in MS for the database. MÃ¥lets avkrypteringstid i ms för databasen. @@ -6577,6 +7228,12 @@ Vill du skriva över den? time tid + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Ange nyckelfil för databasen. +Det här alternativet är inaktuellt, använd --set-key-file istället. + Set the key file for the database. Ange nyckelfil för databasen. @@ -6589,10 +7246,6 @@ Vill du skriva över den? Create a new database. Skapa en ny databas. - - Path of the database. - Sökväg till databasen. - Invalid decryption time %1. Ogiltig avkrypteringstid %1. @@ -6637,6 +7290,158 @@ Vill du skriva över den? Successfully created new database. Ny databas skapad. + + Unset the password for the database. + Ta bort lösenordet för databasen. + + + Unset the key file for the database. + Ta bort nyckelfilen för databasen. + + + Edit a database. + Redigera en databas. + + + Cannot use %1 and %2 at the same time. + Kan inte använda %1 och %2 pÃ¥ samma gÃ¥ng. + + + Could not change the database key. + Kunde inte ändra databasnyckeln. + + + Database was not modified. + Databasen är inte ändrad. + + + Writing the database failed: %1 + Kunde inte skriva databas: %1 + + + Successfully edited the database. + Databasen redigerades korrekt. + + + Cannot remove password: The database does not have a password. + Kan inte ta bort lösenordet. Databasen har inget lösenord. + + + Cannot remove file key: The database does not have a file key. + Kan inte ta bort nyckelfilen. Databasen har ingen nyckelfil. + + + Loading the new key file failed: %1 + Inläsning av den nya nyckeln misslyckades: %1 + + + Found unexpected Key type %1 + Identifierade oväntad nyckeltyp %1 + + + Cannot remove all the keys from a database. + Kan inte ta bort alla nycklarna frÃ¥n en databas. + + + Show a database's information. + Visa en databas information. + + + UUID: + UUID: + + + Name: + Namn: + + + Description: + Beskrivning: + + + Cipher: + Chiffer: + + + KDF: + KDF: + + + Recycle bin is enabled. + Papperskorgen är aktiverad. + + + Recycle bin is not enabled. + Papperskorgen är inte aktiverad. + + + Location + Plats + + + Database created + Databas skapad + + + Last saved + Senast sparad + + + Unsaved changes + Osparade ändringar + + + yes + Ja + + + no + Nej + + + Number of groups + Antal grupper + + + Number of entries + Antal poster + + + Number of expired entries + Antal förfallna poster + + + Unique passwords + Unika lösenord + + + Non-unique passwords + Icke unika lösenord + + + Maximum password reuse + Max antal Ã¥teranvända lösenord + + + Number of short passwords + Antal korta lösenord + + + Number of weak passwords + Antal svaga lösenord + + + Entries excluded from reports + Poster undantagna frÃ¥n rapporter + + + Average password length + Genomsnittlig lösenordslängd + + + %1 characters + %1 tecken + Word count for the diceware passphrase. Antal ord för lösenordsfrasen. @@ -6688,10 +7493,6 @@ Vill du skriva över den? Enter new password for entry: Ange nytt lösenord för posten: - - Writing the database failed: %1 - Kunde inte skriva databas: %1 - Successfully edited entry %1. Redigerade posten %1. @@ -6916,106 +7717,6 @@ Vill du skriva över den? Successfully imported database. Databas importera. - - Show a database's information. - Visa en databas information. - - - UUID: - UUID: - - - Name: - Namn: - - - Description: - Beskrivning: - - - Cipher: - Chiffer: - - - KDF: - KDF: - - - Recycle bin is enabled. - Papperskorgen är aktiverad. - - - Recycle bin is not enabled. - Papperskorgen är inte aktiverad. - - - Location - Plats - - - Database created - Databas skapad - - - Last saved - Senast sparad - - - Unsaved changes - Osparade ändringar - - - yes - Ja - - - no - Nej - - - Number of groups - Antal grupper - - - Number of entries - Antal poster - - - Number of expired entries - Antal förfallna poster - - - Unique passwords - Unika lösenord - - - Non-unique passwords - Icke unika lösenord - - - Maximum password reuse - Max antal Ã¥teranvända lösenord - - - Number of short passwords - Antal korta lösenord - - - Number of weak passwords - Antal svaga lösenord - - - Entries excluded from reports - Poster undantagna frÃ¥n rapporter - - - Average password length - Genomsnittlig lösenordslängd - - - %1 characters - %1 tecken - Unknown command %1 Okänt kommando %1 @@ -7188,6 +7889,10 @@ Tillgängliga kommandon: Show the protected attributes in clear text. Visa de skyddade attributen i klartext. + + Show all the attributes of the entry. + Visa alla attribut för posten. + Show the attachments of the entry. Visa bilagor i posten. @@ -7258,6 +7963,10 @@ inte kommer att stödja i framtiden. Invalid YubiKey serial %1 Ogiltigt YubiKey serienummer %1 + + Please present or touch your YubiKey to continue. + Anslut eller tryck pÃ¥ din YubiKey för att fortsätta. + Enter password to encrypt database (optional): Ange lösenord för att avkryptera databasen (valfritt): @@ -7445,8 +8154,8 @@ Kärna: %3 %4 %1 minut%1 minuter - Botan library must be at least 2.11.x, found %1.%2.%3 - Botan-biblioteket mÃ¥ste vara lägst 2.11.x, hittade %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + Botan-biblioteket mÃ¥ste vara lägst %1, hittade %2.%3.%4 Cryptographic libraries: @@ -7686,10 +8395,6 @@ Kärna: %3 %4 read password of the database from stdin hämta databaslösenordet frÃ¥n stdin - - allow app screen recordering and screenshots - TillÃ¥t programskärminspelning och skärmbilder - Locked databases. LÃ¥ste databaser. @@ -7702,6 +8407,10 @@ Kärna: %3 %4 Another instance of KeePassXC is already running. En annan instans av KeePassXC körs redan. + + KeePassXC is not running. No open database to lock + KeePassXC körs inte. Det finns ingen öppen databas att lÃ¥sa. + Fatal error while testing the cryptographic functions. Allvarligt fel vid test av kryptografiska funktioner. @@ -7710,10 +8419,6 @@ Kärna: %3 %4 KeePassXC - Error KeePassXC - Fel - - Warning: Failed to prevent screenshots on a top level window! - Varning! Kunde inte förhindra skärmklipp i ett fönster pÃ¥ den översta nivÃ¥n! - Database password: Databaslösenord: @@ -7737,8 +8442,222 @@ Kärna: %3 %4 Kunde inte signera challenge med Windows Hello - Please present or touch your YubiKey to continue. - Anslut eller tryck pÃ¥ din YubiKey för att fortsätta. + Warning: Failed to block screenshot capture on a top-level window. + Varning! Kunde inte blockera skärmklipp i ett fönster pÃ¥ översta nivÃ¥n! + + + Invalid Cipher + Ogiltigt shiffer + + + Invalid KDF + Ogiltig KDF + + + Access to all entries is denied + Ã…tkomst till alla poster är nekad + + + allow screenshots and app recording (Windows/macOS) + tillÃ¥t skärmklipp och programinspelning (Windows/macOS) + + + Enter Shortcut + Ange genväg + + + Action + Ã…tgärd + + + Shortcuts + Genvägar + + + Attestation not supported + Attestering stöds inte + + + Credential is excluded + Autentiseringsuppgift undantas + + + Passkeys request canceled + Begäran om passnycklar avbruten + + + Invalid user verification + Ogiltig användarverifiering + + + Empty public key + Tom offentlig nyckel + + + Invalid URL provided + Ogiltig URL angiven + + + Passkeys + Passnycklar + + + AES initialization failed + AES-start misslyckades + + + AES encrypt failed + AES-kryptering misslyckades + + + Failed to store in Linux Keyring + Kunde inte lagra i Linux nyckelring + + + Polkit returned an error: %1 + Polkit returnerade ett fel: %1 + + + Could not locate key in keyring + Kunde inte hitta nyckel i nyckelring + + + Could not read key in keyring + Kunde inte läsa nyckel i nyckelring + + + AES decrypt failed + AES-avkryptering misslyckades + + + No Polkit authentication agent was available + Ingen Polkit autentiseringsagent är tillgänglig + + + Polkit authorization failed + Polkit-autentisering misslyckades + + + No Quick Unlock provider is available + Ingen Quick Unlock-leverantör är tillgänglig + + + Failed to init KeePassXC crypto. + Kunde inte starta KeePassXC-krypto. + + + Failed to encrypt key data. + Kunde inte kryptera nyckeldata. + + + Failed to get Windows Hello credential. + Kunde inte hämta Windows Hello inloggningsuppgifter. + + + Failed to decrypt key data. + Kunde inte avkryptera nyckeldata. + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + Ursprung är tomt eller inte tillÃ¥tet + + + Effective domain is not a valid domain + Effektiv domän är ingen giltig domän + + + Origin and RP ID do not match + Ursprung och RP-ID matchar inte + + + No supported algorithms were provided + Inga algoritmer som stöds tillhandahölls + + + Wait for timer to expire + Vänta tills tiduret löper ut + + + Unknown Passkeys error + Okänt passnyckelfel + + + Challenge is shorter than required minimum length + Utmaningen är kortare än den minimilängd söm krävs + + + user.id does not match the required length + user.id matchar inte den längd som krävs @@ -7777,18 +8696,6 @@ Kärna: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - Undanta utgÃ¥ngna poster frÃ¥n rapporten - - - Show only entries which have URL set - Visa endast poster med angiven URL - - - Show only entries which have browser settings in custom data - Visa endast poster med webbläsarinställningar i anpassad data - Double-click entries to edit. Dubbelklicka pÃ¥ poster för att redigera. @@ -7853,17 +8760,25 @@ Kärna: %3 %4 Exclude from reports Undanta frÃ¥n rapporter + + Only show entries that have a URL + Visa endast poster som har en URL + + + Only show entries that have been explicitly allowed or denied + Visa endast poster som uttryckligen har tillÃ¥tits eller nekats + + + Show expired entries + Visa förfallna poster + + + (Expired) + (Förfallen) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - Undanta utgÃ¥ngna poster frÃ¥n rapporten - - - Also show entries that have been excluded from reports - Visa ocksÃ¥ poster som har undantagits frÃ¥n rapporter - Hover over reason to show additional details. Double-click entries to edit. HÃ¥ll muspekaren över anledning, för att visa fler detaljer. Dubbelklicka pÃ¥ posten för att redigera. @@ -7939,6 +8854,18 @@ Kärna: %3 %4 Exclude from reports Undanta frÃ¥n rapporter + + Show expired entries + Visa förfallna poster + + + Show entries that have been excluded from reports + Visa poster som har undantagits frÃ¥n rapporter + + + (Expired) + (Förfallen) + ReportsWidgetHibp @@ -8035,6 +8962,65 @@ Kärna: %3 %4 Undanta frÃ¥n rapporter + + ReportsWidgetPasskeys + + Export + Exportera + + + Import + Importera + + + List of entry URLs + Lista över posters URL:er + + + Please wait, list of entries with Passkeys is being updated… + Vänta! Listan över poster med passnycklar uppdateras... + + + No entries with Passkeys. + Det finns inga poster med passnycklar. + + + Title + Titel + + + Path + Sökväg + + + Username + Användarnamn + + + URLs + URL:er + + + Edit Entry… + Redigera post… + + + Delete Entry(s)… + Ta bort post…Ta bort poster… + + + Relying Party + Förlitande part + + + Show expired entries + Visa förfallna poster + + + (Expired) + (Förfallen) + + ReportsWidgetStatistics @@ -8274,6 +9260,10 @@ Kärna: %3 %4 Search Help Sökhjälp + + Save Search + Spara sökning + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8358,7 +9348,7 @@ Kärna: %3 %4 font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">Denna inställning Ã¥sidosätter inte inaktivering av papperskorgsmeddelanden</span></p></body></html> - + Confirm when clients request entry deletion @@ -8504,11 +9494,38 @@ inte kan lÃ¥sas upp inom en viss tidsgräns (Vanligen 25s, men kan vara ett anna Exportera till %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + Dubbelklicka pÃ¥ Ã¥tgärden för att ändra genväg + + + Shortcut Conflict + Genvägskonflikt + + + Filter... + Filter... + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + Genväg %1 stÃ¥r i konflikt med "%2". Vill du skriva över genvägen?? + + + Reset Shortcuts + Ã…terställ genvägar + + TagModel - All - Alla + Clear Search + Rensa sökning + + + All Entries + Alla poster Expired @@ -8519,6 +9536,25 @@ inte kan lÃ¥sas upp inom en viss tidsgräns (Vanligen 25s, men kan vara ett anna Svaga lösenord + + TagView + + Remove Search + Ta bort sökning + + + Remove Tag + Ta bort tagg + + + Confirm Remove Tag + Bekräfta borttagning av tagg + + + Remove tag "%1" from all entries in this database? + Vill di ta bort taggen "%1" frÃ¥n alla poster i databasen? + + TotpDialog @@ -8667,7 +9703,7 @@ Exempel: JBSWY3DPEHPK3PXP You have the latest version of KeePassXC - Du har den senastew versionen av KeePassXC + Du har den senaste versionen av KeePassXC @@ -8676,26 +9712,6 @@ Exempel: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database Börja spara dina lösenord säkert, i en KeePassXC-databas. - - Create new database - Skapa ny databas - - - Open existing database - Öppna befintlig databas - - - Import from KeePass 1 - Importera frÃ¥n KeePass 1 - - - Import from 1Password - Importera frÃ¥n 1Password - - - Import from CSV - Importera frÃ¥n CSV - Recent databases Tidigare databaser @@ -8708,6 +9724,18 @@ Exempel: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 Välkommen till KeePassXC %1 + + Create Database + Skapa databas + + + Open Database + Öppna databas + + + Import File + + WinUtils @@ -8724,31 +9752,8 @@ Exempel: JBSWY3DPEHPK3PXP Kunde inte registrera systemövergripande genväg - - WindowsHello - - Failed to init KeePassXC crypto. - Kunde inte starta KeePassXC-krypto. - - - Failed to encrypt key data. - Kunde inte kryptera nyckeldata. - - - Failed to get Windows Hello credential. - Kunde inte hämta Windows Hello inloggningsuppgifter. - - - Failed to decrypt key data. - Kunde inte avkryptera nyckeldata. - - YubiKey - - %1 No interface, slot %2 - %1 Inget gränssnitt, plats %2 - General: Allmänt: @@ -8760,14 +9765,6 @@ Exempel: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - Uppdatera hÃ¥rdvaru-tokens - - - Refresh - Uppdatera - Hardware key slot selection Val av plats för hÃ¥rdvarunyckel @@ -8800,10 +9797,6 @@ Exempel: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove Challenge-Response angiven, klicka för att ändra eller ta bort - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>Om du äger en <a href="https://www.yubico.com/">YubiKey</a> eller en <a href="https://onlykey.io">OnlyKey</a>, kan du använda den för ytterligare säkerhet.</p><p>Nyckeln kräver att en av dess ianslutningsplatser programmeras som <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - Detecting hardware keys… Identifierar hÃ¥rdvarunycklar... @@ -8812,28 +9805,21 @@ Exempel: JBSWY3DPEHPK3PXP No hardware keys detected Inga hÃ¥rdvarunycklar identifierade - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 Ogiltig plats specificerad - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + <p>Om du äger en <a href="https://www.yubico.com/">YubiKey</a> eller en <a href="https://onlykey.io">OnlyKey</a>, kan du använda den för ytterligare säkerhet.</p><p>Nyckeln kräver att en av dess anslutningsplatser programmeras som <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + Refresh hardware keys + Uppdatera hÃ¥rdvarunycklar YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] Challenge-Response - Plats %3 - The YubiKey PCSC interface has not been initialized. YubiKey PCSC-gränssnittet har inte startats. - - Hardware key is currently in use. - HÃ¥rdvarunyckel används för närvarande. - Could not find or access hardware key with serial number %1. Please present it to continue. Kunde inte hitta eller komma Ã¥t hÃ¥rdvarunyckeln med serienummer %1. Var snäll och anslut den för att fortsätta. @@ -8850,6 +9836,21 @@ Exempel: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 Det gick inte att slutföra en challenge-response, PCSC-felkoden var: %1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + (NFC) %1 [%2] - Kortplats %3, %4 + + + Press + USB Challenge-Response Key interaction request + Tryck + + + Passive + USB Challenge-Response Key no interaction required + Passiv + YubiKeyInterfaceUSB @@ -8857,14 +9858,6 @@ Exempel: JBSWY3DPEHPK3PXP Unknown Okänd - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] Konfigurerad plats - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] Challenge-Response - Plats %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8879,10 +9872,6 @@ Exempel: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. YubiKey USB-gränssnittet har inte startats. - - Hardware key is currently in use. - HÃ¥rdvarunyckel används för närvarande. - Could not find hardware key with serial number %1. Please plug it in to continue. Kunde hitta hÃ¥rdvarunyckel med serienummer %1. Anslut den för att fortsätta. @@ -8899,5 +9888,15 @@ Exempel: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 Kunde inte slutföra en challenge-response, det specifika felet var: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + %1 [%2] - Kortplats %3 + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + %1 [%2] - Kortplats %3, %4 + \ No newline at end of file diff --git a/share/translations/keepassxc_th.ts b/share/translations/keepassxc_th.ts index f142dda43..b6ada8582 100644 --- a/share/translations/keepassxc_th.ts +++ b/share/translations/keepassxc_th.ts @@ -80,6 +80,10 @@ Details รายละเอียด + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + à¸à¸²à¸£à¸•ัดสินใจของคุณจะถูà¸à¸ˆà¸³à¹€à¸­à¸²à¹„ว้ในระหว่างที่ไคลเอนต์ที่ร้องขอ à¹à¸¥à¸° KeePassXC ทั้งคู่à¸à¸³à¸¥à¸±à¸‡à¸—ำงานอยู่ + Remember จำ @@ -88,17 +92,13 @@ Allow Selected อนุà¸à¸²à¸•สำหรับที่เลือภ- - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - - Deny All && Future - + ปà¸à¸´à¹€à¸ªà¸˜à¸—ั้งหมด && อนาคต Allow All && &Future - + อนุà¸à¸²à¸•ทั้งหมด && &อนาคต @@ -122,6 +122,10 @@ Use OpenSSH ใช้ OpenSSH + + Use both agents + ใช้ทั้งสองตัวเลือภ+ SSH_AUTH_SOCK override à¹à¸—นที่ SSH_AUTH_SOCK @@ -140,7 +144,7 @@ SSH_SK_PROVIDER override - à¹à¸—นที่ SSH_SK_PROVIDER  + à¹à¸—นที่ SSH_SK_PROVIDER No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. @@ -150,10 +154,6 @@ SSH Agent connection is working! à¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่อ SSH Agent ใช้งานได้! - - Use both agents - - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security ความปลอดภัย + + This setting cannot be enabled when minimize on unlock is enabled. + ไม่สามารถเปิดใช้à¸à¸²à¸£à¸•ั้งค่านี้เมื่อเปิดใช้à¸à¸²à¸£à¸¢à¹ˆà¸­à¸‚นาดเมื่อปลดล็อภ+ Access error for config file %1 มีข้อผิดพลาดในà¸à¸²à¸£à¹€à¸‚้าถึงà¹à¸Ÿà¹‰à¸¡à¸•ั้งค่า %1 @@ -234,7 +238,7 @@ Startup - เริ่มต้น + เริ่มระบบ Start only a single instance of KeePassXC @@ -246,7 +250,7 @@ Minimize window at application startup - ย่อหน้าต่างเล็à¸à¸ªà¸¸à¸”ตอนเริ่มà¹à¸­à¸› + ย่อหน้าต่างลงเล็à¸à¸ªà¸¸à¸”ตอนเริ่มโปรà¹à¸à¸£à¸¡ Minimize window after unlocking database @@ -256,6 +260,10 @@ Remember previously used databases จำà¸à¸²à¸™à¸‚้อมูลที่เคยใช้คราวà¸à¹ˆà¸­à¸™ ๆ + + recent files + à¹à¸Ÿà¹‰à¸¡à¸¥à¹ˆà¸²à¸ªà¸¸à¸” + Load previously open databases on startup à¹à¸ªà¸”งà¸à¸²à¸™à¸‚้อมูลที่เคยเปิดใช้ในตอนเริ่มโปรà¹à¸à¸£à¸¡ @@ -266,7 +274,7 @@ Check for updates at application startup once per week - ตรวจหาà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸£à¸¸à¹ˆà¸™à¸ªà¸±à¸›à¸”าห์ละครั้งขณะเปิดà¹à¸­à¸› + ตรวจหาà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸£à¸¸à¹ˆà¸™à¸ªà¸±à¸›à¸”าห์ละครั้งขณะเริ่มโปรà¹à¸à¸£à¸¡ Include beta releases when checking for updates @@ -279,7 +287,7 @@ have expired On database unlock, show entries that... - + หมดอายุà¹à¸¥à¹‰à¸§ days @@ -321,7 +329,7 @@ Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". - ระบุตำà¹à¸«à¸™à¹ˆà¸‡à¹„ฟล์สำรองà¸à¸²à¸™à¸‚้อมูล รายà¸à¸²à¸£à¸‚อง "{DB_FILENAME}" จะถูà¸à¹à¸—นที่ด้วยชื่อไฟล์ของà¸à¸²à¸™à¸‚้อมูลที่บันทึà¸à¹„ว้โดยไม่มีส่วนขยาย {TIME:<format>} จะถูà¸à¹à¸—นที่ด้วยเวลาสำรอง โปรดดูที่ https://doc.qt.io/qt-5/qdatetime.html#toString <format> ค่าเริ่มต้นในà¸à¸²à¸£à¸ˆà¸±à¸”รูปà¹à¸šà¸šà¸ªà¸•ริง "dd_MM_yyyy_hh-mm-ss" + ระบุตำà¹à¸«à¸™à¹ˆà¸‡à¹à¸Ÿà¹‰à¸¡à¸à¸²à¸™à¸‚้อมูลสำรอง รายà¸à¸²à¸£à¸—ี่à¹à¸ªà¸”งเป็น "{DB_FILENAME}" จะถูà¸à¹à¸—นด้วยชื่อà¹à¸Ÿà¹‰à¸¡à¸‚องà¸à¸²à¸™à¸‚้อมูลที่บันทึà¸à¹„ว้โดยไม่มีส่วนขยาย {TIME:<format>} จะถูà¸à¹à¸—นด้วยเวลาที่ทำà¸à¸²à¸£à¸ªà¸³à¸£à¸­à¸‡ โปรดดู https://doc.qt.io/qt-5/qdatetime.html#toString <format> ค่าปริยายในà¸à¸²à¸£à¸ˆà¸±à¸”รูปà¹à¸šà¸šà¸ªà¸•ริง "dd_MM_yyyy_hh-mm-ss" {DB_FILENAME}.old.kdbx @@ -337,11 +345,11 @@ Temporary file moved into place - + à¹à¸Ÿà¹‰à¸¡à¸Šà¸±à¹ˆà¸§à¸„ราวได้ย้ายไปอีà¸à¸—ี่หนึ่ง Directly write to database file (dangerous) - เขียนลงไฟล์à¸à¸²à¸™à¸‚้อมูลโดยตรง (อันตราย) + เขียนลงà¹à¸Ÿà¹‰à¸¡à¸à¸²à¸™à¸‚้อมูลโดยตรง (อันตราย) Entry Management @@ -408,6 +416,10 @@ Toolbar button style: รูปà¹à¸šà¸šà¸›à¸¸à¹ˆà¸¡à¸šà¸™à¹à¸–บเครื่องมือ: + + Show passwords in color + à¹à¸ªà¸”งรหัสผ่านเป็นสี + Use monospaced font for notes ใช้ฟอนต์ความà¸à¸§à¹‰à¸²à¸‡à¸„งที่สำหรับบันทึภ@@ -502,7 +514,7 @@ Database lock timeout seconds - + จำนวนวินาทีà¸à¹ˆà¸­à¸™à¸ˆà¸°à¸«à¸¡à¸”เวลาà¹à¸¥à¸°à¸¥à¹‡à¸­à¸à¸à¸²à¸™à¸‚้อมูล sec @@ -536,7 +548,7 @@ Enable database quick unlock (Touch ID / Windows Hello) - + เปิดใช้งานระบบà¸à¸²à¸£à¸›à¸¥à¸”ล็อà¸à¸à¸²à¸™à¸‚้อมูลที่รวดเร็ว Lock databases when session is locked or lid is closed @@ -556,7 +568,7 @@ Use placeholder for empty password fields - + ใช้ข้อความตัวอย่างในช่องรหัสผ่านที่ว่างไว้ Hide passwords in the entry preview panel @@ -582,16 +594,20 @@ Use DuckDuckGo service to download website icons ใช้บริà¸à¸²à¸£à¸‚อง DuckDuckGo เพื่อดาวน์โหลดไอคอนของเว็บไซต์ + + Hide TOTP in the entry preview panel + + AutoType The requested Auto-Type sequence cannot be used due to an error: - + à¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸à¸²à¸£à¸žà¸´à¸¡à¸žà¹Œà¹‚ดยอัตโนมัติ ไม่สามารถดำเนินà¸à¸²à¸£à¹„ด้เนื่องจาà¸à¸¡à¸µà¸‚้อผิดพลาด Auto-Type Error - + à¸à¸²à¸£à¸žà¸´à¸¡à¸žà¹Œà¸­à¸±à¸•โนมัติมีข้อผิดพลาด Permission Required @@ -599,48 +615,53 @@ KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. - + KeePassXC ต้องà¸à¸²à¸£à¸ªà¸´à¸—ธิ์à¸à¸²à¸£à¹€à¸‚้าถึงเพื่อดำเนินà¸à¸²à¸£à¸žà¸´à¸¡à¸žà¹Œà¸­à¸±à¸•โนมัติระดับเริ่มต้น หาà¸à¸„ุณอนุà¸à¸²à¸•สิทธิ์à¸à¸²à¸£à¹€à¸‚้าถึงอยู่à¹à¸¥à¹‰à¸§ คุณอาจต้องรีสตาร์ท KeePassXC KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. - + KeePassXC ต้องà¸à¸²à¸£à¸ªà¸´à¸—ธิ์à¸à¸²à¸£à¹€à¸‚้าถึงà¹à¸¥à¸°à¸•ัวบันทึà¸à¸«à¸™à¹‰à¸²à¸ˆà¸­à¹€à¸žà¸·à¹ˆà¸­à¸”ำเนินà¸à¸²à¸£à¸žà¸´à¸¡à¸žà¹Œà¸­à¸±à¸•โนมัติในส่วนà¸à¸¥à¸²à¸‡ à¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸à¸«à¸™à¹‰à¸²à¸ˆà¸­à¸ˆà¸³à¹€à¸›à¹‡à¸™à¸•้องใช้ชื่อหน้าต่างเพื่อค้นหารายà¸à¸²à¸£ หาà¸à¸„ุณอนุà¸à¸²à¸•สิทธิ์à¸à¸²à¸£à¹€à¸‚้าถึงอยู่à¹à¸¥à¹‰à¸§ คุณอาจต้องรีสตาร์ท KeePassXC Invalid entry provided - + ข้อมูลที่นำเข้าในระบบไม่ถูà¸à¸•้อง Bracket imbalance detected, found extra { or } - + พบวงเล็บปีà¸à¸à¸²à¸—ี่ไม่ได้เปิดหรือปิด มี { หรือ } เà¸à¸´à¸™à¸¡à¸² Too many repetitions detected, max is %1: %2 - + ตรวจพบความซ้ำมาà¸à¹€à¸à¸´à¸™à¹„ป มาà¸à¸ªà¸¸à¸” %1: %2 Very slow key press detected, max is %1: %2 - + ตรวจพบà¸à¸²à¸£à¸à¸”ปุ่มที่ช้ามาภสูงสุดคือ %1: %2 Very long delay detected, max is %1: %2 - + ตรวจพบความหน่วงที่ยาวมาภมาà¸à¸ªà¸¸à¸” 1%: 2% + + + Entry does not have attribute for PICKCHARS: %1 + รายà¸à¸²à¸£à¹„ม่มีà¹à¸­à¸•ทริบิวต์สำหรับ PICKCHARS: %1 Invalid conversion type: %1 - + ประเภทคอนเวอร์ชันไม่ถูà¸à¸•้อง: %1 Invalid conversion syntax: %1 - + ลัà¸à¸©à¸“ะคอนเวอร์ชันไม่ถูà¸à¸•้อง: %1 Invalid regular expression syntax %1 %2 - + ลัà¸à¸©à¸“ะà¸à¸²à¸£à¸–่ายทอดทั่วไปไม่ถูà¸à¸•้อง %1 +%2 Invalid placeholder: %1 - + ข้อความตัวอย่างไม่ถูà¸à¸•้อง: 1% @@ -685,19 +706,19 @@ AutoTypePlatformX11 Trying to send invalid keysym. - + à¸à¸³à¸¥à¸±à¸‡à¸žà¸¢à¸²à¸¢à¸²à¸¡à¸ªà¹ˆà¸‡à¸„ีย์ซิมที่ไม่ถูà¸à¸•้อง Sequence aborted: Caps Lock is on - + à¸à¸²à¸£à¹ƒà¸ªà¹ˆà¸‚้อมูลตามลำดับถูà¸à¸¢à¸à¹€à¸¥à¸´à¸: ปุ่ม Caps Lock อยู่ระหว่างà¸à¸²à¸£à¹€à¸›à¸´à¸”ใช้งาน Sequence aborted: Modifier keys held by user - + ลำดับถูà¸à¸¢à¸à¹€à¸¥à¸´à¸: คีย์ตัวà¹à¸à¹‰à¹„ขที่ผู้ใช้ครอบครองอยู่ Unable to get valid keycode for key: - + ไม่สามารถรับรหัสคีย์ที่ถูà¸à¸•้องสำหรับคีย์: @@ -708,7 +729,7 @@ Double click a row to perform Auto-Type or find an entry using the search: - + ดับเบิลคลิà¸à¸—ี่à¹à¸–วเพื่อทำà¸à¸²à¸£à¸žà¸´à¸¡à¸žà¹Œà¸­à¸±à¸•โนมัติหรือค้นหารายà¸à¸²à¸£à¹‚ดยใช้à¸à¸²à¸£à¸„้นหา: <p>You can use advanced search queries to find any entry in your open databases. The following shortcuts are useful:<br/> @@ -717,11 +738,22 @@ Ctrl+1 - Type username<br/> Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> - + <p> คุณสามารถ +ใช้ +ข้อความ +ค้นหา +ขั้นสูง +เพื่อ +ค้นหารายà¸à¸²à¸£à¹ƒà¸” ๆ ในà¸à¸²à¸™à¸‚้อมูลที่เปิดอยู่ของคุณ ทางลัดต่อไปนี้เป็นประโยชน์สำหรับคุณ: <br/> +Ctrl + F - สลับà¸à¸²à¸£à¸„้นหาà¸à¸²à¸™à¸‚้อมูล <br/> +Ctrl +1 - พิมพ์ชื่อผู้ใช้ <br/> +Ctrl +2 - พิมพ์รหัสผ่าน <br/> +Ctrl +3 - พิมพ์ TOTP <br/> +Ctrl + 4 - ใช้à¹à¸›à¹‰à¸™à¸žà¸´à¸¡à¸žà¹Œà¹€à¸ªà¸¡à¸·à¸­à¸™ (Windows เท่านั้น) </p> Search all open databases - + ค้นหาจาà¸à¸à¸²à¸™à¸‚้อมูลเปิดทั้งหมด Search… @@ -729,7 +761,7 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Type Sequence - + พิมพ์ ลำดับ Cancel @@ -737,31 +769,31 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Type {USERNAME} - + พิมพ์ [ชื่อผู้ใช้] Type {PASSWORD} - + พิมพ์ {รหัสผ่าน} Type {TOTP} - + พิมพ์ {รหัสผ่านà¹à¸šà¸šà¹ƒà¸Šà¹‰à¸„รั้งเดียวตามเวลา} Copy Username - + คัดลอภชื่อผู้ใช้ Copy Password - + คัดลอภรหัสผ่าน Copy TOTP - + คัดลอภ{รหัสผ่านà¹à¸šà¸šà¹ƒà¸Šà¹‰à¸„รั้งเดียวตามเวลา} Use Virtual Keyboard - + ใช้à¹à¸›à¹‰à¸™à¸žà¸´à¸¡à¸žà¹Œà¹€à¸ªà¸¡à¸·à¸­à¸™ @@ -798,13 +830,13 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Disable for this site ปิดใช้สำหรับไซต์เหล่านี้ + + Undo + + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - เบราว์เซอร์ KeePassXC บันทึà¸à¸‚้อมูล - Ok โอเค @@ -818,13 +850,69 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Please select the correct database for saving credentials. คุณเปิดหลายà¸à¸²à¸™à¸‚้อมูล à¸à¸£à¸¸à¸“าเลือà¸à¸à¸²à¸™à¸‚้อมูลที่ถูà¸à¸•้องเพื่อบันทึà¸à¸‚้อมูลของคุณ + + KeePassXC - Select Database + + + + + BrowserPasskeysConfirmationDialog + + Cancel + ยà¸à¹€à¸¥à¸´à¸ + + + Update + + + + Authenticate + + + + Register new + + + + Register + + + + Timeout in <b>%n</b> seconds... + + + + Do you want to register Passkey for: + + + + Existing Passkey found. +Do you want to register a new Passkey for: + + + + Select the existing Passkey and press Update to replace it. + + + + Authenticate Passkey credentials for: + + + + Relying Party: %1 + + + + Username: %1 + + + + KeePassXC - Passkey credentials + + BrowserService - - KeePassXC: Create a new group - KeePassXC สร้างà¸à¸¥à¸¸à¹ˆà¸¡à¹ƒà¸«à¸¡à¹ˆ - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -833,10 +921,6 @@ Do you want to create this group? คุณต้องà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸à¸¥à¸¸à¹ˆà¸¡à¸™à¸µà¹‰à¸«à¸£à¸·à¸­à¹„ม่? - - KeePassXC: New key association request - KeePassXC คำขอà¸à¸¸à¸à¹à¸ˆà¸—ี่เชื่อมโยงใหม่ - You have received an association request for the following database: %1 @@ -852,77 +936,64 @@ chrome-laptop Save and allow access บันทึà¸à¹à¸¥à¸°à¸­à¸™à¸¸à¸à¸²à¸•ให้เข้าถึง - - KeePassXC: Overwrite existing key? - KeePassXC เขียนทับà¸à¸¸à¸à¹à¸ˆà¸—ี่มีอยู่เดิม - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? à¸à¸¸à¸à¹à¸ˆà¸–อดรหัสลับที่ถูà¸à¹à¸šà¹ˆà¸‡à¸›à¸±à¸™à¸”้วยชื่อ "%1" มีอยู่à¸à¹ˆà¸­à¸™à¹à¸¥à¹‰à¸§ คุณต้องà¸à¸²à¸£à¹€à¸‚ียนทับมันหรือไม่? - - KeePassXC: Update Entry - KeePassXC ปรับปรุงรายà¸à¸²à¸£ - Do you want to update the information in %1 - %2? - คุณต้องà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡à¸‚้อมูลใน %1 - %2 หรือไม่? - - - KeePassXC: Delete entry - + คุณต้องà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡à¸‚้อมูลใน %1 - %2 ให้ทันสมัยหรือไม่? A request for deleting entry "%1" has been received. Do you want to delete the entry? + ได้รับคำขอให้ลบรายà¸à¸²à¸£ "% 1" à¹à¸¥à¹‰à¸§ +คุณต้องà¸à¸²à¸£à¸¥à¸šà¸£à¸²à¸¢à¸à¸²à¸£à¸«à¸£à¸·à¸­à¹„ม่ + + + + %1 (Passkey) - Converting attributes to custom data… - à¸à¸³à¸¥à¸±à¸‡à¹à¸›à¸¥à¸‡à¸„ุณสมบัติต่างๆเป็นข้อมูลที่à¸à¸³à¸«à¸™à¸”เอง ... + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + - Abort - หยุด + KeePassXC - Create a new group + - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: à¹à¸›à¸¥à¸‡à¸„ุณลัà¸à¸©à¸“ะของ KeePassHTTP + Disable + ปิดใช้ - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - à¹à¸›à¸¥à¸‡à¸„ุณสมบัติจาภ%1 รายà¸à¸²à¸£à¸ªà¸³à¹€à¸£à¹‡à¸ˆ -ย้ายà¸à¸¸à¸à¹à¸ˆ %2 ดอà¸à¹„ปยังข้อมูลที่à¸à¸³à¸«à¸™à¸”เอง - - - Successfully moved %n keys to custom data. - ย้ายà¸à¸¸à¸à¹à¸ˆ %n ไปยังข้อมูลที่à¸à¸³à¸«à¸™à¸”เองได้สำเร็จ + KeePassXC - Overwrite existing key? + - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC ไม่พบรายà¸à¸²à¸£à¸—ี่มีคุณสมบัติ KeePassHTTP + KeePassXC - Update Passkey + - The active database does not contain an entry with KeePassHTTP attributes. - à¸à¸²à¸™à¸‚้อมูลที่ยังใช้งานอยู่ไม่มีรายà¸à¸²à¸£à¸•ามคุณสมบัติ KeePassHTTP. + KeePassXC - Update Entry + - Don't show this warning again - ไม่ต้องà¹à¸ªà¸”งคำเตือนนี้อีภ+ KeePassXC - Delete entry + - KeePassXC: Legacy browser integration settings detected - KeePassXC ตรวจพบà¸à¸²à¸£à¸•ั้งค่าà¸à¸²à¸£à¸£à¸§à¸¡à¹€à¸šà¸£à¸²à¸§à¹Œà¹€à¸‹à¸­à¸£à¹Œà¸”ั้งเดิม + KeePassXC - New key association request + - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - à¸à¸²à¸£à¸•ั้งค่าเบราว์เซอร์ KeePassXC ของคุณต้องถูà¸à¸¢à¹‰à¸²à¸¢à¹„ปสู่à¸à¸²à¸£à¸•ั้งค่าà¸à¸²à¸™à¸‚้อมูล นี่จำเป็นต่อà¸à¸²à¸£à¸£à¸±à¸à¸©à¸²à¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่อเบราว์เซอร์ปัจจุบันของคุณ คุณต้องà¸à¸²à¸£à¸¢à¹‰à¸²à¸¢à¸à¸²à¸£à¸•ั้งค่าที่มีอยู่à¹à¸¥à¹‰à¸§à¸•อนนี้หรือไม่ + Passkey + @@ -982,19 +1053,19 @@ Would you like to migrate your existing settings now? Show a notification when credentials are requested Credentials mean login data requested via browser extension - + à¹à¸ªà¸”งà¸à¸²à¸£à¹à¸ˆà¹‰à¸‡à¹€à¸•ือนเมื่อมีà¸à¸²à¸£à¸£à¹‰à¸­à¸‡à¸‚อข้อมูลประจำตัว Request to unlock the database if it is locked - + ร้องขอà¸à¸²à¸£à¸›à¸¥à¸”ล็อค หาà¸à¸à¸²à¸™à¸‚้อมูลยังล็อคอยู่ Only entries with the same scheme (http://, https://, …) are returned. - + เฉพาะรายà¸à¸²à¸£à¸—ี่มีรูปà¹à¸šà¸šà¹€à¸”ียวà¸à¸±à¸™ (http://, https://, …) เท่านั้นที่จะถูà¸à¸ªà¹ˆà¸‡à¸à¸¥à¸±à¸š Match URL scheme (e.g., https://example.com) - + จับคู่รูปà¹à¸šà¸š URL (เช่น https://example.com) Only returns the best matches for a specific URL instead of all entries for the whole domain. @@ -1002,24 +1073,24 @@ Would you like to migrate your existing settings now? Return only best-matching credentials - + ส่งคืนข้อมูลประจำตัวที่ตรงà¸à¸±à¸™à¸¡à¸²à¸à¸—ี่สุดเท่านั้น Returns expired credentials. String [expired] is added to the title. - + ส่งคืนข้อมูลรับรองที่หมดอายุ เพิ่มสตริง [หมดอายุà¹à¸¥à¹‰à¸§] ในชื่อเรื่อง Allow returning expired credentials - + อนุà¸à¸²à¸•ให้ส่งคืนข้อมูลประจำตัวที่หมดอายุà¹à¸¥à¹‰à¸§ All databases connected to the extension will return matching credentials. - + à¸à¸²à¸™à¸‚้อมูลทั้งหมดที่เชื่อมต่อà¸à¸±à¸šà¸ªà¹ˆà¸§à¸™à¸‚ยายจะส่งคืนข้อมูลประจำตัวที่ตรงà¸à¸±à¸™ Search in all opened databases for matching credentials Credentials mean login data requested via browser extension - + ค้นหาในà¸à¸²à¸™à¸‚้อมูลที่เปิดอยู่ทั้งหมดสำหรับข้อมูลประจำตัวที่ตรงà¸à¸±à¸™ Advanced @@ -1028,17 +1099,17 @@ Would you like to migrate your existing settings now? Never ask before accessing credentials Credentials mean login data requested via browser extension - + อย่าถามà¸à¹ˆà¸­à¸™à¹€à¸‚้าถึงข้อมูลประจำตัว Never ask before updating credentials Credentials mean login data requested via browser extension - + อย่าถามà¸à¹ˆà¸­à¸™à¸—ี่จะอัปเดตข้อมูลประจำตัว Do not ask permission for HTTP Basic Auth An extra HTTP Basic Auth setting - + ไม่ต้องขออนุà¸à¸²à¸• HTTP Basic Auth Automatically creating or updating string fields is not supported. @@ -1046,23 +1117,23 @@ Would you like to migrate your existing settings now? Return advanced string fields which start with "KPH: " - + ส่งคืนฟิลด์สตริงขั้นสูงที่ขึ้นต้นด้วย "KPH:" Don't display the popup suggesting migration of legacy KeePassHTTP settings. - + อย่าà¹à¸ªà¸”งป๊อปอัพà¹à¸™à¸°à¸™à¸³à¸à¸²à¸£à¸¢à¹‰à¸²à¸¢à¸à¸²à¸£à¸•ั้งค่า KeePassHTTP เดิม Do not prompt for KeePassHTTP settings migration. - + อย่าส่งคำสั่งขอย้ายà¸à¸²à¸£à¸•ั้งค่า KeePassHTTP Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup. - ปรับปรุงข้อมูล KeePassXC หรือเส้นทางของไบนารี keepassxc-proxy โดยอัตโนมัติไปยังà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸‚้อความฉบับดั้งเดิมเมื่อเริ่มต้น + ปรับปรุงข้อมูลเส้นทางไบนารีของ KeePassXC หรือ keepassxc-proxy ไปยังสคริปต์ native messaging โดยอัตโนมัติเมื่อเริ่มระบบ Update native messaging manifest files at startup - + อัปเดตไฟล์รายà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸‚้อความดั้งเดิมเมื่อเริ่มต้น Use a custom proxy location if you installed a proxy manually. @@ -1071,11 +1142,11 @@ Would you like to migrate your existing settings now? Use a custom proxy location: Meant is the proxy for KeePassXC-Browser - + ใช้ตำà¹à¸«à¸™à¹ˆà¸‡à¸žà¸£à¹‡à¸­à¸à¸‹à¸µà¸—ี่à¸à¸³à¸«à¸™à¸”เอง: Custom proxy location field - + ฟิลด์ตำà¹à¸«à¸™à¹ˆà¸‡à¸žà¸£à¹‡à¸­à¸à¸‹à¸µà¸—ี่à¸à¸³à¸«à¸™à¸”เอง Browser for custom proxy file @@ -1104,7 +1175,7 @@ Would you like to migrate your existing settings now? Custom browser location field - + ฟิลด์ตำà¹à¸«à¸™à¹ˆà¸‡à¹€à¸šà¸£à¸²à¸§à¹Œà¹€à¸‹à¸­à¸£à¹Œà¸—ี่à¸à¸³à¸«à¸™à¸”เอง Browse for custom browser path @@ -1112,11 +1183,11 @@ Would you like to migrate your existing settings now? Custom extension ID: - + รหัสส่วนขยายที่à¸à¸³à¸«à¸™à¸”เอง: Custom extension ID - + รหัสส่วนขยายที่à¸à¸³à¸«à¸™à¸”เอง Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 @@ -1130,14 +1201,6 @@ Would you like to migrate your existing settings now? Please see special instructions for browser extension use below โปรดดูคำà¹à¸™à¸°à¸™à¸³à¸žà¸´à¹€à¸¨à¸©à¸ªà¸³à¸«à¸£à¸±à¸šà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸ªà¹ˆà¸§à¸™à¸‚ยายเบราว์เซอร์ด้านล่าง - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - - - - <b>Warning:</b> The following options can be dangerous! - <b> คำเตือน </b> ตัวเลือà¸à¸•่อไปนี้อาจจะอันตราย - Executable Files à¹à¸Ÿà¹‰à¸¡à¸›à¸à¸´à¸šà¸±à¸•ิà¸à¸²à¸£ @@ -1152,6 +1215,38 @@ Would you like to migrate your existing settings now? Select native messaging host folder location + เลือà¸à¸•ำà¹à¸«à¸™à¹ˆà¸‡à¹‚ฟลเดอร์โฮสต์à¸à¸²à¸£à¸ªà¹ˆà¸‡à¸‚้อความดั้งเดิม + + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + + + + <b>Warning:</b> Only adjust these settings if necessary. + + + + The custom proxy location does not exist. + + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys @@ -1159,7 +1254,7 @@ Would you like to migrate your existing settings now? CloneDialog Clone Entry Options - + ตัวเลือà¸à¸£à¸²à¸¢à¸à¸²à¸£à¹‚คลน Append ' - Clone' to title @@ -1176,21 +1271,13 @@ Would you like to migrate your existing settings now? CsvImportWidget - - Import CSV fields - นำเข้าฟิลด์ CSV - - - filename - ชื่อà¹à¸Ÿà¹‰à¸¡ - size, rows, columns ขนาด, à¹à¸–ว, หลัภColumn Association - + à¸à¸²à¸£à¸£à¸§à¸¡à¸„อลัมน์ Password @@ -1292,50 +1379,29 @@ Would you like to migrate your existing settings now? Column %1 คอลัมน์ %1 - - Imported from CSV file - นำเข้าจาà¸à¹à¸Ÿà¹‰à¸¡ CSV à¹à¸¥à¹‰à¸§ - - - Original data: - ข้อมูลต้นฉบับ - - - Error(s) detected in CSV file! - พบข้อผิดพลาดในà¹à¸Ÿà¹‰à¸¡ CSV - [%n more message(s) skipped] [อีภ%n ข้อความถูà¸à¸‚้าม] - Error - ผิดพลาด + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - นำเข้า CSV: ตัวเขียนมีข้อผิดพลาด: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1 %2 %3 - - - %n byte(s) - %n ไบท์ - %n row(s) + CSV row count %n à¹à¸–ว %n column(s) + CSV column count %n คอลัมน์ @@ -1368,7 +1434,7 @@ Would you like to migrate your existing settings now? Could not save, database has not been initialized! - + ไม่สามารถบันทึà¸à¸‚้อมูลได้ à¸à¸²à¸™à¸‚้อมูลไม่ได้รับà¸à¸²à¸£à¹€à¸£à¸´à¹ˆà¸¡ Database file has unmerged changes. @@ -1382,7 +1448,7 @@ Backup database located at %2 Key not transformed. This is a bug, please report it to the developers. - + คีย์ไม่ได้ถูà¸à¹à¸›à¸¥à¸‡ นี่เป็นข้อผิดพลาด à¸à¸£à¸¸à¸“ารายงานไปยังผู้พัฒนา Recycle Bin @@ -1410,42 +1476,13 @@ Backup database located at %2 Password field ช่องรหัสผ่าน - - Enter Additional Credentials (if any): - - - - Key File: - à¹à¸Ÿà¹‰à¸¡à¸à¸¸à¸à¹à¸ˆ: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - - - - Key file help - ช่วยเหลือเรื่องà¹à¸Ÿà¹‰à¸¡à¸à¸¸à¸à¹à¸ˆ - Hardware key slot selection - - - - Hardware Key: - à¸à¸¸à¸à¹à¸ˆà¸®à¸²à¸£à¹Œà¸”à¹à¸§à¸£à¹Œ: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - - - - Hardware key help - + à¸à¸²à¸£à¹€à¸¥à¸·à¸­à¸à¸Šà¹ˆà¸­à¸‡à¸„ีย์ฮาร์ดà¹à¸§à¸£à¹Œ Key file to unlock the database - + ไฟล์คีย์เพื่อปลดล็อà¸à¸à¸²à¸™à¸‚้อมูล Browse for key file @@ -1455,17 +1492,9 @@ Backup database located at %2 Browse… เลือà¸à¸”ู... - - Refresh hardware tokens - - - - Refresh - รีเฟรช - Unlock Database - + ปลดล็อค à¸à¸²à¸™à¸‚้อมูล Cancel @@ -1473,15 +1502,15 @@ Backup database located at %2 Unlock - + ปลดล็อค Please present or touch your YubiKey to continue… - + à¸à¸£à¸¸à¸“าà¹à¸ªà¸”งหรือสัมผัส YubiKey ของคุณเพื่อดำเนินà¸à¸²à¸£à¸•่อ… Database Version Mismatch - + à¸à¸²à¸™à¸‚้อมูลà¹à¸•่ละเวอร์ชั่นไม่ตรงà¸à¸±à¸™ The database you are trying to open was most likely @@ -1491,39 +1520,40 @@ You can try to open it anyway, but it may be incomplete and saving any changes may incur data loss. We recommend you update your KeePassXC installation. - + à¸à¸²à¸™à¸‚้อมูลที่คุณà¸à¸³à¸¥à¸±à¸‡à¸žà¸¢à¸²à¸¢à¸²à¸¡à¹€à¸›à¸´à¸” +น่าจะถูà¸à¸ªà¸£à¹‰à¸²à¸‡à¹‚ดย KeePassXC เวอร์ชันใหม่à¸à¸§à¹ˆà¸² + +คุณสามารถลองเปิดดูได้ à¹à¸•่อาจไม่สมบูรณ์ +à¹à¸¥à¸°à¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¹ƒà¸” ๆ อาจทำให้ข้อมูลสูà¸à¸«à¸²à¸¢à¹„ด้ + +เราขอà¹à¸™à¸°à¸™à¸³à¹ƒà¸«à¹‰à¸„ุณอัปเดตà¸à¸²à¸£à¸•ิดตั้ง KeePassXC ของคุณ Open database anyway - + ยืนยันในà¸à¸²à¸£à¹€à¸›à¸´à¸”à¸à¸²à¸™à¸‚้อมูล Database unlock canceled. - + à¸à¸²à¸£à¸›à¸¥à¸”ล็อคà¸à¸²à¸™à¸‚้อมูลถูà¸à¸¢à¸à¹€à¸¥à¸´à¸ Unlock failed and no password given - + à¸à¸²à¸£à¸›à¸¥à¸”ล็อคไม่สำเร็จ ไม่มีà¸à¸²à¸£à¹ƒà¸ªà¹ˆà¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™ Unlocking the database failed and you did not enter a password. Do you want to retry with an "empty" password instead? To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. - + à¸à¸²à¸£à¸›à¸¥à¸”ล็อà¸à¸à¸²à¸™à¸‚้อมูลล้มเหลว à¹à¸¥à¸°à¸„ุณไม่ได้ป้อนรหัสผ่าน +คุณต้องà¸à¸²à¸£à¸¥à¸­à¸‡à¹ƒà¸«à¸¡à¹ˆà¹‚ดยใช้รหัสผ่าน "ว่าง" à¹à¸—นหรือไม่ + +เพื่อป้องà¸à¸±à¸™à¹„ม่ให้ข้อผิดพลาดนี้ปราà¸à¸à¸‚ึ้น คุณต้องไปที่ "à¸à¸²à¸£à¸•ั้งค่าà¸à¸²à¸™à¸‚้อมูล / à¸à¸²à¸£à¸£à¸±à¸à¸©à¸²à¸„วามปลอดภัย" à¹à¸¥à¸°à¸£à¸µà¹€à¸‹à¹‡à¸•รหัสผ่านของคุณ Retry with empty password ลองด้วยรหัสผ่านว่างเปล่า - - Failed to authenticate with Windows Hello - - - - Failed to authenticate with Touch ID - - Failed to open key file: %1 ไม่สามารถเปิดà¹à¸Ÿà¹‰à¸¡à¸à¸¸à¸à¹à¸ˆà¹„ด้: %1 @@ -1534,7 +1564,8 @@ To prevent this error from appearing, you must go to "Database Settings / S You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> - + คุณà¸à¸³à¸¥à¸±à¸‡à¹ƒà¸Šà¹‰à¸£à¸¹à¸›à¹à¸šà¸šà¹„ฟล์คีย์เà¸à¹ˆà¸²à¸‹à¸¶à¹ˆà¸‡ KeePassXC อาจ<br>หยุดรองรับในอนาคต +<br><br>à¸à¸£à¸¸à¸“าพิจารณาสร้างไฟล์คีย์ใหม่โดยไปที่:<br><strong>à¸à¸²à¸™à¸‚้อมูล &gt; à¸à¸²à¸£à¸£à¸±à¸à¸©à¸²à¸„วามปลอดภัยของà¸à¸²à¸™à¸‚้อมูล &gt; เปลี่ยนไฟล์คีย์</strong><br> Don't show this warning again @@ -1557,21 +1588,60 @@ To prevent this error from appearing, you must go to "Database Settings / S ไม่สามารถใช้à¹à¸Ÿà¹‰à¸¡à¸à¸²à¸™à¸‚้อมูลเป็นà¹à¸Ÿà¹‰à¸¡à¸à¸¸à¸à¹à¸ˆà¹„ด้ - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. + authenticate to access the database + รับรองความถูà¸à¸•้องเพื่อเข้าถึงà¸à¸²à¸™à¸‚้อมูล + + + Failed to authenticate with Quick Unlock: %1 - Detecting hardware keys… - à¸à¸³à¸¥à¸±à¸‡à¸•รวจหาà¸à¸¸à¸à¹à¸ˆà¸®à¸²à¸£à¹Œà¸”à¹à¸§à¸£à¹Œ... + Select Key File: + - No hardware keys detected - ตรวจไม่พบà¸à¸¸à¸à¹à¸ˆà¸®à¸²à¸£à¹Œà¸”à¹à¸§à¸£à¹Œ + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + - Select hardware key… - เลือà¸à¸à¸¸à¸à¹à¸ˆà¸®à¸²à¸£à¹Œà¸”à¹à¸§à¸£à¹Œ... + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1583,10 +1653,6 @@ If you do not have a key file, please leave the field empty. DatabaseSettingsDialog - - Advanced Settings - à¸à¸²à¸£à¸•ั้งค่าขั้นสูง - General ทั่วไป @@ -1597,7 +1663,7 @@ If you do not have a key file, please leave the field empty. Database Credentials - + ข้อมูลประจำตัวà¸à¸²à¸™à¸‚้อมูล Encryption Settings @@ -1609,7 +1675,7 @@ If you do not have a key file, please leave the field empty. Maintenance - + ซ่อมบำรุง @@ -1618,18 +1684,6 @@ If you do not have a key file, please leave the field empty. KeePassXC-Browser settings à¸à¸²à¸£à¸•ั้งค่าของเบราว์เซอร์ KeePassXC - - Convert KeePassHTTP data - - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - - - - Refresh database root group ID - - Disconnect all browsers หยุดà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่อà¸à¸±à¸šà¸—ุà¸à¹€à¸šà¸£à¸²à¸§à¹Œà¹€à¸‹à¸­à¸£à¹Œ @@ -1638,6 +1692,10 @@ If you do not have a key file, please leave the field empty. Forget all site-specific settings on entries ไม่จำà¸à¸²à¸£à¸•ั้งค่าเฉพาะสำหรับทุà¸à¹„ซต์บนรายà¸à¸²à¸£ + + Refresh database root group ID + รีเฟรชรหัสà¸à¸¥à¸¸à¹ˆà¸¡à¸£à¸¹à¸—ของà¸à¸²à¸™à¸‚้อมูล + Stored keys à¸à¸¸à¸à¹à¸ˆà¸—ี่ถูà¸à¹€à¸à¹‡à¸šà¹„ว้ @@ -1686,18 +1744,10 @@ This may prevent connection to the browser plugin. คุณต้องà¸à¸²à¸£à¸«à¸¢à¸¸à¸”à¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่อà¸à¸±à¸šà¸—ุà¸à¹€à¸šà¸£à¸²à¸§à¹€à¸‹à¸­à¸£à¹Œà¸«à¸£à¸·à¸­à¹„ม่ สิ่งนี้อาจทำให้à¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่อà¸à¸±à¸šà¹‚ปรà¹à¸à¸£à¸¡à¹€à¸ªà¸£à¸´à¸¡à¸šà¸™à¹€à¸šà¸£à¸²à¸§à¹Œà¹€à¸‹à¸­à¸£à¹Œà¸¡à¸µà¸›à¸±à¸à¸«à¸² - - KeePassXC: No keys found - KeePassXC: ไม่พบà¸à¸¸à¸à¹à¸ˆ - No shared encryption keys found in KeePassXC settings. ไม่พบà¸à¸²à¸£à¹à¸šà¹ˆà¸‡à¸›à¸±à¸™à¸à¸¸à¸à¹à¸ˆà¸—ี่ถูà¸à¹€à¸‚้ารหัสลับà¹à¸¥à¹‰à¸§à¹ƒà¸™à¸à¸²à¸£à¸•ั้งค่า KeePassXC - - KeePassXC: Removed keys from database - KeePassXC: à¸à¸¸à¸à¹à¸ˆà¸–ูà¸à¸¥à¸šà¸­à¸­à¸à¸ˆà¸²à¸à¸à¸²à¸™à¸‚้อมูล - Successfully removed %n encryption key(s) from KeePassXC settings. ลบ %n à¸à¸¸à¸à¹à¸ˆà¹€à¸‚้ารหัสลับจาà¸à¸à¸²à¸£à¸•ั้งค่า KeePassXC สำเร็จ @@ -1716,38 +1766,42 @@ Permissions to access entries will be revoked. Abort ยà¸à¹€à¸¥à¸´à¸à¸à¸²à¸£à¸—ำงาน - - KeePassXC: Removed permissions - KeePassXC: à¸à¸²à¸£à¸­à¸™à¸¸à¸à¸²à¸•ถูà¸à¸¥à¸šà¸­à¸­à¸ - Successfully removed permissions from %n entry(s). ลบà¸à¸²à¸£à¸­à¸™à¸¸à¸à¸²à¸•จาà¸à¸£à¸²à¸¢à¸à¸²à¸£ %n - - KeePassXC: No entry with permissions found! - KeePassXC: ไม่มีรายà¸à¸²à¸£à¸—ี่ได้รับอนุà¸à¸²à¸• - The active database does not contain an entry with permissions. à¸à¸²à¸™à¸‚้อมูลที่ปà¸à¸´à¸šà¸±à¸•ิà¸à¸²à¸£à¸­à¸¢à¸¹à¹ˆà¹„ม่มีรายà¸à¸²à¸£à¸—ี่ได้รับอนุà¸à¸²à¸• - - Move KeePassHTTP attributes to custom data - ย้ายลัà¸à¸©à¸“ะ KeePassHTTP ไปยังข้อมูลตามคำสั่ง - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - - Refresh database ID - + รีเฟรช à¸à¸²à¸™à¸‚้อมูลà¸à¸²à¸£à¸¢à¸·à¸™à¸¢à¸±à¸™à¸•ัวตน Do you really want refresh the database ID? This is only necessary if your database is a copy of another and the browser extension cannot connect. + คุณต้องà¸à¸²à¸£à¸£à¸µà¹€à¸Ÿà¸£à¸Šà¸£à¸«à¸±à¸ªà¸à¸²à¸™à¸‚้อมูลหรือไม่? +สิ่งนี้จำเป็นเฉพาะในà¸à¸£à¸“ีที่à¸à¸²à¸™à¸‚้อมูลของคุณเป็นสำเนาของà¸à¸²à¸™à¸‚้อมูลอื่นà¹à¸¥à¸°à¸ªà¹ˆà¸§à¸™à¸‚ยายของเบราว์เซอร์ไม่สามารถเชื่อมต่อได้ + + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + à¹à¸›à¸¥à¸‡à¹à¸­à¸•ทริบิวต์ KeePassHTTP เดิมเป็นข้อมูลที่à¸à¸³à¸«à¸™à¸”เองที่เข้าà¸à¸±à¸™à¹„ด้à¸à¸±à¸š KeePassXC-Browser + + + No keys found + + + + Removed keys from database + + + + Removed permissions + + + + No entry with permissions found! @@ -1755,7 +1809,7 @@ This is only necessary if your database is a copy of another and the browser ext DatabaseSettingsWidgetDatabaseKey Add additional protection… - + เพิ่มà¸à¸²à¸£à¸›à¹‰à¸­à¸‡à¸à¸±à¸™à¸­à¸µà¸à¸‚ั้น No password set @@ -1787,6 +1841,18 @@ Are you sure you want to continue without a password? Failed to change database credentials + เปลี่ยนข้อมูลประจำตัวà¸à¸²à¸™à¸‚้อมูลไม่สำเร็จ + + + Weak password + รหัสผ่านอ่อนà¹à¸­ + + + You must enter a stronger password to protect your database. + + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. @@ -1796,14 +1862,6 @@ Are you sure you want to continue without a password? Decryption Time: เวลาà¸à¸²à¸£à¹€à¸‚้ารหัสลับ - - Change existing decryption time - - - - Change - เปลี่ยนà¹à¸›à¸¥à¸‡ - Decryption time in seconds เวลาถอดรหัสลับ หน่วยเป็นวินาที @@ -1822,11 +1880,11 @@ Are you sure you want to continue without a password? Format cannot be changed: Your database uses KDBX 4 features - + ไม่สามารถเปลี่ยนรูปà¹à¸šà¸šà¹„ด้: à¸à¸²à¸™à¸‚้อมูลของคุณใช้คุณสมบัติ KDBX 4 Unless you need to open your database with other programs, always use the latest format. - + เว้นà¹à¸•่คุณจะต้องเปิดà¸à¸²à¸™à¸‚้อมูลด้วยโปรà¹à¸à¸£à¸¡à¸­à¸·à¹ˆà¸™ ให้ใช้รูปà¹à¸šà¸šà¸¥à¹ˆà¸²à¸ªà¸¸à¸”เสมอ Encryption Algorithm: @@ -1850,7 +1908,7 @@ Are you sure you want to continue without a password? Key derivation function - + ฟังà¸à¹Œà¸Šà¸±à¸™à¹„ด้มาของคีย์ Transform rounds: @@ -1858,7 +1916,7 @@ Are you sure you want to continue without a password? Transform rounds - + เปลี่ยนà¹à¸›à¸¥à¸‡à¸£à¸­à¸š Memory Usage: @@ -1874,20 +1932,15 @@ Are you sure you want to continue without a password? Parallelism - + ความเท่าเทียม KDBX 4 (recommended) - + KDBX 4 (à¹à¸™à¸°à¸™à¸³) KDBX 3 - - - - unchanged - Database decryption time is unchanged - ไม่เปลี่ยนà¹à¸›à¸¥à¸‡ + KDBX 3 Number of rounds too high @@ -1898,7 +1951,8 @@ Are you sure you want to continue without a password? You are using a very high number of key transform rounds with Argon2. If you keep this number, your database may take hours, days, or even longer to open. - + คุณà¸à¸³à¸¥à¸±à¸‡à¹ƒà¸Šà¹‰à¸£à¸­à¸šà¸à¸²à¸£à¹à¸›à¸¥à¸‡à¸„ีย์จำนวนมาà¸à¸à¸±à¸š Argon2 +หาà¸à¸„ุณเà¸à¹‡à¸šà¸«à¸¡à¸²à¸¢à¹€à¸¥à¸‚นี้ไว้ à¸à¸²à¸™à¸‚้อมูลของคุณอาจใช้เวลาในà¸à¸²à¸£à¹€à¸›à¸´à¸”หลายชั่วโมง นานเป็นวัน หรือนานà¸à¸§à¹ˆà¸²à¸™à¸±à¹‰à¸™ Understood, keep number @@ -1917,7 +1971,8 @@ If you keep this number, your database may take hours, days, or even longer to o You are using a very low number of key transform rounds with AES-KDF. If you keep this number, your database will not be protected from brute force attacks. - + คุณà¸à¸³à¸¥à¸±à¸‡à¹ƒà¸Šà¹‰à¸£à¸­à¸šà¸à¸²à¸£à¹à¸›à¸¥à¸‡à¸„ีย์จำนวนต่ำมาà¸à¸à¸±à¸š AES-KDF +หาà¸à¸„ุณเà¸à¹‡à¸šà¸«à¸¡à¸²à¸¢à¹€à¸¥à¸‚นี้ไว้ à¸à¸²à¸™à¸‚้อมูลของคุณจะไม่ได้รับà¸à¸²à¸£à¸›à¸à¸›à¹‰à¸­à¸‡à¸ˆà¸²à¸à¸à¸²à¸£à¹‚จมตีด้วยà¸à¸³à¸¥à¸±à¸‡à¸›à¸£à¸°à¸—ุษร้าย KDF unchanged @@ -1937,31 +1992,43 @@ If you keep this number, your database will not be protected from brute force at Threads for parallel execution (KDF settings) thread(s) + + Encryption Settings: + + + + Basic + + + + Advanced + ขั้นสูง + DatabaseSettingsWidgetFdoSecrets Exposed Entries - + รายà¸à¸²à¸£à¸—ี่เปิดเผย Don't expose this database - + อย่าเปิดเผยà¸à¸²à¸™à¸‚้อมูลนี้ Expose entries under this group: - + à¹à¸ªà¸”งรายà¸à¸²à¸£à¸ à¸²à¸¢à¹ƒà¸•้à¸à¸¥à¸¸à¹ˆà¸¡à¸™à¸µà¹‰: Enable Secret Service to access these settings. - + เปิดใช้งาน Secret Service เพื่อเข้าถึงà¸à¸²à¸£à¸•ั้งค่าเหล่านี้ DatabaseSettingsWidgetGeneral Database Metadata - + เมทาดาทาà¸à¸²à¸™à¸‚้อมูล Database name: @@ -1993,19 +2060,11 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry - - - - Max. history items: - จำนวนมาà¸à¸ªà¸¸à¸”ของรายà¸à¸²à¸£à¸›à¸£à¸°à¸§à¸±à¸•ิ + จำนวนรายà¸à¸²à¸£à¸›à¸£à¸°à¸§à¸±à¸•ิสูงสุดต่อรายà¸à¸²à¸£ Maximum size of history per entry - - - - Max. history size: - ขนาดมาà¸à¸ªà¸¸à¸”ของรายà¸à¸²à¸£à¸›à¸£à¸°à¸§à¸±à¸•ิ + ขนาดประวัติต่อรายà¸à¸²à¸£à¸ªà¸¹à¸‡à¸ªà¸¸à¸” MiB @@ -2021,7 +2080,7 @@ If you keep this number, your database will not be protected from brute force at Enable compression (recommended) - + เปิดใช้งานà¸à¸²à¸£à¸šà¸µà¸šà¸­à¸±à¸” (à¹à¸™à¸°à¸™à¸³) Delete Recycle Bin @@ -2030,12 +2089,70 @@ If you keep this number, your database will not be protected from brute force at Do you want to delete the current recycle bin and all its contents? This action is not reversible. - + คุณต้องà¸à¸²à¸£à¸¥à¸šà¸–ังรีไซเคิลปัจจุบันà¹à¸¥à¸°à¹€à¸™à¸·à¹‰à¸­à¸«à¸²à¸—ั้งหมดหรือไม่? à¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¸™à¸µà¹‰à¹„ม่สามารถย้อนà¸à¸¥à¸±à¸šà¹„ด้ (old) (เà¸à¹ˆà¸²) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + เมื่อบันทึà¸à¸à¸²à¸£à¸•ั้งค่านี้หรือà¹à¸à¹‰à¹„ขรายà¸à¸²à¸£ +รายà¸à¸²à¸£à¸›à¸£à¸°à¸§à¸±à¸•ิศาสตร์ที่เà¸à¹ˆà¸²à¹à¸à¹ˆà¸—ี่สุดของรายà¸à¸²à¸£à¸ˆà¸°à¹€à¸›à¹‡à¸™ +เอาออà¸à¸•ามจำนวนที่à¸à¸³à¸«à¸™à¸”เท่านั้น +ของรายà¸à¸²à¸£à¸¢à¸±à¸‡à¸„งอยู่มาà¸à¸—ี่สุด + + + Limit the amount of history items per entry to: + จำà¸à¸±à¸”จำนวนรายà¸à¸²à¸£à¸›à¸£à¸°à¸§à¸±à¸•ิต่อรายà¸à¸²à¸£à¸—ี่: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + เมื่อบันทึà¸à¸à¸²à¸£à¸•ั้งค่านี้หรือà¹à¸à¹‰à¹„ขรายà¸à¸²à¸£ + รายà¸à¸²à¸£à¸›à¸£à¸°à¸§à¸±à¸•ิที่เà¸à¹ˆà¸²à¸—ี่สุดของรายà¸à¸²à¸£à¸ˆà¸°à¸–ูà¸à¸¥à¸š + เพื่อให้รายà¸à¸²à¸£à¸›à¸£à¸°à¸§à¸±à¸•ิที่เหลือรวมà¸à¸±à¸™ +ได้มาà¸à¸—ี่สุดตามจำนวนที่ระบุ + + + Limit the total size of history items per entry to: + จำà¸à¸±à¸”ขนาดรวมของรายà¸à¸²à¸£à¸›à¸£à¸°à¸§à¸±à¸•ิต่อรายà¸à¸²à¸£à¹€à¸›à¹‡à¸™: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + ย้ายรายà¸à¸²à¸£à¹„ปยังà¸à¸¥à¸¸à¹ˆà¸¡à¸–ังรีไซเคิล +à¹à¸—นที่จะลบออà¸à¸ˆà¸²à¸à¸à¸²à¸™à¸‚้อมูล +รายà¸à¸²à¸£à¸—ี่ถูà¸à¸¥à¸šà¸­à¸­à¸à¸ˆà¸²à¸à¸–ังรีไซเคิล +ถูà¸à¸¥à¸šà¸­à¸­à¸à¸ˆà¸²à¸à¸à¸²à¸™à¸‚้อมูล + + + Autosave delay since last change + + + + Autosave delay + + + + Autosave delay since last change in minutes + + + + min + นาที + + + Autosave delay since last change checkbox + + DatabaseSettingsWidgetKeeShare @@ -2073,43 +2190,43 @@ This action is not reversible. DatabaseSettingsWidgetMaintenance Manage Custom Icons - + จัดà¸à¸²à¸£à¹„อคอนที่à¸à¸³à¸«à¸™à¸”เอง Delete selected icon(s) - + ลบไอคอนที่เลือà¸à¹„ว้ Delete all custom icons not in use by any entry or group - + ลบไอคอนà¹à¸šà¸šà¸à¸³à¸«à¸™à¸”เองทั้งหมดที่ไม่ได้ใช้งานโดยรายà¸à¸²à¸£à¸«à¸£à¸·à¸­à¸à¸¥à¸¸à¹ˆà¸¡à¹ƒà¸” ๆ Purge unused icons - + ล้างไอคอนที่ไม่ได้ใช้ Confirm Deletion - + ยืนยันà¸à¸²à¸£à¸¥à¸š At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? - + ไอคอนที่เลือà¸à¹„ว้อย่างน้อยหนึ่งรายà¸à¸²à¸£à¹„ด้มีà¸à¸²à¸£à¸™à¸³à¹„ปใช้งานอยู่ในขณะนี้โดยอย่างน้อยหนึ่งรายà¸à¸²à¸£à¸«à¸£à¸·à¸­à¸«à¸™à¸¶à¹ˆà¸‡à¸à¸¥à¸¸à¹ˆà¸¡ ไอคอนของรายà¸à¸²à¸£à¹à¸¥à¸°à¸à¸¥à¸¸à¹ˆà¸¡à¸—ี่ได้รับผลà¸à¸£à¸°à¸—บทั้งหมดจะà¹à¸—นที่ด้วยไอคอนเริ่มต้น คุณà¹à¸™à¹ˆà¹ƒà¸ˆà¸«à¸£à¸·à¸­à¹„ม่ว่าต้องà¸à¸²à¸£à¸¥à¸šà¹„อคอนที่à¸à¸³à¸¥à¸±à¸‡à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸­à¸¢à¸¹à¹ˆ Custom Icons Are In Use - + มีà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¹„อคอนà¹à¸šà¸šà¸à¸³à¸«à¸™à¸”เอง All custom icons are in use by at least one entry or group. - + ไอคอนที่à¸à¸³à¸«à¸™à¸”เองทั้งหมดมีà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸­à¸¢à¹ˆà¸²à¸‡à¸™à¹‰à¸­à¸¢à¸«à¸™à¸¶à¹ˆà¸‡à¸£à¸²à¸¢à¸à¸²à¸£à¸«à¸£à¸·à¸­à¸«à¸™à¸¶à¹ˆà¸‡à¸à¸¥à¸¸à¹ˆà¸¡ Purged Unused Icons - + ล้างไอคอนที่ไม่ได้ใช้à¹à¸¥à¹‰à¸§ Purged %n icon(s) from the database. - + ล้างไอคอน %n ออà¸à¸ˆà¸²à¸à¸à¸²à¸™à¸‚้อมูล @@ -2163,26 +2280,10 @@ This is definitely a bug, please report it to the developers. CSV file à¹à¸Ÿà¹‰à¸¡ CSV - - Select CSV file - เลือà¸à¹à¸Ÿà¹‰à¸¡ CSV - Merge database ผสานà¸à¸²à¸™à¸‚้อมูล - - KeePass 1 database - à¸à¸²à¸™à¸‚้อมูล KeePass 1 - - - Open KeePass 1 database - เปิดà¸à¸²à¸™à¸‚้อมูล KeePass 1 - - - Open OPVault - เปิด OPVault - Export database to CSV file ส่งออà¸à¸à¸²à¸™à¸‚้อมูลเป็นà¹à¸Ÿà¹‰à¸¡ CSV @@ -2193,7 +2294,19 @@ This is definitely a bug, please report it to the developers. Writing the HTML file failed. - + à¸à¸²à¸£à¹€à¸‚ียนไฟล์ HTML ล้มเหลว + + + Export database to XML file + ส่งออà¸à¸à¸²à¸™à¸‚้อมูลเป็นไฟล์ XML + + + XML file + ไฟล์ XML + + + Writing the XML file failed + à¸à¸²à¸£à¹€à¸‚ียนไฟล์ XML ล้มเหลว Export Confirmation @@ -2203,15 +2316,6 @@ This is definitely a bug, please report it to the developers. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? คุณà¸à¸³à¸¥à¸±à¸‡à¸ˆà¸°à¸ªà¹ˆà¸‡à¸­à¸­à¸à¸à¸²à¸™à¸‚้อมูลของคุณไปยังà¹à¸Ÿà¹‰à¸¡à¸—ี่ไม่ได้เข้ารหัสลับ นี่จะทำให้รหัสผ่านà¹à¸¥à¸°à¸‚้อมูลอ่อนไหวของคุณตà¸à¸­à¸¢à¸¹à¹ˆà¹ƒà¸™à¸­à¸±à¸™à¸•ราย! คุณà¹à¸™à¹ˆà¹ƒà¸ˆà¸«à¸£à¸·à¸­à¹„ม่ว่าจะดำเนินà¸à¸²à¸£à¸•่อ? - - New Database - à¸à¸²à¸™à¸‚้อมูลใหม่ - - - %1 [New Database] - Database tab name modifier - %1 [à¸à¸²à¸™à¸‚้อมูลใหม่] - %1 [Locked] Database tab name modifier @@ -2221,8 +2325,8 @@ This is definitely a bug, please report it to the developers. DatabaseWidget - Database Tags - + Searches and Tags + à¸à¸²à¸£à¸„้นหาà¹à¸¥à¸°à¹à¸—็ภSearching… @@ -2230,15 +2334,15 @@ This is definitely a bug, please report it to the developers. Shared group… - + à¸à¸¥à¸¸à¹ˆà¸¡à¸—ี่à¹à¸Šà¸£à¹Œâ€¦ Confirm Auto-Type - + ยืนยันà¸à¸²à¸£à¸žà¸´à¸¡à¸žà¹Œà¸­à¸±à¸•โนมัติ Perform Auto-Type into the previously active window? - + ดำเนินà¸à¸²à¸£à¸žà¸´à¸¡à¸žà¹Œà¸­à¸±à¸•โนมัติในหน้าต่างที่ใช้งานà¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²à¸™à¸µà¹‰à¸«à¸£à¸·à¸­à¹„ม่? Execute command? @@ -2270,7 +2374,11 @@ This is definitely a bug, please report it to the developers. Expired entries - + ข้อมูลที่นำเข้าสู่ระบบที่หมดอายุà¹à¸¥à¹‰à¸§ + + + Entries expiring within %1 day(s) + รายà¸à¸²à¸£à¸ˆà¸°à¸«à¸¡à¸”อายุภายใน %1 วัน No current database. @@ -2296,6 +2404,18 @@ This is definitely a bug, please report it to the developers. No Results ไม่มีผลลัพธ์ + + Save + บันทึภ+ + + Enter a unique name or overwrite an existing search from the list: + ป้อนชื่อเฉพาะหรือเขียนทับà¸à¸²à¸£à¸„้นหาที่มีอยู่จาà¸à¸£à¸²à¸¢à¸à¸²à¸£: + + + Save Search + บันทึà¸à¸à¸²à¸£à¸„้นหา + Lock Database? ล็อคà¸à¸²à¸™à¸‚้อมูลหรือไม่ @@ -2351,7 +2471,7 @@ Error: %1 KeePassXC has failed to save the database multiple times. This is likely caused by file sync services holding a lock on the save file. Disable safe saves and try again? - KeePassXC บันทึà¸à¸à¸²à¸™à¸‚้อมูลไม่สำเร็จหลายครั้ง นี่อาจมีสาเหตุจาà¸à¸šà¸£à¸´à¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸›à¸£à¸°à¸ªà¸²à¸™à¹à¸Ÿà¹‰à¸¡à¹„ด้ล็อà¸à¹à¸Ÿà¹‰à¸¡à¸—ี่จะบันทึà¸à¸­à¸¢à¸¹à¹ˆ + KeePassXC บันทึà¸à¸à¸²à¸™à¸‚้อมูลไม่สำเร็จอยู่หลายครั้ง สิ่งนี้อาจเà¸à¸´à¸”จาà¸à¸šà¸£à¸´à¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸›à¸£à¸°à¸ªà¸²à¸™à¹à¸Ÿà¹‰à¸¡à¹„ด้ล็อà¸à¹à¸Ÿà¹‰à¸¡à¸—ี่จะบันทึà¸à¸­à¸¢à¸¹à¹ˆ ปิดใช้à¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸à¹à¸šà¸šà¸›à¸¥à¸­à¸”ภัยà¹à¸¥à¸°à¸¥à¸­à¸‡à¸­à¸µà¸à¸„รั้งหรือไม่? @@ -2386,9 +2506,14 @@ Disable safe saves and try again? Could not find database file: %1 ไม่พบà¹à¸Ÿà¹‰à¸¡à¸à¸²à¸™à¸‚้อมูล: %1 - - Entries expiring within %1 day(s) - + + New Database + à¸à¸²à¸™à¸‚้อมูลใหม่ + + + %1 [New Database] + Database tab name modifier + %1 [à¸à¸²à¸™à¸‚้อมูลใหม่] @@ -2463,7 +2588,7 @@ Disable safe saves and try again? Some Browser Integration settings are overridden by group settings. - + à¸à¸²à¸£à¸•ั้งค่าà¸à¸²à¸£à¸œà¸ªà¸²à¸™à¸£à¸§à¸¡à¹€à¸šà¸£à¸²à¸§à¹Œà¹€à¸‹à¸­à¸£à¹Œà¸šà¸²à¸‡à¸­à¸¢à¹ˆà¸²à¸‡à¸–ูà¸à¹à¸—นที่ด้วยà¸à¸²à¸£à¸•ั้งค่าà¸à¸¥à¸¸à¹ˆà¸¡ Invalid Entry @@ -2472,23 +2597,28 @@ Disable safe saves and try again? An external merge operation has invalidated this entry. Unfortunately, any changes made have been lost. - + à¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¸œà¸ªà¸²à¸™à¸ à¸²à¸¢à¸™à¸­à¸à¸—ำให้รายà¸à¸²à¸£à¸™à¸µà¹‰à¹„ม่ถูà¸à¸•้อง +ขออภัย à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¹ƒà¸” ๆ ที่เà¸à¸´à¸”ขึ้น ได้สูà¸à¸«à¸²à¸¢à¹„ป Auto-Type Validation Error - + ข้อผิดพลาดในà¸à¸²à¸£à¸•รวจสอบà¸à¸²à¸£à¸žà¸´à¸¡à¸žà¹Œà¸­à¸±à¸•โนมัติ An error occurred while validating the custom Auto-Type sequence: %1 Would you like to correct it? - + เà¸à¸´à¸”ข้อผิดพลาดขณะตรวจสอบลà¹à¸²à¸”ับà¸à¸²à¸£à¸žà¸´à¸¡à¸žà¹Œà¸­à¸±à¸•โนมัติà¹à¸šà¸šà¸à¹à¸²à¸«à¸™à¸”เอง: +%1 +คุณต้องà¸à¸²à¸£à¹à¸à¹‰à¹„ขหรือไม่ An error occurred while validating the Auto-Type sequence for "%1": %2 Would you like to correct it? - + มีข้อผิดพลาดเà¸à¸´à¸”ขึ้นขณะตรวจสอบลà¹à¸²à¸”ับà¸à¸²à¸£à¸žà¸´à¸¡à¸žà¹Œà¸­à¸±à¸•โนมัติสà¹à¸²à¸«à¸£à¸±à¸š "%1": +%2 +คุณต้องà¸à¸²à¸£à¹à¸à¹‰à¹„ขหรือไม่ Entry updated successfully. @@ -2520,12 +2650,16 @@ Would you like to correct it? [PROTECTED] Press Reveal to view or edit - + [ป้องà¸à¸±à¸™] à¸à¸”เปิดเผยเพื่อดูหรือà¹à¸à¹‰à¹„ข Hide ซ่อน + + %n hour(s) + %n ชั่วโมง + %n week(s) %n สัปดาห์ @@ -2538,10 +2672,6 @@ Would you like to correct it? %n year(s) %n ปี - - %n hour(s) - - EditEntryWidgetAdvanced @@ -2551,11 +2681,11 @@ Would you like to correct it? Attribute selection - + à¸à¸²à¸£à¹€à¸¥à¸·à¸­à¸à¹à¸­à¸•ทริบิวต์ Attribute value - + ค่าà¹à¸­à¸•ทริบิวต์ Add a new attribute @@ -2603,11 +2733,11 @@ Would you like to correct it? If checked, the entry will not appear in reports like Health Check and HIBP even if it doesn't match the quality requirements. - + หาà¸à¹€à¸¥à¸·à¸­à¸ รายà¸à¸²à¸£à¸ˆà¸°à¹„ม่ปราà¸à¸à¹ƒà¸™à¸£à¸²à¸¢à¸‡à¸²à¸™ เช่น à¸à¸²à¸£à¸•รวจสุขภาพ à¹à¸¥à¸° HIBP à¹à¸¡à¹‰à¸§à¹ˆà¸²à¸ˆà¸°à¹„ม่ตรงà¸à¸±à¸šà¸‚้อà¸à¸³à¸«à¸™à¸”ด้านคุณภาพà¸à¹‡à¸•าม Exclude from database reports - + à¹à¸¢à¸à¸­à¸­à¸à¸ˆà¸²à¸à¸£à¸²à¸¢à¸‡à¸²à¸™à¸à¸²à¸™à¸‚้อมูล Foreground Color: @@ -2634,19 +2764,19 @@ Would you like to correct it? Inherit default Auto-Type sequence from the group - + สืบทอดลำดับประเภทอัตโนมัติเริ่มต้นจาà¸à¸à¸¥à¸¸à¹ˆà¸¡ Use custom Auto-Type sequence: - + ใช้ลำดับประเภทอัตโนมัติà¹à¸šà¸šà¸à¸³à¸«à¸™à¸”เอง: Custom Auto-Type sequence - + ลำดับประเภทอัตโนมัติà¹à¸šà¸šà¸à¸³à¸«à¸™à¸”เอง Open Auto-Type help webpage - + เปิดหน้าเว็บช่วยเหลือประเภทอัตโนมัติ Window Associations @@ -2654,50 +2784,50 @@ Would you like to correct it? Existing window associations - + à¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚ยงหน้าต่างที่มีอยู่ Add new window association - - - - Remove selected window association - - - - Window title: - หัวเรื่องของหน้าต่าง - - - You can use an asterisk (*) to match everything - - - - Set the window association title - - - - You can use an asterisk to match everything - - - - Use a specific sequence for this association: - ใช้ลำดับเฉพาะในà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚ยง - - - Custom Auto-Type sequence for this window - + เพิ่มà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚ยงหน้าต่างใหม่ + Add item + + + Remove selected window association + ลบà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚ยงหน้าต่างที่เลือภ+ - Remove item - + + Window title: + หัวเรื่องของหน้าต่าง + + + You can use an asterisk (*) to match everything + คุณสามารถใช้เครื่องหมายดอà¸à¸ˆà¸±à¸™ (*) เพื่อจับคู่ทุà¸à¸­à¸¢à¹ˆà¸²à¸‡ + + + Set the window association title + ตั้งชื่อเรื่องà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚ยงหน้าต่าง + + + You can use an asterisk to match everything + คุณสามารถใช้เครื่องหมายดอà¸à¸ˆà¸±à¸™à¹€à¸žà¸·à¹ˆà¸­à¸ˆà¸±à¸šà¸„ู่ทุà¸à¸­à¸¢à¹ˆà¸²à¸‡ + + + Use a specific sequence for this association: + ใช้ลำดับเฉพาะในà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚ยง + + + Custom Auto-Type sequence for this window + ลำดับประเภทอัตโนมัติà¹à¸šà¸šà¸à¸³à¸«à¸™à¸”เองสำหรับหน้าต่างนี้ + EditEntryWidgetBrowser @@ -2715,23 +2845,23 @@ Would you like to correct it? Skip Auto-Submit for this entry - + ข้ามà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸±à¸•โนมัติสำหรับรายà¸à¸²à¸£à¸™à¸µà¹‰ Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. - + ส่งà¸à¸²à¸£à¸•ั้งค่านี้ไปยังเบราว์เซอร์สำหรับà¸à¸¥à¹ˆà¸­à¸‡à¹‚ต้ตอบ HTTP Auth เท่านั้น หาà¸à¹€à¸›à¸´à¸”ใช้งาน à¹à¸šà¸šà¸Ÿà¸­à¸£à¹Œà¸¡à¸à¸²à¸£à¹€à¸‚้าสู่ระบบปà¸à¸•ิจะไม่à¹à¸ªà¸”งรายà¸à¸²à¸£à¸™à¸µà¹‰à¸ªà¸³à¸«à¸£à¸±à¸šà¸à¸²à¸£à¹€à¸¥à¸·à¸­à¸ Use this entry only with HTTP Basic Auth - + ใช้รายà¸à¸²à¸£à¸à¸±à¸š HTTP Basic Auth เท่านั้น: Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. - + อย่าส่งà¸à¸²à¸£à¸•ั้งค่านี้ไปยังเบราว์เซอร์สำหรับà¸à¸¥à¹ˆà¸­à¸‡à¹‚ต้ตอบ HTTP Auth หาà¸à¹€à¸›à¸´à¸”ใช้งาน à¸à¸¥à¹ˆà¸­à¸‡à¹‚ต้ตอบ HTTP Auth จะไม่à¹à¸ªà¸”งรายà¸à¸²à¸£à¸™à¸µà¹‰à¸ªà¸³à¸«à¸£à¸±à¸šà¸à¸²à¸£à¹€à¸¥à¸·à¸­à¸ Do not use this entry with HTTP Basic Auth - + อย่าใช้รายà¸à¸²à¸£à¸™à¸µà¹‰à¸à¸±à¸š HTTP Basic Auth Additional URL's @@ -2754,11 +2884,11 @@ Would you like to correct it? EditEntryWidgetHistory Entry history selection - + à¸à¸²à¸£à¹€à¸¥à¸·à¸­à¸à¸›à¸£à¸°à¸§à¸±à¸•ิà¸à¸²à¸£à¹€à¸‚้า Show entry at selected history state - + à¹à¸ªà¸”งรายà¸à¸²à¸£à¹ƒà¸™à¸ªà¸–านะประวัติที่เลือภShow @@ -2766,7 +2896,7 @@ Would you like to correct it? Restore entry to selected history state - + à¸à¸¹à¹‰à¸„ืนรายà¸à¸²à¸£à¹„ปยังสถานะประวัติที่เลือภRestore @@ -2799,46 +2929,26 @@ Would you like to correct it? Notes field ช่องบันทึภ- - Toggle the checkbox to reveal the notes section. - สลับà¸à¸¥à¹ˆà¸­à¸‡à¸à¸²à¹€à¸„รื่องหมายเพื่อà¹à¸ªà¸”งส่วนบันทึภ- Username field ช่องชื่อผู้ใช้ - - Toggle notes visible - สลับให้เห็นบันทึภ- - - Notes: - บันทึà¸: - Expiration field ช่องวันหมดอายุ Expiration Presets - + วันหมดอายุของพรีเซ็ต Expiration presets - + วันหมดอายุของพรีเซ็ต Presets ค่าปรับà¹à¸•่งสำเร็จรูป - - Password: - รหัสผ่าน - - - URL: - URL: - Url field ช่องข้อมูล URL @@ -2847,18 +2957,10 @@ Would you like to correct it? Download favicon for URL ดาวน์โหลด favicon สำหรับ URL - - Title: - หัวเรื่อง - Title field ช่องหัวเรื่อง - - Username: - ชื่อผู้ใช้งาน - Password field ช่องรหัสผ่าน @@ -2868,15 +2970,39 @@ Would you like to correct it? สลับวันหมดอายุ - Expires: - หมดอายุ: + Tags list + รายชื่อà¹à¸—็à¸à¸•่างๆ: - Tags: + &Username: - Tags list + &Title: + + + + &Password: + + + + UR&L: + + + + &Notes: + + + + Toggle notes visibility + + + + T&ags: + + + + &Expires: @@ -2918,19 +3044,6 @@ Would you like to correct it? Private key à¸à¸¸à¸à¹à¸ˆà¸ªà¹ˆà¸§à¸™à¸•ัว - - External file - à¹à¸Ÿà¹‰à¸¡à¸ à¸²à¸¢à¸™à¸­à¸ - - - Browser for key file - เรียà¸à¸”ูà¹à¸Ÿà¹‰à¸¡à¸à¸¸à¸à¹à¸ˆ - - - Browse… - Button for opening file dialog - เลือà¸à¸”ู... - Attachment à¹à¸Ÿà¹‰à¸¡à¹à¸™à¸š @@ -2947,6 +3060,23 @@ Would you like to correct it? Remove from agent ลบออà¸à¸ˆà¸²à¸à¸•ัวà¹à¸—น + + External file + à¹à¸Ÿà¹‰à¸¡à¸ à¸²à¸¢à¸™à¸­à¸ + + + Browser for key file + เรียà¸à¸”ูà¹à¸Ÿà¹‰à¸¡à¸à¸¸à¸à¹à¸ˆ + + + Browse… + Button for opening file dialog + เลือà¸à¸”ู... + + + Generate + สร้าง + Select attachment file เลือà¸à¹à¸Ÿà¹‰à¸¡à¹à¸™à¸š @@ -2965,7 +3095,7 @@ Would you like to correct it? Remove key from agent after specified seconds - + ลบคีย์ออà¸à¸ˆà¸²à¸à¸•ัวà¹à¸—นหลังจาà¸à¸§à¸´à¸™à¸²à¸—ีที่ระบุ seconds @@ -2982,10 +3112,6 @@ Would you like to correct it? Icon ไอคอน - - Browser Integration - à¸à¸²à¸£à¸—ำงานร่วมà¸à¸±à¸šà¹€à¸šà¸£à¸²à¸§à¹Œà¹€à¸‹à¸­à¸£à¹Œ - Properties คุณสมบัติ @@ -3000,7 +3126,11 @@ Would you like to correct it? Group has unsaved changes - + à¸à¸¥à¸¸à¹ˆà¸¡à¸¡à¸µà¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸—ี่ไม่ได้บันทึภ+ + + Browser Integration + à¸à¸²à¸£à¸—ำงานร่วมà¸à¸±à¸šà¹€à¸šà¸£à¸²à¸§à¹Œà¹€à¸‹à¸­à¸£à¹Œ Enable @@ -3017,44 +3147,56 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - à¹à¸à¹‰à¹„ขà¸à¸¥à¸¸à¹ˆà¸¡ - These settings affect to the group's behaviour with the browser extension. - + à¸à¸²à¸£à¸•ั้งค่าเหล่านี้ส่งผลต่อพฤติà¸à¸£à¸£à¸¡à¸‚องà¸à¸¥à¸¸à¹ˆà¸¡à¸”้วยส่วนขยายของเบราว์เซอร์ Hide entries from browser extension: - + ซ่อนรายà¸à¸²à¸£à¸ˆà¸²à¸à¸ªà¹ˆà¸§à¸™à¸‚ยายเบราว์เซอร์: Hide entries from browser extension toggle for this and sub groups - + ซ่อนรายà¸à¸²à¸£à¸ˆà¸²à¸à¸à¸²à¸£à¸ªà¸¥à¸±à¸šà¸ªà¹ˆà¸§à¸™à¸‚ยายของเบราว์เซอร์สำหรับà¸à¸¥à¸¸à¹ˆà¸¡à¸™à¸µà¹‰à¹à¸¥à¸°à¸à¸¥à¸¸à¹ˆà¸¡à¸¢à¹ˆà¸­à¸¢ Skip Auto-Submit for entries: - + ข้ามà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸±à¸•โนมัติสำหรับรายà¸à¸²à¸£: Skip Auto-Submit toggle for this and sub groups - + ข้ามà¸à¸²à¸£à¸ªà¸¥à¸±à¸šà¸ªà¹ˆà¸‡à¸­à¸±à¸•โนมัติสำหรับà¸à¸¥à¸¸à¹ˆà¸¡à¸™à¸µà¹‰à¹à¸¥à¸°à¸à¸¥à¸¸à¹ˆà¸¡à¸¢à¹ˆà¸­à¸¢ Use entries only with HTTP Basic Auth: - + ปใช้รายà¸à¸²à¸£à¸à¸±à¸š HTTP Basic Auth เท่านั้น: Only HTTP Auth toggle for this and sub groups - + สลับเฉพาะ HTTP Auth สำหรับà¸à¸¥à¸¸à¹ˆà¸¡à¸™à¸µà¹‰à¹à¸¥à¸°à¸à¸¥à¸¸à¹ˆà¸¡à¸¢à¹ˆà¸­à¸¢ Do not use entries with HTTP Basic Auth: - + อย่าใช้รายà¸à¸²à¸£à¸—ี่มี HTTP Basic Auth: Do not use HTTP Auth toggle for this and sub groups + อย่าใช้à¸à¸²à¸£à¸ªà¸¥à¸±à¸š HTTP Auth สำหรับà¸à¸¥à¸¸à¹ˆà¸¡à¸™à¸µà¹‰à¹à¸¥à¸°à¸à¸¥à¸¸à¹ˆà¸¡à¸¢à¹ˆà¸­à¸¢ + + + Omit WWW subdomain from matching: + ละเว้นโดเมนย่อย WWW จาà¸à¸à¸²à¸£à¸ˆà¸±à¸šà¸„ู่: + + + Omit WWW subdomain from matching toggle for this and sub groups + ละเว้นโดเมนย่อย WWW จาà¸à¸à¸²à¸£à¸ªà¸¥à¸±à¸šà¸à¸²à¸£à¸ˆà¸±à¸šà¸„ู่สำหรับà¸à¸¥à¸¸à¹ˆà¸¡à¸™à¸µà¹‰à¹à¸¥à¸°à¸à¸¥à¸¸à¹ˆà¸¡à¸¢à¹ˆà¸­à¸¢ + + + Restrict matching to given browser key: + + + + Restrict matching to given browser key toggle for this and sub groups @@ -3062,7 +3204,7 @@ Would you like to correct it? EditGroupWidgetKeeShare Sharing mode field - + ฟิลด์โหมดà¸à¸²à¸£à¹à¸Šà¸£à¹Œ Password field @@ -3082,7 +3224,7 @@ Would you like to correct it? Path to share file field - + เส้นทางเพื่อà¹à¸Šà¸£à¹Œà¸Ÿà¸´à¸¥à¸”์ไฟล์ Browse for share file @@ -3137,19 +3279,19 @@ Supported extensions are: %1. KeeShare is currently disabled. You can enable import/export in the application settings. KeeShare is a proper noun - + KeeShare ถูà¸à¸›à¸´à¸”ใช้งานอยู่ในขณะนี้ คุณสามารถเปิดใช้งานà¸à¸²à¸£à¸™à¸³à¹€à¸‚้า/ส่งออà¸à¹ƒà¸™à¸à¸²à¸£à¸•ั้งค่าà¹à¸­à¸›à¸žà¸¥à¸´à¹€à¸„ชัน Database export is currently disabled by application settings. - + ขณะนี้ à¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸à¸à¸²à¸™à¸‚้อมูลถูà¸à¸›à¸´à¸”ใช้งานโดยà¸à¸²à¸£à¸•ั้งค่าà¹à¸­à¸›à¸žà¸¥à¸´à¹€à¸„ชัน Database import is currently disabled by application settings. - + ขณะนี้ à¸à¸²à¸£à¸™à¸³à¹€à¸‚้าà¸à¸²à¸™à¸‚้อมูลถูà¸à¸›à¸´à¸”ใช้งานโดยà¸à¸²à¸£à¸•ั้งค่าà¹à¸­à¸›à¸žà¸¥à¸´à¹€à¸„ชัน KeeShare container - + คอนเทนเนอร์ KeeShare KeeShare signed container @@ -3192,7 +3334,7 @@ Supported extensions are: %1. Use default Auto-Type sequence of parent group - + ใช้ลำดับประเภทอัตโนมัติเริ่มต้นของà¸à¸¥à¸¸à¹ˆà¸¡à¸«à¸¥à¸±à¸ Auto-Type: @@ -3204,7 +3346,7 @@ Supported extensions are: %1. Auto-Type toggle for this and sub groups - + สลับà¸à¸²à¸£à¸žà¸´à¸¡à¸žà¹Œà¸­à¸±à¸•โนมัติสà¹à¸²à¸«à¸£à¸±à¸šà¸à¸¥à¸¸à¹ˆà¸¡à¸™à¸µà¹‰à¹à¸¥à¸°à¸à¸¥à¸¸à¹ˆà¸¡à¸¢à¹ˆà¸­à¸¢ Notes: @@ -3212,7 +3354,7 @@ Supported extensions are: %1. Default auto-type sequence field - + ฟิลด์ลำดับประเภทอัตโนมัติเริ่มต้น Notes field @@ -3224,11 +3366,11 @@ Supported extensions are: %1. Set default Auto-Type sequence - + ตั้งค่าลำดับประเภทอัตโนมัติเริ่มต้น Search toggle for this and sub groups - + สลับà¸à¸²à¸£à¸„้นหาสำหรับà¸à¸¥à¸¸à¹ˆà¸¡à¸™à¸µà¹‰à¹à¸¥à¸°à¸à¸¥à¸¸à¹ˆà¸¡à¸¢à¹ˆà¸­à¸¢ @@ -3247,11 +3389,11 @@ Supported extensions are: %1. Set the URL to use to search for a favicon - + ตั้งค่า URL เพื่อใช้ค้นหา favicon Favicon URL - + Favicon URL Download favicon for URL @@ -3267,7 +3409,7 @@ Supported extensions are: %1. Apply icon to… - + ปรับใช้ไอคอนà¸à¸±à¸šâ€¦ Apply to this group only @@ -3289,10 +3431,6 @@ Supported extensions are: %1. Unable to fetch favicon. ไม่สามารถดึงข้อมูล favicon ได้ - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - - Existing icon selected. ไอคอนที่มีอยู่à¹à¸¥à¹‰à¸§à¸–ูà¸à¹€à¸¥à¸·à¸­à¸ @@ -3325,6 +3463,10 @@ Supported extensions are: %1. The following icon(s) failed: ไอคอนต่อไปนี้ล้มเหลว + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + + EditWidgetProperties @@ -3406,7 +3548,7 @@ This may cause the affected plugins to malfunction. EntryAttachments Cannot open file "%1" - + เปิดà¹à¸Ÿà¹‰à¸¡ "%1" ไม่ได้ @@ -3448,7 +3590,7 @@ This may cause the affected plugins to malfunction. Rename selected attachment - + เปลี่ยนชื่อเอà¸à¸ªà¸²à¸£à¹à¸™à¸šà¸—ี่เลือภRename @@ -3526,12 +3668,13 @@ This may cause the affected plugins to malfunction. Confirm Overwrite Attachment - + ยืนยันà¸à¸²à¸£à¹€à¸‚ียนทับไฟล์à¹à¸™à¸š Attachment "%1" already exists. Would you like to overwrite the existing attachment? - + มีเอà¸à¸ªà¸²à¸£à¹à¸™à¸š "%1" อยู่à¹à¸¥à¹‰à¸§ +คุณต้องà¸à¸²à¸£à¹€à¸‚ียนทับไฟล์à¹à¸™à¸šà¸—ี่มีอยู่หรือไม่ Confirm Attachment @@ -3549,21 +3692,23 @@ Are you sure to add this file? Attachment modified - + เอà¸à¸ªà¸²à¸£à¹à¸™à¸šà¹„ด้รับà¸à¸²à¸£à¹à¸à¹‰à¹„ขà¹à¸¥à¹‰à¸§ The attachment '%1' was modified. Do you want to save the changes to your database? - + เอà¸à¸ªà¸²à¸£à¹à¸™à¸š '%1' ถูà¸à¹à¸à¹‰à¹„ข +คุณต้องà¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¹ƒà¸™à¸à¸²à¸™à¸‚้อมูลของคุณหรือไม่? Saving attachment failed - + à¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸à¹€à¸­à¸à¸ªà¸²à¸£à¹à¸™à¸šà¸¥à¹‰à¸¡à¹€à¸«à¸¥à¸§ Saving updated attachment failed. Error: %1 - + à¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸à¹€à¸­à¸à¸ªà¸²à¸£à¹à¸™à¸šà¸—ี่อัปเดตล้มเหลว +ข้อผิดพลาด: %1 @@ -3577,7 +3722,7 @@ Error: %1 EntryHistoryModel Current (%1) - + ปัจจุบัน (%1) Last modified @@ -3617,7 +3762,7 @@ Error: %1 Custom Attributes - + à¹à¸­à¸•ทริบิวต์ที่à¸à¸³à¸«à¸™à¸”เอง Icon @@ -3637,7 +3782,7 @@ Error: %1 Custom Data - + ข้อมูลที่à¸à¸³à¸«à¸™à¸”เอง Attachments @@ -3649,7 +3794,7 @@ Error: %1 Tags - + à¹à¸—็ภ@@ -3721,7 +3866,7 @@ Error: %1 Password Strength - + ความà¹à¸‚็งà¹à¸£à¸‡à¸‚องรหัสผ่าน Entry notes @@ -3757,6 +3902,10 @@ Error: %1 Has TOTP + มีรหัสผ่านà¹à¸šà¸šà¹ƒà¸Šà¹‰à¸„รั้งเดียวตามเวลา + + + Background Color @@ -3764,7 +3913,7 @@ Error: %1 EntryPreviewWidget Display current TOTP value - + à¹à¸ªà¸”งค่า TOTP ปัจจุบัน Close @@ -3779,8 +3928,8 @@ Error: %1 รหัสผ่าน - Notes - บันทึภ+ URL + URL Expiration @@ -3788,19 +3937,19 @@ Error: %1 Tags - + à¹à¸—็ภTags list - + รายชื่อà¹à¸—็à¸à¸•่างๆ: Username ชื่อผู้ใช้ - URL - URL + Notes + บันทึภAdvanced @@ -3820,7 +3969,7 @@ Error: %1 Default Sequence - + ลำดับปริยาย Window @@ -3850,6 +3999,10 @@ Error: %1 Never ไม่เลย + + Double click to copy value + ดับเบิลคลิà¸à¹€à¸žà¸·à¹ˆà¸­à¸„ัดลอà¸à¸„่า + Enabled เปิดใช้ @@ -3858,6 +4011,10 @@ Error: %1 Disabled ปิดใช้ + + Double click to copy to clipboard + + EntryURLModel @@ -3865,6 +4022,10 @@ Error: %1 Invalid URL URL ผิดรูปà¹à¸šà¸š + + Duplicate URL + + EntryView @@ -3880,34 +4041,40 @@ Error: %1 Reset to defaults เริ่มใหม่เป็นค่าเริ่มต้น + + + %1 entry(s)... + + ExportDialog Export options - + ส่งออà¸à¸•ัวเลือภSort entries by... - + เรียงลำดับรายà¸à¸²à¸£à¸”้วย... You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! - + คุณà¸à¸³à¸¥à¸±à¸‡à¸ˆà¸°à¸ªà¹ˆà¸‡à¸­à¸­à¸à¸à¸²à¸™à¸‚้อมูลของคุณไปยังไฟล์ที่ไม่ได้เข้ารหัส +à¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¸™à¸µà¹‰à¸ˆà¸°à¸—ำให้รหัสผ่านà¹à¸¥à¸°à¸‚้อมูลที่ละเอียดอ่อนของคุณมีความเสี่ยง! + database order - + ลำดับà¸à¸²à¸™à¸‚้อมูล name (ascending) - + ชื่อ (จาà¸à¸¥à¹ˆà¸²à¸‡à¸ªà¸¸à¸”ไปบนสุด) name (descending) - + ชื่อ (จาà¸à¸šà¸™à¸ªà¸¸à¸”ไปล่างสุด) unknown @@ -3926,11 +4093,11 @@ This will leave your passwords and sensitive information vulnerable! FdoSecrets::DBusMgr Failed to deliver message - + à¸à¸²à¸£à¸ªà¹ˆà¸‡à¸‚้อความไม่สำเร็จ Failed to send reply on DBus - + ไม่สามารถส่งà¸à¸²à¸£à¸•อบà¸à¸¥à¸±à¸šà¸šà¸™ DBus Unknown @@ -3945,35 +4112,35 @@ This will leave your passwords and sensitive information vulnerable! <i>PID: %1, Executable: %2</i> <i>PID: 1234, Executable: /path/to/exe</i> - + <i> PID: % 1, ปà¸à¸´à¸šà¸±à¸•ิà¸à¸²à¸£à¹„ด้: % 2 </i> Another secret service is running (%1).<br/>Please stop/remove it before re-enabling the Secret Service Integration. - + บริà¸à¸²à¸£à¸¥à¸±à¸šà¸­à¸·à¹ˆà¸™à¸à¸³à¸¥à¸±à¸‡à¸—ำงานอยู่ (%1)<br/>à¸à¸£à¸¸à¸“าหยุด/ลบออà¸à¸à¹ˆà¸­à¸™à¸—ี่จะเปิดใช้งานà¸à¸²à¸£à¸œà¸ªà¸²à¸™à¸£à¸§à¸¡à¸šà¸£à¸´à¸à¸²à¸£à¸¥à¸±à¸šà¸­à¸µà¸à¸„รั้ง Failed to register DBus service at %1.<br/> - + ไม่สามารถลงทะเบียนบริà¸à¸²à¸£ DBus ที่ %1<br/> Failed to register service on DBus at path '%1' - + ไม่สามารถลงทะเบียนบริà¸à¸²à¸£à¸šà¸™ DBus ที่เส้นทาง '%1' Failed to register database on DBus under the name '%1' - + ไม่สามารถลงทะเบียนà¸à¸²à¸™à¸‚้อมูลบน DBus ภายใต้ชื่อ '%1' Failed to register session on DBus at path '%1' - + ไม่สามารถลงทะเบียนเซสชันบน DBus ที่เส้นทาง '%1' Failed to register item on DBus at path '%1' - + ไม่สามารถลงทะเบียนรายà¸à¸²à¸£à¸šà¸™ DBus ที่เส้นทาง '%1' Failed to register prompt object on DBus at path '%1' - + ไม่สามารถลงทะเบียนออบเจ็à¸à¸•์พรอมต์บน DBus ที่เส้นทาง '%1' @@ -4017,14 +4184,14 @@ This will leave your passwords and sensitive information vulnerable! FdoSecrets::UnlockPrompt %1 (PID: %2) - + %1 (PID: %2) FdoSecretsPlugin <b>Fdo Secret Service:</b> %1 - + <b>บริà¸à¸²à¸£à¸¥à¸±à¸š Fdo:</b> %1 @@ -4043,14 +4210,14 @@ This will leave your passwords and sensitive information vulnerable! HibpDownloader Online password validation failed - + à¸à¸²à¸£à¸•รวจสอบรหัสผ่านออนไลน์ล้มเหลว IconDownloaderDialog Download Favicons - + ดาวน์โหลด Favicons Cancel @@ -4059,7 +4226,7 @@ This will leave your passwords and sensitive information vulnerable! Having trouble downloading icons? You can enable the DuckDuckGo website icon service in the security section of the application settings. - + มีปัà¸à¸«à¸²à¹ƒà¸™à¸à¸²à¸£à¸”าวน์โหลดไอคอน? คุณสามารถเปิดใช้บริà¸à¸²à¸£à¹„อคอนเว็บไซต์ DuckDuckGo ได้ในส่วนà¸à¸²à¸£à¸£à¸±à¸à¸©à¸²à¸„วามปลอดภัยของà¸à¸²à¸£à¸•ั้งค่าà¹à¸­à¸›à¸žà¸¥à¸´à¹€à¸„ชัน Close @@ -4075,7 +4242,7 @@ You can enable the DuckDuckGo website icon service in the security section of th Please wait, processing entry list… - + à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่ à¸à¸³à¸¥à¸±à¸‡à¸›à¸£à¸°à¸¡à¸§à¸¥à¸œà¸¥à¸£à¸²à¸¢à¸à¸²à¸£â€¦ Downloading… @@ -4095,6 +4262,147 @@ You can enable the DuckDuckGo website icon service in the security section of th Downloading favicons (%1/%2)… + à¸à¸³à¸¥à¸±à¸‡à¸”าวน์โหลด favicons (%1/%2)… + + + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + วิซาร์ดเพจ + + + Entry count: %1 + + + + Group + à¸à¸¥à¸¸à¹ˆà¸¡ + + + Title + หัวข้อ + + + Username + ชื่อผู้ใช้ + + + Password + รหัสผ่าน + + + Url + + + + + ImportWizardPageSelect + + Form + จาภ+ + + Import File Selection + + + + Password: + รหัสผ่าน + + + Key File: + à¹à¸Ÿà¹‰à¸¡à¸à¸¸à¸à¹à¸ˆ: + + + Browse… + เลือà¸à¸”ู... + + + Import Into: + + + + New Database + à¸à¸²à¸™à¸‚้อมูลใหม่ + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + เปิด OPVault + + + Select import file + + + + All files + ทุà¸à¹à¸Ÿà¹‰à¸¡ + + + Key files + à¹à¸Ÿà¹‰à¸¡à¸à¸¸à¸à¹à¸ˆ + + + Select key file + เลือà¸à¹à¸Ÿà¹‰à¸¡à¸à¸¸à¸à¹à¸ˆ + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database @@ -4113,20 +4421,21 @@ You can enable the DuckDuckGo website icon service in the security section of th Kdbx3Reader Missing database headers - + ไม่มีส่วนหัวของà¸à¸²à¸™à¸‚้อมูล Unable to calculate database key - + ไม่สามารถคำนวณคีย์à¸à¸²à¸™à¸‚้อมูล Unable to issue challenge-response: %1 - + ไม่สามารถออà¸à¸„ำตอบที่ท้าทายได้: %1 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + ข้อมูลประจำตัวไม่ถูà¸à¸•้อง à¸à¸£à¸¸à¸“าลองอีà¸à¸„รั้ง +หาà¸à¸ªà¸´à¹ˆà¸‡à¸™à¸µà¹‰à¹€à¸à¸´à¸”ขึ้นอีภà¹à¸ªà¸”งว่าไฟล์à¸à¸²à¸™à¸‚้อมูลของคุณอาจเสียหาย Header doesn't match hash @@ -4138,11 +4447,11 @@ If this reoccurs, then your database file may be corrupt. Invalid header field length: field %1 - + ความยาวฟิลด์ส่วนหัวไม่ถูà¸à¸•้อง: ฟิลด์ %1 Invalid header data length: field %1, %2 expected, %3 found - + ความยาวข้อมูลส่วนหัวไม่ถูà¸à¸•้อง: ฟิลด์ %1, %2 ที่คาดคิด, %3 พบ @@ -4154,11 +4463,11 @@ If this reoccurs, then your database file may be corrupt. Unable to issue challenge-response: %1 - + ไม่สามารถออà¸à¸„ำตอบที่ท้าทายได้: %1 Unable to calculate database key - + ไม่สามารถคำนวณคีย์à¸à¸²à¸™à¸‚้อมูล @@ -4169,7 +4478,7 @@ If this reoccurs, then your database file may be corrupt. Unable to calculate database key: %1 - + ไม่สามารถคำนวณคีย์à¸à¸²à¸™à¸‚้อมูล: %1 Invalid header checksum size @@ -4182,11 +4491,12 @@ If this reoccurs, then your database file may be corrupt. Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + ข้อมูลประจำตัวไม่ถูà¸à¸•้อง à¸à¸£à¸¸à¸“าลองอีà¸à¸„รั้งหาà¸à¸ªà¸´à¹ˆà¸‡à¸™à¸µà¹‰à¹€à¸à¸´à¸”ขึ้นอีภ+ à¹à¸ªà¸”งว่าไฟล์à¸à¸²à¸™à¸‚้อมูลของคุณอาจเสียหาย (HMAC mismatch) - + (HMAC ไม่ตรงà¸à¸±à¸™) Unknown cipher @@ -4198,11 +4508,11 @@ If this reoccurs, then your database file may be corrupt. Invalid header field length: field %1 - + ความยาวฟิลด์ส่วนหัวไม่ถูà¸à¸•้อง: ฟิลด์ %1 Invalid header data length: field %1, %2 expected, %3 found - + ความยาวข้อมูลส่วนหัวไม่ถูà¸à¸•้อง: ฟิลด์ %1, %2 ที่คาดไว้, %3 พบ Failed to open buffer for KDF parameters in header @@ -4222,11 +4532,11 @@ If this reoccurs, then your database file may be corrupt. Invalid inner header field length: field %1 - + ความยาวฟิลด์ส่วนหัวภายในไม่ถูà¸à¸•้อง: ฟิลด์ %1 Invalid inner header data length: field %1, %2 expected, %3 found - + ความยาวข้อมูลส่วนหัวภายในไม่ถูà¸à¸•้อง: ฟิลด์ %1, %2 ที่คาดไว้, %3 พบ Invalid inner header binary size @@ -4306,7 +4616,7 @@ If this reoccurs, then your database file may be corrupt. Unable to calculate database key: %1 - + ไม่สามารถคำนวณคีย์à¸à¸²à¸™à¸‚้อมูล: %1 Failed to serialize KDF parameters variant map @@ -4369,7 +4679,10 @@ If this reoccurs, then your database file may be corrupt. You can import it by clicking on Database > 'Import KeePass 1 database…'. This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. - + ไฟล์ที่เลือà¸à¸„ือà¸à¸²à¸™à¸‚้อมูลเà¸à¹ˆà¸²à¸‚อง KeePass 1 (.kdb) + +คุณสามารถนำเข้าได้โดยคลิà¸à¸—ี่à¸à¸²à¸™à¸‚้อมูล > 'นำเข้าà¸à¸²à¸™à¸‚้อมูล KeePass 1…' +นี่เป็นà¸à¸²à¸£à¸¢à¹‰à¸²à¸¢à¸—างเดียว คุณจะไม่สามารถเปิดà¸à¸²à¸™à¸‚้อมูลที่นำเข้าด้วย KeePassX 0.4 เวอร์ชันเà¸à¹ˆà¸²à¹„ด้ Not a KeePass database. @@ -4508,11 +4821,11 @@ Line %2, column %3 KeeAgentSettings Invalid KeeAgent settings file structure. - + โครงสร้างไฟล์à¸à¸²à¸£à¸•ั้งค่า KeeAgent ไม่ถูà¸à¸•้อง Private key is an attachment but no attachments provided. - + คีย์ส่วนตัวเป็นเอà¸à¸ªà¸²à¸£à¹à¸™à¸š à¹à¸•่ไม่มีเอà¸à¸ªà¸²à¸£à¹à¸™à¸šà¸¡à¸²à¹ƒà¸«à¹‰ Private key is empty @@ -4527,17 +4840,6 @@ Line %2, column %3 ล้มเหลวระหว่างà¸à¸²à¸£à¹€à¸›à¸´à¸”à¸à¸¸à¸à¹à¸ˆà¸ªà¹ˆà¸§à¸™à¸•ัว - - KeePass1OpenWidget - - Import KeePass1 Database - - - - Unable to open the database. - ไม่สามารถเปิดà¸à¸²à¸™à¸‚้อมูลดังà¸à¸¥à¹ˆà¸²à¸§ - - KeePass1Reader @@ -4591,7 +4893,7 @@ Line %2, column %3 Unable to calculate database key - + ไม่สามารถคำนวณคีย์à¸à¸²à¸™à¸‚้อมูล unable to seek to content position @@ -4600,7 +4902,8 @@ Line %2, column %3 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + ข้อมูลประจำตัวไม่ถูà¸à¸•้อง à¸à¸£à¸¸à¸“าลองอีà¸à¸„รั้งหาà¸à¸ªà¸´à¹ˆà¸‡à¸™à¸µà¹‰à¹€à¸à¸´à¸”ขึ้นอีภ+ à¹à¸ªà¸”งว่าไฟล์à¸à¸²à¸™à¸‚้อมูลของคุณอาจเสียหาย Key transformation failed @@ -4668,7 +4971,7 @@ If this reoccurs, then your database file may be corrupt. Invalid entry UUID field size - + ขนาดฟิลด์ UUID ของรายà¸à¸²à¸£à¹„ม่ถูà¸à¸•้อง Invalid entry group id field size @@ -4699,11 +5002,11 @@ If this reoccurs, then your database file may be corrupt. KeeShare Invalid sharing reference - + à¸à¸²à¸£à¸­à¹‰à¸²à¸‡à¸­à¸´à¸‡à¸à¸²à¸£à¹à¸Šà¸£à¹Œà¹„ม่ถูà¸à¸•้อง Inactive share %1 - + à¸à¸²à¸£à¹à¸Šà¸£à¹Œà¸—ี่ไม่ได้ใช้งาน %1 Imported from %1 @@ -4719,15 +5022,15 @@ If this reoccurs, then your database file may be corrupt. Import is disabled in settings - + à¸à¸²à¸£à¸™à¸³à¹€à¸‚้าถูà¸à¸›à¸´à¸”ใช้งานในà¸à¸²à¸£à¸•ั้งค่า Export is disabled in settings - + à¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸à¸–ูà¸à¸›à¸´à¸”ใช้งานในà¸à¸²à¸£à¸•ั้งค่า Inactive share - + à¸à¸²à¸£à¹à¸Šà¸£à¹Œà¸—ี่ไม่ได้ใช้งาน Imported from @@ -4773,11 +5076,11 @@ If this reoccurs, then your database file may be corrupt. Generate a new key file or choose an existing one to protect your database. - + สร้างไฟล์คีย์ใหม่หรือเลือà¸à¹„ฟล์ที่มีอยู่เพื่อปà¸à¸›à¹‰à¸­à¸‡à¸à¸²à¸™à¸‚้อมูลของคุณ Note: Do NOT use a file that may change as that will prevent you from unlocking your database. - + หมายเหตุ: อย่าใช้ไฟล์ที่อาจเปลี่ยนà¹à¸›à¸¥à¸‡ เนื่องจาà¸à¸ˆà¸°à¸—ำให้คุณไม่สามารถปลดล็อà¸à¸à¸²à¸™à¸‚้อมูลได้ Browse for key file @@ -4793,7 +5096,7 @@ If this reoccurs, then your database file may be corrupt. You selected a key file in an old format which KeePassXC<br>may stop supporting in the future.<br><br>Please consider generating a new key file instead. - + คุณเลือà¸à¹„ฟล์คีย์ในรูปà¹à¸šà¸šà¹€à¸à¹ˆà¸²à¸‹à¸¶à¹ˆà¸‡ KeePassXC<br>อาจหยุดรองรับในอนาคต<br><br>à¸à¸£à¸¸à¸“าพิจารณาสร้างไฟล์คีย์ใหม่à¹à¸—น Error loading the key file '%1' @@ -4807,23 +5110,23 @@ Message: %2 Add Key File - + เพิ่มà¹à¸Ÿà¹‰à¸¡à¸à¸¸à¸à¹à¸ˆ Change Key File - + เปลี่ยนà¹à¸Ÿà¹‰à¸¡à¸à¸¸à¸à¹à¸ˆ Remove Key File - + ลบà¹à¸Ÿà¹‰à¸¡à¸à¸¸à¸à¹à¸ˆ Key File set, click to change or remove - + ชุดไฟล์คีย์ คลิà¸à¹€à¸žà¸·à¹ˆà¸­à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¸«à¸£à¸·à¸­à¸¥à¸š <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out.</p> - + <p> คุณสามารถเพิ่มไฟล์คีย์ที่มีไบต์à¹à¸šà¸šà¸ªà¸¸à¹ˆà¸¡à¸ªà¸³à¸«à¸£à¸±à¸šà¸„วามปลอดภัยเพิ่มเติม </p> <p> คุณต้องเà¸à¹‡à¸šà¹„ว้เป็นความลับà¹à¸¥à¸°à¹„ม่ทำหาย มิฉะนั้นคุณจะถูà¸à¸¥à¹‡à¸­à¸„ </p> Key files @@ -4835,7 +5138,7 @@ Message: %2 Create Key File… - + สร้างà¹à¸Ÿà¹‰à¸¡à¸à¸¸à¸à¹à¸ˆ... Error creating key file @@ -4855,7 +5158,7 @@ Message: %2 You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. - + คุณไม่สามารถใช้à¸à¸²à¸™à¸‚้อมูลปัจจุบันเป็นไฟล์คีย์ของตัวเองได้ à¸à¸£à¸¸à¸“าเลือà¸à¹„ฟล์อื่นหรือสร้างไฟล์คีย์ใหม่ Suspicious Key File @@ -4864,22 +5167,23 @@ Message: %2 The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. Are you sure you want to continue with this file? - + ไฟล์คีย์ที่เลือà¸à¸”ูเหมือนไฟล์à¸à¸²à¸™à¸‚้อมูลรหัสผ่าน ไฟล์คีย์ต้องเป็นไฟล์คงที่ซึ่งไม่เคยเปลี่ยนà¹à¸›à¸¥à¸‡ มิฉะนั้น คุณจะสูà¸à¹€à¸ªà¸µà¸¢à¸à¸²à¸£à¹€à¸‚้าถึงà¸à¸²à¸™à¸‚้อมูลของคุณตลอดไป +คุณà¹à¸™à¹ˆà¹ƒà¸ˆà¸«à¸£à¸·à¸­à¹„ม่ว่าต้องà¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¸à¸±à¸šà¹„ฟล์นี้ต่อ? MacUtils Invalid key code - + à¹à¸Ÿà¹‰à¸¡à¸à¸¸à¸à¹à¸ˆà¹„ม่ถูà¸à¸•้อง Global shortcut already registered to %1 - + ทางลัดส่วนà¸à¸¥à¸²à¸‡à¹„ด้ลงทะเบียน %1 . à¹à¸¥à¹‰à¸§ Could not register global shortcut - + ไม่สามารถลงทะเบียนทางลัดของส่วนà¸à¸¥à¸²à¸‡ @@ -4890,11 +5194,7 @@ Are you sure you want to continue with this file? &Recent Databases - - - - &Import - &นำเข้า + &à¸à¸²à¸™à¸‚้อมูลล่าสุด &Export @@ -4910,12 +5210,16 @@ Are you sure you want to continue with this file? Copy Att&ribute - + คัดลอà¸à¹à¸­à¸•ทริบิวต์ TOTP TOTP + + Tags + à¹à¸—็ภ+ &Groups à¸à¸¥à¸¸à¹ˆà¸¡ (&G) @@ -4930,7 +5234,7 @@ Are you sure you want to continue with this file? Theme - + หัวข้อ &Quit @@ -4942,7 +5246,7 @@ Are you sure you want to continue with this file? &Check for Updates - &ตรวจหาà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡ + &ตรวจหาà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸£à¸¸à¹ˆà¸™ &Open Database… @@ -4960,34 +5264,18 @@ Are you sure you want to continue with this file? &New Database… à¸à¸²à¸™à¸‚้อมูลให&ม่... - - Create a new database - สร้างà¸à¸²à¸™à¸‚้อมูลใหม่ - &Merge From Database… &รวมจาà¸à¸à¸²à¸™à¸‚้อมูล... - - Merge from another KDBX database - รวมà¸à¸²à¸™à¸‚้อมูลKDBXอีà¸à¸Šà¸¸à¸” - &New Entry… รายà¸à¸²à¸£à¹ƒà¸«&ม่... - - Add a new entry - เพิ่มรายà¸à¸²à¸£à¹ƒà¸«à¸¡à¹ˆ - &Edit Entry… à¹&à¸à¹‰à¹„ขรายà¸à¸²à¸£... - - View or edit entry - ดู หรือ à¹à¸à¹‰à¹„ขรายà¸à¸²à¸£ - &Delete Entry… &ลบรายà¸à¸²à¸£... @@ -4996,10 +5284,6 @@ Are you sure you want to continue with this file? &New Group… à¸à¸¥à¸¸à¹ˆà¸¡à¹ƒà¸«&ม่... - - Add a new group - เพิ่มà¸à¸¥à¸¸à¹ˆà¸¡à¹ƒà¸«à¸¡à¹ˆ - &Edit Group… à¹&à¸à¹‰à¹„ขà¸à¸¥à¸¸à¹ˆà¸¡... @@ -5010,7 +5294,7 @@ Are you sure you want to continue with this file? Download All &Favicons… - + ดาวน์โหลด &Favicons ทั้งหมด… Sort &A-Z @@ -5022,64 +5306,40 @@ Are you sure you want to continue with this file? Sa&ve Database As… - + บันทึà¸à¸à¸²à¸™à¸‚้อมูลเป็น… Database &Security… - + à¸à¸²à¸™à¸‚้อมูลà¹à¸¥à¸°à¸à¸²à¸£à¸£à¸±à¸à¸©à¸²à¸„วามปลอดภัย… Database &Reports… - - - - Statistics, health check, etc. - + à¸à¸²à¸™à¸‚้อมูลà¹à¸¥à¸°à¸£à¸²à¸¢à¸‡à¸²à¸™â€¦ &Database Settings… - - - - Database settings - à¸à¸²à¸£à¸•ั้งค่าà¸à¸²à¸™à¸‚้อมูล + &à¸à¸²à¸£à¸•ั้งค่าà¸à¸²à¸™à¸‚้อมูล &Clone Entry… - + &คัดลอà¸à¸£à¸²à¸¢à¸à¸²à¸£â€¦ Move u&p ขยับ&ขึ้น - - Move entry one step up - - Move do&wn ขยับ&ลง - - Move entry one step down - - Copy &Username คัดลอà¸&ชื่อผู้ใช้ - - Copy username to clipboard - คัดลอà¸à¸Šà¸·à¹ˆà¸­à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¹„ปคลิปบอร์ด - Copy &Password คัดลอà¸&รหัสผ่าน - - Copy password to clipboard - คัดลอà¸à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¹„ปคลิปบอร์ด - &Settings à¸à¸²à¸£à¸•ั้งค่า (&S) @@ -5094,7 +5354,7 @@ Are you sure you want to continue with this file? Download &Favicon - + ดาวน์โหลด &Favicon Open &URL @@ -5102,36 +5362,24 @@ Are you sure you want to continue with this file? &Lock Database - + &ล็อคà¸à¸²à¸™à¸‚้อมูล Lock &All Databases - + ล็อà¸à¹à¸¥à¸°à¸à¸²à¸™à¸‚้อมูลทั้งหมด &Title หัวเรื่อง (&T) - Copy title to clipboard - คัดลอà¸à¸«à¸±à¸§à¹€à¸£à¸·à¹ˆà¸­à¸‡à¹„ปยังคลิปบอร์ด - - - &URL - URL (&U) - - - Copy URL to clipboard - คัดลอภURL ไปยัง คลิปบอร์ด + Copy &URL + คัดลอภ&URL &Notes บันทึภ(&N) - - Copy notes to clipboard - คัดลอà¸à¸‚้อมูลไปยังคลิปบอร์ด - &CSV File… à¹à¸Ÿà¹‰à¸¡ &CSV... @@ -5144,26 +5392,14 @@ Are you sure you want to continue with this file? KeePass 1 Database… à¸à¸²à¸™à¸‚้อมูล KeePass 1... - - Import a KeePass 1 database - นำเข้า à¸à¸²à¸™à¸‚้อมูล KeePass1... - 1Password Vault… - - - - Import a 1Password Vault - นำเข้า Vault ของ 1Password + 1 ห้องเà¸à¹‡à¸šà¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™â€¦ CSV File… à¹à¸Ÿà¹‰à¸¡ CSV... - - Import a CSV file - นำเข้า à¹à¸Ÿà¹‰à¸¡ CSV - Show TOTP à¹à¸ªà¸”ง TOTP @@ -5174,12 +5410,16 @@ Are you sure you want to continue with this file? Set up TOTP… - + ตั้งค่า TOTP... Copy &TOTP คัดลอภ&TOTP + + Copy Password and TOTP + คัดลอà¸à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¹à¸¥à¸° TOTP + E&mpty recycle bin ล้างถังรีไซเคิล @@ -5194,47 +5434,43 @@ Are you sure you want to continue with this file? &Getting Started - + &เริ่มต้นใช้งาน Open Getting Started Guide - + เปิดคู่มือเริ่มต้นใช้งาน &Online Help ช่วยเหลือ&ออนไลน์ - - Go to online documentation - - &User Guide - + &คู่มือผู้ใช้ Open User Guide - + เปิดคู่มือผู้ใช้ &Keyboard Shortcuts - + &à¹à¸›à¹‰à¸™à¸žà¸´à¸¡à¸žà¹Œà¸¥à¸±à¸” Save Database Backup… - + บันทึà¸à¸à¸²à¸£à¸ªà¸³à¸£à¸­à¸‡à¸à¸²à¸™à¸‚้อมูล… Add key to SSH Agent - + เพิ่มคีย์ไปยัง SSH Agent Remove key from SSH Agent - + ลบคีย์ออà¸à¸ˆà¸²à¸ SSH Agent Compact Mode - + โหมดà¸à¸£à¸°à¸Šà¸±à¸š Automatic @@ -5250,7 +5486,7 @@ Are you sure you want to continue with this file? Classic (Platform-native) - + คลาสสิภ(à¹à¸žà¸¥à¸•ฟอร์มเนทีฟ) Show Toolbar @@ -5258,11 +5494,11 @@ Are you sure you want to continue with this file? Show Preview Panel - + à¹à¸ªà¸”งà¹à¸œà¸‡à¸”ูตัวอย่าง Always on Top - + อยู่ด้านบนตลอด Hide Usernames @@ -5274,7 +5510,11 @@ Are you sure you want to continue with this file? Clone Group... - + โคลนà¸à¸¥à¸¸à¹ˆà¸¡... + + + &XML File… + à¹à¸Ÿà¹‰à¸¡ &XML… Clear history @@ -5286,27 +5526,35 @@ Are you sure you want to continue with this file? Don't show again for this version - + ไม่ต้องà¹à¸ªà¸”งอีà¸à¸ªà¸³à¸«à¸£à¸±à¸šà¹€à¸§à¸­à¸£à¹Œà¸Šà¸±à¸™à¸™à¸µà¹‰ WARNING: You are using an unstable build of KeePassXC. There is a high risk of corruption, maintain a backup of your databases. This version is not meant for production use. - + คำเตือน: คุณà¸à¸³à¸¥à¸±à¸‡à¹ƒà¸Šà¹‰ KeePassXC รุ่นที่ไม่เสถียร +มีความเสี่ยงสูงที่จะเà¸à¸´à¸”ข้อผิดพลาด สำรองข้อมูลà¸à¸²à¸™à¸‚้อมูลของคุณ +เวอร์ชันนี้ไม่ได้มีไว้สำหรับà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸ˆà¸£à¸´à¸‡ NOTE: You are using a pre-release version of KeePassXC. Expect some bugs and minor issues, this version is meant for testing purposes. - + หมายเหตุ: คุณà¸à¸³à¸¥à¸±à¸‡à¹ƒà¸Šà¹‰ KeePassXC รุ่นà¸à¹ˆà¸­à¸™à¹€à¸œà¸¢à¹à¸žà¸£à¹ˆ +คาดว่าจะมีจุดบà¸à¸žà¸£à¹ˆà¸­à¸‡à¹à¸¥à¸°à¸›à¸±à¸à¸«à¸²à¹€à¸¥à¹‡à¸à¸™à¹‰à¸­à¸¢ เวอร์ชันนี้มีไว้เพื่อวัตถุประสงค์ในà¸à¸²à¸£à¸—ดสอบ WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard. We recommend you use the AppImage available on our downloads page. - + คำเตือน: เวอร์ชัน Qt ของคุณอาจทำให้ KeePassXC หยุดทำงานด้วยà¹à¸›à¹‰à¸™à¸žà¸´à¸¡à¸žà¹Œà¸šà¸™à¸«à¸™à¹‰à¸²à¸ˆà¸­ +เราขอà¹à¸™à¸°à¸™à¸³à¹ƒà¸«à¹‰à¸„ุณใช้ AppImage ที่มีอยู่ในหน้าดาวน์โหลดของเรา + + + No Tags + ไม่มีà¹à¸—็ภRestore Entry(s) - + นำรายà¸à¸²à¸£à¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸«à¸¡à¹ˆà¸«à¸£à¸·à¸­à¹„ม่? Settings @@ -5318,7 +5566,7 @@ We recommend you use the AppImage available on our downloads page. Would you like KeePassXC to check for updates on startup? - คุณอยาà¸à¹ƒà¸«à¹‰ KeePassXC ตรวจหาà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸£à¸¸à¹ˆà¸™à¹€à¸¡à¸·à¹ˆà¸­à¹€à¸£à¸´à¹ˆà¸¡à¹‚ปรà¹à¸à¸£à¸¡à¸«à¸£à¸·à¸­à¹„ม่? + คุณต้องà¸à¸²à¸£à¹ƒà¸«à¹‰ KeePassXC ตรวจหาà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸£à¸¸à¹ˆà¸™à¹€à¸¡à¸·à¹ˆà¸­à¹€à¸£à¸´à¹ˆà¸¡à¹‚ปรà¹à¸à¸£à¸¡à¸«à¸£à¸·à¸­à¹„ม่? You can always check for updates manually from the application menu. @@ -5332,9 +5580,13 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC ออà¸à¸ˆà¸²à¸ KeePassXC + + %1 Entry(s) + %1 รายà¸à¸²à¸£ + Please present or touch your YubiKey to continue… - + à¸à¸£à¸¸à¸“าà¹à¸ªà¸”งหรือสัมผัส YubiKey ของคุณเพื่อดำเนินà¸à¸²à¸£à¸•่อ… Restart Application? @@ -5344,6 +5596,274 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? คุณจะต้องเริ่มà¹à¸­à¸›à¹ƒà¸«à¸¡à¹ˆà¹€à¸žà¸·à¹ˆà¸­à¹ƒà¸Šà¹‰à¸à¸²à¸£à¸•ั้งค่านี้ คุณต้องà¸à¸²à¸£à¸ˆà¸°à¹€à¸£à¸´à¹ˆà¸¡à¹à¸­à¸›à¹ƒà¸«à¸¡à¹ˆà¸•อนนี้หรือไม่? + + Allow Screen Capture + อนุà¸à¸²à¸•ให้จับภาพหน้าจอ + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + + + + Import Passkey + + + + Quit Application + + + + Open About Dialog + + + + Open Database + + + + Create Database + + + + Merge From Database + + + + Create Entry + + + + Edit Entry + à¹à¸à¹‰à¹„ขรายà¸à¸²à¸£ + + + Delete Entry + + + + Create Group + + + + Edit Group + à¹à¸à¹‰à¹„ขà¸à¸¥à¸¸à¹ˆà¸¡ + + + Delete Group + + + + Download All Favicons + + + + Sort Groups A-Z + + + + Sort Groups Z-A + + + + Save Database As + + + + Show Database Security + + + + Show Database Reports + + + + Show Database Settings + + + + Show Passkeys + + + + Clone Entry + + + + Move Entry Up + + + + Move Entry Down + + + + Copy Username + คัดลอภชื่อผู้ใช้ + + + Copy Password + คัดลอภรหัสผ่าน + + + Show Application Settings + + + + Show Password Generator + + + + Perform Auto-Type: {USERNAME} + + + + Perform Auto-Type: {USERNAME}{ENTER} + + + + Perform Auto-Type: {PASSWORD} + + + + Perform Auto-Type: {PASSWORD}{ENTER} + + + + Perform Auto-Type: {TOTP} + + + + Copy Title + + + + Copy URL + + + + Copy Notes + + + + Export to CSV + + + + Export to HTML + + + + Import KeePass1 Database + นำเข้าà¸à¸²à¸™à¸‚้อมูล KeePass1 + + + Import 1Password Vault + + + + Import CSV File + + + + Show TOTP QR Code + + + + Set up TOTP + + + + Empty Recycle Bin + + + + Open Donation Website + + + + Open Bug Report + + + + Open Online Documentation + + + + Open Keyboard Shortcuts Guide + + + + Save Database Backup + + + + SSH Agent: Add Key + + + + SSH Agent: Remove Key + + + + Toggle Compact Mode + + + + Set Theme: Automatic + + + + Set Theme: Light + + + + Set Theme: Dark + + + + Set Theme: Classic + + + + Toggle Show Toolbar + + + + Toggle Show Preview Panel + + + + Toggle Always on Top + + + + Toggle Hide Usernames + + + + Toggle Hide Passwords + + + + Export to XML + + + + Toggle Allow Screen Capture + + ManageDatabase @@ -5361,7 +5881,7 @@ We recommend you use the AppImage available on our downloads page. Unlock database to show more information - + ปลดล็อà¸à¸à¸²à¸™à¸‚้อมูลเพื่อà¹à¸ªà¸”งข้อมูลเพิ่มเติม Lock database @@ -5376,15 +5896,15 @@ We recommend you use the AppImage available on our downloads page. Disconnect this application - + หยุดà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่อà¸à¸±à¸šà¹à¸­à¸›à¸žà¸¥à¸´à¹€à¸„ชันนี้ Reset - + รีเซ็ท Reset any remembered decisions for this application - + รีเซ็ตà¸à¸²à¸£à¸•ัดสินใจที่จดจำไว้สำหรับà¹à¸­à¸›à¸žà¸¥à¸´à¹€à¸„ชันนี้ @@ -5401,26 +5921,6 @@ We recommend you use the AppImage available on our downloads page. Overwriting %1 [%2] เขียนทับ %1 [%2] - - older entry merged from database "%1" - ผสานรายà¸à¸²à¸£à¸—ี่เà¸à¹ˆà¸²à¸à¸§à¹ˆà¸²à¸ˆà¸²à¸à¸à¸²à¸™à¸‚้อมูล "%1" - - - Adding backup for older target %1 [%2] - à¸à¸³à¸¥à¸±à¸‡à¹€à¸žà¸´à¹ˆà¸¡à¸‚้อมูลสำรองสำหรับเป้าหมายที่เà¸à¹ˆà¸²à¸à¸§à¹ˆà¸² %1 [%2] - - - Adding backup for older source %1 [%2] - à¸à¸³à¸¥à¸±à¸‡à¹€à¸žà¸´à¹ˆà¸¡à¸‚้อมูลสำรองสำหรับà¹à¸«à¸¥à¹ˆà¸‡à¸‚้อมูลที่เà¸à¹ˆà¸²à¸à¸§à¹ˆà¸² %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - นำรายà¸à¸²à¸£à¸ˆà¸²à¸à¹€à¸›à¹‰à¸²à¸«à¸¡à¸²à¸¢à¹€à¸à¹ˆà¸²à¸¡à¸²à¹ƒà¸Šà¹‰à¸šà¸™à¹à¸«à¸¥à¹ˆà¸‡à¸‚้อมูลใหม่ %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - นำรายà¸à¸²à¸£à¸ˆà¸²à¸à¹à¸«à¸¥à¹ˆà¸‡à¸‚้อมูลเà¸à¹ˆà¸²à¸¡à¸²à¹ƒà¸Šà¹‰à¸šà¸™à¹€à¸›à¹‰à¸²à¸«à¸¡à¸²à¸¢à¹ƒà¸«à¸¡à¹ˆ %1 [%2] - Synchronizing from newer source %1 [%2] เชื่อมประสานจาà¸à¹à¸«à¸¥à¹ˆà¸‡à¸‚้อมูลใหม่ %1 [%2] @@ -5447,18 +5947,18 @@ We recommend you use the AppImage available on our downloads page. Removed custom data %1 [%2] - + ลบข้อมูลที่à¸à¸³à¸«à¸™à¸”เอง %1 [%2] Adding custom data %1 [%2] - + à¸à¸³à¸¥à¸±à¸‡à¹€à¸žà¸´à¹ˆà¸¡à¸‚้อมูลที่à¸à¸³à¸«à¸™à¸”เอง %1 [%2] NewDatabaseWizard Create a new KeePassXC database… - + สร้างà¸à¸²à¸™à¸‚้อมูล KeePassXC ใหม่… Root @@ -5480,24 +5980,16 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. ที่นี่คุณสามารถปรับà¸à¸²à¸£à¸•ั้งค่าà¸à¸²à¸£à¹€à¸‚้ารหัสà¸à¸²à¸™à¸‚้อมูล ไม่ต้องà¸à¸±à¸‡à¸§à¸¥à¸„ุณสามารถเปลี่ยนได้ในภายหลังในà¸à¸²à¸£à¸•ั้งค่า à¸à¸²à¸™à¸‚้อมูล - - Advanced Settings - à¸à¸²à¸£à¸•ั้งค่าขั้นสูง - - - Simple Settings - à¸à¸²à¸£à¸•ั้งค่าพื้นà¸à¸²à¸™ - NewDatabaseWizardPageDatabaseKey Database Credentials - + ข้อมูลประจำตัวà¸à¸²à¸™à¸‚้อมูล A set of credentials known only to you that protects your database. - + ชุดของข้อมูลประจà¹à¸²à¸•ัวที่คุณรู้จัà¸à¹€à¸—่านั้นที่ปà¸à¸›à¹‰à¸­à¸‡à¸à¸²à¸™à¸‚้อมูลของคุณ @@ -5530,77 +6022,69 @@ We recommend you use the AppImage available on our downloads page. Global shortcut already registered to %1 - + ทางลัดส่วนà¸à¸¥à¸²à¸‡à¹„ด้ลงทะเบียน %1 . à¹à¸¥à¹‰à¸§ Could not register global shortcut - + ไม่สามารถลงทะเบียนทางลัดของส่วนà¸à¸¥à¸²à¸‡ OpData01 Invalid OpData01, does not contain header - + OpData01 ไม่ถูà¸à¸•้อง ไม่มีส่วนหัว Unable to read all IV bytes, wanted 16 but got %1 - + ไม่สามารถอ่าน IV ไบต์ทั้งหมดได้ ต้องà¸à¸²à¸£ 16 à¹à¸•่ได้ %1 Unable to init cipher for opdata01: %1 - + ไม่สามารถเริ่มต้นà¸à¸²à¸£à¹€à¸‚้ารหัสสำหรับ opdata01: %1 Unable to read all HMAC signature bytes - + ไม่สามารถอ่านลายเซ็น HMAC ทั้งหมด Malformed OpData01 due to a failed HMAC - + OpData01 ที่มีรูปà¹à¸šà¸šà¹„ม่ถูà¸à¸•้องเนื่องจาภHMAC ล้มเหลว Unable to process clearText in place - + ไม่สามารถประมวลผล clearText ได้ Expected %1 bytes of clear-text, found %2 - - - - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - + ต้องà¸à¸²à¸£ %1 ไบต์ของข้อความที่ชัดเจน พบ %2 OpVaultReader Directory .opvault must exist - + ต้องมีไดเรà¸à¸—อรี .opvault Directory .opvault must be readable - + ไดเร็à¸à¸—อรี .opvault จะต้องสามารถอ่านได้ Directory .opvault/default must exist - + ต้องมีไดเร็à¸à¸—อรี .opvault/default Directory .opvault/default must be readable - + ไดเร็à¸à¸—อรี .opvault/default ต้องอ่านได้ Unable to decode masterKey: %1 - + ไม่สามารถถอดรหัสมาสเตอร์คีย์: %1 Unable to derive master key: %1 - + ไม่สามารถรับมาสเตอร์คีย์ได้: %1 @@ -5649,13 +6133,17 @@ We recommend you use the AppImage available on our downloads page. Unknown cipher: %1 à¸à¸²à¸£à¹€à¸‚้ารหัสที่ไม่รู้จัà¸: %1 + + AES-256/GCM is currently not supported + ไม่รองรับ AES -256/GCM ในขณะนี้ + Passphrase is required to decrypt this key จำเป็นต้องใช้วลีรหัสผ่านเพื่อถอดรหัสผ่านà¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰ Key derivation failed: %1 - + à¸à¸²à¸£à¹„ด้มาของคีย์ล้มเหลว: %1 Cipher IV is too short for MD5 kdf @@ -5667,11 +6155,11 @@ We recommend you use the AppImage available on our downloads page. Failed to initialize cipher: %1 - + ไม่สามารถเริ่มต้นà¸à¸²à¸£à¹€à¸‚้ารหัส: %1 Decryption failed: %1 - + à¸à¸²à¸£à¸›à¸¥à¸”รหัสล้มเหลว: %1 Decryption failed, wrong passphrase? @@ -5679,11 +6167,11 @@ We recommend you use the AppImage available on our downloads page. Unexpected EOF while reading key - + EOF ที่ไม่คาดคิดขณะอ่านคีย์ Unsupported key part - + ส่วนคีย์ที่ไม่รองรับ Unexpected EOF while reading public key @@ -5715,25 +6203,173 @@ We recommend you use the AppImage available on our downloads page. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - รหัสผ่านไม่ตรงà¸à¸±à¸™ + SSH Key Generator + - Passwords match so far - รหัสผ่านยังตรงà¸à¸±à¸™à¸­à¸¢à¸¹à¹ˆ + Type + ชนิด - Toggle Password (%1) - สลับรหัสผ่าน (%1) + Bits + - Generate Password (%1) - สร้างรหัสผ่าน (%1) + Comment + ข้อคิดเห็น + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + - Warning: Caps Lock enabled! + Export the following Passkey entries. + + + + Filenames will be generated with title and .passkey file extension. + + + + Export entries + + + + Export Selected + + + + Cancel + ยà¸à¹€à¸¥à¸´à¸ + + + Export to folder + + + + + PasskeyExporter + + KeePassXC: Passkey Export + + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + + + + Cannot open file + + + + Cannot open file "%1" for writing. + + + + Cannot write to file + + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + + + + Username: %1 + + + + Group + à¸à¸¥à¸¸à¹ˆà¸¡ + + + Database + + + + Import Passkey + + + + Import + นำเข้า + + + Cancel + ยà¸à¹€à¸¥à¸´à¸ + + + Import the following Passkey: + + + + Entry + รายà¸à¸²à¸£ + + + Import the following Passkey to this entry: + + + + Create new entry + + + + Default Passkeys group (Imported Passkeys) + + + + Relying Party: %1 + + + + + PasskeyImporter + + Passkey file + + + + All files + ทุà¸à¹à¸Ÿà¹‰à¸¡ + + + Open Passkey file + + + + Cannot open file + + + + Cannot open file "%1" for reading. + + + + Cannot import Passkey + + + + Cannot import Passkey file "%1". Data is missing. + + + + Cannot import Passkey file "%1". Private key is missing or malformed. + + + + Cannot import Passkey file "%1". +The following data is missing: +%2 @@ -5753,7 +6389,7 @@ We recommend you use the AppImage available on our downloads page. Repeat password field - + ทำซ้ำฟิลด์รหัสผ่าน Password @@ -5761,19 +6397,19 @@ We recommend you use the AppImage available on our downloads page. Add Password - + ใส่รหัสผ่าน Change Password - + เปลี่ยนรหัสผ่าน Remove Password - + ลบรหัสผ่าน Password set, click to change or remove - + รหัสผ่านได้รับà¸à¸²à¸£à¸•ิดตั้ง à¸à¸”เพื่อเปลี่ยน หรือลบ <p>A password is the primary method for securing your database.</p><p>Good passwords are long and unique. KeePassXC can generate one for you.</p> @@ -5886,11 +6522,11 @@ We recommend you use the AppImage available on our downloads page. Additional characters to use for the generated password - + อัà¸à¸‚ระเพิ่มเติมที่จะใช้สำหรับรหัสผ่านที่สร้างขึ้น Additional characters - + ตัวอัà¸à¸©à¸£à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•ิม Add non-hex letters to "do not include" list @@ -5914,7 +6550,7 @@ We recommend you use the AppImage available on our downloads page. Also choose from: - + เลือà¸à¸ˆà¸²à¸: Excluded characters: "0", "1", "l", "I", "O", "|", "ï¹’" @@ -5946,23 +6582,23 @@ We recommend you use the AppImage available on our downloads page. Character Count: - + จำนวนตัวอัà¸à¸©à¸£ Word Case: - + à¸à¸£à¸“ีคำศัพท์: Delete selected wordlist - + ลบรายà¸à¸²à¸£à¸„ำศัพท์ที่เลือภAdd custom wordlist - + เพิ่มรายà¸à¸²à¸£à¸„à¹à¸²à¸—ี่à¸à¹à¸²à¸«à¸™à¸”เอง character - + ตัวอัà¸à¸©à¸£ Close @@ -5982,69 +6618,24 @@ We recommend you use the AppImage available on our downloads page. lower case - + ตัวพิมพ์เล็ภUPPER CASE - + ตัวพิมพ์ใหà¸à¹ˆ Title Case - + à¸à¸£à¸“ีชื่อเรื่อง (SYSTEM) - + (ระบบ) Entropy: %1 bit เอนโทรปี: %1 บิต - - Confirm Delete Wordlist - - - - Do you really want to delete the wordlist "%1"? - - - - Failed to delete wordlist - - - - Wordlists - - - - All files - ทุà¸à¹„ฟล์ - - - Select Custom Wordlist - - - - Overwrite Wordlist? - - - - Wordlist "%1" already exists as a custom wordlist. -Do you want to overwrite it? - - - - Failed to add wordlist - - - - Logograms - สัà¸à¸¥à¸±à¸à¸©à¸“์หรือตัวอัà¸à¸©à¸£à¸—ี่ใช้à¹à¸—นคำ - - - Special Characters - อัà¸à¸‚ระพิเศษ - Password Quality: %1 คุณภาพรหัสผ่าน: %1 @@ -6069,20 +6660,117 @@ Do you want to overwrite it? Password quality ดีมาภ+ + Confirm Delete Wordlist + ยืนยันà¸à¸²à¸£à¸¥à¸šà¸£à¸²à¸¢à¸à¸²à¸£à¸„ำศัพท์ + + + Do you really want to delete the wordlist "%1"? + คุณต้องà¸à¸²à¸£à¸¥à¸šà¸£à¸²à¸¢à¸à¸²à¸£à¸„ำศัพท์ "%1" หรือไม่? + + + Failed to delete wordlist + ลบรายà¸à¸²à¸£à¸„ำศัพท์ไม่สำเร็จ + + + Wordlists + รายà¸à¸²à¸£à¸„ำศัพท์ + + + All files + ทุà¸à¹à¸Ÿà¹‰à¸¡ + + + Select Custom Wordlist + เลือà¸à¸£à¸²à¸¢à¸à¸²à¸£à¸„ำศัพท์ที่à¸à¸³à¸«à¸™à¸”เอง + + + Overwrite Wordlist? + เขียนทับรายà¸à¸²à¸£à¸„ำศัพท์? + + + Wordlist "%1" already exists as a custom wordlist. +Do you want to overwrite it? + มีรายà¸à¸²à¸£à¸„ำศัพท์ "%1" เป็นรายà¸à¸²à¸£à¸„ำศัพท์ที่à¸à¸³à¸«à¸™à¸”เองอยู่à¹à¸¥à¹‰à¸§ +คุณต้องà¸à¸²à¸£à¹€à¸‚ียนทับหรือไม่? + + + Failed to add wordlist + เพิ่มรายà¸à¸²à¸£à¸„ำศัพท์ไม่สำเร็จ + + + Logograms + สัà¸à¸¥à¸±à¸à¸©à¸“์หรือตัวอัà¸à¸©à¸£à¸—ี่ใช้à¹à¸—นคำ + + + Special Characters + อัà¸à¸‚ระพิเศษ + + + + PasswordWidget + + Passwords do not match + รหัสผ่านไม่ตรงà¸à¸±à¸™ + + + Passwords match so far + รหัสผ่านยังตรงà¸à¸±à¸™à¸­à¸¢à¸¹à¹ˆ + + + Toggle Password (%1) + สลับรหัสผ่าน (%1) + + + Generate Password (%1) + สร้างรหัสผ่าน (%1) + + + Warning: Caps Lock enabled! + คำเตือน: เปิดใช้งาน Caps Lock à¹à¸¥à¹‰à¸§! + + + Quality: %1 + คุณภาพ: %1 + + + Poor + Password quality + à¹à¸¢à¹ˆ + + + Weak + Password quality + อ่อนà¹à¸­ + + + Good + Password quality + ดี + + + Excellent + Password quality + ดีมาภ+ + + Toggle password visibility using Control + H. Open the password generator using Control + G. + + PickcharsDialog KeePassXC - Pick Characters - + KeePassXC - เลือà¸à¸­à¸±à¸à¸‚ระ Select characters to type, navigate with arrow keys, Ctrl + S submits. - + เลือà¸à¸­à¸±à¸à¸‚ระที่จะพิมพ์ นำทางด้วยปุ่มลูà¸à¸¨à¸£ Ctrl + S เพื่อส่ง Press &Tab between characters - + à¸à¸” &Tab ระหว่างอัà¸à¸‚ระ @@ -6123,6 +6811,10 @@ Do you want to overwrite it? Continue ทำต่อ + + Continue with weak password + + QObject @@ -6184,7 +6876,7 @@ Do you want to overwrite it? No valid UUID provided - + ไม่ได้ระบุ UUID ที่ถูà¸à¸•้อง Unknown error @@ -6200,7 +6892,7 @@ Do you want to overwrite it? Could not save the native messaging script file for %1. - + ไม่สามารถบันทึà¸à¹„ฟล์สคริปต์à¸à¸²à¸£à¸ªà¹ˆà¸‡à¸‚้อความดั้งเดิมสำหรับ %1 Username for the entry. @@ -6220,7 +6912,7 @@ Do you want to overwrite it? Notes for the entry. - + บันทึà¸à¸Šà¹ˆà¸§à¸¢à¸ˆà¸³à¸ªà¸³à¸«à¸£à¸±à¸šà¸£à¸²à¸¢à¸à¸²à¸£ Notes @@ -6244,7 +6936,7 @@ Do you want to overwrite it? Cannot generate a password and prompt at the same time. - + ไม่สามารถสร้างรหัสผ่านà¹à¸¥à¸°à¸žà¸£à¸­à¸¡à¸•์พร้อมà¸à¸±à¸™à¹„ด้ Could not create entry with path %1. @@ -6264,11 +6956,11 @@ Do you want to overwrite it? Adds a new group to a database. - + เพิ่มà¸à¸¥à¸¸à¹ˆà¸¡à¹ƒà¸«à¸¡à¹ˆà¹„ปยังà¸à¸²à¸™à¸‚้อมูล Path of the group to add. - + เส้นทางของà¸à¸¥à¸¸à¹ˆà¸¡à¸—ี่จะเพิ่ม Group %1 already exists! @@ -6284,7 +6976,7 @@ Do you want to overwrite it? Check if any passwords have been publicly leaked. FILENAME must be the path of a file listing SHA-1 hashes of leaked passwords in HIBP format, as available from https://haveibeenpwned.com/Passwords. - + ตรวจสอบว่ารหัสผ่านใดรั่วไหลสู่สาธารณะหรือไม่ FILENAME ต้องเป็นเส้นทางของไฟล์ที่à¹à¸ªà¸”งรายà¸à¸²à¸£à¹à¸®à¸Š SHA-1 ของรหัสผ่านที่รั่วในรูปà¹à¸šà¸š HIBP ตามที่สามารถใช้ได้จาภhttps://haveibeenpwned.com/Passwords FILENAME @@ -6292,23 +6984,23 @@ Do you want to overwrite it? Path to okon-cli to search a formatted HIBP file - + เส้นทางไปยัง okon-cli เพื่อค้นหาไฟล์ HIBP ที่จัดรูปà¹à¸šà¸š okon-cli - + okon-cli Analyze passwords for weaknesses and problems. - + วิเคราะห์รหัสผ่านสำหรับจุดอ่อนà¹à¸¥à¸°à¸›à¸±à¸à¸«à¸² Cannot find HIBP file: %1 - + ไม่พบไฟล์ HIBP: %1 Evaluating database entries using okon… - + à¸à¸³à¸¥à¸±à¸‡à¸›à¸£à¸°à¹€à¸¡à¸´à¸™à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸²à¸™à¸‚้อมูลโดยใช้ okon… Failed to open HIBP file %1: %2 @@ -6316,31 +7008,31 @@ Do you want to overwrite it? Evaluating database entries against HIBP file, this will take a while… - + à¸à¸³à¸¥à¸±à¸‡à¸›à¸£à¸°à¹€à¸¡à¸´à¸™à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸²à¸™à¸‚้อมูลเทียบà¸à¸±à¸šà¹„ฟล์ HIBP ซึ่งจะใช้เวลาสัà¸à¸„รู่… Password for '%1' has been leaked %2 time(s)! - + รหัสผ่านสำหรับ '%1' รั่วไหลไปà¹à¸¥à¹‰à¸§ %2 ครั้ง! Password for '%1' has been leaked! - + รหัสผ่านสำหรับ '%1' รั่วไหล! Export an attachment of an entry. - + ส่งออà¸à¹€à¸­à¸à¸ªà¸²à¸£à¹à¸™à¸šà¸‚องรายà¸à¸²à¸£ Path of the entry with the target attachment. - + เส้นทางของรายà¸à¸²à¸£à¸—ี่มีเอà¸à¸ªà¸²à¸£à¹à¸™à¸šà¹€à¸›à¹‰à¸²à¸«à¸¡à¸²à¸¢ Name of the attachment to be exported. - + ชื่อของเอà¸à¸ªà¸²à¸£à¹à¸™à¸šà¸—ี่จะส่งออภPath to which the attachment should be exported. - + เส้นทางที่ควรส่งออà¸à¹€à¸­à¸à¸ªà¸²à¸£à¹à¸™à¸š Could not find entry with path %1. @@ -6348,80 +7040,80 @@ Do you want to overwrite it? Could not find attachment with name %1. - + ไม่พบเอà¸à¸ªà¸²à¸£à¹à¸™à¸šà¸—ี่มีชื่อ %1 No export target given. Please use '--stdout' or specify an 'export-file'. - + ไม่ได้ระบุเป้าหมายà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸ à¸à¸£à¸¸à¸“าใช้ '--stdout' หรือระบุ 'export-file' Could not open output file %1. - + ไม่สามารถเปิดไฟล์ผลลัพธ์ %1 Successfully exported attachment %1 of entry %2 to %3. - + ส่งออà¸à¹€à¸­à¸à¸ªà¸²à¸£à¹à¸™à¸š %1 ของรายà¸à¸²à¸£ %2 ถึง %3 เรียบร้อยà¹à¸¥à¹‰à¸§ Overwrite existing attachments. - + เขียนทับเอà¸à¸ªà¸²à¸£à¹à¸™à¸šà¸—ี่มีอยู่ Imports an attachment to an entry. - + นำเข้าเอà¸à¸ªà¸²à¸£à¹à¸™à¸šà¸à¸±à¸šà¸£à¸²à¸¢à¸à¸²à¸£ Path of the entry. - + เส้นทางของรายà¸à¸²à¸£ Name of the attachment to be added. - + ชื่อของเอà¸à¸ªà¸²à¸£à¹à¸™à¸šà¸—ี่จะเพิ่ม Path of the attachment to be imported. - + เส้นทางของไฟล์à¹à¸™à¸šà¸—ี่จะนำเข้า Attachment %1 already exists for entry %2. - + เอà¸à¸ªà¸²à¸£à¹à¸™à¸š %1 มีอยู่à¹à¸¥à¹‰à¸§à¸ªà¸³à¸«à¸£à¸±à¸šà¸£à¸²à¸¢à¸à¸²à¸£ %2 Could not open attachment file %1. - + ไม่สามารถเปิดไฟล์เอà¸à¸ªà¸²à¸£à¹à¸™à¸š %1 Successfully imported attachment %1 as %2 to entry %3. - + นำเข้าเอà¸à¸ªà¸²à¸£à¹à¸™à¸š %1 เป็น %2 ไปยังรายà¸à¸²à¸£ %3 เรียบร้อยà¹à¸¥à¹‰à¸§ Remove an attachment of an entry. - + ลบเอà¸à¸ªà¸²à¸£à¹à¸™à¸šà¸‚องรายà¸à¸²à¸£ Name of the attachment to be removed. - + ชื่อของเอà¸à¸ªà¸²à¸£à¹à¸™à¸šà¸—ี่จะลบออภSuccessfully removed attachment %1 from entry %2. - + ลบเอà¸à¸ªà¸²à¸£à¹à¸™à¸š %1 ออà¸à¸ˆà¸²à¸à¸£à¸²à¸¢à¸à¸²à¸£ %2 เรียบร้อยà¹à¸¥à¹‰à¸§ Copy the given attribute to the clipboard. Defaults to "password" if not specified. Don't translate "password", it refers to the attribute. - + คัดลอà¸à¹à¸­à¸•ทริบิวต์ที่à¸à¸³à¸«à¸™à¸”ไปยังคลิปบอร์ด ค่าเริ่มต้นคือ "รหัสผ่าน" หาà¸à¹„ม่ได้ระบุ Copy the current TOTP to the clipboard (equivalent to "-a totp"). - + คัดลอภTOTP ปัจจุบันไปยังคลิปบอร์ด (เทียบเท่าà¸à¸±à¸š "-a totp") Must match only one entry, otherwise a list of possible matches is shown. - + ต้องตรงà¸à¸±à¸™à¹€à¸žà¸µà¸¢à¸‡à¸£à¸²à¸¢à¸à¸²à¸£à¹€à¸”ียว มิฉะนั้น รายà¸à¸²à¸£à¸—ี่ตรงà¸à¸±à¸™à¸—ี่เป็นไปได้จะà¹à¸ªà¸”งขึ้น Copy an entry's attribute to the clipboard. - + คัดลอà¸à¹à¸­à¸•ทริบิวต์ของรายà¸à¸²à¸£à¹„ปยังคลิปบอร์ด Path of the entry to clip. @@ -6430,7 +7122,7 @@ Do you want to overwrite it? Timeout before clearing the clipboard (default is %1 seconds, set to 0 for unlimited). - + หมดเวลาà¸à¹ˆà¸­à¸™à¸—ี่จะล้างคลิปบอร์ด (ค่าเริ่มต้นคือ %1 วินาที ตั้งค่าเป็น 0 เพื่อไม่จำà¸à¸±à¸”) Invalid timeout value %1. @@ -6438,11 +7130,11 @@ Do you want to overwrite it? Multiple entries matching: - + à¸à¸²à¸£à¸ˆà¸±à¸šà¸„ู่หลายรายà¸à¸²à¸£: Using matching entry: %1 - + à¸à¸²à¸£à¹ƒà¸Šà¹‰à¸£à¸²à¸¢à¸à¸²à¸£à¸—ี่ตรงà¸à¸±à¸™: %1 Entry %1 not found. @@ -6450,7 +7142,7 @@ Do you want to overwrite it? ERROR: Please specify one of --attribute or --totp, not both. - + ข้อผิดพลาด: à¸à¸£à¸¸à¸“าระบุ --attribute หรือ --totp อย่างใดอย่างหนึ่ง ไม่ใช่ทั้งสองอย่าง Entry with path %1 has no TOTP set up. @@ -6458,15 +7150,15 @@ Do you want to overwrite it? ERROR: attribute %1 is ambiguous, it matches %2. - + ข้อผิดพลาด: à¹à¸­à¸•ทริบิวต์ %1 ไม่ชัดเจน ซึ่งตรงà¸à¸±à¸š %2 Attribute "%1" not found. - + ไม่พบà¹à¸­à¸•ทริบิวต์ "%1" Entry's "%1" attribute copied to the clipboard! - + คัดลอà¸à¹à¸­à¸•ทริบิวต์ "%1" ของรายà¸à¸²à¸£à¹„ปยังคลิปบอร์ดà¹à¸¥à¹‰à¸§! Clearing the clipboard in %1 second(s)... @@ -6478,7 +7170,7 @@ Do you want to overwrite it? Close the currently opened database. - + ปิดà¸à¸²à¸™à¸‚้อมูลที่เปิดอยู่ในปัจจุบัน Display this help. @@ -6498,59 +7190,65 @@ Do you want to overwrite it? Deactivate password key for the database. - + ปิดใช้งานคีย์รหัสผ่านสำหรับà¸à¸²à¸™à¸‚้อมูล Yubikey slot and optional serial used to access the database (e.g., 1:7370001). - + สล็อต Yubikey à¹à¸¥à¸°à¸‹à¸µà¹€à¸£à¸µà¸¢à¸¥à¹€à¸ªà¸£à¸´à¸¡à¸—ี่ใช้เพื่อเข้าถึงà¸à¸²à¸™à¸‚้อมูล (เช่น 1:7370001) slot[:serial] - + สล็อต[:serial] Missing positional argument(s). - + ไม่มีอาร์à¸à¸´à¸§à¹€à¸¡à¸™à¸•์ตำà¹à¸«à¸™à¹ˆà¸‡ Too many arguments provided. - - - - Target decryption time in MS for the database. - - - - time - เวลา - - - Set the key file for the database. - - - - Set a password for the database. - - - - Create a new database. - สร้างà¸à¸²à¸™à¸‚้อมูลใหม่ + มีอาร์à¸à¸´à¸§à¹€à¸¡à¸™à¸•์มาà¸à¹€à¸à¸´à¸™à¹„ป Path of the database. เส้นทางของà¸à¸²à¸™à¸‚้อมูล + + Target decryption time in MS for the database. + เวลาถอดรหัสเป้าหมายใน MS สำหรับà¸à¸²à¸™à¸‚้อมูล + + + time + เวลา + + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + ตั้งค่าไฟล์คีย์สำหรับà¸à¸²à¸™à¸‚้อมูล +ตัวเลือà¸à¸™à¸µà¹‰à¸–ูà¸à¹€à¸¥à¸´à¸à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¹à¸¥à¹‰à¸§ ใช้ --set-key-file à¹à¸—น + + + Set the key file for the database. + ตั้งค่าไฟล์คีย์สำหรับà¸à¸²à¸™à¸‚้อมูล + + + Set a password for the database. + สร้างรหัสผ่านสำหรับรายà¸à¸²à¸£ + + + Create a new database. + สร้างà¸à¸²à¸™à¸‚้อมูลใหม่ + Invalid decryption time %1. - + เวลาถอดรหัสไม่ถูà¸à¸•้อง %1 Target decryption time must be between %1 and %2. - + เวลาถอดรหัสเป้าหมายต้องอยู่ระหว่าง %1 ถึง %2 Failed to set database password. - + à¸à¸²à¸£à¸•ั้งรหัสผ่านสำหรับà¸à¸²à¸™à¸‚้อมูลล้มเหลว Loading the key file failed @@ -6562,15 +7260,15 @@ Do you want to overwrite it? Benchmarking key derivation function for %1ms delay. - + ฟังà¸à¹Œà¸Šà¸±à¸™à¸à¸²à¸£à¹„ด้มาของคีย์à¸à¸²à¸£à¹€à¸›à¸£à¸µà¸¢à¸šà¹€à¸—ียบสำหรับà¸à¸²à¸£à¸«à¸™à¹ˆà¸§à¸‡à¹€à¸§à¸¥à¸² %1ms Setting %1 rounds for key derivation function. - + à¸à¸²à¸£à¸•ั้งค่า %1 รอบสำหรับฟังà¸à¹Œà¸Šà¸±à¸™à¸à¸²à¸£à¹„ด้มาของคีย์ error while setting database key derivation settings. - + ข้อผิดพลาดขณะตั้งค่าà¸à¸²à¸£à¹„ด้มาของคีย์à¸à¸²à¸™à¸‚้อมูล File %1 already exists. @@ -6584,6 +7282,158 @@ Do you want to overwrite it? Successfully created new database. à¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸à¸²à¸™à¸‚้อมูลใหม่ประสบความสำเร็จ + + Unset the password for the database. + ยà¸à¹€à¸¥à¸´à¸à¸à¸²à¸£à¸•ั้งค่ารหัสผ่านสำหรับà¸à¸²à¸™à¸‚้อมูล + + + Unset the key file for the database. + ยà¸à¹€à¸¥à¸´à¸à¸à¸²à¸£à¸•ั้งค่าไฟล์คีย์สำหรับà¸à¸²à¸™à¸‚้อมูล + + + Edit a database. + à¹à¸à¹‰à¹„ขà¸à¸²à¸™à¸‚้อมูล + + + Cannot use %1 and %2 at the same time. + ไม่สามารถใช้ %1 à¹à¸¥à¸° %2 ในเวลาเดียวà¸à¸±à¸™ + + + Could not change the database key. + ไม่สามารถเปลี่ยนคีย์à¸à¸²à¸™à¸‚้อมูล + + + Database was not modified. + à¸à¸²à¸™à¸‚้อมูลไม่ถูà¸à¹à¸à¹‰à¹„ข + + + Writing the database failed: %1 + à¸à¸²à¸£à¹€à¸‚ียนà¸à¸²à¸™à¸‚้อมูลล้มเหลว: %1 + + + Successfully edited the database. + à¹à¸à¹‰à¹„ขà¸à¸²à¸™à¸‚้อมูลเรียบร้อยà¹à¸¥à¹‰à¸§ + + + Cannot remove password: The database does not have a password. + ไม่สามารถลบรหัสผ่าน: à¸à¸²à¸™à¸‚้อมูลไม่มีรหัสผ่าน + + + Cannot remove file key: The database does not have a file key. + ไม่สามารถลบคีย์ไฟล์: à¸à¸²à¸™à¸‚้อมูลไม่มีคีย์ไฟล์ + + + Loading the new key file failed: %1 + à¸à¸²à¸£à¹‚หลดไฟล์คีย์ใหม่ล้มเหลว: %1 + + + Found unexpected Key type %1 + พบประเภทคีย์ที่ไม่คาดคิด %1 + + + Cannot remove all the keys from a database. + ไม่สามารถลบคีย์ทั้งหมดออà¸à¸ˆà¸²à¸à¸à¸²à¸™à¸‚้อมูลได้ + + + Show a database's information. + à¹à¸ªà¸”งà¸à¸²à¸™à¸‚้อมูลของรายà¸à¸²à¸£ + + + UUID: + UUID: + + + Name: + ชื่อ: + + + Description: + คำอธิบาย + + + Cipher: + Cipher: + + + KDF: + KDF: + + + Recycle bin is enabled. + เปิดใช้งานถังรีไซเคิลà¹à¸¥à¹‰à¸§ + + + Recycle bin is not enabled. + ไม่ได้เปิดใช้งานถังรีไซเคิล + + + Location + ที่ตั้ง + + + Database created + à¸à¸²à¸™à¸‚้อมูลได้รับà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡ + + + Last saved + บันทึà¸à¸„รั้งสุดท้าย + + + Unsaved changes + ความเปลี่ยนà¹à¸›à¸¥à¸‡à¸—ี่ยังไม่ได้บันทึภ+ + + yes + ใช่ + + + no + ไม่ + + + Number of groups + จำนวนà¸à¸¥à¸¸à¹ˆà¸¡ + + + Number of entries + จำนวนรายà¸à¸²à¸£ + + + Number of expired entries + จำนวนรายà¸à¸²à¸£à¸—ี่หมดอายุ + + + Unique passwords + รหัสผ่านที่ไม่ซ้ำ + + + Non-unique passwords + รหัสผ่านที่ซ้ำ + + + Maximum password reuse + ใช้รหัสผ่านซ้ำได้สูงสุด + + + Number of short passwords + จำนวนรหัสผ่านขนาดสั้น + + + Number of weak passwords + จำนวนรหัสผ่านที่อ่อนà¹à¸­ + + + Entries excluded from reports + รายà¸à¸²à¸£à¸—ี่ไม่รวมอยู่ในรายงาน + + + Average password length + ความยาวของรหัสผ่านโดยสังเขป + + + %1 characters + %1 ตัวอัà¸à¸©à¸£ + Word count for the diceware passphrase. จำนวนคำสำหรับวลีรหัสผ่าน diceware @@ -6609,7 +7459,7 @@ Do you want to overwrite it? The word list is too small (< 1000 items) - + รายà¸à¸²à¸£à¸„ำศัพท์น้อยเà¸à¸´à¸™à¹„ป (< 1,000 รายà¸à¸²à¸£) Title for the entry. @@ -6635,10 +7485,6 @@ Do you want to overwrite it? Enter new password for entry: ใส่รหัสผ่านใหม่สำหรับรายà¸à¸²à¸£ - - Writing the database failed: %1 - à¸à¸²à¸£à¹€à¸‚ียนà¸à¸²à¸™à¸‚้อมูลล้มเหลว: %1 - Successfully edited entry %1. à¹à¸à¹‰à¹„ขรายà¸à¸²à¸£ %1 สำเร็จ @@ -6745,7 +7591,7 @@ Do you want to overwrite it? Type: Unknown (%1) - + ชนิด: ไม่ทราบ (%1) Entropy %1 (%2) @@ -6757,15 +7603,15 @@ Do you want to overwrite it? Exit interactive mode. - + ออà¸à¸ˆà¸²à¸à¹‚หมดโต้ตอบ Format to use when exporting. Available choices are 'xml' or 'csv'. Defaults to 'xml'. - + รูปà¹à¸šà¸šà¸—ี่จะใช้เมื่อส่งออภตัวเลือà¸à¸—ี่ใช้ได้คือ 'xml' หรือ 'csv' ค่าเริ่มต้นคือ 'xml' Exports the content of a database to standard output in the specified format. - + ส่งออà¸à¹€à¸™à¸·à¹‰à¸­à¸«à¸²à¸‚องà¸à¸²à¸™à¸‚้อมูลไปยังเอาต์พุตมาตรà¸à¸²à¸™à¹ƒà¸™à¸£à¸¹à¸›à¹à¸šà¸šà¸—ี่ระบุ Unable to export database to XML: %1 @@ -6813,7 +7659,7 @@ Do you want to overwrite it? Use custom character set - + ใช้ชุดอัà¸à¸‚ระที่à¸à¸³à¸«à¸™à¸”เอง Exclude similar looking characters @@ -6833,11 +7679,11 @@ Do you want to overwrite it? Invalid password generator after applying all options - + ตัวสร้างรหัสผ่านไม่ถูà¸à¸•้องหลังจาà¸à¹ƒà¸Šà¹‰à¸•ัวเลือà¸à¸—ั้งหมด Display command help. - + à¹à¸ªà¸”งคำสั่งช่วยเหลือ Available commands: @@ -6845,15 +7691,15 @@ Do you want to overwrite it? Import the contents of an XML database. - + นำเข้าเนื้อหาของà¸à¸²à¸™à¸‚้อมูล XML Path of the XML database export. - + เส้นทางของà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸à¸à¸²à¸™à¸‚้อมูล XML Path of the new database. - + เส้นทางของà¸à¸²à¸™à¸‚้อมูลใหม่ Unable to import XML database: %1 @@ -6861,107 +7707,7 @@ Do you want to overwrite it? Successfully imported database. - - - - Show a database's information. - - - - UUID: - - - - Name: - - - - Description: - - - - Cipher: - - - - KDF: - - - - Recycle bin is enabled. - - - - Recycle bin is not enabled. - - - - Location - ที่ตั้ง - - - Database created - - - - Last saved - บันทึà¸à¸„รั้งสุดท้าย - - - Unsaved changes - ความเปลี่ยนà¹à¸›à¸¥à¸‡à¸—ี่ยังไม่ได้บันทึภ- - - yes - ใช่ - - - no - ไม่ - - - Number of groups - จำนวนà¸à¸¥à¸¸à¹ˆà¸¡ - - - Number of entries - จำนวนรายà¸à¸²à¸£ - - - Number of expired entries - จำนวนรายà¸à¸²à¸£à¸—ี่หมดอายุ - - - Unique passwords - รหัสผ่านที่ไม่ซ้ำ - - - Non-unique passwords - รหัสผ่านที่ซ้ำ - - - Maximum password reuse - ใช้รหัสผ่านซ้ำได้สูงสุด - - - Number of short passwords - จำนวนรหัสผ่านขนาดสั้น - - - Number of weak passwords - จำนวนรหัสผ่านที่อ่อนà¹à¸­ - - - Entries excluded from reports - - - - Average password length - - - - %1 characters - %1 ตัวอัà¸à¸©à¸£ + à¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸à¸²à¸™à¸‚้อมูลใหม่ประสบความสำเร็จ Unknown command %1 @@ -6983,7 +7729,7 @@ Available commands: Displays debugging information. - + à¹à¸ªà¸”งข้อมูลà¸à¸²à¸£à¸”ีบัภInvalid command %1. @@ -6995,7 +7741,7 @@ Available commands: Flattens the output to single lines. - + ปรับเอาต์พุตให้เป็นบรรทัดเดียว List database entries. @@ -7019,15 +7765,15 @@ Available commands: Deactivate password key for the database to merge from. - + ปิดใช้งานรหัสรหัสผ่านสำหรับà¸à¸²à¸™à¸‚้อมูลที่จะผสานรวมจาภOnly print the changes detected by the merge operation. - + พิมพ์เฉพาะà¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸—ี่ตรวจพบโดยà¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¸œà¸ªà¸²à¸™à¸£à¸§à¸¡ Yubikey slot for the second database. - + สล็อต Yubikey สำหรับà¸à¸²à¸™à¸‚้อมูลที่สอง slot @@ -7061,15 +7807,15 @@ Available commands: Moves an entry to a new group. - + ย้ายรายà¸à¸²à¸£à¹„ปยังà¸à¸¥à¸¸à¹ˆà¸¡à¹ƒà¸«à¸¡à¹ˆ Path of the entry to move. - + เส้นทางของรายà¸à¸²à¸£à¸—ี่จะย้าย Path of the destination group. - + เส้นทางของà¸à¸¥à¸¸à¹ˆà¸¡à¸›à¸¥à¸²à¸¢à¸—าง Could not find group with path %1. @@ -7105,11 +7851,11 @@ Available commands: Path of the group to remove. - + เส้นทางของà¸à¸¥à¸¸à¹ˆà¸¡à¸—ี่จะลบ Cannot remove root group from database. - + ไม่สามารถลบà¸à¸¥à¸¸à¹ˆà¸¡à¸£à¸¹à¸—ออà¸à¸ˆà¸²à¸à¸à¸²à¸™à¸‚้อมูล Successfully recycled group %1. @@ -7133,11 +7879,15 @@ Available commands: Show the protected attributes in clear text. - + à¹à¸ªà¸”งà¹à¸­à¸•ทริบิวต์ที่ได้รับà¸à¸²à¸£à¸›à¹‰à¸­à¸‡à¸à¸±à¸™à¹ƒà¸™à¸‚้อความธรรมดา + + + Show all the attributes of the entry. + à¹à¸ªà¸”งคุณสมบัติทั้งหมดของรายà¸à¸²à¸£ Show the attachments of the entry. - + à¹à¸ªà¸”งเอà¸à¸ªà¸²à¸£à¹à¸™à¸šà¸‚องรายà¸à¸²à¸£ Names of the attributes to show. This option can be specified more than once, with each attribute shown one-per-line in the given order. If no attributes are specified, a summary of the default attributes is given. @@ -7161,11 +7911,11 @@ Available commands: No attachments present. - + ไม่พบเอà¸à¸ªà¸²à¸£à¹à¸™à¸š Attachments: - + เอà¸à¸ªà¸²à¸£à¸—ี่à¹à¸™à¸šà¸¡à¸²à¸”้วย Failed to open database file %1: not found @@ -7192,7 +7942,10 @@ Available commands: stop supporting in the future. Please consider generating a new key file. - + คำเตือน: คุณà¸à¸³à¸¥à¸±à¸‡à¹ƒà¸Šà¹‰à¸£à¸¹à¸›à¹à¸šà¸šà¹„ฟล์คีย์เà¸à¹ˆà¸²à¸‹à¸¶à¹ˆà¸‡ KeePassXC อาจ +หยุดสนับสนุนในอนาคต + +à¸à¸£à¸¸à¸“าพิจารณาสร้างไฟล์คีย์ใหม่ Invalid YubiKey slot %1 @@ -7202,13 +7955,17 @@ Please consider generating a new key file. Invalid YubiKey serial %1 เลขชุด YubiKey ไม่ถูà¸à¸£à¸¹à¸›à¹à¸šà¸š %1 + + Please present or touch your YubiKey to continue. + à¸à¸£à¸¸à¸“าà¹à¸ªà¸”งหรือสัมผัส YubiKey ของคุณเพื่อดำเนินà¸à¸²à¸£à¸•่อ + Enter password to encrypt database (optional): - + ป้อนรหัสผ่านเพื่อเข้ารหัสà¸à¸²à¸™à¸‚้อมูล (ไม่บังคับ): Do you want to create a database with an empty password? [y/N]: - + คุณต้องà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸à¸²à¸™à¸‚้อมูลด้วยรหัสผ่านเปล่าหรือไม่? [y/N]: Repeat password: @@ -7225,7 +7982,8 @@ Please consider generating a new key file. All clipping programs failed. Tried %1 - + โปรà¹à¸à¸£à¸¡à¸•ัดคลิปล้มเหลวทั้งหมด ลองใช้ %1 + Creating KeyFile %1 failed: %2 @@ -7241,63 +7999,63 @@ Please consider generating a new key file. To use okon, you must provide a post-processed file (e.g. file.okon) - + หาà¸à¸•้องà¸à¸²à¸£à¹ƒà¸Šà¹‰ okon คุณต้องจัดเตรียมไฟล์หลังà¸à¸²à¸£à¸›à¸£à¸°à¸¡à¸§à¸¥à¸œà¸¥ (เช่น file.okon) Could not start okon process: %1 - + ไม่สามารถเริ่มà¸à¸£à¸°à¸šà¸§à¸™à¸à¸²à¸£ okon: %1 Error: okon process did not finish - + ข้อผิดพลาด: à¸à¸£à¸°à¸šà¸§à¸™à¸à¸²à¸£ okon ไม่เสร็จสิ้น Failed to load okon processed database: %1 - + ไม่สามารถโหลดà¸à¸²à¸™à¸‚้อมูลที่ประมวลผล okon: %1 Very weak password - + รหัสผ่านอ่อนà¹à¸­à¸¡à¸²à¸ Password entropy is %1 bits - + เอนโทรปีรหัสผ่านคือ %1 บิต Weak password - + รหัสผ่านอ่อนà¹à¸­ Used in %1/%2 - + ใช้ใน %1/%2 Password is used %1 time(s) - + มีà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™ %1 ครั้ง Password has expired - + รหัสผ่านหมดอายุà¹à¸¥à¹‰à¸§ Password expiry was %1 - + รหัสผ่านหมดอายุà¹à¸¥à¹‰à¸§à¹€à¸¡à¸·à¹ˆà¸­ %1 Password expires on %1 - + รหัสผ่านจะหมดอายุเมื่อ %1 Password is about to expire - + รหัสผ่านà¸à¸³à¸¥à¸±à¸‡à¸ˆà¸°à¸«à¸¡à¸”อายุ Password expires in %1 day(s) - + รหัสผ่านจะหมดอายุใน %1 วัน Password will expire soon - + รหัสผ่านà¸à¸³à¸¥à¸±à¸‡à¸ˆà¸°à¸«à¸¡à¸”อายุเร็วๆ นี้ Version %1 @@ -7349,11 +8107,11 @@ Kernel: %3 %4 Quick Unlock - + ปลดล็อà¸à¸­à¸¢à¹ˆà¸²à¸‡à¹€à¸£à¹‡à¸§ Secret Service Integration - + à¸à¸²à¸£à¸œà¸ªà¸²à¸™à¸£à¸§à¸¡à¸šà¸£à¸´à¸à¸²à¸£à¸¥à¸±à¸š None @@ -7365,35 +8123,35 @@ Kernel: %3 %4 over %1 year(s) - + มาà¸à¸à¸§à¹ˆà¸² %1 ปี about %1 month(s) - + ประมาณ %1 เดือน %1 week(s) - + %1 สัปดาห์ %1 day(s) - + %1 วัน %1 hour(s) - + %1 ชั่วโมง %1 minute(s) - + %1 นาที - Botan library must be at least 2.11.x, found %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 Cryptographic libraries: - + ไลบรารีà¸à¸²à¸£à¹€à¸‚้ารหัสลับ: AES (%1 rounds) @@ -7401,31 +8159,31 @@ Kernel: %3 %4 Argon2%1 (%2 rounds, %3 KB) - + Argon2% 1 (%2 รอบ ,%3 KB) SymmetricCipher::init: Invalid cipher mode. - + SymmetricCipher::init: โหมดà¸à¸²à¸£à¹€à¸‚้ารหัสไม่ถูà¸à¸•้อง SymmetricCipher::init: Invalid IV size of %1 for %2. - + SymmetricCipher::init: ขนาด IV ที่ไม่ถูà¸à¸•้องของ %1 สำหรับ %2 Cipher not initialized prior to use. - + Cipher ไม่ได้เริ่มต้นà¸à¹ˆà¸­à¸™à¹ƒà¸Šà¹‰à¸‡à¸²à¸™ Cannot process 0 length data. - + ไม่สามารถประมวลผลข้อมูลความยาว 0 unknown executable (DBus address %1) - + à¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¸—ี่ไม่รู้จัภ(ที่อยู่ DBus %1) %1 (invalid executable path) - + %1 (เส้นทางปà¸à¸´à¸šà¸±à¸•ิà¸à¸²à¸£à¹„ม่ถูà¸à¸•้อง) NULL device @@ -7461,15 +8219,15 @@ Kernel: %3 %4 ChaCha20 256-bit - + ChaCha20 256 บิต Argon2d (KDBX 4 – recommended) - + Argon2d (KDBX 4 – à¹à¸™à¸°à¸™à¹à¸²) Argon2id (KDBX 4) - + Argon2id (KDBX 4) AES-KDF (KDBX 4) @@ -7477,7 +8235,7 @@ Kernel: %3 %4 AES-KDF (KDBX 3) - + AES-KDF (KDBX 3) Existing single-instance lock file is invalid. Launching new instance. @@ -7489,7 +8247,7 @@ Kernel: %3 %4 Clearing the clipboard in %1 second(s)… - + à¸à¸³à¸¥à¸±à¸‡à¸¥à¹‰à¸²à¸‡à¸„ลิปบอร์ดใน %1 วินาที… Group @@ -7539,23 +8297,23 @@ Kernel: %3 %4 Do you really want to delete the entry "%1" for good? - + คุณต้องà¸à¸²à¸£à¸¥à¸šà¸£à¸²à¸¢à¸à¸²à¸£ "%1" ตลอดไปหรือไม่? Do you really want to delete %n entry(s) for good? - + คุณต้องà¸à¸²à¸£à¸¥à¸šà¸£à¸²à¸¢à¸à¸²à¸£ %n ตลอดไปหรือไม่? Delete entry(s)? - + ลบรายà¸à¸²à¸£à¸«à¸£à¸·à¸­à¹„ม่? Do you really want to move entry "%1" to the recycle bin? - + คุณต้องà¸à¸²à¸£à¸¢à¹‰à¸²à¸¢à¸£à¸²à¸¢à¸à¸²à¸£ "%1" ไปยังถังรีไซเคิลหรือไม่? Do you really want to move %n entry(s) to the recycle bin? - + คุณต้องà¸à¸²à¸£à¸¢à¹‰à¸²à¸¢à¸£à¸²à¸¢à¸à¸²à¸£ %n ไปที่ถังรีไซเคิลหรือไม่? Move entry(s) to recycle bin? @@ -7563,31 +8321,31 @@ Kernel: %3 %4 Replace references to entry? - + เปลี่ยนà¹à¸«à¸¥à¹ˆà¸‡à¸­à¹‰à¸²à¸‡à¸­à¸´à¸‡à¸‚องรายà¸à¸²à¸£à¸«à¸£à¸·à¸­à¹„ม่ Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? - + รายà¸à¸²à¸£ "%1" มีà¸à¸²à¸£à¸­à¹‰à¸²à¸‡à¸­à¸´à¸‡ %2 รายà¸à¸²à¸£ คุณต้องà¸à¸²à¸£à¹€à¸‚ียนทับà¸à¸²à¸£à¸­à¹‰à¸²à¸‡à¸­à¸´à¸‡à¸”้วยค่า ข้ามรายà¸à¸²à¸£à¸™à¸µà¹‰ หรือลบต่อไปหรือไม่? User name - + ชื่อผู้ใช้ Browser Statistics - + สถิติของเบราว์เซอร์ Health Check - + ตรวจสุขภาพ HIBP - + HIBP Statistics - + สถิติ Unsupported key file version: %1 @@ -7595,11 +8353,11 @@ Kernel: %3 %4 Checksum mismatch! Key file may be corrupt. - + Checksum ไม่ตรงà¸à¸±à¸™! ไฟล์คีย์อาจเสียหาย Unexpected key file data! Key file may be corrupt. - + ข้อมูลไฟล์คีย์โดยไม่คาดคิด! ไฟล์คีย์อาจเสียหาย KeePassXC - cross-platform password manager @@ -7615,11 +8373,11 @@ Kernel: %3 %4 path to a custom local config file - + เส้นทางไปยังไฟล์ปรับà¹à¸•่งในเครื่องที่à¸à¸³à¸«à¸™à¸”เอง lock all open databases - + ล็อคà¸à¸²à¸™à¸‚้อมูลเปิดทั้งหมด key file of the database @@ -7629,22 +8387,22 @@ Kernel: %3 %4 read password of the database from stdin อ่านรหัสผ่านของà¸à¸²à¸™à¸‚้อมูลจาภstdin - - allow app screen recordering and screenshots - - Locked databases. - + à¸à¸²à¸™à¸‚้อมูลที่ถูà¸à¸¥à¹‡à¸­à¸„ Database failed to lock. - + à¸à¸²à¸£à¸¥à¹‡à¸­à¸„à¸à¸²à¸™à¸‚้อมูลไม่สำเร็จ Another instance of KeePassXC is already running. à¹à¸­à¸› KeePassXC อีà¸à¸•ัวà¸à¸³à¸¥à¸±à¸‡à¸—ำงานอยู่ + + KeePassXC is not running. No open database to lock + KeePassXC ไม่ทำงาน ไม่มีà¸à¸²à¸™à¸‚้อมูลà¹à¸šà¸šà¹€à¸›à¸´à¸”ให้ล็อภ+ Fatal error while testing the cryptographic functions. เà¸à¸´à¸”ข้อผิดพลาดร้ายà¹à¸£à¸‡à¸‚ณะทดสอบฟังà¸à¹Œà¸Šà¸±à¹ˆà¸™à¸à¸²à¸£à¹€à¸‚้ารหัส @@ -7653,10 +8411,6 @@ Kernel: %3 %4 KeePassXC - Error KeePassXC - ข้อผิดพลาด - - Warning: Failed to prevent screenshots on a top level window! - - Database password: รหัสผ่านà¸à¸²à¸™à¸‚้อมูล @@ -7673,14 +8427,228 @@ Kernel: %3 %4 Failed to create Windows Hello credential. - + สร้างข้อมูลรับรอง Windows Hello ไม่สำเร็จ Failed to sign challenge using Windows Hello. + ไม่สามารถลงชื่อชาเลนจ์โดยใช้ Windows Hello + + + Warning: Failed to block screenshot capture on a top-level window. + คำเตือน: ไม่สามารถบล็อà¸à¸à¸²à¸£à¸ˆà¸±à¸šà¸ à¸²à¸žà¸«à¸™à¹‰à¸²à¸ˆà¸­à¹ƒà¸™à¸«à¸™à¹‰à¸²à¸•่างระดับบนสุด + + + Invalid Cipher + Cipher ไม่ถูà¸à¸•้อง + + + Invalid KDF + KDF ไม่ถูà¸à¸•้อง + + + Access to all entries is denied - Please present or touch your YubiKey to continue. + allow screenshots and app recording (Windows/macOS) + + + + Enter Shortcut + + + + Action + + + + Shortcuts + + + + Attestation not supported + + + + Credential is excluded + + + + Passkeys request canceled + + + + Invalid user verification + + + + Empty public key + + + + Invalid URL provided + + + + Passkeys + + + + AES initialization failed + + + + AES encrypt failed + + + + Failed to store in Linux Keyring + + + + Polkit returned an error: %1 + + + + Could not locate key in keyring + + + + Could not read key in keyring + + + + AES decrypt failed + + + + No Polkit authentication agent was available + + + + Polkit authorization failed + + + + No Quick Unlock provider is available + + + + Failed to init KeePassXC crypto. + ไม่สามารถเริ่มต้นà¸à¸²à¸£à¹€à¸‚้ารหัสใน KeePassXC + + + Failed to encrypt key data. + เข้ารหัสà¸à¸¸à¸à¹à¸ˆà¸‚้อมูลไม่สำเร็จ + + + Failed to get Windows Hello credential. + ไม่สามารถรับข้อมูลประจำตัวของบริà¸à¸²à¸£ Windows Hello + + + Failed to decrypt key data. + ถอดรหัสà¸à¸¸à¸à¹à¸ˆà¸‚้อมูลไม่สำเร็จ + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7720,41 +8688,29 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - - - - Show only entries which have URL set - - - - Show only entries which have browser settings in custom data - - Double-click entries to edit. - + คลิภ2 ครั้ง ที่รายà¸à¸²à¸£à¹€à¸žà¸·à¹ˆà¸­à¹à¸à¹‰à¹„ข List of entry URLs - + ที่อยู่เว็ปของà¸à¸²à¸£à¸™à¸³à¸‚้อมูลเข้าสู่ระบบ Entry has no URLs set - + รายà¸à¸²à¸£à¹„ม่มีที่อยู่เว็ป Allowed URLs - + ที่อยู่เว็ปที่ได้รับà¸à¸²à¸£à¸­à¸™à¸¸à¸à¸²à¸• Entry has no Browser Integration settings - + รายà¸à¸²à¸£à¹„ม่มีà¸à¸²à¸£à¸•ั้งค่าà¸à¸²à¸£à¸œà¸ªà¸²à¸™à¸£à¸§à¸¡à¹€à¸šà¸£à¸²à¸§à¹Œà¹€à¸‹à¸­à¸£à¹Œ Denied URLs - + ที่อยู่เว็ปที่ถูà¸à¸›à¸à¸´à¹€à¸ªà¸˜ (Excluded) @@ -7766,11 +8722,11 @@ Kernel: %3 %4 Please wait, browser statistics is being calculated… - + à¸à¸£à¸¸à¸“ารอ à¸à¸³à¸¥à¸±à¸‡à¸„ำนวณสถิติเบราว์เซอร์… No entries with a URL, or none has browser extension settings saved. - + ไม่มีรายà¸à¸²à¸£à¸—ี่มี URL หรือไม่มีà¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸à¸à¸²à¸£à¸•ั้งค่าส่วนขยายของเบราว์เซอร์ Title @@ -7782,34 +8738,42 @@ Kernel: %3 %4 URLs - + ที่อยู่เว็ป Edit Entry… - + à¹à¸à¹‰à¹„ขà¸à¸²à¸£à¸™à¸³à¸‚้อมูลเข้าสู่ระบบ Delete Entry(s)… - + ลบรายà¸à¸²à¸£à¸«à¸£à¸·à¸­à¹„ม่? Exclude from reports ไม่นับรวมในรายงาน + + Only show entries that have a URL + + + + Only show entries that have been explicitly allowed or denied + + + + Show expired entries + + + + (Expired) + + ReportsWidgetHealthcheck - - Exclude expired entries from the report - - - - Also show entries that have been excluded from reports - - Hover over reason to show additional details. Double-click entries to edit. - + วางเมาส์เหนือเหตุผลเพื่อà¹à¸ªà¸”งรายละเอียดเพิ่มเติม ดับเบิลคลิà¸à¸—ี่รายà¸à¸²à¸£à¹€à¸žà¸·à¹ˆà¸­à¹à¸à¹‰à¹„ข Bad @@ -7848,7 +8812,7 @@ Kernel: %3 %4 Please wait, health data is being calculated… - + โปรดรอ ระหว่างที่à¸à¸²à¸£à¸•รวจสุขภาพà¸à¸³à¸¥à¸±à¸‡à¸”ำเนินà¸à¸²à¸£ Congratulations, everything is healthy! @@ -7872,34 +8836,46 @@ Kernel: %3 %4 Edit Entry… - + à¹à¸à¹‰à¹„ขà¸à¸²à¸£à¸™à¸³à¸‚้อมูลเข้าสู่ระบบ Delete Entry(s)… - + ลบรายà¸à¸²à¸£à¸«à¸£à¸·à¸­à¹„ม่? Exclude from reports ไม่นับรวมในรายงาน + + Show expired entries + + + + Show entries that have been excluded from reports + + + + (Expired) + + ReportsWidgetHibp CAUTION: This report requires sending information to the Have I Been Pwned online service (https://haveibeenpwned.com). If you proceed, your database passwords will be cryptographically hashed and the first five characters of those hashes will be sent securely to this service. Your database remains secure and cannot be reconstituted from this information. However, the number of passwords you send and your IP address will be exposed to this service. - + ข้อควรระวัง: รายงานฉบับนี้จำเป็นต้องส่งข้อมูลไปยังบริà¸à¸²à¸£à¸­à¸­à¸™à¹„ลน์ Have I been Pwned (https://haveibeenpwned.com) หาà¸à¸„ุณดำเนินà¸à¸²à¸£à¸•่อ รหัสผ่านà¸à¸²à¸™à¸‚้อมูลของคุณจะถูà¸à¹à¸®à¸Šà¹à¸šà¸šà¹€à¸‚้ารหัส à¹à¸¥à¸°à¸­à¸±à¸à¸‚ระห้าตัวà¹à¸£à¸à¸‚องà¹à¸®à¸Šà¹€à¸«à¸¥à¹ˆà¸²à¸™à¸±à¹‰à¸™à¸ˆà¸°à¸–ูà¸à¸ªà¹ˆà¸‡à¹„ปยังบริà¸à¸²à¸£à¸™à¸µà¹‰à¸­à¸¢à¹ˆà¸²à¸‡à¸›à¸¥à¸­à¸”ภัย à¸à¸²à¸™à¸‚้อมูลของคุณยังคงปลอดภัยà¹à¸¥à¸°à¹„ม่สามารถสร้างขึ้นใหม่จาà¸à¸‚้อมูลนี้ได้ อย่างไรà¸à¹‡à¸•าม จำนวนรหัสผ่านที่คุณส่งà¹à¸¥à¸°à¸—ี่อยู่ IP ของคุณจะถูà¸à¹€à¸›à¸´à¸”เผยต่อบริà¸à¸²à¸£à¸™à¸µà¹‰ Perform Online Analysis - + à¹à¸ªà¸”งà¸à¸²à¸£à¸§à¸´à¹€à¸„ราะห์ข้อมูลออนไลน์ Also show entries that have been excluded from reports - + à¹à¸ªà¸”งรายà¸à¸²à¸£à¸—ี่ถูà¸à¸à¸±à¸™à¸­à¸­à¸à¹„ปจาà¸à¸£à¸²à¸¢à¸‡à¸²à¸™ This build of KeePassXC does not have network functions. Networking is required to check your passwords against Have I Been Pwned databases. - + KeePassXC รุ่นนี้ไม่มีฟังà¸à¹Œà¸Šà¸±à¸™à¹€à¸„รือข่าย จำเป็นต้องมีà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¹€à¸„รือข่ายเพื่อตรวจสอบรหัสผ่านของคุณà¸à¸±à¸šà¸à¸²à¸™à¸‚้อมูล Have I been Pwned Congratulations, no exposed passwords! @@ -7928,61 +8904,120 @@ Kernel: %3 %4 once Password exposure amount - + ครั้งหนึ่ง up to 10 times Password exposure amount - + จนถึง 10 ครั้ง up to 100 times Password exposure amount - + ได้ถึง 100 ครั้ง up to 1000 times Password exposure amount - + ได้ถึง 1000 ครั้ง up to 10,000 times Password exposure amount - + ได้ถึง 10,000 ครั้ง up to 100,000 times Password exposure amount - + ได้ถึง 100,000 ครั้ง up to a million times Password exposure amount - + ได้ถึง 1,000,000 ครั้ง millions of times Password exposure amount - + ได้หลายล้านเท่า Edit Entry… - + à¹à¸à¹‰à¹„ขà¸à¸²à¸£à¸™à¸³à¸‚้อมูลเข้าสู่ระบบ Delete Entry(s)… - + ลบรายà¸à¸²à¸£à¸«à¸£à¸·à¸­à¹„ม่? Exclude from reports ไม่นับรวมในรายงาน + + ReportsWidgetPasskeys + + Export + ส่งออภ+ + + Import + นำเข้า + + + List of entry URLs + ที่อยู่เว็ปของรายà¸à¸²à¸£ + + + Please wait, list of entries with Passkeys is being updated… + + + + No entries with Passkeys. + + + + Title + หัวข้อ + + + Path + เส้นทาง + + + Username + ชื่อผู้ใช้ + + + URLs + ที่อยู่เว็ป + + + Edit Entry… + à¹à¸à¹‰à¹„ขรายà¸à¸²à¸£ + + + Delete Entry(s)… + ลบรายà¸à¸²à¸£... + + + Relying Party + + + + Show expired entries + + + + (Expired) + + + ReportsWidgetStatistics Hover over lines with error icons for further information. - + วางเมาส์เหนือบรรทัดที่มีไอคอนข้อผิดพลาดเพื่อดูข้อมูลเพิ่มเติม Name @@ -7994,7 +9029,7 @@ Kernel: %3 %4 Please wait, database statistics are being calculated… - + à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่ à¸à¸³à¸¥à¸±à¸‡à¸„ำนวณสถิติà¸à¸²à¸™à¸‚้อมูล… Database name @@ -8010,7 +9045,7 @@ Kernel: %3 %4 Database created - + à¸à¸²à¸™à¸‚้อมูลได้รับà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡ Last saved @@ -8030,7 +9065,7 @@ Kernel: %3 %4 The database was modified, but the changes have not yet been saved to disk. - + à¸à¸²à¸™à¸‚้อมูลได้รับà¸à¸²à¸£à¹à¸à¹‰à¹„ข à¹à¸•่à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸¢à¸±à¸‡à¹„ม่ได้บันทึà¸à¸¥à¸‡à¸”ิสà¸à¹Œ Number of groups @@ -8066,7 +9101,7 @@ Kernel: %3 %4 Some passwords are used more than three times. Use unique passwords when possible. - + รหัสผ่านบางรหัสถูà¸à¹ƒà¸Šà¹‰à¸¡à¸²à¸à¸à¸§à¹ˆà¸²à¸ªà¸²à¸¡à¸„รั้ง ใช้รหัสผ่านเฉพาะเมื่อเป็นไปได้ Number of short passwords @@ -8074,7 +9109,7 @@ Kernel: %3 %4 Recommended minimum password length is at least 8 characters. - + ความยาวของรหัสผ่านที่à¹à¸™à¸°à¸™à¸³à¸„ือ 8 ตัวอัà¸à¸©à¸£à¹€à¸›à¹‡à¸™à¸­à¸¢à¹ˆà¸²à¸‡à¸•à¹à¹ˆà¸² Number of weak passwords @@ -8082,19 +9117,19 @@ Kernel: %3 %4 Recommend using long, randomized passwords with a rating of 'good' or 'excellent'. - + à¹à¸™à¸°à¸™à¸³à¹ƒà¸«à¹‰à¹ƒà¸Šà¹‰à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¹à¸šà¸šà¸ªà¸¸à¹ˆà¸¡à¹à¸šà¸šà¸¢à¸²à¸§ ๆ โดยให้คะà¹à¸™à¸™à¹€à¸›à¹‡à¸™ 'ดี' หรือ 'ดีเยี่ยม' Entries excluded from reports - + รายà¸à¸²à¸£à¸—ี่ไม่รวมอยู่ในรายงาน Excluding entries from reports, e. g. because they are known to have a poor password, isn't necessarily a problem but you should keep an eye on them. - + à¸à¸²à¸£à¹à¸¢à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸­à¸­à¸à¸ˆà¸²à¸à¸£à¸²à¸¢à¸‡à¸²à¸™ เช่น เนื่องจาà¸à¹€à¸›à¹‡à¸™à¸—ี่ทราบà¸à¸±à¸™à¸”ีว่ามีรหัสผ่านที่ไม่รัดà¸à¸¸à¸¡ จึงไม่จำเป็นต้องเป็นปัà¸à¸«à¸² à¹à¸•่คุณควรจับตาดูให้ดี Average password length - + ความยาวของรหัสผ่านโดยสังเขป %1 characters @@ -8102,7 +9137,7 @@ Kernel: %3 %4 Average password length is less than ten characters. Longer passwords provide more security. - + ความยาวรหัสผ่านโดยเฉลี่ยน้อยà¸à¸§à¹ˆà¸²à¸ªà¸´à¸šà¸­à¸±à¸à¸‚ระ รหัสผ่านที่ยาวขึ้นจะให้ความปลอดภัยมาà¸à¸¢à¸´à¹ˆà¸‡à¸‚ึ้น @@ -8121,7 +9156,7 @@ Kernel: %3 %4 Key identity ownership conflict. Refusing to add. - + ความขัดà¹à¸¢à¹‰à¸‡à¹ƒà¸™à¸à¸²à¸£à¹€à¸›à¹‡à¸™à¹€à¸ˆà¹‰à¸²à¸‚องข้อมูลประจำตัวที่สำคัภà¸à¸²à¸£à¸›à¸à¸´à¹€à¸ªà¸˜à¸—ี่จะเพิ่ม Agent refused this identity. Possible reasons include: @@ -8141,7 +9176,7 @@ Kernel: %3 %4 Security keys are not supported by the agent or the security key provider is unavailable. - + ตัวà¹à¸—นไม่รองรับคีย์รัà¸à¸©à¸²à¸„วามปลอดภัยหรือผู้ให้บริà¸à¸²à¸£à¸„ีย์รัà¸à¸©à¸²à¸„วามปลอดภัยไม่พร้อมใช้งาน No agent running, cannot remove identity. @@ -8149,7 +9184,7 @@ Kernel: %3 %4 No agent running, cannot list identities. - + ไม่มีตัวà¹à¸—นทำงาน ไม่สามารถระบุตัวตนได้ @@ -8217,10 +9252,14 @@ Kernel: %3 %4 Search Help ตัวช่วยค้นหา + + Save Search + บันทึà¸à¸à¸²à¸£à¸„้นหา + Search (%1)… Search placeholder text, %1 is the keyboard shortcut - + ค้นหา (%1)… Case sensitive @@ -8243,7 +9282,7 @@ Kernel: %3 %4 DBus Address - + ที่อยู่ DBus Manage @@ -8273,7 +9312,7 @@ Kernel: %3 %4 Enable KeepassXC Freedesktop.org Secret Service integration - + เปิดใช้งานà¸à¸²à¸£à¸œà¸ªà¸²à¸™à¸£à¸§à¸¡à¸šà¸£à¸´à¸à¸²à¸£à¸¥à¸±à¸š KeepassXC Freedesktop.org General @@ -8281,15 +9320,15 @@ Kernel: %3 %4 Show notification when passwords are retrieved by clients - + à¹à¸ªà¸”งà¸à¸²à¸£à¹à¸ˆà¹‰à¸‡à¹€à¸•ือนเมื่อลูà¸à¸„้าดึงรหัสผ่าน <html><head/><body><p>If enabled, any attempt to read a password must be confirmed. Otherwise, clients can read passwords without confirmation when the database is unlocked.</p><p>This option only covers the access to the password of an entry. Clients can always enumerate the items of exposed databases and query their attributes.</p></body></html> - + <html> <head/> <body> <p> หาà¸à¹€à¸›à¸´à¸”ใช้งาน ความพยายามใด ๆ ในà¸à¸²à¸£à¸­à¹ˆà¸²à¸™à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸ˆà¸°à¸•้องได้รับà¸à¸²à¸£à¸¢à¸·à¸™à¸¢à¸±à¸™ มิฉะนั้นลูà¸à¸„้าสามารถอ่านรหัสผ่านได้โดยไม่ต้องยืนยันเมื่อà¸à¸²à¸™à¸‚้อมูลได้รับà¸à¸²à¸£à¸›à¸¥à¸”ล็อค </p> <p> ตัวเลือà¸à¸™à¸µà¹‰à¸„รอบคลุมเฉพาะà¸à¸²à¸£à¹€à¸‚้าถึงรหัสผ่านของรายà¸à¸²à¸£à¹€à¸—่านั้น ลูà¸à¸„้าสามารถà¹à¸ˆà¸à¹à¸ˆà¸‡à¸£à¸²à¸¢à¸à¸²à¸£à¸‚องà¸à¸²à¸™à¸‚้อมูลที่เปิดเผยà¹à¸¥à¸°à¸ªà¸·à¸šà¸„้นà¹à¸­à¸•ทริบิวต์ของเขาได้เสมอ </p> </body> </html> Confirm when passwords are retrieved by clients - + ยืนยันเมื่อลูà¸à¸„้านำรหัสผ่านà¸à¸¥à¸±à¸šà¸¡à¸²à¹„ด้สำเร็จ <html><head/><body><p><span style=" @@ -8297,11 +9336,15 @@ Kernel: %3 %4 Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">This setting does not override disabling recycle bin prompts</span></p></body></html> - + <html> <head/> <body> <p> <span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','สีà¹à¸­à¸›à¹€à¸›à¸´à¸¥ + อีโมจิ','Segoe UI Emoji'; ขนาดตัวอัà¸à¸©à¸£:14px; สี:#24292e; สีพื้นหลัง:#ffffff;"> à¸à¸²à¸£à¸•ั้งค่านี้จะไม่ + à¹à¸—นที่à¸à¸²à¸£à¸›à¸´à¸”ใช้งานถังรีไซเคิลพร้อมท์ </span> </p> </body> </html> + Confirm when clients request entry deletion - + ยืนยันเมื่อลูà¸à¸„้าร้องขอà¸à¸²à¸£à¸¥à¸šà¸£à¸²à¸¢à¸à¸²à¸£ <html><head/><body><p>This improves compatibility with certain applications @@ -8309,15 +9352,20 @@ Kernel: %3 %4 crash the client if the database can not be unlocked within a certain timeout. (Usually 25s, but may be a different value set in applications.)</p></body></html> - + <html> <head/> <body> <p> ซึ่งนี่อาจช่วยเพิ่มความเข้าà¸à¸±à¸™à¹„ด้à¸à¸±à¸šà¹à¸­à¸›à¸žà¸¥à¸´à¹€à¸„ชันบางอย่าง + ซึ่งสามารถค้นหารหัสผ่านได้โดยไม่ต้องปลดล็อคà¸à¸²à¸™à¸‚้อมูลà¸à¹ˆà¸­à¸™</p> +<p> à¹à¸•่à¸à¸²à¸£à¹€à¸›à¸´à¸”ใช้งานนี้อาจ + ทำให้ไคลเอ็นต์ล้มเหลว หาà¸à¹„ม่สามารถปลดล็อà¸à¸à¸²à¸™à¸‚้อมูลได้ภายในเวลาที่à¸à¸³à¸«à¸™à¸” (ปà¸à¸•ิอยู่ที่ 25 วินาที à¹à¸•่อาจจะมี + ค่าที่à¹à¸•à¸à¸•่างà¸à¸±à¸™à¸—ี่ตั้งไว้ในà¹à¸­à¸›à¸žà¸¥à¸´à¹€à¸„ชัน)</p></body></html> + Prompt to unlock database before searching - + à¹à¸ˆà¹‰à¸‡à¹ƒà¸«à¹‰à¸›à¸¥à¸”ล็อà¸à¸à¸²à¸™à¸‚้อมูลà¸à¹ˆà¸­à¸™à¸„้นหา Exposed database groups: - + à¸à¸¥à¸¸à¹ˆà¸¡à¸à¸²à¸™à¸‚้อมูลที่เปิดเผย: Authorization @@ -8325,7 +9373,7 @@ Kernel: %3 %4 These applications are currently connected: - + à¹à¸­à¸›à¸žà¸¥à¸´à¹€à¸„ชันเหล่านี้à¸à¸³à¸¥à¸±à¸‡à¸­à¸¢à¸¹à¹ˆà¸£à¸°à¸«à¸§à¹ˆà¸²à¸‡à¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่อ <b>Warning:</b> @@ -8333,7 +9381,7 @@ Kernel: %3 %4 Save current changes to activate the plugin and enable editing of this section. - + บันทึà¸à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸›à¸±à¸ˆà¸ˆà¸¸à¸šà¸±à¸™à¹€à¸žà¸·à¹ˆà¸­à¹€à¸›à¸´à¸”ใช้งานปลั๊à¸à¸­à¸´à¸™ à¹à¸¥à¸°à¹€à¸›à¸´à¸”ใช้งานà¸à¸²à¸£à¹à¸à¹‰à¹„ขส่วนนี้ @@ -8360,7 +9408,7 @@ Kernel: %3 %4 Only show warnings and errors - + à¹à¸ªà¸”งผลà¹à¸„่à¸à¸²à¸£à¹€à¸•ือนà¹à¸¥à¸°à¸‚้อผิดพลาด Own certificate @@ -8372,7 +9420,7 @@ Kernel: %3 %4 Generate new certificate - + สร้างใบรับรองใหม่ Generate @@ -8384,7 +9432,7 @@ Kernel: %3 %4 Signer name field - + ฟิลด์ชื่อผู้ลงนาม Fingerprint @@ -8395,14 +9443,14 @@ Kernel: %3 %4 ShareExport Could not write export container. - + ไม่สามารถเขียนคอนเทนเนอร์à¸à¸²à¸£à¸ªà¹ˆà¸‡à¸­à¸­à¸ ShareImport Successful import - + à¸à¸²à¸£à¸™à¸³à¸‚้อมูลเข้าสู่ระบบสำเร็จ @@ -8429,7 +9477,7 @@ Kernel: %3 %4 Export to %1 failed (%2) - ส่งออà¸à¹„ป %1 ล้มเหลว (%2) + ส่งออà¸à¹„ป %1 ไม่สำเร็จ (%2) Export to %1 successful (%2) @@ -8440,19 +9488,65 @@ Kernel: %3 %4 ส่งออà¸à¹„ป %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + + + + Shortcut Conflict + + + + Filter... + + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + + + + Reset Shortcuts + + + TagModel - All - + Clear Search + ล้างà¸à¸²à¸£à¸„้นหา + + + All Entries + รายà¸à¸²à¸£à¸—ั้งหมด Expired - + หมดอายุà¹à¸¥à¹‰à¸§ Weak Passwords - + รหัสผ่านอ่อนà¹à¸­ + + + + TagView + + Remove Search + ลบà¸à¸²à¸£à¸„้นหา + + + Remove Tag + ลบà¹à¸—็ภ+ + + Confirm Remove Tag + ยืนยันà¸à¸²à¸£à¸¥à¸šà¹à¸—็ภ+ + + Remove tag "%1" from all entries in this database? + ลบà¹à¸—็ภ"%1" ออà¸à¸ˆà¸²à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸—ั้งหมดในà¸à¸²à¸™à¸‚้อมูลนี้หรือไม่? @@ -8502,23 +9596,23 @@ Kernel: %3 %4 Secret key must be in Base32 format - + คีย์ลับต้องอยู่ในรูปà¹à¸šà¸š Base32 Secret key field - + ช่องคีย์ลับ Default settings (RFC 6238) - + à¸à¸²à¸£à¸•ั้งค่าเริ่มต้น Steam® settings - + à¸à¸²à¸£à¸•ั้งค่าสตีม Custom settings: - + à¸à¸²à¸£à¸•ั้งค่าà¹à¸šà¸šà¸›à¸£à¸±à¸šà¹à¸•่งเอง Custom Settings @@ -8534,7 +9628,7 @@ Kernel: %3 %4 Time step field - + ช่องหัวเรื่อง sec @@ -8551,12 +9645,13 @@ Kernel: %3 %4 Invalid TOTP Secret - + ข้อมูลลับของ TOTP ไม่ถูà¸à¸•้อง You have entered an invalid secret key. The key must be in Base32 format. Example: JBSWY3DPEHPK3PXP - + คุณป้อนรหัสลับที่ไม่ถูà¸à¸•้อง รหัสต้องอยู่ในรูปà¹à¸šà¸šà¹€à¸¥à¸‚à¸à¸²à¸™ 32 +ตัวอย่าง: JBSWY3DPEHPK3PXP Confirm Remove TOTP Settings @@ -8578,11 +9673,11 @@ Example: JBSWY3DPEHPK3PXP UpdateCheckDialog Checking for updates - &ตรวจหาà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸£à¸¸à¹ˆà¸™ + ตรวจหาà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸£à¸¸à¹ˆà¸™ Checking for updates… - + à¸à¸³à¸¥à¸±à¸‡à¸•รวจหาà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸£à¸¸à¹ˆà¸™... Close @@ -8594,15 +9689,15 @@ Example: JBSWY3DPEHPK3PXP An error occurred when trying to retrieve update information, please try again later. - + เà¸à¸´à¸”ข้อผิดพลาดขณะพยายามดึงข้อมูลปรับรุ่น โปรดลองอีà¸à¸„รั้งในภายหลัง <strong>A new version is available.</strong><br/>KeePassXC %1 can be <a href="https://keepassxc.org/download/">downloaded here</a>. - + <strong>เวอร์ชันใหม่พร้อมà¹à¸¥à¹‰à¸§</strong><br/>KeePassXC %1 <a href="https://keepassxc.org/download/">สามารถดาวน์โหลด ได้ที่นี่</a> You have the latest version of KeePassXC - + คุณมี KeePassXC เวอร์ชันล่าสุด @@ -8611,26 +9706,6 @@ Example: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database เริ่มเà¸à¹‡à¸šà¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸‚องคุณให้ปลอดภัยในà¸à¸²à¸™à¸‚้อมูลของ KeePassXC - - Create new database - สร้างà¸à¸²à¸™à¸‚้อมูลใหม่ - - - Open existing database - เปิดà¸à¸²à¸™à¸‚้อมูลที่มีอยู่ - - - Import from KeePass 1 - นำเข้าจาภKeePass 1 - - - Import from 1Password - นำเข้าจาภ1Password - - - Import from CSV - นำเข้าจาภCSV - Recent databases à¸à¸²à¸™à¸‚้อมูลที่เพิ่งใช้ @@ -8643,101 +9718,78 @@ Example: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 ยินดีต้อนรับสู่ KeePassXC %1 + + Create Database + + + + Open Database + + + + Import File + + WinUtils Invalid key code - + à¹à¸Ÿà¹‰à¸¡à¸à¸¸à¸à¹à¸ˆà¹„ม่ถูà¸à¸•้อง Global shortcut already registered to %1 - + ทางลัดส่วนà¸à¸¥à¸²à¸‡à¹„ด้ลงทะเบียน %1 . à¹à¸¥à¹‰à¸§ Could not register global shortcut - - - - - WindowsHello - - Failed to init KeePassXC crypto. - - - - Failed to encrypt key data. - - - - Failed to get Windows Hello credential. - - - - Failed to decrypt key data. - + ไม่สามารถลงทะเบียนทางลัดของส่วนà¸à¸¥à¸²à¸‡ YubiKey - - %1 No interface, slot %2 - - General: - + ทั่วไป: Could not find interface for hardware key with serial number %1. Please connect it to continue. - + ไม่พบส่วนติดต่อสำหรับรหัสฮาร์ดà¹à¸§à¸£à¹Œà¸—ี่มีหมายเลขซีเรียล %1 โปรดเชื่อมต่อเพื่อดำเนินà¸à¸²à¸£à¸•่อ YubiKeyEditWidget - - Refresh hardware tokens - - - - Refresh - เรียà¸à¹ƒà¸«à¸¡à¹ˆ - Hardware key slot selection - + à¸à¸²à¸£à¹€à¸¥à¸·à¸­à¸à¸Šà¹ˆà¸­à¸‡à¸„ีย์ฮาร์ดà¹à¸§à¸£à¹Œ Could not find any hardware keys! - + ไม่พบคีย์ฮาร์ดà¹à¸§à¸£à¹Œà¹ƒà¸”ๆ! Selected hardware key slot does not support challenge-response! - + ช่องของคีย์ฮาร์ดà¹à¸§à¸£à¹Œà¸—ี่เลือภไม่สนับสนุนรหัสสอบถาม-รหัสตอบà¸à¸¥à¸±à¸š Challenge-Response - + รหัสสอบถาม-รหัสตอบà¸à¸¥à¸±à¸š Add Challenge-Response - + เพิ่ม รหัสสอบถาม-รหัสตอบà¸à¸¥à¸±à¸š Change Challenge-Response - + เปลี่ยน รหัสสอบถาม-รหัสตอบà¸à¸¥à¸±à¸š Remove Challenge-Response - + ลบ รหัสสอบถาม-รหัสตอบà¸à¸¥à¸±à¸š Challenge-Response set, click to change or remove - - - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - + รหัสสอบถาม-รหัสตอบà¸à¸¥à¸±à¸š ได้ตั้งค่า คลิà¸à¹€à¸žà¸·à¹ˆà¸­à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¸«à¸£à¸·à¸­à¸¥à¸š Detecting hardware keys… @@ -8747,44 +9799,52 @@ Example: JBSWY3DPEHPK3PXP No hardware keys detected ตรวจไม่พบà¸à¸¸à¸à¹à¸ˆà¸®à¸²à¸£à¹Œà¸”à¹à¸§à¸£à¹Œ - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 ช่องที่ไม่ถูà¸à¸£à¸¹à¸›à¹à¸šà¸šà¸–ูà¸à¸£à¸°à¸šà¸¸à¸¡à¸² - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - - The YubiKey PCSC interface has not been initialized. - - - - Hardware key is currently in use. - ใช้à¸à¸¸à¸à¹à¸ˆà¸®à¸²à¸£à¹Œà¸”à¹à¸§à¸£à¹Œà¸­à¸¢à¸¹à¹ˆ + ส่วนติดต่อของ YubiKey PCSC ยังไม่ได้เริ่มต้น Could not find or access hardware key with serial number %1. Please present it to continue. - + ไม่พบหรือเข้าถึงรหัสฮาร์ดà¹à¸§à¸£à¹Œà¸—ี่มีหมายเลขซีเรียล %1 โปรดà¹à¸ªà¸”งมันเพื่อดำเนินà¸à¸²à¸£à¸•่อ Hardware key is locked or timed out. Unlock or re-present it to continue. - + à¸à¸¸à¸à¹à¸ˆà¸®à¸²à¸£à¹Œà¸”à¹à¸§à¸£à¹Œà¸–ูà¸à¸¥à¹‡à¸­à¸„หรือหมดเวลา à¸à¸£à¸¸à¸“าปลดล็อà¸à¸«à¸£à¸·à¸­à¸”ำเนินà¸à¸²à¸£à¹ƒà¸«à¸¡à¹ˆà¹€à¸žà¸·à¹ˆà¸­à¸”ำเนินà¸à¸²à¸£à¸•่อ Hardware key was not found or is not configured. - + ไม่พบà¸à¸¸à¸à¹à¸ˆà¸‚องฮาร์ดà¹à¸§à¸£à¹Œ หรือไม่ได้à¸à¸³à¸«à¸™à¸”ค่าไว้ Failed to complete a challenge-response, the PCSC error code was: %1 + ดำเนินà¸à¸²à¸£à¹„ม่สำเร็จ รหัสสอบถาม-รหัสตอบà¸à¸¥à¸±à¸š, ข้อผิดพลาดของ PCSC: %1 + + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + Press + USB Challenge-Response Key interaction request + à¸à¸” + + + Passive + USB Challenge-Response Key no interaction required + à¹à¸žà¸ªà¸‹à¸µà¸Ÿ + YubiKeyInterfaceUSB @@ -8792,14 +9852,6 @@ Example: JBSWY3DPEHPK3PXP Unknown ไม่รู้จัภ- - (USB) %1 [%2] Configured Slot - %3 - - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - - Press USB Challenge-Response Key interaction request @@ -8812,26 +9864,32 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. - - - - Hardware key is currently in use. - ใช้à¸à¸¸à¸à¹à¸ˆà¸®à¸²à¸£à¹Œà¸”à¹à¸§à¸£à¹Œà¸­à¸¢à¸¹à¹ˆ + ส่วนติดต่อของ USB YubiKey ยังไม่ได้เริ่มต้น Could not find hardware key with serial number %1. Please plug it in to continue. - + ไม่สามารถค้นหา à¸à¸¸à¸à¹à¸ˆà¸®à¸²à¸£à¹Œà¸”à¹à¸§à¸£à¹Œ ด้วยหมายเลขซีเรียลที่มี %1 à¸à¸£à¸¸à¸“าเสียบปลั๊à¸à¹€à¸žà¸·à¹ˆà¸­à¸”ำเนินà¸à¸²à¸£à¸•่อ Hardware key timed out waiting for user interaction. - + à¸à¸¸à¸à¹à¸ˆà¸®à¸²à¸£à¹Œà¸”à¹à¸§à¸£à¹Œà¹„ด้หมดเวลารอà¸à¸²à¸£à¹‚ต้ตอบà¸à¸±à¸šà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰ A USB error occurred when accessing the hardware key: %1 - + เà¸à¸´à¸”ข้อผิดพลาด USB เมื่อมีà¸à¸²à¸£à¹€à¸‚้าถึงà¸à¸¸à¸à¹à¸ˆà¸®à¸²à¸£à¹Œà¸”à¹à¸§à¸£à¹Œ : 1% Failed to complete a challenge-response, the specific error was: %1 + ข้อผิดพลาด รหัสสอบถาม-รหัสตอบà¸à¸¥à¸±à¸š ข้อผิดพลาดเฉพาะที่: 1 % + + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields diff --git a/share/translations/keepassxc_tr.ts b/share/translations/keepassxc_tr.ts index f1d37bb06..da48a2fde 100644 --- a/share/translations/keepassxc_tr.ts +++ b/share/translations/keepassxc_tr.ts @@ -80,6 +80,10 @@ Details Ayrıntılar + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Kararınız, hem istekte bulunan istemci hem de KeePassXC çalışırken hatırlanacak. + Remember Hatırla @@ -88,10 +92,6 @@ Allow Selected SeçilmiÅŸlere izin ver - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - Kararınız, hem istekte bulunan istemci hem de KeePassXC çalışırken hatırlanacak. - Deny All && Future Tümünü ve gelecektekileri reddet @@ -122,6 +122,10 @@ Use OpenSSH OpenSSH kullanılsın + + Use both agents + İki uygulama da kullanılsın + SSH_AUTH_SOCK override SSH_AUTH_SOCK deÄŸiÅŸikliÄŸi @@ -150,10 +154,6 @@ SSH Agent connection is working! SSH istemci baÄŸlantısı çalışıyor! - - Use both agents - İki uygulama da kullanılsın - ApplicationSettingsWidget @@ -169,17 +169,21 @@ Security Güvenlik + + This setting cannot be enabled when minimize on unlock is enabled. + Kilit açıldığında küçültülsün seçeneÄŸi açıkken bu seçenek açılamaz. + Access error for config file %1 %1 yapılandırma dosyasına eriÅŸim sorunu Icon only - Yalnız simge + Yalnızca simge Text only - Yalnız yazı + Yalnızca yazı Text beside icon @@ -211,7 +215,7 @@ You must restart the application to set the new language. Would you like to restart now? - Yeni dilin etkin olması için uygulamayı yeniden baÅŸlatmalısınız. Åžimdi yeniden baÅŸlatılsın mı? + Yeni dilin kullanıma alınması için uygulamayı yeniden baÅŸlatmalısınız. Åžimdi yeniden baÅŸlatılsın mı? Reset Settings? @@ -250,19 +254,23 @@ Minimize window after unlocking database - Veritabanı kilidi açıldığında simge durumuna küçültülsün + Veri tabanı kilidi açıldığında simge durumuna küçültülsün Remember previously used databases - Kullanılan veritabanları hatırlansın + Kullanılan veri tabanları hatırlansın + + + recent files + son kullanılan dosya Load previously open databases on startup - BaÅŸlangıçta son kullanılan veritabanları yüklensin + BaÅŸlangıçta son kullanılan veri tabanları yüklensin Remember database key files and security dongles - Veritabanı anahtar dosyaları ve güvenlik donanımları hatırlansın + Veri tabanı anahtar dosyaları ve e-anahtarlar hatırlansın Check for updates at application startup once per week @@ -274,7 +282,7 @@ On database unlock, show entries that - Veritabanının kilidi açıldığında, ÅŸu kayıtlar görüntülensin + Veri tabanının kilidi açıldığında, ÅŸu kayıtlar görüntülensin have expired @@ -284,7 +292,7 @@ days On database unlock, show entries that will expire within %1 days - gün + gün will expire within @@ -301,19 +309,19 @@ Automatically save when locking database - Veritabanı kilitlendiÄŸinde otomatik olarak kaydedilsin + Veri tabanı kilitlendiÄŸinde otomatik olarak kaydedilsin Automatically save non-data changes when locking database - Veritabanı kilitlendiÄŸinde veri dışı deÄŸiÅŸiklikleri otomatik olarak kaydedilsin + Veri tabanı kilitlendiÄŸinde veri dışı deÄŸiÅŸiklikleri otomatik olarak kaydedilsin Automatically reload the database when modified externally - Dışarıda deÄŸiÅŸtirildiÄŸinde veritabanını otomatik olarak yeniden yüklensin + Dışarıda deÄŸiÅŸtirildiÄŸinde veri tabanını otomatik olarak yeniden yüklensin Backup database file before saving - Kaydetmeden önce veritabanı dosyası yedeklensin + Kaydetmeden önce veri tabanı dosyası yedeklensin Backup destination @@ -321,7 +329,7 @@ Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". - Veritabanı yedek dosyasının konumunu belirtir. "{DB_FILENAME}" kodu, kayıtlı veritabanının uzantısı olmayan dosya adı, {TIME:<format>} kodu, yedekleme zamanı ile deÄŸiÅŸtirilir. https://doc.qt.io/qt-5/qdatetime.html#toString adresine bakabilirsiniz.<format> Varsayılan biçem dizgesi "dd_MM_yyyy_hh-mm-ss". + Veri tabanı yedek dosyasının konumunu belirtir. "{DB_FILENAME}" kodu, kayıtlı veri tabanının uzantısı olmayan dosya adı, {TIME:<format>} kodu, yedekleme zamanı ile deÄŸiÅŸtirilir. https://doc.qt.io/qt-5/qdatetime.html#toString adresine bakabilirsiniz.<format> Varsayılan biçem dizgesi "dd_MM_yyyy_hh-mm-ss". {DB_FILENAME}.old.kdbx @@ -341,7 +349,7 @@ Directly write to database file (dangerous) - DoÄŸrudan veritabanı dosyasına yazılsın (tehlikeli) + DoÄŸrudan veri tabanı dosyasına yazılsın (tehlikeli) Entry Management @@ -349,7 +357,7 @@ Use group icon on entry creation - Kayıt oluÅŸturulurken grup simgesi kullanılsın + Kayıt eklenirken grup simgesi kullanılsın Minimize when opening a URL @@ -373,12 +381,12 @@ Website icon download timeout in seconds - Saniye olarak web sitesi simgesi indirme zaman aşımı süresi + Saniye olarak site simgesi indirme zaman aşımı süresi sec Seconds - sn + sn User Interface @@ -408,6 +416,10 @@ Toolbar button style: Araç çubuÄŸu düğme biçemi: + + Show passwords in color + Parolalar renkli görüntülensin + Use monospaced font for notes Notlarda sabit aralıklı yazı tipi kullanılsın @@ -458,7 +470,7 @@ Re-lock previously locked database after performing Auto-Type - Otomatik yazma sonrasında önceden kilitli veritabanı yeniden kilitlensin + Otomatik yazma sonrasında önceden kilitli veri tabanı yeniden kilitlensin Auto-Type start delay: @@ -475,7 +487,7 @@ ms Milliseconds - ms + ms Auto-Type typing delay: @@ -502,7 +514,7 @@ Database lock timeout seconds - Veritabanı kilidi zaman aşımı saniyesi + Veri tabanı kilidi zaman aşımı saniyesi sec @@ -528,7 +540,7 @@ Lock databases after inactivity of - Vertiabanları ÅŸu kadar zaman sonra kilitlensin + Veri tabanları ÅŸu kadar zaman sonra kilitlensin Convenience @@ -536,15 +548,15 @@ Enable database quick unlock (Touch ID / Windows Hello) - Kilit hızlı açılabilsin (Touch ID / Windows Hello) + Veri tabanı kilidi hızlı açılabilsin (Touch ID / Windows Hello) Lock databases when session is locked or lid is closed - Oturum kilitlendiÄŸinde ya da kapak kapatıldığında veritabanları kilitlensin + Oturum kilitlendiÄŸinde ya da kapak kapatıldığında veri tabanları kilitlensin Lock databases after minimizing the window - Simge durumuna küçültüldüğünde veritabanları kilitlensin + Simge durumuna küçültüldüğünde veri tabanları kilitlensin Require password repeat when it is visible @@ -580,7 +592,11 @@ Use DuckDuckGo service to download website icons - Web sitesi simgelerini indirmek için DuckDuckGo kullanılsın + Site simgelerini indirmek için DuckDuckGo kullanılsın + + + Hide TOTP in the entry preview panel + Tek kullanımlık parola kayıt ön izleme panosunda gizlensin @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 Çok uzun gecikme algılandı. En fazla %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + Kayıtta PICKCHARS için öznitelik yok: %1 + Invalid conversion type: %1 Dönüşüm türü geçersiz: %1 @@ -686,7 +706,7 @@ AutoTypePlatformX11 Trying to send invalid keysym. - Geçersiz tuÅŸ simgesi gönderilmeye çalışıldı. + Geçersiz keysym deÄŸeri gönderilmeye çalışıldı. Sequence aborted: Caps Lock is on @@ -718,16 +738,16 @@ Ctrl+1 - Type username<br/> Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> - <p>Açık veritabanlarından bir kayıt bulmak için geliÅŸmiÅŸ arama sorguları kullanabilirsiniz. Åžu kısayol tuÅŸları kullanışlıdır:<br/> -Ctrl+F - Veritabanı aramasını deÄŸÅŸitir<br/> + <p>Açık veri tabanlarından bir kayıt bulmak için geliÅŸmiÅŸ arama sorguları kullanabilirsiniz. Åžu kısayol tuÅŸları kullanışlıdır:<br/> +Ctrl+F - Veri tabanı aramasını deÄŸÅŸitir<br/> Ctrl+1 - Kullanıcı adını yaz<br/> Ctrl+2 - Parolayı yaz<br/> Ctrl+3 - Tek kullanımlık parolayı yaz<br/> -Ctrl+4 - Sanal tuÅŸ takımını kullan (yalnız Windows)</p> +Ctrl+4 - Sanal klavyeyi kullan (yalnızca Windows)</p> Search all open databases - Tüm açık veritabanlarında ara + Tüm açık veri tabanlarında ara Search… @@ -767,7 +787,7 @@ Ctrl+4 - Sanal tuÅŸ takımını kullan (yalnız Windows)</p> Use Virtual Keyboard - Sanal tuÅŸ takımını kullan + Sanal klavyeyi kullan @@ -802,15 +822,15 @@ Ctrl+4 - Sanal tuÅŸ takımını kullan (yalnız Windows)</p> Disable for this site - Bu site için devre dışı bırak + Bu site için kapat + + + Undo + Geri al BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser kaydı kaydet - Ok Tamam @@ -822,35 +842,88 @@ Ctrl+4 - Sanal tuÅŸ takımını kullan (yalnız Windows)</p> You have multiple databases open. Please select the correct database for saving credentials. - Çok sayıda açık veritabanı var. -Lütfen kimlik bilgilerinin kaydedileceÄŸi doÄŸru veritabanını seçin. + Çok sayıda açık veri tabanı var. +Lütfen kimlik bilgilerinin kaydedileceÄŸi doÄŸru veri tabanını seçin. + + + KeePassXC - Select Database + KeePassXC - Veri tabanını seçme + + + + BrowserPasskeysConfirmationDialog + + Cancel + İptal + + + Update + Güncelle + + + Authenticate + İzin ver + + + Register new + Yeni kaydet + + + Register + Kaydet + + + Timeout in <b>%n</b> seconds... + <b>%n</b> saniye sonra süresi dolacak...<b>%n</b> saniye sonra süresi dolacak... + + + Do you want to register Passkey for: + Åžunun için geçiÅŸ anahtarı kaydetmek ister misiniz: + + + Existing Passkey found. +Do you want to register a new Passkey for: + Var olan bir geçiÅŸ anahtarı bulundu. +Åžunun için yeni bir geçiÅŸ anahtarı kaydetmek ister misiniz: + + + Select the existing Passkey and press Update to replace it. + Var olan geçiÅŸ anahtarını seçin ve deÄŸiÅŸtirmek için Güncelle üzerine basın. + + + Authenticate Passkey credentials for: + Åžunun için geçiÅŸ anahtarı kimlik doÄŸrulama bilgilerine izin verilsin: + + + Relying Party: %1 + Güvenilen taraf: %1 + + + Username: %1 + Kullanıcı adı: %1 + + + KeePassXC - Passkey credentials + KeePassXC - GeçiÅŸ anahtarı kimlik doÄŸrulama bilgileri BrowserService - - KeePassXC: Create a new group - KeePassXC: Yeni bir grup oluÅŸtur - A request for creating a new group "%1" has been received. Do you want to create this group? - "%1" adında yeni bir grup oluÅŸturma isteÄŸi alındı. -Bu grubun oluÅŸturulmasını ister misiniz? + "%1" adında yeni bir grup ekleme isteÄŸi alındı. +Bu grubun eklenmesini ister misiniz? - - KeePassXC: New key association request - KeePassXC: Yeni anahtar iliÅŸkilendirme isteÄŸi - You have received an association request for the following database: %1 Give the connection a unique name or ID, for example: chrome-laptop. - Åžu veritabanı için bir iliÅŸkilendirme isteÄŸi aldınız: + Åžu veri tabanı için bir iliÅŸkilendirme isteÄŸi aldınız: %1 BaÄŸlantıya eÅŸsiz bir ad ya da kimlik verin. Örnek: @@ -860,28 +933,16 @@ linux-laptop. Save and allow access Kaydet ve eriÅŸime izin ver - - KeePassXC: Overwrite existing key? - KeePassXC: Var olan anahtarın üzerine yazılsın mı? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? "%1" adıyla paylaşılan bir ÅŸifreleme anahtarı zaten var. Üzerine yazılmasını ister misiniz? - - KeePassXC: Update Entry - KeePassXC: Kaydı güncelle - Do you want to update the information in %1 - %2? %1 -%2 bilgilerini güncellemek istiyor musunuz? - - KeePassXC: Delete entry - KeePassXC: Kaydı sil - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -891,50 +952,46 @@ Bu kaydın silinmesini ister misiniz? - Converting attributes to custom data… - Öznitelikler özel verilere dönüştürüyor… + %1 (Passkey) + %1 (geçiÅŸ anahtarı) - Abort - Vazgeç + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + Kaydın zaten bir geçiÅŸ anahtarı kaydı var. +%1 - %2 geçiÅŸ anahtarı kaydını deÄŸiÅŸtirmek istiyor musunuz? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Dönüştürülmüş KeePassHTTP öznitelikleri + KeePassXC - Create a new group + KeePassXC - Yeni bir grup ekle - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - %1 kaydın öznitelikleri dönüştürüldü. -%2 anahtar özel verilere taşındı. - - - Successfully moved %n keys to custom data. - %n anahtar özel verilere taşındı.%n anahtar özel verilere taşındı. + Disable + Kapat - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: KeePassHTTP özniteliklerine uyan bir kayıt bulunamadı! + KeePassXC - Overwrite existing key? + KeePassXC - Var olan anahtarın üzerine yazılsın mı? - The active database does not contain an entry with KeePassHTTP attributes. - Etkin veritabanında KeePassHTTP özniteliklerine uyan bir kayıt bulunamadı. + KeePassXC - Update Passkey + KeePassXC - GeçiÅŸ anahtarı kaydını güncelle - Don't show this warning again - Bu uyarı bir daha görüntülenmesin + KeePassXC - Update Entry + KeePassXC - Kaydı güncelle - KeePassXC: Legacy browser integration settings detected - KeePassXC: Eski tarayıcı bütünleÅŸme ayarları algılandı + KeePassXC - Delete entry + KeePassXC - Kaydı sil - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - KeePassXC-Browser ayarlarınızın veritabanı ayarlarına taşınması gerekiyor. -Bu iÅŸlem, var olan tarayıcı baÄŸlantılarınızın korunması için gereklidir. -Åžimdi var olan ayarlarınızı taşımak ister misiniz? + KeePassXC - New key association request + KeePassXC - Yeni anahtar iliÅŸkilendirme isteÄŸi + + + Passkey + GeçiÅŸ anahtarı @@ -945,7 +1002,7 @@ Bu iÅŸlem, var olan tarayıcı baÄŸlantılarınızın korunması için gereklidi This is required for accessing your databases with KeePassXC-Browser - KeePassXC-Browser tarafından veritabanlarınıza eriÅŸilmesi için gereklidir. + KeePassXC-Browser tarafından veri tabanlarınıza eriÅŸilmesi için gereklidir. Enable browser integration @@ -998,11 +1055,11 @@ Bu iÅŸlem, var olan tarayıcı baÄŸlantılarınızın korunması için gereklidi Request to unlock the database if it is locked - Veritabanı kilitliyse, kilidin açılması istensin + Veri tabanı kilitliyse, kilidin açılması istensin Only entries with the same scheme (http://, https://, …) are returned. - Yalnız aynı baÄŸlantıya uygun (http://, https://, …) sonuçlar döndürülür. + Yalnızca aynı baÄŸlantıya uygun (http://, https://, …) sonuçlar döndürülür. Match URL scheme (e.g., https://example.com) @@ -1010,11 +1067,11 @@ Bu iÅŸlem, var olan tarayıcı baÄŸlantılarınızın korunması için gereklidi Only returns the best matches for a specific URL instead of all entries for the whole domain. - Etki alanındaki tüm kayıtlar yerine yalnız belirli bir adrese uygun olan kayıtları döndürür. + Etki alanındaki tüm kayıtlar yerine yalnızca belirli bir adrese uygun olan kayıtları döndürür. Return only best-matching credentials - Yalnız en uygun kimlik bilgileri döndürülsün + Yalnızca en uygun kimlik bilgileri döndürülsün Returns expired credentials. String [expired] is added to the title. @@ -1026,12 +1083,12 @@ Bu iÅŸlem, var olan tarayıcı baÄŸlantılarınızın korunması için gereklidi All databases connected to the extension will return matching credentials. - Uzantıya baÄŸlı tüm veritabanları uyan kimlik bilgilerini döndürür. + Eklentiye baÄŸlı tüm veri tabanları uyan kimlik bilgilerini döndürür. Search in all opened databases for matching credentials Credentials mean login data requested via browser extension - Tüm açık veritabanlarında uygun kimlik bilgileri aransın + Tüm açık veri tabanlarında uygun kimlik bilgileri aransın Advanced @@ -1124,11 +1181,11 @@ Bu iÅŸlem, var olan tarayıcı baÄŸlantılarınızın korunması için gereklidi Custom extension ID: - Özel uzantı kimliÄŸi: + Özel eklenti kimliÄŸi: Custom extension ID - Özel uzantı kimliÄŸi + Özel eklenti kimliÄŸi Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 @@ -1140,15 +1197,7 @@ Bu iÅŸlem, var olan tarayıcı baÄŸlantılarınızın korunması için gereklidi Please see special instructions for browser extension use below - Lütfen aÅŸağıdan tarayıcı uzantısı kullanımı ile ilgili özel yönergelere bakın - - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Hata:</b> Özel vekil sunucu konumu bulunamadı!<br/>Tarayıcı bütünleÅŸmesi vekil sunucu uygulaması olmadan ÇALIÅžMAZ. - - - <b>Warning:</b> The following options can be dangerous! - <b>Uyarı:</b> AÅŸağıdaki seçenekler tehlikeli olabilir! + Lütfen aÅŸağıdan tarayıcı eklentisi kullanımı ile ilgili özel yönergelere bakın Executable Files @@ -1166,6 +1215,38 @@ Bu iÅŸlem, var olan tarayıcı baÄŸlantılarınızın korunması için gereklidi Select native messaging host folder location Yerel iletiÅŸim sunucusu klasörünün konumunu seçin + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + BaÄŸlı veri tabanlarındaki tüm kayıtların baÅŸlıklarının, adreslerinin ve UUID deÄŸerlerinin keepassxc-proxy tarafından görülmesine izin verir. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + BaÄŸlı veri tabanlarındaki tüm kayıtlara sınırlı eriÅŸim izin verilsin (site eriÅŸim kısıtlamalarını yok sayar) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>Uyarı:</b> Bu ayarları yalnızca gerekli olduÄŸunda deÄŸiÅŸtirin. + + + The custom proxy location does not exist. + Özel vekil sunucu konumu bulunamadı. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Hata:</b> Özel vekil sunucu konumu bulunamadı. Bu sorunu geliÅŸmiÅŸ ayarlar sekmesinden düzeltin. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Hata:</b> KurulmuÅŸ vekil sunucunun çalıştırılan dosyası beklenen konumda deÄŸil: %1<br/>Lütfen geliÅŸmiÅŸ ayarlar bölümünden bir özel vekil sunucu konumu ayarlayın ya da uygulamayı yeniden kurun. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + Deneme amacıyla geçiÅŸ anahtarları ile güvenli olmayan http://localhost kullanılabilsin. + + + Allow using localhost with Passkeys + GeçiÅŸ anahtarları ile localhost kullanılabilsin + CloneDialog @@ -1188,14 +1269,6 @@ Bu iÅŸlem, var olan tarayıcı baÄŸlantılarınızın korunması için gereklidi CsvImportWidget - - Import CSV fields - CSV alanlarını içe aktar - - - filename - dosya adı - size, rows, columns boyut, satır, sütun @@ -1304,50 +1377,29 @@ Bu iÅŸlem, var olan tarayıcı baÄŸlantılarınızın korunması için gereklidi Column %1 %1. sütun - - Imported from CSV file - CSV dosyasından içe aktarıldı - - - Original data: - Özgün veriler: - - - Error(s) detected in CSV file! - CSV dosyasında sorunlar bulundu! - [%n more message(s) skipped] [%n diÄŸer ileti atlandı][%n diÄŸer ileti atlandı] - Error - Hata + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - CSV içe aktarma: Yazıcı hataları var: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n bayt%n bayt - %n row(s) + CSV row count %n satır%n satır %n column(s) + CSV column count %n sütun%n sütun @@ -1368,29 +1420,29 @@ Bu iÅŸlem, var olan tarayıcı baÄŸlantılarınızın korunması için gereklidi Error while reading the database: %1 - Veritabanı okunurken sorun çıktı: %1 + Veri tabanı okunurken sorun çıktı: %1 Could not save, database does not point to a valid file. - Kaydedilemedi. Veritabanı geçerli bir dosyayı göstermiyor. + Kaydedilemedi. Veri tabanı geçerli bir dosyayı göstermiyor. Database save is already in progress. - Veritabanı kaydediliyor. + Veri tabanı kaydediliyor. Could not save, database has not been initialized! - Kaydedilemedi. Veritabanı hazırlanamadı! + Kaydedilemedi. Veri tabanı hazırlanamadı! Database file has unmerged changes. - Veritabanı dosyasında birleÅŸtirilmemiÅŸ deÄŸiÅŸiklikler var. + Veri tabanı dosyasında birleÅŸtirilmemiÅŸ deÄŸiÅŸiklikler var. %1 Backup database located at %2 %1 -Yedek veritabanının konumu %2 +Yedek veri tabanının konumu %2 Key not transformed. This is a bug, please report it to the developers. @@ -1405,14 +1457,14 @@ Yedek veritabanının konumu %2 DatabaseOpenDialog Unlock Database - KeePassXC - Veritabanı kilidini aç - KeePassXC + Veri tabanı kilidini aç - KeePassXC DatabaseOpenWidget Unlock KeePassXC Database - KeePassXC veritabanının kilidini açın + KeePassXC veri tabanının kilidini açın Enter Password: @@ -1422,43 +1474,13 @@ Yedek veritabanının konumu %2 Password field Parola alanı - - Enter Additional Credentials (if any): - Ek kimlik doÄŸrulama bilgileri verin (varsa): - - - Key File: - Anahtar dosyası: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>Veritabanınızın güvenliÄŸini artırmak için parolaya ek olarak gizli bir dosya kullanabilirsiniz. Bu dosyayı veritabanınızın güvenlik ayarları bölümünden oluÅŸturulabilirsiniz.</p><p>Bu dosya, *.kdbx veritabanı dosyanızdan <strong>farklıdır</strong>. Bir anahtar dosyanız yoksa bu alanı boÅŸ bırakın.<p>Ayrıntılı bilgi almak için tıklayın…</p> - - - Key file help - Anahtar dosyası yardımı - Hardware key slot selection Donanımsal anahtar yuvası seçimi - - Hardware Key: - Donanımsal anahtar: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p> <strong>YubiKey</strong> ya da <strong>OnlyKey</strong> gibi donanımsal güvenlik anahtarlarını HMAC-SHA1 için ayarlanmış yuvalarda kullanabilirsiniz.</p> -<p>Ayrıntılı bilgi almak için tıklayın…</p> - - - Hardware key help - Donanımsal anahtar yardımı - Key file to unlock the database - Veritabanını açacak anahtar dosyası + Veri tabanını açacak anahtar dosyası Browse for key file @@ -1468,17 +1490,9 @@ Yedek veritabanının konumu %2 Browse… Göz at… - - Refresh hardware tokens - Donanımsal doÄŸrulayıcıları yenile - - - Refresh - Yenile - Unlock Database - Veritabanı kilidini aç + Veri tabanı kilidini aç Cancel @@ -1494,7 +1508,7 @@ Yedek veritabanının konumu %2 Database Version Mismatch - Veritabanı sürümü uyuÅŸmazlığı + Veri tabanı sürümü uyuÅŸmazlığı The database you are trying to open was most likely @@ -1504,21 +1518,21 @@ You can try to open it anyway, but it may be incomplete and saving any changes may incur data loss. We recommend you update your KeePassXC installation. - Açmaya çalıştığınız veritabanı büyük olasılıkla daha yeni bir + Açmaya çalıştığınız veri tabanı büyük olasılıkla daha yeni bir KeePassXC sürümü tarafından oluÅŸturulmuÅŸ. -Yine de açmayı deneyebilirsiniz, ancak eksik olabilir ve +Yine de açmayı deneyebilirsiniz. Ancak eksik olabilir ve herhangi bir deÄŸiÅŸikliÄŸi kaydetmek veri kaybına neden olabilir. KeePassXC kurulumunuzu güncellemeniz önerilir. Open database anyway - Veritabanını gene de aç + Veri tabanını gene de aç Database unlock canceled. - Veritabanı kilidinin açılması iptal edildi. + Veri tabanı kilidinin açılması iptal edildi. Unlock failed and no password given @@ -1529,23 +1543,15 @@ KeePassXC kurulumunuzu güncellemeniz önerilir. Do you want to retry with an "empty" password instead? To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. - Veritabanının kilidi açılamadı ve herhangi bir parola yazmadınız. + Veri tabanının kilidi açılamadı ve herhangi bir parola yazmadınız. BoÅŸ bir parola ile yeniden denemek ister misiniz ? -Bu sorunu engellemek için, "Veritabanı ayarları / Güvenlik" bölümüne giderek parolanızı sıfırlayın. +Bu sorunu engellemek için, "Veri tabanı ayarları / Güvenlik" bölümüne giderek parolanızı sıfırlayın. Retry with empty password BoÅŸ parola ile yeniden dene - - Failed to authenticate with Windows Hello - Windows Hello ile kimlik doÄŸrulanamadı - - - Failed to authenticate with Touch ID - Touch ID ile kimlik doÄŸrulanamadı - Failed to open key file: %1 Anahtar dosyası açılamadı: %1 @@ -1556,7 +1562,7 @@ Bu sorunu engellemek için, "Veritabanı ayarları / Güvenlik" bölü You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> - KeePassXC tarafından gelecekte desteklenmeyebilecek<br> eski bir anahtar dosyası biçimi kullanıyorsunuz.<br><br>Lütfen ÅŸuradan yeni bir anahtar dosyası oluÅŸturmayı deÄŸerlendirin:<br><strong>Veritabanı &gt; Veritabanı güvenliÄŸi &gt; Anahtar dosyasını deÄŸiÅŸtir.</strong><br> + KeePassXC tarafından gelecekte desteklenmeyebilecek<br> eski bir anahtar dosyası biçimi kullanıyorsunuz.<br><br>Lütfen ÅŸuradan yeni bir anahtar dosyası oluÅŸturmayı deÄŸerlendirin:<br><strong>Veri tabanı &gt; Veri tabanı güvenliÄŸi &gt; Anahtar dosyasını deÄŸiÅŸtir.</strong><br> Don't show this warning again @@ -1576,25 +1582,67 @@ Bu sorunu engellemek için, "Veritabanı ayarları / Güvenlik" bölü Cannot use database file as key file - Veritabanı dosyası anahtar dosyası olarak kullanılamaz + Veri tabanı dosyası anahtar dosyası olarak kullanılamaz - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Veritabanı dosyanızı bir anahtar dosyası olarak kullanamazsınız. -Bir anahtar dosyanız yoksa, lütfen alanı boÅŸ bırakın. + authenticate to access the database + veri tabanına eriÅŸim kimlik doÄŸrulaması - Detecting hardware keys… - Donanımsal anahtarlar algılanıyor… + Failed to authenticate with Quick Unlock: %1 + Hızlı kilit açma için kimlik doÄŸrulanamadı: %1 - No hardware keys detected - Herhangi bir donanımsal anahtar algılanamadı + Select Key File: + Anahtar dosyasını seçin: - Select hardware key… - Donanımsal anahtarı seçin… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + <p>Veri tabanınızın güvenliÄŸini artırmak için parolaya ek olarak gizli bir dosya kullanabilirsiniz. Bu dosyayı veri tabanınızın güvenlik ayarları bölümünden oluÅŸturabilirsiniz.</p><p>Bu dosya, *.kdbx veri tabanı dosyanız <strong>deÄŸildir</strong>. + + + Click to add a key file. + Bir anahtar dosyası eklemek için tıklayın. + + + <a href="#" style="text-decoration: underline">I have a key file</a> + <a href="#" style="text-decoration: underline">Bir anahtar dosyam var</a> + + + Use hardware key [Serial: %1] + Donanımsal anahtar kullanılsın [Seri: %1] + + + Use hardware key + Donanımsal anahtar kullanılsın + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + Veri tabanı dosyanız bir anahtar dosyası DEĞİLDİR! +Anahtar dosyanız yoksa ya da ne olduÄŸunu bilmiyorsanız bir ÅŸey seçmek zorunda deÄŸilsiniz. + + + KeePassXC database file selected + KeePassXC veri tabanı dosyası seçilmiÅŸ + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + SeçtiÄŸiniz dosya bir veri tabanı dosyası gibi görünüyor. +Bir veri tabanı dosyası bir anahtar dosyası DEĞİLDİR! + +Bu dosya ile ilerlemek istediÄŸinize emin misiniz? + + + No hardware keys found. + Herhangi bir donanımsal anahtar bulunamadı. + + + Refresh Hardware Keys + Donanımsal anahtarları yenile @@ -1606,10 +1654,6 @@ Bir anahtar dosyanız yoksa, lütfen alanı boÅŸ bırakın. DatabaseSettingsDialog - - Advanced Settings - GeliÅŸmiÅŸ ayarlar - General Genel @@ -1620,7 +1664,7 @@ Bir anahtar dosyanız yoksa, lütfen alanı boÅŸ bırakın. Database Credentials - Veritabanı kimlik doÄŸrulama bilgileri + Veri tabanı kimlik doÄŸrulama bilgileri Encryption Settings @@ -1641,18 +1685,6 @@ Bir anahtar dosyanız yoksa, lütfen alanı boÅŸ bırakın. KeePassXC-Browser settings KeePassXC-Browser ayarları - - Convert KeePassHTTP data - KeePassHTTP verilerini dönüştür - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - Eski KeePassHTTP öznitelikleri KeePassXC-Browser uyumlu özel verilere taşınsın - - - Refresh database root group ID - Veritabanı kök grup kimliÄŸini yenile - Disconnect all browsers Tüm tarayıcıların baÄŸlantısını kes @@ -1661,6 +1693,10 @@ Bir anahtar dosyanız yoksa, lütfen alanı boÅŸ bırakın. Forget all site-specific settings on entries Kayıtlardaki tüm siteye özgü ayarlar unutulsun + + Refresh database root group ID + Veri tabanı kök grup kimliÄŸini yenile + Stored keys KaydedilmiÅŸ anahtarlar @@ -1684,8 +1720,8 @@ Bir anahtar dosyanız yoksa, lütfen alanı boÅŸ bırakın. Do you really want to delete the selected key? This may prevent connection to the browser plugin. - SeçilmiÅŸ anahtarı kaldırmak istediÄŸinizden emin misiniz? -Bu iÅŸlem, tarayıcı uzantısı ile baÄŸlantı kurulmasını engelleyebilir. + SeçilmiÅŸ anahtarı kaldırmak istediÄŸinize emin misiniz? +Bu iÅŸlem, tarayıcı eklentisi ile baÄŸlantı kurulmasını engelleyebilir. Key @@ -1701,26 +1737,18 @@ Bu iÅŸlem, tarayıcı uzantısı ile baÄŸlantı kurulmasını engelleyebilir. Enable Browser Integration to access these settings. - Bu ayarlara eriÅŸmek için tarayıcı bütünleÅŸmesini etkinleÅŸtirin. + Bu ayarlara eriÅŸmek için tarayıcı bütünleÅŸmesini açın. Do you really want to disconnect all browsers? This may prevent connection to the browser plugin. Tüm tarayıcıların baÄŸlantısını kesmek istiyor musunuz? -Bu iÅŸlem, tarayıcı uzantısının baÄŸlantı kurmasını engelleyebilir. - - - KeePassXC: No keys found - KeePassXC: Herhangi bir anahtar bulunamadı +Bu iÅŸlem, tarayıcı eklentisinin baÄŸlantı kurmasını engelleyebilir. No shared encryption keys found in KeePassXC settings. KeePassXC ayarlarında paylaşılan bir ÅŸifreleme anahtarı bulunamadı. - - KeePassXC: Removed keys from database - KeePassXC: Anahtarlar veritabanından kaldırıldı - Successfully removed %n encryption key(s) from KeePassXC settings. %n ÅŸifreleme anahtarı KeePassXC ayarlarından kaldırıldı.%n ÅŸifreleme anahtarı KeePassXC ayarlarından kaldırıldı. @@ -1739,41 +1767,43 @@ Kayıtlara eriÅŸme izinleri kaldırılacak. Abort İptal - - KeePassXC: Removed permissions - KeePassXC: İzinler kaldırıldı - Successfully removed permissions from %n entry(s). %n kaydın izinleri kaldırıldı.%n kaydın izinleri kaldırıldı. - - KeePassXC: No entry with permissions found! - KeePassXC: İzni olan bir kayıt bulunamadı! - The active database does not contain an entry with permissions. - Etkin veritabanında, izni olan bir kayıt yok. - - - Move KeePassHTTP attributes to custom data - KeePassHTTP özniteliklerini özel verilere taşı - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - Tüm eski tarayıcı bütünleÅŸme verilerini en son standarda taşımak istediÄŸinize emin misiniz? -Bu iÅŸlem tarayıcı uzantısıyla uyumluluÄŸu korumak için gereklidir. + Etkin veri tabanında, izinleri olan bir kayıt yok. Refresh database ID - Veritabanı kimliÄŸini yenile + Veri tabanı kimliÄŸini yenile Do you really want refresh the database ID? This is only necessary if your database is a copy of another and the browser extension cannot connect. - Veritabanı kimliÄŸini yenilemek istediÄŸiniz emin misiniz? -Bu iÅŸlem yalnız veritabanınız baÅŸka bir veritabanının kopyası ise ve tarayıcı uzantısı baÄŸlanmtı kuramıyorsa gerekir. + Veri tabanı kimliÄŸini yenilemek istediÄŸiniz emin misiniz? +Bu iÅŸlem yalnızca veri tabanınız baÅŸka bir veri tabanının kopyası ise ve tarayıcı eklentisi baÄŸlantı kuramıyorsa gerekir. + + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Eski KeePassHTTP öznitelikleri KeePassXC-Browser uyumlu özel verilere taşınsın + + + No keys found + Herhangi bir anahtar bulunamadı + + + Removed keys from database + Anahtarlar veri tabanından kaldırıldı + + + Removed permissions + İzinler kaldırıldı + + + No entry with permissions found! + İzinleri olan bir kayıt bulunamadı! @@ -1790,7 +1820,7 @@ Bu iÅŸlem yalnız veritabanınız baÅŸka bir veritabanının kopyası ise ve tar WARNING! You have not set a password. Using a database without a password is strongly discouraged! Are you sure you want to continue without a password? - UYARI! Bir parola ayarlamamışsınız. Parolası olmayan bir veritabanını kullanmanız kesinlikle önerilmez! + UYARI! Bir parola ayarlamamışsınız. Parolası olmayan bir veri tabanını kullanmanız kesinlikle önerilmez! Bir parola ayarlamadan ilerlemek istediÄŸinize emin misiniz? @@ -1804,7 +1834,7 @@ Bir parola ayarlamadan ilerlemek istediÄŸinize emin misiniz? You must add at least one encryption key to secure your database! - Veritabanınızı korumak için en az bir ÅŸifreleme anahtarı eklemelisiniz! + Veri tabanınızı korumak için en az bir ÅŸifreleme anahtarı eklemelisiniz! Unknown error @@ -1812,7 +1842,19 @@ Bir parola ayarlamadan ilerlemek istediÄŸinize emin misiniz? Failed to change database credentials - Veritabanı kimlik doÄŸrulama bilgileri deÄŸiÅŸtirilemedi + Veri tabanı kimlik doÄŸrulama bilgileri deÄŸiÅŸtirilemedi + + + Weak password + Parola kolay + + + You must enter a stronger password to protect your database. + Veri tabanınızı korumak için daha zor bir parola yazmalısınız. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + Bu parola kolay! Bilgilerinizi daha iyi korumak için daha zor bir parola seçmelisiniz. @@ -1821,37 +1863,29 @@ Bir parola ayarlamadan ilerlemek istediÄŸinize emin misiniz? Decryption Time: Åžifre çözme süresi: - - Change existing decryption time - Var olan ÅŸifre çözme süresini deÄŸiÅŸtir - - - Change - DeÄŸiÅŸtir - Decryption time in seconds Saniye olarak ÅŸifre çözme süresi Higher values offer more protection, but opening the database will take longer. - Daha yüksek deÄŸerler daha fazla koruma saÄŸlar. Ancak veritabanını açmak daha uzun sürer. + Daha yüksek deÄŸerler daha fazla koruma saÄŸlar. Ancak veri tabanını açmak daha uzun sürer. Database format: - Veritabanı biçimi: + Veri tabanı biçimi: Database format - Veritabanı biçimi + Veri tabanı biçimi Format cannot be changed: Your database uses KDBX 4 features - Biçim deÄŸiÅŸtirilemez: Veritabanınız KDBX 4 özelliklerini kullanıyor + Biçim deÄŸiÅŸtirilemez: Veri tabanınız KDBX 4 özelliklerini kullanıyor Unless you need to open your database with other programs, always use the latest format. - Veritabanınızı baÅŸka uygulamalarla açmanız gerekmedikçe, her zaman en güncel biçimi kullanın. + Veri tabanınızı baÅŸka uygulamalarla açmanız gerekmedikçe, her zaman en güncel biçimi kullanın. Encryption Algorithm: @@ -1909,11 +1943,6 @@ Bir parola ayarlamadan ilerlemek istediÄŸinize emin misiniz? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - deÄŸiÅŸmedi - Number of rounds too high Key transformation rounds @@ -1925,7 +1954,7 @@ Bir parola ayarlamadan ilerlemek istediÄŸinize emin misiniz? If you keep this number, your database may take hours, days, or even longer to open. Argon2 ile çok yüksek sayıda anahtar dönüştürme turu kullanıyorsunuz. -Bu deÄŸeri kullanmayı sürdürürseniz, veritabanınızın açılması saatler, günler ya da daha uzun sürebilir! +Bu deÄŸeri kullanmayı sürdürürseniz, veri tabanınızın açılması saatler, günler ya da daha uzun sürebilir! Understood, keep number @@ -1946,7 +1975,7 @@ Bu deÄŸeri kullanmayı sürdürürseniz, veritabanınızın açılması saatler, If you keep this number, your database will not be protected from brute force attacks. AES-KDF ile çok düşük sayıda anahtar dönüştürme turu kullanıyorsunuz. -Bu deÄŸeri kullanmayı sürdürürseniz, veritabanınız kaba kuvvet saldırısı ile kolayca açılabilir! +Bu deÄŸeri kullanmayı sürdürürseniz, veri tabanınız kaba kuvvet saldırısı ile kolayca açılabilir! KDF unchanged @@ -1966,6 +1995,18 @@ Bu deÄŸeri kullanmayı sürdürürseniz, veritabanınız kaba kuvvet saldırıs Threads for parallel execution (KDF settings) iÅŸlem iÅŸlem + + Encryption Settings: + Åžifreleme ayarları: + + + Basic + Temel + + + Advanced + GeliÅŸmiÅŸ + DatabaseSettingsWidgetFdoSecrets @@ -1975,7 +2016,7 @@ Bu deÄŸeri kullanmayı sürdürürseniz, veritabanınız kaba kuvvet saldırıs Don't expose this database - Bu veritabanı açığa çıkarılmasın + Bu veri tabanı açığa çıkarılmasın Expose entries under this group: @@ -1990,23 +2031,23 @@ Bu deÄŸeri kullanmayı sürdürürseniz, veritabanınız kaba kuvvet saldırıs DatabaseSettingsWidgetGeneral Database Metadata - Veritabanı üst verileri + Veri tabanı üst verileri Database name: - Veritabanı adı: + Veri tabanı adı: Database name field - Veritabanı ad alanı + Veri tabanı ad alanı Database description: - Veritabanı açıklaması: + Veri tabanı açıklaması: Database description field - Veritabanı açıklama alanı + Veri tabanı açıklama alanı Default username: @@ -2024,18 +2065,10 @@ Bu deÄŸeri kullanmayı sürdürürseniz, veritabanınız kaba kuvvet saldırıs Maximum number of history items per entry Her kayıt için en fazla geçmiÅŸ ögesi sayısı - - Max. history items: - En fazla geçmiÅŸ ögesi: - Maximum size of history per entry Her kayıt için en fazla geçmiÅŸ boyutu - - Max. history size: - En fazla geçmiÅŸ boyutu: - MiB MiB @@ -2046,7 +2079,7 @@ Bu deÄŸeri kullanmayı sürdürürseniz, veritabanınız kaba kuvvet saldırıs Additional Database Settings - Ek veritabanı ayarları + Ek veri tabanı ayarları Enable compression (recommended) @@ -2066,6 +2099,64 @@ Bu iÅŸlem geri alınamaz. (old) (eski) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + Bu ayar kaydedildiÄŸinde ya da bir kayıt +düzenlenirken, bir kayıttaki en eski +geçmiÅŸ ögeleri kaldırılır. Böylece yalnızca +belirtilen sayıda kayıt tutulur + + + Limit the amount of history items per entry to: + Her kayıt için tutulacak geçmiÅŸ ögesi sayısı: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + Bu ayar kaydedildiÄŸinde ya da bir kayıt +düzenlenirken, bir kayıttaki en eski geçmiÅŸ +ögeleri, tutulacak geçmiÅŸ ögelerinin toplamı +en fazla belirtilen sayıda olacak ÅŸekilde kaldırılır. + + + Limit the total size of history items per entry to: + Her kayıt için tutulacak toplam geçmiÅŸ ögesi sayısı: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Kayıtları veri tabanından silmek yerine +çöp kutusu grubuna taşıyın. +Çöp kutusundan silinen kayıtlar +veri tabanından kaldırılır. + + + Autosave delay since last change + Son deÄŸiÅŸiklikten sonraki otomatik kaydetme gecikmesi + + + Autosave delay + Otomatik kaydetme gecikmesi + + + Autosave delay since last change in minutes + Dakika olarak son deÄŸiÅŸiklikten sonraki otomatik kaydetme gecikmesi + + + min + dk + + + Autosave delay since last change checkbox + Son deÄŸiÅŸiklikten sonraki otomatik kaydetme gecikmesi iÅŸaret kutusu + DatabaseSettingsWidgetKeeShare @@ -2139,18 +2230,18 @@ Bu iÅŸlem geri alınamaz. Purged %n icon(s) from the database. - Veritabanından %n simge silindi.Veritabanından %n simge silindi. + Veri tabanından %n simge silindi.Veri tabanından %n simge silindi. DatabaseSettingsWidgetMetaDataSimple Database Name: - Veritabanı adı: + Veri tabanı adı: Database name field - Veritabanı ad alanı + Veri tabanı ad alanı Description: @@ -2158,24 +2249,24 @@ Bu iÅŸlem geri alınamaz. Database description field - Veritabanı açıklama alanı + Veri tabanı açıklama alanı DatabaseTabWidget Database creation error - Veritabanı oluÅŸturma hatası + Veri tabanı oluÅŸturma hatası The created database has no key or KDF, refusing to save it. This is definitely a bug, please report it to the developers. - OluÅŸturulan veritabanı, anahtarı ya da anahtar türetme iÅŸlevi olmadığından kaydedilmedi. + OluÅŸturulan veri tabanı, anahtarı ya da anahtar türetme iÅŸlevi olmadığından kaydedilmedi. Bu kesinlikle bir uygulama hatasıdır. Lütfen geliÅŸtiricilere bildirin. KeePass 2 Database - KeePass 2 veritabanı + KeePass 2 veri tabanı All files @@ -2183,7 +2274,7 @@ Bu kesinlikle bir uygulama hatasıdır. Lütfen geliÅŸtiricilere bildirin. Open database - Veritabanını aç + Veri tabanını aç Failed to open %1. It either does not exist or is not accessible. @@ -2193,29 +2284,13 @@ Bu kesinlikle bir uygulama hatasıdır. Lütfen geliÅŸtiricilere bildirin.CSV file CSV dosyası - - Select CSV file - CSV dosyası seçin - Merge database - Veritabanını birleÅŸtir - - - KeePass 1 database - KeePass 1 veritabanı - - - Open KeePass 1 database - KeePass 1 veritabanı aç - - - Open OPVault - OPVault aç + Veri tabanını birleÅŸtir Export database to CSV file - Veritabanını CSV olarak dışa aktar + Veri tabanını CSV olarak dışa aktar Writing the CSV file failed. @@ -2225,22 +2300,25 @@ Bu kesinlikle bir uygulama hatasıdır. Lütfen geliÅŸtiricilere bildirin.Writing the HTML file failed. HTML dosyası yazılamadı. + + Export database to XML file + Veri tabanını XML dosyasına aktar + + + XML file + XML dosyası + + + Writing the XML file failed + XML dosyası yazılamadı + Export Confirmation Dışa aktarım onayı You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - Veritabanınızı ÅŸifrelenmemiÅŸ bir dosya olarak dışa aktarmak üzeresiniz. Bu iÅŸlem, parolalarınızı ve önemli bilgilerinizi korumasız kılacak! İlerlemek istediÄŸinize emin misiniz? - - - New Database - Yeni veritabanı - - - %1 [New Database] - Database tab name modifier - %1 [Yeni veritabanı] + Veri tabanınızı ÅŸifrelenmemiÅŸ bir dosya olarak dışa aktarmak üzeresiniz. Bu iÅŸlem, parolalarınızı ve önemli bilgilerinizi korumasız kılacak! İlerlemek istediÄŸinize emin misiniz? %1 [Locked] @@ -2251,8 +2329,8 @@ Bu kesinlikle bir uygulama hatasıdır. Lütfen geliÅŸtiricilere bildirin. DatabaseWidget - Database Tags - Veritabanı etiketleri + Searches and Tags + Aramalar ve etiketler Searching… @@ -2302,21 +2380,25 @@ Bu kesinlikle bir uygulama hatasıdır. Lütfen geliÅŸtiricilere bildirin.Expired entries Süresi geçmiÅŸ kayıtlar + + Entries expiring within %1 day(s) + %1 gün içinde süresi geçecek kayıtlar%1 gün içinde süresi geçecek kayıtlar + No current database. - Geçerli bir veritabanı yok. + Geçerli bir veri tabanı yok. No source database, nothing to do. - Kaynak veritabanı olmadığından yapılacak bir ÅŸey yok. + Kaynak veri tabanı olmadığından yapılacak bir ÅŸey yok. Successfully merged the database files. - Veritabanı dosyaları birleÅŸtirildi. + Veri tabanı dosyaları birleÅŸtirildi. Database was not modified by merge operation. - BirleÅŸtirme iÅŸlemi veritabanını deÄŸiÅŸtirmedi. + BirleÅŸtirme iÅŸlemi veri tabanını deÄŸiÅŸtirmedi. Search Results (%1) @@ -2326,9 +2408,21 @@ Bu kesinlikle bir uygulama hatasıdır. Lütfen geliÅŸtiricilere bildirin.No Results Uygun bir sonuç bulunamadı + + Save + Kaydet + + + Enter a unique name or overwrite an existing search from the list: + EÅŸsiz bir ad yazın ya da listede var olan bir aramayı deÄŸiÅŸtirin: + + + Save Search + Aramayı kaydet + Lock Database? - Veritabanı kilitlensin mi? + Veri tabanı kilitlensin mi? You are editing an entry. Discard changes and lock anyway? @@ -2343,7 +2437,7 @@ DeÄŸiÅŸiklikler kaydedilsin mi? Database was modified. Save changes? - Veritabanı deÄŸiÅŸtirilmiÅŸ. + Veri tabanı deÄŸiÅŸtirilmiÅŸ. DeÄŸiÅŸiklikler kaydedilsin mi? @@ -2356,7 +2450,7 @@ DeÄŸiÅŸiklikler kaydedilsin mi? The database file has changed. Do you want to load the changes? - Veritabanı dosyası deÄŸiÅŸtirilmiÅŸ. DeÄŸiÅŸiklikleri yüklemek ister misiniz? + Veri tabanı dosyası deÄŸiÅŸtirilmiÅŸ. DeÄŸiÅŸiklikleri yüklemek ister misiniz? Merge Request @@ -2365,28 +2459,28 @@ DeÄŸiÅŸiklikler kaydedilsin mi? The database file has changed and you have unsaved changes. Do you want to merge your changes? - Veritabanı dosyası deÄŸiÅŸtirilmiÅŸ ve kaydedilmemiÅŸ deÄŸiÅŸiklikleriniz var. + Veri tabanı dosyası deÄŸiÅŸtirilmiÅŸ ve kaydedilmemiÅŸ deÄŸiÅŸiklikleriniz var. DeÄŸiÅŸikliklerinizi birleÅŸtirmek ister misiniz? Could not open the new database file while attempting to autoreload. Error: %1 - Otomatik yüklenmeye çalışılırken yeni veritabanı dosyası açılamadı. + Otomatik yüklenmeye çalışılırken yeni veri tabanı dosyası açılamadı. Hata: %1 Disable safe saves? - Güvenli kaydetme devre dışı bırakılsın mı? + Güvenli kaydetme kapatılsın mı? KeePassXC has failed to save the database multiple times. This is likely caused by file sync services holding a lock on the save file. Disable safe saves and try again? - KeePassXC birkaç kez veritabanını kaydedemedi. Bu durum genellikle kaydedilen bir dosyayı kilitleyen dosya eÅŸitleme hizmetlerinden kaynaklanır. -Güvenli kaydetme devre dışı bırakılarak yeniden denensin mi? + KeePassXC birkaç kez veri tabanını kaydedemedi. Bu durum genellikle kaydedilen bir dosyayı kilitleyen dosya eÅŸitleme hizmetlerinden kaynaklanır. +Güvenli kaydetme kapatılarak yeniden denensin mi? Writing the database failed: %1 - Veritabanına yazılamadı: %1 + Veri tabanına yazılamadı: %1 Passwords @@ -2394,15 +2488,15 @@ Güvenli kaydetme devre dışı bırakılarak yeniden denensin mi? Save database as - Veritabanını farklı kaydet + Veri tabanını farklı kaydet KeePass 2 Database - KeePass 2 veritabanı + KeePass 2 veri tabanı Save database backup - Veritabanı yedeÄŸini kaydet + Veri tabanı yedeÄŸini kaydet Empty recycle bin? @@ -2414,11 +2508,16 @@ Güvenli kaydetme devre dışı bırakılarak yeniden denensin mi? Could not find database file: %1 - Veritabanı dosyası bulunamadı: %1 + Veri tabanı dosyası bulunamadı: %1 - - Entries expiring within %1 day(s) - %1 gün içinde süresi geçecek kayıtlar%1 gün içinde süresi geçecek kayıtlar + + New Database + Yeni veri tabanı + + + %1 [New Database] + Database tab name modifier + %1 [Yeni veri tabanı] @@ -2502,8 +2601,8 @@ Güvenli kaydetme devre dışı bırakılarak yeniden denensin mi? An external merge operation has invalidated this entry. Unfortunately, any changes made have been lost. - Bu kayıt bir dış birleÅŸtirme iÅŸlemi ile devre dışı bırakılmış. -Maalesef yapılmış deÄŸiÅŸiklikler kaybolacak. + Bu kayıt bir dış birleÅŸtirme iÅŸlemi ile geçersiz kılınmış. +Ne yazık ki yapılmış deÄŸiÅŸiklikler kaybolacak. Auto-Type Validation Error @@ -2561,6 +2660,10 @@ Düzeltmek ister misiniz? Hide Gizle + + %n hour(s) + %n saat%n saat + %n week(s) %n hafta%n hafta @@ -2573,10 +2676,6 @@ Düzeltmek ister misiniz? %n year(s) %n yıl%n yıl - - %n hour(s) - %n saat%n saat - EditEntryWidgetAdvanced @@ -2642,7 +2741,7 @@ Düzeltmek ister misiniz? Exclude from database reports - Veritabanını raporlarına katılmasın + Veri tabanı raporlarına katılmasın Foreground Color: @@ -2695,10 +2794,20 @@ Düzeltmek ister misiniz? Add new window association Yeni pencere iliÅŸkilendirmesi ekle + + + + Add item + + + Remove selected window association SeçilmiÅŸ pencere iliÅŸkilendirmesini kaldır + + - + Remove item + - + Window title: Pencere baÅŸlığı: @@ -2723,22 +2832,12 @@ Düzeltmek ister misiniz? Custom Auto-Type sequence for this window Bu pencere için özel otomatik yazma sırası - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser These settings affect to the entry's behaviour with the browser extension. - Bu ayarlar, kaydın tarayıcı uzantısındaki davranışını etkiler. + Bu ayarlar, kaydın tarayıcı eklentisindeki davranışını etkiler. General @@ -2746,7 +2845,7 @@ Düzeltmek ister misiniz? Hide this entry from the browser extension - Bu kayıt tarayıcı uzantısında gizlensin + Bu kayıt tarayıcı eklentisinde gizlensin Skip Auto-Submit for this entry @@ -2754,15 +2853,15 @@ Düzeltmek ister misiniz? Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. - Bu ayar tarayıcıya yalnız HRRP Auth pencereleri için gönderilir. Bu seçenek etkinleÅŸtirildiÄŸinde, bu kayıt normal oturum açma formlarında seçilmek üzere görüntülenmez. + Bu ayar tarayıcıya yalnızca HRRP Auth pencereleri için gönderilir. Bu seçenek açıldığında, bu kayıt normal oturum açma formlarında seçilmek üzere görüntülenmez. Use this entry only with HTTP Basic Auth - Bu kayıt yalnız HTTP temel kimlik doÄŸrulaması ile kullanılsın + Bu kayıt yalnızca HTTP temel kimlik doÄŸrulaması ile kullanılsın Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. - Bu ayar tarayıcıya HTTP kimlik doÄŸrulama pencereleri için gönderilmez. Bu seçenek etkinleÅŸtirildiÄŸinde, bu kayıt HTTP kimlik doÄŸrulama pencerelerinde seçilmek üzere görüntülenmez. + Bu ayar tarayıcıya HTTP kimlik doÄŸrulama pencereleri için gönderilmez. Bu seçenek açıldığında, bu kayıt HTTP kimlik doÄŸrulama pencerelerinde seçilmek üzere görüntülenmez. Do not use this entry with HTTP Basic Auth @@ -2834,22 +2933,10 @@ Düzeltmek ister misiniz? Notes field Notlar alanı - - Toggle the checkbox to reveal the notes section. - Notlar bölümünün görüntülenmesi için kutu iÅŸaretini deÄŸiÅŸtirin. - Username field Kullanıcı adı alanı - - Toggle notes visible - Notların görünürlüğünü deÄŸiÅŸtir - - - Notes: - Notlar - Expiration field Geçerlilik sonu alanı @@ -2866,14 +2953,6 @@ Düzeltmek ister misiniz? Presets Hazır ayarlar - - Password: - Parola: - - - URL: - Adres: - Url field Adres alanı @@ -2882,18 +2961,10 @@ Düzeltmek ister misiniz? Download favicon for URL Adresin site simgesini indir - - Title: - BaÅŸlık: - Title field BaÅŸlık alanı - - Username: - Kullanıcı adı: - Password field Parola alanı @@ -2902,18 +2973,42 @@ Düzeltmek ister misiniz? Toggle expiration Geçerlilik sonunu aç/kapat - - Expires: - Geçerlilik sonu: - - - Tags: - Etiketler: - Tags list Etiket listesi + + &Username: + &Kullanıcı adı: + + + &Title: + &BaÅŸlık: + + + &Password: + &Parola: + + + UR&L: + &Adres: + + + &Notes: + &Notlar: + + + Toggle notes visibility + Notların görünürlüğünü deÄŸiÅŸtir + + + T&ags: + &Etiketler: + + + &Expires: + &Geçerlilik sonu: + EditEntryWidgetSSHAgent @@ -2923,7 +3018,7 @@ Düzeltmek ister misiniz? Remove key from agent when database is closed/locked - Veritabanı kapalıyken/kilitliyken anahtar uygulamadan kaldırılsın + Veri tabanı kapalıyken/kilitliyken anahtar uygulamadan kaldırılsın Comment @@ -2931,7 +3026,7 @@ Düzeltmek ister misiniz? Add key to agent when database is opened/unlocked - Veritabanı açıkken/kilitlenmemiÅŸken anahtar uygulamaya eklensin + Veri tabanı açıkken/kilitlenmemiÅŸken anahtar uygulamaya eklensin Decrypt @@ -2953,19 +3048,6 @@ Düzeltmek ister misiniz? Private key KiÅŸisel anahtar - - External file - Dış dosya - - - Browser for key file - Anahtar dosyası için tarayıcı - - - Browse… - Button for opening file dialog - Göz at… - Attachment Ek dosya @@ -2982,6 +3064,23 @@ Düzeltmek ister misiniz? Remove from agent Uygulamadan kaldır + + External file + Dış dosya + + + Browser for key file + Anahtar dosyası için tarayıcı + + + Browse… + Button for opening file dialog + Göz at… + + + Generate + OluÅŸtur + Select attachment file Ek dosyayı seç @@ -3017,10 +3116,6 @@ Düzeltmek ister misiniz? Icon Simge - - Browser Integration - Tarayıcı bütünleÅŸmesi - Properties Özellikler @@ -3037,13 +3132,17 @@ Düzeltmek ister misiniz? Group has unsaved changes Grupta kaydedilmemiÅŸ deÄŸiÅŸiklikler var + + Browser Integration + Tarayıcı bütünleÅŸmesi + Enable - EtkinleÅŸtir + Aç Disable - Devre dışı bırak + Kapat Inherit from parent group (%1) @@ -3052,21 +3151,17 @@ Düzeltmek ister misiniz? EditGroupWidgetBrowser - - Edit Group - Grubu düzenle - These settings affect to the group's behaviour with the browser extension. - Bu ayarlar, grubun tarayıcı uzantısındaki davranışını etkiler. + Bu ayarlar, grubun tarayıcı eklentisindeki davranışını etkiler. Hide entries from browser extension: - Tarayıcı uzantısında gizlenecek kayıtlar: + Tarayıcı eklentisinde gizlenecek kayıtlar: Hide entries from browser extension toggle for this and sub groups - Kayıtlar bu grup ve alt gruplarında tarayıcı uzantısından gizlenir + Kayıtlar bu grup ve alt gruplarında tarayıcı eklentisinden gizlenir Skip Auto-Submit for entries: @@ -3082,7 +3177,7 @@ Düzeltmek ister misiniz? Only HTTP Auth toggle for this and sub groups - Bu grup ve alt gruplarında yalnız HTTP kimlik doÄŸrulaması kullanılır + Bu grup ve alt gruplarında yalnızca HTTP kimlik doÄŸrulaması kullanılır Do not use entries with HTTP Basic Auth: @@ -3092,12 +3187,28 @@ Düzeltmek ister misiniz? Do not use HTTP Auth toggle for this and sub groups Bu grup ve alt gruplarında HTTP kimlik doÄŸrulaması kullanılmaz + + Omit WWW subdomain from matching: + WWW alt etki alanı eÅŸleÅŸmeye katılmasın: + + + Omit WWW subdomain from matching toggle for this and sub groups + Bu alt grupları için WWW alt etki alanının eÅŸleÅŸmeye katılma durumunu deÄŸiÅŸtirir + + + Restrict matching to given browser key: + EÅŸleÅŸme belirtilen tarayıcı anahtarı ile kısıtlansın: + + + Restrict matching to given browser key toggle for this and sub groups + EÅŸleÅŸmeyi belirtilen tarayıcı anahtarı ile kısıtlama bu ve alt grupları için deÄŸiÅŸtirilsin + EditGroupWidgetKeeShare Sharing mode field - PaylaÅŸma kipi alanı + Paylaşım kipi alanı Password field @@ -3137,7 +3248,7 @@ Düzeltmek ister misiniz? Inactive - Devre dışı + Etkisiz Import @@ -3155,32 +3266,32 @@ Düzeltmek ister misiniz? Your KeePassXC version does not support sharing this container type. Supported extensions are: %1. Kullandığınız KeePassXC sürümü bu kapsayıcı türünün paylaşılmasını desteklemiyor. -Desteklenen uzantılar: %1. +Desteklenen eklentiler: %1. %1 is already being exported by this database. - %1 zaten bu veritabanından dışa aktarılıyor. + %1 zaten bu veri tabanından dışa aktarılıyor. %1 is already being imported by this database. - %1 zaten bu veritabanı içine aktarılıyor. + %1 zaten bu veri tabanı içine aktarılıyor. %1 is being imported and exported by different groups in this database. - %1 bu veritabanındaki farklı gruplar tarafından içe/dışa aktarılıyor. + %1 bu veri tabanındaki farklı gruplar tarafından içe/dışa aktarılıyor. KeeShare is currently disabled. You can enable import/export in the application settings. KeeShare is a proper noun - KeeShare ÅŸu anda devre dışı. Uygulama ayarları bölümünden içe/dışa aktarmayı etkinleÅŸtirebilirsiniz. + KeeShare ÅŸu anda kapalı. Uygulama ayarları bölümünden içe/dışa aktarmayı açabilirsiniz. Database export is currently disabled by application settings. - Veritabanı dışa aktarma özelliÄŸi uygulama ayarlarından devre dışı bırakılmış. + Veri tabanı dışa aktarma özelliÄŸi uygulama ayarlarından kapatılmış. Database import is currently disabled by application settings. - Veritabanı içe aktarma özelliÄŸi uygulama ayarlarından devre dışı bırakılmış. + Veri tabanı içe aktarma özelliÄŸi uygulama ayarlarından kapatılmış. KeeShare container @@ -3306,7 +3417,7 @@ Desteklenen uzantılar: %1. Apply to this group only - Yalnız bu gruba uygula + Yalnızca bu gruba uygula Also apply to child groups @@ -3324,10 +3435,6 @@ Desteklenen uzantılar: %1. Unable to fetch favicon. Site simgesi alınamadı. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - DuckDuckGo site simgesi hizmetini Araçlar -> Ayarlar -> Güvenlik bölümünden etkinleÅŸtirebilirsiniz - Existing icon selected. Var olan simge seçildi. @@ -3354,12 +3461,16 @@ Desteklenen uzantılar: %1. %n icon(s) already exist in the database - %n simge veritabanında zaten var%n simge veritabanında zaten var + %n simge veri tabanında zaten var%n simge veri tabanında zaten var The following icon(s) failed: Åžu simgeler alınamadı:Åžu simgeler alınamadı: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + DuckDuckGo site simgesi hizmetini Uygulama ayarları -> Güvenlik bölümünden açabilirsiniz + EditWidgetProperties @@ -3580,7 +3691,7 @@ Your database may get very large and reduce performance. Are you sure to add this file? %1 büyük bir dosya (%2 MB). -Veritabanının çok büyümesine ve baÅŸarımın düşmesine neden olabilir. +Veri tabanının çok büyümesine ve baÅŸarımın düşmesine neden olabilir. Bu dosyayı eklemek istediÄŸinize emin misiniz? @@ -3592,7 +3703,7 @@ Bu dosyayı eklemek istediÄŸinize emin misiniz? The attachment '%1' was modified. Do you want to save the changes to your database? '%1' ek dosyası deÄŸiÅŸtirildi. -DeÄŸiÅŸiklikleri veritabanına kaydetmek ister misiniz? +DeÄŸiÅŸiklikleri veri tabanına kaydetmek ister misiniz? Saving attachment failed @@ -3798,6 +3909,10 @@ Hata: %1 Has TOTP Tek kullanımlık parola var + + Background Color + Arka plan rengi + EntryPreviewWidget @@ -3818,8 +3933,8 @@ Hata: %1 Parola - Notes - Notlar + URL + Adres Expiration @@ -3838,8 +3953,8 @@ Hata: %1 Kullanıcı adı - URL - Adres + Notes + Notlar Advanced @@ -3889,13 +4004,21 @@ Hata: %1 Never Asla + + Double click to copy value + DeÄŸeri kopyalamak için çift tıklayın + Enabled - Etkin + Açık Disabled - Devre dışı + Kapalı + + + Double click to copy to clipboard + Panoya kopyalamak için çift tıklayın @@ -3904,6 +4027,10 @@ Hata: %1 Invalid URL Geçersiz adres + + Duplicate URL + Adresi kopyala + EntryView @@ -3919,6 +4046,10 @@ Hata: %1 Reset to defaults Varsayılanlara sıfırla + + + %1 entry(s)... + + %1 kayıt...+ %1 kayıt... + ExportDialog @@ -3934,13 +4065,13 @@ Hata: %1 You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! - Veritabanını ÅŸifrelenmemiÅŸ bir dosya olarak dışa aktarmak üzeresiniz. + Veri tabanını ÅŸifrelenmemiÅŸ bir dosya olarak dışa aktarmak üzeresiniz. Bu iÅŸlem, parolalarınızı ve önemli bilgilerinizi korumasız kılacak! database order - veritabanı sıralaması + veri tabanı sıralaması name (ascending) @@ -3956,7 +4087,7 @@ Bu iÅŸlem, parolalarınızı ve önemli bilgilerinizi korumasız kılacak! Export database to HTML file - Veritabanını HTML olarak dışa aktar + Veri tabanını HTML olarak dışa aktar HTML file @@ -3990,7 +4121,7 @@ Bu iÅŸlem, parolalarınızı ve önemli bilgilerinizi korumasız kılacak! Another secret service is running (%1).<br/>Please stop/remove it before re-enabling the Secret Service Integration. - BaÅŸka bir gizli hizmet çalışıyor (%1).<br/>Gizli hizmet bütünleÅŸmesini yeniden etkinleÅŸtirmeden önce bu hizmeti durdurun ya da kaldırın. + BaÅŸka bir gizli hizmet çalışıyor (%1).<br/>Gizli hizmet bütünleÅŸmesini yeniden açmadan önce bu hizmeti durdurun ya da kaldırın. Failed to register DBus service at %1.<br/> @@ -4021,7 +4152,7 @@ Bu iÅŸlem, parolalarınızı ve önemli bilgilerinizi korumasız kılacak! FdoSecrets::Item Entry "%1" from database "%2" was used by %3 - "%2" veritabanındaki "%1" kaydı %3 tarafından kullanıldı + "%2" veri tabanındaki "%1" kaydı %3 tarafından kullanıldı @@ -4101,7 +4232,7 @@ Bu iÅŸlem, parolalarınızı ve önemli bilgilerinizi korumasız kılacak! Having trouble downloading icons? You can enable the DuckDuckGo website icon service in the security section of the application settings. Simgeleri indirmede sorun mu yaşıyorsunuz? -Uygulama ayarlarındaki güvenlik bölümünden DuckDuckGo web sitesi simge hizmetini etkinleÅŸtirin. +Uygulama ayarlarındaki güvenlik bölümünden DuckDuckGo site simge hizmetini açın. Close @@ -4140,6 +4271,147 @@ Uygulama ayarlarındaki güvenlik bölümünden DuckDuckGo web sitesi simge hizm Site simgeleri indiriliyor (%1/%2)… + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Yardımcı sayfası + + + Entry count: %1 + + + + Group + Grup + + + Title + BaÅŸlık + + + Username + Kullanıcı adı + + + Password + Parola + + + Url + + + + + ImportWizardPageSelect + + Form + Form + + + Import File Selection + + + + Password: + Parola: + + + Key File: + Anahtar dosyası: + + + Browse… + Göz at… + + + Import Into: + + + + New Database + Yeni veri tabanı + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + OPVault aç + + + Select import file + + + + All files + Tüm dosyalar + + + Key files + Anahtar dosyaları + + + Select key file + Anahtar dosyasını seçin + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4155,21 +4427,21 @@ Uygulama ayarlarındaki güvenlik bölümünden DuckDuckGo web sitesi simge hizm Kdbx3Reader Missing database headers - Veritabanı üst bilgileri eksik + Veri tabanı üst bilgileri eksik Unable to calculate database key - Veritabanı anahtarı hesaplanamadı + Veri tabanı anahtarı hesaplanamadı Unable to issue challenge-response: %1 - Soru-yanıt gönderilemedi: %1 + Soru/yanıt gönderilemedi: %1 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. Belirtilen kimlik doÄŸrulama bilgileri geçersiz. Lütfen yeniden deneyin. -Bu sorunla yeniden karşılaşırsanız, veritabanı dosyası bozulmuÅŸ olabilir. +Bu sorunla yeniden karşılaşırsanız, veri tabanı dosyası bozulmuÅŸ olabilir. Header doesn't match hash @@ -4197,22 +4469,22 @@ Bu sorunla yeniden karşılaşırsanız, veritabanı dosyası bozulmuÅŸ olabilir Unable to issue challenge-response: %1 - Soru-yanıt gönderilemedi: %1 + Soru/yanıt gönderilemedi: %1 Unable to calculate database key - Veritabanı anahtarı hesaplanamadı + Veri tabanı anahtarı hesaplanamadı Kdbx4Reader missing database headers - veritabanı üst bilgileri eksik + veri tabanı üst bilgileri eksik Unable to calculate database key: %1 - Veritabanı anahtarı hesaplanamadı: %1 + Veri tabanı anahtarı hesaplanamadı: %1 Invalid header checksum size @@ -4226,7 +4498,7 @@ Bu sorunla yeniden karşılaşırsanız, veritabanı dosyası bozulmuÅŸ olabilir Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. Belirtilen kimlik doÄŸrulama bilgileri geçersiz. Lütfen yeniden deneyin. -Bu sorunla yeniden karşılaşırsanız, veritabanı dosyası bozulmuÅŸ olabilir. +Bu sorunla yeniden karşılaşırsanız, veri tabanı dosyası bozulmuÅŸ olabilir. (HMAC mismatch) @@ -4350,7 +4622,7 @@ Bu sorunla yeniden karşılaşırsanız, veritabanı dosyası bozulmuÅŸ olabilir Unable to calculate database key: %1 - Veritabanı anahtarı hesaplanamadı: %1 + Veri tabanı anahtarı hesaplanamadı: %1 Failed to serialize KDF parameters variant map @@ -4406,7 +4678,7 @@ Bu sorunla yeniden karşılaşırsanız, veritabanı dosyası bozulmuÅŸ olabilir Failed to read database file. - Veritabanı dosyası okunamadı. + Veri tabanı dosyası okunamadı. The selected file is an old KeePass 1 database (.kdb). @@ -4415,16 +4687,16 @@ You can import it by clicking on Database > 'Import KeePass 1 database…'. This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. SeçilmiÅŸ dosya eski bir KeePass 1 veri tabanıdır (.kdb). -Veritabanı > İçe aktar… > KeePass 1 veritabanı üzerine tıklayarak içe aktarabilirsiniz. -Bu aktarım tek yönlüdür. İçe aktarılan veritabanını eski KeePassX 0.4 sürümüyle açamazsınız. +Veri tabanı > İçe aktar… > KeePass 1 veri tabanı üzerine tıklayarak içe aktarabilirsiniz. +Bu aktarım tek yönlüdür. İçe aktarılan veri tabanını eski KeePassX 0.4 sürümüyle açamazsınız. Not a KeePass database. - Bir KeePass veritabanı deÄŸil. + Bir KeePass veri tabanı deÄŸil. Unsupported KeePass 2 database version. - Desteklenmeyen KeePass 2 veritabanı sürümü. + Desteklenmeyen KeePass 2 veri tabanı sürümü. @@ -4499,7 +4771,7 @@ Line %2, column %3 No entry uuid found - Kayıdın eÅŸsiz kodu bulunamadı + Kaydın eÅŸsiz kodu bulunamadı History element with different uuid @@ -4574,17 +4846,6 @@ Line %2, column %3 KiÅŸisel anahtar açılamadı - - KeePass1OpenWidget - - Import KeePass1 Database - KeePass 1 veritabanını içe aktar - - - Unable to open the database. - Veritabanı açılamadı. - - KeePass1Reader @@ -4593,7 +4854,7 @@ Line %2, column %3 Not a KeePass database. - Bir KeePass veritabanı deÄŸil. + Bir KeePass veri tabanı deÄŸil. Unsupported encryption algorithm. @@ -4601,7 +4862,7 @@ Line %2, column %3 Unsupported KeePass database version. - KeePass veritabanı sürümü desteklenmiyor. + KeePass veri tabanı sürümü desteklenmiyor. Unable to read encryption IV @@ -4638,7 +4899,7 @@ Line %2, column %3 Unable to calculate database key - Veritabanı anahtarı hesaplanamadı + Veri tabanı anahtarı hesaplanamadı unable to seek to content position @@ -4648,7 +4909,7 @@ Line %2, column %3 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. Belirtilen kimlik doÄŸrulama bilgileri geçersiz. Lütfen yeniden deneyin. -Bu sorunla yeniden karşılaşırsanız, veritabanı dosyası bozulmuÅŸ olabilir. +Bu sorunla yeniden karşılaşırsanız, veri tabanı dosyası bozulmuÅŸ olabilir. Key transformation failed @@ -4656,7 +4917,7 @@ Bu sorunla yeniden karşılaşırsanız, veritabanı dosyası bozulmuÅŸ olabilir Invalid group field type number - Grup alanı türünün numarası geçersiz + Grup alanı türü numarası geçersiz Invalid group field size @@ -4668,31 +4929,31 @@ Bu sorunla yeniden karşılaşırsanız, veritabanı dosyası bozulmuÅŸ olabilir Incorrect group id field size - Grup kodu alanının boyutu hatalı + Grup kodu alanının boyutu uygunsuz Incorrect group creation time field size - Grup oluÅŸturulma zamanı alanının boyutu hatalı + Grup oluÅŸturulma zamanı alanının boyutu uygunsuz Incorrect group modification time field size - Grup deÄŸiÅŸtirilme zamanı alanının boyutu hatalı + Grup deÄŸiÅŸtirilme zamanı alanının boyutu uygunsuz Incorrect group access time field size - Grup eriÅŸilme zamanı alanının boyutu hatalı + Grup eriÅŸilme zamanı alanının boyutu uygunsuz Incorrect group expiry time field size - Grup geçerlilik sonu alanının boyutu hatalı + Grup geçerlilik sonu alanının boyutu uygunsuz Incorrect group icon field size - Grup simge alanının boyutu geçersiz + Grup simge alanının boyutu uygunsuz Incorrect group level field size - Grup düzey alanının boyutu geçersiz + Grup düzey alanının boyutu uygunsuz Invalid group field type @@ -4704,7 +4965,7 @@ Bu sorunla yeniden karşılaşırsanız, veritabanı dosyası bozulmuÅŸ olabilir Missing entry field type number - Kayıt alanının türü numarası eksik + Kayıt alanı türü numarası eksik Invalid entry field size @@ -4767,11 +5028,11 @@ Bu sorunla yeniden karşılaşırsanız, veritabanı dosyası bozulmuÅŸ olabilir Import is disabled in settings - İçe aktarma özelliÄŸi ayarlardan devre dışı bırakılmış + İçe aktarma özelliÄŸi ayarlardan kapatılmış Export is disabled in settings - Dışa aktarma özelliÄŸi ayarlardan devre dışı bırakılmış + Dışa aktarma özelliÄŸi ayarlardan kapatılmış Inactive share @@ -4821,11 +5082,11 @@ Bu sorunla yeniden karşılaşırsanız, veritabanı dosyası bozulmuÅŸ olabilir Generate a new key file or choose an existing one to protect your database. - Veritabanını korumak için yeni bir anahtar dosyası oluÅŸturun ya da var olan birini seçin. + Veri tabanını korumak için yeni bir anahtar dosyası oluÅŸturun ya da var olan birini seçin. Note: Do NOT use a file that may change as that will prevent you from unlocking your database. - Not: Veritabanının kilidinin açılmasını engelleyeceÄŸi için içeriÄŸi deÄŸiÅŸebilecek bir dosya kullanmayın! + Not: Veri tabanının kilidinin açılmasını engelleyeceÄŸi için içeriÄŸi deÄŸiÅŸebilecek bir dosya kullanmayın! Browse for key file @@ -4903,7 +5164,7 @@ Message: %2 You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. - Var olan veritabanını kendi anahtar dosyası olarak kullanamazsınız. Lütfen baÅŸka bir dosya seçin ya da yeni bir anahtar dosyası oluÅŸturun. + Var olan veri tabanını kendi anahtar dosyası olarak kullanamazsınız. Lütfen baÅŸka bir dosya seçin ya da yeni bir anahtar dosyası oluÅŸturun. Suspicious Key File @@ -4912,7 +5173,7 @@ Message: %2 The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. Are you sure you want to continue with this file? - SeçilmiÅŸ anahtar dosyası bir parola veritabanı dosyasına benziyor. Anahtar dosya, içeriÄŸi sabit ve deÄŸiÅŸmeyen bir dosya olmalıdır. Yoksa veritabanına eriÅŸimi sonsuza kadar kaybedersiniz. + SeçilmiÅŸ anahtar dosyası bir parola veri tabanı dosyasına benziyor. Anahtar dosya, içeriÄŸi sabit ve deÄŸiÅŸmeyen bir dosya olmalıdır. Yoksa veri tabanına eriÅŸimi sonsuza kadar kaybedersiniz. Bu dosyayı kullanarak ilerlemek istediÄŸinize emin misiniz? @@ -4935,15 +5196,11 @@ Bu dosyayı kullanarak ilerlemek istediÄŸinize emin misiniz? MainWindow &Database - &Veritabanı + &Veri tabanı &Recent Databases - &Son kullanılan veritabanları - - - &Import - İç&e aktar + &Son kullanılan veri tabanları &Export @@ -4965,6 +5222,10 @@ Bu dosyayı kullanarak ilerlemek istediÄŸinize emin misiniz? TOTP Tek kullanımlık parola + + Tags + Etiketler + &Groups &Gruplar @@ -4995,48 +5256,32 @@ Bu dosyayı kullanarak ilerlemek istediÄŸinize emin misiniz? &Open Database… - &Veritabanı aç… + &Veri tabanı aç… &Save Database - Veritabanını &kaydet + Veri tabanını &kaydet &Close Database - Veritabanını ka&pat + Veri tabanını ka&pat &New Database… - &Yeni veritabanı… - - - Create a new database - Yeni bir veritabanı oluÅŸtur + &Yeni veri tabanı… &Merge From Database… - &Veritabanıyla birleÅŸtir… - - - Merge from another KDBX database - BaÅŸka bir KDBX veritabanıyla birleÅŸtir + &Veri tabanıyla birleÅŸtir… &New Entry… Kayıt &ekle… - - Add a new entry - Yeni kayıt ekle - &Edit Entry… Kaydı &düzenle… - - View or edit entry - Kaydı görüntüle ya da düzenle - &Delete Entry… Kaydı &sil… @@ -5045,10 +5290,6 @@ Bu dosyayı kullanarak ilerlemek istediÄŸinize emin misiniz? &New Group… Grup &ekle… - - Add a new group - Yeni bir grup ekle - &Edit Group… Grubu &düzenle… @@ -5071,27 +5312,19 @@ Bu dosyayı kullanarak ilerlemek istediÄŸinize emin misiniz? Sa&ve Database As… - &Veritabanını farklı kaydet… + &Veri tabanını farklı kaydet… Database &Security… - &Veritabanı güvenliÄŸi… + &Veri tabanı güvenliÄŸi… Database &Reports… - Veritabanı &raporları… - - - Statistics, health check, etc. - İstatistikler, saÄŸlık taraması vb. + Veri tabanı &raporları… &Database Settings… - &Veritabanı ayarları… - - - Database settings - Veritabanı ayarları + &Veri tabanı ayarları… &Clone Entry… @@ -5101,34 +5334,18 @@ Bu dosyayı kullanarak ilerlemek istediÄŸinize emin misiniz? Move u&p &Yukarı taşı - - Move entry one step up - Kaydı bir sıra yukarı taşır - Move do&wn &AÅŸağı taşı - - Move entry one step down - Kaydı bir sıra aÅŸağı taşır - Copy &Username &Kullanıcı adını kopyala - - Copy username to clipboard - Kullanıcı adını panoya kopyala - Copy &Password &Parolayı kopyala - - Copy password to clipboard - Parolayı panoya kopyala - &Settings &Ayarlar @@ -5151,36 +5368,24 @@ Bu dosyayı kullanarak ilerlemek istediÄŸinize emin misiniz? &Lock Database - Veritabanını &kilitle + Veri tabanını &kilitle Lock &All Databases - &Tüm veritabanlarını kilitle + &Tüm veri tabanlarını kilitle &Title &BaÅŸlık - Copy title to clipboard - BaÅŸlığı panoya kopyala - - - &URL - &Adres - - - Copy URL to clipboard - Adresi panoya kopyala + Copy &URL + &Adresi kopyala &Notes &Notlar - - Copy notes to clipboard - Notları panoya kopyala - &CSV File… &CSV dosyası… @@ -5191,28 +5396,16 @@ Bu dosyayı kullanarak ilerlemek istediÄŸinize emin misiniz? KeePass 1 Database… - KeePass 1 veritabanı… - - - Import a KeePass 1 database - KeePass 1 veritabanını içe aktar + KeePass 1 veri tabanı… 1Password Vault… 1Password kasası… - - Import a 1Password Vault - 1Password kasasını içe aktar - CSV File… CSV dosyası… - - Import a CSV file - CSV dosyasını içe aktar - Show TOTP Tek kullanımlık parolayı görüntüle @@ -5229,6 +5422,10 @@ Bu dosyayı kullanarak ilerlemek istediÄŸinize emin misiniz? Copy &TOTP &Tek kullanımlık parolayı kopyala + + Copy Password and TOTP + Parola ve tek kullanımlık parolayı kopyala + E&mpty recycle bin Çöpü b&oÅŸalt @@ -5239,7 +5436,7 @@ Bu dosyayı kullanarak ilerlemek istediÄŸinize emin misiniz? Report a &Bug - Hata &bildir + Hata &bildirin &Getting Started @@ -5253,10 +5450,6 @@ Bu dosyayı kullanarak ilerlemek istediÄŸinize emin misiniz? &Online Help &Çevrimiçi yardım - - Go to online documentation - Çevrimiçi belgelere git - &User Guide &Kullanıcı rehberi @@ -5267,11 +5460,11 @@ Bu dosyayı kullanarak ilerlemek istediÄŸinize emin misiniz? &Keyboard Shortcuts - &TuÅŸ takımı kısayolları + &Klavye kısayolları Save Database Backup… - Veritabanı yedeÄŸi kaydet… + Veri tabanı yedeÄŸi kaydet… Add key to SSH Agent @@ -5325,6 +5518,10 @@ Bu dosyayı kullanarak ilerlemek istediÄŸinize emin misiniz? Clone Group... Grubu kopyala… + + &XML File… + &XML dosyası… + Clear history GeçmiÅŸi temizle @@ -5354,9 +5551,13 @@ Bazı hatalar ve küçük sorunlarla karşılaÅŸabilirsiniz. Bu sürüm deneme a WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard. We recommend you use the AppImage available on our downloads page. - UYARI: Kullandığınız Qt sürümü KeePassXC ekran tuÅŸ takımının çökmesine neden olabilir. + UYARI: Kullandığınız Qt sürümü KeePassXC ekran klavyesinin çökmesine neden olabilir. KeePassXC indirme sayfasında bulunan AppImage paketini kullanmanız önerilir. + + No Tags + Herhangi bir etiket yok + Restore Entry(s) Kaydı geri yükleKayıtları geri yükle @@ -5385,6 +5586,10 @@ KeePassXC indirme sayfasında bulunan AppImage paketini kullanmanız önerilir.< Quit KeePassXC KeePassXC uygulamasından çık + + %1 Entry(s) + %1 kayıt%1 kayıt + Please present or touch your YubiKey to continue… Lütfen, ilerlemek için YubiKey anahtarını takın ya da üzerindeki düğmeye dokunun… @@ -5395,30 +5600,298 @@ KeePassXC indirme sayfasında bulunan AppImage paketini kullanmanız önerilir.< You must restart the application to apply this setting. Would you like to restart now? - Bu ayarın etkin olması için uygulamayı yeniden baÅŸlatmalısınız. Åžimdi yeniden baÅŸlatmak ister misiniz ? + Bu ayarın açılması için uygulamayı yeniden baÅŸlatmalısınız. Åžimdi yeniden baÅŸlatmak ister misiniz ? + + + Allow Screen Capture + Ekran görüntüsü alınabilsin + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + GeçiÅŸ anahtarları… + + + Import Passkey + GeçiÅŸ anahtarı içe aktar + + + Quit Application + Uygulamadan çık + + + Open About Dialog + Hakkında bilgilerini görüntüle + + + Open Database + Veri tabanını aç + + + Create Database + Veri tabanı oluÅŸtur + + + Merge From Database + Veri tabanından aktar + + + Create Entry + Kayıt ekle + + + Edit Entry + Kaydı düzenle + + + Delete Entry + Kaydı sil + + + Create Group + Grup ekle + + + Edit Group + Grubu düzenle + + + Delete Group + Grubu sil + + + Download All Favicons + Tüm site simgelerini indir + + + Sort Groups A-Z + Grupları sırala A-Z + + + Sort Groups Z-A + Grupları sırala Z-A + + + Save Database As + Veri tabanını farklı kaydet + + + Show Database Security + Veri tabanı güvenliÄŸini görüntüle + + + Show Database Reports + Veri tabanı raporlarını görüntüle + + + Show Database Settings + Veri tabanı ayarlarını görüntüle + + + Show Passkeys + GeçiÅŸ anahtarlarını görüntüle + + + Clone Entry + Kaydı kopyala + + + Move Entry Up + Kaydı yukarı taşı + + + Move Entry Down + Kaydı aÅŸağı taşı + + + Copy Username + Kullanıcı adını kopyala + + + Copy Password + Parolayı kopyala + + + Show Application Settings + Uygulama ayarlarını görüntüle + + + Show Password Generator + Parola oluÅŸturucuyu görüntüle + + + Perform Auto-Type: {USERNAME} + Otomatik yaz: {USERNAME} + + + Perform Auto-Type: {USERNAME}{ENTER} + Otomatik yaz: {USERNAME}{ENTER} + + + Perform Auto-Type: {PASSWORD} + Otomatik yaz: {PASSWORD} + + + Perform Auto-Type: {PASSWORD}{ENTER} + Otomatik yaz: {PASSWORD}{ENTER} + + + Perform Auto-Type: {TOTP} + Otomatik yaz: {TOTP} + + + Copy Title + BaÅŸlığı kopyala + + + Copy URL + Adresi kopyala + + + Copy Notes + Notları kopyala + + + Export to CSV + CSV olarak dışa aktar + + + Export to HTML + HTML olarak dışa aktar + + + Import KeePass1 Database + KeePass 1 veri tabanını içe aktar + + + Import 1Password Vault + 1Password kasasını içe aktar + + + Import CSV File + CSV dosyasından içe aktar + + + Show TOTP QR Code + Tek kullanımlık ya da QR kodu görüntüle + + + Set up TOTP + Tek kullanımlık parolayı ayarla + + + Empty Recycle Bin + Çöp kutusunu boÅŸalt + + + Open Donation Website + Bağış sitesini aç + + + Open Bug Report + Hata bildirimini aç + + + Open Online Documentation + Çevrim içi belgeleri aç + + + Open Keyboard Shortcuts Guide + Klavye kısayolları rehberini aç + + + Save Database Backup + Veri tabanı yedeÄŸini kaydet + + + SSH Agent: Add Key + SSH aracısı: Anahtar ekle + + + SSH Agent: Remove Key + SSH aracısı: Anahtarı kaldır + + + Toggle Compact Mode + Küçük kipi aç/kapat + + + Set Theme: Automatic + Temayı ayarla: Otomatik + + + Set Theme: Light + Temayı ayarla: Açık + + + Set Theme: Dark + Temayı ayarla: Koyu + + + Set Theme: Classic + Temayı ayarla: Klasik + + + Toggle Show Toolbar + Araç çubuÄŸunu görüntüle/gizle + + + Toggle Show Preview Panel + Ön izleme panosunu görüntüle/gizle + + + Toggle Always on Top + Her zaman üstteyi aç/kapat + + + Toggle Hide Usernames + Kullanıcı adlarını görüntüle/gizle + + + Toggle Hide Passwords + Parolaları görüntüle/gizle + + + Export to XML + XML olarak dışa aktar + + + Toggle Allow Screen Capture + Ekran görüntüsü almayı aç/kapat ManageDatabase Database settings - Veritabanı ayarları + Veri tabanı ayarları Edit database settings - Veritabanı ayarlarını düzenle + Veri tabanı ayarlarını düzenle Unlock database - Veritabanı kilidini aç + Veri tabanı kilidini aç Unlock database to show more information - Daha fazla bilgi görmek için veritabanı kilidini açın + Daha fazla bilgi görmek için veri tabanı kilidini açın Lock database - Veritabanını kilitle + Veri tabanını kilitle @@ -5454,26 +5927,6 @@ KeePassXC indirme sayfasında bulunan AppImage paketini kullanmanız önerilir.< Overwriting %1 [%2] %1 [%2] üzerine yazılıyor - - older entry merged from database "%1" - eski kayıt "%1" veritabanıyla birleÅŸtirildi - - - Adding backup for older target %1 [%2] - %1 [%2] eski hedefi için yedek ekleniyor - - - Adding backup for older source %1 [%2] - %1 [%2] eski kaynağı için yedekleme ekleniyor - - - Reapplying older target entry on top of newer source %1 [%2] - %1 [%2] eski hedef kaydı yeni kaynağın üstüne yeniden uygulanıyor - - - Reapplying older source entry on top of newer target %1 [%2] - %1 [%2] eski kaynak kaydı yeni hedefin üstüne yeniden uygulanıyor - Synchronizing from newer source %1 [%2] %1 [%2] yeni kaynaktan eÅŸitleniyor @@ -5511,7 +5964,7 @@ KeePassXC indirme sayfasında bulunan AppImage paketini kullanmanız önerilir.< NewDatabaseWizard Create a new KeePassXC database… - Yeni bir KeePassXC veritabanı oluÅŸtur… + Yeni bir KeePassXC veri tabanı oluÅŸtur… Root @@ -5531,26 +5984,18 @@ KeePassXC indirme sayfasında bulunan AppImage paketini kullanmanız önerilir.< Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - Veritabanı ÅŸifreleme ayarlarını buradan düzenleyebilirsiniz. EndiÅŸelenmeyin, bu ayarları daha sonra veritabanı ayarlarından deÄŸiÅŸtirebilirsiniz. - - - Advanced Settings - GeliÅŸmiÅŸ ayarlar - - - Simple Settings - Temel ayarlar + Veri tabanı ÅŸifreleme ayarlarını buradan düzenleyebilirsiniz. EndiÅŸelenmeyin, bu ayarları daha sonra veri tabanı ayarlarından deÄŸiÅŸtirebilirsiniz. NewDatabaseWizardPageDatabaseKey Database Credentials - Veritabanı kimlik doÄŸrulama bilgileri + Veri tabanı kimlik doÄŸrulama bilgileri A set of credentials known only to you that protects your database. - Veritabanınızı koruyan, yalnız sizin bildiÄŸiniz kimlik doÄŸrulama bilgileri kümesi + Veri tabanınızı koruyan, yalnızca sizin bildiÄŸiniz kimlik doÄŸrulama bilgileri kümesi @@ -5561,18 +6006,18 @@ KeePassXC indirme sayfasında bulunan AppImage paketini kullanmanız önerilir.< Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - Veritabanı ÅŸifreleme ayarlarını buradan düzenleyebilirsiniz. EndiÅŸelenmeyin, bu ayarları daha sonra veritabanı ayarlarından deÄŸiÅŸtirebilirsiniz. + Veri tabanı ÅŸifreleme ayarlarını buradan düzenleyebilirsiniz. EndiÅŸelenmeyin, bu ayarları daha sonra veri tabanı ayarlarından deÄŸiÅŸtirebilirsiniz. NewDatabaseWizardPageMetaData General Database Information - Genel veritabanı bilgileri + Genel veri tabanı bilgileri Please fill in the display name and an optional description for your new database: - Lütfen yeni veritabanı için görüntülenecek bir ad ve isteÄŸe baÄŸlı bir açıklama yazın: + Lütfen yeni veri tabanı için görüntülenecek bir ad ve isteÄŸe baÄŸlı bir açıklama yazın: @@ -5621,15 +6066,6 @@ KeePassXC indirme sayfasında bulunan AppImage paketini kullanmanız önerilir.< %1 bayt düz metin bekleniyordu, %2 bulundu - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Veritabanı okuması bir kopya oluÅŸturmadı -%1 - - OpVaultReader @@ -5703,9 +6139,13 @@ KeePassXC indirme sayfasında bulunan AppImage paketini kullanmanız önerilir.< Unknown cipher: %1 Åžifreleme bilinmiyor: %1 + + AES-256/GCM is currently not supported + AES-256/GCM ÅŸu anda desteklenmiyor + Passphrase is required to decrypt this key - Bu anahtarın ÅŸifresini çözmek için parola gerekiyor + Bu anahtarın ÅŸifresini çözmek için parola ifadesi gerekiyor Key derivation failed: %1 @@ -5729,7 +6169,7 @@ KeePassXC indirme sayfasında bulunan AppImage paketini kullanmanız önerilir.< Decryption failed, wrong passphrase? - Åžifre çözülemedi. Parola yanlış olabilir mi? + Åžifre çözülemedi. Parola ifadesi yanlış olabilir mi? Unexpected EOF while reading key @@ -5769,26 +6209,178 @@ KeePassXC indirme sayfasında bulunan AppImage paketini kullanmanız önerilir.< - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Parola ile onayı aynı deÄŸil + SSH Key Generator + SSH anahtar oluÅŸturucu - Passwords match so far - Parola ile onayı ÅŸimdilik aynı + Type + Tür - Toggle Password (%1) - Parolayı görüntüle/gizle (%1) + Bits + Bit - Generate Password (%1) - Parola oluÅŸtur (%1) + Comment + Yorum + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - GeçiÅŸ anahtarı dışa aktar - Warning: Caps Lock enabled! - Uyarı: Büyük harf kilidine basılmış! + Export the following Passkey entries. + Åžu geçiÅŸ anahtarı kayıtlarını dışa aktar. + + + Filenames will be generated with title and .passkey file extension. + Dosya adları baÅŸlık ve .passkey uzantısı ile oluÅŸturulacak. + + + Export entries + Kayıtları dışa aktar + + + Export Selected + SeçilmiÅŸleri dışa aktar + + + Cancel + İptal + + + Export to folder + Klasöre dışa aktar + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: GeçiÅŸ anahtarı dışa aktarma + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + "%1.passkey" dosyası zaten var. +Üzerine yazılmasını ister misiniz? + + + + Cannot open file + Dosya açılamadı + + + Cannot open file "%1" for writing. + "%1" dosyası yazılmak üzere açılamadı. + + + Cannot write to file + Dosyaya yazılamadı + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - GeçiÅŸ anahtarı içe aktarma + + + Username: %1 + Kullanıcı adı: %1 + + + Group + Grup + + + Database + Veri tabanı + + + Import Passkey + GeçiÅŸ anahtarı içe aktar + + + Import + İçe aktar + + + Cancel + İptal + + + Import the following Passkey: + Åžu geçiÅŸ anahtarı kaydını içe aktar: + + + Entry + Kayıt + + + Import the following Passkey to this entry: + Bu kayıt için ÅŸu geçiÅŸ anahtarı kaydını içe aktar: + + + Create new entry + Yeni kayıt ekle + + + Default Passkeys group (Imported Passkeys) + Varsayılan geçiÅŸ anahtarı grubu (içe aktarılmış geçiÅŸ anahtarları) + + + Relying Party: %1 + Güvenilen taraf: %1 + + + + PasskeyImporter + + Passkey file + GeçiÅŸ anahtarı dosyası + + + All files + Tüm dosyalar + + + Open Passkey file + GeçiÅŸ anahtarı dosyasını açın + + + Cannot open file + Dosya açılamadı + + + Cannot open file "%1" for reading. + "%1" dosyası okunmak üzere açılamadı. + + + Cannot import Passkey + GeçiÅŸ anahtarı içe aktarılamadı + + + Cannot import Passkey file "%1". Data is missing. + "%1" geçiÅŸ anahtarı dosyası içe aktarılamadı. Veriler eksik. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + "%1" geçiÅŸ anahtarı dosyası içe aktarılamadı. KiÅŸisel anahtar eksik ya da bozuk. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + "%1" geçiÅŸ anahtarı dosyası içe aktarılamadı. +Åžu veriler eksik: +%2 @@ -5831,7 +6423,7 @@ KeePassXC indirme sayfasında bulunan AppImage paketini kullanmanız önerilir.< <p>A password is the primary method for securing your database.</p><p>Good passwords are long and unique. KeePassXC can generate one for you.</p> - <p>Parola, veritabanınızın güvenliÄŸini saÄŸlamak için ilk yöntemdir.</p><p>Zor parolalar uzun ve benzersiz olur. KeePassXC sizin için bir parola üretebilir.</p> + <p>Parola, veri tabanınızın güvenliÄŸini saÄŸlamak için ilk yöntemdir.</p><p>Zor parolalar uzun ve benzersiz olur. KeePassXC sizin için bir parola üretebilir.</p> Passwords do not match. @@ -5983,7 +6575,7 @@ KeePassXC indirme sayfasında bulunan AppImage paketini kullanmanız önerilir.< Passphrase - Parola + Parola ifadesi Word Separator: @@ -6053,6 +6645,30 @@ KeePassXC indirme sayfasında bulunan AppImage paketini kullanmanız önerilir.< Entropy: %1 bit Entropi: %1 bit + + Password Quality: %1 + Parola kalitesi: %1 + + + Poor + Password quality + Çok kolay + + + Weak + Password quality + Kolay + + + Good + Password quality + Zor + + + Excellent + Password quality + Çok zor + Confirm Delete Wordlist Sözcük listesini silmeyi onayla @@ -6099,9 +6715,32 @@ Do you want to overwrite it? Special Characters Özel karakterler + + + PasswordWidget - Password Quality: %1 - Parola kalitesi: %1 + Passwords do not match + Parola ile onayı aynı deÄŸil + + + Passwords match so far + Parola ile onayı ÅŸimdilik aynı + + + Toggle Password (%1) + Parolayı görüntüle/gizle (%1) + + + Generate Password (%1) + Parola oluÅŸtur (%1) + + + Warning: Caps Lock enabled! + Uyarı: Büyük harf kilidine basılmış! + + + Quality: %1 + Kalite: %1 Poor @@ -6123,6 +6762,10 @@ Do you want to overwrite it? Password quality Çok zor + + Toggle password visibility using Control + H. Open the password generator using Control + G. + Control + H ile parola görünürlüğünü deÄŸiÅŸtirebilir, Control + G ile parola üretecini açabilirsiniz. + PickcharsDialog @@ -6167,7 +6810,7 @@ Do you want to overwrite it? Disable - Devre dışı bırak + Kapat Merge @@ -6177,16 +6820,20 @@ Do you want to overwrite it? Continue İlerle + + Continue with weak password + Kolay parola ile ilerle + QObject Database not opened - Veritabanı açılmadı + Veri tabanı açılmadı Database hash not available - Veritabanı karması kullanılamıyor + Veri tabanı karması kullanılamıyor Client public key not received @@ -6214,7 +6861,7 @@ Do you want to overwrite it? Incorrect action - Hatalı iÅŸlem + Uygunsuz iÅŸlem Empty message received @@ -6234,7 +6881,7 @@ Do you want to overwrite it? Cannot create new group - Yeni grup oluÅŸturulamadı + Yeni grup eklenemedi No valid UUID provided @@ -6250,7 +6897,7 @@ Do you want to overwrite it? Browser Plugin Failure - Tarayıcı uzantısı sorunu + Tarayıcı eklentisi sorunu Could not save the native messaging script file for %1. @@ -6290,7 +6937,7 @@ Do you want to overwrite it? Add a new entry to a database. - Veritabanına yeni bir kayıt ekle. + Veri tabanına yeni bir kayıt ekle. Path of the entry to add. @@ -6310,7 +6957,7 @@ Do you want to overwrite it? Writing the database failed %1. - %1 veritabanına yazılamadı. + %1 veri tabanına yazılamadı. Successfully added entry %1. @@ -6318,7 +6965,7 @@ Do you want to overwrite it? Adds a new group to a database. - Veritabanına yeni bir grup ekler. + Veri tabanına yeni bir grup ekler. Path of the group to add. @@ -6362,7 +7009,7 @@ Do you want to overwrite it? Evaluating database entries using okon… - Veritabanı kayıtları okon kullanılarak deÄŸerlendiriliyor… + Veri tabanı kayıtları okon kullanılarak deÄŸerlendiriliyor… Failed to open HIBP file %1: %2 @@ -6370,7 +7017,7 @@ Do you want to overwrite it? Evaluating database entries against HIBP file, this will take a while… - Veritabanı kayıtları HIBP dosyası kullanılarak deÄŸerlendiriliyor. Bu iÅŸlem zaman alabilir… + Veri tabanı kayıtları HIBP dosyası kullanılarak deÄŸerlendiriliyor. Bu iÅŸlem zaman alabilir… Password for '%1' has been leaked %2 time(s)! @@ -6471,7 +7118,7 @@ Do you want to overwrite it? Must match only one entry, otherwise a list of possible matches is shown. - Yalnız bir kayıt ile eÅŸleÅŸmelidir. Yoksa olası eÅŸleÅŸmelerin listesi görüntülenir. + Yalnızca bir kayıt ile eÅŸleÅŸmelidir. Yoksa olası eÅŸleÅŸmelerin listesi görüntülenir. Copy an entry's attribute to the clipboard. @@ -6532,7 +7179,7 @@ Do you want to overwrite it? Close the currently opened database. - Åžu anda açık olan veritabanını kapat. + Åžu anda açık olan veri tabanını kapat. Display this help. @@ -6544,7 +7191,7 @@ Do you want to overwrite it? Key file of the database. - Veritabanının anahtar dosyası. + Veri tabanının anahtar dosyası. path @@ -6552,11 +7199,11 @@ Do you want to overwrite it? Deactivate password key for the database. - Veritabanı için parola anahtarını devre dışı bırakır. + Veri tabanı için parola anahtarını etkisizleÅŸtirir. Yubikey slot and optional serial used to access the database (e.g., 1:7370001). - Veritabanına eriÅŸmek için kullanılan Yubikey yuvası ve isteÄŸe baÄŸlı seri numarası (1:7370001 gibi). + Veri tabanına eriÅŸmek için kullanılan Yubikey yuvası ve isteÄŸe baÄŸlı seri numarası (1:7370001 gibi). slot[:serial] @@ -6570,29 +7217,35 @@ Do you want to overwrite it? Too many arguments provided. Gerekenden fazla sayıda deÄŸiÅŸken belirtildi. + + Path of the database. + Veri tabanının yolu. + Target decryption time in MS for the database. - ms olarak veritabanı ÅŸifresini çözme süresi hedefi. + Milisaniye olarak veri tabanı ÅŸifresini çözme süresi hedefi. time zaman + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Veri tabanının anahtar dosyasını ayarla. +Bu seçenekler kullanımdan kaldırıldı. yerine --set-key-file kullanın. + Set the key file for the database. - Veritabanı için anahtar dosyasını belirleyin. + Veri tabanı için anahtar dosyasını belirleyin. Set a password for the database. - Veritabanı için bir parola belirleyin. + Veri tabanı için bir parola belirleyin. Create a new database. - Yeni bir veritabanı oluÅŸtur. - - - Path of the database. - Veritabanının yolu. + Yeni bir veri tabanı oluÅŸtur. Invalid decryption time %1. @@ -6604,7 +7257,7 @@ Do you want to overwrite it? Failed to set database password. - Veritabanı parolası ayarlanamadı. + Veri tabanı parolası ayarlanamadı. Loading the key file failed @@ -6612,7 +7265,7 @@ Do you want to overwrite it? No key is set. Aborting database creation. - Herhangi bir anahtar ayarlanmamış. Veritabanı oluÅŸturulmayacak. + Herhangi bir anahtar ayarlanmamış. Veri tabanı oluÅŸturulmayacak. Benchmarking key derivation function for %1ms delay. @@ -6624,7 +7277,7 @@ Do you want to overwrite it? error while setting database key derivation settings. - veritabanı anahtar türetme ayarları yapılırken sorun çıktı. + veri tabanı anahtar türetme ayarları yapılırken sorun çıktı. File %1 already exists. @@ -6632,15 +7285,167 @@ Do you want to overwrite it? Failed to save the database: %1. - Veritabanı kaydedilemedi: %1. + Veri tabanı kaydedilemedi: %1. Successfully created new database. - Yeni veritabanı oluÅŸturuldu. + Yeni veri tabanı oluÅŸturuldu. + + + Unset the password for the database. + Veri tabanının parolasını kaldır. + + + Unset the key file for the database. + Veri tabanının anahtar dosyasını kaldır. + + + Edit a database. + Bir veri tabanını düzenle. + + + Cannot use %1 and %2 at the same time. + %1 ve %2 aynı anda kullanılamaz. + + + Could not change the database key. + Veri tabanı anahtarı deÄŸiÅŸtirilemedi. + + + Database was not modified. + Veri tabanı deÄŸiÅŸtirilmedi. + + + Writing the database failed: %1 + Veri tabanına yazılamadı: %1 + + + Successfully edited the database. + Veri tabanı düzenlendi. + + + Cannot remove password: The database does not have a password. + Parola kaldırılamadı. Veri tabanının bir parolası yok. + + + Cannot remove file key: The database does not have a file key. + Dosya anahtarı kaldırılamadı. Veri tabanının bir dosya anahtarı yok. + + + Loading the new key file failed: %1 + Yeni anahtar dosyası yüklenemedi: %1 + + + Found unexpected Key type %1 + Beklenmeyen %1 anahtar türü bulundu + + + Cannot remove all the keys from a database. + Bir veri tabanındaki tüm anahtarlar kaldırılamaz. + + + Show a database's information. + Bir veri tabanının bilgilerini görüntüler. + + + UUID: + EÅŸsiz kod: + + + Name: + Ad: + + + Description: + Açıklama: + + + Cipher: + Åžifre: + + + KDF: + Anahtar türetme iÅŸlevi: + + + Recycle bin is enabled. + Çöp kutusu kullanılıyor. + + + Recycle bin is not enabled. + Çöp kutusu kullanılmıyor. + + + Location + Konum + + + Database created + Veri tabanı oluÅŸturuldu + + + Last saved + Son kaydedilme + + + Unsaved changes + KaydedilmemiÅŸ deÄŸiÅŸiklikler + + + yes + evet + + + no + hayır + + + Number of groups + Grup sayısı + + + Number of entries + Kayıt sayısı + + + Number of expired entries + Süresi geçmiÅŸ kayıt sayısı + + + Unique passwords + EÅŸsiz parolalar + + + Non-unique passwords + EÅŸsiz olmayan parolalar + + + Maximum password reuse + Aynı parolanın en fazla kullanımı + + + Number of short passwords + Kısa parola sayısı + + + Number of weak passwords + Kolay parola sayısı + + + Entries excluded from reports + Raporlara katılmayan kayıtlar + + + Average password length + Ortalama parola uzunluÄŸu + + + %1 characters + %1 karakter Word count for the diceware passphrase. - Diceware parolasındaki sözcük sayısı. + Zar atma parola ifadesindeki sözcük sayısı. count @@ -6650,12 +7455,12 @@ Do you want to overwrite it? Wordlist for the diceware generator. [Default: EFF English] - Diceware oluÅŸturucu için sözcük listesi. + Zar atma üreteci için sözcük listesi. [Varsayılan: EFF İngilizce] Generate a new random diceware passphrase. - Yeni bir rastgele diceware parolası oluÅŸtur. + Yeni bir rastgele zar atma parola ifadesi oluÅŸtur. Invalid word count %1 @@ -6689,10 +7494,6 @@ Do you want to overwrite it? Enter new password for entry: Kayıt için yeni parolayı yazın: - - Writing the database failed: %1 - Veritabanına yazılamadı: %1 - Successfully edited entry %1. %1 kaydı düzenlendi. @@ -6819,11 +7620,11 @@ Do you want to overwrite it? Exports the content of a database to standard output in the specified format. - Bir veritabanının içeriÄŸini belirtilen biçimde standart çıkışa aktarır. + Bir veri tabanının içeriÄŸini belirtilen biçimde standart çıkışa aktarır. Unable to export database to XML: %1 - Veritabanı XML olarak dışa aktarılamadı: %1 + Veri tabanı XML olarak dışa aktarılamadı: %1 Unsupported format %1 @@ -6899,123 +7700,23 @@ Do you want to overwrite it? Import the contents of an XML database. - Bir XML veritabanını içe aktarır. + Bir XML veri tabanını içe aktarır. Path of the XML database export. - XML veritabanının dışa aktarılacağı dosya yolu. + XML veri tabanının dışa aktarılacağı dosya yolu. Path of the new database. - Yeni veritabanının yolu. + Yeni veri tabanının yolu. Unable to import XML database: %1 - XML veritabanı içe aktarılamadı: %1 + XML veri tabanı içe aktarılamadı: %1 Successfully imported database. - Veritabanı içe aktarıldı. - - - Show a database's information. - Bir veritabanının bilgilerini görüntüler. - - - UUID: - EÅŸsiz kod: - - - Name: - Ad: - - - Description: - Açıklama: - - - Cipher: - Åžifre: - - - KDF: - Anahtar türetme iÅŸlevi: - - - Recycle bin is enabled. - Çöp kutusu kullanılıyor. - - - Recycle bin is not enabled. - Çöp kutusu kullanılmıyor. - - - Location - Konum - - - Database created - Veritabanı oluÅŸturuldu - - - Last saved - Son kaydedilme - - - Unsaved changes - KaydedilmemiÅŸ deÄŸiÅŸiklikler - - - yes - evet - - - no - hayır - - - Number of groups - Grup sayısı - - - Number of entries - Kayıt sayısı - - - Number of expired entries - Süresi geçmiÅŸ kayıt sayısı - - - Unique passwords - EÅŸsiz parolalar - - - Non-unique passwords - EÅŸsiz olmayan parolalar - - - Maximum password reuse - Aynı parolanın en fazla kullanımı - - - Number of short passwords - Kısa parola sayısı - - - Number of weak passwords - Kolay parola sayısı - - - Entries excluded from reports - Raporlara katılmayan kayıtlar - - - Average password length - Ortalama parola uzunluÄŸu - - - %1 characters - %1 karakter + Veri tabanı içe aktarıldı. Unknown command %1 @@ -7053,7 +7754,7 @@ Kullanılabilecek komutlar: List database entries. - Veritabanı kayıtlarını listele. + Veri tabanı kayıtlarını listele. Path of the group to list. Default is / @@ -7065,15 +7766,15 @@ Kullanılabilecek komutlar: Use the same credentials for both database files. - İki veritabanı dosyası için de aynı kimlik doÄŸrulama bilgileri kullanılır. + İki veri tabanı dosyası için de aynı kimlik doÄŸrulama bilgileri kullanılır. Key file of the database to merge from. - BirleÅŸtirilecek veritabanının anahtar dosyası. + BirleÅŸtirilecek veri tabanının anahtar dosyası. Deactivate password key for the database to merge from. - BirleÅŸtirilecek veritabanının parola anahtarını devre dışı bırakır. + BirleÅŸtirilecek veri tabanının parola anahtarını etkisizleÅŸtirir. Only print the changes detected by the merge operation. @@ -7081,7 +7782,7 @@ Kullanılabilecek komutlar: Yubikey slot for the second database. - İkinci veritabanının Yubikey yuvası. + İkinci veri tabanının Yubikey yuvası. slot @@ -7089,11 +7790,11 @@ Kullanılabilecek komutlar: Merge two databases. - İki veritabanını birleÅŸtir. + İki veri tabanını birleÅŸtir. Path of the database to merge from. - BirleÅŸtirilecek veritabanının yolu. + BirleÅŸtirilecek veri tabanının yolu. Error reading merge file: @@ -7103,15 +7804,15 @@ Kullanılabilecek komutlar: Unable to save database to file : %1 - Veritabanı dosyaya kaydedilemedi: %1 + Veri tabanı dosyaya kaydedilemedi: %1 Successfully merged %1 into %2. - %1 veritabanı %2 ile birleÅŸtirildi. + %1 veri tabanı %2 ile birleÅŸtirildi. Database was not modified by merge operation. - BirleÅŸtirme iÅŸlemi veritabanını deÄŸiÅŸtirmedi. + BirleÅŸtirme iÅŸlemi veri tabanını deÄŸiÅŸtirmedi. Moves an entry to a new group. @@ -7139,7 +7840,7 @@ Kullanılabilecek komutlar: Open a database. - Bir veritabanı açar. + Bir veri tabanı açar. Path of the entry to remove. @@ -7147,7 +7848,7 @@ Kullanılabilecek komutlar: Unable to save database to file: %1 - Veritabanı dosyaya kaydedilemedi: %1 + Veri tabanı dosyaya kaydedilemedi: %1 Successfully recycled entry %1. @@ -7163,7 +7864,7 @@ Kullanılabilecek komutlar: Cannot remove root group from database. - Kök grup veritabanından kaldırılamaz. + Kök grup veri tabanından kaldırılamaz. Successfully recycled group %1. @@ -7189,6 +7890,10 @@ Kullanılabilecek komutlar: Show the protected attributes in clear text. Korumalı öznitelikleri düz metin olarak görüntüler. + + Show all the attributes of the entry. + Kaydın tüm özniteliklerini görüntüler. + Show the attachments of the entry. Kaydın ek dosyalarını görüntüler. @@ -7223,15 +7928,15 @@ Kullanılabilecek komutlar: Failed to open database file %1: not found - %1 veritabanı dosyası açılamadı: Bulunamadı + %1 veri tabanı dosyası açılamadı: Bulunamadı Failed to open database file %1: not a plain file - %1 veritabanı dosyası açılamadı: Basit metin dosyası deÄŸil + %1 veri tabanı dosyası açılamadı: Basit metin dosyası deÄŸil Failed to open database file %1: not readable - %1 veritabanı dosyası açılamadı: Okunamadı + %1 veri tabanı dosyası açılamadı: Okunamadı Enter password to unlock %1: @@ -7259,13 +7964,17 @@ Lütfen bu dosyayı kullanmak yerine yeni bir anahtar dosyası oluÅŸturmayı de Invalid YubiKey serial %1 %1 YubiKey seri numarası geçersiz + + Please present or touch your YubiKey to continue. + Lütfen, ilerlemek için YubiKey anahtarını takın ya da üzerindeki düğmeye dokunun. + Enter password to encrypt database (optional): - Veritabanını ÅŸifrelemek için parolayı yazın (isteÄŸe baÄŸlı): + Veri tabanını ÅŸifrelemek için parolayı yazın (isteÄŸe baÄŸlı): Do you want to create a database with an empty password? [y/N]: - Parolası boÅŸ olan bir veritabanı oluÅŸturmak ister misiniz? [e/H]: + Parolası boÅŸ olan bir veri tabanı oluÅŸturmak ister misiniz? [e/H]: Repeat password: @@ -7311,7 +8020,7 @@ Lütfen bu dosyayı kullanmak yerine yeni bir anahtar dosyası oluÅŸturmayı de Failed to load okon processed database: %1 - Okon tarafından iÅŸlenmiÅŸ veritabanı yüklenemedi: %1 + Okon tarafından iÅŸlenmiÅŸ veri tabanı yüklenemedi: %1 Very weak password @@ -7375,11 +8084,11 @@ Lütfen bu dosyayı kullanmak yerine yeni bir anahtar dosyası oluÅŸturmayı de Debugging mode is disabled. - Hata ayıklama kipi devre dışı. + Hata ayıklama kipi kapalı. Debugging mode is enabled. - Hata ayıklama kipi etkin. + Hata ayıklama kipi açık. Operating system: %1 @@ -7419,7 +8128,7 @@ Kernel: %3 %4 Enabled extensions: - Etkin eklentiler: + Kullanımdaki eklentiler: over %1 year(s) @@ -7446,8 +8155,8 @@ Kernel: %3 %4 %1 dakika%1 dakika - Botan library must be at least 2.11.x, found %1.%2.%3 - Botan kitaplığının sürümü en az2.11.x olmalı. Bulunan: %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + Botan kitaplığının sürümü en az %1 olmalı. Bulunan: %2.%3.%4 Cryptographic libraries: @@ -7471,7 +8180,7 @@ Kernel: %3 %4 Cipher not initialized prior to use. - Åžifre kullanmadan önce hazırlanmadı. + Åžifre kullanılmadan önce hazırlanamadı. Cannot process 0 length data. @@ -7543,7 +8252,7 @@ Kernel: %3 %4 The lock file could not be created. Single-instance mode disabled. - Kilit dosyası oluÅŸturulamadı. Tek kopya kipi devre dışı bırakıldı. + Kilit dosyası oluÅŸturulamadı. Tek kopya kipi kapatıldı. Clearing the clipboard in %1 second(s)… @@ -7665,7 +8374,7 @@ Kernel: %3 %4 filenames of the password databases to open (*.kdbx) - açılacak parola veritabanlarının dosya adları (*.kdbx) + açılacak parola veri tabanlarının dosya adları (*.kdbx) path to a custom config file @@ -7677,32 +8386,32 @@ Kernel: %3 %4 lock all open databases - tüm açık veritabanlarını kilitle + tüm açık veri tabanlarını kilitle key file of the database - veritabanının anahtar dosyası + veri tabanının anahtar dosyası read password of the database from stdin - veritabanının parolası stdin üzerinden okunsun - - - allow app screen recordering and screenshots - uygulamanın ekran kaydı yapmasına ve ekran görüntüleri almasına izin ver + veri tabanının parolası stdin üzerinden okunsun Locked databases. - Kilitli veritabanları. + Kilitli veri tabanları. Database failed to lock. - Veritabanı kilitlenemedi. + Veri tabanı kilitlenemedi. Another instance of KeePassXC is already running. BaÅŸka bir KeePassXC kopyası zaten çalışıyor. + + KeePassXC is not running. No open database to lock + KeePassXC çalışmıyor. Kilitenebilecek bir açık veri tabanı yok + Fatal error while testing the cryptographic functions. Åžifreleme iÅŸlevleri sınanırken ciddi bir sorun çıktı. @@ -7711,13 +8420,9 @@ Kernel: %3 %4 KeePassXC - Error KeePassXC - Hata - - Warning: Failed to prevent screenshots on a top level window! - UYARI: Üst düzey bir pencerede ekran görüntüsü alınması engellenemedi! - Database password: - Veritabanı parolası: + Veri tabanı parolası: Invalid Settings @@ -7738,8 +8443,222 @@ Kernel: %3 %4 Soru Windows Hello kullanılarak imzalanamadı. - Please present or touch your YubiKey to continue. - Lütfen, ilerlemek için YubiKey anahtarını takın ya da üzerindeki düğmeye dokunun. + Warning: Failed to block screenshot capture on a top-level window. + Uyarı: Üst düzey bir pencerede ekran görüntüsü alınması engellenemedi! + + + Invalid Cipher + Åžifreleyici geçersiz + + + Invalid KDF + Anahtar türetme iÅŸlevi geçersiz + + + Access to all entries is denied + Tüm kayıtlara eriÅŸim reddedilsin + + + allow screenshots and app recording (Windows/macOS) + ekran görüntüsü ve uygulama kaydı alınabilsin (Windows/macOS) + + + Enter Shortcut + Kısayolu yazın + + + Action + İşlem + + + Shortcuts + Kısayollar + + + Attestation not supported + Sertifika desteklenmiyor + + + Credential is excluded + Kimlik doÄŸrulama bilgileri katılmadı + + + Passkeys request canceled + GeçiÅŸ anahtarları isteÄŸi iptal edildi + + + Invalid user verification + Kullanıcı doÄŸrulaması geçersiz + + + Empty public key + Herkese açık anahtar boÅŸ + + + Invalid URL provided + Belirtilen adres geçersiz + + + Passkeys + GeçiÅŸ anahtarları + + + AES initialization failed + AES hazırlanamadı + + + AES encrypt failed + AES ÅŸifreleme iÅŸlemi yapılamadı + + + Failed to store in Linux Keyring + Linux anahtarlığına kaydedilemedi + + + Polkit returned an error: %1 + Polkit sorunu çıktı: %1 + + + Could not locate key in keyring + Anahtar anahtarlıkta bulunamadı + + + Could not read key in keyring + Anahtar anahtarlıktan okunamadı + + + AES decrypt failed + AES ÅŸifre çözme iÅŸlemi yapılamadı + + + No Polkit authentication agent was available + Kullanılabilecek bir Polkit kimlik doÄŸrulama aracısı yok + + + Polkit authorization failed + Polkit kimliÄŸi doÄŸrulanamadı + + + No Quick Unlock provider is available + Kullanılabilecek bir hızlı kilit açma hizmeti saÄŸlayıcısı yok + + + Failed to init KeePassXC crypto. + KeePassXC ÅŸifrelemesi hazırlanamadı. + + + Failed to encrypt key data. + Anahtar verileri ÅŸifrelenemedi. + + + Failed to get Windows Hello credential. + Windows Hello kimlik doÄŸrulama bilgileri alınamadı + + + Failed to decrypt key data. + Anahtar verilerinin ÅŸifresi çözülemedi + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + Kaynak boÅŸ ya da izin verilmiyor + + + Effective domain is not a valid domain + Etkin etki alanı geçerli bir etki alanı deÄŸil + + + Origin and RP ID do not match + Kaynak ve RO kimliÄŸi aynı deÄŸil + + + No supported algorithms were provided + Desteklenen bir algoritma belirtilmemiÅŸ + + + Wait for timer to expire + Zamanlayıcının sona ermesini bekleyin + + + Unknown Passkeys error + Bilinmeyen geçiÅŸ anahtarları sorunu + + + Challenge is shorter than required minimum length + Yanıt gerekli en kısa uzunluktan daha kısa + + + user.id does not match the required length + user.id istenilen uzunluÄŸa uygun deÄŸil @@ -7778,18 +8697,6 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - Süresi geçmiÅŸ kayıtlar rapora katılmasın - - - Show only entries which have URL set - Yalnız adresi olan kayıtlar görüntülensin - - - Show only entries which have browser settings in custom data - Yalnız özel verilerinde tarayıcı ayarları olan kayıtlar görüntülensin - Double-click entries to edit. Düzenlemek için kayıtlara çift tıklayın. @@ -7828,7 +8735,7 @@ Kernel: %3 %4 No entries with a URL, or none has browser extension settings saved. - Adresi olan bir kayıt yok ya da hiç bir kayıt için tarayıcı uzantısı ayarları yapılmamış. + Adresi olan bir kayıt yok ya da hiç bir kayıt için tarayıcı eklentisi ayarları yapılmamış. Title @@ -7854,17 +8761,25 @@ Kernel: %3 %4 Exclude from reports Raporlara katılmasın + + Only show entries that have a URL + Yalnızca adresi olan kayıtlar görüntülensin + + + Only show entries that have been explicitly allowed or denied + Yalnızca açıkça izin kabul ya da red edilen kayıtlar görüntülensin + + + Show expired entries + Süresi geçmiÅŸ kayıtlar görüntülensin + + + (Expired) + (Süresi geçmiÅŸ) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - Süresi geçmiÅŸ kayıtlar rapora katılmasın - - - Also show entries that have been excluded from reports - Raporlara katılmayan kayıtlar da görüntülensin - Hover over reason to show additional details. Double-click entries to edit. Ayrıntıları görüntülemek için fareyi neden üzerinde gezdirin. Kaydı düzenlemek için çift tıklayın. @@ -7940,12 +8855,24 @@ Kernel: %3 %4 Exclude from reports Raporlara katılmasın + + Show expired entries + Süresi geçmiÅŸ kayıtlar görüntülensin + + + Show entries that have been excluded from reports + Raporlara katılmayan kayıtlar görüntülensin + + + (Expired) + (Süresi geçmiÅŸ) + ReportsWidgetHibp CAUTION: This report requires sending information to the Have I Been Pwned online service (https://haveibeenpwned.com). If you proceed, your database passwords will be cryptographically hashed and the first five characters of those hashes will be sent securely to this service. Your database remains secure and cannot be reconstituted from this information. However, the number of passwords you send and your IP address will be exposed to this service. - UYARI: Bu rapor için "Have I Been Pwned" çevrimiçi hizmetine (https://haveibeenpwned.com) bilgi gönderilmesi gerekir. İlerlediÄŸinizde, veritabanı parolalarınız ÅŸifreli olarak karıştırılır ve bu karmanın ilk beÅŸ karakteri güvenli olarak bu hizmete gönderilir. Veritabanınız güvende kalır ve gönderilen bilgiler ile yeniden oluÅŸturulamaz. Yalnız, gönderdiÄŸiniz parolaların sayısı ve IP adresiniz bu hizmete bildirilir. + UYARI: Bu rapor için "Have I Been Pwned" çevrimiçi hizmetine (https://haveibeenpwned.com) bilgi gönderilmesi gerekir. İlerlediÄŸinizde, veri tabanı parolalarınız ÅŸifreli olarak karıştırılır ve bu karmanın ilk beÅŸ karakteri güvenli olarak bu hizmete gönderilir. Veri tabanınız güvende kalır ve gönderilen bilgiler ile yeniden oluÅŸturulamaz. Yalnızca, gönderdiÄŸiniz parolaların sayısı ve IP adresiniz bu hizmete bildirilir. Perform Online Analysis @@ -7957,7 +8884,7 @@ Kernel: %3 %4 This build of KeePassXC does not have network functions. Networking is required to check your passwords against Have I Been Pwned databases. - Bu KeePassXC yapımında aÄŸ özellikleri bulunmaz. Parolalarınızın Have I Been Pwned veritabanlarıyla incelenebilmesi için aÄŸ özelliÄŸi gereklidir. + Bu KeePassXC yapımında aÄŸ özellikleri bulunmaz. Parolalarınızın Have I Been Pwned veri tabanlarıyla incelenebilmesi için aÄŸ özelliÄŸi gereklidir. Congratulations, no exposed passwords! @@ -8036,6 +8963,65 @@ Kernel: %3 %4 Raporlara katılmasın + + ReportsWidgetPasskeys + + Export + Dışa aktar + + + Import + İçe aktar + + + List of entry URLs + Kayıt adreslerinin listesi + + + Please wait, list of entries with Passkeys is being updated… + Lütfen geçiÅŸ anahtarı bulunan kayıtların listesi güncellenirken bekleyin... + + + No entries with Passkeys. + GeçiÅŸ anahtarı bulunan bir kayıt yok. + + + Title + BaÅŸlık + + + Path + Yol + + + Username + Kullanıcı adı + + + URLs + Adresler + + + Edit Entry… + Kaydı düzenle… + + + Delete Entry(s)… + Kaydı sil…Kayıtları sil… + + + Relying Party + Güvenilen taraf + + + Show expired entries + Süresi geçmiÅŸ kayıtlar görüntülensin + + + (Expired) + (Süresi geçmiÅŸ) + + ReportsWidgetStatistics @@ -8052,11 +9038,11 @@ Kernel: %3 %4 Please wait, database statistics are being calculated… - Lütfen veritabanı istatistikleri hesaplanırken bekleyin… + Lütfen veri tabanı istatistikleri hesaplanırken bekleyin… Database name - Veritabanı adı + Veri tabanı adı Description @@ -8068,7 +9054,7 @@ Kernel: %3 %4 Database created - Veritabanı oluÅŸturuldu + Veri tabanı oluÅŸturuldu Last saved @@ -8088,7 +9074,7 @@ Kernel: %3 %4 The database was modified, but the changes have not yet been saved to disk. - Veritabanı deÄŸiÅŸtirilmiÅŸ, ancak deÄŸiÅŸiklikler henüz diske kaydedilmemiÅŸ. + Veri tabanı deÄŸiÅŸtirilmiÅŸ, ancak deÄŸiÅŸiklikler henüz diske kaydedilmemiÅŸ. Number of groups @@ -8104,7 +9090,7 @@ Kernel: %3 %4 The database contains entries that have expired. - Veritabanında süresi geçmiÅŸ kayıtlar var. + Veri tabanında süresi geçmiÅŸ kayıtlar var. Unique passwords @@ -8275,6 +9261,10 @@ Kernel: %3 %4 Search Help Yardım ara + + Save Search + Aramayı kaydet + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8343,7 +9333,7 @@ Kernel: %3 %4 <html><head/><body><p>If enabled, any attempt to read a password must be confirmed. Otherwise, clients can read passwords without confirmation when the database is unlocked.</p><p>This option only covers the access to the password of an entry. Clients can always enumerate the items of exposed databases and query their attributes.</p></body></html> - <html><head/><body><p>Bu seçenek etkinleÅŸtirildiÄŸinde, herhangi bir parola okuma giriÅŸimi onaylanmalıdır. Yoksa, veritabanı kilidi açıldığında uygulamalar parolaları onay almadan okuyabilir.</p><p>Bu seçenek yalnız bir kaydın parolasına eriÅŸim iznini kapsar. Uygualamalar her zaman açıkta kalan veritabanlarının ögelerini öğrenebilir ve özniteliklerini sorgulayabilir.</p></body></html> + <html><head/><body><p>Bu seçenek açıldığında, herhangi bir parola okuma giriÅŸimi onaylanmalıdır. Yoksa, veri tabanı kilidi açıldığında uygulamalar parolaları onay almadan okuyabilir.</p><p>Bu seçenek yalnızca bir kaydın parolasına eriÅŸim iznini kapsar. Uygulamalar her zaman açıkta kalan veri tabanlarının ögelerini öğrenebilir ve özniteliklerini sorgulayabilir.</p></body></html> Confirm when passwords are retrieved by clients @@ -8358,7 +9348,7 @@ Kernel: %3 %4 <html><head/><body><p><span style=" font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">Bu seçenek çöp - kutusu sorularını devre dışı bırakmaz</span></p></body></html> + kutusu ile ilgili soruları kapatmaz</span></p></body></html> @@ -8371,19 +9361,19 @@ Kernel: %3 %4 crash the client if the database can not be unlocked within a certain timeout. (Usually 25s, but may be a different value set in applications.)</p></body></html> - <html><head/><body><p>Böylece, önce veritabanı kilidini açmadan - parola arayan belirli uygulamalar ile daha iyi uyumluluk saÄŸlanabilir.</p><p>Ancak bu seçenek etkinleÅŸtirildiÄŸinde, - belirli bir süre içinde veritabanının kilidi açılamazsa uygulama çökebilir. (Genellikle 25s. Ancak uygulamalarda + <html><head/><body><p>Böylece, önce veri tabanı kilidini açmadan + parola arayan belirli uygulamalar ile daha iyi uyumluluk saÄŸlanabilir.</p><p>Ancak bu seçenek açıldığında, + belirli bir süre içinde veri tabanının kilidi açılamazsa uygulama çökebilir. (Genellikle 25s. Ancak uygulamalarda farklı bir deÄŸer ayarlanmış olabilir.)</p></body></html> Prompt to unlock database before searching - Aramadan önce veritabanı kilidinin açılması istensin + Aramadan önce veri tabanı kilidinin açılması istensin Exposed database groups: - Açığa çıkarılan veritabanı grupları: + Açığa çıkmış veri tabanı grupları: Authorization @@ -8399,7 +9389,7 @@ Kernel: %3 %4 Save current changes to activate the plugin and enable editing of this section. - Eklentiyi etkinleÅŸtirmek için yapılmış deÄŸiÅŸiklikleri kaydedin ve bu bölümü düzenlemeyi etkinleÅŸtirin. + Eklentiyi kullanıma almak için yapılmış deÄŸiÅŸiklikleri kaydedin ve bu bölümü düzenlemeyi açın. @@ -8426,7 +9416,7 @@ Kernel: %3 %4 Only show warnings and errors - Yalnız uyarılar ve hatalar görüntülensin + Yalnızca uyarılar ve hatalar görüntülensin Own certificate @@ -8506,11 +9496,38 @@ Kernel: %3 %4 %1 üzerine dışa aktar + + ShortcutSettingsWidget + + Double click an action to change its shortcut + Kısayolunu deÄŸiÅŸtirmek istediÄŸiniz iÅŸleme çift tıklayın + + + Shortcut Conflict + Kısayol çakışması + + + Filter... + Süz... + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + %1 kısayolu '%2' ile çakışıyor. Kısayol deÄŸiÅŸtirilsin mi? + + + Reset Shortcuts + Kısayolları sıfırla + + TagModel - All - Tümü + Clear Search + Aramayı temizle + + + All Entries + Tüm kayıtlar Expired @@ -8521,6 +9538,25 @@ Kernel: %3 %4 Kolay parolalar + + TagView + + Remove Search + Aramayı sil + + + Remove Tag + Etiketi sil + + + Confirm Remove Tag + Etiketi silmeyi onayla + + + Remove tag "%1" from all entries in this database? + "%1" etiketini bu veri tabanındaki tüm kayıtlardan silmek istediÄŸinize emin misiniz? + + TotpDialog @@ -8605,7 +9641,7 @@ Kernel: %3 %4 sec Seconds - sn + sn Code size: @@ -8631,7 +9667,7 @@ Example: JBSWY3DPEHPK3PXP Are you sure you want to delete TOTP settings for this entry? - Bu kayıdın tek kullanımlık parola ayarlarını silmek istediÄŸinize emin misiniz ? + Bu kaydın tek kullanımlık parola ayarlarını silmek istediÄŸinize emin misiniz ? @@ -8676,40 +9712,32 @@ Example: JBSWY3DPEHPK3PXP WelcomeWidget Start storing your passwords securely in a KeePassXC database - Parolalarınızı KeePassXC veritabanında güvende tutmaya baÅŸlayın - - - Create new database - Yeni veritabanı oluÅŸtur - - - Open existing database - Var olan veritabanını aç - - - Import from KeePass 1 - KeePass 1 içe aktar - - - Import from 1Password - 1Password içe aktar - - - Import from CSV - CSV içe aktar + Parolalarınızı KeePassXC veri tabanında güvende tutmaya baÅŸlayın Recent databases - Son veritabanları + Son veri tabanları Open a recent database - Son kullanılan veritabanını aç + Son kullanılan veri tabanını aç Welcome to KeePassXC %1 KeePassXC %1 sürümüne hoÅŸ geldiniz + + Create Database + Veri tabanı oluÅŸtur + + + Open Database + Veri tabanını aç + + + Import File + + WinUtils @@ -8726,31 +9754,8 @@ Example: JBSWY3DPEHPK3PXP Genel kısayol kaydı oluÅŸturulamadı - - WindowsHello - - Failed to init KeePassXC crypto. - KeePassXC ÅŸifrelemesi hazırlanamadı. - - - Failed to encrypt key data. - Anahtar verileri ÅŸifrelenemedi. - - - Failed to get Windows Hello credential. - Windows Hello kimlik doÄŸrulama bilgileri alınamadı - - - Failed to decrypt key data. - Anahtar verilerinin ÅŸifresi çözülemedi - - YubiKey - - %1 No interface, slot %2 - %1 arabirimi yok, %2. yuva - General: Genel: @@ -8762,14 +9767,6 @@ Example: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - Donanımsal doÄŸrulayıcıları yenile - - - Refresh - Yenile - Hardware key slot selection Donanımsal anahtar yuvası seçimi @@ -8780,31 +9777,27 @@ Example: JBSWY3DPEHPK3PXP Selected hardware key slot does not support challenge-response! - SeçilmiÅŸ donanımsal anahtar yuvası soru-yanıt özelliÄŸini desteklemiyor! + SeçilmiÅŸ donanımsal anahtar yuvası soru/yanıt özelliÄŸini desteklemiyor! Challenge-Response - Soru-yanıt + Soru/yanıt Add Challenge-Response - Soru-yanıt ekle + Soru/yanıt ekle Change Challenge-Response - Soru-yanıtı deÄŸiÅŸtir + Soru/yanıtı deÄŸiÅŸtir Remove Challenge-Response - Soru-yanıtı kaldır + Soru/yanıtı kaldır Challenge-Response set, click to change or remove - Soru-yanıt ayarlandı. DeÄŸiÅŸtirmek ya da kaldırmak için tıklayın - - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>Bir <a href="https://www.yubico.com/">YubiKey</a> ya da <a href="https://onlykey.io">OnlyKey</a> aygıtınız varsa, ek güvenlik saÄŸlamak için kullanabilirsiniz.</p><p>Anahtar yuvalarından birinin <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Soru-Yanıt</a> olarak programlanması gerekir.</p> + Soru/yanıt ayarlandı. DeÄŸiÅŸtirmek ya da kaldırmak için tıklayın Detecting hardware keys… @@ -8814,28 +9807,21 @@ Example: JBSWY3DPEHPK3PXP No hardware keys detected Herhangi bir donanımsal anahtar algılanamadı - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 Belirtilen yuva geçersiz - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + <p>Bir <a href="https://www.yubico.com/">YubiKey</a> ya da <a href="https://onlykey.io">OnlyKey</a> aygıtınız varsa, ek güvenlik saÄŸlamak için kullanabilirsiniz.</p><p>Anahtar yuvalarından birinin <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 soru/yanıt</a> olarak programlanması gerekir.</p> + + + Refresh hardware keys + Donanımsal anahtarları yenile YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] soru-yanıt - %3. yuva - The YubiKey PCSC interface has not been initialized. YubiKey PCSC arayüzü baÅŸlatılamadı. - - Hardware key is currently in use. - Donanımsal anahtar kullanılıyor. - Could not find or access hardware key with serial number %1. Please present it to continue. %1 seri numaralı donanım anahtarı bulunamadı ya da eriÅŸilemiyor. Lütfen ilerlemek için anahtarı takın. @@ -8850,7 +9836,22 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 - Bir soru-yanıt tamamlanamadı. PCSC hata kodu: %1 + Bir soru/yanıt tamamlanamadı. PCSC hata kodu: %1 + + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + (NFC) %1 [%2] - Yuva %3, %4 + + + Press + USB Challenge-Response Key interaction request + Basın + + + Passive + USB Challenge-Response Key no interaction required + Pasif @@ -8859,14 +9860,6 @@ Example: JBSWY3DPEHPK3PXP Unknown Bilinmiyor - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] yapılandırılmış yuva - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] soru-yanıt - %3. yuva - %4 - Press USB Challenge-Response Key interaction request @@ -8881,10 +9874,6 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. YubiKey USB arayüzü baÅŸlatılamadı. - - Hardware key is currently in use. - Donanımsal anahtar kullanılıyor. - Could not find hardware key with serial number %1. Please plug it in to continue. %1 seri numaralı donanımsal anahtar bulunamadı. Lütfen ilerlemek için anahtarı takın. @@ -8899,7 +9888,17 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 - Soru-yanıt tamamlanamadı. OluÅŸan hata: %1 + Soru/yanıt tamamlanamadı. OluÅŸan hata: %1 + + + %1 [%2] - Slot %3 + YubiKey NEO display fields + %1 [%2] - Yuva %3 + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + %1 [%2] - Yuva %3, %4 \ No newline at end of file diff --git a/share/translations/keepassxc_uk.ts b/share/translations/keepassxc_uk.ts index 2f39cb5a3..32d2a4d03 100644 --- a/share/translations/keepassxc_uk.ts +++ b/share/translations/keepassxc_uk.ts @@ -11,7 +11,7 @@ Report bugs at: <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> - ПовідомлÑйте про вади на <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> + ПовідомлÑйте про помилки на <a href="https://github.com/keepassxreboot/keepassxc/issues" style="text-decoration: underline;">https://github.com</a> KeePassXC is distributed under the terms of the GNU General Public License (GPL) version 2 or (at your option) version 3. @@ -19,15 +19,15 @@ Project Maintainers: - Супровідники проекту: + Супровідники проєкту: Special thanks from the KeePassXC team go to debfx for creating the original KeePassX. - Команда KeePassXC щиро дÑкує debfx за ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿ÐµÑ€Ð²Ñ–Ñної верÑÑ–Ñ— KeePassX. + Команда KeePassXC щиро дÑкує debfx за ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ñ€Ð¸Ð³Ñ–Ð½Ð°Ð»ÑŒÐ½Ð¾Ñ— верÑÑ–Ñ— KeePassX. Contributors - Спільнота + Помічники <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">See Contributions on GitHub</a> @@ -35,7 +35,7 @@ Debug Info - Зневаджувальна Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ + Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð· Ð½Ð°Ð»Ð°Ð³Ð¾Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ Include the following information whenever you report a bug: @@ -43,23 +43,22 @@ Copy to clipboard - Скопіювати в кишеню + Копіювати в буфер обміну AccessControlDialog KeePassXC - Access Request - KeePassXC - Запит ДоÑтупу + KeePassXC – запит доÑтупу Non-existing/inaccessible executable path. Please double-check the client is legit. - + ВідÑутній або недоÑтупний шлÑÑ… до виконуваного файлу. ПереконайтеÑÑ, що ви кориÑтуєтеÑÑ Ð¾Ñ€Ð¸Ð³Ñ–Ð½Ð°Ð»ÑŒÐ½Ð¸Ð¼ клієнтом. <html><head/><body><p><span style=" font-weight:600;">%1 </span>is requesting access to the following entries:</p></body></html> - <html><head/><body><p><span style=" font-weight:600;">%1 </span>запитує доÑтуп до таких запиÑів: </p></body></html> - + <html><head/><body><p><span style=" font-weight:600;">%1 </span>запитує доÑтуп до таких запиÑів:</p></body></html> Name @@ -67,19 +66,23 @@ PID - + PID Executable - + Виконуваний файл Command Line - Командна Ñтрока + Командний Ñ€Ñдок Details - Деталі + Подробиці + + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + Ваше Ñ€Ñ–ÑˆÐµÐ½Ð½Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ‚Ð¸Ð¼ÐµÑ‚ÑŒÑÑ Ð¿Ð¾ÐºÐ¸ клієнт, що виконує запит Ñ– KeePassXC запущені. Remember @@ -87,26 +90,22 @@ Allow Selected - Дозволити обрані - - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - + Дозволити вибрані Deny All && Future - + Заборонити вÑÑ– && майбутні Allow All && &Future - + Дозволити вÑÑ– && &майбутні AccessControlDialog::DenyButton Deny for this program - Відхилити Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— програми + Заборонити Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— програми @@ -117,19 +116,23 @@ Use Pageant - + ВикориÑтовувати Pageant Use OpenSSH - + ВикориÑтовувати OpenSSH + + + Use both agents + ВикориÑтовувати обидва агенти SSH_AUTH_SOCK override - Ð¿ÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ SSH_AUTH_SOCK + ÐŸÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ SSH_AUTH_SOCK SSH_AUTH_SOCK value - Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ SSH_AUTH_SOCK + Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ SSH_AUTH_SOCK (empty) @@ -137,46 +140,46 @@ SSH_SK_PROVIDER value - Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ SSH_SK_PROVIDER + Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ SSH_SK_PROVIDER SSH_SK_PROVIDER override - + ÐŸÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ SSH_SK_PROVIDER No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. - Ðемає доÑтупних гнізд Ð´Ð»Ñ SSH Agent. Ðбо переконайтеÑÑ, що змінна Ð¾Ñ‚Ð¾Ñ‡ÐµÐ½Ð½Ñ SSH_AUTH_SOCK Ñ–Ñнує, або вкажіть Ð¿ÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð½ÐµÑ—. + Ðемає доÑтупних Ñокетів Ð´Ð»Ñ SSH Agent. Ðбо переконайтеÑÑ, що змінна Ð¾Ñ‚Ð¾Ñ‡ÐµÐ½Ð½Ñ SSH_AUTH_SOCK Ñ–Ñнує, або вкажіть Ð¿ÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð½ÐµÑ—. SSH Agent connection is working! - З'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· SSH Agent працює! - - - Use both agents - + З'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· SSH Agent активне! ApplicationSettingsWidget Application Settings - ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°ÑтоÑунку + ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ General - Загальне + Загальні Security Безпека + + This setting cannot be enabled when minimize on unlock is enabled. + Це Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна увімкнути, Ñкщо увімкнено Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñ‡Ð¸ розблокуваннÑ. + Access error for config file %1 Помилка доÑтупу до файлу конфігурації %1 Icon only - Лише значок + Лише піктограма Text only @@ -184,11 +187,11 @@ Text beside icon - ТекÑÑ‚ поруч із значком + ТекÑÑ‚ поруч із піктограмою Text under icon - ТекÑÑ‚ під значком + ТекÑÑ‚ під піктограмою Follow style @@ -212,7 +215,7 @@ You must restart the application to set the new language. Would you like to restart now? - Ви муÑите перезапуÑтити програму, щоб вÑтановити іншу мову. Бажаєте перезапуÑтити зараз? + Ð”Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— мови потрібно перезапуÑтити програму. Бажаєте перезапуÑтити зараз? Reset Settings? @@ -220,18 +223,18 @@ Are you sure you want to reset all general and security settings to default? - Ви дійÑно бажаєте повніÑтю Ñкинути Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ– повернутиÑÑŒ до Ñтандартних параметрів? + Ви дійÑно хочете відновити вÑÑ– типові Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸? Select backup storage directory - + Виберіть каталог Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ ApplicationSettingsWidgetGeneral Basic Settings - Базове Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ + Загальні Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Startup @@ -243,54 +246,58 @@ Automatically launch KeePassXC at system startup - Ðвтоматично запуÑкати KeePassXC під Ñ‡Ð°Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ– ÑиÑтеми + Ðвтоматично запуÑкати KeePassXC під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку ÑиÑтеми Minimize window at application startup - Згортати вікно піÑÐ»Ñ Ð·Ð°Ð¿ÑƒÑку заÑтоÑунку + Згортати вікно піÑÐ»Ñ Ð·Ð°Ð¿ÑƒÑку програми Minimize window after unlocking database - Згортати вікно піÑÐ»Ñ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñховища + Згортати вікно піÑÐ»Ñ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних Remember previously used databases - Пам'Ñтати раніше викориÑтані Ñховища + Пам'Ñтати попередні бази даних + + + recent files + недавні файли Load previously open databases on startup - Завантажувати попередньо відкриті Ñховища під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку + Завантажувати раніше відкриті бази даних під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку Remember database key files and security dongles - Пам'Ñтати файлові ключі та апаратні ключі Ð´Ð»Ñ Ñховища + Пам'Ñтати ключові файли та апаратні ключі бази даних Check for updates at application startup once per week - ПеревірÑти наÑвніÑть оновлень Ñ‰Ð¾Ñ‚Ð¸Ð¶Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку заÑтоÑунку + ПеревірÑти наÑвніÑть оновлень Ñ‰Ð¾Ñ‚Ð¸Ð¶Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку програми Include beta releases when checking for updates - Пропонувати бета випуÑки Ð´Ð»Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ + Пропонувати бета-верÑÑ–Ñ— Ð´Ð»Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ On database unlock, show entries that - + При розблокуванні бази даних показати запиÑи, Ñкі have expired On database unlock, show entries that... - + протерміновані days On database unlock, show entries that will expire within %1 days - + дні will expire within On database unlock, show entries that... - + термін дії завершитьÑÑ Ñ‡ÐµÑ€ÐµÐ· File Management @@ -302,47 +309,47 @@ Automatically save when locking database - Ðвтоматично зберігати Ñховище перед блокуваннÑм + Ðвтоматично зберігати під Ñ‡Ð°Ñ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних Automatically save non-data changes when locking database - Ðвтоматично зберігати зміни, що не ÑтоÑуютьÑÑ Ð´Ð°Ð½Ð¸Ñ…, перед блокуваннÑм Ñховища + Ðвтоматично зберігати зміни, що не ÑтоÑуютьÑÑ Ð´Ð°Ð½Ð¸Ñ…, перед блокуваннÑм бази даних Automatically reload the database when modified externally - Ðвтоматично перезавантажувати Ñховище піÑÐ»Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ–Ñ… змін + Ðвтоматично перезавантажувати базу даних піÑÐ»Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ–Ñ… змін Backup database file before saving - Створювати резервну копію Ñховища перед збереженнÑм + Створювати резервну копію бази даних перед збереженнÑм Backup destination - + ШлÑÑ… резервного ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Specifies the database backup file location. Occurrences of "{DB_FILENAME}" are replaced with the filename of the saved database without extension. {TIME:<format>} is replaced with the backup time, see https://doc.qt.io/qt-5/qdatetime.html#toString. <format> defaults to format string "dd_MM_yyyy_hh-mm-ss". - + Вказує Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ резервної копії бази даних. Ð’Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ "{DB_FILENAME}" замінюютьÑÑ Ð½Ð°Ð·Ð²Ð¾ÑŽ файлу збереженої бази даних без Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ. {TIME:<format>} замінюєтьÑÑ Ñ‡Ð°Ñом резервної копії. ПереглÑньте https://doc.qt.io/qt-5/qdatetime.html#toString. <format> типові Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ñдка формату "dd_MM_yyyy_hh-mm-ss". {DB_FILENAME}.old.kdbx - + {DB_FILENAME}.old.kdbx Choose... - + Обрати... Use alternative saving method (may solve problems with Dropbox, Google Drive, GVFS, etc.) - + ВикориÑтовувати альтернативний ÑпоÑіб Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ (може розв'Ñзати проблеми з Dropbox, Google ДиÑком, GVFS та ін.) Temporary file moved into place - + ТимчаÑовий файл переміщено на міÑце Directly write to database file (dangerous) - + ПрÑмий Ð·Ð°Ð¿Ð¸Ñ Ñƒ файл бази даних (небезпечно) Entry Management @@ -350,7 +357,7 @@ Use group icon on entry creation - ВикориÑтовувати Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… запиÑів значок групи + ВикориÑтовувати Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… запиÑів піктограму групи Minimize when opening a URL @@ -358,7 +365,7 @@ Hide window when copying to clipboard - Ховати вікно піÑÐ»Ñ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ñƒ кишеню + Ховати вікно піÑÐ»Ñ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð² буфер обміну Minimize @@ -366,20 +373,20 @@ Drop to background - ПереÑунути на задній план + ПереміÑтити на задній план Favicon download timeout: - Ліміт чаÑу Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð²Ñ–ÐºÐ¾Ð½Ñƒ: + Ліміт чаÑу Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ–ÐºÑ‚Ð¾Ð³Ñ€Ð°Ð¼Ð¸: Website icon download timeout in seconds - Ліміт чаÑу в Ñекундах Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐºÐ° Ñайту + Ліміт чаÑу в Ñекундах Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ–ÐºÑ‚Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ñайту sec Seconds - Ñек + Ñ User Interface @@ -387,7 +394,7 @@ Toolbar button style - Стиль кнопки Ð´Ð»Ñ Ð¿Ð°Ð½ÐµÐ»Ñ– інÑтрументів + Стиль кнопок панелі інÑтрументів Movable toolbar @@ -407,7 +414,11 @@ Toolbar button style: - Стиль кнопок панелі інÑтрументів: + Стиль кнопки в панелі інÑтрументів: + + + Show passwords in color + Кольорові Ñимволи паролів Use monospaced font for notes @@ -415,27 +426,27 @@ Minimize instead of app exit - Згортати вікно заміÑть Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ + Згортати вікно заміÑть виходу з програми Show a system tray icon - Показувати значок у ÑиÑтемному лотку + Показувати піктограму в ÑиÑтемному лотку Tray icon type - Варіант значка в лотку + Варіант піктограми в лотку Tray icon type: - Варіант значка в лотку: + Варіант пікограми в лотку: Hide window to system tray when minimized - ПіÑÐ»Ñ Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñ…Ð¾Ð²Ð°Ñ‚Ð¸ вікно в ÑиÑтемний лоток + Ховати вікно в ÑиÑтемний лоток піÑÐ»Ñ Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Reset settings to default… - Скинути параметри до типових... + Скинути Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ типових… Auto-Type @@ -443,23 +454,23 @@ Use entry title to match windows for global Auto-Type - ВикориÑтовувати заголовок запиÑу Ð´Ð»Ñ Ð·Ð½Ð°Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾Ð³Ð¾ вікна у глобальному автозаповненні + ВикориÑтовувати заголовок запиÑу Ð´Ð»Ñ Ð·Ð½Ð°Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾Ð³Ð¾ вікна під Ñ‡Ð°Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Use entry URL to match windows for global Auto-Type - ВикориÑтовувати URL запиÑу Ð´Ð»Ñ Ð·Ð½Ð°Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾Ð³Ð¾ вікна у глобальному автозаповненні + ВикориÑтовувати URL-адреÑу запиÑу Ð´Ð»Ñ Ð·Ð½Ð°Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾Ð³Ð¾ вікна під Ñ‡Ð°Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Always ask before performing Auto-Type - Завжди питати перед автозаповненнÑм + Завжди запитувати перед заÑтоÑуваннÑм Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Hide expired entries from Auto-Type - Ðе викориÑтовувати знечинені запиÑи Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ + Приховати протерміновані запиÑи Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Re-lock previously locked database after performing Auto-Type - Блокувати попередньо заблоковане Ñховище піÑÐ»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ + Блокувати попередньо заблоковану базу даних піÑÐ»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Auto-Type start delay: @@ -467,7 +478,7 @@ Global Auto-Type shortcut: - Глобальне ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–Ñˆ Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ: + Глобальна ÐºÐ¾Ð¼Ð±Ñ–Ð½Ð°Ñ†Ñ–Ñ ÐºÐ»Ð°Ð²Ñ–Ñˆ Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ: Auto-type start delay milliseconds @@ -480,19 +491,19 @@ Auto-Type typing delay: - Затримка Ð²Ð²Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ñимволів під Ñ‡Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ: + Затримка Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ: Global auto-type shortcut - Глобальне ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–Ñˆ Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ + Глобальна ÐºÐ¾Ð¼Ð±Ñ–Ð½Ð°Ñ†Ñ–Ñ ÐºÐ»Ð°Ð²Ñ–Ñˆ Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Auto-type character typing delay milliseconds - Затримка в міліÑекундах перед вводженнÑм Ñимволів під Ñ‡Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ + Затримка в міліÑекундах перед введеннÑм Ñимволів під Ñ‡Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Remember last typed entry for: - + Пам'Ñтати оÑтанній введений Ð·Ð°Ð¿Ð¸Ñ Ð´Ð»Ñ: @@ -503,16 +514,16 @@ Database lock timeout seconds - Ð‘Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñховища за чаÑом в Ñекундах + Ð§Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних у Ñекундах sec Seconds - Ñек + Ñ Clear clipboard after - Очищати кишеню через + Очищати буфер обміну через Clear search query after @@ -521,15 +532,15 @@ min Minutes - хвилин + хв Clipboard clear seconds - Очищати кишеню через Ñтільки Ñекунд + Очищати буфер обміну через Ñтільки Ñекунд Lock databases after inactivity of - Блокувати Ñховища, неактивні протÑгом + Блокувати бази даних за неактивноÑті Convenience @@ -537,15 +548,15 @@ Enable database quick unlock (Touch ID / Windows Hello) - + Увімкнути швидке Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних (Touch ID / Windows Hello) Lock databases when session is locked or lid is closed - Блокувати Ñховища піÑÐ»Ñ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ ÑеÑÑ–Ñ— або Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ ÐºÑ€Ð¸ÑˆÐºÐ¸ приÑтрою + Блокувати бази даних під Ñ‡Ð°Ñ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ ÑиÑтеми Lock databases after minimizing the window - Блокувати Ñховища піÑÐ»Ñ Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð²Ñ–ÐºÐ½Ð° + Блокувати бази даних піÑÐ»Ñ Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð²Ñ–ÐºÐ½Ð° Require password repeat when it is visible @@ -557,23 +568,23 @@ Use placeholder for empty password fields - Показувати текÑÑ‚-заповнювач Ð´Ð»Ñ Ð¿Ð¾Ñ€Ð¾Ð¶Ð½Ñ–Ñ… полів паролів + ВикориÑтовувати текÑÑ‚-заповнювач Ð´Ð»Ñ Ð¿Ð¾Ñ€Ð¾Ð¶Ð½Ñ–Ñ… полів паролів Hide passwords in the entry preview panel - Приховувати паролі у панелі передпереглÑду запиÑу + Приховувати паролі на панелі переглÑду запиÑу Hide entry notes by default - Типово приховувати нотатки до запиÑу + Типово приховувати нотатки запиÑу Move entries to recycle bin without confirmation - Переміщати запиÑи в Ñмітник без Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ + Переміщувати запиÑи до Ñмітника без Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Enable double click to copy the username/password entry columns - + Увімкнути подвійний клік, щоб Ñкопіювати Ñ–Ð¼Ê¼Ñ ÐºÐ¾Ñ€Ð¸Ñтувача/пароль Privacy @@ -581,67 +592,76 @@ Use DuckDuckGo service to download website icons - ВикориÑтовувати ÑÐµÑ€Ð²Ñ–Ñ DuckDuckGo Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐºÑ–Ð² Ñайтів + ВикориÑтовувати DuckDuckGo Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ–ÐºÑ‚Ð¾Ð³Ñ€Ð°Ð¼ Ñайтів + + + Hide TOTP in the entry preview panel + Приховувати TOTP на панелі переглÑду запиÑу AutoType The requested Auto-Type sequence cannot be used due to an error: - + Ðеможливо викориÑтати запитану поÑлідовніÑть автозаповненнÑ, у зв'Ñзку з помилкою: Auto-Type Error - + Помилка Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Permission Required - Ðеобхідний дозвіл + Потрібен дозвіл KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. - KeePassXC потребує дозволу на доÑтупніÑть Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð½Ð° рівні запиÑів. Якщо Ви вже надали цей дозвіл, можливо Вам необхідно перезапуÑтити KeePassXC. + Ð”Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð½Ð° рівні запиÑу KeePassXC потребує дозволу на доÑтупніÑть. Якщо ви вже надали цей дозвіл, можливо, потрібно перезапуÑтити KeePassXC. KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. - KeePassXC потребує дозволу на доÑтупніÑть Ñ– Ð·Ð°Ð¿Ð¸Ñ ÐµÐºÑ€Ð°Ð½Ñƒ Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ автозаповненнÑ. Ð—Ð°Ð¿Ð¸Ñ ÐµÐºÑ€Ð°Ð½Ñƒ необхідний, щоб виÑвити зоголовок вікна Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ запиÑів. Якщо Ви вже надали цей дозвіл, можливо Вам необхідно перезапуÑтити KeePassXC. + Ð”Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ KeePassXC потребує дозволу на доÑтупніÑть Ñ– Ð·Ð°Ð¿Ð¸Ñ ÐµÐºÑ€Ð°Ð½Ð°. Ð—Ð°Ð¿Ð¸Ñ ÐµÐºÑ€Ð°Ð½Ð° потрібний, щоб викориÑтовувати заголовок вікна Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ запиÑів. Якщо ви вже надали ці дозволи, можливо, потрібно перезапуÑтити KeePassXC. Invalid entry provided - + Ðадано недійÑний Ð·Ð°Ð¿Ð¸Ñ Bracket imbalance detected, found extra { or } - + ВиÑвлено невідповідніÑть дужок: зайва { or } Too many repetitions detected, max is %1: %2 - + ВиÑвлено забагато повторень. МакÑимум %1: %2 Very slow key press detected, max is %1: %2 - + ВиÑвлено надто повільне натиÑÐºÐ°Ð½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–Ñˆ. МакÑимум %1: %2 Very long delay detected, max is %1: %2 - + ВиÑвлено надто довгу затримку. МакÑимум %1: %2 + + + Entry does not have attribute for PICKCHARS: %1 + Ð—Ð°Ð¿Ð¸Ñ Ð½Ðµ має атрибуту Ð´Ð»Ñ PICKCHARS: %1 Invalid conversion type: %1 - + ÐеприпуÑтимий тип перетвореннÑ: %1 Invalid conversion syntax: %1 - + ÐеприпуÑтимий ÑинтакÑÐ¸Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ: %1 Invalid regular expression syntax %1 %2 - + ÐеприпуÑтимий ÑинтакÑÐ¸Ñ Ñ€ÐµÐ³ÑƒÐ»Ñрного виразу %1 +%2 Invalid placeholder: %1 - + ÐеприпуÑтимий заповнювач: %1 @@ -675,7 +695,7 @@ Username - Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача + Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Sequence @@ -686,19 +706,19 @@ AutoTypePlatformX11 Trying to send invalid keysym. - + Спроба відправити недійÑний keysym. Sequence aborted: Caps Lock is on - + ПоÑлідовніÑть перервано: Caps Lock увімкнено Sequence aborted: Modifier keys held by user - + ПоÑлідовніÑть перервано: функціональні клавіші утримуютьÑÑ ÐºÐ¾Ñ€Ð¸Ñтувачем Unable to get valid keycode for key: - + Ðе вдаєтьÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дійÑний код ключа: @@ -709,7 +729,7 @@ Double click a row to perform Auto-Type or find an entry using the search: - + Двічі натиÑніть на Ñ€Ñдок, щоб виконати автозаповненнÑ, або знайдіть запиÑ, ÑкориÑтавшиÑÑŒ пошуком: <p>You can use advanced search queries to find any entry in your open databases. The following shortcuts are useful:<br/> @@ -718,19 +738,24 @@ Ctrl+1 - Type username<br/> Ctrl+2 - Type password<br/> Ctrl+3 - Type TOTP<br/> Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> - + <p>Можна кориÑтуватиÑÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸Ð¼Ð¸ можливоÑÑ‚Ñми пошуку Ð´Ð»Ñ Ð·Ð½Ð°Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ´ÑŒ-Ñкого запиÑу відкритих баз даних. Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ кориÑні такі комбінації клавіш:<br/> +Ctrl+F - Перемкнути пошук бази даних<br/> +Ctrl+1 - ВвеÑти ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача<br/> +Ctrl+2 - ВвеÑти пароль<br/> +Ctrl+3 - ВвеÑти TOTP<br/> +Ctrl+4 - ВикориÑтати віртуальну клавіатуру (тільки Windows)</p> Search all open databases - + Шукати в уÑÑ–Ñ… відкритих базах даних Search… - + Пошук… Type Sequence - + ПоÑлідовніÑть Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Cancel @@ -738,38 +763,38 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Type {USERNAME} - + Заповнити {USERNAME} Type {PASSWORD} - + Заповнити {PASSWORD} Type {TOTP} - + Заповнити {TOTP} Copy Username - + Копіювати ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Copy Password - + Копіювати пароль Copy TOTP - + Копіювати TOTP Use Virtual Keyboard - + Віртуальна клавіатура BrowserAccessControlDialog KeePassXC - Browser Access Request - Запит доÑтупу Ð´Ð»Ñ KeePassXC-Browser + KeePassXC – запит доÑтупу до браузера %1 is requesting access to the following entries: @@ -789,23 +814,23 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> Allow Selected - Дозволити обрані + Дозволити вибране Deny All - Заборонити вÑÑ– + Заборонити вÑе Disable for this site Вимкнути Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ñайту + + Undo + Відмінити + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу - Ok Гаразд @@ -817,118 +842,157 @@ Ctrl+4 - Use Virtual Keyboard (Windows Only)</p> You have multiple databases open. Please select the correct database for saving credentials. - У Ð²Ð°Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¾ декілька Ñховищ. -Будь лаÑка, оберіть правильне Ñховище Ð´Ð»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ€ÐµÑ”Ñтраційних даних. + У Ð²Ð°Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¾ декілька баз даних. +Оберіть правильну базу даних Ð´Ð»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¸Ñ… даних. + + + KeePassXC - Select Database + KeePassXC - Вибір бази даних + + + + BrowserPasskeysConfirmationDialog + + Cancel + СкаÑувати + + + Update + ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ + + + Authenticate + ÐÐ²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ + + + Register new + ЗареєÑтрувати новий + + + Register + ЗареєÑтруватиÑÑ + + + Timeout in <b>%n</b> seconds... + Тайм-аут через <b>%n</b> Ñекунду...Тайм-аут через <b>%n</b> Ñекунди...Тайм-аут через <b>%n</b> Ñекунд...Тайм-аут через <b>%n</b> Ñекунд... + + + Do you want to register Passkey for: + Ви хочете зареєÑтрувати Passkey длÑ: + + + Existing Passkey found. +Do you want to register a new Passkey for: + ІÑнуючий Passkey знайдено. +Хочете зареєÑтрувати новий Passkey длÑ: + + + Select the existing Passkey and press Update to replace it. + Виберіть Ñ–Ñнуючий Passkey та натиÑніть Оновити, щоб замінити його. + + + Authenticate Passkey credentials for: + ÐÐ²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¸Ñ… даних Passkey длÑ: + + + Relying Party: %1 + Довірена Ñторона: %1 + + + Username: %1 + Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача: %1 + + + KeePassXC - Passkey credentials + KeePassXC - Облікові дані Passkey BrowserService - - KeePassXC: Create a new group - KeePassXC: Створити нову групу - A request for creating a new group "%1" has been received. Do you want to create this group? - Отримано запит Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— групи "%1". + Отримано запит на ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— групи "%1". Ви хочете Ñтворити цю групу? - - KeePassXC: New key association request - KeePassXC: новий запит на прив'Ñзку ключа - You have received an association request for the following database: %1 Give the connection a unique name or ID, for example: chrome-laptop. - Ви одержали запит на ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð· таким Ñховищем: + Ви отримали запит аÑоціації Ð´Ð»Ñ Ñ‚Ð°ÐºÐ¾Ñ— бази даних: %1 -Ðадайте Ñполученню унікальну назву або ідентифікатор, наприклад: -chrome-на-ноутбуці. +Ðадайте аÑоціації унікальну назву або ідентифікатор, наприклад: +chrome-ноутбук. Save and allow access - Зберегти Ñ– дозволити доÑтуп - - - KeePassXC: Overwrite existing key? - KeePassXC: перезапиÑати наÑвний ключ? + Зберегти та дозволити доÑтуп A shared encryption key with the name "%1" already exists. Do you want to overwrite it? - Спільний ключ ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð· назвою «%1» вже Ñ–Ñнує. -ПерезапиÑати його? - - - KeePassXC: Update Entry - KeePassXC: оновити Ð·Ð°Ð¿Ð¸Ñ + Спільний ключ ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð· назвою "%1" вже Ñ–Ñнує. +Хочете його перезапиÑати? Do you want to update the information in %1 - %2? - Бажаєте оновити інформацію у %1 – %2? - - - KeePassXC: Delete entry - + Хочете оновити інформацію в %1 – %2? A request for deleting entry "%1" has been received. Do you want to delete the entry? + Отримано запит на Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу "%1". +Ви хочете видалити запиÑ? + + + + %1 (Passkey) + %1 (Passkey) + + + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + Вже Ñ” такий запиÑ. +Хочете перезапиÑати Passkey в %1 - %2? + + + KeePassXC - Create a new group + KeePassXC - Створити нову групу + + + Disable + Вимкнути + + + KeePassXC - Overwrite existing key? + KeePassXC - ПерезапиÑати наÑвний ключ? + + + KeePassXC - Update Passkey + KeePassXC - Оновити Passkey + + + KeePassXC - Update Entry + KeePassXC - Оновити Ð·Ð°Ð¿Ð¸Ñ + + + KeePassXC - Delete entry + KeePassXC - Видалити Ð·Ð°Ð¿Ð¸Ñ + + + KeePassXC - New key association request + KeePassXC - Запит на аÑоціацію нового ключа + + + Passkey - - Converting attributes to custom data… - ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð·Ð½Ð°Ðº на кориÑтувацькі дані… - - - Abort - СкаÑувати - - - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Ознаки KeePassHTTP перетворено - - - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - Ознаки %1 запиÑу(-ів) уÑпішно перетворено. -%2 ключів переміщено до кориÑтувацьких даних. - - - Successfully moved %n keys to custom data. - %n ключ уÑпішно переміщено до кориÑтувацьких даних.%n ключа уÑпішно переміщено до кориÑтувацьких даних.%n ключів уÑпішно переміщено до кориÑтувацьких даних.%n ключів уÑпішно переміщено до кориÑтувацьких даних. - - - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: ЗапиÑів з ознаками KeePassHTTP не знайдено! - - - The active database does not contain an entry with KeePassHTTP attributes. - Поточне Ñховище не міÑтить запиÑу з ознаками KeePassHTTP. - - - Don't show this warning again - Більше не показувати це Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ - - - KeePassXC: Legacy browser integration settings detected - KeePassXC: знайдено заÑтарілі параметри ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð· переглÑдачами - - - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - Потрібно переміÑтити Ваші параметри Ð´Ð»Ñ KeePassXC-Browser до параметрів Ñховища. -Це необхідно Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñполучень з Вашим поточним переглÑдачем. -Бажаєте переміÑтити параметри зараз? - BrowserSettingsWidget @@ -938,11 +1002,11 @@ Would you like to migrate your existing settings now? This is required for accessing your databases with KeePassXC-Browser - Це необхідно Ð´Ð»Ñ Ð½Ð°Ð´Ð°Ð½Ð½Ñ KeePassXC-Browser доÑтупу до Ваших Ñховищ + Це потрібно Ð´Ð»Ñ Ð½Ð°Ð´Ð°Ð½Ð½Ñ KeePassXC-Browser доÑтупу до ваших баз даних Enable browser integration - Увімкнути ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð· переглÑдачами + Увімкнути інтеграцію з браузером General @@ -950,11 +1014,11 @@ Would you like to migrate your existing settings now? Browsers installed as snaps are currently not supported. - Підтримка переглÑдачів, вÑтановлених через Snap, наразі не втілена. + Ðаразі не підтримуютьÑÑ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð¸, вÑтановлені Ñк Snap. Enable integration for these browsers: - Увімкнути ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð· такими переглÑдачами: + Увімкнути інтеграцію з такими браузерами: Vivaldi @@ -987,58 +1051,58 @@ Would you like to migrate your existing settings now? Show a notification when credentials are requested Credentials mean login data requested via browser extension - Показувати повідомленнÑ, коли надходить запит на реєÑтраційні дані + Показувати ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ облікових даних Request to unlock the database if it is locked - Запитувати щодо Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñховища, Ñкщо воно заблоковане + Запитувати Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних, Ñкщо вона заблокована Only entries with the same scheme (http://, https://, …) are returned. - + ПовертаютьÑÑ Ð»Ð¸ÑˆÐµ запиÑи з однаковою Ñхемою (http://, https://, …). Match URL scheme (e.g., https://example.com) - + ВідповідніÑть Ñхеми URL (наприклад, https://example.com) Only returns the best matches for a specific URL instead of all entries for the whole domain. - Показувати лише найкращі збіги Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ð³Ð¾ URL заміÑть уÑÑ–Ñ… запиÑів Ð´Ð»Ñ Ð²Ñієї облаÑті. + Показувати лише найкращі збіги Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ñ— URL-адреÑи заміÑть уÑÑ–Ñ… запиÑів Ð´Ð»Ñ Ð²Ñього домену. Return only best-matching credentials - Показувати лише найкращі збіги реєÑтраційних даних + Показувати лише найвідповідніші облікові дані Returns expired credentials. String [expired] is added to the title. - Показує знечинені реєÑтраційні дані. Заголовок міÑтитимить позначку [знечинені]. + Показує заÑтарілі облікові дані. Заголовок міÑтитиме позначку [протерміновано]. Allow returning expired credentials - Дозволити показ недійÑних реєÑтраційних даних + Показувати протерміновані облікові дані All databases connected to the extension will return matching credentials. - Збіги з реєÑтраційними даними буде знайдено в уÑÑ–Ñ… Ñполучених Ñховищах. + Відповідні облікові дані пропонуватимутьÑÑ Ð· уÑÑ–Ñ… під'єднаних баз даних. Search in all opened databases for matching credentials Credentials mean login data requested via browser extension - Шукати збіги з реєÑтраційними даними в уÑÑ–Ñ… відкритих Ñховищах + Шукати облікові дані в уÑÑ–Ñ… відкритих Ñховищах Advanced - Розширене + Розширені Never ask before accessing credentials Credentials mean login data requested via browser extension - Ðіколи не запитувати перед читаннÑм реєÑтраційних даних + Ðіколи не запитувати про доÑтуп до облікових даних Never ask before updating credentials Credentials mean login data requested via browser extension - Ðіколи не запитувати перед оновленнÑм реєÑтраційних даних + Ðіколи не запитувати про Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¸Ñ… даних Do not ask permission for HTTP Basic Auth @@ -1047,7 +1111,7 @@ Would you like to migrate your existing settings now? Automatically creating or updating string fields is not supported. - Ðвтоматичне ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð° Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÑтових полів не втілене. + Ðвтоматичне ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð° Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÑтових полів не підтримуєтьÑÑ. Return advanced string fields which start with "KPH: " @@ -1055,15 +1119,15 @@ Would you like to migrate your existing settings now? Don't display the popup suggesting migration of legacy KeePassHTTP settings. - Ðе показувати вигульк, що рекомендує Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² заÑтарілого KeePassHTTP. + Ðе показувати Ñпливне вікно з пропозицією міграції налаштувань заÑтарілого KeePassHTTP. Do not prompt for KeePassHTTP settings migration. - Ðе запитувати щодо Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² KeePassHTTP. + Ðе запитувати про міграцію налаштувань KeePassHTTP. Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup. - Ðвтоматично оновлює шлÑÑ… до Ñценаріїв влаÑного обміну повідомленнÑми Ð´Ð»Ñ KeePassXC або двійкового поÑередника KeePassXC під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку. + Ðвтоматично оновлює шлÑÑ… до Ñценаріїв влаÑного обміну повідомленнÑми Ð´Ð»Ñ KeePassXC або двійкового keepassxc-proxy під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку. Update native messaging manifest files at startup @@ -1071,49 +1135,49 @@ Would you like to migrate your existing settings now? Use a custom proxy location if you installed a proxy manually. - ВикориÑтовувати влаÑне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñередника, Ñкщо Ви вÑтановили поÑередника вручну. + ВикориÑтовувати влаÑне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐºÑÑ–, Ñкщо ви вÑтановили його вручну. Use a custom proxy location: Meant is the proxy for KeePassXC-Browser - ВикориÑтовувати влаÑне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñередника: + ВикориÑтовувати влаÑне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐºÑÑ–: Custom proxy location field - Поле влаÑного Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñередника + Поле влаÑного Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐºÑÑ– Browser for custom proxy file - ПереглÑдач Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñƒ влаÑного поÑередника + Браузер Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñƒ влаÑного прокÑÑ– Browse… Button for opening file dialog - + ОглÑд… Use a custom browser configuration location: - ВикориÑтовувати влаÑне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² переглÑдача: + ВикориÑтовувати влаÑне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ— браузера: Browser type: - Тип переглÑдача: + Тип браузера: Toolbar button style - Стиль кнопки Ð´Ð»Ñ Ð¿Ð°Ð½ÐµÐ»Ñ– інÑтрументів + Стиль кнопки в панелі інÑтрументів Config Location: - Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð²: + Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ—: Custom browser location field - Поле влаÑного Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñдача + Поле влаÑного Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð° Browse for custom browser path - Вибрати влаÑний шлÑÑ… Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñдача + Вказати влаÑне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð° Custom extension ID: @@ -1125,23 +1189,15 @@ Would you like to migrate your existing settings now? Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 - Через заходи безпеки у Snap Вам необхідно виконати Ñценарій Ð´Ð»Ñ ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð· переглÑдачем. <br />Ви можете знайти файл Ñценарію в %1 + Через заходи безпеки у Snap, ви маєте запуÑтити Ñкрипт Ð´Ð»Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ñ–Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ñ–Ñ— з браузером.<br />Ви можете знайти цей Ñкрипт у %1 KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2 and %3. %4 - Ð”Ð»Ñ ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð· переглÑдачем потрібен KeePassXC-Browser. <br />Заватнажити Ð´Ð»Ñ %1 Ñ– %2 та %3. %4 + Щоб запрацювала Ñ–Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ñ–Ñ Ð· браузером, потрібне Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ KeePassXC-Browser. <br />Завантажте його Ð´Ð»Ñ %1, %2 та %3. %4 Please see special instructions for browser extension use below - Ðижче Ви можете знайти довідку з викориÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñдача - - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>Помилка:</b> Ðе можливо знайти влаÑного поÑередника за вказаним шлÑхом!<br/>Ð¡Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð· переглÑдачем <b>не працюватиме</b> без поÑередницького заÑтоÑунку. - - - <b>Warning:</b> The following options can be dangerous! - <b>ПопередженнÑ:</b> ці параметри можуть бути небезпечними! + Ðижче ви можете переглÑнути інÑтрукцію Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸ÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñм браузера Executable Files @@ -1153,22 +1209,54 @@ Would you like to migrate your existing settings now? Select custom proxy location - Вибрати влаÑне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñередника + Вибрати влаÑне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐºÑÑ– Select native messaging host folder location - Вибрати Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÐ¸ Ð´Ð»Ñ Ð³Ð¾ÑÐ¿Ð¾Ð´Ð°Ñ€Ñ Ð²Ð»Ð°Ñного обміну повідомленнÑми + Вибрати Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÐ¸ Ð´Ð»Ñ Ð²ÑƒÐ·Ð»Ð° влаÑного обміну повідомленнÑми + + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + Дозволити keepassxc-proxy показувати вÑÑ– запиÑи з назвою, URL-адреÑою та UUID у під'єднаній базі даних. + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + Дозволити обмежений доÑтуп до вÑÑ–Ñ… запиÑів у під'єднаних базах даних (ігнорує Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð¾Ñтупу до Ñайтів) + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>ПопередженнÑ:</b> Змінюйте ці Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð»Ð¸ÑˆÐµ за необхідноÑті. + + + The custom proxy location does not exist. + КориÑтувацького Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐºÑÑ– не Ñ–Ñнує. + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>Помилка:</b> МіÑÑ†ÐµÐ·Ð½Ð°Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувацького прокÑÑ– не Ñ–Ñнує. Виправте це на вкладці розширених налаштувань. + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>Помилка:</b> Ð’Ñтановлений прокÑÑ– відÑутній: %1<br/> Ð’Ñтановіть прокÑÑ– в додаткових налаштуваннÑÑ… або переінÑталюйте програму. + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + + Allow using localhost with Passkeys + CloneDialog Clone Entry Options - + Параметри ÐºÐ»Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу Append ' - Clone' to title - Додати « – клон» до заголовка + Додати "- копіÑ" до заголовка Replace username and password with references @@ -1176,26 +1264,18 @@ Would you like to migrate your existing settings now? Copy history - Скопіювати журнал + Копіювати Ñ–Ñторію CsvImportWidget - - Import CSV fields - Імпортувати Ð¿Ð¾Ð»Ñ CSV - - - filename - назва файлу - size, rows, columns - розмір, Ñ€Ñдки, колонки + розмір, Ñ€Ñдки, Ñтовпчики Column Association - Прив'Ñзка Ñтовпчиків + ÐÑÐ¾Ñ†Ñ–Ð°Ñ†Ñ–Ñ Ñтовпчиків Password @@ -1203,7 +1283,7 @@ Would you like to migrate your existing settings now? Username - Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача + Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Title @@ -1215,15 +1295,15 @@ Would you like to migrate your existing settings now? URL - URL + URL-адреÑа Notes - Примітки + Ðотатки TOTP - ТОП + TOTP Created @@ -1231,11 +1311,11 @@ Would you like to migrate your existing settings now? Last Modified - ОÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð° + ВоÑтаннє змінено Icon - Значок + Піктограма Encoding @@ -1259,7 +1339,7 @@ Would you like to migrate your existing settings now? Field separation - Розділювач полів + Ð Ð¾Ð·Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ–Ð² Comments start with @@ -1297,51 +1377,30 @@ Would you like to migrate your existing settings now? Column %1 Стовпчик %1 - - Imported from CSV file - Імпортовано з файлу CSV - - - Original data: - Початкові дані: - - - Error(s) detected in CSV file! - У файлі CSV знайдено помилки! - [%n more message(s) skipped] [ще %n Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑ‰ÐµÐ½Ð¾][ще %n Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑ‰ÐµÐ½Ð¾][ще %n повідомлень пропущено][ще %n повідомлень пропущено] - Error - Помилка + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - Ð†Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ CSV: помилки запиÑувача: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1, %2, %3 - - - %n byte(s) - %n байт%n байти%n байтів%n байтів - %n row(s) - %n Ñ€Ñдок%n Ñ€Ñдки%n Ñ€Ñдків%n Ñ€Ñдків + CSV row count + %n Ñ€Ñдок%n Ñ€Ñдки%n Ñ€Ñдків%n Ñ€Ñдки %n column(s) - %n колонка%n колонки%n колонок%n колонок + CSV column count + %n Ñтовпчик%n Ñтовпчика%n Ñтовпчиків%n Ñтовпчика @@ -1361,33 +1420,33 @@ Would you like to migrate your existing settings now? Error while reading the database: %1 - Помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñховища: %1 + Помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних: %1 Could not save, database does not point to a valid file. - Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ оÑкільки шлÑÑ… до Ñховища не вказує на придатний файл. + Ðеможливо зберегти, оÑкільки база даних не вказує на дійÑний файл. Database save is already in progress. - Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñховища вже триває. + Ðаразі триває Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð±Ð°Ð·Ð¸ даних. Could not save, database has not been initialized! - Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ оÑкільки Ñховище не започатковане! + Ðеможливо зберегти, оÑкільки базу даних не визначено! Database file has unmerged changes. - Файл Ñховища міÑтить необ'єднані зміни. + Файл бази даних має необ'єднані зміни. %1 Backup database located at %2 %1 -Резервне Ñховище знаходитьÑÑ Ð² %2 +Резервна ÐºÐ¾Ð¿Ñ–Ñ Ð±Ð°Ð·Ð¸ даних знаходитьÑÑ Ð² %2 Key not transformed. This is a bug, please report it to the developers. - + Ключ не перетворено. Це помилка. Будь лаÑка, повідомте про це розробників. Recycle Bin @@ -1398,14 +1457,14 @@ Backup database located at %2 DatabaseOpenDialog Unlock Database - KeePassXC - Розблокувати Ñховище - KeePassXC + Розблокувати базу даних – KeePassXC DatabaseOpenWidget Unlock KeePassXC Database - Розблокувати Ñховище KeePassXC + Розблокувати базу даних KeePassXC Enter Password: @@ -1415,62 +1474,25 @@ Backup database located at %2 Password field Поле Ð¿Ð°Ñ€Ð¾Ð»Ñ - - Enter Additional Credentials (if any): - Введіть додаткові реєÑтраційні дані (Ñкщо Ñ”): - - - Key File: - Файловий ключ: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - - - - Key file help - Довідка щодо файлового ключа - Hardware key slot selection - Вибір гнізда апаратного захиÑту - - - Hardware Key: - Ðпаратний ключ: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - - - - Hardware key help - Довідка щодо апаратних ключів + Вибір роз'єму апаратного ключа Key file to unlock the database - Файловий ключ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñховища + Ключовий файл Ð´Ð»Ñ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних Browse for key file - Вибір файлового ключа + Вибір ключового файлу Browse… - - - - Refresh hardware tokens - Оновити апаратні позначки - - - Refresh - Оновити + ОглÑд… Unlock Database - + Розблокувати базу даних Cancel @@ -1478,15 +1500,15 @@ Backup database located at %2 Unlock - + Розблокувати Please present or touch your YubiKey to continue… - + Ðадайте Ñвій YubiKey або торкнітьÑÑ Ð´Ð¾ нього Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ… Database Version Mismatch - + ВерÑÑ–Ñ— бази даних відрізнÑютьÑÑ The database you are trying to open was most likely @@ -1496,53 +1518,51 @@ You can try to open it anyway, but it may be incomplete and saving any changes may incur data loss. We recommend you update your KeePassXC installation. - + База даних, Ñку ви намагаєтеÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸, ймовірно +Ñтворена новішою верÑією KeePassXC. + +Ви вÑе одно можете Ñпробувати відкрити Ñ—Ñ—, але вона може бути +неповною, а Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ може Ñпричинити втрату даних. + +Рекомендовано оновити вÑтановлену верÑÑ–ÑŽ KeePassXC. Open database anyway - + Ð’Ñе одно відкрити Database unlock canceled. - + Ð Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних ÑкаÑовано. Unlock failed and no password given - Ð Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð¾ невдачі й пароль не надано + Ðе вдалоÑÑ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ñ‚Ð¸, не надано пароль Unlocking the database failed and you did not enter a password. Do you want to retry with an "empty" password instead? To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. - Ð Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñховища зазнало невдачі Ñ– Ви не ввели пароль. -Бажаєте Ñпробувати натоміÑть з порожнім паролем? + Ð Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних зазнало невдачі й ви не ввели пароль. +Хочете Ñпробувати знову з порожнім паролем? -Щоб уникати цього Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñƒ майбутньому, Ви муÑите вибрати в меню в меню «ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñховища / Безпека» Ñ– вÑтановити Ваш пароль. +Щоб уникнути цього Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð² майбутньому, потрібно Ñкинути пароль у меню "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних / Безпека". Retry with empty password Спробувати знову з порожнім паролем - - Failed to authenticate with Windows Hello - - - - Failed to authenticate with Touch ID - - Failed to open key file: %1 - Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¾Ð³Ð¾ ключа зазнало невдачі: %1 + Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ ключовий файл: %1 Old key file format - Старий формат файлового ключа + ЗаÑтарілий формат ключового файлу You are using an old key file format which KeePassXC may<br>stop supporting in the future.<br><br>Please consider generating a new key file by going to:<br><strong>Database &gt; Database Security &gt; Change Key File.</strong><br> - + Ви кориÑтуєтеÑÑ Ð·Ð°Ñтарілим форматом ключового файлу, Ñкий KeePassXC може<br>припинити підтримувати в майбутньому.<br><br>РозглÑньте можливіÑть Ð³ÐµÐ½ÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ ключового файлу в меню:<br><strong>База даних &gt; Безпека бази даних &gt; Змінити ключовий файл.</strong><br> Don't show this warning again @@ -1550,37 +1570,75 @@ To prevent this error from appearing, you must go to "Database Settings / S All files - Ð’ÑÑ– файли + УÑÑ– файли Key files - Файлові ключі + Ключові файли Select key file - Виберіть файловий ключ + Виберіть ключовий файл Cannot use database file as key file - Ðеможливо викориÑтати файл Ñховища Ñк файловий ключ + Ðеможливо викориÑтати файл бази даних Ñк ключовий файл - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - Ви не можете викориÑтовувати файл Ñховища Ñк файловий ключ. -Якщо у Ð’Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” файлового ключа, залиште, будь лаÑка, це поле порожнім. + authenticate to access the database + автентифікуватиÑÑ Ð´Ð»Ñ Ð´Ð¾Ñтупу до бази даних - Detecting hardware keys… - ВиÑÐ²Ð»ÐµÐ½Ð½Ñ Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð¸Ñ… ключів... + Failed to authenticate with Quick Unlock: %1 + Ðе вдалоÑÑ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÑƒÐ²Ð°Ñ‚Ð¸ÑÑ Ð·Ð° допомогою швидкого Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ (Quick Unlock): %1 - No hardware keys detected - Ðе виÑвлено апаратних ключів + Select Key File: + - Select hardware key… - Вибрати ключ апаратного захиÑту... + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + + Click to add a key file. + + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + + Use hardware key [Serial: %1] + + + + Use hardware key + + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + + + + KeePassXC database file selected + + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + + + + No hardware keys found. + + + + Refresh Hardware Keys + @@ -1592,13 +1650,9 @@ If you do not have a key file, please leave the field empty. DatabaseSettingsDialog - - Advanced Settings - Розширене Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ - General - Загальне + Загальні Security @@ -1606,7 +1660,7 @@ If you do not have a key file, please leave the field empty. Database Credentials - РеєÑтраційні дані Ñховища + Облікові дані бази даних Encryption Settings @@ -1614,11 +1668,11 @@ If you do not have a key file, please leave the field empty. Browser Integration - Ð¡Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð· переглÑдачем + Ð†Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ñ–Ñ Ð· браузером Maintenance - + ОбÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ @@ -1627,25 +1681,17 @@ If you do not have a key file, please leave the field empty. KeePassXC-Browser settings ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ KeePassXC-Browser - - Convert KeePassHTTP data - - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - - - - Refresh database root group ID - Оновити ідентифікатор кореневої групи Ñховища - Disconnect all browsers - Від'єднати від уÑÑ–Ñ… переглÑдачів + Від'єднати вÑÑ– браузери Forget all site-specific settings on entries - Забути оÑобливе Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñайтів у вÑÑ–Ñ… запиÑах + Забути Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñайтів у вÑÑ–Ñ… запиÑах + + + Refresh database root group ID + Оновити ідентифікатор кореневої групи бази даних Stored keys @@ -1653,15 +1699,15 @@ If you do not have a key file, please leave the field empty. Stored browser keys - Збережені ключі переглÑдачів + Збережені ключі браузерів Remove selected key - Видалити вибраний ключ + Вилучити вибраний ключ Remove - Видалити + Вилучити Delete the selected key? @@ -1670,8 +1716,8 @@ If you do not have a key file, please leave the field empty. Do you really want to delete the selected key? This may prevent connection to the browser plugin. - Ви дійÑно бажаєте видалити позначений ключ? -Це може пошкодити ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð· модулем переглÑдача. + Ви дійÑно хочете видалити вибраний ключ? +Це може перешкодити з'єднанню з плагіном браузера. Key @@ -1687,85 +1733,80 @@ This may prevent connection to the browser plugin. Enable Browser Integration to access these settings. - Увімкніть ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð· переглÑдачем, щоб діÑтати доÑтуп до цих параметрів. + Щоб отримати доÑтуп до цих налаштувань, увімкніть інтеграцію з браузером. Do you really want to disconnect all browsers? This may prevent connection to the browser plugin. - Ви дійÑно хочете від'єднати уÑÑ– переглÑдачі? -Це може пошкодити ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð· модулем переглÑдача. - - - KeePassXC: No keys found - KeePassXC: жодного ключа не знайдено + Ви дійÑно хочете від'єднати вÑÑ– браузери? +Це може перешкодити з'єднанню з плагіном браузера. No shared encryption keys found in KeePassXC settings. - Ðе знайдено жодного Ñпільного ключа у параметрах KeePassXC. - - - KeePassXC: Removed keys from database - KeePassXC: ключі видалено зі Ñховища + У налаштуваннÑÑ… KeePassXC не знайдено Ñпільних ключів шифруваннÑ. Successfully removed %n encryption key(s) from KeePassXC settings. - УÑпішно видалено %n ключ ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð· параметрів KeePassXC.УÑпішно видалено %n ключі ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð· параметрів KeePassXC.УÑпішно видалено %n ключів ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð· параметрів KeePassXC.УÑпішно видалено %n ключів ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð· параметрів KeePassXC. + З налаштувань KeePassXC уÑпішно вилучено %n ключ шифруваннÑ.З налаштувань KeePassXC уÑпішно вилучено %n ключі шифруваннÑ.З налаштувань KeePassXC уÑпішно вилучено %n ключів шифруваннÑ.З налаштувань KeePassXC уÑпішно вилучено %n ключів шифруваннÑ. Do you really want forget all site-specific settings on every entry? Permissions to access entries will be revoked. - Ви дійÑно бажаєте позбутиÑÑ Ð¾Ñобливого Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÑÑ–Ñ… Ñайтів у кожному запиÑÑ–? -Дозволи доÑтупу до запиÑів буде ÑкаÑовано. + Ви дійÑно хочете забути Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÑÑ–Ñ… Ñайтів у кожному запиÑÑ–? +Дозволи доÑтупу до запиÑів буде відкликано. Removing stored permissions… - Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¸Ñ… дозволів... + Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¸Ñ… дозволів… Abort - СкаÑувати - - - KeePassXC: Removed permissions - KeePassXC: дозволи видалено + Перервати Successfully removed permissions from %n entry(s). - УÑпішно видалено дозволи з %n запиÑу.УÑпішно видалено дозволи з %n запиÑів.УÑпішно видалено дозволи з %n запиÑів.УÑпішно видалено дозволи з %n запиÑів. - - - KeePassXC: No entry with permissions found! - KeePassXC: Ð·Ð°Ð¿Ð¸Ñ Ð· дозволами не знайдено! + УÑпішно вилучено дозволи з %n запиÑу.УÑпішно вилучено дозволи з %n запиÑів.УÑпішно вилучено дозволи з %n запиÑів.УÑпішно вилучено дозволи з %n запиÑів. The active database does not contain an entry with permissions. - Поточне Ñховище не міÑтить запиÑів з дозволами. - - - Move KeePassHTTP attributes to custom data - ПереміÑтити ознаки KeePassHTTP до кориÑтувацьких даних - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - + Ðктивна база даних не міÑтить запиÑу з дозволами. Refresh database ID - Оновити ідентифікатор Ñховища + Оновити ідентифікатор бази даних Do you really want refresh the database ID? This is only necessary if your database is a copy of another and the browser extension cannot connect. - Ви дійÑно бажаєте оновити ідентифікатор Ñховища? -Це необхідно лише тоді, коли Ваше Ñховище Ñ” копією іншого Ñ– не вдаєтьÑÑ Ð¿Ñ–Ð´'єднати Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñдача. + Ви дійÑно хочете оновити ідентифікатор бази даних? +Це потрібно лише Ñкщо ваша база даних Ñ” копією іншої та неможливо під'єднати Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°. + + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Конвертувати заÑтарілі атрибути KeePassHTTP у кориÑтувацькі дані, ÑуміÑні з KeePassXC-Browser + + + No keys found + Ðе знайдено жодних ключів + + + Removed keys from database + Видалено ключі з бази даних + + + Removed permissions + Вилучено дозволи + + + No entry with permissions found! + Ðе знайдено запиÑи з дозволами! DatabaseSettingsWidgetDatabaseKey Add additional protection… - + Додати розширений захиÑт… No password set @@ -1775,7 +1816,7 @@ This is only necessary if your database is a copy of another and the browser ext WARNING! You have not set a password. Using a database without a password is strongly discouraged! Are you sure you want to continue without a password? - <b>ПопередженнÑ!</b> Ви не вÑтановили пароль. Ðедоцільно викориÑтовувати Ñховище без паролÑ! + ПОПЕРЕДЖЕÐÐЯ! Ви не вÑтановили пароль. Ðе рекомендовано кориÑтуватиÑÑ Ð±Ð°Ð·Ð¾ÑŽ даних без парольного захиÑту! Ви дійÑно хочете продовжити без паролÑ? @@ -1785,11 +1826,11 @@ Are you sure you want to continue without a password? No encryption key added - Жодного шифрувального ключа не додано + Ðе додано жодного ключа ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ You must add at least one encryption key to secure your database! - Ви муÑите додати щонайменьше один шифрувальний ключ, щоб захиÑтити Ваше Ñховище! + Обов'Ñзково додайте принаймні один ключ ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð·Ð°Ñ…Ð¸Ñту бази даних! Unknown error @@ -1797,7 +1838,19 @@ Are you sure you want to continue without a password? Failed to change database credentials - Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ облікові дані Ñховища + Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ облікові дані бази даних + + + Weak password + Слабкий пароль + + + You must enter a stronger password to protect your database. + Вам потрібно ввеÑти більш Ñкладний пароль, щоб захиÑтити вашу базу даних. + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + Це Ñлабкий пароль! Ð”Ð»Ñ ÐºÑ€Ð°Ñ‰Ð¾Ð³Ð¾ захиÑту ваших Ñекретів, вам Ñлід обрати Ñкладніший пароль. @@ -1806,37 +1859,29 @@ Are you sure you want to continue without a password? Decryption Time: Ð§Ð°Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ: - - Change existing decryption time - Змінити наÑвний Ñ‡Ð°Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ - - - Change - Змінити - Decryption time in seconds Ð§Ð°Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð² Ñекундах Higher values offer more protection, but opening the database will take longer. - Вищі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ–Ð¿ÑˆÑƒÑŽÑ‚ÑŒ захиÑÑ‚, але Ñповільнюють Ð²Ñ–Ð´ÐºÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ñховища. + Вище Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ–Ð¿ÑˆÑƒÑ” захиÑÑ‚, але Ñповільнює Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð±Ð°Ð·Ð¸ даних. Database format: - Формат Ñховища: + Формат бази даних: Database format - Формат Ñховища + Формат бази даних Format cannot be changed: Your database uses KDBX 4 features - + Ðеможливо змінити формат: У вашій базі даних викориÑтовуютьÑÑ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— KDBX 4 Unless you need to open your database with other programs, always use the latest format. - + Якщо вам потрібно відкрити Ñвою базу даних з викориÑтаннÑм інших програм, завжди кориÑтуйтеÑÑ Ð½Ð°Ð¹Ð½Ð¾Ð²Ñ–ÑˆÐ¸Ð¼ форматом. Encryption Algorithm: @@ -1848,7 +1893,7 @@ Are you sure you want to continue without a password? AES: 256 Bit (default) - AES: 256 біт (типове) + AES: 256 біт (типово) Twofish: 256 Bit @@ -1868,51 +1913,48 @@ Are you sure you want to continue without a password? Transform rounds - КількіÑть циклів Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ + Циклів Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Memory Usage: - ВикориÑтана пам'Ñть: + ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'Ñті: Memory usage - ВикориÑтана пам'Ñть + ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'Ñті Parallelism: - ПаралельніÑть: + Паралелізм: Parallelism - ПаралельніÑть + Паралелізм KDBX 4 (recommended) - + KDBX 4 (рекомендовано) KDBX 3 - - - - unchanged - Database decryption time is unchanged - без змін + KDBX 3 Number of rounds too high Key transformation rounds - КількіÑть циклів надто виÑока + КількіÑть циклів занадто виÑока You are using a very high number of key transform rounds with Argon2. If you keep this number, your database may take hours, days, or even longer to open. - + Ви викориÑтовуєте дуже виÑоке Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†Ð¸ÐºÐ»Ñ–Ð² Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° з Argon2. + +Якщо ви збережете це значеннÑ, Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð²Ð°ÑˆÐ¾Ñ— бази даних може тривати години, дні, чи навіть більше. Understood, keep number - Зрозуміло, залишити таку кількіÑть + Зрозуміло, зберегти цю кількіÑть Cancel @@ -1921,77 +1963,91 @@ If you keep this number, your database may take hours, days, or even longer to o Number of rounds too low Key transformation rounds - КількіÑть циклів надто низька + КількіÑть циклів занадто низька You are using a very low number of key transform rounds with AES-KDF. If you keep this number, your database will not be protected from brute force attacks. - + Ви викориÑтовуєте дуже низьке Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†Ð¸ÐºÐ»Ñ–Ð² Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° з AES-KDF. + +Якщо ви збережете це значеннÑ, ваша база даних не буде захищена від атак грубого зламу. KDF unchanged - ФОК не змінено + KDF не змінено Failed to transform key with new KDF parameters; KDF unchanged. - Спроба перетворити ключ згідно з новими параметрами ФОК зазнала невдачі; ФОК залишилаÑÑŒ без змін. + Ðе вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ ключ з новими параметрами KDF; KDF не змінено. MiB Abbreviation for Mebibytes (KDF settings) - МіБМіБМіБМіБ + МіБ МіБ МіБ МіБ thread(s) Threads for parallel execution (KDF settings) - потікпотокипотоківпотоків + потік потоки потоків потоків + + + Encryption Settings: + Параметри шифруваннÑ: + + + Basic + ОÑновний + + + Advanced + Додатково DatabaseSettingsWidgetFdoSecrets Exposed Entries - ВиÑтавлені запиÑи + Розкриті запиÑи Don't expose this database - Ðе виÑтавлÑти це Ñховище + Ðе розкривати цю базу даних Expose entries under this group: - ВиÑтавити запиÑи з такої групи: + Розкрити запиÑи з такої групи: Enable Secret Service to access these settings. - Увімкніть «Службу таємниць», щоб одержати доÑтуп до цих параметрів. + Увімкніть «Службу Ñекретів» Ð´Ð»Ñ Ð´Ð¾Ñтупу до цих налаштувань. DatabaseSettingsWidgetGeneral Database Metadata - + Метадані бази даних Database name: - Ðазва Ñховища: + Ðазва бази даних: Database name field - Поле назви Ñховища + Поле назви бази даних Database description: - ÐžÐ¿Ð¸Ñ Ñховища: + ÐžÐ¿Ð¸Ñ Ð±Ð°Ð·Ð¸ даних: Database description field - Поле опиÑу Ñховища + Поле опиÑу бази даних Default username: - Типове Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача: + Типове ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача: Default username field @@ -1999,23 +2055,15 @@ If you keep this number, your database will not be protected from brute force at History Settings - ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»Ñƒ + ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ñторії Maximum number of history items per entry - Ðайбільша кількіÑть заміток журналу Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу - - - Max. history items: - МакÑ. запиÑів журналу: + МакÑимальна кількіÑть елементів Ñ–Ñторії на один Ð·Ð°Ð¿Ð¸Ñ Maximum size of history per entry - МакÑимальний розмір журналу Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу - - - Max. history size: - МакÑ. розмір журналу: + МакÑимальний розмір Ñ–Ñторії на один Ð·Ð°Ð¿Ð¸Ñ MiB @@ -2027,7 +2075,7 @@ If you keep this number, your database will not be protected from brute force at Additional Database Settings - Додаткове Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñховища + Додаткові Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних Enable compression (recommended) @@ -2041,18 +2089,76 @@ If you keep this number, your database will not be protected from brute force at Do you want to delete the current recycle bin and all its contents? This action is not reversible. Ви дійÑно хочете видалити Ñмітник Ñ– веÑÑŒ його вміÑÑ‚? -Ð’Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ неможливим. +Це незворотна діÑ. (old) - (Ñтарий) + (заÑтарілий) + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + Зберігаючи це Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡Ð¸ редагуючи +запиÑ, Ñтаріші елементи Ñ–Ñторії запиÑу +будуть вилучені, залишаючи лише +зазначену кількіÑть елементів. + + + Limit the amount of history items per entry to: + Обмежити кількіÑть елементів Ñ–Ñторії в запиÑах до: + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + Зберігаючи це Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡Ð¸ редагуючи +запиÑ, Ñтаріші елементи Ñ–Ñторії запиÑу +будуть вилучені, залишаючи лише +зазначену кількіÑть елементів. + + + Limit the total size of history items per entry to: + Обмежити загальний обÑÑг елементів Ñ–Ñторії в запиÑах до: + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Переміщувати запиÑи до Ñмітника +заміÑть Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ—Ñ… з бази даних. +Вилучені зі Ñмітника запиÑи +оÑтаточно вилучаютьÑÑ Ð· бази даних. + + + Autosave delay since last change + Затримка Ð°Ð²Ñ‚Ð¾Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð· моменту оÑтанньої зміни + + + Autosave delay + Затримка Ð°Ð²Ñ‚Ð¾Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ + + + Autosave delay since last change in minutes + Затримка Ð°Ð²Ñ‚Ð¾Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð· моменту оÑтанньої зміни в хвилинах + + + min + хв + + + Autosave delay since last change checkbox + Прапорець затримки Ð°Ð²Ñ‚Ð¾Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð· моменту оÑтанньої зміни DatabaseSettingsWidgetKeeShare Sharing - Спільне кориÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ + Спільний доÑтуп Breadcrumb @@ -2068,7 +2174,7 @@ This action is not reversible. Last Signer - ОÑтанній підпиÑувач + ОÑтанній підпиÑант Certificates @@ -2084,54 +2190,54 @@ This action is not reversible. DatabaseSettingsWidgetMaintenance Manage Custom Icons - + Керувати влаÑними піктограмами Delete selected icon(s) - + Видалити вибрані піктограми Delete all custom icons not in use by any entry or group - + Видалити вÑÑ– влаÑні піктограми не викориÑтовувані жодним запиÑом або групою Purge unused icons - + Вилучити невикориÑтані піктограми Confirm Deletion - + Підтвердити Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ At least one of the selected icons is currently in use by at least one entry or group. The icons of all affected entries and groups will be replaced by the default icon. Are you sure you want to delete icons that are currently in use? - + Принаймні одна з вибраних піктограм викориÑтовуєтьÑÑ Ñ‰Ð¾Ð½Ð°Ð¹Ð¼ÐµÐ½ÑˆÐµ одним запиÑом або групою. Піктограми вÑÑ–Ñ… пов'Ñзаних запиÑів Ñ– груп будуть замінені типовою піктограмою. Ви впевнені, що хочете видалити викориÑтовувані піктограми? Custom Icons Are In Use - + ВлаÑні піктограми викориÑтовуютьÑÑ All custom icons are in use by at least one entry or group. - + УÑÑ– влаÑні піктограми викориÑтовуютьÑÑ Ð¿Ñ€Ð¸Ð½Ð°Ð¹Ð¼Ð½Ñ– в одному запиÑÑ– чи групі. Purged Unused Icons - + ÐевикориÑтані піктограми вилучено Purged %n icon(s) from the database. - + З бази даних вилучено %n піктограму.З бази даних вилучено %n піктограми.З бази даних вилучено %n піктограм.З бази даних вилучено %n піктограм. DatabaseSettingsWidgetMetaDataSimple Database Name: - Ðазва Ñховища: + Ðазва бази даних: Database name field - Поле назви Ñховища + Поле назви бази даних Description: @@ -2139,117 +2245,104 @@ This action is not reversible. Database description field - Поле опиÑу Ñховища + Поле опиÑу бази даних DatabaseTabWidget Database creation error - Помилка ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñховища + Помилка ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð±Ð°Ð·Ð¸ даних The created database has no key or KDF, refusing to save it. This is definitely a bug, please report it to the developers. - Створене Ñховище не має ані ключа, ані ФОК, Ñ– тому не може бути збереженим. -Це певно Ñ” вадою програми, будь лаÑка, повідомте про це розробникам. + Створена база даних не має ключа або KDF, тому Ñ—Ñ— неможливо зберегти. +Це напевне помилка програми. Будь лаÑка, повідомте про це розробників. KeePass 2 Database - Сховище KeePass 2 + База даних KeePass 2 All files - Ð’ÑÑ– файли + УÑÑ– файли Open database - Відкрити Ñховище + Відкрити базу даних Failed to open %1. It either does not exist or is not accessible. - Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ %1. Він або не Ñ–Ñнує, або не Ñ” доÑтупним. + Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ %1. Він не Ñ–Ñнує або недоÑтупний. CSV file Файл CSV - - Select CSV file - Вибрати файл CSV - Merge database - Об'єднати Ñховище - - - KeePass 1 database - Сховище KeePass 1 - - - Open KeePass 1 database - Відкрити Ñховище KeePass 1 - - - Open OPVault - Відкрити OPVault + Об'єднати базу даних Export database to CSV file - ЕкÑпортувати Ñховище до файлу CSV + ЕкÑпортувати базу даних до файлу CSV Writing the CSV file failed. - Ðе вдалоÑÑŒ запиÑати CSV файл. + Ðе вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати файл CSV. Writing the HTML file failed. Ðе вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати файл HTML. + + Export database to XML file + ЕкÑпортувати базу даних до файлу XML + + + XML file + Файл XML + + + Writing the XML file failed + Ðе вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати у файл XML + Export Confirmation - Ð¡Ñ…Ð²Ð°Ð»ÐµÐ½Ð½Ñ ÐµÐºÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ + ÐŸÑ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ ÐµÐºÑпорту You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - Ви збираєтеÑÑŒ екÑпортувати Ваше Ñховище в незашифрований файл. Це зробить Ваші паролі Ñ– вразливі дані незахищеними! Ви дійÑно бажаєте продовжити? - - - New Database - Ðове Ñховище - - - %1 [New Database] - Database tab name modifier - %1 [Ðове Ñховище] + Ви збираєтеÑÑŒ екÑпортувати Ñвою базу даних у незашифрований файл. Це зробить ваші паролі та важливу інформацію вразливими! Ви дійÑно хочете продовжити? %1 [Locked] Database tab name modifier - %1 [Заблоковане] + %1 [Заблоковано] DatabaseWidget - Database Tags - + Searches and Tags + Пошук та мітки Searching… - + Триває пошук… Shared group… - + Спільна група… Confirm Auto-Type - + Підтвердити Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Perform Auto-Type into the previously active window? - + Виконати Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð² попередньому активному вікні? Execute command? @@ -2269,35 +2362,39 @@ This is definitely a bug, please report it to the developers. Do you really want to delete the group "%1" for good? - Ви дійÑно хочете оÑтаточно видалити групу «%1»? + Ви дійÑно хочете оÑтаточно видалити групу "%1"? Move group to recycle bin? - ПереміÑтити групу у Ñмітник? + ПереміÑтити групу до Ñмітника? Do you really want to move the group "%1" to the recycle bin? - Ви дійÑно хочете переміÑтити групу «%1» у Ñмітник? + Ви дійÑно хочете переміÑтити групу "%1" до Ñмітника? Expired entries - + Протерміновані запиÑи + + + Entries expiring within %1 day(s) + Термін дії запиÑу завершуєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· %1 деньТермін дії запиÑу завершуєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· %1 дніТермін дії запиÑу завершуєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· %1 днівТермін дії запиÑу завершуєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· %1 дні No current database. - Сховище не обране. + Ðемає поточної бази даних. No source database, nothing to do. - Джерельне Ñховище відÑутнє, Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð½Ñ Ð½Ðµ потрібне. + Ðемає вихідної бази даних. Ðемає дій до виконаннÑ. Successfully merged the database files. - Файли Ñховищ вдало об'єднано. + Файли баз даних уÑпішно об'єднано. Database was not modified by merge operation. - Об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½Ðµ змінило Ñховище. + Об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½Ðµ змінило базу даних. Search Results (%1) @@ -2305,26 +2402,38 @@ This is definitely a bug, please report it to the developers. No Results - Збіги відÑутні + Ðічого не знайдено + + + Save + Зберегти + + + Enter a unique name or overwrite an existing search from the list: + Введіть унікальну назву або перезапишіть наÑвний пошук зі ÑпиÑку: + + + Save Search + Зберегти пошук Lock Database? - Заблокувати Ñховище? + Заблокувати базу даних? You are editing an entry. Discard changes and lock anyway? - Ви змінюєте запиÑ. Відкинути зміни Ñ– вÑе одно заблокувати? + Ви редагуєте запиÑ. Відхилити зміни й заблокувати? "%1" was modified. Save changes? - «%1» змінено. + "%1" було змінено. Зберегти зміни? Database was modified. Save changes? - Сховище змінено. + Базу даних було змінено. Зберегти зміни? @@ -2337,7 +2446,7 @@ Save changes? The database file has changed. Do you want to load the changes? - Файл Ñховища змінено. Завантажити зміни? + Файл бази даних змінивÑÑ. Завантажити зміни? Merge Request @@ -2346,13 +2455,13 @@ Save changes? The database file has changed and you have unsaved changes. Do you want to merge your changes? - Файл Ñховища було змінено, а Ви маєте незбережені зміни. -Об‘єднати ці зміни? + Файл бази даних було змінено, у Ð²Ð°Ñ Ñ‚Ð°ÐºÐ¾Ð¶ Ñ” незбережені зміни. +Хочете об'єднати зміни? Could not open the new database file while attempting to autoreload. Error: %1 - Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ файлу Ñховища зазнало невдачі під Ñ‡Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ перевантаженнÑ. + Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ новий файл бази даних під Ñ‡Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ перезавантаженнÑ. Помилка: %1 @@ -2362,12 +2471,12 @@ Error: %1 KeePassXC has failed to save the database multiple times. This is likely caused by file sync services holding a lock on the save file. Disable safe saves and try again? - KeePassXC не зміг зберегти Ñховище кілька разів поÑпіль. Швидше за вÑе це ÑталоÑÑ Ñ‚Ð¾Ð¼Ñƒ, що Ñлужба ÑƒÐ·Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² блокує файл Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу. -Вимкнути безпечне Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ– Ñпробувати знов? + KeePassXC не зміг зберегти базу даних кілька разів поÑпіль. Ймовірно, це Ñпричинено Ñлужбою Ñинхронізації, Ñка блокує Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ. +Вимкнути безпечне Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ– Ñпробувати знову? Writing the database failed: %1 - ЗапиÑати Ñховище не вдалоÑÑ: %1 + Ðе вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати в базу даних: %1 Passwords @@ -2375,15 +2484,15 @@ Disable safe saves and try again? Save database as - Зберегти Ñховище Ñк + Зберегти базу даних Ñк KeePass 2 Database - Сховище KeePass 2 + База даних KeePass 2 Save database backup - Зберегти резервну копію Ñховища + Зберегти резервну копію бази даних Empty recycle bin? @@ -2391,15 +2500,20 @@ Disable safe saves and try again? Are you sure you want to permanently delete everything from your recycle bin? - Ви дійÑно бажаєте оÑтаточно видалити вÑе зі Ñмітника? + Ви дійÑно хочете оÑтаточно видалити вÑе зі Ñмітника? Could not find database file: %1 - Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ файл Ñховища: %1 + Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ файл бази даних: %1 - - Entries expiring within %1 day(s) - + + New Database + Ðова база даних + + + %1 [New Database] + Database tab name modifier + %1 [Ðова база даних] @@ -2410,11 +2524,11 @@ Disable safe saves and try again? Advanced - Розширене + Додатково Icon - Значок + Піктограма Auto-Type @@ -2422,19 +2536,19 @@ Disable safe saves and try again? Browser Integration - Ð¡Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð· переглÑдачем + Ð†Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ñ–Ñ Ð· браузером <empty URL> - <порожній URL> + <Ð¿Ð¾Ñ€Ð¾Ð¶Ð½Ñ URL-адреÑа> Confirm Removal - Схваліть Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ + Підтвердити Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Are you sure you want to remove this URL? - Ви дійÑно бажаєте видалити цей URL? + Ви дійÑно хочете вилучити цю URL-адреÑу? Properties @@ -2442,15 +2556,15 @@ Disable safe saves and try again? History - Журнал + ІÑÑ‚Ð¾Ñ€Ñ–Ñ SSH Agent - ПоÑередник SSH + SSH агент n/a - немає + н/д (encrypted) @@ -2458,11 +2572,11 @@ Disable safe saves and try again? Select private key - Вибрати таємний ключ + Вибрати приватний ключ Entry history - Журнал запиÑу + ІÑÑ‚Ð¾Ñ€Ñ–Ñ Ð·Ð°Ð¿Ð¸Ñу Add entry @@ -2474,33 +2588,37 @@ Disable safe saves and try again? Some Browser Integration settings are overridden by group settings. - + ДеÑкі Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ñ–Ñ— з браузером перевизначені налаштуваннÑми групи. Invalid Entry - Ðепридатний Ð·Ð°Ð¿Ð¸Ñ + ÐедійÑний Ð·Ð°Ð¿Ð¸Ñ An external merge operation has invalidated this entry. Unfortunately, any changes made have been lost. - Ð—Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð¾Ð±'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð·Ð½ÐµÑ‡Ð¸Ð½Ð¸Ð»Ð° цей запиÑ. -Ðа жаль, вÑÑ– зміни загублено. + Ð—Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð¾Ð±'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð·Ñ€Ð¾Ð±Ð¸Ð»Ð° цей Ð·Ð°Ð¿Ð¸Ñ Ð½ÐµÐ´Ñ–Ð¹Ñним. +Ðа жаль, будь-Ñкі зміни було втрачено. Auto-Type Validation Error - + Помилка перевірки Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ An error occurred while validating the custom Auto-Type sequence: %1 Would you like to correct it? - + Під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ влаÑної поÑлідовноÑті Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð²Ð¸Ð½Ð¸ÐºÐ»Ð° помилка: +%1 +Бажаєте виправити? An error occurred while validating the Auto-Type sequence for "%1": %2 Would you like to correct it? - + Під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ поÑлідовноÑті Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð´Ð»Ñ "%1" виникла помилка: +%2 +Бажаєте виправити? Entry updated successfully. @@ -2512,19 +2630,19 @@ Would you like to correct it? Would you like to save changes to this entry? - Бажаєте зберегти зміни внеÑені до цього запиÑу? + Зберегти зміни до цього запиÑу? New attribute - Ðова ознака + Ðовий атрибут New attribute %1 - Ðова ознака %1 + Ðовий атрибут %1 Are you sure you want to remove this attribute? - Ви дійÑно бажаєте видалити цю ознаку? + Ви дійÑно бажаєте видалити цей атрибут? Reveal @@ -2538,40 +2656,40 @@ Would you like to correct it? Hide Сховати + + %n hour(s) + %n година%n години%n годин%n години + %n week(s) - %n тиждень%n тижнÑ%n тижнів%n тижнів + %n тиждень%n тижні%n тижнів%n тижні %n month(s) - %n міÑÑць%n міÑÑцÑ%n міÑÑців%n міÑÑців + %n міÑÑць%n міÑÑці%n міÑÑців%n міÑÑці %n year(s) - %n рік%n роки%n років%n років - - - %n hour(s) - + %n рік%n роки%n років%n роки EditEntryWidgetAdvanced Additional attributes - Додаткові ознаки + Додаткові атрибути Attribute selection - Вибір ознаки + Вибір атрибутів Attribute value - Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð·Ð½Ð°ÐºÐ¸ + Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð° Add a new attribute - Додати нову ознаку + Додати новий атрибут Add @@ -2579,23 +2697,23 @@ Would you like to correct it? Remove selected attribute - Видалити вибрану ознаку + Видалити вибраний атрибут Remove - Видалити + Вилучити Edit attribute name - Змінити назву ознаки + Редагувати назву атрибута Edit Name - Змінити назву + Перейменувати Toggle attribute protection - Перемкнути захиÑÑ‚ ознаки + Перемкнути захиÑÑ‚ атрибута Protect @@ -2603,7 +2721,7 @@ Would you like to correct it? Show a protected attribute - Показати захищену ознаку + Показати захищений атрибут Reveal @@ -2611,15 +2729,15 @@ Would you like to correct it? Attachments - Додатки + Ð’ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ If checked, the entry will not appear in reports like Health Check and HIBP even if it doesn't match the quality requirements. - + Якщо позначено, Ð·Ð°Ð¿Ð¸Ñ Ð½Ðµ з'ÑвлÑтиметьÑÑ Ñƒ звітах перевірки здоров'Ñ Ñ‚Ð° HIBP, навіть Ñкщо він не задовольнÑÑ” вимог ÑкоÑті. Exclude from database reports - Виключити зі звітів по Ñховищам + Виключити зі звітів баз даних Foreground Color: @@ -2650,7 +2768,7 @@ Would you like to correct it? Use custom Auto-Type sequence: - ВикориÑтовувати Ñвою поÑлідовніÑть автозаповненнÑ: + ВикориÑтовувати влаÑну поÑлідовніÑть автозаповненнÑ: Custom Auto-Type sequence @@ -2658,23 +2776,33 @@ Would you like to correct it? Open Auto-Type help webpage - Відкрити Ñторінку довідки щодо Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ + Відкрити вебÑторінку довідки Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Window Associations - Прив'Ñзки вікон + ÐÑоціації вікон Existing window associations - ÐаÑвні прив'Ñзки вікон + ÐаÑвні аÑоціації вікон Add new window association - Додати нову прив'Ñзку вікна + Додати нову аÑоціацію вікна + + + + + Add item + + Remove selected window association - Видалити вибрану прив'Ñзку вікна + Вилучити вибрану аÑоціацію вікна + + + - + Remove item + - Window title: @@ -2686,7 +2814,7 @@ Would you like to correct it? Set the window association title - Ð’Ñтановити заголовок Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²'Ñзки вікна + Ð’Ñтановити аÑоціацію із заголовком вікна You can use an asterisk to match everything @@ -2694,28 +2822,18 @@ Would you like to correct it? Use a specific sequence for this association: - ВикориÑтовувати певну поÑлідовніÑть Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— прив'Ñзки: + ВикориÑтовувати певну поÑлідовніÑть Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— аÑоціації: Custom Auto-Type sequence for this window ВлаÑна поÑлідовніÑть Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ вікна - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser These settings affect to the entry's behaviour with the browser extension. - Ці параметри впливають на поведінку запиÑу в розширенні переглÑдача. + Ці параметри впливають на поведінку запиÑу в розширенні браузера. General @@ -2723,15 +2841,15 @@ Would you like to correct it? Hide this entry from the browser extension - Сховати цей Ð·Ð°Ð¿Ð¸Ñ Ð²Ñ–Ð´ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñдача + Сховати цей Ð·Ð°Ð¿Ð¸Ñ Ð²Ñ–Ð´ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð° Skip Auto-Submit for this entry - ПропуÑкати автоматичне надÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ запиÑу + Ðе надÑилати автоматично дані цього запиÑу Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. - ÐадÑилати цей параметр до переглÑдача лише в діалогах автентифікації HTTP. Якщо увімкнено, цей Ð·Ð°Ð¿Ð¸Ñ Ð½Ðµ буде показано Ð´Ð»Ñ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¸Ñ… форм входу. + ÐадÑилати цей параметр до браузера лише в діалогах автентифікації HTTP. Якщо увімкнено, цей Ð·Ð°Ð¿Ð¸Ñ Ð½Ðµ пропонуватиметьÑÑ Ð´Ð»Ñ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¸Ñ… форм входу. Use this entry only with HTTP Basic Auth @@ -2739,7 +2857,7 @@ Would you like to correct it? Do not send this setting to the browser for HTTP Auth dialogs. If enabled, HTTP Auth dialogs will not show this entry for selection. - Ðе надÑилати цей параметр до переглÑдача в діалогах автентифікації HTTP. Якщо ввімкнено, цей Ð·Ð°Ð¿Ð¸Ñ Ð½Ðµ буде показано Ð´Ð»Ñ Ð´Ñ–Ð°Ð»Ð¾Ð³Ñ–Ð² автентифікації HTTP. + Ðе надÑилати цей параметр до браузера в діалогах автентифікації HTTP. Якщо увімкнено, цей Ð·Ð°Ð¿Ð¸Ñ Ð½Ðµ пропонуватиметьÑÑ Ð´Ð»Ñ Ð´Ñ–Ð°Ð»Ð¾Ð³Ñ–Ð² автентифікації HTTP. Do not use this entry with HTTP Basic Auth @@ -2755,22 +2873,22 @@ Would you like to correct it? Remove - Видалити + Вилучити Edit - Змінити + Редагувати EditEntryWidgetHistory Entry history selection - Вибір журналу запиÑу + Вибір Ñ–Ñторії запиÑу Show entry at selected history state - Показати вибраний хронологічний Ñтан запиÑу + Показати Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° Ñ‡Ð°Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ Ñтану Ñ–Ñторії Show @@ -2778,7 +2896,7 @@ Would you like to correct it? Restore entry to selected history state - Відновити Ð·Ð°Ð¿Ð¸Ñ Ð· вибраного хронологічного Ñтану + Відновити Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ Ñтану вибраного чаÑу Ñ–Ñторії Restore @@ -2786,7 +2904,7 @@ Would you like to correct it? Delete selected history state - Видалити вибраний хронологічний Ñтан + Видалити вибраний Ð·Ð°Ð¿Ð¸Ñ Ñ–Ñторії Delete @@ -2794,11 +2912,11 @@ Would you like to correct it? Delete all history - Видалити веÑÑŒ журнал + Видалити вÑÑŽ Ñ–Ñторію Delete all - Видалити вÑÑ– + Видалити вÑе @@ -2811,45 +2929,25 @@ Would you like to correct it? Notes field Поле нотаток - - Toggle the checkbox to reveal the notes section. - ÐатиÑніть перемикач, щоб показати розділ нотаток. - Username field Поле імені кориÑтувача - - Toggle notes visible - Перемкнути видиміÑть нотаток - - - Notes: - Примітки: - Expiration field - Поле Ð·Ð½ÐµÑ‡Ð¸Ð½ÐµÐ½Ð½Ñ + Поле терміну дії Expiration Presets - Типове Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½ÐµÑ‡Ð¸Ð½ÐµÐ½Ð½Ñ + ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÑ€Ð¼Ñ–Ð½Ñƒ дії Expiration presets - Типове Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½ÐµÑ‡Ð¸Ð½ÐµÐ½Ð½Ñ + ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÑ€Ð¼Ñ–Ð½Ñƒ дії Presets - Заготовки - - - Password: - Пароль: - - - URL: - URL: + Шаблони Url field @@ -2859,37 +2957,53 @@ Would you like to correct it? Download favicon for URL Завантажити фавікон Ð´Ð»Ñ URL - - Title: - Заголовок: - Title field Поле заголовка - - Username: - Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача: - Password field Поле Ð¿Ð°Ñ€Ð¾Ð»Ñ Toggle expiration - Перемкнути Ð·Ð½ÐµÑ‡Ð¸Ð½ÐµÐ½Ð½Ñ - - - Expires: - ЗнечинюєтьÑÑ: - - - Tags: - + Перемкнути термін дії Tags list - + СпиÑок міток + + + &Username: + &Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача: + + + &Title: + &Ðазва: + + + &Password: + &Пароль: + + + UR&L: + UR&L: + + + &Notes: + При&мітки: + + + Toggle notes visibility + ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð²Ð¸Ð´Ð¸Ð¼Ð¾Ñті приміток + + + T&ags: + Т&еги: + + + &Expires: + Термін &дії закінчуєтьÑÑ: @@ -2900,7 +3014,7 @@ Would you like to correct it? Remove key from agent when database is closed/locked - ВидалÑти ключ із в'Ñзки поÑередника під Ñ‡Ð°Ñ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñховища + Вилучати ключ з агента під Ñ‡Ð°Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ/Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних Comment @@ -2908,7 +3022,7 @@ Would you like to correct it? Add key to agent when database is opened/unlocked - Ðадавати ключ поÑередникові під Ñ‡Ð°Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð°Ð±Ð¾ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñховища + Додавати ключ до агента під Ñ‡Ð°Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ/Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних Decrypt @@ -2920,7 +3034,7 @@ Would you like to correct it? Copy to clipboard - Скопіювати в кишеню + Копіювати в буфер обміну Public key @@ -2928,7 +3042,23 @@ Would you like to correct it? Private key - Таємний ключ + Приватний ключ + + + Attachment + Ð’ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ + + + External key file + Зовнішній ключовий файл + + + Add to agent + Додати до агента + + + Remove from agent + Вилучити з агента External file @@ -2936,32 +3066,20 @@ Would you like to correct it? Browser for key file - ПереглÑдач файлових ключів + ПереглÑдач ключових файлів Browse… Button for opening file dialog - + ОглÑд… - Attachment - Додаток - - - External key file - Зовнішній файловий ключ - - - Add to agent - Додати до в'Ñзки поÑередника - - - Remove from agent - Видалити з в'Ñзки поÑередника + Generate + Створити Select attachment file - Вибрати файл додатку + Вибрати файл Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Require user confirmation when this key is used @@ -2992,11 +3110,7 @@ Would you like to correct it? Icon - Значок - - - Browser Integration - Ð¡Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð· переглÑдачем + Піктограма Properties @@ -3012,7 +3126,11 @@ Would you like to correct it? Group has unsaved changes - + У групі Ñ” незбережені зміни + + + Browser Integration + Ð†Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ñ–Ñ Ð· браузером Enable @@ -3029,45 +3147,57 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - Змінити групу - These settings affect to the group's behaviour with the browser extension. - + Ці Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¿Ð»Ð¸Ð²Ð°ÑŽÑ‚ÑŒ на поведінку групи з розширеннÑм браузера. Hide entries from browser extension: - + Сховати запиÑи від Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°: Hide entries from browser extension toggle for this and sub groups - + Перемикач прихованих запиÑів від Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð° Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— групи та підгруп Skip Auto-Submit for entries: - + Вимкнути Ð°Ð²Ñ‚Ð¾Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñів: Skip Auto-Submit toggle for this and sub groups - + Перемикач Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð°Ð²Ñ‚Ð¾Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— групи та підгруп Use entries only with HTTP Basic Auth: - + ВикориÑтовувати запиÑи лише з HTTP Basic Auth: Only HTTP Auth toggle for this and sub groups - + Перемкнути викориÑÑ‚Ð°Ð½Ð½Ñ Ð»Ð¸ÑˆÐµ HTTP Auth Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— групи та підгруп Do not use entries with HTTP Basic Auth: - + Ðе викориÑтовувати запиÑи з HTTP Basic Auth: Do not use HTTP Auth toggle for this and sub groups - + Перемкнути викориÑÑ‚Ð°Ð½Ð½Ñ HTTP Auth Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— групи та підгруп + + + Omit WWW subdomain from matching: + Ігнорувати WWW у збігах піддоменів: + + + Omit WWW subdomain from matching toggle for this and sub groups + Перемкнути Ñ–Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ WWW у збігах піддоменів Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— групи та підгруп + + + Restrict matching to given browser key: + Обмежити відповідніÑть за даним ключем браузера: + + + Restrict matching to given browser key toggle for this and sub groups + Обмежити відповідніÑть до вказаного ключа браузера Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— групи та підгруп. @@ -3102,7 +3232,7 @@ Would you like to correct it? Browse… - + ОглÑд… Clear fields @@ -3136,32 +3266,32 @@ Supported extensions are: %1. %1 is already being exported by this database. - Сховище вже екÑпортує %1. + %1 вже екÑпортуєтьÑÑ Ñ†Ñ–Ñ”ÑŽ базою даних. %1 is already being imported by this database. - Сховище вже імпортує %1. + %1 вже імпортуєтьÑÑ Ñ†Ñ–Ñ”ÑŽ базою даних. %1 is being imported and exported by different groups in this database. - У цьому Ñховищі %1 екÑпортують Ñ– імпортують різні групи. + %1 імпортуєтьÑÑ Ñ‚Ð° екÑпортуєтьÑÑ Ñ€Ñ–Ð·Ð½Ð¸Ð¼Ð¸ групами в цій базі даних. KeeShare is currently disabled. You can enable import/export in the application settings. KeeShare is a proper noun - KeeShare наразі вимкнено. Ви можете ввімкнути Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð° екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ параметрах заÑтоÑунку. + KeeShare зараз вимкнено. Можна увімкнути імпорт/екÑпорт у налаштуваннÑÑ… програми. Database export is currently disabled by application settings. - ЕкÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñховища наразі вимкнено в параметрах заÑтоÑунку. + ЕкÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних зараз вимкнено в налаштуваннÑÑ… програми. Database import is currently disabled by application settings. - Ð†Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñховища наразі вимкнено в параметрах заÑтоÑунку. + Ð†Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних зараз вимкнено в налаштуваннÑÑ… програми. KeeShare container - + Контейнер KeeShare KeeShare signed container @@ -3188,11 +3318,11 @@ Supported extensions are: %1. Toggle expiration - Перемкнути Ð·Ð½ÐµÑ‡Ð¸Ð½ÐµÐ½Ð½Ñ + Перемкнути термін дії Expires: - ЗнечинюєтьÑÑ: + Термін дії: Name field @@ -3200,7 +3330,7 @@ Supported extensions are: %1. Expiration field - Поле Ð·Ð½ÐµÑ‡Ð¸Ð½ÐµÐ½Ð½Ñ + Поле терміну дії Use default Auto-Type sequence of parent group @@ -3220,7 +3350,7 @@ Supported extensions are: %1. Notes: - Примітки: + Ðотатки: Default auto-type sequence field @@ -3247,23 +3377,23 @@ Supported extensions are: %1. EditWidgetIcons Use default icon - ВикориÑтовувати типовий значок + ВикориÑтовувати типову піктограму Use custom icon - ВикориÑтовувати Ñвій значок + ВикориÑтовувати влаÑну піктограму Choose icon… - + Вибрати піктограму… Set the URL to use to search for a favicon - + УÑтановити URL Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ фавіконів Ñайтів Favicon URL - + URL фавікону Download favicon for URL @@ -3275,11 +3405,11 @@ Supported extensions are: %1. Apply selected icon to subgroups and entries - ЗаÑтоÑувати вибраній значок Ð´Ð»Ñ Ð´Ð¾Ñ‡ÐµÑ€Ð½Ñ–Ñ… груп Ñ– запиÑів + ЗаÑтоÑувати вибрану піктограму Ð´Ð»Ñ Ð¿Ñ–Ð´Ð³Ñ€ÑƒÐ¿ Ñ– запиÑів Apply icon to… - + ЗаÑтоÑувати піктограму длÑ… Apply to this group only @@ -3287,27 +3417,23 @@ Supported extensions are: %1. Also apply to child groups - Також заÑтоÑувати до дочерніх груп + Також заÑтоÑувати до вкладених груп Also apply to child entries - Також заÑтоÑувати до дочерніх запиÑів + Також заÑтоÑувати до вкладених запиÑів Also apply to all children - Також заÑтоÑувати до вÑÑ–Ñ… дочерніх елементів + Також заÑтоÑувати до вÑÑ–Ñ… вкладених елементів Unable to fetch favicon. Ðеможливо діÑтати фавікон. - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - Ви можете ввімкнути Ñлужбу значків DuckDuckGo в меню ІнÑтрументи -> ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ -> Безпека - Existing icon selected. - Вибрано наÑвний значок. + Вибрано наÑвну піктограму. Images @@ -3315,7 +3441,7 @@ Supported extensions are: %1. All files - Ð’ÑÑ– файли + УÑÑ– файли Select Image(s) @@ -3323,20 +3449,24 @@ Supported extensions are: %1. Successfully loaded %1 of %n icon(s) - УÑпішно завантажено %1 з %n значкаУÑпішно завантажено %1 з %n значківУÑпішно завантажено %1 з %n значківУÑпішно завантажено %1 з %n значків + УÑпішно завантажено %1 з %n піктограмиУÑпішно завантажено %1 з %n піктограмУÑпішно завантажено %1 з %n піктограмУÑпішно завантажено %1 з %n піктограм No icons were loaded - Жодного значка не завантажено + Жодної піктограми не завантажено %n icon(s) already exist in the database - %n значок вже Ñ–Ñнує у Ñховищі%n значки вже Ñ–Ñнують у Ñховищі%n значків вже Ñ–Ñнують у Ñховищі%n значків вже Ñ–Ñнують у Ñховищі + %n піктограма вже Ñ–Ñнує у базі даних%n піктограми вже Ñ–Ñнують у базі даних%n піктограм вже Ñ–Ñнують у базі даних%n піктограм вже Ñ–Ñнують у базі даних The following icon(s) failed: Такий значок зазнав невдачі:Такі значки зазнали невдачі:Такі значки зазнали невдачі:Такі значки зазнали невдачі: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + Ви можете увімкнути Ñлужбу піктограм DuckDuckGo в меню ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ -> Безпека + EditWidgetProperties @@ -3418,7 +3548,7 @@ This may cause the affected plugins to malfunction. EntryAttachments Cannot open file "%1" - + Ðеможливо відкрити файл "%1" @@ -3541,12 +3671,13 @@ This may cause the affected plugins to malfunction. Confirm Overwrite Attachment - + Підтвердити Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñ Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Attachment "%1" already exists. Would you like to overwrite the existing attachment? - + Ð’ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ "%1" вже Ñ–Ñнує. +Хочете перезапиÑати наÑвне вкладеннÑ? Confirm Attachment @@ -3558,27 +3689,29 @@ Your database may get very large and reduce performance. Are you sure to add this file? %1 Ñ” великим файлом (%2 MБ). -Ваше Ñховище може Ñтати завеликим Ñ– ÑˆÐ²Ð¸Ð´ÐºÐ¾Ð´Ñ–Ñ Ð·Ð½Ð¸Ð·Ð¸Ñ‚ÑŒÑÑ. +Ваша база даних може Ñтати надто великою Ñ– працювати повільно. -Ви дійÑно бажаєте додати цей файл? +Ви дійÑно хочете додати цей файл? Attachment modified - + Ð’ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ The attachment '%1' was modified. Do you want to save the changes to your database? - + Ð’ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ '%1' було змінено. +Ви хочете зберегти зміни в базі даних? Saving attachment failed - + Помилка Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Saving updated attachment failed. Error: %1 - + Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ оновлене вкладеннÑ. +Помилка: %1 @@ -3592,7 +3725,7 @@ Error: %1 EntryHistoryModel Current (%1) - + Поточний (%1) Last modified @@ -3600,11 +3733,11 @@ Error: %1 Age - + Вік Difference - + ВідмінноÑті Size @@ -3616,7 +3749,7 @@ Error: %1 Username - Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача + Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Password @@ -3624,35 +3757,35 @@ Error: %1 URL - URL + URL-адреÑа Notes - Примітки + Ðотатки Custom Attributes - + ВлаÑні атрибути Icon - Значок + Піктограма Color - + Колір Expiration - ЗнечинюєтьÑÑ + Термін дії TOTP - ТОП + TOTP Custom Data - + КориÑтувацькі дані Attachments @@ -3664,7 +3797,7 @@ Error: %1 Tags - + Мітки @@ -3688,7 +3821,7 @@ Error: %1 Username - Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача + Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Password @@ -3696,15 +3829,15 @@ Error: %1 URL - URL + URL-адреÑа Notes - Примітки + Ðотатки Expires - ЗнечинюєтьÑÑ + Термін дії Created @@ -3736,7 +3869,7 @@ Error: %1 Password Strength - + ÐадійніÑть Ð¿Ð°Ñ€Ð¾Ð»Ñ Entry notes @@ -3772,14 +3905,18 @@ Error: %1 Has TOTP - МіÑтить ТОП + Має TOTP + + + Background Color + Колір тла EntryPreviewWidget Display current TOTP value - Показати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ ТОП + Показати поточне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ TOTP Close @@ -3794,28 +3931,28 @@ Error: %1 Пароль - Notes - Примітки + URL + URL-адреÑа Expiration - ЗнечинюєтьÑÑ + Термін дії Tags - + Мітки Tags list - + СпиÑок міток Username - Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача + Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача - URL - URL + Notes + Ðотатки Advanced @@ -3827,7 +3964,7 @@ Error: %1 Attributes - Ознаки + Ðтрибути Autotype @@ -3865,6 +4002,10 @@ Error: %1 Never Ðіколи + + Double click to copy value + Клацніть двічі, щоб Ñкопіювати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ + Enabled Увімкнено @@ -3873,6 +4014,10 @@ Error: %1 Disabled Вимкнено + + Double click to copy to clipboard + Двічі клацніть, щоб Ñкопіювати в буфер обміну + EntryURLModel @@ -3880,6 +4025,10 @@ Error: %1 Invalid URL Ðепридатний URL + + Duplicate URL + Дублікат URL + EntryView @@ -3895,42 +4044,48 @@ Error: %1 Reset to defaults Повернути до типового Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ + + + %1 entry(s)... + + %1 запиÑ+ %1 запиÑи(ів)...+ %1 запиÑів...+ %1 запиÑів... + ExportDialog Export options - + Параметри екÑпорту Sort entries by... - + Сортувати запиÑи за... You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! - + Ви збираєтеÑÑ ÐµÐºÑпортувати базу даних у незашифрований файл. +Ð¦Ñ Ð´Ñ–Ñ Ð·Ñ€Ð¾Ð±Ð¸Ñ‚ÑŒ ваші паролі та важливу інформацію вразливими! + database order - + порÑдок бази даних name (ascending) - + назва (за зроÑтаннÑм) name (descending) - + назва (за ÑпаданнÑм) unknown - + невідомо Export database to HTML file - ЕкÑпортувати Ñховище до файлу HTML + ЕкÑпортувати базу даних до файлу HTML HTML file @@ -3941,11 +4096,11 @@ This will leave your passwords and sensitive information vulnerable! FdoSecrets::DBusMgr Failed to deliver message - + Ðе вдалоÑÑ Ð´Ð¾Ñтавити Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Failed to send reply on DBus - + Ðе вдалоÑÑ Ð½Ð°Ð´Ñ–Ñлати відповідь на DBus Unknown @@ -3972,11 +4127,11 @@ This will leave your passwords and sensitive information vulnerable! Failed to register service on DBus at path '%1' - + Ðе вдалоÑÑ Ð·Ð°Ñ€ÐµÑ”Ñтрувати ÑÐµÑ€Ð²Ñ–Ñ Ð½Ð° DBus у шлÑху '%1' Failed to register database on DBus under the name '%1' - Ðе вдалоÑÑ Ð·Ð°Ñ€ÐµÑ”Ñтрувати Ñховище в Ñлужбі DBus під назвою «%1» + Ðе вдалоÑÑ Ð·Ð°Ñ€ÐµÑ”Ñтрувати базу даних у Ñлужбі DBus із назвою "%1" Failed to register session on DBus at path '%1' @@ -3988,14 +4143,14 @@ This will leave your passwords and sensitive information vulnerable! Failed to register prompt object on DBus at path '%1' - + Ðе вдалоÑÑ Ð·Ð°Ñ€ÐµÑ”Ñтрувати запит на DBus у шлÑху '%1' FdoSecrets::Item Entry "%1" from database "%2" was used by %3 - Програма %3 викориÑтала Ð·Ð°Ð¿Ð¸Ñ "%1" зі Ñховища "%2" + Ð—Ð°Ð¿Ð¸Ñ "%1" із бази даних "%2" було викориÑтано в %3 @@ -4014,7 +4169,7 @@ This will leave your passwords and sensitive information vulnerable! Non-existing/inaccessible executable path. Please double-check the client is legit. - + ВідÑутній або недоÑтупний шлÑÑ… до виконуваного файлу. ПереконайтеÑÑ, що ви кориÑтуєтеÑÑ Ð¾Ñ€Ð¸Ð³Ñ–Ð½Ð°Ð»ÑŒÐ½Ð¸Ð¼ клієнтом. @@ -4032,7 +4187,7 @@ This will leave your passwords and sensitive information vulnerable! FdoSecrets::UnlockPrompt %1 (PID: %2) - + %1 (PID: %2) @@ -4074,8 +4229,8 @@ This will leave your passwords and sensitive information vulnerable! Having trouble downloading icons? You can enable the DuckDuckGo website icon service in the security section of the application settings. - Маєте проблеми з завантаженнÑм значків? -Ви можете ввімкнути Ñлужбу значків DuckDuckGo в налаштуванні заÑтоÑунку в розділі безпеки. + Виникли проблеми із завантаженнÑм піктограм? +Можна увімкнути Ñлужбу піктограм DuckDuckGo Ð´Ð»Ñ Ð²ÐµÐ±Ñайтів у розділі безпеки в налаштуваннÑÑ… програми. Close @@ -4083,7 +4238,7 @@ You can enable the DuckDuckGo website icon service in the security section of th URL - URL + URL-адреÑа Status @@ -4091,11 +4246,11 @@ You can enable the DuckDuckGo website icon service in the security section of th Please wait, processing entry list… - + Будь лаÑка, зачекайте, обробка ÑпиÑку запиÑів… Downloading… - + ЗавантаженнÑ… Ok @@ -4103,14 +4258,155 @@ You can enable the DuckDuckGo website icon service in the security section of th Already Exists - Вже Ñ–Ñнує + Уже Ñ–Ñнує Download Failed - Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð¾ невдачі + Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ Downloading favicons (%1/%2)… + Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð²Ñ–ÐºÐ¾Ð½Ñ–Ð² (%1/%2)… + + + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + Сторінка майÑтера Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ + + + Entry count: %1 + + + + Group + Група + + + Title + Заголовок + + + Username + Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача + + + Password + Пароль + + + Url + + + + + ImportWizardPageSelect + + Form + Форма + + + Import File Selection + + + + Password: + Пароль: + + + Key File: + Ключовий файл: + + + Browse… + ОглÑд… + + + Import Into: + + + + New Database + Ðова база даних + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + Відкрити OPVault + + + Select import file + + + + All files + УÑÑ– файли + + + Key files + Ключові файли + + + Select key file + Виберіть ключовий файл + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database @@ -4129,11 +4425,11 @@ You can enable the DuckDuckGo website icon service in the security section of th Kdbx3Reader Missing database headers - + ВідÑутні заголовки бази даних Unable to calculate database key - Ðеможливо обчиÑлити ключ Ñховища + Ðеможливо обчиÑлити ключ бази даних Unable to issue challenge-response: %1 @@ -4142,8 +4438,8 @@ You can enable the DuckDuckGo website icon service in the security section of th Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - Ðадано непридатні реєÑтраційні дані. Спробуйте, будь лаÑка, ще раз. -Якщо це повторюватиметьÑÑ, файл Вашого Ñховища може бути пошкодженим. + Ðадано недійÑні облікові дані. Спробуйте знову. +Якщо це повторюватиметьÑÑ, файл вашої бази даних може бути пошкодженим. Header doesn't match hash @@ -4155,11 +4451,11 @@ If this reoccurs, then your database file may be corrupt. Invalid header field length: field %1 - + ÐеприпуÑтима довжина Ð¿Ð¾Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ°: поле %1 Invalid header data length: field %1, %2 expected, %3 found - + ÐедопуÑтима довжина даних заголовка: поле %1, очікуєтьÑÑ %2, знайдено %3 @@ -4175,18 +4471,18 @@ If this reoccurs, then your database file may be corrupt. Unable to calculate database key - Ðеможливо обчиÑлити ключ Ñховища + Ðеможливо обчиÑлити ключ бази даних Kdbx4Reader missing database headers - відÑутні заголовки Ñховища + відÑутні заголовки бази даних Unable to calculate database key: %1 - Ðеможливо обчиÑлити ключ Ñховища: %1 + Ðеможливо обчиÑлити ключ бази даних: %1 Invalid header checksum size @@ -4199,8 +4495,8 @@ If this reoccurs, then your database file may be corrupt. Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - Ðадано непридатні реєÑтраційні дані. Спробуйте, будь лаÑка, ще раз. -Якщо це повторюватиметьÑÑ, файл Вашого Ñховища може бути пошкодженим. + Ðадано недійÑні облікові дані. Спробуйте знову. +Якщо це повторюватиметьÑÑ, файл вашої бази даних може бути пошкодженим. (HMAC mismatch) @@ -4216,11 +4512,11 @@ If this reoccurs, then your database file may be corrupt. Invalid header field length: field %1 - + ÐеприпуÑтима довжина Ð¿Ð¾Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ°: поле %1 Invalid header data length: field %1, %2 expected, %3 found - + ÐедопуÑтима довжина даних заголовка: поле %1, очікуєтьÑÑ %2, знайдено %3 Failed to open buffer for KDF parameters in header @@ -4240,11 +4536,11 @@ If this reoccurs, then your database file may be corrupt. Invalid inner header field length: field %1 - + ÐеприпуÑтима довжина внутрішнього Ð¿Ð¾Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ°: поле %1 Invalid inner header data length: field %1, %2 expected, %3 found - + ÐедопуÑтима довжина даних внутрішнього заголовка: поле %1, очікуєтьÑÑ %2, знайдено %3 Invalid inner header binary size @@ -4324,7 +4620,7 @@ If this reoccurs, then your database file may be corrupt. Unable to calculate database key: %1 - Ðеможливо обчиÑлити ключ Ñховища: %1 + Ðеможливо обчиÑлити ключ бази даних: %1 Failed to serialize KDF parameters variant map @@ -4380,22 +4676,25 @@ If this reoccurs, then your database file may be corrupt. Failed to read database file. - Ð—Ñ‡Ð¸Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ Ñховища зазнало невдачі. + Ðе вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ файл бази даних. The selected file is an old KeePass 1 database (.kdb). You can import it by clicking on Database > 'Import KeePass 1 database…'. This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. - + Обраний файл Ñ” заÑтарілою верÑією бази даних KeePass 1 (.kdb). + +Ви можете імпортувати його, натиÑнувши меню База даних > 'Імпортувати базу даних KeePass 1…'. +Це одноÑÑ‚Ð¾Ñ€Ð¾Ð½Ð½Ñ Ð¼Ñ–Ð³Ñ€Ð°Ñ†Ñ–Ñ. Ви не зможете відкрити імпортовану базу даних у KeePassX верÑÑ–Ñ— 0.4. Not a KeePass database. - Це не Ñховище KeePass. + Це не база даних KeePass. Unsupported KeePass 2 database version. - Ðепідтримувана верÑÑ–Ñ Ñховища KeePass 2. + Ðепідтримувана верÑÑ–Ñ Ð±Ð°Ð·Ð¸ даних KeePass 2. @@ -4418,7 +4717,7 @@ Line %2, column %3 Missing icon uuid or data - Бракує uuid або даних значка + Бракує uuid або даних піктограми Missing custom data key or value @@ -4434,15 +4733,15 @@ Line %2, column %3 Invalid group icon number - Ðепридатна кількіÑть значків групи + ÐедійÑна кількіÑть піктограм групи Invalid EnableAutoType value - Ðепридатне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñƒ Ð²Ð²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ + ÐедійÑне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ EnableAutoType Invalid EnableSearching value - Ðепридатне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñƒ Ð²Ð²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ + ÐедійÑне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ EnableSearching No group uuid found @@ -4462,7 +4761,7 @@ Line %2, column %3 Invalid entry icon number - Ðепридатна кількіÑть значків запиÑу + ÐедійÑна кількіÑть піктограм запиÑу History element in history entry @@ -4478,7 +4777,7 @@ Line %2, column %3 Duplicate custom attribute found - Знайдено дублікат Вашої влаÑної ознаки + Знайдено дублікат кориÑтувацького атрибута Entry string key or value missing @@ -4494,15 +4793,15 @@ Line %2, column %3 Invalid bool value - Ðепридатне логічне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ + ÐедійÑне логічне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Invalid date time value - Ðепридатне чаÑове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ + ÐедійÑне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð°Ñ‚Ð¸ й чаÑу Invalid color value - Ðепридатне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñƒ + ÐедійÑне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñƒ Invalid color rgb part @@ -4510,11 +4809,11 @@ Line %2, column %3 Invalid number value - Ðепридатне чиÑлове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ + ÐедійÑне чиÑлове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Invalid uuid value - Ðепридатне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ uuid + ÐедійÑне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ uuid Unable to decompress binary @@ -4538,33 +4837,22 @@ Line %2, column %3 File too large to be a private key - Файл занадто великий Ð´Ð»Ñ Ñ‚Ð°Ñ”Ð¼Ð½Ð¾Ð³Ð¾ ключа + Файл надто великий Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²Ð°Ñ‚Ð½Ð¾Ð³Ð¾ ключа Failed to open private key Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ‚Ð°Ñ”Ð¼Ð½Ð¾Ð³Ð¾ ключа зазнало невдачі - - KeePass1OpenWidget - - Import KeePass1 Database - Імпортувати Ñховище KeePass1 - - - Unable to open the database. - Ðеможливо відкрити Ñховище. - - KeePass1Reader Unable to read keyfile. - Ðеможливо прочитати файловий ключ. + Ðеможливо прочитати ключовий файл. Not a KeePass database. - Це не Ñховище KeePass. + Це не база даних KeePass. Unsupported encryption algorithm. @@ -4572,7 +4860,7 @@ Line %2, column %3 Unsupported KeePass database version. - Ðепідтримувана верÑÑ–Ñ Ñховища KeePass. + Ðепідтримувана верÑÑ–Ñ Ð±Ð°Ð·Ð¸ даних KeePass. Unable to read encryption IV @@ -4609,7 +4897,7 @@ Line %2, column %3 Unable to calculate database key - Ðеможливо обчиÑлити ключ Ñховища + Ðеможливо обчиÑлити ключ бази даних unable to seek to content position @@ -4618,8 +4906,8 @@ Line %2, column %3 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - Ðадано непридатні реєÑтраційні дані. Спробуйте, будь лаÑка, ще раз. -Якщо це повторюватиметьÑÑ, файл Вашого Ñховища може бути пошкодженим. + Ðадано недійÑні облікові дані. Спробуйте знову. +Якщо це повторюватиметьÑÑ, файл вашої бази даних може бути пошкодженим. Key transformation failed @@ -4659,7 +4947,7 @@ If this reoccurs, then your database file may be corrupt. Incorrect group icon field size - Хибний розмір Ð¿Ð¾Ð»Ñ Ð·Ð½Ð°Ñ‡ÐºÐ° групи + Хибний розмір Ð¿Ð¾Ð»Ñ Ð¿Ñ–ÐºÑ‚Ð¾Ð³Ñ€Ð°Ð¼Ð¸ групи Incorrect group level field size @@ -4687,7 +4975,7 @@ If this reoccurs, then your database file may be corrupt. Invalid entry UUID field size - + ÐеприпуÑтимий розмір Ð¿Ð¾Ð»Ñ UUID запиÑу Invalid entry group id field size @@ -4695,7 +4983,7 @@ If this reoccurs, then your database file may be corrupt. Invalid entry icon field size - Ðепридатний розмір Ð¿Ð¾Ð»Ñ Ð´Ð»Ñ Ð·Ð½Ð°Ñ‡ÐºÐ° запиÑу + ÐедійÑний розмір Ð¿Ð¾Ð»Ñ Ð¿Ñ–ÐºÑ‚Ð¾Ð³Ñ€Ð°Ð¼Ð¸ запиÑу Invalid entry creation time field size @@ -4703,7 +4991,7 @@ If this reoccurs, then your database file may be corrupt. Invalid entry modification time field size - Ðепридатний розмір Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ полі оÑтанньої зміни запиÑу + ÐедійÑний розмір Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ полі оÑтанньої зміни запиÑу Invalid entry expiry time field size @@ -4784,7 +5072,7 @@ If this reoccurs, then your database file may be corrupt. KeyFileEditWidget Generate a new key file - Створити новий файловий ключ + Створити новий ключовий файл Generate @@ -4792,99 +5080,99 @@ If this reoccurs, then your database file may be corrupt. Generate a new key file or choose an existing one to protect your database. - + Згенеруйте новий ключовий файл, або виберіть наÑвний, щоб захиÑтити базу даних. Note: Do NOT use a file that may change as that will prevent you from unlocking your database. - + Примітка: Ðе викориÑтовуйте файл, Ñкий може змінитиÑÑ, тому що ви не зможете розблокувати Ñвою базу даних. Browse for key file - Вибір файлового ключа + Вибір ключового файлу Browse… - + ОглÑд… Old key file format - Старий формат файлового ключа + Старий формат ключового файлу You selected a key file in an old format which KeePassXC<br>may stop supporting in the future.<br><br>Please consider generating a new key file instead. - Ви викориÑтовуєте заÑтарілий формат файлового ключа, Ñкий KeePassXC<br> може припинити підтримувати у майбутньому.<br><br>Бажано Ñтворити новий файловий ключ. + Ви вибрали ключовий файл заÑтарілого формату, Ñкий KeePassXC<br>може припинити підтримувати в майбутньому.<br><br>Будь лаÑка, Ñтворіть новий ключовий файл. Error loading the key file '%1' Message: %2 - Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¾Ð³Ð¾ ключа '%1' + Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ð¾Ð³Ð¾ файлу '%1' ПовідомленнÑ: %2 Key File - Файловий ключ + Ключовий файл Add Key File - + Додати ключовий файл Change Key File - + Змінити ключовий файл Remove Key File - + Вилучити ключовий файл Key File set, click to change or remove - + Ключовий файл вÑтановлено. ÐатиÑніть Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ чи Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out.</p> - + <p>Ð”Ð»Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¾Ñ— безпеки можна додати ключовий файл, що міÑтить випадкові байти.</p><p>Його Ñлід надійно зберігати, оÑкільки у випадку втрати ви не зможете отримати доÑтуп до Ñвоєї бази даних.</p> Key files - Файлові ключі + Ключові файли All files - Ð’ÑÑ– файли + УÑÑ– файли Create Key File… - + Створити ключовий файл… Error creating key file - Помилка ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¾Ð³Ð¾ ключа + Помилка ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ð¾Ð³Ð¾ файлу Unable to create key file: %1 - Ðеможливо Ñтворити файловий ключ: %1 + Ðеможливо Ñтворити ключовий файл: %1 Select a key file - Обрати файловий ключ + Обрати ключовий файл Invalid Key File - Ðепридатний файловий ключ + ÐедійÑний ключовий файл You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. - Ви не можете викориÑтати поточне Ñховище Ñк файловий ключ. Будь лаÑка, виберіть інший файл або Ñтворіть новий файловий ключ. + Ðе можна викориÑтати поточну базу даних Ñк ключовий файл. Виберіть інший файл або Ñтворіть новий ключовий файл. Suspicious Key File - Підозрілий файловий ключ + Підозрілий ключовий файл The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. Are you sure you want to continue with this file? - Вибраний фаловий ключ Ñхожий на файл Ñховища паролів. Файловий ключ муÑить бути незмінним файлом, Ñкий ніколи не змінюють, інакше Ви назавжди втратите доÑтуп до Вашого Ñховища. -Ви певні, що хочете продовжити з цим файлом? + Вибраний ключовий файл Ñхожий на файл бази даних паролів. Ключовий файл має бути Ñтатичним файлом, Ñкий ніколи не змінюєтьÑÑ, інакше ви назавжди втратите доÑтуп до Ñвоєї бази паролів. +Ви певні, що хочете викориÑтати цей файл? @@ -4895,26 +5183,22 @@ Are you sure you want to continue with this file? Global shortcut already registered to %1 - Глобальне ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–Ñˆ вже зареєÑтровано Ð´Ð»Ñ %1 + Глобальну комбінацію клавіш уже зареєÑтровано Ð´Ð»Ñ %1 Could not register global shortcut - РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–Ñˆ зазнало невдачі + Ðе вдалоÑÑ Ð·Ð°Ñ€ÐµÑ”Ñтрувати глобальну комбінацію клавіш MainWindow &Database - &Сховище + &База даних &Recent Databases - Ðедавні Ñховища - - - &Import - Імпортувати + &ОÑтанні бази даних &Export @@ -4930,11 +5214,15 @@ Are you sure you want to continue with this file? Copy Att&ribute - Скопіювати ознаку + Копіювати атрибут TOTP - ТОП + TOTP + + + Tags + Мітки &Groups @@ -4966,48 +5254,32 @@ Are you sure you want to continue with this file? &Open Database… - Відкрити Ñховище... + &Відкрити базу даних… &Save Database - Зберегти Ñховище + &Зберегти базу даних &Close Database - Закрити Ñховище + За&крити базу даних &New Database… - Ðове Ñховище - - - Create a new database - Створити нове Ñховище + &Ðова база даних… &Merge From Database… - Об'&єднати зі Ñховищем… - - - Merge from another KDBX database - Об'єднати з іншого Ñховища KDBX + &Об'єднати з базою даних… &New Entry… Ðовий запиÑ... - - Add a new entry - Додати новий Ð·Ð°Ð¿Ð¸Ñ - &Edit Entry… Змінити запиÑ... - - View or edit entry - ПереглÑнути або змінити Ð·Ð°Ð¿Ð¸Ñ - &Delete Entry… Видалити запиÑ... @@ -5016,10 +5288,6 @@ Are you sure you want to continue with this file? &New Group… Ðова група... - - Add a new group - Додати нову групу - &Edit Group… Змінити групу... @@ -5030,7 +5298,7 @@ Are you sure you want to continue with this file? Download All &Favicons… - Завантажити вÑÑ– фавікони... + Завантажити вÑÑ– фавікони… Sort &A-Z @@ -5042,27 +5310,19 @@ Are you sure you want to continue with this file? Sa&ve Database As… - Зберегти Ñховище Ñк... + З&берегти базу даних Ñк… Database &Security… - Безпека Ñховища... + &Безпека бази даних… Database &Reports… - - - - Statistics, health check, etc. - СтатиÑтика, перевірÑÐ½Ð½Ñ Ð½ÐµÐ¿Ð¾ÑˆÐºÐ¾Ð´Ð½Ð¾Ñті тощо + &Звіти бази даних… &Database Settings… - ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñховища... - - - Database settings - ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñховища + &ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних… &Clone Entry… @@ -5072,34 +5332,18 @@ Are you sure you want to continue with this file? Move u&p ПереміÑтити вгору - - Move entry one step up - ПоÑунути Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° один крок вище - Move do&wn ПереміÑтити вниз - - Move entry one step down - ПоÑунути Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° один крок нижче - Copy &Username Скопіювати ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача - - Copy username to clipboard - Скопіювати Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача до кишені - Copy &Password Скопіювати пароль - - Copy password to clipboard - Скопіювати пароль до кишені - &Settings Ðала&ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ @@ -5114,7 +5358,7 @@ Are you sure you want to continue with this file? Download &Favicon - Завантажити &Favicon + Завантажити &фавікон Open &URL @@ -5122,35 +5366,23 @@ Are you sure you want to continue with this file? &Lock Database - + Заблокувати &базу даних Lock &All Databases - + Заблокувати &уÑÑ– бази даних &Title Заголовок - Copy title to clipboard - Скопіювати заголовок до кишені - - - &URL - &URL - - - Copy URL to clipboard - Скопіювати URL до кишені + Copy &URL + Скопіювати &URL-адреÑу &Notes - Ðотатки - - - Copy notes to clipboard - Скопіювати примітки в кишеню + &Ðотатки &CSV File… @@ -5162,31 +5394,19 @@ Are you sure you want to continue with this file? KeePass 1 Database… - Сховище KeePass 1… - - - Import a KeePass 1 database - Імпортувати Ñховище KeePass 1 + База даних KeePass 1… 1Password Vault… - Сховище 1Password... - - - Import a 1Password Vault - Імпортувати Ñховище 1Password + Сховище 1Password… CSV File… CSV-файл... - - Import a CSV file - Імпортувати файл CSV - Show TOTP - Показати ТОП + Показати TOTP Show QR Code @@ -5194,11 +5414,15 @@ Are you sure you want to continue with this file? Set up TOTP… - Ð’Ñтановити ТОП… + Ð’Ñтановити TOTP… Copy &TOTP - Скопіювати ТОП + Копіювати TOTP + + + Copy Password and TOTP + Копіювати пароль Ñ– TOTP E&mpty recycle bin @@ -5218,31 +5442,27 @@ Are you sure you want to continue with this file? Open Getting Started Guide - Відкрити вÑтупний довідник + Відкрити поÑібник про початок роботи &Online Help &Довідка в мережі... - - Go to online documentation - Перейти до документації в мережі - &User Guide - Довідник &кориÑтувача + ПоÑібник &кориÑтувача Open User Guide - Відкрити довідник кориÑтувача + Відкрити поÑібник кориÑтувача &Keyboard Shortcuts - &Ð¡Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–Ñˆ + &Комбінації клавіш Save Database Backup… - + Резервна ÐºÐ¾Ð¿Ñ–Ñ Ð±Ð°Ð·Ð¸ даних… Add key to SSH Agent @@ -5294,7 +5514,11 @@ Are you sure you want to continue with this file? Clone Group... - + Клонувати групу... + + + &XML File… + Файл &XML… Clear history @@ -5312,21 +5536,29 @@ Are you sure you want to continue with this file? WARNING: You are using an unstable build of KeePassXC. There is a high risk of corruption, maintain a backup of your databases. This version is not meant for production use. - + УВÐГÐ: ви кориÑтуєтеÑÑ Ð½ÐµÑтабільною верÑією KeePassXC. +Є виÑокий ризик Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…, тому Ñтворіть резервну копію баз даних. +Ð¦Ñ Ð²ÐµÑ€ÑÑ–Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð° лише Ð´Ð»Ñ Ñ‚ÐµÑтуваннÑ. NOTE: You are using a pre-release version of KeePassXC. Expect some bugs and minor issues, this version is meant for testing purposes. - + ПРИМІТКÐ: ви кориÑтуєтеÑÑ Ð±ÐµÑ‚Ð°-верÑією KeePassXC. +Можна помітити помилки чи незначні проблеми. Ð¦Ñ Ð²ÐµÑ€ÑÑ–Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð° лише Ð´Ð»Ñ Ñ‚ÐµÑтуваннÑ. WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard. We recommend you use the AppImage available on our downloads page. - + УВÐГÐ: ваша верÑÑ–Ñ Qt може ÑпричинÑти аварійне Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ KeePassXC під Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ з екранною клавіатурою. +Ми рекомендуємо викориÑтовувати AppImage, Ñкий ви можете отримати на нашій Ñторінці завантажень. + + + No Tags + Без міток Restore Entry(s) - + Відновити запиÑВідновити запиÑиВідновити запиÑиВідновити запиÑи Settings @@ -5342,7 +5574,7 @@ We recommend you use the AppImage available on our downloads page. You can always check for updates manually from the application menu. - Ви завжди можете перевірити наÑвніÑть оновлень з меню заÑтоÑунку. + Ви завжди можете вручну перевірити наÑвніÑть оновлень з меню програми. Toggle window @@ -5352,9 +5584,13 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC Вийти з KeePassXC + + %1 Entry(s) + %1 запиÑ%1 запиÑи%1 запиÑів%1 запиÑів + Please present or touch your YubiKey to continue… - + Ðадайте Ñвій YubiKey або торкнітьÑÑ Ð´Ð¾ нього Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ… Restart Application? @@ -5364,28 +5600,296 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? Ви муÑите перезапуÑтити програму, щоб заÑтоÑувати цей параметр. Бажаєте перезапуÑтити зараз? + + Allow Screen Capture + Дозволити знімки екрана + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Passkeys… + + + Import Passkey + Імпорт Passkey + + + Quit Application + Вийти з програми + + + Open About Dialog + Відкрити вікно "Про програму". + + + Open Database + Відкрити базу даних + + + Create Database + Створити базу даних + + + Merge From Database + Об'єднати з базою даних + + + Create Entry + Створити Ð·Ð°Ð¿Ð¸Ñ + + + Edit Entry + Редагувати Ð·Ð°Ð¿Ð¸Ñ + + + Delete Entry + Видалити Ð·Ð°Ð¿Ð¸Ñ + + + Create Group + Створити групу + + + Edit Group + Змінити групу + + + Delete Group + Видалити групу + + + Download All Favicons + Завантажити вÑÑ– Favicon'и + + + Sort Groups A-Z + Сортувати групи від Рдо Я + + + Sort Groups Z-A + Сортувати групи від Я до Ð + + + Save Database As + Зберегти базу даних Ñк + + + Show Database Security + Показати Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ бази даних + + + Show Database Reports + Показати звіти бази даних + + + Show Database Settings + Показати Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних + + + Show Passkeys + Показати ключі доÑтупу + + + Clone Entry + Клонувати Ð·Ð°Ð¿Ð¸Ñ + + + Move Entry Up + ПереміÑтити Ð·Ð°Ð¿Ð¸Ñ Ð²Ð³Ð¾Ñ€Ñƒ + + + Move Entry Down + ПереміÑтити Ð·Ð°Ð¿Ð¸Ñ Ð²Ð½Ð¸Ð· + + + Copy Username + Копіювати ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача + + + Copy Password + Копіювати пароль + + + Show Application Settings + ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ + + + Show Password Generator + Генератор паролів + + + Perform Auto-Type: {USERNAME} + Виконати автозаповненнÑ: {USERNAME} + + + Perform Auto-Type: {USERNAME}{ENTER} + Виконати автозаповненнÑ: {USERNAME}{ENTER} + + + Perform Auto-Type: {PASSWORD} + Виконати автозаповненнÑ: {PASSWORD} + + + Perform Auto-Type: {PASSWORD}{ENTER} + Виконати автозаповненнÑ: {PASSWORD}{ENTER} + + + Perform Auto-Type: {TOTP} + Виконати автозаповненнÑ: {TOTP} + + + Copy Title + Копіювати заголовок + + + Copy URL + Скопіювати URL + + + Copy Notes + Копіювати нотатки + + + Export to CSV + ЕкÑпорт в CSV + + + Export to HTML + ЕкÑпорт в HTML + + + Import KeePass1 Database + Імпортувати базу даних KeePass1 + + + Import 1Password Vault + Імпортувати контейнер 1Password + + + Import CSV File + Імпортувати файл CSV + + + Show TOTP QR Code + Показати QR-код TOTP + + + Set up TOTP + Вказати ТОГ + + + Empty Recycle Bin + Спорожнити Ñмітник + + + Open Donation Website + Відкрити веб-Ñайт Ð´Ð»Ñ Ð¿Ð¾Ð¶ÐµÑ€Ñ‚Ð²ÑƒÐ²Ð°Ð½ÑŒ. + + + Open Bug Report + Відкритий звіт про помилку + + + Open Online Documentation + Відкрити онлайн документацію + + + Open Keyboard Shortcuts Guide + Відкрити поÑібник з клавіатурних Ñкорочень + + + Save Database Backup + Зберегти резервну копію бази даних + + + SSH Agent: Add Key + SSH Ðгент: Додати ключ + + + SSH Agent: Remove Key + SSH Ðгент: Видалити ключ + + + Toggle Compact Mode + Переключити в компактний режим + + + Set Theme: Automatic + Ð’Ñтановити тему: Ðвтоматично + + + Set Theme: Light + Ð’Ñтановити тему: Світла + + + Set Theme: Dark + Ð’Ñтановити тему: Темна + + + Set Theme: Classic + Ð’Ñтановити тему: КлаÑична + + + Toggle Show Toolbar + Панель інÑтрументів + + + Toggle Show Preview Panel + Показзувати панель попереднього переглÑду + + + Toggle Always on Top + Завжди зверху + + + Toggle Hide Usernames + Приховувати імена кориÑтувачів + + + Toggle Hide Passwords + Приховувати паролі + + + Export to XML + ЕкÑпорт в XML + + + Toggle Allow Screen Capture + Дозволити знімки екрану + ManageDatabase Database settings - ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñховища + ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних Edit database settings - Змінити параметри Ñховища + Редагувати Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних Unlock database - Розблокувати Ñховище + Розблокувати базу даних Unlock database to show more information - Розблокуйте Ñховище, щоб показати додаткову інформацію + Розблокуйте базу даних, щоб показати додаткову інформацію Lock database - Заблокувати Ñховище + Заблокувати базу даних @@ -5396,15 +5900,15 @@ We recommend you use the AppImage available on our downloads page. Disconnect this application - Від'єднати цей заÑтоÑунок + Від'єднати цю програму Reset - + Скинути Reset any remembered decisions for this application - + Скинути будь-Ñкі збережені Ñ€Ñ–ÑˆÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— програми @@ -5421,26 +5925,6 @@ We recommend you use the AppImage available on our downloads page. Overwriting %1 [%2] ÐŸÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñ %1 [%2] - - older entry merged from database "%1" - об'єднано зі Ñтарішим запиÑом із Ñховища "%1" - - - Adding backup for older target %1 [%2] - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ñ— копії Ñтарішої цілі %1 [%2] - - - Adding backup for older source %1 [%2] - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ñ— копії Ñтарішого джерела %1 [%2] - - - Reapplying older target entry on top of newer source %1 [%2] - ÐÐ°ÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ Ñтарішого цільового запиÑу на новіше джерело %1 [%2] - - - Reapplying older source entry on top of newer target %1 [%2] - ÐÐ°ÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ñ–ÑˆÐ¾Ð³Ð¾ джерельного запиÑу на Ñтарішу ціль %1 [%2] - Synchronizing from newer source %1 [%2] Ð£Ð·Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð· новішим джерелом %1 [%2] @@ -5463,7 +5947,7 @@ We recommend you use the AppImage available on our downloads page. Adding missing icon %1 - Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ñутнього значка %1 + Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ñутньої піктограми %1 Removed custom data %1 [%2] @@ -5478,7 +5962,7 @@ We recommend you use the AppImage available on our downloads page. NewDatabaseWizard Create a new KeePassXC database… - + Створити нову базу даних KeePassXC… Root @@ -5498,26 +5982,18 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - Тут Ви можете налаштувати ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñховища. Ðе хвилюйтеÑÑŒ, Ви зможете зробити зміни пізніше в параметрах Ñховища. - - - Advanced Settings - Розширене Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ - - - Simple Settings - ПроÑте Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ + Тут можна змінити параметри ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñховища. Ðе хвилюйтеÑÑ, ви зможете змінити ці параметри згодом у налаштуваннÑÑ… бази даних. NewDatabaseWizardPageDatabaseKey Database Credentials - Облікові дані Ñховища + Облікові дані бази даних A set of credentials known only to you that protects your database. - Ðабір відомих лише Вам облікових даних, Ñкі захищають Ñховище. + Ðабір відомих лише вам облікових даних, Ñкі захищають базу даних. @@ -5528,18 +6004,18 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - Тут Ви можете налаштувати ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñховища. Ðе хвилюйтеÑÑŒ, Ви зможете зробити зміни пізніше в параметрах Ñховища. + Тут можна змінити параметри ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñховища. Ðе хвилюйтеÑÑ, ви зможете змінити ці параметри згодом у налаштуваннÑÑ… бази даних. NewDatabaseWizardPageMetaData General Database Information - Загальна Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ Ñховище + Загальна Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ базу даних Please fill in the display name and an optional description for your new database: - Будь лаÑка, надайте назву Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ Ñ–, можливо, іншу необов'Ñзкову інформацію щодо Вашого нового Ñховища: + Введіть назву та Ð¾Ð¿Ð¸Ñ Ð´Ð»Ñ Ñвоєї нової бази даних: @@ -5550,11 +6026,11 @@ We recommend you use the AppImage available on our downloads page. Global shortcut already registered to %1 - Глобальне ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–Ñˆ вже зареєÑтровано Ð´Ð»Ñ %1 + Глобальну комбінацію клавіш вже зареєÑтровано Ð´Ð»Ñ %1 Could not register global shortcut - РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–Ñˆ зазнало невдачі + Ðе вдалоÑÑ Ð·Ð°Ñ€ÐµÑ”Ñтрувати глобальну комбінацію клавіш @@ -5588,15 +6064,6 @@ We recommend you use the AppImage available on our downloads page. ОчікувалоÑÑŒ %1 байтів відкритого текÑтку, знайдено %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - Ð—Ñ‡Ð¸Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñховища не Ñтворило примірник -%1 - - OpVaultReader @@ -5628,7 +6095,7 @@ We recommend you use the AppImage available on our downloads page. OpenSSHKey Invalid key file, expecting an OpenSSH key - Ðепридатний файловий ключ. Ключ має бути у форматі OpenSSH + ÐеприпуÑтимий ключовий файл. Ключ має бути у форматі OpenSSH PEM boundary mismatch @@ -5640,11 +6107,11 @@ We recommend you use the AppImage available on our downloads page. Key file way too small. - Файловий ключ надто маленький. + Ключовий файл має надто малий розмір. Key file magic header id invalid - Ðепридатний логічний код файлового ключа + ÐеприпуÑтимий логічний код ключового файлу Found zero keys @@ -5656,7 +6123,7 @@ We recommend you use the AppImage available on our downloads page. Corrupted key file, reading private key failed - Файл ключа пошкоджений, Ð·Ñ‡Ð¸Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð°Ñ”Ð¼Ð½Ð¾Ð³Ð¾ ключа зазнало невдачі + Ключовий файл пошкоджений. Ðе вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ приватний ключ Unsupported key type: %1 @@ -5670,13 +6137,17 @@ We recommend you use the AppImage available on our downloads page. Unknown cipher: %1 Ðевідомий шифр: %1 + + AES-256/GCM is currently not supported + AES-256/GCM наразі не підтримуєтьÑÑ + Passphrase is required to decrypt this key Ð”Ð»Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ ключа потрібен вираз Ð¿Ð°Ñ€Ð¾Ð»Ñ Key derivation failed: %1 - + Ðе вдалоÑÑ Ñформувати ключ: %1 Cipher IV is too short for MD5 kdf @@ -5688,11 +6159,11 @@ We recommend you use the AppImage available on our downloads page. Failed to initialize cipher: %1 - + Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ шифр: %1 Decryption failed: %1 - + Ðе вдалоÑÑ Ð·Ð°ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ñ‚Ð¸: %1 Decryption failed, wrong passphrase? @@ -5700,11 +6171,11 @@ We recommend you use the AppImage available on our downloads page. Unexpected EOF while reading key - + Ðеочікуваний кінець файлу під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° Unsupported key part - + ЧаÑтина ключа не підтримуєтьÑÑ Unexpected EOF while reading public key @@ -5736,26 +6207,177 @@ We recommend you use the AppImage available on our downloads page. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - Паролі не Ñпівпадають + SSH Key Generator + Генератор ключів SSH - Passwords match so far - Паролі поки що Ñпівпадають + Type + Тип - Toggle Password (%1) - Перемкнути пароль (%1) + Bits + Біт - Generate Password (%1) - Створити пароль (%1) + Comment + Коментар + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - ЕкÑпорт ключа доÑтупу - Warning: Caps Lock enabled! - Увага: Caps Lock увімкнено! + Export the following Passkey entries. + ЕкÑпортуйте наÑтупні запиÑи ключів доÑтупу. + + + Filenames will be generated with title and .passkey file extension. + Файли будуть Ñтворені з назвою та розширеннÑм .passkey. + + + Export entries + ЕкÑпорт запиÑів + + + Export Selected + ЕкÑпортувати вибране + + + Cancel + СкаÑувати + + + Export to folder + ЕкÑпорт до папки + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: ЕкÑпорт ключа доÑтупу + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + Файл "%1.passkey" вже Ñ–Ñнує. +Хочете перезапиÑати його? + + + Cannot open file + Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл + + + Cannot open file "%1" for writing. + Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл "%1" Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу. + + + Cannot write to file + Ðе можу запиÑати до файла + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - Імпорт ключа доÑтупу + + + Username: %1 + Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача: %1 + + + Group + Група + + + Database + Сховище + + + Import Passkey + Імпорт Passkey + + + Import + Ð†Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ + + + Cancel + СкаÑувати + + + Import the following Passkey: + Імпортувати наÑтупний ключ доÑтупу: + + + Entry + Ð—Ð°Ð¿Ð¸Ñ + + + Import the following Passkey to this entry: + Імпортувати наÑтупний ключ доÑтупу до цього запиÑу: + + + Create new entry + Створити новий Ð·Ð°Ð¿Ð¸Ñ + + + Default Passkeys group (Imported Passkeys) + Типова група ключів за замовчуваннÑм (Імпортовані ключі) + + + Relying Party: %1 + Довірена Ñторона: %1 + + + + PasskeyImporter + + Passkey file + Файл з ключем + + + All files + УÑÑ– файли + + + Open Passkey file + Відкрити файл ключа + + + Cannot open file + Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл + + + Cannot open file "%1" for reading. + Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл "%1" Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ. + + + Cannot import Passkey + Ðе вдаєтьÑÑ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ñ‚Ð¸ ключ доÑтупу. + + + Cannot import Passkey file "%1". Data is missing. + Ðе вдаєтьÑÑ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ñ‚Ð¸ файл ключа доÑтупу "%1". ВідÑутні дані. + + + Cannot import Passkey file "%1". Private key is missing or malformed. + Ðе вдаєтьÑÑ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ñ‚Ð¸ файл ключа доÑтупу "%1". ВідÑутній або некоректний приватний ключ. + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + Ðе вдаєтьÑÑ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ñ‚Ð¸ файл ключа доÑтупу "%1". +ВідÑутні наÑтупні дані: +%2 @@ -5782,23 +6404,23 @@ We recommend you use the AppImage available on our downloads page. Add Password - + Додати пароль Change Password - + Змінити пароль Remove Password - + Вилучити пароль Password set, click to change or remove - + Пароль вÑтановлено Клацніть, щоб змінити або вилучити. <p>A password is the primary method for securing your database.</p><p>Good passwords are long and unique. KeePassXC can generate one for you.</p> - <p>Пароль Ñ” оÑновним заÑобом Ð´Ð»Ñ ÑƒÐ±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ð’Ð°ÑˆÐ¾Ð³Ð¾ Ñховища.</p><p>Ðайкращі паролі мають бути довгими та унікальними. KeePassXC може Ñтворити такий Ð´Ð»Ñ Ð’Ð°Ñ.</p> + <p>Пароль – це оÑновний ÑпоÑіб захиÑту вашої бази даних.</p><p>Ðадійний пароль повинен бути унікальним Ñ– мати доÑтатню кількіÑть Ñимволів. KeePassXC може згенерувати його Ð´Ð»Ñ Ð²Ð°Ñ.</p> Passwords do not match. @@ -5809,7 +6431,7 @@ We recommend you use the AppImage available on our downloads page. PasswordGeneratorWidget Generate Password - Створити пароль + Генерувати пароль strength @@ -5830,7 +6452,7 @@ We recommend you use the AppImage available on our downloads page. Regenerate password - Створити пароль знову + Повторно генерувати пароль Copy password @@ -5974,11 +6596,11 @@ We recommend you use the AppImage available on our downloads page. Delete selected wordlist - + Видалити вибраний ÑпиÑок Ñлів Add custom wordlist - + Додати влаÑний ÑпиÑок Ñлів character @@ -5998,7 +6620,7 @@ We recommend you use the AppImage available on our downloads page. Regenerate password (%1) - Створити пароль знову (%1) + Повторно генерувати пароль (%1) lower case @@ -6014,57 +6636,12 @@ We recommend you use the AppImage available on our downloads page. (SYSTEM) - + (СИСТЕМÐ) Entropy: %1 bit ЕнтропіÑ: %1 біт - - Confirm Delete Wordlist - - - - Do you really want to delete the wordlist "%1"? - - - - Failed to delete wordlist - - - - Wordlists - - - - All files - Ð’ÑÑ– файли - - - Select Custom Wordlist - - - - Overwrite Wordlist? - - - - Wordlist "%1" already exists as a custom wordlist. -Do you want to overwrite it? - - - - Failed to add wordlist - - - - Logograms - Логограми - - - Special Characters - Спеціальні Ñимволи - Password Quality: %1 ЯкіÑть паролÑ: %1 @@ -6089,20 +6666,117 @@ Do you want to overwrite it? Password quality Відмінна + + Confirm Delete Wordlist + Підтвердити Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÑпиÑку Ñлів + + + Do you really want to delete the wordlist "%1"? + Ви дійÑно хочете видалити ÑпиÑок Ñлів "%1"? + + + Failed to delete wordlist + Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ ÑпиÑок Ñлів + + + Wordlists + СпиÑки Ñлів + + + All files + Ð’ÑÑ– файли + + + Select Custom Wordlist + Вибрати влаÑний ÑпиÑок Ñлів + + + Overwrite Wordlist? + ПерезапиÑати ÑпиÑок Ñлів? + + + Wordlist "%1" already exists as a custom wordlist. +Do you want to overwrite it? + СпиÑок Ñлів "%1" вже наÑвний Ñк влаÑний ÑпиÑок. +Хочете його перезапиÑати? + + + Failed to add wordlist + Ðе вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ ÑпиÑок Ñлів + + + Logograms + Логограми + + + Special Characters + Спеціальні Ñимволи + + + + PasswordWidget + + Passwords do not match + Паролі відрізнÑютьÑÑ + + + Passwords match so far + Ðаразі паролі збігаютьÑÑ + + + Toggle Password (%1) + Перемкнути пароль (%1) + + + Generate Password (%1) + Генерувати пароль (%1) + + + Warning: Caps Lock enabled! + Увага: Caps Lock увімкнено! + + + Quality: %1 + ЯкіÑть: %1 + + + Poor + Password quality + Погана + + + Weak + Password quality + Ðизька + + + Good + Password quality + Добра + + + Excellent + Password quality + Відмінна + + + Toggle password visibility using Control + H. Open the password generator using Control + G. + ВидиміÑть Ð¿Ð°Ñ€Ð¾Ð»Ñ â€“ Control + H. Відкрити генератор паролів – Control + G. + PickcharsDialog KeePassXC - Pick Characters - + KeePassXC – вибір Ñимволів Select characters to type, navigate with arrow keys, Ctrl + S submits. - + Оберіть Ñимволи Ð´Ð»Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ. ÐÐ°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ°Ð¼Ð¸ Ñтрілок. Ctrl + S Ð´Ð»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ. Press &Tab between characters - + ÐатиÑкайте &Tab між Ñимволами @@ -6143,16 +6817,20 @@ Do you want to overwrite it? Continue Продовжити + + Continue with weak password + Продовжити зі Ñлабким паролем + QObject Database not opened - Сховище не відкрите + Базу даних не відкрито Database hash not available - Контрольна Ñума Ñховища недоÑтупна + Контрольна Ñума бази даних недоÑтупна Client public key not received @@ -6204,7 +6882,7 @@ Do you want to overwrite it? No valid UUID provided - + Ðе вказано дійÑного UUID Unknown error @@ -6212,7 +6890,7 @@ Do you want to overwrite it? Browser Integration - Ð¡Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð· переглÑдачем + Ð†Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ñ–Ñ Ð· браузером Browser Plugin Failure @@ -6236,7 +6914,7 @@ Do you want to overwrite it? URL - URL + URL-адреÑа Notes for the entry. @@ -6244,7 +6922,7 @@ Do you want to overwrite it? Notes - Примітки + Ðотатки Prompt for the entry's password. @@ -6252,11 +6930,11 @@ Do you want to overwrite it? Generate a password for the entry. - Створити пароль Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу. + Генерувати пароль Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу. Add a new entry to a database. - Додати новий Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ Ñховища. + Додати новий Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ бази даних. Path of the entry to add. @@ -6264,7 +6942,7 @@ Do you want to overwrite it? Cannot generate a password and prompt at the same time. - + Ðеможливо генерувати пароль Ñ– запит одночаÑно. Could not create entry with path %1. @@ -6276,7 +6954,7 @@ Do you want to overwrite it? Writing the database failed %1. - ЗапиÑати Ñховище не вдалоÑÑ %1. + Ðе вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати в базу даних %1. Successfully added entry %1. @@ -6284,7 +6962,7 @@ Do you want to overwrite it? Adds a new group to a database. - Додає нову групу Ð´Ð»Ñ Ñховища. + Додає нову групу до бази даних. Path of the group to add. @@ -6328,7 +7006,7 @@ Do you want to overwrite it? Evaluating database entries using okon… - + Оцінка запиÑів бази даних за допомогою okon… Failed to open HIBP file %1: %2 @@ -6336,7 +7014,7 @@ Do you want to overwrite it? Evaluating database entries against HIBP file, this will take a while… - + Оцінка запиÑів бази даних на оÑнові файлу HIBP. Це триватиме довше… Password for '%1' has been leaked %2 time(s)! @@ -6348,19 +7026,19 @@ Do you want to overwrite it? Export an attachment of an entry. - + ЕкÑпортувати Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу. Path of the entry with the target attachment. - + ШлÑÑ… запиÑу з цільовим вкладеннÑм. Name of the attachment to be exported. - + Ðазва Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ð´Ð»Ñ ÐµÐºÑпортуваннÑ. Path to which the attachment should be exported. - + ШлÑÑ…, за Ñким потрібно екÑпортувати вкладеннÑ. Could not find entry with path %1. @@ -6368,80 +7046,80 @@ Do you want to overwrite it? Could not find attachment with name %1. - + Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ð· назвою %1. No export target given. Please use '--stdout' or specify an 'export-file'. - + Ðе зазначено цільовий шлÑÑ… екÑпорту. СкориÑтайтеÑÑ '--stdout' або вкажіть 'export-file'. Could not open output file %1. - + Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ вихідний файл %1. Successfully exported attachment %1 of entry %2 to %3. - + Ð’ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ %1 запиÑу %2 уÑпішно імпортовано до %3. Overwrite existing attachments. - + ПерезапиÑати наÑвні вкладеннÑ. Imports an attachment to an entry. - + Імпортує Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ð´Ð¾ запиÑу. Path of the entry. - + ШлÑÑ… до запиÑу. Name of the attachment to be added. - + Ðазва Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ. Path of the attachment to be imported. - + ШлÑÑ… до Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ. Attachment %1 already exists for entry %2. - + Ð’ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ %1 вже наÑвне у запиÑÑ– %2. Could not open attachment file %1. - + Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ %1. Successfully imported attachment %1 as %2 to entry %3. - + Ð’ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ %1 уÑпішно імпортовано Ñк %2 до запиÑу %3. Remove an attachment of an entry. - + Вилучити Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу. Name of the attachment to be removed. - + Ðазва Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ. Successfully removed attachment %1 from entry %2. - + Ð’ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ %1 уÑпішно вилучено із запиÑу %2. Copy the given attribute to the clipboard. Defaults to "password" if not specified. Don't translate "password", it refers to the attribute. - Скопіювати надану ознаку в кишеню. Якщо не вказано, типовим значеннÑм буде «password» + Копіювати заданий атрибут до буфера обміну. Якщо не вказано, типовим значеннÑм буде "password". Copy the current TOTP to the clipboard (equivalent to "-a totp"). - Скопіювати поточний ТОП до кишені (відповідає «-a top»). + Копіювати поточний код TOTP у буфер обміну (відповідає "-a totp"). Must match only one entry, otherwise a list of possible matches is shown. - + Має відповідати лише одному запиÑу, в іншому випадку показуєтьÑÑ ÑпиÑок можливих збігів. Copy an entry's attribute to the clipboard. - Скопіювати ознаку запиÑу в кишеню. + Копіювати атрибут запиÑу в буфер обміну. Path of the entry to clip. @@ -6450,7 +7128,7 @@ Do you want to overwrite it? Timeout before clearing the clipboard (default is %1 seconds, set to 0 for unlimited). - + Ð§Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð±ÑƒÑ„ÐµÑ€Ð° обміну. (Типово %1 Ñекунд. Щоб прибрати обмеженнÑ, вÑтановіть 0.) Invalid timeout value %1. @@ -6462,7 +7140,7 @@ Do you want to overwrite it? Using matching entry: %1 - + ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾Ð³Ð¾ запиÑу: %1 Entry %1 not found. @@ -6470,35 +7148,35 @@ Do you want to overwrite it? ERROR: Please specify one of --attribute or --totp, not both. - ПОМИЛКÐ: вкажіть, будь лаÑка, або --attribute, або --totp, а не обидва разом. + ПОМИЛКÐ: вкажіть, або --attribute, або --totp, а не обидва разом. Entry with path %1 has no TOTP set up. - Ð—Ð°Ð¿Ð¸Ñ Ñ–Ð· шлÑхом %1 не має налаштованого ТОП. + Ð—Ð°Ð¿Ð¸Ñ Ð·Ñ– шлÑхом %1 не має налаштованого TOTP. ERROR: attribute %1 is ambiguous, it matches %2. - ПОМИЛКÐ: ознака %1 неоднозначна, вона збігаєтьÑÑ Ð· %2. + ПОМИЛКÐ: атрибут %1 неоднозначний, він збігаєтьÑÑ Ð· %2. Attribute "%1" not found. - Ознаку "%1" не знайдено. + Ðтрибут "%1" не знайдено. Entry's "%1" attribute copied to the clipboard! - Ознаку запиÑу "%1" Ñкопійовано до кишені! + Ðтрибут запиÑу "%1" Ñкопійовано в буфер обміну! Clearing the clipboard in %1 second(s)... - ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ ÐºÐ¸ÑˆÐµÐ½Ñ– через %1 Ñекунду...ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ ÐºÐ¸ÑˆÐµÐ½Ñ– через %1 Ñекунди...ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ ÐºÐ¸ÑˆÐµÐ½Ñ– через %1 Ñекунд...ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ ÐºÐ¸ÑˆÐµÐ½Ñ– через %1 Ñекунд... + Буфер обміну очиÑтитьÑÑ Ñ‡ÐµÑ€ÐµÐ· %1 Ñекунду...Буфер обміну очиÑтитьÑÑ Ñ‡ÐµÑ€ÐµÐ· %1 Ñекунди...Буфер обміну очиÑтитьÑÑ Ñ‡ÐµÑ€ÐµÐ· %1 Ñекунд...Буфер обміну очиÑтитьÑÑ Ñ‡ÐµÑ€ÐµÐ· %1 Ñекунди... Clipboard cleared! - Кишеню очищено! + Буфер обміну очищено! Close the currently opened database. - Закрити наразі відкрите Ñховище. + Закрити наразі відкриту базу даних. Display this help. @@ -6510,7 +7188,7 @@ Do you want to overwrite it? Key file of the database. - Файловий ключ Ð´Ð»Ñ Ñховища. + Ключовий файл бази даних. path @@ -6518,11 +7196,11 @@ Do you want to overwrite it? Deactivate password key for the database. - Вимкнути парольний ключ Ð´Ð»Ñ Ñховища. + Вимкнути парольний ключ Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних. Yubikey slot and optional serial used to access the database (e.g., 1:7370001). - Гніздо Yubikey й необов'Ñзковий Ñерійний номер Ð´Ð»Ñ Ð´Ð¾Ñтупу до Ñховища (наприклад 1:7370001). + Роз'єм Yubikey та необов'Ñзковий Ñерійний номер Ð´Ð»Ñ Ð´Ð¾Ñтупу до бази даних (наприклад 1:7370001). slot[:serial] @@ -6530,35 +7208,41 @@ Do you want to overwrite it? Missing positional argument(s). - + ВідÑутні позиційні аргументи. Too many arguments provided. - + Ðадано забагато аргументів. + + + Path of the database. + ШлÑÑ… до бази даних. Target decryption time in MS for the database. - Цільовий Ñ‡Ð°Ñ Ð´Ð»Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñховища у мÑ. + Цільовий Ñ‡Ð°Ñ Ð´Ð»Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних у мÑ. time Ñ‡Ð°Ñ + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + Ðалаштуйте ключовий файл Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних. +Ці параметри заÑтарілі, викориÑтовуйте натоміÑть --set-key-file. + Set the key file for the database. - Вкажіть файловий ключ Ð´Ð»Ñ Ñховища. + Ð’Ñтановити ключовий файл Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних. Set a password for the database. - Вкажіть пароль Ð´Ð»Ñ Ñховища. + Ð’Ñтановити пароль Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних. Create a new database. - Створити нове Ñховище. - - - Path of the database. - ШлÑÑ… до Ñховища. + Створити нову базу даних. Invalid decryption time %1. @@ -6570,15 +7254,15 @@ Do you want to overwrite it? Failed to set database password. - Ðе вдалоÑÑ Ð²Ñтановити пароль Ð´Ð»Ñ Ñховища. + Ðе вдалоÑÑ Ð²Ñтановити пароль Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних. Loading the key file failed - Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° зазнало невдачі + Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ ключовий файл No key is set. Aborting database creation. - Ключ не вÑтановлено. Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñховища ÑкаÑовано. + Ключ не вÑтановлено. ÐŸÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð±Ð°Ð·Ð¸ даних. Benchmarking key derivation function for %1ms delay. @@ -6598,11 +7282,163 @@ Do you want to overwrite it? Failed to save the database: %1. - Зберегти Ñховище не вдалоÑÑ %1. + Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ базу даних: %1. Successfully created new database. - Ðове Ñховище уÑпішно Ñтворено. + Ðову базу даних уÑпішно Ñтворено. + + + Unset the password for the database. + Вилучити пароль Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних. + + + Unset the key file for the database. + Вилучити ключовий файл Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних. + + + Edit a database. + Редагувати базу даних. + + + Cannot use %1 and %2 at the same time. + Ðеможливо викориÑтовувати %1 Ñ– %2 одночаÑно. + + + Could not change the database key. + Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ ключ бази даних. + + + Database was not modified. + База даних не була змінена. + + + Writing the database failed: %1 + Ðе вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати в базу даних: %1 + + + Successfully edited the database. + База даних уÑпішно редагована. + + + Cannot remove password: The database does not have a password. + Ðеможливо вилучити пароль: база даних не має паролÑ. + + + Cannot remove file key: The database does not have a file key. + Ðе вдалоÑÑ Ð²Ð¸Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸ ключовий файл: база даних не має ключового файлу. + + + Loading the new key file failed: %1 + Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ новий ключовий файл: %1 + + + Found unexpected Key type %1 + Знайдено неочікуваний тип ключа %1 + + + Cannot remove all the keys from a database. + Ðеможливо вилучити вÑÑ– ключі з бази даних. + + + Show a database's information. + Показати інформацію про базу даних. + + + UUID: + UUID: + + + Name: + Ðазва: + + + Description: + ОпиÑ: + + + Cipher: + Шифр: + + + KDF: + KDF: + + + Recycle bin is enabled. + Смітник увімкнено. + + + Recycle bin is not enabled. + Смітник вимкнено. + + + Location + Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ + + + Database created + Базу даних Ñтворено + + + Last saved + ОÑтаннє Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ + + + Unsaved changes + Ðезбережені зміни + + + yes + так + + + no + ні + + + Number of groups + КількіÑть груп + + + Number of entries + КількіÑть запиÑів + + + Number of expired entries + КількіÑть протермінованих запиÑів + + + Unique passwords + Унікальні паролі + + + Non-unique passwords + Повторювані паролі + + + Maximum password reuse + Ðайбільша кількіÑть повторень Ð¿Ð°Ñ€Ð¾Ð»Ñ + + + Number of short passwords + КількіÑть коротких паролів + + + Number of weak passwords + КількіÑть Ñлабких паролів + + + Entries excluded from reports + ЗапиÑи, виключені зі звітів + + + Average password length + Ð¡ÐµÑ€ÐµÐ´Ð½Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ð¿Ð°Ñ€Ð¾Ð»Ñ + + + %1 characters + %1 Ñимволів Word count for the diceware passphrase. @@ -6655,10 +7491,6 @@ Do you want to overwrite it? Enter new password for entry: Введіть новий пароль Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу: - - Writing the database failed: %1 - ЗапиÑати Ñховище не вдалоÑÑ: %1 - Successfully edited entry %1. УÑпішно змінено Ð·Ð°Ð¿Ð¸Ñ %1. @@ -6693,79 +7525,79 @@ Do you want to overwrite it? Type: Bruteforce - Тип: Метод грубої Ñили + Тип: метод грубої Ñили Type: Dictionary - Тип: Словник + Тип: Ñловник Type: Dict+Leet - Тип: Словник+Leet + Тип: Ñловник + Leet Type: User Words - Тип: КориÑтувацькі Ñлова + Тип: кориÑтувацькі Ñлова Type: User+Leet - Тип: КориÑтувач+Leet + Тип: кориÑтувач + Leet Type: Repeated - Тип: ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€ÑŽÐ²Ð°Ð½Ð½Ñ + Тип: Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€ÑŽÐ²Ð°Ð½Ð½Ñ Type: Sequence - Тип: ПоÑлідовніÑть + Тип: поÑлідовніÑть Type: Spatial - Тип: ПроÑторовий + Тип: проÑторовий Type: Date - Тип: Дата + Тип: дата Type: Bruteforce(Rep) - Тип: Метод грубої Ñили (повт.) + Тип: метод грубої Ñили (повт.) Type: Dictionary(Rep) - Тип: Словник (повт.) + Тип: Ñловник (повт.) Type: Dict+Leet(Rep) - Тип: Словник+Leet (повт.) + Тип: Ñловник + Leet (повт.) Type: User Words(Rep) - Тип: КориÑтувацькі Ñлова (повт.) + Тип: кориÑтувацькі Ñлова (повт.) Type: User+Leet(Rep) - Тип: КориÑтувач+Leet (повт.) + Тип: кориÑтувач + Leet (повт.) Type: Repeated(Rep) - Тип: ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€ÑŽÐ²Ð°Ð½Ð½Ñ (повт.) + Тип: Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€ÑŽÐ²Ð°Ð½Ð½Ñ (повт.) Type: Sequence(Rep) - Тип: ПоÑлідовніÑть (повт.) + Тип: поÑлідовніÑть (повт.) Type: Spatial(Rep) - Тип: ПроÑторовий (повт.) + Тип: проÑторовий (повт.) Type: Date(Rep) - Тип: Дата (повт.) + Тип: дата (повт.) Type: Unknown (%1) - + Тип: невідомий (%1) Entropy %1 (%2) @@ -6785,11 +7617,11 @@ Do you want to overwrite it? Exports the content of a database to standard output in the specified format. - ÐадÑилає вміÑÑ‚ Ñховища до Ñтандартного виходу в зазначеному форматі. + ЕкÑпортує вміÑÑ‚ бази даних до Ñтандартного виводу в зазначеному форматі. Unable to export database to XML: %1 - Ðеможливо екÑпортувати Ñховище в XML: %1 + Ðеможливо екÑпортувати базу даних в XML: %1 Unsupported format %1 @@ -6833,7 +7665,7 @@ Do you want to overwrite it? Use custom character set - + ВикориÑтовувати влаÑний набір Ñимволів Exclude similar looking characters @@ -6845,7 +7677,7 @@ Do you want to overwrite it? Generate a new random password. - Створити новий випадковий пароль. + Генерувати новий випадковий пароль. Invalid password length %1 @@ -6865,123 +7697,23 @@ Do you want to overwrite it? Import the contents of an XML database. - Імпортувати вміÑÑ‚ Ñховища XML. + Імпортувати вміÑÑ‚ бази даних із файлу XML. Path of the XML database export. - ШлÑÑ… Ð´Ð»Ñ ÐµÐºÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñховища XML. + ШлÑÑ… до файлу XML екÑпортованої бази даних. Path of the new database. - ШлÑÑ… до нового Ñховища. + ШлÑÑ… до нової бази даних. Unable to import XML database: %1 - Ðеможливо імпортувати Ñховище XML: %1 + Ðеможливо імпортувати базу даних XML: %1 Successfully imported database. - Сховище вдало імпортовано. - - - Show a database's information. - Показати інформацію про Ñховище. - - - UUID: - UUID: - - - Name: - Ðазва: - - - Description: - ОпиÑ: - - - Cipher: - Шифр: - - - KDF: - KDF: - - - Recycle bin is enabled. - Смітник увімкнено. - - - Recycle bin is not enabled. - Смітник вимкнено. - - - Location - Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ - - - Database created - - - - Last saved - ОÑтаннє Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ - - - Unsaved changes - Ðезбережені зміни - - - yes - так - - - no - ні - - - Number of groups - КількіÑть груп - - - Number of entries - КількіÑть запиÑів - - - Number of expired entries - КількіÑть знечинених запиÑів - - - Unique passwords - Унікальні паролі - - - Non-unique passwords - Повторювані паролі - - - Maximum password reuse - Ðайбільша кількіÑть повторень Ð¿Ð°Ñ€Ð¾Ð»Ñ - - - Number of short passwords - КількіÑть коротких паролів - - - Number of weak passwords - КількіÑть Ñлабких паролів - - - Entries excluded from reports - ЗапиÑи, виключені зі звітів - - - Average password length - Ð¡ÐµÑ€ÐµÐ´Ð½Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ð¿Ð°Ñ€Ð¾Ð»Ñ - - - %1 characters - %1 Ñимволів + Базу даних уÑпішно імпортовано. Unknown command %1 @@ -7003,7 +7735,7 @@ Available commands: Displays debugging information. - Показаує інформацію щодо зневадженнÑ. + Показує інформацію щодо налагодженнÑ. Invalid command %1. @@ -7019,7 +7751,7 @@ Available commands: List database entries. - Показати перелік Ñховищ. + СпиÑок запиÑів бази даних. Path of the group to list. Default is / @@ -7031,15 +7763,15 @@ Available commands: Use the same credentials for both database files. - ВикориÑтовувати однакові реєÑтраційні дані Ð´Ð»Ñ Ð¾Ð±Ð¾Ñ… Ñховищ. + ВикориÑтовувати однакові облікові дані Ð´Ð»Ñ Ð¾Ð±Ð¾Ñ… файлів бази даних. Key file of the database to merge from. - Файловий ключ Ð´Ð»Ñ Ñховища, Ñке підлÑгає об'єднанню. + Ключовий файл об'єднуваної бази даних. Deactivate password key for the database to merge from. - Вимкнути парольний ключ Ð´Ð»Ñ Ñховища, Ñке підлÑгає об'єднанню. + Вимкніть парольний ключ Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних, з Ñкою потрібно об'єднати. Only print the changes detected by the merge operation. @@ -7047,7 +7779,7 @@ Available commands: Yubikey slot for the second database. - Гніздо Yubikey Ð´Ð»Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ Ñховища. + Роз'єм Yubikey Ð´Ð»Ñ Ð´Ñ€ÑƒÐ³Ð¾Ñ— бази даних. slot @@ -7055,11 +7787,11 @@ Available commands: Merge two databases. - Об'єднати два Ñховища. + Об'єднати дві бази даних. Path of the database to merge from. - ШлÑÑ… до Ñховища, Ñке підлÑгає об'єднанню. + ШлÑÑ… до бази даних, з Ñкою потрібно об'єднати. Error reading merge file: @@ -7069,7 +7801,7 @@ Available commands: Unable to save database to file : %1 - Ðеможливо зберегти Ñховище до файлу : %1 + Ðеможливо зберегти файл бази даних : %1 Successfully merged %1 into %2. @@ -7077,7 +7809,7 @@ Available commands: Database was not modified by merge operation. - Об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½Ðµ змінило Ñховище. + ПіÑÐ»Ñ Ð¾Ð±'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð° даних не змінилаÑÑ. Moves an entry to a new group. @@ -7105,7 +7837,7 @@ Available commands: Open a database. - Відкрити Ñховище. + Відкрити базу даних. Path of the entry to remove. @@ -7113,7 +7845,7 @@ Available commands: Unable to save database to file: %1 - Ðеможливо зберегти Ñховище до файлу: %1 + Ðеможливо зберегти файл бази даних: %1 Successfully recycled entry %1. @@ -7129,7 +7861,7 @@ Available commands: Cannot remove root group from database. - Ðеможливо видалити кореневу групу зі Ñховища. + Ðеможливо видалити кореневу групу з бази даних. Successfully recycled group %1. @@ -7149,23 +7881,27 @@ Available commands: Show the entry's current TOTP. - Показати поточний ТОП запиÑу. + Показати поточний TOTP запиÑу. Show the protected attributes in clear text. - Показувати захищені ознаки незахищеним текÑтом. + Показувати захищені атрибути звичайним текÑтом. + + + Show all the attributes of the entry. + Показати вÑÑ– атрибути запиÑу. Show the attachments of the entry. - + Показати Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу. Names of the attributes to show. This option can be specified more than once, with each attribute shown one-per-line in the given order. If no attributes are specified, a summary of the default attributes is given. - Ðазви ознак Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ. Цей параметр можна вказати кілька разів, тим чаÑом у кожному Ñ€Ñдку може бути тільки один примірник у заданому порÑдку. Якщо ознаки не вказані, буде показано типові ознаки. + Ðазви атрибутів Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ. Цей параметр можна вказати кілька разів, показуючи кожен атрибут в окремому Ñ€Ñдку в заданій поÑлідовноÑті. Якщо жодного атрибута не вказано, показуєтьÑÑ Ð·Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¸Ñ… атрибутів. attribute - ознака + атрибут Show an entry's information. @@ -7177,27 +7913,27 @@ Available commands: ERROR: unknown attribute %1. - ПОМИЛКÐ: невідома ознака %1. + ПОМИЛКÐ: невідомий атрибут %1. No attachments present. - + Ðе знайдено жодного вкладеннÑ. Attachments: - + ВкладеннÑ: Failed to open database file %1: not found - Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл Ñховища %1: файл не знайдено + Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл бази даних %1: не знайдено Failed to open database file %1: not a plain file - Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл Ñховища %1: не звичайний файл + Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл бази даних %1: не звичайний файл Failed to open database file %1: not readable - Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл Ñховища %1: недоÑтупний Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ + Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл бази даних %1: неможливо прочитати Enter password to unlock %1: @@ -7205,17 +7941,17 @@ Available commands: Failed to load key file %1: %2 - Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ ключа зазнало невдачі %1: %2 + Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ ключовий файл %1: %2 WARNING: You are using an old key file format which KeePassXC may stop supporting in the future. Please consider generating a new key file. - ПопередженнÑ: Ви викориÑтовуєте заÑтарілий формат файлового ключа, Ñкий KeePassXC може -припинити підтримувати у майбутньому. + ПОПЕРЕДЖЕÐÐЯ: ви викориÑтовуєте заÑтарілий формат ключового файлу, Ñкий KeePassXC може +припинити підтримувати в майбутньому. -Бажано Ñтворити новий файловий ключ. +Будь лаÑка, Ñтворіть новий ключовий файл. Invalid YubiKey slot %1 @@ -7225,13 +7961,17 @@ Please consider generating a new key file. Invalid YubiKey serial %1 Ðепридатний Ñерійний номер YubiKey %1 + + Please present or touch your YubiKey to continue. + Ðадайте Ñвій YubiKey або торкнітьÑÑ Ð¹Ð¾Ð³Ð¾ Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ. + Enter password to encrypt database (optional): - Введіть пароль Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñховища (необов'Ñзково): + Введіть пароль Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних (необов'Ñзково): Do you want to create a database with an empty password? [y/N]: - Ви дійÑно бажаєте Ñтворити Ñховище з порожнім паролем? [y - так / N - ні]: + Ви дійÑно хочете Ñтворити базу даних із порожнім паролем? Y (так) / N (ні): Repeat password: @@ -7239,11 +7979,11 @@ Please consider generating a new key file. Error: Passwords do not match. - Помилка: паролі не збігаютьÑÑ. + Помилка: паролі відрізнÑютьÑÑ. No program defined for clipboard manipulation - Програму Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ з кишенею не визначено + Програму Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ з буфером обміну не визначено All clipping programs failed. Tried %1 @@ -7253,11 +7993,11 @@ Please consider generating a new key file. Creating KeyFile %1 failed: %2 - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¾Ð³Ð¾ ключа %1 зазнало невдачі: %2 + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ð¾Ð³Ð¾ файлу %1 зазнало невдачі: %2 Loading KeyFile %1 failed: %2 - Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¾Ð³Ð¾ ключа %1 зазнало невдачі: %2 + Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ð¾Ð³Ð¾ файлу %1 зазнало невдачі: %2 HIBP file, line %1: parse error @@ -7265,7 +8005,7 @@ Please consider generating a new key file. To use okon, you must provide a post-processed file (e.g. file.okon) - + Ð”Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ okon потрібно надати оброблений файл (наприклад, file.okon) Could not start okon process: %1 @@ -7277,7 +8017,7 @@ Please consider generating a new key file. Failed to load okon processed database: %1 - Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñховища піÑÐ»Ñ Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¾ÑŽ okon зазнало невдачі: %1 + Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ базу даних, оброблену okon: %1 Very weak password @@ -7297,7 +8037,7 @@ Please consider generating a new key file. Password is used %1 time(s) - + Пароль викориÑтано %1 разПароль викориÑтано %1 разиПароль викориÑтано %1 разівПароль викориÑтано %1 разів Password has expired @@ -7317,7 +8057,7 @@ Please consider generating a new key file. Password expires in %1 day(s) - + Термін дії Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÑƒÑ”Ñ‚ÑŒÑÑ Ñ‡ÐµÑ€ÐµÐ· %1 деньТермін дії Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÑƒÑ”Ñ‚ÑŒÑÑ Ñ‡ÐµÑ€ÐµÐ· %1 дніТермін дії Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÑƒÑ”Ñ‚ÑŒÑÑ Ñ‡ÐµÑ€ÐµÐ· %1 днівТермін дії Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÑƒÑ”Ñ‚ÑŒÑÑ Ñ‡ÐµÑ€ÐµÐ· %1 днів Password will expire soon @@ -7341,11 +8081,11 @@ Please consider generating a new key file. Debugging mode is disabled. - Режим Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾. + Режим Ð½Ð°Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾. Debugging mode is enabled. - Режим Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ð²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾. + Режим Ð½Ð°Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ð²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾. Operating system: %1 @@ -7373,7 +8113,7 @@ Kernel: %3 %4 Quick Unlock - + Швидке Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Secret Service Integration @@ -7389,31 +8129,31 @@ Kernel: %3 %4 over %1 year(s) - + через %1 рікчерез %1 рокичерез %1 роківчерез %1 роки about %1 month(s) - + близько %1 міÑÑцÑблизько %1 міÑÑцівблизько %1 міÑÑцівблизько %1 міÑÑців %1 week(s) - + %1 тиждень%1 тижні%1 тижнів%1 тижні %1 day(s) - + %1 день%1 дні%1 днів%1 днів %1 hour(s) - + %1 година%1 години%1 годин%1 годин %1 minute(s) - + %1 хвилина%1 хвилини%1 хвилин%1 хвилин - Botan library must be at least 2.11.x, found %1.%2.%3 - + Botan library must be at least %1, found %2.%3.%4 + ВерÑÑ–Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Botan повинна бути не нижчою за %1, знайдена %2.%3.%4 Cryptographic libraries: @@ -7429,27 +8169,27 @@ Kernel: %3 %4 SymmetricCipher::init: Invalid cipher mode. - + SymmetricCipher::init: неприпуÑтимий режим шифру. SymmetricCipher::init: Invalid IV size of %1 for %2. - + SymmetricCipher::init: неприпуÑтимий розмір IV %1 Ð´Ð»Ñ %2. Cipher not initialized prior to use. - + Шифр не ініціалізований перед викориÑтаннÑм. Cannot process 0 length data. - + Ðеможливо обробити дані довжини 0. unknown executable (DBus address %1) - + невідомий виконуваний файл (DBus адреÑа %1) %1 (invalid executable path) - + %1 (неприпуÑтимий шлÑÑ… Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ) NULL device @@ -7485,7 +8225,7 @@ Kernel: %3 %4 ChaCha20 256-bit - + ChaCha20 256-bit Argon2d (KDBX 4 – recommended) @@ -7501,7 +8241,7 @@ Kernel: %3 %4 AES-KDF (KDBX 3) - + AES-KDF (KDBX 3) Existing single-instance lock file is invalid. Launching new instance. @@ -7513,7 +8253,7 @@ Kernel: %3 %4 Clearing the clipboard in %1 second(s)… - + ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð±ÑƒÑ„ÐµÑ€Ð° обміну через %1 ÑÐµÐºÑƒÐ½Ð´Ñƒâ€¦ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð±ÑƒÑ„ÐµÑ€Ð° обміну через %1 ÑÐµÐºÑƒÐ½Ð´Ð¸â€¦ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð±ÑƒÑ„ÐµÑ€Ð° обміну через %1 ÑÐµÐºÑƒÐ½Ð´â€¦ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð±ÑƒÑ„ÐµÑ€Ð° обміну через %1 Ñекунд… Group @@ -7525,7 +8265,7 @@ Kernel: %3 %4 Username - Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача + Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Password @@ -7533,11 +8273,11 @@ Kernel: %3 %4 TOTP - ТОП + TOTP Icon - Значок + Піктограма Last Modified @@ -7567,11 +8307,11 @@ Kernel: %3 %4 Do you really want to delete %n entry(s) for good? - + Ви дійÑно хочете видалити %n запиÑ?Ви дійÑно хочете видалити %n запиÑи?Ви дійÑно хочете видалити %n запиÑів?Ви дійÑно хочете видалити %n запиÑів? Delete entry(s)? - + Видалити запиÑ?Видалити запиÑи?Видалити запиÑи?Видалити запиÑи? Do you really want to move entry "%1" to the recycle bin? @@ -7579,11 +8319,11 @@ Kernel: %3 %4 Do you really want to move %n entry(s) to the recycle bin? - + Ви дійÑно хочете переміÑтити %n Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ Ñмітника?Ви дійÑно хочете переміÑтити %n запиÑи до Ñмітника?Ви дійÑно хочете переміÑтити %n запиÑів до Ñмітника?Ви дійÑно хочете переміÑтити %n запиÑів до Ñмітника? Move entry(s) to recycle bin? - + ПереміÑтити Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ Ñмітника?ПереміÑтити запиÑи до Ñмітника?ПереміÑтити запиÑи до Ñмітника?ПереміÑтити запиÑи до Ñмітника? Replace references to entry? @@ -7591,15 +8331,15 @@ Kernel: %3 %4 Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? - + Ð—Ð°Ð¿Ð¸Ñ "%1" має %2 поÑиланнÑ. Ви дійÑно хочете перезапиÑати поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð·Ñ– значеннÑми, пропуÑтити цей запиÑ, або видали в будь-Ñкому разі?Ð—Ð°Ð¿Ð¸Ñ "%1" має %2 поÑиланнÑ. Ви дійÑно хочете перезапиÑати поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð·Ñ– значеннÑми, пропуÑтити цей запиÑ, або видали в будь-Ñкому разі?Ð—Ð°Ð¿Ð¸Ñ "%1" має %2 поÑилань. Ви дійÑно хочете перезапиÑати поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð·Ñ– значеннÑми, пропуÑтити цей запиÑ, або видали в будь-Ñкому разі?Ð—Ð°Ð¿Ð¸Ñ "%1" має %2 поÑилань. Ви дійÑно хочете перезапиÑати поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð·Ñ– значеннÑми, пропуÑтити цей запиÑ, або видали в будь-Ñкому разі? User name - Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача + Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Browser Statistics - + СтатиÑтика браузера Health Check @@ -7615,15 +8355,15 @@ Kernel: %3 %4 Unsupported key file version: %1 - Ðепідтримувана верÑÑ–Ñ ÐºÐ»ÑŽÑ‡Ð°: %1 + Ðепідтримувана верÑÑ–Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ð¾Ð³Ð¾ файлу: %1 Checksum mismatch! Key file may be corrupt. - ÐевідповідніÑть контрольної Ñуми! Файловий ключ може бути пошкодженим. + ÐевідповідніÑть контрольної Ñуми! Ключовий файл може бути пошкодженим. Unexpected key file data! Key file may be corrupt. - Ðеочікувані дані у файловому ключі! Він може бути пошкодженим. + Ðеочікувані дані ключового файлу! Він може бути пошкодженим. KeePassXC - cross-platform password manager @@ -7631,7 +8371,7 @@ Kernel: %3 %4 filenames of the password databases to open (*.kdbx) - назви файлів Ñховищ, Ñкі треба відкрити (*.kdbx) + назви файлів баз даних, Ñкі потрібно відкрити (*.kdbx) path to a custom config file @@ -7643,32 +8383,32 @@ Kernel: %3 %4 lock all open databases - + заблокувати вÑÑ– відкриті бази даних key file of the database - файловий ключ Ñховища + ключовий файл бази даних read password of the database from stdin - отримати пароль до Ñховища із stdin - - - allow app screen recordering and screenshots - + отримати пароль до бази даних із stdin Locked databases. - + Заблоковані бази даних. Database failed to lock. - + Ðе вдалоÑÑ Ð·Ð°Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ñ‚Ð¸ базу даних. Another instance of KeePassXC is already running. Інший примірник KeePassXC вже запущено. + + KeePassXC is not running. No open database to lock + KeePassXC не працює. Ðе відкрита база даних Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ + Fatal error while testing the cryptographic functions. Ðевиправна помилка в процеÑÑ– теÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ð³Ñ€Ð°Ñ„Ñ–Ñ‡Ð½Ð¸Ñ… функцій. @@ -7677,34 +8417,244 @@ Kernel: %3 %4 KeePassXC - Error KeePassXC – помилка - - Warning: Failed to prevent screenshots on a top level window! - - Database password: - Пароль Ñховища: + Пароль бази даних: Invalid Settings TOTP - Ðепридатні параметри + ÐеприпуÑтимі Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Invalid Key TOTP - Ðепридатний ключ + ÐедійÑний ключ Failed to create Windows Hello credential. - + Ðе вдалоÑÑ Ñтворити облікові дані Windows Hello. Failed to sign challenge using Windows Hello. + Ðе вдалоÑÑ Ð¿Ñ–Ð´Ð¿Ð¸Ñати Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð·Ð° допомогою Windows Hello. + + + Warning: Failed to block screenshot capture on a top-level window. + ПопередженнÑ: не вдалоÑÑ Ð·Ð°Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ñ‚Ð¸ знімки екрана у вікні верхнього рівнÑ. + + + Invalid Cipher + ÐедійÑний шифр + + + Invalid KDF + ÐедійÑний KDF + + + Access to all entries is denied + У доÑтупі до вÑÑ–Ñ… запиÑів відмовлено + + + allow screenshots and app recording (Windows/macOS) + дозволити Ñкріншоти та Ð·Ð°Ð¿Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ (Windows/macOS) + + + Enter Shortcut + Введіть ÑÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ + + + Action + Ð”Ñ–Ñ + + + Shortcuts + Ð¡ÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ + + + Attestation not supported + ÐŸÑ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð½Ðµ підтримуєтьÑÑ + + + Credential is excluded + ВідÑутній підтверджувальний Ð·Ð°Ð¿Ð¸Ñ + + + Passkeys request canceled + Запит на Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÐºÐ»ÑŽÑ‡Ñ–Ð² доÑтупу ÑкаÑовано + + + Invalid user verification + Перевірку кориÑтувача не пройдено + + + Empty public key + Порожній публічний ключ + + + Invalid URL provided + Ðадано хибну URL-адреÑу + + + Passkeys + Passkeys + + + AES initialization failed + AES Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð½Ðµ вдалаÑÑ. + + + AES encrypt failed + AES ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ вдалоÑÑ + + + Failed to store in Linux Keyring + Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ в Linux Keyring. + + + Polkit returned an error: %1 + Polkit повернув помилку: %1 + + + Could not locate key in keyring + Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ ключ у ключниці. + + + Could not read key in keyring + Ðе вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ ключ у ключниці + + + AES decrypt failed + AES Ð´ÐµÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ вдалоÑÑ + + + No Polkit authentication agent was available + Ðемає доÑтупного агента аутентифікації Polkit + + + Polkit authorization failed + Помилка авторизації Polkit + + + No Quick Unlock provider is available + Ðемає доÑтупного поÑтачальника швидкого Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ (Quick Unlock) + + + Failed to init KeePassXC crypto. + Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–ÑŽÐ²Ð°Ñ‚Ð¸ KeePassXC crypto. + + + Failed to encrypt key data. + Ðе вдалоÑÑ Ð·Ð°ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ñ‚Ð¸ дані ключа. + + + Failed to get Windows Hello credential. + Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ облікові дані Windows Hello. + + + Failed to decrypt key data. + Ðе вдалоÑÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ñ‚Ð¸ дані ключа. + + + Favorite + Tag for favorite entries - Please present or touch your YubiKey to continue. + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + + + + Effective domain is not a valid domain + + + + Origin and RP ID do not match + + + + No supported algorithms were provided + + + + Wait for timer to expire + + + + Unknown Passkeys error + + + + Challenge is shorter than required minimum length + + + + user.id does not match the required length @@ -7744,41 +8694,29 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - - - - Show only entries which have URL set - - - - Show only entries which have browser settings in custom data - - Double-click entries to edit. - + Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñів подвійним кліком. List of entry URLs - + СпиÑок URL-Ð°Ð´Ñ€ÐµÑ Ð·Ð°Ð¿Ð¸Ñів Entry has no URLs set - + Ð—Ð°Ð¿Ð¸Ñ Ð½Ðµ має налаштованих URL Allowed URLs - + Дозволені URL-адреÑи Entry has no Browser Integration settings - + Ð—Ð°Ð¿Ð¸Ñ Ð½Ðµ має параметрів інтеграції з браузером Denied URLs - + Заборонені URL-адреÑи (Excluded) @@ -7790,11 +8728,11 @@ Kernel: %3 %4 Please wait, browser statistics is being calculated… - + Будь лаÑка, зачекайте. Триває розрахунок ÑтатиÑтики браузера… No entries with a URL, or none has browser extension settings saved. - + Ðемає запиÑів з URL-адреÑами чи збереженими параметрами Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°. Title @@ -7806,31 +8744,39 @@ Kernel: %3 %4 URLs - + URL-адреÑи Edit Entry… - + Редагувати запиÑ… Delete Entry(s)… - + Видалити запиÑ…Видалити запиÑи…Видалити запиÑи…Видалити запиÑи… Exclude from reports Виключити зі звітів + + Only show entries that have a URL + Показати тільки запиÑи, що міÑÑ‚Ñть URL + + + Only show entries that have been explicitly allowed or denied + Показати лише запиÑи, що були Ñвно дозволені або заборонені + + + Show expired entries + Показати проÑтрочені запиÑи + + + (Expired) + (Протерміновано) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - - - - Also show entries that have been excluded from reports - Також показувати запиÑи, Ñкі було виключено зі звітів - Hover over reason to show additional details. Double-click entries to edit. Ðаведіть курÑор на причину, щоб переглÑнути додаткові відомоÑті. Клацніть двічі по запиÑу Ð´Ð»Ñ Ð¹Ð¾Ð³Ð¾ редагуваннÑ. @@ -7872,7 +8818,7 @@ Kernel: %3 %4 Please wait, health data is being calculated… - + Будь лаÑка, зачекайте. Триває розрахунок даних про здоров'Ñ… Congratulations, everything is healthy! @@ -7896,22 +8842,34 @@ Kernel: %3 %4 Edit Entry… - + Редагувати запиÑ… Delete Entry(s)… - + Видалити запиÑ…Видалити запиÑи…Видалити запиÑи…Видалити запиÑи… Exclude from reports Виключити зі звітів + + Show expired entries + Показати проÑтрочені запиÑи + + + Show entries that have been excluded from reports + Показати запиÑи, Ñкі було виключено зі звітів + + + (Expired) + (Протерміновано) + ReportsWidgetHibp CAUTION: This report requires sending information to the Have I Been Pwned online service (https://haveibeenpwned.com). If you proceed, your database passwords will be cryptographically hashed and the first five characters of those hashes will be sent securely to this service. Your database remains secure and cannot be reconstituted from this information. However, the number of passwords you send and your IP address will be exposed to this service. - УВÐГÐ: цей звіт вимагає надÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— до онлайн-ÑервіÑу Have I Been Pwned (https://haveibeenpwned.com). Якщо Ви продовжите, паролі з вашого Ñховища буде криптографічно гешовано, а перші п'Ñть Ñимволів отриманих гешів буде безпечно надіÑлано до цього ÑервіÑу. Ваше Ñховище залишаєтьÑÑ Ð² безпеці Ñ– не може бути відтвореним на оÑнові переданої інформації. Однак, кількіÑть паролів, Ñкі ви надÑилаєте, та вашу IP-адреÑу буде розкрито цьому ÑервіÑу. + ОБЕРЕЖÐО: цей звіт вимагає надÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— до онлайн-ÑервіÑу Have I Been Pwned (https://haveibeenpwned.com). Якщо ви продовжите, паролі з вашої бази даних будуть криптографічно хешовані й перші п'Ñть Ñимволів хешу будуть безпечно надіÑлані до цього ÑервіÑу. Ваша база даних збережетьÑÑ Ð² безпеці й не може бути відтворена на оÑнові переданої інформації. Однак, кількіÑть паролів, Ñкі ви надÑилаєте, та вашу IP-адреÑу буде розкрито цьому ÑервіÑу. Perform Online Analysis @@ -7991,22 +8949,81 @@ Kernel: %3 %4 Edit Entry… - + Редагувати запиÑ… Delete Entry(s)… - + Видалити запиÑ…Видалити запиÑи…Видалити запиÑи…Видалити запиÑи… Exclude from reports Виключити зі звітів + + ReportsWidgetPasskeys + + Export + ЕкÑпортувати + + + Import + Ð†Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ + + + List of entry URLs + СпиÑок URL-Ð°Ð´Ñ€ÐµÑ Ð·Ð°Ð¿Ð¸Ñів + + + Please wait, list of entries with Passkeys is being updated… + Зачекайте, ÑпиÑок запиÑів з ключами доÑтупу оновлюєтьÑÑ... + + + No entries with Passkeys. + ВідÑутні запиÑи з ключами доÑтупу. + + + Title + Заголовок + + + Path + ШлÑÑ… + + + Username + Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача + + + URLs + URL-адреÑи + + + Edit Entry… + Редагувати запиÑ… + + + Delete Entry(s)… + Видалити запиÑ…Видалити запиÑи…Видалити запиÑи…Видалити запиÑи… + + + Relying Party + Довірена Ñторона + + + Show expired entries + Показати проÑтрочені запиÑи + + + (Expired) + (Протерміновано) + + ReportsWidgetStatistics Hover over lines with error icons for further information. - Ðаведіть мишкою на Ñ€Ñдки зі значком помилки Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— інформації. + Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð¸Ñ†ÑŒ наведіть курÑор на Ñ€Ñдки з піктограмами помилки. Name @@ -8018,11 +9035,11 @@ Kernel: %3 %4 Please wait, database statistics are being calculated… - + Будь лаÑка, зачекайте. Триває розрахунок ÑтатиÑтики бази даних… Database name - Ðазва Ñховища + Ðазва бази даних Description @@ -8034,7 +9051,7 @@ Kernel: %3 %4 Database created - + Базу даних Ñтворено Last saved @@ -8054,7 +9071,7 @@ Kernel: %3 %4 The database was modified, but the changes have not yet been saved to disk. - Сховище було змінено, але поточні зміни ще не запиÑані на диÑк. + Базу даних було змінено, але зміни ще не були збережені. Number of groups @@ -8066,11 +9083,11 @@ Kernel: %3 %4 Number of expired entries - КількіÑть знечинених запиÑів + КількіÑть протермінованих запиÑів The database contains entries that have expired. - Сховище міÑтить знечинені запиÑи. + База даних міÑтить протерміновані запиÑи. Unique passwords @@ -8098,7 +9115,7 @@ Kernel: %3 %4 Recommended minimum password length is at least 8 characters. - Рекомендована найменша довжина Ð¿Ð°Ñ€Ð¾Ð»Ñ â€” 8 Ñимволів. + Рекомендована найменша довжина Ð¿Ð°Ñ€Ð¾Ð»Ñ â€“ 8 Ñимволів. Number of weak passwords @@ -8165,7 +9182,7 @@ Kernel: %3 %4 Security keys are not supported by the agent or the security key provider is unavailable. - + Ключі безпеки не підтримуютьÑÑ Ð°Ð³ÐµÐ½Ñ‚Ð¾Ð¼ або провайдер ключів безпеки недоÑтупний. No agent running, cannot remove identity. @@ -8241,10 +9258,14 @@ Kernel: %3 %4 Search Help Довідка з пошуку + + Save Search + Зберегти пошук + Search (%1)… Search placeholder text, %1 is the keyboard shortcut - + Пошук (%1)… Case sensitive @@ -8259,15 +9280,15 @@ Kernel: %3 %4 SettingsClientModel Application - ЗаÑтоÑунок + Програма PID - + PID DBus Address - + ÐдреÑа DBus Manage @@ -8305,15 +9326,15 @@ Kernel: %3 %4 Show notification when passwords are retrieved by clients - + Показувати ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð² клієнтами <html><head/><body><p>If enabled, any attempt to read a password must be confirmed. Otherwise, clients can read passwords without confirmation when the database is unlocked.</p><p>This option only covers the access to the password of an entry. Clients can always enumerate the items of exposed databases and query their attributes.</p></body></html> - + <html><head/><body><p>Якщо увімкнено, будь-Ñка Ñпроба Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¼Ð°Ñ” бути підтверджена. Ð’ іншому випадку, клієнти можуть читати паролі без підтвердженнÑ, Ñкщо база даних розблокована.</p><p>Цей параметр впливає лише на доÑтуп до Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу. Клієнти завжди можуть бачити запиÑи баз даних Ñ– запитувати їхні атрибути.</p></body></html> Confirm when passwords are retrieved by clients - + Підтверджувати Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð² клієнтами <html><head/><body><p><span style=" @@ -8321,11 +9342,15 @@ Kernel: %3 %4 Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">This setting does not override disabling recycle bin prompts</span></p></body></html> - + <html><head/><body><p><span style=" + font-family:'-apple-system','BlinkMacSystemFont','Segoe UI','Helvetica','Arial','sans-serif','Apple Color + Emoji','Segoe UI Emoji'; font-size:14px; color:#24292e; background-color:#ffffff;">Це Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ + не перевизначає Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñ–Ð² Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð´Ð¾ Ñмітника</span></p></body></html> + Confirm when clients request entry deletion - + Підтверджувати Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñів клієнтами <html><head/><body><p>This improves compatibility with certain applications @@ -8333,15 +9358,19 @@ Kernel: %3 %4 crash the client if the database can not be unlocked within a certain timeout. (Usually 25s, but may be a different value set in applications.)</p></body></html> - + <html><head/><body><p>Це вдоÑконалює ÑуміÑніÑть із певними програмами, + Ñкі шукають пароль без попереднього Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних..</p><p>Ðле ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ параметра також може + Ñпричинити збій клієнта, Ñкщо базу даних неможливо розблокувати впродовж певного періоду. (Зазвичай 25 Ñекунд, але Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ðµ + відрізнÑтиÑÑ Ð² різних програмах.)</p></body></html> + Prompt to unlock database before searching - + Запитувати про Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних перед пошуком Exposed database groups: - ВиÑтавлені групи Ñховища: + Викриті групи бази даних: Authorization @@ -8349,7 +9378,7 @@ Kernel: %3 %4 These applications are currently connected: - Такі заÑтоÑунки зараз Ñполучені: + Зараз під'єднано такі програми: <b>Warning:</b> @@ -8419,14 +9448,14 @@ Kernel: %3 %4 ShareExport Could not write export container. - + Ðе вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати контейнер екÑпорту. ShareImport Successful import - + УÑпішно імпортовано @@ -8464,19 +9493,65 @@ Kernel: %3 %4 ЕкÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + Подвійний клік на дії, щоб змінити Ñрлик + + + Shortcut Conflict + Конфлікт Ñрликів + + + Filter... + Фільтр... + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + Ð¡ÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ %1 конфліктує з '%2'. ПерезапиÑати ÑкороченнÑ? + + + Reset Shortcuts + Скинути Ñрлики + + TagModel - All - + Clear Search + ОчиÑтити пошук + + + All Entries + УÑÑ– запиÑи Expired - + Протерміновано Weak Passwords - + Ðенадійні паролі + + + + TagView + + Remove Search + Вилучити пошук + + + Remove Tag + Вилучити мітку + + + Confirm Remove Tag + Підтвердити Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¼Ñ–Ñ‚ÐºÐ¸ + + + Remove tag "%1" from all entries in this database? + Вилучити мітку "%1" з уÑÑ–Ñ… запиÑів у цій базі даних? @@ -8487,27 +9562,27 @@ Kernel: %3 %4 Copy - Cкопіювати + Копіювати Expires in <b>%n</b> second(s) - Втрачає чинніÑть через <b>%n</b> ÑекундуВтрачає чинніÑть через <b>%n</b> ÑекундиВтрачає чинніÑть через <b>%n</b> ÑекундВтрачає чинніÑть через <b>%n</b> Ñекунд + Термін дії завершуєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· <b>%n</b> ÑекундуТермін дії завершуєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· <b>%n</b> ÑекундиТермін дії завершуєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· <b>%n</b> ÑекундТермін дії завершуєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· <b>%n</b> Ñекунди TotpExportSettingsDialog Copy - Cкопіювати + Копіювати NOTE: These TOTP settings are custom and may not work with other authenticators. TOTP QR code dialog warning - УВÐГÐ: Таке Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¢ÐžÐŸ Ñ” неÑтандартним Ñ– може не працювати з іншими автентифікаторами. + ПРИМІТКÐ: таке Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ TOTP Ñ” неÑтандартним Ñ– може не працювати з іншими автентифікаторами. There was an error creating the QR code. - Ðе вдалоÑÑ Ñтворити QR-код. + Під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ QR-коду виникла помилка. Closing in %1 seconds. @@ -8518,7 +9593,7 @@ Kernel: %3 %4 TotpSetupDialog Setup TOTP - ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¢ÐžÐŸ + Ðалаштувати TOTP Secret Key: @@ -8534,19 +9609,19 @@ Kernel: %3 %4 Default settings (RFC 6238) - + Типові Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ (RFC 6238) Steam® settings - + ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Steam® Custom settings: - + ВлаÑні налаштуваннÑ: Custom Settings - ВлаÑне Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ + ВлаÑні Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Algorithm: @@ -8575,20 +9650,21 @@ Kernel: %3 %4 Invalid TOTP Secret - Ðепридатний таємний ТОП + ÐедійÑний ключ TOTP You have entered an invalid secret key. The key must be in Base32 format. Example: JBSWY3DPEHPK3PXP - Ви ввели непридатний таємний ключ. Ключ муÑить бути в форматі Base32. Ðаприклад: JBSWY3DPEHPK3PXP + Ви ввели недійÑний ключ. Ключ муÑить бути в форматі Base32. +Ðаприклад: JBSWY3DPEHPK3PXP Confirm Remove TOTP Settings - Схвалити Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² ТОП + Підтвердити Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ TOTP Are you sure you want to delete TOTP settings for this entry? - Ви дійÑно хочете видалити параметри ТОП Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ запиÑу? + Ви дійÑно хочете видалити Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ TOTP Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ запиÑу? @@ -8606,7 +9682,7 @@ Example: JBSWY3DPEHPK3PXP Checking for updates… - + Перевірка наÑвноÑті оновлень… Close @@ -8618,55 +9694,47 @@ Example: JBSWY3DPEHPK3PXP An error occurred when trying to retrieve update information, please try again later. - + Під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— про Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Спробуйте знову пізніше. <strong>A new version is available.</strong><br/>KeePassXC %1 can be <a href="https://keepassxc.org/download/">downloaded here</a>. - + <strong>ДоÑтупна нова верÑÑ–Ñ.</strong><br/>KeePassXC %1 можна <a href="https://keepassxc.org/download/">завантажити тут</a>. You have the latest version of KeePassXC - + У Ð²Ð°Ñ Ð½Ð°Ð¹Ð½Ð¾Ð²Ñ–ÑˆÐ° верÑÑ–Ñ KeePassXC WelcomeWidget Start storing your passwords securely in a KeePassXC database - Почніть надійно Ñ– безпечно зберігати ваші паролі у Ñховищі KeePassXC - - - Create new database - Створити нове Ñховище - - - Open existing database - Відкрити наÑвне Ñховище - - - Import from KeePass 1 - Імпортувати з KeePass 1 - - - Import from 1Password - Імпортувати з 1Password - - - Import from CSV - Імпортувати з CSV + Почніть надійно зберігати Ñвої паролі у базі даних KeePassXC Recent databases - Ðедавні Ñховища + ОÑтанні бази даних Open a recent database - Відкрити недавнє Ñховище + Відкрити оÑтанню базу даних Welcome to KeePassXC %1 ЛаÑкаво проÑимо до KeePassXC %1 + + Create Database + Створити базу даних + + + Open Database + Відкрити базу даних + + + Import File + + WinUtils @@ -8676,57 +9744,26 @@ Example: JBSWY3DPEHPK3PXP Global shortcut already registered to %1 - Глобальне ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–Ñˆ вже зареєÑтровано Ð´Ð»Ñ %1 + Глобальну комбінацію клавіш уже зареєÑтровано Ð´Ð»Ñ %1 Could not register global shortcut - РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ ÑÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–Ñˆ зазнало невдачі - - - - WindowsHello - - Failed to init KeePassXC crypto. - - - - Failed to encrypt key data. - - - - Failed to get Windows Hello credential. - - - - Failed to decrypt key data. - + Ðе вдалоÑÑ Ð·Ð°Ñ€ÐµÑ”Ñтрувати глобальну комбінацію клавіш YubiKey - - %1 No interface, slot %2 - - General: - + Загальні: Could not find interface for hardware key with serial number %1. Please connect it to continue. - + Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð»Ñ Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð¾Ð³Ð¾ ключа з Ñерійним номером %1. Під'єднайте його, щоб продовжити. YubiKeyEditWidget - - Refresh hardware tokens - Оновити апаратні позначки - - - Refresh - Оновити - Hardware key slot selection Вибір гнізда апаратного захиÑту @@ -8741,27 +9778,23 @@ Example: JBSWY3DPEHPK3PXP Challenge-Response - + Виклик-відповідь Add Challenge-Response - + Додати виклик-відповідь Change Challenge-Response - + Змінити виклик-відповідь Remove Challenge-Response - + Вилучити виклик-відповідь Challenge-Response set, click to change or remove - - - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - + Виклик-відповідь вÑтановлено. ÐатиÑніть, щоб змінити або вилучити Detecting hardware keys… @@ -8771,44 +9804,52 @@ Example: JBSWY3DPEHPK3PXP No hardware keys detected Ðпаратних ключів не виÑвлено - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 указано непридатне гніздо — %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + + + + Refresh hardware keys + YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - - The YubiKey PCSC interface has not been initialized. - - - - Hardware key is currently in use. - Зараз викориÑтовуєтьÑÑ Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð¸Ð¹ захиÑÑ‚. + Ð†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ YubiKey PCSC не було ініціалізовано. Could not find or access hardware key with serial number %1. Please present it to continue. - + Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ або отримати доÑтуп до апаратного ключа з Ñерійним номером %1. Будь лаÑка, надайте його, щоб продовжити. Hardware key is locked or timed out. Unlock or re-present it to continue. - + Ðпаратний ключ заблоковано або завершивÑÑ Ñ‡Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ. Розблокуйте його, або надайте повторно, щоб продовжити. Hardware key was not found or is not configured. - + Ðпаратний ключ не знайдено або не налаштовано. Failed to complete a challenge-response, the PCSC error code was: %1 + Ðе вдалоÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚Ð¸ виклик-відповідь. Код помилки PCSC: %1 + + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + + Press + USB Challenge-Response Key interaction request + ÐатиÑнути + + + Passive + USB Challenge-Response Key no interaction required + ПаÑивне + YubiKeyInterfaceUSB @@ -8816,14 +9857,6 @@ Example: JBSWY3DPEHPK3PXP Unknown Ðевідомий - - (USB) %1 [%2] Configured Slot - %3 - - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - - Press USB Challenge-Response Key interaction request @@ -8836,11 +9869,7 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. - - - - Hardware key is currently in use. - Зараз викориÑтовуєтьÑÑ Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð¸Ð¹ захиÑÑ‚. + USB-Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð»Ñ YubiKey не було ініціалізовано. Could not find hardware key with serial number %1. Please plug it in to continue. @@ -8852,11 +9881,21 @@ Example: JBSWY3DPEHPK3PXP A USB error occurred when accessing the hardware key: %1 - + Виникла помилка з USB під Ñ‡Ð°Ñ Ð´Ð¾Ñтупу до апаратного ключа: %1 Failed to complete a challenge-response, the specific error was: %1 Ðе вдалоÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚Ð¸ виклик-відповідь, конкретна помилка: %1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + + \ No newline at end of file diff --git a/share/translations/keepassxc_zh_CN.ts b/share/translations/keepassxc_zh_CN.ts index 03e908a05..eec050d46 100644 --- a/share/translations/keepassxc_zh_CN.ts +++ b/share/translations/keepassxc_zh_CN.ts @@ -80,6 +80,10 @@ Details 详情 + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + 在请求客户端与 KeePassXC åŒæ—¶è¿è¡ŒæœŸé—´ï¼Œæ‚¨çš„选择会被记ä½ã€‚ + Remember è®°ä½ @@ -88,10 +92,6 @@ Allow Selected å…许选定 - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - 在请求客户端与 KeePassXC åŒæ—¶è¿è¡ŒæœŸé—´ï¼Œæ‚¨çš„选择会被记ä½ã€‚ - Deny All && Future ç¦æ­¢æ­¤åŽæ‰€æœ‰ @@ -122,9 +122,13 @@ Use OpenSSH 使用 OpenSSH + + Use both agents + åŒæ—¶ä½¿ç”¨ä¸¤ç§ä»£ç† + SSH_AUTH_SOCK override - SSH_AUTH_SOCK é‡å†™ + SSH_AUTH_SOCK 覆写 SSH_AUTH_SOCK value @@ -144,16 +148,12 @@ No SSH Agent socket available. Either make sure SSH_AUTH_SOCK environment variable exists or set an override. - 没有å¯ç”¨çš„ SSH 代ç†å¥—接字。确ä¿çŽ¯å¢ƒå˜é‡ SSH_AUTH_SOCK 存在或已设置é‡å†™ã€‚ + 没有å¯ç”¨çš„ SSH 代ç†å¥—接字。确ä¿çŽ¯å¢ƒå˜é‡ SSH_AUTH_SOCK 存在或已设置覆写。 SSH Agent connection is working! SSH 代ç†è¿žæŽ¥å·¥ä½œæ­£å¸¸ï¼ - - Use both agents - åŒæ—¶ä½¿ç”¨ä¸¤ç§ä»£ç† - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security 安全 + + This setting cannot be enabled when minimize on unlock is enabled. + 如果å¯ç”¨è§£é”时最å°åŒ–,则无法å¯ç”¨æ­¤è®¾ç½®ã€‚ + Access error for config file %1 访问é…置文件 %1 错误 @@ -256,6 +260,10 @@ Remember previously used databases è®°ä½ä»¥å‰ä½¿ç”¨çš„æ•°æ®åº“ + + recent files + 最近的文件 + Load previously open databases on startup å¯åŠ¨æ—¶åŠ è½½ä»¥å‰æ‰“开的数æ®åº“ @@ -408,6 +416,10 @@ Toolbar button style: å·¥å…·æ æŒ‰é’®æ ·å¼ï¼š + + Show passwords in color + 密ç ä»¥å½©è‰²æ˜¾ç¤º + Use monospaced font for notes 备注使用等宽字体 @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons 使用 DuckDuckGo æ¥ä¸‹è½½ç½‘站图标 + + Hide TOTP in the entry preview panel + 在æ¡ç›®é¢„è§ˆé¢æ¿éšè— TOTP + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 检测到过长延迟,最大值为 %1:%2 + + Entry does not have attribute for PICKCHARS: %1 + æ¡ç›®ä¸åŒ…å«ç”¨äºŽ PICKCHARS 的属性:%1 + Invalid conversion type: %1 无效的转æ¢ç±»åž‹ï¼š%1 @@ -804,13 +824,13 @@ Ctrl+4 - ä½¿ç”¨è™šæ‹Ÿé”®ç›˜ï¼ˆä»…é™ Windows)</p> Disable for this site 对此站点ç¦ç”¨ + + Undo + 撤销 + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC-Browser ä¿å­˜æ¡ç›® - Ok 确定 @@ -825,13 +845,70 @@ Please select the correct database for saving credentials. 您打开了多个数æ®åº“。 请选择正确的数æ®åº“以ä¿å­˜å‡­æ®ã€‚ + + KeePassXC - Select Database + KeePassXC - 选择数æ®åº“ + + + + BrowserPasskeysConfirmationDialog + + Cancel + å–æ¶ˆ + + + Update + æ›´æ–° + + + Authenticate + è®¤è¯ + + + Register new + 新注册 + + + Register + 注册 + + + Timeout in <b>%n</b> seconds... + 在 <b>%n</b> ç§’åŽè¶…时… + + + Do you want to register Passkey for: + 您是å¦è¦æ³¨å†Œ Passkey 到: + + + Existing Passkey found. +Do you want to register a new Passkey for: + 找到已存在的 Passkey。 +您是å¦è¦æ³¨å†Œæ–° Passkey 到: + + + Select the existing Passkey and press Update to replace it. + 选择已存在的 Passkey å¹¶æŒ‰ä¸‹æ›´æ–°æ¥æ›¿æ¢ã€‚ + + + Authenticate Passkey credentials for: + è®¤è¯ Passkey 凭æ®ï¼š + + + Relying Party: %1 + ä¾èµ–方:%1 + + + Username: %1 + 用户å:%1 + + + KeePassXC - Passkey credentials + KeePassXC - Passkey å‡­æ® + BrowserService - - KeePassXC: Create a new group - KeePassXC:创建新群组 - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -840,10 +917,6 @@ Do you want to create this group? 确认è¦åˆ›å»ºç¾¤ç»„å—? - - KeePassXC: New key association request - KeePassXC:新的密钥关è”请求 - You have received an association request for the following database: %1 @@ -860,28 +933,16 @@ Chrome 笔记本电脑 Save and allow access ä¿å­˜å¹¶å…许访问 - - KeePassXC: Overwrite existing key? - KeePassXC:覆盖现有的密钥å—? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? 一个å为“%1â€çš„共享加密密钥已存在。 确认è¦è¦†ç›–它å—? - - KeePassXC: Update Entry - KeePassXC:更新æ¡ç›® - Do you want to update the information in %1 - %2? 您想更新 %1 - %2 中的信æ¯å—? - - KeePassXC: Delete entry - KeePassXC:删除æ¡ç›® - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -891,50 +952,46 @@ Do you want to delete the entry? - Converting attributes to custom data… - 将属性转æ¢ä¸ºè‡ªå®šä¹‰æ•°æ®... + %1 (Passkey) + %1(Passkey) - Abort - 中止 + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + æ¡ç›®å·²æœ‰ä¸€ä¸ª Passkey。 +您想è¦è¦†ç›– %1 - %2 中的 Passkey å—? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC:已转æ¢ä¸º KeePassHTTP 属性 + KeePassXC - Create a new group + KeePassXC - 创建新群组 - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - å·²æˆåŠŸè½¬æ¢ %1 个æ¡ç›®çš„属性。 -已移动 %2 个密钥到自定义数æ®ã€‚ - - - Successfully moved %n keys to custom data. - å·²æˆåŠŸç§»åŠ¨ %n 个密钥到自定义数æ®ã€‚ + Disable + ç¦ç”¨ - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC:找ä¸åˆ°å«æœ‰ KeePassHTTP 属性的æ¡ç›®ï¼ + KeePassXC - Overwrite existing key? + KeePassXC - 覆盖现有的密钥å—? - The active database does not contain an entry with KeePassHTTP attributes. - 当剿•°æ®åº“中ä¸å­˜åœ¨æœ‰ KeePassHTTP 属性的æ¡ç›®ã€‚ + KeePassXC - Update Passkey + KeePassXC - æ›´æ–° Passkey - Don't show this warning again - ä¸å†æ˜¾ç¤ºæ­¤è­¦å‘Š + KeePassXC - Update Entry + KeePassXC - æ›´æ–°æ¡ç›® - KeePassXC: Legacy browser integration settings detected - KeePassXC:检测到旧版æµè§ˆå™¨é›†æˆè®¾ç½® + KeePassXC - Delete entry + KeePassXC - 删除æ¡ç›® - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - 您的 KeePassXC-Browser 设置需è¦ç§»åŠ¨åˆ°æ•°æ®åº“设置中。 -è¿™å¯¹äºŽä¿æŒå½“剿µè§ˆå™¨è¿žæŽ¥æ˜¯å¿…需的。 -是å¦è¦ç«‹å³è¿ç§»çŽ°æœ‰è®¾ç½®ï¼Ÿ + KeePassXC - New key association request + KeePassXC - 新的密钥关è”请求 + + + Passkey + Passkey @@ -1142,14 +1199,6 @@ Would you like to migrate your existing settings now? Please see special instructions for browser extension use below 请å‚阅下é¢çš„æµè§ˆå™¨æ‰©å±•ä½¿ç”¨ç‰¹æ®Šè¯´æ˜Ž - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>错误:</b>找ä¸åˆ°è‡ªå®šä¹‰ä»£ç†ä½ç½®ï¼<br/>没有代ç†åº”用程åºï¼Œæµè§ˆå™¨é›†æˆå°†æ— æ³•使用。 - - - <b>Warning:</b> The following options can be dangerous! - <b>警告:</b>以下选项å¯èƒ½æœ‰å±é™©ï¼ - Executable Files 坿‰§è¡Œæ–‡ä»¶ @@ -1166,6 +1215,38 @@ Would you like to migrate your existing settings now? Select native messaging host folder location 选择 Native Messaging 主机文件夹ä½ç½® + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + å…许 keepassxc-proxy 列出已连接的数æ®åº“中的所有æ¡ç›®ï¼ŒåŒ…括标题ã€URL å’Œ UUID。 + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + å…许对已连接的数æ®åº“中所有æ¡ç›®çš„å—é™è®¿é—®ï¼ˆå¿½ç•¥ç«™ç‚¹è®¿é—®é™åˆ¶ï¼‰ + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>警告:</b>ä»…åœ¨å¿…è¦æ—¶è°ƒæ•´è¿™äº›è®¾ç½®ã€‚ + + + The custom proxy location does not exist. + 自定义代ç†ä½ç½®ä¸å­˜åœ¨ã€‚ + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>错误:</b>自定义代ç†ä½ç½®ä¸å­˜åœ¨ã€‚请å‰å¾€é«˜çº§è®¾ç½®é¡µé¢ä¿®æ­£ã€‚ + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>错误:</b>已安装到此ä½ç½®çš„代ç†ç¨‹åºå¯æ‰§è¡Œæ–‡ä»¶ä¸¢å¤±ï¼š%1<br/>请在高级设置中修改自定义代ç†ä½ç½®æˆ–釿–°å®‰è£…应用。 + + + Allows using insecure http://localhost with Passkeys for testing purposes. + å…许 Passkey 使用ä¸å®‰å…¨çš„ http://localhost 用于测试目的。 + + + Allow using localhost with Passkeys + å…许 Passkey 使用 localhost + CloneDialog @@ -1188,14 +1269,6 @@ Would you like to migrate your existing settings now? CsvImportWidget - - Import CSV fields - 导入 CSV 字段 - - - filename - 文件å - size, rows, columns 大å°ã€è¡Œã€åˆ— @@ -1304,50 +1377,29 @@ Would you like to migrate your existing settings now? Column %1 列 %1 - - Imported from CSV file - 从 CSV 文件中导入 - - - Original data: - 原始数æ®ï¼š - - - Error(s) detected in CSV file! - 在 CSV æ–‡ä»¶ä¸­æ£€æµ‹åˆ°é”™è¯¯ï¼ - [%n more message(s) skipped] [%n æ¡ä¿¡æ¯è¢«è·³è¿‡] - Error - 错误 + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - CSV 导入:写入错误: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1,%2,%3 - - - %n byte(s) - %n 字节 - %n row(s) + CSV row count %n 行 %n column(s) + CSV column count %n 列 @@ -1422,40 +1474,10 @@ Backup database located at %2 Password field 密ç å­—段 - - Enter Additional Credentials (if any): - 输入附加凭æ®ï¼ˆå¦‚果有): - - - Key File: - 密钥文件: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>除了密ç ä¹‹å¤–,您还å¯ä»¥ä½¿ç”¨æœºå¯†æ–‡ä»¶æ¥å¢žå¼ºæ•°æ®åº“的安全性。此文件å¯ä»¥åœ¨æ•°æ®åº“的安全设置中生æˆã€‚</p><p>è¿™<strong>䏿˜¯</strong>您的 *.kdbx æ•°æ®åº“文件ï¼<br>如果没有密钥文件,请将此字段留空。</p><p>ç‚¹å‡»èŽ·å–æ›´å¤šä¿¡æ¯â€¦</p> - - - Key file help - 密钥文件帮助 - Hardware key slot selection é€‰æ‹©ç¡¬ä»¶å¯†é’¥çš„æ’æ§½ - - Hardware Key: - 硬件密钥: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>您å¯ä»¥ä½¿ç”¨åƒ <strong>YubiKey</strong> 或 <strong>OnlyKey</strong> è¿™ç§å¸¦æœ‰ HMAC-SHA1 é…ç½®æ’æ§½çš„硬件安全密钥。</p> -<p>ç‚¹å‡»èŽ·å–æ›´å¤šä¿¡æ¯â€¦</p> - - - Hardware key help - 硬件密钥帮助 - Key file to unlock the database ç”¨äºŽè§£é”æ•°æ®åº“的密钥文件 @@ -1468,14 +1490,6 @@ Backup database located at %2 Browse… æµè§ˆ... - - Refresh hardware tokens - 刷新硬件令牌 - - - Refresh - 刷新 - Unlock Database è§£é”æ•°æ®åº“ @@ -1538,14 +1552,6 @@ To prevent this error from appearing, you must go to "Database Settings / S Retry with empty password 使用空密ç é‡è¯• - - Failed to authenticate with Windows Hello - Windows Hello 验è¯å¤±è´¥ - - - Failed to authenticate with Touch ID - Touch ID 验è¯å¤±è´¥ - Failed to open key file: %1 无法打开密钥文件:%1 @@ -1579,22 +1585,64 @@ To prevent this error from appearing, you must go to "Database Settings / S 无法使用数æ®åº“文件作为密钥 - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - 您ä¸èƒ½ç”¨æ‚¨çš„æ•°æ®åº“作为密钥文件。 -如果您没有密钥文件,请留空这个字段。 + authenticate to access the database + 验è¯èº«ä»½ä»¥è®¿é—®æ•°æ®åº“ - Detecting hardware keys… - 正在检测硬件密钥... + Failed to authenticate with Quick Unlock: %1 + 快速解é”验è¯å¤±è´¥ï¼š%1 - No hardware keys detected - 未检测到硬件密钥 + Select Key File: + 选择密钥文件: - Select hardware key… - 选择硬件密钥... + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + <p>除了密ç ä¹‹å¤–,您还å¯ä»¥ä½¿ç”¨æœºå¯†æ–‡ä»¶æ¥å¢žå¼ºæ•°æ®åº“的安全性。此文件å¯ä»¥åœ¨æ•°æ®åº“的安全设置中生æˆã€‚</p><p>è¿™<strong>䏿˜¯</strong>您的 *.kdbx æ•°æ®åº“文件ï¼</p> + + + Click to add a key file. + 点击以添加密钥文件。 + + + <a href="#" style="text-decoration: underline">I have a key file</a> + <a href="#" style="text-decoration: underline">我有一份密钥文件</a> + + + Use hardware key [Serial: %1] + 使用硬件密钥 [åºå·ï¼š%1] + + + Use hardware key + 使用硬件密钥 + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + 您的数æ®åº“æ–‡ä»¶ä¸æ˜¯å¯†é’¥æ–‡ä»¶ï¼ +如果您没有密钥文件,或者ä¸çŸ¥é“这是什么,就ä¸éœ€è¦é€‰æ‹©ã€‚ + + + KeePassXC database file selected + KeePassXC æ•°æ®åº“文件被选择 + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + æ‚¨é€‰æ‹©çš„æ–‡ä»¶çœ‹èµ·æ¥æ˜¯ä¸€ä»½æ•°æ®åº“文件。 +æ•°æ®åº“æ–‡ä»¶ä¸æ˜¯å¯†é’¥æ–‡ä»¶ï¼ + +您确定è¦ç»§ç»­ä½¿ç”¨æ­¤æ–‡ä»¶å—? + + + No hardware keys found. + 未找到硬件密钥。 + + + Refresh Hardware Keys + 刷新硬件密钥 @@ -1606,10 +1654,6 @@ If you do not have a key file, please leave the field empty. DatabaseSettingsDialog - - Advanced Settings - 高级设置 - General 常规 @@ -1641,18 +1685,6 @@ If you do not have a key file, please leave the field empty. KeePassXC-Browser settings KeePassXC-Browser 设置 - - Convert KeePassHTTP data - è½¬æ¢ KeePassHTTP æ•°æ® - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - 将旧版 KeePassHTTP 属性转æ¢ä¸ºå…¼å®¹ KeePassXC-Browser çš„è‡ªå®šä¹‰æ•°æ® - - - Refresh database root group ID - 刷新数æ®åº“根群组 ID - Disconnect all browsers 断开与所有æµè§ˆå™¨çš„å…³è” @@ -1661,6 +1693,10 @@ If you do not have a key file, please leave the field empty. Forget all site-specific settings on entries å–æ¶ˆæ¡ç›®ä¸Šæ‰€æœ‰ç«™ç‚¹ç‰¹å®šè®¾ç½® + + Refresh database root group ID + 刷新数æ®åº“根群组 ID + Stored keys 存储的密钥 @@ -1709,18 +1745,10 @@ This may prevent connection to the browser plugin. æ‚¨ç¡®å®šè¦æ–­å¼€ä¸Žæ‰€æœ‰æµè§ˆå™¨çš„å…³è”å—? è¿™å¯èƒ½ä¼šå½±å“与æµè§ˆå™¨æ’件的连接。 - - KeePassXC: No keys found - KeePassXC:未找到密钥 - No shared encryption keys found in KeePassXC settings. 未在 KeePassXC 设置中找到共享加密密钥。 - - KeePassXC: Removed keys from database - KeePassXC:已从数æ®åº“中删除密钥 - Successfully removed %n encryption key(s) from KeePassXC settings. å·²æˆåŠŸä»Ž KeePassXC 设置中删除了 %n 个加密密钥。 @@ -1739,32 +1767,14 @@ Permissions to access entries will be revoked. Abort 中止 - - KeePassXC: Removed permissions - KeePassXC:已删除æƒé™ - Successfully removed permissions from %n entry(s). å·²æˆåŠŸä»Ž %n 个æ¡ç›®ä¸­åˆ é™¤æƒé™ã€‚ - - KeePassXC: No entry with permissions found! - KeePassXC:未找到有æƒé™çš„æ¡ç›®ï¼ - The active database does not contain an entry with permissions. 当剿•°æ®åº“中ä¸åŒ…å«å…·æœ‰æƒé™çš„æ¡ç›®ã€‚ - - Move KeePassHTTP attributes to custom data - å°† KeePassHTTP å±žæ€§ç§»åŠ¨åˆ°è‡ªå®šä¹‰æ•°æ® - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - 您确定è¦å°†æ‰€æœ‰æ—§ç‰ˆæµè§ˆå™¨é›†æˆæ•°æ®è½¬æ¢åˆ°æœ€æ–°æ ‡å‡†å—? -è¿™å¯¹äºŽä¿æŒä¸Žæµè§ˆå™¨æ’件的兼容性是必è¦çš„。 - Refresh database ID 刷新数æ®åº“ ID @@ -1775,6 +1785,26 @@ This is only necessary if your database is a copy of another and the browser ext 是å¦è¦åˆ·æ–°æ•°æ®åº“ ID? åªæœ‰å½“您的数æ®åº“是å¦ä¸€ä¸ªæ•°æ®åº“的副本并且æµè§ˆå™¨æ‰©å±•æ— æ³•è¿žæŽ¥æ—¶ï¼Œæ‰æœ‰å¿…è¦è¿™æ ·åšã€‚ + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + 将旧版 KeePassHTTP 属性转æ¢ä¸ºå…¼å®¹ KeePassXC-Browser çš„è‡ªå®šä¹‰æ•°æ® + + + No keys found + 未找到密钥 + + + Removed keys from database + 从数æ®åº“中删除密钥 + + + Removed permissions + 已删除的æƒé™ + + + No entry with permissions found! + 未找到有æƒé™çš„æ¡ç›®ï¼ + DatabaseSettingsWidgetDatabaseKey @@ -1814,6 +1844,18 @@ Are you sure you want to continue without a password? Failed to change database credentials 更改数æ®åº“凭æ®å¤±è´¥ + + Weak password + è¾ƒå¼±å¯†ç  + + + You must enter a stronger password to protect your database. + æ‚¨å¿…é¡»è¾“å…¥æ›´å¼ºçš„å¯†ç æ¥ä¿æŠ¤æ•°æ®åº“。 + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + 这是一个弱密ç ï¼ä¸ºäº†æ›´å¥½åœ°ä¿æŠ¤æ‚¨çš„秘密,您应该选择更强的密ç ã€‚ + DatabaseSettingsWidgetEncryption @@ -1821,14 +1863,6 @@ Are you sure you want to continue without a password? Decryption Time: 解密时间: - - Change existing decryption time - 改å˜çŽ°åœ¨çš„è§£å¯†æ—¶é—´ - - - Change - 更改 - Decryption time in seconds 解密时间秒数 @@ -1909,11 +1943,6 @@ Are you sure you want to continue without a password? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - æ— å˜åŒ– - Number of rounds too high Key transformation rounds @@ -1966,6 +1995,18 @@ If you keep this number, your database will not be protected from brute force at Threads for parallel execution (KDF settings) 线程 + + Encryption Settings: + 加密设置: + + + Basic + 基本 + + + Advanced + 高级 + DatabaseSettingsWidgetFdoSecrets @@ -2024,18 +2065,10 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry æ¯ä¸ªæ¡ç›®æœ€å¤šåކå²è®°å½•æ•° - - Max. history items: - 最大历å²è®°å½•数: - Maximum size of history per entry æ¯ä¸ªé¡¹ç›®æœ€å¤§åކå²è®°å½•å¤§å° - - Max. history size: - 最大历å²è®°å½•大å°ï¼š - MiB MiB @@ -2066,6 +2099,64 @@ This action is not reversible. (old) (旧的) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + 在ä¿å­˜æ­¤è®¾ç½®æˆ–编辑æ¡ç›®æ—¶ +æ¡ç›®ä¸­æœ€æ—©çš„历å²è®°å½•将会 +被删除,ä¿è¯åªæœ‰æŒ‡å®šçš„æ•° +é‡è¢«ä¿ç•™ã€‚ + + + Limit the amount of history items per entry to: + é™åˆ¶æ¯ä¸ªæ¡ç›®çš„历å²è®°å½•æ•°é‡ä¸ºï¼š + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + 在ä¿å­˜æ­¤è®¾ç½®æˆ–编辑æ¡ç›®æ—¶ +æ¡ç›®ä¸­æœ€æ—©çš„历å²è®°å½•将会 +被删除,ä¿è¯æœ€å¤šåªå‰©ä½™æŒ‡ +定的数é‡ã€‚ + + + Limit the total size of history items per entry to: + é™åˆ¶æ¯ä¸ªæ¡ç›®çš„历å²è®°å½•总大å°ä¸ºï¼š + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + å°†æ¡ç›®ç§»åŠ¨åˆ°å›žæ”¶ç«™ç¾¤ç»„ +而éžç›´æŽ¥ä»Žæ•°æ®åº“中删除。 +从回收站中删除的æ¡ç›®å°† +会从数æ®åº“中删除。 + + + Autosave delay since last change + 修改åŽè‡ªåЍä¿å­˜å»¶è¿Ÿ + + + Autosave delay + 自动ä¿å­˜å»¶è¿Ÿ + + + Autosave delay since last change in minutes + 修改åŽè‡ªåЍä¿å­˜å»¶è¿Ÿåˆ†é’Ÿ + + + min + 分 + + + Autosave delay since last change checkbox + 修改åŽè‡ªåЍä¿å­˜å»¶è¿Ÿå¤é€‰æ¡† + DatabaseSettingsWidgetKeeShare @@ -2193,26 +2284,10 @@ This is definitely a bug, please report it to the developers. CSV file CSV 文件 - - Select CSV file - 选择 CSV 文件 - Merge database åˆå¹¶æ•°æ®åº“ - - KeePass 1 database - KeePass 1 æ•°æ®åº“ - - - Open KeePass 1 database - 打开 KeePass 1 æ•°æ®åº“ - - - Open OPVault - 打开 OPVault - Export database to CSV file 导出数æ®åº“到 CSV 文件 @@ -2225,6 +2300,18 @@ This is definitely a bug, please report it to the developers. Writing the HTML file failed. 写入 HTML 文件失败 + + Export database to XML file + 导出数æ®åº“到 XML 文件 + + + XML file + XML 文件 + + + Writing the XML file failed + 写入 XML 文件失败 + Export Confirmation 导出确认 @@ -2233,15 +2320,6 @@ This is definitely a bug, please report it to the developers. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? 您å³å°†å¯¼å‡ºæ•°æ®åº“åˆ°æœªåŠ å¯†æ–‡ä»¶ï¼Œè¿™å°†ä¼šç›´æŽ¥æš´éœ²æ‚¨çš„å¯†ç æˆ–æ•æ„Ÿä¿¡æ¯ï¼ç¡®å®šè¦ç»§ç»­å—? - - New Database - 新建数æ®åº“ - - - %1 [New Database] - Database tab name modifier - %1 [新建数æ®åº“] - %1 [Locked] Database tab name modifier @@ -2251,8 +2329,8 @@ This is definitely a bug, please report it to the developers. DatabaseWidget - Database Tags - æ•°æ®åº“标签 + Searches and Tags + æœç´¢ä¸Žæ ‡ç­¾ Searching… @@ -2302,6 +2380,10 @@ This is definitely a bug, please report it to the developers. Expired entries 已过期æ¡ç›® + + Entries expiring within %1 day(s) + 将在 %1 天内过期的æ¡ç›® + No current database. 未打开任何数æ®åº“。 @@ -2326,6 +2408,18 @@ This is definitely a bug, please report it to the developers. No Results 无结果 + + Save + ä¿å­˜ + + + Enter a unique name or overwrite an existing search from the list: + 输入唯一å称或者覆盖列表中已存在的æœç´¢ï¼š + + + Save Search + ä¿å­˜æœç´¢ + Lock Database? é”定数æ®åº“? @@ -2416,9 +2510,14 @@ Disable safe saves and try again? Could not find database file: %1 找ä¸åˆ°æ•°æ®åº“文件:%1 - - Entries expiring within %1 day(s) - 将在 ï¼…1 天内过期的æ¡ç›® + + New Database + 新建数æ®åº“ + + + %1 [New Database] + Database tab name modifier + %1 [新建数æ®åº“] @@ -2561,6 +2660,10 @@ Would you like to correct it? Hide éšè— + + %n hour(s) + %n å°æ—¶ + %n week(s) %n 周 @@ -2573,10 +2676,6 @@ Would you like to correct it? %n year(s) %n å¹´ - - %n hour(s) - %n å°æ—¶ - EditEntryWidgetAdvanced @@ -2695,10 +2794,20 @@ Would you like to correct it? Add new window association 添加一个新的窗å£å…³è” + + + + Add item + + + Remove selected window association 删除所选窗å£å…³è” + + - + Remove item + - + Window title: çª—å£æ ‡é¢˜ï¼š @@ -2723,16 +2832,6 @@ Would you like to correct it? Custom Auto-Type sequence for this window 自定义此窗å£çš„自动输入åºåˆ— - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2834,22 +2933,10 @@ Would you like to correct it? Notes field 备注字段 - - Toggle the checkbox to reveal the notes section. - 勾选以显示备注部分。 - Username field 用户å字段 - - Toggle notes visible - 显示或éšè—备注 - - - Notes: - 备注: - Expiration field 过期时间字段 @@ -2866,14 +2953,6 @@ Would you like to correct it? Presets 预设 - - Password: - 密ç ï¼š - - - URL: - URL: - Url field URL 字段 @@ -2882,18 +2961,10 @@ Would you like to correct it? Download favicon for URL 从 URL 下载网站图标 - - Title: - 标题: - Title field 标题字段 - - Username: - 用户å: - Password field 密ç å­—段 @@ -2902,18 +2973,42 @@ Would you like to correct it? Toggle expiration å¯ç”¨æˆ–ç¦ç”¨è¿‡æœŸ - - Expires: - 过期时间: - - - Tags: - 标签: - Tags list 标签列表 + + &Username: + 用户å(&U): + + + &Title: + 标题(&T): + + + &Password: + 密ç (&P): + + + UR&L: + UR&L: + + + &Notes: + 备注(&N): + + + Toggle notes visibility + 显示或éšè—备注 + + + T&ags: + 标签(&A): + + + &Expires: + 过期时间(&E): + EditEntryWidgetSSHAgent @@ -2953,19 +3048,6 @@ Would you like to correct it? Private key ç§é’¥ - - External file - 外部文件 - - - Browser for key file - æµè§ˆå¯†é’¥æ–‡ä»¶ - - - Browse… - Button for opening file dialog - æµè§ˆ... - Attachment 附件 @@ -2982,6 +3064,23 @@ Would you like to correct it? Remove from agent 从代ç†ä¸­åˆ é™¤ + + External file + 外部文件 + + + Browser for key file + æµè§ˆå¯†é’¥æ–‡ä»¶ + + + Browse… + Button for opening file dialog + æµè§ˆ... + + + Generate + ç”Ÿæˆ + Select attachment file 选择附件文件 @@ -3017,10 +3116,6 @@ Would you like to correct it? Icon 图标 - - Browser Integration - æµè§ˆå™¨é›†æˆ - Properties 属性 @@ -3037,6 +3132,10 @@ Would you like to correct it? Group has unsaved changes 群组有未ä¿å­˜çš„æ›´æ”¹ + + Browser Integration + æµè§ˆå™¨é›†æˆ + Enable å¯ç”¨ @@ -3052,10 +3151,6 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - 编辑群组 - These settings affect to the group's behaviour with the browser extension. 这些设置会影å“å¯ç”¨æµè§ˆå™¨æ‰©å±•时此群组的行为。 @@ -3092,6 +3187,22 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups 切æ¢å½“å‰ç¾¤ç»„与å­ç¾¤ç»„是å¦ä¸ç”¨äºŽ HTTP è®¤è¯ + + Omit WWW subdomain from matching: + åŒ¹é…æ—¶çœç•¥ WWW å­åŸŸå: + + + Omit WWW subdomain from matching toggle for this and sub groups + 切æ¢å½“å‰ç¾¤ç»„与å­ç¾¤ç»„是å¦åœ¨åŒ¹é…æ—¶çœç•¥ WWW å­åŸŸå + + + Restrict matching to given browser key: + é™åˆ¶ä¸ŽæŒ‡å®šçš„æµè§ˆå™¨å¯†é’¥åŒ¹é…: + + + Restrict matching to given browser key toggle for this and sub groups + é™åˆ¶å½“å‰ç¾¤ç»„å’Œå­ç¾¤ç»„与指定的æµè§ˆå™¨å¯†é’¥åŒ¹é… + EditGroupWidgetKeeShare @@ -3324,10 +3435,6 @@ Supported extensions are: %1. Unable to fetch favicon. 无法获å–网站图标。 - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - 您å¯ä»¥åœ¨â€œå·¥å…· -> 设置 -> 安全â€ä¸­é€‰æ‹© DuckDuckGo ä½œä¸ºç½‘ç«™å›¾æ ‡æ¥æº - Existing icon selected. 已选择存在的图标。 @@ -3360,6 +3467,10 @@ Supported extensions are: %1. The following icon(s) failed: 以下图标失败: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + 您å¯ä»¥åœ¨â€œåº”用设置 -> 安全â€ä¸­é€‰æ‹© DuckDuckGo ä½œä¸ºç½‘ç«™å›¾æ ‡æ¥æº + EditWidgetProperties @@ -3515,7 +3626,7 @@ This may cause the affected plugins to malfunction. Are you sure you want to remove %n attachment(s)? - 您确定è¦åˆ é™¤ ï¼…n 个附件å—? + 您确定è¦åˆ é™¤ %n 个附件å—? Save attachments @@ -3796,6 +3907,10 @@ Error: %1 Has TOTP 有 TOTP + + Background Color + 背景色 + EntryPreviewWidget @@ -3816,8 +3931,8 @@ Error: %1 å¯†ç  - Notes - 备注 + URL + URL Expiration @@ -3836,8 +3951,8 @@ Error: %1 用户å - URL - URL + Notes + 备注 Advanced @@ -3887,6 +4002,10 @@ Error: %1 Never ä»Žä¸ + + Double click to copy value + åŒå‡»å¤åˆ¶å€¼ + Enabled å¯ç”¨ @@ -3895,6 +4014,10 @@ Error: %1 Disabled ç¦ç”¨ + + Double click to copy to clipboard + åŒå‡»å¤åˆ¶åˆ°å‰ªè´´æ¿ + EntryURLModel @@ -3902,6 +4025,10 @@ Error: %1 Invalid URL 无效 URL + + Duplicate URL + é‡å¤ URL + EntryView @@ -3917,6 +4044,10 @@ Error: %1 Reset to defaults é‡ç½®ä¸ºé»˜è®¤å€¼ + + + %1 entry(s)... + + %1 项æ¡ç›®â€¦ + ExportDialog @@ -4138,6 +4269,147 @@ You can enable the DuckDuckGo website icon service in the security section of th 正在下载网站图标(%1/%2)… + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + å‘导页 + + + Entry count: %1 + + + + Group + 群组 + + + Title + 标题 + + + Username + 用户å + + + Password + å¯†ç  + + + Url + + + + + ImportWizardPageSelect + + Form + è¡¨å• + + + Import File Selection + + + + Password: + 密ç ï¼š + + + Key File: + 密钥文件: + + + Browse… + æµè§ˆ... + + + Import Into: + + + + New Database + 新建数æ®åº“ + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + 打开 OPVault + + + Select import file + + + + All files + 所有文件 + + + Key files + 密钥文件 + + + Select key file + 选择密钥文件 + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4571,17 +4843,6 @@ Line %2, column %3 打开ç§é’¥å¤±è´¥ - - KeePass1OpenWidget - - Import KeePass1 Database - 导入 KeePass1 æ•°æ®åº“ - - - Unable to open the database. - 无法打开数æ®åº“。 - - KeePass1Reader @@ -4938,10 +5199,6 @@ Are you sure you want to continue with this file? &Recent Databases 最近的数æ®åº“(&R) - - &Import - 导入(&I) - &Export 导出(&E) @@ -4962,6 +5219,10 @@ Are you sure you want to continue with this file? TOTP TOTP + + Tags + 标签 + &Groups 群组(&G) @@ -5006,34 +5267,18 @@ Are you sure you want to continue with this file? &New Database… 新建数æ®åº“(&N)... - - Create a new database - 创建一个新数æ®åº“ - &Merge From Database… 从数æ®åº“åˆå¹¶(&M)... - - Merge from another KDBX database - 从å¦ä¸€ä¸ª KDBX æ•°æ®åº“åˆå¹¶ - &New Entry… 新建æ¡ç›®(&N)... - - Add a new entry - 添加新æ¡ç›® - &Edit Entry… 编辑æ¡ç›®(&E)... - - View or edit entry - 查看或编辑æ¡ç›® - &Delete Entry… 删除æ¡ç›®(&D)... @@ -5042,10 +5287,6 @@ Are you sure you want to continue with this file? &New Group… 新建群组(&N)... - - Add a new group - 添加一个新群组 - &Edit Group… 编辑群组(&E)... @@ -5078,18 +5319,10 @@ Are you sure you want to continue with this file? Database &Reports… æ•°æ®åº“报告(&R)… - - Statistics, health check, etc. - 统计ã€å¥åº·æ£€æŸ¥ç­‰ - &Database Settings… æ•°æ®åº“设置(&D)... - - Database settings - æ•°æ®åº“设置 - &Clone Entry… 克隆æ¡ç›®(&C)... @@ -5098,34 +5331,18 @@ Are you sure you want to continue with this file? Move u&p 上移(&P) - - Move entry one step up - å‘上移动æ¡ç›® - Move do&wn 下移(&W) - - Move entry one step down - å‘下移动æ¡ç›® - Copy &Username å¤åˆ¶ç”¨æˆ·å(&U) - - Copy username to clipboard - å¤åˆ¶ç”¨æˆ·ååˆ°å‰ªè´´æ¿ - Copy &Password å¤åˆ¶å¯†ç (&P) - - Copy password to clipboard - å¤åˆ¶å¯†ç åˆ°å‰ªè´´æ¿ - &Settings 设置(&S) @@ -5159,25 +5376,13 @@ Are you sure you want to continue with this file? 标题(&T) - Copy title to clipboard - å¤åˆ¶æ ‡é¢˜åˆ°å‰ªè´´æ¿ - - - &URL - &URL - - - Copy URL to clipboard - å¤åˆ¶ URL åˆ°å‰ªè´´æ¿ + Copy &URL + å¤åˆ¶ &URL &Notes 备注(&N) - - Copy notes to clipboard - å¤åˆ¶å¤‡æ³¨åˆ°å‰ªè´´æ¿ - &CSV File… &CSV 文件... @@ -5190,26 +5395,14 @@ Are you sure you want to continue with this file? KeePass 1 Database… KeePass 1 æ•°æ®åº“... - - Import a KeePass 1 database - 导入 KeePass 1 æ•°æ®åº“ - 1Password Vault… 1Password ä¿é™©åº“... - - Import a 1Password Vault - 导入 1Password ä¿é™©åº“ - CSV File… CSV 文件... - - Import a CSV file - 导入 CSV 文件 - Show TOTP 显示 TOTP å¯†ç  @@ -5226,6 +5419,10 @@ Are you sure you want to continue with this file? Copy &TOTP å¤åˆ¶ &TOTP + + Copy Password and TOTP + å¤åˆ¶å¯†ç å’Œ TOTP + E&mpty recycle bin 清空回收站(&M) @@ -5250,10 +5447,6 @@ Are you sure you want to continue with this file? &Online Help 在线帮助(&O) - - Go to online documentation - å‰å¾€åœ¨çº¿æ–‡æ¡£ - &User Guide 用户手册(&U) @@ -5322,6 +5515,10 @@ Are you sure you want to continue with this file? Clone Group... 克隆群组... + + &XML File… + &XML 文件… + Clear history æ¸…ç©ºåŽ†å² @@ -5353,6 +5550,10 @@ Expect some bugs and minor issues, this version is meant for testing purposes. 警告:您的 Qt 版本å¯èƒ½ä¼šå¯¼è‡´ KeePassXC 在使用å±å¹•键盘时崩溃。我们建议您使用我们的下载页é¢ä¸Šæä¾›çš„ AppImage。 + + No Tags + 无标签 + Restore Entry(s) æ¢å¤æ¡ç›® @@ -5381,6 +5582,10 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC 退出 KeePassXC + + %1 Entry(s) + %1 项æ¡ç›® + Please present or touch your YubiKey to continue… 请感应或触摸您的 YubiKey 以继续… @@ -5393,6 +5598,274 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? æ‚¨å¿…é¡»é‡æ–°å¯åŠ¨åº”ç”¨æ‰èƒ½åº”用此设置。è¦çŽ°åœ¨é‡æ–°å¯åЍå—? + + Allow Screen Capture + å…许å±å¹•截图 + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + Passkey… + + + Import Passkey + 导入 Passkey + + + Quit Application + 退出应用 + + + Open About Dialog + æ‰“å¼€å…³äºŽå¯¹è¯æ¡† + + + Open Database + 打开数æ®åº“ + + + Create Database + 新建数æ®åº“ + + + Merge From Database + 从数æ®åº“åˆå¹¶ + + + Create Entry + 新建æ¡ç›® + + + Edit Entry + 编辑æ¡ç›® + + + Delete Entry + 删除æ¡ç›® + + + Create Group + 新建群组 + + + Edit Group + 编辑群组 + + + Delete Group + 删除群组 + + + Download All Favicons + 下载所有网站图标 + + + Sort Groups A-Z + 按 A-Z 排åºç¾¤ç»„ + + + Sort Groups Z-A + 按 Z-A 排åºç¾¤ç»„ + + + Save Database As + å¦å­˜ä¸ºæ•°æ®åº“ + + + Show Database Security + 显示数æ®åº“安全 + + + Show Database Reports + 显示数æ®åº“报告 + + + Show Database Settings + 显示数æ®åº“设置 + + + Show Passkeys + 显示 Passkey + + + Clone Entry + 克隆æ¡ç›® + + + Move Entry Up + å‘上移动æ¡ç›® + + + Move Entry Down + å‘下移动æ¡ç›® + + + Copy Username + å¤åˆ¶ç”¨æˆ·å + + + Copy Password + å¤åˆ¶å¯†ç  + + + Show Application Settings + 显示应用程åºè®¾ç½® + + + Show Password Generator + 显示密ç ç”Ÿæˆå™¨ + + + Perform Auto-Type: {USERNAME} + 执行自动输入:{USERNAME} + + + Perform Auto-Type: {USERNAME}{ENTER} + 执行自动输入:{USERNAME}{ENTER} + + + Perform Auto-Type: {PASSWORD} + 执行自动输入:{PASSWORD} + + + Perform Auto-Type: {PASSWORD}{ENTER} + 执行自动输入:{PASSWORD}{ENTER} + + + Perform Auto-Type: {TOTP} + 执行自动输入:{TOTP} + + + Copy Title + å¤åˆ¶æ ‡é¢˜ + + + Copy URL + å¤åˆ¶ URL + + + Copy Notes + å¤åˆ¶å¤‡æ³¨ + + + Export to CSV + 导出到 CSV + + + Export to HTML + 导出到 HTML + + + Import KeePass1 Database + 导入 KeePass1 æ•°æ®åº“ + + + Import 1Password Vault + 导入 1Passowrd ä¿é™©åº“ + + + Import CSV File + 导入 CSV 文件 + + + Show TOTP QR Code + 显示 TOTP äºŒç»´ç  + + + Set up TOTP + 设置 TOTP + + + Empty Recycle Bin + 清空回收站 + + + Open Donation Website + 打开æèµ ç½‘ç«™ + + + Open Bug Report + 打开错误报告 + + + Open Online Documentation + 打开在线文档 + + + Open Keyboard Shortcuts Guide + 打开键盘快æ·é”®æŒ‡å— + + + Save Database Backup + ä¿å­˜æ•°æ®åº“备份 + + + SSH Agent: Add Key + SSH 代ç†ï¼šæ·»åР坆钥 + + + SSH Agent: Remove Key + SSH 代ç†ï¼šåˆ é™¤å¯†é’¥ + + + Toggle Compact Mode + 切æ¢ç´§å‡‘æ¨¡å¼ + + + Set Theme: Automatic + 设置主题:自动 + + + Set Theme: Light + 设置主题:亮色 + + + Set Theme: Dark + 设置主题:暗色 + + + Set Theme: Classic + 设置主题:ç»å…¸ + + + Toggle Show Toolbar + åˆ‡æ¢æ˜¾ç¤ºå·¥å…·æ  + + + Toggle Show Preview Panel + åˆ‡æ¢æ˜¾ç¤ºé¢„è§ˆé¢æ¿ + + + Toggle Always on Top + åˆ‡æ¢æ€»åœ¨æœ€å‰ + + + Toggle Hide Usernames + 切æ¢éšè—用户å + + + Toggle Hide Passwords + 切æ¢éšè—å¯†ç  + + + Export to XML + 导出到 XML + + + Toggle Allow Screen Capture + 切æ¢å…许å±å¹•截图 + ManageDatabase @@ -5450,26 +5923,6 @@ We recommend you use the AppImage available on our downloads page. Overwriting %1 [%2] 覆盖 %1 [%2] - - older entry merged from database "%1" - 从数æ®åº““%1â€åˆå¹¶çš„æ—§æ¡ç›® - - - Adding backup for older target %1 [%2] - 为旧目标 %1 [%2] 添加备份 - - - Adding backup for older source %1 [%2] - ä¸ºæ—§æ¥æº %1 [%2] 添加备份 - - - Reapplying older target entry on top of newer source %1 [%2] - åœ¨æ–°æ¥æº %1 [%2] ä¸Šé‡æ–°åº”用旧目标的æ¡ç›® - - - Reapplying older source entry on top of newer target %1 [%2] - 在新目标 %1 [%2] ä¸Šé‡æ–°åº”ç”¨æ—§æ¥æºçš„æ¡ç›® - Synchronizing from newer source %1 [%2] ä»Žæ–°æ¥æº %1 [%2] åŒæ­¥ @@ -5529,14 +5982,6 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. 您å¯ä»¥åœ¨æ­¤å¤„调整数æ®åº“加密设置。ä¸ç”¨æ‹…å¿ƒï¼Œæ‚¨éšæ—¶å¯ä»¥åœ¨æ•°æ®åº“设置中更改它们。 - - Advanced Settings - 高级设置 - - - Simple Settings - 简å•设置 - NewDatabaseWizardPageDatabaseKey @@ -5617,15 +6062,6 @@ We recommend you use the AppImage available on our downloads page. 预期长度 %1 字节的明文数æ®ï¼Œä»…得到 %2 字节 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - è¯»å–æ•°æ®åº“未生æˆå®žä¾‹ -%1 - - OpVaultReader @@ -5699,6 +6135,10 @@ We recommend you use the AppImage available on our downloads page. Unknown cipher: %1 未知加密:%1 + + AES-256/GCM is currently not supported + AES-256/GCM ç›®å‰ä¸æ”¯æŒ + Passphrase is required to decrypt this key 需è¦å£ä»¤è§£å¯†æ­¤å¯†é’¥ @@ -5765,26 +6205,178 @@ We recommend you use the AppImage available on our downloads page. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - 密ç ä¸åŒ¹é… + SSH Key Generator + SSH Key 生æˆå™¨ - Passwords match so far - 密ç ç›®å‰åŒ¹é… + Type + 类型 - Toggle Password (%1) - 切æ¢å¯†ç æ˜¾ç¤º(%1) + Bits + 比特 - Generate Password (%1) - 生æˆå¯†ç (%1) + Comment + 注释 + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC: Passkey 导出 - Warning: Caps Lock enabled! - 警告:已å¯ç”¨å¤§å†™é”å®šï¼ + Export the following Passkey entries. + 导出以下 Passkey æ¡ç›®ã€‚ + + + Filenames will be generated with title and .passkey file extension. + 文件å将会以标题和 .passkey 扩展å生æˆã€‚ + + + Export entries + 导出æ¡ç›® + + + Export Selected + 导出选定 + + + Cancel + å–æ¶ˆ + + + Export to folder + 导出到文件夹 + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC:Passkey 导出 + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + 文件“%1.passkeyâ€å·²ç»å­˜åœ¨ã€‚ +您是å¦è¦è¦†ç›–它? + + + + Cannot open file + 无法打开文件 + + + Cannot open file "%1" for writing. + 无法打开文件“%1â€ä»¥å†™å…¥ã€‚ + + + Cannot write to file + 无法写入文件 + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - Passkey 导入 + + + Username: %1 + 用户å:%1 + + + Group + 群组 + + + Database + æ•°æ®åº“ + + + Import Passkey + 导入 Passkey + + + Import + 导入 + + + Cancel + å–æ¶ˆ + + + Import the following Passkey: + 导入以下 Passkey: + + + Entry + æ¡ç›® + + + Import the following Passkey to this entry: + 导入以下 Passkey 到此æ¡ç›®ï¼š + + + Create new entry + 新建æ¡ç›® + + + Default Passkeys group (Imported Passkeys) + 默认 Passkey 群组(导入的 Passkey) + + + Relying Party: %1 + ä¾èµ–方:%1 + + + + PasskeyImporter + + Passkey file + Passkey 文件 + + + All files + 所有文件 + + + Open Passkey file + 打开 Passkey 文件 + + + Cannot open file + 无法打开文件 + + + Cannot open file "%1" for reading. + 无法打开文件“%1â€ä»¥è¯»å–。 + + + Cannot import Passkey + 无法导入 Passkey + + + Cannot import Passkey file "%1". Data is missing. + 无法导入 Passkey 文件“%1â€ã€‚æ•°æ®ç¼ºå¤±ã€‚ + + + Cannot import Passkey file "%1". Private key is missing or malformed. + 无法导入 Passkey 文件“%1â€ã€‚ç§é’¥ç¼ºå¤±æˆ–æŸå。 + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + 无法导入 Passkey 文件“%1â€ã€‚ +以下数æ®ç¼ºå¤±ï¼š +%2 @@ -6049,6 +6641,30 @@ We recommend you use the AppImage available on our downloads page. Entropy: %1 bit 熵:%1 比特 + + Password Quality: %1 + 密ç å¼ºåº¦ï¼š%1 + + + Poor + Password quality + 差劲 + + + Weak + Password quality + 较弱 + + + Good + Password quality + 良好 + + + Excellent + Password quality + 优秀 + Confirm Delete Wordlist 确认删除è¯è¡¨ @@ -6095,9 +6711,32 @@ Do you want to overwrite it? Special Characters 特殊字符 + + + PasswordWidget - Password Quality: %1 - 密ç å¼ºåº¦ï¼š%1 + Passwords do not match + 密ç ä¸åŒ¹é… + + + Passwords match so far + 密ç ç›®å‰åŒ¹é… + + + Toggle Password (%1) + 切æ¢å¯†ç æ˜¾ç¤º(%1) + + + Generate Password (%1) + 生æˆå¯†ç (%1) + + + Warning: Caps Lock enabled! + 警告:已å¯ç”¨å¤§å†™é”å®šï¼ + + + Quality: %1 + è´¨é‡ï¼š%1 Poor @@ -6119,6 +6758,10 @@ Do you want to overwrite it? Password quality 优秀 + + Toggle password visibility using Control + H. Open the password generator using Control + G. + 使用 Control + H 显示或éšè—密ç ã€‚使用 Control + G 打开密ç ç”Ÿæˆå™¨ã€‚ + PickcharsDialog @@ -6173,6 +6816,10 @@ Do you want to overwrite it? Continue ç»§ç»­ + + Continue with weak password + 使用弱密ç ç»§ç»­ + QObject @@ -6566,6 +7213,10 @@ Do you want to overwrite it? Too many arguments provided. æä¾›çš„傿•°è¿‡å¤šã€‚ + + Path of the database. + æ•°æ®åº“路径。 + Target decryption time in MS for the database. æ•°æ®åº“的目标解密时间,å•ä½ä¸ºæ¯«ç§’。 @@ -6574,6 +7225,12 @@ Do you want to overwrite it? time æ—¶é—´ + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + 设置数æ®åº“的密钥文件。 +此选项已弃用,请用 --set-key-file 代替。 + Set the key file for the database. 设置数æ®åº“的密钥文件。 @@ -6586,10 +7243,6 @@ Do you want to overwrite it? Create a new database. 创建新数æ®åº“。 - - Path of the database. - æ•°æ®åº“路径。 - Invalid decryption time %1. 无效解密时间 %1。 @@ -6634,6 +7287,158 @@ Do you want to overwrite it? Successfully created new database. å·²æˆåŠŸåˆ›å»ºæ–°æ•°æ®åº“。 + + Unset the password for the database. + 删除数æ®åº“的密ç ã€‚ + + + Unset the key file for the database. + 删除数æ®åº“的密钥文件。 + + + Edit a database. + 编辑一个数æ®åº“。 + + + Cannot use %1 and %2 at the same time. + æ— æ³•åŒæ—¶ä½¿ç”¨ %1 å’Œ %2。 + + + Could not change the database key. + 无法更改数æ®åº“密钥。 + + + Database was not modified. + æ•°æ®åº“未被修改。 + + + Writing the database failed: %1 + 写入数æ®åº“失败:%1 + + + Successfully edited the database. + å·²æˆåŠŸç¼–è¾‘æ•°æ®åº“。 + + + Cannot remove password: The database does not have a password. + 无法删除密ç ï¼šæ•°æ®åº“ä¸å«å¯†ç ã€‚ + + + Cannot remove file key: The database does not have a file key. + 无法删除文件密钥:数æ®åº“ä¸å«æ–‡ä»¶å¯†é’¥ã€‚ + + + Loading the new key file failed: %1 + 加载新密钥文件失败:%1 + + + Found unexpected Key type %1 + å‘çŽ°æ„æ–™ä¹‹å¤–的密钥类型 %1 + + + Cannot remove all the keys from a database. + 无法从数æ®åº“中删除所有密钥 。 + + + Show a database's information. + 显示数æ®åº“的信æ¯ã€‚ + + + UUID: + UUID: + + + Name: + å称: + + + Description: + æè¿°ï¼š + + + Cipher: + 加密: + + + KDF: + KDF: + + + Recycle bin is enabled. + 回收站已å¯ç”¨ã€‚ + + + Recycle bin is not enabled. + 回收站未å¯ç”¨ã€‚ + + + Location + ä½ç½® + + + Database created + æ•°æ®åº“创建时间 + + + Last saved + ä¿å­˜æ—¶é—´ + + + Unsaved changes + 尚未ä¿å­˜ä¿®æ”¹ + + + yes + 是 + + + no + å¦ + + + Number of groups + 群组数 + + + Number of entries + æ¡ç›®æ•° + + + Number of expired entries + 过期æ¡ç›®æ•° + + + Unique passwords + å”¯ä¸€å¯†ç  + + + Non-unique passwords + é‡å¤å¯†ç  + + + Maximum password reuse + å¯†ç æœ€é«˜é‡å¤æ¬¡æ•° + + + Number of short passwords + çŸ­å¯†ç æ€»æ•° + + + Number of weak passwords + å¼±å¯†ç æ€»æ•° + + + Entries excluded from reports + 报告中已排除æ¡ç›® + + + Average password length + å¹³å‡å¯†ç é•¿åº¦ + + + %1 characters + %1 字符 + Word count for the diceware passphrase. Diceware å£ä»¤çš„è¯æ•°ã€‚ @@ -6685,10 +7490,6 @@ Do you want to overwrite it? Enter new password for entry: 输入æ¡ç›®æ–°å¯†ç ï¼š - - Writing the database failed: %1 - 写入数æ®åº“失败:%1 - Successfully edited entry %1. å·²æˆåŠŸç¼–è¾‘æ¡ç›® %1。 @@ -6913,106 +7714,6 @@ Do you want to overwrite it? Successfully imported database. å·²æˆåŠŸå¯¼å…¥æ•°æ®åº“。 - - Show a database's information. - 显示数æ®åº“的信æ¯ã€‚ - - - UUID: - UUID: - - - Name: - å称: - - - Description: - æè¿°ï¼š - - - Cipher: - 加密: - - - KDF: - KDF: - - - Recycle bin is enabled. - 回收站已å¯ç”¨ã€‚ - - - Recycle bin is not enabled. - 回收站未å¯ç”¨ã€‚ - - - Location - ä½ç½® - - - Database created - æ•°æ®åº“创建时间 - - - Last saved - ä¿å­˜æ—¶é—´ - - - Unsaved changes - 尚未ä¿å­˜ä¿®æ”¹ - - - yes - 是 - - - no - å¦ - - - Number of groups - 群组数 - - - Number of entries - æ¡ç›®æ•° - - - Number of expired entries - 过期æ¡ç›®æ•° - - - Unique passwords - å”¯ä¸€å¯†ç  - - - Non-unique passwords - é‡å¤å¯†ç  - - - Maximum password reuse - å¯†ç æœ€é«˜é‡å¤æ¬¡æ•° - - - Number of short passwords - çŸ­å¯†ç æ€»æ•° - - - Number of weak passwords - å¼±å¯†ç æ€»æ•° - - - Entries excluded from reports - 报告中已排除æ¡ç›® - - - Average password length - å¹³å‡å¯†ç é•¿åº¦ - - - %1 characters - %1 字符 - Unknown command %1 未知命令 %1 @@ -7185,6 +7886,10 @@ Available commands: Show the protected attributes in clear text. æ˜Žæ–‡æ˜¾ç¤ºè¢«ä¿æŠ¤çš„å±žæ€§ã€‚ + + Show all the attributes of the entry. + 显示æ¡ç›®çš„æ‰€æœ‰å±žæ€§ã€‚ + Show the attachments of the entry. 显示æ¡ç›®çš„附件。 @@ -7254,6 +7959,10 @@ Please consider generating a new key file. Invalid YubiKey serial %1 无效的 YubiKey åºå· %1 + + Please present or touch your YubiKey to continue. + 请感应或触摸您的 YubiKey 以继续。 + Enter password to encrypt database (optional): 输入用于加密数æ®åº“的密ç ï¼ˆå¯é€‰ï¼‰ï¼š @@ -7440,8 +8149,8 @@ CPU 架构:%2 %1 分 - Botan library must be at least 2.11.x, found %1.%2.%3 - Botan 库的版本至少应为 2.11.x,您的版本为 %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + Botan 库的版本至少应为 %1,您的版本为 %2.%3.%4 Cryptographic libraries: @@ -7681,10 +8390,6 @@ CPU 架构:%2 read password of the database from stdin ä»Žæ ‡å‡†è¾“å…¥è¯»å–æ•°æ®åº“çš„å¯†ç  - - allow app screen recordering and screenshots - å…è®¸åº”ç”¨è¢«å½•åƒæˆ–截图 - Locked databases. å·²é”定数æ®åº“。 @@ -7697,6 +8402,10 @@ CPU 架构:%2 Another instance of KeePassXC is already running. å¦ä¸€ä¸ª KeePassXC 实例已在è¿è¡Œã€‚ + + KeePassXC is not running. No open database to lock + KeePassXC 未在è¿è¡Œã€‚没有å¯é”定的已打开数æ®åº“ + Fatal error while testing the cryptographic functions. 在测试加密函数时å‘生致命错误。 @@ -7705,10 +8414,6 @@ CPU 架构:%2 KeePassXC - Error KeePassXC - 错误 - - Warning: Failed to prevent screenshots on a top level window! - 警告:在顶层窗å£é˜»æ­¢æˆªå›¾å¤±è´¥ï¼ - Database password: æ•°æ®åº“密ç ï¼š @@ -7732,8 +8437,222 @@ CPU 架构:%2 使用 Windows Hello ç­¾åæŒ‘战失败。 - Please present or touch your YubiKey to continue. - 请感应或触摸您的 YubiKey 以继续。 + Warning: Failed to block screenshot capture on a top-level window. + 警告:在顶层窗å£é˜»æ­¢å±å¹•截图失败。 + + + Invalid Cipher + 无效的加密方法 + + + Invalid KDF + 无效的 KDF + + + Access to all entries is denied + 对所有æ¡ç›®çš„è®¿é—®å·²ç¦æ­¢ + + + allow screenshots and app recording (Windows/macOS) + å…许å±å¹•截图与应用录制(Windows/macOS) + + + Enter Shortcut + 输入快æ·é”® + + + Action + 动作 + + + Shortcuts + å¿«æ·é”® + + + Attestation not supported + 认è¯ä¸æ”¯æŒ + + + Credential is excluded + 凭æ®è¢«æŽ’除 + + + Passkeys request canceled + Passkey è¯·æ±‚è¢«å–æ¶ˆ + + + Invalid user verification + æ— æ•ˆçš„ç”¨æˆ·éªŒè¯ + + + Empty public key + 空的公钥 + + + Invalid URL provided + æä¾›çš„ URL 无效 + + + Passkeys + Passkey + + + AES initialization failed + AES åˆå§‹åŒ–失败 + + + AES encrypt failed + AES 加密失败 + + + Failed to store in Linux Keyring + 存入 Linux Keyring 失败 + + + Polkit returned an error: %1 + Polkit 返回了一个错误:%1 + + + Could not locate key in keyring + 无法在 Keyring 中定ä½å¯†é’¥ + + + Could not read key in keyring + 无法在 Keyring 中读å–密钥 + + + AES decrypt failed + AES 解密失败 + + + No Polkit authentication agent was available + æ— å¯ç”¨çš„ Polkit 身份验è¯ä»£ç† + + + Polkit authorization failed + Polkit 授æƒå¤±è´¥ + + + No Quick Unlock provider is available + æ— å¯ç”¨çš„å¿«é€Ÿè§£é”æä¾›è€… + + + Failed to init KeePassXC crypto. + åˆå§‹åŒ– KeePassXC 加密失败。 + + + Failed to encrypt key data. + 加密密钥数æ®å¤±è´¥ã€‚ + + + Failed to get Windows Hello credential. + èŽ·å– Windows Hello 凭æ®å¤±è´¥ã€‚ + + + Failed to decrypt key data. + 解密密钥数æ®å¤±è´¥ã€‚ + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + Origin 为空或ä¸è¢«å…许 + + + Effective domain is not a valid domain + Effective Domain 䏿˜¯æœ‰æ•ˆçš„域å + + + Origin and RP ID do not match + Origin 与 RP ID ä¸åŒ¹é… + + + No supported algorithms were provided + 未æä¾›å—支æŒçš„算法 + + + Wait for timer to expire + 等待计时器过期 + + + Unknown Passkeys error + 未知 Passkey 错误 + + + Challenge is shorter than required minimum length + 挑战短于所需最å°é•¿åº¦ + + + user.id does not match the required length + user.id ä¸åŒ¹é…所需长度 @@ -7772,18 +8691,6 @@ CPU 架构:%2 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - 从报告中排除已过期æ¡ç›® - - - Show only entries which have URL set - 仅显示设置了 URL çš„æ¡ç›® - - - Show only entries which have browser settings in custom data - 仅显示自定义数æ®ä¸­æœ‰æµè§ˆå™¨è®¾ç½®çš„æ¡ç›® - Double-click entries to edit. åŒå‡»æ¡ç›®ä»¥ç¼–辑。 @@ -7848,17 +8755,25 @@ CPU 架构:%2 Exclude from reports 从报告中排除 + + Only show entries that have a URL + ä»…æ˜¾ç¤ºå«æœ‰ URL çš„æ¡ç›® + + + Only show entries that have been explicitly allowed or denied + 仅显示明确å…è®¸æˆ–ç¦æ­¢çš„æ¡ç›® + + + Show expired entries + 显示过期的æ¡ç›® + + + (Expired) + (已过期) + ReportsWidgetHealthcheck - - Exclude expired entries from the report - 从报告中排除已过期æ¡ç›® - - - Also show entries that have been excluded from reports - 也显示已从报告中排除的æ¡ç›® - Hover over reason to show additional details. Double-click entries to edit. 将鼠标指针悬åœåœ¨åŽŸå› ä¸Šä»¥æ˜¾ç¤ºå…¶ä»–è¯¦ç»†ä¿¡æ¯ã€‚åŒå‡»æ¡ç›®ä»¥ç¼–辑。 @@ -7934,6 +8849,18 @@ CPU 架构:%2 Exclude from reports 从报告中排除 + + Show expired entries + 显示过期的æ¡ç›® + + + Show entries that have been excluded from reports + 显示已从报告中排除的æ¡ç›® + + + (Expired) + (已过期) + ReportsWidgetHibp @@ -8030,6 +8957,65 @@ CPU 架构:%2 从报告中排除 + + ReportsWidgetPasskeys + + Export + 导出 + + + Import + 导入 + + + List of entry URLs + æ¡ç›® URL 列表 + + + Please wait, list of entries with Passkeys is being updated… + 请ç¨ç­‰ï¼Œæ­£åœ¨æ›´æ–°åŒ…å« Passkey çš„æ¡ç›®åˆ—表… + + + No entries with Passkeys. + æ— åŒ…å« Passkey çš„æ¡ç›®ã€‚ + + + Title + 标题 + + + Path + 路径 + + + Username + 用户å + + + URLs + URL + + + Edit Entry… + 编辑æ¡ç›®â€¦ + + + Delete Entry(s)… + 删除æ¡ç›®â€¦ + + + Relying Party + ä¾èµ–æ–¹ + + + Show expired entries + 显示过期的æ¡ç›® + + + (Expired) + (已过期) + + ReportsWidgetStatistics @@ -8269,6 +9255,10 @@ CPU 架构:%2 Search Help æœç´¢å¸®åŠ© + + Save Search + ä¿å­˜æœç´¢ + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8500,11 +9490,38 @@ CPU 架构:%2 已导出到 %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + åŒå‡»ä¸€ä¸ªåŠ¨ä½œä»¥ä¿®æ”¹å…¶å¿«æ·é”® + + + Shortcut Conflict + å¿«æ·é”®å†²çª + + + Filter... + 过滤… + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + å¿«æ·é”® %1 与 '%2' 冲çªã€‚是å¦è¦†ç›–å¿«æ·é”®ï¼Ÿ + + + Reset Shortcuts + é‡ç½®å¿«æ·é”® + + TagModel - All - 所有 + Clear Search + 清除æœç´¢ + + + All Entries + 所有æ¡ç›® Expired @@ -8515,6 +9532,25 @@ CPU 架构:%2 å¼±å¯†ç  + + TagView + + Remove Search + 删除æœç´¢ + + + Remove Tag + 删除标签 + + + Confirm Remove Tag + 确认删除标签 + + + Remove tag "%1" from all entries in this database? + è¦åˆ é™¤æ•°æ®åº“中所有æ¡ç›®åŒ…å«çš„“%1â€æ ‡ç­¾å—? + + TotpDialog @@ -8663,7 +9699,7 @@ Example: JBSWY3DPEHPK3PXP You have the latest version of KeePassXC - 您的 KeePassXC å·²ç»æ˜¯æœ€ç‰ˆæœ¬ + 您的 KeePassXC å·²ç»æ˜¯æœ€æ–°ç‰ˆæœ¬ @@ -8672,26 +9708,6 @@ Example: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database 开始将您的密ç å®‰å…¨åœ°å­˜å‚¨åœ¨ KeePassXC æ•°æ®åº“中 - - Create new database - 新建数æ®åº“ - - - Open existing database - 打开数æ®åº“ - - - Import from KeePass 1 - 从 KeePass 1 导入 - - - Import from 1Password - 从 1Password 导入 - - - Import from CSV - 从 CSV 文件导入 - Recent databases 最近的数æ®åº“ @@ -8704,6 +9720,18 @@ Example: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 欢迎使用 KeePassXC %1 + + Create Database + 新建数æ®åº“ + + + Open Database + 打开数æ®åº“ + + + Import File + + WinUtils @@ -8720,31 +9748,8 @@ Example: JBSWY3DPEHPK3PXP 无法注册全局快æ·é”® - - WindowsHello - - Failed to init KeePassXC crypto. - åˆå§‹åŒ– KeePassXC 加密失败。 - - - Failed to encrypt key data. - 加密密钥数æ®å¤±è´¥ã€‚ - - - Failed to get Windows Hello credential. - èŽ·å– Windows Hello 凭æ®å¤±è´¥ã€‚ - - - Failed to decrypt key data. - 解密密钥数æ®å¤±è´¥ã€‚ - - YubiKey - - %1 No interface, slot %2 - %1 巿ޥå£ï¼Œæ’æ§½ %2 - General: 常规: @@ -8756,14 +9761,6 @@ Example: JBSWY3DPEHPK3PXP YubiKeyEditWidget - - Refresh hardware tokens - 刷新硬件令牌 - - - Refresh - 刷新 - Hardware key slot selection é€‰æ‹©ç¡¬ä»¶å¯†é’¥çš„æ’æ§½ @@ -8796,10 +9793,6 @@ Example: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove 质询å“应已设置,点击以更改或删除 - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>如果您拥有 <a href="https://www.yubico.com/">YubiKey</a> 或 <a href="https://onlykey.io">OnlyKey</a>,则å¯ä»¥ä½¿ç”¨å®ƒæ¥æé«˜å®‰å…¨æ€§ã€‚</p><p>ç¡¬ä»¶å¯†é’¥è¦æ±‚å°†å…¶ä¸­ä¸€ä¸ªæ’æ§½ç¼–程为 <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 质询å“应</a>。</p> - Detecting hardware keys… 正在检测硬件密钥... @@ -8808,28 +9801,21 @@ Example: JBSWY3DPEHPK3PXP No hardware keys detected 未检测到硬件密钥 - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 æŒ‡å®šçš„æ’æ§½æ— æ•ˆ - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + <p>如果您拥有 <a href="https://www.yubico.com/">YubiKey</a> 或 <a href="https://onlykey.io">OnlyKey</a>,则å¯ä»¥ä½¿ç”¨å®ƒæ¥æé«˜å®‰å…¨æ€§ã€‚</p><p>ç¡¬ä»¶å¯†é’¥è¦æ±‚å°†å…¶ä¸­ä¸€ä¸ªæ’æ§½ç¼–程为 HMAC-SHA1 质询å“应<a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">。</p> + + + Refresh hardware keys + 刷新硬件密钥 YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] 质询å“应 - æ’æ§½ %3 - The YubiKey PCSC interface has not been initialized. YubiKey PCSC 接å£å°šæœªåˆå§‹åŒ–。 - - Hardware key is currently in use. - 当剿­£åœ¨ä½¿ç”¨ç¡¬ä»¶å¯†é’¥ã€‚ - Could not find or access hardware key with serial number %1. Please present it to continue. 无法找到或访问åºåˆ—å·ä¸º %1 的硬件密钥。请感应åŽç»§ç»­ã€‚ @@ -8846,6 +9832,21 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 完æˆè´¨è¯¢å“应失败,PCSC 错误ç ä¸ºï¼š%1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + (NFC)%1 [%2] - æ’æ§½ %3,%4 + + + Press + USB Challenge-Response Key interaction request + 按键 + + + Passive + USB Challenge-Response Key no interaction required + 被动 + YubiKeyInterfaceUSB @@ -8853,14 +9854,6 @@ Example: JBSWY3DPEHPK3PXP Unknown 未知 - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] é…ç½®æ’æ§½ - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] 质询å“应 - æ’æ§½ %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8875,10 +9868,6 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. YubiKey USB 接å£å°šæœªåˆå§‹åŒ–。 - - Hardware key is currently in use. - 当剿­£åœ¨ä½¿ç”¨ç¡¬ä»¶å¯†é’¥ã€‚ - Could not find hardware key with serial number %1. Please plug it in to continue. 找ä¸åˆ°åºåˆ—å·ä¸º %1 的硬件密钥。请æ’å…¥åŽç»§ç»­ã€‚ @@ -8895,5 +9884,15 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 质询å“应失败,错误为:%1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + %1 [%2] - æ’æ§½ %3 + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + %1 [%2] - æ’æ§½ %3,%4 + \ No newline at end of file diff --git a/share/translations/keepassxc_zh_TW.ts b/share/translations/keepassxc_zh_TW.ts index 73d3f5f51..68e9a95ea 100644 --- a/share/translations/keepassxc_zh_TW.ts +++ b/share/translations/keepassxc_zh_TW.ts @@ -80,6 +80,10 @@ Details 詳情 + + Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. + 在請求客戶端與 KeePassXC åŒæ™‚åŸ·è¡ŒæœŸé–“ï¼Œæ‚¨çš„é¸æ“‡æœƒè¢«è¨˜ä½ã€‚ + Remember è¨˜ä½ @@ -88,10 +92,6 @@ Allow Selected å…è¨±æ‰€é¸ - - Your decision will be remembered for the duration while both the requesting client AND KeePassXC are running. - 在請求客戶端與 KeePassXC åŒæ™‚åŸ·è¡ŒæœŸé–“ï¼Œæ‚¨çš„é¸æ“‡æœƒè¢«è¨˜ä½ã€‚ - Deny All && Future ç¦æ­¢ä¹‹å¾Œæ‰€æœ‰ @@ -122,6 +122,10 @@ Use OpenSSH 使用 OpenSSH + + Use both agents + åŒæ™‚ä½¿ç”¨å…©ç¨®ä»£ç† + SSH_AUTH_SOCK override SSH_AUTH_SOCK 覆蓋值 @@ -150,10 +154,6 @@ SSH Agent connection is working! SSH 代ç†é€£ç·šæ­£åœ¨é‹ä½œï¼ - - Use both agents - åŒæ™‚ä½¿ç”¨å…©ç¨®ä»£ç† - ApplicationSettingsWidget @@ -169,6 +169,10 @@ Security 安全 + + This setting cannot be enabled when minimize on unlock is enabled. + 如果啟用解鎖時最å°åŒ–,則無法啟用此設置。 + Access error for config file %1 設定檔 %1 å­˜å–錯誤 @@ -256,6 +260,10 @@ Remember previously used databases 記ä½ä¹‹å‰ä½¿ç”¨éŽçš„資料庫 + + recent files + 個最近檔案 + Load previously open databases on startup 啟動時載入之å‰é–‹å•Ÿçš„資料庫 @@ -289,7 +297,7 @@ will expire within On database unlock, show entries that... - å°‡éŽæœŸæ–¼ + å°‡éŽæœŸæ–¼ File Management @@ -408,6 +416,10 @@ Toolbar button style: 工具列按鈕樣å¼ï¼š + + Show passwords in color + 密碼以彩色顯示 + Use monospaced font for notes 備註使用等寛字體 @@ -454,7 +466,7 @@ Hide expired entries from Auto-Type - 從自動輸入隱è—å·²éŽæœŸçš„é …ç›® + 從自動輸入隱è—éŽæœŸçš„é …ç›® Re-lock previously locked database after performing Auto-Type @@ -582,6 +594,10 @@ Use DuckDuckGo service to download website icons 使用 DuckDuckGo æœå‹™ä¸‹è¼‰ç¶²ç«™åœ–示 + + Hide TOTP in the entry preview panel + éš±è—é …ç›®é è¦½é¢æ¿ä¸Šçš„ TOTP + AutoType @@ -625,6 +641,10 @@ Very long delay detected, max is %1: %2 嵿¸¬åˆ°éŽé•·çš„å»¶é²ï¼Œæœ€å¤§å€¼ç‚º %1: %2 + + Entry does not have attribute for PICKCHARS: %1 + é …ç›®ä¸åŒ…å«ç”¨æ–¼ PICKCHARS 的屬性:%1 + Invalid conversion type: %1 無效的轉æ›é¡žåž‹: %1 @@ -804,13 +824,13 @@ Ctrl+4 - 使用虛擬éµç›¤ï¼ˆåƒ…é™ Windows)</p> Disable for this site å°æ­¤ç¶²ç«™åœç”¨ + + Undo + 撤銷 + BrowserEntrySaveDialog - - KeePassXC-Browser Save Entry - KeePassXC ç€è¦½å™¨æ“´å……ä¿å­˜é …ç›® - Ok 確定 @@ -825,13 +845,70 @@ Please select the correct database for saving credentials. 您有數個開啟的資料庫。 è«‹é¸æ“‡è¦ä¿å­˜æ†‘證的資料庫。 + + KeePassXC - Select Database + KeePassXC - 鏿“‡è³‡æ–™åº« + + + + BrowserPasskeysConfirmationDialog + + Cancel + å–æ¶ˆ + + + Update + æ›´æ–° + + + Authenticate + èªè­‰ + + + Register new + 新註冊 + + + Register + 註冊 + + + Timeout in <b>%n</b> seconds... + 在 <b>%n</b> ç§’å¾ŒéŽæœŸâ€¦ + + + Do you want to register Passkey for: + 是å¦è¦è¨»å†Šé€šè¡Œå¯†é‘°è‡³ï¼š + + + Existing Passkey found. +Do you want to register a new Passkey for: + 找到已存在的通行密鑰。 +是å¦è¦è¨»å†Šæ–°çš„通行密鑰至: + + + Select the existing Passkey and press Update to replace it. + 鏿“‡å·²å­˜åœ¨çš„通行密鑰並按下「更新ã€ä¾†æ›¿æ›ã€‚ + + + Authenticate Passkey credentials for: + èªè­‰é€šè¡Œå¯†é‘°æ†‘證: + + + Relying Party: %1 + ä¾è³´æ–¹ï¼š%1 + + + Username: %1 + 使用者å稱:%1 + + + KeePassXC - Passkey credentials + KeePassXC - 通行密鑰憑證 + BrowserService - - KeePassXC: Create a new group - KeePassXC: 建立新群組 - A request for creating a new group "%1" has been received. Do you want to create this group? @@ -840,10 +917,6 @@ Do you want to create this group? 是å¦è¦å»ºç«‹æ­¤ç¾¤çµ„? - - KeePassXC: New key association request - KeePassXC: 新的金鑰關è¯è¦æ±‚ - You have received an association request for the following database: %1 @@ -860,28 +933,16 @@ chrome-laptop。 Save and allow access 儲存並å…è¨±å­˜å– - - KeePassXC: Overwrite existing key? - KeePassXC: è¦†è“‹ç¾æœ‰é‡‘鑰? - A shared encryption key with the name "%1" already exists. Do you want to overwrite it? 已存在å稱為「%1ã€çš„共用加密金鑰。 是å¦è¦è¦†è“‹å®ƒï¼Ÿ - - KeePassXC: Update Entry - KeePassXC: æ›´æ–°é …ç›® - Do you want to update the information in %1 - %2? 是å¦è¦æ›´æ–° %1 - %2 內的資訊? - - KeePassXC: Delete entry - KeePassXC: 刪除項目 - A request for deleting entry "%1" has been received. Do you want to delete the entry? @@ -891,50 +952,46 @@ Do you want to delete the entry? - Converting attributes to custom data… - 正在轉æ›å±¬æ€§è‡³è‡ªå®šç¾©è³‡æ–™â€¦ + %1 (Passkey) + %1(通行密鑰) - Abort - 中止 + Entry already has a Passkey. +Do you want to overwrite the Passkey in %1 - %2? + 項目已有一組通行密鑰。 +是å¦è¦†è“‹ %1 - %2 中的通行密鑰? - KeePassXC: Converted KeePassHTTP attributes - KeePassXC: è½‰æ› KeePassHTTP 屬性 + KeePassXC - Create a new group + KeePassXC - 建立新群組 - Successfully converted attributes from %1 entry(s). -Moved %2 keys to custom data. - å·²æˆåŠŸè½‰æ› %1 個項目的屬性。 -已移動 %2 組金鑰至自定義資料。 - - - Successfully moved %n keys to custom data. - å·²æˆåŠŸç§»å‹• %n 組金鑰至自定義資料。 + Disable + åœç”¨ - KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: 找ä¸åˆ°æ“有 KeePassHTTP å±¬æ€§çš„é …ç›®ï¼ + KeePassXC - Overwrite existing key? + KeePassXC - è¦†è“‹ç¾æœ‰é‡‘鑰? - The active database does not contain an entry with KeePassHTTP attributes. - ç›®å‰ä½œç”¨çš„è³‡æ–™åº«ä¸­æ²’æœ‰ä»»ä½•é …ç›®æ“æœ‰ KeePassHTTP 屬性。 + KeePassXC - Update Passkey + KeePassXC - 更新通行密鑰 - Don't show this warning again - ä¸å†é¡¯ç¤ºæ­¤è­¦å‘Š + KeePassXC - Update Entry + KeePassXC - æ›´æ–°é …ç›® - KeePassXC: Legacy browser integration settings detected - KeePassXC: 嵿¸¬åˆ°éŽæ™‚çš„ç€è¦½å™¨æ•´åˆè¨­å®š + KeePassXC - Delete entry + KeePassXC - 刪除項目 - Your KeePassXC-Browser settings need to be moved into the database settings. -This is necessary to maintain your current browser connections. -Would you like to migrate your existing settings now? - 需è¦å°‡æ‚¨çš„ KeePassXC ç€è¦½å™¨æ“´å……設定移動至資料庫設定。 -é€™æ˜¯ç‚ºäº†ä¿æŒæ‚¨ç›®å‰çš„ç€è¦½å™¨é€£çµã€‚ -您是å¦è¦ç¾åœ¨ç§»è½‰æ—¢æœ‰è¨­å®šï¼Ÿ + KeePassXC - New key association request + KeePassXC - 新的金鑰關è¯è«‹æ±‚ + + + Passkey + 通行密鑰 @@ -1018,7 +1075,7 @@ Would you like to migrate your existing settings now? Returns expired credentials. String [expired] is added to the title. - å¯å›žå‚³éŽæœŸçš„æ†‘證。標題會加入 [å·²éŽæœŸ] 字串。 + å¯å›žå‚³éŽæœŸçš„æ†‘證。標題會加入 [éŽæœŸ] 字串。 Allow returning expired credentials @@ -1142,14 +1199,6 @@ Would you like to migrate your existing settings now? Please see special instructions for browser extension use below è«‹åƒé–±ä»¥ä¸‹çš„具體指示,學習如何使用ç€è¦½å™¨æ“´å±• - - <b>Error:</b> The custom proxy location cannot be found!<br/>Browser integration WILL NOT WORK without the proxy application. - <b>錯誤:</b>找ä¸åˆ°è‡ªå®šç¾©çš„代ç†ä½ç½®ï¼<br/>沒有代ç†ç¨‹å¼ï¼Œç€è¦½å™¨æ•´åˆå°‡ ç„¡ 法 é‹ ä½œ 。 - - - <b>Warning:</b> The following options can be dangerous! - <b>警告:</b>以下é¸é …å­˜åœ¨ä¸€å®šé¢¨éšªï¼ - Executable Files å¯åŸ·è¡Œæª”案 @@ -1166,6 +1215,38 @@ Would you like to migrate your existing settings now? Select native messaging host folder location 鏿“‡æœ¬åœ°æ¶ˆæ¯ä¸»æ©Ÿçš„資料夾ä½ç½® + + Allow keepassxc-proxy to list all entries with their title, URL and UUID in connected databases. + å…許 keepassxc-proxy 列出連çµè³‡æ–™åº«ä¸‹çš„æ‰€æœ‰é …ç›®ï¼ŒåŒ…å«æ¨™é¡Œã€URL 與 UUID + + + Allow limited access to all entries in connected databases (ignores site access restrictions) + å…許å°é€£çµè³‡æ–™åº«ä¸‹æ‰€æœ‰é …目的å—é™åˆ¶å­˜å–(忽略網站存å–é™åˆ¶ï¼‰ + + + <b>Warning:</b> Only adjust these settings if necessary. + <b>警告:</b>åªæœ‰åœ¨å¿…è¦æ™‚æ‰èª¿æ•´é€™äº›è¨­å®šã€‚ + + + The custom proxy location does not exist. + 自定義的代ç†ä½ç½®ä¸å­˜åœ¨ã€‚ + + + <b>Error:</b> The custom proxy location does not exist. Correct this in the advanced settings tab. + <b>錯誤:</b>自定義的代ç†ä½ç½®ä¸å­˜åœ¨ã€‚請至進階設定分é ä¿®æ­£å®ƒã€‚ + + + <b>Error:</b> The installed proxy executable is missing from the expected location: %1<br/>Please set a custom proxy location in the advanced settings or reinstall the application. + <b>錯誤:</b>代ç†çš„執行檔éºå¤±ï¼Œä¹‹å‰æ›¾å®‰è£æ–¼æ­¤ä½ç½®ï¼š%1<br/>請至進階設定調整自定義代ç†ä½ç½®ï¼Œæˆ–è€…é‡æ–°å®‰è£æ‡‰ç”¨ç¨‹åºã€‚ + + + Allows using insecure http://localhost with Passkeys for testing purposes. + å…許通行密鑰使用ä¸å®‰å…¨çš„ http://localhost 用於測試目的。 + + + Allow using localhost with Passkeys + å…許通行密鑰使用 localhost + CloneDialog @@ -1188,14 +1269,6 @@ Would you like to migrate your existing settings now? CsvImportWidget - - Import CSV fields - 匯入 CSV æ¬„ä½ - - - filename - 檔案å稱 - size, rows, columns 大å°ã€åˆ—ã€æ¬„ä½ @@ -1304,50 +1377,29 @@ Would you like to migrate your existing settings now? Column %1 æ¬„ä½ %1 - - Imported from CSV file - 已從 CSV 檔匯入 - - - Original data: - 原始資料: - - - Error(s) detected in CSV file! - 在 CSV æª”ä¸­åµæ¸¬åˆ°éŒ¯èª¤ï¼ - [%n more message(s) skipped] [è·³éŽé¡å¤– %n 項訊æ¯] - Error - 錯誤 + Failed to parse CSV file: %1 + - CSV import: writer has errors: -%1 - CSV 匯入:寫入器出錯: -%1 + Imported from CSV file: %1 + CsvParserModel - - %1, %2, %3 - file info: bytes, rows, columns - %1ã€%2ã€%3 - - - %n byte(s) - %n ä½å…ƒçµ„ - %n row(s) + CSV row count %n 列 %n column(s) + CSV column count %n å€‹æ¬„ä½ @@ -1422,40 +1474,10 @@ Backup database located at %2 Password field å¯†ç¢¼æ¬„ä½ - - Enter Additional Credentials (if any): - 輸入é¡å¤–的驗證資訊(如有需è¦ï¼‰ï¼š - - - Key File: - 金鑰檔: - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - <p>除了密碼,您還å¯ä»¥ä½¿ç”¨ä¸€ä»½è¢å¯†æª”案來加強資料庫的安全性。使用資料庫的安全設定å¯ä»¥ç”¢ç”Ÿè©²æª”案。</p><p>這個<strong>䏦䏿˜¯</strong>您的 *.kdbx 資料庫檔案ï¼<br>若您沒有金鑰檔案,則留空欄ä½ã€‚</p><p>點擊ç²å¾—更多資訊…</p> - - - Key file help - 金鑰檔案幫助 - Hardware key slot selection 硬體金鑰槽ä½é¸æ“‡ - - Hardware Key: - 硬體金鑰: - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - <p>您å¯ä»¥ä½¿ç”¨è«¸å¦‚ <strong>YubiKey</strong> 或 <strong>OnlyKey</strong> 等實體安全金鑰,åªè¦å®ƒå€‘æ“æœ‰å¯è¨­ç½® HMAC-SHA1 的槽ä½ã€‚</p> -<p>點擊ç²å¾—更多資訊…</p> - - - Hardware key help - 硬體金鑰幫助 - Key file to unlock the database 解鎖資料庫的金鑰檔案 @@ -1468,14 +1490,6 @@ Backup database located at %2 Browse… ç€è¦½â€¦ - - Refresh hardware tokens - 更新硬體令牌 - - - Refresh - æ›´æ–° - Unlock Database 解鎖資料庫 @@ -1538,14 +1552,6 @@ To prevent this error from appearing, you must go to "Database Settings / S Retry with empty password 以空白密碼é‡è©¦ - - Failed to authenticate with Windows Hello - Windows Hello 驗證失敗 - - - Failed to authenticate with Touch ID - Touch ID 驗證失敗 - Failed to open key file: %1 開啟金鑰檔案失敗:%1 @@ -1579,22 +1585,64 @@ To prevent this error from appearing, you must go to "Database Settings / S 無法使用資料庫檔案作為金鑰檔案 - You cannot use your database file as a key file. -If you do not have a key file, please leave the field empty. - 您ä¸èƒ½ä½¿ç”¨è³‡æ–™åº«ä½œç‚ºè‡ªå·±çš„金鑰檔案。 -若您沒有金鑰檔案,請將欄ä½ç•™ç©ºã€‚ + authenticate to access the database + 驗證以存å–資料庫 - Detecting hardware keys… - æ­£åœ¨åµæ¸¬ç¡¬é«”金鑰… + Failed to authenticate with Quick Unlock: %1 + 快速解鎖驗證失敗:%1 - No hardware keys detected - æœªåµæ¸¬åˆ°ç¡¬é«”金鑰 + Select Key File: + 鏿“‡é‡‘鑰檔案: - Select hardware key… - 鏿“‡ç¡¬é«”金鑰… + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + <p>除了密碼,您還å¯ä»¥ä½¿ç”¨ä¸€ä»½è¢å¯†æª”案來加強資料庫的安全性。此檔案å¯ä»¥é€éŽè³‡æ–™åº«çš„安全設定中生æˆã€‚</p><p>這<strong>䏿˜¯</strong>您的 *.kdbx 資料庫檔案ï¼</p> + + + Click to add a key file. + 點擊以加入金鑰檔案。 + + + <a href="#" style="text-decoration: underline">I have a key file</a> + <a href="#" style="text-decoration: underline">我有一份金鑰檔案</a> + + + Use hardware key [Serial: %1] + 使用硬體金鑰 [åºè™Ÿ: %1] + + + Use hardware key + 使用硬體金鑰 + + + Your database file is NOT a key file! +If you don't have a key file or don't know what that is, you don't have to select one. + 您的資料庫檔案「ä¸èƒ½ã€ä½œç‚ºé‡‘é‘°æª”æ¡ˆï¼ +è‹¥æ‚¨æ²’æœ‰ä»»ä½•é‡‘é‘°æª”æ¡ˆï¼Œæˆ–ä¸æ¸…楚那是什麼,å¯ä»¥é¸æ“‡ä¸ä½¿ç”¨ã€‚ + + + KeePassXC database file selected + KeePassXC è³‡æ–™åº«æª”æ¡ˆè¢«é¸æ“‡ + + + The file you selected looks like a database file. +A database file is NOT a key file! + +Are you sure you want to continue with this file?. + æ‚¨é¸æ“‡çš„æª”案似乎是一份資料庫檔。 +資料庫檔「ä¸èƒ½ã€ä½œç‚ºé‡‘é‘°æª”æ¡ˆï¼ + +您確定è¦ä»¥æ­¤æª”案繼續? + + + No hardware keys found. + 找ä¸åˆ°ç¡¬é«”金鑰。 + + + Refresh Hardware Keys + 刷新硬體金鑰 @@ -1606,10 +1654,6 @@ If you do not have a key file, please leave the field empty. DatabaseSettingsDialog - - Advanced Settings - 進階設定 - General 通用 @@ -1641,18 +1685,6 @@ If you do not have a key file, please leave the field empty. KeePassXC-Browser settings KeePassXC ç€è¦½å™¨æ“´å……設定 - - Convert KeePassHTTP data - è½‰æ› KeePassHTTP 資料 - - - Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data - 將舊版 KeePassHTTP 屬性轉æ›ç‚ºç›¸å®¹æ–¼ KeePassXC-Browser 的自定義資料 - - - Refresh database root group ID - 更新資料庫的根群組 ID - Disconnect all browsers 中斷與所有ç€è¦½å™¨çš„é€£çµ @@ -1661,6 +1693,10 @@ If you do not have a key file, please leave the field empty. Forget all site-specific settings on entries éºå¿˜é …目的網站個別設定 + + Refresh database root group ID + 刷新資料庫的根群組 ID + Stored keys å·²ä¿å­˜é‡‘é‘° @@ -1709,18 +1745,10 @@ This may prevent connection to the browser plugin. 真的è¦ä¸­æ–·èˆ‡æ‰€æœ‰ç€è¦½å™¨çš„連çµï¼Ÿ 這å¯èƒ½å°Žè‡´èˆ‡ç€è¦½å™¨æ’件的連çµå—阻。 - - KeePassXC: No keys found - KeePassXC: 找ä¸åˆ°é‡‘é‘° - No shared encryption keys found in KeePassXC settings. 在 KeePassXC 設定中找ä¸åˆ°å…±äº«åŠ å¯†é‡‘é‘°ã€‚ - - KeePassXC: Removed keys from database - KeePassXC: 從資料庫移除金鑰 - Successfully removed %n encryption key(s) from KeePassXC settings. æˆåŠŸå¾ž KeePassXC 設定中移除 %n 組加密金鑰。 @@ -1739,42 +1767,44 @@ Permissions to access entries will be revoked. Abort 中止 - - KeePassXC: Removed permissions - KeePassXC: å·²ç§»é™¤æ¬Šé™ - Successfully removed permissions from %n entry(s). æˆåŠŸå¾ž %n 個項目移除權é™ã€‚ - - KeePassXC: No entry with permissions found! - KeePassXC: 找ä¸åˆ°æ“有權é™çš„é …ç›®ï¼ - The active database does not contain an entry with permissions. ç›®å‰ä½œç”¨çš„è³‡æ–™åº«ä¸­æ²’æœ‰ä»»ä½•é …ç›®æ“æœ‰æ¬Šé™ã€‚ - - Move KeePassHTTP attributes to custom data - 移動 KeePassHTTP 屬性至自定義資料 - - - Do you really want to convert all legacy browser integration data to the latest standard? -This is necessary to maintain compatibility with the browser plugin. - 真的è¦å°‡æ‰€æœ‰éŽæ™‚çš„ç€è¦½å™¨æ•´åˆè³‡æ–™è½‰æ›è‡³æœ€æ–°æ¨™æº–? -這是為了維æŒèˆ‡ç€è¦½å™¨æ’件的相容性。 - Refresh database ID - 更新資料庫 ID + 刷新資料庫 ID Do you really want refresh the database ID? This is only necessary if your database is a copy of another and the browser extension cannot connect. - çœŸçš„è¦æ›´æ–°è³‡æ–™åº«çš„ ID? + 真的è¦åˆ·æ–°è³‡æ–™åº«çš„ ID? åªæœ‰ç•¶è³‡æ–™åº«å±¬æ–¼å¦ä¸€ä»½è¤‡æœ¬ï¼Œä¸”ç€è¦½å™¨æ“´å……ç„¡æ³•é€£çµæ™‚ï¼Œæ‰æœ‰å¿…è¦é€²è¡Œã€‚ + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + 將舊版 KeePassHTTP 屬性轉æ›ç‚ºç›¸å®¹æ–¼ KeePassXC-Browser 的自定義資料 + + + No keys found + 未找到金鑰 + + + Removed keys from database + 從資料庫移除金鑰 + + + Removed permissions + å·²ç§»é™¤æ¬Šé™ + + + No entry with permissions found! + 找ä¸åˆ°æ“有權é™çš„é …ç›®ï¼ + DatabaseSettingsWidgetDatabaseKey @@ -1814,6 +1844,18 @@ Are you sure you want to continue without a password? Failed to change database credentials 更改資料庫憑證失敗 + + Weak password + 弱密碼 + + + You must enter a stronger password to protect your database. + 您必須輸入更強的密碼來ä¿è­·è³‡æ–™åº«ã€‚ + + + This is a weak password! For better protection of your secrets, you should choose a stronger password. + 這是一個弱密碼ï¼ç‚ºäº†æ›´å¥½åœ°ä¿è­·æ‚¨çš„ç¥•å¯†ï¼Œæ‚¨æ‡‰è©²é¸æ“‡æ›´å¼·çš„密碼。 + DatabaseSettingsWidgetEncryption @@ -1821,14 +1863,6 @@ Are you sure you want to continue without a password? Decryption Time: 解密時間: - - Change existing decryption time - 更改目å‰è§£å¯†æ™‚é–“ - - - Change - 更改 - Decryption time in seconds 解密時間,以秒計算 @@ -1909,11 +1943,6 @@ Are you sure you want to continue without a password? KDBX 3 KDBX 3 - - unchanged - Database decryption time is unchanged - ä¸è®Š - Number of rounds too high Key transformation rounds @@ -1966,6 +1995,18 @@ If you keep this number, your database will not be protected from brute force at Threads for parallel execution (KDF settings) 執行緒 + + Encryption Settings: + 加密設定: + + + Basic + 基本 + + + Advanced + 進階 + DatabaseSettingsWidgetFdoSecrets @@ -2024,18 +2065,10 @@ If you keep this number, your database will not be protected from brute force at Maximum number of history items per entry æ¯å€‹é …目的最大歷å²è¨˜éŒ„數 - - Max. history items: - 最大歷å²è¨˜éŒ„數: - Maximum size of history per entry æ¯å€‹é …目的最大歷å²è¨˜éŒ„å¤§å° - - Max. history size: - 最大歷å²è¨˜éŒ„大å°ï¼š - MiB MiB @@ -2066,6 +2099,64 @@ This action is not reversible. (old) (舊) + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. + 儲存此設定,或編輯一個項目時, +將從時間最舊的歷å²é …開始移除, +直到該項目å¯ä¿ç•™çš„æ­·å²é … +ä¸è¶…éŽæŒ‡å®šçš„æ•¸é‡ç‚ºæ­¢ã€‚ + + + Limit the amount of history items per entry to: + å°‡æ¯å€‹é …ç›®çš„æ­·å²æ•¸é™åˆ¶åœ¨ï¼š + + + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. + 儲存此設定,或編輯一個項目時, +將從時間最舊的歷å²é …開始移除, +直到該項目所有歷å²é …的使用空間 +ä¸è¶…éŽæŒ‡å®šçš„大å°ç‚ºæ­¢ã€‚ + + + Limit the total size of history items per entry to: + å°‡æ¯å€‹é …目的歷å²ç¸½å¤§å°é™åˆ¶åœ¨ï¼š + + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + 將項目移動至「回收桶ã€ç¾¤çµ„ +è€Œä¸æ˜¯ç›´æŽ¥å¾žè³‡æ–™åº«ä¸­åˆªé™¤å®ƒå€‘。 +在「回收桶ã€åˆªé™¤çš„項目將 +直接移除自資料庫。 + + + Autosave delay since last change + ä¿®æ”¹å¾Œè‡ªå‹•å„²å­˜å»¶é² + + + Autosave delay + è‡ªå‹•å„²å­˜å»¶é² + + + Autosave delay since last change in minutes + 修改後自動儲存延é²ï¼Œä»¥åˆ†é˜è¨ˆ + + + min + 分 + + + Autosave delay since last change checkbox + 自動儲存延é²å‹¾é¸æ¡† + DatabaseSettingsWidgetKeeShare @@ -2127,7 +2218,7 @@ This action is not reversible. Custom Icons Are In Use - 正在使用自定義圖示 + 正在使用的自定義圖示 All custom icons are in use by at least one entry or group. @@ -2193,26 +2284,10 @@ This is definitely a bug, please report it to the developers. CSV file CSV 檔 - - Select CSV file - 鏿“‡ CSV 檔 - Merge database åˆä½µè³‡æ–™åº« - - KeePass 1 database - KeePass 1 資料庫 - - - Open KeePass 1 database - 開啟 KeePass 1 資料庫 - - - Open OPVault - 開啟 OPVault - Export database to CSV file 匯出資料庫至 CSV 檔 @@ -2225,6 +2300,18 @@ This is definitely a bug, please report it to the developers. Writing the HTML file failed. 寫入 HTML 檔失敗。 + + Export database to XML file + 匯出資料庫至 XML 檔 + + + XML file + XML 檔 + + + Writing the XML file failed + 寫入 XML 檔失敗 + Export Confirmation åŒ¯å‡ºç¢ºèª @@ -2233,15 +2320,6 @@ This is definitely a bug, please report it to the developers. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? 您正è¦åŒ¯å‡ºè³‡æ–™åº«è‡³æœªåŠ å¯†çš„æª”æ¡ˆã€‚æ‚¨çš„å¯†ç¢¼åŠæ•感資料將ä¸å—任何ä¿è­·ï¼æ‚¨ç¢ºå®šè¦ç¹¼çºŒé€²è¡Œï¼Ÿ - - New Database - 新資料庫 - - - %1 [New Database] - Database tab name modifier - %1 [新資料庫] - %1 [Locked] Database tab name modifier @@ -2251,8 +2329,8 @@ This is definitely a bug, please report it to the developers. DatabaseWidget - Database Tags - 資料庫標籤 + Searches and Tags + æœç´¢èˆ‡æ¨™ç±¤ Searching… @@ -2300,7 +2378,11 @@ This is definitely a bug, please report it to the developers. Expired entries - å·²éŽæœŸé …ç›® + éŽæœŸé …ç›® + + + Entries expiring within %1 day(s) + 將在 %1 å¤©å…§éŽæœŸçš„é …ç›® No current database. @@ -2326,6 +2408,18 @@ This is definitely a bug, please report it to the developers. No Results ç„¡çµæžœ + + Save + 儲存 + + + Enter a unique name or overwrite an existing search from the list: + 輸入唯一å稱,或是覆寫清單中已存在的æœç´¢ï¼š + + + Save Search + 儲存æœç´¢ + Lock Database? 鎖定資料庫? @@ -2416,9 +2510,14 @@ Disable safe saves and try again? Could not find database file: %1 未找到資料庫檔案:%1 - - Entries expiring within %1 day(s) - 將在 %1 å¤©å…§éŽæœŸçš„é …ç›® + + New Database + 新資料庫 + + + %1 [New Database] + Database tab name modifier + %1 [新資料庫] @@ -2561,6 +2660,10 @@ Would you like to correct it? Hide éš±è— + + %n hour(s) + %n å°æ™‚ + %n week(s) %n 個禮拜 @@ -2573,10 +2676,6 @@ Would you like to correct it? %n year(s) %n å¹´ - - %n hour(s) - %n å°æ™‚ - EditEntryWidgetAdvanced @@ -2695,10 +2794,20 @@ Would you like to correct it? Add new window association åŠ å…¥æ–°çš„è¦–çª—é—œè¯ + + + + Add item + + + Remove selected window association 移除所é¸çš„è¦–çª—é—œè¯ + + - + Remove item + - + Window title: 視窗標題: @@ -2723,16 +2832,6 @@ Would you like to correct it? Custom Auto-Type sequence for this window 自定義此視窗的自動輸入åºåˆ— - - + - Add item - + - - - - - Remove item - - - EditEntryWidgetBrowser @@ -2834,22 +2933,10 @@ Would you like to correct it? Notes field å‚™è¨»æ¬„ä½ - - Toggle the checkbox to reveal the notes section. - åˆ‡æ›æ ¸å–方塊以æ­ç¤ºå‚™è¨»æ¬„ä½ã€‚ - Username field 使用者åç¨±æ¬„ä½ - - Toggle notes visible - 切æ›å‚™è¨»å¯è¦‹æ€§ - - - Notes: - 附註: - Expiration field éŽæœŸæ¬„ä½ @@ -2866,14 +2953,6 @@ Would you like to correct it? Presets é å…ˆå®šç¾© - - Password: - 密碼: - - - URL: - URL: - Url field URL æ¬„ä½ @@ -2882,38 +2961,54 @@ Would you like to correct it? Download favicon for URL 下載 URL 的網站圖標 - - Title: - 標題: - Title field æ¨™é¡Œæ¬„ä½ - - Username: - 使用者å稱: - Password field å¯†ç¢¼æ¬„ä½ Toggle expiration - 切æ›éŽæœŸæ™‚é–“ - - - Expires: - éŽæœŸï¼š - - - Tags: - 標籤: + 啟用或åœç”¨éŽæœŸ Tags list 標籤清單 + + &Username: + 使用者å稱(&U): + + + &Title: + 標題(&T): + + + &Password: + 密碼(&P): + + + UR&L: + UR&L: + + + &Notes: + 備註(&N): + + + Toggle notes visibility + 顯示或隱è—備註 + + + T&ags: + 標籤(&A): + + + &Expires: + éŽæœŸæ™‚é–“(&E): + EditEntryWidgetSSHAgent @@ -2953,19 +3048,6 @@ Would you like to correct it? Private key ç§å¯†é‡‘é‘° - - External file - 外部檔案 - - - Browser for key file - ç€è¦½é‡‘鑰檔案 - - - Browse… - Button for opening file dialog - ç€è¦½â€¦ - Attachment 附件 @@ -2982,6 +3064,23 @@ Would you like to correct it? Remove from agent 從代ç†åˆªé™¤ + + External file + 外部檔案 + + + Browser for key file + ç€è¦½é‡‘鑰檔案 + + + Browse… + Button for opening file dialog + ç€è¦½â€¦ + + + Generate + 產生 + Select attachment file 鏿“‡é™„件檔案 @@ -3017,10 +3116,6 @@ Would you like to correct it? Icon 圖示 - - Browser Integration - ç€è¦½å™¨æ•´åˆ - Properties 屬性 @@ -3037,6 +3132,10 @@ Would you like to correct it? Group has unsaved changes 群組有尚未儲存的更改 + + Browser Integration + ç€è¦½å™¨æ•´åˆ + Enable 啟用 @@ -3052,10 +3151,6 @@ Would you like to correct it? EditGroupWidgetBrowser - - Edit Group - 編輯群組 - These settings affect to the group's behaviour with the browser extension. 這些設定影響了群組在ç€è¦½å™¨æ“´å……下的行為。 @@ -3092,6 +3187,22 @@ Would you like to correct it? Do not use HTTP Auth toggle for this and sub groups 切æ›ç›®å‰ç¾¤çµ„與其å­ç¾¤çµ„是å¦ä¸ä½¿ç”¨ HTTP èªè­‰ + + Omit WWW subdomain from matching: + åŒ¹é…æ™‚çœç•¥ WWW å­åŸŸå: + + + Omit WWW subdomain from matching toggle for this and sub groups + 切æ›ç›®å‰ç¾¤çµ„與其å­ç¾¤çµ„是å¦åœ¨åŒ¹é…時çœç•¥ WWW å­åŸŸå + + + Restrict matching to given browser key: + é™åˆ¶èˆ‡æŒ‡å®šçš„ç€è¦½å™¨é‡‘鑰匹é…: + + + Restrict matching to given browser key toggle for this and sub groups + é™åˆ¶ç¾¤çµ„和其å­ç¾¤çµ„與指定的ç€è¦½å™¨é‡‘é‘°åŒ¹é… + EditGroupWidgetKeeShare @@ -3211,7 +3322,7 @@ Supported extensions are: %1. Toggle expiration - 切æ›éŽæœŸæ™‚é–“ + 啟用或åœç”¨éŽæœŸ Expires: @@ -3243,7 +3354,7 @@ Supported extensions are: %1. Notes: - 附註: + 備註: Default auto-type sequence field @@ -3324,10 +3435,6 @@ Supported extensions are: %1. Unable to fetch favicon. 無法擷å–網站圖標。 - - You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - 您å¯ä»¥åˆ°ã€Œå·¥å…·ã€->「設定ã€->「安全ã€å•Ÿç”¨ DuckDuckGo 的網站圖示æœå‹™ - Existing icon selected. 鏿“‡äº†å·²å­˜åœ¨çš„圖示。 @@ -3360,6 +3467,10 @@ Supported extensions are: %1. The following icon(s) failed: 以下圖示失敗: + + You can enable the DuckDuckGo website icon service under Application Settings -> Security + 您å¯ä»¥åœ¨ã€Œæ‡‰ç”¨ç¨‹å¼è¨­å®šã€->「安全ã€å•Ÿç”¨ DuckDuckGo 網站圖示æœå‹™ + EditWidgetProperties @@ -3796,6 +3907,10 @@ Error: %1 Has TOTP 有 TOTP + + Background Color + 背景é¡è‰² + EntryPreviewWidget @@ -3816,8 +3931,8 @@ Error: %1 密碼 - Notes - 備註 + URL + URL Expiration @@ -3836,8 +3951,8 @@ Error: %1 使用者å稱 - URL - URL + Notes + 備註 Advanced @@ -3887,6 +4002,10 @@ Error: %1 Never å¾žä¸ + + Double click to copy value + 雙擊å¯è¤‡è£½å€¼ + Enabled 啟用 @@ -3895,6 +4014,10 @@ Error: %1 Disabled åœç”¨ + + Double click to copy to clipboard + é›™æ“Šä»¥è¤‡è£½åˆ°å‰ªè²¼æ¿ + EntryURLModel @@ -3902,6 +4025,10 @@ Error: %1 Invalid URL 無效的 URL + + Duplicate URL + é‡è¤‡ URL + EntryView @@ -3917,6 +4044,10 @@ Error: %1 Reset to defaults é‡ç½®ç‚ºé è¨­å€¼ + + + %1 entry(s)... + + %1 é …ç›®... + ExportDialog @@ -4138,6 +4269,147 @@ You can enable the DuckDuckGo website icon service in the security section of th 正在下載網站圖標 (%1/%2)… + + ImportWizard + + Import Wizard + + + + + ImportWizardPageReview + + WizardPage + åš®å°Žé  + + + Entry count: %1 + + + + Group + 群組 + + + Title + 標題 + + + Username + 使用者å稱 + + + Password + 密碼 + + + Url + + + + + ImportWizardPageSelect + + Form + 表單 + + + Import File Selection + + + + Password: + 密碼: + + + Key File: + 金鑰檔: + + + Browse… + ç€è¦½â€¦ + + + Import Into: + + + + New Database + 新資料庫 + + + No unlocked databases available + + + + Existing Database: + + + + Import File: + + + + Comma Separated Values (.csv) + + + + 1Password Export (.1pux) + + + + 1Password Vault (.opvault) + + + + Bitwarden (.json) + + + + KeePass 1 Database (.kdb) + + + + Open OPVault + 開啟 OPVault + + + Select import file + + + + All files + 所有檔案 + + + Key files + 金鑰檔案 + + + Select key file + 鏿“‡é‡‘鑰檔案 + + + Comma Separated Values + + + + 1Password Export + + + + Bitwarden JSON Export + + + + 1Password Vault + + + + KeePass1 Database + + + KMessageWidget @@ -4572,17 +4844,6 @@ Line %2, column %3 無法打開ç§å¯†é‡‘é‘° - - KeePass1OpenWidget - - Import KeePass1 Database - 匯入 KeePass1 資料庫 - - - Unable to open the database. - 無法開啟資料庫。 - - KeePass1Reader @@ -4939,10 +5200,6 @@ Are you sure you want to continue with this file? &Recent Databases 最近的資料庫 (&R) - - &Import - 匯入 (&I) - &Export 匯出 (&E) @@ -4963,6 +5220,10 @@ Are you sure you want to continue with this file? TOTP TOTP + + Tags + 標籤 + &Groups 群組 (&G) @@ -5007,34 +5268,18 @@ Are you sure you want to continue with this file? &New Database… 新建資料庫 (&N)… - - Create a new database - 建立新資料庫 - &Merge From Database… 從資料庫åˆä½µ (&M)… - - Merge from another KDBX database - 與其他 KDBX 資料庫åˆä½µ - &New Entry… 新建項目 (&N)… - - Add a new entry - 加入新項目 - &Edit Entry… 編輯項目 (&E)… - - View or edit entry - 檢視或編輯項目 - &Delete Entry… 刪除項目 (&D)… @@ -5043,10 +5288,6 @@ Are you sure you want to continue with this file? &New Group… 新建群組 (&N)… - - Add a new group - 加入新群組 - &Edit Group… 編輯群組 (&E)… @@ -5079,18 +5320,10 @@ Are you sure you want to continue with this file? Database &Reports… 資料庫報告 (&R)… - - Statistics, health check, etc. - 資料統計與å¥åº·æª¢æŸ¥ç­‰ - &Database Settings… 資料庫設定 (&D)… - - Database settings - 資料庫設定 - &Clone Entry… 複製項目 (&C)… @@ -5099,34 +5332,18 @@ Are you sure you want to continue with this file? Move u&p 上移 (&P) - - Move entry one step up - 將項目å‘上移動一步 - Move do&wn 下移 (&W) - - Move entry one step down - 將項目å‘下移動一步 - Copy &Username 複製使用者å稱 (&U) - - Copy username to clipboard - 將使用者å稱複製到剪貼簿 - Copy &Password 複製密碼 (&P) - - Copy password to clipboard - 將密碼複製到剪貼簿 - &Settings 設定 (&S) @@ -5160,25 +5377,13 @@ Are you sure you want to continue with this file? 標題 (&T) - Copy title to clipboard - 將標題複製到剪貼簿 - - - &URL - &URL - - - Copy URL to clipboard - å°‡ URL 複製到剪貼簿 + Copy &URL + 複製 &URL &Notes 備註 (&N) - - Copy notes to clipboard - 將備註複製到剪貼簿 - &CSV File… &CSV 檔… @@ -5191,26 +5396,14 @@ Are you sure you want to continue with this file? KeePass 1 Database… KeePass 1 資料庫… - - Import a KeePass 1 database - 匯入 KeePass 1 資料庫 - 1Password Vault… 1Password ä¿éšªåº«â€¦ - - Import a 1Password Vault - 匯入 1Password ä¿éšªåº« - CSV File… CSV 檔… - - Import a CSV file - 匯入 CSV 檔案 - Show TOTP 顯示 TOTP @@ -5227,6 +5420,10 @@ Are you sure you want to continue with this file? Copy &TOTP 複製 &TOTP + + Copy Password and TOTP + 複製密碼與 TOTP + E&mpty recycle bin 清空回收桶 (&M) @@ -5245,16 +5442,12 @@ Are you sure you want to continue with this file? Open Getting Started Guide - é–‹å•Ÿã€Œé–‹å§‹ä½¿ç”¨ã€æŒ‡å— + æ‰“é–‹ã€Œé–‹å§‹ä½¿ç”¨ã€æŒ‡å— &Online Help 線上幫助 (&O) - - Go to online documentation - å‰å¾€ç·šä¸Šæ–‡ä»¶ - &User Guide ä½¿ç”¨è€…æŒ‡å— (&U) @@ -5281,7 +5474,7 @@ Are you sure you want to continue with this file? Compact Mode - ç·Šç·»æ¨¡å¼ + ç·Šæ¹Šæ¨¡å¼ Automatic @@ -5323,6 +5516,10 @@ Are you sure you want to continue with this file? Clone Group... 複製群組... + + &XML File… + &XML 檔… + Clear history 清除歷å²è¨˜éŒ„ @@ -5355,6 +5552,10 @@ We recommend you use the AppImage available on our downloads page. 警告:您的 Qt 版本å¯èƒ½æœƒå°Žè‡´ KeePassXC 與螢幕éµç›¤å´©æ½°ã€‚ 建議您使用我們下載é é¢ä¸Šæä¾›çš„ AppImage。 + + No Tags + 無標籤 + Restore Entry(s) 還原項目 @@ -5383,6 +5584,10 @@ We recommend you use the AppImage available on our downloads page. Quit KeePassXC 退出 KeePassXC + + %1 Entry(s) + %1 個項目 + Please present or touch your YubiKey to continue… 請感應或接觸您的 YubiKey 以繼續… @@ -5395,6 +5600,274 @@ We recommend you use the AppImage available on our downloads page. You must restart the application to apply this setting. Would you like to restart now? å¿…é ˆé‡å•Ÿæ‡‰ç”¨ç¨‹å¼ä¾†å¥—用此設定。您是å¦è¦ç¾åœ¨é‡æ–°å•Ÿå‹•? + + Allow Screen Capture + å…許螢幕截圖 + + + 1Password 1PUX... + + + + Import a 1Password 1PUX file + + + + Import… + + + + Passkeys… + 通行密鑰… + + + Import Passkey + 匯入通行密鑰 + + + Quit Application + é€€å‡ºæ‡‰ç”¨ç¨‹å¼ + + + Open About Dialog + 打開關於å°è©±æ¡† + + + Open Database + 開啟資料庫 + + + Create Database + 建立資料庫 + + + Merge From Database + 從資料庫åˆä½µ + + + Create Entry + 建立項目 + + + Edit Entry + 編輯項目 + + + Delete Entry + 刪除項目 + + + Create Group + 建立群組 + + + Edit Group + 編輯群組 + + + Delete Group + 刪除群組 + + + Download All Favicons + 下載所有網站圖標 + + + Sort Groups A-Z + 按 A-Z 排åºåˆ†çµ„ + + + Sort Groups Z-A + 按 Z-A 排åºåˆ†çµ„ + + + Save Database As + 儲存資料庫為 + + + Show Database Security + 顯示資料庫安全 + + + Show Database Reports + 顯示資料庫報告 + + + Show Database Settings + 顯示資料庫設定 + + + Show Passkeys + 顯示通行密鑰 + + + Clone Entry + 複製項目 + + + Move Entry Up + å‘上移動項目 + + + Move Entry Down + å‘下移動項目 + + + Copy Username + 複製使用者å稱 + + + Copy Password + 複製密碼 + + + Show Application Settings + 顯示應用程å¼è¨­å®š + + + Show Password Generator + 顯示密碼產生器 + + + Perform Auto-Type: {USERNAME} + 執行自動輸入:{USERNAME} + + + Perform Auto-Type: {USERNAME}{ENTER} + 執行自動輸入:{USERNAME}{ENTER} + + + Perform Auto-Type: {PASSWORD} + 執行自動輸入:{PASSWORD} + + + Perform Auto-Type: {PASSWORD}{ENTER} + 執行自動輸入:{PASSWORD}{ENTER} + + + Perform Auto-Type: {TOTP} + 執行自動輸入:{TOTP} + + + Copy Title + 複製標題 + + + Copy URL + 複製 URL + + + Copy Notes + 複製備註 + + + Export to CSV + 匯出至 CSV + + + Export to HTML + 匯出至 HTML + + + Import KeePass1 Database + 匯入 KeePass1 資料庫 + + + Import 1Password Vault + 匯入 1Password ä¿éšªåº« + + + Import CSV File + 匯入 CSV 檔 + + + Show TOTP QR Code + 顯示 TOTP QR 碼 + + + Set up TOTP + 設定 TOTP + + + Empty Recycle Bin + 清空回收桶 + + + Open Donation Website + 打開æè´ˆç¶²ç«™ + + + Open Bug Report + 打開錯誤報告 + + + Open Online Documentation + 打開線上文件 + + + Open Keyboard Shortcuts Guide + 打開「éµç›¤å¿«æ·éµã€æŒ‡å— + + + Save Database Backup + 儲存資料庫備份 + + + SSH Agent: Add Key + SSH 代ç†ï¼šåР入金鑰 + + + SSH Agent: Remove Key + SSH 代ç†ï¼šç§»é™¤é‡‘é‘° + + + Toggle Compact Mode + 切æ›ç·Šæ¹Šæ¨¡å¼ + + + Set Theme: Automatic + 設定主題:自動 + + + Set Theme: Light + 設定主題:淺色 + + + Set Theme: Dark + 設定主題:深色 + + + Set Theme: Classic + 設定主題:經典 + + + Toggle Show Toolbar + 切æ›é¡¯ç¤ºå·¥å…·åˆ— + + + Toggle Show Preview Panel + 切æ›é¡¯ç¤ºé è¦½é¢æ¿ + + + Toggle Always on Top + 切æ›è¦–窗置頂顯示 + + + Toggle Hide Usernames + 切æ›éš±è—使用者å稱 + + + Toggle Hide Passwords + 切æ›éš±è—密碼 + + + Export to XML + 匯出至 XML + + + Toggle Allow Screen Capture + 切æ›å…許螢幕截圖 + ManageDatabase @@ -5452,26 +5925,6 @@ We recommend you use the AppImage available on our downloads page. Overwriting %1 [%2] 覆寫 %1 [%2] - - older entry merged from database "%1" - 較舊的項目從資料庫「%1ã€åˆä½µ - - - Adding backup for older target %1 [%2] - 為較舊的目標 %1 [%2] 添加備份 - - - Adding backup for older source %1 [%2] - ç‚ºè¼ƒèˆŠçš„ä¾†æº %1 [%2] 添加備份 - - - Reapplying older target entry on top of newer source %1 [%2] - åœ¨è¼ƒæ–°çš„ä¾†æº %1 [%2] ä¹‹ä¸Šé‡æ–°æ‡‰ç”¨è¼ƒèˆŠçš„目標項目 - - - Reapplying older source entry on top of newer target %1 [%2] - 在較新的目標 %1 [%2] ä¹‹ä¸Šé‡æ–°æ‡‰ç”¨è¼ƒèˆŠçš„來æºé …ç›® - Synchronizing from newer source %1 [%2] å¾žè¼ƒæ–°çš„ä¾†æº %1 [%2] åŒæ­¥ @@ -5531,14 +5984,6 @@ We recommend you use the AppImage available on our downloads page. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. 您å¯ä»¥åœ¨æ­¤èª¿æ•´è³‡æ–™åº«çš„加密設定。別擔心,之後也å¯ä»¥åˆ°è³‡æ–™åº«è¨­å®šæ›´æ”¹å®ƒå€‘。 - - Advanced Settings - 進階設定 - - - Simple Settings - 簡單設定 - NewDatabaseWizardPageDatabaseKey @@ -5619,15 +6064,6 @@ We recommend you use the AppImage available on our downloads page. é æœŸ %1 ä½å…ƒçµ„的純文本,實際為 %2 - - OpVaultOpenWidget - - Read Database did not produce an instance -%1 - 讀å–資料庫並未產生實體 -%1 - - OpVaultReader @@ -5701,6 +6137,10 @@ We recommend you use the AppImage available on our downloads page. Unknown cipher: %1 未知的密語:%1 + + AES-256/GCM is currently not supported + AES-256/GCM ç›®å‰ä¸å—æ”¯æ´ + Passphrase is required to decrypt this key 需è¦å¯†ç¢¼çŸ­èªžä»¥è§£å¯†æ­¤é‡‘é‘° @@ -5767,26 +6207,178 @@ We recommend you use the AppImage available on our downloads page. - PasswordEdit + OpenSSHKeyGenDialog - Passwords do not match - ä¸ç¬¦åˆçš„密碼 + SSH Key Generator + SSH 金鑰產生器 - Passwords match so far - ç›®å‰ç¬¦åˆçš„密碼 + Type + 類型 - Toggle Password (%1) - 切æ›å¯†ç¢¼ (%1) + Bits + ä½å…ƒ - Generate Password (%1) - 生æˆå¯†ç¢¼ (%1) + Comment + 註解 + + + + PasskeyExportDialog + + KeePassXC - Passkey Export + KeePassXC - 通行密鑰匯出 - Warning: Caps Lock enabled! - 警告:Caps Lock å·²å•Ÿç”¨ï¼ + Export the following Passkey entries. + 匯出以下通行密鑰項目。 + + + Filenames will be generated with title and .passkey file extension. + 檔案å稱將以標題與 .passkey 副檔å生æˆã€‚ + + + Export entries + 匯出項目 + + + Export Selected + åŒ¯å‡ºæ‰€é¸ + + + Cancel + å–æ¶ˆ + + + Export to folder + 匯出至資料夾 + + + + PasskeyExporter + + KeePassXC: Passkey Export + KeePassXC: 通行密鑰匯出 + + + File "%1.passkey" already exists. +Do you want to overwrite it? + + 檔案「%1.passkeyã€å·²ç¶“存在。 +是å¦è¦è¦†å¯«å®ƒï¼Ÿ + + + + Cannot open file + 無法開啟檔案 + + + Cannot open file "%1" for writing. + 無法開啟檔案「%1ã€ä»¥å¯«å…¥ã€‚ + + + Cannot write to file + 無法寫入檔案 + + + + PasskeyImportDialog + + KeePassXC - Passkey Import + KeePassXC - 通行密鑰匯入 + + + Username: %1 + 使用者å稱:%1 + + + Group + 群組 + + + Database + 資料庫 + + + Import Passkey + 匯入通行密鑰 + + + Import + 匯入 + + + Cancel + å–æ¶ˆ + + + Import the following Passkey: + 匯入以下通行密鑰: + + + Entry + é …ç›® + + + Import the following Passkey to this entry: + 匯入以下通行密鑰到此項目: + + + Create new entry + 建立新項目 + + + Default Passkeys group (Imported Passkeys) + é è¨­é€šè¡Œå¯†é‘°ç¾¤çµ„(匯入的通行密鑰) + + + Relying Party: %1 + ä¾è³´æ–¹ï¼š%1 + + + + PasskeyImporter + + Passkey file + 通行密鑰檔案 + + + All files + 所有檔案 + + + Open Passkey file + 開啟通行密鑰檔案 + + + Cannot open file + 無法開啟檔案 + + + Cannot open file "%1" for reading. + 無法開啟檔案「%1ã€ä»¥è®€å–。 + + + Cannot import Passkey + 無法匯入通行密鑰 + + + Cannot import Passkey file "%1". Data is missing. + 無法匯入通行密鑰檔案「%1ã€ã€‚資料缺失。 + + + Cannot import Passkey file "%1". Private key is missing or malformed. + 無法匯入通行密鑰檔案「%1ã€ã€‚ç§é‘°ç¼ºå¤±æˆ–æ ¼å¼éŒ¯èª¤ã€‚ + + + Cannot import Passkey file "%1". +The following data is missing: +%2 + 無法匯入通行密鑰檔案「%1ã€ã€‚ +以下資料éºå¤±ï¼š +%2 @@ -6051,13 +6643,37 @@ We recommend you use the AppImage available on our downloads page. Entropy: %1 bit 資訊熵:%1 ä½å…ƒ + + Password Quality: %1 + 密碼å“質:%1 + + + Poor + Password quality + 極弱 + + + Weak + Password quality + 較弱 + + + Good + Password quality + 較好 + + + Excellent + Password quality + 極好 + Confirm Delete Wordlist 確èªåˆªé™¤è©žå½™è¡¨ Do you really want to delete the wordlist "%1"? - 真的è¦åˆªé™¤è©žå½™è¡¨ “%1"? + 真的è¦åˆªé™¤è©žå½™è¡¨ã€Œ%1ã€ï¼Ÿ Failed to delete wordlist @@ -6082,8 +6698,8 @@ We recommend you use the AppImage available on our downloads page. Wordlist "%1" already exists as a custom wordlist. Do you want to overwrite it? - 自定義的詞彙表 "%1" 已經存在。 -è¦è¦†å¯«å®ƒå—Ž? + 自定義的詞彙表「%1ã€å·²ç¶“存在。 +是å¦è¦è¦†å¯«å®ƒï¼Ÿ Failed to add wordlist @@ -6097,8 +6713,31 @@ Do you want to overwrite it? Special Characters 特殊字元 + + + PasswordWidget - Password Quality: %1 + Passwords do not match + ä¸ç¬¦åˆçš„密碼 + + + Passwords match so far + ç›®å‰ç¬¦åˆçš„密碼 + + + Toggle Password (%1) + 切æ›å¯†ç¢¼é¡¯ç¤º (%1) + + + Generate Password (%1) + 生æˆå¯†ç¢¼ (%1) + + + Warning: Caps Lock enabled! + 警告:Caps Lock å·²å•Ÿç”¨ï¼ + + + Quality: %1 密碼å“質:%1 @@ -6121,6 +6760,10 @@ Do you want to overwrite it? Password quality 極好 + + Toggle password visibility using Control + H. Open the password generator using Control + G. + 使用 Control + H 顯示或隱è—密碼。使用 Control + G 打開密碼產生器。 + PickcharsDialog @@ -6175,6 +6818,10 @@ Do you want to overwrite it? Continue 繼續 + + Continue with weak password + 以弱密碼繼續 + QObject @@ -6568,6 +7215,10 @@ Do you want to overwrite it? Too many arguments provided. æä¾›çš„åƒæ•¸éŽå¤šã€‚ + + Path of the database. + 資料庫的路徑。 + Target decryption time in MS for the database. 資料庫的目標解密時間,以「毫秒ã€è¨ˆç®—。 @@ -6576,6 +7227,12 @@ Do you want to overwrite it? time 時間 + + Set the key file for the database. +This options is deprecated, use --set-key-file instead. + 設定資料庫的金鑰檔案。 +æ­¤é¸é …已經棄用,請用 --set-key-file 代替。 + Set the key file for the database. 設定資料庫的金鑰檔。 @@ -6588,10 +7245,6 @@ Do you want to overwrite it? Create a new database. 建立新群組。 - - Path of the database. - 資料庫的路徑。 - Invalid decryption time %1. 無效的解密時間 %1。 @@ -6636,6 +7289,158 @@ Do you want to overwrite it? Successfully created new database. æˆåŠŸå»ºç«‹æ–°è³‡æ–™åº«ã€‚ + + Unset the password for the database. + 刪除資料庫的密碼。 + + + Unset the key file for the database. + 刪除資料庫的金鑰檔案。 + + + Edit a database. + 編輯資料庫。 + + + Cannot use %1 and %2 at the same time. + ç„¡æ³•åŒæ™‚使用 %1 å’Œ %2。 + + + Could not change the database key. + 無法更改資料庫金鑰。 + + + Database was not modified. + 資料庫未被修改。 + + + Writing the database failed: %1 + 寫入資料庫失敗:%1 + + + Successfully edited the database. + å·²æˆåŠŸç·¨è¼¯è³‡æ–™åº«ã€‚ + + + Cannot remove password: The database does not have a password. + 無法刪除密碼:資料庫ä¸å«å¯†ç¢¼ã€‚ + + + Cannot remove file key: The database does not have a file key. + 無法刪除檔案金鑰:資料庫ä¸å«æª”案金鑰。 + + + Loading the new key file failed: %1 + 載入新金鑰檔案失敗:%1 + + + Found unexpected Key type %1 + ç™¼ç¾æœªé æœŸçš„金鑰類型 %1 + + + Cannot remove all the keys from a database. + 無法從資料庫移除所有金鑰。 + + + Show a database's information. + 顯示資料庫資訊。 + + + UUID: + UUID: + + + Name: + å稱: + + + Description: + æè¿°ï¼š + + + Cipher: + 加密法: + + + KDF: + KDF: + + + Recycle bin is enabled. + 回收桶已啟用。 + + + Recycle bin is not enabled. + 回收桶尚未啟用。 + + + Location + ä½ç½® + + + Database created + 資料庫已建立 + + + Last saved + 最近儲存於 + + + Unsaved changes + 未儲存變更 + + + yes + 是 + + + no + å¦ + + + Number of groups + 群組數 + + + Number of entries + 項目數 + + + Number of expired entries + éŽæœŸé …目數 + + + Unique passwords + ç¨ç‰¹çš„密碼 + + + Non-unique passwords + éžç¨ç‰¹çš„密碼 + + + Maximum password reuse + 最大密碼é‡è¤‡ä½¿ç”¨æ¬¡æ•¸ + + + Number of short passwords + éŽçŸ­å¯†ç¢¼æ•¸ + + + Number of weak passwords + 弱密碼數 + + + Entries excluded from reports + 從報告排除的項目 + + + Average password length + å¹³å‡å¯†ç¢¼é•·åº¦ + + + %1 characters + %1 å­—å…ƒ + Word count for the diceware passphrase. Diceware 密碼短語字數統計 @@ -6687,10 +7492,6 @@ Do you want to overwrite it? Enter new password for entry: 為項目輸入新密碼: - - Writing the database failed: %1 - 寫入資料庫失敗:%1 - Successfully edited entry %1. æˆåŠŸç·¨è¼¯é …ç›® %1。 @@ -6915,106 +7716,6 @@ Do you want to overwrite it? Successfully imported database. æˆåŠŸåŒ¯å…¥è³‡æ–™åº«ã€‚ - - Show a database's information. - 顯示資料庫資訊。 - - - UUID: - UUID: - - - Name: - å稱: - - - Description: - æè¿°ï¼š - - - Cipher: - 加密法: - - - KDF: - KDF: - - - Recycle bin is enabled. - 回收桶已啟用。 - - - Recycle bin is not enabled. - 回收桶尚未啟用。 - - - Location - ä½ç½® - - - Database created - 資料庫已建立 - - - Last saved - 最近儲存於 - - - Unsaved changes - 未儲存變更 - - - yes - 是 - - - no - å¦ - - - Number of groups - 群組數 - - - Number of entries - 項目數 - - - Number of expired entries - å·²éŽæœŸé …目數 - - - Unique passwords - ç¨ç‰¹çš„密碼 - - - Non-unique passwords - éžç¨ç‰¹çš„密碼 - - - Maximum password reuse - 最大密碼é‡è¤‡ä½¿ç”¨æ¬¡æ•¸ - - - Number of short passwords - éŽçŸ­å¯†ç¢¼æ•¸ - - - Number of weak passwords - 弱密碼數 - - - Entries excluded from reports - 從報告排除的項目 - - - Average password length - å¹³å‡å¯†ç¢¼é•·åº¦ - - - %1 characters - %1 å­—å…ƒ - Unknown command %1 未知的指令 %1 @@ -7187,6 +7888,10 @@ Available commands: Show the protected attributes in clear text. 以明文顯示被ä¿è­·çš„屬性。 + + Show all the attributes of the entry. + 顯示項目的所有屬性。 + Show the attachments of the entry. 顯示項目的附件。 @@ -7257,6 +7962,10 @@ Please consider generating a new key file. Invalid YubiKey serial %1 無效的 YubiKey åºè™Ÿ %1 + + Please present or touch your YubiKey to continue. + 請感應或接觸您的 YubiKey 以繼續。 + Enter password to encrypt database (optional): 輸入密碼以加密資料庫(é¸ç”¨ï¼‰ï¼š @@ -7444,8 +8153,8 @@ Kernel: %3 %4 %1 分 - Botan library must be at least 2.11.x, found %1.%2.%3 - Botan 函å¼åº«éœ€è¦è‡³å°‘ 2.11.x,找到 %1.%2.%3 + Botan library must be at least %1, found %2.%3.%4 + Botan 函å¼åº«å¿…須至少為 %1,找到 %2.%3.%4 Cryptographic libraries: @@ -7685,10 +8394,6 @@ Kernel: %3 %4 read password of the database from stdin 從 stdin 讀å–資料庫密碼 - - allow app screen recordering and screenshots - å…許應用進行螢幕錄製與擷圖 - Locked databases. 已鎖定的資料庫。 @@ -7701,6 +8406,10 @@ Kernel: %3 %4 Another instance of KeePassXC is already running. å…¶ä»– KeePassXC ç¨‹å¼æ­£åœ¨é‹è¡Œä¸­ã€‚ + + KeePassXC is not running. No open database to lock + KeePassXC 並未執行。沒有已開啟的資料庫è¦éŽ–å®š + Fatal error while testing the cryptographic functions. 測試加密函數時發生é‡å¤§éŒ¯èª¤ã€‚ @@ -7709,10 +8418,6 @@ Kernel: %3 %4 KeePassXC - Error KeePassXC - 錯誤 - - Warning: Failed to prevent screenshots on a top level window! - è­¦å‘Šï¼šæ–¼æœ€é ‚å±¤è¦–çª—é˜²æ“·åœ–å¤±æ•—ï¼ - Database password: 資料庫密碼: @@ -7736,8 +8441,222 @@ Kernel: %3 %4 使用 Windows Hello 簽署挑戰失敗。 - Please present or touch your YubiKey to continue. - 請感應或接觸您的 YubiKey 以繼續。 + Warning: Failed to block screenshot capture on a top-level window. + 警告:於頂層視窗阻擋螢幕截å–失敗。 + + + Invalid Cipher + 無效的加密法 + + + Invalid KDF + 無效的 KDF + + + Access to all entries is denied + å­˜å–æ‰€æœ‰é …目被拒絕 + + + allow screenshots and app recording (Windows/macOS) + å…許螢幕截圖與錄製 (Windows/macOS) + + + Enter Shortcut + 輸入快æ·éµ + + + Action + 動作 + + + Shortcuts + å¿«æ·éµ + + + Attestation not supported + 證明ä¸å—æ”¯æ´ + + + Credential is excluded + 憑證被排除 + + + Passkeys request canceled + é€šè¡Œå¯†é‘°è«‹æ±‚è¢«å–æ¶ˆ + + + Invalid user verification + 無效的使用者驗證 + + + Empty public key + 空的公開金鑰 + + + Invalid URL provided + æä¾›çš„ URL 無效 + + + Passkeys + 通行密鑰 + + + AES initialization failed + AES åˆå§‹åŒ–失敗 + + + AES encrypt failed + AES 加密失敗 + + + Failed to store in Linux Keyring + 儲存至 Linux 鑰匙圈失敗 + + + Polkit returned an error: %1 + Polkit 回傳錯誤:%1 + + + Could not locate key in keyring + 無法定ä½é‘°åŒ™åœˆå…§çš„金鑰 + + + Could not read key in keyring + 無法讀å–鑰匙圈內的金鑰 + + + AES decrypt failed + AES 解密失敗 + + + No Polkit authentication agent was available + 沒有å¯ç”¨çš„ Polkit èªè­‰ä»£ç† + + + Polkit authorization failed + Polkit èªè­‰å¤±æ•— + + + No Quick Unlock provider is available + 沒有å¯ç”¨çš„快速解鎖æä¾›è€… + + + Failed to init KeePassXC crypto. + åˆå§‹åŒ– KeePassXC 加密失敗。 + + + Failed to encrypt key data. + 加密金鑰資料失敗。 + + + Failed to get Windows Hello credential. + ç²å– Windows Hello 憑證失敗。 + + + Failed to decrypt key data. + 解密金鑰資料失敗。 + + + Favorite + Tag for favorite entries + + + + File does not exist. + + + + Cannot open file: %1 + + + + Cannot parse file: %1 at position %2 + + + + Failed to decrypt json file: %1 + + + + Invalid encKeyValidation field + + + + Invalid cipher list within encKeyValidation field + + + + Wrong password + + + + Invalid encrypted data field + + + + Invalid cipher list within encrypted data field + + + + Cannot initialize cipher + + + + Cannot decrypt data + + + + Bitwarden Import + + + + Archived + Tag for archived entries + + + + Invalid 1PUX file format: Not a valid ZIP file. + + + + Invalid 1PUX file format: Missing export.data + + + + 1Password Import + + + + Origin is empty or not allowed + Origin 為空或ä¸è¢«å…許 + + + Effective domain is not a valid domain + Effective Domain 䏿˜¯æœ‰æ•ˆçš„域å + + + Origin and RP ID do not match + Origin 與 RP ID ä¸åŒ¹é… + + + No supported algorithms were provided + 未æä¾›å—支æŒçš„æ¼”算法 + + + Wait for timer to expire + ç­‰å¾…è¨ˆæ™‚å™¨éŽæœŸ + + + Unknown Passkeys error + 未知的通行密鑰錯誤 + + + Challenge is shorter than required minimum length + 挑戰短於所需最å°é•·åº¦ + + + user.id does not match the required length + user.id ä¸åŒ¹é…所需長度 @@ -7776,18 +8695,6 @@ Kernel: %3 %4 ReportsWidgetBrowserStatistics - - Exclude expired entries from the report - å¾žå ±å‘ŠæŽ’é™¤å·²éŽæœŸçš„é …ç›® - - - Show only entries which have URL set - åªé¡¯ç¤ºæœ‰è¨­ç½® URL 的項目 - - - Show only entries which have browser settings in custom data - åªé¡¯ç¤ºè‡ªå®šç¾©è³‡æ–™ä¸­æœ‰ç€è¦½å™¨è¨­ç½®çš„é …ç›® - Double-click entries to edit. 雙擊項目以編輯。 @@ -7852,17 +8759,25 @@ Kernel: %3 %4 Exclude from reports 從報告排除 + + Only show entries that have a URL + åªé¡¯ç¤ºå«æœ‰ URL 的項目 + + + Only show entries that have been explicitly allowed or denied + åªé¡¯ç¤ºæ˜Žç¢ºå…許或拒絕的項目 + + + Show expired entries + é¡¯ç¤ºéŽæœŸé …ç›® + + + (Expired) + ï¼ˆéŽæœŸï¼‰ + ReportsWidgetHealthcheck - - Exclude expired entries from the report - å¾žå ±å‘ŠæŽ’é™¤å·²éŽæœŸçš„é …ç›® - - - Also show entries that have been excluded from reports - 也顯示已從報告排除的項目 - Hover over reason to show additional details. Double-click entries to edit. 將游標懸浮於原因以顯示é¡å¤–詳情。雙擊項目å¯ç·¨è¼¯ã€‚ @@ -7938,6 +8853,18 @@ Kernel: %3 %4 Exclude from reports 從報告排除 + + Show expired entries + é¡¯ç¤ºéŽæœŸé …ç›® + + + Show entries that have been excluded from reports + 顯示已從報告中排除的項目 + + + (Expired) + ï¼ˆéŽæœŸï¼‰ + ReportsWidgetHibp @@ -8034,6 +8961,65 @@ Kernel: %3 %4 從報告排除 + + ReportsWidgetPasskeys + + Export + 匯出 + + + Import + 匯入 + + + List of entry URLs + é …ç›® URL 清單 + + + Please wait, list of entries with Passkeys is being updated… + è«‹ç¨å€™ï¼Œæ­£åœ¨æ›´æ–°åŒ…å«é€šè¡Œå¯†é‘°çš„項目清單… + + + No entries with Passkeys. + 沒有包å«é€šè¡Œå¯†é‘°çš„項目。 + + + Title + 標題 + + + Path + 路徑 + + + Username + 使用者å稱 + + + URLs + URL + + + Edit Entry… + 編輯項目… + + + Delete Entry(s)… + 刪除項目… + + + Relying Party + ä¾è³´æ–¹ + + + Show expired entries + é¡¯ç¤ºéŽæœŸé …ç›® + + + (Expired) + ï¼ˆéŽæœŸï¼‰ + + ReportsWidgetStatistics @@ -8098,7 +9084,7 @@ Kernel: %3 %4 Number of expired entries - å·²éŽæœŸé …目數 + éŽæœŸé …目數 The database contains entries that have expired. @@ -8273,6 +9259,10 @@ Kernel: %3 %4 Search Help æœå°‹å¹«åŠ© + + Save Search + 儲存æœç´¢ + Search (%1)… Search placeholder text, %1 is the keyboard shortcut @@ -8504,11 +9494,38 @@ Kernel: %3 %4 匯出至 %1 + + ShortcutSettingsWidget + + Double click an action to change its shortcut + 雙擊一個動作以修改其快æ·éµ + + + Shortcut Conflict + å¿«æ·éµè¡çª + + + Filter... + éŽæ¿¾... + + + Shortcut %1 conflicts with '%2'. Overwrite shortcut? + å¿«æ·éµ %1 與 '%2' è¡çªã€‚是å¦è¦†è“‹å¿«æ·éµï¼Ÿ + + + Reset Shortcuts + é‡è¨­å¿«æ·éµ + + TagModel - All - 所有 + Clear Search + 清除æœç´¢ + + + All Entries + 所有項目 Expired @@ -8519,6 +9536,25 @@ Kernel: %3 %4 弱密碼 + + TagView + + Remove Search + 移除æœç´¢ + + + Remove Tag + 移除標籤 + + + Confirm Remove Tag + 確èªç§»é™¤æ¨™ç±¤ + + + Remove tag "%1" from all entries in this database? + è¦ç§»é™¤è³‡æ–™åº«ä¸­æ‰€æœ‰é …目包å«çš„「%1ã€æ¨™ç±¤å—Žï¼Ÿ + + TotpDialog @@ -8643,7 +9679,7 @@ Example: JBSWY3DPEHPK3PXP UpdateCheckDialog Checking for updates - 正在檢查更新 + 更新檢查 Checking for updates… @@ -8676,26 +9712,6 @@ Example: JBSWY3DPEHPK3PXP Start storing your passwords securely in a KeePassXC database 從ç¾åœ¨é–‹å§‹ï¼Œå°‡æ‚¨çš„密碼安全地ä¿å­˜åˆ° KeePassXC 資料庫 - - Create new database - 建立新資料庫 - - - Open existing database - é–‹å•Ÿç¾æœ‰è³‡æ–™åº« - - - Import from KeePass 1 - 從 KeePass 1 匯入 - - - Import from 1Password - 從 1Password 匯入 - - - Import from CSV - 從 CSV 匯入 - Recent databases 近期的資料庫 @@ -8708,6 +9724,18 @@ Example: JBSWY3DPEHPK3PXP Welcome to KeePassXC %1 歡迎來到 KeePassXC %1 + + Create Database + 建立資料庫 + + + Open Database + 開啟資料庫 + + + Import File + + WinUtils @@ -8724,50 +9752,19 @@ Example: JBSWY3DPEHPK3PXP 無法註冊全域快æ·éµ - - WindowsHello - - Failed to init KeePassXC crypto. - åˆå§‹åŒ– KeePassXC 加密失敗。 - - - Failed to encrypt key data. - 加密金鑰資料失敗。 - - - Failed to get Windows Hello credential. - ç²å– Windows Hello 憑證失敗。 - - - Failed to decrypt key data. - 解密金鑰資料失敗。 - - YubiKey - - %1 No interface, slot %2 - %1 無介é¢ï¼Œæ’æ§½ %2 - General: 一般: Could not find interface for hardware key with serial number %1. Please connect it to continue. - 找ä¸åˆ°èˆ‡æµæ°´è™Ÿç‚º %1 çš„ç¡¬é«”é‡‘é‘°å°æ‡‰çš„介é¢ã€‚請將它連接後繼續。 + 找ä¸åˆ°èˆ‡åºåˆ—號為 %1 çš„ç¡¬é«”é‡‘é‘°å°æ‡‰çš„介é¢ã€‚請將它連接後繼續。 YubiKeyEditWidget - - Refresh hardware tokens - 更新硬體令牌 - - - Refresh - æ›´æ–° - Hardware key slot selection 硬體金鑰槽ä½é¸æ“‡ @@ -8800,10 +9797,6 @@ Example: JBSWY3DPEHPK3PXP Challenge-Response set, click to change or remove 挑戰應答已設定,點擊更改或移除 - - <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - <p>è‹¥æ‚¨æ“æœ‰ <a href="https://www.yubico.com/">YubiKey</a> 或 <a href="https://onlykey.io">OnlyKey</a>,å¯ä»¥ç”¨å®ƒç²å¾—é¡å¤–ä¿è­·ã€‚</p><p>需è¦å°‡é‘°åŒ™å…¶ä¸­ä¸€å€‹æ§½ä½è¨­ç½®ç‚º <a href="https://www.yubico.com/products/services-software/challenge-response/">HMAC-SHA1 挑戰應答</a>。</p> - Detecting hardware keys… 嵿¸¬ç¡¬é«”金鑰… @@ -8812,31 +9805,24 @@ Example: JBSWY3DPEHPK3PXP No hardware keys detected æœªåµæ¸¬åˆ°ç¡¬é«”金鑰 - - - YubiKeyInterface - %1 Invalid slot specified - %2 - %1 ç„¡æ•ˆçš„æŒ‡å®šæ§½ä½ - %2 + <p>If you own a <a href="https://www.yubico.com/">YubiKey</a> or <a href="https://onlykey.io">OnlyKey</a>, you can use it for additional security.</p><p>The key requires one of its slots to be programmed as <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 Challenge-Response</a>.</p> + <p>è‹¥æ‚¨æ“æœ‰ <a href="https://www.yubico.com/">YubiKey</a> 或 <a href="https://onlykey.io">OnlyKey</a>,å¯ä»¥ç”¨å®ƒç²å¾—é¡å¤–ä¿è­·ã€‚</p><p>需è¦å°‡é‘°åŒ™å…¶ä¸­ä¸€å€‹æ§½ä½è¨­ç½®ç‚º <a href="https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html">HMAC-SHA1 挑戰應答</a>。</p> + + + Refresh hardware keys + 刷新硬體金鑰 YubiKeyInterfacePCSC - - (PCSC) %1 [%2] Challenge-Response - Slot %3 - (PCSC) %1 [%2] 挑戰應答 - æ’æ§½ %3 - The YubiKey PCSC interface has not been initialized. YubiKey PCSC 介é¢å°šæœªåˆå§‹åŒ–。 - - Hardware key is currently in use. - ç¡¬é«”é‡‘é‘°ç›®å‰æ­£åœ¨ä½¿ç”¨ç•¶ä¸­ã€‚ - Could not find or access hardware key with serial number %1. Please present it to continue. - 找ä¸åˆ°æˆ–ç„¡æ³•å­˜å–æµæ°´è™Ÿç‚º %1 的硬體金鑰。請將它呈ç¾å¾Œç¹¼çºŒã€‚ + 找ä¸åˆ°æˆ–無法存å–åºåˆ—號為 %1 的硬體金鑰。請將它呈ç¾å¾Œç¹¼çºŒã€‚ Hardware key is locked or timed out. Unlock or re-present it to continue. @@ -8850,6 +9836,21 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the PCSC error code was: %1 ç„¡æ³•å®ŒæˆæŒ‘戰應答,PCSC 錯誤代碼為:%1 + + (NFC) %1 [%2] - Slot %3, %4 + YubiKey display fields + (NFC) %1 [%2] - æ§½ä½ %3, %4 + + + Press + USB Challenge-Response Key interaction request + 按下 + + + Passive + USB Challenge-Response Key no interaction required + 被動 + YubiKeyInterfaceUSB @@ -8857,14 +9858,6 @@ Example: JBSWY3DPEHPK3PXP Unknown 未知 - - (USB) %1 [%2] Configured Slot - %3 - (USB) %1 [%2] è¨­å®šæ’æ§½ - %3 - - - (USB) %1 [%2] Challenge-Response - Slot %3 - %4 - (USB) %1 [%2] 挑戰應答 - æ’æ§½ %3 - %4 - Press USB Challenge-Response Key interaction request @@ -8879,13 +9872,9 @@ Example: JBSWY3DPEHPK3PXP The YubiKey USB interface has not been initialized. YubiKey USB 介é¢å°šæœªåˆå§‹åŒ–。 - - Hardware key is currently in use. - ç¡¬é«”é‡‘é‘°ç›®å‰æ­£åœ¨ä½¿ç”¨ç•¶ä¸­ã€‚ - Could not find hardware key with serial number %1. Please plug it in to continue. - 找ä¸åˆ°æµæ°´è™Ÿç‚º %1 的硬體金鑰。請將它æ’入後繼續。 + 找ä¸åˆ°åºåˆ—號為 %1 的硬體金鑰。請將它æ’入後繼續。 Hardware key timed out waiting for user interaction. @@ -8899,5 +9888,15 @@ Example: JBSWY3DPEHPK3PXP Failed to complete a challenge-response, the specific error was: %1 ç„¡æ³•å®ŒæˆæŒ‘戰應答,具體錯誤為:%1 + + %1 [%2] - Slot %3 + YubiKey NEO display fields + %1 [%2] - æ§½ä½ %3 + + + %1 [%2] - Slot %3, %4 + YubiKey display fields + %1 [%2] - æ§½ä½ %3, %4 + \ No newline at end of file diff --git a/share/windows/installer-banner.png b/share/windows/installer-banner.png new file mode 100644 index 000000000..615b663ec Binary files /dev/null and b/share/windows/installer-banner.png differ diff --git a/share/windows/installer-banner.psd b/share/windows/installer-banner.psd new file mode 100644 index 000000000..5431e2f26 Binary files /dev/null and b/share/windows/installer-banner.psd differ diff --git a/share/windows/installer-header.bmp b/share/windows/installer-header.bmp deleted file mode 100644 index f9e17cae7..000000000 Binary files a/share/windows/installer-header.bmp and /dev/null differ diff --git a/share/windows/installer-wizard.bmp b/share/windows/installer-wizard.bmp deleted file mode 100644 index 76d04518f..000000000 Binary files a/share/windows/installer-wizard.bmp and /dev/null differ diff --git a/share/windows/installer-wizard.png b/share/windows/installer-wizard.png new file mode 100644 index 000000000..abefed672 Binary files /dev/null and b/share/windows/installer-wizard.png differ diff --git a/share/windows/installer-wizard.psd b/share/windows/installer-wizard.psd new file mode 100644 index 000000000..e61235150 Binary files /dev/null and b/share/windows/installer-wizard.psd differ diff --git a/share/windows/installer-wizard.zip b/share/windows/installer-wizard.zip new file mode 100644 index 000000000..08fa397af Binary files /dev/null and b/share/windows/installer-wizard.zip differ diff --git a/share/windows/keepassxc-kdbx.ico b/share/windows/keepassxc-kdbx.ico index 0cec1e4ce..4a3662d22 100644 Binary files a/share/windows/keepassxc-kdbx.ico and b/share/windows/keepassxc-kdbx.ico differ diff --git a/share/windows/keepassxc.ico b/share/windows/keepassxc.ico index 58ae8c2ba..1d471740c 100644 Binary files a/share/windows/keepassxc.ico and b/share/windows/keepassxc.ico differ diff --git a/share/windows/qt.conf b/share/windows/qt.conf new file mode 100644 index 000000000..846f84c86 --- /dev/null +++ b/share/windows/qt.conf @@ -0,0 +1,2 @@ +[Platforms] +WindowsArguments = darkmode=1 diff --git a/share/windows/wix-banner.bmp b/share/windows/wix-banner.bmp deleted file mode 100644 index 14a13b8f1..000000000 Binary files a/share/windows/wix-banner.bmp and /dev/null differ diff --git a/share/windows/wix-dialog.bmp b/share/windows/wix-dialog.bmp deleted file mode 100644 index b26ad1e25..000000000 Binary files a/share/windows/wix-dialog.bmp and /dev/null differ diff --git a/share/windows/wix-template.xml b/share/windows/wix-template.xml index 6f7be4f8d..add2af297 100644 --- a/share/windows/wix-template.xml +++ b/share/windows/wix-template.xml @@ -92,6 +92,9 @@ + + + @@ -101,13 +104,9 @@ - - - AUTOSTARTPROGRAM="0" OR (WIX_UPGRADE_DETECTED AND NOT AUTOSTARTPROGRAM_REGISTRY) - WIX_UPGRADE_DETECTED AND INSTALLDESKTOPSHORTCUT_REGISTRY WIX_UPGRADE_DETECTED @@ -120,12 +119,17 @@ - - - + + + + + + + + diff --git a/share/wizard/background-pixmap.png b/share/wizard/background-pixmap.png index 0651b38f5..90fa389f0 100644 Binary files a/share/wizard/background-pixmap.png and b/share/wizard/background-pixmap.png differ diff --git a/share/wordlists/eff_large.wordlist b/share/wordlists/eff_large.wordlist index 9107855a2..f512e55d0 100644 --- a/share/wordlists/eff_large.wordlist +++ b/share/wordlists/eff_large.wordlist @@ -2006,8 +2006,8 @@ drizzly drone drool droop -drop-down -dropbox +drop-in +dropforge dropkick droplet dropout @@ -2102,11 +2102,11 @@ eaten eatery eating eats -ebay +eaves ebony ebook -ecard -eccentric +echelon +echidna echo eclair eclipse @@ -2684,8 +2684,8 @@ footpad footpath footprint footrest -footsie -footsore +footstool +footway footwear footwork fossil @@ -2928,7 +2928,7 @@ goldmine goldsmith golf goliath -gonad +golly gondola gone gong @@ -2937,8 +2937,8 @@ gooey goofball goofiness goofy -google -goon +gooseneck +goosey gopher gore gorged @@ -3028,6 +3028,7 @@ groom groove grooving groovy +grouch ground grouped grout @@ -3137,7 +3138,7 @@ hangover hangup hankering hankie -hanky +hanoi haphazard happening happier @@ -3146,9 +3147,10 @@ happily happiness happy harbor -hardcopy +hardback +hardball hardcover -harddisk +hardedge hardened hardener hardening @@ -3410,10 +3412,10 @@ impurity iodine iodize ion -ipad -iphone -ipod -irate +iota +ire +iridium +iris irk iron irregular @@ -3423,7 +3425,7 @@ irritably irritant irritate islamic -islamist +island isolated isolating isolation @@ -3576,7 +3578,7 @@ kite kitten kitty kiwi -kleenex +knack knapsack knee knelt @@ -3661,7 +3663,7 @@ leggings legible legibly legislate -lego +legitimate legroom legume legwarmer @@ -3876,7 +3878,7 @@ marshland marshy marsupial marvelous -marxism +marzipan mascot masculine mashed @@ -5912,7 +5914,7 @@ shun shush shut shy -siamese +sial siberian sibling siding @@ -6608,6 +6610,7 @@ swimmer swimming swimsuit swimwear +swindle swinging swipe swirl @@ -7720,7 +7723,7 @@ wrongful wrongly wrongness wrought -xbox +xenon xerox yahoo yam @@ -7747,7 +7750,7 @@ yodel yoga yogurt yonder -yoyo +young yummy zap zealous diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index db64dbbad..29a8b34ed 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,7 +1,7 @@ name: keepassxc adopt-info: keepassxc grade: stable -base: core20 +base: core22 confinement: strict compression: lzo @@ -10,7 +10,8 @@ apps: command: usr/bin/keepassxc common-id: org.keepassxc.KeePassXC.desktop extensions: [kde-neon] - plugs: [home, unity7, network, network-bind, removable-media, raw-usb] + plugs: [home, unity7, network, network-bind, removable-media, raw-usb, password-manager-service] + autostart: org.keepassxc.KeePassXC.desktop cli: command: usr/bin/keepassxc-cli extensions: [kde-neon] @@ -19,7 +20,7 @@ apps: command: usr/bin/keepassxc-proxy extensions: [kde-neon] plugs: [home] - + slots: session-dbus-interface: interface: dbus @@ -52,13 +53,20 @@ parts: - libxi-dev - libxtst-dev - asciidoctor + - libfreetype-dev stage-packages: - dbus - - libbotan-2-12 + - libbotan-2-19 - libqrencode4 - libusb-1.0-0 - libreadline8 - libpcsclite1 - libminizip1 - libxtst6 + - libfreetype6 - xclip +lint: + ignore: + - library: + - lib/**/libhistory.so* + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c4f66e713..40dae9371 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2018 KeePassXC Team +# Copyright (C) 2023 KeePassXC Team # Copyright (C) 2010 Felix Geyer # # This program is free software: you can redistribute it and/or modify @@ -59,7 +59,9 @@ set(keepassx_SOURCES core/TimeDelta.cpp core/TimeInfo.cpp core/Tools.cpp + core/Totp.cpp core/Translator.cpp + core/UrlTools.cpp cli/Utils.cpp cli/TextStream.cpp crypto/Crypto.cpp @@ -69,6 +71,7 @@ set(keepassx_SOURCES crypto/kdf/Kdf.cpp crypto/kdf/AesKdf.cpp crypto/kdf/Argon2Kdf.cpp + format/BitwardenReader.cpp format/CsvExporter.cpp format/CsvParser.cpp format/KeePass1Reader.cpp @@ -85,6 +88,7 @@ set(keepassx_SOURCES format/Kdbx4Writer.cpp format/KdbxXmlWriter.cpp format/OpData01.cpp + format/OPUXReader.cpp format/OpVaultReader.cpp format/OpVaultReaderAttachments.cpp format/OpVaultReaderBandEntry.cpp @@ -115,13 +119,11 @@ set(keepassx_SOURCES gui/GuiTools.cpp gui/HtmlExporter.cpp gui/IconModels.cpp - gui/KeePass1OpenWidget.cpp gui/KMessageWidget.cpp gui/MainWindow.cpp gui/MessageBox.cpp gui/MessageWidget.cpp - gui/OpVaultOpenWidget.cpp - gui/PasswordEdit.cpp + gui/PasswordWidget.cpp gui/PasswordGeneratorWidget.cpp gui/ApplicationSettingsWidget.cpp gui/Icons.cpp @@ -135,7 +137,6 @@ set(keepassx_SOURCES gui/URLEdit.cpp gui/WelcomeWidget.cpp gui/csvImport/CsvImportWidget.cpp - gui/csvImport/CsvImportWizard.cpp gui/csvImport/CsvParserModel.cpp gui/entry/AutoTypeAssociationsModel.cpp gui/entry/EditEntryWidget.cpp @@ -150,6 +151,7 @@ set(keepassx_SOURCES gui/group/GroupModel.cpp gui/group/GroupView.cpp gui/tag/TagModel.cpp + gui/tag/TagView.cpp gui/tag/TagsEdit.cpp gui/databasekey/KeyComponentWidget.cpp gui/databasekey/PasswordEditWidget.cpp @@ -177,6 +179,9 @@ set(keepassx_SOURCES gui/widgets/ElidedLabel.cpp gui/widgets/KPToolBar.cpp gui/widgets/PopupHelpWidget.cpp + gui/wizard/ImportWizard.cpp + gui/wizard/ImportWizardPageReview.cpp + gui/wizard/ImportWizardPageSelect.cpp gui/wizard/NewDatabaseWizard.cpp gui/wizard/NewDatabaseWizardPage.cpp gui/wizard/NewDatabaseWizardPageMetaData.cpp @@ -191,8 +196,7 @@ set(keepassx_SOURCES streams/LayeredStream.cpp streams/qtiocompressor.cpp streams/StoreDataStream.cpp - streams/SymmetricCipherStream.cpp - totp/totp.cpp) + streams/SymmetricCipherStream.cpp) if(APPLE) set(keepassx_SOURCES ${keepassx_SOURCES} @@ -206,8 +210,11 @@ if(UNIX AND NOT APPLE) set(keepassx_SOURCES ${keepassx_SOURCES} gui/osutils/nixutils/ScreenLockListenerDBus.cpp - gui/osutils/nixutils/NixUtils.cpp + gui/osutils/nixutils/NixUtils.cpp) + if(WITH_XC_X11) + list(APPEND keepassx_SOURCES gui/osutils/nixutils/X11Funcs.cpp) + endif() qt5_add_dbus_adaptor(keepassx_SOURCES gui/org.keepassxc.KeePassXC.MainWindow.xml gui/MainWindow.h @@ -223,6 +230,17 @@ if(WIN32) endif() endif() +if(WITH_XC_YUBIKEY) + set(keepassx_SOURCES ${keepassx_SOURCES} gui/osutils/DeviceListener.cpp) + if(APPLE) + set(keepassx_SOURCES ${keepassx_SOURCES} gui/osutils/macutils/DeviceListenerMac.cpp) + elseif(UNIX) + set(keepassx_SOURCES ${keepassx_SOURCES} gui/osutils/nixutils/DeviceListenerLibUsb.cpp) + elseif(WIN32) + set(keepassx_SOURCES ${keepassx_SOURCES} gui/osutils/winutils/DeviceListenerWin.cpp) + endif() +endif() + set(keepassx_SOURCES ${keepassx_SOURCES} ../share/icons/icons.qrc ../share/wizard/wizard.qrc) @@ -232,6 +250,7 @@ set(keepassx_SOURCES_MAINEXE main.cpp) add_feature_info(Auto-Type WITH_XC_AUTOTYPE "Automatic password typing") add_feature_info(Networking WITH_XC_NETWORKING "Compile KeePassXC with network access code (e.g. for downloading website icons)") add_feature_info(KeePassXC-Browser WITH_XC_BROWSER "Browser integration with KeePassXC-Browser") +add_feature_info(Passkeys WITH_XC_BROWSER_PASSKEYS "Passkeys support for browser integration") add_feature_info(SSHAgent WITH_XC_SSHAGENT "SSH agent integration compatible with KeeAgent") add_feature_info(KeeShare WITH_XC_KEESHARE "Sharing integration with KeeShare") add_feature_info(YubiKey WITH_XC_YUBIKEY "YubiKey HMAC-SHA1 challenge-response") @@ -244,10 +263,21 @@ add_subdirectory(browser) add_subdirectory(proxy) if(WITH_XC_BROWSER) set(keepassxcbrowser_LIB keepassxcbrowser) - set(keepassx_SOURCES ${keepassx_SOURCES} gui/dbsettings/DatabaseSettingsWidgetBrowser.cpp) - set(keepassx_SOURCES ${keepassx_SOURCES} gui/entry/EntryURLModel.cpp) - set(keepassx_SOURCES ${keepassx_SOURCES} gui/reports/ReportsWidgetBrowserStatistics.cpp) - set(keepassx_SOURCES ${keepassx_SOURCES} gui/reports/ReportsPageBrowserStatistics.cpp) + set(keepassx_SOURCES ${keepassx_SOURCES} + gui/dbsettings/DatabaseSettingsWidgetBrowser.cpp + gui/entry/EntryURLModel.cpp + gui/reports/ReportsWidgetBrowserStatistics.cpp + gui/reports/ReportsPageBrowserStatistics.cpp) +endif() + +if(WITH_XC_BROWSER_PASSKEYS) + set(keepassx_SOURCES ${keepassx_SOURCES} + gui/reports/ReportsWidgetPasskeys.cpp + gui/reports/ReportsPagePasskeys.cpp + gui/passkeys/PasskeyExporter.cpp + gui/passkeys/PasskeyExportDialog.cpp + gui/passkeys/PasskeyImporter.cpp + gui/passkeys/PasskeyImportDialog.cpp) endif() add_subdirectory(autotype) @@ -288,14 +318,14 @@ if(WIN32) endif() if(WITH_XC_YUBIKEY) - list(APPEND keepassx_SOURCES + list(APPEND keepassx_SOURCES keys/drivers/YubiKey.h - keys/drivers/YubiKey.cpp - keys/drivers/YubiKeyInterface.cpp - keys/drivers/YubiKeyInterfaceUSB.cpp + keys/drivers/YubiKey.cpp + keys/drivers/YubiKeyInterface.cpp + keys/drivers/YubiKeyInterfaceUSB.cpp keys/drivers/YubiKeyInterfacePCSC.cpp) else() - list(APPEND keepassx_SOURCES + list(APPEND keepassx_SOURCES keys/drivers/YubiKey.h keys/drivers/YubiKeyStub.cpp) endif() @@ -313,7 +343,7 @@ endif() if(APPLE) list(APPEND keepassx_SOURCES touchid/TouchID.mm) # TODO: Remove -Wno-error once deprecation warnings have been resolved. - set_source_files_properties(touchid/TouchID.mm PROPERTY COMPILE_FLAGS "-Wno-old-style-cast -Wno-error") + set_source_files_properties(touchid/TouchID.mm PROPERTY COMPILE_FLAGS "-Wno-old-style-cast") endif() configure_file(config-keepassx.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-keepassx.h) @@ -334,10 +364,11 @@ target_link_libraries(keepassx_core Qt5::Concurrent Qt5::Network Qt5::Widgets - ${BOTAN2_LIBRARIES} + ${BOTAN_LIBRARIES} ${PCSC_LIBRARIES} ${ZXCVBN_LIBRARIES} ${ZLIB_LIBRARIES} + ${MINIZIP_LIBRARIES} ${ARGON2_LIBRARIES} ${thirdparty_LIBRARIES} ) @@ -359,7 +390,10 @@ if(HAIKU) target_link_libraries(keepassx_core network) endif() if(UNIX AND NOT APPLE) - target_link_libraries(keepassx_core Qt5::DBus Qt5::X11Extras X11) + target_link_libraries(keepassx_core Qt5::DBus ${LIBUSB_LIBRARIES}) + if(WITH_XC_X11) + target_link_libraries(keepassx_core Qt5::X11Extras X11) + endif() include_directories(${Qt5Gui_PRIVATE_INCLUDE_DIRS}) endif() if(WIN32) @@ -434,19 +468,19 @@ if(WIN32) string(REGEX REPLACE "-.*$" "" KEEPASSXC_VERSION_CLEAN ${KEEPASSXC_VERSION}) set(CPACK_GENERATOR "ZIP;WIX") + set(CPACK_COMPONENTS_ALL "") set(CPACK_STRIP_FILES OFF) set(CPACK_PACKAGE_FILE_NAME "${PROGNAME}-${KEEPASSXC_VERSION}-${OUTPUT_FILE_POSTFIX}") set(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROGNAME}) set(CPACK_PACKAGE_VERSION ${KEEPASSXC_VERSION_CLEAN}) set(CPACK_PACKAGE_VENDOR "${PROGNAME} Team") - string(REGEX REPLACE "/" "\\\\\\\\" CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/share/windows/installer-header.bmp") set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/INSTALLER_LICENSE.txt") set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON) set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/share/windows/keepassxc.ico") set(CPACK_NSIS_MUI_UNIICON "${CPACK_NSIS_MUI_ICON}") set(CPACK_NSIS_INSTALLED_ICON_NAME "\\\\${PROGNAME}.exe") - string(REGEX REPLACE "/" "\\\\\\\\" CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP "${CMAKE_SOURCE_DIR}/share/windows/installer-wizard.bmp") - set(CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP "${CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP}") + set(CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP "${CMAKE_SOURCE_DIR}/share/windows/installer-wizard.png") + set(CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP "${CMAKE_SOURCE_DIR}/share/windows/installer-wizard.png") set(CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\${PROGNAME}.lnk' '$INSTDIR\\\\${PROGNAME}.exe'") set(CPACK_NSIS_DELETE_ICONS_EXTRA "Delete '$SMPROGRAMS\\\\$START_MENU\\\\${PROGNAME}.lnk'") set(CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS "ExecWait 'Taskkill /IM KeePassXC.exe'") @@ -459,8 +493,8 @@ if(WIN32) set(CPACK_NSIS_MUI_FINISHPAGE_RUN "../${PROGNAME}.exe") set(CPACK_WIX_UPGRADE_GUID 88785A72-3EAE-4F29-89E3-BC6B19BA9A5B) set(CPACK_WIX_PRODUCT_ICON "${CMAKE_SOURCE_DIR}/share/windows/keepassxc.ico") - set(CPACK_WIX_UI_BANNER "${CMAKE_SOURCE_DIR}/share/windows/wix-banner.bmp") - set(CPACK_WIX_UI_DIALOG "${CMAKE_SOURCE_DIR}/share/windows/wix-dialog.bmp") + set(CPACK_WIX_UI_BANNER "${CMAKE_SOURCE_DIR}/share/windows/installer-banner.png") + set(CPACK_WIX_UI_DIALOG "${CMAKE_SOURCE_DIR}/share/windows/installer-wizard.png") set(CPACK_WIX_UI_REF "KPXC_InstallDir") set(CPACK_WIX_TEMPLATE "${CMAKE_SOURCE_DIR}/share/windows/wix-template.xml") set(CPACK_WIX_PATCH_FILE "${CMAKE_SOURCE_DIR}/share/windows/wix-patch.xml") @@ -494,7 +528,7 @@ if(WIN32) # install OpenSSL library if(WITH_XC_NETWORKING) find_file(OPENSSL_DLL - NAMES libssl-1_1.dll libssl-1_1-x64.dll + NAMES libssl-3.dll libssl-3-x64.dll HINTS "${OPENSSL_ROOT_DIR}/bin" ) if (NOT OPENSSL_DLL) @@ -502,7 +536,7 @@ if(WIN32) endif() find_file(CRYPTO_DLL - NAMES libcrypto-1_1.dll libcrypto-1_1-x64.dll + NAMES libcrypto-3.dll libcrypto-3-x64.dll HINTS "${OPENSSL_ROOT_DIR}/bin" ) if (NOT CRYPTO_DLL) diff --git a/src/autotype/AutoType.cpp b/src/autotype/AutoType.cpp index cdb68175e..d530f09ed 100644 --- a/src/autotype/AutoType.cpp +++ b/src/autotype/AutoType.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include "config-keepassx.h" @@ -335,7 +336,9 @@ void AutoType::executeAutoTypeActions(const Entry* entry, } if (!result.canRetry() || i == max_retries) { - MessageBox::critical(getMainWindow(), tr("Auto-Type Error"), result.errorString()); + if (getMainWindow()) { + MessageBox::critical(getMainWindow(), tr("Auto-Type Error"), result.errorString()); + } emit autotypeRejected(); m_inAutoType.unlock(); return; @@ -645,13 +648,26 @@ AutoType::parseSequence(const QString& entrySequence, const Entry* entry, QStrin for (const auto& ch : totp) { actions << QSharedPointer::create(ch); } - } else if (placeholder == "pickchars") { - // Ignore this if we are syntax checking + } else if (placeholder.startsWith("pickchars")) { + // Reset to the original capture to preserve case + placeholder = match.captured(3); + + auto attribute = EntryAttributes::PasswordKey; + if (placeholder.contains(":")) { + attribute = placeholder.section(":", 1); + if (!entry->attributes()->hasKey(attribute)) { + error = tr("Entry does not have attribute for PICKCHARS: %1").arg(attribute); + return {}; + } + } + + // Bail out if we are just syntax checking if (syntaxOnly) { continue; } - // Show pickchars dialog for entry's password - auto password = entry->resolvePlaceholder(entry->password()); + + // Show pickchars dialog for the desired attribute + auto password = entry->resolvePlaceholder(entry->attribute(attribute)); if (!password.isEmpty()) { PickcharsDialog pickcharsDialog(password); if (pickcharsDialog.exec() == QDialog::Accepted && !pickcharsDialog.selectedChars().isEmpty()) { @@ -744,8 +760,8 @@ AutoType::parseSequence(const QString& entrySequence, const Entry* entry, QStrin mode = AutoTypeExecutor::Mode::VIRTUAL; } actions << QSharedPointer::create(mode); - } else if (placeholder == "beep" || placeholder.startsWith("vkey") || placeholder.startsWith("appactivate") - || placeholder.startsWith("c:")) { + } else if (placeholder.startsWith("beep") || placeholder.startsWith("vkey") + || placeholder.startsWith("appactivate") || placeholder.startsWith("c:")) { // Ignore these commands } else { // Attempt to resolve an entry attribute diff --git a/src/autotype/AutoTypeSelectDialog.cpp b/src/autotype/AutoTypeSelectDialog.cpp index 55a0059bb..4e31b61d0 100644 --- a/src/autotype/AutoTypeSelectDialog.cpp +++ b/src/autotype/AutoTypeSelectDialog.cpp @@ -35,6 +35,14 @@ #include "gui/Clipboard.h" #include "gui/Icons.h" +const auto MENU_FIELD_PROP_NAME = "menu_field"; +enum MENU_FIELD +{ + USERNAME = 1, + PASSWORD, + TOTP, +}; + AutoTypeSelectDialog::AutoTypeSelectDialog(QWidget* parent) : QDialog(parent) , m_ui(new Ui::AutoTypeSelectDialog()) @@ -260,14 +268,22 @@ void AutoTypeSelectDialog::updateActionMenu(const AutoTypeMatch& match) bool hasPassword = !match.first->password().isEmpty(); bool hasTotp = match.first->hasTotp(); - auto actions = m_actionMenu->actions(); - Q_ASSERT(actions.size() >= 6); - actions[0]->setEnabled(hasUsername); - actions[1]->setEnabled(hasPassword); - actions[2]->setEnabled(hasTotp); - actions[3]->setEnabled(hasUsername); - actions[4]->setEnabled(hasPassword); - actions[5]->setEnabled(hasTotp); + for (auto action : m_actionMenu->actions()) { + auto prop = action->property(MENU_FIELD_PROP_NAME); + if (prop.isValid()) { + switch (prop.toInt()) { + case MENU_FIELD::USERNAME: + action->setEnabled(hasUsername); + break; + case MENU_FIELD::PASSWORD: + action->setEnabled(hasPassword); + break; + case MENU_FIELD::TOTP: + action->setEnabled(hasTotp); + break; + } + } + } } void AutoTypeSelectDialog::buildActionMenu() @@ -278,19 +294,16 @@ void AutoTypeSelectDialog::buildActionMenu() auto typeTotpAction = new QAction(icons()->icon("auto-type"), tr("Type {TOTP}"), this); auto copyUsernameAction = new QAction(icons()->icon("username-copy"), tr("Copy Username"), this); auto copyPasswordAction = new QAction(icons()->icon("password-copy"), tr("Copy Password"), this); - auto copyTotpAction = new QAction(icons()->icon("chronometer"), tr("Copy TOTP"), this); + auto copyTotpAction = new QAction(icons()->icon("totp"), tr("Copy TOTP"), this); m_actionMenu->addAction(typeUsernameAction); m_actionMenu->addAction(typePasswordAction); m_actionMenu->addAction(typeTotpAction); -#ifdef Q_OS_WIN - auto typeVirtualAction = new QAction(icons()->icon("auto-type"), tr("Use Virtual Keyboard")); - m_actionMenu->addAction(typeVirtualAction); -#endif m_actionMenu->addAction(copyUsernameAction); m_actionMenu->addAction(copyPasswordAction); m_actionMenu->addAction(copyTotpAction); typeUsernameAction->setShortcut(Qt::CTRL + Qt::Key_1); + typeUsernameAction->setProperty(MENU_FIELD_PROP_NAME, MENU_FIELD::USERNAME); connect(typeUsernameAction, &QAction::triggered, this, [&] { auto match = m_ui->view->currentMatch(); match.second = "{USERNAME}"; @@ -298,6 +311,7 @@ void AutoTypeSelectDialog::buildActionMenu() }); typePasswordAction->setShortcut(Qt::CTRL + Qt::Key_2); + typePasswordAction->setProperty(MENU_FIELD_PROP_NAME, MENU_FIELD::PASSWORD); connect(typePasswordAction, &QAction::triggered, this, [&] { auto match = m_ui->view->currentMatch(); match.second = "{PASSWORD}"; @@ -305,6 +319,7 @@ void AutoTypeSelectDialog::buildActionMenu() }); typeTotpAction->setShortcut(Qt::CTRL + Qt::Key_3); + typeTotpAction->setProperty(MENU_FIELD_PROP_NAME, MENU_FIELD::TOTP); connect(typeTotpAction, &QAction::triggered, this, [&] { auto match = m_ui->view->currentMatch(); match.second = "{TOTP}"; @@ -312,6 +327,8 @@ void AutoTypeSelectDialog::buildActionMenu() }); #ifdef Q_OS_WIN + auto typeVirtualAction = new QAction(icons()->icon("auto-type"), tr("Use Virtual Keyboard"), nullptr); + m_actionMenu->insertAction(copyUsernameAction, typeVirtualAction); typeVirtualAction->setShortcut(Qt::CTRL + Qt::Key_4); connect(typeVirtualAction, &QAction::triggered, this, [&] { m_virtualMode = true; @@ -330,6 +347,7 @@ void AutoTypeSelectDialog::buildActionMenu() #endif #endif + copyUsernameAction->setProperty(MENU_FIELD_PROP_NAME, MENU_FIELD::USERNAME); connect(copyUsernameAction, &QAction::triggered, this, [&] { auto entry = m_ui->view->currentMatch().first; if (entry) { @@ -337,6 +355,8 @@ void AutoTypeSelectDialog::buildActionMenu() reject(); } }); + + copyPasswordAction->setProperty(MENU_FIELD_PROP_NAME, MENU_FIELD::PASSWORD); connect(copyPasswordAction, &QAction::triggered, this, [&] { auto entry = m_ui->view->currentMatch().first; if (entry) { @@ -344,6 +364,8 @@ void AutoTypeSelectDialog::buildActionMenu() reject(); } }); + + copyTotpAction->setProperty(MENU_FIELD_PROP_NAME, MENU_FIELD::TOTP); connect(copyTotpAction, &QAction::triggered, this, [&] { auto entry = m_ui->view->currentMatch().first; if (entry) { diff --git a/src/autotype/CMakeLists.txt b/src/autotype/CMakeLists.txt index 6b9b8b678..79bb50372 100644 --- a/src/autotype/CMakeLists.txt +++ b/src/autotype/CMakeLists.txt @@ -1,16 +1,14 @@ if(WITH_XC_AUTOTYPE) if(UNIX AND NOT APPLE AND NOT HAIKU) - find_package(X11) - find_package(Qt5X11Extras 5.2) + find_package(X11 REQUIRED COMPONENTS Xi XTest) + find_package(Qt5X11Extras 5.2 REQUIRED) if(PRINT_SUMMARY) add_feature_info(libXi X11_Xi_FOUND "The X11 Xi Protocol library is required for auto-type") add_feature_info(libXtst X11_XTest_FOUND "The X11 XTEST Protocol library is required for auto-type") add_feature_info(Qt5X11Extras Qt5X11Extras_FOUND "The Qt5X11Extras library is required for auto-type") endif() - if(X11_FOUND AND X11_Xi_FOUND AND X11_XTest_FOUND AND Qt5X11Extras_FOUND) - add_subdirectory(xcb) - endif() + add_subdirectory(xcb) elseif(APPLE) add_subdirectory(mac) elseif(WIN32) diff --git a/src/autotype/PickcharsDialog.ui b/src/autotype/PickcharsDialog.ui index de9704eb0..2ff3ac0c6 100644 --- a/src/autotype/PickcharsDialog.ui +++ b/src/autotype/PickcharsDialog.ui @@ -34,7 +34,7 @@ - + 0 @@ -74,9 +74,10 @@ - PasswordEdit + PasswordWidget QLineEdit -
    gui/PasswordEdit.h
    +
    gui/PasswordWidget.h
    + 1
    diff --git a/src/autotype/mac/AutoTypeMac.cpp b/src/autotype/mac/AutoTypeMac.cpp index 015abe670..815deeecc 100644 --- a/src/autotype/mac/AutoTypeMac.cpp +++ b/src/autotype/mac/AutoTypeMac.cpp @@ -172,7 +172,7 @@ void AutoTypePlatformMac::sendChar(const QChar& ch, bool isKeyDown) // Send key code to active window // see: Quartz Event Services // -void AutoTypePlatformMac::sendKey(Qt::Key key, bool isKeyDown, Qt::KeyboardModifiers modifiers = 0) +void AutoTypePlatformMac::sendKey(Qt::Key key, bool isKeyDown, Qt::KeyboardModifiers modifiers) { uint16 keyCode = macUtils()->qtToNativeKeyCode(key); if (keyCode == INVALID_KEYCODE) { @@ -238,38 +238,22 @@ AutoTypeAction::Result AutoTypeExecutorMac::execBegin(const AutoTypeBegin* actio AutoTypeAction::Result AutoTypeExecutorMac::execType(const AutoTypeKey* action) { - if (action->modifiers & Qt::ShiftModifier) { - m_platform->sendKey(Qt::Key_Shift, true); - } - if (action->modifiers & Qt::ControlModifier) { - m_platform->sendKey(Qt::Key_Control, true); - } - if (action->modifiers & Qt::AltModifier) { - m_platform->sendKey(Qt::Key_Alt, true); - } - if (action->modifiers & Qt::MetaModifier) { - m_platform->sendKey(Qt::Key_Meta, true); - } + if (action->key != Qt::Key_unknown) { - m_platform->sendKey(action->key, true); - m_platform->sendKey(action->key, false); + m_platform->sendKey(action->key, true, action->modifiers); + m_platform->sendKey(action->key, false, action->modifiers); } else { - m_platform->sendChar(action->character, true); - m_platform->sendChar(action->character, false); - } - - if (action->modifiers & Qt::ShiftModifier) { - m_platform->sendKey(Qt::Key_Shift, false); - } - if (action->modifiers & Qt::ControlModifier) { - m_platform->sendKey(Qt::Key_Control, false); - } - if (action->modifiers & Qt::AltModifier) { - m_platform->sendKey(Qt::Key_Alt, false); - } - if (action->modifiers & Qt::MetaModifier) { - m_platform->sendKey(Qt::Key_Meta, false); + if (action->modifiers != Qt::NoModifier) { + // If we have modifiers set than we intend to send a key sequence + // convert to uppercase to align with Qt Key mappings + int ch = action->character.toUpper().toLatin1(); + m_platform->sendKey(static_cast(ch), true, action->modifiers); + m_platform->sendKey(static_cast(ch), false, action->modifiers); + } else { + m_platform->sendChar(action->character, true); + m_platform->sendChar(action->character, false); + } } Tools::sleep(execDelayMs); @@ -279,8 +263,8 @@ AutoTypeAction::Result AutoTypeExecutorMac::execType(const AutoTypeKey* action) AutoTypeAction::Result AutoTypeExecutorMac::execClearField(const AutoTypeClearField* action) { Q_UNUSED(action); - execType(new AutoTypeKey(Qt::Key_Up, Qt::ControlModifier)); - execType(new AutoTypeKey(Qt::Key_Down, Qt::ControlModifier | Qt::ShiftModifier)); + execType(new AutoTypeKey(Qt::Key_Left, Qt::ControlModifier)); + execType(new AutoTypeKey(Qt::Key_Right, Qt::ControlModifier | Qt::ShiftModifier)); execType(new AutoTypeKey(Qt::Key_Backspace)); return AutoTypeAction::Result::Ok(); } diff --git a/src/autotype/mac/AutoTypeMac.h b/src/autotype/mac/AutoTypeMac.h index e12a06ec5..54805a4e9 100644 --- a/src/autotype/mac/AutoTypeMac.h +++ b/src/autotype/mac/AutoTypeMac.h @@ -45,7 +45,7 @@ public: bool raiseOwnWindow() override; void sendChar(const QChar& ch, bool isKeyDown); - void sendKey(Qt::Key key, bool isKeyDown, Qt::KeyboardModifiers modifiers); + void sendKey(Qt::Key key, bool isKeyDown, Qt::KeyboardModifiers modifiers = 0); private: static int windowLayer(CFDictionaryRef window); diff --git a/src/browser/BrowserAccessControlDialog.cpp b/src/browser/BrowserAccessControlDialog.cpp index 85c940254..3fce10c5c 100644 --- a/src/browser/BrowserAccessControlDialog.cpp +++ b/src/browser/BrowserAccessControlDialog.cpp @@ -1,6 +1,6 @@ /* * Copyright (C) 2013 Francois Ferrand - * Copyright (C) 2017 KeePassXC Team + * Copyright (C) 2022 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,17 +21,19 @@ #include #include "core/Entry.h" +#include BrowserAccessControlDialog::BrowserAccessControlDialog(QWidget* parent) : QDialog(parent) , m_ui(new Ui::BrowserAccessControlDialog()) + , m_entriesAccepted(false) { setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint); m_ui->setupUi(this); connect(m_ui->allowButton, SIGNAL(clicked()), SLOT(accept())); - connect(m_ui->cancelButton, SIGNAL(clicked()), SLOT(reject())); + connect(m_ui->denyButton, SIGNAL(clicked()), SLOT(reject())); } BrowserAccessControlDialog::~BrowserAccessControlDialog() @@ -69,13 +71,10 @@ void BrowserAccessControlDialog::setItems(const QList& items, const QStr } }); m_ui->itemsTable->setCellWidget(row, 1, disableButton); - ++row; } - m_ui->itemsTable->resizeColumnsToContents(); m_ui->itemsTable->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch); - m_ui->allowButton->setFocus(); } diff --git a/src/browser/BrowserAccessControlDialog.h b/src/browser/BrowserAccessControlDialog.h index 0bf14ecc4..946db16d9 100644 --- a/src/browser/BrowserAccessControlDialog.h +++ b/src/browser/BrowserAccessControlDialog.h @@ -1,6 +1,6 @@ /* * Copyright (C) 2013 Francois Ferrand - * Copyright (C) 2017 KeePassXC Team + * Copyright (C) 2022 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,8 +16,8 @@ * along with this program. If not, see . */ -#ifndef BROWSERACCESSCONTROLDIALOG_H -#define BROWSERACCESSCONTROLDIALOG_H +#ifndef KEEPASSXC_BROWSERACCESSCONTROLDIALOG_H +#define KEEPASSXC_BROWSERACCESSCONTROLDIALOG_H #include #include @@ -48,6 +48,9 @@ signals: private: QScopedPointer m_ui; + QList m_entriesToConfirm; + QList m_allowedEntries; + bool m_entriesAccepted; }; -#endif // BROWSERACCESSCONTROLDIALOG_H +#endif // KEEPASSXC_BROWSERACCESSCONTROLDIALOG_H diff --git a/src/browser/BrowserAccessControlDialog.ui b/src/browser/BrowserAccessControlDialog.ui index bed26e6ab..4224c1633 100755 --- a/src/browser/BrowserAccessControlDialog.ui +++ b/src/browser/BrowserAccessControlDialog.ui @@ -97,7 +97,7 @@
    - + Deny All diff --git a/src/browser/BrowserAction.cpp b/src/browser/BrowserAction.cpp index 70a0fb588..4a031a1c8 100644 --- a/src/browser/BrowserAction.cpp +++ b/src/browser/BrowserAction.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 KeePassXC Team + * Copyright (C) 2024 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,20 +17,35 @@ #include "BrowserAction.h" #include "BrowserMessageBuilder.h" -#include "BrowserService.h" +#ifdef WITH_XC_BROWSER_PASSKEYS +#include "BrowserPasskeys.h" +#include "PasskeyUtils.h" +#endif #include "BrowserSettings.h" -#include "BrowserShared.h" -#include "config-keepassx.h" #include "core/Global.h" #include "core/Tools.h" -#include #include -#include #include const int BrowserAction::MaxUrlLength = 256; +static const QString BROWSER_REQUEST_ASSOCIATE = QStringLiteral("associate"); +static const QString BROWSER_REQUEST_CHANGE_PUBLIC_KEYS = QStringLiteral("change-public-keys"); +static const QString BROWSER_REQUEST_CREATE_NEW_GROUP = QStringLiteral("create-new-group"); +static const QString BROWSER_REQUEST_DELETE_ENTRY = QStringLiteral("delete-entry"); +static const QString BROWSER_REQUEST_GENERATE_PASSWORD = QStringLiteral("generate-password"); +static const QString BROWSER_REQUEST_GET_DATABASEHASH = QStringLiteral("get-databasehash"); +static const QString BROWSER_REQUEST_GET_DATABASE_GROUPS = QStringLiteral("get-database-groups"); +static const QString BROWSER_REQUEST_GET_LOGINS = QStringLiteral("get-logins"); +static const QString BROWSER_REQUEST_GET_TOTP = QStringLiteral("get-totp"); +static const QString BROWSER_REQUEST_LOCK_DATABASE = QStringLiteral("lock-database"); +static const QString BROWSER_REQUEST_PASSKEYS_GET = QStringLiteral("passkeys-get"); +static const QString BROWSER_REQUEST_PASSKEYS_REGISTER = QStringLiteral("passkeys-register"); +static const QString BROWSER_REQUEST_REQUEST_AUTOTYPE = QStringLiteral("request-autotype"); +static const QString BROWSER_REQUEST_SET_LOGIN = QStringLiteral("set-login"); +static const QString BROWSER_REQUEST_TEST_ASSOCIATE = QStringLiteral("test-associate"); + QJsonObject BrowserAction::processClientMessage(QLocalSocket* socket, const QJsonObject& json) { if (json.isEmpty()) { @@ -38,17 +53,17 @@ QJsonObject BrowserAction::processClientMessage(QLocalSocket* socket, const QJso } bool triggerUnlock = false; - const QString trigger = json.value("triggerUnlock").toString(); + const auto trigger = json.value("triggerUnlock").toString(); if (!trigger.isEmpty() && trigger.compare(TRUE_STR) == 0) { triggerUnlock = true; } - const QString action = json.value("action").toString(); + const auto action = json.value("action").toString(); if (action.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_INCORRECT_ACTION); } - if (action.compare("change-public-keys") != 0 && action.compare("request-autotype") != 0 + if (action.compare(BROWSER_REQUEST_CHANGE_PUBLIC_KEYS) != 0 && action.compare(BROWSER_REQUEST_REQUEST_AUTOTYPE) != 0 && !browserService()->isDatabaseOpened()) { if (m_clientPublicKey.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_CLIENT_PUBLIC_KEY_NOT_RECEIVED); @@ -67,32 +82,38 @@ QJsonObject BrowserAction::handleAction(QLocalSocket* socket, const QJsonObject& { QString action = json.value("action").toString(); - if (action.compare("change-public-keys") == 0) { + if (action.compare(BROWSER_REQUEST_CHANGE_PUBLIC_KEYS) == 0) { return handleChangePublicKeys(json, action); - } else if (action.compare("get-databasehash") == 0) { + } else if (action.compare(BROWSER_REQUEST_GET_DATABASEHASH) == 0) { return handleGetDatabaseHash(json, action); - } else if (action.compare("associate") == 0) { + } else if (action.compare(BROWSER_REQUEST_ASSOCIATE) == 0) { return handleAssociate(json, action); - } else if (action.compare("test-associate") == 0) { + } else if (action.compare(BROWSER_REQUEST_TEST_ASSOCIATE) == 0) { return handleTestAssociate(json, action); - } else if (action.compare("get-logins") == 0) { + } else if (action.compare(BROWSER_REQUEST_GET_LOGINS) == 0) { return handleGetLogins(json, action); - } else if (action.compare("generate-password") == 0) { + } else if (action.compare(BROWSER_REQUEST_GENERATE_PASSWORD) == 0) { return handleGeneratePassword(socket, json, action); - } else if (action.compare("set-login") == 0) { + } else if (action.compare(BROWSER_REQUEST_SET_LOGIN) == 0) { return handleSetLogin(json, action); - } else if (action.compare("lock-database") == 0) { + } else if (action.compare(BROWSER_REQUEST_LOCK_DATABASE) == 0) { return handleLockDatabase(json, action); - } else if (action.compare("get-database-groups") == 0) { + } else if (action.compare(BROWSER_REQUEST_GET_DATABASE_GROUPS) == 0) { return handleGetDatabaseGroups(json, action); - } else if (action.compare("create-new-group") == 0) { + } else if (action.compare(BROWSER_REQUEST_CREATE_NEW_GROUP) == 0) { return handleCreateNewGroup(json, action); - } else if (action.compare("get-totp") == 0) { + } else if (action.compare(BROWSER_REQUEST_GET_TOTP) == 0) { return handleGetTotp(json, action); - } else if (action.compare("delete-entry") == 0) { + } else if (action.compare(BROWSER_REQUEST_DELETE_ENTRY) == 0) { return handleDeleteEntry(json, action); - } else if (action.compare("request-autotype") == 0) { + } else if (action.compare(BROWSER_REQUEST_REQUEST_AUTOTYPE) == 0) { return handleGlobalAutoType(json, action); +#ifdef WITH_XC_BROWSER_PASSKEYS + } else if (action.compare(BROWSER_REQUEST_PASSKEYS_GET) == 0) { + return handlePasskeysGet(json, action); + } else if (action.compare(BROWSER_REQUEST_PASSKEYS_REGISTER) == 0) { + return handlePasskeysRegister(json, action); +#endif } // Action was not recognized @@ -101,8 +122,8 @@ QJsonObject BrowserAction::handleAction(QLocalSocket* socket, const QJsonObject& QJsonObject BrowserAction::handleChangePublicKeys(const QJsonObject& json, const QString& action) { - const QString nonce = json.value("nonce").toString(); - const QString clientPublicKey = json.value("publicKey").toString(); + const auto nonce = json.value("nonce").toString(); + const auto clientPublicKey = json.value("publicKey").toString(); if (clientPublicKey.isEmpty() || nonce.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_CLIENT_PUBLIC_KEY_NOT_RECEIVED); @@ -118,7 +139,7 @@ QJsonObject BrowserAction::handleChangePublicKeys(const QJsonObject& json, const m_publicKey = keyPair.first; m_secretKey = keyPair.second; - QJsonObject response = browserMessageBuilder()->buildMessage(browserMessageBuilder()->incrementNonce(nonce)); + auto response = browserMessageBuilder()->buildMessage(browserMessageBuilder()->incrementNonce(nonce)); response["action"] = action; response["publicKey"] = keyPair.first; @@ -127,36 +148,19 @@ QJsonObject BrowserAction::handleChangePublicKeys(const QJsonObject& json, const QJsonObject BrowserAction::handleGetDatabaseHash(const QJsonObject& json, const QString& action) { - const QString hash = browserService()->getDatabaseHash(); - const QString nonce = json.value("nonce").toString(); - const QString encrypted = json.value("message").toString(); - const QJsonObject decrypted = decryptMessage(encrypted, nonce); - - if (decrypted.isEmpty()) { + const auto browserRequest = decodeRequest(json); + if (browserRequest.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_CANNOT_DECRYPT_MESSAGE); } - if (hash.isEmpty()) { + if (browserRequest.hash.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_DATABASE_HASH_NOT_RECEIVED); } - QString command = decrypted.value("action").toString(); - if (!command.isEmpty() && command.compare("get-databasehash") == 0) { - const QString newNonce = browserMessageBuilder()->incrementNonce(nonce); - - QJsonObject message = browserMessageBuilder()->buildMessage(newNonce); - message["hash"] = hash; - - // Update a legacy database hash if found - const QJsonArray hashes = decrypted.value("connectedKeys").toArray(); - if (!hashes.isEmpty()) { - const QString legacyHash = browserService()->getDatabaseHash(true); - if (hashes.contains(legacyHash)) { - message["oldHash"] = legacyHash; - } - } - - return buildResponse(action, message, newNonce); + const auto command = browserRequest.getString("action"); + if (!command.isEmpty() && command.compare(BROWSER_REQUEST_GET_DATABASEHASH) == 0) { + const Parameters params{{"hash", browserRequest.hash}}; + return buildResponse(action, browserRequest.incrementedNonce, params); } return getErrorReply(action, ERROR_KEEPASS_CANNOT_DECRYPT_MESSAGE); @@ -164,16 +168,12 @@ QJsonObject BrowserAction::handleGetDatabaseHash(const QJsonObject& json, const QJsonObject BrowserAction::handleAssociate(const QJsonObject& json, const QString& action) { - const QString hash = browserService()->getDatabaseHash(); - const QString nonce = json.value("nonce").toString(); - const QString encrypted = json.value("message").toString(); - const QJsonObject decrypted = decryptMessage(encrypted, nonce); - - if (decrypted.isEmpty()) { + const auto browserRequest = decodeRequest(json); + if (browserRequest.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_CANNOT_DECRYPT_MESSAGE); } - const QString key = decrypted.value("key").toString(); + const auto key = browserRequest.getString("key"); if (key.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_ASSOCIATION_FAILED); } @@ -181,19 +181,16 @@ QJsonObject BrowserAction::handleAssociate(const QJsonObject& json, const QStrin if (key.compare(m_clientPublicKey) == 0) { // Check for identification key. If it's not found, ensure backwards compatibility and use the current public // key - const QString idKey = decrypted.value("idKey").toString(); - const QString id = browserService()->storeKey((idKey.isEmpty() ? key : idKey)); + const auto idKey = browserRequest.getString("idKey"); + const auto id = browserService()->storeKey((idKey.isEmpty() ? key : idKey)); if (id.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_ACTION_CANCELLED_OR_DENIED); } m_associated = true; - const QString newNonce = browserMessageBuilder()->incrementNonce(nonce); - QJsonObject message = browserMessageBuilder()->buildMessage(newNonce); - message["hash"] = hash; - message["id"] = id; - return buildResponse(action, message, newNonce); + const Parameters params{{"hash", browserRequest.hash}, {"id", id}}; + return buildResponse(action, browserRequest.incrementedNonce, params); } return getErrorReply(action, ERROR_KEEPASS_ASSOCIATION_FAILED); @@ -201,98 +198,76 @@ QJsonObject BrowserAction::handleAssociate(const QJsonObject& json, const QStrin QJsonObject BrowserAction::handleTestAssociate(const QJsonObject& json, const QString& action) { - const QString hash = browserService()->getDatabaseHash(); - const QString nonce = json.value("nonce").toString(); - const QString encrypted = json.value("message").toString(); - const QJsonObject decrypted = decryptMessage(encrypted, nonce); - - if (decrypted.isEmpty()) { + const auto browserRequest = decodeRequest(json); + if (browserRequest.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_CANNOT_DECRYPT_MESSAGE); } - const QString responseKey = decrypted.value("key").toString(); - const QString id = decrypted.value("id").toString(); + const auto responseKey = browserRequest.getString("key"); + const auto id = browserRequest.getString("id"); if (responseKey.isEmpty() || id.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_DATABASE_NOT_OPENED); } - const QString key = browserService()->getKey(id); + const auto key = browserService()->getKey(id); if (key.isEmpty() || key.compare(responseKey) != 0) { return getErrorReply(action, ERROR_KEEPASS_ASSOCIATION_FAILED); } m_associated = true; - const QString newNonce = browserMessageBuilder()->incrementNonce(nonce); - QJsonObject message = browserMessageBuilder()->buildMessage(newNonce); - message["hash"] = hash; - message["id"] = id; - - return buildResponse(action, message, newNonce); + const Parameters params{{"hash", browserRequest.hash}, {"id", id}}; + return buildResponse(action, browserRequest.incrementedNonce, params); } QJsonObject BrowserAction::handleGetLogins(const QJsonObject& json, const QString& action) { - const QString hash = browserService()->getDatabaseHash(); - const QString nonce = json.value("nonce").toString(); - const QString encrypted = json.value("message").toString(); - if (!m_associated) { return getErrorReply(action, ERROR_KEEPASS_ASSOCIATION_FAILED); } - const QJsonObject decrypted = decryptMessage(encrypted, nonce); - if (decrypted.isEmpty()) { + const auto browserRequest = decodeRequest(json); + if (browserRequest.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_CANNOT_DECRYPT_MESSAGE); } - const QString siteUrl = decrypted.value("url").toString(); + const auto siteUrl = browserRequest.getString("url"); if (siteUrl.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_NO_URL_PROVIDED); } - const QJsonArray keys = decrypted.value("keys").toArray(); - - StringPairList keyList; - for (const QJsonValue val : keys) { - const QJsonObject keyObject = val.toObject(); - keyList.push_back(qMakePair(keyObject.value("id").toString(), keyObject.value("key").toString())); - } - - const QString id = decrypted.value("id").toString(); - const QString formUrl = decrypted.value("submitUrl").toString(); - const QString auth = decrypted.value("httpAuth").toString(); + const auto id = browserRequest.getString("id"); + const auto formUrl = browserRequest.getString("submitUrl"); + const auto auth = browserRequest.getString("httpAuth"); const bool httpAuth = auth.compare(TRUE_STR) == 0; - const QJsonArray users = browserService()->findMatchingEntries(id, siteUrl, formUrl, "", keyList, httpAuth); + const auto keyList = getConnectionKeys(browserRequest); - if (users.isEmpty()) { + EntryParameters entryParameters; + entryParameters.dbid = id; + entryParameters.hash = browserRequest.hash; + entryParameters.siteUrl = siteUrl; + entryParameters.formUrl = formUrl; + entryParameters.httpAuth = httpAuth; + + bool entriesFound = false; + const auto entries = browserService()->findEntries(entryParameters, keyList, &entriesFound); + if (!entriesFound) { return getErrorReply(action, ERROR_KEEPASS_NO_LOGINS_FOUND); } - const QString newNonce = browserMessageBuilder()->incrementNonce(nonce); - - QJsonObject message = browserMessageBuilder()->buildMessage(newNonce); - message["count"] = users.count(); - message["entries"] = users; - message["hash"] = hash; - message["id"] = id; - - return buildResponse(action, message, newNonce); + const Parameters params{ + {"count", entries.count()}, {"entries", entries}, {"hash", browserRequest.hash}, {"id", id}}; + return buildResponse(action, browserRequest.incrementedNonce, params); } QJsonObject BrowserAction::handleGeneratePassword(QLocalSocket* socket, const QJsonObject& json, const QString& action) { - auto errorMessage = getErrorReply(action, ERROR_KEEPASS_ACTION_CANCELLED_OR_DENIED); - auto nonce = json.value("nonce").toString(); - auto incrementedNonce = browserMessageBuilder()->incrementNonce(nonce); - - const QString encrypted = json.value("message").toString(); - const QJsonObject decrypted = decryptMessage(encrypted, nonce); - if (decrypted.isEmpty()) { + const auto browserRequest = decodeRequest(json); + if (browserRequest.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_CANNOT_DECRYPT_MESSAGE); } - auto requestId = decrypted.value("requestID").toString(); + const auto requestId = browserRequest.getString("requestID"); // Do not allow multiple requests from the same client if (browserService()->isPasswordGeneratorRequested()) { @@ -306,86 +281,80 @@ QJsonObject BrowserAction::handleGeneratePassword(QLocalSocket* socket, const QJ return errorReply; } - browserService()->showPasswordGenerator(socket, incrementedNonce, m_clientPublicKey, m_secretKey); - return QJsonObject(); + KeyPairMessage keyPairMessage{socket, browserRequest.incrementedNonce, m_clientPublicKey, m_secretKey}; + + browserService()->showPasswordGenerator(keyPairMessage); + return {}; } QJsonObject BrowserAction::handleSetLogin(const QJsonObject& json, const QString& action) { - const QString hash = browserService()->getDatabaseHash(); - const QString nonce = json.value("nonce").toString(); - const QString encrypted = json.value("message").toString(); - if (!m_associated) { return getErrorReply(action, ERROR_KEEPASS_ASSOCIATION_FAILED); } - const QJsonObject decrypted = decryptMessage(encrypted, nonce); - if (decrypted.isEmpty()) { + const auto browserRequest = decodeRequest(json); + if (browserRequest.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_CANNOT_DECRYPT_MESSAGE); } - const QString url = decrypted.value("url").toString(); + const auto url = browserRequest.getString("url"); if (url.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_NO_URL_PROVIDED); } - const QString id = decrypted.value("id").toString(); - const QString login = decrypted.value("login").toString(); - const QString password = decrypted.value("password").toString(); - const QString submitUrl = decrypted.value("submitUrl").toString(); - const QString uuid = decrypted.value("uuid").toString(); - const QString group = decrypted.value("group").toString(); - const QString groupUuid = decrypted.value("groupUuid").toString(); - const QString downloadFavicon = decrypted.value("downloadFavicon").toString(); + const auto id = browserRequest.getString("id"); + const auto login = browserRequest.getString("login"); + const auto password = browserRequest.getString("password"); + const auto submitUrl = browserRequest.getString("submitUrl"); + const auto uuid = browserRequest.getString("uuid"); + const auto group = browserRequest.getString("group"); + const auto groupUuid = browserRequest.getString("groupUuid"); + const auto downloadFavicon = browserRequest.getString("downloadFavicon"); const QString realm; + EntryParameters entryParameters; + entryParameters.dbid = id; + entryParameters.login = login; + entryParameters.password = password; + entryParameters.siteUrl = url; + entryParameters.formUrl = submitUrl; + entryParameters.realm = realm; + bool result = true; if (uuid.isEmpty()) { auto dlFavicon = !downloadFavicon.isEmpty() && downloadFavicon.compare(TRUE_STR) == 0; - browserService()->addEntry(id, login, password, url, submitUrl, realm, group, groupUuid, dlFavicon); + browserService()->addEntry(entryParameters, group, groupUuid, dlFavicon); } else { if (!Tools::isValidUuid(uuid)) { return getErrorReply(action, ERROR_KEEPASS_NO_VALID_UUID_PROVIDED); } - result = browserService()->updateEntry(id, uuid, login, password, url, submitUrl); + result = browserService()->updateEntry(entryParameters, uuid); } - const QString newNonce = browserMessageBuilder()->incrementNonce(nonce); - - QJsonObject message = browserMessageBuilder()->buildMessage(newNonce); - message["count"] = QJsonValue::Null; - message["entries"] = QJsonValue::Null; - message["error"] = result ? QStringLiteral("success") : QStringLiteral("error"); - message["hash"] = hash; - - return buildResponse(action, message, newNonce); + const Parameters params{{"count", QJsonValue::Null}, + {"entries", QJsonValue::Null}, + {"error", result ? QStringLiteral("success") : QStringLiteral("error")}, + {"hash", browserRequest.hash}}; + return buildResponse(action, browserRequest.incrementedNonce, params); } QJsonObject BrowserAction::handleLockDatabase(const QJsonObject& json, const QString& action) { - const QString hash = browserService()->getDatabaseHash(); - const QString nonce = json.value("nonce").toString(); - const QString encrypted = json.value("message").toString(); - const QJsonObject decrypted = decryptMessage(encrypted, nonce); - - if (decrypted.isEmpty()) { + const auto browserRequest = decodeRequest(json); + if (browserRequest.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_CANNOT_DECRYPT_MESSAGE); } - if (hash.isEmpty()) { + if (browserRequest.hash.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_DATABASE_HASH_NOT_RECEIVED); } - QString command = decrypted.value("action").toString(); - if (!command.isEmpty() && command.compare("lock-database") == 0) { + const auto command = browserRequest.getString("action"); + if (!command.isEmpty() && command.compare(BROWSER_REQUEST_LOCK_DATABASE) == 0) { browserService()->lockDatabase(); - - const QString newNonce = browserMessageBuilder()->incrementNonce(nonce); - QJsonObject message = browserMessageBuilder()->buildMessage(newNonce); - - return buildResponse(action, message, newNonce); + return buildResponse(action, browserRequest.incrementedNonce); } return getErrorReply(action, ERROR_KEEPASS_DATABASE_HASH_NOT_RECEIVED); @@ -393,166 +362,197 @@ QJsonObject BrowserAction::handleLockDatabase(const QJsonObject& json, const QSt QJsonObject BrowserAction::handleGetDatabaseGroups(const QJsonObject& json, const QString& action) { - const QString hash = browserService()->getDatabaseHash(); - const QString nonce = json.value("nonce").toString(); - const QString encrypted = json.value("message").toString(); - if (!m_associated) { return getErrorReply(action, ERROR_KEEPASS_ASSOCIATION_FAILED); } - const QJsonObject decrypted = decryptMessage(encrypted, nonce); - if (decrypted.isEmpty()) { + const auto browserRequest = decodeRequest(json); + if (browserRequest.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_CANNOT_DECRYPT_MESSAGE); } - QString command = decrypted.value("action").toString(); - if (command.isEmpty() || command.compare("get-database-groups") != 0) { + const auto command = browserRequest.getString("action"); + if (command.isEmpty() || command.compare(BROWSER_REQUEST_GET_DATABASE_GROUPS) != 0) { return getErrorReply(action, ERROR_KEEPASS_INCORRECT_ACTION); } - const QJsonObject groups = browserService()->getDatabaseGroups(); + const auto groups = browserService()->getDatabaseGroups(); if (groups.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_NO_GROUPS_FOUND); } - const QString newNonce = browserMessageBuilder()->incrementNonce(nonce); - - QJsonObject message = browserMessageBuilder()->buildMessage(newNonce); - message["groups"] = groups; - - return buildResponse(action, message, newNonce); + const Parameters params{{"groups", groups}}; + return buildResponse(action, browserRequest.incrementedNonce, params); } QJsonObject BrowserAction::handleCreateNewGroup(const QJsonObject& json, const QString& action) { - const QString hash = browserService()->getDatabaseHash(); - const QString nonce = json.value("nonce").toString(); - const QString encrypted = json.value("message").toString(); - if (!m_associated) { return getErrorReply(action, ERROR_KEEPASS_ASSOCIATION_FAILED); } - const QJsonObject decrypted = decryptMessage(encrypted, nonce); - if (decrypted.isEmpty()) { + const auto browserRequest = decodeRequest(json); + if (browserRequest.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_CANNOT_DECRYPT_MESSAGE); } - QString command = decrypted.value("action").toString(); - if (command.isEmpty() || command.compare("create-new-group") != 0) { + const auto command = browserRequest.getString("action"); + if (command.isEmpty() || command.compare(BROWSER_REQUEST_CREATE_NEW_GROUP) != 0) { return getErrorReply(action, ERROR_KEEPASS_INCORRECT_ACTION); } - QString group = decrypted.value("groupName").toString(); - const QJsonObject newGroup = browserService()->createNewGroup(group); + const auto group = browserRequest.getString("groupName"); + const auto newGroup = browserService()->createNewGroup(group); if (newGroup.isEmpty() || newGroup["name"].toString().isEmpty() || newGroup["uuid"].toString().isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_CANNOT_CREATE_NEW_GROUP); } - const QString newNonce = browserMessageBuilder()->incrementNonce(nonce); - - QJsonObject message = browserMessageBuilder()->buildMessage(newNonce); - message["name"] = newGroup["name"]; - message["uuid"] = newGroup["uuid"]; - - return buildResponse(action, message, newNonce); + const Parameters params{{"name", newGroup["name"]}, {"uuid", newGroup["uuid"]}}; + return buildResponse(action, browserRequest.incrementedNonce, params); } QJsonObject BrowserAction::handleGetTotp(const QJsonObject& json, const QString& action) { - const QString nonce = json.value("nonce").toString(); - const QString encrypted = json.value("message").toString(); - if (!m_associated) { return getErrorReply(action, ERROR_KEEPASS_ASSOCIATION_FAILED); } - const QJsonObject decrypted = decryptMessage(encrypted, nonce); - if (decrypted.isEmpty()) { + const auto browserRequest = decodeRequest(json); + if (browserRequest.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_CANNOT_DECRYPT_MESSAGE); } - QString command = decrypted.value("action").toString(); - if (command.isEmpty() || command.compare("get-totp") != 0) { + const auto command = browserRequest.getString("action"); + if (command.isEmpty() || command.compare(BROWSER_REQUEST_GET_TOTP) != 0) { return getErrorReply(action, ERROR_KEEPASS_INCORRECT_ACTION); } - const QString uuid = decrypted.value("uuid").toString(); + const auto uuid = browserRequest.getString("uuid"); if (!Tools::isValidUuid(uuid)) { return getErrorReply(action, ERROR_KEEPASS_NO_VALID_UUID_PROVIDED); } - // Get the current TOTP - const auto totp = browserService()->getCurrentTotp(uuid); - const QString newNonce = browserMessageBuilder()->incrementNonce(nonce); - - QJsonObject message = browserMessageBuilder()->buildMessage(newNonce); - message["totp"] = totp; - - return buildResponse(action, message, newNonce); + const Parameters params{{"totp", browserService()->getCurrentTotp(uuid)}}; + return buildResponse(action, browserRequest.incrementedNonce, params); } QJsonObject BrowserAction::handleDeleteEntry(const QJsonObject& json, const QString& action) { - const QString nonce = json.value("nonce").toString(); - const QString encrypted = json.value("message").toString(); - if (!m_associated) { return getErrorReply(action, ERROR_KEEPASS_ASSOCIATION_FAILED); } - const QJsonObject decrypted = decryptMessage(encrypted, nonce); - if (decrypted.isEmpty()) { + const auto browserRequest = decodeRequest(json); + if (browserRequest.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_CANNOT_DECRYPT_MESSAGE); } - QString command = decrypted.value("action").toString(); - if (command.isEmpty() || command.compare("delete-entry") != 0) { + const auto command = browserRequest.getString("action"); + if (command.isEmpty() || command.compare(BROWSER_REQUEST_DELETE_ENTRY) != 0) { return getErrorReply(action, ERROR_KEEPASS_INCORRECT_ACTION); } - const auto uuid = decrypted.value("uuid").toString(); + const auto uuid = browserRequest.getString("uuid"); if (!Tools::isValidUuid(uuid)) { return getErrorReply(action, ERROR_KEEPASS_NO_VALID_UUID_PROVIDED); } const auto result = browserService()->deleteEntry(uuid); - const QString newNonce = browserMessageBuilder()->incrementNonce(nonce); - QJsonObject message = browserMessageBuilder()->buildMessage(newNonce); - message["success"] = result ? TRUE_STR : FALSE_STR; - - return buildResponse(action, message, newNonce); + const Parameters params{{"success", result ? TRUE_STR : FALSE_STR}}; + return buildResponse(action, browserRequest.incrementedNonce, params); } QJsonObject BrowserAction::handleGlobalAutoType(const QJsonObject& json, const QString& action) { - const QString nonce = json.value("nonce").toString(); - const QString encrypted = json.value("message").toString(); - const QJsonObject decrypted = decryptMessage(encrypted, nonce); - - if (decrypted.isEmpty()) { + const auto browserRequest = decodeRequest(json); + if (browserRequest.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_CANNOT_DECRYPT_MESSAGE); } - QString command = decrypted.value("action").toString(); - if (command.isEmpty() || command.compare("request-autotype") != 0) { + const auto command = browserRequest.getString("action"); + if (command.isEmpty() || command.compare(BROWSER_REQUEST_REQUEST_AUTOTYPE) != 0) { return getErrorReply(action, ERROR_KEEPASS_INCORRECT_ACTION); } - const auto topLevelDomain = decrypted.value("search").toString(); + const auto topLevelDomain = browserRequest.getString("search"); if (topLevelDomain.length() > BrowserAction::MaxUrlLength) { return getErrorReply(action, ERROR_KEEPASS_NO_URL_PROVIDED); } browserService()->requestGlobalAutoType(topLevelDomain); - const QString newNonce = browserMessageBuilder()->incrementNonce(nonce); - QJsonObject message = browserMessageBuilder()->buildMessage(newNonce); - return buildResponse(action, message, newNonce); + return buildResponse(action, browserRequest.incrementedNonce); } +#ifdef WITH_XC_BROWSER_PASSKEYS +QJsonObject BrowserAction::handlePasskeysGet(const QJsonObject& json, const QString& action) +{ + if (!m_associated) { + return getErrorReply(action, ERROR_KEEPASS_ASSOCIATION_FAILED); + } + + const auto browserRequest = decodeRequest(json); + if (browserRequest.isEmpty()) { + return getErrorReply(action, ERROR_KEEPASS_CANNOT_DECRYPT_MESSAGE); + } + + const auto command = browserRequest.getString("action"); + if (command.isEmpty() || command.compare(BROWSER_REQUEST_PASSKEYS_GET) != 0) { + return getErrorReply(action, ERROR_KEEPASS_INCORRECT_ACTION); + } + + const auto publicKey = browserRequest.getObject("publicKey"); + if (publicKey.isEmpty()) { + return getErrorReply(action, ERROR_PASSKEYS_EMPTY_PUBLIC_KEY); + } + + const auto origin = browserRequest.getString("origin"); + if (!passkeyUtils()->isOriginAllowedWithLocalhost(browserSettings()->allowLocalhostWithPasskeys(), origin)) { + return getErrorReply(action, ERROR_PASSKEYS_INVALID_URL_PROVIDED); + } + + const auto keyList = getConnectionKeys(browserRequest); + const auto response = browserService()->showPasskeysAuthenticationPrompt(publicKey, origin, keyList); + + const Parameters params{{"response", response}}; + return buildResponse(action, browserRequest.incrementedNonce, params); +} + +QJsonObject BrowserAction::handlePasskeysRegister(const QJsonObject& json, const QString& action) +{ + if (!m_associated) { + return getErrorReply(action, ERROR_KEEPASS_ASSOCIATION_FAILED); + } + + const auto browserRequest = decodeRequest(json); + if (browserRequest.isEmpty()) { + return getErrorReply(action, ERROR_KEEPASS_CANNOT_DECRYPT_MESSAGE); + } + + const auto command = browserRequest.getString("action"); + if (command.isEmpty() || command.compare(BROWSER_REQUEST_PASSKEYS_REGISTER) != 0) { + return getErrorReply(action, ERROR_KEEPASS_INCORRECT_ACTION); + } + + const auto publicKey = browserRequest.getObject("publicKey"); + if (publicKey.isEmpty()) { + return getErrorReply(action, ERROR_PASSKEYS_EMPTY_PUBLIC_KEY); + } + + const auto origin = browserRequest.getString("origin"); + if (!passkeyUtils()->isOriginAllowedWithLocalhost(browserSettings()->allowLocalhostWithPasskeys(), origin)) { + return getErrorReply(action, ERROR_PASSKEYS_INVALID_URL_PROVIDED); + } + + const auto keyList = getConnectionKeys(browserRequest); + const auto response = browserService()->showPasskeysRegisterPrompt(publicKey, origin, keyList); + + const Parameters params{{"response", response}}; + return buildResponse(action, browserRequest.incrementedNonce, params); +} +#endif + QJsonObject BrowserAction::decryptMessage(const QString& message, const QString& nonce) { return browserMessageBuilder()->decryptMessage(message, nonce, m_clientPublicKey, m_secretKey); @@ -563,7 +563,31 @@ QJsonObject BrowserAction::getErrorReply(const QString& action, const int errorC return browserMessageBuilder()->getErrorReply(action, errorCode); } -QJsonObject BrowserAction::buildResponse(const QString& action, const QJsonObject& message, const QString& nonce) +QJsonObject BrowserAction::buildResponse(const QString& action, const QString& nonce, const Parameters& params) { - return browserMessageBuilder()->buildResponse(action, message, nonce, m_clientPublicKey, m_secretKey); + return browserMessageBuilder()->buildResponse(action, nonce, params, m_clientPublicKey, m_secretKey); +} + +BrowserRequest BrowserAction::decodeRequest(const QJsonObject& json) +{ + const auto nonce = json.value("nonce").toString(); + const auto encrypted = json.value("message").toString(); + + return {browserService()->getDatabaseHash(), + nonce, + browserMessageBuilder()->incrementNonce(nonce), + decryptMessage(encrypted, nonce)}; +} + +StringPairList BrowserAction::getConnectionKeys(const BrowserRequest& browserRequest) +{ + const auto keys = browserRequest.getArray("keys"); + + StringPairList keyList; + for (const auto val : keys) { + const auto keyObject = val.toObject(); + keyList.push_back(qMakePair(keyObject.value("id").toString(), keyObject.value("key").toString())); + } + + return keyList; } diff --git a/src/browser/BrowserAction.h b/src/browser/BrowserAction.h index 49c66b644..f737982f0 100644 --- a/src/browser/BrowserAction.h +++ b/src/browser/BrowserAction.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 KeePassXC Team + * Copyright (C) 2023 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,14 +15,51 @@ * along with this program. If not, see . */ -#ifndef BROWSERACTION_H -#define BROWSERACTION_H +#ifndef KEEPASSXC_BROWSERACTION_H +#define KEEPASSXC_BROWSERACTION_H +#include "BrowserMessageBuilder.h" +#include "BrowserService.h" + +#include +#include #include -class QJsonObject; class QLocalSocket; +struct BrowserRequest +{ + QString hash; + QString nonce; + QString incrementedNonce; + QJsonObject decrypted; + + inline bool isEmpty() const + { + return decrypted.isEmpty(); + } + + inline QJsonArray getArray(const QString& param) const + { + return decrypted.value(param).toArray(); + } + + inline bool getBool(const QString& param) const + { + return decrypted.value(param).toBool(); + } + + inline QJsonObject getObject(const QString& param) const + { + return decrypted.value(param).toObject(); + } + + inline QString getString(const QString& param) const + { + return decrypted.value(param).toString(); + } +}; + class BrowserAction { public: @@ -46,12 +83,17 @@ private: QJsonObject handleGetTotp(const QJsonObject& json, const QString& action); QJsonObject handleDeleteEntry(const QJsonObject& json, const QString& action); QJsonObject handleGlobalAutoType(const QJsonObject& json, const QString& action); +#ifdef WITH_XC_BROWSER_PASSKEYS + QJsonObject handlePasskeysGet(const QJsonObject& json, const QString& action); + QJsonObject handlePasskeysRegister(const QJsonObject& json, const QString& action); +#endif private: - QJsonObject buildMessage(const QString& nonce) const; - QJsonObject buildResponse(const QString& action, const QJsonObject& message, const QString& nonce); + QJsonObject buildResponse(const QString& action, const QString& nonce, const Parameters& params = {}); QJsonObject getErrorReply(const QString& action, const int errorCode) const; QJsonObject decryptMessage(const QString& message, const QString& nonce); + BrowserRequest decodeRequest(const QJsonObject& json); + StringPairList getConnectionKeys(const BrowserRequest& browserRequest); private: static const int MaxUrlLength; @@ -64,4 +106,4 @@ private: friend class TestBrowser; }; -#endif // BROWSERACTION_H +#endif // KEEPASSXC_BROWSERACTION_H diff --git a/src/browser/BrowserCbor.cpp b/src/browser/BrowserCbor.cpp new file mode 100644 index 000000000..e0f05d34e --- /dev/null +++ b/src/browser/BrowserCbor.cpp @@ -0,0 +1,267 @@ +/* + * Copyright (C) 2024 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "BrowserCbor.h" +#include "BrowserMessageBuilder.h" +#include +#include +#include + +// https://w3c.github.io/webauthn/#sctn-none-attestation +// https://w3c.github.io/webauthn/#sctn-generating-an-attestation-object +QByteArray BrowserCbor::cborEncodeAttestation(const QByteArray& authData) const +{ + QByteArray result; + QCborStreamWriter writer(&result); + + writer.startMap(3); + + writer.append("fmt"); + writer.append("none"); + + writer.append("attStmt"); + writer.startMap(0); + writer.endMap(); + + writer.append("authData"); + writer.appendByteString(authData.constData(), authData.size()); + + writer.endMap(); + + return result; +} + +// https://w3c.github.io/webauthn/#authdata-attestedcredentialdata-credentialpublickey +QByteArray BrowserCbor::cborEncodePublicKey(int alg, const QByteArray& first, const QByteArray& second) const +{ + const auto keyType = getCoseKeyType(alg); + if (keyType == 0) { + return {}; + } + + const auto curveParameter = getCurveParameter(alg); + if ((alg == WebAuthnAlgorithms::ES256 || alg == WebAuthnAlgorithms::EDDSA) && curveParameter == 0) { + return {}; + } + + QByteArray result; + QCborStreamWriter writer(&result); + + if (alg == WebAuthnAlgorithms::ES256) { + writer.startMap(5); + + // Key type + writer.append(1); + writer.append(keyType); + + // Signature algorithm + writer.append(3); + writer.append(alg); + + // Curve parameter + writer.append(-1); + writer.append(curveParameter); + + // Key x-coordinate + writer.append(-2); + writer.append(first); + + // Key y-coordinate + writer.append(-3); + writer.append(second); + + writer.endMap(); + } else if (alg == WebAuthnAlgorithms::RS256) { + writer.startMap(4); + + // Key type + writer.append(1); + writer.append(keyType); + + // Signature algorithm + writer.append(3); + writer.append(alg); + + // Key modulus + writer.append(-1); + writer.append(first); + + // Key exponent + writer.append(-2); + writer.append(second); + + writer.endMap(); + } else if (alg == WebAuthnAlgorithms::EDDSA) { + writer.startMap(4); + + // Key type + writer.append(1); + writer.append(keyType); + + // Algorithm + writer.append(3); + writer.append(alg); + + // Curve parameter + writer.append(-1); + writer.append(curveParameter); + + // Public key + writer.append(-2); + writer.append(first); + + writer.endMap(); + } + + return result; +} + +// See: https://fidoalliance.org/specs/common-specs/fido-registry-v2.1-ps-20191217.html#user-verification-methods +QByteArray BrowserCbor::cborEncodeExtensionData(const QJsonObject& extensions) const +{ + if (extensions.empty()) { + return {}; + } + + QByteArray result; + QCborStreamWriter writer(&result); + + writer.startMap(extensions.keys().count()); + if (extensions["credProps"].toBool()) { + writer.append("credProps"); + writer.startMap(1); + writer.append("rk"); + writer.append(true); + writer.endMap(); + } + + if (extensions["uvm"].toBool()) { + writer.append("uvm"); + + writer.startArray(1); + writer.startArray(3); + + // userVerificationMethod (USER_VERIFY_PRESENCE_INTERNAL "presence_internal", 0x00000001) + writer.append(quint32(1)); + + // keyProtectionType (KEY_PROTECTION_SOFTWARE "software", 0x0001) + writer.append(quint16(1)); + + // matcherProtectionType (MATCHER_PROTECTION_SOFTWARE "software", 0x0001) + writer.append(quint16(1)); + + writer.endArray(); + writer.endArray(); + } + writer.endMap(); + + return result; +} + +QJsonObject BrowserCbor::getJsonFromCborData(const QByteArray& byteArray) const +{ + auto reader = QCborStreamReader(byteArray); + auto contents = QCborValue::fromCbor(reader); + if (reader.lastError()) { + return {}; + } + + const auto ret = handleCborValue(contents); + + // Parse variant result to QJsonDocument + const auto jsonDocument = QJsonDocument::fromVariant(ret); + if (jsonDocument.isNull() || jsonDocument.isEmpty()) { + return {}; + } + + return jsonDocument.object(); +} + +QVariant BrowserCbor::handleCborArray(const QCborArray& array) const +{ + QVariantList result; + result.reserve(array.size()); + + for (auto a : array) { + result.append(handleCborValue(a)); + } + + return result; +} + +QVariant BrowserCbor::handleCborMap(const QCborMap& map) const +{ + QVariantMap result; + for (auto pair : map) { + result.insert(handleCborValue(pair.first).toString(), handleCborValue(pair.second)); + } + + return QVariant::fromValue(result); +} + +QVariant BrowserCbor::handleCborValue(const QCborValue& value) const +{ + if (value.isArray()) { + return handleCborArray(value.toArray()); + } else if (value.isMap()) { + return handleCborMap(value.toMap()); + } else if (value.isByteArray()) { + auto ba = value.toByteArray(); + + // Return base64 instead of raw byte array + auto base64Str = browserMessageBuilder()->getBase64FromArray(ba); + return QVariant::fromValue(base64Str); + } + + return value.toVariant(); +} + +// https://www.rfc-editor.org/rfc/rfc8152#section-13.1 +unsigned int BrowserCbor::getCurveParameter(int alg) const +{ + switch (alg) { + case WebAuthnAlgorithms::ES256: + return WebAuthnCurveKey::P256; + case WebAuthnAlgorithms::ES384: + return WebAuthnCurveKey::P384; + case WebAuthnAlgorithms::ES512: + return WebAuthnCurveKey::P521; + case WebAuthnAlgorithms::EDDSA: + return WebAuthnCurveKey::ED25519; + default: + return WebAuthnCurveKey::INVALID_CURVE_KEY; + } +} + +// See: https://www.rfc-editor.org/rfc/rfc8152 +// AES/HMAC/ChaCha20 etc. carries symmetric keys (4) and OKP not supported currently. +unsigned int BrowserCbor::getCoseKeyType(int alg) const +{ + switch (alg) { + case WebAuthnAlgorithms::ES256: + return WebAuthnCoseKeyType::EC2; + case WebAuthnAlgorithms::ES384: + case WebAuthnAlgorithms::ES512: + return WebAuthnCoseKeyType::INVALID_COSE_KEY_TYPE; + case WebAuthnAlgorithms::EDDSA: + return WebAuthnCoseKeyType::OKP; + case WebAuthnAlgorithms::RS256: + return WebAuthnCoseKeyType::RSA; + default: + return WebAuthnCoseKeyType::INVALID_COSE_KEY_TYPE; + } +} diff --git a/src/browser/BrowserCbor.h b/src/browser/BrowserCbor.h new file mode 100644 index 000000000..52baa4fc8 --- /dev/null +++ b/src/browser/BrowserCbor.h @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2024 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSXC_BROWSERCBOR_H +#define KEEPASSXC_BROWSERCBOR_H + +#include +#include +#include +#include + +enum WebAuthnAlgorithms : int +{ + ES256 = -7, + EDDSA = -8, + ES384 = -35, + ES512 = -36, + RS256 = -257 +}; + +// https://www.rfc-editor.org/rfc/rfc9053#section-7.1 +enum WebAuthnCurveKey : int +{ + INVALID_CURVE_KEY = 0, + P256 = 1, // EC2, NIST P-256, also known as secp256r1 + P384 = 2, // EC2, NIST P-384, also known as secp384r1 + P521 = 3, // EC2, NIST P-521, also known as secp521r1 + X25519 = 4, // OKP, X25519 for use w/ ECDH only + X448 = 5, // OKP, X448 for use w/ ECDH only + ED25519 = 6, // OKP, Ed25519 for use w/ EdDSA only + ED448 = 7 // OKP, Ed448 for use w/ EdDSA only +}; + +// https://www.rfc-editor.org/rfc/rfc8152 +// For RSA: https://www.rfc-editor.org/rfc/rfc8230#section-4 +enum WebAuthnCoseKeyType : int +{ + INVALID_COSE_KEY_TYPE = 0, + OKP = 1, // Octet Keypair + EC2 = 2, // Elliptic Curve + RSA = 3 // RSA +}; + +class BrowserCbor +{ +public: + QByteArray cborEncodeAttestation(const QByteArray& authData) const; + QByteArray cborEncodePublicKey(int alg, const QByteArray& first, const QByteArray& second) const; + QByteArray cborEncodeExtensionData(const QJsonObject& extensions) const; + QJsonObject getJsonFromCborData(const QByteArray& byteArray) const; + QVariant handleCborArray(const QCborArray& array) const; + QVariant handleCborMap(const QCborMap& map) const; + QVariant handleCborValue(const QCborValue& value) const; + unsigned int getCoseKeyType(int alg) const; + unsigned int getCurveParameter(int alg) const; +}; + +#endif // KEEPASSXC_BROWSERCBOR_H diff --git a/src/browser/BrowserEntryConfig.h b/src/browser/BrowserEntryConfig.h index 6de4b0bc5..2cb76d5f5 100644 --- a/src/browser/BrowserEntryConfig.h +++ b/src/browser/BrowserEntryConfig.h @@ -16,8 +16,8 @@ * along with this program. If not, see . */ -#ifndef BROWSERENTRYCONFIG_H -#define BROWSERENTRYCONFIG_H +#ifndef KEEPASSXC_BROWSERENTRYCONFIG_H +#define KEEPASSXC_BROWSERENTRYCONFIG_H #include #include @@ -55,4 +55,4 @@ private: QString m_realm; }; -#endif // BROWSERENTRYCONFIG_H +#endif // KEEPASSXC_BROWSERENTRYCONFIG_H diff --git a/src/browser/BrowserEntrySaveDialog.h b/src/browser/BrowserEntrySaveDialog.h index 8675e36fa..44b3d6601 100644 --- a/src/browser/BrowserEntrySaveDialog.h +++ b/src/browser/BrowserEntrySaveDialog.h @@ -16,8 +16,8 @@ * along with this program. If not, see . */ -#ifndef BROWSERENTRYSAVEDIALOG_H -#define BROWSERENTRYSAVEDIALOG_H +#ifndef KEEPASSXC_BROWSERENTRYSAVEDIALOG_H +#define KEEPASSXC_BROWSERENTRYSAVEDIALOG_H #include "gui/DatabaseTabWidget.h" @@ -45,4 +45,4 @@ private: QScopedPointer m_ui; }; -#endif // BROWSERENTRYSAVEDIALOG_H +#endif // KEEPASSXC_BROWSERENTRYSAVEDIALOG_H diff --git a/src/browser/BrowserEntrySaveDialog.ui b/src/browser/BrowserEntrySaveDialog.ui index 5beb6fab8..2928f70ad 100755 --- a/src/browser/BrowserEntrySaveDialog.ui +++ b/src/browser/BrowserEntrySaveDialog.ui @@ -11,7 +11,7 @@
    - KeePassXC-Browser Save Entry + KeePassXC - Select Database diff --git a/src/browser/BrowserHost.h b/src/browser/BrowserHost.h index 86f20f1e2..f3620c04c 100644 --- a/src/browser/BrowserHost.h +++ b/src/browser/BrowserHost.h @@ -15,8 +15,8 @@ * along with this program. If not, see . */ -#ifndef NATIVEMESSAGINGHOST_H -#define NATIVEMESSAGINGHOST_H +#ifndef KEEPASSXC_NATIVEMESSAGINGHOST_H +#define KEEPASSXC_NATIVEMESSAGINGHOST_H #include #include @@ -56,4 +56,4 @@ private: QList m_socketList; }; -#endif // NATIVEMESSAGINGHOST_H +#endif // KEEPASSXC_NATIVEMESSAGINGHOST_H diff --git a/src/browser/BrowserMessageBuilder.cpp b/src/browser/BrowserMessageBuilder.cpp index e537205df..317c161bd 100644 --- a/src/browser/BrowserMessageBuilder.cpp +++ b/src/browser/BrowserMessageBuilder.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 KeePassXC Team + * Copyright (C) 2023 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,11 +19,14 @@ #include "BrowserShared.h" #include "config-keepassx.h" #include "core/Global.h" -#include "core/Tools.h" +#include #include #include #include +#ifdef QT_DEBUG +#include +#endif #include @@ -66,17 +69,24 @@ QJsonObject BrowserMessageBuilder::buildMessage(const QString& nonce) const } QJsonObject BrowserMessageBuilder::buildResponse(const QString& action, - const QJsonObject& message, const QString& nonce, + const Parameters& params, const QString& publicKey, const QString& secretKey) { - QJsonObject response; - QString encryptedMessage = encryptMessage(message, nonce, publicKey, secretKey); + auto message = buildMessage(nonce); + + Parameters::const_iterator i; + for (i = params.constBegin(); i != params.constEnd(); ++i) { + message[i.key()] = QJsonValue::fromVariant(i.value()); + } + + const auto encryptedMessage = encryptMessage(message, nonce, publicKey, secretKey); if (encryptedMessage.isEmpty()) { return getErrorReply(action, ERROR_KEEPASS_CANNOT_ENCRYPT_MESSAGE); } + QJsonObject response; response["action"] = action; response["message"] = encryptedMessage; response["nonce"] = nonce; @@ -116,6 +126,36 @@ QString BrowserMessageBuilder::getErrorMessage(const int errorCode) const return QObject::tr("Cannot create new group"); case ERROR_KEEPASS_NO_VALID_UUID_PROVIDED: return QObject::tr("No valid UUID provided"); + case ERROR_KEEPASS_ACCESS_TO_ALL_ENTRIES_DENIED: + return QObject::tr("Access to all entries is denied"); + case ERROR_PASSKEYS_ATTESTATION_NOT_SUPPORTED: + return QObject::tr("Attestation not supported"); + case ERROR_PASSKEYS_CREDENTIAL_IS_EXCLUDED: + return QObject::tr("Credential is excluded"); + case ERROR_PASSKEYS_REQUEST_CANCELED: + return QObject::tr("Passkeys request canceled"); + case ERROR_PASSKEYS_INVALID_USER_VERIFICATION: + return QObject::tr("Invalid user verification"); + case ERROR_PASSKEYS_EMPTY_PUBLIC_KEY: + return QObject::tr("Empty public key"); + case ERROR_PASSKEYS_INVALID_URL_PROVIDED: + return QObject::tr("Invalid URL provided"); + case ERROR_PASSKEYS_ORIGIN_NOT_ALLOWED: + return QObject::tr("Origin is empty or not allowed"); + case ERROR_PASSKEYS_DOMAIN_IS_NOT_VALID: + return QObject::tr("Effective domain is not a valid domain"); + case ERROR_PASSKEYS_DOMAIN_RPID_MISMATCH: + return QObject::tr("Origin and RP ID do not match"); + case ERROR_PASSKEYS_NO_SUPPORTED_ALGORITHMS: + return QObject::tr("No supported algorithms were provided"); + case ERROR_PASSKEYS_WAIT_FOR_LIFETIMER: + return QObject::tr("Wait for timer to expire"); + case ERROR_PASSKEYS_UNKNOWN_ERROR: + return QObject::tr("Unknown Passkeys error"); + case ERROR_PASSKEYS_INVALID_CHALLENGE: + return QObject::tr("Challenge is shorter than required minimum length"); + case ERROR_PASSKEYS_INVALID_USER_ID: + return QObject::tr("user.id does not match the required length"); default: return QObject::tr("Unknown error"); } @@ -127,7 +167,7 @@ QString BrowserMessageBuilder::encryptMessage(const QJsonObject& message, const QString& secretKey) { if (message.isEmpty() || nonce.isEmpty()) { - return QString(); + return {}; } const QString reply(QJsonDocument(message).toJson()); @@ -135,7 +175,7 @@ QString BrowserMessageBuilder::encryptMessage(const QJsonObject& message, return encrypt(reply, nonce, publicKey, secretKey); } - return QString(); + return {}; } QJsonObject BrowserMessageBuilder::decryptMessage(const QString& message, @@ -144,12 +184,12 @@ QJsonObject BrowserMessageBuilder::decryptMessage(const QString& message, const QString& secretKey) { if (message.isEmpty() || nonce.isEmpty()) { - return QJsonObject(); + return {}; } QByteArray ba = decrypt(message, nonce, publicKey, secretKey); if (ba.isEmpty()) { - return QJsonObject(); + return {}; } return getJsonObject(ba); @@ -174,7 +214,7 @@ QString BrowserMessageBuilder::encrypt(const QString& plaintext, e.resize(BrowserShared::NATIVEMSG_MAX_LENGTH); if (m.empty() || n.empty() || ck.empty() || sk.empty()) { - return QString(); + return {}; } if (crypto_box_easy(e.data(), m.data(), m.size(), n.data(), ck.data(), sk.data()) == 0) { @@ -182,7 +222,7 @@ QString BrowserMessageBuilder::encrypt(const QString& plaintext, return res.toBase64(); } - return QString(); + return {}; } QByteArray BrowserMessageBuilder::decrypt(const QString& encrypted, @@ -204,14 +244,14 @@ QByteArray BrowserMessageBuilder::decrypt(const QString& encrypted, d.resize(BrowserShared::NATIVEMSG_MAX_LENGTH); if (m.empty() || n.empty() || ck.empty() || sk.empty()) { - return QByteArray(); + return {}; } if (crypto_box_open_easy(d.data(), m.data(), ma.length(), n.data(), ck.data(), sk.data()) == 0) { return getQByteArray(d.data(), std::char_traits::length(reinterpret_cast(d.data()))); } - return QByteArray(); + return {}; } QString BrowserMessageBuilder::getBase64FromKey(const uchar* array, const uint len) @@ -234,6 +274,11 @@ QJsonObject BrowserMessageBuilder::getJsonObject(const uchar* pArray, const uint QByteArray arr = getQByteArray(pArray, len); QJsonParseError err; QJsonDocument doc(QJsonDocument::fromJson(arr, &err)); +#ifdef QT_DEBUG + if (doc.isNull()) { + qWarning() << "Cannot create QJsonDocument: " << err.errorString(); + } +#endif return doc.object(); } @@ -241,6 +286,12 @@ QJsonObject BrowserMessageBuilder::getJsonObject(const QByteArray& ba) const { QJsonParseError err; QJsonDocument doc(QJsonDocument::fromJson(ba, &err)); +#ifdef QT_DEBUG + if (doc.isNull()) { + qWarning() << "Cannot create QJsonDocument: " << err.errorString(); + } +#endif + return doc.object(); } @@ -257,3 +308,65 @@ QString BrowserMessageBuilder::incrementNonce(const QString& nonce) sodium_increment(n.data(), n.size()); return getQByteArray(n.data(), n.size()).toBase64(); } + +QString BrowserMessageBuilder::getRandomBytesAsBase64(int bytes) const +{ + if (bytes == 0) { + return {}; + } + + std::shared_ptr buf(new unsigned char[bytes]); + Botan::Sodium::randombytes_buf(buf.get(), bytes); + + return getBase64FromArray(reinterpret_cast(buf.get()), bytes); +} + +QString BrowserMessageBuilder::getBase64FromArray(const char* arr, int len) const +{ + if (len < 1) { + return {}; + } + + auto data = QByteArray::fromRawData(arr, len); + return getBase64FromArray(data); +} + +// Returns URL encoded base64 with trailing removed +QString BrowserMessageBuilder::getBase64FromArray(const QByteArray& byteArray) const +{ + if (byteArray.length() < 1) { + return {}; + } + + return byteArray.toBase64(QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals); +} + +QString BrowserMessageBuilder::getBase64FromJson(const QJsonObject& jsonObject) const +{ + if (jsonObject.isEmpty()) { + return {}; + } + + const auto dataArray = QJsonDocument(jsonObject).toJson(QJsonDocument::Compact); + return getBase64FromArray(dataArray); +} + +QByteArray BrowserMessageBuilder::getArrayFromHexString(const QString& hexString) const +{ + return QByteArray::fromHex(hexString.toUtf8()); +} + +QByteArray BrowserMessageBuilder::getArrayFromBase64(const QString& base64str) const +{ + return QByteArray::fromBase64(base64str.toUtf8(), QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals); +} + +QByteArray BrowserMessageBuilder::getSha256Hash(const QString& str) const +{ + return QCryptographicHash::hash(str.toUtf8(), QCryptographicHash::Sha256); +} + +QString BrowserMessageBuilder::getSha256HashAsBase64(const QString& str) const +{ + return getBase64FromArray(QCryptographicHash::hash(str.toUtf8(), QCryptographicHash::Sha256)); +} diff --git a/src/browser/BrowserMessageBuilder.h b/src/browser/BrowserMessageBuilder.h index 9dc4f27f0..5a2f96e16 100644 --- a/src/browser/BrowserMessageBuilder.h +++ b/src/browser/BrowserMessageBuilder.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 KeePassXC Team + * Copyright (C) 2024 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,14 +15,17 @@ * along with this program. If not, see . */ -#ifndef BROWSERMESSAGEBUILDER_H -#define BROWSERMESSAGEBUILDER_H +#ifndef KEEPASSXC_BROWSERMESSAGEBUILDER_H +#define KEEPASSXC_BROWSERMESSAGEBUILDER_H #include #include +#include class QJsonObject; +typedef QMap Parameters; + namespace { enum @@ -44,7 +47,22 @@ namespace ERROR_KEEPASS_NO_LOGINS_FOUND = 15, ERROR_KEEPASS_NO_GROUPS_FOUND = 16, ERROR_KEEPASS_CANNOT_CREATE_NEW_GROUP = 17, - ERROR_KEEPASS_NO_VALID_UUID_PROVIDED = 18 + ERROR_KEEPASS_NO_VALID_UUID_PROVIDED = 18, + ERROR_KEEPASS_ACCESS_TO_ALL_ENTRIES_DENIED = 19, + ERROR_PASSKEYS_ATTESTATION_NOT_SUPPORTED = 20, + ERROR_PASSKEYS_CREDENTIAL_IS_EXCLUDED = 21, + ERROR_PASSKEYS_REQUEST_CANCELED = 22, + ERROR_PASSKEYS_INVALID_USER_VERIFICATION = 23, + ERROR_PASSKEYS_EMPTY_PUBLIC_KEY = 24, + ERROR_PASSKEYS_INVALID_URL_PROVIDED = 25, + ERROR_PASSKEYS_ORIGIN_NOT_ALLOWED = 26, + ERROR_PASSKEYS_DOMAIN_IS_NOT_VALID = 27, + ERROR_PASSKEYS_DOMAIN_RPID_MISMATCH = 28, + ERROR_PASSKEYS_NO_SUPPORTED_ALGORITHMS = 29, + ERROR_PASSKEYS_WAIT_FOR_LIFETIMER = 30, + ERROR_PASSKEYS_UNKNOWN_ERROR = 31, + ERROR_PASSKEYS_INVALID_CHALLENGE = 32, + ERROR_PASSKEYS_INVALID_USER_ID = 33, }; } @@ -55,11 +73,10 @@ public: static BrowserMessageBuilder* instance(); QPair getKeyPair(); - QJsonObject buildMessage(const QString& nonce) const; QJsonObject buildResponse(const QString& action, - const QJsonObject& message, const QString& nonce, + const Parameters& params, const QString& publicKey, const QString& secretKey); QJsonObject getErrorReply(const QString& action, const int errorCode) const; @@ -81,6 +98,14 @@ public: QJsonObject getJsonObject(const QByteArray& ba) const; QByteArray base64Decode(const QString& str); QString incrementNonce(const QString& nonce); + QString getRandomBytesAsBase64(int bytes) const; + QString getBase64FromArray(const char* arr, int len) const; + QString getBase64FromArray(const QByteArray& byteArray) const; + QString getBase64FromJson(const QJsonObject& jsonObject) const; + QByteArray getArrayFromHexString(const QString& hexString) const; + QByteArray getArrayFromBase64(const QString& base64str) const; + QByteArray getSha256Hash(const QString& str) const; + QString getSha256HashAsBase64(const QString& str) const; private: Q_DISABLE_COPY(BrowserMessageBuilder); @@ -93,4 +118,4 @@ static inline BrowserMessageBuilder* browserMessageBuilder() return BrowserMessageBuilder::instance(); } -#endif // BROWSERMESSAGEBUILDER_H +#endif // KEEPASSXC_BROWSERMESSAGEBUILDER_H diff --git a/src/browser/BrowserPasskeys.cpp b/src/browser/BrowserPasskeys.cpp new file mode 100644 index 000000000..3fe8e006f --- /dev/null +++ b/src/browser/BrowserPasskeys.cpp @@ -0,0 +1,444 @@ +/* + * Copyright (C) 2024 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "BrowserPasskeys.h" +#include "BrowserMessageBuilder.h" +#include "BrowserService.h" +#include "PasskeyUtils.h" +#include "crypto/Random.h" +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +Q_GLOBAL_STATIC(BrowserPasskeys, s_browserPasskeys); + +// KeePassXC AAGUID: fdb141b2-5d84-443e-8a35-4698c205a502 +const QString BrowserPasskeys::AAGUID = QStringLiteral("fdb141b25d84443e8a354698c205a502"); + +// Authenticator capabilities +const QString BrowserPasskeys::ATTACHMENT_CROSS_PLATFORM = QStringLiteral("cross-platform"); +const QString BrowserPasskeys::ATTACHMENT_PLATFORM = QStringLiteral("platform"); +const QString BrowserPasskeys::AUTHENTICATOR_TRANSPORT = QStringLiteral("internal"); +const bool BrowserPasskeys::SUPPORT_RESIDENT_KEYS = true; +const bool BrowserPasskeys::SUPPORT_USER_VERIFICATION = true; + +const QString BrowserPasskeys::PUBLIC_KEY = QStringLiteral("public-key"); +const QString BrowserPasskeys::REQUIREMENT_DISCOURAGED = QStringLiteral("discouraged"); +const QString BrowserPasskeys::REQUIREMENT_PREFERRED = QStringLiteral("preferred"); +const QString BrowserPasskeys::REQUIREMENT_REQUIRED = QStringLiteral("required"); + +const QString BrowserPasskeys::PASSKEYS_ATTESTATION_DIRECT = QStringLiteral("direct"); +const QString BrowserPasskeys::PASSKEYS_ATTESTATION_NONE = QStringLiteral("none"); + +const QString BrowserPasskeys::KPEX_PASSKEY_USERNAME = QStringLiteral("KPEX_PASSKEY_USERNAME"); +const QString BrowserPasskeys::KPEX_PASSKEY_CREDENTIAL_ID = QStringLiteral("KPEX_PASSKEY_CREDENTIAL_ID"); +const QString BrowserPasskeys::KPEX_PASSKEY_PRIVATE_KEY_PEM = QStringLiteral("KPEX_PASSKEY_PRIVATE_KEY_PEM"); +const QString BrowserPasskeys::KPEX_PASSKEY_RELYING_PARTY = QStringLiteral("KPEX_PASSKEY_RELYING_PARTY"); +const QString BrowserPasskeys::KPEX_PASSKEY_USER_HANDLE = QStringLiteral("KPEX_PASSKEY_USER_HANDLE"); + +BrowserPasskeys* BrowserPasskeys::instance() +{ + return s_browserPasskeys; +} + +PublicKeyCredential BrowserPasskeys::buildRegisterPublicKeyCredential(const QJsonObject& credentialCreationOptions, + const TestingVariables& testingVariables) +{ + if (!passkeyUtils()->checkCredentialCreationOptions(credentialCreationOptions)) { + return {}; + } + + const auto authenticatorAttachment = credentialCreationOptions["authenticatorAttachment"]; + const auto clientDataJson = credentialCreationOptions["clientDataJSON"].toObject(); + const auto extensions = credentialCreationOptions["extensions"].toString(); + const auto credentialId = testingVariables.credentialId.isEmpty() + ? browserMessageBuilder()->getRandomBytesAsBase64(ID_BYTES) + : testingVariables.credentialId; + + // Credential private key + const auto alg = getAlgorithmFromPublicKey(credentialCreationOptions); + const auto privateKey = buildCredentialPrivateKey(alg, testingVariables.first, testingVariables.second); + if (privateKey.cborEncodedPublicKey.isEmpty() && privateKey.privateKeyPem.isEmpty()) { + // Key creation failed + return {}; + } + + // Attestation + const auto attestationObject = buildAttestationObject( + credentialCreationOptions, extensions, credentialId, privateKey.cborEncodedPublicKey, testingVariables); + if (attestationObject.isEmpty()) { + return {}; + } + + // Response + QJsonObject responseObject; + responseObject["attestationObject"] = browserMessageBuilder()->getBase64FromArray(attestationObject); + responseObject["clientDataJSON"] = browserMessageBuilder()->getBase64FromJson(clientDataJson); + + // PublicKeyCredential + QJsonObject publicKeyCredential; + publicKeyCredential["authenticatorAttachment"] = authenticatorAttachment; + publicKeyCredential["id"] = credentialId; + publicKeyCredential["response"] = responseObject; + publicKeyCredential["type"] = PUBLIC_KEY; + + PublicKeyCredential result; + result.credentialId = credentialId; + result.key = privateKey.privateKeyPem; + result.response = publicKeyCredential; + return result; +} + +QJsonObject BrowserPasskeys::buildGetPublicKeyCredential(const QJsonObject& assertionOptions, + const QString& credentialId, + const QString& userHandle, + const QString& privateKeyPem) +{ + if (!passkeyUtils()->checkCredentialAssertionOptions(assertionOptions)) { + return {}; + } + + const auto authenticatorData = buildAuthenticatorData(assertionOptions); + const auto clientDataJson = assertionOptions["clientDataJson"].toObject(); + const auto clientDataArray = QJsonDocument(clientDataJson).toJson(QJsonDocument::Compact); + + const auto signature = buildSignature(authenticatorData, clientDataArray, privateKeyPem); + if (signature.isEmpty()) { + return {}; + } + + QJsonObject responseObject; + responseObject["authenticatorData"] = browserMessageBuilder()->getBase64FromArray(authenticatorData); + responseObject["clientDataJSON"] = browserMessageBuilder()->getBase64FromJson(clientDataJson); + responseObject["signature"] = browserMessageBuilder()->getBase64FromArray(signature); + responseObject["userHandle"] = userHandle; + + QJsonObject publicKeyCredential; + publicKeyCredential["authenticatorAttachment"] = BrowserPasskeys::ATTACHMENT_PLATFORM; + publicKeyCredential["id"] = credentialId; + publicKeyCredential["response"] = responseObject; + publicKeyCredential["type"] = PUBLIC_KEY; + + return publicKeyCredential; +} + +// https://w3c.github.io/webauthn/#attestation-object +QByteArray BrowserPasskeys::buildAttestationObject(const QJsonObject& credentialCreationOptions, + const QString& extensions, + const QString& credentialId, + const QByteArray& cborEncodedPublicKey, + const TestingVariables& testingVariables) +{ + QByteArray result; + + // Create SHA256 hash from rpId + const auto rpIdHash = browserMessageBuilder()->getSha256Hash(credentialCreationOptions["rp"]["id"].toString()); + result.append(rpIdHash); + + // Use default flags + const auto flags = setFlagsFromJson(QJsonObject( + {{"ED", !extensions.isEmpty()}, {"AT", true}, {"BS", false}, {"BE", false}, {"UV", true}, {"UP", true}})); + result.append(flags); + + // Signature counter (not supported, always 0 + const char counter[4] = {0x00, 0x00, 0x00, 0x00}; + result.append(QByteArray::fromRawData(counter, 4)); + + // AAGUID + result.append(browserMessageBuilder()->getArrayFromHexString(AAGUID)); + + // Credential length + const char credentialLength[2] = {0x00, ID_BYTES}; + result.append(QByteArray::fromRawData(credentialLength, 2)); + + // Credential Id + result.append(QByteArray::fromBase64( + testingVariables.credentialId.isEmpty() ? credentialId.toUtf8() : testingVariables.credentialId.toUtf8(), + QByteArray::Base64UrlEncoding)); + + // Credential public key + result.append(cborEncodedPublicKey); + + // Add extension data if available + if (!extensions.isEmpty()) { + result.append(browserMessageBuilder()->getArrayFromBase64(extensions)); + } + + // The final result should be CBOR encoded + return m_browserCbor.cborEncodeAttestation(result); +} + +// Build a short version of the attestation object for webauthn.get +QByteArray BrowserPasskeys::buildAuthenticatorData(const QJsonObject& publicKey) +{ + QByteArray result; + + const auto rpIdHash = browserMessageBuilder()->getSha256Hash(publicKey["rpId"].toString()); + result.append(rpIdHash); + + const auto extensions = publicKey["extensions"].toString(); + const auto flags = setFlagsFromJson(QJsonObject( + {{"ED", !extensions.isEmpty()}, {"AT", false}, {"BS", false}, {"BE", false}, {"UV", true}, {"UP", true}})); + result.append(flags); + + // Signature counter (not supported, always 0 + const char counter[4] = {0x00, 0x00, 0x00, 0x00}; + result.append(QByteArray::fromRawData(counter, 4)); + + if (!extensions.isEmpty()) { + result.append(browserMessageBuilder()->getArrayFromBase64(extensions)); + } + + return result; +} + +// See: https://w3c.github.io/webauthn/#sctn-encoded-credPubKey-examples +AttestationKeyPair +BrowserPasskeys::buildCredentialPrivateKey(int alg, const QString& predefinedFirst, const QString& predefinedSecond) +{ + // Only support -7, P256 (EC), -8 (EdDSA) and -257 (RSA) for now + if (alg != WebAuthnAlgorithms::ES256 && alg != WebAuthnAlgorithms::RS256 && alg != WebAuthnAlgorithms::EDDSA) { + return {}; + } + + QByteArray firstPart; + QByteArray secondPart; + QByteArray pem; + + if (!predefinedFirst.isEmpty() && !predefinedSecond.isEmpty()) { + firstPart = browserMessageBuilder()->getArrayFromBase64(predefinedFirst); + secondPart = browserMessageBuilder()->getArrayFromBase64(predefinedSecond); + } else { + if (alg == WebAuthnAlgorithms::ES256) { + try { + Botan::ECDSA_PrivateKey privateKey(*randomGen()->getRng(), Botan::EC_Group("secp256r1")); + const auto& publicPoint = privateKey.public_point(); + auto x = publicPoint.get_affine_x(); + auto y = publicPoint.get_affine_y(); + firstPart = bigIntToQByteArray(x); + secondPart = bigIntToQByteArray(y); + + auto privateKeyPem = Botan::PKCS8::PEM_encode(privateKey); + pem = QByteArray::fromStdString(privateKeyPem); + } catch (std::exception& e) { + qWarning("BrowserWebAuthn::buildCredentialPrivateKey: Could not create EC2 private key: %s", e.what()); + return {}; + } + } else if (alg == WebAuthnAlgorithms::RS256) { + try { + Botan::RSA_PrivateKey privateKey(*randomGen()->getRng(), RSA_BITS, RSA_EXPONENT); + auto modulus = privateKey.get_n(); + auto exponent = privateKey.get_e(); + firstPart = bigIntToQByteArray(modulus); + secondPart = bigIntToQByteArray(exponent); + + auto privateKeyPem = Botan::PKCS8::PEM_encode(privateKey); + pem = QByteArray::fromStdString(privateKeyPem); + } catch (std::exception& e) { + qWarning("BrowserWebAuthn::buildCredentialPrivateKey: Could not create RSA private key: %s", e.what()); + return {}; + } + } else if (alg == WebAuthnAlgorithms::EDDSA) { + try { + Botan::Ed25519_PrivateKey key(*randomGen()->getRng()); + auto publicKey = key.get_public_key(); + auto privateKey = key.get_private_key(); + firstPart = browserMessageBuilder()->getQByteArray(publicKey.data(), publicKey.size()); + secondPart = browserMessageBuilder()->getQByteArray(privateKey.data(), privateKey.size()); + + auto privateKeyPem = Botan::PKCS8::PEM_encode(key); + pem = QByteArray::fromStdString(privateKeyPem); + } catch (std::exception& e) { + qWarning("BrowserWebAuthn::buildCredentialPrivateKey: Could not create EdDSA private key: %s", + e.what()); + return {}; + } + } + } + + auto result = m_browserCbor.cborEncodePublicKey(alg, firstPart, secondPart); + if (result.isEmpty()) { + return {}; + } + + AttestationKeyPair attestationKeyPair; + attestationKeyPair.cborEncodedPublicKey = result; + attestationKeyPair.privateKeyPem = pem; + return attestationKeyPair; +} + +QByteArray BrowserPasskeys::buildSignature(const QByteArray& authenticatorData, + const QByteArray& clientData, + const QString& privateKeyPem) +{ + const auto clientDataHash = browserMessageBuilder()->getSha256Hash(clientData); + const auto attToBeSigned = authenticatorData + clientDataHash; + + try { + const auto privateKeyArray = privateKeyPem.toUtf8(); + Botan::DataSource_Memory dataSource(reinterpret_cast(privateKeyArray.constData()), + privateKeyArray.size()); + + const auto key = Botan::PKCS8::load_key(dataSource).release(); + const auto privateKeyBytes = key->private_key_bits(); + const auto algName = key->algo_name(); + const auto algId = key->algorithm_identifier(); + + std::vector rawSignature; + if (algName == "ECDSA") { + Botan::ECDSA_PrivateKey privateKey(algId, privateKeyBytes); +#ifdef WITH_XC_BOTAN3 + Botan::PK_Signer signer( + privateKey, *randomGen()->getRng(), "EMSA1(SHA-256)", Botan::Signature_Format::DerSequence); +#else + Botan::PK_Signer signer(privateKey, *randomGen()->getRng(), "EMSA1(SHA-256)", Botan::DER_SEQUENCE); +#endif + + signer.update(reinterpret_cast(attToBeSigned.constData()), attToBeSigned.size()); + rawSignature = signer.signature(*randomGen()->getRng()); + } else if (algName == "RSA") { + Botan::RSA_PrivateKey privateKey(algId, privateKeyBytes); + Botan::PK_Signer signer(privateKey, *randomGen()->getRng(), "EMSA3(SHA-256)"); + + signer.update(reinterpret_cast(attToBeSigned.constData()), attToBeSigned.size()); + rawSignature = signer.signature(*randomGen()->getRng()); + } else if (algName == "Ed25519") { + Botan::Ed25519_PrivateKey privateKey(algId, privateKeyBytes); + // "Pure" here means signing message directly. SHA-512 is only used with pre-hashed Ed25519 (Ed25519ph). + Botan::PK_Signer signer(privateKey, *randomGen()->getRng(), "Pure"); + + signer.update(reinterpret_cast(attToBeSigned.constData()), attToBeSigned.size()); + rawSignature = signer.signature(*randomGen()->getRng()); + } else { + qWarning("BrowserWebAuthn::buildSignature: Algorithm not supported"); + return {}; + } + + auto signature = QByteArray(reinterpret_cast(rawSignature.data()), rawSignature.size()); + return signature; + } catch (std::exception& e) { + qWarning("BrowserWebAuthn::buildSignature: Could not sign key: %s", e.what()); + return {}; + } +} + +// Parse authentication data byte array to JSON +// See: https://www.w3.org/TR/webauthn/images/fido-attestation-structures.svg +// And: https://w3c.github.io/webauthn/#attested-credential-data +QJsonObject BrowserPasskeys::parseAuthData(const QByteArray& authData) const +{ + auto rpIdHash = authData.mid(AuthDataOffsets::RPIDHASH, HASH_BYTES); + auto flags = authData.mid(AuthDataOffsets::FLAGS, 1); + auto counter = authData.mid(AuthDataOffsets::SIGNATURE_COUNTER, 4); + auto aaGuid = authData.mid(AuthDataOffsets::AAGUID, 16); + auto credentialLength = authData.mid(AuthDataOffsets::CREDENTIAL_LENGTH, 2); + auto credLen = qFromBigEndian(credentialLength.data()); + auto credentialId = authData.mid(AuthDataOffsets::CREDENTIAL_ID, credLen); + auto publicKey = authData.mid(AuthDataOffsets::CREDENTIAL_ID + credLen); + + QJsonObject credentialDataJson({{"aaguid", browserMessageBuilder()->getBase64FromArray(aaGuid)}, + {"credentialId", browserMessageBuilder()->getBase64FromArray(credentialId)}, + {"publicKey", m_browserCbor.getJsonFromCborData(publicKey)}}); + + QJsonObject result({{"credentialData", credentialDataJson}, + {"flags", parseFlags(flags)}, + {"rpIdHash", browserMessageBuilder()->getBase64FromArray(rpIdHash)}, + {"signatureCounter", QJsonValue(qFromBigEndian(counter))}}); + + return result; +} + +// See: https://w3c.github.io/webauthn/#table-authData +QJsonObject BrowserPasskeys::parseFlags(const QByteArray& flags) const +{ + if (flags.isEmpty()) { + return {}; + } + + auto flagsByte = static_cast(flags[0]); + std::bitset<8> flagBits(flagsByte); + + return QJsonObject({{"ED", flagBits.test(AuthenticatorFlags::ED)}, + {"AT", flagBits.test(AuthenticatorFlags::AT)}, + {"BS", flagBits.test(AuthenticatorFlags::BS)}, + {"BE", flagBits.test(AuthenticatorFlags::BE)}, + {"UV", flagBits.test(AuthenticatorFlags::UV)}, + {"UP", flagBits.test(AuthenticatorFlags::UP)}}); +} + +// https://w3c.github.io/webauthn/#table-authData +// ED - Extension Data, AT - Attested Credential, BS - Reserved +// BE - Reserved , UV - User Verified, UP - User Present +char BrowserPasskeys::setFlagsFromJson(const QJsonObject& flags) const +{ + if (flags.isEmpty()) { + return 0; + } + + char flagBits = 0x00; + auto setFlag = [&](const char* key, unsigned char bit) { + if (flags[key].toBool()) { + flagBits |= 1 << bit; + } + }; + + setFlag("ED", AuthenticatorFlags::ED); + setFlag("AT", AuthenticatorFlags::AT); + setFlag("BS", AuthenticatorFlags::BS); + setFlag("BE", AuthenticatorFlags::BE); + setFlag("UV", AuthenticatorFlags::UV); + setFlag("UP", AuthenticatorFlags::UP); + + return flagBits; +} + +// Returns the first supported algorithm from the pubKeyCredParams list (only support ES256, RS256 and EdDSA for now) +WebAuthnAlgorithms BrowserPasskeys::getAlgorithmFromPublicKey(const QJsonObject& credentialCreationOptions) const +{ + const auto pubKeyCredParams = credentialCreationOptions["credTypesAndPubKeyAlgs"].toArray(); + if (!pubKeyCredParams.isEmpty()) { + const auto alg = pubKeyCredParams.first()["alg"].toInt(); + if (alg == WebAuthnAlgorithms::ES256 || alg == WebAuthnAlgorithms::RS256 || alg == WebAuthnAlgorithms::EDDSA) { + return static_cast(alg); + } + } + + return WebAuthnAlgorithms::ES256; +} + +QByteArray BrowserPasskeys::bigIntToQByteArray(Botan::BigInt& bigInt) const +{ + auto hexString = QString(bigInt.to_hex_string().c_str()); + + // Botan might add a leading "0x" to the hex string depending on the version. Remove it. + if (hexString.startsWith(("0x"))) { + hexString.remove(0, 2); + } + + return browserMessageBuilder()->getArrayFromHexString(hexString); +} diff --git a/src/browser/BrowserPasskeys.h b/src/browser/BrowserPasskeys.h new file mode 100644 index 000000000..783d5ca68 --- /dev/null +++ b/src/browser/BrowserPasskeys.h @@ -0,0 +1,143 @@ +/* + * Copyright (C) 2024 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef BROWSERPASSKEYS_H +#define BROWSERPASSKEYS_H + +#include "BrowserCbor.h" +#include +#include + +#include +#include + +#define ID_BYTES 32 +#define HASH_BYTES 32 +#define RSA_BITS 2048 +#define RSA_EXPONENT 65537 + +enum AuthDataOffsets : int +{ + RPIDHASH = 0, + FLAGS = 32, + SIGNATURE_COUNTER = 33, + AAGUID = 37, + CREDENTIAL_LENGTH = 53, + CREDENTIAL_ID = 55 +}; + +enum AuthenticatorFlags +{ + UP = 0, + UV = 2, + BE = 3, + BS = 4, + AT = 6, + ED = 7 +}; + +struct PublicKeyCredential +{ + QString credentialId; + QJsonObject response; + QByteArray key; +}; + +struct AttestationKeyPair +{ + QByteArray cborEncodedPublicKey; + QByteArray privateKeyPem; +}; + +// Predefined variables used for testing the class +struct TestingVariables +{ + QString credentialId; + QString first; + QString second; +}; + +class BrowserPasskeys : public QObject +{ + Q_OBJECT + +public: + explicit BrowserPasskeys() = default; + ~BrowserPasskeys() = default; + static BrowserPasskeys* instance(); + + PublicKeyCredential buildRegisterPublicKeyCredential(const QJsonObject& credentialCreationOptions, + const TestingVariables& predefinedVariables = {}); + QJsonObject buildGetPublicKeyCredential(const QJsonObject& assertionOptions, + const QString& credentialId, + const QString& userHandle, + const QString& privateKeyPem); + + static const QString AAGUID; + + static const QString ATTACHMENT_CROSS_PLATFORM; + static const QString ATTACHMENT_PLATFORM; + static const QString AUTHENTICATOR_TRANSPORT; + static const bool SUPPORT_RESIDENT_KEYS; + static const bool SUPPORT_USER_VERIFICATION; + + static const QString PUBLIC_KEY; + static const QString REQUIREMENT_DISCOURAGED; + static const QString REQUIREMENT_PREFERRED; + static const QString REQUIREMENT_REQUIRED; + + static const QString PASSKEYS_ATTESTATION_DIRECT; + static const QString PASSKEYS_ATTESTATION_NONE; + + static const QString KPEX_PASSKEY_USERNAME; + static const QString KPEX_PASSKEY_CREDENTIAL_ID; + static const QString KPEX_PASSKEY_PRIVATE_KEY_PEM; + static const QString KPEX_PASSKEY_RELYING_PARTY; + static const QString KPEX_PASSKEY_USER_HANDLE; + +private: + QByteArray buildAttestationObject(const QJsonObject& credentialCreationOptions, + const QString& extensions, + const QString& credentialId, + const QByteArray& cborEncodedPublicKey, + const TestingVariables& predefinedVariables = {}); + QByteArray buildAuthenticatorData(const QJsonObject& publicKey); + AttestationKeyPair buildCredentialPrivateKey(int alg, + const QString& predefinedFirst = QString(), + const QString& predefinedSecond = QString()); + QByteArray + buildSignature(const QByteArray& authenticatorData, const QByteArray& clientData, const QString& privateKeyPem); + QJsonObject parseAuthData(const QByteArray& authData) const; + QJsonObject parseFlags(const QByteArray& flags) const; + char setFlagsFromJson(const QJsonObject& flags) const; + WebAuthnAlgorithms getAlgorithmFromPublicKey(const QJsonObject& credentialCreationOptions) const; + QByteArray bigIntToQByteArray(Botan::BigInt& bigInt) const; + + Q_DISABLE_COPY(BrowserPasskeys); + + friend class TestPasskeys; + +private: + BrowserCbor m_browserCbor; +}; + +static inline BrowserPasskeys* browserPasskeys() +{ + return BrowserPasskeys::instance(); +} + +#endif // BROWSERPASSKEYS_H diff --git a/src/browser/BrowserPasskeysClient.cpp b/src/browser/BrowserPasskeysClient.cpp new file mode 100644 index 000000000..15c5ffae2 --- /dev/null +++ b/src/browser/BrowserPasskeysClient.cpp @@ -0,0 +1,173 @@ +/* + * Copyright (C) 2024 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "BrowserPasskeysClient.h" +#include "BrowserMessageBuilder.h" +#include "BrowserPasskeys.h" +#include "PasskeyUtils.h" + +#include + +Q_GLOBAL_STATIC(BrowserPasskeysClient, s_browserPasskeysClient); + +BrowserPasskeysClient* BrowserPasskeysClient::instance() +{ + return s_browserPasskeysClient; +} + +// Constructs CredentialCreationOptions from the original PublicKeyCredential +// https://www.w3.org/TR/2019/REC-webauthn-1-20190304/#createCredential +int BrowserPasskeysClient::getCredentialCreationOptions(const QJsonObject& publicKeyOptions, + const QString& origin, + QJsonObject* result) const +{ + if (!result || publicKeyOptions.isEmpty()) { + return ERROR_PASSKEYS_EMPTY_PUBLIC_KEY; + } + + // Check validity of some basic values + const auto checkResultError = passkeyUtils()->checkLimits(publicKeyOptions); + if (checkResultError > 0) { + return checkResultError; + } + + // Get effective domain + QString effectiveDomain; + const auto effectiveDomainResponse = passkeyUtils()->getEffectiveDomain(origin, &effectiveDomain); + if (effectiveDomainResponse > 0) { + return effectiveDomainResponse; + } + + // Validate RP ID + QString rpId; + const auto rpName = publicKeyOptions["rp"]["name"].toString(); + const auto rpIdResponse = passkeyUtils()->validateRpId(publicKeyOptions["rp"]["id"], effectiveDomain, &rpId); + if (rpIdResponse > 0) { + return rpIdResponse; + } + + // Check PublicKeyCredentialTypes + const auto pubKeyCredParams = passkeyUtils()->parseCredentialTypes(publicKeyOptions["pubKeyCredParams"].toArray()); + if (pubKeyCredParams.isEmpty() && !publicKeyOptions["pubKeyCredParams"].toArray().isEmpty()) { + return ERROR_PASSKEYS_NO_SUPPORTED_ALGORITHMS; + } + + // Check Attestation + const auto attestation = passkeyUtils()->parseAttestation(publicKeyOptions["attestation"].toString()); + + // Check validity of AuthenticatorSelection + auto authenticatorSelection = publicKeyOptions["authenticatorSelection"].toObject(); + const bool isAuthenticatorSelectionValid = passkeyUtils()->isAuthenticatorSelectionValid(authenticatorSelection); + if (!isAuthenticatorSelectionValid) { + return ERROR_PASSKEYS_WAIT_FOR_LIFETIMER; + } + + // Add default values for compatibility + if (authenticatorSelection.isEmpty()) { + authenticatorSelection = QJsonObject({{"userVerification", BrowserPasskeys::REQUIREMENT_PREFERRED}}); + } else if (authenticatorSelection["userVerification"].toString().isEmpty()) { + authenticatorSelection["userVerification"] = BrowserPasskeys::REQUIREMENT_PREFERRED; + } + + auto authenticatorAttachment = authenticatorSelection["authenticatorAttachment"].toString(); + if (authenticatorAttachment.isEmpty()) { + authenticatorAttachment = BrowserPasskeys::ATTACHMENT_PLATFORM; + } + + // Unknown values are ignored, but a warning will be still shown just in case + const auto userVerification = authenticatorSelection["userVerification"].toString(); + if (!passkeyUtils()->isUserVerificationValid(userVerification)) { + qWarning() << browserMessageBuilder()->getErrorMessage(ERROR_PASSKEYS_INVALID_USER_VERIFICATION); + } + + // Parse requireResidentKey and userVerification + const auto isResidentKeyRequired = passkeyUtils()->isResidentKeyRequired(authenticatorSelection); + const auto isUserVerificationRequired = passkeyUtils()->isUserVerificationRequired(authenticatorSelection); + + // Extensions + auto extensionObject = publicKeyOptions["extensions"].toObject(); + const auto extensionData = passkeyUtils()->buildExtensionData(extensionObject); + const auto extensions = browserMessageBuilder()->getBase64FromArray(extensionData); + + // Construct the final object + QJsonObject credentialCreationOptions; + credentialCreationOptions["attestation"] = attestation; // Set this, even if only "none" is supported + credentialCreationOptions["authenticatorAttachment"] = authenticatorAttachment; + credentialCreationOptions["clientDataJSON"] = passkeyUtils()->buildClientDataJson(publicKeyOptions, origin, false); + credentialCreationOptions["credTypesAndPubKeyAlgs"] = pubKeyCredParams; + credentialCreationOptions["excludeCredentials"] = publicKeyOptions["excludeCredentials"]; + credentialCreationOptions["extensions"] = extensions; + credentialCreationOptions["residentKey"] = isResidentKeyRequired; + credentialCreationOptions["rp"] = QJsonObject({{"id", rpId}, {"name", rpName}}); + credentialCreationOptions["user"] = publicKeyOptions["user"]; + credentialCreationOptions["userPresence"] = !isUserVerificationRequired; + credentialCreationOptions["userVerification"] = isUserVerificationRequired; + + *result = credentialCreationOptions; + return 0; +} + +// Use an existing credential +// https://www.w3.org/TR/2019/REC-webauthn-1-20190304/#getAssertion +int BrowserPasskeysClient::getAssertionOptions(const QJsonObject& publicKeyOptions, + const QString& origin, + QJsonObject* result) const +{ + if (!result || publicKeyOptions.isEmpty()) { + return ERROR_PASSKEYS_EMPTY_PUBLIC_KEY; + } + + // Get effective domain + QString effectiveDomain; + const auto effectiveDomainResponse = passkeyUtils()->getEffectiveDomain(origin, &effectiveDomain); + if (effectiveDomainResponse > 0) { + return effectiveDomainResponse; + } + + // Validate RP ID + QString rpId; + const auto rpIdResponse = passkeyUtils()->validateRpId(publicKeyOptions["rpId"], effectiveDomain, &rpId); + if (rpIdResponse > 0) { + return rpIdResponse; + } + + // Extensions + auto extensionObject = publicKeyOptions["extensions"].toObject(); + const auto extensionData = passkeyUtils()->buildExtensionData(extensionObject); + const auto extensions = browserMessageBuilder()->getBase64FromArray(extensionData); + + // clientDataJson + const auto clientDataJson = passkeyUtils()->buildClientDataJson(publicKeyOptions, origin, true); + + // Unknown values are ignored, but a warning will be still shown just in case + const auto userVerification = publicKeyOptions["userVerification"].toString(); + if (!passkeyUtils()->isUserVerificationValid(userVerification)) { + qWarning() << browserMessageBuilder()->getErrorMessage(ERROR_PASSKEYS_INVALID_USER_VERIFICATION); + } + const auto isUserVerificationRequired = passkeyUtils()->isUserVerificationRequired(publicKeyOptions); + + QJsonObject assertionOptions; + assertionOptions["allowCredentials"] = publicKeyOptions["allowCredentials"]; + assertionOptions["clientDataJson"] = clientDataJson; + assertionOptions["extensions"] = extensions; + assertionOptions["rpId"] = rpId; + assertionOptions["userPresence"] = true; + assertionOptions["userVerification"] = isUserVerificationRequired; + + *result = assertionOptions; + return 0; +} diff --git a/src/browser/BrowserPasskeysClient.h b/src/browser/BrowserPasskeysClient.h new file mode 100644 index 000000000..24040bd3e --- /dev/null +++ b/src/browser/BrowserPasskeysClient.h @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2024 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef BROWSERPASSKEYSCLIENT_H +#define BROWSERPASSKEYSCLIENT_H + +#include +#include +#include + +class BrowserPasskeysClient : public QObject +{ + Q_OBJECT + +public: + explicit BrowserPasskeysClient() = default; + ~BrowserPasskeysClient() = default; + static BrowserPasskeysClient* instance(); + + int + getCredentialCreationOptions(const QJsonObject& publicKeyOptions, const QString& origin, QJsonObject* result) const; + int getAssertionOptions(const QJsonObject& publicKeyOptions, const QString& origin, QJsonObject* result) const; + +private: + Q_DISABLE_COPY(BrowserPasskeysClient); + + friend class TestPasskeys; +}; + +static inline BrowserPasskeysClient* browserPasskeysClient() +{ + return BrowserPasskeysClient::instance(); +} + +#endif // BROWSERPASSKEYSCLIENT_H diff --git a/src/browser/BrowserPasskeysConfirmationDialog.cpp b/src/browser/BrowserPasskeysConfirmationDialog.cpp new file mode 100644 index 000000000..644bec599 --- /dev/null +++ b/src/browser/BrowserPasskeysConfirmationDialog.cpp @@ -0,0 +1,157 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "BrowserPasskeysConfirmationDialog.h" +#include "ui_BrowserPasskeysConfirmationDialog.h" + +#include "core/Entry.h" +#include +#include + +#define STEP 1000 + +BrowserPasskeysConfirmationDialog::BrowserPasskeysConfirmationDialog(QWidget* parent) + : QDialog(parent) + , m_ui(new Ui::BrowserPasskeysConfirmationDialog()) + , m_passkeyUpdated(false) +{ + setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint); + + m_ui->setupUi(this); + m_ui->updateButton->setVisible(false); + m_ui->verticalLayout->setAlignment(Qt::AlignTop); + + connect(m_ui->credentialsTable, SIGNAL(cellDoubleClicked(int, int)), this, SLOT(accept())); + connect(m_ui->confirmButton, SIGNAL(clicked()), SLOT(accept())); + connect(m_ui->cancelButton, SIGNAL(clicked()), SLOT(reject())); + connect(m_ui->updateButton, SIGNAL(clicked()), SLOT(updatePasskey())); + + connect(&m_timer, SIGNAL(timeout()), this, SLOT(updateProgressBar())); + connect(&m_timer, SIGNAL(timeout()), this, SLOT(updateSeconds())); +} + +BrowserPasskeysConfirmationDialog::~BrowserPasskeysConfirmationDialog() +{ +} + +void BrowserPasskeysConfirmationDialog::registerCredential(const QString& username, + const QString& relyingParty, + const QList& existingEntries, + int timeout) +{ + m_ui->firstLabel->setText(tr("Do you want to register Passkey for:")); + m_ui->relyingPartyLabel->setText(tr("Relying Party: %1").arg(relyingParty)); + m_ui->usernameLabel->setText(tr("Username: %1").arg(username)); + m_ui->secondLabel->setText(""); + + if (!existingEntries.isEmpty()) { + m_ui->firstLabel->setText(tr("Existing Passkey found.\nDo you want to register a new Passkey for:")); + m_ui->secondLabel->setText(tr("Select the existing Passkey and press Update to replace it.")); + + m_ui->updateButton->setVisible(true); + m_ui->confirmButton->setText(tr("Register new")); + updateEntriesToTable(existingEntries); + } else { + m_ui->verticalLayout->setSizeConstraint(QLayout::SetFixedSize); + m_ui->confirmButton->setText(tr("Register")); + m_ui->credentialsTable->setVisible(false); + } + + startCounter(timeout); +} + +void BrowserPasskeysConfirmationDialog::authenticateCredential(const QList& entries, + const QString& relyingParty, + int timeout) +{ + m_ui->firstLabel->setText(tr("Authenticate Passkey credentials for:")); + m_ui->relyingPartyLabel->setText(tr("Relying Party: %1").arg(relyingParty)); + m_ui->usernameLabel->setVisible(false); + m_ui->secondLabel->setText(""); + updateEntriesToTable(entries); + startCounter(timeout); +} + +Entry* BrowserPasskeysConfirmationDialog::getSelectedEntry() const +{ + auto selectedItem = m_ui->credentialsTable->currentItem(); + return selectedItem ? m_entries[selectedItem->row()] : nullptr; +} + +bool BrowserPasskeysConfirmationDialog::isPasskeyUpdated() const +{ + return m_passkeyUpdated; +} + +void BrowserPasskeysConfirmationDialog::updatePasskey() +{ + m_passkeyUpdated = true; + emit accept(); +} + +void BrowserPasskeysConfirmationDialog::updateProgressBar() +{ + if (m_counter < m_ui->progressBar->maximum()) { + m_ui->progressBar->setValue(m_ui->progressBar->maximum() - m_counter); + m_ui->progressBar->update(); + } else { + emit reject(); + } +} + +void BrowserPasskeysConfirmationDialog::updateSeconds() +{ + ++m_counter; + updateTimeoutLabel(); +} + +void BrowserPasskeysConfirmationDialog::startCounter(int timeout) +{ + m_counter = 0; + m_ui->progressBar->setMaximum(timeout / STEP); + updateProgressBar(); + updateTimeoutLabel(); + m_timer.start(STEP); +} + +void BrowserPasskeysConfirmationDialog::updateTimeoutLabel() +{ + m_ui->timeoutLabel->setText(tr("Timeout in %n seconds...", "", m_ui->progressBar->maximum() - m_counter)); +} + +void BrowserPasskeysConfirmationDialog::updateEntriesToTable(const QList& entries) +{ + m_entries = entries; + m_ui->credentialsTable->setRowCount(entries.count()); + m_ui->credentialsTable->setColumnCount(1); + + int row = 0; + for (const auto& entry : entries) { + auto item = new QTableWidgetItem(); + item->setText(entry->title() + " - " + entry->username()); + m_ui->credentialsTable->setItem(row, 0, item); + + if (row == 0) { + item->setSelected(true); + } + + ++row; + } + + m_ui->credentialsTable->resizeColumnsToContents(); + m_ui->credentialsTable->horizontalHeader()->setStretchLastSection(true); +} \ No newline at end of file diff --git a/src/browser/BrowserPasskeysConfirmationDialog.h b/src/browser/BrowserPasskeysConfirmationDialog.h new file mode 100644 index 000000000..6e262ffda --- /dev/null +++ b/src/browser/BrowserPasskeysConfirmationDialog.h @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSXC_BROWSERPASSKEYSCONFIRMATIONDIALOG_H +#define KEEPASSXC_BROWSERPASSKEYSCONFIRMATIONDIALOG_H + +#include +#include +#include + +class Entry; + +namespace Ui +{ + class BrowserPasskeysConfirmationDialog; +} + +class BrowserPasskeysConfirmationDialog : public QDialog +{ + Q_OBJECT + +public: + explicit BrowserPasskeysConfirmationDialog(QWidget* parent = nullptr); + ~BrowserPasskeysConfirmationDialog() override; + + void registerCredential(const QString& username, + const QString& relyingParty, + const QList& existingEntries, + int timeout); + void authenticateCredential(const QList& entries, const QString& relyingParty, int timeout); + Entry* getSelectedEntry() const; + bool isPasskeyUpdated() const; + +private slots: + void updatePasskey(); + void updateProgressBar(); + void updateSeconds(); + +private: + void startCounter(int timeout); + void updateTimeoutLabel(); + void updateEntriesToTable(const QList& entries); + +private: + QScopedPointer m_ui; + QList m_entries; + QTimer m_timer; + int m_counter; + bool m_passkeyUpdated; +}; + +#endif // KEEPASSXC_BROWSERPASSKEYSCONFIRMATIONDIALOG_H diff --git a/src/browser/BrowserPasskeysConfirmationDialog.ui b/src/browser/BrowserPasskeysConfirmationDialog.ui new file mode 100755 index 000000000..2d8fee547 --- /dev/null +++ b/src/browser/BrowserPasskeysConfirmationDialog.ui @@ -0,0 +1,163 @@ + + + BrowserPasskeysConfirmationDialog + + + + 0 + 0 + 400 + 274 + + + + + 0 + 0 + + + + KeePassXC - Passkey credentials + + + + + + + + + true + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + Relying Party: %1 + + + Qt::PlainText + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Username: %1 + + + Qt::PlainText + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + true + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + + + + 0 + 0 + + + + QAbstractItemView::NoEditTriggers + + + false + + + QAbstractItemView::SingleSelection + + + false + + + false + + + false + + + + + + + 0 + + + false + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Cancel + + + true + + + + + + + Update + + + + + + + Authenticate + + + + + + + + + + diff --git a/src/browser/BrowserService.cpp b/src/browser/BrowserService.cpp index 9f13546ad..5646bf3d0 100644 --- a/src/browser/BrowserService.cpp +++ b/src/browser/BrowserService.cpp @@ -1,7 +1,7 @@ /* - * Copyright (C) 2013 Francois Ferrand + * Copyright (C) 2024 KeePassXC Team * Copyright (C) 2017 Sami Vänttinen - * Copyright (C) 2022 KeePassXC Team + * Copyright (C) 2013 Francois Ferrand * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,7 +18,6 @@ */ #include "BrowserService.h" -#include "BrowserAccessControlDialog.h" #include "BrowserAction.h" #include "BrowserEntryConfig.h" #include "BrowserEntrySaveDialog.h" @@ -26,9 +25,16 @@ #include "BrowserMessageBuilder.h" #include "BrowserSettings.h" #include "core/Tools.h" +#include "core/UrlTools.h" #include "gui/MainWindow.h" #include "gui/MessageBox.h" #include "gui/osutils/OSUtils.h" +#ifdef WITH_XC_BROWSER_PASSKEYS +#include "BrowserPasskeys.h" +#include "BrowserPasskeysClient.h" +#include "BrowserPasskeysConfirmationDialog.h" +#include "PasskeyUtils.h" +#endif #ifdef Q_OS_MACOS #include "gui/osutils/macutils/MacUtils.h" #endif @@ -48,6 +54,9 @@ const QString BrowserService::KEEPASSXCBROWSER_NAME = QStringLiteral("KeePassXC- const QString BrowserService::KEEPASSXCBROWSER_OLD_NAME = QStringLiteral("keepassxc-browser Settings"); static const QString KEEPASSXCBROWSER_GROUP_NAME = QStringLiteral("KeePassXC-Browser Passwords"); static int KEEPASSXCBROWSER_DEFAULT_ICON = 1; +#ifdef WITH_XC_BROWSER_PASSKEYS +static int KEEPASSXCBROWSER_PASSKEY_ICON = 13; +#endif // These are for the settings and password conversion static const QString KEEPASSHTTP_NAME = QStringLiteral("KeePassHttp Settings"); static const QString KEEPASSHTTP_GROUP_NAME = QStringLiteral("KeePassHttp Passwords"); @@ -56,8 +65,7 @@ const QString BrowserService::OPTION_SKIP_AUTO_SUBMIT = QStringLiteral("BrowserS const QString BrowserService::OPTION_HIDE_ENTRY = QStringLiteral("BrowserHideEntry"); const QString BrowserService::OPTION_ONLY_HTTP_AUTH = QStringLiteral("BrowserOnlyHttpAuth"); const QString BrowserService::OPTION_NOT_HTTP_AUTH = QStringLiteral("BrowserNotHttpAuth"); -// Multiple URL's -const QString BrowserService::ADDITIONAL_URL = QStringLiteral("KP2A_URL"); +const QString BrowserService::OPTION_OMIT_WWW = QStringLiteral("BrowserOmitWww"); Q_GLOBAL_STATIC(BrowserService, s_browserService); @@ -115,7 +123,7 @@ bool BrowserService::openDatabase(bool triggerUnlock) return true; } - if (triggerUnlock) { + if (triggerUnlock && !m_bringToFrontRequested) { m_bringToFrontRequested = true; updateWindowState(); emit requestUnlock(); @@ -241,8 +249,8 @@ QJsonObject BrowserService::createNewGroup(const QString& groupName) return result; } - auto dialogResult = MessageBox::warning(nullptr, - tr("KeePassXC: Create a new group"), + auto dialogResult = MessageBox::warning(m_currentDatabaseWidget, + tr("KeePassXC - Create a new group"), tr("A request for creating a new group \"%1\" has been received.\n" "Do you want to create this group?\n") .arg(groupName), @@ -314,19 +322,151 @@ QString BrowserService::getCurrentTotp(const QString& uuid) return {}; } -void BrowserService::showPasswordGenerator(QLocalSocket* socket, - const QString& incrementedNonce, - const QString& publicKey, - const QString& secretKey) +QJsonArray +BrowserService::findEntries(const EntryParameters& entryParameters, const StringPairList& keyList, bool* entriesFound) +{ + if (entriesFound) { + *entriesFound = false; + } + + const bool alwaysAllowAccess = browserSettings()->alwaysAllowAccess(); + const bool ignoreHttpAuth = browserSettings()->httpAuthPermission(); + const QString siteHost = QUrl(entryParameters.siteUrl).host(); + const QString formHost = QUrl(entryParameters.formUrl).host(); + + // Check entries for authorization + QList entriesToConfirm; + QList allowedEntries; + for (auto* entry : searchEntries(entryParameters.siteUrl, entryParameters.formUrl, keyList)) { + auto entryCustomData = entry->customData(); + + if (!entryParameters.httpAuth + && ((entryCustomData->contains(BrowserService::OPTION_ONLY_HTTP_AUTH) + && entryCustomData->value(BrowserService::OPTION_ONLY_HTTP_AUTH) == TRUE_STR) + || entry->group()->resolveCustomDataTriState(BrowserService::OPTION_ONLY_HTTP_AUTH) == Group::Enable)) { + continue; + } + + if (entryParameters.httpAuth + && ((entryCustomData->contains(BrowserService::OPTION_NOT_HTTP_AUTH) + && entryCustomData->value(BrowserService::OPTION_NOT_HTTP_AUTH) == TRUE_STR) + || entry->group()->resolveCustomDataTriState(BrowserService::OPTION_NOT_HTTP_AUTH) == Group::Enable)) { + continue; + } + + // HTTP Basic Auth always needs a confirmation + if (!ignoreHttpAuth && entryParameters.httpAuth) { + entriesToConfirm.append(entry); + continue; + } + + switch (checkAccess(entry, siteHost, formHost, entryParameters.realm)) { + case Denied: + continue; + + case Unknown: + if (alwaysAllowAccess) { + allowedEntries.append(entry); + } else { + entriesToConfirm.append(entry); + } + break; + + case Allowed: + allowedEntries.append(entry); + break; + } + } + + if (entriesToConfirm.isEmpty() && allowedEntries.isEmpty()) { + return {}; + } + + // Confirm entries + auto selectedEntriesToConfirm = + confirmEntries(entriesToConfirm, entryParameters, siteHost, formHost, entryParameters.httpAuth); + if (!selectedEntriesToConfirm.isEmpty()) { + allowedEntries.append(selectedEntriesToConfirm); + } + + // Ensure that database is not locked when the popup was visible + if (!isDatabaseOpened()) { + return {}; + } + + // Sort results + allowedEntries = sortEntries(allowedEntries, entryParameters.siteUrl, entryParameters.formUrl); + + // Fill the list + QJsonArray entries; + for (auto* entry : allowedEntries) { + entries.append(prepareEntry(entry)); + } + + if (entriesFound != nullptr) { + *entriesFound = true; + } + + return entries; +} + +QList BrowserService::confirmEntries(QList& entriesToConfirm, + const EntryParameters& entryParameters, + const QString& siteHost, + const QString& formUrl, + const bool httpAuth) +{ + if (entriesToConfirm.isEmpty() || m_dialogActive) { + return {}; + } + + m_dialogActive = true; + updateWindowState(); + BrowserAccessControlDialog accessControlDialog(m_currentDatabaseWidget); + + connect(m_currentDatabaseWidget, SIGNAL(databaseLockRequested()), &accessControlDialog, SLOT(reject())); + + connect(&accessControlDialog, &BrowserAccessControlDialog::disableAccess, [&](QTableWidgetItem* item) { + auto entry = entriesToConfirm[item->row()]; + denyEntry(entry, siteHost, formUrl, entryParameters.realm); + }); + + accessControlDialog.setItems(entriesToConfirm, entryParameters.siteUrl, httpAuth); + + QList allowedEntries; + auto ret = accessControlDialog.exec(); + for (auto item : accessControlDialog.getSelectedEntries()) { + auto entry = entriesToConfirm[item->row()]; + if (accessControlDialog.remember()) { + if (ret == QDialog::Accepted) { + allowEntry(entry, siteHost, formUrl, entryParameters.realm); + } else { + denyEntry(entry, siteHost, formUrl, entryParameters.realm); + } + } + + if (ret == QDialog::Accepted) { + allowedEntries.append(entry); + } + } + + // Re-hide the application if it wasn't visible before + hideWindow(); + m_dialogActive = false; + + return allowedEntries; +} + +void BrowserService::showPasswordGenerator(const KeyPairMessage& keyPairMessage) { if (!m_passwordGenerator) { - m_passwordGenerator.reset(PasswordGeneratorWidget::popupGenerator()); + m_passwordGenerator.reset(PasswordGeneratorWidget::popupGenerator(m_currentDatabaseWidget)); connect(m_passwordGenerator.data(), &PasswordGeneratorWidget::closed, m_passwordGenerator.data(), [=] { if (!m_passwordGenerator->isPasswordGenerated()) { auto errorMessage = browserMessageBuilder()->getErrorReply("generate-password", ERROR_KEEPASS_ACTION_CANCELLED_OR_DENIED); - m_browserHost->sendClientMessage(socket, errorMessage); + m_browserHost->sendClientMessage(keyPairMessage.socket, errorMessage); } m_passwordGenerator.reset(); @@ -338,11 +478,14 @@ void BrowserService::showPasswordGenerator(QLocalSocket* socket, &PasswordGeneratorWidget::appliedPassword, m_passwordGenerator.data(), [=](const QString& password) { - QJsonObject message = browserMessageBuilder()->buildMessage(incrementedNonce); - message["password"] = password; - sendPassword(socket, - browserMessageBuilder()->buildResponse( - "generate-password", message, incrementedNonce, publicKey, secretKey)); + const Parameters params{{"password", password}}; + m_browserHost->sendClientMessage(keyPairMessage.socket, + browserMessageBuilder()->buildResponse("generate-password", + keyPairMessage.nonce, + params, + keyPairMessage.publicKey, + keyPairMessage.secretKey)); + hideWindow(); }); } @@ -352,12 +495,6 @@ void BrowserService::showPasswordGenerator(QLocalSocket* socket, m_passwordGenerator->activateWindow(); } -void BrowserService::sendPassword(QLocalSocket* socket, const QJsonObject& message) -{ - m_browserHost->sendClientMessage(socket, message); - hideWindow(); -} - bool BrowserService::isPasswordGeneratorRequested() const { return m_passwordGeneratorRequested; @@ -375,9 +512,9 @@ QString BrowserService::storeKey(const QString& key) QString id; do { - QInputDialog keyDialog; + QInputDialog keyDialog(m_currentDatabaseWidget); connect(m_currentDatabaseWidget, SIGNAL(databaseLockRequested()), &keyDialog, SLOT(reject())); - keyDialog.setWindowTitle(tr("KeePassXC: New key association request")); + keyDialog.setWindowTitle(tr("KeePassXC - New key association request")); keyDialog.setLabelText(tr("You have received an association request for the following database:\n%1\n\n" "Give the connection a unique name or ID, for example:\nchrome-laptop.") .arg(db->metadata()->name().toHtmlEscaped())); @@ -398,8 +535,8 @@ QString BrowserService::storeKey(const QString& key) contains = db->metadata()->customData()->contains(CustomData::BrowserKeyPrefix + id); if (contains) { - dialogResult = MessageBox::warning(nullptr, - tr("KeePassXC: Overwrite existing key?"), + dialogResult = MessageBox::warning(m_currentDatabaseWidget, + tr("KeePassXC - Overwrite existing key?"), tr("A shared encryption key with the name \"%1\" " "already exists.\nDo you want to overwrite it?") .arg(id), @@ -425,104 +562,215 @@ QString BrowserService::getKey(const QString& id) return db->metadata()->customData()->value(CustomData::BrowserKeyPrefix + id); } -QJsonArray BrowserService::findMatchingEntries(const QString& dbid, - const QString& siteUrlStr, - const QString& formUrlStr, - const QString& realm, - const StringPairList& keyList, - const bool httpAuth) +#ifdef WITH_XC_BROWSER_PASSKEYS +// Passkey registration +QJsonObject BrowserService::showPasskeysRegisterPrompt(const QJsonObject& publicKeyOptions, + const QString& origin, + const StringPairList& keyList) { - Q_UNUSED(dbid); - const bool alwaysAllowAccess = browserSettings()->alwaysAllowAccess(); - const bool ignoreHttpAuth = browserSettings()->httpAuthPermission(); - const QString siteHost = QUrl(siteUrlStr).host(); - const QString formHost = QUrl(formUrlStr).host(); + auto db = selectedDatabase(); + if (!db) { + return getPasskeyError(ERROR_KEEPASS_DATABASE_NOT_OPENED); + } - // Check entries for authorization - QList pwEntriesToConfirm; - QList pwEntries; - for (auto* entry : searchEntries(siteUrlStr, formUrlStr, keyList)) { - auto entryCustomData = entry->customData(); + QJsonObject credentialCreationOptions; + const auto pkOptionsResult = + browserPasskeysClient()->getCredentialCreationOptions(publicKeyOptions, origin, &credentialCreationOptions); + if (pkOptionsResult > 0 || credentialCreationOptions.isEmpty()) { + return getPasskeyError(pkOptionsResult); + } - if (!httpAuth - && ((entryCustomData->contains(BrowserService::OPTION_ONLY_HTTP_AUTH) - && entryCustomData->value(BrowserService::OPTION_ONLY_HTTP_AUTH) == TRUE_STR) - || entry->group()->resolveCustomDataTriState(BrowserService::OPTION_ONLY_HTTP_AUTH) == Group::Enable)) { - continue; + const auto excludeCredentials = credentialCreationOptions["excludeCredentials"].toArray(); + const auto rpId = publicKeyOptions["rp"]["id"].toString(); + const auto timeout = publicKeyOptions["timeout"].toInt(); + const auto username = credentialCreationOptions["user"].toObject()["name"].toString(); + + // Parse excludeCredentialDescriptorList + if (!excludeCredentials.isEmpty() && isPasskeyCredentialExcluded(excludeCredentials, rpId, keyList)) { + return getPasskeyError(ERROR_PASSKEYS_CREDENTIAL_IS_EXCLUDED); + } + const auto existingEntries = getPasskeyEntries(rpId, keyList); + + raiseWindow(); + BrowserPasskeysConfirmationDialog confirmDialog; + confirmDialog.registerCredential(username, rpId, existingEntries, timeout); + + auto dialogResult = confirmDialog.exec(); + if (dialogResult == QDialog::Accepted) { + const auto publicKeyCredentials = + browserPasskeys()->buildRegisterPublicKeyCredential(credentialCreationOptions); + if (publicKeyCredentials.credentialId.isEmpty() || publicKeyCredentials.key.isEmpty() + || publicKeyCredentials.response.isEmpty()) { + return getPasskeyError(ERROR_PASSKEYS_UNKNOWN_ERROR); } - if (httpAuth - && ((entryCustomData->contains(BrowserService::OPTION_NOT_HTTP_AUTH) - && entryCustomData->value(BrowserService::OPTION_NOT_HTTP_AUTH) == TRUE_STR) - || entry->group()->resolveCustomDataTriState(BrowserService::OPTION_NOT_HTTP_AUTH) == Group::Enable)) { - continue; + const auto rpName = publicKeyOptions["rp"]["name"].toString(); + const auto user = credentialCreationOptions["user"].toObject(); + const auto userId = user["id"].toString(); + + if (confirmDialog.isPasskeyUpdated()) { + addPasskeyToEntry(confirmDialog.getSelectedEntry(), + rpId, + rpName, + username, + publicKeyCredentials.credentialId, + userId, + publicKeyCredentials.key); + } else { + addPasskeyToGroup(nullptr, + origin, + rpId, + rpName, + username, + publicKeyCredentials.credentialId, + userId, + publicKeyCredentials.key); } - // HTTP Basic Auth always needs a confirmation - if (!ignoreHttpAuth && httpAuth) { - pwEntriesToConfirm.append(entry); - continue; - } - - switch (checkAccess(entry, siteHost, formHost, realm)) { - case Denied: - continue; - - case Unknown: - if (alwaysAllowAccess) { - pwEntries.append(entry); - } else { - pwEntriesToConfirm.append(entry); - } - break; - - case Allowed: - pwEntries.append(entry); - break; - } + hideWindow(); + return publicKeyCredentials.response; } - // Confirm entries - QList selectedEntriesToConfirm = - confirmEntries(pwEntriesToConfirm, siteUrlStr, siteHost, formHost, realm, httpAuth); - if (!selectedEntriesToConfirm.isEmpty()) { - pwEntries.append(selectedEntriesToConfirm); - } - - if (pwEntries.isEmpty()) { - return {}; - } - - // Ensure that database is not locked when the popup was visible - if (!isDatabaseOpened()) { - return {}; - } - - // Sort results - pwEntries = sortEntries(pwEntries, siteUrlStr, formUrlStr); - - // Fill the list - QJsonArray result; - for (auto* entry : pwEntries) { - result.append(prepareEntry(entry)); - } - - return result; + hideWindow(); + return getPasskeyError(ERROR_PASSKEYS_REQUEST_CANCELED); } -void BrowserService::addEntry(const QString& dbid, - const QString& login, - const QString& password, - const QString& siteUrlStr, - const QString& formUrlStr, - const QString& realm, +// Passkey authentication +QJsonObject BrowserService::showPasskeysAuthenticationPrompt(const QJsonObject& publicKeyOptions, + const QString& origin, + const StringPairList& keyList) +{ + auto db = selectedDatabase(); + if (!db) { + return getPasskeyError(ERROR_KEEPASS_DATABASE_NOT_OPENED); + } + + QJsonObject assertionOptions; + const auto assertionResult = + browserPasskeysClient()->getAssertionOptions(publicKeyOptions, origin, &assertionOptions); + if (assertionResult > 0 || assertionOptions.isEmpty()) { + return getPasskeyError(assertionResult); + } + + // Get allowed entries from RP ID + const auto rpId = assertionOptions["rpId"].toString(); + const auto entries = getPasskeyAllowedEntries(assertionOptions, rpId, keyList); + if (entries.isEmpty()) { + return getPasskeyError(ERROR_KEEPASS_NO_LOGINS_FOUND); + } + + const auto timeout = publicKeyOptions["timeout"].toInt(); + + raiseWindow(); + BrowserPasskeysConfirmationDialog confirmDialog; + confirmDialog.authenticateCredential(entries, rpId, timeout); + auto dialogResult = confirmDialog.exec(); + if (dialogResult == QDialog::Accepted) { + hideWindow(); + const auto selectedEntry = confirmDialog.getSelectedEntry(); + if (!selectedEntry) { + return getPasskeyError(ERROR_PASSKEYS_UNKNOWN_ERROR); + } + + const auto privateKeyPem = selectedEntry->attributes()->value(BrowserPasskeys::KPEX_PASSKEY_PRIVATE_KEY_PEM); + const auto credentialId = selectedEntry->attributes()->value(BrowserPasskeys::KPEX_PASSKEY_CREDENTIAL_ID); + const auto userHandle = selectedEntry->attributes()->value(BrowserPasskeys::KPEX_PASSKEY_USER_HANDLE); + + auto publicKeyCredential = + browserPasskeys()->buildGetPublicKeyCredential(assertionOptions, credentialId, userHandle, privateKeyPem); + if (publicKeyCredential.isEmpty()) { + return getPasskeyError(ERROR_PASSKEYS_UNKNOWN_ERROR); + } + + return publicKeyCredential; + } + + hideWindow(); + return getPasskeyError(ERROR_PASSKEYS_REQUEST_CANCELED); +} + +void BrowserService::addPasskeyToGroup(Group* group, + const QString& url, + const QString& rpId, + const QString& rpName, + const QString& username, + const QString& credentialId, + const QString& userHandle, + const QString& privateKey) +{ + // If no group provided, use the default browser group of the selected database + if (!group) { + auto db = selectedDatabase(); + if (!db) { + return; + } + group = getDefaultEntryGroup(db); + } + + auto* entry = new Entry(); + entry->setUuid(QUuid::createUuid()); + entry->setGroup(group); + entry->setTitle(tr("%1 (Passkey)").arg(rpName)); + entry->setUsername(username); + entry->setUrl(url); + entry->setIcon(KEEPASSXCBROWSER_PASSKEY_ICON); + + addPasskeyToEntry(entry, rpId, rpName, username, credentialId, userHandle, privateKey); + + // Remove blank entry history + entry->removeHistoryItems(entry->historyItems()); +} + +void BrowserService::addPasskeyToEntry(Entry* entry, + const QString& rpId, + const QString& rpName, + const QString& username, + const QString& credentialId, + const QString& userHandle, + const QString& privateKey) +{ + // Reserved for future use + Q_UNUSED(rpName) + + Q_ASSERT(entry); + if (!entry) { + return; + } + + // Ask confirmation if entry already contains a Passkey + if (entry->hasPasskey()) { + if (MessageBox::question( + m_currentDatabaseWidget, + tr("KeePassXC - Update Passkey"), + tr("Entry already has a Passkey.\nDo you want to overwrite the Passkey in %1 - %2?") + .arg(entry->title(), entry->attributes()->value(BrowserPasskeys::KPEX_PASSKEY_USERNAME)), + MessageBox::Overwrite | MessageBox::Cancel, + MessageBox::Cancel) + != MessageBox::Overwrite) { + return; + } + } + + entry->beginUpdate(); + + entry->attributes()->set(BrowserPasskeys::KPEX_PASSKEY_USERNAME, username); + entry->attributes()->set(BrowserPasskeys::KPEX_PASSKEY_CREDENTIAL_ID, credentialId, true); + entry->attributes()->set(BrowserPasskeys::KPEX_PASSKEY_PRIVATE_KEY_PEM, privateKey, true); + entry->attributes()->set(BrowserPasskeys::KPEX_PASSKEY_RELYING_PARTY, rpId); + entry->attributes()->set(BrowserPasskeys::KPEX_PASSKEY_USER_HANDLE, userHandle, true); + entry->addTag(tr("Passkey")); + + entry->endUpdate(); +} +#endif + +void BrowserService::addEntry(const EntryParameters& entryParameters, const QString& group, const QString& groupUuid, const bool downloadFavicon, const QSharedPointer& selectedDb) { // TODO: select database based on this key id - Q_UNUSED(dbid); auto db = selectedDb ? selectedDb : selectedDatabase(); if (!db) { return; @@ -530,11 +778,11 @@ void BrowserService::addEntry(const QString& dbid, auto* entry = new Entry(); entry->setUuid(QUuid::createUuid()); - entry->setTitle(QUrl(siteUrlStr).host()); - entry->setUrl(siteUrlStr); + entry->setTitle(entryParameters.title.isEmpty() ? QUrl(entryParameters.siteUrl).host() : entryParameters.title); + entry->setUrl(entryParameters.siteUrl); entry->setIcon(KEEPASSXCBROWSER_DEFAULT_ICON); - entry->setUsername(login); - entry->setPassword(password); + entry->setUsername(entryParameters.login); + entry->setPassword(entryParameters.password); // Select a group for the entry if (!group.isEmpty()) { @@ -550,16 +798,16 @@ void BrowserService::addEntry(const QString& dbid, entry->setGroup(getDefaultEntryGroup(db)); } - const QString host = QUrl(siteUrlStr).host(); - const QString submitHost = QUrl(formUrlStr).host(); + const QString host = QUrl(entryParameters.siteUrl).host(); + const QString submitHost = QUrl(entryParameters.formUrl).host(); BrowserEntryConfig config; config.allow(host); if (!submitHost.isEmpty()) { config.allow(submitHost); } - if (!realm.isEmpty()) { - config.setRealm(realm); + if (!entryParameters.realm.isEmpty()) { + config.setRealm(entryParameters.realm); } config.save(entry); @@ -568,24 +816,18 @@ void BrowserService::addEntry(const QString& dbid, } } -bool BrowserService::updateEntry(const QString& dbid, - const QString& uuid, - const QString& login, - const QString& password, - const QString& siteUrlStr, - const QString& formUrlStr) +bool BrowserService::updateEntry(const EntryParameters& entryParameters, const QString& uuid) { // TODO: select database based on this key id - Q_UNUSED(dbid); auto db = selectedDatabase(); if (!db) { return false; } - Entry* entry = db->rootGroup()->findEntryByUuid(Tools::hexToUuid(uuid)); + auto entry = db->rootGroup()->findEntryByUuid(Tools::hexToUuid(uuid)); if (!entry) { // If entry is not found for update, add a new one to the selected database - addEntry(dbid, login, password, siteUrlStr, formUrlStr, "", "", "", db); + addEntry(entryParameters, "", "", false, db); return true; } @@ -600,32 +842,31 @@ bool BrowserService::updateEntry(const QString& dbid, } } - QString username = entry->username(); + auto username = entry->username(); if (username.isEmpty()) { return false; } bool result = false; - if (username.compare(login, Qt::CaseSensitive) != 0 - || entry->password().compare(password, Qt::CaseSensitive) != 0) { + if (username.compare(entryParameters.login, Qt::CaseSensitive) != 0 + || entry->password().compare(entryParameters.password, Qt::CaseSensitive) != 0) { MessageBox::Button dialogResult = MessageBox::No; if (!browserSettings()->alwaysAllowUpdate()) { raiseWindow(); - dialogResult = MessageBox::question( - nullptr, - tr("KeePassXC: Update Entry"), - tr("Do you want to update the information in %1 - %2?").arg(QUrl(siteUrlStr).host(), username), - MessageBox::Save | MessageBox::Cancel, - MessageBox::Cancel, - MessageBox::Raise); + dialogResult = MessageBox::question(m_currentDatabaseWidget, + tr("KeePassXC - Update Entry"), + tr("Do you want to update the information in %1 - %2?") + .arg(QUrl(entryParameters.siteUrl).host(), username), + MessageBox::Save | MessageBox::Cancel, + MessageBox::Cancel); } if (browserSettings()->alwaysAllowUpdate() || dialogResult == MessageBox::Save) { entry->beginUpdate(); if (!entry->attributes()->isReference(EntryAttributes::UserNameKey)) { - entry->setUsername(login); + entry->setUsername(entryParameters.login); } - entry->setPassword(password); + entry->setPassword(entryParameters.password); entry->endUpdate(); result = true; } @@ -648,8 +889,8 @@ bool BrowserService::deleteEntry(const QString& uuid) return false; } - auto dialogResult = MessageBox::warning(nullptr, - tr("KeePassXC: Delete entry"), + auto dialogResult = MessageBox::warning(m_currentDatabaseWidget, + tr("KeePassXC - Delete entry"), tr("A request for deleting entry \"%1\" has been received.\n" "Do you want to delete the entry?\n") .arg(entry->title()), @@ -662,8 +903,10 @@ bool BrowserService::deleteEntry(const QString& uuid) return true; } -QList -BrowserService::searchEntries(const QSharedPointer& db, const QString& siteUrlStr, const QString& formUrlStr) +QList BrowserService::searchEntries(const QSharedPointer& db, + const QString& siteUrl, + const QString& formUrl, + bool passkey) { QList entries; auto* rootGroup = db->rootGroup(); @@ -677,6 +920,9 @@ BrowserService::searchEntries(const QSharedPointer& db, const QString& continue; } + const auto omitWwwSubdomain = + group->resolveCustomDataTriState(BrowserService::OPTION_OMIT_WWW) == Group::Enable; + for (auto* entry : group->entries()) { if (entry->isRecycled() || (entry->customData()->contains(BrowserService::OPTION_HIDE_ENTRY) @@ -684,19 +930,17 @@ BrowserService::searchEntries(const QSharedPointer& db, const QString& continue; } - // Search for additional URL's starting with KP2A_URL - for (const auto& key : entry->attributes()->keys()) { - if (key.startsWith(ADDITIONAL_URL) && handleURL(entry->attributes()->value(key), siteUrlStr, formUrlStr) - && !entries.contains(entry)) { - entries.append(entry); - continue; - } - } - - if (!handleEntry(entry, siteUrlStr, formUrlStr)) { + if (!passkey && !shouldIncludeEntry(entry, siteUrl, formUrl, omitWwwSubdomain)) { continue; } +#ifdef WITH_XC_BROWSER_PASSKEYS + // With Passkeys, check for the Relying Party instead of URL + if (passkey && entry->attributes()->value(BrowserPasskeys::KPEX_PASSKEY_RELYING_PARTY) != siteUrl) { + continue; + } +#endif + // Additional URL check may have already inserted the entry to the list if (!entries.contains(entry)) { entries.append(entry); @@ -707,8 +951,10 @@ BrowserService::searchEntries(const QSharedPointer& db, const QString& return entries; } -QList -BrowserService::searchEntries(const QString& siteUrlStr, const QString& formUrlStr, const StringPairList& keyList) +QList BrowserService::searchEntries(const QString& siteUrl, + const QString& formUrl, + const StringPairList& keyList, + bool passkey) { // Check if database is connected with KeePassXC-Browser auto databaseConnected = [&](const QSharedPointer& db) { @@ -738,11 +984,11 @@ BrowserService::searchEntries(const QString& siteUrlStr, const QString& formUrlS } // Search entries matching the hostname - QString hostname = QUrl(siteUrlStr).host(); + QString hostname = QUrl(siteUrl).host(); QList entries; do { for (const auto& db : databases) { - entries << searchEntries(db, siteUrlStr, formUrlStr); + entries << searchEntries(db, siteUrl, formUrl, passkey); } } while (entries.isEmpty() && removeFirstDomain(hostname)); @@ -827,13 +1073,12 @@ void BrowserService::requestGlobalAutoType(const QString& search) emit osUtils->globalShortcutTriggered("autotype", search); } -QList -BrowserService::sortEntries(QList& pwEntries, const QString& siteUrlStr, const QString& formUrlStr) +QList BrowserService::sortEntries(QList& entries, const QString& siteUrl, const QString& formUrl) { // Build map of prioritized entries QMultiMap priorities; - for (auto* entry : pwEntries) { - priorities.insert(sortPriority(getEntryURLs(entry), siteUrlStr, formUrlStr), entry); + for (auto* entry : entries) { + priorities.insert(sortPriority(entry->getAllUrls(), siteUrl, formUrl), entry); } auto keys = priorities.uniqueKeys(); @@ -852,72 +1097,50 @@ BrowserService::sortEntries(QList& pwEntries, const QString& siteUrlStr, return results; } -QList BrowserService::confirmEntries(QList& pwEntriesToConfirm, - const QString& siteUrlStr, - const QString& siteHost, - const QString& formUrlStr, - const QString& realm, - const bool httpAuth) +void BrowserService::allowEntry(Entry* entry, const QString& siteHost, const QString& formUrl, const QString& realm) { - if (pwEntriesToConfirm.isEmpty() || m_dialogActive) { - return {}; + BrowserEntryConfig config; + config.load(entry); + config.allow(siteHost); + + if (!formUrl.isEmpty() && siteHost != formUrl) { + config.allow(formUrl); } - m_dialogActive = true; - updateWindowState(); - BrowserAccessControlDialog accessControlDialog; - - connect(m_currentDatabaseWidget, SIGNAL(databaseLockRequested()), &accessControlDialog, SLOT(reject())); - - connect(&accessControlDialog, &BrowserAccessControlDialog::disableAccess, [&](QTableWidgetItem* item) { - auto entry = pwEntriesToConfirm[item->row()]; - BrowserEntryConfig config; - config.load(entry); - config.deny(siteHost); - if (!formUrlStr.isEmpty() && siteHost != formUrlStr) { - config.deny(formUrlStr); - } - if (!realm.isEmpty()) { - config.setRealm(realm); - } - config.save(entry); - }); - - accessControlDialog.setItems(pwEntriesToConfirm, siteUrlStr, httpAuth); - - QList allowedEntries; - if (accessControlDialog.exec() == QDialog::Accepted) { - const auto selectedEntries = accessControlDialog.getSelectedEntries(); - for (auto item : accessControlDialog.getSelectedEntries()) { - auto entry = pwEntriesToConfirm[item->row()]; - if (accessControlDialog.remember()) { - BrowserEntryConfig config; - config.load(entry); - config.allow(siteHost); - if (!formUrlStr.isEmpty() && siteHost != formUrlStr) { - config.allow(formUrlStr); - } - if (!realm.isEmpty()) { - config.setRealm(realm); - } - config.save(entry); - } - allowedEntries.append(entry); - } + if (!realm.isEmpty()) { + config.setRealm(realm); } - // Re-hide the application if it wasn't visible before - hideWindow(); + config.save(entry); +} - m_dialogActive = false; +void BrowserService::denyEntry(Entry* entry, const QString& siteHost, const QString& formUrl, const QString& realm) +{ + BrowserEntryConfig config; + config.load(entry); + config.deny(siteHost); - return allowedEntries; + if (!formUrl.isEmpty() && siteHost != formUrl) { + config.deny(formUrl); + } + + if (!realm.isEmpty()) { + config.setRealm(realm); + } + + config.save(entry); } QJsonObject BrowserService::prepareEntry(const Entry* entry) { QJsonObject res; +#ifdef WITH_XC_BROWSER_PASSKEYS + // Use Passkey's username instead if found + res["login"] = entry->hasPasskey() ? entry->attributes()->value(BrowserPasskeys::KPEX_PASSKEY_USERNAME) + : entry->resolveMultiplePlaceholders(entry->username()); +#else res["login"] = entry->resolveMultiplePlaceholders(entry->username()); +#endif res["password"] = entry->resolveMultiplePlaceholders(entry->password()); res["name"] = entry->resolveMultiplePlaceholders(entry->title()); res["uuid"] = entry->resolveMultiplePlaceholders(entry->uuidToHex()); @@ -958,8 +1181,8 @@ QJsonObject BrowserService::prepareEntry(const Entry* entry) BrowserService::Access BrowserService::checkAccess(const Entry* entry, const QString& siteHost, const QString& formHost, const QString& realm) { - if (entry->isExpired()) { - return browserSettings()->allowExpiredCredentials() ? Allowed : Denied; + if (entry->isExpired() && !browserSettings()->allowExpiredCredentials()) { + return Denied; } BrowserEntryConfig config; @@ -1006,14 +1229,14 @@ Group* BrowserService::getDefaultEntryGroup(const QSharedPointer& sele // Returns the maximum sort priority given a set of match urls and the // extension provided site and form url. -int BrowserService::sortPriority(const QStringList& urls, const QString& siteUrlStr, const QString& formUrlStr) +int BrowserService::sortPriority(const QStringList& urls, const QString& siteUrl, const QString& formUrl) { QList priorityList; // NOTE: QUrl::matches is utterly broken in Qt < 5.11, so we work around that // by removing parts of the url that we don't match and direct matching others const auto stdOpts = QUrl::RemoveFragment | QUrl::RemoveUserInfo; - const auto siteUrl = QUrl(siteUrlStr).adjusted(stdOpts); - const auto formUrl = QUrl(formUrlStr).adjusted(stdOpts); + const auto adjustedSiteUrl = QUrl(siteUrl).adjusted(stdOpts); + const auto adjustedFormUrl = QUrl(formUrl).adjusted(stdOpts); auto getPriority = [&](const QString& givenUrl) { auto url = QUrl::fromUserInput(givenUrl).adjusted(stdOpts); @@ -1031,38 +1254,38 @@ int BrowserService::sortPriority(const QStringList& urls, const QString& siteUrl // Reject invalid urls and hosts, except 'localhost', and scheme mismatch if (!url.isValid() || (!url.host().contains(".") && url.host() != "localhost") - || url.scheme() != siteUrl.scheme()) { + || url.scheme() != adjustedSiteUrl.scheme()) { return 0; } // Exact match with site url or form url - if (url.matches(siteUrl, QUrl::None) || url.matches(formUrl, QUrl::None)) { + if (url.matches(adjustedSiteUrl, QUrl::None) || url.matches(adjustedFormUrl, QUrl::None)) { return 100; } // Exact match without the query string - if (url.matches(siteUrl, QUrl::RemoveQuery) || url.matches(formUrl, QUrl::RemoveQuery)) { + if (url.matches(adjustedSiteUrl, QUrl::RemoveQuery) || url.matches(adjustedFormUrl, QUrl::RemoveQuery)) { return 90; } // Parent directory match - if (url.isParentOf(siteUrl) || url.isParentOf(formUrl)) { + if (url.isParentOf(adjustedSiteUrl) || url.isParentOf(adjustedFormUrl)) { return 85; } // Match without path (ie, FQDN match), form url prioritizes lower than site url - if (url.host() == siteUrl.host()) { + if (url.host() == adjustedSiteUrl.host()) { return 80; } - if (url.host() == formUrl.host()) { + if (url.host() == adjustedFormUrl.host()) { return 70; } // Site/form url ends with given url (subdomain mismatch) - if (siteUrl.host().endsWith(url.host())) { + if (adjustedSiteUrl.host().endsWith(url.host())) { return 60; } - if (formUrl.host().endsWith(url.host())) { + if (adjustedFormUrl.host().endsWith(url.host())) { return 50; } @@ -1077,18 +1300,6 @@ int BrowserService::sortPriority(const QStringList& urls, const QString& siteUrl return *std::max_element(priorityList.begin(), priorityList.end()); } -bool BrowserService::schemeFound(const QString& url) -{ - QUrl address(url); - return !address.scheme().isEmpty(); -} - -bool BrowserService::isIpAddress(const QString& host) const -{ - QHostAddress address(host); - return address.protocol() == QAbstractSocket::IPv4Protocol || address.protocol() == QAbstractSocket::IPv6Protocol; -} - bool BrowserService::removeFirstDomain(QString& hostname) { int pos = hostname.indexOf("."); @@ -1108,7 +1319,10 @@ bool BrowserService::removeFirstDomain(QString& hostname) /* Test if a search URL matches a custom entry. If the URL has the schema "keepassxc", some special checks will be made. * Otherwise, this simply delegates to handleURL(). */ -bool BrowserService::handleEntry(Entry* entry, const QString& url, const QString& submitUrl) +bool BrowserService::shouldIncludeEntry(Entry* entry, + const QString& url, + const QString& submitUrl, + const bool omitWwwSubdomain) { // Use this special scheme to find entries by UUID if (url.startsWith("keepassxc://by-uuid/")) { @@ -1116,10 +1330,82 @@ bool BrowserService::handleEntry(Entry* entry, const QString& url, const QString } else if (url.startsWith("keepassxc://by-path/")) { return url.endsWith("by-path/" + entry->path()); } - return handleURL(entry->url(), url, submitUrl); + + const auto allEntryUrls = entry->getAllUrls(); + for (const auto& entryUrl : allEntryUrls) { + if (handleURL(entryUrl, url, submitUrl, omitWwwSubdomain)) { + return true; + } + } + + return false; } -bool BrowserService::handleURL(const QString& entryUrl, const QString& siteUrlStr, const QString& formUrlStr) +#ifdef WITH_XC_BROWSER_PASSKEYS +// Returns all Passkey entries for the current Relying Party +QList BrowserService::getPasskeyEntries(const QString& rpId, const StringPairList& keyList) +{ + QList entries; + for (const auto& entry : searchEntries(rpId, "", keyList, true)) { + if (entry->hasPasskey() && entry->attributes()->value(BrowserPasskeys::KPEX_PASSKEY_RELYING_PARTY) == rpId) { + entries << entry; + } + } + + return entries; +} + +// Get all entries for the site that are allowed by the server +QList BrowserService::getPasskeyAllowedEntries(const QJsonObject& assertionOptions, + const QString& rpId, + const StringPairList& keyList) +{ + QList entries; + const auto allowedCredentials = passkeyUtils()->getAllowedCredentialsFromAssertionOptions(assertionOptions); + if (!assertionOptions["allowCredentials"].toArray().isEmpty() && allowedCredentials.isEmpty()) { + return {}; + } + + for (const auto& entry : getPasskeyEntries(rpId, keyList)) { + // If allowedCredentials.isEmpty() check if entry contains an extra attribute for user handle. + // If that is found, the entry should be allowed. + // See: https://w3c.github.io/webauthn/#dom-authenticatorassertionresponse-userhandle + if (allowedCredentials.contains(entry->attributes()->value(BrowserPasskeys::KPEX_PASSKEY_CREDENTIAL_ID)) + || (allowedCredentials.isEmpty() + && entry->attributes()->hasKey(BrowserPasskeys::KPEX_PASSKEY_USER_HANDLE))) { + entries << entry; + } + } + + return entries; +} + +// Checks if the same user ID already exists for the current RP ID +bool BrowserService::isPasskeyCredentialExcluded(const QJsonArray& excludeCredentials, + const QString& rpId, + const StringPairList& keyList) +{ + QStringList allIds; + for (const auto& cred : excludeCredentials) { + allIds << cred["id"].toString(); + } + + const auto passkeyEntries = getPasskeyEntries(rpId, keyList); + return std::any_of(passkeyEntries.begin(), passkeyEntries.end(), [&](const auto& entry) { + return allIds.contains(entry->attributes()->value(BrowserPasskeys::KPEX_PASSKEY_CREDENTIAL_ID)); + }); +} + +QJsonObject BrowserService::getPasskeyError(int errorCode) const +{ + return QJsonObject({{"errorCode", errorCode}}); +} +#endif + +bool BrowserService::handleURL(const QString& entryUrl, + const QString& siteUrl, + const QString& formUrl, + const bool omitWwwSubdomain) { if (entryUrl.isEmpty()) { return false; @@ -1136,9 +1422,14 @@ bool BrowserService::handleURL(const QString& entryUrl, const QString& siteUrlSt } } + // Remove WWW subdomain from matching if group setting is enabled + if (omitWwwSubdomain && entryQUrl.host().startsWith("www.")) { + entryQUrl.setHost(entryQUrl.host().remove("www.")); + } + // Make a direct compare if a local file is used - if (siteUrlStr.startsWith("file://")) { - return entryUrl == formUrlStr; + if (siteUrl.startsWith("file://")) { + return entryUrl == formUrl; } // URL host validation fails @@ -1147,7 +1438,7 @@ bool BrowserService::handleURL(const QString& entryUrl, const QString& siteUrlSt } // Match port, if used - QUrl siteQUrl(siteUrlStr); + QUrl siteQUrl(siteUrl); if (entryQUrl.port() > 0 && entryQUrl.port() != siteQUrl.port()) { return false; } @@ -1165,7 +1456,7 @@ bool BrowserService::handleURL(const QString& entryUrl, const QString& siteUrlSt } // Match the base domain - if (getTopLevelDomainFromUrl(siteQUrl.host()) != getTopLevelDomainFromUrl(entryQUrl.host())) { + if (urlTools()->getBaseDomainFromUrl(siteQUrl.host()) != urlTools()->getBaseDomainFromUrl(entryQUrl.host())) { return false; } @@ -1175,44 +1466,36 @@ bool BrowserService::handleURL(const QString& entryUrl, const QString& siteUrlSt } return false; -}; - -/** - * Gets the base domain of URL. - * - * Returns the base domain, e.g. https://another.example.co.uk -> example.co.uk - */ -QString BrowserService::getTopLevelDomainFromUrl(const QString& url) const -{ - QUrl qurl = QUrl::fromUserInput(url); - QString host = qurl.host(); - - // If the hostname is an IP address, return it directly - if (isIpAddress(host)) { - return host; - } - - if (host.isEmpty() || !host.contains(qurl.topLevelDomain())) { - return {}; - } - - // Remove the top level domain part from the hostname, e.g. https://another.example.co.uk -> https://another.example - host.chop(qurl.topLevelDomain().length()); - // Split the URL and select the last part, e.g. https://another.example -> example - QString baseDomain = host.split('.').last(); - // Append the top level domain back to the URL, e.g. example -> example.co.uk - baseDomain.append(qurl.topLevelDomain()); - return baseDomain; } -QSharedPointer BrowserService::getDatabase() +QSharedPointer BrowserService::getDatabase(const QUuid& rootGroupUuid) { + if (!rootGroupUuid.isNull()) { + const auto openDatabases = getOpenDatabases(); + for (const auto& db : openDatabases) { + if (db->rootGroup()->uuid() == rootGroupUuid) { + return db; + } + } + } + if (m_currentDatabaseWidget) { return m_currentDatabaseWidget->database(); } return {}; } +QList> BrowserService::getOpenDatabases() +{ + QList> databaseList; + for (auto dbWidget : getMainWindow()->getOpenDatabases()) { + if (!dbWidget->isLocked()) { + databaseList << dbWidget->database(); + } + } + return databaseList; +} + QSharedPointer BrowserService::selectedDatabase() { QList databaseWidgets; @@ -1223,7 +1506,7 @@ QSharedPointer BrowserService::selectedDatabase() } } - BrowserEntrySaveDialog browserEntrySaveDialog; + BrowserEntrySaveDialog browserEntrySaveDialog(m_currentDatabaseWidget); int openDatabaseCount = browserEntrySaveDialog.setItems(databaseWidgets, m_currentDatabaseWidget); if (openDatabaseCount > 1) { int res = browserEntrySaveDialog.exec(); @@ -1320,21 +1603,6 @@ bool BrowserService::checkLegacySettings(QSharedPointer db) return dialogResult == MessageBox::Yes; } -QStringList BrowserService::getEntryURLs(const Entry* entry) -{ - QStringList urlList; - urlList << entry->url(); - - // Handle additional URL's - for (const auto& key : entry->attributes()->keys()) { - if (key.startsWith(ADDITIONAL_URL)) { - urlList << entry->attributes()->value(key); - } - } - - return urlList; -} - void BrowserService::hideWindow() const { if (m_prevWindowState == WindowState::Minimized) { @@ -1428,8 +1696,7 @@ void BrowserService::databaseUnlocked(DatabaseWidget* dbWidget) void BrowserService::activeDatabaseChanged(DatabaseWidget* dbWidget) { - // Only emit these signals when we are not searching in all databases - if (dbWidget && !browserSettings()->searchInAllDatabases()) { + if (dbWidget) { if (dbWidget->isLocked()) { databaseLocked(dbWidget); } else { diff --git a/src/browser/BrowserService.h b/src/browser/BrowserService.h index f91887cd0..424992486 100644 --- a/src/browser/BrowserService.h +++ b/src/browser/BrowserService.h @@ -1,7 +1,7 @@ /* - * Copyright (C) 2013 Francois Ferrand + * Copyright (C) 2024 KeePassXC Team * Copyright (C) 2017 Sami Vänttinen - * Copyright (C) 2021 KeePassXC Team + * Copyright (C) 2013 Francois Ferrand * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,9 +17,11 @@ * along with this program. If not, see . */ -#ifndef BROWSERSERVICE_H -#define BROWSERSERVICE_H +#ifndef KEEPASSXC_BROWSERSERVICE_H +#define KEEPASSXC_BROWSERSERVICE_H +#include "BrowserAccessControlDialog.h" +#include "config-keepassx.h" #include "core/Entry.h" #include "gui/PasswordGeneratorWidget.h" @@ -33,6 +35,27 @@ enum max_length = 16 * 1024 }; +struct KeyPairMessage +{ + QLocalSocket* socket; + QString nonce; + QString publicKey; + QString secretKey; +}; + +struct EntryParameters +{ + QString dbid; + QString title; + QString login; + QString password; + QString realm; + QString hash; + QString siteUrl; + QString formUrl; + bool httpAuth; +}; + class DatabaseWidget; class BrowserHost; class BrowserAction; @@ -58,38 +81,42 @@ public: QJsonObject getDatabaseGroups(); QJsonObject createNewGroup(const QString& groupName); QString getCurrentTotp(const QString& uuid); - void showPasswordGenerator(QLocalSocket* socket, - const QString& nonce, - const QString& publicKey, - const QString& secretKey); - void sendPassword(QLocalSocket* socket, const QJsonObject& message); + void showPasswordGenerator(const KeyPairMessage& keyPairMessage); bool isPasswordGeneratorRequested() const; - - void addEntry(const QString& dbid, - const QString& login, - const QString& password, - const QString& siteUrlStr, - const QString& formUrlStr, - const QString& realm, + QSharedPointer getDatabase(const QUuid& rootGroupUuid = {}); + QSharedPointer selectedDatabase(); + QList> getOpenDatabases(); +#ifdef WITH_XC_BROWSER_PASSKEYS + QJsonObject showPasskeysRegisterPrompt(const QJsonObject& publicKeyOptions, + const QString& origin, + const StringPairList& keyList); + QJsonObject showPasskeysAuthenticationPrompt(const QJsonObject& publicKeyOptions, + const QString& origin, + const StringPairList& keyList); + void addPasskeyToGroup(Group* group, + const QString& url, + const QString& rpId, + const QString& rpName, + const QString& username, + const QString& credentialId, + const QString& userHandle, + const QString& privateKey); + void addPasskeyToEntry(Entry* entry, + const QString& rpId, + const QString& rpName, + const QString& username, + const QString& credentialId, + const QString& userHandle, + const QString& privateKey); +#endif + void addEntry(const EntryParameters& entryParameters, const QString& group, const QString& groupUuid, const bool downloadFavicon, const QSharedPointer& selectedDb = {}); - bool updateEntry(const QString& dbid, - const QString& uuid, - const QString& login, - const QString& password, - const QString& siteUrlStr, - const QString& formUrlStr); + bool updateEntry(const EntryParameters& entryParameters, const QString& uuid); bool deleteEntry(const QString& uuid); - - QJsonArray findMatchingEntries(const QString& dbid, - const QString& siteUrlStr, - const QString& formUrlStr, - const QString& realm, - const StringPairList& keyList, - const bool httpAuth = false); - + QJsonArray findEntries(const EntryParameters& entryParameters, const StringPairList& keyList, bool* entriesFound); void requestGlobalAutoType(const QString& search); static void convertAttributesToCustomData(QSharedPointer db); @@ -99,7 +126,7 @@ public: static const QString OPTION_HIDE_ENTRY; static const QString OPTION_ONLY_HTTP_AUTH; static const QString OPTION_NOT_HTTP_AUTH; - static const QString ADDITIONAL_URL; + static const QString OPTION_OMIT_WWW; signals: void requestUnlock(); @@ -128,34 +155,44 @@ private: Hidden }; + QList searchEntries(const QSharedPointer& db, + const QString& siteUrl, + const QString& formUrl, + bool passkey = false); QList - searchEntries(const QSharedPointer& db, const QString& siteUrlStr, const QString& formUrlStr); - QList searchEntries(const QString& siteUrlStr, const QString& formUrlStr, const StringPairList& keyList); - QList sortEntries(QList& pwEntries, const QString& siteUrlStr, const QString& formUrlStr); - QList confirmEntries(QList& pwEntriesToConfirm, - const QString& siteUrlStr, + searchEntries(const QString& siteUrl, const QString& formUrl, const StringPairList& keyList, bool passkey = false); + QList sortEntries(QList& entries, const QString& siteUrl, const QString& formUrl); + QList confirmEntries(QList& entriesToConfirm, + const EntryParameters& entryParameters, const QString& siteHost, - const QString& formUrlStr, - const QString& realm, + const QString& formUrl, const bool httpAuth); QJsonObject prepareEntry(const Entry* entry); + void allowEntry(Entry* entry, const QString& siteHost, const QString& formUrl, const QString& realm); + void denyEntry(Entry* entry, const QString& siteHost, const QString& formUrl, const QString& realm); QJsonArray getChildrenFromGroup(Group* group); Access checkAccess(const Entry* entry, const QString& siteHost, const QString& formHost, const QString& realm); Group* getDefaultEntryGroup(const QSharedPointer& selectedDb = {}); - int sortPriority(const QStringList& urls, const QString& siteUrlStr, const QString& formUrlStr); - bool schemeFound(const QString& url); - bool isIpAddress(const QString& host) const; + int sortPriority(const QStringList& urls, const QString& siteUrl, const QString& formUrl); bool removeFirstDomain(QString& hostname); - bool handleEntry(Entry* entry, const QString& url, const QString& submitUrl); - bool handleURL(const QString& entryUrl, const QString& siteUrlStr, const QString& formUrlStr); - QString getTopLevelDomainFromUrl(const QString& url) const; - QString baseDomain(const QString& hostname) const; - QSharedPointer getDatabase(); - QSharedPointer selectedDatabase(); + bool + shouldIncludeEntry(Entry* entry, const QString& url, const QString& submitUrl, const bool omitWwwSubdomain = false); +#ifdef WITH_XC_BROWSER_PASSKEYS + QList getPasskeyEntries(const QString& rpId, const StringPairList& keyList); + QList + getPasskeyAllowedEntries(const QJsonObject& assertionOptions, const QString& rpId, const StringPairList& keyList); + bool isPasskeyCredentialExcluded(const QJsonArray& excludeCredentials, + const QString& rpId, + const StringPairList& keyList); + QJsonObject getPasskeyError(int errorCode) const; +#endif + bool handleURL(const QString& entryUrl, + const QString& siteUrl, + const QString& formUrl, + const bool omitWwwSubdomain = false); QString getDatabaseRootUuid(); QString getDatabaseRecycleBinUuid(); bool checkLegacySettings(QSharedPointer db); - QStringList getEntryURLs(const Entry* entry); void hideWindow() const; void raiseWindow(const bool force = false); @@ -179,6 +216,9 @@ private: Q_DISABLE_COPY(BrowserService); friend class TestBrowser; +#ifdef WITH_XC_BROWSER_PASSKEYS + friend class TestPasskeys; +#endif }; static inline BrowserService* browserService() @@ -186,4 +226,4 @@ static inline BrowserService* browserService() return BrowserService::instance(); } -#endif // BROWSERSERVICE_H +#endif // KEEPASSXC_BROWSERSERVICE_H diff --git a/src/browser/BrowserSettings.cpp b/src/browser/BrowserSettings.cpp index 7b5704e78..682a1a8ea 100644 --- a/src/browser/BrowserSettings.cpp +++ b/src/browser/BrowserSettings.cpp @@ -1,7 +1,7 @@ /* - * Copyright (C) 2013 Francois Ferrand + * Copyright (C) 2024 KeePassXC Team * Copyright (C) 2017 Sami Vänttinen - * Copyright (C) 2021 KeePassXC Team + * Copyright (C) 2013 Francois Ferrand * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -145,6 +145,16 @@ void BrowserSettings::setNoMigrationPrompt(bool prompt) config()->set(Config::Browser_NoMigrationPrompt, prompt); } +bool BrowserSettings::allowLocalhostWithPasskeys() +{ + return config()->get(Config::Browser_AllowLocalhostWithPasskeys).toBool(); +} + +void BrowserSettings::setAllowLocalhostWithPasskeys(bool enabled) +{ + config()->set(Config::Browser_AllowLocalhostWithPasskeys, enabled); +} + bool BrowserSettings::useCustomProxy() { return config()->get(Config::Browser_UseCustomProxy).toBool(); @@ -200,6 +210,11 @@ QString BrowserSettings::proxyLocation() return m_nativeMessageInstaller.getProxyPath(); } +QString BrowserSettings::proxyLocationAsInstalled() const +{ + return m_nativeMessageInstaller.getInstalledProxyPath(); +} + #ifdef QT_DEBUG QString BrowserSettings::customExtensionId() { diff --git a/src/browser/BrowserSettings.h b/src/browser/BrowserSettings.h index 18ededb4c..a0aaed8d5 100644 --- a/src/browser/BrowserSettings.h +++ b/src/browser/BrowserSettings.h @@ -1,7 +1,7 @@ /* - * Copyright (C) 2013 Francois Ferrand + * Copyright (C) 2024 KeePassXC Team * Copyright (C) 2017 Sami Vänttinen - * Copyright (C) 2021 KeePassXC Team + * Copyright (C) 2013 Francois Ferrand * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,8 +17,8 @@ * along with this program. If not, see . */ -#ifndef BROWSERSETTINGS_H -#define BROWSERSETTINGS_H +#ifndef KEEPASSXC_BROWSERSETTINGS_H +#define KEEPASSXC_BROWSERSETTINGS_H #include "NativeMessageInstaller.h" @@ -51,12 +51,15 @@ public: void setSupportKphFields(bool supportKphFields); bool noMigrationPrompt(); void setNoMigrationPrompt(bool prompt); + bool allowLocalhostWithPasskeys(); + void setAllowLocalhostWithPasskeys(bool enabled); bool useCustomProxy(); void setUseCustomProxy(bool enabled); QString customProxyLocation(); void setCustomProxyLocation(const QString& location); QString proxyLocation(); + QString proxyLocationAsInstalled() const; #ifdef QT_DEBUG QString customExtensionId(); void setCustomExtensionId(const QString& id); @@ -89,4 +92,4 @@ inline BrowserSettings* browserSettings() return BrowserSettings::instance(); } -#endif // BROWSERSETTINGS_H +#endif // KEEPASSXC_BROWSERSETTINGS_H diff --git a/src/browser/BrowserSettingsWidget.cpp b/src/browser/BrowserSettingsWidget.cpp index 8dd26d324..36b7bdd4b 100644 --- a/src/browser/BrowserSettingsWidget.cpp +++ b/src/browser/BrowserSettingsWidget.cpp @@ -20,6 +20,7 @@ #include "BrowserSettings.h" #include "config-keepassx.h" +#include "gui/styles/StateColorPalette.h" #include @@ -49,12 +50,9 @@ BrowserSettingsWidget::BrowserSettingsWidget(QWidget* parent) snapInstructions)); // clang-format on - m_ui->warningWidget->setCloseButtonVisible(false); - m_ui->warningWidget->setAutoHideTimeout(-1); - m_ui->warningWidget->setAnimate(false); - m_ui->tabWidget->setEnabled(m_ui->enableBrowserSupport->isChecked()); connect(m_ui->enableBrowserSupport, SIGNAL(toggled(bool)), m_ui->tabWidget, SLOT(setEnabled(bool))); + connect(m_ui->enableBrowserSupport, SIGNAL(toggled(bool)), SLOT(validateProxyLocation())); // Custom Browser option #ifdef Q_OS_WIN @@ -72,10 +70,15 @@ BrowserSettingsWidget::BrowserSettingsWidget(QWidget* parent) connect(m_ui->useCustomProxy, SIGNAL(toggled(bool)), m_ui->customProxyLocation, SLOT(setEnabled(bool))); connect(m_ui->useCustomProxy, SIGNAL(toggled(bool)), m_ui->customProxyLocationBrowseButton, SLOT(setEnabled(bool))); - connect(m_ui->useCustomProxy, SIGNAL(toggled(bool)), SLOT(validateCustomProxyLocation())); - connect(m_ui->customProxyLocation, SIGNAL(editingFinished()), SLOT(validateCustomProxyLocation())); + connect(m_ui->useCustomProxy, SIGNAL(toggled(bool)), SLOT(validateProxyLocation())); + connect(m_ui->customProxyLocation, SIGNAL(editingFinished()), SLOT(validateProxyLocation())); connect(m_ui->customProxyLocationBrowseButton, SIGNAL(clicked()), this, SLOT(showProxyLocationFileDialog())); + m_ui->messageWidget->setVisible(false); + m_ui->messageWidget->setCloseButtonVisible(false); + m_ui->messageWidget->setWordWrap(true); + m_ui->messageWidget->setAutoHideTimeout(MessageWidget::DisableAutoHide); + #ifndef Q_OS_LINUX m_ui->snapWarningLabel->setVisible(false); #endif @@ -90,7 +93,6 @@ BrowserSettingsWidget::BrowserSettingsWidget(QWidget* parent) m_ui->torBrowserSupport->setHidden(true); m_ui->firefoxSupport->setText("Firefox and Tor Browser"); #endif - m_ui->browserGlobalWarningWidget->setVisible(false); #ifndef QT_DEBUG m_ui->customExtensionId->setVisible(false); @@ -121,6 +123,7 @@ void BrowserSettingsWidget::loadSettings() m_ui->httpAuthPermission->setChecked(settings->httpAuthPermission()); m_ui->searchInAllDatabases->setChecked(settings->searchInAllDatabases()); m_ui->supportKphFields->setChecked(settings->supportKphFields()); + m_ui->allowLocalhostWithPasskeys->setChecked(settings->allowLocalhostWithPasskeys()); m_ui->noMigrationPrompt->setChecked(settings->noMigrationPrompt()); m_ui->useCustomProxy->setChecked(settings->useCustomProxy()); m_ui->customProxyLocation->setText(settings->replaceHomePath(settings->customProxyLocation())); @@ -153,15 +156,10 @@ void BrowserSettingsWidget::loadSettings() m_ui->customBrowserSupport->setVisible(false); m_ui->customBrowserGroupBox->setVisible(false); // Show notice to user - m_ui->browserGlobalWarningWidget->showMessage(tr("Please see special instructions for browser extension use below"), - MessageWidget::Warning); - m_ui->browserGlobalWarningWidget->setCloseButtonVisible(false); - m_ui->browserGlobalWarningWidget->setAutoHideTimeout(-1); + m_ui->messageWidget->showMessage(tr("Please see special instructions for browser extension use below"), + MessageWidget::Warning); #endif #ifdef KEEPASSXC_DIST_FLATPAK - // Guarantees proxy path works with different flatpak installations - m_ui->updateBinaryPath->setChecked(true); - m_ui->updateBinaryPath->setEnabled(false); // The sandbox makes custom proxy locations very unintuitive m_ui->useCustomProxy->setChecked(false); m_ui->useCustomProxy->setEnabled(false); @@ -186,22 +184,53 @@ void BrowserSettingsWidget::loadSettings() #ifdef QT_DEBUG m_ui->customExtensionId->setText(settings->customExtensionId()); #endif - - validateCustomProxyLocation(); + // Validate the complete proxy location dependency - not only in case it is custom, + // to make trouble-shooting for both developer and user easier + validateProxyLocation(); } -void BrowserSettingsWidget::validateCustomProxyLocation() +QString BrowserSettingsWidget::resolveCustomProxyLocation() { - auto path = browserSettings()->customProxyLocation(); + auto settings = browserSettings(); + auto proxyLocation = m_ui->customProxyLocation->text(); + proxyLocation = settings->replaceTildeHomePath(proxyLocation); + return proxyLocation; +} - if (m_ui->useCustomProxy->isChecked() && !QFile::exists(path)) { - m_ui->warningWidget->showMessage(tr("Error: The custom proxy location cannot be found!" - "
    Browser integration WILL NOT WORK without the proxy application."), - MessageWidget::Error); - } else { - m_ui->warningWidget->showMessage(tr("Warning: The following options can be dangerous!"), - MessageWidget::Warning); +void BrowserSettingsWidget::validateProxyLocation() +{ +#if !defined(KEEPASSXC_DIST_SNAP) && !defined(KEEPASSXC_DIST_FLATPAK) + // Reset the UI + m_ui->messageWidget->setVisible(false); + m_ui->customProxyLocation->setStyleSheet(""); + m_ui->customProxyLocation->setToolTip(""); + + if (m_ui->enableBrowserSupport->isChecked()) { + // If we are using a custom proxy location, check if it exists and display warning if not + if (m_ui->useCustomProxy->isChecked()) { + if (!QFile::exists(resolveCustomProxyLocation())) { + StateColorPalette statePalette; + auto color = statePalette.color(StateColorPalette::ColorRole::Error); + m_ui->customProxyLocation->setStyleSheet(QString("QLineEdit { background: %1; }").arg(color.name())); + m_ui->customProxyLocation->setToolTip(tr("The custom proxy location does not exist.")); + + m_ui->messageWidget->showMessage(tr("Error: The custom proxy location does not exist. Correct " + "this in the advanced settings tab."), + MessageWidget::Error); + } + } else { + // Otherwise check if the installed proxy exists + auto expectedProxyLocation = browserSettings()->proxyLocationAsInstalled(); + if (!QFile::exists(expectedProxyLocation)) { + m_ui->messageWidget->showMessage( + tr("Error: The installed proxy executable is missing from the expected location: %1
    " + "Please set a custom proxy location in the advanced settings or reinstall the application.") + .arg(expectedProxyLocation), + MessageWidget::Error); + } + } } +#endif } void BrowserSettingsWidget::saveSettings() @@ -214,7 +243,7 @@ void BrowserSettingsWidget::saveSettings() settings->setMatchUrlScheme(m_ui->matchUrlScheme->isChecked()); settings->setUseCustomProxy(m_ui->useCustomProxy->isChecked()); - settings->setCustomProxyLocation(browserSettings()->replaceTildeHomePath(m_ui->customProxyLocation->text())); + settings->setCustomProxyLocation(resolveCustomProxyLocation()); settings->setUpdateBinaryPath(m_ui->updateBinaryPath->isChecked()); settings->setAllowExpiredCredentials(m_ui->allowExpiredCredentials->isChecked()); @@ -223,6 +252,7 @@ void BrowserSettingsWidget::saveSettings() settings->setHttpAuthPermission(m_ui->httpAuthPermission->isChecked()); settings->setSearchInAllDatabases(m_ui->searchInAllDatabases->isChecked()); settings->setSupportKphFields(m_ui->supportKphFields->isChecked()); + settings->setAllowLocalhostWithPasskeys(m_ui->allowLocalhostWithPasskeys->isChecked()); settings->setNoMigrationPrompt(m_ui->noMigrationPrompt->isChecked()); #ifdef QT_DEBUG @@ -255,14 +285,25 @@ void BrowserSettingsWidget::showProxyLocationFileDialog() #else QString fileTypeFilter(QString("%1 (*)").arg(tr("Executable Files"))); #endif - auto proxyLocation = QFileDialog::getOpenFileName(this, - tr("Select custom proxy location"), - QFileInfo(QCoreApplication::applicationDirPath()).filePath(), - fileTypeFilter); - proxyLocation = browserSettings()->replaceHomePath(proxyLocation); - m_ui->customProxyLocation->setText(proxyLocation); - validateCustomProxyLocation(); + auto initialFilePath = resolveCustomProxyLocation(); + if (QFileInfo::exists(initialFilePath)) { + initialFilePath = QFileInfo(initialFilePath).filePath(); + } else { + // ignore current status and set as it would be installed + initialFilePath = QFileInfo(browserSettings()->proxyLocationAsInstalled()).filePath(); + } + + QString proxyLocation = + QFileDialog::getOpenFileName(this, tr("Select custom proxy location"), initialFilePath, fileTypeFilter); + + if (!proxyLocation.isEmpty()) { + proxyLocation = browserSettings()->replaceHomePath(proxyLocation); + m_ui->customProxyLocation->setText(proxyLocation); + validateProxyLocation(); + } else { + // do not overwrite old proxy setting + } } void BrowserSettingsWidget::showCustomBrowserLocationFileDialog() diff --git a/src/browser/BrowserSettingsWidget.h b/src/browser/BrowserSettingsWidget.h index d84051d0e..d6dec8ab1 100644 --- a/src/browser/BrowserSettingsWidget.h +++ b/src/browser/BrowserSettingsWidget.h @@ -32,7 +32,7 @@ class BrowserSettingsWidget : public QWidget public: explicit BrowserSettingsWidget(QWidget* parent = nullptr); - ~BrowserSettingsWidget(); + ~BrowserSettingsWidget() override; public slots: void loadSettings(); @@ -40,10 +40,12 @@ public slots: private slots: void showProxyLocationFileDialog(); - void validateCustomProxyLocation(); + void validateProxyLocation(); void showCustomBrowserLocationFileDialog(); private: + QString resolveCustomProxyLocation(); + QScopedPointer m_ui; }; diff --git a/src/browser/BrowserSettingsWidget.ui b/src/browser/BrowserSettingsWidget.ui index 1f8902be9..cb857e5c1 100644 --- a/src/browser/BrowserSettingsWidget.ui +++ b/src/browser/BrowserSettingsWidget.ui @@ -27,7 +27,7 @@ 0
    - + @@ -267,12 +267,15 @@ - - - - 0 - 0 - + + + <b>Warning:</b> Only adjust these settings if necessary. + + + false + + + 2 @@ -307,6 +310,16 @@
    + + + + Allows using insecure http://localhost with Passkeys for testing purposes. + + + Allow using localhost with Passkeys + + + diff --git a/src/browser/BrowserShared.cpp b/src/browser/BrowserShared.cpp index 96d92e807..6fd2cf7ee 100644 --- a/src/browser/BrowserShared.cpp +++ b/src/browser/BrowserShared.cpp @@ -19,6 +19,7 @@ #include "config-keepassx.h" +#include #include #if defined(KEEPASSXC_DIST_SNAP) #include @@ -31,14 +32,24 @@ namespace BrowserShared const auto serverName = QStringLiteral("/org.keepassxc.KeePassXC.BrowserServer"); #if defined(KEEPASSXC_DIST_SNAP) return QProcessEnvironment::systemEnvironment().value("SNAP_USER_COMMON") + serverName; -#elif defined(KEEPASSXC_DIST_FLATPAK) - return QStandardPaths::writableLocation(QStandardPaths::RuntimeLocation) + "/app/" + "org.keepassxc.KeePassXC" - + serverName; #elif defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) - // Use XDG_RUNTIME_DIR instead of /tmp if it's available + // This returns XDG_RUNTIME_DIR or else a temporary subdirectory. QString path = QStandardPaths::writableLocation(QStandardPaths::RuntimeLocation); - return path.isEmpty() ? QStandardPaths::writableLocation(QStandardPaths::TempLocation) + serverName - : path + serverName; + + // Put the socket in a dedicated directory. + // This directory will be easily mountable by sandbox containers. + QString subPath = path + "/app/org.keepassxc.KeePassXC"; + QDir().mkpath(subPath); + + QString socketPath = subPath + serverName; +#ifndef KEEPASSXC_DIST_FLATPAK + // Create a symlink at the legacy location for backwards compatibility. + const auto origSocketPath = path + serverName; + QFile::remove(origSocketPath); + QFile::link(socketPath, origSocketPath); +#endif + + return socketPath; #elif defined(Q_OS_WIN) // Windows uses named pipes return serverName + "_" + qgetenv("USERNAME"); diff --git a/src/browser/CMakeLists.txt b/src/browser/CMakeLists.txt index 98715cb14..2c344d31b 100755 --- a/src/browser/CMakeLists.txt +++ b/src/browser/CMakeLists.txt @@ -1,5 +1,4 @@ -# Copyright (C) 2017 Sami Vänttinen -# Copyright (C) 2022 KeePassXC Team +# Copyright (C) 2024 KeePassXC Team # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -29,9 +28,17 @@ if(WITH_XC_BROWSER) BrowserService.cpp BrowserSettings.cpp BrowserShared.cpp - NativeMessageInstaller.cpp - ) + NativeMessageInstaller.cpp) + + if(WITH_XC_BROWSER_PASSKEYS) + list(APPEND keepassxcbrowser_SOURCES + BrowserCbor.cpp + BrowserPasskeys.cpp + BrowserPasskeysClient.cpp + BrowserPasskeysConfirmationDialog.cpp + PasskeyUtils.cpp) + endif() add_library(keepassxcbrowser STATIC ${keepassxcbrowser_SOURCES}) - target_link_libraries(keepassxcbrowser Qt5::Core Qt5::Concurrent Qt5::Widgets Qt5::Network ${BOTAN2_LIBRARIES}) + target_link_libraries(keepassxcbrowser Qt5::Core Qt5::Concurrent Qt5::Widgets Qt5::Network ${BOTAN_LIBRARIES}) endif() diff --git a/src/browser/NativeMessageInstaller.cpp b/src/browser/NativeMessageInstaller.cpp index f4876f4e8..7409989ab 100644 --- a/src/browser/NativeMessageInstaller.cpp +++ b/src/browser/NativeMessageInstaller.cpp @@ -225,7 +225,7 @@ QString NativeMessageInstaller::getNativeMessagePath(SupportedBrowsers browser) } else { basePath = QDir::homePath() + "/.config"; } -#elif defined(Q_OS_LINUX) +#elif defined(Q_OS_LINUX) || (defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)) if (browser == SupportedBrowsers::TOR_BROWSER) { basePath = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation); } else if (browser == SupportedBrowsers::FIREFOX) { @@ -272,17 +272,24 @@ QString constructFlatpakPath() #endif /** - * Gets the path to keepassxc-proxy binary - * - * @param location Custom proxy path - * @return path Path to keepassxc-proxy + * Returns the effective proxy path used to build the native messaging JSON script */ QString NativeMessageInstaller::getProxyPath() const { + QString result; if (browserSettings()->useCustomProxy()) { - return browserSettings()->customProxyLocation(); + result = browserSettings()->customProxyLocation(); + } else { + result = getInstalledProxyPath(); } + return result; +} +/** + * Returns the original proxy path at the time of installation + */ +QString NativeMessageInstaller::getInstalledProxyPath() const +{ QString path; #if defined(KEEPASSXC_DIST_APPIMAGE) path = QProcessEnvironment::systemEnvironment().value("APPIMAGE"); diff --git a/src/browser/NativeMessageInstaller.h b/src/browser/NativeMessageInstaller.h index 256dd0c81..f54d68885 100644 --- a/src/browser/NativeMessageInstaller.h +++ b/src/browser/NativeMessageInstaller.h @@ -33,6 +33,7 @@ public: bool isBrowserEnabled(BrowserShared::SupportedBrowsers browser); QString getProxyPath() const; + QString getInstalledProxyPath() const; void updateBinaryPaths(); private: diff --git a/src/browser/PasskeyUtils.cpp b/src/browser/PasskeyUtils.cpp new file mode 100644 index 000000000..1b4b59bf9 --- /dev/null +++ b/src/browser/PasskeyUtils.cpp @@ -0,0 +1,352 @@ +/* + * Copyright (C) 2024 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "PasskeyUtils.h" +#include "BrowserMessageBuilder.h" +#include "BrowserPasskeys.h" +#include "core/Tools.h" +#include "core/UrlTools.h" + +#include +#include + +Q_GLOBAL_STATIC(PasskeyUtils, s_passkeyUtils); + +PasskeyUtils* PasskeyUtils::instance() +{ + return s_passkeyUtils; +} + +int PasskeyUtils::checkLimits(const QJsonObject& pkOptions) const +{ + const auto challenge = pkOptions["challenge"].toString(); + if (challenge.isEmpty() || challenge.length() < 16) { + return ERROR_PASSKEYS_INVALID_CHALLENGE; + } + + const auto userIdBase64 = pkOptions["user"]["id"].toString(); + const auto userId = browserMessageBuilder()->getArrayFromBase64(userIdBase64); + if (userId.isEmpty() || (userId.length() < 1 || userId.length() > 64)) { + return ERROR_PASSKEYS_INVALID_USER_ID; + } + + return PASSKEYS_SUCCESS; +} + +// Basic check for the object that it contains necessary variables in a correct form +bool PasskeyUtils::checkCredentialCreationOptions(const QJsonObject& credentialCreationOptions) const +{ + if (!credentialCreationOptions["attestation"].isString() + || credentialCreationOptions["attestation"].toString().isEmpty() + || !credentialCreationOptions["clientDataJSON"].isObject() + || credentialCreationOptions["clientDataJSON"].toObject().isEmpty() + || !credentialCreationOptions["rp"].isObject() || credentialCreationOptions["rp"].toObject().isEmpty() + || !credentialCreationOptions["user"].isObject() || credentialCreationOptions["user"].toObject().isEmpty() + || !credentialCreationOptions["residentKey"].isBool() || credentialCreationOptions["residentKey"].isUndefined() + || !credentialCreationOptions["userPresence"].isBool() + || credentialCreationOptions["userPresence"].isUndefined() + || !credentialCreationOptions["userVerification"].isBool() + || credentialCreationOptions["userVerification"].isUndefined() + || !credentialCreationOptions["credTypesAndPubKeyAlgs"].isArray() + || credentialCreationOptions["credTypesAndPubKeyAlgs"].toArray().isEmpty() + || !credentialCreationOptions["excludeCredentials"].isArray() + || credentialCreationOptions["excludeCredentials"].isUndefined()) { + return false; + } + + return true; +} + +// Basic check for the object that it contains necessary variables in a correct form +bool PasskeyUtils::checkCredentialAssertionOptions(const QJsonObject& assertionOptions) const +{ + if (!assertionOptions["clientDataJson"].isObject() || assertionOptions["clientDataJson"].toObject().isEmpty() + || !assertionOptions["rpId"].isString() || assertionOptions["rpId"].toString().isEmpty() + || !assertionOptions["userPresence"].isBool() || assertionOptions["userPresence"].isUndefined() + || !assertionOptions["userVerification"].isBool() || assertionOptions["userVerification"].isUndefined()) { + return false; + } + + return true; +} + +int PasskeyUtils::getEffectiveDomain(const QString& origin, QString* result) const +{ + if (!result) { + return ERROR_PASSKEYS_ORIGIN_NOT_ALLOWED; + } + + if (origin.isEmpty()) { + return ERROR_PASSKEYS_ORIGIN_NOT_ALLOWED; + } + + const auto effectiveDomain = QUrl::fromUserInput(origin).host(); + if (!isDomain(effectiveDomain)) { + return ERROR_PASSKEYS_DOMAIN_IS_NOT_VALID; + } + + *result = effectiveDomain; + return PASSKEYS_SUCCESS; +} + +int PasskeyUtils::validateRpId(const QJsonValue& rpIdValue, const QString& effectiveDomain, QString* result) const +{ + if (!result) { + return ERROR_PASSKEYS_DOMAIN_RPID_MISMATCH; + } + + if (rpIdValue.isUndefined()) { + return ERROR_PASSKEYS_DOMAIN_RPID_MISMATCH; + } + + if (effectiveDomain.isEmpty()) { + return ERROR_PASSKEYS_ORIGIN_NOT_ALLOWED; + } + + const auto rpId = rpIdValue.toString(); + if (!isRegistrableDomainSuffix(rpId, effectiveDomain)) { + return ERROR_PASSKEYS_DOMAIN_RPID_MISMATCH; + } + + if (rpId == effectiveDomain) { + *result = effectiveDomain; + return PASSKEYS_SUCCESS; + } + + *result = rpId; + return PASSKEYS_SUCCESS; +} + +// https://www.w3.org/TR/2021/REC-webauthn-2-20210408/#dom-publickeycredentialcreationoptions-attestation +QString PasskeyUtils::parseAttestation(const QString& attestation) const +{ + return attestation == BrowserPasskeys::PASSKEYS_ATTESTATION_DIRECT ? BrowserPasskeys::PASSKEYS_ATTESTATION_DIRECT + : BrowserPasskeys::PASSKEYS_ATTESTATION_NONE; +} + +QJsonArray PasskeyUtils::parseCredentialTypes(const QJsonArray& credentialTypes) const +{ + QJsonArray credTypesAndPubKeyAlgs; + + if (credentialTypes.isEmpty()) { + // Set default values + credTypesAndPubKeyAlgs.push_back(QJsonObject({ + {"type", BrowserPasskeys::PUBLIC_KEY}, + {"alg", WebAuthnAlgorithms::ES256}, + })); + credTypesAndPubKeyAlgs.push_back(QJsonObject({ + {"type", BrowserPasskeys::PUBLIC_KEY}, + {"alg", WebAuthnAlgorithms::RS256}, + })); + } else { + for (const auto current : credentialTypes) { + if (current["type"] != BrowserPasskeys::PUBLIC_KEY || current["alg"].isUndefined()) { + continue; + } + + const auto currentAlg = current["alg"].toInt(); + if (currentAlg != WebAuthnAlgorithms::ES256 && currentAlg != WebAuthnAlgorithms::RS256 + && currentAlg != WebAuthnAlgorithms::EDDSA) { + continue; + } + + credTypesAndPubKeyAlgs.push_back(QJsonObject({ + {"type", current["type"]}, + {"alg", currentAlg}, + })); + } + } + + return credTypesAndPubKeyAlgs; +} + +bool PasskeyUtils::isAuthenticatorSelectionValid(const QJsonObject& authenticatorSelection) const +{ + const auto authenticatorAttachment = authenticatorSelection["authenticatorAttachment"].toString(); + if (!authenticatorAttachment.isEmpty() && authenticatorAttachment != BrowserPasskeys::ATTACHMENT_PLATFORM + && authenticatorAttachment != BrowserPasskeys::ATTACHMENT_CROSS_PLATFORM) { + return false; + } + + const auto requireResidentKey = authenticatorSelection["requireResidentKey"].toBool(); + if (requireResidentKey && !BrowserPasskeys::SUPPORT_RESIDENT_KEYS) { + return false; + } + + const auto residentKey = authenticatorSelection["residentKey"].toString(); + if (residentKey == "required" && !BrowserPasskeys::SUPPORT_RESIDENT_KEYS) { + return false; + } + + if (residentKey.isEmpty() && requireResidentKey && !BrowserPasskeys::SUPPORT_RESIDENT_KEYS) { + return false; + } + + const auto userVerification = authenticatorSelection["userVerification"].toBool(); + if (userVerification && !BrowserPasskeys::SUPPORT_USER_VERIFICATION) { + return false; + } + + return true; +} + +bool PasskeyUtils::isRegistrableDomainSuffix(const QString& hostSuffixString, const QString& originalHost) const +{ + if (hostSuffixString.isEmpty()) { + return false; + } + + if (!isDomain(originalHost)) { + return false; + } + + const auto hostSuffix = QUrl::fromUserInput(hostSuffixString).host(); + if (hostSuffix == originalHost) { + return true; + } + + if (!isDomain(hostSuffix)) { + return false; + } + + const auto prefixedHostSuffix = QString(".%1").arg(hostSuffix); + if (!originalHost.endsWith(prefixedHostSuffix)) { + return false; + } + + if (hostSuffix == urlTools()->getTopLevelDomainFromUrl(hostSuffix)) { + return false; + } + + const auto originalPublicSuffix = urlTools()->getTopLevelDomainFromUrl(originalHost); + if (originalPublicSuffix.isEmpty()) { + return false; + } + + if (originalPublicSuffix.endsWith(prefixedHostSuffix)) { + return false; + } + + if (!hostSuffix.endsWith(QString(".%1").arg(originalPublicSuffix))) { + return false; + } + + return true; +} + +bool PasskeyUtils::isDomain(const QString& hostName) const +{ + const auto domain = QUrl::fromUserInput(hostName).host(); + return !domain.isEmpty() && !domain.endsWith('.') && Tools::isAsciiString(domain) + && !urlTools()->domainHasIllegalCharacters(domain) && !urlTools()->isIpAddress(hostName); +} + +bool PasskeyUtils::isUserVerificationValid(const QString& userVerification) const +{ + return QStringList({BrowserPasskeys::REQUIREMENT_PREFERRED, + BrowserPasskeys::REQUIREMENT_REQUIRED, + BrowserPasskeys::REQUIREMENT_DISCOURAGED}) + .contains(userVerification); +} + +bool PasskeyUtils::isOriginAllowedWithLocalhost(bool allowLocalhostWithPasskeys, const QString& origin) const +{ + if (origin.startsWith("https://") || (allowLocalhostWithPasskeys && origin.startsWith("file://"))) { + return true; + } + + if (!allowLocalhostWithPasskeys) { + return false; + } + + const auto host = QUrl::fromUserInput(origin).host(); + return host == "localhost" || host == "localhost." || host.endsWith(".localhost") || host.endsWith(".localhost."); +} + +bool PasskeyUtils::isResidentKeyRequired(const QJsonObject& authenticatorSelection) const +{ + if (authenticatorSelection.isEmpty()) { + return false; + } + + const auto residentKey = authenticatorSelection["residentKey"].toString(); + if (residentKey == BrowserPasskeys::REQUIREMENT_REQUIRED + || (BrowserPasskeys::SUPPORT_RESIDENT_KEYS && residentKey == BrowserPasskeys::REQUIREMENT_PREFERRED)) { + return true; + } else if (residentKey == BrowserPasskeys::REQUIREMENT_DISCOURAGED) { + return false; + } + + return authenticatorSelection["requireResidentKey"].toBool(); +} + +bool PasskeyUtils::isUserVerificationRequired(const QJsonObject& authenticatorSelection) const +{ + const auto userVerification = authenticatorSelection["userVerification"].toString(); + return userVerification == BrowserPasskeys::REQUIREMENT_REQUIRED + || (userVerification == BrowserPasskeys::REQUIREMENT_PREFERRED + && BrowserPasskeys::SUPPORT_USER_VERIFICATION); +} + +QByteArray PasskeyUtils::buildExtensionData(QJsonObject& extensionObject) const +{ + // Only supports "credProps" and "uvm" for now + const QStringList allowedKeys = {"credProps", "uvm"}; + + // Remove unsupported keys + for (const auto& key : extensionObject.keys()) { + if (!allowedKeys.contains(key)) { + extensionObject.remove(key); + } + } + + auto extensionData = m_browserCbor.cborEncodeExtensionData(extensionObject); + if (!extensionData.isEmpty()) { + return extensionData; + } + + return {}; +} + +QJsonObject PasskeyUtils::buildClientDataJson(const QJsonObject& publicKey, const QString& origin, bool get) const +{ + QJsonObject clientData; + clientData["challenge"] = publicKey["challenge"]; + clientData["crossOrigin"] = false; + clientData["origin"] = origin; + clientData["type"] = get ? QString("webauthn.get") : QString("webauthn.create"); + + return clientData; +} + +QStringList PasskeyUtils::getAllowedCredentialsFromAssertionOptions(const QJsonObject& assertionOptions) const +{ + QStringList allowedCredentials; + for (const auto& credential : assertionOptions["allowCredentials"].toArray()) { + const auto cred = credential.toObject(); + const auto id = cred["id"].toString(); + const auto transports = cred["transports"].toArray(); + const auto hasSupportedTransport = + transports.isEmpty() || transports.contains(BrowserPasskeys::AUTHENTICATOR_TRANSPORT); + + if (cred["type"].toString() == BrowserPasskeys::PUBLIC_KEY && hasSupportedTransport && !id.isEmpty()) { + allowedCredentials << id; + } + } + + return allowedCredentials; +} diff --git a/src/browser/PasskeyUtils.h b/src/browser/PasskeyUtils.h new file mode 100644 index 000000000..1a08e295a --- /dev/null +++ b/src/browser/PasskeyUtils.h @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2024 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef PASSKEYUTILS_H +#define PASSKEYUTILS_H + +#include +#include +#include +#include + +#include "BrowserCbor.h" + +#define DEFAULT_TIMEOUT 300000 +#define DEFAULT_DISCOURAGED_TIMEOUT 120000 +#define PASSKEYS_SUCCESS 0 + +class PasskeyUtils : public QObject +{ + Q_OBJECT + +public: + explicit PasskeyUtils() = default; + ~PasskeyUtils() = default; + static PasskeyUtils* instance(); + + int checkLimits(const QJsonObject& pkOptions) const; + bool checkCredentialCreationOptions(const QJsonObject& credentialCreationOptions) const; + bool checkCredentialAssertionOptions(const QJsonObject& assertionOptions) const; + int getEffectiveDomain(const QString& origin, QString* result) const; + int validateRpId(const QJsonValue& rpIdValue, const QString& effectiveDomain, QString* result) const; + QString parseAttestation(const QString& attestation) const; + QJsonArray parseCredentialTypes(const QJsonArray& credentialTypes) const; + bool isAuthenticatorSelectionValid(const QJsonObject& authenticatorSelection) const; + bool isUserVerificationValid(const QString& userVerification) const; + bool isResidentKeyRequired(const QJsonObject& authenticatorSelection) const; + bool isUserVerificationRequired(const QJsonObject& authenticatorSelection) const; + bool isOriginAllowedWithLocalhost(bool allowLocalhostWithPasskeys, const QString& origin) const; + QByteArray buildExtensionData(QJsonObject& extensionObject) const; + QJsonObject buildClientDataJson(const QJsonObject& publicKey, const QString& origin, bool get) const; + QStringList getAllowedCredentialsFromAssertionOptions(const QJsonObject& assertionOptions) const; + +private: + Q_DISABLE_COPY(PasskeyUtils); + + bool isRegistrableDomainSuffix(const QString& hostSuffixString, const QString& originalHost) const; + bool isDomain(const QString& hostName) const; + + friend class TestPasskeys; + +private: + BrowserCbor m_browserCbor; +}; + +static inline PasskeyUtils* passkeyUtils() +{ + return PasskeyUtils::instance(); +} + +#endif // PASSKEYUTILS_H diff --git a/src/cli/CMakeLists.txt b/src/cli/CMakeLists.txt index 984427084..a3852c800 100644 --- a/src/cli/CMakeLists.txt +++ b/src/cli/CMakeLists.txt @@ -22,9 +22,11 @@ set(cli_SOURCES AttachmentRemove.cpp Clip.cpp Close.cpp - Create.cpp Command.cpp DatabaseCommand.cpp + DatabaseCreate.cpp + DatabaseEdit.cpp + DatabaseInfo.cpp Diceware.cpp Edit.cpp Estimate.cpp @@ -33,7 +35,6 @@ set(cli_SOURCES Generate.cpp Help.cpp Import.cpp - Info.cpp List.cpp Merge.cpp Move.cpp @@ -64,6 +65,9 @@ install(TARGETS keepassxc-cli RUNTIME DESTINATION ${CLI_INSTALL_DIR} COMPONENT Runtime) if(WIN32) + target_sources(keepassxc-cli + PRIVATE keepassxc-cli.exe.manifest) + # install(CODE "include(BundleUtilities) # fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/keepassxc-cli.exe\" \"\" \"\")" # COMPONENT Runtime) diff --git a/src/cli/Clip.cpp b/src/cli/Clip.cpp index 7c4a9bb1f..47964b190 100644 --- a/src/cli/Clip.cpp +++ b/src/cli/Clip.cpp @@ -116,8 +116,12 @@ int Clip::executeWithDatabase(QSharedPointer database, QSharedPointer< return EXIT_FAILURE; } + selectedAttribute = "totp"; found = true; value = entry->totp(); + } else if (Utils::EntryFieldNames.contains(selectedAttribute)) { + value = Utils::getTopLevelField(entry, selectedAttribute); + found = true; } else { QStringList attrs = Utils::findAttributes(*entry->attributes(), selectedAttribute); if (attrs.size() > 1) { diff --git a/src/cli/Command.cpp b/src/cli/Command.cpp index 2eab320a3..4bba8fff9 100644 --- a/src/cli/Command.cpp +++ b/src/cli/Command.cpp @@ -23,7 +23,9 @@ #include "AttachmentRemove.h" #include "Clip.h" #include "Close.h" -#include "Create.h" +#include "DatabaseCreate.h" +#include "DatabaseEdit.h" +#include "DatabaseInfo.h" #include "Diceware.h" #include "Edit.h" #include "Estimate.h" @@ -32,7 +34,6 @@ #include "Generate.h" #include "Help.h" #include "Import.h" -#include "Info.h" #include "List.h" #include "Merge.h" #include "Move.h" @@ -172,8 +173,9 @@ namespace Commands s_commands.insert(QStringLiteral("attachment-rm"), QSharedPointer(new AttachmentRemove())); s_commands.insert(QStringLiteral("clip"), QSharedPointer(new Clip())); s_commands.insert(QStringLiteral("close"), QSharedPointer(new Close())); - s_commands.insert(QStringLiteral("db-create"), QSharedPointer(new Create())); - s_commands.insert(QStringLiteral("db-info"), QSharedPointer(new Info())); + s_commands.insert(QStringLiteral("db-create"), QSharedPointer(new DatabaseCreate())); + s_commands.insert(QStringLiteral("db-edit"), QSharedPointer(new DatabaseEdit())); + s_commands.insert(QStringLiteral("db-info"), QSharedPointer(new DatabaseInfo())); s_commands.insert(QStringLiteral("diceware"), QSharedPointer(new Diceware())); s_commands.insert(QStringLiteral("edit"), QSharedPointer(new Edit())); s_commands.insert(QStringLiteral("estimate"), QSharedPointer(new Estimate())); diff --git a/src/cli/Create.cpp b/src/cli/DatabaseCreate.cpp similarity index 74% rename from src/cli/Create.cpp rename to src/cli/DatabaseCreate.cpp index 760bf5368..10b424825 100644 --- a/src/cli/Create.cpp +++ b/src/cli/DatabaseCreate.cpp @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -#include "Create.h" +#include "DatabaseCreate.h" #include "Utils.h" #include "keys/FileKey.h" @@ -23,34 +23,39 @@ #include #include -const QCommandLineOption Create::DecryptionTimeOption = +const QCommandLineOption DatabaseCreate::DecryptionTimeOption = QCommandLineOption(QStringList() << "t" << "decryption-time", QObject::tr("Target decryption time in MS for the database."), QObject::tr("time")); -const QCommandLineOption Create::SetKeyFileOption = - QCommandLineOption(QStringList() << "k" - << "set-key-file", +const QCommandLineOption DatabaseCreate::SetKeyFileShortOption = QCommandLineOption( + QStringList() << "k", + QObject::tr("Set the key file for the database.\nThis options is deprecated, use --set-key-file instead."), + QObject::tr("path")); + +const QCommandLineOption DatabaseCreate::SetKeyFileOption = + QCommandLineOption(QStringList() << "set-key-file", QObject::tr("Set the key file for the database."), QObject::tr("path")); -const QCommandLineOption Create::SetPasswordOption = +const QCommandLineOption DatabaseCreate::SetPasswordOption = QCommandLineOption(QStringList() << "p" << "set-password", QObject::tr("Set a password for the database.")); -Create::Create() +DatabaseCreate::DatabaseCreate() { name = QString("db-create"); description = QObject::tr("Create a new database."); positionalArguments.append({QString("database"), QObject::tr("Path of the database."), QString("")}); - options.append(Create::SetKeyFileOption); - options.append(Create::SetPasswordOption); - options.append(Create::DecryptionTimeOption); + options.append(DatabaseCreate::SetKeyFileOption); + options.append(DatabaseCreate::SetKeyFileShortOption); + options.append(DatabaseCreate::SetPasswordOption); + options.append(DatabaseCreate::DecryptionTimeOption); } -QSharedPointer Create::initializeDatabaseFromOptions(const QSharedPointer& parser) +QSharedPointer DatabaseCreate::initializeDatabaseFromOptions(const QSharedPointer& parser) { if (parser.isNull()) { return {}; @@ -60,7 +65,7 @@ QSharedPointer Create::initializeDatabaseFromOptions(const QSharedPoin auto& err = Utils::STDERR; // Validate the decryption time before asking for a password. - QString decryptionTimeValue = parser->value(Create::DecryptionTimeOption); + QString decryptionTimeValue = parser->value(DatabaseCreate::DecryptionTimeOption); int decryptionTime = 0; if (decryptionTimeValue.length() != 0) { decryptionTime = decryptionTimeValue.toInt(); @@ -78,7 +83,7 @@ QSharedPointer Create::initializeDatabaseFromOptions(const QSharedPoin auto key = QSharedPointer::create(); - if (parser->isSet(Create::SetPasswordOption)) { + if (parser->isSet(DatabaseCreate::SetPasswordOption)) { auto passwordKey = Utils::getConfirmedPassword(); if (passwordKey.isNull()) { err << QObject::tr("Failed to set database password.") << endl; @@ -87,10 +92,18 @@ QSharedPointer Create::initializeDatabaseFromOptions(const QSharedPoin key->addKey(passwordKey); } - if (parser->isSet(Create::SetKeyFileOption)) { + if (parser->isSet(DatabaseCreate::SetKeyFileOption) || parser->isSet(DatabaseCreate::SetKeyFileShortOption)) { QSharedPointer fileKey; - if (!Utils::loadFileKey(parser->value(Create::SetKeyFileOption), fileKey)) { + QString keyFilePath; + if (parser->isSet(DatabaseCreate::SetKeyFileShortOption)) { + qWarning("The -k option will be deprecated. Please use the --set-key-file option instead."); + keyFilePath = parser->value(DatabaseCreate::SetKeyFileShortOption); + } else { + keyFilePath = parser->value(DatabaseCreate::SetKeyFileOption); + } + + if (!Utils::loadFileKey(keyFilePath, fileKey)) { err << QObject::tr("Loading the key file failed") << endl; return {}; } @@ -141,7 +154,7 @@ QSharedPointer Create::initializeDatabaseFromOptions(const QSharedPoin * * @return EXIT_SUCCESS on success, or EXIT_FAILURE on failure */ -int Create::execute(const QStringList& arguments) +int DatabaseCreate::execute(const QStringList& arguments) { QSharedPointer parser = getCommandLineParser(arguments); if (parser.isNull()) { @@ -159,7 +172,7 @@ int Create::execute(const QStringList& arguments) return EXIT_FAILURE; } - QSharedPointer db = Create::initializeDatabaseFromOptions(parser); + QSharedPointer db = DatabaseCreate::initializeDatabaseFromOptions(parser); if (!db) { return EXIT_FAILURE; } diff --git a/src/cli/Create.h b/src/cli/DatabaseCreate.h similarity index 82% rename from src/cli/Create.h rename to src/cli/DatabaseCreate.h index 3b91dca10..30db16ed9 100644 --- a/src/cli/Create.h +++ b/src/cli/DatabaseCreate.h @@ -15,22 +15,23 @@ * along with this program. If not, see . */ -#ifndef KEEPASSXC_CREATE_H -#define KEEPASSXC_CREATE_H +#ifndef KEEPASSXC_DATABASECREATE_H +#define KEEPASSXC_DATABASECREATE_H #include "Command.h" -class Create : public Command +class DatabaseCreate : public Command { public: - Create(); + DatabaseCreate(); int execute(const QStringList& arguments) override; static QSharedPointer initializeDatabaseFromOptions(const QSharedPointer& parser); static const QCommandLineOption SetKeyFileOption; + static const QCommandLineOption SetKeyFileShortOption; static const QCommandLineOption SetPasswordOption; static const QCommandLineOption DecryptionTimeOption; }; -#endif // KEEPASSXC_CREATE_H +#endif // KEEPASSXC_DATABASECREATE_H diff --git a/src/cli/DatabaseEdit.cpp b/src/cli/DatabaseEdit.cpp new file mode 100644 index 000000000..f5ca4ef2e --- /dev/null +++ b/src/cli/DatabaseEdit.cpp @@ -0,0 +1,174 @@ +/* + * Copyright (C) 2022 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "DatabaseEdit.h" + +#include "Utils.h" +#include "cli/DatabaseCreate.h" +#include "keys/ChallengeResponseKey.h" +#include "keys/FileKey.h" +#include "keys/PasswordKey.h" + +#include +#include + +const QCommandLineOption DatabaseEdit::UnsetPasswordOption = + QCommandLineOption(QStringList() << "unset-password", QObject::tr("Unset the password for the database.")); +const QCommandLineOption DatabaseEdit::UnsetKeyFileOption = + QCommandLineOption(QStringList() << "unset-key-file", QObject::tr("Unset the key file for the database.")); + +DatabaseEdit::DatabaseEdit() +{ + name = QString("db-edit"); + description = QObject::tr("Edit a database."); + options.append(DatabaseCreate::SetKeyFileOption); + options.append(DatabaseCreate::SetPasswordOption); + options.append(DatabaseEdit::UnsetKeyFileOption); + options.append(DatabaseEdit::UnsetPasswordOption); +} + +int DatabaseEdit::executeWithDatabase(QSharedPointer database, QSharedPointer parser) +{ + auto& out = Utils::STDOUT; + auto& err = Utils::STDERR; + + const QStringList args = parser->positionalArguments(); + bool databaseWasChanged = false; + + if (parser->isSet(DatabaseCreate::SetPasswordOption) && parser->isSet(DatabaseEdit::UnsetPasswordOption)) { + err << QObject::tr("Cannot use %1 and %2 at the same time.") + .arg(DatabaseCreate::SetPasswordOption.names().at(0)) + .arg(DatabaseEdit::UnsetPasswordOption.names().at(0)) + << endl; + return EXIT_FAILURE; + } + + if (parser->isSet(DatabaseCreate::SetKeyFileOption) && parser->isSet(DatabaseEdit::UnsetKeyFileOption)) { + err << QObject::tr("Cannot use %1 and %2 at the same time.") + .arg(DatabaseCreate::SetKeyFileOption.names().at(0)) + .arg(DatabaseEdit::UnsetKeyFileOption.names().at(0)) + << endl; + return EXIT_FAILURE; + } + + bool hasKeyChange = + (parser->isSet(DatabaseCreate::SetPasswordOption) || parser->isSet(DatabaseCreate::SetKeyFileOption) + || parser->isSet(DatabaseEdit::UnsetPasswordOption) || parser->isSet(DatabaseEdit::UnsetKeyFileOption)); + + if (hasKeyChange) { + auto newDatabaseKey = getNewDatabaseKey(database, + parser->isSet(DatabaseCreate::SetPasswordOption), + parser->isSet(DatabaseEdit::UnsetPasswordOption), + parser->value(DatabaseCreate::SetKeyFileOption), + parser->isSet(DatabaseEdit::UnsetKeyFileOption)); + if (newDatabaseKey.isNull()) { + err << QObject::tr("Could not change the database key.") << endl; + return EXIT_FAILURE; + } + database->setKey(newDatabaseKey); + databaseWasChanged = true; + } + + if (!databaseWasChanged) { + out << QObject::tr("Database was not modified.") << endl; + return EXIT_SUCCESS; + } + + QString errorMessage; + if (!database->save(Database::Atomic, {}, &errorMessage)) { + err << QObject::tr("Writing the database failed: %1").arg(errorMessage) << endl; + return EXIT_FAILURE; + } + + out << QObject::tr("Successfully edited the database.") << endl; + return EXIT_SUCCESS; +} + +QSharedPointer DatabaseEdit::getNewDatabaseKey(QSharedPointer database, + bool updatePassword, + bool removePassword, + QString newFileKeyPath, + bool removeKeyFile) +{ + auto& err = Utils::STDERR; + auto newDatabaseKey = QSharedPointer::create(); + bool updateKeyFile = !newFileKeyPath.isEmpty(); + + auto currentPasswordKey = database->key()->getKey(PasswordKey::UUID); + auto currentFileKey = database->key()->getKey(FileKey::UUID); + auto currentChallengeResponseKey = database->key()->getChallengeResponseKey(ChallengeResponseKey::UUID); + + if (removePassword && currentPasswordKey.isNull()) { + err << QObject::tr("Cannot remove password: The database does not have a password.") << endl; + return {}; + } + + if (removeKeyFile && currentFileKey.isNull()) { + err << QObject::tr("Cannot remove file key: The database does not have a file key.") << endl; + return {}; + } + + if (updatePassword) { + QSharedPointer newPasswordKey = Utils::getConfirmedPassword(); + if (newPasswordKey.isNull()) { + err << QObject::tr("Failed to set database password.") << endl; + return {}; + } + newDatabaseKey->addKey(newPasswordKey); + } else if (!removePassword && !currentPasswordKey.isNull()) { + newDatabaseKey->addKey(currentPasswordKey); + } + + if (updateKeyFile) { + QSharedPointer newFileKey = QSharedPointer::create(); + QString errorMessage; + if (!Utils::loadFileKey(newFileKeyPath, newFileKey)) { + err << QObject::tr("Loading the new key file failed: %1").arg(errorMessage) << endl; + return {}; + } + newDatabaseKey->addKey(newFileKey); + } else if (!removeKeyFile && !currentFileKey.isNull()) { + newDatabaseKey->addKey(currentFileKey); + } + + // This is a sanity check to make sure that this function is not used if + // new key types are introduced. Otherwise, those key types would be + // silently removed from the database. + for (const QSharedPointer& key : database->key()->keys()) { + if (key->uuid() != PasswordKey::UUID && key->uuid() != FileKey::UUID) { + err << QObject::tr("Found unexpected Key type %1").arg(key->uuid().toString()) << endl; + return {}; + } + } + for (const QSharedPointer& key : database->key()->challengeResponseKeys()) { + if (key->uuid() != ChallengeResponseKey::UUID) { + err << QObject::tr("Found unexpected Key type %1").arg(key->uuid().toString()) << endl; + return {}; + } + } + + if (!currentChallengeResponseKey.isNull()) { + newDatabaseKey->addChallengeResponseKey(currentChallengeResponseKey); + } + + if (newDatabaseKey->keys().isEmpty() && newDatabaseKey->challengeResponseKeys().isEmpty()) { + err << QObject::tr("Cannot remove all the keys from a database.") << endl; + return {}; + } + + return newDatabaseKey; +} diff --git a/src/cli/DatabaseEdit.h b/src/cli/DatabaseEdit.h new file mode 100644 index 000000000..2d77b206f --- /dev/null +++ b/src/cli/DatabaseEdit.h @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSXC_DATABASEEDIT_H +#define KEEPASSXC_DATABASEEDIT_H + +#include "DatabaseCommand.h" + +class DatabaseEdit : public DatabaseCommand +{ +public: + DatabaseEdit(); + + int executeWithDatabase(QSharedPointer db, QSharedPointer parser) override; + + static const QCommandLineOption UnsetKeyFileOption; + static const QCommandLineOption UnsetPasswordOption; + +private: + QSharedPointer getNewDatabaseKey(QSharedPointer database, + bool updatePassword, + bool removePassword, + QString newFileKeyPath, + bool removeKeyFile); +}; + +#endif // KEEPASSXC_DATABASEEDIT_H diff --git a/src/cli/Info.cpp b/src/cli/DatabaseInfo.cpp similarity index 91% rename from src/cli/Info.cpp rename to src/cli/DatabaseInfo.cpp index bf093664a..f0e5e0f03 100644 --- a/src/cli/Info.cpp +++ b/src/cli/DatabaseInfo.cpp @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -#include "Info.h" +#include "DatabaseInfo.h" #include "Utils.h" #include "core/DatabaseStats.h" @@ -25,13 +25,13 @@ #include -Info::Info() +DatabaseInfo::DatabaseInfo() { name = QString("db-info"); description = QObject::tr("Show a database's information."); } -int Info::executeWithDatabase(QSharedPointer database, QSharedPointer) +int DatabaseInfo::executeWithDatabase(QSharedPointer database, QSharedPointer) { auto& out = Utils::STDOUT; @@ -39,8 +39,8 @@ int Info::executeWithDatabase(QSharedPointer database, QSharedPointer< out << QObject::tr("Name: ") << database->metadata()->name() << endl; out << QObject::tr("Description: ") << database->metadata()->description() << endl; for (auto& cipher : asConst(KeePass2::CIPHERS)) { - if (cipher.first == database->cipher()) { - out << QObject::tr("Cipher: ") << cipher.second << endl; + if (cipher == database->cipher()) { + out << QObject::tr("Cipher: ") << KeePass2::cipherToString(cipher) << endl; } } out << QObject::tr("KDF: ") << database->kdf()->toString() << endl; diff --git a/src/cli/Info.h b/src/cli/DatabaseInfo.h similarity index 83% rename from src/cli/Info.h rename to src/cli/DatabaseInfo.h index 1961a7b5f..b7e959cc3 100644 --- a/src/cli/Info.h +++ b/src/cli/DatabaseInfo.h @@ -15,17 +15,17 @@ * along with this program. If not, see . */ -#ifndef KEEPASSXC_INFO_H -#define KEEPASSXC_INFO_H +#ifndef KEEPASSXC_DATABASEINFO_H +#define KEEPASSXC_DATABASEINFO_H #include "DatabaseCommand.h" -class Info : public DatabaseCommand +class DatabaseInfo : public DatabaseCommand { public: - Info(); + DatabaseInfo(); int executeWithDatabase(QSharedPointer db, QSharedPointer parser); }; -#endif // KEEPASSXC_INFO_H +#endif // KEEPASSXC_DATABASEINFO_H diff --git a/src/cli/Import.cpp b/src/cli/Import.cpp index 3732f0cf6..cc74df767 100644 --- a/src/cli/Import.cpp +++ b/src/cli/Import.cpp @@ -17,7 +17,7 @@ #include "Import.h" -#include "Create.h" +#include "DatabaseCreate.h" #include "Utils.h" #include @@ -40,9 +40,10 @@ Import::Import() description = QObject::tr("Import the contents of an XML database."); positionalArguments.append({QString("xml"), QObject::tr("Path of the XML database export."), QString("")}); positionalArguments.append({QString("database"), QObject::tr("Path of the new database."), QString("")}); - options.append(Create::SetKeyFileOption); - options.append(Create::SetPasswordOption); - options.append(Create::DecryptionTimeOption); + options.append(DatabaseCreate::SetKeyFileOption); + options.append(DatabaseCreate::SetKeyFileShortOption); + options.append(DatabaseCreate::SetPasswordOption); + options.append(DatabaseCreate::DecryptionTimeOption); } int Import::execute(const QStringList& arguments) @@ -64,7 +65,7 @@ int Import::execute(const QStringList& arguments) return EXIT_FAILURE; } - QSharedPointer db = Create::initializeDatabaseFromOptions(parser); + QSharedPointer db = DatabaseCreate::initializeDatabaseFromOptions(parser); if (!db) { return EXIT_FAILURE; } diff --git a/src/cli/Remove.cpp b/src/cli/Remove.cpp index f383d1636..906a81410 100644 --- a/src/cli/Remove.cpp +++ b/src/cli/Remove.cpp @@ -35,7 +35,7 @@ int Remove::executeWithDatabase(QSharedPointer database, QSharedPointe auto& out = parser->isSet(Command::QuietOption) ? Utils::DEVNULL : Utils::STDOUT; auto& err = Utils::STDERR; - auto& entryPath = parser->positionalArguments().at(1); + auto entryPath = parser->positionalArguments().at(1); QPointer entry = database->rootGroup()->findEntryByPath(entryPath); if (!entry) { err << QObject::tr("Entry %1 not found.").arg(entryPath) << endl; @@ -50,7 +50,7 @@ int Remove::executeWithDatabase(QSharedPointer database, QSharedPointe recycled = false; } else { database->recycleEntry(entry); - }; + } QString errorMessage; if (!database->save(Database::Atomic, {}, &errorMessage)) { diff --git a/src/cli/Show.cpp b/src/cli/Show.cpp index f4d8097f6..c8cb430ed 100644 --- a/src/cli/Show.cpp +++ b/src/cli/Show.cpp @@ -32,6 +32,9 @@ const QCommandLineOption Show::ProtectedAttributesOption = << "show-protected", QObject::tr("Show the protected attributes in clear text.")); +const QCommandLineOption Show::AllAttributesOption = + QCommandLineOption(QStringList() << "all", QObject::tr("Show all the attributes of the entry.")); + const QCommandLineOption Show::AttachmentsOption = QCommandLineOption(QStringList() << "show-attachments", QObject::tr("Show the attachments of the entry.")); @@ -51,6 +54,7 @@ Show::Show() options.append(Show::TotpOption); options.append(Show::AttributesOption); options.append(Show::ProtectedAttributesOption); + options.append(Show::AllAttributesOption); options.append(Show::AttachmentsOption); positionalArguments.append({QString("entry"), QObject::tr("Name of the entry to show."), QString("")}); } @@ -64,6 +68,7 @@ int Show::executeWithDatabase(QSharedPointer database, QSharedPointer< const QString& entryPath = args.at(1); bool showTotp = parser->isSet(Show::TotpOption); bool showProtectedAttributes = parser->isSet(Show::ProtectedAttributesOption); + bool showAllAttributes = parser->isSet(Show::AllAttributesOption); QStringList attributes = parser->values(Show::AttributesOption); Entry* entry = database->rootGroup()->findEntryByPath(entryPath); @@ -77,15 +82,41 @@ int Show::executeWithDatabase(QSharedPointer database, QSharedPointer< return EXIT_FAILURE; } - // If no attributes specified, output the default attribute set. - bool showDefaultAttributes = attributes.isEmpty() && !showTotp; - if (showDefaultAttributes) { + bool attributesWereSpecified = true; + if (showAllAttributes) { + attributesWereSpecified = false; attributes = EntryAttributes::DefaultAttributes; + for (QString fieldName : Utils::EntryFieldNames) { + attributes.append(fieldName); + } + // Adding the custom attributes after the default attributes so that + // the default attributes are always shown first. + for (QString attributeName : entry->attributes()->keys()) { + if (EntryAttributes::DefaultAttributes.contains(attributeName)) { + continue; + } + attributes.append(attributeName); + } + } else if (attributes.isEmpty() && !showTotp) { + // If no attributes are specified, output the default attribute set. + attributesWereSpecified = false; + attributes = EntryAttributes::DefaultAttributes; + for (QString fieldName : Utils::EntryFieldNames) { + attributes.append(fieldName); + } } // Iterate over the attributes and output them line-by-line. bool encounteredError = false; for (const QString& attributeName : asConst(attributes)) { + if (Utils::EntryFieldNames.contains(attributeName)) { + if (!attributesWereSpecified) { + out << attributeName << ": "; + } + out << Utils::getTopLevelField(entry, attributeName) << endl; + continue; + } + QStringList attrs = Utils::findAttributes(*entry->attributes(), attributeName); if (attrs.isEmpty()) { encounteredError = true; @@ -99,10 +130,10 @@ int Show::executeWithDatabase(QSharedPointer database, QSharedPointer< continue; } QString canonicalName = attrs[0]; - if (showDefaultAttributes) { + if (!attributesWereSpecified) { out << canonicalName << ": "; } - if (entry->attributes()->isProtected(canonicalName) && showDefaultAttributes && !showProtectedAttributes) { + if (entry->attributes()->isProtected(canonicalName) && !attributesWereSpecified && !showProtectedAttributes) { out << "PROTECTED" << endl; } else { out << entry->resolveMultiplePlaceholders(entry->attributes()->value(canonicalName)) << endl; diff --git a/src/cli/Show.h b/src/cli/Show.h index 93713dbd8..8af32937e 100644 --- a/src/cli/Show.h +++ b/src/cli/Show.h @@ -28,6 +28,7 @@ public: int executeWithDatabase(QSharedPointer db, QSharedPointer parser); static const QCommandLineOption TotpOption; + static const QCommandLineOption AllAttributesOption; static const QCommandLineOption AttributesOption; static const QCommandLineOption ProtectedAttributesOption; static const QCommandLineOption AttachmentsOption; diff --git a/src/cli/Utils.cpp b/src/cli/Utils.cpp index ec4fc81f7..d8134de26 100644 --- a/src/cli/Utils.cpp +++ b/src/cli/Utils.cpp @@ -18,6 +18,7 @@ #include "Utils.h" #include "core/Database.h" +#include "core/Entry.h" #include "core/EntryAttributes.h" #include "keys/FileKey.h" #ifdef WITH_XC_YUBIKEY @@ -62,6 +63,13 @@ namespace Utils fd->open(fopen("/dev/null", "w"), QIODevice::WriteOnly); #endif DEVNULL.setDevice(fd); + +#ifdef Q_OS_WIN + // On Windows, we ask via keepassxc-cli.exe.manifest to use UTF-8, + // but the console code-page isn't automatically changed to match. + SetConsoleCP(GetACP()); + SetConsoleOutputCP(GetACP()); +#endif } void setStdinEcho(bool enable = true) @@ -368,6 +376,17 @@ namespace Utils return result; } + QString getTopLevelField(const Entry* entry, const QString& fieldName) + { + if (fieldName == UuidFieldName) { + return entry->uuid().toString(); + } + if (fieldName == TagsFieldName) { + return entry->tags(); + } + return QString(""); + } + QStringList findAttributes(const EntryAttributes& attributes, const QString& name) { QStringList result; diff --git a/src/cli/Utils.h b/src/cli/Utils.h index dedc818f6..84ddbbb4b 100644 --- a/src/cli/Utils.h +++ b/src/cli/Utils.h @@ -22,6 +22,7 @@ class CompositeKey; class Database; +class Entry; class EntryAttributes; class FileKey; class PasswordKey; @@ -33,6 +34,10 @@ namespace Utils extern QTextStream STDIN; extern QTextStream DEVNULL; + static const QString UuidFieldName = "Uuid"; + static const QString TagsFieldName = "Tags"; + static const QStringList EntryFieldNames(QStringList() << UuidFieldName << TagsFieldName); + void setDefaultTextStreams(); void setStdinEcho(bool enable); @@ -55,6 +60,10 @@ namespace Utils * (case-insensitive). */ QStringList findAttributes(const EntryAttributes& attributes, const QString& name); + /** + * Get the value of a top-level Entry field using its name. + */ + QString getTopLevelField(const Entry* entry, const QString& fieldName); }; // namespace Utils #endif // KEEPASSXC_UTILS_H diff --git a/src/cli/keepassxc-cli.cpp b/src/cli/keepassxc-cli.cpp index 120c70647..abf1b0efd 100644 --- a/src/cli/keepassxc-cli.cpp +++ b/src/cli/keepassxc-cli.cpp @@ -24,6 +24,7 @@ #include "Utils.h" #include "config-keepassx.h" #include "core/Bootstrap.h" +#include "core/Config.h" #include "core/Metadata.h" #include "core/Tools.h" #include "crypto/Crypto.h" @@ -181,7 +182,7 @@ int main(int argc, char** argv) QCoreApplication app(argc, argv); QCoreApplication::setApplicationVersion(KEEPASSXC_VERSION); - Bootstrap::bootstrap(); + Bootstrap::bootstrap(config()->get(Config::GUI_Language).toString()); Utils::setDefaultTextStreams(); Commands::setupCommands(false); diff --git a/src/cli/keepassxc-cli.exe.manifest b/src/cli/keepassxc-cli.exe.manifest new file mode 100644 index 000000000..9ef750e6f --- /dev/null +++ b/src/cli/keepassxc-cli.exe.manifest @@ -0,0 +1,8 @@ + + + + + UTF-8 + + + diff --git a/src/config-keepassx.h.cmake b/src/config-keepassx.h.cmake index 6caa89d81..1b45315f6 100644 --- a/src/config-keepassx.h.cmake +++ b/src/config-keepassx.h.cmake @@ -15,12 +15,15 @@ #cmakedefine WITH_XC_AUTOTYPE #cmakedefine WITH_XC_NETWORKING #cmakedefine WITH_XC_BROWSER +#cmakedefine WITH_XC_BROWSER_PASSKEYS #cmakedefine WITH_XC_YUBIKEY #cmakedefine WITH_XC_SSHAGENT #cmakedefine WITH_XC_KEESHARE #cmakedefine WITH_XC_UPDATECHECK #cmakedefine WITH_XC_FDOSECRETS #cmakedefine WITH_XC_DOCS +#cmakedefine WITH_XC_X11 +#cmakedefine WITH_XC_BOTAN3 #cmakedefine KEEPASSXC_BUILD_TYPE "@KEEPASSXC_BUILD_TYPE@" #cmakedefine KEEPASSXC_BUILD_TYPE_RELEASE @@ -37,4 +40,13 @@ #cmakedefine HAVE_RLIMIT_CORE 1 #cmakedefine HAVE_PT_DENY_ATTACH 1 +#cmakedefine01 XC_APPLE_COMPILER_SUPPORT_BIOMETRY() +#cmakedefine01 XC_APPLE_COMPILER_SUPPORT_TOUCH_ID() +#cmakedefine01 XC_APPLE_COMPILER_SUPPORT_WATCH() + +#define XC_COMPILER_SUPPORT(X) XC_COMPILER_SUPPORT_PRIVATE_DEFINITION_##X() +#define XC_COMPILER_SUPPORT_PRIVATE_DEFINITION_APPLE_BIOMETRY() XC_APPLE_COMPILER_SUPPORT_BIOMETRY() +#define XC_COMPILER_SUPPORT_PRIVATE_DEFINITION_TOUCH_ID() XC_APPLE_COMPILER_SUPPORT_TOUCH_ID() +#define XC_COMPILER_SUPPORT_PRIVATE_DEFINITION_WATCH_UNLOCK() XC_APPLE_COMPILER_SUPPORT_WATCH() + #endif // KEEPASSX_CONFIG_KEEPASSX_H diff --git a/src/core/AsyncTask.h b/src/core/AsyncTask.h index 581865419..c12360231 100644 --- a/src/core/AsyncTask.h +++ b/src/core/AsyncTask.h @@ -33,12 +33,10 @@ namespace AsyncTask * @param future future to wait for * @return async task result */ - template - typename std::result_of::type - waitForFuture(QFuture::type> future) + template T waitForFuture(QFuture future) { QEventLoop loop; - QFutureWatcher::type> watcher; + QFutureWatcher watcher; QObject::connect(&watcher, SIGNAL(finished()), &loop, SLOT(quit())); watcher.setFuture(future); loop.exec(); @@ -51,10 +49,9 @@ namespace AsyncTask * @param task std::function object to run * @return async task result */ - template - typename std::result_of::type runAndWaitForFuture(FunctionObject task) + template decltype(auto) runAndWaitForFuture(FunctionObject task) { - return waitForFuture(QtConcurrent::run(task)); + return waitForFuture(QtConcurrent::run(task)); } /** @@ -69,9 +66,8 @@ namespace AsyncTask template void runThenCallback(FunctionObject task, QObject* context, FunctionObject2 callback) { - typedef QFutureWatcher::type> FutureWatcher; auto future = QtConcurrent::run(task); - auto watcher = new FutureWatcher(context); + auto watcher = new QFutureWatcher(context); QObject::connect(watcher, &QFutureWatcherBase::finished, context, [=]() { watcher->deleteLater(); callback(future.result()); diff --git a/src/core/Bootstrap.cpp b/src/core/Bootstrap.cpp index e01bf7337..4b1bc90c9 100644 --- a/src/core/Bootstrap.cpp +++ b/src/core/Bootstrap.cpp @@ -63,7 +63,7 @@ namespace Bootstrap * Perform early application bootstrapping that does not rely on a QApplication * being present. */ - void bootstrap() + void bootstrap(const QString& uiLanguage) { #ifdef QT_NO_DEBUG disableCoreDumps(); @@ -72,7 +72,7 @@ namespace Bootstrap setupSearchPaths(); applyEarlyQNetworkAccessManagerWorkaround(); - Translator::installTranslators(); + Translator::installTranslators(uiLanguage); } // LCOV_EXCL_START @@ -89,7 +89,9 @@ namespace Bootstrap success = success && (setrlimit(RLIMIT_CORE, &limit) == 0); #endif -#if defined(HAVE_PR_SET_DUMPABLE) +// NOTE: Dumps cannot be disabled for snap builds as it prevents desktop portals from working +// See https://github.com/keepassxreboot/keepassxc/issues/7607#issuecomment-1109005206 +#if defined(HAVE_PR_SET_DUMPABLE) && !defined(KEEPASSXC_DIST_SNAP) success = success && (prctl(PR_SET_DUMPABLE, 0) == 0); #endif diff --git a/src/core/Bootstrap.h b/src/core/Bootstrap.h index 9ec0c5dc8..bd2006cbb 100644 --- a/src/core/Bootstrap.h +++ b/src/core/Bootstrap.h @@ -18,9 +18,11 @@ #ifndef KEEPASSXC_BOOTSTRAP_H #define KEEPASSXC_BOOTSTRAP_H +#include + namespace Bootstrap { - void bootstrap(); + void bootstrap(const QString& uiLanguage = "system"); void disableCoreDumps(); bool createWindowsDACL(); void setupSearchPaths(); diff --git a/src/core/Config.cpp b/src/core/Config.cpp index 98bbeeea0..3075c1ee7 100644 --- a/src/core/Config.cpp +++ b/src/core/Config.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020 KeePassXC Team + * Copyright (C) 2024 KeePassXC Team * Copyright (C) 2011 Felix Geyer * * This program is free software: you can redistribute it and/or modify @@ -81,6 +81,7 @@ static const QHash configStrings = { {Config::GlobalAutoTypeRetypeTime,{QS("GlobalAutoTypeRetypeTime"), Roaming, 15}}, {Config::FaviconDownloadTimeout,{QS("FaviconDownloadTimeout"), Roaming, 10}}, {Config::UpdateCheckMessageShown,{QS("UpdateCheckMessageShown"), Roaming, false}}, + {Config::DefaultDatabaseFileName,{QS("DefaultDatabaseFileName"), Roaming, {}}}, {Config::LastDatabases, {QS("LastDatabases"), Local, {}}}, {Config::LastKeyFiles, {QS("LastKeyFiles"), Local, {}}}, @@ -104,6 +105,7 @@ static const QHash configStrings = { {Config::GUI_HideUsernames, {QS("GUI/HideUsernames"), Roaming, false}}, {Config::GUI_HidePasswords, {QS("GUI/HidePasswords"), Roaming, true}}, {Config::GUI_AdvancedSettings, {QS("GUI/AdvancedSettings"), Roaming, false}}, + {Config::GUI_ColorPasswords, {QS("GUI/ColorPasswords"), Roaming, false}}, {Config::GUI_MonospaceNotes, {QS("GUI/MonospaceNotes"), Roaming, false}}, {Config::GUI_ApplicationTheme, {QS("GUI/ApplicationTheme"), Roaming, QS("auto")}}, {Config::GUI_CompactMode, {QS("GUI/CompactMode"), Roaming, false}}, @@ -125,7 +127,7 @@ static const QHash configStrings = { // Security {Config::Security_ClearClipboard, {QS("Security/ClearClipboard"), Roaming, true}}, {Config::Security_ClearClipboardTimeout, {QS("Security/ClearClipboardTimeout"), Roaming, 10}}, - {Config::Security_ClearSearch, {QS("Security/ClearSearch"), Roaming, true}}, + {Config::Security_ClearSearch, {QS("Security/ClearSearch"), Roaming, false}}, {Config::Security_ClearSearchTimeout, {QS("Security/ClearSearchTimeout"), Roaming, 5}}, {Config::Security_HideNotes, {QS("Security/Security_HideNotes"), Roaming, false}}, {Config::Security_LockDatabaseIdle, {QS("Security/LockDatabaseIdle"), Roaming, false}}, @@ -137,6 +139,7 @@ static const QHash configStrings = { {Config::Security_PasswordsHidden, {QS("Security/PasswordsHidden"), Roaming, true}}, {Config::Security_PasswordEmptyPlaceholder, {QS("Security/PasswordEmptyPlaceholder"), Roaming, false}}, {Config::Security_HidePasswordPreviewPanel, {QS("Security/HidePasswordPreviewPanel"), Roaming, true}}, + {Config::Security_HideTotpPreviewPanel, {QS("Security/HideTotpPreviewPanel"), Roaming, false}}, {Config::Security_AutoTypeAsk, {QS("Security/AutotypeAsk"), Roaming, true}}, {Config::Security_IconDownloadFallback, {QS("Security/IconDownloadFallback"), Roaming, false}}, {Config::Security_NoConfirmMoveEntryToRecycleBin,{QS("Security/NoConfirmMoveEntryToRecycleBin"), Roaming, true}}, @@ -163,6 +166,7 @@ static const QHash configStrings = { {Config::Browser_UseCustomBrowser, {QS("Browser/UseCustomBrowser"), Local, false}}, {Config::Browser_CustomBrowserType, {QS("Browser/CustomBrowserType"), Local, -1}}, {Config::Browser_CustomBrowserLocation, {QS("Browser/CustomBrowserLocation"), Local, {}}}, + {Config::Browser_AllowLocalhostWithPasskeys, {QS("Browser/Browser_AllowLocalhostWithPasskeys"), Roaming, false}}, #ifdef QT_DEBUG {Config::Browser_CustomExtensionId, {QS("Browser/CustomExtensionId"), Local, {}}}, #endif @@ -480,8 +484,19 @@ void Config::init(const QString& configFileName, const QString& localConfigFileN QPair Config::defaultConfigFiles() { // Check if we are running in portable mode, if so store the config files local to the app +#ifdef Q_OS_WIN + // Enable QFileInfo::isWritable check on Windows + extern Q_CORE_EXPORT int qt_ntfs_permission_lookup; + qt_ntfs_permission_lookup++; +#endif auto portablePath = QCoreApplication::applicationDirPath().append("/%1"); - if (QFile::exists(portablePath.arg(".portable"))) { + auto portableFile = portablePath.arg(".portable"); + bool isPortable = QFile::exists(portableFile) && QFileInfo(portableFile).isWritable(); +#ifdef Q_OS_WIN + qt_ntfs_permission_lookup--; +#endif + + if (isPortable) { return {portablePath.arg("config/keepassxc.ini"), portablePath.arg("config/keepassxc_local.ini")}; } diff --git a/src/core/Config.h b/src/core/Config.h index be7a736f8..ad80efab2 100644 --- a/src/core/Config.h +++ b/src/core/Config.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020 KeePassXC Team + * Copyright (C) 2024 KeePassXC Team * Copyright (C) 2011 Felix Geyer * * This program is free software: you can redistribute it and/or modify @@ -63,6 +63,7 @@ public: GlobalAutoTypeRetypeTime, FaviconDownloadTimeout, UpdateCheckMessageShown, + DefaultDatabaseFileName, LastDatabases, LastKeyFiles, @@ -85,6 +86,7 @@ public: GUI_HideUsernames, GUI_HidePasswords, GUI_AdvancedSettings, + GUI_ColorPasswords, GUI_MonospaceNotes, GUI_ApplicationTheme, GUI_CompactMode, @@ -117,6 +119,7 @@ public: Security_PasswordsHidden, Security_PasswordEmptyPlaceholder, Security_HidePasswordPreviewPanel, + Security_HideTotpPreviewPanel, Security_AutoTypeAsk, Security_IconDownloadFallback, Security_NoConfirmMoveEntryToRecycleBin, @@ -142,6 +145,7 @@ public: Browser_UseCustomBrowser, Browser_CustomBrowserType, Browser_CustomBrowserLocation, + Browser_AllowLocalhostWithPasskeys, #ifdef QT_DEBUG Browser_CustomExtensionId, #endif diff --git a/src/core/Database.cpp b/src/core/Database.cpp index 7d92265a2..768d5e262 100644 --- a/src/core/Database.cpp +++ b/src/core/Database.cpp @@ -21,6 +21,7 @@ #include "core/AsyncTask.h" #include "core/FileWatcher.h" #include "core/Group.h" +#include "crypto/Random.h" #include "format/KdbxXmlReader.h" #include "format/KeePass2Reader.h" #include "format/KeePass2Writer.h" @@ -66,9 +67,9 @@ Database::Database() // block modified signal and set root group setEmitModified(false); - setRootGroup(new Group()); - rootGroup()->setUuid(QUuid::createUuid()); - rootGroup()->setName(tr("Passwords", "Root group name")); + // Note: oldGroup is nullptr but need to respect return value capture + auto oldGroup = setRootGroup(new Group()); + Q_UNUSED(oldGroup) m_modified = false; setEmitModified(true); @@ -253,9 +254,6 @@ bool Database::saveAs(const QString& filePath, SaveAction action, const QString& return false; } - // Prevent destructive operations while saving - QMutexLocker locker(&m_saveMutex); - if (filePath == m_data.filePath) { // Fail-safe check to make sure we don't overwrite underlying file changes // that have not yet triggered a file reload/merge operation. @@ -270,13 +268,20 @@ bool Database::saveAs(const QString& filePath, SaveAction action, const QString& // Clear read-only flag m_fileWatcher->stop(); + // Add random data to prevent side-channel data deduplication attacks + int length = Random::instance()->randomUIntRange(64, 512); + m_metadata->customData()->set("KPXC_RANDOM_SLUG", Random::instance()->randomArray(length).toHex()); + + // Prevent destructive operations while saving + QMutexLocker locker(&m_saveMutex); + QFileInfo fileInfo(filePath); auto realFilePath = fileInfo.exists() ? fileInfo.canonicalFilePath() : fileInfo.absoluteFilePath(); bool isNewFile = !QFile::exists(realFilePath); bool ok = AsyncTask::runAndWaitForFuture([&] { return performSave(realFilePath, action, backupFilePath, error); }); if (ok) { - markAsClean(); setFilePath(filePath); + markAsClean(); if (isNewFile) { QFile::setPermissions(realFilePath, QFile::ReadUser | QFile::WriteUser); } @@ -463,6 +468,7 @@ bool Database::import(const QString& xmlExportPath, QString* error) void Database::releaseData() { // Prevent data release while saving + Q_ASSERT(!isSaving()); QMutexLocker locker(&m_saveMutex); if (m_modified) { @@ -478,9 +484,8 @@ void Database::releaseData() m_data.clear(); m_metadata->clear(); - auto oldGroup = rootGroup(); - setRootGroup(new Group()); - // explicitly delete old group, otherwise it is only deleted when the database object is destructed + // Reset and delete the root group + auto oldGroup = setRootGroup(new Group()); delete oldGroup; m_fileWatcher->stop(); @@ -556,14 +561,12 @@ const Group* Database::rootGroup() const return m_rootGroup; } -/** - * Sets group as the root group and takes ownership of it. - * Warning: Be careful when calling this method as it doesn't - * emit any notifications so e.g. models aren't updated. - * The caller is responsible for cleaning up the previous - root group. +/* Set the root group of the database and return + * the old root group. It is the responsibility + * of the calling function to dispose of the old + * root group. */ -void Database::setRootGroup(Group* group) +Group* Database::setRootGroup(Group* group) { Q_ASSERT(group); @@ -571,8 +574,17 @@ void Database::setRootGroup(Group* group) emit databaseDiscarded(); } + auto oldRoot = m_rootGroup; m_rootGroup = group; m_rootGroup->setParent(this); + + // Initialize the root group if not done already + if (m_rootGroup->uuid().isNull()) { + m_rootGroup->setUuid(QUuid::createUuid()); + m_rootGroup->setName(tr("Passwords", "Root group name")); + } + + return oldRoot; } Metadata* Database::metadata() @@ -701,8 +713,8 @@ void Database::updateTagList() // Search groups recursively looking for tags // Use a set to prevent adding duplicates QSet tagSet; - for (const auto group : m_rootGroup->groupsRecursive(true)) { - for (const auto entry : group->entries()) { + for (auto entry : m_rootGroup->entriesRecursive()) { + if (!entry->isRecycled()) { for (auto tag : entry->tagList()) { tagSet.insert(tag); } @@ -714,6 +726,17 @@ void Database::updateTagList() emit tagListUpdated(); } +void Database::removeTag(const QString& tag) +{ + if (!m_rootGroup) { + return; + } + + for (auto entry : m_rootGroup->entriesRecursive()) { + entry->removeTag(tag); + } +} + const QUuid& Database::cipher() const { return m_data.cipher; @@ -927,6 +950,7 @@ void Database::markAsClean() void Database::markNonDataChange() { m_hasNonDataChange = true; + emit databaseNonDataChanged(); } /** diff --git a/src/core/Database.h b/src/core/Database.h index bad0b256a..45e5140fd 100644 --- a/src/core/Database.h +++ b/src/core/Database.h @@ -111,7 +111,7 @@ public: const Metadata* metadata() const; Group* rootGroup(); const Group* rootGroup() const; - void setRootGroup(Group* group); + Q_REQUIRED_RESULT Group* setRootGroup(Group* group); QVariantMap& publicCustomData(); const QVariantMap& publicCustomData() const; void setPublicCustomData(const QVariantMap& customData); @@ -129,6 +129,7 @@ public: const QStringList& commonUsernames() const; const QStringList& tagList() const; + void removeTag(const QString& tag); QSharedPointer key() const; bool setKey(const QSharedPointer& key, @@ -170,6 +171,7 @@ signals: void databaseSaved(); void databaseDiscarded(); void databaseFileChanged(); + void databaseNonDataChanged(); void tagListUpdated(); private: diff --git a/src/core/Entry.cpp b/src/core/Entry.cpp index a798033f4..db1542c6c 100644 --- a/src/core/Entry.cpp +++ b/src/core/Entry.cpp @@ -1,6 +1,6 @@ /* + * Copyright (C) 2023 KeePassXC Team * Copyright (C) 2010 Felix Geyer - * Copyright (C) 2017 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,7 +24,7 @@ #include "core/Metadata.h" #include "core/PasswordHealth.h" #include "core/Tools.h" -#include "totp/totp.h" +#include "core/Totp.h" #include #include @@ -187,15 +187,12 @@ QString Entry::overrideUrl() const QString Entry::tags() const { - return m_data.tags; + return m_data.tags.join(","); } QStringList Entry::tagList() const { - static QRegExp rx("(\\,|\\t|\\;)"); - auto taglist = tags().split(rx, QString::SkipEmptyParts); - std::sort(taglist.begin(), taglist.end()); - return taglist; + return m_data.tags; } const TimeInfo& Entry::timeInfo() const @@ -208,6 +205,11 @@ bool Entry::autoTypeEnabled() const return m_data.autoTypeEnabled; } +bool Entry::groupAutoTypeEnabled() const +{ + return group() && group()->resolveAutoTypeEnabled(); +} + int Entry::autoTypeObfuscation() const { return m_data.autoTypeObfuscation; @@ -375,16 +377,19 @@ QString Entry::url() const QStringList Entry::getAllUrls() const { QStringList urlList; + auto entryUrl = url(); - if (!url().isEmpty()) { - urlList << url(); + if (!entryUrl.isEmpty()) { + urlList << (EntryAttributes::matchReference(entryUrl).hasMatch() ? resolveMultiplePlaceholders(entryUrl) + : entryUrl); } for (const auto& key : m_attributes->keys()) { - if (key.startsWith("KP2A_URL")) { + if (key.startsWith(EntryAttributes::AdditionalUrlAttribute) + || key == QString("%1_RELYING_PARTY").arg(EntryAttributes::PasskeyAttribute)) { auto additionalUrl = m_attributes->value(key); if (!additionalUrl.isEmpty()) { - urlList << additionalUrl; + urlList << resolveMultiplePlaceholders(additionalUrl); } } } @@ -458,7 +463,7 @@ bool Entry::isRecycled() const return false; } - return m_group == db->metadata()->recycleBin() || m_group->isRecycled(); + return m_group->isRecycled(); } bool Entry::isAttributeReference(const QString& key) const @@ -541,6 +546,11 @@ bool Entry::hasTotp() const return !m_data.totpSettings.isNull(); } +bool Entry::hasPasskey() const +{ + return m_attributes->hasPasskey(); +} + QString Entry::totp() const { if (hasTotp()) { @@ -556,7 +566,7 @@ void Entry::setTotp(QSharedPointer settings) m_attributes->remove(Totp::ATTRIBUTE_SEED); m_attributes->remove(Totp::ATTRIBUTE_SETTINGS); - if (settings->key.isEmpty()) { + if (!settings || settings->key.isEmpty()) { m_data.totpSettings.reset(); } else { m_data.totpSettings = std::move(settings); @@ -654,7 +664,42 @@ void Entry::setOverrideUrl(const QString& url) void Entry::setTags(const QString& tags) { - set(m_data.tags, tags); + static QRegExp rx("(\\,|\\t|\\;)"); + auto taglist = tags.split(rx, QString::SkipEmptyParts); + // Trim whitespace before/after tag text + for (auto itr = taglist.begin(); itr != taglist.end(); ++itr) { + *itr = itr->trimmed(); + } + // Remove duplicates + auto tagSet = QSet::fromList(taglist); + taglist = tagSet.toList(); + // Sort alphabetically + taglist.sort(); + set(m_data.tags, taglist); +} + +void Entry::addTag(const QString& tag) +{ + auto cleanTag = tag.trimmed(); + cleanTag.remove(QRegExp("(\\,|\\t|\\;)")); + + auto taglist = m_data.tags; + if (!taglist.contains(cleanTag)) { + taglist.append(cleanTag); + taglist.sort(); + set(m_data.tags, taglist); + } +} + +void Entry::removeTag(const QString& tag) +{ + auto cleanTag = tag.trimmed(); + cleanTag.remove(QRegExp("(\\,|\\t|\\;)")); + + auto taglist = m_data.tags; + if (taglist.removeAll(tag) > 0) { + set(m_data.tags, taglist); + } } void Entry::setTimeInfo(const TimeInfo& timeInfo) @@ -965,19 +1010,19 @@ void Entry::updateModifiedSinceBegin() QString Entry::resolveMultiplePlaceholdersRecursive(const QString& str, int maxDepth) const { + static QRegularExpression placeholderRegEx("(\\{[^\\}]+?\\})", QRegularExpression::CaseInsensitiveOption); + if (maxDepth <= 0) { qWarning("Maximum depth of replacement has been reached. Entry uuid: %s", uuid().toString().toLatin1().data()); return str; } QString result = str; - QRegExp placeholderRegEx("(\\{[^\\}]+\\})", Qt::CaseInsensitive, QRegExp::RegExp2); - placeholderRegEx.setMinimal(true); - int pos = 0; - while ((pos = placeholderRegEx.indexIn(str, pos)) != -1) { - const QString found = placeholderRegEx.cap(1); + auto matches = placeholderRegEx.globalMatch(str); + while (matches.hasNext()) { + auto match = matches.next(); + const auto found = match.captured(1); result.replace(found, resolvePlaceholderRecursive(found, maxDepth - 1)); - pos += placeholderRegEx.matchedLength(); } if (result != str) { @@ -1234,11 +1279,11 @@ void Entry::setGroup(Group* group, bool trackPrevious) } } + QObject::setParent(group); + m_group = group; group->addEntry(this); - QObject::setParent(group); - if (m_updateTimeinfo) { m_data.timeInfo.setLocationChanged(Clock::currentDateTimeUtc()); } diff --git a/src/core/Entry.h b/src/core/Entry.h index 6984a9845..796170514 100644 --- a/src/core/Entry.h +++ b/src/core/Entry.h @@ -1,6 +1,6 @@ /* + * Copyright (C) 2023 KeePassXC Team * Copyright (C) 2010 Felix Geyer - * Copyright (C) 2017 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -58,7 +58,7 @@ struct EntryData QString foregroundColor; QString backgroundColor; QString overrideUrl; - QString tags; + QStringList tags; bool autoTypeEnabled; int autoTypeObfuscation; QString defaultAutoTypeSequence; @@ -91,6 +91,7 @@ public: QStringList tagList() const; const TimeInfo& timeInfo() const; bool autoTypeEnabled() const; + bool groupAutoTypeEnabled() const; int autoTypeObfuscation() const; QString defaultAutoTypeSequence() const; QString effectiveAutoTypeSequence() const; @@ -120,6 +121,7 @@ public: void setExcludeFromReports(bool state); bool hasTotp() const; + bool hasPasskey() const; bool isExpired() const; bool willExpireInDays(int days) const; bool isRecycled() const; @@ -158,6 +160,9 @@ public: void setPreviousParentGroup(const Group* group); void setPreviousParentGroupUuid(const QUuid& uuid); + void addTag(const QString& tag); + void removeTag(const QString& tag); + QList historyItems(); const QList& historyItems() const; void addHistoryItem(Entry* entry); diff --git a/src/core/EntryAttributes.cpp b/src/core/EntryAttributes.cpp index d6ca12102..49c243ec1 100644 --- a/src/core/EntryAttributes.cpp +++ b/src/core/EntryAttributes.cpp @@ -1,6 +1,6 @@ /* + * Copyright (C) 2023 KeePassXC Team * Copyright (C) 2012 Felix Geyer - * Copyright (C) 2017 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,7 +17,6 @@ */ #include "EntryAttributes.h" - #include "core/Global.h" #include @@ -30,12 +29,13 @@ const QString EntryAttributes::URLKey = "URL"; const QString EntryAttributes::NotesKey = "Notes"; const QStringList EntryAttributes::DefaultAttributes(QStringList() << TitleKey << UserNameKey << PasswordKey << URLKey << NotesKey); - const QString EntryAttributes::WantedFieldGroupName = "WantedField"; const QString EntryAttributes::SearchInGroupName = "SearchIn"; const QString EntryAttributes::SearchTextGroupName = "SearchText"; const QString EntryAttributes::RememberCmdExecAttr = "_EXEC_CMD"; +const QString EntryAttributes::AdditionalUrlAttribute = "KP2A_URL"; +const QString EntryAttributes::PasskeyAttribute = "KPEX_PASSKEY"; EntryAttributes::EntryAttributes(QObject* parent) : ModifiableObject(parent) @@ -53,12 +53,24 @@ bool EntryAttributes::hasKey(const QString& key) const return m_attributes.contains(key); } +bool EntryAttributes::hasPasskey() const +{ + const auto keyList = keys(); + for (const auto& key : keyList) { + if (isPasskeyAttribute(key)) { + return true; + } + } + + return false; +} + QList EntryAttributes::customKeys() const { QList customKeys; const QList keyList = keys(); for (const QString& key : keyList) { - if (!isDefaultAttribute(key)) { + if (!isDefaultAttribute(key) && !isPasskeyAttribute(key)) { customKeys.append(key); } } @@ -322,3 +334,8 @@ bool EntryAttributes::isDefaultAttribute(const QString& key) { return DefaultAttributes.contains(key); } + +bool EntryAttributes::isPasskeyAttribute(const QString& key) +{ + return key.startsWith(PasskeyAttribute); +} diff --git a/src/core/EntryAttributes.h b/src/core/EntryAttributes.h index a9fcf7f60..fecf6a993 100644 --- a/src/core/EntryAttributes.h +++ b/src/core/EntryAttributes.h @@ -1,6 +1,6 @@ /* + * Copyright (C) 2023 KeePassXC Team * Copyright (C) 2012 Felix Geyer - * Copyright (C) 2017 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,6 +33,7 @@ public: explicit EntryAttributes(QObject* parent = nullptr); QList keys() const; bool hasKey(const QString& key) const; + bool hasPasskey() const; QList customKeys() const; QString value(const QString& key) const; QList values(const QList& keys) const; @@ -61,7 +62,10 @@ public: static const QString NotesKey; static const QStringList DefaultAttributes; static const QString RememberCmdExecAttr; + static const QString AdditionalUrlAttribute; + static const QString PasskeyAttribute; static bool isDefaultAttribute(const QString& key); + static bool isPasskeyAttribute(const QString& key); static const QString WantedFieldGroupName; static const QString SearchInGroupName; diff --git a/src/core/EntrySearcher.cpp b/src/core/EntrySearcher.cpp index e52033a04..13369a66d 100644 --- a/src/core/EntrySearcher.cpp +++ b/src/core/EntrySearcher.cpp @@ -25,8 +25,6 @@ EntrySearcher::EntrySearcher(bool caseSensitive, bool skipProtected) : m_caseSensitive(caseSensitive) , m_skipProtected(skipProtected) - , m_termParser(R"re(([-!*+]+)?(?:(\w*):)?(?:(?=")"((?:[^"\\]|\\.)*)"|([^ ]*))( |$))re") -// Group 1 = modifiers, Group 2 = field, Group 3 = quoted string, Group 4 = unquoted string { } @@ -150,7 +148,10 @@ bool EntrySearcher::searchEntryImpl(const Entry* entry) auto attributes = QStringList(attributes_keys + entry->attributes()->values(attributes_keys)); auto attachments = QStringList(entry->attachments()->keys()); // Build a group hierarchy to allow searching for e.g. /group1/subgroup* - auto hierarchy = entry->group()->hierarchy().join('/').prepend("/"); + QString hierarchy; + if (entry->group()) { + hierarchy = entry->group()->hierarchy().join('/').prepend("/"); + } // By default, empty term matches every entry. // However when skipping protected fields, we will reject everything instead @@ -192,16 +193,21 @@ bool EntrySearcher::searchEntryImpl(const Entry* entry) // Match against the full hierarchy if the word contains a '/' otherwise just the group name if (term.word.contains('/')) { found = term.regex.match(hierarchy).hasMatch(); - } else { + } else if (entry->group()) { found = term.regex.match(entry->group()->name()).hasMatch(); } break; case Field::Tag: - found = term.regex.match(entry->tags()).hasMatch(); + found = entry->tagList().indexOf(term.regex) != -1; break; case Field::Is: - if (term.word.compare("expired", Qt::CaseInsensitive) == 0) { - found = entry->isExpired(); + if (term.word.startsWith("expired", Qt::CaseInsensitive)) { + auto days = 0; + auto parts = term.word.split("-", QString::SkipEmptyParts); + if (parts.length() >= 2) { + days = parts[1].toInt(); + } + found = entry->willExpireInDays(days) && !entry->isRecycled(); break; } else if (term.word.compare("weak", Qt::CaseInsensitive) == 0) { if (!entry->excludeFromReports() && !entry->password().isEmpty() && !entry->isExpired()) { @@ -215,13 +221,15 @@ bool EntrySearcher::searchEntryImpl(const Entry* entry) } found = false; break; + case Field::Uuid: + found = term.regex.match(entry->uuidToHex()).hasMatch(); + break; default: // Terms without a specific field try to match title, username, url, and notes found = term.regex.match(entry->resolvePlaceholder(entry->title())).hasMatch() || term.regex.match(entry->resolvePlaceholder(entry->username())).hasMatch() || term.regex.match(entry->resolvePlaceholder(entry->url())).hasMatch() - || term.regex.match(entry->resolvePlaceholder(entry->tags())).hasMatch() - || term.regex.match(entry->notes()).hasMatch(); + || entry->tagList().indexOf(term.regex) != -1 || term.regex.match(entry->notes()).hasMatch(); } // negate the result if exclude: @@ -246,23 +254,27 @@ void EntrySearcher::parseSearchTerms(const QString& searchString) {QStringLiteral("notes"), Field::Notes}, {QStringLiteral("pw"), Field::Password}, {QStringLiteral("password"), Field::Password}, - {QStringLiteral("title"), Field::Title}, - {QStringLiteral("t"), Field::Title}, - {QStringLiteral("u"), Field::Username}, // u: stands for username rather than url + {QStringLiteral("title"), Field::Title}, // title before tag to capture t: + {QStringLiteral("username"), Field::Username}, // username before url to capture u: {QStringLiteral("url"), Field::Url}, - {QStringLiteral("username"), Field::Username}, {QStringLiteral("group"), Field::Group}, {QStringLiteral("tag"), Field::Tag}, - {QStringLiteral("is"), Field::Is}}; + {QStringLiteral("is"), Field::Is}, + {QStringLiteral("uuid"), Field::Uuid}}; + + // Group 1 = modifiers, Group 2 = field, Group 3 = quoted string, Group 4 = unquoted string + static QRegularExpression termParser(R"re(([-!*+]+)?(?:(\w*):)?(?:(?=")"((?:[^"\\]|\\.)*)"|([^ ]*))( |$))re"); m_searchTerms.clear(); - auto results = m_termParser.globalMatch(searchString); + auto results = termParser.globalMatch(searchString); while (results.hasNext()) { auto result = results.next(); SearchTerm term{}; // Quoted string group term.word = result.captured(3); + // Unescape quotes + term.word.replace("\\\"", "\""); // If empty, use the unquoted string group if (term.word.isEmpty()) { diff --git a/src/core/EntrySearcher.h b/src/core/EntrySearcher.h index 80c86600c..0134054bf 100644 --- a/src/core/EntrySearcher.h +++ b/src/core/EntrySearcher.h @@ -40,7 +40,8 @@ public: AttributeValue, Group, Tag, - Is + Is, + Uuid }; struct SearchTerm @@ -71,7 +72,6 @@ private: bool m_caseSensitive; bool m_skipProtected; - QRegularExpression m_termParser; QList m_searchTerms; friend class TestEntrySearcher; diff --git a/src/core/Group.cpp b/src/core/Group.cpp index d0c87b3e2..fb9d42921 100644 --- a/src/core/Group.cpp +++ b/src/core/Group.cpp @@ -33,6 +33,7 @@ #include const int Group::DefaultIconNumber = 48; +const int Group::OpenFolderIconNumber = 49; const int Group::RecycleBinIconNumber = 43; const QString Group::RootAutoTypeSequence = "{USERNAME}{TAB}{PASSWORD}{ENTER}"; @@ -130,6 +131,19 @@ QString Group::tags() const return m_data.tags; } +QString Group::fullPath() const +{ + QString fullPath; + auto group = this; + + do { + fullPath.insert(0, "/" + group->name()); + group = group->parentGroup(); + } while (group); + + return fullPath; +} + int Group::iconNumber() const { return m_data.iconNumber; @@ -209,18 +223,16 @@ Entry* Group::lastTopVisibleEntry() const bool Group::isRecycled() const { auto group = this; - if (!group->database()) { + if (!group->database() || !group->m_db->metadata()) { return false; } do { - if (group->m_parent && group->m_db->metadata()) { - if (group->m_parent == group->m_db->metadata()->recycleBin()) { - return true; - } + if (group == group->m_db->metadata()->recycleBin()) { + return true; } group = group->m_parent; - } while (group && group->m_parent && group->m_parent != group->m_db->rootGroup()); + } while (group); return false; } @@ -1132,7 +1144,8 @@ void Group::applyGroupIconOnCreateTo(Entry* entry) return; } - if (iconNumber() == Group::DefaultIconNumber && iconUuid().isNull()) { + if ((iconNumber() == Group::DefaultIconNumber || iconNumber() == Group::OpenFolderIconNumber) + && iconUuid().isNull()) { return; } diff --git a/src/core/Group.h b/src/core/Group.h index 748437ab1..8d5a78d49 100644 --- a/src/core/Group.h +++ b/src/core/Group.h @@ -85,6 +85,7 @@ public: QString name() const; QString notes() const; QString tags() const; + QString fullPath() const; int iconNumber() const; const QUuid& iconUuid() const; const TimeInfo& timeInfo() const; @@ -110,6 +111,7 @@ public: bool equals(const Group* other, CompareItemOptions options) const; static const int DefaultIconNumber; + static const int OpenFolderIconNumber; static const int RecycleBinIconNumber; static const QString RootAutoTypeSequence; @@ -228,9 +230,7 @@ private: bool m_updateTimeinfo; - friend void Database::setRootGroup(Group* group); - friend Entry::~Entry(); - friend void Entry::setGroup(Group* group, bool trackPrevious); + friend Group* Database::setRootGroup(Group* group); }; Q_DECLARE_OPERATORS_FOR_FLAGS(Group::CloneFlags) diff --git a/src/core/Merger.cpp b/src/core/Merger.cpp index fd30da7aa..0ffb94b9e 100644 --- a/src/core/Merger.cpp +++ b/src/core/Merger.cpp @@ -338,6 +338,7 @@ Merger::ChangeList Merger::resolveEntryConflict_MergeHistories(const MergeContex const int comparison = compare(targetEntry->timeInfo().lastModificationTime(), sourceEntry->timeInfo().lastModificationTime(), CompareItemIgnoreMilliseconds); + const int maxItems = targetEntry->database()->metadata()->historyMaxItems(); if (comparison < 0) { Group* currentGroup = targetEntry->group(); Entry* clonedEntry = sourceEntry->clone(Entry::CloneIncludeHistory); @@ -346,15 +347,15 @@ Merger::ChangeList Merger::resolveEntryConflict_MergeHistories(const MergeContex qPrintable(sourceEntry->title()), qPrintable(currentGroup->name())); changes << tr("Synchronizing from newer source %1 [%2]").arg(targetEntry->title(), targetEntry->uuidToHex()); - moveEntry(clonedEntry, currentGroup); - mergeHistory(targetEntry, clonedEntry, mergeMethod); + mergeHistory(targetEntry, clonedEntry, mergeMethod, maxItems); eraseEntry(targetEntry); + moveEntry(clonedEntry, currentGroup); } else { qDebug("Merge %s/%s with local on top/under %s", qPrintable(targetEntry->title()), qPrintable(sourceEntry->title()), qPrintable(targetEntry->group()->name())); - const bool changed = mergeHistory(sourceEntry, targetEntry, mergeMethod); + const bool changed = mergeHistory(sourceEntry, targetEntry, mergeMethod, maxItems); if (changed) { changes << tr("Synchronizing from older source %1 [%2]").arg(targetEntry->title(), targetEntry->uuidToHex()); @@ -400,7 +401,10 @@ Merger::resolveEntryConflict(const MergeContext& context, const Entry* sourceEnt return changes; } -bool Merger::mergeHistory(const Entry* sourceEntry, Entry* targetEntry, Group::MergeMode mergeMethod) +bool Merger::mergeHistory(const Entry* sourceEntry, + Entry* targetEntry, + Group::MergeMode mergeMethod, + const int maxItems) { Q_UNUSED(mergeMethod); const auto targetHistoryItems = targetEntry->historyItems(); @@ -473,7 +477,6 @@ bool Merger::mergeHistory(const Entry* sourceEntry, Entry* targetEntry, Group::M } bool changed = false; - const int maxItems = targetEntry->database()->metadata()->historyMaxItems(); const auto updatedHistoryItems = merged.values(); for (int i = 0; i < maxItems; ++i) { const Entry* oldEntry = targetHistoryItems.value(targetHistoryItems.count() - i); diff --git a/src/core/Merger.h b/src/core/Merger.h index 4b277f956..ea45a6d14 100644 --- a/src/core/Merger.h +++ b/src/core/Merger.h @@ -50,7 +50,7 @@ private: ChangeList mergeDeletions(const MergeContext& context); ChangeList mergeMetadata(const MergeContext& context); bool markOlderEntry(Entry* entry); - bool mergeHistory(const Entry* sourceEntry, Entry* targetEntry, Group::MergeMode mergeMethod); + bool mergeHistory(const Entry* sourceEntry, Entry* targetEntry, Group::MergeMode mergeMethod, const int maxItems); void moveEntry(Entry* entry, Group* targetGroup); void moveGroup(Group* group, Group* targetGroup); // remove an entry without a trace in the deletedObjects - needed for elemination cloned entries diff --git a/src/core/Metadata.cpp b/src/core/Metadata.cpp index d88998057..52a615e28 100644 --- a/src/core/Metadata.cpp +++ b/src/core/Metadata.cpp @@ -24,6 +24,7 @@ #include #include +#include const int Metadata::DefaultHistoryMaxItems = 10; const int Metadata::DefaultHistoryMaxSize = 6 * 1024 * 1024; @@ -487,3 +488,26 @@ void Metadata::setSettingsChanged(const QDateTime& value) Q_ASSERT(value.timeSpec() == Qt::UTC); m_settingsChanged = value; } + +void Metadata::addSavedSearch(const QString& name, const QString& searchtext) +{ + auto searches = savedSearches(); + searches.insert(name, searchtext); + auto json = QJsonDocument::fromVariant(searches); + m_customData->set("KPXC_SavedSearch", json.toJson()); +} + +void Metadata::deleteSavedSearch(const QString& name) +{ + auto searches = savedSearches(); + searches.remove(name); + auto json = QJsonDocument::fromVariant(searches); + m_customData->set("KPXC_SavedSearch", json.toJson()); +} + +QVariantMap Metadata::savedSearches() +{ + auto searches = m_customData->value("KPXC_SavedSearch"); + auto json = QJsonDocument::fromJson(searches.toUtf8()); + return json.toVariant().toMap(); +} diff --git a/src/core/Metadata.h b/src/core/Metadata.h index 61c9c1e6e..ccefdb1c8 100644 --- a/src/core/Metadata.h +++ b/src/core/Metadata.h @@ -23,6 +23,7 @@ #include #include #include +#include #include "core/CustomData.h" #include "core/Global.h" @@ -150,6 +151,9 @@ public: void setHistoryMaxItems(int value); void setHistoryMaxSize(int value); void setUpdateDatetime(bool value); + void addSavedSearch(const QString& name, const QString& searchtext); + void deleteSavedSearch(const QString& name); + QVariantMap savedSearches(); /* * Copy all attributes from other except: * - Group pointers/uuids diff --git a/src/core/PasswordGenerator.cpp b/src/core/PasswordGenerator.cpp index 1051dba2b..aa0f3e717 100644 --- a/src/core/PasswordGenerator.cpp +++ b/src/core/PasswordGenerator.cpp @@ -214,7 +214,7 @@ QVector PasswordGenerator::passwordGroups() const if (m_classes & Math) { PasswordGroup group; - // !*+-<=>? + // !*+<=>? group.append(33); group.append(42); group.append(43); @@ -261,8 +261,10 @@ QVector PasswordGenerator::passwordGroups() const if (!m_custom.isEmpty()) { PasswordGroup group; - for (auto ch : m_custom) { - group.append(ch); + for (const auto& ch : m_custom) { + if (!group.contains(ch)) { + group.append(ch); + } } passwordGroups.append(group); diff --git a/src/core/PasswordHealth.cpp b/src/core/PasswordHealth.cpp index 7b52fa4ba..3225affb3 100644 --- a/src/core/PasswordHealth.cpp +++ b/src/core/PasswordHealth.cpp @@ -21,10 +21,32 @@ #include "PasswordHealth.h" #include "zxcvbn.h" -PasswordHealth::PasswordHealth(double entropy) - : m_score(entropy) - , m_entropy(entropy) +namespace { + const static int ZXCVBN_ESTIMATE_THRESHOLD = 256; +} // namespace + +PasswordHealth::PasswordHealth(double entropy) +{ + init(entropy); +} + +PasswordHealth::PasswordHealth(const QString& pwd) +{ + auto entropy = 0.0; + entropy += ZxcvbnMatch(pwd.left(ZXCVBN_ESTIMATE_THRESHOLD).toUtf8(), nullptr, nullptr); + if (pwd.length() > ZXCVBN_ESTIMATE_THRESHOLD) { + // Add the average entropy per character for any characters above the estimate threshold + auto average = entropy / ZXCVBN_ESTIMATE_THRESHOLD; + entropy += average * (pwd.length() - ZXCVBN_ESTIMATE_THRESHOLD); + } + init(entropy); +} + +void PasswordHealth::init(double entropy) +{ + m_score = m_entropy = entropy; + switch (quality()) { case Quality::Bad: case Quality::Poor: @@ -43,11 +65,6 @@ PasswordHealth::PasswordHealth(double entropy) } } -PasswordHealth::PasswordHealth(const QString& pwd) - : PasswordHealth(ZxcvbnMatch(pwd.toUtf8(), nullptr, nullptr)) -{ -} - void PasswordHealth::setScore(int score) { m_score = score; @@ -84,7 +101,7 @@ PasswordHealth::Quality PasswordHealth::quality() const return Quality::Bad; } else if (m_score < 40) { return Quality::Poor; - } else if (m_score < 65) { + } else if (m_score < 75) { return Quality::Weak; } else if (m_score < 100) { return Quality::Good; @@ -143,8 +160,8 @@ QSharedPointer HealthChecker::evaluate(const Entry* entry) const // Don't allow re-used passwords to be considered "good" // no matter how great their entropy is. - if (health->score() > 64) { - health->setScore(64); + if (health->score() > 74) { + health->setScore(74); } } @@ -164,8 +181,8 @@ QSharedPointer HealthChecker::evaluate(const Entry* entry) const // reduce the score by 2 points for every day that // we get closer to expiry. days<=0 has already // been handled above ("isExpired()"). - if (health->score() > 60) { - health->setScore(60); + if (health->score() > 70) { + health->setScore(70); } health->adjustScore((30 - days) * -2); diff --git a/src/core/PasswordHealth.h b/src/core/PasswordHealth.h index 35b582e94..b24b80803 100644 --- a/src/core/PasswordHealth.h +++ b/src/core/PasswordHealth.h @@ -35,6 +35,8 @@ public: explicit PasswordHealth(double entropy); explicit PasswordHealth(const QString& pwd); + void init(double entropy); + /* * The password score is defined to be the greater the better * (more secure) the password is. It doesn't have a dimension, diff --git a/src/core/Tools.cpp b/src/core/Tools.cpp index 867d8c174..81fdd8e39 100644 --- a/src/core/Tools.cpp +++ b/src/core/Tools.cpp @@ -1,7 +1,11 @@ /* * Copyright (C) 2012 Felix Geyer * Copyright (C) 2017 Lennart Glauer - * Copyright (C) 2021 KeePassXC Team + * Copyright (C) 2020 Giuseppe D'Angelo . + * Copyright (C) 2020 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, + * author Giuseppe D'Angelo + * Copyright (C) 2021 The Qt Company Ltd. + * Copyright (C) 2023 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -90,6 +94,9 @@ namespace Tools #ifdef WITH_XC_BROWSER extensions += "\n- " + QObject::tr("Browser Integration"); #endif +#ifdef WITH_XC_BROWSER_PASSKEYS + extensions += "\n- " + QObject::tr("Passkeys"); +#endif #ifdef WITH_XC_SSHAGENT extensions += "\n- " + QObject::tr("SSH Agent"); #endif @@ -223,6 +230,13 @@ namespace Tools return regexp.exactMatch(base64); } + bool isAsciiString(const QString& str) + { + constexpr auto pattern = R"(^[\x00-\x7F]+$)"; + QRegularExpression regexp(pattern, QRegularExpression::CaseInsensitiveOption); + return regexp.match(str).hasMatch(); + } + void sleep(int ms) { Q_ASSERT(ms >= 0); @@ -267,45 +281,67 @@ namespace Tools } } - bool checkUrlValid(const QString& urlField) + /**************************************************************************** + * + * Copyright (C) 2020 Giuseppe D'Angelo . + * Copyright (C) 2020 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, + * author Giuseppe D'Angelo + * Copyright (C) 2021 The Qt Company Ltd. Contact: https://www.qt.io/licensing/ + * + * This function is part of the QtCore module of the Qt Toolkit. And subject to the + * following licenses. + * + * GNU General Public License Usage + * Alternatively, this function may be used under the terms of the GNU + * General Public License version 2.0 or (at your option) the GNU General + * Public license version 3 or any later version approved by the KDE Free + * Qt Foundation. The licenses are as published by the Free Software + * Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 + * included in the packaging of this file. Please review the following + * information to ensure the GNU General Public License requirements will + * be met: https://www.gnu.org/licenses/gpl-2.0.html and + * https://www.gnu.org/licenses/gpl-3.0.html. + */ + QString escapeRegex(const QString& str) { - if (urlField.isEmpty() || urlField.startsWith("cmd://", Qt::CaseInsensitive) - || urlField.startsWith("kdbx://", Qt::CaseInsensitive) - || urlField.startsWith("{REF:A", Qt::CaseInsensitive)) { - return true; + QString result; + const auto count = str.size(); + result.reserve(count * 2); + + // everything but [a-zA-Z0-9_] gets escaped, + // cf. perldoc -f quotemeta + for (int i = 0; i < count; ++i) { + const QChar current = str.at(i); + + if (current == QChar::Null) { + // unlike Perl, a literal NUL must be escaped with + // "\\0" (backslash + 0) and not "\\\0" (backslash + NUL), + // because pcre16_compile uses a NUL-terminated string + result.append(u'\\'); + result.append(u'0'); + } else if ((current < u'a' || current > u'z') && (current < u'A' || current > u'Z') + && (current < u'0' || current > u'9') && current != u'_') { + result.append(u'\\'); + result.append(current); + if (current.isHighSurrogate() && i < (count - 1)) { + result.append(str.at(++i)); + } + } else { + result.append(current); + } } - QUrl url; - if (urlField.contains("://")) { - url = urlField; - } else { - url = QUrl::fromUserInput(urlField); - } - - if (url.scheme() != "file" && url.host().isEmpty()) { - return false; - } - - // Check for illegal characters. Adds also the wildcard * to the list - QRegularExpression re("[<>\\^`{|}\\*]"); - auto match = re.match(urlField); - if (match.hasMatch()) { - return false; - } - - return true; + result.squeeze(); + return result; } - // Escape regex symbols - auto regexEscape = QRegularExpression(R"re(([-[\]{}()+.,\\\/^$#|*?]))re"); - QRegularExpression convertToRegex(const QString& string, int opts) { QString pattern = string; // Wildcard support (*, ?, |) if (opts & RegexConvertOpts::WILDCARD_ALL || opts & RegexConvertOpts::ESCAPE_REGEX) { - pattern.replace(regexEscape, "\\\\1"); + pattern = escapeRegex(pattern); if (opts & RegexConvertOpts::WILDCARD_UNLIMITED_MATCH) { pattern.replace("\\*", ".*"); @@ -318,9 +354,9 @@ namespace Tools } } - // Exact modifier if (opts & RegexConvertOpts::EXACT_MATCH) { - pattern = "^" + pattern + "$"; + // Exact modifier + pattern = "^(?:" + pattern + ")$"; } auto regex = QRegularExpression(pattern); @@ -382,6 +418,16 @@ namespace Tools return subbed; } + QString cleanFilename(QString filename) + { + // Remove forward slash from title on all platforms + filename.replace("/", "_"); + // Remove invalid characters + filename.remove(QRegularExpression("[:*?\"<>|]")); + + return filename.trimmed(); + } + QVariantMap qo2qvm(const QObject* object, const QStringList& ignoredProperties) { QVariantMap result; diff --git a/src/core/Tools.h b/src/core/Tools.h index d8a1371f1..61d93ffbd 100644 --- a/src/core/Tools.h +++ b/src/core/Tools.h @@ -1,6 +1,6 @@ /* + * Copyright (C) 2024 KeePassXC Team * Copyright (C) 2012 Felix Geyer - * Copyright (C) 2021 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,6 +22,7 @@ #include "core/Global.h" #include +#include #include class QIODevice; @@ -36,27 +37,43 @@ namespace Tools bool readAllFromDevice(QIODevice* device, QByteArray& data); bool isHex(const QByteArray& ba); bool isBase64(const QByteArray& ba); + bool isAsciiString(const QString& str); void sleep(int ms); void wait(int ms); - bool checkUrlValid(const QString& urlField); QString uuidToHex(const QUuid& uuid); QUuid hexToUuid(const QString& uuid); bool isValidUuid(const QString& uuidStr); QString envSubstitute(const QString& filepath, QProcessEnvironment environment = QProcessEnvironment::systemEnvironment()); + QString cleanFilename(QString filename); + + /** + * Escapes all characters in regex such that they do not receive any special treatment when used + * in a regular expression. Essentially, this function escapes any characters not in a-zA-Z0-9. + * @param regex The unescaped regular expression string. + * @return An escaped string safe to use in a regular expression. + */ + QString escapeRegex(const QString& regex); enum RegexConvertOpts { DEFAULT = 0, - WILDCARD_UNLIMITED_MATCH = 0x1, - WILDCARD_SINGLE_MATCH = 0x2, - WILDCARD_LOGICAL_OR = 0x4, + WILDCARD_UNLIMITED_MATCH = 1, + WILDCARD_SINGLE_MATCH = 1 << 2, + WILDCARD_LOGICAL_OR = 1 << 3, WILDCARD_ALL = WILDCARD_UNLIMITED_MATCH | WILDCARD_SINGLE_MATCH | WILDCARD_LOGICAL_OR, - EXACT_MATCH = 0x8, - CASE_SENSITIVE = 0x16, - ESCAPE_REGEX = 0x32, + EXACT_MATCH = 1 << 4, + CASE_SENSITIVE = 1 << 5, + ESCAPE_REGEX = 1 << 6, }; + /** + * Converts input string to a regular expression according to the options specified in opts. + * Note that, unless ESCAPE_REGEX is set, convertToRegex assumes a proper regular expression as input. + * @param string The input string. Assumed to be a proper regular expression unless ESCAPE_REGEX is set. + * @param opts Tools::RegexConvertOpts options the regex will be converted with. + * @return The regular expression built from string and opts. + */ QRegularExpression convertToRegex(const QString& string, int opts = RegexConvertOpts::DEFAULT); template @@ -85,6 +102,19 @@ namespace Tools return version; } + // Checks if all values are found inside the list. Returns a list of values not found. + template QList getMissingValuesFromList(const QList& list, const QList& required) + { + QList missingValues; + for (const auto& r : required) { + if (!list.contains(r)) { + missingValues << r; + } + } + + return missingValues; + } + QVariantMap qo2qvm(const QObject* object, const QStringList& ignoredProperties = {"objectName"}); QString substituteBackupFilePath(QString pattern, const QString& databasePath); diff --git a/src/totp/totp.cpp b/src/core/Totp.cpp similarity index 96% rename from src/totp/totp.cpp rename to src/core/Totp.cpp index 82d9bb832..f55312a9d 100644 --- a/src/totp/totp.cpp +++ b/src/core/Totp.cpp @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -#include "totp.h" +#include "Totp.h" #include "core/Base32.h" #include "core/Clock.h" @@ -59,6 +59,11 @@ static QString getNameForHashType(const Totp::Algorithm hashType) QSharedPointer Totp::parseSettings(const QString& rawSettings, const QString& key) { + // Early out if both strings are empty + if (rawSettings.isEmpty() && key.isEmpty()) { + return {}; + } + // Create default settings auto settings = createSettings(key, DEFAULT_DIGITS, DEFAULT_STEP); @@ -96,6 +101,11 @@ QSharedPointer Totp::parseSettings(const QString& rawSettings, c settings->algorithm = getHashTypeByName(query.queryItemValue("otpHashMode")); } } else { + if (settings->key.isEmpty()) { + // Legacy format cannot work with an empty key + return {}; + } + // Parse semi-colon separated values ([step];[digits|S]) settings->format = StorageFormat::LEGACY; auto vars = rawSettings.split(";"); @@ -114,7 +124,7 @@ QSharedPointer Totp::parseSettings(const QString& rawSettings, c // Bound digits and step settings->digits = qBound(1u, settings->digits, 10u); - settings->step = qBound(1u, settings->step, 60u); + settings->step = qBound(1u, settings->step, 86400u); // Detect custom settings, used by setup GUI if (settings->encoder.shortName.isEmpty() diff --git a/src/totp/totp.h b/src/core/Totp.h similarity index 100% rename from src/totp/totp.h rename to src/core/Totp.h diff --git a/src/core/Translator.cpp b/src/core/Translator.cpp index ac2072bf4..2101e8dc1 100644 --- a/src/core/Translator.cpp +++ b/src/core/Translator.cpp @@ -25,25 +25,22 @@ #include #include -#include "config-keepassx.h" -#include "core/Config.h" #include "core/Resources.h" /** * Install all KeePassXC and Qt translators. */ -void Translator::installTranslators() +void Translator::installTranslators(const QString& uiLanguage) { QStringList languages; - QString languageSetting = config()->get(Config::GUI_Language).toString(); - if (languageSetting.isEmpty() || languageSetting == "system") { + if (uiLanguage.isEmpty() || uiLanguage == "system") { // NOTE: this is a workaround for the terrible way Qt loads languages // using the QLocale::uiLanguages() approach. Instead, we search each // language and all country variants in order before moving to the next. QLocale locale; languages = locale.uiLanguages(); } else { - languages << languageSetting; + languages << uiLanguage; } // Always try to load english last diff --git a/src/core/Translator.h b/src/core/Translator.h index af699ac90..3e073c172 100644 --- a/src/core/Translator.h +++ b/src/core/Translator.h @@ -19,11 +19,12 @@ #define KEEPASSX_TRANSLATOR_H #include +#include class Translator { public: - static void installTranslators(); + static void installTranslators(const QString& uiLanguage = "system"); static QList> availableLanguages(); private: diff --git a/src/core/UrlTools.cpp b/src/core/UrlTools.cpp new file mode 100644 index 000000000..508bbefda --- /dev/null +++ b/src/core/UrlTools.cpp @@ -0,0 +1,181 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "UrlTools.h" +#if defined(WITH_XC_NETWORKING) || defined(WITH_XC_BROWSER) +#include +#include +#include +#endif +#include +#include + +Q_GLOBAL_STATIC(UrlTools, s_urlTools) + +UrlTools* UrlTools::instance() +{ + return s_urlTools; +} + +QUrl UrlTools::convertVariantToUrl(const QVariant& var) const +{ + QUrl url; + if (var.canConvert()) { + url = var.toUrl(); + } + return url; +} + +#if defined(WITH_XC_NETWORKING) || defined(WITH_XC_BROWSER) +QUrl UrlTools::getRedirectTarget(QNetworkReply* reply) const +{ + QVariant var = reply->attribute(QNetworkRequest::RedirectionTargetAttribute); + QUrl url = convertVariantToUrl(var); + return url; +} + +/** + * Gets the base domain of URL or hostname. + * + * Returns the base domain, e.g. https://another.example.co.uk -> example.co.uk + * Up-to-date list can be found: https://publicsuffix.org/list/public_suffix_list.dat + */ +QString UrlTools::getBaseDomainFromUrl(const QString& url) const +{ + auto qUrl = QUrl::fromUserInput(url); + + auto host = qUrl.host(); + if (isIpAddress(host)) { + return host; + } + + const auto tld = getTopLevelDomainFromUrl(qUrl.toString()); + if (tld.isEmpty() || tld.length() + 1 >= host.length()) { + return host; + } + + // Remove the top level domain part from the hostname, e.g. https://another.example.co.uk -> https://another.example + host.chop(tld.length() + 1); + // Split the URL and select the last part, e.g. https://another.example -> example + QString baseDomain = host.split('.').last(); + // Append the top level domain back to the URL, e.g. example -> example.co.uk + baseDomain.append(QString(".%1").arg(tld)); + + return baseDomain; +} + +/** + * Gets the top level domain from URL. + * + * Returns the TLD e.g. https://another.example.co.uk -> co.uk + */ +QString UrlTools::getTopLevelDomainFromUrl(const QString& url) const +{ + auto host = QUrl::fromUserInput(url).host(); + if (isIpAddress(host)) { + return host; + } + + const auto numberOfDomainParts = host.split('.').length(); + static const auto dummy = QByteArrayLiteral(""); + + // Only loop the amount of different parts found + for (auto i = 0; i < numberOfDomainParts; ++i) { + // Cut the first part from host + host = host.mid(host.indexOf('.') + 1); + + QNetworkCookie cookie(dummy, dummy); + cookie.setDomain(host); + + // Check if dummy cookie's domain/TLD matches with public suffix list + if (!QNetworkCookieJar{}.setCookiesFromUrl(QList{cookie}, QUrl::fromUserInput(url))) { + return host; + } + } + + return host; +} + +bool UrlTools::isIpAddress(const QString& host) const +{ + // Handle IPv6 host with brackets, e.g [::1] + const auto hostAddress = host.startsWith('[') && host.endsWith(']') ? host.mid(1, host.length() - 2) : host; + QHostAddress address(hostAddress); + return address.protocol() == QAbstractSocket::IPv4Protocol || address.protocol() == QAbstractSocket::IPv6Protocol; +} +#endif + +// Returns true if URLs are identical. Paths with "/" are removed during comparison. +// URLs without scheme reverts to https. +// Special handling is needed because QUrl::matches() with QUrl::StripTrailingSlash does not strip "/" paths. +bool UrlTools::isUrlIdentical(const QString& first, const QString& second) const +{ + auto trimUrl = [](QString url) { + url = url.trimmed(); + if (url.endsWith("/")) { + url.remove(url.length() - 1, 1); + } + + return url; + }; + + if (first.isEmpty() || second.isEmpty()) { + return false; + } + + const auto firstUrl = trimUrl(first); + const auto secondUrl = trimUrl(second); + if (firstUrl == secondUrl) { + return true; + } + + return QUrl(firstUrl).matches(QUrl(secondUrl), QUrl::StripTrailingSlash); +} + +bool UrlTools::isUrlValid(const QString& urlField) const +{ + if (urlField.isEmpty() || urlField.startsWith("cmd://", Qt::CaseInsensitive) + || urlField.startsWith("kdbx://", Qt::CaseInsensitive) || urlField.startsWith("{REF:A", Qt::CaseInsensitive)) { + return true; + } + + QUrl url; + if (urlField.contains("://")) { + url = urlField; + } else { + url = QUrl::fromUserInput(urlField); + } + + if (url.scheme() != "file" && url.host().isEmpty()) { + return false; + } + + // Check for illegal characters. Adds also the wildcard * to the list + QRegularExpression re("[<>\\^`{|}\\*]"); + auto match = re.match(urlField); + if (match.hasMatch()) { + return false; + } + + return true; +} + +bool UrlTools::domainHasIllegalCharacters(const QString& domain) const +{ + QRegularExpression re(R"([\s\^#|/:<>\?@\[\]\\])"); + return re.match(domain).hasMatch(); +} diff --git a/src/core/UrlTools.h b/src/core/UrlTools.h new file mode 100644 index 000000000..9a229e39f --- /dev/null +++ b/src/core/UrlTools.h @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2024 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSXC_URLTOOLS_H +#define KEEPASSXC_URLTOOLS_H + +#include "config-keepassx.h" +#include +#include +#include +#include + +class UrlTools : public QObject +{ + Q_OBJECT + +public: + explicit UrlTools() = default; + static UrlTools* instance(); + +#if defined(WITH_XC_NETWORKING) || defined(WITH_XC_BROWSER) + QUrl getRedirectTarget(QNetworkReply* reply) const; + QString getBaseDomainFromUrl(const QString& url) const; + QString getTopLevelDomainFromUrl(const QString& url) const; + bool isIpAddress(const QString& host) const; +#endif + bool isUrlIdentical(const QString& first, const QString& second) const; + bool isUrlValid(const QString& urlField) const; + bool domainHasIllegalCharacters(const QString& domain) const; + +private: + QUrl convertVariantToUrl(const QVariant& var) const; + +private: + Q_DISABLE_COPY(UrlTools); +}; + +static inline UrlTools* urlTools() +{ + return UrlTools::instance(); +} + +#endif // KEEPASSXC_URLTOOLS_H diff --git a/src/crypto/Crypto.cpp b/src/crypto/Crypto.cpp index 85d846499..233c89907 100644 --- a/src/crypto/Crypto.cpp +++ b/src/crypto/Crypto.cpp @@ -18,6 +18,8 @@ #include "Crypto.h" +#include "config-keepassx.h" + #include "crypto/CryptoHash.h" #include "crypto/SymmetricCipher.h" @@ -237,8 +239,16 @@ namespace Crypto { bool init() { - if (Botan::version_major() != 2 || Botan::version_minor() < 11) { - g_cryptoError = QObject::tr("Botan library must be at least 2.11.x, found %1.%2.%3") +#ifdef WITH_XC_BOTAN3 + unsigned int version_major = 3, min_version_minor = 0; + QString versionString = "3.x"; +#else + unsigned int version_major = 2, min_version_minor = 11; + QString versionString = "2.11.x"; +#endif + if (Botan::version_major() != version_major || Botan::version_minor() < min_version_minor) { + g_cryptoError = QObject::tr("Botan library must be at least %1, found %2.%3.%4") + .arg(versionString) .arg(Botan::version_major()) .arg(Botan::version_minor()) .arg(Botan::version_patch()); diff --git a/src/crypto/SymmetricCipher.cpp b/src/crypto/SymmetricCipher.cpp index 4d3a7bdfe..1253763bc 100644 --- a/src/crypto/SymmetricCipher.cpp +++ b/src/crypto/SymmetricCipher.cpp @@ -33,7 +33,8 @@ bool SymmetricCipher::init(Mode mode, Direction direction, const QByteArray& key try { auto botanMode = modeToString(mode); - auto botanDirection = (direction == SymmetricCipher::Encrypt ? Botan::ENCRYPTION : Botan::DECRYPTION); + auto botanDirection = + (direction == SymmetricCipher::Encrypt ? Botan::Cipher_Dir::ENCRYPTION : Botan::Cipher_Dir::DECRYPTION); auto cipher = Botan::Cipher_Mode::create_or_throw(botanMode.toStdString(), botanDirection); m_cipher.reset(cipher.release()); @@ -267,3 +268,22 @@ int SymmetricCipher::blockSize(Mode mode) return 0; } } + +int SymmetricCipher::ivSize(Mode mode) +{ + switch (mode) { + case Aes128_CBC: + case Aes256_CBC: + case Aes128_CTR: + case Aes256_CTR: + case Twofish_CBC: + return 16; + case Aes256_GCM: + return 12; + case Salsa20: + case ChaCha20: + return 8; + default: + return 0; + } +} diff --git a/src/crypto/SymmetricCipher.h b/src/crypto/SymmetricCipher.h index 83b54658f..e18f623f3 100644 --- a/src/crypto/SymmetricCipher.h +++ b/src/crypto/SymmetricCipher.h @@ -70,6 +70,7 @@ public: static int defaultIvSize(Mode mode); static int keySize(Mode mode); static int blockSize(Mode mode); + static int ivSize(Mode mode); private: static QString modeToString(const Mode mode); diff --git a/src/fdosecrets/CMakeLists.txt b/src/fdosecrets/CMakeLists.txt index fec3f99d0..ecdac8dc6 100644 --- a/src/fdosecrets/CMakeLists.txt +++ b/src/fdosecrets/CMakeLists.txt @@ -31,5 +31,5 @@ if(WITH_XC_FDOSECRETS) objects/Prompt.cpp dbus/DBusTypes.cpp ) - target_link_libraries(fdosecrets Qt5::Core Qt5::Widgets Qt5::DBus ${BOTAN2_LIBRARIES}) + target_link_libraries(fdosecrets Qt5::Core Qt5::Widgets Qt5::DBus ${BOTAN_LIBRARIES}) endif() diff --git a/src/fdosecrets/objects/Collection.cpp b/src/fdosecrets/objects/Collection.cpp index 1c870beaa..d16d9f552 100644 --- a/src/fdosecrets/objects/Collection.cpp +++ b/src/fdosecrets/objects/Collection.cpp @@ -210,8 +210,7 @@ namespace FdoSecrets return {}; } - DBusResult - Collection::searchItems(const DBusClientPtr& client, const StringStringMap& attributes, QList& items) + DBusResult Collection::searchItems(const DBusClientPtr&, const StringStringMap& attributes, QList& items) { items.clear(); @@ -220,24 +219,6 @@ namespace FdoSecrets return ret; } - if (backendLocked() && settings()->unlockBeforeSearch()) { - // do a blocking unlock prompt first. - // while technically not correct, this should improve compatibility. - // see issue #4443 - auto prompt = PromptBase::Create(service(), QSet{this}, QSet{}); - if (!prompt) { - return QDBusError::InternalError; - } - // we don't know the windowId to show the prompt correctly, - // but the default of showing over the KPXC main window should be good enough - ret = prompt->prompt(client, ""); - // blocking wait - QEventLoop loop; - connect(prompt, &PromptBase::completed, &loop, &QEventLoop::quit); - loop.exec(); - } - - // check again because the prompt may be cancelled if (backendLocked()) { // searchItems should work, whether `this` is locked or not. // however, we can't search items the same way as in gnome-keying, @@ -276,7 +257,12 @@ namespace FdoSecrets EntrySearcher(caseSensitive, skipProtected).search(terms, m_exposedGroup, forceSearch); items.reserve(foundEntries.size()); for (const auto& entry : foundEntries) { - items << m_entryToItem.value(entry); + const auto item = m_entryToItem.value(entry); + // it's possible that we don't have a corresponding item for the entry + // this can happen when the recycle bin is below the exposed group. + if (item) { + items << item; + } } return {}; } @@ -422,7 +408,7 @@ namespace FdoSecrets auto newUuid = FdoSecrets::settings()->exposedGroup(m_backend->database()); auto newGroup = m_backend->database()->rootGroup()->findGroupByUuid(newUuid); - if (!newGroup || inRecycleBin(newGroup)) { + if (!newGroup || newGroup->isRecycled()) { // no exposed group, delete self removeFromDBus(); return; @@ -458,7 +444,7 @@ namespace FdoSecrets }); // Another possibility is the group being moved to recycle bin. connect(m_exposedGroup.data(), &Group::modified, this, [this]() { - if (inRecycleBin(m_exposedGroup->parentGroup())) { + if (m_exposedGroup->isRecycled()) { // reset the exposed group to none FdoSecrets::settings()->setExposedGroup(m_backend->database().data(), {}); } @@ -504,11 +490,15 @@ namespace FdoSecrets void Collection::onEntryAdded(Entry* entry, bool emitSignal) { - if (inRecycleBin(entry)) { + if (entry->isRecycled()) { return; } auto item = Item::Create(this, entry); + if (!item) { + return; + } + m_items << item; m_entryToItem[entry] = item; @@ -534,7 +524,7 @@ namespace FdoSecrets void Collection::connectGroupSignalRecursive(Group* group) { - if (inRecycleBin(group)) { + if (group->isRecycled()) { return; } @@ -637,7 +627,7 @@ namespace FdoSecrets bool Collection::doDeleteEntry(Entry* entry) { // Confirm entry removal before moving forward - bool permanent = inRecycleBin(entry) || !m_backend->database()->metadata()->recycleBinEnabled(); + bool permanent = entry->isRecycled() || !m_backend->database()->metadata()->recycleBinEnabled(); if (FdoSecrets::settings()->confirmDeleteItem() && !GuiTools::confirmDeleteEntries(m_backend, {entry}, permanent)) { return false; @@ -674,33 +664,6 @@ namespace FdoSecrets return group; } - bool Collection::inRecycleBin(Group* group) const - { - Q_ASSERT(m_backend); - - if (!group) { - // the root group's parent is nullptr, we treat it as not in recycle bin. - return false; - } - - if (!m_backend->database()->metadata()) { - return false; - } - - auto recycleBin = m_backend->database()->metadata()->recycleBin(); - if (!recycleBin) { - return false; - } - - return group->uuid() == recycleBin->uuid() || group->isRecycled(); - } - - bool Collection::inRecycleBin(Entry* entry) const - { - Q_ASSERT(entry); - return inRecycleBin(entry->group()); - } - Item* Collection::doNewItem(const DBusClientPtr& client, QString itemPath) { Q_ASSERT(m_backend); diff --git a/src/fdosecrets/objects/Collection.h b/src/fdosecrets/objects/Collection.h index 4bd83d152..c8a49ef35 100644 --- a/src/fdosecrets/objects/Collection.h +++ b/src/fdosecrets/objects/Collection.h @@ -107,8 +107,6 @@ namespace FdoSecrets DatabaseWidget* backend() const; QString backendFilePath() const; Service* service() const; - bool inRecycleBin(Group* group) const; - bool inRecycleBin(Entry* entry) const; static EntrySearcher::SearchTerm attributeToTerm(const QString& key, const QString& value); diff --git a/src/fdosecrets/objects/Prompt.cpp b/src/fdosecrets/objects/Prompt.cpp index 1ac7e306f..e89cd499b 100644 --- a/src/fdosecrets/objects/Prompt.cpp +++ b/src/fdosecrets/objects/Prompt.cpp @@ -23,6 +23,7 @@ #include "fdosecrets/objects/Session.h" #include "fdosecrets/widgets/AccessControlDialog.h" +#include "FdoSecretsSettings.h" #include "core/Entry.h" #include "gui/MessageBox.h" @@ -210,7 +211,6 @@ namespace FdoSecrets m_collections.reserve(colls.size()); for (const auto& coll : asConst(colls)) { m_collections << coll; - connect(coll, &Collection::doneUnlockCollection, this, &UnlockPrompt::collectionUnlockFinished); } for (const auto& item : asConst(items)) { m_items[item->collection()] << item; @@ -234,6 +234,7 @@ namespace FdoSecrets bool waitingForCollections = false; for (const auto& c : asConst(m_collections)) { if (c) { + connect(c, &Collection::doneUnlockCollection, this, &UnlockPrompt::collectionUnlockFinished); // doUnlock is nonblocking, execution will continue in collectionUnlockFinished // it is ok to call doUnlock multiple times before it's actually unlocked by the user c->doUnlock(); @@ -242,7 +243,7 @@ namespace FdoSecrets } // unlock items directly if no collection unlocking pending - // o.w. do it in collectionUnlockFinished + // o.w. doing it in collectionUnlockFinished if (!waitingForCollections) { unlockItems(); } @@ -298,7 +299,7 @@ namespace FdoSecrets } auto entry = item->backend(); auto uuid = entry->uuid(); - if (client->itemKnown(uuid)) { + if (client->itemKnown(uuid) || !FdoSecrets::settings()->confirmAccessItem()) { if (!client->itemAuthorized(uuid)) { m_numRejected += 1; } @@ -400,18 +401,49 @@ namespace FdoSecrets return PromptResult::accepted(false); } - bool locked = true; - auto ret = m_coll->locked(locked); - if (locked) { - // collection was locked - return DBusResult{DBUS_ERROR_SECRET_IS_LOCKED}; - } - // save a weak reference to the client which may be used asynchronously later m_client = client; + // give the user a chance to unlock the collection + // UnlockPrompt will handle the case of collection already unlocked + auto prompt = PromptBase::Create(service(), QSet{m_coll.data()}, QSet{}); + if (!prompt) { + return DBusResult{QDBusError::InternalError}; + } + // postpone anything after the prompt + connect(prompt, &PromptBase::completed, this, [this, windowId](bool dismissed) { + if (dismissed) { + finishPrompt(dismissed); + } else { + auto res = createItem(windowId); + if (res.err()) { + qWarning() << "FdoSecrets:" << res; + finishPrompt(true); + } + } + }); + + auto ret = prompt->prompt(client, windowId); + if (ret.err()) { + return ret; + } + return PromptResult::Pending; + } + + DBusResult CreateItemPrompt::createItem(const QString& windowId) + { + auto client = m_client.lock(); + if (!client) { + // client already gone + return {}; + } + + if (!m_coll) { + return DBusResult{DBUS_ERROR_SECRET_NO_SUCH_OBJECT}; + } + // get itemPath to create item and - // try finding an existing item using attributes + // try to find an existing item using attributes QString itemPath{}; auto iterAttr = m_properties.find(DBUS_INTERFACE_SECRET_ITEM + ".Attributes"); if (iterAttr != m_properties.end()) { @@ -425,7 +457,7 @@ namespace FdoSecrets // check existing item using attributes QList existing; - ret = m_coll->searchItems(client, attributes, existing); + auto ret = m_coll->searchItems(client, attributes, existing); if (ret.err()) { return ret; } @@ -444,31 +476,29 @@ namespace FdoSecrets } // the item may be locked due to authorization - ret = m_item->locked(client, locked); + // give the user a chance to unlock the item + auto prompt = PromptBase::Create(service(), QSet{}, QSet{m_item}); + if (!prompt) { + return DBusResult{QDBusError::InternalError}; + } + // postpone anything after the confirmation + connect(prompt, &PromptBase::completed, this, [this](bool dismissed) { + if (dismissed) { + finishPrompt(dismissed); + } else { + auto res = updateItem(); + if (res.err()) { + qWarning() << "FdoSecrets:" << res; + finishPrompt(true); + } + } + }); + + auto ret = prompt->prompt(client, windowId); if (ret.err()) { return ret; } - if (locked) { - // give the user a chance to unlock the item - auto prompt = PromptBase::Create(service(), QSet{}, QSet{m_item}); - if (!prompt) { - return DBusResult{QDBusError::InternalError}; - } - // postpone anything after the confirmation - connect(prompt, &PromptBase::completed, this, [this]() { - auto res = updateItem(); - finishPrompt(res.err()); - }); - - ret = prompt->prompt(client, windowId); - if (ret.err()) { - return ret; - } - return PromptResult::Pending; - } - - // the item can be updated directly - return updateItem(); + return {}; } DBusResult CreateItemPrompt::updateItem() @@ -493,6 +523,9 @@ namespace FdoSecrets if (ret.err()) { return ret; } + + // finally can finish the prompt without dismissing it + finishPrompt(false); return {}; } } // namespace FdoSecrets diff --git a/src/fdosecrets/objects/Prompt.h b/src/fdosecrets/objects/Prompt.h index 1727f4424..078e4ce86 100644 --- a/src/fdosecrets/objects/Prompt.h +++ b/src/fdosecrets/objects/Prompt.h @@ -211,6 +211,7 @@ namespace FdoSecrets PromptResult promptSync(const DBusClientPtr& client, const QString& windowId) override; QVariant currentResult() const override; + DBusResult createItem(const QString& windowId); DBusResult updateItem(); QPointer m_coll; diff --git a/src/fdosecrets/objects/Service.cpp b/src/fdosecrets/objects/Service.cpp index 60e057e7d..ae1e9d4b6 100644 --- a/src/fdosecrets/objects/Service.cpp +++ b/src/fdosecrets/objects/Service.cpp @@ -184,6 +184,30 @@ namespace FdoSecrets return {}; } + DBusResult Service::unlockedCollections(QList& unlocked) const + { + auto ret = collections(unlocked); + if (ret.err()) { + return ret; + } + + // filter out locked collections + auto it = unlocked.begin(); + while (it != unlocked.end()) { + bool isLocked = true; + ret = (*it)->locked(isLocked); + if (ret.err()) { + return ret; + } + if (isLocked) { + it = unlocked.erase(it); + } else { + ++it; + } + } + return {}; + } + DBusResult Service::openSession(const DBusClientPtr& client, const QString& algorithm, const QVariant& input, @@ -242,15 +266,43 @@ namespace FdoSecrets DBusResult Service::searchItems(const DBusClientPtr& client, const StringStringMap& attributes, QList& unlocked, - QList& locked) const + QList& locked) { - QList colls; - auto ret = collections(colls); + // we can only search unlocked collections + QList unlockedColls; + auto ret = unlockedCollections(unlockedColls); if (ret.err()) { return ret; } - for (const auto& coll : asConst(colls)) { + while (unlockedColls.isEmpty() && settings()->unlockBeforeSearch()) { + // enable compatibility mode by making sure at least one database is unlocked + QEventLoop loop; + bool wasAccepted = false; + connect(this, &Service::doneUnlockDatabaseInDialog, &loop, [&](bool accepted) { + wasAccepted = accepted; + loop.quit(); + }); + + doUnlockAnyDatabaseInDialog(); + + // blocking wait + loop.exec(); + + if (!wasAccepted) { + // user cancelled, do not proceed + qWarning() << "user cancelled"; + return {}; + } + + // need to recompute this because collections may disappear while in event loop + ret = unlockedCollections(unlockedColls); + if (ret.err()) { + return ret; + } + } + + for (const auto& coll : asConst(unlockedColls)) { QList items; ret = coll->searchItems(client, attributes, items); if (ret.err()) { @@ -258,12 +310,13 @@ namespace FdoSecrets } // item locked state already covers its collection's locked state for (const auto& item : asConst(items)) { - bool l; - ret = item->locked(client, l); + Q_ASSERT(item); + bool itemLocked; + ret = item->locked(client, itemLocked); if (ret.err()) { return ret; } - if (l) { + if (itemLocked) { locked.append(item); } else { unlocked.append(item); @@ -522,18 +575,49 @@ namespace FdoSecrets return; } - // mark the db as being unlocked to prevent multiple dialogs for the same db - if (m_unlockingDb.contains(dbWidget)) { + // check if the db is already being unlocked to prevent multiple dialogs for the same db + if (m_unlockingAnyDatabase || m_unlockingDb.contains(dbWidget)) { return; } - m_unlockingDb.insert(dbWidget); + // insert a dummy one here, just to prevent multiple dialogs + // the real one will be inserted in onDatabaseUnlockDialogFinished + m_unlockingDb[dbWidget] = {}; + + // actually show the dialog m_databases->unlockDatabaseInDialog(dbWidget, DatabaseOpenDialog::Intent::None); } + void Service::doUnlockAnyDatabaseInDialog() + { + if (m_unlockingAnyDatabase || !m_unlockingDb.isEmpty()) { + return; + } + m_unlockingAnyDatabase = true; + + m_databases->unlockAnyDatabaseInDialog(DatabaseOpenDialog::Intent::None); + } + void Service::onDatabaseUnlockDialogFinished(bool accepted, DatabaseWidget* dbWidget) { - m_unlockingDb.remove(dbWidget); - emit doneUnlockDatabaseInDialog(accepted, dbWidget); + if (!m_unlockingAnyDatabase && !m_unlockingDb.contains(dbWidget)) { + // not our concern + return; + } + + if (!accepted) { + emit doneUnlockDatabaseInDialog(false, dbWidget); + m_unlockingAnyDatabase = false; + m_unlockingDb.remove(dbWidget); + } else { + // delay the done signal to when the database is actually done with unlocking + // this is a oneshot connection to prevent superfluous signals + auto conn = connect(dbWidget, &DatabaseWidget::databaseUnlocked, this, [dbWidget, this]() { + emit doneUnlockDatabaseInDialog(true, dbWidget); + m_unlockingAnyDatabase = false; + disconnect(m_unlockingDb.take(dbWidget)); + }); + m_unlockingDb[dbWidget] = conn; + } } } // namespace FdoSecrets diff --git a/src/fdosecrets/objects/Service.h b/src/fdosecrets/objects/Service.h index 422a3ca94..5ec7499b1 100644 --- a/src/fdosecrets/objects/Service.h +++ b/src/fdosecrets/objects/Service.h @@ -65,7 +65,7 @@ namespace FdoSecrets Q_INVOKABLE DBusResult searchItems(const DBusClientPtr& client, const StringStringMap& attributes, QList& unlocked, - QList& locked) const; + QList& locked); Q_INVOKABLE DBusResult unlock(const DBusClientPtr& client, const QList& objects, @@ -125,9 +125,16 @@ namespace FdoSecrets */ void doUnlockDatabaseInDialog(DatabaseWidget* dbWidget); + /** + * Async, connect to signal doneUnlockDatabaseInDialog for finish notification + * @param dbWidget + */ + void doUnlockAnyDatabaseInDialog(); + private slots: void ensureDefaultAlias(); + void onDatabaseUnlockDialogFinished(bool accepted, DatabaseWidget* dbWidget); void onDatabaseTabOpened(DatabaseWidget* dbWidget, bool emitSignal); void monitorDatabaseExposedGroup(DatabaseWidget* dbWidget); @@ -136,8 +143,6 @@ namespace FdoSecrets void onCollectionAliasRemoved(const QString& alias); - void onDatabaseUnlockDialogFinished(bool accepted, DatabaseWidget* dbWidget); - private: bool initialize(); @@ -155,6 +160,8 @@ namespace FdoSecrets */ Collection* findCollection(const DatabaseWidget* db) const; + DBusResult unlockedCollections(QList& unlocked) const; + private: FdoSecretsPlugin* m_plugin{nullptr}; QPointer m_databases{}; @@ -166,7 +173,9 @@ namespace FdoSecrets QList m_sessions{}; bool m_insideEnsureDefaultAlias{false}; - QSet m_unlockingDb{}; // list of db being unlocking + bool m_unlockingAnyDatabase{false}; + // list of db currently has unlock dialog shown + QHash m_unlockingDb{}; QSet m_lockingDb{}; // list of db being locking }; diff --git a/src/fdosecrets/objects/SessionCipher.cpp b/src/fdosecrets/objects/SessionCipher.cpp index 147e820b8..182fc771c 100644 --- a/src/fdosecrets/objects/SessionCipher.cpp +++ b/src/fdosecrets/objects/SessionCipher.cpp @@ -17,12 +17,20 @@ #include "SessionCipher.h" +#include "config-keepassx.h" + #include "crypto/Random.h" #include "crypto/SymmetricCipher.h" #include #include + +#ifdef WITH_XC_BOTAN3 +#include +#include +#else #include +#endif namespace FdoSecrets { @@ -50,6 +58,15 @@ namespace FdoSecrets try { Botan::secure_vector salt(32, '\0'); +#ifdef WITH_XC_BOTAN3 + Botan::PK_Key_Agreement dhka(*m_privateKey, *randomGen()->getRng(), "HKDF(SHA-256)", ""); + auto aesKey = dhka.derive_key(16, + reinterpret_cast(clientPublicKey.constData()), + clientPublicKey.size(), + salt.data(), + salt.size()); + m_aesKey = QByteArray(reinterpret_cast(aesKey.begin()), aesKey.size()); +#else auto dhka = m_privateKey->create_key_agreement_op(*randomGen()->getRng(), "HKDF(SHA-256)", ""); auto aesKey = dhka->agree(16, reinterpret_cast(clientPublicKey.constData()), @@ -57,6 +74,7 @@ namespace FdoSecrets salt.data(), salt.size()); m_aesKey = QByteArray(reinterpret_cast(aesKey.data()), aesKey.size()); +#endif return true; } catch (std::exception& e) { qCritical("Failed to update client public key: %s", e.what()); diff --git a/src/format/BitwardenReader.cpp b/src/format/BitwardenReader.cpp new file mode 100644 index 000000000..8f7a926fa --- /dev/null +++ b/src/format/BitwardenReader.cpp @@ -0,0 +1,313 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "BitwardenReader.h" + +#include "core/Database.h" +#include "core/Entry.h" +#include "core/Group.h" +#include "core/Metadata.h" +#include "core/Tools.h" +#include "core/Totp.h" +#include "crypto/CryptoHash.h" +#include "crypto/SymmetricCipher.h" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +namespace +{ + Entry* readItem(const QJsonObject& item, QString& folderId) + { + // Create the item map and extract the folder id + const auto itemMap = item.toVariantMap(); + folderId = itemMap.value("folderId").toString(); + + // Create entry and assign basic values + QScopedPointer entry(new Entry()); + entry->setUuid(QUuid::createUuid()); + entry->setTitle(itemMap.value("name").toString()); + entry->setNotes(itemMap.value("notes").toString()); + + if (itemMap.value("favorite").toBool()) { + entry->addTag(QObject::tr("Favorite", "Tag for favorite entries")); + } + + // Parse login details if present + if (itemMap.contains("login")) { + const auto loginMap = itemMap.value("login").toMap(); + entry->setUsername(loginMap.value("username").toString()); + entry->setPassword(loginMap.value("password").toString()); + if (loginMap.contains("totp")) { + // Bitwarden stores TOTP as otpauth string + entry->setTotp(Totp::parseSettings(loginMap.value("totp").toString())); + } + + // Set the entry url(s) + int i = 1; + for (const auto& urlObj : loginMap.value("uris").toList()) { + const auto url = urlObj.toMap().value("uri").toString(); + if (entry->url().isEmpty()) { + // First url encountered is set as the primary url + entry->setUrl(url); + } else { + // Subsequent urls + entry->attributes()->set( + QString("%1_%2").arg(EntryAttributes::AdditionalUrlAttribute, QString::number(i)), url); + ++i; + } + } + } + + // Parse identity details if present + if (itemMap.contains("identity")) { + const auto idMap = itemMap.value("identity").toMap(); + + // Combine name attributes + auto attrs = QStringList({idMap.value("title").toString(), + idMap.value("firstName").toString(), + idMap.value("middleName").toString(), + idMap.value("lastName").toString()}); + attrs.removeAll(""); + entry->attributes()->set("identity_name", attrs.join(" ")); + + // Combine all the address attributes + attrs = QStringList({idMap.value("address1").toString(), + idMap.value("address2").toString(), + idMap.value("address3").toString()}); + attrs.removeAll(""); + auto address = attrs.join("\n") + "\n" + idMap.value("city").toString() + ", " + + idMap.value("state").toString() + " " + idMap.value("postalCode").toString() + "\n" + + idMap.value("country").toString(); + entry->attributes()->set("identity_address", address); + + // Add the remaining attributes + attrs = QStringList({"company", "email", "phone", "ssn", "passportNumber", "licenseNumber"}); + const QStringList sensitive({"ssn", "passportNumber", "licenseNumber"}); + for (const auto& attr : attrs) { + const auto value = idMap.value(attr).toString(); + if (!value.isEmpty()) { + entry->attributes()->set("identity_" + attr, value, sensitive.contains(attr)); + } + } + + // Set the username or push it into attributes if already set + const auto username = idMap.value("username").toString(); + if (!username.isEmpty()) { + if (entry->username().isEmpty()) { + entry->setUsername(username); + } else { + entry->attributes()->set("identity_username", username); + } + } + } + + // Parse card details if present + if (itemMap.contains("card")) { + const auto cardMap = itemMap.value("card").toMap(); + const QStringList attrs({"cardholderName", "brand", "number", "expMonth", "expYear", "code"}); + const QStringList sensitive({"code"}); + for (const auto& attr : attrs) { + auto value = cardMap.value(attr).toString(); + if (!value.isEmpty()) { + entry->attributes()->set("card_" + attr, value, sensitive.contains(attr)); + } + } + } + + // Parse remaining fields + for (const auto& field : itemMap.value("fields").toList()) { + // Derive a prefix for attribute names using the title or uuid if missing + const auto fieldMap = field.toMap(); + auto name = fieldMap.value("name").toString(); + if (entry->attributes()->hasKey(name)) { + name = QString("%1_%2").arg(name, QUuid::createUuid().toString().mid(1, 5)); + } + + const auto value = fieldMap.value("value").toString(); + const auto type = fieldMap.value("type").toInt(); + + entry->attributes()->set(name, value, type == 1); + } + + // Collapse any accumulated history + entry->removeHistoryItems(entry->historyItems()); + + return entry.take(); + } + + void writeVaultToDatabase(const QJsonObject& vault, QSharedPointer db) + { + if (!vault.contains("folders") || !vault.contains("items")) { + // Early out if the vault is missing critical items + return; + } + + // Create groups from folders and store a temporary map of id -> uuid + QMap folderMap; + for (const auto& folder : vault.value("folders").toArray()) { + auto group = new Group(); + group->setUuid(QUuid::createUuid()); + group->setName(folder.toObject().value("name").toString()); + group->setParent(db->rootGroup()); + + folderMap.insert(folder.toObject().value("id").toString(), group); + } + + QString folderId; + const auto items = vault.value("items").toArray(); + for (const auto& item : items) { + auto entry = readItem(item.toObject(), folderId); + if (entry) { + entry->setGroup(folderMap.value(folderId, db->rootGroup()), false); + } + } + } +} // namespace + +bool BitwardenReader::hasError() +{ + return !m_error.isEmpty(); +} + +QString BitwardenReader::errorString() +{ + return m_error; +} + +QSharedPointer BitwardenReader::convert(const QString& path, const QString& password) +{ + m_error.clear(); + + QFileInfo fileinfo(path); + if (!fileinfo.exists()) { + m_error = QObject::tr("File does not exist.").arg(path); + return {}; + } + + // Bitwarden uses a json file format + QFile file(fileinfo.absoluteFilePath()); + if (!file.open(QFile::ReadOnly)) { + m_error = QObject::tr("Cannot open file: %1").arg(file.errorString()); + return {}; + } + + QJsonParseError error; + auto json = QJsonDocument::fromJson(file.readAll(), &error).object(); + if (error.error != QJsonParseError::NoError) { + m_error = + QObject::tr("Cannot parse file: %1 at position %2").arg(error.errorString(), QString::number(error.offset)); + return {}; + } + + file.close(); + + // Check if this is an encrypted json + if (json.contains("encrypted") && json.value("encrypted").toBool()) { + auto buildError = [](const QString& errorString) { + return QObject::tr("Failed to decrypt json file: %1").arg(errorString); + }; + + QByteArray key(32, '\0'); + auto salt = json.value("salt").toString().toUtf8(); + + auto pwd_fam = Botan::PasswordHashFamily::create_or_throw("PBKDF2(SHA-256)"); + auto kdf = Botan::KDF::create_or_throw("HKDF-Expand(SHA-256)"); + + // Derive the Master Key + auto pwd_hash = pwd_fam->from_params(json.value("kdfIterations").toInt()); + pwd_hash->derive_key(reinterpret_cast(key.data()), + key.size(), + password.toUtf8().data(), + password.toUtf8().size(), + reinterpret_cast(salt.data()), + salt.size()); + // Derive the MAC Key + auto stretched_mac = kdf->derive_key(32, reinterpret_cast(key.data()), key.size(), "", "mac"); + auto mac = QByteArray(reinterpret_cast(stretched_mac.data()), stretched_mac.size()); + + // Stretch the Master Key + auto stretched_key = kdf->derive_key(32, reinterpret_cast(key.data()), key.size(), "", "enc"); + key = QByteArray(reinterpret_cast(stretched_key.data()), stretched_key.size()); + + // Validate the encryption key + auto keyList = json.value("encKeyValidation_DO_NOT_EDIT").toString().split("."); + if (keyList.size() < 2) { + m_error = buildError(QObject::tr("Invalid encKeyValidation field")); + return {}; + } + auto cipherList = keyList[1].split("|"); + if (cipherList.size() < 3) { + m_error = buildError(QObject::tr("Invalid cipher list within encKeyValidation field")); + return {}; + } + CryptoHash hash(CryptoHash::Sha256, true); + hash.setKey(mac); + hash.addData(QByteArray::fromBase64(cipherList[0].toUtf8())); // iv + hash.addData(QByteArray::fromBase64(cipherList[1].toUtf8())); // ciphertext + if (hash.result().toBase64() != cipherList[2].toUtf8()) { + // Calculated MAC doesn't equal the Validation + m_error = buildError(QObject::tr("Wrong password")); + return {}; + } + + // Decrypt data field using AES-256-CBC + keyList = json.value("data").toString().split("."); + if (keyList.size() < 2) { + m_error = buildError(QObject::tr("Invalid encrypted data field")); + return {}; + } + cipherList = keyList[1].split("|"); + if (cipherList.size() < 2) { + m_error = buildError(QObject::tr("Invalid cipher list within encrypted data field")); + return {}; + } + auto iv = QByteArray::fromBase64(cipherList[0].toUtf8()); + auto data = QByteArray::fromBase64(cipherList[1].toUtf8()); + + SymmetricCipher cipher; + if (!cipher.init(SymmetricCipher::Aes256_CBC, SymmetricCipher::Decrypt, key, iv)) { + m_error = buildError(QObject::tr("Cannot initialize cipher")); + return {}; + } + if (!cipher.finish(data)) { + m_error = buildError(QObject::tr("Cannot decrypt data")); + return {}; + } + + json = QJsonDocument::fromJson(data, &error).object(); + if (error.error != QJsonParseError::NoError) { + m_error = buildError(error.errorString()); + return {}; + } + } + + auto db = QSharedPointer::create(); + db->rootGroup()->setName(QObject::tr("Bitwarden Import")); + + writeVaultToDatabase(json, db); + + return db; +} diff --git a/src/format/BitwardenReader.h b/src/format/BitwardenReader.h new file mode 100644 index 000000000..52e1e6f70 --- /dev/null +++ b/src/format/BitwardenReader.h @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef BITWARDEN_READER_H +#define BITWARDEN_READER_H + +#include + +class Database; + +/*! + * Imports a Bitwarden vault in JSON format: https://bitwarden.com/help/encrypted-export/ + */ +class BitwardenReader +{ +public: + explicit BitwardenReader() = default; + ~BitwardenReader() = default; + + QSharedPointer convert(const QString& path, const QString& password = {}); + + bool hasError(); + QString errorString(); + +private: + QString m_error; +}; + +#endif // BITWARDEN_READER_H diff --git a/src/format/CsvParser.cpp b/src/format/CsvParser.cpp index a376e3662..0e174fe35 100644 --- a/src/format/CsvParser.cpp +++ b/src/format/CsvParser.cpp @@ -24,20 +24,13 @@ #include "core/Tools.h" CsvParser::CsvParser() - : m_ch(0) - , m_comment('#') - , m_currCol(1) - , m_currRow(1) + : m_comment('#') , m_isBackslashSyntax(false) - , m_isEof(false) , m_isFileLoaded(false) - , m_isGood(true) - , m_lastPos(-1) - , m_maxCols(0) , m_qualifier('"') , m_separator(',') - , m_statusMsg("") { + reset(); m_csv.setBuffer(&m_array); m_ts.setDevice(&m_csv); m_csv.open(QIODevice::ReadOnly); @@ -105,10 +98,10 @@ void CsvParser::reset() m_isGood = true; m_lastPos = -1; m_maxCols = 0; - m_statusMsg = ""; + m_statusMsg.clear(); m_ts.seek(0); m_table.clear(); - // the following are users' concern :) + // the following can be overridden by the user // m_comment = '#'; // m_backslashSyntax = false; // m_comment = '#'; @@ -148,7 +141,7 @@ void CsvParser::parseRecord() do { parseField(row); getChar(m_ch); - } while (isSeparator(m_ch) && !m_isEof); + } while (m_ch == m_separator && !m_isEof); if (!m_isEof) { ungetChar(); @@ -168,7 +161,7 @@ void CsvParser::parseField(CsvRow& row) { QString field; peek(m_ch); - if (!isTerminator(m_ch)) { + if (m_ch != m_separator && m_ch != '\n' && m_ch != '\r') { if (isQualifier(m_ch)) { parseQuoted(field); } else { @@ -182,7 +175,7 @@ void CsvParser::parseSimple(QString& s) { QChar c; getChar(c); - while ((isText(c)) && (!m_isEof)) { + while (c != '\n' && c != m_separator && !m_isEof) { s.append(c); getChar(c); } @@ -215,7 +208,7 @@ void CsvParser::parseEscaped(QString& s) void CsvParser::parseEscapedText(QString& s) { getChar(m_ch); - while ((!isQualifier(m_ch)) && !m_isEof) { + while (!isQualifier(m_ch) && !m_isEof) { s.append(m_ch); getChar(m_ch); } @@ -223,10 +216,9 @@ void CsvParser::parseEscapedText(QString& s) bool CsvParser::processEscapeMark(QString& s, QChar c) { - QChar buf; - peek(buf); QChar c2; - if (true == m_isBackslashSyntax) { + peek(c2); + if (m_isBackslashSyntax) { // escape-character syntax, e.g. \" if (c != '\\') { return false; @@ -237,25 +229,24 @@ bool CsvParser::processEscapeMark(QString& s, QChar c) c2 = '\\'; s.append('\\'); return false; - } else { - s.append(c2); - return true; - } - } else { - // double quote syntax, e.g. "" - if (!isQualifier(c)) { - return false; - } - peek(c2); - if (!m_isEof) { // not EOF, can read one char - if (isQualifier(c2)) { - s.append(c2); - getChar(c2); - return true; - } } + s.append(c2); + return true; + } + + // double quote syntax, e.g. "" + if (!isQualifier(c)) { return false; } + peek(c2); + if (!m_isEof) { // not EOF, can read one char + if (isQualifier(c2)) { + s.append(c2); + getChar(c2); + return true; + } + } + return false; } void CsvParser::fillColumns() @@ -282,7 +273,7 @@ void CsvParser::skipLine() bool CsvParser::skipEndline() { getChar(m_ch); - return (m_ch == '\n'); + return m_ch == '\n'; } void CsvParser::getChar(QChar& c) @@ -312,11 +303,10 @@ void CsvParser::peek(QChar& c) bool CsvParser::isQualifier(const QChar& c) const { - if (true == m_isBackslashSyntax && (c != m_qualifier)) { - return (c == '\\'); - } else { - return (c == m_qualifier); + if (m_isBackslashSyntax && c != m_qualifier) { + return c == '\\'; } + return c == m_qualifier; } bool CsvParser::isComment() @@ -327,7 +317,7 @@ bool CsvParser::isComment() do { getChar(c2); - } while ((isSpace(c2) || isTab(c2)) && (!m_isEof)); + } while ((c2 == ' ' || c2 == '\t') && !m_isEof); if (c2 == m_comment) { result = true; @@ -336,47 +326,16 @@ bool CsvParser::isComment() return result; } -bool CsvParser::isText(QChar c) const -{ - return !((isCRLF(c)) || (isSeparator(c))); -} - bool CsvParser::isEmptyRow(const CsvRow& row) const { - CsvRow::const_iterator it = row.constBegin(); - for (; it != row.constEnd(); ++it) { - if (((*it) != "\n") && ((*it) != "")) { + for (auto it = row.constBegin(); it != row.constEnd(); ++it) { + if (*it != "\n" && *it != "") { return false; } } return true; } -bool CsvParser::isCRLF(const QChar& c) const -{ - return (c == '\n'); -} - -bool CsvParser::isSpace(const QChar& c) const -{ - return (c == ' '); -} - -bool CsvParser::isTab(const QChar& c) const -{ - return (c == '\t'); -} - -bool CsvParser::isSeparator(const QChar& c) const -{ - return (c == m_separator); -} - -bool CsvParser::isTerminator(const QChar& c) const -{ - return (isSeparator(c) || (c == '\n') || (c == '\r')); -} - void CsvParser::setBackslashSyntax(bool set) { m_isBackslashSyntax = set; @@ -407,7 +366,7 @@ int CsvParser::getFileSize() const return m_csv.size(); } -const CsvTable CsvParser::getCsvTable() const +CsvTable CsvParser::getCsvTable() const { return m_table; } @@ -421,9 +380,8 @@ int CsvParser::getCsvCols() const { if (!m_table.isEmpty() && !m_table.at(0).isEmpty()) { return m_table.at(0).size(); - } else { - return 0; } + return 0; } int CsvParser::getCsvRows() const diff --git a/src/format/CsvParser.h b/src/format/CsvParser.h index 73fb13d24..afba9688d 100644 --- a/src/format/CsvParser.h +++ b/src/format/CsvParser.h @@ -47,7 +47,7 @@ public: int getCsvRows() const; int getCsvCols() const; QString getStatus() const; - const CsvTable getCsvTable() const; + CsvTable getCsvTable() const; protected: CsvTable m_table; @@ -74,15 +74,9 @@ private: void ungetChar(); void peek(QChar& c); void fillColumns(); - bool isTerminator(const QChar& c) const; - bool isSeparator(const QChar& c) const; bool isQualifier(const QChar& c) const; bool processEscapeMark(QString& s, QChar c); - bool isText(QChar c) const; bool isComment(); - bool isCRLF(const QChar& c) const; - bool isSpace(const QChar& c) const; - bool isTab(const QChar& c) const; bool isEmptyRow(const CsvRow& row) const; bool parseFile(); void parseRecord(); diff --git a/src/format/Kdbx4Writer.cpp b/src/format/Kdbx4Writer.cpp index 08a0df013..d8f412b05 100644 --- a/src/format/Kdbx4Writer.cpp +++ b/src/format/Kdbx4Writer.cpp @@ -19,10 +19,14 @@ #include +#include "config-keepassx.h" #include "crypto/CryptoHash.h" #include "crypto/Random.h" -#include "format/KdbxXmlWriter.h" #include "format/KeePass2RandomStream.h" +#ifdef WITH_XC_KEESHARE +#include "keeshare/KeeShare.h" +#include "keeshare/KeeShareSettings.h" +#endif #include "streams/HmacBlockStream.h" #include "streams/SymmetricCipherStream.h" #include "streams/qtiocompressor.h" @@ -156,7 +160,7 @@ bool Kdbx4Writer::writeDatabase(QIODevice* device, Database* db) writeInnerHeaderField(outputDevice, KeePass2::InnerHeaderFieldID::InnerRandomStreamKey, protectedStreamKey)); // Write attachments to the inner header - writeAttachments(outputDevice, db); + auto idxMap = writeAttachments(outputDevice, db); CHECK_RETURN_FALSE(writeInnerHeaderField(outputDevice, KeePass2::InnerHeaderFieldID::End, QByteArray())); @@ -166,7 +170,7 @@ bool Kdbx4Writer::writeDatabase(QIODevice* device, Database* db) return false; } - KdbxXmlWriter xmlWriter(db->formatVersion()); + KdbxXmlWriter xmlWriter(db->formatVersion(), idxMap); xmlWriter.writeDatabase(outputDevice, db, &randomStream, headerHash); // Explicitly close/reset streams so they are flushed and we can detect @@ -211,25 +215,42 @@ bool Kdbx4Writer::writeInnerHeaderField(QIODevice* device, KeePass2::InnerHeader return true; } -void Kdbx4Writer::writeAttachments(QIODevice* device, Database* db) +KdbxXmlWriter::BinaryIdxMap Kdbx4Writer::writeAttachments(QIODevice* device, Database* db) { const QList allEntries = db->rootGroup()->entriesRecursive(true); - QSet writtenAttachments; + QHash writtenAttachments; + KdbxXmlWriter::BinaryIdxMap idxMap; + qint64 nextIdx = 0; - for (Entry* entry : allEntries) { + for (const Entry* entry : allEntries) { const QList attachmentKeys = entry->attachments()->keys(); for (const QString& key : attachmentKeys) { QByteArray data("\x01"); data.append(entry->attachments()->value(key)); - if (writtenAttachments.contains(data)) { - continue; + CryptoHash hash(CryptoHash::Sha256); +#ifdef WITH_XC_KEESHARE + // Namespace KeeShare attachments so they don't get deduplicated together with attachments + // from other databases. Prevents potential filesize side channels. + if (auto shared = KeeShare::resolveSharedGroup(entry->group())) { + hash.addData(KeeShare::referenceOf(shared).uuid.toByteArray()); + } else { + hash.addData(db->uuid().toByteArray()); } +#endif + hash.addData(data); - writeInnerHeaderField(device, KeePass2::InnerHeaderFieldID::Binary, data); - writtenAttachments.insert(data); + // Deduplicate attachments with the same hash + const auto hashResult = hash.result(); + if (!writtenAttachments.contains(hashResult)) { + writeInnerHeaderField(device, KeePass2::InnerHeaderFieldID::Binary, data); + writtenAttachments.insert(hashResult, nextIdx++); + } + idxMap.insert(qMakePair(entry, key), writtenAttachments[hashResult]); } } + + return idxMap; } /** diff --git a/src/format/Kdbx4Writer.h b/src/format/Kdbx4Writer.h index c8540245b..7b6af2f5d 100644 --- a/src/format/Kdbx4Writer.h +++ b/src/format/Kdbx4Writer.h @@ -19,6 +19,7 @@ #define KEEPASSX_KDBX4WRITER_H #include "KdbxWriter.h" +#include "format/KdbxXmlWriter.h" /** * KDBX4 writer implementation. @@ -32,7 +33,7 @@ public: private: bool writeInnerHeaderField(QIODevice* device, KeePass2::InnerHeaderFieldID fieldId, const QByteArray& data); - void writeAttachments(QIODevice* device, Database* db); + KdbxXmlWriter::BinaryIdxMap writeAttachments(QIODevice* device, Database* db); static bool serializeVariantMap(const QVariantMap& map, QByteArray& outputBytes); }; diff --git a/src/format/KdbxXmlReader.cpp b/src/format/KdbxXmlReader.cpp index e66e12174..a610cddb1 100644 --- a/src/format/KdbxXmlReader.cpp +++ b/src/format/KdbxXmlReader.cpp @@ -463,8 +463,7 @@ bool KdbxXmlReader::parseRoot() Group* rootGroup = parseGroup(); if (rootGroup) { - Group* oldRoot = m_db->rootGroup(); - m_db->setRootGroup(rootGroup); + auto oldRoot = m_db->setRootGroup(rootGroup); delete oldRoot; groupParsedSuccessfully = true; } diff --git a/src/format/KdbxXmlWriter.cpp b/src/format/KdbxXmlWriter.cpp index 35ed5ffdb..53a7bfae9 100644 --- a/src/format/KdbxXmlWriter.cpp +++ b/src/format/KdbxXmlWriter.cpp @@ -19,9 +19,13 @@ #include #include +#include #include "core/Endian.h" +#include "crypto/CryptoHash.h" #include "format/KeePass2RandomStream.h" +#include "keeshare/KeeShare.h" +#include "keeshare/KeeShareSettings.h" #include "streams/qtiocompressor.h" /** @@ -29,6 +33,15 @@ */ KdbxXmlWriter::KdbxXmlWriter(quint32 version) : m_kdbxVersion(version) +{ + Q_ASSERT_X(m_kdbxVersion < KeePass2::FILE_VERSION_4, + "KDBX version", + "KDBX version >= 4 requires explicit binary index map."); +} + +KdbxXmlWriter::KdbxXmlWriter(quint32 version, KdbxXmlWriter::BinaryIdxMap binaryIdxMap) + : m_kdbxVersion(version) + , m_binaryIdxMap(std::move(binaryIdxMap)) { } @@ -46,7 +59,9 @@ void KdbxXmlWriter::writeDatabase(QIODevice* device, m_xml.setAutoFormattingIndent(-1); // 1 tab m_xml.setCodec("UTF-8"); - generateIdMap(); + if (m_kdbxVersion < KeePass2::FILE_VERSION_4) { + fillBinaryIdxMap(); + } m_xml.setDevice(device); m_xml.writeStartDocument("1.0", true); @@ -80,18 +95,38 @@ QString KdbxXmlWriter::errorString() return m_errorStr; } -void KdbxXmlWriter::generateIdMap() +/** + * Generate a map of entry attachments to deduplicated attachment index IDs. + * This is basically duplicated code from Kdbx4Writer.cpp for KDBX 3 compatibility. + * I don't have a good solution for getting rid of this duplication without getting rid of KDBX 3. + */ +void KdbxXmlWriter::fillBinaryIdxMap() { const QList allEntries = m_db->rootGroup()->entriesRecursive(true); - int nextId = 0; + QHash writtenAttachments; + qint64 nextIdx = 0; for (Entry* entry : allEntries) { const QList attachmentKeys = entry->attachments()->keys(); for (const QString& key : attachmentKeys) { QByteArray data = entry->attachments()->value(key); - if (!m_idMap.contains(data)) { - m_idMap.insert(data, nextId++); + CryptoHash hash(CryptoHash::Sha256); +#ifdef WITH_XC_KEESHARE + // Namespace KeeShare attachments so they don't get deduplicated together with attachments + // from other databases. Prevents potential filesize side channels. + if (auto shared = KeeShare::resolveSharedGroup(entry->group())) { + hash.addData(KeeShare::referenceOf(shared).uuid.toByteArray()); + } else { + hash.addData(m_db->uuid().toByteArray()); } +#endif + hash.addData(data); + + const auto hashResult = hash.result(); + if (!writtenAttachments.contains(hashResult)) { + writtenAttachments.insert(hashResult, nextIdx++); + } + m_binaryIdxMap.insert(qMakePair(entry, key), writtenAttachments.value(hashResult)); } } } @@ -181,13 +216,19 @@ void KdbxXmlWriter::writeIcon(const QUuid& uuid, const Metadata::CustomIconData& void KdbxXmlWriter::writeBinaries() { + // Reverse binary index map + QMap binaries; + for (auto i = m_binaryIdxMap.constBegin(); i != m_binaryIdxMap.constEnd(); ++i) { + if (!binaries.contains(i.value())) { + binaries.insert(i.value(), i.key().first->attachments()->value(i.key().second)); + } + } + m_xml.writeStartElement("Binaries"); - QHash::const_iterator i; - for (i = m_idMap.constBegin(); i != m_idMap.constEnd(); ++i) { + for (auto i = binaries.constBegin(); i != binaries.constEnd(); ++i) { m_xml.writeStartElement("Binary"); - - m_xml.writeAttribute("ID", QString::number(i.value())); + m_xml.writeAttribute("ID", QString::number(i.key())); QByteArray data; if (m_db->compressionAlgorithm() == Database::CompressionGZip) { @@ -200,15 +241,15 @@ void KdbxXmlWriter::writeBinaries() compressor.setStreamFormat(QtIOCompressor::GzipFormat); compressor.open(QIODevice::WriteOnly); - qint64 bytesWritten = compressor.write(i.key()); - Q_ASSERT(bytesWritten == i.key().size()); + qint64 bytesWritten = compressor.write(i.value()); + Q_ASSERT(bytesWritten == i.value().size()); Q_UNUSED(bytesWritten); compressor.close(); buffer.seek(0); data = buffer.readAll(); } else { - data = i.key(); + data = i.value(); } if (!data.isEmpty()) { @@ -422,7 +463,7 @@ void KdbxXmlWriter::writeEntry(const Entry* entry) writeString("Key", key); m_xml.writeStartElement("Value"); - m_xml.writeAttribute("Ref", QString::number(m_idMap[entry->attachments()->value(key)])); + m_xml.writeAttribute("Ref", QString::number(m_binaryIdxMap[qMakePair(entry, key)])); m_xml.writeEndElement(); m_xml.writeEndElement(); diff --git a/src/format/KdbxXmlWriter.h b/src/format/KdbxXmlWriter.h index 181e007ba..d36151942 100644 --- a/src/format/KdbxXmlWriter.h +++ b/src/format/KdbxXmlWriter.h @@ -30,7 +30,13 @@ class KeePass2RandomStream; class KdbxXmlWriter { public: + /** + * Map of entry + attachment key to KDBX 4 inner header binary index. + */ + typedef QHash, qint64> BinaryIdxMap; + explicit KdbxXmlWriter(quint32 version); + explicit KdbxXmlWriter(quint32 version, KdbxXmlWriter::BinaryIdxMap binaryIdxMap); void writeDatabase(QIODevice* device, const Database* db, @@ -43,7 +49,7 @@ public: QString errorString(); private: - void generateIdMap(); + void fillBinaryIdxMap(); void writeMetadata(); void writeMemoryProtection(); @@ -85,7 +91,7 @@ private: QPointer m_db; QPointer m_meta; KeePass2RandomStream* m_randomStream = nullptr; - QHash m_idMap; + BinaryIdxMap m_binaryIdxMap; QByteArray m_headerHash; bool m_error = false; diff --git a/src/format/KeePass1Reader.cpp b/src/format/KeePass1Reader.cpp index 0b7f168a4..1461b22c5 100644 --- a/src/format/KeePass1Reader.cpp +++ b/src/format/KeePass1Reader.cpp @@ -18,6 +18,7 @@ #include "KeePass1Reader.h" #include +#include #include #include "core/Endian.h" @@ -275,6 +276,10 @@ KeePass1Reader::readDatabase(const QString& filename, const QString& password, c return {}; } + if (db) { + db->metadata()->setName(QFileInfo(filename).completeBaseName()); + } + return db; } diff --git a/src/format/KeePass2.cpp b/src/format/KeePass2.cpp index bf991f880..b19316741 100644 --- a/src/format/KeePass2.cpp +++ b/src/format/KeePass2.cpp @@ -47,16 +47,12 @@ const QString KeePass2::KDFPARAM_ARGON2_VERSION("V"); const QString KeePass2::KDFPARAM_ARGON2_SECRET("K"); const QString KeePass2::KDFPARAM_ARGON2_ASSOCDATA("A"); -const QList> KeePass2::CIPHERS{ - qMakePair(KeePass2::CIPHER_AES256, QObject::tr("AES 256-bit")), - qMakePair(KeePass2::CIPHER_TWOFISH, QObject::tr("Twofish 256-bit")), - qMakePair(KeePass2::CIPHER_CHACHA20, QObject::tr("ChaCha20 256-bit"))}; +const QList KeePass2::CIPHERS{KeePass2::CIPHER_AES256, KeePass2::CIPHER_TWOFISH, KeePass2::CIPHER_CHACHA20}; -const QList> KeePass2::KDFS{ - qMakePair(KeePass2::KDF_ARGON2D, QObject::tr("Argon2d (KDBX 4 – recommended)")), - qMakePair(KeePass2::KDF_ARGON2ID, QObject::tr("Argon2id (KDBX 4)")), - qMakePair(KeePass2::KDF_AES_KDBX4, QObject::tr("AES-KDF (KDBX 4)")), - qMakePair(KeePass2::KDF_AES_KDBX3, QObject::tr("AES-KDF (KDBX 3)"))}; +const QList KeePass2::KDFS{KeePass2::KDF_ARGON2D, + KeePass2::KDF_ARGON2ID, + KeePass2::KDF_AES_KDBX4, + KeePass2::KDF_AES_KDBX3}; QByteArray KeePass2::hmacKey(const QByteArray& masterSeed, const QByteArray& transformedMasterKey) { @@ -133,3 +129,29 @@ KeePass2::ProtectedStreamAlgo KeePass2::idToProtectedStreamAlgo(quint32 id) return KeePass2::ProtectedStreamAlgo::InvalidProtectedStreamAlgo; } } + +QString KeePass2::cipherToString(QUuid cipherUuid) +{ + if (cipherUuid == KeePass2::CIPHER_AES256) { + return QObject::tr("AES 256-bit"); + } else if (cipherUuid == KeePass2::CIPHER_TWOFISH) { + return QObject::tr("Twofish 256-bit"); + } else if (cipherUuid == KeePass2::CIPHER_CHACHA20) { + return QObject::tr("ChaCha20 256-bit"); + } + return QObject::tr("Invalid Cipher"); +} + +QString KeePass2::kdfToString(QUuid kdfUuid) +{ + if (kdfUuid == KeePass2::KDF_ARGON2D) { + return QObject::tr("Argon2d (KDBX 4 – recommended)"); + } else if (kdfUuid == KeePass2::KDF_ARGON2ID) { + return QObject::tr("Argon2id (KDBX 4)"); + } else if (kdfUuid == KeePass2::KDF_AES_KDBX4) { + return QObject::tr("AES-KDF (KDBX 4)"); + } else if (kdfUuid == KDF_AES_KDBX3) { + return QObject::tr("AES-KDF (KDBX 3)"); + } + return QObject::tr("Invalid KDF"); +} diff --git a/src/format/KeePass2.h b/src/format/KeePass2.h index 5aed903c3..1d18a18ba 100644 --- a/src/format/KeePass2.h +++ b/src/format/KeePass2.h @@ -26,7 +26,6 @@ class Kdf; namespace KeePass2 { - constexpr quint32 SIGNATURE_1 = 0x9AA2D903; constexpr quint32 SIGNATURE_2 = 0xB54BFB67; @@ -67,8 +66,8 @@ namespace KeePass2 extern const QString KDFPARAM_ARGON2_SECRET; extern const QString KDFPARAM_ARGON2_ASSOCDATA; - extern const QList> CIPHERS; - extern const QList> KDFS; + extern const QList CIPHERS; + extern const QList KDFS; enum class HeaderFieldID { @@ -130,7 +129,8 @@ namespace KeePass2 QVariantMap kdfToParameters(const QSharedPointer& kdf); QSharedPointer uuidToKdf(const QUuid& uuid); ProtectedStreamAlgo idToProtectedStreamAlgo(quint32 id); - + QString cipherToString(QUuid cipherUuid); + QString kdfToString(QUuid kdfUuid); } // namespace KeePass2 #endif // KEEPASSX_KEEPASS2_H diff --git a/src/format/OPUXReader.cpp b/src/format/OPUXReader.cpp new file mode 100644 index 000000000..d52aa4640 --- /dev/null +++ b/src/format/OPUXReader.cpp @@ -0,0 +1,288 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "OPUXReader.h" + +#include "core/Database.h" +#include "core/Entry.h" +#include "core/Group.h" +#include "core/Metadata.h" +#include "core/Totp.h" + +#include +#include +#include +#include +#include +#include + +#include + +namespace +{ + QByteArray extractFile(unzFile uf, QString filename) + { + if (unzLocateFile(uf, filename.toLatin1(), 2) != UNZ_OK) { + qWarning("Failed to extract 1PUX document: %s", qPrintable(filename)); + return {}; + } + + // Read export.data into memory + int bytes, bytesRead = 0; + QByteArray data; + unzOpenCurrentFile(uf); + do { + data.resize(data.size() + 8192); + bytes = unzReadCurrentFile(uf, data.data() + bytesRead, 8192); + if (bytes > 0) { + bytesRead += bytes; + } + } while (bytes > 0); + unzCloseCurrentFile(uf); + data.truncate(bytesRead); + + return data; + } + + Entry* readItem(const QJsonObject& item, unzFile uf = nullptr) + { + const auto itemMap = item.toVariantMap(); + const auto overviewMap = itemMap.value("overview").toMap(); + const auto detailsMap = itemMap.value("details").toMap(); + + // Create entry and assign basic values + QScopedPointer entry(new Entry()); + entry->setUuid(QUuid::createUuid()); + entry->setTitle(overviewMap.value("title").toString()); + entry->setUrl(overviewMap.value("url").toString()); + if (overviewMap.contains("urls")) { + int i = 1; + for (const auto& urlRaw : overviewMap.value("urls").toList()) { + const auto urlMap = urlRaw.toMap(); + const auto url = urlMap.value("url").toString(); + if (entry->url() != url) { + entry->attributes()->set( + QString("%1_%2").arg(EntryAttributes::AdditionalUrlAttribute, QString::number(i)), url); + ++i; + } + } + } + if (overviewMap.contains("tags")) { + entry->setTags(overviewMap.value("tags").toStringList().join(",")); + } + if (itemMap.value("favIndex").toString() == "1") { + entry->addTag(QObject::tr("Favorite", "Tag for favorite entries")); + } + if (itemMap.value("state").toString() == "archived") { + entry->addTag(QObject::tr("Archived", "Tag for archived entries")); + } + + // Parse the details map by setting the username, password, and notes first + const auto loginFields = detailsMap.value("loginFields").toList(); + for (const auto& field : loginFields) { + const auto fieldMap = field.toMap(); + const auto designation = fieldMap.value("designation").toString(); + if (designation.compare("username", Qt::CaseInsensitive) == 0) { + entry->setUsername(fieldMap.value("value").toString()); + } else if (designation.compare("password", Qt::CaseInsensitive) == 0) { + entry->setPassword(fieldMap.value("value").toString()); + } + } + entry->setNotes(detailsMap.value("notesPlain").toString()); + + // Dive into the item sections to pull out advanced attributes + const auto sections = detailsMap.value("sections").toList(); + for (const auto& section : sections) { + // Derive a prefix for attribute names using the title or uuid if missing + const auto sectionMap = section.toMap(); + auto prefix = sectionMap.value("title").toString(); + if (prefix.isEmpty()) { + prefix = QUuid::createUuid().toString().mid(1, 5); + } + + for (const auto& field : sectionMap.value("fields").toList()) { + // Form the name of the attribute using the prefix and title or id + const auto fieldMap = field.toMap(); + auto name = fieldMap.value("title").toString(); + if (name.isEmpty()) { + name = fieldMap.value("id").toString(); + } + name = QString("%1_%2").arg(prefix, name); + + const auto valueMap = fieldMap.value("value").toMap(); + const auto key = valueMap.firstKey(); + if (key == "totp") { + // Build otpauth url + QUrl otpurl(QString("otpauth://totp/%1:%2?secret=%3") + .arg(entry->title(), entry->username(), valueMap.value(key).toString())); + + if (entry->hasTotp()) { + // Store multiple TOTP definitions as additional otp attributes + int i = 0; + name = "otp"; + const auto attributes = entry->attributes()->keys(); + while (attributes.contains(name)) { + name = QString("otp_%1").arg(++i); + } + entry->attributes()->set(name, otpurl.toEncoded(), true); + } else { + // First otp value encountered gets formal storage + entry->setTotp(Totp::parseSettings(otpurl.toEncoded())); + } + } else if (key == "file") { + // Add a file to the entry attachments + const auto fileMap = valueMap.value(key).toMap(); + const auto fileName = fileMap.value("fileName").toString(); + const auto docId = fileMap.value("documentId").toString(); + const auto data = extractFile(uf, QString("files/%1__%2").arg(docId, fileName)); + if (!data.isNull()) { + entry->attachments()->set(fileName, data); + } + } else { + auto value = valueMap.value(key).toString(); + if (key == "date") { + // Convert date fields from Unix time + value = QDateTime::fromSecsSinceEpoch(valueMap.value(key).toULongLong(), Qt::UTC).toString(); + } else if (key == "email") { + // Email address is buried in a sub-value + value = valueMap.value(key).toMap().value("email_address").toString(); + } else if (key == "address") { + // Combine all the address attributes into a fully formed structure + const auto address = valueMap.value(key).toMap(); + value = address.value("street").toString() + "\n" + address.value("city").toString() + ", " + + address.value("state").toString() + " " + address.value("zip").toString() + "\n" + + address.value("country").toString(); + } + + if (!value.isEmpty()) { + entry->attributes()->set(name, value, key == "concealed"); + } + } + } + } + + // Add a document attachment if defined + if (detailsMap.contains("documentAttributes")) { + const auto document = detailsMap.value("documentAttributes").toMap(); + const auto fileName = document.value("fileName").toString(); + const auto docId = document.value("documentId").toString(); + const auto data = extractFile(uf, QString("files/%1__%2").arg(docId, fileName)); + if (!data.isNull()) { + entry->attachments()->set(fileName, data); + } + } + + // Collapse any accumulated history + entry->removeHistoryItems(entry->historyItems()); + + // Adjust the created and modified times + auto timeInfo = entry->timeInfo(); + const auto createdTime = QDateTime::fromSecsSinceEpoch(itemMap.value("createdAt").toULongLong(), Qt::UTC); + const auto modifiedTime = QDateTime::fromSecsSinceEpoch(itemMap.value("updatedAt").toULongLong(), Qt::UTC); + timeInfo.setCreationTime(createdTime); + timeInfo.setLastModificationTime(modifiedTime); + timeInfo.setLastAccessTime(modifiedTime); + entry->setTimeInfo(timeInfo); + + return entry.take(); + } + + void writeVaultToDatabase(const QJsonObject& vault, QSharedPointer db, unzFile uf = nullptr) + { + if (!vault.contains("attrs") || !vault.contains("items")) { + // Early out if the vault is missing critical items + return; + } + + const auto attr = vault.value("attrs").toObject().toVariantMap(); + + // Create group and assign basic values + auto group = new Group(); + group->setUuid(QUuid::createUuid()); + group->setName(attr.value("name").toString()); + group->setParent(db->rootGroup()); + + const auto items = vault.value("items").toArray(); + for (const auto& item : items) { + auto entry = readItem(item.toObject(), uf); + if (entry) { + entry->setGroup(group, false); + } + } + + // Add the group icon if present + const auto icon = attr.value("avatar").toString(); + if (!icon.isEmpty()) { + auto data = extractFile(uf, QString("files/%1").arg(icon)); + if (!data.isNull()) { + const auto uuid = QUuid::createUuid(); + db->metadata()->addCustomIcon(uuid, data); + group->setIcon(uuid); + } + } + } +} // namespace + +bool OPUXReader::hasError() +{ + return !m_error.isEmpty(); +} + +QString OPUXReader::errorString() +{ + return m_error; +} + +QSharedPointer OPUXReader::convert(const QString& path) +{ + m_error.clear(); + + QFileInfo fileinfo(path); + if (!fileinfo.exists()) { + m_error = QObject::tr("File does not exist.").arg(path); + return {}; + } + + // 1PUX is a zip file format, open it and process the contents in memory + auto uf = unzOpen64(fileinfo.absoluteFilePath().toLatin1().constData()); + if (!uf) { + m_error = QObject::tr("Invalid 1PUX file format: Not a valid ZIP file."); + return {}; + } + + // Find the export.data file, if not found this isn't a 1PUX file + auto data = extractFile(uf, "export.data"); + if (data.isNull()) { + m_error = QObject::tr("Invalid 1PUX file format: Missing export.data"); + unzClose(uf); + return {}; + } + + auto db = QSharedPointer::create(); + db->rootGroup()->setName(QObject::tr("1Password Import")); + const auto json = QJsonDocument::fromJson(data); + + const auto account = json.object().value("accounts").toArray().first().toObject(); + const auto vaults = account.value("vaults").toArray(); + + for (const auto& vault : vaults) { + writeVaultToDatabase(vault.toObject(), db, uf); + } + + unzClose(uf); + return db; +} diff --git a/src/gui/OpVaultOpenWidget.h b/src/format/OPUXReader.h similarity index 58% rename from src/gui/OpVaultOpenWidget.h rename to src/format/OPUXReader.h index aed96caba..e2779c814 100644 --- a/src/gui/OpVaultOpenWidget.h +++ b/src/format/OPUXReader.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019 KeePassXC Team + * Copyright (C) 2023 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,20 +15,29 @@ * along with this program. If not, see . */ -#ifndef KEEPASSXC_OPVAULTOPENWIDGET_H -#define KEEPASSXC_OPVAULTOPENWIDGET_H +#ifndef OPUX_READER_H +#define OPUX_READER_H -#include "gui/DatabaseOpenWidget.h" +#include -class OpVaultOpenWidget : public DatabaseOpenWidget +class Database; + +/*! + * Imports a 1Password vault in 1PUX format: https://support.1password.com/1pux-format/ + */ +class OPUXReader { - Q_OBJECT - public: - explicit OpVaultOpenWidget(QWidget* parent = nullptr); + explicit OPUXReader() = default; + ~OPUXReader() = default; -protected: - void openDatabase() override; + QSharedPointer convert(const QString& path); + + bool hasError(); + QString errorString(); + +private: + QString m_error; }; -#endif // KEEPASSXC_OPVAULTOPENWIDGET_H +#endif // OPUX_READER_H diff --git a/src/format/OpVaultReader.cpp b/src/format/OpVaultReader.cpp index 201354bce..fa4034a00 100644 --- a/src/format/OpVaultReader.cpp +++ b/src/format/OpVaultReader.cpp @@ -31,7 +31,6 @@ OpVaultReader::OpVaultReader(QObject* parent) : QObject(parent) - , m_error(false) { } @@ -39,62 +38,44 @@ OpVaultReader::~OpVaultReader() { } -Database* OpVaultReader::readDatabase(QDir& opdataDir, const QString& password) +QSharedPointer OpVaultReader::convert(QDir& opdataDir, const QString& password) { if (!opdataDir.exists()) { - m_error = true; - m_errorStr = tr("Directory .opvault must exist"); - return nullptr; + m_error = tr("Directory .opvault must exist"); + return {}; } if (!opdataDir.isReadable()) { - m_error = true; - m_errorStr = tr("Directory .opvault must be readable"); - return nullptr; + m_error = tr("Directory .opvault must be readable"); + return {}; } // https://support.1password.com/opvault-design/#directory-layout QDir defaultDir = QDir(opdataDir); if (!defaultDir.cd("default")) { - m_error = true; - m_errorStr = tr("Directory .opvault/default must exist"); - return nullptr; + m_error = tr("Directory .opvault/default must exist"); + return {}; } if (!defaultDir.isReadable()) { - m_error = true; - m_errorStr = tr("Directory .opvault/default must be readable"); - return nullptr; + m_error = tr("Directory .opvault/default must be readable"); + return {}; } auto vaultName = opdataDir.dirName(); - auto key = QSharedPointer::create(); - key->addKey(QSharedPointer::create(password)); - - QScopedPointer db(new Database()); - db->setKdf(KeePass2::uuidToKdf(KeePass2::KDF_ARGON2D)); - db->setCipher(KeePass2::CIPHER_AES256); - db->setKey(key, true, false); - db->metadata()->setName(vaultName); - + auto db = QSharedPointer::create(); auto rootGroup = db->rootGroup(); - rootGroup->setTimeInfo({}); - rootGroup->setUpdateTimeinfo(false); rootGroup->setName(vaultName.remove(".opvault")); - rootGroup->setUuid(QUuid::createUuid()); populateCategoryGroups(rootGroup); QFile profileJsFile(defaultDir.absoluteFilePath("profile.js")); QJsonObject profileJson = readAndAssertJsonFile(profileJsFile, "var profile=", ";"); if (profileJson.isEmpty()) { - return nullptr; + return {}; } if (!processProfileJson(profileJson, password, rootGroup)) { zeroKeys(); - return nullptr; - } - if (profileJson.contains("uuid") and profileJson["uuid"].isString()) { - rootGroup->setUuid(Tools::hexToUuid(profileJson["uuid"].toString())); + return {}; } QFile foldersJsFile(defaultDir.filePath("folders.js")); @@ -102,7 +83,7 @@ Database* OpVaultReader::readDatabase(QDir& opdataDir, const QString& password) QJsonObject foldersJs = readAndAssertJsonFile(foldersJsFile, "loadFolders(", ");"); if (!processFolderJson(foldersJs, rootGroup)) { zeroKeys(); - return nullptr; + return {}; } } @@ -152,17 +133,17 @@ Database* OpVaultReader::readDatabase(QDir& opdataDir, const QString& password) } zeroKeys(); - return db.take(); + return db; } bool OpVaultReader::hasError() { - return m_error; + return !m_error.isEmpty(); } QString OpVaultReader::errorString() { - return m_errorStr; + return m_error; } bool OpVaultReader::processProfileJson(QJsonObject& profileJson, const QString& password, Group* rootGroup) @@ -184,38 +165,29 @@ bool OpVaultReader::processProfileJson(QJsonObject& profileJson, const QString& rootGroupTime.setLastModificationTime(QDateTime::fromTime_t(updatedAt, Qt::UTC)); rootGroup->setUuid(Tools::hexToUuid(profileJson["uuid"].toString())); - const auto derivedKeys = deriveKeysFromPassPhrase(salt, password, iterations); - if (derivedKeys->error) { - m_error = true; - m_errorStr = derivedKeys->errorStr; - delete derivedKeys; + QScopedPointer derivedKeys(deriveKeysFromPassPhrase(salt, password, iterations)); + if (!derivedKeys->error.isEmpty()) { + m_error = derivedKeys->error; return false; } QByteArray encKey = derivedKeys->encrypt; QByteArray hmacKey = derivedKeys->hmac; - delete derivedKeys; - auto masterKeys = decodeB64CompositeKeys(masterKeyB64, encKey, hmacKey); - if (masterKeys->error) { - m_error = true; - m_errorStr = masterKeys->errorStr; - delete masterKeys; + QScopedPointer masterKeys(decodeB64CompositeKeys(masterKeyB64, encKey, hmacKey)); + if (!masterKeys->error.isEmpty()) { + m_error = masterKeys->error; return false; } m_masterKey = masterKeys->encrypt; m_masterHmacKey = masterKeys->hmac; - delete masterKeys; - auto overviewKeys = decodeB64CompositeKeys(overviewKeyB64, encKey, hmacKey); - if (overviewKeys->error) { - m_error = true; - m_errorStr = overviewKeys->errorStr; - delete overviewKeys; + QScopedPointer overviewKeys(decodeB64CompositeKeys(overviewKeyB64, encKey, hmacKey)); + if (!overviewKeys->error.isEmpty()) { + m_error = overviewKeys->error; return false; } m_overviewKey = overviewKeys->encrypt; m_overviewHmacKey = overviewKeys->hmac; - delete overviewKeys; return true; } @@ -340,15 +312,13 @@ QJsonObject OpVaultReader::readAndAssertJsonFile(QFile& file, const QString& str OpVaultReader::DerivedKeyHMAC* OpVaultReader::decodeB64CompositeKeys(const QString& b64, const QByteArray& encKey, const QByteArray& hmacKey) { - auto result = new DerivedKeyHMAC(); OpData01 keyKey01; if (!keyKey01.decodeBase64(b64, encKey, hmacKey)) { - result->error = true; - result->errorStr = tr("Unable to decode masterKey: %1").arg(keyKey01.errorString()); + auto result = new DerivedKeyHMAC(); + result->error = tr("Unable to decode masterKey: %1").arg(keyKey01.errorString()); return result; } - delete result; const QByteArray keyKey = keyKey01.getClearText(); @@ -366,7 +336,6 @@ OpVaultReader::decodeB64CompositeKeys(const QString& b64, const QByteArray& encK OpVaultReader::DerivedKeyHMAC* OpVaultReader::decodeCompositeKeys(const QByteArray& keyKey) { auto result = new DerivedKeyHMAC; - result->error = false; auto digest = CryptoHash::hash(keyKey, CryptoHash::Sha512); result->encrypt = digest.left(32); @@ -385,7 +354,6 @@ OpVaultReader::DerivedKeyHMAC* OpVaultReader::deriveKeysFromPassPhrase(QByteArray& salt, const QString& password, unsigned long iterations) { auto result = new DerivedKeyHMAC; - result->error = false; QByteArray out(64, '\0'); try { @@ -397,8 +365,7 @@ OpVaultReader::deriveKeysFromPassPhrase(QByteArray& salt, const QString& passwor reinterpret_cast(salt.constData()), salt.size()); } catch (std::exception& e) { - result->error = true; - result->errorStr = tr("Unable to derive master key: %1").arg(e.what()); + result->error = tr("Unable to derive master key: %1").arg(e.what()); return result; } diff --git a/src/format/OpVaultReader.h b/src/format/OpVaultReader.h index 0dff45c2d..50ccf0b96 100644 --- a/src/format/OpVaultReader.h +++ b/src/format/OpVaultReader.h @@ -39,7 +39,7 @@ public: explicit OpVaultReader(QObject* parent = nullptr); ~OpVaultReader() override; - Database* readDatabase(QDir& opdataDir, const QString& password); + QSharedPointer convert(QDir& opdataDir, const QString& password); bool hasError(); QString errorString(); @@ -49,8 +49,7 @@ private: { QByteArray encrypt; QByteArray hmac; - bool error; - QString errorStr; + QString error; }; QJsonObject readAndAssertJsonFile(QFile& file, const QString& stripLeading, const QString& stripTrailing); @@ -106,15 +105,14 @@ private: /*! Used to blank the memory after the keys have been used. */ void zeroKeys(); - bool m_error; - QString m_errorStr; + QString m_error; QByteArray m_masterKey; QByteArray m_masterHmacKey; /*! Used to decrypt overview text, such as folder names. */ QByteArray m_overviewKey; QByteArray m_overviewHmacKey; - friend class TestOpVaultReader; + friend class TestImports; }; #endif /* OPVAULT_READER_H_ */ diff --git a/src/format/OpVaultReaderAttachments.cpp b/src/format/OpVaultReaderAttachments.cpp index 7c65b7f5a..c9dc6c76e 100644 --- a/src/format/OpVaultReaderAttachments.cpp +++ b/src/format/OpVaultReaderAttachments.cpp @@ -229,6 +229,10 @@ void OpVaultReader::fillAttachment(Entry* entry, qWarning() << QString("Unexpected type of attachment \"filename\": %1").arg(attFilename.type()); } } + if (entry->attachments()->hasKey(attachKey)) { + // Prepend a random string to the attachment name to avoid collisions + attachKey.prepend(QString("%1_").arg(QUuid::createUuid().toString().mid(1, 5))); + } entry->attachments()->set(attachKey, attachPayload); } diff --git a/src/format/OpVaultReaderBandEntry.cpp b/src/format/OpVaultReaderBandEntry.cpp index 6f79dd637..3a9774b68 100644 --- a/src/format/OpVaultReaderBandEntry.cpp +++ b/src/format/OpVaultReaderBandEntry.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019 KeePassXC Team + * Copyright (C) 2023 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -243,7 +243,8 @@ bool OpVaultReader::fillAttributes(Entry* entry, const QJsonObject& bandEntry) auto newUrl = urlObj["u"].toString(); if (newUrl != url) { // Add this url if it isn't the base one - entry->attributes()->set(QString("KP2A_URL_%1").arg(i), newUrl); + entry->attributes()->set( + QString("%1_%2").arg(EntryAttributes::AdditionalUrlAttribute, QString::number(i)), newUrl); ++i; } } diff --git a/src/format/OpVaultReaderSections.cpp b/src/format/OpVaultReaderSections.cpp index 610f997ec..42da14bb6 100644 --- a/src/format/OpVaultReaderSections.cpp +++ b/src/format/OpVaultReaderSections.cpp @@ -18,7 +18,7 @@ #include "OpVaultReader.h" #include "core/Entry.h" -#include "totp/totp.h" +#include "core/Totp.h" #include #include @@ -84,7 +84,16 @@ void OpVaultReader::fillFromSectionField(Entry* entry, const QString& sectionNam auto kind = field["k"].toString(); if (attrName.startsWith("TOTP_")) { - if (attrValue.startsWith("otpauth://")) { + if (entry->hasTotp()) { + // Store multiple TOTP definitions as additional otp attributes + int i = 0; + QString name("otp"); + auto attributes = entry->attributes()->keys(); + while (attributes.contains(name)) { + name = QString("otp_%1").arg(++i); + } + entry->attributes()->set(name, attrValue, true); + } else if (attrValue.startsWith("otpauth://")) { QUrlQuery query(attrValue); // at least as of 1Password 7, they don't append the digits= and period= which totp.cpp requires if (!query.hasQueryItem("digits")) { @@ -119,10 +128,14 @@ void OpVaultReader::fillFromSectionField(Entry* entry, const QString& sectionNam } else if (kind == "address") { // Expand address into multiple attributes auto addrFields = field.value("v").toObject().toVariantMap(); - for (auto part : addrFields.keys()) { + for (auto& part : addrFields.keys()) { entry->attributes()->set(attrName + QString("_%1").arg(part), addrFields.value(part).toString()); } } else { + if (entry->attributes()->hasKey(attrName)) { + // Append a random string to the attribute name to avoid collisions + attrName += QString("_%1").arg(QUuid::createUuid().toString().mid(1, 5)); + } entry->attributes()->set(attrName, attrValue, (kind == "password" || kind == "concealed")); } } diff --git a/src/gui/Application.cpp b/src/gui/Application.cpp index c2c42c24d..4df2bc047 100644 --- a/src/gui/Application.cpp +++ b/src/gui/Application.cpp @@ -147,9 +147,9 @@ Application::~Application() * configuration OS security properties, and loading translators. * A QApplication object has to be instantiated before calling this function. */ -void Application::bootstrap() +void Application::bootstrap(const QString& uiLanguage) { - Bootstrap::bootstrap(); + Bootstrap::bootstrap(uiLanguage); #ifdef Q_OS_WIN // Qt on Windows uses "MS Shell Dlg 2" as the default font for many widgets, which resolves @@ -183,6 +183,7 @@ void Application::applyTheme() auto* s = new LightStyle; setPalette(s->standardPalette()); setStyle(s); + m_darkTheme = false; } else if (appTheme == "dark") { auto* s = new DarkStyle; setPalette(s->standardPalette()); @@ -191,7 +192,9 @@ void Application::applyTheme() } else { // Classic mode, don't check for dark theme on Windows // because Qt 5.x does not support it -#ifndef Q_OS_WIN +#if defined(Q_OS_WIN) + m_darkTheme = false; +#else m_darkTheme = osUtils->isDarkMode(); #endif QFile stylesheetFile(":/styles/base/classicstyle.qss"); diff --git a/src/gui/Application.h b/src/gui/Application.h index 9cbf48e59..937d9d386 100644 --- a/src/gui/Application.h +++ b/src/gui/Application.h @@ -21,6 +21,7 @@ #define KEEPASSX_APPLICATION_H #include +#include #include #if defined(Q_OS_WIN) || (defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)) @@ -40,7 +41,7 @@ public: Application(int& argc, char** argv); ~Application() override; - static void bootstrap(); + static void bootstrap(const QString& uiLanguage = "system"); void applyTheme(); diff --git a/src/gui/ApplicationSettingsWidget.cpp b/src/gui/ApplicationSettingsWidget.cpp index 9dd9e3df8..56d60ea08 100644 --- a/src/gui/ApplicationSettingsWidget.cpp +++ b/src/gui/ApplicationSettingsWidget.cpp @@ -134,6 +134,15 @@ ApplicationSettingsWidget::ApplicationSettingsWidget(QWidget* parent) m_secUi->lockDatabaseIdleSpinBox, SLOT(setEnabled(bool))); // clang-format on + connect(m_generalUi->minimizeAfterUnlockCheckBox, &QCheckBox::toggled, this, [this](bool state) { + if (state) { + m_secUi->lockDatabaseMinimizeCheckBox->setChecked(false); + } + m_secUi->lockDatabaseMinimizeCheckBox->setToolTip( + state ? tr("This setting cannot be enabled when minimize on unlock is enabled.") : ""); + m_secUi->lockDatabaseMinimizeCheckBox->setEnabled(!state); + }); + // Disable mouse wheel grab when scrolling // This prevents combo box and spinner values from changing without explicit focus auto mouseWheelFilter = new MouseWheelEventFilter(this); @@ -155,15 +164,6 @@ ApplicationSettingsWidget::ApplicationSettingsWidget(QWidget* parent) m_generalUi->faviconTimeoutLabel->setVisible(false); m_generalUi->faviconTimeoutSpinBox->setVisible(false); #endif - - bool showQuickUnlock = false; -#if defined(Q_OS_MACOS) - showQuickUnlock = TouchID::getInstance().isAvailable(); -#elif defined(Q_CC_MSVC) - showQuickUnlock = getWindowsHello()->isAvailable(); - connect(getWindowsHello(), &WindowsHello::availableChanged, m_secUi->quickUnlockCheckBox, &QCheckBox::setVisible); -#endif - m_secUi->quickUnlockCheckBox->setVisible(showQuickUnlock); } ApplicationSettingsWidget::~ApplicationSettingsWidget() @@ -191,6 +191,7 @@ void ApplicationSettingsWidget::loadSettings() m_generalUi->singleInstanceCheckBox->setChecked(config()->get(Config::SingleInstance).toBool()); m_generalUi->launchAtStartup->setChecked(osUtils->isLaunchAtStartupEnabled()); m_generalUi->rememberLastDatabasesCheckBox->setChecked(config()->get(Config::RememberLastDatabases).toBool()); + m_generalUi->rememberLastDatabasesSpinbox->setValue(config()->get(Config::NumberOfRememberedLastDatabases).toInt()); m_generalUi->rememberLastKeyFilesCheckBox->setChecked(config()->get(Config::RememberLastKeyFiles).toBool()); m_generalUi->openPreviousDatabasesOnStartupCheckBox->setChecked( config()->get(Config::OpenPreviousDatabasesOnStartup).toBool()); @@ -229,6 +230,7 @@ void ApplicationSettingsWidget::loadSettings() m_generalUi->toolbarMovableCheckBox->setChecked(config()->get(Config::GUI_MovableToolbar).toBool()); m_generalUi->monospaceNotesCheckBox->setChecked(config()->get(Config::GUI_MonospaceNotes).toBool()); + m_generalUi->colorPasswordsCheckBox->setChecked(config()->get(Config::GUI_ColorPasswords).toBool()); m_generalUi->toolButtonStyleComboBox->clear(); m_generalUi->toolButtonStyleComboBox->addItem(tr("Icon only"), Qt::ToolButtonIconOnly); @@ -295,7 +297,8 @@ void ApplicationSettingsWidget::loadSettings() m_secUi->lockDatabaseIdleCheckBox->setChecked(config()->get(Config::Security_LockDatabaseIdle).toBool()); m_secUi->lockDatabaseIdleSpinBox->setValue(config()->get(Config::Security_LockDatabaseIdleSeconds).toInt()); - m_secUi->lockDatabaseMinimizeCheckBox->setChecked(config()->get(Config::Security_LockDatabaseMinimize).toBool()); + m_secUi->lockDatabaseMinimizeCheckBox->setChecked(m_secUi->lockDatabaseMinimizeCheckBox->isEnabled() + && config()->get(Config::Security_LockDatabaseMinimize).toBool()); m_secUi->lockDatabaseOnScreenLockCheckBox->setChecked( config()->get(Config::Security_LockDatabaseScreenLock).toBool()); m_secUi->fallbackToSearch->setChecked(config()->get(Config::Security_IconDownloadFallback).toBool()); @@ -304,6 +307,7 @@ void ApplicationSettingsWidget::loadSettings() m_secUi->passwordShowDotsCheckBox->setChecked(config()->get(Config::Security_PasswordEmptyPlaceholder).toBool()); m_secUi->passwordPreviewCleartextCheckBox->setChecked( config()->get(Config::Security_HidePasswordPreviewPanel).toBool()); + m_secUi->hideTotpCheckBox->setChecked(config()->get(Config::Security_HideTotpPreviewPanel).toBool()); m_secUi->passwordsRepeatVisibleCheckBox->setChecked( config()->get(Config::Security_PasswordsRepeatVisible).toBool()); m_secUi->hideNotesCheckBox->setChecked(config()->get(Config::Security_HideNotes).toBool()); @@ -312,6 +316,14 @@ void ApplicationSettingsWidget::loadSettings() m_secUi->EnableCopyOnDoubleClickCheckBox->setChecked( config()->get(Config::Security_EnableCopyOnDoubleClick).toBool()); + bool quickUnlockAvailable = false; +#if defined(Q_OS_MACOS) + quickUnlockAvailable = TouchID::getInstance().isAvailable(); +#elif defined(Q_CC_MSVC) + quickUnlockAvailable = getWindowsHello()->isAvailable(); + connect(getWindowsHello(), &WindowsHello::availableChanged, m_secUi->quickUnlockCheckBox, &QCheckBox::setEnabled); +#endif + m_secUi->quickUnlockCheckBox->setEnabled(quickUnlockAvailable); m_secUi->quickUnlockCheckBox->setChecked(config()->get(Config::Security_QuickUnlock).toBool()); for (const ExtraPage& page : asConst(m_extraPages)) { @@ -336,6 +348,7 @@ void ApplicationSettingsWidget::saveSettings() config()->set(Config::SingleInstance, m_generalUi->singleInstanceCheckBox->isChecked()); config()->set(Config::RememberLastDatabases, m_generalUi->rememberLastDatabasesCheckBox->isChecked()); + config()->set(Config::NumberOfRememberedLastDatabases, m_generalUi->rememberLastDatabasesSpinbox->value()); config()->set(Config::RememberLastKeyFiles, m_generalUi->rememberLastKeyFilesCheckBox->isChecked()); config()->set(Config::OpenPreviousDatabasesOnStartup, m_generalUi->openPreviousDatabasesOnStartupCheckBox->isChecked()); @@ -371,6 +384,7 @@ void ApplicationSettingsWidget::saveSettings() config()->set(Config::GUI_MovableToolbar, m_generalUi->toolbarMovableCheckBox->isChecked()); config()->set(Config::GUI_MonospaceNotes, m_generalUi->monospaceNotesCheckBox->isChecked()); + config()->set(Config::GUI_ColorPasswords, m_generalUi->colorPasswordsCheckBox->isChecked()); config()->set(Config::GUI_ToolButtonStyle, m_generalUi->toolButtonStyleComboBox->currentData().toString()); @@ -415,13 +429,16 @@ void ApplicationSettingsWidget::saveSettings() config()->set(Config::Security_PasswordEmptyPlaceholder, m_secUi->passwordShowDotsCheckBox->isChecked()); config()->set(Config::Security_HidePasswordPreviewPanel, m_secUi->passwordPreviewCleartextCheckBox->isChecked()); + config()->set(Config::Security_HideTotpPreviewPanel, m_secUi->hideTotpCheckBox->isChecked()); config()->set(Config::Security_PasswordsRepeatVisible, m_secUi->passwordsRepeatVisibleCheckBox->isChecked()); config()->set(Config::Security_HideNotes, m_secUi->hideNotesCheckBox->isChecked()); config()->set(Config::Security_NoConfirmMoveEntryToRecycleBin, m_secUi->NoConfirmMoveEntryToRecycleBinCheckBox->isChecked()); config()->set(Config::Security_EnableCopyOnDoubleClick, m_secUi->EnableCopyOnDoubleClickCheckBox->isChecked()); - config()->set(Config::Security_QuickUnlock, m_secUi->quickUnlockCheckBox->isChecked()); + if (m_secUi->quickUnlockCheckBox->isEnabled()) { + config()->set(Config::Security_QuickUnlock, m_secUi->quickUnlockCheckBox->isChecked()); + } // Security: clear storage if related settings are disabled if (!config()->get(Config::RememberLastDatabases).toBool()) { @@ -520,6 +537,7 @@ void ApplicationSettingsWidget::rememberDatabasesToggled(bool checked) m_generalUi->openPreviousDatabasesOnStartupCheckBox->setChecked(false); } + m_generalUi->rememberLastDatabasesSpinbox->setEnabled(checked); m_generalUi->rememberLastKeyFilesCheckBox->setEnabled(checked); m_generalUi->openPreviousDatabasesOnStartupCheckBox->setEnabled(checked); } diff --git a/src/gui/ApplicationSettingsWidgetGeneral.ui b/src/gui/ApplicationSettingsWidgetGeneral.ui index 2260efb20..0270c52d2 100644 --- a/src/gui/ApplicationSettingsWidgetGeneral.ui +++ b/src/gui/ApplicationSettingsWidgetGeneral.ui @@ -7,7 +7,7 @@ 0 0 605 - 968 + 969 @@ -64,7 +64,7 @@
    - 0 + 20 0 @@ -113,14 +113,47 @@ - - - Remember previously used databases - - - true - - + + + + + Remember previously used databases + + + true + + + + + + + recent files + + + 1 + + + 25 + + + 5 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + @@ -733,6 +766,13 @@ + + + + Show passwords in color + + + @@ -904,22 +944,6 @@ - - - - Qt::Vertical - - - QSizePolicy::Fixed - - - - 20 - 10 - - - - @@ -1231,6 +1255,7 @@ systrayMinimizeOnStartup minimizeAfterUnlockCheckBox rememberLastDatabasesCheckBox + rememberLastDatabasesSpinbox openPreviousDatabasesOnStartupCheckBox rememberLastKeyFilesCheckBox checkForUpdatesOnStartupCheckBox @@ -1240,8 +1265,12 @@ autoSaveAfterEveryChangeCheckBox autoSaveOnExitCheckBox autoSaveNonDataChangesCheckBox + autoReloadOnChangeCheckBox backupBeforeSaveCheckBox + backupFilePath + backupFilePathPicker useAlternativeSaveCheckBox + alternativeSaveComboBox useGroupIconOnEntryCreationCheckBox minimizeOnOpenUrlCheckBox hideWindowOnCopyCheckBox @@ -1250,8 +1279,8 @@ faviconTimeoutSpinBox languageComboBox toolButtonStyleComboBox - monospaceNotesCheckBox toolbarMovableCheckBox + monospaceNotesCheckBox minimizeOnCloseCheckBox systrayShowCheckBox trayIconAppearance @@ -1260,7 +1289,10 @@ autoTypeEntryTitleMatchCheckBox autoTypeEntryURLMatchCheckBox autoTypeAskCheckBox + autoTypeHideExpiredEntryCheckBox + autoTypeRelockDatabaseCheckBox autoTypeShortcutWidget + autoTypeRetypeTimeSpinBox autoTypeStartDelaySpinBox autoTypeDelaySpinBox diff --git a/src/gui/ApplicationSettingsWidgetSecurity.ui b/src/gui/ApplicationSettingsWidgetSecurity.ui index 5ca7d69e0..6dc122b80 100644 --- a/src/gui/ApplicationSettingsWidgetSecurity.ui +++ b/src/gui/ApplicationSettingsWidgetSecurity.ui @@ -11,6 +11,9 @@ + + 20 + 0 @@ -211,6 +214,13 @@
    + + + + Hide TOTP in the entry preview panel + + + diff --git a/src/gui/Clipboard.cpp b/src/gui/Clipboard.cpp index 804a53143..f0fbf01ab 100644 --- a/src/gui/Clipboard.cpp +++ b/src/gui/Clipboard.cpp @@ -52,38 +52,40 @@ void Clipboard::setText(const QString& text, bool clear) } auto* mime = new QMimeData; -#ifdef Q_OS_MACOS mime->setText(text); +#if defined(Q_OS_MACOS) mime->setData("application/x-nspasteboard-concealed-type", text.toUtf8()); - clipboard->setMimeData(mime, QClipboard::Clipboard); -#else - mime->setText(text); -#ifdef Q_OS_LINUX +#elif defined(Q_OS_UNIX) mime->setData("x-kde-passwordManagerHint", QByteArrayLiteral("secret")); -#endif -#ifdef Q_OS_WIN +#elif defined(Q_OS_WIN) mime->setData("ExcludeClipboardContentFromMonitorProcessing", QByteArrayLiteral("1")); #endif - clipboard->setMimeData(mime, QClipboard::Clipboard); if (clipboard->supportsSelection()) { clipboard->setMimeData(mime, QClipboard::Selection); } -#endif + clipboard->setMimeData(mime, QClipboard::Clipboard); if (clear) { m_lastCopied = text; if (config()->get(Config::Security_ClearClipboard).toBool()) { int timeout = config()->get(Config::Security_ClearClipboardTimeout).toInt(); if (timeout > 0) { - m_secondsElapsed = -1; - countdownTick(); + m_secondsToClear = timeout; + sendCountdownStatus(); m_timer->start(1000); + } else { + clearCopiedText(); } } } } +int Clipboard::secondsToClear() +{ + return m_secondsToClear; +} + void Clipboard::clearCopiedText() { m_timer->stop(); @@ -97,7 +99,8 @@ void Clipboard::clearCopiedText() if (m_lastCopied == clipboard->text(QClipboard::Clipboard) || m_lastCopied == clipboard->text(QClipboard::Selection)) { - setText("", false); + clipboard->clear(QClipboard::Clipboard); + clipboard->clear(QClipboard::Selection); } m_lastCopied.clear(); @@ -105,17 +108,20 @@ void Clipboard::clearCopiedText() void Clipboard::countdownTick() { - m_secondsElapsed++; - int timeout = config()->get(Config::Security_ClearClipboardTimeout).toInt(); - int timeLeft = timeout - m_secondsElapsed; - if (timeLeft <= 0) { + if (--m_secondsToClear <= 0) { clearCopiedText(); } else { - emit updateCountdown(100 * timeLeft / timeout, - QObject::tr("Clearing the clipboard in %1 second(s)…", "", timeLeft).arg(timeLeft)); + sendCountdownStatus(); } } +void Clipboard::sendCountdownStatus() +{ + emit updateCountdown( + 100 * m_secondsToClear / config()->get(Config::Security_ClearClipboardTimeout).toInt(), + QObject::tr("Clearing the clipboard in %1 second(s)…", "", m_secondsToClear).arg(m_secondsToClear)); +} + Clipboard* Clipboard::instance() { if (!m_instance) { diff --git a/src/gui/Clipboard.h b/src/gui/Clipboard.h index c97d91881..4dc2f3127 100644 --- a/src/gui/Clipboard.h +++ b/src/gui/Clipboard.h @@ -34,6 +34,7 @@ class Clipboard : public QObject public: void setText(const QString& text, bool clear = true); + int secondsToClear(); static Clipboard* instance(); @@ -51,8 +52,10 @@ private: static Clipboard* m_instance; + void sendCountdownStatus(); + QTimer* m_timer; - int m_secondsElapsed = 0; + int m_secondsToClear = 0; #ifdef Q_OS_MACOS // This object lives for the whole program lifetime and we cannot delete it on exit, diff --git a/src/gui/CloneDialog.cpp b/src/gui/CloneDialog.cpp index 8ce368a60..72199ae5a 100644 --- a/src/gui/CloneDialog.cpp +++ b/src/gui/CloneDialog.cpp @@ -18,8 +18,6 @@ #include "CloneDialog.h" #include "ui_CloneDialog.h" -#include "config-keepassx.h" - CloneDialog::CloneDialog(DatabaseWidget* parent, Database* db, Entry* entry) : QDialog(parent) , m_ui(new Ui::CloneDialog()) @@ -29,8 +27,13 @@ CloneDialog::CloneDialog(DatabaseWidget* parent, Database* db, Entry* entry) m_parent = parent; m_ui->setupUi(this); - this->setFixedSize(this->sizeHint()); + window()->layout()->setSizeConstraint(QLayout::SetFixedSize); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + setWindowFlag(Qt::WindowContextHelpButtonHint, false); +#else + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); +#endif setAttribute(Qt::WA_DeleteOnClose); connect(m_ui->buttonBox, SIGNAL(rejected()), SLOT(close())); @@ -54,10 +57,10 @@ void CloneDialog::cloneEntry() flags |= Entry::CloneIncludeHistory; } - Entry* entry = m_entry->clone(flags); + auto entry = m_entry->clone(flags); entry->setGroup(m_entry->group()); - m_parent->refreshSearch(); + emit entryCloned(entry); close(); } diff --git a/src/gui/CloneDialog.h b/src/gui/CloneDialog.h index 8da584c20..649ab1d5f 100644 --- a/src/gui/CloneDialog.h +++ b/src/gui/CloneDialog.h @@ -18,6 +18,8 @@ #ifndef KEEPASSX_CLONEDIALOG_H #define KEEPASSX_CLONEDIALOG_H +#include + #include "core/Database.h" #include "gui/DatabaseWidget.h" @@ -34,6 +36,9 @@ public: explicit CloneDialog(DatabaseWidget* parent = nullptr, Database* db = nullptr, Entry* entry = nullptr); ~CloneDialog(); +signals: + void entryCloned(Entry* clone); + private: QScopedPointer m_ui; diff --git a/src/gui/CloneDialog.ui b/src/gui/CloneDialog.ui index db0614dfa..80da0ee58 100644 --- a/src/gui/CloneDialog.ui +++ b/src/gui/CloneDialog.ui @@ -6,54 +6,56 @@ 0 0 - 347 - 136 + 319 + 132 Clone Entry Options + + true + - - - - - Append ' - Clone' to title - - - true - - - - - - - Replace username and password with references - - - - - - - Copy history - - - true - - - - + + + Append ' - Clone' to title + + + true + + + + + + + Replace username and password with references + + + + + + + Copy history + + + true + + Qt::Vertical + + QSizePolicy::Minimum + 20 - 40 + 6 diff --git a/src/gui/DatabaseOpenDialog.cpp b/src/gui/DatabaseOpenDialog.cpp index 799e82963..25c0fd25e 100644 --- a/src/gui/DatabaseOpenDialog.cpp +++ b/src/gui/DatabaseOpenDialog.cpp @@ -36,6 +36,11 @@ DatabaseOpenDialog::DatabaseOpenDialog(QWidget* parent) { setWindowTitle(tr("Unlock Database - KeePassXC")); setWindowFlags(Qt::Dialog); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + setWindowFlag(Qt::WindowContextHelpButtonHint, false); +#else + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); +#endif #ifdef Q_OS_LINUX // Linux requires this to overcome some Desktop Environments (also no Quick Unlock) setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint); @@ -59,13 +64,34 @@ DatabaseOpenDialog::DatabaseOpenDialog(QWidget* parent) setLayout(layout); setMinimumWidth(700); - // set up Ctrl+PageUp and Ctrl+PageDown shortcuts to cycle tabs + // set up Ctrl+PageUp / Ctrl+PageDown and Ctrl+Tab / Ctrl+Shift+Tab shortcuts to cycle tabs + // Ctrl+Tab is broken on Mac, so use Alt (i.e. the Option key) - https://bugreports.qt.io/browse/QTBUG-8596 + auto dbTabModifier = Qt::CTRL; +#ifdef Q_OS_MACOS + dbTabModifier = Qt::ALT; +#endif auto* shortcut = new QShortcut(Qt::CTRL + Qt::Key_PageUp, this); shortcut->setContext(Qt::WidgetWithChildrenShortcut); connect(shortcut, &QShortcut::activated, this, [this]() { selectTabOffset(-1); }); + shortcut = new QShortcut(dbTabModifier + Qt::SHIFT + Qt::Key_Tab, this); + shortcut->setContext(Qt::WidgetWithChildrenShortcut); + connect(shortcut, &QShortcut::activated, this, [this]() { selectTabOffset(-1); }); shortcut = new QShortcut(Qt::CTRL + Qt::Key_PageDown, this); shortcut->setContext(Qt::WidgetWithChildrenShortcut); connect(shortcut, &QShortcut::activated, this, [this]() { selectTabOffset(1); }); + shortcut = new QShortcut(dbTabModifier + Qt::Key_Tab, this); + shortcut->setContext(Qt::WidgetWithChildrenShortcut); + connect(shortcut, &QShortcut::activated, this, [this]() { selectTabOffset(1); }); +} + +void DatabaseOpenDialog::showEvent(QShowEvent* event) +{ + QDialog::showEvent(event); + QTimer::singleShot(100, this, [=] { + if (m_view->isOnQuickUnlockScreen() && !m_view->unlockingDatabase()) { + m_view->triggerQuickUnlock(); + } + }); } void DatabaseOpenDialog::selectTabOffset(int offset) diff --git a/src/gui/DatabaseOpenDialog.h b/src/gui/DatabaseOpenDialog.h index 5fcee76a9..b1a59b59a 100644 --- a/src/gui/DatabaseOpenDialog.h +++ b/src/gui/DatabaseOpenDialog.h @@ -58,6 +58,9 @@ public slots: void complete(bool accepted); void tabChanged(int index); +protected: + void showEvent(QShowEvent* event) override; + private: void selectTabOffset(int offset); diff --git a/src/gui/DatabaseOpenWidget.cpp b/src/gui/DatabaseOpenWidget.cpp index d5c9707f8..50b68f5f1 100644 --- a/src/gui/DatabaseOpenWidget.cpp +++ b/src/gui/DatabaseOpenWidget.cpp @@ -19,13 +19,15 @@ #include "DatabaseOpenWidget.h" #include "ui_DatabaseOpenWidget.h" -#include "config-keepassx.h" #include "gui/FileDialog.h" #include "gui/Icons.h" #include "gui/MainWindow.h" #include "gui/MessageBox.h" #include "keys/ChallengeResponseKey.h" #include "keys/FileKey.h" +#ifdef WITH_XC_YUBIKEY +#include "keys/drivers/YubiKeyInterfaceUSB.h" +#endif #ifdef Q_OS_MACOS #include "touchid/TouchID.h" @@ -35,6 +37,7 @@ #endif #include +#include #include #include @@ -53,25 +56,15 @@ namespace } return false; } - - bool canPerformQuickUnlock(const QString& filename) - { - if (isQuickUnlockAvailable()) { -#if defined(Q_CC_MSVC) - return getWindowsHello()->hasKey(filename); -#elif defined(Q_OS_MACOS) - return TouchID::getInstance().containsKey(filename); -#endif - } - Q_UNUSED(filename); - return false; - } } // namespace DatabaseOpenWidget::DatabaseOpenWidget(QWidget* parent) : DialogyWidget(parent) , m_ui(new Ui::DatabaseOpenWidget()) , m_db(nullptr) +#ifdef WITH_XC_YUBIKEY + , m_deviceListener(new DeviceListener(this)) +#endif { m_ui->setupUi(this); @@ -104,18 +97,27 @@ DatabaseOpenWidget::DatabaseOpenWidget(QWidget* parent) connect(m_ui->buttonBox, SIGNAL(accepted()), SLOT(openDatabase())); connect(m_ui->buttonBox, SIGNAL(rejected()), SLOT(reject())); - m_ui->hardwareKeyLabelHelp->setIcon(icons()->icon("system-help").pixmap(QSize(12, 12))); - connect(m_ui->hardwareKeyLabelHelp, SIGNAL(clicked(bool)), SLOT(openHardwareKeyHelp())); - m_ui->keyFileLabelHelp->setIcon(icons()->icon("system-help").pixmap(QSize(12, 12))); - connect(m_ui->keyFileLabelHelp, SIGNAL(clicked(bool)), SLOT(openKeyFileHelp())); + connect(m_ui->addKeyFileLinkLabel, &QLabel::linkActivated, this, [&](const QString&) { + if (browseKeyFile()) { + toggleKeyFileComponent(true); + } + }); + connect(m_ui->keyFileLineEdit, &PasswordWidget::textChanged, this, [&](const QString& text) { + if (text.isEmpty() && m_ui->keyFileLineEdit->isVisible()) { + toggleKeyFileComponent(false); + } + }); + connect(m_ui->useHardwareKeyCheckBox, &QCheckBox::toggled, m_ui->hardwareKeyCombo, &QComboBox::setEnabled); + + toggleKeyFileComponent(false); + toggleHardwareKeyComponent(false); -#ifdef WITH_XC_YUBIKEY - m_ui->hardwareKeyProgress->setVisible(false); QSizePolicy sp = m_ui->hardwareKeyProgress->sizePolicy(); sp.setRetainSizeWhenHidden(true); m_ui->hardwareKeyProgress->setSizePolicy(sp); - connect(m_ui->buttonRedetectYubikey, SIGNAL(clicked()), SLOT(pollHardwareKey())); +#ifdef WITH_XC_YUBIKEY + connect(m_deviceListener, SIGNAL(devicePlugged(bool, void*, void*)), this, SLOT(pollHardwareKey())); connect(YubiKey::instance(), SIGNAL(detectComplete(bool)), SLOT(hardwareKeyResponse(bool)), Qt::QueuedConnection); connect(YubiKey::instance(), &YubiKey::userInteractionRequest, this, [this] { @@ -127,45 +129,111 @@ DatabaseOpenWidget::DatabaseOpenWidget(QWidget* parent) } }); connect(YubiKey::instance(), &YubiKey::challengeCompleted, this, [this] { m_ui->messageWidget->hide(); }); + + m_ui->noHardwareKeysFoundLabel->setVisible(false); + m_ui->refreshHardwareKeys->setIcon(icons()->icon("yubikey-refresh", true)); + connect(m_ui->refreshHardwareKeys, &QPushButton::clicked, this, [this] { pollHardwareKey(true); }); + m_hideNoHardwareKeysFoundTimer.setInterval(2000); + connect(&m_hideNoHardwareKeysFoundTimer, &QTimer::timeout, this, [this] { + m_ui->noHardwareKeysFoundLabel->setVisible(false); + }); #else - m_ui->hardwareKeyLabel->setVisible(false); - m_ui->hardwareKeyLabelHelp->setVisible(false); - m_ui->buttonRedetectYubikey->setVisible(false); - m_ui->challengeResponseCombo->setVisible(false); - m_ui->hardwareKeyProgress->setVisible(false); + m_ui->noHardwareKeysFoundLabel->setVisible(false); + m_ui->refreshHardwareKeys->setVisible(false); #endif // QuickUnlock actions connect(m_ui->quickUnlockButton, &QPushButton::pressed, this, [this] { openDatabase(); }); connect(m_ui->resetQuickUnlockButton, &QPushButton::pressed, this, [this] { resetQuickUnlock(); }); + m_ui->resetQuickUnlockButton->setShortcut(Qt::Key_Escape); } DatabaseOpenWidget::~DatabaseOpenWidget() { } -void DatabaseOpenWidget::showEvent(QShowEvent* event) +void DatabaseOpenWidget::toggleKeyFileComponent(bool state) { - DialogyWidget::showEvent(event); - if (isOnQuickUnlockScreen()) { - m_ui->quickUnlockButton->setFocus(); - if (!canPerformQuickUnlock(m_filename)) { - resetQuickUnlock(); - } - } else { - m_ui->editPassword->setFocus(); - } - m_hideTimer.stop(); + m_ui->addKeyFileLinkLabel->setVisible(!state); + m_ui->selectKeyFileComponent->setVisible(state); } -void DatabaseOpenWidget::hideEvent(QHideEvent* event) +void DatabaseOpenWidget::toggleHardwareKeyComponent(bool state) { - DialogyWidget::hideEvent(event); - - // Schedule form clearing if we are hidden - if (!isVisible()) { - m_hideTimer.start(); + m_ui->hardwareKeyProgress->setVisible(false); + m_ui->hardwareKeyComponent->setVisible(state); + m_ui->hardwareKeyCombo->setVisible(state && m_ui->hardwareKeyCombo->count() != 1); + m_ui->noHardwareKeysFoundLabel->setVisible(!state && m_manualHardwareKeyRefresh); + if (!state) { + m_ui->useHardwareKeyCheckBox->setChecked(false); } + if (m_ui->hardwareKeyCombo->count() == 1) { + m_ui->useHardwareKeyCheckBox->setText( + tr("Use hardware key [Serial: %1]") + .arg(m_ui->hardwareKeyCombo->itemData(m_ui->hardwareKeyCombo->currentIndex()) + .value() + .first)); + } else { + m_ui->useHardwareKeyCheckBox->setText(tr("Use hardware key")); + } +} + +bool DatabaseOpenWidget::event(QEvent* event) +{ + bool ret = DialogyWidget::event(event); + + switch (event->type()) { + case QEvent::Show: + case QEvent::WindowActivate: { + if (isOnQuickUnlockScreen() && (m_db.isNull() || !canPerformQuickUnlock())) { + resetQuickUnlock(); + } + toggleQuickUnlockScreen(); + m_hideTimer.stop(); + +#ifdef WITH_XC_YUBIKEY +#ifdef Q_OS_WIN + m_deviceListener->registerHotplugCallback(true, + true, + YubiKeyInterfaceUSB::YUBICO_USB_VID, + DeviceListener::MATCH_ANY, + &DeviceListenerWin::DEV_CLS_KEYBOARD); + m_deviceListener->registerHotplugCallback(true, + true, + YubiKeyInterfaceUSB::ONLYKEY_USB_VID, + DeviceListener::MATCH_ANY, + &DeviceListenerWin::DEV_CLS_KEYBOARD); +#else + m_deviceListener->registerHotplugCallback(true, true, YubiKeyInterfaceUSB::YUBICO_USB_VID); + m_deviceListener->registerHotplugCallback(true, true, YubiKeyInterfaceUSB::ONLYKEY_USB_VID); +#endif +#endif + + return true; + } + + case QEvent::Hide: { + // Schedule form clearing if we are hidden + if (!isVisible()) { + m_hideTimer.start(); + } + +#ifdef WITH_XC_YUBIKEY + m_deviceListener->deregisterAllHotplugCallbacks(); +#endif + + return true; + } + + default:; + } + + return ret; +} + +bool DatabaseOpenWidget::unlockingDatabase() +{ + return m_unlockingDatabase; } void DatabaseOpenWidget::load(const QString& filename) @@ -179,24 +247,15 @@ void DatabaseOpenWidget::load(const QString& filename) auto lastKeyFiles = config()->get(Config::LastKeyFiles).toHash(); if (lastKeyFiles.contains(m_filename)) { m_ui->keyFileLineEdit->setText(lastKeyFiles[m_filename].toString()); + toggleKeyFileComponent(true); } } - if (canPerformQuickUnlock(m_filename)) { - m_ui->centralStack->setCurrentIndex(1); - m_ui->quickUnlockButton->setFocus(); - } else { - m_ui->editPassword->setFocus(); - } + toggleQuickUnlockScreen(); #ifdef WITH_XC_YUBIKEY - // Only auto-poll for hardware keys if we previously used one with this database file - if (config()->get(Config::RememberLastKeyFiles).toBool()) { - auto lastChallengeResponse = config()->get(Config::LastChallengeResponse).toHash(); - if (lastChallengeResponse.contains(m_filename)) { - pollHardwareKey(); - } - } + // Do initial auto-poll + pollHardwareKey(); #endif } @@ -207,9 +266,13 @@ void DatabaseOpenWidget::clearForms() m_ui->editPassword->setShowPassword(false); m_ui->keyFileLineEdit->clear(); m_ui->keyFileLineEdit->setShowPassword(false); - m_ui->challengeResponseCombo->clear(); - m_ui->centralStack->setCurrentIndex(0); - m_db.reset(); + m_ui->keyFileLineEdit->setClearButtonEnabled(true); + m_ui->hardwareKeyCombo->clear(); + toggleQuickUnlockScreen(); + + QString error; + m_db.reset(new Database()); + m_db->open(m_filename, nullptr, &error); } QSharedPointer DatabaseOpenWidget::database() @@ -279,7 +342,11 @@ void DatabaseOpenWidget::openDatabase() auto keyData = databaseKey->serialize(); #if defined(Q_CC_MSVC) // Store the password using Windows Hello - getWindowsHello()->storeKey(m_filename, keyData); + if (!getWindowsHello()->storeKey(m_filename, keyData)) { + getMainWindow()->displayTabMessage( + tr("Windows Hello setup was canceled or failed. Quick unlock has not been enabled."), + MessageWidget::MessageType::Warning); + } #elif defined(Q_OS_MACOS) // Store the password using TouchID TouchID::getInstance().storeKey(m_filename, keyData); @@ -328,13 +395,18 @@ QSharedPointer DatabaseOpenWidget::buildDatabaseKey() { auto databaseKey = QSharedPointer::create(); - if (canPerformQuickUnlock(m_filename)) { + if (!m_db.isNull() && canPerformQuickUnlock()) { // try to retrieve the stored password using Windows Hello QByteArray keyData; #ifdef Q_CC_MSVC if (!getWindowsHello()->getKey(m_filename, keyData)) { // Failed to retrieve Quick Unlock data - m_ui->messageWidget->showMessage(tr("Failed to authenticate with Windows Hello"), MessageWidget::Error); + auto error = getWindowsHello()->errorString(); + if (!error.isEmpty()) { + m_ui->messageWidget->showMessage(tr("Failed to authenticate with Windows Hello: %1").arg(error), + MessageWidget::Error); + resetQuickUnlock(); + } return {}; } #elif defined(Q_OS_MACOS) @@ -394,9 +466,9 @@ QSharedPointer DatabaseOpenWidget::buildDatabaseKey() auto lastChallengeResponse = config()->get(Config::LastChallengeResponse).toHash(); lastChallengeResponse.remove(m_filename); - int selectionIndex = m_ui->challengeResponseCombo->currentIndex(); - if (selectionIndex > 0) { - auto slot = m_ui->challengeResponseCombo->itemData(selectionIndex).value(); + int selectionIndex = m_ui->hardwareKeyCombo->currentIndex(); + if (m_ui->useHardwareKeyCheckBox->isChecked()) { + auto slot = m_ui->hardwareKeyCombo->itemData(selectionIndex).value(); auto crKey = QSharedPointer(new ChallengeResponseKey(slot)); databaseKey->addChallengeResponseKey(crKey); @@ -417,61 +489,65 @@ void DatabaseOpenWidget::reject() emit dialogFinished(false); } -void DatabaseOpenWidget::browseKeyFile() +bool DatabaseOpenWidget::browseKeyFile() { QString filters = QString("%1 (*);;%2 (*.keyx; *.key)").arg(tr("All files"), tr("Key files")); - QString filename = fileDialog()->getOpenFileName(this, tr("Select key file"), QString(), filters); + QString filename = + fileDialog()->getOpenFileName(this, tr("Select key file"), FileDialog::getLastDir("keyfile"), filters); + if (filename.isEmpty()) { + return false; + } + FileDialog::saveLastDir("keyfile", filename, true); if (QFileInfo(filename).canonicalFilePath() == QFileInfo(m_filename).canonicalFilePath()) { MessageBox::warning(this, tr("Cannot use database file as key file"), - tr("You cannot use your database file as a key file.\nIf you do not have a key file, " - "please leave the field empty."), + tr("Your database file is NOT a key file!\nIf you don't have a key file or don't know what " + "that is, you don't have to select one."), MessageBox::Button::Ok); - filename = ""; + return false; + } + if (filename.endsWith(".kdbx") + && MessageBox::warning(this, + tr("KeePassXC database file selected"), + tr("The file you selected looks like a database file.\nA database file is NOT a key " + "file!\n\nAre you sure you want to continue with this file?."), + MessageBox::Button::Yes | MessageBox::Button::Cancel, + MessageBox::Button::Cancel) + != MessageBox::Yes) { + return false; } - if (!filename.isEmpty()) { - m_ui->keyFileLineEdit->setText(filename); - } + m_ui->keyFileLineEdit->setText(filename); + return true; } -void DatabaseOpenWidget::clearKeyFileText() -{ - m_ui->keyFileLineEdit->clear(); - m_ui->keyFileLineEdit->setShowPassword(false); -} - -void DatabaseOpenWidget::pollHardwareKey() +void DatabaseOpenWidget::pollHardwareKey(bool manualTrigger) { if (m_pollingHardwareKey) { return; } - m_ui->challengeResponseCombo->clear(); - m_ui->challengeResponseCombo->addItem(tr("Detecting hardware keys…")); - - m_ui->buttonRedetectYubikey->setEnabled(false); - m_ui->challengeResponseCombo->setEnabled(false); + m_ui->hardwareKeyCombo->setEnabled(false); m_ui->hardwareKeyProgress->setVisible(true); + m_ui->refreshHardwareKeys->setEnabled(false); + m_ui->noHardwareKeysFoundLabel->setVisible(false); m_pollingHardwareKey = true; + m_manualHardwareKeyRefresh = manualTrigger; YubiKey::instance()->findValidKeysAsync(); } void DatabaseOpenWidget::hardwareKeyResponse(bool found) { - m_ui->challengeResponseCombo->clear(); - m_ui->buttonRedetectYubikey->setEnabled(true); m_ui->hardwareKeyProgress->setVisible(false); + m_ui->refreshHardwareKeys->setEnabled(true); + m_ui->hardwareKeyCombo->clear(); m_pollingHardwareKey = false; if (!found) { - m_ui->challengeResponseCombo->addItem(tr("No hardware keys detected")); - m_ui->challengeResponseCombo->setEnabled(false); + toggleHardwareKeyComponent(false); return; - } else { - m_ui->challengeResponseCombo->addItem(tr("Select hardware key…")); } YubiKeySlot lastUsedSlot; @@ -483,31 +559,24 @@ void DatabaseOpenWidget::hardwareKeyResponse(bool found) if (split.size() > 1) { lastUsedSlot = YubiKeySlot(split[0].toUInt(), split[1].toInt()); } + m_ui->useHardwareKeyCheckBox->setChecked(true); } } int selectedIndex = 0; - for (auto& slot : YubiKey::instance()->foundKeys()) { + const auto foundKeys = YubiKey::instance()->foundKeys(); + for (auto i = foundKeys.cbegin(); i != foundKeys.cend(); ++i) { // add detected YubiKey to combo box - m_ui->challengeResponseCombo->addItem(YubiKey::instance()->getDisplayName(slot), QVariant::fromValue(slot)); + m_ui->hardwareKeyCombo->addItem(i.value(), QVariant::fromValue(i.key())); // Select this YubiKey + Slot if we used it in the past - if (lastUsedSlot == slot) { - selectedIndex = m_ui->challengeResponseCombo->count() - 1; + if (lastUsedSlot == i.key()) { + selectedIndex = m_ui->hardwareKeyCombo->count() - 1; } } - m_ui->challengeResponseCombo->setCurrentIndex(selectedIndex); - m_ui->challengeResponseCombo->setEnabled(true); -} - -void DatabaseOpenWidget::openHardwareKeyHelp() -{ - QDesktopServices::openUrl(QUrl("https://keepassxc.org/docs#faq-cat-yubikey")); -} - -void DatabaseOpenWidget::openKeyFileHelp() -{ - QDesktopServices::openUrl(QUrl("https://keepassxc.org/docs#faq-cat-keyfile")); + toggleHardwareKeyComponent(true); + m_ui->hardwareKeyCombo->setEnabled(m_ui->useHardwareKeyCheckBox->isChecked()); + m_ui->hardwareKeyCombo->setCurrentIndex(selectedIndex); } void DatabaseOpenWidget::setUserInteractionLock(bool state) @@ -522,13 +591,44 @@ void DatabaseOpenWidget::setUserInteractionLock(bool state) } m_ui->centralStack->setEnabled(true); } + m_unlockingDatabase = state; } -bool DatabaseOpenWidget::isOnQuickUnlockScreen() +bool DatabaseOpenWidget::canPerformQuickUnlock() const +{ + if (!m_db.isNull() && isQuickUnlockAvailable()) { +#if defined(Q_CC_MSVC) + return getWindowsHello()->hasKey(m_filename); +#elif defined(Q_OS_MACOS) + return TouchID::getInstance().containsKey(m_filename); +#endif + } + return false; +} + +bool DatabaseOpenWidget::isOnQuickUnlockScreen() const { return m_ui->centralStack->currentIndex() == 1; } +void DatabaseOpenWidget::toggleQuickUnlockScreen() +{ + if (canPerformQuickUnlock()) { + m_ui->centralStack->setCurrentIndex(1); + m_ui->quickUnlockButton->setFocus(); + } else { + m_ui->centralStack->setCurrentIndex(0); + m_ui->editPassword->setFocus(); + } +} + +void DatabaseOpenWidget::triggerQuickUnlock() +{ + if (isOnQuickUnlockScreen()) { + m_ui->quickUnlockButton->click(); + } +} + /** * Reset installed quick unlock secrets. * @@ -536,9 +636,6 @@ bool DatabaseOpenWidget::isOnQuickUnlockScreen() */ void DatabaseOpenWidget::resetQuickUnlock() { - if (!isQuickUnlockAvailable()) { - return; - } #if defined(Q_CC_MSVC) getWindowsHello()->reset(m_filename); #elif defined(Q_OS_MACOS) diff --git a/src/gui/DatabaseOpenWidget.h b/src/gui/DatabaseOpenWidget.h index 8a26b3045..0ba120210 100644 --- a/src/gui/DatabaseOpenWidget.h +++ b/src/gui/DatabaseOpenWidget.h @@ -19,10 +19,15 @@ #ifndef KEEPASSX_DATABASEOPENWIDGET_H #define KEEPASSX_DATABASEOPENWIDGET_H +#include #include #include +#include "config-keepassx.h" #include "gui/DialogyWidget.h" +#ifdef WITH_XC_YUBIKEY +#include "osutils/DeviceListener.h" +#endif class CompositeKey; class Database; @@ -45,18 +50,22 @@ public: void clearForms(); void enterKey(const QString& pw, const QString& keyFile); QSharedPointer database(); + bool unlockingDatabase(); + + // Quick Unlock helper functions + bool canPerformQuickUnlock() const; + bool isOnQuickUnlockScreen() const; + void toggleQuickUnlockScreen(); + void triggerQuickUnlock(); void resetQuickUnlock(); signals: void dialogFinished(bool accepted); protected: - void showEvent(QShowEvent* event) override; - void hideEvent(QHideEvent* event) override; + bool event(QEvent* event) override; QSharedPointer buildDatabaseKey(); void setUserInteractionLock(bool state); - // Quick Unlock helper functions - bool isOnQuickUnlockScreen(); const QScopedPointer m_ui; QSharedPointer m_db; @@ -68,17 +77,22 @@ protected slots: void reject(); private slots: - void browseKeyFile(); - void clearKeyFileText(); - void pollHardwareKey(); + bool browseKeyFile(); + void toggleKeyFileComponent(bool state); + void toggleHardwareKeyComponent(bool state); + void pollHardwareKey(bool manualTrigger = false); void hardwareKeyResponse(bool found); - void openHardwareKeyHelp(); - void openKeyFileHelp(); private: +#ifdef WITH_XC_YUBIKEY + QPointer m_deviceListener; +#endif bool m_pollingHardwareKey = false; + bool m_manualHardwareKeyRefresh = false; bool m_blockQuickUnlock = false; + bool m_unlockingDatabase = false; QTimer m_hideTimer; + QTimer m_hideNoHardwareKeysFoundTimer; Q_DISABLE_COPY(DatabaseOpenWidget) }; diff --git a/src/gui/DatabaseOpenWidget.ui b/src/gui/DatabaseOpenWidget.ui index 101bef632..104ca1959 100644 --- a/src/gui/DatabaseOpenWidget.ui +++ b/src/gui/DatabaseOpenWidget.ui @@ -6,8 +6,8 @@ 0 0 - 520 - 436 + 745 + 544 @@ -18,7 +18,7 @@ - + 0 @@ -40,18 +40,6 @@ - - - 500 - 400 - - - - - 700 - 16777215 - - @@ -71,7 +59,6 @@ 12 - 75 true @@ -107,8 +94,8 @@ - 0 - 250 + 650 + 0 @@ -122,172 +109,223 @@ + + 5 + - 20 + 30 - 15 + 25 - 20 + 30 - 15 + 25 - - - Enter Password: - - - editPassword + + + 0 + + + 10 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Enter Password: + + + + + + + 0 + + + + + Qt::StrongFocus + + + Password field + + + + + + + + 16777215 + 4 + + + + 0 + + + 0 + + + -1 + + + false + + + + + + - - - Password field + + + QFrame::NoFrame - - QLineEdit::Password + + QFrame::Plain + + 0 + + + + 10 + + + 0 + + + 10 + + + 0 + + + 15 + + + + + Select Key File: + + + + + + + + + + 0 + 0 + + + + Qt::StrongFocus + + + Key file to unlock the database + + + + + + + Browse for key file + + + Browse for key file + + + Browse… + + + + + + - - - Qt::Vertical + + + 0 - - QSizePolicy::Fixed - - - - 20 - 5 - - - - - - - - Enter Additional Credentials (if any): - - - - - - - - - Qt::Horizontal - - - QSizePolicy::Fixed - - - - 15 - 20 - - - - - - - - 3 - - - + + + QLayout::SetMinimumSize + + + 0 + + + 0 + + + 0 + + + 0 + + + + 5 - - - - Key File: - - - keyFileLineEdit - - - - - - - PointingHandCursor - - - Qt::ClickFocus - - - <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave this field empty.</p><p>Click for more information…</p> - - - Key file help - - - QToolButton { - border: none; - background: none; -} - - - ? - - - - 12 - 12 - - - - QToolButton::InstantPopup - - - - - - - - + 0 - - - - - 16777215 - 2 - - - - 0 - - - 0 - - - -1 - - - false + + 0 + + + 0 + + + 0 + + + + + Use Hardware Security Key [Serial: 11111111] - - + + false - - - 0 - 0 - + + + 200 + 0 + + + + + 300 + 16777215 + Hardware key slot selection @@ -298,171 +336,116 @@ - - - - - 2 - - - - - 5 - - - - - Hardware Key: - - - challengeResponseCombo - - - - - - - PointingHandCursor - - - Qt::ClickFocus - - - <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> -<p>Click for more information…</p> - - - Hardware key help - - - QToolButton { - border: none; - background: none; -} - - - ? - - - - 12 - 12 - - - - QToolButton::InstantPopup - - - - - - - - - Qt::Vertical - - - QSizePolicy::Fixed - - - - 0 - 2 - - - - - - - - - - 0 - - - - - - 0 - 0 - - - - Key file to unlock the database - - - QLineEdit::Password - - - true - - - - - - - - - Browse for key file - - - Browse for key file - - - Browse… - - - - - - - 0 - - - - - true - - - Refresh hardware tokens - - - Refresh hardware tokens - - - Refresh - - - - - - - Qt::Vertical - - - QSizePolicy::Fixed - - - - 0 - 2 - - - - - - - - - + + + + + + + 0 + 0 + + + + No hardware keys found. + + + 1 + + + + + + + Qt::Horizontal + + + + 40 + 0 + + + + + + + + PointingHandCursor + + + Refresh Hardware Keys + + + Refresh Hardware Keys + + + QPushButton { background-color: transparent; border: none; } + + + + + + + + + + PointingHandCursor + + + Qt::TabFocus + + + <p>In addition to a password, you can use a secret file to enhance the security of your database. This file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!</p> + + + Click to add a key file. + + + <a href="#" style="text-decoration: underline">I have a key file</a> + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse + + + + + + + + + + Qt::Vertical + + + + 0 + 5 + + + + + 0 + - 15 + 25 + + + 5 + + Qt::StrongFocus + QDialogButtonBox::Close|QDialogButtonBox::Ok @@ -474,17 +457,20 @@ + + 0 + - 20 + 10 - 15 + 10 - 20 + 10 - 15 + 10 @@ -493,8 +479,8 @@ - 40 - 20 + 30 + 0 @@ -508,8 +494,8 @@ - 20 - 40 + 0 + 10 @@ -525,7 +511,6 @@ 10 - 75 true @@ -551,8 +536,8 @@ - 20 - 40 + 0 + 10 @@ -566,8 +551,8 @@ - 40 - 20 + 30 + 0 @@ -617,9 +602,9 @@ - PasswordEdit - QLineEdit -
    gui/PasswordEdit.h
    + PasswordWidget + QWidget +
    gui/PasswordWidget.h
    1
    @@ -635,13 +620,16 @@
    + quickUnlockButton + resetQuickUnlockButton editPassword keyFileLineEdit buttonBrowseFile - challengeResponseCombo - buttonRedetectYubikey - quickUnlockButton - resetQuickUnlockButton + useHardwareKeyCheckBox + hardwareKeyCombo + refreshHardwareKeys + addKeyFileLinkLabel + buttonBox diff --git a/src/gui/DatabaseTabWidget.cpp b/src/gui/DatabaseTabWidget.cpp index 61ecad5ca..949c30513 100644 --- a/src/gui/DatabaseTabWidget.cpp +++ b/src/gui/DatabaseTabWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 KeePassXC Team + * Copyright (C) 2023 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,6 +21,7 @@ #include #include "autotype/AutoType.h" +#include "core/Merger.h" #include "core/Tools.h" #include "format/CsvExporter.h" #include "gui/Clipboard.h" @@ -28,19 +29,20 @@ #include "gui/DatabaseWidget.h" #include "gui/DatabaseWidgetStateSync.h" #include "gui/FileDialog.h" -#include "gui/HtmlExporter.h" #include "gui/MessageBox.h" #include "gui/export/ExportDialog.h" #ifdef Q_OS_MACOS #include "gui/osutils/macutils/MacUtils.h" #endif #include "gui/wizard/NewDatabaseWizard.h" +#include "wizard/ImportWizard.h" DatabaseTabWidget::DatabaseTabWidget(QWidget* parent) : QTabWidget(parent) , m_dbWidgetStateSync(new DatabaseWidgetStateSync(this)) , m_dbWidgetPendingLock(nullptr) , m_databaseOpenDialog(new DatabaseOpenDialog(this)) + , m_databaseOpenInProgress(false) { auto* tabBar = new QTabBar(this); tabBar->setAcceptDrops(true); @@ -63,6 +65,9 @@ DatabaseTabWidget::DatabaseTabWidget(QWidget* parent) #ifdef Q_OS_MACOS connect(macUtils(), SIGNAL(lockDatabases()), SLOT(lockDatabases())); #endif + + m_lockDelayTimer.setSingleShot(true); + connect(&m_lockDelayTimer, &QTimer::timeout, this, [this] { lockDatabases(); }); } DatabaseTabWidget::~DatabaseTabWidget() @@ -73,9 +78,11 @@ void DatabaseTabWidget::toggleTabbar() { if (count() > 1) { tabBar()->show(); + setFocusPolicy(Qt::StrongFocus); emit tabVisibilityChanged(true); } else { tabBar()->hide(); + setFocusPolicy(Qt::NoFocus); emit tabVisibilityChanged(false); } } @@ -152,11 +159,12 @@ void DatabaseTabWidget::addDatabaseTab(const QString& filePath, const QString& password, const QString& keyfile) { - QFileInfo fileInfo(filePath); + QString cleanFilePath = QDir::toNativeSeparators(filePath); + QFileInfo fileInfo(cleanFilePath); QString canonicalFilePath = fileInfo.canonicalFilePath(); if (canonicalFilePath.isEmpty()) { - emit messageGlobal(tr("Failed to open %1. It either does not exist or is not accessible.").arg(filePath), + emit messageGlobal(tr("Failed to open %1. It either does not exist or is not accessible.").arg(cleanFilePath), MessageWidget::Error); return; } @@ -175,10 +183,10 @@ void DatabaseTabWidget::addDatabaseTab(const QString& filePath, } } - auto* dbWidget = new DatabaseWidget(QSharedPointer::create(filePath), this); + auto* dbWidget = new DatabaseWidget(QSharedPointer::create(cleanFilePath), this); addDatabaseTab(dbWidget, inBackground); dbWidget->performUnlockDatabase(password, keyfile); - updateLastDatabases(filePath); + updateLastDatabases(cleanFilePath); } /** @@ -202,6 +210,7 @@ void DatabaseTabWidget::lockAndSwitchToFirstUnlockedDatabase(int index) for (int i = 0, c = count(); i < c; ++i) { if (!databaseWidgetFromIndex(i)->isLocked()) { setCurrentIndex(i); + emitActiveDatabaseChanged(); return; } } @@ -237,30 +246,59 @@ void DatabaseTabWidget::addDatabaseTab(DatabaseWidget* dbWidget, bool inBackgrou SLOT(updateTabName())); connect(dbWidget, SIGNAL(databaseModified()), SLOT(updateTabName())); connect(dbWidget, SIGNAL(databaseSaved()), SLOT(updateTabName())); + connect(dbWidget, SIGNAL(databaseSaved()), SLOT(updateLastDatabases())); connect(dbWidget, SIGNAL(databaseUnlocked()), SLOT(updateTabName())); connect(dbWidget, SIGNAL(databaseUnlocked()), SLOT(emitDatabaseLockChanged())); connect(dbWidget, SIGNAL(databaseLocked()), SLOT(updateTabName())); connect(dbWidget, SIGNAL(databaseLocked()), SLOT(emitDatabaseLockChanged())); } -void DatabaseTabWidget::importCsv() +DatabaseWidget* DatabaseTabWidget::importFile() { - auto filter = QString("%1 (*.csv);;%2 (*)").arg(tr("CSV file"), tr("All files")); - auto fileName = fileDialog()->getOpenFileName(this, tr("Select CSV file"), FileDialog::getLastDir("csv"), filter); - if (fileName.isEmpty()) { - return; + // Show the import wizard + QScopedPointer wizard(new ImportWizard(this)); + if (!wizard->exec()) { + return nullptr; } - FileDialog::saveLastDir("csv", fileName, true); - - auto db = execNewDatabaseWizard(); + auto db = wizard->database(); if (!db) { - return; + // Import wizard was cancelled + return nullptr; } - auto* dbWidget = new DatabaseWidget(db, this); - addDatabaseTab(dbWidget); - dbWidget->switchToCsvImport(fileName); + auto importInto = wizard->importInto(); + if (importInto.first.isNull()) { + // Start the new database wizard with the imported database + auto newDb = execNewDatabaseWizard(); + if (newDb) { + // Merge the imported db into the new one + Merger merger(db.data(), newDb.data()); + merger.merge(); + // Show the new database + auto dbWidget = new DatabaseWidget(newDb, this); + addDatabaseTab(dbWidget); + newDb->markAsModified(); + return dbWidget; + } + } else { + for (int i = 0, c = count(); i < c; ++i) { + // Find the database and group to import into based on import wizard choice + auto dbWidget = databaseWidgetFromIndex(i); + if (!dbWidget->isLocked() && dbWidget->database()->uuid() == importInto.first) { + auto group = dbWidget->database()->rootGroup()->findGroupByUuid(importInto.second); + if (group) { + // Extract the root group from the import database + auto importGroup = db->setRootGroup(new Group()); + importGroup->setParent(group); + setCurrentIndex(i); + return dbWidget; + } + } + } + } + + return nullptr; } void DatabaseTabWidget::mergeDatabase() @@ -282,44 +320,6 @@ void DatabaseTabWidget::mergeDatabase(const QString& filePath) unlockDatabaseInDialog(currentDatabaseWidget(), DatabaseOpenDialog::Intent::Merge, filePath); } -void DatabaseTabWidget::importKeePass1Database() -{ - auto filter = QString("%1 (*.kdb);;%2 (*)").arg(tr("KeePass 1 database"), tr("All files")); - auto fileName = - fileDialog()->getOpenFileName(this, tr("Open KeePass 1 database"), FileDialog::getLastDir("kp1"), filter); - if (fileName.isEmpty()) { - return; - } - - FileDialog::saveLastDir("kp1", fileName, true); - - auto db = QSharedPointer::create(); - auto* dbWidget = new DatabaseWidget(db, this); - addDatabaseTab(dbWidget); - dbWidget->switchToImportKeepass1(fileName); -} - -void DatabaseTabWidget::importOpVaultDatabase() -{ - auto defaultDir = FileDialog::getLastDir("opvault"); -#ifdef Q_OS_MACOS - QString fileName = fileDialog()->getOpenFileName(this, tr("Open OPVault"), defaultDir, "OPVault (*.opvault)"); -#else - QString fileName = fileDialog()->getExistingDirectory(this, tr("Open OPVault"), defaultDir); -#endif - - if (fileName.isEmpty()) { - return; - } - - FileDialog::saveLastDir("opvault", fileName); - - auto db = QSharedPointer::create(); - auto* dbWidget = new DatabaseWidget(db, this); - addDatabaseTab(dbWidget); - dbWidget->switchToImportOpVault(fileName); -} - /** * Attempt to close the current database and remove its tab afterwards. * @@ -488,6 +488,40 @@ void DatabaseTabWidget::exportToHtml() exportDialog->exec(); } +void DatabaseTabWidget::exportToXML() +{ + auto db = databaseWidgetFromIndex(currentIndex())->database(); + if (!db) { + Q_ASSERT(false); + return; + } + + if (!warnOnExport()) { + return; + } + + auto fileName = fileDialog()->getSaveFileName( + this, tr("Export database to XML file"), FileDialog::getLastDir("xml"), tr("XML file").append(" (*.xml)")); + if (fileName.isEmpty()) { + return; + } + + FileDialog::saveLastDir("xml", fileName, true); + + QByteArray xmlData; + QString err; + if (!db->extract(xmlData, &err)) { + emit messageGlobal(tr("Writing the XML file failed").append("\n").append(err), MessageWidget::Error); + } + + QFile file(fileName); + if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) { + emit messageGlobal(tr("Writing the XML file failed").append("\n").append(file.errorString()), + MessageWidget::Error); + } + file.write(xmlData); +} + bool DatabaseTabWidget::warnOnExport() { auto ans = @@ -515,6 +549,23 @@ void DatabaseTabWidget::showDatabaseSettings() currentDatabaseWidget()->switchToDatabaseSettings(); } +#ifdef WITH_XC_BROWSER_PASSKEYS +void DatabaseTabWidget::showPasskeys() +{ + currentDatabaseWidget()->switchToPasskeys(); +} + +void DatabaseTabWidget::importPasskey() +{ + currentDatabaseWidget()->showImportPasskeyDialog(); +} + +void DatabaseTabWidget::importPasskeyToEntry() +{ + currentDatabaseWidget()->showImportPasskeyDialog(true); +} +#endif + bool DatabaseTabWidget::isModified(int index) const { if (count() == 0) { @@ -553,43 +604,18 @@ bool DatabaseTabWidget::hasLockableDatabases() const */ QString DatabaseTabWidget::tabName(int index) { - if (index == -1 || index > count()) { - return ""; + auto dbWidget = databaseWidgetFromIndex(index); + if (!dbWidget) { + return {}; } - auto* dbWidget = databaseWidgetFromIndex(index); - - auto db = dbWidget->database(); - Q_ASSERT(db); - if (!db) { - return ""; - } - - QString tabName; - - if (!db->filePath().isEmpty()) { - QFileInfo fileInfo(db->filePath()); - - if (db->metadata()->name().isEmpty()) { - tabName = fileInfo.fileName(); - } else { - tabName = db->metadata()->name(); - } - - setTabToolTip(index, fileInfo.absoluteFilePath()); - } else { - if (db->metadata()->name().isEmpty()) { - tabName = tr("New Database"); - } else { - tabName = tr("%1 [New Database]", "Database tab name modifier").arg(db->metadata()->name()); - } - } + auto tabName = dbWidget->displayName(); if (dbWidget->isLocked()) { tabName = tr("%1 [Locked]", "Database tab name modifier").arg(tabName); } - if (db->isModified()) { + if (dbWidget->database()->isModified()) { tabName.append("*"); } @@ -612,6 +638,7 @@ void DatabaseTabWidget::updateTabName(int index) } index = indexOf(dbWidget); setTabText(index, tabName(index)); + setTabToolTip(index, dbWidget->displayFilePath()); emit tabNameChanged(); } @@ -648,6 +675,18 @@ bool DatabaseTabWidget::lockDatabases() return numLocked == c; } +void DatabaseTabWidget::lockDatabasesDelayed() +{ + // Delay at least 1 second and up to 20 seconds depending on clipboard state. + // This allows for Auto-Type, Browser Extension, and clipboard to function + // even with "Lock on Minimize" setting enabled. + int lockDelay = qBound(1, clipboard()->secondsToClear(), 20); + m_lockDelayTimer.setInterval(lockDelay * 1000); + if (!m_lockDelayTimer.isActive()) { + m_lockDelayTimer.start(); + } +} + /** * Unlock a database with an unlock popup dialog. * @@ -766,7 +805,7 @@ void DatabaseTabWidget::updateLastDatabases(const QString& filename) config()->remove(Config::LastDatabases); } else { QStringList lastDatabases = config()->get(Config::LastDatabases).toStringList(); - lastDatabases.prepend(filename); + lastDatabases.prepend(QDir::toNativeSeparators(filename)); lastDatabases.removeDuplicates(); while (lastDatabases.count() > config()->get(Config::NumberOfRememberedLastDatabases).toInt()) { @@ -776,6 +815,18 @@ void DatabaseTabWidget::updateLastDatabases(const QString& filename) } } +void DatabaseTabWidget::updateLastDatabases() +{ + auto dbWidget = currentDatabaseWidget(); + + if (dbWidget) { + auto filePath = dbWidget->database()->filePath(); + if (!filePath.isEmpty()) { + updateLastDatabases(filePath); + } + } +} + void DatabaseTabWidget::emitActiveDatabaseChanged() { emit activeDatabaseChanged(currentDatabaseWidget()); @@ -793,6 +844,7 @@ void DatabaseTabWidget::emitDatabaseLockChanged() emit databaseLocked(dbWidget); } else { emit databaseUnlocked(dbWidget); + m_databaseOpenInProgress = false; } } @@ -825,6 +877,11 @@ void DatabaseTabWidget::performGlobalAutoType(const QString& search) void DatabaseTabWidget::performBrowserUnlock() { + if (m_databaseOpenInProgress) { + return; + } + + m_databaseOpenInProgress = true; auto dbWidget = currentDatabaseWidget(); if (dbWidget && dbWidget->isLocked()) { unlockAnyDatabaseInDialog(DatabaseOpenDialog::Intent::Browser); diff --git a/src/gui/DatabaseTabWidget.h b/src/gui/DatabaseTabWidget.h index 8432116ed..5c995b536 100644 --- a/src/gui/DatabaseTabWidget.h +++ b/src/gui/DatabaseTabWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 KeePassXC Team + * Copyright (C) 2023 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,9 +19,11 @@ #define KEEPASSX_DATABASETABWIDGET_H #include "DatabaseOpenDialog.h" +#include "config-keepassx.h" #include "gui/MessageWidget.h" #include +#include class Database; class DatabaseWidget; @@ -62,24 +64,30 @@ public slots: DatabaseWidget* newDatabase(); void openDatabase(); void mergeDatabase(); - void importCsv(); - void importKeePass1Database(); - void importOpVaultDatabase(); + DatabaseWidget* importFile(); bool saveDatabase(int index = -1); bool saveDatabaseAs(int index = -1); bool saveDatabaseBackup(int index = -1); void exportToCsv(); void exportToHtml(); + void exportToXML(); bool lockDatabases(); + void lockDatabasesDelayed(); void closeDatabaseFromSender(); void unlockDatabaseInDialog(DatabaseWidget* dbWidget, DatabaseOpenDialog::Intent intent); void unlockDatabaseInDialog(DatabaseWidget* dbWidget, DatabaseOpenDialog::Intent intent, const QString& filePath); + void unlockAnyDatabaseInDialog(DatabaseOpenDialog::Intent intent); void relockPendingDatabase(); void showDatabaseSecurity(); void showDatabaseReports(); void showDatabaseSettings(); +#ifdef WITH_XC_BROWSER_PASSKEYS + void showPasskeys(); + void importPasskey(); + void importPasskeyToEntry(); +#endif void performGlobalAutoType(const QString& search); void performBrowserUnlock(); @@ -101,17 +109,19 @@ private slots: void emitDatabaseLockChanged(); void handleDatabaseUnlockDialogFinished(bool accepted, DatabaseWidget* dbWidget); void handleExportError(const QString& reason); + void updateLastDatabases(); private: QSharedPointer execNewDatabaseWizard(); void updateLastDatabases(const QString& filename); bool warnOnExport(); - void unlockAnyDatabaseInDialog(DatabaseOpenDialog::Intent intent); void displayUnlockDialog(); QPointer m_dbWidgetStateSync; QPointer m_dbWidgetPendingLock; QPointer m_databaseOpenDialog; + QTimer m_lockDelayTimer; + bool m_databaseOpenInProgress; }; #endif // KEEPASSX_DATABASETABWIDGET_H diff --git a/src/gui/DatabaseWidget.cpp b/src/gui/DatabaseWidget.cpp index af3245adf..d51e9483d 100644 --- a/src/gui/DatabaseWidget.cpp +++ b/src/gui/DatabaseWidget.cpp @@ -1,6 +1,6 @@ /* + * Copyright (C) 2023 KeePassXC Team * Copyright (C) 2010 Felix Geyer - * Copyright (C) 2021 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,25 +23,27 @@ #include #include #include +#include #include #include #include #include +#include #include -#include #include "autotype/AutoType.h" #include "core/EntrySearcher.h" #include "core/Merger.h" +#include "core/Tools.h" #include "gui/Clipboard.h" #include "gui/CloneDialog.h" +#include "gui/DatabaseOpenDialog.h" +#include "gui/DatabaseOpenWidget.h" #include "gui/EntryPreviewWidget.h" #include "gui/FileDialog.h" #include "gui/GuiTools.h" -#include "gui/KeePass1OpenWidget.h" #include "gui/MainWindow.h" #include "gui/MessageBox.h" -#include "gui/OpVaultOpenWidget.h" #include "gui/TotpDialog.h" #include "gui/TotpExportSettingsDialog.h" #include "gui/TotpSetupDialog.h" @@ -50,7 +52,8 @@ #include "gui/group/EditGroupWidget.h" #include "gui/group/GroupView.h" #include "gui/reports/ReportsDialog.h" -#include "gui/tag/TagModel.h" +#include "gui/tag/TagView.h" +#include "gui/widgets/ElidedLabel.h" #include "keeshare/KeeShare.h" #ifdef WITH_XC_NETWORKING @@ -61,6 +64,10 @@ #include "sshagent/SSHAgent.h" #endif +#ifdef WITH_XC_BROWSER_PASSKEYS +#include "gui/passkeys/PasskeyImporter.h" +#endif + DatabaseWidget::DatabaseWidget(QSharedPointer db, QWidget* parent) : QStackedWidget(parent) , m_db(std::move(db)) @@ -71,18 +78,15 @@ DatabaseWidget::DatabaseWidget(QSharedPointer db, QWidget* parent) , m_previewView(new EntryPreviewWidget(this)) , m_previewSplitter(new QSplitter(m_mainWidget)) , m_searchingLabel(new QLabel(this)) - , m_shareLabel(new QLabel(this)) - , m_csvImportWizard(new CsvImportWizard(this)) + , m_shareLabel(new ElidedLabel(this)) , m_editEntryWidget(new EditEntryWidget(this)) , m_editGroupWidget(new EditGroupWidget(this)) , m_historyEditEntryWidget(new EditEntryWidget(this)) , m_reportsDialog(new ReportsDialog(this)) , m_databaseSettingDialog(new DatabaseSettingsDialog(this)) , m_databaseOpenWidget(new DatabaseOpenWidget(this)) - , m_keepass1OpenWidget(new KeePass1OpenWidget(this)) - , m_opVaultOpenWidget(new OpVaultOpenWidget(this)) , m_groupView(new GroupView(m_db.data(), this)) - , m_tagView(new QListView(this)) + , m_tagView(new TagView(this)) , m_saveAttempts(0) , m_entrySearcher(new EntrySearcher(false)) { @@ -97,20 +101,15 @@ DatabaseWidget::DatabaseWidget(QSharedPointer db, QWidget* parent) hbox->addWidget(m_mainSplitter); m_mainWidget->setLayout(mainLayout); - // Setup tags view and place under groups - auto tagModel = new TagModel(m_db); + // Setup searches and tags view and place under groups m_tagView->setObjectName("tagView"); - m_tagView->setModel(tagModel); - m_tagView->setFrameStyle(QFrame::NoFrame); - m_tagView->setSelectionMode(QListView::SingleSelection); - m_tagView->setSelectionBehavior(QListView::SelectRows); - m_tagView->setCurrentIndex(tagModel->index(0)); - connect(m_tagView, SIGNAL(activated(QModelIndex)), this, SLOT(filterByTag(QModelIndex))); - connect(m_tagView, SIGNAL(clicked(QModelIndex)), this, SLOT(filterByTag(QModelIndex))); + m_tagView->setDatabase(m_db); + connect(m_tagView, SIGNAL(activated(QModelIndex)), this, SLOT(filterByTag())); + connect(m_tagView, SIGNAL(clicked(QModelIndex)), this, SLOT(filterByTag())); auto tagsWidget = new QWidget(); auto tagsLayout = new QVBoxLayout(); - auto tagsTitle = new QLabel(tr("Database Tags")); + auto tagsTitle = new QLabel(tr("Searches and Tags")); tagsTitle->setProperty("title", true); tagsWidget->setObjectName("tagWidget"); tagsWidget->setLayout(tagsLayout); @@ -162,7 +161,7 @@ DatabaseWidget::DatabaseWidget(QSharedPointer db, QWidget* parent) #ifdef WITH_XC_KEESHARE m_shareLabel->setObjectName("KeeShareBanner"); - m_shareLabel->setText(tr("Shared group…")); + m_shareLabel->setRawText(tr("Shared group…")); m_shareLabel->setAlignment(Qt::AlignCenter); m_shareLabel->setVisible(false); #endif @@ -177,12 +176,9 @@ DatabaseWidget::DatabaseWidget(QSharedPointer db, QWidget* parent) m_editEntryWidget->setObjectName("editEntryWidget"); m_editGroupWidget->setObjectName("editGroupWidget"); - m_csvImportWizard->setObjectName("csvImportWizard"); m_reportsDialog->setObjectName("reportsDialog"); m_databaseSettingDialog->setObjectName("databaseSettingsDialog"); m_databaseOpenWidget->setObjectName("databaseOpenWidget"); - m_keepass1OpenWidget->setObjectName("keepass1OpenWidget"); - m_opVaultOpenWidget->setObjectName("opVaultOpenWidget"); addChildWidget(m_mainWidget); addChildWidget(m_editEntryWidget); @@ -191,28 +187,16 @@ DatabaseWidget::DatabaseWidget(QSharedPointer db, QWidget* parent) addChildWidget(m_databaseSettingDialog); addChildWidget(m_historyEditEntryWidget); addChildWidget(m_databaseOpenWidget); - addChildWidget(m_csvImportWizard); - addChildWidget(m_keepass1OpenWidget); - addChildWidget(m_opVaultOpenWidget); // clang-format off connect(m_mainSplitter, SIGNAL(splitterMoved(int,int)), SIGNAL(splitterSizesChanged())); connect(m_groupSplitter, SIGNAL(splitterMoved(int,int)), SIGNAL(splitterSizesChanged())); connect(m_previewSplitter, SIGNAL(splitterMoved(int,int)), SIGNAL(splitterSizesChanged())); connect(this, SIGNAL(currentModeChanged(DatabaseWidget::Mode)), m_previewView, SLOT(setDatabaseMode(DatabaseWidget::Mode))); - connect(m_previewView, SIGNAL(errorOccurred(QString)), SLOT(showErrorMessage(QString))); connect(m_previewView, SIGNAL(entryUrlActivated(Entry*)), SLOT(openUrlForEntry(Entry*))); connect(m_entryView, SIGNAL(viewStateChanged()), SIGNAL(entryViewStateChanged())); connect(m_groupView, SIGNAL(groupSelectionChanged()), SLOT(onGroupChanged())); - connect(m_groupView, SIGNAL(groupSelectionChanged()), SIGNAL(groupChanged())); connect(m_groupView, &GroupView::groupFocused, this, [this] { m_previewView->setGroup(currentGroup()); }); - connect(m_entryView, &EntryView::entrySelectionChanged, this, [this](Entry * currentEntry) { - if (currentEntry) { - m_previewView->setEntry(currentEntry); - } else { - m_previewView->setGroup(groupView()->currentGroup()); - } - }); connect(m_entryView, SIGNAL(entryActivated(Entry*,EntryModel::ModelColumn)), SLOT(entryActivationSignalReceived(Entry*,EntryModel::ModelColumn))); connect(m_entryView, SIGNAL(entrySelectionChanged(Entry*)), SLOT(onEntryChanged(Entry*))); @@ -223,9 +207,6 @@ DatabaseWidget::DatabaseWidget(QSharedPointer db, QWidget* parent) connect(m_reportsDialog, SIGNAL(editFinished(bool)), SLOT(switchToMainView(bool))); connect(m_databaseSettingDialog, SIGNAL(editFinished(bool)), SLOT(switchToMainView(bool))); connect(m_databaseOpenWidget, SIGNAL(dialogFinished(bool)), SLOT(loadDatabase(bool))); - connect(m_keepass1OpenWidget, SIGNAL(dialogFinished(bool)), SLOT(loadDatabase(bool))); - connect(m_opVaultOpenWidget, SIGNAL(dialogFinished(bool)), SLOT(loadDatabase(bool))); - connect(m_csvImportWizard, SIGNAL(importFinished(bool)), SLOT(csvImportFinished(bool))); connect(this, SIGNAL(currentChanged(int)), SLOT(emitCurrentModeChanged())); connect(this, SIGNAL(requestGlobalAutoType(const QString&)), parent, SLOT(performGlobalAutoType(const QString&))); // clang-format on @@ -276,10 +257,8 @@ DatabaseWidget::Mode DatabaseWidget::currentMode() const return Mode::None; } else if (currentWidget() == m_mainWidget) { return Mode::ViewMode; - } else if (currentWidget() == m_databaseOpenWidget || currentWidget() == m_keepass1OpenWidget) { + } else if (currentWidget() == m_databaseOpenWidget) { return Mode::LockedMode; - } else if (currentWidget() == m_csvImportWizard) { - return Mode::ImportMode; } else { return Mode::EditMode; } @@ -330,6 +309,45 @@ bool DatabaseWidget::isEditWidgetModified() const return false; } +QString DatabaseWidget::displayName() const +{ + if (!m_db) { + return {}; + } + + auto displayName = m_db->metadata()->name(); + if (!m_db->filePath().isEmpty()) { + if (displayName.isEmpty()) { + displayName = displayFileName(); + } + } else { + if (displayName.isEmpty()) { + displayName = tr("New Database"); + } else { + displayName = tr("%1 [New Database]", "Database tab name modifier").arg(displayName); + } + } + + return displayName; +} + +QString DatabaseWidget::displayFileName() const +{ + if (m_db) { + QFileInfo fileinfo(m_db->filePath()); + return fileinfo.fileName(); + } + return {}; +} + +QString DatabaseWidget::displayFilePath() const +{ + if (m_db) { + return m_db->canonicalFilePath(); + } + return {}; +} + QHash> DatabaseWidget::splitterSizes() const { return {{Config::GUI_SplitterState, m_mainSplitter->sizes()}, @@ -403,10 +421,6 @@ void DatabaseWidget::createEntry() m_newEntry.reset(new Entry()); - if (isSearchActive()) { - m_newEntry->setTitle(getCurrentSearch()); - endSearch(); - } m_newEntry->setUuid(QUuid::createUuid()); m_newEntry->setUsername(m_db->metadata()->defaultUserName()); m_newParent = m_groupView->currentGroup(); @@ -431,8 +445,7 @@ void DatabaseWidget::replaceDatabase(QSharedPointer db) m_db = std::move(db); connectDatabaseSignals(); m_groupView->changeDatabase(m_db); - auto tagModel = new TagModel(m_db); - m_tagView->setModel(tagModel); + m_tagView->setDatabase(m_db); // Restore the new parent group pointer, if not found default to the root group // this prevents data loss when merging a database while creating a new entry @@ -464,6 +477,11 @@ void DatabaseWidget::cloneEntry() } auto cloneDialog = new CloneDialog(this, m_db.data(), currentEntry); + connect(cloneDialog, &CloneDialog::entryCloned, this, [this](auto entry) { + refreshSearch(); + m_entryView->setCurrentEntry(entry); + }); + cloneDialog->show(); } @@ -500,6 +518,10 @@ void DatabaseWidget::setupTotp() auto setupTotpDialog = new TotpSetupDialog(this, currentEntry); connect(setupTotpDialog, SIGNAL(totpUpdated()), SIGNAL(entrySelectionChanged())); + if (currentWidget() == m_editEntryWidget) { + // Entry is being edited, tell it when we are finished updating TOTP + connect(setupTotpDialog, SIGNAL(totpUpdated()), m_editEntryWidget, SLOT(updateTotp())); + } connect(this, &DatabaseWidget::databaseLockRequested, setupTotpDialog, &TotpSetupDialog::close); setupTotpDialog->open(); } @@ -571,11 +593,7 @@ void DatabaseWidget::deleteEntries(QList selectedEntries, bool confirm) void DatabaseWidget::setFocus(Qt::FocusReason reason) { - if (reason == Qt::BacktabFocusReason) { - m_previewView->setFocus(); - } else { - m_groupView->setFocus(); - } + focusNextPrevChild(reason == Qt::TabFocusReason); } void DatabaseWidget::focusOnEntries(bool editIfFocused) @@ -642,20 +660,20 @@ void DatabaseWidget::copyPassword() bool clearClipboard = config()->get(Config::Security_ClearClipboard).toBool(); auto plainTextEdit = qobject_cast(focusWidget()); - if (plainTextEdit) { + if (plainTextEdit && plainTextEdit->textCursor().hasSelection()) { clipboard()->setText(plainTextEdit->textCursor().selectedText(), clearClipboard); return; } auto label = qobject_cast(focusWidget()); - if (label) { + if (label && label->hasSelectedText()) { clipboard()->setText(label->selectedText(), clearClipboard); return; } auto textEdit = qobject_cast(focusWidget()); - if (textEdit) { - clipboard()->setText(textEdit->textCursor().selectedText(), clearClipboard); + if (textEdit && textEdit->textCursor().hasSelection()) { + clipboard()->setText(textEdit->textCursor().selection().toPlainText(), clearClipboard); return; } @@ -665,6 +683,15 @@ void DatabaseWidget::copyPassword() } } +void DatabaseWidget::copyPasswordTotp() +{ + auto currentEntry = currentSelectedEntry(); + if (currentEntry) { + setClipboardTextAndMinimize( + currentEntry->resolveMultiplePlaceholders(currentEntry->password()).append(currentEntry->totp())); + } +} + void DatabaseWidget::copyURL() { auto currentEntry = currentSelectedEntry(); @@ -690,11 +717,23 @@ void DatabaseWidget::copyAttribute(QAction* action) } } -void DatabaseWidget::filterByTag(const QModelIndex& index) +void DatabaseWidget::filterByTag() { - m_tagView->selectionModel()->setCurrentIndex(index, QItemSelectionModel::Select); - const auto model = static_cast(m_tagView->model()); - emit requestSearch(model->data(index, Qt::UserRole).toString()); + QStringList searchTerms; + const auto selections = m_tagView->selectionModel()->selectedIndexes(); + for (const auto& index : selections) { + searchTerms << index.data(Qt::UserRole).toString(); + } + emit requestSearch(searchTerms.join(" ")); +} + +void DatabaseWidget::setTag(QAction* action) +{ + auto tag = action->text(); + auto state = action->isChecked(); + for (auto entry : m_entryView->selectedEntries()) { + state ? entry->addTag(tag) : entry->removeTag(tag); + } } void DatabaseWidget::showTotpKeyQrCode() @@ -1045,12 +1084,6 @@ void DatabaseWidget::switchToMainView(bool previousDialogAccepted) // Workaround: ensure entries are focused so search doesn't reset m_entryView->setFocus(); } - - if (sender() == m_entryView || sender() == m_editEntryWidget) { - onEntryChanged(m_entryView->currentEntry()); - } else if (sender() == m_groupView || sender() == m_editGroupWidget) { - onGroupChanged(); - } } void DatabaseWidget::switchToHistoryView(Entry* entry) @@ -1108,6 +1141,8 @@ void DatabaseWidget::connectDatabaseSignals() connect(m_db.data(), &Database::modified, this, &DatabaseWidget::onDatabaseModified); connect(m_db.data(), &Database::databaseSaved, this, &DatabaseWidget::databaseSaved); connect(m_db.data(), &Database::databaseFileChanged, this, &DatabaseWidget::reloadDatabaseFile); + connect(m_db.data(), &Database::databaseNonDataChanged, this, &DatabaseWidget::databaseNonDataChanged); + connect(m_db.data(), &Database::databaseNonDataChanged, this, &DatabaseWidget::onDatabaseNonDataChanged); } void DatabaseWidget::loadDatabase(bool accepted) @@ -1128,22 +1163,13 @@ void DatabaseWidget::loadDatabase(bool accepted) // Only show expired entries if first unlock and option is enabled if (m_groupBeforeLock.isNull() && config()->get(Config::GUI_ShowExpiredEntriesOnDatabaseUnlock).toBool()) { int expirationOffset = config()->get(Config::GUI_ShowExpiredEntriesOnDatabaseUnlockOffsetDays).toInt(); - QList expiredEntries; - for (auto entry : m_db->rootGroup()->entriesRecursive()) { - if (entry->willExpireInDays(expirationOffset) && !entry->excludeFromReports() && !entry->isRecycled()) { - expiredEntries << entry; - } - } - - if (!expiredEntries.isEmpty()) { - m_entryView->displaySearch(expiredEntries); - m_entryView->setFirstEntryActive(); - m_searchingLabel->setText( - expirationOffset == 0 - ? tr("Expired entries") - : tr("Entries expiring within %1 day(s)", "", expirationOffset).arg(expirationOffset)); - m_searchingLabel->setVisible(true); + if (expirationOffset <= 0) { + m_nextSearchLabelText = tr("Expired entries"); + } else { + m_nextSearchLabelText = + tr("Entries expiring within %1 day(s)", "", expirationOffset).arg(expirationOffset); } + requestSearch(QString("is:expired-%1").arg(expirationOffset)); } m_groupBeforeLock = QUuid(); @@ -1336,33 +1362,6 @@ void DatabaseWidget::switchToOpenDatabase(const QString& filePath, const QString m_databaseOpenWidget->enterKey(password, keyFile); } -void DatabaseWidget::switchToCsvImport(const QString& filePath) -{ - setCurrentWidget(m_csvImportWizard); - m_csvImportWizard->load(filePath, m_db.data()); -} - -void DatabaseWidget::csvImportFinished(bool accepted) -{ - if (!accepted) { - emit closeRequest(); - } else { - switchToMainView(); - } -} - -void DatabaseWidget::switchToImportKeepass1(const QString& filePath) -{ - m_keepass1OpenWidget->load(filePath); - setCurrentWidget(m_keepass1OpenWidget); -} - -void DatabaseWidget::switchToImportOpVault(const QString& fileName) -{ - m_opVaultOpenWidget->load(fileName); - setCurrentWidget(m_opVaultOpenWidget); -} - void DatabaseWidget::switchToEntryEdit() { auto entry = m_entryView->currentEntry(); @@ -1399,6 +1398,30 @@ void DatabaseWidget::switchToDatabaseSecurity() m_databaseSettingDialog->showDatabaseKeySettings(); } +#ifdef WITH_XC_BROWSER_PASSKEYS +void DatabaseWidget::switchToPasskeys() +{ + switchToDatabaseReports(); + m_reportsDialog->activatePasskeysPage(); +} + +void DatabaseWidget::showImportPasskeyDialog(bool isEntry) +{ + PasskeyImporter passkeyImporter; + + if (isEntry) { + auto currentEntry = currentSelectedEntry(); + if (!currentEntry) { + return; + } + + passkeyImporter.importPasskey(m_db, currentEntry); + } else { + passkeyImporter.importPasskey(m_db); + } +} +#endif + void DatabaseWidget::performUnlockDatabase(const QString& password, const QString& keyfile) { if (password.isEmpty() && keyfile.isEmpty()) { @@ -1414,7 +1437,10 @@ void DatabaseWidget::performUnlockDatabase(const QString& password, const QStrin void DatabaseWidget::refreshSearch() { if (isSearchActive()) { + auto selectedEntry = m_entryView->currentEntry(); search(m_lastSearchText); + // Re-select the previous entry if it is still in the search + m_entryView->setCurrentEntry(selectedEntry); } } @@ -1425,22 +1451,33 @@ void DatabaseWidget::search(const QString& searchtext) return; } - emit searchModeAboutToActivate(); + auto searchGroup = m_db->rootGroup(); + if (m_searchLimitGroup && m_nextSearchLabelText.isEmpty()) { + searchGroup = currentGroup(); + } - Group* searchGroup = m_searchLimitGroup ? currentGroup() : m_db->rootGroup(); - - QList searchResult = m_entrySearcher->search(searchtext, searchGroup); - - m_entryView->displaySearch(searchResult); - m_lastSearchText = searchtext; + auto results = m_entrySearcher->search(searchtext, searchGroup); // Display a label detailing our search results - if (!searchResult.isEmpty()) { - m_searchingLabel->setText(tr("Search Results (%1)").arg(searchResult.size())); + if (!m_nextSearchLabelText.isEmpty()) { + // Custom searches don't display if there are no results + if (results.isEmpty()) { + endSearch(); + return; + } + m_searchingLabel->setText(m_nextSearchLabelText); + m_nextSearchLabelText.clear(); + } else if (!results.isEmpty()) { + m_searchingLabel->setText(tr("Search Results (%1)").arg(results.size())); } else { m_searchingLabel->setText(tr("No Results")); } + emit searchModeAboutToActivate(); + + m_entryView->displaySearch(results); + m_lastSearchText = searchtext; + m_searchingLabel->setVisible(true); #ifdef WITH_XC_KEESHARE m_shareLabel->setVisible(false); @@ -1449,6 +1486,40 @@ void DatabaseWidget::search(const QString& searchtext) emit searchModeActivated(); } +void DatabaseWidget::saveSearch(const QString& searchtext) +{ + if (!m_db->isInitialized()) { + return; + } + + // Pull the existing searches and prepend an empty string to allow + // the user to input a new search name without seeing the first one + QStringList searches(m_db->metadata()->savedSearches().keys()); + searches.prepend(""); + + QInputDialog dialog(this); + connect(this, &DatabaseWidget::databaseLockRequested, &dialog, &QInputDialog::reject); + + dialog.setComboBoxEditable(true); + dialog.setComboBoxItems(searches); + dialog.setOkButtonText(tr("Save")); + dialog.setLabelText(tr("Enter a unique name or overwrite an existing search from the list:")); + dialog.setWindowTitle(tr("Save Search")); + dialog.exec(); + + auto name = dialog.textValue(); + if (!name.isEmpty()) { + m_db->metadata()->addSavedSearch(name, searchtext); + } +} + +void DatabaseWidget::deleteSearch(const QString& name) +{ + if (m_db->isInitialized()) { + m_db->metadata()->deleteSavedSearch(name); + } +} + void DatabaseWidget::setSearchCaseSensitive(bool state) { m_entrySearcher->setCaseSensitive(state); @@ -1478,12 +1549,14 @@ void DatabaseWidget::onGroupChanged() #ifdef WITH_XC_KEESHARE auto shareLabel = KeeShare::sharingLabel(group); if (!shareLabel.isEmpty()) { - m_shareLabel->setText(shareLabel); + m_shareLabel->setRawText(shareLabel); m_shareLabel->setVisible(true); } else { m_shareLabel->setVisible(false); } #endif + + emit groupChanged(); } void DatabaseWidget::onDatabaseModified() @@ -1497,6 +1570,14 @@ void DatabaseWidget::onDatabaseModified() refreshSearch(); } +void DatabaseWidget::onDatabaseNonDataChanged() +{ + // Force mark the database modified if we are not auto-saving non-data changes + if (!config()->get(Config::AutoSaveNonDataChanges).toBool()) { + m_db->markAsModified(); + } +} + QString DatabaseWidget::getCurrentSearch() { return m_lastSearchText; @@ -1520,6 +1601,7 @@ void DatabaseWidget::endSearch() m_searchingLabel->setText(tr("Searching…")); m_lastSearchText.clear(); + m_nextSearchLabelText.clear(); // Tell the search widget to clear emit clearSearch(); @@ -1539,6 +1621,8 @@ void DatabaseWidget::onEntryChanged(Entry* entry) { if (entry) { m_previewView->setEntry(entry); + } else { + m_previewView->setGroup(groupView()->currentGroup()); } emit entrySelectionChanged(); @@ -1565,12 +1649,12 @@ Group* DatabaseWidget::currentGroup() const void DatabaseWidget::closeEvent(QCloseEvent* event) { - if (!isLocked() && !lock()) { + if (!lock() || m_databaseOpenWidget->unlockingDatabase()) { event->ignore(); return; } - m_databaseOpenWidget->resetQuickUnlock(); + m_databaseOpenWidget->resetQuickUnlock(); event->accept(); } @@ -1586,31 +1670,37 @@ void DatabaseWidget::showEvent(QShowEvent* event) bool DatabaseWidget::focusNextPrevChild(bool next) { // [parent] <-> GroupView <-> TagView <-> EntryView <-> EntryPreview <-> [parent] - if (next) { - if (m_groupView->hasFocus()) { - m_tagView->setFocus(); - return true; - } else if (m_tagView->hasFocus()) { - m_entryView->setFocus(); - return true; - } else if (m_entryView->hasFocus()) { - m_previewView->setFocus(); - return true; - } - } else { - if (m_previewView->hasFocus()) { - m_entryView->setFocus(); - return true; - } else if (m_entryView->hasFocus()) { - m_tagView->setFocus(); - return true; - } else if (m_tagView->hasFocus()) { - m_groupView->setFocus(); - return true; - } + QList sequence = {m_groupView, m_tagView, m_entryView, m_previewView}; + auto widget = qApp->focusWidget(); + if (!widget) { + return QStackedWidget::focusNextPrevChild(next); } - // Defer to the parent widget to make a decision + // Find the nearest parent widget in the sequence list + int idx; + do { + idx = sequence.indexOf(widget); + widget = widget->parentWidget(); + } while (idx == -1 && widget); + + // Determine next/previous or wrap around + if (idx == -1) { + idx = next ? 0 : sequence.size() - 1; + } else { + idx = next ? idx + 1 : idx - 1; + } + + // Find the next visible element in the sequence and set the focus + while (idx >= 0 && idx < sequence.size()) { + widget = sequence[idx]; + if (widget && widget->isVisible() && widget->isEnabled() && widget->height() > 0 && widget->width() > 0) { + widget->setFocus(); + return widget; + } + idx = next ? idx + 1 : idx - 1; + } + + // Ran out of options, defer to the parent widget return QStackedWidget::focusNextPrevChild(next); } @@ -1709,8 +1799,8 @@ bool DatabaseWidget::lock() void DatabaseWidget::reloadDatabaseFile() { - // Ignore reload if we are locked or currently editing an entry or group - if (!m_db || isLocked() || isEntryEditActive() || isGroupEditActive()) { + // Ignore reload if we are locked, saving, or currently editing an entry or group + if (!m_db || isLocked() || isEntryEditActive() || isGroupEditActive() || isSaving()) { return; } @@ -1895,6 +1985,16 @@ bool DatabaseWidget::currentEntryHasNotes() return !currentEntry->resolveMultiplePlaceholders(currentEntry->notes()).isEmpty(); } +bool DatabaseWidget::currentEntryHasAutoTypeEnabled() +{ + auto currentEntry = currentSelectedEntry(); + if (!currentEntry) { + return false; + } + + return currentEntry->autoTypeEnabled() && currentEntry->groupAutoTypeEnabled(); +} + GroupView* DatabaseWidget::groupView() { return m_groupView; @@ -1980,8 +2080,10 @@ bool DatabaseWidget::saveAs() QString oldFilePath = m_db->filePath(); if (!QFileInfo::exists(oldFilePath)) { + QString defaultFileName = config()->get(Config::DefaultDatabaseFileName).toString(); oldFilePath = - QDir::toNativeSeparators(config()->get(Config::LastDir).toString() + "/" + tr("Passwords").append(".kdbx")); + QDir::toNativeSeparators(FileDialog::getLastDir("db") + "/" + + (defaultFileName.isEmpty() ? tr("Passwords").append(".kdbx") : defaultFileName)); } const QString newFilePath = fileDialog()->getSaveFileName( this, tr("Save database as"), oldFilePath, tr("KeePass 2 Database").append(" (*.kdbx)"), nullptr, nullptr); @@ -2051,7 +2153,7 @@ bool DatabaseWidget::performSave(QString& errorMessage, const QString& fileName) m_groupView->setDisabled(false); m_tagView->setDisabled(false); - if (focusWidget) { + if (focusWidget && focusWidget->isVisible()) { focusWidget->setFocus(); } @@ -2068,13 +2170,15 @@ bool DatabaseWidget::saveBackup() while (true) { QString oldFilePath = m_db->filePath(); if (!QFileInfo::exists(oldFilePath)) { - oldFilePath = QDir::toNativeSeparators(config()->get(Config::LastDir).toString() + "/" - + tr("Passwords").append(".kdbx")); + QString defaultFileName = config()->get(Config::DefaultDatabaseFileName).toString(); + oldFilePath = QDir::toNativeSeparators( + FileDialog::getLastDir("db") + "/" + + (defaultFileName.isEmpty() ? tr("Passwords").append(".kdbx") : defaultFileName)); } const QString newFilePath = fileDialog()->getSaveFileName(this, tr("Save database backup"), - FileDialog::getLastDir("backup"), + FileDialog::getLastDir("backup", oldFilePath), tr("KeePass 2 Database").append(" (*.kdbx)"), nullptr, nullptr); diff --git a/src/gui/DatabaseWidget.h b/src/gui/DatabaseWidget.h index d77a38dd7..571db44a4 100644 --- a/src/gui/DatabaseWidget.h +++ b/src/gui/DatabaseWidget.h @@ -1,6 +1,6 @@ /* + * Copyright (C) 2023 KeePassXC Team * Copyright (C) 2010 Felix Geyer - * Copyright (C) 2021 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,36 +19,32 @@ #ifndef KEEPASSX_DATABASEWIDGET_H #define KEEPASSX_DATABASEWIDGET_H -#include -#include +#include #include -#include "DatabaseOpenDialog.h" -#include "config-keepassx.h" +#include "core/Database.h" +#include "core/Group.h" +#include "core/Metadata.h" #include "gui/MessageWidget.h" -#include "gui/csvImport/CsvImportWizard.h" #include "gui/entry/EntryModel.h" +class DatabaseOpenDialog; class DatabaseOpenWidget; -class KeePass1OpenWidget; -class OpVaultOpenWidget; class DatabaseSettingsDialog; class ReportsDialog; -class Database; class FileWatcher; class EditEntryWidget; class EditGroupWidget; -class Entry; class EntryView; class EntrySearcher; -class Group; class GroupView; class QFile; class QMenu; class QSplitter; class QLabel; -class MessageWidget; class EntryPreviewWidget; +class TagView; +class ElidedLabel; namespace Ui { @@ -65,7 +61,6 @@ public: enum class Mode { None, - ImportMode, ViewMode, EditMode, LockedMode @@ -102,6 +97,10 @@ public: int numberOfSelectedEntries() const; int currentEntryIndex() const; + QString displayName() const; + QString displayFileName() const; + QString displayFilePath() const; + QStringList customEntryAttributes() const; bool isEditWidgetModified() const; void clearAllWidgets(); @@ -115,6 +114,7 @@ public: #ifdef WITH_XC_SSHAGENT bool currentEntryHasSshKey(); #endif + bool currentEntryHasAutoTypeEnabled(); QByteArray entryViewState() const; bool setEntryViewState(const QByteArray& state) const; @@ -126,6 +126,7 @@ signals: // relayed Database signals void databaseFilePathChanged(const QString& oldPath, const QString& newPath); void databaseModified(); + void databaseNonDataChanged(); void databaseSaved(); void databaseUnlocked(); void databaseLockRequested(); @@ -175,10 +176,12 @@ public slots: void copyURL(); void copyNotes(); void copyAttribute(QAction* action); - void filterByTag(const QModelIndex& index); + void filterByTag(); + void setTag(QAction* action); void showTotp(); void showTotpKeyQrCode(); void copyTotp(); + void copyPasswordTotp(); void setupTotp(); #ifdef WITH_XC_SSHAGENT void addToAgent(); @@ -206,18 +209,20 @@ public slots: void switchToDatabaseSecurity(); void switchToDatabaseReports(); void switchToDatabaseSettings(); +#ifdef WITH_XC_BROWSER_PASSKEYS + void switchToPasskeys(); + void showImportPasskeyDialog(bool isEntry = false); +#endif void switchToOpenDatabase(); void switchToOpenDatabase(const QString& filePath); void switchToOpenDatabase(const QString& filePath, const QString& password, const QString& keyFile); - void switchToCsvImport(const QString& filePath); void performUnlockDatabase(const QString& password, const QString& keyfile = {}); - void csvImportFinished(bool accepted); - void switchToImportKeepass1(const QString& filePath); - void switchToImportOpVault(const QString& fileName); void emptyRecycleBin(); // Search related slots void search(const QString& searchtext); + void saveSearch(const QString& searchtext); + void deleteSearch(const QString& name); void setSearchCaseSensitive(bool state); void setSearchLimitGroup(bool state); void endSearch(); @@ -246,6 +251,7 @@ private slots: void onEntryChanged(Entry* entry); void onGroupChanged(); void onDatabaseModified(); + void onDatabaseNonDataChanged(); void connectDatabaseSignals(); void loadDatabase(bool accepted); void unlockDatabase(bool accepted); @@ -272,18 +278,15 @@ private: QPointer m_previewView; QPointer m_previewSplitter; QPointer m_searchingLabel; - QPointer m_shareLabel; - QPointer m_csvImportWizard; + QPointer m_shareLabel; QPointer m_editEntryWidget; QPointer m_editGroupWidget; QPointer m_historyEditEntryWidget; QPointer m_reportsDialog; QPointer m_databaseSettingDialog; QPointer m_databaseOpenWidget; - QPointer m_keepass1OpenWidget; - QPointer m_opVaultOpenWidget; QPointer m_groupView; - QPointer m_tagView; + QPointer m_tagView; QPointer m_entryView; QScopedPointer m_newGroup; @@ -298,6 +301,7 @@ private: // Search state QScopedPointer m_entrySearcher; QString m_lastSearchText; + QString m_nextSearchLabelText; bool m_searchLimitGroup; // Autoreload diff --git a/src/gui/EditWidget.ui b/src/gui/EditWidget.ui index 8bbec46bc..96aac0d36 100644 --- a/src/gui/EditWidget.ui +++ b/src/gui/EditWidget.ui @@ -66,10 +66,16 @@ 0 + + Qt::TabFocus +
    + + Qt::TabFocus + -1 @@ -84,6 +90,9 @@ + + Qt::TabFocus + QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok @@ -107,6 +116,11 @@ 1 + + categoryList + stackedWidget + buttonBox + diff --git a/src/gui/EditWidgetIcons.cpp b/src/gui/EditWidgetIcons.cpp index 25542730c..c91974c4c 100644 --- a/src/gui/EditWidgetIcons.cpp +++ b/src/gui/EditWidgetIcons.cpp @@ -222,7 +222,7 @@ void EditWidgetIcons::iconReceived(const QString& url, const QImage& icon) QString message(tr("Unable to fetch favicon.")); if (!config()->get(Config::Security_IconDownloadFallback).toBool()) { message.append("\n").append( - tr("You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security")); + tr("You can enable the DuckDuckGo website icon service under Application Settings -> Security")); } emit messageEditEntry(message, MessageWidget::Error); return; diff --git a/src/gui/EntryPreviewWidget.cpp b/src/gui/EntryPreviewWidget.cpp index 6fc6e1992..3ae0dc08b 100644 --- a/src/gui/EntryPreviewWidget.cpp +++ b/src/gui/EntryPreviewWidget.cpp @@ -1,6 +1,6 @@ /* + * Copyright (C) 2023 KeePassXC Team * Copyright (C) 2012 Felix Geyer - * Copyright (C) 2017 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,15 +19,19 @@ #include "EntryPreviewWidget.h" #include "ui_EntryPreviewWidget.h" +#include "Application.h" +#include "core/Config.h" +#include "core/Totp.h" #include "gui/Clipboard.h" #include "gui/Font.h" #include "gui/Icons.h" -#include "totp/totp.h" #if defined(WITH_XC_KEESHARE) #include "keeshare/KeeShare.h" #include "keeshare/KeeShareSettings.h" #endif +#include +#include namespace { constexpr int GeneralTabIndex = 0; @@ -45,8 +49,9 @@ EntryPreviewWidget::EntryPreviewWidget(QWidget* parent) m_ui->setupUi(this); // Entry - m_ui->entryTotpButton->setIcon(icons()->icon("chronometer")); + m_ui->entryTotpButton->setIcon(icons()->icon("totp")); m_ui->entryCloseButton->setIcon(icons()->icon("dialog-close")); + m_ui->toggleUsernameButton->setIcon(icons()->onOffIcon("password-show", true)); m_ui->togglePasswordButton->setIcon(icons()->onOffIcon("password-show", true)); m_ui->toggleEntryNotesButton->setIcon(icons()->onOffIcon("password-show", true)); m_ui->toggleGroupNotesButton->setIcon(icons()->onOffIcon("password-show", true)); @@ -63,21 +68,35 @@ EntryPreviewWidget::EntryPreviewWidget(QWidget* parent) m_ui->entryNotesTextEdit->document()->setDocumentMargin(0); m_ui->groupNotesTextEdit->document()->setDocumentMargin(0); - connect(m_ui->entryUrlLabel, SIGNAL(linkActivated(QString)), SLOT(openEntryUrl())); + m_ui->entryTotpLabel->installEventFilter(this); connect(m_ui->entryTotpButton, SIGNAL(toggled(bool)), m_ui->entryTotpLabel, SLOT(setVisible(bool))); connect(m_ui->entryTotpButton, SIGNAL(toggled(bool)), m_ui->entryTotpProgress, SLOT(setVisible(bool))); connect(m_ui->entryCloseButton, SIGNAL(clicked()), SLOT(hide())); + connect(m_ui->toggleUsernameButton, SIGNAL(clicked(bool)), SLOT(setUsernameVisible(bool))); connect(m_ui->togglePasswordButton, SIGNAL(clicked(bool)), SLOT(setPasswordVisible(bool))); connect(m_ui->toggleEntryNotesButton, SIGNAL(clicked(bool)), SLOT(setEntryNotesVisible(bool))); connect(m_ui->toggleGroupNotesButton, SIGNAL(clicked(bool)), SLOT(setGroupNotesVisible(bool))); connect(m_ui->entryTabWidget, SIGNAL(tabBarClicked(int)), SLOT(updateTabIndexes()), Qt::QueuedConnection); + // Prevent the url from being focused after clicked to allow the Copy Password button to work properly + connect(m_ui->entryUrlLabel, &QLabel::linkActivated, this, [this] { + openEntryUrl(); + m_ui->entryTabWidget->setFocus(); + }); connect(&m_totpTimer, SIGNAL(timeout()), SLOT(updateTotpLabel())); + connect(m_ui->entryAttributesTable, &QTableWidget::itemDoubleClicked, this, [](QTableWidgetItem* item) { + auto userData = item->data(Qt::UserRole); + if (userData.isValid()) { + clipboard()->setText(userData.toString()); + } + }); + connect(config(), &Config::changed, this, [this](Config::ConfigKey key) { if (key == Config::GUI_HidePreviewPanel) { setVisible(!config()->get(Config::GUI_HidePreviewPanel).toBool()); } + refresh(); }); // Group @@ -96,6 +115,18 @@ EntryPreviewWidget::~EntryPreviewWidget() { } +bool EntryPreviewWidget::eventFilter(QObject* object, QEvent* event) +{ + if (object == m_ui->entryTotpLabel && event->type() == QEvent::MouseButtonDblClick) { + if (m_currentEntry && m_currentEntry->hasTotp()) { + clipboard()->setText(m_currentEntry->totp()); + m_ui->entryTotpLabel->clearFocus(); + return true; + } + } + return QWidget::eventFilter(object, event); +} + void EntryPreviewWidget::clear() { hide(); @@ -106,48 +137,92 @@ void EntryPreviewWidget::clear() void EntryPreviewWidget::setEntry(Entry* selectedEntry) { - if (!selectedEntry) { + if (m_currentEntry == selectedEntry) { + return; + } + + if (m_currentEntry) { + disconnect(m_currentEntry, nullptr, this, nullptr); + } + if (m_currentGroup) { + disconnect(m_currentGroup, nullptr, this, nullptr); + } + + m_currentEntry = selectedEntry; + m_currentGroup = nullptr; + + if (!m_currentEntry) { hide(); return; } - m_currentEntry = selectedEntry; + connect(m_currentEntry, &Entry::modified, this, &EntryPreviewWidget::refresh); + refresh(); - updateEntryHeaderLine(); - updateEntryTotp(); - updateEntryGeneralTab(); - updateEntryAdvancedTab(); - updateEntryAutotypeTab(); - - setVisible(!config()->get(Config::GUI_HidePreviewPanel).toBool()); - - m_ui->stackedWidget->setCurrentWidget(m_ui->pageEntry); - const int tabIndex = m_ui->entryTabWidget->isTabEnabled(m_selectedTabEntry) ? m_selectedTabEntry : GeneralTabIndex; - Q_ASSERT(m_ui->entryTabWidget->isTabEnabled(GeneralTabIndex)); - m_ui->entryTabWidget->setCurrentIndex(tabIndex); + if (m_currentEntry->hasTotp()) { + m_ui->entryTotpButton->setChecked(!config()->get(Config::Security_HideTotpPreviewPanel).toBool()); + } } void EntryPreviewWidget::setGroup(Group* selectedGroup) { - if (!selectedGroup) { + if (m_currentGroup == selectedGroup) { + return; + } + + if (m_currentEntry) { + disconnect(m_currentEntry, nullptr, this, nullptr); + } + if (m_currentGroup) { + disconnect(m_currentGroup, nullptr, this, nullptr); + } + + m_currentEntry = nullptr; + m_currentGroup = selectedGroup; + + if (!m_currentGroup) { hide(); return; } - m_currentGroup = selectedGroup; - updateGroupHeaderLine(); - updateGroupGeneralTab(); + connect(m_currentGroup, &Group::modified, this, &EntryPreviewWidget::refresh); + refresh(); +} + +void EntryPreviewWidget::refresh() +{ + if (m_currentEntry) { + updateEntryHeaderLine(); + updateEntryTotp(); + updateEntryGeneralTab(); + updateEntryAdvancedTab(); + updateEntryAutotypeTab(); + + setVisible(!config()->get(Config::GUI_HidePreviewPanel).toBool()); + + m_ui->stackedWidget->setCurrentWidget(m_ui->pageEntry); + const int tabIndex = + m_ui->entryTabWidget->isTabEnabled(m_selectedTabEntry) ? m_selectedTabEntry : GeneralTabIndex; + Q_ASSERT(m_ui->entryTabWidget->isTabEnabled(GeneralTabIndex)); + m_ui->entryTabWidget->setCurrentIndex(tabIndex); + } else if (m_currentGroup) { + updateGroupHeaderLine(); + updateGroupGeneralTab(); #if defined(WITH_XC_KEESHARE) - updateGroupSharingTab(); + updateGroupSharingTab(); #endif - setVisible(!config()->get(Config::GUI_HidePreviewPanel).toBool()); + setVisible(!config()->get(Config::GUI_HidePreviewPanel).toBool()); - m_ui->stackedWidget->setCurrentWidget(m_ui->pageGroup); - const int tabIndex = m_ui->groupTabWidget->isTabEnabled(m_selectedTabGroup) ? m_selectedTabGroup : GeneralTabIndex; - Q_ASSERT(m_ui->groupTabWidget->isTabEnabled(GeneralTabIndex)); - m_ui->groupTabWidget->setCurrentIndex(tabIndex); + m_ui->stackedWidget->setCurrentWidget(m_ui->pageGroup); + const int tabIndex = + m_ui->groupTabWidget->isTabEnabled(m_selectedTabGroup) ? m_selectedTabGroup : GeneralTabIndex; + Q_ASSERT(m_ui->groupTabWidget->isTabEnabled(GeneralTabIndex)); + m_ui->groupTabWidget->setCurrentIndex(tabIndex); + } else { + hide(); + } } void EntryPreviewWidget::setDatabaseMode(DatabaseWidget::Mode mode) @@ -181,32 +256,68 @@ void EntryPreviewWidget::updateEntryTotp() Q_ASSERT(m_currentEntry); const bool hasTotp = m_currentEntry->hasTotp(); m_ui->entryTotpButton->setVisible(hasTotp); - m_ui->entryTotpLabel->hide(); - m_ui->entryTotpProgress->hide(); - m_ui->entryTotpButton->setChecked(false); if (hasTotp) { m_totpTimer.start(1000); m_ui->entryTotpProgress->setMaximum(m_currentEntry->totpSettings()->step); updateTotpLabel(); } else { + m_ui->entryTotpLabel->hide(); + m_ui->entryTotpProgress->hide(); + m_ui->entryTotpButton->setChecked(false); m_ui->entryTotpLabel->clear(); m_totpTimer.stop(); } } +void EntryPreviewWidget::setUsernameVisible(bool state) +{ + if (state) { + auto username = m_currentEntry->resolveMultiplePlaceholders(m_currentEntry->username()); + m_ui->entryUsernameLabel->setText(username); + m_ui->entryUsernameLabel->setFont(Font::defaultFont()); + m_ui->entryUsernameLabel->setCursorPosition(0); + } else { + m_ui->entryUsernameLabel->setText(QString("\u25cf").repeated(6)); + m_ui->entryUsernameLabel->setFont(Font::fixedFont()); + } + + m_ui->toggleUsernameButton->setIcon(icons()->onOffIcon("password-show", state)); +} + void EntryPreviewWidget::setPasswordVisible(bool state) { + m_ui->entryPasswordLabel->setFont(Font::fixedFont()); + const QString password = m_currentEntry->resolveMultiplePlaceholders(m_currentEntry->password()); if (state) { - m_ui->entryPasswordLabel->setText(password); - m_ui->entryPasswordLabel->setCursorPosition(0); - m_ui->entryPasswordLabel->setFont(Font::fixedFont()); + if (config()->get(Config::GUI_ColorPasswords).toBool()) { + // Show the password in color + // clang-format off + QString html; + const auto dark = kpxcApp->isDarkTheme(); + for (const auto c : password) { + const auto color = c.isDigit() ? (dark ? "lightblue" : "blue") + : c.isUpper() ? (dark ? "lightgreen" : "darkgreen") + : c.isLower() ? (dark ? "yellow" : "red") + : (dark ? "white" : "black"); + html += "" + QString(c).toHtmlEscaped() + ""; + } + // clang-format on + m_ui->entryPasswordLabel->setText(html); + } else { + // No color + m_ui->entryPasswordLabel->setText(password); + } } else if (password.isEmpty() && !config()->get(Config::Security_PasswordEmptyPlaceholder).toBool()) { m_ui->entryPasswordLabel->setText(""); } else { m_ui->entryPasswordLabel->setText(QString("\u25cf").repeated(6)); } + + m_ui->passwordScrollArea->setMaximumHeight(m_ui->entryPasswordLabel->sizeHint().height() + + m_ui->passwordScrollArea->horizontalScrollBar()->sizeHint().height()); + m_ui->togglePasswordButton->setIcon(icons()->onOffIcon("password-show", state)); } @@ -231,6 +342,8 @@ void EntryPreviewWidget::setNotesVisible(QTextEdit* notesWidget, const QString& } else { if (!notes.isEmpty()) { notesWidget->setPlainText(QString("\u25cf").repeated(6)); + } else { + notesWidget->setPlainText(""); } } } @@ -238,14 +351,22 @@ void EntryPreviewWidget::setNotesVisible(QTextEdit* notesWidget, const QString& void EntryPreviewWidget::updateEntryGeneralTab() { Q_ASSERT(m_currentEntry); - m_ui->entryUsernameLabel->setText(m_currentEntry->resolveMultiplePlaceholders(m_currentEntry->username())); - m_ui->entryUsernameLabel->setCursorPosition(0); + + if (config()->get(Config::GUI_HideUsernames).toBool()) { + setUsernameVisible(false); + // Show the username toggle button + m_ui->toggleUsernameButton->setVisible(!m_currentEntry->username().isEmpty()); + m_ui->toggleUsernameButton->setChecked(false); + } else { + setUsernameVisible(true); + m_ui->toggleUsernameButton->setVisible(false); + } if (config()->get(Config::Security_HidePasswordPreviewPanel).toBool()) { // Hide password setPasswordVisible(false); // Show the password toggle button if there are dots in the label - m_ui->togglePasswordButton->setVisible(!m_ui->entryPasswordLabel->text().isEmpty()); + m_ui->togglePasswordButton->setVisible(!m_currentEntry->password().isEmpty()); m_ui->togglePasswordButton->setChecked(false); } else { // Show password @@ -256,7 +377,6 @@ void EntryPreviewWidget::updateEntryGeneralTab() auto hasNotes = !m_currentEntry->notes().isEmpty(); auto hideNotes = config()->get(Config::Security_HideNotes).toBool(); - m_ui->entryNotesTextEdit->setVisible(hasNotes); setEntryNotesVisible(hasNotes && !hideNotes); m_ui->toggleEntryNotesButton->setVisible(hasNotes && hideNotes && !m_ui->entryNotesTextEdit->toPlainText().isEmpty()); @@ -307,6 +427,8 @@ void EntryPreviewWidget::updateEntryAdvancedTab() font.setBold(true); for (const QString& key : customAttributes) { m_ui->entryAttributesTable->setItem(i, 0, new QTableWidgetItem(key)); + m_ui->entryAttributesTable->item(i, 0)->setFont(font); + m_ui->entryAttributesTable->item(i, 0)->setTextAlignment(Qt::AlignTop | Qt::AlignLeft); if (attributes->isProtected(key)) { // only show the reveal button on protected attributes @@ -314,40 +436,35 @@ void EntryPreviewWidget::updateEntryAdvancedTab() button->setCheckable(true); button->setChecked(false); button->setIcon(icons()->onOffIcon("password-show", false)); - button->setProperty("value", attributes->value(key)); button->setProperty("row", i); - m_ui->entryAttributesTable->setCellWidget(i, 1, button); - m_ui->entryAttributesTable->setItem(i, 2, new QTableWidgetItem(QString("\u25cf").repeated(6))); - + button->setIconSize({12, 12}); connect(button, &QToolButton::clicked, this, [this](bool state) { auto btn = qobject_cast(sender()); btn->setIcon(icons()->onOffIcon("password-show", state)); - auto row = btn->property("row").toInt(); + auto item = m_ui->entryAttributesTable->item(btn->property("row").toInt(), 2); if (state) { - m_ui->entryAttributesTable->item(row, 2)->setText(btn->property("value").toString()); + item->setText(item->data(Qt::UserRole).toString()); } else { - m_ui->entryAttributesTable->item(row, 2)->setText(QString("\u25cf").repeated(6)); + item->setText(QString("\u25cf").repeated(6)); } // Maintain button height while showing contents of cell auto size = btn->size(); - m_ui->entryAttributesTable->resizeRowToContents(row); + m_ui->entryAttributesTable->resizeRowToContents(item->row()); btn->setFixedSize(size); }); + + m_ui->entryAttributesTable->setCellWidget(i, 1, button); + m_ui->entryAttributesTable->setItem(i, 2, new QTableWidgetItem(QString("\u25cf").repeated(6))); } else { m_ui->entryAttributesTable->setItem(i, 2, new QTableWidgetItem(attributes->value(key))); } - m_ui->entryAttributesTable->item(i, 0)->setFont(font); - m_ui->entryAttributesTable->item(i, 0)->setTextAlignment(Qt::AlignTop | Qt::AlignLeft); + m_ui->entryAttributesTable->item(i, 2)->setData(Qt::UserRole, attributes->value(key)); + m_ui->entryAttributesTable->item(i, 2)->setToolTip(tr("Double click to copy value")); m_ui->entryAttributesTable->item(i, 2)->setTextAlignment(Qt::AlignTop | Qt::AlignLeft); ++i; } - connect(m_ui->entryAttributesTable, &QTableWidget::cellDoubleClicked, this, [this](int row, int column) { - if (column == 2) { - clipboard()->setText(m_ui->entryAttributesTable->item(row, column)->text()); - } - }); } m_ui->entryAttributesTable->horizontalHeader()->setStretchLastSection(true); @@ -372,7 +489,9 @@ void EntryPreviewWidget::updateEntryAutotypeTab() } m_ui->entryAutotypeTree->addTopLevelItems(items); - setTabEnabled(m_ui->entryTabWidget, m_ui->entryAutotypeTab, m_currentEntry->autoTypeEnabled()); + setTabEnabled(m_ui->entryTabWidget, + m_ui->entryAutotypeTab, + m_currentEntry->autoTypeEnabled() && m_currentEntry->groupAutoTypeEnabled()); } void EntryPreviewWidget::updateGroupHeaderLine() @@ -469,6 +588,9 @@ void EntryPreviewWidget::setTabEnabled(QTabWidget* tabWidget, QWidget* widget, b QString EntryPreviewWidget::hierarchy(const Group* group, const QString& title) { - QString groupList = QString("%1").arg(group->hierarchy().join(" / ")); - return title.isEmpty() ? groupList : QString("%1 / %2").arg(groupList, title); + if (group) { + QString groupList = QString("%1").arg(group->hierarchy().join(" / ")); + return title.isEmpty() ? groupList : QString("%1 / %2").arg(groupList, title); + } + return {}; } diff --git a/src/gui/EntryPreviewWidget.h b/src/gui/EntryPreviewWidget.h index 8a5b0c09f..83af07ee9 100644 --- a/src/gui/EntryPreviewWidget.h +++ b/src/gui/EntryPreviewWidget.h @@ -26,6 +26,7 @@ namespace Ui class EntryPreviewWidget; } +class QTabWidget; class QTextEdit; class EntryPreviewWidget : public QWidget @@ -40,18 +41,22 @@ public slots: void setEntry(Entry* selectedEntry); void setGroup(Group* selectedGroup); void setDatabaseMode(DatabaseWidget::Mode mode); + void refresh(); void clear(); signals: - void errorOccurred(const QString& error); void entryUrlActivated(Entry* entry); +protected: + bool eventFilter(QObject* object, QEvent* event) override; + private slots: void updateEntryHeaderLine(); void updateEntryTotp(); void updateEntryGeneralTab(); void updateEntryAdvancedTab(); void updateEntryAutotypeTab(); + void setUsernameVisible(bool state); void setPasswordVisible(bool state); void setEntryNotesVisible(bool state); void setGroupNotesVisible(bool state); diff --git a/src/gui/EntryPreviewWidget.ui b/src/gui/EntryPreviewWidget.ui index d97b23ab3..36e8d3850 100644 --- a/src/gui/EntryPreviewWidget.ui +++ b/src/gui/EntryPreviewWidget.ui @@ -6,7 +6,7 @@ 0 0 - 481 + 530 257 @@ -123,6 +123,9 @@ true + + Double click to copy to clipboard + 1234567 @@ -195,7 +198,7 @@ - + 0 @@ -214,6 +217,123 @@ 6 + + + + + + + + + + 14 + 14 + + + + true + + + + + + + QFrame::NoFrame + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + QAbstractScrollArea::AdjustToContents + + + true + + + + + 0 + 0 + 157 + 63 + + + + + 6 + + + 0 + + + 0 + + + 0 + + + + + TextLabel + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + PointingHandCursor + + + Qt::ClickFocus + + + https://example.com + + + Qt::TextBrowserInteraction + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + @@ -239,108 +359,6 @@ - - - - - 0 - 0 - - - - - 75 - true - - - - Notes - - - Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing - - - - - - - Qt::ClickFocus - - - Tags list - - - - - - - - 0 - 0 - - - - - 75 - true - - - - Password - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 6 - - - - - - - - - 14 - 14 - - - - true - - - - - - - - 150 - 0 - - - - Qt::ClickFocus - - - password - - - false - - - true - - - true - - - - - @@ -386,8 +404,8 @@ - - + + 0 @@ -401,28 +419,73 @@ - URL + Tags Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - Qt::Horizontal + + + + 8 - - QSizePolicy::Fixed + + + + + + + + 14 + 14 + + + + true + + + + + + + + 150 + 0 + + + + Qt::ClickFocus + + + username + + + false + + + 8 + + + true + + + true + + + + + + + + + Qt::ClickFocus - - - 10 - 20 - + + Tags list - + @@ -443,8 +506,8 @@ - - + + Qt::Horizontal @@ -459,44 +522,47 @@ - - - - Qt::Vertical - - - - 20 - 40 - - - - - - + + - + 0 0 - - - 150 - 0 - - - - PointingHandCursor - - - Qt::ClickFocus + + + 75 + true + - https://example.com + Password - - Qt::TextBrowserInteraction + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + 75 + true + + + + Notes + + + Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing @@ -522,36 +588,8 @@ - - - - - 150 - 0 - - - - Qt::ClickFocus - - - username - - - false - - - 8 - - - true - - - true - - - - - + + 0 @@ -565,7 +603,7 @@ - Tags + URL Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -725,7 +763,7 @@ Default Sequence - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing @@ -743,6 +781,9 @@ Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + true + @@ -751,7 +792,7 @@ - Qt::ClickFocus + Qt::NoFocus QFrame::Sunken @@ -759,6 +800,9 @@ true + + QAbstractItemView::NoSelection + true @@ -897,7 +941,7 @@ - + 0 diff --git a/src/gui/FileDialog.cpp b/src/gui/FileDialog.cpp index 0d46898fb..5129e2755 100644 --- a/src/gui/FileDialog.cpp +++ b/src/gui/FileDialog.cpp @@ -19,6 +19,8 @@ #include "core/Config.h" +#include + FileDialog* FileDialog::m_instance(nullptr); FileDialog::FileDialog() @@ -37,7 +39,7 @@ QString FileDialog::getOpenFileName(QWidget* parent, m_nextFileName.clear(); return result; } else { - const auto& workingDir = dir.isEmpty() ? config()->get(Config::LastDir).toString() : dir; + const auto& workingDir = dir.isEmpty() ? getLastDir("default") : dir; const auto result = QDir::toNativeSeparators( QFileDialog::getOpenFileName(parent, caption, workingDir, filter, selectedFilter, options)); @@ -63,7 +65,7 @@ QStringList FileDialog::getOpenFileNames(QWidget* parent, m_nextFileNames.clear(); return results; } else { - const auto& workingDir = dir.isEmpty() ? config()->get(Config::LastDir).toString() : dir; + const auto& workingDir = dir.isEmpty() ? getLastDir("default") : dir; auto results = QFileDialog::getOpenFileNames(parent, caption, workingDir, filter, selectedFilter, options); for (auto& path : results) { @@ -92,7 +94,7 @@ QString FileDialog::getSaveFileName(QWidget* parent, m_nextFileName.clear(); return result; } else { - const auto& workingDir = dir.isEmpty() ? config()->get(Config::LastDir).toString() : dir; + const auto& workingDir = dir.isEmpty() ? getLastDir("default") : dir; const auto result = QDir::toNativeSeparators( QFileDialog::getSaveFileName(parent, caption, workingDir, filter, selectedFilter, options)); @@ -116,7 +118,7 @@ QString FileDialog::getExistingDirectory(QWidget* parent, m_nextDirName.clear(); return result; } else { - const auto& workingDir = dir.isEmpty() ? config()->get(Config::LastDir).toString() : dir; + const auto& workingDir = dir.isEmpty() ? getLastDir("default") : dir; const auto result = QDir::toNativeSeparators(QFileDialog::getExistingDirectory(parent, caption, workingDir, options)); @@ -160,7 +162,15 @@ void FileDialog::saveLastDir(const QString& role, const QString& path, bool sens QString FileDialog::getLastDir(const QString& role, const QString& defaultDir) { auto lastDirs = config()->get(Config::LastDir).toHash(); - return lastDirs.value(role, defaultDir).toString(); + auto fallbackDir = defaultDir; + + if (fallbackDir.isEmpty()) { + // Fallback to the environment variable, if it exists, otherwise use the home directory + const auto& env = QProcessEnvironment::systemEnvironment(); + fallbackDir = env.value("KPXC_INITIAL_DIR", QDir::homePath()); + } + + return lastDirs.value(role, fallbackDir).toString(); } FileDialog* FileDialog::instance() diff --git a/src/gui/FileDialog.h b/src/gui/FileDialog.h index fa36a7d3a..14913e429 100644 --- a/src/gui/FileDialog.h +++ b/src/gui/FileDialog.h @@ -56,7 +56,7 @@ public: void setNextDirectory(const QString& path); static void saveLastDir(const QString& role, const QString& path, bool sensitive = false); - static QString getLastDir(const QString& role, const QString& defaultDir = QDir::homePath()); + static QString getLastDir(const QString& role, const QString& defaultDir = QString()); static FileDialog* instance(); diff --git a/src/gui/Font.cpp b/src/gui/Font.cpp index 8bb54863b..af939b0ad 100644 --- a/src/gui/Font.cpp +++ b/src/gui/Font.cpp @@ -34,13 +34,16 @@ QFont Font::fixedFont() auto consolasFont = QFontDatabase().font("Consolas", fixedFont.styleName(), fixedFont.pointSize()); if (consolasFont.family().contains("consolas", Qt::CaseInsensitive)) { fixedFont = consolasFont; + // Bump up the font size by one point to match the default font + fixedFont.setPointSize(fixedFont.pointSize() + 1); } #endif #ifdef Q_OS_MACOS // Qt doesn't choose a monospace font correctly on macOS fixedFont = QFontDatabase().font("Menlo", fixedFont.styleName(), fixedFont.pointSize()); #endif - +#ifndef Q_OS_WIN fixedFont.setPointSize(qApp->font().pointSize()); +#endif return fixedFont; } diff --git a/src/gui/HtmlExporter.cpp b/src/gui/HtmlExporter.cpp index 70249ed26..654909463 100644 --- a/src/gui/HtmlExporter.cpp +++ b/src/gui/HtmlExporter.cpp @@ -85,15 +85,6 @@ namespace item.append(""); } - const auto& n = entry.notes(); - if (!n.isEmpty()) { - item.append(""); - item.append(QObject::tr("Notes")); - item.append(""); - item.append(entry.notes().toHtmlEscaped().replace("\n", "
    ")); - item.append(""); - } - // Now add the attributes (if there are any) const auto* const attr = entry.attributes(); if (attr && !attr->customKeys().isEmpty()) { @@ -105,6 +96,15 @@ namespace item.append(""); } } + + const auto& n = entry.notes(); + if (!n.isEmpty()) { + item.append(""); + item.append(QObject::tr("Notes")); + item.append(""); + item.append(entry.notes().toHtmlEscaped().replace("\n", "
    ")); + item.append(""); + } return item; } } // namespace @@ -150,15 +150,18 @@ bool HtmlExporter::exportDatabase(QIODevice* device, "h3 " "{ margin-left: 2em; }" "table " - "{ margin-left: 4em; } " + "{ margin-left: 1em; } " + "caption " + "{ text-align: left; font-weight: bold; font-size: 150%; border-bottom: .15em solid " + "#4ca; margin-bottom: .5em;} " "th, td " "{ text-align: left; vertical-align: top; padding: 1px; }" "th " - "{ min-width: 5em; width: 20%; } " + "{ min-width: 7em; width: 15%; } " ".username, .password, .url, .attr " "{ font-size: larger; font-family: monospace; } " ".notes " - "{ font-size: medium; } " + "{ font-size: small; } " "" "\n" "" @@ -231,7 +234,7 @@ bool HtmlExporter::writeGroup(QIODevice& device, const Group& group, QString pat } // Begin the table for the entries in this group - auto table = QString(""); + auto table = QString("
    "); auto entries = group.entries(); if (sorted) { @@ -252,10 +255,11 @@ bool HtmlExporter::writeGroup(QIODevice& device, const Group& group, QString pat // icon and entry title ... table += ""; table += ""; - table += ""; + auto caption = ""; // ... then the right side with the data fields - table += ""; + table += + ""; table += ""; } diff --git a/src/gui/IconDownloader.cpp b/src/gui/IconDownloader.cpp index d9a8e693b..1adb26922 100644 --- a/src/gui/IconDownloader.cpp +++ b/src/gui/IconDownloader.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019 KeePassXC Team + * Copyright (C) 2023 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,6 +18,7 @@ #include "IconDownloader.h" #include "core/Config.h" #include "core/NetworkManager.h" +#include "core/UrlTools.h" #include #include @@ -40,37 +41,6 @@ IconDownloader::~IconDownloader() abortDownload(); } -namespace -{ - // Try to get the 2nd level domain of the host part of a QUrl. For example, - // "foo.bar.example.com" would become "example.com", and "foo.bar.example.co.uk" - // would become "example.co.uk". - QString getSecondLevelDomain(const QUrl& url) - { - QString fqdn = url.host(); - fqdn.truncate(fqdn.length() - url.topLevelDomain().length()); - QStringList parts = fqdn.split('.'); - QString newdom = parts.takeLast() + url.topLevelDomain(); - return newdom; - } - - QUrl convertVariantToUrl(const QVariant& var) - { - QUrl url; - if (var.canConvert()) { - url = var.toUrl(); - } - return url; - } - - QUrl getRedirectTarget(QNetworkReply* reply) - { - QVariant var = reply->attribute(QNetworkRequest::RedirectionTargetAttribute); - QUrl url = convertVariantToUrl(var); - return url; - } -} // namespace - void IconDownloader::setUrl(const QString& entryUrl) { m_url = entryUrl; @@ -114,7 +84,7 @@ void IconDownloader::setUrl(const QString& entryUrl) // Determine the second-level domain, if available QString secondLevelDomain; if (!hostIsIp) { - secondLevelDomain = getSecondLevelDomain(url); + secondLevelDomain = urlTools()->getBaseDomainFromUrl(url.toString()); } // Start with the "fallback" url (if enabled) to try to get the best favicon @@ -130,6 +100,13 @@ void IconDownloader::setUrl(const QString& entryUrl) } } + // Add a pull that preserves the query if there is one. + if (!url.path().isEmpty()) { + // Appends /favicon.ico to the last segment of the path. + // stem/something/ will become stem/something/favicon.ico, and stem/something will become stem/favicon.ico + m_urlsToTry.append(url.resolved(QUrl("./favicon.ico"))); + } + // Add a direct pull of the website's own favicon.ico file QUrl favicon_url = url; favicon_url.setPath("/favicon.ico"); @@ -195,7 +172,7 @@ void IconDownloader::fetchFinished() QString url = m_url; bool error = (m_reply->error() != QNetworkReply::NoError); - QUrl redirectTarget = getRedirectTarget(m_reply); + QUrl redirectTarget = urlTools()->getRedirectTarget(m_reply); m_reply->deleteLater(); m_reply = nullptr; diff --git a/src/gui/Icons.cpp b/src/gui/Icons.cpp index b16c40f80..194c6625d 100644 --- a/src/gui/Icons.cpp +++ b/src/gui/Icons.cpp @@ -18,6 +18,7 @@ #include "Icons.h" +#include #include #include #include @@ -25,6 +26,7 @@ #include "config-keepassx.h" #include "core/Config.h" +#include "core/Database.h" #include "gui/DatabaseIcons.h" #include "gui/MainWindow.h" #include "gui/osutils/OSUtils.h" @@ -79,29 +81,27 @@ QString Icons::trayIconAppearance() const return iconAppearance; } -QIcon Icons::trayIcon(QString style) +QIcon Icons::trayIcon(bool unlocked) { - if (style == "unlocked") { - style.clear(); - } - if (!style.isEmpty()) { - style = "-" + style; + QString suffix; + if (!unlocked) { + suffix = "-locked"; } auto iconApperance = trayIconAppearance(); if (!iconApperance.startsWith("monochrome")) { - return icon(QString("%1%2").arg(applicationIconName(), style), false); + return icon(QString("%1%2").arg(applicationIconName(), suffix), false); } QIcon i; #if defined(Q_OS_MACOS) || defined(Q_OS_WIN) if (osUtils->isStatusBarDark()) { - i = icon(QString("keepassxc-monochrome-light%1").arg(style), false); + i = icon(QString("keepassxc-monochrome-light%1").arg(suffix), false); } else { - i = icon(QString("keepassxc-monochrome-dark%1").arg(style), false); + i = icon(QString("keepassxc-monochrome-dark%1").arg(suffix), false); } #else - i = icon(QString("%1-%2%3").arg(applicationIconName(), iconApperance, style), false); + i = icon(QString("%1-%2%3").arg(applicationIconName(), iconApperance, suffix), false); #endif #if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) // Set as mask to allow the operating system to recolour the tray icon. This may look weird @@ -113,16 +113,6 @@ QIcon Icons::trayIcon(QString style) return i; } -QIcon Icons::trayIconLocked() -{ - return trayIcon("locked"); -} - -QIcon Icons::trayIconUnlocked() -{ - return trayIcon("unlocked"); -} - AdaptiveIconEngine::AdaptiveIconEngine(QIcon baseIcon, QColor overrideColor) : QIconEngine() , m_baseIcon(std::move(baseIcon)) @@ -258,7 +248,6 @@ QPixmap Icons::entryIconPixmap(const Entry* entry, IconSize size) if (entry->iconUuid().isNull()) { icon = databaseIcons()->icon(entry->iconNumber(), size); } else { - Q_ASSERT(entry->database()); if (entry->database()) { icon = Icons::customIconPixmap(entry->database(), entry->iconUuid(), size); } @@ -277,7 +266,6 @@ QPixmap Icons::groupIconPixmap(const Group* group, IconSize size) if (group->iconUuid().isNull()) { icon = databaseIcons()->icon(group->iconNumber(), size); } else { - Q_ASSERT(group->database()); if (group->database()) { icon = Icons::customIconPixmap(group->database(), group->iconUuid(), size); } @@ -301,13 +289,16 @@ QString Icons::imageFormatsFilter() QStringList formatsStringList; for (const QByteArray& format : formats) { + bool codePointClean = true; for (char codePoint : format) { if (!QChar(codePoint).isLetterOrNumber()) { - continue; + codePointClean = false; + break; } } - - formatsStringList.append("*." + QString::fromLatin1(format).toLower()); + if (codePointClean) { + formatsStringList.append("*." + QString::fromLatin1(format).toLower()); + } } return formatsStringList.join(" "); diff --git a/src/gui/Icons.h b/src/gui/Icons.h index db342ae19..15b3b1be9 100644 --- a/src/gui/Icons.h +++ b/src/gui/Icons.h @@ -29,9 +29,7 @@ class Icons public: QString applicationIconName(); QIcon applicationIcon(); - QIcon trayIcon(QString style = "unlocked"); - QIcon trayIconLocked(); - QIcon trayIconUnlocked(); + QIcon trayIcon(bool unlocked = true); QString trayIconAppearance() const; QIcon icon(const QString& name, bool recolor = true, const QColor& overrideColor = QColor::Invalid); QIcon onOffIcon(const QString& name, bool on, bool recolor = true); diff --git a/src/gui/KeePass1OpenWidget.cpp b/src/gui/KeePass1OpenWidget.cpp deleted file mode 100644 index 9a485a7f1..000000000 --- a/src/gui/KeePass1OpenWidget.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2012 Felix Geyer - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 or (at your option) - * version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "KeePass1OpenWidget.h" -#include "ui_DatabaseOpenWidget.h" - -#include - -#include "core/Database.h" -#include "core/Metadata.h" -#include "format/KeePass1Reader.h" - -KeePass1OpenWidget::KeePass1OpenWidget(QWidget* parent) - : DatabaseOpenWidget(parent) -{ - m_ui->labelHeadline->setText(tr("Import KeePass1 Database")); -} - -void KeePass1OpenWidget::openDatabase() -{ - KeePass1Reader reader; - - QString password; - QString keyFileName = m_ui->keyFileLineEdit->text(); - - if (!m_ui->editPassword->text().isEmpty() || m_retryUnlockWithEmptyPassword) { - password = m_ui->editPassword->text(); - } - - QFile file(m_filename); - if (!file.open(QIODevice::ReadOnly)) { - m_ui->messageWidget->showMessage(tr("Unable to open the database.").append("\n").append(file.errorString()), - MessageWidget::Error); - return; - } - - QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); - m_db = reader.readDatabase(&file, password, keyFileName); - QApplication::restoreOverrideCursor(); - - if (m_db) { - m_db->metadata()->setName(QFileInfo(m_filename).completeBaseName()); - emit dialogFinished(true); - clearForms(); - } else { - m_ui->messageWidget->showMessage(tr("Unable to open the database.").append("\n").append(reader.errorString()), - MessageWidget::Error); - } -} diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index da3b5c721..845072ccb 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -1,6 +1,6 @@ /* + * Copyright (C) 2023 KeePassXC Team * Copyright (C) 2010 Felix Geyer - * Copyright (C) 2020 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,6 +21,7 @@ #include #include +#include #include #include #include @@ -42,6 +43,7 @@ #include "gui/Icons.h" #include "gui/MessageBox.h" #include "gui/SearchWidget.h" +#include "gui/entry/EntryView.h" #include "gui/osutils/OSUtils.h" #ifdef WITH_XC_UPDATECHECK @@ -126,11 +128,17 @@ MainWindow::MainWindow() m_entryContextMenu->setSeparatorsCollapsible(true); m_entryContextMenu->addAction(m_ui->actionEntryCopyUsername); m_entryContextMenu->addAction(m_ui->actionEntryCopyPassword); + m_entryContextMenu->addAction(m_ui->actionEntryCopyURL); m_entryContextMenu->addAction(m_ui->menuEntryCopyAttribute->menuAction()); m_entryContextMenu->addAction(m_ui->menuEntryTotp->menuAction()); + m_entryContextMenu->addAction(m_ui->menuTags->menuAction()); m_entryContextMenu->addSeparator(); m_entryContextMenu->addAction(m_ui->actionEntryAutoType); m_entryContextMenu->addSeparator(); +#ifdef WITH_XC_BROWSER_PASSKEYS + m_entryContextMenu->addAction(m_ui->actionEntryImportPasskey); + m_entryContextMenu->addSeparator(); +#endif m_entryContextMenu->addAction(m_ui->actionEntryEdit); m_entryContextMenu->addAction(m_ui->actionEntryClone); m_entryContextMenu->addAction(m_ui->actionEntryDelete); @@ -142,6 +150,9 @@ MainWindow::MainWindow() m_entryContextMenu->addAction(m_ui->actionEntryOpenUrl); m_entryContextMenu->addAction(m_ui->actionEntryDownloadIcon); m_entryContextMenu->addSeparator(); + m_entryContextMenu->addAction(m_ui->actionEntryAddToAgent); + m_entryContextMenu->addAction(m_ui->actionEntryRemoveFromAgent); + m_entryContextMenu->addSeparator(); m_entryContextMenu->addAction(m_ui->actionEntryRestore); m_entryNewContextMenu = new QMenu(this); @@ -188,18 +199,8 @@ MainWindow::MainWindow() connect(sshAgent(), SIGNAL(error(QString)), this, SLOT(showErrorMessage(QString))); connect(sshAgent(), SIGNAL(enabledChanged(bool)), this, SLOT(agentEnabled(bool))); m_ui->settingsWidget->addSettingsPage(new AgentSettingsPage()); - - m_entryContextMenu->addSeparator(); - m_entryContextMenu->addAction(m_ui->actionEntryAddToAgent); - m_entryContextMenu->addAction(m_ui->actionEntryRemoveFromAgent); - - m_ui->actionEntryAddToAgent->setIcon(icons()->icon("utilities-terminal")); - m_ui->actionEntryRemoveFromAgent->setIcon(icons()->icon("utilities-terminal")); #endif - m_ui->actionEntryAddToAgent->setVisible(false); - m_ui->actionEntryRemoveFromAgent->setVisible(false); - initViewMenu(); #if defined(WITH_XC_KEESHARE) @@ -239,6 +240,11 @@ MainWindow::MainWindow() m_copyAdditionalAttributeActions, SIGNAL(triggered(QAction*)), SLOT(copyAttribute(QAction*))); connect(m_ui->menuEntryCopyAttribute, SIGNAL(aboutToShow()), this, SLOT(updateCopyAttributesMenu())); + m_setTagsMenuActions = new QActionGroup(m_ui->menuTags); + m_setTagsMenuActions->setExclusive(false); + m_actionMultiplexer.connect(m_setTagsMenuActions, SIGNAL(triggered(QAction*)), SLOT(setTag(QAction*))); + connect(m_ui->menuTags, &QMenu::aboutToShow, this, &MainWindow::updateSetTagsMenu); + Qt::Key globalAutoTypeKey = static_cast(config()->get(Config::GlobalAutoTypeKey).toInt()); Qt::KeyboardModifiers globalAutoTypeModifiers = static_cast(config()->get(Config::GlobalAutoTypeModifiers).toInt()); @@ -250,6 +256,7 @@ MainWindow::MainWindow() m_showToolbarSeparator = config()->get(Config::GUI_ApplicationTheme).toString() != "classic"; m_ui->actionEntryAutoType->setVisible(autoType()->isAvailable()); + m_ui->actionAllowScreenCapture->setVisible(osUtils->canPreventScreenCapture()); m_inactivityTimer = new InactivityTimer(this); connect(m_inactivityTimer, SIGNAL(inactivityDetected()), this, SLOT(lockDatabasesAfterInactivity())); @@ -260,6 +267,9 @@ MainWindow::MainWindow() setShortcut(m_ui->actionDatabaseSave, QKeySequence::Save, Qt::CTRL + Qt::Key_S); setShortcut(m_ui->actionDatabaseSaveAs, QKeySequence::SaveAs, Qt::CTRL + Qt::SHIFT + Qt::Key_S); setShortcut(m_ui->actionDatabaseClose, QKeySequence::Close, Qt::CTRL + Qt::Key_W); + m_ui->actionDatabaseSettings->setShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_Comma); + m_ui->actionReports->setShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_R); + setShortcut(m_ui->actionSettings, QKeySequence::Preferences, Qt::CTRL + Qt::Key_Comma); m_ui->actionLockDatabase->setShortcut(Qt::CTRL + Qt::Key_L); m_ui->actionLockAllDatabases->setShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_L); setShortcut(m_ui->actionQuit, QKeySequence::Quit, Qt::CTRL + Qt::Key_Q); @@ -271,10 +281,12 @@ MainWindow::MainWindow() m_ui->actionEntryTotp->setShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_T); m_ui->actionEntryDownloadIcon->setShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_D); m_ui->actionEntryCopyTotp->setShortcut(Qt::CTRL + Qt::Key_T); + m_ui->actionEntryCopyPasswordTotp->setShortcut(Qt::CTRL + Qt::Key_Y); m_ui->actionEntryMoveUp->setShortcut(Qt::CTRL + Qt::ALT + Qt::Key_Up); m_ui->actionEntryMoveDown->setShortcut(Qt::CTRL + Qt::ALT + Qt::Key_Down); m_ui->actionEntryCopyUsername->setShortcut(Qt::CTRL + Qt::Key_B); m_ui->actionEntryCopyPassword->setShortcut(Qt::CTRL + Qt::Key_C); + m_ui->actionEntryCopyTitle->setShortcut(Qt::CTRL + Qt::Key_I); m_ui->actionEntryAutoTypeSequence->setShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_V); m_ui->actionEntryOpenUrl->setShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_U); m_ui->actionEntryCopyURL->setShortcut(Qt::CTRL + Qt::Key_U); @@ -300,6 +312,7 @@ MainWindow::MainWindow() m_ui->actionEntryTotp->setShortcutVisibleInContextMenu(true); m_ui->actionEntryDownloadIcon->setShortcutVisibleInContextMenu(true); m_ui->actionEntryCopyTotp->setShortcutVisibleInContextMenu(true); + m_ui->actionEntryCopyPasswordTotp->setShortcutVisibleInContextMenu(true); m_ui->actionEntryMoveUp->setShortcutVisibleInContextMenu(true); m_ui->actionEntryMoveDown->setShortcutVisibleInContextMenu(true); m_ui->actionEntryCopyUsername->setShortcutVisibleInContextMenu(true); @@ -307,6 +320,7 @@ MainWindow::MainWindow() m_ui->actionEntryAutoTypeSequence->setShortcutVisibleInContextMenu(true); m_ui->actionEntryOpenUrl->setShortcutVisibleInContextMenu(true); m_ui->actionEntryCopyURL->setShortcutVisibleInContextMenu(true); + m_ui->actionEntryCopyTitle->setShortcutVisibleInContextMenu(true); m_ui->actionEntryAddToAgent->setShortcutVisibleInContextMenu(true); m_ui->actionEntryRemoveFromAgent->setShortcutVisibleInContextMenu(true); #endif @@ -374,7 +388,7 @@ MainWindow::MainWindow() m_ui->actionLockAllDatabases->setIcon(icons()->icon("database-lock-all")); m_ui->actionQuit->setIcon(icons()->icon("application-exit")); m_ui->actionDatabaseMerge->setIcon(icons()->icon("database-merge")); - m_ui->menuImport->setIcon(icons()->icon("document-import")); + m_ui->actionImport->setIcon(icons()->icon("document-import")); m_ui->menuExport->setIcon(icons()->icon("document-export")); m_ui->actionEntryNew->setIcon(icons()->icon("entry-new")); @@ -394,6 +408,16 @@ MainWindow::MainWindow() m_ui->actionEntryCopyUsername->setIcon(icons()->icon("username-copy")); m_ui->actionEntryCopyPassword->setIcon(icons()->icon("password-copy")); m_ui->actionEntryCopyURL->setIcon(icons()->icon("url-copy")); + m_ui->menuEntryCopyAttribute->setIcon(icons()->icon("attributes-copy")); + m_ui->menuEntryTotp->setIcon(icons()->icon("totp")); + m_ui->actionEntryTotp->setIcon(icons()->icon("totp")); + m_ui->actionEntryCopyTotp->setIcon(icons()->icon("totp-copy")); + m_ui->actionEntryCopyPasswordTotp->setIcon(icons()->icon("totp-copy-password")); + m_ui->actionEntryTotpQRCode->setIcon(icons()->icon("qrcode")); + m_ui->actionEntrySetupTotp->setIcon(icons()->icon("totp-edit")); + m_ui->actionEntryAddToAgent->setIcon(icons()->icon("utilities-terminal")); + m_ui->actionEntryRemoveFromAgent->setIcon(icons()->icon("utilities-terminal")); + m_ui->menuTags->setIcon(icons()->icon("tag-multiple")); m_ui->actionEntryDownloadIcon->setIcon(icons()->icon("favicon-download")); m_ui->actionGroupSortAsc->setIcon(icons()->icon("sort-alphabetical-ascending")); m_ui->actionGroupSortDesc->setIcon(icons()->icon("sort-alphabetical-descending")); @@ -418,12 +442,24 @@ MainWindow::MainWindow() m_ui->actionKeyboardShortcuts->setIcon(icons()->icon("keyboard-shortcuts")); m_ui->actionCheckForUpdates->setIcon(icons()->icon("system-software-update")); +#ifdef WITH_XC_BROWSER_PASSKEYS + m_ui->actionPasskeys->setIcon(icons()->icon("passkey")); + m_ui->actionImportPasskey->setIcon(icons()->icon("document-import")); + m_ui->actionEntryImportPasskey->setIcon(icons()->icon("document-import")); +#endif + m_actionMultiplexer.connect( SIGNAL(currentModeChanged(DatabaseWidget::Mode)), this, SLOT(setMenuActionState(DatabaseWidget::Mode))); m_actionMultiplexer.connect(SIGNAL(groupChanged()), this, SLOT(setMenuActionState())); m_actionMultiplexer.connect(SIGNAL(entrySelectionChanged()), this, SLOT(setMenuActionState())); + m_actionMultiplexer.connect(SIGNAL(databaseNonDataChanged()), this, SLOT(setMenuActionState())); m_actionMultiplexer.connect(SIGNAL(groupContextMenuRequested(QPoint)), this, SLOT(showGroupContextMenu(QPoint))); m_actionMultiplexer.connect(SIGNAL(entryContextMenuRequested(QPoint)), this, SLOT(showEntryContextMenu(QPoint))); + m_actionMultiplexer.connect(SIGNAL(groupChanged()), this, SLOT(updateEntryCountLabel())); + m_actionMultiplexer.connect(SIGNAL(databaseUnlocked()), this, SLOT(updateEntryCountLabel())); + m_actionMultiplexer.connect(SIGNAL(databaseModified()), this, SLOT(updateEntryCountLabel())); + m_actionMultiplexer.connect(SIGNAL(searchModeActivated()), this, SLOT(updateEntryCountLabel())); + m_actionMultiplexer.connect(SIGNAL(listModeActivated()), this, SLOT(updateEntryCountLabel())); // Notify search when the active database changes or gets locked connect(m_ui->tabWidget, @@ -457,11 +493,15 @@ MainWindow::MainWindow() connect(m_ui->actionDatabaseSecurity, SIGNAL(triggered()), m_ui->tabWidget, SLOT(showDatabaseSecurity())); connect(m_ui->actionReports, SIGNAL(triggered()), m_ui->tabWidget, SLOT(showDatabaseReports())); connect(m_ui->actionDatabaseSettings, SIGNAL(triggered()), m_ui->tabWidget, SLOT(showDatabaseSettings())); - connect(m_ui->actionImportCsv, SIGNAL(triggered()), m_ui->tabWidget, SLOT(importCsv())); - connect(m_ui->actionImportKeePass1, SIGNAL(triggered()), m_ui->tabWidget, SLOT(importKeePass1Database())); - connect(m_ui->actionImportOpVault, SIGNAL(triggered()), m_ui->tabWidget, SLOT(importOpVaultDatabase())); +#ifdef WITH_XC_BROWSER_PASSKEYS + connect(m_ui->actionPasskeys, SIGNAL(triggered()), m_ui->tabWidget, SLOT(showPasskeys())); + connect(m_ui->actionImportPasskey, SIGNAL(triggered()), m_ui->tabWidget, SLOT(importPasskey())); + connect(m_ui->actionEntryImportPasskey, SIGNAL(triggered()), m_ui->tabWidget, SLOT(importPasskeyToEntry())); +#endif + connect(m_ui->actionImport, SIGNAL(triggered()), m_ui->tabWidget, SLOT(importFile())); connect(m_ui->actionExportCsv, SIGNAL(triggered()), m_ui->tabWidget, SLOT(exportToCsv())); connect(m_ui->actionExportHtml, SIGNAL(triggered()), m_ui->tabWidget, SLOT(exportToHtml())); + connect(m_ui->actionExportXML, SIGNAL(triggered()), m_ui->tabWidget, SLOT(exportToXML())); connect( m_ui->actionLockDatabase, SIGNAL(triggered()), m_ui->tabWidget, SLOT(lockAndSwitchToFirstUnlockedDatabase())); connect(m_ui->actionLockDatabaseToolbar, SIGNAL(triggered()), m_ui->actionLockDatabase, SIGNAL(triggered())); @@ -478,6 +518,7 @@ MainWindow::MainWindow() m_actionMultiplexer.connect(m_ui->actionEntrySetupTotp, SIGNAL(triggered()), SLOT(setupTotp())); m_actionMultiplexer.connect(m_ui->actionEntryCopyTotp, SIGNAL(triggered()), SLOT(copyTotp())); + m_actionMultiplexer.connect(m_ui->actionEntryCopyPasswordTotp, SIGNAL(triggered()), SLOT(copyPasswordTotp())); m_actionMultiplexer.connect(m_ui->actionEntryTotpQRCode, SIGNAL(triggered()), SLOT(showTotpKeyQrCode())); m_actionMultiplexer.connect(m_ui->actionEntryCopyTitle, SIGNAL(triggered()), SLOT(copyTitle())); m_actionMultiplexer.connect(m_ui->actionEntryMoveUp, SIGNAL(triggered()), SLOT(moveEntryUp())); @@ -523,9 +564,7 @@ MainWindow::MainWindow() connect(m_ui->welcomeWidget, SIGNAL(newDatabase()), SLOT(switchToNewDatabase())); connect(m_ui->welcomeWidget, SIGNAL(openDatabase()), SLOT(switchToOpenDatabase())); connect(m_ui->welcomeWidget, SIGNAL(openDatabaseFile(QString)), SLOT(switchToDatabaseFile(QString))); - connect(m_ui->welcomeWidget, SIGNAL(importKeePass1Database()), SLOT(switchToKeePass1Database())); - connect(m_ui->welcomeWidget, SIGNAL(importOpVaultDatabase()), SLOT(switchToOpVaultDatabase())); - connect(m_ui->welcomeWidget, SIGNAL(importCsv()), SLOT(switchToCsvImport())); + connect(m_ui->welcomeWidget, SIGNAL(importFile()), m_ui->tabWidget, SLOT(importFile())); connect(m_ui->actionAbout, SIGNAL(triggered()), SLOT(showAboutDialog())); connect(m_ui->actionDonate, SIGNAL(triggered()), SLOT(openDonateUrl())); @@ -534,6 +573,7 @@ MainWindow::MainWindow() connect(m_ui->actionUserGuide, SIGNAL(triggered()), SLOT(openUserGuide())); connect(m_ui->actionOnlineHelp, SIGNAL(triggered()), SLOT(openOnlineHelp())); connect(m_ui->actionKeyboardShortcuts, SIGNAL(triggered()), SLOT(openKeyboardShortcuts())); + connect(m_ui->actionAllowScreenCapture, &QAction::toggled, this, &MainWindow::setAllowScreenCapture); connect(osUtils, &OSUtilsBase::statusbarThemeChanged, this, &MainWindow::updateTrayIcon); @@ -646,6 +686,7 @@ MainWindow::MainWindow() connect(qApp, SIGNAL(openFile(QString)), this, SLOT(openDatabase(QString))); connect(qApp, SIGNAL(quitSignalReceived()), this, SLOT(appExit()), Qt::DirectConnection); + // Setup the status bar statusBar()->setFixedHeight(24); m_progressBarLabel = new QLabel(statusBar()); m_progressBarLabel->setVisible(false); @@ -658,8 +699,12 @@ MainWindow::MainWindow() m_progressBar->setMaximum(100); statusBar()->addPermanentWidget(m_progressBar); connect(clipboard(), SIGNAL(updateCountdown(int, QString)), this, SLOT(updateProgressBar(int, QString))); + m_statusBarLabel = new QLabel(statusBar()); + m_statusBarLabel->setObjectName("statusBarLabel"); + statusBar()->addPermanentWidget(m_statusBarLabel); restoreConfigState(); + setMenuActionState(); } MainWindow::~MainWindow() @@ -674,13 +719,6 @@ MainWindow::~MainWindow() */ void MainWindow::restoreConfigState() { - // start minimized if configured - if (config()->get(Config::GUI_MinimizeOnStartup).toBool()) { - hideWindow(); - } else { - bringToFront(); - } - if (config()->get(Config::OpenPreviousDatabasesOnStartup).toBool()) { const QStringList fileNames = config()->get(Config::LastOpenedDatabases).toStringList(); for (const QString& filename : fileNames) { @@ -715,6 +753,43 @@ void MainWindow::appExit() close(); } +/** + * Returns if application was built with hardware key support. + * Intented to be used by 3rd-party applications using DBus. + * + * @return True if built with hardware key support, false otherwise + */ +bool MainWindow::isHardwareKeySupported() +{ +#ifdef WITH_XC_YUBIKEY + return true; +#else + return false; +#endif +} + +/** + * Refreshes list of hardware keys known. + * Triggers the DatabaseOpenWidget to automatically select the key last used for a database if found. + * Intented to be used by 3rd-party applications using DBus. + * + * @return True if any key was found, false otherwise or if application lacks hardware key support + */ +bool MainWindow::refreshHardwareKeys() +{ +#ifdef WITH_XC_YUBIKEY + auto yk = YubiKey::instance(); + // find keys sync to allow returning if any key was found + bool found = yk->findValidKeys(); + // emit signal so DatabaseOpenWidget can select last used key + // emit here manually because sync findValidKeys() cannot do that properly + emit yk->detectComplete(found); + return found; +#else + return false; +#endif +} + void MainWindow::updateLastDatabasesMenu() { m_ui->menuRecentDatabases->clear(); @@ -753,6 +828,38 @@ void MainWindow::updateCopyAttributesMenu() } } +void MainWindow::updateSetTagsMenu() +{ + // Remove all existing actions + m_ui->menuTags->clear(); + + auto dbWidget = m_ui->tabWidget->currentDatabaseWidget(); + if (dbWidget) { + // Enumerate tags applied to the selected entries + QSet selectedTags; + for (auto entry : dbWidget->entryView()->selectedEntries()) { + for (auto tag : entry->tagList()) { + selectedTags.insert(tag); + } + } + + // Add known database tags as actions and set checked if + // a selected entry has that tag + for (auto tag : dbWidget->database()->tagList()) { + auto action = m_ui->menuTags->addAction(icons()->icon("tag"), tag); + action->setCheckable(true); + action->setChecked(selectedTags.contains(tag)); + m_setTagsMenuActions->addAction(action); + } + } + + // If no tags exist in the database then show a tip to the user + if (m_ui->menuTags->isEmpty()) { + auto action = m_ui->menuTags->addAction(tr("No Tags")); + action->setEnabled(false); + } +} + void MainWindow::openRecentDatabase(QAction* action) { openDatabase(action->data().toString()); @@ -781,11 +888,12 @@ void MainWindow::setMenuActionState(DatabaseWidget::Mode mode) bool inWelcomeWidget = (currentIndex == WelcomeScreen); bool inDatabaseTabWidgetOrWelcomeWidget = inDatabaseTabWidget || inWelcomeWidget; + m_ui->actionDatabaseClose->setEnabled(true); m_ui->actionDatabaseMerge->setEnabled(inDatabaseTabWidget); m_ui->actionDatabaseNew->setEnabled(inDatabaseTabWidgetOrWelcomeWidget); m_ui->actionDatabaseOpen->setEnabled(inDatabaseTabWidgetOrWelcomeWidget); m_ui->menuRecentDatabases->setEnabled(inDatabaseTabWidgetOrWelcomeWidget); - m_ui->menuImport->setEnabled(inDatabaseTabWidgetOrWelcomeWidget); + m_ui->actionImport->setEnabled(inDatabaseTabWidgetOrWelcomeWidget); m_ui->actionLockDatabase->setEnabled(m_ui->tabWidget->hasLockableDatabases()); m_ui->actionLockDatabaseToolbar->setEnabled(m_ui->tabWidget->hasLockableDatabases()); m_ui->actionLockAllDatabases->setEnabled(m_ui->tabWidget->hasLockableDatabases()); @@ -832,8 +940,10 @@ void MainWindow::setMenuActionState(DatabaseWidget::Mode mode) m_ui->actionEntryCopyNotes->setEnabled(singleEntrySelected && dbWidget->currentEntryHasNotes()); m_ui->menuEntryCopyAttribute->setEnabled(singleEntrySelected); m_ui->menuEntryTotp->setEnabled(singleEntrySelected); - m_ui->actionEntryAutoType->setEnabled(singleEntrySelected); - m_ui->actionEntryAutoType->menu()->setEnabled(singleEntrySelected); + m_ui->menuTags->setEnabled(entriesSelected); + m_ui->actionEntryAutoType->setEnabled(singleEntrySelected && dbWidget->currentEntryHasAutoTypeEnabled()); + m_ui->actionEntryAutoType->menu()->setEnabled(singleEntrySelected + && dbWidget->currentEntryHasAutoTypeEnabled()); m_ui->actionEntryAutoTypeSequence->setText( singleEntrySelected ? dbWidget->currentSelectedEntry()->effectiveAutoTypeSequence() : Group::RootAutoTypeSequence); @@ -849,6 +959,7 @@ void MainWindow::setMenuActionState(DatabaseWidget::Mode mode) m_ui->actionEntryOpenUrl->setEnabled(singleEntrySelected && dbWidget->currentEntryHasUrl()); m_ui->actionEntryTotp->setEnabled(singleEntrySelected && dbWidget->currentEntryHasTotp()); m_ui->actionEntryCopyTotp->setEnabled(singleEntrySelected && dbWidget->currentEntryHasTotp()); + m_ui->actionEntryCopyPasswordTotp->setEnabled(singleEntrySelected && dbWidget->currentEntryHasTotp()); m_ui->actionEntrySetupTotp->setEnabled(singleEntrySelected); m_ui->actionEntryTotpQRCode->setEnabled(singleEntrySelected && dbWidget->currentEntryHasTotp()); m_ui->actionEntryDownloadIcon->setEnabled((entriesSelected && !singleEntrySelected) @@ -875,7 +986,13 @@ void MainWindow::setMenuActionState(DatabaseWidget::Mode mode) m_ui->menuExport->setEnabled(true); m_ui->actionExportCsv->setEnabled(true); m_ui->actionExportHtml->setEnabled(true); + m_ui->actionExportXML->setEnabled(true); m_ui->actionDatabaseMerge->setEnabled(m_ui->tabWidget->currentIndex() != -1); +#ifdef WITH_XC_BROWSER_PASSKEYS + m_ui->actionPasskeys->setEnabled(true); + m_ui->actionImportPasskey->setEnabled(true); + m_ui->actionEntryImportPasskey->setEnabled(true); +#endif #ifdef WITH_XC_SSHAGENT bool singleEntryHasSshKey = singleEntrySelected && sshAgent()->isEnabled() && dbWidget->currentEntryHasSshKey(); @@ -890,7 +1007,6 @@ void MainWindow::setMenuActionState(DatabaseWidget::Mode mode) break; } case DatabaseWidget::Mode::EditMode: - case DatabaseWidget::Mode::ImportMode: case DatabaseWidget::Mode::LockedMode: { // Enable select actions when editing an entry bool editEntryActive = dbWidget->isEntryEditActive(); @@ -935,6 +1051,23 @@ void MainWindow::setMenuActionState(DatabaseWidget::Mode mode) // Only disable the action in the database menu so that the // menu remains active in the toolbar, if necessary m_ui->actionLockDatabase->setEnabled(false); + // Never show in these modes + m_ui->actionEntryMoveUp->setVisible(false); + m_ui->actionEntryMoveDown->setVisible(false); + m_ui->actionEntryRestore->setVisible(false); + m_ui->actionEntryAddToAgent->setVisible(false); + m_ui->actionEntryRemoveFromAgent->setVisible(false); + m_ui->actionGroupEmptyRecycleBin->setVisible(false); + +#ifdef WITH_XC_BROWSER_PASSKEYS + m_ui->actionPasskeys->setEnabled(false); + m_ui->actionImportPasskey->setEnabled(false); + m_ui->actionEntryImportPasskey->setEnabled(false); +#else + m_ui->actionPasskeys->setVisible(false); + m_ui->actionImportPasskey->setVisible(false); + m_ui->actionEntryImportPasskey->setVisible(false); +#endif m_searchWidgetAction->setEnabled(false); break; @@ -942,7 +1075,6 @@ void MainWindow::setMenuActionState(DatabaseWidget::Mode mode) default: Q_ASSERT(false); } - m_ui->actionDatabaseClose->setEnabled(true); } else { const auto entryActions = m_ui->menuEntries->actions(); for (auto action : entryActions) { @@ -965,6 +1097,13 @@ void MainWindow::setMenuActionState(DatabaseWidget::Mode mode) m_ui->actionExportCsv->setEnabled(false); m_ui->actionExportHtml->setEnabled(false); m_ui->actionDatabaseMerge->setEnabled(false); + // Hide entry-specific actions + m_ui->actionEntryMoveUp->setVisible(false); + m_ui->actionEntryMoveDown->setVisible(false); + m_ui->actionEntryRestore->setVisible(false); + m_ui->actionEntryAddToAgent->setVisible(false); + m_ui->actionEntryRemoveFromAgent->setVisible(false); + m_ui->actionGroupEmptyRecycleBin->setVisible(false); m_searchWidgetAction->setEnabled(false); } @@ -1181,24 +1320,6 @@ void MainWindow::switchToDatabaseFile(const QString& file) switchToDatabases(); } -void MainWindow::switchToKeePass1Database() -{ - m_ui->tabWidget->importKeePass1Database(); - switchToDatabases(); -} - -void MainWindow::switchToOpVaultDatabase() -{ - m_ui->tabWidget->importOpVaultDatabase(); - switchToDatabases(); -} - -void MainWindow::switchToCsvImport() -{ - m_ui->tabWidget->importCsv(); - switchToDatabases(); -} - void MainWindow::databaseStatusChanged(DatabaseWidget* dbWidget) { Q_UNUSED(dbWidget); @@ -1248,6 +1369,25 @@ void MainWindow::databaseTabChanged(int tabIndex) } m_actionMultiplexer.setCurrentObject(m_ui->tabWidget->currentDatabaseWidget()); + updateEntryCountLabel(); +} + +void MainWindow::showEvent(QShowEvent* event) +{ + Q_UNUSED(event) +#ifdef Q_OS_WIN + // Qt Hack - Prevent white flicker when showing window + QTimer::singleShot(50, this, [=] { setProperty("windowOpacity", 1.0); }); +#endif +} + +void MainWindow::hideEvent(QHideEvent* event) +{ + Q_UNUSED(event) +#ifdef Q_OS_WIN + // Qt Hack - Prevent white flicker when showing window + setProperty("windowOpacity", 0.0); +#endif } void MainWindow::closeEvent(QCloseEvent* event) @@ -1288,7 +1428,7 @@ void MainWindow::changeEvent(QEvent* event) } if (config()->get(Config::Security_LockDatabaseMinimize).toBool()) { - m_ui->tabWidget->lockDatabases(); + m_ui->tabWidget->lockDatabasesDelayed(); } } else { QMainWindow::changeEvent(event); @@ -1307,7 +1447,7 @@ void MainWindow::keyPressEvent(QKeyEvent* event) } else if (event->key() == Qt::Key_F2) { dbWidget->focusOnEntries(true); return; - } else if (event->key() == Qt::Key_F3) { + } else if (event->key() == Qt::Key_F3 || event->key() == Qt::Key_F6) { focusSearchWidget(); return; } else if (event->key() == Qt::Key_Escape && dbWidget->isSearchActive()) { @@ -1388,7 +1528,7 @@ bool MainWindow::saveLastDatabases() QStringList openDatabases; for (int i = 0; i < m_ui->tabWidget->count(); ++i) { auto dbWidget = m_ui->tabWidget->databaseWidgetFromIndex(i); - openDatabases.append(dbWidget->database()->filePath()); + openDatabases.append(QDir::toNativeSeparators(dbWidget->database()->filePath())); } config()->set(Config::LastOpenedDatabases, openDatabases); @@ -1428,12 +1568,8 @@ void MainWindow::updateTrayIcon() connect(actionToggle, SIGNAL(triggered()), SLOT(toggleWindow())); } - if (m_ui->tabWidget->hasLockableDatabases()) { - m_trayIcon->setIcon(icons()->trayIconUnlocked()); - } else { - m_trayIcon->setIcon(icons()->trayIconLocked()); - } - + bool showUnlocked = m_ui->tabWidget->hasLockableDatabases(); + m_trayIcon->setIcon(icons()->trayIcon(showUnlocked)); m_trayIcon->setToolTip(windowTitle().replace("[*]", isWindowModified() ? "*" : "")); m_trayIcon->show(); @@ -1469,6 +1605,17 @@ void MainWindow::updateProgressBar(int percentage, QString message) } } +void MainWindow::updateEntryCountLabel() +{ + auto dbWidget = m_ui->tabWidget->currentDatabaseWidget(); + if (dbWidget && dbWidget->currentMode() == DatabaseWidget::Mode::ViewMode) { + int numEntries = dbWidget->entryView()->model()->rowCount(); + m_statusBarLabel->setText(tr("%1 Entry(s)", "", numEntries).arg(numEntries)); + } else { + m_statusBarLabel->setText(""); + } +} + void MainWindow::obtainContextFocusLock() { m_contextMenuFocusLock = true; @@ -1529,7 +1676,12 @@ void MainWindow::applySettingsChanges() } m_ui->toolBar->setHidden(config()->get(Config::GUI_HideToolbar).toBool()); - m_ui->toolBar->setMovable(config()->get(Config::GUI_MovableToolbar).toBool()); + auto movable = config()->get(Config::GUI_MovableToolbar).toBool(); + m_ui->toolBar->setMovable(movable); + if (!movable) { + // Move the toolbar back to the top of the main window + addToolBar(Qt::TopToolBarArea, m_ui->toolBar); + } bool isOk = false; const auto toolButtonStyle = @@ -1541,11 +1693,29 @@ void MainWindow::applySettingsChanges() updateTrayIcon(); } -void MainWindow::focusWindowChanged(QWindow* focusWindow) +void MainWindow::setAllowScreenCapture(bool state) { - if (focusWindow != windowHandle()) { + m_allowScreenCapture = state; + for (auto window : qApp->topLevelWindows()) { + if (window->isVisible()) { + osUtils->setPreventScreenCapture(window, !m_allowScreenCapture); + } + } + m_ui->actionAllowScreenCapture->blockSignals(true); + m_ui->actionAllowScreenCapture->setChecked(m_allowScreenCapture); + m_ui->actionAllowScreenCapture->blockSignals(false); +} + +void MainWindow::focusWindowChanged(QWindow* window) +{ + if (window != windowHandle()) { m_lastFocusOutTime = Clock::currentMilliSecondsSinceEpoch(); } + + if (!osUtils->setPreventScreenCapture(window, !m_allowScreenCapture) && !m_allowScreenCapture) { + displayGlobalMessage(QObject::tr("Warning: Failed to block screenshot capture on a top-level window."), + MessageWidget::Error); + } } void MainWindow::trayIconTriggered(QSystemTrayIcon::ActivationReason reason) @@ -1636,7 +1806,7 @@ void MainWindow::hideWindow() } if (config()->get(Config::Security_LockDatabaseMinimize).toBool()) { - m_ui->tabWidget->lockDatabases(); + m_ui->tabWidget->lockDatabasesDelayed(); } } diff --git a/src/gui/MainWindow.h b/src/gui/MainWindow.h index 2fdc43ed1..1f96a6ec0 100644 --- a/src/gui/MainWindow.h +++ b/src/gui/MainWindow.h @@ -24,6 +24,7 @@ #include #include #include +#include #include "core/SignalMultiplexer.h" #include "gui/DatabaseWidget.h" @@ -52,6 +53,7 @@ public: QList getOpenDatabases(); void restoreConfigState(); + void setAllowScreenCapture(bool state); enum StackedWidgetIndex { @@ -69,6 +71,8 @@ signals: public slots: void openDatabase(const QString& filePath, const QString& password = {}, const QString& keyfile = {}); void appExit(); + bool isHardwareKeySupported(); + bool refreshHardwareKeys(); void displayGlobalMessage(const QString& text, MessageWidget::MessageType type, bool showClosebutton = true, @@ -93,6 +97,8 @@ public slots: void restartApp(const QString& message); protected: + void showEvent(QShowEvent* event) override; + void hideEvent(QHideEvent* event) override; void closeEvent(QCloseEvent* event) override; void changeEvent(QEvent* event) override; void keyPressEvent(QKeyEvent* event) override; @@ -119,15 +125,13 @@ private slots: void switchToNewDatabase(); void switchToOpenDatabase(); void switchToDatabaseFile(const QString& file); - void switchToKeePass1Database(); - void switchToOpVaultDatabase(); - void switchToCsvImport(); void databaseStatusChanged(DatabaseWidget* dbWidget); void databaseTabChanged(int tabIndex); void openRecentDatabase(QAction* action); void clearLastDatabases(); void updateLastDatabasesMenu(); void updateCopyAttributesMenu(); + void updateSetTagsMenu(); void showEntryContextMenu(const QPoint& globalPos); void showGroupContextMenu(const QPoint& globalPos); void applySettingsChanges(); @@ -144,6 +148,7 @@ private slots: void agentEnabled(bool enabled); void updateTrayIcon(); void updateProgressBar(int percentage, QString message); + void updateEntryCountLabel(); void focusSearchWidget(); private: @@ -170,6 +175,7 @@ private: QPointer m_entryNewContextMenu; QPointer m_lastDatabasesActions; QPointer m_copyAdditionalAttributeActions; + QPointer m_setTagsMenuActions; QPointer m_inactivityTimer; QPointer m_touchIDinactivityTimer; int m_countDefaultAttributes; @@ -178,6 +184,7 @@ private: QPointer m_searchWidget; QPointer m_progressBar; QPointer m_progressBarLabel; + QPointer m_statusBarLabel; Q_DISABLE_COPY(MainWindow) @@ -186,6 +193,7 @@ private: bool m_restartRequested = false; bool m_contextMenuFocusLock = false; bool m_showToolbarSeparator = false; + bool m_allowScreenCapture = false; qint64 m_lastFocusOutTime = 0; qint64 m_lastShowTime = 0; QTimer m_updateCheckTimer; diff --git a/src/gui/MainWindow.ui b/src/gui/MainWindow.ui index b92b00742..48574049e 100644 --- a/src/gui/MainWindow.ui +++ b/src/gui/MainWindow.ui @@ -216,7 +216,7 @@ 0 0 800 - 21 + 22 @@ -231,20 +231,13 @@ &Recent Databases - - - &Import - - - - - &Export + @@ -261,8 +254,11 @@ + + + - + @@ -300,7 +296,6 @@ Copy Att&ribute - @@ -312,10 +307,16 @@ TOTP + + + + Tags + + @@ -326,11 +327,15 @@ + + + + @@ -377,6 +382,7 @@ + @@ -611,6 +617,34 @@ QAction::NoRole + + + false + + + Passkeys… + + + Passkeys + + + QAction::NoRole + + + + + false + + + Import Passkey + + + Import Passkey + + + QAction::NoRole + + false @@ -690,6 +724,14 @@ Perform &Auto-Type + + + false + + + Import Passkey + + false @@ -805,7 +847,7 @@ false - &URL + Copy &URL Copy URL to clipboard @@ -882,6 +924,11 @@ Copy &TOTP + + + Copy Password and TOTP + + E&mpty recycle bin @@ -1089,6 +1136,38 @@ &Lock Database + + + false + + + &XML File… + + + XML File… + + + + + true + + + Allow Screen Capture + + + + + 1Password 1PUX... + + + Import a 1Password 1PUX file + + + + + Import… + + diff --git a/src/gui/OpVaultOpenWidget.cpp b/src/gui/OpVaultOpenWidget.cpp deleted file mode 100644 index cae569cf2..000000000 --- a/src/gui/OpVaultOpenWidget.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (C) 2019 KeePassXC Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 or (at your option) - * version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "OpVaultOpenWidget.h" - -#include "core/Database.h" -#include "format/OpVaultReader.h" -#include "ui_DatabaseOpenWidget.h" - -OpVaultOpenWidget::OpVaultOpenWidget(QWidget* parent) - : DatabaseOpenWidget(parent) -{ - m_ui->labelHeadline->setText("Import 1Password Database"); -} - -void OpVaultOpenWidget::openDatabase() -{ - OpVaultReader reader; - - QString password; - password = m_ui->editPassword->text(); - - QDir opVaultDir(m_filename); - - QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); - m_db.reset(reader.readDatabase(opVaultDir, password)); - QApplication::restoreOverrideCursor(); - - if (m_db) { - emit dialogFinished(true); - } else { - m_ui->messageWidget->showMessage(tr("Read Database did not produce an instance\n%1").arg(reader.errorString()), - MessageWidget::Error); - m_ui->editPassword->clear(); - } -} diff --git a/src/gui/PasswordGeneratorWidget.cpp b/src/gui/PasswordGeneratorWidget.cpp index d398b5c9b..b1e684410 100644 --- a/src/gui/PasswordGeneratorWidget.cpp +++ b/src/gui/PasswordGeneratorWidget.cpp @@ -56,7 +56,7 @@ PasswordGeneratorWidget::PasswordGeneratorWidget(QWidget* parent) connect(shortcut, &QShortcut::activated, this, [this] { applyPassword(); }); connect(m_ui->editNewPassword, SIGNAL(textChanged(QString)), SLOT(updateButtonsEnabled(QString))); - connect(m_ui->editNewPassword, SIGNAL(textChanged(QString)), SLOT(updatePasswordStrength(QString))); + connect(m_ui->editNewPassword, SIGNAL(textChanged(QString)), SLOT(updatePasswordStrength())); connect(m_ui->buttonAdvancedMode, SIGNAL(toggled(bool)), SLOT(setAdvancedMode(bool))); connect(m_ui->buttonAddHex, SIGNAL(clicked()), SLOT(excludeHexChars())); connect(m_ui->editAdditionalChars, SIGNAL(textChanged(QString)), SLOT(updateGenerator())); @@ -115,9 +115,7 @@ PasswordGeneratorWidget::PasswordGeneratorWidget(QWidget* parent) loadSettings(); } -PasswordGeneratorWidget::~PasswordGeneratorWidget() -{ -} +PasswordGeneratorWidget::~PasswordGeneratorWidget() = default; void PasswordGeneratorWidget::closeEvent(QCloseEvent* event) { @@ -253,15 +251,11 @@ void PasswordGeneratorWidget::regeneratePassword() { if (m_ui->tabWidget->currentIndex() == Password) { if (m_passwordGenerator->isValid()) { - QString password = m_passwordGenerator->generatePassword(); - m_ui->editNewPassword->setText(password); - updatePasswordStrength(password); + m_ui->editNewPassword->setText(m_passwordGenerator->generatePassword()); } } else { if (m_dicewareGenerator->isValid()) { - QString password = m_dicewareGenerator->generatePassphrase(); - m_ui->editNewPassword->setText(password); - updatePasswordStrength(password); + m_ui->editNewPassword->setText(m_dicewareGenerator->generatePassphrase()); } } } @@ -274,21 +268,52 @@ void PasswordGeneratorWidget::updateButtonsEnabled(const QString& password) m_ui->buttonCopy->setEnabled(!password.isEmpty()); } -void PasswordGeneratorWidget::updatePasswordStrength(const QString& password) +void PasswordGeneratorWidget::updatePasswordStrength() { - PasswordHealth health(password); + // Calculate the password / passphrase health + PasswordHealth passwordHealth(0); if (m_ui->tabWidget->currentIndex() == Diceware) { - // Diceware estimates entropy differently - health = PasswordHealth(m_dicewareGenerator->estimateEntropy()); - - m_ui->charactersInPassphraseLabel->setText(QString::number(password.length())); + passwordHealth.init(m_dicewareGenerator->estimateEntropy()); + m_ui->charactersInPassphraseLabel->setText(QString::number(m_ui->editNewPassword->text().length())); + } else { + passwordHealth = PasswordHealth(m_ui->editNewPassword->text()); } - m_ui->entropyLabel->setText(tr("Entropy: %1 bit").arg(QString::number(health.entropy(), 'f', 2))); + // Update the entropy text labels + m_ui->entropyLabel->setText(tr("Entropy: %1 bit").arg(QString::number(passwordHealth.entropy(), 'f', 2))); + m_ui->entropyProgressBar->setValue(std::min(int(passwordHealth.entropy()), m_ui->entropyProgressBar->maximum())); - m_ui->entropyProgressBar->setValue(std::min(int(health.entropy()), m_ui->entropyProgressBar->maximum())); + // Update the visual strength meter + QString style = m_ui->entropyProgressBar->styleSheet(); + QRegularExpression re("(QProgressBar::chunk\\s*\\{.*?background-color:)[^;]+;", + QRegularExpression::CaseInsensitiveOption | QRegularExpression::DotMatchesEverythingOption); + style.replace(re, "\\1 %1;"); - colorStrengthIndicator(health); + StateColorPalette statePalette; + switch (passwordHealth.quality()) { + case PasswordHealth::Quality::Bad: + case PasswordHealth::Quality::Poor: + m_ui->entropyProgressBar->setStyleSheet( + style.arg(statePalette.color(StateColorPalette::HealthCritical).name())); + m_ui->strengthLabel->setText(tr("Password Quality: %1").arg(tr("Poor", "Password quality"))); + break; + + case PasswordHealth::Quality::Weak: + m_ui->entropyProgressBar->setStyleSheet(style.arg(statePalette.color(StateColorPalette::HealthBad).name())); + m_ui->strengthLabel->setText(tr("Password Quality: %1").arg(tr("Weak", "Password quality"))); + break; + + case PasswordHealth::Quality::Good: + m_ui->entropyProgressBar->setStyleSheet(style.arg(statePalette.color(StateColorPalette::HealthOk).name())); + m_ui->strengthLabel->setText(tr("Password Quality: %1").arg(tr("Good", "Password quality"))); + break; + + case PasswordHealth::Quality::Excellent: + m_ui->entropyProgressBar->setStyleSheet( + style.arg(statePalette.color(StateColorPalette::HealthExcellent).name())); + m_ui->strengthLabel->setText(tr("Password Quality: %1").arg(tr("Excellent", "Password quality"))); + break; + } } void PasswordGeneratorWidget::applyPassword() @@ -471,41 +496,6 @@ void PasswordGeneratorWidget::excludeHexChars() updateGenerator(); } -void PasswordGeneratorWidget::colorStrengthIndicator(const PasswordHealth& health) -{ - // Take the existing stylesheet and convert the text and background color to arguments - QString style = m_ui->entropyProgressBar->styleSheet(); - QRegularExpression re("(QProgressBar::chunk\\s*\\{.*?background-color:)[^;]+;", - QRegularExpression::CaseInsensitiveOption | QRegularExpression::DotMatchesEverythingOption); - style.replace(re, "\\1 %1;"); - - StateColorPalette statePalette; - switch (health.quality()) { - case PasswordHealth::Quality::Bad: - case PasswordHealth::Quality::Poor: - m_ui->entropyProgressBar->setStyleSheet( - style.arg(statePalette.color(StateColorPalette::HealthCritical).name())); - m_ui->strengthLabel->setText(tr("Password Quality: %1").arg(tr("Poor", "Password quality"))); - break; - - case PasswordHealth::Quality::Weak: - m_ui->entropyProgressBar->setStyleSheet(style.arg(statePalette.color(StateColorPalette::HealthBad).name())); - m_ui->strengthLabel->setText(tr("Password Quality: %1").arg(tr("Weak", "Password quality"))); - break; - - case PasswordHealth::Quality::Good: - m_ui->entropyProgressBar->setStyleSheet(style.arg(statePalette.color(StateColorPalette::HealthOk).name())); - m_ui->strengthLabel->setText(tr("Password Quality: %1").arg(tr("Good", "Password quality"))); - break; - - case PasswordHealth::Quality::Excellent: - m_ui->entropyProgressBar->setStyleSheet( - style.arg(statePalette.color(StateColorPalette::HealthExcellent).name())); - m_ui->strengthLabel->setText(tr("Password Quality: %1").arg(tr("Excellent", "Password quality"))); - break; - } -} - PasswordGenerator::CharClasses PasswordGeneratorWidget::charClasses() { PasswordGenerator::CharClasses classes; diff --git a/src/gui/PasswordGeneratorWidget.h b/src/gui/PasswordGeneratorWidget.h index 80b3f26de..e272e674d 100644 --- a/src/gui/PasswordGeneratorWidget.h +++ b/src/gui/PasswordGeneratorWidget.h @@ -20,6 +20,7 @@ #define KEEPASSX_PASSWORDGENERATORWIDGET_H #include +#include #include "core/PassphraseGenerator.h" #include "core/PasswordGenerator.h" @@ -57,6 +58,10 @@ public: static PasswordGeneratorWidget* popupGenerator(QWidget* parent = nullptr); +signals: + void appliedPassword(const QString& password); + void closed(); + public slots: void regeneratePassword(); void applyPassword(); @@ -65,19 +70,14 @@ public slots: void deleteWordList(); void addWordList(); -signals: - void appliedPassword(const QString& password); - void closed(); - private slots: void updateButtonsEnabled(const QString& password); - void updatePasswordStrength(const QString& password); + void updatePasswordStrength(); void setAdvancedMode(bool advanced); void excludeHexChars(); void passwordLengthChanged(int length); void passphraseLengthChanged(int length); - void colorStrengthIndicator(const PasswordHealth& health); void updateGenerator(); diff --git a/src/gui/PasswordGeneratorWidget.ui b/src/gui/PasswordGeneratorWidget.ui index 547c5a0ab..250f13038 100644 --- a/src/gui/PasswordGeneratorWidget.ui +++ b/src/gui/PasswordGeneratorWidget.ui @@ -87,9 +87,9 @@ - + - + 0 0 @@ -100,6 +100,9 @@ 0 + + Qt::StrongFocus + Generated password @@ -205,6 +208,9 @@ QProgressBar::chunk { Password + + 10 + @@ -492,7 +498,7 @@ QProgressBar::chunk { Math Symbols - < * + ! ? = + < > * + ! ? = true @@ -990,9 +996,9 @@ QProgressBar::chunk { - PasswordEdit - QLineEdit -
    gui/PasswordEdit.h
    + PasswordWidget + QWidget +
    gui/PasswordWidget.h
    1
    diff --git a/src/gui/PasswordEdit.cpp b/src/gui/PasswordWidget.cpp similarity index 50% rename from src/gui/PasswordEdit.cpp rename to src/gui/PasswordWidget.cpp index 5f9272b1b..e1fc20c6b 100644 --- a/src/gui/PasswordEdit.cpp +++ b/src/gui/PasswordWidget.cpp @@ -16,9 +16,11 @@ * along with this program. If not, see . */ -#include "PasswordEdit.h" +#include "PasswordWidget.h" +#include "ui_PasswordWidget.h" #include "core/Config.h" +#include "core/PasswordHealth.h" #include "gui/Font.h" #include "gui/Icons.h" #include "gui/PasswordGeneratorWidget.h" @@ -26,19 +28,24 @@ #include "gui/styles/StateColorPalette.h" #include +#include #include #include -PasswordEdit::PasswordEdit(QWidget* parent) - : QLineEdit(parent) +PasswordWidget::PasswordWidget(QWidget* parent) + : QWidget(parent) + , m_ui(new Ui::PasswordWidget()) { + m_ui->setupUi(this); + setFocusProxy(m_ui->passwordEdit); + const QIcon errorIcon = icons()->icon("dialog-error"); - m_errorAction = addAction(errorIcon, QLineEdit::TrailingPosition); + m_errorAction = m_ui->passwordEdit->addAction(errorIcon, QLineEdit::TrailingPosition); m_errorAction->setVisible(false); m_errorAction->setToolTip(tr("Passwords do not match")); const QIcon correctIcon = icons()->icon("dialog-ok"); - m_correctAction = addAction(correctIcon, QLineEdit::TrailingPosition); + m_correctAction = m_ui->passwordEdit->addAction(correctIcon, QLineEdit::TrailingPosition); m_correctAction->setVisible(false); m_correctAction->setToolTip(tr("Passwords match so far")); @@ -47,7 +54,7 @@ PasswordEdit::PasswordEdit(QWidget* parent) // use a monospace font for the password field QFont passwordFont = Font::fixedFont(); passwordFont.setLetterSpacing(QFont::PercentageSpacing, 110); - setFont(passwordFont); + m_ui->passwordEdit->setFont(passwordFont); // Prevent conflicts with global Mac shortcuts (force Control on all platforms) #ifdef Q_OS_MAC @@ -63,8 +70,8 @@ PasswordEdit::PasswordEdit(QWidget* parent) m_toggleVisibleAction->setCheckable(true); m_toggleVisibleAction->setShortcut(modifier + Qt::Key_H); m_toggleVisibleAction->setShortcutContext(Qt::WidgetShortcut); - addAction(m_toggleVisibleAction, QLineEdit::TrailingPosition); - connect(m_toggleVisibleAction, &QAction::triggered, this, &PasswordEdit::setShowPassword); + m_ui->passwordEdit->addAction(m_toggleVisibleAction, QLineEdit::TrailingPosition); + connect(m_toggleVisibleAction, &QAction::triggered, this, &PasswordWidget::setShowPassword); m_passwordGeneratorAction = new QAction( icons()->icon("password-generator"), @@ -72,85 +79,139 @@ PasswordEdit::PasswordEdit(QWidget* parent) this); m_passwordGeneratorAction->setShortcut(modifier + Qt::Key_G); m_passwordGeneratorAction->setShortcutContext(Qt::WidgetShortcut); - addAction(m_passwordGeneratorAction, QLineEdit::TrailingPosition); + m_ui->passwordEdit->addAction(m_passwordGeneratorAction, QLineEdit::TrailingPosition); m_passwordGeneratorAction->setVisible(false); m_capslockAction = new QAction(icons()->icon("dialog-warning", true, StateColorPalette().color(StateColorPalette::Error)), tr("Warning: Caps Lock enabled!"), this); - addAction(m_capslockAction, QLineEdit::LeadingPosition); + m_ui->passwordEdit->addAction(m_capslockAction, QLineEdit::LeadingPosition); m_capslockAction->setVisible(false); + + // Reset the password strength bar, hidden by default + updatePasswordStrength(""); + m_ui->qualityProgressBar->setVisible(false); + + connect(m_ui->passwordEdit, &QLineEdit::textChanged, this, [this](const QString& pwd) { + updatePasswordStrength(pwd); + emit textChanged(pwd); + }); } -void PasswordEdit::setRepeatPartner(PasswordEdit* repeatEdit) +PasswordWidget::~PasswordWidget() { - m_repeatPasswordEdit = repeatEdit; - m_repeatPasswordEdit->setParentPasswordEdit(this); - - connect(this, SIGNAL(textChanged(QString)), m_repeatPasswordEdit, SLOT(autocompletePassword(QString))); - connect(this, SIGNAL(textChanged(QString)), m_repeatPasswordEdit, SLOT(updateRepeatStatus())); - connect(m_repeatPasswordEdit, SIGNAL(textChanged(QString)), m_repeatPasswordEdit, SLOT(updateRepeatStatus())); } -void PasswordEdit::setParentPasswordEdit(PasswordEdit* parent) +void PasswordWidget::setQualityVisible(bool state) { - m_parentPasswordEdit = parent; + m_ui->qualityProgressBar->setVisible(state); +} + +QString PasswordWidget::text() +{ + return m_ui->passwordEdit->text(); +} + +void PasswordWidget::setText(const QString& text) +{ + m_ui->passwordEdit->setText(text); +} + +void PasswordWidget::setEchoMode(QLineEdit::EchoMode mode) +{ + m_ui->passwordEdit->setEchoMode(mode); +} + +void PasswordWidget::clear() +{ + m_ui->passwordEdit->clear(); +} + +void PasswordWidget::setClearButtonEnabled(bool enabled) +{ + m_ui->passwordEdit->setClearButtonEnabled(enabled); +} + +void PasswordWidget::selectAll() +{ + m_ui->passwordEdit->selectAll(); +} + +void PasswordWidget::setReadOnly(bool state) +{ + m_ui->passwordEdit->setReadOnly(state); +} + +void PasswordWidget::setRepeatPartner(PasswordWidget* repeatPartner) +{ + m_repeatPasswordWidget = repeatPartner; + m_repeatPasswordWidget->setParentPasswordEdit(this); + + connect( + m_ui->passwordEdit, SIGNAL(textChanged(QString)), m_repeatPasswordWidget, SLOT(autocompletePassword(QString))); + connect(m_ui->passwordEdit, SIGNAL(textChanged(QString)), m_repeatPasswordWidget, SLOT(updateRepeatStatus())); +} + +void PasswordWidget::setParentPasswordEdit(PasswordWidget* parent) +{ + m_parentPasswordWidget = parent; // Hide actions m_toggleVisibleAction->setVisible(false); m_passwordGeneratorAction->setVisible(false); + connect(m_ui->passwordEdit, SIGNAL(textChanged(QString)), this, SLOT(updateRepeatStatus())); } -void PasswordEdit::enablePasswordGenerator() +void PasswordWidget::enablePasswordGenerator() { if (!m_passwordGeneratorAction->isVisible()) { m_passwordGeneratorAction->setVisible(true); - connect(m_passwordGeneratorAction, &QAction::triggered, this, &PasswordEdit::popupPasswordGenerator); + connect(m_passwordGeneratorAction, &QAction::triggered, this, &PasswordWidget::popupPasswordGenerator); } } -void PasswordEdit::setShowPassword(bool show) +void PasswordWidget::setShowPassword(bool show) { setEchoMode(show ? QLineEdit::Normal : QLineEdit::Password); m_toggleVisibleAction->setIcon(icons()->onOffIcon("password-show", show)); m_toggleVisibleAction->setChecked(show); - if (m_repeatPasswordEdit) { - m_repeatPasswordEdit->setEchoMode(show ? QLineEdit::Normal : QLineEdit::Password); + if (m_repeatPasswordWidget) { + m_repeatPasswordWidget->setEchoMode(show ? QLineEdit::Normal : QLineEdit::Password); if (!config()->get(Config::Security_PasswordsRepeatVisible).toBool()) { - m_repeatPasswordEdit->setEnabled(!show); - m_repeatPasswordEdit->setText(text()); + m_repeatPasswordWidget->setEnabled(!show); + m_repeatPasswordWidget->setText(text()); } else { - m_repeatPasswordEdit->setEnabled(true); + m_repeatPasswordWidget->setEnabled(true); } } } -bool PasswordEdit::isPasswordVisible() const +bool PasswordWidget::isPasswordVisible() const { - return echoMode() == QLineEdit::Normal; + return m_ui->passwordEdit->echoMode() == QLineEdit::Normal; } -void PasswordEdit::popupPasswordGenerator() +void PasswordWidget::popupPasswordGenerator() { auto generator = PasswordGeneratorWidget::popupGenerator(this); generator->setPasswordVisible(isPasswordVisible()); generator->setPasswordLength(text().length()); connect(generator, SIGNAL(appliedPassword(QString)), SLOT(setText(QString))); - if (m_repeatPasswordEdit) { - connect(generator, SIGNAL(appliedPassword(QString)), m_repeatPasswordEdit, SLOT(setText(QString))); + if (m_repeatPasswordWidget) { + connect(generator, SIGNAL(appliedPassword(QString)), m_repeatPasswordWidget, SLOT(setText(QString))); } } -void PasswordEdit::updateRepeatStatus() +void PasswordWidget::updateRepeatStatus() { static const auto stylesheetTemplate = QStringLiteral("QLineEdit { background: %1; }"); - if (!m_parentPasswordEdit) { + if (!m_parentPasswordWidget) { return; } - const auto otherPassword = m_parentPasswordEdit->text(); + const auto otherPassword = m_parentPasswordWidget->text(); const auto password = text(); if (otherPassword != password) { bool isCorrect = false; @@ -170,26 +231,27 @@ void PasswordEdit::updateRepeatStatus() } } -void PasswordEdit::autocompletePassword(const QString& password) +void PasswordWidget::autocompletePassword(const QString& password) { - if (!config()->get(Config::Security_PasswordsRepeatVisible).toBool() && echoMode() == QLineEdit::Normal) { + if (!config()->get(Config::Security_PasswordsRepeatVisible).toBool() + && m_ui->passwordEdit->echoMode() == QLineEdit::Normal) { setText(password); } } -bool PasswordEdit::event(QEvent* event) +bool PasswordWidget::event(QEvent* event) { if (isVisible() && (event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease || event->type() == QEvent::FocusIn)) { checkCapslockState(); } - return QLineEdit::event(event); + return QWidget::event(event); } -void PasswordEdit::checkCapslockState() +void PasswordWidget::checkCapslockState() { - if (m_parentPasswordEdit) { + if (m_parentPasswordWidget) { return; } @@ -201,8 +263,6 @@ void PasswordEdit::checkCapslockState() // Force repaint to avoid rendering glitches of QLineEdit contents repaint(); - emit capslockToggled(m_capslockState); - if (newCapslockState) { QTimer::singleShot( 150, [this] { QToolTip::showText(mapToGlobal(rect().bottomLeft()), m_capslockAction->text()); }); @@ -211,3 +271,55 @@ void PasswordEdit::checkCapslockState() } } } + +void PasswordWidget::updatePasswordStrength(const QString& password) +{ + if (password.isEmpty()) { + m_ui->qualityProgressBar->setValue(0); + m_ui->qualityProgressBar->setToolTip((tr(""))); + return; + } + + PasswordHealth health(password); + + m_ui->qualityProgressBar->setValue(std::min(int(health.entropy()), m_ui->qualityProgressBar->maximum())); + + QString style = m_ui->qualityProgressBar->styleSheet(); + QRegularExpression re("(QProgressBar::chunk\\s*\\{.*?background-color:)[^;]+;", + QRegularExpression::CaseInsensitiveOption | QRegularExpression::DotMatchesEverythingOption); + style.replace(re, "\\1 %1;"); + + StateColorPalette qualityPalette; + + switch (health.quality()) { + case PasswordHealth::Quality::Bad: + case PasswordHealth::Quality::Poor: + m_ui->qualityProgressBar->setStyleSheet( + style.arg(qualityPalette.color(StateColorPalette::HealthCritical).name())); + + m_ui->qualityProgressBar->setToolTip(tr("Quality: %1").arg(tr("Poor", "Password quality"))); + + break; + + case PasswordHealth::Quality::Weak: + m_ui->qualityProgressBar->setStyleSheet(style.arg(qualityPalette.color(StateColorPalette::HealthBad).name())); + + m_ui->qualityProgressBar->setToolTip(tr("Quality: %1").arg(tr("Weak", "Password quality"))); + + break; + case PasswordHealth::Quality::Good: + m_ui->qualityProgressBar->setStyleSheet(style.arg(qualityPalette.color(StateColorPalette::HealthOk).name())); + + m_ui->qualityProgressBar->setToolTip(tr("Quality: %1").arg(tr("Good", "Password quality"))); + + break; + case PasswordHealth::Quality::Excellent: + + m_ui->qualityProgressBar->setStyleSheet( + style.arg(qualityPalette.color(StateColorPalette::HealthExcellent).name())); + + m_ui->qualityProgressBar->setToolTip(tr("Quality: %1").arg(tr("Excellent", "Password quality"))); + + break; + } +} \ No newline at end of file diff --git a/src/gui/PasswordEdit.h b/src/gui/PasswordWidget.h similarity index 59% rename from src/gui/PasswordEdit.h rename to src/gui/PasswordWidget.h index 559394bd0..d803b1f81 100644 --- a/src/gui/PasswordEdit.h +++ b/src/gui/PasswordWidget.h @@ -16,50 +16,71 @@ * along with this program. If not, see . */ -#ifndef KEEPASSX_PASSWORDEDIT_H -#define KEEPASSX_PASSWORDEDIT_H +#ifndef KEEPASSX_PASSWORDWIDGET_H +#define KEEPASSX_PASSWORDWIDGET_H #include #include #include +#include -class QDialog; +namespace Ui +{ + class PasswordWidget; +} -class PasswordEdit : public QLineEdit +class PasswordWidget : public QWidget { Q_OBJECT + Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged USER true) public: - explicit PasswordEdit(QWidget* parent = nullptr); + explicit PasswordWidget(QWidget* parent = nullptr); + ~PasswordWidget() override; void enablePasswordGenerator(); - void setRepeatPartner(PasswordEdit* repeatEdit); + void setRepeatPartner(PasswordWidget* repeatPartner); + void setQualityVisible(bool state); + bool isPasswordVisible() const; + QString text(); + +signals: + void textChanged(QString text); public slots: + void setText(const QString& text); void setShowPassword(bool show); - void updateRepeatStatus(); + + void clear(); + void selectAll(); + void setReadOnly(bool state); + void setEchoMode(QLineEdit::EchoMode mode); + void setClearButtonEnabled(bool enabled); protected: bool event(QEvent* event) override; -signals: - void capslockToggled(bool capslockOn); - private slots: void autocompletePassword(const QString& password); void popupPasswordGenerator(); - void setParentPasswordEdit(PasswordEdit* parent); - void checkCapslockState(); + void updateRepeatStatus(); + void updatePasswordStrength(const QString& password); private: + void checkCapslockState(); + void setParentPasswordEdit(PasswordWidget* parent); + + const QScopedPointer m_ui; + QPointer m_errorAction; QPointer m_correctAction; QPointer m_toggleVisibleAction; QPointer m_passwordGeneratorAction; QPointer m_capslockAction; - QPointer m_repeatPasswordEdit; - QPointer m_parentPasswordEdit; + QPointer m_repeatPasswordWidget; + QPointer m_parentPasswordWidget; + bool m_capslockState = false; }; -#endif // KEEPASSX_PASSWORDEDIT_H +#endif // KEEPASSX_PASSWORDWIDGET_H diff --git a/src/gui/PasswordWidget.ui b/src/gui/PasswordWidget.ui new file mode 100644 index 000000000..34cae29e1 --- /dev/null +++ b/src/gui/PasswordWidget.ui @@ -0,0 +1,70 @@ + + + PasswordWidget + + + + 0 + 0 + 471 + 25 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Toggle password visibilty using Control + H. Open the password generator using Control + G. + + + + + + + + 16777215 + 4 + + + + QProgressBar { + border: none; + background-color: transparent; + } + QProgressBar::chunk { + background-color: #c0392b; + border-radius: 1px; + } + + + + 24 + + + false + + + + + + + passwordEdit + + + + diff --git a/src/gui/SearchHelpWidget.ui b/src/gui/SearchHelpWidget.ui index bd8731eb9..907b2822d 100644 --- a/src/gui/SearchHelpWidget.ui +++ b/src/gui/SearchHelpWidget.ui @@ -214,6 +214,13 @@
    + + + + uuid + + + diff --git a/src/gui/SearchWidget.cpp b/src/gui/SearchWidget.cpp index ab79868aa..cfeba57c1 100644 --- a/src/gui/SearchWidget.cpp +++ b/src/gui/SearchWidget.cpp @@ -46,6 +46,7 @@ SearchWidget::SearchWidget(QWidget* parent) connect(m_ui->searchEdit, SIGNAL(textChanged(QString)), SLOT(startSearchTimer())); connect(m_ui->helpIcon, SIGNAL(triggered()), SLOT(toggleHelp())); connect(m_ui->searchIcon, SIGNAL(triggered()), SLOT(showSearchMenu())); + connect(m_ui->saveIcon, &QAction::triggered, this, [this] { emit saveSearch(m_ui->searchEdit->text()); }); connect(m_searchTimer, SIGNAL(timeout()), SLOT(startSearch())); connect(m_clearSearchTimer, SIGNAL(timeout()), SLOT(clearSearch())); connect(this, SIGNAL(escapePressed()), SLOT(clearSearch())); @@ -70,6 +71,10 @@ SearchWidget::SearchWidget(QWidget* parent) m_ui->helpIcon->setIcon(icons()->icon("system-help")); m_ui->searchEdit->addAction(m_ui->helpIcon, QLineEdit::TrailingPosition); + m_ui->saveIcon->setIcon(icons()->icon("document-save")); + m_ui->searchEdit->addAction(m_ui->saveIcon, QLineEdit::TrailingPosition); + m_ui->saveIcon->setVisible(false); + // Fix initial visibility of actions (bug in Qt) for (QToolButton* toolButton : m_ui->searchEdit->findChildren()) { toolButton->setVisible(toolButton->defaultAction()->isVisible()); @@ -126,6 +131,7 @@ void SearchWidget::connectSignals(SignalMultiplexer& mx) { // Connects basically only to the current DatabaseWidget, but allows to switch between instances! mx.connect(this, SIGNAL(search(QString)), SLOT(search(QString))); + mx.connect(this, SIGNAL(saveSearch(QString)), SLOT(saveSearch(QString))); mx.connect(this, SIGNAL(caseSensitiveChanged(bool)), SLOT(setSearchCaseSensitive(bool))); mx.connect(this, SIGNAL(limitGroupChanged(bool)), SLOT(setSearchLimitGroup(bool))); mx.connect(this, SIGNAL(copyPressed()), SLOT(copyPassword())); @@ -165,6 +171,7 @@ void SearchWidget::startSearch() m_searchTimer->stop(); } + m_ui->saveIcon->setVisible(true); search(m_ui->searchEdit->text()); } @@ -208,6 +215,7 @@ void SearchWidget::focusSearch() void SearchWidget::clearSearch() { m_ui->searchEdit->clear(); + m_ui->saveIcon->setVisible(false); emit searchCanceled(); } diff --git a/src/gui/SearchWidget.h b/src/gui/SearchWidget.h index 820e9fea8..55edad583 100644 --- a/src/gui/SearchWidget.h +++ b/src/gui/SearchWidget.h @@ -61,6 +61,7 @@ signals: void downPressed(); void enterPressed(); void lostFocus(); + void saveSearch(const QString& text); public slots: void databaseChanged(DatabaseWidget* dbWidget = nullptr); diff --git a/src/gui/SearchWidget.ui b/src/gui/SearchWidget.ui index c924b4076..ab4ef1302 100644 --- a/src/gui/SearchWidget.ui +++ b/src/gui/SearchWidget.ui @@ -56,6 +56,11 @@ Search Help + + + Save Search + + searchEdit diff --git a/src/gui/SortFilterHideProxyModel.cpp b/src/gui/SortFilterHideProxyModel.cpp index 0193d9594..73a856bbb 100644 --- a/src/gui/SortFilterHideProxyModel.cpp +++ b/src/gui/SortFilterHideProxyModel.cpp @@ -20,6 +20,7 @@ SortFilterHideProxyModel::SortFilterHideProxyModel(QObject* parent) : QSortFilterProxyModel(parent) { + m_collator.setNumericMode(true); } Qt::DropActions SortFilterHideProxyModel::supportedDragActions() const @@ -37,7 +38,18 @@ void SortFilterHideProxyModel::hideColumn(int column, bool hide) bool SortFilterHideProxyModel::filterAcceptsColumn(int sourceColumn, const QModelIndex& sourceParent) const { - Q_UNUSED(sourceParent); + Q_UNUSED(sourceParent) return sourceColumn >= m_hiddenColumns.size() || !m_hiddenColumns.at(sourceColumn); } + +bool SortFilterHideProxyModel::lessThan(const QModelIndex& left, const QModelIndex& right) const +{ + auto leftData = sourceModel()->data(left, sortRole()); + auto rightData = sourceModel()->data(right, sortRole()); + if (leftData.type() == QVariant::String) { + return m_collator.compare(leftData.toString(), rightData.toString()) < 0; + } + + return QSortFilterProxyModel::lessThan(left, right); +} diff --git a/src/gui/SortFilterHideProxyModel.h b/src/gui/SortFilterHideProxyModel.h index 58d9ff703..742d8a3fb 100644 --- a/src/gui/SortFilterHideProxyModel.h +++ b/src/gui/SortFilterHideProxyModel.h @@ -19,6 +19,7 @@ #define KEEPASSX_SORTFILTERHIDEPROXYMODEL_H #include +#include #include class SortFilterHideProxyModel : public QSortFilterProxyModel @@ -32,9 +33,11 @@ public: protected: bool filterAcceptsColumn(int sourceColumn, const QModelIndex& sourceParent) const override; + bool lessThan(const QModelIndex& left, const QModelIndex& right) const override; private: QBitArray m_hiddenColumns; + QCollator m_collator; }; #endif // KEEPASSX_SORTFILTERHIDEPROXYMODEL_H diff --git a/src/gui/SquareSvgWidget.cpp b/src/gui/SquareSvgWidget.cpp index 5a907e95b..b39cee979 100644 --- a/src/gui/SquareSvgWidget.cpp +++ b/src/gui/SquareSvgWidget.cpp @@ -16,6 +16,14 @@ */ #include "SquareSvgWidget.h" +#include + +SquareSvgWidget::SquareSvgWidget(QWidget* parent) + : QSvgWidget(parent) +{ + Q_ASSERT(parent); + setObjectName("squareSvgWidget"); +} bool SquareSvgWidget::hasHeightForWidth() const { @@ -26,3 +34,24 @@ int SquareSvgWidget::heightForWidth(int width) const { return width; } + +// The overridden logic allows to keep the SVG image as square and centered by width and height. +void SquareSvgWidget::resizeEvent(QResizeEvent*) +{ + QWidget* pWidget = parentWidget(); + Q_ASSERT(pWidget); + if (pWidget) { + auto containerRect = pWidget->contentsRect(); + + auto containerWidth = containerRect.width(); + auto containerHeight = containerRect.height(); + + auto squareSize = qMin(containerWidth, containerHeight); + auto halfSquareSize = squareSize >> 1; + + auto startX = (containerWidth >> 1) - halfSquareSize; + auto startY = (containerHeight >> 1) - halfSquareSize; + + setGeometry(startX, startY, squareSize, squareSize); + } +} diff --git a/src/gui/SquareSvgWidget.h b/src/gui/SquareSvgWidget.h index c59548b74..479bd964d 100644 --- a/src/gui/SquareSvgWidget.h +++ b/src/gui/SquareSvgWidget.h @@ -23,11 +23,13 @@ class SquareSvgWidget : public QSvgWidget { public: - SquareSvgWidget() = default; + explicit SquareSvgWidget(QWidget* parent); ~SquareSvgWidget() override = default; bool hasHeightForWidth() const override; int heightForWidth(int width) const override; + + void resizeEvent(QResizeEvent* event) override; }; #endif // KEEPASSX_SquareSvgWidget_H diff --git a/src/gui/TotpDialog.cpp b/src/gui/TotpDialog.cpp index e856f5d6a..577fa1056 100644 --- a/src/gui/TotpDialog.cpp +++ b/src/gui/TotpDialog.cpp @@ -20,9 +20,9 @@ #include "ui_TotpDialog.h" #include "core/Clock.h" +#include "core/Totp.h" #include "gui/Clipboard.h" #include "gui/MainWindow.h" -#include "totp/totp.h" #include #include diff --git a/src/gui/TotpDialog.h b/src/gui/TotpDialog.h index 1782c2de8..d64549759 100644 --- a/src/gui/TotpDialog.h +++ b/src/gui/TotpDialog.h @@ -19,6 +19,8 @@ #ifndef KEEPASSX_TOTPDIALOG_H #define KEEPASSX_TOTPDIALOG_H +#include + #include "core/Database.h" #include "gui/DatabaseWidget.h" diff --git a/src/gui/TotpExportSettingsDialog.cpp b/src/gui/TotpExportSettingsDialog.cpp index 3699dd20f..0568996b1 100644 --- a/src/gui/TotpExportSettingsDialog.cpp +++ b/src/gui/TotpExportSettingsDialog.cpp @@ -17,37 +17,42 @@ #include "TotpExportSettingsDialog.h" +#include "core/Totp.h" #include "gui/Clipboard.h" #include "gui/MainWindow.h" #include "gui/SquareSvgWidget.h" #include "qrcode/QrCode.h" -#include "totp/totp.h" #include #include +#include #include #include #include #include +#include TotpExportSettingsDialog::TotpExportSettingsDialog(DatabaseWidget* parent, Entry* entry) : QDialog(parent) , m_timer(new QTimer(this)) , m_verticalLayout(new QVBoxLayout()) - , m_totpSvgWidget(new SquareSvgWidget()) + , m_totpSvgContainerWidget(new QStackedWidget()) + , m_totpSvgWidget(new SquareSvgWidget(m_totpSvgContainerWidget)) , m_countDown(new QLabel()) , m_warningLabel(new QLabel()) , m_buttonBox(new QDialogButtonBox(QDialogButtonBox::Close | QDialogButtonBox::Ok)) { + setObjectName("entryQrCodeWidget"); + m_totpSvgContainerWidget->addWidget(m_totpSvgWidget); + m_verticalLayout->addWidget(m_warningLabel); m_verticalLayout->addItem(new QSpacerItem(0, 0)); - - m_verticalLayout->addStretch(0); - m_verticalLayout->addWidget(m_totpSvgWidget); - m_verticalLayout->addStretch(0); + m_verticalLayout->addWidget(m_totpSvgContainerWidget); m_verticalLayout->addWidget(m_countDown); m_verticalLayout->addWidget(m_buttonBox); + m_verticalLayout->setAlignment(m_buttonBox, Qt::AlignBottom); + setLayout(m_verticalLayout); setAttribute(Qt::WA_DeleteOnClose); diff --git a/src/gui/TotpExportSettingsDialog.h b/src/gui/TotpExportSettingsDialog.h index ed58dd073..ff8308d82 100644 --- a/src/gui/TotpExportSettingsDialog.h +++ b/src/gui/TotpExportSettingsDialog.h @@ -18,6 +18,8 @@ #ifndef KEEPASSX_TotpExportSettingsDialog_H #define KEEPASSX_TotpExportSettingsDialog_H +#include + #include "core/Database.h" #include "gui/DatabaseWidget.h" @@ -44,6 +46,7 @@ private: QTimer* m_timer; QVBoxLayout* m_verticalLayout; + QStackedWidget* m_totpSvgContainerWidget; SquareSvgWidget* m_totpSvgWidget; QLabel* m_countDown; QLabel* m_warningLabel; diff --git a/src/gui/TotpSetupDialog.cpp b/src/gui/TotpSetupDialog.cpp index 1d403a17c..e796e1d5e 100644 --- a/src/gui/TotpSetupDialog.cpp +++ b/src/gui/TotpSetupDialog.cpp @@ -19,8 +19,8 @@ #include "ui_TotpSetupDialog.h" #include "core/Base32.h" +#include "core/Totp.h" #include "gui/MessageBox.h" -#include "totp/totp.h" TotpSetupDialog::TotpSetupDialog(QWidget* parent, Entry* entry) : QDialog(parent) @@ -29,6 +29,11 @@ TotpSetupDialog::TotpSetupDialog(QWidget* parent, Entry* entry) { m_ui->setupUi(this); setAttribute(Qt::WA_DeleteOnClose); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + setWindowFlag(Qt::WindowContextHelpButtonHint, false); +#else + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); +#endif setFixedSize(sizeHint()); connect(m_ui->buttonBox, SIGNAL(rejected()), SLOT(close())); diff --git a/src/gui/TotpSetupDialog.h b/src/gui/TotpSetupDialog.h index 9781b3954..3822f119f 100644 --- a/src/gui/TotpSetupDialog.h +++ b/src/gui/TotpSetupDialog.h @@ -19,6 +19,8 @@ #ifndef KEEPASSX_SETUPTOTPDIALOG_H #define KEEPASSX_SETUPTOTPDIALOG_H +#include + #include "core/Database.h" #include "gui/DatabaseWidget.h" diff --git a/src/gui/TotpSetupDialog.ui b/src/gui/TotpSetupDialog.ui index 5088d8bbf..ab15b8ea8 100644 --- a/src/gui/TotpSetupDialog.ui +++ b/src/gui/TotpSetupDialog.ui @@ -163,7 +163,7 @@ 1 - 60 + 86400 30 diff --git a/src/gui/URLEdit.cpp b/src/gui/URLEdit.cpp index d249ddd85..f5fbbb24b 100644 --- a/src/gui/URLEdit.cpp +++ b/src/gui/URLEdit.cpp @@ -1,6 +1,6 @@ /* + * Copyright (C) 2023 KeePassXC Team * Copyright (C) 2014 Felix Geyer - * Copyright (C) 2020 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,6 +19,7 @@ #include "URLEdit.h" #include "core/Tools.h" +#include "core/UrlTools.h" #include "gui/Icons.h" #include "gui/styles/StateColorPalette.h" @@ -44,7 +45,7 @@ void URLEdit::updateStylesheet() { const QString stylesheetTemplate("QLineEdit { background: %1; }"); - if (!Tools::checkUrlValid(text())) { + if (!urlTools()->isUrlValid(text())) { StateColorPalette statePalette; QColor color = statePalette.color(StateColorPalette::ColorRole::Error); setStyleSheet(stylesheetTemplate.arg(color.name())); diff --git a/src/gui/WelcomeWidget.cpp b/src/gui/WelcomeWidget.cpp index 49563ff73..03f3925a6 100644 --- a/src/gui/WelcomeWidget.cpp +++ b/src/gui/WelcomeWidget.cpp @@ -37,14 +37,15 @@ WelcomeWidget::WelcomeWidget(QWidget* parent) m_ui->welcomeLabel->setFont(welcomeLabelFont); m_ui->iconLabel->setPixmap(icons()->applicationIcon().pixmap(64)); + m_ui->buttonNewDatabase->setIcon(icons()->icon("document-new")); + m_ui->buttonOpenDatabase->setIcon(icons()->icon("document-open")); + m_ui->buttonImport->setIcon(icons()->icon("document-import")); refreshLastDatabases(); connect(m_ui->buttonNewDatabase, SIGNAL(clicked()), SIGNAL(newDatabase())); connect(m_ui->buttonOpenDatabase, SIGNAL(clicked()), SIGNAL(openDatabase())); - connect(m_ui->buttonImportKeePass1, SIGNAL(clicked()), SIGNAL(importKeePass1Database())); - connect(m_ui->buttonImportOpVault, SIGNAL(clicked()), SIGNAL(importOpVaultDatabase())); - connect(m_ui->buttonImportCSV, SIGNAL(clicked()), SIGNAL(importCsv())); + connect(m_ui->buttonImport, SIGNAL(clicked()), SIGNAL(importFile())); connect(m_ui->recentListWidget, SIGNAL(itemActivated(QListWidgetItem*)), this, diff --git a/src/gui/WelcomeWidget.h b/src/gui/WelcomeWidget.h index 15f93466c..15c3da7ff 100644 --- a/src/gui/WelcomeWidget.h +++ b/src/gui/WelcomeWidget.h @@ -39,9 +39,7 @@ signals: void newDatabase(); void openDatabase(); void openDatabaseFile(QString); - void importKeePass1Database(); - void importOpVaultDatabase(); - void importCsv(); + void importFile(); protected: void keyPressEvent(QKeyEvent* event) override; diff --git a/src/gui/WelcomeWidget.ui b/src/gui/WelcomeWidget.ui index 8b72df840..7a753e010 100644 --- a/src/gui/WelcomeWidget.ui +++ b/src/gui/WelcomeWidget.ui @@ -70,6 +70,22 @@ + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + @@ -103,40 +119,26 @@ - - - - Create new database - - - - - - - Open existing database - - - - + - Import from KeePass 1 + Create Database - + - Import from 1Password + Open Database - + - Import from CSV + Import File @@ -148,12 +150,12 @@ Qt::Vertical - QSizePolicy::Minimum + QSizePolicy::Fixed 0 - 5 + 20 @@ -193,11 +195,7 @@ - buttonNewDatabase - buttonOpenDatabase - buttonImportKeePass1 - buttonImportOpVault - buttonImportCSV + buttonImport recentListWidget diff --git a/src/gui/csvImport/CsvImportWidget.cpp b/src/gui/csvImport/CsvImportWidget.cpp index a3a30e4c3..cbf2ae0a2 100644 --- a/src/gui/csvImport/CsvImportWidget.cpp +++ b/src/gui/csvImport/CsvImportWidget.cpp @@ -1,4 +1,4 @@ -/* +/* * Copyright (C) 2016 Enrico Mariotti * Copyright (C) 2017 KeePassXC Team * @@ -19,38 +19,69 @@ #include "CsvImportWidget.h" #include "ui_CsvImportWidget.h" +#include "core/Clock.h" +#include "core/Database.h" +#include "core/Group.h" +#include "core/Totp.h" +#include "format/CsvParser.h" +#include "format/KeePass2Writer.h" +#include "gui/csvImport/CsvParserModel.h" + #include -#include "core/Clock.h" -#include "format/KeePass2Writer.h" -#include "gui/MessageBox.h" -#include "totp/totp.h" +namespace +{ + // Extract group names from nested path and return the last group created + Group* createGroupStructure(Database* db, const QString& groupPath) + { + auto group = db->rootGroup(); + if (!group || groupPath.isEmpty()) { + return group; + } -// I wanted to make the CSV import GUI future-proof, so if one day you need a new field, -// all you have to do is add a field to m_columnHeader, and the GUI will follow: -// dynamic generation of comboBoxes, labels, placement and so on. Try it for immense fun! + auto nameList = groupPath.split("/", QString::SkipEmptyParts); + // Skip over first group name if root + if (nameList.first().compare("root", Qt::CaseInsensitive)) { + nameList.removeFirst(); + } + + for (const auto& name : qAsConst(nameList)) { + auto child = group->findChildByName(name); + if (!child) { + auto newGroup = new Group(); + newGroup->setUuid(QUuid::createUuid()); + newGroup->setName(name); + newGroup->setParent(group); + group = newGroup; + } else { + group = child; + } + } + return group; + } +} // namespace CsvImportWidget::CsvImportWidget(QWidget* parent) : QWidget(parent) , m_ui(new Ui::CsvImportWidget()) , m_parserModel(new CsvParserModel(this)) , m_comboModel(new QStringListModel(this)) - , m_columnHeader(QStringList() << QObject::tr("Group") << QObject::tr("Title") << QObject::tr("Username") - << QObject::tr("Password") << QObject::tr("URL") << QObject::tr("Notes") - << QObject::tr("TOTP") << QObject::tr("Icon") << QObject::tr("Last Modified") - << QObject::tr("Created")) - , m_fieldSeparatorList(QStringList() << "," - << ";" - << "-" - << ":" - << "." - << "\t") { m_ui->setupUi(this); m_ui->tableViewFields->setSelectionMode(QAbstractItemView::NoSelection); m_ui->tableViewFields->setFocusPolicy(Qt::NoFocus); - m_ui->messageWidget->setHidden(true); + + m_columnHeader << QObject::tr("Group") << QObject::tr("Title") << QObject::tr("Username") << QObject::tr("Password") + << QObject::tr("URL") << QObject::tr("Notes") << QObject::tr("TOTP") << QObject::tr("Icon") + << QObject::tr("Last Modified") << QObject::tr("Created"); + + m_fieldSeparatorList << "," + << ";" + << "-" + << ":" + << "." + << "\t"; m_combos << m_ui->groupCombo << m_ui->titleCombo << m_ui->usernameCombo << m_ui->passwordCombo << m_ui->urlCombo << m_ui->notesCombo << m_ui->totpCombo << m_ui->iconCombo << m_ui->lastModifiedCombo << m_ui->createdCombo; @@ -70,15 +101,12 @@ CsvImportWidget::CsvImportWidget(QWidget* parent) connect(m_ui->comboBoxFieldSeparator, SIGNAL(currentIndexChanged(int)), SLOT(parse())); connect(m_ui->checkBoxBackslash, SIGNAL(toggled(bool)), SLOT(parse())); connect(m_ui->checkBoxFieldNames, SIGNAL(toggled(bool)), SLOT(updatePreview())); - - connect(m_ui->buttonBox, SIGNAL(accepted()), this, SLOT(writeDatabase())); - connect(m_ui->buttonBox, SIGNAL(rejected()), this, SLOT(reject())); } void CsvImportWidget::comboChanged(int index) { // this line is the one that actually updates GUI table - m_parserModel->mapColumns(index, m_combos.indexOf(qobject_cast(sender()))); + m_parserModel->mapColumns(index - 1, m_combos.indexOf(qobject_cast(sender()))); updateTableview(); } @@ -94,68 +122,81 @@ CsvImportWidget::~CsvImportWidget() void CsvImportWidget::configParser() { - m_parserModel->setBackslashSyntax(m_ui->checkBoxBackslash->isChecked()); - m_parserModel->setComment(m_ui->comboBoxComment->currentText().at(0)); - m_parserModel->setTextQualifier(m_ui->comboBoxTextQualifier->currentText().at(0)); - m_parserModel->setCodec(m_ui->comboBoxCodec->currentText()); - m_parserModel->setFieldSeparator(m_fieldSeparatorList.at(m_ui->comboBoxFieldSeparator->currentIndex()).at(0)); + auto parser = m_parserModel->parser(); + parser->setBackslashSyntax(m_ui->checkBoxBackslash->isChecked()); + parser->setComment(m_ui->comboBoxComment->currentText().at(0)); + parser->setTextQualifier(m_ui->comboBoxTextQualifier->currentText().at(0)); + parser->setCodec(m_ui->comboBoxCodec->currentText()); + parser->setFieldSeparator(m_fieldSeparatorList.at(m_ui->comboBoxFieldSeparator->currentIndex()).at(0)); } void CsvImportWidget::updateTableview() { - m_ui->tableViewFields->resizeRowsToContents(); - m_ui->tableViewFields->resizeColumnsToContents(); + if (!m_buildingPreview) { + m_ui->tableViewFields->resizeRowsToContents(); + m_ui->tableViewFields->resizeColumnsToContents(); - for (int c = 0; c < m_ui->tableViewFields->horizontalHeader()->count(); ++c) { - m_ui->tableViewFields->horizontalHeader()->setSectionResizeMode(c, QHeaderView::Stretch); + for (int c = 0; c < m_ui->tableViewFields->horizontalHeader()->count(); ++c) { + m_ui->tableViewFields->horizontalHeader()->setSectionResizeMode(c, QHeaderView::Stretch); + } } } void CsvImportWidget::updatePreview() { - int minSkip = 0; - if (m_ui->checkBoxFieldNames->isChecked()) { - minSkip = 1; - } + m_buildingPreview = true; + + int minSkip = m_ui->checkBoxFieldNames->isChecked() ? 1 : 0; m_ui->labelSizeRowsCols->setText(m_parserModel->getFileInfo()); m_ui->spinBoxSkip->setRange(minSkip, qMax(minSkip, m_parserModel->rowCount() - 1)); m_ui->spinBoxSkip->setValue(minSkip); - QStringList list(tr("Not Present")); - for (int i = 1; i < m_parserModel->getCsvCols(); ++i) { + QStringList csvColumns(tr("Not Present")); + auto parser = m_parserModel->parser(); + for (int i = 0; i < parser->getCsvCols(); ++i) { if (m_ui->checkBoxFieldNames->isChecked()) { - auto columnName = m_parserModel->getCsvTable().at(0).at(i); + auto columnName = parser->getCsvTable().at(0).at(i); if (columnName.isEmpty()) { - list << QString(tr("Column %1").arg(i)); + csvColumns << QString(tr("Column %1").arg(i)); } else { - list << columnName; + csvColumns << columnName; } } else { - list << QString(tr("Column %1").arg(i)); + csvColumns << QString(tr("Column %1").arg(i)); } } - m_comboModel->setStringList(list); + m_comboModel->setStringList(csvColumns); - int j = 1; - for (QComboBox* b : m_combos) { - if (j < m_parserModel->getCsvCols()) { - b->setCurrentIndex(j); - } else { - b->setCurrentIndex(0); + // Try to match named columns to the combo boxes + for (int i = 0; i < m_columnHeader.size(); ++i) { + if (i >= m_combos.size()) { + // This should not happen, it is a programming error otherwise + Q_ASSERT(false); + break; + } + + bool found = false; + for (int j = 0; j < csvColumns.size(); ++j) { + if (m_columnHeader.at(i).compare(csvColumns.at(j), Qt::CaseInsensitive) == 0) { + m_combos.at(i)->setCurrentIndex(j); + found = true; + break; + } + } + // Named column not found, default to "Not Present" + if (!found) { + m_combos.at(i)->setCurrentIndex(0); } - ++j; } + + m_buildingPreview = false; + updateTableview(); } -void CsvImportWidget::load(const QString& filename, Database* const db) +void CsvImportWidget::load(const QString& filename) { - // QApplication::processEvents(); - m_db = db; + m_filename = filename; m_parserModel->setFilename(filename); - m_ui->labelFilename->setText(filename); - Group* group = m_db->rootGroup(); - group->setUuid(QUuid::createUuid()); - group->setNotes(tr("Imported from CSV file").append("\n").append(tr("Original data: ")) + filename); parse(); } @@ -163,42 +204,33 @@ void CsvImportWidget::parse() { configParser(); QApplication::setOverrideCursor(Qt::WaitCursor); - // QApplication::processEvents(); + QApplication::processEvents(); bool good = m_parserModel->parse(); updatePreview(); QApplication::restoreOverrideCursor(); if (!good) { - m_ui->messageWidget->showMessage(tr("Error(s) detected in CSV file!").append("\n").append(formatStatusText()), - MessageWidget::Warning); - } else { - m_ui->messageWidget->setHidden(true); + emit message(tr("Failed to parse CSV file: %1").arg(formatStatusText())); } } -QString CsvImportWidget::formatStatusText() const +QSharedPointer CsvImportWidget::buildDatabase() { - QString text = m_parserModel->getStatus(); - int items = text.count('\n'); - if (items > 2) { - return text.section('\n', 0, 1).append("\n").append(tr("[%n more message(s) skipped]", "", items - 2)); - } - if (items == 1) { - text.append(QString("\n")); - } - return text; -} + auto db = QSharedPointer::create(); + db->rootGroup()->setNotes(tr("Imported from CSV file: %1").arg(m_filename)); -void CsvImportWidget::writeDatabase() -{ - setRootGroup(); for (int r = 0; r < m_parserModel->rowCount(); ++r) { // use validity of second column as a GO/NOGO for all others fields - if (not m_parserModel->data(m_parserModel->index(r, 1)).isValid()) { + if (!m_parserModel->data(m_parserModel->index(r, 1)).isValid()) { continue; } - Entry* entry = new Entry(); + auto group = createGroupStructure(db.data(), m_parserModel->data(m_parserModel->index(r, 0)).toString()); + if (!group) { + continue; + } + + auto entry = new Entry(); entry->setUuid(QUuid::createUuid()); - entry->setGroup(splitGroups(m_parserModel->data(m_parserModel->index(r, 0)).toString())); + entry->setGroup(group); entry->setTitle(m_parserModel->data(m_parserModel->index(r, 1)).toString()); entry->setUsername(m_parserModel->data(m_parserModel->index(r, 2)).toString()); entry->setPassword(m_parserModel->data(m_parserModel->index(r, 3)).toString()); @@ -208,7 +240,7 @@ void CsvImportWidget::writeDatabase() auto otpString = m_parserModel->data(m_parserModel->index(r, 6)); if (otpString.isValid() && !otpString.toString().isEmpty()) { auto totp = Totp::parseSettings(otpString.toString()); - if (totp->key.isEmpty()) { + if (!totp || totp->key.isEmpty()) { // Bare secret, use default TOTP settings totp = Totp::parseSettings({}, otpString.toString()); } @@ -257,99 +289,19 @@ void CsvImportWidget::writeDatabase() } entry->setTimeInfo(timeInfo); } - QBuffer buffer; - buffer.open(QBuffer::ReadWrite); - KeePass2Writer writer; - writer.writeDatabase(&buffer, m_db); - if (writer.hasError()) { - MessageBox::warning(this, - tr("Error"), - tr("CSV import: writer has errors:\n%1").arg(writer.errorString()), - MessageBox::Ok, - MessageBox::Ok); - } - emit editFinished(true); + return db; } -void CsvImportWidget::setRootGroup() +QString CsvImportWidget::formatStatusText() const { - QString groupLabel; - QStringList groupList; - bool is_root = false; - bool is_empty = false; - bool is_label = false; - - for (int r = 0; r < m_parserModel->rowCount(); ++r) { - // use validity of second column as a GO/NOGO for all others fields - if (not m_parserModel->data(m_parserModel->index(r, 1)).isValid()) { - continue; - } - groupLabel = m_parserModel->data(m_parserModel->index(r, 0)).toString(); - // check if group name is either "root", "" (empty) or some other label - groupList = groupLabel.split("/", QString::SkipEmptyParts); - if (groupList.isEmpty()) { - is_empty = true; - } else if (not groupList.first().compare("Root", Qt::CaseSensitive)) { - is_root = true; - } else if (not groupLabel.compare("")) { - is_empty = true; - } else { - is_label = true; - } - - groupList.clear(); + QString text = m_parserModel->parser()->getStatus(); + int items = text.count('\n'); + if (items > 2) { + return text.section('\n', 0, 1).append("\n").append(tr("[%n more message(s) skipped]", "", items - 2)); } - - if ((is_empty and is_root) or (is_label and not is_empty and is_root)) { - m_db->rootGroup()->setName("CSV IMPORTED"); - } else { - m_db->rootGroup()->setName("Root"); + if (items == 1) { + text.append(QString("\n")); } -} - -Group* CsvImportWidget::splitGroups(const QString& label) -{ - // extract group names from nested path provided in "label" - Group* current = m_db->rootGroup(); - if (label.isEmpty()) { - return current; - } - - QStringList groupList = label.split("/", QString::SkipEmptyParts); - // avoid the creation of a subgroup with the same name as Root - if (m_db->rootGroup()->name() == "Root" && groupList.first() == "Root") { - groupList.removeFirst(); - } - - for (const QString& groupName : groupList) { - Group* children = hasChildren(current, groupName); - if (children == nullptr) { - Group* brandNew = new Group(); - brandNew->setParent(current); - brandNew->setName(groupName); - brandNew->setUuid(QUuid::createUuid()); - current = brandNew; - } else { - Q_ASSERT(children != nullptr); - current = children; - } - } - return current; -} - -Group* CsvImportWidget::hasChildren(Group* current, const QString& groupName) -{ - // returns the group whose name is "groupName" and is child of "current" group - for (Group* group : current->children()) { - if (group->name() == groupName) { - return group; - } - } - return nullptr; -} - -void CsvImportWidget::reject() -{ - emit editFinished(false); + return text; } diff --git a/src/gui/csvImport/CsvImportWidget.h b/src/gui/csvImport/CsvImportWidget.h index 1711e32a6..d5f29c43a 100644 --- a/src/gui/csvImport/CsvImportWidget.h +++ b/src/gui/csvImport/CsvImportWidget.h @@ -1,4 +1,4 @@ -/* +/* * Copyright (C) 2016 Enrico Mariotti * Copyright (C) 2017 KeePassXC Team * @@ -19,12 +19,13 @@ #ifndef KEEPASSX_CSVIMPORTWIDGET_H #define KEEPASSX_CSVIMPORTWIDGET_H -#include +#include +#include -#include "core/Metadata.h" -#include "gui/csvImport/CsvParserModel.h" - -class QStringListModel; +class CsvParserModel; +class Database; +class Group; +class QComboBox; namespace Ui { @@ -37,36 +38,36 @@ class CsvImportWidget : public QWidget public: explicit CsvImportWidget(QWidget* parent = nullptr); - ~CsvImportWidget(); - void load(const QString& filename, Database* const db); + ~CsvImportWidget() override; + + void load(const QString& filename); + QSharedPointer buildDatabase(); signals: - void editFinished(bool accepted); + void message(QString msg); private slots: void parse(); void comboChanged(int index); void skippedChanged(int rows); - void writeDatabase(); void updatePreview(); - void setRootGroup(); - void reject(); private: - Q_DISABLE_COPY(CsvImportWidget) - const QScopedPointer m_ui; - CsvParserModel* const m_parserModel; - QStringListModel* const m_comboModel; - QList m_combos; - Database* m_db; - - const QStringList m_columnHeader; - QStringList m_fieldSeparatorList; void configParser(); void updateTableview(); - Group* splitGroups(const QString& label); - Group* hasChildren(Group* current, const QString& groupName); QString formatStatusText() const; + + QScopedPointer m_ui; + + CsvParserModel* m_parserModel; + QStringListModel* m_comboModel; + QList m_combos; + QStringList m_columnHeader; + QStringList m_fieldSeparatorList; + QString m_filename; + bool m_buildingPreview = false; + + Q_DISABLE_COPY(CsvImportWidget) }; #endif // KEEPASSX_CSVIMPORTWIDGET_H diff --git a/src/gui/csvImport/CsvImportWidget.ui b/src/gui/csvImport/CsvImportWidget.ui index 7a5627d98..cd7af9816 100644 --- a/src/gui/csvImport/CsvImportWidget.ui +++ b/src/gui/csvImport/CsvImportWidget.ui @@ -6,763 +6,677 @@ 0 0 - 788 - 530 + 820 + 523 + + 0 + + + 0 + + + 0 + + + 0 + - - - - - - Qt::ScrollBarAlwaysOff - - - true - - - - - 0 - 0 - 753 - 615 - - - - - - - - 11 - 75 - true - - - - Import CSV fields - - - - - - - - - filename - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - size, rows, columns - - - - - - - - - - - - 75 - true - - - - Column Association - - - - - - - - - - - - 50 - false - - - - Password - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 2 - - - - - - - - 50 - false - - - - Username - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 2 - - - - - - - - - - - - - - 50 - false - - - - Title - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 2 - - - - - - - - - - - 50 - false - - - - Group - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 2 - - - - - - - - 50 - false - - - - URL - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 2 - - - - - - - - - - - 50 - false - - - - Notes - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 2 - - - - - - - - - - - 50 - false - - - - TOTP - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 2 - - - - - - - - - - - - - - 50 - false - - - - Created - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 2 - - - - - - - - 50 - false - - - - Last Modified - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 2 - - - - - - - - - - - 50 - false - - - - Icon - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 2 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - 75 - true - - - - Encoding - - - - - - - 50 - false - - - - Codec - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 50 - false - - - - Codec - - - false - - - UTF-8 - - - - UTF-8 - - - - - Windows-1252 - - - - - UTF-16 - - - - - UTF-16LE - - - - - - - - - 50 - false - - - - Text is qualified by - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 50 - false - - - - Text qualification - - - false - - - " - - - - " - - - - - ' - - - - - : - - - - - . - - - - - | - - - - - - - - - 50 - false - - - - Fields are separated by - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 50 - false - - - - Field separation - - - false - - - , - - - - , - - - - - ; - - - - - - - - - - - : - - - - - . - - - - - TAB (\t) - - - - - - - - - 50 - false - - - - Comments start with - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 50 - false - - - - Comments start with - - - false - - - # - - - - # - - - - - ; - - - - - : - - - - - @ - - - - - - - - - 50 - false - - - - Header lines skipped - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - 50 - false - - - - Number of header lines to discard - - - - - - - Qt::Horizontal - - - - 122 - 20 - - - - - - - - - - - 50 - false - - - - First line has field names - - - - - - - - 50 - false - - - - Consider '\' an escape character - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - 75 - true - - - - Preview - - - false - - + + + + + + 75 + true + + + + Column Association + + + + + + + 50 + false + + + + Icon + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 2 + + + + + + + + 50 + false + + + + TOTP + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 2 + + + + + + + + + + + 50 + false + + + + Notes + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 2 + + + + + + + + 50 + false + + + + Title + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 2 + + + + + + + + + + + + + + + + + + + + 50 + false + + + + First line has field names + + + true + + + + + + + + + + + + + + 50 + false + + + + Password + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 2 + + + + + + + + 50 + false + + + + Group + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 2 + + + + + + + + + + + 50 + false + + + + Username + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 2 + + + + + + + + 50 + false + + + + URL + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 2 + + + + + + + + + + + 50 + false + + + + Created + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 2 + + + + + + + + + + + 50 + false + + + + Last Modified + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 2 + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 6 + 20 + + + + + + + + + + + + 75 + true + + + + Encoding + + + + + + + 50 + false + + + + Codec + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 50 + false + + + + Codec + + + false + + + UTF-8 + - - - - 0 - 0 - - - - - 0 - 300 - - - - - 50 - false - - - - CSV import preview - - - false - - - true - - + + UTF-8 + - - - - - - + + + Windows-1252 + + + + + UTF-16 + + + + + UTF-16LE + + + + + + + + + 50 + false + + + + Text is qualified by + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 50 + false + + + + Text qualification + + + false + + + " + + + + " + + + + + ' + + + + + : + + + + + . + + + + + | + + + + + + + + + 50 + false + + + + Fields are separated by + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 50 + false + + + + Field separation + + + false + + + , + + + + , + + + + + ; + + + + + - + + + + + : + + + + + . + + + + + TAB (\t) + + + + + + + + + 50 + false + + + + Comments start with + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 50 + false + + + + Comments start with + + + false + + + # + + + + # + + + + + ; + + + + + : + + + + + @ + + + + + + + + + 50 + false + + + + Header lines skipped + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 50 + false + + + + Number of header lines to discard + + + + + + + + 50 + false + + + + Consider '\' an escape character + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + 75 + true + - + + Preview + + false + + + 3 + + + 0 + + + + + + 50 + false + + + + size, rows, columns + + + + + + + + 0 + 0 + + + + + 800 + 300 + + + + + 50 + false + + + + CSV import preview + + + false + + + true + + + + - - - MessageWidget - QWidget -
    gui/MessageWidget.h
    - 1 -
    -
    - scrollArea - groupCombo - titleCombo - usernameCombo - passwordCombo - urlCombo - notesCombo - totpCombo - iconCombo - lastModifiedCombo - createdCombo comboBoxCodec comboBoxTextQualifier comboBoxFieldSeparator comboBoxComment - spinBoxSkip - checkBoxFieldNames - checkBoxBackslash tableViewFields diff --git a/src/gui/csvImport/CsvImportWizard.cpp b/src/gui/csvImport/CsvImportWizard.cpp deleted file mode 100644 index 4595c06d9..000000000 --- a/src/gui/csvImport/CsvImportWizard.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (C) 2016 Enrico Mariotti - * Copyright (C) 2017 KeePassXC Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 or (at your option) - * version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "CsvImportWizard.h" - -#include - -CsvImportWizard::CsvImportWizard(QWidget* parent) - : DialogyWidget(parent) -{ - m_layout = new QGridLayout(this); - m_layout->addWidget(m_parse = new CsvImportWidget(this), 0, 0); - - connect(m_parse, SIGNAL(editFinished(bool)), this, SLOT(parseFinished(bool))); -} - -CsvImportWizard::~CsvImportWizard() -{ -} - -void CsvImportWizard::load(const QString& filename, Database* database) -{ - m_db = database; - m_parse->load(filename, database); -} - -void CsvImportWizard::parseFinished(bool accepted) -{ - emit importFinished(accepted); -} diff --git a/src/gui/csvImport/CsvImportWizard.h b/src/gui/csvImport/CsvImportWizard.h deleted file mode 100644 index 084d8794d..000000000 --- a/src/gui/csvImport/CsvImportWizard.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) 2016 Enrico Mariotti - * Copyright (C) 2017 KeePassXC Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 or (at your option) - * version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef KEEPASSX_CSVIMPORTWIZARD_H -#define KEEPASSX_CSVIMPORTWIZARD_H - -#include "CsvImportWidget.h" - -#include "gui/DialogyWidget.h" - -class QGridLayout; - -class CsvImportWidget; - -class CsvImportWizard : public DialogyWidget -{ - Q_OBJECT - -public: - explicit CsvImportWizard(QWidget* parent = nullptr); - ~CsvImportWizard() override; - void load(const QString& filename, Database* database); - -signals: - void importFinished(bool accepted); - -private slots: - void parseFinished(bool accepted); - -private: - QPointer m_db; - CsvImportWidget* m_parse; - QGridLayout* m_layout; -}; - -#endif // KEEPASSX_CSVIMPORTWIZARD_H diff --git a/src/gui/csvImport/CsvParserModel.cpp b/src/gui/csvImport/CsvParserModel.cpp index 77abb5931..0ae350817 100644 --- a/src/gui/csvImport/CsvParserModel.cpp +++ b/src/gui/csvImport/CsvParserModel.cpp @@ -18,10 +18,14 @@ #include "CsvParserModel.h" +#include "core/Tools.h" +#include "format/CsvParser.h" + #include CsvParserModel::CsvParserModel(QObject* parent) : QAbstractTableModel(parent) + , m_parser(new CsvParser()) , m_skipped(0) { } @@ -30,6 +34,11 @@ CsvParserModel::~CsvParserModel() { } +CsvParser* CsvParserModel::parser() +{ + return m_parser; +} + void CsvParserModel::setFilename(const QString& filename) { m_filename = filename; @@ -37,11 +46,10 @@ void CsvParserModel::setFilename(const QString& filename) QString CsvParserModel::getFileInfo() { - QString a(tr("%1, %2, %3", "file info: bytes, rows, columns") - .arg(tr("%n byte(s)", nullptr, getFileSize()), - tr("%n row(s)", nullptr, getCsvRows()), - tr("%n column(s)", nullptr, qMax(0, getCsvCols() - 1)))); - return a; + return QString("%1, %2, %3") + .arg(Tools::humanReadableFileSize(m_parser->getFileSize()), + tr("%n row(s)", "CSV row count", m_parser->getCsvRows()), + tr("%n column(s)", "CSV column count", qMax(0, m_parser->getCsvCols() - 1))); } bool CsvParserModel::parse() @@ -49,37 +57,28 @@ bool CsvParserModel::parse() bool r; beginResetModel(); m_columnMap.clear(); - if (CsvParser::isFileLoaded()) { - r = CsvParser::reparse(); + if (m_parser->isFileLoaded()) { + r = m_parser->reparse(); } else { QFile csv(m_filename); - r = CsvParser::parse(&csv); + r = m_parser->parse(&csv); } for (int i = 0; i < columnCount(); ++i) { m_columnMap.insert(i, 0); } - addEmptyColumn(); endResetModel(); return r; } -void CsvParserModel::addEmptyColumn() -{ - for (int i = 0; i < m_table.size(); ++i) { - CsvRow r = m_table.at(i); - r.prepend(QString("")); - m_table.replace(i, r); - } -} - void CsvParserModel::mapColumns(int csvColumn, int dbColumn) { - if ((csvColumn < 0) || (dbColumn < 0)) { + if (dbColumn < 0 || dbColumn >= m_columnMap.size()) { return; } beginResetModel(); - if (csvColumn >= getCsvCols()) { - m_columnMap[dbColumn] = 0; // map to the empty column + if (csvColumn < 0 || csvColumn >= m_parser->getCsvCols()) { + // This indicates a blank cell + m_columnMap[dbColumn] = -1; } else { m_columnMap[dbColumn] = csvColumn; } @@ -105,7 +104,7 @@ int CsvParserModel::rowCount(const QModelIndex& parent) const if (parent.isValid()) { return 0; } - return getCsvRows(); + return m_parser->getCsvRows(); } int CsvParserModel::columnCount(const QModelIndex& parent) const @@ -118,11 +117,14 @@ int CsvParserModel::columnCount(const QModelIndex& parent) const QVariant CsvParserModel::data(const QModelIndex& index, int role) const { - if ((index.column() >= m_columnHeader.size()) || (index.row() + m_skipped >= rowCount()) || !index.isValid()) { - return QVariant(); + if (index.column() >= m_columnHeader.size() || index.row() + m_skipped >= rowCount() || !index.isValid()) { + return {}; } if (role == Qt::DisplayRole) { - return m_table.at(index.row() + m_skipped).at(m_columnMap[index.column()]); + auto column = m_columnMap[index.column()]; + if (column >= 0) { + return m_parser->getCsvTable().at(index.row() + m_skipped).at(column); + } } return QVariant(); } @@ -131,15 +133,13 @@ QVariant CsvParserModel::headerData(int section, Qt::Orientation orientation, in { if (role == Qt::DisplayRole) { if (orientation == Qt::Horizontal) { - if ((section < 0) || (section >= m_columnHeader.size())) { - return QVariant(); + if (section >= 0 && section < m_columnHeader.size()) { + return m_columnHeader.at(section); } - return m_columnHeader.at(section); } else if (orientation == Qt::Vertical) { - if (section + m_skipped >= rowCount()) { - return QVariant(); + if (section + m_skipped < rowCount()) { + return QString::number(section + 1); } - return QString::number(section + 1); } } return QVariant(); diff --git a/src/gui/csvImport/CsvParserModel.h b/src/gui/csvImport/CsvParserModel.h index 5e979421c..2717b826d 100644 --- a/src/gui/csvImport/CsvParserModel.h +++ b/src/gui/csvImport/CsvParserModel.h @@ -21,20 +21,22 @@ #include -#include "core/Group.h" -#include "format/CsvParser.h" +class CsvParser; -class CsvParserModel : public QAbstractTableModel, public CsvParser +class CsvParserModel : public QAbstractTableModel { Q_OBJECT public: explicit CsvParserModel(QObject* parent = nullptr); - ~CsvParserModel(); + ~CsvParserModel() override; + void setFilename(const QString& filename); QString getFileInfo(); bool parse(); + CsvParser* parser(); + void setHeaderLabels(const QStringList& labels); void mapColumns(int csvColumn, int dbColumn); @@ -47,12 +49,12 @@ public slots: void setSkippedRows(int skipped); private: + CsvParser* m_parser; int m_skipped; QString m_filename; QStringList m_columnHeader; // first column of model must be empty (aka combobox row "Not present in CSV file") void addEmptyColumn(); - // mapping CSV columns to keepassx columns QMap m_columnMap; }; diff --git a/src/gui/databasekey/PasswordEditWidget.cpp b/src/gui/databasekey/PasswordEditWidget.cpp index 5f12f7d19..5ed6b6328 100644 --- a/src/gui/databasekey/PasswordEditWidget.cpp +++ b/src/gui/databasekey/PasswordEditWidget.cpp @@ -78,6 +78,9 @@ void PasswordEditWidget::initComponentEditWidget(QWidget* widget) Q_UNUSED(widget); Q_ASSERT(m_compEditWidget); m_compUi->enterPasswordEdit->setFocus(); + + m_compUi->enterPasswordEdit->setQualityVisible(true); + m_compUi->repeatPasswordEdit->setQualityVisible(false); } void PasswordEditWidget::initComponent() diff --git a/src/gui/databasekey/PasswordEditWidget.ui b/src/gui/databasekey/PasswordEditWidget.ui index d8382ed94..e191968f8 100644 --- a/src/gui/databasekey/PasswordEditWidget.ui +++ b/src/gui/databasekey/PasswordEditWidget.ui @@ -31,9 +31,9 @@ - + - + 0 0 @@ -44,12 +44,12 @@ 0 + + Qt::StrongFocus + Password field - - QLineEdit::Password - @@ -60,9 +60,9 @@ - + - + 0 0 @@ -73,21 +73,21 @@ 0 + + Qt::StrongFocus + Repeat password field - - QLineEdit::Password - - PasswordEdit - QLineEdit -
    gui/PasswordEdit.h
    + PasswordWidget + QWidget +
    gui/PasswordWidget.h
    1
    diff --git a/src/gui/databasekey/YubiKeyEditWidget.cpp b/src/gui/databasekey/YubiKeyEditWidget.cpp index 2e6cf4ff3..857531f73 100644 --- a/src/gui/databasekey/YubiKeyEditWidget.cpp +++ b/src/gui/databasekey/YubiKeyEditWidget.cpp @@ -16,21 +16,30 @@ */ #include "YubiKeyEditWidget.h" + #include "ui_KeyComponentWidget.h" #include "ui_YubiKeyEditWidget.h" -#include "config-keepassx.h" #include "core/AsyncTask.h" +#include "gui/Icons.h" #include "keys/ChallengeResponseKey.h" #include "keys/CompositeKey.h" +#ifdef WITH_XC_YUBIKEY +#include "keys/drivers/YubiKeyInterfaceUSB.h" +#endif YubiKeyEditWidget::YubiKeyEditWidget(QWidget* parent) : KeyComponentWidget(parent) , m_compUi(new Ui::YubiKeyEditWidget()) +#ifdef WITH_XC_YUBIKEY + , m_deviceListener(new DeviceListener(this)) +#endif { initComponent(); - +#ifdef WITH_XC_YUBIKEY connect(YubiKey::instance(), SIGNAL(detectComplete(bool)), SLOT(hardwareKeyResponse(bool)), Qt::QueuedConnection); + connect(m_deviceListener, &DeviceListener::devicePlugged, this, [&](bool, void*, void*) { pollYubikey(); }); +#endif } YubiKeyEditWidget::~YubiKeyEditWidget() @@ -76,19 +85,48 @@ QWidget* YubiKeyEditWidget::componentEditWidget() m_compUi->yubikeyProgress->setSizePolicy(sp); m_compUi->yubikeyProgress->setVisible(false); -#ifdef WITH_XC_YUBIKEY - connect(m_compUi->buttonRedetectYubikey, SIGNAL(clicked()), SLOT(pollYubikey())); - pollYubikey(); -#endif - return m_compEditWidget; } +void YubiKeyEditWidget::showEvent(QShowEvent* event) +{ + KeyComponentWidget::showEvent(event); + +#ifdef WITH_XC_YUBIKEY +#ifdef Q_OS_WIN + m_deviceListener->registerHotplugCallback(true, + true, + YubiKeyInterfaceUSB::YUBICO_USB_VID, + DeviceListener::MATCH_ANY, + &DeviceListenerWin::DEV_CLS_KEYBOARD); + m_deviceListener->registerHotplugCallback(true, + true, + YubiKeyInterfaceUSB::ONLYKEY_USB_VID, + DeviceListener::MATCH_ANY, + &DeviceListenerWin::DEV_CLS_KEYBOARD); +#else + m_deviceListener->registerHotplugCallback(true, true, YubiKeyInterfaceUSB::YUBICO_USB_VID); + m_deviceListener->registerHotplugCallback(true, true, YubiKeyInterfaceUSB::ONLYKEY_USB_VID); +#endif +#endif +} + +void YubiKeyEditWidget::hideEvent(QHideEvent* event) +{ + KeyComponentWidget::hideEvent(event); +#ifdef WITH_XC_YUBIKEY + m_deviceListener->deregisterAllHotplugCallbacks(); +#endif +} + void YubiKeyEditWidget::initComponentEditWidget(QWidget* widget) { Q_UNUSED(widget); Q_ASSERT(m_compEditWidget); m_compUi->comboChallengeResponse->setFocus(); + m_compUi->refreshHardwareKeys->setIcon(icons()->icon("yubikey-refresh", true)); + connect(m_compUi->refreshHardwareKeys, &QPushButton::clicked, this, &YubiKeyEditWidget::pollYubikey); + pollYubikey(); } void YubiKeyEditWidget::initComponent() @@ -118,9 +156,9 @@ void YubiKeyEditWidget::pollYubikey() m_isDetected = false; m_compUi->comboChallengeResponse->clear(); m_compUi->comboChallengeResponse->addItem(tr("Detecting hardware keys…")); - m_compUi->buttonRedetectYubikey->setEnabled(false); m_compUi->comboChallengeResponse->setEnabled(false); m_compUi->yubikeyProgress->setVisible(true); + m_compUi->refreshHardwareKeys->setEnabled(false); YubiKey::instance()->findValidKeysAsync(); #endif @@ -133,20 +171,22 @@ void YubiKeyEditWidget::hardwareKeyResponse(bool found) } m_compUi->comboChallengeResponse->clear(); - m_compUi->buttonRedetectYubikey->setEnabled(true); - m_compUi->yubikeyProgress->setVisible(false); + m_compUi->refreshHardwareKeys->setEnabled(true); if (!found) { + m_compUi->yubikeyProgress->setVisible(false); m_compUi->comboChallengeResponse->addItem(tr("No hardware keys detected")); m_isDetected = false; return; } - for (auto& slot : YubiKey::instance()->foundKeys()) { + const auto foundKeys = YubiKey::instance()->foundKeys(); + for (auto i = foundKeys.cbegin(); i != foundKeys.cend(); ++i) { // add detected YubiKey to combo box and encode blocking mode in LSB, slot number in second LSB - m_compUi->comboChallengeResponse->addItem(YubiKey::instance()->getDisplayName(slot), QVariant::fromValue(slot)); + m_compUi->comboChallengeResponse->addItem(i.value(), QVariant::fromValue(i.key())); } m_isDetected = true; + m_compUi->yubikeyProgress->setVisible(false); m_compUi->comboChallengeResponse->setEnabled(true); } diff --git a/src/gui/databasekey/YubiKeyEditWidget.h b/src/gui/databasekey/YubiKeyEditWidget.h index e21b632a6..fc63f1946 100644 --- a/src/gui/databasekey/YubiKeyEditWidget.h +++ b/src/gui/databasekey/YubiKeyEditWidget.h @@ -19,6 +19,10 @@ #define KEEPASSXC_YUBIKEYEDITWIDGET_H #include "KeyComponentWidget.h" +#include "config-keepassx.h" +#ifdef WITH_XC_YUBIKEY +#include "gui/osutils/DeviceListener.h" +#endif namespace Ui { @@ -43,6 +47,8 @@ protected: QWidget* componentEditWidget() override; void initComponentEditWidget(QWidget* widget) override; void initComponent() override; + void showEvent(QShowEvent* event) override; + void hideEvent(QHideEvent* event) override; private slots: void hardwareKeyResponse(bool found); @@ -51,6 +57,9 @@ private slots: private: const QScopedPointer m_compUi; QPointer m_compEditWidget; +#ifdef WITH_XC_YUBIKEY + QPointer m_deviceListener; +#endif bool m_isDetected = false; }; diff --git a/src/gui/databasekey/YubiKeyEditWidget.ui b/src/gui/databasekey/YubiKeyEditWidget.ui index fa150084b..02881817f 100644 --- a/src/gui/databasekey/YubiKeyEditWidget.ui +++ b/src/gui/databasekey/YubiKeyEditWidget.ui @@ -24,51 +24,84 @@ 0 - - - 0 + + + 6 - - - - Refresh hardware tokens - - - Refresh - - - - - - - - 0 - 0 - - - - Hardware key slot selection - - - - - - - - 16777215 - 2 - - - + + + 0 - - -1 + + + + + 0 + 0 + + + + Hardware key slot selection + + + + + + + + 16777215 + 2 + + + + 0 + + + -1 + + + false + + + + + + + + + 0 - - false - - + + + + Refresh hardware keys + + + Refresh hardware keys + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 0 + 2 + + + + + @@ -87,10 +120,6 @@ - - comboChallengeResponse - buttonRedetectYubikey - diff --git a/src/gui/dbsettings/DatabaseSettingsWidgetBrowser.cpp b/src/gui/dbsettings/DatabaseSettingsWidgetBrowser.cpp index aa91fa451..aaa2aff6e 100644 --- a/src/gui/dbsettings/DatabaseSettingsWidgetBrowser.cpp +++ b/src/gui/dbsettings/DatabaseSettingsWidgetBrowser.cpp @@ -178,10 +178,8 @@ void DatabaseSettingsWidgetBrowser::removeSharedEncryptionKeys() } if (keysToRemove.isEmpty()) { - MessageBox::information(this, - tr("KeePassXC: No keys found"), - tr("No shared encryption keys found in KeePassXC settings."), - MessageBox::Ok); + MessageBox::information( + this, tr("No keys found"), tr("No shared encryption keys found in KeePassXC settings."), MessageBox::Ok); return; } @@ -191,7 +189,7 @@ void DatabaseSettingsWidgetBrowser::removeSharedEncryptionKeys() const int count = keysToRemove.count(); MessageBox::information(this, - tr("KeePassXC: Removed keys from database"), + tr("Removed keys from database"), tr("Successfully removed %n encryption key(s) from KeePassXC settings.", "", count), MessageBox::Ok); } @@ -231,12 +229,12 @@ void DatabaseSettingsWidgetBrowser::removeStoredPermissions() if (counter > 0) { MessageBox::information(this, - tr("KeePassXC: Removed permissions"), + tr("Removed permissions"), tr("Successfully removed permissions from %n entry(s).", "", counter), MessageBox::Ok); } else { MessageBox::information(this, - tr("KeePassXC: No entry with permissions found!"), + tr("No entry with permissions found!"), tr("The active database does not contain an entry with permissions."), MessageBox::Ok); } diff --git a/src/gui/dbsettings/DatabaseSettingsWidgetBrowser.ui b/src/gui/dbsettings/DatabaseSettingsWidgetBrowser.ui index 7d6dc00d2..f33421075 100644 --- a/src/gui/dbsettings/DatabaseSettingsWidgetBrowser.ui +++ b/src/gui/dbsettings/DatabaseSettingsWidgetBrowser.ui @@ -23,6 +23,9 @@ + + 20 + 0 @@ -88,6 +91,9 @@ 0 + + Convert legacy KeePassHTTP attributes to KeePassXC-Browser compatible custom data + Disconnect all browsers diff --git a/src/gui/dbsettings/DatabaseSettingsWidgetDatabaseKey.cpp b/src/gui/dbsettings/DatabaseSettingsWidgetDatabaseKey.cpp index 2dae5cbb5..50e757bc4 100644 --- a/src/gui/dbsettings/DatabaseSettingsWidgetDatabaseKey.cpp +++ b/src/gui/dbsettings/DatabaseSettingsWidgetDatabaseKey.cpp @@ -48,6 +48,7 @@ DatabaseSettingsWidgetDatabaseKey::DatabaseSettingsWidgetDatabaseKey(QWidget* pa { auto* vbox = new QVBoxLayout(this); vbox->setSizeConstraint(QLayout::SetMinimumSize); + vbox->setSpacing(20); // primary password option vbox->addWidget(m_passwordEditWidget); @@ -59,6 +60,7 @@ DatabaseSettingsWidgetDatabaseKey::DatabaseSettingsWidgetDatabaseKey(QWidget* pa vbox->setSizeConstraint(QLayout::SetMinimumSize); m_additionalKeyOptions->setLayout(new QVBoxLayout()); m_additionalKeyOptions->layout()->setMargin(0); + m_additionalKeyOptions->layout()->setSpacing(20); m_additionalKeyOptions->layout()->addWidget(m_keyFileEditWidget); #ifdef WITH_XC_YUBIKEY m_additionalKeyOptions->layout()->addWidget(m_yubiKeyEditWidget); diff --git a/src/gui/dbsettings/DatabaseSettingsWidgetEncryption.cpp b/src/gui/dbsettings/DatabaseSettingsWidgetEncryption.cpp index be13cd188..76f86fcae 100644 --- a/src/gui/dbsettings/DatabaseSettingsWidgetEncryption.cpp +++ b/src/gui/dbsettings/DatabaseSettingsWidgetEncryption.cpp @@ -143,7 +143,7 @@ void DatabaseSettingsWidgetEncryption::setupAlgorithmComboBox() { m_ui->algorithmComboBox->clear(); for (auto& cipher : asConst(KeePass2::CIPHERS)) { - m_ui->algorithmComboBox->addItem(cipher.second.toUtf8(), cipher.first.toByteArray()); + m_ui->algorithmComboBox->addItem(KeePass2::cipherToString(cipher), cipher.toByteArray()); } int cipherIndex = m_ui->algorithmComboBox->findData(m_db->cipher().toByteArray()); if (cipherIndex > -1) { @@ -157,8 +157,8 @@ void DatabaseSettingsWidgetEncryption::setupKdfComboBox(bool enableKdbx3) bool block = m_ui->kdfComboBox->blockSignals(true); m_ui->kdfComboBox->clear(); for (auto& kdf : asConst(KeePass2::KDFS)) { - if (kdf.first != KeePass2::KDF_AES_KDBX3 or enableKdbx3) { - m_ui->kdfComboBox->addItem(kdf.second.toUtf8(), kdf.first.toByteArray()); + if (kdf != KeePass2::KDF_AES_KDBX3 or enableKdbx3) { + m_ui->kdfComboBox->addItem(KeePass2::kdfToString(kdf), kdf.toByteArray()); } } m_ui->kdfComboBox->blockSignals(block); diff --git a/src/gui/dbsettings/DatabaseSettingsWidgetGeneral.cpp b/src/gui/dbsettings/DatabaseSettingsWidgetGeneral.cpp index 6bc21aec5..43b0a72af 100644 --- a/src/gui/dbsettings/DatabaseSettingsWidgetGeneral.cpp +++ b/src/gui/dbsettings/DatabaseSettingsWidgetGeneral.cpp @@ -52,14 +52,16 @@ void DatabaseSettingsWidgetGeneral::initialize() m_ui->historyMaxItemsCheckBox->setChecked(true); } else { m_ui->historyMaxItemsSpinBox->setValue(Metadata::DefaultHistoryMaxItems); + m_ui->historyMaxItemsSpinBox->setEnabled(false); m_ui->historyMaxItemsCheckBox->setChecked(false); } - int historyMaxSizeMiB = qRound(meta->historyMaxSize() / qreal(1048576)); + int historyMaxSizeMiB = qRound(meta->historyMaxSize() / qreal(1024 * 1024)); if (historyMaxSizeMiB > 0) { m_ui->historyMaxSizeSpinBox->setValue(historyMaxSizeMiB); m_ui->historyMaxSizeCheckBox->setChecked(true); } else { - m_ui->historyMaxSizeSpinBox->setValue(Metadata::DefaultHistoryMaxSize); + m_ui->historyMaxSizeSpinBox->setValue(qRound(Metadata::DefaultHistoryMaxSize / qreal(1024 * 1024))); + m_ui->historyMaxSizeSpinBox->setEnabled(false); m_ui->historyMaxSizeCheckBox->setChecked(false); } } diff --git a/src/gui/dbsettings/DatabaseSettingsWidgetGeneral.ui b/src/gui/dbsettings/DatabaseSettingsWidgetGeneral.ui index 34185ad23..ab6d88c72 100644 --- a/src/gui/dbsettings/DatabaseSettingsWidgetGeneral.ui +++ b/src/gui/dbsettings/DatabaseSettingsWidgetGeneral.ui @@ -23,6 +23,9 @@ + + 20 + 0 @@ -100,20 +103,26 @@ - Maximum number of history items per entry + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that only the specified amount +of entries remain at most. - Max. history items: + Limit the amount of history items per entry to: - Maximum size of history per entry + When saving this setting or editing an entry +the oldest history items of an entry will be +removed such that the remaining history items +add up to the specified amount at most. - Max. history size: + Limit the total size of history items per entry to: @@ -151,6 +160,12 @@ + + Move entries to a recycle bin group +instead of deleting them from the database. +Entries deleted from the recycle bin are +removed from the database. + Use recycle bin diff --git a/src/gui/dbsettings/DatabaseSettingsWidgetMaintenance.ui b/src/gui/dbsettings/DatabaseSettingsWidgetMaintenance.ui index e1d06f6f5..d5824e67b 100644 --- a/src/gui/dbsettings/DatabaseSettingsWidgetMaintenance.ui +++ b/src/gui/dbsettings/DatabaseSettingsWidgetMaintenance.ui @@ -23,6 +23,9 @@ + + 20 + 0 diff --git a/src/gui/entry/EditEntryWidget.cpp b/src/gui/entry/EditEntryWidget.cpp index e2a4f426c..b84fa2488 100644 --- a/src/gui/entry/EditEntryWidget.cpp +++ b/src/gui/entry/EditEntryWidget.cpp @@ -1,6 +1,6 @@ /* + * Copyright (C) 2023 KeePassXC Team * Copyright (C) 2010 Felix Geyer - * Copyright (C) 2021 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -114,6 +114,7 @@ EditEntryWidget::EditEntryWidget(QWidget* parent) m_entryModifiedTimer.setSingleShot(true); m_entryModifiedTimer.setInterval(0); connect(&m_entryModifiedTimer, &QTimer::timeout, this, [this] { + // TODO: Upon refactor of this widget, this needs to merge unsaved changes in the UI if (isVisible() && m_entry) { setForms(m_entry); } @@ -131,6 +132,8 @@ EditEntryWidget::EditEntryWidget(QWidget* parent) connect(m_iconsWidget, SIGNAL(messageEditEntryDismiss()), SLOT(hideMessage())); m_editWidgetProperties->setCustomData(m_customData.data()); + + m_mainUi->passwordEdit->setQualityVisible(true); } EditEntryWidget::~EditEntryWidget() @@ -159,6 +162,9 @@ void EditEntryWidget::setupMain() connect(m_mainUi->fetchFaviconButton, SIGNAL(clicked()), m_iconsWidget, SLOT(downloadFavicon())); connect(m_mainUi->urlEdit, SIGNAL(textChanged(QString)), m_iconsWidget, SLOT(setUrl(QString))); m_mainUi->urlEdit->enableVerifyMode(); +#endif +#ifdef WITH_XC_BROWSER + connect(m_mainUi->urlEdit, SIGNAL(textChanged(QString)), this, SLOT(entryURLEdited(const QString&))); #endif connect(m_mainUi->expireCheck, &QCheckBox::toggled, [&](bool enabled) { m_mainUi->expireDatePicker->setEnabled(enabled); @@ -167,7 +173,7 @@ void EditEntryWidget::setupMain() } }); - connect(m_mainUi->notesEnabled, SIGNAL(toggled(bool)), this, SLOT(toggleHideNotes(bool))); + connect(m_mainUi->revealNotesButton, &QToolButton::clicked, this, &EditEntryWidget::toggleHideNotes); m_mainUi->expirePresets->setMenu(createPresetsMenu()); connect(m_mainUi->expirePresets->menu(), SIGNAL(triggered(QAction*)), this, SLOT(useExpiryPreset(QAction*))); @@ -232,8 +238,7 @@ void EditEntryWidget::setupAutoType() // clang-format off connect(m_autoTypeUi->enableButton, SIGNAL(toggled(bool)), SLOT(updateAutoTypeEnabled())); - connect(m_autoTypeUi->customSequenceButton, SIGNAL(toggled(bool)), - m_autoTypeUi->sequenceEdit, SLOT(setEnabled(bool))); + connect(m_autoTypeUi->customSequenceButton, &QRadioButton::toggled, this, &EditEntryWidget::updateAutoTypeEnabled); connect(m_autoTypeUi->openHelpButton, SIGNAL(clicked()), SLOT(openAutotypeHelp())); connect(m_autoTypeUi->customWindowSequenceButton, SIGNAL(toggled(bool)), m_autoTypeUi->windowSequenceEdit, SLOT(setEnabled(bool))); @@ -326,17 +331,18 @@ void EditEntryWidget::insertURL() { Q_ASSERT(!m_history); - QString name("KP2A_URL"); + QString name(EntryAttributes::AdditionalUrlAttribute); int i = 1; while (m_entryAttributes->keys().contains(name)) { - name = QString("KP2A_URL_%1").arg(i); + name = QString("%1_%2").arg(EntryAttributes::AdditionalUrlAttribute, QString::number(i)); i++; } m_entryAttributes->set(name, tr("")); QModelIndex index = m_additionalURLsDataModel->indexByKey(name); + m_additionalURLsDataModel->setEntryUrl(m_entry->url()); m_browserUi->additionalURLsView->setCurrentIndex(index); m_browserUi->additionalURLsView->edit(index); @@ -397,6 +403,11 @@ void EditEntryWidget::updateCurrentURL() m_browserUi->removeURLButton->setEnabled(false); } } + +void EditEntryWidget::entryURLEdited(const QString& url) +{ + m_additionalURLsDataModel->setEntryUrl(url); +} #endif void EditEntryWidget::setupProperties() @@ -694,6 +705,13 @@ void EditEntryWidget::toKeeAgentSettings(KeeAgentSettings& settings) const settings.setSaveAttachmentToTempFile(m_sshAgentSettings.saveAttachmentToTempFile()); } +void EditEntryWidget::updateTotp() +{ + if (m_entry) { + m_attributesModel->setEntryAttributes(m_entry->attributes()); + } +} + void EditEntryWidget::browsePrivateKey() { auto fileName = fileDialog()->getOpenFileName(this, tr("Select private key"), FileDialog::getLastDir("sshagent")); @@ -799,7 +817,7 @@ void EditEntryWidget::useExpiryPreset(QAction* action) void EditEntryWidget::toggleHideNotes(bool visible) { m_mainUi->notesEdit->setVisible(visible); - m_mainUi->notesHint->setVisible(!visible); + m_mainUi->revealNotesButton->setIcon(icons()->onOffIcon("password-show", visible)); } Entry* EditEntryWidget::currentEntry() const @@ -818,8 +836,6 @@ void EditEntryWidget::loadEntry(Entry* entry, m_create = create; m_history = history; - connect(m_entry, &Entry::modified, this, [this] { m_entryModifiedTimer.start(); }); - if (history) { setHeadline(QString("%1 \u2022 %2").arg(parentName, tr("Entry history"))); } else { @@ -827,6 +843,8 @@ void EditEntryWidget::loadEntry(Entry* entry, setHeadline(QString("%1 \u2022 %2").arg(parentName, tr("Add entry"))); } else { setHeadline(QString("%1 \u2022 %2 \u2022 %3").arg(parentName, entry->title(), tr("Edit entry"))); + // Reload entry details if changed outside of the edit dialog + connect(m_entry, &Entry::modified, this, [this] { m_entryModifiedTimer.start(); }); } } @@ -858,10 +876,10 @@ void EditEntryWidget::setForms(Entry* entry, bool restore) m_mainUi->tagsList->completion(m_db->tagList()); m_mainUi->expireCheck->setEnabled(!m_history); m_mainUi->expireDatePicker->setReadOnly(m_history); - m_mainUi->notesEnabled->setChecked(!config()->get(Config::Security_HideNotes).toBool()); + m_mainUi->revealNotesButton->setIcon(icons()->onOffIcon("password-show", false)); + m_mainUi->revealNotesButton->setVisible(config()->get(Config::Security_HideNotes).toBool()); m_mainUi->notesEdit->setReadOnly(m_history); m_mainUi->notesEdit->setVisible(!config()->get(Config::Security_HideNotes).toBool()); - m_mainUi->notesHint->setVisible(config()->get(Config::Security_HideNotes).toBool()); if (config()->get(Config::GUI_MonospaceNotes).toBool()) { m_mainUi->notesEdit->setFont(Font::fixedFont()); } else { @@ -1133,6 +1151,7 @@ bool EditEntryWidget::commitEntry() } m_historyModel->setEntries(m_entry->historyItems(), m_entry); + setPageHidden(m_historyWidget, m_history || m_entry->historyItems().count() < 1); m_advancedUi->attachmentsWidget->linkAttachments(m_entry->attachments()); showMessage(tr("Entry updated successfully."), MessageWidget::Positive); @@ -1582,6 +1601,7 @@ QMenu* EditEntryWidget::createPresetsMenu() expirePresetsMenu->addAction(tr("%n week(s)", nullptr, 3))->setData(QVariant::fromValue(TimeDelta::fromDays(21))); expirePresetsMenu->addSeparator(); expirePresetsMenu->addAction(tr("%n month(s)", nullptr, 1))->setData(QVariant::fromValue(TimeDelta::fromMonths(1))); + expirePresetsMenu->addAction(tr("%n month(s)", nullptr, 2))->setData(QVariant::fromValue(TimeDelta::fromMonths(2))); expirePresetsMenu->addAction(tr("%n month(s)", nullptr, 3))->setData(QVariant::fromValue(TimeDelta::fromMonths(3))); expirePresetsMenu->addAction(tr("%n month(s)", nullptr, 6))->setData(QVariant::fromValue(TimeDelta::fromMonths(6))); expirePresetsMenu->addSeparator(); diff --git a/src/gui/entry/EditEntryWidget.h b/src/gui/entry/EditEntryWidget.h index 89422c0d4..fddf64eda 100644 --- a/src/gui/entry/EditEntryWidget.h +++ b/src/gui/entry/EditEntryWidget.h @@ -118,6 +118,7 @@ private slots: void updateSSHAgentAttachment(); void updateSSHAgentAttachments(); void updateSSHAgentKeyInfo(); + void updateTotp(); void browsePrivateKey(); void addKeyToAgent(); void removeKeyFromAgent(); @@ -131,6 +132,7 @@ private slots: void removeCurrentURL(); void editCurrentURL(); void updateCurrentURL(); + void entryURLEdited(const QString& url); #endif private: diff --git a/src/gui/entry/EditEntryWidgetMain.ui b/src/gui/entry/EditEntryWidgetMain.ui index 555c719fa..6fe6637e7 100644 --- a/src/gui/entry/EditEntryWidgetMain.ui +++ b/src/gui/entry/EditEntryWidgetMain.ui @@ -6,7 +6,7 @@ 0 0 - 539 + 400 523 @@ -33,11 +33,11 @@ 0 0 - 539 + 400 523 - + 0 @@ -56,7 +56,37 @@ 8 - + + + + Title field + + + + + + + &Username: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + usernameComboBox + + + + + + + Qt::StrongFocus + + + Password field + + + + @@ -77,21 +107,34 @@ - - - - true - - - Toggle the checkbox to reveal the notes section. - - - Qt::AlignTop - - - + + + + &Title: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + titleEdit + + + + + + + &Password: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + passwordEdit + + + @@ -99,41 +142,34 @@ - - - - - - Toggle notes visible - - - Toggle notes visible - - - Notes: - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - + + + + Qt::StrongFocus + + + Tags list + + - - + + 8 + + + + Toggle expiration + + + Toggle expiration + + + + + + @@ -168,24 +204,17 @@ - - - - Password: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - URL: + UR&L: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + urlEdit + @@ -215,80 +244,98 @@ - - - - Title: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - Title field - - - - - - - Username: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - Password field - - - QLineEdit::Password - - - - - - - 0 - + + - - - Toggle expiration - - - Toggle expiration - + - Expires: + &Notes: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + notesEdit + + + + 6 + + + + + Qt::Horizontal + + + + 5 + 20 + + + + + + + + Toggle notes visibility + + + Toggle notes visibility + + + + 14 + 14 + + + + true + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + - Tags: + T&ags: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + tagsList + - - - - Qt::StrongFocus + + + + &Expires: - - Tags list + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + expireCheck @@ -302,30 +349,30 @@
    gui/tag/TagsEdit.h
    1
    - - PasswordEdit - QLineEdit -
    gui/PasswordEdit.h
    - 1 -
    URLEdit QLineEdit
    gui/URLEdit.h
    1
    + + PasswordWidget + QWidget +
    gui/PasswordWidget.h
    + 1 +
    titleEdit usernameComboBox passwordEdit urlEdit - tagsList fetchFaviconButton + tagsList expireCheck expireDatePicker expirePresets - notesEnabled + revealNotesButton notesEdit diff --git a/src/gui/entry/EntryAttachmentsWidget.cpp b/src/gui/entry/EntryAttachmentsWidget.cpp index 33c97df96..d8634f275 100644 --- a/src/gui/entry/EntryAttachmentsWidget.cpp +++ b/src/gui/entry/EntryAttachmentsWidget.cpp @@ -313,6 +313,7 @@ void EntryAttachmentsWidget::updateButtonsVisible() { m_ui->addAttachmentButton->setVisible(m_buttonsVisible && !m_readOnly); m_ui->removeAttachmentButton->setVisible(m_buttonsVisible && !m_readOnly); + m_ui->renameAttachmentButton->setVisible(m_buttonsVisible && !m_readOnly); } bool EntryAttachmentsWidget::insertAttachments(const QStringList& filenames, QString& errorMessage) diff --git a/src/gui/entry/EntryHistoryModel.cpp b/src/gui/entry/EntryHistoryModel.cpp index acde63cb5..618f4328f 100644 --- a/src/gui/entry/EntryHistoryModel.cpp +++ b/src/gui/entry/EntryHistoryModel.cpp @@ -158,9 +158,10 @@ void EntryHistoryModel::deleteIndex(QModelIndex index) { auto entry = entryFromIndex(index); if (entry) { - beginRemoveRows(QModelIndex(), m_historyEntries.indexOf(entry), m_historyEntries.indexOf(entry)); + beginRemoveRows(QModelIndex(), index.row(), index.row()); m_historyEntries.removeAll(entry); m_deletedHistoryEntries << entry; + m_historyModifications.erase(m_historyModifications.begin() + index.row()); endRemoveRows(); } } diff --git a/src/gui/entry/EntryModel.cpp b/src/gui/entry/EntryModel.cpp index 313b7ee50..95c9cefb2 100644 --- a/src/gui/entry/EntryModel.cpp +++ b/src/gui/entry/EntryModel.cpp @@ -50,8 +50,10 @@ Entry* EntryModel::entryFromIndex(const QModelIndex& index) const QModelIndex EntryModel::indexFromEntry(Entry* entry) const { int row = m_entries.indexOf(entry); - Q_ASSERT(row != -1); - return index(row, 1); + if (row >= 0) { + return index(row, 1); + } + return {}; } void EntryModel::setGroup(Group* group) @@ -85,25 +87,13 @@ void EntryModel::setEntries(const QList& entries) m_entries = entries; m_orgEntries = entries; - QSet databases; - - for (Entry* entry : asConst(m_entries)) { - databases.insert(entry->group()->database()); - } - - for (Database* db : asConst(databases)) { - Q_ASSERT(db); - const QList groupList = db->rootGroup()->groupsRecursive(true); - for (const Group* group : groupList) { - m_allGroups.append(group); - } - - if (db->metadata()->recycleBin()) { - m_allGroups.removeOne(db->metadata()->recycleBin()); + for (const auto entry : asConst(m_entries)) { + if (entry->group()) { + m_allGroups.insert(entry->group()); } } - for (const Group* group : asConst(m_allGroups)) { + for (const auto group : m_allGroups) { makeConnections(group); } @@ -291,7 +281,7 @@ QVariant EntryModel::data(const QModelIndex& index, int role) const break; case Totp: if (entry->hasTotp()) { - return icons()->icon("chronometer"); + return icons()->icon("totp"); } break; case PasswordStrength: @@ -388,7 +378,7 @@ QVariant EntryModel::headerData(int section, Qt::Orientation orientation, int ro case Paperclip: return icons()->icon("paperclip"); case Totp: - return icons()->icon("chronometer"); + return icons()->icon("totp"); case PasswordStrength: return icons()->icon("lock-question"); } diff --git a/src/gui/entry/EntryModel.h b/src/gui/entry/EntryModel.h index cd34da7d4..8e79be384 100644 --- a/src/gui/entry/EntryModel.h +++ b/src/gui/entry/EntryModel.h @@ -20,6 +20,7 @@ #include #include +#include #include "core/Config.h" @@ -87,7 +88,7 @@ private: Group* m_group; QList m_entries; QList m_orgEntries; - QList m_allGroups; + QSet m_allGroups; const QString HiddenContentDisplay; const Qt::DateFormat DateFormat; diff --git a/src/gui/entry/EntryURLModel.cpp b/src/gui/entry/EntryURLModel.cpp index 3222c7d30..046fbee61 100644 --- a/src/gui/entry/EntryURLModel.cpp +++ b/src/gui/entry/EntryURLModel.cpp @@ -1,6 +1,6 @@ /* + * Copyright (C) 2023 KeePassXC Team * Copyright (C) 2012 Felix Geyer - * Copyright (C) 2019 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,8 +18,9 @@ #include "EntryURLModel.h" +#include "browser/BrowserService.h" #include "core/EntryAttributes.h" -#include "core/Tools.h" +#include "core/UrlTools.h" #include "gui/Icons.h" #include "gui/styles/StateColorPalette.h" @@ -66,15 +67,23 @@ QVariant EntryURLModel::data(const QModelIndex& index, int role) const } const auto value = m_entryAttributes->value(key); - const auto urlValid = Tools::checkUrlValid(value); + const auto urlValid = urlTools()->isUrlValid(value); - if (role == Qt::BackgroundRole && !urlValid) { + // Check for duplicate URLs in the attribute list. Excludes the current key/value from the comparison. + auto customAttributeKeys = m_entryAttributes->customKeys().filter(EntryAttributes::AdditionalUrlAttribute); + customAttributeKeys.removeOne(key); + + const auto duplicateUrl = + m_entryAttributes->values(customAttributeKeys).contains(value) || urlTools()->isUrlIdentical(value, m_entryUrl); + if (role == Qt::BackgroundRole && (!urlValid || duplicateUrl)) { StateColorPalette statePalette; return statePalette.color(StateColorPalette::ColorRole::Error); - } else if (role == Qt::DecorationRole && !urlValid) { + } else if (role == Qt::DecorationRole && (!urlValid || duplicateUrl)) { return m_errorIcon; } else if (role == Qt::DisplayRole || role == Qt::EditRole) { return value; + } else if (role == Qt::ToolTipRole && duplicateUrl) { + return tr("Duplicate URL"); } else if (role == Qt::ToolTipRole && !urlValid) { return tr("Invalid URL"); } @@ -82,17 +91,21 @@ QVariant EntryURLModel::data(const QModelIndex& index, int role) const return {}; } +void EntryURLModel::setEntryUrl(const QString& entryUrl) +{ + m_entryUrl = entryUrl; +} + bool EntryURLModel::setData(const QModelIndex& index, const QVariant& value, int role) { if (!index.isValid() || role != Qt::EditRole || value.type() != QVariant::String || value.toString().isEmpty()) { return false; } - const int row = index.row(); - const QString key = m_urls.at(row).first; - const QString oldValue = m_urls.at(row).second; + const auto row = index.row(); + const auto key = m_urls.at(row).first; - if (EntryAttributes::isDefaultAttribute(key) || m_entryAttributes->containsValue(value.toString())) { + if (EntryAttributes::isDefaultAttribute(key)) { return false; } @@ -113,7 +126,7 @@ QModelIndex EntryURLModel::indexByKey(const QString& key) const } if (row == -1) { - return QModelIndex(); + return {}; } else { return index(row, 0); } @@ -122,7 +135,7 @@ QModelIndex EntryURLModel::indexByKey(const QString& key) const QString EntryURLModel::keyByIndex(const QModelIndex& index) const { if (!index.isValid()) { - return QString(); + return {}; } else { return m_urls.at(index.row()).first; } @@ -133,9 +146,9 @@ void EntryURLModel::updateAttributes() clear(); m_urls.clear(); - const QList attributesKeyList = m_entryAttributes->keys(); - for (const QString& key : attributesKeyList) { - if (!EntryAttributes::isDefaultAttribute(key) && key.contains("KP2A_URL")) { + const auto attributesKeyList = m_entryAttributes->keys(); + for (const auto& key : attributesKeyList) { + if (!EntryAttributes::isDefaultAttribute(key) && key.contains(EntryAttributes::AdditionalUrlAttribute)) { const auto value = m_entryAttributes->value(key); m_urls.append(qMakePair(key, value)); diff --git a/src/gui/entry/EntryURLModel.h b/src/gui/entry/EntryURLModel.h index f9ffa4828..2801f9ffe 100644 --- a/src/gui/entry/EntryURLModel.h +++ b/src/gui/entry/EntryURLModel.h @@ -1,6 +1,6 @@ /* + * Copyright (C) 2023 KeePassXC Team * Copyright (C) 2012 Felix Geyer - * Copyright (C) 2019 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,6 +19,7 @@ #ifndef KEEPASSXC_ENTRYURLMODEL_H #define KEEPASSXC_ENTRYURLMODEL_H +#include "core/Entry.h" #include #include @@ -43,8 +44,10 @@ class EntryURLModel : public QStandardItemModel public: explicit EntryURLModel(QObject* parent = nullptr); + void setEntryAttributes(EntryAttributes* entryAttributes); void insertRow(const QString& key, const QString& value); + void setEntryUrl(const QString& entryUrl); bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override; QVariant data(const QModelIndex& index, int role) const override; QModelIndex indexByKey(const QString& key) const; @@ -57,6 +60,7 @@ private: QList> m_urls; EntryAttributes* m_entryAttributes; QIcon m_errorIcon; + QString m_entryUrl; }; #endif // KEEPASSXC_ENTRYURLMODEL_H diff --git a/src/gui/entry/EntryView.cpp b/src/gui/entry/EntryView.cpp index 09362e391..419a08d75 100644 --- a/src/gui/entry/EntryView.cpp +++ b/src/gui/entry/EntryView.cpp @@ -19,12 +19,18 @@ #include "EntryView.h" #include +#include +#include #include +#include #include #include +#include #include #include +#include +#include "gui/Icons.h" #include "gui/SortFilterHideProxyModel.h" #define ICON_ONLY_SECTION_SIZE 26 @@ -213,11 +219,12 @@ void EntryView::displaySearch(const QList& entries) m_model->setEntries(entries); header()->showSection(EntryModel::ParentGroup); + setFirstEntryActive(); + // Reset sort column to 'Group', overrides DatabaseWidgetStateSync m_sortModel->sort(EntryModel::ParentGroup, Qt::AscendingOrder); sortByColumn(EntryModel::ParentGroup, Qt::AscendingOrder); - setFirstEntryActive(); m_inSearchMode = true; } @@ -263,6 +270,15 @@ Entry* EntryView::currentEntry() } } +QList EntryView::selectedEntries() +{ + QList list; + for (auto row : selectionModel()->selectedRows()) { + list.append(m_model->entryFromIndex(m_sortModel->mapToSource(row))); + } + return list; +} + int EntryView::numberOfSelectedEntries() { return selectionModel()->selectedRows().size(); @@ -270,8 +286,11 @@ int EntryView::numberOfSelectedEntries() void EntryView::setCurrentEntry(Entry* entry) { - selectionModel()->setCurrentIndex(m_sortModel->mapFromSource(m_model->indexFromEntry(entry)), - QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); + auto index = m_model->indexFromEntry(entry); + if (index.isValid()) { + selectionModel()->setCurrentIndex(m_sortModel->mapFromSource(index), + QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); + } } Entry* EntryView::entryFromIndex(const QModelIndex& index) @@ -335,6 +354,7 @@ void EntryView::showHeaderMenu(const QPoint& position) int columnIndex = action->data().toInt(); action->setChecked(!isColumnHidden(columnIndex)); } + actions[EntryModel::ParentGroup]->setVisible(inSearchMode()); m_headerMenu->popup(mapToGlobal(position)); } @@ -494,6 +514,76 @@ void EntryView::showEvent(QShowEvent* event) } } +void EntryView::startDrag(Qt::DropActions supportedActions) +{ + auto selectedIndexes = selectionModel()->selectedRows(EntryModel::Title); + if (selectedIndexes.isEmpty()) { + return; + } + + // Create a mime data object for the selected rows + auto mimeData = m_sortModel->mimeData(selectedIndexes); + if (!mimeData) { + return; + } + + // Create a temporary list widget to display the dragged items + int i = 0; + QListWidget listWidget; + for (auto& index : selectedIndexes) { + if (++i > 4) { + int remaining = selectedIndexes.size() - i + 1; + listWidget.addItem(tr("+ %1 entry(s)...", nullptr, remaining).arg(remaining)); + break; + } + + QIcon icon; + icon.addPixmap(m_sortModel->data(index, Qt::DecorationRole).value()); + + auto item = new QListWidgetItem; + item->setText(m_sortModel->data(index, Qt::DisplayRole).toString()); + item->setIcon(icon); + listWidget.addItem(item); + } + + listWidget.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + listWidget.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + listWidget.setStyleSheet("QListWidget { background-color: palette(highlight); border: 1px solid palette(dark); " + "padding: 4px; color: palette(highlighted-text); }"); + auto width = listWidget.sizeHintForColumn(0) + 2 * listWidget.frameWidth(); + auto height = listWidget.sizeHintForRow(0) * listWidget.count() + 2 * listWidget.frameWidth(); + listWidget.setFixedWidth(width); + listWidget.setFixedHeight(height); + + // Grab the screen pixel ratio where the window resides + // TODO: Use direct call to screen() when moving to Qt 6 +#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0) + auto screen = QGuiApplication::screenAt(window()->geometry().center()); + if (!screen) { + screen = QGuiApplication::primaryScreen(); + } +#else + auto screen = QGuiApplication::primaryScreen(); + if (windowHandle()) { + screen = windowHandle()->screen(); + } +#endif + + auto pixelRatio = screen->devicePixelRatio(); + + // Render the list widget to a pixmap + QPixmap pixmap(QSize(width, height) * pixelRatio); + pixmap.fill(Qt::transparent); + pixmap.setDevicePixelRatio(pixelRatio); + listWidget.render(&pixmap); + + // Create a drag object and start the drag + auto drag = new QDrag(this); + drag->setMimeData(mimeData); + drag->setPixmap(pixmap); + drag->exec(supportedActions, defaultDropAction()); +} + bool EntryView::isColumnHidden(int logicalIndex) { return header()->isSectionHidden(logicalIndex) || header()->sectionSize(logicalIndex) == 0; diff --git a/src/gui/entry/EntryView.h b/src/gui/entry/EntryView.h index 90f37abfc..3a0cc1d60 100644 --- a/src/gui/entry/EntryView.h +++ b/src/gui/entry/EntryView.h @@ -38,6 +38,7 @@ public: void setModel(QAbstractItemModel* model) override; Entry* currentEntry(); void setCurrentEntry(Entry* entry); + QList selectedEntries(); Entry* entryFromIndex(const QModelIndex& index); QModelIndex indexFromEntry(Entry* entry); int currentEntryIndex(); @@ -60,6 +61,7 @@ protected: void keyPressEvent(QKeyEvent* event) override; void focusInEvent(QFocusEvent* event) override; void showEvent(QShowEvent* event) override; + void startDrag(Qt::DropActions supportedActions) override; private slots: void emitEntryActivated(const QModelIndex& index); diff --git a/src/gui/group/EditGroupWidget.cpp b/src/gui/group/EditGroupWidget.cpp index 687dd056d..39f5bc445 100644 --- a/src/gui/group/EditGroupWidget.cpp +++ b/src/gui/group/EditGroupWidget.cpp @@ -1,6 +1,6 @@ /* * Copyright (C) 2011 Felix Geyer - * Copyright (C) 2021 KeePassXC Team + * Copyright (C) 2022 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -73,7 +73,7 @@ EditGroupWidget::EditGroupWidget(QWidget* parent) #if defined(WITH_XC_BROWSER) , m_browserSettingsChanged(false) , m_browserUi(new Ui::EditGroupWidgetBrowser()) - , m_browserWidget(new QScrollArea()) + , m_browserWidget(new QWidget(this)) #endif , m_group(nullptr) { @@ -83,8 +83,7 @@ EditGroupWidget::EditGroupWidget(QWidget* parent) addPage(tr("Icon"), icons()->icon("preferences-desktop-icons"), m_editGroupWidgetIcons); #if defined(WITH_XC_BROWSER) if (config()->get(Config::Browser_Enabled).toBool()) { - addPage(tr("Browser Integration"), icons()->icon("internet-web-browser"), m_browserWidget); - m_browserUi->setupUi(m_browserWidget); + initializeBrowserPage(); } #endif #if defined(WITH_XC_KEESHARE) @@ -135,28 +134,7 @@ void EditGroupWidget::setupModifiedTracking() #if defined(WITH_XC_BROWSER) if (config()->get(Config::Browser_Enabled).toBool()) { - // Browser integration tab - connect( - m_browserUi->browserIntegrationHideEntriesComboBox, SIGNAL(currentIndexChanged(int)), SLOT(setModified())); - connect(m_browserUi->browserIntegrationSkipAutoSubmitComboBox, - SIGNAL(currentIndexChanged(int)), - SLOT(setModified())); - connect( - m_browserUi->browserIntegrationOnlyHttpAuthComboBox, SIGNAL(currentIndexChanged(int)), SLOT(setModified())); - connect( - m_browserUi->browserIntegrationNotHttpAuthComboBox, SIGNAL(currentIndexChanged(int)), SLOT(setModified())); - connect(m_browserUi->browserIntegrationHideEntriesComboBox, - SIGNAL(currentIndexChanged(int)), - SLOT(updateBrowserModified())); - connect(m_browserUi->browserIntegrationSkipAutoSubmitComboBox, - SIGNAL(currentIndexChanged(int)), - SLOT(updateBrowserModified())); - connect(m_browserUi->browserIntegrationOnlyHttpAuthComboBox, - SIGNAL(currentIndexChanged(int)), - SLOT(updateBrowserModified())); - connect(m_browserUi->browserIntegrationNotHttpAuthComboBox, - SIGNAL(currentIndexChanged(int)), - SLOT(updateBrowserModified())); + setupBrowserModifiedTracking(); } #endif } @@ -219,6 +197,7 @@ void EditGroupWidget::loadGroup(Group* group, bool create, const QSharedPointer< auto inheritSkipSubmit = false; auto inheritOnlyHttp = false; auto inheritNoHttp = false; + auto inheritOmitWww = false; auto parent = group->parentGroup(); if (parent) { @@ -226,12 +205,22 @@ void EditGroupWidget::loadGroup(Group* group, bool create, const QSharedPointer< inheritSkipSubmit = parent->resolveCustomDataTriState(BrowserService::OPTION_SKIP_AUTO_SUBMIT); inheritOnlyHttp = parent->resolveCustomDataTriState(BrowserService::OPTION_ONLY_HTTP_AUTH); inheritNoHttp = parent->resolveCustomDataTriState(BrowserService::OPTION_NOT_HTTP_AUTH); + inheritOmitWww = parent->resolveCustomDataTriState(BrowserService::OPTION_OMIT_WWW); } + // If the page has not been created at all, some of the elements are null + if (m_browserUi->browserIntegrationHideEntriesComboBox == nullptr + && config()->get(Config::Browser_Enabled).toBool()) { + initializeBrowserPage(); + setupBrowserModifiedTracking(); + } + + setPageHidden(m_browserWidget, false); addTriStateItems(m_browserUi->browserIntegrationHideEntriesComboBox, inheritHideEntries); addTriStateItems(m_browserUi->browserIntegrationSkipAutoSubmitComboBox, inheritSkipSubmit); addTriStateItems(m_browserUi->browserIntegrationOnlyHttpAuthComboBox, inheritOnlyHttp); addTriStateItems(m_browserUi->browserIntegrationNotHttpAuthComboBox, inheritNoHttp); + addTriStateItems(m_browserUi->browserIntegrationOmitWwwCombobox, inheritOmitWww); m_browserUi->browserIntegrationHideEntriesComboBox->setCurrentIndex( indexFromTriState(group->resolveCustomDataTriState(BrowserService::OPTION_HIDE_ENTRY, false))); @@ -241,6 +230,10 @@ void EditGroupWidget::loadGroup(Group* group, bool create, const QSharedPointer< indexFromTriState(group->resolveCustomDataTriState(BrowserService::OPTION_ONLY_HTTP_AUTH, false))); m_browserUi->browserIntegrationNotHttpAuthComboBox->setCurrentIndex( indexFromTriState(group->resolveCustomDataTriState(BrowserService::OPTION_NOT_HTTP_AUTH, false))); + m_browserUi->browserIntegrationOmitWwwCombobox->setCurrentIndex( + indexFromTriState(group->resolveCustomDataTriState(BrowserService::OPTION_OMIT_WWW, false))); + } else if (hasPage(m_browserWidget)) { + setPageHidden(m_browserWidget, true); } #endif @@ -309,6 +302,9 @@ void EditGroupWidget::apply() m_temporaryGroup->setCustomDataTriState( BrowserService::OPTION_NOT_HTTP_AUTH, triStateFromIndex(m_browserUi->browserIntegrationNotHttpAuthComboBox->currentIndex())); + m_temporaryGroup->setCustomDataTriState( + BrowserService::OPTION_OMIT_WWW, + triStateFromIndex(m_browserUi->browserIntegrationOmitWwwCombobox->currentIndex())); } #endif @@ -355,6 +351,34 @@ void EditGroupWidget::cancel() } #ifdef WITH_XC_BROWSER +void EditGroupWidget::initializeBrowserPage() +{ + addPage(tr("Browser Integration"), icons()->icon("internet-web-browser"), m_browserWidget); + m_browserUi->setupUi(m_browserWidget); +} + +void EditGroupWidget::setupBrowserModifiedTracking() +{ + // Browser integration tab + connect(m_browserUi->browserIntegrationHideEntriesComboBox, SIGNAL(currentIndexChanged(int)), SLOT(setModified())); + connect( + m_browserUi->browserIntegrationSkipAutoSubmitComboBox, SIGNAL(currentIndexChanged(int)), SLOT(setModified())); + connect(m_browserUi->browserIntegrationOnlyHttpAuthComboBox, SIGNAL(currentIndexChanged(int)), SLOT(setModified())); + connect(m_browserUi->browserIntegrationNotHttpAuthComboBox, SIGNAL(currentIndexChanged(int)), SLOT(setModified())); + connect(m_browserUi->browserIntegrationHideEntriesComboBox, + SIGNAL(currentIndexChanged(int)), + SLOT(updateBrowserModified())); + connect(m_browserUi->browserIntegrationSkipAutoSubmitComboBox, + SIGNAL(currentIndexChanged(int)), + SLOT(updateBrowserModified())); + connect(m_browserUi->browserIntegrationOnlyHttpAuthComboBox, + SIGNAL(currentIndexChanged(int)), + SLOT(updateBrowserModified())); + connect(m_browserUi->browserIntegrationNotHttpAuthComboBox, + SIGNAL(currentIndexChanged(int)), + SLOT(updateBrowserModified())); +} + void EditGroupWidget::updateBrowserModified() { m_browserSettingsChanged = true; diff --git a/src/gui/group/EditGroupWidget.h b/src/gui/group/EditGroupWidget.h index e61e38c54..1481d2500 100644 --- a/src/gui/group/EditGroupWidget.h +++ b/src/gui/group/EditGroupWidget.h @@ -1,6 +1,6 @@ /* * Copyright (C) 2011 Felix Geyer - * Copyright (C) 2021 KeePassXC Team + * Copyright (C) 2022 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -72,6 +72,8 @@ private slots: void save(); void cancel(); #ifdef WITH_XC_BROWSER + void initializeBrowserPage(); + void setupBrowserModifiedTracking(); void updateBrowserModified(); #endif @@ -89,7 +91,7 @@ private: #ifdef WITH_XC_BROWSER bool m_browserSettingsChanged; const QScopedPointer m_browserUi; - QPointer m_browserWidget; + QWidget* const m_browserWidget; #endif QScopedPointer m_temporaryGroup; diff --git a/src/gui/group/EditGroupWidgetBrowser.ui b/src/gui/group/EditGroupWidgetBrowser.ui index f043438d0..dfe4b5971 100644 --- a/src/gui/group/EditGroupWidgetBrowser.ui +++ b/src/gui/group/EditGroupWidgetBrowser.ui @@ -1,34 +1,7 @@ EditGroupWidgetBrowser - - - - 0 - 0 - 539 - 523 - - - - Edit Group - - - QFrame::NoFrame - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - QAbstractScrollArea::AdjustToContents - - - true - - + 0 @@ -59,115 +32,132 @@ -    -   0 -   -   -   10 -   -   -   0 -   -   -   0 -    -    -   10 -    -    -   8 -    -    -    -    -   Hide entries from browser extension: -    -    -   Qt::AlignLeading|Qt::AlignLeft|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter -    -    -    -    -    -    -   Hide entries from browser extension toggle for this and sub groups -    -    -    -    -    -    -   Skip Auto-Submit for entries: -    -    -   Qt::AlignLeading|Qt::AlignLeft|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter -    -    -    -    -    -    -   Skip Auto-Submit toggle for this and sub groups -    -    -    -    -    -    -   Use entries only with HTTP Basic Auth: -    -    -   Qt::AlignLeading|Qt::AlignLeft|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter -    -    -    -    -    -    -   Only HTTP Auth toggle for this and sub groups -    -    -    -    -   -    -    Do not use entries with HTTP Basic Auth: -    -    -    Qt::AlignLeading|Qt::AlignLeft|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter -    -    -    -    -    -    -    Do not use HTTP Auth toggle for this and sub groups -    -    -    -    -    -    -    Qt::Vertical -    -    -    -    20 -    40 -    -    -    -    -    -   + + 0 + + + 10 + + + 0 + + + 0 + + + 10 + + + 8 + + + + + Hide entries from browser extension: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Hide entries from browser extension toggle for this and sub groups + + + + + + + Skip Auto-Submit for entries: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Skip Auto-Submit toggle for this and sub groups + + + + + + + Use entries only with HTTP Basic Auth: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Only HTTP Auth toggle for this and sub groups + + + + + + + Do not use entries with HTTP Basic Auth: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Do not use HTTP Auth toggle for this and sub groups + + + + + + + Omit WWW subdomain from matching: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Omit WWW subdomain from matching toggle for this and sub groups + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + - browserIntegrationHideEntriesComboBox browserIntegrationSkipAutoSubmitComboBox browserIntegrationOnlyHttpAuthComboBox browserIntegrationNotHttpAuthComboBox + browserIntegrationOmitWwwCombobox diff --git a/src/gui/org.keepassxc.KeePassXC.MainWindow.xml b/src/gui/org.keepassxc.KeePassXC.MainWindow.xml index 635a66b93..651018149 100644 --- a/src/gui/org.keepassxc.KeePassXC.MainWindow.xml +++ b/src/gui/org.keepassxc.KeePassXC.MainWindow.xml @@ -15,6 +15,12 @@ + + + + + + diff --git a/src/gui/osutils/DeviceListener.cpp b/src/gui/osutils/DeviceListener.cpp new file mode 100644 index 000000000..9946295e9 --- /dev/null +++ b/src/gui/osutils/DeviceListener.cpp @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "DeviceListener.h" +#include + +DeviceListener::DeviceListener(QWidget* parent) + : QWidget(parent) +{ +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) + m_listeners[0] = new DEVICELISTENER_IMPL(this); + connectSignals(m_listeners[0]); +#endif +} + +DeviceListener::~DeviceListener() +{ +} + +void DeviceListener::connectSignals(DEVICELISTENER_IMPL* listener) +{ + connect(listener, &DEVICELISTENER_IMPL::devicePlugged, this, [&](bool state, void* ctx, void* device) { + // Wait a few ms to prevent USB device access conflicts + QTimer::singleShot(50, [&] { emit devicePlugged(state, ctx, device); }); + }); +} + +DeviceListener::Handle +DeviceListener::registerHotplugCallback(bool arrived, bool left, int vendorId, int productId, const QUuid* deviceClass) +{ +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) + const Handle handle = m_listeners[0]->registerHotplugCallback(arrived, left, vendorId, productId, deviceClass); +#else + auto* listener = new DEVICELISTENER_IMPL(this); + const auto handle = reinterpret_cast(listener); + m_listeners[handle] = listener; + m_listeners[handle]->registerHotplugCallback(arrived, left, vendorId, productId, deviceClass); + connectSignals(m_listeners[handle]); +#endif + return handle; +} + +void DeviceListener::deregisterHotplugCallback(Handle handle) +{ +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) + m_listeners[0]->deregisterHotplugCallback(static_cast(handle)); +#else + if (m_listeners.contains(handle)) { + m_listeners[handle]->deregisterHotplugCallback(); + m_listeners.remove(handle); + } +#endif +} + +void DeviceListener::deregisterAllHotplugCallbacks() +{ +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) + m_listeners[0]->deregisterAllHotplugCallbacks(); +#else + while (!m_listeners.isEmpty()) { + deregisterHotplugCallback(m_listeners.constBegin().key()); + } +#endif +} diff --git a/src/gui/osutils/DeviceListener.h b/src/gui/osutils/DeviceListener.h new file mode 100644 index 000000000..831e6ddca --- /dev/null +++ b/src/gui/osutils/DeviceListener.h @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef DEVICELISTENER_H +#define DEVICELISTENER_H + +#include +#include +#include +#include + +#if defined(Q_OS_WIN) +#include "winutils/DeviceListenerWin.h" +#elif defined(Q_OS_MACOS) +#include "macutils/DeviceListenerMac.h" +#elif defined(Q_OS_UNIX) +#include "nixutils/DeviceListenerLibUsb.h" +#endif + +class QUuid; + +class DeviceListener : public QWidget +{ + Q_OBJECT + +public: + typedef qintptr Handle; + static constexpr int MATCH_ANY = -1; + + explicit DeviceListener(QWidget* parent); + DeviceListener(const DeviceListener&) = delete; + ~DeviceListener() override; + + /** + * Register a hotplug notification callback. + * + * Fires devicePlugged() or deviceUnplugged() when the state of a matching device changes. + * The signals are supplied with the platform-specific context and ID of the firing device. + * Registering a new callback with the same DeviceListener will unregister any previous callbacks. + * + * @param arrived listen for new devices + * @param left listen for device unplug + * @param vendorId vendor ID to listen for or DeviceListener::MATCH_ANY + * @param productId product ID to listen for or DeviceListener::MATCH_ANY + * @param deviceClass device class GUID (Windows only) + * @return callback handle + */ + Handle registerHotplugCallback(bool arrived, + bool left, + int vendorId = MATCH_ANY, + int productId = MATCH_ANY, + const QUuid* deviceClass = nullptr); + void deregisterHotplugCallback(Handle handle); + void deregisterAllHotplugCallbacks(); + +signals: + void devicePlugged(bool state, void* ctx, void* device); + +private: + QHash> m_listeners; + void connectSignals(DEVICELISTENER_IMPL* listener); +}; + +#endif // DEVICELISTENER_H diff --git a/src/gui/osutils/OSUtilsBase.cpp b/src/gui/osutils/OSUtilsBase.cpp index a8395bb74..63ce71247 100644 --- a/src/gui/osutils/OSUtilsBase.cpp +++ b/src/gui/osutils/OSUtilsBase.cpp @@ -29,5 +29,5 @@ OSUtilsBase::~OSUtilsBase() bool OSUtilsBase::setPreventScreenCapture(QWindow*, bool) const { // Do nothing by default - return false; + return true; } diff --git a/src/gui/osutils/ScreenLockListener.h b/src/gui/osutils/ScreenLockListener.h index 107d342a6..326bacd2e 100644 --- a/src/gui/osutils/ScreenLockListener.h +++ b/src/gui/osutils/ScreenLockListener.h @@ -26,8 +26,8 @@ class ScreenLockListener : public QObject Q_OBJECT public: - ScreenLockListener(QWidget* parent = nullptr); - ~ScreenLockListener(); + explicit ScreenLockListener(QWidget* parent); + ~ScreenLockListener() override; signals: void screenLocked(); diff --git a/src/gui/osutils/ScreenLockListenerPrivate.h b/src/gui/osutils/ScreenLockListenerPrivate.h index 8f509280b..34511f168 100644 --- a/src/gui/osutils/ScreenLockListenerPrivate.h +++ b/src/gui/osutils/ScreenLockListenerPrivate.h @@ -17,7 +17,7 @@ #ifndef SCREENLOCKLISTENERPRIVATE_H #define SCREENLOCKLISTENERPRIVATE_H -#include +#include class ScreenLockListenerPrivate : public QObject { @@ -26,7 +26,7 @@ public: static ScreenLockListenerPrivate* instance(QWidget* parent = nullptr); protected: - ScreenLockListenerPrivate(QWidget* parent = nullptr); + explicit ScreenLockListenerPrivate(QWidget* parent = nullptr); signals: void screenLocked(); diff --git a/src/gui/osutils/macutils/AppKitImpl.mm b/src/gui/osutils/macutils/AppKitImpl.mm index a94d9efb6..439cf18d4 100644 --- a/src/gui/osutils/macutils/AppKitImpl.mm +++ b/src/gui/osutils/macutils/AppKitImpl.mm @@ -1,6 +1,6 @@ /* + * Copyright (C) 2024 KeePassXC Team * Copyright (C) 2016 Lennart Glauer - * Copyright (C) 2017 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -38,18 +38,7 @@ name:NSWorkspaceSessionDidResignActiveNotification object:nil]; - [[NSDistributedNotificationCenter defaultCenter] addObserver:self - selector:@selector(interfaceThemeChanged:) - name:@"AppleInterfaceThemeChangedNotification" - object:nil]; - - // Unfortunately, there is no notification for a wallpaper change, which affects - // the status bar colour on macOS Big Sur, but we can at least subscribe to this. - [[NSDistributedNotificationCenter defaultCenter] addObserver:self - selector:@selector(interfaceThemeChanged:) - name:@"AppleColorPreferencesChangedNotification" - object:nil]; - + [NSApp addObserver:self forKeyPath:@"effectiveAppearance" options:NSKeyValueObservingOptionNew context:nil]; } return self; } @@ -67,14 +56,29 @@ } } -// -// Light / dark theme toggled -// -- (void) interfaceThemeChanged:(NSNotification*) notification +- (void) observeValueForKeyPath:(NSString *)keyPath + ofObject:(id)object + change:(NSDictionary *)change + context:(void *)context { - Q_UNUSED(notification); - if (m_appkit) { - emit m_appkit->interfaceThemeChanged(); + Q_UNUSED(object) + Q_UNUSED(change) + Q_UNUSED(context) + if ([keyPath isEqualToString:@"effectiveAppearance"]) { + if (m_appkit) { + + void (^emitBlock)(void) = ^{ + emit m_appkit->interfaceThemeChanged(); + }; + + if(@available(macOS 11.0, *)) { + // Not sure why exactly this call is needed, but Apple sample code uses it so it's best to use it here too + [NSApp.effectiveAppearance performAsCurrentDrawingAppearance:emitBlock]; + } + else { + emitBlock(); + } + } } } @@ -127,10 +131,7 @@ // - (bool) isDarkMode { - NSDictionary* dict = [[NSUserDefaults standardUserDefaults] persistentDomainForName:NSGlobalDomain]; - id style = [dict objectForKey:@"AppleInterfaceStyle"]; - return ( style && [style isKindOfClass:[NSString class]] - && NSOrderedSame == [style caseInsensitiveCompare:@"dark"] ); + return [NSApp.effectiveAppearance.name isEqualToString:NSAppearanceNameDarkAqua]; } @@ -234,6 +235,7 @@ AppKit::~AppKit() { [[[NSWorkspace sharedWorkspace] notificationCenter] removeObserver:static_cast(self)]; [[NSDistributedNotificationCenter defaultCenter] removeObserver:static_cast(self)]; + [NSApp removeObserver:static_cast(self) forKeyPath:@"effectiveAppearance"]; [static_cast(self) dealloc]; } diff --git a/src/gui/osutils/macutils/DeviceListenerMac.cpp b/src/gui/osutils/macutils/DeviceListenerMac.cpp new file mode 100644 index 000000000..41d0ddb42 --- /dev/null +++ b/src/gui/osutils/macutils/DeviceListenerMac.cpp @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "DeviceListenerMac.h" + +#include +#include + +DeviceListenerMac::DeviceListenerMac(QObject* parent) + : QObject(parent) + , m_mgr(nullptr) +{ +} + +DeviceListenerMac::~DeviceListenerMac() +{ + if (m_mgr) { + IOHIDManagerUnscheduleFromRunLoop(m_mgr, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode); + IOHIDManagerClose(m_mgr, kIOHIDOptionsTypeNone); + CFRelease(m_mgr); + } +} + +void DeviceListenerMac::registerHotplugCallback(bool arrived, bool left, int vendorId, int productId, const QUuid*) +{ + if (!m_mgr) { + m_mgr = IOHIDManagerCreate(kCFAllocatorDefault, kIOHIDManagerOptionNone); + if (!m_mgr) { + qWarning("Failed to create IOHIDManager."); + return; + } + IOHIDManagerScheduleWithRunLoop(m_mgr, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode); + } + + if (vendorId > 0 || productId > 0) { + CFMutableDictionaryRef matchingDict = IOServiceMatching(kIOHIDDeviceKey); + if (vendorId > 0) { + auto vid = CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, &vendorId); + CFDictionaryAddValue(matchingDict, CFSTR(kIOHIDVendorIDKey), vid); + CFRelease(vid); + } + if (productId > 0) { + auto pid = CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, &vendorId); + CFDictionaryAddValue(matchingDict, CFSTR(kIOHIDProductIDKey), pid); + CFRelease(pid); + } + IOHIDManagerSetDeviceMatching(m_mgr, matchingDict); + CFRelease(matchingDict); + } else { + IOHIDManagerSetDeviceMatching(m_mgr, nullptr); + } + + QPointer that = this; + if (arrived) { + IOHIDManagerRegisterDeviceMatchingCallback(m_mgr, [](void* ctx, IOReturn, void*, IOHIDDeviceRef device) { + static_cast(ctx)->onDeviceStateChanged(true, device); + }, that); + } + if (left) { + IOHIDManagerRegisterDeviceRemovalCallback(m_mgr, [](void* ctx, IOReturn, void*, IOHIDDeviceRef device) { + static_cast(ctx)->onDeviceStateChanged(true, device); + }, that); + } + + if (IOHIDManagerOpen(m_mgr, kIOHIDOptionsTypeNone) != kIOReturnSuccess) { + qWarning("Could not open enumerated devices."); + } +} + +void DeviceListenerMac::deregisterHotplugCallback() +{ + if (m_mgr) { + IOHIDManagerRegisterDeviceMatchingCallback(m_mgr, nullptr, this); + IOHIDManagerRegisterDeviceRemovalCallback(m_mgr, nullptr, this); + } +} + +void DeviceListenerMac::onDeviceStateChanged(bool state, void* device) +{ + emit devicePlugged(state, m_mgr, device); +} diff --git a/src/gui/osutils/macutils/DeviceListenerMac.h b/src/gui/osutils/macutils/DeviceListenerMac.h new file mode 100644 index 000000000..dae0886e8 --- /dev/null +++ b/src/gui/osutils/macutils/DeviceListenerMac.h @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef DEVICELISTENER_MAC_H +#define DEVICELISTENER_MAC_H + +#define DEVICELISTENER_IMPL DeviceListenerMac + +#include +#include + +class QUuid; + +class DeviceListenerMac : public QObject +{ + Q_OBJECT + +public: + explicit DeviceListenerMac(QObject* parent); + DeviceListenerMac(const DeviceListenerMac&) = delete; + ~DeviceListenerMac() override; + + void registerHotplugCallback(bool arrived, + bool left, + int vendorId = -1, + int productId = -1, const QUuid* = nullptr); + void deregisterHotplugCallback(); + +signals: + void devicePlugged(bool state, void* ctx, void* device); + +private: + void onDeviceStateChanged(bool state, void* device); + IOHIDManagerRef m_mgr; +}; + +#endif // DEVICELISTENER_MAC_H diff --git a/src/gui/osutils/macutils/MacUtils.cpp b/src/gui/osutils/macutils/MacUtils.cpp index c7d91950f..0f2cc6161 100644 --- a/src/gui/osutils/macutils/MacUtils.cpp +++ b/src/gui/osutils/macutils/MacUtils.cpp @@ -166,11 +166,9 @@ bool MacUtils::canPreventScreenCapture() const bool MacUtils::setPreventScreenCapture(QWindow* window, bool prevent) const { - if (!window) { - return false; + if (window) { + m_appkit->setWindowSecurity(window, prevent); } - - m_appkit->setWindowSecurity(window, prevent); return true; } @@ -185,7 +183,6 @@ void MacUtils::registerNativeEventFilter() bool MacUtils::registerGlobalShortcut(const QString& name, Qt::Key key, Qt::KeyboardModifiers modifiers, QString* error) { auto keycode = qtToNativeKeyCode(key); - auto modifierscode = qtToNativeModifiers(modifiers, false); if (keycode == INVALID_KEYCODE) { if (error) { *error = tr("Invalid key code"); @@ -193,6 +190,16 @@ bool MacUtils::registerGlobalShortcut(const QString& name, Qt::Key key, Qt::Keyb return false; } + // Qt inverts CMD and CTRL on macOS under the hood, undo this + if (modifiers & Qt::MetaModifier && !(modifiers & Qt::ControlModifier)) { + modifiers &= ~Qt::MetaModifier; + modifiers |= Qt::ControlModifier; + } else if (modifiers & Qt::ControlModifier && !(modifiers & Qt::MetaModifier)) { + modifiers &= ~Qt::ControlModifier; + modifiers |= Qt::MetaModifier; + } + auto modifierscode = qtToNativeModifiers(modifiers, false); + // Check if this key combo is registered to another shortcut QHashIterator> i(m_globalShortcuts); while (i.hasNext()) { @@ -440,7 +447,6 @@ uint16 MacUtils::qtToNativeKeyCode(Qt::Key key) return kVK_F16; default: - Q_ASSERT(false); return INVALID_KEYCODE; } } @@ -469,13 +475,13 @@ CGEventFlags MacUtils::qtToNativeModifiers(Qt::KeyboardModifiers modifiers, bool nativeModifiers = CGEventFlags(nativeModifiers | shiftMod); } if (modifiers & Qt::ControlModifier) { - nativeModifiers = CGEventFlags(nativeModifiers | cmdMod); + nativeModifiers = CGEventFlags(nativeModifiers | controlMod); } if (modifiers & Qt::AltModifier) { nativeModifiers = CGEventFlags(nativeModifiers | optionMod); } if (modifiers & Qt::MetaModifier) { - nativeModifiers = CGEventFlags(nativeModifiers | controlMod); + nativeModifiers = CGEventFlags(nativeModifiers | cmdMod); } return nativeModifiers; diff --git a/src/gui/osutils/nixutils/DeviceListenerLibUsb.cpp b/src/gui/osutils/nixutils/DeviceListenerLibUsb.cpp new file mode 100644 index 000000000..6cbb4a33e --- /dev/null +++ b/src/gui/osutils/nixutils/DeviceListenerLibUsb.cpp @@ -0,0 +1,124 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "DeviceListenerLibUsb.h" +#include "core/Tools.h" + +#include +#include +#include + +DeviceListenerLibUsb::DeviceListenerLibUsb(QWidget* parent) + : QObject(parent) + , m_ctx(nullptr) + , m_completed(false) +{ +} + +DeviceListenerLibUsb::~DeviceListenerLibUsb() +{ + if (m_ctx) { + deregisterAllHotplugCallbacks(); + libusb_exit(static_cast(m_ctx)); + m_ctx = nullptr; + } +} + +namespace +{ + void handleUsbEvents(libusb_context* ctx, QAtomicInt* completed) + { + while (!*completed) { + libusb_handle_events_completed(ctx, reinterpret_cast(completed)); + Tools::sleep(100); + } + } +} // namespace + +int DeviceListenerLibUsb::registerHotplugCallback(bool arrived, bool left, int vendorId, int productId, const QUuid*) +{ + if (!m_ctx) { + if (libusb_init(reinterpret_cast(&m_ctx)) != LIBUSB_SUCCESS) { + qWarning("Unable to initialize libusb. USB devices may not be detected properly."); + return 0; + } + } + + int events = 0; + if (arrived) { + events |= LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED; + } + if (left) { + events |= LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT; + } + + int handle = 0; + const QPointer that = this; + const int ret = libusb_hotplug_register_callback( + static_cast(m_ctx), + static_cast(events), + static_cast(0), + vendorId, + productId, + LIBUSB_HOTPLUG_MATCH_ANY, + [](libusb_context* ctx, libusb_device* device, libusb_hotplug_event event, void* userData) -> int { + if (!ctx) { + return 0; + } + emit static_cast(userData)->devicePlugged( + event == LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED, ctx, device); + return 0; + }, + that, + &handle); + if (ret != LIBUSB_SUCCESS) { + qWarning("Failed to register USB listener callback."); + handle = 0; + } + + if (m_completed && m_usbEvents.isRunning()) { + // Avoid race conditions + m_usbEvents.waitForFinished(); + } + if (!m_usbEvents.isRunning()) { + m_completed = false; + m_usbEvents = QtConcurrent::run(handleUsbEvents, static_cast(m_ctx), &m_completed); + } + m_callbackHandles.insert(handle); + return handle; +} + +void DeviceListenerLibUsb::deregisterHotplugCallback(int handle) +{ + if (!m_ctx || !m_callbackHandles.contains(handle)) { + return; + } + libusb_hotplug_deregister_callback(static_cast(m_ctx), handle); + m_callbackHandles.remove(handle); + + if (m_callbackHandles.isEmpty() && m_usbEvents.isRunning()) { + m_completed = true; + m_usbEvents.waitForFinished(); + } +} + +void DeviceListenerLibUsb::deregisterAllHotplugCallbacks() +{ + while (!m_callbackHandles.isEmpty()) { + deregisterHotplugCallback(*m_callbackHandles.constBegin()); + } +} diff --git a/src/gui/osutils/nixutils/DeviceListenerLibUsb.h b/src/gui/osutils/nixutils/DeviceListenerLibUsb.h new file mode 100644 index 000000000..13257e21c --- /dev/null +++ b/src/gui/osutils/nixutils/DeviceListenerLibUsb.h @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef DEVICELISTENER_LIBUSB_H +#define DEVICELISTENER_LIBUSB_H + +#define DEVICELISTENER_IMPL DeviceListenerLibUsb + +#include +#include +#include +#include + +class QUuid; + +class DeviceListenerLibUsb : public QObject +{ + Q_OBJECT + +public: + explicit DeviceListenerLibUsb(QWidget* parent); + DeviceListenerLibUsb(const DeviceListenerLibUsb&) = delete; + ~DeviceListenerLibUsb() override; + + int registerHotplugCallback(bool arrived, bool left, int vendorId = -1, int productId = -1, const QUuid* = nullptr); + void deregisterHotplugCallback(int handle); + void deregisterAllHotplugCallbacks(); + +signals: + void devicePlugged(bool state, void* ctx, void* device); + +private: + void* m_ctx; + QSet m_callbackHandles; + QFuture m_usbEvents; + QAtomicInt m_completed; +}; + +#endif // DEVICELISTENER_LIBUSB_H diff --git a/src/gui/osutils/nixutils/NixUtils.cpp b/src/gui/osutils/nixutils/NixUtils.cpp index d0fa84f3c..030b54582 100644 --- a/src/gui/osutils/nixutils/NixUtils.cpp +++ b/src/gui/osutils/nixutils/NixUtils.cpp @@ -17,6 +17,8 @@ #include "NixUtils.h" +#include "config-keepassx.h" + #include #include #include @@ -24,6 +26,7 @@ #include #include #include +#ifdef WITH_XC_X11 #include #include @@ -44,6 +47,7 @@ namespace return 1; } } // namespace +#endif QPointer NixUtils::m_instance = nullptr; @@ -59,8 +63,10 @@ NixUtils* NixUtils::instance() NixUtils::NixUtils(QObject* parent) : OSUtilsBase(parent) { +#ifdef WITH_XC_X11 dpy = QX11Info::display(); rootWindow = QX11Info::appRootWindow(); +#endif // notify about system color scheme changes QDBusConnection sessionBus = QDBusConnection::sessionBus(); @@ -70,6 +76,11 @@ NixUtils::NixUtils(QObject* parent) "SettingChanged", this, SLOT(handleColorSchemeChanged(QString, QString, QDBusVariant))); + + QDBusMessage msg = QDBusMessage::createMethodCall( + "org.freedesktop.portal.Desktop", "/org/freedesktop/portal/desktop", "org.freedesktop.portal.Settings", "Read"); + msg << QVariant("org.freedesktop.appearance") << QVariant("color-scheme"); + sessionBus.callWithCallback(msg, this, SLOT(handleColorSchemeRead(QDBusVariant))); } NixUtils::~NixUtils() @@ -79,7 +90,7 @@ NixUtils::~NixUtils() bool NixUtils::isDarkMode() const { // prefer freedesktop "org.freedesktop.appearance color-scheme" setting - if (m_systemColorschemePref != ColorschemePref::PreferNone) { + if (m_systemColorschemePrefExists) { return m_systemColorschemePref == ColorschemePref::PreferDark; } @@ -128,15 +139,15 @@ void NixUtils::setLaunchAtStartup(bool enable) const QString appImagePath = QString::fromLocal8Bit(qgetenv("APPIMAGE")); const bool isAppImage = !appImagePath.isNull() && QFile::exists(appImagePath); - const QString executeablePath = isAppImage ? appImagePath : QApplication::applicationFilePath(); + const QString executeablePathOrName = isAppImage ? appImagePath : QApplication::applicationName().toLower(); QTextStream stream(&desktopFile); stream.setCodec("UTF-8"); stream << QStringLiteral("[Desktop Entry]") << '\n' << QStringLiteral("Name=") << QApplication::applicationDisplayName() << '\n' << QStringLiteral("GenericName=") << tr("Password Manager") << '\n' - << QStringLiteral("Exec=") << executeablePath << '\n' - << QStringLiteral("TryExec=") << executeablePath << '\n' + << QStringLiteral("Exec=") << executeablePathOrName << '\n' + << QStringLiteral("TryExec=") << executeablePathOrName << '\n' << QStringLiteral("Icon=") << QApplication::applicationName().toLower() << '\n' << QStringLiteral("StartupWMClass=keepassxc") << '\n' << QStringLiteral("StartupNotify=true") << '\n' @@ -157,6 +168,7 @@ void NixUtils::setLaunchAtStartup(bool enable) bool NixUtils::isCapslockEnabled() { +#ifdef WITH_XC_X11 QPlatformNativeInterface* native = QGuiApplication::platformNativeInterface(); auto* display = native->nativeResourceForWindow("display", nullptr); if (!display) { @@ -170,6 +182,7 @@ bool NixUtils::isCapslockEnabled() return ((state & 1u) != 0); } } +#endif // TODO: Wayland @@ -183,6 +196,7 @@ void NixUtils::registerNativeEventFilter() bool NixUtils::nativeEventFilter(const QByteArray& eventType, void* message, long*) { +#ifdef WITH_XC_X11 if (eventType != QByteArrayLiteral("xcb_generic_event_t")) { return false; } @@ -195,12 +209,16 @@ bool NixUtils::nativeEventFilter(const QByteArray& eventType, void* message, lon auto modifierMask = ControlMask | ShiftMask | Mod1Mask | Mod4Mask; return triggerGlobalShortcut(keyPressEvent->detail, keyPressEvent->state & modifierMask); } - +#else + Q_UNUSED(eventType) + Q_UNUSED(message) +#endif return false; } bool NixUtils::triggerGlobalShortcut(uint keycode, uint modifiers) { +#ifdef WITH_XC_X11 QHashIterator> i(m_globalShortcuts); while (i.hasNext()) { i.next(); @@ -209,11 +227,16 @@ bool NixUtils::triggerGlobalShortcut(uint keycode, uint modifiers) return true; } } +#else + Q_UNUSED(keycode) + Q_UNUSED(modifiers) +#endif return false; } bool NixUtils::registerGlobalShortcut(const QString& name, Qt::Key key, Qt::KeyboardModifiers modifiers, QString* error) { +#ifdef WITH_XC_X11 auto keycode = XKeysymToKeycode(dpy, qcharToNativeKeyCode(key)); auto modifierscode = qtToNativeModifiers(modifiers); @@ -254,11 +277,18 @@ bool NixUtils::registerGlobalShortcut(const QString& name, Qt::Key key, Qt::Keyb gs->nativeKeyCode = keycode; gs->nativeModifiers = modifierscode; m_globalShortcuts.insert(name, gs); +#else + Q_UNUSED(name) + Q_UNUSED(key) + Q_UNUSED(modifiers) + Q_UNUSED(error) +#endif return true; } bool NixUtils::unregisterGlobalShortcut(const QString& name) { +#ifdef WITH_XC_X11 if (!m_globalShortcuts.contains(name)) { return false; } @@ -270,13 +300,28 @@ bool NixUtils::unregisterGlobalShortcut(const QString& name) XUngrabKey(dpy, gs->nativeKeyCode, gs->nativeModifiers | Mod2Mask | LockMask, rootWindow); m_globalShortcuts.remove(name); +#else + Q_UNUSED(name) +#endif return true; } +void NixUtils::handleColorSchemeRead(QDBusVariant value) +{ + value = qvariant_cast(value.variant()); + setColorScheme(value); +} + void NixUtils::handleColorSchemeChanged(QString ns, QString key, QDBusVariant value) { if (ns == "org.freedesktop.appearance" && key == "color-scheme") { - m_systemColorschemePref = static_cast(value.variant().toInt()); - emit interfaceThemeChanged(); + setColorScheme(value); } } + +void NixUtils::setColorScheme(QDBusVariant value) +{ + m_systemColorschemePref = static_cast(value.variant().toInt()); + m_systemColorschemePrefExists = true; + emit interfaceThemeChanged(); +} diff --git a/src/gui/osutils/nixutils/NixUtils.h b/src/gui/osutils/nixutils/NixUtils.h index ed54f9b53..e3a17b950 100644 --- a/src/gui/osutils/nixutils/NixUtils.h +++ b/src/gui/osutils/nixutils/NixUtils.h @@ -50,6 +50,7 @@ public: } private slots: + void handleColorSchemeRead(QDBusVariant value); void handleColorSchemeChanged(QString ns, QString key, QDBusVariant value); private: @@ -79,6 +80,9 @@ private: PreferLight }; ColorschemePref m_systemColorschemePref = ColorschemePref::PreferNone; + bool m_systemColorschemePrefExists; + + void setColorScheme(QDBusVariant value); Q_DISABLE_COPY(NixUtils) }; diff --git a/src/gui/osutils/nixutils/ScreenLockListenerDBus.h b/src/gui/osutils/nixutils/ScreenLockListenerDBus.h index e8ba127aa..4ece8134f 100644 --- a/src/gui/osutils/nixutils/ScreenLockListenerDBus.h +++ b/src/gui/osutils/nixutils/ScreenLockListenerDBus.h @@ -17,6 +17,7 @@ #ifndef SCREENLOCKLISTENERDBUS_H #define SCREENLOCKLISTENERDBUS_H + #include "gui/osutils/ScreenLockListenerPrivate.h" #include @@ -24,7 +25,7 @@ class ScreenLockListenerDBus : public ScreenLockListenerPrivate { Q_OBJECT public: - explicit ScreenLockListenerDBus(QWidget* parent = nullptr); + explicit ScreenLockListenerDBus(QWidget* parent); private slots: void gnomeSessionStatusChanged(uint status); diff --git a/src/gui/osutils/winutils/DeviceListenerWin.cpp b/src/gui/osutils/winutils/DeviceListenerWin.cpp new file mode 100644 index 000000000..dfd1b610d --- /dev/null +++ b/src/gui/osutils/winutils/DeviceListenerWin.cpp @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "DeviceListenerWin.h" + +#include + +#include +#include + +#include + +DeviceListenerWin::DeviceListenerWin(QWidget* parent) + : QObject(parent) +{ + // Event listeners need a valid window reference + Q_ASSERT(parent); + QCoreApplication::instance()->installNativeEventFilter(this); +} + +DeviceListenerWin::~DeviceListenerWin() +{ + deregisterHotplugCallback(); +} + +void DeviceListenerWin::registerHotplugCallback(bool arrived, + bool left, + int vendorId, + int productId, + const QUuid* deviceClass) +{ + Q_ASSERT(deviceClass); + + if (m_deviceNotifyHandle) { + deregisterHotplugCallback(); + } + + QString regex = R"(^\\{2}\?\\[A-Z]+#)"; + if (vendorId > 0) { + regex += QString("VID_%1&").arg(vendorId, 0, 16).toUpper(); + if (productId > 0) { + regex += QString("PID_%1&").arg(productId, 0, 16).toUpper(); + } + } + m_deviceIdMatch = QRegularExpression(regex); + + DEV_BROADCAST_DEVICEINTERFACE_W notificationFilter{ + sizeof(DEV_BROADCAST_DEVICEINTERFACE_W), DBT_DEVTYP_DEVICEINTERFACE, 0u, *deviceClass, {0x00}}; + auto w = reinterpret_cast(qobject_cast(parent())->winId()); + m_deviceNotifyHandle = RegisterDeviceNotificationW(w, ¬ificationFilter, DEVICE_NOTIFY_WINDOW_HANDLE); + if (!m_deviceNotifyHandle) { + qWarning("Failed to register device notification handle."); + return; + } + m_handleArrival = arrived; + m_handleRemoval = left; +} + +void DeviceListenerWin::deregisterHotplugCallback() +{ + if (m_deviceNotifyHandle) { + UnregisterDeviceNotification(m_deviceNotifyHandle); + m_deviceNotifyHandle = nullptr; + m_handleArrival = false; + m_handleRemoval = false; + } +} + +bool DeviceListenerWin::nativeEventFilter(const QByteArray& eventType, void* message, long*) +{ + if (eventType != "windows_generic_MSG") { + return false; + } + + const auto* m = static_cast(message); + if (m->message != WM_DEVICECHANGE) { + return false; + } + if ((m_handleArrival && m->wParam == DBT_DEVICEARRIVAL) + || (m_handleRemoval && m->wParam == DBT_DEVICEREMOVECOMPLETE)) { + const auto pBrHdr = reinterpret_cast(m->lParam); + const auto pDevIface = reinterpret_cast(pBrHdr); + const auto name = QString::fromWCharArray(pDevIface->dbcc_name, pDevIface->dbcc_size); + if (m_deviceIdMatch.match(name).hasMatch()) { + emit devicePlugged(m->wParam == DBT_DEVICEARRIVAL, nullptr, pDevIface); + return true; + } + } + + return false; +} diff --git a/src/gui/osutils/winutils/DeviceListenerWin.h b/src/gui/osutils/winutils/DeviceListenerWin.h new file mode 100644 index 000000000..527555d2f --- /dev/null +++ b/src/gui/osutils/winutils/DeviceListenerWin.h @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef DEVICELISTENER_WIN_H +#define DEVICELISTENER_WIN_H + +#define DEVICELISTENER_IMPL DeviceListenerWin + +#include +#include +#include +#include + +class DeviceListenerWin : public QObject, public QAbstractNativeEventFilter +{ + Q_OBJECT + +public: + static constexpr QUuid DEV_CLS_USB = + QUuid(0xa5dcbf10L, 0x6530, 0x11d2, 0x90, 0x1f, 0x00, 0xc0, 0x4f, 0xB9, 0x51, 0xed); + static constexpr QUuid DEV_CLS_KEYBOARD = + QUuid(0x884b96c3L, 0x56ef, 0x11d1, 0xbc, 0x8c, 0x00, 0xa0, 0xc9, 0x14, 0x05, 0xdd); + static constexpr QUuid DEV_CLS_CCID = + QUuid(0x50dd5230L, 0xba8a, 0x11d1, 0xbf, 0x5d, 0x00, 0x00, 0xf8, 0x05, 0xf5, 0x30); + + explicit DeviceListenerWin(QWidget* parent); + DeviceListenerWin(const DeviceListenerWin&) = delete; + ~DeviceListenerWin() override; + + void registerHotplugCallback(bool arrived, + bool left, + int vendorId = -1, + int productId = -1, + const QUuid* deviceClass = nullptr); + void deregisterHotplugCallback(); + + bool nativeEventFilter(const QByteArray& eventType, void* message, long*) override; + +signals: + void devicePlugged(bool state, void* ctx, void* device); + +private: + void* m_deviceNotifyHandle = nullptr; + bool m_handleArrival = false; + bool m_handleRemoval = false; + QRegularExpression m_deviceIdMatch; +}; + +#endif // DEVICELISTENER_WIN_H diff --git a/src/gui/osutils/winutils/ScreenLockListenerWin.h b/src/gui/osutils/winutils/ScreenLockListenerWin.h index edf6c2936..e33f0e354 100644 --- a/src/gui/osutils/winutils/ScreenLockListenerWin.h +++ b/src/gui/osutils/winutils/ScreenLockListenerWin.h @@ -17,8 +17,8 @@ #ifndef SCREENLOCKLISTENERWIN_H #define SCREENLOCKLISTENERWIN_H + #include -#include #include #include "gui/osutils/ScreenLockListenerPrivate.h" @@ -27,9 +27,9 @@ class ScreenLockListenerWin : public ScreenLockListenerPrivate, public QAbstract { Q_OBJECT public: - explicit ScreenLockListenerWin(QWidget* parent = nullptr); + explicit ScreenLockListenerWin(QWidget* parent); ~ScreenLockListenerWin(); - bool nativeEventFilter(const QByteArray& eventType, void* message, long*) override; + virtual bool nativeEventFilter(const QByteArray& eventType, void* message, long* result) override; private: void* m_powerNotificationHandle; diff --git a/src/gui/osutils/winutils/WinUtils.cpp b/src/gui/osutils/winutils/WinUtils.cpp index b2dd9b967..188b91348 100644 --- a/src/gui/osutils/winutils/WinUtils.cpp +++ b/src/gui/osutils/winutils/WinUtils.cpp @@ -58,11 +58,12 @@ bool WinUtils::canPreventScreenCapture() const bool WinUtils::setPreventScreenCapture(QWindow* window, bool prevent) const { + bool ret = true; if (window) { HWND handle = reinterpret_cast(window->winId()); - return SetWindowDisplayAffinity(handle, prevent ? WDA_EXCLUDEFROMCAPTURE : WDA_NONE); + ret = SetWindowDisplayAffinity(handle, prevent ? WDA_EXCLUDEFROMCAPTURE : WDA_NONE); } - return false; + return ret; } /** diff --git a/src/gui/passkeys/PasskeyExportDialog.cpp b/src/gui/passkeys/PasskeyExportDialog.cpp new file mode 100644 index 000000000..84e984df6 --- /dev/null +++ b/src/gui/passkeys/PasskeyExportDialog.cpp @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "PasskeyExportDialog.h" +#include "ui_PasskeyExportDialog.h" + +#include "core/Entry.h" +#include "gui/FileDialog.h" + +PasskeyExportDialog::PasskeyExportDialog(QWidget* parent) + : QDialog(parent) + , m_ui(new Ui::PasskeyExportDialog()) +{ + setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint); + + m_ui->setupUi(this); + + connect(m_ui->exportButton, SIGNAL(clicked()), SLOT(accept())); + connect(m_ui->cancelButton, SIGNAL(clicked()), SLOT(reject())); + connect(m_ui->itemsTable->selectionModel(), + SIGNAL(selectionChanged(QItemSelection, QItemSelection)), + this, + SLOT(selectionChanged())); +} + +PasskeyExportDialog::~PasskeyExportDialog() +{ +} + +void PasskeyExportDialog::setEntries(const QList& items) +{ + m_ui->itemsTable->setRowCount(items.count()); + m_ui->itemsTable->setColumnCount(1); + + int row = 0; + for (const auto& entry : items) { + auto item = new QTableWidgetItem(); + item->setText(entry->title() + " - " + entry->username()); + item->setData(Qt::UserRole, row); + item->setFlags(item->flags() | Qt::ItemIsSelectable); + m_ui->itemsTable->setItem(row, 0, item); + + ++row; + } + m_ui->itemsTable->resizeColumnsToContents(); + m_ui->itemsTable->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch); + m_ui->itemsTable->selectAll(); + m_ui->exportButton->setFocus(); +} + +QList PasskeyExportDialog::getSelectedItems() const +{ + QList selected; + for (int i = 0; i < m_ui->itemsTable->rowCount(); ++i) { + auto item = m_ui->itemsTable->item(i, 0); + if (item->isSelected()) { + selected.append(item); + } + } + return selected; +} + +void PasskeyExportDialog::selectionChanged() +{ + auto indexes = m_ui->itemsTable->selectionModel()->selectedIndexes(); + m_ui->exportButton->setEnabled(!indexes.isEmpty()); + + if (indexes.isEmpty()) { + m_ui->exportButton->clearFocus(); + m_ui->cancelButton->setFocus(); + } +} + +QString PasskeyExportDialog::selectExportFolder() +{ + return fileDialog()->getExistingDirectory(this, tr("Export to folder"), FileDialog::getLastDir("passkey")); +} diff --git a/src/gui/passkeys/PasskeyExportDialog.h b/src/gui/passkeys/PasskeyExportDialog.h new file mode 100644 index 000000000..7104583ad --- /dev/null +++ b/src/gui/passkeys/PasskeyExportDialog.h @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSXC_PASSKEYEXPORTDIALOG_H +#define KEEPASSXC_PASSKEYEXPORTDIALOG_H + +#include +#include + +class Entry; + +namespace Ui +{ + class PasskeyExportDialog; +} + +class PasskeyExportDialog : public QDialog +{ + Q_OBJECT + +public: + explicit PasskeyExportDialog(QWidget* parent = nullptr); + ~PasskeyExportDialog() override; + + void setEntries(const QList& items); + QList getSelectedItems() const; + QString selectExportFolder(); + +private slots: + void selectionChanged(); + +private: + QScopedPointer m_ui; + QList m_entriesToConfirm; + QList m_allowedEntries; +}; + +#endif // KEEPASSXC_PASSKEYEXPORTDIALOG_H diff --git a/src/gui/passkeys/PasskeyExportDialog.ui b/src/gui/passkeys/PasskeyExportDialog.ui new file mode 100755 index 000000000..c974ebaac --- /dev/null +++ b/src/gui/passkeys/PasskeyExportDialog.ui @@ -0,0 +1,121 @@ + + + PasskeyExportDialog + + + + 0 + 0 + 540 + 320 + + + + KeePassXC - Passkey Export + + + + + + + 75 + true + + + + Export the following Passkey entries. + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + 75 + true + + + + Filenames will be generated with title and .passkey file extension. + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + QAbstractItemView::NoEditTriggers + + + false + + + QAbstractItemView::ExtendedSelection + + + QAbstractItemView::SelectRows + + + false + + + false + + + false + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Cancel + + + true + + + + + + + Export entries + + + Export Selected + + + true + + + true + + + + + + + + + + diff --git a/src/gui/passkeys/PasskeyExporter.cpp b/src/gui/passkeys/PasskeyExporter.cpp new file mode 100644 index 000000000..e1483930f --- /dev/null +++ b/src/gui/passkeys/PasskeyExporter.cpp @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2024 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "PasskeyExporter.h" +#include "PasskeyExportDialog.h" + +#include "browser/BrowserPasskeys.h" +#include "core/Entry.h" +#include "core/Tools.h" +#include "gui/MessageBox.h" +#include +#include +#include + +void PasskeyExporter::showExportDialog(const QList& items) +{ + if (items.isEmpty()) { + return; + } + + PasskeyExportDialog passkeyExportDialog; + passkeyExportDialog.setEntries(items); + auto ret = passkeyExportDialog.exec(); + + if (ret == QDialog::Accepted) { + // Select folder + auto folder = passkeyExportDialog.selectExportFolder(); + if (folder.isEmpty()) { + return; + } + + const auto selectedItems = passkeyExportDialog.getSelectedItems(); + for (const auto& item : selectedItems) { + auto entry = items[item->row()]; + exportSelectedEntry(entry, folder); + } + } +} + +/** + * Creates an export file for a Passkey credential + * + * File contents in JSON: + * { + * "privateKey": , + * "relyingParty: , + * "url": , + * "userHandle": , + * "credentialId": , + * "username:" + * } + */ +void PasskeyExporter::exportSelectedEntry(const Entry* entry, const QString& folder) +{ + const auto fullPath = QString("%1/%2.passkey").arg(folder, Tools::cleanFilename(entry->title())); + if (QFile::exists(fullPath)) { + auto dialogResult = MessageBox::warning(nullptr, + tr("KeePassXC: Passkey Export"), + tr("File \"%1.passkey\" already exists.\n" + "Do you want to overwrite it?\n") + .arg(entry->title()), + MessageBox::Yes | MessageBox::No); + + if (dialogResult != MessageBox::Yes) { + return; + } + } + + QFile passkeyFile(fullPath); + if (!passkeyFile.open(QIODevice::WriteOnly)) { + MessageBox::information( + nullptr, tr("Cannot open file"), tr("Cannot open file \"%1\" for writing.").arg(fullPath)); + return; + } + + QJsonObject passkeyObject; + passkeyObject["relyingParty"] = entry->attributes()->value(BrowserPasskeys::KPEX_PASSKEY_RELYING_PARTY); + passkeyObject["url"] = entry->url(); + passkeyObject["username"] = entry->attributes()->value(BrowserPasskeys::KPEX_PASSKEY_USERNAME); + passkeyObject["credentialId"] = entry->attributes()->value(BrowserPasskeys::KPEX_PASSKEY_CREDENTIAL_ID); + passkeyObject["userHandle"] = entry->attributes()->value(BrowserPasskeys::KPEX_PASSKEY_USER_HANDLE); + passkeyObject["privateKey"] = entry->attributes()->value(BrowserPasskeys::KPEX_PASSKEY_PRIVATE_KEY_PEM); + + QJsonDocument document(passkeyObject); + if (passkeyFile.write(document.toJson()) < 0) { + MessageBox::information( + nullptr, tr("Cannot write to file"), tr("Cannot open file \"%1\" for writing.").arg(fullPath)); + } + + passkeyFile.close(); +} diff --git a/src/gui/passkeys/PasskeyExporter.h b/src/gui/passkeys/PasskeyExporter.h new file mode 100644 index 000000000..4214cbea3 --- /dev/null +++ b/src/gui/passkeys/PasskeyExporter.h @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSXC_PASSKEYEXPORTER_H +#define KEEPASSXC_PASSKEYEXPORTER_H + +#include +#include + +class Entry; + +class PasskeyExporter : public QObject +{ + Q_OBJECT + +public: + explicit PasskeyExporter() = default; + + void showExportDialog(const QList& items); + +private: + void exportSelectedEntry(const Entry* entry, const QString& folder); +}; + +#endif // KEEPASSXC_PASSKEYEXPORTER_H diff --git a/src/gui/passkeys/PasskeyImportDialog.cpp b/src/gui/passkeys/PasskeyImportDialog.cpp new file mode 100644 index 000000000..2762df510 --- /dev/null +++ b/src/gui/passkeys/PasskeyImportDialog.cpp @@ -0,0 +1,185 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "PasskeyImportDialog.h" +#include "ui_PasskeyImportDialog.h" + +#include "browser/BrowserService.h" +#include "core/Metadata.h" +#include "gui/MainWindow.h" +#include +#include + +PasskeyImportDialog::PasskeyImportDialog(QWidget* parent) + : QDialog(parent) + , m_ui(new Ui::PasskeyImportDialog()) +{ + setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint); + + m_ui->setupUi(this); + + connect(this, SIGNAL(updateGroups()), this, SLOT(addGroups())); + connect(this, SIGNAL(updateEntries()), this, SLOT(addEntries())); + connect(m_ui->importButton, SIGNAL(clicked()), SLOT(accept())); + connect(m_ui->cancelButton, SIGNAL(clicked()), SLOT(reject())); + connect(m_ui->selectDatabaseCombobBox, SIGNAL(currentIndexChanged(int)), SLOT(changeDatabase(int))); + connect(m_ui->selectEntryComboBox, SIGNAL(currentIndexChanged(int)), SLOT(changeEntry(int))); + connect(m_ui->selectGroupComboBox, SIGNAL(currentIndexChanged(int)), SLOT(changeGroup(int))); +} + +PasskeyImportDialog::~PasskeyImportDialog() +{ +} + +void PasskeyImportDialog::setInfo(const QString& relyingParty, + const QString& username, + const QSharedPointer& database, + bool isEntry) +{ + m_ui->relyingPartyLabel->setText(tr("Relying Party: %1").arg(relyingParty)); + m_ui->usernameLabel->setText(tr("Username: %1").arg(username)); + + if (isEntry) { + m_ui->verticalLayout->setSizeConstraint(QLayout::SetFixedSize); + m_ui->infoLabel->setText(tr("Import the following Passkey to this entry:")); + m_ui->groupBox->setVisible(false); + } + + m_selectedDatabase = database; + addDatabases(); + addGroups(); + + auto openDatabaseCount = 0; + for (auto dbWidget : getMainWindow()->getOpenDatabases()) { + if (dbWidget && !dbWidget->isLocked()) { + openDatabaseCount++; + } + } + m_ui->selectDatabaseCombobBox->setEnabled(openDatabaseCount > 1); +} + +QSharedPointer PasskeyImportDialog::getSelectedDatabase() const +{ + return m_selectedDatabase; +} + +QUuid PasskeyImportDialog::getSelectedEntryUuid() const +{ + return m_selectedEntryUuid; +} + +QUuid PasskeyImportDialog::getSelectedGroupUuid() const +{ + return m_selectedGroupUuid; +} + +bool PasskeyImportDialog::useDefaultGroup() const +{ + return m_selectedGroupUuid.isNull(); +} + +bool PasskeyImportDialog::createNewEntry() const +{ + return m_selectedEntryUuid.isNull(); +} + +void PasskeyImportDialog::addDatabases() +{ + auto currentDatabaseIndex = 0; + const auto openDatabases = browserService()->getOpenDatabases(); + const auto currentDatabase = browserService()->getDatabase(); + + m_ui->selectDatabaseCombobBox->clear(); + for (const auto& db : openDatabases) { + m_ui->selectDatabaseCombobBox->addItem(db->metadata()->name(), db->rootGroup()->uuid()); + if (db->rootGroup()->uuid() == currentDatabase->rootGroup()->uuid()) { + currentDatabaseIndex = m_ui->selectDatabaseCombobBox->count() - 1; + } + } + + m_ui->selectDatabaseCombobBox->setCurrentIndex(currentDatabaseIndex); +} + +void PasskeyImportDialog::addEntries() +{ + if (!m_selectedDatabase || !m_selectedDatabase->rootGroup()) { + return; + } + + m_ui->selectEntryComboBox->clear(); + m_ui->selectEntryComboBox->addItem(tr("Create new entry"), {}); + + const auto group = m_selectedDatabase->rootGroup()->findGroupByUuid(m_selectedGroupUuid); + if (!group) { + return; + } + + // Collect all entries in the group and resolve the title + QList> entries; + for (const auto entry : group->entries()) { + if (!entry || entry->isRecycled()) { + continue; + } + entries.append({entry->resolveMultiplePlaceholders(entry->title()), entry->uuid()}); + } + + // Sort entries by title + std::sort(entries.begin(), entries.end(), [](const auto& a, const auto& b) { + return a.first.compare(b.first, Qt::CaseInsensitive) < 0; + }); + + // Add sorted entries to the combobox + for (const auto& pair : entries) { + m_ui->selectEntryComboBox->addItem(pair.first, pair.second); + } +} + +void PasskeyImportDialog::addGroups() +{ + if (!m_selectedDatabase) { + return; + } + + m_ui->selectGroupComboBox->clear(); + m_ui->selectGroupComboBox->addItem(tr("Default Passkeys group (Imported Passkeys)"), {}); + + for (const auto& group : m_selectedDatabase->rootGroup()->groupsRecursive(true)) { + if (!group || group->isRecycled() || group == m_selectedDatabase->metadata()->recycleBin()) { + continue; + } + + m_ui->selectGroupComboBox->addItem(group->fullPath(), group->uuid()); + } +} + +void PasskeyImportDialog::changeDatabase(int index) +{ + m_selectedDatabaseUuid = m_ui->selectDatabaseCombobBox->itemData(index).value(); + m_selectedDatabase = browserService()->getDatabase(m_selectedDatabaseUuid); + emit updateGroups(); +} + +void PasskeyImportDialog::changeEntry(int index) +{ + m_selectedEntryUuid = m_ui->selectEntryComboBox->itemData(index).value(); +} + +void PasskeyImportDialog::changeGroup(int index) +{ + m_selectedGroupUuid = m_ui->selectGroupComboBox->itemData(index).value(); + emit updateEntries(); +} diff --git a/src/gui/passkeys/PasskeyImportDialog.h b/src/gui/passkeys/PasskeyImportDialog.h new file mode 100644 index 000000000..9a7c4437c --- /dev/null +++ b/src/gui/passkeys/PasskeyImportDialog.h @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSXC_PASSKEYIMPORTDIALOG_H +#define KEEPASSXC_PASSKEYIMPORTDIALOG_H + +#include "core/Database.h" +#include "core/Group.h" +#include +#include + +namespace Ui +{ + class PasskeyImportDialog; +} + +class PasskeyImportDialog : public QDialog +{ + Q_OBJECT + +public: + explicit PasskeyImportDialog(QWidget* parent = nullptr); + ~PasskeyImportDialog() override; + + void setInfo(const QString& relyingParty, + const QString& username, + const QSharedPointer& database, + bool isEntry); + QSharedPointer getSelectedDatabase() const; + QUuid getSelectedEntryUuid() const; + QUuid getSelectedGroupUuid() const; + bool useDefaultGroup() const; + bool createNewEntry() const; + +private: + void addDatabases(); + +signals: + void updateEntries(); + void updateGroups(); + +private slots: + void addEntries(); + void addGroups(); + void changeDatabase(int index); + void changeEntry(int index); + void changeGroup(int index); + +private: + QScopedPointer m_ui; + QSharedPointer m_selectedDatabase; + QUuid m_selectedDatabaseUuid; + QUuid m_selectedEntryUuid; + QUuid m_selectedGroupUuid; +}; + +#endif // KEEPASSXC_PASSKEYIMPORTDIALOG_H diff --git a/src/gui/passkeys/PasskeyImportDialog.ui b/src/gui/passkeys/PasskeyImportDialog.ui new file mode 100755 index 000000000..ecca97b14 --- /dev/null +++ b/src/gui/passkeys/PasskeyImportDialog.ui @@ -0,0 +1,174 @@ + + + PasskeyImportDialog + + + + 0 + 0 + 500 + 300 + + + + + 0 + 0 + + + + + 400 + 300 + + + + KeePassXC - Passkey Import + + + + + + + + + true + + + + Import the following Passkey: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Relying Party: %1 + + + Qt::PlainText + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Username: %1 + + + Qt::PlainText + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + + + + + Database + + + + + + + + + + Group + + + + + + + + + + Entry + + + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 10 + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Cancel + + + true + + + + + + + Import Passkey + + + Import + + + true + + + true + + + + + + + + + + diff --git a/src/gui/passkeys/PasskeyImporter.cpp b/src/gui/passkeys/PasskeyImporter.cpp new file mode 100644 index 000000000..77e37c689 --- /dev/null +++ b/src/gui/passkeys/PasskeyImporter.cpp @@ -0,0 +1,171 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "PasskeyImporter.h" +#include "PasskeyImportDialog.h" +#include "browser/BrowserMessageBuilder.h" +#include "browser/BrowserPasskeys.h" +#include "browser/BrowserService.h" +#include "core/Entry.h" +#include "core/Group.h" +#include "core/Tools.h" +#include "gui/FileDialog.h" +#include "gui/MessageBox.h" +#include +#include + +static const QString IMPORTED_PASSKEYS_GROUP = QStringLiteral("Imported Passkeys"); + +void PasskeyImporter::importPasskey(QSharedPointer& database, Entry* entry) +{ + auto filter = QString("%1 (*.passkey);;%2 (*)").arg(tr("Passkey file"), tr("All files")); + auto fileName = + fileDialog()->getOpenFileName(nullptr, tr("Open Passkey file"), FileDialog::getLastDir("passkey"), filter); + if (fileName.isEmpty()) { + return; + } + + FileDialog::saveLastDir("passkey", fileName, true); + + QFile file(fileName); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + MessageBox::information( + nullptr, tr("Cannot open file"), tr("Cannot open file \"%1\" for reading.").arg(fileName)); + return; + } + + importSelectedFile(file, database, entry); +} + +void PasskeyImporter::importSelectedFile(QFile& file, QSharedPointer& database, Entry* entry) +{ + const auto fileData = file.readAll(); + const auto passkeyObject = browserMessageBuilder()->getJsonObject(fileData); + if (passkeyObject.isEmpty()) { + MessageBox::information(nullptr, + tr("Cannot import Passkey"), + tr("Cannot import Passkey file \"%1\". Data is missing.").arg(file.fileName())); + return; + } + + const auto privateKey = passkeyObject["privateKey"].toString(); + const auto missingKeys = Tools::getMissingValuesFromList(passkeyObject.keys(), + QStringList() << "relyingParty" + << "url" + << "username" + << "credentialId" + << "userHandle" + << "privateKey"); + + if (!missingKeys.isEmpty()) { + MessageBox::information(nullptr, + tr("Cannot import Passkey"), + tr("Cannot import Passkey file \"%1\".\nThe following data is missing:\n%2") + .arg(file.fileName(), missingKeys.join(", "))); + } else if (!privateKey.startsWith("-----BEGIN PRIVATE KEY-----") + || !privateKey.trimmed().endsWith("-----END PRIVATE KEY-----")) { + MessageBox::information( + nullptr, + tr("Cannot import Passkey"), + tr("Cannot import Passkey file \"%1\". Private key is missing or malformed.").arg(file.fileName())); + } else { + const auto relyingParty = passkeyObject["relyingParty"].toString(); + const auto url = passkeyObject["url"].toString(); + const auto username = passkeyObject["username"].toString(); + const auto credentialId = passkeyObject["credentialId"].toString(); + const auto userHandle = passkeyObject["userHandle"].toString(); + showImportDialog(database, url, relyingParty, username, credentialId, userHandle, privateKey, entry); + } +} + +void PasskeyImporter::showImportDialog(QSharedPointer& database, + const QString& url, + const QString& relyingParty, + const QString& username, + const QString& credentialId, + const QString& userHandle, + const QString& privateKey, + Entry* entry) +{ + PasskeyImportDialog passkeyImportDialog; + passkeyImportDialog.setInfo(relyingParty, username, database, entry != nullptr); + + auto ret = passkeyImportDialog.exec(); + if (ret != QDialog::Accepted) { + return; + } + + auto db = passkeyImportDialog.getSelectedDatabase(); + if (!db) { + db = database; + } + + // Store to entry if given directly + if (entry) { + browserService()->addPasskeyToEntry( + entry, relyingParty, relyingParty, username, credentialId, userHandle, privateKey); + return; + } + + // Import to entry selected instead of creating a new one + if (!passkeyImportDialog.createNewEntry()) { + auto groupUuid = passkeyImportDialog.getSelectedGroupUuid(); + auto group = db->rootGroup()->findGroupByUuid(groupUuid); + + if (group) { + auto selectedEntry = group->findEntryByUuid(passkeyImportDialog.getSelectedEntryUuid()); + if (selectedEntry) { + browserService()->addPasskeyToEntry( + selectedEntry, relyingParty, relyingParty, username, credentialId, userHandle, privateKey); + } + } + + return; + } + + // Group settings. Use default group "Imported Passkeys" if user did not select a specific one. + Group* group = nullptr; + + // Attempt to use the selected group + if (!passkeyImportDialog.useDefaultGroup()) { + auto groupUuid = passkeyImportDialog.getSelectedGroupUuid(); + group = db->rootGroup()->findGroupByUuid(groupUuid); + } + + // Use default group if requested or if the selected group does not exist + if (!group) { + group = getDefaultGroup(db); + } + + browserService()->addPasskeyToGroup( + group, url, relyingParty, relyingParty, username, credentialId, userHandle, privateKey); +} + +Group* PasskeyImporter::getDefaultGroup(QSharedPointer& database) const +{ + auto defaultGroup = database->rootGroup()->findGroupByPath(IMPORTED_PASSKEYS_GROUP); + + // Create the default group if it does not exist + if (!defaultGroup) { + defaultGroup = new Group(); + defaultGroup->setName(IMPORTED_PASSKEYS_GROUP); + defaultGroup->setUuid(QUuid::createUuid()); + defaultGroup->setParent(database->rootGroup()); + } + + return defaultGroup; +} diff --git a/src/gui/passkeys/PasskeyImporter.h b/src/gui/passkeys/PasskeyImporter.h new file mode 100644 index 000000000..9cc7fab48 --- /dev/null +++ b/src/gui/passkeys/PasskeyImporter.h @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSXC_PASSKEYIMPORTER_H +#define KEEPASSXC_PASSKEYIMPORTER_H + +#include "core/Database.h" +#include +#include +#include + +class Entry; + +class PasskeyImporter : public QObject +{ + Q_OBJECT + +public: + explicit PasskeyImporter() = default; + + void importPasskey(QSharedPointer& database, Entry* entry = nullptr); + +private: + void importSelectedFile(QFile& file, QSharedPointer& database, Entry* entry); + void showImportDialog(QSharedPointer& database, + const QString& url, + const QString& relyingParty, + const QString& username, + const QString& credentialId, + const QString& userHandle, + const QString& privateKey, + Entry* entry); + Group* getDefaultGroup(QSharedPointer& database) const; +}; + +#endif // KEEPASSXC_PASSKEYIMPORTER_H diff --git a/src/gui/reports/ReportsDialog.cpp b/src/gui/reports/ReportsDialog.cpp index e1da39839..9c361116f 100644 --- a/src/gui/reports/ReportsDialog.cpp +++ b/src/gui/reports/ReportsDialog.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 KeePassXC Team + * Copyright (C) 2023 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,6 +25,10 @@ #include "ReportsPageBrowserStatistics.h" #include "ReportsWidgetBrowserStatistics.h" #endif +#ifdef WITH_XC_BROWSER_PASSKEYS +#include "ReportsPagePasskeys.h" +#include "ReportsWidgetPasskeys.h" +#endif #include "ReportsWidgetHealthcheck.h" #include "ReportsWidgetHibp.h" @@ -64,6 +68,9 @@ ReportsDialog::ReportsDialog(QWidget* parent) , m_statPage(new ReportsPageStatistics()) #ifdef WITH_XC_BROWSER , m_browserStatPage(new ReportsPageBrowserStatistics()) +#endif +#ifdef WITH_XC_BROWSER_PASSKEYS + , m_passkeysPage(new ReportsPagePasskeys()) #endif , m_editEntryWidget(new EditEntryWidget(this)) { @@ -71,10 +78,13 @@ ReportsDialog::ReportsDialog(QWidget* parent) connect(m_ui->buttonBox, SIGNAL(rejected()), SLOT(reject())); addPage(m_statPage); + addPage(m_healthPage); +#ifdef WITH_XC_BROWSER_PASSKEYS + addPage(m_passkeysPage); +#endif #ifdef WITH_XC_BROWSER addPage(m_browserStatPage); #endif - addPage(m_healthPage); addPage(m_hibpPage); m_ui->stackedWidget->setCurrentIndex(0); @@ -91,6 +101,10 @@ ReportsDialog::ReportsDialog(QWidget* parent) connect(m_browserStatPage->m_browserWidget, SIGNAL(entryActivated(Entry*)), SLOT(entryActivationSignalReceived(Entry*))); +#endif +#ifdef WITH_XC_BROWSER_PASSKEYS + connect( + m_passkeysPage->m_passkeysWidget, SIGNAL(entryActivated(Entry*)), SLOT(entryActivationSignalReceived(Entry*))); #endif connect(m_editEntryWidget, SIGNAL(editFinished(bool)), SLOT(switchToMainView(bool))); } @@ -119,6 +133,15 @@ void ReportsDialog::addPage(QSharedPointer page) m_ui->categoryList->setCurrentCategory(category); } +#ifdef WITH_XC_BROWSER_PASSKEYS +void ReportsDialog::activatePasskeysPage() +{ + m_ui->stackedWidget->setCurrentWidget(m_passkeysPage->m_passkeysWidget); + auto index = m_ui->stackedWidget->currentIndex(); + m_ui->categoryList->setCurrentCategory(index); +} +#endif + void ReportsDialog::reject() { emit editFinished(true); @@ -153,6 +176,11 @@ void ReportsDialog::switchToMainView(bool previousDialogAccepted) if (m_sender == m_browserStatPage->m_browserWidget) { m_browserStatPage->m_browserWidget->calculateBrowserStatistics(); } +#endif +#ifdef WITH_XC_BROWSER_PASSKEYS + if (m_sender == m_passkeysPage->m_passkeysWidget) { + m_passkeysPage->m_passkeysWidget->updateEntries(); + } #endif } diff --git a/src/gui/reports/ReportsDialog.h b/src/gui/reports/ReportsDialog.h index 25cb623eb..8179ae283 100644 --- a/src/gui/reports/ReportsDialog.h +++ b/src/gui/reports/ReportsDialog.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 KeePassXC Team + * Copyright (C) 2023 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -32,6 +32,9 @@ class ReportsPageStatistics; #ifdef WITH_XC_BROWSER class ReportsPageBrowserStatistics; #endif +#ifdef WITH_XC_BROWSER_PASSKEYS +class ReportsPagePasskeys; +#endif namespace Ui { @@ -62,6 +65,9 @@ public: void load(const QSharedPointer& db); void addPage(QSharedPointer page); +#ifdef WITH_XC_BROWSER_PASSKEYS + void activatePasskeysPage(); +#endif signals: void editFinished(bool accepted); @@ -79,6 +85,9 @@ private: const QSharedPointer m_statPage; #ifdef WITH_XC_BROWSER const QSharedPointer m_browserStatPage; +#endif +#ifdef WITH_XC_BROWSER_PASSKEYS + const QSharedPointer m_passkeysPage; #endif QPointer m_editEntryWidget; QWidget* m_sender = nullptr; diff --git a/src/gui/reports/ReportsPagePasskeys.cpp b/src/gui/reports/ReportsPagePasskeys.cpp new file mode 100644 index 000000000..01af72266 --- /dev/null +++ b/src/gui/reports/ReportsPagePasskeys.cpp @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ReportsPagePasskeys.h" +#include "ReportsWidgetPasskeys.h" +#include "gui/Icons.h" + +ReportsPagePasskeys::ReportsPagePasskeys() + : m_passkeysWidget(new ReportsWidgetPasskeys()) +{ +} + +QString ReportsPagePasskeys::name() +{ + return QObject::tr("Passkeys"); +} + +QIcon ReportsPagePasskeys::icon() +{ + return icons()->icon("passkey"); +} + +QWidget* ReportsPagePasskeys::createWidget() +{ + return m_passkeysWidget; +} + +void ReportsPagePasskeys::loadSettings(QWidget* widget, QSharedPointer db) +{ + const auto settingsWidget = reinterpret_cast(widget); + settingsWidget->loadSettings(db); +} + +void ReportsPagePasskeys::saveSettings(QWidget* widget) +{ + const auto settingsWidget = reinterpret_cast(widget); + settingsWidget->saveSettings(); +} diff --git a/src/gui/reports/ReportsPagePasskeys.h b/src/gui/reports/ReportsPagePasskeys.h new file mode 100644 index 000000000..8be0aa7d0 --- /dev/null +++ b/src/gui/reports/ReportsPagePasskeys.h @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSXC_REPORTSPAGEPASSKEYS_H +#define KEEPASSXC_REPORTSPAGEPASSKEYS_H + +#include "ReportsDialog.h" +#include "ReportsWidgetPasskeys.h" + +class ReportsWidgetBrowserStatistics; + +class ReportsPagePasskeys : public IReportsPage +{ +public: + ReportsWidgetPasskeys* m_passkeysWidget; + + ReportsPagePasskeys(); + + QString name() override; + QIcon icon() override; + QWidget* createWidget() override; + void loadSettings(QWidget* widget, QSharedPointer db) override; + void saveSettings(QWidget* widget) override; +}; + +#endif // KEEPASSXC_REPORTSPAGEPASSKEYS_H diff --git a/src/gui/reports/ReportsWidgetBrowserStatistics.cpp b/src/gui/reports/ReportsWidgetBrowserStatistics.cpp index 1a3ad5d7e..a7724a7e4 100644 --- a/src/gui/reports/ReportsWidgetBrowserStatistics.cpp +++ b/src/gui/reports/ReportsWidgetBrowserStatistics.cpp @@ -112,8 +112,8 @@ ReportsWidgetBrowserStatistics::ReportsWidgetBrowserStatistics(QWidget* parent) connect( m_ui->browserStatisticsTableView, SIGNAL(doubleClicked(QModelIndex)), SLOT(emitEntryActivated(QModelIndex))); connect(m_ui->showEntriesWithUrlOnlyCheckBox, SIGNAL(stateChanged(int)), this, SLOT(calculateBrowserStatistics())); - connect(m_ui->showConnectedOnlyCheckBox, SIGNAL(stateChanged(int)), this, SLOT(calculateBrowserStatistics())); - connect(m_ui->excludeExpired, SIGNAL(stateChanged(int)), this, SLOT(calculateBrowserStatistics())); + connect(m_ui->showAllowDenyCheckBox, SIGNAL(stateChanged(int)), this, SLOT(calculateBrowserStatistics())); + connect(m_ui->showExpired, SIGNAL(stateChanged(int)), this, SLOT(calculateBrowserStatistics())); new QShortcut(Qt::Key_Delete, this, SLOT(deleteSelectedEntries())); } @@ -144,6 +144,9 @@ void ReportsWidgetBrowserStatistics::addStatisticsRow(bool hasUrls, if (excluded) { title.append(tr(" (Excluded)")); } + if (entry->isExpired()) { + title.append(tr(" (Expired)")); + } auto row = QList(); row << new QStandardItem(Icons::entryIconPixmap(entry), title); @@ -196,16 +199,15 @@ void ReportsWidgetBrowserStatistics::calculateBrowserStatistics() const QScopedPointer browserStatistics( AsyncTask::runAndWaitForFuture([this] { return new BrowserStatistics(m_db); })); - const auto showExcluded = m_ui->showConnectedOnlyCheckBox->isChecked(); + const auto showExpired = m_ui->showExpired->isChecked(); const auto showEntriesWithUrlOnly = m_ui->showEntriesWithUrlOnlyCheckBox->isChecked(); - const auto showOnlyEntriesWithSettings = m_ui->showConnectedOnlyCheckBox->isChecked(); + const auto showOnlyEntriesWithSettings = m_ui->showAllowDenyCheckBox->isChecked(); // Display the entries m_rowToEntry.clear(); for (const auto& item : browserStatistics->items()) { - auto excluded = item->exclude || (item->entry->isExpired() && m_ui->excludeExpired->isChecked()); - if (excluded && !showExcluded) { - // Exclude this entry from the report + // Check if the entry should be displayed + if (!showExpired && item->entry->isExpired()) { continue; } diff --git a/src/gui/reports/ReportsWidgetBrowserStatistics.ui b/src/gui/reports/ReportsWidgetBrowserStatistics.ui index 4236da6e1..9f631bef6 100644 --- a/src/gui/reports/ReportsWidgetBrowserStatistics.ui +++ b/src/gui/reports/ReportsWidgetBrowserStatistics.ui @@ -10,7 +10,7 @@ 379 - + 0 @@ -54,24 +54,27 @@ - - - - Exclude expired entries from the report - - - - Show only entries which have URL set + Only show entries that have a URL + + + true - + - Show only entries which have browser settings in custom data + Only show entries that have been explicitly allowed or denied + + + + + + + Show expired entries @@ -91,9 +94,8 @@ browserStatisticsTableView - excludeExpired showEntriesWithUrlOnlyCheckBox - showConnectedOnlyCheckBox + showAllowDenyCheckBox diff --git a/src/gui/reports/ReportsWidgetHealthcheck.cpp b/src/gui/reports/ReportsWidgetHealthcheck.cpp index d23829031..9bf122f9d 100644 --- a/src/gui/reports/ReportsWidgetHealthcheck.cpp +++ b/src/gui/reports/ReportsWidgetHealthcheck.cpp @@ -64,16 +64,16 @@ namespace return m_items; } - bool anyKnownBad() const + bool anyExcludedEntries() const { - return m_anyKnownBad; + return m_anyExcludedEntries; } private: QSharedPointer m_db; HealthChecker m_checker; QList> m_items; - bool m_anyKnownBad = false; + bool m_anyExcludedEntries = false; }; class ReportSortProxyModel : public QSortFilterProxyModel @@ -121,7 +121,7 @@ Health::Health(QSharedPointer db) // Evaluate this entry const auto item = QSharedPointer(new Item(group, entry, m_checker.evaluate(entry))); if (item->exclude) { - m_anyKnownBad = true; + m_anyExcludedEntries = true; } // Add entry if its password isn't at least "good" @@ -152,8 +152,8 @@ ReportsWidgetHealthcheck::ReportsWidgetHealthcheck(QWidget* parent) connect(m_ui->healthcheckTableView, SIGNAL(customContextMenuRequested(QPoint)), SLOT(customMenuRequested(QPoint))); connect(m_ui->healthcheckTableView, SIGNAL(doubleClicked(QModelIndex)), SLOT(emitEntryActivated(QModelIndex))); - connect(m_ui->showKnownBadCheckBox, SIGNAL(stateChanged(int)), this, SLOT(calculateHealth())); - connect(m_ui->excludeExpired, SIGNAL(stateChanged(int)), this, SLOT(calculateHealth())); + connect(m_ui->showExcluded, SIGNAL(stateChanged(int)), this, SLOT(calculateHealth())); + connect(m_ui->showExpired, SIGNAL(stateChanged(int)), this, SLOT(calculateHealth())); new QShortcut(Qt::Key_Delete, this, SLOT(deleteSelectedEntries())); } @@ -165,7 +165,7 @@ ReportsWidgetHealthcheck::~ReportsWidgetHealthcheck() void ReportsWidgetHealthcheck::addHealthRow(QSharedPointer health, Group* group, Entry* entry, - bool knownBad) + bool excluded) { QString descr, tip; QColor qualityColor; @@ -197,9 +197,12 @@ void ReportsWidgetHealthcheck::addHealthRow(QSharedPointer healt } auto title = entry->title(); - if (knownBad) { + if (excluded) { title.append(tr(" (Excluded)")); } + if (entry->isExpired()) { + title.append(tr(" (Expired)")); + } auto row = QList(); row << new QStandardItem(descr); @@ -217,7 +220,7 @@ void ReportsWidgetHealthcheck::addHealthRow(QSharedPointer healt // Set tooltips row[0]->setToolTip(tip); - if (knownBad) { + if (excluded) { row[1]->setToolTip(tr("This entry is being excluded from reports")); } row[4]->setToolTip(health->scoreDetails()); @@ -257,15 +260,12 @@ void ReportsWidgetHealthcheck::calculateHealth() // Perform the health check const QScopedPointer health(AsyncTask::runAndWaitForFuture([this] { return new Health(m_db); })); - // Display entries that are marked as "known bad"? - const auto showExcluded = m_ui->showKnownBadCheckBox->isChecked(); - // Display the entries m_rowToEntry.clear(); for (const auto& item : health->items()) { - auto excluded = item->exclude || (item->entry->isExpired() && m_ui->excludeExpired->isChecked()); - if (excluded && !showExcluded) { - // Exclude this entry from the report + // Check if the entry should be displayed + if ((!m_ui->showExcluded->isChecked() && item->exclude) + || (!m_ui->showExpired->isChecked() && item->entry->isExpired())) { continue; } @@ -285,13 +285,8 @@ void ReportsWidgetHealthcheck::calculateHealth() m_ui->healthcheckTableView->resizeColumnsToContents(); m_ui->healthcheckTableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Fixed); - // Show the "show known bad entries" checkbox if there's any known - // bad entry in the database. - if (health->anyKnownBad()) { - m_ui->showKnownBadCheckBox->show(); - } else { - m_ui->showKnownBadCheckBox->hide(); - } + // Only show the "show excluded" checkbox if there are any excluded entries in the database + m_ui->showExcluded->setVisible(health->anyExcludedEntries()); } void ReportsWidgetHealthcheck::emitEntryActivated(const QModelIndex& index) diff --git a/src/gui/reports/ReportsWidgetHealthcheck.h b/src/gui/reports/ReportsWidgetHealthcheck.h index 2046326a1..21d121b00 100644 --- a/src/gui/reports/ReportsWidgetHealthcheck.h +++ b/src/gui/reports/ReportsWidgetHealthcheck.h @@ -56,7 +56,7 @@ public slots: void deleteSelectedEntries(); private: - void addHealthRow(QSharedPointer, Group*, Entry*, bool knownBad); + void addHealthRow(QSharedPointer, Group*, Entry*, bool excluded); QScopedPointer m_ui; diff --git a/src/gui/reports/ReportsWidgetHealthcheck.ui b/src/gui/reports/ReportsWidgetHealthcheck.ui index e2ed44e1b..5bc2aa118 100644 --- a/src/gui/reports/ReportsWidgetHealthcheck.ui +++ b/src/gui/reports/ReportsWidgetHealthcheck.ui @@ -55,16 +55,16 @@ - + - Exclude expired entries from the report + Show expired entries - + - Also show entries that have been excluded from reports + Show entries that have been excluded from reports @@ -84,7 +84,7 @@ healthcheckTableView - showKnownBadCheckBox + showExcluded diff --git a/src/gui/reports/ReportsWidgetPasskeys.cpp b/src/gui/reports/ReportsWidgetPasskeys.cpp new file mode 100644 index 000000000..a50576be6 --- /dev/null +++ b/src/gui/reports/ReportsWidgetPasskeys.cpp @@ -0,0 +1,294 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ReportsWidgetPasskeys.h" +#include "ui_ReportsWidgetPasskeys.h" + +#include "browser/BrowserPasskeys.h" +#include "core/AsyncTask.h" +#include "core/Group.h" +#include "core/Metadata.h" +#include "gui/GuiTools.h" +#include "gui/Icons.h" +#include "gui/passkeys/PasskeyExporter.h" +#include "gui/passkeys/PasskeyImporter.h" +#include "gui/styles/StateColorPalette.h" + +#include +#include +#include +#include + +namespace +{ + class PasskeyList + { + public: + struct Item + { + QPointer group; + QPointer entry; + + Item(Group* g, Entry* e) + : group(g) + , entry(e) + { + } + }; + + explicit PasskeyList(const QSharedPointer&); + + const QList>& items() const + { + return m_items; + } + + private: + QSharedPointer m_db; + QList> m_items; + }; +} // namespace + +PasskeyList::PasskeyList(const QSharedPointer& db) + : m_db(db) +{ + for (auto group : db->rootGroup()->groupsRecursive(true)) { + // Skip recycle bin + if (group->isRecycled()) { + continue; + } + + for (auto entry : group->entries()) { + if (entry->isRecycled() || !entry->attributes()->hasKey(BrowserPasskeys::KPEX_PASSKEY_PRIVATE_KEY_PEM)) { + continue; + } + + const auto item = QSharedPointer(new Item(group, entry)); + m_items.append(item); + } + } +} + +ReportsWidgetPasskeys::ReportsWidgetPasskeys(QWidget* parent) + : QWidget(parent) + , m_ui(new Ui::ReportsWidgetPasskeys()) + , m_referencesModel(new QStandardItemModel(this)) + , m_modelProxy(new QSortFilterProxyModel(this)) +{ + m_ui->setupUi(this); + + m_modelProxy->setSourceModel(m_referencesModel.data()); + m_modelProxy->setSortLocaleAware(true); + m_ui->passkeysTableView->setModel(m_modelProxy.data()); + m_ui->passkeysTableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive); + m_ui->passkeysTableView->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); + + connect(m_ui->passkeysTableView, SIGNAL(customContextMenuRequested(QPoint)), SLOT(customMenuRequested(QPoint))); + connect(m_ui->passkeysTableView, SIGNAL(doubleClicked(QModelIndex)), SLOT(emitEntryActivated(QModelIndex))); + connect(m_ui->passkeysTableView->selectionModel(), + SIGNAL(selectionChanged(QItemSelection, QItemSelection)), + this, + SLOT(selectionChanged())); + connect(m_ui->showExpired, SIGNAL(stateChanged(int)), this, SLOT(updateEntries())); + connect(m_ui->exportButton, SIGNAL(clicked(bool)), this, SLOT(exportPasskey())); + connect(m_ui->importButton, SIGNAL(clicked(bool)), this, SLOT(importPasskey())); + + m_ui->exportButton->setEnabled(false); + + new QShortcut(Qt::Key_Delete, this, SLOT(deleteSelectedEntries())); +} + +ReportsWidgetPasskeys::~ReportsWidgetPasskeys() +{ +} + +void ReportsWidgetPasskeys::addPasskeyRow(Group* group, Entry* entry) +{ + StateColorPalette statePalette; + + auto urlList = entry->getAllUrls(); + auto urlToolTip = tr("List of entry URLs"); + + auto title = entry->title(); + if (entry->isExpired()) { + title.append(tr(" (Expired)")); + } + + auto row = QList(); + row << new QStandardItem(Icons::entryIconPixmap(entry), title); + row << new QStandardItem(Icons::groupIconPixmap(group), group->hierarchy().join("/")); + row << new QStandardItem(entry->username()); + row << new QStandardItem(entry->attributes()->value(BrowserPasskeys::KPEX_PASSKEY_RELYING_PARTY)); + row << new QStandardItem(urlList.join('\n')); + + // Set tooltips + row[2]->setToolTip(urlToolTip); + + // Store entry pointer per table row (used in double click handler) + m_referencesModel->appendRow(row); + m_rowToEntry.append({group, entry}); +} + +void ReportsWidgetPasskeys::loadSettings(QSharedPointer db) +{ + m_db = std::move(db); + m_entriesUpdated = false; + m_referencesModel->clear(); + m_rowToEntry.clear(); + + auto row = QList(); + row << new QStandardItem(tr("Please wait, list of entries with Passkeys is being updated…")); + m_referencesModel->appendRow(row); +} + +void ReportsWidgetPasskeys::showEvent(QShowEvent* event) +{ + QWidget::showEvent(event); + + if (!m_entriesUpdated) { + // Perform stats calculation on next event loop to allow widget to appear + m_entriesUpdated = true; + QTimer::singleShot(0, this, SLOT(updateEntries())); + } +} + +void ReportsWidgetPasskeys::updateEntries() +{ + m_referencesModel->clear(); + + // Perform the statistics check + const QScopedPointer browserStatistics( + AsyncTask::runAndWaitForFuture([this] { return new PasskeyList(m_db); })); + + // Display the entries + m_rowToEntry.clear(); + for (const auto& item : browserStatistics->items()) { + // Exclude expired entries from report if not requested + if (!m_ui->showExpired->isChecked() && item->entry->isExpired()) { + continue; + } + + addPasskeyRow(item->group, item->entry); + } + + // Set the table header + if (m_referencesModel->rowCount() == 0) { + m_referencesModel->setHorizontalHeaderLabels(QStringList() << tr("No entries with Passkeys.")); + } else { + m_referencesModel->setHorizontalHeaderLabels(QStringList() << tr("Title") << tr("Path") << tr("Username") + << tr("Relying Party") << tr("URLs")); + m_ui->passkeysTableView->sortByColumn(0, Qt::AscendingOrder); + } + + m_ui->passkeysTableView->resizeColumnsToContents(); +} + +void ReportsWidgetPasskeys::emitEntryActivated(const QModelIndex& index) +{ + if (!index.isValid()) { + return; + } + + auto mappedIndex = m_modelProxy->mapToSource(index); + const auto row = m_rowToEntry[mappedIndex.row()]; + const auto group = row.first; + const auto entry = row.second; + + if (group && entry) { + emit entryActivated(entry); + } +} + +void ReportsWidgetPasskeys::customMenuRequested(QPoint pos) +{ + auto selected = m_ui->passkeysTableView->selectionModel()->selectedRows(); + if (selected.isEmpty()) { + return; + } + + // Create the context menu + const auto menu = new QMenu(this); + + // Create the "edit entry" menu item (only if 1 row is selected) + if (selected.size() == 1) { + const auto edit = new QAction(icons()->icon("entry-edit"), tr("Edit Entry…"), this); + menu->addAction(edit); + connect(edit, &QAction::triggered, edit, [this, selected] { + auto row = m_modelProxy->mapToSource(selected[0]).row(); + auto entry = m_rowToEntry[row].second; + emit entryActivated(entry); + }); + } + + // Create the "delete entry" menu item + const auto delEntry = new QAction(icons()->icon("entry-delete"), tr("Delete Entry(s)…", "", selected.size()), this); + menu->addAction(delEntry); + connect(delEntry, &QAction::triggered, this, &ReportsWidgetPasskeys::deleteSelectedEntries); + + // Show the context menu + menu->popup(m_ui->passkeysTableView->viewport()->mapToGlobal(pos)); +} + +void ReportsWidgetPasskeys::saveSettings() +{ + // Nothing to do - the tab is passive +} + +void ReportsWidgetPasskeys::deleteSelectedEntries() +{ + auto selectedEntries = getSelectedEntries(); + bool permanent = !m_db->metadata()->recycleBinEnabled(); + + if (GuiTools::confirmDeleteEntries(this, selectedEntries, permanent)) { + GuiTools::deleteEntriesResolveReferences(this, selectedEntries, permanent); + } + + updateEntries(); +} + +QList ReportsWidgetPasskeys::getSelectedEntries() +{ + QList selectedEntries; + for (auto index : m_ui->passkeysTableView->selectionModel()->selectedRows()) { + auto row = m_modelProxy->mapToSource(index).row(); + auto entry = m_rowToEntry[row].second; + if (entry) { + selectedEntries << entry; + } + } + + return selectedEntries; +} + +void ReportsWidgetPasskeys::selectionChanged() +{ + m_ui->exportButton->setEnabled(!m_ui->passkeysTableView->selectionModel()->selectedIndexes().isEmpty()); +} + +void ReportsWidgetPasskeys::importPasskey() +{ + PasskeyImporter passkeyImporter; + passkeyImporter.importPasskey(m_db); + + updateEntries(); +} + +void ReportsWidgetPasskeys::exportPasskey() +{ + PasskeyExporter passkeyExporter; + passkeyExporter.showExportDialog(getSelectedEntries()); +} diff --git a/src/gui/reports/ReportsWidgetPasskeys.h b/src/gui/reports/ReportsWidgetPasskeys.h new file mode 100644 index 000000000..3d0593350 --- /dev/null +++ b/src/gui/reports/ReportsWidgetPasskeys.h @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSXC_REPORTSWIDGETPASSKEYS_H +#define KEEPASSXC_REPORTSWIDGETPASSKEYS_H + +#include "gui/entry/EntryModel.h" +#include + +class Database; +class Entry; +class Group; +class PasswordHealth; +class QSortFilterProxyModel; +class QStandardItemModel; + +namespace Ui +{ + class ReportsWidgetPasskeys; +} + +class ReportsWidgetPasskeys : public QWidget +{ + Q_OBJECT +public: + explicit ReportsWidgetPasskeys(QWidget* parent = nullptr); + ~ReportsWidgetPasskeys() override; + + void loadSettings(QSharedPointer db); + void saveSettings(); + +protected: + void showEvent(QShowEvent* event) override; + +signals: + void entryActivated(Entry*); + +public slots: + void updateEntries(); + void emitEntryActivated(const QModelIndex& index); + void customMenuRequested(QPoint); + void deleteSelectedEntries(); + +private slots: + void selectionChanged(); + void importPasskey(); + void exportPasskey(); + +private: + void addPasskeyRow(Group*, Entry*); + QList getSelectedEntries(); + + QScopedPointer m_ui; + + bool m_entriesUpdated = false; + QScopedPointer m_referencesModel; + QScopedPointer m_modelProxy; + QSharedPointer m_db; + QList> m_rowToEntry; +}; + +#endif // KEEPASSXC_REPORTSWIDGETPASSKEYS_H diff --git a/src/gui/reports/ReportsWidgetPasskeys.ui b/src/gui/reports/ReportsWidgetPasskeys.ui new file mode 100644 index 000000000..c1e321fc8 --- /dev/null +++ b/src/gui/reports/ReportsWidgetPasskeys.ui @@ -0,0 +1,102 @@ + + + ReportsWidgetPasskeys + + + + 0 + 0 + 505 + 379 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::CustomContextMenu + + + QAbstractScrollArea::AdjustToContents + + + QAbstractItemView::NoEditTriggers + + + false + + + true + + + QAbstractItemView::SelectRows + + + Qt::ElideRight + + + true + + + true + + + false + + + + + + + Show expired entries + + + + + + + + + Import + + + + + + + Export + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + diff --git a/src/gui/styles/base/BaseStyle.cpp b/src/gui/styles/base/BaseStyle.cpp index ec3fd9b8a..60df4a2ee 100644 --- a/src/gui/styles/base/BaseStyle.cpp +++ b/src/gui/styles/base/BaseStyle.cpp @@ -1051,7 +1051,7 @@ namespace Phantom // Expected time (release): 5usecs for regular-sized arrows Q_NEVER_INLINE void drawArrow(QPainter* p, QRect rect, Qt::ArrowType arrowDirection, const QBrush& brush) { - const qreal ArrowBaseRatio = 0.70; + const qreal ArrowBaseRatio = 0.9; qreal irx, iry, irw, irh; QRectF(rect).getRect(&irx, &iry, &irw, &irh); if (irw < 1.0 || irh < 1.0) @@ -1938,7 +1938,7 @@ void BaseStyle::drawPrimitive(PrimitiveElement elem, auto fropt = qstyleoption_cast(option); if (!fropt) break; - //### check for d->alt_down + // ### check for d->alt_down if (!(fropt->state & State_KeyboardFocusChange)) return; if (fropt->state & State_Item) { diff --git a/src/gui/styles/base/basestyle.qss b/src/gui/styles/base/basestyle.qss index fa6858989..feba71fdb 100644 --- a/src/gui/styles/base/basestyle.qss +++ b/src/gui/styles/base/basestyle.qss @@ -25,6 +25,10 @@ QCheckBox, QRadioButton { spacing: 10px; } +ReportsDialog QTableView::item { + padding: 4px; +} + DatabaseWidget, DatabaseWidget #groupView, DatabaseWidget #tagView { background-color: palette(window); border: none; @@ -44,13 +48,11 @@ DatabaseOpenWidget #centralStack { } QGroupBox { - margin-top: 1.4em; - margin-bottom: 1.4em; font-weight: bold; } QGroupBox::title { - margin-top: -3.35em; + margin-top: -.4em; margin-left: -.4em; subcontrol-origin: padding; } diff --git a/src/gui/styles/base/classicstyle.qss b/src/gui/styles/base/classicstyle.qss index f7d3c0fb4..d0ab2b88f 100644 --- a/src/gui/styles/base/classicstyle.qss +++ b/src/gui/styles/base/classicstyle.qss @@ -9,8 +9,9 @@ QToolTip { DatabaseWidget #SearchBanner, DatabaseWidget #KeeShareBanner { font-weight: bold; - background-color: rgb(94, 161, 14); - border: 1px solid rgb(190, 190, 190); + background-color: palette(highlight); + color: palette(highlighted-text); + border: 1px solid palette(dark); padding: 2px; } diff --git a/src/gui/tag/TagModel.cpp b/src/gui/tag/TagModel.cpp index 023cb3498..99f253270 100644 --- a/src/gui/tag/TagModel.cpp +++ b/src/gui/tag/TagModel.cpp @@ -18,12 +18,19 @@ #include "TagModel.h" #include "core/Database.h" +#include "core/Metadata.h" #include "gui/Icons.h" +#include "gui/MessageBox.h" -TagModel::TagModel(QSharedPointer db, QObject* parent) +#include +#include + +TagModel::TagModel(QObject* parent) : QAbstractListModel(parent) { - setDatabase(db); + m_defaultSearches << qMakePair(tr("Clear Search"), QString("")) << qMakePair(tr("All Entries"), QString("*")) + << qMakePair(tr("Expired"), QString("is:expired")) + << qMakePair(tr("Weak Passwords"), QString("is:weak")); } TagModel::~TagModel() @@ -32,12 +39,19 @@ TagModel::~TagModel() void TagModel::setDatabase(QSharedPointer db) { + if (m_db) { + disconnect(m_db.data()); + } + m_db = db; if (!m_db) { m_tagList.clear(); return; } + connect(m_db.data(), SIGNAL(tagListUpdated()), SLOT(updateTagList())); + connect(m_db->metadata()->customData(), SIGNAL(modified()), SLOT(updateTagList())); + updateTagList(); } @@ -45,10 +59,35 @@ void TagModel::updateTagList() { beginResetModel(); m_tagList.clear(); - m_tagList << tr("All") << tr("Expired") << tr("Weak Passwords") << m_db->tagList(); + + m_tagList << m_defaultSearches; + + auto savedSearches = m_db->metadata()->savedSearches(); + for (auto search : savedSearches.keys()) { + m_tagList << qMakePair(search, savedSearches[search].toString()); + } + + m_tagListStart = m_tagList.size(); + for (auto tag : m_db->tagList()) { + auto escapedTag = tag; + escapedTag.replace("\"", "\\\""); + m_tagList << qMakePair(tag, QString("tag:\"%1\"").arg(escapedTag)); + } + endResetModel(); } +TagModel::TagType TagModel::itemType(const QModelIndex& index) +{ + int row = index.row(); + if (row < m_defaultSearches.size()) { + return TagType::DEFAULT_SEARCH; + } else if (row < m_tagListStart) { + return TagType::SAVED_SEARCH; + } + return TagType::TAG; +} + int TagModel::rowCount(const QModelIndex& parent) const { Q_UNUSED(parent); @@ -61,29 +100,23 @@ QVariant TagModel::data(const QModelIndex& index, int role) const return {}; } + const auto row = index.row(); switch (role) { case Qt::DecorationRole: - if (index.row() <= 2) { - return icons()->icon("tag-search"); + if (row < m_tagListStart) { + return icons()->icon("database-search"); } return icons()->icon("tag"); case Qt::DisplayRole: - return m_tagList.at(index.row()); + return m_tagList.at(row).first; case Qt::UserRole: - if (index.row() == 0) { - return ""; - } else if (index.row() == 1) { - return "is:expired"; - } else if (index.row() == 2) { - return "is:weak"; + return m_tagList.at(row).second; + case Qt::UserRole + 1: + if (row == (m_defaultSearches.size() - 1)) { + return true; } - return QString("tag:%1").arg(m_tagList.at(index.row())); + return false; } return {}; } - -const QStringList& TagModel::tags() const -{ - return m_tagList; -} diff --git a/src/gui/tag/TagModel.h b/src/gui/tag/TagModel.h index 020f621f0..8eee0101b 100644 --- a/src/gui/tag/TagModel.h +++ b/src/gui/tag/TagModel.h @@ -28,21 +28,30 @@ class TagModel : public QAbstractListModel Q_OBJECT public: - explicit TagModel(QSharedPointer db, QObject* parent = nullptr); + explicit TagModel(QObject* parent = nullptr); ~TagModel() override; void setDatabase(QSharedPointer db); - const QStringList& tags() const; int rowCount(const QModelIndex& parent = QModelIndex()) const override; QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override; + enum TagType + { + DEFAULT_SEARCH, + SAVED_SEARCH, + TAG + }; + TagType itemType(const QModelIndex& index); + private slots: void updateTagList(); private: QSharedPointer m_db; - QStringList m_tagList; + QList> m_defaultSearches; + QList> m_tagList; + int m_tagListStart = 0; }; #endif // KEEPASSX_TAGMODEL_H diff --git a/src/gui/tag/TagView.cpp b/src/gui/tag/TagView.cpp new file mode 100644 index 000000000..8afdac44a --- /dev/null +++ b/src/gui/tag/TagView.cpp @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2022 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "TagView.h" + +#include "TagModel.h" +#include "core/Database.h" +#include "core/Metadata.h" +#include "gui/Icons.h" +#include "gui/MessageBox.h" + +#include +#include +#include + +class TagItemDelegate : public QStyledItemDelegate +{ +public: + explicit TagItemDelegate(QObject* parent) + : QStyledItemDelegate(parent){}; + + void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override + { + QStyledItemDelegate::paint(painter, option, index); + if (index.data(Qt::UserRole + 1).toBool()) { + QRect bounds = option.rect; + bounds.setY(bounds.bottom()); + painter->fillRect(bounds, option.palette.mid()); + } + } +}; + +TagView::TagView(QWidget* parent) + : QListView(parent) + , m_model(new TagModel(this)) +{ + setModel(m_model); + setFrameStyle(QFrame::NoFrame); + setSelectionMode(QListView::ExtendedSelection); + setSelectionBehavior(QListView::SelectRows); + setContextMenuPolicy(Qt::CustomContextMenu); + setItemDelegate(new TagItemDelegate(this)); + + connect(this, &QListView::customContextMenuRequested, this, &TagView::contextMenuRequested); +} + +void TagView::setDatabase(QSharedPointer db) +{ + m_db = db; + m_model->setDatabase(db); + setCurrentIndex(m_model->index(0)); +} + +void TagView::contextMenuRequested(const QPoint& pos) +{ + auto index = indexAt(pos); + if (!index.isValid()) { + return; + } + + auto type = m_model->itemType(index); + if (type == TagModel::SAVED_SEARCH) { + // Allow deleting saved searches + QMenu menu; + auto action = menu.exec({new QAction(icons()->icon("trash"), tr("Remove Search"), nullptr)}, mapToGlobal(pos)); + if (action) { + m_db->metadata()->deleteSavedSearch(index.data(Qt::DisplayRole).toString()); + } + } else if (type == TagModel::TAG) { + // Allow removing tags from all entries in a database + QMenu menu; + auto action = menu.exec({new QAction(icons()->icon("trash"), tr("Remove Tag"), nullptr)}, mapToGlobal(pos)); + if (action) { + auto tag = index.data(Qt::DisplayRole).toString(); + auto ans = MessageBox::question(this, + tr("Confirm Remove Tag"), + tr("Remove tag \"%1\" from all entries in this database?").arg(tag), + MessageBox::Remove | MessageBox::Cancel); + if (ans == MessageBox::Remove) { + m_db->removeTag(tag); + } + } + } +} diff --git a/src/gui/tag/TagView.h b/src/gui/tag/TagView.h new file mode 100644 index 000000000..9a135aca3 --- /dev/null +++ b/src/gui/tag/TagView.h @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSXC_TAGVIEW_H +#define KEEPASSXC_TAGVIEW_H + +#include +#include +#include + +class Database; +class QAbstractListModel; +class TagModel; + +class TagView : public QListView +{ + Q_OBJECT + +public: + explicit TagView(QWidget* parent = nullptr); + void setDatabase(QSharedPointer db); + +signals: + +private slots: + void contextMenuRequested(const QPoint& pos); + +private: + QSharedPointer m_db; + QPointer m_model; +}; + +#endif // KEEPASSX_ENTRYVIEW_H diff --git a/src/gui/tag/TagsEdit.cpp b/src/gui/tag/TagsEdit.cpp index ee668731a..4388f4790 100644 --- a/src/gui/tag/TagsEdit.cpp +++ b/src/gui/tag/TagsEdit.cpp @@ -24,6 +24,7 @@ #include "TagsEdit.h" #include "gui/MainWindow.h" +#include #include #include #include @@ -401,6 +402,7 @@ struct TagsEdit::Impl // and ensures Invariant-1. void editNewTag(int i) { + currentText() = currentText().trimmed(); tags.insert(std::next(std::begin(tags), static_cast(i)), Tag()); if (editing_index >= i) { ++editing_index; @@ -412,9 +414,9 @@ struct TagsEdit::Impl void setupCompleter() { completer->setWidget(ifce); - connect(completer.get(), static_cast(&QCompleter::activated), [this](QString const& text) { - currentText(text); - }); + connect(completer.get(), + static_cast(&QCompleter::activated), + [this](QString const& text) { currentText(text); }); } QVector formatting() const @@ -646,6 +648,12 @@ void TagsEdit::focusOutEvent(QFocusEvent*) viewport()->update(); } +void TagsEdit::hideEvent(QHideEvent* event) +{ + Q_UNUSED(event) + impl->completer->popup()->hide(); +} + void TagsEdit::paintEvent(QPaintEvent*) { QPainter p(viewport()); @@ -854,10 +862,16 @@ void TagsEdit::keyPressEvent(QKeyEvent* event) case Qt::Key_Enter: case Qt::Key_Comma: case Qt::Key_Semicolon: + // If completer is visible, accept the selection or hide if no selection + if (impl->completer->popup()->isVisible() && impl->completer->popup()->selectionModel()->hasSelection()) { + break; + } + + // Make existing text into a tag if (!impl->currentText().isEmpty()) { impl->editNewTag(impl->editing_index + 1); + event->accept(); } - event->accept(); break; default: unknown = true; diff --git a/src/gui/tag/TagsEdit.h b/src/gui/tag/TagsEdit.h index 6c2a974cb..44297fb34 100644 --- a/src/gui/tag/TagsEdit.h +++ b/src/gui/tag/TagsEdit.h @@ -68,6 +68,7 @@ protected: void focusOutEvent(QFocusEvent* event) override; void keyPressEvent(QKeyEvent* event) override; void mouseMoveEvent(QMouseEvent* event) override; + void hideEvent(QHideEvent* event) override; private: bool isAcceptableInput(QKeyEvent const* event) const; diff --git a/src/gui/wizard/ImportWizard.cpp b/src/gui/wizard/ImportWizard.cpp new file mode 100644 index 000000000..05fdbfe38 --- /dev/null +++ b/src/gui/wizard/ImportWizard.cpp @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2018 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ImportWizard.h" +#include "ImportWizardPageReview.h" +#include "ImportWizardPageSelect.h" + +#include "core/Global.h" +#include "core/Group.h" + +#include +#include + +ImportWizard::ImportWizard(QWidget* parent) + : QWizard(parent) + , m_pageSelect(new ImportWizardPageSelect) + , m_pageReview(new ImportWizardPageReview) +{ + setWizardStyle(MacStyle); + setOption(HaveHelpButton, false); + setOption(NoDefaultButton, false); // Needed for macOS + + addPage(m_pageSelect.data()); + addPage(m_pageReview.data()); + + setWindowTitle(tr("Import Wizard")); + + Q_INIT_RESOURCE(wizard); + setPixmap(BackgroundPixmap, QPixmap(":/wizard/background-pixmap.png")); + + // Fix MacStyle QWizard page frame too bright in dark mode (QTBUG-70346, QTBUG-71696) + QPalette defaultPalette; + auto windowColor = defaultPalette.color(QPalette::Window); + windowColor.setAlpha(153); + auto baseColor = defaultPalette.color(QPalette::Base); + baseColor.setAlpha(153); + + auto* pageFrame = findChildren()[0]; + auto framePalette = pageFrame->palette(); + framePalette.setBrush(QPalette::Window, windowColor.lighter(120)); + framePalette.setBrush(QPalette::Base, baseColor.lighter(120)); + pageFrame->setPalette(framePalette); +} + +ImportWizard::~ImportWizard() +{ +} + +bool ImportWizard::validateCurrentPage() +{ + bool ret = QWizard::validateCurrentPage(); + if (ret && currentPage() == m_pageReview) { + m_db = m_pageReview->database(); + } + return ret; +} + +QPair ImportWizard::importInto() +{ + auto list = field("ImportInto").toList(); + if (list.size() >= 2) { + return qMakePair(QUuid(list[0].toString()), QUuid(list[1].toString())); + } + return {}; +} + +QSharedPointer ImportWizard::database() +{ + return m_db; +} diff --git a/src/gui/wizard/ImportWizard.h b/src/gui/wizard/ImportWizard.h new file mode 100644 index 000000000..b7e9de68d --- /dev/null +++ b/src/gui/wizard/ImportWizard.h @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2018 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSXC_IMPORTWIZARD_H +#define KEEPASSXC_IMPORTWIZARD_H + +#include +#include + +class Database; +class ImportWizardPageSelect; +class ImportWizardPageReview; + +/** + * Setup wizard for importing a file into a database. + */ +class ImportWizard : public QWizard +{ + Q_OBJECT + +public: + explicit ImportWizard(QWidget* parent = nullptr); + ~ImportWizard() override; + + bool validateCurrentPage() override; + + QSharedPointer database(); + QPair importInto(); + + enum ImportType + { + IMPORT_NONE = 0, + IMPORT_CSV, + IMPORT_OPVAULT, + IMPORT_OPUX, + IMPORT_BITWARDEN, + IMPORT_KEEPASS1 + }; + +private: + QSharedPointer m_db; + QPointer m_pageSelect; + QPointer m_pageReview; +}; + +#endif // KEEPASSXC_IMPORTWIZARD_H diff --git a/src/gui/wizard/ImportWizardPageReview.cpp b/src/gui/wizard/ImportWizardPageReview.cpp new file mode 100644 index 000000000..2cb56791b --- /dev/null +++ b/src/gui/wizard/ImportWizardPageReview.cpp @@ -0,0 +1,202 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ImportWizardPageReview.h" +#include "ui_ImportWizardPageReview.h" + +#include "core/Database.h" +#include "core/Group.h" +#include "format/BitwardenReader.h" +#include "format/KeePass1Reader.h" +#include "format/OPUXReader.h" +#include "format/OpVaultReader.h" +#include "gui/csvImport/CsvImportWidget.h" +#include "gui/wizard/ImportWizard.h" + +#include +#include +#include +#include + +ImportWizardPageReview::ImportWizardPageReview(QWidget* parent) + : QWizardPage(parent) + , m_ui(new Ui::ImportWizardPageReview) +{ +} + +ImportWizardPageReview::~ImportWizardPageReview() +{ +} + +void ImportWizardPageReview::initializePage() +{ + m_db.reset(); + + // Reset the widget in case we changed the import type + for (auto child : children()) { + delete child; + } + m_ui->setupUi(this); + + auto filename = field("ImportFile").toString(); + m_ui->filenameLabel->setText(filename); + + m_ui->messageWidget->hideMessage(); + m_ui->messageWidget->setAnimate(false); + m_ui->messageWidget->setCloseButtonVisible(false); + + auto importType = field("ImportType").toInt(); + switch (importType) { + case ImportWizard::IMPORT_CSV: + setupCsvImport(filename); + break; + case ImportWizard::IMPORT_OPVAULT: + m_db = importOPVault(filename, field("ImportPassword").toString()); + setupDatabasePreview(); + break; + case ImportWizard::IMPORT_OPUX: + m_db = importOPUX(filename); + setupDatabasePreview(); + break; + case ImportWizard::IMPORT_KEEPASS1: + m_db = importKeePass1(filename, field("ImportPassword").toString(), field("ImportKeyFile").toString()); + setupDatabasePreview(); + break; + case ImportWizard::IMPORT_BITWARDEN: + m_db = importBitwarden(filename, field("ImportPassword").toString()); + setupDatabasePreview(); + break; + default: + break; + } +} + +bool ImportWizardPageReview::validatePage() +{ + if (m_csvWidget && field("ImportType").toInt() == ImportWizard::IMPORT_CSV) { + m_db = m_csvWidget->buildDatabase(); + } + return !m_db.isNull(); +} + +QSharedPointer ImportWizardPageReview::database() +{ + return m_db; +} + +void ImportWizardPageReview::setupCsvImport(const QString& filename) +{ + // No need for this label with CSV + m_ui->previewLabel->hide(); + + m_csvWidget = new CsvImportWidget(); + connect(m_csvWidget, &CsvImportWidget::message, m_ui->messageWidget, [this](QString message) { + m_ui->messageWidget->showMessage(message, KMessageWidget::Error, -1); + }); + + m_csvWidget->load(filename); + + // Qt does not automatically resize a QScrollWidget in a QWizard... + m_ui->scrollAreaContents->layout()->addWidget(m_csvWidget); + m_ui->scrollArea->setMinimumSize(m_csvWidget->width() + 50, m_csvWidget->height() + 100); +} + +void ImportWizardPageReview::setupDatabasePreview() +{ + if (!m_db) { + m_ui->scrollArea->setVisible(false); + return; + } + + auto entryList = m_db->rootGroup()->entriesRecursive(); + m_ui->previewLabel->setText(tr("Entry count: %1").arg(entryList.count())); + + QStringList headerLabels({tr("Group"), tr("Title"), tr("Username"), tr("Password"), tr("Url")}); + + auto tableWidget = new QTableWidget(entryList.count(), headerLabels.count()); + tableWidget->setHorizontalHeaderLabels(headerLabels); + + int row = 0; + for (auto entry : entryList) { + QList items({new QTableWidgetItem(entry->group()->name()), + new QTableWidgetItem(entry->title()), + new QTableWidgetItem(entry->username()), + new QTableWidgetItem(entry->password()), + new QTableWidgetItem(entry->url())}); + int column = 0; + for (auto item : items) { + tableWidget->setItem(row, column++, item); + } + ++row; + } + + tableWidget->setSortingEnabled(true); + tableWidget->setSelectionMode(QTableWidget::NoSelection); + tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); + tableWidget->setWordWrap(true); + tableWidget->horizontalHeader()->setMaximumSectionSize(200); + tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); + tableWidget->horizontalHeader()->setStretchLastSection(true); + + m_ui->scrollAreaContents->layout()->addWidget(tableWidget); +} + +QSharedPointer ImportWizardPageReview::importOPUX(const QString& filename) +{ + OPUXReader reader; + auto db = reader.convert(filename); + if (reader.hasError()) { + m_ui->messageWidget->showMessage(reader.errorString(), KMessageWidget::Error, -1); + } + return db; +} + +QSharedPointer ImportWizardPageReview::importBitwarden(const QString& filename, const QString& password) +{ + BitwardenReader reader; + auto db = reader.convert(filename, password); + if (reader.hasError()) { + m_ui->messageWidget->showMessage(reader.errorString(), KMessageWidget::Error, -1); + } + return db; +} + +QSharedPointer ImportWizardPageReview::importOPVault(const QString& filename, const QString& password) +{ + OpVaultReader reader; + QDir opVault(filename); + auto db = reader.convert(opVault, password); + if (reader.hasError()) { + m_ui->messageWidget->showMessage(reader.errorString(), KMessageWidget::Error, -1); + } + return db; +} + +QSharedPointer +ImportWizardPageReview::importKeePass1(const QString& filename, const QString& password, const QString& keyfile) +{ + KeePass1Reader reader; + + // TODO: Handle case of empty password? + + auto db = reader.readDatabase(filename, password, keyfile); + if (reader.hasError()) { + m_ui->messageWidget->showMessage(reader.errorString(), KMessageWidget::Error, -1); + } + + return db; +} diff --git a/src/gui/wizard/ImportWizardPageReview.h b/src/gui/wizard/ImportWizardPageReview.h new file mode 100644 index 000000000..87f501c85 --- /dev/null +++ b/src/gui/wizard/ImportWizardPageReview.h @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSXC_IMPORTWIZARDPAGEREVIEW_H +#define KEEPASSXC_IMPORTWIZARDPAGEREVIEW_H + +#include +#include + +class CsvImportWidget; +class Database; +namespace Ui +{ + class ImportWizardPageReview; +}; + +class ImportWizardPageReview : public QWizardPage +{ + Q_OBJECT + +public: + explicit ImportWizardPageReview(QWidget* parent = nullptr); + Q_DISABLE_COPY(ImportWizardPageReview) + ~ImportWizardPageReview() override; + + void initializePage() override; + bool validatePage() override; + + QSharedPointer database(); + +private: + void setupCsvImport(const QString& filename); + QSharedPointer importOPUX(const QString& filename); + QSharedPointer importBitwarden(const QString& filename, const QString& password); + QSharedPointer importOPVault(const QString& filename, const QString& password); + QSharedPointer importKeePass1(const QString& filename, const QString& password, const QString& keyfile); + + void setupDatabasePreview(); + + QScopedPointer m_ui; + + QSharedPointer m_db; + QPointer m_csvWidget; +}; + +#endif diff --git a/src/gui/wizard/ImportWizardPageReview.ui b/src/gui/wizard/ImportWizardPageReview.ui new file mode 100644 index 000000000..6872ec4ea --- /dev/null +++ b/src/gui/wizard/ImportWizardPageReview.ui @@ -0,0 +1,95 @@ + + + ImportWizardPageReview + + + + 0 + 0 + 518 + 334 + + + + WizardPage + + + + + + + + + + 500 + 300 + + + + Qt::ScrollBarAlwaysOff + + + QAbstractScrollArea::AdjustToContentsOnFirstShow + + + true + + + + + 0 + 0 + 498 + 298 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 75 + true + + + + filename + + + + + + + Entry count: %1 + + + + + + + + + + + + MessageWidget + QWidget +
    gui/MessageWidget.h
    + 1 +
    +
    + + +
    diff --git a/src/gui/wizard/ImportWizardPageSelect.cpp b/src/gui/wizard/ImportWizardPageSelect.cpp new file mode 100644 index 000000000..7bca1a39a --- /dev/null +++ b/src/gui/wizard/ImportWizardPageSelect.cpp @@ -0,0 +1,236 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ImportWizardPageSelect.h" +#include "ui_ImportWizardPageSelect.h" + +#include "ImportWizard.h" + +#include "gui/DatabaseWidget.h" +#include "gui/FileDialog.h" +#include "gui/Icons.h" +#include "gui/MainWindow.h" + +ImportWizardPageSelect::ImportWizardPageSelect(QWidget* parent) + : QWizardPage(parent) + , m_ui(new Ui::ImportWizardPageSelect()) +{ + m_ui->setupUi(this); + + new QListWidgetItem(icons()->icon("csv"), tr("Comma Separated Values (.csv)"), m_ui->importTypeList); + new QListWidgetItem(icons()->icon("onepassword"), tr("1Password Export (.1pux)"), m_ui->importTypeList); + new QListWidgetItem(icons()->icon("onepassword"), tr("1Password Vault (.opvault)"), m_ui->importTypeList); + new QListWidgetItem(icons()->icon("bitwarden"), tr("Bitwarden (.json)"), m_ui->importTypeList); + new QListWidgetItem(icons()->icon("object-locked"), tr("KeePass 1 Database (.kdb)"), m_ui->importTypeList); + + m_ui->importTypeList->item(0)->setData(Qt::UserRole, ImportWizard::IMPORT_CSV); + m_ui->importTypeList->item(1)->setData(Qt::UserRole, ImportWizard::IMPORT_OPUX); + m_ui->importTypeList->item(2)->setData(Qt::UserRole, ImportWizard::IMPORT_OPVAULT); + m_ui->importTypeList->item(3)->setData(Qt::UserRole, ImportWizard::IMPORT_BITWARDEN); + m_ui->importTypeList->item(4)->setData(Qt::UserRole, ImportWizard::IMPORT_KEEPASS1); + + connect(m_ui->importTypeList, &QListWidget::currentItemChanged, this, &ImportWizardPageSelect::itemSelected); + m_ui->importTypeList->setCurrentRow(0); + + connect(m_ui->importFileButton, &QAbstractButton::clicked, this, &ImportWizardPageSelect::chooseImportFile); + connect(m_ui->keyFileButton, &QAbstractButton::clicked, this, &ImportWizardPageSelect::chooseKeyFile); + connect(m_ui->existingDatabaseRadio, &QRadioButton::toggled, this, [this](bool state) { + m_ui->existingDatabaseChoice->setEnabled(state); + }); + + updateDatabaseChoices(); + + registerField("ImportType", this); + registerField("ImportFile*", m_ui->importFileEdit); + registerField("ImportInto", m_ui->importIntoLabel); + registerField("ImportPassword", m_ui->passwordEdit, "text", "textChanged"); + registerField("ImportKeyFile", m_ui->keyFileEdit); +} + +ImportWizardPageSelect::~ImportWizardPageSelect() +{ +} + +void ImportWizardPageSelect::initializePage() +{ + setField("ImportType", m_ui->importTypeList->currentItem()->data(Qt::UserRole).toInt()); + adjustSize(); +} + +bool ImportWizardPageSelect::validatePage() +{ + if (m_ui->existingDatabaseRadio->isChecked()) { + if (m_ui->existingDatabaseChoice->currentIndex() == -1) { + return false; + } + setField("ImportInto", m_ui->existingDatabaseChoice->currentData()); + } else { + setField("ImportInto", {}); + } + + return true; +} + +void ImportWizardPageSelect::itemSelected(QListWidgetItem* current, QListWidgetItem* previous) +{ + Q_UNUSED(previous) + + if (!current) { + setCredentialState(false); + return; + } + + m_ui->importFileEdit->clear(); + m_ui->passwordEdit->clear(); + m_ui->keyFileEdit->clear(); + + auto type = current->data(Qt::UserRole).toInt(); + setField("ImportType", type); + switch (type) { + // Unencrypted types + case ImportWizard::IMPORT_CSV: + case ImportWizard::IMPORT_OPUX: + setCredentialState(false); + break; + // Password may be required + case ImportWizard::IMPORT_BITWARDEN: + case ImportWizard::IMPORT_OPVAULT: + setCredentialState(true); + break; + // Password and/or Key File may be required + case ImportWizard::IMPORT_KEEPASS1: + setCredentialState(true, true); + break; + default: + Q_ASSERT(false); + } +} + +void ImportWizardPageSelect::updateDatabaseChoices() const +{ + m_ui->existingDatabaseChoice->clear(); + auto mainWindow = getMainWindow(); + if (mainWindow) { + for (auto dbWidget : mainWindow->getOpenDatabases()) { + // Skip over locked databases + if (dbWidget->isLocked()) { + continue; + } + + // Enable the selection of an existing database + m_ui->existingDatabaseRadio->setEnabled(true); + m_ui->existingDatabaseRadio->setToolTip(""); + + // Add a separator between databases + if (m_ui->existingDatabaseChoice->count() > 0) { + m_ui->existingDatabaseChoice->insertSeparator(m_ui->existingDatabaseChoice->count()); + } + + // Add the root group as a special line item + auto db = dbWidget->database(); + m_ui->existingDatabaseChoice->addItem( + QString("%1 (%2)").arg(dbWidget->displayName(), db->rootGroup()->name()), + QList() << db->uuid() << db->rootGroup()->uuid()); + + if (dbWidget->isVisible()) { + m_ui->existingDatabaseChoice->setCurrentIndex(m_ui->existingDatabaseChoice->count() - 1); + } + + // Add remaining groups + for (const auto& group : db->rootGroup()->groupsRecursive(false)) { + if (!group->isRecycled()) { + auto path = group->hierarchy(); + path.removeFirst(); + m_ui->existingDatabaseChoice->addItem(QString(" / %1").arg(path.join(" / ")), + QList() << db->uuid() << group->uuid()); + } + } + } + } +} + +void ImportWizardPageSelect::chooseImportFile() +{ + QString file; +#ifndef Q_OS_MACOS + // OPVault is a folder except on macOS + if (field("ImportType").toInt() == ImportWizard::IMPORT_OPVAULT) { + file = fileDialog()->getExistingDirectory(this, tr("Open OPVault"), QDir::homePath()); + } else { +#endif + file = fileDialog()->getOpenFileName(this, tr("Select import file"), QDir::homePath(), importFileFilter()); +#ifndef Q_OS_MACOS + } +#endif + + if (!file.isEmpty()) { + m_ui->importFileEdit->setText(file); + } +} + +void ImportWizardPageSelect::chooseKeyFile() +{ + auto filter = QString("%1 (*);;%2 (*.keyx; *.key)").arg(tr("All files"), tr("Key files")); + auto file = fileDialog()->getOpenFileName(this, tr("Select key file"), QDir::homePath(), filter); + if (!file.isEmpty()) { + m_ui->keyFileEdit->setText(file); + } +} + +void ImportWizardPageSelect::setCredentialState(bool passwordEnabled, bool keyFileEnable) +{ + bool passwordStateChanged = m_ui->passwordLabel->isVisible() != passwordEnabled; + m_ui->passwordLabel->setVisible(passwordEnabled); + m_ui->passwordEdit->setVisible(passwordEnabled); + + bool keyFileStateChanged = m_ui->keyFileLabel->isVisible() != keyFileEnable; + m_ui->keyFileLabel->setVisible(keyFileEnable); + m_ui->keyFileEdit->setVisible(keyFileEnable); + m_ui->keyFileButton->setVisible(keyFileEnable); + + // Workaround Qt bug where the wizard window is not updated when the internal layout changes + if (window()) { + int height = window()->height(); + if (passwordStateChanged) { + auto diff = m_ui->passwordEdit->height() + m_ui->inputFields->layout()->spacing(); + height += passwordEnabled ? diff : -diff; + } + if (keyFileStateChanged) { + auto diff = m_ui->keyFileEdit->height() + m_ui->inputFields->layout()->spacing(); + height += keyFileEnable ? diff : -diff; + } + window()->resize(window()->width(), height); + } +} + +QString ImportWizardPageSelect::importFileFilter() +{ + switch (field("ImportType").toInt()) { + case ImportWizard::IMPORT_CSV: + return QString("%1 (*.csv);;%2 (*)").arg(tr("Comma Separated Values"), tr("All files")); + case ImportWizard::IMPORT_OPUX: + return QString("%1 (*.1pux)").arg(tr("1Password Export")); + case ImportWizard::IMPORT_BITWARDEN: + return QString("%1 (*.json)").arg(tr("Bitwarden JSON Export")); + case ImportWizard::IMPORT_OPVAULT: + return QString("%1 (*.opvault)").arg(tr("1Password Vault")); + case ImportWizard::IMPORT_KEEPASS1: + return QString("%1 (*.kdb)").arg(tr("KeePass1 Database")); + default: + return {}; + } +} diff --git a/src/gui/wizard/ImportWizardPageSelect.h b/src/gui/wizard/ImportWizardPageSelect.h new file mode 100644 index 000000000..029865a56 --- /dev/null +++ b/src/gui/wizard/ImportWizardPageSelect.h @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2023 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSXC_IMPORTWIZARDPAGESELECT_H +#define KEEPASSXC_IMPORTWIZARDPAGESELECT_H + +#include +#include + +class QListWidgetItem; + +namespace Ui +{ + class ImportWizardPageSelect; +} + +class ImportWizardPageSelect : public QWizardPage +{ + Q_OBJECT + +public: + explicit ImportWizardPageSelect(QWidget* parent = nullptr); + Q_DISABLE_COPY(ImportWizardPageSelect) + ~ImportWizardPageSelect() override; + + void initializePage() override; + bool validatePage() override; + +private slots: + void itemSelected(QListWidgetItem* current, QListWidgetItem* previous); + void chooseImportFile(); + void chooseKeyFile(); + void updateDatabaseChoices() const; + +private: + QString importFileFilter(); + void setCredentialState(bool passwordEnabled, bool keyFileEnable = false); + + QScopedPointer m_ui; +}; + +#endif diff --git a/src/gui/wizard/ImportWizardPageSelect.ui b/src/gui/wizard/ImportWizardPageSelect.ui new file mode 100644 index 000000000..6a7c8adad --- /dev/null +++ b/src/gui/wizard/ImportWizardPageSelect.ui @@ -0,0 +1,276 @@ + + + ImportWizardPageSelect + + + + 0 + 0 + 500 + 388 + + + + Form + + + Import File Selection + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 500 + 125 + + + + QAbstractScrollArea::AdjustToContents + + + QAbstractItemView::NoEditTriggers + + + true + + + QAbstractItemView::SelectRows + + + Qt::ElideNone + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + + + + + + 0 + 0 + + + + + 400 + 0 + + + + + QLayout::SetMinimumSize + + + + + Import File: + + + + + + + + + + + + Browse… + + + + + + + + + Password: + + + + + + + + + + Key File: + + + + + + + + + + + + Browse… + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 15 + + + + + + + + Import Into: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + + 0 + 0 + + + + + 0 + 60 + + + + + + + + QLayout::SetMinimumSize + + + 6 + + + 6 + + + 6 + + + 6 + + + + + New Database + + + true + + + + + + + + + false + + + No unlocked databases available + + + Existing Database: + + + + + + + false + + + + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::MinimumExpanding + + + + 20 + 40 + + + + + + + + + PasswordWidget + QWidget +
    gui/PasswordWidget.h
    + 1 +
    +
    + + +
    diff --git a/src/keeshare/CMakeLists.txt b/src/keeshare/CMakeLists.txt index a108b784b..5f7a39658 100644 --- a/src/keeshare/CMakeLists.txt +++ b/src/keeshare/CMakeLists.txt @@ -13,9 +13,7 @@ if(WITH_XC_KEESHARE) ShareObserver.cpp ) - find_package(Minizip REQUIRED) - add_library(keeshare STATIC ${keeshare_SOURCES}) - target_link_libraries(keeshare PUBLIC Qt5::Core Qt5::Widgets ${BOTAN2_LIBRARIES} ${ZLIB_LIBRARIES} PRIVATE ${MINIZIP_LIBRARIES}) + target_link_libraries(keeshare PUBLIC Qt5::Core Qt5::Widgets ${BOTAN_LIBRARIES} ${ZLIB_LIBRARIES} PRIVATE ${MINIZIP_LIBRARIES}) include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) endif(WITH_XC_KEESHARE) diff --git a/src/keeshare/ShareExport.cpp b/src/keeshare/ShareExport.cpp index d43ef73cb..49fa128b8 100644 --- a/src/keeshare/ShareExport.cpp +++ b/src/keeshare/ShareExport.cpp @@ -92,8 +92,7 @@ namespace key->addKey(QSharedPointer::create(reference.password)); targetDb->setKey(key); - auto* obsoleteRoot = targetDb->rootGroup(); - targetDb->setRootGroup(targetRoot); + auto obsoleteRoot = targetDb->setRootGroup(targetRoot); delete obsoleteRoot; targetDb->metadata()->setName(sourceRoot->name()); @@ -141,7 +140,7 @@ namespace { if (key.key->algo_name() == "RSA") { try { - Botan::PK_Signer signer(*key.key, "EMSA3(SHA-256)"); + Botan::PK_Signer signer(*key.key, *randomGen()->getRng(), "EMSA3(SHA-256)"); signer.update(reinterpret_cast(data.constData()), data.size()); auto s = signer.signature(*randomGen()->getRng()); diff --git a/src/keeshare/ShareObserver.cpp b/src/keeshare/ShareObserver.cpp index ac1c44baa..5a0da292d 100644 --- a/src/keeshare/ShareObserver.cpp +++ b/src/keeshare/ShareObserver.cpp @@ -54,6 +54,7 @@ ShareObserver::ShareObserver(QSharedPointer db, QObject* parent) ShareObserver::~ShareObserver() { + m_db->disconnect(this); } void ShareObserver::deinitialize() diff --git a/src/keeshare/group/EditGroupWidgetKeeShare.ui b/src/keeshare/group/EditGroupWidgetKeeShare.ui index 9b87f963f..857ba61c8 100644 --- a/src/keeshare/group/EditGroupWidgetKeeShare.ui +++ b/src/keeshare/group/EditGroupWidgetKeeShare.ui @@ -51,9 +51,9 @@
    - + - + 0 0 @@ -64,12 +64,12 @@ 0 + + Qt::StrongFocus + Password field - - QLineEdit::Password - @@ -190,9 +190,9 @@ - PasswordEdit - QLineEdit -
    gui/PasswordEdit.h
    + PasswordWidget + QWidget +
    gui/PasswordWidget.h
    1
    diff --git a/src/keys/CompositeKey.cpp b/src/keys/CompositeKey.cpp index 0fdb2b32f..705491667 100644 --- a/src/keys/CompositeKey.cpp +++ b/src/keys/CompositeKey.cpp @@ -169,6 +169,36 @@ void CompositeKey::addKey(const QSharedPointer& key) m_keys.append(key); } +/** + * Get the \link Key with the specified ID. + * + * @param keyId the ID of the key to get. + */ +QSharedPointer CompositeKey::getKey(const QUuid keyId) const +{ + for (const QSharedPointer& key : m_keys) { + if (key->uuid() == keyId) { + return key; + } + } + return {}; +} + +/** + * Get the \link ChallengeResponseKey with the specified ID. + * + * @param keyId the ID of the key to get. + */ +QSharedPointer CompositeKey::getChallengeResponseKey(const QUuid keyId) const +{ + for (const QSharedPointer& key : m_challengeResponseKeys) { + if (key->uuid() == keyId) { + return key; + } + } + return {}; +} + /** * @return list of Keys which are part of this CompositeKey */ diff --git a/src/keys/CompositeKey.h b/src/keys/CompositeKey.h index 8db385c2c..451f88e4f 100644 --- a/src/keys/CompositeKey.h +++ b/src/keys/CompositeKey.h @@ -43,6 +43,8 @@ public: bool challenge(const QByteArray& seed, QByteArray& result, QString* error = nullptr) const; void addKey(const QSharedPointer& key); + QSharedPointer getKey(const QUuid keyType) const; + QSharedPointer getChallengeResponseKey(const QUuid keyType) const; const QList>& keys() const; void addChallengeResponseKey(const QSharedPointer& key); diff --git a/src/keys/FileKey.h b/src/keys/FileKey.h index 795f03bdb..65cd955a7 100644 --- a/src/keys/FileKey.h +++ b/src/keys/FileKey.h @@ -19,6 +19,7 @@ #ifndef KEEPASSX_FILEKEY_H #define KEEPASSX_FILEKEY_H +#include #include #include "keys/Key.h" diff --git a/src/keys/drivers/YubiKey.cpp b/src/keys/drivers/YubiKey.cpp index f735c5dba..cac5283d8 100644 --- a/src/keys/drivers/YubiKey.cpp +++ b/src/keys/drivers/YubiKey.cpp @@ -20,10 +20,13 @@ #include "YubiKeyInterfacePCSC.h" #include "YubiKeyInterfaceUSB.h" +#include +#include #include +QMutex YubiKey::s_interfaceMutex(QMutex::Recursive); + YubiKey::YubiKey() - : m_interfaces_detect_mutex(QMutex::Recursive) { int num_interfaces = 0; @@ -70,78 +73,39 @@ bool YubiKey::isInitialized() bool YubiKey::findValidKeys() { - bool found = false; - if (m_interfaces_detect_mutex.tryLock(1000)) { - found |= YubiKeyInterfaceUSB::instance()->findValidKeys(); - found |= YubiKeyInterfacePCSC::instance()->findValidKeys(); - m_interfaces_detect_mutex.unlock(); - } - return found; + QMutexLocker lock(&s_interfaceMutex); + + m_usbKeys = YubiKeyInterfaceUSB::instance()->findValidKeys(); + m_pcscKeys = YubiKeyInterfacePCSC::instance()->findValidKeys(); + + return !m_usbKeys.isEmpty() || !m_pcscKeys.isEmpty(); } void YubiKey::findValidKeysAsync() { - QtConcurrent::run([this] { - bool found = findValidKeys(); - emit detectComplete(found); - }); + QtConcurrent::run([this] { emit detectComplete(findValidKeys()); }); } -QList YubiKey::foundKeys() +YubiKey::KeyMap YubiKey::foundKeys() { - QList foundKeys; + QMutexLocker lock(&s_interfaceMutex); + KeyMap foundKeys; - auto keys = YubiKeyInterfaceUSB::instance()->foundKeys(); - QList handledSerials = keys.uniqueKeys(); - for (auto serial : handledSerials) { - for (const auto& key : keys.values(serial)) { - foundKeys.append({serial, key.first}); - } + for (auto i = m_usbKeys.cbegin(); i != m_usbKeys.cend(); ++i) { + foundKeys.insert(i.key(), i.value()); } - keys = YubiKeyInterfacePCSC::instance()->foundKeys(); - for (auto serial : keys.uniqueKeys()) { - // Ignore keys that were detected on USB interface already - if (handledSerials.contains(serial)) { - continue; - } - - for (const auto& key : keys.values(serial)) { - foundKeys.append({serial, key.first}); - } + for (auto i = m_pcscKeys.cbegin(); i != m_pcscKeys.cend(); ++i) { + foundKeys.insert(i.key(), i.value()); } return foundKeys; } -QString YubiKey::getDisplayName(YubiKeySlot slot) -{ - QString name; - name.clear(); - - if (YubiKeyInterfaceUSB::instance()->hasFoundKey(slot)) { - name += YubiKeyInterfaceUSB::instance()->getDisplayName(slot); - } - - if (YubiKeyInterfacePCSC::instance()->hasFoundKey(slot)) { - // In some cases, the key might present on two interfaces - // This should usually never happen, because the PCSC interface - // filters the "virtual yubikey reader device". - if (!name.isNull()) { - name += " = "; - } - name += YubiKeyInterfacePCSC::instance()->getDisplayName(slot); - } - - if (!name.isNull()) { - return name; - } - - return tr("%1 No interface, slot %2").arg(QString::number(slot.first), QString::number(slot.second)); -} - QString YubiKey::errorMessage() { + QMutexLocker lock(&s_interfaceMutex); + QString error; error.clear(); if (!m_error.isNull()) { @@ -177,11 +141,13 @@ QString YubiKey::errorMessage() */ bool YubiKey::testChallenge(YubiKeySlot slot, bool* wouldBlock) { - if (YubiKeyInterfaceUSB::instance()->hasFoundKey(slot)) { + QMutexLocker lock(&s_interfaceMutex); + + if (m_usbKeys.contains(slot)) { return YubiKeyInterfaceUSB::instance()->testChallenge(slot, wouldBlock); } - if (YubiKeyInterfacePCSC::instance()->hasFoundKey(slot)) { + if (m_pcscKeys.contains(slot)) { return YubiKeyInterfacePCSC::instance()->testChallenge(slot, wouldBlock); } @@ -200,23 +166,25 @@ bool YubiKey::testChallenge(YubiKeySlot slot, bool* wouldBlock) YubiKey::ChallengeResult YubiKey::challenge(YubiKeySlot slot, const QByteArray& challenge, Botan::secure_vector& response) { + QMutexLocker lock(&s_interfaceMutex); + m_error.clear(); // Make sure we tried to find available keys - if (foundKeys().isEmpty()) { + if (m_usbKeys.isEmpty() && m_pcscKeys.isEmpty()) { findValidKeys(); } - if (YubiKeyInterfaceUSB::instance()->hasFoundKey(slot)) { + if (m_usbKeys.contains(slot)) { return YubiKeyInterfaceUSB::instance()->challenge(slot, challenge, response); } - if (YubiKeyInterfacePCSC::instance()->hasFoundKey(slot)) { + if (m_pcscKeys.contains(slot)) { return YubiKeyInterfacePCSC::instance()->challenge(slot, challenge, response); } m_error = tr("Could not find interface for hardware key with serial number %1. Please connect it to continue.") .arg(slot.first); - return YubiKey::ChallengeResult::YCR_ERROR; + return ChallengeResult::YCR_ERROR; } diff --git a/src/keys/drivers/YubiKey.h b/src/keys/drivers/YubiKey.h index 312dea897..0eab12986 100644 --- a/src/keys/drivers/YubiKey.h +++ b/src/keys/drivers/YubiKey.h @@ -20,6 +20,7 @@ #define KEEPASSX_YUBIKEY_H #include +#include #include #include #include @@ -36,6 +37,7 @@ class YubiKey : public QObject Q_OBJECT public: + typedef QMap KeyMap; enum class ChallengeResult : int { YCR_ERROR = 0, @@ -49,8 +51,7 @@ public: bool findValidKeys(); void findValidKeysAsync(); - QList foundKeys(); - QString getDisplayName(YubiKeySlot slot); + KeyMap foundKeys(); ChallengeResult challenge(YubiKeySlot slot, const QByteArray& challenge, Botan::secure_vector& response); bool testChallenge(YubiKeySlot slot, bool* wouldBlock = nullptr); @@ -85,7 +86,11 @@ private: QTimer m_interactionTimer; bool m_initialized = false; QString m_error; - QMutex m_interfaces_detect_mutex; + + static QMutex s_interfaceMutex; + + KeyMap m_usbKeys; + KeyMap m_pcscKeys; Q_DISABLE_COPY(YubiKey) }; diff --git a/src/keys/drivers/YubiKeyInterface.cpp b/src/keys/drivers/YubiKeyInterface.cpp index fe7f984b7..5f7487a91 100644 --- a/src/keys/drivers/YubiKeyInterface.cpp +++ b/src/keys/drivers/YubiKeyInterface.cpp @@ -19,10 +19,7 @@ #include "YubiKeyInterface.h" YubiKeyInterface::YubiKeyInterface() - : m_mutex(QMutex::Recursive) { - m_interactionTimer.setSingleShot(true); - m_interactionTimer.setInterval(300); } bool YubiKeyInterface::isInitialized() const @@ -30,36 +27,6 @@ bool YubiKeyInterface::isInitialized() const return m_initialized; } -QMultiMap> YubiKeyInterface::foundKeys() -{ - return m_foundKeys; -} - -bool YubiKeyInterface::hasFoundKey(YubiKeySlot slot) -{ - // A serial number of 0 implies use the first key - if (slot.first == 0 && !m_foundKeys.isEmpty()) { - return true; - } - - for (const auto& key : m_foundKeys.values(slot.first)) { - if (slot.second == key.first) { - return true; - } - } - return false; -} - -QString YubiKeyInterface::getDisplayName(YubiKeySlot slot) -{ - for (const auto& key : m_foundKeys.values(slot.first)) { - if (slot.second == key.first) { - return key.second; - } - } - return tr("%1 Invalid slot specified - %2").arg(QString::number(slot.first), QString::number(slot.second)); -} - QString YubiKeyInterface::errorMessage() { return m_error; diff --git a/src/keys/drivers/YubiKeyInterface.h b/src/keys/drivers/YubiKeyInterface.h index 6a7294616..51b4ae846 100644 --- a/src/keys/drivers/YubiKeyInterface.h +++ b/src/keys/drivers/YubiKeyInterface.h @@ -20,7 +20,6 @@ #define KEEPASSX_YUBIKEY_INTERFACE_H #include "YubiKey.h" - #include /** @@ -32,11 +31,8 @@ class YubiKeyInterface : public QObject public: bool isInitialized() const; - QMultiMap> foundKeys(); - bool hasFoundKey(YubiKeySlot slot); - QString getDisplayName(YubiKeySlot slot); - virtual bool findValidKeys() = 0; + virtual YubiKey::KeyMap findValidKeys() = 0; virtual YubiKey::ChallengeResult challenge(YubiKeySlot slot, const QByteArray& challenge, Botan::secure_vector& response) = 0; virtual bool testChallenge(YubiKeySlot slot, bool* wouldBlock) = 0; @@ -60,7 +56,6 @@ signals: protected: explicit YubiKeyInterface(); - virtual YubiKey::ChallengeResult performChallenge(void* key, int slot, bool mayBlock, @@ -68,10 +63,6 @@ protected: Botan::secure_vector& response) = 0; virtual bool performTestChallenge(void* key, int slot, bool* wouldBlock) = 0; - QMultiMap> m_foundKeys; - - QMutex m_mutex; - QTimer m_interactionTimer; bool m_initialized = false; QString m_error; diff --git a/src/keys/drivers/YubiKeyInterfacePCSC.cpp b/src/keys/drivers/YubiKeyInterfacePCSC.cpp index e871d63d4..0d25ac434 100644 --- a/src/keys/drivers/YubiKeyInterfacePCSC.cpp +++ b/src/keys/drivers/YubiKeyInterfacePCSC.cpp @@ -242,23 +242,68 @@ namespace if (rv == SCARD_S_SUCCESS) { // Write to and read from the card // pioRecvPci is nullptr because we do not expect any PCI response header + const SCUINT dwRecvBufferSize = dwRecvLength; rv = SCardTransmit(handle, pioSendPci, pbSendBuffer, dwSendLength, nullptr, pbRecvBuffer, &dwRecvLength); + + if (dwRecvLength < 2) { + // Any valid response should be at least 2 bytes (response status) + // However the protocol itself could fail + return SCARD_E_UNEXPECTED; + } + + uint8_t SW1 = pbRecvBuffer[dwRecvLength - 2]; + // Check for the MoreDataAvailable SW1 code. If present, send GetResponse command repeatedly, until success + // SW, or filling the receiving buffer. + if (SW1 == SW_MORE_DATA_HIGH) { + while (true) { + if (dwRecvBufferSize < dwRecvLength) { + // No free buffer space remaining + return SCARD_E_UNEXPECTED; + } + // Overwrite Status Word in the receiving buffer + dwRecvLength -= 2; + SCUINT dwRecvLength_sr = dwRecvBufferSize - dwRecvLength; // at least 2 bytes for SW are available + const uint8_t bRecvDataSize = + qBound(static_cast(0), dwRecvLength_sr - 2, static_cast(255)); + uint8_t pbSendBuffer_sr[] = {CLA_ISO, INS_GET_RESPONSE, 0, 0, bRecvDataSize}; + rv = SCardTransmit(handle, + pioSendPci, + pbSendBuffer_sr, + sizeof pbSendBuffer_sr, + nullptr, + pbRecvBuffer + dwRecvLength, + &dwRecvLength_sr); + + // Check if any new data are received. Break if the smart card's status is other than success, + // or no new bytes were received. + if (!(rv == SCARD_S_SUCCESS && dwRecvLength_sr >= 2)) { + break; + } + + dwRecvLength += dwRecvLength_sr; + SW1 = pbRecvBuffer[dwRecvLength - 2]; + // Break the loop if there is no continuation status + if (SW1 != SW_MORE_DATA_HIGH) { + break; + } + } + } + if (rv == SCARD_S_SUCCESS) { if (dwRecvLength < 2) { // Any valid response should be at least 2 bytes (response status) // However the protocol itself could fail rv = SCARD_E_UNEXPECTED; } else { - if (pbRecvBuffer[dwRecvLength - 2] == SW_OK_HIGH && pbRecvBuffer[dwRecvLength - 1] == SW_OK_LOW) { + const uint8_t SW_HIGH = pbRecvBuffer[dwRecvLength - 2]; + const uint8_t SW_LOW = pbRecvBuffer[dwRecvLength - 1]; + if (SW_HIGH == SW_OK_HIGH && SW_LOW == SW_OK_LOW) { rv = SCARD_S_SUCCESS; - } else if (pbRecvBuffer[dwRecvLength - 2] == SW_PRECOND_HIGH - && pbRecvBuffer[dwRecvLength - 1] == SW_PRECOND_LOW) { + } else if (SW_HIGH == SW_PRECOND_HIGH && SW_LOW == SW_PRECOND_LOW) { // This happens if the key requires eg. a button press or if the applet times out // Solution: Re-present the card to the reader rv = SCARD_W_CARD_NOT_AUTHENTICATED; - } else if ((pbRecvBuffer[dwRecvLength - 2] == SW_NOTFOUND_HIGH - && pbRecvBuffer[dwRecvLength - 1] == SW_NOTFOUND_LOW) - || pbRecvBuffer[dwRecvLength - 2] == SW_UNSUP_HIGH) { + } else if ((SW_HIGH == SW_NOTFOUND_HIGH && SW_LOW == SW_NOTFOUND_LOW) || SW_HIGH == SW_UNSUP_HIGH) { // This happens eg. during a select command when the AID is not found rv = SCARD_E_FILE_NOT_FOUND; } else { @@ -285,9 +330,10 @@ namespace auto pbSendBuffer = new uint8_t[5 + handle.second.size()]; memcpy(pbSendBuffer, pbSendBuffer_head, 5); memcpy(pbSendBuffer + 5, handle.second.constData(), handle.second.size()); - uint8_t pbRecvBuffer[12] = { + // Give it more space in case custom implementations have longer answer to select + uint8_t pbRecvBuffer[64] = { 0}; // 3 bytes version, 1 byte program counter, other stuff for various implementations, 2 bytes status - SCUINT dwRecvLength = 12; + SCUINT dwRecvLength = sizeof pbRecvBuffer; auto rv = transmit(handle.first, pbSendBuffer, 5 + handle.second.size(), pbRecvBuffer, dwRecvLength); @@ -420,40 +466,6 @@ namespace return SCARD_E_NO_SMARTCARD; } - /*** - * @brief Reads the status of a key - * - * The status is used for the firmware version only atm. - * - * @param handle Smartcard handle and applet ID bytestring pair - * @param version The firmware version in [major, minor, patch] format - * - * @return SCARD_S_SUCCESS on success - */ - RETVAL getStatus(const SCardAID& handle, uint8_t version[3]) - { - // Ensure the transmission is retransmitted after card resets - return transactRetry(handle.first, [&handle, &version]() { - auto rv = selectApplet(handle); - - // Ensure that the card is always selected before sending the command - if (rv != SCARD_S_SUCCESS) { - return rv; - } - - uint8_t pbSendBuffer[5] = {CLA_ISO, INS_STATUS, 0, 0, 6}; - uint8_t pbRecvBuffer[8] = {0}; // 4 bytes serial, 2 bytes other stuff, 2 bytes status - SCUINT dwRecvLength = 8; - - rv = transmit(handle.first, pbSendBuffer, 5, pbRecvBuffer, dwRecvLength); - if (rv == SCARD_S_SUCCESS && dwRecvLength >= 3) { - memcpy(version, pbRecvBuffer, 3); - } - - return rv; - }); - } - /*** * @brief Performs a challenge-response transmission * @@ -529,19 +541,17 @@ YubiKeyInterfacePCSC* YubiKeyInterfacePCSC::instance() return m_instance; } -bool YubiKeyInterfacePCSC::findValidKeys() +YubiKey::KeyMap YubiKeyInterfacePCSC::findValidKeys() { m_error.clear(); if (!isInitialized()) { - return false; + return {}; } - // Remove all known keys - m_foundKeys.clear(); + + YubiKey::KeyMap foundKeys; // Connect to each reader and look for cards - auto readers_list = getReaders(m_sc_context); - foreach (const QString& reader_name, readers_list) { - + for (const auto& reader_name : getReaders(m_sc_context)) { /* Some Yubikeys present their PCSC interface via USB as well Although this would not be a problem in itself, we filter these connections because in USB mode, @@ -562,65 +572,70 @@ bool YubiKeyInterfacePCSC::findValidKeys() &hCard, &dwActiveProtocol); - if (rv == SCARD_S_SUCCESS) { - // Read the potocol and the ATR record - char pbReader[MAX_READERNAME] = {0}; - SCUINT dwReaderLen = sizeof(pbReader); - SCUINT dwState = 0; - SCUINT dwProt = SCARD_PROTOCOL_UNDEFINED; - uint8_t pbAtr[MAX_ATR_SIZE] = {0}; - SCUINT dwAtrLen = sizeof(pbAtr); + if (rv != SCARD_S_SUCCESS) { + // Cannot connect to the reader + continue; + } - rv = SCardStatus(hCard, pbReader, &dwReaderLen, &dwState, &dwProt, pbAtr, &dwAtrLen); - if (rv == SCARD_S_SUCCESS && (dwProt == SCARD_PROTOCOL_T0 || dwProt == SCARD_PROTOCOL_T1)) { - // Find which AID to use - SCardAID satr; - if (findAID(hCard, m_aid_codes, satr)) { - // Build the UI name using the display name found in the ATR map - QByteArray atr(reinterpret_cast(pbAtr), dwAtrLen); - QString name("Unknown Key"); - if (m_atr_names.contains(atr)) { - name = m_atr_names.value(atr); - } - // Add the firmware version and the serial number - uint8_t version[3] = {0}; - getStatus(satr, version); - name += - QString(" v%1.%2.%3") - .arg(QString::number(version[0]), QString::number(version[1]), QString::number(version[2])); + // Read the protocol and the ATR record + char pbReader[MAX_READERNAME] = {0}; + SCUINT dwReaderLen = sizeof(pbReader); + SCUINT dwState = 0; + SCUINT dwProt = SCARD_PROTOCOL_UNDEFINED; + uint8_t pbAtr[MAX_ATR_SIZE] = {0}; + SCUINT dwAtrLen = sizeof(pbAtr); - unsigned int serial = 0; - getSerial(satr, serial); + rv = SCardStatus(hCard, pbReader, &dwReaderLen, &dwState, &dwProt, pbAtr, &dwAtrLen); + if (rv != SCARD_S_SUCCESS || (dwProt != SCARD_PROTOCOL_T0 && dwProt != SCARD_PROTOCOL_T1)) { + // Could not read the ATR record or the protocol is not supported + continue; + } - /* This variable indicates that the key is locked / timed out. - When using the key via NFC, the user has to re-present the key to clear the timeout. - Also, the key can be programmatically reset (see below). - When using the key via USB (where the Yubikey presents as a PCSC reader in itself), - the non-HMAC-SHA1 slots (eg. OTP) are incorrectly recognized as locked HMAC-SHA1 slots. - Due to this conundrum, we exclude "locked" keys from the key enumeration, - but only if the reader is the "virtual yubikey reader device". - This also has the nice side effect of de-duplicating interfaces when a key - Is connected via USB and also accessible via PCSC */ - bool wouldBlock = false; - /* When the key is used via NFC, the lock state / time-out is cleared when - the smartcard connection is re-established / the applet is selected - so the next call to performTestChallenge actually clears the lock. - Due to this the key is unlocked, and we display it as such. - When the key times out in the time between the key listing and - the database unlock /save, an interaction request will be displayed. */ - for (int slot = 1; slot <= 2; ++slot) { - if (performTestChallenge(&satr, slot, &wouldBlock)) { - auto display = tr("(PCSC) %1 [%2] Challenge-Response - Slot %3") - .arg(name, QString::number(serial), QString::number(slot)); - m_foundKeys.insert(serial, {slot, display}); - } - } + // Find which AID to use + SCardAID satr; + if (findAID(hCard, m_aid_codes, satr)) { + // Build the UI name using the display name found in the ATR map + QByteArray atr(reinterpret_cast(pbAtr), dwAtrLen); + QString name("Unknown Key"); + if (m_atr_names.contains(atr)) { + name = m_atr_names.value(atr); + } + + unsigned int serial = 0; + getSerial(satr, serial); + + /* This variable indicates that the key is locked / timed out. + When using the key via NFC, the user has to re-present the key to clear the timeout. + Also, the key can be programmatically reset (see below). + When using the key via USB (where the Yubikey presents as a PCSC reader in itself), + the non-HMAC-SHA1 slots (eg. OTP) are incorrectly recognized as locked HMAC-SHA1 slots. + Due to this conundrum, we exclude "locked" keys from the key enumeration, + but only if the reader is the "virtual yubikey reader device". + This also has the nice side effect of de-duplicating interfaces when a key + Is connected via USB and also accessible via PCSC */ + bool wouldBlock = false; + /* When the key is used via NFC, the lock state / time-out is cleared when + the smartcard connection is re-established / the applet is selected + so the next call to performTestChallenge actually clears the lock. + Due to this the key is unlocked, and we display it as such. + When the key times out in the time between the key listing and + the database unlock /save, an interaction request will be displayed. */ + for (int slot = 1; slot <= 2; ++slot) { + if (performTestChallenge(&satr, slot, &wouldBlock)) { + auto display = + tr("(NFC) %1 [%2] - Slot %3, %4", "YubiKey display fields") + .arg(name, + QString::number(serial), + QString::number(slot), + wouldBlock ? tr("Press", "USB Challenge-Response Key interaction request") + : tr("Passive", "USB Challenge-Response Key no interaction required")); + foundKeys.insert({serial, slot}, display); } } } } - return !m_foundKeys.isEmpty(); + return foundKeys; } bool YubiKeyInterfacePCSC::testChallenge(YubiKeySlot slot, bool* wouldBlock) @@ -661,12 +676,6 @@ YubiKeyInterfacePCSC::challenge(YubiKeySlot slot, const QByteArray& challenge, B return YubiKey::ChallengeResult::YCR_ERROR; } - // Try to grab a lock for 1 second, fail out if not possible - if (!m_mutex.tryLock(1000)) { - m_error = tr("Hardware key is currently in use."); - return YubiKey::ChallengeResult::YCR_ERROR; - } - // Try for a few seconds to find the key emit challengeStarted(); @@ -686,7 +695,6 @@ YubiKeyInterfacePCSC::challenge(YubiKeySlot slot, const QByteArray& challenge, B resets the key (see commnt above) */ if (ret == YubiKey::ChallengeResult::YCR_SUCCESS) { emit challengeCompleted(); - m_mutex.unlock(); return ret; } } @@ -700,7 +708,6 @@ YubiKeyInterfacePCSC::challenge(YubiKeySlot slot, const QByteArray& challenge, B .arg(slot.first) + m_error; emit challengeCompleted(); - m_mutex.unlock(); return YubiKey::ChallengeResult::YCR_ERROR; } diff --git a/src/keys/drivers/YubiKeyInterfacePCSC.h b/src/keys/drivers/YubiKeyInterfacePCSC.h index 17e282111..df4f25ba3 100644 --- a/src/keys/drivers/YubiKeyInterfacePCSC.h +++ b/src/keys/drivers/YubiKeyInterfacePCSC.h @@ -24,6 +24,7 @@ #define CLA_ISO 0x00 #define INS_SELECT 0xA4 +#define INS_GET_RESPONSE 0xC0 #define SEL_APP_AID 0x04 #define INS_API_REQ 0x01 #define INS_STATUS 0x03 @@ -37,6 +38,7 @@ #define SW_NOTFOUND_HIGH 0x6A #define SW_NOTFOUND_LOW 0x82 #define SW_UNSUP_HIGH 0x6D +#define SW_MORE_DATA_HIGH 0x61 typedef QPair SCardAID; @@ -50,7 +52,7 @@ class YubiKeyInterfacePCSC : public YubiKeyInterface public: static YubiKeyInterfacePCSC* instance(); - bool findValidKeys() override; + YubiKey::KeyMap findValidKeys() override; YubiKey::ChallengeResult challenge(YubiKeySlot slot, const QByteArray& challenge, Botan::secure_vector& response) override; @@ -69,12 +71,13 @@ private: Botan::secure_vector& response) override; bool performTestChallenge(void* key, int slot, bool* wouldBlock) override; - SCARDCONTEXT m_sc_context; + SCARDCONTEXT m_sc_context{}; // This list contains all the AID (application identifier) codes for the Yubikey HMAC-SHA1 applet // and also for compatible third-party ones. They will be tried one by one. const QList m_aid_codes = { QByteArrayLiteral("\xA0\x00\x00\x05\x27\x20\x01"), // Yubico Yubikey + QByteArrayLiteral("\xA0\x00\x00\x05\x27\x21\x01"), // Yubico Yubikey OATH AID / Nitrokey 3 Secrets App QByteArrayLiteral("\xA0\x00\x00\x06\x17\x00\x07\x53\x4E\xAF\x01") // Fidesmo development }; @@ -83,16 +86,13 @@ private: const QHash m_atr_names = { // Yubico Yubikeys {QByteArrayLiteral("\x3B\x8C\x80\x01\x59\x75\x62\x69\x6B\x65\x79\x4E\x45\x4F\x72\x33\x58"), "YubiKey NEO"}, - {QByteArrayLiteral("\x3B\x8C\x80\x01\x59\x75\x62\x69\x6B\x65\x79\x4E\x45\x4F\x72\xFF\x94"), - "YubiKey NEO via NFC"}, - {QByteArrayLiteral("\x3B\x8D\x80\x01\x80\x73\xC0\x21\xC0\x57\x59\x75\x62\x69\x4B\x65\x79\xF9"), - "YubiKey 5 NFC via NFC"}, - {QByteArrayLiteral("\x3B\x8D\x80\x01\x80\x73\xC0\x21\xC0\x57\x59\x75\x62\x69\x4B\x65\xFF\x7F"), - "YubiKey 5 NFC via ACR122U"}, + {QByteArrayLiteral("\x3B\x8C\x80\x01\x59\x75\x62\x69\x6B\x65\x79\x4E\x45\x4F\x72\xFF\x94"), "YubiKey NEO"}, + {QByteArrayLiteral("\x3B\x8D\x80\x01\x80\x73\xC0\x21\xC0\x57\x59\x75\x62\x69\x4B\x65\x79\xF9"), "YubiKey 5"}, + {QByteArrayLiteral("\x3B\x8D\x80\x01\x80\x73\xC0\x21\xC0\x57\x59\x75\x62\x69\x4B\x65\xFF\x7F"), "YubiKey 5"}, {QByteArrayLiteral("\x3B\xF8\x13\x00\x00\x81\x31\xFE\x15\x59\x75\x62\x69\x6B\x65\x79\x34\xD4"), - "YubiKey 4 OTP+CCID"}, + "YubiKey 4 - OTP+CCID"}, {QByteArrayLiteral("\x3B\xF9\x18\x00\xFF\x81\x31\xFE\x45\x50\x56\x5F\x4A\x33\x41\x30\x34\x30\x40"), - "YubiKey NEO OTP+U2F+CCID (PKI)"}, + "YubiKey NEO - OTP+U2F+CCID (PKI)"}, {QByteArrayLiteral("\x3B\xFA\x13\x00\x00\x81\x31\xFE\x15\x59\x75\x62\x69\x6B\x65\x79\x4E\x45\x4F\xA6"), "YubiKey NEO"}, {QByteArrayLiteral("\x3B\xFC\x13\x00\x00\x81\x31\xFE\x15\x59\x75\x62\x69\x6B\x65\x79\x4E\x45\x4F\x72\x33\xE1"), @@ -101,12 +101,18 @@ private: "YubiKey NEO"}, {QByteArrayLiteral( "\x3B\xFD\x13\x00\x00\x81\x31\xFE\x15\x80\x73\xC0\x21\xC0\x57\x59\x75\x62\x69\x4B\x65\x79\x40"), - "YubiKey 5 NFC (PKI)"}, + "YubiKey 5 (PKI)"}, {QByteArrayLiteral( "\x3B\xFD\x13\x00\x00\x81\x31\xFE\x45\x41\x37\x30\x30\x36\x43\x47\x20\x32\x34\x32\x52\x31\xD6"), "YubiKey NEO (token)"}, // Other tokens implementing the Yubikey challenge-response protocol - {QByteArrayLiteral("\x3B\x80\x80\x01\x01"), "Fidesmo Card 2.0"}}; + {QByteArrayLiteral("\x3B\x80\x80\x01\x01"), "Fidesmo Card 2.0"}, + {QByteArrayLiteral("\x3B\x8A\x80\x01\x00\x31\xC1\x73\xC8\x40\x00\x00\x90\x00\x90"), "VivoKey Apex"}, + {QByteArrayLiteral("\x3B\x8D\x80\x01\x00\x31\xC1\x73\xC8\x40\x00\x52\xA5\x10\x00\x90\x00\x70"), + "Dangerous Things FlexSecure"}, + {QByteArrayLiteral("\x3b\x8f\x01\x80\x5d\x4e\x69\x74\x72\x6f\x6b\x65\x79\x00\x00\x00\x00\x00\x6a"), + "Nitrokey 3"}, + }; }; #endif // KEEPASSX_YUBIKEY_INTERFACE_PCSC_H diff --git a/src/keys/drivers/YubiKeyInterfaceUSB.cpp b/src/keys/drivers/YubiKeyInterfaceUSB.cpp index ffbceeebb..80d200f91 100644 --- a/src/keys/drivers/YubiKeyInterfaceUSB.cpp +++ b/src/keys/drivers/YubiKeyInterfaceUSB.cpp @@ -21,7 +21,6 @@ #include "core/Tools.h" #include "crypto/Random.h" #include "thirdparty/ykcore/ykcore.h" -#include "thirdparty/ykcore/ykdef.h" #include "thirdparty/ykcore/ykstatus.h" namespace @@ -82,7 +81,6 @@ namespace } // namespace YubiKeyInterfaceUSB::YubiKeyInterfaceUSB() - : YubiKeyInterface() { if (!yk_init()) { qDebug("YubiKey: Failed to initialize USB interface."); @@ -107,15 +105,14 @@ YubiKeyInterfaceUSB* YubiKeyInterfaceUSB::instance() return m_instance; } -bool YubiKeyInterfaceUSB::findValidKeys() +YubiKey::KeyMap YubiKeyInterfaceUSB::findValidKeys() { m_error.clear(); if (!isInitialized()) { - return false; + return {}; } - // Remove all known keys - m_foundKeys.clear(); + YubiKey::KeyMap keyMap; // Try to detect up to 4 connected hardware keys for (int i = 0; i < MAX_KEYS; ++i) { @@ -133,13 +130,12 @@ bool YubiKeyInterfaceUSB::findValidKeys() yk_get_key_vid_pid(yk_key, &vid, &pid); QString name = m_pid_names.value(pid, tr("Unknown")); - if (vid == 0x1d50) { - name = QStringLiteral("OnlyKey"); + if (vid == ONLYKEY_VID) { + name = QStringLiteral("OnlyKey %ver"); + } + if (name.contains("%ver")) { + name = name.replace("%ver", QString::number(ykds_version_major(st))); } - name += QString(" v%1.%2.%3") - .arg(QString::number(ykds_version_major(st)), - QString::number(ykds_version_minor(st)), - QString::number(ykds_version_build(st))); bool wouldBlock; for (int slot = 1; slot <= 2; ++slot) { @@ -151,25 +147,23 @@ bool YubiKeyInterfaceUSB::findValidKeys() // Don't actually challenge a YubiKey Neo or below, they always require button press // if it is enabled for the slot resulting in failed detection if (pid <= NEO_OTP_U2F_CCID_PID) { - auto display = tr("(USB) %1 [%2] Configured Slot - %3") + auto display = tr("%1 [%2] - Slot %3", "YubiKey NEO display fields") .arg(name, QString::number(serial), QString::number(slot)); - m_foundKeys.insert(serial, {slot, display}); + keyMap.insert({serial, slot}, display); } else if (performTestChallenge(yk_key, slot, &wouldBlock)) { auto display = - tr("(USB) %1 [%2] Challenge-Response - Slot %3 - %4") + tr("%1 [%2] - Slot %3, %4", "YubiKey display fields") .arg(name, QString::number(serial), QString::number(slot), wouldBlock ? tr("Press", "USB Challenge-Response Key interaction request") : tr("Passive", "USB Challenge-Response Key no interaction required")); - m_foundKeys.insert(serial, {slot, display}); + keyMap.insert({serial, slot}, display); } } ykds_free(st); closeKey(yk_key); - - Tools::wait(100); } else if (yk_errno == YK_ENOKEY) { // No more keys are connected break; @@ -180,7 +174,7 @@ bool YubiKeyInterfaceUSB::findValidKeys() } } - return !m_foundKeys.isEmpty(); + return keyMap; } /** @@ -198,6 +192,7 @@ bool YubiKeyInterfaceUSB::testChallenge(YubiKeySlot slot, bool* wouldBlock) if (yk_key) { ret = performTestChallenge(yk_key, slot.second, wouldBlock); } + closeKey(yk_key); return ret; } @@ -233,18 +228,11 @@ YubiKeyInterfaceUSB::challenge(YubiKeySlot slot, const QByteArray& challenge, Bo return YubiKey::ChallengeResult::YCR_ERROR; } - // Try to grab a lock for 1 second, fail out if not possible - if (!m_mutex.tryLock(1000)) { - m_error = tr("Hardware key is currently in use."); - return YubiKey::ChallengeResult::YCR_ERROR; - } - auto* yk_key = openKeySerial(slot.first); if (!yk_key) { // Key with specified serial number is not connected m_error = tr("Could not find hardware key with serial number %1. Please plug it in to continue.").arg(slot.first); - m_mutex.unlock(); return YubiKey::ChallengeResult::YCR_ERROR; } @@ -253,7 +241,6 @@ YubiKeyInterfaceUSB::challenge(YubiKeySlot slot, const QByteArray& challenge, Bo closeKey(yk_key); emit challengeCompleted(); - m_mutex.unlock(); return ret; } diff --git a/src/keys/drivers/YubiKeyInterfaceUSB.h b/src/keys/drivers/YubiKeyInterfaceUSB.h index 885188615..07c8118b7 100644 --- a/src/keys/drivers/YubiKeyInterfaceUSB.h +++ b/src/keys/drivers/YubiKeyInterfaceUSB.h @@ -32,8 +32,10 @@ class YubiKeyInterfaceUSB : public YubiKeyInterface public: static YubiKeyInterfaceUSB* instance(); + static constexpr int YUBICO_USB_VID = YUBICO_VID; + static constexpr int ONLYKEY_USB_VID = ONLYKEY_VID; - bool findValidKeys() override; + YubiKey::KeyMap findValidKeys() override; YubiKey::ChallengeResult challenge(YubiKeySlot slot, const QByteArray& challenge, Botan::secure_vector& response) override; @@ -53,22 +55,22 @@ private: bool performTestChallenge(void* key, int slot, bool* wouldBlock) override; // This map provides display names for the various USB PIDs of the Yubikeys - const QHash m_pid_names = {{YUBIKEY_PID, "YubiKey 1/2"}, - {NEO_OTP_PID, "YubiKey NEO - OTP only"}, - {NEO_OTP_CCID_PID, "YubiKey NEO - OTP and CCID"}, - {NEO_CCID_PID, "YubiKey NEO - CCID only"}, - {NEO_U2F_PID, "YubiKey NEO - U2F only"}, - {NEO_OTP_U2F_PID, "YubiKey NEO - OTP and U2F"}, - {NEO_U2F_CCID_PID, "YubiKey NEO - U2F and CCID"}, - {NEO_OTP_U2F_CCID_PID, "YubiKey NEO - OTP, U2F and CCID"}, - {YK4_OTP_PID, "YubiKey 4/5 - OTP only"}, - {YK4_U2F_PID, "YubiKey 4/5 - U2F only"}, - {YK4_OTP_U2F_PID, "YubiKey 4/5 - OTP and U2F"}, - {YK4_CCID_PID, "YubiKey 4/5 - CCID only"}, - {YK4_OTP_CCID_PID, "YubiKey 4/5 - OTP and CCID"}, - {YK4_U2F_CCID_PID, "YubiKey 4/5 - U2F and CCID"}, - {YK4_OTP_U2F_CCID_PID, "YubiKey 4/5 - OTP, U2F and CCID"}, - {PLUS_U2F_OTP_PID, "YubiKey plus - OTP+U2F"}}; + const QHash m_pid_names = {{YUBIKEY_PID, "YubiKey %ver"}, + {NEO_OTP_PID, "YubiKey NEO - OTP"}, + {NEO_OTP_CCID_PID, "YubiKey NEO - OTP+CCID"}, + {NEO_CCID_PID, "YubiKey NEO - CCID"}, + {NEO_U2F_PID, "YubiKey NEO - FIDO"}, + {NEO_OTP_U2F_PID, "YubiKey NEO - OTP+FIDO"}, + {NEO_U2F_CCID_PID, "YubiKey NEO - FIDO+CCID"}, + {NEO_OTP_U2F_CCID_PID, "YubiKey NEO - OTP+FIDO+CCID"}, + {YK4_OTP_PID, "YubiKey %ver - OTP"}, + {YK4_U2F_PID, "YubiKey %ver - U2F"}, + {YK4_OTP_U2F_PID, "YubiKey %ver - OTP+FIDO"}, + {YK4_CCID_PID, "YubiKey %ver - CCID"}, + {YK4_OTP_CCID_PID, "YubiKey %ver - OTP+CCID"}, + {YK4_U2F_CCID_PID, "YubiKey %ver - FIDO+CCID"}, + {YK4_OTP_U2F_CCID_PID, "YubiKey %ver - OTP+FIDO+CCID"}, + {PLUS_U2F_OTP_PID, "YubiKey plus - OTP+FIDO"}}; }; #endif // KEEPASSX_YUBIKEY_INTERFACE_USB_H diff --git a/src/keys/drivers/YubiKeyStub.cpp b/src/keys/drivers/YubiKeyStub.cpp index 5609c4b4a..df07ab5f9 100644 --- a/src/keys/drivers/YubiKeyStub.cpp +++ b/src/keys/drivers/YubiKeyStub.cpp @@ -47,17 +47,11 @@ void YubiKey::findValidKeysAsync() { } -QList YubiKey::foundKeys() +YubiKey::KeyMap YubiKey::foundKeys() { return {}; } -QString YubiKey::getDisplayName(YubiKeySlot slot) -{ - Q_UNUSED(slot); - return {}; -} - QString YubiKey::errorMessage() { return {}; diff --git a/src/main.cpp b/src/main.cpp index 24d891a06..f0c987fac 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -17,6 +17,7 @@ */ #include +#include #include #include @@ -43,6 +44,10 @@ Q_IMPORT_PLUGIN(QXcbIntegrationPlugin) #endif #endif +#ifdef Q_OS_WIN +#include +#endif + int main(int argc, char** argv) { QT_REQUIRE_VERSION(argc, argv, QT_VERSION_STR) @@ -73,7 +78,7 @@ int main(int argc, char** argv) QCommandLineOption keyfileOption("keyfile", QObject::tr("key file of the database"), "keyfile"); QCommandLineOption pwstdinOption("pw-stdin", QObject::tr("read password of the database from stdin")); QCommandLineOption allowScreenCaptureOption("allow-screencapture", - QObject::tr("allow app screen recordering and screenshots")); + QObject::tr("allow screenshots and app recording (Windows/macOS)")); QCommandLineOption helpOption = parser.addHelpOption(); QCommandLineOption versionOption = parser.addVersionOption(); @@ -84,10 +89,7 @@ int main(int argc, char** argv) parser.addOption(keyfileOption); parser.addOption(pwstdinOption); parser.addOption(debugInfoOption); - - if (osUtils->canPreventScreenCapture()) { - parser.addOption(allowScreenCaptureOption); - } + parser.addOption(allowScreenCaptureOption); parser.process(app); @@ -109,9 +111,30 @@ int main(int argc, char** argv) Config::createConfigFromFile(parser.value(configOption), parser.value(localConfigOption)); } + // Extract file names provided on the command line for opening + QStringList fileNames; +#ifdef Q_OS_WIN + // Get correct case for Windows filenames (fixes #7139) + for (const auto& file : parser.positionalArguments()) { + const auto fileInfo = QFileInfo(file); + WIN32_FIND_DATAW findFileData; + HANDLE hFind; + const wchar_t* absolutePathWchar = reinterpret_cast(fileInfo.absoluteFilePath().utf16()); + hFind = FindFirstFileW(absolutePathWchar, &findFileData); + if (hFind != INVALID_HANDLE_VALUE) { + fileNames << QString("%1/%2").arg(fileInfo.absolutePath(), QString::fromWCharArray(findFileData.cFileName)); + FindClose(hFind); + } + } +#else + for (const auto& file : parser.positionalArguments()) { + if (QFile::exists(file)) { + fileNames << QDir::toNativeSeparators(file); + } + } +#endif + // Process single instance and early exit if already running - // FIXME: this is a *mess* and it is entirely my fault. --wundrweapon - const QStringList fileNames = parser.positionalArguments(); if (app.isAlreadyRunning()) { if (parser.isSet(lockOption)) { if (app.sendLockToInstance()) { @@ -130,6 +153,14 @@ int main(int argc, char** argv) return EXIT_SUCCESS; } + if (parser.isSet(lockOption)) { + qWarning() << QObject::tr("KeePassXC is not running. No open database to lock").toUtf8().constData(); + + // still return with EXIT_SUCCESS because when used within a script for ensuring that there is no unlocked + // keepass database (e.g. screen locking) we can consider it as successful + return EXIT_SUCCESS; + } + if (!Crypto::init()) { QString error = QObject::tr("Fatal error while testing the cryptographic functions."); error.append("\n"); @@ -145,26 +176,18 @@ int main(int argc, char** argv) QGuiApplication::setDesktopFileName(app.property("KPXC_QUALIFIED_APPNAME").toString() + QStringLiteral(".desktop")); #endif - Application::bootstrap(); + Application::bootstrap(config()->get(Config::GUI_Language).toString()); MainWindow mainWindow; - -#ifndef QT_DEBUG - // Disable screen capture if capable and not explicitly allowed - if (osUtils->canPreventScreenCapture() && !parser.isSet(allowScreenCaptureOption)) { - // This ensures any top-level windows (Main Window, Modal Dialogs, etc.) are excluded from screenshots - QObject::connect(&app, &QGuiApplication::focusWindowChanged, &mainWindow, [&](QWindow* window) { - if (window) { - if (!osUtils->setPreventScreenCapture(window, true)) { - mainWindow.displayGlobalMessage( - QObject::tr("Warning: Failed to prevent screenshots on a top level window!"), - MessageWidget::Error); - } - } - }); - } +#ifdef Q_OS_WIN + // Qt Hack - Prevent white flicker when showing window + mainWindow.setProperty("windowOpacity", 0.0); #endif + // Disable screen capture if not explicitly allowed + // This ensures any top-level windows (Main Window, Modal Dialogs, etc.) are excluded from screenshots + mainWindow.setAllowScreenCapture(parser.isSet(allowScreenCaptureOption)); + const bool pwstdin = parser.isSet(pwstdinOption); if (!fileNames.isEmpty() && pwstdin) { Utils::setDefaultTextStreams(); @@ -178,10 +201,15 @@ int main(int argc, char** argv) out << QObject::tr("Database password: ") << flush; password = Utils::getPassword(); } + mainWindow.openDatabase(filename, password, parser.value(keyfileOption)); + } - if (!filename.isEmpty() && QFile::exists(filename) && !filename.endsWith(".json", Qt::CaseInsensitive)) { - mainWindow.openDatabase(filename, password, parser.value(keyfileOption)); - } + // start minimized if configured + if (config()->get(Config::GUI_MinimizeOnStartup).toBool()) { + mainWindow.hideWindow(); + } else { + mainWindow.bringToFront(); + Application::processEvents(); } int exitCode = Application::exec(); diff --git a/src/proxy/CMakeLists.txt b/src/proxy/CMakeLists.txt index 15137f5b5..be756672d 100755 --- a/src/proxy/CMakeLists.txt +++ b/src/proxy/CMakeLists.txt @@ -21,7 +21,7 @@ if(WITH_XC_BROWSER) # Alloc must be defined in a static library to prevent clashing with clang ASAN definitions add_library(proxy_alloc STATIC ../core/Alloc.cpp) - target_link_libraries(proxy_alloc PRIVATE Qt5::Core ${BOTAN2_LIBRARIES}) + target_link_libraries(proxy_alloc PRIVATE Qt5::Core ${BOTAN_LIBRARIES}) add_executable(keepassxc-proxy ${proxy_SOURCES}) target_link_libraries(keepassxc-proxy proxy_alloc Qt5::Core Qt5::Network) diff --git a/src/sshagent/KeeAgentSettings.cpp b/src/sshagent/KeeAgentSettings.cpp index c8e60e393..272fb7edf 100644 --- a/src/sshagent/KeeAgentSettings.cpp +++ b/src/sshagent/KeeAgentSettings.cpp @@ -355,7 +355,11 @@ bool KeeAgentSettings::inEntryAttachments(const EntryAttachments* attachments) */ bool KeeAgentSettings::fromEntry(const Entry* entry) { - return fromXml(entry->attachments()->value("KeeAgent.settings")); + const auto attachments = entry->attachments(); + if (attachments->hasKey("KeeAgent.settings")) { + return fromXml(attachments->value("KeeAgent.settings")); + } + return false; } /** diff --git a/src/sshagent/OpenSSHKey.cpp b/src/sshagent/OpenSSHKey.cpp index e7a2a9b85..e6b21c863 100644 --- a/src/sshagent/OpenSSHKey.cpp +++ b/src/sshagent/OpenSSHKey.cpp @@ -30,6 +30,7 @@ const QString OpenSSHKey::TYPE_DSA_PRIVATE = "DSA PRIVATE KEY"; const QString OpenSSHKey::TYPE_RSA_PRIVATE = "RSA PRIVATE KEY"; const QString OpenSSHKey::TYPE_OPENSSH_PRIVATE = "OPENSSH PRIVATE KEY"; +const QString OpenSSHKey::OPENSSH_CIPHER_SUFFIX = "@openssh.com"; OpenSSHKey::OpenSSHKey(QObject* parent) : QObject(parent) @@ -310,9 +311,16 @@ bool OpenSSHKey::openKey(const QString& passphrase) QByteArray rawData = m_rawData; if (m_cipherName != "none") { - auto cipherMode = SymmetricCipher::stringToMode(m_cipherName); + QString l_cipherName(m_cipherName); + if (l_cipherName.endsWith(OPENSSH_CIPHER_SUFFIX)) { + l_cipherName.remove(OPENSSH_CIPHER_SUFFIX); + } + auto cipherMode = SymmetricCipher::stringToMode(l_cipherName); if (cipherMode == SymmetricCipher::InvalidMode) { - m_error = tr("Unknown cipher: %1").arg(m_cipherName); + m_error = tr("Unknown cipher: %1").arg(l_cipherName); + return false; + } else if (cipherMode == SymmetricCipher::Aes256_GCM) { + m_error = tr("AES-256/GCM is currently not supported"); return false; } @@ -325,7 +333,7 @@ bool OpenSSHKey::openKey(const QString& passphrase) } int keySize = cipher->keySize(cipherMode); - int blockSize = 16; + int ivSize = cipher->ivSize(cipherMode); BinaryStream optionStream(&m_kdfOptions); @@ -335,7 +343,7 @@ bool OpenSSHKey::openKey(const QString& passphrase) optionStream.readString(salt); optionStream.read(rounds); - QByteArray decryptKey(keySize + blockSize, '\0'); + QByteArray decryptKey(keySize + ivSize, '\0'); try { auto baPass = passphrase.toUtf8(); auto pwhash = Botan::PasswordHashFamily::create_or_throw("Bcrypt-PBKDF")->from_iterations(rounds); @@ -351,7 +359,7 @@ bool OpenSSHKey::openKey(const QString& passphrase) } keyData = decryptKey.left(keySize); - ivData = decryptKey.right(blockSize); + ivData = decryptKey.right(ivSize); } else if (m_kdfName == "md5") { if (m_cipherIV.length() < 8) { m_error = tr("Cipher IV is too short for MD5 kdf"); diff --git a/src/sshagent/OpenSSHKey.h b/src/sshagent/OpenSSHKey.h index 78ccf7192..a42e433de 100644 --- a/src/sshagent/OpenSSHKey.h +++ b/src/sshagent/OpenSSHKey.h @@ -58,6 +58,7 @@ public: static const QString TYPE_DSA_PRIVATE; static const QString TYPE_RSA_PRIVATE; static const QString TYPE_OPENSSH_PRIVATE; + static const QString OPENSSH_CIPHER_SUFFIX; private: enum KeyPart diff --git a/src/sshagent/SSHAgent.cpp b/src/sshagent/SSHAgent.cpp index 2aff5f4cb..847691221 100644 --- a/src/sshagent/SSHAgent.cpp +++ b/src/sshagent/SSHAgent.cpp @@ -210,8 +210,8 @@ bool SSHAgent::sendMessagePageant(const QByteArray& in, QByteArray& out) return false; } - QByteArray mapName = - (QString("SSHAgentRequest") + reinterpret_cast(QThread::currentThreadId())).toLatin1(); + auto threadId = reinterpret_cast(QThread::currentThreadId()); + QByteArray mapName = (QString("SSHAgentRequest%1").arg(threadId, 8, 16, QChar('0'))).toLatin1(); HANDLE handle = CreateFileMappingA(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, AGENT_MAX_MSGLEN, mapName.data()); diff --git a/src/thirdparty/ykcore/CMakeLists.txt b/src/thirdparty/ykcore/CMakeLists.txt index 47191ea74..103349f22 100644 --- a/src/thirdparty/ykcore/CMakeLists.txt +++ b/src/thirdparty/ykcore/CMakeLists.txt @@ -27,13 +27,15 @@ if(WIN32) elseif(UNIX AND NOT APPLE) target_sources(ykcore PRIVATE ykcore_libusb-1.0.c) + find_package(Threads REQUIRED) + find_library(LIBUSB_LIBRARY NAMES usb-1.0) find_path(LIBUSB_INCLUDE_DIR NAMES libusb.h PATH_SUFFIXES "libusb-1.0" "libusb") if(NOT LIBUSB_LIBRARY OR NOT LIBUSB_INCLUDE_DIR) message(FATAL_ERROR "libusb-1.0 dev package required, but not found") endif() - target_link_libraries(ykcore PRIVATE ${LIBUSB_LIBRARY}) + target_link_libraries(ykcore PRIVATE Threads::Threads ${LIBUSB_LIBRARY}) target_include_directories(ykcore PRIVATE ${LIBUSB_INCLUDE_DIR}) target_compile_definitions(ykcore PRIVATE _GNU_SOURCE) elseif(APPLE) diff --git a/src/touchid/TouchID.h b/src/touchid/TouchID.h index a5e80f0f9..e32f1fa12 100644 --- a/src/touchid/TouchID.h +++ b/src/touchid/TouchID.h @@ -1,10 +1,6 @@ #ifndef KEEPASSX_TOUCHID_H #define KEEPASSX_TOUCHID_H -#define TOUCHID_UNDEFINED -1 -#define TOUCHID_AVAILABLE 1 -#define TOUCHID_NOT_AVAILABLE 0 - #include class TouchID @@ -15,30 +11,29 @@ public: private: TouchID() { + // Nothing to do here } - // TouchID(TouchID const&); // Don't Implement - // void operator=(TouchID const&); // Don't implement - - QHash m_encryptedMasterKeys; - int m_available = TOUCHID_UNDEFINED; - public: TouchID(TouchID const&) = delete; - void operator=(TouchID const&) = delete; bool storeKey(const QString& databasePath, const QByteArray& passwordKey); - bool getKey(const QString& databasePath, QByteArray& passwordKey) const; - bool containsKey(const QString& databasePath) const; + void reset(const QString& databasePath = ""); bool isAvailable(); - bool authenticate(const QString& message = "") const; +private: + static bool isWatchAvailable(); + static bool isTouchIdAvailable(); - void reset(const QString& databasePath = ""); + static void deleteKeyEntry(const QString& accountName); + static QString databaseKeyName(const QString& databasePath); + +private: + QHash m_encryptedMasterKeys; }; #endif // KEEPASSX_TOUCHID_H diff --git a/src/touchid/TouchID.mm b/src/touchid/TouchID.mm index e7539262e..045658f51 100644 --- a/src/touchid/TouchID.mm +++ b/src/touchid/TouchID.mm @@ -1,10 +1,11 @@ -#define SECURITY_ACCOUNT_PREFIX QString("KeepassXC_TouchID_Keys_") - #include "touchid/TouchID.h" #include "crypto/Random.h" #include "crypto/SymmetricCipher.h" #include "crypto/CryptoHash.h" +#include "config-keepassx.h" + +#include #include #include @@ -13,16 +14,44 @@ #include -inline void debug(const char* message, ...) +#define TOUCH_ID_ENABLE_DEBUG_LOGS() 0 +#if TOUCH_ID_ENABLE_DEBUG_LOGS() +#define debug(...) qWarning(__VA_ARGS__) +#else +inline void debug(const char *message, ...) { - Q_UNUSED(message); - // qWarning(...); + Q_UNUSED(message); +} +#endif + +inline std::string StatusToErrorMessage(OSStatus status) +{ + CFStringRef text = SecCopyErrorMessageString(status, NULL); + if (!text) { + return std::to_string(status); + } + + auto msg = CFStringGetCStringPtr(text, kCFStringEncodingUTF8); + std::string result; + if (msg) { + result = msg; + } + CFRelease(text); + return result; } -inline QString hash(const QString& value) +inline void LogStatusError(const char *message, OSStatus status) { - QByteArray result = CryptoHash::hash(value.toUtf8(), CryptoHash::Sha256).toHex(); - return QString(result); + if (!status) { + return; + } + + std::string msg = StatusToErrorMessage(status); + debug("%s: %s", message, msg.c_str()); +} + +inline CFMutableDictionaryRef makeDictionary() { + return CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); } /** @@ -35,23 +64,42 @@ TouchID& TouchID::getInstance() return instance; } +//! Try to delete an existing keychain entry +void TouchID::deleteKeyEntry(const QString& accountName) +{ + NSString* nsAccountName = accountName.toNSString(); // The NSString is released by Qt + + // try to delete an existing entry + CFMutableDictionaryRef query = makeDictionary(); + CFDictionarySetValue(query, kSecClass, kSecClassGenericPassword); + CFDictionarySetValue(query, kSecAttrAccount, (__bridge CFStringRef) nsAccountName); + CFDictionarySetValue(query, kSecReturnData, kCFBooleanFalse); + + // get data from the KeyChain + OSStatus status = SecItemDelete(query); + LogStatusError("TouchID::storeKey - Status deleting existing entry", status); +} + +QString TouchID::databaseKeyName(const QString &databasePath) +{ + static const QString keyPrefix = "KeepassXC_TouchID_Keys_"; + const QByteArray pathHash = CryptoHash::hash(databasePath.toUtf8(), CryptoHash::Sha256).toHex(); + return keyPrefix + pathHash; +} + /** * Generates a random AES 256bit key and uses it to encrypt the PasswordKey that * protects the database. The encrypted PasswordKey is kept in memory while the - * AES key is stored in the macOS KeyChain protected by TouchID. + * AES key is stored in the macOS KeyChain protected by either TouchID or Apple Watch. */ bool TouchID::storeKey(const QString& databasePath, const QByteArray& passwordKey) { if (databasePath.isEmpty() || passwordKey.isEmpty()) { - // illegal arguments - debug("TouchID::storeKey - Illegal arguments: databasePath = %s, len(passwordKey) = %d", - databasePath.toUtf8().constData(), - passwordKey.length()); + debug("TouchID::storeKey - illegal arguments"); return false; } - if (this->m_encryptedMasterKeys.contains(databasePath)) { - // already stored key for this database + if (m_encryptedMasterKeys.contains(databasePath)) { debug("TouchID::storeKey - Already stored key for this database"); return true; } @@ -62,59 +110,45 @@ bool TouchID::storeKey(const QString& databasePath, const QByteArray& passwordKe SymmetricCipher aes256Encrypt; if (!aes256Encrypt.init(SymmetricCipher::Aes256_GCM, SymmetricCipher::Encrypt, randomKey, randomIV)) { - debug("TouchID::storeKey - Error initializing encryption: %s", - aes256Encrypt.errorString().toUtf8().constData()); + debug("TouchID::storeKey - AES initialisation falied"); return false; } // encrypt and keep result in memory QByteArray encryptedMasterKey = passwordKey; if (!aes256Encrypt.finish(encryptedMasterKey)) { - debug("TouchID::storeKey - Error encrypting: %s", aes256Encrypt.errorString().toUtf8().constData()); - debug(aes256Encrypt.errorString().toUtf8().constData()); + debug("TouchID::getKey - AES encrypt failed: %s", aes256Encrypt.errorString().toUtf8().constData()); return false; } - // memorize which database the stored key is for - m_encryptedMasterKeys.insert(databasePath, encryptedMasterKey); + const QString keyName = databaseKeyName(databasePath); - NSString* accountName = (SECURITY_ACCOUNT_PREFIX + hash(databasePath)).toNSString(); // autoreleased - - // try to delete an existing entry - CFMutableDictionaryRef - query = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); - - CFDictionarySetValue(query, kSecClass, kSecClassGenericPassword); - CFDictionarySetValue(query, kSecAttrAccount, (__bridge CFStringRef) accountName); - CFDictionarySetValue(query, kSecReturnData, kCFBooleanFalse); - - // get data from the KeyChain - OSStatus status = SecItemDelete(query); - - debug("TouchID::storeKey - Status deleting existing entry: %d", status); + deleteKeyEntry(keyName); // Try to delete the existing key entry // prepare adding secure entry to the macOS KeyChain CFErrorRef error = NULL; - SecAccessControlRef sacObject; -#if __clang_major__ >= 9 && MAC_OS_X_VERSION_MIN_REQUIRED >= 101500 - if (@available(macOS 10.15, *)) { - // kSecAccessControlWatch is only available for macOS 10.15 and later - sacObject = SecAccessControlCreateWithFlags(kCFAllocatorDefault, - kSecAttrAccessibleWhenUnlockedThisDeviceOnly, - kSecAccessControlOr | kSecAccessControlBiometryCurrentSet | kSecAccessControlWatch, - &error); - } else { -#endif -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 101201 - sacObject = SecAccessControlCreateWithFlags(kCFAllocatorDefault, - kSecAttrAccessibleWhenUnlockedThisDeviceOnly, - kSecAccessControlTouchIDCurrentSet, // depr: kSecAccessControlBiometryCurrentSet, - &error); -#endif -#if __clang_major__ >= 9 && MAC_OS_X_VERSION_MIN_REQUIRED >= 101500 - } -#endif + // We need both runtime and compile time checks here to solve the following problems: + // - Not all flags are available in all OS versions, so we have to check it at compile time + // - Requesting Biometry/TouchID when to fingerprint sensor is available will result in runtime error + SecAccessControlCreateFlags accessControlFlags = 0; + if (isTouchIdAvailable()) { +#if XC_COMPILER_SUPPORT(APPLE_BIOMETRY) + // Prefer the non-deprecated flag when available + accessControlFlags = kSecAccessControlBiometryCurrentSet; +#elif XC_COMPILER_SUPPORT(TOUCH_ID) + accessControlFlags = kSecAccessControlTouchIDCurrentSet; +#endif + } + + if (isWatchAvailable()) { +#if XC_COMPILER_SUPPORT(WATCH_UNLOCK) + accessControlFlags = accessControlFlags | kSecAccessControlOr | kSecAccessControlWatch; +#endif + } + + SecAccessControlRef sacObject = SecAccessControlCreateWithFlags( + kCFAllocatorDefault, kSecAttrAccessibleWhenUnlockedThisDeviceOnly, accessControlFlags, &error); if (sacObject == NULL || error != NULL) { NSError* e = (__bridge NSError*) error; @@ -122,36 +156,40 @@ bool TouchID::storeKey(const QString& databasePath, const QByteArray& passwordKe return false; } - CFMutableDictionaryRef attributes = - CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + NSString *accountName = keyName.toNSString(); // The NSString is released by Qt // prepare data (key) to be stored - QByteArray dataBytes = (randomKey + randomIV).toHex(); - - CFDataRef valueData = - CFDataCreateWithBytesNoCopy(NULL, reinterpret_cast(dataBytes.data()), dataBytes.length(), NULL); + QByteArray keychainKeyValue = (randomKey + randomIV).toHex(); + CFDataRef keychainValueData = + CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, reinterpret_cast(keychainKeyValue.data()), + keychainKeyValue.length(), kCFAllocatorDefault); + CFMutableDictionaryRef attributes = makeDictionary(); CFDictionarySetValue(attributes, kSecClass, kSecClassGenericPassword); CFDictionarySetValue(attributes, kSecAttrAccount, (__bridge CFStringRef) accountName); - CFDictionarySetValue(attributes, kSecValueData, valueData); + CFDictionarySetValue(attributes, kSecValueData, (__bridge CFDataRef) keychainValueData); CFDictionarySetValue(attributes, kSecAttrSynchronizable, kCFBooleanFalse); CFDictionarySetValue(attributes, kSecUseAuthenticationUI, kSecUseAuthenticationUIAllow); CFDictionarySetValue(attributes, kSecAttrAccessControl, sacObject); // add to KeyChain - status = SecItemAdd(attributes, NULL); - - debug("TouchID::storeKey - Status adding new entry: %d", status); // read w/ e.g. "security error -50" in shell + OSStatus status = SecItemAdd(attributes, NULL); + LogStatusError("TouchID::storeKey - Status adding new entry", status); CFRelease(sacObject); CFRelease(attributes); if (status != errSecSuccess) { - debug("TouchID::storeKey - Not successful, resetting TouchID"); - this->m_encryptedMasterKeys.remove(databasePath); return false; } + // Cleanse the key information from the memory + Botan::secure_scrub_memory(randomKey.data(), randomKey.size()); + Botan::secure_scrub_memory(randomIV.data(), randomIV.size()); + + // memorize which database the stored key is for + m_encryptedMasterKeys.insert(databasePath, encryptedMasterKey); + debug("TouchID::storeKey - Success!"); return true; } @@ -163,25 +201,23 @@ bool TouchID::getKey(const QString& databasePath, QByteArray& passwordKey) const { passwordKey.clear(); if (databasePath.isEmpty()) { - // illegal arguments - debug("TouchID::storeKey - Illegal argument: databasePath = %s", databasePath.toUtf8().constData()); + debug("TouchID::getKey - missing database path"); return false; } - // checks if encrypted PasswordKey is available and is stored for the given database if (!containsKey(databasePath)) { debug("TouchID::getKey - No stored key found"); return false; } // query the KeyChain for the AES key - CFMutableDictionaryRef - query = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + CFMutableDictionaryRef query = makeDictionary(); - NSString* accountName = (SECURITY_ACCOUNT_PREFIX + hash(databasePath)).toNSString(); // autoreleased + const QString keyName = databaseKeyName(databasePath); + NSString* accountName = keyName.toNSString(); // The NSString is released by Qt NSString* touchPromptMessage = QCoreApplication::translate("DatabaseOpenWidget", "authenticate to access the database") - .toNSString(); // autoreleased + .toNSString(); // The NSString is released by Qt CFDictionarySetValue(query, kSecClass, kSecClassGenericPassword); CFDictionarySetValue(query, kSecAttrAccount, (__bridge CFStringRef) accountName); @@ -198,14 +234,14 @@ bool TouchID::getKey(const QString& databasePath, QByteArray& passwordKey) const debug("TouchID::getKey - User canceled authentication"); return true; } else if (status != errSecSuccess || dataTypeRef == NULL) { - debug("TouchID::getKey - Error retrieving result: %d", status); + LogStatusError("TouchID::getKey - key query error", status); return false; } CFDataRef valueData = static_cast(dataTypeRef); QByteArray dataBytes = QByteArray::fromHex(QByteArray(reinterpret_cast(CFDataGetBytePtr(valueData)), CFDataGetLength(valueData))); - CFRelease(valueData); + CFRelease(dataTypeRef); // extract AES key and IV from data bytes QByteArray key = dataBytes.left(SymmetricCipher::keySize(SymmetricCipher::Aes256_GCM)); @@ -213,7 +249,7 @@ bool TouchID::getKey(const QString& databasePath, QByteArray& passwordKey) const SymmetricCipher aes256Decrypt; if (!aes256Decrypt.init(SymmetricCipher::Aes256_GCM, SymmetricCipher::Decrypt, key, iv)) { - debug("TouchID::getKey - Error initializing decryption: %s", aes256Decrypt.errorString().toUtf8().constData()); + debug("TouchID::getKey - AES initialization failed"); return false; } @@ -221,10 +257,14 @@ bool TouchID::getKey(const QString& databasePath, QByteArray& passwordKey) const passwordKey = m_encryptedMasterKeys[databasePath]; if (!aes256Decrypt.finish(passwordKey)) { passwordKey.clear(); - debug("TouchID::getKey - Error decryption: %s", aes256Decrypt.errorString().toUtf8().constData()); + debug("TouchID::getKey - AES decrypt failed: %s", aes256Decrypt.errorString().toUtf8().constData()); return false; } + // Cleanse the key information from the memory + Botan::secure_scrub_memory(key.data(), key.size()); + Botan::secure_scrub_memory(iv.data(), iv.size()); + return true; } @@ -233,96 +273,75 @@ bool TouchID::containsKey(const QString& dbPath) const return m_encryptedMasterKeys.contains(dbPath); } -/** - * Dynamic check if TouchID is available on the current machine. - */ -bool TouchID::isAvailable() +// TODO: Both functions below should probably handle the returned errors to +// provide more information on availability. E.g.: the closed laptop lid results +// in an error (because touch id is not unavailable). That error could be +// displayed to the user when we first check for availability instead of just +// hiding the checkbox. + +//! @return true if Apple Watch is available for authentication. +bool TouchID::isWatchAvailable() { -#if MAC_OS_X_VERSION_MIN_REQUIRED < 101201 - return false; +#if XC_COMPILER_SUPPORT(WATCH_UNLOCK) + @try { + LAContext *context = [[LAContext alloc] init]; + + LAPolicy policyCode = LAPolicyDeviceOwnerAuthenticationWithWatch; + NSError *error; + + bool canAuthenticate = [context canEvaluatePolicy:policyCode error:&error]; + [context release]; + if (error) { + debug("Apple Wach available: %d (%ld / %s / %s)", canAuthenticate, + (long)error.code, error.description.UTF8String, + error.localizedDescription.UTF8String); + } else { + debug("Apple Wach available: %d", canAuthenticate); + } + return canAuthenticate; + } @catch (NSException *) { + return false; + } #else - // cache result - if (this->m_available != TOUCHID_UNDEFINED) { - return (this->m_available == TOUCHID_AVAILABLE); - } - - @try { - LAContext* context = [[LAContext alloc] init]; - - LAPolicy policyCode; -#if __clang_major__ >= 9 && MAC_OS_X_VERSION_MIN_REQUIRED >= 101500 - if (@available(macOS 10.15, *)) { - policyCode = LAPolicyDeviceOwnerAuthenticationWithBiometricsOrWatch; - } else { -#endif - policyCode = LAPolicyDeviceOwnerAuthenticationWithBiometrics; -#if __clang_major__ >= 9 && MAC_OS_X_VERSION_MIN_REQUIRED >= 101500 - } -#endif - - bool canAuthenticate = [context canEvaluatePolicy:policyCode error:nil]; - [context release]; - this->m_available = canAuthenticate ? TOUCHID_AVAILABLE : TOUCHID_NOT_AVAILABLE; - return canAuthenticate; - } - @catch (NSException*) { - this->m_available = TOUCHID_NOT_AVAILABLE; - return false; - } + return false; #endif } -typedef enum +//! @return true if Touch ID is available for authentication. +bool TouchID::isTouchIdAvailable() { - kTouchIDResultNone, - kTouchIDResultAllowed, - kTouchIDResultFailed -} TouchIDResult; +#if XC_COMPILER_SUPPORT(TOUCH_ID) + @try { + LAContext *context = [[LAContext alloc] init]; -/** - * Performs a simple authentication using TouchID. - */ -bool TouchID::authenticate(const QString& message) const + LAPolicy policyCode = LAPolicyDeviceOwnerAuthenticationWithBiometrics; + NSError *error; + + bool canAuthenticate = [context canEvaluatePolicy:policyCode error:&error]; + [context release]; + if (error) { + debug("Touch ID available: %d (%ld / %s / %s)", canAuthenticate, + (long)error.code, error.description.UTF8String, + error.localizedDescription.UTF8String); + } else { + debug("Touch ID available: %d", canAuthenticate); + } + return canAuthenticate; + } @catch (NSException *) { + return false; + } +#else + return false; +#endif +} + +//! @return true if either TouchID or Apple Watch is available at the moment. +bool TouchID::isAvailable() { - // message must not be an empty string - QString msg = message; - if (message.length() == 0) - msg = QCoreApplication::translate("DatabaseOpenWidget", "authenticate a privileged operation"); - - @try { - LAContext* context = [[LAContext alloc] init]; - __block TouchIDResult result = kTouchIDResultNone; - NSString* authMessage = msg.toNSString(); // autoreleased - - LAPolicy policyCode; -#if __clang_major__ >= 9 && MAC_OS_X_VERSION_MIN_REQUIRED >= 101500 - if (@available(macOS 10.15, *)) { - policyCode = LAPolicyDeviceOwnerAuthenticationWithBiometricsOrWatch; - } else { -#endif -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 101201 - policyCode = LAPolicyDeviceOwnerAuthenticationWithBiometrics; -#endif -#if __clang_major__ >= 9 && MAC_OS_X_VERSION_MIN_REQUIRED >= 101500 - } -#endif - - [context evaluatePolicy:policyCode - localizedReason:authMessage reply:^(BOOL success, NSError* error) { - Q_UNUSED(error); - result = success ? kTouchIDResultAllowed : kTouchIDResultFailed; - CFRunLoopWakeUp(CFRunLoopGetCurrent()); - }]; - - while (result == kTouchIDResultNone) - CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, true); - - [context release]; - return result == kTouchIDResultAllowed; - } - @catch (NSException*) { - return false; - } + // note: we cannot cache the check results because the configuration + // is dynamic in its nature. User can close the laptop lid or take off + // the watch, thus making one (or both) of the authentication types unavailable. + return isWatchAvailable() || isTouchIdAvailable(); } /** @@ -331,9 +350,9 @@ bool TouchID::authenticate(const QString& message) const void TouchID::reset(const QString& databasePath) { if (databasePath.isEmpty()) { - this->m_encryptedMasterKeys.clear(); + m_encryptedMasterKeys.clear(); return; } - this->m_encryptedMasterKeys.remove(databasePath); + m_encryptedMasterKeys.remove(databasePath); } diff --git a/src/winhello/WindowsHello.cpp b/src/winhello/WindowsHello.cpp index 7095c72ee..bc244cc26 100644 --- a/src/winhello/WindowsHello.cpp +++ b/src/winhello/WindowsHello.cpp @@ -41,6 +41,7 @@ using namespace Windows::Storage::Streams; namespace { const std::wstring s_winHelloKeyName{L"keepassxc_winhello"}; + int g_promptFocusCount = 0; void queueSecurityPromptFocus(int delay = 500) { @@ -48,7 +49,11 @@ namespace auto hWnd = ::FindWindowA("Credential Dialog Xaml Host", nullptr); if (hWnd) { ::SetForegroundWindow(hWnd); + } else if (++g_promptFocusCount <= 3) { + queueSecurityPromptFocus(); + return; } + g_promptFocusCount = 0; }); } @@ -59,30 +64,37 @@ namespace array_view(reinterpret_cast(challenge.data()), challenge.size())); return AsyncTask::runAndWaitForFuture([&] { - // The first time this is used a key-pair will be generated using the common name - auto result = - KeyCredentialManager::RequestCreateAsync(s_winHelloKeyName, KeyCredentialCreationOption::FailIfExists) - .get(); + try { + // The first time this is used a key-pair will be generated using the common name + auto result = KeyCredentialManager::RequestCreateAsync(s_winHelloKeyName, + KeyCredentialCreationOption::FailIfExists) + .get(); - if (result.Status() == KeyCredentialStatus::CredentialAlreadyExists) { - result = KeyCredentialManager::OpenAsync(s_winHelloKeyName).get(); - } else if (result.Status() != KeyCredentialStatus::Success) { - error = QObject::tr("Failed to create Windows Hello credential."); + if (result.Status() == KeyCredentialStatus::CredentialAlreadyExists) { + result = KeyCredentialManager::OpenAsync(s_winHelloKeyName).get(); + } else if (result.Status() != KeyCredentialStatus::Success) { + error = QObject::tr("Failed to create Windows Hello credential."); + return false; + } + + const auto signature = result.Credential().RequestSignAsync(challengeBuffer).get(); + if (signature.Status() != KeyCredentialStatus::Success) { + if (signature.Status() != KeyCredentialStatus::UserCanceled) { + error = QObject::tr("Failed to sign challenge using Windows Hello."); + } + return false; + } + + // Use the SHA-256 hash of the challenge signature as the encryption key + const auto response = signature.Result(); + CryptoHash hasher(CryptoHash::Sha256); + hasher.addData({reinterpret_cast(response.data()), static_cast(response.Length())}); + key = hasher.result(); + return true; + } catch (winrt::hresult_error const& ex) { + error = QString::fromStdString(winrt::to_string(ex.message())); return false; } - - const auto signature = result.Credential().RequestSignAsync(challengeBuffer).get(); - if (signature.Status() != KeyCredentialStatus::Success) { - error = QObject::tr("Failed to sign challenge using Windows Hello."); - return false; - } - - // Use the SHA-256 hash of the challenge signature as the encryption key - const auto response = signature.Result(); - CryptoHash hasher(CryptoHash::Sha256); - hasher.addData({reinterpret_cast(response.data()), static_cast(response.Length())}); - key = hasher.result(); - return true; }); } } // namespace diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 325ff880e..2285995b5 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2018 KeePassXC Team +# Copyright (C) 2023 KeePassXC Team # Copyright (C) 2010 Felix Geyer # # This program is free software: you can redistribute it and/or modify @@ -140,7 +140,7 @@ add_unit_test(NAME testdeletedobjects SOURCES TestDeletedObjects.cpp add_unit_test(NAME testkeepass1reader SOURCES TestKeePass1Reader.cpp LIBS ${TEST_LIBRARIES}) -add_unit_test(NAME testopvaultreader SOURCES TestOpVaultReader.cpp +add_unit_test(NAME testimports SOURCES TestImports.cpp LIBS ${TEST_LIBRARIES}) if(WITH_XC_NETWORKING) @@ -229,10 +229,26 @@ endif() if(WITH_XC_BROWSER) add_unit_test(NAME testbrowser SOURCES TestBrowser.cpp LIBS ${TEST_LIBRARIES}) + + if(WITH_XC_BROWSER_PASSKEYS) + # Prevent duplicate linking with macOS + if(APPLE) + add_unit_test(NAME testpasskeys SOURCES TestPasskeys.cpp + LIBS ${TEST_LIBRARIES}) + else() + add_unit_test(NAME testpasskeys SOURCES TestPasskeys.cpp + LIBS keepassxcbrowser ${TEST_LIBRARIES}) + endif() + endif() +endif() + +if(WITH_XC_NETWORKING OR WITH_XC_BROWSER) + add_unit_test(NAME testurltools SOURCES TestUrlTools.cpp LIBS ${TEST_LIBRARIES}) endif() add_unit_test(NAME testcli SOURCES TestCli.cpp LIBS testsupport cli ${TEST_LIBRARIES}) +target_compile_definitions(testcli PRIVATE KEEPASSX_CLI_PATH="$") if(WITH_GUI_TESTS) add_subdirectory(gui) diff --git a/tests/TestAutoType.cpp b/tests/TestAutoType.cpp index 235ba5a86..eea1f0532 100644 --- a/tests/TestAutoType.cpp +++ b/tests/TestAutoType.cpp @@ -62,8 +62,7 @@ void TestAutoType::init() m_db = QSharedPointer::create(); m_dbList.clear(); m_dbList.append(m_db); - m_group = new Group(); - m_db->setRootGroup(m_group); + m_group = m_db->rootGroup(); AutoTypeAssociations::Association association; @@ -337,7 +336,7 @@ void TestAutoType::testAutoTypeSyntaxChecks() QVERIFY2(AutoType::verifyAutoTypeSyntax("{S:FOO}{S:HELLO WORLD}", entry, error), error.toLatin1()); QVERIFY2(!AutoType::verifyAutoTypeSyntax("{S:SPECIAL_TOKEN{}}", entry, error), error.toLatin1()); - QVERIFY2(!AutoType::verifyAutoTypeSyntax("{BEEP 3 3}", entry, error), error.toLatin1()); + QVERIFY2(AutoType::verifyAutoTypeSyntax("{BEEP 3 3}", entry, error), error.toLatin1()); QVERIFY2(AutoType::verifyAutoTypeSyntax("{BEEP 3}", entry, error), error.toLatin1()); QVERIFY2(AutoType::verifyAutoTypeSyntax("{VKEY 0x01}", entry, error), error.toLatin1()); diff --git a/tests/TestBrowser.cpp b/tests/TestBrowser.cpp index 6dcff3b74..19dbba8f4 100644 --- a/tests/TestBrowser.cpp +++ b/tests/TestBrowser.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 KeePassXC Team + * Copyright (C) 2023 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -37,6 +37,7 @@ const QString SECRETKEY = "B8ei4ZjQJkWzZU2SK/tBsrYRwp+6ztEMf5GFQV+i0yI="; const QString SERVERPUBLICKEY = "lKnbLhrVCOqzEjuNoUz1xj9EZlz8xeO4miZBvLrUPVQ="; const QString SERVERSECRETKEY = "tbPQcghxfOgbmsnEqG2qMIj1W2+nh+lOJcNsHncaz1Q="; const QString NONCE = "zBKdvTjL5bgWaKMCTut/8soM/uoMrFoZ"; +const QString INCREMENTEDNONCE = "zRKdvTjL5bgWaKMCTut/8soM/uoMrFoZ"; const QString CLIENTID = "testClient"; void TestBrowser::initTestCase() @@ -107,55 +108,40 @@ void TestBrowser::testGetBase64FromKey() void TestBrowser::testIncrementNonce() { auto result = browserMessageBuilder()->incrementNonce(NONCE); - QCOMPARE(result, QString("zRKdvTjL5bgWaKMCTut/8soM/uoMrFoZ")); + QCOMPARE(result, INCREMENTEDNONCE); } -/** - * Tests for BrowserService - */ -void TestBrowser::testTopLevelDomain() +void TestBrowser::testBuildResponse() { - QString url1 = "https://another.example.co.uk"; - QString url2 = "https://www.example.com"; - QString url3 = "http://test.net"; - QString url4 = "http://so.many.subdomains.co.jp"; - QString url5 = "https://192.168.0.1"; - QString url6 = "https://192.168.0.1:8000"; + const auto object = QJsonObject{{"test", true}}; + const QJsonArray arr = {QJsonObject{{"test", true}}}; + const auto val = QString("value1"); - QString res1 = m_browserService->getTopLevelDomainFromUrl(url1); - QString res2 = m_browserService->getTopLevelDomainFromUrl(url2); - QString res3 = m_browserService->getTopLevelDomainFromUrl(url3); - QString res4 = m_browserService->getTopLevelDomainFromUrl(url4); - QString res5 = m_browserService->getTopLevelDomainFromUrl(url5); - QString res6 = m_browserService->getTopLevelDomainFromUrl(url6); + // Note: Passing a const QJsonObject will fail + const Parameters params{ + {"test-param-1", val}, {"test-param-2", 2}, {"test-param-3", false}, {"object", object}, {"arr", arr}}; - QCOMPARE(res1, QString("example.co.uk")); - QCOMPARE(res2, QString("example.com")); - QCOMPARE(res3, QString("test.net")); - QCOMPARE(res4, QString("subdomains.co.jp")); - QCOMPARE(res5, QString("192.168.0.1")); - QCOMPARE(res6, QString("192.168.0.1")); -} + const auto action = QString("test-action"); + const auto message = browserMessageBuilder()->buildResponse(action, NONCE, params, PUBLICKEY, SERVERSECRETKEY); + QVERIFY(!message.isEmpty()); + QCOMPARE(message["action"].toString(), action); + QCOMPARE(message["nonce"].toString(), NONCE); -void TestBrowser::testIsIpAddress() -{ - auto host1 = "example.com"; // Not valid - auto host2 = "192.168.0.1"; - auto host3 = "278.21.2.0"; // Not valid - auto host4 = "2001:0db8:85a3:0000:0000:8a2e:0370:7334"; - auto host5 = "2001:db8:0:1:1:1:1:1"; - auto host6 = "fe80::1ff:fe23:4567:890a"; - auto host7 = "2001:20::1"; - auto host8 = "2001:0db8:85y3:0000:0000:8a2e:0370:7334"; // Not valid + const auto decrypted = + browserMessageBuilder()->decryptMessage(message["message"].toString(), NONCE, PUBLICKEY, SERVERSECRETKEY); + QVERIFY(!decrypted.isEmpty()); + QCOMPARE(decrypted["test-param-1"].toString(), QString("value1")); + QCOMPARE(decrypted["test-param-2"].toInt(), 2); + QCOMPARE(decrypted["test-param-3"].toBool(), false); - QVERIFY(!m_browserService->isIpAddress(host1)); - QVERIFY(m_browserService->isIpAddress(host2)); - QVERIFY(!m_browserService->isIpAddress(host3)); - QVERIFY(m_browserService->isIpAddress(host4)); - QVERIFY(m_browserService->isIpAddress(host5)); - QVERIFY(m_browserService->isIpAddress(host6)); - QVERIFY(m_browserService->isIpAddress(host7)); - QVERIFY(!m_browserService->isIpAddress(host8)); + const auto objectResult = decrypted["object"].toObject(); + QCOMPARE(objectResult["test"].toBool(), true); + + const auto arrResult = decrypted["arr"].toArray(); + QCOMPARE(arrResult.size(), 1); + + const auto firstArr = arrResult[0].toObject(); + QCOMPARE(firstArr["test"].toBool(), true); } void TestBrowser::testSortPriority() @@ -168,8 +154,7 @@ void TestBrowser::testSortPriority() QScopedPointer entry(new Entry()); entry->setUrl(entryUrl); - QCOMPARE(m_browserService->sortPriority(m_browserService->getEntryURLs(entry.data()), siteUrl, formUrl), - expectedScore); + QCOMPARE(m_browserService->sortPriority(entry->getAllUrls(), siteUrl, formUrl), expectedScore); } void TestBrowser::testSortPriority_data() @@ -281,7 +266,7 @@ void TestBrowser::compareEntriesByPath(QSharedPointer db, QListtitle(); /* Look for an entry with that path. First using handleEntry, then through the search */ - QCOMPARE(m_browserService->handleEntry(entry, testUrl, ""), true); + QCOMPARE(m_browserService->shouldIncludeEntry(entry, testUrl, ""), true); auto result = m_browserService->searchEntries(db, testUrl, ""); QCOMPARE(result.length(), 1); QCOMPARE(result[0], entry); @@ -310,8 +295,8 @@ void TestBrowser::testSearchEntriesByUUID() for (Entry* entry : entries) { QString testUrl = "keepassxc://by-uuid/" + entry->uuidToHex(); - /* Look for an entry with that UUID. First using handleEntry, then through the search */ - QCOMPARE(m_browserService->handleEntry(entry, testUrl, ""), true); + /* Look for an entry with that UUID. First using shouldIncludeEntry, then through the search */ + QCOMPARE(m_browserService->shouldIncludeEntry(entry, testUrl, ""), true); auto result = m_browserService->searchEntries(db, testUrl, ""); QCOMPARE(result.length(), 1); QCOMPARE(result[0], entry); @@ -329,7 +314,7 @@ void TestBrowser::testSearchEntriesByUUID() QString testUrl = "keepassxc://by-uuid/" + uuid; for (Entry* entry : entries) { - QCOMPARE(m_browserService->handleEntry(entry, testUrl, ""), false); + QCOMPARE(m_browserService->shouldIncludeEntry(entry, testUrl, ""), false); } auto result = m_browserService->searchEntries(db, testUrl, ""); @@ -337,6 +322,48 @@ void TestBrowser::testSearchEntriesByUUID() } } +void TestBrowser::testSearchEntriesByReference() +{ + auto db = QSharedPointer::create(); + auto* root = db->rootGroup(); + + /* The URLs don't really matter for this test, we just need some entries */ + QStringList urls = {"https://subdomain.example.com", + "example.com", // Only includes a partial URL for references + "https://another.domain.com", // Additional URL as full reference + "https://subdomain.somesite.com", // Additional URL as partial reference + "", // Full reference will be added to https://subdomain.example.com + "" // Partial reference will be added to https://subdomain.example.com + "https://www.notincluded.com"}; // Should not show in search + auto entries = createEntries(urls, root); + + auto firstEntryUuid = entries.first()->uuidToHex(); + auto secondEntryUuid = entries[1]->uuidToHex(); + auto fullReference = QString("{REF:A@I:%1}").arg(firstEntryUuid); + auto partialReference = QString("https://subdomain.{REF:A@I:%1}").arg(secondEntryUuid); + entries[2]->attributes()->set(EntryAttributes::AdditionalUrlAttribute, fullReference); + entries[3]->attributes()->set(EntryAttributes::AdditionalUrlAttribute, partialReference); + entries[4]->setUrl(fullReference); + entries[5]->setUrl(partialReference); + + auto result = m_browserService->searchEntries(db, "https://subdomain.example.com", ""); + QCOMPARE(result.length(), 6); + QCOMPARE(result[0]->url(), urls[0]); + QCOMPARE(result[1]->url(), urls[1]); + QCOMPARE(result[2]->url(), urls[2]); + QCOMPARE( + result[2]->resolveMultiplePlaceholders(result[2]->attributes()->value(EntryAttributes::AdditionalUrlAttribute)), + urls[0]); + QCOMPARE(result[3]->url(), urls[3]); + QCOMPARE( + result[3]->resolveMultiplePlaceholders(result[3]->attributes()->value(EntryAttributes::AdditionalUrlAttribute)), + urls[0]); + QCOMPARE(result[4]->url(), fullReference); + QCOMPARE(result[4]->resolveMultiplePlaceholders(result[4]->url()), urls[0]); // Should be resolved to the main entry + QCOMPARE(result[5]->url(), partialReference); + QCOMPARE(result[5]->resolveMultiplePlaceholders(result[5]->url()), urls[0]); // Should be resolved to the main entry +} + void TestBrowser::testSearchEntriesWithPort() { auto db = QSharedPointer::create(); @@ -361,7 +388,7 @@ void TestBrowser::testSearchEntriesWithAdditionalURLs() auto entries = createEntries(urls, root); // Add an additional URL to the first entry - entries.first()->attributes()->set(BrowserService::ADDITIONAL_URL, "https://keepassxc.org"); + entries.first()->attributes()->set(EntryAttributes::AdditionalUrlAttribute, "https://keepassxc.org"); auto result = m_browserService->searchEntries(db, "https://github.com", "https://github.com/session"); QCOMPARE(result.length(), 1); @@ -439,6 +466,16 @@ void TestBrowser::testSubdomainsAndPaths() QCOMPARE(result[2]->url(), QString("http://www.github.com")); QCOMPARE(result[3]->url(), QString("www.github.com/")); + // With www subdomain omitted + root->setCustomDataTriState(BrowserService::OPTION_OMIT_WWW, Group::Enable); + result = m_browserService->searchEntries(db, "https://github.com", "https://github.com/session"); + root->setCustomDataTriState(BrowserService::OPTION_OMIT_WWW, Group::Inherit); + QCOMPARE(result.length(), 4); + QCOMPARE(result[0]->url(), QString("https://www.github.com/login/page.xml")); + QCOMPARE(result[1]->url(), QString("https://github.com")); + QCOMPARE(result[2]->url(), QString("http://www.github.com")); + QCOMPARE(result[3]->url(), QString("www.github.com/")); + // With scheme matching there should be only 1 result browserSettings()->setMatchUrlScheme(true); result = m_browserService->searchEntries(db, "https://github.com", "https://github.com/session"); @@ -500,26 +537,6 @@ QList TestBrowser::createEntries(QStringList& urls, Group* root) const return entries; } -void TestBrowser::testValidURLs() -{ - QHash urls; - urls["https://github.com/login"] = true; - urls["https:///github.com/"] = false; - urls["http://github.com/**//*"] = false; - urls["http://*.github.com/login"] = false; - urls["//github.com"] = true; - urls["github.com/{}<>"] = false; - urls["http:/example.com"] = false; - urls["cmd://C:/Toolchains/msys2/usr/bin/mintty \"ssh jon@192.168.0.1:22\""] = true; - urls["file:///Users/testUser/Code/test.html"] = true; - urls["{REF:A@I:46C9B1FFBD4ABC4BBB260C6190BAD20C} "] = true; - - QHashIterator i(urls); - while (i.hasNext()) { - i.next(); - QCOMPARE(Tools::checkUrlValid(i.key()), i.value()); - } -} void TestBrowser::testBestMatchingCredentials() { @@ -648,7 +665,7 @@ void TestBrowser::testBestMatchingWithAdditionalURLs() browserSettings()->setBestMatchOnly(true); // Add an additional URL to the first entry - entries.first()->attributes()->set(BrowserService::ADDITIONAL_URL, "https://test.github.com/anotherpage"); + entries.first()->attributes()->set(EntryAttributes::AdditionalUrlAttribute, "https://test.github.com/anotherpage"); // The first entry should be triggered auto result = m_browserService->searchEntries( diff --git a/tests/TestBrowser.h b/tests/TestBrowser.h index c4bfb0471..48ac3b1cd 100644 --- a/tests/TestBrowser.h +++ b/tests/TestBrowser.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 KeePassXC Team + * Copyright (C) 2023 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -36,19 +36,17 @@ private slots: void testDecryptMessage(); void testGetBase64FromKey(); void testIncrementNonce(); - - void testTopLevelDomain(); - void testIsIpAddress(); + void testBuildResponse(); void testSortPriority(); void testSortPriority_data(); void testSearchEntries(); void testSearchEntriesByPath(); void testSearchEntriesByUUID(); + void testSearchEntriesByReference(); void testSearchEntriesWithPort(); void testSearchEntriesWithAdditionalURLs(); void testInvalidEntries(); void testSubdomainsAndPaths(); - void testValidURLs(); void testBestMatchingCredentials(); void testBestMatchingWithAdditionalURLs(); diff --git a/tests/TestCli.cpp b/tests/TestCli.cpp index b79b5357c..1445a8def 100644 --- a/tests/TestCli.cpp +++ b/tests/TestCli.cpp @@ -34,7 +34,9 @@ #include "cli/AttachmentImport.h" #include "cli/AttachmentRemove.h" #include "cli/Clip.h" -#include "cli/Create.h" +#include "cli/DatabaseCreate.h" +#include "cli/DatabaseEdit.h" +#include "cli/DatabaseInfo.h" #include "cli/Diceware.h" #include "cli/Edit.h" #include "cli/Estimate.h" @@ -42,7 +44,6 @@ #include "cli/Generate.h" #include "cli/Help.h" #include "cli/Import.h" -#include "cli/Info.h" #include "cli/List.h" #include "cli/Merge.h" #include "cli/Move.h" @@ -65,6 +66,7 @@ void TestCli::initTestCase() QVERIFY(Crypto::init()); Config::createTempFileInstance(); + QLocale::setDefault(QLocale::c()); Bootstrap::bootstrap(); m_devNull.reset(new QFile()); @@ -101,6 +103,9 @@ void TestCli::init() m_yubiKeyProtectedDbFile.reset(new TemporaryFile()); m_yubiKeyProtectedDbFile->copyFromFile(file.arg("YubiKeyProtectedPasswords.kdbx")); + m_nonAsciiDbFile.reset(new TemporaryFile()); + m_nonAsciiDbFile->copyFromFile(file.arg("NonAscii.kdbx")); + m_stdout.reset(new QBuffer()); m_stdout->open(QIODevice::ReadWrite); Utils::STDOUT.setDevice(m_stdout.data()); @@ -242,7 +247,7 @@ void TestCli::testBatchCommands() QVERIFY(Commands::getCommand("show")); QVERIFY(Commands::getCommand("search")); QVERIFY(!Commands::getCommand("doesnotexist")); - QCOMPARE(Commands::getCommands().size(), 25); + QCOMPARE(Commands::getCommands().size(), 26); } void TestCli::testInteractiveCommands() @@ -274,7 +279,7 @@ void TestCli::testInteractiveCommands() QVERIFY(Commands::getCommand("show")); QVERIFY(Commands::getCommand("search")); QVERIFY(!Commands::getCommand("doesnotexist")); - QCOMPARE(Commands::getCommands().size(), 25); + QCOMPARE(Commands::getCommands().size(), 26); } void TestCli::testAdd() @@ -662,10 +667,16 @@ void TestCli::testClip() execCmd(clipCmd, {"clip", m_dbFile->fileName(), "/Sample Entry", "0", "-a", "username"}); QTRY_COMPARE(clipboard->text(), QString("User Name")); + // Uuid (top-level field) + setInput("a"); + execCmd(clipCmd, {"clip", m_dbFile->fileName(), "/Sample Entry", "0", "-a", "Uuid"}); + QTRY_COMPARE(clipboard->text(), QString("{9f4544c2-ab00-c74a-8a1a-6eaf26cf57e9}")); + // TOTP setInput("a"); execCmd(clipCmd, {"clip", m_dbFile->fileName(), "/Sample Entry", "0", "--totp"}); QTRY_VERIFY(isTotp(clipboard->text())); + QCOMPARE(m_stdout->readLine(), QByteArray("Entry's \"totp\" attribute copied to the clipboard!\n")); // Test Unicode setInput("a"); @@ -726,7 +737,7 @@ void TestCli::testClip() void TestCli::testCreate() { - Create createCmd; + DatabaseCreate createCmd; QVERIFY(!createCmd.name.isEmpty()); QVERIFY(createCmd.getDescriptionLine().contains(createCmd.name)); @@ -842,9 +853,147 @@ void TestCli::testCreate() QVERIFY(db); } +void TestCli::testDatabaseEdit() +{ + TemporaryFile firstKeyFile; + firstKeyFile.open(); + firstKeyFile.write(QString("keyFilePassword").toLatin1()); + firstKeyFile.close(); + + TemporaryFile secondKeyFile; + secondKeyFile.open(); + secondKeyFile.write(QString("newKeyFilePassword").toLatin1()); + secondKeyFile.close(); + + QScopedPointer testDir(new QTemporaryDir()); + + DatabaseCreate createCmd; + DatabaseEdit editCmd; + QVERIFY(!editCmd.name.isEmpty()); + QVERIFY(editCmd.getDescriptionLine().contains(editCmd.name)); + + QString dbFilename; + dbFilename = testDir->path() + "/testDatabaseEdit.kdbx"; + + // Creating a database for testing + setInput({"a", "a"}); + execCmd(createCmd, {"db-create", dbFilename, "-p"}); + QCOMPARE(m_stdout->readLine(), QByteArray("Successfully created new database.\n")); + + // Sanity check. + auto db = readDatabase(dbFilename, "a"); + QVERIFY(!db.isNull()); + + setInput("a"); + execCmd(editCmd, {"db-edit", dbFilename, "-p", "--unset-password"}); + QCOMPARE(m_stdout->readAll(), QByteArray("")); + m_stderr->readLine(); + QCOMPARE(m_stderr->readAll(), QByteArray("Cannot use p and unset-password at the same time.\n")); + + setInput("a"); + execCmd(editCmd, {"db-edit", dbFilename, "--set-key-file", "/key/file/path", "--unset-key-file"}); + QCOMPARE(m_stdout->readAll(), QByteArray("")); + // Skipping the password prompt. + m_stderr->readLine(); + QCOMPARE(m_stderr->readAll(), QByteArray("Cannot use set-key-file and unset-key-file at the same time.\n")); + + // Sanity check. + db = readDatabase(dbFilename, "a"); + QVERIFY(!db.isNull()); + + setInput({"a", "b", "b"}); + execCmd(editCmd, {"db-edit", dbFilename, "-p"}); + QCOMPARE(m_stdout->readAll(), QByteArray("Successfully edited the database.\n")); + + // Sanity check + db = readDatabase(dbFilename, "b"); + QVERIFY(!db.isNull()); + + setInput("b"); + execCmd(editCmd, {"db-edit", dbFilename, "--set-key-file", firstKeyFile.fileName()}); + // Skipping the password prompt. + m_stderr->readLine(); + QCOMPARE(m_stderr->readAll(), QByteArray("")); + QCOMPARE(m_stdout->readAll(), QByteArray("Successfully edited the database.\n")); + + // Sanity check + db = readDatabase(dbFilename, "b"); + QVERIFY(db.isNull()); + db = readDatabase(dbFilename, "b", firstKeyFile.fileName()); + QVERIFY(!db.isNull()); + + setInput("b"); + execCmd(editCmd, + {"db-edit", dbFilename, "-k", firstKeyFile.fileName(), "--set-key-file", secondKeyFile.fileName()}); + QCOMPARE(m_stdout->readAll(), QByteArray("Successfully edited the database.\n")); + + // Sanity check + db = readDatabase(dbFilename, "b", firstKeyFile.fileName()); + QVERIFY(db.isNull()); + db = readDatabase(dbFilename, "b", secondKeyFile.fileName()); + QVERIFY(!db.isNull()); + + setInput("b"); + execCmd(editCmd, {"db-edit", dbFilename, "-k", secondKeyFile.fileName(), "--unset-password"}); + // Skipping the password prompt. + m_stderr->readLine(); + QCOMPARE(m_stderr->readAll(), QByteArray("")); + QCOMPARE(m_stdout->readAll(), QByteArray("Successfully edited the database.\n")); + + execCmd(editCmd, + {"db-edit", + dbFilename, + "--no-password", + "-k", + secondKeyFile.fileName(), + "--set-key-file", + firstKeyFile.fileName()}); + // Skipping the password prompt. + m_stderr->readLine(); + QCOMPARE(m_stderr->readAll(), QByteArray("")); + QCOMPARE(m_stdout->readAll(), QByteArray("Successfully edited the database.\n")); + + setInput({"b", "b"}); + execCmd(editCmd, {"db-edit", dbFilename, "-k", firstKeyFile.fileName(), "--no-password", "--set-password"}); + // Skipping over the password setting prompts. + m_stderr->readLine(); + m_stderr->readLine(); + QCOMPARE(m_stderr->readAll(), QByteArray("")); + QCOMPARE(m_stdout->readAll(), QByteArray("Successfully edited the database.\n")); + + setInput("b"); + execCmd(editCmd, {"db-edit", dbFilename, "-k", firstKeyFile.fileName(), "--unset-key-file"}); + // Skipping the password prompt. + m_stderr->readLine(); + QCOMPARE(m_stderr->readAll(), QByteArray("")); + QCOMPARE(m_stdout->readAll(), QByteArray("Successfully edited the database.\n")); + + // Sanity check + db = readDatabase(dbFilename, "b", firstKeyFile.fileName()); + QVERIFY(db.isNull()); + db = readDatabase(dbFilename, "b"); + QVERIFY(!db.isNull()); + + // Trying to remove the key file when there is none set should + // raise an error. + setInput("b"); + execCmd(editCmd, {"db-edit", dbFilename, "-p", "--unset-key-file"}); + QCOMPARE(m_stdout->readAll(), QByteArray("")); + m_stderr->readLine(); + QCOMPARE(m_stderr->readLine(), QByteArray("Cannot remove file key: The database does not have a file key.\n")); + QCOMPARE(m_stderr->readLine(), QByteArray("Could not change the database key.\n")); + + setInput("b"); + execCmd(editCmd, {"db-edit", dbFilename, "--unset-password"}); + QCOMPARE(m_stdout->readAll(), QByteArray("")); + // Skipping the password prompt. + m_stderr->readLine(); + QCOMPARE(m_stderr->readLine(), QByteArray("Cannot remove all the keys from a database.\n")); +} + void TestCli::testInfo() { - Info infoCmd; + DatabaseInfo infoCmd; QVERIFY(!infoCmd.name.isEmpty()); QVERIFY(infoCmd.getDescriptionLine().contains(infoCmd.name)); @@ -1607,7 +1756,7 @@ void TestCli::testMerge() void TestCli::testMergeWithKeys() { - Create createCmd; + DatabaseCreate createCmd; QVERIFY(!createCmd.name.isEmpty()); QVERIFY(createCmd.getDescriptionLine().contains(createCmd.name)); @@ -1649,7 +1798,8 @@ void TestCli::testMergeWithKeys() entry->setPassword("secretsecretsecret"); group->addEntry(entry); - sourceDatabase->setRootGroup(rootGroup); + auto oldGroup = sourceDatabase->setRootGroup(rootGroup); + delete oldGroup; auto* otherRootGroup = new Group(); otherRootGroup->setName("root"); @@ -1665,7 +1815,8 @@ void TestCli::testMergeWithKeys() otherEntry->setPassword("secretsecretsecret 2"); otherGroup->addEntry(otherEntry); - targetDatabase->setRootGroup(otherRootGroup); + oldGroup = targetDatabase->setRootGroup(otherRootGroup); + delete oldGroup; sourceDatabase->saveAs(sourceDatabaseFilename); targetDatabase->saveAs(targetDatabaseFilename); @@ -1937,7 +2088,9 @@ void TestCli::testShow() "UserName: User Name\n" "Password: PROTECTED\n" "URL: http://www.somesite.com/\n" - "Notes: Notes\n")); + "Notes: Notes\n" + "Uuid: {9f4544c2-ab00-c74a-8a1a-6eaf26cf57e9}\n" + "Tags: \n")); setInput("a"); execCmd(showCmd, {"show", "-s", m_dbFile->fileName(), "/Sample Entry"}); @@ -1946,7 +2099,9 @@ void TestCli::testShow() "UserName: User Name\n" "Password: Password\n" "URL: http://www.somesite.com/\n" - "Notes: Notes\n")); + "Notes: Notes\n" + "Uuid: {9f4544c2-ab00-c74a-8a1a-6eaf26cf57e9}\n" + "Tags: \n")); setInput("a"); execCmd(showCmd, {"show", m_dbFile->fileName(), "-q", "/Sample Entry"}); @@ -1956,7 +2111,9 @@ void TestCli::testShow() "UserName: User Name\n" "Password: PROTECTED\n" "URL: http://www.somesite.com/\n" - "Notes: Notes\n")); + "Notes: Notes\n" + "Uuid: {9f4544c2-ab00-c74a-8a1a-6eaf26cf57e9}\n" + "Tags: \n")); setInput("a"); execCmd(showCmd, {"show", m_dbFile->fileName(), "--show-attachments", "/Sample Entry"}); @@ -1968,6 +2125,8 @@ void TestCli::testShow() "Password: PROTECTED\n" "URL: http://www.somesite.com/\n" "Notes: Notes\n" + "Uuid: {9f4544c2-ab00-c74a-8a1a-6eaf26cf57e9}\n" + "Tags: \n" "\n" "Attachments:\n" " Sample attachment.txt (15.0 B)\n")); @@ -1982,6 +2141,8 @@ void TestCli::testShow() "Password: PROTECTED\n" "URL: https://www.bank.com\n" "Notes: Important note\n" + "Uuid: {20b183fd-6878-4506-a50b-06d30792aa10}\n" + "Tags: \n" "\n" "No attachments present.\n")); @@ -1993,6 +2154,10 @@ void TestCli::testShow() execCmd(showCmd, {"show", "-a", "Password", m_dbFile->fileName(), "/Sample Entry"}); QCOMPARE(m_stdout->readAll(), QByteArray("Password\n")); + setInput("a"); + execCmd(showCmd, {"show", "-a", "Uuid", m_dbFile->fileName(), "/Sample Entry"}); + QCOMPARE(m_stdout->readAll(), QByteArray("{9f4544c2-ab00-c74a-8a1a-6eaf26cf57e9}\n")); + setInput("a"); execCmd(showCmd, {"show", "-a", "Title", "-a", "URL", m_dbFile->fileName(), "/Sample Entry"}); QCOMPARE(m_stdout->readAll(), @@ -2030,6 +2195,21 @@ void TestCli::testShow() execCmd(showCmd, {"show", m_dbFile->fileName(), "-a", "Testattribute1", "/Sample Entry"}); QCOMPARE(m_stdout->readAll(), QByteArray()); QVERIFY(m_stderr->readAll().contains("ERROR: attribute Testattribute1 is ambiguous")); + + setInput("a"); + execCmd(showCmd, {"show", "--all", m_dbFile->fileName(), "/Sample Entry"}); + QCOMPARE(m_stdout->readAll(), + QByteArray("Title: Sample Entry\n" + "UserName: User Name\n" + "Password: PROTECTED\n" + "URL: http://www.somesite.com/\n" + "Notes: Notes\n" + "Uuid: {9f4544c2-ab00-c74a-8a1a-6eaf26cf57e9}\n" + "Tags: \n" + "TOTP Seed: PROTECTED\n" + "TOTP Settings: 30;6\n" + "TestAttribute1: b\n" + "testattribute1: a\n")); } void TestCli::testInvalidDbFiles() @@ -2075,7 +2255,7 @@ void TestCli::testYubiKeyOption() YubiKey::instance()->findValidKeys(); - auto keys = YubiKey::instance()->foundKeys(); + const auto keys = YubiKey::instance()->foundKeys().keys(); if (keys.isEmpty()) { QSKIP("No YubiKey devices were detected."); } @@ -2142,6 +2322,29 @@ void TestCli::testYubiKeyOption() QCOMPARE(m_stdout->readAll(), QByteArray()); } +void TestCli::testNonAscii() +{ + QProcess process; + process.setProcessChannelMode(QProcess::MergedChannels); + process.start( + KEEPASSX_CLI_PATH, + QStringList( + {"show", "-a", "password", m_nonAsciiDbFile->fileName(), QString::fromUtf8("\xe7\xa7\x98\xe5\xaf\x86")})); + process.waitForStarted(); + QCOMPARE(process.state(), QProcess::ProcessState::Running); + + // Write password. + process.write("\xce\x94\xc3\xb6\xd8\xb6\n"); + process.closeWriteChannel(); + + process.waitForFinished(); + + process.readLine(); // skip password prompt + QByteArray password = process.readLine(); + QCOMPARE(QString::fromUtf8(password).trimmed(), + QString::fromUtf8("\xf0\x9f\x9a\x97\xf0\x9f\x90\x8e\xf0\x9f\x94\x8b\xf0\x9f\x93\x8e")); +} + void TestCli::testCommandParsing_data() { QTest::addColumn("input"); diff --git a/tests/TestCli.h b/tests/TestCli.h index bbe80a4b3..d33dde26c 100644 --- a/tests/TestCli.h +++ b/tests/TestCli.h @@ -54,6 +54,7 @@ private slots: void testCommandParsing_data(); void testCommandParsing(); void testCreate(); + void testDatabaseEdit(); void testDiceware(); void testEdit(); void testEstimate_data(); @@ -79,6 +80,7 @@ private slots: void testShow(); void testInvalidDbFiles(); void testYubiKeyOption(); + void testNonAscii(); private: QScopedPointer m_devNull; @@ -89,6 +91,7 @@ private: QScopedPointer m_keyFileProtectedDbFile; QScopedPointer m_keyFileProtectedNoPasswordDbFile; QScopedPointer m_yubiKeyProtectedDbFile; + QScopedPointer m_nonAsciiDbFile; QScopedPointer m_stdout; QScopedPointer m_stderr; diff --git a/tests/TestCsvExporter.cpp b/tests/TestCsvExporter.cpp index 4854da111..c4c937e5d 100644 --- a/tests/TestCsvExporter.cpp +++ b/tests/TestCsvExporter.cpp @@ -22,9 +22,9 @@ #include #include "core/Group.h" +#include "core/Totp.h" #include "crypto/Crypto.h" #include "format/CsvExporter.h" -#include "totp/totp.h" QTEST_GUILESS_MAIN(TestCsvExporter) diff --git a/tests/TestDatabase.cpp b/tests/TestDatabase.cpp index 3b5864273..9ab9de785 100644 --- a/tests/TestDatabase.cpp +++ b/tests/TestDatabase.cpp @@ -99,6 +99,34 @@ void TestDatabase::testSave() QVERIFY(!QFile::exists(backupFilePath)); } +void TestDatabase::testSaveAs() +{ + TemporaryFile tempFile; + QVERIFY(tempFile.copyFromFile(dbFileName)); + + auto db = QSharedPointer::create(); + auto key = QSharedPointer::create(); + key->addKey(QSharedPointer::create("a")); + + QString error; + QVERIFY(db->open(tempFile.fileName(), key, &error)); + + // Happy path case when try to save as new DB. + QSignalSpy spyFilePathChanged(db.data(), SIGNAL(filePathChanged(const QString&, const QString&))); + QString newDbFileName = QStringLiteral(KEEPASSX_TEST_DATA_DIR).append("/SaveAsNewDatabase.kdbx"); + QVERIFY2(db->saveAs(newDbFileName, Database::Atomic, QString(), &error), error.toLatin1()); + QVERIFY(!db->isModified()); + QCOMPARE(spyFilePathChanged.count(), 1); + QVERIFY(QFile::exists(newDbFileName)); + QFile::remove(newDbFileName); + QVERIFY(!QFile::exists(newDbFileName)); + + // Negative case when try to save not initialized DB. + db->releaseData(); + QVERIFY2(!db->saveAs(newDbFileName, Database::Atomic, QString(), &error), error.toLatin1()); + QCOMPARE(error, QString("Could not save, database has not been initialized!")); +} + void TestDatabase::testSignals() { TemporaryFile tempFile; diff --git a/tests/TestDatabase.h b/tests/TestDatabase.h index 511703849..9f4bfab56 100644 --- a/tests/TestDatabase.h +++ b/tests/TestDatabase.h @@ -29,6 +29,7 @@ private slots: void initTestCase(); void testOpen(); void testSave(); + void testSaveAs(); void testSignals(); void testEmptyRecycleBinOnDisabled(); void testEmptyRecycleBinOnNotCreated(); diff --git a/tests/TestEntrySearcher.cpp b/tests/TestEntrySearcher.cpp index e9b49d6b7..2292c253e 100644 --- a/tests/TestEntrySearcher.cpp +++ b/tests/TestEntrySearcher.cpp @@ -17,6 +17,7 @@ #include "TestEntrySearcher.h" #include "core/Group.h" +#include "core/Tools.h" #include @@ -205,7 +206,7 @@ void TestEntrySearcher::testSearchTermParser() QCOMPARE(terms[0].exclude, true); QCOMPARE(terms[1].field, EntrySearcher::Field::Undefined); - QCOMPARE(terms[1].word, QString("quoted \\\"string\\\"")); + QCOMPARE(terms[1].word, QString("quoted \"string\"")); QCOMPARE(terms[1].exclude, false); QCOMPARE(terms[2].field, EntrySearcher::Field::Username); @@ -224,7 +225,7 @@ void TestEntrySearcher::testSearchTermParser() QCOMPARE(terms.length(), 2); QCOMPARE(terms[0].field, EntrySearcher::Field::Url); - QCOMPARE(terms[0].regex.pattern(), QString("^.*\\.google\\.com$")); + QCOMPARE(terms[0].regex.pattern(), QString("^(?:.*\\.google\\.com)$")); QCOMPARE(terms[1].field, EntrySearcher::Field::Username); QCOMPARE(terms[1].regex.pattern(), QString("\\d+\\w{2}")); @@ -237,7 +238,7 @@ void TestEntrySearcher::testSearchTermParser() QCOMPARE(terms[0].field, EntrySearcher::Field::AttributeValue); QCOMPARE(terms[0].word, QString("abc")); - QCOMPARE(terms[0].regex.pattern(), QString("^efg$")); + QCOMPARE(terms[0].regex.pattern(), QString("^(?:efg)$")); QCOMPARE(terms[1].field, EntrySearcher::Field::AttributeValue); QCOMPARE(terms[1].word, QString("def")); @@ -372,3 +373,24 @@ void TestEntrySearcher::testSkipProtected() m_entrySearcher.search("_testAttribute:testE1 _testProtected:apple _testAttribute:testE2", m_rootGroup); QCOMPARE(m_searchResult, {}); } + +void TestEntrySearcher::testUUIDSearch() +{ + auto entry1 = new Entry(); + entry1->setGroup(m_rootGroup); + entry1->setTitle("testTitle"); + auto uuid1 = QUuid::createUuid(); + entry1->setUuid(uuid1); + + auto entry2 = new Entry(); + entry2->setGroup(m_rootGroup); + entry2->setTitle("testTitle2"); + auto uuid2 = QUuid::createUuid(); + entry2->setUuid(uuid2); + + m_searchResult = m_entrySearcher.search("uuid:", m_rootGroup); + QCOMPARE(m_searchResult.count(), 2); + + m_searchResult = m_entrySearcher.search("uuid:" + Tools::uuidToHex(uuid1), m_rootGroup); + QCOMPARE(m_searchResult.count(), 1); +} diff --git a/tests/TestEntrySearcher.h b/tests/TestEntrySearcher.h index becd5f20d..2ca81a742 100644 --- a/tests/TestEntrySearcher.h +++ b/tests/TestEntrySearcher.h @@ -38,6 +38,7 @@ private slots: void testCustomAttributesAreSearched(); void testGroup(); void testSkipProtected(); + void testUUIDSearch(); private: Group* m_rootGroup; diff --git a/tests/TestFdoSecrets.cpp b/tests/TestFdoSecrets.cpp index e4d8cca22..0f4c374a4 100644 --- a/tests/TestFdoSecrets.cpp +++ b/tests/TestFdoSecrets.cpp @@ -82,6 +82,11 @@ void TestFdoSecrets::testSpecialCharsInAttributeValue() QCOMPARE(res.count(), 1); QCOMPARE(res[0]->title(), QStringLiteral("titleB")); } + { + const auto term = Collection::attributeToTerm("testAttribute", "v|"); + const auto res = EntrySearcher().search({term}, root.data()); + QCOMPARE(res.count(), 0); + } } void TestFdoSecrets::testDBusPathParse() diff --git a/tests/TestGroup.cpp b/tests/TestGroup.cpp index 95f79de27..826ecba88 100644 --- a/tests/TestGroup.cpp +++ b/tests/TestGroup.cpp @@ -1,6 +1,6 @@ /* + * Copyright (C) 2023 KeePassXC Team * Copyright (C) 2010 Felix Geyer - * Copyright (C) 2017 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -1293,3 +1293,29 @@ void TestGroup::testPreviousParentGroup() QVERIFY(group1->previousParentGroupUuid() == group2->uuid()); QVERIFY(group1->previousParentGroup() == group2); } + +void TestGroup::testAutoTypeState() +{ + Database db; + auto* root = db.rootGroup(); + + auto* entry1 = new Entry(); + entry1->setGroup(root); + + auto subGroup = new Group(); + subGroup->setParent(root); + auto* entry2 = new Entry(); + entry2->setGroup(subGroup); + + // Disable Auto-Type from root group + root->setAutoTypeEnabled(Group::TriState::Disable); + QVERIFY(!entry1->groupAutoTypeEnabled()); + QVERIFY(!entry2->groupAutoTypeEnabled()); + + // Enable Auto-Type for sub group + subGroup->setAutoTypeEnabled(Group::TriState::Enable); + QVERIFY(root->autoTypeEnabled() == Group::TriState::Disable); + QVERIFY(subGroup->autoTypeEnabled() == Group::TriState::Enable); + QVERIFY(!entry1->groupAutoTypeEnabled()); + QVERIFY(entry2->groupAutoTypeEnabled()); +} diff --git a/tests/TestGroup.h b/tests/TestGroup.h index 0c8fee937..d3326e464 100644 --- a/tests/TestGroup.h +++ b/tests/TestGroup.h @@ -1,6 +1,6 @@ /* + * Copyright (C) 2023 KeePassXC Team * Copyright (C) 2010 Felix Geyer - * Copyright (C) 2017 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -49,6 +49,7 @@ private slots: void testUsernamesRecursive(); void testMoveUpDown(); void testPreviousParentGroup(); + void testAutoTypeState(); }; #endif // KEEPASSX_TESTGROUP_H diff --git a/tests/TestIconDownloader.cpp b/tests/TestIconDownloader.cpp index a0a1fa491..77b21e3e7 100644 --- a/tests/TestIconDownloader.cpp +++ b/tests/TestIconDownloader.cpp @@ -30,9 +30,11 @@ void TestIconDownloader::testIconDownloader_data() QTest::newRow("Unsupported schema") << "ftp://google.com" << QStringList{}; QTest::newRow("Missing schema") << "keepassxc.org" << QStringList{"https://keepassxc.org/favicon.ico"}; QTest::newRow("Missing host") << "https:///register" << QStringList{}; - QTest::newRow("URL with path") << "https://keepassxc.org/register/here" << QStringList{keepassxc_favicon}; + QTest::newRow("URL with path") << "https://keepassxc.org/register/here/" + << QStringList{"https://keepassxc.org/register/here/favicon.ico", keepassxc_favicon}; QTest::newRow("URL with path and query") - << "https://keepassxc.org/register/here?login=me" << QStringList{keepassxc_favicon}; + << "https://keepassxc.org/register/here?login=me" + << QStringList{"https://keepassxc.org/register/favicon.ico", keepassxc_favicon}; QTest::newRow("URL with port") << "https://keepassxc.org:8080" << QStringList{"https://keepassxc.org:8080/favicon.ico"}; QTest::newRow("2nd level domain") << "https://login.keepassxc.org" @@ -54,11 +56,14 @@ void TestIconDownloader::testIconDownloader_data() << QStringList{"https://134.130.155.184/favicon.ico"}; QTest::newRow("Raw IP") << "134.130.155.184" << QStringList{"https://134.130.155.184/favicon.ico"}; QTest::newRow("Raw IP with schema and path") - << "https://134.130.155.184/with/path" << QStringList{"https://134.130.155.184/favicon.ico"}; + << "https://134.130.155.184/with/path/" + << QStringList{"https://134.130.155.184/with/path/favicon.ico", "https://134.130.155.184/favicon.ico"}; QTest::newRow("Raw IP with schema (https), path, and port") - << "https://134.130.155.184:8080/test" << QStringList{"https://134.130.155.184:8080/favicon.ico"}; + << "https://134.130.155.184:8080/test/" + << QStringList{"https://134.130.155.184:8080/test/favicon.ico", "https://134.130.155.184:8080/favicon.ico"}; QTest::newRow("Raw IP with schema (http), path, and port") - << "134.130.155.184:8080/test" << QStringList{"https://134.130.155.184:8080/favicon.ico"}; + << "134.130.155.184:8080/test/" + << QStringList{"https://134.130.155.184:8080/test/favicon.ico", "https://134.130.155.184:8080/favicon.ico"}; QTest::newRow("URL with username and password") << "https://user:password@keepassxc.org" << QStringList{"https://user:password@keepassxc.org/favicon.ico"}; QTest::newRow("URL with username and password, several subdomains") @@ -68,4 +73,7 @@ void TestIconDownloader::testIconDownloader_data() "https://keepassxc.org/favicon.ico"}; QTest::newRow("Raw IP with username and password") << "https://user:password@134.130.155.184" << QStringList{"https://user:password@134.130.155.184/favicon.ico"}; + QTest::newRow("Relative path should be preserved") + << "https://test.com/rel-path/" + << QStringList{"https://test.com/rel-path/favicon.ico", "https://test.com/favicon.ico"}; } diff --git a/tests/TestImports.cpp b/tests/TestImports.cpp new file mode 100644 index 000000000..a809cc3ed --- /dev/null +++ b/tests/TestImports.cpp @@ -0,0 +1,267 @@ +/* + * Copyright (C) 2022 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "TestImports.h" + +#include "config-keepassx-tests.h" +#include "core/Group.h" +#include "core/Metadata.h" +#include "core/Totp.h" +#include "crypto/Crypto.h" +#include "format/BitwardenReader.h" +#include "format/OPUXReader.h" +#include "format/OpVaultReader.h" + +#include +#include +#include + +QTEST_GUILESS_MAIN(TestImports) + +void TestImports::initTestCase() +{ + QVERIFY(Crypto::init()); +} + +void TestImports::testOPUX() +{ + auto opuxPath = QStringLiteral("%1/%2").arg(KEEPASSX_TEST_DATA_DIR, QStringLiteral("/1PasswordExport.1pux")); + + OPUXReader reader; + auto db = reader.convert(opuxPath); + QVERIFY2(!reader.hasError(), qPrintable(reader.errorString())); + QVERIFY(db); + + // Confirm specific entry details are valid + auto entry = db->rootGroup()->findEntryByPath("/Personal/Login"); + QVERIFY(entry); + QCOMPARE(entry->title(), QStringLiteral("Login")); + QCOMPARE(entry->username(), QStringLiteral("team@keepassxc.org")); + QCOMPARE(entry->password(), QStringLiteral("password")); + QCOMPARE(entry->url(), QStringLiteral("https://keepassxc.org")); + QCOMPARE(entry->notes(), QStringLiteral("Note to self")); + // Check extra URL's + QCOMPARE(entry->attribute("KP2A_URL_1"), QStringLiteral("https://twitter.com")); + // Check TOTP + QVERIFY(entry->hasTotp()); + QVERIFY(!entry->attribute("otp_1").isEmpty()); + // Check tags + QVERIFY(entry->tagList().contains("Favorite")); + QVERIFY(entry->tagList().contains("website")); + + // Check attachments + entry = db->rootGroup()->findEntryByPath("/Personal/KeePassXC Logo"); + auto attachments = entry->attachments(); + QCOMPARE(attachments->keys().count(), 1); + QCOMPARE(attachments->keys()[0], QString("keepassxc.png")); + + // Confirm advanced attributes + // NOTE: 1PUX does not support an explicit expiration field + entry = db->rootGroup()->findEntryByPath("/Personal/Credit Card"); + QVERIFY(entry); + auto tmpl = QString("Credit Card Fields_%1"); + auto attr = entry->attributes(); + QCOMPARE(attr->value(tmpl.arg("cardholder name")), QStringLiteral("KeePassXC")); + QCOMPARE(attr->value(tmpl.arg("expiry date")), QStringLiteral("202206")); + QCOMPARE(attr->value(tmpl.arg("verification number")), QStringLiteral("123")); + QVERIFY(attr->isProtected(tmpl.arg("verification number"))); + + // Confirm address fields + entry = db->rootGroup()->findEntryByPath("/Personal/Identity"); + QVERIFY(entry); + attr = entry->attributes(); + QCOMPARE(attr->value("Address_address"), QStringLiteral("123 Avenue Rd\nBoston, MA 12345\nus")); + + // Check archived entries + entry = db->rootGroup()->findEntryByPath("/Personal/Login Archived"); + QVERIFY(entry); + QVERIFY(entry->tagList().contains("Archived")); + + // Check vault to group structure + entry = db->rootGroup()->findEntryByPath("/Shared/Bank Account"); + QVERIFY(entry); + // Check custom group icon + QVERIFY(!entry->group()->iconUuid().isNull()); +} + +void TestImports::testOPVault() +{ + auto opVaultPath = QStringLiteral("%1/%2").arg(KEEPASSX_TEST_DATA_DIR, QStringLiteral("/keepassxc.opvault")); + + auto categories = QStringList({QStringLiteral("Login"), + QStringLiteral("Credit Card"), + QStringLiteral("Secure Note"), + QStringLiteral("Identity"), + QStringLiteral("Password"), + QStringLiteral("Tombstone"), + QStringLiteral("Software License"), + QStringLiteral("Bank Account"), + QStringLiteral("Database"), + QStringLiteral("Driver License"), + QStringLiteral("Outdoor License"), + QStringLiteral("Membership"), + QStringLiteral("Passport"), + QStringLiteral("Rewards"), + QStringLiteral("SSN"), + QStringLiteral("Router"), + QStringLiteral("Server"), + QStringLiteral("Email")}); + + QDir opVaultDir(opVaultPath); + + OpVaultReader reader; + auto db = reader.convert(opVaultDir, "a"); + QVERIFY2(!reader.hasError(), qPrintable(reader.errorString())); + QVERIFY(db); + + // Confirm specific entry details are valid + auto entry = db->rootGroup()->findEntryByPath("/Login/KeePassXC"); + QVERIFY(entry); + QCOMPARE(entry->title(), QStringLiteral("KeePassXC")); + QCOMPARE(entry->username(), QStringLiteral("keepassxc")); + QCOMPARE(entry->password(), QStringLiteral("opvault")); + QCOMPARE(entry->url(), QStringLiteral("https://www.keepassxc.org")); + QCOMPARE(entry->notes(), QStringLiteral("KeePassXC Account")); + // Check extra URL's + QCOMPARE(entry->attribute("KP2A_URL_1"), QStringLiteral("https://snapshot.keepassxc.org")); + // Check TOTP + QVERIFY(entry->hasTotp()); + // Check attachments + auto attachments = entry->attachments(); + QCOMPARE(attachments->keys().count(), 1); + QCOMPARE(*attachments->values().begin(), QByteArray("attachment")); + + // Confirm expired entries + entry = db->rootGroup()->findEntryByPath("/Login/Expired Login"); + QVERIFY(entry->isExpired()); + + // Confirm advanced attributes + entry = db->rootGroup()->findEntryByPath("/Credit Card/My Credit Card"); + QVERIFY(entry); + auto attr = entry->attributes(); + QCOMPARE(attr->value("cardholder name"), QStringLiteral("Team KeePassXC")); + QVERIFY(!attr->value("valid from").isEmpty()); + QCOMPARE(attr->value("Additional Details_PIN"), QStringLiteral("1234")); + QVERIFY(attr->isProtected("Additional Details_PIN")); + + // Confirm address fields + entry = db->rootGroup()->findEntryByPath("/Identity/Team KeePassXC"); + QVERIFY(entry); + attr = entry->attributes(); + QCOMPARE(attr->value("address_street"), QStringLiteral("123 Password Lane")); + + // Confirm complex passwords + entry = db->rootGroup()->findEntryByPath("/Password/Complex Password"); + QVERIFY(entry); + QCOMPARE(entry->password(), QStringLiteral("HfgcHjEL}iO}^3N!?*cv~O:9GJZQ0>oC")); + QVERIFY(entry->hasTotp()); + auto totpSettings = entry->totpSettings(); + QCOMPARE(totpSettings->digits, static_cast(8)); + QCOMPARE(totpSettings->step, static_cast(45)); + + // Add another OTP to this entry to confirm it doesn't overwrite the existing one + auto field = QJsonObject::fromVariantMap({{"n", "TOTP_SETTINGS"}, {"v", "otpauth://test.url?digits=6"}}); + reader.fillFromSectionField(entry, "", field); + QVERIFY(entry->hasTotp()); + totpSettings = entry->totpSettings(); + QCOMPARE(totpSettings->digits, static_cast(8)); + QCOMPARE(totpSettings->step, static_cast(45)); + QVERIFY(entry->attributes()->contains("otp_1")); + + // Confirm trashed entries are sent to the recycle bin + auto recycleBin = db->metadata()->recycleBin(); + QVERIFY(recycleBin); + QVERIFY(!recycleBin->isEmpty()); + QVERIFY(recycleBin->findEntryByPath("Trashed Password")); + + // Confirm created groups align with category names + for (const auto group : db->rootGroup()->children()) { + if (group == recycleBin) { + continue; + } + QVERIFY2(categories.contains(group->name()), + qPrintable(QStringLiteral("Invalid group name: %1").arg(group->name()))); + // Confirm each group is not empty + QVERIFY2(!group->isEmpty(), qPrintable(QStringLiteral("Group %1 is empty").arg(group->name()))); + } +} + +void TestImports::testBitwarden() +{ + auto bitwardenPath = QStringLiteral("%1/%2").arg(KEEPASSX_TEST_DATA_DIR, QStringLiteral("/bitwarden_export.json")); + + BitwardenReader reader; + auto db = reader.convert(bitwardenPath); + QVERIFY2(!reader.hasError(), qPrintable(reader.errorString())); + QVERIFY(db); + + // Confirm Login fields + auto entry = db->rootGroup()->findEntryByPath("/My Folder/Login Name"); + QVERIFY(entry); + QCOMPARE(entry->title(), QStringLiteral("Login Name")); + QCOMPARE(entry->username(), QStringLiteral("myusername@gmail.com")); + QCOMPARE(entry->password(), QStringLiteral("mypassword")); + QCOMPARE(entry->url(), QStringLiteral("https://mail.google.com")); + QCOMPARE(entry->notes(), QStringLiteral("1st line of note text\n2nd Line of note text")); + // Check extra URL's + QCOMPARE(entry->attribute("KP2A_URL_1"), QStringLiteral("https://google.com")); + QCOMPARE(entry->attribute("KP2A_URL_2"), QStringLiteral("https://gmail.com")); + // Check TOTP + QVERIFY(entry->hasTotp()); + // NOTE: Bitwarden does not export attachments + // NOTE: Bitwarden does not export expiration dates + + // Confirm Identity fields + entry = db->rootGroup()->findEntryByPath("/My Folder/My Identity"); + QVERIFY(entry); + auto attr = entry->attributes(); + // NOTE: The extra spaces are deliberate to test unmodified ingest of data + QCOMPARE(attr->value("identity_address"), + QStringLiteral(" 1 North Calle Cesar Chavez \nSanta Barbara, CA 93103\nUnited States ")); + QCOMPARE(attr->value("identity_name"), QStringLiteral("Mrs Jane A Doe")); + QCOMPARE(attr->value("identity_ssn"), QStringLiteral("123-12-1234")); + QVERIFY(attr->isProtected("identity_ssn")); + + // Confirm Secure Note + entry = db->rootGroup()->findEntryByPath("/My Folder/My Secure Note"); + QVERIFY(entry); + QCOMPARE(entry->notes(), + QStringLiteral("1st line of secure note\n2nd line of secure note\n3rd line of secure note")); + + // Confirm Credit Card + entry = db->rootGroup()->findEntryByPath("/Second Folder/Card Name"); + QVERIFY(entry); + attr = entry->attributes(); + QCOMPARE(attr->value("card_cardholderName"), QStringLiteral("Jane Doe")); + QCOMPARE(attr->value("card_number"), QStringLiteral("1234567891011121")); + QCOMPARE(attr->value("card_code"), QStringLiteral("123")); + QVERIFY(attr->isProtected("card_code")); +} + +void TestImports::testBitwardenEncrypted() +{ + // We already tested the parser so just test that decryption works properly + auto bitwardenPath = + QStringLiteral("%1/%2").arg(KEEPASSX_TEST_DATA_DIR, QStringLiteral("/bitwarden_encrypted_export.json")); + + BitwardenReader reader; + auto db = reader.convert(bitwardenPath, "a"); + if (reader.hasError()) { + QFAIL(qPrintable(reader.errorString())); + } + QVERIFY(db); +} diff --git a/src/gui/KeePass1OpenWidget.h b/tests/TestImports.h similarity index 64% rename from src/gui/KeePass1OpenWidget.h rename to tests/TestImports.h index 203b78632..2e00de9a6 100644 --- a/src/gui/KeePass1OpenWidget.h +++ b/tests/TestImports.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Felix Geyer + * Copyright (C) 2022 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,20 +15,21 @@ * along with this program. If not, see . */ -#ifndef KEEPASSX_KEEPASS1OPENWIDGET_H -#define KEEPASSX_KEEPASS1OPENWIDGET_H +#ifndef TEST_IMPORTS_H +#define TEST_IMPORTS_H -#include "gui/DatabaseOpenWidget.h" +#include -class KeePass1OpenWidget : public DatabaseOpenWidget +class TestImports : public QObject { Q_OBJECT -public: - explicit KeePass1OpenWidget(QWidget* parent = nullptr); - -protected: - void openDatabase() override; +private slots: + void initTestCase(); + void testOPUX(); + void testOPVault(); + void testBitwarden(); + void testBitwardenEncrypted(); }; -#endif // KEEPASSX_KEEPASS1OPENWIDGET_H +#endif /* TEST_IMPORTS_H */ diff --git a/tests/TestKdbx3.cpp b/tests/TestKdbx3.cpp index bcc3df77a..097fef6f9 100644 --- a/tests/TestKdbx3.cpp +++ b/tests/TestKdbx3.cpp @@ -169,3 +169,88 @@ void TestKdbx3::testBrokenHeaderHash() auto db = QSharedPointer::create(); QVERIFY(!db->open(filename, key, nullptr)); } + +void TestKdbx3::testAttachmentIndexStability() +{ + QScopedPointer db(new Database()); + db->changeKdf(fastKdf(KeePass2::uuidToKdf(KeePass2::KDF_AES_KDBX3))); + auto compositeKey = QSharedPointer::create(); + db->setKey(compositeKey); + QVERIFY(!db->uuid().isNull()); + + auto root = db->rootGroup(); + + auto group1 = new Group(); + group1->setUuid(QUuid::createUuid()); + QVERIFY(!group1->uuid().isNull()); + group1->setParent(root); + + auto attachment1 = QByteArray("qwerty"); + auto attachment2 = QByteArray("asdf"); + auto attachment3 = QByteArray("zxcv"); + + auto entry1 = new Entry(); + entry1->setUuid(QUuid::createUuid()); + QVERIFY(!entry1->uuid().isNull()); + auto uuid1 = entry1->uuid(); + entry1->attachments()->set("a", attachment1); + QCOMPARE(entry1->attachments()->keys().size(), 1); + QCOMPARE(entry1->attachments()->values().size(), 1); + entry1->setGroup(root); + + auto entry2 = new Entry(); + entry2->setUuid(QUuid::createUuid()); + QVERIFY(!entry2->uuid().isNull()); + auto uuid2 = entry2->uuid(); + entry2->attachments()->set("a", attachment1); + entry2->attachments()->set("b", attachment2); + QCOMPARE(entry2->attachments()->keys().size(), 2); + QCOMPARE(entry2->attachments()->values().size(), 2); + entry2->setGroup(group1); + + auto entry3 = new Entry(); + entry3->setUuid(QUuid::createUuid()); + QVERIFY(!entry3->uuid().isNull()); + auto uuid3 = entry3->uuid(); + entry3->attachments()->set("a", attachment1); + entry3->attachments()->set("b", attachment2); + entry3->attachments()->set("x", attachment3); + entry3->attachments()->set("y", attachment3); + QCOMPARE(entry3->attachments()->keys().size(), 4); + QCOMPARE(entry3->attachments()->values().size(), 3); + entry3->setGroup(group1); + + QBuffer buffer; + buffer.open(QBuffer::ReadWrite); + KeePass2Writer writer; + QVERIFY(writer.writeDatabase(&buffer, db.data())); + QCOMPARE(writer.version(), KeePass2::FILE_VERSION_3_1); + + buffer.seek(0); + KeePass2Reader reader; + + // Re-read database and check that all attachments are still correctly assigned + auto db2 = QSharedPointer::create(); + reader.readDatabase(&buffer, QSharedPointer::create(), db2.data()); + QVERIFY(!reader.hasError()); + QVERIFY(!db->uuid().isNull()); + + auto a1 = db2->rootGroup()->findEntryByUuid(uuid1)->attachments(); + QCOMPARE(a1->keys().size(), 1); + QCOMPARE(a1->values().size(), 1); + QCOMPARE(a1->value("a"), attachment1); + + auto a2 = db2->rootGroup()->findEntryByUuid(uuid2)->attachments(); + QCOMPARE(a2->keys().size(), 2); + QCOMPARE(a2->values().size(), 2); + QCOMPARE(a2->value("a"), attachment1); + QCOMPARE(a2->value("b"), attachment2); + + auto a3 = db2->rootGroup()->findEntryByUuid(uuid3)->attachments(); + QCOMPARE(a3->keys().size(), 4); + QCOMPARE(a3->values().size(), 3); + QCOMPARE(a3->value("a"), attachment1); + QCOMPARE(a3->value("b"), attachment2); + QCOMPARE(a3->value("x"), attachment3); + QCOMPARE(a3->value("y"), attachment3); +} diff --git a/tests/TestKdbx3.h b/tests/TestKdbx3.h index deb965d90..2994e355d 100644 --- a/tests/TestKdbx3.h +++ b/tests/TestKdbx3.h @@ -30,6 +30,7 @@ private slots: void testProtectedStrings(); void testBrokenHeaderHash(); void testFormat300(); + void testAttachmentIndexStability(); protected: void initTestCaseImpl() override; diff --git a/tests/TestKdbx4.cpp b/tests/TestKdbx4.cpp index a40bd1cdf..ec1d6875f 100644 --- a/tests/TestKdbx4.cpp +++ b/tests/TestKdbx4.cpp @@ -24,6 +24,10 @@ #include "format/KeePass2.h" #include "format/KeePass2Reader.h" #include "format/KeePass2Writer.h" +#ifdef WITH_XC_KEESHARE +#include "keeshare/KeeShare.h" +#include "keeshare/KeeShareSettings.h" +#endif #include "keys/FileKey.h" #include "keys/PasswordKey.h" #include "mock/MockChallengeResponseKey.h" @@ -71,7 +75,7 @@ QSharedPointer TestKdbx4Argon2::readXml(QBuffer* buf, bool strictMode, void TestKdbx4Argon2::writeXml(QBuffer* buf, Database* db, bool& hasError, QString& errorString) { - KdbxXmlWriter writer(KeePass2::FILE_VERSION_4); + KdbxXmlWriter writer(KeePass2::FILE_VERSION_4, {}); writer.writeDatabase(buf, db); hasError = writer.hasError(); errorString = writer.errorString(); @@ -405,6 +409,107 @@ void TestKdbx4Format::testUpgradeMasterKeyIntegrity_data() QTest::newRow("Upgrade (implicit): entry-customdata") << QString("entry-customdata") << KeePass2::FILE_VERSION_4; } +void TestKdbx4Format::testAttachmentIndexStability() +{ + QScopedPointer db(new Database()); + db->changeKdf(fastKdf(KeePass2::uuidToKdf(KeePass2::KDF_ARGON2ID))); + auto compositeKey = QSharedPointer::create(); + db->setKey(compositeKey); + QVERIFY(!db->uuid().isNull()); + + auto root = db->rootGroup(); + + auto group1 = new Group(); + group1->setUuid(QUuid::createUuid()); + QVERIFY(!group1->uuid().isNull()); + group1->setParent(root); + + // Simulate KeeShare group, which uses its own attachment namespace + auto group2 = new Group(); + group2->setUuid(QUuid::createUuid()); + QVERIFY(!group2->uuid().isNull()); + group2->setParent(group1); +#ifdef WITH_XC_KEESHARE + KeeShareSettings::Reference ref; + ref.type = KeeShareSettings::SynchronizeWith; + ref.path = "123"; + KeeShare::setReferenceTo(group2, ref); + QVERIFY(KeeShare::isShared(group2)); +#endif + + auto attachment1 = QByteArray("qwerty"); + auto attachment2 = QByteArray("asdf"); + auto attachment3 = QByteArray("zxcv"); + + auto entry1 = new Entry(); + entry1->setUuid(QUuid::createUuid()); + QVERIFY(!entry1->uuid().isNull()); + auto uuid1 = entry1->uuid(); + entry1->attachments()->set("a", attachment1); + QCOMPARE(entry1->attachments()->keys().size(), 1); + QCOMPARE(entry1->attachments()->values().size(), 1); + entry1->setGroup(root); + + auto entry2 = new Entry(); + entry2->setUuid(QUuid::createUuid()); + QVERIFY(!entry2->uuid().isNull()); + auto uuid2 = entry2->uuid(); + entry2->attachments()->set("a", attachment1); + entry2->attachments()->set("b", attachment2); + QCOMPARE(entry2->attachments()->keys().size(), 2); + QCOMPARE(entry2->attachments()->values().size(), 2); + entry2->setGroup(group1); + + auto entry3 = new Entry(); + entry3->setUuid(QUuid::createUuid()); + QVERIFY(!entry3->uuid().isNull()); + auto uuid3 = entry3->uuid(); + entry3->attachments()->set("a", attachment1); + entry3->attachments()->set("b", attachment2); + entry3->attachments()->set("x", attachment3); + entry3->attachments()->set("y", attachment3); + QCOMPARE(entry3->attachments()->keys().size(), 4); + QCOMPARE(entry3->attachments()->values().size(), 3); + entry3->setGroup(group2); + + QBuffer buffer; + buffer.open(QBuffer::ReadWrite); + KeePass2Writer writer; + QVERIFY(writer.writeDatabase(&buffer, db.data())); + QVERIFY(writer.version() >= KeePass2::FILE_VERSION_4); + + buffer.seek(0); + KeePass2Reader reader; + + // Re-read database and check that all attachments are still correctly assigned + auto db2 = QSharedPointer::create(); + reader.readDatabase(&buffer, QSharedPointer::create(), db2.data()); + QVERIFY(!reader.hasError()); + QVERIFY(!db->uuid().isNull()); + + auto a1 = db2->rootGroup()->findEntryByUuid(uuid1)->attachments(); + QCOMPARE(a1->keys().size(), 1); + QCOMPARE(a1->values().size(), 1); + QCOMPARE(a1->value("a"), attachment1); + + auto a2 = db2->rootGroup()->findEntryByUuid(uuid2)->attachments(); + QCOMPARE(a2->keys().size(), 2); + QCOMPARE(a2->values().size(), 2); + QCOMPARE(a2->value("a"), attachment1); + QCOMPARE(a2->value("b"), attachment2); + +#ifdef WITH_XC_KEESHARE + QVERIFY(KeeShare::isShared(db2->rootGroup()->findEntryByUuid(uuid3)->group())); +#endif + auto a3 = db2->rootGroup()->findEntryByUuid(uuid3)->attachments(); + QCOMPARE(a3->keys().size(), 4); + QCOMPARE(a3->values().size(), 3); + QCOMPARE(a3->value("a"), attachment1); + QCOMPARE(a3->value("b"), attachment2); + QCOMPARE(a3->value("x"), attachment3); + QCOMPARE(a3->value("y"), attachment3); +} + void TestKdbx4Format::testCustomData() { Database db; diff --git a/tests/TestKdbx4.h b/tests/TestKdbx4.h index 5d7f6cc50..aa2011e74 100644 --- a/tests/TestKdbx4.h +++ b/tests/TestKdbx4.h @@ -62,6 +62,7 @@ private slots: void testFormat410Upgrade(); void testUpgradeMasterKeyIntegrity(); void testUpgradeMasterKeyIntegrity_data(); + void testAttachmentIndexStability(); void testCustomData(); }; diff --git a/tests/TestKeePass2Format.cpp b/tests/TestKeePass2Format.cpp index dc928fa14..a1c7b20d4 100644 --- a/tests/TestKeePass2Format.cpp +++ b/tests/TestKeePass2Format.cpp @@ -576,7 +576,9 @@ void TestKeePass2Format::testKdbxKeyChange() buffer.seek(0); QSharedPointer db(new Database()); db->changeKdf(fastKdf(KeePass2::uuidToKdf(m_kdbxSourceDb->kdf()->uuid()))); - db->setRootGroup(m_kdbxSourceDb->rootGroup()->clone(Entry::CloneNoFlags, Group::CloneIncludeEntries)); + auto oldGroup = + db->setRootGroup(m_kdbxSourceDb->rootGroup()->clone(Entry::CloneNoFlags, Group::CloneIncludeEntries)); + delete oldGroup; db->setKey(key1); writeKdbx(&buffer, db.data(), hasError, errorString); diff --git a/tests/TestMerge.cpp b/tests/TestMerge.cpp index 014f39f41..3f64c908a 100644 --- a/tests/TestMerge.cpp +++ b/tests/TestMerge.cpp @@ -1544,9 +1544,9 @@ Database* TestMerge::createTestDatabase() Database* TestMerge::createTestDatabaseStructureClone(Database* source, int entryFlags, int groupFlags) { - Database* db = new Database(); - // the old root group is deleted by QObject::parent relationship - db->setRootGroup(source->rootGroup()->clone(static_cast(entryFlags), - static_cast(groupFlags))); + auto db = new Database(); + auto oldGroup = db->setRootGroup(source->rootGroup()->clone(static_cast(entryFlags), + static_cast(groupFlags))); + delete oldGroup; return db; } diff --git a/tests/TestOpVaultReader.cpp b/tests/TestOpVaultReader.cpp deleted file mode 100644 index aa95880a0..000000000 --- a/tests/TestOpVaultReader.cpp +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 2019 KeePassXC Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 or (at your option) - * version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "TestOpVaultReader.h" - -#include "config-keepassx-tests.h" -#include "core/Group.h" -#include "core/Metadata.h" -#include "crypto/Crypto.h" -#include "format/OpVaultReader.h" -#include "totp/totp.h" - -#include -#include -#include - -QTEST_GUILESS_MAIN(TestOpVaultReader) - -void TestOpVaultReader::initTestCase() -{ - QVERIFY(Crypto::init()); - - m_opVaultPath = QStringLiteral("%1/%2").arg(KEEPASSX_TEST_DATA_DIR, QStringLiteral("/keepassxc.opvault")); - - m_categories = QStringList({QStringLiteral("Login"), - QStringLiteral("Credit Card"), - QStringLiteral("Secure Note"), - QStringLiteral("Identity"), - QStringLiteral("Password"), - QStringLiteral("Tombstone"), - QStringLiteral("Software License"), - QStringLiteral("Bank Account"), - QStringLiteral("Database"), - QStringLiteral("Driver License"), - QStringLiteral("Outdoor License"), - QStringLiteral("Membership"), - QStringLiteral("Passport"), - QStringLiteral("Rewards"), - QStringLiteral("SSN"), - QStringLiteral("Router"), - QStringLiteral("Server"), - QStringLiteral("Email")}); -} - -void TestOpVaultReader::testReadIntoDatabase() -{ - QDir opVaultDir(m_opVaultPath); - - OpVaultReader reader; - QScopedPointer db(reader.readDatabase(opVaultDir, "a")); - QVERIFY(db); - QVERIFY2(!reader.hasError(), qPrintable(reader.errorString())); - - // Confirm specific entry details are valid - auto entry = db->rootGroup()->findEntryByPath("/Login/KeePassXC"); - QVERIFY(entry); - QCOMPARE(entry->title(), QStringLiteral("KeePassXC")); - QCOMPARE(entry->username(), QStringLiteral("keepassxc")); - QCOMPARE(entry->password(), QStringLiteral("opvault")); - QCOMPARE(entry->url(), QStringLiteral("https://www.keepassxc.org")); - QCOMPARE(entry->notes(), QStringLiteral("KeePassXC Account")); - // Check extra URL's - QCOMPARE(entry->attribute("KP2A_URL_1"), QStringLiteral("https://snapshot.keepassxc.org")); - // Check TOTP - QVERIFY(entry->hasTotp()); - // Check attachments - auto attachments = entry->attachments(); - QCOMPARE(attachments->keys().count(), 1); - QCOMPARE(*attachments->values().begin(), QByteArray("attachment")); - - // Confirm expired entries - entry = db->rootGroup()->findEntryByPath("/Login/Expired Login"); - QVERIFY(entry->isExpired()); - - // Confirm advanced attributes - entry = db->rootGroup()->findEntryByPath("/Credit Card/My Credit Card"); - QVERIFY(entry); - auto attr = entry->attributes(); - QCOMPARE(attr->value("cardholder name"), QStringLiteral("Team KeePassXC")); - QVERIFY(!attr->value("valid from").isEmpty()); - QCOMPARE(attr->value("Additional Details_PIN"), QStringLiteral("1234")); - QVERIFY(attr->isProtected("Additional Details_PIN")); - - // Confirm address fields - entry = db->rootGroup()->findEntryByPath("/Identity/Team KeePassXC"); - QVERIFY(entry); - attr = entry->attributes(); - QCOMPARE(attr->value("address_street"), QStringLiteral("123 Password Lane")); - - // Confirm complex passwords - entry = db->rootGroup()->findEntryByPath("/Password/Complex Password"); - QVERIFY(entry); - QCOMPARE(entry->password(), QStringLiteral("HfgcHjEL}iO}^3N!?*cv~O:9GJZQ0>oC")); - QVERIFY(entry->hasTotp()); - auto totpSettings = entry->totpSettings(); - QCOMPARE(totpSettings->digits, static_cast(8)); - QCOMPARE(totpSettings->step, static_cast(45)); - - // Confirm trashed entries are sent to the recycle bin - auto recycleBin = db->metadata()->recycleBin(); - QVERIFY(recycleBin); - QVERIFY(!recycleBin->isEmpty()); - QVERIFY(recycleBin->findEntryByPath("Trashed Password")); - - // Confirm created groups align with category names - for (const auto group : db->rootGroup()->children()) { - if (group == recycleBin) { - continue; - } - QVERIFY2(m_categories.contains(group->name()), - qPrintable(QStringLiteral("Invalid group name: %1").arg(group->name()))); - // Confirm each group is not empty - QVERIFY2(!group->isEmpty(), qPrintable(QStringLiteral("Group %1 is empty").arg(group->name()))); - } -} diff --git a/tests/TestPasskeys.cpp b/tests/TestPasskeys.cpp new file mode 100644 index 000000000..fc101db5e --- /dev/null +++ b/tests/TestPasskeys.cpp @@ -0,0 +1,701 @@ +/* + * Copyright (C) 2024 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "TestPasskeys.h" +#include "browser/BrowserCbor.h" +#include "browser/BrowserMessageBuilder.h" +#include "browser/BrowserPasskeysClient.h" +#include "browser/BrowserService.h" +#include "browser/PasskeyUtils.h" +#include "core/Database.h" +#include "core/Entry.h" +#include "core/Group.h" +#include "crypto/Crypto.h" + +#include +#include +#include +#include + +using namespace Botan::Sodium; + +QTEST_GUILESS_MAIN(TestPasskeys) + +// Register request +// clang-format off +const QString PublicKeyCredentialOptions = R"( + { + "attestation": "none", + "authenticatorSelection": { + "residentKey": "preferred", + "requireResidentKey": false, + "userVerification": "required" + }, + "challenge": "lVeHzVxWsr8MQxMkZF0ti6FXhdgMljqKzgA-q_zk2Mnii3eJ47VF97sqUoYktVC85WAZ1uIASm-a_lDFZwsLfw", + "pubKeyCredParams": [ + { + "type": "public-key", + "alg": -7 + }, + { + "type": "public-key", + "alg": -257 + } + ], + "rp": { + "name": "webauthn.io", + "id": "webauthn.io" + }, + "timeout": 60000, + "excludeCredentials": [], + "user": { + "displayName": "Test User", + "id": "VkdWemRDQlZjMlZ5", + "name": "Test User" + } + } +)"; + +// Register response +const QString PublicKeyCredential = R"( + { + "authenticatorAttachment": "platform", + "id": "yrzFJ5lwcpTwYMOdXSmxF5b5cYQlqBMzbbU_d-oFLO8", + "rawId": "cabcc52799707294f060c39d5d29b11796f9718425a813336db53f77ea052cef", + "response": { + "attestationObject": "o2NmbXRkbm9uZWdhdHRTdG10oGhhdXRoRGF0YVikdKbqkhPJnC90siSSsyDPQCYqlMGpUKA5fyklC2CEHvBFAAAAAP2xQbJdhEQ-ijVGmMIFpQIAIMq8xSeZcHKU8GDDnV0psReW-XGEJagTM221P3fqBSzvpQECAyYgASFYIAbsrzRbYpFhbRlZA6ZQKsoxxJWoaeXwh-XUuDLNCIXdIlgg4u5_6Q8O6R0Hg0oDCdtCJLEL0yX_GDLhU5m3HUIE54M", + "clientDataJSON": "eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoibFZlSHpWeFdzcjhNUXhNa1pGMHRpNkZYaGRnTWxqcUt6Z0EtcV96azJNbmlpM2VKNDdWRjk3c3FVb1lrdFZDODVXQVoxdUlBU20tYV9sREZad3NMZnciLCJvcmlnaW4iOiJodHRwczovL3dlYmF1dGhuLmlvIiwiY3Jvc3NPcmlnaW4iOmZhbHNlfQ" + }, + "type": "public-key" + } +)"; + +// Get request +const QString PublicKeyCredentialRequestOptions = R"( + { + "allowCredentials": [ + { + "id": "yrzFJ5lwcpTwYMOdXSmxF5b5cYQlqBMzbbU_d-oFLO8", + "transports": ["internal"], + "type": "public-key" + } + ], + "challenge": "9z36vTfQTL95Lf7WnZgyte7ohGeF-XRiLxkL-LuGU1zopRmMIUA1LVwzGpyIm1fOBn1QnRa0QH27ADAaJGHysQ", + "rpId": "webauthn.io", + "timeout": 60000, + "userVerification": "required" + } +)"; + +const QJsonArray validPubKeyCredParams = { + QJsonObject({ + {"type", "public-key"}, + {"alg", -7} + }), + QJsonObject({ + {"type", "public-key"}, + {"alg", -257} + }), +}; + +// clang-format on + +void TestPasskeys::initTestCase() +{ + QVERIFY(Crypto::init()); +} + +void TestPasskeys::init() +{ +} + +void TestPasskeys::testBase64WithHexStrings() +{ + const size_t bufSize = 64; + unsigned char buf[bufSize] = {31, 141, 30, 29, 142, 73, 5, 239, 242, 84, 187, 202, 40, 54, 15, 223, + 201, 0, 108, 109, 209, 104, 207, 239, 160, 89, 208, 117, 134, 66, 42, 12, + 31, 66, 163, 248, 221, 88, 241, 164, 6, 55, 182, 97, 186, 243, 162, 162, + 81, 220, 55, 60, 93, 207, 170, 222, 56, 234, 227, 45, 115, 175, 138, 182}; + + auto base64FromArray = browserMessageBuilder()->getBase64FromArray(reinterpret_cast(buf), bufSize); + QCOMPARE(base64FromArray, + QString("H40eHY5JBe_yVLvKKDYP38kAbG3RaM_voFnQdYZCKgwfQqP43VjxpAY3tmG686KiUdw3PF3Pqt446uMtc6-Ktg")); + + auto arrayFromBase64 = browserMessageBuilder()->getArrayFromBase64(base64FromArray); + QCOMPARE(arrayFromBase64.size(), bufSize); + + for (size_t i = 0; i < bufSize; i++) { + QCOMPARE(static_cast(arrayFromBase64.at(i)), buf[i]); + } + + auto randomDataBase64 = browserMessageBuilder()->getRandomBytesAsBase64(24); + QCOMPARE(randomDataBase64.isEmpty(), false); +} + +void TestPasskeys::testDecodeResponseData() +{ + const auto publicKeyCredential = browserMessageBuilder()->getJsonObject(PublicKeyCredential.toUtf8()); + auto response = publicKeyCredential["response"].toObject(); + auto clientDataJson = response["clientDataJSON"].toString(); + auto attestationObject = response["attestationObject"].toString(); + + QVERIFY(!clientDataJson.isEmpty()); + QVERIFY(!attestationObject.isEmpty()); + + // Parse clientDataJSON + auto clientDataByteArray = browserMessageBuilder()->getArrayFromBase64(clientDataJson); + auto clientDataJsonObject = browserMessageBuilder()->getJsonObject(clientDataByteArray); + QCOMPARE(clientDataJsonObject["challenge"], + QString("lVeHzVxWsr8MQxMkZF0ti6FXhdgMljqKzgA-q_zk2Mnii3eJ47VF97sqUoYktVC85WAZ1uIASm-a_lDFZwsLfw")); + QCOMPARE(clientDataJsonObject["origin"], QString("https://webauthn.io")); + QCOMPARE(clientDataJsonObject["type"], QString("webauthn.create")); + + // Parse attestationObject (CBOR decoding needed) + BrowserCbor browserCbor; + auto attestationByteArray = browserMessageBuilder()->getArrayFromBase64(attestationObject); + auto attestationJsonObject = browserCbor.getJsonFromCborData(attestationByteArray); + + // Parse authData + auto authDataJsonObject = attestationJsonObject["authData"].toString(); + auto authDataArray = browserMessageBuilder()->getArrayFromBase64(authDataJsonObject); + QVERIFY(authDataArray.size() >= 37); + + auto authData = browserPasskeys()->parseAuthData(authDataArray); + auto credentialData = authData["credentialData"].toObject(); + auto flags = authData["flags"].toObject(); + auto publicKey = credentialData["publicKey"].toObject(); + + // The attestationObject should include the same ID after decoding with the response root + QCOMPARE(credentialData["credentialId"].toString(), publicKeyCredential["id"].toString()); + QCOMPARE(credentialData["aaguid"].toString(), QString("_bFBsl2ERD6KNUaYwgWlAg")); + QCOMPARE(authData["rpIdHash"].toString(), QString("dKbqkhPJnC90siSSsyDPQCYqlMGpUKA5fyklC2CEHvA")); + QCOMPARE(flags["AT"], true); + QCOMPARE(flags["UP"], true); + QCOMPARE(publicKey["1"], 2); + QCOMPARE(publicKey["3"], -7); + QCOMPARE(publicKey["-1"], 1); + QCOMPARE(publicKey["-2"], QString("BuyvNFtikWFtGVkDplAqyjHElahp5fCH5dS4Ms0Ihd0")); + QCOMPARE(publicKey["-3"], QString("4u5_6Q8O6R0Hg0oDCdtCJLEL0yX_GDLhU5m3HUIE54M")); +} + +void TestPasskeys::testLoadingECPrivateKeyFromPem() +{ +#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(2, 14, 0) + QSKIP("ECDSA Signature is broken on Botan < 2.14.0"); +#endif + const auto publicKeyCredentialRequestOptions = + browserMessageBuilder()->getJsonObject(PublicKeyCredentialRequestOptions.toUtf8()); + const auto privateKeyPem = QString("-----BEGIN PRIVATE KEY-----" + "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg5DX2R6I37nMSZqCp" + "XfHlE3UeitkGGE03FqGsdfxIBoOhRANCAAQG7K80W2KRYW0ZWQOmUCrKMcSVqGnl" + "8Ifl1LgyzQiF3eLuf+kPDukdB4NKAwnbQiSxC9Ml/xgy4VOZtx1CBOeD" + "-----END PRIVATE KEY-----"); + + const auto authenticatorData = + browserMessageBuilder()->getArrayFromBase64("dKbqkhPJnC90siSSsyDPQCYqlMGpUKA5fyklC2CEHvAFAAAAAA"); + const auto clientData = browserMessageBuilder()->getArrayFromBase64( + "eyJ0eXBlIjoid2ViYXV0aG4uZ2V0IiwiY2hhbGxlbmdlIjoiOXozNnZUZlFUTDk1TGY3V25aZ3l0ZTdvaEdlRi1YUmlMeGtMLUx1R1Uxem9wUm" + "1NSVVBMUxWd3pHcHlJbTFmT0JuMVFuUmEwUUgyN0FEQWFKR0h5c1EiLCJvcmlnaW4iOiJodHRwczovL3dlYmF1dGhuLmlvIiwiY3Jvc3NPcmln" + "aW4iOmZhbHNlfQ"); + + const auto signature = browserPasskeys()->buildSignature(authenticatorData, clientData, privateKeyPem); + QCOMPARE( + browserMessageBuilder()->getBase64FromArray(signature), + QString("MEYCIQCpbDaYJ4b2ofqWBxfRNbH3XCpsyao7Iui5lVuJRU9HIQIhAPl5moNZgJu5zmurkKK_P900Ct6wd3ahVIqCEqTeeRdE")); +} + +void TestPasskeys::testLoadingRSAPrivateKeyFromPem() +{ + const auto privateKeyPem = QString("-----BEGIN PRIVATE KEY-----" + "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC5OHjBHQaRfxxX\n4WHRmqq7e7JgT" + "FRs1bd4dIOFAOZnhNE3vAg2IF5VurmeB+9ye9xh7frw8ubrL0cv\nsBWiJfN5CY3SYGRLbGTtBC0fZ6" + "OhhhjwvVM1GW6nVeRU66atzuo4NBfYXJWIYECd\npRBU4+xsDL4vJnn1mj05+v/Tqp6Uo1HrEPx9+Dc" + "oYJD+cw7+OQ83XeGmjD+Dtm5z\nNIyYdweaafVR4PEUlB3CYZuOq9xcpxay3ps2MuYT1zGoiQqk6fla" + "d+0tBWGY8Lwp\nCVulXCv7ljNJ4gxgQtOqWX8j2hC0hBxeqNYDYbrkECid3TsMTEMcV5uaVJXULg4t" + "\nn6UItA11AgMBAAECggEAC3B0WBxHuieIfllOOOC4H9/7S7fDH2f7+W2cFtQ6pqo9\nCq0WBmkYMmw" + "Xx9hpHoq4TnhhHyL9WzPzuKYD0Vx4gvacV/ckkppFScnQKJ2hF+99\nLax1DbU+UImSknfDDFPYbYld" + "b1CD2rpJG1i6X2fRQ6NuK+F7jE05mqcIyE+ZajK+\nIpx8XFmE+tI1EEWsn3CzxMLiTQfXyFt/drM9i" + "GYfcDjYY+q5vzGU3Kxj68gjc96A\nOra79DGOmwX+4zIwo5sSzI3noHnhWPLsaRtE5jWu21Qkb+1BvB" + "jPmbQfN274OQfy\n8/BNNR/NZM1mJm/8x4Mt+h5d946XlIo0AkyYZXY/UQKBgQDYI3G3BCwaYk6MDMe" + "T\nIamRZo25phPtr3if47dhT2xFWJplIt35sW+6KjD6c1Qpb2aGOUh7JPmb57H54OgJ\nmojkS5tv9Y" + "EQZFfgCCZoeuqBx+ArqtJdkXOiNEFS0dpt44I+eO3Do5pnwKRemH+Y\ncqJ/eMH96UMzYDO7WNsyOyo" + "5UQKBgQDbYU0KbGbTrMEV4T9Q41rZ2TnWzs5moqn2\nCRtB8LOdKAZUG7FRsw5KgC1CvFn3Xuk+qphY" + "GUQeJvv7FjxMRUv4BktNpXju6eUj\n3tWHzI2QOkHaeq/XibwbNomfkdyTjtLX2+v8DBHcZnCSlukxc" + "JISyPqZ6CnTjXGE\nEGB+itBI5QKBgQCA+gWttOusguVkZWvivL+3aH9CPXy+5WsR3o1boE13xDu+Bm" + "R3\n0A5gBTVc/t1GLJf9mMlL0vCwvD5UYoWU1YbC1OtYkCQIaBiYM8TXrCGseF2pMTJ/\na4CZVp10k" + "o3J7W2XYgpgKIzHRQnQ+SeLDT0y3BjHMB9N1SaJsah7/RphQQKBgQCr\nL+4yKAzFOJUjQbVqpT8Lp5" + "qeqJofNOdzef+vIOjHxafKkiF4I0UPlZ276cY6ZfGU\nWQKwHGcvMDSI5fz/d0OksySn3mvT4uhPaV8" + "urMv6s7sXhY0Zn/0NLy2NOwDolBar\nIo2vDKwTVEyb1u75CWKzDemfl66ryj++Uhk6JZAKkQKBgQCc" + "NYVe7m648DzD0nu9\n3lgetBTaAS1zZmMs8Cinj44v0ksfqxrRBzBZcO9kCQqiJZ7uCAaVYcQ+PwkY+" + "05C\n+w1+KvdGcKM+8TQYTQM3s2B9IyKExRS/dbQf9F7stJL+k5vbt6OUerwfmbNI9R3t\ngDZ4DEfo" + "pPivs9dnequ9wfaPOw==" + "-----END PRIVATE KEY-----"); + + const auto authenticatorData = + browserMessageBuilder()->getArrayFromBase64("dKbqkhPJnC90siSSsyDPQCYqlMGpUKA5fyklC2CEHvAFAAAAAA"); + const auto clientData = browserMessageBuilder()->getArrayFromBase64( + "eyJ0eXBlIjoid2ViYXV0aG4uZ2V0IiwiY2hhbGxlbmdlIjoiOXozNnZUZlFUTDk1TGY3V25aZ3l0ZTdvaEdlRi1YUmlMeGtMLUx1R1Uxem9wUm" + "1NSVVBMUxWd3pHcHlJbTFmT0JuMVFuUmEwUUgyN0FEQWFKR0h5c1EiLCJvcmlnaW4iOiJodHRwczovL3dlYmF1dGhuLmlvIiwiY3Jvc3NPcmln" + "aW4iOmZhbHNlfQ"); + + const auto signature = browserPasskeys()->buildSignature(authenticatorData, clientData, privateKeyPem); + QCOMPARE( + browserMessageBuilder()->getBase64FromArray(signature), + QString("MOGw6KrerCgPf2mPig7FOTFIUDXYAU1v2uZj89_NgQTg2UddWnAB3JId3pa4zXghj8CkjjadVOI_LvweJGCEpmPQnRby71yFXnja6j" + "Y3woX2b2klG2fB2alGZHHrVg6yVEmnAii4kYSdmoWxI7SmzLftoZfCJNFPFHujx2Pbr-6dIB02sZhtncetT0cpyWobtj9r7C5dIGfm" + "J5n-LccP-F9gXGqtbN605VrIkC2WNztjdk3dAt5FGM_dlIwSe-vP1dKfIuNqAEbgr2IVZAUFn_ZfzUo-XbXTysksuz9JZfEopJBiUi" + "9tjQDNvrYQFqB6wDPqkZAomkbRCohUb3TzCg")); +} + +void TestPasskeys::testCreatingAttestationObjectWithEC() +{ + // Predefined values for a desired outcome + const auto id = QString("yrzFJ5lwcpTwYMOdXSmxF5b5cYQlqBMzbbU_d-oFLO8"); + const auto predefinedFirst = QString("BuyvNFtikWFtGVkDplAqyjHElahp5fCH5dS4Ms0Ihd0"); + const auto predefinedSecond = QString("4u5_6Q8O6R0Hg0oDCdtCJLEL0yX_GDLhU5m3HUIE54M"); + + const auto publicKeyCredentialOptions = browserMessageBuilder()->getJsonObject(PublicKeyCredentialOptions.toUtf8()); + QJsonObject credentialCreationOptions; + browserPasskeysClient()->getCredentialCreationOptions( + publicKeyCredentialOptions, QString("https://webauthn.io"), &credentialCreationOptions); + + auto rpIdHash = browserMessageBuilder()->getSha256HashAsBase64(QString("webauthn.io")); + QCOMPARE(rpIdHash, QString("dKbqkhPJnC90siSSsyDPQCYqlMGpUKA5fyklC2CEHvA")); + + TestingVariables testingVariables = {id, predefinedFirst, predefinedSecond}; + const auto alg = browserPasskeys()->getAlgorithmFromPublicKey(credentialCreationOptions); + const auto credentialPrivateKey = + browserPasskeys()->buildCredentialPrivateKey(alg, predefinedFirst, predefinedSecond); + auto result = browserPasskeys()->buildAttestationObject( + credentialCreationOptions, "", id, credentialPrivateKey.cborEncodedPublicKey, testingVariables); + QCOMPARE( + result, + QString("\xA3" + "cfmtdnonegattStmt\xA0hauthDataX\xA4t\xA6\xEA\x92\x13\xC9\x9C/t\xB2$\x92\xB3 \xCF@&*\x94\xC1\xA9P\xA0" + "9\x7F)%\x0B`\x84\x1E\xF0" + "E\x00\x00\x00\x01\x01\x02\x03\x04\x05\x06\x07\b\x01\x02\x03\x04\x05\x06\x07\b\x00 \x8B\xB0\xCA" + "6\x17\xD6\xDE\x01\x11|\xEA\x94\r\xA0R\xC0\x80_\xF3r\xFBr\xB5\x02\x03:" + "\xBAr\x0Fi\x81\xFE\xA5\x01\x02\x03& \x01!X " + "e\xE2\xF2\x1F:cq\xD3G\xEA\xE0\xF7\x1F\xCF\xFA\\\xABO\xF6\x86\x88\x80\t\xAE\x81\x8BT\xB2\x9B\x15\x85~" + "\"X \\\x8E\x1E@\xDB\x97T-\xF8\x9B\xB0\xAD" + "5\xDC\x12^\xC3\x95\x05\xC6\xDF^\x03\xCB\xB4Q\x91\xFF|\xDB\x94\xB7")); + + // Double check that the result can be decoded + BrowserCbor browserCbor; + auto attestationJsonObject = browserCbor.getJsonFromCborData(result); + + // Parse authData + auto authDataJsonObject = attestationJsonObject["authData"].toString(); + auto authDataArray = browserMessageBuilder()->getArrayFromBase64(authDataJsonObject); + QVERIFY(authDataArray.size() >= 37); + + auto authData = browserPasskeys()->parseAuthData(authDataArray); + auto credentialData = authData["credentialData"].toObject(); + auto flags = authData["flags"].toObject(); + auto publicKey = credentialData["publicKey"].toObject(); + + // The attestationObject should include the same ID after decoding with the response root + QCOMPARE(credentialData["credentialId"].toString(), QString("yrzFJ5lwcpTwYMOdXSmxF5b5cYQlqBMzbbU_d-oFLO8")); + QCOMPARE(authData["rpIdHash"].toString(), QString("dKbqkhPJnC90siSSsyDPQCYqlMGpUKA5fyklC2CEHvA")); + QCOMPARE(flags["AT"], true); + QCOMPARE(flags["UP"], true); + QCOMPARE(publicKey["1"], WebAuthnCoseKeyType::EC2); + QCOMPARE(publicKey["3"], WebAuthnAlgorithms::ES256); + QCOMPARE(publicKey["-1"], 1); + QCOMPARE(publicKey["-2"], predefinedFirst); + QCOMPARE(publicKey["-3"], predefinedSecond); +} + +void TestPasskeys::testCreatingAttestationObjectWithRSA() +{ + // Predefined values for a desired outcome + const auto id = QString("yrzFJ5lwcpTwYMOdXSmxF5b5cYQlqBMzbbU_d-oFLO8"); + const auto predefinedModulus = QString("vUhOZnyn8yn7U-nuHlsXZ6WDWLuYvevWWnwtoHxDEQq27vlp7yAfeVvAPkcvhxRcwoCEUespoa5" + "5IDbkpp2Ypd6b15KbB4C-_4gM4r2FK9gfXghLPAXsMhstYv4keNFb4ghdlY5oUU3JCqUSMyOpmd" + "HeX-RikLL0wgGv_tLT2DaDiWeyQCAtiDblr6COuTAU2kTpLc3Bn35geV9Iqw4iT8DwBQ-f8vjnI" + "EDANXKUiRPojfy1q7WwEl-zMv6Ke2jFHxf68u82BSy3u9DOQaa24FAHoCm8Yd0n5IazMyoxyttl" + "tRt8un8myVOGxcXMiR9_kQb9pu1RRLQMQLd-icE1Qw"); + const auto predefinedExponent = QString("AQAB"); + + // Force algorithm to RSA + QJsonArray pubKeyCredParams; + pubKeyCredParams.append(QJsonObject({{"type", "public-key"}, {"alg", -257}})); + + const auto publicKeyCredentialOptions = browserMessageBuilder()->getJsonObject(PublicKeyCredentialOptions.toUtf8()); + QJsonObject credentialCreationOptions; + browserPasskeysClient()->getCredentialCreationOptions( + publicKeyCredentialOptions, QString("https://webauthn.io"), &credentialCreationOptions); + credentialCreationOptions["credTypesAndPubKeyAlgs"] = pubKeyCredParams; + + auto rpIdHash = browserMessageBuilder()->getSha256HashAsBase64(QString("webauthn.io")); + QCOMPARE(rpIdHash, QString("dKbqkhPJnC90siSSsyDPQCYqlMGpUKA5fyklC2CEHvA")); + + TestingVariables testingVariables = {id, predefinedModulus, predefinedExponent}; + const auto alg = browserPasskeys()->getAlgorithmFromPublicKey(credentialCreationOptions); + auto credentialPrivateKey = + browserPasskeys()->buildCredentialPrivateKey(alg, predefinedModulus, predefinedExponent); + auto result = browserPasskeys()->buildAttestationObject( + credentialCreationOptions, "", id, credentialPrivateKey.cborEncodedPublicKey, testingVariables); + + // Double check that the result can be decoded + BrowserCbor browserCbor; + auto attestationJsonObject = browserCbor.getJsonFromCborData(result); + + // Parse authData + auto authDataJsonObject = attestationJsonObject["authData"].toString(); + auto authDataArray = browserMessageBuilder()->getArrayFromBase64(authDataJsonObject); + QVERIFY(authDataArray.size() >= 37); + + auto authData = browserPasskeys()->parseAuthData(authDataArray); + auto credentialData = authData["credentialData"].toObject(); + auto flags = authData["flags"].toObject(); + auto publicKey = credentialData["publicKey"].toObject(); + + // The attestationObject should include the same ID after decoding with the response root + QCOMPARE(credentialData["credentialId"].toString(), QString("yrzFJ5lwcpTwYMOdXSmxF5b5cYQlqBMzbbU_d-oFLO8")); + QCOMPARE(authData["rpIdHash"].toString(), QString("dKbqkhPJnC90siSSsyDPQCYqlMGpUKA5fyklC2CEHvA")); + QCOMPARE(flags["AT"], true); + QCOMPARE(flags["UP"], true); + QCOMPARE(publicKey["1"], WebAuthnCoseKeyType::RSA); + QCOMPARE(publicKey["3"], WebAuthnAlgorithms::RS256); + QCOMPARE(publicKey["-1"], predefinedModulus); + QCOMPARE(publicKey["-2"], predefinedExponent); +} + +void TestPasskeys::testRegister() +{ + // Predefined values for a desired outcome + const auto predefinedId = QString("yrzFJ5lwcpTwYMOdXSmxF5b5cYQlqBMzbbU_d-oFLO8"); + const auto predefinedX = QString("BuyvNFtikWFtGVkDplAqyjHElahp5fCH5dS4Ms0Ihd0"); + const auto predefinedY = QString("4u5_6Q8O6R0Hg0oDCdtCJLEL0yX_GDLhU5m3HUIE54M"); + const auto origin = QString("https://webauthn.io"); + const auto testDataPublicKey = browserMessageBuilder()->getJsonObject(PublicKeyCredential.toUtf8()); + const auto testDataResponse = testDataPublicKey["response"]; + const auto publicKeyCredentialOptions = browserMessageBuilder()->getJsonObject(PublicKeyCredentialOptions.toUtf8()); + + QJsonObject credentialCreationOptions; + const auto creationResult = browserPasskeysClient()->getCredentialCreationOptions( + publicKeyCredentialOptions, origin, &credentialCreationOptions); + QVERIFY(creationResult == 0); + + TestingVariables testingVariables = {predefinedId, predefinedX, predefinedY}; + auto result = browserPasskeys()->buildRegisterPublicKeyCredential(credentialCreationOptions, testingVariables); + auto publicKeyCredential = result.response; + QCOMPARE(publicKeyCredential["type"], QString("public-key")); + QCOMPARE(publicKeyCredential["authenticatorAttachment"], QString("platform")); + QCOMPARE(publicKeyCredential["id"], QString("yrzFJ5lwcpTwYMOdXSmxF5b5cYQlqBMzbbU_d-oFLO8")); + + auto response = publicKeyCredential["response"].toObject(); + auto attestationObject = response["attestationObject"].toString(); + auto clientDataJson = response["clientDataJSON"].toString(); + QCOMPARE(attestationObject, testDataResponse["attestationObject"].toString()); + + // Parse clientDataJSON + auto clientDataByteArray = browserMessageBuilder()->getArrayFromBase64(clientDataJson); + auto clientDataJsonObject = browserMessageBuilder()->getJsonObject(clientDataByteArray); + QCOMPARE(clientDataJsonObject["challenge"], + QString("lVeHzVxWsr8MQxMkZF0ti6FXhdgMljqKzgA-q_zk2Mnii3eJ47VF97sqUoYktVC85WAZ1uIASm-a_lDFZwsLfw")); + QCOMPARE(clientDataJsonObject["origin"], origin); + QCOMPARE(clientDataJsonObject["type"], QString("webauthn.create")); +} + +void TestPasskeys::testGet() +{ +#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(2, 14, 0) + QSKIP("ECDSA Signature is broken on Botan < 2.14.0"); +#endif + const auto privateKeyPem = QString("-----BEGIN PRIVATE KEY-----" + "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg5DX2R6I37nMSZqCp" + "XfHlE3UeitkGGE03FqGsdfxIBoOhRANCAAQG7K80W2KRYW0ZWQOmUCrKMcSVqGnl" + "8Ifl1LgyzQiF3eLuf+kPDukdB4NKAwnbQiSxC9Ml/xgy4VOZtx1CBOeD" + "-----END PRIVATE KEY-----"); + const auto origin = QString("https://webauthn.io"); + const auto id = QString("yrzFJ5lwcpTwYMOdXSmxF5b5cYQlqBMzbbU_d-oFLO8"); + const auto publicKeyCredentialRequestOptions = + browserMessageBuilder()->getJsonObject(PublicKeyCredentialRequestOptions.toUtf8()); + + QJsonObject assertionOptions; + const auto assertionResult = + browserPasskeysClient()->getAssertionOptions(publicKeyCredentialRequestOptions, origin, &assertionOptions); + QVERIFY(assertionResult == 0); + + auto publicKeyCredential = browserPasskeys()->buildGetPublicKeyCredential(assertionOptions, id, {}, privateKeyPem); + QVERIFY(!publicKeyCredential.isEmpty()); + QCOMPARE(publicKeyCredential["id"].toString(), id); + + auto response = publicKeyCredential["response"].toObject(); + QCOMPARE(response["authenticatorData"].toString(), QString("dKbqkhPJnC90siSSsyDPQCYqlMGpUKA5fyklC2CEHvAFAAAAAA")); + QCOMPARE(response["clientDataJSON"].toString(), + QString("eyJjaGFsbGVuZ2UiOiI5ejM2dlRmUVRMOTVMZjdXblpneXRlN29oR2VGLVhSaUx4a0wtTHVHVTF6b3BSbU1JVUExTFZ3ekdwe" + "UltMWZPQm4xUW5SYTBRSDI3QURBYUpHSHlzUSIsImNyb3NzT3JpZ2luIjpmYWxzZSwib3JpZ2luIjoiaHR0cHM6Ly93ZWJhdX" + "Robi5pbyIsInR5cGUiOiJ3ZWJhdXRobi5nZXQifQ")); + QCOMPARE( + response["signature"].toString(), + QString("MEUCIHFv0lOOGGloi_XoH5s3QDSs__8yAp9ZTMEjNiacMpOxAiEA04LAfO6TE7j12XNxd3zHQpn4kZN82jQFPntPiPBSD5c")); + + auto clientDataJson = response["clientDataJSON"].toString(); + auto clientDataByteArray = browserMessageBuilder()->getArrayFromBase64(clientDataJson); + auto clientDataJsonObject = browserMessageBuilder()->getJsonObject(clientDataByteArray); + QCOMPARE(clientDataJsonObject["challenge"].toString(), publicKeyCredentialRequestOptions["challenge"].toString()); +} + +void TestPasskeys::testExtensions() +{ + auto extensions = QJsonObject({{"credProps", true}, {"uvm", true}}); + auto result = passkeyUtils()->buildExtensionData(extensions); + + BrowserCbor cbor; + auto extensionJson = cbor.getJsonFromCborData(result); + auto uvmArray = extensionJson["uvm"].toArray(); + QCOMPARE(extensionJson["credProps"].toObject()["rk"].toBool(), true); + QCOMPARE(uvmArray.size(), 1); + QCOMPARE(uvmArray.first().toArray().size(), 3); + + auto partial = QJsonObject({{"props", true}, {"uvm", true}}); + auto faulty = QJsonObject({{"uvx", true}}); + auto partialData = passkeyUtils()->buildExtensionData(partial); + auto faultyData = passkeyUtils()->buildExtensionData(faulty); + + auto partialJson = cbor.getJsonFromCborData(partialData); + QCOMPARE(partialJson["uvm"].toArray().size(), 1); + + auto faultyJson = cbor.getJsonFromCborData(faultyData); + QCOMPARE(faultyJson.size(), 0); +} + +void TestPasskeys::testParseFlags() +{ + auto registerResult = browserPasskeys()->parseFlags("\x45"); + QCOMPARE(registerResult["ED"], false); + QCOMPARE(registerResult["AT"], true); + QCOMPARE(registerResult["BS"], false); + QCOMPARE(registerResult["BE"], false); + QCOMPARE(registerResult["UV"], true); + QCOMPARE(registerResult["UP"], true); + + auto getResult = browserPasskeys()->parseFlags("\x05"); // Only UP and UV + QCOMPARE(getResult["ED"], false); + QCOMPARE(getResult["AT"], false); + QCOMPARE(getResult["BS"], false); + QCOMPARE(getResult["BE"], false); + QCOMPARE(getResult["UV"], true); + QCOMPARE(getResult["UP"], true); +} + +void TestPasskeys::testSetFlags() +{ + auto registerJson = + QJsonObject({{"ED", false}, {"AT", true}, {"BS", false}, {"BE", false}, {"UV", true}, {"UP", true}}); + auto registerResult = browserPasskeys()->setFlagsFromJson(registerJson); + QCOMPARE(registerResult, 0x45); + + auto getJson = + QJsonObject({{"ED", false}, {"AT", false}, {"BS", false}, {"BE", false}, {"UV", true}, {"UP", true}}); + auto getResult = browserPasskeys()->setFlagsFromJson(getJson); + QCOMPARE(getResult, 0x05); + + // With "discouraged", so UV is false + auto discouragedJson = + QJsonObject({{"ED", false}, {"AT", false}, {"BS", false}, {"BE", false}, {"UV", false}, {"UP", true}}); + auto discouragedResult = browserPasskeys()->setFlagsFromJson(discouragedJson); + QCOMPARE(discouragedResult, 0x01); +} + +void TestPasskeys::testEntry() +{ + Database db; + auto* root = db.rootGroup(); + root->setUuid(QUuid::createUuid()); + + auto* group1 = new Group(); + group1->setUuid(QUuid::createUuid()); + group1->setParent(root); + + auto* entry = new Entry(); + entry->setGroup(root); + + browserService()->addPasskeyToEntry(entry, + QString("example.com"), + QString("example.com"), + QString("username"), + QString("userId"), + QString("userHandle"), + QString("privateKey")); + + QVERIFY(entry->hasPasskey()); +} + +void TestPasskeys::testIsDomain() +{ + QVERIFY(passkeyUtils()->isDomain("test.example.com")); + QVERIFY(passkeyUtils()->isDomain("example.com")); + + QVERIFY(!passkeyUtils()->isDomain("exa[mple.org")); + QVERIFY(!passkeyUtils()->isDomain("example.com.")); + QVERIFY(!passkeyUtils()->isDomain("127.0.0.1")); + QVERIFY(!passkeyUtils()->isDomain("127.0.0.1.")); +} + +// List from https://html.spec.whatwg.org/multipage/browsers.html#is-a-registrable-domain-suffix-of-or-is-equal-to +void TestPasskeys::testRegistrableDomainSuffix() +{ + QVERIFY(passkeyUtils()->isRegistrableDomainSuffix(QString("example.com"), QString("example.com"))); + QVERIFY(!passkeyUtils()->isRegistrableDomainSuffix(QString("example.com"), QString("example.com."))); + QVERIFY(!passkeyUtils()->isRegistrableDomainSuffix(QString("example.com."), QString("example.com"))); + QVERIFY(passkeyUtils()->isRegistrableDomainSuffix(QString("example.com"), QString("www.example.com"))); + QVERIFY(!passkeyUtils()->isRegistrableDomainSuffix(QString("com"), QString("example.com"))); + QVERIFY(passkeyUtils()->isRegistrableDomainSuffix(QString("example"), QString("example"))); + QVERIFY( + !passkeyUtils()->isRegistrableDomainSuffix(QString("s3.amazonaws.com"), QString("example.s3.amazonaws.com"))); + QVERIFY(!passkeyUtils()->isRegistrableDomainSuffix(QString("example.compute.amazonaws.com"), + QString("www.example.compute.amazonaws.com"))); + QVERIFY(!passkeyUtils()->isRegistrableDomainSuffix(QString("amazonaws.com"), + QString("www.example.compute.amazonaws.com"))); + QVERIFY(passkeyUtils()->isRegistrableDomainSuffix(QString("amazonaws.com"), QString("test.amazonaws.com"))); +} + +void TestPasskeys::testRpIdValidation() +{ + QString result; + auto allowedIdentical = passkeyUtils()->validateRpId(QString("example.com"), QString("example.com"), &result); + QCOMPARE(result, QString("example.com")); + QVERIFY(allowedIdentical == 0); + + result.clear(); + auto allowedSubdomain = passkeyUtils()->validateRpId(QString("example.com"), QString("www.example.com"), &result); + QCOMPARE(result, QString("example.com")); + QVERIFY(allowedSubdomain == 0); + + result.clear(); + auto emptyRpId = passkeyUtils()->validateRpId({}, QString("example.com"), &result); + QCOMPARE(result, QString("")); + QVERIFY(emptyRpId == ERROR_PASSKEYS_DOMAIN_RPID_MISMATCH); + + result.clear(); + auto ipRpId = passkeyUtils()->validateRpId(QString("127.0.0.1"), QString("example.com"), &result); + QCOMPARE(result, QString("")); + QVERIFY(ipRpId == ERROR_PASSKEYS_DOMAIN_RPID_MISMATCH); + + result.clear(); + auto emptyOrigin = passkeyUtils()->validateRpId(QString("example.com"), QString(""), &result); + QVERIFY(result.isEmpty()); + QCOMPARE(emptyOrigin, ERROR_PASSKEYS_ORIGIN_NOT_ALLOWED); + + result.clear(); + auto ipOrigin = passkeyUtils()->validateRpId(QString("example.com"), QString("127.0.0.1"), &result); + QVERIFY(result.isEmpty()); + QCOMPARE(ipOrigin, ERROR_PASSKEYS_DOMAIN_RPID_MISMATCH); + + result.clear(); + auto invalidRpId = passkeyUtils()->validateRpId(QString(".com"), QString("example.com"), &result); + QVERIFY(result.isEmpty()); + QCOMPARE(invalidRpId, ERROR_PASSKEYS_DOMAIN_RPID_MISMATCH); + + result.clear(); + auto malformedOrigin = passkeyUtils()->validateRpId(QString("example.com."), QString("example.com."), &result); + QVERIFY(result.isEmpty()); + QCOMPARE(malformedOrigin, ERROR_PASSKEYS_DOMAIN_RPID_MISMATCH); + + result.clear(); + auto malformed = passkeyUtils()->validateRpId(QString("...com."), QString("example...com"), &result); + QVERIFY(result.isEmpty()); + QCOMPARE(malformed, ERROR_PASSKEYS_DOMAIN_RPID_MISMATCH); + + result.clear(); + auto differentDomain = passkeyUtils()->validateRpId(QString("another.com"), QString("example.com"), &result); + QVERIFY(result.isEmpty()); + QCOMPARE(differentDomain, ERROR_PASSKEYS_DOMAIN_RPID_MISMATCH); +} + +void TestPasskeys::testParseAttestation() +{ + QVERIFY(passkeyUtils()->parseAttestation(QString("")) == QString("none")); + QVERIFY(passkeyUtils()->parseAttestation(QString("direct")) == QString("direct")); + QVERIFY(passkeyUtils()->parseAttestation(QString("none")) == QString("none")); + QVERIFY(passkeyUtils()->parseAttestation(QString("indirect")) == QString("none")); + QVERIFY(passkeyUtils()->parseAttestation(QString("invalidvalue")) == QString("none")); +} + +void TestPasskeys::testParseCredentialTypes() +{ + const QJsonArray invalidPubKeyCredParams = { + QJsonObject({{"type", "private-key"}, {"alg", -7}}), + QJsonObject({{"type", "private-key"}, {"alg", -257}}), + }; + + const QJsonArray partiallyInvalidPubKeyCredParams = { + QJsonObject({{"type", "private-key"}, {"alg", -7}}), + QJsonObject({{"type", "public-key"}, {"alg", -257}}), + }; + + auto validResponse = passkeyUtils()->parseCredentialTypes(validPubKeyCredParams); + QVERIFY(validResponse == validPubKeyCredParams); + + auto invalidResponse = passkeyUtils()->parseCredentialTypes(invalidPubKeyCredParams); + QVERIFY(invalidResponse.isEmpty()); + + auto partiallyInvalidResponse = passkeyUtils()->parseCredentialTypes(partiallyInvalidPubKeyCredParams); + QVERIFY(partiallyInvalidResponse != validPubKeyCredParams); + QVERIFY(partiallyInvalidResponse.size() == 1); + QVERIFY(partiallyInvalidResponse.first()["type"].toString() == QString("public-key")); + QVERIFY(partiallyInvalidResponse.first()["alg"].toInt() == -257); + + auto emptyResponse = passkeyUtils()->parseCredentialTypes({}); + QVERIFY(emptyResponse == validPubKeyCredParams); + + const auto publicKeyOptions = browserMessageBuilder()->getJsonObject(PublicKeyCredentialOptions.toUtf8()); + auto responseFromPublicKey = passkeyUtils()->parseCredentialTypes(publicKeyOptions["pubKeyCredParams"].toArray()); + QVERIFY(responseFromPublicKey == validPubKeyCredParams); +} + +void TestPasskeys::testIsAuthenticatorSelectionValid() +{ + QVERIFY(passkeyUtils()->isAuthenticatorSelectionValid({})); + QVERIFY(passkeyUtils()->isAuthenticatorSelectionValid(QJsonObject({{"authenticatorAttachment", "platform"}}))); + QVERIFY( + passkeyUtils()->isAuthenticatorSelectionValid(QJsonObject({{"authenticatorAttachment", "cross-platform"}}))); + QVERIFY(!passkeyUtils()->isAuthenticatorSelectionValid(QJsonObject({{"authenticatorAttachment", "something"}}))); +} + +void TestPasskeys::testIsResidentKeyRequired() +{ + QVERIFY(passkeyUtils()->isResidentKeyRequired(QJsonObject({{"residentKey", "required"}}))); + QVERIFY(passkeyUtils()->isResidentKeyRequired(QJsonObject({{"residentKey", "preferred"}}))); + QVERIFY(!passkeyUtils()->isResidentKeyRequired(QJsonObject({{"residentKey", "discouraged"}}))); + QVERIFY(passkeyUtils()->isResidentKeyRequired(QJsonObject({{"requireResidentKey", true}}))); +} + +void TestPasskeys::testIsUserVerificationRequired() +{ + QVERIFY(passkeyUtils()->isUserVerificationRequired(QJsonObject({{"userVerification", "required"}}))); + QVERIFY(passkeyUtils()->isUserVerificationRequired(QJsonObject({{"userVerification", "preferred"}}))); + QVERIFY(!passkeyUtils()->isUserVerificationRequired(QJsonObject({{"userVerification", "discouraged"}}))); +} + +void TestPasskeys::testAllowLocalhostWithPasskeys() +{ + QVERIFY(passkeyUtils()->isOriginAllowedWithLocalhost(false, "https://example.com")); + QVERIFY(!passkeyUtils()->isOriginAllowedWithLocalhost(false, "http://example.com")); + QVERIFY(passkeyUtils()->isOriginAllowedWithLocalhost(true, "https://example.com")); + QVERIFY(!passkeyUtils()->isOriginAllowedWithLocalhost(true, "http://example.com")); + QVERIFY(!passkeyUtils()->isOriginAllowedWithLocalhost(false, "http://localhost")); + QVERIFY(passkeyUtils()->isOriginAllowedWithLocalhost(true, "http://localhost")); + QVERIFY(!passkeyUtils()->isOriginAllowedWithLocalhost(true, "http://localhosting")); + QVERIFY(passkeyUtils()->isOriginAllowedWithLocalhost(true, "http://test.localhost")); + QVERIFY(!passkeyUtils()->isOriginAllowedWithLocalhost(false, "http://test.localhost")); + QVERIFY(!passkeyUtils()->isOriginAllowedWithLocalhost(true, "http://localhost.example.com")); +} diff --git a/tests/TestPasskeys.h b/tests/TestPasskeys.h new file mode 100644 index 000000000..b1c8dbc4e --- /dev/null +++ b/tests/TestPasskeys.h @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2024 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSXC_TESTPASSKEYS_H +#define KEEPASSXC_TESTPASSKEYS_H + +#include "browser/BrowserPasskeys.h" +#include +#include + +class TestPasskeys : public QObject +{ + Q_OBJECT + +private slots: + void initTestCase(); + void init(); + + void testBase64WithHexStrings(); + void testDecodeResponseData(); + + void testLoadingECPrivateKeyFromPem(); + void testLoadingRSAPrivateKeyFromPem(); + void testCreatingAttestationObjectWithEC(); + void testCreatingAttestationObjectWithRSA(); + void testRegister(); + void testGet(); + + void testExtensions(); + void testParseFlags(); + void testSetFlags(); + + void testEntry(); + void testIsDomain(); + void testRegistrableDomainSuffix(); + void testRpIdValidation(); + void testParseAttestation(); + void testParseCredentialTypes(); + void testIsAuthenticatorSelectionValid(); + void testIsResidentKeyRequired(); + void testIsUserVerificationRequired(); + void testAllowLocalhostWithPasskeys(); +}; +#endif // KEEPASSXC_TESTPASSKEYS_H diff --git a/tests/TestTools.cpp b/tests/TestTools.cpp index 438606c7e..9aadfe0bf 100644 --- a/tests/TestTools.cpp +++ b/tests/TestTools.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 KeePassXC Team + * Copyright (C) 2024 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -68,6 +68,14 @@ void TestTools::testIsBase64() QVERIFY(!Tools::isBase64(QByteArray("123"))); } +void TestTools::testIsAsciiString() +{ + QVERIFY(Tools::isAsciiString("abcd9876DEFGhijkMNO")); + QVERIFY(Tools::isAsciiString("-!&5a?`~")); + QVERIFY(!Tools::isAsciiString("Štest")); + QVERIFY(!Tools::isAsciiString("Ãß")); +} + void TestTools::testEnvSubstitute() { QProcessEnvironment environment; @@ -165,6 +173,34 @@ void TestTools::testBackupFilePatternSubstitution() QCOMPARE(Tools::substituteBackupFilePath(pattern, dbFilePath), expectedSubstitution); } +void TestTools::testEscapeRegex_data() +{ + QTest::addColumn("input"); + QTest::addColumn("expected"); + + QString all_regular_characters = "0123456789"; + for (char c = 'a'; c != 'z'; ++c) { + all_regular_characters += QChar::fromLatin1(c); + } + for (char c = 'A'; c != 'Z'; ++c) { + all_regular_characters += QChar::fromLatin1(c); + } + + QTest::newRow("Regular characters should not be escaped") << all_regular_characters << all_regular_characters; + QTest::newRow("Special characters should be escaped") << R"(.^$*+-?()[]{}|\)" + << R"(\.\^\$\*\+\-\?\(\)\[\]\{\}\|\\)"; + QTest::newRow("Null character") << QString::fromLatin1("ab\0c", 4) << "ab\\0c"; +} + +void TestTools::testEscapeRegex() +{ + QFETCH(QString, input); + QFETCH(QString, expected); + + auto actual = Tools::escapeRegex(input); + QCOMPARE(actual, expected); +} + void TestTools::testConvertToRegex() { QFETCH(QString, input); @@ -185,16 +221,56 @@ void TestTools::testConvertToRegex_data() QTest::newRow("No Options") << input << static_cast(Tools::RegexConvertOpts::DEFAULT) << QString(R"(te|st*t?[5]^(test);',.)"); + // Escape regex + QTest::newRow("Escape Regex") << input << static_cast(Tools::RegexConvertOpts::ESCAPE_REGEX) + << Tools::escapeRegex(input); + QTest::newRow("Escape Regex and exact match") + << input << static_cast(Tools::RegexConvertOpts::ESCAPE_REGEX | Tools::RegexConvertOpts::EXACT_MATCH) + << "^(?:" + Tools::escapeRegex(input) + ")$"; + + // Exact match does not escape the pattern QTest::newRow("Exact Match") << input << static_cast(Tools::RegexConvertOpts::EXACT_MATCH) - << QString(R"(^te|st*t?[5]^(test);',.$)"); + << QString(R"(^(?:te|st*t?[5]^(test);',.)$)"); + + // Exact match with improper regex + QTest::newRow("Exact Match") << ")av(" << static_cast(Tools::RegexConvertOpts::EXACT_MATCH) + << QString(R"(^(?:)av()$)"); + QTest::newRow("Exact Match & Wildcard") << input << static_cast(Tools::RegexConvertOpts::EXACT_MATCH | Tools::RegexConvertOpts::WILDCARD_ALL) - << QString(R"(^te|st.*t.\[5\]\^\(test\);'\,\.$)"); + << QString(R"(^(?:te|st.*t.\[5\]\^\(test\)\;\'\,\.)$)"); QTest::newRow("Wildcard Single Match") << input << static_cast(Tools::RegexConvertOpts::WILDCARD_SINGLE_MATCH) - << QString(R"(te\|st\*t.\[5\]\^\(test\);'\,\.)"); + << QString(R"(te\|st\*t.\[5\]\^\(test\)\;\'\,\.)"); QTest::newRow("Wildcard OR") << input << static_cast(Tools::RegexConvertOpts::WILDCARD_LOGICAL_OR) - << QString(R"(te|st\*t\?\[5\]\^\(test\);'\,\.)"); + << QString(R"(te|st\*t\?\[5\]\^\(test\)\;\'\,\.)"); QTest::newRow("Wildcard Unlimited Match") << input << static_cast(Tools::RegexConvertOpts::WILDCARD_UNLIMITED_MATCH) - << QString(R"(te\|st.*t\?\[5\]\^\(test\);'\,\.)"); + << QString(R"(te\|st.*t\?\[5\]\^\(test\)\;\'\,\.)"); +} + +void TestTools::testArrayContainsValues() +{ + const auto values = QStringList() << "first" + << "second" + << "third"; + + // One missing + const auto result1 = Tools::getMissingValuesFromList(values, + QStringList() << "first" + << "second" + << "none"); + QCOMPARE(result1.length(), 1); + QCOMPARE(result1.first(), QString("none")); + + // All found + const auto result2 = Tools::getMissingValuesFromList(values, + QStringList() << "first" + << "second" + << "third"); + QCOMPARE(result2.length(), 0); + + // None are found + const auto numberValues = QList({1, 2, 3, 4, 5}); + const auto result3 = Tools::getMissingValuesFromList(numberValues, QList({6, 7, 8})); + QCOMPARE(result3.length(), 3); } diff --git a/tests/TestTools.h b/tests/TestTools.h index f590a53a1..e8a44b8b3 100644 --- a/tests/TestTools.h +++ b/tests/TestTools.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 KeePassXC Team + * Copyright (C) 2024 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -27,12 +27,16 @@ private slots: void testHumanReadableFileSize(); void testIsHex(); void testIsBase64(); + void testIsAsciiString(); void testEnvSubstitute(); void testValidUuid(); void testBackupFilePatternSubstitution_data(); void testBackupFilePatternSubstitution(); + void testEscapeRegex(); + void testEscapeRegex_data(); void testConvertToRegex(); void testConvertToRegex_data(); + void testArrayContainsValues(); }; #endif // KEEPASSX_TESTTOOLS_H diff --git a/tests/TestTotp.cpp b/tests/TestTotp.cpp index b83e7d296..f2bb3d47a 100644 --- a/tests/TestTotp.cpp +++ b/tests/TestTotp.cpp @@ -19,8 +19,8 @@ #include "TestTotp.h" #include "core/Entry.h" +#include "core/Totp.h" #include "crypto/Crypto.h" -#include "totp/totp.h" #include @@ -59,6 +59,12 @@ void TestTotp::testParseSecret() QCOMPARE(settings->step, 30u); QCOMPARE(settings->algorithm, Totp::Algorithm::Sha512); + // Max TOTP step of 24-hours + secret.replace("period=30", "period=90000"); + settings = Totp::parseSettings(secret); + QVERIFY(!settings.isNull()); + QCOMPARE(settings->step, 86400u); + // KeeOTP Parsing secret = "key=HXDMVJECJJWSRBY%3d&step=25&size=8&otpHashMode=Sha256"; settings = Totp::parseSettings(secret); @@ -91,6 +97,14 @@ void TestTotp::testParseSecret() QCOMPARE(settings->digits, 6u); QCOMPARE(settings->step, 30u); QCOMPARE(settings->algorithm, Totp::Algorithm::Sha1); + + // Blank settings (expected failure) + settings = Totp::parseSettings("", ""); + QVERIFY(settings.isNull()); + + // TOTP Settings with blank secret (expected failure) + settings = Totp::parseSettings("30;8", ""); + QVERIFY(settings.isNull()); } void TestTotp::testTotpCode() @@ -158,4 +172,8 @@ void TestTotp::testEntryHistory() entry.setTotp(settings); QCOMPARE(entry.historyItems().size(), 2); QCOMPARE(entry.totpSettings()->key, QString("foo")); + // Nullptr Settings (expected reset of TOTP) + entry.setTotp(nullptr); + QVERIFY(!entry.hasTotp()); + QCOMPARE(entry.historyItems().size(), 3); } diff --git a/tests/TestUrlTools.cpp b/tests/TestUrlTools.cpp new file mode 100644 index 000000000..bc6f3546b --- /dev/null +++ b/tests/TestUrlTools.cpp @@ -0,0 +1,144 @@ +/* + * Copyright (C) 2024 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "TestUrlTools.h" +#include + +QTEST_GUILESS_MAIN(TestUrlTools) + +void TestUrlTools::initTestCase() +{ + m_urlTools = urlTools(); +} + +void TestUrlTools::init() +{ +} + +void TestUrlTools::testTopLevelDomain() +{ + // Create list of URLs and expected TLD responses + QList> tldUrls{ + {QString("https://another.example.co.uk"), QString("co.uk")}, + {QString("https://www.example.com"), QString("com")}, + {QString("https://example.com"), QString("com")}, + {QString("https://github.com"), QString("com")}, + {QString("http://test.net"), QString("net")}, + {QString("http://so.many.subdomains.co.jp"), QString("co.jp")}, + {QString("https://192.168.0.1"), QString("192.168.0.1")}, + {QString("https://192.168.0.1:8000"), QString("192.168.0.1")}, + {QString("https://www.nic.ar"), QString("ar")}, + {QString("https://no.no.no"), QString("no")}, + {QString("https://www.blogspot.com.ar"), QString("blogspot.com.ar")}, // blogspot.com.ar is a TLD + {QString("https://jap.an.ide.kyoto.jp"), QString("ide.kyoto.jp")}, // ide.kyoto.jp is a TLD + {QString("ar"), QString("ar")}, + }; + + for (const auto& u : tldUrls) { + QCOMPARE(urlTools()->getTopLevelDomainFromUrl(u.first), u.second); + } + + // Create list of URLs and expected base URL responses + QList> baseUrls{ + {QString("https://another.example.co.uk"), QString("example.co.uk")}, + {QString("https://www.example.com"), QString("example.com")}, + {QString("http://test.net"), QString("test.net")}, + {QString("http://so.many.subdomains.co.jp"), QString("subdomains.co.jp")}, + {QString("https://192.168.0.1"), QString("192.168.0.1")}, + {QString("https://192.168.0.1:8000"), QString("192.168.0.1")}, + {QString("https://www.nic.ar"), QString("nic.ar")}, + {QString("https://www.blogspot.com.ar"), QString("www.blogspot.com.ar")}, // blogspot.com.ar is a TLD + {QString("https://www.arpa"), QString("www.arpa")}, + {QString("https://jap.an.ide.kyoto.jp"), QString("an.ide.kyoto.jp")}, // ide.kyoto.jp is a TLD + {QString("https://kobe.jp"), QString("kobe.jp")}, + }; + + for (const auto& u : baseUrls) { + QCOMPARE(urlTools()->getBaseDomainFromUrl(u.first), u.second); + } +} + +void TestUrlTools::testIsIpAddress() +{ + auto host1 = "example.com"; // Not valid + auto host2 = "192.168.0.1"; + auto host3 = "278.21.2.0"; // Not valid + auto host4 = "2001:0db8:85a3:0000:0000:8a2e:0370:7334"; + auto host5 = "2001:db8:0:1:1:1:1:1"; + auto host6 = "fe80::1ff:fe23:4567:890a"; + auto host7 = "2001:20::1"; + auto host8 = "2001:0db8:85y3:0000:0000:8a2e:0370:7334"; // Not valid + auto host9 = "[::]"; + auto host10 = "::"; + auto host11 = "[2001:20::1]"; + + QVERIFY(!urlTools()->isIpAddress(host1)); + QVERIFY(urlTools()->isIpAddress(host2)); + QVERIFY(!urlTools()->isIpAddress(host3)); + QVERIFY(urlTools()->isIpAddress(host4)); + QVERIFY(urlTools()->isIpAddress(host5)); + QVERIFY(urlTools()->isIpAddress(host6)); + QVERIFY(urlTools()->isIpAddress(host7)); + QVERIFY(!urlTools()->isIpAddress(host8)); + QVERIFY(urlTools()->isIpAddress(host9)); + QVERIFY(urlTools()->isIpAddress(host10)); + QVERIFY(urlTools()->isIpAddress(host11)); +} + +void TestUrlTools::testIsUrlIdentical() +{ + QVERIFY(urlTools()->isUrlIdentical("https://example.com", "https://example.com")); + QVERIFY(urlTools()->isUrlIdentical("https://example.com", " https://example.com ")); + QVERIFY(!urlTools()->isUrlIdentical("https://example.com", "https://example2.com")); + QVERIFY(!urlTools()->isUrlIdentical("https://example.com/", "https://example.com/#login")); + QVERIFY(urlTools()->isUrlIdentical("https://example.com", "https://example.com/")); + QVERIFY(urlTools()->isUrlIdentical("https://example.com/", "https://example.com")); + QVERIFY(urlTools()->isUrlIdentical("https://example.com/ ", " https://example.com")); + QVERIFY(!urlTools()->isUrlIdentical("https://example.com/", " example.com")); + QVERIFY(urlTools()->isUrlIdentical("https://example.com/path/to/nowhere", "https://example.com/path/to/nowhere/")); + QVERIFY(!urlTools()->isUrlIdentical("https://example.com/", "://example.com/")); + QVERIFY(urlTools()->isUrlIdentical("ftp://127.0.0.1/", "ftp://127.0.0.1")); +} + +void TestUrlTools::testIsUrlValid() +{ + QHash urls; + urls["https://github.com/login"] = true; + urls["https:///github.com/"] = false; + urls["http://github.com/**//*"] = false; + urls["http://*.github.com/login"] = false; + urls["//github.com"] = true; + urls["github.com/{}<>"] = false; + urls["http:/example.com"] = false; + urls["http:/example.com."] = false; + urls["cmd://C:/Toolchains/msys2/usr/bin/mintty \"ssh jon@192.168.0.1:22\""] = true; + urls["file:///Users/testUser/Code/test.html"] = true; + urls["{REF:A@I:46C9B1FFBD4ABC4BBB260C6190BAD20C} "] = true; + + QHashIterator i(urls); + while (i.hasNext()) { + i.next(); + QCOMPARE(urlTools()->isUrlValid(i.key()), i.value()); + } +} + +void TestUrlTools::testDomainHasIllegalCharacters() +{ + QVERIFY(!urlTools()->domainHasIllegalCharacters("example.com")); + QVERIFY(urlTools()->domainHasIllegalCharacters("domain has spaces.com")); + QVERIFY(urlTools()->domainHasIllegalCharacters("example#|.com")); +} diff --git a/tests/TestOpVaultReader.h b/tests/TestUrlTools.h similarity index 56% rename from tests/TestOpVaultReader.h rename to tests/TestUrlTools.h index feb904c6d..74e91c174 100644 --- a/tests/TestOpVaultReader.h +++ b/tests/TestUrlTools.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019 KeePassXC Team + * Copyright (C) 2024 KeePassXC Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,31 +15,28 @@ * along with this program. If not, see . */ -#ifndef TEST_OPVAULT_READER_H_ -#define TEST_OPVAULT_READER_H_ +#ifndef KEEPASSXC_TESTURLTOOLS_H +#define KEEPASSXC_TESTURLTOOLS_H -#include +#include "core/UrlTools.h" #include +#include -class TestOpVaultReader : public QObject +class TestUrlTools : public QObject { Q_OBJECT private slots: void initTestCase(); - void testReadIntoDatabase(); + void init(); + + void testTopLevelDomain(); + void testIsIpAddress(); + void testIsUrlIdentical(); + void testIsUrlValid(); + void testDomainHasIllegalCharacters(); private: - // absolute path to the .opvault directory - QString m_opVaultPath; - - /* - * Points to the file made by using the 1Password GUI to "Export all" - * to its text file format, which are almost key=value pairs - * except for multi-line strings. - */ - QString m_opVaultTextExportPath; - QStringList m_categories; + QPointer m_urlTools; }; - -#endif /* TEST_OPVAULT_READER_H_ */ +#endif // KEEPASSXC_TESTURLTOOLS_H diff --git a/tests/TestYkChallengeResponseKey.cpp b/tests/TestYkChallengeResponseKey.cpp index 341c90715..c1064518e 100644 --- a/tests/TestYkChallengeResponseKey.cpp +++ b/tests/TestYkChallengeResponseKey.cpp @@ -44,11 +44,12 @@ void TestYubiKeyChallengeResponse::testDetectDevices() YubiKey::instance()->findValidKeys(); // Look at the information retrieved from the key(s) - for (auto key : YubiKey::instance()->foundKeys()) { - auto displayName = YubiKey::instance()->getDisplayName(key); + const auto foundKeys = YubiKey::instance()->foundKeys(); + for (auto i = foundKeys.cbegin(); i != foundKeys.cend(); ++i) { + const auto& displayName = i.value(); QVERIFY(displayName.contains("Challenge-Response - Slot") || displayName.contains("Configured Slot -")); - QVERIFY(displayName.contains(QString::number(key.first))); - QVERIFY(displayName.contains(QString::number(key.second))); + QVERIFY(displayName.contains(QString::number(i.key().first))); + QVERIFY(displayName.contains(QString::number(i.key().second))); } } @@ -59,7 +60,7 @@ void TestYubiKeyChallengeResponse::testDetectDevices() */ void TestYubiKeyChallengeResponse::testKeyChallenge() { - auto keys = YubiKey::instance()->foundKeys(); + auto keys = YubiKey::instance()->foundKeys().keys(); if (keys.isEmpty()) { QSKIP("No YubiKey devices were detected."); } diff --git a/tests/data/1PasswordExport.1pux b/tests/data/1PasswordExport.1pux new file mode 100644 index 000000000..509d7d07b Binary files /dev/null and b/tests/data/1PasswordExport.1pux differ diff --git a/tests/data/NonAscii.kdbx b/tests/data/NonAscii.kdbx index 06aa5bf2c..8ebaac249 100644 Binary files a/tests/data/NonAscii.kdbx and b/tests/data/NonAscii.kdbx differ diff --git a/tests/data/bitwarden_encrypted_export.json b/tests/data/bitwarden_encrypted_export.json new file mode 100644 index 000000000..0f759686c --- /dev/null +++ b/tests/data/bitwarden_encrypted_export.json @@ -0,0 +1,11 @@ +{ + "encrypted": true, + "passwordProtected": true, + "salt": "jxJdzv853aLmu0y/mCgSxg==", + "kdfType": 0, + "kdfIterations": 100000, + "kdfMemory": null, + "kdfParallelism": null, + "encKeyValidation_DO_NOT_EDIT": "2.6O5+RkqPRTCxGIjEIyqukQ==|J7Ks4QhjfOyt7qMU82XEuJoGw0GpQabv0vGerKC+YjSQWmaqbbyMDgba78vyRvSU|f0nwbY+JRc2KfkU6mY0dmiKNiDb00A0CngpF4TEEM0c=", + "data": "2.OA/bDI14kq+642rwmWYWxg==|216xw4kCZbqhVifzikzvzqLY2Er35tiYo+gl+hgf9dmLrPMf5vYcFgMe8IdTHXZCdUEuyEdpQeoAwGT8zG8d9GcwdKKOktccl04lE39Cb6XqKEr1PA3d4R8iPYTpeeFSm/cFLQlod5iymUkW4wxHTSIVn9KO/y0F8LWyKX7XxAdCEJykatSoUcC9SmFTPxEtR7BBgfkLTCgSZ9AUE0suKoYIUR6sJSlDq3IHP/09T8w0bbahBkRzevj5+JXawxn1DvBld00bVzo6GgrGojHz+VNa/crpLSaPqyR/IlD66+bS1DdIZ4UBODpZVZTxNKbWd7mPhkCcHF+NchCb47MR442dVQD9QjXk8q7E3SoK76JkYdOZsd3FIH8fZNdYTSOZsvLOYans74RyX1qCD5w3QVaR1cwRYD+kwCe0eFlHmzCLCx3IAuTfH1QdXvIvqaevYKikuKE8tfaAhrPJ2N4MHoKyxdF801jqslZdWrUrZvWsovdBZhp2siQZiWpd/fteJTSpy19sJ+J49+4SYEAfYe3lbz2K7ypKia8duffnV4+eh5tsK24MkExHO3ZQzQVkQdsX6eeFJmdqK4wONunSgnXIDti5rw/bWNtjVvAYiDMX+DNULML/opp9TPZUvrTgFhMsFFwbVzIjTxwE/PS9w+lD3etP195QkD717F87dClpkIrvm+UfQrQwCgDxOQ9PTPcUBVugq9MEflsiSn4NjCXdjWL1siSgxm2eJQ3k0OKJoN5bUInwG9i9njLh5fjxc4aiuvOOGAkqgX/mr3MxuuV8luKWRy884Reu8DdnZq6Vdq+yHgs7o9Ipxrtr8t85yBeU90yqyJrtmwDgEJiLK0TpJ1bY9ZwnqhYrtJGRrzxWrfvAGcJzEsWJ98aq9T+r/CnnsInyRTyptOgmsjmPlw0rTZ8//KI2afwRQRL+yIZ4817T+DekyF18QnYD607njiJb5igEy9MzYw04osr9yyQikheyuPDvD2UnGgGYdy04sHKVNgt0/xtzsJvxhsmy0mXknRcajExsKe6wH1jzTq6IxWo+08+5lnMmr05gtE8Y6HN2nsOAVdGU6x26MQVI|ASjBD0/F6Z61WSWc++RXhA6iQv8AziJO+/EXrj7GSVY=" +} \ No newline at end of file diff --git a/tests/data/bitwarden_export.json b/tests/data/bitwarden_export.json new file mode 100644 index 000000000..7d6a5de21 --- /dev/null +++ b/tests/data/bitwarden_export.json @@ -0,0 +1,180 @@ +{ + "folders": [ + { + "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", + "name": "My Folder" + }, + { + "id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy", + "name": "Second Folder" + } + ], + "items": [ + { + "id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa", + "organizationId": null, + "folderId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", + "type": 2, + "name": "My Secure Note", + "notes": "1st line of secure note\n2nd line of secure note\n3rd line of secure note", + "favorite": false, + "fields": [ + { + "name": "Text Field", + "value": "text-field-value", + "type": 0 + }, + { + "name": "Hidden Field", + "value": "hidden-field-value", + "type": 1 + }, + { + "name": "Boolean Field", + "value": "false", + "type": 2 + } + ], + "secureNote": { + "type": 0 + }, + "collectionIds": [ + null + ] + }, + { + "id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb", + "organizationId": null, + "folderId": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy", + "type": 3, + "name": "Card Name", + "notes": "1st line of note text\n2nd line of note text", + "favorite": false, + "fields": [ + { + "name": "Text Field", + "value": "text-field-value", + "type": 0 + }, + { + "name": "Hidden Field", + "value": "hidden-field-value", + "type": 1 + }, + { + "name": "Boolean Field", + "value": "false", + "type": 2 + } + ], + "card": { + "cardholderName": "Jane Doe", + "brand": "Visa", + "number": "1234567891011121", + "expMonth": "10", + "expYear": "2021", + "code": "123" + }, + "collectionIds": [ + null + ] + }, + { + "id": "cccccccc-cccc-cccc-cccc-cccccccccccc", + "organizationId": null, + "folderId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", + "type": 4, + "name": "My Identity", + "notes": "1st line of a note\n2nd line of a note", + "favorite": false, + "fields": [ + { + "name": "Text Field", + "value": "text-field-value", + "type": 0 + }, + { + "name": "Hidden Field", + "value": "hidden-field-value", + "type": 1 + }, + { + "name": "Boolean Field", + "value": "true", + "type": 2 + } + ], + "identity": { + "title": "Mrs", + "firstName": "Jane", + "middleName": "A", + "lastName": "Doe", + "address1": " 1 North Calle Cesar Chavez ", + "address2": null, + "address3": null, + "city": "Santa Barbara", + "state": "CA", + "postalCode": "93103", + "country": "United States ", + "company": "My Employer", + "email": "myemail@gmail.com", + "phone": "123-123-1234", + "ssn": "123-12-1234", + "username": "myusername", + "passportNumber": "123456789", + "licenseNumber": "123456789" + }, + "collectionIds": [ + null + ] + }, + { + "id": "dddddddd-dddd-dddd-dddd-dddddddddddd", + "organizationId": null, + "folderId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", + "type": 1, + "name": "Login Name", + "notes": "1st line of note text\n2nd Line of note text", + "favorite": true, + "fields": [ + { + "name": "Text Field", + "value": "text-field-value", + "type": 0 + }, + { + "name": "Hidden Field", + "value": "hidden-field-value", + "type": 1 + }, + { + "name": "Boolean Field", + "value": "true", + "type": 2 + } + ], + "login": { + "uris": [ + { + "match": null, + "uri": "https://mail.google.com" + }, + { + "match": null, + "uri": "https://google.com" + }, + { + "match": null, + "uri": "https://gmail.com" + } + ], + "username": "myusername@gmail.com", + "password": "mypassword", + "totp": "otpauth://totp/Google:myusername%40gmail.com?secret=DFDFDEF%3D&period=30&digits=6&issuer=Google" + }, + "collectionIds": [ + null + ] + } + ] +} diff --git a/tests/gui/TestGui.cpp b/tests/gui/TestGui.cpp index 19c4c6ac1..e411f3693 100644 --- a/tests/gui/TestGui.cpp +++ b/tests/gui/TestGui.cpp @@ -40,8 +40,8 @@ #include "gui/EntryPreviewWidget.h" #include "gui/FileDialog.h" #include "gui/MessageBox.h" -#include "gui/PasswordEdit.h" #include "gui/PasswordGeneratorWidget.h" +#include "gui/PasswordWidget.h" #include "gui/SearchWidget.h" #include "gui/TotpDialog.h" #include "gui/TotpSetupDialog.h" @@ -87,10 +87,12 @@ void TestGui::initTestCase() { QVERIFY(Crypto::init()); Config::createTempFileInstance(); + QLocale::setDefault(QLocale::c()); Application::bootstrap(); m_mainWindow.reset(new MainWindow()); m_tabWidget = m_mainWindow->findChild("tabWidget"); + m_statusBarLabel = m_mainWindow->findChild("statusBarLabel"); m_mainWindow->show(); m_mainWindow->resize(1024, 768); } @@ -109,6 +111,10 @@ void TestGui::init() config()->set(Config::UpdateCheckMessageShown, true); // Disable quick unlock config()->set(Config::Security_QuickUnlock, false); + // Disable atomic saves to prevent transient errors on some platforms + config()->set(Config::UseAtomicSaves, false); + // Disable showing expired entries on unlock + config()->set(Config::GUI_ShowExpiredEntriesOnDatabaseUnlock, false); // Copy the test database file to the temporary file auto origFilePath = QDir(KEEPASSX_TEST_DATA_DIR).absoluteFilePath("NewDatabase.kdbx"); @@ -129,9 +135,12 @@ void TestGui::init() m_dbWidget = m_tabWidget->currentDatabaseWidget(); auto* databaseOpenWidget = m_tabWidget->currentDatabaseWidget()->findChild("databaseOpenWidget"); QVERIFY(databaseOpenWidget); - auto* editPassword = databaseOpenWidget->findChild("editPassword"); + // editPassword is not QLineEdit anymore but PasswordWidget + auto* editPassword = + databaseOpenWidget->findChild("editPassword")->findChild("passwordEdit"); QVERIFY(editPassword); editPassword->setFocus(); + QTRY_VERIFY(editPassword->hasFocus()); QTest::keyClicks(editPassword, "a"); QTest::keyClick(editPassword, Qt::Key_Enter); @@ -240,8 +249,10 @@ void TestGui::testCreateDatabase() // enter password auto* passwordWidget = wizard->currentPage()->findChild(); QCOMPARE(passwordWidget->visiblePage(), KeyFileEditWidget::Page::Edit); - auto* passwordEdit = passwordWidget->findChild("enterPasswordEdit"); - auto* passwordRepeatEdit = passwordWidget->findChild("repeatPasswordEdit"); + auto* passwordEdit = + passwordWidget->findChild("enterPasswordEdit")->findChild("passwordEdit"); + auto* passwordRepeatEdit = + passwordWidget->findChild("repeatPasswordEdit")->findChild("passwordEdit"); QTRY_VERIFY(passwordEdit->isVisible()); QTRY_VERIFY(passwordEdit->hasFocus()); QTest::keyClicks(passwordEdit, "test"); @@ -278,6 +289,10 @@ void TestGui::testCreateDatabase() triggerAction("actionDatabaseNew"); + QCOMPARE(m_tabWidget->count(), 2); + + checkStatusBarText("0 Ent"); + // there is a new empty db m_db = m_tabWidget->currentDatabaseWidget()->database(); QCOMPARE(m_db->rootGroup()->children().size(), 0); @@ -298,6 +313,15 @@ void TestGui::testCreateDatabase() compositeKey->addKey(fileKey); QCOMPARE(m_db->key()->rawKey(), compositeKey->rawKey()); + checkStatusBarText("0 Ent"); + + // Test the switching to other DB tab + m_tabWidget->setCurrentIndex(0); + checkStatusBarText("1 Ent"); + + m_tabWidget->setCurrentIndex(1); + checkStatusBarText("0 Ent"); + // close the new database MessageBox::setNextAnswer(MessageBox::No); triggerAction("actionDatabaseClose"); @@ -316,7 +340,7 @@ void TestGui::testMergeDatabase() fileDialog()->setNextFileName(QString(KEEPASSX_TEST_DATA_DIR).append("/MergeDatabase.kdbx")); triggerAction("actionDatabaseMerge"); - QTRY_COMPARE(QApplication::focusWidget()->objectName(), QString("editPassword")); + QTRY_COMPARE(QApplication::focusWidget()->objectName(), QString("passwordEdit")); auto* editPasswordMerge = QApplication::focusWidget(); QVERIFY(editPasswordMerge->isVisible()); @@ -516,7 +540,7 @@ void TestGui::testEditEntry() QCOMPARE(m_dbWidget->currentMode(), DatabaseWidget::Mode::EditMode); titleEdit->setText("multiline\ntitle"); editEntryWidget->findChild("usernameComboBox")->lineEdit()->setText("multiline\nusername"); - editEntryWidget->findChild("passwordEdit")->setText("multiline\npassword"); + editEntryWidget->findChild("passwordEdit")->setText("multiline\npassword"); editEntryWidget->findChild("urlEdit")->setText("multiline\nurl"); QTest::mouseClick(okButton, Qt::LeftButton); @@ -584,6 +608,9 @@ void TestGui::testAddEntry() auto* toolBar = m_mainWindow->findChild("toolBar"); auto* entryView = m_dbWidget->findChild("entryView"); + // Given the status bar label with initial number of entries. + checkStatusBarText("1 Ent"); + // Find the new entry action auto* entryNewAction = m_mainWindow->findChild("actionEntryNew"); QVERIFY(entryNewAction->isEnabled()); @@ -618,13 +645,17 @@ void TestGui::testAddEntry() m_db->updateCommonUsernames(); + // Then the status bar label should be updated with incremented number of entries. + checkStatusBarText("2 Ent"); + // Add entry "something 2" QTest::mouseClick(entryNewWidget, Qt::LeftButton); QTest::keyClicks(titleEdit, "something 2"); QTest::mouseClick(usernameComboBox, Qt::LeftButton); QTest::keyClicks(usernameComboBox, "Auto"); QTest::keyPress(usernameComboBox, Qt::Key_Right); - auto* passwordEdit = editEntryWidget->findChild("passwordEdit"); + auto* passwordEdit = + editEntryWidget->findChild("passwordEdit")->findChild("passwordEdit"); QTest::keyClicks(passwordEdit, "something 2"); QTest::mouseClick(editEntryWidgetButtonBox->button(QDialogButtonBox::Ok), Qt::LeftButton); @@ -644,10 +675,79 @@ void TestGui::testAddEntry() QApplication::processEvents(); - // Confirm entry count + // Confirm no changed entry count QTRY_COMPARE(entryView->model()->rowCount(), 3); } +void TestGui::testPasswordEntryEntropy_data() +{ + QTest::addColumn("password"); + QTest::addColumn("expectedEntropyLabel"); + QTest::addColumn("expectedStrengthLabel"); + + QTest::newRow("Empty password") << "" + << "Entropy: 0.00 bit" + << "Password Quality: Poor"; + + QTest::newRow("Well-known password") << "hello" + << "Entropy: 6.38 bit" + << "Password Quality: Poor"; + + QTest::newRow("Password composed of well-known words.") << "helloworld" + << "Entropy: 13.10 bit" + << "Password Quality: Poor"; + + QTest::newRow("Password composed of well-known words with number.") << "password1" + << "Entropy: 4.00 bit" + << "Password Quality: Poor"; + + QTest::newRow("Password out of small character space.") << "D0g.................." + << "Entropy: 19.02 bit" + << "Password Quality: Poor"; + + QTest::newRow("XKCD, easy substitutions.") << "Tr0ub4dour&3" + << "Entropy: 30.87 bit" + << "Password Quality: Poor"; + + QTest::newRow("XKCD, word generator.") << "correcthorsebatterystaple" + << "Entropy: 47.98 bit" + << "Password Quality: Weak"; + + QTest::newRow("Random characters, medium length.") << "YQC3kbXbjC652dTDH" + << "Entropy: 95.83 bit" + << "Password Quality: Good"; + + QTest::newRow("Random characters, long.") << "Bs5ZFfthWzR8DGFEjaCM6bGqhmCT4km" + << "Entropy: 174.59 bit" + << "Password Quality: Excellent"; + + QTest::newRow("Long password using Zxcvbn chunk estimation") + << "quintet-tamper-kinswoman-humility-vengeful-haven-tastiness-aspire-widget-ipad-cussed-reaffirm-ladylike-" + "ashamed-anatomy-daybed-jam-swear-strudel-neatness-stalemate-unbundle-flavored-relation-emergency-underrate-" + "registry-getting-award-unveiled-unshaken-stagnate-cartridge-magnitude-ointment-hardener-enforced-scrubbed-" + "radial-fiddling-envelope-unpaved-moisture-unused-crawlers-quartered-crushed-kangaroo-tiptop-doily" + << "Entropy: 1205.85 bit" + << "Password Quality: Excellent"; + + QTest::newRow("Longer password above Zxcvbn threshold") + << "quintet-tamper-kinswoman-humility-vengeful-haven-tastiness-aspire-widget-ipad-cussed-reaffirm-ladylike-" + "ashamed-anatomy-daybed-jam-swear-strudel-neatness-stalemate-unbundle-flavored-relation-emergency-underrate-" + "registry-getting-award-unveiled-unshaken-stagnate-cartridge-magnitude-ointment-hardener-enforced-scrubbed-" + "radial-fiddling-envelope-unpaved-moisture-unused-crawlers-quartered-crushed-kangaroo-tiptop-doily-hefty-" + "untie-fidgeting-radiance-twilight-freebase-sulphuric-parrot-decree-monotype-nautical-pout-sip-geometric-" + "crunching-deviancy-festival-hacking-rage-unify-coronary-zigzagged-dwindle-possum-lilly-exhume-daringly-" + "barbell-rage-animate-lapel-emporium-renounce-justifier-relieving-gauze-arrive-alive-collected-immobile-" + "unleash-snowman-gift-expansion-marbles-requisite-excusable-flatness-displace-caloric-sensuous-moustache-" + "sensuous-capillary-aversion-contents-cadet-giggly-amenity-peddling-spotting-drier-mooned-rudder-peroxide-" + "posting-oppressor-scrabble-scorer-whomever-paprika-slapstick-said-spectacle-capture-debate-attire-emcee-" + "unfocused-sympathy-doily-election-ambulance-polish-subtype-grumbling-neon-stooge-reanalyze-rockfish-" + "disparate-decorated-washroom-threefold-muzzle-buckwheat-kerosene-swell-why-reprocess-correct-shady-" + "impatient-slit-banshee-scrubbed-dreadful-unlocking-urologist-hurried-citable-fragment-septic-lapped-" + "prankish-phantom-unpaved-moisture-unused-crawlers-quartered-crushed-kangaroo-lapel-emporium-renounce" + << "Entropy: 4210.27 bit" + << "Password Quality: Excellent"; +} + void TestGui::testPasswordEntryEntropy() { auto* toolBar = m_mainWindow->findChild("toolBar"); @@ -671,7 +771,8 @@ void TestGui::testPasswordEntryEntropy() QTest::keyClicks(titleEdit, "test"); // Open the password generator - auto* passwordEdit = editEntryWidget->findChild(); + auto* passwordEdit = + editEntryWidget->findChild("passwordEdit")->findChild("passwordEdit"); QVERIFY(passwordEdit); QTest::mouseClick(passwordEdit, Qt::LeftButton); @@ -681,56 +782,26 @@ void TestGui::testPasswordEntryEntropy() QTest::keyClick(passwordEdit, Qt::Key_G, Qt::ControlModifier); #endif - TEST_MODAL(PasswordGeneratorWidget * pwGeneratorWidget; - QTRY_VERIFY(pwGeneratorWidget = m_dbWidget->findChild()); + TEST_MODAL( + PasswordGeneratorWidget * pwGeneratorWidget; + QTRY_VERIFY(pwGeneratorWidget = m_dbWidget->findChild()); - // Type in some password - auto* generatedPassword = pwGeneratorWidget->findChild("editNewPassword"); - auto* entropyLabel = pwGeneratorWidget->findChild("entropyLabel"); - auto* strengthLabel = pwGeneratorWidget->findChild("strengthLabel"); + // Type in some password + auto* generatedPassword = + pwGeneratorWidget->findChild("editNewPassword")->findChild("passwordEdit"); + auto* entropyLabel = pwGeneratorWidget->findChild("entropyLabel"); + auto* strengthLabel = pwGeneratorWidget->findChild("strengthLabel"); - generatedPassword->setText(""); - QTest::keyClicks(generatedPassword, "hello"); - QCOMPARE(entropyLabel->text(), QString("Entropy: 6.38 bit")); - QCOMPARE(strengthLabel->text(), QString("Password Quality: Poor")); + QFETCH(QString, password); + QFETCH(QString, expectedEntropyLabel); + QFETCH(QString, expectedStrengthLabel); - generatedPassword->setText(""); - QTest::keyClicks(generatedPassword, "helloworld"); - QCOMPARE(entropyLabel->text(), QString("Entropy: 13.10 bit")); - QCOMPARE(strengthLabel->text(), QString("Password Quality: Poor")); + generatedPassword->setText(password); + QCOMPARE(entropyLabel->text(), expectedEntropyLabel); + QCOMPARE(strengthLabel->text(), expectedStrengthLabel); - generatedPassword->setText(""); - QTest::keyClicks(generatedPassword, "password1"); - QCOMPARE(entropyLabel->text(), QString("Entropy: 4.00 bit")); - QCOMPARE(strengthLabel->text(), QString("Password Quality: Poor")); - - generatedPassword->setText(""); - QTest::keyClicks(generatedPassword, "D0g.................."); - QCOMPARE(entropyLabel->text(), QString("Entropy: 19.02 bit")); - QCOMPARE(strengthLabel->text(), QString("Password Quality: Poor")); - - generatedPassword->setText(""); - QTest::keyClicks(generatedPassword, "Tr0ub4dour&3"); - QCOMPARE(entropyLabel->text(), QString("Entropy: 30.87 bit")); - QCOMPARE(strengthLabel->text(), QString("Password Quality: Poor")); - - generatedPassword->setText(""); - QTest::keyClicks(generatedPassword, "correcthorsebatterystaple"); - QCOMPARE(entropyLabel->text(), QString("Entropy: 47.98 bit")); - QCOMPARE(strengthLabel->text(), QString("Password Quality: Weak")); - - generatedPassword->setText(""); - QTest::keyClicks(generatedPassword, "YQC3kbXbjC652dTDH"); - QCOMPARE(entropyLabel->text(), QString("Entropy: 95.83 bit")); - QCOMPARE(strengthLabel->text(), QString("Password Quality: Good")); - - generatedPassword->setText(""); - QTest::keyClicks(generatedPassword, "Bs5ZFfthWzR8DGFEjaCM6bGqhmCT4km"); - QCOMPARE(entropyLabel->text(), QString("Entropy: 174.59 bit")); - QCOMPARE(strengthLabel->text(), QString("Password Quality: Excellent")); - - QTest::mouseClick(generatedPassword, Qt::LeftButton); - QTest::keyClick(generatedPassword, Qt::Key_Escape);); + QTest::mouseClick(generatedPassword, Qt::LeftButton); + QTest::keyClick(generatedPassword, Qt::Key_Escape);); } void TestGui::testDicewareEntryEntropy() @@ -756,7 +827,7 @@ void TestGui::testDicewareEntryEntropy() QTest::keyClicks(titleEdit, "test"); // Open the password generator - auto* passwordEdit = editEntryWidget->findChild(); + auto* passwordEdit = editEntryWidget->findChild()->findChild("passwordEdit"); QVERIFY(passwordEdit); QTest::mouseClick(passwordEdit, Qt::LeftButton); @@ -766,32 +837,36 @@ void TestGui::testDicewareEntryEntropy() QTest::keyClick(passwordEdit, Qt::Key_G, Qt::ControlModifier); #endif - TEST_MODAL(PasswordGeneratorWidget * pwGeneratorWidget; - QTRY_VERIFY(pwGeneratorWidget = m_dbWidget->findChild()); + TEST_MODAL( + PasswordGeneratorWidget * pwGeneratorWidget; + QTRY_VERIFY(pwGeneratorWidget = m_dbWidget->findChild()); - // Select Diceware - auto* generatedPassword = pwGeneratorWidget->findChild("editNewPassword"); - auto* tabWidget = pwGeneratorWidget->findChild("tabWidget"); - auto* dicewareWidget = pwGeneratorWidget->findChild("dicewareWidget"); - tabWidget->setCurrentWidget(dicewareWidget); + // Select Diceware + auto* generatedPassword = + pwGeneratorWidget->findChild("editNewPassword")->findChild("passwordEdit"); + auto* tabWidget = pwGeneratorWidget->findChild("tabWidget"); + auto* dicewareWidget = pwGeneratorWidget->findChild("dicewareWidget"); + tabWidget->setCurrentWidget(dicewareWidget); - auto* comboBoxWordList = dicewareWidget->findChild("comboBoxWordList"); - comboBoxWordList->setCurrentText("eff_large.wordlist"); - auto* spinBoxWordCount = dicewareWidget->findChild("spinBoxWordCount"); - spinBoxWordCount->setValue(6); + auto* comboBoxWordList = dicewareWidget->findChild("comboBoxWordList"); + comboBoxWordList->setCurrentText("eff_large.wordlist"); + auto* spinBoxWordCount = dicewareWidget->findChild("spinBoxWordCount"); + spinBoxWordCount->setValue(6); - // Confirm a password was generated - QVERIFY(!pwGeneratorWidget->getGeneratedPassword().isEmpty()); + // Confirm a password was generated + QVERIFY(!pwGeneratorWidget->getGeneratedPassword().isEmpty()); - // Verify entropy and strength - auto* entropyLabel = pwGeneratorWidget->findChild("entropyLabel"); - auto* strengthLabel = pwGeneratorWidget->findChild("strengthLabel"); + // Verify entropy and strength + auto* entropyLabel = pwGeneratorWidget->findChild("entropyLabel"); + auto* strengthLabel = pwGeneratorWidget->findChild("strengthLabel"); + auto* wordLengthLabel = pwGeneratorWidget->findChild("charactersInPassphraseLabel"); - QCOMPARE(entropyLabel->text(), QString("Entropy: 77.55 bit")); - QCOMPARE(strengthLabel->text(), QString("Password Quality: Good")); + QTRY_COMPARE_WITH_TIMEOUT(entropyLabel->text(), QString("Entropy: 77.55 bit"), 200); + QCOMPARE(strengthLabel->text(), QString("Password Quality: Good")); + QCOMPARE(wordLengthLabel->text().toInt(), pwGeneratorWidget->getGeneratedPassword().size()); - QTest::mouseClick(generatedPassword, Qt::LeftButton); - QTest::keyClick(generatedPassword, Qt::Key_Escape);); + QTest::mouseClick(generatedPassword, Qt::LeftButton); + QTest::keyClick(generatedPassword, Qt::Key_Escape);); } void TestGui::testTotp() @@ -842,12 +917,27 @@ void TestGui::testTotp() auto* editEntryWidgetButtonBox = editEntryWidget->findChild("buttonBox"); QTest::mouseClick(editEntryWidgetButtonBox->button(QDialogButtonBox::Ok), Qt::LeftButton); + // Test the TOTP value triggerAction("actionEntryTotp"); auto* totpDialog = m_dbWidget->findChild("TotpDialog"); auto* totpLabel = totpDialog->findChild("totpLabel"); QCOMPARE(totpLabel->text().replace(" ", ""), entry->totp()); + QTest::keyClick(totpDialog, Qt::Key_Escape); + + // Test the QR code + triggerAction("actionEntryTotpQRCode"); + auto* qrCodeDialog = m_mainWindow->findChild("entryQrCodeWidget"); + QVERIFY(qrCodeDialog); + QVERIFY(qrCodeDialog->isVisible()); + auto* qrCodeWidget = qrCodeDialog->findChild("squareSvgWidget"); + QVERIFY2(qrCodeWidget->geometry().width() == qrCodeWidget->geometry().height(), "Initial QR code is not square"); + + // Test the QR code window resizing, make the dialog bigger. + qrCodeDialog->setFixedSize(800, 600); + QVERIFY2(qrCodeWidget->geometry().width() == qrCodeWidget->geometry().height(), "Resized QR code is not square"); + QTest::keyClick(qrCodeDialog, Qt::Key_Escape); } void TestGui::testSearch() @@ -882,6 +972,10 @@ void TestGui::testSearch() QApplication::processEvents(); helpButton->trigger(); QTRY_VERIFY(!helpPanel->isVisible()); + + // Need to re-activate the window after the help test + m_mainWindow->activateWindow(); + // Search for "ZZZ" QTest::keyClicks(searchTextEdit, "ZZZ"); QTRY_COMPARE(searchTextEdit->text(), QString("ZZZ")); @@ -986,6 +1080,13 @@ void TestGui::testSearch() QCOMPARE(groupView->currentGroup(), m_db->rootGroup()); QVERIFY(!m_dbWidget->isSearchActive()); + // check if first entry is selected after search + QTest::keyClicks(searchTextEdit, "some"); + QTRY_VERIFY(m_dbWidget->isSearchActive()); + QTRY_COMPARE(entryView->selectedEntries().length(), 1); + QModelIndex index_current = entryView->indexFromEntry(entryView->currentEntry()); + QTRY_COMPARE(index_current.row(), 0); + // Try to edit the first entry from the search view // Refocus back to search edit QTest::mouseClick(searchTextEdit, Qt::LeftButton); @@ -1019,6 +1120,7 @@ void TestGui::testDeleteEntry() { // Add canned entries for consistent testing addCannedEntries(); + checkStatusBarText("4 Ent"); auto* groupView = m_dbWidget->findChild("groupView"); auto* entryView = m_dbWidget->findChild("entryView"); @@ -1048,6 +1150,8 @@ void TestGui::testDeleteEntry() QCOMPARE(m_db->metadata()->recycleBin()->entries().size(), 1); } + checkStatusBarText("3 Ent"); + // Select multiple entries and move them to the recycling bin clickIndex(entryView->model()->index(1, 1), entryView, Qt::LeftButton); clickIndex(entryView->model()->index(2, 1), entryView, Qt::LeftButton, Qt::ControlModifier); @@ -1132,6 +1236,7 @@ void TestGui::testCloneEntry() Entry* entryClone = entryView->entryFromIndex(entryView->model()->index(1, 1)); QVERIFY(entryOrg->uuid() != entryClone->uuid()); QCOMPARE(entryClone->title(), entryOrg->title() + QString(" - Clone")); + QVERIFY(m_dbWidget->currentSelectedEntry()->uuid() == entryClone->uuid()); } void TestGui::testEntryPlaceholders() @@ -1384,27 +1489,6 @@ void TestGui::testDatabaseSettings() checkSaveDatabase(); } -void TestGui::testKeePass1Import() -{ - fileDialog()->setNextFileName(QString(KEEPASSX_TEST_DATA_DIR).append("/basic.kdb")); - triggerAction("actionImportKeePass1"); - - auto* keepass1OpenWidget = m_tabWidget->currentDatabaseWidget()->findChild("keepass1OpenWidget"); - auto* editPassword = keepass1OpenWidget->findChild("editPassword"); - QVERIFY(editPassword); - - QTest::keyClicks(editPassword, "masterpw"); - QTest::keyClick(editPassword, Qt::Key_Enter); - - QTRY_COMPARE(m_tabWidget->count(), 2); - QTRY_COMPARE(m_tabWidget->tabText(m_tabWidget->currentIndex()), QString("basic [New Database]*")); - - // Close the KeePass1 Database - MessageBox::setNextAnswer(MessageBox::No); - triggerAction("actionDatabaseClose"); - QApplication::processEvents(); -} - void TestGui::testDatabaseLocking() { QString origDbName = m_tabWidget->tabText(0); @@ -1422,7 +1506,8 @@ void TestGui::testDatabaseLocking() DatabaseWidget* dbWidget = m_tabWidget->currentDatabaseWidget(); QVERIFY(dbWidget->isLocked()); auto* unlockDatabaseWidget = dbWidget->findChild("databaseOpenWidget"); - QWidget* editPassword = unlockDatabaseWidget->findChild("editPassword"); + QWidget* editPassword = + unlockDatabaseWidget->findChild("editPassword")->findChild("passwordEdit"); QVERIFY(editPassword); QTest::keyClicks(editPassword, "a"); @@ -1757,7 +1842,8 @@ void TestGui::addCannedEntries() QWidget* entryNewWidget = toolBar->widgetForAction(m_mainWindow->findChild("actionEntryNew")); auto* editEntryWidget = m_dbWidget->findChild("editEntryWidget"); auto* titleEdit = editEntryWidget->findChild("titleEdit"); - auto* passwordEdit = editEntryWidget->findChild("passwordEdit"); + auto* passwordEdit = + editEntryWidget->findChild("passwordEdit")->findChild("passwordEdit"); // Add entry "test" and confirm added QTest::mouseClick(entryNewWidget, Qt::LeftButton); @@ -1812,6 +1898,14 @@ void TestGui::checkSaveDatabase() QFAIL("Could not save database."); } +void TestGui::checkStatusBarText(const QString& textFragment) +{ + QApplication::processEvents(); + QVERIFY(m_statusBarLabel->isVisible()); + QTRY_VERIFY2(m_statusBarLabel->text().startsWith(textFragment), + qPrintable(QString("'%1' doesn't start with '%2'").arg(m_statusBarLabel->text(), textFragment))); +} + void TestGui::triggerAction(const QString& name) { auto* action = m_mainWindow->findChild(name); @@ -1850,5 +1944,6 @@ void TestGui::clickIndex(const QModelIndex& index, Qt::MouseButton button, Qt::KeyboardModifiers stateKey) { + view->scrollTo(index); QTest::mouseClick(view->viewport(), button, stateKey, view->visualRect(index).center()); } diff --git a/tests/gui/TestGui.h b/tests/gui/TestGui.h index 2a1baed2d..fa3d613f9 100644 --- a/tests/gui/TestGui.h +++ b/tests/gui/TestGui.h @@ -46,6 +46,7 @@ private slots: void testSearchEditEntry(); void testAddEntry(); void testPasswordEntryEntropy(); + void testPasswordEntryEntropy_data(); void testDicewareEntryEntropy(); void testTotp(); void testSearch(); @@ -60,7 +61,6 @@ private slots: void testSaveBackupPath(); void testSaveBackupPath_data(); void testDatabaseSettings(); - void testKeePass1Import(); void testDatabaseLocking(); void testDragAndDropKdbxFiles(); void testSortGroups(); @@ -83,8 +83,10 @@ private: Qt::MouseButton button, Qt::KeyboardModifiers stateKey = 0); void checkSaveDatabase(); + void checkStatusBarText(const QString& textFragment); QScopedPointer m_mainWindow; + QPointer m_statusBarLabel; QPointer m_tabWidget; QPointer m_dbWidget; QSharedPointer m_db; diff --git a/tests/gui/TestGuiBrowser.cpp b/tests/gui/TestGuiBrowser.cpp index bcc218240..15f19d47d 100644 --- a/tests/gui/TestGuiBrowser.cpp +++ b/tests/gui/TestGuiBrowser.cpp @@ -35,6 +35,7 @@ #include "gui/DatabaseTabWidget.h" #include "gui/FileDialog.h" #include "gui/MessageBox.h" +#include "gui/PasswordWidget.h" #include "gui/entry/EditEntryWidget.h" #include "gui/entry/EntryView.h" @@ -69,6 +70,8 @@ void TestGuiBrowser::initTestCase() config()->set(Config::GUI_AdvancedSettings, false); // Disable the update check first time alert config()->set(Config::UpdateCheckMessageShown, true); + // Disable quick unlock + config()->set(Config::Security_QuickUnlock, false); m_mainWindow.reset(new MainWindow()); m_tabWidget = m_mainWindow->findChild("tabWidget"); @@ -90,7 +93,8 @@ void TestGuiBrowser::init() auto* databaseOpenWidget = m_tabWidget->currentDatabaseWidget()->findChild("databaseOpenWidget"); QVERIFY(databaseOpenWidget); - auto* editPassword = databaseOpenWidget->findChild("editPassword"); + auto* editPassword = + databaseOpenWidget->findChild("editPassword")->findChild("passwordEdit"); QVERIFY(editPassword); editPassword->setFocus(); diff --git a/tests/gui/TestGuiFdoSecrets.cpp b/tests/gui/TestGuiFdoSecrets.cpp index a2b5647df..7a83a05f9 100644 --- a/tests/gui/TestGuiFdoSecrets.cpp +++ b/tests/gui/TestGuiFdoSecrets.cpp @@ -33,6 +33,7 @@ #include "gui/FileDialog.h" #include "gui/MainWindow.h" #include "gui/MessageBox.h" +#include "gui/PasswordWidget.h" #include "gui/wizard/NewDatabaseWizard.h" #include "util/FdoSecretsProxy.h" #include "util/TemporaryFile.h" @@ -141,6 +142,8 @@ void TestGuiFdoSecrets::initTestCase() config()->set(Config::AutoSaveOnExit, false); config()->set(Config::GUI_ShowTrayIcon, true); config()->set(Config::UpdateCheckMessageShown, true); + // Disable quick unlock + config()->set(Config::Security_QuickUnlock, false); // Disable secret service integration (activate within individual tests to test the plugin) FdoSecrets::settings()->setEnabled(false); // activate within individual tests @@ -182,7 +185,7 @@ void TestGuiFdoSecrets::init() m_dbFile.reset(new TemporaryFile()); // Write the temp storage to a temp database file for use in our tests VERIFY(m_dbFile->open()); - COMPARE(m_dbFile->write(m_dbData), static_cast((m_dbData.size()))); + COMPARE(m_dbFile->write(m_dbData), static_cast(m_dbData.size())); m_dbFile->close(); // make sure window is activated or focus tests may fail @@ -197,6 +200,12 @@ void TestGuiFdoSecrets::init() // by default expose the root group FdoSecrets::settings()->setExposedGroup(m_db, m_db->rootGroup()->uuid()); VERIFY(m_dbWidget->save()); + + // enforce consistent default settings at the beginning + FdoSecrets::settings()->setUnlockBeforeSearch(false); + FdoSecrets::settings()->setShowNotification(false); + FdoSecrets::settings()->setConfirmAccessItem(false); + FdoSecrets::settings()->setEnabled(false); } // Every test ends with closing the temp database without saving @@ -387,6 +396,62 @@ void TestGuiFdoSecrets::testServiceSearchBlockingUnlock() } } +void TestGuiFdoSecrets::testServiceSearchBlockingUnlockMultiple() +{ + // setup: two databases, both locked, one with exposed db, the other not. + + // add another database tab with a database with no exposed group + // to avoid modify the original, copy to a temp file first + QFile sourceDbFile(QStringLiteral(KEEPASSX_TEST_DATA_DIR "/NewDatabase2.kdbx")); + QByteArray dbData; + VERIFY(sourceDbFile.open(QIODevice::ReadOnly)); + VERIFY(Tools::readAllFromDevice(&sourceDbFile, dbData)); + sourceDbFile.close(); + + QTemporaryFile anotherFile; + VERIFY(anotherFile.open()); + COMPARE(anotherFile.write(dbData), static_cast(dbData.size())); + anotherFile.close(); + + m_tabWidget->addDatabaseTab(anotherFile.fileName(), false); + auto anotherWidget = m_tabWidget->currentDatabaseWidget(); + + auto service = enableService(); + VERIFY(service); + + // when there are multiple locked databases, + // repeatly show the dialog until there is at least one unlocked collection + FdoSecrets::settings()->setUnlockBeforeSearch(true); + + // when only unlocking the one with no exposed group, a second dialog is shown + lockDatabaseInBackend(); + { + bool unlockDialogWorks = false; + QTimer::singleShot(50, [&]() { + unlockDialogWorks = driveUnlockDialog(anotherWidget); + QTimer::singleShot(50, [&]() { unlockDialogWorks &= driveUnlockDialog(); }); + }); + + DBUS_GET2(unlocked, locked, service->SearchItems({{"Title", "Sample Entry"}})); + VERIFY(unlockDialogWorks); + COMPARE(locked, {}); + COMPARE(unlocked.size(), 1); + } + + // when unlocking the one with exposed group, the other one remains locked + lockDatabaseInBackend(); + { + bool unlockDialogWorks = false; + QTimer::singleShot(50, [&]() { unlockDialogWorks = driveUnlockDialog(m_dbWidget); }); + + DBUS_GET2(unlocked, locked, service->SearchItems({{"Title", "Sample Entry"}})); + VERIFY(unlockDialogWorks); + COMPARE(locked, {}); + COMPARE(unlocked.size(), 1); + VERIFY(anotherWidget->isLocked()); + } +} + void TestGuiFdoSecrets::testServiceSearchForce() { auto service = enableService(); @@ -1093,6 +1158,31 @@ void TestGuiFdoSecrets::testItemCreate() } } +void TestGuiFdoSecrets::testItemCreateUnlock() +{ + auto service = enableService(); + VERIFY(service); + auto coll = getDefaultCollection(service); + VERIFY(coll); + auto sess = openSession(service, DhIetf1024Sha256Aes128CbcPkcs7::Algorithm); + VERIFY(sess); + + // NOTE: entries are no longer valid after locking + lockDatabaseInBackend(); + + QSignalSpy spyItemCreated(coll.data(), SIGNAL(ItemCreated(QDBusObjectPath))); + VERIFY(spyItemCreated.isValid()); + + // create item + StringStringMap attributes{ + {"application", "fdosecrets-test"}, + {"attr-i[bute]", "![some] -value*"}, + }; + + auto item = createItem(sess, coll, "abc", "Password", attributes, false, false, true); + VERIFY(item); +} + void TestGuiFdoSecrets::testItemChange() { auto service = enableService(); @@ -1564,9 +1654,42 @@ void TestGuiFdoSecrets::testModifyingExposedGroup() } } +void TestGuiFdoSecrets::testNoExposeRecycleBin() +{ + // when the recycle bin is underneath the exposed group + // be careful not to expose entries in there + + FdoSecrets::settings()->setExposedGroup(m_db, m_db->rootGroup()->uuid()); + m_db->metadata()->setRecycleBinEnabled(true); + + auto entry = m_db->rootGroup()->entries().first(); + VERIFY(entry); + m_db->recycleEntry(entry); + processEvents(); + + auto service = enableService(); + VERIFY(service); + + auto coll = getDefaultCollection(service); + VERIFY(coll); + + // exposing subgroup does not expose entries in other groups + DBUS_GET(itemPaths, coll->items()); + QSet exposedEntries; + for (const auto& itemPath : itemPaths) { + exposedEntries << m_plugin->dbus()->pathToObject(itemPath)->backend(); + } + VERIFY(!exposedEntries.contains(entry)); + + // searching should not return the entry + DBUS_GET2(unlocked, locked, service->SearchItems({{"Title", entry->title()}})); + COMPARE(locked, {}); + COMPARE(unlocked, {}); +} + void TestGuiFdoSecrets::lockDatabaseInBackend() { - m_dbWidget->lock(); + m_tabWidget->lockDatabases(); m_db.reset(); processEvents(); } @@ -1644,7 +1767,8 @@ QSharedPointer TestGuiFdoSecrets::createItem(const QSharedPointer TestGuiFdoSecrets::createItem(const QSharedPointerPrompt("")); + + bool unlockFound = driveUnlockDialog(); + COMPARE(unlockFound, expectUnlockPrompt); + bool found = driveAccessControlDialog(); COMPARE(found, expectPrompt); @@ -1735,8 +1863,10 @@ bool TestGuiFdoSecrets::driveNewDatabaseWizard() COMPARE(wizard->currentId(), 2); // enter password - auto* passwordEdit = wizard->findChild("enterPasswordEdit"); - auto* passwordRepeatEdit = wizard->findChild("repeatPasswordEdit"); + auto* passwordEdit = + wizard->findChild("enterPasswordEdit")->findChild("passwordEdit"); + auto* passwordRepeatEdit = + wizard->findChild("repeatPasswordEdit")->findChild("passwordEdit"); VERIFY(passwordEdit); VERIFY(passwordRepeatEdit); QTest::keyClicks(passwordEdit, "test"); @@ -1759,12 +1889,17 @@ bool TestGuiFdoSecrets::driveNewDatabaseWizard() return ret; } -bool TestGuiFdoSecrets::driveUnlockDialog() +bool TestGuiFdoSecrets::driveUnlockDialog(DatabaseWidget* target) { processEvents(); auto dbOpenDlg = m_tabWidget->findChild(); VERIFY(dbOpenDlg); - auto editPassword = dbOpenDlg->findChild("editPassword"); + if (!dbOpenDlg->isVisible()) { + return false; + } + dbOpenDlg->setActiveDatabaseTab(target); + + auto editPassword = dbOpenDlg->findChild("editPassword")->findChild("passwordEdit"); VERIFY(editPassword); editPassword->setFocus(); QTest::keyClicks(editPassword, "a"); diff --git a/tests/gui/TestGuiFdoSecrets.h b/tests/gui/TestGuiFdoSecrets.h index 03f84adce..1624eed49 100644 --- a/tests/gui/TestGuiFdoSecrets.h +++ b/tests/gui/TestGuiFdoSecrets.h @@ -67,6 +67,7 @@ private slots: void testServiceEnableNoExposedDatabase(); void testServiceSearch(); void testServiceSearchBlockingUnlock(); + void testServiceSearchBlockingUnlockMultiple(); void testServiceSearchForce(); void testServiceUnlock(); void testServiceUnlockDatabaseConcurrent(); @@ -84,6 +85,7 @@ private slots: void testCollectionChange(); void testItemCreate(); + void testItemCreateUnlock(); void testItemChange(); void testItemReplace(); void testItemReplaceExistingLocked(); @@ -97,12 +99,13 @@ private slots: void testExposeSubgroup(); void testModifyingExposedGroup(); + void testNoExposeRecycleBin(); void testHiddenFilename(); void testDuplicateName(); private: - bool driveUnlockDialog(); + bool driveUnlockDialog(DatabaseWidget* target = nullptr); bool driveNewDatabaseWizard(); bool driveAccessControlDialog(bool remember = true, bool includeFutureEntries = false); bool waitForSignal(QSignalSpy& spy, int expectedCount); @@ -121,7 +124,8 @@ private: const QString& pass, const FdoSecrets::wire::StringStringMap& attr, bool replace, - bool expectPrompt = false); + bool expectPrompt = false, + bool expectUnlockPrompt = false); FdoSecrets::wire::Secret encryptPassword(QByteArray value, QString contentType, const QSharedPointer& sess); template QSharedPointer getProxy(const QDBusObjectPath& path) const diff --git a/utils/keepassxc-flatpak-wrapper.sh b/utils/keepassxc-flatpak-wrapper.sh index 042acfb27..50b6360bd 100755 --- a/utils/keepassxc-flatpak-wrapper.sh +++ b/utils/keepassxc-flatpak-wrapper.sh @@ -23,26 +23,18 @@ # For format of parsed arguments, see "Connection-based messaging" at: # https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/Native_messaging -readonly appId='org.keepassxc.KeePassXC' # Chromium, Google Chrome, Vivaldi & Brave readonly arg1='chrome-extension://oboonakemofpalcgghocfoadofidjkkk' # Firefox & Tor Browser readonly arg2='keepassxc-browser@keepassxc.org' -# Browser integration is enabled if unix socket exists -if [[ -S "${XDG_RUNTIME_DIR}/app/${appId}/${appId}.BrowserServer" ]]; then - # Using the =~ operator is intended to allow small variations - # in the parameters, like and ending slash. - # shellcheck disable=2076 - if [[ "$1" =~ "${arg1}" ]] || [[ "$2" =~ "${arg2}" ]]; then - exec keepassxc-proxy "$@" - fi -fi - -# If the first argument is "cli", execute keepassxc-cli instead. -if [[ "$1" == "cli" ]]; then +# Check arguments to see if this was a proxy launch from the browser +# Use =~ to account for minor variations in the chrome extension +if [[ "$1" =~ "$arg1" || "$2" == "$arg2" ]]; then + exec keepassxc-proxy "$@" +elif [[ "$1" == "cli" ]]; then exec keepassxc-cli "${@:2}" +else + # If no arguments are matched or browser integration is off, execute keepassxc + exec keepassxc "$@" fi - -# If no arguments are matched or browser integration is off, execute keepassxc -exec keepassxc "$@" diff --git a/utils/keepassxc-keychain b/utils/keepassxc-keychain index 5a6093bdb..e671c5699 100755 --- a/utils/keepassxc-keychain +++ b/utils/keepassxc-keychain @@ -5,7 +5,7 @@ : ${KDBX_SEARCH:=~/.KeePass/*.kdbx} PROG=$(basename "$0") -KeePassXC=$(ls -f {/usr/local,/Applications}/KeePassXC.app/Contents/MacOS/KeePassXC 2>/dev/null | head -1) +KeePassXC=$(ls -f {/usr/local,/opt/homebrew,/Applications}/KeePassXC.app/Contents/MacOS/KeePassXC 2>/dev/null | head -1) daemon_main() { declare -A DBs diff --git a/utils/keepassxc-snap-helper.sh b/utils/keepassxc-snap-helper.sh index fac546212..300b3909a 100755 --- a/utils/keepassxc-snap-helper.sh +++ b/utils/keepassxc-snap-helper.sh @@ -59,17 +59,7 @@ JSON_CHROME=$(cat << EOF EOF ) -askBrowserSnap() { - if (whiptail --title "Snap Choice" --defaultno \ - --yesno "Is this browser installed as a snap (usually NO)?" 8 60); then - # BASE_DIR="$1" - whiptail --title "Snap Choice" --msgbox "Sorry, browsers installed as snaps are not supported at this time" 8 50 - exit 0 - fi -} - setupFirefox() { - askBrowserSnap "./snap/firefox/common" JSON_OUT=${JSON_FIREFOX} INSTALL_DIR="${BASE_DIR}/.mozilla/native-messaging-hosts" } @@ -80,7 +70,6 @@ setupChrome() { } setupChromium() { - askBrowserSnap "./snap/chromium/current" JSON_OUT=${JSON_CHROME} INSTALL_DIR="${BASE_DIR}/.config/chromium/NativeMessagingHosts" } @@ -122,9 +111,10 @@ BROWSER=$(whiptail \ "7" "Microsoft Edge" \ 3>&1 1>&2 2>&3) +exitstatus=$? + clear -exitstatus=$? if [[ $exitstatus == 0 ]]; then # Configure settings for the chosen browser case $BROWSER in diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json new file mode 100644 index 000000000..1d21b2694 --- /dev/null +++ b/vcpkg-configuration.json @@ -0,0 +1,6 @@ +{ + "overlay-ports": [], + "overlay-triplets": [ + "vcpkg/triplets" + ] +} diff --git a/vcpkg.json b/vcpkg.json new file mode 100644 index 000000000..0621736b0 --- /dev/null +++ b/vcpkg.json @@ -0,0 +1,81 @@ +{ + "name": "keepassxc", + "version-string": "2.7.7", + "builtin-baseline": "2a6371b01420d8820d158b4707e79931feba27aa", + "dependencies": [ + { + "name": "argon2", + "version>=": "20190702" + }, + { + "name": "botan", + "version>=": "3.1.1" + }, + { + "name": "minizip", + "version>=": "1.3" + }, + { + "name": "libqrencode", + "version>=": "4.1.1" + }, + { + "name": "libusb", + "version>=": "1.0.26.11791", + "platform": "linux | freebsd" + }, + { + "name": "libxi", + "version>=": "1.8", + "platform": "linux | freebsd" + }, + { + "name": "libxtst", + "version>=": "1.2.4", + "platform": "linux | freebsd" + }, + { + "name": "qt5", + "version>=": "5.15.11" + }, + { + "name": "qt5-imageformats", + "version>=": "5.15.11" + }, + { + "name": "qt5-macextras", + "version>=": "5.15.11", + "platform": "osx" + }, + { + "name": "qt5-svg", + "version>=": "5.15.11" + }, + { + "name": "qt5-tools", + "version>=": "5.15.11" + }, + { + "name": "qt5-translations", + "version>=": "5.15.11" + }, + { + "name": "qt5-wayland", + "version>=": "5.15.11", + "platform": "linux | freebsd" + }, + { + "name": "qt5-x11extras", + "version>=": "5.15.11", + "platform": "linux | freebsd" + }, + { + "name": "readline", + "version>=": "0#5" + }, + { + "name": "zlib", + "version>=": "1.3" + } + ] +} diff --git a/vcpkg/triplets/arm64-osx-dynamic-release.cmake b/vcpkg/triplets/arm64-osx-dynamic-release.cmake new file mode 100644 index 000000000..44637b2d9 --- /dev/null +++ b/vcpkg/triplets/arm64-osx-dynamic-release.cmake @@ -0,0 +1,9 @@ +set(VCPKG_TARGET_ARCHITECTURE arm64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE dynamic) + +set(VCPKG_CMAKE_SYSTEM_NAME Darwin) +set(VCPKG_OSX_ARCHITECTURES arm64) + +set(VCPKG_BUILD_TYPE release) +set(VCPKG_OSX_DEPLOYMENT_TARGET 11.0) diff --git a/vcpkg/triplets/arm64-osx-dynamic.cmake b/vcpkg/triplets/arm64-osx-dynamic.cmake new file mode 100644 index 000000000..429519b84 --- /dev/null +++ b/vcpkg/triplets/arm64-osx-dynamic.cmake @@ -0,0 +1,8 @@ +set(VCPKG_TARGET_ARCHITECTURE arm64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE dynamic) + +set(VCPKG_CMAKE_SYSTEM_NAME Darwin) +set(VCPKG_OSX_ARCHITECTURES arm64) + +set(VCPKG_OSX_DEPLOYMENT_TARGET 11.0) diff --git a/vcpkg/triplets/x64-osx-dynamic-release.cmake b/vcpkg/triplets/x64-osx-dynamic-release.cmake new file mode 100644 index 000000000..e3259a690 --- /dev/null +++ b/vcpkg/triplets/x64-osx-dynamic-release.cmake @@ -0,0 +1,9 @@ +set(VCPKG_TARGET_ARCHITECTURE x64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE dynamic) + +set(VCPKG_CMAKE_SYSTEM_NAME Darwin) +set(VCPKG_OSX_ARCHITECTURES x86_64) + +set(VCPKG_BUILD_TYPE release) +set(VCPKG_OSX_DEPLOYMENT_TARGET 10.15) diff --git a/vcpkg/triplets/x64-osx-dynamic.cmake b/vcpkg/triplets/x64-osx-dynamic.cmake new file mode 100644 index 000000000..01ce0307b --- /dev/null +++ b/vcpkg/triplets/x64-osx-dynamic.cmake @@ -0,0 +1,8 @@ +set(VCPKG_TARGET_ARCHITECTURE x64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE dynamic) + +set(VCPKG_CMAKE_SYSTEM_NAME Darwin) +set(VCPKG_OSX_ARCHITECTURES x86_64) + +set(VCPKG_OSX_DEPLOYMENT_TARGET 10.15)
    " + PixmapToHTML(Icons::entryIconPixmap(entry, IconSize::Medium)) + "

    " + entry->title().toHtmlEscaped() + "

    " + entry->title().toHtmlEscaped() + "
    " + formatted_entry + "
    " + caption + formatted_entry + "